@open-everywhere/provider-discord 0.1.4 → 0.2.1

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 (36) hide show
  1. package/NOTICE +34 -4
  2. package/README.md +1 -1
  3. package/agent/approvals/discord-card.ts +11 -12
  4. package/agent/approvals/discord-flow.ts +4 -3
  5. package/agent/channels/discord-dispatch-target.ts +2 -2
  6. package/agent/channels/discord-front.ts +6 -3
  7. package/agent/channels/discord-gateway.ts +6 -3
  8. package/agent/channels/discord.ts +4 -1
  9. package/agent/commands/discord-commands.ts +23 -9
  10. package/agent/contributions.ts +1 -1
  11. package/dist/agent/approvals/discord-card.d.ts.map +1 -1
  12. package/dist/agent/approvals/discord-card.js +11 -12
  13. package/dist/agent/approvals/discord-card.js.map +1 -1
  14. package/dist/agent/approvals/discord-flow.d.ts +1 -1
  15. package/dist/agent/approvals/discord-flow.d.ts.map +1 -1
  16. package/dist/agent/approvals/discord-flow.js +3 -2
  17. package/dist/agent/approvals/discord-flow.js.map +1 -1
  18. package/dist/agent/channels/discord-dispatch-target.js +2 -2
  19. package/dist/agent/channels/discord-dispatch-target.js.map +1 -1
  20. package/dist/agent/channels/discord-front.d.ts.map +1 -1
  21. package/dist/agent/channels/discord-front.js +6 -3
  22. package/dist/agent/channels/discord-front.js.map +1 -1
  23. package/dist/agent/channels/discord-gateway.d.ts.map +1 -1
  24. package/dist/agent/channels/discord-gateway.js +6 -3
  25. package/dist/agent/channels/discord-gateway.js.map +1 -1
  26. package/dist/agent/channels/discord.js +4 -1
  27. package/dist/agent/channels/discord.js.map +1 -1
  28. package/dist/agent/commands/discord-commands.d.ts +2 -0
  29. package/dist/agent/commands/discord-commands.d.ts.map +1 -1
  30. package/dist/agent/commands/discord-commands.js +19 -9
  31. package/dist/agent/commands/discord-commands.js.map +1 -1
  32. package/dist/agent/contributions.d.ts +1 -1
  33. package/dist/agent/contributions.d.ts.map +1 -1
  34. package/dist/agent/contributions.js +1 -1
  35. package/dist/agent/contributions.js.map +1 -1
  36. package/package.json +3 -3
