skykoi 2026.3.373 → 2026.3.374

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 (99) hide show
  1. package/dist/{archive-Bj2p-79H.js → archive-B3eMefRa.js} +1 -1
  2. package/dist/{audit-BhMw948Z.js → audit--3nZ378U.js} +3 -3
  3. package/dist/build-info.json +2 -2
  4. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  5. package/dist/{capture-service-BUaVOQ09.js → capture-service-c4LFLVLD.js} +9 -55
  6. package/dist/capture-store-CW4hVLPX.js +66 -0
  7. package/dist/{channel-auth-DrJ2FCUT.js → channel-auth-Bu3z5Shg.js} +1 -1
  8. package/dist/{channel-options-VfVJiRRg.js → channel-options-DAkRGG8X.js} +1 -1
  9. package/dist/{channel-summary-Bpd0YaF9.js → channel-summary-BtotMHWQ.js} +2 -2
  10. package/dist/{channels-cli-CYv7DDQ1.js → channels-cli-DbBQzBzA.js} +21 -21
  11. package/dist/cli/daemon-cli.js +1 -1
  12. package/dist/{cli-BE2UgmTz.js → cli-Dnh2IunR.js} +13 -13
  13. package/dist/{completion-cli-DMgIYPVL.js → completion-cli-DeQHSQKl.js} +1 -1
  14. package/dist/{config-guard-DrUTOlA5.js → config-guard-r91G-rdb.js} +17 -17
  15. package/dist/{configure-CE4CeiSX.js → configure-D9DlCvVy.js} +3 -3
  16. package/dist/{daemon-cli-Bv1dM5OP.js → daemon-cli-v5-R4zAv.js} +2 -2
  17. package/dist/{deliver-DJbxwsAM.js → deliver-DOHMG5Rz.js} +2 -2
  18. package/dist/{deps-C8PLCWEI.js → deps-C40AV7FF.js} +2 -2
  19. package/dist/{dist-BYg0IiMA.js → dist-B0taJfp8.js} +2 -2
  20. package/dist/{docs-cli-r0Lv1ZYz.js → docs-cli-CHKUuL2d.js} +2 -2
  21. package/dist/{doctor-B6w-zdcx.js → doctor-1TF44mR_.js} +6 -6
  22. package/dist/{doctor-completion-BHiJpkXk.js → doctor-completion-ahDb_IAk.js} +1 -1
  23. package/dist/entry.js +1 -1
  24. package/dist/{exec-approvals-cli-BNKVs16y.js → exec-approvals-cli-C05rnH9F.js} +2 -2
  25. package/dist/extension-api.js +13 -13
  26. package/dist/{gateway-cli-Bl-eCOTH.js → gateway-cli-CIJ-Jgx4.js} +47 -47
  27. package/dist/{github-copilot-auth-CC5iiGnb.js → github-copilot-auth-CAM7sDl5.js} +1 -1
  28. package/dist/{gmail-setup-utils-DI2DjT9y.js → gmail-setup-utils-B6W2qrNw.js} +1 -1
  29. package/dist/{health-format-C9uU6WwH.js → health-format-1k8pCgq2.js} +4 -4
  30. package/dist/{hooks-cli-SH9jAT5s.js → hooks-cli-qBcTlRwr.js} +16 -16
  31. package/dist/{hooks-status-B0H9mn8K.js → hooks-status-BDYS1g53.js} +1 -1
  32. package/dist/{image-CZ_X0a5U.js → image-C3E9B7uU.js} +2 -2
  33. package/dist/index.js +37 -37
  34. package/dist/{installs-DdK63Boa.js → installs-BJYE96Lb.js} +1 -1
  35. package/dist/{koi-Le4rWg9S.js → koi-BZaNuNu7.js} +7 -7
  36. package/dist/{login-C71-L2cR.js → login-Cjb8NlG3.js} +1 -1
  37. package/dist/{login-qr-CFZIqrOV.js → login-qr-Zk90haay.js} +3 -3
  38. package/dist/{logs-cli-CNHbspO1.js → logs-cli-BCrmp8yo.js} +1 -1
  39. package/dist/{message-0gwe6UQ4.js → message-C-Jhw-K2.js} +2 -2
  40. package/dist/{models-cli-Dv0tIQc8.js → models-cli-CLwvmF5F.js} +14 -14
  41. package/dist/{node-cli-BH74iN-U.js → node-cli-CZMWmnHC.js} +2 -2
  42. package/dist/{nodes-cli-pjuHjNxb.js → nodes-cli-DwqW2k2v.js} +1 -1
  43. package/dist/{onboard-channels-CS45wjQu.js → onboard-channels-BjveHxG_.js} +2 -2
  44. package/dist/{onboard-skills-DuxX2hY-.js → onboard-skills-pW0A8mDR.js} +6 -6
  45. package/dist/{onboarding-CZEgUWTi.js → onboarding-DtFQKsiq.js} +12 -12
  46. package/dist/{pi-embedded-helpers-VJ9hOBTv.js → pi-embedded-helpers-BMPkPwKV.js} +1 -1
  47. package/dist/{pi-model-discovery-1FYyRpLv.js → pi-model-discovery-FK8jErRV.js} +1 -1
  48. package/dist/{pi-tools.policy-DXLhV6cY.js → pi-tools.policy-BSGwpKU_.js} +1 -1
  49. package/dist/{plugin-registry-Hry9auEE.js → plugin-registry-Ck8UGGLF.js} +1 -1
  50. package/dist/plugin-sdk/capture/proactive-eval.d.ts +3 -0
  51. package/dist/plugin-sdk/index.js +7 -7
  52. package/dist/{plugins-cli-B_R3TPF0.js → plugins-cli-BmnU4zO0.js} +17 -17
  53. package/dist/proactive-eval-tdXZlkTF.js +265 -0
  54. package/dist/{program-BKYcy1lf.js → program-BzgFh3Jk.js} +5 -5
  55. package/dist/{register.subclis-DNT-_-qG.js → register.subclis-C25mLHRU.js} +29 -29
  56. package/dist/{reply-rKcIyQdm.js → reply-BZDAeRWS.js} +21 -21
  57. package/dist/{run-code-tool-D74Nw_Bq.js → run-code-tool-DgaptjNR.js} +1 -1
  58. package/dist/{run-main-BXgf5BJ3.js → run-main-C0vdUtdQ.js} +41 -41
  59. package/dist/{sandbox-o5syhP4X.js → sandbox-Cboj7RQq.js} +2 -2
  60. package/dist/{sandbox-cli--yqf6YWR.js → sandbox-cli-BoG9q8K8.js} +4 -4
  61. package/dist/{security-cli-uhnLz-Ja.js → security-cli-CsNo3tNp.js} +6 -6
  62. package/dist/{server-node-events-B3TutR12.js → server-node-events-WMJod-Kq.js} +16 -16
  63. package/dist/{sessions-Cz4LlZH7.js → sessions-Bx2VARI1.js} +1 -1
  64. package/dist/{skills-BQWFFLxf.js → skills-Dh0SDBuy.js} +1 -1
  65. package/dist/{skills-cli-Dt8ELJM1.js → skills-cli-CAXNWDve.js} +3 -3
  66. package/dist/{skills-status-DakSfN8r.js → skills-status-zrpOQ6N9.js} +2 -2
  67. package/dist/{status--_s7mO8h.js → status-TNpgkQma.js} +1 -1
  68. package/dist/{system-prompt-snippet-FxPx8VEt.js → system-prompt-snippet-DxhEuu4G.js} +1 -1
  69. package/dist/{tui-C8LwqY_j.js → tui-BJ7QDpZm.js} +4 -4
  70. package/dist/{tui-cli-YO24Pqdj.js → tui-cli-KHXEdWJ7.js} +7 -7
  71. package/dist/{update-C-k5x5eP.js → update-JQD9EQfX.js} +1 -1
  72. package/dist/{update-cli-DRADaP5z.js → update-cli-DJvQzPMV.js} +25 -25
  73. package/dist/{webhooks-cli-YtxhryoY.js → webhooks-cli-COnzIihM.js} +3 -3
  74. package/package.json +1 -1
  75. /package/dist/{acp-cli-C7nH-mUZ.js → acp-cli-BV955-GX.js} +0 -0
  76. /package/dist/{capture-cli-Cv-YBHjt.js → capture-cli-ClZem-s-.js} +0 -0
  77. /package/dist/{cli-auto-update-BSNWMzZE.js → cli-auto-update-BcTBKikF.js} +0 -0
  78. /package/dist/{companions-CKOThEgi.js → companions-yGGfCit3.js} +0 -0
  79. /package/dist/{cron-cli-DzmymUA7.js → cron-cli-BmfGLNRg.js} +0 -0
  80. /package/dist/{declarations-txVRgjnT.js → declarations-B_Cov-W-.js} +0 -0
  81. /package/dist/{devices-cli-a6-CLK54.js → devices-cli-BVkazJ4w.js} +0 -0
  82. /package/dist/{directory-cli-DPAYFy8b.js → directory-cli-DcARszmY.js} +0 -0
  83. /package/dist/{dns-cli-BobgWXsc.js → dns-cli-BUdTrB_Z.js} +0 -0
  84. /package/dist/{first-run-Bb6RNHap.js → first-run-Clv7YnAC.js} +0 -0
  85. /package/dist/{koi-event-bridge-CTX2a4P-.js → koi-event-bridge-BWU_Rwh9.js} +0 -0
  86. /package/dist/{koi-utterance-trigger-D66MHqif.js → koi-utterance-trigger-DujDdolf.js} +0 -0
  87. /package/dist/{live-broadcast-B6skCJhb.js → live-broadcast-4WHT3Ttd.js} +0 -0
  88. /package/dist/{pairing-cli-DPrJbN-i.js → pairing-cli-YCG-zMZV.js} +0 -0
  89. /package/dist/{parse-log-line-cWE1HOyo.js → parse-log-line-BOe9IEjO.js} +0 -0
  90. /package/dist/{permissions-cli-BYFx1IyL.js → permissions-cli-DIjlNmoA.js} +0 -0
  91. /package/dist/{qmd-manager-CdAsstkR.js → qmd-manager-C4GhIhEk.js} +0 -0
  92. /package/dist/{readiness-IQ3DZmUE.js → readiness-CV3vZbo6.js} +0 -0
  93. /package/dist/{rpc-b0oa4lBw.js → rpc-fRk3LjKi.js} +0 -0
  94. /package/dist/{runner-F6kH3AsJ.js → runner-BKZKGx9n.js} +0 -0
  95. /package/dist/{shared-Dn4Lf8u-.js → shared-BJlh4CKo.js} +0 -0
  96. /package/dist/{shared-DNbcd3wi.js → shared-CwLJrrHf.js} +0 -0
  97. /package/dist/{status-BLjOBDvD.js → status-BN46BKoK.js} +0 -0
  98. /package/dist/{system-cli-B3fxMt3N.js → system-cli-QvhzOcHc.js} +0 -0
  99. /package/dist/{ws-log--YWgaGe1.js → ws-log-C9-8BLr6.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "./chunk-D_gEzPfs.js";
2
- import { mt as require_inherits } from "./reply-rKcIyQdm.js";
2
+ import { mt as require_inherits } from "./reply-BZDAeRWS.js";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs/promises";
5
5
  import * as tar from "tar";
@@ -6,15 +6,15 @@ import { t as formatCliCommand } from "./command-format-DOYW_19_.js";
6
6
  import { O as INCLUDE_KEY, a as createConfigIO, k as MAX_INCLUDE_DEPTH } from "./config-BFoj5wyy.js";
7
7
  import { a as MANIFEST_KEY } from "./manifest-registry-DEGu_o5t.js";
8
8
  import { n as listChannelPlugins } from "./plugins-BXfIVhTg.js";
9
- import { d as resolveSandboxToolPolicyForKoi, l as resolveSandboxConfigForKoi } from "./sandbox-o5syhP4X.js";
9
+ import { d as resolveSandboxToolPolicyForKoi, l as resolveSandboxConfigForKoi } from "./sandbox-Cboj7RQq.js";
10
10
  import { s as resolveToolProfilePolicy } from "./tool-policy-D7sC9oiD.js";
11
- import { i as loadWorkspaceSkillEntries } from "./skills-BQWFFLxf.js";
11
+ import { i as loadWorkspaceSkillEntries } from "./skills-Dh0SDBuy.js";
12
12
  import { i as resolveBrowserConfig, o as resolveProfile } from "./server-context-Co6-risd.js";
13
13
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-CaDAAMe0.js";
14
14
  import { n as GatewayClient } from "./client-QUeLEngh.js";
15
15
  import { t as buildGatewayConnectionDetails } from "./call-C9iXIbXI.js";
16
16
  import { i as readChannelAllowFromStore } from "./pairing-store-DtLK_KGs.js";
17
- import { c as resolveNativeSkillsEnabled, n as isToolAllowedByPolicies, s as resolveNativeCommandsEnabled } from "./pi-tools.policy-DXLhV6cY.js";
17
+ import { c as resolveNativeSkillsEnabled, n as isToolAllowedByPolicies, s as resolveNativeCommandsEnabled } from "./pi-tools.policy-BSGwpKU_.js";
18
18
  import { t as resolveChannelDefaultAccountId } from "./helpers-y1KKH5pe.js";
19
19
  import { t as scanDirectoryWithSummary } from "./skill-scanner-CBHxr1An.js";
20
20
  import { i as resolveGatewayAuth } from "./auth-Vh115fQN.js";
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.3.373",
2
+ "version": "2026.3.374",
3
3
  "commit": "4bd60b7c1b294bb24b257d2f381ec929031df39c",
4
- "builtAt": "2026-06-25T10:27:01.244Z"
4
+ "builtAt": "2026-06-25T19:15:29.564Z"
5
5
  }
