@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,15 +4,11 @@
4
4
  */
5
5
  import { existsSync } 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
- import { createCordisCredentialsBridge } from "./cordis-credentials-bridge.js";
11
- import { asCommunityLlmModelRows, baseUrlFromCommunityModels, communityLlmSyncFingerprint, createCommunityLlmSyncScheduler, dropStaleCommunityLlmFingerprints, enrichCommunityModelsWithResolve, isUsableCommunityLoopbackBaseUrl, listModelsForCommunitySync, } from "./community-llm-host-sync.js";
7
+ import { createCommunityCordisHostSession } from "./community-cordis-host-session.js";
8
+ import { createCommunityLoopbackLlmBridge, } from "./community-loopback-llm-bridge.js";
9
+ import { listModelsForCommunitySync, } from "./community-llm-host-sync.js";
12
10
  import { DSH_COMPAT_ADAPTER } from "./meta.js";
13
11
  import { ensureHostModuleRemap } from "./host-module-remap.js";
14
- import { resolveCompatHome } from "./underlying/json-store.js";
15
- import { gateLiveHostHttp, gateLiveHostRpc, registerLiveHostApply, } from "./live-host-apply.js";
16
12
  import { isPluginPackageFamily } from "./plugin-package-id.js";
17
13
  const WORKBUDDY_PACKAGE = "dsh-workbuddy-connect";
18
14
  /** Plugin env that skips Windows registry discovery for the international app. */
