@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.
Files changed (302) hide show
  1. package/README.md +24 -3
  2. package/dist/backup.d.ts +28 -0
  3. package/dist/backup.d.ts.map +1 -0
  4. package/dist/backup.js +47 -0
  5. package/dist/backup.js.map +1 -0
  6. package/dist/cache/drivers/bun-sqlite.d.ts.map +1 -1
  7. package/dist/cache/drivers/node-sqlite.d.ts.map +1 -1
  8. package/dist/cache/index.d.ts.map +1 -1
  9. package/dist/cache/index.js +10 -4
  10. package/dist/cache/index.js.map +1 -1
  11. package/dist/cache/open.d.ts.map +1 -1
  12. package/dist/cache/schema.d.ts.map +1 -1
  13. package/dist/cache/store.d.ts +7 -0
  14. package/dist/cache/store.d.ts.map +1 -1
  15. package/dist/cache/store.js +8 -0
  16. package/dist/cache/store.js.map +1 -1
  17. package/dist/client.d.ts +73 -3
  18. package/dist/client.d.ts.map +1 -1
  19. package/dist/client.js +354 -66
  20. package/dist/client.js.map +1 -1
  21. package/dist/commands/backup.d.ts +3 -0
  22. package/dist/commands/backup.d.ts.map +1 -0
  23. package/dist/commands/backup.js +101 -0
  24. package/dist/commands/backup.js.map +1 -0
  25. package/dist/commands/body.d.ts.map +1 -1
  26. package/dist/commands/body.js.map +1 -1
  27. package/dist/commands/cache.d.ts.map +1 -1
  28. package/dist/commands/cache.js +6 -5
  29. package/dist/commands/cache.js.map +1 -1
  30. package/dist/commands/chats.js +2 -2
  31. package/dist/commands/chats.js.map +1 -1
  32. package/dist/commands/complete.d.ts.map +1 -1
  33. package/dist/commands/complete.js +28 -22
  34. package/dist/commands/complete.js.map +1 -1
  35. package/dist/commands/config.d.ts.map +1 -1
  36. package/dist/commands/config.js +5 -1
  37. package/dist/commands/config.js.map +1 -1
  38. package/dist/commands/contacts.d.ts.map +1 -1
  39. package/dist/commands/context.d.ts +4 -0
  40. package/dist/commands/context.d.ts.map +1 -1
  41. package/dist/commands/context.js +7 -15
  42. package/dist/commands/context.js.map +1 -1
  43. package/dist/commands/doctor.d.ts.map +1 -1
  44. package/dist/commands/doctor.js +136 -15
  45. package/dist/commands/doctor.js.map +1 -1
  46. package/dist/commands/folders.js.map +1 -1
  47. package/dist/commands/mcp.js +3 -3
  48. package/dist/commands/mcp.js.map +1 -1
  49. package/dist/commands/messages.d.ts.map +1 -1
  50. package/dist/commands/messages.js +6 -4
  51. package/dist/commands/messages.js.map +1 -1
  52. package/dist/commands/models.d.ts.map +1 -1
  53. package/dist/commands/models.js +29 -23
  54. package/dist/commands/models.js.map +1 -1
  55. package/dist/commands/paging.d.ts.map +1 -1
  56. package/dist/commands/recipients.d.ts.map +1 -1
  57. package/dist/commands/recipients.js +25 -17
  58. package/dist/commands/recipients.js.map +1 -1
  59. package/dist/commands/sends.d.ts.map +1 -1
  60. package/dist/commands/sends.js +8 -6
  61. package/dist/commands/sends.js.map +1 -1
  62. package/dist/commands/serve.d.ts +12 -0
  63. package/dist/commands/serve.d.ts.map +1 -1
  64. package/dist/commands/serve.js +10 -7
  65. package/dist/commands/serve.js.map +1 -1
  66. package/dist/commands/server.d.ts +7 -0
  67. package/dist/commands/server.d.ts.map +1 -0
  68. package/dist/commands/server.js +84 -0
  69. package/dist/commands/server.js.map +1 -0
  70. package/dist/commands/session.d.ts.map +1 -1
  71. package/dist/commands/session.js +10 -10
  72. package/dist/commands/session.js.map +1 -1
  73. package/dist/commands/skill.js.map +1 -1
  74. package/dist/commands/watch.d.ts +17 -0
  75. package/dist/commands/watch.d.ts.map +1 -1
  76. package/dist/commands/watch.js +73 -38
  77. package/dist/commands/watch.js.map +1 -1
  78. package/dist/config.d.ts +5 -3
  79. package/dist/config.d.ts.map +1 -1
  80. package/dist/config.js +19 -2
  81. package/dist/config.js.map +1 -1
  82. package/dist/deadline.d.ts.map +1 -1
  83. package/dist/diagnose.d.ts +17 -3
  84. package/dist/diagnose.d.ts.map +1 -1
  85. package/dist/diagnose.js +16 -4
  86. package/dist/diagnose.js.map +1 -1
  87. package/dist/domain/map.d.ts.map +1 -1
  88. package/dist/domain/map.js.map +1 -1
  89. package/dist/domain/models.d.ts +20 -0
  90. package/dist/domain/models.d.ts.map +1 -1
  91. package/dist/domain/models.js.map +1 -1
  92. package/dist/download.d.ts +22 -3
  93. package/dist/download.d.ts.map +1 -1
  94. package/dist/download.js +133 -27
  95. package/dist/download.js.map +1 -1
  96. package/dist/export.d.ts +10 -4
  97. package/dist/export.d.ts.map +1 -1
  98. package/dist/export.js +26 -18
  99. package/dist/export.js.map +1 -1
  100. package/dist/generated/client.generated.d.ts +10 -0
  101. package/dist/generated/client.generated.d.ts.map +1 -1
  102. package/dist/generated/client.generated.js +10 -0
  103. package/dist/generated/client.generated.js.map +1 -1
  104. package/dist/generated/opcodes.generated.d.ts +4 -0
  105. package/dist/generated/opcodes.generated.d.ts.map +1 -1
  106. package/dist/generated/opcodes.generated.js +4 -0
  107. package/dist/generated/opcodes.generated.js.map +1 -1
  108. package/dist/generated/operations.generated.d.ts +35 -1
  109. package/dist/generated/operations.generated.d.ts.map +1 -1
  110. package/dist/generated/operations.generated.js +8 -1
  111. package/dist/generated/operations.generated.js.map +1 -1
  112. package/dist/markdown.d.ts.map +1 -1
  113. package/dist/mcp/confirm.d.ts +19 -11
  114. package/dist/mcp/confirm.d.ts.map +1 -1
  115. package/dist/mcp/confirm.js +53 -29
  116. package/dist/mcp/confirm.js.map +1 -1
  117. package/dist/mcp/instructions.d.ts.map +1 -1
  118. package/dist/mcp/server.d.ts.map +1 -1
  119. package/dist/mcp/session.d.ts.map +1 -1
  120. package/dist/mcp/session.js.map +1 -1
  121. package/dist/mcp/tools.d.ts.map +1 -1
  122. package/dist/mcp/tools.js +9 -4
  123. package/dist/mcp/tools.js.map +1 -1
  124. package/dist/output.d.ts.map +1 -1
  125. package/dist/output.js +24 -2
  126. package/dist/output.js.map +1 -1
  127. package/dist/profile.d.ts.map +1 -1
  128. package/dist/program.d.ts.map +1 -1
  129. package/dist/program.js +55 -5
  130. package/dist/program.js.map +1 -1
  131. package/dist/protocol/connection.d.ts +2 -0
  132. package/dist/protocol/connection.d.ts.map +1 -1
  133. package/dist/protocol/connection.js +27 -5
  134. package/dist/protocol/connection.js.map +1 -1
  135. package/dist/protocol/frame.d.ts +2 -0
  136. package/dist/protocol/frame.d.ts.map +1 -1
  137. package/dist/protocol/frame.js +3 -1
  138. package/dist/protocol/frame.js.map +1 -1
  139. package/dist/protocol/lz4.d.ts.map +1 -1
  140. package/dist/protocol/lz4.js +8 -5
  141. package/dist/protocol/lz4.js.map +1 -1
  142. package/dist/rendering/messages.d.ts.map +1 -1
  143. package/dist/rendering/messages.js +9 -10
  144. package/dist/rendering/messages.js.map +1 -1
  145. package/dist/report.d.ts +43 -0
  146. package/dist/report.d.ts.map +1 -0
  147. package/dist/report.js +91 -0
  148. package/dist/report.js.map +1 -0
  149. package/dist/resolve.d.ts +4 -3
  150. package/dist/resolve.d.ts.map +1 -1
  151. package/dist/resolve.js +9 -10
  152. package/dist/resolve.js.map +1 -1
  153. package/dist/runs/events.d.ts +21 -1
  154. package/dist/runs/events.d.ts.map +1 -1
  155. package/dist/runs/events.js +14 -1
  156. package/dist/runs/events.js.map +1 -1
  157. package/dist/runs/recording.d.ts +12 -0
  158. package/dist/runs/recording.d.ts.map +1 -1
  159. package/dist/runs/recording.js +83 -22
  160. package/dist/runs/recording.js.map +1 -1
  161. package/dist/runs/run.d.ts +11 -0
  162. package/dist/runs/run.d.ts.map +1 -1
  163. package/dist/runs/run.js +8 -1
  164. package/dist/runs/run.js.map +1 -1
  165. package/dist/sends/guard.d.ts +35 -4
  166. package/dist/sends/guard.d.ts.map +1 -1
  167. package/dist/sends/guard.js +128 -28
  168. package/dist/sends/guard.js.map +1 -1
  169. package/dist/sends/journal.d.ts +17 -3
  170. package/dist/sends/journal.d.ts.map +1 -1
  171. package/dist/sends/journal.js +62 -2
  172. package/dist/sends/journal.js.map +1 -1
  173. package/dist/sends/permissions.d.ts.map +1 -1
  174. package/dist/sends/permissions.js.map +1 -1
  175. package/dist/sends/recipients.d.ts +3 -1
  176. package/dist/sends/recipients.d.ts.map +1 -1
  177. package/dist/sends/recipients.js +7 -2
  178. package/dist/sends/recipients.js.map +1 -1
  179. package/dist/server/lines.d.ts +8 -2
  180. package/dist/server/lines.d.ts.map +1 -1
  181. package/dist/server/lines.js +13 -2
  182. package/dist/server/lines.js.map +1 -1
  183. package/dist/server/server-connection.d.ts +9 -6
  184. package/dist/server/server-connection.d.ts.map +1 -1
  185. package/dist/server/server-connection.js +16 -7
  186. package/dist/server/server-connection.js.map +1 -1
  187. package/dist/server/server.d.ts +21 -4
  188. package/dist/server/server.d.ts.map +1 -1
  189. package/dist/server/server.js +154 -17
  190. package/dist/server/server.js.map +1 -1
  191. package/dist/server/start.d.ts +3 -1
  192. package/dist/server/start.d.ts.map +1 -1
  193. package/dist/server/start.js +6 -1
  194. package/dist/server/start.js.map +1 -1
  195. package/dist/server/subscribe.d.ts.map +1 -1
  196. package/dist/session/adopt.d.ts.map +1 -1
  197. package/dist/session/browser.d.ts.map +1 -1
  198. package/dist/session/browser.js.map +1 -1
  199. package/dist/session/handshake.d.ts +17 -3
  200. package/dist/session/handshake.d.ts.map +1 -1
  201. package/dist/session/handshake.js +11 -5
  202. package/dist/session/handshake.js.map +1 -1
  203. package/dist/session/login.d.ts.map +1 -1
  204. package/dist/session/prompt.d.ts.map +1 -1
  205. package/dist/session/prompt.js +7 -1
  206. package/dist/session/prompt.js.map +1 -1
  207. package/dist/session/qr-terminal.d.ts.map +1 -1
  208. package/dist/session/store.d.ts +18 -1
  209. package/dist/session/store.d.ts.map +1 -1
  210. package/dist/session/store.js +32 -1
  211. package/dist/session/store.js.map +1 -1
  212. package/dist/spec/check.d.ts.map +1 -1
  213. package/dist/spec/define.d.ts +12 -0
  214. package/dist/spec/define.d.ts.map +1 -1
  215. package/dist/spec/define.js.map +1 -1
  216. package/dist/spec/guards.d.ts +16 -0
  217. package/dist/spec/guards.d.ts.map +1 -0
  218. package/dist/spec/guards.js +30 -0
  219. package/dist/spec/guards.js.map +1 -0
  220. package/dist/spec/identity.d.ts +39 -6
  221. package/dist/spec/identity.d.ts.map +1 -1
  222. package/dist/spec/identity.js +41 -12
  223. package/dist/spec/identity.js.map +1 -1
  224. package/dist/spec/index.d.ts.map +1 -1
  225. package/dist/spec/index.js +8 -1
  226. package/dist/spec/index.js.map +1 -1
  227. package/dist/spec/operations/account.d.ts.map +1 -1
  228. package/dist/spec/operations/account.js +3 -0
  229. package/dist/spec/operations/account.js.map +1 -1
  230. package/dist/spec/operations/assets.d.ts +10 -0
  231. package/dist/spec/operations/assets.d.ts.map +1 -0
  232. package/dist/spec/operations/assets.js +20 -0
  233. package/dist/spec/operations/assets.js.map +1 -0
  234. package/dist/spec/operations/attachments.d.ts.map +1 -1
  235. package/dist/spec/operations/attachments.js +2 -0
  236. package/dist/spec/operations/attachments.js.map +1 -1
  237. package/dist/spec/operations/banners.d.ts +7 -0
  238. package/dist/spec/operations/banners.d.ts.map +1 -0
  239. package/dist/spec/operations/banners.js +16 -0
  240. package/dist/spec/operations/banners.js.map +1 -0
  241. package/dist/spec/operations/calls.d.ts +8 -0
  242. package/dist/spec/operations/calls.d.ts.map +1 -0
  243. package/dist/spec/operations/calls.js +18 -0
  244. package/dist/spec/operations/calls.js.map +1 -0
  245. package/dist/spec/operations/chats.d.ts +5 -3
  246. package/dist/spec/operations/chats.d.ts.map +1 -1
  247. package/dist/spec/operations/chats.js +58 -9
  248. package/dist/spec/operations/chats.js.map +1 -1
  249. package/dist/spec/operations/contacts.d.ts.map +1 -1
  250. package/dist/spec/operations/contacts.js +8 -0
  251. package/dist/spec/operations/contacts.js.map +1 -1
  252. package/dist/spec/operations/folders.d.ts.map +1 -1
  253. package/dist/spec/operations/folders.js +5 -0
  254. package/dist/spec/operations/folders.js.map +1 -1
  255. package/dist/spec/operations/login.d.ts.map +1 -1
  256. package/dist/spec/operations/login.js +6 -0
  257. package/dist/spec/operations/login.js.map +1 -1
  258. package/dist/spec/operations/messages.d.ts.map +1 -1
  259. package/dist/spec/operations/messages.js +50 -0
  260. package/dist/spec/operations/messages.js.map +1 -1
  261. package/dist/spec/operations/session.d.ts +28 -1
  262. package/dist/spec/operations/session.d.ts.map +1 -1
  263. package/dist/spec/operations/session.js +47 -1
  264. package/dist/spec/operations/session.js.map +1 -1
  265. package/dist/spec/operations/uploads.d.ts.map +1 -1
  266. package/dist/spec/operations/uploads.js +2 -0
  267. package/dist/spec/operations/uploads.js.map +1 -1
  268. package/dist/spec/scalars.d.ts.map +1 -1
  269. package/dist/transcribe/index.d.ts.map +1 -1
  270. package/dist/transcribe/index.js +4 -1
  271. package/dist/transcribe/index.js.map +1 -1
  272. package/dist/transcribe/install.d.ts +3 -1
  273. package/dist/transcribe/install.d.ts.map +1 -1
  274. package/dist/transcribe/install.js +24 -1
  275. package/dist/transcribe/install.js.map +1 -1
  276. package/dist/transcribe/models.d.ts.map +1 -1
  277. package/dist/transcribe/speech.d.ts.map +1 -1
  278. package/dist/transcribe/speech.js.map +1 -1
  279. package/dist/update.d.ts.map +1 -1
  280. package/dist/update.js.map +1 -1
  281. package/dist/upload.d.ts +3 -1
  282. package/dist/upload.d.ts.map +1 -1
  283. package/dist/upload.js +34 -4
  284. package/dist/upload.js.map +1 -1
  285. package/dist/version.d.ts +1 -1
  286. package/dist/version.d.ts.map +1 -1
  287. package/dist/version.js +1 -1
  288. package/dist/version.js.map +1 -1
  289. package/package.json +18 -15
  290. package/skills/max-cli/SKILL.md +12 -1
  291. package/dist/testing/mock-max.d.ts +0 -49
  292. package/dist/testing/mock-max.d.ts.map +0 -1
  293. package/dist/testing/mock-max.js +0 -80
  294. package/dist/testing/mock-max.js.map +0 -1
  295. package/dist/testing/sandbox.d.ts +0 -2
  296. package/dist/testing/sandbox.d.ts.map +0 -1
  297. package/dist/testing/sandbox.js +0 -36
  298. package/dist/testing/sandbox.js.map +0 -1
  299. package/dist/testing/unscripted.d.ts +0 -2
  300. package/dist/testing/unscripted.d.ts.map +0 -1
  301. package/dist/testing/unscripted.js +0 -18
  302. package/dist/testing/unscripted.js.map +0 -1
