@leemour/cli-messaging 0.119.0 → 0.121.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.
@@ -1 +1 @@
1
- {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/parity/pages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,YAAY,EAAY,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAIpF;;;;GAIG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,OAAO,GAAG,YAAY,QAAQ,WAAW,YAAY,KAAG,MAAM,EA2BtG,CAAA"}
1
+ {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/parity/pages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,YAAY,EAAY,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAIpF;;;;GAIG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,OAAO,GAAG,YAAY,QAAQ,WAAW,YAAY,KAAG,MAAM,EA6BtG,CAAA"}
@@ -13,6 +13,8 @@ export const pageProblems = (page, cli, manifest, program) => {
13
13
  };
14
14
  program.commands.forEach(walk);
15
15
  const globals = new Set(program.globalOptions.flatMap((option) => optionsOf(option.flags)));
16
+ // Commander adds this automatically; command introspection lists only explicit options.
17
+ globals.add("--help");
16
18
  const problems = [];
17
19
  const line = new RegExp(`\\b${cli} ((?:[a-z][a-z-]* ?)+)([^\\n\`#|]*)`, "g");
18
20
  for (const [, words, rest] of page.matchAll(line)) {
@@ -1 +1 @@
1
- {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/parity/pages.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,QAAQ,EAAiB,MAAM,eAAe,CAAA;AAEpF,MAAM,SAAS,GAAG,CAAC,KAAa,EAAY,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAA;AAEnF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,GAAQ,EAAE,QAAkB,EAAE,OAAqB,EAAY,EAAE;IAC1G,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC/C,MAAM,IAAI,GAAG,CAAC,OAAoB,EAAE,EAAE;QACpC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3G,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC,CAAA;IACD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE3F,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,qCAAqC,EAAE,GAAG,CAAC,CAAA;IAC5E,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC7C,mDAAmD;QACnD,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACpC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACvG,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACrC,IAAI,OAAO,KAAK,SAAS;YAAE,SAAQ;QACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,EAAE,CAAA;QACzD,KAAK,MAAM,MAAM,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3E,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAQ;YACvE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;YAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK;gBAAE,SAAQ;YACnE,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/parity/pages.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ export interface SecretInput {
5
5
  output?: NodeJS.WritableStream;
6
6
  /** For a phone number or an SMS code, which a person needs to see while typing. */
7
7
  echo?: boolean;
8
+ /** Cancels pending input without closing the caller's stream. */
9
+ signal?: AbortSignal;
8
10
  }
9
11
  /**
10
12
  * One line of secret, taken without a file and without argv.
@@ -16,5 +18,5 @@ export interface SecretInput {
16
18
  * The prompt goes to **stderr**, not stdout, so that `session start --json` still writes one JSON
17
19
  * value and nothing else.
18
20
  */
19
- export declare const readSecret: (prompt: string, { input, output, echo }?: SecretInput) => Promise<string>;
21
+ export declare const readSecret: (prompt: string, { input, output, echo, signal }?: SecretInput) => Promise<string>;
20
22
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/terminal/prompt.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IAC9B,mFAAmF;IACnF,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,WACb,MAAM,4BACoD,WAAW,KAC5E,OAAO,CAAC,MAAM,CA+BhB,CAAA"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/terminal/prompt.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IAC9B,mFAAmF;IACnF,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,iEAAiE;IACjE,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,WACb,MAAM,oCAC4D,WAAW,KACpF,OAAO,CAAC,MAAM,CA6DhB,CAAA"}
@@ -11,8 +11,36 @@ import { CliError } from "@leemour/cli-core";
11
11
  * The prompt goes to **stderr**, not stdout, so that `session start --json` still writes one JSON
12
12
  * value and nothing else.
13
13
  */
14
- export const readSecret = async (prompt, { input = process.stdin, output = process.stderr, echo = false } = {}) => {
14
+ export const readSecret = async (prompt, { input = process.stdin, output = process.stderr, echo = false, signal } = {}) => {
15
+ const cancelled = () => new CliError("cancelled", "cancelled — nothing was stored");
16
+ if (signal?.aborted)
17
+ throw cancelled();
15
18
  if (!input.isTTY) {
19
+ if (signal) {
20
+ return new Promise((resolve, reject) => {
21
+ const chunks = [];
22
+ const cleanup = () => {
23
+ input.off("data", data).off("end", end).off("error", error).off("close", abort);
24
+ signal.removeEventListener("abort", abort);
25
+ };
26
+ const data = (chunk) => chunks.push(Buffer.from(chunk));
27
+ const end = () => {
28
+ cleanup();
29
+ resolve(Buffer.concat(chunks).toString("utf8").trim());
30
+ };
31
+ const error = (cause) => {
32
+ cleanup();
33
+ reject(cause);
34
+ };
35
+ const abort = () => {
36
+ cleanup();
37
+ input.pause();
38
+ reject(cancelled());
39
+ };
40
+ input.on("data", data).once("end", end).once("error", error).once("close", abort);
41
+ signal.addEventListener("abort", abort, { once: true });
42
+ });
43
+ }
16
44
  const chunks = [];
17
45
  for await (const chunk of input)
18
46
  chunks.push(Buffer.from(chunk));
@@ -27,19 +55,22 @@ export const readSecret = async (prompt, { input = process.stdin, output = proce
27
55
  },
28
56
  });
29
57
  const reader = createInterface({ input, output: shim, terminal: true });
58
+ const abort = () => reader.close();
30
59
  try {
31
60
  // Ctrl-C and a closed terminal would otherwise leave this waiting for ever, and Node exits
32
61
  // on the unsettled promise with a warning and a code nobody documents.
33
62
  const answer = await new Promise((resolve, reject) => {
34
- const cancel = () => reject(new CliError("cancelled", "cancelled — nothing was stored"));
63
+ const cancel = () => reject(cancelled());
35
64
  reader.once("SIGINT", cancel);
36
65
  reader.once("close", cancel);
66
+ signal?.addEventListener("abort", abort, { once: true });
37
67
  reader.question(prompt, resolve);
38
68
  muted = !echo;
39
69
  });
40
70
  return answer.trim();
41
71
  }
42
72
  finally {
73
+ signal?.removeEventListener("abort", abort);
43
74
  reader.close();
44
75
  output.write("\n");
45
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/terminal/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAS5C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,MAAc,EACd,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,GAAgB,EAAE,EACjE,EAAE;IACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAChE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACtD,CAAC;IAED,IAAI,KAAK,GAAG,KAAK,CAAA;IACjB,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC;QACxB,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI;YAC1B,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,EAAE,CAAA;QACR,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,IAAI,CAAC;QACH,2FAA2F;QAC3F,uEAAuE;QACvE,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAC,CAAA;YACxF,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC7B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC5B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAChC,KAAK,GAAG,CAAC,IAAI,CAAA;QACf,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,KAAK,EAAE,CAAA;QACd,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/terminal/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAW5C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,MAAc,EACd,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,MAAM,EAAE,GAAgB,EAAE,EACzE,EAAE;IACnB,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAA;IACnF,IAAI,MAAM,EAAE,OAAO;QAAE,MAAM,SAAS,EAAE,CAAA;IACtC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC7C,MAAM,MAAM,GAAa,EAAE,CAAA;gBAC3B,MAAM,OAAO,GAAG,GAAG,EAAE;oBACnB,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;oBAC/E,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC5C,CAAC,CAAA;gBACD,MAAM,IAAI,GAAG,CAAC,KAAsB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;gBACxE,MAAM,GAAG,GAAG,GAAG,EAAE;oBACf,OAAO,EAAE,CAAA;oBACT,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;gBACxD,CAAC,CAAA;gBACD,MAAM,KAAK,GAAG,CAAC,KAAY,EAAE,EAAE;oBAC7B,OAAO,EAAE,CAAA;oBACT,MAAM,CAAC,KAAK,CAAC,CAAA;gBACf,CAAC,CAAA;gBACD,MAAM,KAAK,GAAG,GAAG,EAAE;oBACjB,OAAO,EAAE,CAAA;oBACT,KAAK,CAAC,KAAK,EAAE,CAAA;oBACb,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;gBACrB,CAAC,CAAA;gBACD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBACjF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YACzD,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAChE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACtD,CAAC;IAED,IAAI,KAAK,GAAG,KAAK,CAAA;IACjB,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC;QACxB,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI;YAC1B,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,EAAE,CAAA;QACR,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAClC,IAAI,CAAC;QACH,2FAA2F;QAC3F,uEAAuE;QACvE,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;YACxC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC7B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC5B,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YACxD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAChC,KAAK,GAAG,CAAC,IAAI,CAAA;QACf,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC3C,MAAM,CAAC,KAAK,EAAE,CAAA;QACd,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;AACH,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leemour/cli-messaging",
3
- "version": "0.119.0",
3
+ "version": "0.121.0",
4
4
  "description": "The messenger-neutral half of a messaging CLI: domain model, message locators, rendering, name resolution, the SQLite seam, the command skeleton and shared read commands, the send guard, run records and the message store",
5
5
  "license": "MIT",
6
6
  "author": "Viacheslav Ptsarev",
package/parity.json CHANGED
@@ -20,6 +20,10 @@
20
20
  "value": "<time>",
21
21
  "meaning": "read what came after this ISO 8601 time, or 2h / 1d ago; not with --after-id or the --before pair"
22
22
  },
23
+ "--agent": {
24
+ "value": "<agent>",
25
+ "meaning": "install the skill for this agent; asks at a terminal, otherwise none"
26
+ },
23
27
  "--all": {
24
28
  "meaning": "every row, no paging"
25
29
  },
@@ -257,6 +261,10 @@
257
261
  "value": "<on|off>",
258
262
  "meaning": "members may see the invite link"
259
263
  },
264
+ "--method": {
265
+ "value": "<method>",
266
+ "meaning": "how to log in when there is no session"
267
+ },
260
268
  "--model": {
261
269
  "value": "<id>",
262
270
  "meaning": "which downloaded speech model hears them; `models audio list` shows them",
@@ -875,14 +883,6 @@
875
883
  "--types": "all"
876
884
  }
877
885
  },
878
- "cache": {
879
- "in": [],
880
- "planned": {
881
- "max": "T6"
882
- },
883
- "reason": "max drops its per-profile cache in favor of the shared store",
884
- "subtree": true
885
- },
886
886
  "chats": {
887
887
  "in": "all"
888
888
  },
@@ -1699,13 +1699,7 @@
1699
1699
  "--reply-to": "all",
1700
1700
  "--send-id": "all",
1701
1701
  "--silent": "all",
1702
- "--topic": {
1703
- "in": [],
1704
- "planned": {
1705
- "max": "adopt the shared topic option; the MAX adapter explicitly refuses forum addressing",
1706
- "tg": "adopt the shared topic option with Telegram adapter validation and mapping"
1707
- }
1708
- },
1702
+ "--topic": "all",
1709
1703
  "--voice": "all"
1710
1704
  }
1711
1705
  },
@@ -1772,13 +1766,7 @@
1772
1766
  "--revote": "all",
1773
1767
  "--send-id": "all",
1774
1768
  "--silent": "all",
1775
- "--topic": {
1776
- "in": [],
1777
- "planned": {
1778
- "max": "adopt the shared topic option; the MAX adapter explicitly refuses forum addressing",
1779
- "tg": "adopt the shared topic option with Telegram adapter validation and mapping"
1780
- }
1781
- }
1769
+ "--topic": "all"
1782
1770
  }
