Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 42 additions & 66 deletions parity-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
"app/routers/",
"cli/cueapi/cli.py (private mirror)"
],
"last_full_audit": "2026-05-04",
"cli_version_at_audit": "0.1.x",
"last_full_audit": "2026-05-05",
"cli_version_at_audit": "0.2.0",
"audit_methodology": "Walk every endpoint in private cueapi/app/routers/ and map to a CLI command in cueapi-cli/cueapi/cli.py. Per-command, walk the corresponding private schemas/*.py to verify field-level coverage in the command's --flag set. Drift goes in `endpoints_missing` or `command_drift` keyed by command.",
"audit_cadence": "Monthly full sweep. Per-PR diffs handled via the .github/pull_request_template.md `Parity Impact` section in the private repo.",

Expand All @@ -22,84 +22,60 @@
"cueapi pause <id>": "PATCH /v1/cues/{id} (status=paused)",
"cueapi resume <id>": "PATCH /v1/cues/{id} (status=active)",
"cueapi delete <id>": "DELETE /v1/cues/{id}",
"cueapi fire <id>": "POST /v1/cues/{id}/fire (with --payload-override + --merge-strategy)",
"cueapi fire <id>": "POST /v1/cues/{id}/fire (with --payload-override + --merge-strategy + --require-payload-override + --required-keys)",
"cueapi update <id>": "PATCH /v1/cues/{id}",
"cueapi upgrade": "POST /v1/billing/checkout",
"cueapi manage": "POST /v1/billing/portal",
"cueapi usage": "GET /v1/usage",
"cueapi executions list": "GET /v1/executions",
"cueapi executions list": "GET /v1/executions (with --cue-id, --status, --outcome-state, --result-type, --has-evidence, --triggered-by, --limit, --offset)",
"cueapi executions list-claimable": "GET /v1/executions/claimable",
"cueapi executions get <id>": "GET /v1/executions/{id}",
"cueapi executions get <id>": "GET /v1/executions/{id} (displays payload + outcome + evidence)",
"cueapi executions claim <id>": "POST /v1/executions/{id}/claim",
"cueapi executions claim-next": "POST /v1/executions/claim",
"cueapi executions heartbeat <id>": "POST /v1/executions/{id}/heartbeat",
"cueapi executions report-outcome <id>": "POST /v1/executions/{id}/outcome",
"cueapi key regenerate": "POST /v1/auth/key/regenerate"
"cueapi executions replay <id>": "POST /v1/executions/{id}/replay",
"cueapi executions verify <id>": "POST /v1/executions/{id}/verify",
"cueapi executions verification-pending <id>": "POST /v1/executions/{id}/verification-pending",
"cueapi key regenerate": "POST /v1/auth/key/regenerate",
"cueapi key webhook-secret get": "GET /v1/auth/webhook-secret",
"cueapi key webhook-secret regenerate": "POST /v1/auth/webhook-secret/regenerate",
"cueapi workers list": "GET /v1/workers",
"cueapi workers delete <id>": "DELETE /v1/workers/{id}",
"cueapi agents create": "POST /v1/agents",
"cueapi agents list": "GET /v1/agents",
"cueapi agents get <ref>": "GET /v1/agents/{ref}",
"cueapi agents update <ref>": "PATCH /v1/agents/{ref}",
"cueapi agents delete <ref>": "DELETE /v1/agents/{ref}",
"cueapi agents inbox <ref>": "GET /v1/agents/{ref}/inbox",
"cueapi agents sent <ref>": "GET /v1/agents/{ref}/sent",
"cueapi agents webhook-secret get <ref>": "GET /v1/agents/{ref}/webhook-secret",
"cueapi agents webhook-secret regenerate <ref>": "POST /v1/agents/{ref}/webhook-secret/regenerate",
"cueapi messages send": "POST /v1/messages (with notify[] for §17 BCC-light, idempotency-key)",
"cueapi messages get <id>": "GET /v1/messages/{id}",
"cueapi messages read <id>": "POST /v1/messages/{id}/read",
"cueapi messages ack <id>": "POST /v1/messages/{id}/ack"
},

"endpoints_missing": {
"POST /v1/executions/{id}/replay": {"blocker": "Replay flow exists server-side; no CLI surface."},
"POST /v1/executions/{id}/verification-pending": {"blocker": "Verification helper for handlers that produce evidence asynchronously."},
"POST /v1/executions/{id}/verify": {"blocker": "Manual verification flow; no CLI surface."},
"POST /v1/worker/heartbeat": {"blocker": "Worker registration; CLI users can register workers via cueapi-worker but not via this CLI directly."},
"GET /v1/workers": {"blocker": "Fleet visibility — list workers + heartbeat status. Useful for ops."},
"GET /v1/auth/webhook-secret": {"blocker": "Webhook-secret retrieval for users running their own webhook servers."},
"POST /v1/auth/webhook-secret/regenerate": {"blocker": "Destructive — re-evaluate."},
"Messaging primitive (all of /v1/agents, /v1/messages, /v1/agents/{id}/inbox)": {
"blocker": "Phase 12.1.5 messaging primitive on prod but no CLI surface. Would need new command group: `cueapi agents` + `cueapi messages`. Significant new surface."
}
},
"endpoints_missing": {},

