johns-harness 2026.9.19 → 2026.9.20

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 (68) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +5 -5
  3. package/dist/auth-profiles-5CHn7vq1.js +4 -0
  4. package/dist/channels/plugins/actions/telegram.js +6 -0
  5. package/dist/compact-B247y5Qt.js +2 -0
  6. package/dist/config-koj5M_EO.js +4 -0
  7. package/dist/daemon-cli.js +4 -0
  8. package/dist/model-selection-BGlGpPgM.js +4 -0
  9. package/dist/model-selection-BU6wl1le.js +4 -0
  10. package/dist/model-selection-L7RMwsG-.js +4 -0
  11. package/dist/pi-embedded-C6ITuRXf.js +2 -0
  12. package/dist/pi-embedded-DoQsYfIY.js +2 -0
  13. package/dist/plugin-sdk/bluebubbles.js +1 -0
  14. package/dist/plugin-sdk/config-4Fgm-yEH.js +4 -0
  15. package/dist/plugin-sdk/config-Di-lyCdh.js +4 -0
  16. package/dist/plugin-sdk/discord.js +4 -0
  17. package/dist/plugin-sdk/dispatch-BP0viZiL.js +2 -0
  18. package/dist/plugin-sdk/dispatch-CQsjmw7g.js +2 -0
  19. package/dist/plugin-sdk/dispatch-Cerq29sy.js +2 -0
  20. package/dist/plugin-sdk/dispatch-Cndjtt0g.js +2 -0
  21. package/dist/plugin-sdk/dispatch-UogiJYul.js +2 -0
  22. package/dist/plugin-sdk/feishu.js +1 -0
  23. package/dist/plugin-sdk/googlechat.js +1 -0
  24. package/dist/plugin-sdk/imessage.js +1 -0
  25. package/dist/plugin-sdk/mattermost.js +6 -0
  26. package/dist/plugin-sdk/model-auth-CX9cPHdC.js +4 -0
  27. package/dist/plugin-sdk/model-auth-Ciehz0x5.js +4 -0
  28. package/dist/plugin-sdk/model-auth-DVyo6JSX.js +4 -0
  29. package/dist/plugin-sdk/model-auth-kiHYHGrs.js +4 -0
  30. package/dist/plugin-sdk/model-selection-Dbj4jDYM.js +4 -0
  31. package/dist/plugin-sdk/reply-DbZnH8-h.js +2 -0
  32. package/dist/plugin-sdk/signal.js +1 -0
  33. package/dist/plugin-sdk/slack.js +1 -0
  34. package/dist/plugin-sdk/telegram.js +1 -0
  35. package/dist/plugin-sdk/thinking-B-rIrY_n.js +6 -0
  36. package/dist/plugin-sdk/thinking-CopbP_Cn.js +6 -0
  37. package/dist/plugin-sdk/thinking-WQ4Zq8Nl.js +6 -0
  38. package/dist/plugin-sdk/thinking-WXqkGljb.js +6 -0
  39. package/dist/plugin-sdk/thinking-_uXqFaFO.js +6 -0
  40. package/dist/plugin-sdk/thinking-pTdxk2dr.js +6 -0
  41. package/dist/plugin-sdk/tlon.js +1 -0
  42. package/dist/plugin-sdk/twitch.js +1 -0
  43. package/dist/plugin-sdk/zalo.js +1 -0
  44. package/dist/plugin-sdk/zalouser.js +1 -0
  45. package/dist/reply-C5LKjXcC.js +2 -0
  46. package/dist/thinking-B5B36ffe.js +6 -0
  47. package/dist/thinking-BYwvlJ3S.js +6 -0
  48. package/dist/thinking-CAzdgmNV.js +6 -0
  49. package/dist/thinking-DykY2Fzj.js +6 -0
  50. package/docs/PATCHES.md +4 -0
  51. package/docs/PROVIDER-CATALOG.md +174 -0
  52. package/node_modules/@mariozechner/pi-ai/dist/env-api-keys.js +1 -0
  53. package/node_modules/@mariozechner/pi-ai/dist/models.generated.js +98 -22
  54. package/node_modules/@mariozechner/pi-ai/dist/models.js +3 -0
  55. package/node_modules/@mariozechner/pi-ai/dist/providers/anthropic.js +7 -1
  56. package/node_modules/@mariozechner/pi-ai/dist/providers/google.js +1 -1
  57. package/node_modules/@mariozechner/pi-ai/dist/providers/openai-codex-responses.js +2 -1
  58. package/node_modules/@mariozechner/pi-ai/dist/providers/openai-completions.js +30 -0
  59. package/node_modules/@mariozechner/pi-ai/dist/providers/openai-responses.js +2 -1
  60. package/package.json +1 -1
  61. package/vendor/patched-deps/@mariozechner/pi-ai/dist/env-api-keys.js +1 -0
  62. package/vendor/patched-deps/@mariozechner/pi-ai/dist/models.generated.js +98 -22
  63. package/vendor/patched-deps/@mariozechner/pi-ai/dist/models.js +3 -0
  64. package/vendor/patched-deps/@mariozechner/pi-ai/dist/providers/anthropic.js +7 -1
  65. package/vendor/patched-deps/@mariozechner/pi-ai/dist/providers/google.js +1 -1
  66. package/vendor/patched-deps/@mariozechner/pi-ai/dist/providers/openai-codex-responses.js +2 -1
  67. package/vendor/patched-deps/@mariozechner/pi-ai/dist/providers/openai-completions.js +742 -0
  68. package/vendor/patched-deps/@mariozechner/pi-ai/dist/providers/openai-responses.js +2 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.9.20
