# Command-line errors

These are the errors about the command line itself: a command, an action
or a flag Jadpo doesn't have, or an argument or a value a command can't
use. Each names what the command takes, and its page shows a run. The
rows for `incident`, `schema` and `watch` belong to commands not built
yet, or that the design notes replace.

| Rule | Raised by | What it means |
|---|---|---|
| `cli.acceptance_arguments` | `acceptance` | A `jadpo acceptance` command names no action, one it doesn't have, or no purpose for `new` |
| `cli.ai_arguments` | `ai` | A `jadpo ai` command names no action, one it doesn't have, or a prompt the project doesn't declare |
| `cli.api_arguments` | `api` | A `jadpo api` command names no action, one it doesn't have, or more than `update` |
| `cli.approval_arguments` | `approval` | A `jadpo approval` command is given an argument it doesn't take, names a `--before` git doesn't know, or has nothing to compare with |
| `cli.build_arguments` | `build` | A `jadpo build` command names a deployable the app doesn't have, or more than one |
| `cli.calls_arguments` | `calls` | A `jadpo calls` command names an action it doesn't have, a call the log doesn't hold, or an answer without its operation |
| `cli.check_arguments` | `check` | A `jadpo check` command names a path that isn't there or isn't a `.jadpo` file, or a `--before` git doesn't know |
| `cli.completions_arguments` | `completions` | A `jadpo completions` command names no shell, or one Jadpo writes no completions for |
| `cli.config_arguments` | `config` | A `jadpo config` command names no action, an action it doesn't have, or a setting `config.jadpo` doesn't declare |
| `cli.config_generate_refused` | `config` | A new key would be written where a person could read it, by `jadpo config generate`, or `--generate` would replace a key already set |
| `cli.config_prompt_failed` | `config` | Nothing was typed at the prompt of `jadpo config set`, or the terminal couldn't hide what you type there |
| `cli.config_rotation_unavailable` | `config` | The sealed rows `jadpo config rotation` counts couldn't be counted, because their database can't be reached or has no table for them yet |
| `cli.config_tty_required` | `config` | You ran `jadpo config set` where there is no terminal to type the value at, such as from a coding agent or a script |
| `cli.declines_arguments` | `declines` | A `jadpo declines` command names no action, one it doesn't have, or a rule or path that isn't the project's |
| `cli.deliveries_arguments` | `deliveries` | A `jadpo deliveries` command names an action it doesn't have, no id for one that needs it, or a state or page it doesn't list |
| `cli.dev_arguments` | `dev` | A `jadpo dev` command names an action it doesn't have, `token` without a user's id, or a `--url` the project's several stores can't share |
| `cli.dev_port_invalid` | `dev` | A `jadpo dev --port` flag holds something other than a whole number from 0 to 65535 |
| `cli.dev_start_failed` | `dev` | The app couldn't start under `jadpo dev`, usually because another program is using its port, it has no database to run on, or a connection would call a provider's live API |
| `cli.email_arguments` | `email` | A `jadpo email` command names an action it doesn't have, or a mail or link the dev inbox doesn't hold |
| `cli.fix_arguments` | `fix` | A `jadpo fix` command names a declaration with nothing to fix, or a fix it doesn't have |
| `cli.flags_arguments` | `flags` | A `jadpo flags` command names an action it doesn't have, a flag the project doesn't declare, or a value, user or share the flag can't take |
| `cli.fmt_arguments` | `fmt` | A `jadpo fmt` command names a path that isn't there or isn't a `.jadpo` file |
| `cli.help_arguments` | `help` | A `jadpo help` command names more than one command or rule |
| `cli.incident_arguments` | `incident` | Incident command has invalid arguments |
| `cli.incident_invalid` | `incident` | Runtime event is not a valid enrichment input |
| `cli.incident_manifest_invalid` | `incident` | Local build manifest is not valid JSON |
| `cli.incident_manifest_missing` | `incident` | Local build manifest is missing |
| `cli.incident_manifest_stale` | `incident` | Local build manifest does not match current sources |
| `cli.incident_operation_unknown` | `incident` | Runtime operation is absent from the local manifest |
| `cli.incident_read_failed` | `incident` | Runtime event file could not be read |
| `cli.incident_revision_mismatch` | `incident` | Runtime event and local source revisions differ |
| `cli.lsp_arguments` | `lsp` | A `jadpo lsp` command is given an argument, which it doesn't take |
| `cli.migrate_arguments` | `migrate` | A `jadpo migrate` command names no action, one it doesn't have, a purpose for an action that takes none, or a `--drop` of what isn't retired |
| `cli.new_arguments` | `new` | A `jadpo new` command names no project, or more than one |
| `cli.package_arguments` | `package` | A `jadpo package` command names no action, one it doesn't have, or a package the project doesn't hold |
| `cli.package_not_openapi` | `package import` | A file given to `jadpo package import` is JSON but not an OpenAPI 3.0 or 3.1 document |
| `cli.package_unreadable` | `package import` | A file given to `jadpo package import` isn't there, can't be read, or isn't JSON |
| `cli.presentation_arguments` | any command | A `--color` flag holds something other than `auto`, `always` or `never`, or nothing |
| `cli.project_required` | any command | Command requires a project path |
| `cli.records_arguments` | `records` | A `jadpo records` command names an action other than `update` |
| `cli.routes_arguments` | `routes` | A `jadpo routes` command is given an argument, which it doesn't take |
| `cli.runs_arguments` | `runs` | A `jadpo runs` command names an action other than `unfinished`, or leaves out its `--build` |
| `cli.schedules_arguments` | `schedules` | A `jadpo schedules` command names an action it doesn't have, or a schedule the project doesn't declare |
| `cli.schema_command_required` | `schema` | Schema command requires a subcommand |
| `cli.schema_decision_arguments` | `schema` | Schema decision command has invalid arguments |
| `cli.schema_diff_arguments` | `schema` | Schema diff command has invalid arguments |
| `cli.schema_index_accept_arguments` | `schema` | Index acceptance requires a recommendation path |
| `cli.schema_plan_arguments` | `schema` | Schema plan command has invalid arguments |
| `cli.schema_rename_arguments` | `schema` | Schema rename command has invalid arguments |
| `cli.schema_snapshot_arguments` | `schema` | Schema snapshot command requires an output path |
| `cli.schema_sql_arguments` | `schema` | Schema SQL command has invalid arguments |
| `cli.seed_arguments` | `seed` | A `jadpo seed` command names no seed, one the project doesn't have, or more than one |
| `cli.signal_handler_failed` | any command | Shutdown handler could not be installed |
| `cli.sql_arguments` | `sql` | A `jadpo sql` command names no query or action, one the project doesn't declare, or an action that writes nothing |
| `cli.suggest_arguments` | `suggest` | A `jadpo suggest` command names an action it doesn't have, or a suggestion the last scan didn't find |
| `cli.test_arguments` | `test` | A `jadpo test` command names a path that isn't there, or a seed, a kind or a `--name` it can't use |
| `cli.toolchain_arguments` | `toolchain` | A `jadpo toolchain` command names an action it doesn't have, or a release that isn't kept |
| `cli.translations_arguments` | `translations` | A `jadpo translations` command names no action, one it doesn't have, or a locale the project doesn't translate into |
| `cli.unknown_command` | any command | A `jadpo` command line starts with a command Jadpo doesn't have, or asks `jadpo help` about a command or rule it doesn't have |
| `cli.unknown_flag` | any command | A `jadpo` command line has a flag the command doesn't take |
| `cli.unknown_schema_command` | `schema` | Unknown schema subcommand |
| `cli.version_arguments` | `version` | A `jadpo version` command is given an argument, which it doesn't take |
| `cli.watch_arguments` | `watch` | Watch command has invalid arguments |
| `cli.watch_input_read_failed` | `watch` | Watched project inputs could not be read |
| `cli.watch_output_failed` | `watch` | Watch lifecycle event could not be written |
| `cli.why_arguments` | `why` | A `jadpo why` command names no schedule, one the project doesn't declare, or more than one |
