@itphx/synth-core 0.3.0 → 0.4.4
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/auth/local.d.ts +14 -0
- package/dist/auth/local.d.ts.map +1 -1
- package/dist/auth/local.js +63 -11
- package/dist/auth/local.js.map +1 -1
- package/dist/auth/local.test.js +59 -0
- package/dist/auth/local.test.js.map +1 -1
- package/dist/events/bus.d.ts +7 -0
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/events/bus.js +26 -3
- package/dist/events/bus.js.map +1 -1
- package/dist/events/bus.test.js +46 -0
- package/dist/events/bus.test.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/main.js +247 -8
- package/dist/main.js.map +1 -1
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +4 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/remote.d.ts +60 -0
- package/dist/providers/remote.d.ts.map +1 -0
- package/dist/providers/remote.js +394 -0
- package/dist/providers/remote.js.map +1 -0
- package/dist/providers/remote.test.d.ts +2 -0
- package/dist/providers/remote.test.d.ts.map +1 -0
- package/dist/providers/remote.test.js +258 -0
- package/dist/providers/remote.test.js.map +1 -0
- package/dist/remote/aggregate.d.ts +43 -0
- package/dist/remote/aggregate.d.ts.map +1 -0
- package/dist/remote/aggregate.js +84 -0
- package/dist/remote/aggregate.js.map +1 -0
- package/dist/remote/aggregate.test.d.ts +2 -0
- package/dist/remote/aggregate.test.d.ts.map +1 -0
- package/dist/remote/aggregate.test.js +120 -0
- package/dist/remote/aggregate.test.js.map +1 -0
- package/dist/remote/client.d.ts +142 -0
- package/dist/remote/client.d.ts.map +1 -0
- package/dist/remote/client.js +290 -0
- package/dist/remote/client.js.map +1 -0
- package/dist/remote/client.test.d.ts +2 -0
- package/dist/remote/client.test.d.ts.map +1 -0
- package/dist/remote/client.test.js +176 -0
- package/dist/remote/client.test.js.map +1 -0
- package/dist/remote/connection.d.ts +66 -0
- package/dist/remote/connection.d.ts.map +1 -0
- package/dist/remote/connection.js +298 -0
- package/dist/remote/connection.js.map +1 -0
- package/dist/remote/connection.test.d.ts +2 -0
- package/dist/remote/connection.test.d.ts.map +1 -0
- package/dist/remote/connection.test.js +323 -0
- package/dist/remote/connection.test.js.map +1 -0
- package/dist/remote/credentials.d.ts +13 -0
- package/dist/remote/credentials.d.ts.map +1 -0
- package/dist/remote/credentials.js +81 -0
- package/dist/remote/credentials.js.map +1 -0
- package/dist/remote/credentials.test.d.ts +2 -0
- package/dist/remote/credentials.test.d.ts.map +1 -0
- package/dist/remote/credentials.test.js +69 -0
- package/dist/remote/credentials.test.js.map +1 -0
- package/dist/remote/device-flow.d.ts +72 -0
- package/dist/remote/device-flow.d.ts.map +1 -0
- package/dist/remote/device-flow.js +229 -0
- package/dist/remote/device-flow.js.map +1 -0
- package/dist/remote/device-flow.test.d.ts +2 -0
- package/dist/remote/device-flow.test.d.ts.map +1 -0
- package/dist/remote/device-flow.test.js +103 -0
- package/dist/remote/device-flow.test.js.map +1 -0
- package/dist/remote/event-bridge.d.ts +46 -0
- package/dist/remote/event-bridge.d.ts.map +1 -0
- package/dist/remote/event-bridge.js +218 -0
- package/dist/remote/event-bridge.js.map +1 -0
- package/dist/remote/event-bridge.test.d.ts +2 -0
- package/dist/remote/event-bridge.test.d.ts.map +1 -0
- package/dist/remote/event-bridge.test.js +240 -0
- package/dist/remote/event-bridge.test.js.map +1 -0
- package/dist/remote/index.d.ts +19 -0
- package/dist/remote/index.d.ts.map +1 -0
- package/dist/remote/index.js +11 -0
- package/dist/remote/index.js.map +1 -0
- package/dist/remote/session.d.ts +72 -0
- package/dist/remote/session.d.ts.map +1 -0
- package/dist/remote/session.js +248 -0
- package/dist/remote/session.js.map +1 -0
- package/dist/remote/session.test.d.ts +2 -0
- package/dist/remote/session.test.d.ts.map +1 -0
- package/dist/remote/session.test.js +482 -0
- package/dist/remote/session.test.js.map +1 -0
- package/dist/remote/transfer.d.ts +75 -0
- package/dist/remote/transfer.d.ts.map +1 -0
- package/dist/remote/transfer.js +491 -0
- package/dist/remote/transfer.js.map +1 -0
- package/dist/remote/transfer.test.d.ts +2 -0
- package/dist/remote/transfer.test.d.ts.map +1 -0
- package/dist/remote/transfer.test.js +416 -0
- package/dist/remote/transfer.test.js.map +1 -0
- package/dist/remote/types.d.ts +28 -0
- package/dist/remote/types.d.ts.map +1 -0
- package/dist/remote/types.js +10 -0
- package/dist/remote/types.js.map +1 -0
- package/dist/server/app.d.ts +62 -1
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +364 -20
- package/dist/server/app.js.map +1 -1
- package/dist/server/app.proxy.test.d.ts +2 -0
- package/dist/server/app.proxy.test.d.ts.map +1 -0
- package/dist/server/app.proxy.test.js +193 -0
- package/dist/server/app.proxy.test.js.map +1 -0
- package/dist/server/app.remote.test.d.ts +2 -0
- package/dist/server/app.remote.test.d.ts.map +1 -0
- package/dist/server/app.remote.test.js +674 -0
- package/dist/server/app.remote.test.js.map +1 -0
- package/dist/server/proxy.d.ts +14 -0
- package/dist/server/proxy.d.ts.map +1 -0
- package/dist/server/proxy.js +93 -0
- package/dist/server/proxy.js.map +1 -0
- package/dist/server/routes/auth.d.ts +26 -2
- package/dist/server/routes/auth.d.ts.map +1 -1
- package/dist/server/routes/auth.js +269 -36
- package/dist/server/routes/auth.js.map +1 -1
- package/dist/server/routes/auth.test.d.ts +2 -0
- package/dist/server/routes/auth.test.d.ts.map +1 -0
- package/dist/server/routes/auth.test.js +466 -0
- package/dist/server/routes/auth.test.js.map +1 -0
- package/dist/server/routes/fs.d.ts +2 -1
- package/dist/server/routes/fs.d.ts.map +1 -1
- package/dist/server/routes/fs.js +159 -5
- package/dist/server/routes/fs.js.map +1 -1
- package/dist/server/routes/hybrid.d.ts +32 -0
- package/dist/server/routes/hybrid.d.ts.map +1 -0
- package/dist/server/routes/hybrid.js +21 -0
- package/dist/server/routes/hybrid.js.map +1 -0
- package/dist/server/routes/hybrid.test.d.ts +2 -0
- package/dist/server/routes/hybrid.test.d.ts.map +1 -0
- package/dist/server/routes/hybrid.test.js +454 -0
- package/dist/server/routes/hybrid.test.js.map +1 -0
- package/dist/server/routes/messages.d.ts +2 -1
- package/dist/server/routes/messages.d.ts.map +1 -1
- package/dist/server/routes/messages.js +104 -1
- package/dist/server/routes/messages.js.map +1 -1
- package/dist/server/routes/models.cache.test.d.ts +2 -0
- package/dist/server/routes/models.cache.test.d.ts.map +1 -0
- package/dist/server/routes/models.cache.test.js +59 -0
- package/dist/server/routes/models.cache.test.js.map +1 -0
- package/dist/server/routes/models.d.ts +9 -1
- package/dist/server/routes/models.d.ts.map +1 -1
- package/dist/server/routes/models.js +35 -2
- package/dist/server/routes/models.js.map +1 -1
- package/dist/server/routes/models.remote.test.d.ts +2 -0
- package/dist/server/routes/models.remote.test.d.ts.map +1 -0
- package/dist/server/routes/models.remote.test.js +101 -0
- package/dist/server/routes/models.remote.test.js.map +1 -0
- package/dist/server/routes/project-transfer.d.ts +16 -0
- package/dist/server/routes/project-transfer.d.ts.map +1 -0
- package/dist/server/routes/project-transfer.js +141 -0
- package/dist/server/routes/project-transfer.js.map +1 -0
- package/dist/server/routes/project-transfer.test.d.ts +2 -0
- package/dist/server/routes/project-transfer.test.d.ts.map +1 -0
- package/dist/server/routes/project-transfer.test.js +199 -0
- package/dist/server/routes/project-transfer.test.js.map +1 -0
- package/dist/server/routes/projects.d.ts +2 -1
- package/dist/server/routes/projects.d.ts.map +1 -1
- package/dist/server/routes/projects.js +101 -5
- package/dist/server/routes/projects.js.map +1 -1
- package/dist/server/routes/providers.d.ts +1 -1
- package/dist/server/routes/providers.d.ts.map +1 -1
- package/dist/server/routes/providers.js +3 -1
- package/dist/server/routes/providers.js.map +1 -1
- package/dist/server/routes/providers.test.d.ts +2 -0
- package/dist/server/routes/providers.test.d.ts.map +1 -0
- package/dist/server/routes/providers.test.js +58 -0
- package/dist/server/routes/providers.test.js.map +1 -0
- package/dist/server/routes/queue.d.ts +2 -1
- package/dist/server/routes/queue.d.ts.map +1 -1
- package/dist/server/routes/queue.js +89 -1
- package/dist/server/routes/queue.js.map +1 -1
- package/dist/server/routes/sessions.d.ts +8 -1
- package/dist/server/routes/sessions.d.ts.map +1 -1
- package/dist/server/routes/sessions.js +202 -9
- package/dist/server/routes/sessions.js.map +1 -1
- package/dist/server/serialize.d.ts +2 -0
- package/dist/server/serialize.d.ts.map +1 -1
- package/dist/server/serialize.js +2 -0
- package/dist/server/serialize.js.map +1 -1
- package/package.json +6 -2
package/dist/server/app.js
CHANGED
|
@@ -10,13 +10,20 @@ import { logger } from 'hono/logger';
|
|
|
10
10
|
import { FileStore, SessionManager, EventBus, QueueProcessorManager, ContextConfig, ContextBuilder, ContextOptimizer, ChatOrchestrator, enqueueUserMessage, createToolRegistry, createAgentRegistry, McpManager, SecretPatternStore, ProtectedPathsStore, } from '../index.js';
|
|
11
11
|
import { nowISO, ensureDataDir, MessageRole, generateStreamId, makeTextPart } from '@itphx/synth-shared';
|
|
12
12
|
import { createLocalAuth } from '../auth/local.js';
|
|
13
|
+
import { RemoteConnection } from '../remote/connection.js';
|
|
14
|
+
import { RemoteError } from '../remote/types.js';
|
|
15
|
+
import { RemoteEventBridge } from '../remote/event-bridge.js';
|
|
16
|
+
import { isRemoteRef, toLocalId } from '../remote/aggregate.js';
|
|
17
|
+
import { setRemoteTokenProvider, removeRemoteTokenProvider } from '../providers/remote.js';
|
|
13
18
|
import { JsonStore } from '../storage/json-store.js';
|
|
14
19
|
import { ProjectStore } from '../storage/project-store.js';
|
|
15
20
|
import { RuntimeSettingsStore, mergeLlmGatewayConfig, mergeSecurityConfig } from '../storage/runtime-settings.js';
|
|
16
21
|
import { createHealthRoutes } from './routes/health.js';
|
|
22
|
+
import { createHybridRoutes } from './routes/hybrid.js';
|
|
17
23
|
import { createAuthRoutes } from './routes/auth.js';
|
|
18
24
|
import { createSessionRoutes } from './routes/sessions.js';
|
|
19
25
|
import { createProjectRoutes } from './routes/projects.js';
|
|
26
|
+
import { createProjectTransferRoutes } from './routes/project-transfer.js';
|
|
20
27
|
import { createProviderRoutes } from './routes/providers.js';
|
|
21
28
|
import { createModelRoutes } from './routes/models.js';
|
|
22
29
|
import { createAgentRoutes } from './routes/agents.js';
|
|
@@ -26,6 +33,14 @@ import { createUpdateRoutes } from './routes/updates.js';
|
|
|
26
33
|
import { createMessageRoutes } from './routes/messages.js';
|
|
27
34
|
import { createSettingsRoutes } from './routes/settings.js';
|
|
28
35
|
import { createMcpRoutes } from './routes/mcp.js';
|
|
36
|
+
import { createRemoteProxyMiddleware } from './proxy.js';
|
|
37
|
+
/**
|
|
38
|
+
* @deprecated Гибрид переведён на runtime-подключение через RemoteConnection
|
|
39
|
+
* (поле defaultBackendUrl + методы connect* на возвращаемом app-хэндле).
|
|
40
|
+
* Статические remoteClient/remoteProvider/remoteGetToken/remoteEventBridge/
|
|
41
|
+
* remoteBlockLocalProviders удалены — при необходимости подключите приложение
|
|
42
|
+
* через connectRemoteWithApiKey/connectRemoteFromSaved.
|
|
43
|
+
*/
|
|
29
44
|
const MIME_TYPES = {
|
|
30
45
|
'.html': 'text/html',
|
|
31
46
|
'.js': 'application/javascript',
|
|
@@ -132,6 +147,26 @@ async function syncProvidersFromEnv(providerStore, modelStore) {
|
|
|
132
147
|
console.log(` [env] провайдер: ${name} (${provider.type})${provider.baseUrl ? ` → ${provider.baseUrl}` : ''}`);
|
|
133
148
|
}
|
|
134
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Инъекция одного remote-зеркала в кэши (гибрид: зеркалирование серверных
|
|
152
|
+
* провайдеров). Добавляет провайдера в providerCache и его модели в modelCache —
|
|
153
|
+
* только in-memory, в JsonStore не пишется. Регистрирует поставщика токена для
|
|
154
|
+
* RemoteProvider, создаваемых через ProviderFactory. Возвращает имя
|
|
155
|
+
* remote-провайдера (для политики blockLocalProviders) или undefined.
|
|
156
|
+
*/
|
|
157
|
+
export function injectRemoteProvider(providerCache, modelCache, remoteProvider) {
|
|
158
|
+
if (!remoteProvider)
|
|
159
|
+
return undefined;
|
|
160
|
+
const rp = remoteProvider.provider;
|
|
161
|
+
providerCache.set(rp.name, { ...rp, enabled: rp.enabled ?? true });
|
|
162
|
+
if (remoteProvider.getToken) {
|
|
163
|
+
setRemoteTokenProvider(rp.name, remoteProvider.getToken);
|
|
164
|
+
}
|
|
165
|
+
for (const m of remoteProvider.models ?? []) {
|
|
166
|
+
modelCache.set(m.id, m);
|
|
167
|
+
}
|
|
168
|
+
return rp.name;
|
|
169
|
+
}
|
|
135
170
|
export async function createStandaloneApp(config) {
|
|
136
171
|
const app = new Hono();
|
|
137
172
|
const auth = createLocalAuth({ apiKey: config.apiKey });
|
|
@@ -140,14 +175,214 @@ export async function createStandaloneApp(config) {
|
|
|
140
175
|
origin: (_origin) => _origin || '*',
|
|
141
176
|
credentials: true,
|
|
142
177
|
}));
|
|
178
|
+
// Runtime-подключение к удалённому backend (гибрид). Connection создаётся
|
|
179
|
+
// всегда: без defaultBackendUrl/credentials он остаётся disconnected, а
|
|
180
|
+
// пользователь логинится в UI (POST /auth/login) в рантайме.
|
|
181
|
+
const connection = new RemoteConnection({
|
|
182
|
+
credentialsPath: config.remoteCredentialsPath ?? config.remoteAuth?.credentialsPath,
|
|
183
|
+
timeoutMs: config.remoteTimeoutMs,
|
|
184
|
+
defaultIssuer: config.remoteAuth?.issuer,
|
|
185
|
+
defaultClientId: config.remoteAuth?.clientId,
|
|
186
|
+
});
|
|
187
|
+
// Текущее активное remote-состояние: зеркала провайдеров/модели/мост задаются
|
|
188
|
+
// в applyConnected() (после успешного connect*) и сбрасываются в disconnectRemote().
|
|
189
|
+
// Зеркал несколько — по одному на каждого включённого серверного провайдера.
|
|
190
|
+
let activeRemoteProviderNames = new Set();
|
|
191
|
+
let activeRemoteModels = [];
|
|
192
|
+
let activeBridge;
|
|
193
|
+
/** Политика «все LLM — через сервер»: активна только при подключении И remoteLlm !== 'local'. */
|
|
194
|
+
let blockLocalProviders = false;
|
|
195
|
+
// Снапшоты локальных записей providerCache/modelCache, перекрытых зеркалами, —
|
|
196
|
+
// для восстановления в disconnectRemote (иначе локальные провайдеры/модели с теми
|
|
197
|
+
// же именами, что и серверные, исчезли бы из in-memory кэшей до рестарта).
|
|
198
|
+
const providerMirrorSnapshot = new Map();
|
|
199
|
+
const modelMirrorSnapshot = new Map();
|
|
200
|
+
// ── Состояние гибрида (для hybrid/status, без auth) ──
|
|
201
|
+
function getHybridState() {
|
|
202
|
+
const serverConfigured = !!config.defaultBackendUrl;
|
|
203
|
+
return {
|
|
204
|
+
enabled: serverConfigured || connection.connected,
|
|
205
|
+
connected: connection.connected,
|
|
206
|
+
backendUrl: connection.backendUrl,
|
|
207
|
+
user: connection.user,
|
|
208
|
+
serverConfigured,
|
|
209
|
+
// Вход на сервер возможен: адрес известен (--connect/env/конфиг), есть
|
|
210
|
+
// OIDC issuer (--oidc-issuer/--oidc-client-id как fallback дискавери)
|
|
211
|
+
// или уже есть runtime-подключение.
|
|
212
|
+
serverLoginAvailable: serverConfigured || !!config.remoteAuth?.issuer || connection.connected,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Откат зеркал: восстановить перекрытые локальные записи из снапшотов и
|
|
217
|
+
* дерегистрировать токены. Вызывается перед новым подключением (reconnect)
|
|
218
|
+
* и в disconnectRemote.
|
|
219
|
+
*/
|
|
220
|
+
function restoreRemoteMirrors() {
|
|
221
|
+
for (const name of activeRemoteProviderNames) {
|
|
222
|
+
removeRemoteTokenProvider(name);
|
|
223
|
+
}
|
|
224
|
+
for (const [name, prev] of providerMirrorSnapshot) {
|
|
225
|
+
if (prev)
|
|
226
|
+
providerCache.set(name, prev);
|
|
227
|
+
else
|
|
228
|
+
providerCache.delete(name);
|
|
229
|
+
}
|
|
230
|
+
for (const [id, prev] of modelMirrorSnapshot) {
|
|
231
|
+
if (prev)
|
|
232
|
+
modelCache.set(id, prev);
|
|
233
|
+
else
|
|
234
|
+
modelCache.delete(id);
|
|
235
|
+
}
|
|
236
|
+
providerMirrorSnapshot.clear();
|
|
237
|
+
modelMirrorSnapshot.clear();
|
|
238
|
+
activeRemoteProviderNames.clear();
|
|
239
|
+
activeRemoteModels = [];
|
|
240
|
+
blockLocalProviders = false;
|
|
241
|
+
}
|
|
242
|
+
// ── Подключение: применить состояние после успешного connect* ──
|
|
243
|
+
async function applyConnected(user) {
|
|
244
|
+
const client = connection.client;
|
|
245
|
+
const backendUrl = connection.backendUrl;
|
|
246
|
+
if (!client || !backendUrl) {
|
|
247
|
+
throw new RemoteError('Удалённый backend не подключён', 'AUTH');
|
|
248
|
+
}
|
|
249
|
+
// Reconnect без disconnect: сначала откатываем предыдущие зеркала.
|
|
250
|
+
restoreRemoteMirrors();
|
|
251
|
+
// Зеркалирование (Задача 1): вместо одного синтетического synth-remote берём
|
|
252
|
+
// с сервера полный список провайдеров и моделей. Каждый включённый серверный
|
|
253
|
+
// провайдер зеркалится в providerCache под НАСТОЯЩИМ именем (itphx, ollama, …)
|
|
254
|
+
// как type:'remote' → локальная сессия резолвит имя через providerLoader и
|
|
255
|
+
// RemoteProvider уходит на сервер с явным provider в теле LLM Proxy.
|
|
256
|
+
// Инъекция строго in-memory: в providers/*.json и models/* не пишется.
|
|
257
|
+
const [rawProviders, rawModels] = await Promise.all([
|
|
258
|
+
client.listProviders({ timeoutMs: 5000 }).catch(() => []),
|
|
259
|
+
client.listModels({ timeoutMs: 5000 }).catch(() => []),
|
|
260
|
+
]);
|
|
261
|
+
blockLocalProviders = (config.remoteLlm ?? 'server') !== 'local';
|
|
262
|
+
// В remote.llm:local зеркала не должны перекрывать локальных провайдеров —
|
|
263
|
+
// их имена берём из локального store (провайдеры из env тоже сохранены туда).
|
|
264
|
+
const localProviderNames = new Set((await providerStore.list()).map((p) => p.name));
|
|
265
|
+
const models = (rawModels ?? [])
|
|
266
|
+
.map((m) => ({
|
|
267
|
+
id: m.id,
|
|
268
|
+
name: m.name,
|
|
269
|
+
// Провайдер сохраняем как на сервере (без переписывания на synth-remote).
|
|
270
|
+
provider: m.provider,
|
|
271
|
+
description: m.description,
|
|
272
|
+
enabled: m.enabled !== false,
|
|
273
|
+
isDefault: m.isDefault === true || undefined,
|
|
274
|
+
contextWindow: m.contextWindow && m.contextWindow > 0 ? m.contextWindow : undefined,
|
|
275
|
+
contextSource: m.contextSource,
|
|
276
|
+
maxOutputTokens: m.maxOutputTokens,
|
|
277
|
+
inputPrice: m.inputPrice,
|
|
278
|
+
outputPrice: m.outputPrice,
|
|
279
|
+
cacheReadPrice: m.cacheReadPrice,
|
|
280
|
+
cacheWritePrice: m.cacheWritePrice,
|
|
281
|
+
}))
|
|
282
|
+
.filter((m) => m.id && m.provider);
|
|
283
|
+
// Имена провайдеров, которые реально зеркалим: включённые и не служебные
|
|
284
|
+
// (__*), а в remote.llm:local — ещё и не совпадающие с локальными.
|
|
285
|
+
const mirrorNames = new Set();
|
|
286
|
+
for (const sp of rawProviders ?? []) {
|
|
287
|
+
if (!sp.name || sp.name.startsWith('__'))
|
|
288
|
+
continue;
|
|
289
|
+
if (sp.enabled === false)
|
|
290
|
+
continue;
|
|
291
|
+
if (!blockLocalProviders && localProviderNames.has(sp.name))
|
|
292
|
+
continue;
|
|
293
|
+
mirrorNames.add(sp.name);
|
|
294
|
+
}
|
|
295
|
+
// Модели зеркалим только тех провайдеров, что реально зеркалим: модель
|
|
296
|
+
// провайдера без зеркала не резолвится оркестратором (provider_not_found).
|
|
297
|
+
const modelsToMirror = models.filter((m) => mirrorNames.has(m.provider));
|
|
298
|
+
// Снапшот перекрываемых записей до инъекции.
|
|
299
|
+
for (const name of mirrorNames) {
|
|
300
|
+
providerMirrorSnapshot.set(name, providerCache.get(name) ?? null);
|
|
301
|
+
}
|
|
302
|
+
for (const m of modelsToMirror) {
|
|
303
|
+
if (!modelMirrorSnapshot.has(m.id)) {
|
|
304
|
+
modelMirrorSnapshot.set(m.id, modelCache.get(m.id) ?? null);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
// Инъекция зеркал: провайдер → кэш, модели этого провайдера → modelCache,
|
|
308
|
+
// токен → реестр RemoteProvider (имя зеркала = серверное имя).
|
|
309
|
+
const getToken = connection.getToken;
|
|
310
|
+
for (const name of mirrorNames) {
|
|
311
|
+
const providerInfo = (rawProviders ?? []).find((p) => p.name === name);
|
|
312
|
+
const spec = {
|
|
313
|
+
provider: {
|
|
314
|
+
name,
|
|
315
|
+
type: 'remote',
|
|
316
|
+
baseUrl: backendUrl,
|
|
317
|
+
apiKey: '',
|
|
318
|
+
defaultModel: providerInfo.model || undefined,
|
|
319
|
+
enabled: true,
|
|
320
|
+
},
|
|
321
|
+
models: modelsToMirror.filter((m) => m.provider === name),
|
|
322
|
+
getToken: getToken ?? (async () => null),
|
|
323
|
+
};
|
|
324
|
+
injectRemoteProvider(providerCache, modelCache, spec);
|
|
325
|
+
}
|
|
326
|
+
activeRemoteProviderNames = mirrorNames;
|
|
327
|
+
activeRemoteModels = modelsToMirror;
|
|
328
|
+
// Мост событий backend → локальный EventBus: останавливаем старый (если был)
|
|
329
|
+
// и запускаем новый для текущего клиента.
|
|
330
|
+
activeBridge?.stop();
|
|
331
|
+
if (getToken) {
|
|
332
|
+
activeBridge = new RemoteEventBridge({ client, getToken, eventBus, backendUrl });
|
|
333
|
+
activeBridge.start();
|
|
334
|
+
}
|
|
335
|
+
return user;
|
|
336
|
+
}
|
|
337
|
+
// ── Отключение: полный сброс runtime-состояния ──
|
|
338
|
+
async function disconnectRemote() {
|
|
339
|
+
activeBridge?.stop();
|
|
340
|
+
activeBridge = undefined;
|
|
341
|
+
restoreRemoteMirrors();
|
|
342
|
+
connection.disconnect();
|
|
343
|
+
}
|
|
344
|
+
// ── Публичные обёртки connect* + applyConnected ──
|
|
345
|
+
async function connectRemote(serverUrl, username, password) {
|
|
346
|
+
const user = await connection.connectByPassword(serverUrl, username, password);
|
|
347
|
+
return applyConnected(user);
|
|
348
|
+
}
|
|
349
|
+
async function connectRemoteFromSaved(backendUrl) {
|
|
350
|
+
const user = await connection.connectFromSaved(backendUrl);
|
|
351
|
+
if (!user)
|
|
352
|
+
return null;
|
|
353
|
+
return applyConnected(user);
|
|
354
|
+
}
|
|
355
|
+
async function connectRemoteWithApiKey(serverUrl, apiKey) {
|
|
356
|
+
const user = await connection.connectWithApiKey(serverUrl, apiKey);
|
|
357
|
+
return applyConnected(user);
|
|
358
|
+
}
|
|
143
359
|
// Health — без auth
|
|
144
360
|
const healthRoutes = createHealthRoutes();
|
|
145
361
|
app.route('/', healthRoutes);
|
|
362
|
+
// Hybrid status — без auth (как health): UI опрашивает статус подключения
|
|
363
|
+
// к удалённому backend до аутентификации.
|
|
364
|
+
const hybridRoutes = createHybridRoutes(getHybridState);
|
|
365
|
+
app.route('/', hybridRoutes);
|
|
146
366
|
// Auth routes — без auth (только spa-login проверяет ключ сам)
|
|
147
|
-
app.route('/auth', createAuthRoutes(auth
|
|
367
|
+
app.route('/auth', createAuthRoutes(auth, {
|
|
368
|
+
connection,
|
|
369
|
+
connectRemote,
|
|
370
|
+
connectRemoteFromSaved,
|
|
371
|
+
connectRemoteWithApiKey,
|
|
372
|
+
disconnectRemote,
|
|
373
|
+
defaultBackendUrl: config.defaultBackendUrl,
|
|
374
|
+
issuerAvailable: !!config.remoteAuth?.issuer,
|
|
375
|
+
}));
|
|
148
376
|
// Всё остальное требует аутентификации
|
|
149
377
|
app.use('/api/*', auth.requireAuth);
|
|
150
378
|
app.use('/ws/*', auth.requireAuth);
|
|
379
|
+
// Гибрид (Batch 2, T5): серверные/админ-эндпоинты (которых нет у standalone
|
|
380
|
+
// или источник истины — сервер) проксируются на удалённый backend.
|
|
381
|
+
// Стоит ПОСЛЕ requireAuth и ДО локальных роутов — в гибриде перехватывает
|
|
382
|
+
// /api/v2/{audit,users,admin,logs,gateway,context,llm,providers,models}.
|
|
383
|
+
// Middleware регистрируется ВСЕГДА; без runtime-подключения getClient() даёт
|
|
384
|
+
// null → next() (запрос обрабатывают локальные роуты).
|
|
385
|
+
app.use('/api/*', createRemoteProxyMiddleware(() => connection.client, () => connection.getToken?.() ?? Promise.resolve(null)));
|
|
151
386
|
const dataDir = config.dataDir;
|
|
152
387
|
await ensureDataDir(dataDir);
|
|
153
388
|
// Runtime-настройки (AD-005): workspace из {dataDir}/settings.json приоритетнее config/env
|
|
@@ -187,9 +422,6 @@ export async function createStandaloneApp(config) {
|
|
|
187
422
|
projectDataDir: `${dataDir}/projects`,
|
|
188
423
|
defaultLanguage: 'ru',
|
|
189
424
|
});
|
|
190
|
-
const providerLoader = (name) => {
|
|
191
|
-
return providerCache.get(name) ?? null;
|
|
192
|
-
};
|
|
193
425
|
const providerCache = new Map();
|
|
194
426
|
(await providerStore.list()).forEach((p) => {
|
|
195
427
|
providerCache.set(p.name, p);
|
|
@@ -198,6 +430,16 @@ export async function createStandaloneApp(config) {
|
|
|
198
430
|
(await modelStore.list()).forEach((m) => {
|
|
199
431
|
modelCache.set(m.id, m);
|
|
200
432
|
});
|
|
433
|
+
// Гибрид: remote-провайдер/модели инъектируются в кэши в applyConnected()
|
|
434
|
+
// (после успешного runtime-подключения), а не при создании приложения.
|
|
435
|
+
// Загрузчик провайдеров для движка: при политике remoteLlm=server разрешены
|
|
436
|
+
// ТОЛЬКО зеркала серверных провайдеров (blockLocalProviders ставится в
|
|
437
|
+
// applyConnected); при remote.llm=local локальные провайдеры остаются доступны.
|
|
438
|
+
const providerLoader = (name) => {
|
|
439
|
+
if (blockLocalProviders && activeRemoteProviderNames.size > 0 && !activeRemoteProviderNames.has(name))
|
|
440
|
+
return null;
|
|
441
|
+
return providerCache.get(name) ?? null;
|
|
442
|
+
};
|
|
201
443
|
// Загрузчик сохранённого контекстного окна модели (ModelConfig.contextWindow)
|
|
202
444
|
const modelWindowLoader = (modelName) => {
|
|
203
445
|
for (const m of modelCache.values()) {
|
|
@@ -255,23 +497,39 @@ export async function createStandaloneApp(config) {
|
|
|
255
497
|
// API-заглушки для UI
|
|
256
498
|
app.get('/api/config/themes', (c) => c.json({ themes: [] }));
|
|
257
499
|
// Sessions
|
|
258
|
-
app.route('/api/v2/sessions', createSessionRoutes(auth, sessionManager, eventBus, queueManager, processMessage, orchestrator, contextOptimizer, projectStore));
|
|
500
|
+
app.route('/api/v2/sessions', createSessionRoutes(auth, sessionManager, eventBus, queueManager, processMessage, orchestrator, contextOptimizer, projectStore, () => connection.client));
|
|
259
501
|
// Projects
|
|
260
|
-
app.route('/api/v2/projects', createProjectRoutes(auth, projectStore));
|
|
502
|
+
app.route('/api/v2/projects', createProjectRoutes(auth, projectStore, () => connection.client));
|
|
503
|
+
// Перенос проектов между мирами (гибрид, UI publish/fork): те же пути, что у
|
|
504
|
+
// project-роутов (:id/publish, :id/fork-local — без конфликта с :id). Работает
|
|
505
|
+
// in-process через remote/transfer.ts, требует runtime-подключения к backend.
|
|
506
|
+
app.route('/api/v2/projects', createProjectTransferRoutes(auth, projectStore, sessionManager, config.workspacesRoot ?? join(dataDir, 'workspaces'), defaultWorkingDir, () => connection.client));
|
|
261
507
|
// Providers
|
|
262
|
-
app.route('/api/v2/providers', createProviderRoutes(auth, providerStore, true));
|
|
263
|
-
// Models
|
|
264
|
-
app.route('/api/v2/models', createModelRoutes(auth, modelStore, providerStore
|
|
508
|
+
app.route('/api/v2/providers', createProviderRoutes(auth, providerStore, providerCache, true));
|
|
509
|
+
// Models: remote-модели/провайдер читаются на каждый запрос (runtime-подключение).
|
|
510
|
+
app.route('/api/v2/models', createModelRoutes(auth, modelStore, providerStore, modelCache, {
|
|
511
|
+
extraModels: () => [...activeRemoteModels],
|
|
512
|
+
extraProviders: () => {
|
|
513
|
+
const out = [];
|
|
514
|
+
for (const name of activeRemoteProviderNames) {
|
|
515
|
+
const p = providerCache.get(name);
|
|
516
|
+
if (p)
|
|
517
|
+
out.push(p);
|
|
518
|
+
}
|
|
519
|
+
return out;
|
|
520
|
+
},
|
|
521
|
+
onlyRemoteModels: () => blockLocalProviders && activeRemoteProviderNames.size > 0,
|
|
522
|
+
}));
|
|
265
523
|
// Agents
|
|
266
524
|
app.route('/api/v2/agents', createAgentRoutes(auth, agentStore, agentRegistry));
|
|
267
525
|
// FS
|
|
268
|
-
app.route('/api/v2/fs', createFsRoutes(auth, config.workspacesRoot));
|
|
526
|
+
app.route('/api/v2/fs', createFsRoutes(auth, config.workspacesRoot, () => connection.client));
|
|
269
527
|
// Queue
|
|
270
|
-
app.route('/api/v2/queue', createQueueRoutes(auth, sessionManager, queueManager, eventBus, processMessage));
|
|
528
|
+
app.route('/api/v2/queue', createQueueRoutes(auth, sessionManager, queueManager, eventBus, processMessage, () => connection.client));
|
|
271
529
|
// Updates
|
|
272
530
|
app.route('/api/v2/updates', createUpdateRoutes(auth, dataDir));
|
|
273
531
|
// Messages (batch operations)
|
|
274
|
-
app.route('/api/v2/messages', createMessageRoutes(auth, sessionManager));
|
|
532
|
+
app.route('/api/v2/messages', createMessageRoutes(auth, sessionManager, () => connection.client));
|
|
275
533
|
// Settings (runtime-настройки для UI, раздел «Проекты»)
|
|
276
534
|
app.route('/api/v2/settings', createSettingsRoutes(auth, {
|
|
277
535
|
settingsStore,
|
|
@@ -300,7 +558,6 @@ export async function createStandaloneApp(config) {
|
|
|
300
558
|
return new Response(new ReadableStream({
|
|
301
559
|
async start(controller) {
|
|
302
560
|
const encoder = new TextEncoder();
|
|
303
|
-
const allSessions = await sessionManager.listSessions({ userId: 'local' });
|
|
304
561
|
const unsubs = [];
|
|
305
562
|
const handler = (event) => {
|
|
306
563
|
try {
|
|
@@ -311,8 +568,16 @@ export async function createStandaloneApp(config) {
|
|
|
311
568
|
// disconnected
|
|
312
569
|
}
|
|
313
570
|
};
|
|
314
|
-
|
|
315
|
-
|
|
571
|
+
if (connection.connected) {
|
|
572
|
+
// Гибрид: события удалённых сессий (remote:<id>) публикует мост,
|
|
573
|
+
// локальных — оркестратор. Только subscribeAll — без дублей.
|
|
574
|
+
unsubs.push(eventBus.subscribeAll(handler));
|
|
575
|
+
}
|
|
576
|
+
else {
|
|
577
|
+
const allSessions = await sessionManager.listSessions({ userId: 'local' });
|
|
578
|
+
for (const s of allSessions) {
|
|
579
|
+
unsubs.push(eventBus.subscribe(s.id, handler));
|
|
580
|
+
}
|
|
316
581
|
}
|
|
317
582
|
const keepalive = setInterval(() => {
|
|
318
583
|
try {
|
|
@@ -424,6 +689,11 @@ export async function createStandaloneApp(config) {
|
|
|
424
689
|
}
|
|
425
690
|
const headers = Object.fromEntries(response.headers.entries());
|
|
426
691
|
res.writeHead(response.status, headers);
|
|
692
|
+
// SSE/долгоживущие стримы: при chunked-кодировании Node не сбрасывает
|
|
693
|
+
// заголовки в сокет до первого write()/end(). Для пустого начала стрима
|
|
694
|
+
// (SSE до первого события/keepalive) клиент иначе не получит заголовки
|
|
695
|
+
// вовсе — сбрасываем head принудительно.
|
|
696
|
+
res.flushHeaders();
|
|
427
697
|
if (response.body) {
|
|
428
698
|
const reader = response.body.getReader();
|
|
429
699
|
const pump = async () => {
|
|
@@ -455,14 +725,28 @@ export async function createStandaloneApp(config) {
|
|
|
455
725
|
const token = typeof authHeader === 'string' && authHeader.startsWith('Bearer ')
|
|
456
726
|
? authHeader.slice(7)
|
|
457
727
|
: null;
|
|
458
|
-
|
|
728
|
+
// Аутентификация: либо валидный Bearer API-ключ (CLI/API-клиенты), либо
|
|
729
|
+
// cookie-сессия v2 (server-identity/local) — браузер не может ставить
|
|
730
|
+
// Authorization-заголовок на WebSocket, поэтому UI полагается на cookie.
|
|
731
|
+
let authorized = token === config.apiKey;
|
|
732
|
+
if (!authorized) {
|
|
733
|
+
const cookieContext = {
|
|
734
|
+
req: {
|
|
735
|
+
header: (name) => {
|
|
736
|
+
const v = request.headers[name.toLowerCase()];
|
|
737
|
+
return Array.isArray(v) ? v[0] : v;
|
|
738
|
+
},
|
|
739
|
+
},
|
|
740
|
+
};
|
|
741
|
+
authorized = auth.getCurrentUser(cookieContext) !== null;
|
|
742
|
+
}
|
|
743
|
+
if (!authorized) {
|
|
459
744
|
socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
|
|
460
745
|
socket.destroy();
|
|
461
746
|
return;
|
|
462
747
|
}
|
|
463
748
|
wss.handleUpgrade(request, socket, head, async (ws) => {
|
|
464
749
|
const clientId = `ws-events-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
465
|
-
const allSessions = await sessionManager.listSessions({ userId: 'local' });
|
|
466
750
|
const unsubs = [];
|
|
467
751
|
const handler = (event) => {
|
|
468
752
|
try {
|
|
@@ -472,8 +756,16 @@ export async function createStandaloneApp(config) {
|
|
|
472
756
|
}
|
|
473
757
|
catch { /* ignore */ }
|
|
474
758
|
};
|
|
475
|
-
|
|
476
|
-
|
|
759
|
+
if (connection.connected) {
|
|
760
|
+
// Гибрид: события удалённых сессий (remote:<id>) публикует мост —
|
|
761
|
+
// подписываемся на все события (без дублей для локальных).
|
|
762
|
+
unsubs.push(eventBus.subscribeAll(handler));
|
|
763
|
+
}
|
|
764
|
+
else {
|
|
765
|
+
const allSessions = await sessionManager.listSessions({ userId: 'local' });
|
|
766
|
+
for (const s of allSessions) {
|
|
767
|
+
unsubs.push(eventBus.subscribe(s.id, handler));
|
|
768
|
+
}
|
|
477
769
|
}
|
|
478
770
|
ws.send(JSON.stringify({
|
|
479
771
|
type: 'connected',
|
|
@@ -498,6 +790,39 @@ export async function createStandaloneApp(config) {
|
|
|
498
790
|
timestamp: nowISO(),
|
|
499
791
|
}));
|
|
500
792
|
(async () => {
|
|
793
|
+
// Гибрид: remote-сессия (`remote:<id>`) — промпт уходит на удалённый
|
|
794
|
+
// backend (raw Response, тело не читаем), события возвращаются через
|
|
795
|
+
// RemoteEventBridge. Локальный оркестратор не запускается.
|
|
796
|
+
if (isRemoteRef(sid)) {
|
|
797
|
+
const remote = connection.client;
|
|
798
|
+
if (!remote) {
|
|
799
|
+
ws.send(JSON.stringify({
|
|
800
|
+
type: 'error',
|
|
801
|
+
session_id: sid,
|
|
802
|
+
data: { error: 'Удалённый сервер не подключён' },
|
|
803
|
+
timestamp: nowISO(),
|
|
804
|
+
}));
|
|
805
|
+
return;
|
|
806
|
+
}
|
|
807
|
+
try {
|
|
808
|
+
await remote.promptSession(toLocalId(sid), {
|
|
809
|
+
content: msg.content.trim(),
|
|
810
|
+
messageId: streamId,
|
|
811
|
+
...(msg.agent_role ? { agent: msg.agent_role } : {}),
|
|
812
|
+
...(msg.provider ? { provider: msg.provider } : {}),
|
|
813
|
+
...(msg.model ? { model: msg.model } : {}),
|
|
814
|
+
});
|
|
815
|
+
}
|
|
816
|
+
catch (err) {
|
|
817
|
+
ws.send(JSON.stringify({
|
|
818
|
+
type: 'error',
|
|
819
|
+
session_id: sid,
|
|
820
|
+
data: { error: err instanceof Error ? err.message : String(err) },
|
|
821
|
+
timestamp: nowISO(),
|
|
822
|
+
}));
|
|
823
|
+
}
|
|
824
|
+
return;
|
|
825
|
+
}
|
|
501
826
|
const session = await sessionManager.getSession(sid);
|
|
502
827
|
if (!session) {
|
|
503
828
|
ws.send(JSON.stringify({
|
|
@@ -590,6 +915,25 @@ export async function createStandaloneApp(config) {
|
|
|
590
915
|
if (config.uiDistPath && existsSync(config.uiDistPath)) {
|
|
591
916
|
console.log(` ui: serving from ${config.uiDistPath}`);
|
|
592
917
|
}
|
|
593
|
-
|
|
918
|
+
if (config.defaultBackendUrl) {
|
|
919
|
+
console.log(` remote: гибридный режим (сервер ${config.defaultBackendUrl}) — подключение в рантайме`);
|
|
920
|
+
}
|
|
921
|
+
return {
|
|
922
|
+
app,
|
|
923
|
+
server,
|
|
924
|
+
wss,
|
|
925
|
+
port,
|
|
926
|
+
connection,
|
|
927
|
+
connectRemote,
|
|
928
|
+
connectRemoteFromSaved,
|
|
929
|
+
connectRemoteWithApiKey,
|
|
930
|
+
disconnectRemote,
|
|
931
|
+
getHybridStatus: getHybridState,
|
|
932
|
+
eventBus,
|
|
933
|
+
// Текущий мост событий (создаётся/обновляется в applyConnected) — для stop() при shutdown.
|
|
934
|
+
get remoteEventBridge() {
|
|
935
|
+
return activeBridge;
|
|
936
|
+
},
|
|
937
|
+
};
|
|
594
938
|
}
|
|
595
939
|
//# sourceMappingURL=app.js.map
|
package/dist/server/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.proxy.test.d.ts","sourceRoot":"","sources":["../../src/server/app.proxy.test.ts"],"names":[],"mappings":""}
|