@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.
Files changed (187) hide show
  1. package/dist/auth/local.d.ts +14 -0
  2. package/dist/auth/local.d.ts.map +1 -1
  3. package/dist/auth/local.js +63 -11
  4. package/dist/auth/local.js.map +1 -1
  5. package/dist/auth/local.test.js +59 -0
  6. package/dist/auth/local.test.js.map +1 -1
  7. package/dist/events/bus.d.ts +7 -0
  8. package/dist/events/bus.d.ts.map +1 -1
  9. package/dist/events/bus.js +26 -3
  10. package/dist/events/bus.js.map +1 -1
  11. package/dist/events/bus.test.js +46 -0
  12. package/dist/events/bus.test.js.map +1 -1
  13. package/dist/index.d.ts +3 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/main.js +247 -8
  18. package/dist/main.js.map +1 -1
  19. package/dist/providers/index.d.ts +1 -0
  20. package/dist/providers/index.d.ts.map +1 -1
  21. package/dist/providers/index.js +4 -0
  22. package/dist/providers/index.js.map +1 -1
  23. package/dist/providers/remote.d.ts +60 -0
  24. package/dist/providers/remote.d.ts.map +1 -0
  25. package/dist/providers/remote.js +394 -0
  26. package/dist/providers/remote.js.map +1 -0
  27. package/dist/providers/remote.test.d.ts +2 -0
  28. package/dist/providers/remote.test.d.ts.map +1 -0
  29. package/dist/providers/remote.test.js +258 -0
  30. package/dist/providers/remote.test.js.map +1 -0
  31. package/dist/remote/aggregate.d.ts +43 -0
  32. package/dist/remote/aggregate.d.ts.map +1 -0
  33. package/dist/remote/aggregate.js +84 -0
  34. package/dist/remote/aggregate.js.map +1 -0
  35. package/dist/remote/aggregate.test.d.ts +2 -0
  36. package/dist/remote/aggregate.test.d.ts.map +1 -0
  37. package/dist/remote/aggregate.test.js +120 -0
  38. package/dist/remote/aggregate.test.js.map +1 -0
  39. package/dist/remote/client.d.ts +142 -0
  40. package/dist/remote/client.d.ts.map +1 -0
  41. package/dist/remote/client.js +290 -0
  42. package/dist/remote/client.js.map +1 -0
  43. package/dist/remote/client.test.d.ts +2 -0
  44. package/dist/remote/client.test.d.ts.map +1 -0
  45. package/dist/remote/client.test.js +176 -0
  46. package/dist/remote/client.test.js.map +1 -0
  47. package/dist/remote/connection.d.ts +66 -0
  48. package/dist/remote/connection.d.ts.map +1 -0
  49. package/dist/remote/connection.js +298 -0
  50. package/dist/remote/connection.js.map +1 -0
  51. package/dist/remote/connection.test.d.ts +2 -0
  52. package/dist/remote/connection.test.d.ts.map +1 -0
  53. package/dist/remote/connection.test.js +323 -0
  54. package/dist/remote/connection.test.js.map +1 -0
  55. package/dist/remote/credentials.d.ts +13 -0
  56. package/dist/remote/credentials.d.ts.map +1 -0
  57. package/dist/remote/credentials.js +81 -0
  58. package/dist/remote/credentials.js.map +1 -0
  59. package/dist/remote/credentials.test.d.ts +2 -0
  60. package/dist/remote/credentials.test.d.ts.map +1 -0
  61. package/dist/remote/credentials.test.js +69 -0
  62. package/dist/remote/credentials.test.js.map +1 -0
  63. package/dist/remote/device-flow.d.ts +72 -0
  64. package/dist/remote/device-flow.d.ts.map +1 -0
  65. package/dist/remote/device-flow.js +229 -0
  66. package/dist/remote/device-flow.js.map +1 -0
  67. package/dist/remote/device-flow.test.d.ts +2 -0
  68. package/dist/remote/device-flow.test.d.ts.map +1 -0
  69. package/dist/remote/device-flow.test.js +103 -0
  70. package/dist/remote/device-flow.test.js.map +1 -0
  71. package/dist/remote/event-bridge.d.ts +46 -0
  72. package/dist/remote/event-bridge.d.ts.map +1 -0
  73. package/dist/remote/event-bridge.js +218 -0
  74. package/dist/remote/event-bridge.js.map +1 -0
  75. package/dist/remote/event-bridge.test.d.ts +2 -0
  76. package/dist/remote/event-bridge.test.d.ts.map +1 -0
  77. package/dist/remote/event-bridge.test.js +240 -0
  78. package/dist/remote/event-bridge.test.js.map +1 -0
  79. package/dist/remote/index.d.ts +19 -0
  80. package/dist/remote/index.d.ts.map +1 -0
  81. package/dist/remote/index.js +11 -0
  82. package/dist/remote/index.js.map +1 -0
  83. package/dist/remote/session.d.ts +72 -0
  84. package/dist/remote/session.d.ts.map +1 -0
  85. package/dist/remote/session.js +248 -0
  86. package/dist/remote/session.js.map +1 -0
  87. package/dist/remote/session.test.d.ts +2 -0
  88. package/dist/remote/session.test.d.ts.map +1 -0
  89. package/dist/remote/session.test.js +482 -0
  90. package/dist/remote/session.test.js.map +1 -0
  91. package/dist/remote/transfer.d.ts +75 -0
  92. package/dist/remote/transfer.d.ts.map +1 -0
  93. package/dist/remote/transfer.js +491 -0
  94. package/dist/remote/transfer.js.map +1 -0
  95. package/dist/remote/transfer.test.d.ts +2 -0
  96. package/dist/remote/transfer.test.d.ts.map +1 -0
  97. package/dist/remote/transfer.test.js +416 -0
  98. package/dist/remote/transfer.test.js.map +1 -0
  99. package/dist/remote/types.d.ts +28 -0
  100. package/dist/remote/types.d.ts.map +1 -0
  101. package/dist/remote/types.js +10 -0
  102. package/dist/remote/types.js.map +1 -0
  103. package/dist/server/app.d.ts +62 -1
  104. package/dist/server/app.d.ts.map +1 -1
  105. package/dist/server/app.js +364 -20
  106. package/dist/server/app.js.map +1 -1
  107. package/dist/server/app.proxy.test.d.ts +2 -0
  108. package/dist/server/app.proxy.test.d.ts.map +1 -0
  109. package/dist/server/app.proxy.test.js +193 -0
  110. package/dist/server/app.proxy.test.js.map +1 -0
  111. package/dist/server/app.remote.test.d.ts +2 -0
  112. package/dist/server/app.remote.test.d.ts.map +1 -0
  113. package/dist/server/app.remote.test.js +674 -0
  114. package/dist/server/app.remote.test.js.map +1 -0
  115. package/dist/server/proxy.d.ts +14 -0
  116. package/dist/server/proxy.d.ts.map +1 -0
  117. package/dist/server/proxy.js +93 -0
  118. package/dist/server/proxy.js.map +1 -0
  119. package/dist/server/routes/auth.d.ts +26 -2
  120. package/dist/server/routes/auth.d.ts.map +1 -1
  121. package/dist/server/routes/auth.js +269 -36
  122. package/dist/server/routes/auth.js.map +1 -1
  123. package/dist/server/routes/auth.test.d.ts +2 -0
  124. package/dist/server/routes/auth.test.d.ts.map +1 -0
  125. package/dist/server/routes/auth.test.js +466 -0
  126. package/dist/server/routes/auth.test.js.map +1 -0
  127. package/dist/server/routes/fs.d.ts +2 -1
  128. package/dist/server/routes/fs.d.ts.map +1 -1
  129. package/dist/server/routes/fs.js +159 -5
  130. package/dist/server/routes/fs.js.map +1 -1
  131. package/dist/server/routes/hybrid.d.ts +32 -0
  132. package/dist/server/routes/hybrid.d.ts.map +1 -0
  133. package/dist/server/routes/hybrid.js +21 -0
  134. package/dist/server/routes/hybrid.js.map +1 -0
  135. package/dist/server/routes/hybrid.test.d.ts +2 -0
  136. package/dist/server/routes/hybrid.test.d.ts.map +1 -0
  137. package/dist/server/routes/hybrid.test.js +454 -0
  138. package/dist/server/routes/hybrid.test.js.map +1 -0
  139. package/dist/server/routes/messages.d.ts +2 -1
  140. package/dist/server/routes/messages.d.ts.map +1 -1
  141. package/dist/server/routes/messages.js +104 -1
  142. package/dist/server/routes/messages.js.map +1 -1
  143. package/dist/server/routes/models.cache.test.d.ts +2 -0
  144. package/dist/server/routes/models.cache.test.d.ts.map +1 -0
  145. package/dist/server/routes/models.cache.test.js +59 -0
  146. package/dist/server/routes/models.cache.test.js.map +1 -0
  147. package/dist/server/routes/models.d.ts +9 -1
  148. package/dist/server/routes/models.d.ts.map +1 -1
  149. package/dist/server/routes/models.js +35 -2
  150. package/dist/server/routes/models.js.map +1 -1
  151. package/dist/server/routes/models.remote.test.d.ts +2 -0
  152. package/dist/server/routes/models.remote.test.d.ts.map +1 -0
  153. package/dist/server/routes/models.remote.test.js +101 -0
  154. package/dist/server/routes/models.remote.test.js.map +1 -0
  155. package/dist/server/routes/project-transfer.d.ts +16 -0
  156. package/dist/server/routes/project-transfer.d.ts.map +1 -0
  157. package/dist/server/routes/project-transfer.js +141 -0
  158. package/dist/server/routes/project-transfer.js.map +1 -0
  159. package/dist/server/routes/project-transfer.test.d.ts +2 -0
  160. package/dist/server/routes/project-transfer.test.d.ts.map +1 -0
  161. package/dist/server/routes/project-transfer.test.js +199 -0
  162. package/dist/server/routes/project-transfer.test.js.map +1 -0
  163. package/dist/server/routes/projects.d.ts +2 -1
  164. package/dist/server/routes/projects.d.ts.map +1 -1
  165. package/dist/server/routes/projects.js +101 -5
  166. package/dist/server/routes/projects.js.map +1 -1
  167. package/dist/server/routes/providers.d.ts +1 -1
  168. package/dist/server/routes/providers.d.ts.map +1 -1
  169. package/dist/server/routes/providers.js +3 -1
  170. package/dist/server/routes/providers.js.map +1 -1
  171. package/dist/server/routes/providers.test.d.ts +2 -0
  172. package/dist/server/routes/providers.test.d.ts.map +1 -0
  173. package/dist/server/routes/providers.test.js +58 -0
  174. package/dist/server/routes/providers.test.js.map +1 -0
  175. package/dist/server/routes/queue.d.ts +2 -1
  176. package/dist/server/routes/queue.d.ts.map +1 -1
  177. package/dist/server/routes/queue.js +89 -1
  178. package/dist/server/routes/queue.js.map +1 -1
  179. package/dist/server/routes/sessions.d.ts +8 -1
  180. package/dist/server/routes/sessions.d.ts.map +1 -1
  181. package/dist/server/routes/sessions.js +202 -9
  182. package/dist/server/routes/sessions.js.map +1 -1
  183. package/dist/server/serialize.d.ts +2 -0
  184. package/dist/server/serialize.d.ts.map +1 -1
  185. package/dist/server/serialize.js +2 -0
  186. package/dist/server/serialize.js.map +1 -1
  187. package/package.json +6 -2
@@ -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
- for (const s of allSessions) {
315
- unsubs.push(eventBus.subscribe(s.id, handler));
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
- if (token !== config.apiKey) {
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
- for (const s of allSessions) {
476
- unsubs.push(eventBus.subscribe(s.id, handler));
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
- return { app, server, wss, port };
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
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=app.proxy.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.proxy.test.d.ts","sourceRoot":"","sources":["../../src/server/app.proxy.test.ts"],"names":[],"mappings":""}