skykoi 2026.3.350 → 2026.3.351

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.350",
2
+ "version": "2026.3.351",
3
3
  "commit": "8b715c81e3dc58989509e5f1c5b859eb685aebfc",
4
- "builtAt": "2026-06-25T03:12:20.153Z"
4
+ "builtAt": "2026-06-25T03:24:55.309Z"
5
5
  }
@@ -1 +1 @@
1
- 3d0ee988c6c56118b5c6740746e19ad8542adf64e1631a560554bc31ff742399
1
+ a9fe49cfd8dfc9147288631b741084b9169b440ed85a6ee61d2ca8d977542c3e
@@ -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-B0cm-56w.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-ay6khM7H.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-y1KKH5pe.js";
27
27
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-1Q_KlUsW.js";
28
28
  import { t as WizardCancelledError } from "./prompts-yNyvMdpp.js";
29
29
  import { t as createClackPrompter } from "./clack-prompter-B9o3eQeW.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-BTBgHhMa.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-BXdX1k4B.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-09WIHl0u.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-CWbKIBa1.js";
33
33
  import { n as setupChannels } from "./onboard-channels-BgnMbLs5.js";
@@ -35,7 +35,7 @@ import { i as healthCommand } from "./health-format-B3L175Fr.js";
35
35
  import { t as renderTable } from "./table-B3RHVa0g.js";
36
36
  import { t as resolveGatewayService } from "./service-BGkVTESM.js";
37
37
  import { r as isSystemdUserServiceAvailable } from "./systemd-BzTSelz8.js";
38
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-B0cm-56w.js";
38
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-ay6khM7H.js";
39
39
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-CIxOsvvC.js";
40
40
  import { t as formatHelpExamples } from "./help-format-BVBm9rU4.js";
41
41
  import { t as adminUnlockCommand } from "./admin-unlock-Dr4FqRVP.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-r19-i0S0.js";
47
47
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-Be49_NdF.js";
48
48
  import { t as loginCommand } from "./login-DKn2AlFl.js";
49
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-DmunucU7.js";
49
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-COZe-CAe.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-Clg32oN-.js").then((n) => n.n);
3108
+ const { runTui } = await import("./tui-kWXwC28C.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-BzTSelz8.js";
35
35
  import { t as readLastGatewayErrorLine } from "./diagnostics-CFV2YxpG.js";
36
36
  import { t as collectChannelStatusIssues } from "./channels-status-issues-BLygTpUh.js";
37
- import { n as doctorShellCompletion } from "./doctor-completion-D3mZisyH.js";
37
+ import { n as doctorShellCompletion } from "./doctor-completion-BQv7O3r3.js";
38
38
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-B0N-n2rD.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-r19-i0S0.js";
40
40
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-Be49_NdF.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-DRoVRuAi.js";
5
5
  import { c as compareSemverStrings, s as checkUpdateStatus } from "./update-runner-odTAl-uh.js";
6
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-avf9qpox.js";
6
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DdDhwhpJ.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-CnUMNrtX.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
250
+ import("./run-main-BGaVVhxt.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
  });
@@ -87,7 +87,7 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-y1KKH5pe.js";
87
87
  import "./logging-1Q_KlUsW.js";
88
88
  import "./note-DRoVRuAi.js";
89
89
  import { t as WizardCancelledError } from "./prompts-yNyvMdpp.js";
90
- 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-BTBgHhMa.js";
90
+ 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-BXdX1k4B.js";
91
91
  import { n as installSkill } from "./onboard-skills-09WIHl0u.js";
92
92
  import "./github-copilot-auth-CWbKIBa1.js";
93
93
  import "./onboard-channels-BgnMbLs5.js";
@@ -106,18 +106,18 @@ import { p as resolveGatewayStateDir } from "./systemd-BzTSelz8.js";
106
106
  import "./diagnostics-CFV2YxpG.js";
107
107
  import "./node-service-BzD7Bqwc.js";
108
108
  import "./channels-status-issues-BLygTpUh.js";
