Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,8 @@ dashboard view (`g`), as plain text, and as `/dispatch graph html`, a self conta
opens from disk (still no server and no port) with the topology drawn Node-RED style
([`docs/graph.md`](docs/graph.md)).

![The trigger and flow graph as /dispatch graph html draws it: cron and forge triggers wired to their flows, an observed chain edge carrying its run count, a potential mention, cron re-arm loops with their schedules, an orphan skill dimmed, per-trigger run counts with outcomes, and the legend stating the chain caps](docs/images/graph-view.png?v=0.9.0)

```bash
pi install npm:@edgehero/pi-dispatch-admin # then, in pi: /dispatch
```
Expand Down
6 changes: 6 additions & 0 deletions admin/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,12 @@ One command puts a live TUI over the whole deployment:
<img src="https://raw.githubusercontent.com/edgehero/pi-dispatch/main/docs/images/costs-view.png?v=0.5.0" alt="The COSTS view: per-plan verdicts against API rates, a daily spend sparkline, per-flow spend with API equivalents, and subscription amortization" width="820">
</p>

- **The topology, as a graph.** The GRAPH view (`g`) and `/dispatch graph` show what triggers what, what chained to what in the recorded runs, and what a skill's own text says it might chain to, with orphan skills and dangling triggers flagged. `/dispatch graph html` draws the same picture Node-RED style in your browser, from one self contained file on disk: no server, no port, and the page reloads itself when you regenerate it.

<p align="center">
<img src="https://raw.githubusercontent.com/edgehero/pi-dispatch/main/docs/images/graph-view.png?v=0.9.0" alt="The trigger and flow graph: triggers wired to their flows, an observed chain edge with its count, a potential mention, cron re-arm loops, an orphan skill dimmed, and the legend stating the chain caps" width="820">
</p>

- **Triggers, editable live.** cron, label, comment and pull_request triggers with colored drill-ins showing what fires each one, what it runs, and its trust model. Added, edited and deleted without a restart. Triggers that run third-party code or a custom image are badged; opting in or out of either stays an edit to the reviewed `triggers.json`, which neither the console nor a model-callable tool will make for you.
- **Quiet hours.** Scheduled pause windows per folder or repo: defer runs between certain times, timezone-aware, and resume automatically. Deferred, never dropped, at zero budget cost.
- **AI-operable, with a human gate.** Model-callable tools let an agent change limits and manage triggers and pause windows, and every **config** write pops an operator confirmation the model cannot answer, refusing outright when no operator is present. Two tools sit outside that gate on purpose: `dispatch_pause` and `dispatch_resume` write durable queue state but are reversible and spend nothing, so they carry no confirm. One more sits outside it and is **not** money-safe: `dispatch_run` enqueues a **paid** run that edits a local folder in place with no undo, bounded instead by six independent limits (the `PI_DISPATCH_RUN_ROOTS` folder allowlist, a committed per-flow `ai-trigger: allow` opt-in read at a pre-agent SHA, a dirty-tree refusal with no force option, no spend knobs on the tool, a per-hour rate limit, and the worker's daily cap). Read [`SECURITY.md`](https://github.com/edgehero/pi-dispatch/blob/main/SECURITY.md) on that one before you enable it. The bundled `operate-pi-dispatch` skill teaches the agent those gates.
Expand Down
2 changes: 2 additions & 0 deletions docs/graph.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ git, and topology changes when you edit things, not per second. `Esc` returns to

## `/dispatch graph html`: the browser view

![The graph page: triggers wired to their flows Node-RED style, an observed chain edge with its count, a potential mention, cron re-arm loops, an orphan skill dimmed, and the legend](images/graph-view.png?v=0.9.0)

`/dispatch graph html` renders the same model as a Node-RED-style diagram: trigger nodes wired to
their flows, observed chain edges with their counts, potential (mentioned) edges dashed, folders as
group boxes, orphans dimmed and dashed, dangling triggers flagged. It writes **one self-contained
Expand Down
Binary file added docs/images/graph-view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading