Spaces:
Paused
Paused
| 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()), | |
| /** Optional session key for mirroring delivered output back into the transcript. */ | |
| 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 }, | |
| ); | |