@leemour/max-cli 0.3.0 → 0.5.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 (144) hide show
  1. package/README.md +7 -0
  2. package/dist/bin/max.js +0 -0
  3. package/dist/cache/store.d.ts +18 -15
  4. package/dist/cache/store.d.ts.map +1 -1
  5. package/dist/cache/store.js +47 -8
  6. package/dist/cache/store.js.map +1 -1
  7. package/dist/client.d.ts +53 -10
  8. package/dist/client.d.ts.map +1 -1
  9. package/dist/client.js +252 -59
  10. package/dist/client.js.map +1 -1
  11. package/dist/commands/account.js +1 -1
  12. package/dist/commands/account.js.map +1 -1
  13. package/dist/commands/body.d.ts +23 -0
  14. package/dist/commands/body.d.ts.map +1 -0
  15. package/dist/commands/body.js +36 -0
  16. package/dist/commands/body.js.map +1 -0
  17. package/dist/commands/cache.js +2 -2
  18. package/dist/commands/cache.js.map +1 -1
  19. package/dist/commands/chats.d.ts.map +1 -1
  20. package/dist/commands/chats.js +21 -1
  21. package/dist/commands/chats.js.map +1 -1
  22. package/dist/commands/config.d.ts +3 -0
  23. package/dist/commands/config.d.ts.map +1 -0
  24. package/dist/commands/config.js +82 -0
  25. package/dist/commands/config.js.map +1 -0
  26. package/dist/commands/contacts.d.ts.map +1 -1
  27. package/dist/commands/contacts.js +20 -2
  28. package/dist/commands/contacts.js.map +1 -1
  29. package/dist/commands/context.d.ts +23 -2
  30. package/dist/commands/context.d.ts.map +1 -1
  31. package/dist/commands/context.js +43 -7
  32. package/dist/commands/context.js.map +1 -1
  33. package/dist/commands/doctor.d.ts +18 -0
  34. package/dist/commands/doctor.d.ts.map +1 -0
  35. package/dist/commands/doctor.js +72 -0
  36. package/dist/commands/doctor.js.map +1 -0
  37. package/dist/commands/messages.d.ts.map +1 -1
  38. package/dist/commands/messages.js +114 -7
  39. package/dist/commands/messages.js.map +1 -1
  40. package/dist/commands/runs.d.ts.map +1 -1
  41. package/dist/commands/runs.js +4 -6
  42. package/dist/commands/runs.js.map +1 -1
  43. package/dist/commands/session.js +2 -2
  44. package/dist/commands/session.js.map +1 -1
  45. package/dist/commands/skill.d.ts +3 -0
  46. package/dist/commands/skill.d.ts.map +1 -0
  47. package/dist/commands/skill.js +23 -0
  48. package/dist/commands/skill.js.map +1 -0
  49. package/dist/config.d.ts +80 -11
  50. package/dist/config.d.ts.map +1 -1
  51. package/dist/config.js +177 -21
  52. package/dist/config.js.map +1 -1
  53. package/dist/deadline.d.ts +30 -0
  54. package/dist/deadline.d.ts.map +1 -0
  55. package/dist/deadline.js +45 -0
  56. package/dist/deadline.js.map +1 -0
  57. package/dist/diagnose.d.ts +68 -0
  58. package/dist/diagnose.d.ts.map +1 -0
  59. package/dist/diagnose.js +115 -0
  60. package/dist/diagnose.js.map +1 -0
  61. package/dist/domain/map.js +6 -1
  62. package/dist/domain/map.js.map +1 -1
  63. package/dist/domain/models.d.ts +32 -1
  64. package/dist/domain/models.d.ts.map +1 -1
  65. package/dist/domain/models.js +11 -1
  66. package/dist/domain/models.js.map +1 -1
  67. package/dist/download.d.ts +15 -0
  68. package/dist/download.d.ts.map +1 -0
  69. package/dist/download.js +60 -0
  70. package/dist/download.js.map +1 -0
  71. package/dist/generated/client.generated.d.ts +4 -0
  72. package/dist/generated/client.generated.d.ts.map +1 -1
  73. package/dist/generated/client.generated.js +4 -0
  74. package/dist/generated/client.generated.js.map +1 -1
  75. package/dist/generated/opcodes.generated.d.ts +2 -0
  76. package/dist/generated/opcodes.generated.d.ts.map +1 -1
  77. package/dist/generated/opcodes.generated.js +2 -0
  78. package/dist/generated/opcodes.generated.js.map +1 -1
  79. package/dist/generated/operations.generated.d.ts +13 -0
  80. package/dist/generated/operations.generated.d.ts.map +1 -1
  81. package/dist/generated/operations.generated.js +3 -0
  82. package/dist/generated/operations.generated.js.map +1 -1
  83. package/dist/program.d.ts +2 -1
  84. package/dist/program.d.ts.map +1 -1
  85. package/dist/program.js +11 -0
  86. package/dist/program.js.map +1 -1
  87. package/dist/protocol/connection.d.ts.map +1 -1
  88. package/dist/protocol/connection.js +9 -0
  89. package/dist/protocol/connection.js.map +1 -1
  90. package/dist/rendering/messages.d.ts +3 -3
  91. package/dist/rendering/messages.d.ts.map +1 -1
  92. package/dist/rendering/messages.js +2 -1
  93. package/dist/rendering/messages.js.map +1 -1
  94. package/dist/runs/recording.d.ts.map +1 -1
  95. package/dist/runs/recording.js +7 -0
  96. package/dist/runs/recording.js.map +1 -1
  97. package/dist/runs/run.d.ts +2 -0
  98. package/dist/runs/run.d.ts.map +1 -1
  99. package/dist/runs/run.js +1 -0
  100. package/dist/runs/run.js.map +1 -1
  101. package/dist/session/handshake.d.ts +1 -1
  102. package/dist/spec/index.d.ts.map +1 -1
  103. package/dist/spec/index.js +3 -0
  104. package/dist/spec/index.js.map +1 -1
  105. package/dist/spec/operations/attachments.d.ts +15 -0
  106. package/dist/spec/operations/attachments.d.ts.map +1 -0
  107. package/dist/spec/operations/attachments.js +38 -0
  108. package/dist/spec/operations/attachments.js.map +1 -0
  109. package/dist/testing/mock-max.d.ts +8 -3
  110. package/dist/testing/mock-max.d.ts.map +1 -1
  111. package/dist/testing/mock-max.js +20 -2
  112. package/dist/testing/mock-max.js.map +1 -1
  113. package/dist/testing/sandbox.js +10 -1
  114. package/dist/testing/sandbox.js.map +1 -1
  115. package/dist/testing/unscripted.d.ts +2 -0
  116. package/dist/testing/unscripted.d.ts.map +1 -0
  117. package/dist/testing/unscripted.js +18 -0
  118. package/dist/testing/unscripted.js.map +1 -0
  119. package/dist/version.d.ts +1 -1
  120. package/dist/version.js +1 -1
  121. package/package.json +28 -22
  122. package/skills/max-cli/SKILL.md +91 -0
  123. package/dist/commands/login.d.ts +0 -15
  124. package/dist/commands/login.d.ts.map +0 -1
  125. package/dist/commands/login.js +0 -43
  126. package/dist/commands/login.js.map +0 -1
  127. package/dist/commands/logout.d.ts +0 -10
  128. package/dist/commands/logout.d.ts.map +0 -1
  129. package/dist/commands/logout.js +0 -22
  130. package/dist/commands/logout.js.map +0 -1
  131. package/dist/commands/me.d.ts +0 -3
  132. package/dist/commands/me.d.ts.map +0 -1
  133. package/dist/commands/me.js +0 -18
  134. package/dist/commands/me.js.map +0 -1
  135. package/dist/commands/send.d.ts +0 -10
  136. package/dist/commands/send.d.ts.map +0 -1
  137. package/dist/commands/send.js +0 -30
  138. package/dist/commands/send.js.map +0 -1
  139. package/dist/protocol/session.d.ts +0 -54
  140. package/dist/protocol/session.d.ts.map +0 -1
  141. package/dist/protocol/session.js +0 -57
  142. package/dist/protocol/session.js.map +0 -1
  143. package/dist/spec/operations/auth.d.ts +0 -42
  144. package/dist/spec/operations/auth.d.ts.map +0 -1