@@ -1 +1 @@
1
- 88bce5e34001d49b50c4ce2622da918652c46f88a502256ce9db22248993b0b8
1
+ 4454242969ea3dda6b91dc838452afac20837a61a0ded3f366d2c6668cf546d4
@@ -1,4 +1,5 @@
1
- import { appendFileSync, closeSync, copyFileSync, createReadStream, existsSync, mkdirSync, openSync, readFileSync, readSync, statSync, unlinkSync, watch, writeFileSync } from "node:fs";
1
+ import { i as pushCaptureEvent, n as flushToDisk, r as getAllEvents, t as drainEvents } from "./capture-store-CW4hVLPX.js";
2
+ import { closeSync, copyFileSync, createReadStream, existsSync, openSync, readFileSync, readSync, statSync, unlinkSync, watch, writeFileSync } from "node:fs";
2
3
  import { dirname, extname, join, relative } from "node:path";
3
4
  import { homedir } from "node:os";
4
5
  import { execFile, execFileSync, execSync, spawn } from "node:child_process";
@@ -162,60 +163,6 @@ function captureTerminalDiffs(previous, current) {
162
163
  };
163
164
  }
164
165
 
165
- //#endregion
166
- //#region src/capture/capture-store.ts
167
- /**
168
- * Capture event store.
169
- *
170
- * Unbounded in-memory buffer that accumulates ALL events between koi turns.
171
- * On each turn, `drainEvents()` returns everything and resets the buffer.
172
- * Events are also flushed to disk periodically for historical queries.
173
- */
174
- const MAX_DISK_BYTES = 10 * 1024 * 1024;
175
- const STORE_DIR = join(homedir(), ".skykoi", "capture");
176
- let events = [];
177
- let flushedUpTo = 0;
178
- let initialized = false;
179
- function ensureDir() {
180
- if (initialized) return;
181
- try {
182
- mkdirSync(STORE_DIR, { recursive: true });
183
- } catch {}
184
- initialized = true;
185
- }
186
- function pushCaptureEvent(event) {
187
- events.push(event);
188
- }
189
- /**
190
- * Drain: return all events and clear the buffer.
191
- * Called after injecting into a koi turn so the next turn starts fresh.
192
- */
193
- function drainEvents() {
194
- const out = events;
195
- events = [];
196
- flushedUpTo = 0;
197
- return out;
198
- }
199
- /**
200
- * Flush new events to disk (append-only, does NOT clear the in-memory buffer).
201
- */
202
- function flushToDisk() {
203
- if (events.length === 0 || flushedUpTo >= events.length) return;
204
- ensureDir();
205
- const file = join(STORE_DIR, `${(/* @__PURE__ */ new Date()).toISOString().slice(0, 10)}.jsonl`);
206
- try {
207
- const toFlush = events.slice(flushedUpTo);
208
- flushedUpTo = events.length;
209
- appendFileSync(file, toFlush.map((e) => JSON.stringify(e)).join("\n") + "\n");
210
- try {
211
- if (statSync(file).size > MAX_DISK_BYTES) {
212
- const allLines = readFileSync(file, "utf8").trim().split("\n");
213
- writeFileSync(file, allLines.slice(-Math.floor(allLines.length / 2)).join("\n") + "\n");
214
- }
215
- } catch {}
216
- } catch {}
217
- }
218
-
219
166
  //#endregion