109
- import "./doctor-completion-D3mZisyH.js";
110
- import "./register.subclis-B0cm-56w.js";
109
+ import "./doctor-completion-BQv7O3r3.js";
110
+ import "./register.subclis-ay6khM7H.js";
111
111
  import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-Bxvx8Z_2.js";
112
112
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B0N-n2rD.js";
113
113
  import "./daemon-runtime-r19-i0S0.js";
114
114
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-Bb9eE_C1.js";
115
115
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-Du_kGDHQ.js";
116
116
  import "./ensure-local-gateway-VbJtdpui.js";
117
- import "./completion-cli-avf9qpox.js";
117
+ import "./completion-cli-DdDhwhpJ.js";
118
118
  import "./service-audit-C3mNLBya.js";
119
119
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-B6CvIDFx.js";
120
- import "./tui-Clg32oN-.js";
120
+ import "./tui-kWXwC28C.js";
121
121
  import { t as buildChannelAccountSnapshot } from "./status-JjSTFqPa.js";
122
122
  import "./shared-BcQeo3Um.js";
123
123
  import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-QcJkdT-C.js";
package/dist/index.js CHANGED
@@ -74,11 +74,11 @@ import { t as isMainModule } from "./is-main-Cs8_TnVO.js";
74
74
  import { t as ensureSKYKOICliOnPath } from "./path-env-gxBbRHVZ.js";
75
75
  import { t as assertSupportedRuntime } from "./runtime-guard-C80qkv4W.js";
76
76
  import "./ports-YIGvuUFy.js";
77
- import "./config-guard-D0QPyYC-.js";
77
+ import "./config-guard-BvO6oqZo.js";
78
78
  import "./logging-1Q_KlUsW.js";
79
79
  import "./note-DRoVRuAi.js";
80
80
  import "./clack-prompter-B9o3eQeW.js";
81
- import "./onboarding-BTBgHhMa.js";
81
+ import "./onboarding-BXdX1k4B.js";
82
82
  import "./onboard-skills-09WIHl0u.js";
83
83
  import "./github-copilot-auth-CWbKIBa1.js";
84
84
  import "./onboard-channels-BgnMbLs5.js";
@@ -97,8 +97,8 @@ import "./systemd-BzTSelz8.js";
97
97
  import "./diagnostics-CFV2YxpG.js";
98
98
  import "./node-service-BzD7Bqwc.js";
99
99
  import "./channels-status-issues-BLygTpUh.js";
100
- import "./doctor-completion-D3mZisyH.js";
101
- import "./register.subclis-B0cm-56w.js";
100
+ import "./doctor-completion-BQv7O3r3.js";
101
+ import "./register.subclis-ay6khM7H.js";
102
102
  import "./gateway-rpc-CIxOsvvC.js";
103
103
  import "./help-format-BVBm9rU4.js";
104
104
  import "./admin-unlock-Dr4FqRVP.js";
@@ -114,13 +114,13 @@ import "./ensure-local-gateway-VbJtdpui.js";
114
114
  import "./login-DKn2AlFl.js";
115
115
  import "./channel-auth-Cq_cTCod.js";
116
116
  import "./auth-health-DX1wRWrd.js";
117
- import "./doctor-DmunucU7.js";
118
- import "./completion-cli-avf9qpox.js";
117
+ import "./doctor-COZe-CAe.js";
118
+ import "./completion-cli-DdDhwhpJ.js";
119
119
  import "./service-audit-C3mNLBya.js";
120
120
  import "./hooks-status-B6CvIDFx.js";
121
- import "./tui-Clg32oN-.js";
121
+ import "./tui-kWXwC28C.js";
122
122
  import "./channel-options-B-9AW2LU.js";
123
- import { n as buildProgram } from "./program-9bJ3yaN1.js";
123
+ import { n as buildProgram } from "./program-hK7cA5NJ.js";
124
124
  import process from "node:process";
125
125
  import { fileURLToPath } from "node:url";
126
126
 