@@ -121,200 +117,41 @@ export async function tryApplyWorkBuddyHost(pkgRoot, packageName, wire) {
121
117
  if (aiElectron) {
122
118
  console.info("[dsh-workbuddy-connect] WORKBUDDY_AI_ELECTRON_BIN hint", aiElectron);
123
119
  }
124
- const http = [];
125
- const rpc = {};
126
- const disposers = [];
127
- const root = new Context();
128
- const logger = {
129
- info: (...args) => console.info("[dsh-workbuddy-connect]", ...args),
130
- warn: (...args) => console.warn("[dsh-workbuddy-connect]", ...args),
131
- error: (...args) => console.error("[dsh-workbuddy-connect]", ...args),
132
- };
133
- // WorkBuddy uses Cordis ctx.logger.*; default exporter only buffers — mirror to console.
134
- root.logger.exporter({
135
- colors: false,
136
- export(message) {
137
- const line = `[dsh-workbuddy-connect] ${message.type} ${message.name}: ${message.args.map(String).join(" ")}`;
138
- if (message.type === "error")
139
- console.error(line);
140
- else if (message.type === "warn")
141
- console.warn(line);
142
- else
143
- console.info(line);
144
- },
120
+ const session = createCommunityCordisHostSession({
121
+ logPrefix: "dsh-workbuddy-connect",
122
+ packageName,
123
+ ...(wire.xrkHome ? { xrkHome: wire.xrkHome } : {}),
145
124
  });
146
- let hostDisposed = false;
147
- /** Per-provider last good loopback baseUrl (shim port can briefly vanish). */
148
- const lastBaseUrlByProvider = new Map();
149
- /** Live adapters for status enrichment (signed-in + empty models). */
150
- const adaptersByProvider = new Map();
151
- const syncScheduler = createCommunityLlmSyncScheduler({
152
- isDisposed: () => hostDisposed,
125
+ const { root, http, logger, disposers } = session;
126
+ const bridge = createCommunityLoopbackLlmBridge({
127
+ ...(wire.syncCommunityLlmProvider
128
+ ? { syncCommunityLlmProvider: wire.syncCommunityLlmProvider }
129
+ : {}),
130
+ displayName: (providerId) => providerId === "workbuddy-ai" ? "WorkBuddy AI" : "WorkBuddy",
131
+ defaultApiKey: (providerId) => `xrk-workbuddy-${providerId}`,
132
+ logPrefix: "dsh-workbuddy-connect",
153
133
  onBatchError: (error) => logger.warn("adapter sync batch failed", error),
154
134
  });
155
- // WorkBuddy emits this community event; Cordis Events map has no ambient key here.
156
- root.on("llm/adapters-updated", () => {
157
- void syncScheduler.runAll();
158
- });
159
- root.provide("llm", {
160
- registerAdapter(providers, adapter) {
161
- const ids = providers.map((p) => p.trim()).filter(Boolean);
162
- for (const id of ids)
163
- adaptersByProvider.set(id, adapter);
164
- let disposed = false;
165
- const sync = async () => {
166
- if (disposed || hostDisposed || !wire.syncCommunityLlmProvider) {
167
- return false;
168
- }
169
- if (ids.length === 0)
170
- return true;
171
- let allOk = true;
172
- for (const providerId of ids) {
173
- try {
174
- const lastBaseUrl = lastBaseUrlByProvider.get(providerId);
175
- const listed = await listModelsForSync(adapter, providerId, {
176
- ...(lastBaseUrl !== undefined ? { lastBaseUrl } : {}),
177
- });
178
- const models = await enrichCommunityModelsWithResolve(adapter, providerId, asCommunityLlmModelRows(listed));
179
- const baseUrl = baseUrlFromCommunityModels(listed) ??
180
- lastBaseUrlByProvider.get(providerId);
181
- if (!isUsableCommunityLoopbackBaseUrl(baseUrl) ||
182
- models.length === 0) {
183
- allOk = false;
184
- logger.warn(`syncCommunityLlmProvider skip ${providerId}: baseUrl=${baseUrl ?? "none"} models=${models.length} listed=${listed.length}`);
185
- continue;
186
- }
187
- const fingerprint = communityLlmSyncFingerprint(providerId, baseUrl, models);
188
- dropStaleCommunityLlmFingerprints(syncScheduler.fingerprints, providerId, baseUrl);
189
- if (syncScheduler.fingerprints.has(fingerprint)) {
190
- continue;
191
- }
192
- const apiKey = (await adapter.resolveApiKey?.())?.trim() ||
193
- `xrk-workbuddy-${providerId}`;
194
- await wire.syncCommunityLlmProvider({
195
- providerId,
196
- displayName: providerId === "workbuddy-ai" ? "WorkBuddy AI" : "WorkBuddy",
197
- baseUrl,
198
- apiKey,
199
- models,
200
- });
201
- lastBaseUrlByProvider.set(providerId, baseUrl);
202
- syncScheduler.fingerprints.add(fingerprint);
203
- logger.info(`syncCommunityLlmProvider ok ${providerId} models=${models.length} baseUrl=${baseUrl}`);
204
- }
205
- catch (error) {
206
- allOk = false;
207
- logger.warn(`syncCommunityLlmProvider failed for ${providerId}`, error);
208
- }
209
- }
210
- return allOk;
211
- };
212
- syncScheduler.addSyncer(sync);
213
- void syncScheduler.runAll();
214
- const release = () => {
215
- disposed = true;
216
- for (const id of ids) {
217
- if (adaptersByProvider.get(id) === adapter) {
218
- adaptersByProvider.delete(id);
219
- }
220
- }
221
- syncScheduler.markUnsettled();
222
- };
223
- return Object.assign(release, {
224
- replace(next) {
225
- for (const id of ids) {
226
- if (adaptersByProvider.get(id) === adapter) {
227
- adaptersByProvider.delete(id);
228
- }
229
- }
230
- ids.splice(0, ids.length, ...next.map((p) => p.trim()).filter(Boolean));
231
- for (const id of ids)
232
- adaptersByProvider.set(id, adapter);
233
- syncScheduler.fingerprints.clear();
234
- syncScheduler.markUnsettled();
235
- void syncScheduler.runAll();
236
- },
237
- });
238
- },
239
- });
240
- root.provide("webServer", {
241
- register(route) {
242
- pushCordisWebServerRoute(http, route);
243
- return () => undefined;
244
- },
245
- registerUpgrade() {
246
- /* WorkBuddy status/probe are HTTP unary */
247
- },
248
- tapIndex() {
249
- return () => undefined;
250
- },
251
- });
252
- root.provide("rpc", {
253
- register(channel, handler) {
254
- const key = channel.endsWith("/") ? channel.slice(0, -1) : channel;
255
- rpc[key] = handler;
256
- },
257
- });
258
- let httpSealed = false;
259
- root.provide("connection", createCordisConnectionBridge({
260
- http,
261
- isSealed: () => httpSealed,
262
- onLateMiss: (p) => logger.warn(`late connection.fetch register missed active registry for ${p}`),
263
- }));
264
- root.provide("credentials", createCordisCredentialsBridge(resolveCompatHome(wire.xrkHome), packageName));
265
- // WorkBuddy registers status/probe via ctx.inject(["settings"], …);
266
- // without installSection it only warns and skips — keep a no-op stub.
267
- root.provide("settings", {
268
- installSection(_ctx, _ns, _section, _config, _hooks) {
269
- return () => undefined;
270
- },
271
- async update(_ns, _patch) {
272
- return undefined;
273
- },
274
- });
275
- // Patch effect onto context for cleanup registration from apply().
276
- const originalEffect = root.effect.bind(root);
277
- root.effect = ((fn, label) => {
278
- const owned = originalEffect(fn, label);
279
- disposers.push(() => {
280
- void owned();
281
- });
282
- return owned;
283
- });
284
- const childFibers = [];
285
- const registryPlugin = root.registry.plugin.bind(root.registry);
286
- root.registry.plugin = ((plugin, config, getOuterStack) => {
287
- const fiber = registryPlugin(plugin, config, getOuterStack);
288
- childFibers.push(fiber);
289
- return fiber;
290
- });
291
- try {
292
- const entry = pathToFileURL(path.join(pkgRoot, "lib", "index.js")).href;
293
- const mod = (await import(/* @vite-ignore */ entry));
294
- if (typeof mod.apply !== "function")
295
- return undefined;
296
- mod.apply(root, {});
297
- await Promise.all(childFibers.map((fiber) => fiber.await()));
298
- }
299
- catch (error) {
300
- logger.error("host apply failed", error);
301
- hostDisposed = true;
302
- for (const d of disposers.reverse())
303
- await d();
135
+ const adaptersByProvider = bridge.adaptersByProvider;
136
+ bridge.provideLlm(root);
137
+ session.provideHostSurfaces();
138
+ session.trackEffectsAndFibers();
139
+ const ok = await session.applyEntry(path.join(pkgRoot, "lib", "index.js"), {}, () => bridge.dispose());
140
+ if (!ok)
304
141
  return undefined;
305
- }
306
- httpSealed = true;
142
+ session.sealHttp();
307
143
  // Identity/catalog hydrate is async inside WorkBuddy; first registerAdapter
308
144
  // sync often skips. Retries cover boot-with-saved-credentials without waiting
309
145
  // solely on llm/adapters-updated delivery.
310
- syncScheduler.scheduleRetries();
146
+ bridge.scheduler.scheduleRetries();
311
147
  disposers.push(() => {
312
- hostDisposed = true;
148
+ bridge.dispose();
313
149
  });
314
150
  // Until every variant has synced Face, status polls (post-login) re-nudge.
315
- // Do not stop after the first variant succeeds — CN/AI register separately,
316
- // and a settled AI fingerprint used to silence CN's stale baseURL forever.
317
151
  // Also fill signed-in + empty `models` from catalog fallback (visibility gate).
152
+ // Cooldown avoids Termux log floods when CN/AI stay baseUrl-less.
153
+ let lastStatusNudgeAt = 0;
154
+ const STATUS_NUDGE_COOLDOWN_MS = 5_000;
318
155
  for (const row of http) {
319
156
  const inner = row.handle;
320
157
  row.handle = async (req, res, pathname) => {
@@ -387,26 +224,17 @@ export async function tryApplyWorkBuddyHost(pkgRoot, packageName, wire) {
387
224
  },
388
225
  };
389
226
  const handled = await inner(req, proxy, pathname);
390
- if (handled &&
391
- !syncScheduler.settled()) {
392
- void syncScheduler.runAll();
227
+ if (handled && !bridge.scheduler.settled()) {
228
+ const now = Date.now();
229
+ if (now - lastStatusNudgeAt >= STATUS_NUDGE_COOLDOWN_MS) {
230
+ lastStatusNudgeAt = now;
231
+ void bridge.scheduler.runAll();
232
+ }
393
233
  }
394
234
  return handled;
395
235
  };
396
236
  }
397
- await registerLiveHostApply(packageName, async () => {
398
- hostDisposed = true;
399
- for (const d of disposers.reverse())
400
- await d();
401
- try {
402
- await root.fiber.dispose();
403
- }
404
- catch {
405
- /* Cordis root may already be torn down */
406
- }
407
- });
408
- const gatedHttp = gateLiveHostHttp(packageName, http);
409
- const gatedRpc = gateLiveHostRpc(packageName, rpc);
237
+ const { http: gatedHttp, rpc: gatedRpc } = await session.finishLive(packageName);
410
238
  return {
411
239
  meta: {
412
240
  id: "dsh-workbuddy-connect-host",
@@ -1 +1 @@
1
- {"version":3,"file":"workbuddy-host.js","sourceRoot":"","sources":["../../src/dsh-compat/workbuddy-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workbuddy-host.js","sourceRoot":"","sources":["../../src/dsh-compat/workbuddy-host.ts"],"names":[],"mappings":"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"}
@@ -28,10 +28,13 @@ export declare function applySunflowerFreeEgressSettings(source: SunflowerFreeSe
28
28
  * (Host must not import the extension module graph).
29
29
  */
30
30
  export declare function clearSunflowerFreeProbeCache(env?: NodeJS.ProcessEnv): void;
31
+ /** Walk up from `from` until a directory containing the plugin manifest shows up. */
32
+ export declare function findSunflowerFreePluginRoot(from: string): string | undefined;
33
+ export declare function resolveSunflowerFreePluginRoot(cwd?: string): string | undefined;
31
34
  /**
32
35
  * Load the bundled sunflower-free provider plugin when its directory is
33
- * reachable from `cwd` (or an ancestor). Returns whether the plugin ended up
34
- * registered; a load error is swallowed because the lane is optional.
36
+ * reachable. Returns whether the plugin ended up registered; a load error is
37
+ * swallowed because the lane is optional.
35
38
  */
36
39
  export declare function ensureSunflowerFreePlugin(loader: PluginLoader, options?: {
37
40
  readonly cwd?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ensure.d.ts","sourceRoot":"","sources":["../../src/sunflower-free/ensure.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAE7D,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB,mBAAmB,CAAC;AAExD,0DAA0D;AAC1D,eAAO,MAAM,0BAA0B,mBAAmB,CAAC;AAE3D,4EAA4E;AAC5E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,kBAAkB,EAAE;QAC3B,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG;YAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;SAAE,CAAC;KAC/C,CAAC;CACH;AAQD;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,2BAA2B,GAClC,IAAI,CAgBN;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,IAAI,CAQN;AAyCD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACtC,OAAO,CAAC,OAAO,CAAC,CAuBlB;AAED,MAAM,WAAW,0BAA0B;IACzC,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,2BAA2B,EACnC,OAAO,GAAE;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACtC,OAAO,CAAC,0BAA0B,CAAC,CAoBrC"}
1
+ {"version":3,"file":"ensure.d.ts","sourceRoot":"","sources":["../../src/sunflower-free/ensure.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAE7D,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB,mBAAmB,CAAC;AAExD,0DAA0D;AAC1D,eAAO,MAAM,0BAA0B,mBAAmB,CAAC;AAE3D,4EAA4E;AAC5E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,kBAAkB,EAAE;QAC3B,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG;YAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;SAAE,CAAC;KAC/C,CAAC;CACH;AAQD;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,2BAA2B,GAClC,IAAI,CAgBN;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,IAAI,CAQN;AAID,qFAAqF;AACrF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc5E;AAsBD,wBAAgB,8BAA8B,CAC5C,GAAG,GAAE,MAAsB,GAC1B,MAAM,GAAG,SAAS,CAYpB;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACtC,OAAO,CAAC,OAAO,CAAC,CAuBlB;AAED,MAAM,WAAW,0BAA0B;IACzC,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,2BAA2B,EACnC,OAAO,GAAE;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACtC,OAAO,CAAC,0BAA0B,CAAC,CAoBrC"}
@@ -7,9 +7,10 @@
7
7
  * brand simply never reaches the registry and the provider stays out of the
8
8
  * catalog — no boot failure either way.
9
9
  *
10
- * Distribution note: this resolves against a source tree / packaged desktop
11
- * tree that ships `extensions/`. The npm CLI tarball does not include that
12
- * directory yet, so on a bare CLI install this is a no-op (returns false).
10
+ * Distribution: CLI release stage copies the plugin to
11
+ * `@xrkseek/harness-cli/extensions/xrk-sunflower-free`. Desktop afterPack
12
+ * places the same tree under `resources/host/extensions/`. Discovery walks
13
+ * from the CLI entry, this module, and cwd until that layout appears.
13
14
  *
14
15
  * Live remount (Settings save): apply egress env → drop probe cache → unload
15
16
  * plugin (dispose sidecar) → load again → caller rewires LLM brands. Probe
@@ -19,6 +20,7 @@
19
20
  import { existsSync, unlinkSync } from "node:fs";
20
21
  import { homedir } from "node:os";
21
22
  import path from "node:path";
23
+ import { fileURLToPath } from "node:url";
22
24
  export const SUNFLOWER_FREE_PLUGIN_ID = "xrk-sunflower-free";
23
25
  /** Registry brand id contributed by the plugin (must match plugin.mjs). */
24
26
  export const SUNFLOWER_FREE_BRAND_ID = "sunflower-free";
@@ -75,12 +77,17 @@ export function clearSunflowerFreeProbeCache(env = process.env) {
75
77
  }
76
78
  const RELATIVE_ROOT = path.join("extensions", SUNFLOWER_FREE_PLUGIN_ID);
77
79
  /** Walk up from `from` until a directory containing the plugin manifest shows up. */
78
- function findPluginRoot(from) {
80
+ export function findSunflowerFreePluginRoot(from) {
79
81
  let dir = path.resolve(from);
80
82
  for (;;) {
81
83
  const candidate = path.join(dir, RELATIVE_ROOT);
82
84
  if (existsSync(path.join(candidate, "xrk.plugin.json")))
83
85
  return candidate;
86
+ // Packaged CLI: extensions next to package root while we started in dist/.
87
+ const nested = path.join(dir, "..", RELATIVE_ROOT);
88
+ if (existsSync(path.join(nested, "xrk.plugin.json"))) {
89
+ return path.resolve(nested);
90
+ }
84
91
  const parent = path.dirname(dir);
85
92
  if (parent === dir)
86
93
  return undefined;
@@ -91,23 +98,32 @@ function findPluginRoot(from) {
91
98
  * Roots worth walking up from, most specific first:
92
99
  * 1. explicit `XRK_SUNFLOWER_FREE_ROOT`
93
100
  * 2. the running CLI entry (`…/node_modules/@xrkseek/harness-cli/dist/bin.js`)
94
- * — a global npm install is never launched from its own package dir
95
- * 3. the process cwd (desktop Host is spawned with cwd = `resources/host`)
101
+ * 3. this module (nested under harness-cli or monorepo packages/server/http)
102
+ * 4. process cwd (desktop Host is spawned with cwd = `resources/host`)
96
103
  */
97
104
  function pluginRootCandidates(cwd) {
98
105
  const out = [];
99
106
  const argv1 = process.argv[1]?.trim();
100
107
  if (argv1)
101
108
  out.push(path.dirname(path.resolve(argv1)));
109
+ try {
110
+ out.push(path.dirname(fileURLToPath(import.meta.url)));
111
+ }
112
+ catch {
113
+ /* non-ESM host */
114
+ }
102
115
  out.push(cwd);
103
116
  return out;
104
117
  }
105
- function resolvePluginRoot(cwd) {
118
+ export function resolveSunflowerFreePluginRoot(cwd = process.cwd()) {
106
119
  const explicitRoot = process.env.XRK_SUNFLOWER_FREE_ROOT?.trim();
107
- if (explicitRoot)
108
- return explicitRoot;
120
+ if (explicitRoot) {
121
+ return existsSync(path.join(explicitRoot, "xrk.plugin.json"))
122
+ ? explicitRoot
123
+ : undefined;
124
+ }
109
125
  for (const start of pluginRootCandidates(cwd)) {
110
- const root = findPluginRoot(start);
126
+ const root = findSunflowerFreePluginRoot(start);
111
127
  if (root)
112
128
  return root;
113
129
  }
@@ -115,13 +131,13 @@ function resolvePluginRoot(cwd) {
115
131
  }
116
132
  /**
117
133
  * Load the bundled sunflower-free provider plugin when its directory is
118
- * reachable from `cwd` (or an ancestor). Returns whether the plugin ended up
119
- * registered; a load error is swallowed because the lane is optional.
134
+ * reachable. Returns whether the plugin ended up registered; a load error is
135
+ * swallowed because the lane is optional.
120
136
  */
121
137
  export async function ensureSunflowerFreePlugin(loader, options = {}) {
122
138
  if (loader.list().some((p) => p.id === SUNFLOWER_FREE_PLUGIN_ID))
123
139
  return true;
124
- const root = resolvePluginRoot(options.cwd ?? process.cwd());
140
+ const root = resolveSunflowerFreePluginRoot(options.cwd ?? process.cwd());
125
141
  if (!root || !existsSync(path.join(root, "xrk.plugin.json")))
126
142
  return false;
127
143
  let hits;
@@ -1 +1 @@
1
- {"version":3,"file":"ensure.js","sourceRoot":"","sources":["../../src/sunflower-free/ensure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ensure.js","sourceRoot":"","sources":["../../src/sunflower-free/ensure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,CAAC,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AAE7D,2EAA2E;AAC3E,MAAM,CAAC,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;AAExD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,0BAA0B,GAAG,gBAAgB,CAAC;AAS3D,yEAAyE;AACzE,MAAM,UAAU,GAAyD;IACvE,CAAC,eAAe,EAAE,qBAAqB,CAAC;IACxC,CAAC,WAAW,EAAE,0BAA0B,CAAC;CAC1C,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,gCAAgC,CAC9C,MAAmC;IAEnC,IAAI,KAAK,GAA4B,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,KAAK,CAAC;QAC7E,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1D,KAAK,GAAG,GAA8B,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gEAAgE;IAClE,CAAC;IACD,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;;YAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAC1C,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;IACxD,CAAC;AACH,CAAC;AAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;AAExE,qFAAqF;AACrF,MAAM,UAAU,2BAA2B,CAAC,IAAY;IACtD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,SAAS,CAAC;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAC1E,2EAA2E;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QACnD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QACrC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,GAAW;IACvC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACtC,IAAI,KAAK;QAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE,CAAC;IACjE,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAC3D,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;IACxB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,MAAoB,EACpB,UAAqC,EAAE;IAEvC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,wBAAwB,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9E,MAAM,IAAI,GAAG,8BAA8B,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3E,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,wBAAwB,CAAC,CAAC;IACzE,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,yCAAyC,MAAM,EAAE,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AASD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAoB,EACpB,MAAmC,EACnC,UAAqC,EAAE;IAEvC,gCAAgC,CAAC,MAAM,CAAC,CAAC;IACzC,4BAA4B,EAAE,CAAC;IAE/B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,wBAAwB,CAAC,EAAE,CAAC;QACjE,MAAM,MAAM,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;QAClD,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,iFAAiF;IACjF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,GAAG,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;YAAS,CAAC;QACT,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;;YACrE,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,SAAS,CAAC;IACzD,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xrkseek/harness",
3
- "version": "0.7.1",
3
+ "version": "0.7.3",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {