@symerian/symi 3.1.0 → 3.1.1

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 (54) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/bundled/boot-md/handler.js +4 -4
  3. package/dist/bundled/session-memory/handler.js +4 -4
  4. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  5. package/dist/{chrome-O5GtGEaR.js → chrome-CCtr79A5.js} +4 -4
  6. package/dist/{chrome-B7_foWil.js → chrome-CLdjGAF1.js} +4 -4
  7. package/dist/{command-registry-DmjX-MJb.js → command-registry-DtivbkBg.js} +4 -4
  8. package/dist/{completion-cli-CKczmer5.js → completion-cli-DAtKJGz_.js} +1 -1
  9. package/dist/{completion-cli-DezSeZQA.js → completion-cli-M9mpw_DS.js} +2 -2
  10. package/dist/control-ui/js/app.js +34 -2
  11. package/dist/{deliver-BMg6XjUA.js → deliver-D0zCpBS2.js} +4 -4
  12. package/dist/{deliver-Cxzii_el.js → deliver-aqjVfua8.js} +4 -4
  13. package/dist/{doctor-completion-AGw1egU_.js → doctor-completion-BlxU7_DJ.js} +1 -1
  14. package/dist/{doctor-completion-BCVASe0n.js → doctor-completion-DLx2ecZ2.js} +1 -1
  15. package/dist/entry.js +1 -1
  16. package/dist/extensionAPI.js +4 -4
  17. package/dist/{gateway-cli-CvFiUm5D.js → gateway-cli-BDVuQ5k9.js} +6 -354
  18. package/dist/{gateway-cli-BZXfKM1n.js → gateway-cli-CjY_Ct2M.js} +6 -354
  19. package/dist/{glass-ui-ws-CHyGj7GA.js → glass-ui-ws-Bs0VbFCC.js} +1 -1
  20. package/dist/{glass-ui-ws-BSTHY5PU.js → glass-ui-ws-CLyPSA_9.js} +1 -1
  21. package/dist/index.js +1 -1
  22. package/dist/llm-slug-generator.js +4 -4
  23. package/dist/{manager-BWi2hK4Y.js → manager-3gF-gaOU.js} +1 -1
  24. package/dist/{manager-BoTf2TBM.js → manager-Do_LVG9R.js} +1 -1
  25. package/dist/{onboard-BzRDv60Y.js → onboard-lFeJdiGp.js} +1 -1
  26. package/dist/{onboard-CHrTg-R0.js → onboard-zwQ2t4TE.js} +1 -1
  27. package/dist/{onboarding-ClbxBHpB.js → onboarding-C0kL3Y5v.js} +1 -1
  28. package/dist/{onboarding-BGwkx8NB.js → onboarding-CaHVfCVn.js} +1 -1
  29. package/dist/{onboarding.finalize-D6zND3C7.js → onboarding.finalize-DwXxdw74.js} +3 -3
  30. package/dist/{onboarding.finalize-BnIBZwze.js → onboarding.finalize-vT6fRWsB.js} +4 -4
  31. package/dist/{pi-embedded-L-sMlPsa.js → pi-embedded-JU-n_Ppj.js} +10 -10
  32. package/dist/plugin-sdk/gateway/server-chat.d.ts +47 -0
  33. package/dist/{program-B8S2KFzC.js → program-C1bTgU2q.js} +2 -2
  34. package/dist/{program-context-DCb3cVEC.js → program-context-BHvgRRy_.js} +6 -6
  35. package/dist/{prompt-select-styled-BJ3NsTmX.js → prompt-select-styled--PI8fuuB.js} +1 -1
  36. package/dist/{prompt-select-styled-ZdXAuRQQ.js → prompt-select-styled-DawD9uin.js} +1 -1
  37. package/dist/{pw-ai-B9riepO_.js → pw-ai-BlFwd1fC.js} +1 -1
  38. package/dist/{pw-ai-CYE0188Y.js → pw-ai-Cq1WlDax.js} +1 -1
  39. package/dist/{register.maintenance-CX4sIokB.js → register.maintenance-D0NfR0wv.js} +5 -5
  40. package/dist/{register.maintenance-BBxWlFhs.js → register.maintenance-fFzETZM-.js} +4 -4
  41. package/dist/{register.onboard-UzFm__iV.js → register.onboard-C0eFmAVL.js} +2 -2
  42. package/dist/{register.onboard-Be8PMN1Z.js → register.onboard-C7aJLoQc.js} +2 -2
  43. package/dist/{register.setup-w0_6rARS.js → register.setup-CRhnePOD.js} +2 -2
  44. package/dist/{register.setup-Dq7WlLOL.js → register.setup-XpvVOl8-.js} +2 -2
  45. package/dist/{register.subclis-Cb1ErrVQ.js → register.subclis-BFq9K0q9.js} +3 -3
  46. package/dist/{run-main-DmC4wWlp.js → run-main-JPtR4nYb.js} +3 -3
  47. package/dist/{server-methods-C97G9dYe.js → server-methods-Dj3PCErz.js} +360 -4
  48. package/dist/{server-methods-DFt60s1H.js → server-methods-RegE5bVx.js} +360 -4
  49. package/dist/{synthesis-DA7kfAUJ.js → synthesis-CNYpM3bL.js} +4 -4
  50. package/dist/{synthesis-CPZoVKlB.js → synthesis-CP97tsyU.js} +4 -4
  51. package/dist/{unified-runner-BdN9pHa8.js → unified-runner-Bjd_KpAr.js} +10 -10
  52. package/dist/{update-cli-Bg3c9ORr.js → update-cli-DPsa1UFx.js} +5 -5
  53. package/dist/{update-cli-DZtbV25O.js → update-cli-bgziGI6r.js} +4 -4
  54. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { _ as expandHomePrefix, g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
2
2
  import { C as truncateUtf16Safe, F as isRich, I as theme, L as getChildLogger, P as colorize, R as getLogger, c as ensureDir, g as resolveUserPath, j as setVerbose, t as CONFIG_DIR, y as shortenHomePath, z as getResolvedLoggerSettings } from "./utils-BwhNP0do.js";
3
- import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-C8-rnk4H.js";
4
- import { $t as extractFileContentFromSource, A as loadSessionEntry, B as resolveSessionDeliveryTarget, Cr as runWithModelFallback, Ct as markGatewaySigusr1RestartHandled, Dn as readLatestAssistantReply, Dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, En as runSubagentAnnounceFlow, Et as setPreRestartDeferralCheck, Ft as requestHeartbeatNow, G as consumeRestartSentinel, I as resolveOutboundSessionRoute, Ln as registerUnhandledRejectionHandler, Nn as getActiveEmbeddedRunCount, O as listSessionsFromStore, Q as normalizeHttpWebhookUrl, Qt as DEFAULT_INPUT_TIMEOUT_MS, Rn as ToolInputError, S as createSymiTools, Sn as listDescendantRunsForRequester, St as isGatewaySigusr1RestartExternallyAllowed, Tn as resolveAgentTimeoutMs, Tt as setGatewaySigusr1RestartPolicy, U as resetDirectoryCache, Vt as lookupContextTokens, Xt as DEFAULT_INPUT_IMAGE_MIMES, Y as summarizeRestartSentinel, Yt as DEFAULT_INPUT_IMAGE_MAX_BYTES, Zt as DEFAULT_INPUT_MAX_REDIRECTS, _r as getAgentRunContext, a as getPluginToolMeta, at as normalizePayloadToSystemText, bn as countActiveRunsForSession, br as classifyOutboundMessage, bt as deferGatewayRestartUntilIdle, c as handleSlackHttpRequest, cr as getActiveTaskCount, ct as buildDeliveryFromLegacyPayload, d as buildHistoryContextFromEntries, dr as resetAllLanes, en as extractImageContentFromSource, fr as setCommandLaneConcurrency, gr as emitAgentEvent, gt as isExternalHookSession, h as getTotalPendingReplies, hr as clearAgentRunContext, ht as getHookType, it as normalizeOptionalText, jr as stripHeartbeatToken, k as loadCombinedSessionStoreForGateway, l as readJsonBodyWithLimit, lt as hasLegacyDeliveryHints, mr as CommandLane, mt as detectSuspiciousPatterns, n as applyToolPolicyPipeline, nn as resolveInputFileLimits, nt as normalizeOptionalAgentId, on as enqueueSystemEvent, ot as normalizeRequiredName, pr as waitForActiveTasks, pt as buildSafeExternalPrompt, q as formatRestartSentinelMessage, r as buildDefaultToolPolicyPipelineSteps, rt as normalizeOptionalSessionKey, s as loadSymiPlugins, st as migrateLegacyCronPayload, t as runAgentTurn, tn as normalizeMimeList, tt as inferLegacyName, u as requestBodyErrorToText, ur as getTotalQueueSize, ut as stripLegacyDeliveryFields, vr as onAgentEvent, w as resolveAnnounceTargetFromKey, xn as initSubagentRegistry, xr as resolveModelProfile, xt as emitGatewayRestart, yn as countActiveDescendantRuns, yr as registerAgentRunContext, yt as consumeGatewaySigusr1RestartAuthorization, z as resolveOutboundTarget } from "./unified-runner-BX17do1W.js";
3
+ import { n as SILENT_REPLY_TOKEN } from "./tokens-C8-rnk4H.js";
4
+ import { $t as extractFileContentFromSource, A as loadSessionEntry, B as resolveSessionDeliveryTarget, Cr as runWithModelFallback, Ct as markGatewaySigusr1RestartHandled, Dn as readLatestAssistantReply, Dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, En as runSubagentAnnounceFlow, Et as setPreRestartDeferralCheck, Ft as requestHeartbeatNow, G as consumeRestartSentinel, I as resolveOutboundSessionRoute, Ln as registerUnhandledRejectionHandler, Nn as getActiveEmbeddedRunCount, O as listSessionsFromStore, Q as normalizeHttpWebhookUrl, Qt as DEFAULT_INPUT_TIMEOUT_MS, Rn as ToolInputError, S as createSymiTools, Sn as listDescendantRunsForRequester, St as isGatewaySigusr1RestartExternallyAllowed, Tn as resolveAgentTimeoutMs, Tt as setGatewaySigusr1RestartPolicy, U as resetDirectoryCache, Vt as lookupContextTokens, Xt as DEFAULT_INPUT_IMAGE_MIMES, Y as summarizeRestartSentinel, Yt as DEFAULT_INPUT_IMAGE_MAX_BYTES, Zt as DEFAULT_INPUT_MAX_REDIRECTS, _r as getAgentRunContext, a as getPluginToolMeta, at as normalizePayloadToSystemText, bt as deferGatewayRestartUntilIdle, c as handleSlackHttpRequest, cr as getActiveTaskCount, ct as buildDeliveryFromLegacyPayload, d as buildHistoryContextFromEntries, dr as resetAllLanes, en as extractImageContentFromSource, fr as setCommandLaneConcurrency, gr as emitAgentEvent, gt as isExternalHookSession, h as getTotalPendingReplies, hr as clearAgentRunContext, ht as getHookType, it as normalizeOptionalText, jr as stripHeartbeatToken, k as loadCombinedSessionStoreForGateway, l as readJsonBodyWithLimit, lt as hasLegacyDeliveryHints, mr as CommandLane, mt as detectSuspiciousPatterns, n as applyToolPolicyPipeline, nn as resolveInputFileLimits, nt as normalizeOptionalAgentId, on as enqueueSystemEvent, ot as normalizeRequiredName, pr as waitForActiveTasks, pt as buildSafeExternalPrompt, q as formatRestartSentinelMessage, r as buildDefaultToolPolicyPipelineSteps, rt as normalizeOptionalSessionKey, s as loadSymiPlugins, st as migrateLegacyCronPayload, t as runAgentTurn, tn as normalizeMimeList, tt as inferLegacyName, u as requestBodyErrorToText, ur as getTotalQueueSize, ut as stripLegacyDeliveryFields, vr as onAgentEvent, w as resolveAnnounceTargetFromKey, xn as initSubagentRegistry, xr as resolveModelProfile, xt as emitGatewayRestart, yn as countActiveDescendantRuns, yr as registerAgentRunContext, yt as consumeGatewaySigusr1RestartAuthorization, z as resolveOutboundTarget } from "./unified-runner-BX17do1W.js";
5
5
  import { C as triggerInternalHook, S as registerInternalHook, b as clearInternalHooks, m as createEmptyPluginRegistry, r as DEFAULT_CHAT_CHANNEL, x as createInternalHookEvent } from "./registry-DVCe2mTM.js";
6
6
  import { a as setConsoleSubsystemFilter, f as defaultRuntime, n as runtimeForLogger, o as setConsoleTimestampPrefix, t as createSubsystemLogger } from "./subsystem-C22TrusW.js";
7
7
  import { Ht as DEFAULT_MODEL, N as getModelRefStatus, O as isPidAlive, P as isCliProvider, U as resolveHooksGmailModel, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, q as resolveThinkingDefault, z as resolveAllowedModelRef } from "./auth-profiles-BDYmaplg.js";
@@ -114,11 +114,11 @@ import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatew
114
114
  import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-CCWHhR0Z.js";
115
115
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-CSM6b2NM.js";
116
116
  import { r as pickGatewaySelfPresence } from "./status-VrUpaIhD.js";
117
- import { c as startHeartbeatRunner, d as onHeartbeatEvent, i as styleHealthChannelLine, l as resolveHeartbeatVisibility, n as getHealthSnapshot, o as runHeartbeatOnce, p as resolveCronStyleNow, t as formatHealthChannelLines } from "./health-OGl_XbRn.js";
117
+ import { c as startHeartbeatRunner, d as onHeartbeatEvent, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, p as resolveCronStyleNow, t as formatHealthChannelLines } from "./health-OGl_XbRn.js";
118
118
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DDFKsG0i.js";
119
119
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-g7MoURZH.js";
120
- import { t as runOnboardingWizard } from "./onboarding-BGwkx8NB.js";
121
- import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-DFt60s1H.js";
120
+ import { t as runOnboardingWizard } from "./onboarding-CaHVfCVn.js";
121
+ import { C as createAgentEventHandler, E as startGatewayConfigReloader, S as resolveCronRunLogPath, T as createToolEventRecipientRegistry, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, w as createChatRunState, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-RegE5bVx.js";
122
122
  import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-DlP4T9Pl.js";
123
123
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-B0hPKPyL.js";
124
124
  import { a as getCliSessionId, o as setCliSessionId, s as runCliAgent, t as agentCommand } from "./agent-DKz-M9N_.js";
@@ -1857,354 +1857,6 @@ function createChannelManager(opts) {
1857
1857
  };
1858
1858
  }
1859
1859
 
1860
- //#endregion
1861
- //#region src/gateway/server-chat.ts
1862
- function resolveHeartbeatAckMaxChars$1() {
1863
- try {
1864
- const cfg = loadConfig();
1865
- return Math.max(0, cfg.agents?.defaults?.heartbeat?.ackMaxChars ?? DEFAULT_HEARTBEAT_ACK_MAX_CHARS);
1866
- } catch {
1867
- return DEFAULT_HEARTBEAT_ACK_MAX_CHARS;
1868
- }
1869
- }
1870
- function resolveHeartbeatContext(runId, sourceRunId) {
1871
- const primary = getAgentRunContext(runId);
1872
- if (primary?.isHeartbeat) return primary;
1873
- if (sourceRunId && sourceRunId !== runId) {
1874
- const source = getAgentRunContext(sourceRunId);
1875
- if (source?.isHeartbeat) return source;
1876
- }
1877
- return primary;
1878
- }
1879
- /**
1880
- * Check if heartbeat ACK/noise should be hidden from interactive chat surfaces.
1881
- */
1882
- function shouldHideHeartbeatChatOutput(runId, sourceRunId) {
1883
- if (!resolveHeartbeatContext(runId, sourceRunId)?.isHeartbeat) return false;
1884
- try {
1885
- return !resolveHeartbeatVisibility({
1886
- cfg: loadConfig(),
1887
- channel: "webchat"
1888
- }).showOk;
1889
- } catch {
1890
- return true;
1891
- }
1892
- }
1893
- function createChatRunRegistry() {
1894
- const chatRunSessions = /* @__PURE__ */ new Map();
1895
- const add = (sessionId, entry) => {
1896
- const queue = chatRunSessions.get(sessionId);
1897
- if (queue) queue.push(entry);
1898
- else chatRunSessions.set(sessionId, [entry]);
1899
- };
1900
- const peek = (sessionId) => chatRunSessions.get(sessionId)?.[0];
1901
- const shift = (sessionId) => {
1902
- const queue = chatRunSessions.get(sessionId);
1903
- if (!queue || queue.length === 0) return;
1904
- const entry = queue.shift();
1905
- if (!queue.length) chatRunSessions.delete(sessionId);
1906
- return entry;
1907
- };
1908
- const remove = (sessionId, clientRunId, sessionKey) => {
1909
- const queue = chatRunSessions.get(sessionId);
1910
- if (!queue || queue.length === 0) return;
1911
- const idx = queue.findIndex((entry) => entry.clientRunId === clientRunId && (sessionKey ? entry.sessionKey === sessionKey : true));
1912
- if (idx < 0) return;
1913
- const [entry] = queue.splice(idx, 1);
1914
- if (!queue.length) chatRunSessions.delete(sessionId);
1915
- return entry;
1916
- };
1917
- const clear = () => {
1918
- chatRunSessions.clear();
1919
- };
1920
- return {
1921
- add,
1922
- peek,
1923
- shift,
1924
- remove,
1925
- clear
1926
- };
1927
- }
1928
- function createChatRunState() {
1929
- const registry = createChatRunRegistry();
1930
- const buffers = /* @__PURE__ */ new Map();
1931
- const deltaSentAt = /* @__PURE__ */ new Map();
1932
- const pendingDeltaText = /* @__PURE__ */ new Map();
1933
- const abortedRuns = /* @__PURE__ */ new Map();
1934
- const clear = () => {
1935
- registry.clear();
1936
- buffers.clear();
1937
- deltaSentAt.clear();
1938
- pendingDeltaText.clear();
1939
- abortedRuns.clear();
1940
- };
1941
- return {
1942
- registry,
1943
- buffers,
1944
- deltaSentAt,
1945
- pendingDeltaText,
1946
- abortedRuns,
1947
- clear
1948
- };
1949
- }
1950
- const TOOL_EVENT_RECIPIENT_TTL_MS = 600 * 1e3;
1951
- const TOOL_EVENT_RECIPIENT_FINAL_GRACE_MS = 30 * 1e3;
1952
- function createToolEventRecipientRegistry() {
1953
- const recipients = /* @__PURE__ */ new Map();
1954
- const prune = () => {
1955
- if (recipients.size === 0) return;
1956
- const now = Date.now();
1957
- for (const [runId, entry] of recipients) if (now >= (entry.finalizedAt ? entry.finalizedAt + TOOL_EVENT_RECIPIENT_FINAL_GRACE_MS : entry.updatedAt + TOOL_EVENT_RECIPIENT_TTL_MS)) recipients.delete(runId);
1958
- };
1959
- const add = (runId, connId) => {
1960
- if (!runId || !connId) return;
1961
- const now = Date.now();
1962
- const existing = recipients.get(runId);
1963
- if (existing) {
1964
- existing.connIds.add(connId);
1965
- existing.updatedAt = now;
1966
- } else recipients.set(runId, {
1967
- connIds: new Set([connId]),
1968
- updatedAt: now
1969
- });
1970
- prune();
1971
- };
1972
- const get = (runId) => {
1973
- const entry = recipients.get(runId);
1974
- if (!entry) return;
1975
- entry.updatedAt = Date.now();
1976
- prune();
1977
- return entry.connIds;
1978
- };
1979
- const markFinal = (runId) => {
1980
- const entry = recipients.get(runId);
1981
- if (!entry) return;
1982
- entry.finalizedAt = Date.now();
1983
- prune();
1984
- };
1985
- return {
1986
- add,
1987
- get,
1988
- markFinal
1989
- };
1990
- }
1991
- function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSession, agentRunSeq, chatRunState, resolveSessionKeyForRun, clearAgentRunContext, toolEventRecipients }) {
1992
- const emitChatDelta = (sessionKey, clientRunId, sourceRunId, seq, text) => {
1993
- if (isSilentReplyText(text, SILENT_REPLY_TOKEN)) return;
1994
- const prev = chatRunState.buffers.get(clientRunId) ?? "";
1995
- chatRunState.buffers.set(clientRunId, prev + text);
1996
- if (shouldHideHeartbeatChatOutput(clientRunId, sourceRunId)) return;
1997
- const now = Date.now();
1998
- if (now - (chatRunState.deltaSentAt.get(clientRunId) ?? 0) < 150) {
1999
- chatRunState.pendingDeltaText.set(clientRunId, (chatRunState.pendingDeltaText.get(clientRunId) ?? "") + text);
2000
- return;
2001
- }
2002
- const buffered = chatRunState.pendingDeltaText.get(clientRunId) ?? "";
2003
- chatRunState.pendingDeltaText.delete(clientRunId);
2004
- const fullText = buffered + text;
2005
- chatRunState.deltaSentAt.set(clientRunId, now);
2006
- const payload = {
2007
- runId: clientRunId,
2008
- sessionKey,
2009
- seq,
2010
- state: "delta",
2011
- ...resolveHeartbeatContext(clientRunId, sourceRunId)?.isHeartbeat ? { isHeartbeat: true } : {},
2012
- message: {
2013
- role: "assistant",
2014
- content: [{
2015
- type: "text",
2016
- text: fullText
2017
- }],
2018
- timestamp: now
2019
- }
2020
- };
2021
- broadcast("chat", payload, { dropIfSlow: true });
2022
- nodeSendToSession(sessionKey, "chat", payload);
2023
- };
2024
- const emitChatFinal = (sessionKey, clientRunId, sourceRunId, seq, jobState, error) => {
2025
- const remainingDelta = chatRunState.pendingDeltaText.get(clientRunId);
2026
- if (remainingDelta && !shouldHideHeartbeatChatOutput(clientRunId, sourceRunId)) {
2027
- const flushPayload = {
2028
- runId: clientRunId,
2029
- sessionKey,
2030
- seq,
2031
- state: "delta",
2032
- ...resolveHeartbeatContext(clientRunId, sourceRunId)?.isHeartbeat ? { isHeartbeat: true } : {},
2033
- message: {
2034
- role: "assistant",
2035
- content: [{
2036
- type: "text",
2037
- text: remainingDelta
2038
- }],
2039
- timestamp: Date.now()
2040
- }
2041
- };
2042
- broadcast("chat", flushPayload);
2043
- nodeSendToSession(sessionKey, "chat", flushPayload);
2044
- }
2045
- chatRunState.pendingDeltaText.delete(clientRunId);
2046
- const bufferedText = chatRunState.buffers.get(clientRunId)?.trim() ?? "";
2047
- const heartbeatCtx = resolveHeartbeatContext(clientRunId, sourceRunId);
2048
- const isHeartbeatRun = !!heartbeatCtx?.isHeartbeat;
2049
- const heartbeatHidden = isHeartbeatRun && shouldHideHeartbeatChatOutput(clientRunId, sourceRunId);
2050
- const filterResult = isHeartbeatRun && !heartbeatHidden ? {
2051
- action: "deliver",
2052
- output: bufferedText,
2053
- reason: "deliver"
2054
- } : classifyOutboundMessage(bufferedText, {
2055
- isHeartbeat: heartbeatHidden,
2056
- heartbeatAckMaxChars: resolveHeartbeatAckMaxChars$1()
2057
- });
2058
- const text = filterResult.output.trim();
2059
- const shouldSuppressSilent = filterResult.action === "drop";
2060
- chatRunState.buffers.delete(clientRunId);
2061
- chatRunState.deltaSentAt.delete(clientRunId);
2062
- if (jobState === "done") {
2063
- const payload = {
2064
- runId: clientRunId,
2065
- sessionKey,
2066
- seq,
2067
- state: "final",
2068
- activeSubagentCount: countActiveRunsForSession(sessionKey),
2069
- ...heartbeatCtx?.isHeartbeat ? { isHeartbeat: true } : {},
2070
- message: text && !shouldSuppressSilent ? {
2071
- role: "assistant",
2072
- content: [{
2073
- type: "text",
2074
- text
2075
- }],
2076
- timestamp: Date.now()
2077
- } : void 0
2078
- };
2079
- broadcast("chat", payload);
2080
- nodeSendToSession(sessionKey, "chat", payload);
2081
- return;
2082
- }
2083
- const payload = {
2084
- runId: clientRunId,
2085
- sessionKey,
2086
- seq,
2087
- state: "error",
2088
- errorMessage: error ? formatForLog(error) : void 0,
2089
- ...heartbeatCtx?.isHeartbeat ? { isHeartbeat: true } : {}
2090
- };
2091
- broadcast("chat", payload);
2092
- nodeSendToSession(sessionKey, "chat", payload);
2093
- };
2094
- const resolveToolVerboseLevel = (runId, sessionKey) => {
2095
- const runVerbose = normalizeVerboseLevel(getAgentRunContext(runId)?.verboseLevel);
2096
- if (runVerbose) return runVerbose;
2097
- if (!sessionKey) return "off";
2098
- try {
2099
- const { cfg, entry } = loadSessionEntry(sessionKey);
2100
- const sessionVerbose = normalizeVerboseLevel(entry?.verboseLevel);
2101
- if (sessionVerbose) return sessionVerbose;
2102
- return normalizeVerboseLevel(cfg.agents?.defaults?.verboseDefault) ?? "off";
2103
- } catch {
2104
- return "off";
2105
- }
2106
- };
2107
- return (evt) => {
2108
- const chatLink = chatRunState.registry.peek(evt.runId);
2109
- const eventSessionKey = typeof evt.sessionKey === "string" && evt.sessionKey.trim() ? evt.sessionKey : void 0;
2110
- const sessionKey = chatLink?.sessionKey ?? eventSessionKey ?? resolveSessionKeyForRun(evt.runId);
2111
- if (sessionKey?.startsWith("temp:")) return;
2112
- const clientRunId = chatLink?.clientRunId ?? evt.runId;
2113
- const eventRunId = chatLink?.clientRunId ?? evt.runId;
2114
- const eventForClients = chatLink ? {
2115
- ...evt,
2116
- runId: eventRunId
2117
- } : evt;
2118
- const isAborted = chatRunState.abortedRuns.has(clientRunId) || chatRunState.abortedRuns.has(evt.runId);
2119
- const heartbeatAgentCtx = resolveHeartbeatContext(clientRunId, evt.runId);
2120
- const agentPayload = {
2121
- ...eventForClients,
2122
- ...sessionKey ? { sessionKey } : {},
2123
- ...heartbeatAgentCtx?.isHeartbeat ? { isHeartbeat: true } : {}
2124
- };
2125
- const last = agentRunSeq.get(evt.runId) ?? 0;
2126
- const isToolEvent = evt.stream === "tool";
2127
- const toolVerbose = isToolEvent ? resolveToolVerboseLevel(evt.runId, sessionKey) : "off";
2128
- const toolPayload = isToolEvent && toolVerbose !== "full" ? (() => {
2129
- const data = evt.data ? { ...evt.data } : {};
2130
- delete data.result;
2131
- delete data.partialResult;
2132
- return sessionKey ? {
2133
- ...eventForClients,
2134
- sessionKey,
2135
- data
2136
- } : {
2137
- ...eventForClients,
2138
- data
2139
- };
2140
- })() : agentPayload;
2141
- if (evt.seq !== last + 1) broadcast("agent", {
2142
- runId: eventRunId,
2143
- stream: "error",
2144
- ts: Date.now(),
2145
- sessionKey,
2146
- data: {
2147
- reason: "seq gap",
2148
- expected: last + 1,
2149
- received: evt.seq
2150
- }
2151
- });
2152
- agentRunSeq.set(evt.runId, evt.seq);
2153
- if (isToolEvent) {
2154
- const recipients = toolEventRecipients.get(evt.runId);
2155
- if (recipients && recipients.size > 0) broadcastToConnIds("agent", toolPayload, recipients);
2156
- } else broadcast("agent", agentPayload);
2157
- const lifecyclePhase = evt.stream === "lifecycle" && typeof evt.data?.phase === "string" ? evt.data.phase : null;
2158
- if (lifecyclePhase === "start" && sessionKey && !isAborted) {
2159
- if (!resolveHeartbeatContext(clientRunId, evt.runId)?.isHeartbeat) broadcast("chat", {
2160
- runId: clientRunId,
2161
- sessionKey,
2162
- seq: evt.seq,
2163
- state: "thinking"
2164
- });
2165
- }
2166
- if (lifecyclePhase && sessionKey && sessionKey.includes(":subagent:")) {
2167
- if (lifecyclePhase === "start") broadcast("subagent", {
2168
- phase: "started",
2169
- sessionKey,
2170
- runId: clientRunId
2171
- });
2172
- else if (lifecyclePhase === "end" || lifecyclePhase === "error") broadcast("subagent", {
2173
- phase: "completed",
2174
- sessionKey,
2175
- runId: clientRunId
2176
- });
2177
- }
2178
- if (sessionKey) {
2179
- if (!isToolEvent || toolVerbose !== "off") nodeSendToSession(sessionKey, "agent", isToolEvent ? toolPayload : agentPayload);
2180
- if (!isAborted && evt.stream === "assistant" && typeof evt.data?.text === "string") {
2181
- const deltaText = typeof evt.data?.delta === "string" && evt.data.delta ? evt.data.delta : evt.data.text;
2182
- emitChatDelta(sessionKey, clientRunId, evt.runId, evt.seq, deltaText);
2183
- } else if (!isAborted && (lifecyclePhase === "end" || lifecyclePhase === "error")) if (chatLink) {
2184
- const finished = chatRunState.registry.shift(evt.runId);
2185
- if (!finished) {
2186
- clearAgentRunContext(evt.runId);
2187
- return;
2188
- }
2189
- emitChatFinal(finished.sessionKey, finished.clientRunId, evt.runId, evt.seq, lifecyclePhase === "error" ? "error" : "done", evt.data?.error);
2190
- } else emitChatFinal(sessionKey, eventRunId, evt.runId, evt.seq, lifecyclePhase === "error" ? "error" : "done", evt.data?.error);
2191
- else if (isAborted && (lifecyclePhase === "end" || lifecyclePhase === "error")) {
2192
- chatRunState.abortedRuns.delete(clientRunId);
2193
- chatRunState.abortedRuns.delete(evt.runId);
2194
- chatRunState.buffers.delete(clientRunId);
2195
- chatRunState.deltaSentAt.delete(clientRunId);
2196
- if (chatLink) chatRunState.registry.remove(evt.runId, clientRunId, sessionKey);
2197
- }
2198
- }
2199
- if (lifecyclePhase === "end" || lifecyclePhase === "error") {
2200
- toolEventRecipients.markFinal(evt.runId);
2201
- clearAgentRunContext(evt.runId);
2202
- agentRunSeq.delete(evt.runId);
2203
- agentRunSeq.delete(clientRunId);
2204
- }
2205
- };
2206
- }
2207
-
2208
1860
  //#endregion
