diff --git a/server/src/api/record.ts b/server/src/api/record.ts index 25c6f95a..f6ef6ea7 100644 --- a/server/src/api/record.ts +++ b/server/src/api/record.ts @@ -1001,6 +1001,7 @@ async function executeRun(id: string, userId: string, requestedFormats?: string[ schemaItemsExtracted: totalSchemaItemsExtracted, listItemsExtracted: totalListItemsExtracted, extractedScreenshotsCount, + is_llm: (recording.recording_meta as any).isLLM, } ) @@ -1121,15 +1122,16 @@ async function executeRun(id: string, userId: string, requestedFormats?: string[ } catch (webhookError: any) { logger.log('error', `Failed to send failure webhooks for run ${run.runId}: ${webhookError.message}`); } + capture( + 'maxun-oss-run-created-api', + { + runId: id, + created_at: new Date().toISOString(), + status: 'failed', + is_llm: (recording?.recording_meta as any)?.isLLM, + } + ); } - capture( - 'maxun-oss-run-created-api', - { - runId: id, - created_at: new Date().toISOString(), - status: 'failed', - } - ); return { success: false, error: error.message, diff --git a/server/src/api/sdk.ts b/server/src/api/sdk.ts index e3c6ac7c..70302246 100644 --- a/server/src/api/sdk.ts +++ b/server/src/api/sdk.ts @@ -677,6 +677,7 @@ router.post("/sdk/extract/llm", requireAPIKey, async (req: AuthenticatedRequest, params: [], type: 'extract', url: workflowResult.url, + isLLM: true, }; const robot = await Robot.create({ diff --git a/server/src/models/Robot.ts b/server/src/models/Robot.ts index 1ce269b0..51f9e48f 100644 --- a/server/src/models/Robot.ts +++ b/server/src/models/Robot.ts @@ -12,6 +12,7 @@ interface RobotMeta { type?: 'extract' | 'scrape'; url?: string; formats?: ('markdown' | 'html' | 'screenshot-visible' | 'screenshot-fullpage')[]; + isLLM?: boolean; } interface RobotWorkflow { diff --git a/server/src/pgboss-worker.ts b/server/src/pgboss-worker.ts index 1f7125f4..43b4efc3 100644 --- a/server/src/pgboss-worker.ts +++ b/server/src/pgboss-worker.ts @@ -538,6 +538,7 @@ async function processRunExecution(job: Job) { schemaItemsExtracted: totalSchemaItemsExtracted, listItemsExtracted: totalListItemsExtracted, extractedScreenshotsCount, + is_llm: (recording.recording_meta as any).isLLM, } ); @@ -703,6 +704,7 @@ async function processRunExecution(job: Job) { error_message: executionError.message, partial_data_extracted: partialDataExtracted, totalRowsExtracted: partialData?.totalSchemaItemsExtracted + partialData?.totalListItemsExtracted + partialData?.extractedScreenshotsCount || 0, + is_llm: (recording?.recording_meta as any)?.isLLM, }); try { diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index 4dea2c33..0f84504e 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -573,6 +573,7 @@ router.post('/recordings/llm', requireSignIn, async (req: AuthenticatedRequest, params: [], type: 'extract', url: workflowResult.url || url, + isLLM: true, }, recording: { workflow: workflowResult.workflow }, google_sheet_email: null, diff --git a/server/src/workflow-management/scheduler/index.ts b/server/src/workflow-management/scheduler/index.ts index 652e72d8..29999cff 100644 --- a/server/src/workflow-management/scheduler/index.ts +++ b/server/src/workflow-management/scheduler/index.ts @@ -536,6 +536,7 @@ async function executeRun(id: string, userId: string) { schemaItemsExtracted: totalSchemaItemsExtracted, listItemsExtracted: totalListItemsExtracted, extractedScreenshotsCount, + is_llm: (recording.recording_meta as any).isLLM, } ); @@ -650,15 +651,16 @@ async function executeRun(id: string, userId: string) { } catch (socketError: any) { logger.log('warn', `Failed to emit failure event in main catch: ${socketError.message}`); } + capture( + 'maxun-oss-run-created-scheduled', + { + runId: id, + created_at: new Date().toISOString(), + status: 'failed', + is_llm: (recording?.recording_meta as any)?.isLLM, + } + ); } - capture( - 'maxun-oss-run-created-scheduled', - { - runId: id, - created_at: new Date().toISOString(), - status: 'failed', - } - ); return false; } } diff --git a/src/components/robot/pages/RobotDuplicatePage.tsx b/src/components/robot/pages/RobotDuplicatePage.tsx index fd01103b..f021ee45 100644 --- a/src/components/robot/pages/RobotDuplicatePage.tsx +++ b/src/components/robot/pages/RobotDuplicatePage.tsx @@ -27,6 +27,7 @@ interface RobotMeta { type?: 'extract' | 'scrape'; url?: string; formats?: ('markdown' | 'html' | 'screenshot-visible' | 'screenshot-fullpage')[]; + isLLM?: boolean; } interface RobotWorkflow { diff --git a/src/components/robot/pages/RobotEditPage.tsx b/src/components/robot/pages/RobotEditPage.tsx index 54b06962..8914f4aa 100644 --- a/src/components/robot/pages/RobotEditPage.tsx +++ b/src/components/robot/pages/RobotEditPage.tsx @@ -27,6 +27,7 @@ interface RobotMeta { type?: 'extract' | 'scrape'; url?: string; formats?: ('markdown' | 'html' | 'screenshot-visible' | 'screenshot-fullpage')[]; + isLLM?: boolean; } interface RobotWorkflow { diff --git a/src/components/robot/pages/RobotSettingsPage.tsx b/src/components/robot/pages/RobotSettingsPage.tsx index 0817c0ab..a5618d4c 100644 --- a/src/components/robot/pages/RobotSettingsPage.tsx +++ b/src/components/robot/pages/RobotSettingsPage.tsx @@ -19,6 +19,7 @@ interface RobotMeta { type?: 'extract' | 'scrape'; url?: string; formats?: ('markdown' | 'html' | 'screenshot-visible' | 'screenshot-fullpage')[]; + isLLM?: boolean; } interface RobotWorkflow { diff --git a/src/context/globalInfo.tsx b/src/context/globalInfo.tsx index c5bbc044..5db9239d 100644 --- a/src/context/globalInfo.tsx +++ b/src/context/globalInfo.tsx @@ -30,6 +30,7 @@ interface RobotMeta { type?: 'extract' | 'scrape'; url?: string; formats?: ('markdown' | 'html' | 'screenshot-visible' | 'screenshot-fullpage')[]; + isLLM?: boolean; } interface RobotWorkflow {