{
  "generated_at": "2026-11-10T21:32:07.834Z",
  "contracts_version": "0.32.289-agined.1",
  "api_base_url": "https://api.agined.com",
  "mcp_base_url": "https://mcp.a2pi.app",
  "domain_blurbs": {
    "account": "Login session, profile, passkeys, locale, notification preferences. Always accessible to the authenticated principal.",
    "org": "Organization-level CRUD, members, roles. Requires `organization.admin` for writes.",
    "workspace": "Workspace CRUD, members, settings, region binding. Workspace creation is billing-impacting (free tier permanent; paid workspaces require a paid plan).",
    "billing": "Subscription, packs, top-ups, invoices, cost centers. All write actions require confirmation tokens.",
    "keys": "Personal access tokens (`av_pat_*`) + workspace API keys (`av_*` control plane, `atst_*` Attestor data plane).",
    "webhooks": "Outbound webhook endpoints + signing secrets + deliveries.",
    "alerts": "Alert rules + test fires + history. Backed by the Tops feed.",
    "exports": "Compliance exports + receipt bundles + EU AI Act Article 12 (statutory by August 2, 2026).",
    "retention": "Retention policy + paid extension. Hard caps default to 90d / 365d / unlimited by tier.",
    "audit": "Three-tier audit log: workspace events (visible), custody chain (operator-only metadata), Tops feed (selectable detail level).",
    "tops": "Tops config cascade: org → workspace → actor (leaf wins). Three presets: minimal, recommended, forensic.",
    "referrals": "Codes + redemption + spend ledger + Every.org charity donations.",
    "number_one": "Number One AI chat in three modes: Calculator (math + cost projections), Analyst (semantic queries over audit + custody), Admin (mutating actions; step-up auth required).",
    "attestor": "8 cryptographic-receipt primitives: agent.call, content.attest, llm.attest, commit.attest, webhook.deliver, monitor.http, dns.watch, tls.watch.",
    "starfleet": "Starfleet spot-actor roster (witness/council/historian/custodian/conscience/…) + the per-workspace run ledger — post runs, list/diff/replay them, verify the hash-chain.",
    "ledger-bundles": "LedgerBundles signed snapshots + transparency-chain verification (a snapshot is a paid action).",
    "privacy": "GDPR/CCPA DSR submission, status, receipts. Always-on — disabling forbidden by ACTIONS_EXCLUDED_FROM_DISABLE.",
    "support": "Tickets + replies + satisfaction surveys.",
    "discovery": "Capabilities + version + schema + plan list. Always-on; no auth required for some sub-actions.",
    "agents": "Agent identity foundation — W3C DID Web Method enrollment/rotation/revocation, A2A delegation, AP2 Verifiable Credential mandates (W3C VC Data Model 2.0 + SD-JWT VC), SPIFFE workload-identity binding + SVID attestation, partner DID federation roots.",
    "nexus": "Actions in the `nexus` domain: catalog.get, usage.get, oracle.agent.get.",
    "vector": "Actions in the `vector` domain: registry.search, registry.entry.get, pricing.get, mcp.servers.list, catalog.get.",
    "fabric": "Connector Fabric — the platform-wide ingestion layer. Connect any of the catalog sources (code / docs / warehouse / BI / analytics / CRM / comms / …) once, then query extracted records by kind across all sources and all products, and introspect the subscription matrix (which product consumes which record kinds).",
    "actionflow": "ActionFlow workflow engine — run flows, instantiate templates, inspect executions.",
    "lens": "Actions in the `lens` domain: list, execute, validate, results.list, custom.list, custom.get, custom.create, custom.update.",
    "notarian": "Actions in the `notarian` domain: snapshot.create, verify-chain, anchors.list.",
    "receipts": "Actions in the `receipts` domain: list, get, verify, issue, canon.list, canon.declare, canon.rely, canon.withdraw.",
    "witness": "Witness Fabric — the platform-level 180-framework catalog + the neutral, chain-free adapter-record stream (list/get frameworks, integration patterns, the subscription matrix, and workspace record reads/writes; product-independent).",
    "tranquility": "Actions in the `tranquility` domain: overview, slos.list, slos.create, slos.set-enabled, slos.get, slos.evaluate, goals.list, goals.create."
  },
  "actions": [
    {
      "id": "account.session.list",
      "domain": "account",
      "summary": "List active sessions on this account.",
      "description_key": "actions.account.session.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.session.list",
      "examples": [
        {
          "input": {
            "limit": 10
          },
          "output": {
            "sessions": [],
            "nextCursor": null
          },
          "note": "List active sessions."
        }
      ]
    },
    {
      "id": "account.session.revoke",
      "domain": "account",
      "summary": "Revoke an active session by id (cannot be disabled — safety floor).",
      "description_key": "actions.account.session.revoke.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.session.revoke",
      "examples": [
        {
          "input": {
            "sessionId": "sess_abc"
          },
          "output": {
            "revoked": true,
            "propagatedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Kill an active session."
        }
      ]
    },
    {
      "id": "account.session.current",
      "domain": "account",
      "summary": "Get the calling principal's current session.",
      "description_key": "actions.account.session.current.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/account.session.current",
      "examples": [
        {
          "input": {},
          "output": {
            "sessionId": "sess_abc",
            "accountId": "acct_demo00000000000000000000",
            "issuedAt": "2026-05-22T12:00:00.000Z",
            "expiresAt": "2026-05-22T12:30:00.000Z",
            "authMethod": "session_cookie",
            "isCurrent": true
          },
          "note": "Read your own session."
        }
      ]
    },
    {
      "id": "account.profile.get",
      "domain": "account",
      "summary": "Get the authenticated account's profile.",
      "description_key": "actions.account.profile.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.profile.get",
      "examples": [
        {
          "input": {},
          "output": {
            "accountId": "acct_demo00000000000000000000",
            "email": "owner@example.com",
            "displayName": "Ada Lovelace",
            "locale": "en",
            "createdAt": "2026-01-01T00:00:00.000Z"
          },
          "note": "Read your profile."
        }
      ]
    },
    {
      "id": "account.profile.update",
      "domain": "account",
      "summary": "Update account profile (display name, avatar URL).",
      "description_key": "actions.account.profile.update.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.profile.update",
      "examples": [
        {
          "input": {
            "displayName": "Ada Lovelace"
          },
          "output": {
            "accountId": "acct_demo00000000000000000000",
            "displayName": "Ada Lovelace"
          },
          "note": "Update display name."
        }
      ]
    },
    {
      "id": "account.email.change",
      "domain": "account",
      "summary": "Request an email change. A verification email is sent to the new address; the change applies only after click-through.",
      "description_key": "actions.account.email.change.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.email.change",
      "examples": [
        {
          "input": {
            "newEmail": "new@example.com"
          },
          "output": {
            "pending": true,
            "verificationSentTo": "new@example.com"
          },
          "note": "Start email change flow."
        }
      ]
    },
    {
      "id": "account.email.change.pending",
      "domain": "account",
      "summary": "The email change currently in flight for this account, if any, and which address still has to confirm it.",
      "description_key": "actions.account.email.change.pending.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.email.change.pending",
      "examples": [
        {
          "input": {},
          "output": {
            "pending": {
              "newEmail": "new@example.com",
              "requestedAt": "2026-08-26T12:00:00.000Z",
              "expiresAt": "2026-08-27T12:00:00.000Z",
              "awaitingOldAddress": true,
              "awaitingNewAddress": false
            }
          },
          "note": "The new address confirmed; the old one has not."
        },
        {
          "input": {},
          "output": {
            "pending": null
          },
          "note": "No change in flight."
        }
      ]
    },
    {
      "id": "account.passkey.list",
      "domain": "account",
      "summary": "List registered passkeys.",
      "description_key": "actions.account.passkey.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.passkey.list",
      "examples": [
        {
          "input": {},
          "output": {
            "passkeys": []
          },
          "note": "List passkeys."
        }
      ]
    },
    {
      "id": "account.passkey.register-challenge",
      "domain": "account",
      "summary": "Begin passkey registration — returns a WebAuthn PublicKeyCredentialCreationOptions challenge.",
      "description_key": "actions.account.passkey.register-challenge.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/account.passkey.register-challenge",
      "examples": [
        {
          "input": {
            "nickname": "YubiKey 5C"
          },
          "output": {
            "challenge": "abc...",
            "rp": {
              "id": "agined.com",
              "name": "Agined"
            },
            "user": {
              "id": "u",
              "name": "owner@example.com",
              "displayName": "Ada"
            },
            "pubKeyCredParams": [
              {
                "type": "public-key",
                "alg": -7
              }
            ]
          },
          "note": "WebAuthn registration challenge."
        }
      ]
    },
    {
      "id": "account.passkey.register-finish",
      "domain": "account",
      "summary": "Complete passkey registration with the WebAuthn attestation response.",
      "description_key": "actions.account.passkey.register-finish.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/account.passkey.register-finish",
      "examples": [
        {
          "input": {
            "nickname": "YubiKey 5C",
            "attestationObject": "...",
            "clientDataJSON": "..."
          },
          "output": {
            "credentialId": "cred_abc",
            "nickname": "YubiKey 5C",
            "createdAt": "2026-05-22T12:00:00.000Z",
            "lastUsedAt": null,
            "backupEligible": false,
            "authenticatorAttachment": "cross-platform"
          },
          "note": "Finish passkey registration."
        }
      ]
    },
    {
      "id": "account.passkey.revoke",
      "domain": "account",
      "summary": "Revoke a registered passkey.",
      "description_key": "actions.account.passkey.revoke.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.passkey.revoke",
      "examples": [
        {
          "input": {
            "credentialId": "cred_abc"
          },
          "output": {
            "revoked": true
          },
          "note": "Remove a passkey."
        }
      ]
    },
    {
      "id": "account.recovery-codes.generate",
      "domain": "account",
      "summary": "Generate a fresh set of 10 single-use recovery codes (existing codes are invalidated).",
      "description_key": "actions.account.recovery-codes.generate.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest"
      ],
      "rest_endpoint": "/api/v1/actions/account.recovery-codes.generate",
      "examples": [
        {
          "input": {},
          "output": {
            "codes": [
              "AAAA-BBBB-CCCC",
              "DDDD-EEEE-FFFF",
              "GGGG-HHHH-IIII",
              "JJJJ-KKKK-LLLL",
              "MMMM-NNNN-OOOO",
              "PPPP-QQQQ-RRRR",
              "SSSS-TTTT-UUUU",
              "VVVV-WWWW-XXXX",
              "YYYY-ZZZZ-AAAA",
              "BBBB-CCCC-DDDD"
            ],
            "generatedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "10 fresh recovery codes."
        }
      ]
    },
    {
      "id": "account.locale.set",
      "domain": "account",
      "summary": "Set the account-level preferred locale (overrides browser default).",
      "description_key": "actions.account.locale.set.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.locale.set",
      "examples": [
        {
          "input": {
            "locale": "de"
          },
          "output": {
            "locale": "de"
          },
          "note": "Switch UI language to German."
        }
      ]
    },
    {
      "id": "account.display-preferences.set",
      "domain": "account",
      "summary": "Set the account-level theme and timezone.",
      "description_key": "actions.account.display-preferences.set.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.display-preferences.set",
      "examples": [
        {
          "input": {
            "theme": "dark"
          },
          "output": {
            "theme": "dark",
            "timezone": null
          },
          "note": "Switch to the dark theme."
        }
      ]
    },
    {
      "id": "account.notifications.get",
      "domain": "account",
      "summary": "Read notification preferences.",
      "description_key": "actions.account.notifications.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.notifications.get",
      "examples": [
        {
          "input": {},
          "output": {
            "marketingEmails": false,
            "securityAlerts": true,
            "billingAlerts": true,
            "productUpdates": false,
            "agentSessionStarted": true,
            "agentSessionAnomaly": true,
            "shadowSessionStarted": true,
            "shadowDailyDigest": false,
            "invitationAlerts": true,
            "quotaWarnings": true,
            "privacyRightsAlerts": true,
            "digestCadence": "weekly"
          },
          "note": "Read prefs."
        }
      ]
    },
    {
      "id": "account.notifications.update",
      "domain": "account",
      "summary": "Update notification preferences.",
      "description_key": "actions.account.notifications.update.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.notifications.update",
      "examples": [
        {
          "input": {
            "agentSessionAnomaly": true
          },
          "output": {
            "marketingEmails": false,
            "securityAlerts": true,
            "billingAlerts": true,
            "productUpdates": false,
            "agentSessionStarted": true,
            "agentSessionAnomaly": true,
            "shadowSessionStarted": true,
            "shadowDailyDigest": false,
            "invitationAlerts": true,
            "quotaWarnings": true,
            "privacyRightsAlerts": true,
            "digestCadence": "weekly"
          },
          "note": "Turn on anomaly alerts."
        }
      ]
    },
    {
      "id": "account.token.list",
      "domain": "account",
      "summary": "List your Personal Access Tokens (PATs).",
      "description_key": "actions.account.token.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.token.list",
      "examples": [
        {
          "input": {
            "includeRevoked": false
          },
          "output": {
            "tokens": []
          },
          "note": "List active PATs."
        }
      ]
    },
    {
      "id": "account.token.issue",
      "domain": "account",
      "summary": "Issue a new Personal Access Token. Cleartext shown ONCE.",
      "description_key": "actions.account.token.issue.description",
      "safety_level": "mutation",
      "confirmation_policy": "mandate",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "key.issued",
      "rate_class": "default",
      "surfaces": [
        "rest"
      ],
      "rest_endpoint": "/api/v1/actions/account.token.issue",
      "examples": [
        {
          "input": {
            "label": "CI pipeline",
            "scopes": [
              "read:workspace",
              "write:tools"
            ],
            "expiresInDays": 90
          },
          "output": {
            "token": {
              "id": "av_pat_a1b2c3d4e5",
              "prefix": "av_pat_abc",
              "label": "CI pipeline",
              "scopes": [
                "read:workspace",
                "write:tools"
              ],
              "createdAt": "2026-05-22T12:00:00.000Z",
              "expiresAt": "2026-08-20T12:00:00.000Z",
              "lastUsedAt": null,
              "revokedAt": null,
              "ipCidrBinding": null,
              "last4": "9f2c"
            },
            "cleartext": "av_pat_abc_REDACTED_EXAMPLE_ONLY"
          },
          "note": "Mint a new PAT; cleartext shown once."
        }
      ]
    },
    {
      "id": "account.token.revoke",
      "domain": "account",
      "summary": "Revoke a PAT (cannot be disabled — safety floor).",
      "description_key": "actions.account.token.revoke.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "key.revoked",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.token.revoke",
      "examples": [
        {
          "input": {
            "tokenId": "av_pat_a1b2c3d4e5"
          },
          "output": {
            "revoked": true,
            "propagatedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Revoke a PAT."
        }
      ]
    },
    {
      "id": "account.oauth-grants.list",
      "domain": "account",
      "summary": "List active OAuth grants to third-party agents (Claude, ChatGPT, Gemini, etc.).",
      "description_key": "actions.account.oauth-grants.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.oauth-grants.list",
      "examples": [
        {
          "input": {},
          "output": {
            "grants": []
          },
          "note": "List active connected apps."
        }
      ]
    },
    {
      "id": "account.oauth-grants.revoke",
      "domain": "account",
      "summary": "Revoke an OAuth grant. The third-party agent's tokens are immediately invalidated.",
      "description_key": "actions.account.oauth-grants.revoke.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "key.revoked",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.oauth-grants.revoke",
      "examples": [
        {
          "input": {
            "clientId": "oauth_CLAUDECOWORK0000000000"
          },
          "output": {
            "revoked": true,
            "propagatedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Kill a connected app session."
        }
      ]
    },
    {
      "id": "account.security-log.list",
      "domain": "account",
      "summary": "Read the account-level security log (logins, MFA, key issuance, anomalies).",
      "description_key": "actions.account.security-log.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.security-log.list",
      "examples": [
        {
          "input": {
            "limit": 25
          },
          "output": {
            "entries": [],
            "nextCursor": null
          },
          "note": "Last 25 security events."
        }
      ]
    },
    {
      "id": "account.delete",
      "domain": "account",
      "summary": "Schedule account deletion after a grace window (30 days by default). Organizations you solely own are scheduled with it; ones with other members are reported back instead. Requires WebAuthn step-up.",
      "description_key": "actions.account.delete.description",
      "safety_level": "destructive",
      "confirmation_policy": "mandate",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/account.delete",
      "examples": [
        {
          "input": {
            "reason": "I no longer use this account; please delete in 30 days",
            "exportFirst": true
          },
          "output": {
            "scheduledDeletionAt": "2026-06-21T00:00:00.000Z",
            "gracePeriodDays": 30,
            "organizationsScheduled": [
              {
                "organizationId": "org_solo",
                "name": "Jake's Workspace"
              }
            ],
            "organizationsBlocked": [
              {
                "organizationId": "org_team",
                "name": "Acme Corp",
                "otherMemberCount": 4
              }
            ]
          },
          "note": "Start account deletion with grace period; the shared org needs an ownership transfer first."
        }
      ]
    },
    {
      "id": "org.get",
      "domain": "org",
      "summary": "Get the current organization's details.",
      "description_key": "actions.org.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.get",
      "examples": [
        {
          "input": {},
          "output": {
            "id": "org_demo00000000000000000000",
            "name": "Demo Org",
            "plan": "pro",
            "createdAt": "2026-01-01T00:00:00.000Z",
            "scheduledDeletionAt": null
          },
          "note": "Read org metadata."
        }
      ]
    },
    {
      "id": "org.update",
      "domain": "org",
      "summary": "Update organization name + locale.",
      "description_key": "actions.org.update.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "organization.rename"
      ],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.update",
      "examples": [
        {
          "input": {
            "name": "New Org Name"
          },
          "output": {
            "id": "org_demo00000000000000000000",
            "name": "New Org Name",
            "plan": "pro",
            "createdAt": "2026-01-01T00:00:00.000Z",
            "scheduledDeletionAt": null
          },
          "note": "Rename the organization."
        }
      ]
    },
    {
      "id": "org.locale.set",
      "domain": "org",
      "summary": "Set the organization-default locale (inherited by new workspaces).",
      "description_key": "actions.org.locale.set.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [
        "organization.rename"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.locale.set",
      "examples": [
        {
          "input": {
            "locale": "de"
          },
          "output": {
            "locale": "de"
          },
          "note": "Org-default locale → German."
        }
      ]
    },
    {
      "id": "org.billing-state.get",
      "domain": "org",
      "summary": "Get the org's current billing state (plan, subscription status, add-ons).",
      "description_key": "actions.org.billing-state.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "billing.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.billing-state.get",
      "examples": [
        {
          "input": {},
          "output": {
            "plan": "pro",
            "subscriptionStatus": "active",
            "multiWorkspaceAddonActive": true,
            "extraWorkspacesCount": 2,
            "currentPeriodEnd": "2026-06-22T00:00:00.000Z"
          },
          "note": "Read billing state."
        }
      ]
    },
    {
      "id": "org.member.list",
      "domain": "org",
      "summary": "List organization members.",
      "description_key": "actions.org.member.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "members.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.member.list",
      "examples": [
        {
          "input": {
            "limit": 25
          },
          "output": {
            "members": [],
            "nextCursor": null
          },
          "note": "List org members."
        }
      ]
    },
    {
      "id": "org.member.invite",
      "domain": "org",
      "summary": "Invite a new member to the organization. Sends a verification email.",
      "description_key": "actions.org.member.invite.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "members.invite"
      ],
      "audit_kind": "member.invited",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.member.invite",
      "examples": [
        {
          "input": {
            "email": "newmember@example.com",
            "role": "member"
          },
          "output": {
            "invitationId": "inv_abc",
            "email": "newmember@example.com",
            "role": "member",
            "invitedBy": "acct_demo00000000000000000000",
            "invitedAt": "2026-05-22T12:00:00.000Z",
            "expiresAt": "2026-05-29T12:00:00.000Z",
            "status": "pending"
          },
          "note": "Invite a new member."
        }
      ]
    },
    {
      "id": "org.member.remove",
      "domain": "org",
      "summary": "Remove a member from the organization. They lose access to all workspaces immediately.",
      "description_key": "actions.org.member.remove.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "members.remove"
      ],
      "audit_kind": "member.removed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.member.remove",
      "examples": [
        {
          "input": {
            "accountId": "acct_demo00000000000000000000"
          },
          "output": {
            "removed": true
          },
          "note": "Remove a member."
        }
      ]
    },
    {
      "id": "org.member.role.change",
      "domain": "org",
      "summary": "Change an org member's role.",
      "description_key": "actions.org.member.role.change.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "members.change_role"
      ],
      "audit_kind": "member.role_changed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.member.role.change",
      "examples": [
        {
          "input": {
            "accountId": "acct_demo00000000000000000000",
            "role": "admin"
          },
          "output": {
            "accountId": "acct_demo00000000000000000000",
            "email": "member@example.com",
            "role": "admin",
            "joinedAt": "2026-01-01T00:00:00.000Z"
          },
          "note": "Promote to admin."
        }
      ]
    },
    {
      "id": "org.invitations.list",
      "domain": "org",
      "summary": "List pending/expired invitations.",
      "description_key": "actions.org.invitations.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "members.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.invitations.list",
      "examples": [
        {
          "input": {
            "status": "pending"
          },
          "output": {
            "invitations": []
          },
          "note": "List pending invites."
        }
      ]
    },
    {
      "id": "org.invitations.resend",
      "domain": "org",
      "summary": "Resend a pending invitation (subject to 5-minute cooldown).",
      "description_key": "actions.org.invitations.resend.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "members.invite"
      ],
      "audit_kind": "member.invited",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.invitations.resend",
      "examples": [
        {
          "input": {
            "invitationId": "inv_abc"
          },
          "output": {
            "resent": true,
            "nextResendAvailableAt": "2026-05-22T12:05:00.000Z"
          },
          "note": "Resend invite."
        }
      ]
    },
    {
      "id": "org.invitations.revoke",
      "domain": "org",
      "summary": "Revoke a pending invitation.",
      "description_key": "actions.org.invitations.revoke.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [
        "members.invite"
      ],
      "audit_kind": "member.removed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.invitations.revoke",
      "examples": [
        {
          "input": {
            "invitationId": "inv_abc"
          },
          "output": {
            "revoked": true
          },
          "note": "Cancel pending invite."
        }
      ]
    },
    {
      "id": "org.transfer-ownership",
      "domain": "org",
      "summary": "Transfer org ownership to another admin. Requires WebAuthn step-up + reason.",
      "description_key": "actions.org.transfer-ownership.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "organization.transfer_ownership"
      ],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.transfer-ownership",
      "examples": [
        {
          "input": {
            "newOwnerAccountId": "acct_demo00000000000000000000",
            "reason": "Stepping down from CEO role; handing over to incoming lead"
          },
          "output": {
            "id": "org_demo00000000000000000000",
            "name": "Demo Org",
            "plan": "pro",
            "createdAt": "2026-01-01T00:00:00.000Z",
            "scheduledDeletionAt": null
          },
          "note": "Hand off org ownership."
        }
      ]
    },
    {
      "id": "org.delete.schedule",
      "domain": "org",
      "summary": "Schedule organization deletion in 30 days. Cancellable within the grace window.",
      "description_key": "actions.org.delete.schedule.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "organization.delete"
      ],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.delete.schedule",
      "examples": [
        {
          "input": {
            "reason": "Winding down the company; please delete after 30 days of grace"
          },
          "output": {
            "scheduledDeletionAt": "2026-06-21T00:00:00.000Z"
          },
          "note": "Schedule org deletion."
        }
      ]
    },
    {
      "id": "org.delete.cancel",
      "domain": "org",
      "summary": "Cancel a previously-scheduled org deletion (within grace).",
      "description_key": "actions.org.delete.cancel.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [
        "organization.delete"
      ],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.delete.cancel",
      "examples": [
        {
          "input": {},
          "output": {
            "id": "org_demo00000000000000000000",
            "name": "Demo Org",
            "plan": "pro",
            "createdAt": "2026-01-01T00:00:00.000Z",
            "scheduledDeletionAt": null
          },
          "note": "Cancel scheduled deletion."
        }
      ]
    },
    {
      "id": "org.audit.list",
      "domain": "org",
      "summary": "Read org-level audit log entries (admin actions, member changes, billing).",
      "description_key": "actions.org.audit.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.audit.list",
      "examples": [
        {
          "input": {
            "limit": 25
          },
          "output": {
            "entries": [],
            "nextCursor": null
          },
          "note": "Read org audit log."
        }
      ]
    },
    {
      "id": "org.sso.connections.list",
      "domain": "org",
      "summary": "List the organization's SSO connections (SAML/OIDC), with sealed secrets redacted to booleans.",
      "description_key": "actions.org.sso.connections.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.configure_sso"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.sso.connections.list",
      "examples": [
        {
          "input": {},
          "output": {
            "connections": []
          },
          "note": "List SSO connections."
        }
      ]
    },
    {
      "id": "org.sso.connections.upsert",
      "domain": "org",
      "summary": "Create or update a SAML/OIDC SSO connection. A provided OIDC client secret is sealed; SAML certificates are validated.",
      "description_key": "actions.org.sso.connections.upsert.description",
      "safety_level": "mutation",
      "confirmation_policy": "mandate",
      "idempotent": false,
      "permissions": [
        "settings.configure_sso"
      ],
      "audit_kind": "org.sso_config_changed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.sso.connections.upsert",
      "examples": [
        {
          "input": {
            "type": "oidc",
            "displayName": "Okta",
            "oidcIssuer": "https://acme.okta.com",
            "oidcClientId": "0oa1"
          },
          "output": {
            "connection": null
          },
          "note": "Create an OIDC connection."
        }
      ]
    },
    {
      "id": "org.sso.connections.delete",
      "domain": "org",
      "summary": "Delete an SSO connection by id (org-scoped).",
      "description_key": "actions.org.sso.connections.delete.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "settings.configure_sso"
      ],
      "audit_kind": "org.sso_config_changed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.sso.connections.delete",
      "examples": [
        {
          "input": {
            "id": "ssoc_abc"
          },
          "output": {
            "deleted": true
          },
          "note": "Delete a connection."
        }
      ]
    },
    {
      "id": "org.sso.domains.list",
      "domain": "org",
      "summary": "List the organization's captured SSO domains (verified state + the DNS TXT record to publish).",
      "description_key": "actions.org.sso.domains.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.configure_sso"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.sso.domains.list",
      "examples": [
        {
          "input": {},
          "output": {
            "domains": []
          },
          "note": "List SSO domains."
        }
      ]
    },
    {
      "id": "org.sso.domains.create",
      "domain": "org",
      "summary": "Claim an email domain for SSO and mint its DNS TXT verification challenge.",
      "description_key": "actions.org.sso.domains.create.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "settings.configure_sso"
      ],
      "audit_kind": "org.sso_config_changed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.sso.domains.create",
      "examples": [
        {
          "input": {
            "domain": "acme.com"
          },
          "output": {
            "domain": null
          },
          "note": "Claim acme.com."
        }
      ]
    },
    {
      "id": "org.sso.domains.verify",
      "domain": "org",
      "summary": "Verify a claimed domain via a DNS-over-HTTPS TXT lookup (proof of control).",
      "description_key": "actions.org.sso.domains.verify.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [
        "settings.configure_sso"
      ],
      "audit_kind": "org.sso_config_changed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.sso.domains.verify",
      "examples": [
        {
          "input": {
            "id": "ssod_abc"
          },
          "output": {
            "verified": true
          },
          "note": "Verify domain control."
        }
      ]
    },
    {
      "id": "org.sso.domains.enforcement",
      "domain": "org",
      "summary": "Toggle SSO enforcement for a verified domain (requires a verified domain + an active connection).",
      "description_key": "actions.org.sso.domains.enforcement.description",
      "safety_level": "mutation",
      "confirmation_policy": "mandate",
      "idempotent": false,
      "permissions": [
        "settings.configure_sso"
      ],
      "audit_kind": "org.sso_config_changed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.sso.domains.enforcement",
      "examples": [
        {
          "input": {
            "id": "ssod_abc",
            "enforceSso": true
          },
          "output": {
            "domain": null
          },
          "note": "Require SSO for the domain."
        }
      ]
    },
    {
      "id": "org.sso.domains.delete",
      "domain": "org",
      "summary": "Remove a captured SSO domain (org-scoped).",
      "description_key": "actions.org.sso.domains.delete.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "settings.configure_sso"
      ],
      "audit_kind": "org.sso_config_changed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.sso.domains.delete",
      "examples": [
        {
          "input": {
            "id": "ssod_abc"
          },
          "output": {
            "deleted": true
          },
          "note": "Delete a domain."
        }
      ]
    },
    {
      "id": "org.sso.scim-tokens.list",
      "domain": "org",
      "summary": "List a connection's SCIM bearer tokens (hash-only; the raw token is never returned).",
      "description_key": "actions.org.sso.scim-tokens.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.configure_sso"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.sso.scim-tokens.list",
      "examples": [
        {
          "input": {},
          "output": {
            "tokens": []
          },
          "note": "List SCIM tokens."
        }
      ]
    },
    {
      "id": "org.sso.scim-tokens.mint",
      "domain": "org",
      "summary": "Mint a SCIM 2.0 bearer token for a connection. The RAW token is returned exactly once; only its hash is stored.",
      "description_key": "actions.org.sso.scim-tokens.mint.description",
      "safety_level": "mutation",
      "confirmation_policy": "mandate",
      "idempotent": false,
      "permissions": [
        "settings.configure_sso"
      ],
      "audit_kind": "org.sso_config_changed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.sso.scim-tokens.mint",
      "examples": [
        {
          "input": {
            "connectionId": "ssoc_abc"
          },
          "output": {
            "id": "scimt_1",
            "connectionId": "ssoc_abc",
            "token": "scim_…",
            "scimBaseUrl": "https://auth.agined.com/scim/v2",
            "createdAt": "2026-07-21T00:00:00.000Z"
          },
          "note": "Mint a SCIM token (shown once)."
        }
      ]
    },
    {
      "id": "org.sso.scim-tokens.revoke",
      "domain": "org",
      "summary": "Revoke a SCIM bearer token by id.",
      "description_key": "actions.org.sso.scim-tokens.revoke.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "settings.configure_sso"
      ],
      "audit_kind": "org.sso_config_changed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/org.sso.scim-tokens.revoke",
      "examples": [
        {
          "input": {
            "id": "scimt_1"
          },
          "output": {
            "revoked": true
          },
          "note": "Revoke a SCIM token."
        }
      ]
    },
    {
      "id": "workspace.list",
      "domain": "workspace",
      "summary": "List all workspaces in the current organization.",
      "description_key": "actions.workspace.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "workspaces.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.list",
      "examples": [
        {
          "input": {
            "limit": 10
          },
          "output": {
            "workspaces": [],
            "nextCursor": null
          },
          "note": "List up to 10 workspaces in the active organization."
        }
      ]
    },
    {
      "id": "workspace.get",
      "domain": "workspace",
      "summary": "Get the full state of a single workspace by id.",
      "description_key": "actions.workspace.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "workspaces.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "id": "ws_demo_default",
            "name": "Default workspace",
            "organizationId": "org_demo00000000000000000000",
            "jurisdiction": "ENAM"
          },
          "note": "Read the active workspace's full state."
        }
      ]
    },
    {
      "id": "workspace.create",
      "domain": "workspace",
      "summary": "Create a new workspace in the current organization.",
      "description_key": "actions.workspace.create.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "workspaces.create"
      ],
      "audit_kind": "workspace.created",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.create",
      "examples": [
        {
          "input": {
            "name": "EU production",
            "regionId": "cloudflare-d1:weur",
            "euJurisdictionBound": true
          },
          "output": {
            "id": "ws_new0000000000",
            "name": "EU production",
            "organizationId": "org_demo",
            "jurisdiction": "WEUR"
          },
          "note": "Create an EU-bound workspace in Western Europe."
        }
      ]
    },
    {
      "id": "workspace.update",
      "domain": "workspace",
      "summary": "Update workspace settings (name, retention, locale, Tools controls).",
      "description_key": "actions.workspace.update.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "settings.view",
        "workspace.rename"
      ],
      "audit_kind": "workspace.renamed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.update",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "toolsAutoOverageEnabled": true,
            "toolsAutoOverageCapMultiplier": 3
          },
          "output": {
            "id": "ws_demo_default",
            "name": "Default",
            "organizationId": "org_demo",
            "jurisdiction": "WEUR"
          },
          "note": "Enable Tools auto-overage with a 3× cap."
        }
      ]
    },
    {
      "id": "workspace.rename",
      "domain": "workspace",
      "summary": "Rename a workspace (convenience alias of workspace.update).",
      "description_key": "actions.workspace.rename.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "settings.view",
        "workspace.rename"
      ],
      "audit_kind": "workspace.renamed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.rename",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "name": "EU production v2"
          },
          "output": {
            "id": "ws_demo_default",
            "name": "EU production v2",
            "organizationId": "org_demo",
            "jurisdiction": "WEUR"
          },
          "note": "Rename a workspace."
        }
      ]
    },
    {
      "id": "workspace.delete.schedule",
      "domain": "workspace",
      "summary": "Schedule a workspace for deletion in 30 days (grace period).",
      "description_key": "actions.workspace.delete.schedule.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "workspaces.delete",
        "workspace.schedule_deletion"
      ],
      "audit_kind": "workspace.scheduled_deletion",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.delete.schedule",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "reason": "Migrated to new workspace; cleanup in progress"
          },
          "output": {
            "workspaceId": "ws_demo_default",
            "scheduledDeletionAt": "2026-06-21T00:00:00.000Z"
          },
          "note": "Schedule deletion with a 30-day grace."
        }
      ]
    },
    {
      "id": "workspace.delete.cancel",
      "domain": "workspace",
      "summary": "Cancel a previously-scheduled workspace deletion (within grace).",
      "description_key": "actions.workspace.delete.cancel.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [
        "workspaces.delete",
        "workspace.schedule_deletion"
      ],
      "audit_kind": "workspace.deletion_canceled",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.delete.cancel",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "id": "ws_demo_default",
            "name": "Default",
            "organizationId": "org_demo",
            "jurisdiction": "WEUR"
          },
          "note": "Cancel deletion within the grace window."
        }
      ]
    },
    {
      "id": "workspace.region.binding-proof",
      "domain": "workspace",
      "summary": "Download the OpenTimestamps proof of the workspace's region binding.",
      "description_key": "actions.workspace.region.binding-proof.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "workspaces.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.region.binding-proof",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "otsProof": "base64-encoded-ots-proof-string-here-at-least-20-chars",
            "anchoredAt": "2026-05-22T12:00:00.000Z",
            "blockHeight": 854321
          },
          "note": "Pull the region-binding OTS proof for offline verification."
        }
      ]
    },
    {
      "id": "workspace.member.list",
      "domain": "workspace",
      "summary": "List members of a workspace with their roles.",
      "description_key": "actions.workspace.member.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "workspaces.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.member.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "members": [
              {
                "accountId": "acct_001demo000000000000000000",
                "role": "owner"
              }
            ]
          },
          "note": "List workspace members."
        }
      ]
    },
    {
      "id": "workspace.member.add",
      "domain": "workspace",
      "summary": "Add an organization member to a workspace with a specific role.",
      "description_key": "actions.workspace.member.add.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "members.invite"
      ],
      "audit_kind": "member.joined",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.member.add",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "accountId": "acct_002demo000000000000000000",
            "role": "member"
          },
          "output": {
            "accountId": "acct_002demo000000000000000000",
            "role": "member"
          },
          "note": "Add a member."
        }
      ]
    },
    {
      "id": "workspace.member.role.change",
      "domain": "workspace",
      "summary": "Change a workspace member's role.",
      "description_key": "actions.workspace.member.role.change.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "members.change_role"
      ],
      "audit_kind": "member.role_changed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.member.role.change",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "accountId": "acct_002demo000000000000000000",
            "role": "admin"
          },
          "output": {
            "accountId": "acct_002demo000000000000000000",
            "role": "admin"
          },
          "note": "Promote a member to admin."
        }
      ]
    },
    {
      "id": "workspace.member.remove",
      "domain": "workspace",
      "summary": "Remove a member from a workspace.",
      "description_key": "actions.workspace.member.remove.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "members.remove"
      ],
      "audit_kind": "member.removed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.member.remove",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "accountId": "acct_002demo000000000000000000"
          },
          "output": {
            "removed": true
          },
          "note": "Remove a workspace member."
        }
      ]
    },
    {
      "id": "workspace.transfer-ownership",
      "domain": "workspace",
      "summary": "Transfer workspace ownership to another admin.",
      "description_key": "actions.workspace.transfer-ownership.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "workspaces.transfer"
      ],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.transfer-ownership",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "newOwnerAccountId": "acct_002demo000000000000000000",
            "reason": "Handing over to new compliance lead per Q3 reorg"
          },
          "output": {
            "id": "ws_demo_default",
            "name": "Default",
            "organizationId": "org_demo",
            "jurisdiction": "WEUR"
          },
          "note": "Transfer ownership — destructive, requires confirmation."
        }
      ]
    },
    {
      "id": "workspace.attestor.enable",
      "domain": "workspace",
      "summary": "Enable Attestor on a workspace (requires an org-level Attestor subscription).",
      "description_key": "actions.workspace.attestor.enable.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "settings.view",
        "workspace.rename"
      ],
      "audit_kind": "workspace.renamed",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.attestor.enable",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "id": "ws_demo_default",
            "name": "Default",
            "organizationId": "org_demo",
            "jurisdiction": "WEUR"
          },
          "note": "Enable Attestor on a workspace."
        }
      ]
    },
    {
      "id": "workspace.attestor.disable",
      "domain": "workspace",
      "summary": "Disable Attestor on a workspace.",
      "description_key": "actions.workspace.attestor.disable.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "settings.view",
        "workspace.rename"
      ],
      "audit_kind": "workspace.renamed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.attestor.disable",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "id": "ws_demo_default",
            "name": "Default",
            "organizationId": "org_demo",
            "jurisdiction": "WEUR"
          },
          "note": "Turn off Attestor on this workspace."
        }
      ]
    },
    {
      "id": "workspace.regions.list",
      "domain": "workspace",
      "summary": "List the available regions a workspace can be created in.",
      "description_key": "actions.workspace.regions.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/workspace.regions.list",
      "examples": [
        {
          "input": {},
          "output": {
            "regions": [
              {
                "id": "cloudflare-d1:weur",
                "label": "Western Europe",
                "countryCode": "DE",
                "euJurisdictionBound": true
              }
            ]
          },
          "note": "List all 21 supported regions for region picker UIs."
        }
      ]
    },
    {
      "id": "billing.subscription.get",
      "domain": "billing",
      "summary": "Get the org's current subscription.",
      "description_key": "actions.billing.subscription.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "billing.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.subscription.get",
      "examples": [
        {
          "input": {},
          "output": {
            "subscriptionId": "sub_abc",
            "organizationId": "org_demo00000000000000000000",
            "plan": "pro",
            "status": "active",
            "currentPeriodStart": "2026-05-01T00:00:00.000Z",
            "currentPeriodEnd": "2026-06-01T00:00:00.000Z",
            "cancelAtPeriodEnd": false
          },
          "note": "Read subscription."
        }
      ]
    },
    {
      "id": "billing.subscription.upgrade",
      "domain": "billing",
      "summary": "Upgrade to a higher tier. Prorates charges; takes effect immediately.",
      "description_key": "actions.billing.subscription.upgrade.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.change_plan"
      ],
      "audit_kind": "plan.changed",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.subscription.upgrade",
      "examples": [
        {
          "input": {
            "targetPlan": "team"
          },
          "output": {
            "subscriptionId": "sub_abc",
            "organizationId": "org_demo00000000000000000000",
            "plan": "team",
            "status": "active",
            "currentPeriodStart": "2026-05-22T12:00:00.000Z",
            "currentPeriodEnd": "2026-06-22T12:00:00.000Z",
            "cancelAtPeriodEnd": false
          },
          "note": "Upgrade to Team."
        }
      ]
    },
    {
      "id": "billing.subscription.downgrade",
      "domain": "billing",
      "summary": "Downgrade to a lower tier. Effective at next billing period.",
      "description_key": "actions.billing.subscription.downgrade.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.change_plan"
      ],
      "audit_kind": "plan.changed",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.subscription.downgrade",
      "examples": [
        {
          "input": {
            "targetPlan": "starter",
            "reason": "Reducing usage; no longer need Pro"
          },
          "output": {
            "subscriptionId": "sub_abc",
            "organizationId": "org_demo00000000000000000000",
            "plan": "pro",
            "status": "active",
            "currentPeriodStart": "2026-05-01T00:00:00.000Z",
            "currentPeriodEnd": "2026-06-01T00:00:00.000Z",
            "cancelAtPeriodEnd": false
          },
          "note": "Downgrade scheduled for period end."
        }
      ]
    },
    {
      "id": "billing.subscription.cancel",
      "domain": "billing",
      "summary": "Cancel subscription at current period end. Workspace remains accessible until then.",
      "description_key": "actions.billing.subscription.cancel.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.change_plan"
      ],
      "audit_kind": "plan.changed",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.subscription.cancel",
      "examples": [
        {
          "input": {
            "reason": "Migrating to alternative provider; export complete"
          },
          "output": {
            "subscriptionId": "sub_abc",
            "organizationId": "org_demo00000000000000000000",
            "plan": "pro",
            "status": "active",
            "currentPeriodStart": "2026-05-01T00:00:00.000Z",
            "currentPeriodEnd": "2026-06-01T00:00:00.000Z",
            "cancelAtPeriodEnd": true
          },
          "note": "Cancel at period end."
        }
      ]
    },
    {
      "id": "billing.subscription.reactivate",
      "domain": "billing",
      "summary": "Reactivate a subscription that's been scheduled to cancel.",
      "description_key": "actions.billing.subscription.reactivate.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "billing.change_plan"
      ],
      "audit_kind": "plan.changed",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.subscription.reactivate",
      "examples": [
        {
          "input": {},
          "output": {
            "subscriptionId": "sub_abc",
            "organizationId": "org_demo00000000000000000000",
            "plan": "pro",
            "status": "active",
            "currentPeriodStart": "2026-05-01T00:00:00.000Z",
            "currentPeriodEnd": "2026-06-01T00:00:00.000Z",
            "cancelAtPeriodEnd": false
          },
          "note": "Reactivate."
        }
      ]
    },
    {
      "id": "billing.invoices.list",
      "domain": "billing",
      "summary": "List invoices.",
      "description_key": "actions.billing.invoices.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "billing.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.invoices.list",
      "examples": [
        {
          "input": {},
          "output": {
            "invoices": [],
            "nextCursor": null
          },
          "note": "List invoices."
        }
      ]
    },
    {
      "id": "billing.invoices.get",
      "domain": "billing",
      "summary": "Get a single invoice.",
      "description_key": "actions.billing.invoices.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "billing.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.invoices.get",
      "examples": [
        {
          "input": {
            "invoiceId": "in_abc"
          },
          "output": {
            "id": "in_abc",
            "organizationId": "org_demo00000000000000000000",
            "amount": 4900,
            "currency": "USD",
            "status": "paid",
            "issuedAt": "2026-05-01T00:00:00.000Z",
            "dueAt": null,
            "paidAt": "2026-05-01T00:00:00.000Z"
          },
          "note": "Read invoice."
        }
      ]
    },
    {
      "id": "billing.invoices.download",
      "domain": "billing",
      "summary": "Get a signed download URL for the invoice PDF.",
      "description_key": "actions.billing.invoices.download.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "billing.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.invoices.download",
      "examples": [
        {
          "input": {
            "invoiceId": "in_abc"
          },
          "output": {
            "url": "https://billing.example.com/invoices/abc.pdf",
            "expiresAt": "2026-05-22T13:00:00.000Z"
          },
          "note": "Download invoice PDF."
        }
      ]
    },
    {
      "id": "billing.payment-method.get",
      "domain": "billing",
      "summary": "Get the current default payment method (masked).",
      "description_key": "actions.billing.payment-method.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "billing.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.payment-method.get",
      "examples": [
        {
          "input": {},
          "output": {
            "brand": "Visa",
            "last4": "4242",
            "expMonth": 12,
            "expYear": 2027
          },
          "note": "Read masked payment method."
        }
      ]
    },
    {
      "id": "billing.payment-method.update-url",
      "domain": "billing",
      "summary": "Get a signed URL to the hosted payment-method update page. The update happens there, not in Agined.",
      "description_key": "actions.billing.payment-method.update-url.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "billing.change_plan"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.payment-method.update-url",
      "examples": [
        {
          "input": {},
          "output": {
            "url": "https://billing.example.com/p/session/abc",
            "expiresAt": "2026-05-22T13:00:00.000Z"
          },
          "note": "Get the billing portal URL."
        }
      ]
    },
    {
      "id": "billing.packs.list",
      "domain": "billing",
      "summary": "List available top-up packs (runs, Number One queries, Tools calls).",
      "description_key": "actions.billing.packs.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.packs.list",
      "examples": [
        {
          "input": {},
          "output": {
            "packs": [
              {
                "packId": "runs_1k",
                "kind": "runs",
                "unitCount": 1000,
                "priceUsdMinor": 2900
              }
            ]
          },
          "note": "Discover packs."
        }
      ]
    },
    {
      "id": "billing.packs.purchase",
      "domain": "billing",
      "summary": "Purchase a top-up pack.",
      "description_key": "actions.billing.packs.purchase.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.buy_pack"
      ],
      "audit_kind": "pack.purchased",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.packs.purchase",
      "examples": [
        {
          "input": {
            "packId": "runs_1k",
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "checkoutUrl": "https://billing.example.com/c/pay/cs_test_REDACTED",
            "sessionId": "cs_test_REDACTED"
          },
          "note": "Buy a 1k-run pack — complete payment at checkoutUrl; the credit lands via webhook."
        }
      ]
    },
    {
      "id": "billing.auto-topup.get",
      "domain": "billing",
      "summary": "Get auto-topup configuration.",
      "description_key": "actions.billing.auto-topup.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "billing.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.auto-topup.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "enabled": false,
            "packId": null,
            "triggerAtPercent": null,
            "monthlyCapUsdMinor": null
          },
          "note": "Read auto-topup config."
        }
      ]
    },
    {
      "id": "billing.auto-topup.configure",
      "domain": "billing",
      "summary": "Configure auto-topup. Fires when balance drops below threshold; capped at monthly USD limit.",
      "description_key": "actions.billing.auto-topup.configure.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.configure_autotopup"
      ],
      "audit_kind": "auto_topup.configured",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.auto-topup.configure",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "enabled": true,
            "packId": "runs_1k",
            "triggerAtPercent": 80,
            "monthlyCapUsdMinor": 10000
          },
          "output": {
            "enabled": true,
            "packId": "runs_1k",
            "triggerAtPercent": 80,
            "monthlyCapUsdMinor": 10000
          },
          "note": "Enable auto-topup."
        }
      ]
    },
    {
      "id": "billing.cost-centers.list",
      "domain": "billing",
      "summary": "List org cost centers (for tagging charges + per-cost-center invoicing).",
      "description_key": "actions.billing.cost-centers.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "billing.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.cost-centers.list",
      "examples": [
        {
          "input": {},
          "output": {
            "costCenters": []
          },
          "note": "List cost centers."
        }
      ]
    },
    {
      "id": "billing.cost-centers.create",
      "domain": "billing",
      "summary": "Create a cost center.",
      "description_key": "actions.billing.cost-centers.create.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "billing.change_plan"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.cost-centers.create",
      "examples": [
        {
          "input": {
            "name": "Engineering",
            "description": "All engineering teams"
          },
          "output": {
            "id": "cc_DEMO00000000000000000000",
            "organizationId": "org_demo00000000000000000000",
            "name": "Engineering",
            "taggableProducts": [
              "tools"
            ],
            "monthlyCapUsdMinor": null,
            "notificationThresholdPercents": [
              50,
              80,
              100
            ],
            "createdAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Create cost center."
        }
      ]
    },
    {
      "id": "billing.cost-centers.update",
      "domain": "billing",
      "summary": "Update a cost center.",
      "description_key": "actions.billing.cost-centers.update.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "billing.change_plan"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.cost-centers.update",
      "examples": [
        {
          "input": {
            "costCenterId": "cc_DEMO00000000000000000000",
            "monthlyCapUsdMinor": 50000
          },
          "output": {
            "id": "cc_DEMO00000000000000000000",
            "organizationId": "org_demo00000000000000000000",
            "name": "Engineering",
            "taggableProducts": [
              "tools"
            ],
            "monthlyCapUsdMinor": 50000,
            "notificationThresholdPercents": [
              50,
              80,
              100
            ],
            "createdAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Set monthly cap."
        }
      ]
    },
    {
      "id": "billing.cost-centers.delete",
      "domain": "billing",
      "summary": "Delete a cost center. Tagged charges keep historical tag.",
      "description_key": "actions.billing.cost-centers.delete.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "billing.change_plan"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.cost-centers.delete",
      "examples": [
        {
          "input": {
            "costCenterId": "cc_DEMO00000000000000000000"
          },
          "output": {
            "deleted": true
          },
          "note": "Delete."
        }
      ]
    },
    {
      "id": "billing.notarian.subscribe",
      "domain": "billing",
      "summary": "Subscribe to the Notarian add-on (per-tier subscription pricing).",
      "description_key": "actions.billing.notarian.subscribe.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.subscribe_addons"
      ],
      "audit_kind": "notarian.subscribed",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.notarian.subscribe",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "subscribed": true
          },
          "note": "Subscribe to Notarian."
        }
      ]
    },
    {
      "id": "billing.notarian.unsubscribe",
      "domain": "billing",
      "summary": "Unsubscribe from Notarian at next billing period.",
      "description_key": "actions.billing.notarian.unsubscribe.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.subscribe_addons"
      ],
      "audit_kind": "notarian.canceled",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.notarian.unsubscribe",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "unsubscribed": true,
            "effectiveAt": "2026-06-22T00:00:00.000Z"
          },
          "note": "Unsubscribe Notarian."
        }
      ]
    },
    {
      "id": "billing.retention-extension.unsubscribe",
      "domain": "billing",
      "summary": "Cancel the paid retention extension. Coverage continues until the paid-through date.",
      "description_key": "actions.billing.retention-extension.unsubscribe.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.subscribe_addons"
      ],
      "audit_kind": "retention.updated",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.retention-extension.unsubscribe",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "unsubscribed": true,
            "effectiveAt": "2026-09-22T00:00:00.000Z"
          },
          "note": "Cancel the retention extension; coverage runs to the paid-through date."
        }
      ]
    },
    {
      "id": "billing.multi-workspace.subscribe",
      "domain": "billing",
      "summary": "Subscribe the organization to the multi-workspace add-on, allowing more than one workspace.",
      "description_key": "actions.billing.multi-workspace.subscribe.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.subscribe_addons"
      ],
      "audit_kind": null,
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.multi-workspace.subscribe",
      "examples": [
        {
          "input": {},
          "output": {
            "subscribed": true
          },
          "note": "Buy the multi-workspace add-on."
        }
      ]
    },
    {
      "id": "billing.multi-workspace.unsubscribe",
      "domain": "billing",
      "summary": "Cancel the multi-workspace add-on at the end of the current period.",
      "description_key": "actions.billing.multi-workspace.unsubscribe.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.subscribe_addons"
      ],
      "audit_kind": null,
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.multi-workspace.unsubscribe",
      "examples": [
        {
          "input": {},
          "output": {
            "unsubscribed": true,
            "effectiveAt": "2026-09-22T00:00:00.000Z"
          },
          "note": "Cancel the multi-workspace add-on."
        }
      ]
    },
    {
      "id": "billing.infinite-memory.subscribe",
      "domain": "billing",
      "summary": "Subscribe to the Infinite Memory add-on for Number One ($19/mo on paid tiers).",
      "description_key": "actions.billing.infinite-memory.subscribe.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.subscribe_addons"
      ],
      "audit_kind": null,
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.infinite-memory.subscribe",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "subscribed": true
          },
          "note": "Subscribe Infinite Memory."
        }
      ]
    },
    {
      "id": "billing.infinite-memory.unsubscribe",
      "domain": "billing",
      "summary": "Unsubscribe Infinite Memory at next billing period.",
      "description_key": "actions.billing.infinite-memory.unsubscribe.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.subscribe_addons"
      ],
      "audit_kind": null,
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.infinite-memory.unsubscribe",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "unsubscribed": true,
            "effectiveAt": "2026-06-22T00:00:00.000Z"
          },
          "note": "Unsubscribe Infinite Memory."
        }
      ]
    },
    {
      "id": "billing.retention-extension.subscribe",
      "domain": "billing",
      "summary": "Subscribe to the universal paid retention extension. Convenience alias of retention.extension.subscribe.",
      "description_key": "actions.billing.retention-extension.subscribe.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.subscribe_addons"
      ],
      "audit_kind": "retention.updated",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.retention-extension.subscribe",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "extendedToDays": 1095
          },
          "output": {
            "subscribed": true,
            "perGbCostUsdMinor": 1000
          },
          "note": "Subscribe to 3-year retention extension."
        }
      ]
    },
    {
      "id": "billing.attestor.tier.set",
      "domain": "billing",
      "summary": "Set the Attestor subscription tier for the org.",
      "description_key": "actions.billing.attestor.tier.set.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.change_plan"
      ],
      "audit_kind": "plan.changed",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.attestor.tier.set",
      "examples": [
        {
          "input": {
            "tier": "scale"
          },
          "output": {
            "subscriptionId": "sub_atst_abc",
            "organizationId": "org_demo00000000000000000000",
            "plan": "scale",
            "status": "active",
            "currentPeriodStart": "2026-05-22T12:00:00.000Z",
            "currentPeriodEnd": "2026-06-22T12:00:00.000Z",
            "cancelAtPeriodEnd": false
          },
          "note": "Set Attestor tier."
        }
      ]
    },
    {
      "id": "billing.attestor.tier.get",
      "domain": "billing",
      "summary": "Get the current Attestor tier.",
      "description_key": "actions.billing.attestor.tier.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "billing.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.attestor.tier.get",
      "examples": [
        {
          "input": {},
          "output": {
            "tier": "team",
            "monthlyCalls": 100000,
            "retentionDays": 365
          },
          "note": "Read Attestor tier."
        }
      ]
    },
    {
      "id": "billing.attestor.top-up.purchase",
      "domain": "billing",
      "summary": "Purchase an Attestor top-up pack (extra call quota for the current month).",
      "description_key": "actions.billing.attestor.top-up.purchase.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.buy_pack"
      ],
      "audit_kind": "pack.purchased",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.attestor.top-up.purchase",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "packId": "attestor_100k"
          },
          "output": {
            "topUpId": "tu_atst_abc",
            "workspaceId": "ws_demo_default",
            "packKind": "attestor-calls",
            "unitCount": 100000,
            "priceUsdMinor": 1900,
            "purchasedAt": "2026-05-22T12:00:00.000Z",
            "unitsRemaining": 100000,
            "forfeitedAt": null
          },
          "note": "Buy 100k Attestor calls."
        }
      ]
    },
    {
      "id": "billing.attestor.auto-overage.set",
      "domain": "billing",
      "summary": "Configure auto-overage for an Attestor-enabled workspace.",
      "description_key": "actions.billing.attestor.auto-overage.set.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.configure_autotopup"
      ],
      "audit_kind": "auto_topup.configured",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.attestor.auto-overage.set",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "enabled": true,
            "capMultiplier": 3
          },
          "output": {
            "enabled": true,
            "capMultiplier": 3
          },
          "note": "Enable auto-overage at 3× cap."
        }
      ]
    },
    {
      "id": "billing.attestor.billing-mode.set",
      "domain": "billing",
      "summary": "Set the Attestor billing mode (combined vs separate subscription).",
      "description_key": "actions.billing.attestor.billing-mode.set.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [
        "billing.change_plan"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.attestor.billing-mode.set",
      "examples": [
        {
          "input": {
            "mode": "separate"
          },
          "output": {
            "mode": "separate"
          },
          "note": "Separate subscriptions for Agined + Attestor."
        }
      ]
    },
    {
      "id": "billing.attestor.usage.current",
      "domain": "billing",
      "summary": "Get current Attestor usage for the org (calls used + remaining quota + auto-overage status).",
      "description_key": "actions.billing.attestor.usage.current.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "billing.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.attestor.usage.current",
      "examples": [
        {
          "input": {},
          "output": {
            "callsUsed": 45000,
            "monthlyAllowance": 100000,
            "remaining": 55000,
            "autoOverageActive": false,
            "periodEnd": "2026-06-01T00:00:00.000Z"
          },
          "note": "Read current Attestor usage."
        }
      ]
    },
    {
      "id": "billing.ledger-bundles.subscribe",
      "domain": "billing",
      "summary": "Subscribe to the LedgerBundles add-on (per-tier subscription pricing).",
      "description_key": "actions.billing.ledger-bundles.subscribe.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.subscribe_addons"
      ],
      "audit_kind": "ledger-bundles.subscribed",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.ledger-bundles.subscribe",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "subscribed": true
          },
          "note": "Subscribe to LedgerBundles."
        }
      ]
    },
    {
      "id": "billing.ledger-bundles.unsubscribe",
      "domain": "billing",
      "summary": "Unsubscribe from LedgerBundles at next billing period.",
      "description_key": "actions.billing.ledger-bundles.unsubscribe.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.subscribe_addons"
      ],
      "audit_kind": "ledger-bundles.canceled",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/billing.ledger-bundles.unsubscribe",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "unsubscribed": true,
            "effectiveAt": "2026-06-22T00:00:00.000Z"
          },
          "note": "Unsubscribe LedgerBundles."
        }
      ]
    },
    {
      "id": "keys.list",
      "domain": "keys",
      "summary": "List workspace API keys (active + revoked filter).",
      "description_key": "actions.keys.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "keys.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/keys.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "keys": [],
            "nextCursor": null
          },
          "note": "List active keys."
        }
      ]
    },
    {
      "id": "keys.get",
      "domain": "keys",
      "summary": "Get a single workspace API key by id.",
      "description_key": "actions.keys.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "keys.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/keys.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "keyId": "av_workspace_abc20charsforexampleid"
          },
          "output": {
            "id": "av_workspace_abc20charsforexampleid",
            "workspaceId": "ws_demo_default",
            "product": "agined",
            "label": "Prod key",
            "prefix": "av_abc",
            "scopes": [
              "ingest:write"
            ],
            "createdAt": "2026-05-22T12:00:00.000Z",
            "lastUsedAt": null,
            "expiresAt": null,
            "revokedAt": null
          },
          "note": "Fetch one key."
        }
      ]
    },
    {
      "id": "keys.issue",
      "domain": "keys",
      "summary": "Issue a new workspace API key. Cleartext returned ONCE.",
      "description_key": "actions.keys.issue.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "keys.create"
      ],
      "audit_kind": "key.issued",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/keys.issue",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "product": "agined",
            "label": "Prod ingest key",
            "scopes": [
              "ingest:write"
            ],
            "expiry": "1y"
          },
          "output": {
            "key": {
              "id": "av_workspace_abc20charsforexampleid",
              "workspaceId": "ws_demo_default",
              "product": "agined",
              "label": "Prod ingest key",
              "prefix": "av_abc",
              "scopes": [
                "ingest:write"
              ],
              "createdAt": "2026-05-22T12:00:00.000Z",
              "lastUsedAt": null,
              "expiresAt": "2027-05-22T12:00:00.000Z",
              "revokedAt": null
            },
            "cleartext": "av_abc_REDACTED_EXAMPLE_ONLY"
          },
          "note": "Mint a new key; cleartext shown once."
        }
      ]
    },
    {
      "id": "keys.revoke",
      "domain": "keys",
      "summary": "Revoke a workspace API key. Propagates in ≤30s.",
      "description_key": "actions.keys.revoke.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "keys.revoke"
      ],
      "audit_kind": "key.revoked",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/keys.revoke",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "keyId": "av_workspace_abc20charsforexampleid"
          },
          "output": {
            "revoked": true,
            "propagatedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Revoke a key."
        }
      ]
    },
    {
      "id": "keys.rotate",
      "domain": "keys",
      "summary": "Rotate a key: revoke the current value + issue a replacement with the same label + scopes. Cleartext returned ONCE.",
      "description_key": "actions.keys.rotate.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "keys.create",
        "keys.revoke"
      ],
      "audit_kind": "key.rotated",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/keys.rotate",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "keyId": "av_workspace_abc20charsforexampleid"
          },
          "output": {
            "revokedKeyId": "av_workspace_abc20charsforexampleid",
            "newKey": {
              "id": "av_workspace_def20charsforexampleid",
              "workspaceId": "ws_demo_default",
              "product": "agined",
              "label": "Prod ingest key",
              "prefix": "av_def",
              "scopes": [
                "ingest:write"
              ],
              "createdAt": "2026-05-22T12:00:00.000Z",
              "lastUsedAt": null,
              "expiresAt": null,
              "revokedAt": null
            },
            "cleartext": "av_def_REDACTED_EXAMPLE_ONLY",
            "graceUntil": "2026-05-22T12:05:00.000Z"
          },
          "note": "Rotate a key with 5-min grace."
        }
      ]
    },
    {
      "id": "keys.scopes.list",
      "domain": "keys",
      "summary": "List the available scope grants for workspace API keys.",
      "description_key": "actions.keys.scopes.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/keys.scopes.list",
      "examples": [
        {
          "input": {},
          "output": {
            "scopes": [
              {
                "id": "ingest:write",
                "product": "agined",
                "label": "Ingest write",
                "description": "Send runs / events into the workspace",
                "severity": "write"
              }
            ]
          },
          "note": "Discover scopes."
        }
      ]
    },
    {
      "id": "keys.usage.get",
      "domain": "keys",
      "summary": "Get usage statistics (calls + last-used + IP CIDRs) for a key over a time window.",
      "description_key": "actions.keys.usage.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "keys.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/keys.usage.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "keyId": "av_workspace_abc20charsforexampleid"
          },
          "output": {
            "totalCalls": 12345,
            "uniqueIpCidrs": 3,
            "lastUsedAt": "2026-05-22T12:00:00.000Z",
            "perEndpointBreakdown": [
              {
                "path": "/api/v1/ingest",
                "count": 12000
              }
            ]
          },
          "note": "Read key usage."
        }
      ]
    },
    {
      "id": "keys.last-used.get",
      "domain": "keys",
      "summary": "Quick lookup: when was this key last used?",
      "description_key": "actions.keys.last-used.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "keys.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/keys.last-used.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "keyId": "av_workspace_abc20charsforexampleid"
          },
          "output": {
            "lastUsedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Lightweight last-used check."
        }
      ]
    },
    {
      "id": "keys.attestor.list",
      "domain": "keys",
      "summary": "Convenience: list only the Attestor-product workspace keys.",
      "description_key": "actions.keys.attestor.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "keys.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/keys.attestor.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "keys": [],
            "nextCursor": null
          },
          "note": "List Attestor-only keys."
        }
      ]
    },
    {
      "id": "keys.attestor.issue",
      "domain": "keys",
      "summary": "Issue an Attestor-product workspace key (atst_*). Cleartext shown ONCE.",
      "description_key": "actions.keys.attestor.issue.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "keys.create"
      ],
      "audit_kind": "key.issued",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/keys.attestor.issue",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "label": "Attestor attestation key",
            "scopes": [
              "attestor:agent-call:write",
              "attestor:content-attest:write"
            ],
            "expiry": "90d"
          },
          "output": {
            "key": {
              "id": "atst_workspace_abc20charsforexampleid",
              "workspaceId": "ws_demo_default",
              "product": "attestor",
              "label": "Attestor attestation key",
              "prefix": "atst_abc",
              "scopes": [
                "attestor:agent-call:write",
                "attestor:content-attest:write"
              ],
              "createdAt": "2026-05-22T12:00:00.000Z",
              "lastUsedAt": null,
              "expiresAt": "2026-08-20T12:00:00.000Z",
              "revokedAt": null
            },
            "cleartext": "atst_abc_REDACTED_EXAMPLE_ONLY"
          },
          "note": "Mint an Attestor key."
        }
      ]
    },
    {
      "id": "keys.ingest-secret.list",
      "domain": "keys",
      "summary": "List this workspace's ingest secrets (metadata only — never the secret value).",
      "description_key": "actions.keys.ingest-secret.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "keys.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/keys.ingest-secret.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "secrets": [
              {
                "id": "wis_abc123",
                "workspaceId": "ws_demo_default",
                "platformId": "webhook:vapi",
                "createdAt": "2026-09-03T12:00:00.000Z",
                "revokedAt": null
              }
            ]
          },
          "note": "See which platforms can deliver."
        }
      ]
    },
    {
      "id": "keys.ingest-secret.issue",
      "domain": "keys",
      "summary": "Issue an ingest secret for a platform. Any active secret for that platform is revoked. Cleartext returned ONCE.",
      "description_key": "actions.keys.ingest-secret.issue.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "keys.create"
      ],
      "audit_kind": "key.issued",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/keys.ingest-secret.issue",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "platformId": "webhook:vapi"
          },
          "output": {
            "secret": {
              "id": "wis_def456",
              "workspaceId": "ws_demo_default",
              "platformId": "webhook:vapi",
              "createdAt": "2026-09-03T12:00:00.000Z",
              "revokedAt": null
            },
            "cleartext": "wis_REDACTED_EXAMPLE_ONLY",
            "revokedSecretId": null
          },
          "note": "Generate the secret a Vapi webhook signs with."
        }
      ]
    },
    {
      "id": "keys.ingest-secret.revoke",
      "domain": "keys",
      "summary": "Revoke an ingest secret without issuing a replacement. Deliveries for that platform then fail closed.",
      "description_key": "actions.keys.ingest-secret.revoke.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "keys.revoke"
      ],
      "audit_kind": "key.revoked",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/keys.ingest-secret.revoke",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "secretId": "wis_def456",
            "reason": "Rotating after a partner offboarding."
          },
          "output": {
            "revoked": true,
            "secretId": "wis_def456",
            "revokedAt": "2026-09-03T12:00:00.000Z"
          },
          "note": "Stop accepting deliveries for a platform."
        }
      ]
    },
    {
      "id": "webhooks.list",
      "domain": "webhooks",
      "summary": "List webhook endpoints for a workspace.",
      "description_key": "actions.webhooks.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "webhooks.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/webhooks.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "webhooks": [],
            "nextCursor": null
          },
          "note": "List webhooks."
        }
      ]
    },
    {
      "id": "webhooks.get",
      "domain": "webhooks",
      "summary": "Get a single webhook endpoint.",
      "description_key": "actions.webhooks.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "webhooks.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/webhooks.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "webhookId": "wh_DEMO00000000000000000000"
          },
          "output": {
            "id": "wh_DEMO00000000000000000000",
            "workspaceId": "ws_demo_default",
            "url": "https://example.com/webhook",
            "label": "Production hook",
            "events": [
              "alert.fired"
            ],
            "enabled": true,
            "secretPrefix": "whsec_ab",
            "createdAt": "2026-05-22T12:00:00.000Z",
            "updatedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Read a webhook."
        }
      ]
    },
    {
      "id": "webhooks.create",
      "domain": "webhooks",
      "summary": "Register a new webhook endpoint. Returns the signing secret cleartext ONCE.",
      "description_key": "actions.webhooks.create.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "webhooks.create"
      ],
      "audit_kind": "webhook.created",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/webhooks.create",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "url": "https://example.com/webhook",
            "label": "Prod hook",
            "events": [
              "alert.fired",
              "export.ready"
            ]
          },
          "output": {
            "webhook": {
              "id": "wh_DEMO00000000000000000000",
              "workspaceId": "ws_demo_default",
              "url": "https://example.com/webhook",
              "label": "Prod hook",
              "events": [
                "alert.fired",
                "export.ready"
              ],
              "enabled": true,
              "secretPrefix": "whsec_ab",
              "createdAt": "2026-05-22T12:00:00.000Z",
              "updatedAt": "2026-05-22T12:00:00.000Z"
            },
            "signingSecretCleartext": "whsec_REDACTED_EXAMPLE_ONLY"
          },
          "note": "Create + receive signing secret."
        }
      ]
    },
    {
      "id": "webhooks.update",
      "domain": "webhooks",
      "summary": "Update a webhook's URL, label, or event subscriptions.",
      "description_key": "actions.webhooks.update.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "webhooks.create"
      ],
      "audit_kind": "webhook.updated",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/webhooks.update",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "webhookId": "wh_DEMO00000000000000000000",
            "events": [
              "alert.fired"
            ]
          },
          "output": {
            "id": "wh_DEMO00000000000000000000",
            "workspaceId": "ws_demo_default",
            "url": "https://example.com/webhook",
            "label": "Prod hook",
            "events": [
              "alert.fired"
            ],
            "enabled": true,
            "secretPrefix": "whsec_ab",
            "createdAt": "2026-05-22T12:00:00.000Z",
            "updatedAt": "2026-05-22T12:05:00.000Z"
          },
          "note": "Narrow subscription set."
        }
      ]
    },
    {
      "id": "webhooks.delete",
      "domain": "webhooks",
      "summary": "Delete a webhook endpoint. Pending deliveries are abandoned.",
      "description_key": "actions.webhooks.delete.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "webhooks.delete"
      ],
      "audit_kind": "webhook.deleted",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/webhooks.delete",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "webhookId": "wh_DEMO00000000000000000000"
          },
          "output": {
            "deleted": true
          },
          "note": "Remove a webhook."
        }
      ]
    },
    {
      "id": "webhooks.enable",
      "domain": "webhooks",
      "summary": "Enable or disable a webhook without deleting it.",
      "description_key": "actions.webhooks.enable.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [
        "webhooks.create"
      ],
      "audit_kind": "webhook.updated",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/webhooks.enable",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "webhookId": "wh_DEMO00000000000000000000",
            "enabled": false
          },
          "output": {
            "id": "wh_DEMO00000000000000000000",
            "workspaceId": "ws_demo_default",
            "url": "https://example.com/webhook",
            "label": "Prod hook",
            "events": [
              "alert.fired"
            ],
            "enabled": false,
            "secretPrefix": "whsec_ab",
            "createdAt": "2026-05-22T12:00:00.000Z",
            "updatedAt": "2026-05-22T12:10:00.000Z"
          },
          "note": "Disable temporarily."
        }
      ]
    },
    {
      "id": "webhooks.test-fire",
      "domain": "webhooks",
      "summary": "Fire a synthetic test event to a webhook to verify delivery + signature validation.",
      "description_key": "actions.webhooks.test-fire.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "webhooks.create"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/webhooks.test-fire",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "webhookId": "wh_DEMO00000000000000000000"
          },
          "output": {
            "deliveryId": "del_abc",
            "webhookId": "wh_DEMO00000000000000000000",
            "eventType": "webhook.test",
            "status": "success",
            "statusCode": 200,
            "attemptCount": 1,
            "attemptedAt": "2026-05-22T12:00:00.000Z",
            "responseTimeMs": 87
          },
          "note": "Test webhook delivery."
        }
      ]
    },
    {
      "id": "webhooks.events.list",
      "domain": "webhooks",
      "summary": "List the event types this webhook can subscribe to (from the AsyncAPI 3 spec).",
      "description_key": "actions.webhooks.events.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/webhooks.events.list",
      "examples": [
        {
          "input": {},
          "output": {
            "events": [
              {
                "id": "alert.fired",
                "description": "An alert rule fired.",
                "severity": "warning"
              }
            ]
          },
          "note": "Discover event types."
        }
      ]
    },
    {
      "id": "webhooks.events.replay",
      "domain": "webhooks",
      "summary": "Replay missed events from a time window. Useful for recovering after webhook downtime.",
      "description_key": "actions.webhooks.events.replay.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "webhooks.create"
      ],
      "audit_kind": null,
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/webhooks.events.replay",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "webhookId": "wh_DEMO00000000000000000000",
            "since": "2026-05-21T00:00:00.000Z"
          },
          "output": {
            "replayId": "rep_abc",
            "eventsQueued": 42
          },
          "note": "Replay events from yesterday."
        }
      ]
    },
    {
      "id": "webhooks.signing-secret.rotate",
      "domain": "webhooks",
      "summary": "Rotate the HMAC signing secret. Old secret valid for 24h grace.",
      "description_key": "actions.webhooks.signing-secret.rotate.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "webhooks.create"
      ],
      "audit_kind": "webhook.updated",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/webhooks.signing-secret.rotate",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "webhookId": "wh_DEMO00000000000000000000"
          },
          "output": {
            "newSigningSecretCleartext": "whsec_REDACTED_EXAMPLE_ONLY",
            "oldSecretValidUntil": "2026-05-23T12:00:00.000Z"
          },
          "note": "Rotate webhook signing secret."
        }
      ]
    },
    {
      "id": "webhooks.deliveries.list",
      "domain": "webhooks",
      "summary": "List delivery attempts for a webhook (success + failure history).",
      "description_key": "actions.webhooks.deliveries.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "webhooks.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/webhooks.deliveries.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "webhookId": "wh_DEMO00000000000000000000"
          },
          "output": {
            "deliveries": [],
            "nextCursor": null
          },
          "note": "List delivery attempts."
        }
      ]
    },
    {
      "id": "webhooks.deliveries.retry",
      "domain": "webhooks",
      "summary": "Retry a specific failed delivery.",
      "description_key": "actions.webhooks.deliveries.retry.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "webhooks.create"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/webhooks.deliveries.retry",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "webhookId": "wh_DEMO00000000000000000000",
            "deliveryId": "del_abc"
          },
          "output": {
            "deliveryId": "del_abc",
            "webhookId": "wh_DEMO00000000000000000000",
            "eventType": "alert.fired",
            "status": "success",
            "statusCode": 200,
            "attemptCount": 2,
            "attemptedAt": "2026-05-22T12:00:00.000Z",
            "responseTimeMs": 42
          },
          "note": "Retry a delivery."
        }
      ]
    },
    {
      "id": "alerts.list",
      "domain": "alerts",
      "summary": "List alert rules for a workspace.",
      "description_key": "actions.alerts.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/alerts.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "alerts": [],
            "nextCursor": null
          },
          "note": "List alerts."
        }
      ]
    },
    {
      "id": "alerts.get",
      "domain": "alerts",
      "summary": "Get a single alert rule.",
      "description_key": "actions.alerts.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/alerts.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "alertId": "alert_DEMO00000000000000000000"
          },
          "output": {
            "id": "alert_DEMO00000000000000000000",
            "workspaceId": "ws_demo_default",
            "type": "quota_threshold",
            "label": "80% quota",
            "enabled": true,
            "config": {
              "type": "quota_threshold",
              "thresholdPercent": 80,
              "quotaKind": "runs"
            },
            "channels": [],
            "lastFiredAt": null,
            "firedCount": 0,
            "createdAt": "2026-05-22T12:00:00.000Z",
            "updatedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Read an alert rule."
        }
      ]
    },
    {
      "id": "alerts.create",
      "domain": "alerts",
      "summary": "Create a new alert rule.",
      "description_key": "actions.alerts.create.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "alert.created",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/alerts.create",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "type": "quota_threshold",
            "label": "80% quota",
            "config": {
              "type": "quota_threshold",
              "thresholdPercent": 80,
              "quotaKind": "runs"
            },
            "channels": [
              {
                "kind": "email",
                "addresses": [
                  "ops@example.com"
                ]
              }
            ]
          },
          "output": {
            "id": "alert_NEW0000000000000000000",
            "workspaceId": "ws_demo_default",
            "type": "quota_threshold",
            "label": "80% quota",
            "enabled": true,
            "config": {
              "type": "quota_threshold",
              "thresholdPercent": 80,
              "quotaKind": "runs"
            },
            "channels": [
              {
                "kind": "email",
                "addresses": [
                  "ops@example.com"
                ]
              }
            ],
            "lastFiredAt": null,
            "firedCount": 0,
            "createdAt": "2026-05-22T12:00:00.000Z",
            "updatedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Create alert."
        }
      ]
    },
    {
      "id": "alerts.update",
      "domain": "alerts",
      "summary": "Update an alert's label / config / channels / enabled flag.",
      "description_key": "actions.alerts.update.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "alert.updated",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/alerts.update",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "alertId": "alert_DEMO00000000000000000000",
            "label": "Renamed"
          },
          "output": {
            "id": "alert_DEMO00000000000000000000",
            "workspaceId": "ws_demo_default",
            "type": "quota_threshold",
            "label": "Renamed",
            "enabled": true,
            "config": {},
            "channels": [],
            "lastFiredAt": null,
            "firedCount": 0,
            "createdAt": "2026-05-22T12:00:00.000Z",
            "updatedAt": "2026-05-22T12:05:00.000Z"
          },
          "note": "Update alert."
        }
      ]
    },
    {
      "id": "alerts.delete",
      "domain": "alerts",
      "summary": "Delete an alert rule.",
      "description_key": "actions.alerts.delete.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "alert.deleted",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/alerts.delete",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "alertId": "alert_DEMO00000000000000000000"
          },
          "output": {
            "deleted": true
          },
          "note": "Delete alert."
        }
      ]
    },
    {
      "id": "alerts.enable",
      "domain": "alerts",
      "summary": "Enable an alert rule.",
      "description_key": "actions.alerts.enable.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "alert.updated",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/alerts.enable",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "alertId": "alert_DEMO00000000000000000000"
          },
          "output": {
            "id": "alert_DEMO00000000000000000000",
            "workspaceId": "ws_demo_default",
            "type": "quota_threshold",
            "label": "Quota",
            "enabled": true,
            "config": {},
            "channels": [],
            "lastFiredAt": null,
            "firedCount": 0,
            "createdAt": "2026-05-22T12:00:00.000Z",
            "updatedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Enable."
        }
      ]
    },
    {
      "id": "alerts.disable",
      "domain": "alerts",
      "summary": "Disable an alert rule without deleting it.",
      "description_key": "actions.alerts.disable.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "alert.updated",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/alerts.disable",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "alertId": "alert_DEMO00000000000000000000"
          },
          "output": {
            "id": "alert_DEMO00000000000000000000",
            "workspaceId": "ws_demo_default",
            "type": "quota_threshold",
            "label": "Quota",
            "enabled": false,
            "config": {},
            "channels": [],
            "lastFiredAt": null,
            "firedCount": 0,
            "createdAt": "2026-05-22T12:00:00.000Z",
            "updatedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Disable."
        }
      ]
    },
    {
      "id": "alerts.test-fire",
      "domain": "alerts",
      "summary": "Fire a synthetic test of an alert to verify channels.",
      "description_key": "actions.alerts.test-fire.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/alerts.test-fire",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "alertId": "alert_DEMO00000000000000000000"
          },
          "output": {
            "fired": true,
            "channelResults": [
              {
                "kind": "email",
                "success": true
              }
            ]
          },
          "note": "Test fire."
        }
      ]
    },
    {
      "id": "alerts.kinds.list",
      "domain": "alerts",
      "summary": "List all supported alert kinds + their config shapes + severity classifications.",
      "description_key": "actions.alerts.kinds.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/alerts.kinds.list",
      "examples": [
        {
          "input": {},
          "output": {
            "kinds": [
              {
                "id": "quota_threshold",
                "label": "Quota threshold tripped",
                "description": "Run or Number One quota crossed a configured percent of the monthly allowance.",
                "severity": "ops",
                "configurable": true
              }
            ]
          },
          "note": "Discover alert kinds."
        }
      ]
    },
    {
      "id": "alerts.history.list",
      "domain": "alerts",
      "summary": "List historical firings for a given alert rule.",
      "description_key": "actions.alerts.history.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/alerts.history.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "alertId": "alert_DEMO00000000000000000000"
          },
          "output": {
            "firings": [],
            "nextCursor": null
          },
          "note": "Read alert fire history."
        }
      ]
    },
    {
      "id": "exports.list",
      "domain": "exports",
      "summary": "List exports for a workspace.",
      "description_key": "actions.exports.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "exports.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/exports.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "exports": [],
            "nextCursor": null
          },
          "note": "List exports."
        }
      ]
    },
    {
      "id": "exports.get",
      "domain": "exports",
      "summary": "Get a single export's status + metadata.",
      "description_key": "actions.exports.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "exports.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/exports.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "exportId": "exp_abc"
          },
          "output": {
            "exportId": "exp_abc",
            "workspaceId": "ws_demo_default",
            "kind": "audit-log",
            "status": "ready",
            "format": "json",
            "requestedAt": "2026-05-22T12:00:00.000Z",
            "readyAt": "2026-05-22T12:10:00.000Z",
            "expiresAt": "2026-05-29T12:10:00.000Z"
          },
          "note": "Read export status."
        }
      ]
    },
    {
      "id": "exports.request",
      "domain": "exports",
      "summary": "Request a new compliance export. Returns the export id; status polls reveal readiness.",
      "description_key": "actions.exports.request.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "exports.create"
      ],
      "audit_kind": "export.requested",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/exports.request",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "kind": "compliance-bundle",
            "format": "zip"
          },
          "output": {
            "exportId": "exp_abc",
            "estimatedReadyAt": "2026-05-22T12:10:00.000Z"
          },
          "note": "Request a compliance bundle."
        }
      ]
    },
    {
      "id": "exports.download",
      "domain": "exports",
      "summary": "Get the signed download URL for a ready export (URL is time-bounded; SHA-256 included for integrity check).",
      "description_key": "actions.exports.download.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "exports.download"
      ],
      "audit_kind": "export.completed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/exports.download",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "exportId": "exp_abc"
          },
          "output": {
            "url": "https://r2.agined.com/exports/abc",
            "expiresAt": "2026-05-22T13:00:00.000Z",
            "sha256": "abcd1234567890abcdef1234567890abcdef1234567890abcdef1234567890ab"
          },
          "note": "Get signed download URL."
        }
      ]
    },
    {
      "id": "exports.verify",
      "domain": "exports",
      "summary": "Verify an export's Ed25519 signature + OTS Bitcoin proof. Offline-verifiable.",
      "description_key": "actions.exports.verify.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/exports.verify",
      "examples": [
        {
          "input": {
            "exportSha256": "abcd1234567890abcdef1234567890abcdef1234567890abcdef1234567890ab",
            "signature": "...",
            "signingKeyId": "agined-2026-q2-enam"
          },
          "output": {
            "valid": true,
            "signatureValid": true,
            "otsValid": true,
            "errors": []
          },
          "note": "Offline verify an export."
        }
      ]
    },
    {
      "id": "exports.attestor.receipt-bundle.request",
      "domain": "exports",
      "summary": "Request a portable Attestor-receipt bundle — JSON manifest + receipt files + public key JWK + verify README. Verifiable with @attestor/verify.",
      "description_key": "actions.exports.attestor.receipt-bundle.request.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "exports.create"
      ],
      "audit_kind": "export.requested",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/exports.attestor.receipt-bundle.request",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "primitiveFilter": [
              "agent.call",
              "content.attest"
            ]
          },
          "output": {
            "exportId": "exp_atst_abc",
            "estimatedReadyAt": "2026-05-22T12:15:00.000Z"
          },
          "note": "Bundle Attestor receipts."
        }
      ]
    },
    {
      "id": "exports.eu-ai-act.article-12.request",
      "domain": "exports",
      "summary": "Request an EU AI Act Article 12 compliant log bundle (prEN 18229-1 + ISO/IEC DIS 24970 schema). Cannot be disabled — regulatory mandate.",
      "description_key": "actions.exports.eu-ai-act.article-12.request.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "exports.create"
      ],
      "audit_kind": "export.requested",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/exports.eu-ai-act.article-12.request",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "since": "2026-04-01T00:00:00.000Z",
            "until": "2026-05-01T00:00:00.000Z"
          },
          "output": {
            "exportId": "exp_eu12_abc",
            "estimatedReadyAt": "2026-05-22T12:30:00.000Z",
            "schemaVersion": "prEN-18229-1-draft-2026-03"
          },
          "note": "EU AI Act Art. 12 compliance export."
        }
      ]
    },
    {
      "id": "exports.audit-log.request",
      "domain": "exports",
      "summary": "Request a JSON or CSV export of the workspace audit log filtered by time + kind.",
      "description_key": "actions.exports.audit-log.request.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "exports.create",
        "settings.view_audit_log"
      ],
      "audit_kind": "export.requested",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/exports.audit-log.request",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "format": "csv"
          },
          "output": {
            "exportId": "exp_audit_abc",
            "estimatedReadyAt": "2026-05-22T12:10:00.000Z"
          },
          "note": "Export audit log as CSV."
        }
      ]
    },
    {
      "id": "exports.kinds.list",
      "domain": "exports",
      "summary": "List the supported export kinds + their output formats + retention.",
      "description_key": "actions.exports.kinds.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/exports.kinds.list",
      "examples": [
        {
          "input": {},
          "output": {
            "kinds": [
              {
                "id": "compliance-bundle",
                "label": "Compliance bundle",
                "description": "Full audit + custody + receipts + signing keys for offline verification.",
                "supportedFormats": [
                  "zip"
                ],
                "retentionDays": 7
              }
            ]
          },
          "note": "Discover export kinds."
        }
      ]
    },
    {
      "id": "exports.delete",
      "domain": "exports",
      "summary": "Delete a completed export (frees R2 storage immediately).",
      "description_key": "actions.exports.delete.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "exports.view"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/exports.delete",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "exportId": "exp_abc"
          },
          "output": {
            "deleted": true
          },
          "note": "Delete an export."
        }
      ]
    },
    {
      "id": "retention.policy.get",
      "domain": "retention",
      "summary": "Get the active retention policy for a workspace.",
      "description_key": "actions.retention.policy.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/retention.policy.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "workspaceId": "ws_demo_default",
            "retentionDays": 365,
            "isCustom": false,
            "appliedAt": "2026-01-01T00:00:00.000Z",
            "appliedBy": "plan"
          },
          "note": "Read retention policy."
        }
      ]
    },
    {
      "id": "retention.policy.update",
      "domain": "retention",
      "summary": "Update workspace retention days (within tier limits).",
      "description_key": "actions.retention.policy.update.description",
      "safety_level": "destructive",
      "confirmation_policy": "mandate",
      "idempotent": false,
      "permissions": [
        "settings.edit_retention"
      ],
      "audit_kind": "retention.updated",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/retention.policy.update",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "retentionDays": 730
          },
          "output": {
            "workspaceId": "ws_demo_default",
            "retentionDays": 730,
            "isCustom": true,
            "appliedAt": "2026-05-22T12:00:00.000Z",
            "appliedBy": "extension"
          },
          "note": "Extend retention via paid extension."
        }
      ]
    },
    {
      "id": "retention.histogram.get",
      "domain": "retention",
      "summary": "Get a histogram of record ages in the workspace (helps visualize what's near purge).",
      "description_key": "actions.retention.histogram.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/retention.histogram.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "buckets": [
              {
                "ageDays": 0,
                "recordCount": 1000
              },
              {
                "ageDays": 7,
                "recordCount": 900
              }
            ],
            "totalRecords": 12000,
            "oldestRecordAge": 350
          },
          "note": "Read age distribution."
        }
      ]
    },
    {
      "id": "retention.next-purge.preview",
      "domain": "retention",
      "summary": "Preview which records will purge in the next cycle (live 1-Hz countdown on the dashboard).",
      "description_key": "actions.retention.next-purge.preview.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/retention.next-purge.preview",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "purgeAt": "2026-05-22T13:00:00.000Z",
            "recordsToBepurged": 42,
            "sampleEntries": []
          },
          "note": "Preview upcoming purge."
        }
      ]
    },
    {
      "id": "retention.purge-history.list",
      "domain": "retention",
      "summary": "List historical purge events with verification status.",
      "description_key": "actions.retention.purge-history.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/retention.purge-history.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "purges": [],
            "nextCursor": null
          },
          "note": "Read purge history."
        }
      ]
    },
    {
      "id": "retention.extension.subscribe",
      "domain": "retention",
      "summary": "Subscribe to the paid retention extension at the per-tier rate.",
      "description_key": "actions.retention.extension.subscribe.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.subscribe_addons"
      ],
      "audit_kind": "retention.updated",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/retention.extension.subscribe",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "extendedToDays": 1095
          },
          "output": {
            "workspaceId": "ws_demo_default",
            "extendedToDays": 1095,
            "monthlyCostUsdMinor": 1200,
            "perGbMonthlyCostUsdMinor": 1000,
            "storageGbBilled": 1.2,
            "startedAt": "2026-05-22T12:00:00.000Z",
            "canceledAt": null,
            "effectiveUntil": null
          },
          "note": "Subscribe to 3-year retention extension."
        }
      ]
    },
    {
      "id": "retention.extension.get",
      "domain": "retention",
      "summary": "Get the current retention extension subscription (if any).",
      "description_key": "actions.retention.extension.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "billing.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/retention.extension.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": null,
          "note": "Workspace has no extension subscription."
        }
      ]
    },
    {
      "id": "retention.extension.update",
      "domain": "retention",
      "summary": "Update the active retention extension (change duration).",
      "description_key": "actions.retention.extension.update.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.subscribe_addons"
      ],
      "audit_kind": "retention.updated",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/retention.extension.update",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "extendedToDays": 1825
          },
          "output": {
            "workspaceId": "ws_demo_default",
            "extendedToDays": 1825,
            "monthlyCostUsdMinor": 2400,
            "perGbMonthlyCostUsdMinor": 1000,
            "storageGbBilled": 2.4,
            "startedAt": "2026-05-22T12:00:00.000Z",
            "canceledAt": null,
            "effectiveUntil": null
          },
          "note": "Bump to 5-year retention."
        }
      ]
    },
    {
      "id": "retention.extension.cancel",
      "domain": "retention",
      "summary": "Cancel the retention extension at the end of the current billing period.",
      "description_key": "actions.retention.extension.cancel.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.subscribe_addons"
      ],
      "audit_kind": "retention.updated",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/retention.extension.cancel",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "workspaceId": "ws_demo_default",
            "extendedToDays": 1825,
            "monthlyCostUsdMinor": 2400,
            "perGbMonthlyCostUsdMinor": 1000,
            "storageGbBilled": 2.4,
            "startedAt": "2026-05-22T12:00:00.000Z",
            "canceledAt": "2026-05-22T12:00:00.000Z",
            "effectiveUntil": "2026-06-22T00:00:00.000Z"
          },
          "note": "Cancel at period end."
        }
      ]
    },
    {
      "id": "retention.extension.rates.list",
      "domain": "retention",
      "summary": "List the per-tier retention extension rates (USD cents per GB per month).",
      "description_key": "actions.retention.extension.rates.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/retention.extension.rates.list",
      "examples": [
        {
          "input": {},
          "output": {
            "rates": [
              {
                "tier": "free",
                "perGbCentsPerMonth": 1200
              },
              {
                "tier": "starter",
                "perGbCentsPerMonth": 1100
              }
            ]
          },
          "note": "List per-tier rates."
        }
      ]
    },
    {
      "id": "retention.policy.suggested-tier.get",
      "domain": "retention",
      "summary": "Recommend a higher tier if the workspace's data growth + retention needs make extension uneconomical.",
      "description_key": "actions.retention.policy.suggested-tier.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "billing.view"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/retention.policy.suggested-tier.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "suggestedTier": "pro",
            "monthlySavingsUsdMinor": 800,
            "explanation": "At your current storage growth, Pro tier's bundled retention saves about $8/mo over the extension."
          },
          "note": "Suggested upgrade."
        }
      ]
    },
    {
      "id": "retention.audit.list",
      "domain": "retention",
      "summary": "List retention-policy audit events (changes, purges, extensions).",
      "description_key": "actions.retention.audit.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/retention.audit.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "entries": [],
            "nextCursor": null
          },
          "note": "Read retention audit."
        }
      ]
    },
    {
      "id": "audit.workspace.list",
      "domain": "audit",
      "summary": "List audit log entries for a workspace.",
      "description_key": "actions.audit.workspace.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "agent_read",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.workspace.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "entries": [],
            "nextCursor": null
          },
          "note": "Read workspace audit log."
        }
      ]
    },
    {
      "id": "audit.workspace.get",
      "domain": "audit",
      "summary": "Get a specific audit entry by id.",
      "description_key": "actions.audit.workspace.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.workspace.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "entryId": "aud_9f1c2d3e-4a5b-6c7d-8e9f-0a1b2c3d4e5f"
          },
          "output": {
            "id": "aud_9f1c2d3e-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
            "workspaceId": "ws_demo_default",
            "timestamp": "2026-05-22T12:00:00.000Z",
            "kind": "workspace.created",
            "outcome": "success"
          },
          "note": "Fetch a single entry."
        }
      ]
    },
    {
      "id": "audit.workspace.search",
      "domain": "audit",
      "summary": "Full-text search across a workspace's audit log.",
      "description_key": "actions.audit.workspace.search.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "agent_read",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.workspace.search",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "query": "alice@example.com"
          },
          "output": {
            "entries": []
          },
          "note": "Search for any mention of an email in the audit log."
        }
      ]
    },
    {
      "id": "audit.workspace.share",
      "domain": "audit",
      "summary": "Generate a time-bounded share URL to an audit entry (for external auditors).",
      "description_key": "actions.audit.workspace.share.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.workspace.share",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "entryId": "aud_9f1c2d3e-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
            "ttlHours": 24,
            "note": "Q3 audit — Foo & Co LLP"
          },
          "output": {
            "shareUrl": "https://agined.com/audit/share/abc",
            "expiresAt": "2026-05-23T12:00:00.000Z",
            "shareId": "9f2c1a7b3e4d5f60"
          },
          "note": "Share with auditor."
        }
      ]
    },
    {
      "id": "audit.workspace.shares.list",
      "domain": "audit",
      "summary": "List the audit share links minted for this workspace, with their expiry and revocation state.",
      "description_key": "actions.audit.workspace.shares.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.workspace.shares.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "includeInactive": false
          },
          "output": {
            "shares": [
              {
                "shareId": "9f2c1a7b3e4d5f60",
                "tokenPrefix": "abc12345",
                "entryId": "aud_9f1c2d3e-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
                "note": "Q3 audit — Foo & Co LLP",
                "createdAt": "2026-05-22T12:00:00.000Z",
                "createdBy": "acct_demo",
                "expiresAt": "2026-05-23T12:00:00.000Z",
                "revokedAt": null,
                "active": true
              }
            ]
          },
          "note": "See what is still shared."
        }
      ]
    },
    {
      "id": "audit.workspace.share.revoke",
      "domain": "audit",
      "summary": "Revoke an audit share link immediately, before its expiry.",
      "description_key": "actions.audit.workspace.share.revoke.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.workspace.share.revoke",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "shareId": "9f2c1a7b3e4d5f60"
          },
          "output": {
            "shareId": "9f2c1a7b3e4d5f60",
            "revoked": true,
            "revokedAt": "2026-05-22T18:00:00.000Z"
          },
          "note": "Kill a leaked share."
        }
      ]
    },
    {
      "id": "audit.custody.list",
      "domain": "audit",
      "summary": "List custody chain entries for a workspace (hash-chained, Ed25519-signed).",
      "description_key": "actions.audit.custody.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "agent_read",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.custody.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "entries": [],
            "nextCursor": null
          },
          "note": "Read custody chain."
        }
      ]
    },
    {
      "id": "audit.custody.get",
      "domain": "audit",
      "summary": "Get a custody entry by id (hash-chained via prevHash→entryHash; per-entry signature is optional — the Ed25519 seal covers a range, not each entry).",
      "description_key": "actions.audit.custody.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.custody.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "entryId": "cust_1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
          },
          "output": {
            "id": "cust_1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
            "workspaceId": "ws_demo_default",
            "seq": 42,
            "sourceAuditId": "aud_9f1c2d3e-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
            "action": "workspace.settings.update",
            "actorDid": "did:web:agined.com:accounts:acc_demo00000000000000000000",
            "payload": {
              "field": "retentionDays",
              "from": 30,
              "to": 90
            },
            "rowHash": "1111567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
            "recordedAt": "2026-05-22T12:00:00.000Z",
            "timestamp": "2026-05-22T12:00:00.000Z",
            "prevHash": "0000000000000000000000000000000000000000000000000000000000000000",
            "entryHash": "abcd567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
            "signature": "...",
            "signingKeyId": "tools-2026-q2-enam"
          },
          "note": "Fetch a custody entry."
        }
      ]
    },
    {
      "id": "audit.tops.list",
      "domain": "audit",
      "summary": "List Tops feed entries (hash-chained per entry; authenticity is the periodically Ed25519-signed + OTS Bitcoin-anchored SEAL ROOT — per-entry signature is null until its seal exists).",
      "description_key": "actions.audit.tops.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "agent_read",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.tops.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "entries": [],
            "nextCursor": null
          },
          "note": "Read Tops feed."
        }
      ]
    },
    {
      "id": "audit.tops.verify",
      "domain": "audit",
      "summary": "Verify the hash chain of this workspace's Tops entries.",
      "description_key": "actions.audit.tops.verify.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "agent_read",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.tops.verify",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "fromEntryId": "1024",
            "toEntryId": "2048"
          },
          "output": {
            "chainValid": true,
            "signaturesValid": true,
            "otsValid": true,
            "errors": [],
            "entriesChecked": 1284,
            "truncated": false
          },
          "note": "Verify a Tops range end-to-end."
        }
      ]
    },
    {
      "id": "audit.shadow-sessions.list",
      "domain": "audit",
      "summary": "List Agined-staff shadow-mode sessions on a workspace.",
      "description_key": "actions.audit.shadow-sessions.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.shadow-sessions.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "sessions": [],
            "nextCursor": null
          },
          "note": "List Agined-staff shadow sessions."
        }
      ]
    },
    {
      "id": "audit.shadow-sessions.get",
      "domain": "audit",
      "summary": "Get full details + action feed of a shadow-mode session.",
      "description_key": "actions.audit.shadow-sessions.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.shadow-sessions.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "sessionId": "shadow_abc"
          },
          "output": {
            "session": {
              "sessionId": "shadow_abc",
              "workspaceId": "ws_demo_default",
              "accountId": "acct_demo00000000000000000000",
              "operatorDid": "did:web:agined.com:operators:ops_demo",
              "origin": "support-console",
              "costCenterId": null,
              "createdAt": "2026-05-22T12:00:00.000Z",
              "expiresAt": "2026-05-22T14:00:00.000Z",
              "lastUsedAt": "2026-05-22T12:31:00.000Z",
              "revokedAt": null,
              "revokeReason": null,
              "ipAddress": "203.0.113.7",
              "userAgent": "Mozilla/5.0"
            },
            "actions": []
          },
          "note": "Inspect a shadow session."
        }
      ]
    },
    {
      "id": "audit.aggregate",
      "domain": "audit",
      "summary": "Group + count audit entries by a dimension (kind, transport, outcome, agentClientId).",
      "description_key": "actions.audit.aggregate.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "agent_read",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.aggregate",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "by": "transport"
          },
          "output": {
            "buckets": [
              {
                "key": "rest",
                "count": 1234
              },
              {
                "key": "mcp",
                "count": 567
              }
            ]
          },
          "note": "Group by transport."
        }
      ]
    },
    {
      "id": "audit.kinds.list",
      "domain": "audit",
      "summary": "List all audit-kind discriminator values supported by the platform.",
      "description_key": "actions.audit.kinds.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.kinds.list",
      "examples": [
        {
          "input": {},
          "output": {
            "kinds": [
              {
                "id": "workspace.created",
                "category": "workspace",
                "description": "A new workspace was created."
              }
            ]
          },
          "note": "Discover audit kinds."
        }
      ]
    },
    {
      "id": "audit.export.scoped",
      "domain": "audit",
      "summary": "Request a scoped CSV/JSON export of audit entries matching filters. Returns a download URL when ready (signed, time-bounded).",
      "description_key": "actions.audit.export.scoped.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "exports.create"
      ],
      "audit_kind": "export.requested",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.export.scoped",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "format": "compliance-bundle"
          },
          "output": {
            "exportId": "exp_abc",
            "status": "queued"
          },
          "note": "Queue a compliance-bundle export."
        }
      ]
    },
    {
      "id": "audit.outside-access.list",
      "domain": "audit",
      "summary": "List entries representing access from outside the workspace's normal principals (admin reads, side-car reads, share-url access).",
      "description_key": "actions.audit.outside-access.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view_audit_log"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.outside-access.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "entries": [],
            "nextCursor": null
          },
          "note": "See every external touch on this workspace."
        }
      ]
    },
    {
      "id": "audit.stream.list",
      "domain": "audit",
      "summary": "List the workspace's SIEM/S3 audit-stream destinations (Splunk HEC / Datadog / webhook / S3), with sealed credentials masked.",
      "description_key": "actions.audit.stream.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.stream.list",
      "examples": [
        {
          "input": {},
          "output": {
            "destinations": []
          },
          "note": "List audit-stream destinations."
        }
      ]
    },
    {
      "id": "audit.stream.configure",
      "domain": "audit",
      "summary": "Create or update a SIEM/S3 audit-stream destination. A provided vendor token / S3 secret / webhook secret is sealed at rest.",
      "description_key": "actions.audit.stream.configure.description",
      "safety_level": "mutation",
      "confirmation_policy": "mandate",
      "idempotent": false,
      "permissions": [
        "settings.edit_integrations"
      ],
      "audit_kind": "audit.stream.configured",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.stream.configure",
      "examples": [
        {
          "input": {
            "kind": "splunk_hec",
            "displayName": "SOC Splunk",
            "endpoint": "https://http-inputs.splunkcloud.com",
            "token": "hec-…"
          },
          "output": {
            "destination": null
          },
          "note": "Add a Splunk HEC destination."
        }
      ]
    },
    {
      "id": "audit.stream.delete",
      "domain": "audit",
      "summary": "Delete an audit-stream destination by id (workspace-scoped).",
      "description_key": "actions.audit.stream.delete.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "settings.edit_integrations"
      ],
      "audit_kind": "audit.stream.configured",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/audit.stream.delete",
      "examples": [
        {
          "input": {
            "id": "astr_abc"
          },
          "output": {
            "deleted": true
          },
          "note": "Delete a destination."
        }
      ]
    },
    {
      "id": "tops.config.get",
      "domain": "tops",
      "summary": "Get the Tops config for a specific scope (org, workspace, or actor).",
      "description_key": "actions.tops.config.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.config.get",
      "examples": [
        {
          "input": {
            "scope": "workspace",
            "scopeId": "ws_demo_default"
          },
          "output": {
            "scope": "workspace",
            "scopeId": "ws_demo_default",
            "enabled": true,
            "kinds": [
              "admin_read",
              "key_issue"
            ],
            "environments": [
              "production"
            ],
            "samplingPercent": 100,
            "detailLevel": "safe",
            "updatedAt": "2026-05-22T12:00:00.000Z",
            "updatedBy": "acct_demo00000000000000000000"
          },
          "note": "Read scope config."
        }
      ]
    },
    {
      "id": "tops.config.set",
      "domain": "tops",
      "summary": "Set the Tops config for a scope. Forensic detail level requires explicit acknowledgement.",
      "description_key": "actions.tops.config.set.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.config.set",
      "examples": [
        {
          "input": {
            "scope": "workspace",
            "scopeId": "ws_demo_default",
            "enabled": true,
            "kinds": [
              "admin_read",
              "key_issue"
            ],
            "environments": [
              "production"
            ],
            "samplingPercent": 100,
            "detailLevel": "extended"
          },
          "output": {
            "scope": "workspace",
            "scopeId": "ws_demo_default",
            "enabled": true,
            "kinds": [
              "admin_read",
              "key_issue"
            ],
            "environments": [
              "production"
            ],
            "samplingPercent": 100,
            "detailLevel": "extended",
            "updatedAt": "2026-05-22T12:00:00.000Z",
            "updatedBy": "acct_demo00000000000000000000"
          },
          "note": "Set scope config."
        }
      ]
    },
    {
      "id": "tops.config.delete",
      "domain": "tops",
      "summary": "Delete a scope-level Tops config (scope reverts to parent inheritance).",
      "description_key": "actions.tops.config.delete.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.config.delete",
      "examples": [
        {
          "input": {
            "scope": "workspace",
            "scopeId": "ws_demo_default"
          },
          "output": {
            "deleted": true
          },
          "note": "Delete scope config."
        }
      ]
    },
    {
      "id": "tops.config.list",
      "domain": "tops",
      "summary": "List Tops configs (all scopes in an org or workspace).",
      "description_key": "actions.tops.config.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.config.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "configs": [],
            "nextCursor": null
          },
          "note": "List configs."
        }
      ]
    },
    {
      "id": "tops.config.cascade.resolve",
      "domain": "tops",
      "summary": "Resolve the effective Tops config at a specific (org, workspace, actor) leaf — applies the leaf-wins cascade.",
      "description_key": "actions.tops.config.cascade.resolve.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.config.cascade.resolve",
      "examples": [
        {
          "input": {
            "organizationId": "org_demo00000000000000000000",
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "effectiveConfig": {
              "scope": "workspace",
              "scopeId": "ws_demo_default",
              "enabled": true,
              "kinds": [
                "admin_read"
              ],
              "environments": [
                "production"
              ],
              "samplingPercent": 100,
              "detailLevel": "safe",
              "updatedAt": "2026-05-22T12:00:00.000Z",
              "updatedBy": "acct_demo00000000000000000000"
            },
            "source": "workspace",
            "inheritedFields": [
              "environments"
            ]
          },
          "note": "Resolve effective config."
        }
      ]
    },
    {
      "id": "tops.config.preset.apply",
      "domain": "tops",
      "summary": "Apply one of the 3 presets (Minimal / Recommended / Forensic) to a scope.",
      "description_key": "actions.tops.config.preset.apply.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.config.preset.apply",
      "examples": [
        {
          "input": {
            "scope": "workspace",
            "scopeId": "ws_demo_default",
            "presetId": "recommended"
          },
          "output": {
            "scope": "workspace",
            "scopeId": "ws_demo_default",
            "enabled": true,
            "kinds": [
              "ingest",
              "export",
              "key_issue",
              "admin_read",
              "spot_decide"
            ],
            "environments": [
              "production"
            ],
            "samplingPercent": 100,
            "detailLevel": "safe",
            "updatedAt": "2026-05-22T12:00:00.000Z",
            "updatedBy": "acct_demo00000000000000000000"
          },
          "note": "Apply recommended preset."
        }
      ]
    },
    {
      "id": "tops.config.presets.list",
      "domain": "tops",
      "summary": "List the 3 supported presets with their config shapes + tradeoff labels.",
      "description_key": "actions.tops.config.presets.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.config.presets.list",
      "examples": [
        {
          "input": {},
          "output": {
            "presets": [
              {
                "id": "minimal",
                "label": "Minimal",
                "description": "Smallest footprint; just the essentials.",
                "config": {
                  "enabled": true,
                  "kinds": [
                    "ingest",
                    "export"
                  ],
                  "environments": [
                    "production"
                  ],
                  "samplingPercent": 10,
                  "detailLevel": "safe"
                },
                "tradeoff": "May miss forensic detail in incidents."
              }
            ]
          },
          "note": "Discover presets."
        }
      ]
    },
    {
      "id": "tops.config.testbed.run",
      "domain": "tops",
      "summary": "Test the cascade resolver against a synthetic actor id to preview what entries it would generate.",
      "description_key": "actions.tops.config.testbed.run.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.config.testbed.run",
      "examples": [
        {
          "input": {
            "organizationId": "org_demo00000000000000000000",
            "workspaceId": "ws_demo_default",
            "actorId": "actor_demo00000000000000000000",
            "syntheticEvent": {
              "kind": "admin_read"
            }
          },
          "output": {
            "resolved": {
              "scope": "workspace",
              "scopeId": "ws_demo_default",
              "enabled": true,
              "kinds": [
                "admin_read"
              ],
              "environments": [
                "production"
              ],
              "samplingPercent": 100,
              "detailLevel": "safe",
              "updatedAt": "2026-05-22T12:00:00.000Z",
              "updatedBy": "acct_demo00000000000000000000"
            },
            "wouldRecord": true,
            "wouldRecordFields": [
              "kind",
              "timestamp"
            ]
          },
          "note": "Test cascade."
        }
      ]
    },
    {
      "id": "tops.config.change-history.list",
      "domain": "tops",
      "summary": "List Tops-config change events (audit cross-link).",
      "description_key": "actions.tops.config.change-history.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.config.change-history.list",
      "examples": [
        {
          "input": {},
          "output": {
            "changes": [
              {
                "id": "0f4a2b1c-0000-4000-8000-000000000000",
                "scope": "workspace",
                "scopeId": "ws_demo_default",
                "changedAt": "2026-05-22T12:00:00.000Z",
                "change": {
                  "op": "set",
                  "before": {
                    "enabled": true,
                    "kinds": [
                      "admin_read"
                    ],
                    "environments": [
                      "production"
                    ],
                    "samplingPercent": 100,
                    "detailLevel": "safe"
                  },
                  "after": {
                    "enabled": true,
                    "kinds": [
                      "admin_read"
                    ],
                    "environments": [
                      "production"
                    ],
                    "samplingPercent": 100,
                    "detailLevel": "forensic"
                  },
                  "detailLevel": "forensic",
                  "by": "acct_demo00000000000000000000"
                }
              }
            ],
            "nextCursor": null
          },
          "note": "Read config change history."
        }
      ]
    },
    {
      "id": "tops.config.sparkline.get",
      "domain": "tops",
      "summary": "Get a 30-day sparkline of Tops detail-level changes (visualizes forensic-cooldown nudge).",
      "description_key": "actions.tops.config.sparkline.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.config.sparkline.get",
      "examples": [
        {
          "input": {
            "scope": "workspace",
            "scopeId": "ws_demo_default"
          },
          "output": {
            "data": []
          },
          "note": "Sparkline data."
        }
      ]
    },
    {
      "id": "tops.config.audit-cross-links.get",
      "domain": "tops",
      "summary": "Get deep-links to the workspace audit log filtered by Tops-config-change events.",
      "description_key": "actions.tops.config.audit-cross-links.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.config.audit-cross-links.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "links": [
              {
                "label": "Recent config changes",
                "href": "/app/audit-log?source=tops"
              }
            ]
          },
          "note": "Audit cross-link helper."
        }
      ]
    },
    {
      "id": "tops.config.cooldown-status.get",
      "domain": "tops",
      "summary": "Check if a scope is in the forensic cooldown window (auto-revert nudge).",
      "description_key": "actions.tops.config.cooldown-status.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.config.cooldown-status.get",
      "examples": [
        {
          "input": {
            "scope": "workspace",
            "scopeId": "ws_demo_default"
          },
          "output": {
            "inCooldown": false,
            "enteredAt": null,
            "expiresAt": null
          },
          "note": "Read cooldown state."
        }
      ]
    },
    {
      "id": "tops.specimen.get",
      "domain": "tops",
      "summary": "Read this workspace's public trust page settings. `null` when nothing has ever been published.",
      "description_key": "actions.tops.specimen.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "settings.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.specimen.get",
      "examples": [
        {
          "input": {},
          "output": {
            "page": null
          },
          "note": "Nothing published."
        }
      ]
    },
    {
      "id": "tops.specimen.set",
      "domain": "tops",
      "summary": "Claim or rename the workspace's public handle, and turn the page on or off.",
      "description_key": "actions.tops.specimen.set.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "settings.edit_capabilities"
      ],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.specimen.set",
      "examples": [
        {
          "input": {
            "handle": "acme",
            "enabled": false
          },
          "output": {
            "page": {
              "handle": "acme",
              "enabled": false,
              "createdAt": "2026-09-03T00:00:00.000Z",
              "updatedAt": "2026-09-03T00:00:00.000Z"
            }
          },
          "note": "Claim the handle without publishing yet."
        }
      ]
    },
    {
      "id": "tops.specimen.delete",
      "domain": "tops",
      "summary": "Take the public page down and RELEASE the handle for anyone else to claim.",
      "description_key": "actions.tops.specimen.delete.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "settings.edit_capabilities"
      ],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/tops.specimen.delete",
      "examples": [
        {
          "input": {},
          "output": {
            "deleted": true
          },
          "note": "Unpublish."
        }
      ]
    },
    {
      "id": "referrals.code.get",
      "domain": "referrals",
      "summary": "Get your active referral code + share URL.",
      "description_key": "actions.referrals.code.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/referrals.code.get",
      "examples": [
        {
          "input": {},
          "output": {
            "code": "DEMO12",
            "shareUrl": "https://agined.com/?ref=DEMO12",
            "qrCodeDataUrl": "data:image/png;base64,...",
            "shareMessage": null
          },
          "note": "Read your referral code."
        }
      ]
    },
    {
      "id": "referrals.code.regenerate",
      "domain": "referrals",
      "summary": "Regenerate referral code. Old code stops working.",
      "description_key": "actions.referrals.code.regenerate.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/referrals.code.regenerate",
      "examples": [
        {
          "input": {},
          "output": {
            "code": "NEWCODE99"
          },
          "note": "Get a fresh referral code."
        }
      ]
    },
    {
      "id": "referrals.share-message.set",
      "domain": "referrals",
      "summary": "Set the message shared alongside your referral link.",
      "description_key": "actions.referrals.share-message.set.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/referrals.share-message.set",
      "examples": [
        {
          "input": {
            "message": "I use Agined to run my agents — sign up with my link."
          },
          "output": {
            "message": "I use Agined to run my agents — sign up with my link."
          },
          "note": "Replace your share message."
        }
      ]
    },
    {
      "id": "referrals.share.record",
      "domain": "referrals",
      "summary": "Record that you shared your referral link, and where.",
      "description_key": "actions.referrals.share.record.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/referrals.share.record",
      "examples": [
        {
          "input": {
            "channel": "slack"
          },
          "output": {
            "recorded": true,
            "channel": "slack"
          },
          "note": "Record a share to Slack."
        }
      ]
    },
    {
      "id": "referrals.list-sent",
      "domain": "referrals",
      "summary": "List referrals you have sent.",
      "description_key": "actions.referrals.list-sent.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/referrals.list-sent",
      "examples": [
        {
          "input": {},
          "output": {
            "referrals": [],
            "nextCursor": null
          },
          "note": "List sent referrals."
        }
      ]
    },
    {
      "id": "referrals.list-received",
      "domain": "referrals",
      "summary": "List referrals where you were the referee.",
      "description_key": "actions.referrals.list-received.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/referrals.list-received",
      "examples": [
        {
          "input": {},
          "output": {
            "referrals": [],
            "nextCursor": null
          },
          "note": "List received referrals."
        }
      ]
    },
    {
      "id": "referrals.balance.get",
      "domain": "referrals",
      "summary": "Get your current point balance + lifetime multiplier tier.",
      "description_key": "actions.referrals.balance.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/referrals.balance.get",
      "examples": [
        {
          "input": {},
          "output": {
            "pointBalance": 1500,
            "lifetimeMultiplier": 1.2,
            "nextMultiplierAt": 2500
          },
          "note": "Read point balance."
        }
      ]
    },
    {
      "id": "referrals.funnel.get",
      "domain": "referrals",
      "summary": "Get conversion funnel analytics (sent → clicked → joined → redeemed).",
      "description_key": "actions.referrals.funnel.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/referrals.funnel.get",
      "examples": [
        {
          "input": {},
          "output": {
            "sent": 50,
            "clicked": 30,
            "joined": 12,
            "redeemed": 8,
            "joinRate": 0.4,
            "redeemRate": 0.6667,
            "channelBreakdown": [
              {
                "channel": "slack",
                "sent": 30,
                "clicked": 20
              }
            ]
          },
          "note": "Read funnel."
        }
      ]
    },
    {
      "id": "referrals.redeem",
      "domain": "referrals",
      "summary": "Redeem a referral or voucher code.",
      "description_key": "actions.referrals.redeem.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/referrals.redeem",
      "examples": [
        {
          "input": {
            "code": "DEMO12"
          },
          "output": {
            "redeemed": true,
            "rewardKind": "points",
            "rewardValue": 1000
          },
          "note": "Redeem a code."
        }
      ]
    },
    {
      "id": "referrals.spend",
      "domain": "referrals",
      "summary": "Spend points on a reward (run pack, add-on credit, Every.org charity, etc.).",
      "description_key": "actions.referrals.spend.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/referrals.spend",
      "examples": [
        {
          "input": {
            "product": "every-org-charity",
            "pointAmount": 200,
            "metadata": {
              "charityId": "every:childrens-hospital"
            }
          },
          "output": {
            "spentAt": "2026-05-22T12:00:00.000Z",
            "transactionId": "tx_abc",
            "remainingBalance": 1300
          },
          "note": "Donate to charity."
        }
      ]
    },
    {
      "id": "referrals.spend-products.list",
      "domain": "referrals",
      "summary": "List the products you can redeem points against.",
      "description_key": "actions.referrals.spend-products.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/referrals.spend-products.list",
      "examples": [
        {
          "input": {},
          "output": {
            "products": [
              {
                "id": "every-org-charity",
                "label": "Charity donation via Every.org",
                "pointCost": 1,
                "description": "Donate to any Every.org charity at the cents-per-point rate."
              }
            ]
          },
          "note": "Discover spend products."
        }
      ]
    },
    {
      "id": "referrals.ledger.list",
      "domain": "referrals",
      "summary": "List point transactions (earned + spent).",
      "description_key": "actions.referrals.ledger.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/referrals.ledger.list",
      "examples": [
        {
          "input": {},
          "output": {
            "transactions": [],
            "nextCursor": null
          },
          "note": "Read point ledger."
        }
      ]
    },
    {
      "id": "number_one.conversation.create",
      "domain": "number_one",
      "summary": "Start a new Number One conversation.",
      "description_key": "actions.number_one.conversation.create.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.conversation.create",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "mode": "analyst",
            "title": "Q3 audit review"
          },
          "output": {
            "conversationId": "conv_demo0000000000A",
            "workspaceId": "ws_demo_default",
            "mode": "analyst",
            "title": "Q3 audit review",
            "startedAt": "2026-05-22T12:00:00.000Z",
            "lastActivityAt": "2026-05-22T12:00:00.000Z",
            "messageCount": 0,
            "preview": ""
          },
          "note": "Start a new conversation."
        }
      ]
    },
    {
      "id": "number_one.conversation.list",
      "domain": "number_one",
      "summary": "List your conversations (most recent first).",
      "description_key": "actions.number_one.conversation.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.conversation.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "conversations": [],
            "nextCursor": null
          },
          "note": "List conversations."
        }
      ]
    },
    {
      "id": "number_one.conversation.get",
      "domain": "number_one",
      "summary": "Get a conversation's metadata + recent messages.",
      "description_key": "actions.number_one.conversation.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.conversation.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "conversationId": "conv_demo0000000000A"
          },
          "output": {
            "conversation": {
              "conversationId": "conv_demo0000000000A",
              "workspaceId": "ws_demo_default",
              "mode": "analyst",
              "title": "Q3 audit review",
              "startedAt": "2026-05-22T12:00:00.000Z",
              "lastActivityAt": "2026-05-22T12:00:00.000Z",
              "messageCount": 0,
              "preview": ""
            },
            "messages": []
          },
          "note": "Read a conversation."
        }
      ]
    },
    {
      "id": "number_one.conversation.delete",
      "domain": "number_one",
      "summary": "Delete a conversation. Memory facts attached to it survive but lose conversation context.",
      "description_key": "actions.number_one.conversation.delete.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.conversation.delete",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "conversationId": "conv_demo0000000000A"
          },
          "output": {
            "deleted": true
          },
          "note": "Delete a conversation."
        }
      ]
    },
    {
      "id": "number_one.message.send",
      "domain": "number_one",
      "summary": "Send a user message in a Number One conversation. Returns the full buffered assistant turn.",
      "description_key": "actions.number_one.message.send.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.message.send",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "conversationId": "conv_demo0000000000A",
            "body": "What was my Tools usage last week?"
          },
          "output": {
            "sessionId": "conv_demo0000000000A",
            "assistantMessageId": "no_mem_demo0000000000A",
            "decision": "calculator",
            "assistantBody": "Your workspace ran 42 checks last week.",
            "contentOrigin": "computed",
            "quotaCostUnits": 1,
            "memory": {
              "usedBytes": 529,
              "capBytes": 52428800,
              "infinite": false,
              "capExceeded": false
            }
          },
          "note": "Send a message."
        }
      ]
    },
    {
      "id": "number_one.message.list",
      "domain": "number_one",
      "summary": "List messages in a conversation.",
      "description_key": "actions.number_one.message.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.message.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "conversationId": "conv_demo0000000000A"
          },
          "output": {
            "messages": [],
            "nextCursor": null
          },
          "note": "List messages."
        }
      ]
    },
    {
      "id": "number_one.mode.set",
      "domain": "number_one",
      "summary": "Switch a conversation's mode (Calculator / Analyst / Admin).",
      "description_key": "actions.number_one.mode.set.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.mode.set",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "conversationId": "conv_demo0000000000A",
            "mode": "admin"
          },
          "output": {
            "conversationId": "conv_demo0000000000A",
            "workspaceId": "ws_demo_default",
            "mode": "admin",
            "title": "Q3 audit review",
            "startedAt": "2026-05-22T12:00:00.000Z",
            "lastActivityAt": "2026-05-22T12:00:00.000Z",
            "messageCount": 5,
            "preview": "Done — 3 monitors active."
          },
          "note": "Switch to Admin mode (requires step-up auth)."
        }
      ]
    },
    {
      "id": "number_one.memory.list",
      "domain": "number_one",
      "summary": "List memory facts pinned in a workspace.",
      "description_key": "actions.number_one.memory.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.memory.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "facts": [],
            "nextCursor": null
          },
          "note": "List memory facts."
        }
      ]
    },
    {
      "id": "number_one.memory.pin",
      "domain": "number_one",
      "summary": "Pin a memory fact so Number One reliably recalls it across conversations. Pass factId to re-pin an existing fact, or text (optionally with conversationId provenance) to create + pin a new one.",
      "description_key": "actions.number_one.memory.pin.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.memory.pin",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "factId": "fact_demo0000000000A"
          },
          "output": {
            "factId": "fact_demo0000000000A",
            "workspaceId": "ws_demo_default",
            "text": "Q3 audit is led by Foo & Co LLP",
            "pinned": true,
            "learnedFrom": "user",
            "learnedAt": "2026-05-22T12:00:00.000Z",
            "reinforcedAt": "2026-05-23T09:00:00.000Z",
            "conversationId": null
          },
          "note": "Re-pin an existing fact."
        },
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "text": "Q3 audit is led by Foo & Co LLP",
            "conversationId": "conv_demo0000000000A"
          },
          "output": {
            "factId": "fact_demo0000000000B",
            "workspaceId": "ws_demo_default",
            "text": "Q3 audit is led by Foo & Co LLP",
            "pinned": true,
            "learnedFrom": "user",
            "learnedAt": "2026-05-22T12:00:00.000Z",
            "reinforcedAt": null,
            "conversationId": "conv_demo0000000000A"
          },
          "note": "Create + pin a new fact."
        }
      ]
    },
    {
      "id": "number_one.memory.unpin",
      "domain": "number_one",
      "summary": "Unpin a memory fact.",
      "description_key": "actions.number_one.memory.unpin.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.memory.unpin",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "factId": "fact_demo0000000000A"
          },
          "output": {
            "factId": "fact_demo0000000000A",
            "workspaceId": "ws_demo_default",
            "text": "Q3 audit is led by Foo & Co LLP",
            "pinned": false,
            "learnedFrom": "user",
            "learnedAt": "2026-05-22T12:00:00.000Z",
            "reinforcedAt": null,
            "conversationId": null
          },
          "note": "Unpin."
        }
      ]
    },
    {
      "id": "number_one.memory.erase",
      "domain": "number_one",
      "summary": "Permanently erase a memory-ledger turn's content (ADR-014 marker — the redaction cannot be undone). memoryId is a message id from message.list; pinned facts are managed via memory.unpin instead.",
      "description_key": "actions.number_one.memory.erase.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.memory.erase",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "memoryId": "no_mem_demo0000000000A"
          },
          "output": {
            "erased": true
          },
          "note": "Erase a remembered turn's content."
        }
      ]
    },
    {
      "id": "number_one.memory.cap.get",
      "domain": "number_one",
      "summary": "Get the workspace's memory usage + cap. The ledger is byte-capped (Z-07); capBytes is -1 when the Infinite Memory add-on is active.",
      "description_key": "actions.number_one.memory.cap.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.memory.cap.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "usedBytes": 529,
            "capBytes": 52428800,
            "infinite": false
          },
          "note": "Read memory usage + cap."
        }
      ]
    },
    {
      "id": "number_one.llm-billing.get",
      "domain": "number_one",
      "summary": "Read whether this workspace's Number One calls run on Agined's LLM key (metered) or on its own provider key (BYOK, not metered).",
      "description_key": "actions.number_one.llm-billing.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.llm-billing.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "mode": "agined_billed",
            "keyAvailable": false,
            "metered": true
          },
          "note": "Read the billing posture."
        }
      ]
    },
    {
      "id": "number_one.llm-billing.set",
      "domain": "number_one",
      "summary": "Choose whether this workspace's Number One calls run on Agined's LLM key (metered) or on its own provider key (BYOK, not metered).",
      "description_key": "actions.number_one.llm-billing.set.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "billing.change_plan"
      ],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.llm-billing.set",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "mode": "byok"
          },
          "output": {
            "mode": "byok",
            "keyAvailable": true,
            "metered": false
          },
          "note": "Run on our own key."
        }
      ]
    },
    {
      "id": "number_one.analyst.get",
      "domain": "number_one",
      "summary": "Read whether Analyst mode is enabled for this workspace.",
      "description_key": "actions.number_one.analyst.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.analyst.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "enabled": true
          },
          "note": "Is Analyst on?"
        }
      ]
    },
    {
      "id": "number_one.analyst.set",
      "domain": "number_one",
      "summary": "Turn Analyst mode on or off for everyone in this workspace.",
      "description_key": "actions.number_one.analyst.set.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [
        "settings.edit_capabilities"
      ],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.analyst.set",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "enabled": false
          },
          "output": {
            "enabled": false
          },
          "note": "Disable Analyst for the workspace."
        }
      ]
    },
    {
      "id": "number_one.assistant-posture.get",
      "domain": "number_one",
      "summary": "Read which posture the assistant runs in for this workspace — membrane-protected, in-boundary or off — and which model provider its calls go to.",
      "description_key": "actions.number_one.assistant-posture.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.assistant-posture.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "posture": "membrane-protected",
            "provider": null,
            "membraneKeyConfigured": true,
            "inBoundaryConfigured": false
          },
          "note": "Read the assistant posture."
        }
      ]
    },
    {
      "id": "number_one.assistant-posture.set",
      "domain": "number_one",
      "summary": "Choose the assistant's posture for this workspace, and which model provider its calls go to.",
      "description_key": "actions.number_one.assistant-posture.set.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [
        "settings.edit_capabilities"
      ],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/number_one.assistant-posture.set",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "posture": "off"
          },
          "output": {
            "posture": "off",
            "provider": null,
            "membraneKeyConfigured": true,
            "inBoundaryConfigured": false
          },
          "note": "Disable the assistant workspace-wide."
        }
      ]
    },
    {
      "id": "attestor.attest.agent-call",
      "domain": "attestor",
      "summary": "Issue an Attestor receipt for an agent.call primitive (outbound API call by a customer's agent).",
      "description_key": "actions.attestor.attest.agent-call.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "attestor.attest.agent-call"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.attest.agent-call",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "destination": "https://api.stripe.com/v1/charges",
            "method": "POST",
            "requestBodySha256": "abcd1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcd",
            "responseBodySha256": "abcd1234567890abcdef1234567890abcdef1234567890abcdef1234567890abce",
            "responseStatus": 200,
            "durationMs": 387,
            "agentId": "billing-bot",
            "purpose": "refund_processing"
          },
          "output": {
            "receiptId": "01H8X4P9R7Z2C1A1F2A8VBJYV2",
            "workspaceId": "ws_demo_default",
            "kind": "agent.call",
            "issuedAt": "2026-05-22T12:00:00.000Z",
            "signature": "...",
            "signatureKeyId": "attestor-2026-q2-enam",
            "body": {}
          },
          "note": "Attest an agent call."
        }
      ]
    },
    {
      "id": "attestor.attest.content",
      "domain": "attestor",
      "summary": "Attest a content blob (text, image hash, document). Returns a signed receipt.",
      "description_key": "actions.attestor.attest.content.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "attestor.attest.content"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.attest.content",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "contentSha256": "abcd1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcd",
            "contentType": "text/plain",
            "purpose": "marketing_copy_approval"
          },
          "output": {
            "receiptId": "01H8X4P9R7Z2C1A1F2A8VBJYV3",
            "workspaceId": "ws_demo_default",
            "kind": "content.attest",
            "issuedAt": "2026-05-22T12:00:00.000Z",
            "signature": "...",
            "signatureKeyId": "attestor-2026-q2-enam",
            "body": {}
          },
          "note": "Attest content."
        }
      ]
    },
    {
      "id": "attestor.attest.llm",
      "domain": "attestor",
      "summary": "Attest an LLM inference (model + prompt hash + response hash + provider).",
      "description_key": "actions.attestor.attest.llm.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "attestor.attest.llm"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.attest.llm",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "modelId": "claude-opus-4.7",
            "providerId": "anthropic",
            "promptSha256": "abcd1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcd",
            "responseSha256": "abcd1234567890abcdef1234567890abcdef1234567890abcdef1234567890abce",
            "latencyMs": 1500,
            "promptTokens": 1200,
            "completionTokens": 850
          },
          "output": {
            "receiptId": "01H8X4P9R7Z2C1A1F2A8VBJYV4",
            "workspaceId": "ws_demo_default",
            "kind": "llm.attest",
            "issuedAt": "2026-05-22T12:00:00.000Z",
            "signature": "...",
            "signatureKeyId": "attestor-2026-q2-enam",
            "body": {}
          },
          "note": "Attest LLM call."
        }
      ]
    },
    {
      "id": "attestor.attest.commit",
      "domain": "attestor",
      "summary": "Attest a Git commit (commit hash + author + repo URL). Pairs with the @attestor/attest-commit GitHub Action.",
      "description_key": "actions.attestor.attest.commit.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "attestor.attest.commit"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.attest.commit",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "commitSha": "abc1234567890abcdef1234567890abcdef1234567",
            "repoUrl": "https://github.com/example/repo",
            "author": "alice@example.com",
            "message": "Refactor billing service"
          },
          "output": {
            "receiptId": "01H8X4P9R7Z2C1A1F2A8VBJYV5",
            "workspaceId": "ws_demo_default",
            "kind": "commit.attest",
            "issuedAt": "2026-05-22T12:00:00.000Z",
            "signature": "...",
            "signatureKeyId": "attestor-2026-q2-enam",
            "body": {}
          },
          "note": "Attest a Git commit."
        }
      ]
    },
    {
      "id": "attestor.deliver.webhook",
      "domain": "attestor",
      "summary": "Issue a receipt for an outbound webhook delivery attempt.",
      "description_key": "actions.attestor.deliver.webhook.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "attestor.deliver.webhook"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.deliver.webhook",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "webhookId": "wh_abc",
            "destination": "https://example.com/webhook",
            "payloadSha256": "abcd1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcd",
            "statusCode": 200,
            "attemptNumber": 1
          },
          "output": {
            "receiptId": "01H8X4P9R7Z2C1A1F2A8VBJYV6",
            "workspaceId": "ws_demo_default",
            "kind": "webhook.deliver",
            "issuedAt": "2026-05-22T12:00:00.000Z",
            "signature": "...",
            "signatureKeyId": "attestor-2026-q2-enam",
            "body": {}
          },
          "note": "Attest webhook delivery."
        }
      ]
    },
    {
      "id": "attestor.monitor.http.add",
      "domain": "attestor",
      "summary": "Register a new HTTP monitor (1-minute minimum interval).",
      "description_key": "actions.attestor.monitor.http.add.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "attestor.monitors.create"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.monitor.http.add",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "url": "https://api.example.com/health",
            "intervalSeconds": 60
          },
          "output": {
            "monitorId": "mon_demo00000000000000000000",
            "workspaceId": "ws_demo_default",
            "url": "https://api.example.com/health",
            "method": "GET",
            "intervalSeconds": 60,
            "expectedStatusCodes": [
              200
            ],
            "enabled": true,
            "createdAt": "2026-05-22T12:00:00.000Z",
            "lastCheckAt": null
          },
          "note": "Register HTTP monitor."
        }
      ]
    },
    {
      "id": "attestor.monitor.http.list",
      "domain": "attestor",
      "summary": "List HTTP monitors in a workspace.",
      "description_key": "actions.attestor.monitor.http.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "attestor.monitors.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.monitor.http.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "monitors": [],
            "nextCursor": null
          },
          "note": "List monitors."
        }
      ]
    },
    {
      "id": "attestor.monitor.http.run-now",
      "domain": "attestor",
      "summary": "Run a monitor check immediately (bypasses the scheduled interval).",
      "description_key": "actions.attestor.monitor.http.run-now.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "attestor.monitors.create"
      ],
      "audit_kind": null,
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.monitor.http.run-now",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "monitorId": "mon_demo00000000000000000000"
          },
          "output": {
            "statusCode": 200,
            "latencyMs": 87,
            "receiptId": "01H8X4P9R7Z2C1A1F2A8VBJYV7"
          },
          "note": "Run a monitor check now."
        }
      ]
    },
    {
      "id": "attestor.monitor.http.remove",
      "domain": "attestor",
      "summary": "Delete an HTTP monitor.",
      "description_key": "actions.attestor.monitor.http.remove.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "attestor.monitors.delete"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.monitor.http.remove",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "monitorId": "mon_demo00000000000000000000"
          },
          "output": {
            "deleted": true
          },
          "note": "Delete monitor."
        }
      ]
    },
    {
      "id": "attestor.watch.dns.add",
      "domain": "attestor",
      "summary": "Register a DNS watch (detects record drift; signs every check as a receipt).",
      "description_key": "actions.attestor.watch.dns.add.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "attestor.dns.create"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.watch.dns.add",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "domain": "example.com",
            "recordType": "A"
          },
          "output": {
            "dnsWatchId": "dnsw_demo00000000000000000000",
            "workspaceId": "ws_demo_default",
            "domain": "example.com",
            "recordType": "A",
            "intervalSeconds": 3600,
            "enabled": true
          },
          "note": "Register DNS watch."
        }
      ]
    },
    {
      "id": "attestor.watch.dns.list",
      "domain": "attestor",
      "summary": "List DNS watches in a workspace.",
      "description_key": "actions.attestor.watch.dns.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "attestor.dns.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.watch.dns.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "watches": [],
            "nextCursor": null
          },
          "note": "List DNS watches."
        }
      ]
    },
    {
      "id": "attestor.watch.dns.remove",
      "domain": "attestor",
      "summary": "Delete a DNS watch.",
      "description_key": "actions.attestor.watch.dns.remove.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "attestor.dns.delete"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.watch.dns.remove",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "dnsWatchId": "dnsw_demo00000000000000000000"
          },
          "output": {
            "deleted": true
          },
          "note": "Delete DNS watch."
        }
      ]
    },
    {
      "id": "attestor.watch.tls.add",
      "domain": "attestor",
      "summary": "Register a TLS certificate watch (detects cert changes; signs every check).",
      "description_key": "actions.attestor.watch.tls.add.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "attestor.tls.create"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.watch.tls.add",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "host": "example.com"
          },
          "output": {
            "tlsWatchId": "tlsw_demo00000000000000000000",
            "workspaceId": "ws_demo_default",
            "host": "example.com",
            "port": 443,
            "intervalSeconds": 3600,
            "enabled": true
          },
          "note": "Register TLS watch."
        }
      ]
    },
    {
      "id": "attestor.watch.tls.list",
      "domain": "attestor",
      "summary": "List TLS watches in a workspace.",
      "description_key": "actions.attestor.watch.tls.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "attestor.tls.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.watch.tls.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "watches": [],
            "nextCursor": null
          },
          "note": "List TLS watches."
        }
      ]
    },
    {
      "id": "attestor.watch.tls.remove",
      "domain": "attestor",
      "summary": "Delete a TLS watch.",
      "description_key": "actions.attestor.watch.tls.remove.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "attestor.tls.delete"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.watch.tls.remove",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "tlsWatchId": "tlsw_demo00000000000000000000"
          },
          "output": {
            "deleted": true
          },
          "note": "Delete TLS watch."
        }
      ]
    },
    {
      "id": "attestor.receipt.list",
      "domain": "attestor",
      "summary": "List Attestor receipts for a workspace.",
      "description_key": "actions.attestor.receipt.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "attestor.receipts.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.receipt.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "kind": "agent.call"
          },
          "output": {
            "receipts": [],
            "nextCursor": null
          },
          "note": "List receipts."
        }
      ]
    },
    {
      "id": "attestor.receipt.get",
      "domain": "attestor",
      "summary": "Get a single receipt with full body.",
      "description_key": "actions.attestor.receipt.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "attestor.receipts.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.receipt.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "receiptId": "01H8X4P9R7Z2C1A1F2A8VBJYV2"
          },
          "output": {
            "receiptId": "01H8X4P9R7Z2C1A1F2A8VBJYV2",
            "workspaceId": "ws_demo_default",
            "kind": "agent.call",
            "issuedAt": "2026-05-22T12:00:00.000Z",
            "signature": "...",
            "signatureKeyId": "attestor-2026-q2-enam",
            "body": {}
          },
          "note": "Read a receipt."
        }
      ]
    },
    {
      "id": "attestor.receipt.verify",
      "domain": "attestor",
      "summary": "Verify a receipt's Ed25519 signature against the published public key. Cannot be disabled.",
      "description_key": "actions.attestor.receipt.verify.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.receipt.verify",
      "examples": [
        {
          "input": {
            "receipt": {
              "receiptId": "01H8X4P9R7Z2C1A1F2A8VBJYV2",
              "workspaceId": "ws_demo_default",
              "kind": "agent.call",
              "issuedAt": "2026-05-22T12:00:00.000Z",
              "signature": "...",
              "signatureKeyId": "attestor-2026-q2-enam",
              "body": {}
            }
          },
          "output": {
            "valid": true,
            "signatureValid": true,
            "publishedKeyUrl": "https://agined.com/.well-known/attestor-keys.json",
            "errors": []
          },
          "note": "Verify a receipt."
        }
      ]
    },
    {
      "id": "attestor.usage.current",
      "domain": "attestor",
      "summary": "Get current-period Attestor usage for a workspace (calls per primitive + budget consumed).",
      "description_key": "actions.attestor.usage.current.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "attestor.usage.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.usage.current",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "totalCalls": 12345,
            "perPrimitive": {
              "agent.call": 10000,
              "content.attest": 2345
            },
            "monthlyAllowance": 100000,
            "periodEnd": "2026-06-01T00:00:00.000Z"
          },
          "note": "Read current usage."
        }
      ]
    },
    {
      "id": "attestor.usage.historical",
      "domain": "attestor",
      "summary": "Get historical Attestor usage (per-day breakdown for a date range).",
      "description_key": "actions.attestor.usage.historical.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "attestor.usage.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.usage.historical",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "since": "2026-05-01T00:00:00.000Z"
          },
          "output": {
            "daily": []
          },
          "note": "Read historical usage."
        }
      ]
    },
    {
      "id": "attestor.subscription.get",
      "domain": "attestor",
      "summary": "Get workspace Attestor subscription state.",
      "description_key": "actions.attestor.subscription.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "attestor.subscription.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.subscription.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "enabled": true,
            "tier": "team",
            "abuseStatus": "clean",
            "autoOverageEnabled": true,
            "billingMode": "combined"
          },
          "note": "Read subscription state."
        }
      ]
    },
    {
      "id": "attestor.subscription.cancel",
      "domain": "attestor",
      "summary": "Cancel the Attestor subscription at the next billing period. Workspace's existing receipts remain accessible.",
      "description_key": "actions.attestor.subscription.cancel.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "billing.change_plan"
      ],
      "audit_kind": "plan.changed",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.subscription.cancel",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "reason": "Migrating to alternative receipt provider"
          },
          "output": {
            "canceled": true,
            "effectiveAt": "2026-06-22T00:00:00.000Z"
          },
          "note": "Cancel Attestor subscription."
        }
      ]
    },
    {
      "id": "attestor.abuse-status.get",
      "domain": "attestor",
      "summary": "Get the current Attestor abuse status for a workspace.",
      "description_key": "actions.attestor.abuse-status.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "attestor.abuse.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.abuse-status.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "workspaceId": "ws_demo_default",
            "status": "clean",
            "flaggedAt": null,
            "suspendedAt": null,
            "reason": null
          },
          "note": "Read abuse status."
        }
      ]
    },
    {
      "id": "attestor.abuse-status.appeal",
      "domain": "attestor",
      "summary": "Submit an appeal against an abuse-status flag or suspension.",
      "description_key": "actions.attestor.abuse-status.appeal.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "attestor.abuse.appeal"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.abuse-status.appeal",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "appealText": "Our agent's traffic spike was a planned load test; here are the details + timestamps + IP CIDRs ..."
          },
          "output": {
            "appealId": "app_abc",
            "submittedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Submit abuse appeal."
        }
      ]
    },
    {
      "id": "attestor.signing-key.get",
      "domain": "attestor",
      "summary": "Get the current active Attestor signing key id for the workspace's jurisdiction.",
      "description_key": "actions.attestor.signing-key.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "attestor.subscription.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.signing-key.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "signingKeyId": "attestor-2026-q2-enam",
            "jurisdiction": "ENAM",
            "issuedAt": "2026-04-01T00:00:00.000Z",
            "expiresAt": "2027-04-01T00:00:00.000Z",
            "publishedAtUrl": "https://agined.com/.well-known/attestor-keys.json"
          },
          "note": "Read signing key id."
        }
      ]
    },
    {
      "id": "attestor.signing-key.list",
      "domain": "attestor",
      "summary": "List all signing keys (active + historical) usable to verify the workspace's receipts.",
      "description_key": "actions.attestor.signing-key.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "attestor.subscription.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.signing-key.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "keys": [
              {
                "signingKeyId": "attestor-2026-q2-enam",
                "jurisdiction": "ENAM",
                "issuedAt": "2026-04-01T00:00:00.000Z",
                "expiresAt": "2027-04-01T00:00:00.000Z",
                "active": true
              }
            ]
          },
          "note": "List signing keys."
        }
      ]
    },
    {
      "id": "attestor.signing-key.rotate-request",
      "domain": "attestor",
      "summary": "Request signing-key rotation (Enterprise tier dedicated keys only). Agined ops fulfils via key ceremony.",
      "description_key": "actions.attestor.signing-key.rotate-request.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "attestor.subscription.view"
      ],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.signing-key.rotate-request",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "reason": "Q4 scheduled rotation per our internal policy"
          },
          "output": {
            "requestId": "rot_abc",
            "estimatedRotationAt": "2026-06-01T00:00:00.000Z"
          },
          "note": "Request key rotation."
        }
      ]
    },
    {
      "id": "attestor.signing-key.public.get",
      "domain": "attestor",
      "summary": "Get the public-key JWK for a specific signing key id (for offline verification).",
      "description_key": "actions.attestor.signing-key.public.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.signing-key.public.get",
      "examples": [
        {
          "input": {
            "signingKeyId": "attestor-2026-q2-enam"
          },
          "output": {
            "jwk": {
              "kty": "OKP",
              "crv": "Ed25519",
              "x": "..."
            },
            "issuedAt": "2026-04-01T00:00:00.000Z",
            "expiresAt": "2027-04-01T00:00:00.000Z"
          },
          "note": "Read public key JWK."
        }
      ]
    },
    {
      "id": "attestor.status.get",
      "domain": "attestor",
      "summary": "Get the Attestor subsystem health (per-jurisdiction Worker uptime, per-primitive error rate, last self-attestation receipt).",
      "description_key": "actions.attestor.status.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "attestor.subscription.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.status.get",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "jurisdictions": [
              {
                "id": "ENAM",
                "uptimePercent": 99.95,
                "errorRatePercent": 0.02,
                "lastSelfAttestationAt": "2026-05-22T11:00:00.000Z"
              }
            ]
          },
          "note": "Read Attestor health."
        }
      ]
    },
    {
      "id": "attestor.attestation-feed.get",
      "domain": "attestor",
      "summary": "Get the daily Attestor self-attestation receipt feed (Agined attesting to its own platform integrity).",
      "description_key": "actions.attestor.attestation-feed.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/attestor.attestation-feed.get",
      "examples": [
        {
          "input": {},
          "output": {
            "attestations": []
          },
          "note": "Read self-attestation feed."
        }
      ]
    },
    {
      "id": "starfleet.run",
      "domain": "starfleet",
      "summary": "Post a run to a Starfleet spot actor (witness/council/historian/custodian/conscience/…) — observe + decide + anchor it in the workspace hash-chain.",
      "description_key": "actions.starfleet.run.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/starfleet.run",
      "examples": [
        {
          "input": {
            "version": "v1",
            "actor": "witness",
            "agentDid": "did:web:example.com:agent:billing",
            "input": {
              "task": "refund",
              "amount": 4200
            }
          },
          "output": {
            "status": "ok",
            "receipt": {
              "runId": "run_abc"
            }
          },
          "note": "Witness a billing-agent run."
        }
      ]
    },
    {
      "id": "starfleet.runs.list",
      "domain": "starfleet",
      "summary": "List the workspace's Starfleet runs (actor IS the surface: witness | historian | custodian | conscience | …).",
      "description_key": "actions.starfleet.runs.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/starfleet.runs.list",
      "examples": [
        {
          "input": {
            "actor": "witness",
            "limit": 20
          },
          "output": {
            "runs": [],
            "count": 0
          },
          "note": "Recent witness runs."
        }
      ]
    },
    {
      "id": "starfleet.actors.list",
      "domain": "starfleet",
      "summary": "List the Starfleet roster (optionally for one version) with each actor's min tier.",
      "description_key": "actions.starfleet.actors.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/starfleet.actors.list",
      "examples": [
        {
          "input": {
            "version": "v1"
          },
          "output": {
            "actors": [
              {
                "id": "witness",
                "version": "v1",
                "minTier": "free"
              }
            ]
          },
          "note": "Discover v1 actors."
        }
      ]
    },
    {
      "id": "starfleet.agents.list",
      "domain": "starfleet",
      "summary": "List the workspace's posting agents (distinct agent DIDs across runs, with counts + last-seen).",
      "description_key": "actions.starfleet.agents.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/starfleet.agents.list",
      "examples": [
        {
          "input": {},
          "output": {
            "agents": [],
            "count": 0
          },
          "note": "Who's posting runs."
        }
      ]
    },
    {
      "id": "starfleet.runs.verify-chain",
      "domain": "starfleet",
      "summary": "Verify the integrity of the workspace's run hash-chain from a starting sequence.",
      "description_key": "actions.starfleet.runs.verify-chain.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/starfleet.runs.verify-chain",
      "examples": [
        {
          "input": {
            "from": 1
          },
          "output": {
            "ok": true
          },
          "note": "Prove the chain is intact."
        }
      ]
    },
    {
      "id": "starfleet.runs.diff",
      "domain": "starfleet",
      "summary": "Compare two Starfleet runs (classification + payload diff).",
      "description_key": "actions.starfleet.runs.diff.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/starfleet.runs.diff",
      "examples": [
        {
          "input": {
            "a": "run_abc",
            "b": "run_def"
          },
          "output": {
            "ok": true
          },
          "note": "Diff two runs."
        }
      ]
    },
    {
      "id": "starfleet.runs.replay",
      "domain": "starfleet",
      "summary": "Reconstruct + re-verify a single run from its chain entry.",
      "description_key": "actions.starfleet.runs.replay.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/starfleet.runs.replay",
      "examples": [
        {
          "input": {
            "runId": "run_abc"
          },
          "output": {
            "ok": true,
            "found": true
          },
          "note": "Replay a run."
        }
      ]
    },
    {
      "id": "ledger-bundles.snapshot.create",
      "domain": "ledger-bundles",
      "summary": "Create a signed LedgerBundles snapshot of the workspace's audit state (a paid action).",
      "description_key": "actions.ledger-bundles.snapshot.create.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/ledger-bundles.snapshot.create",
      "examples": [
        {
          "input": {
            "scope": "month-end"
          },
          "output": {},
          "note": "Seal a signed snapshot."
        }
      ]
    },
    {
      "id": "ledger-bundles.verify-chain",
      "domain": "ledger-bundles",
      "summary": "Verify the LedgerBundles transparency chain (free — a transparency guarantee).",
      "description_key": "actions.ledger-bundles.verify-chain.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/ledger-bundles.verify-chain",
      "examples": [
        {
          "input": {},
          "output": {},
          "note": "Prove the chain is intact."
        }
      ]
    },
    {
      "id": "ledger-bundles.anchors.list",
      "domain": "ledger-bundles",
      "summary": "List the LedgerBundles anchors (the published chain checkpoints).",
      "description_key": "actions.ledger-bundles.anchors.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/ledger-bundles.anchors.list",
      "examples": [
        {
          "input": {},
          "output": {},
          "note": "List anchors."
        }
      ]
    },
    {
      "id": "privacy.dsr.submit",
      "domain": "privacy",
      "summary": "Submit a data-subject request (GDPR / CCPA). Cannot be disabled — statutory right.",
      "description_key": "actions.privacy.dsr.submit.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "admin.action",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/privacy.dsr.submit",
      "examples": [
        {
          "input": {
            "kind": "access",
            "subjectEmail": "alice@example.com"
          },
          "output": {
            "dsrId": "dsr_abc",
            "kind": "access",
            "subjectEmail": "alice@example.com",
            "submittedAt": "2026-05-22T12:00:00.000Z",
            "status": "received",
            "completedAt": null
          },
          "note": "File an Art. 15 access request."
        }
      ]
    },
    {
      "id": "privacy.dsr.status",
      "domain": "privacy",
      "summary": "Check status of a submitted DSR. Cannot be disabled — statutory right.",
      "description_key": "actions.privacy.dsr.status.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/privacy.dsr.status",
      "examples": [
        {
          "input": {
            "dsrId": "dsr_abc"
          },
          "output": {
            "dsrId": "dsr_abc",
            "kind": "access",
            "subjectEmail": "alice@example.com",
            "submittedAt": "2026-05-22T12:00:00.000Z",
            "status": "in-progress",
            "completedAt": null
          },
          "note": "Status check."
        }
      ]
    },
    {
      "id": "privacy.dsr.list",
      "domain": "privacy",
      "summary": "List all DSRs filed for this account / workspace.",
      "description_key": "actions.privacy.dsr.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/privacy.dsr.list",
      "examples": [
        {
          "input": {
            "limit": 25
          },
          "output": {
            "dsrs": [],
            "nextCursor": null
          },
          "note": "List your filed DSRs."
        }
      ]
    },
    {
      "id": "privacy.export.request",
      "domain": "privacy",
      "summary": "Request a personal-data export (GDPR Art. 20 — data portability). Cannot be disabled.",
      "description_key": "actions.privacy.export.request.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "export.requested",
      "rate_class": "expensive",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/privacy.export.request",
      "examples": [
        {
          "input": {
            "format": "portable-archive"
          },
          "output": {
            "exportId": "exp_pii_abc",
            "estimatedReadyAt": "2026-05-22T13:00:00.000Z",
            "format": "portable-archive"
          },
          "note": "Art. 20 portability export."
        }
      ]
    },
    {
      "id": "privacy.export.download",
      "domain": "privacy",
      "summary": "Get a signed download URL for a completed personal-data export.",
      "description_key": "actions.privacy.export.download.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "export.completed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/privacy.export.download",
      "examples": [
        {
          "input": {
            "exportId": "exp_pii_abc"
          },
          "output": {
            "url": "https://r2.agined.com/exports/abc",
            "expiresAt": "2026-05-22T13:30:00.000Z",
            "sha256": "abcd..."
          },
          "note": "Download your export."
        }
      ]
    },
    {
      "id": "privacy.subject-rights.list",
      "domain": "privacy",
      "summary": "List the data-subject rights Agined honours (GDPR, CCPA, LGPD) + the legal references.",
      "description_key": "actions.privacy.subject-rights.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/privacy.subject-rights.list",
      "examples": [
        {
          "input": {},
          "output": {
            "rights": [
              {
                "kind": "access",
                "legalRef": "GDPR Art. 15",
                "description": "Right to access your personal data."
              }
            ]
          },
          "note": "Read supported rights."
        }
      ]
    },
    {
      "id": "support.tickets.list",
      "domain": "support",
      "summary": "List your support tickets.",
      "description_key": "actions.support.tickets.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/support.tickets.list",
      "examples": [
        {
          "input": {
            "limit": 25
          },
          "output": {
            "tickets": [],
            "nextCursor": null
          },
          "note": "List your tickets."
        }
      ]
    },
    {
      "id": "support.tickets.create",
      "domain": "support",
      "summary": "Open a new support ticket.",
      "description_key": "actions.support.tickets.create.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/support.tickets.create",
      "examples": [
        {
          "input": {
            "subject": "Issue with Tools receipt verification",
            "body": "Hi — I'm seeing a signature_invalid error when verifying receipts from workspace ws_X. Could you take a look?",
            "priority": "medium"
          },
          "output": {
            "ticketId": "tkt_abc",
            "subject": "Issue with Tools receipt verification",
            "status": "open",
            "priority": "medium",
            "createdAt": "2026-05-22T12:00:00.000Z",
            "updatedAt": "2026-05-22T12:00:00.000Z",
            "resolvedAt": null
          },
          "note": "Open a new ticket."
        }
      ]
    },
    {
      "id": "support.tickets.get",
      "domain": "support",
      "summary": "Get a ticket's details + reply thread.",
      "description_key": "actions.support.tickets.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/support.tickets.get",
      "examples": [
        {
          "input": {
            "ticketId": "tkt_abc"
          },
          "output": {
            "ticket": {
              "ticketId": "tkt_abc",
              "subject": "Issue",
              "status": "open",
              "priority": "medium",
              "createdAt": "2026-05-22T12:00:00.000Z",
              "updatedAt": "2026-05-22T12:00:00.000Z",
              "resolvedAt": null
            },
            "replies": []
          },
          "note": "Read ticket + thread."
        }
      ]
    },
    {
      "id": "support.tickets.reply",
      "domain": "support",
      "summary": "Post a reply to a ticket.",
      "description_key": "actions.support.tickets.reply.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/support.tickets.reply",
      "examples": [
        {
          "input": {
            "ticketId": "tkt_abc",
            "body": "Thanks — here's the receipt hash …"
          },
          "output": {
            "replyId": "rep_abc",
            "ticketId": "tkt_abc",
            "author": "customer",
            "body": "Thanks — here's the receipt hash …",
            "createdAt": "2026-05-22T12:05:00.000Z"
          },
          "note": "Reply to a ticket."
        }
      ]
    },
    {
      "id": "support.tickets.close",
      "domain": "support",
      "summary": "Close a ticket (optionally with a reason).",
      "description_key": "actions.support.tickets.close.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/support.tickets.close",
      "examples": [
        {
          "input": {
            "ticketId": "tkt_abc"
          },
          "output": {
            "ticketId": "tkt_abc",
            "subject": "Issue",
            "status": "closed",
            "priority": "medium",
            "createdAt": "2026-05-22T12:00:00.000Z",
            "updatedAt": "2026-05-22T12:10:00.000Z",
            "resolvedAt": "2026-05-22T12:10:00.000Z"
          },
          "note": "Close a ticket."
        }
      ]
    },
    {
      "id": "support.satisfaction.rate",
      "domain": "support",
      "summary": "Rate the support experience after a ticket closes — five dimensions, 1–5 each (ADR-034). A 2-or-below on any dimension triggers the feedback loop.",
      "description_key": "actions.support.satisfaction.rate.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/support.satisfaction.rate",
      "examples": [
        {
          "input": {
            "ticketId": "tkt_abc",
            "speed": 5,
            "knowledge": 5,
            "friendliness": 5,
            "followThrough": 5,
            "outcome": 5
          },
          "output": {
            "recorded": true,
            "rebuildTriggered": false
          },
          "note": "Rate support 5/5 across the board."
        }
      ]
    },
    {
      "id": "discovery.capabilities.get",
      "domain": "discovery",
      "summary": "Get the full action registry catalogue (machine-readable). Same content as `/api/v1/actions.json`.",
      "description_key": "actions.discovery.capabilities.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/discovery.capabilities.get",
      "examples": [
        {
          "input": {},
          "output": {
            "actions": [],
            "generatedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Discover all actions."
        }
      ]
    },
    {
      "id": "discovery.version.get",
      "domain": "discovery",
      "summary": "Get the platform version + contracts package version + supported MCP / OpenAPI spec versions.",
      "description_key": "actions.discovery.version.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/discovery.version.get",
      "examples": [
        {
          "input": {},
          "output": {
            "platform": "agined/1.0.0",
            "contracts": "0.1.23",
            "mcpSpecVersion": "2025-06-18",
            "openapiVersion": "3.1.0",
            "asyncapiVersion": "3.0.0"
          },
          "note": "Read all version + spec info."
        }
      ]
    },
    {
      "id": "discovery.schema.get",
      "domain": "discovery",
      "summary": "Get the JSON Schema for a specific action's input or output.",
      "description_key": "actions.discovery.schema.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/discovery.schema.get",
      "examples": [
        {
          "input": {
            "actionId": "workspace.create",
            "shape": "input"
          },
          "output": {
            "schema": {}
          },
          "note": "Get an action's JSON Schema."
        }
      ]
    },
    {
      "id": "discovery.locales.list",
      "domain": "discovery",
      "summary": "List supported user-facing locales.",
      "description_key": "actions.discovery.locales.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/discovery.locales.list",
      "examples": [
        {
          "input": {},
          "output": {
            "locales": [
              {
                "id": "en",
                "name": "English",
                "nativeName": "English"
              },
              {
                "id": "de",
                "name": "German",
                "nativeName": "Deutsch"
              }
            ]
          },
          "note": "Six supported locales."
        }
      ]
    },
    {
      "id": "discovery.plans.list",
      "domain": "discovery",
      "summary": "List the available Agined + Tools subscription plans.",
      "description_key": "actions.discovery.plans.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/discovery.plans.list",
      "examples": [
        {
          "input": {
            "product": "all"
          },
          "output": {
            "plans": [
              {
                "id": "free",
                "product": "agined",
                "name": "Free",
                "priceUsdMinor": 0,
                "features": [
                  "1 workspace",
                  "1k runs/mo"
                ]
              }
            ]
          },
          "note": "List all plans."
        }
      ]
    },
    {
      "id": "discovery.regions.list",
      "domain": "discovery",
      "summary": "List the 32 data-residency regions a workspace can be bound to.",
      "description_key": "actions.discovery.regions.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/discovery.regions.list",
      "examples": [
        {
          "input": {},
          "output": {
            "regions": [
              {
                "id": "cloudflare-d1:weur",
                "provider": "cloudflare-d1",
                "label": "Western Europe",
                "countryCode": "DE",
                "euJurisdictionBound": true
              }
            ]
          },
          "note": "List all 32 regions (6 Cloudflare + 26 AWS Aurora)."
        }
      ]
    },
    {
      "id": "discovery.confirmation.token.verify",
      "domain": "discovery",
      "summary": "Verify a confirmation token is well-formed + still valid (cannot be disabled — safety floor).",
      "description_key": "actions.discovery.confirmation.token.verify.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/discovery.confirmation.token.verify",
      "examples": [
        {
          "input": {
            "token": "..."
          },
          "output": {
            "valid": true,
            "actionId": "workspace.delete.schedule",
            "expiresAt": "2026-05-22T12:01:00.000Z"
          },
          "note": "Verify confirmation token."
        }
      ]
    },
    {
      "id": "agents.identity.enroll",
      "domain": "agents",
      "summary": "Enroll a new W3C DID Web agent identity under your principal.",
      "description_key": "actions.agents.identity.enroll.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "agents.create"
      ],
      "audit_kind": "agent.identity.enrolled",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.identity.enroll",
      "examples": [
        {
          "input": {
            "displayName": "GitHub Actions release attestor",
            "scopeKind": "workspace",
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "did": "did:web:agined.com:agents:ws_demo_default:abc",
            "documentUrl": "https://agined.com/.well-known/agents/ws_demo_default/abc/did.json",
            "enrollmentCredential": null,
            "privateKeyRecoveryEnvelope": null,
            "createdAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Enroll a workspace-scoped agent DID for CI signing. One-time secrets are minted by rotate, not enroll."
        }
      ]
    },
    {
      "id": "agents.identity.list",
      "domain": "agents",
      "summary": "List enrolled agent DIDs visible to the principal.",
      "description_key": "actions.agents.identity.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "agents.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.identity.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "agents": [],
            "nextCursor": null
          },
          "note": "List workspace-scoped agents."
        }
      ]
    },
    {
      "id": "agents.identity.get",
      "domain": "agents",
      "summary": "Get one enrolled agent DID with full document + rotation history.",
      "description_key": "actions.agents.identity.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "agents.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.identity.get",
      "examples": [
        {
          "input": {
            "did": "did:web:agined.com:agents:ws_demo_default:abc"
          },
          "output": {
            "record": {
              "did": "did:web:agined.com:agents:ws_demo_default:abc",
              "displayName": "GitHub Actions release attestor",
              "description": null,
              "scopeKind": "workspace",
              "workspaceId": "ws_demo_default",
              "organizationId": null,
              "alg": "EdDSA",
              "activeMethodId": "did:web:agined.com:agents:ws_demo_default:abc#key-1",
              "enrolledAt": "2026-05-22T12:00:00.000Z",
              "deactivatedAt": null,
              "lastSeenAt": null,
              "rotationsCount": 0,
              "lastTrustBundleSignedAt": null
            },
            "document": {},
            "rotationHistory": []
          },
          "note": "Read one agent DID."
        }
      ]
    },
    {
      "id": "agents.identity.rotate",
      "domain": "agents",
      "summary": "Rotate the signing key for an agent DID. Old key kept active for a cooldown period.",
      "description_key": "actions.agents.identity.rotate.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "agents.create"
      ],
      "audit_kind": "agent.identity.rotated",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.identity.rotate",
      "examples": [
        {
          "input": {
            "did": "did:web:agined.com:agents:ws_demo_default:abc",
            "reason": "scheduled"
          },
          "output": {
            "did": "did:web:agined.com:agents:ws_demo_default:abc",
            "newMethodId": "did:web:agined.com:agents:ws_demo_default:abc#key-2",
            "oldMethodRetiresAt": "2026-05-22T13:00:00.000Z",
            "privateKeyRecoveryEnvelope": "v1:AES-256-GCM:…"
          },
          "note": "Quarterly key rotation."
        }
      ]
    },
    {
      "id": "agents.identity.revoke",
      "domain": "agents",
      "summary": "Permanently revoke an agent DID. Cannot be undone; the DID id cannot be re-enrolled.",
      "description_key": "actions.agents.identity.revoke.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "agents.delete"
      ],
      "audit_kind": "agent.identity.revoked",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.identity.revoke",
      "examples": [
        {
          "input": {
            "did": "did:web:agined.com:agents:ws_demo_default:abc",
            "reason": "compromise",
            "irreversibleAcknowledged": true
          },
          "output": {
            "did": "did:web:agined.com:agents:ws_demo_default:abc",
            "deactivatedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Compromise-recovery revoke."
        }
      ]
    },
    {
      "id": "agents.identity.did.resolve",
      "domain": "agents",
      "summary": "Resolve any DID (did:web, did:key, did:peer) and return the resolution result envelope.",
      "description_key": "actions.agents.identity.did.resolve.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.identity.did.resolve",
      "examples": [
        {
          "input": {
            "did": "did:web:agined.com:agents:mandate-issuer"
          },
          "output": {
            "didDocument": {
              "id": "did:web:agined.com:agents:mandate-issuer"
            },
            "didResolutionMetadata": {
              "resolutionSource": "live",
              "resolvedAt": "2026-05-22T12:00:00.000Z"
            },
            "didDocumentMetadata": {}
          },
          "note": "Resolve a DID to its document."
        }
      ]
    },
    {
      "id": "agents.identity.delegate",
      "domain": "agents",
      "summary": "Issue an A2A delegation token granting a remote partner DID a scope subset on your behalf.",
      "description_key": "actions.agents.identity.delegate.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "agents.create"
      ],
      "audit_kind": "agent.delegation.issued",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.identity.delegate",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "fromAgentDid": "did:web:agined.com:agents:ws_demo_default:abc",
            "toRemoteDid": "did:web:partner.example.com:agents:bot",
            "scopes": [
              "read:audit"
            ],
            "validForDays": 7,
            "purposeReason": "Partner integration handoff"
          },
          "output": {
            "delegationVcSerialized": "eyJhbGciOiJFZERTQSJ9…",
            "delegationHandle": "delg_demo00000000000000000000",
            "expiresAt": "2026-05-29T12:00:00.000Z"
          },
          "note": "Issue A2A delegation."
        }
      ]
    },
    {
      "id": "agents.identity.delegate.revoke",
      "domain": "agents",
      "summary": "Revoke an A2A delegation. Flips its bit in the published BitstringStatusList.",
      "description_key": "actions.agents.identity.delegate.revoke.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "agents.delete"
      ],
      "audit_kind": "agent.delegation.revoked",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.identity.delegate.revoke",
      "examples": [
        {
          "input": {
            "delegationHandle": "delg_demo00000000000000000000",
            "reason": "Partner integration ended"
          },
          "output": {
            "revokedAt": "2026-05-22T12:00:00.000Z",
            "listRevocable": true
          },
          "note": "Revoke an A2A delegation."
        }
      ]
    },
    {
      "id": "agents.identity.delegate.verify",
      "domain": "agents",
      "summary": "Verify a presented A2A delegation credential. Returns ok, or a structured reason.",
      "description_key": "actions.agents.identity.delegate.verify.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.identity.delegate.verify",
      "examples": [
        {
          "input": {
            "presentationSerialized": "eyJhbGciOiJFZERTQSJ9…",
            "requestedScope": "read:audit"
          },
          "output": {
            "ok": true,
            "delegationHandle": "delg_demo00000000000000000000",
            "vcId": "urn:uuid:0000",
            "fromAgentDid": "did:web:agined.com:agents:ws_demo_default:abc",
            "toRemoteDid": "did:web:partner.example.com:agents:bot",
            "scopes": [
              "read:audit"
            ],
            "expiresAt": "2026-05-29T12:00:00.000Z",
            "revocationChecked": true
          },
          "note": "Verify a presented A2A delegation."
        }
      ]
    },
    {
      "id": "agents.identity.authority.get",
      "domain": "agents",
      "summary": "Resolve who an agent acts on behalf of, from verified identity rather than operator configuration.",
      "description_key": "actions.agents.identity.authority.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "agents.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.identity.authority.get",
      "examples": [
        {
          "input": {
            "agentDid": "did:web:agined.com:agents:ws_demo_default:abc"
          },
          "output": {
            "agentDid": "did:web:agined.com:agents:ws_demo_default:abc",
            "confidence": "verified",
            "grade": "tenant-attested",
            "principal": "did:web:agined.com:workspaces:ws_demo_default",
            "source": "ap2-mandate",
            "basis": "A mandate signed by the workspace principal names this agent.",
            "reliedOn": [
              "Art. 50(1)",
              "Art. 50(1) — on-whose-behalf element"
            ],
            "competingPrincipals": [],
            "evidence": [
              {
                "source": "ap2-mandate",
                "principal": "did:web:agined.com:workspaces:ws_demo_default",
                "verified": true
              }
            ]
          },
          "note": "Resolve the on-whose-behalf value."
        }
      ]
    },
    {
      "id": "agents.mandate.issue",
      "domain": "agents",
      "summary": "Issue an AP2 Verifiable Credential mandate authorising an agent up to spend / volume limits.",
      "description_key": "actions.agents.mandate.issue.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "agents.create"
      ],
      "audit_kind": "agent.mandate.issued",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.mandate.issue",
      "examples": [
        {
          "input": {
            "label": "Stripe refund bot — Q3",
            "agentDid": "did:web:agined.com:agents:ws_demo_default:refund-bot",
            "allowedActionIds": [
              "billing.subscription.upgrade",
              "tools.attest.agent-call"
            ],
            "maxSafetyLevel": "billing_impacting",
            "workspaceIds": [
              "ws_demo_default"
            ],
            "maxSpendUsdFractional": 50000,
            "maxInvocations": 100,
            "validForDays": 30
          },
          "output": {
            "mandateHandle": "mandate_DEMO00000000000000000000",
            "vcId": "urn:uuid:11111111-2222-3333-4444-555555555555",
            "sdJwtVcSerialized": "eyJhbGciOiJFZERTQSJ9…~WyJzYWx0Iiw…~",
            "validUntil": "2026-06-21T12:00:00.000Z",
            "issuerDid": "did:web:agined.com:agents:mandate-issuer"
          },
          "note": "Issue an AP2 mandate."
        }
      ]
    },
    {
      "id": "agents.mandate.list",
      "domain": "agents",
      "summary": "List mandates issued under the principal.",
      "description_key": "actions.agents.mandate.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "agents.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.mandate.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "mandates": [],
            "nextCursor": null
          },
          "note": "List mandates."
        }
      ]
    },
    {
      "id": "agents.mandate.verify",
      "domain": "agents",
      "summary": "Verify a presented mandate VC against an action request. Returns ok or a structured reason.",
      "description_key": "actions.agents.mandate.verify.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.mandate.verify",
      "examples": [
        {
          "input": {
            "presentationSerialized": "eyJhbGciOiJFZERTQSJ9…",
            "requestedActionId": "billing.subscription.upgrade",
            "audience": "https://api.agined.com",
            "nonce": "abc123abc123"
          },
          "output": {
            "ok": true,
            "mandateHandle": "mandate_DEMO00000000000000000000",
            "vcId": "urn:uuid:11111111-2222-3333-4444-555555555555",
            "remainingSpendUsdFractional": 25000,
            "remainingInvocations": 50,
            "issuerResolutionSource": "live"
          },
          "note": "Verify a mandate."
        }
      ]
    },
    {
      "id": "agents.mandate.revoke",
      "domain": "agents",
      "summary": "Revoke a mandate, and every A2A delegation the agent issued under it (the kill chain). Goes into the BitstringStatusList revocation register immediately.",
      "description_key": "actions.agents.mandate.revoke.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "agents.delete"
      ],
      "audit_kind": "agent.mandate.revoked",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.mandate.revoke",
      "examples": [
        {
          "input": {
            "mandateHandle": "mandate_DEMO00000000000000000000"
          },
          "output": {
            "revokedAt": "2026-05-22T12:00:00.000Z",
            "cascade": {
              "delegationsRevoked": [
                "delg_abc"
              ],
              "notWalked": [],
              "depth": 1,
              "complete": true,
              "keysStillLive": 2
            }
          },
          "note": "Revoking the mandate also withdrew one delegation the agent had issued — and named the two API keys it minted, which are STILL LIVE and must be revoked directly."
        }
      ]
    },
    {
      "id": "agents.spiffe.bind",
      "domain": "agents",
      "summary": "Bind a SPIFFE ID to an agent DID so its JWT-SVIDs can attest as that agent.",
      "description_key": "actions.agents.spiffe.bind.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [
        "agents.create"
      ],
      "audit_kind": "agent.spiffe.bound",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.spiffe.bind",
      "examples": [
        {
          "input": {
            "agentDid": "did:web:agined.com:agents:ws_demo_default:abc",
            "spiffeId": "spiffe://corp.example.com/svc/billing",
            "svidType": "jwt"
          },
          "output": {
            "agentDid": "did:web:agined.com:agents:ws_demo_default:abc",
            "spiffeId": "spiffe://corp.example.com/svc/billing",
            "boundAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Bind SPIFFE workload to agent."
        }
      ]
    },
    {
      "id": "agents.spiffe.unbind",
      "domain": "agents",
      "summary": "Unbind a SPIFFE ID from its agent DID so its SVIDs stop attesting as that agent.",
      "description_key": "actions.agents.spiffe.unbind.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "agents.create"
      ],
      "audit_kind": "agent.spiffe.unbound",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.spiffe.unbind",
      "examples": [
        {
          "input": {
            "spiffeId": "spiffe://corp.example.com/svc/billing"
          },
          "output": {
            "spiffeId": "spiffe://corp.example.com/svc/billing",
            "unboundAt": "2026-08-23T12:00:00.000Z"
          },
          "note": "Stop a decommissioned workload attesting as this agent."
        }
      ]
    },
    {
      "id": "agents.spiffe.workload.attest",
      "domain": "agents",
      "summary": "Exchange a SPIFFE SVID for a short-lived DPoP-bound Agined session.",
      "description_key": "actions.agents.spiffe.workload.attest.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent.spiffe.workload_attested",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.spiffe.workload.attest",
      "examples": [
        {
          "input": {
            "svid": {
              "type": "jwt",
              "token": "eyJhbGciOiJFZERTQSJ9…"
            },
            "dpopKey": {
              "kty": "OKP",
              "crv": "Ed25519",
              "x": "<base64url>"
            }
          },
          "output": {
            "sessionToken": "av_sess_demo…",
            "expiresAt": "2026-05-22T12:05:00.000Z",
            "agentDid": "did:web:agined.com:agents:ws_demo_default:abc",
            "effectiveScopes": [
              "read:audit"
            ]
          },
          "note": "Workload exchange."
        }
      ]
    },
    {
      "id": "agents.trusted-roots.list",
      "domain": "agents",
      "summary": "List partner organization DIDs the workspace accepts as A2A federation roots.",
      "description_key": "actions.agents.trusted-roots.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "agents.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.trusted-roots.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "roots": []
          },
          "note": "List trusted A2A roots."
        }
      ]
    },
    {
      "id": "agents.trusted-roots.add",
      "domain": "agents",
      "summary": "Add a partner organization DID to the trusted-roots list for this workspace.",
      "description_key": "actions.agents.trusted-roots.add.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [
        "agents.create"
      ],
      "audit_kind": "agent.trusted_root.added",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.trusted-roots.add",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "did": "did:web:partner.example.com",
            "organizationName": "Partner Example Corp",
            "maxAcceptedSafetyLevel": "mutation"
          },
          "output": {
            "addedAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Add federated root."
        }
      ]
    },
    {
      "id": "agents.trusted-roots.remove",
      "domain": "agents",
      "summary": "Remove a partner organization DID from the trusted-roots list for this workspace.",
      "description_key": "actions.agents.trusted-roots.remove.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "agents.create"
      ],
      "audit_kind": "agent.trusted_root.removed",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/agents.trusted-roots.remove",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "did": "did:web:partner.example.com"
          },
          "output": {
            "did": "did:web:partner.example.com",
            "removedAt": "2026-08-23T12:00:00.000Z"
          },
          "note": "Stop trusting a federated root."
        }
      ]
    },
    {
      "id": "nexus.catalog.get",
      "domain": "nexus",
      "summary": "Get the Nexus product catalogue (the available primitives + tiers for the workspace).",
      "description_key": "actions.nexus.catalog.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/nexus.catalog.get",
      "examples": [
        {
          "input": {},
          "output": {},
          "note": "List Nexus primitives."
        }
      ]
    },
    {
      "id": "nexus.usage.get",
      "domain": "nexus",
      "summary": "Get the workspace's Nexus usage + quota for the current period.",
      "description_key": "actions.nexus.usage.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/nexus.usage.get",
      "examples": [
        {
          "input": {},
          "output": {},
          "note": "Read Nexus usage."
        }
      ]
    },
    {
      "id": "nexus.oracle.agent.get",
      "domain": "nexus",
      "summary": "Look up the Nexus Oracle reputation for a specific agent (by id / DID).",
      "description_key": "actions.nexus.oracle.agent.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/nexus.oracle.agent.get",
      "examples": [
        {
          "input": {
            "agentId": "did:web:example.com:agent:support"
          },
          "output": {},
          "note": "Reputation for an agent."
        }
      ]
    },
    {
      "id": "vector.registry.search",
      "domain": "vector",
      "summary": "Search the public Vector agent registry.",
      "description_key": "actions.vector.registry.search.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/vector.registry.search",
      "examples": [
        {
          "input": {
            "q": "support agent"
          },
          "output": {},
          "note": "Find registered agents."
        }
      ]
    },
    {
      "id": "vector.registry.entry.get",
      "domain": "vector",
      "summary": "Get a single Vector registry entry by id.",
      "description_key": "actions.vector.registry.entry.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/vector.registry.entry.get",
      "examples": [
        {
          "input": {
            "id": "ag_demo_1"
          },
          "output": {},
          "note": "Resolve a registry entry."
        }
      ]
    },
    {
      "id": "vector.pricing.get",
      "domain": "vector",
      "summary": "Look up Vector public pricing.",
      "description_key": "actions.vector.pricing.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/vector.pricing.get",
      "examples": [
        {
          "input": {},
          "output": {},
          "note": "Read Vector pricing."
        }
      ]
    },
    {
      "id": "vector.mcp.servers.list",
      "domain": "vector",
      "summary": "List the MCP servers in the public Vector registry.",
      "description_key": "actions.vector.mcp.servers.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/vector.mcp.servers.list",
      "examples": [
        {
          "input": {},
          "output": {},
          "note": "Discover MCP servers."
        }
      ]
    },
    {
      "id": "vector.catalog.get",
      "domain": "vector",
      "summary": "Get the workspace's Vector product catalogue.",
      "description_key": "actions.vector.catalog.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/vector.catalog.get",
      "examples": [
        {
          "input": {},
          "output": {},
          "note": "List Vector products."
        }
      ]
    },
    {
      "id": "fabric.retrieve.signed",
      "domain": "fabric",
      "summary": "Query the fabric and seal the result as a signed-retrieval receipt — the query hash plus every returned record's content hash, so a grounded claim can be proved after the fact.",
      "description_key": "actions.fabric.retrieve.signed.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [
        "records.view"
      ],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/fabric.retrieve.signed",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "kinds": [
              "policy-clause"
            ]
          },
          "output": {
            "records": [],
            "nextCursor": null,
            "retrieval": {
              "retrievalRef": "ret_…",
              "queryHash": "…",
              "sources": [],
              "retrievedAt": "2026-09-03T00:00:00.000Z",
              "sealed": true,
              "artifactId": "art_01J…",
              "unsealedReason": null
            }
          },
          "note": "Ground a claim on policy clauses, provably."
        }
      ]
    },
    {
      "id": "fabric.memory.snapshot",
      "domain": "fabric",
      "summary": "Snapshot the fabric's records as a signed memory-attestation receipt — entry count, Merkle root over every entry's content hash, and the provenance window — so an export can be verified without trusting the exporter.",
      "description_key": "actions.fabric.memory.snapshot.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "mandate",
      "idempotent": false,
      "permissions": [
        "records.view"
      ],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/fabric.memory.snapshot",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "snapshot": {
              "agentRef": "did:key:z6Mk…",
              "snapshotRef": "mem_…",
              "entryCount": 42,
              "merkleRoot": "…",
              "earliestEntryAt": "2026-08-01T00:00:00.000Z",
              "latestEntryAt": "2026-09-04T00:00:00.000Z",
              "snapshotAt": "2026-09-04T00:00:00.000Z",
              "sealed": true,
              "artifactId": "art_01J…",
              "unsealedReason": null
            }
          },
          "note": "Make an agent's memory portable and independently checkable."
        }
      ]
    },
    {
      "id": "fabric.sources.catalog",
      "domain": "fabric",
      "summary": "List the connectable source catalog — each source's category, purpose, auth method, and the engine classes it contributes.",
      "description_key": "actions.fabric.sources.catalog.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "integrations.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/fabric.sources.catalog",
      "examples": [
        {
          "input": {
            "category": "devtools"
          },
          "output": {
            "sources": []
          },
          "note": "Browse developer-tool sources."
        }
      ]
    },
    {
      "id": "fabric.connections.connect",
      "domain": "fabric",
      "summary": "Connect a catalog source (BYO credentials) into the fabric. The connection's records broadcast to every subscribing product.",
      "description_key": "actions.fabric.connections.connect.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "integrations.connect"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/fabric.connections.connect",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "sourceId": "jira",
            "label": "Acme Jira",
            "scope": [
              "ACME"
            ],
            "syncSchedule": "daily"
          },
          "output": {
            "connectionId": "01J9X4P9R7Z2C1A1F2A8VBJYS1",
            "workspaceId": "ws_demo_default",
            "sourceId": "jira",
            "category": "devtools",
            "authMethod": "oauth2",
            "label": "Acme Jira",
            "scope": [
              "ACME"
            ],
            "state": "pending",
            "syncState": "never",
            "emits": [
              "ticket"
            ],
            "lastSyncAt": null,
            "connectionRef": null,
            "credentialRef": null,
            "syncSchedule": "daily",
            "createdAt": "2026-05-22T12:00:00.000Z"
          },
          "note": "Connect Jira — an OAuth source stays pending until its oauth/start → callback completes."
        }
      ]
    },
    {
      "id": "fabric.connections.list",
      "domain": "fabric",
      "summary": "List the workspace's fabric connections with their sync health.",
      "description_key": "actions.fabric.connections.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "integrations.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/fabric.connections.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "connections": [],
            "nextCursor": null
          },
          "note": "List connections."
        }
      ]
    },
    {
      "id": "fabric.connections.sync",
      "domain": "fabric",
      "summary": "Enqueue an on-demand sync + re-extraction of a fabric connection.",
      "description_key": "actions.fabric.connections.sync.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "integrations.connect"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/fabric.connections.sync",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "connectionId": "01J9X4P9R7Z2C1A1F2A8VBJYS1"
          },
          "output": {
            "enqueued": true,
            "connectionId": "01J9X4P9R7Z2C1A1F2A8VBJYS1"
          },
          "note": "Sync now."
        }
      ]
    },
    {
      "id": "fabric.connections.revoke",
      "domain": "fabric",
      "summary": "Revoke a fabric connection — purges its extracted records per the platform's data-handling terms.",
      "description_key": "actions.fabric.connections.revoke.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "integrations.disconnect"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/fabric.connections.revoke",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "connectionId": "01J9X4P9R7Z2C1A1F2A8VBJYS1"
          },
          "output": {
            "revoked": true,
            "recordsPurged": 1280
          },
          "note": "Revoke + purge."
        }
      ]
    },
    {
      "id": "fabric.webhooks.list",
      "domain": "fabric",
      "summary": "List the workspace's inbound webhook endpoints, with which sources can push and whether each scheme binds the body.",
      "description_key": "actions.fabric.webhooks.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "integrations.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/fabric.webhooks.list",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default"
          },
          "output": {
            "endpoints": [],
            "supportedSources": []
          },
          "note": "What can push, and what has."
        }
      ]
    },
    {
      "id": "fabric.webhooks.open",
      "domain": "fabric",
      "summary": "Open an inbound webhook endpoint for a connection — returns the signing secret ONCE.",
      "description_key": "actions.fabric.webhooks.open.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [
        "integrations.connect"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/fabric.webhooks.open",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "connectionId": "01J9X4P9R7Z2C1A1F2A8VBJYS1"
          },
          "output": {
            "endpointId": "01J9X4P9R7Z2C1A1F2A8VBJYS2",
            "sourceId": "github",
            "deliveryPath": "/api/v1/fabric/deliveries/01J9X4P9R7Z2C1A1F2A8VBJYS2",
            "signatureHeader": "x-hub-signature-256",
            "secret": "shown-once"
          },
          "note": "Open an endpoint for a GitHub connection."
        }
      ]
    },
    {
      "id": "fabric.webhooks.revoke",
      "domain": "fabric",
      "summary": "Revoke an inbound webhook endpoint — deliveries to it stop immediately.",
      "description_key": "actions.fabric.webhooks.revoke.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [
        "integrations.disconnect"
      ],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/fabric.webhooks.revoke",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "endpointId": "01J9X4P9R7Z2C1A1F2A8VBJYS2"
          },
          "output": {
            "revoked": true,
            "endpointId": "01J9X4P9R7Z2C1A1F2A8VBJYS2"
          },
          "note": "Stop accepting pushes."
        }
      ]
    },
    {
      "id": "fabric.records.query",
      "domain": "fabric",
      "summary": "Query extracted records by kind / source / subscriber — the universal read every product (and agent) uses to consume the fabric.",
      "description_key": "actions.fabric.records.query.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "records.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/fabric.records.query",
      "examples": [
        {
          "input": {
            "workspaceId": "ws_demo_default",
            "kinds": [
              "policy-clause"
            ]
          },
          "output": {
            "records": [],
            "nextCursor": null
          },
          "note": "Read policy clauses across all sources."
        }
      ]
    },
    {
      "id": "fabric.subscriptions.matrix",
      "domain": "fabric",
      "summary": "Return the fabric subscription matrix — which product consumes which record kinds, and how many products each kind powers.",
      "description_key": "actions.fabric.subscriptions.matrix.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [
        "integrations.view"
      ],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/fabric.subscriptions.matrix",
      "examples": [
        {
          "input": {},
          "output": {
            "subscriptions": {},
            "kindReach": {}
          },
          "note": "Introspect the matrix."
        }
      ]
    },
    {
      "id": "actionflow.flows.list",
      "domain": "actionflow",
      "summary": "List the workspace's ActionFlow flows.",
      "description_key": "actions.actionflow.flows.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/actionflow.flows.list",
      "examples": [
        {
          "input": {},
          "output": {
            "flows": []
          },
          "note": "List flows."
        }
      ]
    },
    {
      "id": "actionflow.flows.run",
      "domain": "actionflow",
      "summary": "Run a flow — trigger an execution through the bounded graph engine.",
      "description_key": "actions.actionflow.flows.run.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/actionflow.flows.run",
      "examples": [
        {
          "input": {
            "id": "flow_incident",
            "input": {
              "severity": "high"
            }
          },
          "output": {
            "execution": {
              "executionId": "exec_…",
              "flowId": "flow_incident",
              "workspaceId": "ws_…",
              "initiatedBy": {},
              "triggeredBy": {},
              "status": "succeeded",
              "stepStates": {},
              "mode": "real",
              "startedAt": "2026-08-10T00:00:00Z",
              "waiting": false
            }
          },
          "note": "Run the incident flow."
        }
      ]
    },
    {
      "id": "actionflow.flows.publish",
      "domain": "actionflow",
      "summary": "Publish a flow (make the current draft the live version).",
      "description_key": "actions.actionflow.flows.publish.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/actionflow.flows.publish",
      "examples": [
        {
          "input": {
            "id": "flow_incident"
          },
          "output": {
            "flow": {
              "schemaVersion": "1.0",
              "id": "flow_incident",
              "workspaceId": "ws_…",
              "name": "Incident flow",
              "tags": [],
              "source": {},
              "triggers": [],
              "steps": [],
              "version": {
                "semver": "0.1.0",
                "status": "published"
              },
              "createdAt": "2026-08-10T00:00:00Z",
              "updatedAt": "2026-08-10T00:00:00Z"
            }
          },
          "note": "Publish a flow."
        }
      ]
    },
    {
      "id": "actionflow.flows.deprecate",
      "domain": "actionflow",
      "summary": "Retire a published flow. It stops running on its triggers; its execution history is kept.",
      "description_key": "actions.actionflow.flows.deprecate.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/actionflow.flows.deprecate",
      "examples": [
        {
          "input": {
            "id": "flow_incident"
          },
          "output": {
            "flow": {
              "schemaVersion": "1.0",
              "id": "flow_incident",
              "workspaceId": "ws_…",
              "name": "Incident flow",
              "tags": [],
              "source": {},
              "triggers": [],
              "steps": [],
              "version": {
                "semver": "1.0.0",
                "status": "deprecated",
                "deprecatedAt": "2026-08-24T12:00:00Z"
              },
              "createdAt": "2026-08-10T00:00:00Z",
              "updatedAt": "2026-08-24T12:00:00Z"
            }
          },
          "note": "Retire a published flow."
        }
      ]
    },
    {
      "id": "actionflow.templates.list",
      "domain": "actionflow",
      "summary": "List the ActionFlow starter templates.",
      "description_key": "actions.actionflow.templates.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/actionflow.templates.list",
      "examples": [
        {
          "input": {},
          "output": {
            "templates": [
              {
                "id": "tmpl_incident_alert",
                "name": "Sentinel incident → alert",
                "description": "When Sentinel opens a high-severity incident, emit an alert webhook.",
                "tags": [
                  "security",
                  "alerting"
                ]
              }
            ]
          },
          "note": "Browse templates."
        }
      ]
    },
    {
      "id": "actionflow.templates.instantiate",
      "domain": "actionflow",
      "summary": "Instantiate a template into a new draft flow in the workspace.",
      "description_key": "actions.actionflow.templates.instantiate.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/actionflow.templates.instantiate",
      "examples": [
        {
          "input": {
            "id": "tmpl_incident_alert",
            "name": "My incident flow"
          },
          "output": {
            "flow": {
              "schemaVersion": "1.0",
              "id": "flow_…",
              "workspaceId": "ws_…",
              "name": "My incident flow",
              "tags": [
                "security",
                "alerting"
              ],
              "source": {},
              "triggers": [],
              "steps": [],
              "version": {
                "semver": "0.1.0",
                "status": "draft"
              },
              "createdAt": "2026-08-10T00:00:00Z",
              "updatedAt": "2026-08-10T00:00:00Z"
            }
          },
          "note": "Create a flow from a template."
        }
      ]
    },
    {
      "id": "actionflow.executions.list",
      "domain": "actionflow",
      "summary": "List recent ActionFlow executions.",
      "description_key": "actions.actionflow.executions.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/actionflow.executions.list",
      "examples": [
        {
          "input": {},
          "output": {
            "executions": []
          },
          "note": "List executions."
        }
      ]
    },
    {
      "id": "lens.list",
      "domain": "lens",
      "summary": "List the available compliance-evidence lenses.",
      "description_key": "actions.lens.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/lens.list",
      "examples": [
        {
          "input": {},
          "output": {
            "lenses": []
          },
          "note": "Browse lenses."
        }
      ]
    },
    {
      "id": "lens.execute",
      "domain": "lens",
      "summary": "Execute a lens over the audit chain — produces a signed compliance-evidence bundle (a paid action).",
      "description_key": "actions.lens.execute.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/lens.execute",
      "examples": [
        {
          "input": {
            "id": "lens_gdpr_art30",
            "params": {
              "since": "2026-01-01T00:00:00.000Z"
            }
          },
          "output": {
            "ok": true,
            "resultId": "lres_…",
            "signed": true,
            "bundle": {}
          },
          "note": "Run a GDPR lens."
        }
      ]
    },
    {
      "id": "lens.validate",
      "domain": "lens",
      "summary": "Validate a lens definition (dry-run; no evidence bundle, no charge).",
      "description_key": "actions.lens.validate.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/lens.validate",
      "examples": [
        {
          "input": {
            "definition": {
              "framework": "gdpr"
            }
          },
          "output": {
            "ok": true
          },
          "note": "Validate a lens."
        }
      ]
    },
    {
      "id": "lens.results.list",
      "domain": "lens",
      "summary": "List prior lens-execution results (the evidence-bundle history).",
      "description_key": "actions.lens.results.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/lens.results.list",
      "examples": [
        {
          "input": {},
          "output": {
            "results": []
          },
          "note": "List evidence bundles."
        }
      ]
    },
    {
      "id": "lens.custom.list",
      "domain": "lens",
      "summary": "List the custom lenses this workspace has authored.",
      "description_key": "actions.lens.custom.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/lens.custom.list",
      "examples": [
        {
          "input": {},
          "output": {
            "lenses": []
          },
          "note": "Browse the workspace's own lenses."
        }
      ]
    },
    {
      "id": "lens.custom.get",
      "domain": "lens",
      "summary": "Read one custom lens definition.",
      "description_key": "actions.lens.custom.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/lens.custom.get",
      "examples": [
        {
          "input": {
            "id": "lensc_…"
          },
          "output": {
            "id": "lensc_…",
            "updatedAt": "2026-08-24T12:00:00.000Z",
            "definition": {}
          },
          "note": "Read one."
        }
      ]
    },
    {
      "id": "lens.custom.create",
      "domain": "lens",
      "summary": "Author a custom lens. The runtime sanitises the definition and refuses an invalid one with the specific errors.",
      "description_key": "actions.lens.custom.create.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/lens.custom.create",
      "examples": [
        {
          "input": {
            "definition": {}
          },
          "output": {
            "ok": true,
            "id": "lensc_…",
            "definition": {}
          },
          "note": "Author a lens."
        }
      ]
    },
    {
      "id": "lens.custom.update",
      "domain": "lens",
      "summary": "Replace a custom lens definition.",
      "description_key": "actions.lens.custom.update.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/lens.custom.update",
      "examples": [
        {
          "input": {
            "id": "lensc_…",
            "definition": {}
          },
          "output": {
            "ok": true,
            "id": "lensc_…",
            "definition": {}
          },
          "note": "Revise a lens."
        }
      ]
    },
    {
      "id": "lens.custom.delete",
      "domain": "lens",
      "summary": "Delete a custom lens. Its past results keep the definition hash they were produced under.",
      "description_key": "actions.lens.custom.delete.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/lens.custom.delete",
      "examples": [
        {
          "input": {
            "id": "lensc_…"
          },
          "output": {
            "ok": true
          },
          "note": "Remove a lens the workspace authored."
        }
      ]
    },
    {
      "id": "lens.marketplace.list",
      "domain": "lens",
      "summary": "Browse the lens marketplace, with what this workspace has published and installed.",
      "description_key": "actions.lens.marketplace.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/lens.marketplace.list",
      "examples": [
        {
          "input": {},
          "output": {
            "listings": [],
            "published": [],
            "installs": []
          },
          "note": "What is available, and what I have."
        }
      ]
    },
    {
      "id": "lens.marketplace.publish",
      "domain": "lens",
      "summary": "Publish one of the workspace's own custom lenses at its pinned version. Enterprise only.",
      "description_key": "actions.lens.marketplace.publish.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/lens.marketplace.publish",
      "examples": [
        {
          "input": {
            "lensId": "clens_…",
            "summary": "Counts sign-ins on the audit chain."
          },
          "output": {
            "listing": {
              "id": "llist_…",
              "publisherWorkspaceId": "ws_1",
              "sourceLensId": "clens_…",
              "name": "Sign-in review",
              "summary": "Counts sign-ins on the audit chain.",
              "version": "1.0.0",
              "publishedAt": "2026-09-02T00:00:00.000Z",
              "unpublishedAt": null
            }
          },
          "note": "Share a lens."
        }
      ]
    },
    {
      "id": "lens.marketplace.unpublish",
      "domain": "lens",
      "summary": "Withdraw a listing. It leaves the catalogue; workspaces that already installed it keep the lens.",
      "description_key": "actions.lens.marketplace.unpublish.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/lens.marketplace.unpublish",
      "examples": [
        {
          "input": {
            "listingId": "llist_…"
          },
          "output": {
            "unpublished": true,
            "listingId": "llist_…"
          },
          "note": "Stop offering it."
        }
      ]
    },
    {
      "id": "lens.marketplace.install",
      "domain": "lens",
      "summary": "Install a listing into this workspace as a custom lens, pinned to the published version.",
      "description_key": "actions.lens.marketplace.install.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/lens.marketplace.install",
      "examples": [
        {
          "input": {
            "listingId": "llist_…"
          },
          "output": {
            "install": {
              "id": "linst_…",
              "listingId": "llist_…",
              "version": "1.0.0",
              "installedLensId": "clens_…",
              "installedAt": "2026-09-02T00:00:00.000Z"
            },
            "alreadyInstalled": false
          },
          "note": "Take a shared lens."
        }
      ]
    },
    {
      "id": "lens.marketplace.uninstall",
      "domain": "lens",
      "summary": "Remove an installed lens and its install receipt together — the inverse of install.",
      "description_key": "actions.lens.marketplace.uninstall.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/lens.marketplace.uninstall",
      "examples": [
        {
          "input": {
            "listingId": "llist_…"
          },
          "output": {
            "uninstalled": true,
            "listingId": "llist_…"
          },
          "note": "Give a shared lens back."
        }
      ]
    },
    {
      "id": "notarian.snapshot.create",
      "domain": "notarian",
      "summary": "Create a signed Notarian snapshot of the workspace's audit state (a paid action).",
      "description_key": "actions.notarian.snapshot.create.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/notarian.snapshot.create",
      "examples": [
        {
          "input": {
            "scope": "month-end"
          },
          "output": {
            "ok": true,
            "bundle": {}
          },
          "note": "Seal a signed snapshot."
        }
      ]
    },
    {
      "id": "notarian.verify-chain",
      "domain": "notarian",
      "summary": "Verify the Notarian transparency chain (free — a transparency guarantee).",
      "description_key": "actions.notarian.verify-chain.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/notarian.verify-chain",
      "examples": [
        {
          "input": {},
          "output": {
            "ok": true,
            "verification": {
              "ok": true,
              "checkedCount": 0,
              "tipHash": null
            }
          },
          "note": "Prove the chain is intact."
        }
      ]
    },
    {
      "id": "notarian.anchors.list",
      "domain": "notarian",
      "summary": "List the Notarian anchors (the published chain checkpoints).",
      "description_key": "actions.notarian.anchors.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/notarian.anchors.list",
      "examples": [
        {
          "input": {},
          "output": {
            "anchors": []
          },
          "note": "List anchors."
        }
      ]
    },
    {
      "id": "receipts.list",
      "domain": "receipts",
      "summary": "List this workspace's signed evidence receipts, newest first.",
      "description_key": "actions.receipts.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.list",
      "examples": [
        {
          "input": {
            "kind": "proof-of-erasure",
            "limit": 10
          },
          "output": {
            "artifacts": []
          },
          "note": "The erasure receipts, newest first."
        }
      ]
    },
    {
      "id": "receipts.get",
      "domain": "receipts",
      "summary": "Fetch one receipt's signed envelope by artifact id.",
      "description_key": "actions.receipts.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.get",
      "examples": [
        {
          "input": {
            "artifactId": "art_01J…"
          },
          "output": {
            "artifact": {},
            "kind": "oversight",
            "issuedAt": "2026-08-28T00:00:00.000Z"
          },
          "note": "Fetch the envelope to verify offline."
        }
      ]
    },
    {
      "id": "receipts.verify",
      "domain": "receipts",
      "summary": "Verify a receipt — signature, and Merkle inclusion when an anchor is present. Free.",
      "description_key": "actions.receipts.verify.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.verify",
      "examples": [
        {
          "input": {
            "artifact": {}
          },
          "output": {
            "ok": true,
            "anchored": false
          },
          "note": "Verify a signed envelope."
        }
      ]
    },
    {
      "id": "receipts.issue",
      "domain": "receipts",
      "summary": "Mint a signed evidence receipt of the given kind (a paid action).",
      "description_key": "actions.receipts.issue.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.issue",
      "examples": [
        {
          "input": {
            "kind": "oversight",
            "source": {}
          },
          "output": {
            "bundle": {
              "artifact": {}
            }
          },
          "note": "Seal an oversight receipt."
        }
      ]
    },
    {
      "id": "receipts.canon.list",
      "domain": "receipts",
      "summary": "List this workspace's legal canon — the statute versions it tracks — and the live reliances pinned to them.",
      "description_key": "actions.receipts.canon.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.canon.list",
      "examples": [
        {
          "input": {},
          "output": {
            "canon": [],
            "reliances": []
          },
          "note": "The corpus and what relies on it."
        }
      ]
    },
    {
      "id": "receipts.canon.declare",
      "domain": "receipts",
      "summary": "Declare a statute version in this workspace's canon. Superseding the current version computes drift over every live reliance and seals a `regulatory-canon-drift` receipt.",
      "description_key": "actions.receipts.canon.declare.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.canon.declare",
      "examples": [
        {
          "input": {
            "instrument": "EU AI Act",
            "articleRef": "Art. 73(2)",
            "version": "2024-consolidated",
            "effectiveFrom": "2024-08-01T00:00:00.000Z",
            "textSha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
          },
          "output": {
            "canon": {},
            "superseded": null,
            "drift": null,
            "receipt": null,
            "receiptError": null
          },
          "note": "First version of a citation — no supersession, no drift check."
        }
      ]
    },
    {
      "id": "receipts.canon.rely",
      "domain": "receipts",
      "summary": "Record that a live object — a mandate or a named obligation — relies on a canon version. This is what drift-check reads.",
      "description_key": "actions.receipts.canon.rely.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.canon.rely",
      "examples": [
        {
          "input": {
            "subjectKind": "mandate",
            "subjectRef": "mnd_01J…",
            "canonId": "canon_01J…"
          },
          "output": {
            "reliance": {
              "relianceId": "rel_01J…",
              "subjectKind": "mandate",
              "subjectRef": "mnd_01J…",
              "canonId": "canon_01J…",
              "pinnedVersion": "2.0",
              "declaredAt": "2026-09-19T00:00:00.000Z",
              "verified": true
            }
          },
          "note": "Pin a live mandate to the current canon. A revoked or unknown mandate is refused."
        }
      ]
    },
    {
      "id": "receipts.canon.withdraw",
      "domain": "receipts",
      "summary": "Withdraw a reliance. The row is kept — what a mandate relied on when it ran is an audit question a deleted row cannot answer.",
      "description_key": "actions.receipts.canon.withdraw.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.canon.withdraw",
      "examples": [
        {
          "input": {
            "relianceId": "rel_01J…"
          },
          "output": {
            "withdrawn": "rel_01J…"
          },
          "note": "End a reliance."
        }
      ]
    },
    {
      "id": "receipts.canon.drift-check",
      "domain": "receipts",
      "summary": "Recompute canon drift across the corpus (or one citation) and seal the result as a `regulatory-canon-drift` receipt — including an empty set, which is itself a finding.",
      "description_key": "actions.receipts.canon.drift-check.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.canon.drift-check",
      "examples": [
        {
          "input": {},
          "output": {
            "checkedAt": "2026-09-13T00:00:00.000Z",
            "findings": [],
            "violations": 0,
            "receipt": {},
            "receiptError": null
          },
          "note": "A corpus-wide sweep; the sealed receipt is the check, whatever it finds."
        }
      ]
    },
    {
      "id": "receipts.canon.seed",
      "domain": "receipts",
      "summary": "Seed the starter canon — the four reporting-window corpora klaxon enforces (EU AI Act Art. 73(2-4), Colorado SB 24-205 § 6-1-1702(5)) — as transcribed-basis rows marked legalReviewed:false. Idempotent per citation.",
      "description_key": "actions.receipts.canon.seed.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.canon.seed",
      "examples": [
        {
          "input": {},
          "output": {
            "seeded": [
              "EU AI Act Art. 73(2)",
              "EU AI Act Art. 73(3)",
              "EU AI Act Art. 73(4)",
              "Colorado SB 24-205 § 6-1-1702(5)"
            ],
            "skipped": [],
            "legalReviewed": false
          },
          "note": "Writes the four starter rows. A citation the workspace already tracks is reported under `skipped`, never overwritten."
        }
      ]
    },
    {
      "id": "receipts.conformity.frameworks",
      "domain": "receipts",
      "summary": "List the regulatory frameworks a conformity posture can be computed against, and what evidence discharges each clause.",
      "description_key": "actions.receipts.conformity.frameworks.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.conformity.frameworks",
      "examples": [
        {
          "input": {},
          "output": {
            "frameworks": []
          },
          "note": "What can be assessed."
        }
      ]
    },
    {
      "id": "receipts.conformity.assess",
      "domain": "receipts",
      "summary": "Compute this workspace's conformity posture from its signed evidence, clause by clause. Optionally seal it as a signed attestation.",
      "description_key": "actions.receipts.conformity.assess.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.conformity.assess",
      "examples": [
        {
          "input": {
            "framework": "eu-ai-act"
          },
          "output": {
            "assessment": {
              "frameworkId": "eu-ai-act",
              "frameworkTitle": "EU AI Act (Regulation (EU) 2024/1689)",
              "clauses": [],
              "met": 0,
              "applicable": 4,
              "total": 4,
              "computedAt": "2026-09-03T00:00:00.000Z",
              "windowStart": "2026-06-05T00:00:00.000Z"
            },
            "minted": null
          },
          "note": "Compute the posture without sealing it."
        }
      ]
    },
    {
      "id": "receipts.klaxon.assess",
      "domain": "receipts",
      "summary": "Group observed incident signals into incidents, compute each one's severity and statutory reporting deadline, and optionally seal the reportable ones.",
      "description_key": "actions.receipts.klaxon.assess.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.klaxon.assess",
      "examples": [
        {
          "input": {
            "jurisdiction": "eu",
            "signals": [
              {
                "kind": "personal-injury",
                "at": "2026-09-01T00:00:00.000Z",
                "evidenceRef": "art_01J…"
              }
            ]
          },
          "output": {
            "incidents": [],
            "minted": []
          },
          "note": "Detect and clock without sealing."
        }
      ]
    },
    {
      "id": "receipts.dossier.generate",
      "domain": "receipts",
      "summary": "Assemble the EU AI Act Annex IV technical file from this workspace's signed evidence, every section bound to the receipts substantiating it. Optionally seal it.",
      "description_key": "actions.receipts.dossier.generate.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.dossier.generate",
      "examples": [
        {
          "input": {
            "dossierRef": "TF-2026-01"
          },
          "output": {
            "dossier": {
              "dossierRef": "TF-2026-01",
              "sections": [],
              "substantiatedCount": 0,
              "coverableCount": 7,
              "totalSections": 9,
              "generatedFromRuns": 0,
              "generatedAt": "2026-09-03T00:00:00.000Z",
              "windowStart": "2026-06-05T00:00:00.000Z"
            },
            "minted": null
          },
          "note": "Assemble the technical file without sealing it."
        }
      ]
    },
    {
      "id": "receipts.dossier.sections",
      "domain": "receipts",
      "summary": "List the Annex IV sections a technical file must contain, and what evidence substantiates each.",
      "description_key": "actions.receipts.dossier.sections.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.dossier.sections",
      "examples": [
        {
          "input": {},
          "output": {
            "sections": []
          },
          "note": "What a technical file must contain."
        }
      ]
    },
    {
      "id": "receipts.actor-score.compute",
      "domain": "receipts",
      "summary": "Score each agent in this workspace on its real audit record — mandate violations, autonomy breaches, oversight failures and breaker trips, as rates over runs. Optionally seal the confident ones.",
      "description_key": "actions.receipts.actor-score.compute.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.actor-score.compute",
      "examples": [
        {
          "input": {},
          "output": {
            "scores": [],
            "weights": {},
            "windowStart": "2026-06-05T00:00:00.000Z",
            "computedAt": "2026-09-03T00:00:00.000Z",
            "minted": []
          },
          "note": "Score without sealing."
        }
      ]
    },
    {
      "id": "receipts.agent-passport.issue",
      "domain": "receipts",
      "summary": "Issue a passport for one agent — its live mandates, their autonomy ceilings and its actor score — assembled from the mandate store and the audit chain. Optionally sealed.",
      "description_key": "actions.receipts.agent-passport.issue.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.agent-passport.issue",
      "examples": [
        {
          "input": {
            "agentDid": "did:web:agined.com:agent:releasebot",
            "issuedFor": "acme-procurement"
          },
          "output": {
            "passport": {
              "agentRef": "did:web:…",
              "agentDid": "did:web:…",
              "displayName": "releasebot",
              "mandates": [],
              "actorScore": null,
              "issuedFor": "acme-procurement",
              "expiresAt": "2026-12-01T00:00:00.000Z",
              "issuedAt": "2026-09-04T00:00:00.000Z"
            },
            "highestCeiling": null,
            "minted": null
          },
          "note": "Issue without sealing."
        }
      ]
    },
    {
      "id": "receipts.agent-passport.revoke",
      "domain": "receipts",
      "summary": "Revoke a passport this workspace issued, so a counterparty checking its status sees it is dead.",
      "description_key": "actions.receipts.agent-passport.revoke.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.agent-passport.revoke",
      "examples": [
        {
          "input": {
            "artifactId": "art_01J…",
            "reason": "agent decommissioned"
          },
          "output": {
            "revoked": true,
            "artifactId": "art_01J…",
            "revokedAt": "2026-09-04T00:00:00.000Z"
          },
          "note": "Kill a passport early."
        }
      ]
    },
    {
      "id": "receipts.exhibit.assemble",
      "domain": "receipts",
      "summary": "Assemble the evidence bundle for one run — its receipts, custody entry and C2PA manifests — naming any source that came back empty. Optionally sealed.",
      "description_key": "actions.receipts.exhibit.assemble.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.exhibit.assemble",
      "examples": [
        {
          "input": {
            "runRef": "run_01J…"
          },
          "output": {
            "exhibit": {
              "runRef": "run_01J…",
              "topsSliceRef": "",
              "otsAnchorRef": null,
              "receiptRefs": [],
              "custodyRef": "",
              "c2paRefs": [],
              "assembledAt": "2026-09-04T00:00:00.000Z",
              "missing": [],
              "unavailable": [
                "custodyRef"
              ]
            },
            "chainSliceProvenance": "not-supplied",
            "minted": null
          },
          "note": "Assemble without sealing."
        }
      ]
    },
    {
      "id": "receipts.handshake.notarise",
      "domain": "receipts",
      "summary": "Notarise a capability handshake between two agents — what was offered, under what scope, and whether it was accepted or declined.",
      "description_key": "actions.receipts.handshake.notarise.description",
      "safety_level": "billing_impacting",
      "confirmation_policy": "always",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "billing",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.handshake.notarise",
      "examples": [
        {
          "input": {
            "handshakeRef": "hs_01J…",
            "offer": {
              "initiatorDid": "did:web:a.example",
              "responderDid": "did:web:b.example",
              "capabilities": [
                "read:catalogue"
              ],
              "mandateScope": "procurement"
            },
            "outcome": "declined"
          },
          "output": {
            "handshake": {
              "handshakeRef": "hs_01J…",
              "initiatorDid": "did:web:a.example",
              "responderDid": "did:web:b.example",
              "capabilities": [
                "read:catalogue"
              ],
              "mandateScope": "procurement",
              "agreementHash": "…",
              "outcome": "declined",
              "notarizedAt": "2026-09-04T00:00:00.000Z"
            },
            "minted": null
          },
          "note": "Record a refusal — the half a naive notary drops."
        }
      ]
    },
    {
      "id": "receipts.blame.apportion",
      "domain": "receipts",
      "summary": "Apportion fault across a multi-agent failure — weighted by how each agent's contribution was governed, with the unattributed share reported rather than distributed.",
      "description_key": "actions.receipts.blame.apportion.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.blame.apportion",
      "examples": [
        {
          "input": {
            "incidentRef": "inc_01J…",
            "contributions": [
              {
                "agentRef": "agent:a",
                "culpability": "outside-mandate",
                "causalSteps": 2
              }
            ],
            "unattributedSteps": 1
          },
          "output": {
            "blame": {
              "incidentRef": "inc_01J…",
              "shares": [],
              "unattributed": 0.11,
              "totalWeight": 9,
              "weights": {}
            },
            "unattributedStepsDeclared": true
          },
          "note": "Apportion, with a declared gap."
        }
      ]
    },
    {
      "id": "receipts.indemnity.feed",
      "domain": "receipts",
      "summary": "The per-workspace risk picture an insurer prices from — worst band and its count, the full distribution, measured coverage, incidents by severity and apportioned fault.",
      "description_key": "actions.receipts.indemnity.feed.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.indemnity.feed",
      "examples": [
        {
          "input": {
            "agentsKnown": 50
          },
          "output": {
            "feed": {
              "worstBand": "at-risk",
              "worstBandCount": 1,
              "distribution": {
                "exemplary": 49,
                "sound": 0,
                "watch": 0,
                "at-risk": 1
              },
              "meanScore": 94,
              "agentsKnown": 50,
              "agentsScored": 50,
              "agentsProvisional": 0,
              "coverage": 1,
              "incidents": {
                "low": 0,
                "medium": 0,
                "high": 0,
                "serious": 0,
                "total": 0
              },
              "apportionedFault": 0,
              "periodStart": "2026-06-06T00:00:00.000Z",
              "periodEnd": "2026-09-04T00:00:00.000Z"
            }
          },
          "note": "Forty-nine exemplary agents and one at-risk headlines at-risk."
        }
      ]
    },
    {
      "id": "receipts.mandate-template.instantiate",
      "domain": "receipts",
      "summary": "Check a requested grant against a published mandate template. Narrowing is allowed; widening is refused and says which bound it crossed.",
      "description_key": "actions.receipts.mandate-template.instantiate.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.mandate-template.instantiate",
      "examples": [
        {
          "input": {
            "template": {
              "templateId": "tpl_support",
              "autonomyCeiling": "mutation",
              "actions": [
                "tickets.read",
                "tickets.reply"
              ],
              "maxInvocations": 1000
            },
            "requested": {
              "autonomyCeiling": "read",
              "actions": [
                "tickets.read"
              ],
              "maxInvocations": 100
            }
          },
          "output": {
            "ok": true,
            "granted": {
              "autonomyCeiling": "read",
              "actions": [
                "tickets.read"
              ],
              "maxInvocations": 100
            }
          },
          "note": "A narrowing instantiation."
        }
      ]
    },
    {
      "id": "receipts.mandate-template.record",
      "domain": "receipts",
      "summary": "A template's outcome track record — adoptions, the WORST band any measured adopter reached, and whether there is enough history for it to mean anything.",
      "description_key": "actions.receipts.mandate-template.record.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.mandate-template.record",
      "examples": [
        {
          "input": {
            "templateId": "tpl_support",
            "outcomes": []
          },
          "output": {
            "record": {
              "templateId": "tpl_support",
              "adoptions": 0,
              "measuredAdoptions": 0,
              "worstBand": null,
              "incidents": 0,
              "unproven": true
            }
          },
          "note": "A template nobody has run does not present as safe."
        }
      ]
    },
    {
      "id": "receipts.counterwitness.seal",
      "domain": "receipts",
      "summary": "Seal one telemetry batch into the workspace's witness chain — committing to the previous seal, the span ids and the count.",
      "description_key": "actions.receipts.counterwitness.seal.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.counterwitness.seal",
      "examples": [
        {
          "input": {
            "spanIds": [
              "span_a",
              "span_b"
            ],
            "sequence": 1,
            "prevHash": "GENESIS"
          },
          "output": {
            "seal": {
              "sequence": 1,
              "hash": "…",
              "prevHash": "GENESIS",
              "spanCount": 2,
              "sealedAt": "2026-09-04T00:00:00.000Z"
            }
          },
          "note": "Open a chain."
        }
      ]
    },
    {
      "id": "receipts.counterwitness.verify",
      "domain": "receipts",
      "summary": "Walk a chain of telemetry seals and report where it breaks — a deleted batch, a thinned one, or a forged relink.",
      "description_key": "actions.receipts.counterwitness.verify.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.counterwitness.verify",
      "examples": [
        {
          "input": {
            "seals": [],
            "spansBySequence": {}
          },
          "output": {
            "verdict": {
              "ok": false,
              "sealsChecked": 0,
              "brokeAt": 0,
              "reason": "No seals — an empty chain proves nothing."
            }
          },
          "note": "An empty chain is not valid — returning ok would make a wiped store indistinguishable from an intact one."
        }
      ]
    },
    {
      "id": "receipts.interpose.witness",
      "domain": "receipts",
      "summary": "Record one exchange that passed through the witness — the bytes on each side, the status, the timing, and which sides it could not read in full.",
      "description_key": "actions.receipts.interpose.witness.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.interpose.witness",
      "examples": [
        {
          "input": {
            "exchangeRef": "ex_01J…",
            "upstream": "https://someone-elses-agent.example/api",
            "request": {
              "observed": "complete",
              "bytes": 128,
              "sha256": "…",
              "contentType": "application/json"
            },
            "response": {
              "observed": "streamed",
              "contentType": "text/event-stream"
            }
          },
          "output": {
            "record": {
              "exchangeRef": "ex_01J…",
              "upstream": "https://someone-elses-agent.example/api",
              "request": {
                "observed": "complete"
              },
              "response": {
                "observed": "streamed"
              },
              "status": 200,
              "durationMs": 250,
              "fullyObserved": false,
              "gaps": [
                "response:streamed"
              ],
              "startedAt": "2026-09-04T00:00:00.000Z",
              "endedAt": "2026-09-04T00:00:00.250Z"
            }
          },
          "note": "A streamed response is a gap, not a silence."
        }
      ]
    },
    {
      "id": "receipts.interpose.vouch",
      "domain": "receipts",
      "summary": "Ask whether a witness record vouches for these bytes. A side the witness did not fully see answers `unverifiable`, never `mismatch`.",
      "description_key": "actions.receipts.interpose.vouch.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.interpose.vouch",
      "examples": [
        {
          "input": {
            "record": {},
            "claimed": {}
          },
          "output": {
            "verdict": {
              "request": "unverifiable",
              "response": "unverifiable"
            }
          },
          "note": "No claim is unverifiable, not a mismatch."
        }
      ]
    },
    {
      "id": "receipts.agent-ca.validate",
      "domain": "receipts",
      "summary": "Validate an agent certificate chain against a set of trusted roots — rejecting an unknown root outright rather than reporting 'valid, unknown issuer'.",
      "description_key": "actions.receipts.agent-ca.validate.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.agent-ca.validate",
      "examples": [
        {
          "input": {
            "chain": [
              {
                "subjectDid": "did:web:acme.example:agents:bot",
                "issuerDid": "did:web:agined.com",
                "safetyLevel": "mutation",
                "notBefore": "2026-08-01T00:00:00.000Z",
                "notAfter": "2026-10-01T00:00:00.000Z"
              }
            ],
            "anchors": [
              {
                "did": "did:web:agined.com",
                "maxAcceptedSafetyLevel": "destructive",
                "allowsFederation": true
              }
            ]
          },
          "output": {
            "verdict": {
              "ok": true,
              "rootDid": "did:web:agined.com",
              "effectiveLevel": "mutation",
              "linksWalked": 1
            }
          },
          "note": "A leaf under a trusted root."
        }
      ]
    },
    {
      "id": "receipts.agent-ca.issue",
      "domain": "receipts",
      "summary": "Sign a certificate for an agent under this platform's CA, and record it. The issuer is the platform's own key — never a caller input.",
      "description_key": "actions.receipts.agent-ca.issue.description",
      "safety_level": "destructive",
      "confirmation_policy": "mandate",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.agent-ca.issue",
      "examples": [
        {
          "input": {
            "subjectDid": "did:web:acme.example:agents:bot",
            "safetyLevel": "mutation",
            "notAfter": "2026-12-01T00:00:00.000Z",
            "published": true
          },
          "output": {
            "certificate": {
              "subjectDid": "did:web:acme.example:agents:bot",
              "issuerDid": "did:web:agined.com:ca:root",
              "safetyLevel": "mutation",
              "notBefore": "2026-09-04T00:00:00.000Z",
              "notAfter": "2026-12-01T00:00:00.000Z",
              "revoked": false,
              "signature": "…",
              "signingKeyId": "agent-ca-2026-root"
            },
            "fingerprint": "…",
            "published": true,
            "recordedAt": "2026-09-04T00:00:00.000Z"
          },
          "note": "Issue and publish. 501 when the CA has no signing identity configured — never an unsigned certificate."
        }
      ]
    },
    {
      "id": "receipts.agent-ca.record",
      "domain": "receipts",
      "summary": "Record an issued agent certificate, optionally publishing it to the transparency registry.",
      "description_key": "actions.receipts.agent-ca.record.description",
      "safety_level": "mutation",
      "confirmation_policy": "mandate",
      "idempotent": false,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.agent-ca.record",
      "examples": [
        {
          "input": {
            "certificate": {
              "subjectDid": "did:web:acme.example:agents:bot",
              "issuerDid": "did:web:agined.com",
              "safetyLevel": "mutation",
              "notBefore": "2026-08-01T00:00:00.000Z",
              "notAfter": "2026-10-01T00:00:00.000Z"
            },
            "published": true
          },
          "output": {
            "fingerprint": "…",
            "published": true,
            "recordedAt": "2026-09-04T00:00:00.000Z"
          },
          "note": "Record and publish."
        }
      ]
    },
    {
      "id": "receipts.agent-ca.revoke",
      "domain": "receipts",
      "summary": "Revoke a recorded certificate. It stays in the registry, flagged — a registry that hides revocations launders them.",
      "description_key": "actions.receipts.agent-ca.revoke.description",
      "safety_level": "destructive",
      "confirmation_policy": "always",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_invocation",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/receipts.agent-ca.revoke",
      "examples": [
        {
          "input": {
            "fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
            "reason": "agent decommissioned"
          },
          "output": {
            "revoked": true,
            "fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
            "revokedAt": "2026-09-04T00:00:00.000Z"
          },
          "note": "Kill a certificate."
        }
      ]
    },
    {
      "id": "witness.frameworks.list",
      "domain": "witness",
      "summary": "List the supported agent-framework catalog (~180 frameworks) with status, category, and integration pattern — the platform-wide registry, not product-scoped.",
      "description_key": "actions.witness.frameworks.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/witness.frameworks.list",
      "examples": [
        {
          "input": {
            "status": "stable"
          },
          "output": {
            "frameworks": [],
            "counts": {
              "stable": 0,
              "beta": 0,
              "comingSoon": 0,
              "total": 0
            }
          },
          "note": "All stable frameworks."
        }
      ]
    },
    {
      "id": "witness.frameworks.get",
      "domain": "witness",
      "summary": "Get one agent framework's catalog entry (support status, integration pattern, SDK package, docs).",
      "description_key": "actions.witness.frameworks.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/witness.frameworks.get",
      "examples": [
        {
          "input": {
            "frameworkId": "langchain"
          },
          "output": {
            "framework": {
              "id": "langchain",
              "name": "LangChain",
              "category": "orchestration",
              "status": "beta"
            }
          },
          "note": "LangChain's catalog entry."
        }
      ]
    },
    {
      "id": "witness.patterns.list",
      "domain": "witness",
      "summary": "List the 9 integration patterns an agent runtime can attach through (SDK, webhook, OAuth polling, cloud event, OTel, MCP server, LLM proxy, browser instrument, proprietary).",
      "description_key": "actions.witness.patterns.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/witness.patterns.list",
      "examples": [
        {
          "input": {},
          "output": {
            "patterns": []
          },
          "note": "The pattern catalog."
        }
      ]
    },
    {
      "id": "witness.subscriptions.get",
      "domain": "witness",
      "summary": "Get the Witness-Fabric subscription matrix — which products consume which record event classes from the neutral stream.",
      "description_key": "actions.witness.subscriptions.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/witness.subscriptions.get",
      "examples": [
        {
          "input": {},
          "output": {
            "subscriptions": {}
          },
          "note": "The WITNESS_SUBSCRIPTIONS routing matrix."
        }
      ]
    },
    {
      "id": "witness.records.list",
      "domain": "witness",
      "summary": "List the workspace's adapter-captured agent records from the neutral Witness-Fabric store (chain-free read — product-independent; no enrollment required).",
      "description_key": "actions.witness.records.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/witness.records.list",
      "examples": [
        {
          "input": {
            "frameworkId": "crewai",
            "limit": 20
          },
          "output": {
            "records": [],
            "count": 0,
            "nextCursor": null
          },
          "note": "Latest CrewAI records."
        }
      ]
    },
    {
      "id": "witness.records.post",
      "domain": "witness",
      "summary": "Post an adapter record directly onto the neutral Witness-Fabric plane (stored chain-free + fanned out to subscribing products; NOT anchored in Agined's Tops chain — use the ingest lane for evidentiary anchoring).",
      "description_key": "actions.witness.records.post.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/witness.records.post",
      "examples": [
        {
          "input": {
            "record": {
              "agentId": "did:web:example.com:agent:support",
              "event": "invocation",
              "occurredAt": "2026-07-19T12:00:00Z",
              "source": {
                "pattern": "sdk",
                "frameworkId": "langchain",
                "adapterVersion": "1.0.0",
                "ingestMode": "push"
              }
            }
          },
          "output": {
            "recordId": "wr_demo00000000000000000000",
            "deduplicated": false,
            "chainAnchored": true
          },
          "note": "Neutral-plane record post."
        }
      ]
    },
    {
      "id": "witness.records.stats",
      "domain": "witness",
      "summary": "Aggregate stats over the workspace's neutral witness stream (totals + per-framework / per-pattern / per-event counts).",
      "description_key": "actions.witness.records.stats.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [
        "rest",
        "mcp",
        "chatgpt_app",
        "gemini",
        "perplexity",
        "claude_cowork",
        "claude_skill",
        "a2a",
        "nlweb"
      ],
      "rest_endpoint": "/api/v1/actions/witness.records.stats",
      "examples": [
        {
          "input": {},
          "output": {
            "stats": {
              "total": 0,
              "byFramework": [],
              "byPattern": [],
              "byEvent": []
            }
          },
          "note": "Stream aggregates for dashboards."
        }
      ]
    },
    {
      "id": "tranquility.overview",
      "domain": "tranquility",
      "summary": "The workspace's live observability overview — agent-event stats, span stats, and SLO status, pulled live (honest source-unavailable states, never demo data).",
      "description_key": "actions.tranquility.overview.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.overview",
      "examples": [
        {
          "input": {},
          "output": {},
          "note": "Workspace observability at a glance."
        }
      ]
    },
    {
      "id": "tranquility.slos.list",
      "domain": "tranquility",
      "summary": "List the workspace's SLO definitions (latency, error-rate, cost-per-outcome, mandate-burn — one engine, any denomination).",
      "description_key": "actions.tranquility.slos.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.slos.list",
      "examples": [
        {
          "input": {},
          "output": {},
          "note": "All SLOs."
        }
      ]
    },
    {
      "id": "tranquility.slos.create",
      "domain": "tranquility",
      "summary": "Define an SLO: an SLI series + comparator + threshold + target attainment %, in any denomination (ms | ratio | usd | count | burn), with optional multi-window burn-rate alerting.",
      "description_key": "actions.tranquility.slos.create.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.slos.create",
      "examples": [
        {
          "input": {
            "name": "resolution cost",
            "sliSeries": "goal.cost_usd",
            "denomination": "usd",
            "comparator": "lte",
            "threshold": 0.85,
            "targetPct": 95
          },
          "output": {},
          "note": "A dollar-denominated SLO."
        }
      ]
    },
    {
      "id": "tranquility.slos.set-enabled",
      "domain": "tranquility",
      "summary": "Turn an SLO's tracking on or off. A disabled SLO keeps its history and refuses new evaluations.",
      "description_key": "actions.tranquility.slos.set-enabled.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.slos.set-enabled",
      "examples": [
        {
          "input": {
            "sloId": "tyslo_1",
            "enabled": false
          },
          "output": {},
          "note": "Stop tracking an SLO without losing its evaluations."
        }
      ]
    },
    {
      "id": "tranquility.slos.get",
      "domain": "tranquility",
      "summary": "Get one SLO definition + its recent evaluations (attainment, error budget, burn rate, status, coverage).",
      "description_key": "actions.tranquility.slos.get.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.slos.get",
      "examples": [
        {
          "input": {
            "sloId": "tyslo_x"
          },
          "output": {},
          "note": "SLO detail."
        }
      ]
    },
    {
      "id": "tranquility.slos.evaluate",
      "domain": "tranquility",
      "summary": "Evaluate an SLO now over a pushed SLI series; optionally SEAL the result as a signed, offline-verifiable attestation (?seal → ty-slo-attestation with its coverage embedded).",
      "description_key": "actions.tranquility.slos.evaluate.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.slos.evaluate",
      "examples": [
        {
          "input": {
            "sloId": "tyslo_x",
            "points": [
              {
                "ts": "2026-07-21T00:00:00Z",
                "value": 340
              }
            ],
            "seal": true
          },
          "output": {},
          "note": "Evaluate + attest."
        }
      ]
    },
    {
      "id": "tranquility.goals.list",
      "domain": "tranquility",
      "summary": "List goals (business outcomes) with their rolled cost decomposition + outcome stamp.",
      "description_key": "actions.tranquility.goals.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.goals.list",
      "examples": [
        {
          "input": {
            "outcome": "resolved"
          },
          "output": {},
          "note": "Resolved goals + their cost."
        }
      ]
    },
    {
      "id": "tranquility.goals.create",
      "domain": "tranquility",
      "summary": "Open a goal — a business outcome (ticket / booking / refund / conversation) whose full pursuit cost the Goal Ledger will stitch.",
      "description_key": "actions.tranquility.goals.create.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.goals.create",
      "examples": [
        {
          "input": {
            "externalRef": "ticket-42",
            "kind": "ticket",
            "costCenter": "cc-support"
          },
          "output": {},
          "note": "Open a support-ticket goal."
        }
      ]
    },
    {
      "id": "tranquility.goals.events.append",
      "domain": "tranquility",
      "summary": "Append cost events to a goal (turn / tool.call / retry / blocked / human / delivery); the ledger re-stitches the cost decomposition idempotently.",
      "description_key": "actions.tranquility.goals.events.append.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.goals.events.append",
      "examples": [
        {
          "input": {
            "goalId": "tygoal_x",
            "events": [
              {
                "eventType": "tool.call",
                "costUm": 1200
              }
            ]
          },
          "output": {},
          "note": "Log a tool call's cost."
        }
      ]
    },
    {
      "id": "tranquility.goals.close",
      "domain": "tranquility",
      "summary": "Stamp a goal's terminal outcome (resolved / abandoned / escalated / failed) — the attribution the Goal Ledger exists for.",
      "description_key": "actions.tranquility.goals.close.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": true,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.goals.close",
      "examples": [
        {
          "input": {
            "goalId": "tygoal_x",
            "outcome": "resolved"
          },
          "output": {},
          "note": "Resolve a goal."
        }
      ]
    },
    {
      "id": "tranquility.goals.summary",
      "domain": "tranquility",
      "summary": "Cost per RESOLVED outcome + the waste decomposition (productive vs retry vs loop vs governance-blocked vs human vs delivery) across the workspace or a cost center.",
      "description_key": "actions.tranquility.goals.summary.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.goals.summary",
      "examples": [
        {
          "input": {},
          "output": {},
          "note": "Unit economics summary."
        }
      ]
    },
    {
      "id": "tranquility.agent.records",
      "domain": "tranquility",
      "summary": "Read the workspace's normalized agent events across 180 frameworks (invocation / tool.call / memory.write / sub_agent.spawn / channel.message), filterable by framework/pattern/event/agent.",
      "description_key": "actions.tranquility.agent.records.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.agent.records",
      "examples": [
        {
          "input": {
            "frameworkId": "langchain",
            "event": "tool.call"
          },
          "output": {},
          "note": "Recent LangChain tool calls."
        }
      ]
    },
    {
      "id": "tranquility.agent.frameworks",
      "domain": "tranquility",
      "summary": "The supported agent-framework catalog this workspace can observe (the 180-framework matrix, live from the witness catalog).",
      "description_key": "actions.tranquility.agent.frameworks.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.agent.frameworks",
      "examples": [
        {
          "input": {},
          "output": {},
          "note": "Framework coverage."
        }
      ]
    },
    {
      "id": "tranquility.metrics.query",
      "domain": "tranquility",
      "summary": "Query the workspace's metric points (OTLP gauge/sum/histogram) over a window, optionally filtered to one metric name — pulled live from the collector, newest-first, keyset-paginated. Honest source-unavailable state, never demo data.",
      "description_key": "actions.tranquility.metrics.query.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.metrics.query",
      "examples": [
        {
          "input": {
            "name": "http.server.duration"
          },
          "output": {},
          "note": "Recent points for one metric."
        }
      ]
    },
    {
      "id": "tranquility.metrics.names",
      "domain": "tranquility",
      "summary": "The metric-name catalogue for the workspace (distinct name + type + unit + point count + last-seen over the window) — what metrics are actually flowing.",
      "description_key": "actions.tranquility.metrics.names.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.metrics.names",
      "examples": [
        {
          "input": {},
          "output": {},
          "note": "Which metrics exist."
        }
      ]
    },
    {
      "id": "tranquility.logs.search",
      "domain": "tranquility",
      "summary": "Search the workspace's OTLP log records over a window — filterable by a minimum severity floor (SeverityNumber 1–24) and by trace id (correlate logs to a trace's spans). Newest-first, keyset-paginated, honest source-unavailable state.",
      "description_key": "actions.tranquility.logs.search.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.logs.search",
      "examples": [
        {
          "input": {
            "minSeverity": 17
          },
          "output": {},
          "note": "Errors and worse."
        }
      ]
    },
    {
      "id": "tranquility.agent.tools",
      "domain": "tranquility",
      "summary": "Per-tool analytics across the witness stream: call counts, success/failure rate over KNOWN-outcome calls only, p50/p95 latency over TIMED calls only (with a timed/untimed coverage split), and top verbatim errors. Nothing is imputed.",
      "description_key": "actions.tranquility.agent.tools.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.agent.tools",
      "examples": [
        {
          "input": {
            "frameworkId": "langchain"
          },
          "output": {},
          "note": "Tool reliability + latency, honestly scoped."
        }
      ]
    },
    {
      "id": "tranquility.agent.fleet",
      "domain": "tranquility",
      "summary": "Per-agent fleet health: event counts by class, first/last seen, tool-failure rate over known-outcome calls, sub-agent spawn activity, and a CALIBRATED heuristic health tag (healthy/degraded/quiet) carrying a confidence + basis — never a bare score.",
      "description_key": "actions.tranquility.agent.fleet.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.agent.fleet",
      "examples": [
        {
          "input": {},
          "output": {},
          "note": "Which agents are healthy, degraded, or quiet."
        }
      ]
    },
    {
      "id": "tranquility.agent.failures",
      "domain": "tranquility",
      "summary": "Cluster failing tool calls by a normalized error signature (ids/numbers/urls/quotes masked) into ranked clusters, each with a count, distinct-agent count, window, and a VERBATIM earliest representative for audit. Only explicit failures are clustered.",
      "description_key": "actions.tranquility.agent.failures.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.agent.failures",
      "examples": [
        {
          "input": {},
          "output": {},
          "note": "Top failure clusters across the fleet."
        }
      ]
    },
    {
      "id": "tranquility.agent.runTree",
      "domain": "tranquility",
      "summary": "Reconstruct one run's step tree as a renderable DAG (sequence + spawn edges) from the witness stream, grouped by externalRefs.runId, with an HONEST unresolved-spawn coverage count and a stated grouping limitation.",
      "description_key": "actions.tranquility.agent.runTree.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.agent.runTree",
      "examples": [
        {
          "input": {
            "runId": "R1"
          },
          "output": {},
          "note": "A single agent run as a DAG."
        }
      ]
    },
    {
      "id": "tranquility.cognition.guardrailPressure",
      "domain": "tranquility",
      "summary": "Clause-level guardrail cartography over pushed governed-chain outcomes: per-clause firing/allow/deny tallies, near-miss (only where a margin is present and a threshold is passed — never inferred), dead-clause detection, and an optional governance-tax summary. Tags carry a calibration note.",
      "description_key": "actions.tranquility.cognition.guardrailPressure.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.cognition.guardrailPressure",
      "examples": [
        {
          "input": {
            "evaluations": [
              {
                "clause": "pii.redact",
                "outcome": "deny",
                "at": "2026-07-21T00:00:00Z"
              }
            ]
          },
          "output": {},
          "note": "Hot-clause vs dead-policy map."
        }
      ]
    },
    {
      "id": "tranquility.cognition.blastRadius",
      "domain": "tranquility",
      "summary": "Pre-execution plan vitals over a typed action catalogue: reversibility ratio + a calibrated 0..100 blast-radius intensity, computed BEFORE execution. Actions with no metadata are EXCLUDED from the score (never assumed safe) and reported as unknown.",
      "description_key": "actions.tranquility.cognition.blastRadius.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.cognition.blastRadius",
      "examples": [
        {
          "input": {
            "actionIds": [
              "files.delete",
              "email.send"
            ],
            "actionMeta": {
              "files.delete": {
                "safetyLevel": "destructive",
                "idempotent": false,
                "confirmationRequired": true
              },
              "email.send": {
                "safetyLevel": "mutation",
                "idempotent": false,
                "confirmationRequired": false
              }
            }
          },
          "output": {},
          "note": "Score a plan before it runs."
        }
      ]
    },
    {
      "id": "tranquility.cognition.charterConformance",
      "domain": "tranquility",
      "summary": "Diff an agent's observed behavior against its declared Agined mandate (allowed tools / autonomy ceiling / allowed tones). A pure diff with a COVERAGE statement: an undeclared dimension is unposeable, and a no-mandate case returns undefined, never a fabricated 100%.",
      "description_key": "actions.tranquility.cognition.charterConformance.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.cognition.charterConformance",
      "examples": [
        {
          "input": {
            "observed": {
              "tools": [
                "search",
                "email.send"
              ]
            },
            "declared": {
              "allowedTools": [
                "search"
              ]
            }
          },
          "output": {},
          "note": "Detect off-mandate tool use."
        }
      ]
    },
    {
      "id": "tranquility.cognition.vocabularyDrift",
      "domain": "tranquility",
      "summary": "Vocabulary drift — Driftvice pointed at agents. TY NOMINATES candidate named-concepts from the agent stream (multi-word Title-Case + quoted, with verbatim evidence); Driftvice (the canon authority) returns each term's status (governed-settled / governed-drifting / ungoverned). Unresolvable terms are 'unknown', never a fabricated verdict; when Driftvice is unbound the candidates return with canon status unavailable.",
      "description_key": "actions.tranquility.cognition.vocabularyDrift.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.cognition.vocabularyDrift",
      "examples": [
        {
          "input": {
            "topN": 25
          },
          "output": {},
          "note": "Which named concepts the fleet uses are drifting or ungoverned."
        }
      ]
    },
    {
      "id": "tranquility.evidence.usage.seal",
      "domain": "tranquility",
      "summary": "Seal the cost-per-outcome summary as a signed, offline-verifiable usage/chargeback ledger (ty-usage-ledger).",
      "description_key": "actions.tranquility.evidence.usage.seal.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.evidence.usage.seal",
      "examples": [
        {
          "input": {
            "costCenter": "cc-support"
          },
          "output": {},
          "note": "Signed chargeback statement."
        }
      ]
    },
    {
      "id": "tranquility.evidence.coverage.seal",
      "domain": "tranquility",
      "summary": "Seal an aggregate figure with its coverage statement as a signed artifact — 'p95 = 340ms over 100% of traffic with zero drop windows, signed' (ty-coverage-statement).",
      "description_key": "actions.tranquility.evidence.coverage.seal.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.evidence.coverage.seal",
      "examples": [
        {
          "input": {
            "metric": "p95",
            "value": 340,
            "unit": "ms"
          },
          "output": {},
          "note": "Signed coverage-stated figure."
        }
      ]
    },
    {
      "id": "tranquility.artifacts.list",
      "domain": "tranquility",
      "summary": "List the signed evidence artifacts TY has minted for this workspace (attestations, usage ledgers, coverage statements, sealed alarms) with their verify references.",
      "description_key": "actions.tranquility.artifacts.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.artifacts.list",
      "examples": [
        {
          "input": {
            "subjectKind": "slo"
          },
          "output": {},
          "note": "Signed SLO attestations."
        }
      ]
    },
    {
      "id": "tranquility.views.list",
      "domain": "tranquility",
      "summary": "List saved views / custom monitors for a surface.",
      "description_key": "actions.tranquility.views.list.description",
      "safety_level": "read",
      "confirmation_policy": "none",
      "idempotent": true,
      "permissions": [],
      "audit_kind": "agent_read",
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.views.list",
      "examples": [
        {
          "input": {
            "surface": "agent"
          },
          "output": {},
          "note": "Agent-surface views."
        }
      ]
    },
    {
      "id": "tranquility.views.create",
      "domain": "tranquility",
      "summary": "Save a view / custom monitor (a signal + selector + panel spec) for reuse on a dashboard surface.",
      "description_key": "actions.tranquility.views.create.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.views.create",
      "examples": [
        {
          "input": {
            "name": "tool heatmap",
            "surface": "agent",
            "spec": {
              "panel": "heatmap"
            }
          },
          "output": {},
          "note": "Save a monitor."
        }
      ]
    },
    {
      "id": "tranquility.views.delete",
      "domain": "tranquility",
      "summary": "Delete a saved view / custom monitor.",
      "description_key": "actions.tranquility.views.delete.description",
      "safety_level": "mutation",
      "confirmation_policy": "ask",
      "idempotent": false,
      "permissions": [],
      "audit_kind": null,
      "rate_class": "default",
      "surfaces": [],
      "rest_endpoint": "/api/v1/actions/tranquility.views.delete",
      "examples": [
        {
          "input": {
            "viewId": "tyv_01H…"
          },
          "output": {
            "deleted": true
          },
          "note": "Remove a saved monitor."
        }
      ]
    }
  ]
}