Skip to content

Commit 79ef9d1

Browse files
refactor: rename ModelProviderStreamEvent to ModelStreamEvent (#43)
This change improves naming consistency in the streaming API: - Individual event types use Model* prefix (ModelMessageStartEvent, etc.) - Union type now also uses Model* prefix (ModelStreamEvent) BREAKING CHANGE: ModelProviderStreamEvent has been renamed to ModelStreamEvent. All imports and type references must be updated. Updated 6 files: - src/models/streaming.ts: Type definition - src/index.ts: Public API export - src/models/model.ts: Interface signature - src/models/bedrock.ts: Implementation - tests_integ/bedrock.test.ts: Integration tests - src/models/__tests__/bedrock.test.ts: Unit tests Resolves: #38 Co-authored-by: Strands Agent <[email protected]>
1 parent 2db1cbc commit 79ef9d1

File tree

6 files changed

+19
-19
lines changed

6 files changed

+19
-19
lines changed

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export type {
5151
ModelContentBlockStopEvent,
5252
ModelMessageStopEvent,
5353
ModelMetadataEvent,
54-
ModelProviderStreamEvent,
54+
ModelStreamEvent,
5555
} from './models/streaming'
5656

5757
// Model provider types

src/models/__tests__/bedrock.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import { BedrockModel } from '../bedrock'
44
import { ContextWindowOverflowError } from '../../errors'
55
import type { Message } from '../../types/messages'
66
import type { StreamOptions } from '../model'
7-
import type { ModelProviderStreamEvent } from '../streaming'
7+
import type { ModelStreamEvent } from '../streaming'
88

99
/**
1010
* Helper function to collect all events from a stream.
1111
*/
12-
async function collectEvents(stream: AsyncIterable<ModelProviderStreamEvent>): Promise<ModelProviderStreamEvent[]> {
13-
const events: ModelProviderStreamEvent[] = []
12+
async function collectEvents(stream: AsyncIterable<ModelStreamEvent>): Promise<ModelStreamEvent[]> {
13+
const events: ModelStreamEvent[] = []
1414
for await (const event of stream) {
1515
events.push(event)
1616
}

src/models/bedrock.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import {
2828
} from '@aws-sdk/client-bedrock-runtime'
2929
import type { Model, BaseModelConfig, StreamOptions } from '../models/model'
3030
import type { Message, ContentBlock } from '../types/messages'
31-
import type { ModelProviderStreamEvent, ReasoningDelta, Usage } from '../models/streaming'
31+
import type { ModelStreamEvent, ReasoningDelta, Usage } from '../models/streaming'
3232
import type { JSONValue } from '../types/json'
3333
import { ContextWindowOverflowError } from '../errors'
3434
import { ensureDefined } from '../types/validation'
@@ -303,7 +303,7 @@ export class BedrockModel implements Model<BedrockModelConfig, BedrockRuntimeCli
303303
* }
304304
* ```
305305
*/
306-
async *stream(messages: Message[], options?: StreamOptions): AsyncIterable<ModelProviderStreamEvent> {
306+
async *stream(messages: Message[], options?: StreamOptions): AsyncIterable<ModelStreamEvent> {
307307
try {
308308
// Format the request for Bedrock
309309
const request = this._formatRequest(messages, options)
@@ -503,8 +503,8 @@ export class BedrockModel implements Model<BedrockModelConfig, BedrockRuntimeCli
503503
* @param chunk - Bedrock event chunk
504504
* @returns Array of SDK streaming events
505505
*/
506-
private _mapBedrockEventToSDKEvents(chunk: ConverseStreamOutput): ModelProviderStreamEvent[] {
507-
const events: ModelProviderStreamEvent[] = []
506+
private _mapBedrockEventToSDKEvents(chunk: ConverseStreamOutput): ModelStreamEvent[] {
507+
const events: ModelStreamEvent[] = []
508508

509509
// Extract the event type key
510510
const eventType = ensureDefined(Object.keys(chunk)[0], 'eventType') as keyof ConverseStreamOutput
@@ -523,7 +523,7 @@ export class BedrockModel implements Model<BedrockModelConfig, BedrockRuntimeCli
523523
case 'contentBlockStart': {
524524
const data = eventData as BedrockContentBlockStartEvent
525525

526-
const event: ModelProviderStreamEvent = {
526+
const event: ModelStreamEvent = {
527527
type: 'modelContentBlockStartEvent',
528528
}
529529

@@ -547,7 +547,7 @@ export class BedrockModel implements Model<BedrockModelConfig, BedrockRuntimeCli
547547
case 'contentBlockDelta': {
548548
const data = eventData as BedrockContentBlockDeltaEvent
549549
const delta = ensureDefined(data.delta, 'contentBlockDelta.delta')
550-
let event: ModelProviderStreamEvent | undefined = {
550+
let event: ModelStreamEvent | undefined = {
551551
type: 'modelContentBlockDeltaEvent',
552552
delta: { type: 'textDelta', text: '' },
553553
}
@@ -604,7 +604,7 @@ export class BedrockModel implements Model<BedrockModelConfig, BedrockRuntimeCli
604604
case 'contentBlockStop': {
605605
const data = eventData as BedrockContentBlockStopEvent
606606

607-
const event: ModelProviderStreamEvent = {
607+
const event: ModelStreamEvent = {
608608
type: 'modelContentBlockStopEvent',
609609
}
610610

@@ -619,7 +619,7 @@ export class BedrockModel implements Model<BedrockModelConfig, BedrockRuntimeCli
619619
case 'messageStop': {
620620
const data = eventData as BedrockMessageStopEvent
621621

622-
const event: ModelProviderStreamEvent = {
622+
const event: ModelStreamEvent = {
623623
type: 'modelMessageStopEvent',
624624
}
625625

@@ -645,7 +645,7 @@ export class BedrockModel implements Model<BedrockModelConfig, BedrockRuntimeCli
645645
case 'metadata': {
646646
const data = eventData as BedrockConverseStreamMetadataEvent
647647

648-
const event: ModelProviderStreamEvent = {
648+
const event: ModelStreamEvent = {
649649
type: 'modelMetadataEvent',
650650
}
651651

src/models/model.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { Message } from '../types/messages'
22
import type { ToolSpec, ToolChoice } from '../tools/types'
3-
import type { ModelProviderStreamEvent } from './streaming'
3+
import type { ModelStreamEvent } from './streaming'
44

55
/**
66
* Base configuration interface for all model providers.
@@ -85,5 +85,5 @@ export interface Model<T extends BaseModelConfig, _C = unknown> {
8585
* }
8686
* ```
8787
*/
88-
stream(messages: Message[], options?: StreamOptions): AsyncIterable<ModelProviderStreamEvent>
88+
stream(messages: Message[], options?: StreamOptions): AsyncIterable<ModelStreamEvent>
8989
}

src/models/streaming.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import type { JSONValue } from '../types/json'
2626
* }
2727
* ```
2828
*/
29-
export type ModelProviderStreamEvent =
29+
export type ModelStreamEvent =
3030
| ModelMessageStartEvent
3131
| ModelContentBlockStartEvent
3232
| ModelContentBlockDeltaEvent

tests_integ/bedrock.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import { BedrockModel } from '@strands-agents/sdk'
44
import { ContextWindowOverflowError } from '@strands-agents/sdk'
55
import type { Message } from '@strands-agents/sdk'
66
import type { ToolSpec } from '@strands-agents/sdk'
7-
import type { ModelProviderStreamEvent } from '@strands-agents/sdk'
7+
import type { ModelStreamEvent } from '@strands-agents/sdk'
88
import { ValidationException } from '@aws-sdk/client-bedrock-runtime'
99

1010
/**
1111
* Helper function to collect all events from a stream.
1212
*/
13-
async function collectEvents(stream: AsyncIterable<ModelProviderStreamEvent>): Promise<ModelProviderStreamEvent[]> {
14-
const events: ModelProviderStreamEvent[] = []
13+
async function collectEvents(stream: AsyncIterable<ModelStreamEvent>): Promise<ModelStreamEvent[]> {
14+
const events: ModelStreamEvent[] = []
1515
for await (const event of stream) {
1616
events.push(event)
1717
}

0 commit comments

Comments
 (0)