skykoi 2026.3.12 → 2026.3.13

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 +2 -2
  2. package/dist/{chrome-Dfln0wVx.js → chrome-BjAcrZj9.js} +7 -7
  3. package/dist/{completion-cli-wSNPld68.js → completion-cli-_LeIQqrx.js} +1 -1
  4. package/dist/{completion-cli-CedaHqar.js → completion-cli-eOz2Eok0.js} +3 -3
  5. package/dist/{config-guard-CQDOlajj.js → config-guard-BrvBxgCx.js} +5 -4
  6. package/dist/{deliver-CjKjBVoZ.js → deliver-By6Hi4QY.js} +1 -1
  7. package/dist/{doctor-CZ_RG8qW.js → doctor-BiJToFxm.js} +1 -1
  8. package/dist/{doctor-vzlOMVxG.js → doctor-DXWbYdiJ.js} +1 -1
  9. package/dist/entry.js +1 -1
  10. package/dist/extensionAPI.js +9 -9
  11. package/dist/{gateway-cli-MgcBvBCO.js → gateway-cli-Cw3myFsr.js} +3 -3
  12. package/dist/{gateway-cli-CDUk8dib.js → gateway-cli-D4pYWVvA.js} +4 -4
  13. package/dist/{image-eglj6lOQ.js → image-BJVKKrw4.js} +1 -1
  14. package/dist/index.js +6 -5
  15. package/dist/{node-cli-KFmFvFHB.js → node-cli-Cvl9VzWS.js} +7 -2
  16. package/dist/{node-cli-BojvRXfQ.js → node-cli-DDe_hKJy.js} +7 -2
  17. package/dist/{onboarding-CyKoSaxq.js → onboarding-BZE2bqvl.js} +2 -2
  18. package/dist/{pi-embedded-helpers-BnzqoXFt.js → pi-embedded-helpers-DsIdUyG-.js} +4 -4
  19. package/dist/plugin-sdk/index.js +7 -7
  20. package/dist/{program-B5ODuKye.js → program-DwLiIvvz.js} +6 -6
  21. package/dist/{pw-ai-BvgC_PO9.js → pw-ai-DnYxHTIa.js} +1 -1
  22. package/dist/{register.subclis-DSWZPrlP.js → register.subclis-BI5UBoZ0.js} +4 -4
  23. package/dist/{run-main-D3ZqUlIK.js → run-main-C9APoN1r.js} +8 -8
  24. package/dist/{status-DJp5PZ3C.js → status-gCd5plro.js} +2 -2
  25. package/dist/{update-cli-BuDS4cBb.js → update-cli-3fHG7yxs.js} +3 -3
  26. package/dist/{update-cli-CZLPclVp.js → update-cli-BqR67nRm.js} +4 -4
  27. package/dist/{update-runner-DeqYHEUb.js → update-runner-CpLkRIIC.js} +1 -1
  28. package/dist/{update-runner-DBbA3ZDd.js → update-runner-ZXFy8Xy2.js} +1 -1
  29. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.3.12",
2
+ "version": "2026.3.13",
3
3
  "commit": "9bfcff3e36966fc76028113bf2f19842295f73b8",
4
- "builtAt": "2026-03-16T21:15:00.208Z"
4
+ "builtAt": "2026-03-16T22:47:17.751Z"
5
5
  }
@@ -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
  });
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { X as resolveStateDir } from "./entry.js";
3
- import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-DSWZPrlP.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-BI5UBoZ0.js";
4
4
  import path from "node:path";
5
5
  import os from "node:os";
6
6
  import fs from "node:fs/promises";
@@ -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-MgcBvBCO.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-Cw3myFsr.js")).registerGatewayCli(program);
128
128
  }
129
129
  },
130
130
  {
@@ -180,7 +180,7 @@ const entries = [
180
180
  name: "node",
181
181
  description: "Node control",
182
182
  register: async (program) => {
183
- (await import("./node-cli-KFmFvFHB.js")).registerNodeCli(program);
183
+ (await import("./node-cli-Cvl9VzWS.js")).registerNodeCli(program);
184
184
  }
185
185
  },
186
186
  {
@@ -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-BuDS4cBb.js")).registerUpdateCli(program);
285
+ (await import("./update-cli-3fHG7yxs.js")).registerUpdateCli(program);
286
286
  }
287
287
  },
