chore: generate
This commit is contained in:
@@ -170,23 +170,23 @@ Use raw Effect HTTP routes where `HttpApi` does not fit. The goal is deleting Ho
|
|||||||
|
|
||||||
## Current Route Status
|
## Current Route Status
|
||||||
|
|
||||||
| Area | Status | Notes |
|
| Area | Status | Notes |
|
||||||
| ------------------------- | ----------------- | ---------------------------------------------------------------------------------------- |
|
| ------------------------- | ----------------- | -------------------------------------------------------------------------- |
|
||||||
| `question` | `bridged` | `GET /question`, reply, reject |
|
| `question` | `bridged` | `GET /question`, reply, reject |
|
||||||
| `permission` | `bridged` | list and reply |
|
| `permission` | `bridged` | list and reply |
|
||||||
| `provider` | `bridged` | list, auth, OAuth authorize/callback |
|
| `provider` | `bridged` | list, auth, OAuth authorize/callback |
|
||||||
| `config` | `bridged` | read, providers, update |
|
| `config` | `bridged` | read, providers, update |
|
||||||
| `project` | `bridged` | list, current, git init, update |
|
| `project` | `bridged` | list, current, git init, update |
|
||||||
| `file` | `bridged` partial | find text/file/symbol, list/content/status |
|
| `file` | `bridged` partial | find text/file/symbol, list/content/status |
|
||||||
| `mcp` | `bridged` | status, add, OAuth, connect/disconnect |
|
| `mcp` | `bridged` | status, add, OAuth, connect/disconnect |
|
||||||
| `workspace` | `bridged` | adaptor/list/status/create/remove/session-restore |
|
| `workspace` | `bridged` | adaptor/list/status/create/remove/session-restore |
|
||||||
| top-level instance routes | `bridged` | path, vcs, command, agent, skill, lsp, formatter, dispose |
|
| top-level instance routes | `bridged` | path, vcs, command, agent, skill, lsp, formatter, dispose |
|
||||||
| experimental JSON routes | `bridged` | console, tool, worktree list/mutations, global session list, resource list |
|
| experimental JSON routes | `bridged` | console, tool, worktree list/mutations, global session list, resource list |
|
||||||
| `session` | `bridged` partial | read routes; lifecycle, message mutations, streaming remain |
|
| `session` | `bridged` partial | read routes; lifecycle, message mutations, streaming remain |
|
||||||
| `sync` | `bridged` | start/replay/history |
|
| `sync` | `bridged` | start/replay/history |
|
||||||
| `event` | `special` | SSE |
|
| `event` | `special` | SSE |
|
||||||
| `pty` | `special` | websocket |
|
| `pty` | `special` | websocket |
|
||||||
| `tui` | `special` | UI bridge |
|
| `tui` | `special` | UI bridge |
|
||||||
|
|
||||||
## Full Route Checklist
|
## Full Route Checklist
|
||||||
|
|
||||||
|
|||||||
@@ -86,23 +86,47 @@ describe("session HttpApi", () => {
|
|||||||
const message = await createTextMessage(tmp.path, parent.id, "hello")
|
const message = await createTextMessage(tmp.path, parent.id, "hello")
|
||||||
await createTextMessage(tmp.path, parent.id, "world")
|
await createTextMessage(tmp.path, parent.id, "world")
|
||||||
|
|
||||||
expect((await json<Session.Info[]>(await app().request(`${SessionPaths.list}?roots=true`, { headers }))).map((item) => item.id)).toContain(parent.id)
|
expect(
|
||||||
|
(await json<Session.Info[]>(await app().request(`${SessionPaths.list}?roots=true`, { headers }))).map(
|
||||||
|
(item) => item.id,
|
||||||
|
),
|
||||||
|
).toContain(parent.id)
|
||||||
|
|
||||||
expect(await json<Record<string, unknown>>(await app().request(SessionPaths.status, { headers }))).toEqual({})
|
expect(await json<Record<string, unknown>>(await app().request(SessionPaths.status, { headers }))).toEqual({})
|
||||||
|
|
||||||
expect(await json<Session.Info>(await app().request(pathFor(SessionPaths.get, { sessionID: parent.id }), { headers }))).toMatchObject({ id: parent.id, title: "parent" })
|
expect(
|
||||||
|
await json<Session.Info>(await app().request(pathFor(SessionPaths.get, { sessionID: parent.id }), { headers })),
|
||||||
|
).toMatchObject({ id: parent.id, title: "parent" })
|
||||||
|
|
||||||
expect((await json<Session.Info[]>(await app().request(pathFor(SessionPaths.children, { sessionID: parent.id }), { headers }))).map((item) => item.id)).toEqual([child.id])
|
expect(
|
||||||
|
(
|
||||||
|
await json<Session.Info[]>(
|
||||||
|
await app().request(pathFor(SessionPaths.children, { sessionID: parent.id }), { headers }),
|
||||||
|
)
|
||||||
|
).map((item) => item.id),
|
||||||
|
).toEqual([child.id])
|
||||||
|
|
||||||
expect(await json<unknown[]>(await app().request(pathFor(SessionPaths.todo, { sessionID: parent.id }), { headers }))).toEqual([])
|
expect(
|
||||||
|
await json<unknown[]>(await app().request(pathFor(SessionPaths.todo, { sessionID: parent.id }), { headers })),
|
||||||
|
).toEqual([])
|
||||||
|
|
||||||
expect(await json<unknown[]>(await app().request(pathFor(SessionPaths.diff, { sessionID: parent.id }), { headers }))).toEqual([])
|
expect(
|
||||||
|
await json<unknown[]>(await app().request(pathFor(SessionPaths.diff, { sessionID: parent.id }), { headers })),
|
||||||
|
).toEqual([])
|
||||||
|
|
||||||
const messages = await app().request(`${pathFor(SessionPaths.messages, { sessionID: parent.id })}?limit=1`, { headers })
|
const messages = await app().request(`${pathFor(SessionPaths.messages, { sessionID: parent.id })}?limit=1`, {
|
||||||
|
headers,
|
||||||
|
})
|
||||||
const messagePage = await json<MessageV2.WithParts[]>(messages)
|
const messagePage = await json<MessageV2.WithParts[]>(messages)
|
||||||
expect(messages.headers.get("x-next-cursor")).toBeTruthy()
|
expect(messages.headers.get("x-next-cursor")).toBeTruthy()
|
||||||
expect(messagePage[0]?.parts[0]).toMatchObject({ type: "text" })
|
expect(messagePage[0]?.parts[0]).toMatchObject({ type: "text" })
|
||||||
|
|
||||||
expect(await json<MessageV2.WithParts>(await app().request(pathFor(SessionPaths.message, { sessionID: parent.id, messageID: message.id }), { headers }))).toMatchObject({ info: { id: message.id } })
|
expect(
|
||||||
|
await json<MessageV2.WithParts>(
|
||||||
|
await app().request(pathFor(SessionPaths.message, { sessionID: parent.id, messageID: message.id }), {
|
||||||
|
headers,
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
).toMatchObject({ info: { id: message.id } })
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user