Skip to content

Commit 861c350

Browse files
committed
error message display
1 parent 0850032 commit 861c350

File tree

5 files changed

+50
-17
lines changed

5 files changed

+50
-17
lines changed

packages/prompts/resources/lang/de/prompts.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@
4343
'details' => 'Details',
4444
'context' => 'Kontext',
4545
'steps' => 'Schritte',
46+
'step_outputs' => 'Step Ausgaben',
47+
'no_step_outputs' => 'Keine Step Ausgaben verfügbar',
48+
'view_error' => 'Fehler anzeigen',
49+
'close' => 'Schließen',
50+
'no_error_message' => 'Keine Fehlermeldung verfügbar',
51+
'copy_error' => 'Fehler kopieren',
4652
],
4753

4854
'errors' => [

packages/prompts/resources/lang/en/prompts.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@
4343
'details' => 'Details',
4444
'context' => 'Context',
4545
'steps' => 'Steps',
46+
'step_outputs' => 'Step Outputs',
47+
'no_step_outputs' => 'No step outputs available',
48+
'view_error' => 'View Error',
49+
'close' => 'Close',
50+
'no_error_message' => 'No error message available',
51+
'copy_error' => 'Copy Error',
4652
],
4753

4854
'errors' => [

packages/prompts/src/Filament/Resources/CommandExecutionResource.php

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,27 @@
22

33
namespace Moox\Prompts\Filament\Resources;
44

5-
use Filament\Actions\BulkActionGroup;
5+
use Filament\Tables\Table;
6+
use Filament\Schemas\Schema;
7+
use Filament\Actions\ViewAction;
8+
use Filament\Resources\Resource;
69
use Filament\Actions\DeleteAction;
10+
use Filament\Actions\BulkActionGroup;
11+
use Filament\Forms\Components\Select;
12+
use Filament\Schemas\Components\View;
713
use Filament\Actions\DeleteBulkAction;
8-
use Filament\Actions\ViewAction;
9-
use Filament\Forms\Components\DateTimePicker;
1014
use Filament\Forms\Components\KeyValue;
11-
use Filament\Forms\Components\Select;
1215
use Filament\Forms\Components\Textarea;
16+
use Filament\Tables\Columns\TextColumn;
1317
use Filament\Forms\Components\TextInput;
14-
use Filament\Resources\Resource;
1518
use Filament\Schemas\Components\Section;
16-
use Filament\Schemas\Components\Utilities\Get;
17-
use Filament\Schemas\Schema;
19+
1820
use Filament\Tables\Columns\BadgeColumn;
19-
use Filament\Tables\Columns\TextColumn;
2021
use Filament\Tables\Filters\SelectFilter;
21-
use Filament\Tables\Table;
22-
use Moox\Prompts\Filament\Resources\CommandExecutionResource\Pages;
2322
use Moox\Prompts\Models\CommandExecution;
23+
use Filament\Forms\Components\DateTimePicker;
24+
use Filament\Schemas\Components\Utilities\Get;
25+
use Moox\Prompts\Filament\Resources\CommandExecutionResource\Pages;
2426

2527
class CommandExecutionResource extends Resource
2628
{
@@ -89,9 +91,6 @@ public static function form(Schema $schema): Schema
8991
->columns(2),
9092
Section::make(__('moox-prompts::prompts.ui.details'))
9193
->components([
92-
Textarea::make('error_message')
93-
->label(__('moox-prompts::prompts.ui.error_message'))
94-
->rows(3),
9594
KeyValue::make('context')
9695
->label(__('moox-prompts::prompts.ui.context'))
9796
->disabled(),
@@ -100,6 +99,13 @@ public static function form(Schema $schema): Schema
10099
->disabled(),
101100
])
102101
->collapsible(),
102+
Section::make(__('moox-prompts::prompts.ui.step_outputs'))
103+
->components([
104+
KeyValue::make('step_outputs')
105+
->label(__('moox-prompts::prompts.ui.step_outputs'))
106+
->disabled(),
107+
])
108+
->collapsible(),
103109
]);
104110
}
105111

packages/prompts/src/Filament/Resources/CommandExecutionResource/Pages/ViewCommandExecution.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Moox\Prompts\Filament\Resources\CommandExecutionResource\Pages;
44

5+
use Filament\Actions\Action;
56
use Filament\Resources\Pages\ViewRecord;
7+
use Illuminate\Support\HtmlString;
68
use Moox\Prompts\Filament\Resources\CommandExecutionResource;
79

810
class ViewCommandExecution extends ViewRecord
@@ -12,7 +14,16 @@ class ViewCommandExecution extends ViewRecord
1214
protected function getHeaderActions(): array
1315
{
1416
return [
15-
//
17+
Action::make('view_error')
18+
->label(__('moox-prompts::prompts.ui.view_error'))
19+
->icon('heroicon-o-exclamation-triangle')
20+
->color('danger')
21+
->modalHeading(__('moox-prompts::prompts.ui.error_message'))
22+
->modalContent(fn () => new HtmlString('<pre style="white-space: pre-wrap; word-break: break-word; font-family: monospace; font-size: 0.875rem; overflow-x: auto; max-height: 70vh; overflow-y: auto;">' . e($this->record->error_message ?? __('moox-prompts::prompts.ui.no_error_message')) . '</pre>'))
23+
->modalWidth('screen')
24+
->modalSubmitAction(false)
25+
->modalCancelActionLabel(__('moox-prompts::prompts.ui.close'))
26+
->visible(fn () => !empty($this->record->error_message)),
1627
];
1728
}
1829
}

packages/prompts/src/Support/PromptFlowRunner.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public function runNext(
119119
$this->stateStore->put($state);
120120

121121
// Update execution record as failed
122-
$this->updateExecutionFailed($state, $e->getMessage());
122+
$this->updateExecutionFailed($state, $e);
123123

124124
return [
125125
'output' => $this->appendExceptionToOutput($stepOutput, $e),
@@ -208,7 +208,7 @@ protected function updateExecutionCompleted(PromptFlowState $state): void
208208
}
209209
}
210210

211-
protected function updateExecutionFailed(PromptFlowState $state, string $errorMessage): void
211+
protected function updateExecutionFailed(PromptFlowState $state, Throwable $exception): void
212212
{
213213
if (! class_exists(CommandExecution::class)) {
214214
return;
@@ -218,11 +218,15 @@ protected function updateExecutionFailed(PromptFlowState $state, string $errorMe
218218
$command = $this->resolveCommand($state->commandName);
219219
$this->ensureExecutionExists($state, $command);
220220

221+
// Build full error message with stack trace
222+
$errorMessage = $this->formatThrowableMessage($exception);
223+
$fullError = $errorMessage . "\n\n" . $exception->getTraceAsString();
224+
221225
CommandExecution::where('flow_id', $state->flowId)->update([
222226
'status' => 'failed',
223227
'failed_at' => now(),
224228
'failed_at_step' => $state->failedAt, // The step where the failure occurred
225-
'error_message' => $errorMessage,
229+
'error_message' => $fullError,
226230
'step_outputs' => $state->stepOutputs,
227231
'context' => $state->context,
228232
]);

0 commit comments

Comments
 (0)