fix(plugins): bundle wildcard-exported pi-* subpaths
The first pass only enumerated non-wildcard `exports` entries, so patterns like pi-ai's `./oauth/*` left every concrete target (`@oh-my-pi/pi-ai/oauth/anthropic` and friends) outside the bundled registry. Compiled-mode resolution then fell back through `Bun.resolveSync` → original peer specifier → missing peer dep, reproducing the original `Cannot find module` failure for any plugin that imports a wildcard-only subpath (e.g. `@mariozechner/pi-ai/utils/oauth/anthropic`, remapped via PI_SUBPATH_REMAPS). The generator now runs a second pass over wildcard exports, parses each single-asterisk pattern into prefix/suffix halves, globs the matching source directory, and emits a registry entry per concrete `.ts` file. Root catch-all wildcards (`./*` / `./*.js`) are skipped on purpose — they'd static-import top-level files like the coding-agent's own `cli.ts` and explode the bundle through the binary entry's transitive graph. Test, `.d`, `.generated`, `.bench` files and `index` basenames are filtered out so the registry stays focused on importable surfaces. A new test case in test/extensibility/legacy-pi-bundled-subpath-overrides.test.ts asserts the reviewer's cited `@oh-my-pi/pi-ai/oauth/anthropic` key now routes through the virtual namespace and that root catch-all wildcards remain unbundled. Fixes #3442
This commit is contained in:
@@ -104,8 +104,65 @@ function bindingForSubpath(identifier: string, subpath: string): string {
|
||||
return `bundled${identifier}${segments.join("")}`;
|
||||
}
|
||||
|
||||
// Skip files whose presence on disk is meaningful to the build pipeline rather
|
||||
// than something a plugin would import: editor backups (`_*`, `.*`), tests,
|
||||
// declaration files, and conventional `index` files (already covered by the
|
||||
// non-wildcard root of the same directory when one is declared).
|
||||
const SKIPPED_WILDCARD_BASENAMES = new Set(["index"]);
|
||||
|
||||
function isSafeWildcardBasename(basename: string): boolean {
|
||||
if (!basename || basename.startsWith(".") || basename.startsWith("_")) return false;
|
||||
if (SKIPPED_WILDCARD_BASENAMES.has(basename)) return false;
|
||||
if (/\.(test|spec|d|generated|bench)$/.test(basename)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
interface WildcardPattern {
|
||||
readonly exportPrefix: string;
|
||||
readonly exportSuffix: string;
|
||||
readonly sourcePrefix: string;
|
||||
readonly sourceSuffix: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a single-asterisk Node exports wildcard into its prefix/suffix halves.
|
||||
* Returns `null` for patterns with more than one asterisk or non-relative
|
||||
* sources — neither shows up in our packages today and the generator stays
|
||||
* conservative rather than guessing.
|
||||
*/
|
||||
function parseWildcardPattern(exportKey: string, sourcePattern: string): WildcardPattern | null {
|
||||
const exportStar = exportKey.indexOf("*");
|
||||
const sourceStar = sourcePattern.indexOf("*");
|
||||
if (exportStar === -1 || sourceStar === -1) return null;
|
||||
if (exportKey.indexOf("*", exportStar + 1) !== -1) return null;
|
||||
if (sourcePattern.indexOf("*", sourceStar + 1) !== -1) return null;
|
||||
if (!sourcePattern.startsWith("./")) return null;
|
||||
return {
|
||||
exportPrefix: exportKey.slice(2, exportStar),
|
||||
exportSuffix: exportKey.slice(exportStar + 1),
|
||||
sourcePrefix: sourcePattern.slice(2, sourceStar),
|
||||
sourceSuffix: sourcePattern.slice(sourceStar + 1),
|
||||
};
|
||||
}
|
||||
|
||||
function exportImportTarget(value: unknown): string | null {
|
||||
if (typeof value === "string") return value;
|
||||
if (value && typeof value === "object" && "import" in value) {
|
||||
const target = (value as { import?: unknown }).import;
|
||||
return typeof target === "string" ? target : null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
async function collectEntries(): Promise<RegistryEntry[]> {
|
||||
const entries: RegistryEntry[] = [];
|
||||
const seenKeys = new Set<string>();
|
||||
function pushEntry(key: string, binding: string, importSpecifier: string): void {
|
||||
if (seenKeys.has(key)) return;
|
||||
seenKeys.add(key);
|
||||
entries.push({ key, binding, importSpecifier });
|
||||
}
|
||||
|
||||
for (const pkg of PACKAGES) {
|
||||
const manifestPath = path.join(repoRoot, pkg.dir, "package.json");
|
||||
const manifest = (await Bun.file(manifestPath).json()) as { name?: string; exports?: Record<string, unknown> };
|
||||
@@ -116,20 +173,61 @@ async function collectEntries(): Promise<RegistryEntry[]> {
|
||||
}
|
||||
const exportsField = manifest.exports ?? {};
|
||||
// Root: shim if one is declared, otherwise the canonical package.
|
||||
entries.push({
|
||||
key: pkg.name,
|
||||
binding: `bundled${pkg.identifier}`,
|
||||
importSpecifier: pkg.rootShim ?? pkg.name,
|
||||
});
|
||||
// Each non-wildcard subpath export becomes its own registry key.
|
||||
pushEntry(pkg.name, `bundled${pkg.identifier}`, pkg.rootShim ?? pkg.name);
|
||||
// Pass 1: every non-wildcard subpath export becomes its own registry key.
|
||||
for (const exportKey in exportsField) {
|
||||
if (!exportKey.startsWith("./") || exportKey === "." || exportKey.includes("*")) continue;
|
||||
const subpath = exportKey.slice(2);
|
||||
entries.push({
|
||||
key: `${pkg.name}/${subpath}`,
|
||||
binding: bindingForSubpath(pkg.identifier, subpath),
|
||||
importSpecifier: `${pkg.name}/${subpath}`,
|
||||
});
|
||||
pushEntry(`${pkg.name}/${subpath}`, bindingForSubpath(pkg.identifier, subpath), `${pkg.name}/${subpath}`);
|
||||
}
|
||||
// Pass 2: expand wildcard exports against the source tree so plugins can
|
||||
// import concrete subpath targets — e.g. `@(scope)/pi-ai/oauth/anthropic`
|
||||
// remaps to `@oh-my-pi/pi-ai/oauth/anthropic`, covered by pi-ai's
|
||||
// `./oauth/*` export pattern, which Node only resolves at runtime against
|
||||
// a real `node_modules`. Compiled bunfs can't resolve at runtime, so we
|
||||
// statically enumerate the concrete files now (issue #3442 follow-up).
|
||||
// Root catch-all patterns (`./*`, `./*.js`) are skipped intentionally:
|
||||
// the pi-coding-agent root is the binary entry's source tree, so static-
|
||||
// importing every top-level file would drag `cli.ts`/`main.ts` through a
|
||||
// second graph and explode the bundle for no plugin-facing benefit.
|
||||
for (const exportKey in exportsField) {
|
||||
if (!exportKey.startsWith("./") || exportKey === "." || !exportKey.includes("*")) continue;
|
||||
const sourcePattern = exportImportTarget(exportsField[exportKey]);
|
||||
if (!sourcePattern) continue;
|
||||
const pattern = parseWildcardPattern(exportKey, sourcePattern);
|
||||
if (!pattern) continue;
|
||||
// Limit to JS-loadable source modules. `./prompts/*` mapping to
|
||||
// `*.md` would emit a `import * as foo from "@(pkg)/prompts/<name>"`
|
||||
// that Bun can't load as a JS module.
|
||||
if (!/\.(ts|tsx|mts|cts|js|mjs|cjs|jsx)$/.test(pattern.sourceSuffix)) continue;
|
||||
// Skip root catch-alls (prefix is empty before the wildcard). See
|
||||
// the explanatory block comment above for the bundle-explosion
|
||||
// reasoning. Named wildcards like `./oauth/*` keep `oauth/` here.
|
||||
if (pattern.exportPrefix === "" || pattern.exportPrefix === "/") continue;
|
||||
|
||||
const sourceDir = path.join(repoRoot, pkg.dir, pattern.sourcePrefix);
|
||||
try {
|
||||
const glob = new Bun.Glob(`*${pattern.sourceSuffix}`);
|
||||
const matches: string[] = [];
|
||||
for await (const match of glob.scan({ cwd: sourceDir, onlyFiles: true })) {
|
||||
matches.push(match);
|
||||
}
|
||||
matches.sort();
|
||||
for (const match of matches) {
|
||||
if (!match.endsWith(pattern.sourceSuffix)) continue;
|
||||
const basename = match.slice(0, match.length - pattern.sourceSuffix.length);
|
||||
if (!isSafeWildcardBasename(basename)) continue;
|
||||
if (basename.includes("/")) continue;
|
||||
const subpath = `${pattern.exportPrefix}${basename}${pattern.exportSuffix}`;
|
||||
const key = `${pkg.name}/${subpath}`;
|
||||
pushEntry(key, bindingForSubpath(pkg.identifier, subpath), key);
|
||||
}
|
||||
} catch (err) {
|
||||
// Missing source dir means the wildcard is declared in
|
||||
// package.json but the implementation tree hasn't shipped that
|
||||
// folder yet. Leave it to runtime resolution.
|
||||
if ((err as NodeJS.ErrnoException).code !== "ENOENT") throw err;
|
||||
}
|
||||
}
|
||||
}
|
||||
entries.push({
|
||||
@@ -137,16 +235,14 @@ async function collectEntries(): Promise<RegistryEntry[]> {
|
||||
binding: "bundledTypeBoxShim",
|
||||
importSpecifier: TYPEBOX_SHIM_IMPORT,
|
||||
});
|
||||
const seen = new Set<string>();
|
||||
const seenBindings = new Set<string>();
|
||||
for (const entry of entries) {
|
||||
if (seen.has(entry.key)) {
|
||||
throw new Error(`generate-legacy-pi-bundled-registry: duplicate registry key ${entry.key}`);
|
||||
if (seenBindings.has(entry.binding)) {
|
||||
throw new Error(
|
||||
`generate-legacy-pi-bundled-registry: duplicate binding ${entry.binding} for key ${entry.key}`,
|
||||
);
|
||||
}
|
||||
seen.add(entry.key);
|
||||
if (seen.has(entry.binding)) {
|
||||
throw new Error(`generate-legacy-pi-bundled-registry: duplicate binding ${entry.binding}`);
|
||||
}
|
||||
seen.add(entry.binding);
|
||||
seenBindings.add(entry.binding);
|
||||
}
|
||||
return entries;
|
||||
}
|
||||
|
||||
@@ -12,6 +12,16 @@
|
||||
export const BUNDLED_PI_REGISTRY_KEYS: ReadonlySet<string> = new Set([
|
||||
"@oh-my-pi/pi-agent-core",
|
||||
"@oh-my-pi/pi-agent-core/compaction",
|
||||
"@oh-my-pi/pi-agent-core/compaction/branch-summarization",
|
||||
"@oh-my-pi/pi-agent-core/compaction/compaction",
|
||||
"@oh-my-pi/pi-agent-core/compaction/entries",
|
||||
"@oh-my-pi/pi-agent-core/compaction/errors",
|
||||
"@oh-my-pi/pi-agent-core/compaction/messages",
|
||||
"@oh-my-pi/pi-agent-core/compaction/openai",
|
||||
"@oh-my-pi/pi-agent-core/compaction/pruning",
|
||||
"@oh-my-pi/pi-agent-core/compaction/shake",
|
||||
"@oh-my-pi/pi-agent-core/compaction/tool-protection",
|
||||
"@oh-my-pi/pi-agent-core/compaction/utils",
|
||||
"@oh-my-pi/pi-ai",
|
||||
"@oh-my-pi/pi-ai/auth-broker",
|
||||
"@oh-my-pi/pi-ai/auth-gateway",
|
||||
@@ -21,6 +31,133 @@ export const BUNDLED_PI_REGISTRY_KEYS: ReadonlySet<string> = new Set([
|
||||
"@oh-my-pi/pi-ai/registry",
|
||||
"@oh-my-pi/pi-ai/registry/oauth",
|
||||
"@oh-my-pi/pi-ai/utils/schema",
|
||||
"@oh-my-pi/pi-ai/auth-broker/client",
|
||||
"@oh-my-pi/pi-ai/auth-broker/discover",
|
||||
"@oh-my-pi/pi-ai/auth-broker/refresher",
|
||||
"@oh-my-pi/pi-ai/auth-broker/remote-store",
|
||||
"@oh-my-pi/pi-ai/auth-broker/server",
|
||||
"@oh-my-pi/pi-ai/auth-broker/snapshot-cache",
|
||||
"@oh-my-pi/pi-ai/auth-broker/types",
|
||||
"@oh-my-pi/pi-ai/auth-broker/wire-schemas",
|
||||
"@oh-my-pi/pi-ai/auth-gateway/http",
|
||||
"@oh-my-pi/pi-ai/auth-gateway/server",
|
||||
"@oh-my-pi/pi-ai/auth-gateway/types",
|
||||
"@oh-my-pi/pi-ai/providers/amazon-bedrock",
|
||||
"@oh-my-pi/pi-ai/providers/anthropic-client",
|
||||
"@oh-my-pi/pi-ai/providers/anthropic-messages-server-schema",
|
||||
"@oh-my-pi/pi-ai/providers/anthropic-messages-server",
|
||||
"@oh-my-pi/pi-ai/providers/anthropic-wire",
|
||||
"@oh-my-pi/pi-ai/providers/anthropic",
|
||||
"@oh-my-pi/pi-ai/providers/aws-credentials",
|
||||
"@oh-my-pi/pi-ai/providers/aws-eventstream",
|
||||
"@oh-my-pi/pi-ai/providers/aws-sigv4",
|
||||
"@oh-my-pi/pi-ai/providers/azure-openai-responses",
|
||||
"@oh-my-pi/pi-ai/providers/cursor",
|
||||
"@oh-my-pi/pi-ai/providers/devin",
|
||||
"@oh-my-pi/pi-ai/providers/error-message",
|
||||
"@oh-my-pi/pi-ai/providers/github-copilot-headers",
|
||||
"@oh-my-pi/pi-ai/providers/gitlab-duo",
|
||||
"@oh-my-pi/pi-ai/providers/google-auth",
|
||||
"@oh-my-pi/pi-ai/providers/google-gemini-cli",
|
||||
"@oh-my-pi/pi-ai/providers/google-shared",
|
||||
"@oh-my-pi/pi-ai/providers/google-types",
|
||||
"@oh-my-pi/pi-ai/providers/google-vertex",
|
||||
"@oh-my-pi/pi-ai/providers/google",
|
||||
"@oh-my-pi/pi-ai/providers/grammar",
|
||||
"@oh-my-pi/pi-ai/providers/kimi",
|
||||
"@oh-my-pi/pi-ai/providers/mock",
|
||||
"@oh-my-pi/pi-ai/providers/ollama",
|
||||
"@oh-my-pi/pi-ai/providers/openai-anthropic-shim",
|
||||
"@oh-my-pi/pi-ai/providers/openai-chat-server-schema",
|
||||
"@oh-my-pi/pi-ai/providers/openai-chat-server",
|
||||
"@oh-my-pi/pi-ai/providers/openai-chat-wire",
|
||||
"@oh-my-pi/pi-ai/providers/openai-codex-responses",
|
||||
"@oh-my-pi/pi-ai/providers/openai-completions",
|
||||
"@oh-my-pi/pi-ai/providers/openai-reasoning-fallback",
|
||||
"@oh-my-pi/pi-ai/providers/openai-responses-server-schema",
|
||||
"@oh-my-pi/pi-ai/providers/openai-responses-server",
|
||||
"@oh-my-pi/pi-ai/providers/openai-responses-wire",
|
||||
"@oh-my-pi/pi-ai/providers/openai-responses",
|
||||
"@oh-my-pi/pi-ai/providers/openai-shared",
|
||||
"@oh-my-pi/pi-ai/providers/pi-native-client",
|
||||
"@oh-my-pi/pi-ai/providers/pi-native-server",
|
||||
"@oh-my-pi/pi-ai/providers/register-builtins",
|
||||
"@oh-my-pi/pi-ai/providers/synthetic",
|
||||
"@oh-my-pi/pi-ai/providers/transform-messages",
|
||||
"@oh-my-pi/pi-ai/providers/vision-guard",
|
||||
"@oh-my-pi/pi-ai/providers/openai-codex/request-transformer",
|
||||
"@oh-my-pi/pi-ai/providers/openai-codex/response-handler",
|
||||
"@oh-my-pi/pi-ai/usage/claude",
|
||||
"@oh-my-pi/pi-ai/usage/gemini",
|
||||
"@oh-my-pi/pi-ai/usage/github-copilot",
|
||||
"@oh-my-pi/pi-ai/usage/google-antigravity",
|
||||
"@oh-my-pi/pi-ai/usage/kimi",
|
||||
"@oh-my-pi/pi-ai/usage/minimax-code",
|
||||
"@oh-my-pi/pi-ai/usage/openai-codex-reset",
|
||||
"@oh-my-pi/pi-ai/usage/openai-codex",
|
||||
"@oh-my-pi/pi-ai/usage/opencode-go",
|
||||
"@oh-my-pi/pi-ai/usage/shared",
|
||||
"@oh-my-pi/pi-ai/usage/zai",
|
||||
"@oh-my-pi/pi-ai/utils/abort",
|
||||
"@oh-my-pi/pi-ai/utils/anthropic-auth",
|
||||
"@oh-my-pi/pi-ai/utils/deterministic-id",
|
||||
"@oh-my-pi/pi-ai/utils/empty-completion-retry",
|
||||
"@oh-my-pi/pi-ai/utils/event-stream",
|
||||
"@oh-my-pi/pi-ai/utils/foundry",
|
||||
"@oh-my-pi/pi-ai/utils/google-validation",
|
||||
"@oh-my-pi/pi-ai/utils/http-inspector",
|
||||
"@oh-my-pi/pi-ai/utils/idle-iterator",
|
||||
"@oh-my-pi/pi-ai/utils/json-parse",
|
||||
"@oh-my-pi/pi-ai/utils/openai-http",
|
||||
"@oh-my-pi/pi-ai/utils/openrouter-headers",
|
||||
"@oh-my-pi/pi-ai/utils/overflow",
|
||||
"@oh-my-pi/pi-ai/utils/parse-bind",
|
||||
"@oh-my-pi/pi-ai/utils/provider-response",
|
||||
"@oh-my-pi/pi-ai/utils/proxy",
|
||||
"@oh-my-pi/pi-ai/utils/request-debug",
|
||||
"@oh-my-pi/pi-ai/utils/retry-after",
|
||||
"@oh-my-pi/pi-ai/utils/retry",
|
||||
"@oh-my-pi/pi-ai/utils/sdk-stream-timeout",
|
||||
"@oh-my-pi/pi-ai/utils/sse-debug",
|
||||
"@oh-my-pi/pi-ai/utils/stream-markup-healing",
|
||||
"@oh-my-pi/pi-ai/utils/thinking-loop",
|
||||
"@oh-my-pi/pi-ai/utils/tool-choice",
|
||||
"@oh-my-pi/pi-ai/utils/validation",
|
||||
"@oh-my-pi/pi-ai/oauth/anthropic",
|
||||
"@oh-my-pi/pi-ai/oauth/callback-server",
|
||||
"@oh-my-pi/pi-ai/oauth/cursor",
|
||||
"@oh-my-pi/pi-ai/oauth/devin",
|
||||
"@oh-my-pi/pi-ai/oauth/github-copilot",
|
||||
"@oh-my-pi/pi-ai/oauth/gitlab-duo",
|
||||
"@oh-my-pi/pi-ai/oauth/google-antigravity",
|
||||
"@oh-my-pi/pi-ai/oauth/google-gemini-cli",
|
||||
"@oh-my-pi/pi-ai/oauth/google-oauth-shared",
|
||||
"@oh-my-pi/pi-ai/oauth/kimi",
|
||||
"@oh-my-pi/pi-ai/oauth/minimax-code",
|
||||
"@oh-my-pi/pi-ai/oauth/openai-codex",
|
||||
"@oh-my-pi/pi-ai/oauth/opencode",
|
||||
"@oh-my-pi/pi-ai/oauth/perplexity",
|
||||
"@oh-my-pi/pi-ai/oauth/pkce",
|
||||
"@oh-my-pi/pi-ai/oauth/types",
|
||||
"@oh-my-pi/pi-ai/oauth/wafer",
|
||||
"@oh-my-pi/pi-ai/oauth/xai-oauth",
|
||||
"@oh-my-pi/pi-ai/oauth/xiaomi",
|
||||
"@oh-my-pi/pi-ai/utils/schema/adapt",
|
||||
"@oh-my-pi/pi-ai/utils/schema/compatibility",
|
||||
"@oh-my-pi/pi-ai/utils/schema/dereference",
|
||||
"@oh-my-pi/pi-ai/utils/schema/draft",
|
||||
"@oh-my-pi/pi-ai/utils/schema/equality",
|
||||
"@oh-my-pi/pi-ai/utils/schema/fields",
|
||||
"@oh-my-pi/pi-ai/utils/schema/json-schema-validator",
|
||||
"@oh-my-pi/pi-ai/utils/schema/meta-validator",
|
||||
"@oh-my-pi/pi-ai/utils/schema/normalize",
|
||||
"@oh-my-pi/pi-ai/utils/schema/spill",
|
||||
"@oh-my-pi/pi-ai/utils/schema/stamps",
|
||||
"@oh-my-pi/pi-ai/utils/schema/strict-tool-validation",
|
||||
"@oh-my-pi/pi-ai/utils/schema/types",
|
||||
"@oh-my-pi/pi-ai/utils/schema/typescript",
|
||||
"@oh-my-pi/pi-ai/utils/schema/wire",
|
||||
"@oh-my-pi/pi-ai/utils/schema/zod-decontaminate",
|
||||
"@oh-my-pi/pi-coding-agent",
|
||||
"@oh-my-pi/pi-coding-agent/async",
|
||||
"@oh-my-pi/pi-coding-agent/autoresearch",
|
||||
@@ -69,8 +206,782 @@ export const BUNDLED_PI_REGISTRY_KEYS: ReadonlySet<string> = new Set([
|
||||
"@oh-my-pi/pi-coding-agent/tui",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers",
|
||||
"@oh-my-pi/pi-coding-agent/web/search",
|
||||
"@oh-my-pi/pi-coding-agent/async/job-manager",
|
||||
"@oh-my-pi/pi-coding-agent/autoresearch/dashboard",
|
||||
"@oh-my-pi/pi-coding-agent/autoresearch/git",
|
||||
"@oh-my-pi/pi-coding-agent/autoresearch/helpers",
|
||||
"@oh-my-pi/pi-coding-agent/autoresearch/state",
|
||||
"@oh-my-pi/pi-coding-agent/autoresearch/storage",
|
||||
"@oh-my-pi/pi-coding-agent/autoresearch/types",
|
||||
"@oh-my-pi/pi-coding-agent/autoresearch/tools/init-experiment",
|
||||
"@oh-my-pi/pi-coding-agent/autoresearch/tools/log-experiment",
|
||||
"@oh-my-pi/pi-coding-agent/autoresearch/tools/run-experiment",
|
||||
"@oh-my-pi/pi-coding-agent/autoresearch/tools/update-notes",
|
||||
"@oh-my-pi/pi-coding-agent/capability/context-file",
|
||||
"@oh-my-pi/pi-coding-agent/capability/extension-module",
|
||||
"@oh-my-pi/pi-coding-agent/capability/extension",
|
||||
"@oh-my-pi/pi-coding-agent/capability/fs",
|
||||
"@oh-my-pi/pi-coding-agent/capability/hook",
|
||||
"@oh-my-pi/pi-coding-agent/capability/instruction",
|
||||
"@oh-my-pi/pi-coding-agent/capability/mcp",
|
||||
"@oh-my-pi/pi-coding-agent/capability/prompt",
|
||||
"@oh-my-pi/pi-coding-agent/capability/rule-buckets",
|
||||
"@oh-my-pi/pi-coding-agent/capability/rule",
|
||||
"@oh-my-pi/pi-coding-agent/capability/settings",
|
||||
"@oh-my-pi/pi-coding-agent/capability/skill",
|
||||
"@oh-my-pi/pi-coding-agent/capability/slash-command",
|
||||
"@oh-my-pi/pi-coding-agent/capability/ssh",
|
||||
"@oh-my-pi/pi-coding-agent/capability/system-prompt",
|
||||
"@oh-my-pi/pi-coding-agent/capability/tool",
|
||||
"@oh-my-pi/pi-coding-agent/capability/types",
|
||||
"@oh-my-pi/pi-coding-agent/cli/agents-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/args",
|
||||
"@oh-my-pi/pi-coding-agent/cli/auth-broker-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/auth-gateway-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/bench-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/classify-install-target",
|
||||
"@oh-my-pi/pi-coding-agent/cli/claude-trace-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/completion-gen",
|
||||
"@oh-my-pi/pi-coding-agent/cli/config-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/dry-balance-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/extension-flags",
|
||||
"@oh-my-pi/pi-coding-agent/cli/file-processor",
|
||||
"@oh-my-pi/pi-coding-agent/cli/flag-tables",
|
||||
"@oh-my-pi/pi-coding-agent/cli/gallery-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/gallery-screenshot",
|
||||
"@oh-my-pi/pi-coding-agent/cli/grep-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/grievances-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/initial-message",
|
||||
"@oh-my-pi/pi-coding-agent/cli/models-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/plugin-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/profile-alias",
|
||||
"@oh-my-pi/pi-coding-agent/cli/profile-bootstrap",
|
||||
"@oh-my-pi/pi-coding-agent/cli/read-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/session-picker",
|
||||
"@oh-my-pi/pi-coding-agent/cli/setup-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/setup-model-picker",
|
||||
"@oh-my-pi/pi-coding-agent/cli/shell-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/ssh-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/startup-cwd",
|
||||
"@oh-my-pi/pi-coding-agent/cli/stats-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/tiny-models-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/ttsr-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/update-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/usage-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/web-search-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/worktree-cli",
|
||||
"@oh-my-pi/pi-coding-agent/cli/gallery-fixtures/agentic",
|
||||
"@oh-my-pi/pi-coding-agent/cli/gallery-fixtures/codeintel",
|
||||
"@oh-my-pi/pi-coding-agent/cli/gallery-fixtures/edit",
|
||||
"@oh-my-pi/pi-coding-agent/cli/gallery-fixtures/fs",
|
||||
"@oh-my-pi/pi-coding-agent/cli/gallery-fixtures/interaction",
|
||||
"@oh-my-pi/pi-coding-agent/cli/gallery-fixtures/memory",
|
||||
"@oh-my-pi/pi-coding-agent/cli/gallery-fixtures/misc",
|
||||
"@oh-my-pi/pi-coding-agent/cli/gallery-fixtures/search",
|
||||
"@oh-my-pi/pi-coding-agent/cli/gallery-fixtures/shell",
|
||||
"@oh-my-pi/pi-coding-agent/cli/gallery-fixtures/types",
|
||||
"@oh-my-pi/pi-coding-agent/cli/gallery-fixtures/web",
|
||||
"@oh-my-pi/pi-coding-agent/cli/commands/init-xdg",
|
||||
"@oh-my-pi/pi-coding-agent/commands/acp",
|
||||
"@oh-my-pi/pi-coding-agent/commands/agents",
|
||||
"@oh-my-pi/pi-coding-agent/commands/auth-broker",
|
||||
"@oh-my-pi/pi-coding-agent/commands/auth-gateway",
|
||||
"@oh-my-pi/pi-coding-agent/commands/bench",
|
||||
"@oh-my-pi/pi-coding-agent/commands/commit",
|
||||
"@oh-my-pi/pi-coding-agent/commands/complete",
|
||||
"@oh-my-pi/pi-coding-agent/commands/completions",
|
||||
"@oh-my-pi/pi-coding-agent/commands/config",
|
||||
"@oh-my-pi/pi-coding-agent/commands/dry-balance",
|
||||
"@oh-my-pi/pi-coding-agent/commands/gallery",
|
||||
"@oh-my-pi/pi-coding-agent/commands/grep",
|
||||
"@oh-my-pi/pi-coding-agent/commands/grievances",
|
||||
"@oh-my-pi/pi-coding-agent/commands/install",
|
||||
"@oh-my-pi/pi-coding-agent/commands/join",
|
||||
"@oh-my-pi/pi-coding-agent/commands/launch",
|
||||
"@oh-my-pi/pi-coding-agent/commands/models",
|
||||
"@oh-my-pi/pi-coding-agent/commands/plugin",
|
||||
"@oh-my-pi/pi-coding-agent/commands/read",
|
||||
"@oh-my-pi/pi-coding-agent/commands/say",
|
||||
"@oh-my-pi/pi-coding-agent/commands/setup",
|
||||
"@oh-my-pi/pi-coding-agent/commands/shell",
|
||||
"@oh-my-pi/pi-coding-agent/commands/ssh",
|
||||
"@oh-my-pi/pi-coding-agent/commands/stats",
|
||||
"@oh-my-pi/pi-coding-agent/commands/tiny-models",
|
||||
"@oh-my-pi/pi-coding-agent/commands/token",
|
||||
"@oh-my-pi/pi-coding-agent/commands/ttsr",
|
||||
"@oh-my-pi/pi-coding-agent/commands/update",
|
||||
"@oh-my-pi/pi-coding-agent/commands/usage",
|
||||
"@oh-my-pi/pi-coding-agent/commands/web-search",
|
||||
"@oh-my-pi/pi-coding-agent/commands/worktree",
|
||||
"@oh-my-pi/pi-coding-agent/commit/cli",
|
||||
"@oh-my-pi/pi-coding-agent/commit/message",
|
||||
"@oh-my-pi/pi-coding-agent/commit/model-selection",
|
||||
"@oh-my-pi/pi-coding-agent/commit/pipeline",
|
||||
"@oh-my-pi/pi-coding-agent/commit/shared-llm",
|
||||
"@oh-my-pi/pi-coding-agent/commit/types",
|
||||
"@oh-my-pi/pi-coding-agent/commit/utils",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/agent",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/fallback",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/state",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/topo-sort",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/trivial",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/validation",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/tools/analyze-file",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/tools/git-file-diff",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/tools/git-hunk",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/tools/git-overview",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/tools/propose-changelog",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/tools/propose-commit",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/tools/recent-commits",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/tools/schemas",
|
||||
"@oh-my-pi/pi-coding-agent/commit/agentic/tools/split-commit",
|
||||
"@oh-my-pi/pi-coding-agent/commit/analysis/conventional",
|
||||
"@oh-my-pi/pi-coding-agent/commit/analysis/scope",
|
||||
"@oh-my-pi/pi-coding-agent/commit/analysis/summary",
|
||||
"@oh-my-pi/pi-coding-agent/commit/analysis/validation",
|
||||
"@oh-my-pi/pi-coding-agent/commit/changelog/detect",
|
||||
"@oh-my-pi/pi-coding-agent/commit/changelog/generate",
|
||||
"@oh-my-pi/pi-coding-agent/commit/changelog/parse",
|
||||
"@oh-my-pi/pi-coding-agent/commit/git/diff",
|
||||
"@oh-my-pi/pi-coding-agent/commit/map-reduce/map-phase",
|
||||
"@oh-my-pi/pi-coding-agent/commit/map-reduce/reduce-phase",
|
||||
"@oh-my-pi/pi-coding-agent/commit/map-reduce/utils",
|
||||
"@oh-my-pi/pi-coding-agent/commit/utils/exclusions",
|
||||
"@oh-my-pi/pi-coding-agent/config/api-key-resolver",
|
||||
"@oh-my-pi/pi-coding-agent/config/append-only-context-mode",
|
||||
"@oh-my-pi/pi-coding-agent/config/config-file",
|
||||
"@oh-my-pi/pi-coding-agent/config/file-lock",
|
||||
"@oh-my-pi/pi-coding-agent/config/keybindings",
|
||||
"@oh-my-pi/pi-coding-agent/config/model-discovery",
|
||||
"@oh-my-pi/pi-coding-agent/config/model-registry",
|
||||
"@oh-my-pi/pi-coding-agent/config/model-resolver",
|
||||
"@oh-my-pi/pi-coding-agent/config/model-roles",
|
||||
"@oh-my-pi/pi-coding-agent/config/models-config-schema",
|
||||
"@oh-my-pi/pi-coding-agent/config/models-config",
|
||||
"@oh-my-pi/pi-coding-agent/config/prompt-templates",
|
||||
"@oh-my-pi/pi-coding-agent/config/resolve-config-value",
|
||||
"@oh-my-pi/pi-coding-agent/config/settings-schema",
|
||||
"@oh-my-pi/pi-coding-agent/config/settings",
|
||||
"@oh-my-pi/pi-coding-agent/dap/client",
|
||||
"@oh-my-pi/pi-coding-agent/dap/config",
|
||||
"@oh-my-pi/pi-coding-agent/dap/session",
|
||||
"@oh-my-pi/pi-coding-agent/dap/types",
|
||||
"@oh-my-pi/pi-coding-agent/debug/log-formatting",
|
||||
"@oh-my-pi/pi-coding-agent/debug/log-viewer",
|
||||
"@oh-my-pi/pi-coding-agent/debug/profiler",
|
||||
"@oh-my-pi/pi-coding-agent/debug/protocol-probe",
|
||||
"@oh-my-pi/pi-coding-agent/debug/raw-sse-buffer",
|
||||
"@oh-my-pi/pi-coding-agent/debug/raw-sse",
|
||||
"@oh-my-pi/pi-coding-agent/debug/remote-debugger",
|
||||
"@oh-my-pi/pi-coding-agent/debug/report-bundle",
|
||||
"@oh-my-pi/pi-coding-agent/debug/system-info",
|
||||
"@oh-my-pi/pi-coding-agent/debug/terminal-info",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/agents-md",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/agents",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/at-imports",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/builtin-defaults",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/builtin",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/claude-plugins",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/claude",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/cline",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/codex",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/cursor",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/gemini",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/github",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/helpers",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/mcp-json",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/omp-extension-roots",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/omp-plugins",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/opencode",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/plugin-dir-roots",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/ssh",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/substitute-plugin-root",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/vscode",
|
||||
"@oh-my-pi/pi-coding-agent/discovery/windsurf",
|
||||
"@oh-my-pi/pi-coding-agent/edit/diff",
|
||||
"@oh-my-pi/pi-coding-agent/edit/file-snapshot-store",
|
||||
"@oh-my-pi/pi-coding-agent/edit/normalize",
|
||||
"@oh-my-pi/pi-coding-agent/edit/notebook",
|
||||
"@oh-my-pi/pi-coding-agent/edit/read-file",
|
||||
"@oh-my-pi/pi-coding-agent/edit/renderer",
|
||||
"@oh-my-pi/pi-coding-agent/edit/streaming",
|
||||
"@oh-my-pi/pi-coding-agent/edit/modes/apply-patch",
|
||||
"@oh-my-pi/pi-coding-agent/edit/modes/patch",
|
||||
"@oh-my-pi/pi-coding-agent/edit/modes/replace",
|
||||
"@oh-my-pi/pi-coding-agent/exa/mcp-client",
|
||||
"@oh-my-pi/pi-coding-agent/exa/types",
|
||||
"@oh-my-pi/pi-coding-agent/exec/bash-executor",
|
||||
"@oh-my-pi/pi-coding-agent/exec/exec",
|
||||
"@oh-my-pi/pi-coding-agent/exec/non-interactive-env",
|
||||
"@oh-my-pi/pi-coding-agent/export/custom-share",
|
||||
"@oh-my-pi/pi-coding-agent/export/share",
|
||||
"@oh-my-pi/pi-coding-agent/export/ttsr",
|
||||
"@oh-my-pi/pi-coding-agent/export/html/web-palette",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/legacy-pi-ai-shim",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/legacy-pi-coding-agent-shim",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/session-handler-types",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/shared-events",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/skills",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/slash-commands",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/tool-event-input",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/tool-proxy",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/typebox",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/utils",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/custom-commands/loader",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/custom-commands/types",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/custom-tools/loader",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/custom-tools/types",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/custom-tools/wrapper",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/extensions/compact-handler",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/extensions/get-commands-handler",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/extensions/loader",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/extensions/model-api",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/extensions/runner",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/extensions/types",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/extensions/wrapper",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/hooks/loader",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/hooks/runner",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/hooks/tool-wrapper",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/hooks/types",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/doctor",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/git-url",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/installer",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/legacy-pi-bundled-keys",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/legacy-pi-bundled-registry",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/legacy-pi-compat",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/loader",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/manager",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/marketplace-auto-update",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/parser",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/runtime-config",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/types",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/marketplace/cache",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/marketplace/fetcher",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/marketplace/manager",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/marketplace/registry",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/marketplace/source-resolver",
|
||||
"@oh-my-pi/pi-coding-agent/extensibility/plugins/marketplace/types",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/agent-protocol",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/artifact-protocol",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/docs-index",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/filesystem-resource",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/history-protocol",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/issue-pr-protocol",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/json-query",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/local-protocol",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/mcp-protocol",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/memory-protocol",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/omp-protocol",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/parse",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/registry-helpers",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/router",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/rule-protocol",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/skill-protocol",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/types",
|
||||
"@oh-my-pi/pi-coding-agent/internal-urls/vault-protocol",
|
||||
"@oh-my-pi/pi-coding-agent/eval/js/context-manager",
|
||||
"@oh-my-pi/pi-coding-agent/eval/js/executor",
|
||||
"@oh-my-pi/pi-coding-agent/eval/js/tool-bridge",
|
||||
"@oh-my-pi/pi-coding-agent/eval/js/worker-core",
|
||||
"@oh-my-pi/pi-coding-agent/eval/js/worker-entry",
|
||||
"@oh-my-pi/pi-coding-agent/eval/js/worker-protocol",
|
||||
"@oh-my-pi/pi-coding-agent/eval/py/display",
|
||||
"@oh-my-pi/pi-coding-agent/eval/py/executor",
|
||||
"@oh-my-pi/pi-coding-agent/eval/py/kernel",
|
||||
"@oh-my-pi/pi-coding-agent/eval/py/prelude",
|
||||
"@oh-my-pi/pi-coding-agent/eval/py/runtime",
|
||||
"@oh-my-pi/pi-coding-agent/eval/py/spawn-options",
|
||||
"@oh-my-pi/pi-coding-agent/eval/py/tool-bridge",
|
||||
"@oh-my-pi/pi-coding-agent/lsp/client",
|
||||
"@oh-my-pi/pi-coding-agent/lsp/config",
|
||||
"@oh-my-pi/pi-coding-agent/lsp/diagnostics-ledger",
|
||||
"@oh-my-pi/pi-coding-agent/lsp/edits",
|
||||
"@oh-my-pi/pi-coding-agent/lsp/format-options",
|
||||
"@oh-my-pi/pi-coding-agent/lsp/lspmux",
|
||||
"@oh-my-pi/pi-coding-agent/lsp/render",
|
||||
"@oh-my-pi/pi-coding-agent/lsp/startup-events",
|
||||
"@oh-my-pi/pi-coding-agent/lsp/types",
|
||||
"@oh-my-pi/pi-coding-agent/lsp/utils",
|
||||
"@oh-my-pi/pi-coding-agent/lsp/clients/biome-client",
|
||||
"@oh-my-pi/pi-coding-agent/lsp/clients/lsp-linter-client",
|
||||
"@oh-my-pi/pi-coding-agent/lsp/clients/swiftlint-client",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/client",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/config-writer",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/config",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/json-rpc",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/loader",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/manager",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/oauth-credentials",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/oauth-discovery",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/oauth-flow",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/render",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/smithery-auth",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/smithery-connect",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/smithery-registry",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/startup-events",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/timeout",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/tool-bridge",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/tool-cache",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/types",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/transports/http",
|
||||
"@oh-my-pi/pi-coding-agent/mcp/transports/stdio",
|
||||
"@oh-my-pi/pi-coding-agent/memories/storage",
|
||||
"@oh-my-pi/pi-coding-agent/memory-backend/local-backend",
|
||||
"@oh-my-pi/pi-coding-agent/memory-backend/off-backend",
|
||||
"@oh-my-pi/pi-coding-agent/memory-backend/resolve",
|
||||
"@oh-my-pi/pi-coding-agent/memory-backend/runtime",
|
||||
"@oh-my-pi/pi-coding-agent/memory-backend/types",
|
||||
"@oh-my-pi/pi-coding-agent/hindsight/backend",
|
||||
"@oh-my-pi/pi-coding-agent/hindsight/bank",
|
||||
"@oh-my-pi/pi-coding-agent/hindsight/client",
|
||||
"@oh-my-pi/pi-coding-agent/hindsight/config",
|
||||
"@oh-my-pi/pi-coding-agent/hindsight/content",
|
||||
"@oh-my-pi/pi-coding-agent/hindsight/mental-models",
|
||||
"@oh-my-pi/pi-coding-agent/hindsight/state",
|
||||
"@oh-my-pi/pi-coding-agent/hindsight/transcript",
|
||||
"@oh-my-pi/pi-coding-agent/modes/emoji-autocomplete",
|
||||
"@oh-my-pi/pi-coding-agent/modes/gradient-highlight",
|
||||
"@oh-my-pi/pi-coding-agent/modes/image-references",
|
||||
"@oh-my-pi/pi-coding-agent/modes/interactive-mode",
|
||||
"@oh-my-pi/pi-coding-agent/modes/internal-url-autocomplete",
|
||||
"@oh-my-pi/pi-coding-agent/modes/loop-limit",
|
||||
"@oh-my-pi/pi-coding-agent/modes/magic-keywords",
|
||||
"@oh-my-pi/pi-coding-agent/modes/markdown-prose",
|
||||
"@oh-my-pi/pi-coding-agent/modes/oauth-manual-input",
|
||||
"@oh-my-pi/pi-coding-agent/modes/orchestrate",
|
||||
"@oh-my-pi/pi-coding-agent/modes/print-mode",
|
||||
"@oh-my-pi/pi-coding-agent/modes/prompt-action-autocomplete",
|
||||
"@oh-my-pi/pi-coding-agent/modes/runtime-init",
|
||||
"@oh-my-pi/pi-coding-agent/modes/session-observer-registry",
|
||||
"@oh-my-pi/pi-coding-agent/modes/setup-version",
|
||||
"@oh-my-pi/pi-coding-agent/modes/shared",
|
||||
"@oh-my-pi/pi-coding-agent/modes/turn-budget",
|
||||
"@oh-my-pi/pi-coding-agent/modes/types",
|
||||
"@oh-my-pi/pi-coding-agent/modes/ultrathink",
|
||||
"@oh-my-pi/pi-coding-agent/modes/workflow",
|
||||
"@oh-my-pi/pi-coding-agent/modes/acp/acp-agent",
|
||||
"@oh-my-pi/pi-coding-agent/modes/acp/acp-client-bridge",
|
||||
"@oh-my-pi/pi-coding-agent/modes/acp/acp-event-mapper",
|
||||
"@oh-my-pi/pi-coding-agent/modes/acp/acp-mode",
|
||||
"@oh-my-pi/pi-coding-agent/modes/acp/terminal-auth",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/advisor-message",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/agent-dashboard",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/agent-hub",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/agent-transcript-viewer",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/assistant-message",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/background-tan-message",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/bash-execution",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/bordered-loader",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/btw-panel",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/cache-invalidation-marker",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/chat-block",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/chat-transcript-builder",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/collab-prompt-message",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/compaction-summary-message",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/copy-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/countdown-timer",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/custom-editor",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/custom-message",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/diff",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/dynamic-border",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/error-banner",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/eval-execution",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/execution-shared",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/footer",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/history-search",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/hook-editor",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/hook-input",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/hook-message",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/hook-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/keybinding-hints",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/late-diagnostics-message",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/login-dialog",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/logout-account-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/mcp-add-wizard",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/message-frame",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/model-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/oauth-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/omfg-panel",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/overlay-box",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/plan-review-overlay",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/plan-toc",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/plugin-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/plugin-settings",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/queue-mode-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/read-tool-group",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/reset-usage-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/segment-track",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/selector-helpers",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/session-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/settings-defs",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/settings-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/show-images-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/skill-message",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/snapcompact-shape-preview",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/theme-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/thinking-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/tiny-title-download-progress",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/todo-reminder",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/tool-execution",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/transcript-container",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/tree-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/ttsr-notification",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/usage-row",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/user-message-selector",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/user-message",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/visual-truncate",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/welcome",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/extensions/extension-dashboard",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/extensions/extension-list",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/extensions/inspector-panel",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/extensions/state-manager",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/extensions/types",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/status-line/component",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/status-line/context-thresholds",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/status-line/git-utils",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/status-line/presets",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/status-line/segments",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/status-line/separators",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/status-line/token-rate",
|
||||
"@oh-my-pi/pi-coding-agent/modes/components/status-line/types",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/btw-controller",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/command-controller-shared",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/command-controller",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/event-controller",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/extension-ui-controller",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/input-controller",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/mcp-command-controller",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/omfg-controller",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/omfg-rule",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/selector-controller",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/session-focus-controller",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/ssh-command-controller",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/streaming-reveal",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/tan-command-controller",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/todo-command-controller",
|
||||
"@oh-my-pi/pi-coding-agent/modes/controllers/tool-args-reveal",
|
||||
"@oh-my-pi/pi-coding-agent/modes/setup-wizard/lazy",
|
||||
"@oh-my-pi/pi-coding-agent/modes/setup-wizard/startup-splash",
|
||||
"@oh-my-pi/pi-coding-agent/modes/setup-wizard/wizard-overlay",
|
||||
"@oh-my-pi/pi-coding-agent/modes/rpc/host-tools",
|
||||
"@oh-my-pi/pi-coding-agent/modes/rpc/host-uris",
|
||||
"@oh-my-pi/pi-coding-agent/modes/rpc/rpc-client",
|
||||
"@oh-my-pi/pi-coding-agent/modes/rpc/rpc-mode",
|
||||
"@oh-my-pi/pi-coding-agent/modes/rpc/rpc-subagents",
|
||||
"@oh-my-pi/pi-coding-agent/modes/rpc/rpc-types",
|
||||
"@oh-my-pi/pi-coding-agent/modes/theme/mermaid-cache",
|
||||
"@oh-my-pi/pi-coding-agent/modes/theme/shimmer",
|
||||
"@oh-my-pi/pi-coding-agent/modes/theme/theme",
|
||||
"@oh-my-pi/pi-coding-agent/modes/utils/context-usage",
|
||||
"@oh-my-pi/pi-coding-agent/modes/utils/copy-targets",
|
||||
"@oh-my-pi/pi-coding-agent/modes/utils/hotkeys-markdown",
|
||||
"@oh-my-pi/pi-coding-agent/modes/utils/interactive-context-helpers",
|
||||
"@oh-my-pi/pi-coding-agent/modes/utils/keybinding-matchers",
|
||||
"@oh-my-pi/pi-coding-agent/modes/utils/tools-markdown",
|
||||
"@oh-my-pi/pi-coding-agent/modes/utils/transcript-render-helpers",
|
||||
"@oh-my-pi/pi-coding-agent/modes/utils/ui-helpers",
|
||||
"@oh-my-pi/pi-coding-agent/plan-mode/approved-plan",
|
||||
"@oh-my-pi/pi-coding-agent/plan-mode/plan-handoff",
|
||||
"@oh-my-pi/pi-coding-agent/plan-mode/plan-protection",
|
||||
"@oh-my-pi/pi-coding-agent/plan-mode/state",
|
||||
"@oh-my-pi/pi-coding-agent/secrets/obfuscator",
|
||||
"@oh-my-pi/pi-coding-agent/secrets/regex",
|
||||
"@oh-my-pi/pi-coding-agent/session/agent-session",
|
||||
"@oh-my-pi/pi-coding-agent/session/agent-storage",
|
||||
"@oh-my-pi/pi-coding-agent/session/artifacts",
|
||||
"@oh-my-pi/pi-coding-agent/session/auth-broker-config",
|
||||
"@oh-my-pi/pi-coding-agent/session/auth-storage",
|
||||
"@oh-my-pi/pi-coding-agent/session/blob-store",
|
||||
"@oh-my-pi/pi-coding-agent/session/client-bridge",
|
||||
"@oh-my-pi/pi-coding-agent/session/codex-auto-reset",
|
||||
"@oh-my-pi/pi-coding-agent/session/compact-modes",
|
||||
"@oh-my-pi/pi-coding-agent/session/history-storage",
|
||||
"@oh-my-pi/pi-coding-agent/session/indexed-session-storage",
|
||||
"@oh-my-pi/pi-coding-agent/session/messages",
|
||||
"@oh-my-pi/pi-coding-agent/session/provider-image-budget",
|
||||
"@oh-my-pi/pi-coding-agent/session/redis-session-storage",
|
||||
"@oh-my-pi/pi-coding-agent/session/session-context",
|
||||
"@oh-my-pi/pi-coding-agent/session/session-dump-format",
|
||||
"@oh-my-pi/pi-coding-agent/session/session-entries",
|
||||
"@oh-my-pi/pi-coding-agent/session/session-history-format",
|
||||
"@oh-my-pi/pi-coding-agent/session/session-listing",
|
||||
"@oh-my-pi/pi-coding-agent/session/session-loader",
|
||||
"@oh-my-pi/pi-coding-agent/session/session-manager",
|
||||
"@oh-my-pi/pi-coding-agent/session/session-migrations",
|
||||
"@oh-my-pi/pi-coding-agent/session/session-paths",
|
||||
"@oh-my-pi/pi-coding-agent/session/session-persistence",
|
||||
"@oh-my-pi/pi-coding-agent/session/session-storage",
|
||||
"@oh-my-pi/pi-coding-agent/session/shake-types",
|
||||
"@oh-my-pi/pi-coding-agent/session/snapcompact-inline",
|
||||
"@oh-my-pi/pi-coding-agent/session/snapcompact-savings-journal",
|
||||
"@oh-my-pi/pi-coding-agent/session/sql-session-storage",
|
||||
"@oh-my-pi/pi-coding-agent/session/streaming-output",
|
||||
"@oh-my-pi/pi-coding-agent/session/tool-choice-queue",
|
||||
"@oh-my-pi/pi-coding-agent/session/unexpected-stop-classifier",
|
||||
"@oh-my-pi/pi-coding-agent/session/yield-queue",
|
||||
"@oh-my-pi/pi-coding-agent/slash-commands/acp-builtins",
|
||||
"@oh-my-pi/pi-coding-agent/slash-commands/available-commands",
|
||||
"@oh-my-pi/pi-coding-agent/slash-commands/builtin-registry",
|
||||
"@oh-my-pi/pi-coding-agent/slash-commands/marketplace-install-parser",
|
||||
"@oh-my-pi/pi-coding-agent/slash-commands/types",
|
||||
"@oh-my-pi/pi-coding-agent/ssh/config-writer",
|
||||
"@oh-my-pi/pi-coding-agent/ssh/connection-manager",
|
||||
"@oh-my-pi/pi-coding-agent/ssh/ssh-executor",
|
||||
"@oh-my-pi/pi-coding-agent/ssh/sshfs-mount",
|
||||
"@oh-my-pi/pi-coding-agent/ssh/utils",
|
||||
"@oh-my-pi/pi-coding-agent/stt/asr-client",
|
||||
"@oh-my-pi/pi-coding-agent/stt/asr-protocol",
|
||||
"@oh-my-pi/pi-coding-agent/stt/asr-worker",
|
||||
"@oh-my-pi/pi-coding-agent/stt/downloader",
|
||||
"@oh-my-pi/pi-coding-agent/stt/endpointer",
|
||||
"@oh-my-pi/pi-coding-agent/stt/models",
|
||||
"@oh-my-pi/pi-coding-agent/stt/recorder",
|
||||
"@oh-my-pi/pi-coding-agent/stt/stt-controller",
|
||||
"@oh-my-pi/pi-coding-agent/stt/transcriber",
|
||||
"@oh-my-pi/pi-coding-agent/stt/wav",
|
||||
"@oh-my-pi/pi-coding-agent/task/agents",
|
||||
"@oh-my-pi/pi-coding-agent/task/commands",
|
||||
"@oh-my-pi/pi-coding-agent/task/discovery",
|
||||
"@oh-my-pi/pi-coding-agent/task/executor",
|
||||
"@oh-my-pi/pi-coding-agent/task/isolation-runner",
|
||||
"@oh-my-pi/pi-coding-agent/task/name-generator",
|
||||
"@oh-my-pi/pi-coding-agent/task/omp-command",
|
||||
"@oh-my-pi/pi-coding-agent/task/output-manager",
|
||||
"@oh-my-pi/pi-coding-agent/task/parallel",
|
||||
"@oh-my-pi/pi-coding-agent/task/persisted-revive",
|
||||
"@oh-my-pi/pi-coding-agent/task/render",
|
||||
"@oh-my-pi/pi-coding-agent/task/repair-args",
|
||||
"@oh-my-pi/pi-coding-agent/task/subprocess-tool-registry",
|
||||
"@oh-my-pi/pi-coding-agent/task/types",
|
||||
"@oh-my-pi/pi-coding-agent/task/worktree",
|
||||
"@oh-my-pi/pi-coding-agent/tool-discovery/mode",
|
||||
"@oh-my-pi/pi-coding-agent/tool-discovery/tool-index",
|
||||
"@oh-my-pi/pi-coding-agent/tools/acp-bridge",
|
||||
"@oh-my-pi/pi-coding-agent/tools/approval",
|
||||
"@oh-my-pi/pi-coding-agent/tools/ask",
|
||||
"@oh-my-pi/pi-coding-agent/tools/ast-edit",
|
||||
"@oh-my-pi/pi-coding-agent/tools/ast-grep",
|
||||
"@oh-my-pi/pi-coding-agent/tools/auto-generated-guard",
|
||||
"@oh-my-pi/pi-coding-agent/tools/bash-command-fixup",
|
||||
"@oh-my-pi/pi-coding-agent/tools/bash-interactive",
|
||||
"@oh-my-pi/pi-coding-agent/tools/bash-interceptor",
|
||||
"@oh-my-pi/pi-coding-agent/tools/bash-pty-selection",
|
||||
"@oh-my-pi/pi-coding-agent/tools/bash-skill-urls",
|
||||
"@oh-my-pi/pi-coding-agent/tools/bash",
|
||||
"@oh-my-pi/pi-coding-agent/tools/browser",
|
||||
"@oh-my-pi/pi-coding-agent/tools/builtin-names",
|
||||
"@oh-my-pi/pi-coding-agent/tools/checkpoint",
|
||||
"@oh-my-pi/pi-coding-agent/tools/conflict-detect",
|
||||
"@oh-my-pi/pi-coding-agent/tools/context",
|
||||
"@oh-my-pi/pi-coding-agent/tools/debug",
|
||||
"@oh-my-pi/pi-coding-agent/tools/eval-backends",
|
||||
"@oh-my-pi/pi-coding-agent/tools/eval-render",
|
||||
"@oh-my-pi/pi-coding-agent/tools/eval",
|
||||
"@oh-my-pi/pi-coding-agent/tools/fetch",
|
||||
"@oh-my-pi/pi-coding-agent/tools/file-recorder",
|
||||
"@oh-my-pi/pi-coding-agent/tools/find",
|
||||
"@oh-my-pi/pi-coding-agent/tools/fs-cache-invalidation",
|
||||
"@oh-my-pi/pi-coding-agent/tools/gh-cache-invalidation",
|
||||
"@oh-my-pi/pi-coding-agent/tools/gh-format",
|
||||
"@oh-my-pi/pi-coding-agent/tools/gh-renderer",
|
||||
"@oh-my-pi/pi-coding-agent/tools/gh",
|
||||
"@oh-my-pi/pi-coding-agent/tools/github-cache",
|
||||
"@oh-my-pi/pi-coding-agent/tools/grouped-file-output",
|
||||
"@oh-my-pi/pi-coding-agent/tools/image-gen",
|
||||
"@oh-my-pi/pi-coding-agent/tools/inspect-image-renderer",
|
||||
"@oh-my-pi/pi-coding-agent/tools/inspect-image",
|
||||
"@oh-my-pi/pi-coding-agent/tools/irc",
|
||||
"@oh-my-pi/pi-coding-agent/tools/job",
|
||||
"@oh-my-pi/pi-coding-agent/tools/json-tree",
|
||||
"@oh-my-pi/pi-coding-agent/tools/jtd-to-json-schema",
|
||||
"@oh-my-pi/pi-coding-agent/tools/jtd-to-typescript",
|
||||
"@oh-my-pi/pi-coding-agent/tools/jtd-utils",
|
||||
"@oh-my-pi/pi-coding-agent/tools/learn",
|
||||
"@oh-my-pi/pi-coding-agent/tools/list-limit",
|
||||
"@oh-my-pi/pi-coding-agent/tools/manage-skill",
|
||||
"@oh-my-pi/pi-coding-agent/tools/match-line-format",
|
||||
"@oh-my-pi/pi-coding-agent/tools/memory-edit",
|
||||
"@oh-my-pi/pi-coding-agent/tools/memory-recall",
|
||||
"@oh-my-pi/pi-coding-agent/tools/memory-reflect",
|
||||
"@oh-my-pi/pi-coding-agent/tools/memory-render",
|
||||
"@oh-my-pi/pi-coding-agent/tools/memory-retain",
|
||||
"@oh-my-pi/pi-coding-agent/tools/output-meta",
|
||||
"@oh-my-pi/pi-coding-agent/tools/output-schema-validator",
|
||||
"@oh-my-pi/pi-coding-agent/tools/path-utils",
|
||||
"@oh-my-pi/pi-coding-agent/tools/plan-mode-guard",
|
||||
"@oh-my-pi/pi-coding-agent/tools/read",
|
||||
"@oh-my-pi/pi-coding-agent/tools/render-utils",
|
||||
"@oh-my-pi/pi-coding-agent/tools/renderers",
|
||||
"@oh-my-pi/pi-coding-agent/tools/report-tool-issue",
|
||||
"@oh-my-pi/pi-coding-agent/tools/resolve",
|
||||
"@oh-my-pi/pi-coding-agent/tools/review",
|
||||
"@oh-my-pi/pi-coding-agent/tools/search-tool-bm25",
|
||||
"@oh-my-pi/pi-coding-agent/tools/search",
|
||||
"@oh-my-pi/pi-coding-agent/tools/sqlite-reader",
|
||||
"@oh-my-pi/pi-coding-agent/tools/ssh",
|
||||
"@oh-my-pi/pi-coding-agent/tools/todo",
|
||||
"@oh-my-pi/pi-coding-agent/tools/tool-errors",
|
||||
"@oh-my-pi/pi-coding-agent/tools/tool-result",
|
||||
"@oh-my-pi/pi-coding-agent/tools/tool-timeouts",
|
||||
"@oh-my-pi/pi-coding-agent/tools/tts",
|
||||
"@oh-my-pi/pi-coding-agent/tools/write",
|
||||
"@oh-my-pi/pi-coding-agent/tools/yield",
|
||||
"@oh-my-pi/pi-coding-agent/tui/code-cell",
|
||||
"@oh-my-pi/pi-coding-agent/tui/file-list",
|
||||
"@oh-my-pi/pi-coding-agent/tui/hyperlink",
|
||||
"@oh-my-pi/pi-coding-agent/tui/output-block",
|
||||
"@oh-my-pi/pi-coding-agent/tui/status-line",
|
||||
"@oh-my-pi/pi-coding-agent/tui/tree-list",
|
||||
"@oh-my-pi/pi-coding-agent/tui/types",
|
||||
"@oh-my-pi/pi-coding-agent/tui/utils",
|
||||
"@oh-my-pi/pi-coding-agent/tui/width-aware-text",
|
||||
"@oh-my-pi/pi-coding-agent/utils/block-context",
|
||||
"@oh-my-pi/pi-coding-agent/utils/changelog",
|
||||
"@oh-my-pi/pi-coding-agent/utils/clipboard",
|
||||
"@oh-my-pi/pi-coding-agent/utils/command-args",
|
||||
"@oh-my-pi/pi-coding-agent/utils/commit-message-generator",
|
||||
"@oh-my-pi/pi-coding-agent/utils/edit-mode",
|
||||
"@oh-my-pi/pi-coding-agent/utils/enhanced-paste",
|
||||
"@oh-my-pi/pi-coding-agent/utils/event-bus",
|
||||
"@oh-my-pi/pi-coding-agent/utils/external-editor",
|
||||
"@oh-my-pi/pi-coding-agent/utils/file-display-mode",
|
||||
"@oh-my-pi/pi-coding-agent/utils/file-mentions",
|
||||
"@oh-my-pi/pi-coding-agent/utils/git",
|
||||
"@oh-my-pi/pi-coding-agent/utils/image-loading",
|
||||
"@oh-my-pi/pi-coding-agent/utils/image-resize",
|
||||
"@oh-my-pi/pi-coding-agent/utils/image-vision-fallback",
|
||||
"@oh-my-pi/pi-coding-agent/utils/ipc",
|
||||
"@oh-my-pi/pi-coding-agent/utils/jj",
|
||||
"@oh-my-pi/pi-coding-agent/utils/lang-from-path",
|
||||
"@oh-my-pi/pi-coding-agent/utils/markit",
|
||||
"@oh-my-pi/pi-coding-agent/utils/mupdf-wasm-embed",
|
||||
"@oh-my-pi/pi-coding-agent/utils/open",
|
||||
"@oh-my-pi/pi-coding-agent/utils/qrcode",
|
||||
"@oh-my-pi/pi-coding-agent/utils/session-color",
|
||||
"@oh-my-pi/pi-coding-agent/utils/shell-snapshot",
|
||||
"@oh-my-pi/pi-coding-agent/utils/sixel",
|
||||
"@oh-my-pi/pi-coding-agent/utils/thinking-display",
|
||||
"@oh-my-pi/pi-coding-agent/utils/title-generator",
|
||||
"@oh-my-pi/pi-coding-agent/utils/tool-choice",
|
||||
"@oh-my-pi/pi-coding-agent/utils/tools-manager",
|
||||
"@oh-my-pi/pi-coding-agent/utils/turndown",
|
||||
"@oh-my-pi/pi-coding-agent/utils/zip",
|
||||
"@oh-my-pi/pi-coding-agent/web/kagi",
|
||||
"@oh-my-pi/pi-coding-agent/web/parallel",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/artifacthub",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/arxiv",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/aur",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/biorxiv",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/bluesky",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/brew",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/cheatsh",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/chocolatey",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/choosealicense",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/cisa-kev",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/clojars",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/coingecko",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/crates-io",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/crossref",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/devto",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/discogs",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/discourse",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/dockerhub",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/docs-rs",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/fdroid",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/firefox-addons",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/flathub",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/github-gist",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/github",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/gitlab",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/go-pkg",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/hackage",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/hackernews",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/hex",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/huggingface",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/iacr",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/jetbrains-marketplace",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/lemmy",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/lobsters",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/mastodon",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/maven",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/mdn",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/metacpan",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/musicbrainz",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/npm",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/nuget",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/nvd",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/ollama",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/open-vsx",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/opencorporates",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/openlibrary",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/orcid",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/osv",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/packagist",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/pub-dev",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/pubmed",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/pypi",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/rawg",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/readthedocs",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/reddit",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/repology",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/rfc",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/rubygems",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/searchcode",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/sec-edgar",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/semantic-scholar",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/snapcraft",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/sourcegraph",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/spdx",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/spotify",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/stackoverflow",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/terraform",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/tldr",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/twitter",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/types",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/utils",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/vimeo",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/vscode-marketplace",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/w3c",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/wikidata",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/wikipedia",
|
||||
"@oh-my-pi/pi-coding-agent/web/scrapers/youtube",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/provider",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/render",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/types",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/utils",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/anthropic",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/base",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/brave",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/codex",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/exa",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/gemini",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/jina",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/kagi",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/kimi",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/parallel",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/perplexity-auth",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/perplexity",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/searxng",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/synthetic",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/tavily",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/utils",
|
||||
"@oh-my-pi/pi-coding-agent/web/search/providers/zai",
|
||||
"@oh-my-pi/pi-natives",
|
||||
"@oh-my-pi/pi-tui",
|
||||
"@oh-my-pi/pi-tui/components/box",
|
||||
"@oh-my-pi/pi-tui/components/cancellable-loader",
|
||||
"@oh-my-pi/pi-tui/components/editor",
|
||||
"@oh-my-pi/pi-tui/components/image",
|
||||
"@oh-my-pi/pi-tui/components/input",
|
||||
"@oh-my-pi/pi-tui/components/loader",
|
||||
"@oh-my-pi/pi-tui/components/markdown",
|
||||
"@oh-my-pi/pi-tui/components/scroll-view",
|
||||
"@oh-my-pi/pi-tui/components/select-list",
|
||||
"@oh-my-pi/pi-tui/components/settings-list",
|
||||
"@oh-my-pi/pi-tui/components/spacer",
|
||||
"@oh-my-pi/pi-tui/components/tab-bar",
|
||||
"@oh-my-pi/pi-tui/components/text",
|
||||
"@oh-my-pi/pi-tui/components/truncated-text",
|
||||
"@oh-my-pi/pi-utils",
|
||||
"typebox",
|
||||
]);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -17,6 +17,33 @@ describe("legacy pi compat compiled-mode subpath overrides (issue #3442)", () =>
|
||||
expect(overrides["@oh-my-pi/pi-ai/oauth"]).toBe("omp-legacy-pi-bundled:@oh-my-pi/pi-ai/oauth");
|
||||
});
|
||||
|
||||
it("expands wildcard exports for concrete on-disk targets (issue #3442 follow-up)", () => {
|
||||
// `pi-ai/oauth/anthropic` is exposed via the `./oauth/*` wildcard export;
|
||||
// the original fix only bundled non-wildcard subpaths, so peer-only plugins
|
||||
// importing `@(scope)/pi-ai/oauth/anthropic` (remapped via PI_SUBPATH_REMAPS
|
||||
// from `@mariozechner/pi-ai/utils/oauth/anthropic`) still hit the bunfs
|
||||
// fall-through. The generator now globs each wildcard's source pattern
|
||||
// and registers every concrete `.ts` match against the virtual namespace.
|
||||
const overrides = __buildLegacyPiPackageRootOverrides(true);
|
||||
expect(overrides["@oh-my-pi/pi-ai/oauth/anthropic"]).toBe(
|
||||
"omp-legacy-pi-bundled:@oh-my-pi/pi-ai/oauth/anthropic",
|
||||
);
|
||||
// Sanity: the wildcard expansion also reaches deeper subroots so plugins
|
||||
// pinned to e.g. `@oh-my-pi/pi-ai/providers/openai` keep resolving.
|
||||
expect(BUNDLED_PI_REGISTRY_KEYS.has("@oh-my-pi/pi-ai/oauth/anthropic")).toBe(true);
|
||||
expect(BUNDLED_PI_REGISTRY_KEYS.has("@oh-my-pi/pi-ai/oauth/openai-codex")).toBe(true);
|
||||
});
|
||||
|
||||
it("does not enumerate root catch-all wildcards (./* / ./*.js)", () => {
|
||||
// Root `./*` / `./*.js` patterns would static-import top-level files
|
||||
// like the package's own `cli.ts` and explode the bundle through the
|
||||
// binary entry's transitive graph. Plugins almost never import top-level
|
||||
// pi-* files directly, so we keep those routed via `Bun.resolveSync`.
|
||||
// Concrete check: `@oh-my-pi/pi-coding-agent/cli` is NOT bundled.
|
||||
expect(BUNDLED_PI_REGISTRY_KEYS.has("@oh-my-pi/pi-coding-agent/cli")).toBe(false);
|
||||
expect(BUNDLED_PI_REGISTRY_KEYS.has("@oh-my-pi/pi-coding-agent/main")).toBe(false);
|
||||
});
|
||||
|
||||
it("maps every bundled key (minus shimmed roots + typebox) to its virtual specifier in compiled mode", () => {
|
||||
const overrides = __buildLegacyPiPackageRootOverrides(true);
|
||||
const missing: string[] = [];
|
||||
|
||||
Reference in New Issue
Block a user