skykoi 2026.3.396 → 2026.3.397

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-ChesF99M.js → completion-cli-BfbWBQHn.js} +1 -1
  4. package/dist/{config-guard-DR8aiV20.js → config-guard-UPFUjqZ7.js} +4 -4
  5. package/dist/{doctor-CCLm_9dC.js → doctor-BMQsEOap.js} +1 -1
  6. package/dist/{doctor-completion-Bqs8eIiH.js → doctor-completion-Ba368N2l.js} +1 -1
  7. package/dist/entry.js +1 -1
  8. package/dist/{gateway-cli-DWMQ9uCn.js → gateway-cli-CoUIKLR7.js} +5 -5
  9. package/dist/index.js +8 -8
  10. package/dist/{onboarding-BUY-TAwL.js → onboarding-CzobMsre.js} +3 -3
  11. package/dist/plugin-sdk/index.js +5 -5
  12. package/dist/plugin-sdk/{pi-model-discovery-ClImJtLC.js → pi-model-discovery-lynj0LAO.js} +3 -3
  13. package/dist/{program-DvZ_NbtM.js → program-OKa0btqV.js} +3 -3
  14. package/dist/{register.subclis-iJp9f-iU.js → register.subclis-BAak9TQd.js} +4 -4
  15. package/dist/{run-main-Bf-Jikon.js → run-main-ByrpfGoo.js} +9 -9
  16. package/dist/{tui-GHHAepyB.js → tui-Ca4kj3q0.js} +5 -1
  17. package/dist/{tui-cli-DBxRTntv.js → tui-cli-C1_G2AyE.js} +1 -1
  18. package/dist/{update-cli-CfIF6GL-.js → update-cli-B8N7sR7F.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.396",
3
- "commit": "f04d9d1b95d14ee002388e4780a1d5eb6b7b4e6a",
4
- "builtAt": "2026-07-05T05:37:19.006Z"
2
+ "version": "2026.3.397",
3
+ "commit": "fac2034f0711f2a1052b4fea1f9df59087a1c4f0",
4
+ "builtAt": "2026-07-05T05:40:37.033Z"
5
5
  }
@@ -1 +1 @@
1
- b1aa3277aaf5200303de6e934427e8b01964a1dd39e6c8c2add33a2c1faab81a
1
+ eb729633df759157c2b3226bb2b0b0d75497ce7d192b137d742d3f15c44e1c41
@@ -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-iJp9f-iU.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-BAak9TQd.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-BUY-TAwL.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-CzobMsre.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-CG1jttMr.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-BNyM5CKT.js";
34
34
  import { n as setupChannels } from "./onboard-channels-Dkpe9gTa.js";
@@ -36,7 +36,7 @@ import { i as healthCommand } from "./health-format-FFSqVX0K.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-iJp9f-iU.js";
39
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-BAak9TQd.js";
40
40
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-Dl6NCQql.js";
41
41
  import { t as formatHelpExamples } from "./help-format-VHofKIT0.js";
42
42
  import { t as adminUnlockCommand } from "./admin-unlock-BbRriux7.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-CtqjzJUQ.js";
48
48
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-T7_vGBN4.js";
49
49
  import { t as loginCommand } from "./login-ByLDHO1i.js";
