$session->session_id, 'path' => 'docs/session-artifact.md', 'action' => 'modified', 'description' => 'some narrative text', 'metadata' => null, ]; $result = null; expect(function () use ($tool, $payload, $session, &$result): void { $result = $tool->handle($payload, ['session_id' => $session->session_id]); })->not->toThrow(TypeError::class); expect($result)->toBeArray() ->and($result['success'])->toBeTrue() ->and($result['artifact'])->toBe('docs/session-artifact.md'); $artifacts = $session->fresh()->artifacts; expect($artifacts)->toHaveCount(1) ->and($artifacts[0]['path'])->toBe('docs/session-artifact.md') ->and($artifacts[0]['action'])->toBe('modified') ->and($artifacts[0]['metadata'])->toBe(['description' => 'some narrative text']); });