"command_drift": {
"cueapi create": {
"covered_flags": [
"--name", "--cron", "--at", "--url / --callback", "--method",
"--timezone", "--payload", "--description", "--worker",
"--on-failure"
],
"missing_flags": [
"--require-payload-override (PR #590, enforces payload_override on /fire)",
"--required-keys (PR #590, comma-separated list)",
"--transport (currently inferred from --worker; explicit flag would be cleaner)",
"--delivery (delivery config JSON)",
"--alerts (alert config JSON)",
"--catch-up (run_once_if_missed / skip_missed / replay_all)",
"--verification (verification config JSON)",
"--on-success-fire (cue ID for native chaining, Gap 1)"
]
},
"cueapi update": {
"covered_flags": [
"--name", "--cron", "--at", "--url / --callback", "--method",
"--timezone", "--payload", "--description"
],
"missing_flags": [
"--require-payload-override / --no-require-payload-override",
"--required-keys",
"--on-failure", "--delivery", "--alerts", "--catch-up",
"--verification", "--on-success-fire / --clear-on-success-fire",
"--status (active / paused; alternative to pause/resume commands)"
]
},
"cueapi executions get": {
"current_display": "execution metadata + outcome + evidence fields",
"missing_display": "payload field (PR #589, just shipped) — should display the effective payload (payload_override OR cue.payload) so users can see what the handler actually saw"
},
"cueapi executions list": {
"covered_flags": ["--cue-id", "--status", "--limit", "--offset"],
"missing_flags": [
"--outcome-state (filter by reported_success / verified_success / verification_pending / etc.)",
"--result-type (filter by evidence result_type)",
"--has-evidence (filter to executions with evidence_external_id)",
"--triggered-by (filter manual_fire / scheduled / chain)"
]
}
},
"command_drift": {},

"ported_pr_history": [
"PR #589 (expose payload on GET /v1/executions): NOT YET PORTED — Backlog row 'Parity port: PR #590 → cueapi-cli' priority=now (the row covers both #589 + #590 since they touch the same surface). CLI needs to display the new payload field on `executions get` output.",
"PR #590 (require_payload_override): NOT YET PORTED — Backlog row priority=now. Adds --require-payload-override + --required-keys to create + update."
"PR #589 (expose payload on GET /v1/executions): PORTED via cueapi-cli #26 — `cueapi executions get` now displays the effective payload (payload_override OR cue.payload).",
"PR #590 (require_payload_override + required_keys on /fire): PORTED via cueapi-cli #26 — `cueapi create / update` now have --require-payload-override / --no-require-payload-override + --required-keys.",
"Server-side executions-list filtering (outcome_state, result_type, has_evidence, triggered_by): PORTED via cueapi-cli #27.",
"Server-side messaging primitive — Phase 12.1.5 agents directory + Phase 12.1.5.5 inbox/sent: PORTED via cueapi-cli #28 (agents command group: create/list/get/update/delete/inbox/sent + webhook-secret get/regenerate).",
"Server-side messaging primitive — Phase 12.1.5 send/get/read/ack: PORTED via cueapi-cli #29 (messages command group). §17 BCC-light (server PR #619) covered by --notify on `messages send`.",
"Server-side remaining create/update fields (delivery, alerts, catch_up, verification config blobs + on_success_fire native chaining + status field): PORTED via cueapi-cli #30 — `create / update` now expose --delivery, --alerts, --catch-up, --verification, --on-success-fire / --clear-on-success-fire, --status.",
"Server-side execution lifecycle helpers (replay, verify, verification-pending): PORTED via cueapi-cli #31 — `cueapi executions replay / verify / verification-pending`.",
"Server-side worker fleet visibility (GET /v1/workers + DELETE /v1/workers/{id}) + per-account webhook-secret retrieval/regeneration: PORTED via cueapi-cli #33 — `cueapi workers list / delete` + `cueapi key webhook-secret get / regenerate`."
],

"open_ports_in_flight": [
"cueapi-cli PR #40 — `cueapi message-to <name>` universal wrapper + `agents list --online-only` + `agents describe <ref>` alias. Stacks on top of #28 + #29. Not yet merged at the time of this audit.",
"cueapi-cli PR #41 — `--mode <live|bg|inbox|webhook|auto>` flag on `cueapi message-to` for PRD Surface 6 v2 delivery_mode. Stacks on top of #40. Not yet merged at the time of this audit. Sibling MCP PR: cueapi-mcp #27."
],

"notes": "First seeded 2026-05-04 as Layer 2 of parity discipline (PR template in cueapi/cueapi#615 + this manifest + Backlog rows). Schema mirrors cueapi-python's manifest. The `endpoints_missing` and `command_drift` sections are deliberately verbose — they are the audit checklist for catching up the CLI to the hosted API."
"notes": "First seeded 2026-05-04 as Layer 2 of parity discipline (PR template in cueapi/cueapi#615 + this manifest + Backlog rows). Schema mirrors cueapi-python's manifest. The `endpoints_missing` and `command_drift` sections are deliberately verbose when populated — they are the audit checklist for catching up the CLI to the hosted API. As of the 2026-05-05 audit, the CLI has 100% coverage of all merged hosted-side endpoints; in-flight ports are tracked in `open_ports_in_flight` and should move into `commands_covered` once their parent PRs merge. The next full sweep should include: server-side last_seen_at (Surface 1, cueapi #630 in flight) + server-side delivery_mode bridge (Surface 6 v2) once both ship."
}