@starlight-ai/discord-waifus 1.0.6 → 1.0.8

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.
@@ -13,6 +13,7 @@ export interface DiscordGatewayFacade {
13
13
  onMessage?(listener: DiscordMessageListener): () => void;
14
14
  onReviewCommand?(listener: DiscordReviewCommandListener): () => void;
15
15
  onClearCommand?(listener: DiscordClearCommandListener): () => void;
16
+ onRunCommand?(listener: DiscordRunCommandListener): () => void;
16
17
  listGuilds?(): Promise<Array<{
17
18
  guildId: string;
18
19
  name: string;
@@ -63,9 +64,13 @@ export type DiscordSlashCommandEvent = {
63
64
  export type DiscordReviewCommandEvent = DiscordSlashCommandEvent;
64
65
  export type DiscordClearCommandEvent = DiscordSlashCommandEvent & {
65
66
  count?: number;
67
+ type?: DiscordClearType;
66
68
  };
69
+ export type DiscordRunCommandEvent = DiscordSlashCommandEvent;
67
70
  export type DiscordReviewCommandListener = (event: DiscordReviewCommandEvent) => void | Promise<void>;
68
71
  export type DiscordClearCommandListener = (event: DiscordClearCommandEvent) => void | Promise<void>;
72
+ export type DiscordRunCommandListener = (event: DiscordRunCommandEvent) => void | Promise<void>;
73
+ export type DiscordClearType = "waifus" | "all";
69
74
  export type DiscordDeleteMessagesResult = {
70
75
  deletedMessageIds: string[];
71
76
  failedMessageIds: Array<{
@@ -94,6 +99,7 @@ export declare class DiscordJsGateway implements DiscordGatewayFacade {
94
99
  private readonly listeners;
95
100
  private readonly reviewListeners;
96
101
  private readonly clearListeners;
102
+ private readonly runListeners;
97
103
  private readonly recentMentionRefreshes;
98
104
  constructor(options: DiscordJsGatewayOptions);
99
105
  connect(): Promise<DiscordRuntimeStatus>;
@@ -101,6 +107,7 @@ export declare class DiscordJsGateway implements DiscordGatewayFacade {
101
107
  onMessage(listener: DiscordMessageListener): () => void;
102
108
  onReviewCommand(listener: DiscordReviewCommandListener): () => void;
103
109
  onClearCommand(listener: DiscordClearCommandListener): () => void;
110
+ onRunCommand(listener: DiscordRunCommandListener): () => void;
104
111
  listGuilds(): Promise<Array<{
105
112
  guildId: string;
106
113
  name: string;
@@ -139,6 +146,7 @@ export declare class DiscordJsGateway implements DiscordGatewayFacade {
139
146
  private shouldRefreshMentions;
140
147
  private handleReviewInteraction;
141
148
  private handleClearInteraction;
149
+ private handleRunInteraction;
142
150
  }
143
151
  export declare class DiscordGatewayNotConfigured implements DiscordGatewayFacade {
144
152
  connect(): Promise<DiscordRuntimeStatus>;
@@ -8,6 +8,7 @@ export class DiscordJsGateway {
8
8
  listeners = new Set();
9
9
  reviewListeners = new Set();
10
10
  clearListeners = new Set();
11
+ runListeners = new Set();
11
12
  recentMentionRefreshes = new Map();
12
13
  constructor(options) {
13
14
  this.options = options;
@@ -54,6 +55,9 @@ export class DiscordJsGateway {
54
55
  else if (interaction.commandName === CLEAR_COMMAND_NAME) {
55
56
  void this.handleClearInteraction(interaction);
56
57
  }
58
+ else if (interaction.commandName === RUN_COMMAND_NAME) {
59
+ void this.handleRunInteraction(interaction);
60
+ }
57
61
  });
58
62
  }
59
63
  await loginAndWaitUntilReady(client, bot.token);
@@ -92,6 +96,10 @@ export class DiscordJsGateway {
92
96
  this.clearListeners.add(listener);
93
97
  return () => this.clearListeners.delete(listener);
94
98
  }
99
+ onRunCommand(listener) {
100
+ this.runListeners.add(listener);
101
+ return () => this.runListeners.delete(listener);
102
+ }
95
103
  async listGuilds() {
96
104
  const client = this.orchestratorClient();
97
105
  await client.guilds.fetch();
@@ -317,6 +325,7 @@ export class DiscordJsGateway {
317
325
  channelId: interaction.channelId,
318
326
  userId: interaction.user.id,
319
327
  count: interaction.options.getInteger(CLEAR_COUNT_OPTION_NAME) ?? 1,
328
+ type: parseClearType(interaction.options.getString(CLEAR_TYPE_OPTION_NAME)),
320
329
  respond: async (content) => {
321
330
  await interaction.editReply(content);
322
331
  }
@@ -325,6 +334,24 @@ export class DiscordJsGateway {
325
334
  void listener(event);
326
335
  }
327
336
  }
337
+ async handleRunInteraction(interaction) {
338
+ await interaction.deferReply({ flags: MessageFlags.Ephemeral });
339
+ if (!interaction.guildId || !interaction.channelId) {
340
+ await interaction.editReply("/run can only be used in a server channel.");
341
+ return;
342
+ }
343
+ const event = {
344
+ guildId: interaction.guildId,
345
+ channelId: interaction.channelId,
346
+ userId: interaction.user.id,
347
+ respond: async (content) => {
348
+ await interaction.editReply(content);
349
+ }
350
+ };
351
+ for (const listener of this.runListeners) {
352
+ void listener(event);
353
+ }
354
+ }
328
355
  }
329
356
  export class DiscordGatewayNotConfigured {
330
357
  async connect() {
@@ -438,7 +465,9 @@ const SNOWFLAKE_PATTERN = /^\d{17,20}$/;
438
465
  const MENTION_REFRESH_COOLDOWN_MS = 5 * 60 * 1000;
439
466
  const REVIEW_COMMAND_NAME = "review";
440
467
  const CLEAR_COMMAND_NAME = "clear";
468
+ const RUN_COMMAND_NAME = "run";
441
469
  const CLEAR_COUNT_OPTION_NAME = "count";
470
+ const CLEAR_TYPE_OPTION_NAME = "type";
442
471
  const MAX_CLEAR_COUNT = 100;
443
472
  function sanitizeReplyTarget(value) {
444
473
  return value && SNOWFLAKE_PATTERN.test(value) ? value : undefined;
@@ -464,8 +493,22 @@ async function registerOrchestratorCommands(client, logger) {
464
493
  required: false,
465
494
  min_value: 1,
466
495
  max_value: MAX_CLEAR_COUNT
496
+ },
497
+ {
498
+ type: ApplicationCommandOptionType.String,
499
+ name: CLEAR_TYPE_OPTION_NAME,
500
+ description: "Which messages to clear.",
501
+ required: false,
502
+ choices: [
503
+ { name: "waifus", value: "waifus" },
504
+ { name: "all", value: "all" }
505
+ ]
467
506
  }
468
507
  ]
508
+ },
509
+ {
510
+ name: RUN_COMMAND_NAME,
511
+ description: "Run the orchestrator in this channel immediately if the runtime is idle."
469
512
  }
470
513
  ];
471
514
  const commands = await manager.fetch();
@@ -485,4 +528,7 @@ async function registerOrchestratorCommands(client, logger) {
485
528
  });
486
529
  }
487
530
  }
531
+ function parseClearType(value) {
532
+ return value === "all" ? "all" : "waifus";
533
+ }
488
534
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/discord/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/discord/client.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export declare class RuntimeOrchestrator {
22
22
  private readonly sleep;
23
23
  private readonly recentSelfSentIds;
24
24
  private readonly activeWaifuSendChannels;
25
+ private readonly activeWaifuQueries;
26
+ private readonly activeReviewerRuns;
25
27
  private readonly channelRunVersions;
26
28
  private static readonly SELF_SENT_TTL_MS;
27
29
  private unsubscribes;
@@ -39,11 +41,14 @@ export declare class RuntimeOrchestrator {
39
41
  }>;
40
42
  private handleReviewCommand;
41
43
  private handleClearCommand;
44
+ private handleRunCommand;
45
+ private runtimeBusyReason;
42
46
  private startChannelRun;
43
47
  private runChannelLoop;
44
48
  private runStageManager;
45
49
  private runReviewer;
46
- private clearLatestWaifuMessages;
50
+ private runReviewerInternal;
51
+ private clearLatestMessages;
47
52
  private applyStageManagerCalls;
48
53
  private scheduleRetrigger;
49
54
  private setActivePipeline;
@@ -18,6 +18,8 @@ export class RuntimeOrchestrator {
18
18
  sleep;
19
19
  recentSelfSentIds = new Map();
20
20
  activeWaifuSendChannels = new Set();
21
+ activeWaifuQueries = new Map();
22
+ activeReviewerRuns = new Map();
21
23
  channelRunVersions = new Map();
22
24
  static SELF_SENT_TTL_MS = 60_000;
23
25
  unsubscribes = [];
@@ -37,6 +39,9 @@ export class RuntimeOrchestrator {
37
39
  }),
38
40
  this.options.discord.onClearCommand?.((event) => {
39
41
  void this.handleClearCommand(event);
42
+ }),
43
+ this.options.discord.onRunCommand?.((event) => {
44
+ void this.handleRunCommand(event);
40
45
  })
41
46
  ].filter((unsubscribe) => Boolean(unsubscribe));
42
47
  if (this.options.discord.listGuilds) {
@@ -154,12 +159,12 @@ export class RuntimeOrchestrator {
154
159
  }
155
160
  async handleClearCommand(event) {
156
161
  try {
157
- const result = await this.clearLatestWaifuMessages(event.guildId, event.channelId, event.count ?? 1);
162
+ const result = await this.clearLatestMessages(event.guildId, event.channelId, event.count ?? 1, event.type ?? "waifus");
158
163
  if (result.messageIds.length === 0) {
159
- await event.respond("No waifu message found to clear.");
164
+ await event.respond(event.type === "all" ? "No message found to clear." : "No waifu message found to clear.");
160
165
  }
161
166
  else if (result.deleted) {
162
- const messageLabel = result.logicalMessageCount === 1 ? "waifu message" : "waifu messages";
167
+ const messageLabel = clearMessageLabel(event.type ?? "waifus", result.logicalMessageCount);
163
168
  const chunkSuffix = result.messageIds.length === result.logicalMessageCount
164
169
  ? ""
165
170
  : ` (${result.messageIds.length} Discord chunks)`;
@@ -178,6 +183,45 @@ export class RuntimeOrchestrator {
178
183
  await event.respond(error instanceof Error ? error.message : "Clear failed.");
179
184
  }
180
185
  }
186
+ async handleRunCommand(event) {
187
+ try {
188
+ const busyReason = this.runtimeBusyReason(event.guildId, event.channelId);
189
+ if (busyReason) {
190
+ await event.respond(busyReason);
191
+ return;
192
+ }
193
+ if (this.options.isPaused?.()) {
194
+ await event.respond("Runtime is paused; /run did not start.");
195
+ return;
196
+ }
197
+ await event.respond("Started orchestrator run.");
198
+ void this.startChannelRun(event.guildId, event.channelId, `slash-run:${event.userId}`);
199
+ }
200
+ catch (error) {
201
+ this.options.logger.error("Run command failed", {
202
+ guildId: event.guildId,
203
+ channelId: event.channelId,
204
+ message: error instanceof Error ? error.message : String(error)
205
+ });
206
+ await event.respond(error instanceof Error ? error.message : "Run failed.");
207
+ }
208
+ }
209
+ runtimeBusyReason(guildId, channelId) {
210
+ const key = runKey(guildId);
211
+ const activeRun = this.activeRuns.get(key);
212
+ if (activeRun) {
213
+ return activeRun.channelId === channelId
214
+ ? "Orchestrator is already running in this channel."
215
+ : "Orchestrator is already running in another channel for this server.";
216
+ }
217
+ if ((this.activeWaifuQueries.get(key) ?? 0) > 0) {
218
+ return "A waifu response query is already in flight.";
219
+ }
220
+ if ((this.activeReviewerRuns.get(key) ?? 0) > 0) {
221
+ return "Reviewer is already running.";
222
+ }
223
+ return undefined;
224
+ }
181
225
  async startChannelRun(guildId, channelId, reason) {
182
226
  const key = runKey(guildId);
183
227
  const versionKey = timerKey(guildId, channelId);
@@ -355,6 +399,7 @@ export class RuntimeOrchestrator {
355
399
  signal
356
400
  });
357
401
  const waifuPipeline = await this.pipelineFor(waifu.modelId);
402
+ const waifuModelId = waifu.modelId;
358
403
  this.options.logger.info("Generating waifu reply", {
359
404
  guildId,
360
405
  channelId,
@@ -369,18 +414,27 @@ export class RuntimeOrchestrator {
369
414
  });
370
415
  try {
371
416
  const currentWaifuAuthorIds = await this.waifuAuthorIdsFor(waifu.botId);
372
- const result = await waifuPipeline.generateWaifu({
373
- modelId: waifu.modelId,
374
- messages: waifuMessages,
375
- systemPrompt: await this.buildWaifuSystemPrompt(guildId, waifu),
376
- sceneDirection: selected.sceneDirection,
377
- temperature: waifu.generation.temperature,
378
- topP: waifu.generation.topP,
379
- maxOutputTokens: waifu.generation.maxOutputTokens,
380
- reasoning: waifu.reasoning,
381
- currentWaifuAuthorIds,
382
- signal
383
- });
417
+ const waifuQueryKey = runKey(guildId);
418
+ incrementActive(this.activeWaifuQueries, waifuQueryKey);
419
+ const result = await (async () => {
420
+ try {
421
+ return await waifuPipeline.generateWaifu({
422
+ modelId: waifuModelId,
423
+ messages: waifuMessages,
424
+ systemPrompt: await this.buildWaifuSystemPrompt(guildId, waifu),
425
+ sceneDirection: selected.sceneDirection,
426
+ temperature: waifu.generation.temperature,
427
+ topP: waifu.generation.topP,
428
+ maxOutputTokens: waifu.generation.maxOutputTokens,
429
+ reasoning: waifu.reasoning,
430
+ currentWaifuAuthorIds,
431
+ signal
432
+ });
433
+ }
434
+ finally {
435
+ decrementActive(this.activeWaifuQueries, waifuQueryKey);
436
+ }
437
+ })();
384
438
  const activeAuthorIds = waifuMessages.map((message) => message.authorId);
385
439
  const cleanedContent = stripLeakedContextHeader(result.content, {
386
440
  senderDisplayName: waifu.displayName
@@ -529,6 +583,16 @@ export class RuntimeOrchestrator {
529
583
  }
530
584
  }
531
585
  async runReviewer(input) {
586
+ const key = runKey(input.guildId);
587
+ incrementActive(this.activeReviewerRuns, key);
588
+ try {
589
+ return await this.runReviewerInternal(input);
590
+ }
591
+ finally {
592
+ decrementActive(this.activeReviewerRuns, key);
593
+ }
594
+ }
595
+ async runReviewerInternal(input) {
532
596
  const versionKey = timerKey(input.guildId, input.channelId);
533
597
  const runVersionAtStart = this.channelRunVersions.get(versionKey) ?? 0;
534
598
  const config = await this.readAgentConfig("reviewer", 20);
@@ -608,7 +672,7 @@ export class RuntimeOrchestrator {
608
672
  }
609
673
  return { hallucination: decision.hallucination, deleted, messageIds };
610
674
  }
611
- async clearLatestWaifuMessages(guildId, channelId, count) {
675
+ async clearLatestMessages(guildId, channelId, count, type) {
612
676
  const clearCount = normalizeClearCount(count);
613
677
  const server = await this.ensureServer(guildId);
614
678
  const messages = await this.options.discord.fetchFreshContext({
@@ -618,7 +682,7 @@ export class RuntimeOrchestrator {
618
682
  });
619
683
  const targets = [...messages]
620
684
  .reverse()
621
- .filter((message) => message.authorKind === "waifu")
685
+ .filter((message) => type === "all" || message.authorKind === "waifu")
622
686
  .slice(0, clearCount);
623
687
  const seenMessageIds = new Set();
624
688
  const messageIds = [];
@@ -909,11 +973,12 @@ export class RuntimeOrchestrator {
909
973
  behaviorSections.push(`<memories>\n${memories}\n</memories>`);
910
974
  }
911
975
  const behaviorBlock = `<${behaviorTag}>\n${behaviorSections.join("\n")}\n</${behaviorTag}>`;
976
+ const currentTimeBlock = `<current_time>\n${formatTimestamp(new Date())} (UTC)\n</current_time>`;
912
977
  const emojiBlock = `<available_server_emojis>\n${emojiList || "(none cached)"}\n</available_server_emojis>`;
913
- return `${behaviorBlock}\n${emojiBlock}`;
978
+ return `${behaviorBlock}\n${currentTimeBlock}\n${emojiBlock}`;
914
979
  }
915
980
  buildOrchestratorSystemPrompt(orchestrator, server, availableWaifus) {
916
- const activeWaifusBlock = availableWaifus.length
981
+ const activeWaifusContent = availableWaifus.length
917
982
  ? availableWaifus
918
983
  .map((waifu) => {
919
984
  const header = `### ${waifu.displayName || waifu.name} (ID: ${waifu.id})`;
@@ -922,19 +987,49 @@ export class RuntimeOrchestrator {
922
987
  })
923
988
  .join("\n\n")
924
989
  : "No waifus are currently enabled for this channel.";
990
+ const identity = "You are the orchestrator for a multi-character Discord bot. On every incoming Discord message you decide which (if any) of the configured waifus replies next, what scene direction to give her, and when to wake yourself up again to reconsider the channel.";
991
+ const hardRules = [
992
+ "- Every selectedWaifus[].waifuId must be copied verbatim from one of the IDs listed in <active_waifus>. If none of the listed waifus should answer, choose no_reply.",
993
+ "- Use replyToIndex only when replying to an older message that is no longer the latest visible message. If a waifu is answering the latest message in chat, omit replyToIndex so Discord sends a normal message.",
994
+ "- If you want a waifu to do or say something specific, you MUST put it in her selectedWaifus[].sceneDirection. She does not see your reasoning — she only sees her own persona, the chat, and the sceneDirection. Leave sceneDirection empty only when you genuinely want a free-form in-character reply.",
995
+ "- Use reviewer only when you suspect the latest waifu message is hallucinating or leaking internals; the reviewer model makes the final judgment.",
996
+ "- retriggerAfterSeconds must be between 100 and 28800."
997
+ ].join("\n");
998
+ const taskInstructions = orchestrator.prompt?.trim() || DEFAULT_ORCHESTRATOR_PROMPT;
999
+ const loopBreaking = [
1000
+ "The recent messages in context are your most important signal. If the waifus are circling the same topic, the same vibe, or the same back-and-forth, they will keep circling unless you actively redirect them — each waifu only sees her own persona and the chat, so only you can see the loop forming from the outside.",
1001
+ "When you notice a loop forming (even a soft one — two or three messages already feeling similar is enough), pick the waifu whose personality most naturally fits a hard pivot and write a concrete sceneDirection that lands a brand-new topic, observation, memory, callback, or non-sequitur. Name the specific new topic in the sceneDirection — \"ask about Kevin's dog\", \"bring up the snowstorm last week\", \"complain about being hungry\" — rather than vague instructions like \"change the subject\". A jarring shift that still feels in-character is better than letting the conversation stagnate."
1002
+ ].join("\n\n");
1003
+ const retriggerPacing = [
1004
+ "retriggerAfterSeconds decides when you wake yourself up to reconsider. Every wake-up costs another orchestrator call, so pace it to how alive the conversation actually is — read the timestamps on recent messages:",
1005
+ "- Active chat (humans engaging within the last few minutes): short, ~100-300s.",
1006
+ "- Quiet but plausibly resuming (someone stepped away mid-thread): medium, ~600-1800s.",
1007
+ "- Cold (last human message is hours old, or nobody has engaged with the bots in a while): long, ~3600-14400s, and keep growing each time you wake up to the same silence. Don't burn calls poking a dead channel."
1008
+ ].join("\n");
1009
+ const messageStructure = "Each message in the context is tagged with [index: #N], [timestamp: ISO-8601 UTC], and [sender: DisplayName] before its body, optionally followed by [reactions: ...] and [replying to: ...]. Reference messages by their #N index. replyToIndex must be one of the #N indices shown in the context.";
1010
+ const toolUse = [
1011
+ "Inspect the context, choose exactly one action, and call orchestrator_decision once with only the tool arguments. Do not write normal assistant text.",
1012
+ "Its arguments must match this TypeScript union:",
1013
+ "{ \"action\": \"waifus\", \"selectedWaifus\": [{ \"waifuId\": string, \"sceneDirection\"?: string, \"replyToIndex\"?: number }], \"reasoning\": string }",
1014
+ "OR { \"action\": \"stage_manager\", \"retriggerAfterSeconds\": number, \"reasoning\": string }",
1015
+ "OR { \"action\": \"reviewer\", \"reasoning\": string }",
1016
+ "OR { \"action\": \"no_reply\", \"retriggerAfterSeconds\": number, \"reasoning\": string }."
1017
+ ].join("\n");
1018
+ const behavior = [
1019
+ `<hard_rules>\n${hardRules}\n</hard_rules>`,
1020
+ `<task_instructions>\n${taskInstructions}\n</task_instructions>`,
1021
+ `<loop_breaking>\n${loopBreaking}\n</loop_breaking>`,
1022
+ `<retrigger_pacing>\n${retriggerPacing}\n</retrigger_pacing>`,
1023
+ `<message_structure>\n${messageStructure}\n</message_structure>`,
1024
+ `<tool_use>\n${toolUse}\n</tool_use>`
1025
+ ].join("\n");
925
1026
  return [
926
- orchestrator.prompt,
927
- `## Active Waifus\n${activeWaifusBlock}`,
928
- `## Current Time\n${formatTimestamp(new Date())} (UTC)`,
929
- `Server: ${server.name ?? server.guildId}`,
930
- "Use replyToIndex only when replying to an older message that is no longer the latest visible message. If the waifu is answering the latest message in chat, omit replyToIndex so Discord sends a normal message.",
931
- "When action is \"waifus\", every selectedWaifus[].waifuId must exactly match one of the Active Waifus IDs listed above. Do not invent IDs such as \"waifu_alice\" or numeric placeholders. If none of the listed waifus should answer, choose no_reply.",
932
- "If you want a waifu to do or say something specific, you MUST put it in her selectedWaifus[].sceneDirection. Without a scene direction she will improvise freely based only on her persona and the chat — she does not see your reasoning. Leave sceneDirection empty only when you genuinely want a free-form in-character reply.",
933
- "If the recent messages in context are all variations of the same beat — same topic, same vibe, same back-and-forth looping on itself — break the loop. Pick the waifu whose personality most naturally fits a hard pivot and give her a sceneDirection that introduces a completely new topic, even one that feels random or non-sequitur. A jarring topic shift is preferable to letting the conversation stagnate.",
934
- "If you suspect the latest waifu message is hallucinating or leaking internals, choose reviewer; the reviewer model makes the final judgment."
935
- ]
936
- .filter(Boolean)
937
- .join("\n\n");
1027
+ `<identity>\n${identity}\n</identity>`,
1028
+ `<behavior>\n${behavior}\n</behavior>`,
1029
+ `<discord_server_information>\n${server.name ?? server.guildId}\n</discord_server_information>`,
1030
+ `<active_waifus>\n${activeWaifusContent}\n</active_waifus>`,
1031
+ `<current_time>\n${formatTimestamp(new Date())} (UTC)\n</current_time>`
1032
+ ].join("\n");
938
1033
  }
939
1034
  async ensureServer(guildId) {
940
1035
  return this.options.storage.updateRevisionedJson({
@@ -1086,6 +1181,23 @@ function normalizeClearCount(count) {
1086
1181
  return 1;
1087
1182
  return Math.max(1, Math.min(MAX_CLEAR_COUNT, Math.trunc(count)));
1088
1183
  }
1184
+ function clearMessageLabel(type, count) {
1185
+ if (type === "all")
1186
+ return count === 1 ? "message" : "messages";
1187
+ return count === 1 ? "waifu message" : "waifu messages";
1188
+ }
1189
+ function incrementActive(map, key) {
1190
+ map.set(key, (map.get(key) ?? 0) + 1);
1191
+ }
1192
+ function decrementActive(map, key) {
1193
+ const next = (map.get(key) ?? 0) - 1;
1194
+ if (next > 0) {
1195
+ map.set(key, next);
1196
+ }
1197
+ else {
1198
+ map.delete(key);
1199
+ }
1200
+ }
1089
1201
  function defaultSleep(ms, signal) {
1090
1202
  return new Promise((resolve, reject) => {
1091
1203
  if (signal?.aborted) {
@@ -1109,6 +1221,13 @@ const DEFAULT_REVIEWER_PROMPT = [
1109
1221
  "Flag hallucination=false for ordinary in-character Discord replies, even if verbose, awkward, incorrect about fiction, or not very helpful.",
1110
1222
  "The output must be the reviewer tool decision only."
1111
1223
  ].join("\n");
1224
+ const DEFAULT_ORCHESTRATOR_PROMPT = [
1225
+ "You watch one Discord channel and orchestrate a small cast of waifu personas. On each new message decide, from outside the scene:",
1226
+ "- which waifu (or, if a moment naturally calls for it, which subset) should speak next, judged by personality fit and the current flow of the chat — not by rules, ordering, or fairness",
1227
+ "- whether to inject a sceneDirection because there is something specific you want her to address, or to leave it empty and let her improvise from her persona",
1228
+ "- whether to instead pick stage_manager (something memorable just happened and should be persisted), reviewer (the latest waifu message looks like leaked internals), or no_reply (any answer right now would be intrusive, redundant, or aimed at no one)",
1229
+ "The goal is a natural-feeling group chat — varied speakers, voices that match each waifu's persona, and silences when silence fits. You are the only agent that sees the whole picture, so when the chat is stalling it is your job to nudge it back into motion through sceneDirection."
1230
+ ].join("\n");
1112
1231
  const TYPING_REFRESH_MS = 8000;
1113
1232
  const MAX_CLEAR_COUNT = 100;
1114
1233
  function startTypingScope(discord, input) {