50
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-CCLm_9dC.js";
50
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-BMQsEOap.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-GHHAepyB.js").then((n) => n.n);
3109
+ const { runTui } = await import("./tui-Ca4kj3q0.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-Bqs8eIiH.js";
37
+ import { n as doctorShellCompletion } from "./doctor-completion-Ba368N2l.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-CtqjzJUQ.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-ChesF99M.js";
6
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BfbWBQHn.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-Bf-Jikon.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
250
+ import("./run-main-ByrpfGoo.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-BUY-TAwL.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-CzobMsre.js";
98
98
  import { n as installSkill } from "./onboard-skills-CG1jttMr.js";
99
99
  import "./github-copilot-auth-BNyM5CKT.js";
100
100
  import "./onboard-channels-Dkpe9gTa.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-Bqs8eIiH.js";
117
- import "./register.subclis-iJp9f-iU.js";
116
+ import "./doctor-completion-Ba368N2l.js";
117
+ import "./register.subclis-BAak9TQd.js";
118
118
  import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-CE3VDydy.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-CtqjzJUQ.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-nFYv6_lI.js";
124
- import "./completion-cli-ChesF99M.js";
124
+ import "./completion-cli-BfbWBQHn.js";
125
125
  import "./service-audit-ESoCtKKk.js";
126
126
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-Bh2u_o5A.js";
127
- import "./tui-GHHAepyB.js";
127
+ import "./tui-Ca4kj3q0.js";
128
128
  import "./graphics-protocol-K_Nx2CZD.js";
129
129
  import { t as buildChannelAccountSnapshot } from "./status-PJY2Jbku.js";
130
130
  import "./shared-C1BN86q0.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-DR8aiV20.js";
83
+ import "./config-guard-UPFUjqZ7.js";
84
84
  import "./logging-CE47aZcO.js";
85
85
  import "./note-BDX6ZDm1.js";
86
86
  import "./clack-prompter-BbdTlNx8.js";
87
- import "./onboarding-BUY-TAwL.js";
87
+ import "./onboarding-CzobMsre.js";
88
88
  import "./onboard-skills-CG1jttMr.js";
89
89
  import "./github-copilot-auth-BNyM5CKT.js";
90
90
  import "./onboard-channels-Dkpe9gTa.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-Bqs8eIiH.js";
107
- import "./register.subclis-iJp9f-iU.js";
106
+ import "./doctor-completion-Ba368N2l.js";
107
+ import "./register.subclis-BAak9TQd.js";
108
108
  import "./gateway-rpc-Dl6NCQql.js";
109
109
  import "./help-format-VHofKIT0.js";
110
110
  import "./admin-unlock-BbRriux7.js";
@@ -120,14 +120,14 @@ import "./ensure-local-gateway-nFYv6_lI.js";
120
120
  import "./channel-auth-f9Rst6Fv.js";
121
121
  import "./login-ByLDHO1i.js";
122
122
  import "./auth-health-DydWZ4Iy.js";
123
- import "./doctor-CCLm_9dC.js";
124
- import "./completion-cli-ChesF99M.js";
123
+ import "./doctor-BMQsEOap.js";
124
+ import "./completion-cli-BfbWBQHn.js";
125
125
  import "./service-audit-ESoCtKKk.js";
126
126
  import "./hooks-status-Bh2u_o5A.js";
127
- import "./tui-GHHAepyB.js";
127
+ import "./tui-Ca4kj3q0.js";
128
128
  import "./graphics-protocol-K_Nx2CZD.js";
129
129
  import "./channel-options-B_N0gwFi.js";
130
- import { n as buildProgram } from "./program-DvZ_NbtM.js";
130
+ import { n as buildProgram } from "./program-OKa0btqV.js";
131
131
  import process from "node:process";
132
132
  import { fileURLToPath } from "node:url";
133
133
 
@@ -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-Bqs8eIiH.js";
41
+ import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, o as getUpdateCheckResult, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-Ba368N2l.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-CtqjzJUQ.js";
44
- import { r as installCompletion } from "./completion-cli-ChesF99M.js";
44
+ import { r as installCompletion } from "./completion-cli-BfbWBQHn.js";
45
45
  import { t as buildWorkspaceHookStatus } from "./hooks-status-Bh2u_o5A.js";
46
- import { t as runTui } from "./tui-GHHAepyB.js";
46
+ import { t as runTui } from "./tui-Ca4kj3q0.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";
@@ -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();
@@ -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-DR8aiV20.js";
9
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-iJp9f-iU.js";
8
+ import { i as registerProgramCommands, n as PLUGIN_CLI_COMMANDS, t as ensureConfigReady } from "./config-guard-UPFUjqZ7.js";
9
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-BAak9TQd.js";
10
10
  import { t as ensurePluginRegistryLoaded } from "./plugin-registry-C_Fpgre2.js";
11
- import { a as hasEmittedCliBanner, i as formatCliBannerLine, r as emitCliBanner } from "./tui-GHHAepyB.js";
11
+ import { a as hasEmittedCliBanner, i as formatCliBannerLine, r as emitCliBanner } from "./tui-Ca4kj3q0.js";
12
12
  import { n as resolveCliChannelOptions } from "./channel-options-B_N0gwFi.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-DWMQ9uCn.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-CoUIKLR7.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-DBxRTntv.js")).registerTuiCli(program);
