skykoi 2026.3.325 → 2026.3.326

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.325",
3
- "commit": "c2f8bc74e833337a7e9de4abbfa99029787fb9ca",
4
- "builtAt": "2026-06-11T01:37:24.380Z"
2
+ "version": "2026.3.326",
3
+ "commit": "aa26554c09ddab04881995d5b479baa294f0f3da",
4
+ "builtAt": "2026-06-11T01:50:14.361Z"
5
5
  }
@@ -1 +1 @@
1
- a9c694a00edccbad7962b359de0d145e81fa54128e4d8d55e5d0702c5dc76f28
1
+ 75e230f445215b88b1e54dd77cad63f03d95e92b5c320292923435c304a628c5
@@ -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--gJwSct5.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-B7sqTsBj.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-Cg7M1qEA.js";
27
27
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-CSvbGeqF.js";
28
28
  import { t as WizardCancelledError } from "./prompts-B1n8UQzX.js";
29
29
  import { t as createClackPrompter } from "./clack-prompter-CCgKKgnN.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-C8LHaxej.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-CCpP66LJ.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-ChDFxeGS.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-CRvtl8wF.js";
33
33
  import { n as setupChannels } from "./onboard-channels-BiwGmgdU.js";
@@ -35,7 +35,7 @@ import { i as healthCommand } from "./health-format-Cw_wWsUk.js";
35
35
  import { t as renderTable } from "./table-C-_kZeNX.js";
36
36
  import { t as resolveGatewayService } from "./service-CgbWVYSz.js";
37
37
  import { r as isSystemdUserServiceAvailable } from "./systemd-CKUsCXqF.js";
38
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis--gJwSct5.js";
38
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-B7sqTsBj.js";
39
39
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BLmNrKaj.js";
40
40
  import { t as formatHelpExamples } from "./help-format-BgbvAVIq.js";
41
41
  import { t as adminUnlockCommand } from "./admin-unlock--4SPdpdy.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-BTR2GDIQ.js";
47
47
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-Cu8buxAR.js";
48
48
  import { t as loginCommand } from "./login-BPXcLBkt.js";
49
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-CVgixgc_.js";
49
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-Ce1sxck6.js";
50
50
  import { fileURLToPath } from "node:url";
51
51
  import fs from "node:fs";
52
52
  import path from "node:path";
@@ -3105,7 +3105,7 @@ function registerLoginCommand(program) {
3105
3105
  console.log(theme.muted(` user=${result.userId} org=${result.orgId}`));
3106
3106
  }
