@xrkseek/harness 0.7.1 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-cordis-host-session.d.ts +50 -0
  2. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-cordis-host-session.d.ts.map +1 -0
  3. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-cordis-host-session.js +164 -0
  4. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-cordis-host-session.js.map +1 -0
  5. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-llm-host-sync.d.ts +2 -2
  6. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-llm-host-sync.d.ts.map +1 -1
  7. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-llm-host-sync.js +4 -4
  8. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-llm-host-sync.js.map +1 -1
  9. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-loopback-llm-bridge.d.ts +69 -0
  10. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-loopback-llm-bridge.d.ts.map +1 -0
  11. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-loopback-llm-bridge.js +330 -0
  12. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-loopback-llm-bridge.js.map +1 -0
  13. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts +3 -1
  14. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts.map +1 -1
  15. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js +3 -1
  16. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js.map +1 -1
  17. package/node_modules/@xrkseek/server-http/dist/dsh-compat/our-free-model-host.d.ts +16 -0
  18. package/node_modules/@xrkseek/server-http/dist/dsh-compat/our-free-model-host.d.ts.map +1 -1
  19. package/node_modules/@xrkseek/server-http/dist/dsh-compat/our-free-model-host.js +114 -256
  20. package/node_modules/@xrkseek/server-http/dist/dsh-compat/our-free-model-host.js.map +1 -1
  21. package/node_modules/@xrkseek/server-http/dist/dsh-compat/workbuddy-host.d.ts +2 -5
  22. package/node_modules/@xrkseek/server-http/dist/dsh-compat/workbuddy-host.d.ts.map +1 -1
  23. package/node_modules/@xrkseek/server-http/dist/dsh-compat/workbuddy-host.js +34 -206
  24. package/node_modules/@xrkseek/server-http/dist/dsh-compat/workbuddy-host.js.map +1 -1
  25. package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.d.ts +5 -2
  26. package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.d.ts.map +1 -1
  27. package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.js +29 -13
  28. package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.js.map +1 -1
  29. package/package.json +1 -1
@@ -4,26 +4,31 @@
4
4
  */
5
5
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
6
6
  import path from "node:path";
7
- import { pathToFileURL } from "node:url";
8
- import { Context } from "@xrkseek/cordis";
9
- import { createCordisConnectionBridge, pushCordisWebServerRoute, } from "./cordis-connection-bridge.js";
10
7
  import { createCordisAttachmentsBridge } from "./cordis-attachments-bridge.js";
11
- import { createCordisCredentialsBridge } from "./cordis-credentials-bridge.js";
12
- import { asCommunityLlmModelRows, baseUrlFromCommunityModels, communityLlmSyncFingerprint, createCommunityLlmSyncScheduler, dropStaleCommunityLlmFingerprints, enrichCommunityModelsWithResolve, isUsableCommunityLoopbackBaseUrl, listModelsForCommunitySync, } from "./community-llm-host-sync.js";
8
+ import { createCommunityCordisHostSession } from "./community-cordis-host-session.js";
9
+ import { communityLoopbackEndpointFromForwardSettings, communityLoopbackEndpointFromSummaryHttp, createCommunityLoopbackLlmBridge, } from "./community-loopback-llm-bridge.js";
10
+ import { isUsableCommunityLoopbackBaseUrl } from "./community-llm-host-sync.js";
13
11
  import { DSH_COMPAT_ADAPTER } from "./meta.js";
14
12
  import { ensureHostModuleRemap } from "./host-module-remap.js";
15
- import { resolveCompatHome } from "./underlying/json-store.js";
16
- import { gateLiveHostHttp, gateLiveHostRpc, registerLiveHostApply, } from "./live-host-apply.js";
17
13
  import { isPluginPackageFamily } from "./plugin-package-id.js";
18
14
  const OFM_PACKAGE = "dsh-our-free-model";
19
15
  const OFM_DATA_DIR = "our-free-model";
20
16
  const OFM_API_PREFIX = "/api/our-free-model";
21
17
  /** Channel-pack management RPC + captcha carrier (vendored pack registers here). */
22
18
  const OFM_CHANNEL_PACK_PREFIX = "/api/channel-pack";
