skykoi 2026.3.391 → 2026.3.392

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.
Files changed (56) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/dist/{completion-cli-Daqk_SMv.js → completion-cli-CLfchmty.js} +1 -1
  4. package/dist/{config-guard-B9uTugI8.js → config-guard-_bkiEZ2R.js} +4 -4
  5. package/dist/{doctor-B4jYOmV8.js → doctor-CuvVztWn.js} +1 -1
  6. package/dist/{doctor-completion-BFKSD7Wa.js → doctor-completion-BeN_f3Pz.js} +1 -1
  7. package/dist/entry.js +1 -1
  8. package/dist/{gateway-cli-DnDlw3rn.js → gateway-cli-C-KfNrgk.js} +5 -5
  9. package/dist/index.js +8 -8
  10. package/dist/{onboarding-D_Fft8Qj.js → onboarding-BXK39FcC.js} +3 -3
  11. package/dist/plugin-sdk/index.js +8 -8
  12. package/dist/plugin-sdk/{pi-model-discovery-ClImJtLC.js → pi-model-discovery-lynj0LAO.js} +3 -3
  13. package/dist/{program-DqdcT8MN.js → program-CrcmPJE3.js} +3 -3
  14. package/dist/{register.subclis-CbN6zTM-.js → register.subclis-ceKpisEU.js} +4 -4
  15. package/dist/{run-main-CRQnDGos.js → run-main-DlvDKVh2.js} +9 -9
  16. package/dist/{tui-BzTkL_-S.js → tui-KKclAOTp.js} +121 -16
  17. package/dist/{tui-cli-B0BEmt1q.js → tui-cli-CEXiHDyq.js} +1 -1
  18. package/dist/{update-cli-CJMUfl50.js → update-cli-CRoCxvoK.js} +4 -4
  19. package/extensions/bluebubbles/package.json +1 -1
  20. package/extensions/copilot-proxy/package.json +1 -1
  21. package/extensions/diagnostics-otel/package.json +1 -1
  22. package/extensions/discord/package.json +1 -1
  23. package/extensions/feishu/package.json +1 -1
  24. package/extensions/google-antigravity-auth/package.json +1 -1
  25. package/extensions/google-gemini-cli-auth/package.json +1 -1
  26. package/extensions/googlechat/package.json +1 -1
  27. package/extensions/imessage/package.json +1 -1
  28. package/extensions/line/package.json +1 -1
  29. package/extensions/llm-task/package.json +1 -1
  30. package/extensions/lobster/package.json +1 -1
  31. package/extensions/matrix/CHANGELOG.md +5 -0
  32. package/extensions/matrix/package.json +1 -1
  33. package/extensions/mattermost/package.json +1 -1
  34. package/extensions/memory-core/package.json +1 -1
  35. package/extensions/memory-lancedb/package.json +1 -1
  36. package/extensions/minimax-portal-auth/package.json +1 -1
  37. package/extensions/msteams/CHANGELOG.md +5 -0
  38. package/extensions/msteams/package.json +1 -1
  39. package/extensions/nextcloud-talk/package.json +1 -1
  40. package/extensions/nostr/CHANGELOG.md +5 -0
  41. package/extensions/nostr/package.json +1 -1
  42. package/extensions/open-prose/package.json +1 -1
  43. package/extensions/signal/package.json +1 -1
  44. package/extensions/slack/package.json +1 -1
  45. package/extensions/telegram/package.json +1 -1
  46. package/extensions/tlon/package.json +1 -1
  47. package/extensions/twitch/CHANGELOG.md +5 -0
  48. package/extensions/twitch/package.json +1 -1
  49. package/extensions/voice-call/CHANGELOG.md +5 -0
  50. package/extensions/voice-call/package.json +1 -1
  51. package/extensions/whatsapp/package.json +1 -1
  52. package/extensions/zalo/CHANGELOG.md +5 -0
  53. package/extensions/zalo/package.json +1 -1
  54. package/extensions/zalouser/CHANGELOG.md +5 -0
  55. package/extensions/zalouser/package.json +1 -1
  56. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.3.391",
3
- "commit": "8d25345cadeabd18cede0cc5dc8d198f5a352d2a",
4
- "builtAt": "2026-07-04T17:19:18.512Z"
2
+ "version": "2026.3.392",
3
+ "commit": "8215efcf17f95f4006d2736bf7958b997c116763",
4
+ "builtAt": "2026-07-04T17:38:41.870Z"
5
5
  }
@@ -1 +1 @@
1
- d830a6e1c3667c1887c7e45f49d6e2293e38a2474baad8c2e40baaec6dd4b1af
1
+ ebc1812d77e97e7eb53f65a73192357669c5aedcf8c271d1d9ab708f9c765e36
@@ -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-CbN6zTM-.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-ceKpisEU.js";
4
4
  import path from "node:path";
5
5
  import os from "node:os";
6
6
  import fs from "node:fs/promises";
@@ -28,7 +28,7 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-C0u-oaDR.js";
28
28
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-CE47aZcO.js";
29
29
  import { t as WizardCancelledError } from "./prompts-D59uQQdA.js";