@@ -37,12 +37,12 @@ import { t as readLastGatewayErrorLine } from "./diagnostics-CFV2YxpG.js";
37
37
  import { t as resolveNodeService } from "./node-service-BzD7Bqwc.js";
38
38
  import { t as collectChannelStatusIssues } from "./channels-status-issues-BLygTpUh.js";
39
39
  import { i as redactSecrets, n as formatDuration$1, r as formatGatewayAuthUsed, t as formatAge$1 } from "./format-IoT-eUxs.js";
40
- import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, o as getUpdateCheckResult, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-D3mZisyH.js";
40
+ import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, o as getUpdateCheckResult, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-BQv7O3r3.js";
41
41
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B0N-n2rD.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-r19-i0S0.js";
43
- import { r as installCompletion } from "./completion-cli-avf9qpox.js";
43
+ import { r as installCompletion } from "./completion-cli-DdDhwhpJ.js";
44
44
  import { t as buildWorkspaceHookStatus } from "./hooks-status-B6CvIDFx.js";
45
- import { t as runTui } from "./tui-Clg32oN-.js";
45
+ import { t as runTui } from "./tui-kWXwC28C.js";
46
46
  import fs from "node:fs";
47
47
  import path from "node:path";
48
48
  import os from "node:os";
@@ -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";
@@ -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 {
@@ -19031,7 +19031,7 @@ var IncludeProcessor = class IncludeProcessor {
19031
19031
  };
19032
19032
  const defaultResolver = {
19033
19033
  readFile: (p) => fs.readFileSync(p, "utf-8"),
19034
- parseJson: (raw) => json5.parse(raw)
19034
+ parseJson: (raw) => JSON5.parse(raw)
19035
19035
  };
19036
19036
  /**
19037
19037
  * Resolves all $include directives in a parsed config object.
@@ -21728,18 +21728,18 @@ function resolveConfigPathForDeps(deps) {
21728
21728
  function normalizeDeps(overrides = {}) {
21729
21729
  return {
21730
21730
  fs: overrides.fs ?? fs,
21731
- json5: overrides.json5 ?? json5,
21731
+ json5: overrides.json5 ?? JSON5,
21732
21732
  env: overrides.env ?? process.env,
21733
21733
  homedir: overrides.homedir ?? os.homedir,
21734
21734
  configPath: overrides.configPath ?? "",
21735
21735
  logger: overrides.logger ?? console
21736
21736
  };
21737
21737
  }
21738
- function parseConfigJson5(raw, json5$1 = json5) {
21738
+ function parseConfigJson5(raw, json5 = JSON5) {
21739
21739
  try {
21740
21740
  return {
21741
21741
  ok: true,
21742
- parsed: json5$1.parse(raw)
21742
+ parsed: json5.parse(raw)
21743
21743
  };
21744
21744
  } catch (err) {
21745
21745
  return {
@@ -22253,7 +22253,7 @@ function loadSessionStore(storePath, opts = {}) {
22253
22253
  let mtimeMs = getFileMtimeMs(storePath);
22254
22254
  try {
22255
22255
  const raw = fs.readFileSync(storePath, "utf-8");
22256
- const parsed = json5.parse(raw);
22256
+ const parsed = JSON5.parse(raw);
22257
22257
  if (isSessionStoreRecord(parsed)) store = parsed;
22258
22258
  mtimeMs = getFileMtimeMs(storePath) ?? mtimeMs;
22259
22259
  } catch {}
@@ -228308,7 +228308,7 @@ const BUFFERABLE_EVENT_SET = new Set([
228308
228308
  * making the data processing more efficient.
228309
228309
  */
228310
228310
  const makeEventBuffer = (logger) => {
228311
- const ev = new EventEmitter$1();
228311
+ const ev = new EventEmitter();
228312
228312
  const historyCache = /* @__PURE__ */ new Set();
228313
228313
  let data = makeBufferData();
228314
228314
  let isBuffering = false;
@@ -233878,7 +233878,7 @@ var BinaryInfo = class {
233878
233878
 
233879
233879
  //#endregion
233880
233880
  //#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
233881
- var AbstractSocketClient = class extends EventEmitter {
233881
+ var AbstractSocketClient = class extends EventEmitter$1 {
233882
233882
  constructor(url, config) {
233883
233883
  super();
233884
233884
  this.url = url;
@@ -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-B0HTM-CT.js";
8
- import { i as registerProgramCommands, n as PLUGIN_CLI_COMMANDS, t as ensureConfigReady } from "./config-guard-D0QPyYC-.js";
9
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-B0cm-56w.js";
8
+ import { i as registerProgramCommands, n as PLUGIN_CLI_COMMANDS, t as ensureConfigReady } from "./config-guard-BvO6oqZo.js";
9
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-ay6khM7H.js";
10
10
  import { t as ensurePluginRegistryLoaded } from "./plugin-registry-x0S9fXyA.js";
11
- import { a as hasEmittedCliBanner, i as formatCliBannerLine, r as emitCliBanner } from "./tui-Clg32oN-.js";
11
+ import { a as hasEmittedCliBanner, i as formatCliBannerLine, r as emitCliBanner } from "./tui-kWXwC28C.js";
12
12
  import { n as resolveCliChannelOptions } from "./channel-options-B-9AW2LU.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-NGPMG1wt.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-DE7TrLkw.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-DTcDudxp.js")).registerTuiCli(program);
197
+ (await import("./tui-cli-DTSW8Czf.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-CZv0dWWO.js")).registerUpdateCli(program);
285
+ (await import("./update-cli-B24YOfcz.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-avf9qpox.js").then((n) => n.n)).registerCompletionCli(program);
292
+ (await import("./completion-cli-DdDhwhpJ.js").then((n) => n.n)).registerCompletionCli(program);
293
293
  }
294
294
  }
295
295
  ];
@@ -71,11 +71,11 @@ import "./deps-DDm9zxmu.js";
71
71
  import "./tailscale-BO36kRfh.js";
72
72
  import { t as ensureSKYKOICliOnPath } from "./path-env-gxBbRHVZ.js";
73
73
  import { t as assertSupportedRuntime } from "./runtime-guard-C80qkv4W.js";
74
- import { n as PLUGIN_CLI_COMMANDS, r as findRoutedCommand, t as ensureConfigReady } from "./config-guard-D0QPyYC-.js";
74
+ import { n as PLUGIN_CLI_COMMANDS, r as findRoutedCommand, t as ensureConfigReady } from "./config-guard-BvO6oqZo.js";
75
75
  import "./logging-1Q_KlUsW.js";
76
76
  import "./note-DRoVRuAi.js";
77
77
  import "./clack-prompter-B9o3eQeW.js";
78
- import "./onboarding-BTBgHhMa.js";
78
+ import "./onboarding-BXdX1k4B.js";
79
79
  import "./onboard-skills-09WIHl0u.js";
80
80
  import "./github-copilot-auth-CWbKIBa1.js";
81
81
  import "./onboard-channels-BgnMbLs5.js";
@@ -94,8 +94,8 @@ import "./systemd-BzTSelz8.js";
94
94
  import "./diagnostics-CFV2YxpG.js";
95
95
  import "./node-service-BzD7Bqwc.js";
96
96
  import "./channels-status-issues-BLygTpUh.js";
97
- import "./doctor-completion-D3mZisyH.js";
98
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-B0cm-56w.js";
97
+ import "./doctor-completion-BQv7O3r3.js";
98
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-ay6khM7H.js";
99
99
  import "./gateway-rpc-CIxOsvvC.js";
100
100
  import "./help-format-BVBm9rU4.js";
101
101
  import "./admin-unlock-Dr4FqRVP.js";
@@ -111,11 +111,11 @@ import "./ensure-local-gateway-VbJtdpui.js";
111
111
  import "./login-DKn2AlFl.js";
112
112
  import "./channel-auth-Cq_cTCod.js";
113
113
  import "./auth-health-DX1wRWrd.js";
114
- import "./doctor-DmunucU7.js";
115
- import "./completion-cli-avf9qpox.js";
114
+ import "./doctor-COZe-CAe.js";
115
+ import "./completion-cli-DdDhwhpJ.js";
116
116
  import "./service-audit-C3mNLBya.js";
117
117
  import "./hooks-status-B6CvIDFx.js";
118
- import { r as emitCliBanner } from "./tui-Clg32oN-.js";
118
+ import { r as emitCliBanner } from "./tui-kWXwC28C.js";
119
119
  import process$1 from "node:process";
120
120
  import { fileURLToPath } from "node:url";
121
121
  import fs from "node:fs";
@@ -169,7 +169,7 @@ async function runCli(argv = process$1.argv) {
169
169
  assertSupportedRuntime();
170
170
  if (await tryRouteCli(normalizedArgv)) return;
171
171
  enableConsoleCapture();
172
- const { buildProgram } = await import("./program-9bJ3yaN1.js").then((n) => n.t);
172
+ const { buildProgram } = await import("./program-hK7cA5NJ.js").then((n) => n.t);
173
173
  const program = buildProgram();
174
174
  installUnhandledRejectionHandler();
175
175
  process$1.on("uncaughtException", (error) => {
@@ -202,7 +202,7 @@ async function runCli(argv = process$1.argv) {
202
202
  }
203
203
  const primary = getPrimaryCommand(parseArgv);
204
204
  if (primary) {
205
- const { registerSubCliByName } = await import("./register.subclis-B0cm-56w.js").then((n) => n.i);
205
+ const { registerSubCliByName } = await import("./register.subclis-ay6khM7H.js").then((n) => n.i);
206
206
  await registerSubCliByName(program, primary);
207
207
  }
208
208
  if (!!primary && PLUGIN_CLI_COMMANDS.has(primary)) {
@@ -48,7 +48,7 @@ import "./systemd-BzTSelz8.js";
48
48
  import "./diagnostics-CFV2YxpG.js";
49
49
  import "./daemon-runtime-r19-i0S0.js";
50
50
  import "./ensure-local-gateway-VbJtdpui.js";
51
- import { t as runTui } from "./tui-Clg32oN-.js";
51
+ import { t as runTui } from "./tui-kWXwC28C.js";
52
52
 
53
53
  //#region src/cli/tui-cli.ts
54
54
  function registerTuiCli(program) {
@@ -1877,7 +1877,16 @@ function createCommandHandlers(context) {
1877
1877
  verboseLevel: "full"
1878
1878
  }));
1879
1879
  } catch {}
1880
- chatLog.addSystem("dev mode ON — showing: tool calls + args/results, thinking, raw events. Use /dev prompt to dump system prompt.");
1880
+ chatLog.addSystem("dev mode ON — showing: system prompt, tool calls + args/results, thinking, raw events");
1881
+ try {
1882
+ const promptResult = await client.request("debug.prompt", {});
1883
+ if (promptResult?.systemPrompt) {
1884
+ const p = promptResult.systemPrompt;
1885
+ chatLog.addSystem(`── system prompt (${p.length} chars) ──\n${p}`);
1886
+ } else chatLog.addSystem("[dev] system prompt not captured yet — send a message first, then /dev prompt");
1887
+ } catch {
1888
+ chatLog.addSystem("[dev] couldn't fetch system prompt — send a message first, then /dev prompt");
1889
+ }
1881
1890
  } else {
1882
1891
  try {
1883
1892
  applySessionInfoFromPatch(await client.patchSession({
@@ -2101,7 +2110,20 @@ function createEventHandlers(context) {
2101
2110
  const wasLocalRun = Boolean(isLocalRunId?.(evt.runId));
2102
2111
  if (wasLocalRun) forgetLocalRunId?.(evt.runId);
2103
2112
  else loadHistory?.();
2104
- const stopReason = evt.message && typeof evt.message === "object" && !Array.isArray(evt.message) ? typeof evt.message.stopReason === "string" ? evt.message.stopReason : "" : "";
2113
+ const msgObj = evt.message && typeof evt.message === "object" && !Array.isArray(evt.message) ? evt.message : {};
2114
+ const stopReason = typeof msgObj.stopReason === "string" ? msgObj.stopReason : "";
2115
+ if (state.devMode) {
2116
+ const usage = msgObj.usage ?? msgObj.tokenUsage ?? null;
2117
+ const si = state.sessionInfo;
2118
+ const parts = [
2119
+ `stop: ${stopReason || "end_turn"}`,
2120
+ si.inputTokens != null ? `input: ${si.inputTokens}` : null,
2121
+ si.outputTokens != null ? `output: ${si.outputTokens}` : null,
2122
+ si.totalTokens != null && si.contextTokens != null ? `context: ${si.totalTokens}/${si.contextTokens} (${Math.round(si.totalTokens / si.contextTokens * 100)}%)` : null,
2123
+ usage ? `raw usage: ${JSON.stringify(usage)}` : null
2124
+ ].filter(Boolean);
2125
+ chatLog.addSystem(`[dev] ── response ──\n ${parts.join("\n ")}`);
2126
+ }
2105
2127
  const finalText = stripSilentControlTokens(streamAssembler.finalize(evt.runId, evt.message, state.showThinking));
2106
2128
  if (finalText) chatLog.finalizeAssistant(finalText, evt.runId);
2107
2129
  if (wasLocalRun) {
@@ -2173,7 +2195,10 @@ function createEventHandlers(context) {
2173
2195
  if (evt.stream === "lifecycle") {
2174
2196
  if (state.devMode) {
2175
2197
  const phase = typeof evt.data?.phase === "string" ? evt.data.phase : "";
2176
- chatLog.addSystem(`[dev] lifecycle: ${phase} (run=${evt.runId.slice(0, 8)})`);
2198
+ const model = state.sessionInfo.model ?? "?";
2199
+ const think = state.sessionInfo.thinkingLevel ?? "off";
2200
+ if (phase === "start") chatLog.addSystem(`[dev] ── run ${evt.runId.slice(0, 8)} ──\n model: ${model}\n thinking: ${think}\n session: ${state.currentSessionKey}`);
2201
+ else chatLog.addSystem(`[dev] lifecycle: ${phase} (run=${evt.runId.slice(0, 8)})`);
2177
2202
  }
2178
2203
  if (!isActiveRun) return;
2179
2204
  const phase = typeof evt.data?.phase === "string" ? evt.data.phase : "";
@@ -87,15 +87,15 @@ import "./service-BGkVTESM.js";
87
87
  import "./systemd-BzTSelz8.js";
88
88
  import "./diagnostics-CFV2YxpG.js";
89
89
  import "./channels-status-issues-BLygTpUh.js";
90
- import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-D3mZisyH.js";
91
- import "./register.subclis-B0cm-56w.js";
90
+ import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-BQv7O3r3.js";
91
+ import "./register.subclis-ay6khM7H.js";
92
92
  import { t as formatHelpExamples } from "./help-format-BVBm9rU4.js";
93
93
  import "./control-ui-assets-B0N-n2rD.js";
94
94
  import "./daemon-runtime-r19-i0S0.js";
95
95
  import "./systemd-linger-Be49_NdF.js";
96
96
  import "./auth-health-DX1wRWrd.js";
97
- import { t as doctorCommand } from "./doctor-DmunucU7.js";
98
- import { r as installCompletion } from "./completion-cli-avf9qpox.js";
97
+ import { t as doctorCommand } from "./doctor-COZe-CAe.js";
98
+ import { r as installCompletion } from "./completion-cli-DdDhwhpJ.js";
99
99
  import "./service-audit-C3mNLBya.js";
100
100
  import "./shared-BcQeo3Um.js";
101
101
  import { r as runDaemonRestart } from "./daemon-cli-QcJkdT-C.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skykoi",
3
- "version": "2026.3.350",
3
+ "version": "2026.3.351",
4
4
  "description": "SkyKoi — Koi runtime. Multi-channel gateway CLI with RPC Koi.",
5
5
  "keywords": [
6
6
  "cli",