skykoi 2026.3.159 → 2026.3.161

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.159",
3
- "commit": "7b7956edc91a0b1b7b6e25cac0d6f268f0e48f2a",
4
- "builtAt": "2026-04-29T20:11:15.409Z"
2
+ "version": "2026.3.161",
3
+ "commit": "3fc67030b7d3f7bd7ebf0cba189c3b8a5c2b93f5",
4
+ "builtAt": "2026-04-29T20:27:33.168Z"
5
5
  }
@@ -1 +1 @@
1
- 6feffa9d6341b8e94f9e53c17a86e1a0dd5e6f62313dd88102ba5518a71919cf
1
+ a865702f35bc58e4f001b784937a18a46d3ab9bb484c754fe85a90f25aa1db2d
@@ -1,6 +1,6 @@
1
1
  import { r as __exportAll } from "./chunk-D_gEzPfs.js";
2
2
  import { g as resolveStateDir } from "./paths-VdmjGGyc.js";
3
- import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-fKI-f9E7.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-DBufH4L5.js";
4
4
  import path from "node:path";
5
5
  import os from "node:os";
6
6
  import fs from "node:fs/promises";
@@ -25,7 +25,7 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-BMifWcsO.js";
25
25
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-BusiCyt_.js";
26
26
  import { t as WizardCancelledError } from "./prompts-DxnxCHKt.js";
27
27
  import { t as createClackPrompter } from "./clack-prompter-BxHCh6Tn.js";
28
- import { a as buildKoiSummaries, c as loadKoiIdentity, f as parseIdentityMarkdown, i as applyKoiConfig, l as pruneKoiConfig, n as statusCommand, o as findKoiEntryIndex, s as listKoiEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-DYOdNLWp.js";
28
+ import { a as buildKoiSummaries, c as loadKoiIdentity, f as parseIdentityMarkdown, i as applyKoiConfig, l as pruneKoiConfig, n as statusCommand, o as findKoiEntryIndex, s as listKoiEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-3gCmLAD4.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-H7wHgClM.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-DdNdt7aP.js";
31
31
  import { n as setupChannels } from "./onboard-channels-WX-PzX0I.js";
@@ -33,7 +33,7 @@ import { l as healthCommand } from "./health-format-DN99RsH2.js";
33
33
  import { t as renderTable } from "./table-CgHdpI6b.js";
34
34
  import { t as resolveGatewayService } from "./service-CTrRN1-T.js";
35
35
  import { r as isSystemdUserServiceAvailable } from "./systemd-BuS1yu_z.js";
36
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-fKI-f9E7.js";
36
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-DBufH4L5.js";
37
37
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-ChtP1AJk.js";
38
38
  import { t as formatHelpExamples } from "./help-format-Cbr54gLP.js";
39
39
  import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-crKnniSf.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-CgAOTnxe.js";
42
42
  import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-Jp5RM8n3.js";
43
43
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-BLQwmm6k.js";
44
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-CYQptdI7.js";
44
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-B7BKns10.js";
45
45
  import { fileURLToPath } from "node:url";
46
46
  import fs from "node:fs";
47
47
  import path from "node:path";
@@ -26,7 +26,7 @@ import { n as logConfigUpdated } from "./logging-BusiCyt_.js";
26
26
  import { t as note$1 } from "./note-CbRknFZ7.js";
27
27
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-CrpAktec.js";
28
28
  import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-DN99RsH2.js";
29
- import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-BSWtvedG.js";
29
+ import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-B7d7jz_H.js";
30
30
  import { i as resolveGatewayAuth } from "./auth-DcQcmQH5.js";
31
31
  import { t as buildWorkspaceSkillStatus } from "./skills-status-CIFMe-eQ.js";
32
32
  import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLaunchAgentListed, o as resolveGatewayLogPaths, r as isLaunchAgentLoaded, t as resolveGatewayService } from "./service-CTrRN1-T.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--ns7Uses.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
247
+ import("./run-main-XnPSgYVg.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
  });
@@ -75,7 +75,7 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-BMifWcsO.js";
75
75
  import "./logging-BusiCyt_.js";
