@leemour/max-cli 0.1.0 → 0.3.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.
Files changed (109) hide show
  1. package/README.md +28 -12
  2. package/dist/cache/index.d.ts.map +1 -1
  3. package/dist/cache/index.js +3 -0
  4. package/dist/cache/index.js.map +1 -1
  5. package/dist/cache/schema.d.ts +13 -1
  6. package/dist/cache/schema.d.ts.map +1 -1
  7. package/dist/cache/schema.js +159 -8
  8. package/dist/cache/schema.js.map +1 -1
  9. package/dist/cache/store.d.ts +115 -4
  10. package/dist/cache/store.d.ts.map +1 -1
  11. package/dist/cache/store.js +248 -27
  12. package/dist/cache/store.js.map +1 -1
  13. package/dist/client.d.ts +91 -9
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +371 -33
  16. package/dist/client.js.map +1 -1
  17. package/dist/commands/chats.d.ts.map +1 -1
  18. package/dist/commands/chats.js +25 -8
  19. package/dist/commands/chats.js.map +1 -1
  20. package/dist/commands/contacts.d.ts.map +1 -1
  21. package/dist/commands/contacts.js +51 -5
  22. package/dist/commands/contacts.js.map +1 -1
  23. package/dist/commands/context.d.ts +4 -1
  24. package/dist/commands/context.d.ts.map +1 -1
  25. package/dist/commands/context.js +4 -2
  26. package/dist/commands/context.js.map +1 -1
  27. package/dist/commands/login.d.ts +15 -0
  28. package/dist/commands/login.d.ts.map +1 -0
  29. package/dist/commands/login.js +43 -0
  30. package/dist/commands/login.js.map +1 -0
  31. package/dist/commands/logout.d.ts +10 -0
  32. package/dist/commands/logout.d.ts.map +1 -0
  33. package/dist/commands/logout.js +22 -0
  34. package/dist/commands/logout.js.map +1 -0
  35. package/dist/commands/me.d.ts +3 -0
  36. package/dist/commands/me.d.ts.map +1 -0
  37. package/dist/commands/me.js +18 -0
  38. package/dist/commands/me.js.map +1 -0
  39. package/dist/commands/messages.d.ts.map +1 -1
  40. package/dist/commands/messages.js +82 -3
  41. package/dist/commands/messages.js.map +1 -1
  42. package/dist/commands/paging.d.ts +41 -0
  43. package/dist/commands/paging.d.ts.map +1 -0
  44. package/dist/commands/paging.js +54 -0
  45. package/dist/commands/paging.js.map +1 -0
  46. package/dist/commands/send.d.ts +10 -0
  47. package/dist/commands/send.d.ts.map +1 -0
  48. package/dist/commands/send.js +30 -0
  49. package/dist/commands/send.js.map +1 -0
  50. package/dist/commands/session.d.ts.map +1 -1
  51. package/dist/commands/session.js +3 -3
  52. package/dist/commands/session.js.map +1 -1
  53. package/dist/config.d.ts +16 -2
  54. package/dist/config.d.ts.map +1 -1
  55. package/dist/config.js +15 -1
  56. package/dist/config.js.map +1 -1
  57. package/dist/domain/map.d.ts +1 -0
  58. package/dist/domain/map.d.ts.map +1 -1
  59. package/dist/domain/map.js +44 -3
  60. package/dist/domain/map.js.map +1 -1
  61. package/dist/domain/models.d.ts +54 -0
  62. package/dist/domain/models.d.ts.map +1 -1
  63. package/dist/generated/operations.generated.d.ts +1 -0
  64. package/dist/generated/operations.generated.d.ts.map +1 -1
  65. package/dist/output.d.ts +7 -4
  66. package/dist/output.d.ts.map +1 -1
  67. package/dist/output.js +8 -11
  68. package/dist/output.js.map +1 -1
  69. package/dist/program.d.ts.map +1 -1
  70. package/dist/program.js +4 -2
  71. package/dist/program.js.map +1 -1
  72. package/dist/protocol/connection.d.ts +10 -0
  73. package/dist/protocol/connection.d.ts.map +1 -1
  74. package/dist/protocol/connection.js +11 -3
  75. package/dist/protocol/connection.js.map +1 -1
  76. package/dist/protocol/session.d.ts +54 -0
  77. package/dist/protocol/session.d.ts.map +1 -0
  78. package/dist/protocol/session.js +57 -0
  79. package/dist/protocol/session.js.map +1 -0
  80. package/dist/rendering/messages.d.ts +19 -0
  81. package/dist/rendering/messages.d.ts.map +1 -0
  82. package/dist/rendering/messages.js +137 -0
  83. package/dist/rendering/messages.js.map +1 -0
  84. package/dist/runs/events.d.ts +1 -1
  85. package/dist/runs/recording.d.ts +2 -2
  86. package/dist/runs/recording.d.ts.map +1 -1
  87. package/dist/runs/recording.js +3 -3
  88. package/dist/runs/recording.js.map +1 -1
  89. package/dist/session/adopt.d.ts +22 -0
  90. package/dist/session/adopt.d.ts.map +1 -0
  91. package/dist/session/adopt.js +29 -0
  92. package/dist/session/adopt.js.map +1 -0
  93. package/dist/session/handshake.d.ts +14 -1
  94. package/dist/session/handshake.d.ts.map +1 -1
  95. package/dist/session/handshake.js +5 -5
  96. package/dist/session/handshake.js.map +1 -1
  97. package/dist/spec/operations/auth.d.ts +42 -0
  98. package/dist/spec/operations/auth.d.ts.map +1 -0
  99. package/dist/spec/operations/session.d.ts +16 -0
  100. package/dist/spec/operations/session.d.ts.map +1 -1
  101. package/dist/spec/operations/session.js +21 -1
  102. package/dist/spec/operations/session.js.map +1 -1
  103. package/dist/testing/sandbox.d.ts +2 -0
  104. package/dist/testing/sandbox.d.ts.map +1 -0
  105. package/dist/testing/sandbox.js +24 -0
  106. package/dist/testing/sandbox.js.map +1 -0
  107. package/dist/version.d.ts +1 -1
  108. package/dist/version.js +1 -1
  109. package/package.json +9 -5
