neoctl 0.2.58 → 0.2.59
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/dist/model/agent-settings-boundary.js +7 -9
- package/dist/model/agent-settings-boundary.js.map +1 -1
- package/dist/model/composition-runtime.d.ts +11 -0
- package/dist/model/composition-runtime.js +37 -1
- package/dist/model/composition-runtime.js.map +1 -1
- package/dist/model/settings-store.d.ts +24 -4
- package/dist/model/settings-store.js +137 -10
- package/dist/model/settings-store.js.map +1 -1
- package/dist/model/settings-sync.d.ts +2 -1
- package/dist/model/settings-sync.js +4 -2
- package/dist/model/settings-sync.js.map +1 -1
- package/dist/repl/index.js +7 -6
- package/dist/repl/index.js.map +1 -1
- package/dist/web/index.js +29 -11
- package/dist/web/index.js.map +1 -1
- package/dist/web/model-settings-api.js +4 -3
- package/dist/web/model-settings-api.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { ModelSettingsStore
|
|
2
|
-
import { registerCompositionTools } from "./composition-runtime.js";
|
|
3
|
-
import { createModelGatewayFromConfig } from "./provider-factory.js";
|
|
1
|
+
import { ModelSettingsStore } from "./settings-store.js";
|
|
2
|
+
import { registerCompositionTools, createCompositionGateway } from "./composition-runtime.js";
|
|
4
3
|
import { LoggingModelGateway } from "./communication-logger.js";
|
|
5
4
|
import { registerSettingsConsumer, settingsGatewayRevision, settingsGatewayConnections, trackSettingsGateway } from "./settings-sync.js";
|
|
6
5
|
/** A child has its own boundary; it must not mutate the parent's active tool batch. */
|
|
@@ -11,15 +10,15 @@ export function agentSettingsBoundary(inheritedGateway, initialModel) {
|
|
|
11
10
|
let revision = inherited ? inherited.revision : applied?.revision;
|
|
12
11
|
let latest;
|
|
13
12
|
let model = initialModel;
|
|
14
|
-
let connections = inheritedGateway ? settingsGatewayConnections(inheritedGateway) : applied ?
|
|
13
|
+
let connections = inheritedGateway ? () => settingsGatewayConnections(inheritedGateway) : applied ? createCompositionGateway(applied.composition, applied.connections).heldConnections : () => [];
|
|
15
14
|
let controller = new AbortController();
|
|
16
15
|
const consumer = {
|
|
17
16
|
active: false,
|
|
18
17
|
isModelConfigurationBusy() { return this.active; },
|
|
19
18
|
refreshModelConfigurationIfIdle() { },
|
|
20
|
-
getHeldConnectionIds() { return this.active ? connections : []; },
|
|
19
|
+
getHeldConnectionIds() { return this.active ? connections() : []; },
|
|
21
20
|
getHeldModelIds() { return this.active && model ? [model] : []; },
|
|
22
|
-
interruptForModelRemoval() { model = undefined; connections = []; controller.abort(new Error("模型已被删除,请重新选择模型后继续任务。")); },
|
|
21
|
+
interruptForModelRemoval() { model = undefined; connections = () => []; controller.abort(new Error("模型已被删除,请重新选择模型后继续任务。")); },
|
|
23
22
|
};
|
|
24
23
|
registerSettingsConsumer(consumer);
|
|
25
24
|
return {
|
|
@@ -31,12 +30,11 @@ export function agentSettingsBoundary(inheritedGateway, initialModel) {
|
|
|
31
30
|
const next = store.read()?.applied;
|
|
32
31
|
if (!next || next.revision === revision)
|
|
33
32
|
return latest;
|
|
34
|
-
const config =
|
|
33
|
+
const { gateway: rawGateway, config, heldConnections } = createCompositionGateway(next.composition, next.connections);
|
|
35
34
|
applied = next;
|
|
36
35
|
revision = next.revision;
|
|
37
36
|
model = config?.model;
|
|
38
|
-
connections =
|
|
39
|
-
const rawGateway = createModelGatewayFromConfig(config);
|
|
37
|
+
connections = heldConnections;
|
|
40
38
|
const gateway = inheritedGateway instanceof LoggingModelGateway ? new LoggingModelGateway(rawGateway, inheritedGateway.logger) : rawGateway;
|
|
41
39
|
latest = { modelGateway: trackSettingsGateway(gateway, next.revision, connections), settings: { model: config?.model, reasoning: config?.defaultReasoning } };
|
|
42
40
|
return latest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-settings-boundary.js","sourceRoot":"","sources":["../../src/model/agent-settings-boundary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"agent-settings-boundary.js","sourceRoot":"","sources":["../../src/model/agent-settings-boundary.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { type ApiConnection, type Composition } from "./settings-store.js";
|
|
2
|
+
import type { ModelGateway } from "./model-gateway.js";
|
|
3
|
+
import type { ModelProviderConfig } from "./config.js";
|
|
2
4
|
import type { ToolRegistry } from "../tools/registry.js";
|
|
5
|
+
/**
|
|
6
|
+
* Main-model gateway for an applied composition. With a priority list, a session that switches
|
|
7
|
+
* to another model is sent to that model's own top-most connection; requests never fail over.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createCompositionGateway(c: Composition, connections: ApiConnection[]): {
|
|
10
|
+
gateway: ModelGateway;
|
|
11
|
+
config: ModelProviderConfig | undefined;
|
|
12
|
+
heldConnections: () => string[];
|
|
13
|
+
};
|
|
3
14
|
export declare function compositionProviders(c: Composition, connections: ApiConnection[]): {
|
|
4
15
|
openai: import("../tools/builtins/search-providers.js").SearchProvider | undefined;
|
|
5
16
|
exa: import("../tools/builtins/search-providers.js").SearchProvider | undefined;
|
|
@@ -1,8 +1,44 @@
|
|
|
1
1
|
import { createSearchTool } from "../tools/builtins/search-tool.js";
|
|
2
2
|
import { createOpenAISearchProvider, createExaSearchProvider } from "../tools/builtins/search-providers.js";
|
|
3
3
|
import { createOpenAIImageGenerationTool } from "../tools/builtins/image-generation-tool.js";
|
|
4
|
-
import { connectionProtocols, optionalInteger } from "./settings-store.js";
|
|
4
|
+
import { compositionModelConfig, connectionModelConfig, connectionProtocols, optionalInteger, resolveComposition, routeModel } from "./settings-store.js";
|
|
5
|
+
import { createModelGatewayFromConfig } from "./provider-factory.js";
|
|
6
|
+
/**
|
|
7
|
+
* Main-model gateway for an applied composition. With a priority list, a session that switches
|
|
8
|
+
* to another model is sent to that model's own top-most connection; requests never fail over.
|
|
9
|
+
*/
|
|
10
|
+
export function createCompositionGateway(c, connections) {
|
|
11
|
+
const resolved = resolveComposition(c, connections), config = compositionModelConfig(resolved, connections);
|
|
12
|
+
const main = createModelGatewayFromConfig(config);
|
|
13
|
+
const fixed = [resolved.image.api, resolved.search.api];
|
|
14
|
+
if (!resolved.order || !config)
|
|
15
|
+
return { gateway: main, config, heldConnections: () => [resolved.main.api, ...fixed] };
|
|
16
|
+
const routes = new Map(), same = (a, b) => a.trim().toLowerCase() === b.trim().toLowerCase();
|
|
17
|
+
let current = resolved.main.api;
|
|
18
|
+
const gateway = {
|
|
19
|
+
stream(request) {
|
|
20
|
+
const model = request.model ?? config.model;
|
|
21
|
+
if (same(model, config.model)) {
|
|
22
|
+
current = resolved.main.api;
|
|
23
|
+
return main.stream(request);
|
|
24
|
+
}
|
|
25
|
+
const route = routeModel(model, resolved, connections);
|
|
26
|
+
if (!route)
|
|
27
|
+
throw new Error(`没有已启用的 API 提供模型 ${model},请在模型页为 API 添加该模型。`);
|
|
28
|
+
current = route.connection.id;
|
|
29
|
+
const key = route.connection.id + "\u0000" + route.protocol + "\u0000" + model.trim().toLowerCase();
|
|
30
|
+
let routed = routes.get(key);
|
|
31
|
+
if (!routed) {
|
|
32
|
+
routed = createModelGatewayFromConfig(connectionModelConfig(resolved, route.connection, route.protocol, model, false));
|
|
33
|
+
routes.set(key, routed);
|
|
34
|
+
}
|
|
35
|
+
return routed.stream(request);
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
return { gateway, config, heldConnections: () => [current, ...fixed] };
|
|
39
|
+
}
|
|
5
40
|
export function compositionProviders(c, connections) {
|
|
41
|
+
c = resolveComposition(c, connections);
|
|
6
42
|
const connection = (id) => { const a = connections.find(a => a.id === id); if (!a || !connectionProtocols(a).includes("openai"))
|
|
7
43
|
throw new Error("需要 OpenAI 兼容连接。"); return a; };
|
|
8
44
|
const openai = c.search.api ? (() => { const a = connection(c.search.api); return createOpenAISearchProvider({ apiKey: a.key, baseUrl: a.baseUrl, model: c.search.model, maxOutputTokens: optionalInteger(c.search.tokens, "搜索 Token"), searchContextSize: c.search.context || undefined, timeoutMs: optionalInteger(c.search.timeout, "搜索超时"), toolType: c.search.toolType }); })() : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition-runtime.js","sourceRoot":"","sources":["../../src/model/composition-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAC5G,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAwC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"composition-runtime.js","sourceRoot":"","sources":["../../src/model/composition-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -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:
|
|
7
|
-
protocols?:
|
|
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:
|
|
76
|
-
protocols?:
|
|
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
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
-
|
|
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 => {
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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":"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
|
|
1
|
+
{"version":3,"file":"settings-sync.js","sourceRoot":"","sources":["../../src/model/settings-sync.ts"],"names":[],"mappings":"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"}
|
package/dist/repl/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { trackSettingsGateway } from "../model/settings-sync.js";
|
|
3
|
-
import { ModelSettingsStore
|
|
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
|
|
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,
|
|
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
|
|
309
|
-
const gateway = trackSettingsGateway(new LoggingModelGateway(
|
|
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;
|