30
30
  import { t as createClackPrompter } from "./clack-prompter-BbdTlNx8.js";
31
- 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-D_Fft8Qj.js";
31
+ 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-BXK39FcC.js";
32
32
  import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-B-VRqQPq.js";
33
33
  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-D7TUwRK1.js";
34
34
  import { n as setupChannels } from "./onboard-channels-CAGl4wwR.js";
@@ -36,7 +36,7 @@ import { i as healthCommand } from "./health-format-C5y7C1Bl.js";
36
36
  import { t as renderTable } from "./table-BFIT6RB5.js";
37
37
  import { t as resolveGatewayService } from "./service-CW9nUfWU.js";
38
38
  import { r as isSystemdUserServiceAvailable } from "./systemd-fjt-WYE7.js";
39
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-CbN6zTM-.js";
39
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-ceKpisEU.js";
40
40
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DYI5hnM6.js";
41
41
  import { t as formatHelpExamples } from "./help-format-VHofKIT0.js";
42
42
  import { t as adminUnlockCommand } from "./admin-unlock-CTCNN-zM.js";
@@ -47,7 +47,7 @@ import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCo
47
47
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-jkMiwykI.js";
48
48
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-T7_vGBN4.js";
49
49
  import { t as loginCommand } from "./login-Du7RjDym.js";
50
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-B4jYOmV8.js";
50
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-CuvVztWn.js";
51
51
  import { fileURLToPath } from "node:url";
52
52
  import fs from "node:fs";
53
53
  import path from "node:path";
@@ -3106,7 +3106,7 @@ function registerLoginCommand(program) {
3106
3106
  console.log(theme.muted(` user=${result.userId} org=${result.orgId}`));
3107
3107
  }
