Skip to content

Agent surface lane: metered contract #580

Description

@omridevk

Parent

#579

What to build

Every core contract procedure carries agent metadata that classifies it for the agent catalog, and the generic invoke-any-tool procedure is gone. Outcome: the whole contract classifies cleanly in a test (each procedure resolves to free/ask/deny per the spec table, or is explicitly excluded), and the widget calls procedures directly instead of through the generic dispatcher.

Spec: docs/superpowers/specs/2026-08-22-agent-api-surface-design.md (meta type, classification table). Plan tasks 1 and 4 in docs/superpowers/plans/2026-08-22-agent-api-surface-platform.md.

Acceptance criteria

  • Shared AgentMeta type + policy resolver with tests: agent-exclusion resolved before the summary requirement; bare-but-summarized = ask; first-party readonly non-sensitive = free; sensitive reads = ask; third-party readonly = ask unless trusted; deterministic name encoding
  • All 40 core procedures metered per the spec classification; summaries written as agent-facing documentation
  • chat.permissionDecision and page.reply excluded; registry.call deleted, widget call sites migrated
  • Classification test walks the real contract and proves the above

Blocked by

None — can start immediately.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentTicket is fully specified and agent-grabbable

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions