@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.
- package/README.md +56 -37
- package/dist/bot/transport.d.ts +4 -0
- package/dist/bot/transport.d.ts.map +1 -1
- package/dist/bot/transport.js +43 -3
- package/dist/bot/transport.js.map +1 -1
- package/dist/bot-mcp/server.d.ts.map +1 -1
- package/dist/bot-mcp/server.js +21 -7
- package/dist/bot-mcp/server.js.map +1 -1
- package/dist/client.d.ts +18 -10
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +51 -29
- package/dist/client.js.map +1 -1
- package/dist/commands/account.d.ts.map +1 -1
- package/dist/commands/account.js +7 -5
- package/dist/commands/account.js.map +1 -1
- package/dist/commands/backup.js +1 -1
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/bot-check.d.ts +2 -2
- package/dist/commands/bot-check.d.ts.map +1 -1
- package/dist/commands/bot-check.js +4 -4
- package/dist/commands/bot-check.js.map +1 -1
- package/dist/commands/bot-comments.d.ts.map +1 -1
- package/dist/commands/bot-comments.js +2 -1
- package/dist/commands/bot-comments.js.map +1 -1
- package/dist/commands/bot-context.d.ts +7 -0
- package/dist/commands/bot-context.d.ts.map +1 -1
- package/dist/commands/bot-context.js +32 -2
- package/dist/commands/bot-context.js.map +1 -1
- package/dist/commands/bot-members.d.ts.map +1 -1
- package/dist/commands/bot-members.js +7 -4
- package/dist/commands/bot-members.js.map +1 -1
- package/dist/commands/bot-people.d.ts.map +1 -1
- package/dist/commands/bot-people.js +3 -3
- package/dist/commands/bot-people.js.map +1 -1
- package/dist/commands/bot-reads.d.ts.map +1 -1
- package/dist/commands/bot-reads.js +11 -6
- package/dist/commands/bot-reads.js.map +1 -1
- package/dist/commands/bot-sends.d.ts.map +1 -1
- package/dist/commands/bot-sends.js +6 -5
- package/dist/commands/bot-sends.js.map +1 -1
- package/dist/commands/bot-setup.d.ts.map +1 -1
- package/dist/commands/bot-setup.js +5 -4
- package/dist/commands/bot-setup.js.map +1 -1
- package/dist/commands/bot.d.ts.map +1 -1
- package/dist/commands/bot.js +7 -3
- package/dist/commands/bot.js.map +1 -1
- package/dist/commands/chats.d.ts.map +1 -1
- package/dist/commands/chats.js +15 -30
- package/dist/commands/chats.js.map +1 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +4 -3
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/complete.d.ts.map +1 -1
- package/dist/commands/complete.js +27 -3
- package/dist/commands/complete.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +29 -27
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/contacts.d.ts.map +1 -1
- package/dist/commands/contacts.js +21 -0
- package/dist/commands/contacts.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +75 -21
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/export.js +1 -1
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/folders.d.ts.map +1 -1
- package/dist/commands/folders.js +3 -2
- package/dist/commands/folders.js.map +1 -1
- package/dist/commands/inbox.d.ts.map +1 -1
- package/dist/commands/inbox.js +1 -1
- package/dist/commands/inbox.js.map +1 -1
- package/dist/commands/messages.d.ts.map +1 -1
- package/dist/commands/messages.js +9 -11
- package/dist/commands/messages.js.map +1 -1
- package/dist/commands/models.d.ts.map +1 -1
- package/dist/commands/models.js +2 -1
- package/dist/commands/models.js.map +1 -1
- package/dist/commands/paging.d.ts +17 -1
- package/dist/commands/paging.d.ts.map +1 -1
- package/dist/commands/paging.js +22 -2
- package/dist/commands/paging.js.map +1 -1
- package/dist/commands/recipients.d.ts.map +1 -1
- package/dist/commands/recipients.js +3 -2
- package/dist/commands/recipients.js.map +1 -1
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +1 -1
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/runs.d.ts.map +1 -1
- package/dist/commands/runs.js +4 -3
- package/dist/commands/runs.js.map +1 -1
- package/dist/commands/sends.d.ts.map +1 -1
- package/dist/commands/sends.js +3 -2
- package/dist/commands/sends.js.map +1 -1
- package/dist/config.d.ts +78 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +143 -72
- package/dist/config.js.map +1 -1
- package/dist/diagnose.d.ts +47 -1
- package/dist/diagnose.d.ts.map +1 -1
- package/dist/diagnose.js +56 -5
- package/dist/diagnose.js.map +1 -1
- package/dist/export.d.ts.map +1 -1
- package/dist/export.js +2 -1
- package/dist/export.js.map +1 -1
- package/dist/generated/operations.generated.d.ts +14 -7
- package/dist/generated/operations.generated.d.ts.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +42 -12
- package/dist/mcp/tools.js.map +1 -1
- package/dist/moderation/check.d.ts +5 -6
- package/dist/moderation/check.d.ts.map +1 -1
- package/dist/moderation/check.js +2 -40
- package/dist/moderation/check.js.map +1 -1
- package/dist/moderation/rules.d.ts +57 -7
- package/dist/moderation/rules.d.ts.map +1 -1
- package/dist/moderation/rules.js +13 -11
- package/dist/moderation/rules.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +9 -3
- package/dist/program.js.map +1 -1
- package/dist/runs/events.d.ts +5 -2
- package/dist/runs/events.d.ts.map +1 -1
- package/dist/runs/events.js +4 -1
- package/dist/runs/events.js.map +1 -1
- package/dist/runs/recording.d.ts +11 -0
- package/dist/runs/recording.d.ts.map +1 -1
- package/dist/runs/recording.js +28 -12
- package/dist/runs/recording.js.map +1 -1
- package/dist/sends/guard.d.ts +2 -2
- package/dist/sends/guard.d.ts.map +1 -1
- package/dist/sends/guard.js +2 -1
- package/dist/sends/guard.js.map +1 -1
- package/dist/sends/journal.d.ts +2 -2
- package/dist/sends/journal.d.ts.map +1 -1
- package/dist/sends/journal.js.map +1 -1
- package/dist/sends/permissions.d.ts.map +1 -1
- package/dist/sends/permissions.js +3 -0
- package/dist/sends/permissions.js.map +1 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +5 -0
- package/dist/server/server.js.map +1 -1
- package/dist/session/store.d.ts +2 -0
- package/dist/session/store.d.ts.map +1 -1
- package/dist/session/store.js +5 -1
- package/dist/session/store.js.map +1 -1
- package/dist/spec/operations/account.d.ts +3 -0
- package/dist/spec/operations/account.d.ts.map +1 -1
- package/dist/spec/operations/account.js +5 -1
- package/dist/spec/operations/account.js.map +1 -1
- package/dist/spec/operations/chats.d.ts +4 -3
- package/dist/spec/operations/chats.d.ts.map +1 -1
- package/dist/spec/operations/chats.js +10 -7
- package/dist/spec/operations/chats.js.map +1 -1
- package/dist/spec/operations/contacts.d.ts +8 -3
- package/dist/spec/operations/contacts.d.ts.map +1 -1
- package/dist/spec/operations/contacts.js +26 -5
- package/dist/spec/operations/contacts.js.map +1 -1
- package/dist/spec/operations/folders.d.ts.map +1 -1
- package/dist/spec/operations/folders.js +1 -0
- package/dist/spec/operations/folders.js.map +1 -1
- package/dist/spec/operations/messages.d.ts +1 -1
- package/dist/spec/operations/messages.d.ts.map +1 -1
- package/dist/spec/operations/messages.js +2 -1
- package/dist/spec/operations/messages.js.map +1 -1
- package/dist/spec/operations/uploads.d.ts +1 -1
- package/dist/spec/operations/uploads.d.ts.map +1 -1
- package/dist/spec/operations/uploads.js +2 -1
- package/dist/spec/operations/uploads.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -1
- 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
|
-
|
|
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;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
|
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
|
|
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
|
-
...
|
|
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 =
|
|
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(
|
|
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
|
|
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
|
|
116
|
-
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
|
285
|
-
? now +
|
|
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
|
-
|
|
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
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
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)
|
package/dist/config.js.map
CHANGED
|
@@ -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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"}
|