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:
@@ -57,14 +57,29 @@ export async function startMcpServer(sql: Sql): Promise<void> {
|
||||
input: z.string().describe('Task description / prompt for the agent'),
|
||||
agent: z.string().optional().describe('Agent name (optional — uses default if omitted)'),
|
||||
model: z.string().optional().describe('Model override (optional)'),
|
||||
mode_id: z.string().optional().describe('Permission/mode id (optional)'),
|
||||
thinking_option_id: z.string().optional().describe('Thinking/effort option id (optional)'),
|
||||
},
|
||||
async (args) => {
|
||||
const [row] = await sql<TaskRow[]>`
|
||||
INSERT INTO tasks (project_id, input, agent, model, state)
|
||||
VALUES (${args.project_id}, ${args.input}, ${args.agent ?? null}, ${args.model ?? null}, 'pending')
|
||||
INSERT INTO tasks (project_id, input, agent, model, mode_id, thinking_option_id, state)
|
||||
VALUES (
|
||||
${args.project_id},
|
||||
${args.input},
|
||||
${args.agent ?? null},
|
||||
${args.model ?? null},
|
||||
${args.mode_id ?? null},
|
||||
${args.thinking_option_id ?? null},
|
||||
'pending'
|
||||
)
|
||||
RETURNING id, state
|
||||
`;
|
||||
return textResult({ task_id: row!.id, state: row!.state });
|
||||
return textResult({
|
||||
task_id: row!.id,
|
||||
state: row!.state,
|
||||
mode_id: args.mode_id ?? null,
|
||||
thinking_option_id: args.thinking_option_id ?? null,
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
@@ -147,11 +162,21 @@ export async function startMcpServer(sql: Sql): Promise<void> {
|
||||
input: z.string().describe('Task prompt'),
|
||||
agent: z.string().describe('Agent name (must match available_agents registry)'),
|
||||
model: z.string().optional().describe('Model override (optional)'),
|
||||
mode_id: z.string().optional().describe('Permission/mode id (optional)'),
|
||||
thinking_option_id: z.string().optional().describe('Thinking/effort option id (optional)'),
|
||||
},
|
||||
async (args) => {
|
||||
const [row] = await sql<TaskRow[]>`
|
||||
INSERT INTO tasks (project_id, input, agent, model, state)
|
||||
VALUES (${args.project_id}, ${args.input}, ${args.agent}, ${args.model ?? null}, 'pending')
|
||||
INSERT INTO tasks (project_id, input, agent, model, mode_id, thinking_option_id, state)
|
||||
VALUES (
|
||||
${args.project_id},
|
||||
${args.input},
|
||||
${args.agent},
|
||||
${args.model ?? null},
|
||||
${args.mode_id ?? null},
|
||||
${args.thinking_option_id ?? null},
|
||||
'pending'
|
||||
)
|
||||
RETURNING id, state
|
||||
`;
|
||||
|
||||
@@ -161,7 +186,13 @@ export async function startMcpServer(sql: Sql): Promise<void> {
|
||||
`;
|
||||
const executionPath = agentRow?.supports_acp ? 'acp' : 'pty';
|
||||
|
||||
return textResult({ task_id: row!.id, state: row!.state, execution_path: executionPath });
|
||||
return textResult({
|
||||
task_id: row!.id,
|
||||
state: row!.state,
|
||||
execution_path: executionPath,
|
||||
mode_id: args.mode_id ?? null,
|
||||
thinking_option_id: args.thinking_option_id ?? null,
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user