package/NOTICE CHANGED
@@ -8,10 +8,40 @@ This product is licensed under the Apache License, Version 2.0 (see LICENSE).
8
8
  Built on Vercel Eve (https://github.com/vercel/eve), licensed under the
9
9
  Apache License, Version 2.0.
10
10
 
11
- @open-everywhere/core also ships a patch that modifies Vercel Eve (the file in
12
- its patches/ directory), with the oe-eve-patch command that applies it to a
13
- consumer's own installed copy. The patch is licensed under the Apache License,
14
- Version 2.0. No modified Vercel Eve files are distributed.
11
+ ---
12
+
13
+ Modifications to eve
14
+
15
+ The @open-everywhere/core package distributes patches/eve+0.71.0.patch. That
16
+ patch file is a modification of eve 0.71.0. Vercel licenses eve 0.71.0 under the
17
+ Apache License, Version 2.0. The copyright notice of eve 0.71.0 reads
18
+ "Copyright 2026 Vercel, Inc. and contributors". The Open Everywhere authors made
19
+ the changes in the patch file.
20
+
21
+ The patch modifies four files of eve 0.71.0:
22
+
23
+ dist/src/execution/web-fetch/request.js
24
+ dist/src/harness/tool-loop.js
25
+ dist/src/internal/authored-package-boundary.js
26
+ dist/src/protocol/message.d.ts
27
+
28
+ Open Everywhere does not ship the eve package. eve is a peer dependency, so the
29
+ consumer installs eve 0.71.0 from the registry. The patch file carries the
30
+ modified portions of eve. The oe-eve-patch command, which
31
+ @open-everywhere/core ships, applies them to the eve that the consumer
32
+ installed. The command patches no file outside the consumer's own project. To
33
+ restore an eve that holds an older Open Everywhere patch, it also writes to npm's
34
+ cache and to a temporary directory.
35
+
36
+ The attribution notice of eve 0.71.0 follows, as section 4(d) of the Apache
37
+ License, Version 2.0 requires. The notices for eve's bundled code-mode runtime
38
+ are not reproduced, because the patch modifies no part of that runtime.
39
+
40
+ eve
41
+ Copyright 2026 Vercel, Inc. and contributors
42
+
43
+ This product includes software developed at Vercel, Inc.
44
+ (https://vercel.com/).
15
45
 
16
46
  ---
17
47
 
package/README.md CHANGED
@@ -15,7 +15,7 @@ the Bot API host `discord.com/api`. Core's registries refuse a provider the depl
15
15
  ## Install
16
16
 
17
17
  ```sh
18
- npm i @open-everywhere/core @open-everywhere/provider-discord eve@0.54.3
18
+ npm i @open-everywhere/core @open-everywhere/provider-discord eve@0.71.0
19
19
  npx oe-eve-patch
20
20
  ```
21
21
 
@@ -19,7 +19,7 @@
19
19
  // that already ran, carrying the one "This should not have run" button and never a decision one.
20
20
 
21
21
  import type { PendingActionRow } from "@open-everywhere/core/agent/adapter-api.js";
22
- import { grantButtonLabel, sessionGrantKind } from "@open-everywhere/core/agent/adapter-api.js";
22
+ import { getSettings, grantButtonLabel, pendingCardExpiryClause, sessionGrantKind } from "@open-everywhere/core/agent/adapter-api.js";
23
23
 
24
24
  /**
25
25
  * Every approval button custom_id this feature owns starts with this. Deliberately distinct
@@ -39,7 +39,7 @@ export const DISCORD_CUSTOM_ID_MAX = 100;
39
39
  // the Slack prefix.
40
40
  const COMPONENT_ACTION_ROW = 1;
41
41
  const COMPONENT_BUTTON = 2;
42
- const BUTTON_STYLE_SECONDARY = 2; // grey — Approve for session (the grantable-kind middle button, OPE-53/OPE-11)
42
+ const BUTTON_STYLE_SECONDARY = 2; // grey — Approve for this routine (the grantable-kind middle button, OPE-53/OPE-11)
43
43
  const BUTTON_STYLE_SUCCESS = 3; // green — Approve (Slack's `style: "primary"` analogue)
44
44
  const BUTTON_STYLE_DANGER = 4; // red — Reject (Slack's `style: "danger"` analogue)
45
45
 
@@ -123,7 +123,7 @@ function cardBody(row: PendingActionRow, summaryLines: readonly string[], footer
123
123
  * the org rides the custom_id on Discord). Mirrors card.ts's pendingCardBlocks.
124
124
  */
125
125
  export function pendingDiscordCard(row: PendingActionRow, summaryLines: readonly string[]): DiscordCardMessage {
126
- const content = cardBody(row, summaryLines, `-# Requested by <@${row.requestedBy}> · expires ${row.expiresAt}`);
126
+ const content = cardBody(row, summaryLines, `-# Requested by <@${row.requestedBy}> · ${pendingCardExpiryClause(row.expiresAt)}`);
127
127
  const buttons: DiscordComponent[] = [
128
128
  {
129
129
  type: COMPONENT_BUTTON,
@@ -132,18 +132,17 @@ export function pendingDiscordCard(row: PendingActionRow, summaryLines: readonly
132
132
  custom_id: buildDiscordApprovalCustomId(row, "approve"),
133
133
  },
134
134
  ];
135
- // OPE-53: a session-grantable row gets the middle "Approve for session" button — publish this one
136
- // AND skip the card for the rest of THIS proposing session. sessionGrantKind() (core
137
- // approvals/session-grant.ts) is the ONE predicate, and it grants for `pr.open` ALONE — every
138
- // other kind returns null and stays two-button per-call. Mirrors card.ts's Slack
139
- // pendingCardBlocks so the two surfaces agree on the third button.
140
- if (sessionGrantKind(row) !== null) {
135
+ // OPE-53, OPE-2363: only a ROUTINE's card gets the middle button — publish this one AND skip the card
136
+ // for the same kind on later fires of THIS routine. sessionGrantKind() (core approvals/session-grant.ts)
137
+ // decides the KIND (`pr.open` alone), and grantButtonLabel() decides the reach: undefined for every
138
+ // card in a conversation, which offers Approve and Reject only. The label and the presence both come
139
+ // from core, so Slack and Discord can never disagree.
140
+ const grantLabel = sessionGrantKind(row) !== null ? grantButtonLabel(row, getSettings().approvals.routineGrantTtlHours) : undefined;
141
+ if (grantLabel !== undefined) {
141
142
  buttons.push({
142
143
  type: COMPONENT_BUTTON,
143
144
  style: BUTTON_STYLE_SECONDARY,
144
- // OPE-152: the label comes from core, so Slack and Discord can never disagree about whether
145
- // the click grants for this session or standing-for-this-routine (a fire's card).
146
- label: grantButtonLabel(row),
145
+ label: grantLabel,
147
146
  custom_id: buildDiscordApprovalCustomId(row, "approve_session"),
148
147
  });
149
148
  }
@@ -251,7 +251,7 @@ export interface DiscordApprovalDeps {
251
251
  *
252
252
  * 🔴 TWO LEGS MOVE, AND THE SECOND ONE EXECUTES. The decision FEEDBACK above, and the core's
253
253
  * OPE-251 session-grant RELEASE (OPE-1709), which this file forwards into `resolveApprovalClick`
254
- * below — an "Approve for session" click decides and runs up to `MAX_SESSION_GRANT_RELEASES`
254
+ * below — an "Approve for this routine" click decides and runs up to `MAX_SESSION_GRANT_RELEASES`
255
255
  * sibling cards, so it is the heavier of the two. Do not read this hook as feedback plumbing.
256
256
  *
257
257
  * 🔴 WHAT DOES NOT MOVE IS THE RESPONSE BODY. `resolveApprovalClick` decides it, so that CALL
@@ -398,8 +398,9 @@ export async function handleDiscordApprovalInteraction(raw: unknown, deps: Disco
398
398
  // Decision FEEDBACK (task #106 — Slack click-path parity): a fresh notice beside the card (the
399
399
  // UPDATE_MESSAGE response is an EDIT, invisible to backscroll) + the cross-thread window wake.
400
400
  // The wake's guild id comes from the SIGNED interaction (Slack's team.id analogue — the frozen
401
- // scopeKey can name a different workspace under an explicit-scope override); a DM-context
402
- // interaction has none → no wake, fail-soft, the notice still posts beside the card. No transport
401
+ // scopeKey can name a different workspace under an explicit-scope override). A DM-context
402
+ // interaction has none, so the core takes the card's mint-frozen DM `postedTo` as the DM seat's
403
+ // surfaceKey instead (OPE-2376); the notice posts beside the card either way. No transport
403
404
  // failure throws out of it; the egress spoof's Vercel refusal can (OPE-1132). On the AWAITED path
404
405
  // below that refusal reaches the caller's own catch, which answers the interaction anyway rather
405
406
  // than leaving Discord to retry. On the DEFERRED path the response has already gone, so the catch
@@ -36,8 +36,8 @@ export function resolveDiscordTarget(r: Routine): DispatchTarget | null {
36
36
  // bindDiscord's re-derived workspace always agree.
37
37
  const guildId = storedGuildId ?? r.surfaceKey.split("/")[1] ?? "";
38
38
  // OPE-486 — the fire's WAKE ORIGIN, parity with resolveSlackTarget (routine-dispatch.ts). Absent
39
- // before this fix, so a Discord fire could never divert into the unified window (fire-window.ts's
40
- // planFireWindow fails closed on a missing origin). Two shapes, matching the codec's XOR
39
+ // before this fix, so a Discord fire could never divert into the unified window (fire-work.ts's
40
+ // planFireWork fails closed on a missing origin). Two shapes, matching the codec's XOR
41
41
  // (discord-origin-codec.ts): a DM/group-DM fire (mode "dm"/"mpim") gets the `dm: true` variant —
42
42
  // NEVER a guild-shaped origin with a possibly-empty guildId, which the codec refuses by
43
43
  // construction (D1/D3). Every other fire gets the guild variant; an empty guildId (only possible
@@ -37,7 +37,7 @@ import { LINK_CONSENT_CLICK_PREFIX, OE_GRANT_ACTION_PREFIX, OE_INPUT_CLICK_PREFI
37
37
  import { handleDiscordLinkConsentInteraction } from "../identity/discord-link-consent.js";
38
38
  import { handleDiscordGrantCardInteraction } from "../access/discord-grant-click.js";
39
39
  import { handleDiscordApprovalCardInteraction, type ApprovalRespondFn } from "./discord-approval-card.js";
40
- import { approvalCardRespondVia, OE_COMMAND_NAME, type AttachSessionForCancel } from "@open-everywhere/core/agent/adapter-api.js";
40
+ import { approvalCardRespondVia, oeCommandName, type AttachSessionForCancel } from "@open-everywhere/core/agent/adapter-api.js";
41
41
  import { handleDiscordOeCommandInteraction } from "../commands/discord-commands.js";
42
42
 
43
43
  /** An HTTP route handler — `RouteHandler` isn't a public eve export, so we mirror its shape
@@ -151,8 +151,11 @@ export function classifyDiscordInteraction(rawBody: string): DiscordFrontDecisio
151
151
  // forwards untouched — this is the ONLY command name the front route special-cases.
152
152
  const data = typeof p.data === "object" && p.data !== null ? (p.data as Record<string, unknown>) : undefined;
153
153
  const name = typeof data?.name === "string" ? data.name : undefined;
154
- if (name === OE_COMMAND_NAME) {
155
- return { kind: "oe-command", reason: `"/${OE_COMMAND_NAME}" command — ours, zero-inference, never forwarded`, interaction: json };
154
+ // The name is the `identity.commandName` setting, read per interaction (OPE-2334), so the
155
+ // router matches the same name the registration declared.
156
+ const commandName = oeCommandName();
157
+ if (name === commandName) {
158
+ return { kind: "oe-command", reason: `"/${commandName}" command — ours, zero-inference, never forwarded`, interaction: json };
156
159
  }
157
160
  return { kind: "forward", reason: `application command "${name ?? "?"}" — not ours, discordChannel dispatches it` };
158
161
  }
@@ -57,6 +57,7 @@ import { threadParentChannelId } from "./discord-channel-info.js";
57
57
  import { splitForDiscord } from "./discord-post.js";
58
58
  import { discordFetch, type DiscordFetchDeps } from "./discord-rest.js";
59
59
  import { RateLimitExhaustedError, type RetryPolicy } from "@open-everywhere/core/agent/adapter-api.js";
60
+ import { withEndsTurnFinalChannel } from "@open-everywhere/core/agent/adapter-api.js";
60
61
  import {
61
62
  finalMessageAction,
62
63
  nameDropPattern,
@@ -447,7 +448,7 @@ function isStopHand(emoji: string): boolean {
447
448
  * 🔴 THE REACTOR GUARD HERE FAILS CLOSED, and that is a DIFFERENT posture from the feedback path
448
449
  * below on purpose. The ingest path skips its bot-reactor drop when `botId` is unresolved, which
449
450
  * costs a spurious telemetry row — harmless. Behind `cancel()` the same fail-OPEN would be a
450
- * SELF-CANCEL: the bot's own ✋ (it places one on every delegating turn) would cancel the very turn
451
+ * SELF-CANCEL: the bot's own ✋ (it places one on a job's asking message, and on a turn that calls a declared subagent) would cancel the very turn
451
452
  * that placed it. So a stop requires a POSITIVELY RESOLVED, non-bot reactor: no `botId` ⇒ no stop.
452
453
  */
453
454
  async function routeStopHandReaction(rx: DiscordRelayReaction, attachSession: AttachSessionForCancel): Promise<ReactionIngestOutcome> {
@@ -2940,7 +2941,9 @@ export async function maybeShedWarmSurface(state: DiscordGatewayState): Promise<
2940
2941
  }
2941
2942
  }
2942
2943
 
2943
- export default defineChannel<DiscordGatewayState, DiscordGatewayContext>({
2944
+ // OPE-2252 — `reply`/`no_reply` end the turn natively (`endsTurn`) and eve then emits no final message,
2945
+ // so the wrapper decides such a turn at `turn.completed` (core `channels/ends-turn-final.ts`).
2946
+ export default withEndsTurnFinalChannel(defineChannel<DiscordGatewayState, DiscordGatewayContext>({
2944
2947
  kindHint: "discord",
2945
2948
  // 🔴 QUEUE, NEVER STEER (OPE-412, OPE-1732). eve's default is `steer`, and a steer delivery
2946
2949
  // carrying a message CANCELS the turn in flight — rolling session history back to the last
@@ -3253,4 +3256,4 @@ export default defineChannel<DiscordGatewayState, DiscordGatewayContext>({
3253
3256
  }
3254
3257
  },
3255
3258
  },
3256
- });
3259
+ }));
@@ -50,6 +50,7 @@ import {
50
50
  authPrincipalId,
51
51
  type ChatAuditPartition,
52
52
  } from "@open-everywhere/core/agent/adapter-api.js";
53
+ import { withEndsTurnFinalChannel } from "@open-everywhere/core/agent/adapter-api.js";
53
54
  import { frontDiscordChannel, INTERNAL_DISCORD_ROUTE } from "./discord-front.js";
54
55
  import { withDiscordEventsRoute } from "./discord-events.js";
55
56
 
@@ -241,4 +242,6 @@ const discordInteractionChannel = discordChannel({
241
242
  // FRONTED (interactions) + the app-level WEBHOOK EVENTS route (discord-events.ts): a separate,
242
243
  // additive URL that audits APPLICATION_AUTHORIZED / APPLICATION_DEAUTHORIZED so install/uninstall
243
244
  // is observable. Observability only — it gates nothing and never reaches a session.
244
- export default withDiscordEventsRoute(frontDiscordChannel(discordInteractionChannel));
245
+ // OPE-2252 — `reply`/`no_reply` end the turn natively (`endsTurn`) and eve then emits no final message,
246
+ // so the wrapper decides such a turn at `turn.completed` (core `channels/ends-turn-final.ts`).
247
+ export default withEndsTurnFinalChannel(withDiscordEventsRoute(frontDiscordChannel(discordInteractionChannel)));
@@ -29,7 +29,9 @@ import {
29
29
  bindFrom,
30
30
  MODEL_AB_RATING_MAX,
31
31
  MODEL_AB_RATING_MIN,
32
- OE_COMMAND_NAME,
32
+ agentDisplayName,
33
+ oeCommandName,
34
+ oeSlash,
33
35
  runOeCommand,
34
36
  type AttachSessionForCancel,
35
37
  type BindableContext,
@@ -122,7 +124,7 @@ export function parseDiscordOeCommandOptions(rawOptions: unknown): OeCommand {
122
124
  if (score === undefined || !Number.isInteger(score) || score < MODEL_AB_RATING_MIN || score > MODEL_AB_RATING_MAX) {
123
125
  return {
124
126
  kind: "error",
125
- message: `"/oe rate" needs a whole "score" from ${MODEL_AB_RATING_MIN} to ${MODEL_AB_RATING_MAX} (got ${JSON.stringify(scoreOpt?.value)}).`,
127
+ message: `"${oeSlash("rate")}" needs a whole "score" from ${MODEL_AB_RATING_MIN} to ${MODEL_AB_RATING_MAX} (got ${JSON.stringify(scoreOpt?.value)}).`,
126
128
  };
127
129
  }
128
130
  return { kind: "rate", score };
@@ -138,14 +140,14 @@ export function parseDiscordOeCommandOptions(rawOptions: unknown): OeCommand {
138
140
  if (usd === undefined || usd <= 0) {
139
141
  return {
140
142
  kind: "error",
141
- message: `"/oe budget raise" needs a positive "usd" amount (got ${JSON.stringify(usdOpt?.value)}).`,
143
+ message: `"${oeSlash("budget raise")}" needs a positive "usd" amount (got ${JSON.stringify(usdOpt?.value)}).`,
142
144
  };
143
145
  }
144
146
  return { kind: "budget-raise", usd };
145
147
  }
146
148
  return { kind: "error", message: `Unknown "budget" subcommand "${subName}".` };
147
149
  }
148
- return { kind: "error", message: `Unknown "/oe" subcommand "${name ?? "?"}" — try "/oe help".` };
150
+ return { kind: "error", message: `Unknown "${oeSlash()}" subcommand "${name ?? "?"}" — try "${oeSlash("help")}".` };
149
151
  }
150
152
 
151
153
  interface ParsedOeInvocation {
@@ -164,7 +166,7 @@ interface ParsedOeInvocation {
164
166
  export function parseOeCommandInteraction(raw: unknown): ParsedOeInvocation | { readonly error: string } | null {
165
167
  if (!isObject(raw) || raw["type"] !== 2) return null;
166
168
  const data = isObject(raw["data"]) ? raw["data"] : undefined;
167
- if (!data || data["name"] !== OE_COMMAND_NAME) return null;
169
+ if (!data || data["name"] !== oeCommandName()) return null;
168
170
 
169
171
  const member = isObject(raw["member"]) ? raw["member"] : undefined;
170
172
  const memberUser = member && isObject(member["user"]) ? member["user"] : undefined;
@@ -214,7 +216,7 @@ export async function handleDiscordOeCommandInteraction(
214
216
  // (e.g. "propose from a DM needs an explicit scope") — surface it verbatim; anything else
215
217
  // (a genuinely unexpected store/network failure) gets a generic fail-soft note. Either way,
216
218
  // never throw out of this function.
217
- console.error(`[open-everywhere:discord-commands] "/oe" command failed softly: ${String(err)}`);
219
+ console.error(`[open-everywhere:discord-commands] "${oeSlash()}" command failed softly: ${String(err)}`);
218
220
  return ephemeral(`Couldn't complete that: ${err instanceof Error ? err.message : String(err)}`);
219
221
  }
220
222
  }
@@ -228,6 +230,16 @@ const OPTION_INTEGER = 4;
228
230
  const OPTION_NUMBER = 10;
229
231
  const CHAT_INPUT = 1;
230
232
 
233
+ /** Discord's limit on a command description. A longer one fails the registration call. */
234
+ export const DISCORD_COMMAND_DESCRIPTION_MAX = 100;
235
+
236
+ /** The command's description, naming the deployment — or, when the name would push it past
237
+ * Discord's limit, the same sentence without the name. */
238
+ function discordCommandDescription(name: string): string {
239
+ const named = `${name} control-plane commands (status, budget) — no model turn.`;
240
+ return named.length <= DISCORD_COMMAND_DESCRIPTION_MAX ? named : "Control-plane commands (status, budget) — no model turn.";
241
+ }
242
+
231
243
  /**
232
244
  * The Discord ApplicationCommand body for "/oe" — pure, no network, so the registration
233
245
  * script (scripts/register-discord-commands.ts) and its test share exactly one definition.
@@ -236,9 +248,11 @@ const CHAT_INPUT = 1;
236
248
  */
237
249
  export function buildOeDiscordCommandDefinition(): Record<string, unknown> {
238
250
  return {
239
- name: OE_COMMAND_NAME,
251
+ // Both from the `identity.*` settings (OPE-2334): the name the router below matches on, and the
252
+ // deployment's configured name in the description.
253
+ name: oeCommandName(),
240
254
  type: CHAT_INPUT,
241
- description: "Open Everywhere control-plane commands (status, budget) — no model turn.",
255
+ description: discordCommandDescription(agentDisplayName()),
242
256
  options: [
243
257
  {
244
258
  name: "budget",
@@ -285,7 +299,7 @@ export function buildOeDiscordCommandDefinition(): Record<string, unknown> {
285
299
  },
286
300
  ],
287
301
  },
288
- { name: "help", description: "List the /oe commands.", type: SUB_COMMAND },
302
+ { name: "help", description: `List the ${oeSlash()} commands.`, type: SUB_COMMAND },
289
303
  ],
290
304
  };
291
305
  }
@@ -25,7 +25,7 @@ export const CONTRIBUTIONS = {
25
25
  package: "@open-everywhere/provider-discord",
26
26
  register: "agent/register.js#registerDiscordProvider",
27
27
  contributions: [
28
- { kind: "channel", name: "discord", module: "agent/channels/discord.js", summary: "The Discord surface. Wires Discord's HTTP Interactions (slash commands) → an OpenEverywhere session, and — the point of the \"Discord-binding\" slice — populates the session auth context with the REAL…" },
28
+ { kind: "channel", name: "discord", module: "agent/channels/discord.js", summary: "The Discord surface. Wires Discord's HTTP Interactions (slash commands) → an agent session, and — the point of the \"Discord-binding\" slice — populates the session auth context with the REAL…" },
29
29
  { kind: "channel", name: "discord-gateway", module: "agent/channels/discord-gateway.js", summary: "The Discord GATEWAY ingestion surface — Milestone 2 of the Discord Gateway feature." },
30
30
  ],
31
31
  } as const;
@@ -1 +1 @@
1
- {"version":3,"file":"discord-card.d.ts","sourceRoot":"","sources":["../../../agent/approvals/discord-card.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAGnF;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AAEzD,uHAAuH;AACvH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAYzC;4FAC4F;AAC5F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,6FAA6F;AAC7F,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAClD;AAED;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,QAAQ,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAM9F;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,uBAAuB,GAAG,MAAM,CAQ7G;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,uBAAuB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAcpI;AAQD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,kBAAkB,CAgC7G;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAkB1I;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAalI;AAKD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAOlE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGvF"}
1
+ {"version":3,"file":"discord-card.d.ts","sourceRoot":"","sources":["../../../agent/approvals/discord-card.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAGnF;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AAEzD,uHAAuH;AACvH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAYzC;4FAC4F;AAC5F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,6FAA6F;AAC7F,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAClD;AAED;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,QAAQ,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAM9F;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,uBAAuB,GAAG,MAAM,CAQ7G;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,uBAAuB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAcpI;AAQD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,kBAAkB,CA+B7G;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAkB1I;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAalI;AAKD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAOlE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGvF"}
@@ -17,7 +17,7 @@
17
17
  // THREE renders live here, and only the first two are a card: the PENDING card (Approve/Reject), the
18
18
  // DECIDED card (no buttons), and the JUDGE-LIFT NOTICE (OPE-1103) — a review surface for an action
19
19
  // that already ran, carrying the one "This should not have run" button and never a decision one.
20
- import { grantButtonLabel, sessionGrantKind } from "@open-everywhere/core/agent/adapter-api.js";
20
+ import { getSettings, grantButtonLabel, pendingCardExpiryClause, sessionGrantKind } from "@open-everywhere/core/agent/adapter-api.js";
21
21
  /**
22
22
  * Every approval button custom_id this feature owns starts with this. Deliberately distinct
23
23
  * from BOTH the Slack action_id prefix ("oe_approval:" — a different wire format, keeping
@@ -34,7 +34,7 @@ export const DISCORD_CUSTOM_ID_MAX = 100;
34
34
  // the Slack prefix.
35
35
  const COMPONENT_ACTION_ROW = 1;
36
36
  const COMPONENT_BUTTON = 2;
37
- const BUTTON_STYLE_SECONDARY = 2; // grey — Approve for session (the grantable-kind middle button, OPE-53/OPE-11)
37
+ const BUTTON_STYLE_SECONDARY = 2; // grey — Approve for this routine (the grantable-kind middle button, OPE-53/OPE-11)
38
38
  const BUTTON_STYLE_SUCCESS = 3; // green — Approve (Slack's `style: "primary"` analogue)
39
39
  const BUTTON_STYLE_DANGER = 4; // red — Reject (Slack's `style: "danger"` analogue)
40
40
  /** The closed verb set as a VALUE — one list, so build and parse cannot drift into a button nothing
@@ -94,7 +94,7 @@ function cardBody(row, summaryLines, footer) {
94
94
  * the org rides the custom_id on Discord). Mirrors card.ts's pendingCardBlocks.
95
95
  */
96
96
  export function pendingDiscordCard(row, summaryLines) {
97
- const content = cardBody(row, summaryLines, `-# Requested by <@${row.requestedBy}> · expires ${row.expiresAt}`);
97
+ const content = cardBody(row, summaryLines, `-# Requested by <@${row.requestedBy}> · ${pendingCardExpiryClause(row.expiresAt)}`);
98
98
  const buttons = [
99
99
  {
100
100
  type: COMPONENT_BUTTON,
@@ -103,18 +103,17 @@ export function pendingDiscordCard(row, summaryLines) {
103
103
  custom_id: buildDiscordApprovalCustomId(row, "approve"),
104
104
  },
105
105
  ];
106
- // OPE-53: a session-grantable row gets the middle "Approve for session" button — publish this one
107
- // AND skip the card for the rest of THIS proposing session. sessionGrantKind() (core
108
- // approvals/session-grant.ts) is the ONE predicate, and it grants for `pr.open` ALONE — every
109
- // other kind returns null and stays two-button per-call. Mirrors card.ts's Slack
110
- // pendingCardBlocks so the two surfaces agree on the third button.
111
- if (sessionGrantKind(row) !== null) {
106
+ // OPE-53, OPE-2363: only a ROUTINE's card gets the middle button — publish this one AND skip the card
107
+ // for the same kind on later fires of THIS routine. sessionGrantKind() (core approvals/session-grant.ts)
108
+ // decides the KIND (`pr.open` alone), and grantButtonLabel() decides the reach: undefined for every
109
+ // card in a conversation, which offers Approve and Reject only. The label and the presence both come
110
+ // from core, so Slack and Discord can never disagree.
111
+ const grantLabel = sessionGrantKind(row) !== null ? grantButtonLabel(row, getSettings().approvals.routineGrantTtlHours) : undefined;
112
+ if (grantLabel !== undefined) {
112
113
  buttons.push({
113
114
  type: COMPONENT_BUTTON,
114
115
  style: BUTTON_STYLE_SECONDARY,
115
- // OPE-152: the label comes from core, so Slack and Discord can never disagree about whether
116
- // the click grants for this session or standing-for-this-routine (a fire's card).
117
- label: grantButtonLabel(row),
116
+ label: grantLabel,
118
117
  custom_id: buildDiscordApprovalCustomId(row, "approve_session"),
119
118
  });
120
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"discord-card.js","sourceRoot":"","sources":["../../../agent/approvals/discord-card.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discord-card.js","sourceRoot":"","sources":["../../../agent/approvals/discord-card.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,7 @@ export interface DiscordApprovalDeps {
67
67
  *
68
68
  * 🔴 TWO LEGS MOVE, AND THE SECOND ONE EXECUTES. The decision FEEDBACK above, and the core's
69
69
  * OPE-251 session-grant RELEASE (OPE-1709), which this file forwards into `resolveApprovalClick`
70
- * below — an "Approve for session" click decides and runs up to `MAX_SESSION_GRANT_RELEASES`
70
+ * below — an "Approve for this routine" click decides and runs up to `MAX_SESSION_GRANT_RELEASES`
71
71
  * sibling cards, so it is the heavier of the two. Do not read this hook as feedback plumbing.
72
72
  *
73
73
  * 🔴 WHAT DOES NOT MOVE IS THE RESPONSE BODY. `resolveApprovalClick` decides it, so that CALL
@@ -1 +1 @@
1
- {"version":3,"file":"discord-flow.d.ts","sourceRoot":"","sources":["../../../agent/approvals/discord-flow.ts"],"names":[],"mappings":"AAyDA,OAAO,EAOL,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACtB,MAAM,4CAA4C,CAAC;AAyBpD,oFAAoF;AACpF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjE,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE7B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CAEf;AAkDD;;;0DAG0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yFAAyF;IACzF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;oEACgE;IAChE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AASD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAcpF;AAMD,0FAA0F;AAC1F,MAAM,WAAW,mBAAmB;IAClC,gGAAgG;IAChG,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF,QAAQ,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IACzC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;CACpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,uBAAuB,GAAG,0BAA0B,CAuD3F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gCAAgC,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAwH/I"}
1
+ {"version":3,"file":"discord-flow.d.ts","sourceRoot":"","sources":["../../../agent/approvals/discord-flow.ts"],"names":[],"mappings":"AAyDA,OAAO,EAOL,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACtB,MAAM,4CAA4C,CAAC;AAyBpD,oFAAoF;AACpF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjE,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE7B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CAEf;AAkDD;;;0DAG0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yFAAyF;IACzF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;oEACgE;IAChE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AASD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAcpF;AAMD,0FAA0F;AAC1F,MAAM,WAAW,mBAAmB;IAClC,gGAAgG;IAChG,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF,QAAQ,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IACzC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;CACpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,uBAAuB,GAAG,0BAA0B,CAuD3F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gCAAgC,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAyH/I"}
@@ -310,8 +310,9 @@ export async function handleDiscordApprovalInteraction(raw, deps = {}) {
310
310
  // Decision FEEDBACK (task #106 — Slack click-path parity): a fresh notice beside the card (the
311
311
  // UPDATE_MESSAGE response is an EDIT, invisible to backscroll) + the cross-thread window wake.
312
312
  // The wake's guild id comes from the SIGNED interaction (Slack's team.id analogue — the frozen
313
- // scopeKey can name a different workspace under an explicit-scope override); a DM-context
314
- // interaction has none → no wake, fail-soft, the notice still posts beside the card. No transport
313
+ // scopeKey can name a different workspace under an explicit-scope override). A DM-context
314
+ // interaction has none, so the core takes the card's mint-frozen DM `postedTo` as the DM seat's
315
+ // surfaceKey instead (OPE-2376); the notice posts beside the card either way. No transport
315
316
  // failure throws out of it; the egress spoof's Vercel refusal can (OPE-1132). On the AWAITED path
316
317
  // below that refusal reaches the caller's own catch, which answers the interaction anyway rather
317
318
  // than leaving Discord to retry. On the DEFERRED path the response has already gone, so the catch
@@ -1 +1 @@
1
- {"version":3,"file":"discord-flow.js","sourceRoot":"","sources":["../../../agent/approvals/discord-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discord-flow.js","sourceRoot":"","sources":["../../../agent/approvals/discord-flow.ts"],"names":[],"mappings":"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"}
@@ -33,8 +33,8 @@ export function resolveDiscordTarget(r) {
33
33
  // bindDiscord's re-derived workspace always agree.
34
34
  const guildId = storedGuildId ?? r.surfaceKey.split("/")[1] ?? "";
35
35
  // OPE-486 — the fire's WAKE ORIGIN, parity with resolveSlackTarget (routine-dispatch.ts). Absent
36
- // before this fix, so a Discord fire could never divert into the unified window (fire-window.ts's
37
- // planFireWindow fails closed on a missing origin). Two shapes, matching the codec's XOR
36
+ // before this fix, so a Discord fire could never divert into the unified window (fire-work.ts's
37
+ // planFireWork fails closed on a missing origin). Two shapes, matching the codec's XOR
38
38
  // (discord-origin-codec.ts): a DM/group-DM fire (mode "dm"/"mpim") gets the `dm: true` variant —
39
39
  // NEVER a guild-shaped origin with a possibly-empty guildId, which the codec refuses by
40
40
  // construction (D1/D3). Every other fire gets the guild variant; an empty guildId (only possible
@@ -1 +1 @@
1
- {"version":3,"file":"discord-dispatch-target.js","sourceRoot":"","sources":["../../../agent/channels/discord-dispatch-target.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discord-dispatch-target.js","sourceRoot":"","sources":["../../../agent/channels/discord-dispatch-target.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"discord-front.d.ts","sourceRoot":"","sources":["../../../agent/channels/discord-front.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discord-front.d.ts","sourceRoot":"","sources":["../../../agent/channels/discord-front.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ import { LINK_CONSENT_CLICK_PREFIX, OE_GRANT_ACTION_PREFIX, OE_INPUT_CLICK_PREFI
36
36
  import { handleDiscordLinkConsentInteraction } from "../identity/discord-link-consent.js";
37
37
  import { handleDiscordGrantCardInteraction } from "../access/discord-grant-click.js";
38
38
  import { handleDiscordApprovalCardInteraction } from "./discord-approval-card.js";
39
- import { approvalCardRespondVia, OE_COMMAND_NAME } from "@open-everywhere/core/agent/adapter-api.js";
39
+ import { approvalCardRespondVia, oeCommandName } from "@open-everywhere/core/agent/adapter-api.js";
40
40
  import { handleDiscordOeCommandInteraction } from "../commands/discord-commands.js";
41
41
  /** The public URL Discord POSTs every interaction to (the app's Interactions Endpoint URL). */
42
42
  export const PUBLIC_DISCORD_ROUTE = "/eve/v1/discord";
@@ -123,8 +123,11 @@ export function classifyDiscordInteraction(rawBody) {
123
123
  // forwards untouched — this is the ONLY command name the front route special-cases.
124
124
  const data = typeof p.data === "object" && p.data !== null ? p.data : undefined;
125
125
  const name = typeof data?.name === "string" ? data.name : undefined;
126
- if (name === OE_COMMAND_NAME) {
127
- return { kind: "oe-command", reason: `"/${OE_COMMAND_NAME}" command — ours, zero-inference, never forwarded`, interaction: json };
126
+ // The name is the `identity.commandName` setting, read per interaction (OPE-2334), so the
127
+ // router matches the same name the registration declared.
128
+ const commandName = oeCommandName();
129
+ if (name === commandName) {
130
+ return { kind: "oe-command", reason: `"/${commandName}" command — ours, zero-inference, never forwarded`, interaction: json };
128
131
  }
129
132
  return { kind: "forward", reason: `application command "${name ?? "?"}" — not ours, discordChannel dispatches it` };
130
133
  }