removedInput schema / $defs
Removed value: -{
- "CompositionMetadata": {
- "description": "System-managed block describing which scope sources merged into the canonical card. Only returned when `?include_composition=true`.",
- "properties": {
- "canonical_id": {
- "type": "string"
- },
- "composed_at": {
- "format": "date-time",
- "type": "string"
- },
- "exemptions_applied": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "scopes_applied": {
- "items": {
- "properties": {
- "card_id": {
- "type": "string"
- },
- "scope": {
- "description": "`platform`, `org:<id>`, or `agent:<id>`.",
- "type": "string"
- },
- "template_version": {
- "type": "integer"
- },
- "version": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "source_card_id": {
- "type": "string"
- },
- "source_policy_id": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "UnifiedAlignmentCard": {
- "description": "Unified alignment card (ADR-008/ADR-039). Authored in YAML or JSON; composed server-side with platform defaults, org template, and active exemptions before storage. This schema matches the runtime validator at src/composition/validate.ts EXACTLY — a card authored strictly to it passes `PUT /v1/agents/{id}/alignment-card` and the preview-compose endpoint. Output-only fields (card_id, issued_at, expires_at, _composition, content_hash, version) are server-assigned and must NOT be sent on a PUT.",
- "properties": {
- "_composition": {
- "$ref": "#/$defs/CompositionMetadata"
- },
- "agent_id": {
- "description": "Target agent id. On PUT, server overwrites to match the URL path.",
- "type": "string"
- },
- "audit": {
- "allOf": [
- {
- "if": {
- "properties": {
- "queryable": {
- "const": true
- }
- },
- "required": [
- "queryable"
- ]
- },
- "then": {
- "required": [
- "query_endpoint"
- ]
- }
- }
- ],
- "properties": {
- "query_endpoint": {
- "description": "Required when audit.queryable is true.",
- "type": "string"
- },
- "queryable": {
- "type": "boolean"
- },
- "retention_days": {
- "minimum": 0,
- "type": "integer"
- },
- "storage": {
- "properties": {
- "location": {
- "type": "string"
- },
- "type": {
- "enum": [
- "local",
- "remote",
- "distributed"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "tamper_evidence": {
- "enum": [
- "append_only",
- "signed",
- "merkle",
- null
- ],
- "type": [
- "string",
- "null"
- ]
- },
- "trace_format": {
- "type": "string"
- }
- },
- "required": [
- "retention_days",
- "queryable"
- ],
- "type": "object"
- },
- "autonomy": {
- "properties": {
- "bounded_actions": {
- "items": {
- "type": "string"
- },
- "minItems": 1,
- "type": "array"
- },
- "escalation_triggers": {
- "items": {
- "properties": {
- "action": {
- "enum": [
- "escalate",
- "deny",
- "log"
- ],
- "type": "string"
- },
- "condition": {
- "type": "string"
- },
- "reason": {
- "type": "string"
- }
- },
- "required": [
- "condition",
- "action",
- "reason"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "forbidden_actions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "max_autonomous_value": {
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "bounded_actions"
- ],
- "type": "object"
- },
- "autonomy_mode": {
- "description": "ADR-039 master switch for the action-policing pipeline (autonomy constraints). Required at the top level post-cutover; the legacy `enforcement.mode` location is rejected.",
- "enum": [
- "off",
- "observe",
- "nudge",
- "enforce"
- ],
- "type": "string"
- },
- "capabilities": {
- "additionalProperties": {
- "properties": {
- "description": {
- "type": "string"
- },
- "required_actions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "tools": {
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "type": "object"
- },
- "card_id": {
- "description": "Card row id. Server-assigned on PUT (`ac-{uuid}`).",
- "type": "string"
- },
- "card_version": {
- "description": "Card schema version (required, non-empty). Current canonical value: `unified/2026-04-26`.",
- "minLength": 1,
- "type": "string"
- },
- "conscience": {
- "properties": {
- "mode": {
- "enum": [
- "augment",
- "replace"
- ],
- "type": "string"
- },
- "values": {
- "items": {
- "properties": {
- "content": {
- "type": "string"
- },
- "id": {
- "type": "string"
- },
- "severity": {
- "enum": [
- "advisory",
- "mandatory"
- ],
- "type": "string"
- },
- "type": {
- "enum": [
- "BOUNDARY",
- "FEAR",
- "COMMITMENT",
- "BELIEF",
- "HOPE"
- ],
- "type": "string"
- }
- },
- "required": [
- "type",
- "content"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "mode",
- "values"
- ],
- "type": "object"
- },
- "content_hash": {
- "description": "Response-only: content hash of the composed card (`sha256:<hex>`), injected by the GET/PUT response. Server-assigned — do not send on a PUT.",
- "type": "string"
- },
- "enforcement": {
- "description": "Optional ADR-039 Decision-3 user-facing knobs for unmapped-tool handling. The legacy `mode`, `unmapped_tool_action` and `fail_open` keys are REJECTED by the validator (mode → top-level autonomy_mode; fail_open → gateway env config).",
- "properties": {
- "allow_unmapped_tools": {
- "description": "When true, tools not mapped to a capability are allowed by default.",
- "type": "boolean"
- },
- "default_unmapped_severity": {
- "description": "Severity assigned to an unmapped tool when allow_unmapped_tools is false.",
- "enum": [
- "low",
- "medium",
- "high",
- "critical"
- ],
- "type": "string"
- },
- "forbidden_tools": {
- "items": {
- "properties": {
- "pattern": {
- "type": "string"
- },
- "reason": {
- "type": "string"
- },
- "severity": {
- "enum": [
- "critical",
- "high",
- "medium",
- "low"
- ],
- "type": "string"
- }
- },
- "required": [
- "pattern",
- "reason",
- "severity"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "grace_period_hours": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "expires_at": {
- "format": "date-time",
- "type": [
- "string",
- "null"
- ]
- },
- "extensions": {
- "additionalProperties": true,
- "type": "object"
- },
- "integrity_mode": {
- "description": "ADR-039 master switch for the values/conscience pipeline (integrity constraints). Required at the top level post-cutover; the legacy `integrity.enforcement_mode` location is rejected.",
- "enum": [
- "off",
- "observe",
- "nudge",
- "enforce"
- ],
- "type": "string"
- },
- "issued_at": {
- "format": "date-time",
- "type": "string"
- },
- "principal": {
- "allOf": [
- {
- "if": {
- "properties": {
- "type": {
- "not": {
- "const": "unspecified"
- }
- }
- }
- },
- "then": {
- "required": [
- "identifier"
- ]
- }
- }
- ],
- "description": "Required object describing whose authority the agent acts under (ADR-039 Decision 10).",
- "properties": {
- "escalation_contact": {
- "type": "string"
- },
- "identifier": {
- "description": "Required (non-empty) when principal.type is not `unspecified`; identifies the human / organization / agent.",
- "minLength": 1,
- "type": "string"
- },
- "relationship": {
- "enum": [
- "delegated_authority",
- "advisory",
- "autonomous"
- ],
- "type": "string"
- },
- "type": {
- "enum": [
- "human",
- "organization",
- "agent",
- "unspecified"
- ],
- "type": "string"
- }
- },
- "required": [
- "type",
- "relationship"
- ],
- "type": "object"
- },
- "values": {
- "properties": {
- "conflicts_with": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "declared": {
- "description": "Ordered list of declared values. Phase 1 cards-as-primitive: each entry is either a catalog-v1 ID string (e.g. `'accuracy'`) or a parameterized map carrying optional `intensity` / `domain` / `severity_on_violation` / `scope` (e.g. `{id: 'accuracy', domain: 'financial', severity_on_violation: 'critical'}`).",
- "items": {
- "oneOf": [
- {
- "minLength": 1,
- "type": "string"
- },
- {
- "additionalProperties": {
- "type": "string"
- },
- "properties": {
- "id": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "id"
- ],
- "type": "object"
- }
- ]
- },
- "minItems": 1,
- "type": "array"
- },
- "definitions": {
- "additionalProperties": {
- "properties": {
- "description": {
- "type": "string"
- },
- "priority": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "type": "object"
- },
- "hierarchy": {
- "enum": [
- "lexicographic",
- "weighted",
- "contextual"
- ],
- "type": "string"
- }
- },
- "required": [
- "declared"
- ],
- "type": "object"
- },
- "version": {
- "description": "Response-only: monotonic card version, injected by the GET/PUT response. Server-assigned — do not send on a PUT.",
- "type": "integer"
- }
- },
- "required": [
- "card_version",
- "agent_id",
- "autonomy_mode",
- "integrity_mode",
- "principal",
- "values",
- "autonomy",
- "audit"
- ],
- "type": "object"
- }
-}
changedInput schema / properties / agent_id / description
Previous value: -"Agent identifier (e.g. smolt-abc123)"New value: +"The agent this card belongs to (e.g. `smolt-abc123`). Identifier only — never place an API key, a secret, an email address, or any other personal data in this field."
addedInput schema / properties / agent_id / maxLength
Added value: +64
addedInput schema / properties / agent_id / minLength
Added value: +3
addedInput schema / properties / agent_id / pattern
Added value: +"^[A-Za-z0-9][A-Za-z0-9_-]{1,62}[A-Za-z0-9]$"
addedInput schema / properties / audit
Added value: +{
+ "additionalProperties": false,
+ "description": "How long this agent's own decision log is kept, and whether it can be queried. Required. (This is the agent's audit policy — it is NOT Mnemom's retention policy for the card itself; see the tool's data-handling disclosure for that.)",
+ "properties": {
+ "query_endpoint": {
+ "description": "HTTPS endpoint the records can be queried from. REQUIRED when `queryable` is true, and ignored when it is false.",
+ "maxLength": 300,
+ "type": "string"
+ },
+ "queryable": {
+ "default": false,
+ "description": "Whether those retained records can be queried. Leave false unless you also supply `query_endpoint` — the server rejects a queryable audit policy with no endpoint.",
+ "type": "boolean"
+ },
+ "retention_days": {
+ "description": "How many days the agent's decision records are retained. 0 means do not retain. 3650 (10 years) maximum.",
+ "maximum": 3650,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "tamper_evidence": {
+ "description": "Tamper-evidence scheme applied to the retained records.",
+ "enum": [
+ "append_only",
+ "signed",
+ "merkle"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "retention_days",
+ "queryable"
+ ],
+ "type": "object"
+}
addedInput schema / properties / autonomy
Added value: +{
+ "additionalProperties": false,
+ "description": "What the agent may do on its own authority. Required.",
+ "properties": {
+ "bounded_actions": {
+ "description": "Action names the agent may take within its bounds — e.g. [\"send_email\", \"create_ticket\"]. At least one required. Action identifiers only, not descriptions.",
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 64,
+ "minItems": 1,
+ "type": "array"
+ },
+ "escalation_triggers": {
+ "description": "Conditions that route to a human instead of acting.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "description": "What to do when the condition holds.",
+ "enum": [
+ "escalate",
+ "deny",
+ "log"
+ ],
+ "type": "string"
+ },
+ "condition": {
+ "description": "The condition, as a short expression or slug (e.g. \"amount > 1000\"). Short condition only — never paste a conversation, a log excerpt, or a record about a person. Do NOT enter personal data (names, email addresses, phone numbers, postal addresses), and do NOT enter health, biometric, government-identifier (e.g. SSN) or payment-card data. This text is stored on the agent's governance card and is readable by everyone in the owning organization.",
+ "maxLength": 200,
+ "minLength": 1,
+ "type": "string"
+ },
+ "reason": {
+ "description": "Why this trigger exists, in one short sentence. Do NOT enter personal data (names, email addresses, phone numbers, postal addresses), and do NOT enter health, biometric, government-identifier (e.g. SSN) or payment-card data. This text is stored on the agent's governance card and is readable by everyone in the owning organization.",
+ "maxLength": 200,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "condition",
+ "action",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "maxItems": 32,
+ "type": "array"
+ },
+ "forbidden_actions": {
+ "description": "Action names the agent must never take. Must be disjoint from `bounded_actions`.",
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 64,
+ "type": "array"
+ }
+ },
+ "required": [
+ "bounded_actions"
+ ],
+ "type": "object"
+}
addedInput schema / properties / autonomy_mode
Added value: +{
+ "description": "Master switch for the action-policing pipeline. Required. `off` disables it; `observe` records only; `nudge` warns; `enforce` blocks.",
+ "enum": [
+ "off",
+ "observe",
+ "nudge",
+ "enforce"
+ ],
+ "type": "string"
+}
removedInput schema / properties / body
Removed value: -{
- "description": "Unified alignment card (ADR-008/ADR-039). Authored in YAML or JSON; composed server-side with platform defaults, org template, and active exemptions before storage. This schema matches the runtime validator at src/composition/validate.ts EXACTLY — a card authored strictly to it passes `PUT /v1/agents/{id}/alignment-card` and the preview-compose endpoint. Output-only fields (card_id, issued_at, expires_at, _composition, content_hash, version) are server-assigned and must NOT be sent on a PUT.",
- "properties": {
- "_composition": {
- "$ref": "#/$defs/CompositionMetadata"
- },
- "agent_id": {
- "description": "Target agent id. On PUT, server overwrites to match the URL path.",
- "type": "string"
- },
- "audit": {
- "allOf": [
- {
- "if": {
- "properties": {
- "queryable": {
- "const": true
- }
- },
- "required": [
- "queryable"
- ]
- },
- "then": {
- "required": [
- "query_endpoint"
- ]
- }
- }
- ],
- "properties": {
- "query_endpoint": {
- "description": "Required when audit.queryable is true.",
- "type": "string"
- },
- "queryable": {
- "type": "boolean"
- },
- "retention_days": {
- "minimum": 0,
- "type": "integer"
- },
- "storage": {
- "properties": {
- "location": {
- "type": "string"
- },
- "type": {
- "enum": [
- "local",
- "remote",
- "distributed"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "tamper_evidence": {
- "enum": [
- "append_only",
- "signed",
- "merkle",
- null
- ],
- "type": [
- "string",
- "null"
- ]
- },
- "trace_format": {
- "type": "string"
- }
- },
- "required": [
- "retention_days",
- "queryable"
- ],
- "type": "object"
- },
- "autonomy": {
- "properties": {
- "bounded_actions": {
- "items": {
- "type": "string"
- },
- "minItems": 1,
- "type": "array"
- },
- "escalation_triggers": {
- "items": {
- "properties": {
- "action": {
- "enum": [
- "escalate",
- "deny",
- "log"
- ],
- "type": "string"
- },
- "condition": {
- "type": "string"
- },
- "reason": {
- "type": "string"
- }
- },
- "required": [
- "condition",
- "action",
- "reason"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "forbidden_actions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "max_autonomous_value": {
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "bounded_actions"
- ],
- "type": "object"
- },
- "autonomy_mode": {
- "description": "ADR-039 master switch for the action-policing pipeline (autonomy constraints). Required at the top level post-cutover; the legacy `enforcement.mode` location is rejected.",
- "enum": [
- "off",
- "observe",
- "nudge",
- "enforce"
- ],
- "type": "string"
- },
- "capabilities": {
- "additionalProperties": {
- "properties": {
- "description": {
- "type": "string"
- },
- "required_actions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "tools": {
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "type": "object"
- },
- "card_id": {
- "description": "Card row id. Server-assigned on PUT (`ac-{uuid}`).",
- "type": "string"
- },
- "card_version": {
- "description": "Card schema version (required, non-empty). Current canonical value: `unified/2026-04-26`.",
- "minLength": 1,
- "type": "string"
- },
- "conscience": {
- "properties": {
- "mode": {
- "enum": [
- "augment",
- "replace"
- ],
- "type": "string"
- },
- "values": {
- "items": {
- "properties": {
- "content": {
- "type": "string"
- },
- "id": {
- "type": "string"
- },
- "severity": {
- "enum": [
- "advisory",
- "mandatory"
- ],
- "type": "string"
- },
- "type": {
- "enum": [
- "BOUNDARY",
- "FEAR",
- "COMMITMENT",
- "BELIEF",
- "HOPE"
- ],
- "type": "string"
- }
- },
- "required": [
- "type",
- "content"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "mode",
- "values"
- ],
- "type": "object"
- },
- "content_hash": {
- "description": "Response-only: content hash of the composed card (`sha256:<hex>`), injected by the GET/PUT response. Server-assigned — do not send on a PUT.",
- "type": "string"
- },
- "enforcement": {
- "description": "Optional ADR-039 Decision-3 user-facing knobs for unmapped-tool handling. The legacy `mode`, `unmapped_tool_action` and `fail_open` keys are REJECTED by the validator (mode → top-level autonomy_mode; fail_open → gateway env config).",
- "properties": {
- "allow_unmapped_tools": {
- "description": "When true, tools not mapped to a capability are allowed by default.",
- "type": "boolean"
- },
- "default_unmapped_severity": {
- "description": "Severity assigned to an unmapped tool when allow_unmapped_tools is false.",
- "enum": [
- "low",
- "medium",
- "high",
- "critical"
- ],
- "type": "string"
- },
- "forbidden_tools": {
- "items": {
- "properties": {
- "pattern": {
- "type": "string"
- },
- "reason": {
- "type": "string"
- },
- "severity": {
- "enum": [
- "critical",
- "high",
- "medium",
- "low"
- ],
- "type": "string"
- }
- },
- "required": [
- "pattern",
- "reason",
- "severity"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "grace_period_hours": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "expires_at": {
- "format": "date-time",
- "type": [
- "string",
- "null"
- ]
- },
- "extensions": {
- "additionalProperties": true,
- "type": "object"
- },
- "integrity_mode": {
- "description": "ADR-039 master switch for the values/conscience pipeline (integrity constraints). Required at the top level post-cutover; the legacy `integrity.enforcement_mode` location is rejected.",
- "enum": [
- "off",
- "observe",
- "nudge",
- "enforce"
- ],
- "type": "string"
- },
- "issued_at": {
- "format": "date-time",
- "type": "string"
- },
- "principal": {
- "allOf": [
- {
- "if": {
- "properties": {
- "type": {
- "not": {
- "const": "unspecified"
- }
- }
- }
- },
- "then": {
- "required": [
- "identifier"
- ]
- }
- }
- ],
- "description": "Required object describing whose authority the agent acts under (ADR-039 Decision 10).",
- "properties": {
- "escalation_contact": {
- "type": "string"
- },
- "identifier": {
- "description": "Required (non-empty) when principal.type is not `unspecified`; identifies the human / organization / agent.",
- "minLength": 1,
- "type": "string"
- },
- "relationship": {
- "enum": [
- "delegated_authority",
- "advisory",
- "autonomous"
- ],
- "type": "string"
- },
- "type": {
- "enum": [
- "human",
- "organization",
- "agent",
- "unspecified"
- ],
- "type": "string"
- }
- },
- "required": [
- "type",
- "relationship"
- ],
- "type": "object"
- },
- "values": {
- "properties": {
- "conflicts_with": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "declared": {
- "description": "Ordered list of declared values. Phase 1 cards-as-primitive: each entry is either a catalog-v1 ID string (e.g. `'accuracy'`) or a parameterized map carrying optional `intensity` / `domain` / `severity_on_violation` / `scope` (e.g. `{id: 'accuracy', domain: 'financial', severity_on_violation: 'critical'}`).",
- "items": {
- "oneOf": [
- {
- "minLength": 1,
- "type": "string"
- },
- {
- "additionalProperties": {
- "type": "string"
- },
- "properties": {
- "id": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "id"
- ],
- "type": "object"
- }
- ]
- },
- "minItems": 1,
- "type": "array"
- },
- "definitions": {
- "additionalProperties": {
- "properties": {
- "description": {
- "type": "string"
- },
- "priority": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "type": "object"
- },
- "hierarchy": {
- "enum": [
- "lexicographic",
- "weighted",
- "contextual"
- ],
- "type": "string"
- }
- },
- "required": [
- "declared"
- ],
- "type": "object"
- },
- "version": {
- "description": "Response-only: monotonic card version, injected by the GET/PUT response. Server-assigned — do not send on a PUT.",
- "type": "integer"
- }
- },
- "required": [
- "card_version",
- "agent_id",
- "autonomy_mode",
- "integrity_mode",
- "principal",
- "values",
- "autonomy",
- "audit"
- ],
- "type": "object"
-}
addedInput schema / properties / card_version
Added value: +{
+ "description": "Card schema version. REQUIRED by the server-side validator. Current canonical value: `unified/2026-04-26`.",
+ "maxLength": 40,
+ "minLength": 3,
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]{1,38}[A-Za-z0-9]$",
+ "type": "string"
+}
addedInput schema / properties / integrity_mode
Added value: +{
+ "description": "Master switch for the values pipeline. Required. Same four states as `autonomy_mode`.",
+ "enum": [
+ "off",
+ "observe",
+ "nudge",
+ "enforce"
+ ],
+ "type": "string"
+}
addedInput schema / properties / principal
Added value: +{
+ "additionalProperties": false,
+ "description": "Whose authority this agent acts under. Required.",
+ "properties": {
+ "escalation_contact": {
+ "description": "Where an escalation is routed. Use a ROLE ALIAS or SHARED INBOX (\"oncall-sre\", \"security@example.com\"), never an individual's personal contact details. Do NOT enter personal data (names, email addresses, phone numbers, postal addresses), and do NOT enter health, biometric, government-identifier (e.g. SSN) or payment-card data. This text is stored on the agent's governance card and is readable by everyone in the owning organization.",
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "identifier": {
+ "description": "Who the principal is. Use a ROLE or ORGANIZATION name (\"support-team\", \"Acme Corp Finance\"), NOT an individual's name, email address or phone number. Pass \"unspecified\" if there is no named principal. Do NOT enter personal data (names, email addresses, phone numbers, postal addresses), and do NOT enter health, biometric, government-identifier (e.g. SSN) or payment-card data. This text is stored on the agent's governance card and is readable by everyone in the owning organization.",
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "relationship": {
+ "description": "How the agent relates to that principal.",
+ "enum": [
+ "delegated_authority",
+ "advisory",
+ "autonomous"
+ ],
+ "type": "string"
+ },
+ "type": {
+ "description": "The kind of principal the agent answers to.",
+ "enum": [
+ "human",
+ "organization",
+ "agent",
+ "unspecified"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "relationship",
+ "identifier"
+ ],
+ "type": "object"
+}
addedInput schema / properties / values
Added value: +{
+ "additionalProperties": false,
+ "description": "The values this agent declares it is bound by. Required.",
+ "properties": {
+ "declared": {
+ "description": "Value catalog IDs — e.g. [\"honesty\", \"no_harm\", \"privacy\"]. At least one required, 32 maximum. Short catalog slugs ONLY, never prose and never personal data. (Parameterized value references and long-form value definitions are available on the /v1 REST + CLI path; they are deliberately not exposed here.)",
+ "items": {
+ "maxLength": 64,
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 32,
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "declared"
+ ],
+ "type": "object"
+}
changedInput schema / required
Previous value: -[
- "agent_id"
-]New value: +[
+ "agent_id",
+ "card_version",
+ "autonomy_mode",
+ "integrity_mode",
+ "principal",
+ "values",
+ "autonomy",
+ "audit"
+]
removedOutput schema / properties / coherence_violations
Removed value: -{
- "additionalProperties": false,
- "properties": {
- "by_severity": {
- "additionalProperties": {
- "type": "integer"
- },
- "type": "object"
- },
- "items": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "field": {},
- "message": {},
- "rule": {},
- "severity": {}
- },
- "type": "object"
- },
- "type": "array"
- },
- "not_shown": {
- "type": "integer"
- },
- "total": {
- "type": "integer"
- }
- },
- "required": [
- "total",
- "by_severity",
- "items"
- ],
- "type": "object"
-}
addedOutput schema / properties / composition_valid
Added value: +{
+ "description": "True when the composed card is coherence-valid.",
+ "type": "boolean"
+}
removedOutput schema / properties / conflicts
Removed value: -{
- "additionalProperties": false,
- "properties": {
- "by_reason": {
- "additionalProperties": {
- "type": "integer"
- },
- "type": "object"
- },
- "not_shown": {
- "description": "Conflicts beyond the inline top-N (present only when > top-N).",
- "type": "integer"
- },
- "overrides": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "field": {},
- "from": {},
- "reason": {},
- "to": {},
- "won_by": {}
- },
- "type": "object"
- },
- "type": "array"
- },
- "total": {
- "type": "integer"
- }
- },
- "required": [
- "total",
- "by_reason",
- "overrides"
- ],
- "type": "object"
-}
addedOutput schema / properties / conflicts_count
Added value: +{
+ "description": "Total number of conflicts detected (0 = none).",
+ "type": "integer"
+}
removedOutput schema / properties / effective
Removed value: -{
- "additionalProperties": false,
- "properties": {
- "autonomy_mode": {
- "type": "string"
- },
- "capabilities_count": {
- "type": "integer"
- },
- "conscience_value_count": {
- "type": "integer"
- },
- "forbidden_actions_count": {
- "type": "integer"
- },
- "integrity_mode": {
- "type": "string"
- },
- "principal_type": {
- "type": "string"
- },
- "values_declared_count": {
- "type": "integer"
- }
- },
- "required": [
- "values_declared_count",
- "conscience_value_count",
- "forbidden_actions_count",
- "capabilities_count"
- ],
- "type": "object"
-}
removedOutput schema / properties / full_report / additionalProperties
Removed value: -false
addedOutput schema / properties / full_report / description
Added value: +"Optional pointer to the full /v1 conflict report (method + path)."
addedOutput schema / properties / full_report / oneOf
Added value: +[
+ {
+ "type": "null"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "method": {
+ "type": "string"
+ },
+ "note": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "method",
+ "path",
+ "note"
+ ],
+ "type": "object"
+ }
+]
removedOutput schema / properties / full_report / properties
Removed value: -{
- "method": {
- "type": "string"
- },
- "note": {
- "type": "string"
- },
- "path": {
- "type": "string"
- }
-}
removedOutput schema / properties / full_report / required
Removed value: -[
- "method",
- "path",
- "note"
-]
removedOutput schema / properties / full_report / type
Removed value: -"object"
addedOutput schema / properties / ok / description
Added value: +"True when composition succeeded (no blocking conflicts)."
addedOutput schema / properties / summary / description
Added value: +"One-line human-readable summary of composition status."
removedOutput schema / properties / summary / enum
Removed value: -[
- true
-]
changedOutput schema / properties / summary / type
Previous value: -"boolean"New value: +"string"
removedOutput schema / properties / tool
Removed value: -{
- "enum": [
- "preview_compose_alignment_by_agent"
- ],
- "type": "string"
-}
removedOutput schema / properties / what_changed
Removed value: -{
- "type": "string"
-}
removedOutput schema / properties / what_to_do_next
Removed value: -{
- "type": "string"
-}
removedOutput schema / properties / what_would_break
Removed value: -{
- "type": "string"
-}
changedOutput schema / required
Previous value: -[
- "summary",
- "tool",
- "ok",
- "effective",
- "conflicts",
- "coherence_violations",
- "what_changed",
- "what_would_break",
- "what_to_do_next",
- "full_report"
-]New value: +[
+ "ok",
+ "composition_valid",
+ "conflicts_count",
+ "summary"
+]