3108
3108
  if (opts.chat !== false && result.gatewayUrl && process.stdin.isTTY && process.stdout.isTTY) {
3109
- const { runTui } = await import("./tui-BzTkL_-S.js").then((n) => n.n);
3109
+ const { runTui } = await import("./tui-KKclAOTp.js").then((n) => n.n);
3110
3110
  console.log(theme.muted("\n Opening your koi chat…\n"));
3111
3111
  await runTui({
3112
3112
  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-fjt-WYE7.js";
35
35
  import { t as readLastGatewayErrorLine } from "./diagnostics-DPRvn_ky.js";
36
36
  import { t as collectChannelStatusIssues } from "./channels-status-issues-D92ZMiSY.js";
37
- import { n as doctorShellCompletion } from "./doctor-completion-BFKSD7Wa.js";
37
+ import { n as doctorShellCompletion } from "./doctor-completion-BeN_f3Pz.js";
38
38
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-Dcc_8tht.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-jkMiwykI.js";
40
40
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-T7_vGBN4.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-BDX6ZDm1.js";
5
5
  import { c as compareSemverStrings, s as checkUpdateStatus } from "./update-runner-BTHuBI1s.js";
6
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Daqk_SMv.js";
6
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-CLfchmty.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-CRQnDGos.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
250
+ import("./run-main-DlvDKVh2.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
  });
@@ -94,7 +94,7 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-C0u-oaDR.js";
94
94
  import "./logging-CE47aZcO.js";
95
95
  import "./note-BDX6ZDm1.js";
96
96
  import { t as WizardCancelledError } from "./prompts-D59uQQdA.js";
97
- 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-D_Fft8Qj.js";
97
+ 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-BXK39FcC.js";
98
98
  import { n as installSkill } from "./onboard-skills-B-VRqQPq.js";
99
99
  import "./github-copilot-auth-D7TUwRK1.js";
100
100
  import "./onboard-channels-CAGl4wwR.js";
@@ -113,18 +113,18 @@ import { p as resolveGatewayStateDir } from "./systemd-fjt-WYE7.js";
113
113
  import "./diagnostics-DPRvn_ky.js";
114
114
  import "./node-service--cl-zK26.js";
115
115
  import "./channels-status-issues-D92ZMiSY.js";
116
- import "./doctor-completion-BFKSD7Wa.js";
117
- import "./register.subclis-CbN6zTM-.js";
116
+ import "./doctor-completion-BeN_f3Pz.js";
117
+ import "./register.subclis-ceKpisEU.js";
118
118
  import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-DVVrZtbA.js";
119
119
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Dcc_8tht.js";
120
120
  import "./daemon-runtime-jkMiwykI.js";
121
121
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-DmDtfScg.js";
122
122
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-BcGs4w0m.js";
123
123
  import "./ensure-local-gateway-B2qYYNsm.js";
124
- import "./completion-cli-Daqk_SMv.js";
124
+ import "./completion-cli-CLfchmty.js";
125
125
  import "./service-audit-B_swanYW.js";
126
126
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-CJBhXrQP.js";
127
- import "./tui-BzTkL_-S.js";
127
+ import "./tui-KKclAOTp.js";
128
128
  import { t as buildChannelAccountSnapshot } from "./status-C8ntwWk9.js";
129
129
  import "./shared-CsJmoyjd.js";
130
130
  import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-B5aK-HPj.js";
package/dist/index.js CHANGED
@@ -80,11 +80,11 @@ import { t as isMainModule } from "./is-main-D5NmXew9.js";
80
80
  import { t as ensureSKYKOICliOnPath } from "./path-env-C0IwmyXV.js";
81
81
  import { t as assertSupportedRuntime } from "./runtime-guard-DQEzrjPX.js";
82
82
  import "./ports-CVcXIoyn.js";
83
- import "./config-guard-B9uTugI8.js";
83
+ import "./config-guard-_bkiEZ2R.js";
84
84
  import "./logging-CE47aZcO.js";
85
85
  import "./note-BDX6ZDm1.js";
86
86
  import "./clack-prompter-BbdTlNx8.js";
87
- import "./onboarding-D_Fft8Qj.js";
87
+ import "./onboarding-BXK39FcC.js";
88
88
  import "./onboard-skills-B-VRqQPq.js";
89
89
  import "./github-copilot-auth-D7TUwRK1.js";
90
90
  import "./onboard-channels-CAGl4wwR.js";
@@ -103,8 +103,8 @@ import "./systemd-fjt-WYE7.js";
103
103
  import "./diagnostics-DPRvn_ky.js";
104
104
  import "./node-service--cl-zK26.js";
105
105
  import "./channels-status-issues-D92ZMiSY.js";
106
- import "./doctor-completion-BFKSD7Wa.js";
107
- import "./register.subclis-CbN6zTM-.js";
106
+ import "./doctor-completion-BeN_f3Pz.js";
107
+ import "./register.subclis-ceKpisEU.js";
108
108
  import "./gateway-rpc-DYI5hnM6.js";
109
109
  import "./help-format-VHofKIT0.js";
110
110
  import "./admin-unlock-CTCNN-zM.js";
@@ -120,13 +120,13 @@ import "./ensure-local-gateway-B2qYYNsm.js";
120
120
  import "./channel-auth-DOqfPLIr.js";
121
121
  import "./login-Du7RjDym.js";
122
122
  import "./auth-health-DfT6NGrM.js";
123
- import "./doctor-B4jYOmV8.js";
124
- import "./completion-cli-Daqk_SMv.js";
123
+ import "./doctor-CuvVztWn.js";
124
+ import "./completion-cli-CLfchmty.js";
125
125
  import "./service-audit-B_swanYW.js";
126
126
  import "./hooks-status-CJBhXrQP.js";
127
- import "./tui-BzTkL_-S.js";
127
+ import "./tui-KKclAOTp.js";
128
128
  import "./channel-options-Dad1PMC0.js";
129
- import { n as buildProgram } from "./program-DqdcT8MN.js";
129
+ import { n as buildProgram } from "./program-CrcmPJE3.js";
130
130
  import process from "node:process";
131
131
  import { fileURLToPath } from "node:url";
132
132
 
@@ -38,12 +38,12 @@ import { t as readLastGatewayErrorLine } from "./diagnostics-DPRvn_ky.js";
38
38
  import { t as resolveNodeService } from "./node-service--cl-zK26.js";
39
39
  import { t as collectChannelStatusIssues } from "./channels-status-issues-D92ZMiSY.js";
40
40
  import { i as redactSecrets, n as formatDuration$1, r as formatGatewayAuthUsed, t as formatAge$1 } from "./format-lvtLJpBH.js";
41
- import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, o as getUpdateCheckResult, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-BFKSD7Wa.js";
41
+ import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, o as getUpdateCheckResult, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-BeN_f3Pz.js";
42
42
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Dcc_8tht.js";
43
43
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-jkMiwykI.js";
44
- import { r as installCompletion } from "./completion-cli-Daqk_SMv.js";
44
+ import { r as installCompletion } from "./completion-cli-CLfchmty.js";
45
45
  import { t as buildWorkspaceHookStatus } from "./hooks-status-CJBhXrQP.js";
46
- import { t as runTui } from "./tui-BzTkL_-S.js";
46
+ import { t as runTui } from "./tui-KKclAOTp.js";
47
47
  import fs from "node:fs";
48
48
  import path from "node:path";
49
49
  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-ClImJtLC.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-lynj0LAO.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";
@@ -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 AjvPkg from "ajv";
45
+ import AjvModule from "ajv";
46
46
  import lockfile from "proper-lockfile";
47
47
  import { URL as URL$1 } from "url";
48
48
  import "yaml";
@@ -20603,7 +20603,7 @@ function loadPluginManifestRegistry(params) {
20603
20603
 
20604
20604
  //#endregion
20605
20605
  //#region src/plugins/schema-validator.ts
20606
- const ajv$1 = new AjvPkg({
20606
+ const ajv$1 = new AjvModule({
20607
20607
  allErrors: true,
20608
20608
  strict: false,
20609
20609
  removeAdditional: false
@@ -48250,7 +48250,7 @@ const PROTOCOL_VERSION = 3;
48250
48250
 
48251
48251
  //#endregion
48252
48252
  //#region src/gateway/protocol/index.ts
48253
- const ajv = new AjvPkg({
48253
+ const ajv = new AjvModule({
48254
48254
  allErrors: true,
48255
48255
  strict: false,
48256
48256
  removeAdditional: false
@@ -68123,7 +68123,7 @@ function enqueueSystemEvent(text, options) {
68123
68123
  const MODEL_CACHE = /* @__PURE__ */ new Map();
68124
68124
  (async () => {
68125
68125
  try {
68126
- const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-ClImJtLC.js").then((n) => n.t);
68126
+ const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-lynj0LAO.js").then((n) => n.t);
68127
68127
  await ensureSKYKOIModelsJson(loadConfig());
68128
68128
  const koiDir = resolveSKYKOIKoiDir();
68129
68129
  const models = discoverModels(discoverAuthStorage(koiDir), koiDir).getAll();
@@ -228371,7 +228371,7 @@ const BUFFERABLE_EVENT_SET = new Set([
228371
228371
  * making the data processing more efficient.
228372
228372
  */
228373
228373
  const makeEventBuffer = (logger) => {
228374
- const ev = new EventEmitter$1();
228374
+ const ev = new EventEmitter();
228375
228375
  const historyCache = /* @__PURE__ */ new Set();
228376
228376
  let data = makeBufferData();
228377
228377
  let isBuffering = false;
@@ -233941,7 +233941,7 @@ var BinaryInfo = class {
233941
233941
 
233942
233942
  //#endregion
233943
233943
  //#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
233944
- var AbstractSocketClient = class extends EventEmitter {
233944
+ var AbstractSocketClient = class extends EventEmitter$1 {
233945
233945
  constructor(url, config) {
233946
233946
  super();
233947
233947
  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 AjvPkg from "ajv";
37
+ import AjvModule 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_patch_hash=f41b8429247a07c256a366fc8eddb44710b4e74212f25ffaf_aba27699dbfe3dddaa7a3984ad46615e/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 = AjvPkg.default || AjvPkg;
59702
+ const Ajv$1 = AjvModule.default || AjvModule;
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 = AjvPkg.default || AjvPkg;
174029
+ const Ajv = AjvModule.default || AjvModule;
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-CFNtV6AI.js";
8
- import { i as registerProgramCommands, n as PLUGIN_CLI_COMMANDS, t as ensureConfigReady } from "./config-guard-B9uTugI8.js";
9
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-CbN6zTM-.js";
8
+ import { i as registerProgramCommands, n as PLUGIN_CLI_COMMANDS, t as ensureConfigReady } from "./config-guard-_bkiEZ2R.js";
9
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-ceKpisEU.js";
10
10
  import { t as ensurePluginRegistryLoaded } from "./plugin-registry-y0aOioWc.js";
11
- import { a as hasEmittedCliBanner, i as formatCliBannerLine, r as emitCliBanner } from "./tui-BzTkL_-S.js";
11
+ import { a as hasEmittedCliBanner, i as formatCliBannerLine, r as emitCliBanner } from "./tui-KKclAOTp.js";
12
12
  import { n as resolveCliChannelOptions } from "./channel-options-Dad1PMC0.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-DnDlw3rn.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-C-KfNrgk.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-B0BEmt1q.js")).registerTuiCli(program);
197
+ (await import("./tui-cli-CEXiHDyq.js")).registerTuiCli(program);
198
198
  }
199
199
  },
200
200
  {
@@ -310,14 +310,14 @@ const entries = [
310
310
  name: "update",
311
311
  description: "CLI update helpers",
312
312
  register: async (program) => {
313
- (await import("./update-cli-CJMUfl50.js")).registerUpdateCli(program);
313
+ (await import("./update-cli-CRoCxvoK.js")).registerUpdateCli(program);
314
314
  }
315
315
  },
316
316
  {
317
317
  name: "completion",
318
318
  description: "Generate shell completion script",
319
319
  register: async (program) => {
320
- (await import("./completion-cli-Daqk_SMv.js").then((n) => n.n)).registerCompletionCli(program);
320
+ (await import("./completion-cli-CLfchmty.js").then((n) => n.n)).registerCompletionCli(program);
321
321
  }
322
322
  }
323
323
  ];
@@ -77,11 +77,11 @@ import "./deps-Wr4nf60s.js";
77
77
  import "./tailscale-B0Nz70aN.js";
78
78
  import { t as ensureSKYKOICliOnPath } from "./path-env-C0IwmyXV.js";
79
79
  import { t as assertSupportedRuntime } from "./runtime-guard-DQEzrjPX.js";
80
- import { n as PLUGIN_CLI_COMMANDS, r as findRoutedCommand, t as ensureConfigReady } from "./config-guard-B9uTugI8.js";
80
+ import { n as PLUGIN_CLI_COMMANDS, r as findRoutedCommand, t as ensureConfigReady } from "./config-guard-_bkiEZ2R.js";
81
81
  import "./logging-CE47aZcO.js";
82
82
  import "./note-BDX6ZDm1.js";
83
83
  import "./clack-prompter-BbdTlNx8.js";
84
- import "./onboarding-D_Fft8Qj.js";
84
+ import "./onboarding-BXK39FcC.js";
85
85
  import "./onboard-skills-B-VRqQPq.js";
86
86
  import "./github-copilot-auth-D7TUwRK1.js";
87
87
  import "./onboard-channels-CAGl4wwR.js";
@@ -100,8 +100,8 @@ import "./systemd-fjt-WYE7.js";
100
100
  import "./diagnostics-DPRvn_ky.js";
101
101
  import "./node-service--cl-zK26.js";
102
102
  import "./channels-status-issues-D92ZMiSY.js";
103
- import "./doctor-completion-BFKSD7Wa.js";
104
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-CbN6zTM-.js";
103
+ import "./doctor-completion-BeN_f3Pz.js";
104
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-ceKpisEU.js";
105
105
  import "./gateway-rpc-DYI5hnM6.js";
106
106
  import "./help-format-VHofKIT0.js";
107
107
  import "./admin-unlock-CTCNN-zM.js";
@@ -117,11 +117,11 @@ import "./ensure-local-gateway-B2qYYNsm.js";
117
117
  import "./channel-auth-DOqfPLIr.js";
118
118
  import "./login-Du7RjDym.js";
119
119
  import "./auth-health-DfT6NGrM.js";
120
- import "./doctor-B4jYOmV8.js";
121
- import "./completion-cli-Daqk_SMv.js";
120
+ import "./doctor-CuvVztWn.js";
121
+ import "./completion-cli-CLfchmty.js";
122
122
  import "./service-audit-B_swanYW.js";
123
123
  import "./hooks-status-CJBhXrQP.js";
124
- import { r as emitCliBanner } from "./tui-BzTkL_-S.js";
124
+ import { r as emitCliBanner } from "./tui-KKclAOTp.js";
125
125
  import process$1 from "node:process";
126
126
  import { fileURLToPath } from "node:url";
127
127
  import fs from "node:fs";
@@ -175,7 +175,7 @@ async function runCli(argv = process$1.argv) {
175
175
  assertSupportedRuntime();
176
176
  if (await tryRouteCli(normalizedArgv)) return;
177
177
  enableConsoleCapture();
178
- const { buildProgram } = await import("./program-DqdcT8MN.js").then((n) => n.t);
178
+ const { buildProgram } = await import("./program-CrcmPJE3.js").then((n) => n.t);
179
179
  const program = buildProgram();
180
180
  installUnhandledRejectionHandler();
181
181
  process$1.on("uncaughtException", (error) => {
@@ -208,7 +208,7 @@ async function runCli(argv = process$1.argv) {
208
208
  }
209
209
  const primary = getPrimaryCommand(parseArgv);
210
210
  if (primary) {
211
- const { registerSubCliByName } = await import("./register.subclis-CbN6zTM-.js").then((n) => n.i);
211
+ const { registerSubCliByName } = await import("./register.subclis-ceKpisEU.js").then((n) => n.i);
212
212
  await registerSubCliByName(program, primary);
213
213
  }
214
214
  if (!!primary && PLUGIN_CLI_COMMANDS.has(primary)) {
@@ -6007,11 +6007,12 @@ async function quickLookThumbnail(path) {
6007
6007
 
6008
6008
  //#endregion
6009
6009
  //#region src/tui/canvas/graphics-protocol.ts
6010
- /** Detect the best native image protocol from the environment (synchronous). */
6011
- function detectGraphicsProtocol(env = process.env) {
6012
- if (env.KOI_CANVAS_GRAPHICS === "off" || env.KOI_CANVAS_GRAPHICS === "none") return "none";
6013
- const forced = env.KOI_CANVAS_GRAPHICS;
6014
- if (forced === "kitty" || forced === "iterm2" || forced === "sixel") return forced;
6010
+ let PROBED = null;
6011
+ function setProbedProtocol(p) {
6012
+ PROBED = p;
6013
+ }
6014
+ /** The env heuristic a best guess used only until the live probe resolves. */
6015
+ function detectGraphicsProtocolFromEnv(env = process.env) {
6015
6016
  const tp = (env.TERM_PROGRAM ?? "").toLowerCase();
6016
6017
  const term = (env.TERM ?? "").toLowerCase();
6017
6018
  const lcTerm = (env.LC_TERMINAL ?? "").toLowerCase();
@@ -6023,6 +6024,40 @@ function detectGraphicsProtocol(env = process.env) {
6023
6024
  if (term.includes("sixel") || term.includes("mlterm") || term.includes("foot")) return "sixel";
6024
6025
  return "none";
6025
6026
  }
6027
+ /** Resolve the active protocol: explicit override → live probe → env guess. */
6028
+ function detectGraphicsProtocol(env = process.env) {
6029
+ if (env.KOI_CANVAS_GRAPHICS === "off" || env.KOI_CANVAS_GRAPHICS === "none") return "none";
6030
+ const forced = env.KOI_CANVAS_GRAPHICS;
6031
+ if (forced === "kitty" || forced === "iterm2" || forced === "sixel") return forced;
6032
+ if (PROBED !== null) return PROBED;
6033
+ return detectGraphicsProtocolFromEnv(env);
6034
+ }
6035
+ const GRAPHICS_PROBE_QUERY = "\x1B_Gi=4294967290,s=1,v=1,a=q,t=d,f=24;AAAA\x1B\\\x1B[c";
6036
+ /** Parse an accumulated response buffer from the probe query. */
6037
+ function parseProbeResponses(buf) {
6038
+ const kitty = /\x1b_G[^\x1b]*;OK\x1b\\/.test(buf);
6039
+ const da = buf.match(/\x1b\[\?([0-9;]+)c/);
6040
+ return {
6041
+ kitty,
6042
+ sixel: da ? da[1].split(";").includes("4") : false,
6043
+ complete: da !== null
6044
+ };
6045
+ }
6046
+ /**
6047
+ * Fold a stdin chunk into the probe: apply any recognized capability/cell-size
6048
+ * responses and RETURN the leftover bytes that are real user input. Terminals
6049
+ * only send these in reply to our queries, so this reliably separates them.
6050
+ */
6051
+ function extractProbeResponses(chunk, state) {
6052
+ state.buf += chunk;
6053
+ const res = parseProbeResponses(state.buf);
6054
+ return {
6055
+ input: chunk.replace(/\x1b_G[^\x1b]*;(OK|E[^\x1b]*)\x1b\\/g, "").replace(/\x1b\[\?[0-9;]+c/g, ""),
6056
+ kitty: res.kitty,
6057
+ sixel: res.sixel,
6058
+ complete: res.complete
6059
+ };
6060
+ }
6026
6061
  let CELL_W = 9;
6027
6062
  let CELL_H = 19;
6028
6063
  function setCellPixels(w, h) {
@@ -7392,22 +7427,67 @@ function loadCanvasDefaultOn() {
7392
7427
  }
7393
7428
  }
7394
7429
  function saveCanvasDefaultOn(defaultOn) {
7430
+ writeCanvasState({ defaultOn });
7431
+ }
7432
+ function readCanvasState() {
7395
7433
  try {
7396
- fs.writeFileSync(canvasStatePath(), JSON.stringify({ defaultOn }, null, 2));
7434
+ return JSON.parse(fs.readFileSync(canvasStatePath(), "utf8"));
7435
+ } catch {
7436
+ return {};
7437
+ }
7438
+ }
7439
+ function writeCanvasState(patch) {
7440
+ try {
7441
+ fs.writeFileSync(canvasStatePath(), JSON.stringify({
7442
+ ...readCanvasState(),
7443
+ ...patch
7444
+ }, null, 2));
7397
7445
  } catch {}
7398
7446
  }
7447
+ /** Whether the "use a graphics terminal" nudge has already been shown once. */
7448
+ function loadGraphicsHintShown() {
7449
+ return readCanvasState().graphicsHintShown === true;
7450
+ }
7451
+ function saveGraphicsHintShown(shown) {
7452
+ writeCanvasState({ graphicsHintShown: shown });
7453
+ }
7399
7454
  var CanvasMode = class {
7455
+ get gfxKitty() {
7456
+ return detectGraphicsProtocol() === "kitty";
7457
+ }
7458
+ get gfxOn() {
7459
+ const p = detectGraphicsProtocol();
7460
+ return p === "kitty" || p === "iterm2" || p === "sixel";
7461
+ }
7400
7462
  constructor(deps) {
7401
7463
  this.engine = null;
7402
7464
  this.overlay = null;
7403
7465
  this.label = "";
7404
7466
  this.keyListener = null;
7405
7467
  this.resizeListener = null;
7406
- this.gfxProtocol = detectGraphicsProtocol();
7407
- this.gfxKitty = this.gfxProtocol === "kitty";
7408
- this.gfxOn = this.gfxProtocol === "kitty" || this.gfxProtocol === "iterm2" || this.gfxProtocol === "sixel";
7468
+ this.probing = false;
7469
+ this.probeState = { buf: "" };
7470
+ this.probeKitty = false;
7471
+ this.probeSixel = false;
7472
+ this.probeTimer = null;
7473
+ this.hintUntil = 0;
7409
7474
  this.deps = deps;
7410
7475
  }
7476
+ finalizeProbe() {
7477
+ if (!this.probing) return;
7478
+ this.probing = false;
7479
+ if (this.probeTimer) {
7480
+ clearTimeout(this.probeTimer);
7481
+ this.probeTimer = null;
7482
+ }
7483
+ const env = detectGraphicsProtocolFromEnv(process.env);
7484
+ const p = this.probeKitty ? "kitty" : this.probeSixel ? "sixel" : env === "iterm2" ? "iterm2" : "none";
7485
+ setProbedProtocol(p);
7486
+ if (p === "none" && !loadGraphicsHintShown()) {
7487
+ this.hintUntil = Date.now() + 9e3;
7488
+ saveGraphicsHintShown(true);
7489
+ }
7490
+ }
7411
7491
  isActive() {
7412
7492
  return this.engine !== null;
7413
7493
  }
@@ -7424,12 +7504,18 @@ var CanvasMode = class {
7424
7504
  draw: (grid, t) => {
7425
7505
  scene.draw(grid, t);
7426
7506
  overlay.draw(grid, t);
7507
+ this.drawGraphicsHint(grid);
7427
7508
  },
7428
7509
  afterFlush: scene.afterFlush ? (sink, full) => scene.afterFlush(sink, full) : void 0,
7429
7510
  onKey: scene.onKey,
7430
7511
  dispose: scene.dispose
7431
7512
  };
7432
7513
  }
7514
+ /** A one-time dim nudge toward a graphics-capable terminal (auto-dismisses). */
7515
+ drawGraphicsHint(grid) {
7516
+ if (this.hintUntil === 0 || Date.now() > this.hintUntil) return;
7517
+ drawText(grid, Math.max(1, (grid.w - 68) / 2 | 0), grid.h - 6, "tip · run koi in WezTerm or Kitty for full-resolution images & video", hexColor("#5B6472"), -2);
7518
+ }
7433
7519
  /** Enter (or, when already active, switch scenes in place). */
7434
7520
  enter(scene, label) {
7435
7521
  this.label = label;
@@ -7449,21 +7535,27 @@ var CanvasMode = class {
7449
7535
  this.engine.setScene(this.withOverlay(scene));
7450
7536
  this.engine.start();
7451
7537
  this.keyListener = (buf) => {
7452
- const key = buf.toString("utf8");
7538
+ let key = buf.toString("utf8");
7539
+ if (this.probing) {
7540
+ const r = extractProbeResponses(key, this.probeState);
7541
+ if (r.kitty) this.probeKitty = true;
7542
+ if (r.sixel) this.probeSixel = true;
7543
+ key = r.input;
7544
+ if (r.complete) this.finalizeProbe();
7545
+ }
7453
7546
  const cell = key.match(/\x1b\[6;(\d+);(\d+)t/);
7454
7547
  if (cell) {
7455
7548
  setCellPixels(Number(cell[2]), Number(cell[1]));
7456
- return;
7549
+ key = key.replace(cell[0], "");
7457
7550
  }
7458
7551
  const area = key.match(/\x1b\[4;(\d+);(\d+)t/);
7459
7552
  if (area) {
7460
- const ph = Number(area[1]);
7461
- const pw = Number(area[2]);
7462
7553
  const c = process.stdout.columns || 80;
7463
7554
  const r = process.stdout.rows || 24;
7464
- if (pw > 0 && ph > 0) setCellPixels(pw / c, ph / r);
7465
- return;
7555
+ if (Number(area[2]) > 0 && Number(area[1]) > 0) setCellPixels(Number(area[2]) / c, Number(area[1]) / r);
7556
+ key = key.replace(area[0], "");
7466
7557
  }
7558
+ if (key.length === 0) return;
7467
7559
  if (key === "") {
7468
7560
  this.exit();
7469
7561
  return;
@@ -7477,7 +7569,15 @@ var CanvasMode = class {
7477
7569
  this.engine?.handleKey(key);
7478
7570
  };
7479
7571
  process.stdin.on("data", this.keyListener);
7480
- if (this.gfxOn) process.stdout.write("\x1B[16t\x1B[14t");
7572
+ if (process.stdin.isTTY) {
7573
+ this.probing = true;
7574
+ this.probeState = { buf: "" };
7575
+ this.probeKitty = false;
7576
+ this.probeSixel = false;
7577
+ process.stdout.write(GRAPHICS_PROBE_QUERY + "\x1B[16t\x1B[14t");
7578
+ this.probeTimer = setTimeout(() => this.finalizeProbe(), 350);
7579
+ this.probeTimer.unref?.();
7580
+ }
7481
7581
  this.resizeListener = () => {
7482
7582
  this.engine?.resize(process.stdout.columns || 80, process.stdout.rows || 24);
7483
7583
  };
@@ -7496,6 +7596,11 @@ var CanvasMode = class {
7496
7596
  process.stdout.removeListener("resize", this.resizeListener);
7497
7597
  this.resizeListener = null;
7498
7598
  }
7599
+ if (this.probeTimer) {
7600
+ clearTimeout(this.probeTimer);
7601
+ this.probeTimer = null;
7602
+ }
7603
+ this.probing = false;
7499
7604
  if (this.gfxKitty) process.stdout.write(kittyDeleteAll());
7500
7605
  process.stdout.write("\x1B[?1049l\x1B[?25h");
7501
7606
  this.deps.resumeTui();
@@ -52,7 +52,7 @@ import "./systemd-fjt-WYE7.js";
52
52
  import "./diagnostics-DPRvn_ky.js";
53
53
  import "./daemon-runtime-jkMiwykI.js";
54
54
  import "./ensure-local-gateway-B2qYYNsm.js";
55
- import { t as runTui } from "./tui-BzTkL_-S.js";
55
+ import { t as runTui } from "./tui-KKclAOTp.js";
56
56
 
57
57
  //#region src/cli/tui-cli.ts
58
58
  function registerTuiCli(program) {
@@ -93,15 +93,15 @@ import "./service-CW9nUfWU.js";
93
93
  import "./systemd-fjt-WYE7.js";
94
94
  import "./diagnostics-DPRvn_ky.js";
95
95
  import "./channels-status-issues-D92ZMiSY.js";
96
- import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-BFKSD7Wa.js";
97
- import "./register.subclis-CbN6zTM-.js";
96
+ import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-BeN_f3Pz.js";
97
+ import "./register.subclis-ceKpisEU.js";
98
98
  import { t as formatHelpExamples } from "./help-format-VHofKIT0.js";
99
99
  import "./control-ui-assets-Dcc_8tht.js";
100
100
  import "./daemon-runtime-jkMiwykI.js";
101
101
  import "./systemd-linger-T7_vGBN4.js";
102
102
  import "./auth-health-DfT6NGrM.js";
103
- import { t as doctorCommand } from "./doctor-B4jYOmV8.js";
104
- import { r as installCompletion } from "./completion-cli-Daqk_SMv.js";
103
+ import { t as doctorCommand } from "./doctor-CuvVztWn.js";
104
+ import { r as installCompletion } from "./completion-cli-CLfchmty.js";
105
105
  import "./service-audit-B_swanYW.js";
106
106
  import "./shared-CsJmoyjd.js";
107
107
  import { r as runDaemonRestart } from "./daemon-cli-B5aK-HPj.js";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/bluebubbles",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI BlueBubbles channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/copilot-proxy",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Copilot Proxy provider plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/diagnostics-otel",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI diagnostics OpenTelemetry exporter",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/discord",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Discord channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/feishu",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Feishu/Lark channel plugin (community maintained by @m1heng)",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/google-antigravity-auth",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Google Antigravity OAuth provider plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/google-gemini-cli-auth",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Gemini CLI OAuth provider plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/googlechat",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Google Chat channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/imessage",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI iMessage channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/line",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI LINE channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/llm-task",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI JSON-only LLM task plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/lobster",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "Lobster workflow tool plugin (typed pipelines + resumable approvals)",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.3.392
4
+
5
+ ### Changes
6
+ - Version alignment with core SKYKOI release numbers.
7
+
3
8
  ## 2026.3.391
4
9
 
5
10
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/matrix",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Matrix channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/mattermost",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Mattermost channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/memory-core",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI core memory search plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/memory-lancedb",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI LanceDB-backed long-term memory plugin with auto-recall/capture",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/minimax-portal-auth",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI MiniMax Portal OAuth provider plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.3.392
4
+
5
+ ### Changes
6
+ - Version alignment with core SKYKOI release numbers.
7
+
3
8
  ## 2026.3.391
4
9
 
5
10
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/msteams",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Microsoft Teams channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/nextcloud-talk",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Nextcloud Talk channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.3.392
4
+
5
+ ### Changes
6
+ - Version alignment with core SKYKOI release numbers.
7
+
3
8
  ## 2026.3.391
4
9
 
5
10
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/nostr",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Nostr channel plugin for NIP-04 encrypted DMs",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/open-prose",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "OpenProse VM skill pack plugin (slash command + telemetry).",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/signal",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Signal channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/slack",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Slack channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/telegram",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Telegram channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/tlon",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Tlon/Urbit channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.3.392
4
+
5
+ ### Changes
6
+ - Version alignment with core SKYKOI release numbers.
7
+
3
8
  ## 2026.3.391
4
9
 
5
10
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/twitch",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Twitch channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.3.392
4
+
5
+ ### Changes
6
+ - Version alignment with core SKYKOI release numbers.
7
+
3
8
  ## 2026.3.391
4
9
 
5
10
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/voice-call",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI voice-call plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/whatsapp",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI WhatsApp channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.3.392
4
+
5
+ ### Changes
6
+ - Version alignment with core SKYKOI release numbers.
7
+
3
8
  ## 2026.3.391
4
9
 
5
10
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/zalo",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Zalo channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.3.392
4
+
5
+ ### Changes
6
+ - Version alignment with core SKYKOI release numbers.
7
+
3
8
  ## 2026.3.391
4
9
 
5
10
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/zalouser",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SKYKOI Zalo Personal Account plugin via zca-cli",
5
5
  "type": "module",
6
6
  "dependencies": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skykoi",
3
- "version": "2026.3.391",
3
+ "version": "2026.3.392",
4
4
  "description": "SkyKoi — Koi runtime. Multi-channel gateway CLI with RPC Koi.",
5
5
  "keywords": [
6
6
  "cli",