@leemour/max-cli 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bot/client.d.ts +6 -0
- package/dist/bot/client.d.ts.map +1 -1
- package/dist/bot/client.js +17 -3
- package/dist/bot/client.js.map +1 -1
- package/dist/bot/input.d.ts.map +1 -1
- package/dist/bot/input.js +7 -4
- package/dist/bot/input.js.map +1 -1
- package/dist/bot/joins.d.ts +26 -0
- package/dist/bot/joins.d.ts.map +1 -0
- package/dist/bot/joins.js +56 -0
- package/dist/bot/joins.js.map +1 -0
- package/dist/bot/keep.d.ts +2 -2
- package/dist/bot/keep.d.ts.map +1 -1
- package/dist/bot/keep.js +3 -2
- package/dist/bot/keep.js.map +1 -1
- package/dist/bot/map.d.ts +5 -2
- package/dist/bot/map.d.ts.map +1 -1
- package/dist/bot/map.js +7 -1
- package/dist/bot/map.js.map +1 -1
- package/dist/bot-mcp/instructions.d.ts +9 -0
- package/dist/bot-mcp/instructions.d.ts.map +1 -0
- package/dist/bot-mcp/instructions.js +22 -0
- package/dist/bot-mcp/instructions.js.map +1 -0
- package/dist/bot-mcp/server.d.ts +21 -0
- package/dist/bot-mcp/server.d.ts.map +1 -0
- package/dist/bot-mcp/server.js +199 -0
- package/dist/bot-mcp/server.js.map +1 -0
- package/dist/bot-mcp/tools.d.ts +27 -0
- package/dist/bot-mcp/tools.d.ts.map +1 -0
- package/dist/bot-mcp/tools.js +280 -0
- package/dist/bot-mcp/tools.js.map +1 -0
- package/dist/client.d.ts +26 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +156 -2
- package/dist/client.js.map +1 -1
- package/dist/commands/bot-check.d.ts +11 -0
- package/dist/commands/bot-check.d.ts.map +1 -0
- package/dist/commands/bot-check.js +206 -0
- package/dist/commands/bot-check.js.map +1 -0
- package/dist/commands/bot-mcp.d.ts +3 -0
- package/dist/commands/bot-mcp.d.ts.map +1 -0
- package/dist/commands/bot-mcp.js +69 -0
- package/dist/commands/bot-mcp.js.map +1 -0
- package/dist/commands/bot-people.d.ts +10 -0
- package/dist/commands/bot-people.d.ts.map +1 -0
- package/dist/commands/bot-people.js +156 -0
- package/dist/commands/bot-people.js.map +1 -0
- package/dist/commands/bot-reads.d.ts.map +1 -1
- package/dist/commands/bot-reads.js +14 -8
- package/dist/commands/bot-reads.js.map +1 -1
- package/dist/commands/bot-updates.d.ts.map +1 -1
- package/dist/commands/bot-updates.js +16 -2
- package/dist/commands/bot-updates.js.map +1 -1
- package/dist/commands/bot.d.ts.map +1 -1
- package/dist/commands/bot.js +6 -1
- package/dist/commands/bot.js.map +1 -1
- package/dist/commands/check.js +3 -3
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/polls.d.ts +3 -0
- package/dist/commands/polls.d.ts.map +1 -0
- package/dist/commands/polls.js +103 -0
- package/dist/commands/polls.js.map +1 -0
- package/dist/domain/map.d.ts +9 -1
- package/dist/domain/map.d.ts.map +1 -1
- package/dist/domain/map.js +57 -0
- package/dist/domain/map.js.map +1 -1
- package/dist/domain/models.d.ts +29 -0
- package/dist/domain/models.d.ts.map +1 -1
- package/dist/domain/models.js.map +1 -1
- package/dist/generated/client.generated.d.ts +1 -0
- package/dist/generated/client.generated.d.ts.map +1 -1
- package/dist/generated/client.generated.js +1 -0
- package/dist/generated/client.generated.js.map +1 -1
- package/dist/generated/opcodes.generated.d.ts +1 -0
- package/dist/generated/opcodes.generated.d.ts.map +1 -1
- package/dist/generated/opcodes.generated.js +1 -0
- package/dist/generated/opcodes.generated.js.map +1 -1
- package/dist/generated/operations.generated.d.ts +11 -3
- package/dist/generated/operations.generated.d.ts.map +1 -1
- package/dist/generated/operations.generated.js +2 -1
- package/dist/generated/operations.generated.js.map +1 -1
- package/dist/mcp/confirm.d.ts +6 -2
- package/dist/mcp/confirm.d.ts.map +1 -1
- package/dist/mcp/confirm.js +2 -2
- package/dist/mcp/confirm.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +41 -5
- package/dist/mcp/tools.js.map +1 -1
- package/dist/moderation/check.d.ts +10 -3
- package/dist/moderation/check.d.ts.map +1 -1
- package/dist/moderation/check.js +12 -5
- package/dist/moderation/check.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +2 -0
- package/dist/program.js.map +1 -1
- package/dist/rendering/messages.d.ts +6 -1
- package/dist/rendering/messages.d.ts.map +1 -1
- package/dist/rendering/messages.js +24 -3
- package/dist/rendering/messages.js.map +1 -1
- package/dist/server/server-connection.d.ts +8 -1
- package/dist/server/server-connection.d.ts.map +1 -1
- package/dist/server/server-connection.js +27 -1
- package/dist/server/server-connection.js.map +1 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +2 -1
- package/dist/server/server.js.map +1 -1
- package/dist/server/start.d.ts +1 -1
- package/dist/server/start.d.ts.map +1 -1
- package/dist/server/start.js +5 -3
- package/dist/server/start.js.map +1 -1
- package/dist/spec/index.d.ts.map +1 -1
- package/dist/spec/index.js +2 -1
- package/dist/spec/index.js.map +1 -1
- package/dist/spec/operations/chats.d.ts.map +1 -1
- package/dist/spec/operations/chats.js +3 -1
- package/dist/spec/operations/chats.js.map +1 -1
- package/dist/spec/operations/messages.d.ts +13 -3
- package/dist/spec/operations/messages.d.ts.map +1 -1
- package/dist/spec/operations/messages.js +28 -2
- package/dist/spec/operations/messages.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -2
- package/skills/max-cli/SKILL.md +8 -3
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CliError } from "@leemour/cli-core";
|
|
2
|
-
import { namesFrom, SETTING_FLAGS, toChat, toContact, toFolder, toGroupCard, toGroupMember, toMessage, toProfile, toReactions, toSession, } from "./domain/map.js";
|
|
2
|
+
import { namesFrom, POLL_CLOSED, pollSettings, SETTING_FLAGS, toChat, toContact, toFolder, toGroupCard, toGroupMember, toMessage, toPoll, toProfile, toReactions, toSession, } from "./domain/map.js";
|
|
3
3
|
import { heldWindows } from "./export.js";
|
|
4
4
|
import { wireClient } from "./generated/client.generated.js";
|
|
5
5
|
import { parseMarkdown } from "./markdown.js";
|
|
@@ -1002,6 +1002,160 @@ export class MaxClient {
|
|
|
1002
1002
|
}
|
|
1003
1003
|
},
|
|
1004
1004
|
};
|
|
1005
|
+
/**
|
|
1006
|
+
* **Polls: vote, take a vote back, close one's own, create one.** Every one of them is a write
|
|
1007
|
+
* somebody else can see, so it passes the send guard and the journal under the kind of what it is:
|
|
1008
|
+
* a vote is a `reaction`, closing is an `edit` of the owner's message, a new poll is a `message`.
|
|
1009
|
+
* A vote is never retried — nothing measured makes a blind repeat safe.
|
|
1010
|
+
*
|
|
1011
|
+
* The shapes were measured in Saved messages on 2026-09-27 (`pnpm probe:polls`, `FIND-247`). The
|
|
1012
|
+
* checks before sending are the web client's, so what it would refuse never reaches MAX.
|
|
1013
|
+
*/
|
|
1014
|
+
polls = {
|
|
1015
|
+
vote: async (chatId, messageId, answerIds) => {
|
|
1016
|
+
if (this.#offline)
|
|
1017
|
+
throw new CliError("validation_error", "`--offline` reads what was recorded; it cannot vote");
|
|
1018
|
+
this.#guard({ chatId, kind: "reaction" }, messageId);
|
|
1019
|
+
try {
|
|
1020
|
+
await this.#connectOnce();
|
|
1021
|
+
const { attach, poll } = await this.#poll(chatId, messageId);
|
|
1022
|
+
const voted = poll.answers.some((answer) => answer.mine);
|
|
1023
|
+
if (answerIds.length === 0 && !voted) {
|
|
1024
|
+
throw new CliError("validation_error", `you have not voted in the poll of message ${messageId}`);
|
|
1025
|
+
}
|
|
1026
|
+
if (answerIds.length === 0 && !poll.revote) {
|
|
1027
|
+
throw new CliError("validation_error", `the poll of message ${messageId} does not let a vote be taken back`);
|
|
1028
|
+
}
|
|
1029
|
+
if (answerIds.length > 0 && voted && !poll.revote) {
|
|
1030
|
+
throw new CliError("validation_error", `you have voted in the poll of message ${messageId}, and it does not let a vote change`);
|
|
1031
|
+
}
|
|
1032
|
+
if (answerIds.length > 1 && !poll.multiple) {
|
|
1033
|
+
throw new CliError("validation_error", `the poll of message ${messageId} takes one answer, not ${answerIds.length}`);
|
|
1034
|
+
}
|
|
1035
|
+
const unknown = answerIds.find((id) => !poll.answers.some((answer) => answer.id === id));
|
|
1036
|
+
if (unknown !== undefined) {
|
|
1037
|
+
throw new CliError("validation_error", `the poll of message ${messageId} has no answer ${unknown} — its answers are ${poll.answers.map((answer) => answer.id).join(", ")}`);
|
|
1038
|
+
}
|
|
1039
|
+
const answer = await this.#wire.messages.pollVote({
|
|
1040
|
+
chatId,
|
|
1041
|
+
messageId,
|
|
1042
|
+
pollId: poll.id,
|
|
1043
|
+
answersIds: answerIds.map(Number),
|
|
1044
|
+
});
|
|
1045
|
+
this.#cache?.messages.invalidate(chatId);
|
|
1046
|
+
this.#sends?.record({ chatId, kind: "reaction", outcome: "sent", messageId });
|
|
1047
|
+
const state = record(answer.state);
|
|
1048
|
+
return { chatId, messageId, poll: (state && toPoll({ ...attach, state })) ?? poll };
|
|
1049
|
+
}
|
|
1050
|
+
catch (error) {
|
|
1051
|
+
this.#sends?.record({
|
|
1052
|
+
chatId,
|
|
1053
|
+
kind: "reaction",
|
|
1054
|
+
outcome: "failed",
|
|
1055
|
+
messageId,
|
|
1056
|
+
errorCode: asCliError(error).code,
|
|
1057
|
+
});
|
|
1058
|
+
throw error;
|
|
1059
|
+
}
|
|
1060
|
+
},
|
|
1061
|
+
/** Closes the owner's own poll: the web client edits the message with the `closed` bit raised. */
|
|
1062
|
+
close: async (chatId, messageId) => {
|
|
1063
|
+
if (this.#offline)
|
|
1064
|
+
throw new CliError("validation_error", "`--offline` reads what was recorded; it cannot close a poll");
|
|
1065
|
+
this.#guard({ chatId, kind: "edit" }, messageId);
|
|
1066
|
+
try {
|
|
1067
|
+
await this.#connectOnce();
|
|
1068
|
+
const { attach, poll, outgoing } = await this.#poll(chatId, messageId);
|
|
1069
|
+
if (!outgoing)
|
|
1070
|
+
throw new CliError("validation_error", `the poll of message ${messageId} is not yours to close`);
|
|
1071
|
+
// What the web client sends back: the answers' text only, no ids and no votes.
|
|
1072
|
+
const closed = {
|
|
1073
|
+
_type: "POLL",
|
|
1074
|
+
pollId: attach.pollId,
|
|
1075
|
+
title: attach.title,
|
|
1076
|
+
answers: asArray(attach.answers).map((each) => ({ text: each.text })),
|
|
1077
|
+
settings: (typeof attach.settings === "number" ? attach.settings : 0) | POLL_CLOSED,
|
|
1078
|
+
};
|
|
1079
|
+
const answer = await this.#wire.messages.edit({ chatId, messageId, attachments: [closed] });
|
|
1080
|
+
this.#cache?.messages.invalidate(chatId);
|
|
1081
|
+
this.#sends?.record({ chatId, kind: "edit", outcome: "sent", messageId });
|
|
1082
|
+
const after = asArray(record(answer.message)?.attaches).find((each) => each._type === "POLL");
|
|
1083
|
+
return { chatId, messageId, poll: (after && toPoll(after)) ?? { ...poll, closed: true } };
|
|
1084
|
+
}
|
|
1085
|
+
catch (error) {
|
|
1086
|
+
this.#sends?.record({ chatId, kind: "edit", outcome: "failed", messageId, errorCode: asCliError(error).code });
|
|
1087
|
+
throw error;
|
|
1088
|
+
}
|
|
1089
|
+
},
|
|
1090
|
+
/**
|
|
1091
|
+
* A new message whose one attachment is the poll — so it goes through `#deliver`, with its `cid`
|
|
1092
|
+
* and its one retry, like any message.
|
|
1093
|
+
*/
|
|
1094
|
+
create: async (chatId, question, answers, options = {}) => {
|
|
1095
|
+
if (this.#offline)
|
|
1096
|
+
throw new CliError("validation_error", "`--offline` reads what was recorded; it cannot create a poll");
|
|
1097
|
+
if (question.trim() === "")
|
|
1098
|
+
throw new CliError("validation_error", "a poll needs a question");
|
|
1099
|
+
if (answers.length < 2 || answers.some((answer) => answer.trim() === "")) {
|
|
1100
|
+
throw new CliError("validation_error", "a poll needs at least two answers, none of them empty");
|
|
1101
|
+
}
|
|
1102
|
+
try {
|
|
1103
|
+
this.#sends?.check({ chatId, kind: "message", ...(options.cid === undefined ? {} : { cid: options.cid }) });
|
|
1104
|
+
}
|
|
1105
|
+
catch (error) {
|
|
1106
|
+
this.#sends?.record({ chatId, kind: "message", outcome: "refused", errorCode: asCliError(error).code });
|
|
1107
|
+
throw error;
|
|
1108
|
+
}
|
|
1109
|
+
const cid = options.cid ?? this.#nextCid();
|
|
1110
|
+
const attach = {
|
|
1111
|
+
_type: "POLL",
|
|
1112
|
+
title: question,
|
|
1113
|
+
answers: answers.map((text) => ({ text })),
|
|
1114
|
+
settings: pollSettings(options),
|
|
1115
|
+
};
|
|
1116
|
+
try {
|
|
1117
|
+
const sent = await this.#deliver(chatId, "", cid, {
|
|
1118
|
+
...options,
|
|
1119
|
+
attaches: [attach],
|
|
1120
|
+
repeat: `max polls create ${chatId} …`,
|
|
1121
|
+
});
|
|
1122
|
+
this.#sends?.record({
|
|
1123
|
+
chatId,
|
|
1124
|
+
kind: "message",
|
|
1125
|
+
outcome: "sent",
|
|
1126
|
+
messageId: sent.id,
|
|
1127
|
+
cid,
|
|
1128
|
+
length: question.length,
|
|
1129
|
+
});
|
|
1130
|
+
return sent;
|
|
1131
|
+
}
|
|
1132
|
+
catch (error) {
|
|
1133
|
+
const failure = asCliError(error);
|
|
1134
|
+
this.#sends?.record({
|
|
1135
|
+
chatId,
|
|
1136
|
+
kind: "message",
|
|
1137
|
+
outcome: failure.code === "outcome_unknown" ? "outcome_unknown" : "failed",
|
|
1138
|
+
cid,
|
|
1139
|
+
errorCode: failure.code,
|
|
1140
|
+
});
|
|
1141
|
+
throw error;
|
|
1142
|
+
}
|
|
1143
|
+
},
|
|
1144
|
+
};
|
|
1145
|
+
/** The poll of one message, whole as MAX sends it and read, or a refusal that says why there is none. */
|
|
1146
|
+
async #poll(chatId, messageId) {
|
|
1147
|
+
const raw = await this.#rawMessage(chatId, messageId);
|
|
1148
|
+
const attach = asArray(raw.attaches).find((each) => each._type === "POLL");
|
|
1149
|
+
if (!attach)
|
|
1150
|
+
throw new CliError("validation_error", `message ${messageId} carries no poll`);
|
|
1151
|
+
const poll = toPoll(attach);
|
|
1152
|
+
if (!poll)
|
|
1153
|
+
throw new CliError("validation_error", `the poll of message ${messageId} is a newer kind this version cannot read`);
|
|
1154
|
+
if (poll.closed)
|
|
1155
|
+
throw new CliError("validation_error", `the poll of message ${messageId} is closed`);
|
|
1156
|
+
const lookup = { names: namesFrom(this.#session().contacts), ...viewer(this.#store) };
|
|
1157
|
+
return { attach, poll, outgoing: toMessage(raw, chatId, lookup).outgoing === true };
|
|
1158
|
+
}
|
|
1005
1159
|
folders = {
|
|
1006
1160
|
list: async () => (await this.#folders()).map(toFolder),
|
|
1007
1161
|
create: (title, chats = []) => this.#change("folder-create", async () => {
|
|
@@ -1218,7 +1372,7 @@ export class MaxClient {
|
|
|
1218
1372
|
async #deliver(chatId, text, cid, options) {
|
|
1219
1373
|
await this.#connectOnce();
|
|
1220
1374
|
const session = this.#session();
|
|
1221
|
-
const attaches = [];
|
|
1375
|
+
const attaches = [...(options.attaches ?? [])];
|
|
1222
1376
|
for (const file of options.files ?? [])
|
|
1223
1377
|
attaches.push(await this.#upload(file));
|
|
1224
1378
|
const { text: plain, markup } = options.markdown ? parseMarkdown(text) : { text, markup: [] };
|