mirror of
https://github.com/anomalyco/opencode.git
synced 2026-05-13 15:44:56 +00:00
chore: generate
This commit is contained in:
@@ -17,7 +17,13 @@
|
||||
--accent: #496b5a;
|
||||
--accent-soft: #dce7dc;
|
||||
font-family:
|
||||
Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||
Inter,
|
||||
ui-sans-serif,
|
||||
system-ui,
|
||||
-apple-system,
|
||||
BlinkMacSystemFont,
|
||||
"Segoe UI",
|
||||
sans-serif;
|
||||
}
|
||||
|
||||
* {
|
||||
@@ -34,8 +40,7 @@
|
||||
background:
|
||||
radial-gradient(circle at 12% 0%, rgba(73, 107, 90, 0.12), transparent 34rem),
|
||||
linear-gradient(90deg, rgba(38, 52, 47, 0.055) 1px, transparent 1px),
|
||||
linear-gradient(rgba(38, 52, 47, 0.045) 1px, transparent 1px),
|
||||
var(--bg);
|
||||
linear-gradient(rgba(38, 52, 47, 0.045) 1px, transparent 1px), var(--bg);
|
||||
background-size: 72px 72px;
|
||||
color: var(--fg);
|
||||
line-height: 1.5;
|
||||
@@ -231,7 +236,13 @@
|
||||
.diagram text {
|
||||
fill: var(--fg);
|
||||
font-family:
|
||||
Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||
Inter,
|
||||
ui-sans-serif,
|
||||
system-ui,
|
||||
-apple-system,
|
||||
BlinkMacSystemFont,
|
||||
"Segoe UI",
|
||||
sans-serif;
|
||||
}
|
||||
|
||||
.diagram .box {
|
||||
@@ -412,7 +423,10 @@
|
||||
|
||||
<section class="grid">
|
||||
<article class="span-8 rule">
|
||||
<strong>Everything has one canonical route. Some routes are server-scoped; runtime routes use context; session item routes use the session.</strong>
|
||||
<strong
|
||||
>Everything has one canonical route. Some routes are server-scoped; runtime routes use context; session item
|
||||
routes use the session.</strong
|
||||
>
|
||||
<p>
|
||||
Server-scoped routes manage the whole server: projects, workspace lifecycle, and auth accounts. Runtime
|
||||
context is for anything resolved from an active directory, including config, provider capabilities, tools,
|
||||
@@ -432,7 +446,9 @@
|
||||
<h2>Context Model</h2>
|
||||
<svg class="diagram" viewBox="0 0 1280 360" role="img" aria-labelledby="ctx-title ctx-desc">
|
||||
<title id="ctx-title">API context resolution</title>
|
||||
<desc id="ctx-desc">Non-session routes resolve from request context, session item routes resolve from session storage.</desc>
|
||||
<desc id="ctx-desc">
|
||||
Non-session routes resolve from request context, session item routes resolve from session storage.
|
||||
</desc>
|
||||
<defs>
|
||||
<marker id="arrow" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto">
|
||||
<path d="M0,0 L0,6 L9,3 z" fill="#26342f" />
|
||||
@@ -468,8 +484,8 @@
|
||||
<article class="span-6 panel panel-pad stack">
|
||||
<h3>Request-context calls</h3>
|
||||
<p class="muted">
|
||||
These calls operate against a directory, optionally through a workspace. Simple clients omit context and
|
||||
use the default runtime.
|
||||
These calls operate against a directory, optionally through a workspace. Simple clients omit context and use
|
||||
the default runtime.
|
||||
</p>
|
||||
<pre><code>GET /api/fs/tree?path=.&directory=/repo/app&workspace=ws_123</code></pre>
|
||||
</article>
|
||||
@@ -491,187 +507,551 @@ sessionID -> { directory, workspaceID? }</code></pre>
|
||||
<div class="span-12 stack">
|
||||
<h2>Operation Inventory</h2>
|
||||
<p class="muted">
|
||||
The SDK is the source of truth. HTTP routes are mounts for RPC-style operations. <span class="context-tag server">server</span> operations do not use runtime context. <span class="context-tag request">request</span> operations use request/default runtime context from <code>directory</code> and <code>workspace</code> query parameters. <span class="context-tag session">session</span> operations use pinned session context and should not accept context input.
|
||||
The SDK is the source of truth. HTTP routes are mounts for RPC-style operations.
|
||||
<span class="context-tag server">server</span> operations do not use runtime context.
|
||||
<span class="context-tag request">request</span> operations use request/default runtime context from
|
||||
<code>directory</code> and <code>workspace</code> query parameters.
|
||||
<span class="context-tag session">session</span> operations use pinned session context and should not accept
|
||||
context input.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<article class="span-12 panel panel-pad stack">
|
||||
<table>
|
||||
<thead><tr><th>Operation</th><th>Input</th><th>Context</th><th>HTTP mount</th><th>Purpose</th></tr></thead>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Operation</th>
|
||||
<th>Input</th>
|
||||
<th>Context</th>
|
||||
<th>HTTP mount</th>
|
||||
<th>Purpose</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td class="operation"><code>agent.list</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/agent</code></td><td>Available agents.</td></tr>
|
||||
<tr><td class="operation"><code>auth.activate</code></td><td class="body"><code>{ accountID: AccountID }</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>POST /api/auth/:accountID/activate</code></td><td>Set the account as active for its service.</td></tr>
|
||||
<tr><td class="operation"><code>auth.create</code></td><td class="body"><code>{
|
||||
serviceID: ServiceID
|
||||
credential:
|
||||
| { type: "oauth", refresh: string, access: string, expires: number }
|
||||
| { type: "api", key: string, metadata?: Record<string, string> }
|
||||
description?: string
|
||||
active?: boolean
|
||||
}</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>POST /api/auth</code></td><td>Create an auth account.</td></tr>
|
||||
<tr><td class="operation"><code>auth.delete</code></td><td class="body"><code>{ accountID: AccountID }</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>DELETE /api/auth/:accountID</code></td><td>Remove an auth account.</td></tr>
|
||||
<tr><td class="operation"><code>auth.get</code></td><td class="body"><code>{ accountID: AccountID }</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>GET /api/auth/:accountID</code></td><td>Get one auth account.</td></tr>
|
||||
<tr><td class="operation"><code>auth.list</code></td><td class="body"><code>{ serviceID?: ServiceID }</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>GET /api/auth</code></td><td>List saved auth accounts. Response includes active account mapping.</td></tr>
|
||||
<tr><td class="operation"><code>auth.update</code></td><td class="body"><code>{
|
||||
accountID: AccountID
|
||||
description?: string
|
||||
credential?:
|
||||
| { type: "oauth", refresh: string, access: string, expires: number }
|
||||
| { type: "api", key: string, metadata?: Record<string, string> }
|
||||
}</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>PATCH /api/auth/:accountID</code></td><td>Update account description or credential.</td></tr>
|
||||
<tr><td class="operation"><code>catalog.model.get</code></td><td class="body"><code>{
|
||||
providerID: ProviderID
|
||||
modelID: ModelID
|
||||
}</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>GET /api/catalog/model/:providerID/:modelID</code></td><td>Get one catalog model.</td></tr>
|
||||
<tr><td class="operation"><code>catalog.model.list</code></td><td class="body"><code>{}</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>GET /api/catalog/model</code></td><td>List flattened catalog models.</td></tr>
|
||||
<tr><td class="operation"><code>command.list</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/command</code></td><td>Available commands.</td></tr>
|
||||
<tr><td class="operation"><code>config.get</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/config</code></td><td>Resolved config.</td></tr>
|
||||
<tr><td class="operation"><code>config.update</code></td><td class="body"><code>{ config: Config }</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>PATCH /api/config</code></td><td>Update config.</td></tr>
|
||||
<tr><td class="operation"><code>event.subscribe</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/event</code></td><td>Server-sent events for the resolved runtime context.</td></tr>
|
||||
<tr><td class="operation"><code>formatter.status</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/formatter</code></td><td>Formatter status.</td></tr>
|
||||
<tr><td class="operation"><code>fs.file</code></td><td class="body"><code>{ path: string }</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/fs/file</code></td><td>Read one file.</td></tr>
|
||||
<tr><td class="operation"><code>fs.grep</code></td><td class="body"><code>{
|
||||
pattern: string
|
||||
include?: string
|
||||
limit?: number
|
||||
}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>POST /api/fs/grep</code></td><td>Search file contents.</td></tr>
|
||||
<tr><td class="operation"><code>fs.search</code></td><td class="body"><code>{
|
||||
query: string
|
||||
type?: "file" | "directory"
|
||||
limit?: number
|
||||
}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>POST /api/fs/search</code></td><td>Search paths by name.</td></tr>
|
||||
<tr><td class="operation"><code>fs.tree</code></td><td class="body"><code>{ path: string }</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/fs/tree</code></td><td>Browse a directory.</td></tr>
|
||||
<tr><td class="operation"><code>lsp.status</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/lsp</code></td><td>LSP status.</td></tr>
|
||||
<tr><td class="operation"><code>mcp.prompt.list</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/mcp/prompt</code></td><td>List MCP prompts.</td></tr>
|
||||
<tr><td class="operation"><code>mcp.prompt.render</code></td><td class="body"><code>{
|
||||
server: string
|
||||
name: string
|
||||
arguments?: Record<string, string>
|
||||
}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>POST /api/mcp/prompt/render</code></td><td>Render one MCP prompt.</td></tr>
|
||||
<tr><td class="operation"><code>mcp.resource.list</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/mcp/resource</code></td><td>List MCP resources.</td></tr>
|
||||
<tr><td class="operation"><code>mcp.resource.read</code></td><td class="body"><code>{
|
||||
server: string
|
||||
uri: string
|
||||
}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/mcp/resource/read</code></td><td>Read one MCP resource.</td></tr>
|
||||
<tr><td class="operation"><code>mcp.server.create</code></td><td class="body"><code>{
|
||||
name: string
|
||||
config:
|
||||
| { type: "local", command: string, arguments?: string[], environment?: Record<string, string> }
|
||||
| { type: "remote", url: string, headers?: Record<string, string>, oauth?: boolean | object }
|
||||
}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>POST /api/mcp/server</code></td><td>Add an MCP server to runtime config.</td></tr>
|
||||
<tr><td class="operation"><code>mcp.server.list</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/mcp/server</code></td><td>List MCP servers with status and auth state.</td></tr>
|
||||
<tr><td class="operation"><code>mcp.server.oauth.callback</code></td><td class="body"><code>{
|
||||
name: string
|
||||
code: string
|
||||
}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>POST /api/mcp/server/:name/oauth/callback</code></td><td>Complete MCP OAuth.</td></tr>
|
||||
<tr><td class="operation"><code>mcp.server.oauth.delete</code></td><td class="body"><code>{ name: string }</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>DELETE /api/mcp/server/:name/oauth</code></td><td>Remove MCP OAuth credentials.</td></tr>
|
||||
<tr><td class="operation"><code>mcp.server.oauth.start</code></td><td class="body"><code>{ name: string }</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>POST /api/mcp/server/:name/oauth</code></td><td>Start MCP OAuth.</td></tr>
|
||||
<tr><td class="operation"><code>permission.list</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/permission</code></td><td>Pending permission requests.</td></tr>
|
||||
<tr><td class="operation"><code>permission.reply</code></td><td class="body"><code>{
|
||||
permissionID: PermissionID
|
||||
response: PermissionReply
|
||||
}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>POST /api/permission/:permissionID/reply</code></td><td>Reply to a permission request.</td></tr>
|
||||
<tr><td class="operation"><code>project.get</code></td><td class="body"><code>{ projectID: ProjectID }</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>GET /api/project/:projectID</code></td><td>Get project metadata.</td></tr>
|
||||
<tr><td class="operation"><code>project.list</code></td><td class="body"><code>{}</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>GET /api/project</code></td><td>List projects known to this server.</td></tr>
|
||||
<tr><td class="operation"><code>project.update</code></td><td class="body"><code>{
|
||||
projectID: ProjectID
|
||||
name?: string
|
||||
icon?: string
|
||||
commands?: Array<{
|
||||
name: string
|
||||
command: string
|
||||
}>
|
||||
}</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>PATCH /api/project/:projectID</code></td><td>Update project metadata.</td></tr>
|
||||
<tr><td class="operation"><code>provider.list</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/provider</code></td><td>Provider inventory for the runtime context.</td></tr>
|
||||
<tr><td class="operation"><code>pty.create</code></td><td class="body"><code>{
|
||||
command?: string
|
||||
cwd?: string
|
||||
shell?: string
|
||||
}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>POST /api/pty</code></td><td>Create PTY in the runtime context.</td></tr>
|
||||
<tr><td class="operation"><code>pty.delete</code></td><td class="body"><code>{ ptyID: PtyID }</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>DELETE /api/pty/:ptyID</code></td><td>Delete PTY.</td></tr>
|
||||
<tr><td class="operation"><code>pty.get</code></td><td class="body"><code>{ ptyID: PtyID }</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/pty/:ptyID</code></td><td>Get PTY info.</td></tr>
|
||||
<tr><td class="operation"><code>pty.list</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/pty</code></td><td>List PTYs for the runtime.</td></tr>
|
||||
<tr><td class="operation"><code>pty.update</code></td><td class="body"><code>{
|
||||
ptyID: PtyID
|
||||
title?: string
|
||||
size?: { columns: number, rows: number }
|
||||
}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>PATCH /api/pty/:ptyID</code></td><td>Update PTY.</td></tr>
|
||||
<tr><td class="operation"><code>question.list</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/question</code></td><td>Pending user questions.</td></tr>
|
||||
<tr><td class="operation"><code>question.reject</code></td><td class="body"><code>{ questionID: QuestionID }</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>POST /api/question/:questionID/reject</code></td><td>Reject a question.</td></tr>
|
||||
<tr><td class="operation"><code>question.reply</code></td><td class="body"><code>{
|
||||
questionID: QuestionID
|
||||
response: QuestionResponse
|
||||
}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>POST /api/question/:questionID/reply</code></td><td>Reply to a question.</td></tr>
|
||||
<tr><td class="operation"><code>session.compact</code></td><td class="body"><code>{ sessionID: SessionID }</code></td><td><span class="context-tag session">session</span></td><td class="route"><code>POST /api/session/:sessionID/compact</code></td><td>Compact the session conversation.</td></tr>
|
||||
<tr><td class="operation"><code>session.context</code></td><td class="body"><code>{ sessionID: SessionID }</code></td><td><span class="context-tag session">session</span></td><td class="route"><code>GET /api/session/:sessionID/context</code></td><td>Return active context messages after the last compaction.</td></tr>
|
||||
<tr><td class="operation"><code>session.create</code></td><td class="body"><code>{
|
||||
title?: string
|
||||
agent?: string
|
||||
model?: { providerID: ProviderID, modelID: ModelID }
|
||||
permission?: PermissionRule[]
|
||||
}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>POST /api/session</code></td><td>Create a session pinned to resolved runtime context.</td></tr>
|
||||
<tr><td class="operation"><code>session.delete</code></td><td class="body"><code>{ sessionID: SessionID }</code></td><td><span class="context-tag session">session</span></td><td class="route"><code>DELETE /api/session/:sessionID</code></td><td>Delete a session.</td></tr>
|
||||
<tr><td class="operation"><code>session.diff</code></td><td class="body"><code>{ sessionID: SessionID }</code></td><td><span class="context-tag session">session</span></td><td class="route"><code>GET /api/session/:sessionID/diff</code></td><td>Return session diff summary.</td></tr>
|
||||
<tr><td class="operation"><code>session.get</code></td><td class="body"><code>{ sessionID: SessionID }</code></td><td><span class="context-tag session">session</span></td><td class="route"><code>GET /api/session/:sessionID</code></td><td>Get one session.</td></tr>
|
||||
<tr><td class="operation"><code>session.list</code></td><td class="body"><code>{
|
||||
limit?: number
|
||||
order?: "asc" | "desc"
|
||||
path?: string
|
||||
roots?: boolean
|
||||
start?: number
|
||||
search?: string
|
||||
cursor?: string
|
||||
}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/session</code></td><td>List sessions for the current runtime context by default.</td></tr>
|
||||
<tr><td class="operation"><code>session.message.list</code></td><td class="body"><code>{
|
||||
sessionID: SessionID
|
||||
limit?: number
|
||||
order?: "asc" | "desc"
|
||||
cursor?: string
|
||||
}</code></td><td><span class="context-tag session">session</span></td><td class="route"><code>GET /api/session/:sessionID/message</code></td><td>Page through session messages.</td></tr>
|
||||
<tr><td class="operation"><code>session.prompt</code></td><td class="body"><code>{
|
||||
sessionID: SessionID
|
||||
prompt: Prompt
|
||||
delivery?: "immediate" | "deferred"
|
||||
}</code></td><td><span class="context-tag session">session</span></td><td class="route"><code>POST /api/session/:sessionID/prompt</code></td><td>Create a user message and queue the agent loop.</td></tr>
|
||||
<tr><td class="operation"><code>session.todo</code></td><td class="body"><code>{ sessionID: SessionID }</code></td><td><span class="context-tag session">session</span></td><td class="route"><code>GET /api/session/:sessionID/todo</code></td><td>Return todos associated with the session.</td></tr>
|
||||
<tr><td class="operation"><code>session.update</code></td><td class="body"><code>{
|
||||
sessionID: SessionID
|
||||
title?: string
|
||||
archived?: number
|
||||
permission?: PermissionRule[]
|
||||
}</code></td><td><span class="context-tag session">session</span></td><td class="route"><code>PATCH /api/session/:sessionID</code></td><td>Update title, archival state, or session metadata.</td></tr>
|
||||
<tr><td class="operation"><code>session.wait</code></td><td class="body"><code>{ sessionID: SessionID }</code></td><td><span class="context-tag session">session</span></td><td class="route"><code>POST /api/session/:sessionID/wait</code></td><td>Wait until the session is idle.</td></tr>
|
||||
<tr><td class="operation"><code>skill.list</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/skill</code></td><td>Available skills.</td></tr>
|
||||
<tr><td class="operation"><code>vcs.diff</code></td><td class="body"><code>{
|
||||
format?: "json" | "patch"
|
||||
mode?: "worktree" | "default"
|
||||
}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/vcs/diff</code></td><td>Diff for the runtime directory.</td></tr>
|
||||
<tr><td class="operation"><code>vcs.get</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/vcs</code></td><td>VCS metadata.</td></tr>
|
||||
<tr><td class="operation"><code>vcs.patch</code></td><td class="body"><code>{ patch: string }</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>POST /api/vcs/patch</code></td><td>Apply a patch to the runtime directory.</td></tr>
|
||||
<tr><td class="operation"><code>vcs.status</code></td><td class="body"><code>{}</code></td><td><span class="context-tag request">request</span></td><td class="route"><code>GET /api/vcs/status</code></td><td>Changed files.</td></tr>
|
||||
<tr><td class="operation"><code>workspace.create</code></td><td class="body"><code>{
|
||||
projectID?: ProjectID
|
||||
name?: string
|
||||
directory?: string
|
||||
type: string
|
||||
metadata?: Record<string, unknown>
|
||||
}</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>POST /api/workspace</code></td><td>Create or register a workspace.</td></tr>
|
||||
<tr><td class="operation"><code>workspace.delete</code></td><td class="body"><code>{ workspaceID: WorkspaceID }</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>DELETE /api/workspace/:workspaceID</code></td><td>Remove a workspace registration.</td></tr>
|
||||
<tr><td class="operation"><code>workspace.get</code></td><td class="body"><code>{ workspaceID: WorkspaceID }</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>GET /api/workspace/:workspaceID</code></td><td>Get workspace metadata.</td></tr>
|
||||
<tr><td class="operation"><code>workspace.list</code></td><td class="body"><code>{ projectID?: ProjectID }</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>GET /api/workspace</code></td><td>List workspaces, optionally filtered by project.</td></tr>
|
||||
<tr class="question-row"><td class="operation"><code>workspace.status</code></td><td class="body"><code>{}</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>GET /api/workspace/status</code></td><td>Connection/lifecycle status for all workspaces. Needs team discussion.</td></tr>
|
||||
<tr class="question-row"><td class="operation"><code>workspace.sync</code></td><td class="body"><code>{}</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>POST /api/workspace/sync</code></td><td>Sync workspace metadata from adapters. Needs team discussion.</td></tr>
|
||||
<tr><td class="operation"><code>workspace.update</code></td><td class="body"><code>{
|
||||
workspaceID: WorkspaceID
|
||||
name?: string
|
||||
metadata?: Record<string, unknown>
|
||||
archived?: boolean
|
||||
}</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>PATCH /api/workspace/:workspaceID</code></td><td>Update workspace metadata or lifecycle state.</td></tr>
|
||||
<tr class="question-row"><td class="operation"><code>workspace.warp</code></td><td class="body"><code>{
|
||||
workspaceID?: WorkspaceID
|
||||
sessionID: SessionID
|
||||
copyChanges: boolean
|
||||
}</code></td><td><span class="context-tag server">server</span></td><td class="route"><code>POST /api/workspace/warp</code></td><td>Move a session into or out of a workspace. Needs team discussion.</td></tr>
|
||||
<tr>
|
||||
<td class="operation"><code>agent.list</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/agent</code></td>
|
||||
<td>Available agents.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>auth.activate</code></td>
|
||||
<td class="body"><code>{ accountID: AccountID }</code></td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>POST /api/auth/:accountID/activate</code></td>
|
||||
<td>Set the account as active for its service.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>auth.create</code></td>
|
||||
<td class="body">
|
||||
<code
|
||||
>{ serviceID: ServiceID credential: | { type: "oauth", refresh: string, access: string, expires:
|
||||
number } | { type: "api", key: string, metadata?: Record<string, string> } description?:
|
||||
string active?: boolean }</code
|
||||
>
|
||||
</td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>POST /api/auth</code></td>
|
||||
<td>Create an auth account.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>auth.delete</code></td>
|
||||
<td class="body"><code>{ accountID: AccountID }</code></td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>DELETE /api/auth/:accountID</code></td>
|
||||
<td>Remove an auth account.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>auth.get</code></td>
|
||||
<td class="body"><code>{ accountID: AccountID }</code></td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>GET /api/auth/:accountID</code></td>
|
||||
<td>Get one auth account.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>auth.list</code></td>
|
||||
<td class="body"><code>{ serviceID?: ServiceID }</code></td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>GET /api/auth</code></td>
|
||||
<td>List saved auth accounts. Response includes active account mapping.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>auth.update</code></td>
|
||||
<td class="body">
|
||||
<code
|
||||
>{ accountID: AccountID description?: string credential?: | { type: "oauth", refresh: string,
|
||||
access: string, expires: number } | { type: "api", key: string, metadata?: Record<string,
|
||||
string> } }</code
|
||||
>
|
||||
</td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>PATCH /api/auth/:accountID</code></td>
|
||||
<td>Update account description or credential.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>catalog.model.get</code></td>
|
||||
<td class="body"><code>{ providerID: ProviderID modelID: ModelID }</code></td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>GET /api/catalog/model/:providerID/:modelID</code></td>
|
||||
<td>Get one catalog model.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>catalog.model.list</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>GET /api/catalog/model</code></td>
|
||||
<td>List flattened catalog models.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>command.list</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/command</code></td>
|
||||
<td>Available commands.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>config.get</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/config</code></td>
|
||||
<td>Resolved config.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>config.update</code></td>
|
||||
<td class="body"><code>{ config: Config }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>PATCH /api/config</code></td>
|
||||
<td>Update config.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>event.subscribe</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/event</code></td>
|
||||
<td>Server-sent events for the resolved runtime context.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>formatter.status</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/formatter</code></td>
|
||||
<td>Formatter status.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>fs.file</code></td>
|
||||
<td class="body"><code>{ path: string }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/fs/file</code></td>
|
||||
<td>Read one file.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>fs.grep</code></td>
|
||||
<td class="body"><code>{ pattern: string include?: string limit?: number }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>POST /api/fs/grep</code></td>
|
||||
<td>Search file contents.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>fs.search</code></td>
|
||||
<td class="body"><code>{ query: string type?: "file" | "directory" limit?: number }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>POST /api/fs/search</code></td>
|
||||
<td>Search paths by name.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>fs.tree</code></td>
|
||||
<td class="body"><code>{ path: string }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/fs/tree</code></td>
|
||||
<td>Browse a directory.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>lsp.status</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/lsp</code></td>
|
||||
<td>LSP status.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>mcp.prompt.list</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/mcp/prompt</code></td>
|
||||
<td>List MCP prompts.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>mcp.prompt.render</code></td>
|
||||
<td class="body">
|
||||
<code>{ server: string name: string arguments?: Record<string, string> }</code>
|
||||
</td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>POST /api/mcp/prompt/render</code></td>
|
||||
<td>Render one MCP prompt.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>mcp.resource.list</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/mcp/resource</code></td>
|
||||
<td>List MCP resources.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>mcp.resource.read</code></td>
|
||||
<td class="body"><code>{ server: string uri: string }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/mcp/resource/read</code></td>
|
||||
<td>Read one MCP resource.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>mcp.server.create</code></td>
|
||||
<td class="body">
|
||||
<code
|
||||
>{ name: string config: | { type: "local", command: string, arguments?: string[], environment?:
|
||||
Record<string, string> } | { type: "remote", url: string, headers?: Record<string,
|
||||
string>, oauth?: boolean | object } }</code
|
||||
>
|
||||
</td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>POST /api/mcp/server</code></td>
|
||||
<td>Add an MCP server to runtime config.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>mcp.server.list</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/mcp/server</code></td>
|
||||
<td>List MCP servers with status and auth state.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>mcp.server.oauth.callback</code></td>
|
||||
<td class="body"><code>{ name: string code: string }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>POST /api/mcp/server/:name/oauth/callback</code></td>
|
||||
<td>Complete MCP OAuth.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>mcp.server.oauth.delete</code></td>
|
||||
<td class="body"><code>{ name: string }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>DELETE /api/mcp/server/:name/oauth</code></td>
|
||||
<td>Remove MCP OAuth credentials.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>mcp.server.oauth.start</code></td>
|
||||
<td class="body"><code>{ name: string }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>POST /api/mcp/server/:name/oauth</code></td>
|
||||
<td>Start MCP OAuth.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>permission.list</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/permission</code></td>
|
||||
<td>Pending permission requests.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>permission.reply</code></td>
|
||||
<td class="body"><code>{ permissionID: PermissionID response: PermissionReply }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>POST /api/permission/:permissionID/reply</code></td>
|
||||
<td>Reply to a permission request.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>project.get</code></td>
|
||||
<td class="body"><code>{ projectID: ProjectID }</code></td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>GET /api/project/:projectID</code></td>
|
||||
<td>Get project metadata.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>project.list</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>GET /api/project</code></td>
|
||||
<td>List projects known to this server.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>project.update</code></td>
|
||||
<td class="body">
|
||||
<code
|
||||
>{ projectID: ProjectID name?: string icon?: string commands?: Array<{ name: string command:
|
||||
string }> }</code
|
||||
>
|
||||
</td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>PATCH /api/project/:projectID</code></td>
|
||||
<td>Update project metadata.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>provider.list</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/provider</code></td>
|
||||
<td>Provider inventory for the runtime context.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>pty.create</code></td>
|
||||
<td class="body"><code>{ command?: string cwd?: string shell?: string }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>POST /api/pty</code></td>
|
||||
<td>Create PTY in the runtime context.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>pty.delete</code></td>
|
||||
<td class="body"><code>{ ptyID: PtyID }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>DELETE /api/pty/:ptyID</code></td>
|
||||
<td>Delete PTY.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>pty.get</code></td>
|
||||
<td class="body"><code>{ ptyID: PtyID }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/pty/:ptyID</code></td>
|
||||
<td>Get PTY info.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>pty.list</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/pty</code></td>
|
||||
<td>List PTYs for the runtime.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>pty.update</code></td>
|
||||
<td class="body">
|
||||
<code>{ ptyID: PtyID title?: string size?: { columns: number, rows: number } }</code>
|
||||
</td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>PATCH /api/pty/:ptyID</code></td>
|
||||
<td>Update PTY.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>question.list</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/question</code></td>
|
||||
<td>Pending user questions.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>question.reject</code></td>
|
||||
<td class="body"><code>{ questionID: QuestionID }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>POST /api/question/:questionID/reject</code></td>
|
||||
<td>Reject a question.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>question.reply</code></td>
|
||||
<td class="body"><code>{ questionID: QuestionID response: QuestionResponse }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>POST /api/question/:questionID/reply</code></td>
|
||||
<td>Reply to a question.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>session.compact</code></td>
|
||||
<td class="body"><code>{ sessionID: SessionID }</code></td>
|
||||
<td><span class="context-tag session">session</span></td>
|
||||
<td class="route"><code>POST /api/session/:sessionID/compact</code></td>
|
||||
<td>Compact the session conversation.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>session.context</code></td>
|
||||
<td class="body"><code>{ sessionID: SessionID }</code></td>
|
||||
<td><span class="context-tag session">session</span></td>
|
||||
<td class="route"><code>GET /api/session/:sessionID/context</code></td>
|
||||
<td>Return active context messages after the last compaction.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>session.create</code></td>
|
||||
<td class="body">
|
||||
<code
|
||||
>{ title?: string agent?: string model?: { providerID: ProviderID, modelID: ModelID } permission?:
|
||||
PermissionRule[] }</code
|
||||
>
|
||||
</td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>POST /api/session</code></td>
|
||||
<td>Create a session pinned to resolved runtime context.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>session.delete</code></td>
|
||||
<td class="body"><code>{ sessionID: SessionID }</code></td>
|
||||
<td><span class="context-tag session">session</span></td>
|
||||
<td class="route"><code>DELETE /api/session/:sessionID</code></td>
|
||||
<td>Delete a session.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>session.diff</code></td>
|
||||
<td class="body"><code>{ sessionID: SessionID }</code></td>
|
||||
<td><span class="context-tag session">session</span></td>
|
||||
<td class="route"><code>GET /api/session/:sessionID/diff</code></td>
|
||||
<td>Return session diff summary.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>session.get</code></td>
|
||||
<td class="body"><code>{ sessionID: SessionID }</code></td>
|
||||
<td><span class="context-tag session">session</span></td>
|
||||
<td class="route"><code>GET /api/session/:sessionID</code></td>
|
||||
<td>Get one session.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>session.list</code></td>
|
||||
<td class="body">
|
||||
<code
|
||||
>{ limit?: number order?: "asc" | "desc" path?: string roots?: boolean start?: number search?:
|
||||
string cursor?: string }</code
|
||||
>
|
||||
</td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/session</code></td>
|
||||
<td>List sessions for the current runtime context by default.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>session.message.list</code></td>
|
||||
<td class="body">
|
||||
<code>{ sessionID: SessionID limit?: number order?: "asc" | "desc" cursor?: string }</code>
|
||||
</td>
|
||||
<td><span class="context-tag session">session</span></td>
|
||||
<td class="route"><code>GET /api/session/:sessionID/message</code></td>
|
||||
<td>Page through session messages.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>session.prompt</code></td>
|
||||
<td class="body">
|
||||
<code>{ sessionID: SessionID prompt: Prompt delivery?: "immediate" | "deferred" }</code>
|
||||
</td>
|
||||
<td><span class="context-tag session">session</span></td>
|
||||
<td class="route"><code>POST /api/session/:sessionID/prompt</code></td>
|
||||
<td>Create a user message and queue the agent loop.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>session.todo</code></td>
|
||||
<td class="body"><code>{ sessionID: SessionID }</code></td>
|
||||
<td><span class="context-tag session">session</span></td>
|
||||
<td class="route"><code>GET /api/session/:sessionID/todo</code></td>
|
||||
<td>Return todos associated with the session.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>session.update</code></td>
|
||||
<td class="body">
|
||||
<code>{ sessionID: SessionID title?: string archived?: number permission?: PermissionRule[] }</code>
|
||||
</td>
|
||||
<td><span class="context-tag session">session</span></td>
|
||||
<td class="route"><code>PATCH /api/session/:sessionID</code></td>
|
||||
<td>Update title, archival state, or session metadata.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>session.wait</code></td>
|
||||
<td class="body"><code>{ sessionID: SessionID }</code></td>
|
||||
<td><span class="context-tag session">session</span></td>
|
||||
<td class="route"><code>POST /api/session/:sessionID/wait</code></td>
|
||||
<td>Wait until the session is idle.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>skill.list</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/skill</code></td>
|
||||
<td>Available skills.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>vcs.diff</code></td>
|
||||
<td class="body"><code>{ format?: "json" | "patch" mode?: "worktree" | "default" }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/vcs/diff</code></td>
|
||||
<td>Diff for the runtime directory.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>vcs.get</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/vcs</code></td>
|
||||
<td>VCS metadata.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>vcs.patch</code></td>
|
||||
<td class="body"><code>{ patch: string }</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>POST /api/vcs/patch</code></td>
|
||||
<td>Apply a patch to the runtime directory.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>vcs.status</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag request">request</span></td>
|
||||
<td class="route"><code>GET /api/vcs/status</code></td>
|
||||
<td>Changed files.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>workspace.create</code></td>
|
||||
<td class="body">
|
||||
<code
|
||||
>{ projectID?: ProjectID name?: string directory?: string type: string metadata?: Record<string,
|
||||
unknown> }</code
|
||||
>
|
||||
</td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>POST /api/workspace</code></td>
|
||||
<td>Create or register a workspace.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>workspace.delete</code></td>
|
||||
<td class="body"><code>{ workspaceID: WorkspaceID }</code></td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>DELETE /api/workspace/:workspaceID</code></td>
|
||||
<td>Remove a workspace registration.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>workspace.get</code></td>
|
||||
<td class="body"><code>{ workspaceID: WorkspaceID }</code></td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>GET /api/workspace/:workspaceID</code></td>
|
||||
<td>Get workspace metadata.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>workspace.list</code></td>
|
||||
<td class="body"><code>{ projectID?: ProjectID }</code></td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>GET /api/workspace</code></td>
|
||||
<td>List workspaces, optionally filtered by project.</td>
|
||||
</tr>
|
||||
<tr class="question-row">
|
||||
<td class="operation"><code>workspace.status</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>GET /api/workspace/status</code></td>
|
||||
<td>Connection/lifecycle status for all workspaces. Needs team discussion.</td>
|
||||
</tr>
|
||||
<tr class="question-row">
|
||||
<td class="operation"><code>workspace.sync</code></td>
|
||||
<td class="body"><code>{}</code></td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>POST /api/workspace/sync</code></td>
|
||||
<td>Sync workspace metadata from adapters. Needs team discussion.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="operation"><code>workspace.update</code></td>
|
||||
<td class="body">
|
||||
<code
|
||||
>{ workspaceID: WorkspaceID name?: string metadata?: Record<string, unknown> archived?:
|
||||
boolean }</code
|
||||
>
|
||||
</td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>PATCH /api/workspace/:workspaceID</code></td>
|
||||
<td>Update workspace metadata or lifecycle state.</td>
|
||||
</tr>
|
||||
<tr class="question-row">
|
||||
<td class="operation"><code>workspace.warp</code></td>
|
||||
<td class="body">
|
||||
<code>{ workspaceID?: WorkspaceID sessionID: SessionID copyChanges: boolean }</code>
|
||||
</td>
|
||||
<td><span class="context-tag server">server</span></td>
|
||||
<td class="route"><code>POST /api/workspace/warp</code></td>
|
||||
<td>Move a session into or out of a workspace. Needs team discussion.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</article>
|
||||
@@ -681,8 +1061,8 @@ sessionID -> { directory, workspaceID? }</code></pre>
|
||||
<article class="span-12 panel panel-pad stack">
|
||||
<h2>Event Envelope</h2>
|
||||
<p class="muted">
|
||||
Every event uses the same envelope. Resource identity belongs in <code>payload</code>. Runtime identity belongs
|
||||
in <code>context</code>.
|
||||
Every event uses the same envelope. Resource identity belongs in <code>payload</code>. Runtime identity
|
||||
belongs in <code>context</code>.
|
||||
</p>
|
||||
<div class="grid">
|
||||
<pre class="span-6"><code>type ApiEvent<Payload> = {
|
||||
|
||||
Reference in New Issue
Block a user