kaijibot 2026.6.5 → 2026.6.8

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 (34) hide show
  1. package/dist/.buildstamp +1 -1
  2. package/dist/build-info.json +3 -3
  3. package/dist/cli-startup-metadata.json +1 -1
  4. package/dist/{command-registry-BOhpJsAT.js → command-registry-BdM3Rq6g.js} +4 -4
  5. package/dist/{command-registry-BCMr6X7p.js → command-registry-zJF0Y3hj.js} +1 -1
  6. package/dist/{completion-cli-D9ilVde9.js → completion-cli-0Qr6J0D8.js} +2 -2
  7. package/dist/{completion-cli-DrcmW9vt.js → completion-cli-C4R4kZu3.js} +1 -1
  8. package/dist/{doctor-completion-Ci8o0KgL.js → doctor-completion-DKLtI3SL.js} +1 -1
  9. package/dist/entry.js +1 -1
  10. package/dist/extensions/diffs/.kaijibot-runtime-deps-stamp.json +1 -1
  11. package/dist/extensions/feishu/.kaijibot-runtime-deps-stamp.json +1 -1
  12. package/dist/extensions/memory-core/index.js +6 -6
  13. package/dist/extensions/webhooks/.kaijibot-runtime-deps-stamp.json +1 -1
  14. package/dist/{gateway-cli-CSxWvdKF.js → gateway-cli-Juo0V8Te.js} +1 -1
  15. package/dist/index.js +1 -1
  16. package/dist/{onboard-CN_UM8Qo.js → onboard-DtiKmIt5.js} +1 -1
  17. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  18. package/dist/plugin-sdk/src/config/types.cognitive.d.ts +0 -2
  19. package/dist/postinstall-inventory.json +21 -21
  20. package/dist/{proactive-scheduler-B1QtrN-B.js → proactive-scheduler-BBxPxvC5.js} +7 -5
  21. package/dist/{program-tlnHJg4i.js → program-DLuph1ad.js} +1 -1
  22. package/dist/{prompt-select-styled-gVUmQALT.js → prompt-select-styled-20vPzQCy.js} +1 -1
  23. package/dist/{register.maintenance-DSc3kMPJ.js → register.maintenance-Bzobd_jo.js} +1 -1
  24. package/dist/{register.onboard-dhsxXfDA.js → register.onboard-r3YGz8vF.js} +1 -1
  25. package/dist/{register.setup-C68fXBjc.js → register.setup-CirYfZfH.js} +1 -1
  26. package/dist/{register.subclis-fIcQACah.js → register.subclis-CRD-OGpA.js} +1 -1
  27. package/dist/{register.subclis-B1KBce7b.js → register.subclis-DBW8jt1O.js} +3 -3
  28. package/dist/{run-main-D4BJGgps.js → run-main-CQsAMoet.js} +3 -3
  29. package/dist/{server-DcXHhcU8.js → server-CKLe3G_U.js} +1 -1
  30. package/dist/{server.impl-nb7jzo8Z.js → server.impl-BOG9TNeQ.js} +3 -4
  31. package/dist/{setup-DNWKAkZG.js → setup-tn-YqKJi.js} +1 -1
  32. package/dist/{setup.finalize-CxRyTna3.js → setup.finalize-D_BojxsB.js} +2 -2
  33. package/dist/{update-cli-D5UDBXoa.js → update-cli-CzZ-Cof6.js} +3 -3
  34. package/package.json +1 -1
package/dist/.buildstamp CHANGED
@@ -1 +1 @@
1
- {"builtAt":1780797480577,"head":"0f8d2cc8e2e5f4ca16a0c9d91ebaf693584fe61a"}
1
+ {"builtAt":1780883164755,"head":"c442e2fbbaedff366c2b40cf9bd2d95f0a1a7bbe"}
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.6.5",
3
- "commit": "0f8d2cc8e2e5f4ca16a0c9d91ebaf693584fe61a",
4
- "builtAt": "2026-06-07T01:58:35.730Z"
2
+ "version": "2026.6.8",
3
+ "commit": "c442e2fbbaedff366c2b40cf9bd2d95f0a1a7bbe",
4
+ "builtAt": "2026-06-08T01:47:07.344Z"
5
5
  }
@@ -13,5 +13,5 @@
13
13
  ],
14
14
  "channelCatalogSignature": "75a48a33c0d34ae70604847b2e91e6eaae016a4e",
15
15
  "rootHelpBundleSignature": "f24891c4c6b254d9a4469baf2458fd9c8dfdbb56",