197
+ (await import("./tui-cli-C1_G2AyE.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-CfIF6GL-.js")).registerUpdateCli(program);
313
+ (await import("./update-cli-B8N7sR7F.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-ChesF99M.js").then((n) => n.n)).registerCompletionCli(program);
320
+ (await import("./completion-cli-BfbWBQHn.js").then((n) => n.n)).registerCompletionCli(program);
321
321
  }
322
322
  }
323
323
  ];
@@ -77,11 +77,11 @@ import "./deps-Bu11dePB.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-DR8aiV20.js";
80
+ import { n as PLUGIN_CLI_COMMANDS, r as findRoutedCommand, t as ensureConfigReady } from "./config-guard-UPFUjqZ7.js";
81
81
  import "./logging-CE47aZcO.js";
82
82
  import "./note-BDX6ZDm1.js";
83
83
  import "./clack-prompter-BbdTlNx8.js";
84
- import "./onboarding-BUY-TAwL.js";
84
+ import "./onboarding-CzobMsre.js";
85
85
  import "./onboard-skills-CG1jttMr.js";
86
86
  import "./github-copilot-auth-BNyM5CKT.js";
87
87
  import "./onboard-channels-Dkpe9gTa.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-Bqs8eIiH.js";
104
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-iJp9f-iU.js";
103
+ import "./doctor-completion-Ba368N2l.js";
104
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-BAak9TQd.js";
105
105
  import "./gateway-rpc-Dl6NCQql.js";
106
106
  import "./help-format-VHofKIT0.js";
107
107
  import "./admin-unlock-BbRriux7.js";
@@ -117,11 +117,11 @@ import "./ensure-local-gateway-nFYv6_lI.js";
117
117
  import "./channel-auth-f9Rst6Fv.js";
118
118
  import "./login-ByLDHO1i.js";
119
119
  import "./auth-health-DydWZ4Iy.js";
120
- import "./doctor-CCLm_9dC.js";
121
- import "./completion-cli-ChesF99M.js";
120
+ import "./doctor-BMQsEOap.js";
121
+ import "./completion-cli-BfbWBQHn.js";
122
122
  import "./service-audit-ESoCtKKk.js";
123
123
  import "./hooks-status-Bh2u_o5A.js";
124
- import { r as emitCliBanner } from "./tui-GHHAepyB.js";
124
+ import { r as emitCliBanner } from "./tui-Ca4kj3q0.js";
125
125
  import "./graphics-protocol-K_Nx2CZD.js";
126
126
  import process$1 from "node:process";
127
127
  import { fileURLToPath } from "node:url";