4
+
5
+ - Family 67: native DeepSeek V4.1 Flash/V4 Pro catalog, environment auth, aliases, model-specific effort mapping and tool/reasoning replay through the supported Chat Completions transport.
6
+ - Audit current Meta, Gemini, OpenAI, Claude and xAI API catalogs. Add Gemini 3.5 Flash-Lite, correct GPT-5.6 and Sonnet 5 pricing, update Sonnet output ceiling, and preserve current owner context budgets/default models.
7
+ - Correct modern Claude xhigh serialization and unsupported sampling parameters; retain server-default omission semantics. Add exact replay and real loopback HTTP/SSE regression coverage.
8
+ - Fix Telegram native `/model` hot reload: commands now read current config rather than captured startup aliases/allowlist.
9
+ - No fleet deployment, upstream foundation upgrade or default-model change is part of this release. See `docs/PROVIDER-CATALOG.md` for verified IDs, sources and limitations.
10
+
11
+
3
12
  Docs: https://docs.openclaw.ai
4
13
 
5
14
  ## 2026.3.7
package/README.md CHANGED
@@ -85,8 +85,8 @@ node johnness.mjs --help
85
85
  ### Verify
86
86
 
87
87
  ```bash
88
- npm test # 873 tests against the installed dependency tree
89
- bash scripts/verify-patches.sh # 427 checks across every patch family
88
+ npm test # 882 tests against the installed dependency tree
89
+ bash scripts/verify-patches.sh # 430 checks across every patch family
90
90
  ```
91
91
 
92
92
  ## Launch a swarm with one command
@@ -132,7 +132,7 @@ Coding agents today run as isolated processes. Two agents on the same repository
132
132
  - **Memory built for production.** Tiered recall that traces from consolidated reflections down to the verbatim record, surviving compaction and shared across the swarm. Installed and enabled by default.
133
133
  - **Production authority per commit.** Promotion is granted to an exact SHA, never to a branch name, so one worker's authorization never covers another worker's commits.
134
134
  - **An append-only action log.** Agents record every consequential action to `ACTION_LOG.md` and read it before acting.
135
- - **A fixed runtime surface.** The core does not grow on a schedule. New mechanisms enter only to solve a demonstrated production failure, one narrow, tested, reversible patch at a time: 66 patch families, each with a regression test and a rollback path.
135
+ - **A fixed runtime surface.** The core does not grow on a schedule. New mechanisms enter only to solve a demonstrated production failure, one narrow, tested, reversible patch at a time: 67 patch families, each with a regression test and a rollback path.
136
136
  - **Reliability with a definition.** Bounded retries, explicit failure states, exact-once continuation, context-pressure recovery, durable delivery, and supervised gateway recovery.
137
137
  - **Coding first, phone optional.** Direct the work at a high level from a chat channel while agents plan, implement, test, coordinate, and stage releases unattended.
138
138
  - **Local voice.** Optional native Whisper transcription of inbound audio, entirely on your machine. Off by default. [Setup](docs/NATIVE-WHISPER-MUSE.md).
@@ -199,7 +199,7 @@ The log is a [`RULES.md`](RULES.md) workspace convention enforced through the ac
199
199
 
200
200
  ## Patch families
201
201
 
202
- The runtime carries 66 patch families plus the 65.1 safe-update amendment. Each is a production fix applied at the source with a regression test, a durable patch marker, and a rollback path. A verifier runs 427 checks against the package tree and installed dependencies, and 873 tests run against the installed dependency tree.
202
+ The runtime carries 67 patch families plus the 65.1 safe-update amendment. Each is a production fix applied at the source with a regression test, a durable patch marker, and a rollback path. A verifier runs 430 checks against the package tree and installed dependencies, and 882 tests run against the installed dependency tree.
203
203
 
204
204
  Every family follows the same six steps: reproduce the failure, trace the exact runtime path, make the smallest source-level change that restores the invariant, add a regression test and a patch marker, run the verifier, and retain rollback artifacts. The full index: [`docs/PATCHES.md`](docs/PATCHES.md).
205
205
 
@@ -216,7 +216,7 @@ Every family follows the same six steps: reproduce the failure, trace the exact
216
216
  ## Documentation
217
217
 
218
218
  - [`docs/index.md`](docs/index.md): runtime docs, from gateway and channels to plugins, nodes, and CLI reference.
