zcode-acp-server 0.38.0 → 0.40.0

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 (62) hide show
  1. package/README.md +19 -16
  2. package/dist/backend/credentials.d.ts.map +1 -1
  3. package/dist/backend/credentials.js +5 -2
  4. package/dist/backend/credentials.js.map +1 -1
  5. package/dist/code-fingerprint.json +1 -1
  6. package/dist/config/mcp-discovery.d.ts +4 -1
  7. package/dist/config/mcp-discovery.d.ts.map +1 -1
  8. package/dist/config/mcp-discovery.js +9 -9
  9. package/dist/config/mcp-discovery.js.map +1 -1
  10. package/dist/config/options.d.ts +19 -5
  11. package/dist/config/options.d.ts.map +1 -1
  12. package/dist/config/options.js +40 -17
  13. package/dist/config/options.js.map +1 -1
  14. package/dist/config/plugin-commands.d.ts +10 -7
  15. package/dist/config/plugin-commands.d.ts.map +1 -1
  16. package/dist/config/plugin-commands.js +17 -18
  17. package/dist/config/plugin-commands.js.map +1 -1
  18. package/dist/config/skill-discovery.d.ts +5 -3
  19. package/dist/config/skill-discovery.d.ts.map +1 -1
  20. package/dist/config/skill-discovery.js +13 -15
  21. package/dist/config/skill-discovery.js.map +1 -1
  22. package/dist/handlers/dispatch.js +8 -4
  23. package/dist/handlers/dispatch.js.map +1 -1
  24. package/dist/handlers/extensions.d.ts +9 -3
  25. package/dist/handlers/extensions.d.ts.map +1 -1
  26. package/dist/handlers/extensions.js +24 -18
  27. package/dist/handlers/extensions.js.map +1 -1
  28. package/dist/handlers/io.d.ts +10 -0
  29. package/dist/handlers/io.d.ts.map +1 -1
  30. package/dist/handlers/io.js +12 -0
  31. package/dist/handlers/io.js.map +1 -1
  32. package/dist/handlers/server-requests.js +43 -4
  33. package/dist/handlers/server-requests.js.map +1 -1
  34. package/dist/handlers/session.d.ts.map +1 -1
  35. package/dist/handlers/session.js +16 -3
  36. package/dist/handlers/session.js.map +1 -1
  37. package/dist/i18n.d.ts +2 -1
  38. package/dist/i18n.d.ts.map +1 -1
  39. package/dist/i18n.js +4 -3
  40. package/dist/i18n.js.map +1 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +3 -3
  43. package/dist/index.js.map +1 -1
  44. package/dist/lazy-sessions.d.ts.map +1 -1
  45. package/dist/lazy-sessions.js +3 -4
  46. package/dist/lazy-sessions.js.map +1 -1
  47. package/dist/remote/broadcast.d.ts +4 -3
  48. package/dist/remote/broadcast.d.ts.map +1 -1
  49. package/dist/remote/broadcast.js +4 -3
  50. package/dist/remote/broadcast.js.map +1 -1
  51. package/dist/remote/session-close-endpoint.d.ts.map +1 -1
  52. package/dist/remote/session-close-endpoint.js +15 -0
  53. package/dist/remote/session-close-endpoint.js.map +1 -1
  54. package/dist/tasks-index.d.ts +3 -2
  55. package/dist/tasks-index.d.ts.map +1 -1
  56. package/dist/tasks-index.js +6 -11
  57. package/dist/tasks-index.js.map +1 -1
  58. package/dist/utils.d.ts +18 -1
  59. package/dist/utils.d.ts.map +1 -1
  60. package/dist/utils.js +28 -2
  61. package/dist/utils.js.map +1 -1
  62. package/package.json +2 -2
package/README.md CHANGED
@@ -124,21 +124,24 @@ most setups need no `ZCODE_BIN` at all — set it only for custom installs:
124
124
 
125
125
  ## Environment variables
126
126
 
