/** * Docker Compose teardown resolution for worktree cleanup. * * Zeroshot never runs `docker compose up` — any compose file found in a worktree * belongs to the target repo, not to zeroshot. Tearing it down is only safe when * the resolved Compose project name is scoped to the worktree directory itself * (i.e. nothing pins it to the host's real, possibly-already-running project). */ interface ComposeTeardownResolution { readonly args?: string[]; readonly composePath?: string; readonly reason?: string; readonly shouldTeardown: boolean; } /** * Reproduce Docker Compose's default project-name normalization * (compose-go NormalizeProjectName: lowercase -> keep [a-z0-9_-] -> trim leading '_'/'-'). */ declare function normalizeComposeProjectName(name: string): string; /** * Decide whether it's safe to run `docker compose down` in a worktree, and with what args. * Never includes `--volumes` — automatic cleanup must not delete named volumes. * Skips teardown entirely when the Compose project name is pinned (top-level `name:` * in the compose file, or `COMPOSE_PROJECT_NAME` env var), since that resolves to a * shared/host project zeroshot did not create. */ declare function resolveWorktreeComposeTeardown(worktreePath: string): ComposeTeardownResolution; declare const _default: { resolveWorktreeComposeTeardown: typeof resolveWorktreeComposeTeardown; normalizeComposeProjectName: typeof normalizeComposeProjectName; }; export = _default;