@leemour/max-cli 0.12.0 → 0.13.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 +39 -10
- package/dist/client.d.ts +11 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +56 -8
- package/dist/client.js.map +1 -1
- package/dist/commands/doctor.d.ts +6 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +57 -7
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/mcp.d.ts +24 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +80 -14
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/models.d.ts.map +1 -1
- package/dist/commands/models.js +13 -2
- package/dist/commands/models.js.map +1 -1
- package/dist/commands/review.d.ts +8 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.js +80 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/diagnose.d.ts +19 -1
- package/dist/diagnose.d.ts.map +1 -1
- package/dist/diagnose.js +37 -1
- package/dist/diagnose.js.map +1 -1
- package/dist/domain/models.d.ts +28 -0
- package/dist/domain/models.d.ts.map +1 -1
- package/dist/domain/models.js.map +1 -1
- package/dist/install.d.ts +43 -0
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +142 -0
- package/dist/install.js.map +1 -0
- package/dist/mcp/prompts.d.ts.map +1 -1
- package/dist/mcp/prompts.js +28 -0
- package/dist/mcp/prompts.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +31 -1
- package/dist/mcp/tools.js.map +1 -1
- package/dist/online.d.ts +23 -0
- package/dist/online.d.ts.map +1 -0
- package/dist/online.js +87 -0
- package/dist/online.js.map +1 -0
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +2 -0
- package/dist/program.js.map +1 -1
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +13 -2
- package/dist/report.js.map +1 -1
- package/dist/review.d.ts +20 -0
- package/dist/review.d.ts.map +1 -0
- package/dist/review.js +56 -0
- package/dist/review.js.map +1 -0
- package/dist/transcribe/index.d.ts +1 -0
- package/dist/transcribe/index.d.ts.map +1 -1
- package/dist/transcribe/index.js +8 -4
- package/dist/transcribe/index.js.map +1 -1
- package/dist/transcribe/speech.d.ts.map +1 -1
- package/dist/transcribe/speech.js +2 -0
- package/dist/transcribe/speech.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/skills/max-cli/SKILL.md +11 -0
package/dist/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAoB,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAExF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,0GAA0G;AAC1G,MAAM,CAAC,MAAM,UAAU,GAAG,+CAA+C,CAAA;AAEzE,MAAM,YAAY,GAAG,EAAE,CAAA;AAgBvB;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,OAAO,EACP,MAAM,EACN,OAAO,EACP,KAAK,EACL,KAAK,EACL,GAAG,GAAG,IAAI,IAAI,EAAE,EAChB,IAAI,GAAG,OAAO,EAAE,GASjB,EAAU,EAAE;IACX,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACpF,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,UAAU,KAAK,iCAAiC,CAAC,CAAA;IAErH,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,MAAM,GAAW;QACrB,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE;QAC5B,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,OAAO,EAAE;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO;QACP,MAAM;
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAoB,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAExF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,0GAA0G;AAC1G,MAAM,CAAC,MAAM,UAAU,GAAG,+CAA+C,CAAA;AAEzE,MAAM,YAAY,GAAG,EAAE,CAAA;AAgBvB;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,OAAO,EACP,MAAM,EACN,OAAO,EACP,KAAK,EACL,KAAK,EACL,GAAG,GAAG,IAAI,IAAI,EAAE,EAChB,IAAI,GAAG,OAAO,EAAE,GASjB,EAAU,EAAE;IACX,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACpF,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,UAAU,KAAK,iCAAiC,CAAC,CAAA;IAErH,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,MAAM,GAAW;QACrB,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE;QAC5B,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,OAAO,EAAE;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO;QACP,kGAAkG;QAClG,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;QAC9D,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QAChG,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChD,GAAG,KAAK;YACR,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YAC1D,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;SAChF,CAAC,CAAC;KACJ,CAAA;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAW,CAAA;AACrE,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,IAAY,EAAU,EAAE;IACtD,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAA;IAC5B,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;IACvF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CACnC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EACxG,IAAI,CACL,CAAA;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,QAAQ,GAAG,GAAG,EAAE;IACpB,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAA;IAC5B,OAAO,CAAC,EAAU,EAAU,EAAE,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;AAChH,CAAC,CAAA;AAED,MAAM,aAAa,GACjB,CAAC,KAA6B,EAAE,EAAE,CAClC,CAAC,KAA8B,EAA2B,EAAE;IAC1D,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;IACrB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IACzD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,GAA8B,CAAA;IACjE,OAAO;QACL,GAAG,KAAK;QACR,GAAG,EAAE;YACH,GAAG,IAAI;YACP,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpE;KACF,CAAA;AACH,CAAC,CAAA;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,IAAY,EAAU,EAAE;IAClE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAA;IAChC,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,MAAM,GAAG,CAAC,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAA;IACpH,MAAM,IAAI,GAAG;QACX,cAAc;QACd,EAAE;QACF,aAAa;QACb,EAAE;QACF,gBAAgB;QAChB,EAAE;QACF,KAAK;QACL,OAAO,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE;QAC7E,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,SAAS,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7G,gBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE;KACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,OAAO,GAAG,UAAU,UAAU,kBAAkB,CAAC,OAAO,CAAC,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAA;AAC9F,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAS,EAAU,EAAE,CAClD,cAAc,GAAG;KACd,WAAW,EAAE;KACb,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;KACpB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAA;AAEnC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAsD,EAAE;IAC3F,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAA;IACvE,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACnH,CAAC,CAAA"}
|
package/dist/review.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CacheStore } from "./cache/index.js";
|
|
2
|
+
import type { MaxClient } from "./client.js";
|
|
3
|
+
import type { Review } from "./domain/models.js";
|
|
4
|
+
/** Owner's ruling: without a boundary, a review looks at the last three days. */
|
|
5
|
+
export declare const REVIEW_DAYS = 3;
|
|
6
|
+
export declare const reviewStart: (now?: number) => number;
|
|
7
|
+
export interface ReviewOptions {
|
|
8
|
+
since: number;
|
|
9
|
+
cache: CacheStore | undefined;
|
|
10
|
+
/** Transcribe voice messages not heard yet, with this model; otherwise only texts already kept. */
|
|
11
|
+
transcribeWith?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* `max review` and `max_review` alike. A text already heard comes from the cache with no model
|
|
15
|
+
* loaded; with `transcribeWith`, the rest are transcribed one by one. A missing model or a recording
|
|
16
|
+
* that will not decode is a field in the answer, not a failed review: the messages are still worth
|
|
17
|
+
* reading. The model is never downloaded from here (`NEED-231`).
|
|
18
|
+
*/
|
|
19
|
+
export declare const review: (client: MaxClient, { since, cache, transcribeWith }: ReviewOptions) => Promise<Review>;
|
|
20
|
+
//# sourceMappingURL=review.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAMhD,iFAAiF;AACjF,eAAO,MAAM,WAAW,IAAI,CAAA;AAE5B,eAAO,MAAM,WAAW,oBAAuB,MAAwC,CAAA;AAEvF,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;IAC7B,mGAAmG;IACnG,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,WAAkB,SAAS,oCAAoC,aAAa,KAAG,OAAO,CAAC,MAAM,CA4C/G,CAAA"}
|
package/dist/review.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { notDownloaded, openInstalled, transcribe } from "./transcribe/index.js";
|
|
2
|
+
import { isInstalled, modelsDirectory } from "./transcribe/install.js";
|
|
3
|
+
import { speechModel } from "./transcribe/models.js";
|
|
4
|
+
/** Owner's ruling: without a boundary, a review looks at the last three days. */
|
|
5
|
+
export const REVIEW_DAYS = 3;
|
|
6
|
+
export const reviewStart = (now = Date.now()) => now - REVIEW_DAYS * 86_400_000;
|
|
7
|
+
/**
|
|
8
|
+
* `max review` and `max_review` alike. A text already heard comes from the cache with no model
|
|
9
|
+
* loaded; with `transcribeWith`, the rest are transcribed one by one. A missing model or a recording
|
|
10
|
+
* that will not decode is a field in the answer, not a failed review: the messages are still worth
|
|
11
|
+
* reading. The model is never downloaded from here (`NEED-231`).
|
|
12
|
+
*/
|
|
13
|
+
export const review = async (client, { since, cache, transcribeWith }) => {
|
|
14
|
+
const read = await client.inbox.review({ since });
|
|
15
|
+
const unheard = [];
|
|
16
|
+
const model = transcribeWith === undefined ? undefined : speechModel(transcribeWith);
|
|
17
|
+
const directory = modelsDirectory();
|
|
18
|
+
let transcribeProblem = model && !isInstalled(model, directory) ? notDownloaded(model).message : undefined;
|
|
19
|
+
const canTranscribe = model !== undefined && transcribeProblem === undefined;
|
|
20
|
+
// Loading takes seconds and up to 1.3 GB, so one recognizer hears every voice message of the review.
|
|
21
|
+
let loaded;
|
|
22
|
+
const shared = (speech, at) => {
|
|
23
|
+
loaded ??= openInstalled(speech, at);
|
|
24
|
+
const recognizer = loaded;
|
|
25
|
+
return { recognize: (pcm) => recognizer.recognize(pcm), free: () => { } };
|
|
26
|
+
};
|
|
27
|
+
try {
|
|
28
|
+
for (const chat of read.chats) {
|
|
29
|
+
for (const message of chat.messages) {
|
|
30
|
+
if (!message.attachments.some(({ kind }) => kind === "audio"))
|
|
31
|
+
continue;
|
|
32
|
+
const kept = cache?.messages.transcript(chat.id, message.id);
|
|
33
|
+
if (kept) {
|
|
34
|
+
message.transcript = kept.text;
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (canTranscribe) {
|
|
38
|
+
try {
|
|
39
|
+
message.transcript = (await transcribe(client, chat.id, message.id, { model, directory, cache, open: shared })).text;
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
transcribeProblem ??= error instanceof Error ? error.message : String(error);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
unheard.push({ chatId: chat.id, messageId: message.id });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
loaded?.free();
|
|
52
|
+
}
|
|
53
|
+
const complete = read.skipped.length === 0 && !read.partial && unheard.length === 0 && read.chats.every((chat) => !chat.more);
|
|
54
|
+
return { ...read, complete, unheard, ...(transcribeProblem === undefined ? {} : { transcribeProblem }) };
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@ export interface TranscribeOptions {
|
|
|
23
23
|
open?: (model: SpeechModel, directory: string) => Recognizer;
|
|
24
24
|
}
|
|
25
25
|
export declare const notDownloaded: (model: SpeechModel) => CliError;
|
|
26
|
+
export declare const openInstalled: (model: SpeechModel, directory: string) => Recognizer;
|
|
26
27
|
/**
|
|
27
28
|
* One voice message to text, on this machine. A text already heard by the same model comes from
|
|
28
29
|
* the cache, with no connection and no model loaded.
|
|
@@ -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;AAG7D,OAAO,
|
|
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;AAG7D,OAAO,EAAU,KAAK,WAAW,EAAO,MAAM,aAAa,CAAA;AAC3D,OAAO,EAA6B,KAAK,UAAU,EAAe,MAAM,aAAa,CAAA;AAErF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,EAAE,CAAA;IACV,SAAS,EAAE,EAAE,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,yEAAyE;IACzE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,WAAW,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAC9B,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAC1D,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK,UAAU,CAAA;CAC7D;AAED,eAAO,MAAM,aAAa,UAAW,WAAW,KAAG,QAUhD,CAAA;AAIH,eAAO,MAAM,aAAa,UAAW,WAAW,aAAa,MAAM,KAAG,UACE,CAAA;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,WACb,SAAS,UACT,EAAE,aACC,EAAE,0DACwE,iBAAiB,KACrG,OAAO,CAAC,UAAU,CAgCpB,CAAA"}
|
package/dist/transcribe/index.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { CliError } from "@leemour/cli-core";
|
|
2
2
|
import { fetchBytes, LARGEST_VOICE } from "../download.js";
|
|
3
3
|
import { installedBytes, isInstalled, megabytes, modelPath, vadPath } from "./install.js";
|
|
4
|
-
import { VAD } from "./models.js";
|
|
4
|
+
import { MODELS, VAD } from "./models.js";
|
|
5
5
|
import { decodeOgg, openRecognizer, toModelRate } from "./speech.js";
|
|
6
|
-
export const notDownloaded = (model) => new CliError("not_found",
|
|
7
|
-
`(${
|
|
8
|
-
|
|
6
|
+
export const notDownloaded = (model) => new CliError("not_found", [
|
|
7
|
+
`the speech model ${model.id} (${model.languages}) is not downloaded — ` +
|
|
8
|
+
`\`max models audio download ${model.id}\` fetches it (${sizeOf(model)}, once)`,
|
|
9
|
+
...MODELS.filter((other) => other.id !== model.id).map((other) => ` or ${other.id}: ${other.languages}, ${sizeOf(other)}`),
|
|
10
|
+
].join("\n"));
|
|
11
|
+
const sizeOf = (model) => megabytes(installedBytes(model) + VAD.bytes);
|
|
12
|
+
export const openInstalled = (model, directory) => openRecognizer(model, modelPath(directory, model), vadPath(directory));
|
|
9
13
|
/**
|
|
10
14
|
* One voice message to text, on this machine. A text already heard by the same model comes from
|
|
11
15
|
* the cache, with no connection and no model loaded.
|
|
@@ -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,EAAoB,GAAG,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transcribe/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speech.d.ts","sourceRoot":"","sources":["../../src/transcribe/speech.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,kGAAkG;AAClG,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAA;IACpC,IAAI,IAAI,IAAI,CAAA;CACb;AAED,eAAO,MAAM,WAAW,QAAS,CAAA;AAQjC;;;;GAIG;AACH,eAAO,MAAM,WAAW,YAAa,YAAY,QAAQ,MAAM,KAAG,YAYjE,CAAA;AAED,eAAO,MAAM,SAAS,UAAiB,UAAU,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAYlG,CAAA;
|
|
1
|
+
{"version":3,"file":"speech.d.ts","sourceRoot":"","sources":["../../src/transcribe/speech.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,kGAAkG;AAClG,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAA;IACpC,IAAI,IAAI,IAAI,CAAA;CACb;AAED,eAAO,MAAM,WAAW,QAAS,CAAA;AAQjC;;;;GAIG;AACH,eAAO,MAAM,WAAW,YAAa,YAAY,QAAQ,MAAM,KAAG,YAYjE,CAAA;AAED,eAAO,MAAM,SAAS,UAAiB,UAAU,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAYlG,CAAA;AA0BD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAAW,WAAW,QAAQ,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,YAAY,MAAM,KAAG,UA0DrG,CAAA"}
|
|
@@ -81,6 +81,8 @@ export const openRecognizer = (model, path, vadModel) => {
|
|
|
81
81
|
};
|
|
82
82
|
return {
|
|
83
83
|
recognize: (pcm) => {
|
|
84
|
+
// One recognizer can hear several recordings in a row; nothing of the last may leak into this one.
|
|
85
|
+
vad.reset();
|
|
84
86
|
const parts = [];
|
|
85
87
|
const drain = () => {
|
|
86
88
|
while (!vad.isEmpty()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speech.js","sourceRoot":"","sources":["../../src/transcribe/speech.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAS3C,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAA;AAEjC;;;GAGG;AACH,MAAM,IAAI,GAAG,WAAW,GAAG,CAAC,CAAA;AAE5B;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAqB,EAAE,IAAY,EAAgB,EAAE;IAC/E,MAAM,IAAI,GAAG,IAAI,GAAG,WAAW,CAAA;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAChD,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,CAAA;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QACzD,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACtD,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,KAAiB,EAAoD,EAAE;IACrG,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAA;IACpC,MAAM,OAAO,CAAC,KAAK,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACnF,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,CAAC,OAAO,IAAI,cAAc,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAChF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;IACtC,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC;AACH,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"speech.js","sourceRoot":"","sources":["../../src/transcribe/speech.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/package.json
CHANGED
package/skills/max-cli/SKILL.md
CHANGED
|
@@ -84,6 +84,9 @@ description: Читать и отправлять сообщения в личн
|
|
|
84
84
|
5d. **Ошибку, которую не удаётся объяснить, — в отчёт автору.** Предложите владельцу
|
|
85
85
|
`max doctor report create`: команда пишет файл без текстов сообщений и печатает ссылку на новую
|
|
86
86
|
задачу на GitHub. Задачу создаёт владелец сам: она видна всем.
|
|
87
|
+
5e. **`max` не находится — `npx @leemour/max-cli doctor`.** Он скажет, куда поставлена команда и
|
|
88
|
+
почему терминал её не видит, и напечатает команду исправления. Клиенту MCP без терминала (Claude
|
|
89
|
+
Desktop, Cursor) готовую запись с полными путями печатает `max mcp config`.
|
|
87
90
|
6. **`messages show` и `messages context` требуют и чат, и id сообщения.** Искомое сообщение в
|
|
88
91
|
JSON помечено `"anchor": true`. Если сообщения нет, это `not_found`, а не соседнее сообщение.
|
|
89
92
|
7. **Время сообщения зашито в его id**: `id >> 16` — миллисекунды. Поэтому `--before <id>` и
|
|
@@ -118,6 +121,7 @@ max chats list --search "проект" --json # найти чат, взя
|
|
|
118
121
|
max chats list --unread --json # где есть непрочитанное
|
|
119
122
|
max inbox --json # непрочитанное во всех чатах
|
|
120
123
|
max inbox --new --json # что пришло с прошлой проверки, один раз
|
|
124
|
+
max review --since 2026-09-23T09:00 --json # всё, свои тоже, для обзора «кто кому должен»
|
|
121
125
|
max watch --jsonl # новые сообщения по мере прихода, если запущен `max serve`
|
|
122
126
|
max watch --events --jsonl # плюс правки, удаления, реакции; в каждой строке "event"
|
|
123
127
|
max server status --json # работает ли фоновый сервер, какой версии, подключён ли
|
|
@@ -129,6 +133,13 @@ max messages context -1000 100000000000000001 --before 3 --after 3 --json
|
|
|
129
133
|
max messages transcribe -1000 100000000000000001 --json # текст голосового, на этой машине
|
|
130
134
|
```
|
|
131
135
|
|
|
136
|
+
**Обзор «кто кому должен» — `max review`**, одним вызовом: все сообщения обеих сторон во всех
|
|
137
|
+
изменившихся чатах. `--since` — граница, на которой кончился прошлый обзор; её называет владелец или
|
|
138
|
+
прошлый обзор. Разложить на «я должен», «жду от других», «нужно уточнить» — работа агента; у пункта
|
|
139
|
+
чат, дата и id сообщений. Своё «сделаю» ищите в `"outgoing": true`. При `"complete": false` сказать,
|
|
140
|
+
чего не хватает, и не предлагать новую границу; иначе закончить `--since` = `until`. Напоминания —
|
|
141
|
+
черновики, отправка — только по слову владельца.
|
|
142
|
+
|
|
132
143
|
Голосовое — вложение `"kind": "audio"`. Его текст даёт `max messages transcribe`; до минуты на
|
|
133
144
|
пять минут речи, повторно — сразу из кэша. Если модель не скачана, команда откажет и назовёт
|
|
134
145
|
`max models audio download <id>`: **сказать об этом владельцу и не скачивать самому** — это сотни
|