openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
239 lines (238 loc) • 11.5 kB
TypeScript
import { Type } from "typebox";
/** Generated media/file attachment metadata carried by internal agent events. */
export declare const AgentGeneratedAttachmentSchema: Type.TObject<{
type: Type.TOptional<Type.TString>;
path: Type.TOptional<Type.TString>;
url: Type.TOptional<Type.TString>;
mediaUrl: Type.TOptional<Type.TString>;
filePath: Type.TOptional<Type.TString>;
mimeType: Type.TOptional<Type.TString>;
name: Type.TOptional<Type.TString>;
}>;
/** Internal completion event surfaced when child automation reports back to a parent run. */
export declare const AgentInternalEventSchema: Type.TObject<{
type: Type.TLiteral<"task_completion">;
source: Type.TString;
childSessionKey: Type.TString;
childSessionId: Type.TOptional<Type.TString>;
announceType: Type.TString;
taskLabel: Type.TString;
status: Type.TString;
statusLabel: Type.TString;
result: Type.TString;
attachments: Type.TOptional<Type.TArray<Type.TObject<{
type: Type.TOptional<Type.TString>;
path: Type.TOptional<Type.TString>;
url: Type.TOptional<Type.TString>;
mediaUrl: Type.TOptional<Type.TString>;
filePath: Type.TOptional<Type.TString>;
mimeType: Type.TOptional<Type.TString>;
name: Type.TOptional<Type.TString>;
}>>>;
mediaUrls: Type.TOptional<Type.TArray<Type.TString>>;
statsLine: Type.TOptional<Type.TString>;
replyInstruction: Type.TString;
}>;
/** Stream event emitted by the agent runtime over the gateway protocol. */
export declare const AgentEventSchema: Type.TObject<{
runId: Type.TString;
seq: Type.TInteger;
stream: Type.TString;
ts: Type.TInteger;
spawnedBy: Type.TOptional<Type.TString>;
isHeartbeat: Type.TOptional<Type.TBoolean>;
data: Type.TRecord<"^.*$", Type.TUnknown>;
}>;
/** Channel context injected into message actions so tools can reply in-place. */
export declare const MessageActionToolContextSchema: Type.TObject<{
currentChannelId: Type.TOptional<Type.TString>;
currentGraphChannelId: Type.TOptional<Type.TString>;
currentChannelProvider: Type.TOptional<Type.TString>;
currentThreadTs: Type.TOptional<Type.TString>;
currentMessageId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNumber]>>;
replyToMode: Type.TOptional<Type.TUnion<[Type.TLiteral<"off">, Type.TLiteral<"first">, Type.TLiteral<"all">, Type.TLiteral<"batched">]>>;
hasRepliedRef: Type.TOptional<Type.TObject<{
value: Type.TBoolean;
}>>;
skipCrossContextDecoration: Type.TOptional<Type.TBoolean>;
}>;
/** Request to execute a channel message action through a configured adapter. */
export declare const MessageActionParamsSchema: Type.TObject<{
channel: Type.TString;
action: Type.TString;
params: Type.TRecord<"^.*$", Type.TUnknown>;
accountId: Type.TOptional<Type.TString>;
requesterSenderId: Type.TOptional<Type.TString>;
senderIsOwner: Type.TOptional<Type.TBoolean>;
sessionKey: Type.TOptional<Type.TString>;
sessionId: Type.TOptional<Type.TString>;
inboundTurnKind: Type.TOptional<Type.TString>;
agentId: Type.TOptional<Type.TString>;
toolContext: Type.TOptional<Type.TObject<{
currentChannelId: Type.TOptional<Type.TString>;
currentGraphChannelId: Type.TOptional<Type.TString>;
currentChannelProvider: Type.TOptional<Type.TString>;
currentThreadTs: Type.TOptional<Type.TString>;
currentMessageId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNumber]>>;
replyToMode: Type.TOptional<Type.TUnion<[Type.TLiteral<"off">, Type.TLiteral<"first">, Type.TLiteral<"all">, Type.TLiteral<"batched">]>>;
hasRepliedRef: Type.TOptional<Type.TObject<{
value: Type.TBoolean;
}>>;
skipCrossContextDecoration: Type.TOptional<Type.TBoolean>;
}>>;
idempotencyKey: Type.TString;
}>;
/** Outbound send request shared by channel adapters. */
export declare const SendParamsSchema: Type.TObject<{
to: Type.TString;
message: Type.TOptional<Type.TString>;
mediaUrl: Type.TOptional<Type.TString>;
mediaUrls: Type.TOptional<Type.TArray<Type.TString>>;
/** Base64 attachment payload for gateway-local media materialization. */
buffer: Type.TOptional<Type.TString>;
/** Optional filename for a base64 attachment payload. */
filename: Type.TOptional<Type.TString>;
/** Optional MIME type for a base64 attachment payload. */
contentType: Type.TOptional<Type.TString>;
asVoice: Type.TOptional<Type.TBoolean>;
gifPlayback: Type.TOptional<Type.TBoolean>;
channel: Type.TOptional<Type.TString>;
accountId: Type.TOptional<Type.TString>;
/** Optional agent id for per-agent media root resolution on gateway sends. */
agentId: Type.TOptional<Type.TString>;
/** Reply target message id for native quoted/threaded sends where supported. */
replyToId: Type.TOptional<Type.TString>;
/** Thread id (channel-specific meaning, e.g. Telegram forum topic id). */
threadId: Type.TOptional<Type.TString>;
/** Force document-style media sends where supported. */
forceDocument: Type.TOptional<Type.TBoolean>;
/** Send silently (no notification) where supported. */
silent: Type.TOptional<Type.TBoolean>;
/** Channel-specific parse mode for formatted text. */
parseMode: Type.TOptional<Type.TLiteral<"HTML">>;
/** Optional session key for mirroring delivered output back into the transcript. */
sessionKey: Type.TOptional<Type.TString>;
idempotencyKey: Type.TString;
}>;
/** Poll creation request for adapters that support native polls. */
export declare const PollParamsSchema: Type.TObject<{
to: Type.TString;
question: Type.TString;
options: Type.TArray<Type.TString>;
maxSelections: Type.TOptional<Type.TInteger>;
/** Poll duration in seconds (channel-specific limits may apply). */
durationSeconds: Type.TOptional<Type.TInteger>;
durationHours: Type.TOptional<Type.TInteger>;
/** Send silently (no notification) where supported. */
silent: Type.TOptional<Type.TBoolean>;
/** Poll anonymity where supported (e.g. Telegram polls default to anonymous). */
isAnonymous: Type.TOptional<Type.TBoolean>;
/** Thread id (channel-specific meaning, e.g. Telegram forum topic id). */
threadId: Type.TOptional<Type.TString>;
channel: Type.TOptional<Type.TString>;
accountId: Type.TOptional<Type.TString>;
idempotencyKey: Type.TString;
}>;
/** Main agent-run request accepted by the gateway. */
export declare const AgentParamsSchema: Type.TObject<{
message: Type.TString;
agentId: Type.TOptional<Type.TString>;
provider: Type.TOptional<Type.TString>;
model: Type.TOptional<Type.TString>;
to: Type.TOptional<Type.TString>;
replyTo: Type.TOptional<Type.TString>;
sessionId: Type.TOptional<Type.TString>;
sessionKey: Type.TOptional<Type.TString>;
thinking: Type.TOptional<Type.TString>;
deliver: Type.TOptional<Type.TBoolean>;
attachments: Type.TOptional<Type.TArray<Type.TUnknown>>;
channel: Type.TOptional<Type.TString>;
replyChannel: Type.TOptional<Type.TString>;
accountId: Type.TOptional<Type.TString>;
replyAccountId: Type.TOptional<Type.TString>;
threadId: Type.TOptional<Type.TString>;
groupId: Type.TOptional<Type.TString>;
groupChannel: Type.TOptional<Type.TString>;
groupSpace: Type.TOptional<Type.TString>;
timeout: Type.TOptional<Type.TInteger>;
bestEffortDeliver: Type.TOptional<Type.TBoolean>;
lane: Type.TOptional<Type.TString>;
cleanupBundleMcpOnRunEnd: Type.TOptional<Type.TBoolean>;
modelRun: Type.TOptional<Type.TBoolean>;
promptMode: Type.TOptional<Type.TUnion<[Type.TLiteral<"full">, Type.TLiteral<"minimal">, Type.TLiteral<"none">]>>;
extraSystemPrompt: Type.TOptional<Type.TString>;
bootstrapContextMode: Type.TOptional<Type.TUnion<[Type.TLiteral<"full">, Type.TLiteral<"lightweight">]>>;
bootstrapContextRunKind: Type.TOptional<Type.TUnion<[Type.TLiteral<"default">, Type.TLiteral<"heartbeat">, Type.TLiteral<"cron">]>>;
acpTurnSource: Type.TOptional<Type.TLiteral<"manual_spawn">>;
internalRuntimeHandoffId: Type.TOptional<Type.TString>;
execApprovalFollowupExpectedSessionId: Type.TOptional<Type.TString>;
internalEvents: Type.TOptional<Type.TArray<Type.TObject<{
type: Type.TLiteral<"task_completion">;
source: Type.TString;
childSessionKey: Type.TString;
childSessionId: Type.TOptional<Type.TString>;
announceType: Type.TString;
taskLabel: Type.TString;
status: Type.TString;
statusLabel: Type.TString;
result: Type.TString;
attachments: Type.TOptional<Type.TArray<Type.TObject<{
type: Type.TOptional<Type.TString>;
path: Type.TOptional<Type.TString>;
url: Type.TOptional<Type.TString>;
mediaUrl: Type.TOptional<Type.TString>;
filePath: Type.TOptional<Type.TString>;
mimeType: Type.TOptional<Type.TString>;
name: Type.TOptional<Type.TString>;
}>>>;
mediaUrls: Type.TOptional<Type.TArray<Type.TString>>;
statsLine: Type.TOptional<Type.TString>;
replyInstruction: Type.TString;
}>>>;
inputProvenance: Type.TOptional<Type.TObject<{
kind: Type.TString;
originSessionId: Type.TOptional<Type.TString>;
sourceSessionKey: Type.TOptional<Type.TString>;
sourceChannel: Type.TOptional<Type.TString>;
sourceTool: Type.TOptional<Type.TString>;
}>>;
suppressPromptPersistence: Type.TOptional<Type.TBoolean>;
sessionEffects: Type.TOptional<Type.TUnion<[Type.TLiteral<"visible">, Type.TLiteral<"internal">]>>;
sourceReplyDeliveryMode: Type.TOptional<Type.TUnion<[Type.TLiteral<"automatic">, Type.TLiteral<"message_tool_only">]>>;
disableMessageTool: Type.TOptional<Type.TBoolean>;
voiceWakeTrigger: Type.TOptional<Type.TString>;
idempotencyKey: Type.TString;
label: Type.TOptional<Type.TString>;
}>;
/** Identity lookup request for the current or selected agent/session. */
export declare const AgentIdentityParamsSchema: Type.TObject<{
agentId: Type.TOptional<Type.TString>;
sessionKey: Type.TOptional<Type.TString>;
}>;
/** Public display identity returned for an agent. */
export declare const AgentIdentityResultSchema: Type.TObject<{
agentId: Type.TString;
name: Type.TOptional<Type.TString>;
avatar: Type.TOptional<Type.TString>;
avatarSource: Type.TOptional<Type.TString>;
avatarStatus: Type.TOptional<Type.TString>;
avatarReason: Type.TOptional<Type.TString>;
emoji: Type.TOptional<Type.TString>;
}>;
/** Waits for a submitted agent run to complete or time out. */
export declare const AgentWaitParamsSchema: Type.TObject<{
runId: Type.TString;
timeoutMs: Type.TOptional<Type.TInteger>;
}>;
/** Wake request from external schedulers or devices into an agent session. */
export declare const WakeParamsSchema: Type.TObject<{
mode: Type.TUnion<[Type.TLiteral<"now">, Type.TLiteral<"next-heartbeat">]>;
text: Type.TString;
sessionKey: Type.TOptional<Type.TString>;
/**
* Optional agent id paired with `sessionKey`. Routes multi-agent setups
* to the agent that owns the targeted session — closes the related half
* of #46886 ("always routes to default agent").
*/
agentId: Type.TOptional<Type.TString>;
}>;