skykoi 2026.3.149 → 2026.3.150

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 (91) hide show
  1. package/dist/{archive-Bzcky8JN.js → archive-CVWNRtyL.js} +1 -1
  2. package/dist/build-info.json +2 -2
  3. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  4. package/dist/{channel-options-B2tayc4t.js → channel-options-D8_JzxRT.js} +1 -1
  5. package/dist/{channels-cli-ATup4taS.js → channels-cli-BH9U6Dui.js} +6 -6
  6. package/dist/cli/daemon-cli.js +1 -1
  7. package/dist/{cli-CGfYJ_UM.js → cli-CUs9pxZF.js} +1 -1
  8. package/dist/{completion-cli-Bc9zp3Jf.js → completion-cli-B3WdcJZs.js} +1 -1
  9. package/dist/{config-guard-CFWJnfNC.js → config-guard-IVCcnwoT.js} +13 -13
  10. package/dist/{configure-DfY8XFfW.js → configure-LnNfK5Ic.js} +4 -4
  11. package/dist/{daemon-cli--3ffM6qE.js → daemon-cli-C_4xIwnL.js} +2 -2
  12. package/dist/{deps-DT7sXF3f.js → deps-D6jqNSQw.js} +1 -1
  13. package/dist/{doctor-DF8Q7-X2.js → doctor-CCLvZzRQ.js} +3 -3
  14. package/dist/entry.js +1 -1
  15. package/dist/extension-api.js +1 -1
  16. package/dist/{gateway-cli-Bb7hspRg.js → gateway-cli-WJVy5GUw.js} +47 -19
  17. package/dist/{github-copilot-auth-DaSea1y3.js → github-copilot-auth-C8y5LnLh.js} +1 -1
  18. package/dist/{health-format-Bq8p1qaT.js → health-format-Bdsy_0Lq.js} +1 -1
  19. package/dist/{hooks-cli-DWQJfgF9.js → hooks-cli-CmiYM-c7.js} +3 -3
  20. package/dist/index.js +19 -19
  21. package/dist/{installs-xcr-t5iT.js → installs-BFa_D4ve.js} +1 -1
  22. package/dist/{koi-BKmG6w9N.js → koi-Vbg03Me4.js} +2 -2
  23. package/dist/{models-cli-DseYyrBV.js → models-cli-BjbILRSh.js} +2 -2
  24. package/dist/{node-cli-CXmd3Qsf.js → node-cli-DbDw6lDr.js} +1 -1
  25. package/dist/{onboard-channels-DwQbGbF-.js → onboard-channels-BdIPyOTh.js} +2 -2
  26. package/dist/{onboard-skills-D_Cf1w2t.js → onboard-skills-BrR3KT-F.js} +3 -3
  27. package/dist/{onboarding-DNx4p64e.js → onboarding-BucMXbm8.js} +6 -6
  28. package/dist/{plugin-registry-CC4c8m6-.js → plugin-registry-yEj_k7iS.js} +1 -1
  29. package/dist/plugin-sdk/index.js +586 -28
  30. package/dist/plugin-sdk/{pi-model-discovery-B1kAe0kx.js → pi-model-discovery-CeYPOTBg.js} +3 -3
  31. package/dist/{plugins-cli-uSUR_eYK.js → plugins-cli-CmnTZ1Df.js} +5 -5
  32. package/dist/{program-BwSWrSZJ.js → program-BSzeDCaY.js} +4 -4
  33. package/dist/readiness-WIOj3rry.js +69 -0
  34. package/dist/{register.subclis-CSdZq0EA.js → register.subclis-TZcmCyNd.js} +20 -20
  35. package/dist/{reply-B86SHzc3.js → reply-BzIwnqq4.js} +571 -13
  36. package/dist/{run-main-gD1KUi0l.js → run-main-BeZi5MTv.js} +20 -20
  37. package/dist/{server-node-events-m9wC6iEi.js → server-node-events-CXM2XoLF.js} +3 -3
  38. package/dist/{status-BtmfaynB.js → status-DwP_7RSF.js} +1 -1
  39. package/dist/{update-D5SrHnUU.js → update-McB8DNli.js} +1 -1
  40. package/dist/{update-cli-xLXEsiJc.js → update-cli-DOwTTMYe.js} +11 -11
  41. package/dist/{update-runner-Bin5aC_B.js → update-runner-DAf5zxN2.js} +3 -3
  42. package/extensions/bluebubbles/node_modules/.bin/skykoi +2 -2
  43. package/extensions/copilot-proxy/node_modules/.bin/skykoi +2 -2
  44. package/extensions/diagnostics-otel/node_modules/.bin/skykoi +2 -2
  45. package/extensions/discord/node_modules/.bin/skykoi +2 -2
  46. package/extensions/feishu/node_modules/.bin/skykoi +2 -2
  47. package/extensions/google-antigravity-auth/node_modules/.bin/skykoi +2 -2
  48. package/extensions/google-gemini-cli-auth/node_modules/.bin/skykoi +2 -2
  49. package/extensions/googlechat/node_modules/.bin/skykoi +2 -2
  50. package/extensions/imessage/node_modules/.bin/skykoi +2 -2
  51. package/extensions/line/node_modules/.bin/skykoi +2 -2
  52. package/extensions/llm-task/node_modules/.bin/skykoi +2 -2
  53. package/extensions/lobster/node_modules/.bin/skykoi +2 -2
  54. package/extensions/matrix/node_modules/.bin/markdown-it +2 -2
  55. package/extensions/matrix/node_modules/.bin/skykoi +2 -2
  56. package/extensions/mattermost/node_modules/.bin/skykoi +2 -2
  57. package/extensions/memory-core/node_modules/.bin/skykoi +2 -2
  58. package/extensions/memory-lancedb/node_modules/.bin/openai +2 -2
  59. package/extensions/memory-lancedb/node_modules/.bin/skykoi +2 -2
  60. package/extensions/minimax-portal-auth/node_modules/.bin/skykoi +2 -2
  61. package/extensions/msteams/node_modules/.bin/skykoi +2 -2
  62. package/extensions/nextcloud-talk/node_modules/.bin/skykoi +2 -2
  63. package/extensions/nostr/node_modules/.bin/skykoi +2 -2
  64. package/extensions/open-prose/node_modules/.bin/skykoi +2 -2
  65. package/extensions/signal/node_modules/.bin/skykoi +2 -2
  66. package/extensions/slack/node_modules/.bin/skykoi +2 -2
  67. package/extensions/telegram/node_modules/.bin/skykoi +2 -2
  68. package/extensions/tlon/node_modules/.bin/skykoi +2 -2
  69. package/extensions/twitch/node_modules/.bin/skykoi +2 -2
  70. package/extensions/voice-call/node_modules/.bin/skykoi +2 -2
  71. package/extensions/whatsapp/node_modules/.bin/skykoi +2 -2
  72. package/extensions/zalo/node_modules/.bin/skykoi +2 -2
  73. package/extensions/zalouser/node_modules/.bin/skykoi +2 -2
  74. package/package.json +1 -1
  75. package/extensions/diagnostics-otel/node_modules/.bin/acorn +0 -21
  76. package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +0 -21
  77. package/extensions/nostr/node_modules/.bin/tsc +0 -21
  78. package/extensions/nostr/node_modules/.bin/tsserver +0 -21
  79. /package/dist/{koi-event-bridge-DYn87swl.js → koi-event-bridge-DD0aDBHE.js} +0 -0
  80. /package/dist/{koi-utterance-trigger-BsrWNqAv.js → koi-utterance-trigger-DqYxQyyt.js} +0 -0
  81. /package/dist/{logs-cli-DBPDhtk4.js → logs-cli-Cekbi2Ef.js} +0 -0
  82. /package/dist/{nodes-cli-DnpxhvJs.js → nodes-cli-BuiHyIts.js} +0 -0
  83. /package/dist/{pairing-cli-IEMSvQ-L.js → pairing-cli-B24E88IY.js} +0 -0
  84. /package/dist/{qmd-manager-vudjJLyW.js → qmd-manager-BG_vKxSB.js} +0 -0
  85. /package/dist/{runner-DF18iXwq.js → runner-aLiAcR7x.js} +0 -0
  86. /package/dist/{sandbox-cli-1wdnhhHg.js → sandbox-cli-CPeaeae_.js} +0 -0
  87. /package/dist/{security-cli-Cb0XrWhD.js → security-cli-CYcvb_u2.js} +0 -0
  88. /package/dist/{skills-cli-j1q3VQyb.js → skills-cli-DOfJTeVJ.js} +0 -0
  89. /package/dist/{system-cli-BgYRqEz4.js → system-cli-DyY3uvSn.js} +0 -0
  90. /package/dist/{tui-cli-BVt_u6mA.js → tui-cli-DztfBQiY.js} +0 -0
  91. /package/dist/{webhooks-cli-sZTF2N6h.js → webhooks-cli-Bajk24iB.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 { xt as require_inherits } from "./reply-B86SHzc3.js";
2
+ import { xt as require_inherits } from "./reply-BzIwnqq4.js";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs/promises";
5
5
  import * as tar from "tar";
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.3.149",
2
+ "version": "2026.3.150",
3
3
  "commit": "ecb6c7e1dadf1da26d11b891dd48ea3ee89cecc0",
4
- "builtAt": "2026-04-29T09:03:54.145Z"
4
+ "builtAt": "2026-04-29T09:39:23.274Z"
5
5
  }