127
- | Variable | Default | Purpose |
128
- | ---------------------------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
129
- | `ZCODE_BIN` | _(auto-discovered)_ | Path to the ZCode CLI binary or its `.cjs` entry. Resolution order: this variable → `zcode` on `PATH` → the desktop-app bundle |
130
- | `ZCODE_NODE` | _(discovered)_ | Explicit Node binary to run `ZCODE_BIN` with (must support `node:sqlite`) |
131
- | `ZCODE_MODEL` | _(from config)_ | Override the active model id |
132
- | `ZCODE_BASE_URL` | _(from config)_ | Override the provider base URL |
133
- | `ZCODE_ACP_AUTO_COMPACT_THRESHOLD` | _(unset)_ | Absolute token count that triggers automatic context compaction. After each successful turn (`end_turn`), if `contextUsed >= threshold`, the server invokes `session/compact` to free up context before the next prompt. Set to `0` or leave unset to disable (default). Example: `240000` triggers compaction at 240K tokens. The compaction target itself is decided by the ZCode backend. |
134
- | `ZCODE_ACP_DEBUG` | _(unset)_ | Set to `1` to enable verbose diagnostic logs (event flow, probe loops, status updates). Default is quiet — only warnings (backend pipe errors, command/permission failures, lock timeouts) are emitted. Enable this when diagnosing bridge issues; the logs appear in `Zed.log` prefixed with `[zcode-acp]`. |
135
- | `ZCODE_ACP_REMOTE` | _(unset)_ | Set to `1` to enable [remote access](#remote-access) — serve the same sessions to additional ACP clients over WebSocket. |
136
- | `ZCODE_ACP_REMOTE_TOKEN` | _(unset)_ | Auth token for remote access. **Mandatory** when `ZCODE_ACP_REMOTE=1`; remote stays disabled without it. |
137
- | `ZCODE_ACP_HUB_PORT` | `8377` | Port of the machine-level hub daemon. Map exactly this one port in your tunnel. |
138
- | `ZCODE_ACP_HUB_HOST` | `127.0.0.1` | Hub bind address. `0.0.0.0` exposes a token-only, unencrypted surface — only for a containerized tunnel agent on a private interface (see [Remote Access](#remote-access)). |
139
- | `ZCODE_ACP_REMOTE_PORT` | `8378` | First loopback port for the bridge's ACP endpoint. Each bridge (each editor window) auto-increments to the next free port. |
140
- | `ZCODE_ACP_SANDBOX` | _(unset)_ | Set to `1` to confine the agent's file writes with a macOS Seatbelt sandbox globally; per-project, set `"enabled": true` in `<workspace>/.zcode/acp/sandbox.json` instead (see [Sandbox](#sandbox)). |
141
- | `ZCODE_ACP_LANG` | _(inherited)_ | Language of the bridge's user-facing strings (popups, status/hint lines, command menu descriptions): `zh` or `en`. When unset, the bridge inherits the ZCode app's language (`localePreference`/`locale` in `~/.zcode/v2/setting.json`), then falls back to the `LC_ALL`/`LC_MESSAGES`/`LANG` locale, defaulting to English. |
127
+ | Variable | Default | Purpose |
128
+ | ---------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
129
+ | `ZCODE_BIN` | _(auto-discovered)_ | Path to the ZCode CLI binary or its `.cjs` entry. Resolution order: this variable → `zcode` on `PATH` → the desktop-app bundle |
130
+ | `ZCODE_NODE` | _(discovered)_ | Explicit Node binary to run `ZCODE_BIN` with (must support `node:sqlite`) |
131
+ | `ZCODE_PROVIDER` | _(first enabled)_ | Pin the provider id from `config.json` (e.g. `builtin:zai-coding-plan`). Credentials are read from that provider only, and the model dropdown lists only its models. Unset keeps the default "first enabled provider wins". Set together with `ZCODE_MODEL` to pin the exact model: each new session is switched to `ZCODE_PROVIDER`/`ZCODE_MODEL` right after it is created, and session creation fails if the backend refuses that pair. |
132
+ | `ZCODE_HOME` | `~/.zcode` | Directory that replaces `~/.zcode` as the ZCode data root. Everything the bridge reads from there follows it: credentials/provider config (`<dir>/v2/config.json`), the lazy-session alias store (`<dir>/v2/acp-lazy-sessions.json`), the desktop app's settings and tasks index (`<dir>/v2/setting.json`, `<dir>/v2/tasks-index.sqlite`), user skills (`<dir>/skills`), and the CLI config with plugin/skill/MCP enablement (`<dir>/cli/config.json` + plugin cache). Set it before starting the bridge — the credentials and tasks-index paths are resolved once at startup. |
133
+ | `ZCODE_MODEL` | _(from config)_ | Override the active model id |
134
+ | `ZCODE_BASE_URL` | _(from config)_ | Override the provider base URL |
135
+ | `ZCODE_ACP_AUTO_COMPACT_THRESHOLD` | _(unset)_ | Absolute token count that triggers automatic context compaction. After each successful turn (`end_turn`), if `contextUsed >= threshold`, the server invokes `session/compact` to free up context before the next prompt. Set to `0` or leave unset to disable (default). Example: `240000` triggers compaction at 240K tokens. The compaction target itself is decided by the ZCode backend. |
136
+ | `ZCODE_ACP_MODE` | `yolo` | Mode a newly created session starts in. Values are the backend's own modes — `plan`, `build`, `edit`, `yolo`, `auto`. Unset keeps `yolo` (unrestricted), the bridge's historical default. Only affects session creation; the mode dropdown still switches it per session. |
137
+ | `ZCODE_ACP_DEBUG` | _(unset)_ | Set to `1` to enable verbose diagnostic logs (event flow, probe loops, status updates). Default is quiet — only warnings (backend pipe errors, command/permission failures, lock timeouts) are emitted. Enable this when diagnosing bridge issues; the logs appear in `Zed.log` prefixed with `[zcode-acp]`. |
138
+ | `ZCODE_ACP_REMOTE` | _(unset)_ | Set to `1` to enable [remote access](#remote-access) — serve the same sessions to additional ACP clients over WebSocket. |
139
+ | `ZCODE_ACP_REMOTE_TOKEN` | _(unset)_ | Auth token for remote access. **Mandatory** when `ZCODE_ACP_REMOTE=1`; remote stays disabled without it. |
140
+ | `ZCODE_ACP_HUB_PORT` | `8377` | Port of the machine-level hub daemon. Map exactly this one port in your tunnel. |
141
+ | `ZCODE_ACP_HUB_HOST` | `127.0.0.1` | Hub bind address. `0.0.0.0` exposes a token-only, unencrypted surface — only for a containerized tunnel agent on a private interface (see [Remote Access](#remote-access)). |
142
+ | `ZCODE_ACP_REMOTE_PORT` | `8378` | First loopback port for the bridge's ACP endpoint. Each bridge (each editor window) auto-increments to the next free port. |
143
+ | `ZCODE_ACP_SANDBOX` | _(unset)_ | Set to `1` to confine the agent's file writes with a macOS Seatbelt sandbox globally; per-project, set `"enabled": true` in `<workspace>/.zcode/acp/sandbox.json` instead (see [Sandbox](#sandbox)). |
144
+ | `ZCODE_ACP_LANG` | _(inherited)_ | Language of the bridge's user-facing strings (popups, status/hint lines, command menu descriptions): `zh` or `en`. When unset, the bridge inherits the ZCode app's language (`localePreference`/`locale` in `~/.zcode/v2/setting.json`), then falls back to the `LC_ALL`/`LC_MESSAGES`/`LANG` locale, defaulting to English. |
142
145
 
143
146
  ## Sandbox
144
147
 
@@ -239,7 +242,7 @@ Thanks to everyone who has contributed (updated automatically from the
239
242
  <a href="https://github.com/william0wang/zcode-acp/graphs/contributors">
240
243
  <!-- release-please re-stamps &v= on every release: the new URL busts the
241
244
  contrib.rocks and GitHub camo image caches. -->
242
- <img src="https://contrib.rocks/image?repo=william0wang/zcode-acp&v=0.38.0" alt="Contributors" /> <!-- x-release-please-version -->
245
+ <img src="https://contrib.rocks/image?repo=william0wang/zcode-acp&v=0.40.0" alt="Contributors" /> <!-- x-release-please-version -->
243
246
  </a>
244
247
 
245
248
  ## Related Projects
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/backend/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmBH,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,IAAI,gBAAgB,CAoBvD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAuB5E"}
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/backend/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmBH,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,IAAI,gBAAgB,CAuBvD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAuB5E"}
@@ -15,8 +15,11 @@ import { log, ZCODE_CREDS_PATH } from "../utils.js";
15
15
  export function loadZcodeCredentials() {
16
16
  try {
17
17
  const cfg = JSON.parse(readFileSync(ZCODE_CREDS_PATH, "utf8"));
18
- for (const [, p] of Object.entries(cfg.provider ?? {})) {
19
- if (p?.enabled) {
18
+ // ZCODE_PROVIDER pins the provider by id; unset keeps the historical
19
+ // "first enabled provider wins" behaviour.
20
+ const pinned = process.env.ZCODE_PROVIDER;
21
+ for (const [providerId, p] of Object.entries(cfg.provider ?? {})) {
22
+ if (p?.enabled && (!pinned || providerId === pinned)) {
20
23
  const opts = p.options ?? {};
21
24
  const models = p.models ?? {};
22
25
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/backend/credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/backend/credentials.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  {
2
- "fingerprint": "fd0ae883aaf9a0cd774cd882dfcd879741e440f88f6faccbd9273ad881057eff",
2
+ "fingerprint": "edbef08ab6bb63e409cb3bb52e41b12a3e4c301a67a74a5823293f6594683ca1",
3
3
  "fileCount": 76
4
4
  }
@@ -3,9 +3,12 @@
3
3
  * ZCode uses, so `/mcp` can show users exactly which servers are available.
4
4
  *
5
5
  * Sources:
6
- * 1. ~/.zcode/cli/config.json → mcp.servers (user-configured)
6
+ * 1. <zcode-home>/cli/config.json → mcp.servers (user-configured)
7
7
  * 2. Enabled plugin .mcp.json files (two formats: flat and nested)
8
8
  *
9
+ * `<zcode-home>` is the ZCode data root (`~/.zcode`, or `$ZCODE_HOME` when
10
+ * set — see `zcodeHomeDir()`).
11
+ *
9
12
  * The ZCode backend loads these automatically and exposes their tools to the
10
13
  * model. This module is purely informational — it lists what's configured so
11
14
  * users know what's available without needing the TUI.
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-discovery.d.ts","sourceRoot":"","sources":["../../src/config/mcp-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,iDAAiD;AACjD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAsBD;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,aAAa,EAAE,CAmFhD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CA4BjE"}
1
+ {"version":3,"file":"mcp-discovery.d.ts","sourceRoot":"","sources":["../../src/config/mcp-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,iDAAiD;AACjD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAkBD;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,aAAa,EAAE,CAoFhD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CA4BjE"}
@@ -3,21 +3,20 @@
3
3
  * ZCode uses, so `/mcp` can show users exactly which servers are available.
4
4
  *
5
5
  * Sources:
6
- * 1. ~/.zcode/cli/config.json → mcp.servers (user-configured)
6
+ * 1. <zcode-home>/cli/config.json → mcp.servers (user-configured)
7
7
  * 2. Enabled plugin .mcp.json files (two formats: flat and nested)
8
8
  *
9
+ * `<zcode-home>` is the ZCode data root (`~/.zcode`, or `$ZCODE_HOME` when
10
+ * set — see `zcodeHomeDir()`).
11
+ *
9
12
  * The ZCode backend loads these automatically and exposes their tools to the
10
13
  * model. This module is purely informational — it lists what's configured so
11
14
  * users know what's available without needing the TUI.
12
15
  */
13
16
  import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
14
- import { homedir } from "node:os";
15
17
  import path from "node:path";
16
18
  import { messages } from "../i18n.js";
17
- import { compareVersions, log } from "../utils.js";
18
- const HOME = homedir();
19
- const CLI_CONFIG_PATH = path.join(HOME, ".zcode", "cli", "config.json");
20
- const PLUGIN_CACHE_DIR = path.join(HOME, ".zcode", "cli", "plugins", "cache");
19
+ import { compareVersions, log, zcodeCliConfigPath, zcodePluginCacheDir } from "../utils.js";
21
20
  /**
22
21
  * Discover all MCP servers from config.json and enabled plugins.
23
22
  *
@@ -27,8 +26,9 @@ export function loadMcpServers() {
27
26
  const results = [];
28
27
  let config = null;
29
28
  try {
30
- if (existsSync(CLI_CONFIG_PATH)) {
31
- config = JSON.parse(readFileSync(CLI_CONFIG_PATH, "utf8"));
29
+ const cliConfigPath = zcodeCliConfigPath();
30
+ if (existsSync(cliConfigPath)) {
31
+ config = JSON.parse(readFileSync(cliConfigPath, "utf8"));
32
32
  }
33
33
  }
34
34
  catch (e) {
@@ -57,7 +57,7 @@ export function loadMcpServers() {
57
57
  continue;
58
58
  const pluginName = pluginKey.slice(0, atIdx);
59
59
  const marketplace = pluginKey.slice(atIdx + 1);
60
- const pluginDir = path.join(PLUGIN_CACHE_DIR, marketplace, pluginName);
60
+ const pluginDir = path.join(zcodePluginCacheDir(), marketplace, pluginName);
61
61
  if (!existsSync(pluginDir))
62
62
  continue;
63
63
  // Find the latest version directory.
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-discovery.js","sourceRoot":"","sources":["../../src/config/mcp-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-discovery.js","sourceRoot":"","sources":["../../src/config/mcp-discovery.ts"],"names":[],"mappings":"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"}
@@ -103,15 +103,29 @@ export declare function setConfigOption(server: ZcodeAcpServer, zcodeSid: string
103
103
  currentValue: string;
104
104
  } | null>;
105
105
  /** Emit a config_option_update (+ current_mode_update for mode) after a change.
106
- * Returns the rebuilt options so the caller can include them in the response.
106
+ * Returns the rebuilt options (+ the advertised currentModeId for mode) so the
107
+ * caller can include them in the response / mirror lastMode.
107
108
  *
108
- * Every payload is ALSO broadcast to the other attached clients (the CLI
109
- * window when the switch came from the phone, and vice versa) — a settings
110
- * change is per-session state, not per-connection.
109
+ * Every payload reaches EVERY attached client (the CLI window when the switch
110
+ * came from the phone, and vice versa) — a settings change is per-session
111
+ * state, not per-connection. Two shapes: a broadcast-proxy cx fans out to all
112
+ * clients by itself, so the update is sent once PER SESSION ALIAS through it
113
+ * (clients route by payload sessionId and drop ids they don't hold — a
114
+ * client holding the conversation under another acpSid must still receive
115
+ * it); a real per-connection cx sends to the initiator and then the rest via
116
+ * sendSessionUpdateToOthers (which loops the aliases for the others). No
117
+ * "others" leg on the proxy: it has no connectionContext to exclude anyone
118
+ * by, so the leg would double-deliver.
119
+ *
120
+ * Sends are best-effort: a dead initiator connection must not skip the
121
+ * broadcast or fail the handler — the switch already succeeded backend-side.
111
122
  *
112
123
  * For model switches, also emit a usage_update with the NEW model's context
113
124
  * window (from config.json) so the editor's context bar refreshes immediately
114
125
  * instead of waiting for the next turn's UsageDelta. */
115
- export declare function emitConfigOptionUpdate(server: ZcodeAcpServer, cx: acp.AgentContext, acpSid: string, zcodeSid: string, kind: "model" | "mode" | "thought"): Promise<acp.SessionConfigOption[]>;
126
+ export declare function emitConfigOptionUpdate(server: ZcodeAcpServer, cx: acp.AgentContext, acpSid: string, zcodeSid: string, kind: "model" | "mode" | "thought"): Promise<{
127
+ options: acp.SessionConfigOption[];
128
+ currentModeId?: string;
129
+ }>;
116
130
  export {};
117
131
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/config/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/config/options.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,8 @@
10
10
  * reflects the new state.
11
11
  */
12
12
  import { readFileSync } from "node:fs";
13
- import { clientConnectionRoot, CONFIG_DISPATCH, CONFIG_META, log, ZCODE_CREDS_PATH, } from "../utils.js";
14
- import { sendSessionUpdate, sendSessionUpdateToOthers } from "../handlers/io.js";
13
+ import { clientConnectionRoot, CONFIG_DISPATCH, CONFIG_META, log, warn, ZCODE_CREDS_PATH, } from "../utils.js";
14
+ import { isBroadcastSource, sendSessionUpdate, sendSessionUpdateToOthers } from "../handlers/io.js";
15
15
  /** Read the config.json contents (UTF-8). Throws on read/parse failure. */
16
16
  function readConfig() {
17
17
  return JSON.parse(readFileSync(ZCODE_CREDS_PATH, "utf8"));
@@ -68,7 +68,11 @@ export function loadAllModels() {
68
68
  try {
69
69
  const cfg = readConfig();
70
70
  const out = [];
71
+ // ZCODE_PROVIDER pins the dropdown to one provider id.
72
+ const pinned = process.env.ZCODE_PROVIDER;
71
73
  for (const [pid, p] of Object.entries(cfg.provider ?? {})) {
74
+ if (pinned && pid !== pinned)
75
+ continue;
72
76
  if (!providerSelectable(pid, p))
73
77
  continue;
74
78
  const providerName = p.name ?? pid;
@@ -407,31 +411,52 @@ export async function setConfigOption(server, zcodeSid, configId, value) {
407
411
  return { kind: configId, currentValue: value };
408
412
  }
409
413
  /** Emit a config_option_update (+ current_mode_update for mode) after a change.
410
- * Returns the rebuilt options so the caller can include them in the response.
414
+ * Returns the rebuilt options (+ the advertised currentModeId for mode) so the
415
+ * caller can include them in the response / mirror lastMode.
416
+ *
417
+ * Every payload reaches EVERY attached client (the CLI window when the switch
418
+ * came from the phone, and vice versa) — a settings change is per-session
419
+ * state, not per-connection. Two shapes: a broadcast-proxy cx fans out to all
420
+ * clients by itself, so the update is sent once PER SESSION ALIAS through it
421
+ * (clients route by payload sessionId and drop ids they don't hold — a
422
+ * client holding the conversation under another acpSid must still receive
423
+ * it); a real per-connection cx sends to the initiator and then the rest via
424
+ * sendSessionUpdateToOthers (which loops the aliases for the others). No
425
+ * "others" leg on the proxy: it has no connectionContext to exclude anyone
426
+ * by, so the leg would double-deliver.
411
427
  *
412
- * Every payload is ALSO broadcast to the other attached clients (the CLI
413
- * window when the switch came from the phone, and vice versa) — a settings
414
- * change is per-session state, not per-connection.
428
+ * Sends are best-effort: a dead initiator connection must not skip the
429
+ * broadcast or fail the handler — the switch already succeeded backend-side.
415
430
  *
416
431
  * For model switches, also emit a usage_update with the NEW model's context
417
432
  * window (from config.json) so the editor's context bar refreshes immediately
418
433
  * instead of waiting for the next turn's UsageDelta. */
419
434
  export async function emitConfigOptionUpdate(server, cx, acpSid, zcodeSid, kind) {
420
435
  const options = await buildConfigOptions(server, zcodeSid, clientConnectionRoot(cx));
436
+ const broadcastSource = isBroadcastSource(cx);
437
+ const send = (update) => {
438
+ if (broadcastSource) {
439
+ return Promise.all(server.sessionAliases(acpSid).map((sid) => sendSessionUpdate(cx, sid, update))).then(() => undefined);
440
+ }
441
+ return sendSessionUpdate(cx, acpSid, update)
442
+ .then(() => sendSessionUpdateToOthers(server, cx, acpSid, update))
443
+ .catch((e) => {
444
+ warn(`options: config update send failed (sid=${acpSid}): ${e instanceof Error ? e.message : String(e)}`);
445
+ });
446
+ };
421
447
  const configUpdate = {
422
448
  sessionUpdate: "config_option_update",
423
449
  configOptions: options,
424
450
  };
425
- await sendSessionUpdate(cx, acpSid, configUpdate);
426
- sendSessionUpdateToOthers(server, cx, acpSid, configUpdate);
451
+ await send(configUpdate);
452
+ let currentModeId;
427
453
  if (kind === "mode") {
428
454
  const modes = await buildModes(server, zcodeSid);
429
- const modeUpdate = {
455
+ currentModeId = modes.currentModeId;
456
+ await send({
430
457
  sessionUpdate: "current_mode_update",
431
458
  currentModeId: modes.currentModeId,
432
- };
433
- await sendSessionUpdate(cx, acpSid, modeUpdate);
434
- sendSessionUpdateToOthers(server, cx, acpSid, modeUpdate);
459
+ });
435
460
  }
436
461
  if (kind === "model") {
437
462
  // Refresh the context bar: the backend's projection.contextWindow lags
@@ -444,19 +469,17 @@ export async function emitConfigOptionUpdate(server, cx, acpSid, zcodeSid, kind)
444
469
  const modelOpt = options.find((o) => o.id === "model");
445
470
  const { providerId, modelId } = parseModelValue(String(modelOpt?.currentValue ?? ""));
446
471
  const size = modelContextWindow(providerId, modelId);
447
- const usageUpdate = {
472
+ await send({
448
473
  sessionUpdate: "usage_update",
449
474
  used,
450
475
  size,
451
- };
452
- await sendSessionUpdate(cx, acpSid, usageUpdate);
453
- sendSessionUpdateToOthers(server, cx, acpSid, usageUpdate);
476
+ });
454
477
  }
455
478
  catch (e) {
456
479
  log(`options: usage_update after model switch failed (${e instanceof Error ? e.message : String(e)})`);
457
480
  }
458
481
  }
459
- return options;
482
+ return { options, ...(currentModeId !== undefined ? { currentModeId } : {}) };
460
483
  }
461
484
  // ---------- helpers ----------
462
485
  async function sessionRead(server, zcodeSid) {
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/config/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/config/options.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
1
  /**
2
- * Plugin command discovery — reads enabled plugins from `~/.zcode/cli/config.json`
3
- * and scans their `commands/*.md` frontmatter to build slash-command entries.
2
+ * Plugin command discovery — reads enabled plugins from the ZCode CLI config
3
+ * (`<zcode-home>/cli/config.json`) and scans their `commands/*.md` frontmatter
4
+ * to build slash-command entries.
4
5
  *
5
- * Plugin commands (e.g. `/code-review`) are resolved by the ZCode backend's
6
- * `customCommandPromptResolver` before the model sees them, so they work in
7
- * app-server mode without bridge interception.
6
+ * `<zcode-home>` is the ZCode data root (`~/.zcode`, or `$ZCODE_HOME` when
7
+ * set — see `zcodeHomeDir()`). Plugin commands (e.g. `/code-review`) are
8
+ * resolved by the ZCode backend's `customCommandPromptResolver` before the
9
+ * model sees them, so they work in app-server mode without bridge
10
+ * interception.
8
11
  */
9
12
  /** A slash-command entry compatible with `sendAvailableCommands`. */
10
13
  export interface PluginCommandEntry {
@@ -15,8 +18,8 @@ export interface PluginCommandEntry {
15
18
  };
16
19
  }
17
20
  /**
18
- * Read enabled plugin commands from `~/.zcode/cli/config.json` + the plugin
19
- * cache directory. Returns entries suitable for `available_commands_update`.
21
+ * Read enabled plugin commands from the CLI config + the plugin cache
22
+ * directory. Returns entries suitable for `available_commands_update`.
20
23
  *
21
24
  * Best-effort: failures are logged and swallowed (returns []).
22
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-commands.d.ts","sourceRoot":"","sources":["../../src/config/plugin-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyBH,qEAAqE;AACrE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1B;AA+BD;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,EAAE,CAyDzD"}
1
+ {"version":3,"file":"plugin-commands.d.ts","sourceRoot":"","sources":["../../src/config/plugin-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,qEAAqE;AACrE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1B;AA4BD;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,EAAE,CAyDzD"}
@@ -1,19 +1,17 @@
1
1
  /**
2
- * Plugin command discovery — reads enabled plugins from `~/.zcode/cli/config.json`
3
- * and scans their `commands/*.md` frontmatter to build slash-command entries.
2
+ * Plugin command discovery — reads enabled plugins from the ZCode CLI config
3
+ * (`<zcode-home>/cli/config.json`) and scans their `commands/*.md` frontmatter
4
+ * to build slash-command entries.
4
5
  *
5
- * Plugin commands (e.g. `/code-review`) are resolved by the ZCode backend's
6
- * `customCommandPromptResolver` before the model sees them, so they work in
7
- * app-server mode without bridge interception.
6
+ * `<zcode-home>` is the ZCode data root (`~/.zcode`, or `$ZCODE_HOME` when
7
+ * set — see `zcodeHomeDir()`). Plugin commands (e.g. `/code-review`) are
8
+ * resolved by the ZCode backend's `customCommandPromptResolver` before the
9
+ * model sees them, so they work in app-server mode without bridge
10
+ * interception.
8
11
  */
9
12
  import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
10
- import { homedir } from "node:os";
11
13
  import path from "node:path";
12
- import { compareVersions, log } from "../utils.js";
13
- /** Path to the ZCode CLI config (plugins, skills, mcp). */
14
- const CLI_CONFIG_PATH = path.join(homedir(), ".zcode", "cli", "config.json");
15
- /** Root of the plugin cache directory. */
16
- const PLUGIN_CACHE_DIR = path.join(homedir(), ".zcode", "cli", "plugins", "cache");
14
+ import { compareVersions, log, zcodeCliConfigPath, zcodePluginCacheDir } from "../utils.js";
17
15
  /** Parse YAML-like frontmatter from a plugin command .md file. */
18
16
  function parseFrontmatter(content) {
19
17
  const fm = {};
@@ -28,8 +26,7 @@ function parseFrontmatter(content) {
28
26
  const key = line.slice(0, idx).trim();
29
27
  // Strip surrounding quotes from the value (YAML scalar style).
30
28
  let val = line.slice(idx + 1).trim();
31
- if ((val.startsWith('"') && val.endsWith('"')) ||
32
- (val.startsWith("'") && val.endsWith("'"))) {
29
+ if ((val.startsWith('"') && val.endsWith('"')) || (val.startsWith("'") && val.endsWith("'"))) {
33
30
  val = val.slice(1, -1);
34
31
  }
35
32
  if (key)
@@ -38,16 +35,18 @@ function parseFrontmatter(content) {
38
35
  return fm;
39
36
  }
40
37
  /**
41
- * Read enabled plugin commands from `~/.zcode/cli/config.json` + the plugin
42
- * cache directory. Returns entries suitable for `available_commands_update`.
38
+ * Read enabled plugin commands from the CLI config + the plugin cache
39
+ * directory. Returns entries suitable for `available_commands_update`.
43
40
  *
44
41
  * Best-effort: failures are logged and swallowed (returns []).
45
42
  */
46
43
  export function loadPluginCommands() {
47
- if (!existsSync(CLI_CONFIG_PATH) || !existsSync(PLUGIN_CACHE_DIR))
44
+ const cliConfigPath = zcodeCliConfigPath();
45
+ const pluginCacheDir = zcodePluginCacheDir();
46
+ if (!existsSync(cliConfigPath) || !existsSync(pluginCacheDir))
48
47
  return [];
49
48
  try {
50
- const cfg = JSON.parse(readFileSync(CLI_CONFIG_PATH, "utf8"));
49
+ const cfg = JSON.parse(readFileSync(cliConfigPath, "utf8"));
51
50
  const enabled = cfg.plugins?.enabledPlugins ?? {};
52
51
  const entries = [];
53
52
  // enabledPlugins keys are "pluginName@marketplace"
@@ -60,7 +59,7 @@ export function loadPluginCommands() {
60
59
  const pluginName = pluginKey.slice(0, atIdx);
61
60
  const marketplace = pluginKey.slice(atIdx + 1);
62
61
  // Scan all versions of this plugin in the cache (use latest found).
63
- const marketDir = path.join(PLUGIN_CACHE_DIR, marketplace);
62
+ const marketDir = path.join(pluginCacheDir, marketplace);
64
63
  if (!existsSync(marketDir))
65
64
  continue;
66
65
  const pluginDir = path.join(marketDir, pluginName);
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-commands.js","sourceRoot":"","sources":["../../src/config/plugin-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-commands.js","sourceRoot":"","sources":["../../src/config/plugin-commands.ts"],"names":[],"mappings":"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"}
@@ -9,13 +9,15 @@
9
9
  * and passes the text through.
10
10
  *
11
11
  * Discovery sources (in priority order — first occurrence wins on name clash):
12
- * 1. ~/.zcode/skills/&#42;/SKILL.md (user scope, ZCode native)
12
+ * 1. <zcode-home>/skills/&#42;/SKILL.md (user scope, ZCode native)
13
13
  * 2. ~/.agents/skills/&#42;/SKILL.md (user scope, shared agents)
14
14
  * 3. enabled plugin <cache>/skills/&#42;/SKILL.md
15
15
  * 4. <cwd>/.agents/skills/&#42;/SKILL.md (project scope)
16
16
  *
17
- * Skills explicitly disabled in `~/.zcode/cli/config.json` (skills map with
18
- * `enable: false`, keyed by absolute SKILL.md path) are excluded.
17
+ * `<zcode-home>` is the ZCode data root (`~/.zcode`, or `$ZCODE_HOME` when
18
+ * set — see `zcodeHomeDir()`). Skills explicitly disabled in
19
+ * `<zcode-home>/cli/config.json` (skills map with `enable: false`, keyed by
20
+ * absolute SKILL.md path) are excluded.
19
21
  */
20
22
  /** A slash-command entry compatible with `sendAvailableCommands`. */
21
23
  export interface SkillEntry {