16
- "rootHelpText": "\n👾 KaijiBot 2026.6.5 (0f8d2cc) — 碎片化的信息不等于碎片化的认知——关键在于连接。\n\nUsage: kaijibot [options] [command]\n\nOptions:\n --container <name> Run the CLI inside a running Podman/Docker container\n named <name> (default: env KAIJIBOT_CONTAINER)\n --dev Dev profile: isolate state under ~/.kaijibot-dev, default\n gateway port 19001, and shift derived ports\n (browser/canvas)\n -h, --help Display help for command\n --log-level <level> Global log level override for file + console\n (silent|fatal|error|warn|info|debug|trace)\n --no-color Disable ANSI colors\n --profile <name> Use a named profile (isolates\n KAIJIBOT_STATE_DIR/KAIJIBOT_CONFIG_PATH under\n ~/.kaijibot-<name>)\n -V, --version output the version number\n\nCommands:\n Hint: commands suffixed with * have subcommands. Run <command> --help for details.\n acp * Agent Control Protocol tools\n agent Run one agent turn via the Gateway\n agents * Manage isolated agents (workspaces, auth, routing)\n approvals * Manage exec approvals (gateway or node host)\n backup * Create and verify local backup archives for KaijiBot\n state\n capability * Run provider-backed inference commands (fallback alias:\n infer)\n channels * Manage connected chat channels (Telegram, Discord, etc.)\n clawbot * Legacy clawbot command aliases\n completion Generate shell completion script\n config * Non-interactive config helpers\n (get/set/unset/file/validate). Default: starts guided\n setup.\n configure Interactive configuration for credentials, channels,\n gateway, and agent defaults\n cron * Manage cron jobs via the Gateway scheduler\n daemon * Gateway service (legacy alias)\n dashboard Open the Control UI with your current token\n devices * Device pairing + token management\n directory * Lookup contact and group IDs (self, peers, groups) for\n supported chat channels\n dns * DNS helpers for wide-area discovery (Tailscale + CoreDNS)\n docs Search the live KaijiBot docs\n doctor Health checks + quick fixes for the gateway and channels\n gateway * Run, inspect, and query the WebSocket Gateway\n health Fetch health from the running gateway\n help Display help for command\n hooks * Manage internal agent hooks\n infer * Run provider-backed inference commands\n logs Tail gateway file logs via RPC\n mcp * Manage KaijiBot MCP config and channel bridge\n memory Search, inspect, and reindex memory files\n message * Send, read, and manage messages\n migrate Migrate data from OpenClaw or legacy installations to\n KaijiBot\n models * Discover, scan, and configure models\n node * Run and manage the headless node host service\n nodes * Manage gateway-owned node pairing and node commands\n onboard Interactive onboarding for gateway, workspace, and skills\n pairing * Secure DM pairing (approve inbound requests)\n plugins * Manage KaijiBot plugins and extensions\n qa * Run QA scenarios and launch the private QA debugger UI\n qr Generate mobile pairing QR/setup code\n reset Reset local config/state (keeps the CLI installed)\n sandbox * Manage sandbox containers for agent isolation\n secrets * Secrets runtime reload controls\n security * Security tools and local config audits\n sessions * List stored conversation sessions\n setup Initialize local config and agent workspace\n skills * List and inspect available skills\n soul * Manage soul presets (MBTI-based personality profiles)\n status Show channel health and recent session recipients\n system * System events, heartbeat, and presence\n tasks * Inspect durable background task state\n tui Open a terminal UI connected to the Gateway\n uninstall Uninstall the gateway service + local data (CLI remains)\n update * Update KaijiBot and inspect update channel status\n webhooks * Webhook helpers and integrations\n\nExamples:\n kaijibot models --help\n Show detailed help for the models command.\n kaijibot channels login --verbose\n Link personal WhatsApp Web and show QR + connection logs.\n kaijibot message send --target +15555550123 --message \"Hi\" --json\n Send via your web session and print JSON result.\n kaijibot gateway --port 18789\n Run the WebSocket Gateway locally.\n kaijibot --dev gateway\n Run a dev Gateway (isolated state/config) on ws://127.0.0.1:19001.\n kaijibot gateway --force\n Kill anything bound to the default gateway port, then start it.\n kaijibot gateway ...\n Gateway control via WebSocket.\n kaijibot agent --to +15555550123 --message \"Run summary\" --deliver\n Talk directly to the agent using the Gateway; optionally send the WhatsApp reply.\n kaijibot message send --channel feishu --target ou_xxx --message \"Hi\"\n Send via your Telegram bot.\n\nDocs: https://docs.kaijibot.ai/cli\n\n"
16
+ "rootHelpText": "\n👾 KaijiBot 2026.6.8 (c442e2f) — 每一次对话都是一次认知升级。\n\nUsage: kaijibot [options] [command]\n\nOptions:\n --container <name> Run the CLI inside a running Podman/Docker container\n named <name> (default: env KAIJIBOT_CONTAINER)\n --dev Dev profile: isolate state under ~/.kaijibot-dev, default\n gateway port 19001, and shift derived ports\n (browser/canvas)\n -h, --help Display help for command\n --log-level <level> Global log level override for file + console\n (silent|fatal|error|warn|info|debug|trace)\n --no-color Disable ANSI colors\n --profile <name> Use a named profile (isolates\n KAIJIBOT_STATE_DIR/KAIJIBOT_CONFIG_PATH under\n ~/.kaijibot-<name>)\n -V, --version output the version number\n\nCommands:\n Hint: commands suffixed with * have subcommands. Run <command> --help for details.\n acp * Agent Control Protocol tools\n agent Run one agent turn via the Gateway\n agents * Manage isolated agents (workspaces, auth, routing)\n approvals * Manage exec approvals (gateway or node host)\n backup * Create and verify local backup archives for KaijiBot\n state\n capability * Run provider-backed inference commands (fallback alias:\n infer)\n channels * Manage connected chat channels (Telegram, Discord, etc.)\n clawbot * Legacy clawbot command aliases\n completion Generate shell completion script\n config * Non-interactive config helpers\n (get/set/unset/file/validate). Default: starts guided\n setup.\n configure Interactive configuration for credentials, channels,\n gateway, and agent defaults\n cron * Manage cron jobs via the Gateway scheduler\n daemon * Gateway service (legacy alias)\n dashboard Open the Control UI with your current token\n devices * Device pairing + token management\n directory * Lookup contact and group IDs (self, peers, groups) for\n supported chat channels\n dns * DNS helpers for wide-area discovery (Tailscale + CoreDNS)\n docs Search the live KaijiBot docs\n doctor Health checks + quick fixes for the gateway and channels\n gateway * Run, inspect, and query the WebSocket Gateway\n health Fetch health from the running gateway\n help Display help for command\n hooks * Manage internal agent hooks\n infer * Run provider-backed inference commands\n logs Tail gateway file logs via RPC\n mcp * Manage KaijiBot MCP config and channel bridge\n memory Search, inspect, and reindex memory files\n message * Send, read, and manage messages\n migrate Migrate data from OpenClaw or legacy installations to\n KaijiBot\n models * Discover, scan, and configure models\n node * Run and manage the headless node host service\n nodes * Manage gateway-owned node pairing and node commands\n onboard Interactive onboarding for gateway, workspace, and skills\n pairing * Secure DM pairing (approve inbound requests)\n plugins * Manage KaijiBot plugins and extensions\n qa * Run QA scenarios and launch the private QA debugger UI\n qr Generate mobile pairing QR/setup code\n reset Reset local config/state (keeps the CLI installed)\n sandbox * Manage sandbox containers for agent isolation\n secrets * Secrets runtime reload controls\n security * Security tools and local config audits\n sessions * List stored conversation sessions\n setup Initialize local config and agent workspace\n skills * List and inspect available skills\n soul * Manage soul presets (MBTI-based personality profiles)\n status Show channel health and recent session recipients\n system * System events, heartbeat, and presence\n tasks * Inspect durable background task state\n tui Open a terminal UI connected to the Gateway\n uninstall Uninstall the gateway service + local data (CLI remains)\n update * Update KaijiBot and inspect update channel status\n webhooks * Webhook helpers and integrations\n\nExamples:\n kaijibot models --help\n Show detailed help for the models command.\n kaijibot channels login --verbose\n Link personal WhatsApp Web and show QR + connection logs.\n kaijibot message send --target +15555550123 --message \"Hi\" --json\n Send via your web session and print JSON result.\n kaijibot gateway --port 18789\n Run the WebSocket Gateway locally.\n kaijibot --dev gateway\n Run a dev Gateway (isolated state/config) on ws://127.0.0.1:19001.\n kaijibot gateway --force\n Kill anything bound to the default gateway port, then start it.\n kaijibot gateway ...\n Gateway control via WebSocket.\n kaijibot agent --to +15555550123 --message \"Run summary\" --deliver\n Talk directly to the agent using the Gateway; optionally send the WhatsApp reply.\n kaijibot message send --channel feishu --target ou_xxx --message \"Hi\"\n Send via your Telegram bot.\n\nDocs: https://docs.kaijibot.ai/cli\n\n"
17
17
  }
