Open the Host folder picker and return one opaque, single-use selector.
Optionalinput: EvaluationFolderSelectionInputCreate Host-routed work from one completed proposal and a Host selector.
Read bounded remediation status without exposing its working directory.
Read one bounded Host-owned run detail.
Read bounded Host-owned run summaries. No evidence bytes or paths cross.
Optionalinput: EvaluationRunListInputList bounded Host-selected roots; selectors never disclose filesystem paths.
Optionalinput: EvaluationWorkRootListInputRequest a Host-resolved evaluation after native source selection.
Ask Host to derive and launch a new run from the selected canonical run.
Start remediation only for an already rooted work item.
Bundled-Icons-only generated-icon transaction. Main owns provider egress, secret resolution, durable persistence, and Asset publication.
Cancel the active generation request, if one exists.
Read the canonical App Icon catalog used by every host picker, plus
named read-only projections such as the exact bundled collection.
System Icons (host-ui-icon) are structurally excluded.
Delete one global App Icon after host confirmation. This destructive
operation has its own requests.chrome: ["project-icon-delete"] gate;
cancelling the confirmation resolves with null.
Set or clear a host project icon. Bundled/system-app only; requires
requests.chrome: ["project-icons"] and the projectIcons.manage grant.
Batch variant for icon-library apply flows.
List projects that may receive an App Icon. This narrow read avoids requesting agent-dispatch authority merely to render an app picker.
Wait for the canonical catalog revision to change. A timeout resolves successfully with the unchanged snapshot.
Authority for host.projectIcons
Reviewed request token: chrome.project-icons. Standing capability: projectIcons.manage.
Handle structured ProjectRpcError failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. Method authority and recovery.
List registered projects for a picker. Read-only and grantless; the result intentionally contains no project roots or authority metadata.
Read the canonical UI-sound catalog (every accepted ui-sound asset).
Requires requests.chrome: ["host-sound-catalog"] and the
hostSounds.manage grant; catalog access does not by itself request
assignment.
Assign or clear the host UI sound for one slot (soundRef: null clears
back to the host default). Requires requests.chrome: ["host-sounds"]
and the hostSounds.manage grant. The host validates the ref is an
accepted ui-sound asset (PCM WAV, ≤ 3s, ≤ 2MB) at assignment time.
Batch variant for sound-library apply flows (max 50 updates). Same
requests.chrome: ["host-sounds"] + hostSounds.manage gate as set.
List the host sound slots (id, label, description, current soundRef).
The slot vocabulary is closed and host-owned; treat this as the runtime
authority rather than hardcoding HostSoundSlotId. Same
requests.chrome: ["host-sounds"] + hostSounds.manage gate as set.
Wait for the canonical catalog revision to change. A timeout resolves
successfully with the unchanged snapshot. Same
requests.chrome: ["host-sound-catalog"] + hostSounds.manage gate as
catalog.
List the canonical spec outline. Requires the existing spec principal; no repository root or absolute path crosses the project boundary.
Read one canonical Markdown source by manifest id. Caller paths are not accepted or resolved.
Hand a prompt to the host Chat pane: the host seeds the currently
selected chat/draft composer with prompt and focuses it (does not start
a new chat). Fire-and-forget (a host-chrome trigger, NOT an RPC — there is
no reply). The user still presses Send; a sandboxed project can never make
the assistant act on its own, so this is not gated by a device/consent
grant — the human Send is the trust boundary. A no-op when not embedded
(window.parent === window) or when prompt is empty. Only honored for
the currently active project's chat. Use it to demonstrate or seed a
"change this app" prompt in-product.
Request coarse host navigation (needs "navigate" in requests.ui;
cross-project also needs the ui.navigate grant, same-project does not).
To bring the user to an EXACT agent terminal — e.g. the one you just
agent.spawn-ed — pass { kind: 'agents', terminalId } with the spawn
result's terminalId (focuses it directly, no entity round-trip);
terminalSessionId focuses by the terminal.session entity id instead,
and a bare { kind: 'agents' } opens the panel.
Authority for host.navigate
Reviewed request token: ui.navigate. Authority depends on the arguments, resource, and caller; check the live capability surface.
Handle structured ProjectRpcError failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. Method authority and recovery.
Subscribe to host-mediated in-app navigation for this project iframe.
Open the host Create intake with an editable title and prompt. This is a host-chrome trigger, not project-creation authority: the host attributes the sender, and the user still deliberately submits the intake.
Open an HTTP(S) URL in the persistent ISPO Browser. Grantless but
trust-gated: allowed for workspace/privileged-workspace projects,
rejected with host.openExternal: trust-blocked for quarantined/sandboxed
ones, and rejected for non-http(s) URLs. Plain <a href> clicks to
external URLs are routed here automatically by connectToHost(), so call
this only for programmatic opens (buttons, card clicks). Never navigate
window.location to an external URL — the host CSP kills that navigation
and blanks the app frame.
Authority for host.openExternal
No static request token. No static standing capability. Resource bindings, identity checks, or interactive consent may still apply.
Handle structured ProjectRpcError failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. Method authority and recovery.
Propose per-file spec edits to host chrome (Spec → live document, Phase 3).
Fire-and-forget: posts a spec-propose-edits wire frame to the host.
disposition: 'review' (default) opens the diff modal; disposition: 'save'
commits immediately under the user's Save click (no modal / no agent).
Commit is still host-owned and gated by spec.propose — not an RPC.
Only the bundled/privileged spec project uses it.
The platform capability vocabulary plus THIS project's own envelope (§10.33). Grantless, argument-free, and inert: every project method with the declaration token and grant capability its gates read, the connector providers and host catalog selectors, device features, built-in entity types, and a
selfblock with the caller's reviewed requests, live grants, and trust class.Use it to render an honest blocked state — "Calendar write isn't granted yet" with a one-click ask — instead of discovering a missing grant from a failed call. It discloses no other project's envelope and grants nothing: a listed method still faces both gates when you call it.