skykoi 2026.3.334 → 2026.3.335

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.334",
3
- "commit": "0d9535dd2955f1246b73e4a3d2d7daace4a5e98c",
4
- "builtAt": "2026-06-11T17:47:30.981Z"
2
+ "version": "2026.3.335",
3
+ "commit": "dad1d36dad0d9aec743919a4533f9339d687febd",
4
+ "builtAt": "2026-06-11T18:37:04.515Z"
5
5
  }
@@ -1 +1 @@
1
- 7da13edbfd07f2376c57e09ec234ba15b02a73b1a392bafb9c7b58f75c69e929
1
+ 73bed20665bb4b4468819e5286560b0804b0355162d2acd76a5f62b408ed11c6
@@ -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-Dnsmfs55.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-BIAi--KU.js";
4
4
  import path from "node:path";
5
5
  import os from "node:os";
6
6
  import fs from "node:fs/promises";
@@ -27,7 +27,7 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-BJ0RdAWy.js";
27
27
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-BYKu4FCl.js";
28
28
  import { t as WizardCancelledError } from "./prompts-QLr0uHK3.js";
29
29
  import { t as createClackPrompter } from "./clack-prompter-t8CaZFBV.js";
30
- 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-BFYgCHQD.js";
30
+ 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-hJe8gafg.js";
31
31
  import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-DLJlrqc_.js";
32
32
  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-C-5yS7-S.js";
33
33
  import { n as setupChannels } from "./onboard-channels-6_svNn6o.js";
@@ -35,7 +35,7 @@ import { i as healthCommand } from "./health-format-5hIukkMW.js";
35
35
  import { t as renderTable } from "./table-DGEf0ecX.js";
36
36
  import { t as resolveGatewayService } from "./service-CKHP-LSk.js";
37
37
  import { r as isSystemdUserServiceAvailable } from "./systemd-D9YMYUVJ.js";
38
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-Dnsmfs55.js";
38
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-BIAi--KU.js";
39
39
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BbPQNaPu.js";
40
40
  import { t as formatHelpExamples } from "./help-format-D6QlSTzg.js";
41
41
  import { t as adminUnlockCommand } from "./admin-unlock-BPH4mlvg.js";
@@ -46,7 +46,7 @@ import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCo
46
46
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-C_fffScE.js";
47
47
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-Bp3jN74v.js";
48
48
  import { t as loginCommand } from "./login-DQBkjWQh.js";
49
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-BbFhtTJN.js";
49
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-BEKPbsHv.js";
50
50
  import { fileURLToPath } from "node:url";
51
51
  import fs from "node:fs";
52
52
  import path from "node:path";
@@ -34,7 +34,7 @@ import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLa
34
34
  import { r as isSystemdUserServiceAvailable } from "./systemd-D9YMYUVJ.js";
35
35
  import { t as readLastGatewayErrorLine } from "./diagnostics-C-YMJXl4.js";
36
36
  import { t as collectChannelStatusIssues } from "./channels-status-issues-T19-LXup.js";
