chore: import upstream snapshot with attribution
CI / Migrate Dev DB (push) Has been skipped
CI / Detect Version (push) Has been cancelled
CI / Migrate DB (push) Has been cancelled
CI / Build Dev ECR (./docker/app.Dockerfile, ECR_APP) (push) Has been cancelled
CI / Build Dev ECR (./docker/db.Dockerfile, ECR_MIGRATIONS) (push) Has been cancelled
CI / Build Dev ECR (./docker/pii.Dockerfile, ECR_PII) (push) Has been cancelled
CI / Build Dev ECR (./docker/realtime.Dockerfile, ECR_REALTIME) (push) Has been cancelled
CI / Deploy Trigger.dev (Dev) (push) Has been cancelled
CI / Build AMD64 (./docker/app.Dockerfile, ECR_APP, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build AMD64 (./docker/db.Dockerfile, ECR_MIGRATIONS, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build AMD64 (./docker/pii.Dockerfile, ECR_PII, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build AMD64 (./docker/realtime.Dockerfile, ECR_REALTIME, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/app.Dockerfile, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/db.Dockerfile, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/pii.Dockerfile, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/realtime.Dockerfile, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Check Docs Changes (push) Has been cancelled
CI / Process Docs (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
CI / Test and Build (push) Has been cancelled
Publish CLI Package / publish-npm (push) Has been cancelled
Publish Python SDK / publish-pypi (push) Has been cancelled
Publish TypeScript SDK / publish-npm (push) Has been cancelled
CI / Migrate Dev DB (push) Has been skipped
CI / Detect Version (push) Has been cancelled
CI / Migrate DB (push) Has been cancelled
CI / Build Dev ECR (./docker/app.Dockerfile, ECR_APP) (push) Has been cancelled
CI / Build Dev ECR (./docker/db.Dockerfile, ECR_MIGRATIONS) (push) Has been cancelled
CI / Build Dev ECR (./docker/pii.Dockerfile, ECR_PII) (push) Has been cancelled
CI / Build Dev ECR (./docker/realtime.Dockerfile, ECR_REALTIME) (push) Has been cancelled
CI / Deploy Trigger.dev (Dev) (push) Has been cancelled
CI / Build AMD64 (./docker/app.Dockerfile, ECR_APP, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build AMD64 (./docker/db.Dockerfile, ECR_MIGRATIONS, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build AMD64 (./docker/pii.Dockerfile, ECR_PII, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build AMD64 (./docker/realtime.Dockerfile, ECR_REALTIME, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/app.Dockerfile, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/db.Dockerfile, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/pii.Dockerfile, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/realtime.Dockerfile, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Check Docs Changes (push) Has been cancelled
CI / Process Docs (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
CI / Test and Build (push) Has been cancelled
Publish CLI Package / publish-npm (push) Has been cancelled
Publish Python SDK / publish-pypi (push) Has been cancelled
Publish TypeScript SDK / publish-npm (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
import {
|
||||
type PersistedStreamEventEnvelope,
|
||||
parsePersistedStreamEventEnvelope,
|
||||
type SessionStreamEvent,
|
||||
} from './contract'
|
||||
|
||||
type CreateEventBase = {
|
||||
chatId?: string
|
||||
cursor: string
|
||||
requestId: string
|
||||
seq: number
|
||||
streamId: string
|
||||
ts?: string
|
||||
}
|
||||
|
||||
type CreateEventVariant<TEvent extends SessionStreamEvent> = CreateEventBase &
|
||||
Pick<TEvent, 'type' | 'payload' | 'scope'>
|
||||
|
||||
export type CreateEventInput = SessionStreamEvent extends infer TEvent
|
||||
? TEvent extends SessionStreamEvent
|
||||
? CreateEventVariant<TEvent>
|
||||
: never
|
||||
: never
|
||||
|
||||
type CreateEventResult<TInput extends CreateEventInput> = Extract<
|
||||
PersistedStreamEventEnvelope,
|
||||
{ type: TInput['type']; payload: TInput['payload'] }
|
||||
>
|
||||
|
||||
type StreamEventFromEnvelope<TEnvelope extends PersistedStreamEventEnvelope> = Extract<
|
||||
SessionStreamEvent,
|
||||
{ type: TEnvelope['type']; payload: TEnvelope['payload'] }
|
||||
>
|
||||
|
||||
export const TOOL_CALL_STATUS = {
|
||||
generating: 'generating',
|
||||
} as const
|
||||
|
||||
export function createEvent<TInput extends CreateEventInput>(
|
||||
input: TInput
|
||||
): CreateEventResult<TInput> {
|
||||
const { streamId, chatId, cursor, seq, requestId, type, payload, scope, ts } = input
|
||||
|
||||
return {
|
||||
v: 1,
|
||||
type,
|
||||
seq,
|
||||
ts: ts ?? new Date().toISOString(),
|
||||
stream: {
|
||||
streamId,
|
||||
...(chatId ? { chatId } : {}),
|
||||
cursor,
|
||||
},
|
||||
trace: {
|
||||
requestId,
|
||||
},
|
||||
...(scope ? { scope } : {}),
|
||||
payload,
|
||||
} as CreateEventResult<TInput>
|
||||
}
|
||||
|
||||
export function isEventRecord(value: unknown): value is PersistedStreamEventEnvelope {
|
||||
return parsePersistedStreamEventEnvelope(value).ok
|
||||
}
|
||||
|
||||
export function eventToStreamEvent<TEnvelope extends PersistedStreamEventEnvelope>(
|
||||
envelope: TEnvelope
|
||||
): StreamEventFromEnvelope<TEnvelope> {
|
||||
return {
|
||||
type: envelope.type,
|
||||
payload: envelope.payload,
|
||||
...(envelope.scope ? { scope: envelope.scope } : {}),
|
||||
} as StreamEventFromEnvelope<TEnvelope>
|
||||
}
|
||||
Reference in New Issue
Block a user