@leemour/cli-messaging 0.87.0 → 0.88.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 (149) hide show
  1. package/README.md +1 -0
  2. package/dist/background/index.d.ts +5 -0
  3. package/dist/background/index.d.ts.map +1 -0
  4. package/dist/background/index.js +5 -0
  5. package/dist/background/index.js.map +1 -0
  6. package/dist/background/lock.d.ts +17 -0
  7. package/dist/background/lock.d.ts.map +1 -0
  8. package/dist/background/lock.js +34 -0
  9. package/dist/background/lock.js.map +1 -0
  10. package/dist/background/processes.d.ts.map +1 -0
  11. package/dist/background/processes.js.map +1 -0
  12. package/dist/background/system.d.ts +20 -0
  13. package/dist/background/system.d.ts.map +1 -0
  14. package/dist/background/system.js +39 -0
  15. package/dist/background/system.js.map +1 -0
  16. package/dist/background/units.d.ts +42 -0
  17. package/dist/background/units.d.ts.map +1 -0
  18. package/dist/background/units.js +178 -0
  19. package/dist/background/units.js.map +1 -0
  20. package/dist/cli/config-command.d.ts.map +1 -1
  21. package/dist/cli/config-command.js +17 -5
  22. package/dist/cli/config-command.js.map +1 -1
  23. package/dist/cli/context.d.ts +3 -0
  24. package/dist/cli/context.d.ts.map +1 -1
  25. package/dist/cli/context.js.map +1 -1
  26. package/dist/cli/index.d.ts +1 -1
  27. package/dist/cli/index.d.ts.map +1 -1
  28. package/dist/cli/index.js.map +1 -1
  29. package/dist/cli/messenger/admin-moderation-command.d.ts +11 -0
  30. package/dist/cli/messenger/admin-moderation-command.d.ts.map +1 -0
  31. package/dist/cli/messenger/admin-moderation-command.js +83 -0
  32. package/dist/cli/messenger/admin-moderation-command.js.map +1 -0
  33. package/dist/cli/messenger/after.d.ts +2 -2
  34. package/dist/cli/messenger/after.d.ts.map +1 -1
  35. package/dist/cli/messenger/after.js +3 -2
  36. package/dist/cli/messenger/after.js.map +1 -1
  37. package/dist/cli/messenger/ask.d.ts +2 -0
  38. package/dist/cli/messenger/ask.d.ts.map +1 -1
  39. package/dist/cli/messenger/ask.js +7 -0
  40. package/dist/cli/messenger/ask.js.map +1 -1
  41. package/dist/cli/messenger/backfill-jobs.d.ts.map +1 -1
  42. package/dist/cli/messenger/backfill-jobs.js +1 -1
  43. package/dist/cli/messenger/backfill-jobs.js.map +1 -1
  44. package/dist/cli/messenger/chats-command.d.ts.map +1 -1
  45. package/dist/cli/messenger/chats-command.js +3 -0
  46. package/dist/cli/messenger/chats-command.js.map +1 -1
  47. package/dist/cli/messenger/context.d.ts +5 -0
  48. package/dist/cli/messenger/context.d.ts.map +1 -1
  49. package/dist/cli/messenger/context.js +3 -0
  50. package/dist/cli/messenger/context.js.map +1 -1
  51. package/dist/cli/messenger/hearing-command.d.ts.map +1 -1
  52. package/dist/cli/messenger/hearing-command.js +4 -1
  53. package/dist/cli/messenger/hearing-command.js.map +1 -1
  54. package/dist/cli/messenger/messages-command.d.ts.map +1 -1
  55. package/dist/cli/messenger/messages-command.js +7 -4
  56. package/dist/cli/messenger/messages-command.js.map +1 -1
  57. package/dist/cli/messenger/port.d.ts +6 -1
  58. package/dist/cli/messenger/port.d.ts.map +1 -1
  59. package/dist/cli/messenger/port.js.map +1 -1
  60. package/dist/cli/messenger/serve-command.d.ts +1 -13
  61. package/dist/cli/messenger/serve-command.d.ts.map +1 -1
  62. package/dist/cli/messenger/serve-command.js +7 -32
  63. package/dist/cli/messenger/serve-command.js.map +1 -1
  64. package/dist/cli/messenger/server-command.d.ts +1 -17
  65. package/dist/cli/messenger/server-command.d.ts.map +1 -1
  66. package/dist/cli/messenger/server-command.js +6 -213
  67. package/dist/cli/messenger/server-command.js.map +1 -1
  68. package/dist/cli/messenger/store-maintenance-command.d.ts.map +1 -1
  69. package/dist/cli/messenger/store-maintenance-command.js +1 -1
  70. package/dist/cli/messenger/store-maintenance-command.js.map +1 -1
  71. package/dist/cli/messenger/transcribe-command.d.ts.map +1 -1
  72. package/dist/cli/messenger/transcribe-command.js +4 -1
  73. package/dist/cli/messenger/transcribe-command.js.map +1 -1
  74. package/dist/cli/settings.d.ts +25 -1
  75. package/dist/cli/settings.d.ts.map +1 -1
  76. package/dist/cli/settings.js +108 -34
  77. package/dist/cli/settings.js.map +1 -1
  78. package/dist/domain/models.d.ts +2 -0
  79. package/dist/domain/models.d.ts.map +1 -1
  80. package/dist/domain/send-time.d.ts +1 -1
  81. package/dist/domain/send-time.js +4 -4
  82. package/dist/domain/send-time.js.map +1 -1
  83. package/dist/index.d.ts +4 -0
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +2 -0
  86. package/dist/index.js.map +1 -1
  87. package/dist/mcp/tools/moderation.d.ts +8 -0
  88. package/dist/mcp/tools/moderation.d.ts.map +1 -0
  89. package/dist/mcp/tools/moderation.js +36 -0
  90. package/dist/mcp/tools/moderation.js.map +1 -0
  91. package/dist/mcp/tools.d.ts.map +1 -1
  92. package/dist/mcp/tools.js +2 -0
  93. package/dist/mcp/tools.js.map +1 -1
  94. package/dist/moderation/check.d.ts +83 -0
  95. package/dist/moderation/check.d.ts.map +1 -0
  96. package/dist/moderation/check.js +227 -0
  97. package/dist/moderation/check.js.map +1 -0
  98. package/dist/moderation/rules.d.ts +105 -0
  99. package/dist/moderation/rules.d.ts.map +1 -0
  100. package/dist/moderation/rules.js +158 -0
  101. package/dist/moderation/rules.js.map +1 -0
  102. package/dist/sends/permissions.d.ts +5 -3
  103. package/dist/sends/permissions.d.ts.map +1 -1
  104. package/dist/sends/permissions.js +29 -5
  105. package/dist/sends/permissions.js.map +1 -1
  106. package/dist/services/deps.d.ts +7 -1
  107. package/dist/services/deps.d.ts.map +1 -1
  108. package/dist/services/deps.js +2 -1
  109. package/dist/services/deps.js.map +1 -1
  110. package/dist/services/index.d.ts +4 -0
  111. package/dist/services/index.d.ts.map +1 -1
  112. package/dist/services/index.js +3 -0
  113. package/dist/services/index.js.map +1 -1
  114. package/dist/services/messages.d.ts +2 -0
  115. package/dist/services/messages.d.ts.map +1 -1
  116. package/dist/services/messages.js +7 -1
  117. package/dist/services/messages.js.map +1 -1
  118. package/dist/services/moderation.d.ts +33 -0
  119. package/dist/services/moderation.d.ts.map +1 -0
  120. package/dist/services/moderation.js +99 -0
  121. package/dist/services/moderation.js.map +1 -0
  122. package/dist/speech/transcribe.d.ts +5 -1
  123. package/dist/speech/transcribe.d.ts.map +1 -1
  124. package/dist/speech/transcribe.js +2 -2
  125. package/dist/speech/transcribe.js.map +1 -1
  126. package/dist/store/sqlite/drizzle/bun.js +1 -1
  127. package/dist/store/sqlite/drizzle/core.d.ts +1 -1
  128. package/dist/store/sqlite/drizzle/core.d.ts.map +1 -1
  129. package/dist/store/sqlite/drizzle/core.js +5 -3
  130. package/dist/store/sqlite/drizzle/core.js.map +1 -1
  131. package/dist/store/sqlite/drizzle/node.js +1 -1
  132. package/dist/store/sqlite/drizzle/{shared-JAIU3GYB.js → shared-VIVPOB3Q.js} +5 -1
  133. package/dist/store/sqlite/drizzle/{shared-JAIU3GYB.js.map → shared-VIVPOB3Q.js.map} +1 -1
  134. package/dist/store/sqlite/manifest.d.ts.map +1 -1
  135. package/dist/store/sqlite/manifest.js +1 -0
  136. package/dist/store/sqlite/manifest.js.map +1 -1
  137. package/dist/store/sqlite/migrations.generated.d.ts.map +1 -1
  138. package/dist/store/sqlite/migrations.generated.js +15 -0
  139. package/dist/store/sqlite/migrations.generated.js.map +1 -1
  140. package/dist/store/sqlite/schema.d.ts +494 -0
  141. package/dist/store/sqlite/schema.d.ts.map +1 -1
  142. package/dist/store/sqlite/schema.js +78 -1
  143. package/dist/store/sqlite/schema.js.map +1 -1
  144. package/package.json +5 -1
  145. package/parity.json +73 -88
  146. package/dist/cli/messenger/processes.d.ts.map +0 -1
  147. package/dist/cli/messenger/processes.js.map +0 -1
  148. /package/dist/{cli/messenger → background}/processes.d.ts +0 -0
  149. /package/dist/{cli/messenger → background}/processes.js +0 -0
