@leemour/max-cli 0.16.0 → 0.17.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 (173) hide show
  1. package/README.md +56 -37
  2. package/dist/bot/transport.d.ts +4 -0
  3. package/dist/bot/transport.d.ts.map +1 -1
  4. package/dist/bot/transport.js +43 -3
  5. package/dist/bot/transport.js.map +1 -1
  6. package/dist/bot-mcp/server.d.ts.map +1 -1
  7. package/dist/bot-mcp/server.js +21 -7
  8. package/dist/bot-mcp/server.js.map +1 -1
  9. package/dist/client.d.ts +18 -10
  10. package/dist/client.d.ts.map +1 -1
  11. package/dist/client.js +51 -29
  12. package/dist/client.js.map +1 -1
  13. package/dist/commands/account.d.ts.map +1 -1
  14. package/dist/commands/account.js +7 -5
  15. package/dist/commands/account.js.map +1 -1
  16. package/dist/commands/backup.js +1 -1
  17. package/dist/commands/backup.js.map +1 -1
  18. package/dist/commands/bot-check.d.ts +2 -2
  19. package/dist/commands/bot-check.d.ts.map +1 -1
  20. package/dist/commands/bot-check.js +4 -4
  21. package/dist/commands/bot-check.js.map +1 -1
  22. package/dist/commands/bot-comments.d.ts.map +1 -1
  23. package/dist/commands/bot-comments.js +2 -1
  24. package/dist/commands/bot-comments.js.map +1 -1
  25. package/dist/commands/bot-context.d.ts +7 -0
  26. package/dist/commands/bot-context.d.ts.map +1 -1
  27. package/dist/commands/bot-context.js +32 -2
  28. package/dist/commands/bot-context.js.map +1 -1
  29. package/dist/commands/bot-members.d.ts.map +1 -1
  30. package/dist/commands/bot-members.js +7 -4
  31. package/dist/commands/bot-members.js.map +1 -1
  32. package/dist/commands/bot-people.d.ts.map +1 -1
  33. package/dist/commands/bot-people.js +3 -3
  34. package/dist/commands/bot-people.js.map +1 -1
  35. package/dist/commands/bot-reads.d.ts.map +1 -1
  36. package/dist/commands/bot-reads.js +11 -6
  37. package/dist/commands/bot-reads.js.map +1 -1
  38. package/dist/commands/bot-sends.d.ts.map +1 -1
  39. package/dist/commands/bot-sends.js +6 -5
  40. package/dist/commands/bot-sends.js.map +1 -1
  41. package/dist/commands/bot-setup.d.ts.map +1 -1
  42. package/dist/commands/bot-setup.js +5 -4
  43. package/dist/commands/bot-setup.js.map +1 -1
  44. package/dist/commands/bot.d.ts.map +1 -1
  45. package/dist/commands/bot.js +7 -3
  46. package/dist/commands/bot.js.map +1 -1
  47. package/dist/commands/chats.d.ts.map +1 -1
  48. package/dist/commands/chats.js +15 -30
  49. package/dist/commands/chats.js.map +1 -1
  50. package/dist/commands/check.d.ts.map +1 -1
  51. package/dist/commands/check.js +4 -3
  52. package/dist/commands/check.js.map +1 -1
  53. package/dist/commands/complete.d.ts.map +1 -1
  54. package/dist/commands/complete.js +27 -3
  55. package/dist/commands/complete.js.map +1 -1
  56. package/dist/commands/config.d.ts.map +1 -1
  57. package/dist/commands/config.js +29 -27
  58. package/dist/commands/config.js.map +1 -1
  59. package/dist/commands/contacts.d.ts.map +1 -1
  60. package/dist/commands/contacts.js +21 -0
  61. package/dist/commands/contacts.js.map +1 -1
  62. package/dist/commands/doctor.d.ts.map +1 -1
  63. package/dist/commands/doctor.js +75 -21
  64. package/dist/commands/doctor.js.map +1 -1
  65. package/dist/commands/export.js +1 -1
  66. package/dist/commands/export.js.map +1 -1
  67. package/dist/commands/folders.d.ts.map +1 -1
  68. package/dist/commands/folders.js +3 -2
  69. package/dist/commands/folders.js.map +1 -1
  70. package/dist/commands/inbox.d.ts.map +1 -1
  71. package/dist/commands/inbox.js +1 -1
  72. package/dist/commands/inbox.js.map +1 -1
  73. package/dist/commands/messages.d.ts.map +1 -1
  74. package/dist/commands/messages.js +9 -11
  75. package/dist/commands/messages.js.map +1 -1
  76. package/dist/commands/models.d.ts.map +1 -1
  77. package/dist/commands/models.js +2 -1
  78. package/dist/commands/models.js.map +1 -1
  79. package/dist/commands/paging.d.ts +17 -1
  80. package/dist/commands/paging.d.ts.map +1 -1
  81. package/dist/commands/paging.js +22 -2
  82. package/dist/commands/paging.js.map +1 -1
  83. package/dist/commands/recipients.d.ts.map +1 -1
  84. package/dist/commands/recipients.js +3 -2
  85. package/dist/commands/recipients.js.map +1 -1
  86. package/dist/commands/review.d.ts.map +1 -1
  87. package/dist/commands/review.js +1 -1
  88. package/dist/commands/review.js.map +1 -1
  89. package/dist/commands/runs.d.ts.map +1 -1
  90. package/dist/commands/runs.js +4 -3
  91. package/dist/commands/runs.js.map +1 -1
  92. package/dist/commands/sends.d.ts.map +1 -1
  93. package/dist/commands/sends.js +3 -2
  94. package/dist/commands/sends.js.map +1 -1
  95. package/dist/config.d.ts +78 -7
  96. package/dist/config.d.ts.map +1 -1
  97. package/dist/config.js +143 -72
  98. package/dist/config.js.map +1 -1
  99. package/dist/diagnose.d.ts +47 -1
  100. package/dist/diagnose.d.ts.map +1 -1
  101. package/dist/diagnose.js +56 -5
  102. package/dist/diagnose.js.map +1 -1
  103. package/dist/export.d.ts.map +1 -1
  104. package/dist/export.js +2 -1
  105. package/dist/export.js.map +1 -1
  106. package/dist/generated/operations.generated.d.ts +14 -7
  107. package/dist/generated/operations.generated.d.ts.map +1 -1
  108. package/dist/mcp/tools.d.ts.map +1 -1
  109. package/dist/mcp/tools.js +42 -12
  110. package/dist/mcp/tools.js.map +1 -1
  111. package/dist/moderation/check.d.ts +5 -6
  112. package/dist/moderation/check.d.ts.map +1 -1
  113. package/dist/moderation/check.js +2 -40
  114. package/dist/moderation/check.js.map +1 -1
  115. package/dist/moderation/rules.d.ts +57 -7
  116. package/dist/moderation/rules.d.ts.map +1 -1
  117. package/dist/moderation/rules.js +13 -11
  118. package/dist/moderation/rules.js.map +1 -1
  119. package/dist/program.d.ts.map +1 -1
  120. package/dist/program.js +9 -3
  121. package/dist/program.js.map +1 -1
  122. package/dist/runs/events.d.ts +5 -2
  123. package/dist/runs/events.d.ts.map +1 -1
  124. package/dist/runs/events.js +4 -1
  125. package/dist/runs/events.js.map +1 -1
  126. package/dist/runs/recording.d.ts +11 -0
  127. package/dist/runs/recording.d.ts.map +1 -1
  128. package/dist/runs/recording.js +28 -12
  129. package/dist/runs/recording.js.map +1 -1
  130. package/dist/sends/guard.d.ts +2 -2
  131. package/dist/sends/guard.d.ts.map +1 -1
  132. package/dist/sends/guard.js +2 -1
  133. package/dist/sends/guard.js.map +1 -1
  134. package/dist/sends/journal.d.ts +2 -2
  135. package/dist/sends/journal.d.ts.map +1 -1
  136. package/dist/sends/journal.js.map +1 -1
  137. package/dist/sends/permissions.d.ts.map +1 -1
  138. package/dist/sends/permissions.js +3 -0
  139. package/dist/sends/permissions.js.map +1 -1
  140. package/dist/server/server.d.ts.map +1 -1
  141. package/dist/server/server.js +5 -0
  142. package/dist/server/server.js.map +1 -1
  143. package/dist/session/store.d.ts +2 -0
  144. package/dist/session/store.d.ts.map +1 -1
  145. package/dist/session/store.js +5 -1
  146. package/dist/session/store.js.map +1 -1
  147. package/dist/spec/operations/account.d.ts +3 -0
  148. package/dist/spec/operations/account.d.ts.map +1 -1
  149. package/dist/spec/operations/account.js +5 -1
  150. package/dist/spec/operations/account.js.map +1 -1
  151. package/dist/spec/operations/chats.d.ts +4 -3
  152. package/dist/spec/operations/chats.d.ts.map +1 -1
  153. package/dist/spec/operations/chats.js +10 -7
  154. package/dist/spec/operations/chats.js.map +1 -1
  155. package/dist/spec/operations/contacts.d.ts +8 -3
  156. package/dist/spec/operations/contacts.d.ts.map +1 -1
  157. package/dist/spec/operations/contacts.js +26 -5
  158. package/dist/spec/operations/contacts.js.map +1 -1
  159. package/dist/spec/operations/folders.d.ts.map +1 -1
  160. package/dist/spec/operations/folders.js +1 -0
  161. package/dist/spec/operations/folders.js.map +1 -1
  162. package/dist/spec/operations/messages.d.ts +1 -1
  163. package/dist/spec/operations/messages.d.ts.map +1 -1
  164. package/dist/spec/operations/messages.js +2 -1
  165. package/dist/spec/operations/messages.js.map +1 -1
  166. package/dist/spec/operations/uploads.d.ts +1 -1
  167. package/dist/spec/operations/uploads.d.ts.map +1 -1
  168. package/dist/spec/operations/uploads.js +2 -1
  169. package/dist/spec/operations/uploads.js.map +1 -1
  170. package/dist/version.d.ts +1 -1
  171. package/dist/version.js +1 -1
  172. package/package.json +3 -1
  173. package/skills/max-cli/SKILL.md +11 -6
