docs(flows): DoD obligatorio con user-facing surface + abrir issues 0100-0103 (taxonomia, frontmatter migration, dev_console, work dashboard)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,9 +1,28 @@
|
||||
"""Invoca `claude -p` via subprocess y devuelve la respuesta como string."""
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
|
||||
def _resolve_claude_bin() -> str | None:
|
||||
"""Localiza claude CLI: PATH first, luego rutas convencionales."""
|
||||
p = shutil.which("claude")
|
||||
if p:
|
||||
return p
|
||||
# Fallback paths comunes (WSL subsession sin .profile cargado, etc).
|
||||
home = os.path.expanduser("~")
|
||||
candidates = [
|
||||
f"{home}/.local/bin/claude",
|
||||
"/usr/local/bin/claude",
|
||||
"/opt/homebrew/bin/claude",
|
||||
]
|
||||
for c in candidates:
|
||||
if os.path.isfile(c) and os.access(c, os.X_OK):
|
||||
return c
|
||||
return None
|
||||
|
||||
|
||||
def claude_cli_prompt(
|
||||
prompt: str,
|
||||
timeout_s: int = 60,
|
||||
@@ -24,16 +43,18 @@ def claude_cli_prompt(
|
||||
Respuesta de Claude como texto (stdout), truncada a max_chars_response.
|
||||
|
||||
Raises:
|
||||
FileNotFoundError: Si `claude` no esta en PATH.
|
||||
FileNotFoundError: Si `claude` no esta en PATH ni rutas convencionales.
|
||||
RuntimeError: Si exit code != 0 (incluye primeros 500 chars de stderr).
|
||||
subprocess.TimeoutExpired: Si la llamada supera timeout_s segundos.
|
||||
"""
|
||||
if shutil.which("claude") is None:
|
||||
claude_bin = _resolve_claude_bin()
|
||||
if claude_bin is None:
|
||||
raise FileNotFoundError(
|
||||
"'claude' CLI no encontrado en PATH. Instala Claude Code."
|
||||
"'claude' CLI no encontrado en PATH ni rutas convencionales "
|
||||
"(~/.local/bin, /usr/local/bin, /opt/homebrew/bin). Instala Claude Code."
|
||||
)
|
||||
|
||||
cmd = ["claude", "-p", prompt]
|
||||
cmd = [claude_bin, "-p", prompt]
|
||||
if model:
|
||||
cmd.extend(["--model", model])
|
||||
if extra_args:
|
||||
|
||||
Reference in New Issue
Block a user