37
- import { n as doctorShellCompletion } from "./doctor-completion-RhF6S3_C.js";
37
+ import { n as doctorShellCompletion } from "./doctor-completion-C16RAWnu.js";
38
38
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-ulSPw_yr.js";
39
39
  import { a as gatewayInstallErrorHint, d as renderSystemNodeWarning, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, p as resolveSystemNodeInfo, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-C_fffScE.js";
40
40
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-Bp3jN74v.js";
@@ -3,7 +3,7 @@ import { r as resolveCliName, t as formatCliCommand } from "./command-format-DOY
3
3
  import { t as VERSION } from "./version-BKRSzdyx.js";
4
4
  import { t as note } from "./note-JXsKJ6Xp.js";
5
5
  import { c as compareSemverStrings, s as checkUpdateStatus } from "./update-runner-16zZxRyN.js";
6
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BUvof8ba.js";
6
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-H6Dl6hVL.js";
7
7
  import path from "node:path";
8
8
  import { spawnSync } from "node:child_process";
9
9
 
package/dist/entry.js CHANGED
@@ -247,7 +247,7 @@ if (!ensureExperimentalWarningSuppressed()) {
247
247
  applyCliProfileEnv({ profile: parsed.profile });
248
248
  process$1.argv = parsed.argv;
249
249
  }
250
- import("./run-main-DlaQd9Vk.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
250
+ import("./run-main-B-ppoM2c.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
251
251
  console.error("[SKYKOI] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
252
252
  process$1.exitCode = 1;
253
253
  });
@@ -86,7 +86,7 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-BJ0RdAWy.js";
86
86
  import "./logging-BYKu4FCl.js";
87
87
  import "./note-JXsKJ6Xp.js";
88
88
  import { t as WizardCancelledError } from "./prompts-QLr0uHK3.js";
89
- 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-BFYgCHQD.js";
89
+ 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-hJe8gafg.js";
90
90
  import { n as installSkill } from "./onboard-skills-DLJlrqc_.js";
91
91
  import "./github-copilot-auth-C-5yS7-S.js";
92
92
  import "./onboard-channels-6_svNn6o.js";
@@ -105,15 +105,15 @@ import { p as resolveGatewayStateDir } from "./systemd-D9YMYUVJ.js";
105
105
  import "./diagnostics-C-YMJXl4.js";
106
106
  import "./node-service-DrS2vIzq.js";
107
107
  import "./channels-status-issues-T19-LXup.js";
108
- import "./doctor-completion-RhF6S3_C.js";
109
- import "./register.subclis-Dnsmfs55.js";
108
+ import "./doctor-completion-C16RAWnu.js";
109
+ import "./register.subclis-BIAi--KU.js";
110
110
  import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-D2JSJabK.js";
111
111
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-ulSPw_yr.js";
112
112
  import "./daemon-runtime-C_fffScE.js";
113
113
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-D764X7td.js";
114
114
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-_EttiPSR.js";
115
115
  import "./ensure-local-gateway-Dhu_e55g.js";
116
- import "./completion-cli-BUvof8ba.js";
116
+ import "./completion-cli-H6Dl6hVL.js";
117
117
  import "./service-audit-QCeWRiGh.js";
118
118
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-CEe-RaiY.js";
119
119
  import "./tui-Dil1xfUg.js";
@@ -14077,6 +14077,64 @@ const filesHandlers = {
14077
14077
  }
14078
14078
  };
14079
14079
 
14080
+ //#endregion
14081
+ //#region src/gateway/server-methods/profile.ts
14082
+ /**
14083
+ * @module gateway/server-methods/profile
14084
+ *
14085
+ * Gateway RPC handler that exposes the koi's onboarding DOSSIER — the
14086
+ * human-readable `USER.md` plus the structured `profile.json` the koi writes
14087
+ * during onboarding — so the website (koi.skykoi.com) can render it as a
14088
+ * knowledge graph (people, companies, projects, …).
14089
+ *
14090
+ * Method: profile.get {}
14091
+ * Returns: {
14092
+ * workspaceDir: string,
14093
+ * userMd: string | null, // USER.md (utf8), null when missing/unreadable
14094
+ * profile: object | null, // parsed profile.json, null when missing/invalid
14095
+ * updatedAt: string | null // profile.json mtime as ISO, null when missing
14096
+ * }
14097
+ *
14098
+ * Reads ONLY the koi's own default workspace (no path params) — there is no
14099
+ * caller-controlled path, so it is safe. The handler never throws: any missing
14100
+ * or malformed file degrades to a null field.
14101
+ */
14102
+ const PROFILE_FILENAME = "profile.json";
14103
+ function readTextFile(filePath) {
14104
+ try {
14105
+ return readFileSync(filePath, "utf8");
14106
+ } catch {
14107
+ return null;
14108
+ }
14109
+ }
14110
+ const profileHandlers = { "profile.get": async ({ respond }) => {
14111
+ const workspaceDir = resolveDefaultKoiWorkspaceDir();
14112
+ const userMd = readTextFile(join(workspaceDir, DEFAULT_USER_FILENAME));
14113
+ const profilePath = join(workspaceDir, PROFILE_FILENAME);
14114
+ let profile = null;
14115
+ let updatedAt = null;
14116
+ const profileRaw = readTextFile(profilePath);
14117
+ if (profileRaw !== null) {
14118
+ try {
14119
+ const parsed = JSON.parse(profileRaw);
14120
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) profile = parsed;
14121
+ } catch {
14122
+ profile = null;
14123
+ }
14124
+ try {
14125
+ updatedAt = statSync(profilePath).mtime.toISOString();
14126
+ } catch {
14127
+ updatedAt = null;
14128
+ }
14129
+ }
14130
+ respond(true, {
14131
+ workspaceDir,
14132
+ userMd,
14133
+ profile,
14134
+ updatedAt
14135
+ });
14136
+ } };
14137
+
14080
14138
  //#endregion