@@ -84,6 +84,22 @@ export const sessionLogin = defineOperation({
84
84
  * Left as `unknown` until somebody looks (`PROTO-6`). `pnpm probe:ids` reports its type and key count.
85
85
  */
86
86
  messages: v.optional(v.unknown()),
87
+ /**
88
+ * **A replacement for a credential that has aged** — measured on the real account 2026-09-22
89
+ * (`pnpm probe:token`). Logging in with a token pasted months earlier answers with a different
90
+ * one; logging in with *that* one answers with the same one back. So it is an exchange that
91
+ * happens once, not a rotation on every login.
92
+ *
93
+ * It was undeclared until then, so the exchange happened on every login and the client threw
94
+ * the result away, leaving the profile on whatever was pasted in months ago (`MAX-11`,
95
+ * `NEED-106`). The old token goes on working, which is why this is hygiene rather than repair.
96
+ * `NEED-8` had asserted the rotation in 2026-09-18 on the strength of `tsmax/src/app.ts:99` —
97
+ * somebody else's client — which is a claim; this is the measurement.
98
+ *
99
+ * ⚠ **It is a credential.** Nothing may print it, log it or put it in a fixture. `MaxClient`
100
+ * writes it to the keyring and never returns it.
101
+ */
102
+ token: v.optional(v.string()),
87
103
  presence: v.optional(v.unknown()),
88
104
  time: v.optional(v.number()),
89
105
  chatMarker: v.optional(v.unknown()),
@@ -92,7 +108,11 @@ export const sessionLogin = defineOperation({
92
108
  }),
93
109
  provenance: {
94
110
  confidence: "measured",
95
- sources: ["measured against MAX 2026-09-19", "measured against MAX 2026-09-20 (`messages` is an object)"],
111
+ sources: [
112
+ "measured against MAX 2026-09-19",
113
+ "measured against MAX 2026-09-20 (`messages` is an object)",
114
+ "measured against MAX 2026-09-22 (`token` replaces a stale credential once, then repeats)",
115
+ ],
96
116
  notes: "Unusually generous: the answer carries the profile, chats, contacts and recent messages, so `me` and `chats` need no further request.",
97
117
  },
98
118
  });
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/spec/operations/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/spec/operations/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/testing/sandbox.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ import { mkdtempSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ /**
5
+ * **Moves the whole installation into a temporary directory, for every test file.**
6
+ *
7
+ * A test that drives a command reads the real configuration file and opens the real cache — and
8
+ * opening the cache migrates it, which on a schema change means rebuilding it and throwing away
9
+ * what the owner had. That is not a hypothetical: on 2026-09-22 a test run did exactly that to a
10
+ * real machine, and the only reason it was noticed was a timestamp.
11
+ *
12
+ * It is a setup file rather than a hook in one test because the hazard belongs to any test that
13
+ * reaches a command, not to the file that happened to find it. **`pnpm test` must not be able to
14
+ * write anything a person owns**, and that has to be true of the next test file as well as this
15
+ * one.
16
+ *
17
+ * The three variables move config, state and cache together. They also scope the keyring entry
18
+ * (`ARCHITECTURE.md` §14) — the documented trap, which here is precisely the isolation wanted.
19
+ */
20
+ const sandbox = mkdtempSync(join(tmpdir(), "max-test-"));
21
+ process.env.MAX_CONFIG_DIR = join(sandbox, "config");
22
+ process.env.MAX_STATE_DIR = join(sandbox, "state");
23
+ process.env.MAX_CACHE_DIR = join(sandbox, "cache");
24
+ //# sourceMappingURL=sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/testing/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAA;AAExD,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACpD,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AAClD,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** The one the running command reports. `pnpm version:check` fails when it and package.json disagree. */
2
- export declare const VERSION = "0.1.0";
2
+ export declare const VERSION = "0.3.0";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** The one the running command reports. `pnpm version:check` fails when it and package.json disagree. */
2
- export const VERSION = "0.1.0";
2
+ export const VERSION = "0.3.0";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leemour/max-cli",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "A local command line interface for a personal MAX Messenger account, built for agents and scripts",
5
5
  "license": "MIT",
6
6
  "author": "Viacheslav Ptsarev",
@@ -24,16 +24,18 @@
24
24
  "@leemour/cli-core": "^0.1.0",
25
25
  "commander": "^15.0.0",
26
26
  "lossless-json": "^4.3.1",
27
+ "string-width": "^8.2.2",
27
28
  "valibot": "^1.5.0",
29
+ "wrap-ansi": "^10.0.2",
28
30
  "ws": "^8.19.0"
29
31
  },
