Edit Attacker
edit_attackerUpdates an attacker’s attributes, attack factors, and attestations in a threat model, changing only specified fields and returning the revised attacker.
Instructions
Edit an attacker; only the fields given change.
capability names the operations performable from the position
("From [position], the attacker can …"), else it gets a
quality_warning. Identity fields are LLM-gated. The composed
likelihood comes from the factors. An edit of attack_vector or
privileges_required creates a model version (reachability reads
both); other factor edits are recorded as rating revisions. Over a
pending rating (rating_pending), a factor edit settles the pair, a
judgment (rating_reconfirmed). New words are rated for (one call, at
your cost); a person's rating is kept, the new one held pending, and
attested or holdings-given privileges never move. Adopting advice is
your own edit. The answer's model is the model's id, version and
title; entities.attackers the attacker as it now stands.
Attesting is a judgment: a person's edit attests what it writes
(trust_boundary_ids, privileges_required, surface_extent)
and attest_* attests the value as it stands. A program attests
only under a workspace rule for that attestation; otherwise its edit
lands unattested and the answer's attestation names the parked
escalation_id (never a 403). A refused program's extent never
lowers an attested one. "point" is REFUSED where an asset of the
attacker's objectives sits on several components and is not
split-knowledge, and never makes a universal clause existential.
400 when factor fields, surface_extent, attest_surface_extent
or attest_privileges come without change_reason; 503/502 on an
evaluator outage or malformed answer or a failed rating call. 409 when
the model changed since it was read: read it again. 409 privileges_from_holdings
for a privileges change on an attacker whose credential classes are
stated: its privileges follow from them, so say what it holds instead
(answer_attacker_credentials).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| model_id | Yes | ||
| position | No | ||
| archetype | No | ||
| capability | No | ||
| attacker_id | Yes | ||
| attack_vector | No | Network | Adjacent | Local | Physical. | |
| change_reason | No | Why; required as above. | |
| server_version | Yes | ||
| surface_extent | No | ``whole`` (any entry of the interface reached) or ``point`` (one named entry). | |
| attest_position | No | true attests the current position. | |
| user_interaction | No | None | Required. | |
| attack_complexity | No | Low | High. | |
| attest_privileges | No | true attests the current ``privileges_required``, whatever its value. | |
| trust_boundary_ids | No | Comma-separated ids of the boundaries the attacker has crossed; replaces the set. | |
| privileges_required | No | None | Low | High. | |
| likelihood_rationale | No | ||
| attest_surface_extent | No | true attests the current extent. | |
| capability_prevalence | No | Commodity | Targeted | Rare. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||