skykoi 2026.3.84 → 2026.3.85

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.3.84",
3
- "commit": "0abf2fcf885a9ceab076751e93862a46287865e1",
4
- "builtAt": "2026-04-08T02:07:32.781Z"
2
+ "version": "2026.3.85",
3
+ "commit": "96caf751382a18f27c0ef3f43a24b2d1f1ffbd9a",
4
+ "builtAt": "2026-04-08T02:15:13.508Z"
5
5
  }
@@ -1 +1 @@
1
- 47b55a996d917d29f107d8becae0fdb8947dcee78fa4a08154176446e4f60254
1
+ 38147aa846607cac1796ee0e4fcd56efca25242fd77a9d054385faac44057a83
@@ -1,6 +1,6 @@
1
1
  import { r as __exportAll } from "./chunk-D_gEzPfs.js";
2
2
  import { g as resolveStateDir } from "./paths-BP5k1v-m.js";
3
- import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-wOHx8rmu.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-B2TAYlxQ.js";
4
4
  import os from "node:os";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs/promises";
@@ -25,7 +25,7 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-BE42LzRy.js";
25
25
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-WTMbld2e.js";
26
26
  import { t as WizardCancelledError } from "./prompts-CDHXxTNu.js";
27
27
  import { t as createClackPrompter } from "./clack-prompter-C5sZbzQn.js";
28
- 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-CTro7Dtg.js";
28
+ 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-CfL5vV28.js";
29
29
  import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-BYBSWtSD.js";
30
30
  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-vZ5-Nn7c.js";
31
31
  import { n as setupChannels } from "./onboard-channels-BhNBrV_Q.js";
@@ -33,7 +33,7 @@ import { l as healthCommand } from "./health-format-CJjcHVlY.js";
33
33
  import { t as renderTable } from "./table-SxtrAX1l.js";
34
34
  import { t as resolveGatewayService } from "./service-BjIFR1yr.js";
35
35
  import { r as isSystemdUserServiceAvailable } from "./systemd-DFToXSqn.js";
36
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-wOHx8rmu.js";
36
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-B2TAYlxQ.js";
37
37
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-CLWNaD7x.js";
38
38
  import { t as formatHelpExamples } from "./help-format-iaXRqfHn.js";
39
39
  import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as agentCommand } from "./agent-B33p8GO3.js";
@@ -41,7 +41,7 @@ import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plug
41
41
  import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-xCg96Vkw.js";
42
42
  import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-DDNEcXdF.js";
43
43
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-wMB81VZP.js";
44
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-Bt60wHgX.js";
44
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-2S0oU0gS.js";
45
45
  import { fileURLToPath } from "node:url";
46
46
  import path from "node:path";
47
47
  import fs from "node:fs";
@@ -26,7 +26,7 @@ import { n as logConfigUpdated } from "./logging-WTMbld2e.js";
26
26
  import { t as note$1 } from "./note-DxURxjsa.js";
27
27
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-DQnhAmyB.js";
28
28
  import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-CJjcHVlY.js";
29
- import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-CXSvtGgW.js";
29
+ import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-B2RC_Kcz.js";
30
30
  import { i as resolveGatewayAuth } from "./auth-C3xmXfZk.js";
31
31
  import { t as buildWorkspaceSkillStatus } from "./skills-status-rtDiLTGl.js";
32
32
  import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLaunchAgentListed, o as resolveGatewayLogPaths, r as isLaunchAgentLoaded, t as resolveGatewayService } from "./service-BjIFR1yr.js";
package/dist/entry.js CHANGED
@@ -244,7 +244,7 @@ if (!ensureExperimentalWarningSuppressed()) {
244
244
  applyCliProfileEnv({ profile: parsed.profile });
245
245
  process$1.argv = parsed.argv;
246
246
  }