76
76
  import "./note-CbRknFZ7.js";
77
77
  import { t as WizardCancelledError } from "./prompts-DxnxCHKt.js";
78
- import { c as loadKoiIdentity, d as loadKoiIdentityFromWorkspace, i as applyKoiConfig, l as pruneKoiConfig, o as findKoiEntryIndex, r as getStatusSummary, s as listKoiEntries, t as runOnboardingWizard } from "./onboarding-DYOdNLWp.js";
78
+ import { c as loadKoiIdentity, d as loadKoiIdentityFromWorkspace, i as applyKoiConfig, l as pruneKoiConfig, o as findKoiEntryIndex, r as getStatusSummary, s as listKoiEntries, t as runOnboardingWizard } from "./onboarding-3gCmLAD4.js";
79
79
  import { n as installSkill } from "./onboard-skills-H7wHgClM.js";
80
80
  import "./github-copilot-auth-DdNdt7aP.js";
81
81
  import "./onboard-channels-WX-PzX0I.js";
@@ -84,7 +84,7 @@ import "./archive-DNsNlUjO.js";
84
84
  import "./skill-scanner-WnNLktfw.js";
85
85
  import "./installs-DU3ERQt_.js";
86
86
  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-DN99RsH2.js";
87
- import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-BSWtvedG.js";
87
+ import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-B7d7jz_H.js";
88
88
  import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-DcQcmQH5.js";
89
89
  import { i as probeGateway } from "./audit-xPP239ME.js";
90
90
  import "./table-CgHdpI6b.js";
@@ -94,11 +94,11 @@ import { p as resolveGatewayStateDir } from "./systemd-BuS1yu_z.js";
94
94
  import "./service-audit-cgxNpqDF.js";
95
95
  import "./node-service-DfmbTqpi.js";
96
96
  import "./channels-status-issues-GKs-LbrV.js";
97
- import "./register.subclis-fKI-f9E7.js";
97
+ import "./register.subclis-DBufH4L5.js";
98
98
  import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-crKnniSf.js";
99
99
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-DMja3M8B.js";
100
100
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-D_eYlsQc.js";
101
- import "./completion-cli-BBJNqLFD.js";
101
+ import "./completion-cli-fROkUGMh.js";
102
102
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-DbwN6pvO.js";
103
103
  import "./tui-DissoNdH.js";
104
104
  import { t as buildChannelAccountSnapshot } from "./status-BA0KgRIG.js";
