neoctl 0.2.58 → 0.2.60

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 (37) hide show
  1. package/dist/core/context-token-calibration.d.ts +10 -0
  2. package/dist/core/context-token-calibration.js +45 -0
  3. package/dist/core/context-token-calibration.js.map +1 -0
  4. package/dist/core/query-engine.d.ts +1 -0
  5. package/dist/core/query-engine.js +15 -3
  6. package/dist/core/query-engine.js.map +1 -1
  7. package/dist/core/query.d.ts +2 -0
  8. package/dist/core/query.js +23 -4
  9. package/dist/core/query.js.map +1 -1
  10. package/dist/model/agent-settings-boundary.js +7 -9
  11. package/dist/model/agent-settings-boundary.js.map +1 -1
  12. package/dist/model/anthropic-adapter.d.ts +5 -0
  13. package/dist/model/anthropic-adapter.js +69 -0
  14. package/dist/model/anthropic-adapter.js.map +1 -1
  15. package/dist/model/communication-logger.d.ts +2 -0
  16. package/dist/model/communication-logger.js +2 -0
  17. package/dist/model/communication-logger.js.map +1 -1
  18. package/dist/model/composition-runtime.d.ts +11 -0
  19. package/dist/model/composition-runtime.js +39 -1
  20. package/dist/model/composition-runtime.js.map +1 -1
  21. package/dist/model/model-gateway.d.ts +2 -0
  22. package/dist/model/model-gateway.js.map +1 -1
  23. package/dist/model/settings-store.d.ts +24 -4
  24. package/dist/model/settings-store.js +137 -10
  25. package/dist/model/settings-store.js.map +1 -1
  26. package/dist/model/settings-sync.d.ts +2 -1
  27. package/dist/model/settings-sync.js +4 -2
  28. package/dist/model/settings-sync.js.map +1 -1
  29. package/dist/repl/index.js +8 -7
  30. package/dist/repl/index.js.map +1 -1
  31. package/dist/types/events.d.ts +2 -0
  32. package/dist/web/html.js +1 -1
  33. package/dist/web/index.js +29 -11
  34. package/dist/web/index.js.map +1 -1
  35. package/dist/web/model-settings-api.js +4 -3
  36. package/dist/web/model-settings-api.js.map +1 -1
  37. package/package.json +1 -1
@@ -1,14 +1,22 @@
1
1
  import { type ModelProviderConfig } from "./config.js";
2
2
  import type { ReasoningEffort } from "./model-gateway.js";
3
+ export type ApiProtocol = "openai" | "anthropic";
4
+ /** models: connection allowlist; a model is served only by connections that list it. */
3
5
  export interface ApiConnection {
4
6
  id: string;
5
7
  name: string;
6
- kind: "openai" | "anthropic";
7
- protocols?: Array<"openai" | "anthropic">;
8
+ kind: ApiProtocol;
9
+ protocols?: ApiProtocol[];
8
10
  baseUrl: string;
9
11
  key: string;
12
+ models?: string[];
10
13
  }