247
- import("./run-main-BjZ3T080.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
247
+ import("./run-main-B7Dw2tsC.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
248
248
  console.error("[SKYKOI] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
249
249
  process$1.exitCode = 1;
250
250
  });
@@ -73,7 +73,7 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-BE42LzRy.js";
73
73
  import "./logging-WTMbld2e.js";
74
74
  import "./note-DxURxjsa.js";
75
75
  import { t as WizardCancelledError } from "./prompts-CDHXxTNu.js";
76
- import { c as loadAgentIdentity, d as loadAgentIdentityFromWorkspace, i as applyAgentConfig, l as pruneAgentConfig, o as findAgentEntryIndex, r as getStatusSummary, s as listAgentEntries, t as runOnboardingWizard } from "./onboarding-CTro7Dtg.js";
76
+ import { c as loadAgentIdentity, d as loadAgentIdentityFromWorkspace, i as applyAgentConfig, l as pruneAgentConfig, o as findAgentEntryIndex, r as getStatusSummary, s as listAgentEntries, t as runOnboardingWizard } from "./onboarding-CfL5vV28.js";
77
77
  import { n as installSkill } from "./onboard-skills-BYBSWtSD.js";
78
78
  import "./github-copilot-auth-vZ5-Nn7c.js";
79
79
  import "./onboard-channels-BhNBrV_Q.js";
@@ -82,7 +82,7 @@ import "./archive-09rsl6Ll.js";
82
82
  import "./skill-scanner-BapBkMb3.js";
83
83
  import "./installs-DzWk8S7n.js";
84
84
  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-CJjcHVlY.js";
85
- import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-CXSvtGgW.js";
85
+ import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-B2RC_Kcz.js";
86
86
  import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-C3xmXfZk.js";
87
87
  import { i as probeGateway } from "./audit-Bk2eeCaJ.js";
88
88
  import "./table-SxtrAX1l.js";
@@ -92,11 +92,11 @@ import { p as resolveGatewayStateDir } from "./systemd-DFToXSqn.js";
92
92
  import "./service-audit-B-95c3u8.js";
93
93
  import "./node-service-CYKVSvjk.js";
94
94
  import "./channels-status-issues-B4S9_HgZ.js";
95
- import "./register.subclis-wOHx8rmu.js";
95
+ import "./register.subclis-B2TAYlxQ.js";
96
96
  import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-B33p8GO3.js";
97
97
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-BwSH4u_0.js";
98
98
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-Cu1kgrsm.js";
99
- import "./completion-cli-Cx1pilZF.js";
99
+ import "./completion-cli-CBuTZYSt.js";
100
100
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-DzRnyMnz.js";
101
101
  import "./tui-Bo9ufl9J.js";
102
102
  import { t as buildChannelAccountSnapshot } from "./status-DqH1H1Pt.js";
package/dist/index.js CHANGED
@@ -62,11 +62,11 @@ import { t as isMainModule } from "./is-main-CygCgnoD.js";
62
62
  import { t as ensureSKYKOICliOnPath } from "./path-env-CDkQAr1e.js";
63
63
  import { g as assertSupportedRuntime } from "./daemon-runtime-BlJMOmTd.js";
64
64
  import "./ports-CrDpWbK_.js";
65
- import "./config-guard-g73A0C_g.js";
65
+ import "./config-guard-DEz1BuaV.js";
66
66
  import "./logging-WTMbld2e.js";
67
67
  import "./note-DxURxjsa.js";
68
68
  import "./clack-prompter-C5sZbzQn.js";
69
- import "./onboarding-CTro7Dtg.js";
69
+ import "./onboarding-CfL5vV28.js";
70
70
  import "./onboard-skills-BYBSWtSD.js";
71
71
  import "./github-copilot-auth-vZ5-Nn7c.js";
72
72
  import "./onboard-channels-BhNBrV_Q.js";
@@ -75,7 +75,7 @@ import "./archive-09rsl6Ll.js";
75
75
  import "./skill-scanner-BapBkMb3.js";
76
76
  import "./installs-DzWk8S7n.js";
77
77
  import "./health-format-CJjcHVlY.js";
78
- import "./update-runner-CXSvtGgW.js";
78
+ import "./update-runner-B2RC_Kcz.js";
79
79
  import "./auth-C3xmXfZk.js";
80
80
  import "./audit-Bk2eeCaJ.js";
81
81
  import "./table-SxtrAX1l.js";
@@ -85,7 +85,7 @@ import "./systemd-DFToXSqn.js";
85
85
  import "./service-audit-B-95c3u8.js";
86
86
  import "./node-service-CYKVSvjk.js";
87
87
  import "./channels-status-issues-B4S9_HgZ.js";
88
- import "./register.subclis-wOHx8rmu.js";
88
+ import "./register.subclis-B2TAYlxQ.js";
89
89
  import "./gateway-rpc-CLWNaD7x.js";
90
90
  import "./help-format-iaXRqfHn.js";
91
91
  import "./agent-B33p8GO3.js";
@@ -95,12 +95,12 @@ import "./systemd-linger-wMB81VZP.js";
95
95
  import "./widearea-dns-BwSH4u_0.js";
96
96
  import "./bonjour-discovery-Cu1kgrsm.js";
97
97
  import "./auth-health-zenw66eK.js";
98
- import "./doctor-Bt60wHgX.js";
99
- import "./completion-cli-Cx1pilZF.js";
98
+ import "./doctor-2S0oU0gS.js";
99
+ import "./completion-cli-CBuTZYSt.js";
100
100
  import "./hooks-status-DzRnyMnz.js";
101
101
  import "./tui-Bo9ufl9J.js";
102
102
  import "./channel-options-CclY3Kao.js";
103
- import { n as buildProgram } from "./program-LmxGK1kS.js";
103
+ import { n as buildProgram } from "./program-CBdq2IEp.js";
104
104
  import process from "node:process";
105
105
  import { fileURLToPath } from "node:url";
106
106
 
@@ -24,7 +24,7 @@ import { t as WizardCancelledError } from "./prompts-CDHXxTNu.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-BYBSWtSD.js";
25
25
  import { n as setupChannels } from "./onboard-channels-BhNBrV_Q.js";
26
26
  import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForAgent } from "./health-format-CJjcHVlY.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-CXSvtGgW.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-B2RC_Kcz.js";
