Add concurrency caps, the two-pane web UI, AGENTS.md, and plan status
This commit is contained in:
+32
-3
@@ -125,6 +125,25 @@ paths:
|
||||
"404": { $ref: "#/components/responses/Error" }
|
||||
"409": { $ref: "#/components/responses/Error" }
|
||||
|
||||
/api/tasks/{taskId}/events:
|
||||
parameters:
|
||||
- { name: taskId, in: path, required: true, schema: { type: string } }
|
||||
get:
|
||||
operationId: listTaskEvents
|
||||
description: The task's events after a seq, oldest first. Page by passing the last seq back as after.
|
||||
parameters:
|
||||
- { name: after, in: query, required: false, schema: { type: integer, format: int64 } }
|
||||
- { name: limit, in: query, required: false, schema: { type: integer, minimum: 1, maximum: 1000 } }
|
||||
responses:
|
||||
"200":
|
||||
description: Up to limit events (default 500).
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items: { $ref: "#/components/schemas/Event" }
|
||||
"404": { $ref: "#/components/responses/Error" }
|
||||
|
||||
/api/tasks/{taskId}/sessions:
|
||||
parameters:
|
||||
- { name: taskId, in: path, required: true, schema: { type: string } }
|
||||
@@ -368,7 +387,10 @@ components:
|
||||
vendor: { type: string, enum: [claude] }
|
||||
model: { type: string, description: Requested model; empty means the vendor's default. }
|
||||
vendor_session_id: { type: string }
|
||||
state: { type: string, enum: [idle, running, completed] }
|
||||
state:
|
||||
type: string
|
||||
enum: [idle, queued, running, completed]
|
||||
description: queued means a turn is waiting for a free slot under the concurrency caps.
|
||||
role: { type: string, enum: [implementer] }
|
||||
created_by: { type: string }
|
||||
created_at: { type: string, format: date-time }
|
||||
@@ -415,7 +437,7 @@ components:
|
||||
task_id: { type: string }
|
||||
agent_session_id: { type: string }
|
||||
thread_id: { type: string }
|
||||
kind: { type: string, enum: [question, report, session_error] }
|
||||
kind: { type: string, enum: [question, report, session_error, rate_limited] }
|
||||
priority: { type: string, enum: [blocked, gate, review, fyi] }
|
||||
blocking: { type: boolean }
|
||||
payload:
|
||||
@@ -424,6 +446,7 @@ components:
|
||||
question: question, why_blocked, options, recommended_option, attachments.
|
||||
report: done, open_questions, next_steps, risks, deviations.
|
||||
session_error: error.
|
||||
rate_limited: vendor, rate_limit (the vendor's rate-limit status), error.
|
||||
state: { $ref: "#/components/schemas/InboxState" }
|
||||
snoozed_until: { type: string, format: date-time }
|
||||
created_at: { type: string, format: date-time }
|
||||
@@ -491,9 +514,15 @@ components:
|
||||
|
||||
Status:
|
||||
type: object
|
||||
required: [started_at, db_bytes, last_event_seq, projects, active_tasks, sse_clients, live_agents]
|
||||
required: [started_at, db_bytes, last_event_seq, projects, active_tasks, sse_clients, live_agents, running_turns, queued_turns, rate_limits]
|
||||
properties:
|
||||
live_agents: { type: integer, description: Agent processes currently running. }
|
||||
running_turns: { type: integer }
|
||||
queued_turns: { type: integer }
|
||||
rate_limits:
|
||||
type: object
|
||||
description: The latest rate-limit status each vendor reported, keyed by vendor.
|
||||
additionalProperties: { type: object }
|
||||
started_at: { type: string, format: date-time }
|
||||
db_bytes: { type: integer, format: int64 }
|
||||
last_event_seq: { type: integer, format: int64 }
|
||||
|
||||
Reference in New Issue
Block a user