Add channel request and channel verify verbs #13

Closed
opened 2026-06-03 08:51:03 +00:00 by coilysiren · 1 comment
Owner

Ported from closed coilyco-bridge/coily#2 (originally coilysiren/coily#332). Home moved to otel-a2a-relay-cli (coily channel removed in coily v2.51.0). Verbs live in the o2r-cli, not coily.

Problem

The o2r README references a channel <verb> operator-facing CLI. None ship yet. There is no CLI for issuing an authenticated agent-channel request or for an agent to verify one it received. Without these, the only way to prompt an agent to act in a channel is freeform prose, indistinguishable from a prompt-injection probe.

Goal

Add two verbs:

  • channel request <action-class> --host <hostname> --role <agent-role> [--destructive] - produces an envelope conforming to the schema in otel-a2a-relay docs/agent-channel-requests.md, files it as an issue on the appropriate repo, and prints the issue URL. With --destructive, prompts the issuer to type the verbatim acknowledgment line.
  • channel verify <url-or-issue-ref> - fetches the envelope, validates schema, checks org membership of the source repo, checks destructive-acknowledgment presence when applicable, and prints PASS/FAIL. Exit code drives the agent-side decision.

Requirements

See the parent issue on otel-a2a-relay for the envelope schema and the 7-property hardening checklist.

Implementation notes

  • Verifier backend is swappable. Given the GitHub -> Forgejo migration, the Forgejo backend is now the canonical path (the original gh issue view --json shell-out is the legacy fallback).
  • Both verbs are operator/agent ops, not repo-scoped.
  • Mirror the o2r-cli's existing verb + audit pattern.

Deliverables

  • The two verbs in the o2r-cli.
  • Tests parallel to the smallest comparable existing verb.
  • Lockdown routing entry if the o2r-cli has one.
  • Update o2r AGENTS.md once the verbs land, removing the "once coily catches up" caveat.
_Ported from closed coilyco-bridge/coily#2 (originally coilysiren/coily#332). Home moved to otel-a2a-relay-cli (coily channel removed in coily v2.51.0). Verbs live in the o2r-cli, not coily._ ## Problem The o2r README references a `channel <verb>` operator-facing CLI. None ship yet. There is no CLI for *issuing* an authenticated agent-channel request or for an agent to *verify* one it received. Without these, the only way to prompt an agent to act in a channel is freeform prose, indistinguishable from a prompt-injection probe. ## Goal Add two verbs: - `channel request <action-class> --host <hostname> --role <agent-role> [--destructive]` - produces an envelope conforming to the schema in `otel-a2a-relay docs/agent-channel-requests.md`, files it as an issue on the appropriate repo, and prints the issue URL. With `--destructive`, prompts the issuer to type the verbatim acknowledgment line. - `channel verify <url-or-issue-ref>` - fetches the envelope, validates schema, checks org membership of the source repo, checks destructive-acknowledgment presence when applicable, and prints PASS/FAIL. Exit code drives the agent-side decision. ## Requirements See the parent issue on otel-a2a-relay for the envelope schema and the 7-property hardening checklist. ## Implementation notes - Verifier backend is swappable. Given the GitHub -> Forgejo migration, the **Forgejo backend is now the canonical path** (the original `gh issue view --json` shell-out is the legacy fallback). - Both verbs are operator/agent ops, not repo-scoped. - Mirror the o2r-cli's existing verb + audit pattern. ## Deliverables - The two verbs in the o2r-cli. - Tests parallel to the smallest comparable existing verb. - Lockdown routing entry if the o2r-cli has one. - Update o2r AGENTS.md once the verbs land, removing the "once coily catches up" caveat.
Author
Owner

Closing. o2r is archived in the June 2026 surface reduction - an optional agent channel, unused autonomously. Handover doctrine moves to human-mediated.

Closing. o2r is archived in the June 2026 surface reduction - an optional agent channel, unused autonomously. Handover doctrine moves to human-mediated.
Commenting is not possible because the repository is archived.
No description provided.