@leemour/max-cli 0.14.0 → 0.15.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/README.md +43 -9
- package/dist/bot/client.d.ts +1 -1
- package/dist/bot/client.d.ts.map +1 -1
- package/dist/bot/client.js +2 -2
- package/dist/bot/client.js.map +1 -1
- package/dist/bot/keep.d.ts +25 -0
- package/dist/bot/keep.d.ts.map +1 -0
- package/dist/bot/keep.js +96 -0
- package/dist/bot/keep.js.map +1 -0
- package/dist/bot/registry.d.ts +3 -0
- package/dist/bot/registry.d.ts.map +1 -1
- package/dist/bot/registry.js +27 -10
- package/dist/bot/registry.js.map +1 -1
- package/dist/bot/uploads.d.ts +34 -0
- package/dist/bot/uploads.d.ts.map +1 -0
- package/dist/bot/uploads.js +122 -0
- package/dist/bot/uploads.js.map +1 -0
- package/dist/client.d.ts +19 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +76 -39
- package/dist/client.js.map +1 -1
- package/dist/commands/bot-comments.d.ts +4 -0
- package/dist/commands/bot-comments.d.ts.map +1 -0
- package/dist/commands/bot-comments.js +97 -0
- package/dist/commands/bot-comments.js.map +1 -0
- package/dist/commands/bot-context.d.ts +9 -3
- package/dist/commands/bot-context.d.ts.map +1 -1
- package/dist/commands/bot-context.js +38 -15
- package/dist/commands/bot-context.js.map +1 -1
- package/dist/commands/bot-members.d.ts +12 -0
- package/dist/commands/bot-members.d.ts.map +1 -0
- package/dist/commands/bot-members.js +136 -0
- package/dist/commands/bot-members.js.map +1 -0
- package/dist/commands/bot-reads.d.ts.map +1 -1
- package/dist/commands/bot-reads.js +50 -8
- package/dist/commands/bot-reads.js.map +1 -1
- package/dist/commands/bot-sends.d.ts +5 -0
- package/dist/commands/bot-sends.d.ts.map +1 -1
- package/dist/commands/bot-sends.js +56 -11
- package/dist/commands/bot-sends.js.map +1 -1
- package/dist/commands/bot-setup.d.ts +5 -0
- package/dist/commands/bot-setup.d.ts.map +1 -0
- package/dist/commands/bot-setup.js +107 -0
- package/dist/commands/bot-setup.js.map +1 -0
- package/dist/commands/bot-updates.d.ts +3 -0
- package/dist/commands/bot-updates.d.ts.map +1 -0
- package/dist/commands/bot-updates.js +182 -0
- package/dist/commands/bot-updates.js.map +1 -0
- package/dist/commands/bot.d.ts.map +1 -1
- package/dist/commands/bot.js +15 -0
- package/dist/commands/bot.js.map +1 -1
- package/dist/commands/chats.d.ts.map +1 -1
- package/dist/commands/chats.js +19 -6
- package/dist/commands/chats.js.map +1 -1
- package/dist/commands/check.d.ts +8 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +64 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/context.d.ts +5 -0
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +5 -1
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/hearing.d.ts +25 -0
- package/dist/commands/hearing.d.ts.map +1 -0
- package/dist/commands/hearing.js +41 -0
- package/dist/commands/hearing.js.map +1 -0
- package/dist/commands/inbox.d.ts.map +1 -1
- package/dist/commands/inbox.js +19 -3
- package/dist/commands/inbox.js.map +1 -1
- package/dist/commands/mcp.d.ts +1 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +7 -4
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/messages.d.ts.map +1 -1
- package/dist/commands/messages.js +21 -5
- package/dist/commands/messages.js.map +1 -1
- package/dist/commands/paging.d.ts +3 -1
- package/dist/commands/paging.d.ts.map +1 -1
- package/dist/commands/paging.js +4 -1
- package/dist/commands/paging.js.map +1 -1
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +5 -7
- package/dist/commands/review.js.map +1 -1
- package/dist/domain/models.d.ts +4 -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 +13 -0
- 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/instructions.d.ts +2 -1
- package/dist/mcp/instructions.d.ts.map +1 -1
- package/dist/mcp/instructions.js +2 -1
- package/dist/mcp/instructions.js.map +1 -1
- package/dist/mcp/server.d.ts +2 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +4 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools.d.ts +5 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +150 -11
- package/dist/mcp/tools.js.map +1 -1
- package/dist/moderation/check.d.ts +98 -0
- package/dist/moderation/check.d.ts.map +1 -0
- package/dist/moderation/check.js +306 -0
- package/dist/moderation/check.js.map +1 -0
- package/dist/review.d.ts +10 -4
- package/dist/review.d.ts.map +1 -1
- package/dist/review.js +35 -53
- package/dist/review.js.map +1 -1
- package/dist/sends/journal.d.ts +1 -1
- package/dist/sends/journal.d.ts.map +1 -1
- package/dist/session/store.d.ts +2 -0
- package/dist/session/store.d.ts.map +1 -1
- package/dist/session/store.js +2 -0
- package/dist/session/store.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/messages.d.ts.map +1 -1
- package/dist/spec/operations/messages.js +9 -4
- package/dist/spec/operations/messages.js.map +1 -1
- package/dist/spec/operations/uploads.d.ts +13 -0
- package/dist/spec/operations/uploads.d.ts.map +1 -1
- package/dist/spec/operations/uploads.js +21 -0
- package/dist/spec/operations/uploads.js.map +1 -1
- package/dist/transcribe/index.d.ts +36 -1
- package/dist/transcribe/index.d.ts.map +1 -1
- package/dist/transcribe/index.js +91 -14
- package/dist/transcribe/index.js.map +1 -1
- package/dist/upload.d.ts +3 -0
- package/dist/upload.d.ts.map +1 -1
- package/dist/upload.js +13 -7
- package/dist/upload.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/voice.d.ts +9 -0
- package/dist/voice.d.ts.map +1 -0
- package/dist/voice.js +36 -0
- package/dist/voice.js.map +1 -0
- package/package.json +5 -2
- package/skills/max-cli/SKILL.md +10 -3
package/dist/spec/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/spec/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EACL,UAAU,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,YAAY,EACZ,WAAW,EACX,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACxH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EACL,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,SAAS,GACV,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAChB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACpG,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/spec/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EACL,UAAU,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,YAAY,EACZ,WAAW,EACX,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACxH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EACL,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,SAAS,GACV,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAChB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACpG,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAE5B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,IAAI,GAAqB;IACpC,WAAW;IACX,YAAY;IACZ,WAAW;IACX,UAAU;IACV,MAAM;IACN,cAAc;IACd,aAAa;IACb,SAAS;IACT,SAAS;IACT,eAAe;IACf,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,eAAe;IACf,cAAc;IACd,cAAc;IACd,cAAc;IACd,aAAa;IACb,eAAe;IACf,oBAAoB;IACpB,WAAW;IACX,aAAa;IACb,aAAa;IACb,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,SAAS;IACT,aAAa;IACb,SAAS;IACT,UAAU;IACV,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,WAAW;IACX,YAAY;CACb,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAyB,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAsB,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAA;AAEtH,MAAM,CAAC,MAAM,YAAY,GAA2B,IAAI,CAAC,MAAM,CAC7D,CAAC,KAAK,EAAwB,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAC9D,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/spec/operations/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAK5B,eAAO,MAAM,YAAY;;;QASjB,2FAA2F;;QAE3F;;;WAGG;;QAEH,+GAA+G;;;;;;;QAG/G,+FAA+F;;;;;;;;;QAQ/F;;;;WAIG;;;;;;;;;;;;;;;;;;;;;cAyET,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;IAUrB,2FAA2F;;;;cAsB7F,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;cAkB5B,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;;;cAsBxB,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;cAa1B,CAAA;AAEF,eAAO,MAAM,cAAc;;;;
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/spec/operations/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAK5B,eAAO,MAAM,YAAY;;;QASjB,2FAA2F;;QAE3F;;;WAGG;;QAEH,+GAA+G;;;;;;;QAG/G,+FAA+F;;;;;;;;;QAQ/F;;;;WAIG;;;;;;;;;;;;;;;;;;;;;cAyET,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;IAUrB,2FAA2F;;;;cAsB7F,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;cAkB5B,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;;;cAsBxB,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;cAa1B,CAAA;AAEF,eAAO,MAAM,cAAc;;;;kDAyBzB,CAAA"}
|
|
@@ -205,10 +205,15 @@ export const messagesDelete = defineOperation({
|
|
|
205
205
|
forEveryone: request.forMe === false,
|
|
206
206
|
}),
|
|
207
207
|
provenance: {
|
|
208
|
-
confidence: "
|
|
209
|
-
sources: [
|
|
210
|
-
|
|
211
|
-
"
|
|
208
|
+
confidence: "measured",
|
|
209
|
+
sources: [
|
|
210
|
+
"PyMax 2.4.1 `delete_message`",
|
|
211
|
+
"tsmax",
|
|
212
|
+
"`forMe: false` measured 2026-09-27: the owner, as the group's admin, deleted another member's message in a test group by `max chats check` (`NEED-318`); it was gone from the history MAX returned",
|
|
213
|
+
],
|
|
214
|
+
notes: "`forMe: true` removes the messages for this account only, `false` for everyone in the chat. An admin may " +
|
|
215
|
+
"delete another member's message for everyone. Sent by `max messages delete` and `max chats check`, on the " +
|
|
216
|
+
"owner's word each time (`NEED-32` corrected, `MAX-47`, `NEED-308`).",
|
|
212
217
|
},
|
|
213
218
|
});
|
|
214
219
|
//# sourceMappingURL=messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/spec/operations/messages.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/spec/operations/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,4 +15,17 @@ export declare const uploadsFile: import("../define.js").Operation<v.StrictObjec
|
|
|
15
15
|
}, undefined>, v.LooseObjectSchema<{
|
|
16
16
|
readonly info: v.OptionalSchema<v.ArraySchema<v.LooseObjectSchema<{}, undefined>, undefined>, undefined>;
|
|
17
17
|
}, undefined>>;
|
|
18
|
+
export declare const uploadsVideo: import("../define.js").Operation<v.UnionSchema<[v.StrictObjectSchema<{
|
|
19
|
+
readonly count: v.LiteralSchema<1, undefined>;
|
|
20
|
+
readonly type: v.LiteralSchema<0, undefined>;
|
|
21
|
+
readonly uploaderType: v.LiteralSchema<0, undefined>;
|
|
22
|
+
readonly profile: v.LiteralSchema<false, undefined>;
|
|
23
|
+
}, undefined>, v.StrictObjectSchema<{
|
|
24
|
+
readonly count: v.LiteralSchema<1, undefined>;
|
|
25
|
+
readonly type: v.LiteralSchema<2, undefined>;
|
|
26
|
+
readonly uploaderType: v.LiteralSchema<1, undefined>;
|
|
27
|
+
readonly profile: v.LiteralSchema<false, undefined>;
|
|
28
|
+
}, undefined>], undefined>, v.LooseObjectSchema<{
|
|
29
|
+
readonly info: v.OptionalSchema<v.ArraySchema<v.LooseObjectSchema<{}, undefined>, undefined>, undefined>;
|
|
30
|
+
}, undefined>>;
|
|
18
31
|
//# sourceMappingURL=uploads.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["../../../src/spec/operations/uploads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAU5B,eAAO,MAAM,YAAY;;;;;;;cAcvB,CAAA;AAEF,eAAO,MAAM,WAAW;;;;;;;cActB,CAAA"}
|
|
1
|
+
{"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["../../../src/spec/operations/uploads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAU5B,eAAO,MAAM,YAAY;;;;;;;cAcvB,CAAA;AAEF,eAAO,MAAM,WAAW;;;;;;;cActB,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;cAqBvB,CAAA"}
|
|
@@ -34,4 +34,25 @@ export const uploadsFile = defineOperation({
|
|
|
34
34
|
notes: 'Answers `{info: [{url, fileId, token}]}`. The bytes are POSTed raw with `Content-Range: 0-<end>/<size>`; MAX then pushes 136 `{fileId}`, and a send before that is refused `attachment.not.ready`. The message attaches `{_type: "FILE", fileId}`.',
|
|
35
35
|
},
|
|
36
36
|
});
|
|
37
|
+
export const uploadsVideo = defineOperation({
|
|
38
|
+
name: "uploads.video",
|
|
39
|
+
constant: "VIDEO_UPLOAD",
|
|
40
|
+
opcode: 82,
|
|
41
|
+
auth: true,
|
|
42
|
+
request: v.union([
|
|
43
|
+
v.strictObject({ count: v.literal(1), type: v.literal(0), uploaderType: v.literal(0), profile: v.literal(false) }),
|
|
44
|
+
v.strictObject({ count: v.literal(1), type: v.literal(2), uploaderType: v.literal(1), profile: v.literal(false) }),
|
|
45
|
+
]),
|
|
46
|
+
response: v.looseObject({ info: v.optional(v.array(v.looseObject({}))) }),
|
|
47
|
+
guard: null,
|
|
48
|
+
provenance: {
|
|
49
|
+
confidence: "measured",
|
|
50
|
+
sources: [
|
|
51
|
+
"measured against MAX 2026-09-27 in Saved messages (`pnpm probe:video`, `pnpm probe:voice`)",
|
|
52
|
+
"PyMax 2.4.1 upload_video",
|
|
53
|
+
"web.max.ru bundle (voice)",
|
|
54
|
+
],
|
|
55
|
+
notes: 'Answers `{info: [{url, videoId, token}]}`. `type: 0` is a video; `type: 2, uploaderType: 1` an Ogg Opus voice message. The bytes are POSTed raw with `Content-Range: bytes 0-<end>/<size>`; a send straight after the upload was accepted, before push 136 `{videoId}`. A video attaches `{_type: "VIDEO", videoId, token, videoType: 0}`, a voice message `{_type: "AUDIO", audioId: <videoId>, duration, wave, token}` — `duration` in ms, `wave` 80 bytes of 0–127.',
|
|
56
|
+
},
|
|
57
|
+
});
|
|
37
58
|
//# sourceMappingURL=uploads.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../../src/spec/operations/uploads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,aAAa,GAAG,CAAC,CAAC,YAAY,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACnB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAClB,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;CAC1B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;IACxD,KAAK,EAAE,IAAI;IACX,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,CAAC,yEAAyE,EAAE,oBAAoB,CAAC;QAC1G,KAAK,EACH,0JAA0J;KAC7J;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC;IACzC,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,aAAa;IACvB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,KAAK,EAAE,IAAI;IACX,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,CAAC,yEAAyE,EAAE,mBAAmB,CAAC;QACzG,KAAK,EACH,oPAAoP;KACvP;CACF,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../../src/spec/operations/uploads.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CliError } from "@leemour/cli-core";
|
|
2
2
|
import type { CacheStore } from "../cache/index.js";
|
|
3
3
|
import type { MaxClient } from "../client.js";
|
|
4
|
-
import type { AttachmentLink, Id } from "../domain/models.js";
|
|
4
|
+
import type { AttachmentLink, Id, Message } from "../domain/models.js";
|
|
5
5
|
import { type SpeechModel } from "./models.js";
|
|
6
6
|
import { type Recognizer } from "./speech.js";
|
|
7
7
|
export interface Transcript {
|
|
@@ -32,4 +32,39 @@ export declare const openInstalled: (model: SpeechModel, directory: string) => R
|
|
|
32
32
|
* not start a 230–670 MB download. The refusal names the command that does it.
|
|
33
33
|
*/
|
|
34
34
|
export declare const transcribe: (client: MaxClient, chatId: Id, messageId: Id, { model, directory, cache, release, fetchAudio, open }: TranscribeOptions) => Promise<Transcript>;
|
|
35
|
+
export interface Voice {
|
|
36
|
+
chatId: Id;
|
|
37
|
+
messageId: Id;
|
|
38
|
+
}
|
|
39
|
+
export declare const voiceKey: ({ chatId, messageId }: Voice) => string;
|
|
40
|
+
export interface Heard {
|
|
41
|
+
/** By `voiceKey`: the text of every voice message heard now or kept from before. */
|
|
42
|
+
transcripts: Map<string, string>;
|
|
43
|
+
unheard: Voice[];
|
|
44
|
+
/** Why some were not heard — the first reason; the messages are still worth showing. */
|
|
45
|
+
problem?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface HearAllOptions extends Omit<TranscribeOptions, "model"> {
|
|
48
|
+
/** Without one, only texts already kept are used. */
|
|
49
|
+
model?: SpeechModel | undefined;
|
|
50
|
+
/** Told how many are about to be heard, just before the long part. */
|
|
51
|
+
progress?: (count: number) => void;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Many voice messages at once — a page, an inbox, a review. Kept texts first, whichever model heard
|
|
55
|
+
* them. Then every recording still needed is fetched **before** the connection is released and the
|
|
56
|
+
* model runs: recognition is synchronous for up to a minute each, and a socket that answers no ping
|
|
57
|
+
* that long is a client MAX can tell apart. One recognizer serves the whole run.
|
|
58
|
+
*/
|
|
59
|
+
export declare const hearAll: (client: MaxClient, voices: readonly Voice[], { model, directory, cache, release, fetchAudio, open, progress }: HearAllOptions) => Promise<Heard>;
|
|
60
|
+
export declare const isVoice: (message: Message) => boolean;
|
|
61
|
+
/** A message with its transcript, when there is one; others pass through unchanged. */
|
|
62
|
+
export declare const withTranscript: <T extends Message>(message: T, heard: Heard) => T & {
|
|
63
|
+
transcript?: string;
|
|
64
|
+
};
|
|
65
|
+
/** How a person sees one: the text MAX has, then what was heard. */
|
|
66
|
+
export declare const spoken: <T extends Message & {
|
|
67
|
+
transcript?: string;
|
|
68
|
+
}>({ transcript, ...message }: T) => Omit<T, "transcript">;
|
|
69
|
+
export declare const hearingLine: (count: number, model: string) => string;
|
|
35
70
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transcribe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transcribe/index.ts"],"names":[],"mappings":"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"}
|
package/dist/transcribe/index.js
CHANGED
|
@@ -10,6 +10,24 @@ export const notDownloaded = (model) => new CliError("not_found", [
|
|
|
10
10
|
].join("\n"));
|
|
11
11
|
const sizeOf = (model) => megabytes(installedBytes(model) + VAD.bytes);
|
|
12
12
|
export const openInstalled = (model, directory) => openRecognizer(model, modelPath(directory, model), vadPath(directory));
|
|
13
|
+
/** The recording of one voice message, fetched while the connection is still open. */
|
|
14
|
+
const fetchVoice = async (client, chatId, messageId, fetchAudio) => {
|
|
15
|
+
const { links } = await client.messages.links(chatId, messageId);
|
|
16
|
+
const voice = links.find((link) => link.kind === "audio");
|
|
17
|
+
if (!voice)
|
|
18
|
+
throw new CliError("validation_error", `message ${messageId} has no voice recording to transcribe`);
|
|
19
|
+
const bytes = await fetchAudio(voice);
|
|
20
|
+
if (bytes.length > LARGEST_VOICE) {
|
|
21
|
+
throw new CliError("validation_error", `the recording is larger than ${LARGEST_VOICE / 1024 ** 2} MiB — not decoded`);
|
|
22
|
+
}
|
|
23
|
+
return bytes;
|
|
24
|
+
};
|
|
25
|
+
const hear = async (bytes, recognizer) => {
|
|
26
|
+
const { samples, rate } = await decodeOgg(bytes).catch((error) => {
|
|
27
|
+
throw new CliError("invalid_response", `the recording could not be read as Ogg Opus: ${error.message}`);
|
|
28
|
+
});
|
|
29
|
+
return { text: recognizer.recognize(toModelRate(samples, rate)), seconds: Math.round(samples.length / rate) };
|
|
30
|
+
};
|
|
13
31
|
/**
|
|
14
32
|
* One voice message to text, on this machine. A text already heard by the same model comes from
|
|
15
33
|
* the cache, with no connection and no model loaded.
|
|
@@ -24,27 +42,86 @@ export const transcribe = async (client, chatId, messageId, { model, directory,
|
|
|
24
42
|
}
|
|
25
43
|
if (!isInstalled(model, directory))
|
|
26
44
|
throw notDownloaded(model);
|
|
27
|
-
const
|
|
28
|
-
const voice = links.find((link) => link.kind === "audio");
|
|
29
|
-
if (!voice)
|
|
30
|
-
throw new CliError("validation_error", `message ${messageId} has no voice recording to transcribe`);
|
|
31
|
-
const bytes = await fetchAudio(voice);
|
|
45
|
+
const bytes = await fetchVoice(client, chatId, messageId, fetchAudio);
|
|
32
46
|
await release?.();
|
|
33
|
-
if (bytes.length > LARGEST_VOICE) {
|
|
34
|
-
throw new CliError("validation_error", `the recording is larger than ${LARGEST_VOICE / 1024 ** 2} MiB — not decoded`);
|
|
35
|
-
}
|
|
36
|
-
const { samples, rate } = await decodeOgg(bytes).catch((error) => {
|
|
37
|
-
throw new CliError("invalid_response", `the recording could not be read as Ogg Opus: ${error.message}`);
|
|
38
|
-
});
|
|
39
|
-
const pcm = toModelRate(samples, rate);
|
|
40
47
|
const recognizer = open(model, directory);
|
|
41
48
|
try {
|
|
42
|
-
const text = recognizer
|
|
49
|
+
const { text, seconds } = await hear(bytes, recognizer);
|
|
43
50
|
cache?.messages.keepTranscript(chatId, messageId, text, model.id);
|
|
44
|
-
return { chatId, messageId, text, model: model.id, seconds
|
|
51
|
+
return { chatId, messageId, text, model: model.id, seconds, cached: false };
|
|
45
52
|
}
|
|
46
53
|
finally {
|
|
47
54
|
recognizer.free();
|
|
48
55
|
}
|
|
49
56
|
};
|
|
57
|
+
export const voiceKey = ({ chatId, messageId }) => `${chatId}/${messageId}`;
|
|
58
|
+
/**
|
|
59
|
+
* Many voice messages at once — a page, an inbox, a review. Kept texts first, whichever model heard
|
|
60
|
+
* them. Then every recording still needed is fetched **before** the connection is released and the
|
|
61
|
+
* model runs: recognition is synchronous for up to a minute each, and a socket that answers no ping
|
|
62
|
+
* that long is a client MAX can tell apart. One recognizer serves the whole run.
|
|
63
|
+
*/
|
|
64
|
+
export const hearAll = async (client, voices, { model, directory, cache, release, fetchAudio = fetchBytes, open = openInstalled, progress }) => {
|
|
65
|
+
const transcripts = new Map();
|
|
66
|
+
const unheard = [];
|
|
67
|
+
let problem;
|
|
68
|
+
const failed = (voice, error) => {
|
|
69
|
+
problem ??= error instanceof Error ? error.message : String(error);
|
|
70
|
+
unheard.push(voice);
|
|
71
|
+
};
|
|
72
|
+
const needed = [];
|
|
73
|
+
for (const voice of voices) {
|
|
74
|
+
const kept = cache?.messages.transcript(voice.chatId, voice.messageId);
|
|
75
|
+
if (kept)
|
|
76
|
+
transcripts.set(voiceKey(voice), kept.text);
|
|
77
|
+
else
|
|
78
|
+
needed.push(voice);
|
|
79
|
+
}
|
|
80
|
+
if (needed.length === 0 || !model)
|
|
81
|
+
return { transcripts, unheard: needed };
|
|
82
|
+
if (!isInstalled(model, directory)) {
|
|
83
|
+
return { transcripts, unheard: needed, problem: notDownloaded(model).message };
|
|
84
|
+
}
|
|
85
|
+
const fetched = [];
|
|
86
|
+
for (const voice of needed) {
|
|
87
|
+
try {
|
|
88
|
+
fetched.push({ voice, bytes: await fetchVoice(client, voice.chatId, voice.messageId, fetchAudio) });
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
failed(voice, error);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (fetched.length > 0) {
|
|
95
|
+
await release?.();
|
|
96
|
+
progress?.(fetched.length);
|
|
97
|
+
const recognizer = open(model, directory);
|
|
98
|
+
try {
|
|
99
|
+
for (const { voice, bytes } of fetched) {
|
|
100
|
+
try {
|
|
101
|
+
const { text } = await hear(bytes, recognizer);
|
|
102
|
+
cache?.messages.keepTranscript(voice.chatId, voice.messageId, text, model.id);
|
|
103
|
+
transcripts.set(voiceKey(voice), text);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
failed(voice, error);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
finally {
|
|
111
|
+
recognizer.free();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return { transcripts, unheard, ...(problem === undefined ? {} : { problem }) };
|
|
115
|
+
};
|
|
116
|
+
export const isVoice = (message) => message.attachments.some(({ kind }) => kind === "audio");
|
|
117
|
+
/** A message with its transcript, when there is one; others pass through unchanged. */
|
|
118
|
+
export const withTranscript = (message, heard) => {
|
|
119
|
+
const transcript = heard.transcripts.get(voiceKey({ chatId: message.chatId, messageId: message.id }));
|
|
120
|
+
return transcript === undefined ? message : { ...message, transcript };
|
|
121
|
+
};
|
|
122
|
+
/** How a person sees one: the text MAX has, then what was heard. */
|
|
123
|
+
export const spoken = ({ transcript, ...message }) => transcript === undefined
|
|
124
|
+
? message
|
|
125
|
+
: { ...message, text: [message.text, `🎤 ${transcript}`].filter(Boolean).join("\n") };
|
|
126
|
+
export const hearingLine = (count, model) => `hearing ${count} voice message${count === 1 ? "" : "s"} with ${model} on this machine`;
|
|
50
127
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transcribe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAI5C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACzF,OAAO,EAAE,MAAM,EAAoB,GAAG,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAmB,WAAW,EAAE,MAAM,aAAa,CAAA;AAsBrF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAkB,EAAY,EAAE,CAC5D,IAAI,QAAQ,CACV,WAAW,EACX;IACE,oBAAoB,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,wBAAwB;QACtE,+BAA+B,KAAK,CAAC,EAAE,kBAAkB,MAAM,CAAC,KAAK,CAAC,SAAS;IACjF,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CACpD,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CACpE;CACF,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;AAEH,MAAM,MAAM,GAAG,CAAC,KAAkB,EAAU,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;AAE3F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAkB,EAAE,SAAiB,EAAc,EAAE,CACjF,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;AAExE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,MAAiB,EACjB,MAAU,EACV,SAAa,EACb,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE,IAAI,GAAG,aAAa,EAAqB,EACjF,EAAE;IACvB,MAAM,IAAI,GAAG,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC1D,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;QACpC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAC7F,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC;QAAE,MAAM,aAAa,CAAC,KAAK,CAAC,CAAA;IAE9D,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transcribe/index.ts"],"names":[],"mappings":"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"}
|
package/dist/upload.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const isImage: (path: string) => boolean;
|
|
2
|
+
export declare const isVideo: (path: string) => boolean;
|
|
2
3
|
export declare const readUpload: (path: string, { anyFile }?: {
|
|
3
4
|
anyFile?: boolean;
|
|
4
5
|
}) => Promise<Buffer>;
|
|
@@ -9,4 +10,6 @@ export declare const uploadPhoto: (url: string, path: string, bytes: Buffer) =>
|
|
|
9
10
|
* PyMax sends it and MAX accepted.
|
|
10
11
|
*/
|
|
11
12
|
export declare const uploadFile: (url: string, path: string, bytes: Buffer) => Promise<void>;
|
|
13
|
+
/** Measured 2026-09-27 with the `bytes ` unit, which PyMax and the web client send for these. */
|
|
14
|
+
export declare const uploadMedia: (kind: "video" | "voice message", url: string, path: string, bytes: Buffer) => Promise<void>;
|
|
12
15
|
//# sourceMappingURL=upload.d.ts.map
|
package/dist/upload.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../src/upload.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,OAAO,SAAU,MAAM,KAAG,OAAqD,CAAA;
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../src/upload.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,OAAO,SAAU,MAAM,KAAG,OAAqD,CAAA;AAK5F,eAAO,MAAM,OAAO,SAAU,MAAM,KAAG,OAA4D,CAAA;AA2BnG,eAAO,MAAM,UAAU,SAAgB,MAAM,gBAAuB;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAAQ,OAAO,CAAC,MAAM,CAc9G,CAAA;AAUD,iGAAiG;AACjG,eAAO,MAAM,WAAW,QAAe,MAAM,QAAQ,MAAM,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAY1F,CAAA;AAkBD;;;GAGG;AACH,eAAO,MAAM,UAAU,QAAS,MAAM,QAAQ,MAAM,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CACN,CAAA;AAE5E,iGAAiG;AACjG,eAAO,MAAM,WAAW,SAAU,OAAO,GAAG,eAAe,OAAO,MAAM,QAAQ,MAAM,SAAS,MAAM,kBACrB,CAAA"}
|
package/dist/upload.js
CHANGED
|
@@ -16,6 +16,9 @@ const IMAGE_TYPES = {
|
|
|
16
16
|
".gif": "image/gif",
|
|
17
17
|
};
|
|
18
18
|
export const isImage = (path) => extname(path).toLowerCase() in IMAGE_TYPES;
|
|
19
|
+
/** The Bot API's list of video formats; MAX transcodes what it takes. */
|
|
20
|
+
const VIDEO_EXTENSIONS = new Set([".mp4", ".mov", ".webm", ".mkv"]);
|
|
21
|
+
export const isVideo = (path) => VIDEO_EXTENSIONS.has(extname(path).toLowerCase());
|
|
19
22
|
/**
|
|
20
23
|
* A file somebody talked an agent into sending would be a key or a token: those live in hidden
|
|
21
24
|
* files and folders, `~/.ssh` among them, and in max's own folders, which `MAX_*_DIR` can move out
|
|
@@ -68,17 +71,13 @@ export const uploadPhoto = async (url, path, bytes) => {
|
|
|
68
71
|
throw new CliError("provider_error", "the photo upload answered no token — nothing was sent");
|
|
69
72
|
return token;
|
|
70
73
|
};
|
|
71
|
-
|
|
72
|
-
* Measured 2026-09-24: the bytes raw, with `Content-Range: 0-<end>/<size>` — no `bytes ` unit, as
|
|
73
|
-
* PyMax sends it and MAX accepted.
|
|
74
|
-
*/
|
|
75
|
-
export const uploadFile = async (url, path, bytes) => {
|
|
74
|
+
const postRaw = async (kind, url, path, bytes, range) => {
|
|
76
75
|
const response = await fetch(url, {
|
|
77
76
|
method: "POST",
|
|
78
77
|
headers: {
|
|
79
78
|
...HEADERS,
|
|
80
79
|
"Content-Disposition": `attachment; filename=${encodeURIComponent(basename(path))}`,
|
|
81
|
-
"Content-Range":
|
|
80
|
+
"Content-Range": range,
|
|
82
81
|
"Content-Type": "application/octet-stream",
|
|
83
82
|
},
|
|
84
83
|
body: bytes,
|
|
@@ -86,6 +85,13 @@ export const uploadFile = async (url, path, bytes) => {
|
|
|
86
85
|
});
|
|
87
86
|
await response.body?.cancel();
|
|
88
87
|
if (!response.ok)
|
|
89
|
-
throw refused(
|
|
88
|
+
throw refused(kind, response.status);
|
|
90
89
|
};
|
|
90
|
+
/**
|
|
91
|
+
* Measured 2026-09-24: the bytes raw, with `Content-Range: 0-<end>/<size>` — no `bytes ` unit, as
|
|
92
|
+
* PyMax sends it and MAX accepted.
|
|
93
|
+
*/
|
|
94
|
+
export const uploadFile = (url, path, bytes) => postRaw("file", url, path, bytes, `0-${bytes.length - 1}/${bytes.length}`);
|
|
95
|
+
/** Measured 2026-09-27 with the `bytes ` unit, which PyMax and the web client send for these. */
|
|
96
|
+
export const uploadMedia = (kind, url, path, bytes) => postRaw(kind, url, path, bytes, `bytes 0-${bytes.length - 1}/${bytes.length}`);
|
|
91
97
|
//# sourceMappingURL=upload.js.map
|
package/dist/upload.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../src/upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AACjF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,OAAO,GAAG;IACd,YAAY,EAAE,cAAc,CAAC,eAAe;IAC5C,OAAO,EAAE,qBAAqB;IAC9B,MAAM,EAAE,oBAAoB;CAC7B,CAAA;AAED,MAAM,WAAW,GAA2B;IAC1C,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;CACpB,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,WAAW,CAAA;AAE5F;;;;;GAKG;AACH,MAAM,YAAY,GAAG,CAAC,IAAY,EAAW,EAAE;IAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAC9E,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAC/B,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC;QAC1F,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAC5C,CAAA;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,GAAW,EAAW,EAAE;IACpD,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC5F,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACpD,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AAClE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE,OAAO,GAAG,KAAK,EAAE,GAA0B,EAAE,EAAmB,EAAE;IACjH,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,eAAe,IAAI,0EAA0E;YAC3F,kDAAkD,CACrD,CAAA;IACH,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAI,KAA+B,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,mBAAmB,CAAA;QACxG,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,eAAe,IAAI,KAAK,MAAM,EAAE,CAAC,CAAA;IAC1E,CAAC;AACH,CAAC,CAAA;AAED,qFAAqF;AACrF,MAAM,SAAS,GAAG,EAAE,GAAG,MAAM,CAAA;AAE7B,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AAE3D,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE,CAC/C,IAAI,QAAQ,CAAC,eAAe,EAAE,OAAO,IAAI,gCAAgC,MAAM,qBAAqB,CAAC,CAAA;AAEvG,iGAAiG;AACjG,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,GAAW,EAAE,IAAY,EAAE,KAAa,EAAmB,EAAE;IAC7F,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAA;IAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,0BAA0B,CAAA;IACnF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;IAEvF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;IAC7G,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACzD,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAqD,CAAA;IAC5G,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAA;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3B,MAAM,IAAI,QAAQ,CAAC,gBAAgB,EAAE,uDAAuD,CAAC,CAAA;IAC/F,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../src/upload.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/dist/voice.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a voice message carries besides the file, as web.max.ru builds it (`FIND-104`): its length
|
|
3
|
+
* in milliseconds and 80 bars of loudness, 0–127. Computed here, so only the file leaves the machine.
|
|
4
|
+
*/
|
|
5
|
+
export declare const voiceOf: (path: string, bytes: Uint8Array) => Promise<{
|
|
6
|
+
durationMs: number;
|
|
7
|
+
wave: Uint8Array;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=voice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../src/voice.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,eAAO,MAAM,OAAO,SAAgB,MAAM,SAAS,UAAU,KAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAyB/G,CAAA"}
|
package/dist/voice.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { CliError } from "@leemour/cli-core";
|
|
2
|
+
import { decodeOgg } from "./transcribe/speech.js";
|
|
3
|
+
const BARS = 80;
|
|
4
|
+
const isOggOpus = (bytes) => {
|
|
5
|
+
const head = Buffer.from(bytes.subarray(0, 64)).toString("latin1");
|
|
6
|
+
return head.startsWith("OggS") && head.includes("OpusHead");
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* What a voice message carries besides the file, as web.max.ru builds it (`FIND-104`): its length
|
|
10
|
+
* in milliseconds and 80 bars of loudness, 0–127. Computed here, so only the file leaves the machine.
|
|
11
|
+
*/
|
|
12
|
+
export const voiceOf = async (path, bytes) => {
|
|
13
|
+
if (!isOggOpus(bytes)) {
|
|
14
|
+
throw new CliError("validation_error", `${path} is not Ogg Opus, the format of a voice message — convert it first: ` +
|
|
15
|
+
"ffmpeg -i <file> -ac 1 -ar 48000 -c:a libopus -b:a 32k voice.ogg");
|
|
16
|
+
}
|
|
17
|
+
let decoded;
|
|
18
|
+
try {
|
|
19
|
+
decoded = await decodeOgg(bytes);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
throw new CliError("validation_error", `${path} could not be decoded as Ogg Opus`);
|
|
23
|
+
}
|
|
24
|
+
const { samples, rate } = decoded;
|
|
25
|
+
const wave = new Uint8Array(BARS);
|
|
26
|
+
const size = Math.max(1, Math.floor(samples.length / BARS));
|
|
27
|
+
for (let bar = 0; bar < BARS; bar++) {
|
|
28
|
+
let peak = 0;
|
|
29
|
+
for (let index = bar * size; index < Math.min(samples.length, (bar + 1) * size); index++) {
|
|
30
|
+
peak = Math.max(peak, Math.abs(samples[index] ?? 0));
|
|
31
|
+
}
|
|
32
|
+
wave[bar] = Math.min(127, Math.round(peak * 127));
|
|
33
|
+
}
|
|
34
|
+
return { durationMs: Math.round((samples.length / rate) * 1000), wave };
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=voice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice.js","sourceRoot":"","sources":["../src/voice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,MAAM,IAAI,GAAG,EAAE,CAAA;AAEf,MAAM,SAAS,GAAG,CAAC,KAAiB,EAAW,EAAE;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClE,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AAC7D,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,IAAY,EAAE,KAAiB,EAAqD,EAAE;IAClH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,GAAG,IAAI,sEAAsE;YAC3E,kEAAkE,CACrE,CAAA;IACH,CAAC;IACD,IAAI,OAAgD,CAAA;IACpD,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,GAAG,IAAI,mCAAmC,CAAC,CAAA;IACpF,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACjC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;IAC3D,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;QACpC,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,KAAK,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YACzF,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtD,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAA;AACzE,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leemour/max-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "MAX Messenger bots through the official Bot API, and a personal MAX account, from the terminal \u2014 built for agents and scripts",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Viacheslav Ptsarev",
|
|
@@ -63,12 +63,15 @@
|
|
|
63
63
|
"probe:control": "pnpm build && node --experimental-strip-types scripts/probe-control.ts",
|
|
64
64
|
"probe:member-list": "pnpm build && node --experimental-strip-types scripts/probe-member-list.ts",
|
|
65
65
|
"probe:message-count": "pnpm build && node --experimental-strip-types scripts/probe-message-count.ts",
|
|
66
|
+
"probe:media-send": "pnpm build && node --experimental-strip-types scripts/probe-media-send.ts",
|
|
67
|
+
"probe:video": "pnpm build && node --experimental-strip-types scripts/probe-video.ts",
|
|
68
|
+
"probe:voice": "pnpm build && node --experimental-strip-types scripts/probe-voice.ts",
|
|
66
69
|
"probe:bot:me": "pnpm build && node --experimental-strip-types scripts/probe-bot-me.ts"
|
|
67
70
|
},
|
|
68
71
|
"dependencies": {
|
|
69
72
|
"@bomb.sh/tab": "0.0.22",
|
|
70
73
|
"@leemour/cli-core": "0.8.0",
|
|
71
|
-
"@leemour/cli-messaging": "0.
|
|
74
|
+
"@leemour/cli-messaging": "0.10.0",
|
|
72
75
|
"@modelcontextprotocol/server": "2.1.0",
|
|
73
76
|
"@msgpack/msgpack": "3.1.3",
|
|
74
77
|
"@valibot/to-json-schema": "1.8.0",
|
package/skills/max-cli/SKILL.md
CHANGED
|
@@ -130,6 +130,7 @@ max chats show -1000 --json # один чат и кто в н
|
|
|
130
130
|
max chats events -1000 --since 2026-09-20T00:00 --json # кто вступил, вышел, кого добавили и удалили
|
|
131
131
|
max chats members list -1000 --json # все участники от MAX: registeredAt, lastSeenAt
|
|
132
132
|
max chats rules show -1000 --json # правила модерации группы; set <ключ> <значение> меняет одно
|
|
133
|
+
max chats check -1000 --dry-run --json # что нового нарушает правила; без --dry-run — только по слову владельца
|
|
133
134
|
max contacts show @ivan --json # один человек и общие чаты
|
|
134
135
|
max messages list -1000 --limit 20 --json # последние сообщения, от старых к новым
|
|
135
136
|
max messages list -1000 --after 100000000000000001 --json # что было после этого сообщения
|
|
@@ -145,7 +146,9 @@ max messages transcribe -1000 100000000000000001 --json # текст голо
|
|
|
145
146
|
черновики, отправка — только по слову владельца.
|
|
146
147
|
|
|
147
148
|
Голосовое — вложение `"kind": "audio"`. Его текст даёт `max messages transcribe`; до минуты на
|
|
148
|
-
пять минут речи, повторно — сразу из кэша.
|
|
149
|
+
пять минут речи, повторно — сразу из кэша. Уже расшифрованное голосовое несёт поле `transcript` в
|
|
150
|
+
`messages list` и `inbox`; `--transcribe` там расшифровывает остальные показанные, а не
|
|
151
|
+
расшифрованные перечисляет в `unheard`. Если модель не скачана, команда откажет и назовёт
|
|
149
152
|
`max models audio download <id>`: **сказать об этом владельцу и не скачивать самому** — это сотни
|
|
150
153
|
мегабайт, и выбор модели за ним.
|
|
151
154
|
|
|
@@ -155,9 +158,13 @@ max messages transcribe -1000 100000000000000001 --json # текст голо
|
|
|
155
158
|
## Бот
|
|
156
159
|
|
|
157
160
|
`max <имя> bot …` — бот владельца через официальный Bot API, **не** личный аккаунт. Имя — первое
|
|
158
|
-
слово, как профиль: `max sales bot messages send
|
|
161
|
+
слово, как профиль: `max sales bot messages send "Команда продаж" "текст"`. Какие боты есть —
|
|
159
162
|
`max bot list`. Чат бота — номер, `user:<номер>` для человека или название чата, который бот уже
|
|
160
|
-
видел; списка чатов бота у MAX нет, `max <имя> bot chats list` — только увиденные.
|
|
163
|
+
видел; списка чатов бота у MAX нет, `max <имя> bot chats list` — только увиденные. Положительный
|
|
164
|
+
номер — почти всегда человек: ему пишут `user:<номер>`. Файл — `messages send --file <путь>`. Прочитанное
|
|
165
|
+
и отправленное ботом хранится локально: `bot messages list <чат> --offline` — без сети,
|
|
166
|
+
`bot messages search <текст>` — поиск. `bot updates watch --jsonl` забирает события у всех других
|
|
167
|
+
читателей бота — запускайте только по просьбе владельца. Отказ с кодом `7`
|
|
161
168
|
значит «чата нет в списке получателей бота»: скажите владельцу, какую команду выполнить, и не
|
|
162
169
|
пишите в обход. Любая операция API — `max <имя> bot api <операция>`; её флаги —
|
|
163
170
|
`max commands --json`. Отправляйте от имени бота только то, о чём просил владелец.
|