@wirecat/max-cli 0.71.0 → 0.73.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 (116) hide show
  1. package/README.md +4 -3
  2. package/dist/adapter/max-adapter.d.ts +1 -1
  3. package/dist/adapter/max-adapter.d.ts.map +1 -1
  4. package/dist/adapter/max-adapter.js +1 -0
  5. package/dist/adapter/max-adapter.js.map +1 -1
  6. package/dist/client/chat-writes.d.ts +1 -0
  7. package/dist/client/chat-writes.d.ts.map +1 -1
  8. package/dist/client/chat-writes.js +13 -0
  9. package/dist/client/chat-writes.js.map +1 -1
  10. package/dist/client/live.d.ts +3 -2
  11. package/dist/client/live.d.ts.map +1 -1
  12. package/dist/client/live.js +82 -7
  13. package/dist/client/live.js.map +1 -1
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +1 -0
  16. package/dist/client.js.map +1 -1
  17. package/dist/commands/bot-comments.d.ts.map +1 -1
  18. package/dist/commands/bot-comments.js +12 -5
  19. package/dist/commands/bot-comments.js.map +1 -1
  20. package/dist/commands/bot-members.d.ts.map +1 -1
  21. package/dist/commands/bot-members.js +14 -8
  22. package/dist/commands/bot-members.js.map +1 -1
  23. package/dist/commands/bot.d.ts.map +1 -1
  24. package/dist/commands/bot.js +5 -2
  25. package/dist/commands/bot.js.map +1 -1
  26. package/dist/commands/chats.d.ts.map +1 -1
  27. package/dist/commands/chats.js +17 -9
  28. package/dist/commands/chats.js.map +1 -1
  29. package/dist/commands/config.d.ts.map +1 -1
  30. package/dist/commands/config.js +27 -50
  31. package/dist/commands/config.js.map +1 -1
  32. package/dist/commands/contacts.d.ts +0 -7
  33. package/dist/commands/contacts.d.ts.map +1 -1
  34. package/dist/commands/contacts.js +9 -7
  35. package/dist/commands/contacts.js.map +1 -1
  36. package/dist/commands/doctor.d.ts +1 -16
  37. package/dist/commands/doctor.d.ts.map +1 -1
  38. package/dist/commands/doctor.js +19 -11
  39. package/dist/commands/doctor.js.map +1 -1
  40. package/dist/commands/list-queries.d.ts +24 -0
  41. package/dist/commands/list-queries.d.ts.map +1 -0
  42. package/dist/commands/list-queries.js +54 -0
  43. package/dist/commands/list-queries.js.map +1 -0
  44. package/dist/commands/messages.d.ts.map +1 -1
  45. package/dist/commands/messages.js +6 -4
  46. package/dist/commands/messages.js.map +1 -1
  47. package/dist/commands/recipients.d.ts +1 -8
  48. package/dist/commands/recipients.d.ts.map +1 -1
  49. package/dist/commands/recipients.js +3 -74
  50. package/dist/commands/recipients.js.map +1 -1
  51. package/dist/commands/serve.d.ts +0 -7
  52. package/dist/commands/serve.d.ts.map +1 -1
  53. package/dist/commands/serve.js +6 -3
  54. package/dist/commands/serve.js.map +1 -1
  55. package/dist/commands/session.d.ts +2 -1
  56. package/dist/commands/session.d.ts.map +1 -1
  57. package/dist/commands/session.js +6 -3
  58. package/dist/commands/session.js.map +1 -1
  59. package/dist/commands/setup.d.ts +3 -1
  60. package/dist/commands/setup.d.ts.map +1 -1
  61. package/dist/commands/setup.js +6 -3
  62. package/dist/commands/setup.js.map +1 -1
  63. package/dist/commands/watch.d.ts +2 -14
  64. package/dist/commands/watch.d.ts.map +1 -1
  65. package/dist/commands/watch.js +59 -20
  66. package/dist/commands/watch.js.map +1 -1
  67. package/dist/config.d.ts +278 -0
  68. package/dist/config.d.ts.map +1 -1
  69. package/dist/config.js +9 -116
  70. package/dist/config.js.map +1 -1
  71. package/dist/contract-overrides.d.ts +12 -0
  72. package/dist/contract-overrides.d.ts.map +1 -0
  73. package/dist/contract-overrides.js +537 -0
  74. package/dist/contract-overrides.js.map +1 -0
  75. package/dist/domain/map.d.ts +1 -1
  76. package/dist/domain/map.js +1 -1
  77. package/dist/generated/client.generated.d.ts +5 -0
  78. package/dist/generated/client.generated.d.ts.map +1 -1
  79. package/dist/generated/client.generated.js +5 -0
  80. package/dist/generated/client.generated.js.map +1 -1
  81. package/dist/generated/opcodes.generated.d.ts +3 -0
  82. package/dist/generated/opcodes.generated.d.ts.map +1 -1
  83. package/dist/generated/opcodes.generated.js +3 -0
  84. package/dist/generated/opcodes.generated.js.map +1 -1
  85. package/dist/generated/operations.generated.d.ts +20 -1
  86. package/dist/generated/operations.generated.d.ts.map +1 -1
  87. package/dist/generated/operations.generated.js +5 -1
  88. package/dist/generated/operations.generated.js.map +1 -1
  89. package/dist/messenger.js +1 -1
  90. package/dist/messenger.js.map +1 -1
  91. package/dist/program.d.ts.map +1 -1
  92. package/dist/program.js +4 -3
  93. package/dist/program.js.map +1 -1
  94. package/dist/report.d.ts.map +1 -1
  95. package/dist/report.js +14 -79
  96. package/dist/report.js.map +1 -1
  97. package/dist/server/server.js +1 -1
  98. package/dist/server/server.js.map +1 -1
  99. package/dist/spec/index.d.ts.map +1 -1
  100. package/dist/spec/index.js +5 -1
  101. package/dist/spec/index.js.map +1 -1
  102. package/dist/spec/operations/chats.d.ts +7 -1
  103. package/dist/spec/operations/chats.d.ts.map +1 -1
  104. package/dist/spec/operations/chats.js +22 -2
  105. package/dist/spec/operations/chats.js.map +1 -1
  106. package/dist/spec/operations/stories.d.ts +17 -0
  107. package/dist/spec/operations/stories.d.ts.map +1 -0
  108. package/dist/spec/operations/stories.js +38 -0
  109. package/dist/spec/operations/stories.js.map +1 -0
  110. package/dist/transcribe/index.js +1 -1
  111. package/dist/transcribe/index.js.map +1 -1
  112. package/dist/version.d.ts +1 -1
  113. package/dist/version.js +1 -1
  114. package/package.json +5 -5
  115. package/scenarios/find-what-was-said.md +1 -1
  116. package/skills/max-cli/SKILL.md +37 -28
