all repos — sz-chrome-remote-cdp @ master

pi-browser-harness, patched to drive a Chrome on another host over CDP, with castle_cdp_search web search

scripts/check-manifest.ts (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
// Mirrors HOST_PROVIDED_EXTENSION_PACKAGES in pi-coding-agent's
// resource-loader.js and the list in its docs/packages.md. Pi provides these
// packages to extensions at runtime; declaring them in dependencies makes pi
// emit an extension warning and risks duplicate runtime modules.
export const HOST_PROVIDED_EXTENSION_PACKAGES: ReadonlySet<string> = new Set([
  "@earendil-works/pi-agent-core",
  "@earendil-works/pi-ai",
  "@earendil-works/pi-coding-agent",
  "@earendil-works/pi-tui",
  "@mariozechner/pi-agent-core",
  "@mariozechner/pi-ai",
  "@mariozechner/pi-coding-agent",
  "@mariozechner/pi-tui",
  "@sinclair/typebox",
  "typebox",
]);

export type Manifest = {
  readonly dependencies?: unknown;
  readonly peerDependencies?: unknown;
  readonly devDependencies?: unknown;
};

// A host-provided package belongs in peerDependencies with a "*" range only.
export function findHostProvidedDependencies(
  manifest: Manifest
): ReadonlyArray<string> {
  const dependencies = manifest.dependencies;
  if (
    typeof dependencies !== "object" ||
    dependencies === null ||
    Array.isArray(dependencies)
  ) {
    return [];
  }
  const names = Object.keys(dependencies).filter((name) =>
    HOST_PROVIDED_EXTENSION_PACKAGES.has(name)
  );
  return names.sort();
}