zcode-acp-server 0.42.2 → 0.42.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/backend/types.d.ts +30 -0
- package/dist/backend/types.d.ts.map +1 -1
- package/dist/code-fingerprint.json +2 -2
- package/dist/config/account-provider.d.ts +67 -0
- package/dist/config/account-provider.d.ts.map +1 -0
- package/dist/config/account-provider.js +250 -0
- package/dist/config/account-provider.js.map +1 -0
- package/dist/config/options.d.ts +5 -1
- package/dist/config/options.d.ts.map +1 -1
- package/dist/config/options.js +15 -7
- package/dist/config/options.js.map +1 -1
- package/dist/config/runtime-model.d.ts +12 -8
- package/dist/config/runtime-model.d.ts.map +1 -1
- package/dist/config/runtime-model.js +84 -22
- package/dist/config/runtime-model.js.map +1 -1
- package/dist/handlers/session.d.ts.map +1 -1
- package/dist/handlers/session.js +26 -1
- package/dist/handlers/session.js.map +1 -1
- package/dist/server.d.ts +13 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +9 -0
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
* it the turn fails with `provider_not_configured` before auth is even tried.
|
|
26
26
|
* See provider-registry.ts.
|
|
27
27
|
*/
|
|
28
|
+
import { accountProviderIdFor } from "./account-provider.js";
|
|
28
29
|
import { buildModelElement } from "./provider-registry.js";
|
|
29
30
|
import { findProviderConfig, formatModelValue, isBuiltinProvider, loadAllModels, parseModelValue, } from "./options.js";
|
|
30
31
|
import { log, warn } from "../utils.js";
|
|
@@ -100,36 +101,97 @@ export function buildResumeRuntimeModel() {
|
|
|
100
101
|
* `value` is the configOption value: either `"providerId\modelId"` (encoded) or
|
|
101
102
|
* a legacy plain modelId (resolved to the first enabled builtin provider).
|
|
102
103
|
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
104
|
+
* 3.12+ schema (verified 2026-09 against the bare app-server): the body is
|
|
105
|
+
* `{sessionId, model: {providerId, modelId, options?}, persistAsWorkspaceLastUsed}`
|
|
106
|
+
* — STRICT. The old `runtimeModel` overlay is gone (`Unrecognized key`), and
|
|
107
|
+
* the object form REQUIRES `options.reasoningLevel` for models that declare
|
|
108
|
+
* levels ("Reasoning level is required for <p>/<m>"; a bare string form skips
|
|
109
|
+
* that check but cannot carry the level). We therefore send the target model's
|
|
110
|
+
* own default level, read from the account/registry entry when we have it, and
|
|
111
|
+
* fall back to omitting `options` for level-less models.
|
|
108
112
|
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
113
|
+
* Provider ids are translated to the registry's own spelling: config.json says
|
|
114
|
+
* `builtin:bigmodel-coding-plan` while the registry exposes
|
|
115
|
+
* `account:bigmodel-individual-coding-plan` (see account-provider.ts). An
|
|
116
|
+
* untranslated id fails with "Provider Registry 中不存在 Model".
|
|
112
117
|
*/
|
|
113
118
|
export async function applyModelSwitch(server, zcodeSid, value) {
|
|
114
119
|
const { providerId, modelId } = parseModelValue(value);
|
|
120
|
+
const backend = server.ensureBackend();
|
|
121
|
+
const registryProviderId = accountProviderIdFor(providerId);
|
|
122
|
+
const model = { providerId: registryProviderId, modelId };
|
|
123
|
+
// The object form requires the level for level-bearing models; resolve the
|
|
124
|
+
// target's authoritative default from the captured create snapshot.
|
|
125
|
+
const level = resolveDefaultReasoningLevel(server, zcodeSid, registryProviderId, modelId);
|
|
126
|
+
if (level)
|
|
127
|
+
model.options = { reasoningLevel: level };
|
|
128
|
+
// 3.12+ shape first: `{sessionId, model:{providerId, modelId, options?},
|
|
129
|
+
// persistAsWorkspaceLastUsed}`. `session/setModel` is strict in every build
|
|
130
|
+
// we know, so an OLDER app-server answers `Unrecognized key: "options"` (it
|
|
131
|
+
// predates `options`) or rejects a level-bearing model for the missing
|
|
132
|
+
// overlay. Both are schema drift, not a bad target — fall back to the legacy
|
|
133
|
+
// shape once (bare model ref + the `runtimeModel` provider overlay) so the
|
|
134
|
+
// same bridge works against either build.
|
|
135
|
+
const modern = await backend.request(server.nextId(), "session/setModel", { sessionId: zcodeSid, model, persistAsWorkspaceLastUsed: false }, 15000);
|
|
136
|
+
if (!modern.error) {
|
|
137
|
+
invalidateModelCache(server, zcodeSid);
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
115
140
|
const runtimeModel = buildRuntimeModel({ providerId, providerName: providerId, modelId });
|
|
116
|
-
if (runtimeModel
|
|
117
|
-
|
|
141
|
+
if (runtimeModel !== null) {
|
|
142
|
+
const legacy = await backend.request(server.nextId(), "session/setModel", {
|
|
143
|
+
sessionId: zcodeSid,
|
|
144
|
+
model: { providerId, modelId },
|
|
145
|
+
runtimeModel,
|
|
146
|
+
persistAsWorkspaceLastUsed: false,
|
|
147
|
+
}, 15000);
|
|
148
|
+
if (!legacy.error) {
|
|
149
|
+
log(`runtime-model: switched via the legacy runtimeModel shape (${registryProviderId})`);
|
|
150
|
+
invalidateModelCache(server, zcodeSid);
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
warn(`runtime-model: switch failed (modern: ${modern.error.message}; legacy: ${legacy.error.message})`);
|
|
118
154
|
return false;
|
|
119
155
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
156
|
+
warn(`runtime-model: switch failed: ${modern.error.message}`);
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* The reasoning level a switch should start the model at.
|
|
161
|
+
*
|
|
162
|
+
* The object form REQUIRES a level for level-bearing models
|
|
163
|
+
* ("Reasoning level is required for <p>/<m>"), so one must be supplied. The
|
|
164
|
+
* backend's own answer is the only correct source: config.json's
|
|
165
|
+
* `reasoning.variants` go stale (observed 2026-09 — a third-party model
|
|
166
|
+
* configured `off/high/max` actually ran `low/high/max`). `session/create`'s
|
|
167
|
+
* captured availability list (server.modelAvailability) carries the
|
|
168
|
+
* authoritative `defaultLevel`; models that declare no levels yield null and
|
|
169
|
+
* callers omit `options` so they accept the switch.
|
|
170
|
+
*/
|
|
171
|
+
function resolveDefaultReasoningLevel(server, zcodeSid, providerId, modelId) {
|
|
172
|
+
const cached = server.modelAvailability.get(zcodeSid) ?? [];
|
|
173
|
+
const hit = cached.find((a) => a.providerId === providerId && a.modelId === modelId);
|
|
174
|
+
if (hit?.defaultLevel)
|
|
175
|
+
return hit.defaultLevel;
|
|
176
|
+
if (hit)
|
|
177
|
+
return null; // present but level-less — omit options
|
|
178
|
+
// Not in the captured list (a model the registry gained after create):
|
|
179
|
+
// fall back to config.json's declaration rather than sending no level.
|
|
180
|
+
try {
|
|
181
|
+
const p = findProviderConfig(providerId);
|
|
182
|
+
const entry = p?.models?.[modelId];
|
|
183
|
+
const reasoning = entry?.reasoning;
|
|
184
|
+
if (reasoning && reasoning.enabled !== false) {
|
|
185
|
+
if (reasoning.defaultVariant)
|
|
186
|
+
return reasoning.defaultVariant;
|
|
187
|
+
if (reasoning.variants?.length)
|
|
188
|
+
return reasoning.variants[0];
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
// unreadable config — omit options
|
|
130
193
|
}
|
|
131
|
-
|
|
132
|
-
return true;
|
|
194
|
+
return null;
|
|
133
195
|
}
|
|
134
196
|
/** Invalidate the session-level model cache after a switch. */
|
|
135
197
|
export function invalidateModelCache(server, zcodeSid) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-model.js","sourceRoot":"","sources":["../../src/config/runtime-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,iBAAiB,EAAmB,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,YAAY,GAAG,WAAW,CAAC;AACjC,MAAM,gBAAgB,GAAG,wCAAwC,CAAC;AAElE,oDAAoD;AACpD,SAAS,gBAAgB,CAAC,IAAwB;IAChD,IAAI,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,oBAAoB,CAAC;IAC7D,OAAO,yBAAyB,CAAC;AACnC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAa,EAAE,QAAQ,GAAG,QAAQ;IAClE,MAAM,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,4BAA4B,GAAG,CAAC,UAAU,sBAAsB,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,IAAI,gBAAgB,CAAC;IACvD,sEAAsE;IACtE,2EAA2E;IAC3E,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACjE,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAe,CAAC,CACpD,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAA4B;QACxC,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,YAAY;QAC5B,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;QACnC,OAAO;QACP,MAAM;KACP,CAAC;IACF,6EAA6E;IAC7E,wEAAwE;IACxE,mEAAmE;IACnE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC5D,QAAQ,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAClE,CAAC;IACD,OAAO;QACL,QAAQ;QACR,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;QACvB,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;QAC3D,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,GAAG,CAAC,4EAA4E,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,iBAAiB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AACnD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"runtime-model.js","sourceRoot":"","sources":["../../src/config/runtime-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/handlers/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAGV,YAAY,EAGb,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/handlers/session.ts"],"names":[],"mappings":"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"}
|
package/dist/handlers/session.js
CHANGED
|
@@ -21,6 +21,7 @@ import { buildModes, buildConfigOptions, DEFAULT_MODEL_ID, DEFAULT_PROVIDER_ID,
|
|
|
21
21
|
import { currentModelCached, emitInitialUsage } from "../config/model-cache.js";
|
|
22
22
|
import { forceRefreshQuota, scheduleQuotaDockBackstop, startQuotaRefresher, } from "../quota/live.js";
|
|
23
23
|
import { buildProviderRegistry } from "../config/provider-registry.js";
|
|
24
|
+
import { pushAccountProviderConfig } from "../config/account-provider.js";
|
|
24
25
|
import { applyModelSwitch, buildResumeRuntimeModel } from "../config/runtime-model.js";
|
|
25
26
|
import { messages } from "../i18n.js";
|
|
26
27
|
import { lookupLazySession, recordMaterializedSession, rememberLazySession, } from "../lazy-sessions.js";
|
|
@@ -105,6 +106,14 @@ function workspaceFromResumeResult(result) {
|
|
|
105
106
|
*/
|
|
106
107
|
async function syncProviderRegistry(server, cwd) {
|
|
107
108
|
try {
|
|
109
|
+
// Account-plan providers first: 3.12+ app-servers build their registry from
|
|
110
|
+
// the bundled table + personal config + an ACCOUNT snapshot the desktop
|
|
111
|
+
// host pushes (`provider/updateAccountConfig`). Headless launches have no
|
|
112
|
+
// host, so every `account:*` provider stays entitled:false and the GLM
|
|
113
|
+
// models the user's config selects never reach `settings.model.available`
|
|
114
|
+
// (verified 2026-09 — switches then fail with "Provider Registry 中不存在
|
|
115
|
+
// Model"). Pushing the snapshot restores desktop parity. Best-effort.
|
|
116
|
+
await pushAccountProviderConfig(server.ensureBackend(), () => server.nextId());
|
|
108
117
|
const registry = buildProviderRegistry();
|
|
109
118
|
if (registry.providers.length === 0) {
|
|
110
119
|
// Every configured provider lacks models (or none are configured). The
|
|
@@ -119,7 +128,14 @@ async function syncProviderRegistry(server, cwd) {
|
|
|
119
128
|
.ensureBackend()
|
|
120
129
|
.request(server.nextId(), "workspace/updateProviderRegistry", { workspace: workspaceFor(cwd), registry }, 10000);
|
|
121
130
|
if (resp.error) {
|
|
122
|
-
|
|
131
|
+
// 3.12+ removed the method (the registry is built from the bundled table,
|
|
132
|
+
// personal config, and the account snapshot) — a no-op, not a failure.
|
|
133
|
+
if (resp.error.code === -32601) {
|
|
134
|
+
log("provider-registry: backend has no workspace/updateProviderRegistry (3.12+)");
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
warn(`provider-registry: sync failed: ${resp.error.message}`);
|
|
138
|
+
}
|
|
123
139
|
return;
|
|
124
140
|
}
|
|
125
141
|
log("provider-registry: synced to backend");
|
|
@@ -484,6 +500,15 @@ export async function ensureRealSession(server, acpSid) {
|
|
|
484
500
|
const sid = session.sessionId;
|
|
485
501
|
if (!sid)
|
|
486
502
|
throw new Error("zcode create returned no sessionId");
|
|
503
|
+
const availability = (result.settings ?? {}).model;
|
|
504
|
+
const avail = availability?.available ?? [];
|
|
505
|
+
if (avail.length > 0) {
|
|
506
|
+
server.modelAvailability.set(sid, avail.map((a) => ({
|
|
507
|
+
providerId: a.ref?.providerId,
|
|
508
|
+
modelId: a.ref?.modelId,
|
|
509
|
+
defaultLevel: a.reasoning?.defaultLevel ?? a.reasoning?.levels?.[0]?.value,
|
|
510
|
+
})));
|
|
511
|
+
}
|
|
487
512
|
server.pendingSessions.delete(acpSid);
|
|
488
513
|
server.registerSession(acpSid, sid);
|
|
489
514
|
// With both ZCODE_PROVIDER and ZCODE_MODEL set, the session is pinned to
|