mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-12 01:31:08 +00:00
Merged via squash.
Prepared head SHA: a6d7ca90d7
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
167 lines
4.7 KiB
TypeScript
167 lines
4.7 KiB
TypeScript
import { Type } from "@sinclair/typebox";
|
|
import { NonEmptyString } from "./primitives.js";
|
|
|
|
const NodePendingWorkTypeSchema = Type.String({
|
|
enum: ["status.request", "location.request"],
|
|
});
|
|
|
|
const NodePendingWorkPrioritySchema = Type.String({
|
|
enum: ["normal", "high"],
|
|
});
|
|
|
|
export const NodePairRequestParamsSchema = Type.Object(
|
|
{
|
|
nodeId: NonEmptyString,
|
|
displayName: Type.Optional(NonEmptyString),
|
|
platform: Type.Optional(NonEmptyString),
|
|
version: Type.Optional(NonEmptyString),
|
|
coreVersion: Type.Optional(NonEmptyString),
|
|
uiVersion: Type.Optional(NonEmptyString),
|
|
deviceFamily: Type.Optional(NonEmptyString),
|
|
modelIdentifier: Type.Optional(NonEmptyString),
|
|
caps: Type.Optional(Type.Array(NonEmptyString)),
|
|
commands: Type.Optional(Type.Array(NonEmptyString)),
|
|
remoteIp: Type.Optional(NonEmptyString),
|
|
silent: Type.Optional(Type.Boolean()),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodePairListParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
|
|
export const NodePairApproveParamsSchema = Type.Object(
|
|
{ requestId: NonEmptyString },
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodePairRejectParamsSchema = Type.Object(
|
|
{ requestId: NonEmptyString },
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodePairVerifyParamsSchema = Type.Object(
|
|
{ nodeId: NonEmptyString, token: NonEmptyString },
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodeRenameParamsSchema = Type.Object(
|
|
{ nodeId: NonEmptyString, displayName: NonEmptyString },
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodeListParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
|
|
export const NodePendingAckParamsSchema = Type.Object(
|
|
{
|
|
ids: Type.Array(NonEmptyString, { minItems: 1 }),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodeDescribeParamsSchema = Type.Object(
|
|
{ nodeId: NonEmptyString },
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodeInvokeParamsSchema = Type.Object(
|
|
{
|
|
nodeId: NonEmptyString,
|
|
command: NonEmptyString,
|
|
params: Type.Optional(Type.Unknown()),
|
|
timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
idempotencyKey: NonEmptyString,
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodeInvokeResultParamsSchema = Type.Object(
|
|
{
|
|
id: NonEmptyString,
|
|
nodeId: NonEmptyString,
|
|
ok: Type.Boolean(),
|
|
payload: Type.Optional(Type.Unknown()),
|
|
payloadJSON: Type.Optional(Type.String()),
|
|
error: Type.Optional(
|
|
Type.Object(
|
|
{
|
|
code: Type.Optional(NonEmptyString),
|
|
message: Type.Optional(NonEmptyString),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodeEventParamsSchema = Type.Object(
|
|
{
|
|
event: NonEmptyString,
|
|
payload: Type.Optional(Type.Unknown()),
|
|
payloadJSON: Type.Optional(Type.String()),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodePendingDrainParamsSchema = Type.Object(
|
|
{
|
|
maxItems: Type.Optional(Type.Integer({ minimum: 1, maximum: 10 })),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodePendingDrainItemSchema = Type.Object(
|
|
{
|
|
id: NonEmptyString,
|
|
type: NodePendingWorkTypeSchema,
|
|
priority: Type.String({ enum: ["default", "normal", "high"] }),
|
|
createdAtMs: Type.Integer({ minimum: 0 }),
|
|
expiresAtMs: Type.Optional(Type.Union([Type.Integer({ minimum: 0 }), Type.Null()])),
|
|
payload: Type.Optional(Type.Record(Type.String(), Type.Unknown())),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodePendingDrainResultSchema = Type.Object(
|
|
{
|
|
nodeId: NonEmptyString,
|
|
revision: Type.Integer({ minimum: 0 }),
|
|
items: Type.Array(NodePendingDrainItemSchema),
|
|
hasMore: Type.Boolean(),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodePendingEnqueueParamsSchema = Type.Object(
|
|
{
|
|
nodeId: NonEmptyString,
|
|
type: NodePendingWorkTypeSchema,
|
|
priority: Type.Optional(NodePendingWorkPrioritySchema),
|
|
expiresInMs: Type.Optional(Type.Integer({ minimum: 1_000, maximum: 86_400_000 })),
|
|
wake: Type.Optional(Type.Boolean()),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodePendingEnqueueResultSchema = Type.Object(
|
|
{
|
|
nodeId: NonEmptyString,
|
|
revision: Type.Integer({ minimum: 0 }),
|
|
queued: NodePendingDrainItemSchema,
|
|
wakeTriggered: Type.Boolean(),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const NodeInvokeRequestEventSchema = Type.Object(
|
|
{
|
|
id: NonEmptyString,
|
|
nodeId: NonEmptyString,
|
|
command: NonEmptyString,
|
|
paramsJSON: Type.Optional(Type.String()),
|
|
timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
idempotencyKey: Type.Optional(NonEmptyString),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|