28
28
  import { i as probeGateway, t as runSecurityAudit } from "./audit-Bk2eeCaJ.js";
29
29
  import { t as renderTable } from "./table-SxtrAX1l.js";
30
30
  import { t as buildWorkspaceSkillStatus } from "./skills-status-rtDiLTGl.js";
@@ -34,7 +34,7 @@ import { o as readLastGatewayErrorLine } from "./service-audit-B-95c3u8.js";
34
34
  import { t as resolveNodeService } from "./node-service-CYKVSvjk.js";
35
35
  import { t as collectChannelStatusIssues } from "./channels-status-issues-B4S9_HgZ.js";
36
36
  import { i as redactSecrets, n as formatDuration$1, r as formatGatewayAuthUsed, t as formatAge$1 } from "./format-APMZSEkl.js";
37
- import { r as installCompletion } from "./completion-cli-Cx1pilZF.js";
37
+ import { r as installCompletion } from "./completion-cli-CBuTZYSt.js";
38
38
  import { t as buildWorkspaceHookStatus } from "./hooks-status-DzRnyMnz.js";
39
39
  import { t as runTui } from "./tui-Bo9ufl9J.js";
40
40
  import os from "node:os";
@@ -21,7 +21,7 @@ import os, { homedir, tmpdir } from "node:os";
21
21
  import path from "node:path";
22
22
  import fs, { constants, createWriteStream, existsSync, statSync } from "node:fs";
23
23
  import { Logger } from "tslog";
24
- import json5 from "json5";
24
+ import JSON5 from "json5";
25
25
  import chalk, { Chalk } from "chalk";
26
26
  import fs$1 from "node:fs/promises";
27
27
  import { execFile, execFileSync, spawn } from "node:child_process";