288
288
  {
@@ -22,7 +22,7 @@ import { a as resolveSessionTranscriptsDirForAgent, i as resolveSessionTranscrip
22
22
  import { d as loadSessionStore } from "./sandbox-HZ5_C6Hk.js";
23
23
  import { r as runCommandWithRuntime } from "./cli-utils-DzrdzskQ.js";
24
24
  import { n as ensurePluginRegistryLoaded, t as hasExplicitOptions } from "./command-options-BbwtatGO.js";
25
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-DSWZPrlP.js";
25
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-BI5UBoZ0.js";
26
26
  import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-azbX_hrI.js";
27
27
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DTo9hvWi.js";
28
28
  import { t as createDefaultDeps } from "./deps-BZwKcMsI.js";
@@ -34,12 +34,12 @@ import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrou
34
34
  import { l as healthCommand } from "./health-format-DaYoO0eu.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-4421_bDI.js";
36
36
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-BDs786Px.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-DJp5PZ3C.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-gCd5plro.js";
38
38
  import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as agentCommand } from "./agent-H6F-y_iD.js";
39
39
  import { t as formatHelpExamples } from "./help-format-DuMTLWZ-.js";
40
40
  import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-CRbYmk96.js";
41
41
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-CEVIpVG8.js";
42
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-CZ_RG8qW.js";
42
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-BiJToFxm.js";
43
43
  import path from "node:path";
44
44
  import fs from "node:fs";
45
45
  import JSON5 from "json5";
@@ -5427,7 +5427,8 @@ const ALLOWED_INVALID_COMMANDS = new Set([
5427
5427
  "logs",
5428
5428
  "health",
5429
5429
  "help",
5430
- "status"
5430
+ "status",
5431
+ "node"
5431
5432
  ]);
5432
5433
  const ALLOWED_INVALID_GATEWAY_SUBCOMMANDS = new Set([
5433
5434
  "status",
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.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-BnzqoXFt.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-DsIdUyG-.js";
5
5
  import { t as loadConfig } from "./config-HMe-z2NO.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-DmEeTiZ0.js";
29
29
  import { n as renderSystemdUnavailableHints, t as isSystemdUnavailableDetail } from "./systemd-hints-dXiOYbUi.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-BTLXANqN.js";
31
31
  import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-DaYoO0eu.js";
32
- import { f as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-DeqYHEUb.js";
32
+ import { f as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-CpLkRIIC.js";
33
33
  import { n as logConfigUpdated } from "./logging-BDs786Px.js";
34
34
  import { t as buildWorkspaceSkillStatus } from "./skills-status-D1uoW4lu.js";
35
35
  import { n as buildAuthHealthSummary, r as formatRemainingShort, t as DEFAULT_OAUTH_WARN_MS } from "./auth-health-Csun8UBU.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-BYh5mZH5.js";
28
28
  import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-DlMsaI-P.js";
29
- import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-DBbA3ZDd.js";
29
+ import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-ZXFy8Xy2.js";
30
30
  import { i as resolveGatewayAuth } from "./auth-DSrYkGU-.js";
31
31
  import { t as buildWorkspaceSkillStatus } from "./skills-status-H6bA88MV.js";
32
32
  import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLaunchAgentListed, o as resolveGatewayLogPaths, r as isLaunchAgentLoaded, t as resolveGatewayService } from "./service-WG1x2OSQ.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-D3ZqUlIK.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
1337
+ import("./run-main-C9APoN1r.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,14 +4,14 @@ import { A as normalizeE164, B as danger, C as CONFIG_DIR, D as formatTerminalLi
4
4
  import { B as resolveSKYKOIAgentDir, C as getShellPathFromLoginShell, F as resolveApiKeyForProfile, H as DEFAULT_CONTEXT_TOKENS, I as listProfilesForProvider, L as markAuthProfileGood, M as isProfileInCooldown, N as markAuthProfileFailure, O as isTruthyEnvValue, P as markAuthProfileUsed, R as ensureAuthProfileStore, S as resolveModelAuthMode, T as resolveShellEnvFallbackTimeoutMs, U as DEFAULT_MODEL, V as resolveAuthProfileDisplayLabel, 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 resolveAuthProfileOrder, k as parseBooleanValue$1, l as resolveDefaultModelForAgent, n as buildConfiguredAllowlistKeys, o as normalizeProviderId, r as buildModelAliasIndex, t as buildAllowedModelSet, u as resolveModelRefFromString, v as getCustomProviderApiKey, x as resolveEnvApiKey, y as requireApiKey, z as resolveAuthStorePathForDisplay } from "./model-selection-H-QqLyJS.js";
5
5
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-Cyoe9dnQ.js";
6
6
  import { n as resolveCliName, t as formatCliCommand } from "./command-format-JFYLbDtd.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-CjKjBVoZ.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-BnzqoXFt.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-By6Hi4QY.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-DsIdUyG-.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-HMe-z2NO.js";
10
10
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-EhM2JAQo.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-Dfln0wVx.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-BjAcrZj9.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-eglj6lOQ.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-BJVKKrw4.js";
15
15
  import { i as resolveMemorySearchConfig, n as resolveRetryConfig, r as retryAsync } from "./manager-BJ0u8dRN.js";
16
16
  import { c as listMemoryFiles, l as normalizeExtraMemoryPaths } from "./sqlite-DRGmFCyY.js";
17
17
  import { t as redactSensitiveText } from "./redact-BIMJ3ntQ.js";
@@ -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";
@@ -7183,7 +7183,7 @@ var GatewayClient = class {
7183
7183
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
7184
7184
  });
7185
7185
  }
7186
- this.ws = new WebSocket$1(url, wsOptions);
7186
+ this.ws = new WebSocket(url, wsOptions);
7187
7187
  this.ws.on("open", () => {
7188
7188
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
7189
7189
  const tlsError = this.validateTlsFingerprint();
@@ -7393,7 +7393,7 @@ var GatewayClient = class {
7393
7393
  return null;
7394
7394
  }
7395
7395
  async request(method, params, opts) {
7396
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
7396
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
7397
7397
  const id = randomUUID();
7398
7398
  const frame = {
7399
7399
  type: "req",
@@ -9127,7 +9127,7 @@ async function routeReply(params) {
9127
9127
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
9128
9128
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
9129
9129
  try {
9130
- const { deliverOutboundPayloads } = await import("./deliver-CjKjBVoZ.js").then((n) => n.n);
9130
+ const { deliverOutboundPayloads } = await import("./deliver-By6Hi4QY.js").then((n) => n.n);
9131
9131
  return {
9132
9132
  ok: true,
9133
9133
  messageId: (await deliverOutboundPayloads({
@@ -44339,7 +44339,7 @@ async function describeStickerImage(params) {
44339
44339
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
44340
44340
  try {
44341
44341
  const buffer = await fs$1.readFile(imagePath);
44342
- const { describeImageWithModel } = await import("./image-eglj6lOQ.js").then((n) => n.n);
44342
+ const { describeImageWithModel } = await import("./image-BJVKKrw4.js").then((n) => n.n);
44343
44343
  return (await describeImageWithModel({
44344
44344
  buffer,
44345
44345
  fileName: "sticker.webp",
@@ -55,7 +55,7 @@ import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-ChzR
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-CFR2r-B9.js";
57
57
  import "./daemon-runtime-BpkQ2sSp.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-CyKoSaxq.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-BZE2bqvl.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-DlMsaI-P.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-DBbA3ZDd.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-ZXFy8Xy2.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-C_j5JhsI.js";
74
74
  import "./table-BOthYYmp.js";
@@ -78,7 +78,7 @@ import "./systemd-DyrxDxSB.js";
78
78
  import "./service-audit-DDd8ZNai.js";
79
79
  import "./node-service-0VCYYXMx.js";
80
80
  import "./channels-status-issues-CsbN-n1Z.js";
81
- import "./completion-cli-CedaHqar.js";
81
+ import "./completion-cli-eOz2Eok0.js";
82
82
  import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-ygN2C08W.js";
83
83
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-Cr9yVcsB.js";
84
84
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-D58LpxJJ.js";
@@ -61,8 +61,8 @@ import { r as runCommandWithRuntime } from "./cli-utils-DzrdzskQ.js";
61
61
  import "./pairing-labels-ByaUyk7_.js";
62
62
  import { t as buildChannelAccountSnapshot } from "./status-CWDof7Cn.js";
63
63
  import "./channels-status-issues-DcWAx1pE.js";
64
- import "./register.subclis-DSWZPrlP.js";
65
- import "./completion-cli-wSNPld68.js";
64
+ import "./register.subclis-BI5UBoZ0.js";
65
+ import "./completion-cli-_LeIQqrx.js";
66
66
  import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-BZwKcMsI.js";
67
67
  import "./daemon-runtime-BT9juKg3.js";
68
68
  import "./service-DCenfuWh.js";
@@ -76,11 +76,11 @@ import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as
76
76
  import { i as probeGateway } from "./audit-B8AGUDBD.js";
77
77
  import { g as discoverGatewayBeacons, n as installSkill } from "./onboard-skills-mB-9LcbZ.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-DaYoO0eu.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-DeqYHEUb.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-CpLkRIIC.js";
80
80
  import "./github-copilot-auth-4421_bDI.js";
81
81
  import "./logging-BDs786Px.js";
82
82
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-DqVSHHPb.js";
83
- 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-DJp5PZ3C.js";
83
+ 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-gCd5plro.js";
84
84
  import { t as buildWorkspaceSkillStatus } from "./skills-status-D1uoW4lu.js";
85
85
  import "./tui-B8c_1tIW.js";
86
86
  import { i as setGatewayWsLogStyle, n as logWs, r as summarizeAgentEventForWsLog, t as formatForLog } from "./ws-log-vBkmxf4_.js";
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { P as shortenHomeInString } from "./exec-BfklUyuf.js";
3
3
  import { B as resolveSKYKOIAgentDir, _ as getApiKeyForModel, g as resolveImplicitProviders, h as resolveImplicitCopilotProvider, m as resolveImplicitBedrockProvider, p as normalizeProviders, y as requireApiKey } from "./model-selection-H-QqLyJS.js";
4
- import { V as sanitizeUserFacingText } from "./pi-embedded-helpers-BnzqoXFt.js";
4
+ import { V as sanitizeUserFacingText } from "./pi-embedded-helpers-DsIdUyG-.js";
5
5
  import { t as loadConfig } from "./config-HMe-z2NO.js";
6
6
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-EhM2JAQo.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-CFR2r-B9.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-BpkQ2sSp.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-CyKoSaxq.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-BZE2bqvl.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-DlMsaI-P.js";
68
- import "./update-runner-DBbA3ZDd.js";
68
+ import "./update-runner-ZXFy8Xy2.js";
69
69
  import "./auth-DSrYkGU-.js";
70
70
  import "./audit-C_j5JhsI.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-DDd8ZNai.js";
76
76
  import "./node-service-0VCYYXMx.js";
77
77
  import "./channels-status-issues-CsbN-n1Z.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-CedaHqar.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-eOz2Eok0.js";
79
79
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-85opPBme.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-ygN2C08W.js";
@@ -85,7 +85,7 @@ import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCo
85
85
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-CdE0rrgu.js";
86
86
  import "./widearea-dns-Cr9yVcsB.js";
87
87
  import "./auth-health-TetlrB4X.js";
88
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-vzlOMVxG.js";
88
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-DXWbYdiJ.js";
89
89
  import "./hooks-status-D58LpxJJ.js";
90
90
  import { i as hasEmittedCliBanner, n as emitCliBanner, r as formatCliBannerLine } from "./tui-CPap7MXS.js";
91
91
  import process$1 from "node:process";
@@ -5544,7 +5544,8 @@ const ALLOWED_INVALID_COMMANDS = new Set([
5544
5544
  "logs",
5545
5545
  "health",
5546
5546
  "help",
5547
- "status"
5547
+ "status",
5548
+ "node"
5548
5549
  ]);
5549
5550
  const ALLOWED_INVALID_GATEWAY_SUBCOMMANDS = new Set([
5550
5551
  "status",
@@ -438,15 +438,20 @@ async function runNodeHost(opts) {
438
438
  if (nodeId !== config.nodeId) config.nodeId = nodeId;
439
439
  const displayName = opts.displayName?.trim() || config.displayName || await getMachineDisplayName();
440
440
  config.displayName = displayName;
441
+ let cfg;
442
+ try {
443
+ cfg = loadConfig();
444
+ } catch {
445
+ cfg = {};
446
+ }
441
447
  const gateway = {
442
448
  host: opts.gatewayHost,
443
449
  port: opts.gatewayPort,
444
- tls: opts.gatewayTls ?? loadConfig().gateway?.tls?.enabled ?? false,
450
+ tls: opts.gatewayTls ?? cfg.gateway?.tls?.enabled ?? false,
445
451
  tlsFingerprint: opts.gatewayTlsFingerprint
446
452
  };
447
453
  config.gateway = gateway;
448
454
  await saveNodeHostConfig(config);
449
- const cfg = loadConfig();
450
455
  const browserProxy = resolveBrowserProxyConfig();
451
456
  const resolvedBrowser = resolveBrowserConfig(cfg.browser, cfg);
452
457
  const browserProxyEnabled = browserProxy.enabled && resolvedBrowser.enabled;
@@ -435,15 +435,20 @@ async function runNodeHost(opts) {
435
435
  if (nodeId !== config.nodeId) config.nodeId = nodeId;
436
436
  const displayName = opts.displayName?.trim() || config.displayName || await getMachineDisplayName();
437
437
  config.displayName = displayName;
438
+ let cfg;
439
+ try {
440
+ cfg = loadConfig();
441
+ } catch {
442
+ cfg = {};
443
+ }
438
444
  const gateway = {
439
445
  host: opts.gatewayHost,
440
446
  port: opts.gatewayPort,
441
- tls: opts.gatewayTls ?? loadConfig().gateway?.tls?.enabled ?? false,
447
+ tls: opts.gatewayTls ?? cfg.gateway?.tls?.enabled ?? false,
442
448
  tlsFingerprint: opts.gatewayTlsFingerprint
443
449
  };
444
450
  config.gateway = gateway;
445
451
  await saveNodeHostConfig(config);
446
- const cfg = loadConfig();
447
452
  const browserProxy = resolveBrowserProxyConfig();
448
453
  const resolvedBrowser = resolveBrowserConfig(cfg.browser, cfg);
449
454
  const browserProxyEnabled = browserProxy.enabled && resolvedBrowser.enabled;
@@ -24,7 +24,7 @@ import { t as WizardCancelledError } from "./prompts-FbZThK8w.js";
24
24
  import { c as promptDefaultModel, d as warnIfModelConfigLooksOff, f as applyAuthChoice, g as promptAuthChoiceGrouped, r as promptRemoteGatewayConfig, s as applyPrimaryModel, t as setupSkills, u as resolvePreferredProviderForAuthChoice } from "./onboard-skills-DP4eNOhj.js";
25
25
  import { n as setupChannels } from "./onboard-channels-DoyLfJPk.js";
26
26
  import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForAgent } from "./health-format-DlMsaI-P.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-DBbA3ZDd.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-ZXFy8Xy2.js";
28
28
  import { i as probeGateway, t as runSecurityAudit } from "./audit-C_j5JhsI.js";
29
29
  import { t as renderTable } from "./table-BOthYYmp.js";
30
30
  import { t as buildWorkspaceSkillStatus } from "./skills-status-H6bA88MV.js";
@@ -34,7 +34,7 @@ import { o as readLastGatewayErrorLine } from "./service-audit-DDd8ZNai.js";
34
34
  import { t as resolveNodeService } from "./node-service-0VCYYXMx.js";
35
35
  import { t as collectChannelStatusIssues } from "./channels-status-issues-CsbN-n1Z.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-CedaHqar.js";
37
+ import { r as installCompletion } from "./completion-cli-eOz2Eok0.js";
38
38
  import { t as buildWorkspaceHookStatus } from "./hooks-status-D58LpxJJ.js";
39
39
  import { t as runTui } from "./tui-CPap7MXS.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 { O as isTruthyEnvValue, k as parseBooleanValue } from "./model-selection-H-QqLyJS.js";
5
5
  import { t as formatCliCommand } from "./command-format-JFYLbDtd.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-HMe-z2NO.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-Dfln0wVx.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-BjAcrZj9.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-BvgC_PO9.js");
2046
+ return await import("./pw-ai-DnYxHTIa.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-BvgC_PO9.js")).closePlaywrightBrowserConnection();
4868
+ await (await import("./pw-ai-DnYxHTIa.js")).closePlaywrightBrowserConnection();
4869
4869
  } catch {}
4870
4870
  if (profileState.running) await stopRunningBrowser();
4871
4871
  try {
4872
- await (await import("./pw-ai-BvgC_PO9.js")).closePlaywrightBrowserConnection();
4872
+ await (await import("./pw-ai-DnYxHTIa.js")).closePlaywrightBrowserConnection();
4873
4873
  } catch {}
4874
4874
  if (!fs.existsSync(userDataDir)) return {
4875
4875
  moved: false,
@@ -5,7 +5,7 @@ import os, { homedir } from "node:os";
5
5
  import path from "node:path";
6
6
  import fs, { createWriteStream, existsSync, statSync } from "node:fs";
7
7
  import { Logger } from "tslog";
8
- import json5 from "json5";
8
+ import JSON5 from "json5";
9
9
  import chalk, { Chalk } from "chalk";
10
10
  import fs$1 from "node:fs/promises";
11
11
  import { execFile, execFileSync, spawn } from "node:child_process";
@@ -2258,7 +2258,7 @@ function readLoggingConfig() {
2258
2258
  try {
2259
2259
  if (!fs.existsSync(configPath)) return;
2260
2260
  const raw = fs.readFileSync(configPath, "utf-8");
2261
- const logging = json5.parse(raw)?.logging;
2261
+ const logging = JSON5.parse(raw)?.logging;
2262
2262
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
2263
2263
  return logging;
2264
2264
  } catch {
@@ -8063,7 +8063,7 @@ var IncludeProcessor = class IncludeProcessor {
8063
8063
  };
8064
8064
  const defaultResolver = {
8065
8065
  readFile: (p) => fs.readFileSync(p, "utf-8"),
8066
- parseJson: (raw) => json5.parse(raw)
8066
+ parseJson: (raw) => JSON5.parse(raw)
8067
8067
  };
8068
8068
  /**
8069
8069
  * Resolves all $include directives in a parsed config object.
@@ -10704,18 +10704,18 @@ function resolveConfigPathForDeps(deps) {
10704
10704
  function normalizeDeps(overrides = {}) {
10705
10705
  return {
10706
10706
  fs: overrides.fs ?? fs,
10707
- json5: overrides.json5 ?? json5,
10707
+ json5: overrides.json5 ?? JSON5,
10708
10708
  env: overrides.env ?? process.env,
10709
10709
  homedir: overrides.homedir ?? os.homedir,
10710
10710
  configPath: overrides.configPath ?? "",
10711
10711
  logger: overrides.logger ?? console
10712
10712
  };
10713
10713
  }
10714
- function parseConfigJson5(raw, json5$1 = json5) {
10714
+ function parseConfigJson5(raw, json5 = JSON5) {
10715
10715
  try {
10716
10716
  return {
10717
10717
  ok: true,
10718
- parsed: json5$1.parse(raw)
10718
+ parsed: json5.parse(raw)
10719
10719
  };
10720
10720
  } catch (err) {
10721
10721
  return {
@@ -11212,7 +11212,7 @@ function loadSessionStore(storePath, opts = {}) {
11212
11212
  let mtimeMs = getFileMtimeMs(storePath);
11213
11213
  try {
11214
11214
  const raw = fs.readFileSync(storePath, "utf-8");
11215
- const parsed = json5.parse(raw);
11215
+ const parsed = JSON5.parse(raw);
11216
11216
  if (isSessionStoreRecord(parsed)) store = parsed;
11217
11217
  mtimeMs = getFileMtimeMs(storePath) ?? mtimeMs;
11218
11218
  } catch {}
@@ -52,8 +52,8 @@ import "./pairing-labels-ByaUyk7_.js";
52
52
  import "./channels-status-issues-DcWAx1pE.js";
53
53
  import { n as ensurePluginRegistryLoaded } from "./command-options-BbwtatGO.js";
54
54
  import { n as resolveCliChannelOptions } from "./channel-options-DaqVeRaR.js";
55
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-DSWZPrlP.js";
56
- import "./completion-cli-wSNPld68.js";
55
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-BI5UBoZ0.js";
56
+ import "./completion-cli-_LeIQqrx.js";
57
57
  import "./gateway-rpc-DTo9hvWi.js";
58
58
  import "./deps-BZwKcMsI.js";
59
59
  import "./daemon-runtime-BT9juKg3.js";
@@ -65,22 +65,22 @@ import "./widearea-dns-Bxls47LT.js";
65
65
  import "./audit-B8AGUDBD.js";
66
66
  import "./onboard-skills-mB-9LcbZ.js";
67
67
  import "./health-format-DaYoO0eu.js";
68
- import "./update-runner-DeqYHEUb.js";
68
+ import "./update-runner-CpLkRIIC.js";
69
69
  import "./github-copilot-auth-4421_bDI.js";
70
70
  import "./logging-BDs786Px.js";
71
71
  import "./hooks-status-DqVSHHPb.js";
72
- import "./status-DJp5PZ3C.js";
72
+ import "./status-gCd5plro.js";
73
73
  import "./skills-status-D1uoW4lu.js";
74
74
  import { i as hasEmittedCliBanner, n as emitCliBanner, r as formatCliBannerLine } from "./tui-B8c_1tIW.js";
75
75
  import "./agent-H6F-y_iD.js";
76
76
  import "./node-service-Cb_Ly3vx.js";
77
77
  import { t as forceFreePort } from "./ports-X0OBWLHa.js";
78
78
  import "./auth-health-Csun8UBU.js";
79
- import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-CQDOlajj.js";
79
+ import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-BrvBxgCx.js";
80
80
  import "./help-format-DuMTLWZ-.js";
81
81
  import "./configure-CRbYmk96.js";
82
82
  import "./systemd-linger-CEVIpVG8.js";
83
- import "./doctor-CZ_RG8qW.js";
83
+ import "./doctor-BiJToFxm.js";
84
84
  import { Command } from "commander";
85
85
 
86
86
  //#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-JFYLbDtd.js";
4
- import { m as getHeadersWithAuth, t as getChromeWebSocketUrl, u as formatAriaSnapshot, y as formatErrorMessage } from "./chrome-Dfln0wVx.js";
4
+ import { m as getHeadersWithAuth, t as getChromeWebSocketUrl, u as formatAriaSnapshot, y as formatErrorMessage } from "./chrome-BjAcrZj9.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-CDUk8dib.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-D4pYWVvA.js")).registerGatewayCli(program);
128
128
  }
129
129
  },
130
130
  {
@@ -180,7 +180,7 @@ const entries = [
180
180
  name: "node",
181
181
  description: "Node control",
182
182
  register: async (program) => {
183
- (await import("./node-cli-BojvRXfQ.js")).registerNodeCli(program);
183
+ (await import("./node-cli-DDe_hKJy.js")).registerNodeCli(program);
184
184
  }
185
185
  },
186
186
  {
@@ -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-CZLPclVp.js")).registerUpdateCli(program);
285
+ (await import("./update-cli-BqR67nRm.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-wSNPld68.js").then((n) => n.n)).registerCompletionCli(program);
292
+ (await import("./completion-cli-_LeIQqrx.js").then((n) => n.n)).registerCompletionCli(program);
293
293
  }
294
294
  }
295
295
  ];
@@ -51,8 +51,8 @@ import "./login-qr-BsMQdFJj.js";
51
51
  import "./pairing-labels-ByaUyk7_.js";
52
52
  import "./channels-status-issues-DcWAx1pE.js";
53
53
  import { n as ensurePluginRegistryLoaded } from "./command-options-BbwtatGO.js";
54
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-DSWZPrlP.js";
55
- import "./completion-cli-wSNPld68.js";
54
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-BI5UBoZ0.js";
55
+ import "./completion-cli-_LeIQqrx.js";
56
56
  import "./gateway-rpc-DTo9hvWi.js";
57
57
  import "./deps-BZwKcMsI.js";
58
58
  import { h as assertSupportedRuntime } from "./daemon-runtime-BT9juKg3.js";
@@ -64,21 +64,21 @@ import "./widearea-dns-Bxls47LT.js";
64
64
  import "./audit-B8AGUDBD.js";
65
65
  import "./onboard-skills-mB-9LcbZ.js";
66
66
  import "./health-format-DaYoO0eu.js";
67
- import "./update-runner-DeqYHEUb.js";
67
+ import "./update-runner-CpLkRIIC.js";
68
68
  import "./github-copilot-auth-4421_bDI.js";
69
69
  import "./logging-BDs786Px.js";
70
70
  import "./hooks-status-DqVSHHPb.js";
71
- import "./status-DJp5PZ3C.js";
71
+ import "./status-gCd5plro.js";
72
72
  import "./skills-status-D1uoW4lu.js";
73
73
  import { n as emitCliBanner } from "./tui-B8c_1tIW.js";
74
74
  import "./agent-H6F-y_iD.js";
75
75
  import "./node-service-Cb_Ly3vx.js";
76
76
  import "./auth-health-Csun8UBU.js";
77
- import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-CQDOlajj.js";
77
+ import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-BrvBxgCx.js";
78
78
  import "./help-format-DuMTLWZ-.js";
79
79
  import "./configure-CRbYmk96.js";
80
80
  import "./systemd-linger-CEVIpVG8.js";
81
- import "./doctor-CZ_RG8qW.js";
81
+ import "./doctor-BiJToFxm.js";
82
82
  import path from "node:path";
83
83
  import process$1 from "node:process";
84
84
  import fs from "node:fs";
@@ -140,7 +140,7 @@ async function runCli(argv = process$1.argv) {
140
140
  assertSupportedRuntime();
141
141
  if (await tryRouteCli(normalizedArgv)) return;
142
142
  enableConsoleCapture();
143
- const { buildProgram } = await import("./program-B5ODuKye.js");
143
+ const { buildProgram } = await import("./program-DwLiIvvz.js");
144
144
  const program = buildProgram();
145
145
  installUnhandledRejectionHandler();
146
146
  process$1.on("uncaughtException", (error) => {
@@ -150,7 +150,7 @@ async function runCli(argv = process$1.argv) {
150
150
  const parseArgv = rewriteUpdateFlagArgv(normalizedArgv);
151
151
  const primary = getPrimaryCommand(parseArgv);
152
152
  if (primary) {
153
- const { registerSubCliByName } = await import("./register.subclis-DSWZPrlP.js").then((n) => n.i);
153
+ const { registerSubCliByName } = await import("./register.subclis-BI5UBoZ0.js").then((n) => n.i);
154
154
  await registerSubCliByName(program, primary);
155
155
  }
156
156
  if (!(!primary && hasHelpOrVersion(parseArgv))) {
@@ -20,7 +20,7 @@ import { o as resolveStorePath } from "./paths-Cn5vXlEi.js";
20
20
  import { I as resolveMainSessionKey, d as loadSessionStore } from "./sandbox-HZ5_C6Hk.js";
21
21
  import { t as buildChannelSummary } from "./channel-summary-DgHEXul-.js";
22
22
  import { t as collectChannelStatusIssues } from "./channels-status-issues-DcWAx1pE.js";
23
- import { r as installCompletion } from "./completion-cli-wSNPld68.js";
23
+ import { r as installCompletion } from "./completion-cli-_LeIQqrx.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-BT9juKg3.js";
25
25
  import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-DCenfuWh.js";
26
26
  import { r as isSystemdUserServiceAvailable } from "./systemd-DmEeTiZ0.js";
@@ -29,7 +29,7 @@ import { t as renderTable } from "./table-DKkcJVTl.js";
29
29
  import { i as probeGateway, t as runSecurityAudit } from "./audit-B8AGUDBD.js";
30
30
  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-mB-9LcbZ.js";
31
31
  import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForAgent } from "./health-format-DaYoO0eu.js";
32
- 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-DeqYHEUb.js";
32
+ 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-CpLkRIIC.js";
33
33
  import { n as logConfigUpdated } from "./logging-BDs786Px.js";
34
34
  import { t as buildWorkspaceHookStatus } from "./hooks-status-DqVSHHPb.js";
35
35
  import { t as buildWorkspaceSkillStatus } from "./skills-status-D1uoW4lu.js";
@@ -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-DlMsaI-P.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-DBbA3ZDd.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-ZXFy8Xy2.js";
58
58
  import "./auth-DSrYkGU-.js";
59
59
  import { t as renderTable } from "./table-BOthYYmp.js";
60
60
  import "./skills-status-H6bA88MV.js";
@@ -62,11 +62,11 @@ import "./service-WG1x2OSQ.js";
62
62
  import "./systemd-DyrxDxSB.js";
63
63
  import "./service-audit-DDd8ZNai.js";
64
64
  import "./channels-status-issues-CsbN-n1Z.js";
65
- import { r as installCompletion } from "./completion-cli-CedaHqar.js";
65
+ import { r as installCompletion } from "./completion-cli-eOz2Eok0.js";
66
66
  import { t as formatHelpExamples } from "./help-format-q-N7n7vs.js";
67
67
  import "./systemd-linger-CdE0rrgu.js";
68
68
  import "./auth-health-TetlrB4X.js";
69
- import { t as doctorCommand } from "./doctor-vzlOMVxG.js";
69
+ import { t as doctorCommand } from "./doctor-DXWbYdiJ.js";
70
70
  import "./shared-BV5RRSRC.js";
71
71
  import { r as runDaemonRestart } from "./daemon-cli-Dmax0MZY.js";
72
72
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-Col1vYTu.js";
@@ -49,8 +49,8 @@ import "./pairing-store-BuS29sYc.js";
49
49
  import "./login-qr-BsMQdFJj.js";
50
50
  import "./pairing-labels-ByaUyk7_.js";
51
51
  import "./channels-status-issues-DcWAx1pE.js";
52
- import "./register.subclis-DSWZPrlP.js";
53
- import { r as installCompletion } from "./completion-cli-wSNPld68.js";
52
+ import "./register.subclis-BI5UBoZ0.js";
53
+ import { r as installCompletion } from "./completion-cli-_LeIQqrx.js";
54
54
  import "./deps-BZwKcMsI.js";
55
55
  import { g as parseSemver } from "./daemon-runtime-BT9juKg3.js";
56
56
  import "./service-DCenfuWh.js";
@@ -60,14 +60,14 @@ import { r as runDaemonRestart } from "./daemon-cli-DH4mlLlX.js";
60
60
  import "./service-audit-BTLXANqN.js";
61
61
  import { t as renderTable } from "./table-DKkcJVTl.js";
62
62
  import "./health-format-DaYoO0eu.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-DeqYHEUb.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-CpLkRIIC.js";
64
64
  import "./logging-BDs786Px.js";
65
65
  import "./skills-status-D1uoW4lu.js";
66
66
  import "./auth-health-Csun8UBU.js";
67
67
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-DqrpUeKm.js";
68
68
  import { t as formatHelpExamples } from "./help-format-DuMTLWZ-.js";
69
69
  import "./systemd-linger-CEVIpVG8.js";
70
- import { t as doctorCommand } from "./doctor-CZ_RG8qW.js";
70
+ import { t as doctorCommand } from "./doctor-BiJToFxm.js";
71
71
  import { spawnSync } from "node:child_process";
72
72
  import path from "node:path";
73
73
  import os from "node:os";
@@ -4,7 +4,7 @@ import { t as resolveSKYKOIPackageRoot } from "./SKYKOI-root-G1ugMMR_.js";
4
4
  import { j as VERSION } from "./config-CXUt1osk.js";
5
5
  import { Ln as trimLogTail } from "./loader-D0h4mSg-.js";
6
6
  import { t as note } from "./note-_C44YfAQ.js";
7
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-wSNPld68.js";
7
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-_LeIQqrx.js";
8
8
  import { g as parseSemver } from "./daemon-runtime-BT9juKg3.js";
9
9
  import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-DaYoO0eu.js";
10
10
  import { spawnSync } from "node:child_process";
@@ -6,7 +6,7 @@ import { j as VERSION } from "./config-DaVW1uQV.js";
6
6
  import { _ as parseSemver } from "./daemon-runtime-BpkQ2sSp.js";
7
7
  import { t as note } from "./note-CrCSjpk3.js";
8
8
  import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-DlMsaI-P.js";
9
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-CedaHqar.js";
9
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-eOz2Eok0.js";
10
10
  import os from "node:os";
11
11
  import path from "node:path";
12
12
  import fs from "node:fs/promises";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skykoi",
3
- "version": "2026.3.12",
3
+ "version": "2026.3.13",
4
4
  "description": "SkyKoi — AI agent runtime. Multi-channel gateway CLI with RPC agent. Forked from SkyKoi.",
5
5
  "keywords": [
6
6
  "skykoi",