3107
3107
  if (opts.chat !== false && result.gatewayUrl && process.stdin.isTTY && process.stdout.isTTY) {
3108
- const { runTui } = await import("./tui-CGNbsIEk.js").then((n) => n.n);
3108
+ const { runTui } = await import("./tui-Dh1acgyz.js").then((n) => n.n);
3109
3109
  console.log(theme.muted("\n Opening your koi chat…\n"));
3110
3110
  await runTui({
3111
3111
  url: result.gatewayUrl,
@@ -34,7 +34,7 @@ import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLa
34
34
  import { r as isSystemdUserServiceAvailable } from "./systemd-CKUsCXqF.js";
35
35
  import { t as readLastGatewayErrorLine } from "./diagnostics-CBJs_eaH.js";
36
36
  import { t as collectChannelStatusIssues } from "./channels-status-issues-D_rjAibL.js";
37
- import { n as doctorShellCompletion } from "./doctor-completion-Brm5NWYN.js";
37
+ import { n as doctorShellCompletion } from "./doctor-completion-CLMLUQj9.js";
38
38
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-C6cSlkkc.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-BTR2GDIQ.js";
40
40
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-Cu8buxAR.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-DdyFyHLV.js";
5
5
  import { c as compareSemverStrings, s as checkUpdateStatus } from "./update-runner-BF2ZUZuV.js";
6
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-C25PewMH.js";
6
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Q3xLcOzu.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-Bs6S9NXG.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
250
+ import("./run-main-DFHUWuvR.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-Cg7M1qEA.js";
86
86
  import "./logging-CSvbGeqF.js";
87
87
  import "./note-DdyFyHLV.js";
88
88
  import { t as WizardCancelledError } from "./prompts-B1n8UQzX.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-C8LHaxej.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-CCpP66LJ.js";
90
90
  import { n as installSkill } from "./onboard-skills-ChDFxeGS.js";
91
91
  import "./github-copilot-auth-CRvtl8wF.js";
92
92
  import "./onboard-channels-BiwGmgdU.js";
@@ -105,17 +105,17 @@ import { p as resolveGatewayStateDir } from "./systemd-CKUsCXqF.js";
105
105
  import "./diagnostics-CBJs_eaH.js";
106
106
  import "./node-service-CnU49y0d.js";
107
107
  import "./channels-status-issues-D_rjAibL.js";
108
- import "./doctor-completion-Brm5NWYN.js";
109
- import "./register.subclis--gJwSct5.js";
108
+ import "./doctor-completion-CLMLUQj9.js";
109
+ import "./register.subclis-B7sqTsBj.js";
110
110
  import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-Dv4SlCoI.js";
111
111
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-C6cSlkkc.js";
112
112
  import "./daemon-runtime-BTR2GDIQ.js";
113
113
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-BVskGRhX.js";
114
114
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-DjvriZpZ.js";
115
- import "./completion-cli-C25PewMH.js";
115
+ import "./completion-cli-Q3xLcOzu.js";
116
116
  import "./service-audit-D1ElVIM8.js";
117
117
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-CxWUG7p9.js";
118
- import "./tui-CGNbsIEk.js";
118
+ import "./tui-Dh1acgyz.js";
119
119
  import { t as buildChannelAccountSnapshot } from "./status-CoVkpNVT.js";
120
120
  import "./shared-CsHmFsvZ.js";
121
121
  import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-Dg-A3XTa.js";
package/dist/index.js CHANGED
@@ -73,11 +73,11 @@ import { t as isMainModule } from "./is-main-9SjMCZPE.js";
73
73
  import { t as ensureSKYKOICliOnPath } from "./path-env-DLiKMTfX.js";
74
74
  import { t as assertSupportedRuntime } from "./runtime-guard-Btp4Sks0.js";
75
75
  import "./ports-wWIKjGeR.js";
76
- import "./config-guard-Ca2s5BiU.js";
76
+ import "./config-guard-CmbWsYQa.js";
77
77
  import "./logging-CSvbGeqF.js";
78
78
  import "./note-DdyFyHLV.js";
79
79
  import "./clack-prompter-CCgKKgnN.js";
80
- import "./onboarding-C8LHaxej.js";
80
+ import "./onboarding-CCpP66LJ.js";
81
81
  import "./onboard-skills-ChDFxeGS.js";
82
82
  import "./github-copilot-auth-CRvtl8wF.js";
83
83
  import "./onboard-channels-BiwGmgdU.js";
@@ -96,8 +96,8 @@ import "./systemd-CKUsCXqF.js";
96
96
  import "./diagnostics-CBJs_eaH.js";
97
97
  import "./node-service-CnU49y0d.js";
98
98
  import "./channels-status-issues-D_rjAibL.js";
99
- import "./doctor-completion-Brm5NWYN.js";
100
- import "./register.subclis--gJwSct5.js";
99
+ import "./doctor-completion-CLMLUQj9.js";
100
+ import "./register.subclis-B7sqTsBj.js";
101
101
  import "./gateway-rpc-BLmNrKaj.js";
102
102
  import "./help-format-BgbvAVIq.js";
103
103
  import "./admin-unlock--4SPdpdy.js";
@@ -112,13 +112,13 @@ import "./bonjour-discovery-DjvriZpZ.js";
112
112
  import "./ensure-local-gateway-CWMjpIBa.js";
113
113
  import "./login-BPXcLBkt.js";
114
114
  import "./auth-health-BQXG_lTS.js";
115
- import "./doctor-CVgixgc_.js";
116
- import "./completion-cli-C25PewMH.js";
115
+ import "./doctor-Ce1sxck6.js";
116
+ import "./completion-cli-Q3xLcOzu.js";
117
117
  import "./service-audit-D1ElVIM8.js";
118
118
  import "./hooks-status-CxWUG7p9.js";
119
- import "./tui-CGNbsIEk.js";
119
+ import "./tui-Dh1acgyz.js";
120
120
  import "./channel-options-CsA4EdIA.js";
121
- import { n as buildProgram } from "./program-B2dq4d8k.js";
121
+ import { n as buildProgram } from "./program-DMa1pnc4.js";
122
122
  import process from "node:process";
123
123
  import { fileURLToPath } from "node:url";
124
124
 
@@ -37,12 +37,12 @@ import { t as readLastGatewayErrorLine } from "./diagnostics-CBJs_eaH.js";
37
37
  import { t as resolveNodeService } from "./node-service-CnU49y0d.js";
38
38
  import { t as collectChannelStatusIssues } from "./channels-status-issues-D_rjAibL.js";
39
39
  import { i as redactSecrets, n as formatDuration$1, r as formatGatewayAuthUsed, t as formatAge$1 } from "./format-gY12iuBU.js";
40
- import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, o as getUpdateCheckResult, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-Brm5NWYN.js";
40
+ import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, o as getUpdateCheckResult, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-CLMLUQj9.js";
41
41
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-C6cSlkkc.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-BTR2GDIQ.js";
43
- import { r as installCompletion } from "./completion-cli-C25PewMH.js";
43
+ import { r as installCompletion } from "./completion-cli-Q3xLcOzu.js";
44
44
  import { t as buildWorkspaceHookStatus } from "./hooks-status-CxWUG7p9.js";
45
- import { t as runTui } from "./tui-CGNbsIEk.js";
45
+ import { t as runTui } from "./tui-Dh1acgyz.js";
46
46
  import fs from "node:fs";
47
47
  import path from "node:path";
48
48
  import os from "node:os";
@@ -1,5 +1,5 @@
1
1
  import { a as __toCommonJS, i as __require, o as __toESM, r as __exportAll, t as __commonJSMin } from "./chunk-D_gEzPfs.js";
2
- import { a as require_jws, i as require_dist_cjs$1, n as LRUCache$1, o as require_safe_buffer, r as getOAuthProviders, s as getEnvApiKey } from "./pi-model-discovery-CBWcyyqn.js";
2
+ import { a as require_jws, i as require_dist_cjs$1, n as LRUCache$1, o as require_safe_buffer, r as getOAuthProviders, s as getEnvApiKey } from "./pi-model-discovery-szlzYGsC.js";
3
3
  import { t as require_dist_cjs$2 } from "./dist-cjs-B9iGzXDA.js";
4
4
  import { C as require_dist_cjs$3, E as init_dist_es$1, M as require_dist_cjs$13, N as require_dist_cjs$12, T as dist_es_exports$1, a as require_dist_cjs$5, c as require_dist_cjs$17, d as require_dist_cjs$15, f as dist_es_exports, h as protocols_exports, i as require_dist_cjs$7, j as require_dist_cjs$14, l as require_dist_cjs$16, m as init_protocols, n as require_dist_cjs$10, o as require_dist_cjs$8, p as init_dist_es, r as require_dist_cjs$9, s as require_dist_cjs$11, t as require_dist_cjs$18, u as require_dist_cjs$6, w as require_dist_cjs$4 } from "./dist-cjs-Cpdu8jQP.js";
5
5
  import { C as schema_exports, N as require_dist_cjs$21, P as require_dist_cjs$19, S as init_schema, t as require_dist_cjs$20 } from "./dist-cjs-BVSr8ctW.js";
@@ -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";
@@ -42,7 +42,7 @@ 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
44
  import WebSocket, { WebSocket as WebSocket$1 } from "ws";
45
- import AjvModule from "ajv";
45
+ import AjvPkg from "ajv";
46
46
  import lockfile from "proper-lockfile";
47
47
  import { URL as URL$1 } from "url";
48
48
  import "yaml";
@@ -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 {
@@ -19028,7 +19028,7 @@ var IncludeProcessor = class IncludeProcessor {
19028
19028
  };
19029
19029
  const defaultResolver = {
19030
19030
  readFile: (p) => fs.readFileSync(p, "utf-8"),
19031
- parseJson: (raw) => JSON5.parse(raw)
19031
+ parseJson: (raw) => json5.parse(raw)
19032
19032
  };
19033
19033
  /**
19034
19034
  * Resolves all $include directives in a parsed config object.
@@ -20538,7 +20538,7 @@ function loadPluginManifestRegistry(params) {
20538
20538
 
20539
20539
  //#endregion
20540
20540
  //#region src/plugins/schema-validator.ts
20541
- const ajv$1 = new AjvModule({
20541
+ const ajv$1 = new AjvPkg({
20542
20542
  allErrors: true,
20543
20543
  strict: false,
20544
20544
  removeAdditional: false
@@ -21725,18 +21725,18 @@ function resolveConfigPathForDeps(deps) {
21725
21725
  function normalizeDeps(overrides = {}) {
21726
21726
  return {
21727
21727
  fs: overrides.fs ?? fs,
21728
- json5: overrides.json5 ?? JSON5,
21728
+ json5: overrides.json5 ?? json5,
21729
21729
  env: overrides.env ?? process.env,
21730
21730
  homedir: overrides.homedir ?? os.homedir,
21731
21731
  configPath: overrides.configPath ?? "",
21732
21732
  logger: overrides.logger ?? console
21733
21733
  };
21734
21734
  }
21735
- function parseConfigJson5(raw, json5 = JSON5) {
21735
+ function parseConfigJson5(raw, json5$1 = json5) {
21736
21736
  try {
21737
21737
  return {
21738
21738
  ok: true,
21739
- parsed: json5.parse(raw)
21739
+ parsed: json5$1.parse(raw)
21740
21740
  };
21741
21741
  } catch (err) {
21742
21742
  return {
@@ -22250,7 +22250,7 @@ function loadSessionStore(storePath, opts = {}) {
22250
22250
  let mtimeMs = getFileMtimeMs(storePath);
22251
22251
  try {
22252
22252
  const raw = fs.readFileSync(storePath, "utf-8");
22253
- const parsed = JSON5.parse(raw);
22253
+ const parsed = json5.parse(raw);
22254
22254
  if (isSessionStoreRecord(parsed)) store = parsed;
22255
22255
  mtimeMs = getFileMtimeMs(storePath) ?? mtimeMs;
22256
22256
  } catch {}
@@ -48184,7 +48184,7 @@ const PROTOCOL_VERSION = 3;
48184
48184
 
48185
48185
  //#endregion
48186
48186
  //#region src/gateway/protocol/index.ts
48187
- const ajv = new AjvModule({
48187
+ const ajv = new AjvPkg({
48188
48188
  allErrors: true,
48189
48189
  strict: false,
48190
48190
  removeAdditional: false
@@ -68062,7 +68062,7 @@ function enqueueSystemEvent(text, options) {
68062
68062
  const MODEL_CACHE = /* @__PURE__ */ new Map();
68063
68063
  (async () => {
68064
68064
  try {
68065
- const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-CBWcyyqn.js").then((n) => n.t);
68065
+ const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-szlzYGsC.js").then((n) => n.t);
68066
68066
  await ensureSKYKOIModelsJson(loadConfig());
68067
68067
  const koiDir = resolveSKYKOIKoiDir();
68068
68068
  const models = discoverModels(discoverAuthStorage(koiDir), koiDir).getAll();
@@ -228310,7 +228310,7 @@ const BUFFERABLE_EVENT_SET = new Set([
228310
228310
  * making the data processing more efficient.
228311
228311
  */
228312
228312
  const makeEventBuffer = (logger) => {
228313
- const ev = new EventEmitter$1();
228313
+ const ev = new EventEmitter();
228314
228314
  const historyCache = /* @__PURE__ */ new Set();
228315
228315
  let data = makeBufferData();
228316
228316
  let isBuffering = false;
@@ -233880,7 +233880,7 @@ var BinaryInfo = class {
233880
233880
 
233881
233881
  //#endregion
233882
233882
  //#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
233883
- var AbstractSocketClient = class extends EventEmitter {
233883
+ var AbstractSocketClient = class extends EventEmitter$1 {
233884
233884
  constructor(url, config) {
233885
233885
  super();
233886
233886
  this.url = url;
@@ -34,7 +34,7 @@ import { access, mkdir, readFile, stat as stat$1, writeFile } from "fs/promises"
34
34
  import Stream, { Readable as Readable$1 } from "node:stream";
35
35
  import { finished } from "node:stream/promises";
36
36
  import * as NodeWs from "ws";
37
- import AjvModule from "ajv";
37
+ import AjvPkg from "ajv";
38
38
  import lockfile from "proper-lockfile";
39
39
  import { fileURLToPath as fileURLToPath$1 } from "url";
40
40
  import { TypeCompiler } from "@sinclair/typebox/compiler";
@@ -59699,7 +59699,7 @@ var require_dist$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
59699
59699
  //#endregion
59700
59700
  //#region node_modules/.pnpm/@mariozechner+pi-ai@0.52.8_ws@8.19.0_zod@4.3.6/node_modules/@mariozechner/pi-ai/dist/utils/validation.js
59701
59701
  var import_dist$1 = /* @__PURE__ */ __toESM(require_dist$1(), 1);
59702
- const Ajv$1 = AjvModule.default || AjvModule;
59702
+ const Ajv$1 = AjvPkg.default || AjvPkg;
59703
59703
  const addFormats = import_dist$1.default.default || import_dist$1.default;
59704
59704
  const isBrowserExtension = typeof globalThis !== "undefined" && globalThis.chrome?.runtime?.id !== void 0;
59705
59705
  let ajv = null;
@@ -174026,7 +174026,7 @@ var AuthStorage = class {
174026
174026
  /**
174027
174027
  * Model registry - manages built-in and custom models, provides API key resolution.
174028
174028
  */
174029
- const Ajv = AjvModule.default || AjvModule;
174029
+ const Ajv = AjvPkg.default || AjvPkg;
174030
174030
  const OpenRouterRoutingSchema = Type.Object({
174031
174031
  only: Type.Optional(Type.Array(Type.String())),
174032
174032
  order: Type.Optional(Type.Array(Type.String()))
@@ -5,10 +5,10 @@ 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-BupJpVpQ.js";
8
- import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-Ca2s5BiU.js";
9
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis--gJwSct5.js";
8
+ import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-CmbWsYQa.js";
9
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-B7sqTsBj.js";
10
10
  import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Bb6CC447.js";
11
- import { a as hasEmittedCliBanner, i as formatCliBannerLine, r as emitCliBanner } from "./tui-CGNbsIEk.js";
11
+ import { a as hasEmittedCliBanner, i as formatCliBannerLine, r as emitCliBanner } from "./tui-Dh1acgyz.js";
12
12
  import { n as resolveCliChannelOptions } from "./channel-options-CsA4EdIA.js";
13
13
  import { Command } from "commander";
14
14
 
@@ -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-BmAC2vgS.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-CCjIFm0m.js")).registerGatewayCli(program);
128
128
  }
129
129
  },
130
130
  {
@@ -194,7 +194,7 @@ const entries = [
194
194
  name: "tui",
195
195
  description: "Terminal UI",
196
196
  register: async (program) => {
197
- (await import("./tui-cli-lNY6QcSl.js")).registerTuiCli(program);
197
+ (await import("./tui-cli-DPVo_W8d.js")).registerTuiCli(program);
198
198
  }
199
199
  },
200
200
  {
@@ -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-CAHsx6rh.js")).registerUpdateCli(program);
285
+ (await import("./update-cli-ZejvJfKc.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-C25PewMH.js").then((n) => n.n)).registerCompletionCli(program);
292
+ (await import("./completion-cli-Q3xLcOzu.js").then((n) => n.n)).registerCompletionCli(program);
293
293
  }
294
294
  }
295
295
  ];
@@ -70,11 +70,11 @@ import "./deps-CX3Skz28.js";
70
70
  import "./tailscale-CDBmRrBH.js";
71
71
  import { t as ensureSKYKOICliOnPath } from "./path-env-DLiKMTfX.js";
72
72
  import { t as assertSupportedRuntime } from "./runtime-guard-Btp4Sks0.js";
73
- import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-Ca2s5BiU.js";
73
+ import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-CmbWsYQa.js";
74
74
  import "./logging-CSvbGeqF.js";
75
75
  import "./note-DdyFyHLV.js";
76
76
  import "./clack-prompter-CCgKKgnN.js";
77
- import "./onboarding-C8LHaxej.js";
77
+ import "./onboarding-CCpP66LJ.js";
78
78
  import "./onboard-skills-ChDFxeGS.js";
79
79
  import "./github-copilot-auth-CRvtl8wF.js";
80
80
  import "./onboard-channels-BiwGmgdU.js";
@@ -93,8 +93,8 @@ import "./systemd-CKUsCXqF.js";
93
93
  import "./diagnostics-CBJs_eaH.js";
94
94
  import "./node-service-CnU49y0d.js";
95
95
  import "./channels-status-issues-D_rjAibL.js";
96
- import "./doctor-completion-Brm5NWYN.js";
97
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis--gJwSct5.js";
96
+ import "./doctor-completion-CLMLUQj9.js";
97
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-B7sqTsBj.js";
98
98
  import "./gateway-rpc-BLmNrKaj.js";
99
99
  import "./help-format-BgbvAVIq.js";
100
100
  import "./admin-unlock--4SPdpdy.js";
@@ -109,11 +109,11 @@ import "./bonjour-discovery-DjvriZpZ.js";
109
109
  import "./ensure-local-gateway-CWMjpIBa.js";
110
110
  import "./login-BPXcLBkt.js";
111
111
  import "./auth-health-BQXG_lTS.js";
112
- import "./doctor-CVgixgc_.js";
113
- import "./completion-cli-C25PewMH.js";
112
+ import "./doctor-Ce1sxck6.js";
113
+ import "./completion-cli-Q3xLcOzu.js";
114
114
  import "./service-audit-D1ElVIM8.js";
115
115
  import "./hooks-status-CxWUG7p9.js";
116
- import { r as emitCliBanner } from "./tui-CGNbsIEk.js";
116
+ import { r as emitCliBanner } from "./tui-Dh1acgyz.js";
117
117
  import process$1 from "node:process";
118
118
  import { fileURLToPath } from "node:url";
119
119
  import fs from "node:fs";
@@ -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-B2dq4d8k.js").then((n) => n.t);
170
+ const { buildProgram } = await import("./program-DMa1pnc4.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--gJwSct5.js").then((n) => n.i);
203
+ const { registerSubCliByName } = await import("./register.subclis-B7sqTsBj.js").then((n) => n.i);
204
204
  await registerSubCliByName(program, primary);
205
205
  }
206
206
  if (!(!primary && hasHelpOrVersion(parseArgv))) {
@@ -2791,6 +2791,11 @@ function createEditorSubmitHandler(params) {
2791
2791
  const value = raw.trim();
2792
2792
  params.editor.setText("");
2793
2793
  if (!value) return;
2794
+ if (params.isOnboardingActive?.() && !raw.startsWith("!") && !value.startsWith("/")) {
2795
+ params.editor.addToHistory(value);
2796
+ params.onOnboardingHold?.(value);
2797
+ return;
2798
+ }
2794
2799
  if (raw.startsWith("!") && raw !== "!") {
2795
2800
  params.editor.addToHistory(raw);
2796
2801
  params.handleBangLine(raw);
@@ -3211,11 +3216,17 @@ async function runTui(opts) {
3211
3216
  closeOverlay
3212
3217
  });
3213
3218
  updateAutocompleteProvider();
3219
+ let onboardingBlocking = false;
3214
3220
  editor.onSubmit = createEditorSubmitHandler({
3215
3221
  editor,
3216
3222
  handleCommand,
3217
3223
  sendMessage,
3218
- handleBangLine: runLocalShellLine
3224
+ handleBangLine: runLocalShellLine,
3225
+ isOnboardingActive: () => onboardingBlocking,
3226
+ onOnboardingHold: () => {
3227
+ setConnectionStatus("Still getting to know you — one moment, then I'm all yours…", 4e3);
3228
+ tui.requestRender();
3229
+ }
3219
3230
  });
3220
3231
  editor.onEscape = () => {
3221
3232
  abortActive();
@@ -3269,8 +3280,15 @@ async function runTui(opts) {
3269
3280
  if (op.sessionKey?.toLowerCase() === onboardingWatchKey) {
3270
3281
  if (op.state === "final") {
3271
3282
  onboardingWatchKey = "";
3283
+ onboardingBlocking = false;
3272
3284
  markOnboardingDone();
3273
- } else if (op.state === "error" || op.state === "aborted") onboardingWatchKey = "";
3285
+ setConnectionStatus("Got to know you. I'm all yours.", 5e3);
3286
+ tui.requestRender();
3287
+ } else if (op.state === "error" || op.state === "aborted") {
3288
+ onboardingWatchKey = "";
3289
+ onboardingBlocking = false;
3290
+ tui.requestRender();
3291
+ }
3274
3292
  }
3275
3293
  }
3276
3294
  handleChatEvent(evt.payload);
@@ -3303,14 +3321,22 @@ async function runTui(opts) {
3303
3321
  autoMessageSent = true;
3304
3322
  await sendMessage(autoMessage);
3305
3323
  } else if (!autoMessage && !onboardingCurrent()) {
3306
- const updating = onboardedVersion() !== null;
3307
3324
  const onboardingKey = buildKoiMainSessionKey({
3308
3325
  koiId: currentKoiId,
3309
3326
  mainKey: "onboarding"
3310
3327
  }).toLowerCase();
3311
3328
  onboardingWatchKey = onboardingKey;
3312
- setConnectionStatus(updating ? "Applying the latest updates…" : "Onboarding: learning about you…", 1e4);
3329
+ onboardingBlocking = true;
3330
+ setConnectionStatus("Getting to know you — one moment…", 360 * 1e3);
3313
3331
  tui.requestRender();
3332
+ setTimeout(() => {
3333
+ if (onboardingWatchKey === onboardingKey) {
3334
+ onboardingWatchKey = "";
3335
+ onboardingBlocking = false;
3336
+ setConnectionStatus("Ready when you are.", 4e3);
3337
+ tui.requestRender();
3338
+ }
3339
+ }, 360 * 1e3).unref?.();
3314
3340
  client.sendChat({
3315
3341
  sessionKey: onboardingKey,
3316
3342
  message: ONBOARDING_KICKOFF,
@@ -3318,6 +3344,8 @@ async function runTui(opts) {
3318
3344
  deliver: false
3319
3345
  }).catch(() => {
3320
3346
  onboardingWatchKey = "";
3347
+ onboardingBlocking = false;
3348
+ tui.requestRender();
3321
3349
  });
3322
3350
  }
3323
3351
  updateFooter();
@@ -41,7 +41,7 @@ import "./client-BM6xyPUD.js";
41
41
  import "./call-JFo1_L0m.js";
42
42
  import { t as formatDocsLink } from "./links-BupJpVpQ.js";
43
43
  import { t as parseTimeoutMs } from "./parse-timeout-B-Mg8iIP.js";
44
- import { t as runTui } from "./tui-CGNbsIEk.js";
44
+ import { t as runTui } from "./tui-Dh1acgyz.js";
45
45
 
46
46
  //#region src/cli/tui-cli.ts
47
47
  function registerTuiCli(program) {
@@ -86,15 +86,15 @@ import "./service-CgbWVYSz.js";
86
86
  import "./systemd-CKUsCXqF.js";
87
87
  import "./diagnostics-CBJs_eaH.js";
88
88
  import "./channels-status-issues-D_rjAibL.js";
89
- import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-Brm5NWYN.js";
90
- import "./register.subclis--gJwSct5.js";
89
+ import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-CLMLUQj9.js";
90
+ import "./register.subclis-B7sqTsBj.js";
91
91
  import { t as formatHelpExamples } from "./help-format-BgbvAVIq.js";
92
92
  import "./control-ui-assets-C6cSlkkc.js";
93
93
  import "./daemon-runtime-BTR2GDIQ.js";
94
94
  import "./systemd-linger-Cu8buxAR.js";
95
95
  import "./auth-health-BQXG_lTS.js";
96
- import { t as doctorCommand } from "./doctor-CVgixgc_.js";
97
- import { r as installCompletion } from "./completion-cli-C25PewMH.js";
96
+ import { t as doctorCommand } from "./doctor-Ce1sxck6.js";
97
+ import { r as installCompletion } from "./completion-cli-Q3xLcOzu.js";
98
98
  import "./service-audit-D1ElVIM8.js";
99
99
  import "./shared-CsHmFsvZ.js";
100
100
  import { r as runDaemonRestart } from "./daemon-cli-Dg-A3XTa.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skykoi",
3
- "version": "2026.3.325",
3
+ "version": "2026.3.326",
4
4
  "description": "SkyKoi — Koi runtime. Multi-channel gateway CLI with RPC Koi.",
5
5
  "keywords": [
6
6
  "cli",