refactor: require target for message actions

This commit is contained in:
Peter Steinberger
2026-01-17 04:06:14 +00:00
parent 87cecd0268
commit 6e4d86f426
38 changed files with 517 additions and 184 deletions

View File

@@ -47,7 +47,7 @@ describe("message tool mirroring", () => {
await tool.execute("1", {
action: "send",
to: "telegram:123",
target: "telegram:123",
message: "",
media: "https://example.com/files/report.pdf?sig=1",
});
@@ -75,7 +75,7 @@ describe("message tool mirroring", () => {
await tool.execute("1", {
action: "send",
to: "telegram:123",
target: "telegram:123",
message: "hi",
});

View File

@@ -26,7 +26,9 @@ const AllMessageActions = CHANNEL_MESSAGE_ACTION_NAMES;
function buildRoutingSchema() {
return {
channel: Type.Optional(Type.String()),
to: Type.Optional(channelTargetSchema()),
target: Type.Optional(
channelTargetSchema({ description: "Target channel/user id or name." }),
),
targets: Type.Optional(channelTargetsSchema()),
accountId: Type.Optional(Type.String()),
dryRun: Type.Optional(Type.Boolean()),
@@ -89,8 +91,12 @@ function buildPollSchema() {
function buildChannelTargetSchema() {
return {
channelId: Type.Optional(channelTargetSchema()),
channelIds: Type.Optional(channelTargetsSchema()),
channelId: Type.Optional(
Type.String({ description: "Channel id filter (search/thread list/event create)." }),
),
channelIds: Type.Optional(
Type.Array(Type.String({ description: "Channel id filter (repeatable)." })),
),
guildId: Type.Optional(Type.String()),
userId: Type.Optional(Type.String()),
authorId: Type.Optional(Type.String()),
@@ -182,6 +188,7 @@ function buildMessageToolSchemaProps(options: { includeButtons: boolean }) {
};
}
function buildMessageToolSchemaFromActions(
actions: readonly string[],
options: { includeButtons: boolean },