219
- - [`docs/PATCHES.md`](docs/PATCHES.md): the 66 patch families, one record each.
219
+ - [`docs/PATCHES.md`](docs/PATCHES.md): the 67 patch families, one record each.
220
220
  - [`docs/NATIVE-WHISPER-MUSE.md`](docs/NATIVE-WHISPER-MUSE.md): local Whisper transcription setup.
221
221
  - [`RULES.md`](RULES.md): the default operating rules, including Rule Zero on production authorization.
222
222
 
@@ -725,6 +725,7 @@ async function discoverKilocodeModels() {
725
725
  //#endregion
726
726
  //#region src/agents/model-auth-env-vars.ts
727
727
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
728
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
728
729
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
729
730
  "github-copilot": [
730
731
  "COPILOT_GITHUB_TOKEN",
@@ -5095,6 +5096,9 @@ function resolveTalkApiKey(env = process.env, deps = {}) {
5095
5096
  //#region src/config/defaults.ts
5096
5097
  let defaultWarnState = { warned: false };
5097
5098
  const DEFAULT_MODEL_ALIASES = {
5099
+ deepseek: "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
5100
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
5101
+ "gemini-lite": "google/gemini-3.5-flash-lite",
5098
5102
  muse: "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
5099
5103
  "muse-spark": "meta/muse-spark-1.3",
5100
5104
  // JOHNNESS_PATCH_DEFAULTS_61: current model aliases ship with the harness; user config
@@ -2102,6 +2102,12 @@ formatBillingErrorMessage();
2102
2102
  //#endregion
2103
2103
  //#region src/auto-reply/thinking.ts
2104
2104
  const XHIGH_MODEL_REFS = [
2105
+ "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
2106
+ "deepseek/deepseek-v4-pro",
2107
+ "anthropic/claude-opus-5",
2108
+ "anthropic/claude-sonnet-5",
2109
+ "anthropic/claude-fable-5",
2110
+ "anthropic/claude-fable-5-1",
2105
2111
  "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
2106
2112
  "meta/muse-spark-1.2",
2107
2113
  "xai/grok-4.6",
@@ -90570,6 +90570,8 @@ const registerTelegramNativeCommands = ({ bot, cfg, runtime, accountId, telegram
90570
90570
  for (const command of nativeCommands) {
90571
90571
  const normalizedCommandName = normalizeTelegramCommandName(command.name);
90572
90572
  bot.command(normalizedCommandName, async (ctx) => {
90573
+ // JOHNNESS_PATCH_PROVIDER_CATALOG_67: native model commands must see hot-reloaded aliases/providers.
90574
+ const cfg = loadConfig();
90573
90575
  const msg = ctx.message;
90574
90576
  if (!msg) return;
90575
90577
  if (shouldSkipUpdate(ctx)) return;
@@ -1420,6 +1420,7 @@ createSubsystemLogger("kilocode-models");
1420
1420
  //#endregion
1421
1421
  //#region src/agents/model-auth-env-vars.ts
1422
1422
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
1423
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1423
1424
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
1424
1425
  "github-copilot": [
1425
1426
  "COPILOT_GITHUB_TOKEN",
@@ -1790,6 +1791,9 @@ function resolveTalkApiKey(env = process.env, deps = {}) {
1790
1791
  //#region src/config/defaults.ts
1791
1792
  let defaultWarnState = { warned: false };
1792
1793
  const DEFAULT_MODEL_ALIASES = {
1794
+ deepseek: "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1795
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
1796
+ "gemini-lite": "google/gemini-3.5-flash-lite",
1793
1797
  muse: "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
1794
1798
  "muse-spark": "meta/muse-spark-1.3",
1795
1799
  // JOHNNESS_PATCH_DEFAULTS_61: current model aliases ship with the harness; user config
@@ -4644,6 +4644,7 @@ createSubsystemLogger("kilocode-models");
4644
4644
  //#endregion
4645
4645
  //#region src/agents/model-auth-env-vars.ts
4646
4646
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
4647
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
4647
4648
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
4648
4649
  "github-copilot": [
4649
4650
  "COPILOT_GITHUB_TOKEN",
@@ -4941,6 +4942,9 @@ function resolveTalkApiKey(env = process.env, deps = {}) {
4941
4942
  //#region src/config/defaults.ts
4942
4943
  let defaultWarnState = { warned: false };
4943
4944
  const DEFAULT_MODEL_ALIASES = {
4945
+ deepseek: "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
4946
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
4947
+ "gemini-lite": "google/gemini-3.5-flash-lite",
4944
4948
  muse: "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
4945
4949
  "muse-spark": "meta/muse-spark-1.3",
4946
4950
  // JOHNNESS_PATCH_DEFAULTS_61: current model aliases ship with the harness; user config
@@ -1648,6 +1648,9 @@ function resolveTalkApiKey(env = process.env, deps = {}) {
1648
1648
  //#region src/config/defaults.ts
1649
1649
  let defaultWarnState = { warned: false };
1650
1650
  const DEFAULT_MODEL_ALIASES = {
1651
+ deepseek: "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1652
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
1653
+ "gemini-lite": "google/gemini-3.5-flash-lite",
1651
1654
  muse: "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
1652
1655
  "muse-spark": "meta/muse-spark-1.3",
1653
1656
  // JOHNNESS_PATCH_DEFAULTS_61: current model aliases ship with the harness; user config
@@ -15739,6 +15742,7 @@ async function discoverKilocodeModels() {
15739
15742
  //#endregion
15740
15743
  //#region src/agents/model-auth-env-vars.ts
15741
15744
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
15745
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
15742
15746
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
15743
15747
  "github-copilot": [
15744
15748
  "COPILOT_GITHUB_TOKEN",
@@ -1623,6 +1623,9 @@ function resolveTalkApiKey(env = process.env, deps = {}) {
1623
1623
  //#region src/config/defaults.ts
1624
1624
  let defaultWarnState = { warned: false };
1625
1625
  const DEFAULT_MODEL_ALIASES = {
1626
+ deepseek: "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1627
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
1628
+ "gemini-lite": "google/gemini-3.5-flash-lite",
1626
1629
  muse: "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
1627
1630
  "muse-spark": "meta/muse-spark-1.3",
1628
1631
  // JOHNNESS_PATCH_DEFAULTS_61: current model aliases ship with the harness; user config
@@ -15628,6 +15631,7 @@ async function discoverKilocodeModels() {
15628
15631
  //#endregion
15629
15632
  //#region src/agents/model-auth-env-vars.ts
15630
15633
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
15634
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
15631
15635
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
15632
15636
  "github-copilot": [
15633
15637
  "COPILOT_GITHUB_TOKEN",
@@ -1554,6 +1554,9 @@ function resolveTalkApiKey(env = process.env, deps = {}) {
1554
1554
  //#region src/config/defaults.ts
1555
1555
  let defaultWarnState = { warned: false };
1556
1556
  const DEFAULT_MODEL_ALIASES = {
1557
+ deepseek: "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1558
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
1559
+ "gemini-lite": "google/gemini-3.5-flash-lite",
1557
1560
  muse: "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
1558
1561
  "muse-spark": "meta/muse-spark-1.3",
1559
1562
  // JOHNNESS_PATCH_DEFAULTS_61: current model aliases ship with the harness; user config
@@ -14018,6 +14021,7 @@ async function discoverKilocodeModels() {
14018
14021
  //#endregion
14019
14022
  //#region src/agents/model-auth-env-vars.ts
14020
14023
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
14024
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
14021
14025
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
14022
14026
  "github-copilot": [
14023
14027
  "COPILOT_GITHUB_TOKEN",
@@ -88245,6 +88245,8 @@ const registerTelegramNativeCommands = ({ bot, cfg, runtime, accountId, telegram
88245
88245
  for (const command of nativeCommands) {
88246
88246
  const normalizedCommandName = normalizeTelegramCommandName(command.name);
88247
88247
  bot.command(normalizedCommandName, async (ctx) => {
88248
+ // JOHNNESS_PATCH_PROVIDER_CATALOG_67: native model commands must see hot-reloaded aliases/providers.
88249
+ const cfg = loadConfig();
88248
88250
  const msg = ctx.message;
88249
88251
  if (!msg) return;
88250
88252
  if (shouldSkipUpdate(ctx)) return;
@@ -88235,6 +88235,8 @@ const registerTelegramNativeCommands = ({ bot, cfg, runtime, accountId, telegram
88235
88235
  for (const command of nativeCommands) {
88236
88236
  const normalizedCommandName = normalizeTelegramCommandName(command.name);
88237
88237
  bot.command(normalizedCommandName, async (ctx) => {
88238
+ // JOHNNESS_PATCH_PROVIDER_CATALOG_67: native model commands must see hot-reloaded aliases/providers.
88239
+ const cfg = loadConfig();
88238
88240
  const msg = ctx.message;
88239
88241
  if (!msg) return;
88240
88242
  if (shouldSkipUpdate(ctx)) return;
@@ -2244,6 +2244,7 @@ createSubsystemLogger("kilocode-models");
2244
2244
  //#endregion
2245
2245
  //#region src/agents/model-auth-env-vars.ts
2246
2246
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
2247
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
2247
2248
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
2248
2249
  "github-copilot": [
2249
2250
  "COPILOT_GITHUB_TOKEN",
@@ -3950,6 +3950,7 @@ async function discoverKilocodeModels() {
3950
3950
  //#endregion
3951
3951
  //#region src/agents/model-auth-env-vars.ts
3952
3952
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
3953
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
3953
3954
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
3954
3955
  "github-copilot": [
3955
3956
  "COPILOT_GITHUB_TOKEN",
@@ -7040,6 +7041,9 @@ function resolveTalkApiKey(env = process.env, deps = {}) {
7040
7041
  //#region src/config/defaults.ts
7041
7042
  let defaultWarnState = { warned: false };
7042
7043
  const DEFAULT_MODEL_ALIASES = {
7044
+ deepseek: "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
7045
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
7046
+ "gemini-lite": "google/gemini-3.5-flash-lite",
7043
7047
  muse: "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
7044
7048
  "muse-spark": "meta/muse-spark-1.3",
7045
7049
  // JOHNNESS_PATCH_DEFAULTS_61: current model aliases ship with the harness; user config
@@ -4951,6 +4951,7 @@ async function discoverKilocodeModels() {
4951
4951
  //#endregion
4952
4952
  //#region src/agents/model-auth-env-vars.ts
4953
4953
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
4954
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
4954
4955
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
4955
4956
  "github-copilot": [
4956
4957
  "COPILOT_GITHUB_TOKEN",
@@ -8041,6 +8042,9 @@ function resolveTalkApiKey(env = process.env, deps = {}) {
8041
8042
  //#region src/config/defaults.ts
8042
8043
  let defaultWarnState = { warned: false };
8043
8044
  const DEFAULT_MODEL_ALIASES = {
8045
+ deepseek: "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
8046
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
8047
+ "gemini-lite": "google/gemini-3.5-flash-lite",
8044
8048
  muse: "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
8045
8049
  "muse-spark": "meta/muse-spark-1.3",
8046
8050
  // JOHNNESS_PATCH_DEFAULTS_61: current model aliases ship with the harness; user config
@@ -4873,6 +4873,7 @@ createSubsystemLogger("kilocode-models");
4873
4873
  //#endregion
4874
4874
  //#region src/agents/model-auth-env-vars.ts
4875
4875
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
4876
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
4876
4877
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
4877
4878
  "github-copilot": [
4878
4879
  "COPILOT_GITHUB_TOKEN",
@@ -5170,6 +5171,9 @@ function resolveTalkApiKey(env = process.env, deps = {}) {
5170
5171
  //#region src/config/defaults.ts
5171
5172
  let defaultWarnState = { warned: false };
5172
5173
  const DEFAULT_MODEL_ALIASES = {
5174
+ deepseek: "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
5175
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
5176
+ "gemini-lite": "google/gemini-3.5-flash-lite",
5173
5177
  muse: "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
5174
5178
  "muse-spark": "meta/muse-spark-1.3",
5175
5179
  // JOHNNESS_PATCH_DEFAULTS_61: current model aliases ship with the harness; user config
@@ -55304,6 +55304,8 @@ const registerTelegramNativeCommands = ({ bot, cfg, runtime, accountId, telegram
55304
55304
  for (const command of nativeCommands) {
55305
55305
  const normalizedCommandName = normalizeTelegramCommandName(command.name);
55306
55306
  bot.command(normalizedCommandName, async (ctx) => {
55307
+ // JOHNNESS_PATCH_PROVIDER_CATALOG_67: native model commands must see hot-reloaded aliases/providers.
55308
+ const cfg = loadConfig();
55307
55309
  const msg = ctx.message;
55308
55310
  if (!msg) return;
55309
55311
  if (shouldSkipUpdate(ctx)) return;
@@ -55304,6 +55304,8 @@ const registerTelegramNativeCommands = ({ bot, cfg, runtime, accountId, telegram
55304
55304
  for (const command of nativeCommands) {
55305
55305
  const normalizedCommandName = normalizeTelegramCommandName(command.name);
55306
55306
  bot.command(normalizedCommandName, async (ctx) => {
55307
+ // JOHNNESS_PATCH_PROVIDER_CATALOG_67: native model commands must see hot-reloaded aliases/providers.
55308
+ const cfg = loadConfig();
55307
55309
  const msg = ctx.message;
55308
55310
  if (!msg) return;
55309
55311
  if (shouldSkipUpdate(ctx)) return;
@@ -55695,6 +55695,8 @@ const registerTelegramNativeCommands = ({ bot, cfg, runtime, accountId, telegram
55695
55695
  for (const command of nativeCommands) {
55696
55696
  const normalizedCommandName = normalizeTelegramCommandName(command.name);
55697
55697
  bot.command(normalizedCommandName, async (ctx) => {
55698
+ // JOHNNESS_PATCH_PROVIDER_CATALOG_67: native model commands must see hot-reloaded aliases/providers.
55699
+ const cfg = loadConfig();
55698
55700
  const msg = ctx.message;
55699
55701
  if (!msg) return;
55700
55702
  if (shouldSkipUpdate(ctx)) return;
@@ -55345,6 +55345,8 @@ const registerTelegramNativeCommands = ({ bot, cfg, runtime, accountId, telegram
55345
55345
  for (const command of nativeCommands) {
55346
55346
  const normalizedCommandName = normalizeTelegramCommandName(command.name);
55347
55347
  bot.command(normalizedCommandName, async (ctx) => {
55348
+ // JOHNNESS_PATCH_PROVIDER_CATALOG_67: native model commands must see hot-reloaded aliases/providers.
55349
+ const cfg = loadConfig();
55348
55350
  const msg = ctx.message;
55349
55351
  if (!msg) return;
55350
55352
  if (shouldSkipUpdate(ctx)) return;
@@ -55304,6 +55304,8 @@ const registerTelegramNativeCommands = ({ bot, cfg, runtime, accountId, telegram
55304
55304
  for (const command of nativeCommands) {
55305
55305
  const normalizedCommandName = normalizeTelegramCommandName(command.name);
55306
55306
  bot.command(normalizedCommandName, async (ctx) => {
55307
+ // JOHNNESS_PATCH_PROVIDER_CATALOG_67: native model commands must see hot-reloaded aliases/providers.
55308
+ const cfg = loadConfig();
55307
55309
  const msg = ctx.message;
55308
55310
  if (!msg) return;
55309
55311
  if (shouldSkipUpdate(ctx)) return;
@@ -1703,6 +1703,7 @@ createSubsystemLogger("kilocode-models");
1703
1703
  //#endregion
1704
1704
  //#region src/agents/model-auth-env-vars.ts
1705
1705
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
1706
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1706
1707
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
1707
1708
  "github-copilot": [
1708
1709
  "COPILOT_GITHUB_TOKEN",
@@ -1769,6 +1769,7 @@ createSubsystemLogger("kilocode-models");
1769
1769
  //#endregion
1770
1770
  //#region src/agents/model-auth-env-vars.ts
1771
1771
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
1772
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1772
1773
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
1773
1774
  "github-copilot": [
1774
1775
  "COPILOT_GITHUB_TOKEN",
@@ -2493,6 +2493,7 @@ createSubsystemLogger("kilocode-models");
2493
2493
  //#endregion
2494
2494
  //#region src/agents/model-auth-env-vars.ts
2495
2495
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
2496
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
2496
2497
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
2497
2498
  "github-copilot": [
2498
2499
  "COPILOT_GITHUB_TOKEN",
@@ -3127,6 +3127,12 @@ const COMMAND_ARG_FORMATTERS = {
3127
3127
  //#endregion
3128
3128
  //#region src/auto-reply/thinking.ts
3129
3129
  const XHIGH_MODEL_REFS = [
3130
+ "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
3131
+ "deepseek/deepseek-v4-pro",
3132
+ "anthropic/claude-opus-5",
3133
+ "anthropic/claude-sonnet-5",
3134
+ "anthropic/claude-fable-5",
3135
+ "anthropic/claude-fable-5-1",
3130
3136
  "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
3131
3137
  "meta/muse-spark-1.2",
3132
3138
  "xai/grok-4.6",
@@ -2175,6 +2175,7 @@ async function discoverKilocodeModels() {
2175
2175
  //#endregion
2176
2176
  //#region src/agents/model-auth-env-vars.ts
2177
2177
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
2178
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
2178
2179
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
2179
2180
  "github-copilot": [
2180
2181
  "COPILOT_GITHUB_TOKEN",
@@ -5961,6 +5962,9 @@ function resolveTalkApiKey(env = process.env, deps = {}) {
5961
5962
  //#region src/config/defaults.ts
5962
5963
  let defaultWarnState = { warned: false };
5963
5964
  const DEFAULT_MODEL_ALIASES = {
5965
+ deepseek: "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
5966
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
5967
+ "gemini-lite": "google/gemini-3.5-flash-lite",
5964
5968
  muse: "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
5965
5969
  "muse-spark": "meta/muse-spark-1.3",
5966
5970
  // JOHNNESS_PATCH_DEFAULTS_61: current model aliases ship with the harness; user config
@@ -1144,6 +1144,7 @@ async function discoverKilocodeModels() {
1144
1144
  //#endregion
1145
1145
  //#region src/agents/model-auth-env-vars.ts
1146
1146
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
1147
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1147
1148
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
1148
1149
  "github-copilot": [
1149
1150
  "COPILOT_GITHUB_TOKEN",
@@ -4930,6 +4931,9 @@ function resolveTalkApiKey(env = process.env, deps = {}) {
4930
4931
  //#region src/config/defaults.ts
4931
4932
  let defaultWarnState = { warned: false };
4932
4933
  const DEFAULT_MODEL_ALIASES = {
4934
+ deepseek: "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
4935
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
4936
+ "gemini-lite": "google/gemini-3.5-flash-lite",
4933
4937
  muse: "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
4934
4938
  "muse-spark": "meta/muse-spark-1.3",
4935
4939
  // JOHNNESS_PATCH_DEFAULTS_61: current model aliases ship with the harness; user config
@@ -1148,6 +1148,7 @@ async function discoverKilocodeModels() {
1148
1148
  //#endregion
1149
1149
  //#region src/agents/model-auth-env-vars.ts
1150
1150
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
1151
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1151
1152
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
1152
1153
  "github-copilot": [
1153
1154
  "COPILOT_GITHUB_TOKEN",
@@ -4934,6 +4935,9 @@ function resolveTalkApiKey(env = process.env, deps = {}) {
4934
4935
  //#region src/config/defaults.ts
4935
4936
  let defaultWarnState = { warned: false };
4936
4937
  const DEFAULT_MODEL_ALIASES = {
4938
+ deepseek: "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
4939
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
4940
+ "gemini-lite": "google/gemini-3.5-flash-lite",
4937
4941
  muse: "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
4938
4942
  "muse-spark": "meta/muse-spark-1.3",
4939
4943
  // JOHNNESS_PATCH_DEFAULTS_61: current model aliases ship with the harness; user config
@@ -1148,6 +1148,7 @@ async function discoverKilocodeModels() {
1148
1148
  //#endregion
1149
1149
  //#region src/agents/model-auth-env-vars.ts
1150
1150
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
1151
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1151
1152
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
1152
1153
  "github-copilot": [
1153
1154
  "COPILOT_GITHUB_TOKEN",
@@ -4934,6 +4935,9 @@ function resolveTalkApiKey(env = process.env, deps = {}) {
4934
4935
  //#region src/config/defaults.ts
4935
4936
  let defaultWarnState = { warned: false };
4936
4937
  const DEFAULT_MODEL_ALIASES = {
4938
+ deepseek: "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
4939
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
4940
+ "gemini-lite": "google/gemini-3.5-flash-lite",
4937
4941
  muse: "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
4938
4942
  "muse-spark": "meta/muse-spark-1.3",
4939
4943
  // JOHNNESS_PATCH_DEFAULTS_61: current model aliases ship with the harness; user config
@@ -4744,6 +4744,9 @@ function resolveTalkApiKey(env = process.env, deps = {}) {
4744
4744
  //#region src/config/defaults.ts
4745
4745
  let defaultWarnState = { warned: false };
4746
4746
  const DEFAULT_MODEL_ALIASES = {
4747
+ deepseek: "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
4748
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
4749
+ "gemini-lite": "google/gemini-3.5-flash-lite",
4747
4750
  muse: "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
4748
4751
  "muse-spark": "meta/muse-spark-1.3",
4749
4752
  // JOHNNESS_PATCH_DEFAULTS_61: current model aliases ship with the harness; user config
@@ -14276,6 +14279,7 @@ async function discoverKilocodeModels() {
14276
14279
  //#endregion
14277
14280
  //#region src/agents/model-auth-env-vars.ts
14278
14281
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
14282
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
14279
14283
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
14280
14284
  "github-copilot": [
14281
14285
  "COPILOT_GITHUB_TOKEN",
@@ -59390,6 +59390,8 @@ const registerTelegramNativeCommands = ({ bot, cfg, runtime, accountId, telegram
59390
59390
  for (const command of nativeCommands) {
59391
59391
  const normalizedCommandName = normalizeTelegramCommandName(command.name);
59392
59392
  bot.command(normalizedCommandName, async (ctx) => {
59393
+ // JOHNNESS_PATCH_PROVIDER_CATALOG_67: native model commands must see hot-reloaded aliases/providers.
59394
+ const cfg = loadConfig();
59393
59395
  const msg = ctx.message;
59394
59396
  if (!msg) return;
59395
59397
  if (shouldSkipUpdate(ctx)) return;
@@ -2488,6 +2488,7 @@ createSubsystemLogger("kilocode-models");
2488
2488
  //#endregion
2489
2489
  //#region src/agents/model-auth-env-vars.ts
2490
2490
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
2491
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
2491
2492
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
2492
2493
  "github-copilot": [
2493
2494
  "COPILOT_GITHUB_TOKEN",
@@ -2986,6 +2986,7 @@ createSubsystemLogger("kilocode-models");
2986
2986
  //#endregion
2987
2987
  //#region src/agents/model-auth-env-vars.ts
2988
2988
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
2989
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
2989
2990
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
2990
2991
  "github-copilot": [
2991
2992
  "COPILOT_GITHUB_TOKEN",
@@ -3137,6 +3137,7 @@ createSubsystemLogger("kilocode-models");
3137
3137
  //#endregion
3138
3138
  //#region src/agents/model-auth-env-vars.ts
3139
3139
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
3140
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
3140
3141
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
3141
3142
  "github-copilot": [
3142
3143
  "COPILOT_GITHUB_TOKEN",
@@ -982,6 +982,12 @@ function isBinaryThinkingProvider(provider) {
982
982
  }
983
983
  // JOHNNESS_PATCH_GPT56_XHIGH
984
984
  const XHIGH_MODEL_REFS = [
985
+ "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
986
+ "deepseek/deepseek-v4-pro",
987
+ "anthropic/claude-opus-5",
988
+ "anthropic/claude-sonnet-5",
989
+ "anthropic/claude-fable-5",
990
+ "anthropic/claude-fable-5-1",
985
991
  "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
986
992
  "meta/muse-spark-1.2",
987
993
  "xai/grok-4.6",
@@ -982,6 +982,12 @@ function isBinaryThinkingProvider(provider) {
982
982
  }
983
983
  // JOHNNESS_PATCH_GPT56_XHIGH
984
984
  const XHIGH_MODEL_REFS = [
985
+ "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
986
+ "deepseek/deepseek-v4-pro",
987
+ "anthropic/claude-opus-5",
988
+ "anthropic/claude-sonnet-5",
989
+ "anthropic/claude-fable-5",
990
+ "anthropic/claude-fable-5-1",
985
991
  "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
986
992
  "meta/muse-spark-1.2",
987
993
  "xai/grok-4.6",
@@ -982,6 +982,12 @@ function isBinaryThinkingProvider(provider) {
982
982
  }
983
983
  // JOHNNESS_PATCH_GPT56_XHIGH
984
984
  const XHIGH_MODEL_REFS = [
985
+ "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
986
+ "deepseek/deepseek-v4-pro",
987
+ "anthropic/claude-opus-5",
988
+ "anthropic/claude-sonnet-5",
989
+ "anthropic/claude-fable-5",
990
+ "anthropic/claude-fable-5-1",
985
991
  "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
986
992
  "meta/muse-spark-1.2",
987
993
  "xai/grok-4.6",
@@ -982,6 +982,12 @@ function isBinaryThinkingProvider(provider) {
982
982
  }
983
983
  // JOHNNESS_PATCH_GPT56_XHIGH
984
984
  const XHIGH_MODEL_REFS = [
985
+ "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
986
+ "deepseek/deepseek-v4-pro",
987
+ "anthropic/claude-opus-5",
988
+ "anthropic/claude-sonnet-5",
989
+ "anthropic/claude-fable-5",
990
+ "anthropic/claude-fable-5-1",
985
991
  "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
986
992
  "meta/muse-spark-1.2",
987
993
  "xai/grok-4.6",
@@ -982,6 +982,12 @@ function isBinaryThinkingProvider(provider) {
982
982
  }
983
983
  // JOHNNESS_PATCH_GPT56_XHIGH
984
984
  const XHIGH_MODEL_REFS = [
985
+ "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
986
+ "deepseek/deepseek-v4-pro",
987
+ "anthropic/claude-opus-5",
988
+ "anthropic/claude-sonnet-5",
989
+ "anthropic/claude-fable-5",
990
+ "anthropic/claude-fable-5-1",
985
991
  "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
986
992
  "meta/muse-spark-1.2",
987
993
  "xai/grok-4.6",
@@ -1006,6 +1006,12 @@ function isBinaryThinkingProvider(provider) {
1006
1006
  }
1007
1007
  // JOHNNESS_PATCH_GPT56_XHIGH
1008
1008
  const XHIGH_MODEL_REFS = [
1009
+ "deepseek/deepseek-flash", // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1010
+ "deepseek/deepseek-v4-pro",
1011
+ "anthropic/claude-opus-5",
1012
+ "anthropic/claude-sonnet-5",
1013
+ "anthropic/claude-fable-5",
1014
+ "anthropic/claude-fable-5-1",
1009
1015
  "meta/muse-spark-1.3", // JOHNNESS_PATCH_MUSE_SPARK
1010
1016
  "meta/muse-spark-1.2",
1011
1017
  "xai/grok-4.6",
@@ -1269,6 +1269,7 @@ createSubsystemLogger("kilocode-models");
1269
1269
  //#endregion
1270
1270
  //#region src/agents/model-auth-env-vars.ts
1271
1271
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
1272
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1272
1273
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
1273
1274
  "github-copilot": [
1274
1275
  "COPILOT_GITHUB_TOKEN",
@@ -1157,6 +1157,7 @@ createSubsystemLogger("kilocode-models");
1157
1157
  //#endregion
1158
1158
  //#region src/agents/model-auth-env-vars.ts
1159
1159
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
1160
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1160
1161
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
1161
1162
  "github-copilot": [
1162
1163
  "COPILOT_GITHUB_TOKEN",
@@ -1659,6 +1659,7 @@ createSubsystemLogger("kilocode-models");
1659
1659
  //#endregion
1660
1660
  //#region src/agents/model-auth-env-vars.ts
1661
1661
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
1662
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1662
1663
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
1663
1664
  "github-copilot": [
1664
1665
  "COPILOT_GITHUB_TOKEN",
@@ -1687,6 +1687,7 @@ createSubsystemLogger("kilocode-models");
1687
1687
  //#endregion
1688
1688
  //#region src/agents/model-auth-env-vars.ts
1689
1689
  const PROVIDER_ENV_API_KEY_CANDIDATES = {
1690
+ deepseek: ["DEEPSEEK_API_KEY"], // JOHNNESS_PATCH_PROVIDER_CATALOG_67
1690
1691
  meta: ["MODEL_API_KEY"], // JOHNNESS_PATCH_MUSE_SPARK
1691
1692
  "github-copilot": [
1692
1693
  "COPILOT_GITHUB_TOKEN",