11
14
  export interface Composition {
15
+ /** Priority list. When present, each slot uses the top-most enabled connection serving its model; slot api fields are derived. */
16
+ order?: Array<{
17
+ id: string;
18
+ enabled: boolean;
19
+ }>;
12
20
  main: {
13
21
  api: string;
14
22
  protocol?: "responses" | "messages";
@@ -52,10 +60,21 @@ export declare const defaultComposition: () => Composition;
52
60
  export declare function optionalInteger(value: unknown, label: string, min?: number): number | undefined;
53
61
  export declare function validUrl(value: unknown): string;
54
62
  export declare function connectionProtocols(a: ApiConnection): Array<"openai" | "anthropic">;
63
+ export declare const IMAGE_MODELS: string[];
64
+ /** Top-priority routing: first enabled connection that lists the model and shares a protocol with it. No failover. */
65
+ export declare function routeModel(model: string, c: Composition, connections: ApiConnection[], need?: ApiProtocol): {
66
+ connection: ApiConnection;
67
+ protocol: ApiProtocol;
68
+ } | undefined;
69
+ export declare function resolveComposition(c: Composition, connections: ApiConnection[]): Composition;
70
+ /** Legacy single-slot compositions become an explicit priority list; deterministic, so it can run on every read. */
71
+ export declare function migrateSettingsState(s: SettingsState): SettingsState;
55
72
  export declare function mainProvider(c: Composition, a: ApiConnection): "openai" | "anthropic";
56
73
  export declare function supportedEfforts(model: string, _kind?: string): ReasoningEffort[];
57
74
  export declare function validateComposition(c: Composition, connections: ApiConnection[], requireMain?: boolean): void;
58
75
  export declare function compositionModelConfig(c: Composition, connections: ApiConnection[]): ModelProviderConfig | undefined;
76
+ /** Session-level model switches reuse the main slot's transport limits on the model's own route. */
77
+ export declare function connectionModelConfig(c: Composition, a: ApiConnection, kind: ApiProtocol, model: string, main: boolean): ModelProviderConfig;
59
78
  export declare class ModelSettingsStore {
60
79
  readonly file: string;
61
80
  constructor(home?: string);
@@ -72,9 +91,10 @@ export declare class ModelSettingsStore {
72
91
  hasKey: boolean;
73
92
  id: string;
74
93
  name: string;
75
- kind: "openai" | "anthropic";
76
- protocols?: Array<"openai" | "anthropic">;
94
+ kind: ApiProtocol;
95
+ protocols?: ApiProtocol[];
77
96
  baseUrl: string;
97
+ models?: string[];
78
98
  }[];
79
99
  composition: Composition;
80
100
  appliedRevision: string | undefined;
@@ -25,6 +25,66 @@ export function validUrl(value) {
25
25
  return value.trim();
26
26
  }
27
27
  export function connectionProtocols(a) { return a.protocols ?? [a.kind]; }
28
+ export const IMAGE_MODELS = ["gpt-image-2.5-sunburst", "gpt-image-2.5-flare", "gpt-image-2"];
29
+ const normalizeId = (id) => id.trim().toLowerCase();
30
+ function modelKeys(model) { const m = findModelMetadata(model); return new Set((m ? [m.id, ...m.modelIds] : [model]).map(normalizeId)); }
31
+ /** Top-priority routing: first enabled connection that lists the model and shares a protocol with it. No failover. */
32
+ export function routeModel(model, c, connections, need) {
33
+ if (!c.order || !model?.trim())
34
+ return undefined;
35
+ const keys = modelKeys(model), m = findModelMetadata(model);
36
+ const wanted = IMAGE_MODELS.includes(model.trim()) ? ["openai"] : m ? modelProtocols(m) : undefined;
37
+ for (const o of c.order) {
38
+ const a = o.enabled ? connections.find(x => x.id === o.id) : undefined;
39
+ if (!a || !(a.models ?? []).some(id => keys.has(normalizeId(id))))
40
+ continue;
41
+ const supported = connectionProtocols(a);
42
+ const protocol = (wanted ?? [a.kind, ...supported]).find(p => supported.includes(p) && (!need || p === need));
43
+ if (protocol)
44
+ return { connection: a, protocol };
45
+ }
46
+ return undefined;
47
+ }
48
+ export function resolveComposition(c, connections) {
49
+ if (!c.order)
50
+ return c;
51
+ const r = structuredClone(c), main = routeModel(r.main.model, r, connections);
52
+ r.main.api = main?.connection.id ?? "";
53
+ if (main)
54
+ r.main.protocol = main.protocol === "anthropic" ? "messages" : "responses";
55
+ else
56
+ delete r.main.protocol;
57
+ r.image.api = routeModel(r.image.model, r, connections, "openai")?.connection.id ?? "";
58
+ r.search.api = routeModel(r.search.model, r, connections, "openai")?.connection.id ?? "";
59
+ return r;
60
+ }
61
+ const enabledConnections = (c, connections) => (c.order ?? []).filter(o => o.enabled).flatMap(o => connections.filter(a => a.id === o.id));
62
+ /** Legacy single-slot compositions become an explicit priority list; deterministic, so it can run on every read. */
63
+ export function migrateSettingsState(s) {
64
+ if (s.composition.order)
65
+ return s;
66
+ const comps = [s.composition, s.applied?.composition].filter(Boolean);
67
+ const listed = new Map();
68
+ for (const c of comps)
69
+ for (const slot of ["main", "image", "search"])
70
+ if (c[slot].api && c[slot].model.trim())
71
+ listed.set(c[slot].api, [...new Set([...(listed.get(c[slot].api) ?? []), c[slot].model.trim()])]);
72
+ // First migration keeps the previous session model list (every library model of the connection's protocols);
73
+ // an explicit api reference always means that connection serves the referenced model.
74
+ const compatible = (a) => [...loadModelCatalog().models.filter(m => modelProtocols(m).some(p => connectionProtocols(a).includes(p))).map(m => m.id), ...(connectionProtocols(a).includes("openai") ? IMAGE_MODELS : [])];
75
+ const addModels = (a) => { a.models = [...new Map([...(a.models ?? compatible(a)), ...(listed.get(a.id) ?? [])].map(id => [normalizeId(id), id])).values()]; };
76
+ s.connections.forEach(addModels);
77
+ s.applied?.connections.forEach(addModels);
78
+ for (const c of comps) {
79
+ const used = [c.main.api, c.image.api, c.search.api];
80
+ c.order = s.connections.map(a => ({ id: a.id, enabled: used.includes(a.id) }));
81
+ if (!c.image.api)
82
+ c.image.model = "";
83
+ if (!c.search.api)
84
+ c.search.model = "";
85
+ }
86
+ return s;
87
+ }
28
88
  export function mainProvider(c, a) {
29
89
  if (c.main.protocol !== undefined && !["responses", "messages"].includes(c.main.protocol))
30
90
  throw new Error("主模型接口无效。");
@@ -40,6 +100,24 @@ export function supportedEfforts(model, _kind) {
40
100
  export function validateComposition(c, connections, requireMain = true) {
41
101
  if (!c?.main || !c.image || !c.search)
42
102
  throw new Error("能力配置不完整。");
103
+ if (c.order !== undefined) {
104
+ if (!Array.isArray(c.order) || c.order.some(o => typeof o?.id !== "string" || typeof o.enabled !== "boolean") || new Set(c.order.map(o => o.id)).size !== c.order.length)
105
+ throw new Error("API 优先级无效。");
106
+ if (c.order.some(o => !connections.some(a => a.id === o.id)))
107
+ throw new Error("API 配置不存在。");
108
+ for (const slot of ["main", "image", "search"])
109
+ if (typeof c[slot].model !== "string")
110
+ throw new Error("模型必须是字符串。");
111
+ if (requireMain && !enabledConnections(c, connections).length)
112
+ throw new Error("请至少启用一个 API。");
113
+ if (requireMain && !c.main.model.trim())
114
+ throw new Error("请选择主模型。");
115
+ const r = resolveComposition(c, connections), labels = { main: "主模型", image: "图片生成", search: "搜索" };
116
+ for (const slot of ["main", "image", "search"])
117
+ if (c[slot].model.trim() && !r[slot].api && (slot !== "main" || requireMain))
118
+ throw new Error(`${labels[slot]}:没有已启用的 API 提供模型 ${c[slot].model}。`);
119
+ c = r;
120
+ }
43
121
  const byId = (id) => connections.find(a => a.id === id);
44
122
  for (const slot of ["main", "image", "search"]) {
45
123
  const b = c[slot];
@@ -87,21 +165,33 @@ export function validateComposition(c, connections, requireMain = true) {
87
165
  validUrl(c.search.exaUrl);
88
166
  }
89
167
  export function compositionModelConfig(c, connections) {
168
+ c = resolveComposition(c, connections);
90
169
  const a = connections.find(x => x.id === c.main.api);
91
170
  if (!a || !c.main.model.trim())
92
171
  return undefined;
93
- const kind = mainProvider(c, a);
94
- return { provider: kind, apiKey: a.key, baseUrl: a.baseUrl, model: c.main.model,
95
- defaultReasoning: findModelMetadata(c.main.model)?.reasoning === false ? null : { effort: c.main.effort },
96
- defaultMaxOutputTokens: optionalInteger(c.main.tokens, "Token"), timeoutMs: optionalInteger(c.main.timeout, "超时"),
172
+ return connectionModelConfig(c, a, mainProvider(c, a), c.main.model, true);
173
+ }
174
+ /** Session-level model switches reuse the main slot's transport limits on the model's own route. */
175
+ export function connectionModelConfig(c, a, kind, model, main) {
176
+ const reasoningOff = findModelMetadata(model)?.reasoning === false;
177
+ return { provider: kind, apiKey: a.key, baseUrl: a.baseUrl, model,
178
+ defaultReasoning: reasoningOff ? null : main ? { effort: c.main.effort } : undefined,
179
+ defaultMaxOutputTokens: main ? optionalInteger(c.main.tokens, "Token") : undefined, timeoutMs: optionalInteger(c.main.timeout, "超时"),
97
180
  streamIdleTimeoutMs: optionalInteger(c.main.idle, "空闲超时"), maxRetries: optionalInteger(c.main.retries, "重试", 0),
98
181
  ...(kind === "openai" ? { openai: { endpoint: "responses" } } : {}),
99
182
  };
100
183
  }
184
+ function pendingConnections(s) {
185
+ if (!s.applied)
186
+ return true;
187
+ if (s.applied.composition.order)
188
+ return JSON.stringify(s.applied.connections) !== JSON.stringify(enabledConnections(s.applied.composition, s.connections));
189
+ return s.applied.connections.some(a => JSON.stringify(a) !== JSON.stringify(s.connections.find(b => b.id === a.id)));
190
+ }
101
191
  export class ModelSettingsStore {
102
192
  file;
103
193
  constructor(home = modelSettingsHome()) { this.file = path.join(home, "model-settings.json"); }
104
- read() { return existsSync(this.file) ? JSON.parse(readFileSync(this.file, "utf8")) : undefined; }
194
+ read() { return existsSync(this.file) ? migrateSettingsState(JSON.parse(readFileSync(this.file, "utf8"))) : undefined; }
105
195
  initialize(env = process.env) {
106
196
  const current = this.read();
107
197
  if (current)
@@ -146,7 +236,7 @@ export class ModelSettingsStore {
146
236
  composition.search.exaTool = env.EXA_MCP_TOOL_NAME || env.WEB_SEARCH_EXA_TOOL_NAME || composition.search.exaTool;
147
237
  if ((env.SEARCH_PROVIDER || env.WEB_SEARCH_PROVIDER) === "exa")
148
238
  composition.search.api = "";
149
- const state = { version: 1, revision: randomUUID(), connections, composition };
239
+ const state = migrateSettingsState({ version: 1, revision: randomUUID(), connections, composition });
150
240
  // Existing environment remains authoritative until the first explicit Apply.
151
241
  atomicJson(this.file, state);
152
242
  return state;
@@ -154,7 +244,7 @@ export class ModelSettingsStore {
154
244
  }
155
245
  mutate(revision, change) {
156
246
  return locked(this.file, () => { const s = this.read(); if (!s || s.revision !== revision)
157
- throw new Error("配置已被更新,请重新加载后保存。"); change(s); s.revision = randomUUID(); atomicJson(this.file, s); return s; });
247
+ throw new Error("配置已被更新,请重新加载后保存。"); change(s); migrateSettingsState(s); s.revision = randomUUID(); atomicJson(this.file, s); return s; });
158
248
  }
159
249
  saveConnection(revision, input) {
160
250
  return this.mutate(revision, s => {
@@ -169,7 +259,10 @@ export class ModelSettingsStore {
169
259
  const key = typeof input.key === "string" && input.key ? input.key : old?.key || "";
170
260
  if (!key.trim())
171
261
  throw new Error("请输入 API Key。");
172
- const connection = { id: old?.id || randomUUID(), name: input.name.trim(), kind: protocols.includes(input.kind) ? input.kind : protocols[0], protocols, key, baseUrl: validUrl(input.baseUrl) };
262
+ if (input.models !== undefined && (!Array.isArray(input.models) || input.models.some(id => typeof id !== "string" || !id.trim() || id.length > 256)))
263
+ throw new Error("可用模型无效。");
264
+ const models = input.models === undefined ? old?.models ?? [] : [...new Map(input.models.map(id => [normalizeId(id), id.trim()])).values()];
265
+ const connection = { id: old?.id || randomUUID(), name: input.name.trim(), kind: protocols.includes(input.kind) ? input.kind : protocols[0], protocols, key, baseUrl: validUrl(input.baseUrl), models };
173
266
  if (old)
174
267
  s.connections[s.connections.indexOf(old)] = connection;
175
268
  else
@@ -181,6 +274,21 @@ export class ModelSettingsStore {
181
274
  if (!s.connections.some(a => a.id === id))
182
275
  throw new Error("API 配置已不存在。");
183
276
  beforeDelete?.();
277
+ if (s.composition.order) {
278
+ const appliedChanged = Boolean(s.applied?.composition.order?.some(o => o.id === id && o.enabled));
279
+ for (const c of [s.composition, s.applied?.composition])
280
+ if (c?.order)
281
+ c.order = c.order.filter(o => o.id !== id);
282
+ s.connections = s.connections.filter(a => a.id !== id);
283
+ if (s.applied) {
284
+ s.applied.connections = s.applied.connections.filter(a => a.id !== id);
285
+ s.applied.composition = resolveComposition(s.applied.composition, s.applied.connections);
286
+ if (appliedChanged)
287
+ s.applied.revision = randomUUID();
288
+ }
289
+ s.composition = resolveComposition(s.composition, s.connections);
290
+ return;
291
+ }
184
292
  // Preserve an explicit empty configuration instead of reviving environment credentials on restart.
185
293
  if (!s.applied && [s.composition.main.api, s.composition.image.api, s.composition.search.api].includes(id))
186
294
  s.applied = { revision: randomUUID(), composition: structuredClone(s.composition), connections: structuredClone(s.connections) };
@@ -220,16 +328,35 @@ export class ModelSettingsStore {
220
328
  if (slot !== "main")
221
329
  c[slot].api = "";
222
330
  }
331
+ for (const a of [...s.connections, ...(s.applied?.connections ?? [])])
332
+ if (a.models)
333
+ a.models = a.models.filter(id => !wanted.has(normalizeId(id)));
334
+ if (s.applied?.composition.order)
335
+ s.applied.composition = resolveComposition(s.applied.composition, s.applied.connections);
336
+ if (s.composition.order)
337
+ s.composition = resolveComposition(s.composition, s.connections);
223
338
  if (s.applied && appliedChanged)
224
339
  s.applied.revision = randomUUID();
225
340
  });
226
341
  }
227
342
  apply(revision, c) {
228
- return this.mutate(revision, s => { validateComposition(c, s.connections); s.composition = structuredClone(c); s.applied = { revision: randomUUID(), composition: structuredClone(c), connections: structuredClone(s.connections.filter(a => [c.main.api, c.image.api, c.search.api].includes(a.id))) }; });
343
+ return this.mutate(revision, s => {
344
+ validateComposition(c, s.connections);
345
+ if (c.order) {
346
+ // Every connection must stay in the list; new ones the client did not know about stay disabled.
347
+ const order = [...c.order, ...s.connections.filter(a => !c.order.some(o => o.id === a.id)).map(a => ({ id: a.id, enabled: false }))];
348
+ const resolved = resolveComposition({ ...structuredClone(c), order }, s.connections);
349
+ s.composition = resolved;
350
+ s.applied = { revision: randomUUID(), composition: structuredClone(resolved), connections: structuredClone(enabledConnections(resolved, s.connections)) };
351
+ return;
352
+ }
353
+ s.composition = structuredClone(c);
354
+ s.applied = { revision: randomUUID(), composition: structuredClone(c), connections: structuredClone(s.connections.filter(a => [c.main.api, c.image.api, c.search.api].includes(a.id))) };
355
+ });
229
356
  }
230
357
  publicState(s = this.initialize()) {
231
358
  return { revision: s.revision, connections: s.connections.map(({ key, ...a }) => ({ ...a, hasKey: Boolean(key) })), composition: s.composition,
232
- appliedRevision: s.applied?.revision, pendingConnections: !s.applied || s.applied.connections.some(a => JSON.stringify(a) !== JSON.stringify(s.connections.find(b => b.id === a.id))), catalog: loadModelCatalog(), metadataFile: path.join(path.dirname(this.file), "model-metadata.json") };
359
+ appliedRevision: s.applied?.revision, pendingConnections: pendingConnections(s), catalog: loadModelCatalog(), metadataFile: path.join(path.dirname(this.file), "model-metadata.json") };
233
360
  }
234
361
  }
235
362
  //# sourceMappingURL=settings-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings-store.js","sourceRoot":"","sources":["../../src/model/settings-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-store.js","sourceRoot":"","sources":["../../src/model/settings-store.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,8 @@ export declare function publishModelSettings(restoreCleared?: boolean): {
25
25
  runningSessions: number;
26
26
  };
27
27
  export declare function settingsGatewayConnections(gateway: object): string[];
28
- export declare function trackSettingsGateway<T extends object>(gateway: T, revision: string | undefined, connections?: string[]): T;
28
+ /** connections may be live: a routed gateway holds whichever connection serves the session's current model. */
29
+ export declare function trackSettingsGateway<T extends object>(gateway: T, revision: string | undefined, connections?: string[] | (() => string[])): T;
29
30
  export declare function settingsGatewayRevision(gateway: object | undefined): {
30
31
  revision: string | undefined;
31
32
  } | undefined;
@@ -69,9 +69,11 @@ export function publishModelSettings(restoreCleared = false) {
69
69
  // Keep the inherited provider revision with its gateway, including child-task handoff.
70
70
  const gatewayRevisions = new WeakMap();
71
71
  const gatewayConnections = new WeakMap();
72
- export function settingsGatewayConnections(gateway) { return gatewayConnections.get(gateway) ?? []; }
72
+ export function settingsGatewayConnections(gateway) { return gatewayConnections.get(gateway)?.().filter(Boolean) ?? []; }
73
+ /** connections may be live: a routed gateway holds whichever connection serves the session's current model. */
73
74
  export function trackSettingsGateway(gateway, revision, connections = []) {
74
- gatewayConnections.set(gateway, connections.filter(Boolean));
75
+ const list = connections;
76
+ gatewayConnections.set(gateway, typeof list === "function" ? list : () => list);
75
77
  gatewayRevisions.set(gateway, revision);
76
78
  return gateway;
77
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"settings-sync.js","sourceRoot":"","sources":["../../src/model/settings-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAWxD,6FAA6F;AAC7F,MAAM,UAAU,UAAU,CAAC,GAAsB;IAC/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AACxG,CAAC;AACD,MAAM,UAAU,mBAAmB,CAAC,GAAsB;IACxD,KAAK,MAAM,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC;QAAE,QAAQ,CAAC,wBAAwB,EAAE,EAAE,CAAC;AACvF,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,EAAU;IACxC,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AACxG,CAAC;AACD,MAAM,UAAU,wBAAwB,CAAC,EAAU;IACjD,KAAK,MAAM,QAAQ,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;QAAE,QAAQ,CAAC,wBAAwB,EAAE,EAAE,CAAC;AAC9F,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAsB,EAAE,UAAU,GAAG,KAAK;IACnE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACrD,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpM,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoD,CAAC;AAC9E,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8C,CAAC;AACxE,MAAM,UAAU,wBAAwB,CAAC,QAA0B;IACjE,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,GAAG,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3E,CAAC;AACD,MAAM,UAAU,oBAAoB,CAAC,QAAoB;IACvD,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,GAAG,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3E,CAAC;AACD,qFAAqF;AACrF,MAAM,UAAU,oBAAoB,CAAC,cAAc,GAAG,KAAK;IACzD,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IACjC,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACrD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;YAAE,SAAS;QAClC,IAAI,cAAc;YAAE,QAAQ,CAAC,yBAAyB,EAAE,EAAE,CAAC;QAC3D,IAAI,QAAQ,CAAC,wBAAwB,EAAE;YAAE,eAAe,EAAE,CAAC;;YACtD,QAAQ,CAAC,+BAA+B,EAAE,CAAC;IAClD,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ;YAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAClC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;YAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,eAAe,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC;AAC5D,CAAC;AAED,uFAAuF;AACvF,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAA8B,CAAC;AACnE,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAoB,CAAC;AAC3D,MAAM,UAAU,0BAA0B,CAAC,OAAe,IAAc,OAAO,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACvH,MAAM,UAAU,oBAAoB,CAAmB,OAAU,EAAE,QAA4B,EAAE,cAAwB,EAAE;IACzH,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxC,OAAO,OAAO,CAAC;AACjB,CAAC;AACD,MAAM,UAAU,uBAAuB,CAAC,OAA2B;IACjE,OAAO,OAAO,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5G,CAAC"}
1
+ {"version":3,"file":"settings-sync.js","sourceRoot":"","sources":["../../src/model/settings-sync.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { trackSettingsGateway } from "../model/settings-sync.js";
3
- import { ModelSettingsStore, compositionModelConfig } from "../model/settings-store.js";
4
- import { registerCompositionTools } from "../model/composition-runtime.js";
3
+ import { ModelSettingsStore } from "../model/settings-store.js";
4
+ import { registerCompositionTools, createCompositionGateway } from "../model/composition-runtime.js";
5
5
  import fs from "node:fs/promises";
6
6
  import { existsSync, readFileSync } from "node:fs";
7
7
  import path from "node:path";
@@ -240,9 +240,10 @@ async function createRuntime(options = {}) {
240
240
  const settingsStore = new ModelSettingsStore();
241
241
  const appliedSettings = settingsStore.read()?.applied;
242
242
  const settingsRevisions = new WeakMap();
243
- const modelConfig = appliedSettings ? compositionModelConfig(appliedSettings.composition, appliedSettings.connections) : readModelProviderConfig(process.env);
243
+ const appliedGateway = appliedSettings ? createCompositionGateway(appliedSettings.composition, appliedSettings.connections) : undefined;
244
+ const modelConfig = appliedGateway ? appliedGateway.config : readModelProviderConfig(process.env);
244
245
  const communicationLogger = new CommunicationLogger();
245
- const modelGateway = trackSettingsGateway(new LoggingModelGateway(createModelGatewayFromConfig(modelConfig), communicationLogger), appliedSettings?.revision, appliedSettings ? [appliedSettings.composition.main.api, appliedSettings.composition.image.api, appliedSettings.composition.search.api] : []);
246
+ const modelGateway = trackSettingsGateway(new LoggingModelGateway(appliedGateway ? appliedGateway.gateway : createModelGatewayFromConfig(modelConfig), communicationLogger), appliedSettings?.revision, appliedGateway ? appliedGateway.heldConnections : []);
246
247
  const taskStore = new TaskStore();
247
248
  const agentActivityStore = new AgentActivityStore();
248
249
  const secretStore = await SecretStore.open();
@@ -305,8 +306,8 @@ async function createRuntime(options = {}) {
305
306
  const revision = applied.revision;
306
307
  if (settingsRevisions.get(engine) === revision)
307
308
  return;
308
- const config = compositionModelConfig(applied.composition, applied.connections);
309
- const gateway = trackSettingsGateway(new LoggingModelGateway(createModelGatewayFromConfig(config), communicationLogger), revision, [applied.composition.main.api, applied.composition.image.api, applied.composition.search.api]);
309
+ const routed = createCompositionGateway(applied.composition, applied.connections), config = routed.config;
310
+ const gateway = trackSettingsGateway(new LoggingModelGateway(routed.gateway, communicationLogger), revision, routed.heldConnections);
310
311
  engine.setModelProvider({ modelGateway: gateway, model: config?.model, reasoning: config?.defaultReasoning });
311
312
  registerCompositionTools(tools, applied.composition, applied.connections);
312
313
  runtime.modelGateway = gateway;
@@ -4377,7 +4378,7 @@ function contextColor(metrics) {
4377
4378
  return "gray";
4378
4379
  }
4379
4380
  function statusInputTokens(status) {
4380
- return status.usage?.inputTokens ?? status.metrics?.estimatedInputTokens;
4381
+ return status.metrics?.inputTokenSource ? status.metrics.estimatedInputTokens : status.usage?.inputTokens ?? status.metrics?.estimatedInputTokens;
4381
4382
  }
4382
4383
  function statusOutputTokens(status) {
4383
4384
  return status.usage?.outputTokens ?? status.streamedOutputTokens;