mirror of
https://github.com/harivansh-afk/sandbox-agent.git
synced 2026-04-17 00:04:54 +00:00
feat: sprites support
This commit is contained in:
parent
9cd9252725
commit
5da35e6dfa
35 changed files with 746 additions and 1257 deletions
|
|
@ -59,11 +59,11 @@ struct PendingQuestion {
|
|||
}
|
||||
```
|
||||
|
||||
## v1 HTTP Endpoints (from `router.rs`)
|
||||
## Legacy Session REST Endpoints (from `router.rs`)
|
||||
|
||||
```
|
||||
POST /v1/sessions/{session_id}/questions/{question_id}/reply -> 204 No Content
|
||||
POST /v1/sessions/{session_id}/questions/{question_id}/reject -> 204 No Content
|
||||
session question reply endpoint -> 204 No Content
|
||||
session question reject endpoint -> 204 No Content
|
||||
```
|
||||
|
||||
### `reply_question` handler
|
||||
|
|
@ -122,7 +122,7 @@ Key flow:
|
|||
|
||||
1. Agent emits `question.requested` event with `QuestionEventData { status: Requested, question_id, prompt, options }`
|
||||
2. Client renders question UI
|
||||
3. Client calls `POST /v1/sessions/{id}/questions/{qid}/reply` with `{ answers: [["selected"]] }` or `POST .../reject`
|
||||
3. Client calls the legacy session question reply or reject endpoint with `{ answers: [["selected"]] }`
|
||||
4. System emits `question.resolved` event with `QuestionEventData { status: Answered, response: Some("...") }` or `{ status: Rejected }`
|
||||
|
||||
## v1 Agent Capability
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
## Summary
|
||||
|
||||
v1 had explicit session termination (`POST /v1/sessions/{id}/terminate`). v1 only has `session/cancel` (turn cancellation, not session kill) and `DELETE /v1/rpc` (connection close, not session termination). Need explicit session destroy/terminate semantics.
|
||||
The legacy session REST API had an explicit terminate endpoint. ACP only has `session/cancel` (turn cancellation, not session kill) and `DELETE /v1/rpc` (connection close, not session termination). Need explicit session destroy/terminate semantics.
|
||||
|
||||
## Current v1 State
|
||||
|
||||
|
|
@ -20,7 +20,7 @@ v1 had explicit session termination (`POST /v1/sessions/{id}/terminate`). v1 onl
|
|||
### HTTP Endpoint
|
||||
|
||||
```
|
||||
POST /v1/sessions/{id}/terminate
|
||||
legacy session terminate endpoint
|
||||
```
|
||||
|
||||
### Handler (from `router.rs`)
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ Returned `AgentModelsResponse` with full model list including variants.
|
|||
### Session Creation with Variant
|
||||
|
||||
```
|
||||
POST /v1/sessions
|
||||
legacy session create endpoint
|
||||
```
|
||||
|
||||
Body included `variant: Option<String>` to select a specific model variant at session creation time.
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ pub struct UniversalEvent {
|
|||
### v1 Usage
|
||||
|
||||
```
|
||||
GET /v1/sessions/{id}/events?include_raw=true
|
||||
legacy event polling endpoint with `include_raw=true`
|
||||
```
|
||||
|
||||
When `include_raw=true`, each `UniversalEvent` included the verbatim JSON the agent process emitted before normalization into the universal schema.
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
# Feature 16: Session Info
|
||||
|
||||
**Implementation approach:** New HTTP endpoints (`GET /v1/sessions`, `GET /v1/sessions/{id}`)
|
||||
**Implementation approach:** New session-info HTTP endpoints
|
||||
|
||||
## Summary
|
||||
|
||||
v1 `SessionInfo` tracked `event_count`, `created_at`, `updated_at`, and full `mcp` config. v1 has session data in the ACP runtime's `MetaSession` struct but no HTTP endpoints to query it. Add REST endpoints for session listing and detail.
|
||||
v1 `SessionInfo` tracked `event_count`, `created_at`, `updated_at`, and full `mcp` config. v1 has session data in the ACP runtime's `MetaSession` struct but no HTTP endpoints to query it. Add HTTP endpoints for session listing and detail.
|
||||
|
||||
## Current v1 State
|
||||
|
||||
|
|
@ -117,8 +117,8 @@ fn build_session_info(state: &SessionState) -> SessionInfo {
|
|||
### New HTTP Endpoints
|
||||
|
||||
```
|
||||
GET /v1/sessions -> SessionListResponse
|
||||
GET /v1/sessions/{id} -> SessionInfo
|
||||
session list endpoint -> SessionListResponse
|
||||
session detail endpoint -> SessionInfo
|
||||
```
|
||||
|
||||
These are control-plane HTTP endpoints (not ACP), providing session visibility without requiring an active ACP connection.
|
||||
|
|
@ -156,7 +156,7 @@ Need to add:
|
|||
|
||||
| File | Change |
|
||||
|------|--------|
|
||||
| `server/packages/sandbox-agent/src/router.rs` | Add `GET /v1/sessions` and `GET /v1/sessions/{id}` handlers; add response types |
|
||||
| `server/packages/sandbox-agent/src/router.rs` | Add session list and session detail handlers; add response types |
|
||||
| `server/packages/sandbox-agent/src/acp_runtime/mod.rs` | Add `created_at` to `MetaSession`; add `ended` tracking; expose `list_sessions()` and `get_session()` public methods |
|
||||
| `sdks/typescript/src/client.ts` | Add `listSessions()` and `getSession(id)` methods |
|
||||
| `server/packages/sandbox-agent/tests/v1_api.rs` | Add session listing and detail tests |
|
||||
|
|
@ -165,6 +165,6 @@ Need to add:
|
|||
|
||||
| Doc | Change |
|
||||
|-----|--------|
|
||||
| `docs/openapi.json` | Add `/v1/sessions` and `/v1/sessions/{id}` endpoint specs |
|
||||
| `docs/openapi.json` | Add session list and session detail endpoint specs |
|
||||
| `docs/cli.mdx` | Add CLI `sessions list` and `sessions info` commands |
|
||||
| `docs/sdks/typescript.mdx` | Document session listing SDK methods |
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ When an agent process terminates with an error:
|
|||
### Session Info Integration
|
||||
|
||||
Termination metadata should be accessible via:
|
||||
- `GET /v1/sessions/{id}` (Feature #16) — include `terminationInfo` in response when session has ended
|
||||
- the session info endpoint (Feature #16) — include `terminationInfo` in response when session has ended
|
||||
- `session/list` ACP response — include termination status in session entries
|
||||
|
||||
### Files to Modify
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ Session-level features that build on Phase A runtime tracking.
|
|||
|
||||
| Order | Feature | Spec | Approach | Effort |
|
||||
|:-----:|--------------------------------------------------------------|:----:|------------------------------------------------------|:------:|
|
||||
| B1 | [Session Info](./16-session-info.md) | #16 | New `GET /v1/sessions` and `GET /v1/sessions/{id}` | Medium |
|
||||
| B1 | [Session Info](./16-session-info.md) | #16 | New session info HTTP endpoints | Medium |
|
||||
| B2 | [Session Termination](./07-session-termination.md) | #7 | Idempotent `_sandboxagent/session/terminate` | Medium |
|
||||
| B3 | [Error Termination Metadata](./17-error-termination-metadata.md) | #17 | Stderr capture + `_sandboxagent/session/ended` event | Medium |
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue