@wirecat/max-cli 0.55.0 → 0.57.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/adapter/max-adapter.d.ts +1 -5
- package/dist/adapter/max-adapter.d.ts.map +1 -1
- package/dist/adapter/max-adapter.js +21 -53
- package/dist/adapter/max-adapter.js.map +1 -1
- package/dist/bin/max.js +3 -0
- package/dist/bin/max.js.map +1 -1
- package/dist/bot/keep.d.ts.map +1 -1
- package/dist/bot/keep.js +4 -4
- package/dist/bot/keep.js.map +1 -1
- package/dist/client/account.d.ts +3 -3
- package/dist/client/account.d.ts.map +1 -1
- package/dist/client/account.js +4 -4
- package/dist/client/account.js.map +1 -1
- package/dist/client/chat-members.d.ts +2 -1
- package/dist/client/chat-members.d.ts.map +1 -1
- package/dist/client/chat-members.js.map +1 -1
- package/dist/client/chat-reads.d.ts +2 -1
- package/dist/client/chat-reads.d.ts.map +1 -1
- package/dist/client/chat-reads.js +9 -7
- package/dist/client/chat-reads.js.map +1 -1
- package/dist/client/chat-writes.d.ts +5 -12
- package/dist/client/chat-writes.d.ts.map +1 -1
- package/dist/client/chat-writes.js +40 -67
- package/dist/client/chat-writes.js.map +1 -1
- package/dist/client/contacts.d.ts +4 -4
- package/dist/client/contacts.d.ts.map +1 -1
- package/dist/client/contacts.js +6 -6
- package/dist/client/contacts.js.map +1 -1
- package/dist/client/delivery.d.ts +1 -1
- package/dist/client/delivery.d.ts.map +1 -1
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/folders.d.ts +2 -3
- package/dist/client/folders.d.ts.map +1 -1
- package/dist/client/folders.js +4 -4
- package/dist/client/folders.js.map +1 -1
- package/dist/client/history.d.ts +2 -1
- package/dist/client/history.d.ts.map +1 -1
- package/dist/client/history.js +4 -3
- package/dist/client/history.js.map +1 -1
- package/dist/client/live.d.ts +2 -1
- package/dist/client/live.d.ts.map +1 -1
- package/dist/client/live.js.map +1 -1
- package/dist/client/message-reads.d.ts +1 -1
- package/dist/client/message-reads.d.ts.map +1 -1
- package/dist/client/message-reads.js +7 -5
- package/dist/client/message-reads.js.map +1 -1
- package/dist/client/message-writes.d.ts +2 -8
- package/dist/client/message-writes.d.ts.map +1 -1
- package/dist/client/message-writes.js +75 -178
- package/dist/client/message-writes.js.map +1 -1
- package/dist/client/people.d.ts +1 -1
- package/dist/client/people.d.ts.map +1 -1
- package/dist/client/people.js.map +1 -1
- package/dist/client/polls.d.ts +5 -10
- package/dist/client/polls.d.ts.map +1 -1
- package/dist/client/polls.js +27 -74
- package/dist/client/polls.js.map +1 -1
- package/dist/client/session.d.ts +1 -1
- package/dist/client/session.d.ts.map +1 -1
- package/dist/client/session.js.map +1 -1
- package/dist/client/shapes.d.ts +59 -0
- package/dist/client/shapes.d.ts.map +1 -0
- package/dist/client/shapes.js +6 -0
- package/dist/client/shapes.js.map +1 -0
- package/dist/client/stickers.d.ts +1 -1
- package/dist/client/stickers.d.ts.map +1 -1
- package/dist/client/stickers.js.map +1 -1
- package/dist/client/types.d.ts +0 -8
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/values.d.ts +7 -1
- package/dist/client/values.d.ts.map +1 -1
- package/dist/client/values.js +5 -0
- package/dist/client/values.js.map +1 -1
- package/dist/client/writes.d.ts +6 -15
- package/dist/client/writes.d.ts.map +1 -1
- package/dist/client/writes.js +21 -118
- package/dist/client/writes.js.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +9 -19
- package/dist/client.js.map +1 -1
- package/dist/commands/bot-messenger.d.ts +1 -2
- package/dist/commands/bot-messenger.d.ts.map +1 -1
- package/dist/commands/bot-messenger.js.map +1 -1
- package/dist/commands/chats.d.ts.map +1 -1
- package/dist/commands/chats.js +9 -14
- package/dist/commands/chats.js.map +1 -1
- package/dist/commands/context.d.ts +3 -18
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +5 -23
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +12 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/messages.d.ts.map +1 -1
- package/dist/commands/messages.js +2 -15
- package/dist/commands/messages.js.map +1 -1
- package/dist/commands/serve.js +1 -1
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/session.js +1 -1
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +21 -13
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/upgrade.js +2 -2
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/commands/watch.d.ts +1 -1
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +6 -4
- package/dist/commands/watch.js.map +1 -1
- package/dist/config.d.ts +17 -17
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -14
- package/dist/config.js.map +1 -1
- package/dist/domain/map.d.ts +4 -3
- package/dist/domain/map.d.ts.map +1 -1
- package/dist/domain/map.js +27 -22
- package/dist/domain/map.js.map +1 -1
- package/dist/download.d.ts +1 -1
- package/dist/download.d.ts.map +1 -1
- package/dist/messenger.d.ts +1 -1
- package/dist/messenger.d.ts.map +1 -1
- package/dist/messenger.js +39 -9
- package/dist/messenger.js.map +1 -1
- package/dist/permissions.d.ts +3 -3
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +20 -4
- package/dist/permissions.js.map +1 -1
- package/dist/program.d.ts +5 -3
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +6 -11
- package/dist/program.js.map +1 -1
- package/dist/record.d.ts.map +1 -1
- package/dist/record.js +17 -15
- package/dist/record.js.map +1 -1
- package/dist/report.d.ts +2 -2
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +25 -13
- package/dist/report.js.map +1 -1
- package/dist/resolve.d.ts +1 -1
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js.map +1 -1
- package/dist/sends.d.ts +3 -3
- package/dist/sends.d.ts.map +1 -1
- package/dist/sends.js +3 -3
- package/dist/sends.js.map +1 -1
- package/dist/server/replies.d.ts +1 -2
- package/dist/server/replies.d.ts.map +1 -1
- package/dist/server/replies.js.map +1 -1
- package/dist/server/server-connection.js +1 -1
- package/dist/server/server-connection.js.map +1 -1
- package/dist/server/server.d.ts +2 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +0 -2
- package/dist/server/server.js.map +1 -1
- package/dist/transcribe/index.d.ts +1 -1
- package/dist/transcribe/index.d.ts.map +1 -1
- package/dist/transcribe/index.js +2 -2
- package/dist/update.d.ts +2 -24
- package/dist/update.d.ts.map +1 -1
- package/dist/update.js +10 -39
- package/dist/update.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -4
- package/skills/max-cli/SKILL.md +6 -5
- package/dist/client/read-policy.d.ts +0 -2
- package/dist/client/read-policy.d.ts.map +0 -1
- package/dist/client/read-policy.js +0 -34
- package/dist/client/read-policy.js.map +0 -1
- package/dist/commands/mcp.d.ts +0 -29
- package/dist/commands/mcp.d.ts.map +0 -1
- package/dist/commands/mcp.js +0 -176
- package/dist/commands/mcp.js.map +0 -1
- package/dist/domain/models.d.ts +0 -238
- package/dist/domain/models.d.ts.map +0 -1
- package/dist/domain/models.js +0 -17
- package/dist/domain/models.js.map +0 -1
- package/dist/mcp/instructions.d.ts +0 -4
- package/dist/mcp/instructions.d.ts.map +0 -1
- package/dist/mcp/instructions.js +0 -16
- package/dist/mcp/instructions.js.map +0 -1
- package/dist/mcp/legacy-check.d.ts +0 -12
- package/dist/mcp/legacy-check.d.ts.map +0 -1
- package/dist/mcp/legacy-check.js +0 -46
- package/dist/mcp/legacy-check.js.map +0 -1
- package/dist/mcp/photo.d.ts +0 -9
- package/dist/mcp/photo.d.ts.map +0 -1
- package/dist/mcp/photo.js +0 -38
- package/dist/mcp/photo.js.map +0 -1
- package/dist/mcp/prompts.d.ts +0 -7
- package/dist/mcp/prompts.d.ts.map +0 -1
- package/dist/mcp/prompts.js +0 -102
- package/dist/mcp/prompts.js.map +0 -1
- package/dist/mcp/resources.d.ts +0 -15
- package/dist/mcp/resources.d.ts.map +0 -1
- package/dist/mcp/resources.js +0 -60
- package/dist/mcp/resources.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -23
- package/dist/mcp/server.d.ts.map +0 -1
- package/dist/mcp/server.js +0 -98
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/session.d.ts +0 -30
- package/dist/mcp/session.d.ts.map +0 -1
- package/dist/mcp/session.js +0 -109
- package/dist/mcp/session.js.map +0 -1
- package/dist/mcp/shared.d.ts +0 -14
- package/dist/mcp/shared.d.ts.map +0 -1
- package/dist/mcp/shared.js +0 -46
- package/dist/mcp/shared.js.map +0 -1
- package/dist/mcp/tools.d.ts +0 -19
- package/dist/mcp/tools.d.ts.map +0 -1
- package/dist/mcp/tools.js +0 -257
- package/dist/mcp/tools.js.map +0 -1
- package/dist/moderation/check.d.ts +0 -103
- package/dist/moderation/check.d.ts.map +0 -1
- package/dist/moderation/check.js +0 -273
- package/dist/moderation/check.js.map +0 -1
- package/dist/moderation/points.d.ts +0 -8
- package/dist/moderation/points.d.ts.map +0 -1
- package/dist/moderation/points.js +0 -21
- package/dist/moderation/points.js.map +0 -1
- package/dist/rendering/messages.d.ts +0 -24
- package/dist/rendering/messages.d.ts.map +0 -1
- package/dist/rendering/messages.js +0 -172
- package/dist/rendering/messages.js.map +0 -1
package/dist/mcp/tools.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { McpServer } from "@modelcontextprotocol/server";
|
|
2
|
-
import { type PersonalMcpDefaults } from "@wirecat/cli-core/cli";
|
|
3
|
-
import type { Reach } from "../download.js";
|
|
4
|
-
import type { SessionStore } from "../session/store.js";
|
|
5
|
-
import type { MaxSession } from "./session.js";
|
|
6
|
-
interface Options {
|
|
7
|
-
store: SessionStore;
|
|
8
|
-
defaultLimit: number;
|
|
9
|
-
history?: boolean;
|
|
10
|
-
profile: string;
|
|
11
|
-
permission?: string[];
|
|
12
|
-
transcribeModel?: string;
|
|
13
|
-
warn?: (message: string) => void;
|
|
14
|
-
reach?: Reach;
|
|
15
|
-
embedders?: PersonalMcpDefaults["embedders"];
|
|
16
|
-
}
|
|
17
|
-
export declare const registerTools: (server: McpServer, session: MaxSession, { store, defaultLimit, history, profile, permission, transcribeModel, warn, reach, embedders, }: Options) => void;
|
|
18
|
-
export {};
|
|
19
|
-
//# sourceMappingURL=tools.d.ts.map
|
package/dist/mcp/tools.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAGL,KAAK,mBAAmB,EASzB,MAAM,uBAAuB,CAAA;AAQ9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAM3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAMvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAM9C,UAAU,OAAO;IACf,KAAK,EAAE,YAAY,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,SAAS,CAAC,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAA;CAK7C;AAED,eAAO,MAAM,aAAa,WAChB,SAAS,WACR,UAAU,mGAWhB,OAAO,KACT,IAiPF,CAAA"}
|
package/dist/mcp/tools.js
DELETED
|
@@ -1,257 +0,0 @@
|
|
|
1
|
-
import { CliError } from "@wirecat/cli-base";
|
|
2
|
-
import { AI_SETTING_KEYS, itemOf, personalMcpCommand, personalMcpToolKey, personalMcpTools, registerPersonalMcpSurface, rememberAccount, stored, } from "@wirecat/cli-core/cli";
|
|
3
|
-
import { levelFor } from "@wirecat/cli-core/sends";
|
|
4
|
-
import { openStore } from "@wirecat/cli-core/store";
|
|
5
|
-
import * as v from "valibot";
|
|
6
|
-
import { maxAdapter } from "../adapter/max-adapter.js";
|
|
7
|
-
import { MAX_APP } from "../app.js";
|
|
8
|
-
import { resolveSettings } from "../config.js";
|
|
9
|
-
import { maxMessenger } from "../messenger.js";
|
|
10
|
-
import { migrateModerationPoints } from "../moderation/points.js";
|
|
11
|
-
import { assertReadable, withPermissionApproval } from "../permissions.js";
|
|
12
|
-
import { maxRecord } from "../record.js";
|
|
13
|
-
import { transcribe } from "../transcribe/index.js";
|
|
14
|
-
import { modelsDirectory } from "../transcribe/install.js";
|
|
15
|
-
import { DEFAULT_MODEL, speechModel } from "../transcribe/models.js";
|
|
16
|
-
import { legacyCheckTool } from "./legacy-check.js";
|
|
17
|
-
import { photoForMcp } from "./photo.js";
|
|
18
|
-
import { withShared } from "./shared.js";
|
|
19
|
-
const PASS = { check: () => { }, record: () => { } };
|
|
20
|
-
const READ = { readOnlyHint: true, destructiveHint: false, openWorldHint: true };
|
|
21
|
-
export const registerTools = (server, session, { store, defaultLimit, history, profile, permission, transcribeModel = DEFAULT_MODEL, warn = () => { }, reach, embedders, }) => {
|
|
22
|
-
const settings = () => resolveSettings({ profile, permission });
|
|
23
|
-
const adapters = new WeakMap();
|
|
24
|
-
const definitions = personalMcpTools(maxMessenger);
|
|
25
|
-
for (const name of Object.keys(definitions))
|
|
26
|
-
if (name.startsWith("topics_"))
|
|
27
|
-
delete definitions[name];
|
|
28
|
-
const rules = definitions.chats_rules_show;
|
|
29
|
-
if (rules)
|
|
30
|
-
definitions.chats_rules = { ...rules, key: "chats.rules.show" };
|
|
31
|
-
const keyOf = (name, definition) => name === "status" ? null : (personalMcpToolKey(name, definition) ?? "messages");
|
|
32
|
-
const writable = (name, definition) => {
|
|
33
|
-
const key = keyOf(name, definition);
|
|
34
|
-
if (key === null)
|
|
35
|
-
return null;
|
|
36
|
-
const own = settings();
|
|
37
|
-
assertReadable(own, key);
|
|
38
|
-
if (definition.annotations.readOnlyHint !== true && levelFor(own.permissions, key).level === "readonly")
|
|
39
|
-
throw new CliError("permission_error", `profile ${profile} does not let ${key} write`, { permission: key });
|
|
40
|
-
return key;
|
|
41
|
-
};
|
|
42
|
-
const inScope = (name, definition, work) => {
|
|
43
|
-
const key = writable(name, definition);
|
|
44
|
-
if (key === null)
|
|
45
|
-
return work();
|
|
46
|
-
if (key === "chats.moderate")
|
|
47
|
-
migrateModerationPoints(store);
|
|
48
|
-
return withPermissionApproval(key, () => key === "chats.moderate"
|
|
49
|
-
? withPermissionApproval("messages.delete", () => withPermissionApproval("chats.members.remove", work))
|
|
50
|
-
: work());
|
|
51
|
-
};
|
|
52
|
-
const remember = () => {
|
|
53
|
-
const account = store.readState().viewerId;
|
|
54
|
-
if (!account)
|
|
55
|
-
return;
|
|
56
|
-
try {
|
|
57
|
-
rememberAccount(MAX_APP, profile, account, process.env);
|
|
58
|
-
}
|
|
59
|
-
catch {
|
|
60
|
-
// A secondary local binding must not replace a successful send or prevent store cleanup.
|
|
61
|
-
warn("could not remember the account for local archive tools");
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
// cli-core asks for the account before a write; a profile that never logged in has none until LOGIN answers.
|
|
65
|
-
const knowAccount = async (client) => {
|
|
66
|
-
if (store.readState().viewerId === undefined)
|
|
67
|
-
await client.connect();
|
|
68
|
-
};
|
|
69
|
-
const adapterFor = (client) => {
|
|
70
|
-
const adapter = maxAdapter(client, store, reach, warn);
|
|
71
|
-
adapters.set(adapter, client);
|
|
72
|
-
return adapter;
|
|
73
|
-
};
|
|
74
|
-
const offered = Object.fromEntries(Object.entries(definitions).filter(([name, definition]) => {
|
|
75
|
-
const key = keyOf(name, definition);
|
|
76
|
-
const level = key === null ? "allow" : levelFor(settings().permissions, key).level;
|
|
77
|
-
return level !== "deny" && (definition.annotations.readOnlyHint === true || level !== "readonly");
|
|
78
|
-
}));
|
|
79
|
-
const direct = offered.messages_transcribe;
|
|
80
|
-
const picture = offered.messages_photo;
|
|
81
|
-
if (picture)
|
|
82
|
-
offered.messages_photo = {
|
|
83
|
-
...picture,
|
|
84
|
-
online: (adapter, args) => {
|
|
85
|
-
const client = adapters.get(adapter);
|
|
86
|
-
if (!client)
|
|
87
|
-
throw new Error("MAX photo preview requires its held adapter");
|
|
88
|
-
return photoForMcp(client, {
|
|
89
|
-
chat: String(args.chat),
|
|
90
|
-
message: String(args.message),
|
|
91
|
-
...(typeof args.index === "number" ? { index: args.index } : {}),
|
|
92
|
-
}, reach);
|
|
93
|
-
},
|
|
94
|
-
};
|
|
95
|
-
if (direct)
|
|
96
|
-
offered.messages_transcribe = {
|
|
97
|
-
...direct,
|
|
98
|
-
description: "A MAX voice message as text on this machine. Reuses a retained transcript from the same model; never downloads a model. Answers item { message_id, text, pending, via, model }.",
|
|
99
|
-
online: async (adapter, args, defaults) => {
|
|
100
|
-
const client = adapters.get(adapter);
|
|
101
|
-
if (!client)
|
|
102
|
-
throw new Error("MAX transcription requires its held adapter");
|
|
103
|
-
const message = String(args.message);
|
|
104
|
-
if (!/^\d+$/.test(message))
|
|
105
|
-
throw new CliError("validation_error", "MAX message IDs must be decimal strings");
|
|
106
|
-
const chatId = await client.chats.resolve(String(args.chat));
|
|
107
|
-
const model = speechModel(typeof args.model === "string" ? args.model : transcribeModel);
|
|
108
|
-
const record = maxRecord({ account: () => store.readState().viewerId });
|
|
109
|
-
try {
|
|
110
|
-
const kept = await record.transcript(chatId, message);
|
|
111
|
-
const text = kept?.source === model.id
|
|
112
|
-
? kept.text
|
|
113
|
-
: (await transcribe(client, chatId, message, {
|
|
114
|
-
model,
|
|
115
|
-
directory: modelsDirectory(),
|
|
116
|
-
record,
|
|
117
|
-
...(defaults.release ? { release: defaults.release } : {}),
|
|
118
|
-
})).text;
|
|
119
|
-
return itemOf({ message_id: message, text, pending: false, via: "local", model: model.id });
|
|
120
|
-
}
|
|
121
|
-
finally {
|
|
122
|
-
await record.close();
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
|
-
};
|
|
126
|
-
for (const [name, definition] of Object.entries(offered)) {
|
|
127
|
-
if (!definition._meta)
|
|
128
|
-
continue;
|
|
129
|
-
const metadata = { ...definition._meta };
|
|
130
|
-
delete metadata["anthropic/requiresUserInteraction"];
|
|
131
|
-
offered[name] = { ...definition, _meta: metadata };
|
|
132
|
-
}
|
|
133
|
-
const moderation = definitions.chats_moderate;
|
|
134
|
-
const level = levelFor(settings().permissions, "chats.moderate").level;
|
|
135
|
-
if (moderation && ["allow", "ask"].includes(level))
|
|
136
|
-
offered.chats_check = legacyCheckTool(session, {
|
|
137
|
-
store,
|
|
138
|
-
profile,
|
|
139
|
-
allowDangerous: false,
|
|
140
|
-
yes: true,
|
|
141
|
-
confirmSend: false,
|
|
142
|
-
scope: (work) => inScope("chats_moderate", moderation, work),
|
|
143
|
-
});
|
|
144
|
-
offered.status = {
|
|
145
|
-
title: "This server's profile and login",
|
|
146
|
-
description: "The profile, known account and offered writes. Reads local state only; never connects or prints a token.",
|
|
147
|
-
key: null,
|
|
148
|
-
input: v.strictObject({}),
|
|
149
|
-
annotations: { ...READ, idempotentHint: true },
|
|
150
|
-
local: async () => {
|
|
151
|
-
const account = store.readState().viewerId ?? null;
|
|
152
|
-
let token;
|
|
153
|
-
try {
|
|
154
|
-
token = store.tokenSource() ?? "none";
|
|
155
|
-
}
|
|
156
|
-
catch {
|
|
157
|
-
token = "unreachable";
|
|
158
|
-
}
|
|
159
|
-
return itemOf({
|
|
160
|
-
profile,
|
|
161
|
-
account,
|
|
162
|
-
kind: store.isBot() ? "personal + bot" : "personal",
|
|
163
|
-
token,
|
|
164
|
-
logged_in_here: store.hasLoggedIn(),
|
|
165
|
-
has_token: store.readToken() !== undefined,
|
|
166
|
-
has_logged_in: account !== null,
|
|
167
|
-
writes: [
|
|
168
|
-
...Object.entries(offered)
|
|
169
|
-
.filter(([, one]) => one.annotations.readOnlyHint !== true)
|
|
170
|
-
.map(([name]) => personalMcpCommand(name)),
|
|
171
|
-
],
|
|
172
|
-
permissions: settings().permissions,
|
|
173
|
-
});
|
|
174
|
-
},
|
|
175
|
-
};
|
|
176
|
-
const currentSettings = settings();
|
|
177
|
-
const ai = Object.fromEntries(AI_SETTING_KEYS.map((key) => [key, currentSettings[key]]));
|
|
178
|
-
registerPersonalMcpSurface(server, offered, {
|
|
179
|
-
command: "max",
|
|
180
|
-
messenger: maxMessenger,
|
|
181
|
-
defaults: {
|
|
182
|
-
limit: defaultLimit,
|
|
183
|
-
history: history ?? settings().keepFailedRuns,
|
|
184
|
-
guard: PASS,
|
|
185
|
-
settings: {
|
|
186
|
-
...ai,
|
|
187
|
-
profile,
|
|
188
|
-
searchCatchUp: currentSettings.searchCatchUp,
|
|
189
|
-
configured: ai,
|
|
190
|
-
shared: { ...ai, speechModel: transcribeModel },
|
|
191
|
-
get permissions() {
|
|
192
|
-
return settings().permissions;
|
|
193
|
-
},
|
|
194
|
-
},
|
|
195
|
-
env: process.env,
|
|
196
|
-
...(embedders ? { embedders } : {}),
|
|
197
|
-
},
|
|
198
|
-
around: inScope,
|
|
199
|
-
session: {
|
|
200
|
-
use: (name, work) => session.use(name, async (client, release) => {
|
|
201
|
-
await knowAccount(client);
|
|
202
|
-
let opened;
|
|
203
|
-
const account = {
|
|
204
|
-
provider: "max",
|
|
205
|
-
get account() {
|
|
206
|
-
const id = store.readState().viewerId;
|
|
207
|
-
if (!id)
|
|
208
|
-
throw new CliError("authentication_error", `no MAX account known for profile ${profile}`);
|
|
209
|
-
return id;
|
|
210
|
-
},
|
|
211
|
-
};
|
|
212
|
-
const adapter = stored(adapterFor(client), {
|
|
213
|
-
account,
|
|
214
|
-
store: () => (opened ??= openStore()),
|
|
215
|
-
warn,
|
|
216
|
-
events: () => { },
|
|
217
|
-
});
|
|
218
|
-
adapters.set(adapter, client);
|
|
219
|
-
try {
|
|
220
|
-
return await work(adapter, release);
|
|
221
|
-
}
|
|
222
|
-
finally {
|
|
223
|
-
remember();
|
|
224
|
-
if (opened)
|
|
225
|
-
await opened.then((store) => store.close(), () => { });
|
|
226
|
-
}
|
|
227
|
-
}),
|
|
228
|
-
},
|
|
229
|
-
withStore: (work, { name }) => session.local(name, async () => {
|
|
230
|
-
const account = store.readState().viewerId;
|
|
231
|
-
if (!account)
|
|
232
|
-
throw new CliError("authentication_error", `no MAX account known for profile ${profile}`);
|
|
233
|
-
const opened = await openStore();
|
|
234
|
-
try {
|
|
235
|
-
return await work(opened, { provider: "max", account });
|
|
236
|
-
}
|
|
237
|
-
finally {
|
|
238
|
-
await opened.close();
|
|
239
|
-
}
|
|
240
|
-
}),
|
|
241
|
-
withServices: (work, { name }) => session.use(name, async (client, release) => {
|
|
242
|
-
await knowAccount(client);
|
|
243
|
-
return withShared(client, { store, profile, warn }, async (services) => {
|
|
244
|
-
remember();
|
|
245
|
-
return work(services, async (read) => {
|
|
246
|
-
try {
|
|
247
|
-
return await read(adapterFor(client));
|
|
248
|
-
}
|
|
249
|
-
finally {
|
|
250
|
-
await release();
|
|
251
|
-
}
|
|
252
|
-
});
|
|
253
|
-
}, name === "mcp messages link" ? { reads: "store" } : { login: true });
|
|
254
|
-
}),
|
|
255
|
-
});
|
|
256
|
-
};
|
|
257
|
-
//# sourceMappingURL=tools.js.map
|
package/dist/mcp/tools.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EACL,eAAe,EACf,MAAM,EAIN,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,eAAe,EACf,MAAM,GACP,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAA;AAClD,MAAM,IAAI,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAA;AAkBhF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAiB,EACjB,OAAmB,EACnB,EACE,KAAK,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,UAAU,EACV,eAAe,GAAG,aAAa,EAC/B,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,EACf,KAAK,EACL,SAAS,GACD,EACJ,EAAE;IACR,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAqB,CAAA;IACjD,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAClD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;QAAE,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAA;IACrG,MAAM,KAAK,GAAG,WAAW,CAAC,gBAAgB,CAAA;IAC1C,IAAI,KAAK;QAAE,WAAW,CAAC,WAAW,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAA;IAE1E,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,UAA2B,EAAE,EAAE,CAC1D,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,UAAU,CAAC,CAAA;IACjF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,UAA2B,EAAE,EAAE;QAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACnC,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAC7B,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAA;QACtB,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACxB,IAAI,UAAU,CAAC,WAAW,CAAC,YAAY,KAAK,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,UAAU;YACrG,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,WAAW,OAAO,iBAAiB,GAAG,QAAQ,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA;QAC7G,OAAO,GAAG,CAAA;IACZ,CAAC,CAAA;IACD,MAAM,OAAO,GAAmD,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;QACzF,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACtC,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,EAAE,CAAA;QAC/B,IAAI,GAAG,KAAK,gBAAgB;YAAE,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAC5D,OAAO,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,CACtC,GAAG,KAAK,gBAAgB;YACtB,CAAC,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;YACvG,CAAC,CAAC,IAAI,EAAE,CACX,CAAA;IACH,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAA;QAC1C,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,IAAI,CAAC;YACH,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,yFAAyF;YACzF,IAAI,CAAC,wDAAwD,CAAC,CAAA;QAChE,CAAC;IACH,CAAC,CAAA;IACD,6GAA6G;IAC7G,MAAM,WAAW,GAAG,KAAK,EAAE,MAAiB,EAAE,EAAE;QAC9C,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,KAAK,SAAS;YAAE,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;IACtE,CAAC,CAAA;IACD,MAAM,UAAU,GAAG,CAAC,MAAiB,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACtD,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC7B,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE;QACxD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACnC,MAAM,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAA;QAClF,OAAO,KAAK,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,KAAK,IAAI,IAAI,KAAK,KAAK,UAAU,CAAC,CAAA;IACnG,CAAC,CAAC,CACH,CAAA;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAA;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAA;IACtC,IAAI,OAAO;QACT,OAAO,CAAC,cAAc,GAAG;YACvB,GAAG,OAAO;YACV,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBACpC,IAAI,CAAC,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;gBAC3E,OAAO,WAAW,CAChB,MAAM,EACN;oBACE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;oBACvB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC7B,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjE,EACD,KAAK,CACN,CAAA;YACH,CAAC;SACF,CAAA;IACH,IAAI,MAAM;QACR,OAAO,CAAC,mBAAmB,GAAG;YAC5B,GAAG,MAAM;YACT,WAAW,EACT,iLAAiL;YACnL,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBACpC,IAAI,CAAC,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;gBAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;oBAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,yCAAyC,CAAC,CAAA;gBAC7G,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC5D,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;gBACxF,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACvE,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;oBACrD,MAAM,IAAI,GACR,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,EAAE;wBACvB,CAAC,CAAC,IAAI,CAAC,IAAI;wBACX,CAAC,CAAC,CACE,MAAM,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;4BACxC,KAAK;4BACL,SAAS,EAAE,eAAe,EAAE;4BAC5B,MAAM;4BACN,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC3D,CAAC,CACH,CAAC,IAAI,CAAA;oBACZ,OAAO,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC7F,CAAC;wBAAS,CAAC;oBACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;gBACtB,CAAC;YACH,CAAC;SACF,CAAA;IACH,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,KAAK;YAAE,SAAQ;QAC/B,MAAM,QAAQ,GAAG,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,CAAA;QACxC,OAAO,QAAQ,CAAC,mCAAmC,CAAC,CAAA;QACpD,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;IACpD,CAAC;IACD,MAAM,UAAU,GAAG,WAAW,CAAC,cAAc,CAAA;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAA;IACtE,IAAI,UAAU,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChD,OAAO,CAAC,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE;YAC7C,KAAK;YACL,OAAO;YACP,cAAc,EAAE,KAAK;YACrB,GAAG,EAAE,IAAI;YACT,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC;SAC7D,CAAC,CAAA;IACJ,OAAO,CAAC,MAAM,GAAG;QACf,KAAK,EAAE,iCAAiC;QACxC,WAAW,EACT,0GAA0G;QAC5G,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;QAC9C,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAA;YAClD,IAAI,KAAa,CAAA;YACjB,IAAI,CAAC;gBACH,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,MAAM,CAAA;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,GAAG,aAAa,CAAA;YACvB,CAAC;YACD,OAAO,MAAM,CAAC;gBACZ,OAAO;gBACP,OAAO;gBACP,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU;gBACnD,KAAK;gBACL,cAAc,EAAE,KAAK,CAAC,WAAW,EAAE;gBACnC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,SAAS;gBAC1C,aAAa,EAAE,OAAO,KAAK,IAAI;gBAC/B,MAAM,EAAE;oBACN,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;yBACvB,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,KAAK,IAAI,CAAC;yBAC1D,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;iBAC7C;gBACD,WAAW,EAAE,QAAQ,EAAE,CAAC,WAAW;aACpC,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;IACD,MAAM,eAAe,GAAG,QAAQ,EAAE,CAAA;IAClC,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACxF,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE;QAC1C,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,YAAY;QACvB,QAAQ,EAAE;YACR,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,CAAC,cAAc;YAC7C,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE;gBACR,GAAG,EAAE;gBACL,OAAO;gBACP,aAAa,EAAE,eAAe,CAAC,aAAa;gBAC5C,UAAU,EAAE,EAAE;gBACd,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE;gBAC/C,IAAI,WAAW;oBACb,OAAO,QAAQ,EAAE,CAAC,WAAW,CAAA;gBAC/B,CAAC;aACF;YACD,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC;QACD,MAAM,EAAE,OAAO;QACf,OAAO,EAAE;YACP,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAClB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;gBAC1C,MAAM,WAAW,CAAC,MAAM,CAAC,CAAA;gBACzB,IAAI,MAAgD,CAAA;gBACpD,MAAM,OAAO,GAAG;oBACd,QAAQ,EAAE,KAAK;oBACf,IAAI,OAAO;wBACT,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAA;wBACrC,IAAI,CAAC,EAAE;4BAAE,MAAM,IAAI,QAAQ,CAAC,sBAAsB,EAAE,oCAAoC,OAAO,EAAE,CAAC,CAAA;wBAClG,OAAO,EAAE,CAAA;oBACX,CAAC;iBACF,CAAA;gBACD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;oBACzC,OAAO;oBACP,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACrC,IAAI;oBACJ,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;iBACjB,CAAC,CAAA;gBACF,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAC7B,IAAI,CAAC;oBACH,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBACrC,CAAC;wBAAS,CAAC;oBACT,QAAQ,EAAE,CAAA;oBACV,IAAI,MAAM;wBACR,MAAM,MAAM,CAAC,IAAI,CACf,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,EACxB,GAAG,EAAE,GAAE,CAAC,CACT,CAAA;gBACL,CAAC;YACH,CAAC,CAAC;SACL;QACD,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAA;YAC1C,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,QAAQ,CAAC,sBAAsB,EAAE,oCAAoC,OAAO,EAAE,CAAC,CAAA;YACvG,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;YAChC,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;YACzD,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;YACtB,CAAC;QACH,CAAC,CAAC;QACJ,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;YAC1C,MAAM,WAAW,CAAC,MAAM,CAAC,CAAA;YACzB,OAAO,UAAU,CACf,MAAM,EACN,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EACxB,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACjB,QAAQ,EAAE,CAAA;gBACV,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;oBACnC,IAAI,CAAC;wBACH,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;oBACvC,CAAC;4BAAS,CAAC;wBACT,MAAM,OAAO,EAAE,CAAA;oBACjB,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC,EACD,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CACpE,CAAA;QACH,CAAC,CAAC;KACL,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import type { MaxClient } from "../client.js";
|
|
2
|
-
import type { GroupMember, Id, Message } from "../domain/models.js";
|
|
3
|
-
import { moderationPoints } from "./points.js";
|
|
4
|
-
import { type GroupRules } from "./rules.js";
|
|
5
|
-
export type Action = "report" | "delete" | "remove";
|
|
6
|
-
export type Outcome = "reported" | "done" | "planned" | "forbidden" | "declined" | "refused" | "failed" | "skipped";
|
|
7
|
-
export interface Finding {
|
|
8
|
-
/** A message, or somebody who joined. */
|
|
9
|
-
kind: "message" | "member";
|
|
10
|
-
rule: "blocked" | "invites" | "links" | "forwards" | "flood" | "newAccount";
|
|
11
|
-
personId: Id;
|
|
12
|
-
personName: string | null;
|
|
13
|
-
messageId?: Id;
|
|
14
|
-
action: Action;
|
|
15
|
-
}
|
|
16
|
-
export interface CheckRow extends Finding {
|
|
17
|
-
outcome: Outcome;
|
|
18
|
-
reason?: string;
|
|
19
|
-
/** What the owner types to do it by hand, on a row that was not done. */
|
|
20
|
-
command?: string;
|
|
21
|
-
}
|
|
22
|
-
export interface CheckInput {
|
|
23
|
-
rules: GroupRules;
|
|
24
|
-
messages: Message[];
|
|
25
|
-
joined: GroupMember[];
|
|
26
|
-
/** The owner's admins; the owner's own messages are known by `outgoing`. */
|
|
27
|
-
answerers: ReadonlySet<Id>;
|
|
28
|
-
now: number;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* What the rules say about what is new. Pure: nothing here talks to MAX. One finding per message —
|
|
32
|
-
* the rule with the strongest action — and one removal per person, whatever else they did.
|
|
33
|
-
*/
|
|
34
|
-
export declare const judge: ({ rules, messages, joined, answerers, now }: CheckInput) => Finding[];
|
|
35
|
-
export interface ActOptions {
|
|
36
|
-
chatId: Id;
|
|
37
|
-
rules: GroupRules;
|
|
38
|
-
/** `--allow-dangerous` on this run: what `flag` asks for. */
|
|
39
|
-
allowDangerous: boolean;
|
|
40
|
-
dryRun: boolean;
|
|
41
|
-
maxActions: number;
|
|
42
|
-
/** Asks the owner about one action; `undefined` when nobody is there to ask. */
|
|
43
|
-
confirm?: (finding: Finding) => Promise<boolean>;
|
|
44
|
-
}
|
|
45
|
-
/** The two things a check may do, whoever does them: the personal account, or a bot. */
|
|
46
|
-
export interface Moderator {
|
|
47
|
-
deleteMessage(chatId: Id, messageId: Id): Promise<void>;
|
|
48
|
-
removePerson(chatId: Id, personId: Id): Promise<void>;
|
|
49
|
-
}
|
|
50
|
-
/** The personal account: deleting is for everyone, removing leaves messages and cannot ban. */
|
|
51
|
-
export declare const personal: (client: MaxClient) => Moderator;
|
|
52
|
-
/**
|
|
53
|
-
* Does what the findings ask, as far as consent, the per-run limit and the guard let it. Stops
|
|
54
|
-
* acting at the first hourly-limit refusal: the rest is `skipped`, never tried.
|
|
55
|
-
*/
|
|
56
|
-
export declare const act: (moderator: Moderator, findings: Finding[], options: ActOptions) => Promise<CheckRow[]>;
|
|
57
|
-
/** One action in words, for a prompt or a confirmation form. */
|
|
58
|
-
export declare const describe: (finding: Finding) => string;
|
|
59
|
-
/** Whether acting on it waits for the owner's yes. */
|
|
60
|
-
export declare const needsConfirm: (rules: GroupRules, finding: Finding) => boolean;
|
|
61
|
-
export interface Gathered extends Omit<CheckInput, "rules" | "now"> {
|
|
62
|
-
/** The newest message read, ISO 8601: where the next check starts. */
|
|
63
|
-
until: string | null;
|
|
64
|
-
/** More history than one check reads. */
|
|
65
|
-
more: boolean;
|
|
66
|
-
notes: string[];
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* What is new in the group since `since`: its messages, who joined (from the service messages —
|
|
70
|
-
* `add` measured, `joinByLink` assumed to name the joiner or be sent by them), who asks to join,
|
|
71
|
-
* and who the admins are.
|
|
72
|
-
*/
|
|
73
|
-
export declare const gather: (client: MaxClient, chatId: Id, since: number) => Promise<Gathered>;
|
|
74
|
-
export declare const MAX_ACTIONS = 10;
|
|
75
|
-
/** Where each chat's next check starts, ISO 8601. */
|
|
76
|
-
export interface SavedPoints {
|
|
77
|
-
read(chatId: Id): string | undefined;
|
|
78
|
-
write(chatId: Id, at: string): void;
|
|
79
|
-
}
|
|
80
|
-
export declare const sessionPoints: typeof moderationPoints;
|
|
81
|
-
export interface Prepared {
|
|
82
|
-
chatId: Id;
|
|
83
|
-
title: string | null;
|
|
84
|
-
rules: GroupRules;
|
|
85
|
-
found: Gathered;
|
|
86
|
-
findings: Finding[];
|
|
87
|
-
/** `--since` was given: the saved point is not read, and not moved. */
|
|
88
|
-
explicit: boolean;
|
|
89
|
-
notes: string[];
|
|
90
|
-
}
|
|
91
|
-
/** Reads and judges; changes nothing. `since` overrides the group's saved point. */
|
|
92
|
-
export declare const prepare: (client: MaxClient, { points, profile, chat, since }: {
|
|
93
|
-
points: SavedPoints;
|
|
94
|
-
profile: string;
|
|
95
|
-
chat: string;
|
|
96
|
-
since?: number;
|
|
97
|
-
}) => Promise<Prepared>;
|
|
98
|
-
/** Acts on what `prepare` found, moves the group's saved point, and says what is left. */
|
|
99
|
-
export declare const finish: (moderator: Moderator, points: SavedPoints, prepared: Prepared, options: Omit<ActOptions, "chatId" | "rules">) => Promise<{
|
|
100
|
-
rows: CheckRow[];
|
|
101
|
-
notes: string[];
|
|
102
|
-
}>;
|
|
103
|
-
//# sourceMappingURL=check.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/moderation/check.ts"],"names":[],"mappings":"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"}
|