@@ -22,6 +22,7 @@ export const foldersList = defineOperation({
22
22
  foldersOrder: v.optional(v.array(v.unknown())),
23
23
  folderSync: v.optional(v.number()),
24
24
  }),
25
+ guard: null,
25
26
  provenance: {
26
27
  confidence: "measured",
27
28
  sources: [
@@ -38,6 +39,9 @@ export const foldersUpdate = defineOperation({
38
39
  auth: true,
39
40
  request: v.strictObject(Folder),
40
41
  response: v.looseObject({ folder: v.optional(v.looseObject({})), folderSync: v.optional(v.number()) }),
42
+ // A new folder and a changed one look the same on the wire — both carry an id — so the journal
43
+ // calls both an update; either needs the same permission.
44
+ guard: () => ({ chatId: null, kind: "account", action: "folder-update" }),
41
45
  provenance: {
42
46
  confidence: "measured",
43
47
  sources: [
@@ -55,6 +59,7 @@ export const foldersDelete = defineOperation({
55
59
  auth: true,
56
60
  request: v.strictObject({ folderIds: v.array(v.pipe(v.string(), v.minLength(1))) }),
57
61
  response: v.looseObject({}),
62
+ guard: () => ({ chatId: null, kind: "account", action: "folder-delete" }),
58
63
  provenance: {
59
64
  confidence: "measured",
60
65
  sources: ["measured against MAX 2026-09-24 (`pnpm probe:account`)", webClient, "PyMax 53103f0 `delete_folder`"],
@@ -1 +1 @@
1
- {"version":3,"file":"folders.js","sourceRoot":"","sources":["../../../src/spec/operations/folders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"folders.js","sourceRoot":"","sources":["../../../src/spec/operations/folders.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/spec/operations/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAe5B,eAAO,MAAM,cAAc;;;;;cAgBzB,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;cAexB,CAAA;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;cAWpB,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;cAa1B,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;cAQvB,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;cAYxB,CAAA;AAEF,eAAO,MAAM,SAAS,oCAOpB,CAAA"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/spec/operations/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAe5B,eAAO,MAAM,cAAc;;;;;cAiBzB,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;cAgBxB,CAAA;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;cAYpB,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;cAc1B,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;cASvB,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;cAaxB,CAAA;AAEF,eAAO,MAAM,SAAS,oCAOpB,CAAA"}
@@ -22,6 +22,7 @@ export const loginQrRequest = defineOperation({
22
22
  pollingInterval: v.number(),
23
23
  expiresAt: v.number(),
24
24
  }),
25
+ guard: null,
25
26
  provenance: {
26
27
  confidence: "measured",
27
28
  sources: ["measured against MAX 2026-09-24: `session start qr` logged in", PYMAX, DOCS],
@@ -36,6 +37,7 @@ export const loginQrStatus = defineOperation({
36
37
  response: v.looseObject({
37
38
  status: v.looseObject({ expiresAt: v.optional(v.number()), loginAvailable: v.optional(v.boolean()) }),
38
39
  }),
40
+ guard: null,
39
41
  provenance: {
40
42
  confidence: "measured",
41
43
  sources: ["measured against MAX 2026-09-24: `session start qr` logged in", PYMAX, DOCS],
@@ -49,6 +51,7 @@ export const loginByQr = defineOperation({
49
51
  auth: false,
50
52
  request: v.strictObject({ trackId: v.string() }),
51
53
  response: v.looseObject(Issued),
54
+ guard: null,
52
55
  provenance: {
53
56
  confidence: "measured",
54
57
  sources: ["measured against MAX 2026-09-24: `session start qr` logged in", PYMAX],
@@ -61,6 +64,7 @@ export const loginSmsRequest = defineOperation({
61
64
  auth: false,
62
65
  request: v.strictObject({ phone: v.string(), type: v.literal("START_AUTH"), language: v.string() }),
63
66
  response: v.looseObject({ token: v.string(), codeLength: v.optional(v.number()) }),
67
+ guard: null,
64
68
  provenance: {
65
69
  confidence: "confirmed",
66
70
  sources: [PYMAX, DOCS],
@@ -74,6 +78,7 @@ export const loginSmsCode = defineOperation({
74
78
  auth: false,
75
79
  request: v.strictObject({ token: v.string(), verifyCode: v.string(), authTokenType: v.literal("CHECK_CODE") }),
76
80
  response: v.looseObject(Issued),
81
+ guard: null,
77
82
  provenance: { confidence: "confirmed", sources: [PYMAX, DOCS] },
78
83
  });
79
84
  export const loginPassword = defineOperation({
@@ -83,6 +88,7 @@ export const loginPassword = defineOperation({
83
88
  auth: false,
84
89
  request: v.strictObject({ trackId: v.string(), password: v.string() }),
85
90
  response: v.looseObject({ tokenAttrs: Issued.tokenAttrs, error: v.optional(v.string()) }),
91
+ guard: null,
86
92
  provenance: {
87
93
  confidence: "measured",
88
94
  sources: ["measured against MAX 2026-09-24: `session start qr` on an account with a cloud password", PYMAX],
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/spec/operations/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/spec/operations/login.ts"],"names":[],"mappings":"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"}
@@ -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;AAI5B,eAAO,MAAM,YAAY;;;QASjB,2FAA2F;;QAE3F;;;WAGG;;QAEH,+GAA+G;;;;;;;QAG/G,+FAA+F;;;;;;;;;QAQ/F;;;;WAIG;;;;;;;;;;;;;;;;;;;;;cAwCT,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;IAUrB,2FAA2F;;;;cAgB7F,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;cAiB5B,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;;;cAqBxB,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;cAY1B,CAAA;AAEF,eAAO,MAAM,cAAc;;;;kDAczB,CAAA"}
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;;;;kDAoBzB,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import * as v from "valibot";
2
2
  import { defineOperation } from "../define.js";
3
+ import { ambiguous, chatOf, countOf, messageOf, objectOf, peopleOf } from "../guards.js";
3
4
  import { id } from "../scalars.js";
4
5
  export const messagesSend = defineOperation({
5
6
  name: "messages.send",
@@ -56,6 +57,40 @@ export const messagesSend = defineOperation({
56
57
  }),
57
58
  ]),
58
59
  response: v.looseObject({ message: v.optional(v.looseObject({})), chat: v.optional(v.looseObject({})) }),
60
+ guard: (request) => {
61
+ const message = objectOf(request.message);
62
+ const cid = typeof message.cid === "number" ? { cid: message.cid } : {};
63
+ const [control] = Array.isArray(message.attaches) ? message.attaches.map(objectOf) : [];
64
+ if (request.chatId === undefined && control?._type === "CONTROL" && control.event === "new") {
65
+ return {
66
+ chatId: null,
67
+ kind: "chat",
68
+ action: "create",
69
+ people: countOf(control.userIds),
70
+ personIds: peopleOf(control.userIds),
71
+ ...cid,
72
+ };
73
+ }
74
+ const chatId = chatOf(request);
75
+ // A control attachment changes a chat; in a message it would pass as a plain send.
76
+ if (Array.isArray(message.attaches) && message.attaches.some((attach) => objectOf(attach)._type === "CONTROL")) {
77
+ return ambiguous("messages.send");
78
+ }
79
+ const link = objectOf(message.link);
80
+ const at = objectOf(message.delayedAttributes).timeToFire;
81
+ if (link.type === "FORWARD") {
82
+ if (typeof message.text === "string" && message.text !== "")
83
+ return ambiguous("messages.send");
84
+ return { chatId, kind: "forward", ...cid };
85
+ }
86
+ return {
87
+ chatId,
88
+ kind: "message",
89
+ ...cid,
90
+ length: typeof message.text === "string" ? message.text.length : 0,
91
+ ...(typeof at === "number" ? { scheduledFor: new Date(at).toISOString() } : {}),
92
+ };
93
+ },
59
94
  provenance: {
60
95
  confidence: "measured",
61
96
  sources: [
@@ -84,6 +119,12 @@ export const messagesEdit = defineOperation({
84
119
  attachments: v.array(v.unknown()),
85
120
  }),
86
121
  response: v.looseObject({ message: v.optional(v.looseObject({})) }),
122
+ guard: (request) => ({
123
+ chatId: chatOf(request),
124
+ kind: "edit",
125
+ ...messageOf(request),
126
+ length: typeof request.text === "string" ? request.text.length : 0,
127
+ }),
87
128
  provenance: {
88
129
  confidence: "measured",
89
130
  sources: [
@@ -103,6 +144,7 @@ export const messagesReactions = defineOperation({
103
144
  auth: true,
104
145
  request: v.strictObject({ chatId: id(), messageIds: v.array(id()) }),
105
146
  response: v.looseObject({ messagesReactions: v.optional(v.looseObject({})) }),
147
+ guard: null,
106
148
  provenance: {
107
149
  confidence: "measured",
108
150
  sources: [
@@ -124,6 +166,7 @@ export const messagesReact = defineOperation({
124
166
  reaction: v.strictObject({ reactionType: v.literal("EMOJI"), id: v.string() }),
125
167
  }),
126
168
  response: v.looseObject({ reactionInfo: v.optional(v.looseObject({})) }),
169
+ guard: (request) => ({ chatId: chatOf(request), kind: "reaction", ...messageOf(request) }),
127
170
  provenance: {
128
171
  confidence: "measured",
129
172
  sources: [
@@ -141,6 +184,7 @@ export const messagesUnreact = defineOperation({
141
184
  auth: true,
142
185
  request: v.strictObject({ chatId: id(), messageId: id() }),
143
186
  response: v.looseObject({ reactionInfo: v.optional(v.looseObject({})) }),
187
+ guard: (request) => ({ chatId: chatOf(request), kind: "reaction", ...messageOf(request) }),
144
188
  provenance: {
145
189
  confidence: "measured",
146
190
  sources: ["measured against MAX 2026-09-24 in Saved messages", "tsmax removeReaction", "PyMax remove_reaction"],
@@ -154,6 +198,12 @@ export const messagesDelete = defineOperation({
154
198
  auth: true,
155
199
  request: v.strictObject({ chatId: id(), messageIds: v.array(id()), forMe: v.boolean() }),
156
200
  response: v.looseObject({}),
201
+ guard: (request) => ({
202
+ chatId: chatOf(request),
203
+ kind: "delete",
204
+ count: Math.max(1, countOf(request.messageIds)),
205
+ forEveryone: request.forMe === false,
206
+ }),
157
207
  provenance: {
158
208
  confidence: "observed",
159
209
  sources: ["PyMax 2.4.1 `delete_message`", "tsmax"],
@@ -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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"}
@@ -6,6 +6,29 @@ import * as v from "valibot";
6
6
  export declare const sessionPing: import("../define.js").Operation<v.StrictObjectSchema<{
7
7
  readonly interactive: v.BooleanSchema<undefined>;
8
8
  }, undefined>, v.LooseObjectSchema<{}, undefined>>;
9
+ /**
10
+ * **Telemetry, and only the one event a hidden web tab sends** (`MAX-8`): the chat list shown,
11
+ * 20 s after the tab opened. A one-shot command never sends it — a hidden tab closed that soon
12
+ * sends nothing either. Why exactly this and nothing more: `docs/dev/capture/requirements.md`.
13
+ *
14
+ * The request is strict and literal on purpose: anything beyond this one event claims a person in
15
+ * front of a visible tab, which is a different decision.
16
+ */
17
+ export declare const sessionLog: import("../define.js").Operation<v.StrictObjectSchema<{
18
+ readonly events: v.ArraySchema<v.StrictObjectSchema<{
19
+ readonly type: v.LiteralSchema<"NAV", undefined>;
20
+ readonly userId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
21
+ readonly time: v.NumberSchema<undefined>;
22
+ readonly sessionId: v.NumberSchema<undefined>;
23
+ readonly event: v.LiteralSchema<"GO", undefined>;
24
+ readonly params: v.StrictObjectSchema<{
25
+ readonly action_id: v.LiteralSchema<1, undefined>;
26
+ readonly screen_to: v.LiteralSchema<150, undefined>;
27
+ readonly prev_time: v.LiteralSchema<0, undefined>;
28
+ readonly source_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
29
+ }, undefined>;
30
+ }, undefined>, undefined>;
31
+ }, undefined>, v.LooseObjectSchema<{}, undefined>>;
9
32
  export declare const sessionInit: import("../define.js").Operation<v.StrictObjectSchema<{
10
33
  readonly userAgent: v.StrictObjectSchema<{
11
34
  readonly deviceType: v.LiteralSchema<"WEB", undefined>;
@@ -34,7 +57,8 @@ export declare const sessionLogin: import("../define.js").Operation<v.StrictObje
34
57
  /**
35
58
  * **Delta markers, not flags** — measured 2026-09-20. Each is a moment in time, and MAX
36
59
  * returns only what changed in that collection since it. `0` means "everything", which is what
37
- * `src/session/handshake.ts` sends and is why every command re-fetches the whole list.
60
+ * `src/session/handshake.ts` sends and is why every command re-fetches the whole list — except
61
+ * a `max serve` re-login, which sends its newest chat event in `chatsSync` (`MAX-51`).
38
62
  *
39
63
  * The measurement, on a real account: `0` returned 6 contacts and 25 chats; the `time` the
40
64
  * previous login answered with returned 0 and 0; a week earlier returned 1 and 11. The last of
@@ -47,6 +71,9 @@ export declare const sessionLogin: import("../define.js").Operation<v.StrictObje
47
71
  readonly contactsSync: v.NumberSchema<undefined>;
48
72
  readonly presenceSync: v.NumberSchema<undefined>;
49
73
  readonly draftsSync: v.NumberSchema<undefined>;
74
+ /** Only when the same connection's owner logs in again — `resume` in `src/session/handshake.ts` (`MAX-51`). */
75
+ readonly lastLogin: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
76
+ readonly configHash: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
50
77
  }, undefined>, v.LooseObjectSchema<{
51
78
  readonly profile: v.OptionalSchema<v.LooseObjectSchema<{}, undefined>, undefined>;
52
79
  readonly chats: v.OptionalSchema<v.ArraySchema<v.LooseObjectSchema<{}, undefined>, undefined>, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/spec/operations/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAuB5B;;;GAGG;AACH,eAAO,MAAM,WAAW;;kDAYtB,CAAA;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;kDAYtB,CAAA;AAEF,eAAO,MAAM,YAAY;;;IAUrB;;;;OAIG;;IAEH;;;;;;;;;;;OAWG;;;;;;;;;IAUH;;;;;;;;;;;;;;OAcG;;IAEH;;;;;;;;;;;;;;OAcG;;;;;;;cAkBL,CAAA;AAEF,eAAO,MAAM,MAAM,oCAOjB,CAAA"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/spec/operations/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAwB5B;;;GAGG;AACH,eAAO,MAAM,WAAW;;kDAatB,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;kDA+BrB,CAAA;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;kDAatB,CAAA;AAEF,eAAO,MAAM,YAAY;;;IAUrB;;;;OAIG;;IAEH;;;;;;;;;;;;OAYG;;;;;IAKH,+GAA+G;;;;;;;IAQ/G;;;;;;;;;;;;;;OAcG;;IAEH;;;;;;;;;;;;;;OAcG;;;;;;;cAmBL,CAAA;AAEF,eAAO,MAAM,MAAM,oCAOjB,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import * as v from "valibot";
2
2
  import { defineOperation, reserveOpcode } from "../define.js";
3
+ import { id } from "../scalars.js";
3
4
  /**
4
5
  * What we claim to be, as a shape rather than a constant.
5
6
  *
@@ -30,12 +31,51 @@ export const sessionPing = defineOperation({
30
31
  auth: true,
31
32
  request: v.strictObject({ interactive: v.boolean() }),
32
33
  response: v.looseObject({}),
34
+ guard: null,
33
35
  provenance: {
34
36
  confidence: "confirmed",
35
37
  sources: ["web.max.ru bundle read 2026-09-24: `cmd(1, {interactive})` every 30 s", "PyMax Opcode.PING = 1"],
36
38
  notes: "MAX pings too; `Connection` answers those itself when it is live.",
37
39
  },
38
40
  });
41
+ /**
42
+ * **Telemetry, and only the one event a hidden web tab sends** (`MAX-8`): the chat list shown,
43
+ * 20 s after the tab opened. A one-shot command never sends it — a hidden tab closed that soon
44
+ * sends nothing either. Why exactly this and nothing more: `docs/dev/capture/requirements.md`.
45
+ *
46
+ * The request is strict and literal on purpose: anything beyond this one event claims a person in
47
+ * front of a visible tab, which is a different decision.
48
+ */
49
+ export const sessionLog = defineOperation({
50
+ name: "session.log",
51
+ constant: "LOG",
52
+ opcode: 5,
53
+ auth: true,
54
+ request: v.strictObject({
55
+ events: v.array(v.strictObject({
56
+ type: v.literal("NAV"),
57
+ userId: id(),
58
+ time: v.number(),
59
+ sessionId: v.number(),
60
+ event: v.literal("GO"),
61
+ params: v.strictObject({
62
+ action_id: v.literal(1),
63
+ screen_to: v.literal(150),
64
+ prev_time: v.literal(0),
65
+ source_id: id(),
66
+ }),
67
+ })),
68
+ }),
69
+ response: v.looseObject({}),
70
+ guard: null,
71
+ provenance: {
72
+ confidence: "observed",
73
+ sources: [
74
+ "web.max.ru frames captured 2026-09-25 (docs/dev/capture/2026-09-25-web-tab.md): a hidden tab's only event, answered with an empty body",
75
+ "ids wrapped in extension 1 and times plain: inferred from the frame's unpacked size, 144 bytes, which only that encoding gives",
76
+ ],
77
+ },
78
+ });
39
79
  export const sessionInit = defineOperation({
40
80
  name: "session.init",
41
81
  constant: "SESSION_INIT",
@@ -43,6 +83,7 @@ export const sessionInit = defineOperation({
43
83
  auth: false,
44
84
  request: v.strictObject({ userAgent: WebUserAgent, deviceId: v.string() }),
45
85
  response: v.looseObject({}),
86
+ guard: null,
46
87
  provenance: {
47
88
  confidence: "measured",
48
89
  sources: ["measured against MAX 2026-09-19", "max-api-docs/protocol/auth.md", "tsmax createWebAgent"],
@@ -68,7 +109,8 @@ export const sessionLogin = defineOperation({
68
109
  /**
69
110
  * **Delta markers, not flags** — measured 2026-09-20. Each is a moment in time, and MAX
70
111
  * returns only what changed in that collection since it. `0` means "everything", which is what
71
- * `src/session/handshake.ts` sends and is why every command re-fetches the whole list.
112
+ * `src/session/handshake.ts` sends and is why every command re-fetches the whole list — except
113
+ * a `max serve` re-login, which sends its newest chat event in `chatsSync` (`MAX-51`).
72
114
  *
73
115
  * The measurement, on a real account: `0` returned 6 contacts and 25 chats; the `time` the
74
116
  * previous login answered with returned 0 and 0; a week earlier returned 1 and 11. The last of
@@ -81,6 +123,9 @@ export const sessionLogin = defineOperation({
81
123
  contactsSync: v.number(),
82
124
  presenceSync: v.number(),
83
125
  draftsSync: v.number(),
126
+ /** Only when the same connection's owner logs in again — `resume` in `src/session/handshake.ts` (`MAX-51`). */
127
+ lastLogin: v.optional(v.number()),
128
+ configHash: v.optional(v.string()),
84
129
  }),
85
130
  response: v.looseObject({
86
131
  profile: v.optional(v.looseObject({})),
@@ -124,6 +169,7 @@ export const sessionLogin = defineOperation({
124
169
  config: v.optional(v.unknown()),
125
170
  videoChatHistory: v.optional(v.unknown()),
126
171
  }),
172
+ guard: null,
127
173
  provenance: {
128
174
  confidence: "measured",
129
175
  sources: [
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/spec/operations/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE7D;;;;;GAKG;AACH,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC;IACzC,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;IACrD,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;IAC3B,UAAU,EAAE;QACV,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,CAAC,uEAAuE,EAAE,uBAAuB,CAAC;QAC3G,KAAK,EAAE,mEAAmE;KAC3E;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC;IACzC,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAC1E,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;IAC3B,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,CAAC,iCAAiC,EAAE,+BAA+B,EAAE,sBAAsB,CAAC;QACrG,KAAK,EAAE,2DAA2D;KACnE;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC;QACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,2FAA2F;QAC3F,gFAAgF;QAChF,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3E;;;;WAIG;QACH,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7B;;;;;;;;;;;WAWG;QACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;KACvB,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC;QACtB,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACtC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD;;;;;;;;;;;;;;WAcG;QACH,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACjC;;;;;;;;;;;;;;WAcG;QACH,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5B,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/B,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;KAC1C,CAAC;IACF,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;YACP,iCAAiC;YACjC,2DAA2D;YAC3D,0FAA0F;SAC3F;QACD,KAAK,EACH,uIAAuI;KAC1I;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC;IAClC,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,EAAE;IACV,MAAM,EACJ,sMAAsM;IACxM,UAAU,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,+BAA+B,CAAC,EAAE;CACnF,CAAC,CAAA"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/spec/operations/session.ts"],"names":[],"mappings":"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"}
@@ -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;;;;;;;cAavB,CAAA;AAEF,eAAO,MAAM,WAAW;;;;;;;cAatB,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"}
@@ -13,6 +13,7 @@ export const uploadsPhoto = defineOperation({
13
13
  auth: true,
14
14
  request: uploadRequest,
15
15
  response: v.looseObject({ url: v.optional(v.string()) }),
16
+ guard: null,
16
17
  provenance: {
17
18
  confidence: "measured",
18
19
  sources: ["measured against MAX 2026-09-24 in Saved messages (`pnpm probe:upload`)", "PyMax upload_photo"],
@@ -26,6 +27,7 @@ export const uploadsFile = defineOperation({
26
27
  auth: true,
27
28
  request: uploadRequest,
28
29
  response: v.looseObject({ info: v.optional(v.array(v.looseObject({}))) }),
30
+ guard: null,
29
31
  provenance: {
30
32
  confidence: "measured",
31
33
  sources: ["measured against MAX 2026-09-24 in Saved messages (`pnpm probe:upload`)", "PyMax upload_file"],
@@ -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,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,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":"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 +1 @@
1
- {"version":3,"file":"scalars.d.ts","sourceRoot":"","sources":["../../src/spec/scalars.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAgB5B,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,KAAG,MAAuB,CAAA;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,EAAE,uKACkG,CAAA;AAEjH;;;;GAIG;AACH,eAAO,MAAM,MAAM,mHAAsD,CAAA"}
1
+ {"version":3,"file":"scalars.d.ts","sourceRoot":"","sources":["../../src/spec/scalars.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAgB5B,eAAO,MAAM,QAAQ,UAAW,MAAM,KAAG,MAAuB,CAAA;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,EAAE,uKACkG,CAAA;AAEjH;;;;GAIG;AACH,eAAO,MAAM,MAAM,mHAAsD,CAAA"}
@@ -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,EAAE,KAAK,WAAW,EAAO,MAAM,aAAa,CAAA;AACnD,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,GAAI,OAAO,WAAW,KAAG,QAKhD,CAAA;AAKH;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GACrB,QAAQ,SAAS,EACjB,QAAQ,EAAE,EACV,WAAW,EAAE,EACb,wDAAqF,iBAAiB,KACrG,OAAO,CAAC,UAAU,CA0BpB,CAAA"}
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,EAAE,KAAK,WAAW,EAAO,MAAM,aAAa,CAAA;AACnD,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,QAKhD,CAAA;AAKH;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,WACb,SAAS,UACT,EAAE,aACC,EAAE,0DACwE,iBAAiB,KACrG,OAAO,CAAC,UAAU,CAgCpB,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { CliError } from "@leemour/cli-core";
2
- import { fetchBytes } from "../download.js";
2
+ import { fetchBytes, LARGEST_VOICE } from "../download.js";
3
3
  import { installedBytes, isInstalled, megabytes, modelPath, vadPath } from "./install.js";
4
4
  import { VAD } from "./models.js";
5
5
  import { decodeOgg, openRecognizer, toModelRate } from "./speech.js";
@@ -26,6 +26,9 @@ export const transcribe = async (client, chatId, messageId, { model, directory,
26
26
  throw new CliError("validation_error", `message ${messageId} has no voice recording to transcribe`);
27
27
  const bytes = await fetchAudio(voice);
28
28
  await release?.();
29
+ if (bytes.length > LARGEST_VOICE) {
30
+ throw new CliError("validation_error", `the recording is larger than ${LARGEST_VOICE / 1024 ** 2} MiB — not decoded`);
31
+ }
29
32
  const { samples, rate } = await decodeOgg(bytes).catch((error) => {
30
33
  throw new CliError("invalid_response", `the recording could not be read as Ogg Opus: ${error.message}`);
31
34
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transcribe/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transcribe/index.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,9 @@ export declare const vadPath: (directory: string) => string;
9
9
  */
10
10
  export declare const isInstalled: (model: SpeechModel, directory: string) => boolean;
11
11
  export declare const installedBytes: (model: SpeechModel) => number;
12
- export type Fetch = (url: string) => Promise<Response>;
12
+ export type Fetch = (url: string, init?: {
13
+ signal?: AbortSignal;
14
+ }) => Promise<Response>;
13
15
  export declare const install: (model: SpeechModel, directory: string, { fetch: get, progress }?: {
14
16
  fetch?: Fetch;
15
17
  progress?: (line: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/transcribe/install.ts"],"names":[],"mappings":"AAOA,OAAO,EAAkB,KAAK,WAAW,EAAO,MAAM,aAAa,CAAA;AAEnE,sGAAsG;AACtG,eAAO,MAAM,eAAe,GAAI,MAAK,MAAM,CAAC,UAAwB,KAAG,MACkB,CAAA;AAEzF,eAAO,MAAM,SAAS,GAAI,WAAW,MAAM,EAAE,OAAO,WAAW,MAAM,MAAM,MAAM,WAAoC,CAAA;AAErH,eAAO,MAAM,OAAO,GAAI,WAAW,MAAM,KAAG,MAAmC,CAAA;AAO/E;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,WAAW,EAAE,WAAW,MAAM,KAAG,OACW,CAAA;AAU/E,eAAO,MAAM,cAAc,GAAI,OAAO,WAAW,KAAG,MAAgE,CAAA;AAEpH,MAAM,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtD,eAAO,MAAM,OAAO,GAClB,OAAO,WAAW,EAClB,WAAW,MAAM,EACjB,2BAAkC;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,KAC1F,OAAO,CAAC,IAAI,CAOd,CAAA;AAqCD,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,MACgC,CAAA"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/transcribe/install.ts"],"names":[],"mappings":"AAQA,OAAO,EAAkB,KAAK,WAAW,EAAO,MAAM,aAAa,CAAA;AAEnE,sGAAsG;AACtG,eAAO,MAAM,eAAe,SAAS,MAAM,CAAC,UAAU,KAAiB,MACkB,CAAA;AAEzF,eAAO,MAAM,SAAS,cAAe,MAAM,SAAS,WAAW,YAAY,MAAM,WAAoC,CAAA;AAErH,eAAO,MAAM,OAAO,cAAe,MAAM,KAAG,MAAmC,CAAA;AAO/E;;;GAGG;AACH,eAAO,MAAM,WAAW,UAAW,WAAW,aAAa,MAAM,KAAG,OACW,CAAA;AAU/E,eAAO,MAAM,cAAc,UAAW,WAAW,KAAG,MAAgE,CAAA;AAEpH,MAAM,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvF,eAAO,MAAM,OAAO,UACX,WAAW,aACP,MAAM,6BACiB;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,KACrF,OAAO,CAAC,IAAI,CAOd,CAAA;AA+DD,eAAO,MAAM,SAAS,UAAW,MAAM,KAAG,MACgC,CAAA"}
@@ -5,6 +5,7 @@ import { join } from "node:path";
5
5
  import { Readable, Transform } from "node:stream";
6
6
  import { pipeline } from "node:stream/promises";
7
7
  import { CliError, resolvePaths } from "@leemour/cli-core";
8
+ import { STALL_MS, watchdog } from "../download.js";
8
9
  import { VAD } from "./models.js";
9
10
  /** Beside the profile caches, so `max cache clear` — which empties a database — leaves them alone. */
10
11
  export const modelsDirectory = (env = process.env) => join(resolvePaths({ appName: "max-cli", prefix: "MAX", env }).cache, "models", "audio");
@@ -38,15 +39,37 @@ export const install = async (model, directory, { fetch: get = fetch, progress }
38
39
  }
39
40
  };
40
41
  const fetchVerified = async (file, path, get) => {
41
- const response = await get(file.url);
42
+ const stalled = watchdog(STALL_MS);
43
+ try {
44
+ await fetchInto(file, path, get, stalled);
45
+ }
46
+ catch (error) {
47
+ if (stalled.signal.aborted) {
48
+ throw new CliError("timeout", `${file.name} stopped downloading for ${STALL_MS / 1000} s — nothing was installed`);
49
+ }
50
+ throw error;
51
+ }
52
+ finally {
53
+ stalled.stop();
54
+ }
55
+ };
56
+ const fetchInto = async (file, path, get, stalled) => {
57
+ const response = await get(file.url, { signal: stalled.signal });
42
58
  if (!response.ok || !response.body) {
43
59
  await response.body?.cancel();
44
60
  throw new CliError("network_error", `${file.name} could not be downloaded: HTTP ${response.status}`);
45
61
  }
46
62
  const partial = `${path}.${process.pid}.part`;
47
63
  const hash = createHash("sha256");
64
+ let bytes = 0;
48
65
  const hashing = new Transform({
49
66
  transform(chunk, _encoding, done) {
67
+ stalled.poke();
68
+ bytes += chunk.length;
69
+ if (bytes > file.bytes) {
70
+ done(new CliError("invalid_response", `${file.name} is larger than this version of max expects — nothing was installed`));
71
+ return;
72
+ }
50
73
  hash.update(chunk);
51
74
  done(null, chunk);
52
75
  },
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/transcribe/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/transcribe/install.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/transcribe/models.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,0FAA0F;IAC1F,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnE,UAAU,EAAE,MAAM,CAAA;CACnB;AAeD,eAAO,MAAM,MAAM,EAAE,WAAW,EAqG/B,CAAA;AAED,0GAA0G;AAC1G,eAAO,MAAM,GAAG,EAAE,SAKjB,CAAA;AAED,eAAO,MAAM,aAAa,cAAc,CAAA;AAExC,eAAO,MAAM,SAAS,GAAI,IAAI,MAAM,KAAG,WAAW,GAAG,SAAoD,CAAA;AAEzG,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,KAAG,WASxC,CAAA"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/transcribe/models.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,0FAA0F;IAC1F,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnE,UAAU,EAAE,MAAM,CAAA;CACnB;AAeD,eAAO,MAAM,MAAM,EAAE,WAAW,EAqG/B,CAAA;AAED,0GAA0G;AAC1G,eAAO,MAAM,GAAG,EAAE,SAKjB,CAAA;AAED,eAAO,MAAM,aAAa,cAAc,CAAA;AAExC,eAAO,MAAM,SAAS,OAAQ,MAAM,KAAG,WAAW,GAAG,SAAoD,CAAA;AAEzG,eAAO,MAAM,WAAW,OAAQ,MAAM,KAAG,WASxC,CAAA"}
@@ -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,GAAI,SAAS,YAAY,EAAE,MAAM,MAAM,KAAG,YAYjE,CAAA;AAED,eAAO,MAAM,SAAS,GAAU,OAAO,UAAU,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAYlG,CAAA;AAyBD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,UAAU,MAAM,KAAG,UAwDrG,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;AAyBD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAAW,WAAW,QAAQ,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,YAAY,MAAM,KAAG,UAwDrG,CAAA"}