@@ -1,6 +1,6 @@
1
1
  import { t as resolveCliArgvInvocation } from "./argv-invocation-Cj-UQt0U.js";
2
2
  import { n as shouldRegisterPrimaryCommandOnly } from "./command-registration-policy-DRCmCkrW.js";
3
- import { a as defineImportedCommandGroupSpec, i as buildCommandGroupEntries, o as defineImportedProgramCommandGroupSpecs, r as registerSubCliCommands } from "./register.subclis-B1KBce7b.js";
3
+ import { a as defineImportedCommandGroupSpec, i as buildCommandGroupEntries, o as defineImportedProgramCommandGroupSpecs, r as registerSubCliCommands } from "./register.subclis-DBW8jt1O.js";
4
4
  import { i as registerCommandGroups, r as registerCommandGroupByName } from "./register-command-groups-DPOb8ATm.js";
5
5
  import { n as getCoreCliCommandNames$1, t as getCoreCliCommandDescriptors } from "./core-command-descriptors-jjkn94uV.js";
6
6
  //#region src/cli/program/command-registry.ts
@@ -16,12 +16,12 @@ const coreEntrySpecs = [
16
16
  ...withProgramOnlySpecs(defineImportedProgramCommandGroupSpecs([
17
17
  {
18
18
  commandNames: ["setup"],
19
- loadModule: () => import("./register.setup-C68fXBjc.js"),
19
+ loadModule: () => import("./register.setup-CirYfZfH.js"),
20
20
  exportName: "registerSetupCommand"
21
21
  },
22
22
  {
23
23
  commandNames: ["onboard"],
24
- loadModule: () => import("./register.onboard-dhsxXfDA.js"),
24
+ loadModule: () => import("./register.onboard-r3YGz8vF.js"),
25
25
  exportName: "registerOnboardCommand"
26
26
  },
27
27
  {
@@ -46,7 +46,7 @@ const coreEntrySpecs = [
46
46
  "reset",
47
47
  "uninstall"
48
48
  ],
49
- loadModule: () => import("./register.maintenance-DSc3kMPJ.js"),
49
+ loadModule: () => import("./register.maintenance-Bzobd_jo.js"),
50
50
  exportName: "registerMaintenanceCommands"
51
51
  },
52
52
  {
@@ -1,3 +1,3 @@
1
1
  import "./core-command-descriptors-jjkn94uV.js";
2
- import { n as registerCoreCliByName } from "./command-registry-BOhpJsAT.js";
2
+ import { n as registerCoreCliByName } from "./command-registry-BdM3Rq6g.js";
3
3
  export { registerCoreCliByName };
@@ -4,8 +4,8 @@ import { c as routeLogsToStderr } from "./subsystem-qDUB67UD.js";
4
4
  import { t as formatDocsLink } from "./links-D3Ka0iWu.js";
5
5
  import { r as theme } from "./theme-AvNURkOg.js";
6
6
  import { _ as resolveStateDir } from "./paths-CAiS8AEq.js";
7
- import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-B1KBce7b.js";
8
- import { n as registerCoreCliByName, t as getCoreCliCommandNames } from "./command-registry-BOhpJsAT.js";
7
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-DBW8jt1O.js";
8
+ import { n as registerCoreCliByName, t as getCoreCliCommandNames } from "./command-registry-BdM3Rq6g.js";
9
9
  import { t as getProgramContext } from "./program-context-DgBnNdPS.js";
10
10
  import path from "node:path";
11
11
  import os from "node:os";
@@ -1,2 +1,2 @@
1
- import { a as registerCompletionCli, c as usesSlowDynamicCompletion, i as isCompletionInstalled, n as getCompletionScript, o as resolveCompletionCachePath, r as installCompletion, s as resolveShellFromEnv, t as completionCacheExists } from "./completion-cli-D9ilVde9.js";
1
+ import { a as registerCompletionCli, c as usesSlowDynamicCompletion, i as isCompletionInstalled, n as getCompletionScript, o as resolveCompletionCachePath, r as installCompletion, s as resolveShellFromEnv, t as completionCacheExists } from "./completion-cli-0Qr6J0D8.js";
2
2
  export { completionCacheExists, getCompletionScript, installCompletion, isCompletionInstalled, registerCompletionCli, resolveCompletionCachePath, resolveShellFromEnv, usesSlowDynamicCompletion };
@@ -1,7 +1,7 @@
1
1
  import { t as resolveKaijiBotPackageRoot } from "./kaijibot-root-DrKPBBQD.js";
2
2
  import { n as resolveCliName } from "./cli-name-CShScbrY.js";
3
3
  import { t as note } from "./note-8EZ1LpZU.js";
4
- import { c as usesSlowDynamicCompletion, i as isCompletionInstalled, o as resolveCompletionCachePath, r as installCompletion, s as resolveShellFromEnv, t as completionCacheExists } from "./completion-cli-D9ilVde9.js";
4
+ import { c as usesSlowDynamicCompletion, i as isCompletionInstalled, o as resolveCompletionCachePath, r as installCompletion, s as resolveShellFromEnv, t as completionCacheExists } from "./completion-cli-0Qr6J0D8.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
  //#region src/commands/doctor-completion.ts
package/dist/entry.js CHANGED
@@ -203,7 +203,7 @@ function tryHandleRootHelpFastPath(argv, deps = {}) {
203
203
  }
204
204
  function runMainOrRootHelp(argv) {
205
205
  if (tryHandleRootHelpFastPath(argv)) return;
206
- import("./run-main-D4BJGgps.js").then(({ runCli }) => runCli(argv)).catch((error) => {
206
+ import("./run-main-CQsAMoet.js").then(({ runCli }) => runCli(argv)).catch((error) => {
207
207
  console.error("[kaijibot] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
208
208
  process$1.exitCode = 1;
209
209
  });
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "fingerprint": "ac5d474f5709dab8a79101993380cf876267f52d2d21c4a1042d0a843c6f97d3",
3
- "generatedAt": "2026-06-07T01:57:57.837Z"
3
+ "generatedAt": "2026-06-08T01:46:00.964Z"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "fingerprint": "4d4071f039e66b023e00900a0660644bd83944329145f96c289786c27b5b11a0",
3
- "generatedAt": "2026-06-07T01:58:00.349Z"
3
+ "generatedAt": "2026-06-08T01:46:04.374Z"
4
4
  }
@@ -1875,7 +1875,7 @@ For each item, provide:
1875
1875
  - content: A concise summary of the knowledge (1-2 sentences)
1876
1876
  - confidence: Your confidence level from 0.0 to 1.0
1877
1877
  - evidence: A brief quote from the transcript that supports this extraction
1878
- - domain: A short noun phrase identifying the knowledge domain (e.g. "TypeScript", "分布式系统设计", "Kubernetes", "AI Agent架构"). Use 2-6 words. Be specific, not generic (NOT "technology" or "programming").
1878
+ - domains: An array of short noun phrases identifying the knowledge domains (e.g. ["TypeScript"], ["分布式系统设计", "Kubernetes"]). Use 2-6 words per domain. Be specific, not generic (NOT "technology" or "programming"). Include 1-3 domains per item.
1879
1879
 
1880
1880
  Rules:
1881
1881
  - Extract domain_knowledge for facts, concepts, and technical details the user discussed
@@ -1883,7 +1883,7 @@ Rules:
1883
1883
  - Extract stated_preference for explicit likes, dislikes, or preferences stated by the user
1884
1884
  - Extract goal_or_aspiration for things the user wants to achieve or work toward
1885
1885
  - Do NOT extract tool_config or contextual_fact categories
1886
- - The domain field should identify the subject area, not the category
1886
+ - The domains field should identify the subject area, not the category
1887
1887
  - Each item must have a direct quote as evidence
1888
1888
  - Be conservative: only extract items with confidence >= 0.5
1889
1889
  - Return a JSON array of items, or an empty array if nothing worth extracting
@@ -1928,7 +1928,7 @@ function parseExtractedItems(raw) {
1928
1928
  const content = typeof record.content === "string" ? record.content.trim().slice(0, 500) : "";
1929
1929
  const confidence = Number(record.confidence);
1930
1930
  const evidence = typeof record.evidence === "string" ? record.evidence.trim().slice(0, 300) : "";
1931
- const domain = typeof record.domain === "string" ? record.domain.trim().slice(0, 60) : void 0;
1931
+ const rawDomains = Array.isArray(record.domains) ? record.domains.filter((d) => typeof d === "string").map((d) => d.trim().slice(0, 60)).filter((d) => d.length > 0) : typeof record.domain === "string" && record.domain.trim().length > 0 ? [record.domain.trim().slice(0, 60)] : [];
1932
1932
  if (!validCategories.has(category) || content.length === 0 || !Number.isFinite(confidence) || confidence < .5 || confidence > 1 || evidence.length === 0) continue;
1933
1933
  items.push({
1934
1934
  category,
@@ -1936,7 +1936,7 @@ function parseExtractedItems(raw) {
1936
1936
  confidence,
1937
1937
  source: "transcript",
1938
1938
  evidence,
1939
- domain: domain && domain.length > 0 ? domain : void 0
1939
+ domains: rawDomains.length > 0 ? rawDomains : void 0
1940
1940
  });
1941
1941
  }
1942
1942
  return items;
@@ -2068,7 +2068,7 @@ async function routeToStores(params) {
2068
2068
  await deps.collectFragment(agentId, userId, {
2069
2069
  text: item.content,
2070
2070
  strength: item.confidence,
2071
- domains: item.domain ? [item.domain] : []
2071
+ domains: item.domains ?? []
2072
2072
  });
2073
2073
  routed += 1;
2074
2074
  } catch (err) {
@@ -2076,7 +2076,7 @@ async function routeToStores(params) {
2076
2076
  }
2077
2077
  if (item.confidence >= .9 && looksLikeCorrection(item.evidence)) try {
2078
2078
  await deps.addOrReinforceCorrection(agentId, userId, {
2079
- domain: item.domain || item.category,
2079
+ domain: item.domains?.[0] || item.category,
2080
2080
  trigger: item.evidence,
2081
2081
  mistake: item.evidence,
2082
2082
  correction: item.content,
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "fingerprint": "e14e27d86a5c2cd6c7799ab20222469b1730dec59a22bdb6fdc2634a5d690d4f",
3
- "generatedAt": "2026-06-07T01:58:00.394Z"
3
+ "generatedAt": "2026-06-08T01:46:04.446Z"
4
4
  }
@@ -1173,7 +1173,7 @@ async function runGatewayCommand$1(opts) {
1173
1173
  const { startGatewayServer } = await withProgress({
1174
1174
  label: "Loading gateway modules…",
1175
1175
  indeterminate: true
1176
- }, async () => import("./server-DcXHhcU8.js"));
1176
+ }, async () => import("./server-CKLe3G_U.js"));
1177
1177
  setConsoleTimestampPrefix(true);
1178
1178
  if (devMode) await ensureDevGatewayConfig({ reset: Boolean(opts.reset) });
1179
1179
  gatewayLog.info("loading configuration…");
package/dist/index.js CHANGED
@@ -26,7 +26,7 @@ let runExec;
26
26
  let saveSessionStore;
27
27
  let waitForever;
28
28
  async function loadLegacyCliDeps() {
29
- const [{ installGaxiosFetchCompat }, { runCli }] = await Promise.all([import("./gaxios-fetch-compat-DEp3D_dq.js"), import("./run-main-D4BJGgps.js")]);
29
+ const [{ installGaxiosFetchCompat }, { runCli }] = await Promise.all([import("./gaxios-fetch-compat-DEp3D_dq.js"), import("./run-main-CQsAMoet.js")]);
30
30
  return {
31
31
  installGaxiosFetchCompat,
32
32
  runCli
@@ -16,7 +16,7 @@ import { t as WizardCancelledError } from "./prompts-DWE4cpuB.js";
16
16
  import { n as logConfigUpdated } from "./logging-BqQWUn6o.js";
17
17
  import { t as createClackPrompter } from "./clack-prompter-B3C1tr0e.js";
18
18
  import { c as resolveManifestProviderOnboardAuthFlags, i as resolveDeprecatedAuthChoiceReplacement, n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice, t as formatDeprecatedNonInteractiveAuthChoiceError } from "./auth-choice-legacy-BZd7ozgZ.js";
19
- import { t as runSetupWizard } from "./setup-DNWKAkZG.js";
19
+ import { t as runSetupWizard } from "./setup-tn-YqKJi.js";
20
20
  import { r as applyLocalSetupWorkspaceConfig } from "./onboard-config-BznFZo5C.js";
21
21
  //#region src/commands/onboard-core-auth-flags.ts
22
22
  const CORE_ONBOARD_AUTH_FLAGS = [];
@@ -1 +1 @@
1
- 2026-06-07T01:58:34.669Z
1
+ 2026-06-08T01:47:05.541Z
@@ -44,8 +44,6 @@ export type CognitiveConfig = {
44
44
  engine?: "v1" | "v2" | "dual" | "knowledge" | "pattern" | "unified";
45
45
  /** Model used for interest inference and insight generation (default: uses main model). */
46
46
  inferenceModel?: string;
47
- /** Ratio of pattern-mode (behavioral) vs knowledge-mode insights (0-1, default 0.5). */
48
- patternModeRatio?: number;
49
47
  /** Output language for generated insights (default: "zh"). Auto-detected from persona if omitted. */
50
48
  outputLanguage?: string;
51
49
  /** Use LLM-as-Judge to verify pattern-mode insights (default: true). */
@@ -323,8 +323,8 @@
323
323
  "dist/command-queue-BCrIoQtH.js",
324
324
  "dist/command-registration-De4Jcw_9.js",
325
325
  "dist/command-registration-policy-DRCmCkrW.js",
326
- "dist/command-registry-BCMr6X7p.js",
327
- "dist/command-registry-BOhpJsAT.js",
326
+ "dist/command-registry-BdM3Rq6g.js",
327
+ "dist/command-registry-zJF0Y3hj.js",
328
328
  "dist/command-secret-gateway-COTB41bx.js",
329
329
  "dist/command-secret-targets-BP84GBT4.js",
330
330
  "dist/command-secret-targets-CWM16zfF.js",
@@ -359,8 +359,8 @@
359
359
  "dist/compact-T0F8dzgV.js",
360
360
  "dist/compact.runtime-BOS2id0g.js",
361
361
  "dist/compact.runtime.js",
362
- "dist/completion-cli-D9ilVde9.js",
363
- "dist/completion-cli-DrcmW9vt.js",
362
+ "dist/completion-cli-0Qr6J0D8.js",
363
+ "dist/completion-cli-C4R4kZu3.js",
364
364
  "dist/config-50wNWVu5.js",
365
365
  "dist/config-BvY8_hi8.js",
366
366
  "dist/config-C3ErCXkv.js",
@@ -532,7 +532,7 @@
532
532
  "dist/docs-cli-3lya2BbJ.js",
533
533
  "dist/docs-path-CRtu9iG5.js",
534
534
  "dist/docs-path-eno9q3KR.js",
535
- "dist/doctor-completion-Ci8o0KgL.js",
535
+ "dist/doctor-completion-DKLtI3SL.js",
536
536
  "dist/doctor-config-preflight-BrAmDI_o.js",
537
537
  "dist/doctor-config-preflight-nIasJsJk.js",
538
538
  "dist/doctor-state-migrations-C3l_4shw.js",
@@ -1203,7 +1203,7 @@
1203
1203
  "dist/frontmatter-c2sJ83pv.js",
1204
1204
  "dist/frontmatter-ChONsq0c.js",
1205
1205
  "dist/fs-safe-DkyLVvCv.js",
1206
- "dist/gateway-cli-CSxWvdKF.js",
1206
+ "dist/gateway-cli-Juo0V8Te.js",
1207
1207
  "dist/gateway-discovery-targets-Ck5WjVLp.js",
1208
1208
  "dist/gateway-install-token-OcqAqrc8.js",
1209
1209
  "dist/gateway-lock-BG-f2x47.js",
@@ -1562,7 +1562,6 @@
1562
1562
  "dist/onboard-CkNE1b0E.js",
1563
1563
  "dist/onboard-CmGyAsn2.js",
1564
1564
  "dist/onboard-CMwwMc25.js",
1565
- "dist/onboard-CN_UM8Qo.js",
1566
1565
  "dist/onboard-Cn4feIJF.js",
1567
1566
  "dist/onboard-config-BznFZo5C.js",
1568
1567
  "dist/onboard-config-TSJ31huy.js",
@@ -1574,6 +1573,7 @@
1574
1573
  "dist/onboard-CVTqV25q.js",
1575
1574
  "dist/onboard-D-uCzuxM.js",
1576
1575
  "dist/onboard-DmctstDd.js",
1576
+ "dist/onboard-DtiKmIt5.js",
1577
1577
  "dist/onboard-DTovn5EA.js",
1578
1578
  "dist/onboard-DxgmbdHf.js",
1579
1579
  "dist/onboard-DzRLYp_Z.js",
@@ -5000,7 +5000,7 @@
5000
5000
  "dist/ports-probe-BKNoqeo8.js",
5001
5001
  "dist/preemptive-compaction-BJrZJq_z.js",
5002
5002
  "dist/preference-learner-l1FWrnf7.js",
5003
- "dist/proactive-scheduler-B1QtrN-B.js",
5003
+ "dist/proactive-scheduler-BBxPxvC5.js",
5004
5004
  "dist/probe-auth-DTC3MbWW.js",
5005
5005
  "dist/probe-auth-g2gwj5w8.js",
5006
5006
  "dist/probe-BIa3G2nL.js",
@@ -5013,14 +5013,14 @@
5013
5013
  "dist/profiles-BKXu5kDm.js",
5014
5014
  "dist/program-context-CRp1Bywj.js",
5015
5015
  "dist/program-context-DgBnNdPS.js",
5016
- "dist/program-tlnHJg4i.js",
5016
+ "dist/program-DLuph1ad.js",
5017
5017
  "dist/progress-line-B1u2uXFd.js",
5018
5018
  "dist/progress-uuTbiz6Y.js",
5019
5019
  "dist/prompt-B1i1UwkB.js",
5020
5020
  "dist/prompt-BuHkI8fN.js",
5021
5021
  "dist/prompt-cache-stability-BNqO3J-H.js",
5022
5022
  "dist/prompt-overlay-CxTwC4gj.js",
5023
- "dist/prompt-select-styled-gVUmQALT.js",
5023
+ "dist/prompt-select-styled-20vPzQCy.js",
5024
5024
  "dist/prompt-style-Dz30WFdP.js",
5025
5025
  "dist/prompts-DWE4cpuB.js",
5026
5026
  "dist/prototype-keys-DUbmvR-m.js",
@@ -5163,17 +5163,17 @@
5163
5163
  "dist/register.agent-2020qkOh.js",
5164
5164
  "dist/register.backup-mlw1RLht.js",
5165
5165
  "dist/register.configure-DKmkLDgU.js",
5166
- "dist/register.maintenance-DSc3kMPJ.js",
5166
+ "dist/register.maintenance-Bzobd_jo.js",
5167
5167
  "dist/register.message-it89Unqj.js",
5168
5168
  "dist/register.migrate-CmPHFHpH.js",
5169
- "dist/register.onboard-dhsxXfDA.js",
5169
+ "dist/register.onboard-r3YGz8vF.js",
5170
5170
  "dist/register.runtime-B6deg5Ww.js",
5171
5171
  "dist/register.runtime-VYmD_T-Q.js",
5172
5172
  "dist/register.runtime.js",
5173
- "dist/register.setup-C68fXBjc.js",
5173
+ "dist/register.setup-CirYfZfH.js",
5174
5174
  "dist/register.status-health-sessions-BDU1GHgo.js",
5175
- "dist/register.subclis-B1KBce7b.js",
5176
- "dist/register.subclis-fIcQACah.js",
5175
+ "dist/register.subclis-CRD-OGpA.js",
5176
+ "dist/register.subclis-DBW8jt1O.js",
5177
5177
  "dist/registry-DAH3dnPp.js",
5178
5178
  "dist/registry-e7r06d2k.js",
5179
5179
  "dist/remote-env-DizTUIcD.js",
@@ -5225,7 +5225,7 @@
5225
5225
  "dist/rpc.runtime-D_AvG-6a.js",
5226
5226
  "dist/rpc.runtime.js",
5227
5227
  "dist/run-command-q_9TLc7C.js",
5228
- "dist/run-main-D4BJGgps.js",
5228
+ "dist/run-main-CQsAMoet.js",
5229
5229
  "dist/run-wait-UJ0_cIUn.js",
5230
5230
  "dist/run-with-concurrency-CNF1koEh.js",
5231
5231
  "dist/runner-CmUrbsTA.js",
@@ -5324,13 +5324,13 @@
5324
5324
  "dist/send-DApv6EWi.js",
5325
5325
  "dist/send-deps-DGK8Tllk.js",
5326
5326
  "dist/send-policy-w2A2xDBe.js",
5327
+ "dist/server-CKLe3G_U.js",
5327
5328
  "dist/server-context-BYOX16Yl.js",
5328
5329
  "dist/server-CrdS3UrE.js",
5329
- "dist/server-DcXHhcU8.js",
5330
5330
  "dist/server-methods-bIPYgftX.js",
5331
5331
  "dist/server-middleware-BnVefL2I.js",
5332
5332
  "dist/server-node-events-C48hvzB5.js",
5333
- "dist/server.impl-nb7jzo8Z.js",
5333
+ "dist/server.impl-BOG9TNeQ.js",
5334
5334
  "dist/service-audit-BEuy9HGX.js",
5335
5335
  "dist/service-audit-DaJexz9G.js",
5336
5336
  "dist/service-BRUXoghh.js",
@@ -5381,15 +5381,15 @@
5381
5381
  "dist/setup-binary-hZMPN9Ew.js",
5382
5382
  "dist/setup-BstqA12y.js",
5383
5383
  "dist/setup-CIEFil9Z.js",
5384
- "dist/setup-DNWKAkZG.js",
5385
5384
  "dist/setup-group-access-vzo1UPzC.js",
5386
5385
  "dist/setup-helpers-CYn9hj51.js",
5387
5386
  "dist/setup-registry-iP0yCzZ6.js",
5388
5387
  "dist/setup-surface-CBT10XjV.js",
5388
+ "dist/setup-tn-YqKJi.js",
5389
5389
  "dist/setup-tools-DG76I7Zl.js",
5390
5390
  "dist/setup-wizard-helpers-CdujEzeM.js",
5391
5391
  "dist/setup-wizard-proxy-Chwlpu1D.js",
5392
- "dist/setup.finalize-CxRyTna3.js",
5392
+ "dist/setup.finalize-D_BojxsB.js",
5393
5393
  "dist/setup.gateway-config-JS5or6bl.js",
5394
5394
  "dist/setup.plugin-config-ISKa6d9a.js",
5395
5395
  "dist/setup.secret-input-tdjeSNge.js",
@@ -5673,7 +5673,7 @@
5673
5673
  "dist/unhandled-rejections-DS4dzceq.js",
5674
5674
  "dist/uninstall-DolYjxpA.js",
5675
5675
  "dist/update-check-C-LMgBzT.js",
5676
- "dist/update-cli-D5UDBXoa.js",
5676
+ "dist/update-cli-CzZ-Cof6.js",
5677
5677
  "dist/update-nULJ4OI8.js",
5678
5678
  "dist/update-runner-44LCyhil.js",
5679
5679
  "dist/usage-C2XL1QXX.js",
@@ -677,6 +677,7 @@ var ProactiveScheduler = class {
677
677
  });
678
678
  return null;
679
679
  }
680
+ candidate.resolvedMode = "pattern";
680
681
  return candidate;
681
682
  }
682
683
  const userId = persona.identity?.userId;
@@ -856,6 +857,7 @@ var ProactiveScheduler = class {
856
857
  });
857
858
  return null;
858
859
  }
860
+ candidate.resolvedMode = mode;
859
861
  return candidate;
860
862
  }
861
863
  async processEvent(userId, event, agentId) {
@@ -960,10 +962,10 @@ var ProactiveScheduler = class {
960
962
  targetDomains: insight.targetDomains,
961
963
  source: insight.source ?? "knowledge",
962
964
  verificationStatus: insight.verificationStatus,
963
- mode: selected.metadata?.mode ?? "knowledge",
965
+ mode: insight.resolvedMode ?? "unknown",
964
966
  opportunityType: selected.type
965
967
  });
966
- const insightMode = String(selected.metadata?.mode ?? "knowledge");
968
+ const insightMode = insight.resolvedMode ?? "surprise";
967
969
  if (insightMode !== "pattern" && insight.sources.length === 0) {
968
970
  log.warn("safety-net: blocking 0-source knowledge insight before delivery", {
969
971
  userId,
@@ -993,7 +995,7 @@ var ProactiveScheduler = class {
993
995
  persona.feedbackProfile.recentInsightDomains = replacedDomains;
994
996
  const replacedTypes = [...(persona.feedbackProfile.recentInsightTypes ?? []).slice(0, -1), selected.type].slice(-5);
995
997
  persona.feedbackProfile.recentInsightTypes = replacedTypes;
996
- const mode = String(selected.metadata?.mode ?? "knowledge");
998
+ const mode = insight.resolvedMode ?? "surprise";
997
999
  const replacedModes = [...(persona.feedbackProfile.recentInsightModes ?? []).slice(0, -1), mode].slice(-5);
998
1000
  persona.feedbackProfile.recentInsightModes = replacedModes;
999
1001
  if (insight.searchQueryUsed) {
@@ -1086,9 +1088,9 @@ var ProactiveScheduler = class {
1086
1088
  type: "exploration",
1087
1089
  targetDomains: targetDomain ? [targetDomain] : [],
1088
1090
  sourceDomains: [],
1089
- pNeed: .55,
1091
+ pNeed: .65,
1090
1092
  pAccept: baseline,
1091
- pAct: .55 * baseline,
1093
+ pAct: .65 * baseline,
1092
1094
  modeCandidates: [
1093
1095
  "pattern",
1094
1096
  "surprise",
@@ -4,7 +4,7 @@ import { n as VERSION } from "./version-CL-VJOV3.js";
4
4
  import "./globals-D7B2Z7Cq.js";
5
5
  import { n as resolveCliName } from "./cli-name-CShScbrY.js";
6
6
  import { n as resolveCliChannelOptions } from "./channel-options-oY-fgqLF.js";
7
- import { i as registerProgramCommands } from "./command-registry-BOhpJsAT.js";
7
+ import { i as registerProgramCommands } from "./command-registry-BdM3Rq6g.js";
8
8
  import { n as setProgramContext } from "./program-context-DgBnNdPS.js";
9
9
  import { t as isCommandJsonOutputMode } from "./json-mode-D2yoLZPI.js";
10
10
  import { t as forceFreePort } from "./ports-DGapqwdc.js";
@@ -111,7 +111,7 @@ import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-BNTXPg
111
111
  import { t as formatHealthCheckFailure } from "./health-format-CLQJQHGc.js";
112
112
  import { a as stripUnknownConfigKeys, i as resolveConfigPathTarget, n as formatConfigPath, r as noteOpencodeProviderOverrides, t as runDoctorConfigPreflight } from "./doctor-config-preflight-BrAmDI_o.js";
113
113
  import { a as runChannelPluginStartupMaintenance, i as normalizeCronJobIdentityFields, t as coerceFiniteScheduleNumber } from "./schedule-CYydK95d.js";
114
- import { n as doctorShellCompletion } from "./doctor-completion-Ci8o0KgL.js";
114
+ import { n as doctorShellCompletion } from "./doctor-completion-DKLtI3SL.js";
115
115
  import { t as collectChannelStatusIssues } from "./channels-status-issues-C7kk2NDz.js";
116
116
  import { t as resolveDefaultChannelAccountContext } from "./channel-account-context-HBIX1R6Q.js";
117
117
  import { a as runLegacyStateMigrations, n as detectLegacyStateMigrations } from "./state-migrations-C9TLTha5.js";
@@ -15,7 +15,7 @@ import { i as formatControlUiSshHint } from "./onboard-helpers-D8P-hhCA.js";
15
15
  import { r as resolveGatewayService } from "./service-DoXMy36I.js";
16
16
  import { a as removeStateAndLinkedPaths, i as removePath, o as removeWorkspaceDirs, r as listAgentSessionDirs, t as buildCleanupPlan } from "./cleanup-utils-BKPYzE4x.js";
17
17
  import { n as runCommandWithRuntime } from "./cli-utils-B2Ek29La.js";
18
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-gVUmQALT.js";
18
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-20vPzQCy.js";
19
19
  import path from "node:path";
20
20
  import { cancel, confirm, isCancel, multiselect } from "@clack/prompts";
21
21
  //#region src/infra/clipboard.ts
@@ -4,7 +4,7 @@ import { r as theme } from "./theme-AvNURkOg.js";
4
4
  import { n as runCommandWithRuntime } from "./cli-utils-B2Ek29La.js";
5
5
  import { c as resolveManifestProviderOnboardAuthFlags } from "./auth-choice-legacy-BZd7ozgZ.js";
6
6
  import { n as formatAuthChoiceChoicesForCli } from "./auth-choice-options-Ky4VOreJ.js";
7
- import { n as CORE_ONBOARD_AUTH_FLAGS, t as setupWizardCommand } from "./onboard-CN_UM8Qo.js";
7
+ import { n as CORE_ONBOARD_AUTH_FLAGS, t as setupWizardCommand } from "./onboard-DtiKmIt5.js";
8
8
  //#region src/cli/program/register.onboard.ts
9
9
  function resolveInstallDaemonFlag(command, opts) {
10
10
  if (!command || typeof command !== "object") return;
@@ -11,7 +11,7 @@ import { s as resolveSessionTranscriptsDir } from "./paths-DjA1ZhOF.js";
11
11
  import { n as safeParseWithSchema } from "./zod-parse-Dom9vBrG.js";
12
12
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-BqQWUn6o.js";
13
13
  import { n as runCommandWithRuntime } from "./cli-utils-B2Ek29La.js";
14
- import { t as setupWizardCommand } from "./onboard-CN_UM8Qo.js";
14
+ import { t as setupWizardCommand } from "./onboard-DtiKmIt5.js";
15
15
  import fs from "node:fs/promises";
16
16
  import JSON5 from "json5";
17
17
  import { z } from "zod";
@@ -1,3 +1,3 @@
1
- import { n as registerSubCliByName } from "./register.subclis-B1KBce7b.js";
1
+ import { n as registerSubCliByName } from "./register.subclis-DBW8jt1O.js";
2
2
  import "./subcli-descriptors-CJDIkVTV.js";
3
3
  export { registerSubCliByName };
@@ -58,7 +58,7 @@ const entrySpecs = [
58
58
  },
59
59
  {
60
60
  commandNames: ["gateway"],
61
- loadModule: () => import("./gateway-cli-CSxWvdKF.js"),
61
+ loadModule: () => import("./gateway-cli-Juo0V8Te.js"),
62
62
  exportName: "registerGatewayCli"
63
63
  },
64
64
  {
@@ -206,12 +206,12 @@ const entrySpecs = [
206
206
  },
207
207
  {
208
208
  commandNames: ["update"],
209
- loadModule: () => import("./update-cli-D5UDBXoa.js"),
209
+ loadModule: () => import("./update-cli-CzZ-Cof6.js"),
210
210
  exportName: "registerUpdateCli"
211
211
  },
212
212
  {
213
213
  commandNames: ["completion"],
214
- loadModule: () => import("./completion-cli-DrcmW9vt.js"),
214
+ loadModule: () => import("./completion-cli-C4R4kZu3.js"),
215
215
  exportName: "registerCompletionCli"
216
216
  }
217
217
  ])
@@ -395,7 +395,7 @@ async function runCli(argv = process$1.argv) {
395
395
  if (await tryRouteCli(normalizedArgv)) return;
396
396
  enableConsoleCapture();
397
397
  const [{ buildProgram }, { installUnhandledRejectionHandler }, { restoreTerminalState }] = await Promise.all([
398
- import("./program-tlnHJg4i.js"),
398
+ import("./program-DLuph1ad.js"),
399
399
  import("./unhandled-rejections-B7jiLc5X.js"),
400
400
  import("./restore-ADlpnb-M.js")
401
401
  ]);
@@ -412,10 +412,10 @@ async function runCli(argv = process$1.argv) {
412
412
  const { getProgramContext } = await import("./program-context-CRp1Bywj.js");
413
413
  const ctx = getProgramContext(program);
414
414
  if (ctx) {
415
- const { registerCoreCliByName } = await import("./command-registry-BCMr6X7p.js");
415
+ const { registerCoreCliByName } = await import("./command-registry-zJF0Y3hj.js");
416
416
  await registerCoreCliByName(program, ctx, primary, parseArgv);
417
417
  }
418
- const { registerSubCliByName } = await import("./register.subclis-fIcQACah.js");
418
+ const { registerSubCliByName } = await import("./register.subclis-CRD-OGpA.js");
419
419
  await registerSubCliByName(program, primary);
420
420
  }
421
421
  if (!shouldSkipPluginCommandRegistration({
@@ -1,7 +1,7 @@
1
1
  import { t as truncateCloseReason } from "./close-reason-DD8RHYWM.js";
2
2
  //#region src/gateway/server.ts
3
3
  async function loadServerImpl() {
4
- return await import("./server.impl-nb7jzo8Z.js");
4
+ return await import("./server.impl-BOG9TNeQ.js");
5
5
  }
6
6
  async function startGatewayServer(...args) {
7
7
  return await (await loadServerImpl()).startGatewayServer(...args);
@@ -190,7 +190,7 @@ import { t as loadWorkspaceHookEntries } from "./workspace-BVPqpy_M.js";
190
190
  import { i as resolveGatewayStartupPluginIds, r as resolveConfiguredDeferredChannelPluginIds } from "./channel-plugin-ids-BV-usTwF.js";
191
191
  import { a as runChannelPluginStartupMaintenance, i as normalizeCronJobIdentityFields, n as computeNextRunAtMs, r as computePreviousRunAtMs, t as coerceFiniteScheduleNumber } from "./schedule-CYydK95d.js";
192
192
  import { i as migrateOrphanedSessionKeys } from "./state-migrations-C9TLTha5.js";
193
- import { t as runSetupWizard } from "./setup-DNWKAkZG.js";
193
+ import { t as runSetupWizard } from "./setup-tn-YqKJi.js";
194
194
  import { d as startTaskRegistryMaintenance, f as stopTaskRegistryMaintenance, g as markCronJobActive, h as clearCronJobActive, n as getInspectableTaskRegistrySummary } from "./task-registry.maintenance-7Fqx7fs6.js";
195
195
  import { n as collectEnabledInsecureOrDangerousFlags, t as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-BOBLEbqP.js";
196
196
  import { _ as buildGogWatchStartArgs, g as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, w as resolveGmailHookRuntimeConfig } from "./gmail-setup-utils-BWz55M4B.js";
@@ -18435,7 +18435,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
18435
18435
  if (!minimalTestGateway) heartbeatRunner = startHeartbeatRunner({ cfg: cfgAtStart });
18436
18436
  if (!minimalTestGateway && cfgAtStart.cognitive?.proactive?.enabled !== false && cfgAtStart.cognitive?.enabled !== false) (async () => {
18437
18437
  try {
18438
- const { ProactiveScheduler } = await import("./proactive-scheduler-B1QtrN-B.js");
18438
+ const { ProactiveScheduler } = await import("./proactive-scheduler-BBxPxvC5.js");
18439
18439
  const { InfoScanSource } = await import("./info-scan-source-CLO1HkIF.js");
18440
18440
  const { PersonaChangeSource } = await import("./persona-change-source-BexfiKJf.js");
18441
18441
  const { PersonaStore } = await import("./store-BbSMxHSJ.js");
@@ -18495,7 +18495,6 @@ async function startGatewayServer(port = 18789, opts = {}) {
18495
18495
  activeHoursStart: cfgAtStart.cognitive?.proactive?.activeHours?.start,
18496
18496
  activeHoursEnd: cfgAtStart.cognitive?.proactive?.activeHours?.end,
18497
18497
  timezone: cfgAtStart.cognitive?.proactive?.activeHours?.timezone,
18498
- patternModeRatio: cfgAtStart.cognitive?.insight?.patternModeRatio,
18499
18498
  patternVerification: cfgAtStart.cognitive?.insight?.patternVerification,
18500
18499
  llmFreshnessCheck: cfgAtStart.cognitive?.insight?.llmFreshnessCheck,
18501
18500
  epsilonGreedy: cfgAtStart.cognitive?.proactive?.epsilonGreedy
@@ -18649,7 +18648,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
18649
18648
  const persona = await personaStore.loadOrCreate(agentId, userId);
18650
18649
  const domainGroups = /* @__PURE__ */ new Map();
18651
18650
  for (const item of items) {
18652
- const key = item.domain || item.category;
18651
+ const key = item.domains?.[0] || item.category;
18653
18652
  const group = domainGroups.get(key) ?? [];
18654
18653
  group.push({
18655
18654
  text: item.content,
@@ -465,7 +465,7 @@ async function runSetupWizard(opts, runtime = defaultRuntime, prompter) {
465
465
  mode
466
466
  });
467
467
  await writeConfigFile(nextConfig);
468
- const { finalizeSetupWizard } = await import("./setup.finalize-CxRyTna3.js");
468
+ const { finalizeSetupWizard } = await import("./setup.finalize-D_BojxsB.js");
469
469
  const { launchedTui } = await finalizeSetupWizard({
470
470
  flow,
471
471
  opts,
@@ -13,11 +13,11 @@ import { i as isSystemdUserServiceAvailable } from "./systemd-DKYgeOfD.js";
13
13
  import { r as resolveGatewayService, t as describeGatewayServiceRestart } from "./service-DoXMy36I.js";
14
14
  import { n as listConfiguredWebSearchProviders } from "./runtime-il1O314Z.js";
15
15
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-YDEkUsWo.js";
16
- import { r as installCompletion } from "./completion-cli-D9ilVde9.js";
16
+ import { r as installCompletion } from "./completion-cli-0Qr6J0D8.js";
17
17
  import { r as healthCommand } from "./health-tE2HQcfJ.js";
18
18
  import { t as resolveSetupSecretInputString } from "./setup.secret-input-tdjeSNge.js";
19
19
  import { t as formatHealthCheckFailure } from "./health-format-CLQJQHGc.js";
20
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-Ci8o0KgL.js";
20
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DKLtI3SL.js";
21
21
  import { t as runTui } from "./tui-CQ9ee5PP.js";
22
22
  import path from "node:path";
23
23
  import os from "node:os";
@@ -28,10 +28,10 @@ import { d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as r
28
28
  import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-B_VWBTX7.js";
29
29
  import { a as createGlobalInstallEnv, c as globalInstallArgs, d as resolveGlobalInstallTarget, f as normalizePackageTagInput, i as collectInstalledGlobalPackageErrors, l as resolveExpectedInstalledVersionFromSpec, m as readPackageVersion, n as canResolveRegistryVersionForPackageTarget, o as detectGlobalInstallManagerByPresence, p as readPackageName, r as cleanupGlobalRenameDirs, s as detectGlobalInstallManagerForRoot, t as runGatewayUpdate, u as resolveGlobalInstallSpec } from "./update-runner-44LCyhil.js";
30
30
  import { n as renderTable, t as getTerminalTableWidth } from "./table-DYlm1g79.js";
31
- import { r as installCompletion } from "./completion-cli-D9ilVde9.js";
31
+ import { r as installCompletion } from "./completion-cli-0Qr6J0D8.js";
32
32
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-nULJ4OI8.js";
33
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-gVUmQALT.js";
34
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-Ci8o0KgL.js";
33
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-20vPzQCy.js";
34
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DKLtI3SL.js";
35
35
  import path from "node:path";
36
36
  import { spawn, spawnSync } from "node:child_process";
37
37
  import os from "node:os";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kaijibot",
3
- "version": "2026.6.5",
3
+ "version": "2026.6.8",
4
4
  "description": "Proactive cognitive AI assistant — learns your interests, pushes insights, evolves skills autonomously",
5
5
  "keywords": [
6
6
  "ai",