export const MessageActionParamsSchema = Type.Object(
{
channel: NonEmptyString,
action: NonEmptyString,
params: Type.Record(Type.String(), Type.Unknown()),
accountId: Type.Optional(Type.String()),
requesterSenderId: Type.Optional(Type.String()), // Honored only when the RPC caller has the full operator scope set // (shared-secret bearer or `operator.admin`). For narrowly-scoped // callers (e.g. `operator.write`-only) the gateway forces this to // `false` regardless of the value sent here.
senderIsOwner: Type.Optional(Type.Boolean()),
sessionKey: Type.Optional(Type.String()),
sessionId: Type.Optional(Type.String()),
agentId: Type.Optional(Type.String()),
toolContext: Type.Optional(MessageActionToolContextSchema),
idempotencyKey: NonEmptyString,
},
{ additionalProperties: false },
);
export const SendParamsSchema = Type.Object(
{
to: NonEmptyString,
message: Type.Optional(Type.String()),
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 agent id for per-agent media root resolution on gateway sends. */
agentId: Type.Optional(Type.String()), /** Reply target message id for native quoted/threaded sends where supported. */
replyToId: Type.Optional(Type.String()), /** Thread id (channel-specific meaning, e.g. Telegram forum topic id). */
threadId: 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 })), /** Poll duration in seconds (channel-specific limits may apply). */
durationSeconds: Type.Optional(Type.Integer({ minimum: 1, maximum: 604_800 })),
durationHours: Type.Optional(Type.Integer({ minimum: 1 })), /** Send silently (no notification) where supported. */
silent: Type.Optional(Type.Boolean()), /** Poll anonymity where supported (e.g. Telegram polls default to anonymous). */
isAnonymous: Type.Optional(Type.Boolean()), /** Thread id (channel-specific meaning, e.g. Telegram forum topic id). */
threadId: Type.Optional(Type.String()),
channel: Type.Optional(Type.String()),
accountId: Type.Optional(Type.String()),
idempotencyKey: NonEmptyString,
},
{ additionalProperties: false },
);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.