19
+ /** OFM FreeModelAdapter routes only — see dsh-our-free-model `ROUTE_MAIN` / `ROUTE_REGION`. */
20
+ const OFM_FACE_PROVIDER_IDS = new Set([
21
+ "our-free-model",
22
+ "our-free-model-region",
23
+ ]);
23
24
  const DISPLAY_NAMES = {
24
25
  "our-free-model": "Our Free Model",
25
26
  "our-free-model-region": "Our Free Model · region-limited",
26
27
  };
28
+ /** True for the two free-lane picker routes (not channel-pack product ids). */
29
+ export function isOurFreeModelFaceProvider(providerId) {
30
+ return OFM_FACE_PROVIDER_IDS.has(providerId.trim());
31
+ }
27
32
  export function isOurFreeModelPackage(packageName) {
28
33
  return isPluginPackageFamily(packageName, OFM_PACKAGE);
29
34
  }
@@ -37,36 +42,48 @@ export function ofmProfileName(env = process.env) {
37
42
  export function hasOurFreeModelEntry(pkgRoot) {
38
43
  return existsSync(path.join(pkgRoot, "index.js"));
39
44
  }
40
- /** OFM listModels has no baseUrl; Face sync uses the OpenAI forward listener. */
45
+ /**
46
+ * OFM listModels has no baseUrl; Face sync uses the OpenAI forward listener.
47
+ * Disk `forward.port` is the *requested* bind (often 0 = ephemeral); the OS
48
+ * port lives in live `/summary` as `forward.actualPort`.
49
+ */
41
50
  function forwardEndpointFromHome(dshHome) {
42
51
  const file = path.join(dshHome, OFM_DATA_DIR, "settings.json");
43
52
  if (!existsSync(file))
44
53
  return {};
45
54
  try {
46
- const raw = JSON.parse(readFileSync(file, "utf8"));
47
- const port = Number(raw.forward?.port);
48
- if (!Number.isFinite(port) || port < 1)
49
- return {};
50
- const host = typeof raw.forward?.host === "string" && raw.forward.host.trim()
51
- ? raw.forward.host.trim()
52
- : "127.0.0.1";
53
- const key = typeof raw.forwardKey === "string" && raw.forwardKey.trim()
54
- ? raw.forwardKey.trim()
55
- : undefined;
56
- const baseUrl = `http://${host}:${Math.trunc(port)}/v1`.replace(/\/+$/, "");
57
- // port:0 (pre-listen seed) is not a usable Face loopback.
58
- if (Math.trunc(port) < 1 || !isUsableCommunityLoopbackBaseUrl(baseUrl)) {
59
- return key ? { apiKey: key } : {};
60
- }
61
- return {
62
- baseUrl,
63
- ...(key ? { apiKey: key } : {}),
64
- };
55
+ // Prefer actualPort over requested port:0 (same rules as live /summary).
56
+ return communityLoopbackEndpointFromForwardSettings(JSON.parse(readFileSync(file, "utf8")));
65
57
  }
66
58
  catch {
67
59
  return {};
68
60
  }
69
61
  }
62
+ /**
63
+ * Poll OFM `/summary` until forward is listening (boot: syncForward after
64
+ * registerAdapter). Calls `onReady` once, or `onTimeout` after attempts.
65
+ */
66
+ export async function waitForOfmForwardThenSync(options) {
67
+ const attempts = options.attempts ?? 40;
68
+ const intervalMs = options.intervalMs ?? 250;
69
+ for (let i = 0; i < attempts; i++) {
70
+ if (options.isDisposed?.())
71
+ return;
72
+ const endpoint = await communityLoopbackEndpointFromSummaryHttp(options.http, `${OFM_API_PREFIX}/summary`);
73
+ if (endpoint.baseUrl &&
74
+ isUsableCommunityLoopbackBaseUrl(endpoint.baseUrl) &&
75
+ endpoint.apiKey) {
76
+ options.onReady(endpoint);
77
+ return;
78
+ }
79
+ await new Promise((resolve) => {
80
+ const timer = setTimeout(resolve, intervalMs);
81
+ timer.unref?.();
82
+ });
83
+ }
84
+ if (!options.isDisposed?.())
85
+ options.onTimeout?.();
86
+ }
70
87
  /** Ensure forward is on so Face can reach models over OpenAI-compatible HTTP. */
71
88
  function ensureForwardSeed(dshHome) {
72
89
  const dir = path.join(dshHome, OFM_DATA_DIR);
@@ -110,253 +127,94 @@ export async function tryApplyOurFreeModelHost(pkgRoot, packageName, wire) {
110
127
  return undefined;
111
128
  }
112
129
  ensureHostModuleRemap();
113
- const dshHome = resolveCompatHome(wire.xrkHome);
130
+ const session = createCommunityCordisHostSession({
131
+ logPrefix: OFM_PACKAGE,
132
+ packageName,
133
+ ...(wire.xrkHome ? { xrkHome: wire.xrkHome } : {}),
134
+ });
135
+ const { root, http, logger, dshHome, disposers } = session;
114
136
  process.env.DSH_HOME = dshHome;
115
137
  ensureForwardSeed(dshHome);
116
- const http = [];
117
- const rpc = {};
118
- const disposers = [];
119
- /**
120
- * After fiber await we seal: further connection.fetch.register must late-bind
121
- * onto the live Cordis registry (OFM mounts channel-pack via void import().then).
122
- */
123
- let httpSealed = false;
124
- const root = new Context();
125
- const logger = {
126
- info: (...args) => console.info(`[${OFM_PACKAGE}]`, ...args),
127
- warn: (...args) => console.warn(`[${OFM_PACKAGE}]`, ...args),
128
- error: (...args) => console.error(`[${OFM_PACKAGE}]`, ...args),
129
- };
130
- root.logger.exporter({
131
- colors: false,
132
- export(message) {
133
- const line = `[${OFM_PACKAGE}] ${message.type} ${message.name}: ${message.args.map(String).join(" ")}`;
134
- if (message.type === "error")
135
- console.error(line);
136
- else if (message.type === "warn")
137
- console.warn(line);
138
- else
139
- console.info(line);
140
- },
141
- });
142
- let hostDisposed = false;
143
138
  /** Survives brief settings.json rewrites while forward rebinds (port:0 window). */
144
139
  let lastForward = {};
145
- const syncScheduler = createCommunityLlmSyncScheduler({
146
- isDisposed: () => hostDisposed,
140
+ let hostDisposed = false;
141
+ const bridge = createCommunityLoopbackLlmBridge({
142
+ ...(wire.syncCommunityLlmProvider
143
+ ? { syncCommunityLlmProvider: wire.syncCommunityLlmProvider }
144
+ : {}),
145
+ displayName: (id) => DISPLAY_NAMES[id] ?? id,
146
+ // No defaultApiKey: wait for OFM forwardKey after syncForward (not xrk-*).
147
+ logPrefix: OFM_PACKAGE,
148
+ // Channel-pack adapters share this Cordis llm; only free-lane routes → Face.
149
+ shouldSyncProvider: isOurFreeModelFaceProvider,
147
150
  onBatchError: (error) => logger.warn("adapter sync batch failed", error),
148
- });
149
- root.on("llm/adapters-updated", () => {
150
- void syncScheduler.runAll();
151
- });
152
- root.provide("llm", {
153
- registerAdapter(providers, adapter) {
154
- const ids = providers.map((p) => p.trim()).filter(Boolean);
155
- let disposed = false;
156
- const sync = async () => {
157
- if (disposed || hostDisposed || !wire.syncCommunityLlmProvider) {
158
- return false;
159
- }
160
- if (ids.length === 0)
161
- return true;
162
- let allOk = true;
163
- const fromDisk = forwardEndpointFromHome(dshHome);
164
- if (fromDisk.baseUrl) {
165
- lastForward = {
166
- baseUrl: fromDisk.baseUrl,
167
- ...(fromDisk.apiKey
168
- ? { apiKey: fromDisk.apiKey }
169
- : lastForward.apiKey
170
- ? { apiKey: lastForward.apiKey }
171
- : {}),
172
- };
173
- }
174
- const forward = {
175
- baseUrl: fromDisk.baseUrl ?? lastForward.baseUrl,
176
- apiKey: fromDisk.apiKey ?? lastForward.apiKey,
151
+ async resolveEndpoint() {
152
+ const fromDisk = forwardEndpointFromHome(dshHome);
153
+ // Always prefer live `/summary.actualPort` when disk still has port:0 —
154
+ // boot binds forward after first registerAdapter sync (OFM index.js).
155
+ const fromLive = fromDisk.baseUrl
156
+ ? {}
157
+ : await communityLoopbackEndpointFromSummaryHttp(http, `${OFM_API_PREFIX}/summary`);
158
+ const baseUrl = fromLive.baseUrl ?? fromDisk.baseUrl ?? lastForward.baseUrl;
159
+ const apiKey = fromLive.apiKey ?? fromDisk.apiKey ?? lastForward.apiKey;
160
+ if (baseUrl) {
161
+ lastForward = {
162
+ baseUrl,
163
+ ...(apiKey
164
+ ? { apiKey }
165
+ : lastForward.apiKey
166
+ ? { apiKey: lastForward.apiKey }
167
+ : {}),
177
168
  };
178
- for (const providerId of ids) {
179
- try {
180
- const listed = await listModelsForCommunitySync(adapter, providerId, {
181
- ...(forward.baseUrl !== undefined
182
- ? { lastBaseUrl: forward.baseUrl }
183
- : {}),
184
- });
185
- const models = await enrichCommunityModelsWithResolve(adapter, providerId, asCommunityLlmModelRows(listed));
186
- const baseUrlCandidate = baseUrlFromCommunityModels(listed) ??
187
- forward.baseUrl ??
188
- undefined;
189
- const baseUrl = isUsableCommunityLoopbackBaseUrl(baseUrlCandidate)
190
- ? baseUrlCandidate.trim().replace(/\/+$/, "")
191
- : undefined;
192
- if (!baseUrl || models.length === 0) {
193
- allOk = false;
194
- logger.warn(`syncCommunityLlmProvider skip ${providerId}: baseUrl=${baseUrl ?? "none"} models=${models.length} listed=${listed.length}`);
195
- continue;
196
- }
197
- const fingerprint = communityLlmSyncFingerprint(providerId, baseUrl, models);
198
- dropStaleCommunityLlmFingerprints(syncScheduler.fingerprints, providerId, baseUrl);
199
- if (syncScheduler.fingerprints.has(fingerprint)) {
200
- continue;
201
- }
202
- const apiKey = (await adapter.resolveApiKey?.())?.trim() ||
203
- forward.apiKey ||
204
- `xrk-${providerId}`;
205
- await wire.syncCommunityLlmProvider({
206
- providerId,
207
- displayName: DISPLAY_NAMES[providerId] ?? providerId,
208
- baseUrl,
209
- apiKey,
210
- models,
211
- });
212
- lastForward = { baseUrl, apiKey };
213
- syncScheduler.fingerprints.add(fingerprint);
214
- logger.info(`syncCommunityLlmProvider ok ${providerId} models=${models.length} baseUrl=${baseUrl}`);
215
- }
216
- catch (error) {
217
- allOk = false;
218
- logger.warn(`syncCommunityLlmProvider failed for ${providerId}`, error);
219
- }
220
- }
221
- return allOk;
222
- };
223
- syncScheduler.addSyncer(sync);
224
- void syncScheduler.runAll();
225
- const release = () => {
226
- disposed = true;
227
- syncScheduler.markUnsettled();
169
+ }
170
+ const resolvedKey = apiKey ?? lastForward.apiKey;
171
+ return {
172
+ ...(baseUrl ? { baseUrl } : {}),
173
+ ...(resolvedKey ? { apiKey: resolvedKey } : {}),
228
174
  };
229
- return Object.assign(release, {
230
- replace(next) {
231
- ids.splice(0, ids.length, ...next.map((p) => p.trim()).filter(Boolean));
232
- syncScheduler.fingerprints.clear();
233
- syncScheduler.markUnsettled();
234
- void syncScheduler.runAll();
235
- },
236
- });
237
- },
238
- registerConfigurableProviders() {
239
- /* Face Settings cards are separate; no-op stub */
240
- },
241
- registerModelDiscovery() {
242
- /* optional DSH probe button */
243
175
  },
244
176
  });
245
- root.provide("webServer", {
246
- register(route) {
247
- pushCordisWebServerRoute(http, route);
248
- return () => undefined;
249
- },
250
- registerUpgrade() {
251
- /* OFM events are SSE over HTTP unary register */
252
- },
253
- tapIndex() {
254
- return () => undefined;
255
- },
177
+ bridge.provideLlm(root);
178
+ session.provideHostSurfaces({
179
+ settingsConfigure: true,
180
+ profileContext: { name: ofmProfileName(), home: dshHome },
181
+ attachments: createCordisAttachmentsBridge(dshHome),
182
+ commands: true,
256
183
  });
257
- root.provide("rpc", {
258
- register(channel, handler) {
259
- const key = channel.endsWith("/") ? channel.slice(0, -1) : channel;
260
- rpc[key] = handler;
261
- },
262
- });
263
- root.provide("connection", createCordisConnectionBridge({
184
+ session.trackEffectsAndFibers();
185
+ const ok = await session.applyEntry(path.join(pkgRoot, "index.js"), { distribution: "managed" }, () => bridge.dispose());
186
+ if (!ok)
187
+ return undefined;
188
+ // Seal before return so async pack.apply → connection.fetch.register late-binds.
189
+ session.sealHttp();
190
+ bridge.scheduler.scheduleRetries();
191
+ // OFM boot: registerAdapter fires before syncForward — poll until forward is up.
192
+ void waitForOfmForwardThenSync({
264
193
  http,
265
- isSealed: () => httpSealed,
266
- onLateMiss: (p) => logger.warn(`late connection.fetch register missed active registry for ${p}`),
267
- }));
268
- root.provide("settings", {
269
- installSection() {
270
- return () => undefined;
271
- },
272
- async update() {
273
- return undefined;
194
+ isDisposed: () => hostDisposed,
195
+ onReady: (endpoint) => {
196
+ lastForward = {
197
+ ...(endpoint.baseUrl ? { baseUrl: endpoint.baseUrl } : lastForward),
198
+ ...(endpoint.apiKey
199
+ ? { apiKey: endpoint.apiKey }
200
+ : lastForward.apiKey
201
+ ? { apiKey: lastForward.apiKey }
202
+ : {}),
203
+ };
204
+ bridge.requestSync(true);
274
205
  },
275
- // Channel-pack calls configure({ auto: false }) when present. No `register`:
276
- // OFM then persists channel state to `{DSH_HOME}/channel-pack/state.json`.
277
- configure() {
278
- return () => undefined;
206
+ onTimeout: () => {
207
+ logger.warn("forward listener not ready after boot poll; Face sync keeps retrying");
208
+ bridge.requestSync(true);
279
209
  },
280
210
  });
281
- // Channel-pack injects credentials + commands; persist OAuth JSON under xrkHome.
282
- root.provide("credentials", createCordisCredentialsBridge(dshHome, packageName));
283
- // OFM sealed EAC gate + chan-relay home: `ctx.get('profileContext').name|home`.
284
- // `web` matches OFM vault detectSealedHost (web / web-desktop); home = compat data root.
285
- root.provide("profileContext", {
286
- name: ofmProfileName(),
287
- home: dshHome,
288
- });
289
- // Free-lane imageResolver stats imageHostPath; channel-pack inlines readImage.
290
- root.provide("attachments", createCordisAttachmentsBridge(dshHome));
291
- root.provide("commands", {
292
- register() {
293
- return () => undefined;
294
- },
295
- });
296
- const originalEffect = root.effect.bind(root);
297
- root.effect = ((fn, label) => {
298
- const owned = originalEffect(fn, label);
299
- disposers.push(() => {
300
- void owned();
301
- });
302
- return owned;
303
- });
304
- const childFibers = [];
305
- const registryPlugin = root.registry.plugin.bind(root.registry);
306
- root.registry.plugin = ((plugin, config, getOuterStack) => {
307
- const fiber = registryPlugin(plugin, config, getOuterStack);
308
- childFibers.push(fiber);
309
- return fiber;
310
- });
311
- try {
312
- const entry = pathToFileURL(path.join(pkgRoot, "index.js")).href;
313
- const mod = (await import(/* @vite-ignore */ entry));
314
- if (typeof mod.apply !== "function")
315
- return undefined;
316
- // managed: stand down self-updater / hot-reload writing into staged plugins.
317
- mod.apply(root, { distribution: "managed" });
318
- await Promise.all(childFibers.map((fiber) => fiber.await()));
319
- }
320
- catch (error) {
321
- logger.error("host apply failed", error);
322
- hostDisposed = true;
323
- for (const d of disposers.reverse())
324
- await d();
325
- return undefined;
326
- }
327
- // Seal before return so async pack.apply → connection.fetch.register late-binds.
328
- httpSealed = true;
329
- syncScheduler.scheduleRetries();
330
211
  disposers.push(() => {
331
212
  hostDisposed = true;
213
+ bridge.dispose();
332
214
  });
333
215
  // Until main + region providers have synced Face, status GETs re-nudge.
334
- for (const row of http) {
335
- const inner = row.handle;
336
- row.handle = async (req, res, pathname) => {
337
- const handled = await inner(req, res, pathname);
338
- if (handled &&
339
- !syncScheduler.settled() &&
340
- pathname.startsWith(OFM_API_PREFIX) &&
341
- (req.method ?? "GET").toUpperCase() === "GET") {
342
- void syncScheduler.runAll();
343
- }
344
- return handled;
345
- };
346
- }
347
- await registerLiveHostApply(packageName, async () => {
348
- hostDisposed = true;
349
- for (const d of disposers.reverse())
350
- await d();
351
- try {
352
- await root.fiber.dispose();
353
- }
354
- catch {
355
- /* Cordis root may already be torn down */
356
- }
357
- });
358
- const gatedHttp = gateLiveHostHttp(packageName, http);
359
- const gatedRpc = gateLiveHostRpc(packageName, rpc);
216
+ bridge.nudgeHttpOnGet(http, { prefixes: [OFM_API_PREFIX] });
217
+ const { http: gatedHttp, rpc: gatedRpc } = await session.finishLive(packageName);
360
218
  const httpPrefixes = [OFM_API_PREFIX];
361
219
  if (gatedHttp.some((row) => row.match(OFM_CHANNEL_PACK_PREFIX))) {
362
220
  httpPrefixes.push(OFM_CHANNEL_PACK_PREFIX);
@@ -1 +1 @@
1
- {"version":3,"file":"our-free-model-host.js","sourceRoot":"","sources":["../../src/dsh-compat/our-free-model-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"our-free-model-host.js","sourceRoot":"","sources":["../../src/dsh-compat/our-free-model-host.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { DshAdapterContribution, DshCompatWireOptions } from "./adapter-types.js";
2
- import { type CommunityLlmSyncCatalog } from "./community-llm-host-sync.js";
2
+ import { type CommunityLoopbackAdapter } from "./community-loopback-llm-bridge.js";
3
3
  export declare function isWorkBuddyConnectPackage(packageName: string): boolean;
4
4
  export declare function hasWorkBuddyHostLib(pkgRoot: string): boolean;
5
5
  /**
@@ -12,10 +12,7 @@ export declare function hasWorkBuddyHostLib(pkgRoot: string): boolean;
12
12
  * installer layout `LOCALAPPDATA\\Programs\\WorkBuddyAI\\WorkBuddyAI.exe`.
13
13
  */
14
14
  export declare function ensureWorkBuddyAiElectronBin(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): string | undefined;
15
- type WorkBuddySyncAdapter = {
16
- listModels?: (provider: string) => Promise<readonly unknown[]>;
17
- catalog?: CommunityLlmSyncCatalog;
18
- };
15
+ type WorkBuddySyncAdapter = CommunityLoopbackAdapter;
19
16
  /**
20
17
  * Snapshot models for Face sync (WorkBuddy catalog peek + fallback roster).
21
18
  * @see {@link listModelsForCommunitySync}
@@ -1 +1 @@
1
- {"version":3,"file":"workbuddy-host.d.ts","sourceRoot":"","sources":["../../src/dsh-compat/workbuddy-host.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EASL,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAC;AAoBtC,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,GAAG,SAAS,CAepB;AAOD,KAAK,oBAAoB,GAAG;IAC1B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,EAAE,uBAAuB,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,oBAAoB,EAC7B,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAE7B;AA6BD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,SAAS,OAAO,EAAE,GACzB,OAAO,CAQT;AASD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAoY7C"}
1
+ {"version":3,"file":"workbuddy-host.d.ts","sourceRoot":"","sources":["../../src/dsh-compat/workbuddy-host.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,oCAAoC,CAAC;AAY5C,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,GAAG,SAAS,CAepB;AAED,KAAK,oBAAoB,GAAG,wBAAwB,CAAC;AAErD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,oBAAoB,EAC7B,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAE7B;AA6BD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,SAAS,OAAO,EAAE,GACzB,OAAO,CAQT;AASD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CA0K7C"}