skykoi 2026.3.41 → 2026.3.42

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 (29) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/dist/{chrome-D9pzo3iX.js → chrome-v9VtdV-R.js} +7 -7
  4. package/dist/{completion-cli-BAOmjKt-.js → completion-cli-B5V3OVI6.js} +2 -2
  5. package/dist/{completion-cli-B34SKAqF.js → completion-cli-D2wcH9xL.js} +1 -1
  6. package/dist/{config-guard-B8lxMosR.js → config-guard-NAIvHfQB.js} +3 -3
  7. package/dist/{deliver-NgkqO2dd.js → deliver-DvaXZ6lQ.js} +1 -1
  8. package/dist/{doctor-Dxb8X0q6.js → doctor-C5msTpTy.js} +1 -1
  9. package/dist/{doctor-ChyvLuDR.js → doctor-C7TRY86F.js} +1 -1
  10. package/dist/entry.js +1 -1
  11. package/dist/extensionAPI.js +11 -11
  12. package/dist/{gateway-cli-BzeSXEUX.js → gateway-cli-B7S2Uq8P.js} +5 -5
  13. package/dist/{gateway-cli-D22Xontg.js → gateway-cli-DqkKLgtf.js} +4 -4
  14. package/dist/{image-BuRx-hla.js → image-szyjg5wy.js} +1 -1
  15. package/dist/index.js +4 -4
  16. package/dist/{login-qr-DvQWogOh.js → login-qr-D81xG5SB.js} +6 -6
  17. package/dist/{onboarding-Do43CQ1u.js → onboarding-BxDEKvJS.js} +2 -2
  18. package/dist/{pi-embedded-helpers-DndpstXk.js → pi-embedded-helpers-DiUtuQVi.js} +4 -4
  19. package/dist/plugin-sdk/index.js +7 -7
  20. package/dist/{program-CTHEtluj.js → program-DkSPq75D.js} +6 -6
  21. package/dist/{pw-ai--Z1SBz-G.js → pw-ai-plLn2C3S.js} +1 -1
  22. package/dist/{register.subclis-CtEzJT9Y.js → register.subclis-CpNxblG5.js} +3 -3
  23. package/dist/{run-main-CtznOwNo.js → run-main-CTkDjBWt.js} +8 -8
  24. package/dist/{status-DsBR1L_y.js → status-DqK2dG7C.js} +2 -2
  25. package/dist/{update-cli-_sRlyitZ.js → update-cli-CXU0eiM5.js} +4 -4
  26. package/dist/{update-cli-BCaEtm-_.js → update-cli-DMnkb0sT.js} +3 -3
  27. package/dist/{update-runner-Dc8nrgx_.js → update-runner-C3M37OWx.js} +1 -1
  28. package/dist/{update-runner-BqEkEtKd.js → update-runner-D8AUbg1Q.js} +1 -1
  29. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.3.41",
3
- "commit": "868dc050498e591628943d45800a7701c43b7d86",
4
- "builtAt": "2026-03-18T18:22:40.898Z"
2
+ "version": "2026.3.42",
3
+ "commit": "d00d4e100caafb515fa272db564bf546f2064b55",
4
+ "builtAt": "2026-03-18T18:26:43.998Z"
5
5
  }
@@ -1 +1 @@
1
- a1e888d8a26c70323ecd8dc08b9c5430338a6d234a34ef952933f1f0fb3539c5
1
+ a31fb385bdc83f5ef0206dad356115555fcf5a22e549571a77759d01d0fb50c4
@@ -7,7 +7,7 @@ import fs$1 from "node:fs/promises";
7
7
  import { execFileSync, spawn } from "node:child_process";
8
8
  import { randomBytes } from "node:crypto";
9
9
  import { createServer } from "node:http";
10
- import WebSocket, { WebSocketServer } from "ws";
10
+ import WebSocket$1, { WebSocketServer } from "ws";
11
11
  import { Buffer as Buffer$1 } from "node:buffer";
12
12
  import net from "node:net";
13
13
 
