1.5 KiB
CLI Internals
internal/cli parses terminal arguments, loads configuration, constructs app requests, and translates app results to bounded JSON summaries. The public contract belongs in the CLI reference.
The root --version flag reports the build version supplied by internal/buildinfo. Tagged release builds replace its development default at link time.
For each generate or run action, Runner constructs one project-owned Promptkit executor after configuration loads. It captures an absolute working directory, resolves only a relative explicit output override against it, and passes the working directory, loaded configuration, resolved override, and any --llm-debug-dir request to the app. The raw configured fallback remains in the configuration for app-owned destination selection. run uses the same explicit-resolution rule for --out-dir.
The CLI dispatches only generation and batch actions. It has no persisted-run or inspection dispatch. Summaries include report identity, status, output path, effective profile/backend/model, source warnings, validation, requested debug path, and notification result when available. They intentionally exclude prompt input, raw generated text, render context, endpoints, credentials, and full Distributor payloads. A failed action with a partial result still emits its safe summary before its error is returned.
CLI code owns no report policy, weather collection, output publication, provider execution, or notification policy. Focused checks:
go test ./internal/cli