/** * Shared `permissions` CLI implementation. Each harness's `cli/main.ts` * delegates to {@link runPermissionsCommand}, passing the harness's name so the * report can scope to that harness's tool catalog. * * `permissions` takes **no subcommand** — it is a single read-only report: the * live permission mode (read from the Ory project), the subject being checked, * and the allow / deny / blocked breakdown across the harness's known tool * catalog. (`permissions status` is still accepted; it was the name through * v0.14, and the report is the same.) * * Everything that *writes* to the project is provisioned in the **Ory Console** * (Agent Security), not from the plugin: the permission model, explicit native * blocks, MCP grants, and the observe/enforce posture. That is what lets a * plugin be installed with nothing but a project URL — the public OAuth2 client * id has a reserved default, with no workspace privilege, project API key, or admin write path. The * plugin is a read-only client of the project's permission state. */ /** * Entry point invoked by each harness CLI's `permissions` case. * * Returns the intended process exit code (0 on success, 1 on usage or * config error). Never throws — surfaces failures via stderr + non-zero * exit so the parent CLI doesn't need a try/catch. */ export declare function runPermissionsCommand(binName: string, harness: string, args: string[]): Promise;