@@ -2086,18 +2086,22 @@ function createKoiEventHandler({ broadcast, broadcastToConnIds, nodeSendToSessio
2086
2086
  const now = Date.now();
2087
2087
  if (now - (chatRunState.deltaSentAt.get(clientRunId) ?? 0) < 150) return;
2088
2088
  chatRunState.deltaSentAt.set(clientRunId, now);
2089
+ if (/^\[?SILENT\]?$/i.test(text.trim())) return;
2090
+ const speakerKoiId = getKoiRunContext(clientRunId)?.speakerKoiId;
2089
2091
  const payload = {
2090
2092
  runId: clientRunId,
2091
2093
  sessionKey,
2092
2094
  seq,
2093
2095
  state: "delta",
2096
+ speakerKoiId,
2094
2097
  message: {
2095
2098
  role: "assistant",
2096
2099
  content: [{
2097
2100
  type: "text",
2098
2101
  text
2099
2102
  }],
2100
- timestamp: now
2103
+ timestamp: now,
2104
+ ...speakerKoiId ? { koiId: speakerKoiId } : {}
2101
2105
  }
2102
2106
  };
2103
2107
  if (!shouldSuppressHeartbeatBroadcast(clientRunId)) broadcast("chat", payload, { dropIfSlow: true });
@@ -2165,10 +2169,12 @@ function createKoiEventHandler({ broadcast, broadcastToConnIds, nodeSendToSessio
2165
2169
  const sessionKey = chatLink?.sessionKey ?? resolveSessionKeyForRun(evt.runId);
2166
2170
  const clientRunId = chatLink?.clientRunId ?? evt.runId;
2167
2171
  const isAborted = chatRunState.abortedRuns.has(clientRunId) || chatRunState.abortedRuns.has(evt.runId);
2168
- const koiPayload = sessionKey ? {
2172
+ const speakerKoiId = getKoiRunContext(evt.runId)?.speakerKoiId;
2173
+ const koiPayload = {
2169
2174
  ...evt,
2170
- sessionKey
2171
- } : evt;
2175
+ ...sessionKey ? { sessionKey } : {},
2176
+ ...speakerKoiId ? { speakerKoiId } : {}
2177
+ };
2172
2178
  const last = koiRunSeq.get(evt.runId) ?? 0;
2173
2179
  const isToolEvent = evt.stream === "tool";
2174
2180
  const toolVerbose = isToolEvent ? resolveToolVerboseLevel(evt.runId, sessionKey) : "off";
package/dist/index.js CHANGED
@@ -64,11 +64,11 @@ import { t as isMainModule } from "./is-main-BmAsi6j8.js";
64
64
  import { t as ensureSKYKOICliOnPath } from "./path-env-B1xMZ4TX.js";
65
65
  import { g as assertSupportedRuntime } from "./daemon-runtime-CdyzhAad.js";
66
66
  import "./ports-RMh76QZ2.js";
67
- import "./config-guard-itYahNW7.js";
67
+ import "./config-guard-BAJyMuAW.js";
68
68
  import "./logging-BusiCyt_.js";
69
69
  import "./note-CbRknFZ7.js";
70
70
  import "./clack-prompter-BxHCh6Tn.js";
71
- import "./onboarding-DYOdNLWp.js";
71
+ import "./onboarding-3gCmLAD4.js";
72
72
  import "./onboard-skills-H7wHgClM.js";
73
73
  import "./github-copilot-auth-DdNdt7aP.js";
74
74
  import "./onboard-channels-WX-PzX0I.js";
@@ -77,7 +77,7 @@ import "./archive-DNsNlUjO.js";
77
77
  import "./skill-scanner-WnNLktfw.js";
78
78
  import "./installs-DU3ERQt_.js";
79
79
  import "./health-format-DN99RsH2.js";
80
- import "./update-runner-BSWtvedG.js";
80
+ import "./update-runner-B7d7jz_H.js";
81
81
  import "./auth-DcQcmQH5.js";
82
82
  import "./audit-xPP239ME.js";
83
83
  import "./table-CgHdpI6b.js";
@@ -87,7 +87,7 @@ import "./systemd-BuS1yu_z.js";
87
87
  import "./service-audit-cgxNpqDF.js";
88
88
  import "./node-service-DfmbTqpi.js";
89
89
  import "./channels-status-issues-GKs-LbrV.js";
90
- import "./register.subclis-fKI-f9E7.js";
90
+ import "./register.subclis-DBufH4L5.js";
91
91
  import "./gateway-rpc-ChtP1AJk.js";
92
92
  import "./help-format-Cbr54gLP.js";
93
93
  import "./koi-crKnniSf.js";
@@ -97,12 +97,12 @@ import "./systemd-linger-BLQwmm6k.js";
97
97
  import "./widearea-dns-DMja3M8B.js";
98
98
  import "./bonjour-discovery-D_eYlsQc.js";
99
99
  import "./auth-health-QVPApxZ5.js";
100
- import "./doctor-CYQptdI7.js";
101
- import "./completion-cli-BBJNqLFD.js";
100
+ import "./doctor-B7BKns10.js";
101
+ import "./completion-cli-fROkUGMh.js";
102
102
  import "./hooks-status-DbwN6pvO.js";
103
103
  import "./tui-DissoNdH.js";
104
104
  import "./channel-options-BwpHU-td.js";
105
- import { n as buildProgram } from "./program-BcuT4Lsu.js";
105
+ import { n as buildProgram } from "./program-DwQgaPww.js";
106
106
  import process from "node:process";
107
107
  import { fileURLToPath } from "node:url";
108
108
 
@@ -24,7 +24,7 @@ import { t as WizardCancelledError } from "./prompts-DxnxCHKt.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-H7wHgClM.js";
25
25
  import { n as setupChannels } from "./onboard-channels-WX-PzX0I.js";
26
26
  import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForKoi } from "./health-format-DN99RsH2.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-BSWtvedG.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-B7d7jz_H.js";
28
28
  import { i as probeGateway, t as runSecurityAudit } from "./audit-xPP239ME.js";
29
29
  import { t as renderTable } from "./table-CgHdpI6b.js";
30
30
  import { t as buildWorkspaceSkillStatus } from "./skills-status-CIFMe-eQ.js";
@@ -34,7 +34,7 @@ import { o as readLastGatewayErrorLine } from "./service-audit-cgxNpqDF.js";
34
34
  import { t as resolveNodeService } from "./node-service-DfmbTqpi.js";
35
35
  import { t as collectChannelStatusIssues } from "./channels-status-issues-GKs-LbrV.js";
36
36
  import { i as redactSecrets, n as formatDuration$1, r as formatGatewayAuthUsed, t as formatAge$1 } from "./format-BimjsTfO.js";
37
- import { r as installCompletion } from "./completion-cli-BBJNqLFD.js";
37
+ import { r as installCompletion } from "./completion-cli-fROkUGMh.js";
38
38
  import { t as buildWorkspaceHookStatus } from "./hooks-status-DbwN6pvO.js";
39
39
  import { t as runTui } from "./tui-DissoNdH.js";
40
40
  import fs from "node:fs";
@@ -21,7 +21,7 @@ import chalk, { Chalk } from "chalk";
21
21
  import fs, { constants, createWriteStream, existsSync, promises, statSync } from "node:fs";
22
22
  import path, { join } from "node:path";
23
23
  import { Logger } from "tslog";
24
- import JSON5 from "json5";
24
+ import json5 from "json5";
25
25
  import os, { homedir, tmpdir } from "node:os";
26
26
  import { promisify } from "node:util";
27
27
  import fs$1 from "node:fs/promises";
@@ -2262,7 +2262,7 @@ function readLoggingConfig() {
2262
2262
  try {
2263
2263
  if (!fs.existsSync(configPath)) return;
2264
2264
  const raw = fs.readFileSync(configPath, "utf-8");
2265
- const logging = JSON5.parse(raw)?.logging;
2265
+ const logging = json5.parse(raw)?.logging;
2266
2266
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
2267
2267
  return logging;
2268
2268
  } catch {
@@ -18990,7 +18990,7 @@ var IncludeProcessor = class IncludeProcessor {
18990
18990
  };
18991
18991
  const defaultResolver = {
18992
18992
  readFile: (p) => fs.readFileSync(p, "utf-8"),
18993
- parseJson: (raw) => JSON5.parse(raw)
18993
+ parseJson: (raw) => json5.parse(raw)
18994
18994
  };
18995
18995
  /**
18996
18996
  * Resolves all $include directives in a parsed config object.
@@ -21665,18 +21665,18 @@ function resolveConfigPathForDeps(deps) {
21665
21665
  function normalizeDeps(overrides = {}) {
21666
21666
  return {
21667
21667
  fs: overrides.fs ?? fs,
21668
- json5: overrides.json5 ?? JSON5,
21668
+ json5: overrides.json5 ?? json5,
21669
21669
  env: overrides.env ?? process.env,
21670
21670
  homedir: overrides.homedir ?? os.homedir,
21671
21671
  configPath: overrides.configPath ?? "",
21672
21672
  logger: overrides.logger ?? console
21673
21673
  };
21674
21674
  }
21675
- function parseConfigJson5(raw, json5 = JSON5) {
21675
+ function parseConfigJson5(raw, json5$1 = json5) {
21676
21676
  try {
21677
21677
  return {
21678
21678
  ok: true,
21679
- parsed: json5.parse(raw)
21679
+ parsed: json5$1.parse(raw)
21680
21680
  };
21681
21681
  } catch (err) {
21682
21682
  return {
@@ -22190,7 +22190,7 @@ function loadSessionStore(storePath, opts = {}) {
22190
22190
  let mtimeMs = getFileMtimeMs(storePath);
22191
22191
  try {
22192
22192
  const raw = fs.readFileSync(storePath, "utf-8");
22193
- const parsed = JSON5.parse(raw);
22193
+ const parsed = json5.parse(raw);
22194
22194
  if (isSessionStoreRecord(parsed)) store = parsed;
22195
22195
  mtimeMs = getFileMtimeMs(storePath) ?? mtimeMs;
22196
22196
  } catch {}
@@ -4,8 +4,8 @@ import { n as replaceCliName, r as resolveCliName } from "./command-format-CvpDY
4
4
  import { t as isTruthyEnvValue } from "./env-Bj0uZSiW.js";
5
5
  import { N as VERSION } from "./config-DKtZlV3b.js";
6
6
  import { t as formatDocsLink } from "./links-D5FJjx5x.js";
7
- import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-itYahNW7.js";
8
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-fKI-f9E7.js";
7
+ import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-BAJyMuAW.js";
8
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-DBufH4L5.js";
9
9
  import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Df9pYuA-.js";
10
10
  import { i as hasEmittedCliBanner, n as emitCliBanner, r as formatCliBannerLine } from "./tui-DissoNdH.js";
11
11
  import { n as resolveCliChannelOptions } from "./channel-options-BwpHU-td.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-CKMW5qOq.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-DTiNVg8l.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-Dsxw-Zqc.js")).registerUpdateCli(program);
285
+ (await import("./update-cli-DvZ9pqEj.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-BBJNqLFD.js").then((n) => n.n)).registerCompletionCli(program);
292
+ (await import("./completion-cli-fROkUGMh.js").then((n) => n.n)).registerCompletionCli(program);
293
293
  }
294
294
  }
295
295
  ];
@@ -61,11 +61,11 @@ import "./tailscale-4hm01eUI.js";
61
61
  import { t as loadDotEnv } from "./dotenv-DKI6139G.js";
62
62
  import { t as ensureSKYKOICliOnPath } from "./path-env-B1xMZ4TX.js";
63
63
  import { g as assertSupportedRuntime } from "./daemon-runtime-CdyzhAad.js";
64
- import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-itYahNW7.js";
64
+ import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-BAJyMuAW.js";
65
65
  import "./logging-BusiCyt_.js";
66
66
  import "./note-CbRknFZ7.js";
67
67
  import "./clack-prompter-BxHCh6Tn.js";
68
- import "./onboarding-DYOdNLWp.js";
68
+ import "./onboarding-3gCmLAD4.js";
69
69
  import "./onboard-skills-H7wHgClM.js";
70
70
  import "./github-copilot-auth-DdNdt7aP.js";
71
71
  import "./onboard-channels-WX-PzX0I.js";
@@ -74,7 +74,7 @@ import "./archive-DNsNlUjO.js";
74
74
  import "./skill-scanner-WnNLktfw.js";
75
75
  import "./installs-DU3ERQt_.js";
76
76
  import "./health-format-DN99RsH2.js";
77
- import "./update-runner-BSWtvedG.js";
77
+ import "./update-runner-B7d7jz_H.js";
78
78
  import "./auth-DcQcmQH5.js";
79
79
  import "./audit-xPP239ME.js";
80
80
  import "./table-CgHdpI6b.js";
@@ -84,7 +84,7 @@ import "./systemd-BuS1yu_z.js";
84
84
  import "./service-audit-cgxNpqDF.js";
85
85
  import "./node-service-DfmbTqpi.js";
86
86
  import "./channels-status-issues-GKs-LbrV.js";
87
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-fKI-f9E7.js";
87
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-DBufH4L5.js";
88
88
  import "./gateway-rpc-ChtP1AJk.js";
89
89
  import "./help-format-Cbr54gLP.js";
90
90
  import "./koi-crKnniSf.js";
@@ -94,8 +94,8 @@ import "./systemd-linger-BLQwmm6k.js";
94
94
  import "./widearea-dns-DMja3M8B.js";
95
95
  import "./bonjour-discovery-D_eYlsQc.js";
96
96
  import "./auth-health-QVPApxZ5.js";
97
- import "./doctor-CYQptdI7.js";
98
- import "./completion-cli-BBJNqLFD.js";
97
+ import "./doctor-B7BKns10.js";
98
+ import "./completion-cli-fROkUGMh.js";
99
99
  import "./hooks-status-DbwN6pvO.js";
100
100
  import { n as emitCliBanner } from "./tui-DissoNdH.js";
101
101
  import process$1 from "node:process";
@@ -151,7 +151,7 @@ async function runCli(argv = process$1.argv) {
151
151
  assertSupportedRuntime();
152
152
  if (await tryRouteCli(normalizedArgv)) return;
153
153
  enableConsoleCapture();
154
- const { buildProgram } = await import("./program-BcuT4Lsu.js").then((n) => n.t);
154
+ const { buildProgram } = await import("./program-DwQgaPww.js").then((n) => n.t);
155
155
  const program = buildProgram();
156
156
  installUnhandledRejectionHandler();
157
157
  process$1.on("uncaughtException", (error) => {
@@ -161,7 +161,7 @@ async function runCli(argv = process$1.argv) {
161
161
  const parseArgv = rewriteUpdateFlagArgv(normalizedArgv);
162
162
  const primary = getPrimaryCommand(parseArgv);
163
163
  if (primary) {
164
- const { registerSubCliByName } = await import("./register.subclis-fKI-f9E7.js").then((n) => n.i);
164
+ const { registerSubCliByName } = await import("./register.subclis-DBufH4L5.js").then((n) => n.i);
165
165
  await registerSubCliByName(program, primary);
166
166
  }
167
167
  if (!(!primary && hasHelpOrVersion(parseArgv))) {
@@ -68,7 +68,7 @@ import "./archive-DNsNlUjO.js";
68
68
  import "./skill-scanner-WnNLktfw.js";
69
69
  import "./installs-DU3ERQt_.js";
70
70
  import "./health-format-DN99RsH2.js";
71
- 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-BSWtvedG.js";
71
+ 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-B7d7jz_H.js";
72
72
  import "./auth-DcQcmQH5.js";
73
73
  import { t as renderTable } from "./table-CgHdpI6b.js";
74
74
  import "./skills-status-CIFMe-eQ.js";
@@ -76,12 +76,12 @@ import "./service-CTrRN1-T.js";
76
76
  import "./systemd-BuS1yu_z.js";
77
77
  import "./service-audit-cgxNpqDF.js";
78
78
  import "./channels-status-issues-GKs-LbrV.js";
79
- import "./register.subclis-fKI-f9E7.js";
79
+ import "./register.subclis-DBufH4L5.js";
80
80
  import { t as formatHelpExamples } from "./help-format-Cbr54gLP.js";
81
81
  import "./systemd-linger-BLQwmm6k.js";
82
82
  import "./auth-health-QVPApxZ5.js";
83
- import { t as doctorCommand } from "./doctor-CYQptdI7.js";
84
- import { r as installCompletion } from "./completion-cli-BBJNqLFD.js";
83
+ import { t as doctorCommand } from "./doctor-B7BKns10.js";
84
+ import { r as installCompletion } from "./completion-cli-fROkUGMh.js";
85
85
  import "./shared-7rrirrq8.js";
86
86
  import { r as runDaemonRestart } from "./daemon-cli-B3IGEf6L.js";
87
87
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-x-DcMYOq.js";
@@ -6,7 +6,7 @@ import { N as VERSION } from "./config-DKtZlV3b.js";
6
6
  import { _ as parseSemver } from "./daemon-runtime-CdyzhAad.js";
7
7
  import { t as note } from "./note-CbRknFZ7.js";
8
8
  import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-DN99RsH2.js";
9
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BBJNqLFD.js";
9
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-fROkUGMh.js";
10
10
  import path from "node:path";
11
11
  import os from "node:os";
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.159",
3
+ "version": "2026.3.161",
4
4
  "description": "SkyKoi — Koi runtime. Multi-channel gateway CLI with RPC Koi.",
5
5
  "keywords": [
6
6
  "skykoi",