@@ -1,7 +1,9 @@
1
1
  import { CliError } from "@leemour/cli-core";
2
2
  import { Command } from "commander";
3
3
  import { openProfileCache } from "../cache/index.js";
4
+ import { save } from "../download.js";
4
5
  import { renderMessages } from "../rendering/messages.js";
6
+ import { readBody } from "./body.js";
5
7
  import { forCommand } from "./context.js";
6
8
  import { renderPage } from "./paging.js";
7
9
  export const messagesCommand = () => {
@@ -19,17 +21,27 @@ export const messagesCommand = () => {
19
21
  // rather than approximate. A message id is what the reader has in front of them, having just
20
22
  // read the output; an ISO 8601 time is what still works once that message is gone.
21
23
  .option("--before <id-or-time>", "read what came before this message id, or this ISO 8601 time")
24
+ .option("--after <id-or-time>", "read what came after this message id, or this ISO 8601 time; not with --before")
22
25
  .action(async function (chat) {
23
26
  const options = this.optsWithGlobals();
24
- const context = forCommand(options);
27
+ if (options.before !== undefined && options.after !== undefined) {
28
+ throw new CliError("validation_error", "--before and --after are two directions; give one of them");
29
+ }
30
+ const context = forCommand(this);
25
31
  const { renderer, settings, createClient, run } = context;
26
32
  const cache = await openProfileCache(settings.profile, { onProblem: (message) => renderer.note(message) });
27
33
  await run("messages list", async (events) => {
28
34
  const client = createClient({ events, ...(cache ? { cache } : {}) });
29
35
  try {
36
+ const anchor = options.after !== undefined
37
+ ? { after: client.messages.moment(String(options.after), "--after") }
38
+ : options.before !== undefined
39
+ ? { before: client.messages.moment(String(options.before)) }
40
+ : {};
30
41
  const chatId = await client.chats.resolve(chat);
31
- const before = options.before === undefined ? {} : { before: client.messages.before(String(options.before)) };
32
- renderPage(context, await client.messages.list(chatId, { limit: settings.limit, ...before }), feed(context), ([oldest]) => `older ones: \`--before ${oldest?.id}\``);
42
+ renderPage(context, await client.messages.list(chatId, { limit: settings.limit, ...anchor }), feed(context), (items) => "after" in anchor
43
+ ? `newer ones: \`--after ${items.at(-1)?.id}\``
44
+ : `older ones: \`--before ${items[0]?.id}\``);
33
45
  }
34
46
  finally {
35
47
  await client.close();
@@ -56,7 +68,7 @@ export const messagesCommand = () => {
56
68
  .option("--limit <n>", "how many to show", (value) => Number.parseInt(value, 10))
57
69
  .action(async function (text) {
58
70
  const options = this.optsWithGlobals();
59
- const context = forCommand(options);
71
+ const context = forCommand(this);
60
72
  const { renderer, settings, createClient, run } = context;
61
73
  const cache = await openProfileCache(settings.profile, { onProblem: (message) => renderer.note(message) });
62
74
  await run("messages search", async (events) => {
@@ -80,17 +92,75 @@ export const messagesCommand = () => {
80
92
  }
81
93
  });
82
94
  });
95
+ command
96
+ .command("show")
97
+ .argument("<chat>", "chat id, or part of a chat name")
98
+ .argument("<message>", "message id")
99
+ .description("one message by its id")
100
+ .action(async function (chat, messageId) {
101
+ await readWindow(this, chat, messageId, { before: 0, after: 0 }, "messages show");
102
+ });
103
+ command
104
+ .command("context")
105
+ .argument("<chat>", "chat id, or part of a chat name")
106
+ .argument("<message>", "message id")
107
+ .description("a message and what came either side of it, oldest first")
108
+ .option("--before <n>", "how many before it", count, 5)
109
+ .option("--after <n>", "how many after it", count, 5)
110
+ .action(async function (chat, messageId) {
111
+ const { before, after } = this.opts();
112
+ await readWindow(this, chat, messageId, { before, after }, "messages context");
113
+ });
114
+ command
115
+ .command("download")
116
+ .argument("<chat>", "chat id, or part of a chat name")
117
+ .argument("<message>", "message id")
118
+ .description("save a message's photos, files, videos and audio to a directory")
119
+ .option("--output <dir>", "where to save them", ".")
120
+ .action(async function (chat, messageId) {
121
+ const { output } = this.opts();
122
+ const context = forCommand(this);
123
+ const { renderer, format, streams, createClient, run } = context;
124
+ await run("messages download", async (events) => {
125
+ const client = createClient({ events });
126
+ try {
127
+ const chatId = await client.chats.resolve(chat);
128
+ const id = messageId.trim();
129
+ const { links, skipped } = await client.messages.links(chatId, id);
130
+ if (skipped.length > 0)
131
+ renderer.note(`not downloadable: ${skipped.join(", ")}`);
132
+ if (links.length === 0)
133
+ throw new CliError("not_found", `message ${id} has nothing to download`);
134
+ const saved = [];
135
+ for (const [index, attachment] of links.entries()) {
136
+ if (attachment.unsafe)
137
+ renderer.note(`MAX marks ${attachment.name ?? "this file"} as possibly unsafe`);
138
+ saved.push(await save(attachment, output, `${id}-${index + 1}`));
139
+ }
140
+ if (format === "pretty")
141
+ streams.data(`${saved.map((file) => file.path).join("\n")}\n`);
142
+ else
143
+ renderer.result({ items: saved });
144
+ }
145
+ finally {
146
+ await client.close();
147
+ }
148
+ });
149
+ });
83
150
  /**
84
151
  * One message, one command, no retry.
85
152
  *
86
153
  * There is no `--dry-run` here: the target and the text are both in the line the person typed, so
87
154
  * a preview would restate the command back at them (REQUIREMENTS §21). What this command does owe
88
155
  * the caller is honesty about an outcome it does not know — see `MaxClient.messages.send`.
156
+ *
157
+ * **The body may come from a pipe instead**, by leaving the argument off — `readBody` says why
158
+ * argv is the wrong place for it and why omission is the signal rather than a flag.
89
159
  */
90
160
  command
91
161
  .command("send")
92
162
  .argument("<chat>", "chat id, or part of a chat name")
93
- .argument("<text>", "what to say")
163
+ .argument("[text]", "what to say; leave it off to read the message from stdin")
94
164
  .description("send one text message")
95
165
  .option("--cid <n>", "reuse a client id from an earlier ambiguous send; MAX collapses the duplicate", (value) => Number.parseInt(value, 10))
96
166
  // `notify` is part of MSG_SEND and has always been sent as `true`. It is the one send option
@@ -99,13 +169,16 @@ export const messagesCommand = () => {
99
169
  .option("--silent", "deliver without a notification")
100
170
  .action(async function (chat, text) {
101
171
  const options = this.optsWithGlobals();
102
- const { renderer, settings, createClient, run } = forCommand(options);
172
+ const { renderer, settings, createClient, run } = forCommand(this);
173
+ // Before the run directory and before the socket: a body we cannot read is a command that
174
+ // never attempted anything, so there is nothing to record and nothing to close.
175
+ const body = text ?? (await readBody());
103
176
  const cache = await openProfileCache(settings.profile, { onProblem: (message) => renderer.note(message) });
104
177
  await run("messages send", async (events) => {
105
178
  const client = createClient({ events, ...(cache ? { cache } : {}) });
106
179
  try {
107
180
  const chatId = await client.chats.resolve(chat);
108
- const sent = await client.messages.send(chatId, text, {
181
+ const sent = await client.messages.send(chatId, body, {
109
182
  ...(options.cid === undefined ? {} : { cid: options.cid }),
110
183
  ...(options.silent === true ? { notify: false } : {}),
111
184
  });
@@ -138,4 +211,38 @@ const offlineChat = (reference) => {
138
211
  throw new CliError("validation_error", `\`messages search --chat\` takes a chat id, not a name — searching never connects, and a name ` +
139
212
  `can only be resolved by asking MAX. \`max chats list --search ${trimmed}\` gives you the id.`);
140
213
  };
214
+ const count = (value) => {
215
+ const parsed = Number.parseInt(value, 10);
216
+ if (!Number.isInteger(parsed) || parsed < 0 || parsed > 100) {
217
+ throw new CliError("validation_error", `expected a number from 0 to 100, not "${value}"`);
218
+ }
219
+ return parsed;
220
+ };
221
+ /**
222
+ * `show` is a window of none either side. **In JSON the one asked for carries `anchor: true`**
223
+ * (`NEED-131`); `show` answers the bare message, `context` an object holding the window.
224
+ */
225
+ const readWindow = async (command, chat, messageId, window, name) => {
226
+ const context = forCommand(command);
227
+ const { renderer, settings, createClient, run, format, streams } = context;
228
+ const cache = await openProfileCache(settings.profile, { onProblem: (message) => renderer.note(message) });
229
+ await run(name, async (events) => {
230
+ const client = createClient({ events, ...(cache ? { cache } : {}) });
231
+ try {
232
+ const chatId = await client.chats.resolve(chat);
233
+ const found = await client.messages.around(chatId, messageId.trim(), window);
234
+ const single = window.before === 0 && window.after === 0;
235
+ if (format === "pretty")
236
+ streams.data(feed(context)(found));
237
+ else if (format === "jsonl")
238
+ renderer.stream(found);
239
+ else
240
+ renderer.result(single ? found[0] : { items: found });
241
+ }
242
+ finally {
243
+ await client.close();
244
+ cache?.close();
245
+ }
246
+ });
247
+ };
141
248
  //# sourceMappingURL=messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/commands/runs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,OAgD9B,CAAA"}
1
+ {"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/commands/runs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,OA8C9B,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { CliError } from "@leemour/cli-core";
2
2
  import { Command } from "commander";
3
- import { resolveOutput } from "../output.js";
4
3
  import { findRun, listRuns, readEvents, runsDirFor } from "../runs/run.js";
4
+ import { outputFor } from "./context.js";
5
5
  /**
6
6
  * What this tool did, when it was asked to keep the record.
7
7
  *
@@ -16,7 +16,7 @@ export const runsCommand = () => {
16
16
  .option("--limit <n>", "how many to show", (value) => Number.parseInt(value, 10), 20)
17
17
  .action(function () {
18
18
  const options = this.optsWithGlobals();
19
- const { renderer } = resolveOutput(options);
19
+ const { renderer } = outputFor(this);
20
20
  const runs = listRuns(runsDirFor());
21
21
  renderer.result(runs.slice(0, options.limit));
22
22
  // An empty list reads as broken otherwise, and the reason is that nothing asked for a
@@ -30,8 +30,7 @@ export const runsCommand = () => {
30
30
  .argument("<run-id>", "an id from `max runs list`")
31
31
  .description("one run: what it was, and one line per request")
32
32
  .action(function (id) {
33
- const options = this.optsWithGlobals();
34
- const { renderer } = resolveOutput(options);
33
+ const { renderer } = outputFor(this);
35
34
  const found = runOrRefuse(id);
36
35
  // Both, because neither answers the question on its own: the metadata says how it ended and
37
36
  // the events say where it went.
@@ -42,8 +41,7 @@ export const runsCommand = () => {
42
41
  .argument("<run-id>", "an id from `max runs list`")
43
42
  .description("the directory holding one run")
44
43
  .action(function (id) {
45
- const options = this.optsWithGlobals();
46
- const { renderer } = resolveOutput(options);
44
+ const { renderer } = outputFor(this);
47
45
  // One JSON value on stdout here too, with no exception for convenience (`NEED-88`): a script
48
46
  // reads `--json | jq -r .path`, and a terminal prints the bare path as a labelled line.
49
47
  renderer.result({ path: runOrRefuse(id).dir });
@@ -1 +1 @@
1
- {"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/commands/runs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/commands/runs.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export const sessionCommand = () => {
21
21
  .command("start")
22
22
  .description("store a MAX session for this profile")
23
23
  .action(async function () {
24
- const { renderer, settings, store, createClient, run } = forCommand(this.optsWithGlobals());
24
+ const { renderer, settings, store, createClient, run } = forCommand(this);
25
25
  // Creation is the only moment the collision can still be explained; after this the name is
26
26
  // written down and `max <name>` would silently be a command instead.
27
27
  refuseCommandName(settings.profile, commandWords(rootOf(this)));
@@ -57,7 +57,7 @@ export const sessionCommand = () => {
57
57
  .command("end")
58
58
  .description("forget the stored session for this profile")
59
59
  .action(async function () {
60
- const { renderer, store, run } = forCommand(this.optsWithGlobals());
60
+ const { renderer, store, run } = forCommand(this);
61
61
  // It contacts nobody, so the run holds no events — but forgetting a session is an action, and
62
62
  // "when did this profile stop working" is a question the record is kept to answer.
63
63
  await run("session end", async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const skillCommand: () => Command;
3
+ //# sourceMappingURL=skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,eAAO,MAAM,YAAY,QAAO,OAgB/B,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { Command } from "commander";
3
+ import { forCommand } from "./context.js";
4
+ /** Beside `dist/` in the package and in a checkout alike, so the skill is always this version's. */
5
+ const SKILL = new URL("../../skills/max-cli/SKILL.md", import.meta.url);
6
+ export const skillCommand = () => {
7
+ const command = new Command("skill").description("the instructions an agent is given for this tool");
8
+ command
9
+ .command("show")
10
+ .description("print SKILL.md — `max skill show > ~/.claude/skills/max-cli/SKILL.md` installs it")
11
+ .action(function () {
12
+ const { settings, renderer, streams } = forCommand(this);
13
+ const content = readFileSync(SKILL, "utf8").trimEnd();
14
+ // The file itself even into a pipe: installing it *is* a redirect, and a redirect is where
15
+ // every other command switches to JSON. Asked for by name, it is JSON like the rest.
16
+ if (settings.json || settings.jsonl)
17
+ renderer.result({ name: "max-cli", content });
18
+ else
19
+ streams.data(content);
20
+ });
21
+ return command;
22
+ };
23
+ //# sourceMappingURL=skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,oGAAoG;AACpG,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,+BAA+B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEvE,MAAM,CAAC,MAAM,YAAY,GAAG,GAAY,EAAE;IACxC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,kDAAkD,CAAC,CAAA;IAEpG,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,mFAAmF,CAAC;SAChG,MAAM,CAAC;QACN,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QACxD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;QACrD,2FAA2F;QAC3F,qFAAqF;QACrF,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK;YAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA;;YAC7E,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEJ,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
package/dist/config.d.ts CHANGED
@@ -1,17 +1,38 @@
1
1
  import * as v from "valibot";
2
+ declare const profileSettings: v.StrictObjectSchema<{
3
+ limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<(issue: v.BaseIssue<unknown>) => string>, v.IntegerAction<number, (issue: v.BaseIssue<unknown>) => string>, v.MinValueAction<number, 1, (issue: v.BaseIssue<unknown>) => string>]>, undefined>;
4
+ timeoutMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<(issue: v.BaseIssue<unknown>) => string>, v.IntegerAction<number, (issue: v.BaseIssue<unknown>) => string>, v.MinValueAction<number, 1, (issue: v.BaseIssue<unknown>) => string>]>, undefined>;
5
+ color: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
6
+ senderColors: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
7
+ /** The run log reads these two; nothing records anything until it exists. */
8
+ record: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
9
+ keepRunsForDays: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<(issue: v.BaseIssue<unknown>) => string>, v.IntegerAction<number, (issue: v.BaseIssue<unknown>) => string>, v.MinValueAction<number, 1, (issue: v.BaseIssue<unknown>) => string>]>, undefined>;
10
+ }, v.ErrorMessage<v.StrictObjectIssue>>;
2
11
  export declare const configSchema: v.StrictObjectSchema<{
3
- readonly defaultProfile: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
4
- readonly profiles: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
5
- readonly limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
6
- readonly timeoutMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
7
- readonly color: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
8
- readonly senderColors: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
12
+ defaultProfile: v.OptionalSchema<v.StringSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
13
+ /** What every profile gets unless it says otherwise. */
14
+ defaults: v.OptionalSchema<v.StrictObjectSchema<{
15
+ limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<(issue: v.BaseIssue<unknown>) => string>, v.IntegerAction<number, (issue: v.BaseIssue<unknown>) => string>, v.MinValueAction<number, 1, (issue: v.BaseIssue<unknown>) => string>]>, undefined>;
16
+ timeoutMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<(issue: v.BaseIssue<unknown>) => string>, v.IntegerAction<number, (issue: v.BaseIssue<unknown>) => string>, v.MinValueAction<number, 1, (issue: v.BaseIssue<unknown>) => string>]>, undefined>;
17
+ color: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
18
+ senderColors: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
9
19
  /** The run log reads these two; nothing records anything until it exists. */
10
- readonly record: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
11
- readonly keepRunsForDays: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
12
- }, undefined>, undefined>, {}>;
13
- }, undefined>;
20
+ record: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
21
+ keepRunsForDays: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<(issue: v.BaseIssue<unknown>) => string>, v.IntegerAction<number, (issue: v.BaseIssue<unknown>) => string>, v.MinValueAction<number, 1, (issue: v.BaseIssue<unknown>) => string>]>, undefined>;
22
+ }, v.ErrorMessage<v.StrictObjectIssue>>, undefined>;
23
+ profiles: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
24
+ limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<(issue: v.BaseIssue<unknown>) => string>, v.IntegerAction<number, (issue: v.BaseIssue<unknown>) => string>, v.MinValueAction<number, 1, (issue: v.BaseIssue<unknown>) => string>]>, undefined>;
25
+ timeoutMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<(issue: v.BaseIssue<unknown>) => string>, v.IntegerAction<number, (issue: v.BaseIssue<unknown>) => string>, v.MinValueAction<number, 1, (issue: v.BaseIssue<unknown>) => string>]>, undefined>;
26
+ color: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
27
+ senderColors: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
28
+ /** The run log reads these two; nothing records anything until it exists. */
29
+ record: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
30
+ keepRunsForDays: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<(issue: v.BaseIssue<unknown>) => string>, v.IntegerAction<number, (issue: v.BaseIssue<unknown>) => string>, v.MinValueAction<number, 1, (issue: v.BaseIssue<unknown>) => string>]>, undefined>;
31
+ }, v.ErrorMessage<v.StrictObjectIssue>>, "has to be an object of profiles, by name">, {}>;
32
+ }, v.ErrorMessage<v.StrictObjectIssue>>;
14
33
  export type Config = v.InferOutput<typeof configSchema>;
34
+ export type ProfileSetting = keyof v.InferOutput<typeof profileSettings>;
35
+ export declare const PROFILE_SETTINGS: ProfileSetting[];
15
36
  /** Whatever the command line carried. Everything is optional: absent means "not given here". */
16
37
  export interface GlobalFlags {
17
38
  profile?: string;
@@ -24,9 +45,12 @@ export interface GlobalFlags {
24
45
  page?: number;
25
46
  all?: boolean;
26
47
  record?: boolean;
48
+ /** Raw text from `--timeout`, parsed here so the unit rule lives in one place. */
49
+ timeout?: string;
27
50
  }
28
51
  export interface Settings {
29
52
  profile: string;
53
+ /** Where the profile came from, decided here so nothing has to re-derive the order. */
30
54
  json: boolean;
31
55
  jsonl: boolean;
32
56
  quiet: boolean;
@@ -44,11 +68,31 @@ export interface Settings {
44
68
  all: boolean;
45
69
  /** Unset means the transport's own default; the number lives in `protocol/connection.ts`. */
46
70
  timeoutMs: number | undefined;
71
+ /**
72
+ * How long the **whole command** may take, or `undefined` for no bound.
73
+ *
74
+ * ⚠ Not the same thing as `timeoutMs`, which is one request's wait. One read is a connect, an
75
+ * INIT, a LOGIN, a name to resolve and then the request itself, so the wall clock is a multiple
76
+ * of `timeoutMs` and never equal to it. An agent given thirty seconds needs to say *thirty
77
+ * seconds*, and this is the only setting that means that.
78
+ *
79
+ * They are spelled differently on purpose — a number of milliseconds in the file, a duration
80
+ * with a unit on the command line — because two settings called "timeout" that mean different
81
+ * things are otherwise a trap.
82
+ */
83
+ commandTimeoutMs: number | undefined;
47
84
  record: boolean;
48
85
  keepRunsForDays: number;
49
86
  /** Named in errors and in `max --help`, so a person can find the file that decided this. */
50
87
  configPath: string;
88
+ configFound: boolean;
89
+ /** Profiles the configuration file names, whether or not anyone has logged in to them. */
90
+ configuredProfiles: string[];
91
+ /** Where each value came from — `max config show` prints it. */
92
+ sources: Record<SourcedSetting, Source>;
51
93
  }
94
+ export type Source = "first word" | "flag" | "MAX_PROFILE" | "MAX_TIMEOUT" | "config file" | "config defaults" | "default";
95
+ export type SourcedSetting = "profile" | "limit" | "timeoutMs" | "commandTimeoutMs" | "color" | "senderColors" | "record" | "keepRunsForDays";
52
96
  export interface ResolveOptions {
53
97
  env?: NodeJS.ProcessEnv;
54
98
  /** Tests pass a temporary directory; nothing else should need this. */
@@ -58,10 +102,35 @@ export interface ResolveOptions {
58
102
  * **Flag, then environment, then the configuration file, then the built-in default.** One place,
59
103
  * so no command can decide the order differently from another.
60
104
  *
105
+ * ⚠ **Only two settings actually have the middle step** — `MAX_PROFILE` and `MAX_TIMEOUT` — and
106
+ * that is deliberate rather than unfinished (`NEED-119`). They are the two an agent sets once for
107
+ * a whole process. A variable for `--json` or `--color` would be worse than missing: one left set
108
+ * in a shell silently changes the output of a command that never asked for it.
109
+ *
61
110
  * Two things already jump this queue and are documented rather than re-litigated here:
62
111
  * `MAX_TOKEN` outranks the keyring (`cli-core`'s `Credentials.read`), and `MAX_CONFIG_DIR`,
63
112
  * `MAX_STATE_DIR` or `MAX_CACHE_DIR` move the whole installation — including which keyring entry
64
- * a profile means (`ARCHITECTURE.md` §13).
113
+ * a profile means (`ARCHITECTURE.md` §14).
65
114
  */
66
115
  export declare const resolveSettings: (flags?: GlobalFlags, { env, configDir }?: ResolveOptions) => Settings;
116
+ /**
117
+ * The profile names written in the configuration file.
118
+ *
119
+ * ⚠ **This is not every profile that works.** `max <name> session start` stores a token under any
120
+ * name without writing anything to the file, so a profile can be in daily use and absent here.
121
+ * Whoever prints this has to say so, or it reads as a complete list and quietly is not.
122
+ */
123
+ export declare const configuredProfiles: ({ env, configDir }?: ResolveOptions) => string[];
124
+ /**
125
+ * Sets or removes one setting of one profile, or of `defaults`, and writes the file back.
126
+ *
127
+ * **The value is checked by the same schema that reads the file**, on the whole result, before
128
+ * anything is written — so `config set` cannot produce a file the next command refuses to load.
129
+ */
130
+ export declare const changeSetting: (path: string, { profile, setting, value }: {
131
+ profile: string | undefined;
132
+ setting: string;
133
+ value: string | undefined;
134
+ }) => unknown;
135
+ export {};
67
136
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AA8B5B,eAAO,MAAM,YAAY;;;;;;;QALvB,6EAA6E;;;;aAQ7E,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,YAAY,CAAC,CAAA;AAEvD,gGAAgG;AAChG,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,wEAAwE;IACxE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;IACd,8FAA8F;IAC9F,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;IAC1B,4FAA4F;IAC5F,YAAY,EAAE,OAAO,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,wHAAwH;IACxH,IAAI,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,GAAG,EAAE,OAAO,CAAA;IACZ,6FAA6F;IAC7F,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,MAAM,EAAE,OAAO,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,4FAA4F;IAC5F,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAI,QAAO,WAAgB,EAAE,qBAAkC,cAAmB,aA2C7G,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}