pi-fabric 0.62.4 → 0.62.5

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.
@@ -1,4 +1,4 @@
1
- import type { ToolDefinition } from "@earendil-works/pi-coding-agent";
1
+ import type { ExtensionRunner, ToolDefinition } from "@earendil-works/pi-coding-agent";
2
2
  import { type FabricToolCaptureConfig } from "../config.js";
3
3
  import { CapturedToolCatalog } from "./catalog.js";
4
4
  export interface RegisteredToolCaptureController {
@@ -11,5 +11,10 @@ export interface RegisteredToolCaptureOptions {
11
11
  initialPolicy?: FabricToolCaptureConfig;
12
12
  onCatalogRefresh?: () => void;
13
13
  }
14
+ type ExtensionRunnerConstructor = {
15
+ prototype: ExtensionRunner;
16
+ };
17
+ export declare const bundleExtensionRunnerConstructors: (bundleDir: string) => Promise<ExtensionRunnerConstructor[]>;
14
18
  export declare const installRegisteredToolCapture: (options: RegisteredToolCaptureOptions) => Promise<RegisteredToolCaptureController>;
19
+ export {};
15
20
  //# sourceMappingURL=interceptor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../../src/capture/interceptor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,cAAc,EACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAyB,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAQnD,MAAM,WAAW,+BAA+B;IAC9C,SAAS,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACjD,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,gBAAgB,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAChD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,aAAa,CAAC,EAAE,uBAAuB,CAAC;IAOxC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AA0GD,eAAO,MAAM,4BAA4B,GACvC,SAAS,4BAA4B,KACpC,OAAO,CAAC,+BAA+B,CAuCzC,CAAC"}
1
+ {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../../src/capture/interceptor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EAEf,cAAc,EACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAyB,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAQnD,MAAM,WAAW,+BAA+B;IAC9C,SAAS,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACjD,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,gBAAgB,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAChD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,aAAa,CAAC,EAAE,uBAAuB,CAAC;IAOxC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AA0BD,KAAK,0BAA0B,GAAG;IAChC,SAAS,EAAE,eAAe,CAAC;CAC5B,CAAC;AAaF,eAAO,MAAM,iCAAiC,GAC5C,WAAW,MAAM,KAChB,OAAO,CAAC,0BAA0B,EAAE,CAuBtC,CAAC;AAmFF,eAAO,MAAM,4BAA4B,GACvC,SAAS,4BAA4B,KACpC,OAAO,CAAC,+BAA+B,CAuCzC,CAAC"}
package/dist/index.js CHANGED
@@ -411,7 +411,7 @@ var registerFabricActorHostEventObservers = (pi, observer) => {
411
411
  };
412
412
 
413
413
  // src/capture/interceptor.ts
414
- import { existsSync, readFileSync, realpathSync } from "node:fs";
414
+ import { existsSync, readdirSync, readFileSync, realpathSync } from "node:fs";
415
415
  import path from "node:path";
416
416
  import { pathToFileURL } from "node:url";
417
417
  var HUB_SYMBOL = Symbol.for("pi-fabric.registered-tool-capture.v1");
@@ -432,6 +432,29 @@ var clonePolicy = (config) => ({
432
432
  risks: { ...config.risks },
433
433
  advisory: { ...config.advisory }
434
434
  });
435
+ var isExtensionRunnerConstructor = (value) => typeof value === "function" && typeof value.prototype === "object" && typeof value.prototype.getAllRegisteredTools === "function";
436
+ var bundleExtensionRunnerConstructors = async (bundleDir) => {
437
+ const chunksDir = path.join(bundleDir, "chunks");
438
+ if (!existsSync(chunksDir)) return [];
439
+ let files;
440
+ try {
441
+ files = readdirSync(chunksDir);
442
+ } catch {
443
+ return [];
444
+ }
445
+ const constructors = /* @__PURE__ */ new Set();
446
+ for (const file of files) {
447
+ if (!file.endsWith(".js")) continue;
448
+ try {
449
+ const module = await import(pathToFileURL(path.join(chunksDir, file)).href);
450
+ for (const exported of Object.values(module)) {
451
+ if (isExtensionRunnerConstructor(exported)) constructors.add(exported);
452
+ }
453
+ } catch {
454
+ }
455
+ }
456
+ return [...constructors];
457
+ };
435
458
  var captureHub = (Runner) => {
436
459
  const prototype = Runner.prototype;
437
460
  const existing = prototype[HUB_SYMBOL];
@@ -490,6 +513,11 @@ var extensionRunnerConstructors = async () => {
490
513
  if (hostModule.ExtensionRunner) constructors.add(hostModule.ExtensionRunner);
491
514
  } catch {
492
515
  }
516
+ for (const Runner of await bundleExtensionRunnerConstructors(
517
+ path.join(packageRoot, "dist", "bundle")
518
+ )) {
519
+ constructors.add(Runner);
520
+ }
493
521
  }
494
522
  if (constructors.size === 0) {
495
523
  try {