skykoi 2026.3.409 → 2026.3.411
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.
- package/dist/{archive-AjYuBz_-.js → archive-DznJKByM.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/{ca-director-Dm1Fgjrk.js → ca-director-HAceIY1J.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{capture-service-ByxuHbUm.js → capture-service-CAMxeEVy.js} +3 -3
- package/dist/{channel-options-Cpy0yhHD.js → channel-options-BxEU-nPO.js} +1 -1
- package/dist/{channels-cli-Bdluj4pt.js → channels-cli-BW0edRPG.js} +9 -9
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-C2kKZWEB.js → cli-C7ac3cKP.js} +4 -4
- package/dist/{completion-cli-Cs8JvAtz.js → completion-cli-BUKJesZz.js} +1 -1
- package/dist/{config-guard-CZUoWEXT.js → config-guard-BtbnNNkU.js} +15 -15
- package/dist/{configure-BPvDcdq_.js → configure-iWghJUhZ.js} +3 -3
- package/dist/{daemon-cli-BIeFajMn.js → daemon-cli-BjDgqVtS.js} +1 -1
- package/dist/{deps-DmQrcj9Z.js → deps-DmIQ6v-n.js} +1 -1
- package/dist/{doctor-BV4MfED2.js → doctor-Bm6FrCo4.js} +3 -3
- package/dist/{doctor-completion-D5Q-Z5GH.js → doctor-completion-BPPZc8kY.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extension-api.js +4 -4
- package/dist/{gateway-cli-DfBo3rZ2.js → gateway-cli-BQPEWm7S.js} +25 -21
- package/dist/{github-copilot-auth-VjIbJEmt.js → github-copilot-auth-BsKdmBYH.js} +1 -1
- package/dist/{health-format-Drfborr0.js → health-format-VRtl3jxV.js} +1 -1
- package/dist/{hooks-cli-AohiIgFS.js → hooks-cli-CZ73m-u6.js} +6 -6
- package/dist/{identify-WgecrUlh.js → identify-D9fBKIKv.js} +7 -1
- package/dist/index.js +23 -23
- package/dist/{installs-B1eWtBWS.js → installs-DHTKIFkp.js} +1 -1
- package/dist/{koi-CI2FvLOh.js → koi-BUt7Nsyf.js} +3 -3
- package/dist/{models-cli-8aDwPotN.js → models-cli-BDRlpfh5.js} +5 -5
- package/dist/{onboard-channels-BDRgFBs8.js → onboard-channels-DXq4vacH.js} +2 -2
- package/dist/{onboard-skills-CXZ8uZ3x.js → onboard-skills-CTtcai_R.js} +3 -3
- package/dist/{onboarding-TNvycTmb.js → onboarding-CThrYTcv.js} +8 -8
- package/dist/{plugin-registry-BMM41NiO.js → plugin-registry-B-28j8Y7.js} +1 -1
- package/dist/plugin-sdk/index.js +8 -8
- package/dist/plugin-sdk/koi/code-mode/run-code-tool.d.ts +6 -0
- package/dist/plugin-sdk/{pi-model-discovery-ClImJtLC.js → pi-model-discovery-lynj0LAO.js} +3 -3
- package/dist/{plugins-cli-D-IBAdoh.js → plugins-cli-CXVbGLQ0.js} +8 -8
- package/dist/{proactive-eval-C99Nh1sV.js → proactive-eval-D4_ypgHF.js} +2 -2
- package/dist/{program-BP6f5JjD.js → program-DdmA2_RF.js} +5 -5
- package/dist/{register.subclis-DbUaIVOo.js → register.subclis-DtwEVdF1.js} +11 -11
- package/dist/{reply-DXTvSWh4.js → reply-CUjyGFdH.js} +4 -4
- package/dist/{run-code-tool-hFlGv-m5.js → run-code-tool-Cr01FqsJ.js} +43 -2
- package/dist/{run-main-DzyHgoy7.js → run-main-2EdEQ5zJ.js} +24 -24
- package/dist/{server-node-events-D7xAn6iJ.js → server-node-events-hjEICLTZ.js} +6 -6
- package/dist/{status-BehPAih9.js → status-DuCW9vUJ.js} +1 -1
- package/dist/{tui-0Q0pav5m.js → tui-Dq0CDDDr.js} +1 -1
- package/dist/{tui-cli-CW7v6fUB.js → tui-cli-DpXOusL6.js} +4 -4
- package/dist/{tui-shell-CxprsmR_.js → tui-shell-BrdURMdX.js} +70 -5
- package/dist/{update-Di3diXiJ.js → update-DEtKFkNK.js} +1 -1
- package/dist/{update-cli-L7gwCcQ8.js → update-cli-DdDPn9T0.js} +14 -14
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +10 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +10 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +10 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +10 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +10 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +10 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +10 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as __require, o as __toESM, t as __commonJSMin } from "./chunk-D_gEzPfs.js";
|
|
2
|
-
import { Y as require_inherits } from "./reply-
|
|
2
|
+
import { Y as require_inherits } from "./reply-CUjyGFdH.js";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import fs from "node:fs/promises";
|
|
5
5
|
import * as tar from "tar";
|
package/dist/build-info.json
CHANGED
|
@@ -14,7 +14,7 @@ import { n as SILENT_REPLY_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-DznGfpjQ
|
|
|
14
14
|
import { a as formatTokenCount, n as extractToolCallNames, r as hasToolCall } from "./transcript-tools-BByi9l-4.js";
|
|
15
15
|
import { n as readSkykoiEnvVar } from "./dotenv-d4aPJ7q2.js";
|
|
16
16
|
import { a as R, d as panel, i as HUES, n as BOLD, p as rule, r as DIM, t as ACCENT } from "./rich-wmQhKBIx.js";
|
|
17
|
-
import { a as containsKoiMention, c as noteMicSpeaker, g as isPrivateMode, h as isAudioMuted, i as classifyMicAddressing, n as resolveVoiceIdentity, o as getAmbientSnapshot, p as getAllEvents, r as WEARER_MATCH_CONFIDENCE, s as isWakeAddress, u as EchoTracker } from "./identify-
|
|
17
|
+
import { a as containsKoiMention, c as noteMicSpeaker, g as isPrivateMode, h as isAudioMuted, i as classifyMicAddressing, n as resolveVoiceIdentity, o as getAmbientSnapshot, p as getAllEvents, r as WEARER_MATCH_CONFIDENCE, s as isWakeAddress, u as EchoTracker } from "./identify-D9fBKIKv.js";
|
|
18
18
|
import { a as CA_FAMILIES, i as sendNativeIntent, t as hasNativeWindow } from "./native-window-CMnOFmyK.js";
|
|
19
19
|
import fs, { closeSync, existsSync, openSync, readSync, statSync } from "node:fs";
|
|
20
20
|
import path, { join } from "node:path";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
29a5be597962bd4eba4084ad27bd103111e191335f365827e7c84e3f866054bd
|
|
@@ -3,7 +3,7 @@ import "./paths-VdmjGGyc.js";
|
|
|
3
3
|
import "./theme-CX-D7gOR.js";
|
|
4
4
|
import "./ansi-By7x1TI7.js";
|
|
5
5
|
import { a as clearBillingAlert, i as classifyBillingFailure, o as reportBillingAlert } from "./billing-alerts-DW7RyxM5.js";
|
|
6
|
-
import { _ as pushCaptureEvent, d as drainEvents, f as flushToDisk, g as isPrivateMode, h as isAudioMuted, l as DominantSpeakerTracker, n as resolveVoiceIdentity, u as EchoTracker } from "./identify-
|
|
6
|
+
import { _ as pushCaptureEvent, d as drainEvents, f as flushToDisk, g as isPrivateMode, h as isAudioMuted, l as DominantSpeakerTracker, n as resolveVoiceIdentity, u as EchoTracker } from "./identify-D9fBKIKv.js";
|
|
7
7
|
import "./registry-xBtEGPIj.js";
|
|
8
8
|
import { closeSync, copyFileSync, existsSync, openSync, readFileSync, readSync, statSync, unlinkSync, watch, writeFileSync } from "node:fs";
|
|
9
9
|
import { dirname, extname, join, relative } from "node:path";
|
|
@@ -2230,14 +2230,14 @@ async function startCaptureService(opts) {
|
|
|
2230
2230
|
console.error(`[capture] hearing meter failed to start: ${err}`);
|
|
2231
2231
|
}
|
|
2232
2232
|
try {
|
|
2233
|
-
const { startVoiceId } = await import("./identify-
|
|
2233
|
+
const { startVoiceId } = await import("./identify-D9fBKIKv.js").then((n) => n.t);
|
|
2234
2234
|
const voiceIdHandle = startVoiceId();
|
|
2235
2235
|
stops.push(voiceIdHandle.stop);
|
|
2236
2236
|
} catch (err) {
|
|
2237
2237
|
console.error(`[capture] Voice-ID failed to start: ${err}`);
|
|
2238
2238
|
}
|
|
2239
2239
|
try {
|
|
2240
|
-
const { startProactiveEval } = await import("./proactive-eval-
|
|
2240
|
+
const { startProactiveEval } = await import("./proactive-eval-D4_ypgHF.js").then((n) => n.t);
|
|
2241
2241
|
const proactiveHandle = startProactiveEval();
|
|
2242
2242
|
stops.push(proactiveHandle.stop);
|
|
2243
2243
|
} catch (err) {
|
|
@@ -2,7 +2,7 @@ import { O as CHAT_CHANNEL_ORDER } from "./subsystem-nnRnHSFk.js";
|
|
|
2
2
|
import { t as isTruthyEnvValue } from "./env-C2ovlUPG.js";
|
|
3
3
|
import { n as listChannelPlugins } from "./plugins-CD53Y-wp.js";
|
|
4
4
|
import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-7Sq0kaQq.js";
|
|
5
|
-
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-
|
|
5
|
+
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-B-28j8Y7.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-DFn976W-.js";
|
|
2
|
-
import { Dt as fetchChannelPermissionsDiscord, Et as parseDiscordTarget, G as formatUsageReportLines, W as loadProviderUsageSummary, zt as createSlackWebClient } from "./reply-
|
|
2
|
+
import { Dt as fetchChannelPermissionsDiscord, Et as parseDiscordTarget, G as formatUsageReportLines, W as loadProviderUsageSummary, zt as createSlackWebClient } from "./reply-CUjyGFdH.js";
|
|
3
3
|
import { f as danger, s as defaultRuntime, w as getResolvedLoggerSettings } from "./subsystem-nnRnHSFk.js";
|
|
4
4
|
import "./paths-VdmjGGyc.js";
|
|
5
5
|
import { r as theme } from "./theme-CX-D7gOR.js";
|
|
@@ -45,7 +45,7 @@ import "./tool-images-BIkTcSan.js";
|
|
|
45
45
|
import "./redact-ClVwO7Nn.js";
|
|
46
46
|
import "./tool-display-DvcBjgri.js";
|
|
47
47
|
import "./deliver-uOIbsOCt.js";
|
|
48
|
-
import "./ca-director-
|
|
48
|
+
import "./ca-director-HAceIY1J.js";
|
|
49
49
|
import "./dispatcher-BHYC2Mdu.js";
|
|
50
50
|
import "./dist-UoOHg1p0.js";
|
|
51
51
|
import "./platform-billing-BjToqDnR.js";
|
|
@@ -81,8 +81,8 @@ import "./dotenv-d4aPJ7q2.js";
|
|
|
81
81
|
import { n as resolveMessageChannelSelection } from "./channel-selection-Di4awirs.js";
|
|
82
82
|
import "./zen-surface-DJHZWAux.js";
|
|
83
83
|
import "./rich-wmQhKBIx.js";
|
|
84
|
-
import "./proactive-eval-
|
|
85
|
-
import "./identify-
|
|
84
|
+
import "./proactive-eval-D4_ypgHF.js";
|
|
85
|
+
import "./identify-D9fBKIKv.js";
|
|
86
86
|
import "./registry-xBtEGPIj.js";
|
|
87
87
|
import "./native-window-CMnOFmyK.js";
|
|
88
88
|
import "./action-ledger-CJ4wxgFj.js";
|
|
@@ -90,20 +90,20 @@ import "./event-log-WbPUNukH.js";
|
|
|
90
90
|
import { t as resolveChannelDefaultAccountId } from "./helpers-4BXRutqw.js";
|
|
91
91
|
import "./note-PNq_JEQe.js";
|
|
92
92
|
import { t as createClackPrompter } from "./clack-prompter-clPzQ9p-.js";
|
|
93
|
-
import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-
|
|
93
|
+
import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-DXq4vacH.js";
|
|
94
94
|
import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-7Sq0kaQq.js";
|
|
95
|
-
import "./archive-
|
|
95
|
+
import "./archive-DznJKByM.js";
|
|
96
96
|
import "./skill-scanner-CLckczzl.js";
|
|
97
|
-
import "./installs-
|
|
97
|
+
import "./installs-DHTKIFkp.js";
|
|
98
98
|
import "./service-D1-PnhZe.js";
|
|
99
99
|
import "./systemd-DZP4s4qd.js";
|
|
100
100
|
import "./diagnostics-6vXdnH8k.js";
|
|
101
101
|
import { t as collectChannelStatusIssues } from "./channels-status-issues-CGTJwSbx.js";
|
|
102
|
-
import { n as hasExplicitOptions } from "./plugin-registry-
|
|
102
|
+
import { n as hasExplicitOptions } from "./plugin-registry-B-28j8Y7.js";
|
|
103
103
|
import "./daemon-runtime-DIgqhoVa.js";
|
|
104
104
|
import "./ensure-local-gateway-Xk7ir7zS.js";
|
|
105
105
|
import { n as runChannelLoginAll, r as runChannelLogout, t as runChannelLogin } from "./channel-auth-DCGvsTTl.js";
|
|
106
|
-
import { t as formatCliChannelOptions } from "./channel-options-
|
|
106
|
+
import { t as formatCliChannelOptions } from "./channel-options-BxEU-nPO.js";
|
|
107
107
|
import { t as buildChannelAccountSnapshot } from "./status-pq91F0kp.js";
|
|
108
108
|
import { t as parseLogLine } from "./parse-log-line-BFXEIELd.js";
|
|
109
109
|
import fs from "node:fs/promises";
|
package/dist/cli/daemon-cli.js
CHANGED
|
@@ -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-
|
|
2
|
+
export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-BjDgqVtS.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./pi-embedded-helpers-DFn976W-.js";
|
|
2
|
-
import { U as loadSKYKOIPlugins } from "./reply-
|
|
2
|
+
import { U as loadSKYKOIPlugins } from "./reply-CUjyGFdH.js";
|
|
3
3
|
import { t as createSubsystemLogger } from "./subsystem-nnRnHSFk.js";
|
|
4
4
|
import "./paths-VdmjGGyc.js";
|
|
5
5
|
import "./theme-CX-D7gOR.js";
|
|
@@ -43,7 +43,7 @@ import "./tool-images-BIkTcSan.js";
|
|
|
43
43
|
import "./redact-ClVwO7Nn.js";
|
|
44
44
|
import "./tool-display-DvcBjgri.js";
|
|
45
45
|
import "./deliver-uOIbsOCt.js";
|
|
46
|
-
import "./ca-director-
|
|
46
|
+
import "./ca-director-HAceIY1J.js";
|
|
47
47
|
import "./dispatcher-BHYC2Mdu.js";
|
|
48
48
|
import "./dist-UoOHg1p0.js";
|
|
49
49
|
import "./platform-billing-BjToqDnR.js";
|
|
@@ -78,8 +78,8 @@ import "./dotenv-d4aPJ7q2.js";
|
|
|
78
78
|
import "./channel-selection-Di4awirs.js";
|
|
79
79
|
import "./zen-surface-DJHZWAux.js";
|
|
80
80
|
import "./rich-wmQhKBIx.js";
|
|
81
|
-
import "./proactive-eval-
|
|
82
|
-
import "./identify-
|
|
81
|
+
import "./proactive-eval-D4_ypgHF.js";
|
|
82
|
+
import "./identify-D9fBKIKv.js";
|
|
83
83
|
import "./registry-xBtEGPIj.js";
|
|
84
84
|
import "./native-window-CMnOFmyK.js";
|
|
85
85
|
import "./action-ledger-CJ4wxgFj.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as __exportAll } from "./chunk-D_gEzPfs.js";
|
|
2
2
|
import { g as resolveStateDir } from "./paths-VdmjGGyc.js";
|
|
3
|
-
import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-
|
|
3
|
+
import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-DtwEVdF1.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 { C as CHANNEL_MESSAGE_ACTION_NAMES, lt as registerMemoryCli, ut as runMemoryStatus, v as runMessageAction, x as formatTargetDisplay } from "./reply-
|
|
1
|
+
import { C as CHANNEL_MESSAGE_ACTION_NAMES, lt as registerMemoryCli, ut as runMemoryStatus, v as runMessageAction, x as formatTargetDisplay } from "./reply-CUjyGFdH.js";
|
|
2
2
|
import { I as normalizeChatChannelId, M as getChatChannelMeta, c as restoreTerminalState, f as danger, k as DEFAULT_CHAT_CHANNEL, p as info, s as defaultRuntime, v as setVerbose } from "./subsystem-nnRnHSFk.js";
|
|
3
3
|
import { g as resolveStateDir, i as isNixMode, m as resolveOAuthDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
|
|
4
4
|
import { n as isRich, r as theme, t as colorize } from "./theme-CX-D7gOR.js";
|
|
@@ -15,7 +15,7 @@ import { i as loadSessionStore } from "./sessions-DnPG9BI4.js";
|
|
|
15
15
|
import { n as movePathToTrash } from "./server-context-CNfswlAM.js";
|
|
16
16
|
import { h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES } from "./message-channel-Cy9b1PGA.js";
|
|
17
17
|
import { a as resolveSessionTranscriptsDirForKoi, i as resolveSessionTranscriptsDir, o as resolveStorePath } from "./paths-CizQHpAk.js";
|
|
18
|
-
import { gt as lookupContextTokens } from "./ca-director-
|
|
18
|
+
import { gt as lookupContextTokens } from "./ca-director-HAceIY1J.js";
|
|
19
19
|
import { a as randomIdempotencyKey, n as callGateway } from "./call-CqDndKP3.js";
|
|
20
20
|
import { t as formatDocsLink } from "./links-BY_N2dMU.js";
|
|
21
21
|
import { n as runCommandWithRuntime } from "./cli-utils-D4mTRuWj.js";
|
|
@@ -23,32 +23,32 @@ import { n as withProgress } from "./progress-B8PPYDDC.js";
|
|
|
23
23
|
import { a as ensureWorkspaceAndSessions, c as handleReset, d as openUrl, h as resolveControlUiLinks, i as detectBrowserOpenSupport, l as moveToTrash, m as randomToken, n as applyWizardMetadata, o as formatControlUiSshHint, t as DEFAULT_WORKSPACE, v as waitForGatewayReachable } from "./onboard-helpers-nDN4y46S.js";
|
|
24
24
|
import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-CJRaWg4h.js";
|
|
25
25
|
import { h as CHANNEL_TARGET_DESCRIPTION, m as CHANNEL_TARGETS_DESCRIPTION } from "./surface-tool-CAcZRxFq.js";
|
|
26
|
-
import { t as createDefaultDeps } from "./deps-
|
|
26
|
+
import { t as createDefaultDeps } from "./deps-DmIQ6v-n.js";
|
|
27
27
|
import { t as assertSupportedRuntime } from "./runtime-guard-qFkyrhAB.js";
|
|
28
28
|
import { t as resolveChannelDefaultAccountId } from "./helpers-4BXRutqw.js";
|
|
29
29
|
import { n as logConfigUpdated, t as formatConfigPath } from "./logging-C3sRv-iX.js";
|
|
30
30
|
import { t as WizardCancelledError } from "./prompts-BC5TXS0_.js";
|
|
31
31
|
import { t as createClackPrompter } from "./clack-prompter-clPzQ9p-.js";
|
|
32
|
-
import { a as buildKoiSummaries, c as loadKoiIdentity, f as parseIdentityMarkdown, i as applyKoiConfig, l as pruneKoiConfig, n as statusCommand, o as findKoiEntryIndex, s as listKoiEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-
|
|
33
|
-
import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-
|
|
34
|
-
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-
|
|
35
|
-
import { n as setupChannels } from "./onboard-channels-
|
|
36
|
-
import { i as healthCommand } from "./health-format-
|
|
32
|
+
import { a as buildKoiSummaries, c as loadKoiIdentity, f as parseIdentityMarkdown, i as applyKoiConfig, l as pruneKoiConfig, n as statusCommand, o as findKoiEntryIndex, s as listKoiEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-CThrYTcv.js";
|
|
33
|
+
import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-CTtcai_R.js";
|
|
34
|
+
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-BsKdmBYH.js";
|
|
35
|
+
import { n as setupChannels } from "./onboard-channels-DXq4vacH.js";
|
|
36
|
+
import { i as healthCommand } from "./health-format-VRtl3jxV.js";
|
|
37
37
|
import { t as renderTable } from "./table-DIfWcies.js";
|
|
38
38
|
import { t as resolveGatewayService } from "./service-D1-PnhZe.js";
|
|
39
39
|
import { r as isSystemdUserServiceAvailable } from "./systemd-DZP4s4qd.js";
|
|
40
|
-
import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-
|
|
40
|
+
import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-DtwEVdF1.js";
|
|
41
41
|
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DwTpsQgX.js";
|
|
42
42
|
import { t as formatHelpExamples } from "./help-format-Bz-E4Xsi.js";
|
|
43
43
|
import { t as adminUnlockCommand } from "./admin-unlock-CjZRxHxf.js";
|
|
44
|
-
import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-
|
|
45
|
-
import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-
|
|
44
|
+
import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-BUt7Nsyf.js";
|
|
45
|
+
import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-B-28j8Y7.js";
|
|
46
46
|
import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-CI2sc-CB.js";
|
|
47
|
-
import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-
|
|
47
|
+
import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-iWghJUhZ.js";
|
|
48
48
|
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-DIgqhoVa.js";
|
|
49
49
|
import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-DHSd9ikR.js";
|
|
50
50
|
import { t as loginCommand } from "./login-JCFx5Pzl.js";
|
|
51
|
-
import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-
|
|
51
|
+
import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-Bm6FrCo4.js";
|
|
52
52
|
import { fileURLToPath } from "node:url";
|
|
53
53
|
import fs from "node:fs";
|
|
54
54
|
import path from "node:path";
|
|
@@ -2799,7 +2799,7 @@ async function loadValidConfig() {
|
|
|
2799
2799
|
}
|
|
2800
2800
|
function registerConfigCli(program) {
|
|
2801
2801
|
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) => {
|
|
2802
|
-
const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-
|
|
2802
|
+
const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-iWghJUhZ.js").then((n) => n.t);
|
|
2803
2803
|
const sections = Array.isArray(opts.section) ? opts.section.map((value) => typeof value === "string" ? value.trim() : "").filter(Boolean) : [];
|
|
2804
2804
|
if (sections.length === 0) {
|
|
2805
2805
|
await configureCommand(defaultRuntime);
|
|
@@ -3107,7 +3107,7 @@ function registerLoginCommand(program) {
|
|
|
3107
3107
|
console.log(theme.muted(` user=${result.userId} org=${result.orgId}`));
|
|
3108
3108
|
}
|
|
3109
3109
|
if (opts.chat !== false && result.gatewayUrl && process.stdin.isTTY && process.stdout.isTTY) {
|
|
3110
|
-
const { runShell } = await import("./tui-shell-
|
|
3110
|
+
const { runShell } = await import("./tui-shell-BrdURMdX.js").then((n) => n.n);
|
|
3111
3111
|
console.log(theme.muted("\n Opening your koi chat…\n"));
|
|
3112
3112
|
await runShell({
|
|
3113
3113
|
url: result.gatewayUrl,
|
|
@@ -14,9 +14,9 @@ import { n as logConfigUpdated } from "./logging-C3sRv-iX.js";
|
|
|
14
14
|
import { t as note$1 } from "./note-PNq_JEQe.js";
|
|
15
15
|
import { t as WizardCancelledError } from "./prompts-BC5TXS0_.js";
|
|
16
16
|
import { t as createClackPrompter } from "./clack-prompter-clPzQ9p-.js";
|
|
17
|
-
import { a as applyModelFallbacksFromSelection, c as promptModelAllowlist, d as applyAuthChoice, h as promptAuthChoiceGrouped, i as applyModelAllowlist, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills } from "./onboard-skills-
|
|
18
|
-
import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-
|
|
19
|
-
import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-
|
|
17
|
+
import { a as applyModelFallbacksFromSelection, c as promptModelAllowlist, d as applyAuthChoice, h as promptAuthChoiceGrouped, i as applyModelAllowlist, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills } from "./onboard-skills-CTtcai_R.js";
|
|
18
|
+
import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-DXq4vacH.js";
|
|
19
|
+
import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-VRtl3jxV.js";
|
|
20
20
|
import { t as resolveGatewayService } from "./service-D1-PnhZe.js";
|
|
21
21
|
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-D4o4damy.js";
|
|
22
22
|
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-DIgqhoVa.js";
|
|
@@ -15,7 +15,7 @@ import { n as withProgress } from "./progress-B8PPYDDC.js";
|
|
|
15
15
|
import { h as resolveControlUiLinks } from "./onboard-helpers-nDN4y46S.js";
|
|
16
16
|
import { n as isWSLEnv, t as isWSL } from "./wsl-3CioBf4_.js";
|
|
17
17
|
import { d as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-UedXN8EP.js";
|
|
18
|
-
import { t as createDefaultDeps } from "./deps-
|
|
18
|
+
import { t as createDefaultDeps } from "./deps-DmIQ6v-n.js";
|
|
19
19
|
import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-D1-PnhZe.js";
|
|
20
20
|
import { r as isSystemdUserServiceAvailable } from "./systemd-DZP4s4qd.js";
|
|
21
21
|
import { t as readLastGatewayErrorLine } from "./diagnostics-6vXdnH8k.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ct as sendMessageTelegram, Lt as sendMessageWhatsApp, Rt as sendMessageSlack, X as sendMessageIMessage, wt as sendMessageDiscord } from "./reply-
|
|
1
|
+
import { Ct as sendMessageTelegram, Lt as sendMessageWhatsApp, Rt as sendMessageSlack, X as sendMessageIMessage, wt as sendMessageDiscord } from "./reply-CUjyGFdH.js";
|
|
2
2
|
import { b as sendMessageSignal } from "./deliver-uOIbsOCt.js";
|
|
3
3
|
|
|
4
4
|
//#region src/cli/deps.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { On as loadModelCatalog, U as loadSKYKOIPlugins } from "./reply-
|
|
1
|
+
import { On as loadModelCatalog, U as loadSKYKOIPlugins } from "./reply-CUjyGFdH.js";
|
|
2
2
|
import { s as defaultRuntime, w as getResolvedLoggerSettings } from "./subsystem-nnRnHSFk.js";
|
|
3
3
|
import { d as resolveIsNixMode, f as resolveLegacyStateDirs, g as resolveStateDir, m as resolveOAuthDir, p as resolveNewStateDir, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
|
|
4
4
|
import { a as buildKoiMainSessionKey, l as normalizeKoiId, r as DEFAULT_MAIN_KEY, t as DEFAULT_ACCOUNT_ID } from "./session-key-B2OXLVi_.js";
|
|
@@ -27,7 +27,7 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-4BXRutqw.js";
|
|
|
27
27
|
import { n as logConfigUpdated } from "./logging-C3sRv-iX.js";
|
|
28
28
|
import { t as note$1 } from "./note-PNq_JEQe.js";
|
|
29
29
|
import { t as applyPluginAutoEnable } from "./plugin-auto-enable-7Sq0kaQq.js";
|
|
30
|
-
import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-
|
|
30
|
+
import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-VRtl3jxV.js";
|
|
31
31
|
import { t as runGatewayUpdate } from "./update-runner-DHNkj8-z.js";
|
|
32
32
|
import { i as resolveGatewayAuth } from "./auth-X5uq6vRI.js";
|
|
33
33
|
import { t as buildWorkspaceSkillStatus } from "./skills-status-sMAyGPXV.js";
|
|
@@ -35,7 +35,7 @@ import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLa
|
|
|
35
35
|
import { r as isSystemdUserServiceAvailable } from "./systemd-DZP4s4qd.js";
|
|
36
36
|
import { t as readLastGatewayErrorLine } from "./diagnostics-6vXdnH8k.js";
|
|
37
37
|
import { t as collectChannelStatusIssues } from "./channels-status-issues-CGTJwSbx.js";
|
|
38
|
-
import { n as doctorShellCompletion } from "./doctor-completion-
|
|
38
|
+
import { n as doctorShellCompletion } from "./doctor-completion-BPPZc8kY.js";
|
|
39
39
|
import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-D4o4damy.js";
|
|
40
40
|
import { a as gatewayInstallErrorHint, d as renderSystemNodeWarning, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, p as resolveSystemNodeInfo, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-DIgqhoVa.js";
|
|
41
41
|
import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-DHSd9ikR.js";
|
|
@@ -3,7 +3,7 @@ import { r as resolveCliName, t as formatCliCommand } from "./command-format-DOY
|
|
|
3
3
|
import { t as VERSION } from "./version-B_FpLmDY.js";
|
|
4
4
|
import { t as note } from "./note-PNq_JEQe.js";
|
|
5
5
|
import { c as compareSemverStrings, s as checkUpdateStatus } from "./update-runner-DHNkj8-z.js";
|
|
6
|
-
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-
|
|
6
|
+
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BUKJesZz.js";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import { spawnSync } from "node:child_process";
|
|
9
9
|
|
package/dist/entry.js
CHANGED
|
@@ -247,7 +247,7 @@ if (!ensureExperimentalWarningSuppressed()) {
|
|
|
247
247
|
applyCliProfileEnv({ profile: parsed.profile });
|
|
248
248
|
process$1.argv = parsed.argv;
|
|
249
249
|
}
|
|
250
|
-
import("./run-main-
|
|
250
|
+
import("./run-main-2EdEQ5zJ.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
|
|
251
251
|
console.error("[SKYKOI] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
|
|
252
252
|
process$1.exitCode = 1;
|
|
253
253
|
});
|
package/dist/extension-api.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./pi-embedded-helpers-DFn976W-.js";
|
|
2
|
-
import { Ht as resolveKoiIdentity, Un as resolveKoiTimeoutMs, c as runEmbeddedPiKoi } from "./reply-
|
|
2
|
+
import { Ht as resolveKoiIdentity, Un as resolveKoiTimeoutMs, c as runEmbeddedPiKoi } from "./reply-CUjyGFdH.js";
|
|
3
3
|
import "./subsystem-nnRnHSFk.js";
|
|
4
4
|
import "./paths-VdmjGGyc.js";
|
|
5
5
|
import "./theme-CX-D7gOR.js";
|
|
@@ -43,7 +43,7 @@ import "./tool-images-BIkTcSan.js";
|
|
|
43
43
|
import "./redact-ClVwO7Nn.js";
|
|
44
44
|
import "./tool-display-DvcBjgri.js";
|
|
45
45
|
import "./deliver-uOIbsOCt.js";
|
|
46
|
-
import "./ca-director-
|
|
46
|
+
import "./ca-director-HAceIY1J.js";
|
|
47
47
|
import "./dispatcher-BHYC2Mdu.js";
|
|
48
48
|
import "./dist-UoOHg1p0.js";
|
|
49
49
|
import "./platform-billing-BjToqDnR.js";
|
|
@@ -78,8 +78,8 @@ import "./dotenv-d4aPJ7q2.js";
|
|
|
78
78
|
import "./channel-selection-Di4awirs.js";
|
|
79
79
|
import "./zen-surface-DJHZWAux.js";
|
|
80
80
|
import "./rich-wmQhKBIx.js";
|
|
81
|
-
import "./proactive-eval-
|
|
82
|
-
import "./identify-
|
|
81
|
+
import "./proactive-eval-D4_ypgHF.js";
|
|
82
|
+
import "./identify-D9fBKIKv.js";
|
|
83
83
|
import "./registry-xBtEGPIj.js";
|
|
84
84
|
import "./native-window-CMnOFmyK.js";
|
|
85
85
|
import "./action-ledger-CJ4wxgFj.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { o as __toESM } from "./chunk-D_gEzPfs.js";
|
|
2
2
|
import { B as normalizeThinkLevel, F as formatXHighModelHint, H as normalizeVerboseLevel, P as formatThinkingLevels, R as normalizeElevatedLevel, V as normalizeUsageDisplay, W as supportsXHighThinking, z as normalizeReasoningLevel } from "./pi-embedded-helpers-DFn976W-.js";
|
|
3
|
-
import { $ as recordRemoteNodeInfo, $t as isTtsEnabled, A as scheduleGatewaySigusr1Restart, An as DEFAULT_INPUT_FILE_MAX_CHARS, At as formatZonedTimestamp, B as requestHeartbeatNow, Bn as extractImageContentFromSource, Cn as applyVerboseOverride, D as authorizeGatewaySigusr1Restart, En as isSystemEventContextChanged, F as normalizeOptionalKoiId, Fn as DEFAULT_INPUT_PDF_MAX_PAGES, Ft as initSubkoiRegistry, Gt as resolveUserTimezone, H as getPluginToolMeta, Ht as resolveKoiIdentity, I as normalizeOptionalText, In as DEFAULT_INPUT_PDF_MAX_PIXELS, J as handleSlackHttpRequest, Jt as registerInternalHook, Kt as clearInternalHooks, L as normalizePayloadToSystemText, Ln as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, M as normalizeCronJobCreate, Mn as DEFAULT_INPUT_IMAGE_MAX_BYTES, Mt as stopSubkoisForRequester, N as normalizeCronJobPatch, Nn as DEFAULT_INPUT_IMAGE_MIMES, Nt as findSubkoiRunByChildSessionKey, O as consumeGatewaySigusr1RestartAuthorization, On as loadModelCatalog, Ot as dispatchInboundMessage, P as inferLegacyName, Pn as DEFAULT_INPUT_MAX_REDIRECTS, Pt as findSubkoiRunByRunId, Q as primeRemoteSkillsCache, Qt as getTtsProvider, R as normalizeRequiredName, Rn as DEFAULT_INPUT_TIMEOUT_MS, S as resetDirectoryCache, Sn as applyModelOverrideToSessionEntry, T as runWithModelFallback, Tn as enqueueSystemEvent, Tt as getChannelActivity, U as loadSKYKOIPlugins, Un as resolveKoiTimeoutMs, Ut as formatUserTime, Vn as normalizeMimeList, W as loadProviderUsageSummary, Wt as resolveUserTimeFormat, Xt as OPENAI_TTS_MODELS, Yt as triggerInternalHook, Z as getRemoteSkillEligibility, Zt as OPENAI_TTS_VOICES, _ as resolveAnnounceTargetFromKey, _t as buildHistoryContextFromEntries, a as normalizeSendPolicy, an as resolveTtsProviderOrder, at as buildSafeExternalPrompt, b as resolveOutboundSessionRoute, bn as stripHeartbeatToken, bt as getLastHeartbeatEvent, c as runEmbeddedPiKoi, cn as textToSpeech, ct as isExternalHookSession, dn as setCommandLaneConcurrency, en as isTtsProviderConfigured, et as refreshRemoteBinsForConnectedNodes, f as waitForEmbeddedPiRunEnd, fn as CommandLane, ft as createReplyPrefixOptions, g as createSKYKOITools, gn as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, h as initRuntimeContext, hn as isDiagnosticsEnabled, ht as registerUnhandledRejectionHandler, i as runCliKoi, in as resolveTtsPrefsPath, it as registerSkillsChangeListener, j as setGatewaySigusr1RestartPolicy, jn as DEFAULT_INPUT_FILE_MIMES, jt as isAbortTrigger, k as isGatewaySigusr1RestartExternallyAllowed, kn as DEFAULT_INPUT_FILE_MAX_BYTES, kt as createReplyDispatcher, l as getLastSystemPrompt, mn as stopDiagnosticHeartbeat, n as getCliSessionId, nn as resolveTtsAutoMode, nt as setSkillsRemoteRegistry, o as resolveSendPolicy, on as setTtsEnabled, ot as detectSuspiciousPatterns, pn as startDiagnosticHeartbeat, pt as normalizeGroupActivation, qt as createInternalHookEvent, r as setCliSessionId, rn as resolveTtsConfig, rt as getSkillsSnapshotVersion, s as clearSessionQueues, sn as setTtsProvider, st as getHookType, tn as resolveTtsApiKey, tt as refreshRemoteNodeBins, u as abortEmbeddedPiRun, vt as resolveHeartbeatVisibility, w as readRecentActivity, wn as parseVerboseOverride, xt as onHeartbeatEvent, y as ensureOutboundSessionEntry, z as migrateLegacyCronPayload, zn as extractFileContentFromSource } from "./reply-
|
|
3
|
+
import { $ as recordRemoteNodeInfo, $t as isTtsEnabled, A as scheduleGatewaySigusr1Restart, An as DEFAULT_INPUT_FILE_MAX_CHARS, At as formatZonedTimestamp, B as requestHeartbeatNow, Bn as extractImageContentFromSource, Cn as applyVerboseOverride, D as authorizeGatewaySigusr1Restart, En as isSystemEventContextChanged, F as normalizeOptionalKoiId, Fn as DEFAULT_INPUT_PDF_MAX_PAGES, Ft as initSubkoiRegistry, Gt as resolveUserTimezone, H as getPluginToolMeta, Ht as resolveKoiIdentity, I as normalizeOptionalText, In as DEFAULT_INPUT_PDF_MAX_PIXELS, J as handleSlackHttpRequest, Jt as registerInternalHook, Kt as clearInternalHooks, L as normalizePayloadToSystemText, Ln as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, M as normalizeCronJobCreate, Mn as DEFAULT_INPUT_IMAGE_MAX_BYTES, Mt as stopSubkoisForRequester, N as normalizeCronJobPatch, Nn as DEFAULT_INPUT_IMAGE_MIMES, Nt as findSubkoiRunByChildSessionKey, O as consumeGatewaySigusr1RestartAuthorization, On as loadModelCatalog, Ot as dispatchInboundMessage, P as inferLegacyName, Pn as DEFAULT_INPUT_MAX_REDIRECTS, Pt as findSubkoiRunByRunId, Q as primeRemoteSkillsCache, Qt as getTtsProvider, R as normalizeRequiredName, Rn as DEFAULT_INPUT_TIMEOUT_MS, S as resetDirectoryCache, Sn as applyModelOverrideToSessionEntry, T as runWithModelFallback, Tn as enqueueSystemEvent, Tt as getChannelActivity, U as loadSKYKOIPlugins, Un as resolveKoiTimeoutMs, Ut as formatUserTime, Vn as normalizeMimeList, W as loadProviderUsageSummary, Wt as resolveUserTimeFormat, Xt as OPENAI_TTS_MODELS, Yt as triggerInternalHook, Z as getRemoteSkillEligibility, Zt as OPENAI_TTS_VOICES, _ as resolveAnnounceTargetFromKey, _t as buildHistoryContextFromEntries, a as normalizeSendPolicy, an as resolveTtsProviderOrder, at as buildSafeExternalPrompt, b as resolveOutboundSessionRoute, bn as stripHeartbeatToken, bt as getLastHeartbeatEvent, c as runEmbeddedPiKoi, cn as textToSpeech, ct as isExternalHookSession, dn as setCommandLaneConcurrency, en as isTtsProviderConfigured, et as refreshRemoteBinsForConnectedNodes, f as waitForEmbeddedPiRunEnd, fn as CommandLane, ft as createReplyPrefixOptions, g as createSKYKOITools, gn as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, h as initRuntimeContext, hn as isDiagnosticsEnabled, ht as registerUnhandledRejectionHandler, i as runCliKoi, in as resolveTtsPrefsPath, it as registerSkillsChangeListener, j as setGatewaySigusr1RestartPolicy, jn as DEFAULT_INPUT_FILE_MIMES, jt as isAbortTrigger, k as isGatewaySigusr1RestartExternallyAllowed, kn as DEFAULT_INPUT_FILE_MAX_BYTES, kt as createReplyDispatcher, l as getLastSystemPrompt, mn as stopDiagnosticHeartbeat, n as getCliSessionId, nn as resolveTtsAutoMode, nt as setSkillsRemoteRegistry, o as resolveSendPolicy, on as setTtsEnabled, ot as detectSuspiciousPatterns, pn as startDiagnosticHeartbeat, pt as normalizeGroupActivation, qt as createInternalHookEvent, r as setCliSessionId, rn as resolveTtsConfig, rt as getSkillsSnapshotVersion, s as clearSessionQueues, sn as setTtsProvider, st as getHookType, tn as resolveTtsApiKey, tt as refreshRemoteNodeBins, u as abortEmbeddedPiRun, vt as resolveHeartbeatVisibility, w as readRecentActivity, wn as parseVerboseOverride, xt as onHeartbeatEvent, y as ensureOutboundSessionEntry, z as migrateLegacyCronPayload, zn as extractFileContentFromSource } from "./reply-CUjyGFdH.js";
|
|
4
4
|
import { C as getLogger, D as CHANNEL_IDS, L as getActivePluginRegistry, S as getChildLogger, a as setConsoleTimestampPrefix, i as setConsoleSubsystemFilter, k as DEFAULT_CHAT_CHANNEL, n as runtimeForLogger, s as defaultRuntime, t as createSubsystemLogger, v as setVerbose, w as getResolvedLoggerSettings } from "./subsystem-nnRnHSFk.js";
|
|
5
5
|
import { g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
|
|
6
6
|
import { n as isRich, r as theme, t as colorize } from "./theme-CX-D7gOR.js";
|
|
@@ -49,7 +49,7 @@ import "./tool-images-BIkTcSan.js";
|
|
|
49
49
|
import "./redact-ClVwO7Nn.js";
|
|
50
50
|
import "./tool-display-DvcBjgri.js";
|
|
51
51
|
import { o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-uOIbsOCt.js";
|
|
52
|
-
import { $ as resolveSessionTranscriptCandidates, G as loadCombinedSessionStoreForGateway, J as resolveSessionModelRef, K as loadSessionEntry, Q as readSessionPreviewItemsFromTranscript, U as listKoisForGateway, W as listSessionsFromStore, X as capArrayByJsonBytes, Y as archiveFileOnDisk, Z as readSessionMessages, et as stripEnvelopeFromMessages, gt as lookupContextTokens, nt as readVoiceMode, q as resolveGatewaySessionStoreTarget, rt as writeVoiceMode, tt as VOICE_MODES } from "./ca-director-
|
|
52
|
+
import { $ as resolveSessionTranscriptCandidates, G as loadCombinedSessionStoreForGateway, J as resolveSessionModelRef, K as loadSessionEntry, Q as readSessionPreviewItemsFromTranscript, U as listKoisForGateway, W as listSessionsFromStore, X as capArrayByJsonBytes, Y as archiveFileOnDisk, Z as readSessionMessages, et as stripEnvelopeFromMessages, gt as lookupContextTokens, nt as readVoiceMode, q as resolveGatewaySessionStoreTarget, rt as writeVoiceMode, tt as VOICE_MODES } from "./ca-director-HAceIY1J.js";
|
|
53
53
|
import { n as getMachineDisplayName, t as createBrowserRouteDispatcher } from "./dispatcher-BHYC2Mdu.js";
|
|
54
54
|
import "./dist-UoOHg1p0.js";
|
|
55
55
|
import "./platform-billing-BjToqDnR.js";
|
|
@@ -90,14 +90,14 @@ import { n as readSkykoiEnvVar } from "./dotenv-d4aPJ7q2.js";
|
|
|
90
90
|
import { n as resolveMessageChannelSelection } from "./channel-selection-Di4awirs.js";
|
|
91
91
|
import "./zen-surface-DJHZWAux.js";
|
|
92
92
|
import "./rich-wmQhKBIx.js";
|
|
93
|
-
import { n as isProactiveSleeping, r as setProactiveSleep } from "./proactive-eval-
|
|
94
|
-
import { g as isPrivateMode, h as isAudioMuted, v as setAudioMuted, y as setPrivateMode } from "./identify-
|
|
93
|
+
import { n as isProactiveSleeping, r as setProactiveSleep } from "./proactive-eval-D4_ypgHF.js";
|
|
94
|
+
import { g as isPrivateMode, h as isAudioMuted, v as setAudioMuted, y as setPrivateMode } from "./identify-D9fBKIKv.js";
|
|
95
95
|
import "./registry-xBtEGPIj.js";
|
|
96
96
|
import "./native-window-CMnOFmyK.js";
|
|
97
97
|
import { t as liveBroadcast } from "./live-broadcast-CifQ8Lzc.js";
|
|
98
98
|
import "./action-ledger-CJ4wxgFj.js";
|
|
99
99
|
import { i as readEventsSince, n as clearEventLogForSession, o as subscribeAll, r as hydrateSession, t as appendEvent } from "./event-log-WbPUNukH.js";
|
|
100
|
-
import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-
|
|
100
|
+
import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-DmIQ6v-n.js";
|
|
101
101
|
import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-BOh3Z_vn.js";
|
|
102
102
|
import { t as ensureSKYKOICliOnPath } from "./path-env-CnhsG0TT.js";
|
|
103
103
|
import { t as forceFreePortAndWait } from "./ports-B03Y1yyv.js";
|
|
@@ -105,15 +105,15 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-4BXRutqw.js";
|
|
|
105
105
|
import "./logging-C3sRv-iX.js";
|
|
106
106
|
import "./note-PNq_JEQe.js";
|
|
107
107
|
import { t as WizardCancelledError } from "./prompts-BC5TXS0_.js";
|
|
108
|
-
import { c as loadKoiIdentity, d as loadKoiIdentityFromWorkspace, i as applyKoiConfig, l as pruneKoiConfig, o as findKoiEntryIndex, r as getStatusSummary, s as listKoiEntries, t as runOnboardingWizard } from "./onboarding-
|
|
109
|
-
import { n as installSkill } from "./onboard-skills-
|
|
110
|
-
import "./github-copilot-auth-
|
|
111
|
-
import "./onboard-channels-
|
|
108
|
+
import { c as loadKoiIdentity, d as loadKoiIdentityFromWorkspace, i as applyKoiConfig, l as pruneKoiConfig, o as findKoiEntryIndex, r as getStatusSummary, s as listKoiEntries, t as runOnboardingWizard } from "./onboarding-CThrYTcv.js";
|
|
109
|
+
import { n as installSkill } from "./onboard-skills-CTtcai_R.js";
|
|
110
|
+
import "./github-copilot-auth-BsKdmBYH.js";
|
|
111
|
+
import "./onboard-channels-DXq4vacH.js";
|
|
112
112
|
import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-7Sq0kaQq.js";
|
|
113
|
-
import "./archive-
|
|
113
|
+
import "./archive-DznJKByM.js";
|
|
114
114
|
import "./skill-scanner-CLckczzl.js";
|
|
115
|
-
import "./installs-
|
|
116
|
-
import { c as startHeartbeatRunner, n as formatHealthChannelLines, o as runHeartbeatOnce, r as getHealthSnapshot, s as setHeartbeatsEnabled } from "./health-format-
|
|
115
|
+
import "./installs-DHTKIFkp.js";
|
|
116
|
+
import { c as startHeartbeatRunner, n as formatHealthChannelLines, o as runHeartbeatOnce, r as getHealthSnapshot, s as setHeartbeatsEnabled } from "./health-format-VRtl3jxV.js";
|
|
117
117
|
import { c as compareSemverStrings, d as resolveNpmChannelTag, g as normalizeUpdateChannel, l as fetchNpmLatestVersion, p as DEFAULT_PACKAGE_CHANNEL, s as checkUpdateStatus, t as runGatewayUpdate } from "./update-runner-DHNkj8-z.js";
|
|
118
118
|
import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-X5uq6vRI.js";
|
|
119
119
|
import { i as probeGateway } from "./audit-C9kPnb6f.js";
|
|
@@ -124,22 +124,22 @@ import { p as resolveGatewayStateDir } from "./systemd-DZP4s4qd.js";
|
|
|
124
124
|
import "./diagnostics-6vXdnH8k.js";
|
|
125
125
|
import "./node-service-Bb6tgGQx.js";
|
|
126
126
|
import "./channels-status-issues-CGTJwSbx.js";
|
|
127
|
-
import "./doctor-completion-
|
|
128
|
-
import "./register.subclis-
|
|
129
|
-
import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-
|
|
127
|
+
import "./doctor-completion-BPPZc8kY.js";
|
|
128
|
+
import "./register.subclis-DtwEVdF1.js";
|
|
129
|
+
import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-BUt7Nsyf.js";
|
|
130
130
|
import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-D4o4damy.js";
|
|
131
131
|
import "./daemon-runtime-DIgqhoVa.js";
|
|
132
132
|
import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-BjWuJvtM.js";
|
|
133
133
|
import { n as discoverGatewayBeacons } from "./bonjour-discovery-3LKAHtHL.js";
|
|
134
134
|
import "./ensure-local-gateway-Xk7ir7zS.js";
|
|
135
|
-
import "./completion-cli-
|
|
135
|
+
import "./completion-cli-BUKJesZz.js";
|
|
136
136
|
import "./service-audit-BVZGmzLW.js";
|
|
137
137
|
import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-Cr0qf9U9.js";
|
|
138
|
-
import "./tui-
|
|
138
|
+
import "./tui-Dq0CDDDr.js";
|
|
139
139
|
import "./canvas-state-C3YRnkNr.js";
|
|
140
140
|
import { t as buildChannelAccountSnapshot } from "./status-pq91F0kp.js";
|
|
141
141
|
import "./shared-tNGHWtW-.js";
|
|
142
|
-
import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-
|
|
142
|
+
import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-BjDgqVtS.js";
|
|
143
143
|
import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-CHxb6-Fi.js";
|
|
144
144
|
import { i as setGatewayWsLogStyle, n as logWs, r as summarizeKoiEventForWsLog, t as formatForLog } from "./ws-log-BzGMbHM2.js";
|
|
145
145
|
import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-kVh_mWJI.js";
|
|
@@ -2163,7 +2163,11 @@ function compactToolResultPreview(result) {
|
|
|
2163
2163
|
"durationMs",
|
|
2164
2164
|
"innerCalls",
|
|
2165
2165
|
"texts",
|
|
2166
|
-
"progress"
|
|
2166
|
+
"progress",
|
|
2167
|
+
"toolCalls",
|
|
2168
|
+
"running",
|
|
2169
|
+
"callCount",
|
|
2170
|
+
"progressCount"
|
|
2167
2171
|
]) if (details[key] !== void 0) keep[key] = details[key];
|
|
2168
2172
|
if (typeof details.aggregated === "string") keep.aggregated = details.aggregated.slice(0, 1500);
|
|
2169
2173
|
if (Object.keys(keep).length > 0) preview.details = keep;
|
|
@@ -12163,7 +12167,7 @@ const nodeHandlers = {
|
|
|
12163
12167
|
const p = params;
|
|
12164
12168
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
12165
12169
|
await respondUnavailableOnThrow(respond, async () => {
|
|
12166
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
12170
|
+
const { handleNodeEvent } = await import("./server-node-events-hjEICLTZ.js");
|
|
12167
12171
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
12168
12172
|
await handleNodeEvent({
|
|
12169
12173
|
deps: context.deps,
|
|
@@ -21418,7 +21422,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
|
|
|
21418
21422
|
let captureServiceStop = null;
|
|
21419
21423
|
(async () => {
|
|
21420
21424
|
try {
|
|
21421
|
-
const { startCaptureService } = await import("./capture-service-
|
|
21425
|
+
const { startCaptureService } = await import("./capture-service-CAMxeEVy.js");
|
|
21422
21426
|
captureServiceStop = (await startCaptureService()).stop;
|
|
21423
21427
|
console.log("[capture] Device capture service started");
|
|
21424
21428
|
} catch (err) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { U as loadSKYKOIPlugins } from "./reply-
|
|
1
|
+
import { U as loadSKYKOIPlugins } from "./reply-CUjyGFdH.js";
|
|
2
2
|
import { t as createSubsystemLogger } from "./subsystem-nnRnHSFk.js";
|
|
3
3
|
import { l as normalizeKoiId } from "./session-key-B2OXLVi_.js";
|
|
4
4
|
import { b as sleep } from "./utils-B1LOScGi.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as requestHeartbeatNow, Dn as peekSystemEvents, Gt as resolveUserTimezone, St as resolveIndicatorType, V as setHeartbeatWakeHandler, Vt as resolveEffectiveMessagesConfig, _n as DEFAULT_HEARTBEAT_EVERY, bn as stripHeartbeatToken, d as isEmbeddedPiRunActive, fn as CommandLane, gn as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, ln as enqueueCommandInLane, t as getReplyFromConfig, un as getQueueSize, vn as isHeartbeatContentEffectivelyEmpty, vt as resolveHeartbeatVisibility, yn as resolveHeartbeatPrompt$1, yt as emitHeartbeatEvent } from "./reply-
|
|
1
|
+
import { B as requestHeartbeatNow, Dn as peekSystemEvents, Gt as resolveUserTimezone, St as resolveIndicatorType, V as setHeartbeatWakeHandler, Vt as resolveEffectiveMessagesConfig, _n as DEFAULT_HEARTBEAT_EVERY, bn as stripHeartbeatToken, d as isEmbeddedPiRunActive, fn as CommandLane, gn as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, ln as enqueueCommandInLane, t as getReplyFromConfig, un as getQueueSize, vn as isHeartbeatContentEffectivelyEmpty, vt as resolveHeartbeatVisibility, yn as resolveHeartbeatPrompt$1, yt as emitHeartbeatEvent } from "./reply-CUjyGFdH.js";
|
|
2
2
|
import { p as info, s as defaultRuntime, t as createSubsystemLogger } from "./subsystem-nnRnHSFk.js";
|
|
3
3
|
import { n as isRich, r as theme, t as colorize } from "./theme-CX-D7gOR.js";
|
|
4
4
|
import { d as resolveKoiIdFromSessionKey, h as toKoiStoreSessionKey, l as normalizeKoiId } from "./session-key-B2OXLVi_.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./pi-embedded-helpers-DFn976W-.js";
|
|
2
|
-
import "./reply-
|
|
2
|
+
import "./reply-CUjyGFdH.js";
|
|
3
3
|
import { s as defaultRuntime } from "./subsystem-nnRnHSFk.js";
|
|
4
4
|
import "./paths-VdmjGGyc.js";
|
|
5
5
|
import { r as theme } from "./theme-CX-D7gOR.js";
|
|
@@ -44,7 +44,7 @@ import "./tool-images-BIkTcSan.js";
|
|
|
44
44
|
import "./redact-ClVwO7Nn.js";
|
|
45
45
|
import "./tool-display-DvcBjgri.js";
|
|
46
46
|
import "./deliver-uOIbsOCt.js";
|
|
47
|
-
import "./ca-director-
|
|
47
|
+
import "./ca-director-HAceIY1J.js";
|
|
48
48
|
import "./dispatcher-BHYC2Mdu.js";
|
|
49
49
|
import "./dist-UoOHg1p0.js";
|
|
50
50
|
import "./platform-billing-BjToqDnR.js";
|
|
@@ -79,16 +79,16 @@ import "./dotenv-d4aPJ7q2.js";
|
|
|
79
79
|
import "./channel-selection-Di4awirs.js";
|
|
80
80
|
import "./zen-surface-DJHZWAux.js";
|
|
81
81
|
import "./rich-wmQhKBIx.js";
|
|
82
|
-
import "./proactive-eval-
|
|
83
|
-
import "./identify-
|
|
82
|
+
import "./proactive-eval-D4_ypgHF.js";
|
|
83
|
+
import "./identify-D9fBKIKv.js";
|
|
84
84
|
import "./registry-xBtEGPIj.js";
|
|
85
85
|
import "./native-window-CMnOFmyK.js";
|
|
86
86
|
import "./action-ledger-CJ4wxgFj.js";
|
|
87
87
|
import "./event-log-WbPUNukH.js";
|
|
88
|
-
import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-
|
|
88
|
+
import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-DznJKByM.js";
|
|
89
89
|
import { t as renderTable } from "./table-DIfWcies.js";
|
|
90
90
|
import { a as parseFrontmatter, n as loadWorkspaceHookEntries, t as buildWorkspaceHookStatus } from "./hooks-status-Cr0qf9U9.js";
|
|
91
|
-
import { t as buildPluginStatusReport } from "./status-
|
|
91
|
+
import { t as buildPluginStatusReport } from "./status-DuCW9vUJ.js";
|
|
92
92
|
import fs from "node:fs";
|
|
93
93
|
import path from "node:path";
|
|
94
94
|
import os from "node:os";
|
|
@@ -395,8 +395,9 @@ function isWakeAddress(text) {
|
|
|
395
395
|
return RE_STANDALONE.test(t) || RE_GREETING.test(t) || RE_COMMA_VOCATIVE.test(t) || RE_INITIAL.test(t) || RE_TRAILING.test(t);
|
|
396
396
|
}
|
|
397
397
|
const KOI_MENTION = /\b(?:koi|koi's|kois|koy|coy|coi|khoi|quoi)\b/i;
|
|
398
|
+
const KOI_VOCATIVE_HOMOPHONE = /(?:^|[.!?]\s+|\bhey\s+|\bokay\s+|\bok\s+)(?:coin|kwa)\b[\s,!?]/i;
|
|
398
399
|
function containsKoiMention(text) {
|
|
399
|
-
return KOI_MENTION.test(text);
|
|
400
|
+
return KOI_MENTION.test(text) || KOI_VOCATIVE_HOMOPHONE.test(text);
|
|
400
401
|
}
|
|
401
402
|
function isConfidentOther(id) {
|
|
402
403
|
return !!id && !id.wearer && id.score >= WEARER_MATCH_CONFIDENCE;
|
|
@@ -430,6 +431,11 @@ function classifyMicAddressing(batch, ctx) {
|
|
|
430
431
|
mode: "wake",
|
|
431
432
|
reason: "koi mention"
|
|
432
433
|
};
|
|
434
|
+
if (multiSpeaker) return {
|
|
435
|
+
eligible: true,
|
|
436
|
+
mode: "wake",
|
|
437
|
+
reason: "koi mention (mixed room — identity unclear)"
|
|
438
|
+
};
|
|
433
439
|
return {
|
|
434
440
|
eligible: false,
|
|
435
441
|
mode: "blocked",
|