v2.2-paseo-providers: Paseo provider stack + v2.2.1 pane-scoped chat fixes
Ship Paseo-equivalent provider snapshot, AgentComposerBar, ACP dispatch rewrite with streaming/persist, permission prompts, and agent commands. Follow-up: pane-scoped chat resolution, CoderMessageList tool timeline, WS user-delta replace, and inference orphan tool_call stripping. Archive openspec v2-2; update CHANGELOG and CURRENT. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -13,7 +13,13 @@ import type {
|
||||
Skill,
|
||||
AskUserAnswer,
|
||||
ToolCostStat,
|
||||
Provider,
|
||||
ProviderSnapshotEntry,
|
||||
CoderSendMessageBody,
|
||||
CoderSendMessageResponse,
|
||||
CoderMessageWire,
|
||||
CoderTaskDetail,
|
||||
PermissionPrompt,
|
||||
AgentCommand,
|
||||
} from './types';
|
||||
|
||||
export class ApiError extends Error {
|
||||
@@ -300,7 +306,46 @@ export const api = {
|
||||
models: () => request<ModelInfo[]>('/api/models'),
|
||||
|
||||
coder: {
|
||||
providers: () => request<Provider[]>('/api/coder/providers'),
|
||||
snapshot: (cwd?: string) => {
|
||||
const qs = cwd ? `?cwd=${encodeURIComponent(cwd)}` : '';
|
||||
return request<ProviderSnapshotEntry[]>(`/api/coder/providers/snapshot${qs}`);
|
||||
},
|
||||
refreshProviders: () =>
|
||||
request<{ refreshed: number }>('/api/coder/providers/refresh', { method: 'POST' }),
|
||||
sendMessage: (sessionId: string, body: CoderSendMessageBody) =>
|
||||
request<CoderSendMessageResponse>(`/api/coder/sessions/${sessionId}/messages`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(body),
|
||||
}),
|
||||
getTaskPermission: (taskId: string) =>
|
||||
request<PermissionPrompt>(`/api/coder/tasks/${taskId}/permission`),
|
||||
respondTaskPermission: (taskId: string, optionId: string | null) =>
|
||||
request<{ ok: boolean }>(`/api/coder/tasks/${taskId}/permission`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ option_id: optionId }),
|
||||
}),
|
||||
getTaskCommands: (taskId: string) =>
|
||||
request<{ taskId: string; commands: AgentCommand[] }>(`/api/coder/tasks/${taskId}/commands`),
|
||||
getTask: (taskId: string) =>
|
||||
request<CoderTaskDetail>(`/api/coder/tasks/${taskId}`),
|
||||
listMessages: (sessionId: string, chatId?: string) =>
|
||||
request<CoderMessageWire[]>(
|
||||
`/api/coder/sessions/${sessionId}/messages${chatId ? `?chat_id=${encodeURIComponent(chatId)}` : ''}`,
|
||||
),
|
||||
skillInvoke: (sessionId: string, paneId: string, skillName: string, userMessage: string | null) =>
|
||||
request<{
|
||||
user_message_id: string;
|
||||
assistant_message_id: string;
|
||||
synth_assistant_id: string;
|
||||
tool_message_id: string;
|
||||
}>(`/api/coder/sessions/${sessionId}/skill_invoke`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({
|
||||
pane_id: paneId,
|
||||
skill_name: skillName,
|
||||
user_message: userMessage,
|
||||
}),
|
||||
}),
|
||||
},
|
||||
|
||||
agents: {
|
||||
|
||||
Reference in New Issue
Block a user