import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import { CorridorRuntime } from "../src/application/corridor-runtime.ts"; import { registerCommands } from "../src/extension/commands.ts"; import { detectExtensionIdentity, shouldLoadExtension } from "../src/extension/identity.ts"; import { registerLifecycle } from "../src/extension/lifecycle.ts"; import { registerUpdateActionPathTool } from "../src/extension/update-action-path-tool.ts"; export default function intentPetriExtension(pi: ExtensionAPI): void { const identity = detectExtensionIdentity(import.meta.url); const preferLocal = process.env.INTENT_PETRI_PREFER_LOCAL === "1"; // Normal usage prefers the installed user package even when this repository is also loaded with `-e .`. // Development smoke tests set INTENT_PETRI_PREFER_LOCAL=1, which suppresses the installed copy instead. if (!shouldLoadExtension(identity, preferLocal)) return; const runtime = new CorridorRuntime(identity); registerUpdateActionPathTool(pi, runtime); registerCommands(pi, runtime); registerLifecycle(pi, runtime); }