+
+
{:else if message.needsConfirmation}
- {@render confirmFooter('py-1 font-main')}
+ {@render confirmFooter('py-1')}
{/if}
{:else}
@@ -373,8 +375,8 @@
toolCallId={message.tool_call_id}
rejectIcon={XCircle}
rejectDestructive
- confirmLabel="Run"
- confirmIcon={Play}
+ confirmLabel={confirmAction.label}
+ confirmIcon={confirmAction.icon}
/>
diff --git a/frontend/src/lib/components/copilot/chat/api/apiTools.ts b/frontend/src/lib/components/copilot/chat/api/apiTools.ts
index 1063bd97e3..b0466f77de 100644
--- a/frontend/src/lib/components/copilot/chat/api/apiTools.ts
+++ b/frontend/src/lib/components/copilot/chat/api/apiTools.ts
@@ -109,6 +109,7 @@ export function createApiTools(
def: chatTool,
planModeSafe: !!endpoint && ['GET', 'HEAD', 'OPTIONS'].includes(method),
requiresConfirmation: needsConfirmation,
+ confirmAction: method === 'DELETE' ? 'delete' : 'confirm',
confirmationMessage: `Run ${toolName}`,
showDetails: true,
showFade: true,
diff --git a/frontend/src/lib/components/copilot/chat/datatableMigrationTools.ts b/frontend/src/lib/components/copilot/chat/datatableMigrationTools.ts
index c093b450c3..6e5ec4f8a7 100644
--- a/frontend/src/lib/components/copilot/chat/datatableMigrationTools.ts
+++ b/frontend/src/lib/components/copilot/chat/datatableMigrationTools.ts
@@ -213,6 +213,7 @@ export function getDatatableMigrationTools(): SessionTool<{}>[] {
requires: RUN_PREVIEW,
def: getCreateMigrationToolDef(),
requiresConfirmation: true,
+ confirmAction: (args) => (args?.apply === false ? 'create' : 'apply'),
confirmationMessage: (args) =>
`${args?.version === undefined ? 'Create' : 'Rewrite'}${args?.apply === false ? '' : ' and apply'} data table migration`,
queuedLabel: (args) => `Write migration "${args?.name ?? ''}"`,
@@ -341,6 +342,7 @@ export function getDatatableMigrationTools(): SessionTool<{}>[] {
requires: RUN_PREVIEW,
def: getRunMigrationsToolDef(),
requiresConfirmation: true,
+ confirmAction: 'apply',
confirmationMessage: 'Apply pending data table migrations',
queuedLabel: (args) => `Apply migrations on "${args?.datatable_name ?? 'datatable'}"`,
showDetails: true,
@@ -376,6 +378,7 @@ export function getDatatableMigrationTools(): SessionTool<{}>[] {
requires: RUN_PREVIEW,
def: getRollbackMigrationToolDef(),
requiresConfirmation: true,
+ confirmAction: 'rollback',
confirmationMessage: (args) => `Roll back data table migration ${args?.version ?? ''}`,
queuedLabel: (args) => `Roll back migration ${args?.version ?? ''}`,
showDetails: true,
diff --git a/frontend/src/lib/components/copilot/chat/datatableTools.ts b/frontend/src/lib/components/copilot/chat/datatableTools.ts
index e05b2e4325..097d64d06e 100644
--- a/frontend/src/lib/components/copilot/chat/datatableTools.ts
+++ b/frontend/src/lib/components/copilot/chat/datatableTools.ts
@@ -344,6 +344,7 @@ export function getDatatableTools(): SessionTool<{}>[] {
requires: RUN_PREVIEW,
def: getExecDatatableSqlToolDef(),
requiresConfirmation: true,
+ confirmAction: 'run',
confirmationMessage: 'Execute SQL on datatable',
queuedLabel: (args) => `Execute SQL on "${args?.datatable_name ?? 'datatable'}"`,
showDetails: true,
diff --git a/frontend/src/lib/components/copilot/chat/flow/core.ts b/frontend/src/lib/components/copilot/chat/flow/core.ts
index 4adbe1634b..39be790f3e 100644
--- a/frontend/src/lib/components/copilot/chat/flow/core.ts
+++ b/frontend/src/lib/components/copilot/chat/flow/core.ts
@@ -441,6 +441,7 @@ export const flowTools: Tool