@@ -1 +1 @@
1
- 9653d6318d7003d826abe48cf6cd43bd1a92838fd24494376866f998e2a9ae3b
1
+ ef6487138bfa2b73b1975a5911f5b83d44c83faea3a00d0e6979746ef3f927c3
@@ -2,7 +2,7 @@ import { M as CHAT_CHANNEL_ORDER } from "./subsystem-RXphV8Xh.js";
2
2
  import { t as isTruthyEnvValue } from "./env-Bj0uZSiW.js";
3
3
  import { n as listChannelPlugins } from "./plugins-DUZvbUrn.js";
4
4
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-CrpAktec.js";
5
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-CC4c8m6-.js";
5
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-yEj_k7iS.js";
6
6
 
7
7
  //#region src/cli/channel-options.ts
8
8
  function dedupe(values) {
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-BSGewuKF.js";
2
- import { Pn as createSlackWebClient, _t as formatUsageReportLines, bn as parseDiscordTarget, gt as loadProviderUsageSummary, xn as fetchChannelPermissionsDiscord } from "./reply-B86SHzc3.js";
2
+ import { Pn as createSlackWebClient, _t as formatUsageReportLines, bn as parseDiscordTarget, gt as loadProviderUsageSummary, xn as fetchChannelPermissionsDiscord } from "./reply-BzIwnqq4.js";
3
3
  import { N as DEFAULT_CHAT_CHANNEL, O as getResolvedLoggerSettings, T as theme, c as defaultRuntime, p as danger, y as setVerbose } from "./subsystem-RXphV8Xh.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-DvA8Pdt6.js";
@@ -62,14 +62,14 @@ import "./event-log-DtrKraIx.js";
62
62
  import { t as resolveChannelDefaultAccountId } from "./helpers-BMifWcsO.js";
63
63
  import "./note-CbRknFZ7.js";
64
64
  import { t as createClackPrompter } from "./clack-prompter-BxHCh6Tn.js";
65
- import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-DwQbGbF-.js";
65
+ import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-BdIPyOTh.js";
66
66
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-CrpAktec.js";
67
- import "./archive-Bzcky8JN.js";
67
+ import "./archive-CVWNRtyL.js";
68
68
  import "./skill-scanner-WnNLktfw.js";
69
- import "./installs-xcr-t5iT.js";
69
+ import "./installs-BFa_D4ve.js";
70
70
  import { t as collectChannelStatusIssues } from "./channels-status-issues-GKs-LbrV.js";
71
- import { n as hasExplicitOptions } from "./plugin-registry-CC4c8m6-.js";
72
- import { t as formatCliChannelOptions } from "./channel-options-B2tayc4t.js";
71
+ import { n as hasExplicitOptions } from "./plugin-registry-yEj_k7iS.js";
72
+ import { t as formatCliChannelOptions } from "./channel-options-D8_JzxRT.js";
73
73
  import { t as buildChannelAccountSnapshot } from "./status-BA0KgRIG.js";
74
74
  import { t as parseLogLine } from "./parse-log-line-Btq1hVHj.js";
75
75
  import fs from "node:fs/promises";
@@ -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--3ffM6qE.js";
2
+ export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-C_4xIwnL.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-BSGewuKF.js";
2
- import { ht as loadSKYKOIPlugins } from "./reply-B86SHzc3.js";
2
+ import { ht as loadSKYKOIPlugins } from "./reply-BzIwnqq4.js";
3
3
  import { t as createSubsystemLogger } from "./subsystem-RXphV8Xh.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./utils-rBzA-VDv.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-CSdZq0EA.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-TZcmCyNd.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 { At as handleReset, Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Et as detectBrowserOpenSupport, It as randomToken, Lt as resolveControlUiLinks, M as runMessageAction, Nt as openUrl, Ot as formatControlUiSshHint, V as CHANNEL_MESSAGE_ACTION_NAMES, dt as CHANNEL_TARGET_DESCRIPTION, gr as lookupContextTokens, in as runMemoryStatus, jt as moveToTrash, rn as registerMemoryCli, ut as CHANNEL_TARGETS_DESCRIPTION, wt as applyWizardMetadata, z as formatTargetDisplay } from "./reply-B86SHzc3.js";
1
+ import { At as handleReset, Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Et as detectBrowserOpenSupport, It as randomToken, Lt as resolveControlUiLinks, M as runMessageAction, Nt as openUrl, Ot as formatControlUiSshHint, V as CHANNEL_MESSAGE_ACTION_NAMES, dt as CHANNEL_TARGET_DESCRIPTION, gr as lookupContextTokens, in as runMemoryStatus, jt as moveToTrash, rn as registerMemoryCli, ut as CHANNEL_TARGETS_DESCRIPTION, wt as applyWizardMetadata, z as formatTargetDisplay } from "./reply-BzIwnqq4.js";
2
2
  import { B as normalizeChatChannelId, C as colorize, I as getChatChannelMeta, N as DEFAULT_CHAT_CHANNEL, T as theme, c as defaultRuntime, l as restoreTerminalState, m as info, p as danger, w as isRich, y as setVerbose } from "./subsystem-RXphV8Xh.js";
3
3
  import { g as resolveStateDir, i as isNixMode, m as resolveOAuthDir, o as resolveConfigPath, r as STATE_DIR, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
4
4
  import { l as normalizeKoiId, n as DEFAULT_KOI_ID, t as DEFAULT_ACCOUNT_ID } from "./session-key-DvA8Pdt6.js";
@@ -19,29 +19,29 @@ import { t as formatDocsLink } from "./links-D5FJjx5x.js";
19
19
  import { n as runCommandWithRuntime } from "./cli-utils-C1YHVD4o.js";
20
20
  import { n as withProgress } from "./progress-CIrle3FT.js";
21
21
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-BJmW_JM3.js";
22
- import { t as createDefaultDeps } from "./deps-DT7sXF3f.js";
22
+ import { t as createDefaultDeps } from "./deps-D6jqNSQw.js";
23
23
  import { a as gatewayInstallErrorHint, g as assertSupportedRuntime, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CdyzhAad.js";
24
24
  import { t as resolveChannelDefaultAccountId } from "./helpers-BMifWcsO.js";
25
25
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-BusiCyt_.js";
26
26
  import { t as WizardCancelledError } from "./prompts-DxnxCHKt.js";
27
27
  import { t as createClackPrompter } from "./clack-prompter-BxHCh6Tn.js";
28
- 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-DNx4p64e.js";
29
- import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-D_Cf1w2t.js";
30
- 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-DaSea1y3.js";
31
- import { n as setupChannels } from "./onboard-channels-DwQbGbF-.js";
32
- import { l as healthCommand } from "./health-format-Bq8p1qaT.js";
28
+ 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-BucMXbm8.js";
29
+ import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-BrR3KT-F.js";
30
+ 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-C8y5LnLh.js";
31
+ import { n as setupChannels } from "./onboard-channels-BdIPyOTh.js";
32
+ import { l as healthCommand } from "./health-format-Bdsy_0Lq.js";
33
33
  import { t as renderTable } from "./table-CgHdpI6b.js";
34
34
  import { t as resolveGatewayService } from "./service-CTrRN1-T.js";
35
35
  import { r as isSystemdUserServiceAvailable } from "./systemd-BuS1yu_z.js";
36
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-CSdZq0EA.js";
36
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-TZcmCyNd.js";
37
37
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-ChtP1AJk.js";
38
38
  import { t as formatHelpExamples } from "./help-format-Cbr54gLP.js";
39
- import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-BKmG6w9N.js";
40
- import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-CC4c8m6-.js";
39
+ import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-Vbg03Me4.js";
40
+ import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-yEj_k7iS.js";
41
41
  import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-CgAOTnxe.js";
42
- import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-DfY8XFfW.js";
42
+ import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-LnNfK5Ic.js";
43
43
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-BLQwmm6k.js";
44
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-DF8Q7-X2.js";
44
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-CCLvZzRQ.js";
45
45
  import { fileURLToPath } from "node:url";
46
46
  import fs from "node:fs";
47
47
  import path from "node:path";
@@ -2792,7 +2792,7 @@ async function loadValidConfig() {
2792
2792
  }
2793
2793
  function registerConfigCli(program) {
2794
2794
  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) => {
2795
- const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-DfY8XFfW.js").then((n) => n.t);
2795
+ const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-LnNfK5Ic.js").then((n) => n.t);
2796
2796
  const sections = Array.isArray(opts.section) ? opts.section.map((value) => typeof value === "string" ? value.trim() : "").filter(Boolean) : [];
2797
2797
  if (sections.length === 0) {
2798
2798
  await configureCommand(defaultRuntime);
@@ -1,5 +1,5 @@
1
1
  import { r as __exportAll } from "./chunk-D_gEzPfs.js";
2
- import { Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Ft as probeGatewayReachable, It as randomToken, Lt as resolveControlUiLinks, Mt as normalizeGatewayTokenInput, Pt as printWizardHeader, kt as guardCancel, wt as applyWizardMetadata, zt as summarizeExistingConfig } from "./reply-B86SHzc3.js";
2
+ import { Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Ft as probeGatewayReachable, It as randomToken, Lt as resolveControlUiLinks, Mt as normalizeGatewayTokenInput, Pt as printWizardHeader, kt as guardCancel, wt as applyWizardMetadata, zt as summarizeExistingConfig } from "./reply-BzIwnqq4.js";
3
3
  import { c as defaultRuntime } from "./subsystem-RXphV8Xh.js";
4
4
  import { t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
5
5
  import { h as resolveUserPath, y as shortenHomePath } from "./utils-rBzA-VDv.js";
@@ -15,9 +15,9 @@ import { n as logConfigUpdated } from "./logging-BusiCyt_.js";
15
15
  import { t as note$1 } from "./note-CbRknFZ7.js";
16
16
  import { t as WizardCancelledError } from "./prompts-DxnxCHKt.js";
17
17
  import { t as createClackPrompter } from "./clack-prompter-BxHCh6Tn.js";
18
- 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-D_Cf1w2t.js";
19
- import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-DwQbGbF-.js";
20
- import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-Bq8p1qaT.js";
18
+ 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-BrR3KT-F.js";
19
+ import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-BdIPyOTh.js";
20
+ import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-Bdsy_0Lq.js";
21
21
  import { t as resolveGatewayService } from "./service-CTrRN1-T.js";
22
22
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-BLQwmm6k.js";
23
23
  import { confirm, intro, outro, select, text } from "@clack/prompts";
@@ -1,5 +1,5 @@
1
1
  import { r as __exportAll } from "./chunk-D_gEzPfs.js";
2
- import { Lt as resolveControlUiLinks } from "./reply-B86SHzc3.js";
2
+ import { Lt as resolveControlUiLinks } from "./reply-BzIwnqq4.js";
3
3
  import { C as colorize, O as getResolvedLoggerSettings, T as theme, c as defaultRuntime, w as isRich } from "./subsystem-RXphV8Xh.js";
4
4
  import { d as resolveIsNixMode, g as resolveStateDir, o as resolveConfigPath, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
5
5
  import { y as shortenHomePath } from "./utils-rBzA-VDv.js";
@@ -14,7 +14,7 @@ import { n as callGateway } from "./call-COo19i3Z.js";
14
14
  import { t as formatDocsLink } from "./links-D5FJjx5x.js";
15
15
  import { n as withProgress } from "./progress-CIrle3FT.js";
16
16
  import { d as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-QCWVHQSI.js";
17
- import { t as createDefaultDeps } from "./deps-DT7sXF3f.js";
17
+ import { t as createDefaultDeps } from "./deps-D6jqNSQw.js";
18
18
  import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CdyzhAad.js";
19
19
  import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-CTrRN1-T.js";
20
20
  import { r as isSystemdUserServiceAvailable } from "./systemd-BuS1yu_z.js";
@@ -1,4 +1,4 @@
1
- import { Nn as sendMessageSlack, St as sendMessageIMessage, _n as sendMessageTelegram, jn as sendMessageWhatsApp, vn as sendMessageDiscord } from "./reply-B86SHzc3.js";
1
+ import { Nn as sendMessageSlack, St as sendMessageIMessage, _n as sendMessageTelegram, jn as sendMessageWhatsApp, vn as sendMessageDiscord } from "./reply-BzIwnqq4.js";
2
2
  import { b as sendMessageSignal } from "./deliver-B_Z1fUHR.js";
3
3
 
4
4
  //#region src/cli/deps.ts
@@ -1,4 +1,4 @@
1
- import { It as randomToken, Pt as printWizardHeader, ht as loadSKYKOIPlugins, kt as guardCancel, wr as loadModelCatalog, wt as applyWizardMetadata } from "./reply-B86SHzc3.js";
1
+ import { It as randomToken, Pt as printWizardHeader, ht as loadSKYKOIPlugins, kt as guardCancel, wr as loadModelCatalog, wt as applyWizardMetadata } from "./reply-BzIwnqq4.js";
2
2
  import { O as getResolvedLoggerSettings, c as defaultRuntime } from "./subsystem-RXphV8Xh.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-DvA8Pdt6.js";
@@ -25,8 +25,8 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-BMifWcsO.js";
25
25
  import { n as logConfigUpdated } from "./logging-BusiCyt_.js";
26
26
  import { t as note$1 } from "./note-CbRknFZ7.js";
27
27
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-CrpAktec.js";
28
- import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-Bq8p1qaT.js";
29
- import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-Bin5aC_B.js";
28
+ import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-Bdsy_0Lq.js";
29
+ import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-DAf5zxN2.js";
30
30
  import { i as resolveGatewayAuth } from "./auth-DcQcmQH5.js";
31
31
  import { t as buildWorkspaceSkillStatus } from "./skills-status-CIFMe-eQ.js";
32
32
  import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLaunchAgentListed, o as resolveGatewayLogPaths, r as isLaunchAgentLoaded, t as resolveGatewayService } from "./service-CTrRN1-T.js";
package/dist/entry.js CHANGED
@@ -244,7 +244,7 @@ if (!ensureExperimentalWarningSuppressed()) {
244
244
  applyCliProfileEnv({ profile: parsed.profile });
245
245
  process$1.argv = parsed.argv;
246
246
  }
247
- import("./run-main-gD1KUi0l.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
247
+ import("./run-main-BeZi5MTv.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
248
248
  console.error("[SKYKOI] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
249
249
  process$1.exitCode = 1;
250
250
  });
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-BSGewuKF.js";
2
- import { Ln as resolveKoiIdentity, c as runEmbeddedPiKoi, zr as resolveKoiTimeoutMs } from "./reply-B86SHzc3.js";
2
+ import { Ln as resolveKoiIdentity, c as runEmbeddedPiKoi, zr as resolveKoiTimeoutMs } from "./reply-BzIwnqq4.js";
3
3
  import "./subsystem-RXphV8Xh.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./utils-rBzA-VDv.js";
@@ -1,6 +1,6 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
2
  import { B as normalizeElevatedLevel, H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, U as normalizeUsageDisplay, V as normalizeReasoningLevel, W as normalizeVerboseLevel } from "./pi-embedded-helpers-BSGewuKF.js";
3
- import { $ as summarizeRestartSentinel, $n as resolveTtsPrefsPath, $t as buildSafeExternalPrompt, A as resolveSessionTranscriptCandidates, Ar as DEFAULT_INPUT_MAX_REDIRECTS, At as handleReset, B as resetDirectoryCache, Bn as resolveUserTimezone, C as loadSessionEntry, Cn as createReplyDispatcher, D as capArrayByJsonBytes, Dn as findSubkoiRunByChildSessionKey, Dr as DEFAULT_INPUT_FILE_MIMES, E as archiveFileOnDisk, En as stopSubkoisForRequester, Er as DEFAULT_INPUT_FILE_MAX_CHARS, Fr as extractFileContentFromSource, G as consumeGatewaySigusr1RestartAuthorization, Gn as OPENAI_TTS_MODELS, Gt as getRemoteSkillEligibility, H as runWithModelFallback, Hn as createInternalHookEvent, Ht as buildControlUiAvatarUrl, Ir as extractImageContentFromSource, J as setGatewaySigusr1RestartPolicy, Jn as isTtsEnabled, Jt as refreshRemoteBinsForConnectedNodes, K as isGatewaySigusr1RestartExternallyAllowed, Kn as OPENAI_TTS_VOICES, Kt as primeRemoteSkillsCache, L as resolveOutboundTarget, Ln as resolveKoiIdentity, Lr as normalizeMimeList, Mn as normalizePollInput, Mr as DEFAULT_INPUT_PDF_MAX_PIXELS, N as ensureOutboundSessionEntry, Nr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, O as readSessionMessages, On as findSubkoiRunByRunId, Or as DEFAULT_INPUT_IMAGE_MAX_BYTES, P as resolveOutboundSessionRoute, Pr as DEFAULT_INPUT_TIMEOUT_MS, Qn as resolveTtsConfig, Qt as registerSkillsChangeListener, R as resolveSessionDeliveryTarget, Rn as formatUserTime, S as loadCombinedSessionStoreForGateway, Sn as dispatchInboundMessage, Sr as isSystemEventContextChanged, T as resolveSessionModelRef, Tn as isAbortTrigger, Tr as DEFAULT_INPUT_FILE_MAX_BYTES, Un as registerInternalHook, Ut as normalizeControlUiBasePath, Vn as clearInternalHooks, Vt as CONTROL_UI_AVATAR_PREFIX, W as authorizeGatewaySigusr1Restart, Wn as triggerInternalHook, Wt as resolveAssistantAvatarUrl, X as formatDoctorNonInteractiveHint, Xn as resolveTtsApiKey, Xt as setSkillsRemoteRegistry, Y as consumeRestartSentinel, Yn as isTtsProviderConfigured, Yt as refreshRemoteNodeBins, Z as formatRestartSentinelMessage, Zn as resolveTtsAutoMode, Zt as getSkillsSnapshotVersion, _ as onCanvasChange, a as normalizeSendPolicy, at as normalizeOptionalKoiId, b as listKoisForGateway, br as parseVerboseOverride, bt as handleSlackHttpRequest, c as runEmbeddedPiKoi, cr as startDiagnosticHeartbeat, ct as normalizeRequiredName, d as waitForEmbeddedPiRunEnd, dn as buildHistoryContextFromEntries, dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, en as detectSuspiciousPatterns, er as resolveTtsProviderOrder, fn as resolveHeartbeatVisibility, ft as requestHeartbeatNow, g as listCanvasUris, gr as lookupContextTokens, gt as loadProviderUsageSummary, h as getCanvasResource, hn as onHeartbeatEvent, hr as stripHeartbeatToken, ht as loadSKYKOIPlugins, i as runCliKoi, it as inferLegacyName, j as stripEnvelopeFromMessages, jr as DEFAULT_INPUT_PDF_MAX_PAGES, k as readSessionPreviewItemsFromTranscript, kn as initSubkoiRegistry, kr as DEFAULT_INPUT_IMAGE_MIMES, l as abortEmbeddedPiRun, ln as registerUnhandledRejectionHandler, lr as stopDiagnosticHeartbeat, lt as migrateLegacyCronPayload, m as canvasUri, mn as getLastHeartbeatEvent, mt as getPluginToolMeta, n as getCliSessionId, nn as isExternalHookSession, nr as setTtsProvider, nt as normalizeCronJobCreate, o as resolveSendPolicy, on as createReplyPrefixOptions, or as setCommandLaneConcurrency, ot as normalizeOptionalText, p as createSKYKOITools, q as scheduleGatewaySigusr1Restart, qn as getTtsProvider, qt as recordRemoteNodeInfo, r as setCliSessionId, rr as textToSpeech, rt as normalizeCronJobPatch, s as clearSessionQueues, sn as normalizeGroupActivation, sr as CommandLane, st as normalizePayloadToSystemText, tn as getHookType, tr as setTtsEnabled, tt as writeRestartSentinel, ur as isDiagnosticsEnabled, v as replaceCanvasResource, vr as applyModelOverrideToSessionEntry, w as resolveGatewaySessionStoreTarget, wn as formatZonedTimestamp, wr as loadModelCatalog, x as listSessionsFromStore, xr as enqueueSystemEvent, y as resolveAnnounceTargetFromKey, yn as getChannelActivity, yr as applyVerboseOverride, zn as resolveUserTimeFormat, zr as resolveKoiTimeoutMs } from "./reply-B86SHzc3.js";
3
+ import { $ as summarizeRestartSentinel, $n as resolveTtsPrefsPath, $t as buildSafeExternalPrompt, A as resolveSessionTranscriptCandidates, Ar as DEFAULT_INPUT_MAX_REDIRECTS, At as handleReset, B as resetDirectoryCache, Bn as resolveUserTimezone, C as loadSessionEntry, Cn as createReplyDispatcher, D as capArrayByJsonBytes, Dn as findSubkoiRunByChildSessionKey, Dr as DEFAULT_INPUT_FILE_MIMES, E as archiveFileOnDisk, En as stopSubkoisForRequester, Er as DEFAULT_INPUT_FILE_MAX_CHARS, Fr as extractFileContentFromSource, G as consumeGatewaySigusr1RestartAuthorization, Gn as OPENAI_TTS_MODELS, Gt as getRemoteSkillEligibility, H as runWithModelFallback, Hn as createInternalHookEvent, Ht as buildControlUiAvatarUrl, Ir as extractImageContentFromSource, J as setGatewaySigusr1RestartPolicy, Jn as isTtsEnabled, Jt as refreshRemoteBinsForConnectedNodes, K as isGatewaySigusr1RestartExternallyAllowed, Kn as OPENAI_TTS_VOICES, Kt as primeRemoteSkillsCache, L as resolveOutboundTarget, Ln as resolveKoiIdentity, Lr as normalizeMimeList, Mn as normalizePollInput, Mr as DEFAULT_INPUT_PDF_MAX_PIXELS, N as ensureOutboundSessionEntry, Nr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, O as readSessionMessages, On as findSubkoiRunByRunId, Or as DEFAULT_INPUT_IMAGE_MAX_BYTES, P as resolveOutboundSessionRoute, Pr as DEFAULT_INPUT_TIMEOUT_MS, Qn as resolveTtsConfig, Qt as registerSkillsChangeListener, R as resolveSessionDeliveryTarget, Rn as formatUserTime, S as loadCombinedSessionStoreForGateway, Sn as dispatchInboundMessage, Sr as isSystemEventContextChanged, T as resolveSessionModelRef, Tn as isAbortTrigger, Tr as DEFAULT_INPUT_FILE_MAX_BYTES, Un as registerInternalHook, Ut as normalizeControlUiBasePath, Vn as clearInternalHooks, Vt as CONTROL_UI_AVATAR_PREFIX, W as authorizeGatewaySigusr1Restart, Wn as triggerInternalHook, Wt as resolveAssistantAvatarUrl, X as formatDoctorNonInteractiveHint, Xn as resolveTtsApiKey, Xt as setSkillsRemoteRegistry, Y as consumeRestartSentinel, Yn as isTtsProviderConfigured, Yt as refreshRemoteNodeBins, Z as formatRestartSentinelMessage, Zn as resolveTtsAutoMode, Zt as getSkillsSnapshotVersion, _ as onCanvasChange, a as normalizeSendPolicy, at as normalizeOptionalKoiId, b as listKoisForGateway, br as parseVerboseOverride, bt as handleSlackHttpRequest, c as runEmbeddedPiKoi, cr as startDiagnosticHeartbeat, ct as normalizeRequiredName, d as waitForEmbeddedPiRunEnd, dn as buildHistoryContextFromEntries, dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, en as detectSuspiciousPatterns, er as resolveTtsProviderOrder, fn as resolveHeartbeatVisibility, ft as requestHeartbeatNow, g as listCanvasUris, gr as lookupContextTokens, gt as loadProviderUsageSummary, h as getCanvasResource, hn as onHeartbeatEvent, hr as stripHeartbeatToken, ht as loadSKYKOIPlugins, i as runCliKoi, it as inferLegacyName, j as stripEnvelopeFromMessages, jr as DEFAULT_INPUT_PDF_MAX_PAGES, k as readSessionPreviewItemsFromTranscript, kn as initSubkoiRegistry, kr as DEFAULT_INPUT_IMAGE_MIMES, l as abortEmbeddedPiRun, ln as registerUnhandledRejectionHandler, lr as stopDiagnosticHeartbeat, lt as migrateLegacyCronPayload, m as canvasUri, mn as getLastHeartbeatEvent, mt as getPluginToolMeta, n as getCliSessionId, nn as isExternalHookSession, nr as setTtsProvider, nt as normalizeCronJobCreate, o as resolveSendPolicy, on as createReplyPrefixOptions, or as setCommandLaneConcurrency, ot as normalizeOptionalText, p as createSKYKOITools, q as scheduleGatewaySigusr1Restart, qn as getTtsProvider, qt as recordRemoteNodeInfo, r as setCliSessionId, rr as textToSpeech, rt as normalizeCronJobPatch, s as clearSessionQueues, sn as normalizeGroupActivation, sr as CommandLane, st as normalizePayloadToSystemText, tn as getHookType, tr as setTtsEnabled, tt as writeRestartSentinel, ur as isDiagnosticsEnabled, v as replaceCanvasResource, vr as applyModelOverrideToSessionEntry, w as resolveGatewaySessionStoreTarget, wn as formatZonedTimestamp, wr as loadModelCatalog, x as listSessionsFromStore, xr as enqueueSystemEvent, y as resolveAnnounceTargetFromKey, yn as getChannelActivity, yr as applyVerboseOverride, zn as resolveUserTimeFormat, zr as resolveKoiTimeoutMs } from "./reply-BzIwnqq4.js";
4
4
  import { C as colorize, D as getLogger, E as getChildLogger, N as DEFAULT_CHAT_CHANNEL, O as getResolvedLoggerSettings, T as theme, V as getActivePluginRegistry, a as setConsoleTimestampPrefix, c as defaultRuntime, i as setConsoleSubsystemFilter, j as CHANNEL_IDS, n as runtimeForLogger, t as createSubsystemLogger, w as isRich, y as setVerbose } from "./subsystem-RXphV8Xh.js";
5
5
  import { g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
6
6
  import { _ as isSubkoiSessionKey, a as buildKoiMainSessionKey, d as resolveKoiIdFromSessionKey, l as normalizeKoiId, m as toKoiRequestSessionKey, n as DEFAULT_KOI_ID, t as DEFAULT_ACCOUNT_ID, u as normalizeMainKey, v as parseKoiSessionKey } from "./session-key-DvA8Pdt6.js";
@@ -66,7 +66,7 @@ import { n as createBrowserControlContext, r as startBrowserControlServiceFromCo
66
66
  import { t as parseAbsoluteTimeMs } from "./parse-DbwfoyR_.js";
67
67
  import { n as resolveMessageChannelSelection } from "./channel-selection-B5tUOB8t.js";
68
68
  import { n as hydrateSession, r as readEventsSince, t as appendEvent } from "./event-log-DtrKraIx.js";
69
- import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-DT7sXF3f.js";
69
+ import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-D6jqNSQw.js";
70
70
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-4hm01eUI.js";
71
71
  import { t as ensureSKYKOICliOnPath } from "./path-env-B1xMZ4TX.js";
72
72
  import "./daemon-runtime-CdyzhAad.js";
@@ -75,16 +75,16 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-BMifWcsO.js";
75
75
  import "./logging-BusiCyt_.js";
76
76
  import "./note-CbRknFZ7.js";
77
77
  import { t as WizardCancelledError } from "./prompts-DxnxCHKt.js";
78
- 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-DNx4p64e.js";
79
- import { n as installSkill } from "./onboard-skills-D_Cf1w2t.js";
80
- import "./github-copilot-auth-DaSea1y3.js";
81
- import "./onboard-channels-DwQbGbF-.js";
78
+ 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-BucMXbm8.js";
79
+ import { n as installSkill } from "./onboard-skills-BrR3KT-F.js";
80
+ import "./github-copilot-auth-C8y5LnLh.js";
81
+ import "./onboard-channels-BdIPyOTh.js";
82
82
  import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-CrpAktec.js";
83
- import "./archive-Bzcky8JN.js";
83
+ import "./archive-CVWNRtyL.js";
84
84
  import "./skill-scanner-WnNLktfw.js";
85
- import "./installs-xcr-t5iT.js";
86
- import { a as resolveControlUiRootOverrideSync, c as getHealthSnapshot, d as runHeartbeatOnce, f as setHeartbeatsEnabled, n as ensureControlUiAssetsBuilt, o as resolveControlUiRootSync, p as startHeartbeatRunner, s as formatHealthChannelLines } from "./health-format-Bq8p1qaT.js";
87
- import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-Bin5aC_B.js";
85
+ import "./installs-BFa_D4ve.js";
86
+ import { a as resolveControlUiRootOverrideSync, c as getHealthSnapshot, d as runHeartbeatOnce, f as setHeartbeatsEnabled, n as ensureControlUiAssetsBuilt, o as resolveControlUiRootSync, p as startHeartbeatRunner, s as formatHealthChannelLines } from "./health-format-Bdsy_0Lq.js";
87
+ import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-DAf5zxN2.js";
88
88
  import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-DcQcmQH5.js";
89
89
  import { i as probeGateway } from "./audit-xPP239ME.js";
90
90
  import "./table-CgHdpI6b.js";
@@ -94,21 +94,22 @@ import { p as resolveGatewayStateDir } from "./systemd-BuS1yu_z.js";
94
94
  import "./service-audit-cgxNpqDF.js";
95
95
  import "./node-service-DfmbTqpi.js";
96
96
  import "./channels-status-issues-GKs-LbrV.js";
97
- import "./register.subclis-CSdZq0EA.js";
98
- import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-BKmG6w9N.js";
97
+ import "./register.subclis-TZcmCyNd.js";
98
+ import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-Vbg03Me4.js";
99
99
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-DMja3M8B.js";
100
100
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-D_eYlsQc.js";
101
- import "./completion-cli-Bc9zp3Jf.js";
101
+ import "./completion-cli-B3WdcJZs.js";
102
102
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-DbwN6pvO.js";
103
103
  import "./tui-DissoNdH.js";
104
104
  import { t as buildChannelAccountSnapshot } from "./status-BA0KgRIG.js";
105
105
  import "./shared-7rrirrq8.js";
106
- import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli--3ffM6qE.js";
106
+ import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-C_4xIwnL.js";
107
107
  import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-18N_WkHM.js";
108
108
  import { i as setGatewayWsLogStyle, n as logWs, r as summarizeKoiEventForWsLog, t as formatForLog } from "./ws-log-BhaGKxqL.js";
109
109
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-DLaYzml6.js";
110
110
  import { a as findCompanionByName, i as findCompanionById, o as getCachedCompanions, r as fetchCompanions, t as applyCompanions } from "./companions-BUaIC5WM.js";
111
- import { t as runNodeHost } from "./runner-DF18iXwq.js";
111
+ import { n as isReady, r as markReadyStep, t as awaitReady } from "./readiness-WIOj3rry.js";
112
+ import { t as runNodeHost } from "./runner-aLiAcR7x.js";
112
113
  import { fileURLToPath, pathToFileURL } from "node:url";
113
114
  import chalk from "chalk";
114
115
  import * as fsSync from "node:fs";
@@ -6310,6 +6311,12 @@ const koiHandlers = {
6310
6311
  return;
6311
6312
  }
6312
6313
  const request = p;
6314
+ if (!isReady()) {
6315
+ if (!await awaitReady(5e3)) {
6316
+ respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "gateway not ready — companions still loading; retry shortly"));
6317
+ return;
6318
+ }
6319
+ }
6313
6320
  const cfg = loadConfig();
6314
6321
  const idem = request.idempotencyKey;
6315
6322
  const groupIdRaw = typeof request.groupId === "string" ? request.groupId.trim() : "";
@@ -8026,6 +8033,12 @@ const chatHandlers = {
8026
8033
  respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid chat.send params: ${formatValidationErrors(validateChatSendParams.errors)}`));
8027
8034
  return;
8028
8035
  }
8036
+ if (!isReady()) {
8037
+ if (!await awaitReady(5e3)) {
8038
+ respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "gateway not ready — companions still loading; retry shortly"));
8039
+ return;
8040
+ }
8041
+ }
8029
8042
  const p = params;
8030
8043
  const stopCommand = isChatStopCommandText(p.message);
8031
8044
  const normalizedAttachments = p.attachments?.map((a) => ({
@@ -10933,7 +10946,7 @@ const nodeHandlers = {
10933
10946
  const p = params;
10934
10947
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
10935
10948
  await respondUnavailableOnThrow(respond, async () => {
10936
- const { handleNodeEvent } = await import("./server-node-events-m9wC6iEi.js");
10949
+ const { handleNodeEvent } = await import("./server-node-events-CXM2XoLF.js");
10937
10950
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
10938
10951
  await handleNodeEvent({
10939
10952
  deps: context.deps,
@@ -17242,6 +17255,17 @@ function createGatewayHttpServer(opts) {
17242
17255
  async function handleRequest(req, res) {
17243
17256
  if (String(req.headers.upgrade ?? "").toLowerCase() === "websocket") return;
17244
17257
  try {
17258
+ if (req.method === "GET" && (req.url === "/__SKYKOI__/ready" || req.url?.startsWith("/__SKYKOI__/ready?"))) {
17259
+ const { readinessSnapshot } = await import("./readiness-WIOj3rry.js").then((n) => n.i);
17260
+ const snap = readinessSnapshot();
17261
+ const status = snap.ready ? 200 : 503;
17262
+ res.writeHead(status, {
17263
+ "Content-Type": "application/json",
17264
+ "Cache-Control": "no-store"
17265
+ });
17266
+ res.end(JSON.stringify(snap));
17267
+ return;
17268
+ }
17245
17269
  const configSnapshot = loadConfig();
17246
17270
  const trustedProxies = configSnapshot.gateway?.trustedProxies ?? [];
17247
17271
  if (await handleHooksRequest(req, res)) return;
@@ -17770,6 +17794,7 @@ function logGatewayStartup(params) {
17770
17794
  params.log.info(`log file: ${getResolvedLoggerSettings().file}`);
17771
17795
  if (params.isNixMode) params.log.info("gateway: running in Nix mode (config managed externally)");
17772
17796
  if (params.cfg.warmPool?.enabled) params.log.info("gateway: warm pool mode — awaiting assignment. Instance is ready and will be configured on claim via config hot-reload.");
17797
+ markReadyStep("workspace");
17773
17798
  }
17774
17799
 
17775
17800
  //#endregion
@@ -18090,6 +18115,7 @@ function startPlatformSync(opts) {
18090
18115
  const boot = resolveIdentity(cfg);
18091
18116
  if (!boot.platformUrl || !boot.koiId || !boot.gatewayToken) {
18092
18117
  log.info(`platform sync disabled (platformUrl=${!!boot.platformUrl}, koiId=${!!boot.koiId}, token=${!!boot.gatewayToken})`);
18118
+ markReadyStep("platform");
18093
18119
  return () => {};
18094
18120
  }
18095
18121
  log.info(`platform sync starting → ${boot.platformUrl}/api/koi/${boot.koiId}/gateway-heartbeat`);
@@ -18153,7 +18179,7 @@ function startPlatformSync(opts) {
18153
18179
  log.warn(`failed to reject ${requestId}: ${String(err)}`);
18154
18180
  }
18155
18181
  ticks += 1;
18156
- if (ticks % COMPANIONS_REFRESH_EVERY_TICKS === 0) try {
18182
+ if (ticks === 1 || ticks % COMPANIONS_REFRESH_EVERY_TICKS === 0) try {
18157
18183
  const fetched = await fetchCompanions({
18158
18184
  platformUrl,
18159
18185
  hostKoiId: koiId,
@@ -18166,8 +18192,10 @@ function startPlatformSync(opts) {
18166
18192
  hostWorkspaceDir: resolveKoiConfig(cfg, koiId)?.workspace || process.env.SKYKOI_WORKSPACE_DIR || `${process.env.HOME ?? ""}/skykoi-koi`,
18167
18193
  log
18168
18194
  });
18195
+ markReadyStep("companions");
18169
18196
  } catch (err) {
18170
18197
  log.warn(`companions: refresh failed: ${err?.message ?? err}`);
18198
+ if (ticks >= 5) markReadyStep("companions");
18171
18199
  }
18172
18200
  } catch (err) {
18173
18201
  log.warn(`platform heartbeat error: ${String(err)}`);
@@ -19692,7 +19720,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
19692
19720
  const heartbeatUnsub = onHeartbeatEvent((evt) => {
19693
19721
  broadcast("heartbeat", evt, { dropIfSlow: true });
19694
19722
  });
19695
- const sessionBridgeUnsub = (await import("./koi-event-bridge-DYn87swl.js")).startKoiEventBridge();
19723
+ const sessionBridgeUnsub = (await import("./koi-event-bridge-DD0aDBHE.js")).startKoiEventBridge();
19696
19724
  let utteranceTriggerUnsub = null;
19697
19725
  let heartbeatRunner = startHeartbeatRunner({ cfg: cfgAtStart });
19698
19726
  cron.start().catch((err) => logCron.error(`failed to start: ${String(err)}`));
@@ -19770,7 +19798,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
19770
19798
  broadcast,
19771
19799
  context: gatewayRequestContext
19772
19800
  });
19773
- utteranceTriggerUnsub = (await import("./koi-utterance-trigger-BsrWNqAv.js")).startKoiUtteranceTrigger({
19801
+ utteranceTriggerUnsub = (await import("./koi-utterance-trigger-DqYxQyyt.js")).startKoiUtteranceTrigger({
19774
19802
  chatSendHandler: coreGatewayHandlers["chat.send"],
19775
19803
  context: gatewayRequestContext,
19776
19804
  selfKoiId: process.env.SKYKOI_KOI_ID
@@ -1,4 +1,4 @@
1
- import { ht as loadSKYKOIPlugins } from "./reply-B86SHzc3.js";
1
+ import { ht as loadSKYKOIPlugins } from "./reply-BzIwnqq4.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-RXphV8Xh.js";
3
3
  import { l as normalizeKoiId } from "./session-key-DvA8Pdt6.js";
4
4
  import { b as sleep } from "./utils-rBzA-VDv.js";
@@ -1,4 +1,4 @@
1
- import { Bn as resolveUserTimezone, Cr as peekSystemEvents, F as resolveHeartbeatDeliveryTarget, I as resolveHeartbeatSenderContext, In as resolveEffectiveMessagesConfig, ar as getQueueSize, dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, fn as resolveHeartbeatVisibility, fr as DEFAULT_HEARTBEAT_EVERY, ft as requestHeartbeatNow, gn as resolveIndicatorType, hr as stripHeartbeatToken, ir as enqueueCommandInLane, mr as resolveHeartbeatPrompt$1, pn as emitHeartbeatEvent, pr as isHeartbeatContentEffectivelyEmpty, pt as setHeartbeatWakeHandler, sr as CommandLane, t as getReplyFromConfig, u as isEmbeddedPiRunActive } from "./reply-B86SHzc3.js";
1
+ import { Bn as resolveUserTimezone, Cr as peekSystemEvents, F as resolveHeartbeatDeliveryTarget, I as resolveHeartbeatSenderContext, In as resolveEffectiveMessagesConfig, ar as getQueueSize, dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, fn as resolveHeartbeatVisibility, fr as DEFAULT_HEARTBEAT_EVERY, ft as requestHeartbeatNow, gn as resolveIndicatorType, hr as stripHeartbeatToken, ir as enqueueCommandInLane, mr as resolveHeartbeatPrompt$1, pn as emitHeartbeatEvent, pr as isHeartbeatContentEffectivelyEmpty, pt as setHeartbeatWakeHandler, sr as CommandLane, t as getReplyFromConfig, u as isEmbeddedPiRunActive } from "./reply-BzIwnqq4.js";
2
2
  import { C as colorize, T as theme, c as defaultRuntime, m as info, t as createSubsystemLogger, w as isRich } from "./subsystem-RXphV8Xh.js";
3
3
  import { d as resolveKoiIdFromSessionKey, h as toKoiStoreSessionKey, l as normalizeKoiId } from "./session-key-DvA8Pdt6.js";
4
4
  import { t as runCommandWithTimeout } from "./exec-BE7MIgZB.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-BSGewuKF.js";
2
- import "./reply-B86SHzc3.js";
2
+ import "./reply-BzIwnqq4.js";
3
3
  import { T as theme, c as defaultRuntime } from "./subsystem-RXphV8Xh.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { h as resolveUserPath, t as CONFIG_DIR, y as shortenHomePath } from "./utils-rBzA-VDv.js";
@@ -57,10 +57,10 @@ import "./session-cost-usage-CbribqqH.js";
57
57
  import "./control-service-BqW198ZU.js";
58
58
  import "./channel-selection-B5tUOB8t.js";
59
59
  import "./event-log-DtrKraIx.js";
60
- import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-Bzcky8JN.js";
60
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-CVWNRtyL.js";
61
61
  import { t as renderTable } from "./table-CgHdpI6b.js";
62
62
  import { a as parseFrontmatter, n as loadWorkspaceHookEntries, t as buildWorkspaceHookStatus } from "./hooks-status-DbwN6pvO.js";
63
- import { t as buildPluginStatusReport } from "./status-BtmfaynB.js";
63
+ import { t as buildPluginStatusReport } from "./status-DwP_7RSF.js";
64
64
  import fs from "node:fs";
65
65
  import path from "node:path";
66
66
  import os from "node:os";
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import "./pi-embedded-helpers-BSGewuKF.js";
3
- import { Rr as applyTemplate, an as monitorWebChannel, cn as installUnhandledRejectionHandler, t as getReplyFromConfig, un as waitForever } from "./reply-B86SHzc3.js";
3
+ import { Rr as applyTemplate, an as monitorWebChannel, cn as installUnhandledRejectionHandler, t as getReplyFromConfig, un as waitForever } from "./reply-BzIwnqq4.js";
4
4
  import { r as enableConsoleCapture } from "./subsystem-RXphV8Xh.js";
5
5
  import "./paths-VdmjGGyc.js";
6
6
  import { S as toWhatsappJid, d as normalizeE164, n as assertWebChannel } from "./utils-rBzA-VDv.js";
@@ -57,27 +57,27 @@ import "./session-cost-usage-CbribqqH.js";
57
57
  import "./control-service-BqW198ZU.js";
58
58
  import "./channel-selection-B5tUOB8t.js";
59
59
  import "./event-log-DtrKraIx.js";
60
- import { t as createDefaultDeps } from "./deps-DT7sXF3f.js";
60
+ import { t as createDefaultDeps } from "./deps-D6jqNSQw.js";
61
61
  import { l as ensureBinary, u as promptYesNo } from "./tailscale-4hm01eUI.js";
62
62
  import { t as loadDotEnv } from "./dotenv-DKI6139G.js";
63
63
  import { t as isMainModule } from "./is-main-BmAsi6j8.js";
64
64
  import { t as ensureSKYKOICliOnPath } from "./path-env-B1xMZ4TX.js";
65
65
  import { g as assertSupportedRuntime } from "./daemon-runtime-CdyzhAad.js";
66
66
  import "./ports-RMh76QZ2.js";
67
- import "./config-guard-CFWJnfNC.js";
67
+ import "./config-guard-IVCcnwoT.js";
68
68
  import "./logging-BusiCyt_.js";
69
69
  import "./note-CbRknFZ7.js";
70
70
  import "./clack-prompter-BxHCh6Tn.js";
71
- import "./onboarding-DNx4p64e.js";
72
- import "./onboard-skills-D_Cf1w2t.js";
73
- import "./github-copilot-auth-DaSea1y3.js";
74
- import "./onboard-channels-DwQbGbF-.js";
71
+ import "./onboarding-BucMXbm8.js";
72
+ import "./onboard-skills-BrR3KT-F.js";
73
+ import "./github-copilot-auth-C8y5LnLh.js";
74
+ import "./onboard-channels-BdIPyOTh.js";
75
75
  import "./plugin-auto-enable-CrpAktec.js";
76
- import "./archive-Bzcky8JN.js";
76
+ import "./archive-CVWNRtyL.js";
77
77
  import "./skill-scanner-WnNLktfw.js";
78
- import "./installs-xcr-t5iT.js";
79
- import "./health-format-Bq8p1qaT.js";
80
- import "./update-runner-Bin5aC_B.js";
78
+ import "./installs-BFa_D4ve.js";
79
+ import "./health-format-Bdsy_0Lq.js";
80
+ import "./update-runner-DAf5zxN2.js";
81
81
  import "./auth-DcQcmQH5.js";
82
82
  import "./audit-xPP239ME.js";
83
83
  import "./table-CgHdpI6b.js";
@@ -87,22 +87,22 @@ import "./systemd-BuS1yu_z.js";
87
87
  import "./service-audit-cgxNpqDF.js";
88
88
  import "./node-service-DfmbTqpi.js";
89
89
  import "./channels-status-issues-GKs-LbrV.js";
90
- import "./register.subclis-CSdZq0EA.js";
90
+ import "./register.subclis-TZcmCyNd.js";
91
91
  import "./gateway-rpc-ChtP1AJk.js";
92
92
  import "./help-format-Cbr54gLP.js";
93
- import "./koi-BKmG6w9N.js";
94
- import "./plugin-registry-CC4c8m6-.js";
95
- import "./configure-DfY8XFfW.js";
93
+ import "./koi-Vbg03Me4.js";
94
+ import "./plugin-registry-yEj_k7iS.js";
95
+ import "./configure-LnNfK5Ic.js";
96
96
  import "./systemd-linger-BLQwmm6k.js";
97
97
  import "./widearea-dns-DMja3M8B.js";
98
98
  import "./bonjour-discovery-D_eYlsQc.js";
99
99
  import "./auth-health-QVPApxZ5.js";
100
- import "./doctor-DF8Q7-X2.js";
101
- import "./completion-cli-Bc9zp3Jf.js";
100
+ import "./doctor-CCLvZzRQ.js";
101
+ import "./completion-cli-B3WdcJZs.js";
102
102
  import "./hooks-status-DbwN6pvO.js";
103
103
  import "./tui-DissoNdH.js";
104
- import "./channel-options-B2tayc4t.js";
105
- import { n as buildProgram } from "./program-BwSWrSZJ.js";
104
+ import "./channel-options-D8_JzxRT.js";
105
+ import { n as buildProgram } from "./program-BSzeDCaY.js";
106
106
  import process from "node:process";
107
107
  import { fileURLToPath } from "node:url";
108
108
 
@@ -1,7 +1,7 @@
1
1
  import { h as resolveUserPath, t as CONFIG_DIR } from "./utils-rBzA-VDv.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-BE7MIgZB.js";
3
3
  import { a as MANIFEST_KEY } from "./manifest-registry-BM_kgwtA.js";
4
- import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-Bzcky8JN.js";
4
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-CVWNRtyL.js";
5
5
  import { t as scanDirectoryWithSummary } from "./skill-scanner-WnNLktfw.js";
6
6
  import path from "node:path";
7
7
  import os from "node:os";
@@ -1,5 +1,5 @@
1
1
  import { H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, W as normalizeVerboseLevel } from "./pi-embedded-helpers-BSGewuKF.js";
2
- import { An as KOI_LANE_NESTED, Gt as getRemoteSkillEligibility, H as runWithModelFallback, L as resolveOutboundTarget, R as resolveSessionDeliveryTarget, Zt as getSkillsSnapshotVersion, _r as clearSessionAuthProfileOverride, c as runEmbeddedPiKoi, gr as lookupContextTokens, i as runCliKoi, n as getCliSessionId, o as resolveSendPolicy, r as setCliSessionId, vr as applyModelOverrideToSessionEntry, wr as loadModelCatalog, yr as applyVerboseOverride, zr as resolveKoiTimeoutMs } from "./reply-B86SHzc3.js";
2
+ import { An as KOI_LANE_NESTED, Gt as getRemoteSkillEligibility, H as runWithModelFallback, L as resolveOutboundTarget, R as resolveSessionDeliveryTarget, Zt as getSkillsSnapshotVersion, _r as clearSessionAuthProfileOverride, c as runEmbeddedPiKoi, gr as lookupContextTokens, i as runCliKoi, n as getCliSessionId, o as resolveSendPolicy, r as setCliSessionId, vr as applyModelOverrideToSessionEntry, wr as loadModelCatalog, yr as applyVerboseOverride, zr as resolveKoiTimeoutMs } from "./reply-BzIwnqq4.js";
3
3
  import { N as DEFAULT_CHAT_CHANNEL, c as defaultRuntime } from "./subsystem-RXphV8Xh.js";
4
4
  import { d as resolveKoiIdFromSessionKey, l as normalizeKoiId, u as normalizeMainKey } from "./session-key-DvA8Pdt6.js";
5
5
  import { S as ensureKoiWorkspace, a as resolveKoiDir, c as resolveKoiSkillsFilter, l as resolveKoiWorkspaceDir, n as listKoiIds, o as resolveKoiModelFallbacksOverride, s as resolveKoiModelPrimary } from "./koi-scope-Bhy7bqp7.js";
@@ -14,7 +14,7 @@ import { n as resolveSessionFilePath, o as resolveStorePath } from "./paths-tKN7
14
14
  import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "./deliver-B_Z1fUHR.js";
15
15
  import { n as emitKoiEvent, o as registerKoiRunContext, t as clearKoiRunContext } from "./koi-events-CA5YtglQ.js";
16
16
  import { l as hasNonzeroUsage } from "./session-cost-usage-CbribqqH.js";
17
- import { t as createDefaultDeps } from "./deps-DT7sXF3f.js";
17
+ import { t as createDefaultDeps } from "./deps-D6jqNSQw.js";
18
18
  import crypto from "node:crypto";
19
19
 
20
20
  //#region src/cli/outbound-send-deps.ts
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-BSGewuKF.js";
2
- import { Nt as openUrl, U as describeFailoverError, c as runEmbeddedPiKoi, gt as loadProviderUsageSummary, vt as formatUsageWindowSummary, wr as loadModelCatalog, yt as resolveUsageProviderId } from "./reply-B86SHzc3.js";
2
+ import { Nt as openUrl, U as describeFailoverError, c as runEmbeddedPiKoi, gt as loadProviderUsageSummary, vt as formatUsageWindowSummary, wr as loadModelCatalog, yt as resolveUsageProviderId } from "./reply-BzIwnqq4.js";
3
3
  import { C as colorize, T as theme, c as defaultRuntime, w as isRich$1 } from "./subsystem-RXphV8Xh.js";
4
4
  import { t as CONFIG_PATH } from "./paths-VdmjGGyc.js";
5
5
  import { y as shortenHomePath } from "./utils-rBzA-VDv.js";
@@ -61,7 +61,7 @@ import "./event-log-DtrKraIx.js";
61
61
  import { n as logConfigUpdated } from "./logging-BusiCyt_.js";
62
62
  import "./note-CbRknFZ7.js";
63
63
  import { t as createClackPrompter } from "./clack-prompter-BxHCh6Tn.js";
64
- import { a as normalizeAlias, c as updateConfig, d as resolvePluginProviders, i as formatTokenK, l as createVpsAwareOAuthHandlers, n as ensureFlagCompatibility, o as resolveKnownKoiId, pt as validateAnthropicSetupToken, r as formatMs, s as resolveModelTarget, t as githubCopilotLoginCommand, u as isRemoteEnvironment, v as applyAuthProfileConfig } from "./github-copilot-auth-DaSea1y3.js";
64
+ import { a as normalizeAlias, c as updateConfig, d as resolvePluginProviders, i as formatTokenK, l as createVpsAwareOAuthHandlers, n as ensureFlagCompatibility, o as resolveKnownKoiId, pt as validateAnthropicSetupToken, r as formatMs, s as resolveModelTarget, t as githubCopilotLoginCommand, u as isRemoteEnvironment, v as applyAuthProfileConfig } from "./github-copilot-auth-C8y5LnLh.js";
65
65
  import { t as renderTable } from "./table-CgHdpI6b.js";
66
66
  import { i as redactSecrets } from "./format-BimjsTfO.js";
67
67
  import { n as buildAuthHealthSummary, r as formatRemainingShort, t as DEFAULT_OAUTH_WARN_MS } from "./auth-health-QVPApxZ5.js";
@@ -33,7 +33,7 @@ import { r as isSystemdUserServiceAvailable } from "./systemd-BuS1yu_z.js";
33
33
  import { t as resolveNodeService } from "./node-service-DfmbTqpi.js";
34
34
  import { n as renderSystemdUnavailableHints } from "./systemd-hints-CLa1lyL0.js";
35
35
  import { d as createNullWriter, f as emitDaemonActionJson, i as parsePort, n as formatRuntimeStatus, u as buildDaemonServiceSnapshot } from "./shared-7rrirrq8.js";
36
- import { n as loadNodeHostConfig, t as runNodeHost } from "./runner-DF18iXwq.js";
36
+ import { n as loadNodeHostConfig, t as runNodeHost } from "./runner-aLiAcR7x.js";
37
37
 
38
38
  //#region src/commands/node-daemon-install-helpers.ts
39
39
  async function buildNodeInstallPlan(params) {