@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
package/dist/config.d.ts CHANGED
@@ -4,13 +4,13 @@ declare const profileSettings: v.StrictObjectSchema<{
4
4
  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>;
5
5
  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>;
6
6
  color: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
7
- senderColors: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
8
7
  /** The run log reads these two; nothing records anything until it exists. */
9
8
  record: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
10
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>;
11
10
  readOnly: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
12
11
  allow: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["send", "forward", "reaction", "edit", "pin", "read", "delete", "groups", "contacts", "profile", "folders", "sessions"], (issue: v.PicklistIssue) => string>, (issue: v.BaseIssue<unknown>) => string>, undefined>;
13
12
  sendsPerHour: 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>;
13
+ senderColors: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
14
14
  /** Start `max serve` in the background when a command needs MAX and none is running (`MAX-35`). */
15
15
  serve: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
16
16
  }, v.ErrorMessage<v.StrictObjectIssue>>;
@@ -21,13 +21,13 @@ export declare const configSchema: v.StrictObjectSchema<{
21
21
  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>;
22
22
  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>;
23
23
  color: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
24
- senderColors: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
25
24
  /** The run log reads these two; nothing records anything until it exists. */
26
25
  record: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
27
26
  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>;
28
27
  readOnly: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
29
28
  allow: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["send", "forward", "reaction", "edit", "pin", "read", "delete", "groups", "contacts", "profile", "folders", "sessions"], (issue: v.PicklistIssue) => string>, (issue: v.BaseIssue<unknown>) => string>, undefined>;
30
29
  sendsPerHour: 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>;
30
+ senderColors: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
31
31
  /** Start `max serve` in the background when a command needs MAX and none is running (`MAX-35`). */
32
32
  serve: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
33
33
  updateCheck: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
@@ -37,20 +37,77 @@ export declare const configSchema: v.StrictObjectSchema<{
37
37
  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>;
38
38
  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>;
39
39
  color: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
40
- senderColors: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
41
40
  /** The run log reads these two; nothing records anything until it exists. */
42
41
  record: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
43
42
  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>;
44
43
  readOnly: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
45
44
  allow: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["send", "forward", "reaction", "edit", "pin", "read", "delete", "groups", "contacts", "profile", "folders", "sessions"], (issue: v.PicklistIssue) => string>, (issue: v.BaseIssue<unknown>) => string>, undefined>;
46
45
  sendsPerHour: 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>;
46
+ senderColors: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
47
47
  /** Start `max serve` in the background when a command needs MAX and none is running (`MAX-35`). */
48
48
  serve: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
49
49
  }, v.ErrorMessage<v.StrictObjectIssue>>, "has to be an object of profiles, by name">, {}>;
50
+ personal: v.OptionalSchema<v.StrictObjectSchema<{
51
+ defaults: v.OptionalSchema<v.StrictObjectSchema<{
52
+ 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>;
53
+ 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>;
54
+ color: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
55
+ /** The run log reads these two; nothing records anything until it exists. */
56
+ record: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
57
+ 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>;
58
+ readOnly: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
59
+ allow: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["send", "forward", "reaction", "edit", "pin", "read", "delete", "groups", "contacts", "profile", "folders", "sessions"], (issue: v.PicklistIssue) => string>, (issue: v.BaseIssue<unknown>) => string>, undefined>;
60
+ sendsPerHour: 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>;
61
+ senderColors: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
62
+ /** Start `max serve` in the background when a command needs MAX and none is running (`MAX-35`). */
63
+ serve: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
64
+ }, v.ErrorMessage<v.StrictObjectIssue>>, undefined>;
65
+ profiles: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
66
+ 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>;
67
+ 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>;
68
+ color: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
69
+ /** The run log reads these two; nothing records anything until it exists. */
70
+ record: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
71
+ 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>;
72
+ readOnly: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
73
+ allow: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["send", "forward", "reaction", "edit", "pin", "read", "delete", "groups", "contacts", "profile", "folders", "sessions"], (issue: v.PicklistIssue) => string>, (issue: v.BaseIssue<unknown>) => string>, undefined>;
74
+ sendsPerHour: 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>;
75
+ senderColors: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
76
+ /** Start `max serve` in the background when a command needs MAX and none is running (`MAX-35`). */
77
+ serve: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
78
+ }, v.ErrorMessage<v.StrictObjectIssue>>, "has to be an object of profiles, by name">, undefined>;
79
+ }, v.ErrorMessage<v.StrictObjectIssue>>, undefined>;
80
+ bot: v.OptionalSchema<v.StrictObjectSchema<{
81
+ defaults: v.OptionalSchema<v.StrictObjectSchema<{
82
+ 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>;
83
+ 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>;
84
+ color: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
85
+ /** The run log reads these two; nothing records anything until it exists. */
86
+ record: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
87
+ 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>;
88
+ readOnly: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
89
+ allow: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["send", "forward", "reaction", "edit", "pin", "read", "delete", "groups", "contacts", "profile", "folders", "sessions"], (issue: v.PicklistIssue) => string>, (issue: v.BaseIssue<unknown>) => string>, undefined>;
90
+ sendsPerHour: 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>;
91
+ }, v.ErrorMessage<v.StrictObjectIssue>>, undefined>;
92
+ profiles: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
93
+ 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>;
94
+ 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>;
95
+ color: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
96
+ /** The run log reads these two; nothing records anything until it exists. */
97
+ record: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
98
+ 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>;
99
+ readOnly: v.OptionalSchema<v.BooleanSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
100
+ allow: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["send", "forward", "reaction", "edit", "pin", "read", "delete", "groups", "contacts", "profile", "folders", "sessions"], (issue: v.PicklistIssue) => string>, (issue: v.BaseIssue<unknown>) => string>, undefined>;
101
+ sendsPerHour: 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>;
102
+ }, v.ErrorMessage<v.StrictObjectIssue>>, "has to be an object of profiles, by name">, undefined>;
103
+ }, v.ErrorMessage<v.StrictObjectIssue>>, undefined>;
50
104
  }, v.ErrorMessage<v.StrictObjectIssue>>;
