Repository navigation
fp-cloud-cli 0.0.2
fp-cloud-cli 0.0.2 is on PyPI: https://pypi.org/project/fp-cloud-cli/0.0.2/
Stable release. The 0.0.2b0 line the bump job opened after 0.0.1 is cut stable
here rather than published, because the server endpoints these commands drive are now
deployed to FailproofAI Cloud and the CLI should not trail them as a pre-release.
Nothing about the command surface changes at the cut: the entries below are the entire
diff from 0.0.1, and the bump job opens 0.0.3b0 after the upload.
Added
-
Hosted evaluator authoring for code, LLM judge and Jev: create/deploy, AI draft specs, dry-run, labels, toggles, instances, schema, jobs and backfill.
-
Dashboards and tiles; session overview/export/history/re-evaluate; latency and sentiment; query composition/export; alert recipients/issues and agent contracts.
-
Policy author/backtest/candidacy, assistant artifact tables, fail-closed interactive write approvals, and agent-curated home briefs.
-
Organization creation, permission-set roles, member deletion/defaults, usage windows, offers/trial, model context windows, OTEL and Slack controls.
-
fp policies backtestcovers every policy kind: a publishedjev/bothpolicy, or--semantic checks.json(with or without a source file), runs the dashboard's every-kind backtest — a free estimate by default,--run [--sample N]to spend Jev allowance. New--kind --semantic --hours --agent-id --env --run --sample; a regex file or id still uses the module backtest. -
fp policies author --kind regex|jev|bothasks the assistant for Jev checks or a hybrid policy. -
fp issues list|counttake the inbox filters (--agent-id --env --machine --source --audit-id --assignee --archived --search --since, andcount --alert-id); newfp issues facetslists the values they can take. -
fp sessions import FILE...imports Claude Code transcripts, Codex rollouts or event JSONL (--format --env --dry-run), as the dashboard's import dialog does. -
fp list trigger_events,fp list eval_envsandfp list metric_keys. -
fp fleet deploy --target POLICY=INTEGRATION[/agt_ID]scopes a machine's assignment; repeat the flag to include multiple alternatives.--all-agents POLICYexplicitly clears its scope. Deploy plans, show, history, rollback and JSON readback retain assignment targets. -
fp policies publish <id> --kind regex|jev|both [--source f.mjs] [--semantic f.json]: a
FailproofAI Cloud policy can carry Jev checks —jev(declarations only, no JavaScript) or
both(JavaScript reviewable by exactly its own checks; the server derives the authority).
The kind follows from what is given when--kindis omitted, and a kind that contradicts its
inputs is exit 2 before anything is sent. The positional source still works. -
No Jev mode is set by hand: FailproofAI Cloud derives a machine's Jev mode from what is
deployed to it (on while ajev/bothpolicy is, off otherwise), sofp fleet deployhas
no--jev-modeand there is nofp fleet jev-mode. Anobserveeffect applies tojev
andbothpolicies like any other: their checks are recorded and decide nothing. -
fp fleet rollbacksays when the Jev mode differs (jev mode <now> → <then>, and
jevModeBeforein--json);fp fleet historyshows each generation's Jev mode. -
The
fleet deployandpolicies publishhelp says Jev checks run on
FailproofAI Cloud and nothing is installed on the machine, andfleet show
names the reasons a machine with a mode cannot ask (jev_unconfigured,transcripts_disabled)
and thejev_budgetreport. -
fp policies list/showprint each version's kind and Jev check names (showalso the
declarations);fp fleet list/showprint the machine's Jev mode and the policy errors it
reported, and--jsoncarrieskind/semantic/semanticSha256/authority/reviewedBy,
jevModeandpolicyErrors/policyErrorsAtwhen the server sends them. -
jev:evaluateis a known permission — Jev through FailproofAI Cloud, charged to the
org's plan — sofp keysandfp usersaccept it instead of refusing it as unknown,
and theadminpreset carries it, as the server's built-in admin set now does. The
server refuses a KEY carrying it without bothevents:addandpolicies:pull(422,
naming what to add inmissing_permissions); theadminpreset has both. (#833) -
fp keys create/update --permission-set machine: the dashboard's key-only preset
(events:add+policies:pull+jev:evaluate), for an enrolled machine using Jev through
FailproofAI Cloud.fp keysalso refusesjev:evaluatewithout both prerequisites itself
(exit 2, naming what is missing) instead of sending the key for the server's 422. (#833) -
fp policies listandfp policies showprint what ajev/bothversion's checks take of a
machine's Jev question budget (jevChars), and a deploy refused withjev_budget_exceeded
lists each Jev policy's share, largest first (thehintunder--json), so the refusal says
which policy to leave off.
Changed
- New Cloud API families work in key mode; unsupported session-only commands deny before HTTP and unknown-route 404s exit 6 with an availability message.
- Shared screens use the mint/pink wordmark and grey labels, without boxes/rules or shortened ids; existing JSON contracts are unchanged.
- The agent skill, command reference, README and Cloud CLI docs include end-to-end evaluator workflows. No version bump or release is performed.
fp policies publish's refusal of Jev fields in the JavaScript now says where Jev checks go:
the policy's own declarations,--kind both --semantic checks.json.fp guardrails summaryshows how many machines run Jev in each mode, reading the summary's
jev.machines.observeandjev.machines.enforce.fp policies publish(andpolicies compose --publish) refuses a source carrying Jev
fields a cloud policy never reads — asemanticPolicies.add(...)call, or a registration
declaringauthority: "reviewable"— before anything is sent (exit 1,--no-verifydoes
not skip it). Both were published as versions that read Jev-aware and are not: semantic
checks load only from a pack, and a cloud policy's authority comes from its deployment, so
it stays hard. Ship Jev checks in a pack withfailproofai publish. Same rule, and the
same comment-aware detection, as the dashboard's publish form; the server does not read
the source, so nothing else refuses it forfp. (#833)
Fixed
- Remove the unused colour-keyed permission rank, document full-id rendering, emit UTC
Ztimestamps for deploy backfills, and report approval-answer failures without a traceback while restoring the terminal (#885). - Reject natural-language binary judge steps, distinguish unknown routes from missing records on 404, normalize standalone backfill ranges to UTC
Z, expose all subcommands in help, and render artifact headers before titles with consistent session-only wording (#885). - New Cloud commands use deliberate human summaries/tables and actionable empty states at 80/140 columns without raw response blobs. Evaluator previews display before writes and require explicit
--forceafter failures; plan/claim deny key mode, deploy specs can omit the positional key, and older settings-route 404s degrade clearly. Existing JSON payloads stay unchanged (#885). fp evaluators deploykeeps the previous version's condition and labels unless--condition/--labelchange them, so a new version no longer silently widens to every session (#885).- Evaluation backfill covers code, LLM judge and Jev evaluators, as FailproofAI Cloud now does:
fp evaluators deploy --backfillno longer refuses judge/Jev, and both commands warn that judge/Jev backfills spend model budget instead of saying they are skipped. fp usage windowssays it needs an API key (the dashboard has no session route for it) instead of reporting the route as unavailable.fp issues close --helpno longer claims exit 9 for an issue that already ended: it is exit 1, as it always was, and it namesfp audits dismissrather than a command that does not exist.fp fleet historykeepsgen,whenandjevvisible at 80 columns (rollback needsgen): the policy list is shortened, then dropped, andchangewraps first.fp fleet showandfp fleet historyname an exact-profile target by the profile label the machine reports (claude/.claude-work, with theagt_…id kept inshow), falling back to the bare id.