skykoi 2026.3.92 → 2026.3.93

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 (39) hide show
  1. package/dist/{agent-DxiVLxS0.js → agent-D-zxOQsb.js} +2 -2
  2. package/dist/{archive-CwUX4il3.js → archive-D3q2XAkA.js} +1 -1
  3. package/dist/build-info.json +3 -3
  4. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  5. package/dist/{channel-options-DI1lXlNK.js → channel-options-x5FTMNyd.js} +1 -1
  6. package/dist/{channels-cli-D1UW-HMv.js → channels-cli-DREJRo9h.js} +6 -6
  7. package/dist/cli/daemon-cli.js +1 -1
  8. package/dist/{cli-Cokc7FX7.js → cli-D6AfBjdz.js} +1 -1
  9. package/dist/{completion-cli-B2FZlLTE.js → completion-cli-B1HJnl-F.js} +1 -1
  10. package/dist/{config-guard-B_vYKlsi.js → config-guard-DpcVu5Tw.js} +13 -13
  11. package/dist/{configure-BZ625PeT.js → configure-B4qOJJUV.js} +4 -4
  12. package/dist/{daemon-cli-CClKuKDl.js → daemon-cli-m0XMw1Ga.js} +2 -2
  13. package/dist/{deps-D7589aUm.js → deps-SsvcL-Jm.js} +1 -1
  14. package/dist/{doctor-C0KGGHEo.js → doctor-D8N-gHG5.js} +3 -3
  15. package/dist/entry.js +1 -1
  16. package/dist/extension-api.js +1 -1
  17. package/dist/{gateway-cli-CuXMNzUx.js → gateway-cli-BxTZBm1n.js} +17 -17
  18. package/dist/{github-copilot-auth-BfKh2PS7.js → github-copilot-auth-CjuKOwtS.js} +1 -1
  19. package/dist/{health-format-BRO6ZdSV.js → health-format-NL8bJAOG.js} +1 -1
  20. package/dist/{hooks-cli-Bp8UYOf7.js → hooks-cli-BA2fiiQ4.js} +3 -3
  21. package/dist/index.js +19 -19
  22. package/dist/{installs-BjC_GfUD.js → installs-BCoqZtxb.js} +1 -1
  23. package/dist/{models-cli-DM9BQPxN.js → models-cli-BmUcHjtC.js} +2 -2
  24. package/dist/{onboard-channels-Bqn0nVg_.js → onboard-channels-C9IBRX3J.js} +2 -2
  25. package/dist/{onboard-skills-DgUFCyHf.js → onboard-skills-CTS-IagA.js} +3 -3
  26. package/dist/{onboarding-VdNWx4R1.js → onboarding-k6R-035y.js} +6 -6
  27. package/dist/{plugin-registry-5qpwJA3E.js → plugin-registry-D9_kRtK7.js} +1 -1
  28. package/dist/plugin-sdk/index.js +3 -3
  29. package/dist/{plugins-cli-M54_Y826.js → plugins-cli-CiDkGJRQ.js} +5 -5
  30. package/dist/{program-DB6bKRW8.js → program-DP-p8ALC.js} +4 -4
  31. package/dist/{register.subclis-L-0VCsxM.js → register.subclis-4CGiRqAh.js} +10 -10
  32. package/dist/{reply-FlSo_-OX.js → reply-B4cc3N38.js} +36 -1
  33. package/dist/{run-main-BJk-dDKs.js → run-main-CQ7ffdTT.js} +20 -20
  34. package/dist/{server-node-events-DKu1Ebih.js → server-node-events-DiuluT7E.js} +3 -3
  35. package/dist/{status-DQaL_m6W.js → status-B1SeTVVT.js} +1 -1
  36. package/dist/{update-9pzwg2aV.js → update-DV-o1INC.js} +1 -1
  37. package/dist/{update-cli-tvRoq2b0.js → update-cli-BzG11wjR.js} +11 -11
  38. package/dist/{update-runner-p6x8CBa0.js → update-runner-CrneRBnx.js} +3 -3
  39. package/package.json +1 -1
@@ -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-ceEtRKcD.js";
2
- import { Bt as getRemoteSkillEligibility, Cn as AGENT_LANE_NESTED, Kt as getSkillsSnapshotVersion, L as runWithModelFallback, Lr as resolveAgentTimeoutMs, M as resolveOutboundTarget, N as resolveSessionDeliveryTarget, On as registerAgentRunContext, Sr as loadModelCatalog, Tn as emitAgentEvent, _r as applyVerboseOverride, c as runEmbeddedPiAgent, gr as applyModelOverrideToSessionEntry, hr as clearSessionAuthProfileOverride, i as runCliAgent, mr as lookupContextTokens, n as getCliSessionId, o as resolveSendPolicy, r as setCliSessionId, wn as clearAgentRunContext } from "./reply-FlSo_-OX.js";
2
+ import { Bt as getRemoteSkillEligibility, Cn as AGENT_LANE_NESTED, Kt as getSkillsSnapshotVersion, L as runWithModelFallback, Lr as resolveAgentTimeoutMs, M as resolveOutboundTarget, N as resolveSessionDeliveryTarget, On as registerAgentRunContext, Sr as loadModelCatalog, Tn as emitAgentEvent, _r as applyVerboseOverride, c as runEmbeddedPiAgent, gr as applyModelOverrideToSessionEntry, hr as clearSessionAuthProfileOverride, i as runCliAgent, mr as lookupContextTokens, n as getCliSessionId, o as resolveSendPolicy, r as setCliSessionId, wn as clearAgentRunContext } from "./reply-B4cc3N38.js";
3
3
  import { N as DEFAULT_CHAT_CHANNEL, c as defaultRuntime } from "./subsystem-Dl1sS5S-.js";
4
4
  import { d as resolveAgentIdFromSessionKey, l as normalizeAgentId, u as normalizeMainKey } from "./session-key-hGS8_hRJ.js";
5
5
  import { a as resolveAgentModelPrimary, i as resolveAgentModelFallbacksOverride, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, x as ensureAgentWorkspace } from "./agent-scope-DrL2uTp9.js";
@@ -13,7 +13,7 @@ import { a as isInternalMessageChannel, d as resolveMessageChannel, i as isGatew
13
13
  import { n as resolveSessionFilePath, o as resolveStorePath } from "./paths-CAvRsPIf.js";
14
14
  import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "./deliver-C04W5B6d.js";
15
15
  import { l as hasNonzeroUsage } from "./session-cost-usage-BCDbst6m.js";
16
- import { t as createDefaultDeps } from "./deps-D7589aUm.js";
16
+ import { t as createDefaultDeps } from "./deps-SsvcL-Jm.js";
17
17
  import crypto from "node:crypto";
18
18
 
19
19
  //#region src/cli/outbound-send-deps.ts
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "./chunk-D_gEzPfs.js";
2
- import { gt as require_inherits } from "./reply-FlSo_-OX.js";
2
+ import { gt as require_inherits } from "./reply-B4cc3N38.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.92",
3
- "commit": "34b3a3c31f7866f6358e23b0d8ad8efb2edc99a5",
4
- "builtAt": "2026-04-12T00:46:41.732Z"
2
+ "version": "2026.3.93",
3
+ "commit": "b608d1d411fe3eb7d4d7b2592066e835d88dc742",
4
+ "builtAt": "2026-04-12T03:49:12.002Z"
5
5
  }
@@ -1 +1 @@
1
- 6b47dd83f1aea1ea9a42e13b628f28e40574669a0a7cadcb29998fcd79e6ae67
1
+ a8beee940e3e51d8f9ebd07c3c5c17661ad94b156d59a2a6b71b42b45315277f
@@ -2,7 +2,7 @@ import { M as CHAT_CHANNEL_ORDER } from "./subsystem-Dl1sS5S-.js";
2
2
  import { t as isTruthyEnvValue } from "./env-EjmWoVFM.js";
3
3
  import { n as listChannelPlugins } from "./plugins-CvpPbUcD.js";
4
4
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-5KyNn7n8.js";
5
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-5qpwJA3E.js";
5
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-D9_kRtK7.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-ceEtRKcD.js";
2
- import { Mn as createSlackWebClient, dt as loadProviderUsageSummary, ft as formatUsageReportLines, gn as fetchChannelPermissionsDiscord, hn as parseDiscordTarget } from "./reply-FlSo_-OX.js";
2
+ import { Mn as createSlackWebClient, dt as loadProviderUsageSummary, ft as formatUsageReportLines, gn as fetchChannelPermissionsDiscord, hn as parseDiscordTarget } from "./reply-B4cc3N38.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-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-hGS8_hRJ.js";
@@ -60,14 +60,14 @@ import { n as resolveMessageChannelSelection } from "./channel-selection-BZvCBj3
60
60
  import { t as resolveChannelDefaultAccountId } from "./helpers-Ccy5jhZP.js";
61
61
  import "./note-ty8fydmp.js";
62
62
  import { t as createClackPrompter } from "./clack-prompter-D03d7Olp.js";
63
- import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-Bqn0nVg_.js";
63
+ import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-C9IBRX3J.js";
64
64
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-5KyNn7n8.js";
65
- import "./archive-CwUX4il3.js";
65
+ import "./archive-D3q2XAkA.js";
66
66
  import "./skill-scanner-BapBkMb3.js";
67
- import "./installs-BjC_GfUD.js";
67
+ import "./installs-BCoqZtxb.js";
68
68
  import { t as collectChannelStatusIssues } from "./channels-status-issues-BaXwaWXv.js";
69
- import { n as hasExplicitOptions } from "./plugin-registry-5qpwJA3E.js";
70
- import { t as formatCliChannelOptions } from "./channel-options-DI1lXlNK.js";
69
+ import { n as hasExplicitOptions } from "./plugin-registry-D9_kRtK7.js";
70
+ import { t as formatCliChannelOptions } from "./channel-options-x5FTMNyd.js";
71
71
  import { t as buildChannelAccountSnapshot } from "./status-DqH1H1Pt.js";
72
72
  import { t as parseLogLine } from "./parse-log-line-BjmXZSHU.js";
73
73
  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-CClKuKDl.js";
2
+ export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-m0XMw1Ga.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-ceEtRKcD.js";
2
- import { ut as loadSKYKOIPlugins } from "./reply-FlSo_-OX.js";
2
+ import { ut as loadSKYKOIPlugins } from "./reply-B4cc3N38.js";
3
3
  import { t as createSubsystemLogger } from "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import "./utils-DIctjiBL.js";
@@ -1,6 +1,6 @@
1
1
  import { r as __exportAll } from "./chunk-D_gEzPfs.js";
2
2
  import { g as resolveStateDir } from "./paths-DcA9-j8b.js";
3
- import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-L-0VCsxM.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-4CGiRqAh.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 { $t as runMemoryStatus, Ct as formatControlUiSshHint, D as runMessageAction, Et as moveToTrash, Ft as waitForGatewayReachable, I as CHANNEL_MESSAGE_ACTION_NAMES, Mt as resolveControlUiLinks, Ot as openUrl, P as formatTargetDisplay, Qt as registerMemoryCli, St as ensureWorkspaceAndSessions, Tt as handleReset, at as CHANNEL_TARGETS_DESCRIPTION, jt as randomToken, mr as lookupContextTokens, ot as CHANNEL_TARGET_DESCRIPTION, vt as DEFAULT_WORKSPACE, xt as detectBrowserOpenSupport, yt as applyWizardMetadata } from "./reply-FlSo_-OX.js";
1
+ import { $t as runMemoryStatus, Ct as formatControlUiSshHint, D as runMessageAction, Et as moveToTrash, Ft as waitForGatewayReachable, I as CHANNEL_MESSAGE_ACTION_NAMES, Mt as resolveControlUiLinks, Ot as openUrl, P as formatTargetDisplay, Qt as registerMemoryCli, St as ensureWorkspaceAndSessions, Tt as handleReset, at as CHANNEL_TARGETS_DESCRIPTION, jt as randomToken, mr as lookupContextTokens, ot as CHANNEL_TARGET_DESCRIPTION, vt as DEFAULT_WORKSPACE, xt as detectBrowserOpenSupport, yt as applyWizardMetadata } from "./reply-B4cc3N38.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-Dl1sS5S-.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-DcA9-j8b.js";
4
4
  import { l as normalizeAgentId, n as DEFAULT_AGENT_ID, t as DEFAULT_ACCOUNT_ID } from "./session-key-hGS8_hRJ.js";
@@ -19,29 +19,29 @@ import { t as formatDocsLink } from "./links-yjT27ApF.js";
19
19
  import { n as runCommandWithRuntime } from "./cli-utils-CodyYLHe.js";
20
20
  import { n as withProgress } from "./progress-C_FQJYVr.js";
21
21
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-DjEIdF58.js";
22
- import { t as createDefaultDeps } from "./deps-D7589aUm.js";
22
+ import { t as createDefaultDeps } from "./deps-SsvcL-Jm.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-Cjd-rzl-.js";
24
24
  import { t as resolveChannelDefaultAccountId } from "./helpers-Ccy5jhZP.js";
25
25
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-B818ac7o.js";
26
26
  import { t as WizardCancelledError } from "./prompts-CDHXxTNu.js";
27
27
  import { t as createClackPrompter } from "./clack-prompter-D03d7Olp.js";
28
- import { a as buildAgentSummaries, c as loadAgentIdentity, f as parseIdentityMarkdown, i as applyAgentConfig, l as pruneAgentConfig, n as statusCommand, o as findAgentEntryIndex, s as listAgentEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-VdNWx4R1.js";
29
- import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-DgUFCyHf.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-BfKh2PS7.js";
31
- import { n as setupChannels } from "./onboard-channels-Bqn0nVg_.js";
32
- import { l as healthCommand } from "./health-format-BRO6ZdSV.js";
28
+ import { a as buildAgentSummaries, c as loadAgentIdentity, f as parseIdentityMarkdown, i as applyAgentConfig, l as pruneAgentConfig, n as statusCommand, o as findAgentEntryIndex, s as listAgentEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-k6R-035y.js";
29
+ import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-CTS-IagA.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-CjuKOwtS.js";
31
+ import { n as setupChannels } from "./onboard-channels-C9IBRX3J.js";
32
+ import { l as healthCommand } from "./health-format-NL8bJAOG.js";
33
33
  import { t as renderTable } from "./table-BuHjFIeu.js";
34
34
  import { t as resolveGatewayService } from "./service-Fxlow9XO.js";
35
35
  import { r as isSystemdUserServiceAvailable } from "./systemd-BTcdURXT.js";
36
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-L-0VCsxM.js";
36
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-4CGiRqAh.js";
37
37
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-CO4ZKF3u.js";
38
38
  import { t as formatHelpExamples } from "./help-format-rUxU9jE_.js";
39
- import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as agentCommand } from "./agent-DxiVLxS0.js";
40
- import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-5qpwJA3E.js";
39
+ import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as agentCommand } from "./agent-D-zxOQsb.js";
40
+ import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-D9_kRtK7.js";
41
41
  import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-xCg96Vkw.js";
42
- import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-BZ625PeT.js";
42
+ import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-B4qOJJUV.js";
43
43
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-BSA8MnYc.js";
44
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-C0KGGHEo.js";
44
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-D8N-gHG5.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-BZ625PeT.js").then((n) => n.t);
2795
+ const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-B4qOJJUV.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 { At as probeGatewayReachable, Dt as normalizeGatewayTokenInput, Ft as waitForGatewayReachable, Mt as resolveControlUiLinks, Pt as summarizeExistingConfig, St as ensureWorkspaceAndSessions, jt as randomToken, kt as printWizardHeader, vt as DEFAULT_WORKSPACE, wt as guardCancel, yt as applyWizardMetadata } from "./reply-FlSo_-OX.js";
2
+ import { At as probeGatewayReachable, Dt as normalizeGatewayTokenInput, Ft as waitForGatewayReachable, Mt as resolveControlUiLinks, Pt as summarizeExistingConfig, St as ensureWorkspaceAndSessions, jt as randomToken, kt as printWizardHeader, vt as DEFAULT_WORKSPACE, wt as guardCancel, yt as applyWizardMetadata } from "./reply-B4cc3N38.js";
3
3
  import { c as defaultRuntime } from "./subsystem-Dl1sS5S-.js";
