paperclipai/paperclip · error · Error
Applying a company import from a non-interactive terminal…
Error message
Applying a company import from a non-interactive terminal requires --yes. Use --dry-run first to inspect the preview.
What it means
resolveCompanyImportApplyConfirmationMode needs a TTY to prompt for confirmation before applying an import; in a non-interactive terminal without --yes it aborts rather than apply unconfirmed.
Solutions
- Run interactively to confirm, or pass --yes (after a --dry-run preview) in non-interactive environments.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at cli/src/commands/client/company.ts:814 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18).
Data as JSON: /api/errors/ca7ad461dbf8a769.
Report an issue: GitHub.
Appendix: source
Thrown at cli/src/commands/client/company.ts:814
url.hash = "";
return url.toString();
}
export function resolveCompanyImportApplyConfirmationMode(input: {
yes?: boolean;
interactive: boolean;
json: boolean;
}): "skip" | "prompt" {
if (input.yes) {
return "skip";
}
if (input.json) {
throw new Error(
"Applying a company import with --json requires --yes. Use --dry-run first to inspect the preview.",
);
}
if (!input.interactive) {
throw new Error(
"Applying a company import from a non-interactive terminal requires --yes. Use --dry-run first to inspect the preview.",
);
}
return "prompt";
}
export function isHttpUrl(input: string): boolean {
return /^https?:\/\//i.test(input.trim());
}
export function looksLikeRepoUrl(input: string): boolean {
try {
const url = new URL(input.trim());
if (url.protocol !== "https:") return false;
const segments = url.pathname.split("/").filter(Boolean);
return segments.length >= 2;
} catch {
return false;View on GitHub (pinned to 120ae5428f)