Forge
Turns a graph of calls to other parts into a service of its own, run as the person who asked; a dry run proves it first.
glueRunning the shop30 operationsid forge
How it sits
Glue chains parts together and keeps the result running. The counts and the links below are from the platform's spec and the other services' own descriptions.
| Operations | 30 GET 20 · POST 8 · DELETE 1 · PUT 1 |
| Resources | 9 |
| Leaned on by | no other service names it |
| Leans on | none named |
| In recipes | Companies near home: find them, watch them, read their jobs and news |
What it can do
30 operations in 9 resources, as the spec declares them. Each row is one call; paths are relative to the part.
instances
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/instances | List durable instances (tenant-scoped, newest first) |
| POST | /api/v1/instances | Start a durable graph instance |
| GET | /api/v1/instances/{instance_id} | One instance — summary + params + result_data |
| POST | /api/v1/instances/{instance_id}/cancel | Cancel an instance (409 if already terminal) |
| POST | /api/v1/instances/{instance_id}/deliver | Deliver an external event to a waiting instance (a human gate's release) |
| GET | /api/v1/instances/{instance_id}/diagram | The instance's graph as a Waggle flowchart, with a dry run's progress marked (✓ ran · ▶ parked · ✗ failed) |
| GET | /api/v1/instances/{instance_id}/history | Replay history (op results + satisfied waits, oversized values truncated) |
| POST | /api/v1/instances/{instance_id}/resume-at | Re-enter an earlier node (send-back, reopen, rebuild) and run from there |
| GET | /api/v1/instances/{instance_id}/test | The promotion test generated from a clean dry run (pytest source) |
| GET | /api/v1/instances/{instance_id}/transcript | A dry run's transcript — ?format=json (Appendix A) or text (the line rendering) |
10 operations
templates
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/templates | List user-authored templates (tenant-scoped) |
| POST | /api/v1/templates | Save a new template (validated: loader + validate_graph) |
| DELETE | /api/v1/templates/{template_id} | Soft-delete a template (creator or *.*.* only) |
| GET | /api/v1/templates/{template_id} | Get one template |
| PUT | /api/v1/templates/{template_id} | Update a template (creator or *.*.* only; re-validated) |
| POST | /api/v1/templates/{template_id}/evidence | Attach a clean dry run as evidence: the template becomes 'saved' |
6 operations
services
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/services | List composed services |
| GET | /api/v1/services/cbhelm/stream | cbhelm live event stream (SSE): transcript frames + decision tee-ups |
| GET | /api/v1/services/cbhelm/transcript | cbhelm recent transcript (history the SSE stream continues from) |
| GET | /api/v1/services/{service}/{entrypoint} | Invoke a read-flavored entrypoint (query params = graph inputs) |
| POST | /api/v1/services/{service}/{entrypoint} | Invoke an entrypoint (body = graph inputs) |
5 operations
graphs
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/graphs | Graph catalog — file corpus + mounted service graphs + templates |
| GET | /api/v1/graphs/{graph_id} | One graph's full definition (node tree + raw source) |
| GET | /api/v1/graphs/{graph_id}/diagram | A graph drawn as a Waggle flowchart (Mermaid text: work = rectangle, gate = diamond) |
3 operations
health
| Method | Path | Does |
|---|---|---|
| GET | /health | Basic health check |
| GET | /health/detailed | Detailed health check |
2 operations
ops
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/ops | Registered operation catalog |
1 operation
plan
| Method | Path | Does |
|---|---|---|
| POST | /api/v1/plan | Describe an input/output, get back a runnable graph plan (never executes) |
1 operation
prime
| Method | Path | Does |
|---|---|---|
| GET | /prime | Prime application caches |
1 operation
status
| Method | Path | Does |
|---|---|---|
| GET | /status | Service status overview |
1 operation
All the partsRunning the shopThe platform's own id for this service is cbforge.
forge-catalog.json, generated Oct 30, 2026