Consent¶
An unverified object takes no part in automatic installation without the user's explicit consent. This group records that consent, lists what is still in force, and withdraws it. It does not install anything.
Consent is scoped. The scopes this contract defines are
publisher, object_major, and task. There is no
“everything on this machine” switch: task names the authorized
full-auto profile, not every publisher.
This is not Install telemetry consent. Telemetry is an anonymous install ping with its own command. Mixing the two would make a catalog-risk decision look like a traffic preference.
Commands¶
| Command | Mutability | Confirmation | When |
|---|---|---|---|
ai-stp consent allow |
apply |
none |
Record consent to unverified objects of one publisher, major line, or the authorized task profile. |
ai-stp consent revoke |
apply |
none |
Withdraw a consent. Takes effect immediately for later requests. |
ai-stp consent list |
read |
none |
Every consent still in force, and what each covered when given. |
confirmation is none. The decision is the command itself, aimed at
one publisher, one major line, or the authorized full-auto profile.
That is narrower than a --confirm that could cover anything.
Typical path¶
See what is already recorded, then allow one publisher, then check again:
ai-stp consent list --json
ai-stp consent allow --scope publisher --target <publisher> --json
ai-stp consent list --json
To allow one object major line instead:
To record authorized full-task authority:
To withdraw either form:
--scope and --target are the declared options. The handler refuses
the call if either is missing. --scope is publisher,
object_major, or task. --target is the publisher, the object
major line, or full-auto.
A recorded consent is not permission to skip eligibility, a plan, or
--expected-plan-digest. It only answers the unverified-object gate
that would otherwise stop a later request.
publisher covers unverified objects of one publisher. object_major
covers one object major line. task / full-auto covers unverified
candidates for the authorized profile without a per-object grant. A
revoked narrower publisher or object-major record still excludes that
target. There is no * target and no account-wide allow. If you need
two publishers, you record two consents.
The fingerprint is stored rather than recomputed for publisher and
object_major. A later request that needs more than the stored
fingerprint is refused unless an active task grant covers it. Allow
the fingerprint scopes again only after you have read what grew.
consent allow¶
Record consent to unverified objects of one publisher, major line, or the authorized task profile.
What is stored is the consent and a fingerprint of what the candidate required when the user agreed. The whole mechanism is “does this now need more than it did then”, which cannot be answered without the older answer. If the candidate later grows new risk, the old consent does not cover it.
scope must be one this contract defines. An unknown word is refused
before anything is asked about the target, so a typo is not reported
as a missing publisher.
Allowing a consent that is already in force is not a second, wider grant. Read the returned record.
consent revoke¶
Withdraw a consent. Takes effect immediately for later requests.
Later selection and installation requests see the withdrawal. Already installed native state is not rolled back by this command. Rolling back a target is Target, through the provider.
Revoking a consent that was never given is refused with
AI_STP_NOT_FOUND.
consent list¶
Every consent still in force, and what each covered when given.
This is a read. An empty records array is a successful answer, not an
error. It means nothing is in force.
What a successful envelope contains¶
consent allow and consent revoke return one record in data:
| Field | What it is |
|---|---|
consent_id |
this consent's identifier |
scope |
publisher, object_major, or task |
target |
the publisher, major line, or full-auto profile it covers |
fingerprint |
what the candidate required when the user agreed |
observed |
what was observed at that moment |
origin |
where the decision was recorded |
decided_by |
who recorded it |
created_at |
when it was given |
revoked_at |
when it was withdrawn, or null |
schema_version |
the schema major of this record |
consent list returns:
| Field | What it is |
|---|---|
records |
every consent still in force, each in the shape above |
schema_version |
the schema major of this summary |
The envelope also carries ok, warnings, next_actions,
request_id, operation_id, and schema_version.
Consent is not a trust line¶
Trust and safety still applies.
| Line | What consent does |
|---|---|
authoritative |
not this page; ordinary plan and confirmation |
experimental |
may be considered only after explicit consent |
local_owner_or_pinned |
selected as a locally pinned object, not because the platform verified it |
author_verified and component_verified remain independent. Consent
does not flip either flag. It does not move an object onto the
authoritative line.
What these commands never do¶
- install, update, or remove a component or a setup;
- widen a publisher consent into “all publishers”;
- replace telemetry consent;
- put secrets into the stored fingerprint;
- skip
selecteligibility orinstallplan confirmation; - write a harness target.
Typical refusals¶
| What you see | What it means | What to do |
|---|---|---|
AI_STP_VALIDATION_ERROR missing scope or target |
both are required | pass --scope and --target |
AI_STP_VALIDATION_ERROR unknown scope |
the word is not publisher, object_major, or task |
use one of those three |
AI_STP_NOT_FOUND on revoke |
that consent was never given, or is already gone | consent list --json |
AI_STP_PRECONDITION_FAILED |
the candidate now needs more than the stored fingerprint covers | read details; allow again only after reviewing the new risk |
| an install still refuses | consent is not a plan digest and not eligibility | Select then Install |
mixing this with telemetry consent |
different decision, different command | Install telemetry |
Related pages¶
| Page | Why |
|---|---|
| Trust and safety | trust lines and the two verification axes |
| Catalog | how to read a card before consenting |
| Registry | finding the publisher or object |
| Select | eligibility still applies |
| Install | plan, approve, apply still apply |
| Install telemetry | the other consent screen |
| Reports | reporting an object after the fact |
Flags from ai-stp help --agent --json
If help --agent disagrees with a flag on this page, the CLI wins.
Optional flags are not listed here. Read them from the descriptor.