feat: browser-style panel nav, repo file routing, migration 0007
graph, search, api_catalog pages: back/forward history stack (PanelNav/dpNav). File artifact paths open in external tabs via card.repo (Gitea source URL) or card.docs (cargo docs for .rs) — openFile/openFileInPanel removed from all pages. Tera | safe required for URL values inside <script> blocks (auto-escape of slashes). card.ncl: repo field added. insert_brand_ctx: injects card_repo/card_docs into Tera context. #[onto_api] proc-macro: source_file = file!() emitted; ApiRouteEntry.source_file populated in primary catalog handler. migration 0007-card-repo-field: check card.ncl for repo field; skip if absent.
This commit is contained in:
parent
75892a8eea
commit
183b8dcb3f
964
api-catalog.json
964
api-catalog.json
@ -1,964 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/actors",
|
|
||||||
"description": "List all registered actor sessions with their last-seen timestamp and pending notification count",
|
|
||||||
"auth": "viewer",
|
|
||||||
"actors": [
|
|
||||||
"developer",
|
|
||||||
"admin"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "project",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Filter by project slug"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"actors"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "POST",
|
|
||||||
"path": "/actors/register",
|
|
||||||
"description": "Register an actor session and receive a bearer token for subsequent calls",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer",
|
|
||||||
"ci"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "actor",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Actor type (agent|developer|ci|admin)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "project",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug to associate with"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "label",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Human label for audit trail"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"actors",
|
|
||||||
"auth"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "DELETE",
|
|
||||||
"path": "/actors/{token}",
|
|
||||||
"description": "Deregister an actor session and invalidate its bearer token",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer",
|
|
||||||
"ci"
|
|
||||||
],
|
|
||||||
"params": [],
|
|
||||||
"tags": [
|
|
||||||
"actors",
|
|
||||||
"auth"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "POST",
|
|
||||||
"path": "/actors/{token}/profile",
|
|
||||||
"description": "Update actor profile metadata: display name, role, and custom context fields",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [],
|
|
||||||
"tags": [
|
|
||||||
"actors"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "POST",
|
|
||||||
"path": "/actors/{token}/touch",
|
|
||||||
"description": "Extend actor session TTL; prevents the session from expiring due to inactivity",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer",
|
|
||||||
"ci"
|
|
||||||
],
|
|
||||||
"params": [],
|
|
||||||
"tags": [
|
|
||||||
"actors"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/adr/{id}",
|
|
||||||
"description": "Read a single ADR by id, exported from NCL as structured JSON",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug (defaults to primary)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"adrs"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/api/catalog",
|
|
||||||
"description": "Full catalog of daemon HTTP endpoints with metadata: auth, actors, params, tags",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer",
|
|
||||||
"ci",
|
|
||||||
"admin"
|
|
||||||
],
|
|
||||||
"params": [],
|
|
||||||
"tags": [
|
|
||||||
"meta",
|
|
||||||
"catalog"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/backlog-json",
|
|
||||||
"description": "Export the project backlog as structured JSON from reflection/backlog.ncl",
|
|
||||||
"auth": "viewer",
|
|
||||||
"actors": [
|
|
||||||
"developer",
|
|
||||||
"agent"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug (defaults to primary)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"backlog"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "POST",
|
|
||||||
"path": "/cache/invalidate",
|
|
||||||
"description": "Invalidate one or all NCL cache entries, forcing re-export on next request",
|
|
||||||
"auth": "admin",
|
|
||||||
"actors": [
|
|
||||||
"developer",
|
|
||||||
"admin"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "file",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Specific file path to invalidate (omit to invalidate all)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"cache"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/cache/stats",
|
|
||||||
"description": "NCL export cache statistics: entry count, hit/miss counters",
|
|
||||||
"auth": "viewer",
|
|
||||||
"actors": [
|
|
||||||
"developer",
|
|
||||||
"admin"
|
|
||||||
],
|
|
||||||
"params": [],
|
|
||||||
"tags": [
|
|
||||||
"cache",
|
|
||||||
"meta"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/config/cross-project",
|
|
||||||
"description": "Compare config surfaces across all registered projects: shared values, conflicts, coverage gaps",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [],
|
|
||||||
"tags": [
|
|
||||||
"config"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/describe/actor-init",
|
|
||||||
"description": "Minimal onboarding payload for a new actor session: what to register as and what to do first",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "actor",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Actor type to onboard as"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"describe",
|
|
||||||
"actors"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/describe/capabilities",
|
|
||||||
"description": "Available reflection modes, just recipes, Claude capabilities and CI tools for the project",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer",
|
|
||||||
"ci"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug (defaults to primary)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"describe"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/describe/connections",
|
|
||||||
"description": "Cross-project connection declarations: upstream, downstream, peers with addressing",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug (defaults to primary)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"describe",
|
|
||||||
"federation"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/describe/guides",
|
|
||||||
"description": "Complete operational context for an actor: identity, axioms, practices, constraints, gate state, modes, actor policy, connections, content assets",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer",
|
|
||||||
"ci"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug (defaults to primary)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "actor",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Actor context filters the policy (agent|developer|ci|admin)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"describe",
|
|
||||||
"guides"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/describe/project",
|
|
||||||
"description": "Project self-description: identity, axioms, tensions, practices, gates, ADRs, dimensions",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer",
|
|
||||||
"ci",
|
|
||||||
"admin"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug (defaults to primary)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"describe",
|
|
||||||
"ontology"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/graph/impact",
|
|
||||||
"description": "BFS impact graph from an ontology node; optionally traverses cross-project connections",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "node",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Ontology node id to start from"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "depth",
|
|
||||||
"kind": "u32",
|
|
||||||
"constraint": "default=2",
|
|
||||||
"description": "Max BFS hops (capped at 5)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "include_external",
|
|
||||||
"kind": "bool",
|
|
||||||
"constraint": "default=false",
|
|
||||||
"description": "Follow connections.ncl to external projects"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug (defaults to primary)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"graph",
|
|
||||||
"federation"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/graph/node/{id}",
|
|
||||||
"description": "Resolve a single ontology node by id from the local cache (used by federation)",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug (defaults to primary)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"graph",
|
|
||||||
"federation"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/health",
|
|
||||||
"description": "Daemon health check: uptime, version, feature flags, active projects",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer",
|
|
||||||
"ci",
|
|
||||||
"admin"
|
|
||||||
],
|
|
||||||
"params": [],
|
|
||||||
"tags": [
|
|
||||||
"meta"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "POST",
|
|
||||||
"path": "/nickel/export",
|
|
||||||
"description": "Export a Nickel file to JSON, using the cache when the file is unchanged",
|
|
||||||
"auth": "viewer",
|
|
||||||
"actors": [
|
|
||||||
"developer",
|
|
||||||
"agent"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "file",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Absolute path to the .ncl file to export"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "import_path",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "NICKEL_IMPORT_PATH override"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"nickel",
|
|
||||||
"cache"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "POST",
|
|
||||||
"path": "/notifications/ack",
|
|
||||||
"description": "Acknowledge one or more notifications; removes them from the pending queue",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer",
|
|
||||||
"ci"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "token",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Actor bearer token"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "ids",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Comma-separated notification ids to acknowledge"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"notifications"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/notifications/pending",
|
|
||||||
"description": "Poll pending notifications for an actor; optionally marks them as seen",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer",
|
|
||||||
"ci"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "token",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Actor bearer token"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "project",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug filter"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "check_only",
|
|
||||||
"kind": "bool",
|
|
||||||
"constraint": "default=false",
|
|
||||||
"description": "Return count without marking seen"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"notifications"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/notifications/stream",
|
|
||||||
"description": "SSE push stream: actor subscribes once and receives notification events as they occur",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "token",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Actor bearer token"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "project",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug filter"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"notifications",
|
|
||||||
"sse"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/ontology",
|
|
||||||
"description": "List available ontology extension files beyond core, state, gate, manifest",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug (defaults to primary)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"ontology"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "POST",
|
|
||||||
"path": "/ontology/changed",
|
|
||||||
"description": "Git hook endpoint: actor signs a file-change event it caused to suppress self-notification",
|
|
||||||
"auth": "viewer",
|
|
||||||
"actors": [
|
|
||||||
"developer",
|
|
||||||
"ci"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "token",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Actor bearer token"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "files",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "JSON array of changed file paths"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"ontology",
|
|
||||||
"notifications"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/ontology/{file}",
|
|
||||||
"description": "Export a specific ontology extension file to JSON",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug (defaults to primary)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"ontology"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/projects",
|
|
||||||
"description": "List all registered projects with slug, root, push_only flag and import path",
|
|
||||||
"auth": "admin",
|
|
||||||
"actors": [
|
|
||||||
"admin"
|
|
||||||
],
|
|
||||||
"params": [],
|
|
||||||
"tags": [
|
|
||||||
"projects",
|
|
||||||
"registry"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "POST",
|
|
||||||
"path": "/projects",
|
|
||||||
"description": "Register a new project at runtime without daemon restart",
|
|
||||||
"auth": "admin",
|
|
||||||
"actors": [
|
|
||||||
"admin"
|
|
||||||
],
|
|
||||||
"params": [],
|
|
||||||
"tags": [
|
|
||||||
"projects",
|
|
||||||
"registry"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "DELETE",
|
|
||||||
"path": "/projects/{slug}",
|
|
||||||
"description": "Deregister a project and stop its file watcher",
|
|
||||||
"auth": "admin",
|
|
||||||
"actors": [
|
|
||||||
"admin"
|
|
||||||
],
|
|
||||||
"params": [],
|
|
||||||
"tags": [
|
|
||||||
"projects",
|
|
||||||
"registry"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/projects/{slug}/config",
|
|
||||||
"description": "Full config export for a registered project (merged with any active overrides)",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Project slug"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"config"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/projects/{slug}/config/coherence",
|
|
||||||
"description": "Multi-consumer coherence report: unclaimed NCL fields, consumer field mismatches",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Project slug"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "section",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Filter to one section"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"config"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/projects/{slug}/config/quickref",
|
|
||||||
"description": "Generated config documentation with rationales, override history, and coherence status",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Project slug"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "section",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Filter to one section"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "format",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Output format (json|markdown)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"config"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/projects/{slug}/config/schema",
|
|
||||||
"description": "Config surface schema: sections with descriptions, rationales, contracts, and declared consumers",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Project slug"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"config"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/projects/{slug}/config/{section}",
|
|
||||||
"description": "Values for a single config section (from the merged NCL export)",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Project slug"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "section",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Section id"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"config"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "PUT",
|
|
||||||
"path": "/projects/{slug}/config/{section}",
|
|
||||||
"description": "Mutate a config section via the override layer. dry_run=true (default) returns the proposed change without writing.",
|
|
||||||
"auth": "admin",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Project slug"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "section",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Section id"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"config"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "PUT",
|
|
||||||
"path": "/projects/{slug}/keys",
|
|
||||||
"description": "Hot-rotate credentials for a project; invalidates all existing actor and UI sessions",
|
|
||||||
"auth": "admin",
|
|
||||||
"actors": [
|
|
||||||
"admin"
|
|
||||||
],
|
|
||||||
"params": [],
|
|
||||||
"tags": [
|
|
||||||
"projects",
|
|
||||||
"auth"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/projects/{slug}/ontology/versions",
|
|
||||||
"description": "Per-file ontology change counters for a project; incremented on every cache invalidation",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [],
|
|
||||||
"tags": [
|
|
||||||
"projects",
|
|
||||||
"ontology",
|
|
||||||
"cache"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/qa-json",
|
|
||||||
"description": "Export the Q&A knowledge store as structured JSON from reflection/qa.ncl",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug (defaults to primary)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"qa"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/search",
|
|
||||||
"description": "Full-text search over ontology nodes, ADRs, practices and Q&A entries",
|
|
||||||
"auth": "none",
|
|
||||||
"actors": [
|
|
||||||
"agent",
|
|
||||||
"developer"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "q",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Search query string"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug (ui feature only)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"search"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "POST",
|
|
||||||
"path": "/sync",
|
|
||||||
"description": "Push-based sync: remote projects POST their NCL export JSON here to update the daemon cache",
|
|
||||||
"auth": "viewer",
|
|
||||||
"actors": [
|
|
||||||
"ci",
|
|
||||||
"agent"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "required",
|
|
||||||
"description": "Project slug from Authorization header context"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"sync",
|
|
||||||
"federation"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"path": "/validate/adrs",
|
|
||||||
"description": "Execute typed ADR constraint checks and return per-constraint pass/fail results",
|
|
||||||
"auth": "viewer",
|
|
||||||
"actors": [
|
|
||||||
"developer",
|
|
||||||
"ci",
|
|
||||||
"agent"
|
|
||||||
],
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"name": "slug",
|
|
||||||
"kind": "string",
|
|
||||||
"constraint": "optional",
|
|
||||||
"description": "Project slug (defaults to primary)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"validate",
|
|
||||||
"adrs"
|
|
||||||
],
|
|
||||||
"feature": ""
|
|
||||||
}
|
|
||||||
]
|
|
||||||
Loading…
x
Reference in New Issue
Block a user