51
105
  export type Config = v.InferOutput<typeof configSchema>;
106
+ /** Which side of a profile a command speaks for: `max <p> bot …` is the bot, everything else the account. */
107
+ export type ProfileKind = "personal" | "bot";
52
108
  export type ProfileSetting = keyof v.InferOutput<typeof profileSettings>;
53
109
  export declare const PROFILE_SETTINGS: ProfileSetting[];
110
+ export declare const PERSONAL_ONLY_SETTINGS: ProfileSetting[];
54
111
  export declare const DEFAULTS_ONLY_SETTINGS: readonly ["updateCheck", "transcribeModel"];
55
112
  export declare const ALL_SETTINGS: string[];
56
113
  /** Whatever the command line carried. Everything is optional: absent means "not given here". */
@@ -118,15 +175,19 @@ export interface Settings {
118
175
  /** Named in errors and in `max --help`, so a person can find the file that decided this. */
119
176
  configPath: string;
120
177
  configFound: boolean;
178
+ kind: ProfileKind;
121
179
  /** Profiles the configuration file names, whether or not anyone has logged in to them. */
122
180
  configuredProfiles: string[];
123
181
  /** Where each value came from — `max config show` prints it. */
124
182
  sources: Record<SourcedSetting, Source>;
125
183
  }
126
- export type Source = "first word" | "flag" | "MAX_PROFILE" | "MAX_PROFILE_LOCK" | "MAX_TIMEOUT" | "config file" | "config defaults" | "default";
184
+ /** A value from the configuration file names the key it was read from: `config file: bot.profiles.test`. */
185
+ export type Source = "first word" | "flag" | "MAX_PROFILE" | "MAX_PROFILE_LOCK" | "MAX_TIMEOUT" | `config file: ${string}` | "default";
127
186
  export type SourcedSetting = "profile" | "limit" | "timeoutMs" | "commandTimeoutMs" | "color" | "senderColors" | "record" | "serve" | "keepRunsForDays" | "readOnly" | "allow" | "sendsPerHour" | "updateCheck" | "transcribeModel";