@@ -12,7 +12,10 @@ export const transcribeSubcommand = (messages, messenger) => messages
12
12
  .option("--model <id>", "which downloaded model; implies --local (`models audio list`)")
13
13
  .action(async function (chat, messageId) {
14
14
  const context = messengerContext(this, messenger);
15
- const choice = choose(messenger, context.settings, this.opts(), context.env);
15
+ const choice = {
16
+ ...choose(messenger, context.settings, this.opts(), context.env),
17
+ ...(context.recognizer ? { open: context.recognizer } : {}),
18
+ };
16
19
  // Before connecting: a missing model should not cost a login.
17
20
  if (choice.with === "local" && !isInstalled(choice.model, choice.directory)) {
18
21
  throw notDownloaded(messenger, choice.model);
@@ -1 +1 @@
1
- {"version":3,"file":"transcribe-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/transcribe-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAc,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACvG,OAAO,EAAkB,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/D,sGAAsG;AACtG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAiB,EAAE,SAAoB,EAAW,EAAE,CACvF,QAAQ;KACL,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CACV,gCAAgC,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,gDAAgD,CACxH;KACA,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC;KAC1C,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC;KAClD,MAAM,CAAC,SAAS,EAAE,oDAAoD,CAAC;KACvE,MAAM,CAAC,cAAc,EAAE,+DAA+D,CAAC;KACvF,MAAM,CAAC,KAAK,WAA0B,IAAY,EAAE,SAAiB;IACpE,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAuC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IACjH,8DAA8D;IAC9D,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5E,MAAM,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC;IACD,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;IAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QACxE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACvD,OAAO,CAAC,QAAQ,EAAE,MAAM,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,CAAU,CAAA;IAC3F,CAAC,CAAC,CAAA;IACF,MAAM,KAAK,GAAU,MAAM,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IAClG,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;SAC/F,CAAC;QACJ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QACpE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;QAClF,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QACpB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAA;;QACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"transcribe-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/transcribe-command.ts"],"names":[],"mappings":"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"}
@@ -14,10 +14,19 @@ export interface SettingsExtension {
14
14
  defaults?: v.ObjectEntries;
15
15
  }
16
16
  type Scope = Record<string, unknown>;
17
+ /** Which side of a profile a command speaks for: `<tool> <profile> bot …` is the bot, every other command the account. */
18
+ export type ProfileKind = "personal" | "bot";
19
+ /** Every personal account, or every bot, and then one of them by name. */
20
+ interface KindSection {
21
+ defaults?: Scope;
22
+ profiles?: Record<string, Scope>;
23
+ }
17
24
  export interface Config {
18
25
  defaultProfile?: string;
19
26
  defaults?: Scope;
20
27
  profiles: Record<string, Scope>;
28
+ personal?: KindSection;
29
+ bot?: KindSection;
21
30
  }
22
31
  /** Whatever the command line carried. Everything is optional: absent means "not given here". */
23
32
  export interface GlobalFlags {
@@ -76,6 +85,10 @@ export interface Settings {
76
85
  /** Where each key of `permissions` came from. */
77
86
  permissionSources: Readonly<Record<PermissionKey, Source>>;
78
87
  sendsPerHour: number;
88
+ /** The side these settings are for. */
89
+ kind: ProfileKind;
90
+ /** A bot only: which other bots' local copy it may read when a command asks. Always `false` for the account. */
91
+ readOtherBots: boolean | readonly string[];
79
92
  updateCheck: boolean;
80
93
  configPath: string;
81
94
  configFound: boolean;
@@ -90,6 +103,8 @@ export interface Settings {
90
103
  export interface ResolveOptions {
91
104
  env?: NodeJS.ProcessEnv;
92
105
  configDir?: string;
106
+ /** `personal` unless given. */
107
+ kind?: ProfileKind;
93
108
  }
94
109
  /** The first candidate that is set, and which layer it came from. */
95
110
  export declare const first: <T>(candidates: [Source, T | undefined][], fallback: T) => {
@@ -109,10 +124,11 @@ export declare const fromFile: <T>(settings: Pick<Settings, "configured" | "shar
109
124
  export declare const settingsFor: (app: AppIdentity, extension?: SettingsExtension) => {
110
125
  resolveSettings: (flags?: GlobalFlags, options?: ResolveOptions) => Settings;
111
126
  configuredProfiles: (options?: ResolveOptions) => string[];
112
- changeSetting: (path: string, { profile, setting, value }: {
127
+ changeSetting: (path: string, { profile, setting, value, kind, }: {
113
128
  profile: string | undefined;
114
129
  setting: string;
115
130
  value: string | undefined;
131
+ kind?: ProfileKind | undefined;
116
132
  }) => unknown;
117
133
  allSettings: string[];
118
134
  defaultsOnlyKeys: string[];
@@ -147,6 +163,14 @@ export declare const settingsFor: (app: AppIdentity, extension?: SettingsExtensi
147
163
  transcribeWith: v.OptionalSchema<v.PicklistSchema<["auto", "messenger", "local"], (issue: v.BaseIssue<unknown>) => string>, undefined>;
148
164
  speechModel: v.OptionalSchema<v.StringSchema<(issue: v.BaseIssue<unknown>) => string>, undefined>;
149
165
  }, v.ErrorMessage<v.StrictObjectIssue>>, "has to be an object of profiles, by name">, {}>;
166
+ personal: v.OptionalSchema<v.StrictObjectSchema<{
167
+ readonly defaults: v.OptionalSchema<v.StrictObjectSchema<v.ObjectEntries, v.ErrorMessage<v.StrictObjectIssue>>, undefined>;
168
+ readonly profiles: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<v.ObjectEntries, v.ErrorMessage<v.StrictObjectIssue>>, "has to be an object of profiles, by name">, undefined>;
169
+ }, v.ErrorMessage<v.StrictObjectIssue>>, undefined>;
170
+ bot: v.OptionalSchema<v.StrictObjectSchema<{
171
+ readonly defaults: v.OptionalSchema<v.StrictObjectSchema<v.ObjectEntries, v.ErrorMessage<v.StrictObjectIssue>>, undefined>;
172
+ readonly profiles: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<v.ObjectEntries, v.ErrorMessage<v.StrictObjectIssue>>, "has to be an object of profiles, by name">, undefined>;
173
+ }, v.ErrorMessage<v.StrictObjectIssue>>, undefined>;
150
174
  }, v.ErrorMessage<v.StrictObjectIssue>>;
151
175
  };
152
176
  /** Named by where it came from, so somebody who set the variable weeks ago is told which thing is wrong. */
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/cli/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/cli/settings.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,13 @@ const SHARED_PROFILE_ENTRIES = {
40
40
  transcribeWith: v.optional(v.picklist(["auto", "messenger", "local"], plain("has to be auto, messenger or local"))),
41
41
  speechModel: v.optional(v.string(plain("has to be a model id from `models audio list`, in quotes"))),
42
42
  };
43
+ /**
44
+ * Only a bot reads these. `readOtherBots`: whether this bot may read the local copy of other bots on
45
+ * this machine — every one, or those named — when a command asks for it.
46
+ */
47
+ const BOT_ONLY_ENTRIES = {
48
+ readOtherBots: v.optional(v.union([flag, v.array(v.string(), plain("has to be a list of profile names"))], plain("has to be true, false or a list of profile names"))),
49
+ };
43
50
  /** One program, one version: whether to look for a newer one is not a per-profile matter. */
44
51
  const SHARED_DEFAULTS_ONLY = {
45
52
  updateCheck: v.optional(flag),
@@ -65,14 +72,22 @@ export const settingsFor = (app, extension = {}) => {
65
72
  const profileEntries = { ...SHARED_PROFILE_ENTRIES, ...extension.profile };
66
73
  const defaultsOnly = { ...SHARED_DEFAULTS_ONLY, ...extension.defaults };
67
74
  const defaultsEntries = { ...profileEntries, ...defaultsOnly };
75
+ const strictOf = (entries) => v.strictObject(entries, objectMessage(Object.keys(entries)));
76
+ const kindSection = (entries) => v.strictObject({
77
+ defaults: v.optional(strictOf(entries)),
78
+ profiles: v.optional(v.record(v.string(), strictOf(entries), "has to be an object of profiles, by name")),
79
+ }, objectMessage(["defaults", "profiles"]));
68
80
  const configEntries = {
69
81
  defaultProfile: v.optional(v.string(plain("has to be a profile name, in quotes"))),
70
82
  defaults: v.optional(v.strictObject(defaultsEntries, objectMessage(Object.keys(defaultsEntries)))),
71
83
  profiles: v.optional(v.record(v.string(), v.strictObject(profileEntries, objectMessage(Object.keys(profileEntries))), "has to be an object of profiles, by name"), {}),
84
+ personal: v.optional(kindSection(profileEntries)),
85
+ bot: v.optional(kindSection({ ...profileEntries, ...BOT_ONLY_ENTRIES })),
72
86
  };
73
87
  const schema = v.strictObject(configEntries, objectMessage(Object.keys(configEntries)));
74
88
  const defaultsOnlyKeys = Object.keys(defaultsOnly);
75
- const allSettings = [...Object.keys(profileEntries), ...defaultsOnlyKeys];
89
+ const botOnlyKeys = Object.keys(BOT_ONLY_ENTRIES);
90
+ const allSettings = [...Object.keys(profileEntries), ...botOnlyKeys, ...defaultsOnlyKeys];
76
91
  const PROFILE = envName(app, "PROFILE");
77
92
  const PROFILE_LOCK = envName(app, "PROFILE_LOCK");
78
93
  const TIMEOUT = envName(app, "TIMEOUT");
@@ -110,30 +125,45 @@ export const settingsFor = (app, extension = {}) => {
110
125
  [PROFILE, given(env[PROFILE])],
111
126
  ["config file", config.defaultProfile],
112
127
  ], DEFAULT_PROFILE), given(env[PROFILE_LOCK]));
113
- const configured = config.profiles[usableProfileName(profile.value)] ?? {};
128
+ const kind = options.kind ?? "personal";
129
+ const name = usableProfileName(profile.value);
130
+ const configured = config.profiles[name] ?? {};
114
131
  const shared = config.defaults ?? {};
115
- const scopes = { configured, shared };
116
- const limit = first([
117
- ["flag", flags.limit],
118
- ["config file", configured.limit],
119
- ["config defaults", shared.limit],
120
- ], DEFAULT_LIMIT);
121
- const record = first([
122
- ["flag", flags.record],
123
- ["config file", configured.record],
124
- ["config defaults", shared.record],
125
- ], false);
126
- const timeoutMs = fromFile(scopes, "timeoutMs", undefined);
127
- const color = fromFile(scopes, "color", undefined);
128
- const senderColors = fromFile(scopes, "senderColors", false);
129
- const keepRunsForDays = fromFile(scopes, "keepRunsForDays", DEFAULT_KEEP_RUNS_FOR_DAYS);
130
- const readOnly = fromFile(scopes, "readOnly", false);
131
- const allow = fromFile(scopes, "allow", undefined);
132
- const sendsPerHour = fromFile(scopes, "sendsPerHour", DEFAULT_SENDS_PER_HOUR);
132
+ const section = config[kind];
133
+ // The most specific entry wins: this profile's personal or bot entry, the profile, every
134
+ // personal account or every bot, everyone. Naming one account says more than naming them all.
135
+ const layers = [
136
+ [`config file: ${kind}.profiles.${name}`, section?.profiles?.[name]],
137
+ ["config file", configured],
138
+ [`config file: ${kind}.defaults`, section?.defaults],
139
+ ["config defaults", shared],
140
+ ];
141
+ const fromLayers = (key, fallback, only = layers) => first(only.map(([from, scope]) => [from, scope?.[key]]), fallback);
142
+ const kindLayers = layers.filter(([from]) => from.startsWith(`config file: ${kind}.`));
143
+ const limit = flags.limit === undefined ? fromLayers("limit", DEFAULT_LIMIT) : { value: flags.limit, from: "flag" };
144
+ const record = flags.record === undefined ? fromLayers("record", false) : { value: flags.record, from: "flag" };
145
+ const timeoutMs = fromLayers("timeoutMs", undefined);
146
+ const color = fromLayers("color", undefined);
147
+ const senderColors = fromLayers("senderColors", false);
148
+ const keepRunsForDays = fromLayers("keepRunsForDays", DEFAULT_KEEP_RUNS_FOR_DAYS);
149
+ const readOnly = fromLayers("readOnly", false);
150
+ const allow = fromLayers("allow", undefined);
151
+ // A bot has no hourly limit unless the bot section gives it one: a bot that answers people is
152
+ // expected to send a lot, and a limit there is the owner's choice, not the tool's.
153
+ const sendsPerHour = kind === "bot"
154
+ ? fromLayers("sendsPerHour", Number.POSITIVE_INFINITY, kindLayers)
155
+ : fromLayers("sendsPerHour", DEFAULT_SENDS_PER_HOUR);
156
+ const readOtherBots = kind === "bot"
157
+ ? fromLayers("readOtherBots", false, kindLayers)
158
+ : { value: false, from: "default" };
133
159
  const permissions = layered([
134
- [readOnly.value ? "readOnly" : "allow", fromOldSettings(readOnly.value, allow.value)],
135
- ["config defaults", shared.permissions],
136
- ["config file", configured.permissions],
160
+ [readOnly.value ? "readOnly" : "allow", fromOldSettings(readOnly.value, allow.value, { bot: kind === "bot" })],
161
+ ...[...layers]
162
+ .reverse()
163
+ .map(([from, scope]) => [
164
+ from,
165
+ scope?.permissions,
166
+ ]),
137
167
  ]);
138
168
  const updateCheck = first([["config defaults", shared.updateCheck]], true);
139
169
  const timeout = first([
@@ -165,10 +195,12 @@ export const settingsFor = (app, extension = {}) => {
165
195
  permissions: permissions.levels,
166
196
  permissionSources: permissions.sources,
167
197
  sendsPerHour: sendsPerHour.value,
198
+ kind,
199
+ readOtherBots: readOtherBots.value,
168
200
  updateCheck: updateCheck.value,
169
201
  configPath,
170
202
  configFound: existsSync(configPath),
171
- configuredProfiles: Object.keys(config.profiles),
203
+ configuredProfiles: namedProfiles(config),
172
204
  sources: {
173
205
  profile: profile.from,
174
206
  limit: limit.from,
@@ -181,6 +213,7 @@ export const settingsFor = (app, extension = {}) => {
181
213
  readOnly: readOnly.from,
182
214
  allow: allow.from,
183
215
  sendsPerHour: sendsPerHour.from,
216
+ readOtherBots: readOtherBots.from,
184
217
  updateCheck: updateCheck.from,
185
218
  },
186
219
  configured,
@@ -200,9 +233,9 @@ export const settingsFor = (app, extension = {}) => {
200
233
  }
201
234
  return settings;
202
235
  };
203
- const configuredProfiles = (options = {}) => Object.keys(readConfig(configPathFor(options)).profiles).sort();
236
+ const configuredProfiles = (options = {}) => namedProfiles(readConfig(configPathFor(options)));
204
237
  /** `config set` and `config unset`: checked by the same schema the reader uses, so it never writes a file the reader refuses. */
205
- const changeSetting = (path, { profile, setting, value }) => {
238
+ const changeSetting = (path, { profile, setting, value, kind, }) => {
206
239
  const [name = setting, ...rest] = setting.split(".");
207
240
  const level = name === "permissions" && rest.length > 0 ? rest.join(".") : undefined;
208
241
  if (!allSettings.includes(setting) && level === undefined) {
@@ -211,8 +244,22 @@ export const settingsFor = (app, extension = {}) => {
211
244
  if (profile !== undefined && defaultsOnlyKeys.includes(setting)) {
212
245
  throw new CliError("validation_error", `${setting} is one setting for the whole program, not per profile — add --defaults`);
213
246
  }
247
+ if (kind !== undefined && defaultsOnlyKeys.includes(setting)) {
248
+ throw new CliError("validation_error", `${setting} is one setting for the whole program, not per side`);
249
+ }
250
+ if (kind !== "bot" && botOnlyKeys.includes(setting)) {
251
+ throw new CliError("validation_error", `${setting} is a bot's setting — add --bot`);
252
+ }
214
253
  const config = readConfig(path);
215
- const scope = { ...(profile === undefined ? config.defaults : config.profiles[profile]) };
254
+ const section = kind === undefined ? undefined : (config[kind] ?? {});
255
+ const current = section === undefined
256
+ ? profile === undefined
257
+ ? config.defaults
258
+ : config.profiles[profile]
259
+ : profile === undefined
260
+ ? section.defaults
261
+ : section.profiles?.[profile];
262
+ const scope = { ...current };
216
263
  if (level !== undefined) {
217
264
  const levels = { ...scope.permissions };
218
265
  if (value === undefined)
@@ -228,13 +275,32 @@ export const settingsFor = (app, extension = {}) => {
228
275
  delete scope[setting];
229
276
  else
230
277
  scope[setting] = parseValue(value);
231
- const changed = profile === undefined
232
- ? { ...config, defaults: scope }
233
- : { ...config, profiles: { ...config.profiles, [profile]: scope } };
234
- if (profile === undefined && Object.keys(scope).length === 0)
235
- delete changed.defaults;
236
- if (profile !== undefined && Object.keys(scope).length === 0)
237
- delete changed.profiles[profile];
278
+ const empty = Object.keys(scope).length === 0;
279
+ let changed;
280
+ if (kind === undefined || section === undefined) {
281
+ changed =
282
+ profile === undefined
283
+ ? { ...config, defaults: scope }
284
+ : { ...config, profiles: { ...config.profiles, [profile]: scope } };
285
+ if (profile === undefined && empty)
286
+ delete changed.defaults;
287
+ if (profile !== undefined && empty)
288
+ delete changed.profiles[profile];
289
+ }
290
+ else {
291
+ const next = profile === undefined
292
+ ? { ...section, defaults: scope }
293
+ : { ...section, profiles: { ...section.profiles, [profile]: scope } };
294
+ if (profile === undefined && empty)
295
+ delete next.defaults;
296
+ if (profile !== undefined && empty && next.profiles)
297
+ delete next.profiles[profile];
298
+ if (next.profiles && Object.keys(next.profiles).length === 0)
299
+ delete next.profiles;
300
+ changed = { ...config, [kind]: next };
301
+ if (Object.keys(next).length === 0)
302
+ delete changed[kind];
303
+ }
238
304
  const checked = v.safeParse(schema, changed);
239
305
  if (!checked.success) {
240
306
  throw new CliError("validation_error", `${setting} cannot be "${value}": ${checked.issues[0]?.message ?? "invalid"}`);
@@ -244,6 +310,14 @@ export const settingsFor = (app, extension = {}) => {
244
310
  };
245
311
  return { resolveSettings, configuredProfiles, changeSetting, allSettings, defaultsOnlyKeys, schema };
246
312
  };
313
+ /** Every profile the file names, in any section. */
314
+ const namedProfiles = (config) => [
315
+ ...new Set([
316
+ ...Object.keys(config.profiles),
317
+ ...Object.keys(config.personal?.profiles ?? {}),
318
+ ...Object.keys(config.bot?.profiles ?? {}),
319
+ ]),
320
+ ].sort();
247
321
  /** Later layers win key by key, and each key remembers the layer it came from. */
248
322
  const layered = (layers) => {
249
323
  const levels = {};
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/cli/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/cli/settings.ts"],"names":[],"mappings":"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"}
@@ -357,6 +357,8 @@ export interface GroupMember extends Member {
357
357
  role?: "owner" | "admin" | "member";
358
358
  /** ISO 8601, when they were last seen; `null` when their privacy hides it, absent where the messenger does not say. */
359
359
  lastSeenAt?: string | null;
360
+ /** ISO 8601, when their account was made; absent where the messenger does not say — Telegram never does. */
361
+ registeredAt?: string | null;
360
362
  }
361
363
  /** One chat and who is in it. `members` is `null` where nobody recorded that — a channel, always. */
362
364
  export interface ChatCard extends Chat {
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/domain/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/domain/models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,kGAAkG;AAClG,MAAM,MAAM,EAAE,GAAG,MAAM,CAAA;AAEvB,kFAAkF;AAClF,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAE7B,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEtD,mDAAmD;AACnD,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;AAE3E,qHAAqH;AACrH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;AAEjG,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,EAAE,CAAA;IACN,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,QAAQ,CAAA;IACd,4EAA4E;IAC5E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,iEAAiE;IACjE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CACpC;AAED,0FAA0F;AAC1F,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,GAAG,IAAI,CAAA;IACzB,aAAa,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7B,cAAc,EAAE,OAAO,GAAG,IAAI,CAAA;IAC9B,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAA;IAClC,cAAc,EAAE,OAAO,GAAG,IAAI,CAAA;CAC/B;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;CAClC;AAED,eAAO,MAAM,cAAc,YACzB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,CACR,CAAA;AAEV,8FAA8F;AAC9F,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,qBAAqB;AACrB,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,8FAA8F;IAC9F,OAAO,EAAE,EAAE,EAAE,CAAA;CACd;AAED,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,EAAE,EAAE,CAAA;IACV,MAAM,CAAC,EAAE,EAAE,EAAE,CAAA;CACd;AAED,oFAAoF;AACpF,eAAO,MAAM,YAAY,YAAI,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAA;AAEnH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtD,oEAAoE;AACpE,MAAM,WAAW,SAAU,SAAQ,IAAI;IACrC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,QAAQ,EAAE,aAAa,CAAA;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAA;IACZ,uFAAuF;IACvF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iFAAiF;IACjF,WAAW,CAAC,EAAE,gBAAgB,CAAA;CAC/B;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,iFAAiF;AACjF,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,EAAE,CAAA;IACV,MAAM,EAAE,EAAE,GAAG,IAAI,CAAA;CAClB;AAED,yEAAyE;AACzE,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,EAAE,CAAA;IACV,OAAO,EAAE,EAAE,EAAE,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,yFAAyF;AACzF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,EAAE,CAAA;IACN,IAAI,EAAE,MAAM,CAAA;IACZ,iGAAiG;IACjG,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,wDAAwD;AACxD,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,EAAE,CAAA;IACV,SAAS,EAAE,EAAE,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,sCAAsC;IACtC,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,8GAA8G;AAC9G,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,EAAE,CAAA;IACV,SAAS,EAAE,EAAE,CAAA;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,iEAAiE;AACjE,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC7C,8CAA8C;IAC9C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,EAAE,CAAA;IACN,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAA;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,sDAAsD;IACtD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,4EAA4E;IAC5E,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,EAAE,CAAA;IACN,MAAM,EAAE,EAAE,CAAA;IACV,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAA;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,sGAAsG;IACtG,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,2FAA2F;IAC3F,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,2EAA2E;IAC3E,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAA;IACxB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,OAAO,EAAE,aAAa,GAAG,IAAI,CAAA;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,CAAA;IACd,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;IACnC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,EAAE,CAAA;IACb,iEAAiE;IACjE,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,uGAAuG;IACvG,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,UAAW,SAAQ,OAAO;IACzC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,kFAAkF;AAClF,MAAM,MAAM,aAAa,GACrB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE;AACxC,sGAAsG;GACpG;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,EAAE,CAAA;CAAE,GAC/E;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,EAAE,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAA;AAEpG,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,GAAG,aAAa,CAAA;AAEpF,+FAA+F;AAC/F,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC;IACpF,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,mEAAmE;IACnE,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,KAAK;IACpB,6FAA6F;IAC7F,IAAI,EAAE,QAAQ,GAAG,KAAK,CAAA;IACtB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,6DAA6D;IAC7D,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,GAAG,eAAe,CAAC,EAAE,CAAA;IACvD,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAA;IAChB,yGAAyG;IACzG,KAAK,EAAE,MAAM,CAAA;CACd;AAED,uFAAuF;AACvF,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC;IACrE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,kFAAkF;IAClF,IAAI,EAAE,OAAO,CAAA;IACb,uHAAuH;IACvH,UAAU,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAA;CAC1C;AAED,sFAAsF;AACtF,MAAM,WAAW,MAAM;IACrB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,GAAG,eAAe,CAAC,EAAE,CAAA;IACvD,OAAO,EAAE,OAAO,CAAA;IAChB,+FAA+F;IAC/F,KAAK,EAAE,MAAM,CAAA;IACb,sFAAsF;IACtF,UAAU,CAAC,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAA;CACxC;AAED,0FAA0F;AAC1F,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,EAAE,CAAA;IACb,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,yGAAyG;IACzG,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE;QAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IAC1C,MAAM,EAAE;QAAE,EAAE,EAAE,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAA;IACzC,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,EAAE,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,oBAAoB;IACpB,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB,4DAA4D;IAC5D,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,EAAE,CAAA;IACN,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;OAGG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,gEAAgE;AAChE,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC,CAAA;AAE9D,0EAA0E;AAC1E,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,EAAE,CAAA;IACN,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,gBAAgB;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,kDAAkD;AAClD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,8EAA8E;IAC9E,EAAE,EAAE,EAAE,GAAG,IAAI,CAAA;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,mFAAmF;IACnF,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IACtB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,iCAAiC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,gBAAgB;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,+DAA+D;AAC/D,MAAM,WAAW,WAAY,SAAQ,MAAM;IACzC,kEAAkE;IAClE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;IACnC,uHAAuH;IACvH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,4GAA4G;IAC5G,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B;AAED,qGAAqG;AACrG,MAAM,WAAW,QAAS,SAAQ,IAAI;IACpC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CACzB;AAED,4EAA4E;AAC5E,MAAM,WAAW,UAAW,SAAQ,OAAO;IACzC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,eAAe,CAAC,EAAE,CAAA;CAC/D;AAED;;;;GAIG;AACH,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,qCAAqC;AACrC,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,EAAE,CAAA;IACN,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,oGAAoG;IACpG,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,EAAE,CAAA;IACN,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,4EAA4E;AAC5E,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG;IAAE,MAAM,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `--at`: a time like `2026-09-25T09:00`, or a delay like `30m`, `2h`, `1d`, as an ISO time — the
2
+ * `--at-time`: a time like `2026-09-25T09:00`, or a delay like `30m`, `2h`, `1d`, as an ISO time — the
3
3
  * same words max-cli takes. Rounded down to the minute, because messengers send at the start of it
4
4
  * (MAX measured, max-cli `FIND-141`), so the time printed is the time it goes. A time without an
5
5
  * offset is local, which is how `Date.parse` reads one with a clock and no zone.
@@ -4,7 +4,7 @@ const YEAR = 365 * 24 * 60 * MINUTE;
4
4
  const DELAY = /^(\d+)(m|h|d)$/;
5
5
  const UNIT_MS = { m: MINUTE, h: 60 * MINUTE, d: 24 * 60 * MINUTE };
6
6
  /**
7
- * `--at`: a time like `2026-09-25T09:00`, or a delay like `30m`, `2h`, `1d`, as an ISO time — the
7
+ * `--at-time`: a time like `2026-09-25T09:00`, or a delay like `30m`, `2h`, `1d`, as an ISO time — the
8
8
  * same words max-cli takes. Rounded down to the minute, because messengers send at the start of it
9
9
  * (MAX measured, max-cli `FIND-141`), so the time printed is the time it goes. A time without an
10
10
  * offset is local, which is how `Date.parse` reads one with a clock and no zone.
@@ -18,12 +18,12 @@ export const sendTime = (value, now = Date.now()) => {
18
18
  ? now + Number(amount) * (UNIT_MS[unit] ?? 0)
19
19
  : Number.NaN;
20
20
  if (Number.isNaN(at)) {
21
- throw new CliError("validation_error", `--at takes a time like 2026-09-25T09:00 or a delay like 30m, 2h, 1d — not "${value}"`);
21
+ throw new CliError("validation_error", `--at-time takes a time like 2026-09-25T09:00 or a delay like 30m, 2h, 1d — not "${value}"`);
22
22
  }
23
23
  if (at < now + MINUTE)
24
- throw new CliError("validation_error", "--at has to be at least a minute from now");
24
+ throw new CliError("validation_error", "--at-time has to be at least a minute from now");
25
25
  if (at > now + YEAR)
26
- throw new CliError("validation_error", "--at can be at most a year from now");
26
+ throw new CliError("validation_error", "--at-time can be at most a year from now");
27
27
  return new Date(at - (at % MINUTE)).toISOString();
28
28
  };
29
29
  //# sourceMappingURL=send-time.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"send-time.js","sourceRoot":"","sources":["../../src/domain/send-time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,MAAM,MAAM,GAAG,MAAM,CAAA;AACrB,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;AACnC,MAAM,KAAK,GAAG,gBAAgB,CAAA;AAC9B,MAAM,OAAO,GAA2B,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CAAA;AAE1F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAU,EAAE;IAClE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IAClD,MAAM,EAAE,GAAG,mCAAmC,CAAC,IAAI,CAAC,OAAO,CAAC;QAC1D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC,CAAC,MAAM,IAAI,IAAI;YACd,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA;IAChB,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,8EAA8E,KAAK,GAAG,CACvF,CAAA;IACH,CAAC;IACD,IAAI,EAAE,GAAG,GAAG,GAAG,MAAM;QAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,2CAA2C,CAAC,CAAA;IAC1G,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;QAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,qCAAqC,CAAC,CAAA;IAClG,OAAO,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;AACnD,CAAC,CAAA"}
1
+ {"version":3,"file":"send-time.js","sourceRoot":"","sources":["../../src/domain/send-time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,MAAM,MAAM,GAAG,MAAM,CAAA;AACrB,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;AACnC,MAAM,KAAK,GAAG,gBAAgB,CAAA;AAC9B,MAAM,OAAO,GAA2B,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CAAA;AAE1F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAU,EAAE;IAClE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IAClD,MAAM,EAAE,GAAG,mCAAmC,CAAC,IAAI,CAAC,OAAO,CAAC;QAC1D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC,CAAC,MAAM,IAAI,IAAI;YACd,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA;IAChB,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,mFAAmF,KAAK,GAAG,CAC5F,CAAA;IACH,CAAC;IACD,IAAI,EAAE,GAAG,GAAG,GAAG,MAAM;QAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,gDAAgD,CAAC,CAAA;IAC/G,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;QAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,0CAA0C,CAAC,CAAA;IACvG,OAAO,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;AACnD,CAAC,CAAA"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,10 @@ export type { Capabilities } from "./domain/capabilities.js";
2
2
  export { formatLocator, isLocator, type MessageLocator, parseLocator } from "./domain/locator.js";
3
3
  export { type Markup, parseMarkdown } from "./domain/markdown.js";
4
4
  export type * from "./domain/models.js";
5
+ export type { CheckRow, Finding, Moderator } from "./moderation/check.js";
6
+ export { act, judge } from "./moderation/check.js";
7
+ export type { GroupRules } from "./moderation/rules.js";
8
+ export { defaultRules, ModerationRules, moderationPathFor } from "./moderation/rules.js";
5
9
  export { type OutputOptions, resolveOutput } from "./output.js";
6
10
  export { type RenderOptions, renderMessage, renderMessages } from "./render/messages.js";
7
11
  export { isId, type PeopleLookup, pickChat, pickPerson } from "./resolve.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACjG,OAAO,EAAE,KAAK,MAAM,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACjE,mBAAmB,oBAAoB,CAAA;AACvC,OAAO,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,IAAI,EAAE,KAAK,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACjG,OAAO,EAAE,KAAK,MAAM,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACjE,mBAAmB,oBAAoB,CAAA;AACvC,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACxF,OAAO,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,IAAI,EAAE,KAAK,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  export { formatLocator, isLocator, parseLocator } from "./domain/locator.js";
2
2
  export { parseMarkdown } from "./domain/markdown.js";
3
+ export { act, judge } from "./moderation/check.js";
4
+ export { defaultRules, ModerationRules, moderationPathFor } from "./moderation/rules.js";
3
5
  export { resolveOutput } from "./output.js";
4
6
  export { renderMessage, renderMessages } from "./render/messages.js";
5
7
  export { isId, pickChat, pickPerson } from "./resolve.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAuB,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACjG,OAAO,EAAe,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEjE,OAAO,EAAsB,aAAa,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAsB,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,IAAI,EAAqB,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAoB,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAuB,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACjG,OAAO,EAAe,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGjE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACxF,OAAO,EAAsB,aAAa,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAsB,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,IAAI,EAAqB,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAoB,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { Messenger } from "../../cli/messenger/context.js";
2
+ import { type AnyTool } from "../tool.js";
3
+ /**
4
+ * A group's rules, and the run that acts on them. Over MCP nobody can answer a question per action,
5
+ * so an action whose level in the group's rules is `ask` is planned, not taken.
6
+ */
7
+ export declare const moderationTools: (messenger: Messenger) => Record<string, AnyTool>;
8
+ //# sourceMappingURL=moderation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/moderation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAG/D,OAAO,EAAE,KAAK,OAAO,EAAsC,MAAM,YAAY,CAAA;AAE7E;;;GAGG;AACH,eAAO,MAAM,eAAe,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAkC3E,CAAA"}
@@ -0,0 +1,36 @@
1
+ import * as v from "valibot";
2
+ import { onlineDeps, servicesFor } from "../../services/index.js";
3
+ import { momentOf } from "../../services/moment.js";
4
+ import { APPROVE, chatOf, READ, tool, WRITE } from "../tool.js";
5
+ /**
6
+ * A group's rules, and the run that acts on them. Over MCP nobody can answer a question per action,
7
+ * so an action whose level in the group's rules is `ask` is planned, not taken.
8
+ */
9
+ export const moderationTools = (messenger) => ({
10
+ chats_rules_show: tool({
11
+ title: "A group's moderation rules",
12
+ description: "The rules `chats_moderate` judges a group by; the defaults, marked not saved, if it has none.",
13
+ input: v.object({ chat: chatOf(messenger) }),
14
+ annotations: READ,
15
+ online: (adapter, args, { guard, settings, env }) => servicesFor(onlineDeps(messenger, adapter, guard, { profile: settings.profile, env })).moderation.rules(args.chat),
16
+ }),
17
+ chats_moderate: tool({
18
+ title: "Apply a group's rules",
19
+ description: "Judge a group's new messages and members by its rules, and delete or remove where the rules' levels allow; " +
20
+ "an action at level ask is planned for the owner, not taken. Only when the owner asked for this group.",
21
+ input: v.object({
22
+ chat: chatOf(messenger),
23
+ since_time: v.optional(v.pipe(v.string(), v.description("ISO 8601, or 2h / 1d ago; the saved point stays"))),
24
+ dry_run: v.optional(v.pipe(v.boolean(), v.description("judge and plan; do nothing"))),
25
+ }),
26
+ annotations: WRITE,
27
+ _meta: APPROVE,
28
+ permission: "groups",
29
+ online: (adapter, args, { guard, settings, env }) => servicesFor(onlineDeps(messenger, adapter, guard, { profile: settings.profile, env })).moderation.moderate(args.chat, {
30
+ ...(args.since_time === undefined ? {} : { since: momentOf(args.since_time, "since_time") }),
31
+ dryRun: args.dry_run === true,
32
+ allowDangerous: false,
33
+ }),
34
+ }),
35
+ });
36
+ //# sourceMappingURL=moderation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../../src/mcp/tools/moderation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAgB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAoB,EAA2B,EAAE,CAAC,CAAC;IACjF,gBAAgB,EAAE,IAAI,CAAC;QACrB,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE,+FAA+F;QAC5G,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,CAClD,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CACrG,IAAI,CAAC,IAAI,CACV;KACJ,CAAC;IACF,cAAc,EAAE,IAAI,CAAC;QACnB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,6GAA6G;YAC7G,uGAAuG;QACzG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;YACvB,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,iDAAiD,CAAC,CAAC,CAAC;YAC5G,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC,CAAC;SACtF,CAAC;QACF,WAAW,EAAE,KAAK;QAClB,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,CAClD,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CACxG,IAAI,CAAC,IAAI,EACT;YACE,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC;YAC5F,MAAM,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI;YAC7B,cAAc,EAAE,KAAK;SACtB,CACF;KACJ,CAAC;CACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAoBxC;;;GAGG;AACH,eAAO,MAAM,SAAS,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAWrE,CAAA;AAEF,0GAA0G;AAC1G,eAAO,MAAM,aAAa,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAA8B,CAAA;AAEzG,kHAAkH;AAClH,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAkC,CAAA;AAE3G,oFAAoF;AACpF,eAAO,MAAM,SAAS,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAQrE,CAAA"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAqBxC;;;GAGG;AACH,eAAO,MAAM,SAAS,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAWrE,CAAA;AAEF,0GAA0G;AAC1G,eAAO,MAAM,aAAa,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAA8B,CAAA;AAEzG,kHAAkH;AAClH,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAkC,CAAA;AAE3G,oFAAoF;AACpF,eAAO,MAAM,SAAS,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CASrE,CAAA"}