@@ -9,6 +9,10 @@ export interface DiagnoseOptions {
9
9
  readSchemaVersion?: (file: string) => Promise<number | undefined>;
10
10
  /** Where a stored token is — the keyring, or the file that stands in for one; `undefined` for none. */
11
11
  storedToken?: (profile: string) => "keyring" | "file" | undefined;
12
+ /** The same for the bot token, keyring account `bot:<profile>` (`src/bot/auth.ts`). */
13
+ storedBotToken?: (profile: string) => "keyring" | "file" | undefined;
14
+ /** Profile names the configuration file mentions, for the list of every profile. */
15
+ configured?: string[];
12
16
  now?: () => Date;
13
17
  install?: () => Install;
14
18
  native?: () => Promise<Native>;
@@ -22,6 +26,13 @@ export interface Native {
22
26
  sqlite: string;
23
27
  }
24
28
  export type TokenSource = "environment" | "keyring" | "file" | "none";
29
+ /** A profile is a personal account, a bot, or both (`NEED-294`); which one is read off what exists. */
30
+ export interface ProfileRow {
31
+ name: string;
32
+ personal: boolean;
33
+ bot: boolean;
34
+ configured: boolean;
35
+ }
25
36
  export interface Diagnosis {
26
37
  /** ⚠ Never the token, and never a prefix or a length of it — only whether one is reachable. */
27
38
  token: {
@@ -50,6 +61,31 @@ export interface Diagnosis {
50
61
  loginPausedUntil: string | null;
51
62
  };
52
63
  loggedInProfiles: string[];
64
+ /** Every profile this machine knows of, with what it holds. */
65
+ profiles: ProfileRow[];
66
+ /** This profile's bot side. ⚠ Never the token; the bot's id only as known or not. */
67
+ bot: {
68
+ token: {
69
+ present: boolean;
70
+ from: TokenSource;
71
+ };
72
+ registry: {
73
+ file: string;
74
+ exists: boolean;
75
+ botKnown: boolean;
76
+ chats: number;
77
+ };
78
+ sends: string;
79
+ };
80
+ /** Where this profile's files live — one place to look instead of nine. */
81
+ paths: {
82
+ state: string;
83
+ cache: string;
84
+ runs: string;
85
+ bots: string;
86
+ sends: string;
87
+ messages: string;
88
+ };
53
89
  cache: {
54
90
  file: string;
55
91
  exists: boolean;
@@ -96,5 +132,15 @@ export declare const STALE_AFTER_DAYS = 60;
96
132
  * identity and writes it out on first read. A diagnosis that creates the thing it is reporting on
97
133
  * is not a diagnosis.
98
134
  */
99
- export declare const diagnose: ({ profile, env, stateDir, cacheDir, readSchemaVersion, storedToken, now, install, native, speechModel, modelsDir, }: DiagnoseOptions) => Promise<Diagnosis>;
135
+ export declare const diagnose: ({ profile, env, stateDir, cacheDir, readSchemaVersion, storedToken, storedBotToken, configured, now, install, native, speechModel, modelsDir, }: DiagnoseOptions) => Promise<Diagnosis>;
136
+ /**
137
+ * **Every profile, from files only**: a personal state file, a bot registry file, or a name in the
138
+ * configuration. It never reads the keyring — `config show` uses it as is, and that is `doctor`'s
139
+ * job (`CLI-12`); `diagnose` adds the keyring on top.
140
+ */
141
+ export declare const knownProfiles: ({ stateDir, configured, env, }: {
142
+ stateDir?: string;
143
+ configured?: string[];
144
+ env?: NodeJS.ProcessEnv;
145
+ }) => ProfileRow[];
100
146
  //# sourceMappingURL=diagnose.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../src/diagnose.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgB,KAAK,OAAO,EAAa,MAAM,cAAc,CAAA;AAMpE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IACjE,uGAAuG;IACvG,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;IACjE,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9B,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,2FAA2F;AAC3F,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;AAErE,MAAM,WAAW,SAAS;IACxB,+FAA+F;IAC/F,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE,CAAA;IAC9C;;;;OAIG;IACH,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,OAAO,CAAA;KAAE,CAAA;IACzD,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAA;QACjB,mFAAmF;QACnF,MAAM,EAAE,OAAO,CAAA;QACf,QAAQ,EAAE,OAAO,CAAA;QACjB,QAAQ,EAAE,OAAO,CAAA;QACjB,qFAAqF;QACrF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;QACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;QAC1B,uFAAuF;QACvF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;KAChC,CAAA;IACD,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,OAAO,CAAA;QACf,+EAA+E;QAC/E,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;QACjC,MAAM,EAAE,MAAM,CAAA;QACd,+FAA+F;QAC/F,QAAQ,EAAE,OAAO,CAAA;KAClB,CAAA;IACD,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACzC,yGAAyG;IACzG,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAA;IAC/F,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAA;CACzE;AAED,gGAAgG;AAChG,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAElC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,QAAQ,wHAYlB,eAAe,KAAG,OAAO,CAAC,SAAS,CAkDrC,CAAA"}
1
+ {"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../src/diagnose.ts"],"names":[],"mappings":"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"}
package/dist/diagnose.js CHANGED
@@ -2,6 +2,7 @@ import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
2
2
  import { createRequire } from "node:module";
3
3
  import { join } from "node:path";
4
4
  import { pathsAreOverridden, resolvePaths } from "@leemour/cli-core";
5
+ import { storePath } from "@leemour/cli-messaging/store";
5
6
  import { openCache } from "./cache/open.js";
6
7
  import { SCHEMA_VERSION } from "./cache/schema.js";
7
8
  import { checkInstall, ownScript } from "./install.js";
@@ -26,7 +27,7 @@ export const STALE_AFTER_DAYS = 60;
26
27
  * identity and writes it out on first read. A diagnosis that creates the thing it is reporting on
27
28
  * is not a diagnosis.
28
29
  */
29
- export const diagnose = async ({ profile, env = process.env, stateDir, cacheDir, readSchemaVersion = schemaVersionOf, storedToken = () => undefined, now = () => new Date(), install = () => thisInstall(env), native = loadNative, speechModel = DEFAULT_MODEL, modelsDir, }) => {
30
+ export const diagnose = async ({ profile, env = process.env, stateDir, cacheDir, readSchemaVersion = schemaVersionOf, storedToken = () => undefined, storedBotToken = () => undefined, configured = [], now = () => new Date(), install = () => thisInstall(env), native = loadNative, speechModel = DEFAULT_MODEL, modelsDir, }) => {
30
31
  const paths = resolvePaths({ appName: "max-cli", prefix: "MAX", env });
31
32
  const state = stateDir ?? paths.state;
32
33
  const cacheHome = cacheDir ?? paths.cache;
@@ -39,6 +40,16 @@ export const diagnose = async ({ profile, env = process.env, stateDir, cacheDir,
39
40
  const cacheExists = existsSync(cacheFile);
40
41
  const schemaVersion = cacheExists ? await readSchemaVersion(cacheFile) : undefined;
41
42
  const runsDirectory = join(state, "runs");
43
+ const bots = join(state, "bots");
44
+ const registryFile = join(bots, `${profile}.json`);
45
+ const registry = readState(registryFile);
46
+ const botFromEnvironment = (env.MAX_BOT_TOKEN ?? "").trim() !== "";
47
+ const botTokenAt = botFromEnvironment ? undefined : storedBotToken(profile);
48
+ const profiles = knownProfiles({ stateDir: state, configured }).map((row) => ({
49
+ ...row,
50
+ personal: row.personal || storedToken(row.name) !== undefined,
51
+ bot: row.bot || storedBotToken(row.name) !== undefined,
52
+ }));
42
53
  return {
43
54
  token: {
44
55
  present: fromEnvironment || tokenAt !== undefined,
@@ -57,6 +68,28 @@ export const diagnose = async ({ profile, env = process.env, stateDir, cacheDir,
57
68
  : null,
58
69
  },
59
70
  loggedInProfiles: profilesWithState(join(state, "profiles")),
71
+ profiles,
72
+ bot: {
73
+ token: {
74
+ present: botFromEnvironment || botTokenAt !== undefined,
75
+ from: botFromEnvironment ? "environment" : (botTokenAt ?? "none"),
76
+ },
77
+ registry: {
78
+ file: registryFile,
79
+ exists: registry !== undefined,
80
+ botKnown: typeof registry?.botId === "string",
81
+ chats: Array.isArray(registry?.chats) ? registry.chats.length : 0,
82
+ },
83
+ sends: join(bots, "sends", `${profile}.jsonl`),
84
+ },
85
+ paths: {
86
+ state,
87
+ cache: cacheHome,
88
+ runs: runsDirectory,
89
+ bots,
90
+ sends: join(state, "sends", `${profile}.jsonl`),
91
+ messages: storePath(env),
92
+ },
60
93
  cache: {
61
94
  file: cacheFile,
62
95
  exists: cacheExists,
@@ -109,21 +142,39 @@ const readState = (file) => {
109
142
  return undefined;
110
143
  }
111
144
  };
145
+ /** `<profile>.moderation.json` shares the directory (`moderation/rules.ts`). */
146
+ const MODERATION_SUFFIX = ".moderation.json";
112
147
  /**
113
148
  * **Which profiles have been logged in**, which is not the same list as the configured ones —
114
149
  * `config show` says so and cannot answer it, because a profile needs no configuration entry.
115
150
  */
116
- const profilesWithState = (directory) => {
151
+ const profilesWithState = (directory) => jsonNames(directory, MODERATION_SUFFIX);
152
+ /** File names only: `bots/joins/` and `bots/sends/` are folders, not profiles. */
153
+ const jsonNames = (directory, except) => {
117
154
  try {
118
- return readdirSync(directory)
119
- .filter((name) => name.endsWith(".json"))
120
- .map((name) => name.slice(0, -".json".length))
155
+ return readdirSync(directory, { withFileTypes: true })
156
+ .filter((entry) => entry.isFile() && entry.name.endsWith(".json") && !(except && entry.name.endsWith(except)))
157
+ .map((entry) => entry.name.slice(0, -".json".length))
121
158
  .sort();
122
159
  }
123
160
  catch {
124
161
  return [];
125
162
  }
126
163
  };
164
+ /**
165
+ * **Every profile, from files only**: a personal state file, a bot registry file, or a name in the
166
+ * configuration. It never reads the keyring — `config show` uses it as is, and that is `doctor`'s
167
+ * job (`CLI-12`); `diagnose` adds the keyring on top.
168
+ */
169
+ export const knownProfiles = ({ stateDir, configured = [], env = process.env, }) => {
170
+ const state = stateDir ?? resolvePaths({ appName: "max-cli", prefix: "MAX", env }).state;
171
+ const personal = new Set(profilesWithState(join(state, "profiles")));
172
+ const bot = new Set(jsonNames(join(state, "bots")));
173
+ const named = new Set(configured);
174
+ return [...new Set([...personal, ...bot, ...named])]
175
+ .sort()
176
+ .map((name) => ({ name, personal: personal.has(name), bot: bot.has(name), configured: named.has(name) }));
177
+ };
127
178
  const countEntries = (directory) => {
128
179
  try {
129
180
  return readdirSync(directory).filter((name) => statSync(join(directory, name)).isDirectory()).length;
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../src/diagnose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../src/diagnose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAgB,SAAS,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAyFjE,gGAAgG;AAChG,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAElC;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,EAC7B,OAAO,EACP,GAAG,GAAG,OAAO,CAAC,GAAG,EACjB,QAAQ,EACR,QAAQ,EACR,iBAAiB,GAAG,eAAe,EACnC,WAAW,GAAG,GAAG,EAAE,CAAC,SAAS,EAC7B,cAAc,GAAG,GAAG,EAAE,CAAC,SAAS,EAChC,UAAU,GAAG,EAAE,EACf,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EACtB,OAAO,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAChC,MAAM,GAAG,UAAU,EACnB,WAAW,GAAG,aAAa,EAC3B,SAAS,GACO,EAAsB,EAAE;IACxC,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IACtE,MAAM,KAAK,GAAG,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAA;IACrC,MAAM,SAAS,GAAG,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAA;IAEzC,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC5E,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IAC3D,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IAElE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,OAAO,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;IAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,OAAO,KAAK,CAAC,CAAA;IAClD,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;IACzC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAElF,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAChC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,OAAO,CAAC,CAAA;IAClD,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;IACxC,MAAM,kBAAkB,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IAClE,MAAM,UAAU,GAAG,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3E,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5E,GAAG,GAAG;QACN,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS;QAC7D,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS;KACvD,CAAC,CAAC,CAAA;IAEH,OAAO;QACL,KAAK,EAAE;YACL,OAAO,EAAE,eAAe,IAAI,OAAO,KAAK,SAAS;YACjD,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC;SAC5D;QACD,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE;QAC9F,OAAO,EAAE;YACP,SAAS;YACT,MAAM,EAAE,MAAM,KAAK,SAAS;YAC5B,QAAQ,EAAE,OAAO,MAAM,EAAE,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE;YACxE,QAAQ,EAAE,OAAO,MAAM,EAAE,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE;YACxE,MAAM,EAAE,OAAO,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YACjE,WAAW,EAAE,OAAO,MAAM,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;YAChF,gBAAgB,EACd,OAAO,MAAM,EAAE,gBAAgB,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;gBAC9F,CAAC,CAAC,MAAM,CAAC,gBAAgB;gBACzB,CAAC,CAAC,IAAI;SACX;QACD,gBAAgB,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5D,QAAQ;QACR,GAAG,EAAE;YACH,KAAK,EAAE;gBACL,OAAO,EAAE,kBAAkB,IAAI,UAAU,KAAK,SAAS;gBACvD,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC;aAClE;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,QAAQ,KAAK,SAAS;gBAC9B,QAAQ,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAK,QAAQ;gBAC7C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAClE;YACD,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,QAAQ,CAAC;SAC/C;QACD,KAAK,EAAE;YACL,KAAK;YACL,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,aAAa;YACnB,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,QAAQ,CAAC;YAC/C,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC;SACzB;QACD,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,WAAW;YACnB,aAAa;YACb,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,CAAC,WAAW,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,aAAa,IAAI,cAAc,CAAC;SAC3F;QACD,IAAI,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,CAAC,aAAa,CAAC,EAAE;QACrE,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE;QAClB,MAAM,EAAE,MAAM,MAAM,EAAE;QACtB,MAAM,EAAE,QAAQ,CAAC,WAAW,EAAE,SAAS,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;KACjE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,SAAiB,EAAE,EAAE;IACjD,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAA;IAC3B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;AACtH,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,GAAsB,EAAW,EAAE,CACtD,YAAY,CAAC;IACX,UAAU,EAAE,SAAS,EAAE;IACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,OAAO,EAAE,OAAO,EAAE;IAClB,GAAG;IACH,QAAQ,EAAE,OAAO,CAAC,QAAQ;CAC3B,CAAC,CAAA;AAEJ,uGAAuG;AACvG,MAAM,UAAU,GAAG,KAAK,IAAqB,EAAE;IAC7C,MAAM,OAAO,GAAG,KAAK,EAAE,IAAmB,EAAmB,EAAE;QAC7D,IAAI,CAAC;YACH,MAAM,IAAI,EAAE,CAAA;YACZ,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC5F,CAAC;IACH,CAAC,CAAA;IACD,OAAO;QACL,0FAA0F;QAC1F,OAAO,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACzG,MAAM,EAAE,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;KACzE,CAAA;AACH,CAAC,CAAA;AAED,4FAA4F;AAC5F,MAAM,SAAS,GAAG,CAAC,IAAY,EAAuC,EAAE;IACtE,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QAC9D,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAE,MAAkC,CAAC,CAAC,CAAC,SAAS,CAAA;IACxG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED,gFAAgF;AAChF,MAAM,iBAAiB,GAAG,kBAAkB,CAAA;AAE5C;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAY,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;AAElG,kFAAkF;AAClF,MAAM,SAAS,GAAG,CAAC,SAAiB,EAAE,MAAe,EAAY,EAAE;IACjE,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACnD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;aAC7G,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aACpD,IAAI,EAAE,CAAA;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,QAAQ,EACR,UAAU,GAAG,EAAE,EACf,GAAG,GAAG,OAAO,CAAC,GAAG,GAKlB,EAAgB,EAAE;IACjB,MAAM,KAAK,GAAG,QAAQ,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAA;IACxF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACpE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAA;IACjC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;SACjD,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AAC7G,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAU,EAAE;IACjD,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAA;IACtG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAA;IACV,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,eAAe,GAAG,KAAK,EAAE,IAAY,EAA+B,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,GAAG,EAA2C,CAAA;YAClG,OAAO,OAAO,GAAG,EAAE,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7E,CAAC;gBAAS,CAAC;YACT,QAAQ,CAAC,KAAK,EAAE,CAAA;QAClB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,UAAU,CAAA;AAEzB,MAAM,SAAS,GAAG,CAAC,KAAW,EAAE,EAAE;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;IAClF,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAAA;AAClE,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,OAAO,EAAiB,MAAM,oBAAoB,CAAA;AAE5E,6FAA6F;AAC7F,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;CACX;AAED,8FAA8F;AAC9F,eAAO,MAAM,WAAW,WAAY,MAAM,EAAE,KAAG,MAAM,EAQpD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,WAClB,MAAM,EAAE,oBACC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KACjD,MAAM,EAgBR,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,UAAW,MAAM,YAAY,OAAO,EAAE,aAAa,MAAM,KAAG,MAuBlF,CAAA"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,OAAO,EAAiB,MAAM,oBAAoB,CAAA;AAE5E,6FAA6F;AAC7F,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;CACX;AAED,8FAA8F;AAC9F,eAAO,MAAM,WAAW,WAAY,MAAM,EAAE,KAAG,MAAM,EAQpD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,WAClB,MAAM,EAAE,oBACC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KACjD,MAAM,EAiBR,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,UAAW,MAAM,YAAY,OAAO,EAAE,aAAa,MAAM,KAAG,MAuBlF,CAAA"}
package/dist/export.js CHANGED
@@ -26,7 +26,8 @@ export const unreadStretches = (ranges, { since, last } = {}) => {
26
26
  return [];
27
27
  const iso = (time) => new Date(time).toISOString();
28
28
  const stretches = [];
29
- if (since === undefined || first.from > since) {
29
+ // A window from 0 is one a backup read back to the chat's first message.
30
+ if (first.from > 0 && (since === undefined || first.from > since)) {
30
31
  stretches.push({ from: since === undefined ? null : iso(since), to: iso(first.from) });
31
32
  }
32
33
  for (const [index, window] of held.slice(1).entries()) {
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}
@@ -127,10 +127,15 @@ export declare const OPERATIONS: {
127
127
  }, undefined>, import("valibot").LooseObjectSchema<{
128
128
  readonly contact: import("valibot").OptionalSchema<import("valibot").LooseObjectSchema<{}, undefined>, undefined>;
129
129
  }, undefined>>;
130
- readonly "contacts.update": import("../spec/define.js").Operation<import("valibot").StrictObjectSchema<{
130
+ readonly "contacts.update": import("../spec/define.js").Operation<import("valibot").UnionSchema<[import("valibot").StrictObjectSchema<{
131
131
  readonly contactId: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").RegexAction<string, "an id is a whole number written as a string">, import("valibot").TransformAction<string, bigint>]>;
132
- readonly action: import("valibot").PicklistSchema<["ADD", "REMOVE"], undefined>;
133
- }, undefined>, import("valibot").LooseObjectSchema<{
132
+ readonly action: import("valibot").PicklistSchema<["ADD", "REMOVE", "BLOCK", "UNBLOCK"], undefined>;
133
+ }, undefined>, import("valibot").StrictObjectSchema<{
134
+ readonly contactId: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").RegexAction<string, "an id is a whole number written as a string">, import("valibot").TransformAction<string, bigint>]>;
135
+ readonly action: import("valibot").LiteralSchema<"UPDATE", undefined>;
136
+ readonly firstName: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").MinLengthAction<string, 1, undefined>]>;
137
+ readonly lastName: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
138
+ }, undefined>], undefined>, import("valibot").LooseObjectSchema<{
134
139
  readonly contact: import("valibot").OptionalSchema<import("valibot").LooseObjectSchema<{}, undefined>, undefined>;
135
140
  }, undefined>>;
136
141
  readonly "contacts.import": import("../spec/define.js").Operation<import("valibot").StrictObjectSchema<{
@@ -144,6 +149,8 @@ export declare const OPERATIONS: {
144
149
  readonly firstName: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").MinLengthAction<string, 1, undefined>]>;
145
150
  readonly lastName: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
146
151
  readonly description: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
152
+ readonly photoToken: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").MinLengthAction<string, 1, undefined>]>, undefined>;
153
+ readonly avatarType: import("valibot").OptionalSchema<import("valibot").LiteralSchema<"USER_AVATAR", undefined>, undefined>;
147
154
  }, undefined>, import("valibot").LooseObjectSchema<{
148
155
  readonly profile: import("valibot").OptionalSchema<import("valibot").LooseObjectSchema<{}, undefined>, undefined>;
149
156
  }, undefined>>;
@@ -254,7 +261,7 @@ export declare const OPERATIONS: {
254
261
  }, undefined>>;
255
262
  readonly "chats.members": import("../spec/define.js").Operation<import("valibot").StrictObjectSchema<{
256
263
  readonly chatId: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").RegexAction<string, "an id is a whole number written as a string">, import("valibot").TransformAction<string, bigint>]>;
257
- readonly type: import("valibot").PicklistSchema<["MEMBER", "JOIN_REQUEST"], undefined>;
264
+ readonly type: import("valibot").LiteralSchema<"MEMBER", undefined>;
258
265
  readonly marker: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
259
266
  readonly count: import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>;
260
267
  }, undefined>, import("valibot").LooseObjectSchema<{
@@ -265,7 +272,7 @@ export declare const OPERATIONS: {
265
272
  readonly chatId: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").RegexAction<string, "an id is a whole number written as a string">, import("valibot").TransformAction<string, bigint>]>;
266
273
  readonly userIds: import("valibot").SchemaWithPipe<readonly [import("valibot").ArraySchema<import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").RegexAction<string, "an id is a whole number written as a string">, import("valibot").TransformAction<string, bigint>]>, undefined>, import("valibot").MinLengthAction<bigint[], 1, undefined>]>;
267
274
  readonly operation: import("valibot").PicklistSchema<["add", "remove"], undefined>;
268
- readonly type: import("valibot").OptionalSchema<import("valibot").PicklistSchema<["ADMIN", "JOIN_REQUEST"], undefined>, undefined>;
275
+ readonly type: import("valibot").OptionalSchema<import("valibot").LiteralSchema<"ADMIN", undefined>, undefined>;
269
276
  readonly showHistory: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
270
277
  readonly cleanMsgPeriod: import("valibot").OptionalSchema<import("valibot").LiteralSchema<0, undefined>, undefined>;
271
278
  readonly permissions: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 0, undefined>]>, undefined>;
@@ -302,7 +309,7 @@ export declare const OPERATIONS: {
302
309
  readonly attaches: import("valibot").TupleSchema<[import("valibot").StrictObjectSchema<{
303
310
  readonly _type: import("valibot").LiteralSchema<"CONTROL", undefined>;
304
311
  readonly event: import("valibot").LiteralSchema<"new", undefined>;
305
- readonly chatType: import("valibot").LiteralSchema<"CHAT", undefined>;
312
+ readonly chatType: import("valibot").PicklistSchema<["CHAT", "CHANNEL"], undefined>;
306
313
  readonly title: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").MinLengthAction<string, 1, undefined>]>;
307
314
  readonly userIds: import("valibot").ArraySchema<import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").RegexAction<string, "an id is a whole number written as a string">, import("valibot").TransformAction<string, bigint>]>, undefined>;
308
315
  }, undefined>], undefined>;
@@ -377,7 +384,7 @@ export declare const OPERATIONS: {
377
384
  readonly count: import("valibot").LiteralSchema<1, undefined>;
378
385
  readonly type: import("valibot").LiteralSchema<0, undefined>;
379
386
  readonly uploaderType: import("valibot").LiteralSchema<0, undefined>;
380
- readonly profile: import("valibot").LiteralSchema<false, undefined>;
387
+ readonly profile: import("valibot").BooleanSchema<undefined>;
381
388
  }, undefined>, import("valibot").LooseObjectSchema<{
382
389
  readonly url: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
383
390
  }, undefined>>;
@@ -1 +1 @@
1
- {"version":3,"file":"operations.generated.d.ts","sourceRoot":"","sources":["../../src/generated/operations.generated.ts"],"names":[],"mappings":"AAwCA,yEAAyE;AACzE,eAAO,MAAM,UAAU;aACrB,cAAc;;;;;;;;;;;;;;;;aACd,eAAe;;;;;;;;;;;;;;;;;;;;;;aACf,cAAc;;;aACd,aAAa;;;;;;;;;;;;;;;aACb,iBAAiB;;;;;;aACjB,gBAAgB;;;;;;;;aAChB,YAAY;;;;;;;;;;;;;aACZ,kBAAkB;;;;;;;;aAClB,eAAe;;;;;;;;;;;;;;;aACf,gBAAgB;;;;;;;;;;;aAChB,eAAe;;;;;aACf,kBAAkB;;;;;aAClB,iBAAiB;;;;;;aACjB,iBAAiB;;;;;;;aACjB,gBAAgB;;;;;;;aAChB,kBAAkB;;;aAClB,uBAAuB;;;aACvB,cAAc;;;;;;;aACd,gBAAgB;;;;;;;;;;;aAChB,gBAAgB;;;aAChB,cAAc;;;;;aACd,eAAe;;;;;;aACf,eAAe;;;;;;;aACf,eAAe;;;;;;;;;;;;;aACf,YAAY;;;;;;;;;aACZ,YAAY;;;;;;aACZ,gBAAgB;;;;;aAChB,YAAY;;;;;aACZ,aAAa;;;;;aACb,cAAc;;;;;;;;;;;;;;;;;aACd,eAAe;;;;;;;;;aACf,qBAAqB;;;;;;;;;;;aACrB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aACf,eAAe;;;;;;;;;;;;;aACf,gBAAgB;;;;;;;;;;aAChB,kBAAkB;;;;;;aAClB,mBAAmB;;;;;;;;aACnB,oBAAoB;;;;;;aACpB,iBAAiB;;;;;aACjB,mBAAmB;;;;;aACnB,kBAAkB;;;;;;;;aAClB,eAAe;;;;;;;;aACf,cAAc;;;;;;;;aACd,eAAe;;;;;;;;;;;;;CACP,CAAA;AAEV,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,UAAU,CAAA"}
1
+ {"version":3,"file":"operations.generated.d.ts","sourceRoot":"","sources":["../../src/generated/operations.generated.ts"],"names":[],"mappings":"AAwCA,yEAAyE;AACzE,eAAO,MAAM,UAAU;aACrB,cAAc;;;;;;;;;;;;;;;;aACd,eAAe;;;;;;;;;;;;;;;;;;;;;;aACf,cAAc;;;aACd,aAAa;;;;;;;;;;;;;;;aACb,iBAAiB;;;;;;aACjB,gBAAgB;;;;;;;;aAChB,YAAY;;;;;;;;;;;;;aACZ,kBAAkB;;;;;;;;aAClB,eAAe;;;;;;;;;;;;;;;aACf,gBAAgB;;;;;;;;;;;aAChB,eAAe;;;;;aACf,kBAAkB;;;;;aAClB,iBAAiB;;;;;;;;;;;aACjB,iBAAiB;;;;;;;aACjB,gBAAgB;;;;;;;;;aAChB,kBAAkB;;;aAClB,uBAAuB;;;aACvB,cAAc;;;;;;;aACd,gBAAgB;;;;;;;;;;;aAChB,gBAAgB;;;aAChB,cAAc;;;;;aACd,eAAe;;;;;;aACf,eAAe;;;;;;;aACf,eAAe;;;;;;;;;;;;;aACf,YAAY;;;;;;;;;aACZ,YAAY;;;;;;aACZ,gBAAgB;;;;;aAChB,YAAY;;;;;aACZ,aAAa;;;;;aACb,cAAc;;;;;;;;;;;;;;;;;aACd,eAAe;;;;;;;;;aACf,qBAAqB;;;;;;;;;;;aACrB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aACf,eAAe;;;;;;;;;;;;;aACf,gBAAgB;;;;;;;;;;aAChB,kBAAkB;;;;;;aAClB,mBAAmB;;;;;;;;aACnB,oBAAoB;;;;;;aACpB,iBAAiB;;;;;aACjB,mBAAmB;;;;;aACnB,kBAAkB;;;;;;;;aAClB,eAAe;;;;;;;;aACf,cAAc;;;;;;;;aACd,eAAe;;;;;;;;;;;;;CACP,CAAA;AAEV,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,UAAU,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,SAAS,EAGf,MAAM,8BAA8B,CAAA;AAsBrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAKvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AA6sB9C,eAAO,MAAM,aAAa,WAChB,SAAS,WACR,UAAU,oIAYhB;IACD,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,wEAAwE;IACxE,KAAK,EAAE,YAAY,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,sGAAsG;IACtG,SAAS,CAAC,EAAE,SAAS,UAAU,EAAE,CAAA;CAClC,KACA,IAkDF,CAAA"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,SAAS,EAGf,MAAM,8BAA8B,CAAA;AAuBrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAKvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAstB9C,eAAO,MAAM,aAAa,WAChB,SAAS,WACR,UAAU,oIAYhB;IACD,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,wEAAwE;IACxE,KAAK,EAAE,YAAY,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,sGAAsG;IACtG,SAAS,CAAC,EAAE,SAAS,UAAU,EAAE,CAAA;CAClC,KACA,IA8EF,CAAA"}
package/dist/mcp/tools.js CHANGED
@@ -5,6 +5,7 @@ import * as v from "valibot";
5
5
  import { openProfileCache } from "../cache/index.js";
6
6
  import { DELETE_AT_ONCE, EVENTS_DAYS } from "../client.js";
7
7
  import { hearingFields } from "../commands/hearing.js";
8
+ import { listed } from "../commands/paging.js";
8
9
  import { sendTime } from "../config.js";
9
10
  import { maskedProfile } from "../domain/map.js";
10
11
  import { fetchBytes, publicOnly } from "../download.js";
@@ -97,7 +98,7 @@ const READ_TOOLS = {
97
98
  "downloads a model) and adds `unheard` and `transcribeProblem`. " +
98
99
  "Returns { mode, chats: [{ id, title, messages, more }], skipped, partial }.",
99
100
  input: v.object({
100
- since: v.optional(v.pipe(v.string(), v.description("a message id or an ISO 8601 time"))),
101
+ since: v.optional(v.pipe(v.string(), v.description("a message id, an ISO 8601 time, or 2h / 1d ago"))),
101
102
  limit: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100), v.description("at most this many per chat"))),
102
103
  transcribe: v.optional(v.pipe(v.boolean(), v.description("hear voice messages that have no text yet; slow, never downloads a model"))),
103
104
  }),
@@ -198,23 +199,29 @@ const READ_TOOLS = {
198
199
  title: "Who joined or left a group",
199
200
  description: "A chat's service messages since `since`: who joined, was added or removed, and by whom, oldest first. " +
200
201
  `\`event\` as MAX names it — new, add, remove, pin; others pass through. ${EVENTS_DAYS} days back if not given. ` +
201
- "Returns { chatId, since, more, events: [{ messageId, timestamp, event, by, people, title? }] }.",
202
+ "Returns { items: [{ messageId, timestamp, event, by, people, title? }], page, limit, hasMore, chatId, since }.",
202
203
  input: v.object({
203
204
  chat,
204
- since: v.optional(v.pipe(v.string(), v.description("a message id or an ISO 8601 time"))),
205
+ since: v.optional(v.pipe(v.string(), v.description("a message id, an ISO 8601 time, or 2h / 1d ago"))),
205
206
  }),
206
207
  annotations: READ,
207
- answer: (client, args) => client.chats.events(args.chat, args.since === undefined ? {} : { since: client.messages.moment(args.since, "since") }),
208
+ answer: async (client, args) => {
209
+ const found = await client.chats.events(args.chat, args.since === undefined ? {} : { since: client.messages.moment(args.since, "since") });
210
+ return { ...listed(found.events), hasMore: found.more, chatId: found.chatId, since: found.since };
211
+ },
208
212
  }),
209
213
  max_chats_members: tool({
210
214
  title: "Everyone in a group",
211
215
  description: "Every member of a group or channel, from MAX: { id, name, username, registeredAt, lastSeenAt, role? }. " +
212
216
  "`role` is owner, admin or member, absent when `rolesKnown` is false. " +
213
217
  "`registeredAt` is when their MAX account was made — a days-old account is worth a look. " +
214
- "Returns { chatId, members, complete, rolesKnown }.",
218
+ "Returns { items, page, limit, hasMore, chatId, rolesKnown }; hasMore means MAX had more than one read takes.",
215
219
  input: v.object({ chat }),
216
220
  annotations: READ,
217
- answer: (client, args) => client.chats.members.list(args.chat),
221
+ answer: async (client, args) => {
222
+ const found = await client.chats.members.list(args.chat);
223
+ return { ...listed(found.members), hasMore: !found.complete, chatId: found.chatId, rolesKnown: found.rolesKnown };
224
+ },
218
225
  }),
219
226
  max_chats_rules: tool({
220
227
  title: "A group's moderation rules",
@@ -280,8 +287,8 @@ const READ_TOOLS = {
280
287
  input: v.object({
281
288
  chat,
282
289
  limit,
283
- before: v.optional(v.pipe(v.string(), v.description("a message id or an ISO 8601 time"))),
284
- after: v.optional(v.pipe(v.string(), v.description("a message id or an ISO 8601 time; not with before"))),
290
+ before: v.optional(v.pipe(v.string(), v.description("a message id, an ISO 8601 time, or 2h / 1d ago"))),
291
+ after: v.optional(v.pipe(v.string(), v.description("a message id, an ISO 8601 time, or 2h / 1d ago; not with before"))),
285
292
  transcribe: v.optional(v.pipe(v.boolean(), v.description("hear voice messages that have no text yet; slow, never downloads a model"))),
286
293
  }),
287
294
  annotations: READ,
@@ -587,7 +594,7 @@ const answered = (value) => value instanceof Picture
587
594
  { type: "text", text: JSON.stringify(value.about) },
588
595
  ],
589
596
  }
590
- : { content: [{ type: "text", text: JSON.stringify(value) }], structuredContent: value };
597
+ : ((body) => ({ content: [{ type: "text", text: JSON.stringify(body) }], structuredContent: body }))((Array.isArray(value) ? listed(value) : value));
591
598
  /** The same object the CLI prints on stderr, so an agent reads one error shape from both. */
592
599
  const failed = (error) => {
593
600
  const body = isCliError(error)
@@ -635,6 +642,29 @@ export const registerTools = (server, session, { allowSend, confirmSend = false,
635
642
  if (allowModerate && (!permitted || (permitted.includes("delete") && permitted.includes("groups")))) {
636
643
  registerCheck(server, session, { store, profile });
637
644
  }
645
+ server.registerTool("max_status", {
646
+ title: "This server's profile and login",
647
+ description: "Which profile this server speaks for, whether it has a token and has logged in here, and which writing " +
648
+ "tools are on. Never logs in, so it answers when the login is what is broken.",
649
+ inputSchema: toStandardJsonSchema(v.object({})),
650
+ annotations: { ...READ, idempotentHint: true },
651
+ }, async () => {
652
+ let token;
653
+ try {
654
+ token = store.tokenSource() ?? "none";
655
+ }
656
+ catch {
657
+ token = "unreachable";
658
+ }
659
+ return answered({
660
+ profile,
661
+ kind: store.isBot() ? "personal + bot" : "personal",
662
+ token,
663
+ loggedInHere: store.hasLoggedIn(),
664
+ writes: Object.keys(offered),
665
+ allow: permitted ?? "all",
666
+ });
667
+ });
638
668
  };
639
669
  /**
640
670
  * `max_chats_check`, offered with `--allow-moderate` (`NEED-310`): that flag is what consent level
@@ -647,14 +677,14 @@ const registerCheck = (server, session, { store, profile }) => {
647
677
  const title = "Check a group by its rules";
648
678
  server.registerTool("max_chats_check", {
649
679
  title,
650
- description: "Judge what is new in a group since its last check — messages, people who joined, join requests — by the " +
680
+ description: "Judge what is new in a group since its last check — messages and people who joined — by the " +
651
681
  "owner's rules for it (`max chats rules`), and act where the rules and their consent levels allow. Only " +
652
- "when the owner asked for a check of this group. Returns rows { kind, rule, personId, personName, " +
682
+ "when the owner asked for a check of this group. Returns { items, … } of rows { kind, rule, personId, personName, " +
653
683
  "messageId?, action, outcome, reason?, command? } and notes; a row not done carries the command that would " +
654
684
  `do it. ${UNTRUSTED}`,
655
685
  inputSchema: toStandardJsonSchema(v.object({
656
686
  chat,
657
- since: v.optional(v.pipe(v.string(), v.description("judge what came after this message id or ISO 8601 time; the saved point stays"))),
687
+ since: v.optional(v.pipe(v.string(), v.description("judge what came after this message id, ISO 8601 time, or 2h / 1d ago; the saved point stays"))),
658
688
  dry_run: v.optional(v.pipe(v.boolean(), v.description("judge and plan; do nothing"))),
659
689
  })),
660
690
  annotations: WRITE,