@leemour/max-cli 0.9.0 → 0.11.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 +24 -3
- package/dist/backup.d.ts +28 -0
- package/dist/backup.d.ts.map +1 -0
- package/dist/backup.js +47 -0
- package/dist/backup.js.map +1 -0
- package/dist/cache/drivers/bun-sqlite.d.ts.map +1 -1
- package/dist/cache/drivers/node-sqlite.d.ts.map +1 -1
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +10 -4
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/open.d.ts.map +1 -1
- package/dist/cache/schema.d.ts.map +1 -1
- package/dist/cache/store.d.ts +7 -0
- package/dist/cache/store.d.ts.map +1 -1
- package/dist/cache/store.js +8 -0
- package/dist/cache/store.js.map +1 -1
- package/dist/client.d.ts +73 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +354 -66
- package/dist/client.js.map +1 -1
- package/dist/commands/backup.d.ts +3 -0
- package/dist/commands/backup.d.ts.map +1 -0
- package/dist/commands/backup.js +101 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/body.d.ts.map +1 -1
- package/dist/commands/body.js.map +1 -1
- package/dist/commands/cache.d.ts.map +1 -1
- package/dist/commands/cache.js +6 -5
- package/dist/commands/cache.js.map +1 -1
- package/dist/commands/chats.js +2 -2
- package/dist/commands/chats.js.map +1 -1
- package/dist/commands/complete.d.ts.map +1 -1
- package/dist/commands/complete.js +28 -22
- package/dist/commands/complete.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +5 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/contacts.d.ts.map +1 -1
- package/dist/commands/context.d.ts +4 -0
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +7 -15
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +136 -15
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/folders.js.map +1 -1
- package/dist/commands/mcp.js +3 -3
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/messages.d.ts.map +1 -1
- package/dist/commands/messages.js +6 -4
- package/dist/commands/messages.js.map +1 -1
- package/dist/commands/models.d.ts.map +1 -1
- package/dist/commands/models.js +29 -23
- package/dist/commands/models.js.map +1 -1
- package/dist/commands/paging.d.ts.map +1 -1
- package/dist/commands/recipients.d.ts.map +1 -1
- package/dist/commands/recipients.js +25 -17
- package/dist/commands/recipients.js.map +1 -1
- package/dist/commands/sends.d.ts.map +1 -1
- package/dist/commands/sends.js +8 -6
- package/dist/commands/sends.js.map +1 -1
- package/dist/commands/serve.d.ts +12 -0
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +10 -7
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/server.d.ts +7 -0
- package/dist/commands/server.d.ts.map +1 -0
- package/dist/commands/server.js +84 -0
- package/dist/commands/server.js.map +1 -0
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +10 -10
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/watch.d.ts +17 -0
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +73 -38
- package/dist/commands/watch.js.map +1 -1
- package/dist/config.d.ts +5 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -2
- package/dist/config.js.map +1 -1
- package/dist/deadline.d.ts.map +1 -1
- package/dist/diagnose.d.ts +17 -3
- package/dist/diagnose.d.ts.map +1 -1
- package/dist/diagnose.js +16 -4
- package/dist/diagnose.js.map +1 -1
- package/dist/domain/map.d.ts.map +1 -1
- package/dist/domain/map.js.map +1 -1
- package/dist/domain/models.d.ts +20 -0
- package/dist/domain/models.d.ts.map +1 -1
- package/dist/domain/models.js.map +1 -1
- package/dist/download.d.ts +22 -3
- package/dist/download.d.ts.map +1 -1
- package/dist/download.js +133 -27
- package/dist/download.js.map +1 -1
- package/dist/export.d.ts +10 -4
- package/dist/export.d.ts.map +1 -1
- package/dist/export.js +26 -18
- package/dist/export.js.map +1 -1
- package/dist/generated/client.generated.d.ts +10 -0
- package/dist/generated/client.generated.d.ts.map +1 -1
- package/dist/generated/client.generated.js +10 -0
- package/dist/generated/client.generated.js.map +1 -1
- package/dist/generated/opcodes.generated.d.ts +4 -0
- package/dist/generated/opcodes.generated.d.ts.map +1 -1
- package/dist/generated/opcodes.generated.js +4 -0
- package/dist/generated/opcodes.generated.js.map +1 -1
- package/dist/generated/operations.generated.d.ts +35 -1
- package/dist/generated/operations.generated.d.ts.map +1 -1
- package/dist/generated/operations.generated.js +8 -1
- package/dist/generated/operations.generated.js.map +1 -1
- package/dist/markdown.d.ts.map +1 -1
- package/dist/mcp/confirm.d.ts +19 -11
- package/dist/mcp/confirm.d.ts.map +1 -1
- package/dist/mcp/confirm.js +53 -29
- package/dist/mcp/confirm.js.map +1 -1
- package/dist/mcp/instructions.d.ts.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +9 -4
- package/dist/mcp/tools.js.map +1 -1
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +24 -2
- package/dist/output.js.map +1 -1
- package/dist/profile.d.ts.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +55 -5
- package/dist/program.js.map +1 -1
- package/dist/protocol/connection.d.ts +2 -0
- package/dist/protocol/connection.d.ts.map +1 -1
- package/dist/protocol/connection.js +27 -5
- package/dist/protocol/connection.js.map +1 -1
- package/dist/protocol/frame.d.ts +2 -0
- package/dist/protocol/frame.d.ts.map +1 -1
- package/dist/protocol/frame.js +3 -1
- package/dist/protocol/frame.js.map +1 -1
- package/dist/protocol/lz4.d.ts.map +1 -1
- package/dist/protocol/lz4.js +8 -5
- package/dist/protocol/lz4.js.map +1 -1
- package/dist/rendering/messages.d.ts.map +1 -1
- package/dist/rendering/messages.js +9 -10
- package/dist/rendering/messages.js.map +1 -1
- package/dist/report.d.ts +43 -0
- package/dist/report.d.ts.map +1 -0
- package/dist/report.js +91 -0
- package/dist/report.js.map +1 -0
- package/dist/resolve.d.ts +4 -3
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +9 -10
- package/dist/resolve.js.map +1 -1
- package/dist/runs/events.d.ts +21 -1
- package/dist/runs/events.d.ts.map +1 -1
- package/dist/runs/events.js +14 -1
- package/dist/runs/events.js.map +1 -1
- package/dist/runs/recording.d.ts +12 -0
- package/dist/runs/recording.d.ts.map +1 -1
- package/dist/runs/recording.js +83 -22
- package/dist/runs/recording.js.map +1 -1
- package/dist/runs/run.d.ts +11 -0
- package/dist/runs/run.d.ts.map +1 -1
- package/dist/runs/run.js +8 -1
- package/dist/runs/run.js.map +1 -1
- package/dist/sends/guard.d.ts +35 -4
- package/dist/sends/guard.d.ts.map +1 -1
- package/dist/sends/guard.js +128 -28
- package/dist/sends/guard.js.map +1 -1
- package/dist/sends/journal.d.ts +17 -3
- package/dist/sends/journal.d.ts.map +1 -1
- package/dist/sends/journal.js +62 -2
- package/dist/sends/journal.js.map +1 -1
- package/dist/sends/permissions.d.ts.map +1 -1
- package/dist/sends/permissions.js.map +1 -1
- package/dist/sends/recipients.d.ts +3 -1
- package/dist/sends/recipients.d.ts.map +1 -1
- package/dist/sends/recipients.js +7 -2
- package/dist/sends/recipients.js.map +1 -1
- package/dist/server/lines.d.ts +8 -2
- package/dist/server/lines.d.ts.map +1 -1
- package/dist/server/lines.js +13 -2
- package/dist/server/lines.js.map +1 -1
- package/dist/server/server-connection.d.ts +9 -6
- package/dist/server/server-connection.d.ts.map +1 -1
- package/dist/server/server-connection.js +16 -7
- package/dist/server/server-connection.js.map +1 -1
- package/dist/server/server.d.ts +21 -4
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +154 -17
- package/dist/server/server.js.map +1 -1
- package/dist/server/start.d.ts +3 -1
- package/dist/server/start.d.ts.map +1 -1
- package/dist/server/start.js +6 -1
- package/dist/server/start.js.map +1 -1
- package/dist/server/subscribe.d.ts.map +1 -1
- package/dist/session/adopt.d.ts.map +1 -1
- package/dist/session/browser.d.ts.map +1 -1
- package/dist/session/browser.js.map +1 -1
- package/dist/session/handshake.d.ts +17 -3
- package/dist/session/handshake.d.ts.map +1 -1
- package/dist/session/handshake.js +11 -5
- package/dist/session/handshake.js.map +1 -1
- package/dist/session/login.d.ts.map +1 -1
- package/dist/session/prompt.d.ts.map +1 -1
- package/dist/session/prompt.js +7 -1
- package/dist/session/prompt.js.map +1 -1
- package/dist/session/qr-terminal.d.ts.map +1 -1
- package/dist/session/store.d.ts +18 -1
- package/dist/session/store.d.ts.map +1 -1
- package/dist/session/store.js +32 -1
- package/dist/session/store.js.map +1 -1
- package/dist/spec/check.d.ts.map +1 -1
- package/dist/spec/define.d.ts +12 -0
- package/dist/spec/define.d.ts.map +1 -1
- package/dist/spec/define.js.map +1 -1
- package/dist/spec/guards.d.ts +16 -0
- package/dist/spec/guards.d.ts.map +1 -0
- package/dist/spec/guards.js +30 -0
- package/dist/spec/guards.js.map +1 -0
- package/dist/spec/identity.d.ts +39 -6
- package/dist/spec/identity.d.ts.map +1 -1
- package/dist/spec/identity.js +41 -12
- package/dist/spec/identity.js.map +1 -1
- package/dist/spec/index.d.ts.map +1 -1
- package/dist/spec/index.js +8 -1
- package/dist/spec/index.js.map +1 -1
- package/dist/spec/operations/account.d.ts.map +1 -1
- package/dist/spec/operations/account.js +3 -0
- package/dist/spec/operations/account.js.map +1 -1
- package/dist/spec/operations/assets.d.ts +10 -0
- package/dist/spec/operations/assets.d.ts.map +1 -0
- package/dist/spec/operations/assets.js +20 -0
- package/dist/spec/operations/assets.js.map +1 -0
- package/dist/spec/operations/attachments.d.ts.map +1 -1
- package/dist/spec/operations/attachments.js +2 -0
- package/dist/spec/operations/attachments.js.map +1 -1
- package/dist/spec/operations/banners.d.ts +7 -0
- package/dist/spec/operations/banners.d.ts.map +1 -0
- package/dist/spec/operations/banners.js +16 -0
- package/dist/spec/operations/banners.js.map +1 -0
- package/dist/spec/operations/calls.d.ts +8 -0
- package/dist/spec/operations/calls.d.ts.map +1 -0
- package/dist/spec/operations/calls.js +18 -0
- package/dist/spec/operations/calls.js.map +1 -0
- package/dist/spec/operations/chats.d.ts +5 -3
- package/dist/spec/operations/chats.d.ts.map +1 -1
- package/dist/spec/operations/chats.js +58 -9
- package/dist/spec/operations/chats.js.map +1 -1
- package/dist/spec/operations/contacts.d.ts.map +1 -1
- package/dist/spec/operations/contacts.js +8 -0
- package/dist/spec/operations/contacts.js.map +1 -1
- package/dist/spec/operations/folders.d.ts.map +1 -1
- package/dist/spec/operations/folders.js +5 -0
- package/dist/spec/operations/folders.js.map +1 -1
- package/dist/spec/operations/login.d.ts.map +1 -1
- package/dist/spec/operations/login.js +6 -0
- package/dist/spec/operations/login.js.map +1 -1
- package/dist/spec/operations/messages.d.ts.map +1 -1
- package/dist/spec/operations/messages.js +50 -0
- package/dist/spec/operations/messages.js.map +1 -1
- package/dist/spec/operations/session.d.ts +28 -1
- package/dist/spec/operations/session.d.ts.map +1 -1
- package/dist/spec/operations/session.js +47 -1
- package/dist/spec/operations/session.js.map +1 -1
- package/dist/spec/operations/uploads.d.ts.map +1 -1
- package/dist/spec/operations/uploads.js +2 -0
- package/dist/spec/operations/uploads.js.map +1 -1
- package/dist/spec/scalars.d.ts.map +1 -1
- package/dist/transcribe/index.d.ts.map +1 -1
- package/dist/transcribe/index.js +4 -1
- package/dist/transcribe/index.js.map +1 -1
- package/dist/transcribe/install.d.ts +3 -1
- package/dist/transcribe/install.d.ts.map +1 -1
- package/dist/transcribe/install.js +24 -1
- package/dist/transcribe/install.js.map +1 -1
- package/dist/transcribe/models.d.ts.map +1 -1
- package/dist/transcribe/speech.d.ts.map +1 -1
- package/dist/transcribe/speech.js.map +1 -1
- package/dist/update.d.ts.map +1 -1
- package/dist/update.js.map +1 -1
- package/dist/upload.d.ts +3 -1
- package/dist/upload.d.ts.map +1 -1
- package/dist/upload.js +34 -4
- package/dist/upload.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +18 -15
- package/skills/max-cli/SKILL.md +12 -1
- package/dist/testing/mock-max.d.ts +0 -49
- package/dist/testing/mock-max.d.ts.map +0 -1
- package/dist/testing/mock-max.js +0 -80
- package/dist/testing/mock-max.js.map +0 -1
- package/dist/testing/sandbox.d.ts +0 -2
- package/dist/testing/sandbox.d.ts.map +0 -1
- package/dist/testing/sandbox.js +0 -36
- package/dist/testing/sandbox.js.map +0 -1
- package/dist/testing/unscripted.d.ts +0 -2
- package/dist/testing/unscripted.d.ts.map +0 -1
- package/dist/testing/unscripted.js +0 -18
- package/dist/testing/unscripted.js.map +0 -1
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { Connection, type Wire, type WireEvent } from "../protocol/connection.js";
|
|
2
2
|
import { type Payload } from "../protocol/frame.js";
|
|
3
3
|
import type { SessionStore } from "../session/store.js";
|
|
4
|
+
import type { Operation } from "../spec/define.js";
|
|
4
5
|
/**
|
|
5
6
|
* **A command's connection: `max serve`'s, shared** (`MAX-35`, `NEED-229`).
|
|
6
7
|
*
|
|
7
8
|
* One connection to MAX per profile, whoever asks — CLI commands, `max mcp`, `max watch`. INIT
|
|
8
9
|
* and LOGIN are answered by the server's own login; **every other request goes over its
|
|
9
|
-
* connection, sends included**. The send guards
|
|
10
|
-
* before
|
|
10
|
+
* connection, sends included**. The server runs the send guards on every write and journals it;
|
|
11
|
+
* the command's client checks too, so a refusal comes before an upload, and journals only that.
|
|
11
12
|
*
|
|
12
13
|
* No server answering: `ensure` starts one and waits for it. A connection of the command's own
|
|
13
14
|
* is opened only when there is no `ensure` (the owner said `serve: false`) and no server, or for
|
|
@@ -24,15 +25,17 @@ export declare class ServerConnection implements Wire {
|
|
|
24
25
|
ensure?: () => Promise<boolean>;
|
|
25
26
|
});
|
|
26
27
|
open(): Promise<void>;
|
|
28
|
+
/** Whether the server is the one answering — and so the one writing the send journal. */
|
|
29
|
+
get journals(): boolean;
|
|
27
30
|
invoke(opcode: number, payload?: Payload, watch?: (event: WireEvent) => void): Promise<Payload>;
|
|
28
31
|
close(): Promise<void>;
|
|
29
32
|
}
|
|
30
33
|
/**
|
|
31
|
-
*
|
|
32
|
-
* QR or SMS is `max session start` on a connection of
|
|
33
|
-
*
|
|
34
|
+
* The operation the server passes on for this opcode, or `undefined` for one it does not: logging
|
|
35
|
+
* in is the server's own business, a login by QR or SMS is `max session start` on a connection of
|
|
36
|
+
* its own, and a reserved number is never sent at all.
|
|
34
37
|
*/
|
|
35
|
-
export declare const
|
|
38
|
+
export declare const forwardedOperation: (opcode: number) => Operation | undefined;
|
|
36
39
|
/**
|
|
37
40
|
* Asks a running server to stop. `"refused"` is a server started by hand, which only Ctrl-C
|
|
38
41
|
* stops; `"none"` is nobody listening.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-connection.d.ts","sourceRoot":"","sources":["../../src/server/server-connection.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAiB,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAChG,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"server-connection.d.ts","sourceRoot":"","sources":["../../src/server/server-connection.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAiB,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAChG,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AASlD;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAiB,YAAW,IAAI;;IAc3C,YAAY,EACV,IAAI,EACJ,KAAK,EACL,SAAkB,EAClB,MAAM,EACN,MAAM,GACP,EAAE;QACD,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,YAAY,CAAA;QACnB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,UAAU,CAAA;QACzB,yFAAyF;QACzF,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;KAChC,EAMA;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IAE9B,yFAAyF;IACzF,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAEK,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBxG;IA6BK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAS3B;CAsEF;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,WAAY,MAAM,KAAG,SAAS,GAAG,SAI7D,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,SAAU,MAAM;;MAA2B,OAAO,CAAC,SAAS,GAAG,SAAS,GAAG,MAAM,CAyBpG,CAAA;AAEJ,mFAAmF;AACnF,eAAO,MAAM,YAAY,SAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAenF,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { connect } from "node:net";
|
|
2
|
-
import { CliError } from "@leemour/cli-core";
|
|
2
|
+
import { CliError, errorCodes } from "@leemour/cli-core";
|
|
3
3
|
import { Opcode } from "../generated/opcodes.generated.js";
|
|
4
4
|
import { OPERATIONS } from "../generated/operations.generated.js";
|
|
5
5
|
import { Connection, ProtocolError } from "../protocol/connection.js";
|
|
@@ -10,8 +10,8 @@ import { fromLine, lineReader, toLine } from "./lines.js";
|
|
|
10
10
|
*
|
|
11
11
|
* One connection to MAX per profile, whoever asks — CLI commands, `max mcp`, `max watch`. INIT
|
|
12
12
|
* and LOGIN are answered by the server's own login; **every other request goes over its
|
|
13
|
-
* connection, sends included**. The send guards
|
|
14
|
-
* before
|
|
13
|
+
* connection, sends included**. The server runs the send guards on every write and journals it;
|
|
14
|
+
* the command's client checks too, so a refusal comes before an upload, and journals only that.
|
|
15
15
|
*
|
|
16
16
|
* No server answering: `ensure` starts one and waits for it. A connection of the command's own
|
|
17
17
|
* is opened only when there is no `ensure` (the owner said `serve: false`) and no server, or for
|
|
@@ -38,6 +38,10 @@ export class ServerConnection {
|
|
|
38
38
|
this.#direct = direct ?? (() => new Connection({ timeoutMs }));
|
|
39
39
|
}
|
|
40
40
|
async open() { }
|
|
41
|
+
/** Whether the server is the one answering — and so the one writing the send journal. */
|
|
42
|
+
get journals() {
|
|
43
|
+
return this.#login !== undefined && this.#own === undefined;
|
|
44
|
+
}
|
|
41
45
|
async invoke(opcode, payload = {}, watch) {
|
|
42
46
|
if (this.#own)
|
|
43
47
|
return this.#own.invoke(opcode, payload, watch);
|
|
@@ -116,6 +120,11 @@ export class ServerConnection {
|
|
|
116
120
|
socket.write(toLine({ id, ...request }));
|
|
117
121
|
});
|
|
118
122
|
const error = answer.error;
|
|
123
|
+
// The server's send guard: the same refusal, and so the same exit code, as the command's own.
|
|
124
|
+
if (error?.guard === true) {
|
|
125
|
+
const code = errorCodes.find((known) => known === error.code) ?? "permission_error";
|
|
126
|
+
throw new CliError(code, error.message ?? "the server's send guard refused it", error.details);
|
|
127
|
+
}
|
|
119
128
|
if (error?.code === "refused") {
|
|
120
129
|
throw new ProtocolError(error.message ?? "MAX refused it", Number(request.opcode), error.payload ?? null);
|
|
121
130
|
}
|
|
@@ -154,11 +163,11 @@ export class ServerConnection {
|
|
|
154
163
|
}
|
|
155
164
|
}
|
|
156
165
|
/**
|
|
157
|
-
*
|
|
158
|
-
* QR or SMS is `max session start` on a connection of
|
|
159
|
-
*
|
|
166
|
+
* The operation the server passes on for this opcode, or `undefined` for one it does not: logging
|
|
167
|
+
* in is the server's own business, a login by QR or SMS is `max session start` on a connection of
|
|
168
|
+
* its own, and a reserved number is never sent at all.
|
|
160
169
|
*/
|
|
161
|
-
export const
|
|
170
|
+
export const forwardedOperation = (opcode) => Object.values(OPERATIONS).find((operation) => operation.opcode === opcode && !operation.name.startsWith("session.") && !operation.name.startsWith("login."));
|
|
162
171
|
/**
|
|
163
172
|
* Asks a running server to stop. `"refused"` is a server started by hand, which only Ctrl-C
|
|
164
173
|
* stops; `"none"` is nobody listening.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-connection.js","sourceRoot":"","sources":["../../src/server/server-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"server-connection.js","sourceRoot":"","sources":["../../src/server/server-connection.ts"],"names":[],"mappings":"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"}
|
package/dist/server/server.d.ts
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import type { CacheStore } from "../cache/store.js";
|
|
2
2
|
import { type MaxClientOptions } from "../client.js";
|
|
3
|
-
import type { MessageHit } from "../domain/models.js";
|
|
3
|
+
import type { MessageChange, MessageHit } from "../domain/models.js";
|
|
4
4
|
import { Connection, type ConnectionOptions } from "../protocol/connection.js";
|
|
5
|
+
import { type SendGuard } from "../sends/guard.js";
|
|
5
6
|
import type { SessionStore } from "../session/store.js";
|
|
6
7
|
export type ServerEvent = {
|
|
7
8
|
event: "message";
|
|
8
9
|
message: MessageHit;
|
|
10
|
+
} | {
|
|
11
|
+
event: "change";
|
|
12
|
+
change: MessageChange;
|
|
9
13
|
} | {
|
|
10
14
|
event: "status";
|
|
11
15
|
connected: boolean;
|
|
@@ -20,8 +24,9 @@ export interface MaxServerOptions {
|
|
|
20
24
|
/** One line for a person, on stderr. */
|
|
21
25
|
note: (line: string) => void;
|
|
22
26
|
/** Tests hand in a scripted MAX; the hooks must reach it. */
|
|
23
|
-
connection?: (hooks: Pick<ConnectionOptions, "onEvent" | "onClose">) => Connection;
|
|
27
|
+
connection?: (hooks: Pick<ConnectionOptions, "onEvent" | "onClose" | "onError">) => Connection;
|
|
24
28
|
pingEveryMs?: number;
|
|
29
|
+
telemetryAfterMs?: number;
|
|
25
30
|
/** The least time between two background logins after the snapshot went stale. */
|
|
26
31
|
refreshEveryMs?: number;
|
|
27
32
|
retryAfterMs?: (attempt: number) => number;
|
|
@@ -37,6 +42,8 @@ export interface MaxServerOptions {
|
|
|
37
42
|
idleMs?: number;
|
|
38
43
|
/** One event per request, for `--trace` and the run log — pings included. */
|
|
39
44
|
events?: MaxClientOptions["events"];
|
|
45
|
+
/** Tests hand in their own; otherwise built from the profile's configuration for every write. */
|
|
46
|
+
guard?: () => SendGuard;
|
|
40
47
|
}
|
|
41
48
|
/**
|
|
42
49
|
* **One logged-in connection per profile, kept open** (`MAX-16`), and a Unix socket beside the
|
|
@@ -49,8 +56,9 @@ export interface MaxServerOptions {
|
|
|
49
56
|
* The socket answers `{"subscribe": true}` with a stream of `ServerEvent` lines and
|
|
50
57
|
* `{"status": true}` with one. For a command reusing the connection (`ServerConnection`) it answers
|
|
51
58
|
* `{"id", "login": true}` with the login it holds, and `{"id", "opcode", "payload"}` by passing the
|
|
52
|
-
* request to MAX —
|
|
53
|
-
*
|
|
59
|
+
* request to MAX — sends included (`NEED-229`). **Every write goes through the send guard here**,
|
|
60
|
+
* and is journaled here (`NEED-269`): anything of the owner's can write to this socket, not only a
|
|
61
|
+
* command that checked first. An operation the specification does not declare is not passed on.
|
|
54
62
|
*/
|
|
55
63
|
export declare class MaxServer {
|
|
56
64
|
#private;
|
|
@@ -62,6 +70,15 @@ export declare class MaxServer {
|
|
|
62
70
|
start(): Promise<void>;
|
|
63
71
|
stop(error?: Error): Promise<void>;
|
|
64
72
|
}
|
|
73
|
+
/** 1 s, 2 s, 4 s … a minute at most — a server that hammers MAX after a drop looks like nothing MAX knows. */
|
|
74
|
+
/**
|
|
75
|
+
* **MAX answered the login and said no** — as opposed to a network that dropped or a MAX that did
|
|
76
|
+
* not answer. Only those two are retried. A refusal is not: a token MAX no longer takes will not
|
|
77
|
+
* start working, and a login repeated after the limit error kept a PyMax account locked (PyMax
|
|
78
|
+
* #106). Any refusal counts, not only the recognised limit, because what that error says is a claim
|
|
79
|
+
* (`NEED-266`).
|
|
80
|
+
*/
|
|
81
|
+
export declare const refusedLogin: (error: unknown) => boolean;
|
|
65
82
|
/** Present while a server is being started in the background, so two commands do not start two. */
|
|
66
83
|
export declare const startingPath: (store: SessionStore) => string;
|
|
67
84
|
/** Whether something is listening on the socket — a live server, not a leftover file. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAA6B,KAAK,gBAAgB,EAAiC,MAAM,cAAc,CAAA;AAE9G,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEpE,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAiB,MAAM,2BAA2B,CAAA;AAE7F,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAOvD,MAAM,MAAM,WAAW,GACnB;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,GACzC;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GAC1C;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wCAAwC;IACxC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5B,6DAA6D;IAC7D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,KAAK,UAAU,CAAA;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kFAAkF;IAClF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,MAAM,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACnC,iGAAiG;IACjG,KAAK,CAAC,EAAE,MAAM,SAAS,CAAA;CACxB;AAuBD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,SAAS;;IA4BpB,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5B,YAAY,OAAO,EAAE,gBAAgB,EAQpC;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,2FAA2F;IACrF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA0B3B;IAEK,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBvC;CAmUF;AAsBD,8GAA8G;AAC9G;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,UAAW,OAAO,KAAG,OAE+D,CAAA;AAI7G,mGAAmG;AACnG,eAAO,MAAM,YAAY,UAAW,YAAY,KAAG,MAA0C,CAAA;AAE7F,yFAAyF;AACzF,eAAO,MAAM,OAAO,SAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CAQlD,CAAA"}
|
package/dist/server/server.js
CHANGED
|
@@ -2,16 +2,30 @@ import { chmodSync, mkdirSync, rmSync } from "node:fs";
|
|
|
2
2
|
import { connect, createServer } from "node:net";
|
|
3
3
|
import { dirname } from "node:path";
|
|
4
4
|
import { CliError } from "@leemour/cli-core";
|
|
5
|
-
import
|
|
5
|
+
import * as v from "valibot";
|
|
6
|
+
import { FIRST_TAB_SYNC, MaxClient } from "../client.js";
|
|
7
|
+
import { resolveSettings } from "../config.js";
|
|
6
8
|
import { Opcode } from "../generated/opcodes.generated.js";
|
|
7
9
|
import { Connection, ProtocolError } from "../protocol/connection.js";
|
|
10
|
+
import { asId } from "../protocol/frame.js";
|
|
11
|
+
import { guardFor } from "../sends/guard.js";
|
|
12
|
+
import { objectOf } from "../spec/guards.js";
|
|
8
13
|
import { VERSION } from "../version.js";
|
|
9
14
|
import { fromLine, lineReader, toLine } from "./lines.js";
|
|
10
|
-
import {
|
|
15
|
+
import { forwardedOperation, stopServer } from "./server-connection.js";
|
|
11
16
|
/** The web client's keep-alive interval (web.max.ru bundle, 2026-09-24). A different one is a fingerprint. */
|
|
12
17
|
const PING_EVERY_MS = 30_000;
|
|
18
|
+
/**
|
|
19
|
+
* A hidden web tab sends its one telemetry event this long after it opened, and nothing after
|
|
20
|
+
* (frames captured 2026-09-25, `docs/dev/capture/2026-09-25-web-tab.md`).
|
|
21
|
+
*/
|
|
22
|
+
const TELEMETRY_AFTER_MS = 20_000;
|
|
23
|
+
/** How long after its login answer the tab's chat list appeared in the same capture. */
|
|
24
|
+
const CHAT_LIST_SHOWN_AFTER_MS = 500;
|
|
13
25
|
/** A message arrived — what MAX pushes, and what a send through this server is handed on as. */
|
|
14
26
|
const NEW_MESSAGE = 128;
|
|
27
|
+
/** A request is a command's payload; a message with its markup is a few kilobytes. */
|
|
28
|
+
const MAX_REQUEST_LENGTH = 1024 * 1024;
|
|
15
29
|
/** A login MAX counts; after one, the next background login waits at least this long. */
|
|
16
30
|
const REFRESH_EVERY_MS = 60_000;
|
|
17
31
|
/**
|
|
@@ -25,8 +39,9 @@ const REFRESH_EVERY_MS = 60_000;
|
|
|
25
39
|
* The socket answers `{"subscribe": true}` with a stream of `ServerEvent` lines and
|
|
26
40
|
* `{"status": true}` with one. For a command reusing the connection (`ServerConnection`) it answers
|
|
27
41
|
* `{"id", "login": true}` with the login it holds, and `{"id", "opcode", "payload"}` by passing the
|
|
28
|
-
* request to MAX —
|
|
29
|
-
*
|
|
42
|
+
* request to MAX — sends included (`NEED-229`). **Every write goes through the send guard here**,
|
|
43
|
+
* and is journaled here (`NEED-269`): anything of the owner's can write to this socket, not only a
|
|
44
|
+
* command that checked first. An operation the specification does not declare is not passed on.
|
|
30
45
|
*/
|
|
31
46
|
export class MaxServer {
|
|
32
47
|
#options;
|
|
@@ -47,7 +62,14 @@ export class MaxServer {
|
|
|
47
62
|
#refresh;
|
|
48
63
|
#lastRefresh = 0;
|
|
49
64
|
#lastUse = Date.now();
|
|
65
|
+
#startedAt = new Date().toISOString();
|
|
50
66
|
#idle;
|
|
67
|
+
#telemetry;
|
|
68
|
+
/** What the last reads after login answered, sent back on the next login as the tab does (`MAX-52`). */
|
|
69
|
+
#tabSync = FIRST_TAB_SYNC;
|
|
70
|
+
/** The last connection's login, kept past a drop so the next login resumes it (`MAX-51`). */
|
|
71
|
+
#resume;
|
|
72
|
+
#handing = Promise.resolve();
|
|
51
73
|
#finish;
|
|
52
74
|
/** Settles when the server stops — cleanly, or with the error that stopped it. */
|
|
53
75
|
done;
|
|
@@ -67,6 +89,7 @@ export class MaxServer {
|
|
|
67
89
|
async start() {
|
|
68
90
|
// The socket first: whoever binds it is the profile's one server, and a second one learns it
|
|
69
91
|
// before it has logged in — not after, with a login MAX has already counted.
|
|
92
|
+
const sessionId = Date.now();
|
|
70
93
|
try {
|
|
71
94
|
await this.#listen();
|
|
72
95
|
await this.#connect();
|
|
@@ -78,6 +101,7 @@ export class MaxServer {
|
|
|
78
101
|
finally {
|
|
79
102
|
rmSync(startingPath(this.#options.store), { force: true });
|
|
80
103
|
}
|
|
104
|
+
this.#reportChatList(sessionId, Date.now() + CHAT_LIST_SHOWN_AFTER_MS);
|
|
81
105
|
const { idleMs } = this.#options;
|
|
82
106
|
if (idleMs !== undefined) {
|
|
83
107
|
this.#idle = setInterval(() => {
|
|
@@ -98,6 +122,7 @@ export class MaxServer {
|
|
|
98
122
|
clearTimeout(this.#retry);
|
|
99
123
|
clearTimeout(this.#refresh);
|
|
100
124
|
clearInterval(this.#idle);
|
|
125
|
+
clearTimeout(this.#telemetry);
|
|
101
126
|
for (const socket of this.#open)
|
|
102
127
|
socket.destroy();
|
|
103
128
|
this.#subscribers.clear();
|
|
@@ -132,11 +157,14 @@ export class MaxServer {
|
|
|
132
157
|
if (mine && mine === this.#client)
|
|
133
158
|
this.#lost(error);
|
|
134
159
|
},
|
|
160
|
+
onError: (error) => this.#options.note(`a pushed frame was dropped: ${error.message}`),
|
|
135
161
|
});
|
|
162
|
+
const resume = this.#client?.live.resumeFrom() ?? this.#resume;
|
|
136
163
|
const client = new MaxClient({
|
|
137
164
|
store,
|
|
138
165
|
connection,
|
|
139
166
|
fullLogin: true,
|
|
167
|
+
...(resume ? { resume } : {}),
|
|
140
168
|
warn: this.#options.note,
|
|
141
169
|
...(cache ? { cache } : {}),
|
|
142
170
|
...(events ? { events } : {}),
|
|
@@ -165,14 +193,39 @@ export class MaxServer {
|
|
|
165
193
|
this.#broadcast({ event: "status", connected: true, at: new Date().toISOString() });
|
|
166
194
|
for (const [opcode, payload] of early)
|
|
167
195
|
this.#pushed(client, opcode, payload);
|
|
196
|
+
client.live
|
|
197
|
+
.readLikeTab(this.#tabSync)
|
|
198
|
+
.then((next) => {
|
|
199
|
+
this.#tabSync = next;
|
|
200
|
+
})
|
|
201
|
+
.catch((error) => this.#options.note(`the reads after login were not all answered: ${error.message}`));
|
|
202
|
+
}
|
|
203
|
+
/** Once per server, never again after a reconnect: the tab it copies keeps its session too. */
|
|
204
|
+
#reportChatList(sessionId, at) {
|
|
205
|
+
const wait = Math.max(0, sessionId + (this.#options.telemetryAfterMs ?? TELEMETRY_AFTER_MS) - Date.now());
|
|
206
|
+
this.#telemetry = setTimeout(() => {
|
|
207
|
+
this.#client?.live
|
|
208
|
+
.chatListShown({ at, sessionId })
|
|
209
|
+
.catch((error) => this.#options.note(`telemetry was not sent: ${error.message}`));
|
|
210
|
+
}, wait);
|
|
168
211
|
}
|
|
169
212
|
#pushed(client, opcode, payload) {
|
|
170
213
|
if (!client.live.patch(opcode, payload))
|
|
171
214
|
this.#goneStale();
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
215
|
+
// In arrival order: an edit waits on a name lookup, and must not reach a watcher after the deletion behind it.
|
|
216
|
+
this.#handing = this.#handing.then(async () => {
|
|
217
|
+
try {
|
|
218
|
+
const message = await client.live.message(opcode, payload);
|
|
219
|
+
if (message)
|
|
220
|
+
this.#broadcast({ event: "message", message });
|
|
221
|
+
const change = await client.live.change(opcode, payload);
|
|
222
|
+
if (change)
|
|
223
|
+
this.#broadcast({ event: "change", change });
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
this.#options.note(`a pushed message could not be read: ${error.message}`);
|
|
227
|
+
}
|
|
228
|
+
});
|
|
176
229
|
}
|
|
177
230
|
/**
|
|
178
231
|
* The login can no longer be handed out. Rather than wait for a drop that may be hours away, log
|
|
@@ -185,7 +238,12 @@ export class MaxServer {
|
|
|
185
238
|
const wait = Math.max(0, this.#lastRefresh + every - Date.now());
|
|
186
239
|
this.#refresh = setTimeout(() => {
|
|
187
240
|
this.#connect()
|
|
188
|
-
.catch((error) =>
|
|
241
|
+
.catch((error) => {
|
|
242
|
+
if (refusedLogin(error))
|
|
243
|
+
void this.stop(error);
|
|
244
|
+
else
|
|
245
|
+
this.#options.note(`could not log in again: ${error.message}`);
|
|
246
|
+
})
|
|
189
247
|
.finally(() => {
|
|
190
248
|
this.#refresh = undefined;
|
|
191
249
|
});
|
|
@@ -194,6 +252,7 @@ export class MaxServer {
|
|
|
194
252
|
#lost(error) {
|
|
195
253
|
clearInterval(this.#ping);
|
|
196
254
|
const client = this.#client;
|
|
255
|
+
this.#resume = client?.live.resumeFrom();
|
|
197
256
|
this.#client = undefined;
|
|
198
257
|
this.#up = new Promise((resolve) => {
|
|
199
258
|
this.#markUp = resolve;
|
|
@@ -210,8 +269,7 @@ export class MaxServer {
|
|
|
210
269
|
this.#options.note(`${error.message} — connecting again in ${Math.round(wait / 1000)}s`);
|
|
211
270
|
this.#retry = setTimeout(() => {
|
|
212
271
|
this.#connect().catch((failure) => {
|
|
213
|
-
|
|
214
|
-
if (failure instanceof CliError && failure.code === "authentication_error")
|
|
272
|
+
if (refusedLogin(failure))
|
|
215
273
|
this.stop(failure);
|
|
216
274
|
else
|
|
217
275
|
this.#reconnectLater(failure);
|
|
@@ -240,6 +298,9 @@ export class MaxServer {
|
|
|
240
298
|
// Nobody answers on it, so it is what a crashed server left behind.
|
|
241
299
|
rmSync(path, { force: true });
|
|
242
300
|
mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
|
|
301
|
+
// The socket is open to everyone between `listen` and its `chmod`; only the directory keeps
|
|
302
|
+
// others out then, and `mkdirSync` leaves an existing one as it found it.
|
|
303
|
+
chmodSync(dirname(path), 0o700);
|
|
243
304
|
const listener = createServer((socket) => this.#serve(socket));
|
|
244
305
|
await new Promise((resolve, reject) => {
|
|
245
306
|
listener.once("error", reject);
|
|
@@ -258,7 +319,7 @@ export class MaxServer {
|
|
|
258
319
|
});
|
|
259
320
|
socket.on("data", lineReader((line) => {
|
|
260
321
|
this.#request(socket, line).catch(() => socket.destroy());
|
|
261
|
-
}));
|
|
322
|
+
}, { maxLength: MAX_REQUEST_LENGTH, onTooLong: () => socket.destroy() }));
|
|
262
323
|
}
|
|
263
324
|
async #request(socket, line) {
|
|
264
325
|
let request;
|
|
@@ -276,6 +337,7 @@ export class MaxServer {
|
|
|
276
337
|
byHand: !this.#options.startedByCommand,
|
|
277
338
|
pid: process.pid,
|
|
278
339
|
version: VERSION,
|
|
340
|
+
startedAt: this.#startedAt,
|
|
279
341
|
};
|
|
280
342
|
const { id } = request;
|
|
281
343
|
this.#lastUse = Date.now();
|
|
@@ -316,15 +378,63 @@ export class MaxServer {
|
|
|
316
378
|
async #forward(opcode, payload) {
|
|
317
379
|
await this.#up;
|
|
318
380
|
const client = this.#client;
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
};
|
|
381
|
+
const operation = forwardedOperation(opcode);
|
|
382
|
+
if (!operation) {
|
|
383
|
+
return { error: { code: "not_allowed", message: `opcode ${opcode} is not one the server passes on` } };
|
|
323
384
|
}
|
|
324
385
|
if (!client)
|
|
325
386
|
return { error: { code: "unavailable", message: "not connected" } };
|
|
387
|
+
const request = (payload ?? {});
|
|
388
|
+
// The shape the specification allows, checked here as `buildRequest` checks it in a command:
|
|
389
|
+
// an id crosses the socket as a `bigint`, and the schema reads the string it was built from.
|
|
390
|
+
if (!v.safeParse(operation.request, asStrings(request)).success) {
|
|
391
|
+
return refusal(new CliError("validation_error", `${operation.name}: not a request this version of max sends`));
|
|
392
|
+
}
|
|
393
|
+
if (!operation.guard)
|
|
394
|
+
return this.#pass(client, opcode, request);
|
|
395
|
+
let entry;
|
|
396
|
+
let guard;
|
|
397
|
+
try {
|
|
398
|
+
entry = operation.guard(request);
|
|
399
|
+
// Read again for every write, so `config set readOnly true` needs no restart.
|
|
400
|
+
guard =
|
|
401
|
+
this.#options.guard?.() ??
|
|
402
|
+
guardFor(resolveSettings({ profile: this.#options.store.profile }), this.#options.note);
|
|
403
|
+
}
|
|
404
|
+
catch (error) {
|
|
405
|
+
return refusal(error);
|
|
406
|
+
}
|
|
407
|
+
try {
|
|
408
|
+
guard.check(entry);
|
|
409
|
+
}
|
|
410
|
+
catch (error) {
|
|
411
|
+
guard.record({ ...entry, outcome: "refused", errorCode: asCliError(error).code });
|
|
412
|
+
return refusal(error);
|
|
413
|
+
}
|
|
414
|
+
return this.#sendJournaled(client, opcode, request, guard, entry);
|
|
415
|
+
}
|
|
416
|
+
async #sendJournaled(client, opcode, request, guard, entry) {
|
|
417
|
+
const answer = await this.#pass(client, opcode, request);
|
|
418
|
+
const error = answer.error;
|
|
419
|
+
if (!error) {
|
|
420
|
+
const reply = objectOf(answer.payload);
|
|
421
|
+
const messageId = asId(objectOf(reply.message).id);
|
|
422
|
+
const chatId = entry.chatId ?? asId(reply.chatId) ?? asId(objectOf(reply.chat).id) ?? null;
|
|
423
|
+
guard.record({ ...entry, chatId, ...(messageId ? { messageId } : {}), outcome: "sent" });
|
|
424
|
+
}
|
|
425
|
+
else if (error.code === "refused") {
|
|
426
|
+
// MAX's "not yet" while an upload is processed: the command asks again, and that is one message.
|
|
427
|
+
if (!error.message?.includes("attachment.not.ready")) {
|
|
428
|
+
guard.record({ ...entry, outcome: "failed", errorCode: "provider_error" });
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
else {
|
|
432
|
+
guard.record({ ...entry, outcome: "outcome_unknown", errorCode: "timeout" });
|
|
433
|
+
}
|
|
434
|
+
return answer;
|
|
435
|
+
}
|
|
436
|
+
async #pass(client, opcode, request) {
|
|
326
437
|
try {
|
|
327
|
-
const request = (payload ?? {});
|
|
328
438
|
const answer = await client.live.forward(opcode, request);
|
|
329
439
|
// MAX does not push a message back to the connection that sent it, and every send now comes
|
|
330
440
|
// through this one — so `max watch` would never see what `max` itself sent. The answer
|
|
@@ -346,7 +456,34 @@ export class MaxServer {
|
|
|
346
456
|
}
|
|
347
457
|
}
|
|
348
458
|
}
|
|
459
|
+
const asStrings = (value) => {
|
|
460
|
+
if (typeof value === "bigint")
|
|
461
|
+
return value.toString();
|
|
462
|
+
if (Array.isArray(value))
|
|
463
|
+
return value.map(asStrings);
|
|
464
|
+
if (typeof value === "object" && value !== null) {
|
|
465
|
+
return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, asStrings(item)]));
|
|
466
|
+
}
|
|
467
|
+
return value;
|
|
468
|
+
};
|
|
469
|
+
const asCliError = (error) => error instanceof CliError
|
|
470
|
+
? error
|
|
471
|
+
: new CliError("validation_error", error instanceof Error ? error.message : String(error));
|
|
472
|
+
/** `guard` tells the command's `ServerConnection` to rethrow it as the same error, exit code included. */
|
|
473
|
+
const refusal = (error) => {
|
|
474
|
+
const { code, message, details } = asCliError(error);
|
|
475
|
+
return { error: { code, message, details, guard: true } };
|
|
476
|
+
};
|
|
349
477
|
/** 1 s, 2 s, 4 s … a minute at most — a server that hammers MAX after a drop looks like nothing MAX knows. */
|
|
478
|
+
/**
|
|
479
|
+
* **MAX answered the login and said no** — as opposed to a network that dropped or a MAX that did
|
|
480
|
+
* not answer. Only those two are retried. A refusal is not: a token MAX no longer takes will not
|
|
481
|
+
* start working, and a login repeated after the limit error kept a PyMax account locked (PyMax
|
|
482
|
+
* #106). Any refusal counts, not only the recognised limit, because what that error says is a claim
|
|
483
|
+
* (`NEED-266`).
|
|
484
|
+
*/
|
|
485
|
+
export const refusedLogin = (error) => error instanceof CliError &&
|
|
486
|
+
(error.code === "authentication_error" || error.code === "rate_limited" || error.code === "provider_error");
|
|
350
487
|
const backoff = (attempt) => Math.min(60_000, 1000 * 2 ** attempt);
|
|
351
488
|
/** Present while a server is being started in the background, so two commands do not start two. */
|
|
352
489
|
export const startingPath = (store) => `${store.socketPath()}.starting`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
|
package/dist/server/start.d.ts
CHANGED
|
@@ -17,8 +17,8 @@ export declare const refusedPath: (store: SessionStore) => string;
|
|
|
17
17
|
/** Where a background server writes what it would have said on a terminal. */
|
|
18
18
|
export declare const logPath: (store: SessionStore) => string;
|
|
19
19
|
export declare const startInBackground: (store: SessionStore, { serveArgs, entry }?: {
|
|
20
|
-
serveArgs?: string[] | undefined;
|
|
21
20
|
entry?: string | undefined;
|
|
21
|
+
serveArgs?: string[] | undefined;
|
|
22
22
|
}) => number | undefined;
|
|
23
23
|
/**
|
|
24
24
|
* A server for this profile, answering — started if none is, waited for if another command is
|
|
@@ -31,4 +31,6 @@ export declare const ensureServer: (store: SessionStore) => Promise<boolean>;
|
|
|
31
31
|
* hand is the owner's to stop.
|
|
32
32
|
*/
|
|
33
33
|
export declare const replacedIfStale: (store: SessionStore) => Promise<boolean>;
|
|
34
|
+
/** The server outlives the command by minutes; a token it was not given for keeping stays behind. */
|
|
35
|
+
export declare const serverEnvironment: ({ MAX_TOKEN: _, ...env }: NodeJS.ProcessEnv, profile: string) => NodeJS.ProcessEnv;
|
|
34
36
|
//# sourceMappingURL=start.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/server/start.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAKvD,+DAA+D;AAC/D,eAAO,MAAM,OAAO,QAAc,CAAA;AAKlC;;;;GAIG;AACH,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/server/start.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAKvD,+DAA+D;AAC/D,eAAO,MAAM,OAAO,QAAc,CAAA;AAKlC;;;;GAIG;AACH,eAAO,MAAM,WAAW,UAAW,YAAY,KAAG,MAAyC,CAAA;AAK3F;;;;;;GAMG;AACH,8EAA8E;AAC9E,eAAO,MAAM,OAAO,UAAW,YAAY,KAAG,MAAkE,CAAA;AAEhH,eAAO,MAAM,iBAAiB,UACrB,YAAY;;;MAElB,MAAM,GAAG,SAyBX,CAAA;AAKD;;;GAGG;AACH,eAAO,MAAM,YAAY,UAAiB,YAAY,KAAG,OAAO,CAAC,OAAO,CAiBvE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,UAAiB,YAAY,KAAG,OAAO,CAAC,OAAO,CAI1E,CAAA;AAED,qGAAqG;AACrG,eAAO,MAAM,iBAAiB,6BAA8B,MAAM,CAAC,UAAU,WAAW,MAAM,KAAG,MAAM,CAAC,UAGtG,CAAA"}
|