30
32
  "devDependencies": {
31
33
  "@biomejs/biome": "^2.3.14",
32
34
  "@types/node": "^22.10.2",
33
35
  "@types/ws": "^8.18.1",
36
+ "lefthook": "^2.1.8",
34
37
  "typescript": "^5.9.3",
35
- "vitest": "^3.2.4",
36
- "lefthook": "^2.1.8"
38
+ "vitest": "^3.2.4"
37
39
  },
38
40
  "publishConfig": {
39
41
  "access": "public"
@@ -41,7 +43,7 @@
41
43
  "scripts": {
42
44
  "build": "tsc --build",
43
45
  "generate": "pnpm build && node --experimental-strip-types scripts/generate.ts && node --experimental-strip-types scripts/commands.ts",
44
- "typecheck": "tsc --build --force --emitDeclarationOnly && tsc -p tsconfig.test.json",
46
+ "typecheck": "tsc --build --force --emitDeclarationOnly && tsc -p tsconfig.test.json && tsc -p tsconfig.scripts.json",
45
47
  "lint": "biome check .",
46
48
  "lint:fix": "biome check --write .",
47
49
  "test": "vitest run",
@@ -51,8 +53,10 @@
51
53
  "version:sync": "node --experimental-strip-types scripts/version.ts --sync",
52
54
  "probe:ids": "pnpm build && node --experimental-strip-types scripts/id-shape.ts",
53
55
  "probe:edits": "pnpm build && node --experimental-strip-types scripts/probe-edits.ts",
56
+ "probe:attachments": "pnpm build && node --experimental-strip-types scripts/probe-attachments.ts",
54
57
  "verify:live": "pnpm build && node --experimental-strip-types scripts/verify-commands.ts",
55
58
  "secrets:scan": "gitleaks git --no-banner --redact .",
56
- "probe:contacts": "pnpm build && node --experimental-strip-types scripts/probe-contacts.ts"
59
+ "probe:contacts": "pnpm build && node --experimental-strip-types scripts/probe-contacts.ts",
60
+ "probe:token": "pnpm build && node --experimental-strip-types scripts/probe-token.ts"
57
61
  }
58
62
  }