Stay in codex, plan review and fix complicated bugs, then ask it to spawn claude code and implement the plan. This uses your current subscription instead of API tokens.
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
"""Internal defaults and constants for clink."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
from pathlib import Path
|
|
|
|
DEFAULT_TIMEOUT_SECONDS = 1800
|
|
DEFAULT_STREAM_LIMIT = 10 * 1024 * 1024 # 10MB per stream
|
|
|
|
PROJECT_ROOT = Path(__file__).resolve().parent.parent
|
|
BUILTIN_PROMPTS_DIR = PROJECT_ROOT / "systemprompts" / "clink"
|
|
CONFIG_DIR = PROJECT_ROOT / "conf" / "cli_clients"
|
|
USER_CONFIG_DIR = Path.home() / ".zen" / "cli_clients"
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class CLIInternalDefaults:
|
|
"""Internal defaults applied to a CLI client during registry load."""
|
|
|
|
parser: str
|
|
additional_args: list[str] = field(default_factory=list)
|
|
env: dict[str, str] = field(default_factory=dict)
|
|
default_role_prompt: str | None = None
|
|
timeout_seconds: int = DEFAULT_TIMEOUT_SECONDS
|
|
runner: str | None = None
|
|
|
|
|
|
INTERNAL_DEFAULTS: dict[str, CLIInternalDefaults] = {
|
|
"gemini": CLIInternalDefaults(
|
|
parser="gemini_json",
|
|
additional_args=["-o", "json"],
|
|
default_role_prompt="systemprompts/clink/default.txt",
|
|
runner="gemini",
|
|
),
|
|
"codex": CLIInternalDefaults(
|
|
parser="codex_jsonl",
|
|
additional_args=["exec"],
|
|
default_role_prompt="systemprompts/clink/default.txt",
|
|
runner="codex",
|
|
),
|
|
"claude": CLIInternalDefaults(
|
|
parser="claude_json",
|
|
additional_args=["--print", "--output-format", "json"],
|
|
default_role_prompt="systemprompts/clink/default.txt",
|
|
runner="claude",
|
|
),
|
|
}
|