14081
14139
  //#region src/wizard/session.ts
14082
14140
  function createDeferred() {
@@ -14410,6 +14468,7 @@ const READ_METHODS = new Set([
14410
14468
  "models.list",
14411
14469
  "koi.list",
14412
14470
  "koi.identity.get",
14471
+ "profile.get",
14413
14472
  "skills.status",
14414
14473
  "voicewake.get",
14415
14474
  "sessions.list",
@@ -14476,6 +14535,7 @@ const coreGatewayHandlers = {
14476
14535
  ...voicewakeHandlers,
14477
14536
  ...healthHandlers,
14478
14537
  ...filesHandlers,
14538
+ ...profileHandlers,
14479
14539
  ...channelsHandlers,
14480
14540
  ...chatHandlers,
14481
14541
  ...progressHandlers,
package/dist/index.js CHANGED
@@ -73,11 +73,11 @@ import { t as isMainModule } from "./is-main-DZvllFzQ.js";
73
73
  import { t as ensureSKYKOICliOnPath } from "./path-env-C7V3KfE6.js";
74
74
  import { t as assertSupportedRuntime } from "./runtime-guard-DHvhwccg.js";
75
75
  import "./ports-BamXUQot.js";
76
- import "./config-guard-h5le6zs3.js";
76
+ import "./config-guard-IDZI7r1G.js";
77
77
  import "./logging-BYKu4FCl.js";
78
78
  import "./note-JXsKJ6Xp.js";
79
79
  import "./clack-prompter-t8CaZFBV.js";
80
- import "./onboarding-BFYgCHQD.js";
80
+ import "./onboarding-hJe8gafg.js";
81
81
  import "./onboard-skills-DLJlrqc_.js";
82
82
  import "./github-copilot-auth-C-5yS7-S.js";
83
83
  import "./onboard-channels-6_svNn6o.js";
@@ -96,8 +96,8 @@ import "./systemd-D9YMYUVJ.js";
96
96
  import "./diagnostics-C-YMJXl4.js";
97
97
  import "./node-service-DrS2vIzq.js";
98
98
  import "./channels-status-issues-T19-LXup.js";
99
- import "./doctor-completion-RhF6S3_C.js";
100
- import "./register.subclis-Dnsmfs55.js";
99
+ import "./doctor-completion-C16RAWnu.js";
100
+ import "./register.subclis-BIAi--KU.js";
101
101
  import "./gateway-rpc-BbPQNaPu.js";
102
102
  import "./help-format-D6QlSTzg.js";
103
103
  import "./admin-unlock-BPH4mlvg.js";
@@ -112,13 +112,13 @@ import "./bonjour-discovery-_EttiPSR.js";
112
112
  import "./ensure-local-gateway-Dhu_e55g.js";
113
113
  import "./login-DQBkjWQh.js";
114
114
  import "./auth-health-D-EO7Gy6.js";
115
- import "./doctor-BbFhtTJN.js";
116
- import "./completion-cli-BUvof8ba.js";
115
+ import "./doctor-BEKPbsHv.js";
116
+ import "./completion-cli-H6Dl6hVL.js";
117
117
  import "./service-audit-QCeWRiGh.js";
118
118
  import "./hooks-status-CEe-RaiY.js";
119
119
  import "./tui-Dil1xfUg.js";
120
120
  import "./channel-options-DatqQMu-.js";
121
- import { n as buildProgram } from "./program-DBPBjQ6C.js";
121
+ import { n as buildProgram } from "./program-Ctly_Zpb.js";
122
122
  import process from "node:process";
123
123
  import { fileURLToPath } from "node:url";
124
124
 
@@ -37,10 +37,10 @@ import { t as readLastGatewayErrorLine } from "./diagnostics-C-YMJXl4.js";
37
37
  import { t as resolveNodeService } from "./node-service-DrS2vIzq.js";
38
38
  import { t as collectChannelStatusIssues } from "./channels-status-issues-T19-LXup.js";
39
39
  import { i as redactSecrets, n as formatDuration$1, r as formatGatewayAuthUsed, t as formatAge$1 } from "./format-BPATbSa4.js";
40
- import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, o as getUpdateCheckResult, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-RhF6S3_C.js";
40
+ import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, o as getUpdateCheckResult, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-C16RAWnu.js";
41
41
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-ulSPw_yr.js";
42
42
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-C_fffScE.js";
43
- import { r as installCompletion } from "./completion-cli-BUvof8ba.js";
43
+ import { r as installCompletion } from "./completion-cli-H6Dl6hVL.js";
44
44
  import { t as buildWorkspaceHookStatus } from "./hooks-status-CEe-RaiY.js";
45
45
  import { t as runTui } from "./tui-Dil1xfUg.js";
46
46
  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";
@@ -33,7 +33,7 @@ import { exec as exec$1 } from "child_process";
33
33
  import { createReadStream as createReadStream$1, createWriteStream as createWriteStream$1, promises as promises$1 } from "fs";
34
34
  import { Readable, Transform } from "stream";
35
35
  import { platform, release, tmpdir as tmpdir$1 } from "os";
36
- import EventEmitter$1, { EventEmitter, once } from "events";
36
+ import EventEmitter, { EventEmitter as EventEmitter$1, once } from "events";
37
37
  import { promisify as promisify$1 } from "util";
38
38
  import { join as join$1 } from "path";
39
39
  import * as Crypto from "crypto";
@@ -41,7 +41,7 @@ import { createCipheriv, createDecipheriv, createHash, createHmac, randomBytes a
41
41
  import { mkdir, readFile, stat as stat$1, unlink, writeFile } from "fs/promises";
42
42
  import { Readable as Readable$1 } from "node:stream";
43
43
  import { pipeline as pipeline$1 } from "node:stream/promises";
44
- import WebSocket$1, { WebSocket } from "ws";
44
+ import WebSocket, { WebSocket as WebSocket$1 } from "ws";
45
45
  import AjvModule from "ajv";
46
46
  import lockfile from "proper-lockfile";
47
47
  import { URL as URL$1 } from "url";
@@ -2263,7 +2263,7 @@ function readLoggingConfig() {
2263
2263
  try {
2264
2264
  if (!fs.existsSync(configPath)) return;
2265
2265
  const raw = fs.readFileSync(configPath, "utf-8");
2266
- const logging = json5.parse(raw)?.logging;
2266
+ const logging = JSON5.parse(raw)?.logging;
2267
2267
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
2268
2268
  return logging;
2269
2269
  } catch {
@@ -19029,7 +19029,7 @@ var IncludeProcessor = class IncludeProcessor {
19029
19029
  };
19030
19030
  const defaultResolver = {
19031
19031
  readFile: (p) => fs.readFileSync(p, "utf-8"),
19032
- parseJson: (raw) => json5.parse(raw)
19032
+ parseJson: (raw) => JSON5.parse(raw)
19033
19033
  };
19034
19034
  /**
19035
19035
  * Resolves all $include directives in a parsed config object.
@@ -21726,18 +21726,18 @@ function resolveConfigPathForDeps(deps) {
21726
21726
  function normalizeDeps(overrides = {}) {
21727
21727
  return {
21728
21728
  fs: overrides.fs ?? fs,
21729
- json5: overrides.json5 ?? json5,
21729
+ json5: overrides.json5 ?? JSON5,
21730
21730
  env: overrides.env ?? process.env,
21731
21731
  homedir: overrides.homedir ?? os.homedir,
21732
21732
  configPath: overrides.configPath ?? "",
21733
21733
  logger: overrides.logger ?? console
21734
21734
  };
21735
21735
  }
21736
- function parseConfigJson5(raw, json5$1 = json5) {
21736
+ function parseConfigJson5(raw, json5 = JSON5) {
21737
21737
  try {
21738
21738
  return {
21739
21739
  ok: true,
21740
- parsed: json5$1.parse(raw)
21740
+ parsed: json5.parse(raw)
21741
21741
  };
21742
21742
  } catch (err) {
21743
21743
  return {
@@ -22251,7 +22251,7 @@ function loadSessionStore(storePath, opts = {}) {
22251
22251
  let mtimeMs = getFileMtimeMs(storePath);
22252
22252
  try {
22253
22253
  const raw = fs.readFileSync(storePath, "utf-8");
22254
- const parsed = json5.parse(raw);
22254
+ const parsed = JSON5.parse(raw);
22255
22255
  if (isSessionStoreRecord(parsed)) store = parsed;
22256
22256
  mtimeMs = getFileMtimeMs(storePath) ?? mtimeMs;
22257
22257
  } catch {}
@@ -48334,7 +48334,7 @@ var GatewayClient = class {
48334
48334
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
48335
48335
  });
48336
48336
  }
48337
- this.ws = new WebSocket(url, wsOptions);
48337
+ this.ws = new WebSocket$1(url, wsOptions);
48338
48338
  this.ws.on("open", () => {
48339
48339
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
48340
48340
  const tlsError = this.validateTlsFingerprint();
@@ -48553,7 +48553,7 @@ var GatewayClient = class {
48553
48553
  return null;
48554
48554
  }
48555
48555
  async request(method, params, opts) {
48556
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
48556
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
48557
48557
  const id = randomUUID();
48558
48558
  const frame = {
48559
48559
  type: "req",
@@ -228306,7 +228306,7 @@ const BUFFERABLE_EVENT_SET = new Set([
228306
228306
  * making the data processing more efficient.
228307
228307
  */
228308
228308
  const makeEventBuffer = (logger) => {
228309
- const ev = new EventEmitter$1();
228309
+ const ev = new EventEmitter();
228310
228310
  const historyCache = /* @__PURE__ */ new Set();
228311
228311
  let data = makeBufferData();
228312
228312
  let isBuffering = false;
@@ -233876,7 +233876,7 @@ var BinaryInfo = class {
233876
233876
 
233877
233877
  //#endregion
233878
233878
  //#region node_modules/.pnpm/@whiskeysockets+baileys@7.0.0-rc.9_audio-decode@2.2.3_sharp@0.34.5/node_modules/@whiskeysockets/baileys/lib/Socket/Client/types.js
233879
- var AbstractSocketClient = class extends EventEmitter {
233879
+ var AbstractSocketClient = class extends EventEmitter$1 {
233880
233880
  constructor(url, config) {
233881
233881
  super();
233882
233882
  this.url = url;
@@ -233893,20 +233893,20 @@ var WebSocketClient = class extends AbstractSocketClient {
233893
233893
  this.socket = null;
233894
233894
  }
233895
233895
  get isOpen() {
233896
- return this.socket?.readyState === WebSocket$1.OPEN;
233896
+ return this.socket?.readyState === WebSocket.OPEN;
233897
233897
  }
233898
233898
  get isClosed() {
233899
- return this.socket === null || this.socket?.readyState === WebSocket$1.CLOSED;
233899
+ return this.socket === null || this.socket?.readyState === WebSocket.CLOSED;
233900
233900
  }
233901
233901
  get isClosing() {
233902
- return this.socket === null || this.socket?.readyState === WebSocket$1.CLOSING;
233902
+ return this.socket === null || this.socket?.readyState === WebSocket.CLOSING;
233903
233903
  }
233904
233904
  get isConnecting() {
233905
- return this.socket?.readyState === WebSocket$1.CONNECTING;
233905
+ return this.socket?.readyState === WebSocket.CONNECTING;
233906
233906
  }
233907
233907
  connect() {
233908
233908
  if (this.socket) return;
233909
- this.socket = new WebSocket$1(this.url, {
233909
+ this.socket = new WebSocket(this.url, {
233910
233910
  origin: DEFAULT_ORIGIN,
233911
233911
  headers: this.config.options?.headers,
233912
233912
  handshakeTimeout: this.config.connectTimeoutMs,
@@ -5,8 +5,8 @@ import { n as replaceCliName, r as resolveCliName } from "./command-format-DOYW_
5
5
  import { t as isTruthyEnvValue } from "./env-ChCKTuXK.js";
6
6
  import { t as VERSION } from "./version-BKRSzdyx.js";
7
7
  import { t as formatDocsLink } from "./links-DLPVdfTL.js";
8
- import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-h5le6zs3.js";
9
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-Dnsmfs55.js";
8
+ import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-IDZI7r1G.js";
9
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-BIAi--KU.js";
10
10
  import { t as ensurePluginRegistryLoaded } from "./plugin-registry-CbCweUIK.js";
11
11
  import { a as hasEmittedCliBanner, i as formatCliBannerLine, r as emitCliBanner } from "./tui-Dil1xfUg.js";
12
12
  import { n as resolveCliChannelOptions } from "./channel-options-DatqQMu-.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-uBA9gFWY.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-CoDGTPeF.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-8mtNxpYM.js")).registerUpdateCli(program);
285
+ (await import("./update-cli-DYAuCwz7.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-BUvof8ba.js").then((n) => n.n)).registerCompletionCli(program);
292
+ (await import("./completion-cli-H6Dl6hVL.js").then((n) => n.n)).registerCompletionCli(program);
293
293
  }
294
294
  }
295
295
  ];
@@ -70,11 +70,11 @@ import "./deps-Sx6LSw30.js";
70
70
  import "./tailscale-D0cB8Nyf.js";
71
71
  import { t as ensureSKYKOICliOnPath } from "./path-env-C7V3KfE6.js";
72
72
  import { t as assertSupportedRuntime } from "./runtime-guard-DHvhwccg.js";
73
- import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-h5le6zs3.js";
73
+ import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-IDZI7r1G.js";
74
74
  import "./logging-BYKu4FCl.js";
75
75
  import "./note-JXsKJ6Xp.js";
76
76
  import "./clack-prompter-t8CaZFBV.js";
77
- import "./onboarding-BFYgCHQD.js";
77
+ import "./onboarding-hJe8gafg.js";
78
78
  import "./onboard-skills-DLJlrqc_.js";
79
79
  import "./github-copilot-auth-C-5yS7-S.js";
80
80
  import "./onboard-channels-6_svNn6o.js";
@@ -93,8 +93,8 @@ import "./systemd-D9YMYUVJ.js";
93
93
  import "./diagnostics-C-YMJXl4.js";
94
94
  import "./node-service-DrS2vIzq.js";
95
95
  import "./channels-status-issues-T19-LXup.js";
96
- import "./doctor-completion-RhF6S3_C.js";
97
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-Dnsmfs55.js";
96
+ import "./doctor-completion-C16RAWnu.js";
97
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-BIAi--KU.js";
98
98
  import "./gateway-rpc-BbPQNaPu.js";
99
99
  import "./help-format-D6QlSTzg.js";
100
100
  import "./admin-unlock-BPH4mlvg.js";
@@ -109,8 +109,8 @@ import "./bonjour-discovery-_EttiPSR.js";
109
109
  import "./ensure-local-gateway-Dhu_e55g.js";
110
110
  import "./login-DQBkjWQh.js";
111
111
  import "./auth-health-D-EO7Gy6.js";
112
- import "./doctor-BbFhtTJN.js";
113
- import "./completion-cli-BUvof8ba.js";
112
+ import "./doctor-BEKPbsHv.js";
113
+ import "./completion-cli-H6Dl6hVL.js";
114
114
  import "./service-audit-QCeWRiGh.js";
115
115
  import "./hooks-status-CEe-RaiY.js";
116
116
  import { r as emitCliBanner } from "./tui-Dil1xfUg.js";
@@ -167,7 +167,7 @@ async function runCli(argv = process$1.argv) {
167
167
  assertSupportedRuntime();
168
168
  if (await tryRouteCli(normalizedArgv)) return;
169
169
  enableConsoleCapture();
170
- const { buildProgram } = await import("./program-DBPBjQ6C.js").then((n) => n.t);
170
+ const { buildProgram } = await import("./program-Ctly_Zpb.js").then((n) => n.t);
171
171
  const program = buildProgram();
172
172
  installUnhandledRejectionHandler();
173
173
  process$1.on("uncaughtException", (error) => {
@@ -200,7 +200,7 @@ async function runCli(argv = process$1.argv) {
200
200
  }
201
201
  const primary = getPrimaryCommand(parseArgv);
202
202
  if (primary) {
203
- const { registerSubCliByName } = await import("./register.subclis-Dnsmfs55.js").then((n) => n.i);
203
+ const { registerSubCliByName } = await import("./register.subclis-BIAi--KU.js").then((n) => n.i);
204
204
  await registerSubCliByName(program, primary);
205
205
  }
206
206
  if (!(!primary && hasHelpOrVersion(parseArgv))) {
@@ -86,15 +86,15 @@ import "./service-CKHP-LSk.js";
86
86
  import "./systemd-D9YMYUVJ.js";
87
87
  import "./diagnostics-C-YMJXl4.js";
88
88
  import "./channels-status-issues-T19-LXup.js";
89
- import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-RhF6S3_C.js";
90
- import "./register.subclis-Dnsmfs55.js";
89
+ import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-C16RAWnu.js";
90
+ import "./register.subclis-BIAi--KU.js";
91
91
  import { t as formatHelpExamples } from "./help-format-D6QlSTzg.js";
92
92
  import "./control-ui-assets-ulSPw_yr.js";
93
93
  import "./daemon-runtime-C_fffScE.js";
94
94
  import "./systemd-linger-Bp3jN74v.js";
95
95
  import "./auth-health-D-EO7Gy6.js";
96
- import { t as doctorCommand } from "./doctor-BbFhtTJN.js";
97
- import { r as installCompletion } from "./completion-cli-BUvof8ba.js";
96
+ import { t as doctorCommand } from "./doctor-BEKPbsHv.js";
97
+ import { r as installCompletion } from "./completion-cli-H6Dl6hVL.js";
98
98
  import "./service-audit-QCeWRiGh.js";
99
99
  import "./shared-Ce8XPMG6.js";
100
100
  import { r as runDaemonRestart } from "./daemon-cli-CDUBObTi.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skykoi",
3
- "version": "2026.3.334",
3
+ "version": "2026.3.335",
4
4
  "description": "SkyKoi — Koi runtime. Multi-channel gateway CLI with RPC Koi.",
5
5
  "keywords": [
6
6
  "cli",