2209
1861
  //#region src/hooks/gmail-watcher.ts
2210
1862
  /**
@@ -12218,7 +11870,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
12218
11870
  });
12219
11871
  let glassUiBridgeCleanup = null;
12220
11872
  if (!minimalTestGateway) {
12221
- const { createGlassUiBridge } = await import("./glass-ui-ws-CHyGj7GA.js");
11873
+ const { createGlassUiBridge } = await import("./glass-ui-ws-Bs0VbFCC.js");
12222
11874
  glassUiBridgeCleanup = createGlassUiBridge({
12223
11875
  wss: glassUiWss,
12224
11876
  context: gatewayRequestContext,
@@ -96,7 +96,7 @@ import "./status-VrUpaIhD.js";
96
96
  import "./health-OGl_XbRn.js";
97
97
  import "./control-ui-assets-DDFKsG0i.js";
98
98
  import "./update-check-g7MoURZH.js";
99
- import { n as handleGatewayRequest } from "./server-methods-DFt60s1H.js";
99
+ import { n as handleGatewayRequest } from "./server-methods-RegE5bVx.js";
100
100
  import "./push-apns-DlP4T9Pl.js";
101
101
  import "./agent-DKz-M9N_.js";
102
102
  import "./agents.config-BE_DKBeX.js";
@@ -91,7 +91,7 @@ import "./health-vDQ4nRJB.js";
91
91
  import "./outbound-send-deps-KBVliaIJ.js";
92
92
  import "./control-ui-assets-DbqKkizK.js";
93
93
  import "./update-check-CZiE16y_.js";
94
- import { n as handleGatewayRequest } from "./server-methods-C97G9dYe.js";
94
+ import { n as handleGatewayRequest } from "./server-methods-Dj3PCErz.js";
95
95
  import "./push-apns-CZG-Sec1.js";
96
96
  import "./agent-DMDBKAcJ.js";
97
97
  import "./agents.config-CoFNHkcF.js";
package/dist/index.js CHANGED
@@ -85,7 +85,7 @@ import { t as ensureSymiCliOnPath } from "./path-env-CVaKqqI-.js";
85
85
  import { t as assertSupportedRuntime } from "./runtime-guard-Ci00bPHY.js";
86
86
  import "./ports-Do74QKdV.js";
87
87
  import { a as hasFlag, i as getVerboseFlag, n as getCommandPath, o as hasHelpOrVersion, s as hasRootVersionAlias } from "./argv-BqE7Vfm9.js";
88
- import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-DCb3cVEC.js";
88
+ import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-BHvgRRy_.js";
89
89
  import "./catalog-ByDe_tgJ.js";
90
90
  import "./plugin-registry-C46oqC4P.js";
91
91
  import { n as resolveCliChannelOptions } from "./channel-options-Co6PcwNY.js";
@@ -4,14 +4,14 @@ import { o as resolveAgentWorkspaceDir, s as resolveDefaultAgentId } from "./age
4
4
  import "./subsystem-B0nl039t.js";
5
5
  import "./workspace-C3O07_sB.js";
6
6
  import "./tokens-Cf12qNDy.js";
7
- import { t as runAgentTurn } from "./unified-runner-BdN9pHa8.js";
7
+ import { t as runAgentTurn } from "./unified-runner-Bjd_KpAr.js";
8
8
  import "./auth-profiles-CWc_Dn2r.js";
9
9
  import "./github-copilot-token-BUd9oA8x.js";
10
10
  import "./boolean-B8-BqKGQ.js";
11
- import "./deliver-BMg6XjUA.js";
11
+ import "./deliver-D0zCpBS2.js";
12
12
  import "./ssrf-CY_-n5zv.js";
13
13
  import "./manifest-registry-k-LNmNet.js";
14
- import "./chrome-B7_foWil.js";
14
+ import "./chrome-CCtr79A5.js";
15
15
  import "./frontmatter-B5iYTsZP.js";
16
16
  import "./skills-DRWbxzQd.js";
17
17
  import "./redact-DPnDWsnT.js";
@@ -27,7 +27,7 @@ import "./diagnostic-session-state-BkfiP_y6.js";
27
27
  import "./pi-auth-json-CgM-a3Wc.js";
28
28
  import "./pi-model-discovery-BnZgJecJ.js";
29
29
  import "./reply-prefix-D6FmBp9l.js";
30
- import "./manager-BoTf2TBM.js";
30
+ import "./manager-Do_LVG9R.js";
31
31
  import "./sqlite-D9BEt91E.js";
32
32
  import "./markdown-tables-DKggd2Pz.js";
33
33
  import "./commands-registry-DKlZ_8Ms.js";
@@ -4220,7 +4220,7 @@ var MemoryIndexManager = class MemoryIndexManager extends MemoryManagerEmbedding
4220
4220
  * to bypass the min-interval guard (CLI use).
4221
4221
  */
