# MISSIONS

> Governed AI agent mission control — Welcome tour, Living Surface (mission ↔ app ↔ skills ↔ produced data), installable mission gallery with crew-forge, full-height visual designer, governance policies that compile into enforced approval gates, human-in-the-loop test runs, trust, audit. EN/FI. This document tells an agent how to call it.

## Installation

Nothing to install. This app runs on an AIMEAT node and is reachable two ways.

Over MCP — attach any MCP-capable client to `https://aimeat.io/v1/mcp` (OAuth 2.1), then:

```
    owner:  happydude500001
    app_id: missions.html        (not "missions")

aimeat_app_tools_get   { owner: "happydude500001", app_id: "missions.html" }
```

Over HTTP — get an identity through the RFC 8628 device flow described at `https://aimeat.io/auth.md`, then
call the endpoints in `https://aimeat.io/v1/spec`.

## Configuration

- **Scopes.** The owner approves a scope set when they approve your agent. A call outside it
  answers 403 naming the scope, never an empty result.
- **Payment.** Priced tools answer 402 with the terms attached until a checkout for them completes;
  completing the checkout IS the invocation.
- **Schemas.** Every tool carries a full input and output schema in the manifest, so nothing has to
  be inferred from the app source: `https://aimeat.io/v1/apps/happydude500001/missions.html/webmcp`

## Usage

```
aimeat_app_tool_invoke {
  owner: "happydude500001",
  app:   "missions.html",
  tool:  "search",
  input: { ... }
}
```

This app publishes no priced tools.

## What this app does

# MISSIONS — governed agent mission control (agent read-surface)

MISSIONS (https://missions.apps.aimeat.io) is a UI over the node's **Agent Workflows** API.
A mission = a workflow definition at `workflows.def.<id>`. Everything the UI shows, you can
read and change with the standard `aimeat_workflow_*` MCP tools — the app live-updates over SSE,
so the owner SEES your changes the moment you make them.

## Operate missions

- **List / inspect**: `aimeat_workflow_get` (omit id to list; pass id for definition + blueprint + recent runs).
- **Design / modify**: `aimeat_workflow_save` (id + full definition). Steps: agent steps
  `{id, agent, offer, after?, description, timeout_min?}` and human approval steps
  `{id, description, required_to_function:"none", timeout_min:1440, action:{kind:"human-input",
  question:{prompt, options:[{id,label}...]}, answer_to_key:"missions.gate.{run}.<id>", on_timeout:"fail"}}`.
  Downstream steps gate on the answer with `required_to_function {kind:"deterministic",
  key:"missions.gate.{run}.<id>", op:"json_field", path:"pick", equals:"approve"}`.
- **Run**: `aimeat_workflow_run` (mode signals-only = instant health check; full = live).
- **Human input**: `aimeat_workflow_pending_inputs` lists steps waiting on the owner;
  `aimeat_workflow_answer` relays the owner's decision — ONLY relay a decision the owner
  actually made, never invent one.

## MISSIONS conventions (respect these so the app stays coherent)

- The designer's editable SOURCE lives at owner memory `missions.source.<id>`; the node def is the
  policy-COMPILED artifact. If you change a def directly, also update `missions.source.<id>`
  (same shape, minus `policy-gate-*` steps) or the owner's designer will show a stale source.
- Governance rules live at `missions.policy.rules.<id>`
  (`{id, enabled, priority, title, if:{agent_trust_tier_at_most?, offer_consequences_any?,
  trigger_kind_any?, writes_key_matching?, estimated_cost_morsels_above?, uses_llm_signals?},
  then:{action: deny|escalate|require-approval|cap-cost|warn, cap_morsels?, message}}`).
  HONOR them: when a rule escalates a step you touch, keep/inject its `policy-gate-<step>`
  human-input gate instead of removing it.
- Canvas positions: `missions.designer.layout.<id>`; audit notes: `missions.audit.notes.<runId>`.

Install the `missions-mission-control` skill (aimeat_skill_get) for the full playbook.

## Agent affordances

- Act — WebMCP tool listing for this app: https://aimeat.io/v1/apps/happydude500001/missions.html/webmcp
- Learn — skills bound to this app: https://aimeat.io/v1/apps/happydude500001/missions.html/skills
- App catalog on this node (this app: happydude500001/missions.html): https://aimeat.io/app-catalog.html
- Register an agent on this node (RFC 8628 device flow): https://aimeat.io/auth.md


## Where the rest is

- [llms.txt](https://missions.apps.aimeat.io/llms.txt) · [Site map](https://missions.apps.aimeat.io/sitemap.md)
- [Node manual](https://aimeat.io/llms-full.txt) · [Node glossary](https://aimeat.io/v1/glossary.md) · [OpenAPI](https://aimeat.io/v1/spec)
