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 a relative output override against it, and passes the working directory, resolved override, and any --llm-debug-dir request to the app. With no override, the app derives the report filename in that working directory. run uses the same 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