128
187
  export interface ResolveOptions {
129
188
  env?: NodeJS.ProcessEnv;
189
+ /** Personal unless the command is under `max bot`. */
190
+ kind?: ProfileKind;
130
191
  /** Tests pass a temporary directory; nothing else should need this. */
131
192
  configDir?: string;
132
193
  }
@@ -144,7 +205,7 @@ export interface ResolveOptions {
144
205
  * `MAX_STATE_DIR` or `MAX_CACHE_DIR` move the whole installation — including which keyring entry
145
206
  * a profile means (`ARCHITECTURE.md` §14).
146
207
  */
147
- export declare const resolveSettings: (flags?: GlobalFlags, { env, configDir }?: ResolveOptions) => Settings;
208
+ export declare const resolveSettings: (flags?: GlobalFlags, { env, configDir, kind }?: ResolveOptions) => Settings;
148
209
  /**
149
210
  * The profile names written in the configuration file.
150
211
  *
@@ -155,6 +216,8 @@ export declare const resolveSettings: (flags?: GlobalFlags, { env, configDir }?:
155
216
  export declare const configuredProfiles: ({ env, configDir }?: ResolveOptions) => string[];
156
217
  /** `30s`, `2m`, `500ms` — the one spelling of a duration, whatever it is for. */
157
218
  export declare const parseDuration: (value: string, source: string) => number;
219
+ /** `30m`, `2h`, `1d` as milliseconds; anything else is `undefined`. */
220
+ export declare const delayMs: (value: string) => number | undefined;
158
221
  /**
159
222
  * Rounded down to the minute: MAX drops the seconds and sends at the start of the minute (measured
160
223
  * 2026-09-24, `FIND-141`), so the time we print is the time it goes. A time without an offset is
@@ -162,14 +225,22 @@ export declare const parseDuration: (value: string, source: string) => number;
162
225
  * unlike `--timeout`: nobody schedules a message 90 seconds ahead.
163
226
  */
164
227
  export declare const sendTime: (value: string, now?: number) => number;
228
+ /** Where `config set` writes: one profile, or everyone, optionally narrowed to one kind. */
229
+ export interface SettingScope {
230
+ profile: string | undefined;
231
+ kind?: ProfileKind | undefined;
232
+ }
233
+ export declare const scopePath: ({ profile, kind }: SettingScope) => string;
234
+ /** The `config set` that writes where a value came from, so a refusal can say what to type. */
235
+ export declare const setCommandFor: (from: Source, profile: string, setting: string) => string;
165
236
  /**
166
237
  * Sets or removes one setting of one profile, or of `defaults`, and writes the file back.
238
+ * `defaultProfile` is the one top-level key, and takes no scope.
167
239
  *
168
240
  * **The value is checked by the same schema that reads the file**, on the whole result, before
169
241
  * anything is written — so `config set` cannot produce a file the next command refuses to load.
170
242
  */
171
- export declare const changeSetting: (path: string, { profile, setting, value }: {
172
- profile: string | undefined;
243
+ export declare const changeSetting: (path: string, { profile, kind, setting, value }: SettingScope & {
173
244
  setting: string;
174
245
  value: string | undefined;
175
246
  }) => unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAsDrE,QAAA,MAAM,eAAe;8EA3CX,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,KAAG,MAAM;;;;IAkCrC,6EAA6E;;;;;;IAM7E,mGAAmG;;uCAGH,CAAA;AAwBlG,eAAO,MAAM,YAAY;4DAnEf,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,KAAG,MAAM;IA+DrC,wDAAwD;;;;;;QA7BxD,6EAA6E;;;;;;QAM7E,mGAAmG;;;;;;;;;;QANnG,6EAA6E;;;;;;QAM7E,mGAAmG;;;uCA2BD,CAAA;AAEpG,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,YAAY,CAAC,CAAA;AAEvD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC,OAAO,eAAe,CAAC,CAAA;AACxE,eAAO,MAAM,gBAAgB,EAA2C,cAAc,EAAE,CAAA;AACxF,eAAO,MAAM,sBAAsB,YAAI,aAAa,EAAE,iBAAiB,CAAU,CAAA;AACjF,eAAO,MAAM,YAAY,EAAE,MAAM,EAAqD,CAAA;AAEtF,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;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,uFAAuF;IACvF,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;;;;;;;;;;;OAWG;IACH,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,MAAM,EAAE,OAAO,CAAA;IACf,kGAAkG;IAClG,cAAc,EAAE,OAAO,CAAA;IACvB,KAAK,EAAE,OAAO,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,6EAA6E;IAC7E,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,CAAA;IACxC,YAAY,EAAE,MAAM,CAAA;IACpB,qFAAqF;IACrF,WAAW,EAAE,OAAO,CAAA;IACpB,yFAAyF;IACzF,eAAe,EAAE,MAAM,CAAA;IACvB,4FAA4F;IAC5F,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,0FAA0F;IAC1F,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;CACxC;AAED,MAAM,MAAM,MAAM,GACd,YAAY,GACZ,MAAM,GACN,aAAa,GACb,kBAAkB,GAClB,aAAa,GACb,aAAa,GACb,iBAAiB,GACjB,SAAS,CAAA;AACb,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,OAAO,GACP,WAAW,GACX,kBAAkB,GAClB,OAAO,GACP,cAAc,GACd,QAAQ,GACR,OAAO,GACP,iBAAiB,GACjB,UAAU,GACV,OAAO,GACP,cAAc,GACd,aAAa,GACb,iBAAiB,CAAA;AA6BrB,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,WAAW,WAAW,uBAAyC,cAAc,aA0KxG,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,wBAAsC,cAAc,KAAQ,MAAM,EAGhG,CAAA;AAwBD,iFAAiF;AACjF,eAAO,MAAM,aAAa,UAAW,MAAM,UAAU,MAAM,KAAG,MAW7D,CAAA;AAOD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,UAAW,MAAM,mBAAqB,MAiB1D,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,SAClB,MAAM,+BACiB;IAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,KACvG,OAgCF,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -29,41 +29,56 @@ const objectMessage = (known) => (issue) => issue.expected === "never"
29
29
  * **No field here can hold a secret.** No token, no phone number, no chat id: a schema with
30
30
  * nowhere to put one is stronger than a rule saying do not put one there.
31
31
  */
32
- const profileEntries = {
32
+ const sharedEntries = {
33
33
  limit: v.optional(count),
34
34
  timeoutMs: v.optional(count),
35
35
  color: v.optional(flag),
36
- senderColors: v.optional(flag),
37
36
  /** The run log reads these two; nothing records anything until it exists. */
38
37
  record: v.optional(flag),
39
38
  keepRunsForDays: v.optional(count),
40
39
  readOnly: v.optional(flag),
41
40
  allow: v.optional(permissionList),
42
41
  sendsPerHour: v.optional(count),
42
+ };
43
+ /** A bot has no server and no sender colours, so `bot.*` refuses these rather than ignoring them. */
44
+ const personalEntries = {
45
+ ...sharedEntries,
46
+ senderColors: v.optional(flag),
43
47
  /** Start `max serve` in the background when a command needs MAX and none is running (`MAX-35`). */
44
48
  serve: v.optional(flag),
45
49
  };
46
- const profileSettings = v.strictObject(profileEntries, objectMessage(Object.keys(profileEntries)));
50
+ const strict = (entries) => v.strictObject(entries, objectMessage(Object.keys(entries)));
51
+ const profileSettings = strict(personalEntries);
52
+ const botSettings = strict(sharedEntries);
47
53
  /**
48
54
  * One program, one version: whether to look for a newer one is not a per-profile matter. Nor is the
49
55
  * speech model — it is a download on this machine, not a property of an account.
50
56
  */
51
57
  const defaultsEntries = {
52
- ...profileEntries,
58
+ ...personalEntries,
53
59
  updateCheck: v.optional(flag),
54
60
  transcribeModel: v.optional(v.picklist(MODELS.map((model) => model.id), `has to be one of ${MODELS.map((model) => `"${model.id}"`).join(", ")}`)),
55
61
  };
56
- const defaultsSettings = v.strictObject(defaultsEntries, objectMessage(Object.keys(defaultsEntries)));
62
+ const defaultsSettings = strict(defaultsEntries);
63
+ const profilesOf = (settings) => v.record(v.string(), settings, "has to be an object of profiles, by name");
64
+ /** Every personal account, or every bot, and then one of them by name (`NEED-355`). */
65
+ const kindSection = (entries) => {
66
+ const settings = strict(entries);
67
+ return strict({ defaults: v.optional(settings), profiles: v.optional(profilesOf(settings)) });
68
+ };
57
69
  const configEntries = {
58
70
  defaultProfile: v.optional(v.string(plain("has to be a profile name, in quotes"))),
59
71
  /** What every profile gets unless it says otherwise. */
60
72
  defaults: v.optional(defaultsSettings),
61
- profiles: v.optional(v.record(v.string(), profileSettings, "has to be an object of profiles, by name"), {}),
73
+ profiles: v.optional(profilesOf(profileSettings), {}),
74
+ personal: v.optional(kindSection(personalEntries)),
75
+ bot: v.optional(kindSection(sharedEntries)),
62
76
  };
63
77
  export const configSchema = v.strictObject(configEntries, objectMessage(Object.keys(configEntries)));
64
78
  export const PROFILE_SETTINGS = Object.keys(profileSettings.entries);
79
+ export const PERSONAL_ONLY_SETTINGS = Object.keys(personalEntries).filter((key) => !(key in botSettings.entries));
65
80
  export const DEFAULTS_ONLY_SETTINGS = ["updateCheck", "transcribeModel"];
66
- export const ALL_SETTINGS = [...PROFILE_SETTINGS, ...DEFAULTS_ONLY_SETTINGS];
81
+ export const ALL_SETTINGS = [...PROFILE_SETTINGS, ...DEFAULTS_ONLY_SETTINGS, "defaultProfile"];
67
82
  /**
68
83
  * `MAX_PROFILE_LOCK` pins a process to one profile: the owner sets it where an agent runs, and a
69
84
  * first word or `MAX_PROFILE` naming any other profile is refused rather than obeyed. What the
@@ -101,62 +116,36 @@ const first = (candidates, fallback) => {
101
116
  * `MAX_STATE_DIR` or `MAX_CACHE_DIR` move the whole installation — including which keyring entry
102
117
  * a profile means (`ARCHITECTURE.md` §14).
103
118
  */
104
- export const resolveSettings = (flags = {}, { env = process.env, configDir } = {}) => {
119
+ export const resolveSettings = (flags = {}, { env = process.env, configDir, kind = "personal" } = {}) => {
105
120
  const paths = resolvePaths({ appName: APP, prefix: "MAX", env });
106
121
  const configPath = configFilePath(configDir ?? paths.config);
107
122
  const config = readConfig(configPath);
108
123
  const profile = locked(first([
109
124
  ["first word", flags.profile],
110
125
  ["MAX_PROFILE", given(env.MAX_PROFILE)],
111
- ["config file", config.defaultProfile],
126
+ ["config file: defaultProfile", config.defaultProfile],
112
127
  ], DEFAULT_PROFILE), given(env.MAX_PROFILE_LOCK));
113
- const configured = config.profiles[usableProfileName(profile.value)] ?? {};
128
+ const layers = layersFor(config, usableProfileName(profile.value), kind);
129
+ const fromFile = (key, flag) => [
130
+ ["flag", flag],
131
+ ...layers.map(([from, layer]) => [from, layer?.[key]]),
132
+ ];
133
+ const limit = first(fromFile("limit", flags.limit), DEFAULT_LIMIT);
134
+ const timeoutMs = first(fromFile("timeoutMs"), undefined);
135
+ const color = first(fromFile("color"), undefined);
136
+ const senderColors = first(fromFile("senderColors"), false);
137
+ const record = first(fromFile("record", flags.record), false);
138
+ const serve = first(fromFile("serve", flags.serve), true);
139
+ const keepRunsForDays = first(fromFile("keepRunsForDays"), DEFAULT_KEEP_RUNS_FOR_DAYS);
140
+ const readOnly = first(fromFile("readOnly"), false);
141
+ const allow = first(fromFile("allow"), undefined);
142
+ // A bot has no hourly limit unless a `bot.*` section gives it one (`NEED-305`, `NEED-356`).
143
+ const sendsPerHour = kind === "bot"
144
+ ? first(fromFile("sendsPerHour").filter(([from]) => from.startsWith("config file: bot.")), Number.POSITIVE_INFINITY)
145
+ : first(fromFile("sendsPerHour"), DEFAULT_SENDS_PER_HOUR);
114
146
  const shared = config.defaults ?? {};
115
- const limit = first([
116
- ["flag", flags.limit],
117
- ["config file", configured.limit],
118
- ["config defaults", shared.limit],
119
- ], DEFAULT_LIMIT);
120
- const timeoutMs = first([
121
- ["config file", configured.timeoutMs],
122
- ["config defaults", shared.timeoutMs],
123
- ], undefined);
124
- const color = first([
125
- ["config file", configured.color],
126
- ["config defaults", shared.color],
127
- ], undefined);
128
- const senderColors = first([
129
- ["config file", configured.senderColors],
130
- ["config defaults", shared.senderColors],
131
- ], false);
132
- const record = first([
133
- ["flag", flags.record],
134
- ["config file", configured.record],
135
- ["config defaults", shared.record],
136
- ], false);
137
- const serve = first([
138
- ["flag", flags.serve],
139
- ["config file", configured.serve],
140
- ["config defaults", shared.serve],
141
- ], true);
142
- const keepRunsForDays = first([
143
- ["config file", configured.keepRunsForDays],
144
- ["config defaults", shared.keepRunsForDays],
145
- ], DEFAULT_KEEP_RUNS_FOR_DAYS);
146
- const readOnly = first([
147
- ["config file", configured.readOnly],
148
- ["config defaults", shared.readOnly],
149
- ], false);
150
- const allow = first([
151
- ["config file", configured.allow],
152
- ["config defaults", shared.allow],
153
- ], undefined);
154
- const sendsPerHour = first([
155
- ["config file", configured.sendsPerHour],
156
- ["config defaults", shared.sendsPerHour],
157
- ], DEFAULT_SENDS_PER_HOUR);
158
- const updateCheck = first([["config defaults", shared.updateCheck]], true);
159
- const transcribeModel = first([["config defaults", shared.transcribeModel]], DEFAULT_MODEL);
147
+ const updateCheck = first([["config file: defaults", shared.updateCheck]], true);
148
+ const transcribeModel = first([["config file: defaults", shared.transcribeModel]], DEFAULT_MODEL);
160
149
  /**
161
150
  * ⚠ **The only setting with no `config file` row, on purpose.** A budget for one command is
162
151
  * about a particular run, not a habit, and a timeout written into a file is one somebody trips
@@ -191,7 +180,8 @@ export const resolveSettings = (flags = {}, { env = process.env, configDir } = {
191
180
  transcribeModel: transcribeModel.value,
192
181
  configPath,
193
182
  configFound: existsSync(configPath),
194
- configuredProfiles: Object.keys(config.profiles),
183
+ kind,
184
+ configuredProfiles: namedProfiles(config),
195
185
  sources: {
196
186
  profile: profile.from,
197
187
  limit: limit.from,
@@ -224,6 +214,24 @@ export const resolveSettings = (flags = {}, { env = process.env, configDir } = {
224
214
  }
225
215
  return settings;
226
216
  };
217
+ /**
218
+ * **The most specific entry wins** (`NEED-355`): this profile's personal or bot entry, then the
219
+ * profile, then every personal account or every bot, then everyone. Naming one account says more
220
+ * than naming all of them, so a profile beats a kind.
221
+ */
222
+ const layersFor = (config, profile, kind) => [
223
+ [`config file: ${kind}.profiles.${profile}`, config[kind]?.profiles?.[profile]],
224
+ [`config file: profiles.${profile}`, config.profiles[profile]],
225
+ [`config file: ${kind}.defaults`, config[kind]?.defaults],
226
+ ["config file: defaults", config.defaults],
227
+ ];
228
+ const namedProfiles = (config) => [
229
+ ...new Set([
230
+ ...Object.keys(config.profiles),
231
+ ...Object.keys(config.personal?.profiles ?? {}),
232
+ ...Object.keys(config.bot?.profiles ?? {}),
233
+ ]),
234
+ ].sort();
227
235
  /**
228
236
  * The profile names written in the configuration file.
229
237
  *
@@ -233,7 +241,7 @@ export const resolveSettings = (flags = {}, { env = process.env, configDir } = {
233
241
  */
234
242
  export const configuredProfiles = ({ env = process.env, configDir } = {}) => {
235
243
  const paths = resolvePaths({ appName: APP, prefix: "MAX", env });
236
- return Object.keys(readConfig(configFilePath(configDir ?? paths.config)).profiles).sort();
244
+ return namedProfiles(readConfig(configFilePath(configDir ?? paths.config)));
237
245
  };
238
246
  /**
239
247
  * `30s`, `2m`, `500ms` — **the unit is required, and a bare number is refused.**
@@ -270,6 +278,11 @@ const MINUTE = 60_000;
270
278
  const YEAR = 365 * 24 * 60 * MINUTE;
271
279
  const DELAY = /^(\d+)(m|h|d)$/;
272
280
  const DELAY_UNIT_MS = { m: MINUTE, h: 60 * MINUTE, d: 24 * 60 * MINUTE };
281
+ /** `30m`, `2h`, `1d` as milliseconds; anything else is `undefined`. */
282
+ export const delayMs = (value) => {
283
+ const [, amount, unit] = DELAY.exec(value.trim()) ?? [];
284
+ return amount && unit ? Number(amount) * (DELAY_UNIT_MS[unit] ?? 0) : undefined;
285
+ };
273
286
  /**
274
287
  * Rounded down to the minute: MAX drops the seconds and sends at the start of the minute (measured
275
288
  * 2026-09-24, `FIND-141`), so the time we print is the time it goes. A time without an offset is
@@ -278,11 +291,11 @@ const DELAY_UNIT_MS = { m: MINUTE, h: 60 * MINUTE, d: 24 * 60 * MINUTE };
278
291
  */
279
292
  export const sendTime = (value, now = Date.now()) => {
280
293
  const trimmed = value.trim();
281
- const delay = DELAY.exec(trimmed);
294
+ const delay = delayMs(trimmed);
282
295
  const at = /^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}/.test(trimmed)
283
296
  ? Date.parse(trimmed.replace(" ", "T"))
284
- : delay?.[1] && delay[2]
285
- ? now + Number(delay[1]) * (DELAY_UNIT_MS[delay[2]] ?? 0)
297
+ : delay !== undefined
298
+ ? now + delay
286
299
  : Number.NaN;
287
300
  if (Number.isNaN(at)) {
288
301
  throw new CliError("validation_error", `--at takes a time like 2026-09-25T09:00 or a delay like 30m, 2h, 1d — not "${value}"`);
@@ -293,32 +306,81 @@ export const sendTime = (value, now = Date.now()) => {
293
306
  throw new CliError("validation_error", "--at can be at most a year from now, as in MAX itself");
294
307
  return at - (at % MINUTE);
295
308
  };
309
+ export const scopePath = ({ profile, kind }) => [kind, profile === undefined ? "defaults" : `profiles.${profile}`].filter(Boolean).join(".");
310
+ /** The `config set` that writes where a value came from, so a refusal can say what to type. */
311
+ export const setCommandFor = (from, profile, setting) => {
312
+ const path = from.startsWith("config file: ") ? from.slice("config file: ".length) : `profiles.${profile}`;
313
+ const [first, second] = path.split(".");
314
+ const kind = first === "personal" || first === "bot" ? first : undefined;
315
+ const everyone = (kind ? second : first) === "defaults";
316
+ const words = [
317
+ "max",
318
+ ...(everyone ? [] : [profile]),
319
+ "config set",
320
+ ...(kind ? [`--${kind}`] : []),
321
+ ...(everyone ? ["--defaults"] : []),
322
+ setting,
323
+ ];
324
+ return words.join(" ");
325
+ };
296
326
  /**
297
327
  * Sets or removes one setting of one profile, or of `defaults`, and writes the file back.
328
+ * `defaultProfile` is the one top-level key, and takes no scope.
298
329
  *
299
330
  * **The value is checked by the same schema that reads the file**, on the whole result, before
300
331
  * anything is written — so `config set` cannot produce a file the next command refuses to load.
301
332
  */
302
- export const changeSetting = (path, { profile, setting, value }) => {
333
+ export const changeSetting = (path, { profile, kind, setting, value }) => {
303
334
  if (!ALL_SETTINGS.includes(setting)) {
304
335
  throw new CliError("validation_error", `no setting called "${setting}" — one of: ${ALL_SETTINGS.join(", ")}`);
305
336
  }
306
- if (profile !== undefined && DEFAULTS_ONLY_SETTINGS.includes(setting)) {
307
- throw new CliError("validation_error", `${setting} is one setting for the whole program, not per profile — add --defaults`);
308
- }
309
337
  const config = readConfig(path);
310
- const scope = { ...(profile === undefined ? config.defaults : config.profiles[profile]) };
338
+ if (setting === "defaultProfile") {
339
+ if (kind !== undefined)
340
+ throw new CliError("validation_error", "defaultProfile is one for the whole file — drop --personal or --bot");
341
+ return changeDefaultProfile(path, config, value);
342
+ }
343
+ if ((profile !== undefined || kind !== undefined) &&
344
+ DEFAULTS_ONLY_SETTINGS.includes(setting)) {
345
+ throw new CliError("validation_error", `${setting} is one setting for the whole program, not per profile — use --defaults without --personal or --bot`);
346
+ }
347
+ if (kind === "bot" && PERSONAL_ONLY_SETTINGS.includes(setting)) {
348
+ throw new CliError("validation_error", `${setting} is for personal accounts; a bot has no use for it`);
349
+ }
350
+ const section = kind === undefined ? config : { ...config[kind] };
351
+ const table = (profile === undefined ? section.defaults : section.profiles?.[profile]);
352
+ const scope = { ...table };
311
353
  if (value === undefined)
312
354
  delete scope[setting];
313
355
  else
314
356
  scope[setting] = setting === "allow" ? parseList(value) : parseValue(value);
315
- const changed = profile === undefined
316
- ? { ...config, defaults: scope }
317
- : { ...config, profiles: { ...config.profiles, [profile]: scope } };
318
- if (profile === undefined && Object.keys(scope).length === 0)
319
- delete changed.defaults;
320
- if (profile !== undefined && Object.keys(scope).length === 0)
321
- delete changed.profiles[profile];
357
+ const empty = Object.keys(scope).length === 0;
358
+ const place = (holder) => {
359
+ const next = { ...holder, profiles: { ...holder.profiles } };
360
+ if (profile === undefined) {
361
+ if (empty)
362
+ delete next.defaults;
363
+ else
364
+ next.defaults = scope;
365
+ }
366
+ else if (empty)
367
+ delete next.profiles[profile];
368
+ else
369
+ next.profiles[profile] = scope;
370
+ return next;
371
+ };
372
+ let changed;
373
+ if (kind === undefined) {
374
+ changed = place(config);
375
+ }
376
+ else {
377
+ const placed = place(config[kind] ?? {});
378
+ if (Object.keys(placed.profiles).length === 0)
379
+ delete placed.profiles;
380
+ changed = { ...config, [kind]: placed };
381
+ if (Object.keys(placed).length === 0)
382
+ delete changed[kind];
383
+ }
322
384
  const checked = v.safeParse(configSchema, changed);
323
385
  if (!checked.success) {
324
386
  throw new CliError("validation_error", `${setting} cannot be "${value}": ${checked.issues[0]?.message ?? "invalid"}`);
@@ -326,6 +388,15 @@ export const changeSetting = (path, { profile, setting, value }) => {
326
388
  saveConfigFile(path, checked.output);
327
389
  return scope[setting] ?? null;
328
390
  };
391
+ const changeDefaultProfile = (path, config, value) => {
392
+ const changed = { ...config };
393
+ if (value === undefined)
394
+ delete changed.defaultProfile;
395
+ else
396
+ changed.defaultProfile = usableProfileName(value);
397
+ saveConfigFile(path, changed);
398
+ return changed.defaultProfile ?? null;
399
+ };
329
400
  /** `send,reaction` as the owner types it, or the JSON array the file holds; blank is the empty list. */
330
401
  const parseList = (value) => value.trim().startsWith("[")
331
402
  ? parseValue(value)
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}