@@ -2269,7 +2269,7 @@ function readLoggingConfig() {
2269
2269
  try {
2270
2270
  if (!fs.existsSync(configPath)) return;
2271
2271
  const raw = fs.readFileSync(configPath, "utf-8");
2272
- const logging = json5.parse(raw)?.logging;
2272
+ const logging = JSON5.parse(raw)?.logging;
2273
2273
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
2274
2274
  return logging;
2275
2275
  } catch {
@@ -18880,7 +18880,7 @@ var IncludeProcessor = class IncludeProcessor {
18880
18880
  };
18881
18881
  const defaultResolver = {
18882
18882
  readFile: (p) => fs.readFileSync(p, "utf-8"),
18883
- parseJson: (raw) => json5.parse(raw)
18883
+ parseJson: (raw) => JSON5.parse(raw)
18884
18884
  };
18885
18885
  /**
18886
18886
  * Resolves all $include directives in a parsed config object.
@@ -21539,18 +21539,18 @@ function resolveConfigPathForDeps(deps) {
21539
21539
  function normalizeDeps(overrides = {}) {
21540
21540
  return {
21541
21541
  fs: overrides.fs ?? fs,
21542
- json5: overrides.json5 ?? json5,
21542
+ json5: overrides.json5 ?? JSON5,
21543
21543
  env: overrides.env ?? process.env,
21544
21544
  homedir: overrides.homedir ?? os.homedir,
21545
21545
  configPath: overrides.configPath ?? "",
21546
21546
  logger: overrides.logger ?? console
21547
21547
  };
21548
21548
  }
21549
- function parseConfigJson5(raw, json5$1 = json5) {
21549
+ function parseConfigJson5(raw, json5 = JSON5) {
21550
21550
  try {
21551
21551
  return {
21552
21552
  ok: true,
21553
- parsed: json5$1.parse(raw)
21553
+ parsed: json5.parse(raw)
21554
21554
  };
21555
21555
  } catch (err) {
21556
21556
  return {
@@ -22064,7 +22064,7 @@ function loadSessionStore(storePath, opts = {}) {
22064
22064
  let mtimeMs = getFileMtimeMs(storePath);
22065
22065
  try {
22066
22066
  const raw = fs.readFileSync(storePath, "utf-8");
22067
- const parsed = json5.parse(raw);
22067
+ const parsed = JSON5.parse(raw);
22068
22068
  if (isSessionStoreRecord(parsed)) store = parsed;
22069
22069
  mtimeMs = getFileMtimeMs(storePath) ?? mtimeMs;
22070
22070
  } catch {}
@@ -4,8 +4,8 @@ import { n as replaceCliName, r as resolveCliName } from "./command-format-BxjVk
4
4
  import { t as isTruthyEnvValue } from "./env-C-7KwGiU.js";
5
5
  import { N as VERSION } from "./config-DKY_dinf.js";
6
6
  import { t as formatDocsLink } from "./links-C5Jgyhc1.js";
7
- import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-g73A0C_g.js";
8
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-wOHx8rmu.js";
7
+ import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-DEz1BuaV.js";
8
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-B2TAYlxQ.js";
9
9
  import { t as ensurePluginRegistryLoaded } from "./plugin-registry-zFUHKwEt.js";
10
10
  import { i as hasEmittedCliBanner, n as emitCliBanner, r as formatCliBannerLine } from "./tui-Bo9ufl9J.js";
11
11
  import { n as resolveCliChannelOptions } from "./channel-options-CclY3Kao.js";
@@ -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-Bg5dRI4g.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-I9an3dZ_.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-CJFwrNGg.js")).registerUpdateCli(program);
285
+ (await import("./update-cli-BIYn-QeV.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-Cx1pilZF.js").then((n) => n.n)).registerCompletionCli(program);
292
+ (await import("./completion-cli-CBuTZYSt.js").then((n) => n.n)).registerCompletionCli(program);
293
293
  }
294
294
  }
295
295
  ];
@@ -59,11 +59,11 @@ import "./tailscale-1kVKif-y.js";
59
59
  import { t as loadDotEnv } from "./dotenv-CercT44r.js";
60
60
  import { t as ensureSKYKOICliOnPath } from "./path-env-CDkQAr1e.js";
61
61
  import { g as assertSupportedRuntime } from "./daemon-runtime-BlJMOmTd.js";
62
- import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-g73A0C_g.js";
62
+ import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-DEz1BuaV.js";
63
63
  import "./logging-WTMbld2e.js";
64
64
  import "./note-DxURxjsa.js";
65
65
  import "./clack-prompter-C5sZbzQn.js";
66
- import "./onboarding-CTro7Dtg.js";
66
+ import "./onboarding-CfL5vV28.js";
67
67
  import "./onboard-skills-BYBSWtSD.js";
68
68
  import "./github-copilot-auth-vZ5-Nn7c.js";
69
69
  import "./onboard-channels-BhNBrV_Q.js";
@@ -72,7 +72,7 @@ import "./archive-09rsl6Ll.js";
72
72
  import "./skill-scanner-BapBkMb3.js";
73
73
  import "./installs-DzWk8S7n.js";
74
74
  import "./health-format-CJjcHVlY.js";
75
- import "./update-runner-CXSvtGgW.js";
75
+ import "./update-runner-B2RC_Kcz.js";
76
76
  import "./auth-C3xmXfZk.js";
77
77
  import "./audit-Bk2eeCaJ.js";
78
78
  import "./table-SxtrAX1l.js";
@@ -82,7 +82,7 @@ import "./systemd-DFToXSqn.js";
82
82
  import "./service-audit-B-95c3u8.js";
83
83
  import "./node-service-CYKVSvjk.js";
84
84
  import "./channels-status-issues-B4S9_HgZ.js";
85
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-wOHx8rmu.js";
85
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-B2TAYlxQ.js";
86
86
  import "./gateway-rpc-CLWNaD7x.js";
87
87
  import "./help-format-iaXRqfHn.js";
88
88
  import "./agent-B33p8GO3.js";
@@ -92,8 +92,8 @@ import "./systemd-linger-wMB81VZP.js";
92
92
  import "./widearea-dns-BwSH4u_0.js";
93
93
  import "./bonjour-discovery-Cu1kgrsm.js";
94
94
  import "./auth-health-zenw66eK.js";
95
- import "./doctor-Bt60wHgX.js";
96
- import "./completion-cli-Cx1pilZF.js";
95
+ import "./doctor-2S0oU0gS.js";
96
+ import "./completion-cli-CBuTZYSt.js";
97
97
  import "./hooks-status-DzRnyMnz.js";
98
98
  import { n as emitCliBanner } from "./tui-Bo9ufl9J.js";
99
99
  import process$1 from "node:process";
@@ -149,7 +149,7 @@ async function runCli(argv = process$1.argv) {
149
149
  assertSupportedRuntime();
150
150
  if (await tryRouteCli(normalizedArgv)) return;
151
151
  enableConsoleCapture();
152
- const { buildProgram } = await import("./program-LmxGK1kS.js").then((n) => n.t);
152
+ const { buildProgram } = await import("./program-CBdq2IEp.js").then((n) => n.t);
153
153
  const program = buildProgram();
154
154
  installUnhandledRejectionHandler();
155
155
  process$1.on("uncaughtException", (error) => {
@@ -159,7 +159,7 @@ async function runCli(argv = process$1.argv) {
159
159
  const parseArgv = rewriteUpdateFlagArgv(normalizedArgv);
160
160
  const primary = getPrimaryCommand(parseArgv);
161
161
  if (primary) {
162
- const { registerSubCliByName } = await import("./register.subclis-wOHx8rmu.js").then((n) => n.i);
162
+ const { registerSubCliByName } = await import("./register.subclis-B2TAYlxQ.js").then((n) => n.i);
163
163
  await registerSubCliByName(program, primary);
164
164
  }
165
165
  if (!(!primary && hasHelpOrVersion(parseArgv))) {
@@ -66,7 +66,7 @@ import "./archive-09rsl6Ll.js";
66
66
  import "./skill-scanner-BapBkMb3.js";
67
67
  import "./installs-DzWk8S7n.js";
68
68
  import "./health-format-CJjcHVlY.js";
69
- 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-CXSvtGgW.js";
69
+ 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-B2RC_Kcz.js";
70
70
  import "./auth-C3xmXfZk.js";
71
71
  import { t as renderTable } from "./table-SxtrAX1l.js";
72
72
  import "./skills-status-rtDiLTGl.js";
@@ -74,12 +74,12 @@ import "./service-BjIFR1yr.js";
74
74
  import "./systemd-DFToXSqn.js";
75
75
  import "./service-audit-B-95c3u8.js";
76
76
  import "./channels-status-issues-B4S9_HgZ.js";
77
- import "./register.subclis-wOHx8rmu.js";
77
+ import "./register.subclis-B2TAYlxQ.js";
78
78
  import { t as formatHelpExamples } from "./help-format-iaXRqfHn.js";
79
79
  import "./systemd-linger-wMB81VZP.js";
80
80
  import "./auth-health-zenw66eK.js";
81
- import { t as doctorCommand } from "./doctor-Bt60wHgX.js";
82
- import { r as installCompletion } from "./completion-cli-Cx1pilZF.js";
81
+ import { t as doctorCommand } from "./doctor-2S0oU0gS.js";
82
+ import { r as installCompletion } from "./completion-cli-CBuTZYSt.js";
83
83
  import "./shared-DD_cIDBh.js";
84
84
  import { r as runDaemonRestart } from "./daemon-cli-B9O89I4b.js";
85
85
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-7hnqqWjP.js";
@@ -6,7 +6,7 @@ import { N as VERSION } from "./config-DKY_dinf.js";
6
6
  import { _ as parseSemver } from "./daemon-runtime-BlJMOmTd.js";
7
7
  import { t as note } from "./note-DxURxjsa.js";
8
8
  import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-CJjcHVlY.js";
9
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Cx1pilZF.js";
9
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-CBuTZYSt.js";
10
10
  import os from "node:os";
11
11
  import path from "node:path";
12
12
  import fs from "node:fs/promises";
@@ -1420,23 +1420,35 @@ async function runGatewayUpdate(opts = {}) {
1420
1420
  packageName
1421
1421
  });
1422
1422
  const channel = opts.channel ?? DEFAULT_PACKAGE_CHANNEL;
1423
+ const spec = `${packageName}@${normalizeTag(opts.tag ?? channelToNpmTag(channel))}`;
1423
1424
  const updateStep = await runStep({
1424
1425
  runCommand,
1425
1426
  name: "global update",
1426
- argv: globalInstallArgs(globalManager, `${packageName}@${normalizeTag(opts.tag ?? channelToNpmTag(channel))}`),
1427
+ argv: globalInstallArgs(globalManager, spec),
1427
1428
  cwd: pkgRoot,
1428
1429
  timeoutMs,
1429
1430
  progress,
1430
1431
  stepIndex: 0,
1431
1432
  totalSteps: 1
1432
1433
  });
1433
- const steps = [updateStep];
1434
+ let finalStep = updateStep;
1435
+ if (updateStep.exitCode !== 0 && (updateStep.stderrTail?.includes("EACCES") || updateStep.stderrTail?.includes("permission denied") || updateStep.stderrTail?.includes("Missing write access"))) finalStep = await runStep({
1436
+ runCommand,
1437
+ name: "global update (sudo)",
1438
+ argv: ["sudo", ...globalInstallArgs(globalManager, spec)],
1439
+ cwd: pkgRoot,
1440
+ timeoutMs,
1441
+ progress,
1442
+ stepIndex: 0,
1443
+ totalSteps: 1
1444
+ });
1445
+ const steps = finalStep === updateStep ? [updateStep] : [updateStep, finalStep];
1434
1446
  const afterVersion = await readPackageVersion(pkgRoot);
1435
1447
  return {
1436
- status: updateStep.exitCode === 0 ? "ok" : "error",
1448
+ status: finalStep.exitCode === 0 ? "ok" : "error",
1437
1449
  mode: globalManager,
1438
1450
  root: pkgRoot,
1439
- reason: updateStep.exitCode === 0 ? void 0 : updateStep.name,
1451
+ reason: finalStep.exitCode === 0 ? void 0 : finalStep.name,
1440
1452
  before: { version: beforeVersion },
1441
1453
  after: { version: afterVersion },
1442
1454
  steps,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skykoi",
3
- "version": "2026.3.84",
3
+ "version": "2026.3.85",
4
4
  "description": "SkyKoi — AI agent runtime. Multi-channel gateway CLI with RPC agent. Forked from SkyKoi.",
5
5
  "keywords": [
6
6
  "skykoi",