@@ -176,7 +176,7 @@ async function runCli(argv = process$1.argv) {
176
176
  assertSupportedRuntime();
177
177
  if (await tryRouteCli(normalizedArgv)) return;
178
178
  enableConsoleCapture();
179
- const { buildProgram } = await import("./program-DvZ_NbtM.js").then((n) => n.t);
179
+ const { buildProgram } = await import("./program-OKa0btqV.js").then((n) => n.t);
180
180
  const program = buildProgram();
181
181
  installUnhandledRejectionHandler();
182
182
  process$1.on("uncaughtException", (error) => {
@@ -213,7 +213,7 @@ async function runCli(argv = process$1.argv) {
213
213
  }
214
214
  const primary = getPrimaryCommand(parseArgv);
215
215
  if (primary) {
216
- const { registerSubCliByName } = await import("./register.subclis-iJp9f-iU.js").then((n) => n.i);
216
+ const { registerSubCliByName } = await import("./register.subclis-BAak9TQd.js").then((n) => n.i);
217
217
  await registerSubCliByName(program, primary);
218
218
  }
219
219
  if (!!primary && PLUGIN_CLI_COMMANDS.has(primary)) {
@@ -6411,6 +6411,7 @@ var CaCompositor = class {
6411
6411
  this.srcH = 0;
6412
6412
  this.disposed = false;
6413
6413
  this.stepping = false;
6414
+ this.audioTarget = 0;
6414
6415
  this.device = device;
6415
6416
  this.width = Math.max(16, width | 0);
6416
6417
  this.height = Math.max(16, height | 0);
@@ -6568,7 +6569,7 @@ var CaCompositor = class {
6568
6569
  }
6569
6570
  /** Mic level 0..1 — the canvas breathes with the room. */
6570
6571
  setAudioLevel(level) {
6571
- this.params[8] = Math.max(0, Math.min(1, level));
6572
+ this.audioTarget = Math.max(0, Math.min(1, level));
6572
6573
  }
6573
6574
  setReserveBottomPx(px) {
6574
6575
  this.params[11] = Math.max(0, px);
@@ -6583,6 +6584,9 @@ var CaCompositor = class {
6583
6584
  try {
6584
6585
  this.params[4] = t;
6585
6586
  this.params[5] = dt;
6587
+ const cur = this.params[8];
6588
+ const k = this.audioTarget > cur ? .5 : .05;
6589
+ this.params[8] = cur + (this.audioTarget - cur) * k;
6586
6590
  this.device.queue.writeBuffer(this.paramsBuf, 0, this.params);
6587
6591
  const cells = this.width * this.height;
6588
6592
  const slot = this.frameIndex % IN_FLIGHT;
@@ -52,7 +52,7 @@ import "./systemd-fjt-WYE7.js";
52
52
  import "./diagnostics-DPRvn_ky.js";
53
53
  import "./daemon-runtime-CtqjzJUQ.js";
54
54
  import "./ensure-local-gateway-nFYv6_lI.js";
55
- import { t as runTui } from "./tui-GHHAepyB.js";
55
+ import { t as runTui } from "./tui-Ca4kj3q0.js";
56
56
  import "./graphics-protocol-K_Nx2CZD.js";
57
57
 
58
58
  //#region src/cli/tui-cli.ts
@@ -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-Bqs8eIiH.js";
97
- import "./register.subclis-iJp9f-iU.js";
96
+ import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-Ba368N2l.js";
97
+ import "./register.subclis-BAak9TQd.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-CtqjzJUQ.js";
101
101
  import "./systemd-linger-T7_vGBN4.js";
102
102
  import "./auth-health-DydWZ4Iy.js";
103
- import { t as doctorCommand } from "./doctor-CCLm_9dC.js";
104
- import { r as installCompletion } from "./completion-cli-ChesF99M.js";
103
+ import { t as doctorCommand } from "./doctor-BMQsEOap.js";
104
+ import { r as installCompletion } from "./completion-cli-BfbWBQHn.js";
105
105
  import "./service-audit-ESoCtKKk.js";
106
106
  import "./shared-C1BN86q0.js";
107
107
  import { r as runDaemonRestart } from "./daemon-cli-04psvNsg.js";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/bluebubbles",
3
- "version": "2026.3.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.397
4
+
5
+ ### Changes
6
+ - Version alignment with core SKYKOI release numbers.
7
+
3
8
  ## 2026.3.396
4
9
 
5
10
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/matrix",
3
- "version": "2026.3.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.397
4
+
5
+ ### Changes
6
+ - Version alignment with core SKYKOI release numbers.
7
+
3
8
  ## 2026.3.396
4
9
 
5
10
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/msteams",
3
- "version": "2026.3.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.397
4
+
5
+ ### Changes
6
+ - Version alignment with core SKYKOI release numbers.
7
+
3
8
  ## 2026.3.396
4
9
 
5
10
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/nostr",
3
- "version": "2026.3.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.397
4
+
5
+ ### Changes
6
+ - Version alignment with core SKYKOI release numbers.
7
+
3
8
  ## 2026.3.396
4
9
 
5
10
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/twitch",
3
- "version": "2026.3.396",
3
+ "version": "2026.3.397",
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.397
4
+
5
+ ### Changes
6
+ - Version alignment with core SKYKOI release numbers.
7
+
3
8
  ## 2026.3.396
4
9
 
5
10
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/voice-call",
3
- "version": "2026.3.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
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.397
4
+
5
+ ### Changes
6
+ - Version alignment with core SKYKOI release numbers.
7
+
3
8
  ## 2026.3.396
4
9
 
5
10
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/zalo",
3
- "version": "2026.3.396",
3
+ "version": "2026.3.397",
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.397
4
+
5
+ ### Changes
6
+ - Version alignment with core SKYKOI release numbers.
7
+
3
8
  ## 2026.3.396
4
9
 
5
10
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@SKYKOI/zalouser",
3
- "version": "2026.3.396",
3
+ "version": "2026.3.397",
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.396",
3
+ "version": "2026.3.397",
4
4
  "description": "SkyKoi — Koi runtime. Multi-channel gateway CLI with RPC Koi.",
5
5
  "keywords": [
6
6
  "cli",