@@ -5,10 +5,10 @@ import { Endpoint } from "../route/endpoint"
55import { Framing } from "../route/framing"
66import { Protocol } from "../route/protocol"
77import {
8+ LLMEvent ,
89 Usage ,
910 type CacheHint ,
1011 type FinishReason ,
11- type LLMEvent ,
1212 type LLMRequest ,
1313 type ProviderMetadata ,
1414 type ToolCallPart ,
@@ -415,14 +415,13 @@ const serverToolResultEvent = (block: NonNullable<AnthropicEvent["content_block"
415415 ? String ( ( block . content as Record < string , unknown > ) . type )
416416 : ""
417417 const isError = errorPayload . endsWith ( "_tool_result_error" )
418- return {
419- type : "tool-result" ,
418+ return LLMEvent . toolResult ( {
420419 id : block . tool_use_id ?? "" ,
421420 name : SERVER_TOOL_RESULT_NAMES [ block . type ] ,
422421 result : isError ? { type : "error" , value : block . content } : { type : "json" , value : block . content } ,
423422 providerExecuted : true ,
424423 providerMetadata : anthropicMetadata ( { blockType : block . type } ) ,
425- }
424+ } )
426425}
427426
428427type StepResult = readonly [ ParserState , ReadonlyArray < LLMEvent > ]
@@ -453,18 +452,17 @@ const onContentBlockStart = (state: ParserState, event: AnthropicEvent): StepRes
453452 }
454453
455454 if ( block . type === "text" && block . text ) {
456- return [ state , [ { type : " text-delta" , text : block . text } ] ]
455+ return [ state , [ LLMEvent . textDelta ( { id : ` text-${ event . index ?? 0 } ` , text : block . text } ) ] ]
457456 }
458457
459458 if ( block . type === "thinking" && block . thinking ) {
460459 return [
461460 state ,
462461 [
463- {
464- type : " reasoning-delta" ,
462+ LLMEvent . reasoningDelta ( {
463+ id : ` reasoning-${ event . index ?? 0 } ` ,
465464 text : block . thinking ,
466- ...( block . signature ? { providerMetadata : anthropicMetadata ( { signature : block . signature } ) } : { } ) ,
467- } ,
465+ } ) ,
468466 ] ,
469467 ]
470468 }
@@ -480,17 +478,17 @@ const onContentBlockDelta = Effect.fn("AnthropicMessages.onContentBlockDelta")(f
480478 const delta = event . delta
481479
482480 if ( delta ?. type === "text_delta" && delta . text ) {
483- return [ state , [ { type : " text-delta" , text : delta . text } ] ] satisfies StepResult
481+ return [ state , [ LLMEvent . textDelta ( { id : ` text-${ event . index ?? 0 } ` , text : delta . text } ) ] ] satisfies StepResult
484482 }
485483
486484 if ( delta ?. type === "thinking_delta" && delta . thinking ) {
487- return [ state , [ { type : " reasoning-delta" , text : delta . thinking } ] ] satisfies StepResult
485+ return [ state , [ LLMEvent . reasoningDelta ( { id : ` reasoning-${ event . index ?? 0 } ` , text : delta . thinking } ) ] ] satisfies StepResult
488486 }
489487
490488 if ( delta ?. type === "signature_delta" && delta . signature ) {
491489 return [
492490 state ,
493- [ { type : " reasoning-delta" , text : "" , providerMetadata : anthropicMetadata ( { signature : delta . signature } ) } ] ,
491+ [ LLMEvent . reasoningEnd ( { id : ` reasoning-${ event . index ?? 0 } ` , providerMetadata : anthropicMetadata ( { signature : delta . signature } ) } ) ] ,
494492 ] satisfies StepResult
495493 }
496494
@@ -524,21 +522,20 @@ const onMessageDelta = (state: ParserState, event: AnthropicEvent): StepResult =
524522 return [
525523 { ...state , usage } ,
526524 [
527- {
528- type : "request-finish" ,
525+ LLMEvent . requestFinish ( {
529526 reason : mapFinishReason ( event . delta ?. stop_reason ) ,
530527 usage,
531- ... ( event . delta ?. stop_sequence
532- ? { providerMetadata : anthropicMetadata ( { stopSequence : event . delta . stop_sequence } ) }
533- : { } ) ,
534- } ,
528+ providerMetadata : event . delta ?. stop_sequence
529+ ? anthropicMetadata ( { stopSequence : event . delta . stop_sequence } )
530+ : undefined ,
531+ } ) ,
535532 ] ,
536533 ]
537534}
538535
539536const onError = ( state : ParserState , event : AnthropicEvent ) : StepResult => [
540537 state ,
541- [ { type : "provider-error" , message : event . error ?. message ?? "Anthropic Messages stream error" } ] ,
538+ [ LLMEvent . providerError ( { message : event . error ?. message ?? "Anthropic Messages stream error" } ) ] ,
542539]
543540
544541const step = ( state : ParserState , event : AnthropicEvent ) => {
0 commit comments