Skip to content

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.

Among the partsfrom the spec
Operations30 GET 20 · POST 8 · DELETE 1 · PUT 1
Resources9
Leaned on byno other service names it
Leans onnone named
In recipesCompanies 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

MethodPathDoes
GET/api/v1/instancesList durable instances (tenant-scoped, newest first)
POST/api/v1/instancesStart a durable graph instance
GET/api/v1/instances/{instance_id}One instance — summary + params + result_data
POST/api/v1/instances/{instance_id}/cancelCancel an instance (409 if already terminal)
POST/api/v1/instances/{instance_id}/deliverDeliver an external event to a waiting instance (a human gate's release)
GET/api/v1/instances/{instance_id}/diagramThe instance's graph as a Waggle flowchart, with a dry run's progress marked (✓ ran · ▶ parked · ✗ failed)
GET/api/v1/instances/{instance_id}/historyReplay history (op results + satisfied waits, oversized values truncated)
POST/api/v1/instances/{instance_id}/resume-atRe-enter an earlier node (send-back, reopen, rebuild) and run from there
GET/api/v1/instances/{instance_id}/testThe promotion test generated from a clean dry run (pytest source)
GET/api/v1/instances/{instance_id}/transcriptA dry run's transcript — ?format=json (Appendix A) or text (the line rendering)
10 operations

templates

MethodPathDoes
GET/api/v1/templatesList user-authored templates (tenant-scoped)
POST/api/v1/templatesSave 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}/evidenceAttach a clean dry run as evidence: the template becomes 'saved'
6 operations

services

MethodPathDoes
GET/api/v1/servicesList composed services
GET/api/v1/services/cbhelm/streamcbhelm live event stream (SSE): transcript frames + decision tee-ups
GET/api/v1/services/cbhelm/transcriptcbhelm 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

MethodPathDoes
GET/api/v1/graphsGraph 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}/diagramA graph drawn as a Waggle flowchart (Mermaid text: work = rectangle, gate = diamond)
3 operations

health

MethodPathDoes
GET/healthBasic health check
GET/health/detailedDetailed health check
2 operations

ops

MethodPathDoes
GET/api/v1/opsRegistered operation catalog
1 operation

plan

MethodPathDoes
POST/api/v1/planDescribe an input/output, get back a runnable graph plan (never executes)
1 operation

prime

MethodPathDoes
GET/primePrime application caches
1 operation

status

MethodPathDoes
GET/statusService 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

Anti-cloud. Host local, think global.

Terminal
/terminal