220
167
  //#region src/capture/input-capture.ts
221
168
  /**
@@ -2103,6 +2050,13 @@ async function startCaptureService(opts) {
2103
2050
  } catch (err) {
2104
2051
  console.error(`[capture] Audio capture failed to start: ${err}`);
2105
2052
  }
2053
+ try {
2054
+ const { startProactiveEval } = await import("./proactive-eval-tdXZlkTF.js");
2055
+ const proactiveHandle = startProactiveEval();
2056
+ stops.push(proactiveHandle.stop);
2057
+ } catch (err) {
2058
+ console.error(`[capture] Proactive eval failed to start: ${err}`);
2059
+ }
2106
2060
  const flushTimer = setInterval(() => {
2107
2061
  if (!stopped) flushToDisk();
2108
2062
  }, FLUSH_INTERVAL_MS);
@@ -0,0 +1,66 @@
1
+ import { appendFileSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { homedir } from "node:os";
4
+
5
+ //#region src/capture/capture-store.ts
6
+ /**
7
+ * Capture event store.
8
+ *
9
+ * Unbounded in-memory buffer that accumulates ALL events between koi turns.
10
+ * On each turn, `drainEvents()` returns everything and resets the buffer.
11
+ * Events are also flushed to disk periodically for historical queries.
12
+ */
13
+ const MAX_DISK_BYTES = 10 * 1024 * 1024;
14
+ const STORE_DIR = join(homedir(), ".skykoi", "capture");
15
+ let events = [];
16
+ let flushedUpTo = 0;
17
+ let initialized = false;
18
+ function ensureDir() {
19
+ if (initialized) return;
20
+ try {
21
+ mkdirSync(STORE_DIR, { recursive: true });
22
+ } catch {}
23
+ initialized = true;
24
+ }
25
+ function pushCaptureEvent(event) {
26
+ events.push(event);
27
+ }
28
+ /**
29
+ * Get ALL events accumulated since the last drain (i.e. since the last koi turn).
30
+ * Returns oldest-first (chronological).
31
+ */
32
+ function getAllEvents() {
33
+ return events.slice();
34
+ }
35
+ /**
36
+ * Drain: return all events and clear the buffer.
37
+ * Called after injecting into a koi turn so the next turn starts fresh.
38
+ */
39
+ function drainEvents() {
40
+ const out = events;
41
+ events = [];
42
+ flushedUpTo = 0;
43
+ return out;
44
+ }
45
+ /**
46
+ * Flush new events to disk (append-only, does NOT clear the in-memory buffer).
47
+ */
48
+ function flushToDisk() {
49
+ if (events.length === 0 || flushedUpTo >= events.length) return;
50
+ ensureDir();
51
+ const file = join(STORE_DIR, `${(/* @__PURE__ */ new Date()).toISOString().slice(0, 10)}.jsonl`);
52
+ try {
53
+ const toFlush = events.slice(flushedUpTo);
54
+ flushedUpTo = events.length;
55
+ appendFileSync(file, toFlush.map((e) => JSON.stringify(e)).join("\n") + "\n");
56
+ try {
57
+ if (statSync(file).size > MAX_DISK_BYTES) {
58
+ const allLines = readFileSync(file, "utf8").trim().split("\n");
59
+ writeFileSync(file, allLines.slice(-Math.floor(allLines.length / 2)).join("\n") + "\n");
60
+ }
61
+ } catch {}
62
+ } catch {}
63
+ }
64
+
65
+ //#endregion
66
+ export { pushCaptureEvent as i, flushToDisk as n, getAllEvents as r, drainEvents as t };
@@ -2,7 +2,7 @@ import { b as success, f as danger, k as DEFAULT_CHAT_CHANNEL, p as info, s as d
2
2
  import { o as loadConfig } from "./config-BFoj5wyy.js";
3
3
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BXfIVhTg.js";
4
4
  import { d as webAuthExists, n as resolveWhatsAppAccount, s as readWebSelfId } from "./accounts-DFSZwaCs.js";
5
- import { C as sendMessage$1, S as resolveNylasConfig, T as writeNylasGrant, _ as nylasLinked, g as nylasConfigured, l as DEFAULT_NYLAS_API_URI, t as sendMessage, x as readNylasGrant } from "./message-0gwe6UQ4.js";
5
+ import { C as sendMessage$1, S as resolveNylasConfig, T as writeNylasGrant, _ as nylasLinked, g as nylasConfigured, l as DEFAULT_NYLAS_API_URI, t as sendMessage, x as readNylasGrant } from "./message-C-Jhw-K2.js";
6
6
  import { t as resolveChannelDefaultAccountId } from "./helpers-y1KKH5pe.js";
7
7
  import { t as ensureLocalGatewayRunning } from "./ensure-local-gateway-VbJtdpui.js";
8
8
  import process from "node:process";
@@ -2,7 +2,7 @@ import { O as CHAT_CHANNEL_ORDER } from "./subsystem-hATE68va.js";
2
2
  import { t as isTruthyEnvValue } from "./env-ChCKTuXK.js";
3
3
  import { n as listChannelPlugins } from "./plugins-BXfIVhTg.js";
4
4
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-Cg3LRidd.js";
5
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Hry9auEE.js";
5
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Ck8UGGLF.js";
6
6
 
7
7
  //#region src/cli/channel-options.ts
8
8
  function dedupe(values) {
@@ -1,11 +1,11 @@
1
- import { L as listThinkingLevels, m as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-VJ9hOBTv.js";
1
+ import { L as listThinkingLevels, m as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-BMPkPwKV.js";
2
2
  import { L as getActivePluginRegistry } from "./subsystem-hATE68va.js";
3
3
  import { r as theme } from "./theme-C5EwWDWE.js";
4
4
  import { t as DEFAULT_ACCOUNT_ID } from "./session-key-B2OXLVi_.js";
5
5
  import { St as DEFAULT_PROVIDER, d as resolveConfiguredModelRef, xt as DEFAULT_MODEL } from "./model-selection-B8ZAcQCt.js";
6
6
  import { o as loadConfig } from "./config-BFoj5wyy.js";
7
7
  import { n as listChannelPlugins } from "./plugins-BXfIVhTg.js";
8
- import { I as listChannelDocks } from "./sessions-Cz4LlZH7.js";
8
+ import { I as listChannelDocks } from "./sessions-Bx2VARI1.js";
9
9
  import { n as SILENT_REPLY_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-9rhTb1EM.js";
10
10
  import { n as formatTokenCount } from "./usage-format-16I7JWKr.js";
11
11
  import { createRequire } from "node:module";
@@ -1,5 +1,5 @@
1
- import "./pi-embedded-helpers-VJ9hOBTv.js";
2
- import { Gt as parseDiscordTarget, Kt as fetchChannelPermissionsDiscord, in as createSlackWebClient, lt as loadProviderUsageSummary, ut as formatUsageReportLines } from "./reply-rKcIyQdm.js";
1
+ import "./pi-embedded-helpers-BMPkPwKV.js";
2
+ import { Gt as parseDiscordTarget, Kt as fetchChannelPermissionsDiscord, in as createSlackWebClient, lt as loadProviderUsageSummary, ut as formatUsageReportLines } from "./reply-BZDAeRWS.js";
3
3
  import { f as danger, s as defaultRuntime, w as getResolvedLoggerSettings } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { r as theme } from "./theme-C5EwWDWE.js";
@@ -20,16 +20,16 @@ import "./version-BKRSzdyx.js";
20
20
  import { c as readConfigFileSnapshot, o as loadConfig, u as writeConfigFile } from "./config-BFoj5wyy.js";
21
21
  import "./manifest-registry-DEGu_o5t.js";
22
22
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BXfIVhTg.js";
23
- import "./sessions-Cz4LlZH7.js";
24
- import "./image-CZ_X0a5U.js";
25
- import "./dist-BYg0IiMA.js";
23
+ import "./sessions-Bx2VARI1.js";
24
+ import "./image-C3E9B7uU.js";
25
+ import "./dist-B0taJfp8.js";
26
26
  import "./lib-pS0Bd7GL.js";
27
27
  import "./src-ByySp9O0.js";
28
28
  import "./core-B7QS0Vnt.js";
29
- import "./pi-model-discovery-1FYyRpLv.js";
30
- import "./sandbox-o5syhP4X.js";
29
+ import "./pi-model-discovery-FK8jErRV.js";
30
+ import "./sandbox-Cboj7RQq.js";
31
31
  import "./chrome-Dw_3cCvP.js";
32
- import "./skills-BQWFFLxf.js";
32
+ import "./skills-Dh0SDBuy.js";
33
33
  import "./routes-rN1UjOYR.js";
34
34
  import "./server-context-Co6-risd.js";
35
35
  import "./image-ops-DQULvF-U.js";
@@ -40,7 +40,7 @@ import "./paths-DLKQOevr.js";
40
40
  import "./tool-images-BqeQexfA.js";
41
41
  import "./redact-1AXapBET.js";
42
42
  import "./tool-display-DYOxwSs6.js";
43
- import "./deliver-DJbxwsAM.js";
43
+ import "./deliver-DOHMG5Rz.js";
44
44
  import "./dispatcher-D2EwEyDs.js";
45
45
  import "./dist-Byt8U32D.js";
46
46
  import "./pi-tool-definition-adapter-CgLxQsZ_.js";
@@ -48,9 +48,9 @@ import "./manager-D9gyRViO.js";
48
48
  import "./sqlite-BNq8OiKY.js";
49
49
  import "./warnings-ZtUGH1-N.js";
50
50
  import "./proxy-from-env-BnenCgWg.js";
51
- import "./login-qr-CFZIqrOV.js";
52
- import "./message-0gwe6UQ4.js";
53
- import { n as formatAge } from "./channel-summary-Bpd0YaF9.js";
51
+ import "./login-qr-Zk90haay.js";
52
+ import "./message-C-Jhw-K2.js";
53
+ import { n as formatAge } from "./channel-summary-BtotMHWQ.js";
54
54
  import "./device-identity-BZ8FfIMK.js";
55
55
  import "./client-QUeLEngh.js";
56
56
  import { n as callGateway } from "./call-C9iXIbXI.js";
@@ -60,7 +60,7 @@ import { t as formatDocsLink } from "./links-B0HTM-CT.js";
60
60
  import { n as runCommandWithRuntime } from "./cli-utils-CwUbbnsD.js";
61
61
  import { n as withProgress } from "./progress-BPDEiFpj.js";
62
62
  import "./node-pairing-DxF2w-Rz.js";
63
- import "./pi-tools.policy-DXLhV6cY.js";
63
+ import "./pi-tools.policy-BSGwpKU_.js";
64
64
  import "./onboard-helpers-DKhundDe.js";
65
65
  import "./prompt-style-e5zz5JM8.js";
66
66
  import "./pairing-labels-COEL5-l6.js";
@@ -73,22 +73,22 @@ import "./event-log-BJRHlOn8.js";
73
73
  import { t as resolveChannelDefaultAccountId } from "./helpers-y1KKH5pe.js";
74
74
  import "./note-DRoVRuAi.js";
75
75
  import { t as createClackPrompter } from "./clack-prompter-B9o3eQeW.js";
76
- import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-CS45wjQu.js";
76
+ import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-BjveHxG_.js";
77
77
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-Cg3LRidd.js";
78
- import "./archive-Bj2p-79H.js";
78
+ import "./archive-B3eMefRa.js";
79
79
  import "./skill-scanner-CBHxr1An.js";
80
- import "./installs-DdK63Boa.js";
80
+ import "./installs-BJYE96Lb.js";
81
81
  import "./service-BGkVTESM.js";
82
82
  import "./systemd-BzTSelz8.js";
83
83
  import "./diagnostics-CFV2YxpG.js";
84
84
  import { t as collectChannelStatusIssues } from "./channels-status-issues-BLygTpUh.js";
85
- import { n as hasExplicitOptions } from "./plugin-registry-Hry9auEE.js";
85
+ import { n as hasExplicitOptions } from "./plugin-registry-Ck8UGGLF.js";
86
86
  import "./daemon-runtime-r19-i0S0.js";
87
87
  import "./ensure-local-gateway-VbJtdpui.js";
88
- import { n as runChannelLoginAll, r as runChannelLogout, t as runChannelLogin } from "./channel-auth-DrJ2FCUT.js";
89
- import { t as formatCliChannelOptions } from "./channel-options-VfVJiRRg.js";
90
- import { t as buildChannelAccountSnapshot } from "./status-BLjOBDvD.js";
91
- import { t as parseLogLine } from "./parse-log-line-cWE1HOyo.js";
88
+ import { n as runChannelLoginAll, r as runChannelLogout, t as runChannelLogin } from "./channel-auth-Bu3z5Shg.js";
89
+ import { t as formatCliChannelOptions } from "./channel-options-DAkRGG8X.js";
90
+ import { t as buildChannelAccountSnapshot } from "./status-BN46BKoK.js";
91
+ import { t as parseLogLine } from "./parse-log-line-BOe9IEjO.js";
92
92
  import fs from "node:fs/promises";
93
93
 
94
94
  //#region src/commands/channels/add-mutators.ts
@@ -1,2 +1,2 @@
1
1
  // Legacy shim for pre-tsdown update-cli imports.
2
- export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-Bv1dM5OP.js";
2
+ export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-v5-R4zAv.js";
@@ -1,5 +1,5 @@
1
- import "./pi-embedded-helpers-VJ9hOBTv.js";
2
- import { ct as loadSKYKOIPlugins } from "./reply-rKcIyQdm.js";
1
+ import "./pi-embedded-helpers-BMPkPwKV.js";
2
+ import { ct as loadSKYKOIPlugins } from "./reply-BZDAeRWS.js";
3
3
  import { t as createSubsystemLogger } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./theme-C5EwWDWE.js";
@@ -18,16 +18,16 @@ import "./version-BKRSzdyx.js";
18
18
  import { o as loadConfig } from "./config-BFoj5wyy.js";
19
19
  import "./manifest-registry-DEGu_o5t.js";
20
20
  import "./plugins-BXfIVhTg.js";
21
- import "./sessions-Cz4LlZH7.js";
22
- import "./image-CZ_X0a5U.js";
23
- import "./dist-BYg0IiMA.js";
21
+ import "./sessions-Bx2VARI1.js";
22
+ import "./image-C3E9B7uU.js";
23
+ import "./dist-B0taJfp8.js";
24
24
  import "./lib-pS0Bd7GL.js";
25
25
  import "./src-ByySp9O0.js";
26
26
  import "./core-B7QS0Vnt.js";
27
- import "./pi-model-discovery-1FYyRpLv.js";
28
- import "./sandbox-o5syhP4X.js";
27
+ import "./pi-model-discovery-FK8jErRV.js";
28
+ import "./sandbox-Cboj7RQq.js";
29
29
  import "./chrome-Dw_3cCvP.js";
30
- import "./skills-BQWFFLxf.js";
30
+ import "./skills-Dh0SDBuy.js";
31
31
  import "./routes-rN1UjOYR.js";
32
32
  import "./server-context-Co6-risd.js";
33
33
  import "./image-ops-DQULvF-U.js";
@@ -38,7 +38,7 @@ import "./paths-DLKQOevr.js";
38
38
  import "./tool-images-BqeQexfA.js";
39
39
  import "./redact-1AXapBET.js";
40
40
  import "./tool-display-DYOxwSs6.js";
41
- import "./deliver-DJbxwsAM.js";
41
+ import "./deliver-DOHMG5Rz.js";
42
42
  import "./dispatcher-D2EwEyDs.js";
43
43
  import "./dist-Byt8U32D.js";
44
44
  import "./pi-tool-definition-adapter-CgLxQsZ_.js";
@@ -46,9 +46,9 @@ import "./manager-D9gyRViO.js";
46
46
  import "./sqlite-BNq8OiKY.js";
47
47
  import "./warnings-ZtUGH1-N.js";
48
48
  import "./proxy-from-env-BnenCgWg.js";
49
- import "./login-qr-CFZIqrOV.js";
50
- import "./message-0gwe6UQ4.js";
51
- import "./channel-summary-Bpd0YaF9.js";
49
+ import "./login-qr-Zk90haay.js";
50
+ import "./message-C-Jhw-K2.js";
51
+ import "./channel-summary-BtotMHWQ.js";
52
52
  import "./device-identity-BZ8FfIMK.js";
53
53
  import "./client-QUeLEngh.js";
54
54
  import "./call-C9iXIbXI.js";
@@ -57,7 +57,7 @@ import "./pairing-store-DtLK_KGs.js";
57
57
  import "./links-B0HTM-CT.js";
58
58
  import "./progress-BPDEiFpj.js";
59
59
  import "./node-pairing-DxF2w-Rz.js";
60
- import "./pi-tools.policy-DXLhV6cY.js";
60
+ import "./pi-tools.policy-BSGwpKU_.js";
61
61
  import "./onboard-helpers-DKhundDe.js";
62
62
  import "./prompt-style-e5zz5JM8.js";
63
63
  import "./pairing-labels-COEL5-l6.js";
@@ -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-DNT-_-qG.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-C25mLHRU.js";
4
4
  import path from "node:path";
5
5
  import os from "node:os";
6
6
  import fs from "node:fs/promises";
@@ -1,4 +1,4 @@
1
- import { B as CHANNEL_MESSAGE_ACTION_NAMES, Bn as lookupContextTokens, F as runMessageAction, Ot as registerMemoryCli, R as formatTargetDisplay, it as CHANNEL_TARGET_DESCRIPTION, kt as runMemoryStatus, rt as CHANNEL_TARGETS_DESCRIPTION } from "./reply-rKcIyQdm.js";
1
+ import { B as CHANNEL_MESSAGE_ACTION_NAMES, Bn as lookupContextTokens, F as runMessageAction, Ot as registerMemoryCli, R as formatTargetDisplay, it as CHANNEL_TARGET_DESCRIPTION, kt as runMemoryStatus, rt as CHANNEL_TARGETS_DESCRIPTION } from "./reply-BZDAeRWS.js";
2
2
  import { I as normalizeChatChannelId, M as getChatChannelMeta, c as restoreTerminalState, f as danger, k as DEFAULT_CHAT_CHANNEL, p as info, s as defaultRuntime, v as setVerbose } from "./subsystem-hATE68va.js";
3
3
  import { g as resolveStateDir, i as isNixMode, m as resolveOAuthDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
4
4
  import { n as isRich, r as theme, t as colorize } from "./theme-C5EwWDWE.js";
@@ -11,7 +11,7 @@ import { t as formatCliCommand } from "./command-format-DOYW_19_.js";
11
11
  import { t as parseBooleanValue } from "./boolean-D-3joTkO.js";
12
12
  import { D as applyLegacyMigrations, _ as parseDurationMs, a as createConfigIO, c as readConfigFileSnapshot, o as loadConfig, u as writeConfigFile } from "./config-BFoj5wyy.js";
13
13
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BXfIVhTg.js";
14
- import { i as loadSessionStore } from "./sessions-Cz4LlZH7.js";
14
+ import { i as loadSessionStore } from "./sessions-Bx2VARI1.js";
15
15
  import { n as movePathToTrash } from "./server-context-Co6-risd.js";
16
16
  import { h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES } from "./message-channel-CaDAAMe0.js";
17
17
  import { a as resolveSessionTranscriptsDirForKoi, i as resolveSessionTranscriptsDir, o as resolveStorePath } from "./paths-DLKQOevr.js";
@@ -21,32 +21,32 @@ import { n as runCommandWithRuntime } from "./cli-utils-CwUbbnsD.js";
21
21
  import { n as withProgress } from "./progress-BPDEiFpj.js";
22
22
  import { a as ensureWorkspaceAndSessions, c as handleReset, d as openUrl, h as resolveControlUiLinks, i as detectBrowserOpenSupport, l as moveToTrash, m as randomToken, n as applyWizardMetadata, o as formatControlUiSshHint, t as DEFAULT_WORKSPACE, v as waitForGatewayReachable } from "./onboard-helpers-DKhundDe.js";
23
23
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-e5zz5JM8.js";
24
- import { t as createDefaultDeps } from "./deps-C8PLCWEI.js";
24
+ import { t as createDefaultDeps } from "./deps-C40AV7FF.js";
25
25
  import { t as assertSupportedRuntime } from "./runtime-guard-C80qkv4W.js";
26
26
  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-CZEgUWTi.js";
31
- import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-DuxX2hY-.js";
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-CC5iiGnb.js";
33
- import { n as setupChannels } from "./onboard-channels-CS45wjQu.js";
34
- import { i as healthCommand } from "./health-format-C9uU6WwH.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-DtFQKsiq.js";
31
+ import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-pW0A8mDR.js";
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-CAM7sDl5.js";
33
+ import { n as setupChannels } from "./onboard-channels-BjveHxG_.js";
34
+ import { i as healthCommand } from "./health-format-1k8pCgq2.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-DNT-_-qG.js";
38
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-C25mLHRU.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";
42
- import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-Le4rWg9S.js";
43
- import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-Hry9auEE.js";
42
+ import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-BZaNuNu7.js";
43
+ import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-Ck8UGGLF.js";
44
44
  import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-BwzKU4J1.js";
45
- import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-CE4CeiSX.js";
45
+ import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-D9DlCvVy.js";
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
- import { t as loginCommand } from "./login-C71-L2cR.js";
49
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-B6w-zdcx.js";
48
+ import { t as loginCommand } from "./login-Cjb8NlG3.js";
49
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-1TF44mR_.js";
50
50
  import { fileURLToPath } from "node:url";
51
51
  import fs from "node:fs";
52
52
  import path from "node:path";
@@ -2797,7 +2797,7 @@ async function loadValidConfig() {
2797
2797
  }
2798
2798
  function registerConfigCli(program) {
2799
2799
  const cmd = program.command("config").description("Config helpers (get/set/unset). Run without subcommand for the wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.skykoi.com/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
2800
- const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-CE4CeiSX.js").then((n) => n.t);
2800
+ const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-D9DlCvVy.js").then((n) => n.t);
2801
2801
  const sections = Array.isArray(opts.section) ? opts.section.map((value) => typeof value === "string" ? value.trim() : "").filter(Boolean) : [];
2802
2802
  if (sections.length === 0) {
2803
2803
  await configureCommand(defaultRuntime);
@@ -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-C8LwqY_j.js").then((n) => n.n);
3108
+ const { runTui } = await import("./tui-BJ7QDpZm.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,
@@ -3130,7 +3130,7 @@ function registerLoginCommand(program) {
3130
3130
  }
3131
3131
  });
3132
3132
  program.command("whoami").description("Show the currently-logged-in SkyKoi account").action(async () => {
3133
- const { readAuthFile } = await import("./login-C71-L2cR.js").then((n) => n.n);
3133
+ const { readAuthFile } = await import("./login-Cjb8NlG3.js").then((n) => n.n);
3134
3134
  const auth = await readAuthFile();
3135
3135
  if (!auth) {
3136
3136
  console.log(theme.muted("Not logged in. Run `skykoi login`."));
@@ -14,9 +14,9 @@ import { n as logConfigUpdated } from "./logging-1Q_KlUsW.js";
14
14
  import { t as note$1 } from "./note-DRoVRuAi.js";
15
15
  import { t as WizardCancelledError } from "./prompts-yNyvMdpp.js";
16
16
  import { t as createClackPrompter } from "./clack-prompter-B9o3eQeW.js";
17
- import { a as applyModelFallbacksFromSelection, c as promptModelAllowlist, d as applyAuthChoice, h as promptAuthChoiceGrouped, i as applyModelAllowlist, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills } from "./onboard-skills-DuxX2hY-.js";
18
- import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-CS45wjQu.js";
19
- import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-C9uU6WwH.js";
17
+ import { a as applyModelFallbacksFromSelection, c as promptModelAllowlist, d as applyAuthChoice, h as promptAuthChoiceGrouped, i as applyModelAllowlist, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills } from "./onboard-skills-pW0A8mDR.js";
18
+ import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-BjveHxG_.js";
19
+ import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-1k8pCgq2.js";
20
20
  import { t as resolveGatewayService } from "./service-BGkVTESM.js";
21
21
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B0N-n2rD.js";
22
22
  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";
@@ -15,14 +15,14 @@ import { n as withProgress } from "./progress-BPDEiFpj.js";
15
15
  import { h as resolveControlUiLinks } from "./onboard-helpers-DKhundDe.js";
16
16
  import { n as isWSLEnv, t as isWSL } from "./wsl-DiiAe4Ci.js";
17
17
  import { d as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-BezzOOYJ.js";
18
- import { t as createDefaultDeps } from "./deps-C8PLCWEI.js";
18
+ import { t as createDefaultDeps } from "./deps-C40AV7FF.js";
19
19
  import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-BGkVTESM.js";
20
20
  import { r as isSystemdUserServiceAvailable } from "./systemd-BzTSelz8.js";
21
21
  import { t as readLastGatewayErrorLine } from "./diagnostics-CFV2YxpG.js";
22
22
  import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-r19-i0S0.js";
23
23
  import { n as renderSystemdUnavailableHints, t as isSystemdUnavailableDetail } from "./systemd-hints-CzaKNNI1.js";
24
24
  import { a as renderGatewayServiceCleanupHints, i as findExtraGatewayServices, n as auditGatewayServiceConfig } from "./service-audit-C3mNLBya.js";
25
- import { a as parsePortFromArgs, c as renderRuntimeHints, d as createNullWriter, f as emitDaemonActionJson, i as parsePort, l as safeDaemonEnv, n as formatRuntimeStatus, o as pickProbeHostForBind, r as normalizeListenerAddress, s as renderGatewayServiceStartHints, t as filterDaemonEnv, u as buildDaemonServiceSnapshot } from "./shared-Dn4Lf8u-.js";
25
+ import { a as parsePortFromArgs, c as renderRuntimeHints, d as createNullWriter, f as emitDaemonActionJson, i as parsePort, l as safeDaemonEnv, n as formatRuntimeStatus, o as pickProbeHostForBind, r as normalizeListenerAddress, s as renderGatewayServiceStartHints, t as filterDaemonEnv, u as buildDaemonServiceSnapshot } from "./shared-BJlh4CKo.js";
26
26
 
27
27
  //#region src/cli/daemon-cli/install.ts
28
28
  async function runDaemonInstall(opts) {
@@ -1,11 +1,11 @@
1
1
  import { o as __toESM, r as __exportAll, t as __commonJSMin } from "./chunk-D_gEzPfs.js";
2
- import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-VJ9hOBTv.js";
2
+ import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-BMPkPwKV.js";
3
3
  import { L as getActivePluginRegistry, g as logVerbose, y as shouldLogVerbose } from "./subsystem-hATE68va.js";
4
4
  import { c as normalizeAccountId$1 } from "./session-key-B2OXLVi_.js";
5
5
  import { h as resolveUserPath } from "./utils-D019Z2NU.js";
6
6
  import { o as loadConfig } from "./config-BFoj5wyy.js";
7
7
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BXfIVhTg.js";
8
- import { F as getChannelDock, V as resolveSignalAccount, n as appendAssistantMessageToSessionTranscript, r as resolveMirroredTranscriptText } from "./sessions-Cz4LlZH7.js";
8
+ import { F as getChannelDock, V as resolveSignalAccount, n as appendAssistantMessageToSessionTranscript, r as resolveMirroredTranscriptText } from "./sessions-Bx2VARI1.js";
9
9
  import { a as closeDispatcher, c as resolvePinnedHostnameWithPolicy, o as createPinnedDispatcher, r as saveMediaBuffer, s as resolvePinnedHostname } from "./routes-rN1UjOYR.js";
10
10
  import { a as resizeToJpeg, h as mediaKindFromMime, i as optimizeImageToPng, m as maxBytesForKind, o as detectMime, r as hasAlphaChannel, s as extensionForMime, t as convertHeicToJpeg } from "./image-ops-DQULvF-U.js";
11
11
  import { t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-CaDAAMe0.js";
@@ -1,5 +1,5 @@
1
- import { Ht as sendMessageTelegram, Ut as sendMessageDiscord, ht as sendMessageIMessage, nn as sendMessageWhatsApp, rn as sendMessageSlack } from "./reply-rKcIyQdm.js";
2
- import { b as sendMessageSignal } from "./deliver-DJbxwsAM.js";
1
+ import { Ht as sendMessageTelegram, Ut as sendMessageDiscord, ht as sendMessageIMessage, nn as sendMessageWhatsApp, rn as sendMessageSlack } from "./reply-BZDAeRWS.js";
2
+ import { b as sendMessageSignal } from "./deliver-DOHMG5Rz.js";
3
3
 
4
4
  //#region src/cli/deps.ts
5
5
  function createDefaultDeps() {
@@ -19,7 +19,7 @@ import { exec as exec$1, execSync as execSync$1, spawn as spawn$1, spawnSync as
19
19
  import { appendFileSync as appendFileSync$1, chmodSync as chmodSync$1, closeSync as closeSync$1, constants as constants$1, createWriteStream as createWriteStream$1, existsSync as existsSync$1, lstatSync, mkdirSync as mkdirSync$1, openSync as openSync$1, readFileSync as readFileSync$1, readSync as readSync$1, readdir as readdir$1, readdirSync as readdirSync$1, readlinkSync, realpathSync as realpathSync$1, renameSync as renameSync$1, rmSync as rmSync$1, statSync as statSync$1, watch as watch$1, writeFileSync as writeFileSync$1 } from "fs";
20
20
  import { Readable } from "stream";
21
21
  import { arch, homedir as homedir$1, platform } from "os";
22
- import { EventEmitter } from "events";
22
+ import { EventEmitter as EventEmitter$1 } from "events";
23
23
  import * as path$2 from "path";
24
24
  import path$1, { basename as basename$1, dirname as dirname$1, isAbsolute as isAbsolute$1, join as join$1, relative as relative$1, resolve as resolve$1, sep as sep$1 } from "path";
25
25
  import { randomUUID } from "crypto";
@@ -115447,7 +115447,7 @@ function extractCompleteSequences(buffer) {
115447
115447
  * Buffers stdin input and emits complete sequences via the 'data' event.
115448
115448
  * Handles partial escape sequences that arrive across multiple chunks.
115449
115449
  */
115450
- var StdinBuffer = class extends EventEmitter {
115450
+ var StdinBuffer = class extends EventEmitter$1 {
115451
115451
  buffer = "";
115452
115452
  timeout = null;
115453
115453
  timeoutMs;
@@ -10,11 +10,11 @@ import "./dist-cjs-C9i3z5oP.js";
10
10
  import { t as formatCliCommand } from "./command-format-DOYW_19_.js";
11
11
  import "./boolean-D-3joTkO.js";
12
12
  import "./manifest-registry-DEGu_o5t.js";
13
- import "./dist-BYg0IiMA.js";
13
+ import "./dist-B0taJfp8.js";
14
14
  import "./lib-pS0Bd7GL.js";
15
15
  import "./src-ByySp9O0.js";
16
16
  import "./core-B7QS0Vnt.js";
17
- import { d as hasBinary } from "./skills-BQWFFLxf.js";
17
+ import { d as hasBinary } from "./skills-Dh0SDBuy.js";
18
18
  import { t as formatDocsLink } from "./links-B0HTM-CT.js";
19
19
  import { n as runCommandWithRuntime } from "./cli-utils-CwUbbnsD.js";
20
20
 
@@ -1,4 +1,4 @@
1
- import { Jn as loadModelCatalog, ct as loadSKYKOIPlugins } from "./reply-rKcIyQdm.js";
1
+ import { Jn as loadModelCatalog, ct as loadSKYKOIPlugins } from "./reply-BZDAeRWS.js";
2
2
  import { s as defaultRuntime, w as getResolvedLoggerSettings } from "./subsystem-hATE68va.js";
3
3
  import { d as resolveIsNixMode, f as resolveLegacyStateDirs, g as resolveStateDir, m as resolveOAuthDir, p as resolveNewStateDir, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
4
4
  import { a as buildKoiMainSessionKey, l as normalizeKoiId, r as DEFAULT_MAIN_KEY, t as DEFAULT_ACCOUNT_ID } from "./session-key-B2OXLVi_.js";
@@ -11,8 +11,8 @@ import { t as formatCliCommand } from "./command-format-DOYW_19_.js";
11
11
  import { t as isTruthyEnvValue } from "./env-ChCKTuXK.js";
12
12
  import { c as readConfigFileSnapshot, f as SKYKOISchema, n as migrateLegacyConfig, u as writeConfigFile } from "./config-BFoj5wyy.js";
13
13
  import { n as listChannelPlugins } from "./plugins-BXfIVhTg.js";
14
- import { O as canonicalizeMainSessionAlias, i as loadSessionStore, j as resolveMainSessionKey, s as saveSessionStore } from "./sessions-Cz4LlZH7.js";
15
- import { f as DEFAULT_SANDBOX_BROWSER_IMAGE, m as DEFAULT_SANDBOX_IMAGE, p as DEFAULT_SANDBOX_COMMON_IMAGE, u as resolveSandboxScope } from "./sandbox-o5syhP4X.js";
14
+ import { O as canonicalizeMainSessionAlias, i as loadSessionStore, j as resolveMainSessionKey, s as saveSessionStore } from "./sessions-Bx2VARI1.js";
15
+ import { f as DEFAULT_SANDBOX_BROWSER_IMAGE, m as DEFAULT_SANDBOX_IMAGE, p as DEFAULT_SANDBOX_COMMON_IMAGE, u as resolveSandboxScope } from "./sandbox-Cboj7RQq.js";
16
16
  import { d as inspectPortUsage, p as formatPortDiagnostics } from "./chrome-Dw_3cCvP.js";
17
17
  import { a as resolveSessionTranscriptsDirForKoi, n as resolveSessionFilePath, o as resolveStorePath } from "./paths-DLKQOevr.js";
18
18
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-C9iXIbXI.js";
@@ -26,15 +26,15 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-y1KKH5pe.js";
26
26
  import { n as logConfigUpdated } from "./logging-1Q_KlUsW.js";
27
27
  import { t as note$1 } from "./note-DRoVRuAi.js";
28
28
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-Cg3LRidd.js";
29
- import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-C9uU6WwH.js";
29
+ import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-1k8pCgq2.js";
30
30
  import { t as runGatewayUpdate } from "./update-runner-odTAl-uh.js";
31
31
  import { i as resolveGatewayAuth } from "./auth-Vh115fQN.js";
32
- import { t as buildWorkspaceSkillStatus } from "./skills-status-DakSfN8r.js";
32
+ import { t as buildWorkspaceSkillStatus } from "./skills-status-zrpOQ6N9.js";
33
33
  import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLaunchAgentListed, o as resolveGatewayLogPaths, r as isLaunchAgentLoaded, t as resolveGatewayService } from "./service-BGkVTESM.js";
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-BHiJpkXk.js";
37
+ import { n as doctorShellCompletion } from "./doctor-completion-ahDb_IAk.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";