1783
1771
  },
1784
1772
  "polls show": {
@@ -1941,6 +1929,43 @@
1941
1929
  }
1942
1930
  }
1943
1931
  },
1932
+ "setup": {
1933
+ "in": [],
1934
+ "planned": {
1935
+ "tg": "guided first-run onboarding",
1936
+ "max": "guided first-run onboarding"
1937
+ },
1938
+ "options": {
1939
+ "--agent": {
1940
+ "in": [],
1941
+ "planned": {
1942
+ "tg": "guided first-run onboarding",
1943
+ "max": "guided first-run onboarding"
1944
+ }
1945
+ },
1946
+ "--app": {
1947
+ "in": [],
1948
+ "planned": {
1949
+ "tg": "guided first-run onboarding"
1950
+ },
1951
+ "reason": "Telegram requires an application from my.telegram.org; MAX has no application registration step"
1952
+ },
1953
+ "--method": {
1954
+ "in": [],
1955
+ "planned": {
1956
+ "tg": "guided first-run onboarding",
1957
+ "max": "guided first-run onboarding"
1958
+ }
1959
+ },
1960
+ "--qr-file": {
1961
+ "in": [],
1962
+ "planned": {
1963
+ "tg": "guided first-run onboarding"
1964
+ },
1965
+ "reason": "Telegram can expose its temporary QR login token as a PNG"
1966
+ }
1967
+ }
1968
+ },
1944
1969
  "skill": {
1945
1970
  "in": "all"
1946
1971
  },