| import { Type } from "@sinclair/typebox"; |
|
|
| import { NonEmptyString, SessionLabelString } from "./primitives.js"; |
|
|
| export const AgentEventSchema = Type.Object( |
| { |
| runId: NonEmptyString, |
| seq: Type.Integer({ minimum: 0 }), |
| stream: NonEmptyString, |
| ts: Type.Integer({ minimum: 0 }), |
| data: Type.Record(Type.String(), Type.Unknown()), |
| }, |
| { additionalProperties: false }, |
| ); |
|
|
| export const SendParamsSchema = Type.Object( |
| { |
| to: NonEmptyString, |
| message: NonEmptyString, |
| mediaUrl: Type.Optional(Type.String()), |
| mediaUrls: Type.Optional(Type.Array(Type.String())), |
| gifPlayback: Type.Optional(Type.Boolean()), |
| channel: Type.Optional(Type.String()), |
| accountId: Type.Optional(Type.String()), |
| |
| sessionKey: Type.Optional(Type.String()), |
| idempotencyKey: NonEmptyString, |
| }, |
| { additionalProperties: false }, |
| ); |
|
|
| export const PollParamsSchema = Type.Object( |
| { |
| to: NonEmptyString, |
| question: NonEmptyString, |
| options: Type.Array(NonEmptyString, { minItems: 2, maxItems: 12 }), |
| maxSelections: Type.Optional(Type.Integer({ minimum: 1, maximum: 12 })), |
| durationHours: Type.Optional(Type.Integer({ minimum: 1 })), |
| channel: Type.Optional(Type.String()), |
| accountId: Type.Optional(Type.String()), |
| idempotencyKey: NonEmptyString, |
| }, |
| { additionalProperties: false }, |
| ); |
|
|
| export const AgentParamsSchema = Type.Object( |
| { |
| message: NonEmptyString, |
| agentId: Type.Optional(NonEmptyString), |
| to: Type.Optional(Type.String()), |
| replyTo: Type.Optional(Type.String()), |
| sessionId: Type.Optional(Type.String()), |
| sessionKey: Type.Optional(Type.String()), |
| thinking: Type.Optional(Type.String()), |
| deliver: Type.Optional(Type.Boolean()), |
| attachments: Type.Optional(Type.Array(Type.Unknown())), |
| channel: Type.Optional(Type.String()), |
| replyChannel: Type.Optional(Type.String()), |
| accountId: Type.Optional(Type.String()), |
| replyAccountId: Type.Optional(Type.String()), |
| threadId: Type.Optional(Type.String()), |
| groupId: Type.Optional(Type.String()), |
| groupChannel: Type.Optional(Type.String()), |
| groupSpace: Type.Optional(Type.String()), |
| timeout: Type.Optional(Type.Integer({ minimum: 0 })), |
| lane: Type.Optional(Type.String()), |
| extraSystemPrompt: Type.Optional(Type.String()), |
| idempotencyKey: NonEmptyString, |
| label: Type.Optional(SessionLabelString), |
| spawnedBy: Type.Optional(Type.String()), |
| }, |
| { additionalProperties: false }, |
| ); |
|
|
| export const AgentIdentityParamsSchema = Type.Object( |
| { |
| agentId: Type.Optional(NonEmptyString), |
| sessionKey: Type.Optional(Type.String()), |
| }, |
| { additionalProperties: false }, |
| ); |
|
|
| export const AgentIdentityResultSchema = Type.Object( |
| { |
| agentId: NonEmptyString, |
| name: Type.Optional(NonEmptyString), |
| avatar: Type.Optional(NonEmptyString), |
| }, |
| { additionalProperties: false }, |
| ); |
|
|
| export const AgentWaitParamsSchema = Type.Object( |
| { |
| runId: NonEmptyString, |
| timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })), |
| }, |
| { additionalProperties: false }, |
| ); |
|
|
| export const WakeParamsSchema = Type.Object( |
| { |
| mode: Type.Union([Type.Literal("now"), Type.Literal("next-heartbeat")]), |
| text: NonEmptyString, |
| }, |
| { additionalProperties: false }, |
| ); |
|
|