@@ -1 +1 @@
1
- {"version":3,"file":"bot-members.d.ts","sourceRoot":"","sources":["../../src/commands/bot-members.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAUxC;;;GAGG;AACH,eAAO,MAAM,WAAW,QAAS,SAAS,MAAM,EAAE,KAAG,MAKpD,CAAA;AAED,2FAA2F;AAC3F,eAAO,MAAM,OAAO,OAAQ,MAAM,QAAQ,MAAM,KAAG,MAAgD,CAAA;AA4BnG;;;GAGG;AACH,eAAO,MAAM,kBAAkB,YAAa,OAAO,KAAG,IAgCrD,CAAA"}
1
+ {"version":3,"file":"bot-members.d.ts","sourceRoot":"","sources":["../../src/commands/bot-members.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAWxC;;;GAGG;AACH,eAAO,MAAM,WAAW,QAAS,SAAS,MAAM,EAAE,KAAG,MAKpD,CAAA;AAED,2FAA2F;AAC3F,eAAO,MAAM,OAAO,OAAQ,MAAM,QAAQ,MAAM,KAAG,MAAgD,CAAA;AAkCnG;;;GAGG;AACH,eAAO,MAAM,kBAAkB,YAAa,OAAO,KAAG,IA0CrD,CAAA"}
@@ -1,11 +1,12 @@
1
1
  import { CliError } from "@wirecat/cli-base";
2
2
  import { annotate } from "@wirecat/cli-base/commands";
3
- import { itemOf, listOf, REMOTE_READ, REMOTE_WRITE, renderAnswer } from "@wirecat/cli-core/cli";
3
+ import { answerEntity, itemOf, listOf, REMOTE_READ, REMOTE_WRITE, renderAnswer, typedQuery, withQuery, } from "@wirecat/cli-core/cli";
4
4
  import { checkBody } from "../bot/input.js";
5
5
  import { plainJson } from "../bot/transport.js";
6
6
  import { botContext } from "./bot-context.js";
7
7
  import { chatIdOf } from "./bot-reads.js";
8
8
  import { guardedCall, operation } from "./bot-sends.js";
9
+ import { botMember, MEMBERS_QUERY, memberId } from "./list-queries.js";
9
10
  import { wholeNumber } from "./paging.js";
10
11
  const USER_ID = /^\d+$/;
11
12
  /**
@@ -29,7 +30,7 @@ const limitOf = (limit) => {
29
30
  return String(limit);
30
31
  };
31
32
  /** The Bot API's page of members, in our envelope with string ids (`NEED-358`); its `marker` is the next `--cursor`. */
32
- const showMembers = (command, context, chat, answer) => {
33
+ const showMembers = (command, context, chat, answer, query) => {
33
34
  const { members, marker } = plainJson(answer);
34
35
  const items = (members ?? []).map((member) => ({ ...member, user_id: String(member.user_id) }));
35
36
  renderAnswer(command, context, listOf("bot chats members list", {
@@ -38,7 +39,7 @@ const showMembers = (command, context, chat, answer) => {
38
39
  has_more: marker != null,
39
40
  paging: "cursor",
40
41
  ...(marker == null ? {} : { cursor: String(marker) }),
41
- args: { chat },
42
+ args: { chat, ...(query ? { query } : {}) },
42
43
  }));
43
44
  };
44
45
  /**
@@ -46,18 +47,23 @@ const showMembers = (command, context, chat, answer) => {
46
47
  * `remove` comes from cli-core with the admins.
47
48
  */
48
49
  export const addMembersCommands = (members) => {
49
- annotate(members.command("list <chat>"), { effects: REMOTE_READ, offline: false })
50
+ answerEntity(withQuery(annotate(members.command("list <chat>"), { effects: REMOTE_READ, offline: false }), MEMBERS_QUERY), "max_bot_member", botMember)
50
51
  .description("members of a chat, a page at a time — --cursor takes the `page.next_cursor` the last page gave")
51
52
  .option("--limit <n>", "how many, up to 100", wholeNumber("--limit"))
52
53
  .option("--cursor <cursor>", "continue from here")
53
- .action(async function (chat) {
54
- const context = botContext(this);
54
+ .action(async function (chat, words) {
55
+ const selected = memberId(words);
55
56
  const cursor = this.opts().cursor;
57
+ if (selected !== undefined && cursor !== undefined)
58
+ throw new CliError("validation_error", "a user_id query selects memberships directly; omit --cursor");
59
+ const context = botContext(this);
56
60
  const answer = await context.authenticated().call(operation("getMembers"), {
57
61
  path: { chatId: chatIdOf(chat, context.registry) },
58
- query: { count: limitOf(context.settings.limit), ...(cursor ? { marker: cursor } : {}) },
62
+ query: selected === undefined
63
+ ? { count: limitOf(context.settings.limit), ...(cursor ? { marker: cursor } : {}) }
64
+ : { user_ids: selected },
59
65
  });
60
- showMembers(this, context, chat, answer);
66
+ showMembers(this, context, chat, answer, typedQuery(words));
61
67
  });
62
68
  annotate(members.command("add <chat> <users...>"), { effects: REMOTE_WRITE })
63
69
  .description(`add people to a chat by user id, at most ${ADD_AT_ONCE}; the bot must be an admin that may add members`)
@@ -1 +1 @@
1
- {"version":3,"file":"bot-members.js","sourceRoot":"","sources":["../../src/commands/bot-members.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot-members.js","sourceRoot":"","sources":["../../src/commands/bot-members.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../src/commands/bot.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAqBxC,eAAO,MAAM,UAAU,YAAa,OAAO,GAAG,KAAG,OAgEhD,CAAA"}
1
+ {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../src/commands/bot.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAqBxC,eAAO,MAAM,UAAU,YAAa,OAAO,GAAG,KAAG,OAyEhD,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { CliError } from "@wirecat/cli-base";
2
2
  import { annotate } from "@wirecat/cli-base/commands";
3
- import { generatedApiCommand, itemOf, ownerOnlyOption, REMOTE_READ, renderAnswer, botCommand as sharedBotCommand, } from "@wirecat/cli-core/cli";
3
+ import { generatedApiCommand, itemOf, overrideSharedContract, ownerOnlyOption, REMOTE_READ, renderAnswer, botCommand as sharedBotCommand, } from "@wirecat/cli-core/cli";
4
4
  import { botOperations } from "../bot/client.js";
5
5
  import { checkBody, checkParameter } from "../bot/input.js";
6
6
  import { plainJson } from "../bot/transport.js";
@@ -31,6 +31,7 @@ export const botCommand = (program) => {
31
31
  })
32
32
  .hook("postAction", async (_group, action) => botRecordingOf(action)?.succeed());
33
33
  annotate(command.command("me"), { effects: REMOTE_READ, offline: false })
34
+ .summary("the bot this profile's token belongs to")
34
35
  .description("the bot this profile's token belongs to: name, id, description, commands")
35
36
  .action(async function () {
36
37
  const context = botContext(this);
@@ -84,7 +85,9 @@ export const botCommand = (program) => {
84
85
  });
85
86
  for (const child of api.commands)
86
87
  if (["delete-message", "delete-comment"].includes(child.name()))
87
- child.addOption(ownerOnlyOption("--allow-dangerous", "skip confirmation for bot.messages.delete at level ask"));
88
+ overrideSharedContract(child, "MAX deletion API methods use the same owner-only destructive confirmation as bot messages delete.", (command) => {
89
+ command.addOption(ownerOnlyOption("--allow-dangerous", "skip confirmation for bot.messages.delete at level ask"));
90
+ });
88
91
  command.addCommand(api);
89
92
  return command;
90
93
  };
@@ -1 +1 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/commands/bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/commands/bot.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chats.d.ts","sourceRoot":"","sources":["../../src/commands/chats.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,eAAO,MAAM,YAAY,QAAO,OA4C/B,CAAA"}
1
+ {"version":3,"file":"chats.d.ts","sourceRoot":"","sources":["../../src/commands/chats.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkEnC,eAAO,MAAM,YAAY,eAMtB,CAAA"}
@@ -1,16 +1,18 @@
1
- import { annotate } from "@wirecat/cli-base/commands";
2
- import { markReadCommand, chatsCommand as sharedChatsCommand } from "@wirecat/cli-core/cli";
1
+ import { annotate, customizeSharedCommand } from "@wirecat/cli-base/commands";
2
+ import { markReadCommand, overrideSharedContract, chatsCommand as sharedChatsCommand } from "@wirecat/cli-core/cli";
3
3
  import { Command } from "commander";
4
+ import { SHELL_OVERRIDES } from "../contract-overrides.js";
4
5
  import { maxMessenger, sharedSubcommand } from "../messenger.js";
5
- export const chatsCommand = () => {
6
+ const chatsCommandDefinition = () => {
6
7
  const command = new Command("chats").description("the chats this account is in");
7
8
  const shared = sharedChatsCommand(maxMessenger);
8
9
  command.addCommand(sharedSubcommand(shared, "list"));
9
10
  command.addCommand(sharedSubcommand(shared, "show"));
10
11
  const documents = sharedSubcommand(shared, "documents");
11
- annotate(sharedSubcommand(documents, "list"), {
12
- examples: ["max personal chats documents list CHAT_ID --limit 20"],
13
- }).addHelpText("after", "Example:\n max personal chats documents list CHAT_ID --limit 20\n");
12
+ overrideSharedContract(sharedSubcommand(documents, "list"), "MAX's chat-document example names its explicit profile and chat without implying a default account.", (command) => {
13
+ annotate(command, { examples: ["max personal chats documents list CHAT_ID --limit 20"] });
14
+ command.addHelpText("after", "Example:\n max personal chats documents list CHAT_ID --limit 20\n");
15
+ });
14
16
  command.addCommand(documents);
15
17
  command.addCommand(sharedSubcommand(shared, "events"));
16
18
  command.addCommand(sharedSubcommand(shared, "inspect"));
@@ -22,9 +24,14 @@ export const chatsCommand = () => {
22
24
  command.addCommand(sharedSubcommand(shared, "tracking"));
23
25
  command.addCommand(sharedSubcommand(shared, "admins"));
24
26
  command.addCommand(sharedSubcommand(shared, "update"));
25
- command.addCommand(sharedSubcommand(shared, "link"));
26
- const requests = sharedSubcommand(shared, "requests").description("requests to join a MAX channel needing approval");
27
- sharedSubcommand(requests, "list").description("pending requests to join a MAX channel needing approval; admins only; requestedAt is null");
27
+ command.addCommand(sharedSubcommand(shared, "links"));
28
+ const requests = sharedSubcommand(shared, "requests");
29
+ overrideSharedContract(requests, "MAX join requests are channel approval requests, which differs from Telegram group requests.", (command) => {
30
+ command.description("requests to join a MAX channel needing approval");
31
+ });
32
+ overrideSharedContract(sharedSubcommand(requests, "list"), "MAX does not supply request timestamps and requires channel administrator access.", (command) => {
33
+ command.description("pending requests to join a MAX channel needing approval; admins only; requestedAt is null");
34
+ });
28
35
  command.addCommand(requests);
29
36
  command.addCommand(sharedSubcommand(shared, "folders"));
30
37
  command.addCommand(sharedSubcommand(shared, "rules"));
@@ -38,4 +45,5 @@ export const chatsCommand = () => {
38
45
  command.addCommand(sharedSubcommand(shared, "app"));
39
46
  return command;
40
47
  };
48
+ export const chatsCommand = () => customizeSharedCommand(sharedChatsCommand(maxMessenger), "MAX composes shared chat leaves with its existing provider command groups; every metadata difference is deliberate.", chatsCommandDefinition, SHELL_OVERRIDES.chats);
41
49
  //# sourceMappingURL=chats.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chats.js","sourceRoot":"","sources":["../../src/commands/chats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chats.js","sourceRoot":"","sources":["../../src/commands/chats.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsCnC,eAAO,MAAM,aAAa,QAAO,OAoHhC,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsDnC,eAAO,MAAM,aAAa,QAAO,OA8EhC,CAAA"}
@@ -1,12 +1,12 @@
1
1
  import { CliError, pathsAreOverridden } from "@wirecat/cli-base";
2
2
  import { annotate } from "@wirecat/cli-base/commands";
3
- import { AI_SETTING_KEYS, changeStoreSetting, grantsAuthority, isStoreSetting, itemOf, LOCAL_READ, LOCAL_WRITE, NONE_NAMED, refuseUnknownKey, renderAnswer, STORE_SETTINGS, snakeKeys, storeSettings, } from "@wirecat/cli-core/cli";
3
+ import { AI_SETTING_KEYS, itemOf, LOCAL_READ, NONE_NAMED, overrideSharedContract, renderAnswer, STORE_SETTINGS, configCommand as sharedConfigCommand, snakeKeys, storeSettings, } from "@wirecat/cli-core/cli";
4
4
  import { Command } from "commander";
5
5
  import { MAX_APP } from "../app.js";
6
- import { ALL_SETTINGS, BOT_ONLY_SETTINGS, changeSetting, PERSONAL_ONLY_SETTINGS, resolveSettings, scopePath, } from "../config.js";
6
+ import { ALL_SETTINGS, BOT_ONLY_SETTINGS, configuration, PERSONAL_ONLY_SETTINGS, resolveSettings, } from "../config.js";
7
7
  import { knownProfiles } from "../diagnose.js";
8
8
  import { permissionKeyOf } from "../permissions.js";
9
- import { forCommand } from "./context.js";
9
+ import { environmentOf, forCommand } from "./context.js";
10
10
  const SHOWN = [
11
11
  ...AI_SETTING_KEYS,
12
12
  "limit",
@@ -26,6 +26,17 @@ const SHOWN = [
26
26
  "transcribeModel",
27
27
  ];
28
28
  const snakeName = (setting) => setting.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
29
+ const refuseAgentPermissionChange = (setting) => {
30
+ const key = setting.startsWith("permissions.") ? setting.slice("permissions.".length) : undefined;
31
+ if (setting === "permissions" ||
32
+ key === "mcp" ||
33
+ key?.startsWith("mcp.") ||
34
+ key === "bot.api" ||
35
+ key?.startsWith("bot.api."))
36
+ throw new CliError("permission_error", "an agent cannot replace permissions or change permissions.mcp or permissions.bot.api — the owner sets them in a terminal", {
37
+ permission: key ?? "mcp.authority",
38
+ });
39
+ };
29
40
  export const configCommand = () => {
30
41
  const command = annotate(new Command("config"), {}).description("the settings in force, and where each one came from");
31
42
  /**
@@ -71,54 +82,20 @@ export const configCommand = () => {
71
82
  "so a session made without them reads as none");
72
83
  }
73
84
  });
74
- for (const action of ["set", "unset"]) {
75
- const sub = grantsAuthority(annotate(command.command(action), { effects: LOCAL_WRITE, mcp: false }))
76
- .argument("<setting>", `one of: ${[...ALL_SETTINGS, ...STORE_SETTINGS].join(", ")}`)
77
- .option("--defaults", "change what every profile gets, rather than this profile")
78
- .option("--personal", "only for personal accounts — the personal section of the file")
79
- .option("--bot", "only for bots — the bot section of the file");
80
- if (action === "set")
81
- sub
82
- .argument("<value>", "a number, true or false, or a list like contacts,polls")
83
- .description("save a setting to the configuration file");
84
- else
85
- sub.description("remove a setting from the configuration file");
86
- sub.action(async function (setting, given) {
87
- const value = action === "set" ? String(given) : undefined;
88
- const flags = this.opts();
89
- const { settings, renderer, format, streams } = forCommand(this, {
90
- needsProfile: !flags.defaults && setting !== "default_profile" && !isStoreSetting(setting),
91
- });
92
- if (flags.personal && flags.bot) {
93
- throw new CliError("validation_error", "--personal and --bot name different sections; use one");
94
- }
95
- if (isStoreSetting(setting)) {
96
- if (flags.defaults || flags.personal || flags.bot)
97
- throw new CliError("validation_error", `${setting} is store-wide; profile-scope flags do not apply`);
98
- if (process.env.MAX_PROFILE_LOCK)
99
- throw new CliError("permission_error", `${setting} changes every profile; run outside MAX_PROFILE_LOCK`);
100
- const { result, note } = await changeStoreSetting(MAX_APP, process.env, setting, value);
101
- renderAnswer(this, { renderer, format, streams }, itemOf(result));
102
- renderer.note(note);
103
- return;
104
- }
105
- const kind = flags.bot ? "bot" : flags.personal ? "personal" : undefined;
106
- const defaults = flags.defaults === true;
107
- if ((defaults || setting === "default_profile") && process.env.MAX_PROFILE_LOCK) {
108
- // Both reach past this profile: the defaults are every profile's, default_profile picks one.
109
- throw new CliError("permission_error", `this process is locked to profile ${settings.profile} (MAX_PROFILE_LOCK) — ${setting === "default_profile" ? "default_profile" : "--defaults"} changes other profiles`);
110
- }
111
- if (value !== undefined)
112
- refuseUnknownKey(this, setting, value, permissionKeyOf);
113
- const scope = { profile: defaults ? undefined : settings.profile, kind };
114
- const saved = changeSetting(settings.configPath, { ...scope, setting, value });
115
- renderAnswer(this, { renderer, format, streams }, itemOf({
116
- config_file: settings.configPath,
117
- scope: setting === "default_profile" ? "default_profile" : scopePath(scope),
118
- setting,
119
- value: saved,
120
- }));
85
+ const shared = sharedConfigCommand(MAX_APP, configuration, { permissionKey: permissionKeyOf });
86
+ for (const sub of shared.commands.filter((child) => child.name() !== "show")) {
87
+ overrideSharedContract(sub, "MAX lists its provider-specific settings and accepted configuration value forms.", () => {
88
+ const [setting, value] = sub.registeredArguments;
89
+ if (setting)
90
+ setting.description = `one of: ${[...ALL_SETTINGS.filter((key) => sub.name() === "unset" || key !== "default_profile"), ...STORE_SETTINGS].join(", ")}`;
91
+ if (value)
92
+ value.description = "a number, true or false, or a list like contacts,polls";
93
+ });
94
+ sub.hook("preAction", (_parent, action) => {
95
+ if (environmentOf(action).agent)
96
+ refuseAgentPermissionChange(String(action.processedArgs[0]));
121
97
  });
98
+ command.addCommand(sub);
122
99
  }
123
100
  return command;
124
101
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,3 @@
1
1
  import { Command } from "commander";
2
- /**
3
- * The people this account has a one-to-one chat with.
4
- *
5
- * Not "the address book": MAX has an opcode that tsmax calls `CONTACT_LIST` and the protocol
6
- * documentation calls `GET_BLOCKED`, and until somebody has watched what it actually returns, this
7
- * lists what we can establish without guessing.
8
- */
9
2
  export declare const contactsCommand: () => Command;
10
3
  //# sourceMappingURL=contacts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/commands/contacts.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,QAAO,OAwFlC,CAAA"}
1
+ {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/commands/contacts.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuGnC,eAAO,MAAM,eAAe,eAMzB,CAAA"}
@@ -1,7 +1,8 @@
1
1
  import { CliError } from "@wirecat/cli-base";
2
- import { annotate } from "@wirecat/cli-base/commands";
2
+ import { annotate, customizeSharedCommand } from "@wirecat/cli-base/commands";
3
3
  import { FETCH, itemOf, REMOTE_READ, renderAnswer, contactsCommand as sharedContactsCommand, snakeKeys, } from "@wirecat/cli-core/cli";
4
4
  import { Command } from "commander";
5
+ import { SHELL_OVERRIDES } from "../contract-overrides.js";
5
6
  import { maxMessenger, sharedSubcommand } from "../messenger.js";
6
7
  import { maxRecord } from "../record.js";
7
8
  import { forCommand } from "./context.js";
@@ -12,13 +13,13 @@ import { forCommand } from "./context.js";
12
13
  * documentation calls `GET_BLOCKED`, and until somebody has watched what it actually returns, this
13
14
  * lists what we can establish without guessing.
14
15
  */
15
- export const contactsCommand = () => {
16
+ const contactsCommandDefinition = () => {
16
17
  const command = new Command("contacts").description("people you have a one-to-one chat with");
17
18
  const shared = sharedContactsCommand(maxMessenger);
18
19
  command.addCommand(sharedSubcommand(shared, "list"));
19
20
  command.addCommand(sharedSubcommand(shared, "show"));
20
- command.addCommand(sharedSubcommand(shared, "profile"));
21
- command.addCommand(sharedSubcommand(shared, "alias"));
21
+ command.addCommand(sharedSubcommand(shared, "info"));
22
+ command.addCommand(sharedSubcommand(shared, "aliases"));
22
23
  command.addCommand(sharedSubcommand(shared, "notes"));
23
24
  /**
24
25
  * The repair tool of the contact store, and **not how contacts normally arrive**: every command
@@ -28,7 +29,7 @@ export const contactsCommand = () => {
28
29
  * ⚠ **The summary is counts.** No name, no username, no description, no phone number — a person
29
30
  * in a diagnostic is the one leak this project's sixth constraint is about.
30
31
  */
31
- annotate(command.command("sync"), { effects: FETCH })
32
+ annotate(command.command("sync"), { effects: FETCH, output: { entity: "contact_sync" } })
32
33
  .description("forget where the last sync left off and take the whole list again")
33
34
  .action(async function () {
34
35
  const context = forCommand(this);
@@ -51,7 +52,7 @@ export const contactsCommand = () => {
51
52
  * ⚠ **The number is asked for, never an argument**: argv is read by `ps` and kept by shell
52
53
  * history, and a phone number is what the sixth constraint names.
53
54
  */
54
- annotate(command.command("lookup"), { effects: REMOTE_READ })
55
+ annotate(command.command("lookup"), { effects: REMOTE_READ, output: { entity: "contact_lookup" } })
55
56
  .description("who MAX has under a phone number — asks for it, or reads it from stdin")
56
57
  .allowExcessArguments()
57
58
  .action(async function () {
@@ -82,7 +83,7 @@ export const contactsCommand = () => {
82
83
  "import",
83
84
  "context",
84
85
  "prepare",
85
- "timeline",
86
+ "events",
86
87
  "check",
87
88
  "link",
88
89
  "unlink",
@@ -91,4 +92,5 @@ export const contactsCommand = () => {
91
92
  }
92
93
  return command;
93
94
  };
95
+ export const contactsCommand = () => customizeSharedCommand(sharedContactsCommand(maxMessenger), "MAX keeps its native contact lookup and full sync transport while inheriting the shared contact contract defaults.", contactsCommandDefinition, SHELL_OVERRIDES.contacts);
94
96
  //# sourceMappingURL=contacts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/commands/contacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/commands/contacts.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,9 @@
1
1
  import { Command } from "commander";
2
2
  import { type Diagnosis } from "../diagnose.js";
3
- /**
4
- * The state every other command depends on, read from disk and **never from MAX**.
5
- *
6
- * ⚠ **It must answer when everything is broken**, because that is the only time anybody runs it.
7
- * No session, no configuration file, an unreadable message store, a keyring that will not
8
- * open — each is a field in the answer and none is an exception. A diagnosis that fails with
9
- * `authentication_error` when asked "do I have a session" is worth nothing.
10
- *
11
- * It is a thin shell over `diagnose` on purpose: the gathering is worth asserting on field by
12
- * field, and a command body is a worse place to do that from than a function that takes its
13
- * environment as arguments.
14
- *
15
- * `max config show` is the neighbouring half and does not overlap: that one reads what was
16
- * configured, this one reads what exists.
17
- */
18
- export declare const doctorCommand: () => Command;
19
3
  /**
20
4
  * What is wrong with how `max` is installed, and the exact command that fixes it. The fix is for
21
5
  * this platform's shell only: PowerShell on Windows, sh elsewhere.
22
6
  */
23
7
  export declare const installNotes: ({ install, native }: Diagnosis, note: (message: string) => void) => void;
8
+ export declare const doctorCommand: () => Command;
24
9
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,gBAAgB,CAAA;AAUzD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,QAAO,OAoGhC,CAAA;AAqMD;;;GAGG;AACH,eAAO,MAAM,YAAY,wBAAyB,SAAS,QAAQ,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAG,IAqB9F,CAAA"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,gBAAgB,CAAA;AAwUzD;;;GAGG;AACH,eAAO,MAAM,YAAY,wBAAyB,SAAS,QAAQ,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAG,IAqB9F,CAAA;AAuCD,eAAO,MAAM,aAAa,eAMvB,CAAA"}
@@ -1,14 +1,16 @@
1
1
  import { resolve } from "node:path";
2
2
  import { CliError, writeSecurely } from "@wirecat/cli-base";
3
- import { annotate } from "@wirecat/cli-base/commands";
4
- import { destroysNothing, itemOf, LOCAL_WRITE, outputFor, REMOTE_READ, renderAnswer, runsDirFor, snakeKeys, } from "@wirecat/cli-core/cli";
3
+ import { annotate, customizeSharedCommand } from "@wirecat/cli-base/commands";
4
+ import { destroysNothing, itemOf, LOCAL_WRITE, outputFor, REMOTE_READ, renderAnswer, runsDirFor, doctorCommand as sharedDoctorCommand, snakeKeys, } from "@wirecat/cli-core/cli";
5
5
  import { SendJournal } from "@wirecat/cli-core/sends";
6
6
  import { Command } from "commander";
7
7
  import { MAX_APP } from "../app.js";
8
8
  import { BotTokenStore } from "../bot/auth.js";
9
9
  import { BotApiClient } from "../bot/client.js";
10
+ import { SHELL_OVERRIDES } from "../contract-overrides.js";
10
11
  import { diagnose } from "../diagnose.js";
11
12
  import { ownScript } from "../install.js";
13
+ import { maxMessenger } from "../messenger.js";
12
14
  import { checkOnline, mcpHandshake } from "../online.js";
13
15
  import { shownTime } from "../output.js";
14
16
  import { asFirstWord } from "../profile.js";
@@ -31,7 +33,7 @@ import { environmentOf, forCommand } from "./context.js";
31
33
  * `max config show` is the neighbouring half and does not overlap: that one reads what was
32
34
  * configured, this one reads what exists.
33
35
  */
34
- export const doctorCommand = () => {
36
+ const doctorCommandDefinition = () => {
35
37
  const command = annotate(new Command("doctor"), { effects: REMOTE_READ })
36
38
  .description("the state this installation is in, without contacting MAX unless --online")
37
39
  .option("--online", "also log in once, read one chat and start the MCP server; sends nothing");
@@ -165,12 +167,17 @@ const EXCLUDES = ["текстов сообщений", "названий чат
165
167
  * steps (`NEED-267`).
166
168
  */
167
169
  const reportCommand = () => {
168
- const report = annotate(new Command("report"), { effects: REMOTE_READ }).description("what a problem report holds and where it goes; writes nothing");
169
- report.action(async function () {
170
+ const report = new Command("reports").description("problem reports");
171
+ annotate(report.command("show"), { effects: REMOTE_READ, examples: ["max doctor reports show"] })
172
+ .description("what a problem report holds and where it goes; writes nothing")
173
+ .action(async function () {
170
174
  const { renderer, format, streams, run } = forCommand(this);
171
- await run("doctor report", async () => explain(this, { renderer, format, streams }));
175
+ await run("doctor reports show", async () => explain(this, { renderer, format, streams }));
172
176
  });
173
- destroysNothing(annotate(report.command("create"), { effects: LOCAL_WRITE, mcp: false }))
177
+ destroysNothing(annotate(report.command("create"), {
178
+ effects: LOCAL_WRITE,
179
+ examples: ["max personal doctor reports create --output ./problem-report.json"],
180
+ }))
174
181
  .description("write a problem report to a file, and print how to send it")
175
182
  .option("--run <id>", "the run the report is about; the newest failed one if not given")
176
183
  .option("--output <file>", "where to write it; a new file in this directory if not given")
@@ -233,14 +240,14 @@ const reportCommand = () => {
233
240
  "сообщений — метки.",
234
241
  ].join("\n"));
235
242
  };
236
- await (context ? context.run("doctor report create", create) : create());
243
+ await (context ? context.run("doctor reports create", create) : create());
237
244
  });
238
245
  return report;
239
246
  };
240
247
  const explain = (command, output) => {
241
248
  const { format, streams } = output;
242
249
  if (format !== "pretty") {
243
- renderAnswer(command, output, itemOf({ send_to: REPORT_URL, includes: INCLUDES, excludes: EXCLUDES, create: "max doctor report create" }));
250
+ renderAnswer(command, output, itemOf({ send_to: REPORT_URL, includes: INCLUDES, excludes: EXCLUDES, create: "max doctor reports create" }));
244
251
  return;
245
252
  }
246
253
  streams.data([
@@ -252,8 +259,8 @@ const explain = (command, output) => {
252
259
  `В файле нет: ${EXCLUDES.join(", ")}.`,
253
260
  "Задачи на GitHub видны всем — и приложенный файл тоже.",
254
261
  "",
255
- "Создать отчёт: max doctor report create",
256
- "Про определённый запуск: max doctor report create --run <id> (номера — max runs list)",
262
+ "Создать отчёт: max doctor reports create",
263
+ "Про определённый запуск: max doctor reports create --run <id> (номера — max runs list)",
257
264
  ].join("\n"));
258
265
  };
259
266
  const profileLine = ({ name, personal, bot }) => `${name} (${[personal ? "personal" : "", bot ? "bot" : ""].filter(Boolean).join(" + ") || "not logged in"})`;
@@ -326,4 +333,5 @@ const storeLine = (store) => {
326
333
  return `schema ${store.schema}, ${store.chats ?? 0} chats, ${store.messages ?? 0} messages in ${store.path}`;
327
334
  return `not created yet (${store.path})`;
328
335
  };
336
+ export const doctorCommand = () => customizeSharedCommand(sharedDoctorCommand(maxMessenger), "MAX reports its own server, protocol library and installation while retaining the shared diagnostic defaults.", doctorCommandDefinition, SHELL_OVERRIDES.doctor);
329
337
  //# sourceMappingURL=doctor.js.map