4
4
  import { t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-DcA9-j8b.js";
5
5
  import { h as resolveUserPath, y as shortenHomePath } from "./utils-DIctjiBL.js";
@@ -15,9 +15,9 @@ import { n as logConfigUpdated } from "./logging-B818ac7o.js";
15
15
  import { t as note$1 } from "./note-ty8fydmp.js";
16
16
  import { t as WizardCancelledError } from "./prompts-CDHXxTNu.js";
17
17
  import { t as createClackPrompter } from "./clack-prompter-D03d7Olp.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-DgUFCyHf.js";
19
- import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-Bqn0nVg_.js";
20
- import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-BRO6ZdSV.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-CTS-IagA.js";
19
+ import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-C9IBRX3J.js";
20
+ import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-NL8bJAOG.js";
21
21
  import { t as resolveGatewayService } from "./service-Fxlow9XO.js";
22
22
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-BSA8MnYc.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 { Mt as resolveControlUiLinks } from "./reply-FlSo_-OX.js";
2
+ import { Mt as resolveControlUiLinks } from "./reply-B4cc3N38.js";
3
3
  import { C as colorize, O as getResolvedLoggerSettings, T as theme, c as defaultRuntime, w as isRich } from "./subsystem-Dl1sS5S-.js";
4
4
  import { d as resolveIsNixMode, g as resolveStateDir, o as resolveConfigPath, u as resolveGatewayPort } from "./paths-DcA9-j8b.js";
5
5
  import { y as shortenHomePath } from "./utils-DIctjiBL.js";
@@ -14,7 +14,7 @@ import { n as callGateway } from "./call-BT4h4FFm.js";
14
14
  import { t as formatDocsLink } from "./links-yjT27ApF.js";
15
15
  import { n as withProgress } from "./progress-C_FQJYVr.js";
16
16
  import { d as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-CXZus5hc.js";
17
- import { t as createDefaultDeps } from "./deps-D7589aUm.js";
17
+ import { t as createDefaultDeps } from "./deps-SsvcL-Jm.js";
18
18
  import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-Cjd-rzl-.js";
19
19
  import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-Fxlow9XO.js";
20
20
  import { r as isSystemdUserServiceAvailable } from "./systemd-BTcdURXT.js";
@@ -1,4 +1,4 @@
1
- import { _t as sendMessageIMessage, fn as sendMessageTelegram, jn as sendMessageSlack, kn as sendMessageWhatsApp, pn as sendMessageDiscord } from "./reply-FlSo_-OX.js";
1
+ import { _t as sendMessageIMessage, fn as sendMessageTelegram, jn as sendMessageSlack, kn as sendMessageWhatsApp, pn as sendMessageDiscord } from "./reply-B4cc3N38.js";
2
2
  import { b as sendMessageSignal } from "./deliver-C04W5B6d.js";
3
3
 
4
4
  //#region src/cli/deps.ts
@@ -1,4 +1,4 @@
1
- import { Sr as loadModelCatalog, jt as randomToken, kt as printWizardHeader, ut as loadSKYKOIPlugins, wt as guardCancel, yt as applyWizardMetadata } from "./reply-FlSo_-OX.js";
1
+ import { Sr as loadModelCatalog, jt as randomToken, kt as printWizardHeader, ut as loadSKYKOIPlugins, wt as guardCancel, yt as applyWizardMetadata } from "./reply-B4cc3N38.js";
2
2
  import { O as getResolvedLoggerSettings, c as defaultRuntime } from "./subsystem-Dl1sS5S-.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-DcA9-j8b.js";
4
4
  import { i as buildAgentMainSessionKey, l as normalizeAgentId, r as DEFAULT_MAIN_KEY, t as DEFAULT_ACCOUNT_ID } from "./session-key-hGS8_hRJ.js";
@@ -25,8 +25,8 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-Ccy5jhZP.js";
25
25
  import { n as logConfigUpdated } from "./logging-B818ac7o.js";
26
26
  import { t as note$1 } from "./note-ty8fydmp.js";
27
27
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-5KyNn7n8.js";
28
- import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-BRO6ZdSV.js";
29
- import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-p6x8CBa0.js";
28
+ import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-NL8bJAOG.js";
29
+ import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-CrneRBnx.js";
30
30
  import { i as resolveGatewayAuth } from "./auth-DN9iwG98.js";
31
31
  import { t as buildWorkspaceSkillStatus } from "./skills-status-BimvAz-k.js";
32
32
  import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLaunchAgentListed, o as resolveGatewayLogPaths, r as isLaunchAgentLoaded, t as resolveGatewayService } from "./service-Fxlow9XO.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-BJk-dDKs.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
247
+ import("./run-main-CQ7ffdTT.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-ceEtRKcD.js";
2
- import { Lr as resolveAgentTimeoutMs, Pn as resolveAgentIdentity, c as runEmbeddedPiAgent } from "./reply-FlSo_-OX.js";
2
+ import { Lr as resolveAgentTimeoutMs, Pn as resolveAgentIdentity, c as runEmbeddedPiAgent } from "./reply-B4cc3N38.js";
3
3
  import "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import "./utils-DIctjiBL.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-ceEtRKcD.js";
3
- import { $ as inferLegacyName, $n as setTtsEnabled, An as normalizePollInput, Ar as DEFAULT_INPUT_PDF_MAX_PIXELS, B as consumeGatewaySigusr1RestartAuthorization, Bn as createInternalHookEvent, Bt as getRemoteSkillEligibility, C as readSessionMessages, Cr as DEFAULT_INPUT_FILE_MAX_BYTES, Dn as onAgentEvent, Dr as DEFAULT_INPUT_IMAGE_MIMES, E as stripEnvelopeFromMessages, En as getAgentRunContext, Er as DEFAULT_INPUT_IMAGE_MAX_BYTES, F as resetDirectoryCache, Fr as normalizeMimeList, G as formatDoctorNonInteractiveHint, Gn as getTtsProvider, Gt as setSkillsRemoteRegistry, H as scheduleGatewaySigusr1Restart, Hn as triggerInternalHook, Ht as recordRemoteNodeInfo, In as formatUserTime, It as CONTROL_UI_AVATAR_PREFIX, J as summarizeRestartSentinel, Jn as resolveTtsApiKey, Jt as buildSafeExternalPrompt, K as formatRestartSentinelMessage, Kn as isTtsEnabled, Kt as getSkillsSnapshotVersion, L as runWithModelFallback, Ln as resolveUserTimeFormat, Lr as resolveAgentTimeoutMs, Lt as buildControlUiAvatarUrl, M as resolveOutboundTarget, Mr as DEFAULT_INPUT_TIMEOUT_MS, N as resolveSessionDeliveryTarget, Nr as extractFileContentFromSource, O as ensureOutboundSessionEntry, On as registerAgentRunContext, Or as DEFAULT_INPUT_MAX_REDIRECTS, Pn as resolveAgentIdentity, Pr as extractImageContentFromSource, Q as normalizeCronJobPatch, Qn as resolveTtsProviderOrder, Rn as resolveUserTimezone, Rt as normalizeControlUiBasePath, S as capArrayByJsonBytes, Sn as initSubagentRegistry, Sr as loadModelCatalog, T as resolveSessionTranscriptCandidates, Tn as emitAgentEvent, Tr as DEFAULT_INPUT_FILE_MIMES, Tt as handleReset, U as setGatewaySigusr1RestartPolicy, Un as OPENAI_TTS_MODELS, Ut as refreshRemoteBinsForConnectedNodes, V as isGatewaySigusr1RestartExternallyAllowed, Vn as registerInternalHook, Vt as primeRemoteSkillsCache, W as consumeRestartSentinel, Wn as OPENAI_TTS_VOICES, Wt as refreshRemoteNodeBins, X as writeRestartSentinel, Xn as resolveTtsConfig, Xt as getHookType, Yn as resolveTtsAutoMode, Yt as detectSuspiciousPatterns, Z as normalizeCronJobCreate, Zn as resolveTtsPrefsPath, Zt as isExternalHookSession, _ as loadCombinedSessionStoreForGateway, _n as dispatchInboundMessage, _r as applyVerboseOverride, a as normalizeSendPolicy, ar as CommandLane, b as resolveSessionModelRef, bn as isAbortTrigger, br as isSystemEventContextChanged, c as runEmbeddedPiAgent, cr as isDiagnosticsEnabled, d as waitForEmbeddedPiRunEnd, dt as loadProviderUsageSummary, er as setTtsProvider, et as normalizeOptionalAgentId, g as listSessionsFromStore, gr as applyModelOverrideToSessionEntry, h as listAgentsForGateway, ht as handleSlackHttpRequest, i as runCliAgent, in as registerUnhandledRejectionHandler, ir as setCommandLaneConcurrency, it as migrateLegacyCronPayload, jr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, k as resolveOutboundSessionRoute, kr as DEFAULT_INPUT_PDF_MAX_PAGES, l as abortEmbeddedPiRun, ln as getLastHeartbeatEvent, lr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, lt as getPluginToolMeta, m as resolveAnnounceTargetFromKey, mn as getChannelActivity, mr as lookupContextTokens, n as getCliSessionId, nn as normalizeGroupActivation, nt as normalizePayloadToSystemText, o as resolveSendPolicy, on as buildHistoryContextFromEntries, or as startDiagnosticHeartbeat, p as createSKYKOITools, pr as stripHeartbeatToken, qn as isTtsProviderConfigured, qt as registerSkillsChangeListener, r as setCliSessionId, rt as normalizeRequiredName, s as clearSessionQueues, sn as resolveHeartbeatVisibility, sr as stopDiagnosticHeartbeat, st as requestHeartbeatNow, tn as createReplyPrefixOptions, tr as textToSpeech, tt as normalizeOptionalText, un as onHeartbeatEvent, ut as loadSKYKOIPlugins, v as loadSessionEntry, vn as createReplyDispatcher, vr as parseVerboseOverride, w as readSessionPreviewItemsFromTranscript, wn as clearAgentRunContext, wr as DEFAULT_INPUT_FILE_MAX_CHARS, x as archiveFileOnDisk, xn as stopSubagentsForRequester, y as resolveGatewaySessionStoreTarget, yn as formatZonedTimestamp, yr as enqueueSystemEvent, z as authorizeGatewaySigusr1Restart, zn as clearInternalHooks, zt as resolveAssistantAvatarUrl } from "./reply-FlSo_-OX.js";
3
+ import { $ as inferLegacyName, $n as setTtsEnabled, An as normalizePollInput, Ar as DEFAULT_INPUT_PDF_MAX_PIXELS, B as consumeGatewaySigusr1RestartAuthorization, Bn as createInternalHookEvent, Bt as getRemoteSkillEligibility, C as readSessionMessages, Cr as DEFAULT_INPUT_FILE_MAX_BYTES, Dn as onAgentEvent, Dr as DEFAULT_INPUT_IMAGE_MIMES, E as stripEnvelopeFromMessages, En as getAgentRunContext, Er as DEFAULT_INPUT_IMAGE_MAX_BYTES, F as resetDirectoryCache, Fr as normalizeMimeList, G as formatDoctorNonInteractiveHint, Gn as getTtsProvider, Gt as setSkillsRemoteRegistry, H as scheduleGatewaySigusr1Restart, Hn as triggerInternalHook, Ht as recordRemoteNodeInfo, In as formatUserTime, It as CONTROL_UI_AVATAR_PREFIX, J as summarizeRestartSentinel, Jn as resolveTtsApiKey, Jt as buildSafeExternalPrompt, K as formatRestartSentinelMessage, Kn as isTtsEnabled, Kt as getSkillsSnapshotVersion, L as runWithModelFallback, Ln as resolveUserTimeFormat, Lr as resolveAgentTimeoutMs, Lt as buildControlUiAvatarUrl, M as resolveOutboundTarget, Mr as DEFAULT_INPUT_TIMEOUT_MS, N as resolveSessionDeliveryTarget, Nr as extractFileContentFromSource, O as ensureOutboundSessionEntry, On as registerAgentRunContext, Or as DEFAULT_INPUT_MAX_REDIRECTS, Pn as resolveAgentIdentity, Pr as extractImageContentFromSource, Q as normalizeCronJobPatch, Qn as resolveTtsProviderOrder, Rn as resolveUserTimezone, Rt as normalizeControlUiBasePath, S as capArrayByJsonBytes, Sn as initSubagentRegistry, Sr as loadModelCatalog, T as resolveSessionTranscriptCandidates, Tn as emitAgentEvent, Tr as DEFAULT_INPUT_FILE_MIMES, Tt as handleReset, U as setGatewaySigusr1RestartPolicy, Un as OPENAI_TTS_MODELS, Ut as refreshRemoteBinsForConnectedNodes, V as isGatewaySigusr1RestartExternallyAllowed, Vn as registerInternalHook, Vt as primeRemoteSkillsCache, W as consumeRestartSentinel, Wn as OPENAI_TTS_VOICES, Wt as refreshRemoteNodeBins, X as writeRestartSentinel, Xn as resolveTtsConfig, Xt as getHookType, Yn as resolveTtsAutoMode, Yt as detectSuspiciousPatterns, Z as normalizeCronJobCreate, Zn as resolveTtsPrefsPath, Zt as isExternalHookSession, _ as loadCombinedSessionStoreForGateway, _n as dispatchInboundMessage, _r as applyVerboseOverride, a as normalizeSendPolicy, ar as CommandLane, b as resolveSessionModelRef, bn as isAbortTrigger, br as isSystemEventContextChanged, c as runEmbeddedPiAgent, cr as isDiagnosticsEnabled, d as waitForEmbeddedPiRunEnd, dt as loadProviderUsageSummary, er as setTtsProvider, et as normalizeOptionalAgentId, g as listSessionsFromStore, gr as applyModelOverrideToSessionEntry, h as listAgentsForGateway, ht as handleSlackHttpRequest, i as runCliAgent, in as registerUnhandledRejectionHandler, ir as setCommandLaneConcurrency, it as migrateLegacyCronPayload, jr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, k as resolveOutboundSessionRoute, kr as DEFAULT_INPUT_PDF_MAX_PAGES, l as abortEmbeddedPiRun, ln as getLastHeartbeatEvent, lr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, lt as getPluginToolMeta, m as resolveAnnounceTargetFromKey, mn as getChannelActivity, mr as lookupContextTokens, n as getCliSessionId, nn as normalizeGroupActivation, nt as normalizePayloadToSystemText, o as resolveSendPolicy, on as buildHistoryContextFromEntries, or as startDiagnosticHeartbeat, p as createSKYKOITools, pr as stripHeartbeatToken, qn as isTtsProviderConfigured, qt as registerSkillsChangeListener, r as setCliSessionId, rt as normalizeRequiredName, s as clearSessionQueues, sn as resolveHeartbeatVisibility, sr as stopDiagnosticHeartbeat, st as requestHeartbeatNow, tn as createReplyPrefixOptions, tr as textToSpeech, tt as normalizeOptionalText, un as onHeartbeatEvent, ut as loadSKYKOIPlugins, v as loadSessionEntry, vn as createReplyDispatcher, vr as parseVerboseOverride, w as readSessionPreviewItemsFromTranscript, wn as clearAgentRunContext, wr as DEFAULT_INPUT_FILE_MAX_CHARS, x as archiveFileOnDisk, xn as stopSubagentsForRequester, y as resolveGatewaySessionStoreTarget, yn as formatZonedTimestamp, yr as enqueueSystemEvent, z as authorizeGatewaySigusr1Restart, zn as clearInternalHooks, zt as resolveAssistantAvatarUrl } from "./reply-B4cc3N38.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-Dl1sS5S-.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-DcA9-j8b.js";
6
6
  import { _ as isSubagentSessionKey, d as resolveAgentIdFromSessionKey, i as buildAgentMainSessionKey, l as normalizeAgentId, m as toAgentRequestSessionKey, n as DEFAULT_AGENT_ID, t as DEFAULT_ACCOUNT_ID, u as normalizeMainKey, v as parseAgentSessionKey } from "./session-key-hGS8_hRJ.js";
@@ -64,7 +64,7 @@ import { i as readExecApprovalsSnapshot, o as resolveExecApprovalsSocketPath, r
64
64
  import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-BDK31ulX.js";
65
65
  import { t as parseAbsoluteTimeMs } from "./parse-CQc2Wki1.js";
66
66
  import { n as resolveMessageChannelSelection } from "./channel-selection-BZvCBj33.js";
67
- import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-D7589aUm.js";
67
+ import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-SsvcL-Jm.js";
68
68
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-CW2aNYJ9.js";
69
69
  import { t as ensureSKYKOICliOnPath } from "./path-env-DsAko5OY.js";
70
70
  import "./daemon-runtime-Cjd-rzl-.js";
@@ -73,16 +73,16 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-Ccy5jhZP.js";
73
73
  import "./logging-B818ac7o.js";
74
74
  import "./note-ty8fydmp.js";
75
75
  import { t as WizardCancelledError } from "./prompts-CDHXxTNu.js";
76
- import { c as loadAgentIdentity, d as loadAgentIdentityFromWorkspace, i as applyAgentConfig, l as pruneAgentConfig, o as findAgentEntryIndex, r as getStatusSummary, s as listAgentEntries, t as runOnboardingWizard } from "./onboarding-VdNWx4R1.js";
77
- import { n as installSkill } from "./onboard-skills-DgUFCyHf.js";
78
- import "./github-copilot-auth-BfKh2PS7.js";
79
- import "./onboard-channels-Bqn0nVg_.js";
76
+ import { c as loadAgentIdentity, d as loadAgentIdentityFromWorkspace, i as applyAgentConfig, l as pruneAgentConfig, o as findAgentEntryIndex, r as getStatusSummary, s as listAgentEntries, t as runOnboardingWizard } from "./onboarding-k6R-035y.js";
77
+ import { n as installSkill } from "./onboard-skills-CTS-IagA.js";
78
+ import "./github-copilot-auth-CjuKOwtS.js";
79
+ import "./onboard-channels-C9IBRX3J.js";
80
80
  import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-5KyNn7n8.js";
81
- import "./archive-CwUX4il3.js";
81
+ import "./archive-D3q2XAkA.js";
82
82
  import "./skill-scanner-BapBkMb3.js";
83
- import "./installs-BjC_GfUD.js";
84
- 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-BRO6ZdSV.js";
85
- import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-p6x8CBa0.js";
83
+ import "./installs-BCoqZtxb.js";
84
+ 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-NL8bJAOG.js";
85
+ import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-CrneRBnx.js";
86
86
  import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-DN9iwG98.js";
87
87
  import { i as probeGateway } from "./audit-BEEPWxXy.js";
88
88
  import "./table-BuHjFIeu.js";
@@ -92,16 +92,16 @@ import { p as resolveGatewayStateDir } from "./systemd-BTcdURXT.js";
92
92
  import "./service-audit-BBKQ6NL-.js";
93
93
  import "./node-service-CdjRxBgz.js";
94
94
  import "./channels-status-issues-BaXwaWXv.js";
95
- import "./register.subclis-L-0VCsxM.js";
96
- import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-DxiVLxS0.js";
95
+ import "./register.subclis-4CGiRqAh.js";
96
+ import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-D-zxOQsb.js";
97
97
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-C09wbKzV.js";
98
98
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-DF5ll51G.js";
99
- import "./completion-cli-B2FZlLTE.js";
99
+ import "./completion-cli-B1HJnl-F.js";
100
100
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-C1k8_Ivg.js";
101
101
  import "./tui-JkYQWRgq.js";
102
102
  import { t as buildChannelAccountSnapshot } from "./status-DqH1H1Pt.js";
103
103
  import "./shared-32F_rZjy.js";
104
- import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-CClKuKDl.js";
104
+ import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-m0XMw1Ga.js";
105
105
  import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-vW-rMMy7.js";
106
106
  import { i as setGatewayWsLogStyle, n as logWs, r as summarizeAgentEventForWsLog, t as formatForLog } from "./ws-log-NQGsvlnZ.js";
107
107
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-BUClTRiB.js";
@@ -10572,7 +10572,7 @@ const nodeHandlers = {
10572
10572
  const p = params;
10573
10573
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
10574
10574
  await respondUnavailableOnThrow(respond, async () => {
10575
- const { handleNodeEvent } = await import("./server-node-events-DKu1Ebih.js");
10575
+ const { handleNodeEvent } = await import("./server-node-events-DiuluT7E.js");
10576
10576
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
10577
10577
  await handleNodeEvent({
10578
10578
  deps: context.deps,
@@ -17608,7 +17608,7 @@ async function startGatewaySidecars(params) {
17608
17608
  } else {
17609
17609
  consecutiveFailures++;
17610
17610
  if (consecutiveFailures >= MAX_DISCOVERY_FAILURES) {
17611
- params.log.error(`[discovery] failed ${consecutiveFailures} times with no fallback; entering degraded mode`);
17611
+ params.log.warn(`[discovery] failed ${consecutiveFailures} times with no fallback; entering degraded mode`);
17612
17612
  break;
17613
17613
  }
17614
17614
  const backoffMs = Math.min(INITIAL_RETRY_MS * Math.pow(1.5, consecutiveFailures - 1), MAX_RETRY_MS);
@@ -17638,7 +17638,7 @@ async function startGatewaySidecars(params) {
17638
17638
  if (!discoveryUrl) break;
17639
17639
  consecutiveFailures++;
17640
17640
  if (consecutiveFailures >= MAX_DISCOVERY_FAILURES) {
17641
- params.log.error(`[discovery] node host failed ${consecutiveFailures} times; entering degraded mode`);
17641
+ params.log.warn(`[discovery] node host failed ${consecutiveFailures} times; entering degraded mode`);
17642
17642
  break;
17643
17643
  }
17644
17644
  const backoffMs = Math.min(INITIAL_RETRY_MS * Math.pow(1.5, consecutiveFailures - 1), MAX_RETRY_MS);
@@ -1,4 +1,4 @@
1
- import { ut as loadSKYKOIPlugins } from "./reply-FlSo_-OX.js";
1
+ import { ut as loadSKYKOIPlugins } from "./reply-B4cc3N38.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-Dl1sS5S-.js";
3
3
  import { l as normalizeAgentId } from "./session-key-hGS8_hRJ.js";
4
4
  import { b as sleep } from "./utils-DIctjiBL.js";
@@ -1,4 +1,4 @@
1
- import { A as resolveHeartbeatDeliveryTarget, Fn as resolveEffectiveMessagesConfig, Rn as resolveUserTimezone, ar as CommandLane, cn as emitHeartbeatEvent, ct as setHeartbeatWakeHandler, dn as resolveIndicatorType, dr as isHeartbeatContentEffectivelyEmpty, fr as resolveHeartbeatPrompt$1, j as resolveHeartbeatSenderContext, lr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, nr as enqueueCommandInLane, pr as stripHeartbeatToken, rr as getQueueSize, sn as resolveHeartbeatVisibility, st as requestHeartbeatNow, t as getReplyFromConfig, u as isEmbeddedPiRunActive, ur as DEFAULT_HEARTBEAT_EVERY, xr as peekSystemEvents } from "./reply-FlSo_-OX.js";
1
+ import { A as resolveHeartbeatDeliveryTarget, Fn as resolveEffectiveMessagesConfig, Rn as resolveUserTimezone, ar as CommandLane, cn as emitHeartbeatEvent, ct as setHeartbeatWakeHandler, dn as resolveIndicatorType, dr as isHeartbeatContentEffectivelyEmpty, fr as resolveHeartbeatPrompt$1, j as resolveHeartbeatSenderContext, lr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, nr as enqueueCommandInLane, pr as stripHeartbeatToken, rr as getQueueSize, sn as resolveHeartbeatVisibility, st as requestHeartbeatNow, t as getReplyFromConfig, u as isEmbeddedPiRunActive, ur as DEFAULT_HEARTBEAT_EVERY, xr as peekSystemEvents } from "./reply-B4cc3N38.js";
2
2
  import { C as colorize, T as theme, c as defaultRuntime, m as info, t as createSubsystemLogger, w as isRich } from "./subsystem-Dl1sS5S-.js";
3
3
  import { d as resolveAgentIdFromSessionKey, h as toAgentStoreSessionKey, l as normalizeAgentId } from "./session-key-hGS8_hRJ.js";
4
4
  import { t as runCommandWithTimeout } from "./exec-CToLomNk.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-ceEtRKcD.js";
2
- import "./reply-FlSo_-OX.js";
2
+ import "./reply-B4cc3N38.js";
3
3
  import { T as theme, c as defaultRuntime } from "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import { h as resolveUserPath, t as CONFIG_DIR, y as shortenHomePath } from "./utils-DIctjiBL.js";
@@ -55,10 +55,10 @@ import "./satisfies-Ch9z1ETk.js";
55
55
  import "./session-cost-usage-BCDbst6m.js";
56
56
  import "./control-service-BDK31ulX.js";
57
57
  import "./channel-selection-BZvCBj33.js";
58
- import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-CwUX4il3.js";
58
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-D3q2XAkA.js";
59
59
  import { t as renderTable } from "./table-BuHjFIeu.js";
60
60
  import { a as parseFrontmatter, n as loadWorkspaceHookEntries, t as buildWorkspaceHookStatus } from "./hooks-status-C1k8_Ivg.js";
61
- import { t as buildPluginStatusReport } from "./status-DQaL_m6W.js";
61
+ import { t as buildPluginStatusReport } from "./status-B1SeTVVT.js";
62
62
  import fs from "node:fs";
63
63
  import path from "node:path";
64
64
  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-ceEtRKcD.js";
3
- import { Ir as applyTemplate, an as waitForever, en as monitorWebChannel, rn as installUnhandledRejectionHandler, t as getReplyFromConfig } from "./reply-FlSo_-OX.js";
3
+ import { Ir as applyTemplate, an as waitForever, en as monitorWebChannel, rn as installUnhandledRejectionHandler, t as getReplyFromConfig } from "./reply-B4cc3N38.js";
4
4
  import { r as enableConsoleCapture } from "./subsystem-Dl1sS5S-.js";
5
5
  import "./paths-DcA9-j8b.js";
6
6
  import { S as toWhatsappJid, d as normalizeE164, n as assertWebChannel } from "./utils-DIctjiBL.js";
@@ -55,27 +55,27 @@ import "./satisfies-Ch9z1ETk.js";
55
55
  import "./session-cost-usage-BCDbst6m.js";
56
56
  import "./control-service-BDK31ulX.js";
57
57
  import "./channel-selection-BZvCBj33.js";
58
- import { t as createDefaultDeps } from "./deps-D7589aUm.js";
58
+ import { t as createDefaultDeps } from "./deps-SsvcL-Jm.js";
59
59
  import { l as ensureBinary, u as promptYesNo } from "./tailscale-CW2aNYJ9.js";
60
60
  import { t as loadDotEnv } from "./dotenv-DlZCd7a6.js";
61
61
  import { t as isMainModule } from "./is-main-DY9Hjhai.js";
62
62
  import { t as ensureSKYKOICliOnPath } from "./path-env-DsAko5OY.js";
63
63
  import { g as assertSupportedRuntime } from "./daemon-runtime-Cjd-rzl-.js";
64
64
  import "./ports-CCPpWmHD.js";
65
- import "./config-guard-B_vYKlsi.js";
65
+ import "./config-guard-DpcVu5Tw.js";
66
66
  import "./logging-B818ac7o.js";
67
67
  import "./note-ty8fydmp.js";
68
68
  import "./clack-prompter-D03d7Olp.js";
69
- import "./onboarding-VdNWx4R1.js";
70
- import "./onboard-skills-DgUFCyHf.js";
71
- import "./github-copilot-auth-BfKh2PS7.js";
72
- import "./onboard-channels-Bqn0nVg_.js";
69
+ import "./onboarding-k6R-035y.js";
70
+ import "./onboard-skills-CTS-IagA.js";
71
+ import "./github-copilot-auth-CjuKOwtS.js";
72
+ import "./onboard-channels-C9IBRX3J.js";
73
73
  import "./plugin-auto-enable-5KyNn7n8.js";
74
- import "./archive-CwUX4il3.js";
74
+ import "./archive-D3q2XAkA.js";
75
75
  import "./skill-scanner-BapBkMb3.js";
76
- import "./installs-BjC_GfUD.js";
77
- import "./health-format-BRO6ZdSV.js";
78
- import "./update-runner-p6x8CBa0.js";
76
+ import "./installs-BCoqZtxb.js";
77
+ import "./health-format-NL8bJAOG.js";
78
+ import "./update-runner-CrneRBnx.js";
79
79
  import "./auth-DN9iwG98.js";
80
80
  import "./audit-BEEPWxXy.js";
81
81
  import "./table-BuHjFIeu.js";
@@ -85,22 +85,22 @@ import "./systemd-BTcdURXT.js";
85
85
  import "./service-audit-BBKQ6NL-.js";
86
86
  import "./node-service-CdjRxBgz.js";
87
87
  import "./channels-status-issues-BaXwaWXv.js";
88
- import "./register.subclis-L-0VCsxM.js";
88
+ import "./register.subclis-4CGiRqAh.js";
89
89
  import "./gateway-rpc-CO4ZKF3u.js";
90
90
  import "./help-format-rUxU9jE_.js";
91
- import "./agent-DxiVLxS0.js";
92
- import "./plugin-registry-5qpwJA3E.js";
93
- import "./configure-BZ625PeT.js";
91
+ import "./agent-D-zxOQsb.js";
92
+ import "./plugin-registry-D9_kRtK7.js";
93
+ import "./configure-B4qOJJUV.js";
94
94
  import "./systemd-linger-BSA8MnYc.js";
95
95
  import "./widearea-dns-C09wbKzV.js";
96
96
  import "./bonjour-discovery-DF5ll51G.js";
97
97
  import "./auth-health-C8j09v90.js";
98
- import "./doctor-C0KGGHEo.js";
99
- import "./completion-cli-B2FZlLTE.js";
98
+ import "./doctor-D8N-gHG5.js";
99
+ import "./completion-cli-B1HJnl-F.js";
100
100
  import "./hooks-status-C1k8_Ivg.js";
101
101
  import "./tui-JkYQWRgq.js";
102
- import "./channel-options-DI1lXlNK.js";
103
- import { n as buildProgram } from "./program-DB6bKRW8.js";
102
+ import "./channel-options-x5FTMNyd.js";
103
+ import { n as buildProgram } from "./program-DP-p8ALC.js";
104
104
  import process from "node:process";
105
105
  import { fileURLToPath } from "node:url";
106
106
 
@@ -1,7 +1,7 @@
1
1
  import { h as resolveUserPath, t as CONFIG_DIR } from "./utils-DIctjiBL.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-CToLomNk.js";
3
3
  import { a as MANIFEST_KEY } from "./manifest-registry-5tS0nRed.js";
4
- import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-CwUX4il3.js";
4
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-D3q2XAkA.js";
5
5
  import { t as scanDirectoryWithSummary } from "./skill-scanner-BapBkMb3.js";
6
6
  import path from "node:path";
7
7
  import os from "node:os";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-ceEtRKcD.js";
2
- import { Ot as openUrl, R as describeFailoverError, Sr as loadModelCatalog, c as runEmbeddedPiAgent, dt as loadProviderUsageSummary, mt as resolveUsageProviderId, pt as formatUsageWindowSummary } from "./reply-FlSo_-OX.js";
2
+ import { Ot as openUrl, R as describeFailoverError, Sr as loadModelCatalog, c as runEmbeddedPiAgent, dt as loadProviderUsageSummary, mt as resolveUsageProviderId, pt as formatUsageWindowSummary } from "./reply-B4cc3N38.js";
3
3
  import { C as colorize, T as theme, c as defaultRuntime, w as isRich$1 } from "./subsystem-Dl1sS5S-.js";
4
4
  import { t as CONFIG_PATH } from "./paths-DcA9-j8b.js";
5
5
  import { y as shortenHomePath } from "./utils-DIctjiBL.js";
@@ -59,7 +59,7 @@ import "./channel-selection-BZvCBj33.js";
59
59
  import { n as logConfigUpdated } from "./logging-B818ac7o.js";
60
60
  import "./note-ty8fydmp.js";
61
61
  import { t as createClackPrompter } from "./clack-prompter-D03d7Olp.js";
62
- import { a as normalizeAlias, c as updateConfig, d as resolvePluginProviders, i as formatTokenK, l as createVpsAwareOAuthHandlers, n as ensureFlagCompatibility, o as resolveKnownAgentId, pt as validateAnthropicSetupToken, r as formatMs, s as resolveModelTarget, t as githubCopilotLoginCommand, u as isRemoteEnvironment, v as applyAuthProfileConfig } from "./github-copilot-auth-BfKh2PS7.js";
62
+ import { a as normalizeAlias, c as updateConfig, d as resolvePluginProviders, i as formatTokenK, l as createVpsAwareOAuthHandlers, n as ensureFlagCompatibility, o as resolveKnownAgentId, pt as validateAnthropicSetupToken, r as formatMs, s as resolveModelTarget, t as githubCopilotLoginCommand, u as isRemoteEnvironment, v as applyAuthProfileConfig } from "./github-copilot-auth-CjuKOwtS.js";
63
63
  import { t as renderTable } from "./table-BuHjFIeu.js";
64
64
  import { i as redactSecrets } from "./format-APMZSEkl.js";
65
65
  import { n as buildAuthHealthSummary, r as formatRemainingShort, t as DEFAULT_OAUTH_WARN_MS } from "./auth-health-C8j09v90.js";
@@ -1,4 +1,4 @@
1
- import { ut as loadSKYKOIPlugins } from "./reply-FlSo_-OX.js";
1
+ import { ut as loadSKYKOIPlugins } from "./reply-B4cc3N38.js";
2
2
  import { F as formatChannelSelectionLine, L as listChatChannels, P as formatChannelPrimerLine, t as createSubsystemLogger } from "./subsystem-Dl1sS5S-.js";
3
3
  import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-hGS8_hRJ.js";
4
4
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-DrL2uTp9.js";
@@ -7,7 +7,7 @@ import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CvpPbU
7
7
  import { t as formatDocsLink } from "./links-yjT27ApF.js";
8
8
  import { t as resolveChannelDefaultAccountId } from "./helpers-Ccy5jhZP.js";
9
9
  import { i as listChannelPluginCatalogEntries, n as isChannelConfigured } from "./plugin-auto-enable-5KyNn7n8.js";
10
- import { n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-BjC_GfUD.js";
10
+ import { n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-BCoqZtxb.js";
11
11
  import fs from "node:fs";
12
12
  import path from "node:path";
13
13
 
@@ -1,4 +1,4 @@
1
- import { Nt as resolveNodeManagerOptions, Ot as openUrl, Sr as loadModelCatalog, bt as detectBinary } from "./reply-FlSo_-OX.js";
1
+ import { Nt as resolveNodeManagerOptions, Ot as openUrl, Sr as loadModelCatalog, bt as detectBinary } from "./reply-B4cc3N38.js";
2
2
  import { f as resolveConfigDir, h as resolveUserPath, s as ensureDir, t as CONFIG_DIR } from "./utils-DIctjiBL.js";
3
3
  import { t as runCommandWithTimeout } from "./exec-CToLomNk.js";
4
4
  import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWorkspaceDir, w as resolveDefaultAgentWorkspaceDir } from "./agent-scope-DrL2uTp9.js";
@@ -8,8 +8,8 @@ import { t as formatCliCommand } from "./command-format-BxjVkF35.js";
8
8
  import { _ as resolveSkillKey, d as hasBinary, i as loadWorkspaceSkillEntries, t as resolveSkillsInstallPreferences } from "./skills-CKx3f-K7.js";
9
9
  import { Y as fetchWithSsrFGuard } from "./deliver-C04W5B6d.js";
10
10
  import { t as resolveBrewExecutable } from "./brew-C3EWd0g3.js";
11
- import { $ as setOpenrouterApiKey, A as applyQianfanProviderConfig, B as applyXiaomiProviderConfig, C as applyMoonshotConfig, D as applyOpenrouterConfig, E as applyMoonshotProviderConfigCn, F as applyVercelAiGatewayConfig, G as ZAI_DEFAULT_MODEL_REF, H as OPENROUTER_DEFAULT_MODEL_REF, I as applyVercelAiGatewayProviderConfig, J as setGeminiApiKey, K as setAnthropicApiKey, L as applyXaiConfig, M as applySyntheticProviderConfig, N as applyVeniceConfig, O as applyOpenrouterProviderConfig, P as applyVeniceProviderConfig, Q as setOpencodeZenApiKey, R as applyXaiProviderConfig, S as applyKimiCodeProviderConfig, T as applyMoonshotProviderConfig, U as VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, V as applyZaiConfig, W as XIAOMI_DEFAULT_MODEL_REF, X as setMinimaxApiKey, Y as setKimiCodingApiKey, Z as setMoonshotApiKey, _ as applyMinimaxProviderConfig, at as setXiaomiApiKey, b as applyCloudflareAiGatewayProviderConfig, ct as KIMI_CODING_MODEL_REF, d as resolvePluginProviders, dt as XAI_DEFAULT_MODEL_REF, et as setQianfanApiKey, f as applyOpencodeZenConfig, ft as buildTokenProfileId, g as applyMinimaxConfig, h as applyMinimaxApiProviderConfig, i as formatTokenK, it as setXaiApiKey, j as applySyntheticConfig, k as applyQianfanConfig, l as createVpsAwareOAuthHandlers, lt as MOONSHOT_DEFAULT_MODEL_REF, m as applyMinimaxApiConfig, nt as setVeniceApiKey, ot as setZaiApiKey, p as applyOpencodeZenProviderConfig, pt as validateAnthropicSetupToken, q as setCloudflareAiGatewayConfig, rt as setVercelAiGatewayApiKey, st as writeOAuthCredentials, t as githubCopilotLoginCommand, tt as setSyntheticApiKey, u as isRemoteEnvironment, ut as QIANFAN_DEFAULT_MODEL_REF, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyXiaomiConfig } from "./github-copilot-auth-BfKh2PS7.js";
12
- import { a as enablePluginInConfig } from "./onboard-channels-Bqn0nVg_.js";
11
+ import { $ as setOpenrouterApiKey, A as applyQianfanProviderConfig, B as applyXiaomiProviderConfig, C as applyMoonshotConfig, D as applyOpenrouterConfig, E as applyMoonshotProviderConfigCn, F as applyVercelAiGatewayConfig, G as ZAI_DEFAULT_MODEL_REF, H as OPENROUTER_DEFAULT_MODEL_REF, I as applyVercelAiGatewayProviderConfig, J as setGeminiApiKey, K as setAnthropicApiKey, L as applyXaiConfig, M as applySyntheticProviderConfig, N as applyVeniceConfig, O as applyOpenrouterProviderConfig, P as applyVeniceProviderConfig, Q as setOpencodeZenApiKey, R as applyXaiProviderConfig, S as applyKimiCodeProviderConfig, T as applyMoonshotProviderConfig, U as VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, V as applyZaiConfig, W as XIAOMI_DEFAULT_MODEL_REF, X as setMinimaxApiKey, Y as setKimiCodingApiKey, Z as setMoonshotApiKey, _ as applyMinimaxProviderConfig, at as setXiaomiApiKey, b as applyCloudflareAiGatewayProviderConfig, ct as KIMI_CODING_MODEL_REF, d as resolvePluginProviders, dt as XAI_DEFAULT_MODEL_REF, et as setQianfanApiKey, f as applyOpencodeZenConfig, ft as buildTokenProfileId, g as applyMinimaxConfig, h as applyMinimaxApiProviderConfig, i as formatTokenK, it as setXaiApiKey, j as applySyntheticConfig, k as applyQianfanConfig, l as createVpsAwareOAuthHandlers, lt as MOONSHOT_DEFAULT_MODEL_REF, m as applyMinimaxApiConfig, nt as setVeniceApiKey, ot as setZaiApiKey, p as applyOpencodeZenProviderConfig, pt as validateAnthropicSetupToken, q as setCloudflareAiGatewayConfig, rt as setVercelAiGatewayApiKey, st as writeOAuthCredentials, t as githubCopilotLoginCommand, tt as setSyntheticApiKey, u as isRemoteEnvironment, ut as QIANFAN_DEFAULT_MODEL_REF, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyXiaomiConfig } from "./github-copilot-auth-CjuKOwtS.js";
12
+ import { a as enablePluginInConfig } from "./onboard-channels-C9IBRX3J.js";
13
13
  import { t as scanDirectoryWithSummary } from "./skill-scanner-BapBkMb3.js";
14
14
  import { t as buildWorkspaceSkillStatus } from "./skills-status-BimvAz-k.js";
15
15
  import { n as resolveWideAreaDiscoveryDomain } from "./widearea-dns-C09wbKzV.js";
@@ -1,4 +1,4 @@
1
- import { At as probeGatewayReachable, Bt as getRemoteSkillEligibility, Ct as formatControlUiSshHint, Dt as normalizeGatewayTokenInput, Ft as waitForGatewayReachable, J as summarizeRestartSentinel, Mt as resolveControlUiLinks, Nn as getMemorySearchManager, Ot as openUrl, Pt as summarizeExistingConfig, Rt as normalizeControlUiBasePath, St as ensureWorkspaceAndSessions, Tt as handleReset, dt as loadProviderUsageSummary, f as sha256HexPrefix, ft as formatUsageReportLines, h as listAgentsForGateway, jt as randomToken, kt as printWizardHeader, mr as lookupContextTokens, q as readRestartSentinel, vt as DEFAULT_WORKSPACE, xr as peekSystemEvents, xt as detectBrowserOpenSupport, yt as applyWizardMetadata } from "./reply-FlSo_-OX.js";
1
+ import { At as probeGatewayReachable, Bt as getRemoteSkillEligibility, Ct as formatControlUiSshHint, Dt as normalizeGatewayTokenInput, Ft as waitForGatewayReachable, J as summarizeRestartSentinel, Mt as resolveControlUiLinks, Nn as getMemorySearchManager, Ot as openUrl, Pt as summarizeExistingConfig, Rt as normalizeControlUiBasePath, St as ensureWorkspaceAndSessions, Tt as handleReset, dt as loadProviderUsageSummary, f as sha256HexPrefix, ft as formatUsageReportLines, h as listAgentsForGateway, jt as randomToken, kt as printWizardHeader, mr as lookupContextTokens, q as readRestartSentinel, vt as DEFAULT_WORKSPACE, xr as peekSystemEvents, xt as detectBrowserOpenSupport, yt as applyWizardMetadata } from "./reply-B4cc3N38.js";
2
2
  import { T as theme, c as defaultRuntime, l as restoreTerminalState, m as info, w as isRich } from "./subsystem-Dl1sS5S-.js";
3
3
  import { n as DEFAULT_GATEWAY_PORT, u as resolveGatewayPort } from "./paths-DcA9-j8b.js";
4
4
  import { l as normalizeAgentId, v as parseAgentSessionKey } from "./session-key-hGS8_hRJ.js";
@@ -21,10 +21,10 @@ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWA
21
21
  import { t as resolveChannelDefaultAccountId } from "./helpers-Ccy5jhZP.js";
22
22
  import { n as logConfigUpdated } from "./logging-B818ac7o.js";
23
23
  import { t as WizardCancelledError } from "./prompts-CDHXxTNu.js";
24
- import { d as applyAuthChoice, h as promptAuthChoiceGrouped, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills, u as warnIfModelConfigLooksOff } from "./onboard-skills-DgUFCyHf.js";
25
- import { n as setupChannels } from "./onboard-channels-Bqn0nVg_.js";
26
- import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForAgent } from "./health-format-BRO6ZdSV.js";
27
- import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, d as formatUpdateOneLiner, f as getUpdateCheckResult, h as compareSemverStrings, l as ensureCompletionCacheExists, m as checkUpdateStatus, p as resolveUpdateAvailability, s as checkShellCompletionStatus, u as formatUpdateAvailableHint, x as formatUpdateChannelLabel } from "./update-runner-p6x8CBa0.js";
24
+ import { d as applyAuthChoice, h as promptAuthChoiceGrouped, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills, u as warnIfModelConfigLooksOff } from "./onboard-skills-CTS-IagA.js";
25
+ import { n as setupChannels } from "./onboard-channels-C9IBRX3J.js";
26
+ import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForAgent } from "./health-format-NL8bJAOG.js";
27
+ import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, d as formatUpdateOneLiner, f as getUpdateCheckResult, h as compareSemverStrings, l as ensureCompletionCacheExists, m as checkUpdateStatus, p as resolveUpdateAvailability, s as checkShellCompletionStatus, u as formatUpdateAvailableHint, x as formatUpdateChannelLabel } from "./update-runner-CrneRBnx.js";
28
28
  import { i as probeGateway, t as runSecurityAudit } from "./audit-BEEPWxXy.js";
29
29
  import { t as renderTable } from "./table-BuHjFIeu.js";
30
30
  import { t as buildWorkspaceSkillStatus } from "./skills-status-BimvAz-k.js";
@@ -34,7 +34,7 @@ import { o as readLastGatewayErrorLine } from "./service-audit-BBKQ6NL-.js";
34
34
  import { t as resolveNodeService } from "./node-service-CdjRxBgz.js";
35
35
  import { t as collectChannelStatusIssues } from "./channels-status-issues-BaXwaWXv.js";
36
36
  import { i as redactSecrets, n as formatDuration$1, r as formatGatewayAuthUsed, t as formatAge$1 } from "./format-APMZSEkl.js";
37
- import { r as installCompletion } from "./completion-cli-B2FZlLTE.js";
37
+ import { r as installCompletion } from "./completion-cli-B1HJnl-F.js";
38
38
  import { t as buildWorkspaceHookStatus } from "./hooks-status-C1k8_Ivg.js";
39
39
  import { t as runTui } from "./tui-JkYQWRgq.js";
40
40
  import fs from "node:fs";
@@ -1,4 +1,4 @@
1
- import { ut as loadSKYKOIPlugins } from "./reply-FlSo_-OX.js";
1
+ import { ut as loadSKYKOIPlugins } from "./reply-B4cc3N38.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-Dl1sS5S-.js";
3
3
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-DrL2uTp9.js";
4
4
  import { o as loadConfig } from "./config-9HrG2o2n.js";
@@ -33,7 +33,7 @@ import { exec } from "child_process";
33
33
  import { createReadStream as createReadStream$1, createWriteStream as createWriteStream$1, promises as promises$1 } from "fs";
34
34
  import { Readable, Transform } from "stream";
35
35
  import { platform, release, tmpdir as tmpdir$1 } from "os";
36
- import EventEmitter$1, { EventEmitter, once } from "events";
36
+ import EventEmitter, { EventEmitter as EventEmitter$1, once } from "events";
37
37
  import { promisify as promisify$1 } from "util";
38
38
  import { join as join$1 } from "path";
39
39
  import * as Crypto from "crypto";
@@ -226359,7 +226359,7 @@ const BUFFERABLE_EVENT_SET = new Set([
226359
226359
  * making the data processing more efficient.
226360
226360
  */
226361
226361
  const makeEventBuffer = (logger) => {
226362
- const ev = new EventEmitter$1();
226362
+ const ev = new EventEmitter();
226363
226363
  const historyCache = /* @__PURE__ */ new Set();
226364
226364
  let data = makeBufferData();
226365
226365
  let isBuffering = false;
@@ -231929,7 +231929,7 @@ var BinaryInfo = class {
231929
231929
 
231930
231930
  //#endregion
231931
231931
  //#region node_modules/.pnpm/@whiskeysockets+baileys@7.0_f116e6060e428c73be68680ef2311927/node_modules/@whiskeysockets/baileys/lib/Socket/Client/types.js
231932
- var AbstractSocketClient = class extends EventEmitter {
231932
+ var AbstractSocketClient = class extends EventEmitter$1 {
231933
231933
  constructor(url, config) {
231934
231934
  super();
231935
231935
  this.url = url;
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-ceEtRKcD.js";
2
- import "./reply-FlSo_-OX.js";
2
+ import "./reply-B4cc3N38.js";
3
3
  import { T as theme, c as defaultRuntime } from "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import { h as resolveUserPath, v as shortenHomeInString, y as shortenHomePath } from "./utils-DIctjiBL.js";
@@ -54,12 +54,12 @@ import "./satisfies-Ch9z1ETk.js";
54
54
  import "./session-cost-usage-BCDbst6m.js";
55
55
  import "./control-service-BDK31ulX.js";
56
56
  import "./channel-selection-BZvCBj33.js";
57
- import { i as resolveArchiveKind } from "./archive-CwUX4il3.js";
57
+ import { i as resolveArchiveKind } from "./archive-D3q2XAkA.js";
58
58
  import "./skill-scanner-BapBkMb3.js";
59
- import { n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-BjC_GfUD.js";
59
+ import { n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-BCoqZtxb.js";
60
60
  import { t as renderTable } from "./table-BuHjFIeu.js";
61
- import { t as buildPluginStatusReport } from "./status-DQaL_m6W.js";
62
- import { n as updateNpmInstalledPlugins } from "./update-9pzwg2aV.js";
61
+ import { t as buildPluginStatusReport } from "./status-B1SeTVVT.js";
62
+ import { n as updateNpmInstalledPlugins } from "./update-DV-o1INC.js";
63
63
  import fs from "node:fs";
64
64
  import path from "node:path";
65
65
 
@@ -4,11 +4,11 @@ import { n as replaceCliName, r as resolveCliName } from "./command-format-BxjVk
4
4
  import { t as isTruthyEnvValue } from "./env-EjmWoVFM.js";
5
5
  import { N as VERSION } from "./config-9HrG2o2n.js";
6
6
  import { t as formatDocsLink } from "./links-yjT27ApF.js";
7
- import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-B_vYKlsi.js";
8
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-L-0VCsxM.js";
9
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-5qpwJA3E.js";
7
+ import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-DpcVu5Tw.js";
8
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-4CGiRqAh.js";
9
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-D9_kRtK7.js";
10
10
  import { i as hasEmittedCliBanner, n as emitCliBanner, r as formatCliBannerLine } from "./tui-JkYQWRgq.js";
11
- import { n as resolveCliChannelOptions } from "./channel-options-DI1lXlNK.js";
11
+ import { n as resolveCliChannelOptions } from "./channel-options-x5FTMNyd.js";
12
12
  import { Command } from "commander";
13
13
 
14
14
  //#region src/cli/program/context.ts
@@ -124,14 +124,14 @@ const entries = [
124
124
  name: "gateway",
125
125
  description: "Gateway control",
126
126
  register: async (program) => {
127
- (await import("./gateway-cli-CuXMNzUx.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-BxTZBm1n.js")).registerGatewayCli(program);
128
128
  }
129
129
  },
130
130
  {
131
131
  name: "daemon",
132
132
  description: "Gateway service (legacy alias)",
133
133
  register: async (program) => {
134
- (await import("./daemon-cli-CClKuKDl.js").then((n) => n.t)).registerDaemonCli(program);
134
+ (await import("./daemon-cli-m0XMw1Ga.js").then((n) => n.t)).registerDaemonCli(program);
135
135
  }
136
136
  },
137
137
  {
@@ -152,7 +152,7 @@ const entries = [
152
152
  name: "models",
153
153
  description: "Model configuration",
154
154
  register: async (program) => {
155
- (await import("./models-cli-DM9BQPxN.js")).registerModelsCli(program);
155
+ (await import("./models-cli-BmUcHjtC.js")).registerModelsCli(program);
156
156
  }
157
157
  },
158
158
  {
@@ -222,7 +222,7 @@ const entries = [
222
222
  name: "hooks",
223
223
  description: "Hooks tooling",
224
224
  register: async (program) => {
225
- (await import("./hooks-cli-Bp8UYOf7.js")).registerHooksCli(program);
225
+ (await import("./hooks-cli-BA2fiiQ4.js")).registerHooksCli(program);
226
226
  }
227
227
  },
228
228
  {
@@ -236,7 +236,7 @@ const entries = [
236
236
  name: "pairing",
237
237
  description: "Pairing helpers",
238
238
  register: async (program) => {
239
- const { registerPluginCliCommands } = await import("./cli-Cokc7FX7.js");
239
+ const { registerPluginCliCommands } = await import("./cli-D6AfBjdz.js");
240
240
  registerPluginCliCommands(program, await loadConfig());
241
241
  (await import("./pairing-cli-BPaDT1GP.js")).registerPairingCli(program);
242
242
  }
@@ -245,8 +245,8 @@ const entries = [
245
245
  name: "plugins",
246
246
  description: "Plugin management",
247
247
  register: async (program) => {
248
- (await import("./plugins-cli-M54_Y826.js")).registerPluginsCli(program);
249
- const { registerPluginCliCommands } = await import("./cli-Cokc7FX7.js");
248
+ (await import("./plugins-cli-CiDkGJRQ.js")).registerPluginsCli(program);
249
+ const { registerPluginCliCommands } = await import("./cli-D6AfBjdz.js");
250
250
  registerPluginCliCommands(program, await loadConfig());
251
251
  }
252
252
  },
@@ -254,7 +254,7 @@ const entries = [
254
254
  name: "channels",
255
255
  description: "Channel management",
256
256
  register: async (program) => {
257
- (await import("./channels-cli-D1UW-HMv.js")).registerChannelsCli(program);
257
+ (await import("./channels-cli-DREJRo9h.js")).registerChannelsCli(program);
258
258
  }
259
259
  },
260
260
  {
@@ -282,14 +282,14 @@ const entries = [
282
282
  name: "update",
283
283
  description: "CLI update helpers",
284
284
  register: async (program) => {
285
- (await import("./update-cli-tvRoq2b0.js")).registerUpdateCli(program);
285
+ (await import("./update-cli-BzG11wjR.js")).registerUpdateCli(program);
286
286
  }
287
287
  },
288
288
  {
289
289
  name: "completion",
290
290
  description: "Generate shell completion script",
291
291
  register: async (program) => {
292
- (await import("./completion-cli-B2FZlLTE.js").then((n) => n.n)).registerCompletionCli(program);
292
+ (await import("./completion-cli-B1HJnl-F.js").then((n) => n.n)).registerCompletionCli(program);
293
293
  }
294
294
  }
295
295
  ];
@@ -138433,7 +138433,7 @@ function buildAgentSystemPrompt(params) {
138433
138433
  }
138434
138434
  if (!isMinimal) {
138435
138435
  lines.push("## Credential Requests & Account Access", "", "### Requesting Credentials", "When you need login credentials, API keys, or verification codes, output a hidden marker:", "`<!-- CREDENTIAL_REQUEST:{\"service\":\"github\",\"fields\":[\"email\",\"password\"],\"message\":\"I need your GitHub credentials to log in.\"} -->`", "", "The frontend renders a secure inline form with options:", "- **Continue with Google/GitHub/etc.** — OAuth one-click sign-in (best UX)", "- **Use saved** — auto-fill from vault (if credentials were saved before)", "- **Manual entry** — user types email/password", "", "After submission, you receive a [System] event with the credentials. Use them immediately. Do NOT echo credentials, do NOT ask to re-enter.", "", "**IMPORTANT**: Always request BOTH email AND password together. Use field names: email, password, username, code, otp, 2fa, phone, api_key, token.", "For 2FA codes, use `type: \"2fa_request\"` and `fields: [\"code\"]`.", "", "### OAuth Authentication", "When you receive `[System] User authenticated with {provider} via OAuth`, the user already signed in via one-click OAuth. You have their:", "- Email address and name (in the system event)", "- OAuth access token stored in the credential vault", "DO NOT ask for credentials again. DO NOT explain API setup. Just confirm the account is connected and proceed with whatever task prompted the login.", "Example response: \"Your Google account (user@gmail.com) is now connected! What would you like me to do with it?\"", "", "### Contextual Understanding (CRITICAL)", "When the user sends a short message like 'send', 'send it', 'show me', or 'do it', infer from context what they mean. Examples:", "- User: \"show me screenshot of desktop\" → You: take screenshot → User: \"send\" → SEND THE SCREENSHOT. Do NOT ask \"send what?\"", "- User: \"write me an email\" → You: draft email → User: \"send\" → SEND THE EMAIL. Do NOT ask \"send to whom?\"", "- If you just produced content (screenshot, file, text), 'send' means deliver that content to the user in this chat.", "- Never ask clarifying questions about something you JUST discussed. Use conversation context.", "- When delivering files/images, include them inline in your response (use the upload server or message tool with media). Do not just mention the file path.", "", "### Browser-Based Access", "You have a full Playwright-capable browser. For ANY website or service:", "1. Navigate to the site with the browser tool", "2. If login is needed, request credentials via the CREDENTIAL_REQUEST marker", "3. After receiving credentials, type them into the login form using browser actions (click, type, press)", "4. Handle 2FA if prompted (request code via 2fa_request marker)", "5. Once logged in, the browser session persists — you can interact with the site fully", "", "You can access ANY website the user needs. Gmail, GitHub, AWS Console, social media, banking dashboards — anything with a web interface. The browser runs on your server with full Playwright support (navigate, click, type, screenshot, evaluate JS).", "");
138436
- lines.push("## Task Checklists (MANDATORY for multi-step work)", "", "When a user asks you to do something with 2+ steps, you MUST use the `checklist` tool. Do NOT write markdown checklists (`- [x]`, `- [ ]`) in your messages — EVER.", "", "### How to use the checklist tool", "1. **Plan first.** Break the work into SECTIONS with SUB-TASKS. Use hierarchical items (items with children arrays).", "2. **Create:** Call `checklist` with action=\"update\", a descriptive title, and detailed items. Mark the first actionable sub-item \"active\".", "3. **Progress:** After each step, call `checklist` with action=\"complete_item\" and the index path.", " - Top-level: itemIndex=0, 1, 2...", " - Sub-items: itemIndex=\"0.0\", \"0.1\", \"1.0\", \"1.2\" (parent.child)", "4. Parent sections auto-complete when all their children are done.", "", "### IMPORTANT: Make checklists DETAILED", "- For complex tasks: use 3-6 SECTIONS, each with 2-5 sub-tasks.", "- Section = a phase of work (e.g. 'Research', 'Implementation', 'Testing').", "- Sub-task = a specific action (e.g. 'Read the config file', 'Write the migration script').", "- Simple tasks (2-3 steps) can be flat without children.", "", "### Example (hierarchical)", "```json", "{\"action\":\"update\",\"title\":\"Build Authentication System\",\"items\":[", " {\"text\":\"Database Setup\",\"status\":\"active\",\"children\":[", " {\"text\":\"Create users table schema\",\"status\":\"active\"},", " {\"text\":\"Add indexes and constraints\",\"status\":\"pending\"},", " {\"text\":\"Run migration\",\"status\":\"pending\"}", " ]},", " {\"text\":\"API Endpoints\",\"status\":\"pending\",\"children\":[", " {\"text\":\"POST /auth/register\",\"status\":\"pending\"},", " {\"text\":\"POST /auth/login\",\"status\":\"pending\"},", " {\"text\":\"GET /auth/me\",\"status\":\"pending\"}", " ]},", " {\"text\":\"Testing\",\"status\":\"pending\",\"children\":[", " {\"text\":\"Unit tests for auth logic\",\"status\":\"pending\"},", " {\"text\":\"Integration test end-to-end\",\"status\":\"pending\"}", " ]}", "]}", "```", "Then complete sub-items: `{\"action\":\"complete_item\",\"itemIndex\":\"0.0\"}` → `\"0.1\"` → `\"0.2\"` → `\"1.0\"` ...", "", "### Rules", "- ALWAYS use the checklist tool. NEVER write markdown checklists in your messages.", "- One sub-item at a time. Do real work (exec, browser, file writes) between each.", "- The UI renders this as a live widget with progress bars, sections, and animations.", "");
138436
+ lines.push("## Task Checklists (MANDATORY for multi-step work)", "", "When a user asks you to do something with 2+ steps, you MUST use the `checklist` tool. Do NOT write markdown checklists (`- [x]`, `- [ ]`) in your messages — EVER.", "", "### How to use the checklist tool", "1. **Plan first.** Break the work into SECTIONS with SUB-TASKS. Use hierarchical items (items with children arrays).", "2. **Create:** Call `checklist` with action=\"update\", a descriptive title, and detailed items. Mark the first actionable sub-item \"active\".", "3. **Progress:** After each step, call `checklist` with action=\"complete_item\" and the index path.", " - Top-level: itemIndex=0, 1, 2...", " - Sub-items: itemIndex=\"0.0\", \"0.1\", \"1.0\", \"1.2\" (parent.child)", "4. Parent sections auto-complete when all their children are done.", "", "### IMPORTANT: Make checklists DETAILED", "- For complex tasks: use 3-6 SECTIONS, each with 2-5 sub-tasks.", "- Section = a phase of work (e.g. 'Research', 'Implementation', 'Testing').", "- Sub-task = a specific action (e.g. 'Read the config file', 'Write the migration script').", "- Simple tasks (2-3 steps) can be flat without children.", "", "### Example (hierarchical)", "```json", "{\"action\":\"update\",\"title\":\"Build Authentication System\",\"items\":[", " {\"text\":\"Database Setup\",\"status\":\"active\",\"children\":[", " {\"text\":\"Create users table schema\",\"status\":\"active\"},", " {\"text\":\"Add indexes and constraints\",\"status\":\"pending\"},", " {\"text\":\"Run migration\",\"status\":\"pending\"}", " ]},", " {\"text\":\"API Endpoints\",\"status\":\"pending\",\"children\":[", " {\"text\":\"POST /auth/register\",\"status\":\"pending\"},", " {\"text\":\"POST /auth/login\",\"status\":\"pending\"},", " {\"text\":\"GET /auth/me\",\"status\":\"pending\"}", " ]},", " {\"text\":\"Testing\",\"status\":\"pending\",\"children\":[", " {\"text\":\"Unit tests for auth logic\",\"status\":\"pending\"},", " {\"text\":\"Integration test end-to-end\",\"status\":\"pending\"}", " ]}", "]}", "```", "Then complete sub-items: `{\"action\":\"complete_item\",\"itemIndex\":\"0.0\"}` → `\"0.1\"` → `\"0.2\"` → `\"1.0\"` ...", "", "### Rules", "- ALWAYS use the checklist tool. NEVER write markdown checklists in your messages.", "- **HARD-ENFORCED: one `complete_item` call per turn.** The tool rejects any second attempt in the same turn with an enforcement error. Do not try to batch.", "- Each turn: do the actual work for the current item (tools, file writes, exec, browser, research), THEN call `complete_item` once, THEN end your response.", "- If you have nothing else to say, end the turn after `complete_item` — don't add filler text that blocks the user from seeing progress.", "- The UI renders this as a live widget with progress bars, sections, and animations — batching completions makes the widget useless.", "");
138437
138437
  lines.push("## Silent Replies", `When you have nothing to say, respond with ONLY: ${SILENT_REPLY_TOKEN}`, "", "⚠️ Rules:", "- It must be your ENTIRE message — nothing else", `- Never append it to an actual response (never include "${SILENT_REPLY_TOKEN}" in real replies)`, "- Never wrap it in markdown or code blocks", "", `❌ Wrong: "Here's help... ${SILENT_REPLY_TOKEN}"`, `❌ Wrong: "${SILENT_REPLY_TOKEN}"`, `✅ Right: ${SILENT_REPLY_TOKEN}`, "");
138438
138438
  }
138439
138439
  if (!isMinimal) lines.push("## Heartbeats", heartbeatPromptLine, "If you receive a heartbeat poll (a user message matching the heartbeat prompt above), you MUST do productive work and report what you did. Neither HEARTBEAT_OK nor NO_REPLY are acceptable responses to heartbeats. Always take real action: use tools, run commands, update files, check infrastructure, test things, review code, maintain memory. Then describe what you did. 'Nothing to do' does not exist.", "SKYKOI treats a leading/trailing \"HEARTBEAT_OK\" as a heartbeat ack (and may discard it).", "");
@@ -155015,8 +155015,27 @@ function resolveIndex(items, indexPath) {
155015
155015
  parent
155016
155016
  };
155017
155017
  }
155018
+ const completeItemCountByRun = /* @__PURE__ */ new Map();
155019
+ let activeRunId = null;
155020
+ let enforcementRegistered = false;
155021
+ function registerEnforcement() {
155022
+ if (enforcementRegistered) return;
155023
+ enforcementRegistered = true;
155024
+ onAgentEvent((evt) => {
155025
+ if (evt.stream !== "lifecycle") return;
155026
+ const phase = evt.data?.phase;
155027
+ if (phase === "start") {
155028
+ activeRunId = evt.runId;
155029
+ completeItemCountByRun.set(evt.runId, 0);
155030
+ } else if (phase === "end" || phase === "error") {
155031
+ completeItemCountByRun.delete(evt.runId);
155032
+ if (activeRunId === evt.runId) activeRunId = null;
155033
+ }
155034
+ });
155035
+ }
155018
155036
  function createChecklistTool() {
155019
155037
  let state = null;
155038
+ registerEnforcement();
155020
155039
  return {
155021
155040
  label: "checklist",
155022
155041
  name: "checklist",
@@ -155089,6 +155108,22 @@ function createChecklistTool() {
155089
155108
  _type: "checklist",
155090
155109
  error: `Invalid index ${indexPath}. Checklist has ${state.items.length} top-level items.`
155091
155110
  });
155111
+ if (activeRunId) {
155112
+ const count = completeItemCountByRun.get(activeRunId) ?? 0;
155113
+ if (count >= 1) {
155114
+ const { done, total } = flatCount(state.items);
155115
+ return jsonResult({
155116
+ _type: "checklist",
155117
+ error: "BLOCKED — one item per turn",
155118
+ enforced: true,
155119
+ title: state.title,
155120
+ items: state.items,
155121
+ summary: `${done}/${total} complete`,
155122
+ message: "You already marked one item complete this turn. STOP. End your response now without calling any more tools. The user is watching this checklist progress live — batching completions defeats the purpose. On your next turn, do the actual work for the next item (tools, file writes, exec, browser actions, research), THEN mark it complete. One item. One turn. Real work in between."
155123
+ });
155124
+ }
155125
+ completeItemCountByRun.set(activeRunId, count + 1);
155126
+ }
155092
155127
  resolved.item.status = "done";
155093
155128
  if (resolved.parent?.children?.every((c) => c.status === "done")) resolved.parent.status = "done";
155094
155129
  clearAllActive(state.items);
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-ceEtRKcD.js";
2
- import { rn as installUnhandledRejectionHandler } from "./reply-FlSo_-OX.js";
2
+ import { rn as installUnhandledRejectionHandler } from "./reply-B4cc3N38.js";
3
3
  import { c as defaultRuntime, r as enableConsoleCapture } from "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import "./utils-DIctjiBL.js";
@@ -54,25 +54,25 @@ import "./satisfies-Ch9z1ETk.js";
54
54
  import "./session-cost-usage-BCDbst6m.js";
55
55
  import "./control-service-BDK31ulX.js";
56
56
  import "./channel-selection-BZvCBj33.js";
57
- import "./deps-D7589aUm.js";
57
+ import "./deps-SsvcL-Jm.js";
58
58
  import "./tailscale-CW2aNYJ9.js";
59
59
  import { t as loadDotEnv } from "./dotenv-DlZCd7a6.js";
60
60
  import { t as ensureSKYKOICliOnPath } from "./path-env-DsAko5OY.js";
61
61
  import { g as assertSupportedRuntime } from "./daemon-runtime-Cjd-rzl-.js";
62
- import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-B_vYKlsi.js";
62
+ import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-DpcVu5Tw.js";
63
63
  import "./logging-B818ac7o.js";
64
64
  import "./note-ty8fydmp.js";
65
65
  import "./clack-prompter-D03d7Olp.js";
66
- import "./onboarding-VdNWx4R1.js";
67
- import "./onboard-skills-DgUFCyHf.js";
68
- import "./github-copilot-auth-BfKh2PS7.js";
69
- import "./onboard-channels-Bqn0nVg_.js";
66
+ import "./onboarding-k6R-035y.js";
67
+ import "./onboard-skills-CTS-IagA.js";
68
+ import "./github-copilot-auth-CjuKOwtS.js";
69
+ import "./onboard-channels-C9IBRX3J.js";
70
70
  import "./plugin-auto-enable-5KyNn7n8.js";
71
- import "./archive-CwUX4il3.js";
71
+ import "./archive-D3q2XAkA.js";
72
72
  import "./skill-scanner-BapBkMb3.js";
73
- import "./installs-BjC_GfUD.js";
74
- import "./health-format-BRO6ZdSV.js";
75
- import "./update-runner-p6x8CBa0.js";
73
+ import "./installs-BCoqZtxb.js";
74
+ import "./health-format-NL8bJAOG.js";
75
+ import "./update-runner-CrneRBnx.js";
76
76
  import "./auth-DN9iwG98.js";
77
77
  import "./audit-BEEPWxXy.js";
78
78
  import "./table-BuHjFIeu.js";
@@ -82,18 +82,18 @@ import "./systemd-BTcdURXT.js";
82
82
  import "./service-audit-BBKQ6NL-.js";
83
83
  import "./node-service-CdjRxBgz.js";
84
84
  import "./channels-status-issues-BaXwaWXv.js";
85
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-L-0VCsxM.js";
85
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-4CGiRqAh.js";
86
86
  import "./gateway-rpc-CO4ZKF3u.js";
87
87
  import "./help-format-rUxU9jE_.js";
88
- import "./agent-DxiVLxS0.js";
89
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-5qpwJA3E.js";
90
- import "./configure-BZ625PeT.js";
88
+ import "./agent-D-zxOQsb.js";
89
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-D9_kRtK7.js";
90
+ import "./configure-B4qOJJUV.js";
91
91
  import "./systemd-linger-BSA8MnYc.js";
92
92
  import "./widearea-dns-C09wbKzV.js";
93
93
  import "./bonjour-discovery-DF5ll51G.js";
94
94
  import "./auth-health-C8j09v90.js";
95
- import "./doctor-C0KGGHEo.js";
96
- import "./completion-cli-B2FZlLTE.js";
95
+ import "./doctor-D8N-gHG5.js";
96
+ import "./completion-cli-B1HJnl-F.js";
97
97
  import "./hooks-status-C1k8_Ivg.js";
98
98
  import { n as emitCliBanner } from "./tui-JkYQWRgq.js";
99
99
  import process$1 from "node:process";
@@ -149,7 +149,7 @@ async function runCli(argv = process$1.argv) {
149
149
  assertSupportedRuntime();
150
150
  if (await tryRouteCli(normalizedArgv)) return;
151
151
  enableConsoleCapture();
152
- const { buildProgram } = await import("./program-DB6bKRW8.js").then((n) => n.t);
152
+ const { buildProgram } = await import("./program-DP-p8ALC.js").then((n) => n.t);
153
153
  const program = buildProgram();
154
154
  installUnhandledRejectionHandler();
155
155
  process$1.on("uncaughtException", (error) => {
@@ -159,11 +159,11 @@ async function runCli(argv = process$1.argv) {
159
159
  const parseArgv = rewriteUpdateFlagArgv(normalizedArgv);
160
160
  const primary = getPrimaryCommand(parseArgv);
161
161
  if (primary) {
162
- const { registerSubCliByName } = await import("./register.subclis-L-0VCsxM.js").then((n) => n.i);
162
+ const { registerSubCliByName } = await import("./register.subclis-4CGiRqAh.js").then((n) => n.i);
163
163
  await registerSubCliByName(program, primary);
164
164
  }
165
165
  if (!(!primary && hasHelpOrVersion(parseArgv))) {
166
- const { registerPluginCliCommands } = await import("./cli-Cokc7FX7.js");
166
+ const { registerPluginCliCommands } = await import("./cli-D6AfBjdz.js");
167
167
  const { loadConfig } = await import("./config-9HrG2o2n.js").then((n) => n.t);
168
168
  registerPluginCliCommands(program, loadConfig());
169
169
  }
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-ceEtRKcD.js";
2
- import { st as requestHeartbeatNow, v as loadSessionEntry, yr as enqueueSystemEvent } from "./reply-FlSo_-OX.js";
2
+ import { st as requestHeartbeatNow, v as loadSessionEntry, yr as enqueueSystemEvent } from "./reply-B4cc3N38.js";
3
3
  import { c as defaultRuntime } from "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import { u as normalizeMainKey } from "./session-key-hGS8_hRJ.js";
@@ -55,8 +55,8 @@ import "./satisfies-Ch9z1ETk.js";
55
55
  import "./session-cost-usage-BCDbst6m.js";
56
56
  import "./control-service-BDK31ulX.js";
57
57
  import "./channel-selection-BZvCBj33.js";
58
- import "./deps-D7589aUm.js";
59
- import { t as agentCommand } from "./agent-DxiVLxS0.js";
58
+ import "./deps-SsvcL-Jm.js";
59
+ import { t as agentCommand } from "./agent-D-zxOQsb.js";
60
60
  import { t as formatForLog } from "./ws-log-NQGsvlnZ.js";
61
61
  import { randomUUID } from "node:crypto";
62
62
 
@@ -1,4 +1,4 @@
1
- import { ut as loadSKYKOIPlugins } from "./reply-FlSo_-OX.js";
1
+ import { ut as loadSKYKOIPlugins } from "./reply-B4cc3N38.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-Dl1sS5S-.js";
3
3
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir, w as resolveDefaultAgentWorkspaceDir } from "./agent-scope-DrL2uTp9.js";
4
4
  import { o as loadConfig } from "./config-9HrG2o2n.js";
@@ -1,6 +1,6 @@
1
1
  import { h as resolveUserPath } from "./utils-DIctjiBL.js";
2
2
  import { n as discoverSKYKOIPlugins, r as loadPluginManifest } from "./manifest-registry-5tS0nRed.js";
3
- import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-BjC_GfUD.js";
3
+ import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-BCoqZtxb.js";
4
4
  import fs from "node:fs/promises";
5
5
 
6
6
  //#region src/plugins/update.ts
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-ceEtRKcD.js";
2
- import { Y as trimLogTail } from "./reply-FlSo_-OX.js";
2
+ import { Y as trimLogTail } from "./reply-B4cc3N38.js";
3
3
  import { T as theme, c as defaultRuntime } from "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import "./utils-DIctjiBL.js";
@@ -56,17 +56,17 @@ import "./satisfies-Ch9z1ETk.js";
56
56
  import "./session-cost-usage-BCDbst6m.js";
57
57
  import "./control-service-BDK31ulX.js";
58
58
  import "./channel-selection-BZvCBj33.js";
59
- import "./deps-D7589aUm.js";
59
+ import "./deps-SsvcL-Jm.js";
60
60
  import "./tailscale-CW2aNYJ9.js";
61
61
  import { _ as parseSemver } from "./daemon-runtime-Cjd-rzl-.js";
62
62
  import "./logging-B818ac7o.js";
63
63
  import "./note-ty8fydmp.js";
64
64
  import "./plugin-auto-enable-5KyNn7n8.js";
65
- import "./archive-CwUX4il3.js";
65
+ import "./archive-D3q2XAkA.js";
66
66
  import "./skill-scanner-BapBkMb3.js";
67
- import "./installs-BjC_GfUD.js";
68
- import "./health-format-BRO6ZdSV.js";
69
- import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, d as formatUpdateOneLiner, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, l as ensureCompletionCacheExists, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as resolveUpdateAvailability, r as detectGlobalInstallManagerByPresence, s as checkShellCompletionStatus, t as runGatewayUpdate, u as formatUpdateAvailableHint, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-p6x8CBa0.js";
67
+ import "./installs-BCoqZtxb.js";
68
+ import "./health-format-NL8bJAOG.js";
69
+ import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, d as formatUpdateOneLiner, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, l as ensureCompletionCacheExists, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as resolveUpdateAvailability, r as detectGlobalInstallManagerByPresence, s as checkShellCompletionStatus, t as runGatewayUpdate, u as formatUpdateAvailableHint, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-CrneRBnx.js";
70
70
  import "./auth-DN9iwG98.js";
71
71
  import { t as renderTable } from "./table-BuHjFIeu.js";
72
72
  import "./skills-status-BimvAz-k.js";
@@ -74,15 +74,15 @@ import "./service-Fxlow9XO.js";
74
74
  import "./systemd-BTcdURXT.js";
75
75
  import "./service-audit-BBKQ6NL-.js";
76
76
  import "./channels-status-issues-BaXwaWXv.js";
77
- import "./register.subclis-L-0VCsxM.js";
77
+ import "./register.subclis-4CGiRqAh.js";
78
78
  import { t as formatHelpExamples } from "./help-format-rUxU9jE_.js";
79
79
  import "./systemd-linger-BSA8MnYc.js";
80
80
  import "./auth-health-C8j09v90.js";
81
- import { t as doctorCommand } from "./doctor-C0KGGHEo.js";
82
- import { r as installCompletion } from "./completion-cli-B2FZlLTE.js";
81
+ import { t as doctorCommand } from "./doctor-D8N-gHG5.js";
82
+ import { r as installCompletion } from "./completion-cli-B1HJnl-F.js";
83
83
  import "./shared-32F_rZjy.js";
84
- import { r as runDaemonRestart } from "./daemon-cli-CClKuKDl.js";
85
- import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-9pzwg2aV.js";
84
+ import { r as runDaemonRestart } from "./daemon-cli-m0XMw1Ga.js";
85
+ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-DV-o1INC.js";
86
86
  import path from "node:path";
87
87
  import os from "node:os";
88
88
  import fs from "node:fs/promises";
@@ -1,12 +1,12 @@
1
- import { Y as trimLogTail } from "./reply-FlSo_-OX.js";
1
+ import { Y as trimLogTail } from "./reply-B4cc3N38.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-CToLomNk.js";
3
3
  import { t as resolveSKYKOIPackageRoot } from "./skykoi-root-BcOj1-eE.js";
4
4
  import { r as resolveCliName, t as formatCliCommand } from "./command-format-BxjVkF35.js";
5
5
  import { N as VERSION } from "./config-9HrG2o2n.js";
6
6
  import { _ as parseSemver } from "./daemon-runtime-Cjd-rzl-.js";
7
7
  import { t as note } from "./note-ty8fydmp.js";
8
- import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-BRO6ZdSV.js";
9
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-B2FZlLTE.js";
8
+ import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-NL8bJAOG.js";
9
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-B1HJnl-F.js";
10
10
  import path from "node:path";
11
11
  import os from "node:os";
12
12
  import fs from "node:fs/promises";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skykoi",
3
- "version": "2026.3.92",
3
+ "version": "2026.3.93",
4
4
  "description": "SkyKoi — AI agent runtime. Multi-channel gateway CLI with RPC agent. Forked from SkyKoi.",
5
5
  "keywords": [
6
6
  "skykoi",