Skip to content

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:

ai-stp consent allow --scope object_major --target <stable_id>@<major> --json

To record authorized full-task authority:

ai-stp consent allow --scope task --target full-auto --json

To withdraw either form:

ai-stp consent revoke --scope publisher --target <publisher> --json
ai-stp consent list --json

--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.

Record consent to unverified objects of one publisher, major line, or the authorized task profile.

ai-stp consent allow --scope publisher --target <publisher> --json

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.

Withdraw a consent. Takes effect immediately for later requests.

ai-stp consent revoke --scope publisher --target <publisher> --json

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.

Every consent still in force, and what each covered when given.

ai-stp consent list --json

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.

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 select eligibility or install plan 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
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.