@@ -135,7 +135,7 @@ async function ensureChromeExtensionRelayServer(opts) {
135
135
  let nextExtensionId = 1;
136
136
  const sendToExtension = async (payload) => {
137
137
  const ws = extensionWs;
138
- if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
138
+ if (!ws || ws.readyState !== WebSocket$1.OPEN) throw new Error("Chrome extension not connected");
139
139
  ws.send(JSON.stringify(payload));
140
140
  return await new Promise((resolve, reject) => {
141
141
  const timer = setTimeout(() => {
@@ -152,12 +152,12 @@ async function ensureChromeExtensionRelayServer(opts) {
152
152
  const broadcastToCdpClients = (evt) => {
153
153
  const msg = JSON.stringify(evt);
154
154
  for (const ws of cdpClients) {
155
- if (ws.readyState !== WebSocket.OPEN) continue;
155
+ if (ws.readyState !== WebSocket$1.OPEN) continue;
156
156
  ws.send(msg);
157
157
  }
158
158
  };
159
159
  const sendResponseToCdp = (ws, res) => {
160
- if (ws.readyState !== WebSocket.OPEN) return;
160
+ if (ws.readyState !== WebSocket$1.OPEN) return;
161
161
  ws.send(JSON.stringify(res));
162
162
  };
163
163
  const ensureTargetEventsForClient = (ws, mode) => {
@@ -377,7 +377,7 @@ async function ensureChromeExtensionRelayServer(opts) {
377
377
  wssExtension.on("connection", (ws) => {
378
378
  extensionWs = ws;
379
379
  const ping = setInterval(() => {
380
- if (ws.readyState !== WebSocket.OPEN) return;
380
+ if (ws.readyState !== WebSocket$1.OPEN) return;
381
381
  ws.send(JSON.stringify({ method: "ping" }));
382
382
  }, 5e3);
383
383
  ws.on("message", (data) => {
@@ -674,7 +674,7 @@ async function fetchJson(url, timeoutMs = 1500, init) {
674
674
  }
675
675
  async function withCdpSocket(wsUrl, fn, opts) {
676
676
  const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
677
- const ws = new WebSocket(wsUrl, {
677
+ const ws = new WebSocket$1(wsUrl, {
678
678
  handshakeTimeout: 5e3,
679
679
  ...Object.keys(headers).length ? { headers } : {}
680
680
  });
@@ -1808,7 +1808,7 @@ async function getChromeWebSocketUrl(cdpUrl, timeoutMs = 500) {
1808
1808
  async function canOpenWebSocket(wsUrl, timeoutMs = 800) {
1809
1809
  return await new Promise((resolve) => {
1810
1810
  const headers = getHeadersWithAuth(wsUrl);
1811
- const ws = new WebSocket(wsUrl, {
1811
+ const ws = new WebSocket$1(wsUrl, {
1812
1812
  handshakeTimeout: timeoutMs,
1813
1813
  ...Object.keys(headers).length ? { headers } : {}
1814
1814
  });
@@ -124,7 +124,7 @@ const entries = [
124
124
  name: "gateway",
125
125
  description: "Gateway control",
126
126
  register: async (program) => {
127
- (await import("./gateway-cli-D22Xontg.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-DqkKLgtf.js")).registerGatewayCli(program);
128
128
  }
129
129
  },
130
130
  {
@@ -282,7 +282,7 @@ const entries = [
282
282
  name: "update",
283
283
  description: "CLI update helpers",
284
284
  register: async (program) => {
285
- (await import("./update-cli-BCaEtm-_.js")).registerUpdateCli(program);
285
+ (await import("./update-cli-DMnkb0sT.js")).registerUpdateCli(program);
286
286
  }
287
287
  },
288
288
  {
@@ -1,6 +1,6 @@
1
1
  import { n as __exportAll } from "./chunk-BXK9XSlF.js";
2
2
  import { X as resolveStateDir } from "./entry.js";
3
- import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-CtEzJT9Y.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-CpNxblG5.js";
4
4
  import path from "node:path";
5
5
  import os from "node:os";
6
6
  import fs from "node:fs/promises";
@@ -22,7 +22,7 @@ import { a as resolveSessionTranscriptsDirForAgent, i as resolveSessionTranscrip
22
22
  import { d as loadSessionStore } from "./sandbox-BlIjYgKj.js";
23
23
  import { r as runCommandWithRuntime } from "./cli-utils-CQTTNUIq.js";
24
24
  import { n as ensurePluginRegistryLoaded, t as hasExplicitOptions } from "./command-options-CebL-fVk.js";
25
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-CtEzJT9Y.js";
25
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-CpNxblG5.js";
26
26
  import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-CEFiyjZQ.js";
27
27
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-ClnqshEE.js";
28
28
  import { t as createDefaultDeps } from "./deps-QpJPsy_z.js";
@@ -34,12 +34,12 @@ import { l as healthCommand } from "./health-format-BOsDk3CA.js";
34
34
  import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-DxXv_BdP.js";
35
35
  import { $ as setOpenrouterApiKey, C as applyMoonshotConfig, D as applyOpenrouterConfig, F as applyVercelAiGatewayConfig, J as setGeminiApiKey, K as setAnthropicApiKey, L as applyXaiConfig, N as applyVeniceConfig, Q as setOpencodeZenApiKey, V as applyZaiConfig, X as setMinimaxApiKey, Y as setKimiCodingApiKey, Z as setMoonshotApiKey, at as setXiaomiApiKey, et as setQianfanApiKey, f as applyOpencodeZenConfig, ft as buildTokenProfileId, g as applyMinimaxConfig, it as setXaiApiKey, j as applySyntheticConfig, k as applyQianfanConfig, m as applyMinimaxApiConfig, nt as setVeniceApiKey, ot as setZaiApiKey, pt as validateAnthropicSetupToken, q as setCloudflareAiGatewayConfig, rt as setVercelAiGatewayApiKey, tt as setSyntheticApiKey, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyXiaomiConfig } from "./github-copilot-auth-DXz3a3E2.js";
36
36
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-BABn73ug.js";
37
- import { a as findAgentEntryIndex, c as pruneAgentConfig, d as parseIdentityMarkdown, f as runOnboardingWizard, i as buildAgentSummaries, l as identityHasValues, o as listAgentEntries, r as applyAgentConfig, s as loadAgentIdentity, t as statusCommand } from "./status-DsBR1L_y.js";
37
+ import { a as findAgentEntryIndex, c as pruneAgentConfig, d as parseIdentityMarkdown, f as runOnboardingWizard, i as buildAgentSummaries, l as identityHasValues, o as listAgentEntries, r as applyAgentConfig, s as loadAgentIdentity, t as statusCommand } from "./status-DqK2dG7C.js";
38
38
  import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as agentCommand } from "./agent-1yUpWtsp.js";
39
39
  import { t as formatHelpExamples } from "./help-format-CocQBHml.js";
40
40
  import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-BOlIPgRO.js";
41
41
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-DcXZ2d0V.js";
42
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-Dxb8X0q6.js";
42
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-C5msTpTy.js";
43
43
  import path from "node:path";
44
44
  import fs from "node:fs";
45
45
  import JSON5 from "json5";
@@ -1,7 +1,7 @@
1
1
  import { n as __exportAll } from "./chunk-BXK9XSlF.js";
2
2
  import { j as normalizeAccountId$1 } from "./agent-scope-DADS8Ogj.js";
3
3
  import { H as logVerbose, N as resolveUserPath, W as shouldLogVerbose, b as getActivePluginRegistry } from "./exec-BfklUyuf.js";
4
- import { At as hasAlphaChannel, En as mediaKindFromMime, G as appendAssistantMessageToSessionTranscript, It as closeDispatcher, K as resolveMirroredTranscriptText, Lt as createPinnedDispatcher, Mt as resizeToJpeg, On as resolveSignalAccount, Ot as convertHeicToJpeg, Pt as saveMediaBuffer, Rt as resolvePinnedHostname, Tn as maxBytesForKind, _n as detectMime, gt as getChannelDock, jn as normalizeChannelId, jt as optimizeImageToPng, kn as getChannelPlugin, m as isMessagingToolDuplicate, on as INTERNAL_MESSAGE_CHANNEL, vn as extensionForMime, zt as resolvePinnedHostnameWithPolicy } from "./pi-embedded-helpers-DndpstXk.js";
4
+ import { At as hasAlphaChannel, En as mediaKindFromMime, G as appendAssistantMessageToSessionTranscript, It as closeDispatcher, K as resolveMirroredTranscriptText, Lt as createPinnedDispatcher, Mt as resizeToJpeg, On as resolveSignalAccount, Ot as convertHeicToJpeg, Pt as saveMediaBuffer, Rt as resolvePinnedHostname, Tn as maxBytesForKind, _n as detectMime, gt as getChannelDock, jn as normalizeChannelId, jt as optimizeImageToPng, kn as getChannelPlugin, m as isMessagingToolDuplicate, on as INTERNAL_MESSAGE_CHANNEL, vn as extensionForMime, zt as resolvePinnedHostnameWithPolicy } from "./pi-embedded-helpers-DiUtuQVi.js";
5
5
  import { t as loadConfig } from "./config-DTSb2B10.js";
6
6
  import path from "node:path";
7
7
  import fs from "node:fs/promises";
@@ -29,7 +29,7 @@ import { r as isSystemdUserServiceAvailable } from "./systemd-DQvm8tRB.js";
29
29
  import { n as renderSystemdUnavailableHints, t as isSystemdUnavailableDetail } from "./systemd-hints-DiosV8jd.js";
30
30
  import { a as renderGatewayServiceCleanupHints, i as findExtraGatewayServices, n as auditGatewayServiceConfig, o as readLastGatewayErrorLine, r as needsNodeRuntimeMigration, t as SERVICE_AUDIT_CODES } from "./service-audit-Cl2xpTw4.js";
31
31
  import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-BOsDk3CA.js";
32
- import { f as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-BqEkEtKd.js";
32
+ import { f as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-D8AUbg1Q.js";
33
33
  import { n as logConfigUpdated } from "./logging-BABn73ug.js";
34
34
  import { t as buildWorkspaceSkillStatus } from "./skills-status-C7vawdcf.js";
35
35
  import { n as buildAuthHealthSummary, r as formatRemainingShort, t as DEFAULT_OAUTH_WARN_MS } from "./auth-health-CYc6Lu9i.js";
@@ -26,7 +26,7 @@ import { n as logConfigUpdated } from "./logging-CLxV9Na7.js";
26
26
  import { t as note$1 } from "./note-CrCSjpk3.js";
27
27
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-KzIwJe0A.js";
28
28
  import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-DAVONZbr.js";
29
- import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-Dc8nrgx_.js";
29
+ import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-C3M37OWx.js";
30
30
  import { i as resolveGatewayAuth } from "./auth-DSrYkGU-.js";
31
31
  import { t as buildWorkspaceSkillStatus } from "./skills-status-BVaiHzFh.js";
32
32
  import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLaunchAgentListed, o as resolveGatewayLogPaths, r as isLaunchAgentLoaded, t as resolveGatewayService } from "./service-BKQOHHW6.js";
package/dist/entry.js CHANGED
@@ -1334,7 +1334,7 @@ if (!ensureExperimentalWarningSuppressed()) {
1334
1334
  applyCliProfileEnv({ profile: parsed.profile });
1335
1335
  process$1.argv = parsed.argv;
1336
1336
  }
1337
- import("./run-main-CtznOwNo.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
1337
+ import("./run-main-CTkDjBWt.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
1338
1338
  console.error("[SKYKOI] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
1339
1339
  process$1.exitCode = 1;
1340
1340
  });
@@ -4,18 +4,18 @@ import { A as normalizeE164, B as danger, C as CONFIG_DIR, D as formatTerminalLi
4
4
  import { A as markAuthProfileGood, B as isTruthyEnvValue, D as markAuthProfileUsed, E as markAuthProfileFailure, F as getShellPathFromLoginShell, H as DEFAULT_CONTEXT_TOKENS, L as resolveShellEnvFallbackTimeoutMs, M as resolveAuthStorePathForDisplay, N as resolveSKYKOIAgentDir, O as resolveApiKeyForProfile, P as resolveAuthProfileDisplayLabel, S as resolveModelAuthMode, T as isProfileInCooldown, U as DEFAULT_MODEL, V as parseBooleanValue$1, W as DEFAULT_PROVIDER, _ as getApiKeyForModel, a as modelKey, b as resolveApiKeyForProvider, c as resolveConfiguredModelRef, d as resolveThinkingDefault, f as normalizeGoogleModelId, i as isCliProvider, j as ensureAuthProfileStore, k as listProfilesForProvider, l as resolveDefaultModelForAgent, n as buildConfiguredAllowlistKeys, o as normalizeProviderId, r as buildModelAliasIndex, t as buildAllowedModelSet, u as resolveModelRefFromString, v as getCustomProviderApiKey, w as resolveAuthProfileOrder, x as resolveEnvApiKey, y as requireApiKey } from "./model-selection-ySZMJ7mi.js";
5
5
  import { n as resolveCliName, t as formatCliCommand } from "./command-format-DdZOTXFw.js";
6
6
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-CdUb9zlY.js";
7
- import { A as MediaFetchError, B as resolveTextChunkLimit, C as resolveFetch, D as markdownToIRWithMeta, E as markdownToIR, F as chunkMarkdownText, G as SILENT_REPLY_TOKEN, H as isSafeFenceBreak, I as chunkMarkdownTextWithMode, K as isSilentReplyText, L as chunkText, M as fetchWithSsrFGuard, N as resolveMarkdownTableMode, O as loadWebMedia, P as chunkByNewline, R as chunkTextWithMode, S as parseInlineDirectives$1, T as chunkMarkdownIR, U as parseFenceSpans, V as findFenceSpanAt, W as HEARTBEAT_TOKEN, _ as buildTargetResolverSignature, a as applyReplyThreading, b as parseReplyDirectives, c as shouldSuppressMessagingToolReplies, d as sendMessageSignal, f as sendReadReceiptSignal, g as streamSignalEvents, h as signalRpcRequest, i as applyReplyTagsToPayload, j as fetchRemoteMedia, k as loadWebMediaRaw, l as createReplyToModeFilterForChannel, m as signalCheck, o as filterMessagingToolDuplicates, p as sendTypingSignal, r as normalizeReplyPayloadsForDelivery, s as isRenderablePayload, t as deliverOutboundPayloads, u as resolveReplyToMode, v as normalizeChannelTargetInput, w as wrapFetchWithAbortSignal, x as splitMediaFromOutput, y as normalizeTargetForProvider, z as resolveChunkMode } from "./deliver-NgkqO2dd.js";
8
- import { $ as updateSessionStoreEntry, $t as normalizeToolName, A as isCloudCodeAssistFormatError, An as listChannelPlugins, B as parseImageSizeError, Bn as resolveSlackAppToken, Bt as buildWorkspaceSkillCommandSpecs, C as BILLING_ERROR_USER_MESSAGE, Cn as kindFromMime, Ct as resolveGroupSessionKey, D as getApiErrorPayloadFingerprint, Dn as listEnabledSignalAccounts, Dt as resolveProfile, E as formatRawAssistantErrorForUi, En as mediaKindFromMime, Et as resolveBrowserConfig, F as isLikelyContextOverflowError, Fn as listTelegramAccountIds, Ft as SsrFBlockedError, G as appendAssistantMessageToSessionTranscript, Gn as normalizeDiscordToken, Gt as applySkillEnvOverrides, H as ensureSandboxWorkspaceForSession, Hn as normalizeChatType, Ht as loadWorkspaceSkillEntries, I as isRateLimitAssistantError, In as resolveTelegramAccount, J as readSessionUpdatedAt, Jt as applyOwnerOnlyToolPolicy, Kt as applySkillEnvOverridesFromSnapshot, L as isRawApiErrorPayload, Ln as resolveTelegramToken, M as isContextOverflowError, Mn as isWhatsAppGroupJid, Mt as resizeToJpeg, N as isFailoverAssistantError, Nn as normalizeWhatsAppTarget, Nt as getMediaDir, O as isAuthAssistantError, On as resolveSignalAccount, P as isFailoverErrorMessage, Pn as listEnabledTelegramAccounts, Pt as saveMediaBuffer, Q as updateSessionStore, Qt as expandToolGroups, R as isTimeoutErrorMessage, Rn as listBindings, S as isGoogleModelApi, Sn as isGifMedia, St as resolveConversationLabel, T as formatAssistantErrorText, Tt as registerBrowserRoutes, U as resolveSandboxContext, Un as listEnabledDiscordAccounts, Ut as resolveSkillsPromptForRun, V as sanitizeUserFacingText, Vn as resolveSlackBotToken, Vt as buildWorkspaceSkillSnapshot, W as resolveSandboxRuntimeStatus, Wn as resolveDiscordAccount, Wt as resolvePluginSkillDirs, X as saveSessionStore, Xt as collectExplicitAllowlist, Y as recordSessionMetaFromInbound, Yt as buildPluginToolGroups, Z as updateLastRoute, Zt as expandPolicyWithPluginGroups, _ as sanitizeSessionMessagesImages, _n as detectMime, _t as listChannelDocks, a as formatXHighModelHint, an as sanitizeGoogleTurnOrdering, at as normalizeDeliveryContext, b as downgradeOpenAIReasoningBlocks, bn as imageMimeFromFormat, bt as resolveChannelGroupToolsPolicy, c as normalizeReasoningLevel, cn as isInternalMessageChannel, ct as evaluateSessionFreshness, d as normalizeVerboseLevel, dn as normalizeMessageChannel, dt as resolveSessionResetType, en as resolveToolProfilePolicy, et as isCacheEnabled, f as resolveResponseUsageMode, fn as resolveGatewayMessageChannel, ft as resolveThreadFlag, g as normalizeTextForComparison, gn as GATEWAY_CLIENT_NAMES, gt as getChannelDock, h as isMessagingToolDuplicateNormalized, hn as GATEWAY_CLIENT_MODES, ht as deriveSessionMetaPatch, i as formatThinkingLevels, in as resolveBootstrapMaxChars, it as mergeDeliveryContext, j as isCompactionFailureError, jn as normalizeChannelId$1, k as isBillingAssistantError, kn as getChannelPlugin, kt as getImageMetadata, l as normalizeThinkLevel, ln as isMarkdownCapableMessageChannel, lt as resolveChannelResetConfig, mn as GATEWAY_CLIENT_IDS, mt as resolveMainSessionKey, n as validateGeminiTurns, nn as buildBootstrapContextFiles, nt as deliveryContextFromSession, o as listThinkingLevels, on as INTERNAL_MESSAGE_CHANNEL, ot as normalizeSessionDeliveryFields, p as supportsXHighThinking, pn as resolveMessageChannel, pt as DEFAULT_RESET_TRIGGERS, q as loadSessionStore, qt as resolveSandboxConfigForAgent, r as pickFallbackThinkingLevel, rn as ensureSessionHeader, rt as deliveryContextKey, s as normalizeElevatedLevel, sn as isDeliverableMessageChannel, st as resolveSessionKey$1, t as validateAnthropicTurns, tn as stripPluginOnlyAllowlist, tt as resolveCacheTtlMs$1, u as normalizeUsageDisplay, un as listDeliverableMessageChannels, ut as resolveSessionResetPolicy, v as sanitizeImageBlocks, vn as extensionForMime, vt as resolveChannelGroupPolicy, w as classifyFailoverReason, wn as MAX_IMAGE_BYTES, wt as createBrowserRouteContext, x as isAntigravityClaude, xn as isAudioFileName, xt as resolveIMessageAccount, y as sanitizeToolResultImages, yn as getFileExtension, yt as resolveChannelGroupRequireMention, z as parseImageDimensionError, zn as resolveSlackAccount } from "./pi-embedded-helpers-DndpstXk.js";
7
+ import { A as MediaFetchError, B as resolveTextChunkLimit, C as resolveFetch, D as markdownToIRWithMeta, E as markdownToIR, F as chunkMarkdownText, G as SILENT_REPLY_TOKEN, H as isSafeFenceBreak, I as chunkMarkdownTextWithMode, K as isSilentReplyText, L as chunkText, M as fetchWithSsrFGuard, N as resolveMarkdownTableMode, O as loadWebMedia, P as chunkByNewline, R as chunkTextWithMode, S as parseInlineDirectives$1, T as chunkMarkdownIR, U as parseFenceSpans, V as findFenceSpanAt, W as HEARTBEAT_TOKEN, _ as buildTargetResolverSignature, a as applyReplyThreading, b as parseReplyDirectives, c as shouldSuppressMessagingToolReplies, d as sendMessageSignal, f as sendReadReceiptSignal, g as streamSignalEvents, h as signalRpcRequest, i as applyReplyTagsToPayload, j as fetchRemoteMedia, k as loadWebMediaRaw, l as createReplyToModeFilterForChannel, m as signalCheck, o as filterMessagingToolDuplicates, p as sendTypingSignal, r as normalizeReplyPayloadsForDelivery, s as isRenderablePayload, t as deliverOutboundPayloads, u as resolveReplyToMode, v as normalizeChannelTargetInput, w as wrapFetchWithAbortSignal, x as splitMediaFromOutput, y as normalizeTargetForProvider, z as resolveChunkMode } from "./deliver-DvaXZ6lQ.js";
8
+ import { $ as updateSessionStoreEntry, $t as normalizeToolName, A as isCloudCodeAssistFormatError, An as listChannelPlugins, B as parseImageSizeError, Bn as resolveSlackAppToken, Bt as buildWorkspaceSkillCommandSpecs, C as BILLING_ERROR_USER_MESSAGE, Cn as kindFromMime, Ct as resolveGroupSessionKey, D as getApiErrorPayloadFingerprint, Dn as listEnabledSignalAccounts, Dt as resolveProfile, E as formatRawAssistantErrorForUi, En as mediaKindFromMime, Et as resolveBrowserConfig, F as isLikelyContextOverflowError, Fn as listTelegramAccountIds, Ft as SsrFBlockedError, G as appendAssistantMessageToSessionTranscript, Gn as normalizeDiscordToken, Gt as applySkillEnvOverrides, H as ensureSandboxWorkspaceForSession, Hn as normalizeChatType, Ht as loadWorkspaceSkillEntries, I as isRateLimitAssistantError, In as resolveTelegramAccount, J as readSessionUpdatedAt, Jt as applyOwnerOnlyToolPolicy, Kt as applySkillEnvOverridesFromSnapshot, L as isRawApiErrorPayload, Ln as resolveTelegramToken, M as isContextOverflowError, Mn as isWhatsAppGroupJid, Mt as resizeToJpeg, N as isFailoverAssistantError, Nn as normalizeWhatsAppTarget, Nt as getMediaDir, O as isAuthAssistantError, On as resolveSignalAccount, P as isFailoverErrorMessage, Pn as listEnabledTelegramAccounts, Pt as saveMediaBuffer, Q as updateSessionStore, Qt as expandToolGroups, R as isTimeoutErrorMessage, Rn as listBindings, S as isGoogleModelApi, Sn as isGifMedia, St as resolveConversationLabel, T as formatAssistantErrorText, Tt as registerBrowserRoutes, U as resolveSandboxContext, Un as listEnabledDiscordAccounts, Ut as resolveSkillsPromptForRun, V as sanitizeUserFacingText, Vn as resolveSlackBotToken, Vt as buildWorkspaceSkillSnapshot, W as resolveSandboxRuntimeStatus, Wn as resolveDiscordAccount, Wt as resolvePluginSkillDirs, X as saveSessionStore, Xt as collectExplicitAllowlist, Y as recordSessionMetaFromInbound, Yt as buildPluginToolGroups, Z as updateLastRoute, Zt as expandPolicyWithPluginGroups, _ as sanitizeSessionMessagesImages, _n as detectMime, _t as listChannelDocks, a as formatXHighModelHint, an as sanitizeGoogleTurnOrdering, at as normalizeDeliveryContext, b as downgradeOpenAIReasoningBlocks, bn as imageMimeFromFormat, bt as resolveChannelGroupToolsPolicy, c as normalizeReasoningLevel, cn as isInternalMessageChannel, ct as evaluateSessionFreshness, d as normalizeVerboseLevel, dn as normalizeMessageChannel, dt as resolveSessionResetType, en as resolveToolProfilePolicy, et as isCacheEnabled, f as resolveResponseUsageMode, fn as resolveGatewayMessageChannel, ft as resolveThreadFlag, g as normalizeTextForComparison, gn as GATEWAY_CLIENT_NAMES, gt as getChannelDock, h as isMessagingToolDuplicateNormalized, hn as GATEWAY_CLIENT_MODES, ht as deriveSessionMetaPatch, i as formatThinkingLevels, in as resolveBootstrapMaxChars, it as mergeDeliveryContext, j as isCompactionFailureError, jn as normalizeChannelId$1, k as isBillingAssistantError, kn as getChannelPlugin, kt as getImageMetadata, l as normalizeThinkLevel, ln as isMarkdownCapableMessageChannel, lt as resolveChannelResetConfig, mn as GATEWAY_CLIENT_IDS, mt as resolveMainSessionKey, n as validateGeminiTurns, nn as buildBootstrapContextFiles, nt as deliveryContextFromSession, o as listThinkingLevels, on as INTERNAL_MESSAGE_CHANNEL, ot as normalizeSessionDeliveryFields, p as supportsXHighThinking, pn as resolveMessageChannel, pt as DEFAULT_RESET_TRIGGERS, q as loadSessionStore, qt as resolveSandboxConfigForAgent, r as pickFallbackThinkingLevel, rn as ensureSessionHeader, rt as deliveryContextKey, s as normalizeElevatedLevel, sn as isDeliverableMessageChannel, st as resolveSessionKey$1, t as validateAnthropicTurns, tn as stripPluginOnlyAllowlist, tt as resolveCacheTtlMs$1, u as normalizeUsageDisplay, un as listDeliverableMessageChannels, ut as resolveSessionResetPolicy, v as sanitizeImageBlocks, vn as extensionForMime, vt as resolveChannelGroupPolicy, w as classifyFailoverReason, wn as MAX_IMAGE_BYTES, wt as createBrowserRouteContext, x as isAntigravityClaude, xn as isAudioFileName, xt as resolveIMessageAccount, y as sanitizeToolResultImages, yn as getFileExtension, yt as resolveChannelGroupRequireMention, z as parseImageDimensionError, zn as resolveSlackAccount } from "./pi-embedded-helpers-DiUtuQVi.js";
9
9
  import { A as getWebAuthAgeMs, C as getConfigValueAtPath, D as resolveAgentMaxConcurrent, E as unsetConfigValueAtPath, M as logoutWeb, O as VERSION, P as readWebSelfId, R as webAuthExists, S as unsetConfigOverride, T as setConfigValueAtPath, _ as resolveEnableState, a as validateConfigObjectWithPlugins, b as resetConfigOverrides, c as resolveTelegramCustomCommands, d as validateJsonSchemaValue, f as loadPluginManifestRegistry, g as normalizePluginsConfig, i as writeConfigFile, j as logWebSelfId, k as resolveWhatsAppAccount, l as isSafeExecutableValue, n as readConfigFileSnapshot, o as TELEGRAM_COMMAND_NAME_PATTERN, p as discoverSKYKOIPlugins, r as resolveConfigSnapshotHash, s as normalizeTelegramCommandName, t as loadConfig, u as parseDurationMs, v as resolveMemorySlotDecision, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-DTSb2B10.js";
10
10
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-BowiL596.js";
11
- import { C as DEFAULT_AI_SNAPSHOT_MAX_CHARS, _ as rawDataToString, b as formatUncaughtError, h as ensureChromeExtensionRelayServer, v as extractErrorCode, y as formatErrorMessage$1 } from "./chrome-D9pzo3iX.js";
11
+ import { C as DEFAULT_AI_SNAPSHOT_MAX_CHARS, _ as rawDataToString, b as formatUncaughtError, h as ensureChromeExtensionRelayServer, v as extractErrorCode, y as formatErrorMessage$1 } from "./chrome-v9VtdV-R.js";
12
12
  import { a as resolveStorePath, i as resolveSessionTranscriptsDirForAgent, n as resolveSessionFilePath, r as resolveSessionTranscriptPath } from "./paths-Dx_DFiIu.js";
13
13
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-JLH5W4He.js";
14
- import { _ as stripThinkingTagsFromText, a as decodeDataUrl, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractAssistantThinking, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, t as describeImageWithModel, u as extractThinkingFromTaggedStream, v as resolveToolDisplay, y as ensureSKYKOIModelsJson } from "./image-BuRx-hla.js";
14
+ import { _ as stripThinkingTagsFromText, a as decodeDataUrl, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractAssistantThinking, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, t as describeImageWithModel, u as extractThinkingFromTaggedStream, v as resolveToolDisplay, y as ensureSKYKOIModelsJson } from "./image-szyjg5wy.js";
15
15
  import { i as resolveMemorySearchConfig, n as resolveRetryConfig, r as retryAsync } from "./manager-BxUFVh1r.js";
16
16
  import { c as listMemoryFiles, l as normalizeExtraMemoryPaths } from "./sqlite-DRGmFCyY.js";
17
17
  import { t as redactSensitiveText } from "./redact-BIMJ3ntQ.js";
18
- import { a as formatError$1, c as downloadMediaMessage, d as normalizeMessageContent, f as isJidGroup, i as createWaSocket, l as extractMessageContent, n as startWebLoginWithQr, o as getStatusCode$1, p as DisconnectReason, r as waitForWebLogin, s as waitForWaConnection, u as getContentType } from "./login-qr-DvQWogOh.js";
18
+ import { a as formatError$1, c as downloadMediaMessage, d as normalizeMessageContent, f as isJidGroup, i as createWaSocket, l as extractMessageContent, n as startWebLoginWithQr, o as getStatusCode$1, p as DisconnectReason, r as waitForWebLogin, s as waitForWaConnection, u as getContentType } from "./login-qr-D81xG5SB.js";
19
19
  import { createRequire } from "node:module";
20
20
  import * as os$1 from "node:os";
21
21
  import os, { homedir, tmpdir } from "node:os";
@@ -35,7 +35,7 @@ import { EdgeTTS } from "node-edge-tts";
35
35
  import AjvPkg from "ajv";
36
36
  import { createServer } from "node:http";
37
37
  import { ProxyAgent, fetch as fetch$1 } from "undici";
38
- import { WebSocket as WebSocket$1 } from "ws";
38
+ import { WebSocket } from "ws";
39
39
  import { Buffer as Buffer$1 } from "node:buffer";
40
40
  import * as net$1 from "node:net";
41
41
  import net from "node:net";
@@ -7182,7 +7182,7 @@ var GatewayClient = class {
7182
7182
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
7183
7183
  });
7184
7184
  }
7185
- this.ws = new WebSocket$1(url, wsOptions);
7185
+ this.ws = new WebSocket(url, wsOptions);
7186
7186
  this.ws.on("open", () => {
7187
7187
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
7188
7188
  const tlsError = this.validateTlsFingerprint();
@@ -7392,7 +7392,7 @@ var GatewayClient = class {
7392
7392
  return null;
7393
7393
  }
7394
7394
  async request(method, params, opts) {
7395
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
7395
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
7396
7396
  const id = randomUUID();
7397
7397
  const frame = {
7398
7398
  type: "req",
@@ -9126,7 +9126,7 @@ async function routeReply(params) {
9126
9126
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
9127
9127
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
9128
9128
  try {
9129
- const { deliverOutboundPayloads } = await import("./deliver-NgkqO2dd.js").then((n) => n.n);
9129
+ const { deliverOutboundPayloads } = await import("./deliver-DvaXZ6lQ.js").then((n) => n.n);
9130
9130
  return {
9131
9131
  ok: true,
9132
9132
  messageId: (await deliverOutboundPayloads({
@@ -44349,7 +44349,7 @@ async function describeStickerImage(params) {
44349
44349
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
44350
44350
  try {
44351
44351
  const buffer = await fs$1.readFile(imagePath);
44352
- const { describeImageWithModel } = await import("./image-BuRx-hla.js").then((n) => n.n);
44352
+ const { describeImageWithModel } = await import("./image-szyjg5wy.js").then((n) => n.n);
44353
44353
  return (await describeImageWithModel({
44354
44354
  buffer,
44355
44355
  fileName: "sticker.webp",
@@ -44706,7 +44706,7 @@ function createWhatsAppLoginTool() {
44706
44706
  force: Type.Optional(Type.Boolean())
44707
44707
  }),
44708
44708
  execute: async (_toolCallId, args) => {
44709
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DvQWogOh.js").then((n) => n.t);
44709
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-D81xG5SB.js").then((n) => n.t);
44710
44710
  if ((args?.action ?? "start") === "wait") {
44711
44711
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
44712
44712
  return {
@@ -61,8 +61,8 @@ import { r as runCommandWithRuntime } from "./cli-utils-CQTTNUIq.js";
61
61
  import "./pairing-labels-DxpfDscO.js";
62
62
  import { t as buildChannelAccountSnapshot } from "./status-t7_XFd6z.js";
63
63
  import "./channels-status-issues-Cx4DwKM8.js";
64
- import "./register.subclis-CtEzJT9Y.js";
65
- import "./completion-cli-B34SKAqF.js";
64
+ import "./register.subclis-CpNxblG5.js";
65
+ import "./completion-cli-D2wcH9xL.js";
66
66
  import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-QpJPsy_z.js";
67
67
  import "./daemon-runtime-BK6HirWQ.js";
68
68
  import "./service-DV05Mtg_.js";
@@ -76,12 +76,12 @@ import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as
76
76
  import { i as probeGateway } from "./audit-Cby0wP0x.js";
77
77
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-DCQ4I_sx.js";
78
78
  import { a as resolveControlUiRootOverrideSync, c as getHealthSnapshot, d as runHeartbeatOnce, f as setHeartbeatsEnabled, n as ensureControlUiAssetsBuilt, o as resolveControlUiRootSync, p as startHeartbeatRunner, s as formatHealthChannelLines } from "./health-format-BOsDk3CA.js";
79
- import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-BqEkEtKd.js";
79
+ import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-D8AUbg1Q.js";
80
80
  import { n as installSkill } from "./onboard-skills-DxXv_BdP.js";
81
81
  import "./github-copilot-auth-DXz3a3E2.js";
82
82
  import "./logging-BABn73ug.js";
83
83
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-k4MUOGQH.js";
84
- import { a as findAgentEntryIndex, c as pruneAgentConfig, f as runOnboardingWizard, n as getStatusSummary, o as listAgentEntries, r as applyAgentConfig, s as loadAgentIdentity, u as loadAgentIdentityFromWorkspace } from "./status-DsBR1L_y.js";
84
+ import { a as findAgentEntryIndex, c as pruneAgentConfig, f as runOnboardingWizard, n as getStatusSummary, o as listAgentEntries, r as applyAgentConfig, s as loadAgentIdentity, u as loadAgentIdentityFromWorkspace } from "./status-DqK2dG7C.js";
85
85
  import { t as buildWorkspaceSkillStatus } from "./skills-status-C7vawdcf.js";
86
86
  import "./tui-DmyiEmq0.js";
87
87
  import { i as setGatewayWsLogStyle, n as logWs, r as summarizeAgentEventForWsLog, t as formatForLog } from "./ws-log-ChBzRVLy.js";
@@ -18308,7 +18308,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
18308
18308
  meshManager.broadcastLocalNodesChanged();
18309
18309
  });
18310
18310
  const meshCfg = cfgAtStart.gateway?.mesh;
18311
- const platformUrl = meshCfg?.platformUrl || process.env.SKYKOI_PLATFORM_URL || (resolvedAuth.token ? "https://skykoi.com" : void 0);
18311
+ const platformUrl = meshCfg?.platformUrl || process.env.SKYKOI_PLATFORM_URL || (resolvedAuth.token ? "https://www.skykoi.com" : void 0);
18312
18312
  if (platformUrl || meshCfg?.mdnsDiscovery !== false) {
18313
18313
  const gwUrl = `${gatewayTls.enabled ? "wss" : "ws"}://${process.env.SKYKOI_GATEWAY_ADVERTISE_HOST || meshCfg?.advertiseHost || (() => {
18314
18314
  const h = bindHost && bindHost !== "0.0.0.0" && bindHost !== "::" && bindHost !== "127.0.0.1" ? bindHost : void 0;
@@ -55,7 +55,7 @@ import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-Bh3T
55
55
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-C9oNI3cv.js";
56
56
  import { t as ensureSKYKOICliOnPath } from "./path-env-BnUKFCos.js";
57
57
  import "./daemon-runtime-BayngMTF.js";
58
- import { c as loadAgentIdentity, d as loadAgentIdentityFromWorkspace, i as applyAgentConfig, l as pruneAgentConfig, o as findAgentEntryIndex, p as forceFreePortAndWait, r as getStatusSummary, s as listAgentEntries, t as runOnboardingWizard } from "./onboarding-Do43CQ1u.js";
58
+ import { c as loadAgentIdentity, d as loadAgentIdentityFromWorkspace, i as applyAgentConfig, l as pruneAgentConfig, o as findAgentEntryIndex, p as forceFreePortAndWait, r as getStatusSummary, s as listAgentEntries, t as runOnboardingWizard } from "./onboarding-BxDEKvJS.js";
59
59
  import { t as resolveChannelDefaultAccountId } from "./helpers-yjIEMzi8.js";
60
60
  import "./logging-CLxV9Na7.js";
61
61
  import "./note-CrCSjpk3.js";
@@ -68,7 +68,7 @@ import "./archive-Dy3Ezb-5.js";
68
68
  import "./skill-scanner-BoGjHXUZ.js";
69
69
  import "./installs-ChtZhX65.js";
70
70
  import { a as resolveControlUiRootOverrideSync, c as getHealthSnapshot, d as runHeartbeatOnce, f as setHeartbeatsEnabled, n as ensureControlUiAssetsBuilt, o as resolveControlUiRootSync, p as startHeartbeatRunner, s as formatHealthChannelLines } from "./health-format-DAVONZbr.js";
71
- import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-Dc8nrgx_.js";
71
+ import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-C3M37OWx.js";
72
72
  import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-DSrYkGU-.js";
73
73
  import { i as probeGateway } from "./audit-CQN8OO1t.js";
74
74
  import "./table-BOthYYmp.js";
@@ -78,7 +78,7 @@ import { p as resolveGatewayStateDir } from "./systemd-DyrxDxSB.js";
78
78
  import "./service-audit-BtmGCivu.js";
79
79
  import "./node-service-DPiAKtp-.js";
80
80
  import "./channels-status-issues-CbB072Pz.js";
81
- import "./completion-cli-BAOmjKt-.js";
81
+ import "./completion-cli-B5V3OVI6.js";
82
82
  import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-sD_-VQQ5.js";
83
83
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-Cr9yVcsB.js";
84
84
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-DijK3IkC.js";
@@ -18309,7 +18309,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
18309
18309
  meshManager.broadcastLocalNodesChanged();
18310
18310
  });
18311
18311
  const meshCfg = cfgAtStart.gateway?.mesh;
18312
- const platformUrl = meshCfg?.platformUrl || process.env.SKYKOI_PLATFORM_URL || (resolvedAuth.token ? "https://skykoi.com" : void 0);
18312
+ const platformUrl = meshCfg?.platformUrl || process.env.SKYKOI_PLATFORM_URL || (resolvedAuth.token ? "https://www.skykoi.com" : void 0);
18313
18313
  if (platformUrl || meshCfg?.mdnsDiscovery !== false) {
18314
18314
  const gwUrl = `${gatewayTls.enabled ? "wss" : "ws"}://${process.env.SKYKOI_GATEWAY_ADVERTISE_HOST || meshCfg?.advertiseHost || (() => {
18315
18315
  const h = bindHost && bindHost !== "0.0.0.0" && bindHost !== "::" && bindHost !== "127.0.0.1" ? bindHost : void 0;
@@ -1,7 +1,7 @@
1
1
  import { n as __exportAll } from "./chunk-BXK9XSlF.js";
2
2
  import { P as shortenHomeInString } from "./exec-BfklUyuf.js";
3
3
  import { N as resolveSKYKOIAgentDir, _ as getApiKeyForModel, g as resolveImplicitProviders, h as resolveImplicitCopilotProvider, m as resolveImplicitBedrockProvider, p as normalizeProviders, y as requireApiKey } from "./model-selection-ySZMJ7mi.js";
4
- import { V as sanitizeUserFacingText } from "./pi-embedded-helpers-DndpstXk.js";
4
+ import { V as sanitizeUserFacingText } from "./pi-embedded-helpers-DiUtuQVi.js";
5
5
  import { t as loadConfig } from "./config-DTSb2B10.js";
6
6
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-BowiL596.js";
7
7
  import { n as redactToolDetail } from "./redact-BIMJ3ntQ.js";
package/dist/index.js CHANGED
@@ -51,7 +51,7 @@ import { l as ensureBinary, u as promptYesNo } from "./tailscale-C9oNI3cv.js";
51
51
  import { t as isMainModule } from "./is-main-B6kCyqsv.js";
52
52
  import { t as ensureSKYKOICliOnPath } from "./path-env-BnUKFCos.js";
53
53
  import { a as gatewayInstallErrorHint, g as assertSupportedRuntime, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BayngMTF.js";
54
- import { a as buildAgentSummaries, c as loadAgentIdentity, f as parseIdentityMarkdown, i as applyAgentConfig, l as pruneAgentConfig, n as statusCommand, o as findAgentEntryIndex, s as listAgentEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-Do43CQ1u.js";
54
+ import { a as buildAgentSummaries, c as loadAgentIdentity, f as parseIdentityMarkdown, i as applyAgentConfig, l as pruneAgentConfig, n as statusCommand, o as findAgentEntryIndex, s as listAgentEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-BxDEKvJS.js";
55
55
  import { t as resolveChannelDefaultAccountId } from "./helpers-yjIEMzi8.js";
56
56
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-CLxV9Na7.js";
57
57
  import "./note-CrCSjpk3.js";
@@ -65,7 +65,7 @@ import "./archive-Dy3Ezb-5.js";
65
65
  import "./skill-scanner-BoGjHXUZ.js";
66
66
  import "./installs-ChtZhX65.js";
67
67
  import { l as healthCommand } from "./health-format-DAVONZbr.js";
68
- import "./update-runner-Dc8nrgx_.js";
68
+ import "./update-runner-C3M37OWx.js";
69
69
  import "./auth-DSrYkGU-.js";
70
70
  import "./audit-CQN8OO1t.js";
71
71
  import { t as renderTable } from "./table-BOthYYmp.js";
@@ -75,7 +75,7 @@ import { r as isSystemdUserServiceAvailable } from "./systemd-DyrxDxSB.js";
75
75
  import "./service-audit-BtmGCivu.js";
76
76
  import "./node-service-DPiAKtp-.js";
77
77
  import "./channels-status-issues-CbB072Pz.js";
78
- import { c as registerSubCliCommands, d as getPositiveIntFlagValue, f as getVerboseFlag, l as getCommandPath, m as hasHelpOrVersion, p as hasFlag, u as getFlagValue } from "./completion-cli-BAOmjKt-.js";
78
+ import { c as registerSubCliCommands, d as getPositiveIntFlagValue, f as getVerboseFlag, l as getCommandPath, m as hasHelpOrVersion, p as hasFlag, u as getFlagValue } from "./completion-cli-B5V3OVI6.js";
79
79
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-JqYMK2zC.js";
80
80
  import { t as formatHelpExamples } from "./help-format-q-N7n7vs.js";
81
81
  import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as agentCommand } from "./agent-sD_-VQQ5.js";
@@ -86,7 +86,7 @@ import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-C5N
86
86
  import "./widearea-dns-Cr9yVcsB.js";
87
87
  import "./bonjour-discovery-DijK3IkC.js";
88
88
  import "./auth-health-BJ1smAlv.js";
89
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-ChyvLuDR.js";
89
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-C7TRY86F.js";
90
90
  import "./hooks-status-CYR4Wx26.js";
91
91
  import { i as hasEmittedCliBanner, n as emitCliBanner, r as formatCliBannerLine } from "./tui-BphTCmkN.js";
92
92
  import process$1 from "node:process";
@@ -4,7 +4,7 @@ import { t as formatCliCommand } from "./command-format-DdZOTXFw.js";
4
4
  import { F as resolveDefaultWebAuthDir, I as resolveWebCredsBackupPath, L as resolveWebCredsPath, M as logoutWeb, N as maybeRestoreCredsFromBackup, O as VERSION, P as readWebSelfId, R as webAuthExists, k as resolveWhatsAppAccount, t as loadConfig } from "./config-DTSb2B10.js";
5
5
  import fs from "node:fs";
6
6
  import { randomUUID } from "node:crypto";
7
- import WebSocket from "ws";
7
+ import WebSocket$1 from "ws";
8
8
  import * as Crypto from "crypto";
9
9
  import { createCipheriv, createDecipheriv, createHash as createHash$1, createHmac, randomBytes as randomBytes$1 } from "crypto";
10
10
  import { promisify } from "util";
@@ -94729,20 +94729,20 @@ var WebSocketClient = class extends AbstractSocketClient {
94729
94729
  this.socket = null;
94730
94730
  }
94731
94731
  get isOpen() {
94732
- return this.socket?.readyState === WebSocket.OPEN;
94732
+ return this.socket?.readyState === WebSocket$1.OPEN;
94733
94733
  }
94734
94734
  get isClosed() {
94735
- return this.socket === null || this.socket?.readyState === WebSocket.CLOSED;
94735
+ return this.socket === null || this.socket?.readyState === WebSocket$1.CLOSED;
94736
94736
  }
94737
94737
  get isClosing() {
94738
- return this.socket === null || this.socket?.readyState === WebSocket.CLOSING;
94738
+ return this.socket === null || this.socket?.readyState === WebSocket$1.CLOSING;
94739
94739
  }
94740
94740
  get isConnecting() {
94741
- return this.socket?.readyState === WebSocket.CONNECTING;
94741
+ return this.socket?.readyState === WebSocket$1.CONNECTING;
94742
94742
  }
94743
94743
  connect() {
94744
94744
  if (this.socket) return;
94745
- this.socket = new WebSocket(this.url, {
94745
+ this.socket = new WebSocket$1(this.url, {
94746
94746
  origin: DEFAULT_ORIGIN,
94747
94747
  headers: this.config.options?.headers,
94748
94748
  handshakeTimeout: this.config.connectTimeoutMs,
@@ -24,7 +24,7 @@ import { t as WizardCancelledError } from "./prompts-FbZThK8w.js";
24
24
  import { d as applyAuthChoice, h as promptAuthChoiceGrouped, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills, u as warnIfModelConfigLooksOff } from "./onboard-skills-CGgzTn6B.js";
25
25
  import { n as setupChannels } from "./onboard-channels-CV-Ba-gi.js";
26
26
  import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForAgent } from "./health-format-DAVONZbr.js";
27
- import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, d as formatUpdateOneLiner, f as getUpdateCheckResult, h as compareSemverStrings, l as ensureCompletionCacheExists, m as checkUpdateStatus, p as resolveUpdateAvailability, s as checkShellCompletionStatus, u as formatUpdateAvailableHint, x as formatUpdateChannelLabel } from "./update-runner-Dc8nrgx_.js";
27
+ import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, d as formatUpdateOneLiner, f as getUpdateCheckResult, h as compareSemverStrings, l as ensureCompletionCacheExists, m as checkUpdateStatus, p as resolveUpdateAvailability, s as checkShellCompletionStatus, u as formatUpdateAvailableHint, x as formatUpdateChannelLabel } from "./update-runner-C3M37OWx.js";
28
28
  import { i as probeGateway, t as runSecurityAudit } from "./audit-CQN8OO1t.js";
29
29
  import { t as renderTable } from "./table-BOthYYmp.js";
30
30
  import { t as buildWorkspaceSkillStatus } from "./skills-status-BVaiHzFh.js";
@@ -34,7 +34,7 @@ import { o as readLastGatewayErrorLine } from "./service-audit-BtmGCivu.js";
34
34
  import { t as resolveNodeService } from "./node-service-DPiAKtp-.js";
35
35
  import { t as collectChannelStatusIssues } from "./channels-status-issues-CbB072Pz.js";
36
36
  import { i as redactSecrets, n as formatDuration$1, r as formatGatewayAuthUsed, t as formatAge$1 } from "./format-8citvr_1.js";
37
- import { r as installCompletion } from "./completion-cli-BAOmjKt-.js";
37
+ import { r as installCompletion } from "./completion-cli-B5V3OVI6.js";
38
38
  import { t as buildWorkspaceHookStatus } from "./hooks-status-CYR4Wx26.js";
39
39
  import { t as runTui } from "./tui-BphTCmkN.js";
40
40
  import os from "node:os";
@@ -4,7 +4,7 @@ import { A as normalizeE164, C as CONFIG_DIR, N as resolveUserPath, _ as normali
4
4
  import { B as isTruthyEnvValue, V as parseBooleanValue } from "./model-selection-ySZMJ7mi.js";
5
5
  import { t as formatCliCommand } from "./command-format-DdZOTXFw.js";
6
6
  import { _ as resolveEnableState, f as loadPluginManifestRegistry, g as normalizePluginsConfig, h as MANIFEST_KEY, i as writeConfigFile, k as resolveWhatsAppAccount, m as LEGACY_MANIFEST_KEYS, t as loadConfig, v as resolveMemorySlotDecision } from "./config-DTSb2B10.js";
7
- import { C as DEFAULT_AI_SNAPSHOT_MAX_CHARS, D as DEFAULT_SKYKOI_BROWSER_ENABLED, E as DEFAULT_SKYKOI_BROWSER_COLOR, O as DEFAULT_SKYKOI_BROWSER_PROFILE_NAME, S as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, T as DEFAULT_BROWSER_EVALUATE_ENABLED, a as resolveSKYKOIUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as stopChromeExtensionRelayServer, h as ensureChromeExtensionRelayServer, i as launchSKYKOIChrome, l as createTargetViaCdp, m as getHeadersWithAuth, n as isChromeCdpReady, o as stopSKYKOIChrome, p as appendCdpPath, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as extractErrorCode, w as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, x as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, y as formatErrorMessage } from "./chrome-D9pzo3iX.js";
7
+ import { C as DEFAULT_AI_SNAPSHOT_MAX_CHARS, D as DEFAULT_SKYKOI_BROWSER_ENABLED, E as DEFAULT_SKYKOI_BROWSER_COLOR, O as DEFAULT_SKYKOI_BROWSER_PROFILE_NAME, S as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, T as DEFAULT_BROWSER_EVALUATE_ENABLED, a as resolveSKYKOIUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as stopChromeExtensionRelayServer, h as ensureChromeExtensionRelayServer, i as launchSKYKOIChrome, l as createTargetViaCdp, m as getHeadersWithAuth, n as isChromeCdpReady, o as stopSKYKOIChrome, p as appendCdpPath, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as extractErrorCode, w as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, x as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, y as formatErrorMessage } from "./chrome-v9VtdV-R.js";
8
8
  import { r as resolveSessionTranscriptPath, t as resolveDefaultSessionStorePath } from "./paths-Dx_DFiIu.js";
9
9
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-JLH5W4He.js";
10
10
  import os from "node:os";
@@ -2043,7 +2043,7 @@ function isModuleNotFoundError(err) {
2043
2043
  }
2044
2044
  async function loadPwAiModule(mode) {
2045
2045
  try {
2046
- return await import("./pw-ai--Z1SBz-G.js");
2046
+ return await import("./pw-ai-plLn2C3S.js");
2047
2047
  } catch (err) {
2048
2048
  if (mode === "soft") return null;
2049
2049
  if (isModuleNotFoundError(err)) return null;
@@ -4865,11 +4865,11 @@ function createProfileContext(opts, profile) {
4865
4865
  const userDataDir = resolveSKYKOIUserDataDir(profile.name);
4866
4866
  const profileState = getProfileState();
4867
4867
  if (await isHttpReachable(300) && !profileState.running) try {
4868
- await (await import("./pw-ai--Z1SBz-G.js")).closePlaywrightBrowserConnection();
4868
+ await (await import("./pw-ai-plLn2C3S.js")).closePlaywrightBrowserConnection();
4869
4869
  } catch {}
4870
4870
  if (profileState.running) await stopRunningBrowser();
4871
4871
  try {
4872
- await (await import("./pw-ai--Z1SBz-G.js")).closePlaywrightBrowserConnection();
4872
+ await (await import("./pw-ai-plLn2C3S.js")).closePlaywrightBrowserConnection();
4873
4873
  } catch {}
4874
4874
  if (!fs.existsSync(userDataDir)) return {
4875
4875
  moved: false,
@@ -6,7 +6,7 @@ import os, { homedir } from "node:os";
6
6
  import path from "node:path";
7
7
  import fs, { createWriteStream, existsSync, statSync } from "node:fs";
8
8
  import { Logger } from "tslog";
9
- import JSON5 from "json5";
9
+ import json5 from "json5";
10
10
  import chalk, { Chalk } from "chalk";
11
11
  import fs$1 from "node:fs/promises";
12
12
  import { execFile, execFileSync, spawn } from "node:child_process";
@@ -2272,7 +2272,7 @@ function readLoggingConfig() {
2272
2272
  try {
2273
2273
  if (!fs.existsSync(configPath)) return;
2274
2274
  const raw = fs.readFileSync(configPath, "utf-8");
2275
- const logging = JSON5.parse(raw)?.logging;
2275
+ const logging = json5.parse(raw)?.logging;
2276
2276
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
2277
2277
  return logging;
2278
2278
  } catch {
@@ -8077,7 +8077,7 @@ var IncludeProcessor = class IncludeProcessor {
8077
8077
  };
8078
8078
  const defaultResolver = {
8079
8079
  readFile: (p) => fs.readFileSync(p, "utf-8"),
8080
- parseJson: (raw) => JSON5.parse(raw)
8080
+ parseJson: (raw) => json5.parse(raw)
8081
8081
  };
8082
8082
  /**
8083
8083
  * Resolves all $include directives in a parsed config object.
@@ -10726,18 +10726,18 @@ function resolveConfigPathForDeps(deps) {
10726
10726
  function normalizeDeps(overrides = {}) {
10727
10727
  return {
10728
10728
  fs: overrides.fs ?? fs,
10729
- json5: overrides.json5 ?? JSON5,
10729
+ json5: overrides.json5 ?? json5,
10730
10730
  env: overrides.env ?? process.env,
10731
10731
  homedir: overrides.homedir ?? os.homedir,
10732
10732
  configPath: overrides.configPath ?? "",
10733
10733
  logger: overrides.logger ?? console
10734
10734
  };
10735
10735
  }
10736
- function parseConfigJson5(raw, json5 = JSON5) {
10736
+ function parseConfigJson5(raw, json5$1 = json5) {
10737
10737
  try {
10738
10738
  return {
10739
10739
  ok: true,
10740
- parsed: json5.parse(raw)
10740
+ parsed: json5$1.parse(raw)
10741
10741
  };
10742
10742
  } catch (err) {
10743
10743
  return {
@@ -11234,7 +11234,7 @@ function loadSessionStore(storePath, opts = {}) {
11234
11234
  let mtimeMs = getFileMtimeMs(storePath);
11235
11235
  try {
11236
11236
  const raw = fs.readFileSync(storePath, "utf-8");
11237
- const parsed = JSON5.parse(raw);
11237
+ const parsed = json5.parse(raw);
11238
11238
  if (isSessionStoreRecord(parsed)) store = parsed;
11239
11239
  mtimeMs = getFileMtimeMs(storePath) ?? mtimeMs;
11240
11240
  } catch {}
@@ -52,8 +52,8 @@ import "./pairing-labels-DxpfDscO.js";
52
52
  import "./channels-status-issues-Cx4DwKM8.js";
53
53
  import { n as ensurePluginRegistryLoaded } from "./command-options-CebL-fVk.js";
54
54
  import { n as resolveCliChannelOptions } from "./channel-options-Bwi6Svoj.js";
55
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-CtEzJT9Y.js";
56
- import "./completion-cli-B34SKAqF.js";
55
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-CpNxblG5.js";
56
+ import "./completion-cli-D2wcH9xL.js";
57
57
  import "./gateway-rpc-ClnqshEE.js";
58
58
  import "./deps-QpJPsy_z.js";
59
59
  import "./daemon-runtime-BK6HirWQ.js";
@@ -65,23 +65,23 @@ import "./widearea-dns-DHSIgmLp.js";
65
65
  import "./audit-Cby0wP0x.js";
66
66
  import "./bonjour-discovery-DCQ4I_sx.js";
67
67
  import "./health-format-BOsDk3CA.js";
68
- import "./update-runner-BqEkEtKd.js";
68
+ import "./update-runner-D8AUbg1Q.js";
69
69
  import "./onboard-skills-DxXv_BdP.js";
70
70
  import "./github-copilot-auth-DXz3a3E2.js";
71
71
  import "./logging-BABn73ug.js";
72
72
  import "./hooks-status-k4MUOGQH.js";
73
- import "./status-DsBR1L_y.js";
73
+ import "./status-DqK2dG7C.js";
74
74
  import "./skills-status-C7vawdcf.js";
75
75
  import { i as hasEmittedCliBanner, n as emitCliBanner, r as formatCliBannerLine } from "./tui-DmyiEmq0.js";
76
76
  import "./agent-1yUpWtsp.js";
77
77
  import "./node-service-CZ2f4t4z.js";
78
78
  import { t as forceFreePort } from "./ports-B9ymx6GD.js";
79
79
  import "./auth-health-CYc6Lu9i.js";
80
- import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-B8lxMosR.js";
80
+ import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-NAIvHfQB.js";
81
81
  import "./help-format-CocQBHml.js";
82
82
  import "./configure-BOlIPgRO.js";
83
83
  import "./systemd-linger-DcXZ2d0V.js";
84
- import "./doctor-Dxb8X0q6.js";
84
+ import "./doctor-C5msTpTy.js";
85
85
  import { Command } from "commander";
86
86
 
87
87
  //#region src/cli/program/context.ts
@@ -1,7 +1,7 @@
1
1
  import "./paths-BKn8dZXk.js";
2
2
  import "./exec-BfklUyuf.js";
3
3
  import { t as formatCliCommand } from "./command-format-DdZOTXFw.js";
4
- import { m as getHeadersWithAuth, t as getChromeWebSocketUrl, u as formatAriaSnapshot, y as formatErrorMessage } from "./chrome-D9pzo3iX.js";
4
+ import { m as getHeadersWithAuth, t as getChromeWebSocketUrl, u as formatAriaSnapshot, y as formatErrorMessage } from "./chrome-v9VtdV-R.js";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs/promises";
7
7
  import crypto from "node:crypto";
@@ -124,7 +124,7 @@ const entries = [
124
124
  name: "gateway",
125
125
  description: "Gateway control",
126
126
  register: async (program) => {
127
- (await import("./gateway-cli-BzeSXEUX.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-B7S2Uq8P.js")).registerGatewayCli(program);
128
128
  }
129
129
  },
130
130
  {
@@ -282,14 +282,14 @@ const entries = [
282
282
  name: "update",
283
283
  description: "CLI update helpers",
284
284
  register: async (program) => {
285
- (await import("./update-cli-_sRlyitZ.js")).registerUpdateCli(program);
285
+ (await import("./update-cli-CXU0eiM5.js")).registerUpdateCli(program);
286
286
  }
287
287
  },
288
288
  {
289
289
  name: "completion",
290
290
  description: "Generate shell completion script",
291
291
  register: async (program) => {
292
- (await import("./completion-cli-B34SKAqF.js").then((n) => n.n)).registerCompletionCli(program);
292
+ (await import("./completion-cli-D2wcH9xL.js").then((n) => n.n)).registerCompletionCli(program);
293
293
  }
294
294
  }
295
295
  ];
@@ -51,8 +51,8 @@ import "./login-qr-BgffN-K5.js";
51
51
  import "./pairing-labels-DxpfDscO.js";
52
52
  import "./channels-status-issues-Cx4DwKM8.js";
53
53
  import { n as ensurePluginRegistryLoaded } from "./command-options-CebL-fVk.js";
54
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-CtEzJT9Y.js";
55
- import "./completion-cli-B34SKAqF.js";
54
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-CpNxblG5.js";
55
+ import "./completion-cli-D2wcH9xL.js";
56
56
  import "./gateway-rpc-ClnqshEE.js";
57
57
  import "./deps-QpJPsy_z.js";
58
58
  import { h as assertSupportedRuntime } from "./daemon-runtime-BK6HirWQ.js";
@@ -64,22 +64,22 @@ import "./widearea-dns-DHSIgmLp.js";
64
64
  import "./audit-Cby0wP0x.js";
65
65
  import "./bonjour-discovery-DCQ4I_sx.js";
66
66
  import "./health-format-BOsDk3CA.js";
67
- import "./update-runner-BqEkEtKd.js";
67
+ import "./update-runner-D8AUbg1Q.js";
68
68
  import "./onboard-skills-DxXv_BdP.js";
69
69
  import "./github-copilot-auth-DXz3a3E2.js";
70
70
  import "./logging-BABn73ug.js";
71
71
  import "./hooks-status-k4MUOGQH.js";
72
- import "./status-DsBR1L_y.js";
72
+ import "./status-DqK2dG7C.js";
73
73
  import "./skills-status-C7vawdcf.js";
74
74
  import { n as emitCliBanner } from "./tui-DmyiEmq0.js";
75
75
  import "./agent-1yUpWtsp.js";
76
76
  import "./node-service-CZ2f4t4z.js";
77
77
  import "./auth-health-CYc6Lu9i.js";
78
- import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-B8lxMosR.js";
78
+ import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-NAIvHfQB.js";
79
79
  import "./help-format-CocQBHml.js";
80
80
  import "./configure-BOlIPgRO.js";
81
81
  import "./systemd-linger-DcXZ2d0V.js";
82
- import "./doctor-Dxb8X0q6.js";
82
+ import "./doctor-C5msTpTy.js";
83
83
  import path from "node:path";
84
84
  import process$1 from "node:process";
85
85
  import fs from "node:fs";
@@ -141,7 +141,7 @@ async function runCli(argv = process$1.argv) {
141
141
  assertSupportedRuntime();
142
142
  if (await tryRouteCli(normalizedArgv)) return;
143
143
  enableConsoleCapture();
144
- const { buildProgram } = await import("./program-CTHEtluj.js");
144
+ const { buildProgram } = await import("./program-DkSPq75D.js");
145
145
  const program = buildProgram();
146
146
  installUnhandledRejectionHandler();
147
147
  process$1.on("uncaughtException", (error) => {
@@ -151,7 +151,7 @@ async function runCli(argv = process$1.argv) {
151
151
  const parseArgv = rewriteUpdateFlagArgv(normalizedArgv);
152
152
  const primary = getPrimaryCommand(parseArgv);
153
153
  if (primary) {
154
- const { registerSubCliByName } = await import("./register.subclis-CtEzJT9Y.js").then((n) => n.i);
154
+ const { registerSubCliByName } = await import("./register.subclis-CpNxblG5.js").then((n) => n.i);
155
155
  await registerSubCliByName(program, primary);
156
156
  }
157
157
  if (!(!primary && hasHelpOrVersion(parseArgv))) {
@@ -20,7 +20,7 @@ import { o as resolveStorePath } from "./paths-DPLOvGLU.js";
20
20
  import { I as resolveMainSessionKey, d as loadSessionStore } from "./sandbox-BlIjYgKj.js";
21
21
  import { t as buildChannelSummary } from "./channel-summary-DJhMycuy.js";
22
22
  import { t as collectChannelStatusIssues } from "./channels-status-issues-Cx4DwKM8.js";
23
- import { r as installCompletion } from "./completion-cli-B34SKAqF.js";
23
+ import { r as installCompletion } from "./completion-cli-D2wcH9xL.js";
24
24
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BK6HirWQ.js";
25
25
  import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-DV05Mtg_.js";
26
26
  import { r as isSystemdUserServiceAvailable } from "./systemd-DQvm8tRB.js";
@@ -28,7 +28,7 @@ import { o as readLastGatewayErrorLine } from "./service-audit-Cl2xpTw4.js";
28
28
  import { t as renderTable } from "./table-Kzsd53ks.js";
29
29
  import { i as probeGateway, t as runSecurityAudit } from "./audit-Cby0wP0x.js";
30
30
  import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForAgent } from "./health-format-BOsDk3CA.js";
31
- import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, c as formatUpdateOneLiner, d as checkShellCompletionStatus, h as compareSemverStrings, l as getUpdateCheckResult, m as checkUpdateStatus, p as ensureCompletionCacheExists, s as formatUpdateAvailableHint, u as resolveUpdateAvailability, x as formatUpdateChannelLabel } from "./update-runner-BqEkEtKd.js";
31
+ import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, c as formatUpdateOneLiner, d as checkShellCompletionStatus, h as compareSemverStrings, l as getUpdateCheckResult, m as checkUpdateStatus, p as ensureCompletionCacheExists, s as formatUpdateAvailableHint, u as resolveUpdateAvailability, x as formatUpdateChannelLabel } from "./update-runner-D8AUbg1Q.js";
32
32
  import { d as applyAuthChoice, h as promptAuthChoiceGrouped, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills, u as warnIfModelConfigLooksOff } from "./onboard-skills-DxXv_BdP.js";
33
33
  import { n as logConfigUpdated } from "./logging-BABn73ug.js";
34
34
  import { t as buildWorkspaceHookStatus } from "./hooks-status-k4MUOGQH.js";
@@ -49,8 +49,8 @@ import "./pairing-store-D5pH_THY.js";
49
49
  import "./login-qr-BgffN-K5.js";
50
50
  import "./pairing-labels-DxpfDscO.js";
51
51
  import "./channels-status-issues-Cx4DwKM8.js";
52
- import "./register.subclis-CtEzJT9Y.js";
53
- import { r as installCompletion } from "./completion-cli-B34SKAqF.js";
52
+ import "./register.subclis-CpNxblG5.js";
53
+ import { r as installCompletion } from "./completion-cli-D2wcH9xL.js";
54
54
  import "./deps-QpJPsy_z.js";
55
55
  import { g as parseSemver } from "./daemon-runtime-BK6HirWQ.js";
56
56
  import "./service-DV05Mtg_.js";
@@ -60,14 +60,14 @@ import { r as runDaemonRestart } from "./daemon-cli-D6NAlRH7.js";
60
60
  import "./service-audit-Cl2xpTw4.js";
61
61
  import { t as renderTable } from "./table-Kzsd53ks.js";
62
62
  import "./health-format-BOsDk3CA.js";
63
- import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, c as formatUpdateOneLiner, d as checkShellCompletionStatus, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as ensureCompletionCacheExists, r as detectGlobalInstallManagerByPresence, s as formatUpdateAvailableHint, t as runGatewayUpdate, u as resolveUpdateAvailability, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-BqEkEtKd.js";
63
+ import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, c as formatUpdateOneLiner, d as checkShellCompletionStatus, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as ensureCompletionCacheExists, r as detectGlobalInstallManagerByPresence, s as formatUpdateAvailableHint, t as runGatewayUpdate, u as resolveUpdateAvailability, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-D8AUbg1Q.js";
64
64
  import "./logging-BABn73ug.js";
65
65
  import "./skills-status-C7vawdcf.js";
66
66
  import "./auth-health-CYc6Lu9i.js";
67
67
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-BhfB1gW0.js";
68
68
  import { t as formatHelpExamples } from "./help-format-CocQBHml.js";
69
69
  import "./systemd-linger-DcXZ2d0V.js";
70
- import { t as doctorCommand } from "./doctor-Dxb8X0q6.js";
70
+ import { t as doctorCommand } from "./doctor-C5msTpTy.js";
71
71
  import { spawnSync } from "node:child_process";
72
72
  import path from "node:path";
73
73
  import os from "node:os";
@@ -54,7 +54,7 @@ import "./archive-Dy3Ezb-5.js";
54
54
  import "./skill-scanner-BoGjHXUZ.js";
55
55
  import "./installs-ChtZhX65.js";
56
56
  import "./health-format-DAVONZbr.js";
57
- import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, d as formatUpdateOneLiner, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, l as ensureCompletionCacheExists, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as resolveUpdateAvailability, r as detectGlobalInstallManagerByPresence, s as checkShellCompletionStatus, t as runGatewayUpdate, u as formatUpdateAvailableHint, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-Dc8nrgx_.js";
57
+ import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, d as formatUpdateOneLiner, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, l as ensureCompletionCacheExists, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as resolveUpdateAvailability, r as detectGlobalInstallManagerByPresence, s as checkShellCompletionStatus, t as runGatewayUpdate, u as formatUpdateAvailableHint, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-C3M37OWx.js";
58
58
  import "./auth-DSrYkGU-.js";
59
59
  import { t as renderTable } from "./table-BOthYYmp.js";
60
60
  import "./skills-status-BVaiHzFh.js";
@@ -62,11 +62,11 @@ import "./service-BKQOHHW6.js";
62
62
  import "./systemd-DyrxDxSB.js";
63
63
  import "./service-audit-BtmGCivu.js";
64
64
  import "./channels-status-issues-CbB072Pz.js";
65
- import { r as installCompletion } from "./completion-cli-BAOmjKt-.js";
65
+ import { r as installCompletion } from "./completion-cli-B5V3OVI6.js";
66
66
  import { t as formatHelpExamples } from "./help-format-q-N7n7vs.js";
67
67
  import "./systemd-linger-C5NE1TWa.js";
68
68
  import "./auth-health-BJ1smAlv.js";
69
- import { t as doctorCommand } from "./doctor-ChyvLuDR.js";
69
+ import { t as doctorCommand } from "./doctor-C7TRY86F.js";
70
70
  import "./shared-kMTQ9UT0.js";
71
71
  import { r as runDaemonRestart } from "./daemon-cli-DC5iIhr3.js";
72
72
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-BLphos5T.js";
@@ -6,7 +6,7 @@ import { j as VERSION } from "./config-nVdFpcsN.js";
6
6
  import { _ as parseSemver } from "./daemon-runtime-BayngMTF.js";
7
7
  import { t as note } from "./note-CrCSjpk3.js";
8
8
  import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-DAVONZbr.js";
9
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BAOmjKt-.js";
9
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-B5V3OVI6.js";
10
10
  import os from "node:os";
11
11
  import path from "node:path";
12
12
  import fs from "node:fs/promises";
@@ -4,7 +4,7 @@ import { t as resolveSKYKOIPackageRoot } from "./SKYKOI-root-B5HYTPZX.js";
4
4
  import { j as VERSION } from "./config-DxY4DsNc.js";
5
5
  import { Ln as trimLogTail } from "./loader-DJZg0qBH.js";
6
6
  import { t as note } from "./note-YmyPRD-3.js";
7
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-B34SKAqF.js";
7
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-D2wcH9xL.js";
8
8
  import { g as parseSemver } from "./daemon-runtime-BK6HirWQ.js";
9
9
  import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-BOsDk3CA.js";
10
10
  import { spawnSync } from "node:child_process";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skykoi",
3
- "version": "2026.3.41",
3
+ "version": "2026.3.42",
4
4
  "description": "SkyKoi — AI agent runtime. Multi-channel gateway CLI with RPC agent. Forked from SkyKoi.",
5
5
  "keywords": [
6
6
  "skykoi",