4222
4222
  async runL3CycleIfDue(params) {
4223
- const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-BrqsLlKC.js"), import("./synthesis-DA7kfAUJ.js")]);
4223
+ const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-BrqsLlKC.js"), import("./synthesis-CNYpM3bL.js")]);
4224
4224
  const synthesize = createSynthesizer({
4225
4225
  cfg: this.cfg,
4226
4226
  agentId: this.agentId,
@@ -4220,7 +4220,7 @@ var MemoryIndexManager = class MemoryIndexManager extends MemoryManagerEmbedding
4220
4220
  * to bypass the min-interval guard (CLI use).
4221
4221
  */
4222
4222
  async runL3CycleIfDue(params) {
4223
- const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-m2vRWhYT.js"), import("./synthesis-CPZoVKlB.js")]);
4223
+ const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-m2vRWhYT.js"), import("./synthesis-CP97tsyU.js")]);
4224
4224
  const synthesize = createSynthesizer({
4225
4225
  cfg: this.cfg,
4226
4226
  agentId: this.agentId,
@@ -10,7 +10,7 @@ import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, c as han
10
10
  import { r as isSystemdUserServiceAvailable } from "./systemd-B9gi_XwA.js";
11
11
  import { t as resolveGatewayService } from "./service-oV2kT2Uy.js";
12
12
  import { r as healthCommand } from "./health-vDQ4nRJB.js";
13
- import { t as runOnboardingWizard } from "./onboarding-ClbxBHpB.js";
13
+ import { t as runOnboardingWizard } from "./onboarding-C0kL3Y5v.js";
14
14
  import { $ as setHuggingfaceApiKey, A as applyXaiConfig, B as applyVercelAiGatewayConfig, E as applyTogetherConfig, I as applyLitellmConfig, M as applyXiaomiConfig, O as applyVeniceConfig, P as applyZaiConfig, Q as setGeminiApiKey, R as applyCloudflareAiGatewayConfig, S as applyQianfanConfig, X as setAnthropicApiKey, Z as setCloudflareAiGatewayConfig, _ as applyMoonshotConfigCn, a as applyMinimaxApiConfig, at as setOpenrouterApiKey, b as applyOpenrouterConfig, ct as setTogetherApiKey, d as applyAuthProfileConfig, dt as setXaiApiKey, et as setKimiCodingApiKey, f as applyHuggingfaceConfig, ft as setXiaomiApiKey, g as applyMoonshotConfig, it as setOpencodeZenApiKey, l as applyMinimaxConfig, lt as setVeniceApiKey, m as applyKimiCodeConfig, n as validateAnthropicSetupToken, nt as setMinimaxApiKey, o as applyMinimaxApiConfigCn, ot as setQianfanApiKey, pt as setZaiApiKey, r as applyOpencodeZenConfig, rt as setMoonshotApiKey, st as setSyntheticApiKey, t as buildTokenProfileId, tt as setLitellmApiKey, ut as setVercelAiGatewayApiKey, w as applySyntheticConfig } from "./auth-token-cmr_ZHFt.js";
15
15
  import { n as logConfigUpdated } from "./logging-CRGhEUwg.js";
16
16
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-BfSt7Tat.js";
@@ -12,7 +12,7 @@ import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, c as han
12
12
  import { r as isSystemdUserServiceAvailable } from "./systemd-C73gWrPp.js";
13
13
  import { t as resolveGatewayService } from "./service-DGFMBi3r.js";
14
14
  import { r as healthCommand } from "./health-OGl_XbRn.js";
15
- import { t as runOnboardingWizard } from "./onboarding-BGwkx8NB.js";
15
+ import { t as runOnboardingWizard } from "./onboarding-CaHVfCVn.js";
16
16
  import { $ as setHuggingfaceApiKey, A as applyXaiConfig, B as applyVercelAiGatewayConfig, E as applyTogetherConfig, I as applyLitellmConfig, M as applyXiaomiConfig, O as applyVeniceConfig, P as applyZaiConfig, Q as setGeminiApiKey, R as applyCloudflareAiGatewayConfig, S as applyQianfanConfig, X as setAnthropicApiKey, Z as setCloudflareAiGatewayConfig, _ as applyMoonshotConfigCn, a as applyMinimaxApiConfig, at as setOpenrouterApiKey, b as applyOpenrouterConfig, ct as setTogetherApiKey, d as applyAuthProfileConfig, dt as setXaiApiKey, et as setKimiCodingApiKey, f as applyHuggingfaceConfig, ft as setXiaomiApiKey, g as applyMoonshotConfig, it as setOpencodeZenApiKey, l as applyMinimaxConfig, lt as setVeniceApiKey, m as applyKimiCodeConfig, n as validateAnthropicSetupToken, nt as setMinimaxApiKey, o as applyMinimaxApiConfigCn, ot as setQianfanApiKey, pt as setZaiApiKey, r as applyOpencodeZenConfig, rt as setMoonshotApiKey, st as setSyntheticApiKey, t as buildTokenProfileId, tt as setLitellmApiKey, ut as setVercelAiGatewayApiKey, w as applySyntheticConfig } from "./auth-token-nzosq0Q2.js";
17
17
  import { n as logConfigUpdated } from "./logging-D39uqcAK.js";
18
18
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-DUg0m6CV.js";
@@ -302,7 +302,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
302
302
  mode
303
303
  });
304
304
  await writeConfigFile(nextConfig);
305
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-BnIBZwze.js");
305
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-vT6fRWsB.js");
306
306
  const { launchedTui } = await finalizeOnboardingWizard({
307
307
  flow,
308
308
  opts,
@@ -304,7 +304,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
304
304
  mode
305
305
  });
306
306
  await writeConfigFile(nextConfig);
307
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-D6zND3C7.js");
307
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-DwXxdw74.js");
308
308
  const { launchedTui } = await finalizeOnboardingWizard({
309
309
  flow,
310
310
  opts,
@@ -79,10 +79,10 @@ import "./replies-DSaEOCgv.js";
79
79
  import "./pi-tools.policy-Cm2mPWWM.js";
80
80
  import "./run-reply-turn-CrfZuxxN.js";
81
81
  import "./runtime-guard-Ci00bPHY.js";
82
- import "./program-context-DCb3cVEC.js";
82
+ import "./program-context-BHvgRRy_.js";
83
83
  import "./prompt-style-DsMnKewr.js";
84
84
  import "./note-DbSgF8Ho.js";
85
- import { r as installCompletion } from "./completion-cli-CKczmer5.js";
85
+ import { r as installCompletion } from "./completion-cli-DAtKJGz_.js";
86
86
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-bdvJvhh0.js";
87
87
  import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-ClA4h5_K.js";
88
88
  import { r as isSystemdUserServiceAvailable } from "./systemd-C73gWrPp.js";
@@ -90,7 +90,7 @@ import { t as resolveGatewayService } from "./service-DGFMBi3r.js";
90
90
  import { r as healthCommand } from "./health-OGl_XbRn.js";
91
91
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DDFKsG0i.js";
92
92
  import { t as formatHealthCheckFailure } from "./health-format-Cj8doEON.js";
93
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-AGw1egU_.js";
93
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BlxU7_DJ.js";
94
94
  import { t as runTui } from "./tui-BcNRiyl9.js";
95
95
  import os from "node:os";
96
96
  import path from "node:path";
@@ -76,10 +76,10 @@ import "./replies-RnWQ3nKx.js";
76
76
  import "./pi-tools.policy-DNgBKXTL.js";
77
77
  import "./prompt-style-Ci8XS0sV.js";
78
78
  import "./note-JnXzfkC6.js";
79
- import "./register.subclis-Cb1ErrVQ.js";
80
- import "./command-registry-DmjX-MJb.js";
79
+ import "./register.subclis-BFq9K0q9.js";
80
+ import "./command-registry-DtivbkBg.js";
81
81
  import "./program-context-CTkBT0K5.js";
82
- import { r as installCompletion } from "./completion-cli-DezSeZQA.js";
82
+ import { r as installCompletion } from "./completion-cli-M9mpw_DS.js";
83
83
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-Bt9_ZcwQ.js";
84
84
  import "./runtime-guard-DaaVdMT6.js";
85
85
  import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-CilvN36L.js";
@@ -88,7 +88,7 @@ import { t as resolveGatewayService } from "./service-oV2kT2Uy.js";
88
88
  import { r as healthCommand } from "./health-vDQ4nRJB.js";
89
89
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DbqKkizK.js";
90
90
  import { t as formatHealthCheckFailure } from "./health-format-t8t9hXjC.js";
91
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BCVASe0n.js";
91
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DLx2ecZ2.js";
92
92
  import { t as runTui } from "./tui-DEGjDTCT.js";
93
93
  import os from "node:os";
94
94
  import path from "node:path";