@open-everywhere/provider-slack 0.7.0 → 0.8.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 (127) hide show
  1. package/agent/access/slack-attachment-fetch.ts +2 -1
  2. package/agent/app-manifest.ts +18 -2
  3. package/agent/channels/slack-agent-session.ts +338 -0
  4. package/agent/channels/slack-attachments.ts +20 -11
  5. package/agent/channels/slack-commands.ts +172 -12
  6. package/agent/channels/slack-context.ts +0 -5
  7. package/agent/channels/slack-events.ts +161 -33
  8. package/agent/channels/slack-follow-ups.ts +148 -0
  9. package/agent/channels/slack-front.ts +232 -26
  10. package/agent/channels/slack-home.ts +9 -3
  11. package/agent/channels/slack-identity.ts +43 -2
  12. package/agent/channels/slack-memory-canvas.ts +192 -51
  13. package/agent/channels/slack-origin-codec.ts +9 -0
  14. package/agent/channels/slack-post-arm.ts +68 -11
  15. package/agent/channels/slack-read.ts +27 -2
  16. package/agent/channels/slack-reply-blocks.ts +180 -0
  17. package/agent/channels/slack-reply-feedback.ts +75 -0
  18. package/agent/channels/slack-shortcut.ts +1 -1
  19. package/agent/channels/slack-voice-clips.ts +82 -0
  20. package/agent/channels/slack-wake-backscroll.ts +0 -5
  21. package/agent/channels/slack.ts +74 -13
  22. package/agent/docs-generated.ts +1299 -2
  23. package/agent/ops.ts +14 -21
  24. package/agent/register.ts +13 -0
  25. package/agent/setup/credentials.ts +17 -0
  26. package/agent/setup/page.ts +6 -3
  27. package/agent/surface-parity.ts +2 -0
  28. package/dist/agent/access/slack-attachment-fetch.d.ts.map +1 -1
  29. package/dist/agent/access/slack-attachment-fetch.js.map +1 -1
  30. package/dist/agent/app-manifest.d.ts.map +1 -1
  31. package/dist/agent/app-manifest.js +18 -2
  32. package/dist/agent/app-manifest.js.map +1 -1
  33. package/dist/agent/channels/slack-agent-session.d.ts +85 -0
  34. package/dist/agent/channels/slack-agent-session.d.ts.map +1 -0
  35. package/dist/agent/channels/slack-agent-session.js +282 -0
  36. package/dist/agent/channels/slack-agent-session.js.map +1 -0
  37. package/dist/agent/channels/slack-attachments.d.ts +11 -0
  38. package/dist/agent/channels/slack-attachments.d.ts.map +1 -1
  39. package/dist/agent/channels/slack-attachments.js +21 -14
  40. package/dist/agent/channels/slack-attachments.js.map +1 -1
  41. package/dist/agent/channels/slack-commands.d.ts +113 -10
  42. package/dist/agent/channels/slack-commands.d.ts.map +1 -1
  43. package/dist/agent/channels/slack-commands.js +146 -13
  44. package/dist/agent/channels/slack-commands.js.map +1 -1
  45. package/dist/agent/channels/slack-context.d.ts +1 -2
  46. package/dist/agent/channels/slack-context.d.ts.map +1 -1
  47. package/dist/agent/channels/slack-context.js +0 -4
  48. package/dist/agent/channels/slack-context.js.map +1 -1
  49. package/dist/agent/channels/slack-events.d.ts +53 -100
  50. package/dist/agent/channels/slack-events.d.ts.map +1 -1
  51. package/dist/agent/channels/slack-events.js +142 -26
  52. package/dist/agent/channels/slack-events.js.map +1 -1
  53. package/dist/agent/channels/slack-follow-ups.d.ts +44 -0
  54. package/dist/agent/channels/slack-follow-ups.d.ts.map +1 -0
  55. package/dist/agent/channels/slack-follow-ups.js +129 -0
  56. package/dist/agent/channels/slack-follow-ups.js.map +1 -0
  57. package/dist/agent/channels/slack-front.d.ts +28 -45
  58. package/dist/agent/channels/slack-front.d.ts.map +1 -1
  59. package/dist/agent/channels/slack-front.js +207 -22
  60. package/dist/agent/channels/slack-front.js.map +1 -1
  61. package/dist/agent/channels/slack-home.d.ts.map +1 -1
  62. package/dist/agent/channels/slack-home.js +10 -3
  63. package/dist/agent/channels/slack-home.js.map +1 -1
  64. package/dist/agent/channels/slack-identity.d.ts +33 -21
  65. package/dist/agent/channels/slack-identity.d.ts.map +1 -1
  66. package/dist/agent/channels/slack-identity.js +36 -2
  67. package/dist/agent/channels/slack-identity.js.map +1 -1
  68. package/dist/agent/channels/slack-memory-canvas.d.ts +21 -5
  69. package/dist/agent/channels/slack-memory-canvas.d.ts.map +1 -1
  70. package/dist/agent/channels/slack-memory-canvas.js +162 -52
  71. package/dist/agent/channels/slack-memory-canvas.js.map +1 -1
  72. package/dist/agent/channels/slack-origin-codec.d.ts.map +1 -1
  73. package/dist/agent/channels/slack-origin-codec.js +10 -0
  74. package/dist/agent/channels/slack-origin-codec.js.map +1 -1
  75. package/dist/agent/channels/slack-post-arm.d.ts +21 -1
  76. package/dist/agent/channels/slack-post-arm.d.ts.map +1 -1
  77. package/dist/agent/channels/slack-post-arm.js +57 -10
  78. package/dist/agent/channels/slack-post-arm.js.map +1 -1
  79. package/dist/agent/channels/slack-read.d.ts +11 -1
  80. package/dist/agent/channels/slack-read.d.ts.map +1 -1
  81. package/dist/agent/channels/slack-read.js +27 -3
  82. package/dist/agent/channels/slack-read.js.map +1 -1
  83. package/dist/agent/channels/slack-reply-blocks.d.ts +29 -0
  84. package/dist/agent/channels/slack-reply-blocks.d.ts.map +1 -0
  85. package/dist/agent/channels/slack-reply-blocks.js +172 -0
  86. package/dist/agent/channels/slack-reply-blocks.js.map +1 -0
  87. package/dist/agent/channels/slack-reply-feedback.d.ts +23 -0
  88. package/dist/agent/channels/slack-reply-feedback.d.ts.map +1 -0
  89. package/dist/agent/channels/slack-reply-feedback.js +63 -0
  90. package/dist/agent/channels/slack-reply-feedback.js.map +1 -0
  91. package/dist/agent/channels/slack-shortcut.d.ts +10 -0
  92. package/dist/agent/channels/slack-shortcut.d.ts.map +1 -1
  93. package/dist/agent/channels/slack-shortcut.js +1 -1
  94. package/dist/agent/channels/slack-shortcut.js.map +1 -1
  95. package/dist/agent/channels/slack-voice-clips.d.ts +16 -0
  96. package/dist/agent/channels/slack-voice-clips.d.ts.map +1 -0
  97. package/dist/agent/channels/slack-voice-clips.js +80 -0
  98. package/dist/agent/channels/slack-voice-clips.js.map +1 -0
  99. package/dist/agent/channels/slack-wake-backscroll.d.ts +0 -2
  100. package/dist/agent/channels/slack-wake-backscroll.d.ts.map +1 -1
  101. package/dist/agent/channels/slack-wake-backscroll.js +0 -4
  102. package/dist/agent/channels/slack-wake-backscroll.js.map +1 -1
  103. package/dist/agent/channels/slack.d.ts +22 -1
  104. package/dist/agent/channels/slack.d.ts.map +1 -1
  105. package/dist/agent/channels/slack.js +63 -13
  106. package/dist/agent/channels/slack.js.map +1 -1
  107. package/dist/agent/docs-generated.d.ts.map +1 -1
  108. package/dist/agent/docs-generated.js +1299 -2
  109. package/dist/agent/docs-generated.js.map +1 -1
  110. package/dist/agent/ops.d.ts +1 -1
  111. package/dist/agent/ops.d.ts.map +1 -1
  112. package/dist/agent/ops.js +15 -21
  113. package/dist/agent/ops.js.map +1 -1
  114. package/dist/agent/register.d.ts.map +1 -1
  115. package/dist/agent/register.js +12 -1
  116. package/dist/agent/register.js.map +1 -1
  117. package/dist/agent/setup/credentials.d.ts +12 -0
  118. package/dist/agent/setup/credentials.d.ts.map +1 -1
  119. package/dist/agent/setup/credentials.js +17 -0
  120. package/dist/agent/setup/credentials.js.map +1 -1
  121. package/dist/agent/setup/page.d.ts.map +1 -1
  122. package/dist/agent/setup/page.js +6 -3
  123. package/dist/agent/setup/page.js.map +1 -1
  124. package/dist/agent/surface-parity.d.ts.map +1 -1
  125. package/dist/agent/surface-parity.js +2 -0
  126. package/dist/agent/surface-parity.js.map +1 -1
  127. package/package.json +31 -3
@@ -0,0 +1,63 @@
1
+ // slack-reply-feedback — a click on Slack's native thumbs up / down under an agent answer (OPE-2520).
2
+ //
3
+ // The answer carries one `feedback_buttons` element (slack-reply-blocks.ts). Slack sends a click to the
4
+ // app's interactivity URL as a signed `block_actions` payload whose action id is exactly
5
+ // `oe_feedback` and whose value is `up` or `down`. The front route classifies it (`slack-front.ts`,
6
+ // FrontDecision `feedback-click`), runs the tenant fence, acknowledges with an empty 200, and hands it
7
+ // here. This module turns it into core's surface-neutral click and writes the `reply.feedback` row.
8
+ //
9
+ // 🔴 ONLY OUR OWN MESSAGES CARRY THE BUTTON. Slack sends a `block_actions` payload only for a block the
10
+ // app itself posted, so a click always rates one of this app's messages: no bot-author check is needed,
11
+ // unlike the reaction road, where a 👍 can land on anyone's message.
12
+ import { recordReplyFeedback, resolvePartition } from "@open-everywhere/core/agent/adapter-api.js";
13
+ import { bindableForSlackIds } from "./slack-events.js";
14
+ import { SLACK_FEEDBACK_ACTION_ID, SLACK_FEEDBACK_VALUE_DOWN, SLACK_FEEDBACK_VALUE_UP } from "./slack-reply-blocks.js";
15
+ const obj = (v) => (typeof v === "object" && v !== null ? v : undefined);
16
+ const str = (v) => (typeof v === "string" && v.length > 0 ? v : undefined);
17
+ /**
18
+ * Parse a decoded interactivity payload into a thumbs click, or `undefined` when it is not one: not a
19
+ * `block_actions`, no `oe_feedback` action, a value other than `up`/`down`, or a missing user, channel
20
+ * or message. Pure and total: it never throws.
21
+ */
22
+ export function parseSlackFeedbackClick(payload) {
23
+ const p = obj(payload);
24
+ if (p?.type !== "block_actions" || !Array.isArray(p.actions))
25
+ return undefined;
26
+ const action = p.actions.map(obj).find((a) => a?.action_id === SLACK_FEEDBACK_ACTION_ID);
27
+ if (action === undefined)
28
+ return undefined;
29
+ const value = str(action.value);
30
+ const rating = value === SLACK_FEEDBACK_VALUE_UP ? "up" : value === SLACK_FEEDBACK_VALUE_DOWN ? "down" : undefined;
31
+ if (rating === undefined)
32
+ return undefined;
33
+ const userId = str(obj(p.user)?.id);
34
+ const channelId = str(obj(p.channel)?.id) ?? str(obj(p.container)?.channel_id);
35
+ const messageTs = str(obj(p.message)?.ts) ?? str(obj(p.container)?.message_ts);
36
+ if (userId === undefined || channelId === undefined || messageTs === undefined)
37
+ return undefined;
38
+ const teamId = str(obj(p.team)?.id) ?? str(obj(p.user)?.team_id);
39
+ return { rating, userId, channelId, messageTs, ...(teamId === undefined ? {} : { teamId }) };
40
+ }
41
+ /** Record one thumbs click as a `reply.feedback` row, under the clicked conversation's partition.
42
+ * Answers whether the row was written. Never throws. */
43
+ export async function routeSlackFeedbackClick(click, deps = {}) {
44
+ try {
45
+ const p = resolvePartition(bindableForSlackIds({ teamId: click.teamId, channelId: click.channelId, userId: click.userId }));
46
+ const record = deps.record ?? ((c) => recordReplyFeedback(c));
47
+ return await record({
48
+ surface: "slack",
49
+ rating: click.rating,
50
+ raterId: click.userId,
51
+ channelId: click.channelId,
52
+ messageId: click.messageTs,
53
+ org: p.org,
54
+ platform: p.platform,
55
+ workspace: p.workspace,
56
+ surfaceKey: p.surfaceKey,
57
+ });
58
+ }
59
+ catch {
60
+ return false;
61
+ }
62
+ }
63
+ //# sourceMappingURL=slack-reply-feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-reply-feedback.js","sourceRoot":"","sources":["../../../agent/channels/slack-reply-feedback.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,16 @@ export declare function shortcutWakeKey(sc: ParsedSlackShortcut): string;
113
113
  * fenced as untrusted content — the same reasoning that leaves a slash-command name unfenced.
114
114
  */
115
115
  export declare function globalShortcutText(sc: ParsedSlackShortcut): string;
116
+ /**
117
+ * A Slack-shaped `ts` for the one wake that has no message behind it: a global shortcut.
118
+ *
119
+ * Slack's format is `<seconds>.<microseconds>`, and the wake envelope reads it back with
120
+ * `Number.parseFloat` to render `sent-at`. Minting from the clock therefore makes `sent-at` say
121
+ * exactly what is true — when the person pressed the button. The microsecond field carries this
122
+ * instant's milliseconds; the last three digits are zero, because a millisecond clock cannot
123
+ * honestly claim more precision than it has.
124
+ */
125
+ export declare function slackTsFromMs(nowMs: number): string;
116
126
  /**
117
127
  * Map a shortcut onto the shared {@link ParsedMessageEvent} shape, so the front door's existing
118
128
  * wake spine (partition → seat → window → dedupe → gates → divert) runs over it unchanged.
@@ -1 +1 @@
1
- {"version":3,"file":"slack-shortcut.d.ts","sourceRoot":"","sources":["../../../agent/channels/slack-shortcut.ts"],"names":[],"mappings":"AA6BA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG7E;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IACpC,wFAAwF;IACxF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;2FAIuF;IACvF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,oFAAoF;IACpF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,uFAAuF;QACvF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,kEAAkE;QAClE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,sFAAsF;QACtF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB;;;;;sEAK8D;QAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;KAClD,CAAC;CACH;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CA6ClF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,mBAAmB,GAAG,MAAM,CAE/D;AAsCD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,mBAAmB,GAAG,MAAM,CAElE;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,mBAAmB,EACvB,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,GAAE,MAAmB,EAC1B,IAAI,GAAE;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GACjD,kBAAkB,CAuBpB"}
1
+ {"version":3,"file":"slack-shortcut.d.ts","sourceRoot":"","sources":["../../../agent/channels/slack-shortcut.ts"],"names":[],"mappings":"AA6BA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG7E;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IACpC,wFAAwF;IACxF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;2FAIuF;IACvF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,oFAAoF;IACpF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,uFAAuF;QACvF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,kEAAkE;QAClE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,sFAAsF;QACtF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB;;;;;sEAK8D;QAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;KAClD,CAAC;CACH;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CA6ClF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,mBAAmB,GAAG,MAAM,CAE/D;AAsCD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,mBAAmB,GAAG,MAAM,CAElE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAInD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,mBAAmB,EACvB,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,GAAE,MAAmB,EAC1B,IAAI,GAAE;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GACjD,kBAAkB,CAuBpB"}
@@ -187,7 +187,7 @@ export function globalShortcutText(sc) {
187
187
  * instant's milliseconds; the last three digits are zero, because a millisecond clock cannot
188
188
  * honestly claim more precision than it has.
189
189
  */
190
- function slackTsFromMs(nowMs) {
190
+ export function slackTsFromMs(nowMs) {
191
191
  const seconds = Math.floor(nowMs / 1000);
192
192
  const millis = nowMs % 1000;
193
193
  return `${seconds}.${String(millis).padStart(3, "0")}000`;
@@ -1 +1 @@
1
- {"version":3,"file":"slack-shortcut.js","sourceRoot":"","sources":["../../../agent/channels/slack-shortcut.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-shortcut.js","sourceRoot":"","sources":["../../../agent/channels/slack-shortcut.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { hearVoiceClips } from "@open-everywhere/core/agent/adapter-api.js";
2
+ import { type ParsedMessageEvent } from "./slack-events.js";
3
+ import { pullSlackAttachmentBytes } from "./slack-attachments.js";
4
+ export interface SlackVoiceClipDeps {
5
+ readonly hear?: typeof hearVoiceClips;
6
+ readonly pull?: typeof pullSlackAttachmentBytes;
7
+ }
8
+ /** True when the message carries a voice clip, so a road can skip the whole step on the common message. */
9
+ export declare function hasSlackVoiceClip(ev: ParsedMessageEvent): boolean;
10
+ /**
11
+ * The message with its voice clips heard: the transcript appended to `text` and `authoredText`, and a `file_share`
12
+ * subtype cleared. A message with no clip comes back unchanged (the same object). Total: any failure gives the message
13
+ * back unchanged, so a broken clip never costs the person their typed words.
14
+ */
15
+ export declare function withSlackVoiceClips(ev: ParsedMessageEvent, deps?: SlackVoiceClipDeps): Promise<ParsedMessageEvent>;
16
+ //# sourceMappingURL=slack-voice-clips.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-voice-clips.d.ts","sourceRoot":"","sources":["../../../agent/channels/slack-voice-clips.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,cAAc,EAAqD,MAAM,4CAA4C,CAAC;AAC/H,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAMlE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,cAAc,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,wBAAwB,CAAC;CACjD;AAED,2GAA2G;AAC3G,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAEjE;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,kBAAkB,EAAE,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkC5H"}
@@ -0,0 +1,80 @@
1
+ // SLACK VOICE CLIPS (OPE-2524) — hear the voice clip on a Slack message the agent was ALREADY going to answer.
2
+ //
3
+ // The front door (slack-front.ts) calls {@link withSlackVoiceClips} on four roads, each one after the road decided to
4
+ // wake the agent and inside the road's own serialized queue, so the 200 to Slack never waits on a transcription:
5
+ // • a DM or group DM (the DM window seat);
6
+ // • a group-DM @mention diverted to that seat;
7
+ // • an addressed seat wake: a diverted @mention, or a follow-up in a thread the seat is holding;
8
+ // • a follow-up in an engaged thread on an unseated deployment.
9
+ // "Holding" means an engaged thread that was not stood down: the threads where a typed follow-up reaches the agent
10
+ // (slack-front.ts `threadHearsClips`).
11
+ //
12
+ // 🔴 A CLIP IN A ROOM THAT DID NOT ADDRESS THE AGENT IS NEVER DOWNLOADED. A top-level channel message, an unengaged
13
+ // thread and an ambient (unaddressed) seat wake all skip this. The name-drop judge reads typed words only, so a person
14
+ // who wants the agent to hear a clip in a channel @mentions it or replies in its thread. That keeps a room's audio out
15
+ // of a speech-to-text provider unless somebody pointed it at the agent.
16
+ //
17
+ // THE FETCH is the same bot-token, host-pinned, size-guarded read `read_file_upload` uses
18
+ // (slack-attachments.ts `pullSlackAttachmentBytes`), over the EVENT's own `url_private`. The bytes go to the
19
+ // transcriber and are dropped.
20
+ //
21
+ // 🔴 THE HEARD MESSAGE IS A PLAIN MESSAGE. Slack sends an upload as subtype `file_share`, and every thread gate drops a
22
+ // subtype (`shouldDeliverReply`, `shouldSupervisorWake`). Once a clip is heard, the message is what the person said,
23
+ // so the subtype is cleared. Only `file_share` is cleared. An edit (`message_changed`) is not heard again at all.
24
+ import { hearVoiceClips, isVoiceClip, voiceClipBody } from "@open-everywhere/core/agent/adapter-api.js";
25
+ import { bindableFor } from "./slack-events.js";
26
+ import { pullSlackAttachmentBytes } from "./slack-attachments.js";
27
+ import { slackTenantAdmission } from "./slack-tenant-fence.js";
28
+ /** Slack records a voice clip as `audio/webm` or `audio/mp4`. A clip that names no type is sent as mp4. */
29
+ const FALLBACK_MEDIA_TYPE = "audio/mp4";
30
+ /** True when the message carries a voice clip, so a road can skip the whole step on the common message. */
31
+ export function hasSlackVoiceClip(ev) {
32
+ return (ev.attachments ?? []).some(isVoiceClip);
33
+ }
34
+ /**
35
+ * The message with its voice clips heard: the transcript appended to `text` and `authoredText`, and a `file_share`
36
+ * subtype cleared. A message with no clip comes back unchanged (the same object). Total: any failure gives the message
37
+ * back unchanged, so a broken clip never costs the person their typed words.
38
+ */
39
+ export async function withSlackVoiceClips(ev, deps = {}) {
40
+ if (!hasSlackVoiceClip(ev))
41
+ return ev;
42
+ // An EDIT is not heard again: the clip was heard on first delivery, and a caption edit must not pay for the same audio
43
+ // twice. The edit's own text goes on as typed.
44
+ if (ev.subtype === "message_changed")
45
+ return ev;
46
+ // 🔴 THE TENANT FENCE, ASKED AGAIN HERE. Every road refuses an undeclared workspace on its own, but the group-DM
47
+ // mention road reaches its fence (`scheduleDmWake`) only AFTER this step. So a foreign workspace's clip must not be
48
+ // downloaded or billed here. The question is pure: the refusal's audit row stays with the road's own fence.
49
+ if (slackTenantAdmission(ev.teamId, ev.enterpriseId) === "unadmitted")
50
+ return ev;
51
+ const pull = deps.pull ?? pullSlackAttachmentBytes;
52
+ let outcomes;
53
+ try {
54
+ const bindable = bindableFor(ev);
55
+ outcomes = await (deps.hear ?? hearVoiceClips)({
56
+ attachments: ev.attachments,
57
+ bindable,
58
+ load: async (clip, maxBytes) => {
59
+ if (clip.url === undefined)
60
+ throw new Error("the clip carries no download URL");
61
+ const audio = await pull(bindable, { urlPrivate: clip.url, ...(clip.id ? { id: clip.id } : {}) }, maxBytes);
62
+ return { audio, mediaType: clip.mimeType ?? FALLBACK_MEDIA_TYPE };
63
+ },
64
+ });
65
+ }
66
+ catch (err) {
67
+ console.warn(`[open-everywhere:slack-voice-clips] ${ev.channelId}/${ev.ts}: voice clip step failed — the message goes on as typed: ${String(err)}`);
68
+ return ev;
69
+ }
70
+ if (outcomes.length === 0)
71
+ return ev;
72
+ const { subtype, ...rest } = ev;
73
+ return {
74
+ ...rest,
75
+ ...(subtype === undefined || subtype === "file_share" ? {} : { subtype }),
76
+ text: voiceClipBody(ev.text, outcomes),
77
+ authoredText: voiceClipBody(ev.authoredText, outcomes),
78
+ };
79
+ }
80
+ //# sourceMappingURL=slack-voice-clips.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-voice-clips.js","sourceRoot":"","sources":["../../../agent/channels/slack-voice-clips.ts"],"names":[],"mappings":"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"}
@@ -48,8 +48,6 @@ export interface WakeBackscrollDeps {
48
48
  readonly request: SlackRequester;
49
49
  readonly identity: () => Promise<WakeBotIdentity>;
50
50
  }
51
- /** Reset the cached wake bot identity (tests only). */
52
- export declare function _resetWakeBotIdentity(): void;
53
51
  /** The RAW-lines result of a name-drop backscroll fetch (W3): the oldest-first
54
52
  * {@link ContextLine}s — capped at {@link WAKE_BACKSCROLL_MAX}, or at the wider
55
53
  * {@link THREAD_ADMISSION_MAX} where the caller asked for the thread leg's admission slice
@@ -1 +1 @@
1
- {"version":3,"file":"slack-wake-backscroll.d.ts","sourceRoot":"","sources":["../../../agent/channels/slack-wake-backscroll.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-wake-backscroll.d.ts","sourceRoot":"","sources":["../../../agent/channels/slack-wake-backscroll.ts"],"names":[],"mappings":"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"}
@@ -79,10 +79,6 @@ function liveWakeBotIdentity() {
79
79
  }
80
80
  return wakeBotIdentityPromise;
81
81
  }
82
- /** Reset the cached wake bot identity (tests only). */
83
- export function _resetWakeBotIdentity() {
84
- wakeBotIdentityPromise = undefined;
85
- }
86
82
  const liveDeps = { request: liveRequest, identity: liveWakeBotIdentity };
87
83
  /**
88
84
  * Fetch recent conversation history for a name-drop wake as RAW ContextLines + source + hint (W3) —
@@ -1 +1 @@
1
- {"version":3,"file":"slack-wake-backscroll.js","sourceRoot":"","sources":["../../../agent/channels/slack-wake-backscroll.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-wake-backscroll.js","sourceRoot":"","sources":["../../../agent/channels/slack-wake-backscroll.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,EAAE;AACF,8FAA8F;AAC9F,gGAAgG;AAChG,gGAAgG;AAChG,0BAA0B;AAC1B,qFAAqF;AACrF,4FAA4F;AAC5F,sDAAsD;AACtD,+FAA+F;AAC/F,2CAA2C;AAC3C,EAAE;AACF,4FAA4F;AAC5F,gGAAgG;AAChG,oGAAoG;AACpG,4FAA4F;AAC5F,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,iFAAiF;AACjF,EAAE;AACF,kGAAkG;AAClG,kGAAkG;AAClG,4FAA4F;AAE5F,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EAQb,qCAAqC,GACtC,MAAM,4CAA4C,CAAC;AAEpD,gGAAgG;AAChG,+FAA+F;AAC/F,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,GAAG,CAAC,CAAC;AA0C5D,+EAA+E;AAE/E,oGAAoG;AACpG,qGAAqG;AACrG,kGAAkG;AAClG,oFAAoF;AACpF,MAAM,WAAW,GAAmB,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAC3D,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAA4B,CAAC;IACtH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,8FAA8F;QAC9F,8FAA8F;QAC9F,gEAAgE;QAChE,IAAI,GAAG,YAAY,uBAAuB,EAAE,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,oDAAoD,MAAM,kBAAkB,GAAG,CAAC,QAAQ,qBAAqB,GAAG,CAAC,QAAQ,MAAM,CAAC,CAAC;QAChJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,mFAAmF;AACnF,8FAA8F;AAC9F,8FAA8F;AAC9F,IAAI,sBAA4D,CAAC;AACjE,SAAS,mBAAmB;IAC1B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,sBAAsB,GAAG,CAAC,KAAK,IAAI,EAAE;YACnC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC/C,IAAI,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO;oBACL,MAAM,EAAE,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;oBACjE,KAAK,EAAE,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;iBAC/D,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED,MAAM,QAAQ,GAAuB,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;AAoB7F;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,KAA0B,EAAE,IAAI,GAAuB,QAAQ;IAC5G,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAsB,CAAA,CAAC,CAAC;QACvE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE;gBACtD,OAAO,EAAE,KAAK,CAAC,SAAS;gBACxB,EAAE,EAAE,KAAK,CAAC,QAAQ;gBAClB,uFAAuF;gBACvF,uFAAuF;gBACvF,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACtB,oFAAoF;YACpF,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;YACxF,8DAA8D;YAC9D,MAAM,KAAK,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,gBAAgB,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnE,6FAA6F;YAC7F,0EAA0E;YAC1E,OAAO,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/H,CAAC;QACD,8FAA8F;QAC9F,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE;YACtD,OAAO,EAAE,KAAK,CAAC,SAAS;YACxB,MAAM,EAAE,KAAK,CAAC,EAAE;YAChB,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,MAAM,CAAC,mBAAmB,CAAC;SACnC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,qEAAqE;QACtF,OAAO,WAAW,CAAC,KAAK,EAAE,iBAAiB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,oDAAoD;IACnE,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAA0B,EAAE,IAAI,GAAuB,QAAQ;IACvG,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IACvF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED,8FAA8F;AAC9F,SAAS,eAAe,CAAC,GAAwC;IAC/D,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9E,OAAO,GAAG,CAAC,QAA0C,CAAC;AACxD,CAAC;AAED,kGAAkG;AAClG,+FAA+F;AAC/F,qFAAqF;AACrF,mGAAmG;AACnG,+FAA+F;AAC/F,SAAS,eAAe,CAAC,KAA6B,EAAE,MAAc;IACpE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,CAAC;AACzD,CAAC;AAED,iGAAiG;AACjG,SAAS,WAAW,CAAC,KAA6B,EAAE,MAAc;IAChE,OAAO,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,CAAC;AACpE,CAAC;AAED,gGAAgG;AAChG,EAAE;AACF,mGAAmG;AACnG,2FAA2F;AAC3F,gGAAgG;AAChG,oGAAoG;AACpG,kGAAkG;AAClG,6FAA6F;AAC7F,GAAG;AACH,EAAE;AACF,0FAA0F;AAC1F,kGAAkG;AAClG,0FAA0F;AAC1F,qGAAqG;AACrG,mFAAmF;AAEnF,kGAAkG;AAElG;;;kGAGkG;AAClG,MAAM,CAAC,MAAM,yBAAyB,GAAG,qCAAqC,CAAC;AAE/E,sFAAsF;AACtF,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC;iGACiG;AACjG,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B;sEACsE;AACtE,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B,uFAAuF;AACvF,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAiB;IACnD,OAAO,CACL,IAAI,CAAC,UAAU,KAAK,OAAO;QAC3B,IAAI,CAAC,UAAU,KAAK,MAAM;QAC1B,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,6CAA6C;KACzG,CAAC;AACJ,CAAC;AAoBD,iGAAiG;AACjG,iCAAiC;AACjC,SAAS,aAAa,CAAC,GAAwC;IAC7D,MAAM,IAAI,GAAG,GAAG,EAAE,iBAA0D,CAAC;IAC7E,MAAM,MAAM,GAAG,IAAI,EAAE,WAAW,CAAC;IACjC,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,iGAAiG;AACjG,oGAAoG;AACpG,0FAA0F;AAC1F,KAAK,UAAU,kBAAkB,CAC/B,OAAuB,EACvB,SAAiB,EACjB,MAAc,EACd,MAAc;IAEd,MAAM,GAAG,GAAmC,EAAE,CAAC;IAC/C,IAAI,MAA0B,CAAC;IAC/B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,mBAAmB,EAAE,IAAI,EAAE,EAAE,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,uBAAuB,EAAE;YACjD,OAAO,EAAE,SAAS;YAClB,MAAM;YACN,SAAS,EAAE,OAAO;YAClB,MAAM;YACN,KAAK,EAAE,MAAM,CAAC,oBAAoB,CAAC;YACnC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI;YAAE,MAAM;QACjB,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAClB,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,gBAAgB;IACtC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+FAA+F;AAC/F,+FAA+F;AAC/F,kGAAkG;AAClG,kEAAkE;AAClE,KAAK,UAAU,kBAAkB,CAC/B,OAAuB,EACvB,SAAiB,EACjB,WAAmD;IAEnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,MAAM,IAAI,oBAAoB;YAAE,MAAM;QAChD,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,kGAAkG;QAClG,IAAI,EAAE,IAAI,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,KAAK,EAAE,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,GAAG,GAAkE,EAAE,CAAC;IAC9E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAC1H,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+FAA+F;AAC/F,kGAAkG;AAClG,wFAAwF;AACxF,KAAK,UAAU,uBAAuB,CACpC,OAAuB,EACvB,SAAiB,EACjB,UAAkB,EAClB,MAAc,EACd,MAAc;IAEd,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,uBAAuB,EAAE;QACjD,OAAO,EAAE,SAAS;QAClB,EAAE,EAAE,UAAU;QACd,MAAM;QACN,MAAM;QACN,+FAA+F;QAC/F,6CAA6C;QAC7C,SAAS,EAAE,MAAM;QACjB,KAAK,EAAE,MAAM,CAAC,oBAAoB,CAAC;KACpC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,iGAAiG;AACjG,8FAA8F;AAC9F,kFAAkF;AAClF,SAAS,YAAY,CACnB,CAA0B,EAC1B,GAAoB,EACpB,IAA0B,EAC1B,QAA4B;IAE5B,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC,CAAC,iDAAiD;IAC9E,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC,CAAC,+CAA+C;IACjG,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAChD,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,EAAE,EAAE,OAAO,GAAG,IAAI;QAClB,+FAA+F;QAC/F,kDAAkD;QAClD,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,0FAA0F;QAC1F,8FAA8F;QAC9F,qCAAqC;QACrC,MAAM,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QAC5F,IAAI;QACJ,QAAQ;QACR,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,KAAkC,EAClC,IAAI,GAAuB,QAAQ,EACnC,WAAW,GAAqB,MAAM;IAEtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAsB,CAAA,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;YAAE,OAAO,EAAE,CAAC;QAC/C,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,yBAAyB,CAAC;QACzE,+FAA+F;QAC/F,wFAAwF;QACxF,MAAM,YAAY,GAAG,aAAa,GAAG,cAAc,GAAG,IAAI,CAAC;QAC3D,MAAM,YAAY,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5H,MAAM,aAAa,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QACvG,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAErC,6FAA6F;QAC7F,2FAA2F;QAC3F,8FAA8F;QAC9F,6CAA6C;QAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpI,MAAM,YAAY,GAChB,KAAK,CAAC,UAAU,KAAK,SAAS;YAC5B,CAAC,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC;YACtE,CAAC,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACvG,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAErE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,GAAG,GAAwB,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,CAAC,CAAgC,EAAE,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACf,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,WAAW;YAAE,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7E,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvB,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,4FAA4F;gBAC5F,uFAAuF;gBACvF,6FAA6F;gBAC7F,8FAA8F;gBAC9F,yFAAyF;gBACzF,8BAA8B;gBAC9B,yFAAyF;gBACzF,2FAA2F;gBAC3F,iBAAiB;gBACjB,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE;oBAAE,SAAS;gBACnF,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,aAAa;oBAAE,SAAS,CAAC,8BAA8B;gBAC3F,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,aAAa;oBAAE,SAAS,CAAC,0BAA0B;gBACzH,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,WAAW,KAAK,OAAO;YAAE,MAAM,GAAG,CAAC;QACvC,OAAO,EAAE,CAAC,CAAC,0DAA0D;IACvE,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAuB,EAAE,IAAI,GAAuB,QAAQ;IACtG,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACvH,MAAM,UAAU,GAAuB;QACrC,GAAG,IAAI;QACP,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,SAAS,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;IACF,OAAO,0BAA0B,CAC/B,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAC3H,UAAU,EACV,OAAO,CACR,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAE9C;gGACgG;AAChG,MAAM,CAAC,MAAM,qBAAqB,GAAqB,CAAC,GAAG,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAE3F;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,KAAkC,EAClC,IAAI,GAAuB,QAAQ,EACnC,QAA6B,EAC7B,KAAuB;IAEvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACnC,OAAO,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,oDAAoD;IACjE,CAAC;AACH,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { type SlackContext, type SlackMessage } from "eve/channels/slack";
2
- import { type OpenEverywhereSlackAuth } from "./slack-identity.js";
2
+ import { type ChannelFacts, type OpenEverywhereSlackAuth } from "./slack-identity.js";
3
+ import { type SlackMemberProbe } from "./slack-events.js";
3
4
  /**
4
5
  * The `chat.postMessage` form body for a channel-supervisor's host-side reply post (OPE-878).
5
6
  *
@@ -16,6 +17,26 @@ type InboundOutcome = {
16
17
  readonly auth: OpenEverywhereSlackAuth | null;
17
18
  readonly context?: readonly string[];
18
19
  } | null;
20
+ /**
21
+ * THE AUTHOR LEG ON THE NATIVE MENTION DOOR (OPE-2572). Every other Slack wake road probes who wrote
22
+ * the trigger and stamps `oe_chat_nonmember` on a positive refutation (slack-events.ts
23
+ * `slackWakeAuthorFacts`, the front's DM and group-DM legs). This door did neither, so a guest who
24
+ * @mentioned the agent in an internal channel woke an unmarked turn: no taint seed, no member-plane
25
+ * refusal, and a check-in that counted (hooks/routine-report-reply.ts). This runs the SAME probe and
26
+ * the SAME join (`stampNonMemberChatAuth`), so the native door and the windowed doors cannot disagree
27
+ * about one author.
28
+ *
29
+ * 🔴 IT STAMPS, IT DOES NOT DEMOTE THE ROOM. The auth keeps the room's verdict (`trust_checked` /
30
+ * `is_ext_shared`), the rule `slackWakeAuthorFacts` states for the channel routes: one guest's message
31
+ * must not demote the channel's memory tier. The stamp is what the consumers read.
32
+ *
33
+ * The room leg rides along exactly as on the channel routes: a channel the operator declared `public`
34
+ * marks the turn whoever wrote it. A DM or group DM contributes no room leg (`dm: true`).
35
+ *
36
+ * FAIL-OPEN, like every carriage leg: a probe that cannot answer refutes nobody. `probe` is injectable
37
+ * for the unit test only.
38
+ */
39
+ export declare function stampNativeAuthorLeg(message: SlackMessage, facts: ChannelFacts, isDm: boolean, auth: OpenEverywhereSlackAuth | null, probe?: SlackMemberProbe): Promise<OpenEverywhereSlackAuth | null>;
19
40
  /**
20
41
  * THE WAKE-ADMISSION CHOKEPOINT for eve's native mention/DM door (OPE-33) — the only thing wired
21
42
  * into `onAppMention`/`onDirectMessage`.
@@ -1 +1 @@
1
- {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../../agent/channels/slack.ts"],"names":[],"mappings":"AAqBA,OAAO,EAEL,KAAK,YAAY,EAGjB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAQL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AA+K7B;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5G;AA+QD;mDACmD;AACnD,KAAK,cAAc,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC;AA4OrH;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,OAAO,EACb,GAAG,GAAE,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,KAAK,OAAO,CAAC,cAAc,CAAuD,GAClH,OAAO,CAAC,cAAc,CAAC,CAYzB"}
1
+ {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../../agent/channels/slack.ts"],"names":[],"mappings":"AAsBA,OAAO,EAEL,KAAK,YAAY,EAGjB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAOL,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAmE7B,OAAO,EAAoL,KAAK,gBAAgB,EAA8B,MAAM,mBAAmB,CAAC;AAiHxQ;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5G;AAmRD;mDACmD;AACnD,KAAK,cAAc,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC;AA8OrH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,uBAAuB,GAAG,IAAI,EACpC,KAAK,GAAE,gBAAsC,GAC5C,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAkBzC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,OAAO,EACb,GAAG,GAAE,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,KAAK,OAAO,CAAC,cAAc,CAAuD,GAClH,OAAO,CAAC,cAAc,CAAC,CAYzB"}
@@ -17,10 +17,11 @@
17
17
  // encrypted credential store, which is where a `/setup` run puts them. They used to be omitted, which
18
18
  // left eve reading `process.env` on a path OE no longer does. Capturing channel_type/is_private is a RAW-fact job; the
19
19
  // security-critical interpretation (fail-closed to private) lives in the binding.
20
+ import { auditErrorDetail } from "@open-everywhere/core/agent/adapter-api.js";
20
21
  import { SLACK_EVE_CREDENTIALS } from "../setup/eve-credentials.js";
21
22
  import { slackChannel, } from "eve/channels/slack";
22
23
  import { buildSlackAuth, channelFactsFromInfo, channelFactsFromRaw, forwardedSlackEnterpriseId, partnerFactsFromInfo, slackMode, } from "./slack-identity.js";
23
- import { resolvePartition, getOperationalStore, postOnce, outboundKey, statusVerbsFor, getConfig, finalMessageActionForTurn, NO_REPLY_SENTINEL_REASON, auditNoReplySentinelObserved, isBareStop, supervisorTextDelivery, isSupervisorProseLeak, capabilitiesForPlatform, consumeCardPostedThisTurn, consumeReactedThisTurn, consumeRepliedThisTurn, dropClosingProse, markThreadEngaged, disengageThread, getThreadEngagement, bumpThreadSilentStreak, WARM_SILENT_LIMIT, SURFACE, tierId, getProvider, providerById, writeMemoryTier, surfaceProvider, upsertUnderSection, bindFrom, authPrincipalId, isAllowedSlackDriver, planFor, extractPinnedInstructions, introMessage, instructionBullet, ONBOARDED_MARKER, STATUS_REACTION, renderPinned, isPinnedStatusMessage, classifyWakeMapping, unmappedWakeCopy, UNMAPPED_WAKE_DROP_REASON, admittedTenantsFromConfig, unadmittedTenantLog, UNADMITTED_TENANT_DROP_REASON, dmTrustTtlMs, swallowRoomOp, domainRoster, } from "@open-everywhere/core/agent/adapter-api.js";
24
+ import { resolvePartition, auditSurfaceModeFrom, getOperationalStore, postOnce, outboundKey, statusVerbsFor, getConfig, finalMessageActionForTurn, NO_REPLY_SENTINEL_REASON, auditNoReplySentinelObserved, isBareStop, supervisorTextDelivery, isSupervisorProseLeak, capabilitiesForPlatform, consumeCardPostedThisTurn, consumeReactedThisTurn, consumeRepliedThisTurn, dropClosingProse, markThreadEngaged, disengageThread, getThreadEngagement, bumpThreadSilentStreak, WARM_SILENT_LIMIT, SURFACE, tierId, getProvider, providerById, writeMemoryTier, surfaceProvider, upsertUnderSection, bindFrom, authPrincipalId, isAllowedSlackDriver, planFor, extractPinnedInstructions, introMessage, instructionBullet, ONBOARDED_MARKER, STATUS_REACTION, renderPinned, isPinnedStatusMessage, classifyWakeMapping, unmappedWakeCopy, UNMAPPED_WAKE_DROP_REASON, admittedTenantsFromConfig, unadmittedTenantLog, UNADMITTED_TENANT_DROP_REASON, dmTrustTtlMs, swallowRoomOp, domainRoster, domainKeyOf, resolveWakeTrust, stampNonMemberChatAuth, } from "@open-everywhere/core/agent/adapter-api.js";
24
25
  import { TURN_FAILED_TEXT, withEndsTurnFinalChannel } from "@open-everywhere/core/agent/adapter-api.js";
25
26
  import { loadConversationContext } from "./slack-context.js";
26
27
  import { slackSpendGate } from "./slack-spend-gate.js";
@@ -29,7 +30,7 @@ import { holdRouteWork } from "./slack-route-hold.js";
29
30
  import { frontSlackChannel, INTERNAL_SLACK_ROUTE } from "./slack-front.js";
30
31
  import { admitSlackInputResponse } from "./slack-input-response.js";
31
32
  import { taskCardConfidentiality } from "./slack-task-card.js";
32
- import { turnEffectsFor, botDisplayName, slackForm, isSupervisorReplyTurn, deliverSupervisorReply, dmWakeThreadOverride, replyThreadTsForState } from "./slack-events.js";
33
+ import { turnEffectsFor, botDisplayName, slackForm, isSupervisorReplyTurn, deliverSupervisorReply, dmWakeThreadOverride, replyThreadTsForState, slackAuthorIsMember, slackWakeAuthorFacts } from "./slack-events.js";
33
34
  import { markdownToSlackMrkdwn } from "./slack-mrkdwn.js";
34
35
  import { stepStatusFor } from "./slack-step-label.js";
35
36
  // WARM_SILENT_LIMIT (the warm-thread shed threshold) now lives in channels/engagement.ts so
@@ -168,18 +169,20 @@ function isUninvited(state) {
168
169
  async function recordQuietFailure(state, event, message) {
169
170
  console.warn(`[open-everywhere:slack] ${event} on an uninvited turn — suppressed on-surface (${message})`);
170
171
  try {
171
- const p = resolvePartition({
172
+ const bindable = {
172
173
  channel: { kind: "slack" },
173
174
  session: { auth: { current: { attributes: { team_id: state.teamId ?? "", channel_id: state.channelId ?? "" }, principalId: "", principalType: "slack-user" } } },
174
- });
175
+ };
176
+ const p = resolvePartition(bindable);
175
177
  await getOperationalStore().appendAudit({
176
178
  ts: new Date().toISOString(),
177
179
  org: p.org,
178
180
  platform: p.platform,
179
181
  workspace: p.workspace,
180
182
  surface: p.surface,
183
+ ...auditSurfaceModeFrom(bindable),
181
184
  action: "surface.quiet_fail",
182
- detail: { event, threadTs: state.threadTs ?? undefined, message: message.slice(0, 500) },
185
+ detail: { event, threadTs: state.threadTs ?? undefined, message: auditErrorDetail(message).error },
183
186
  });
184
187
  }
185
188
  catch (err) {
@@ -371,6 +374,7 @@ async function maybeOnboard(ctx, where) {
371
374
  silo: target.silo,
372
375
  access: target.access,
373
376
  road: "pinned-instructions",
377
+ ...auditSurfaceModeFrom(where),
374
378
  });
375
379
  adopted = true;
376
380
  }
@@ -388,6 +392,7 @@ async function maybeOnboard(ctx, where) {
388
392
  message: `onboarding ${p.surfaceKey}`,
389
393
  road: "onboarding-marker",
390
394
  kind: "operational",
395
+ ...auditSurfaceModeFrom(where),
391
396
  });
392
397
  try {
393
398
  // Introduce as the bot's actual workspace name (fail-soft → product-name fallback).
@@ -463,16 +468,18 @@ const DROP = null;
463
468
  function auditWakeDropped(message, reason, detail = {}) {
464
469
  return holdRouteWork((async () => {
465
470
  try {
466
- const p = resolvePartition({
471
+ const bindable = {
467
472
  channel: { kind: "slack" },
468
473
  session: { auth: { current: { attributes: { team_id: message.teamId ?? "", channel_id: message.channelId }, principalId: "", principalType: "slack-user" } } },
469
- });
474
+ };
475
+ const p = resolvePartition(bindable);
470
476
  await getOperationalStore().appendAudit({
471
477
  ts: new Date().toISOString(),
472
478
  org: p.org,
473
479
  platform: p.platform,
474
480
  workspace: p.workspace,
475
481
  surface: p.surface,
482
+ ...auditSurfaceModeFrom(bindable),
476
483
  action: "surface.wake_dropped",
477
484
  detail: { reason, channel: message.channelId, ts: message.ts, ...detail },
478
485
  });
@@ -639,7 +646,46 @@ consult) {
639
646
  // its silent streak, and exempts it from warm auto-disengage).
640
647
  await markThreadEngaged(partitionForMessage(message, facts), message.threadTs, new Date().toISOString(), { participating: true });
641
648
  }
642
- return { auth: authFromFacts(message, facts), context };
649
+ return { auth: await stampNativeAuthorLeg(message, facts, isDm, authFromFacts(message, facts)), context };
650
+ }
651
+ /**
652
+ * THE AUTHOR LEG ON THE NATIVE MENTION DOOR (OPE-2572). Every other Slack wake road probes who wrote
653
+ * the trigger and stamps `oe_chat_nonmember` on a positive refutation (slack-events.ts
654
+ * `slackWakeAuthorFacts`, the front's DM and group-DM legs). This door did neither, so a guest who
655
+ * @mentioned the agent in an internal channel woke an unmarked turn: no taint seed, no member-plane
656
+ * refusal, and a check-in that counted (hooks/routine-report-reply.ts). This runs the SAME probe and
657
+ * the SAME join (`stampNonMemberChatAuth`), so the native door and the windowed doors cannot disagree
658
+ * about one author.
659
+ *
660
+ * 🔴 IT STAMPS, IT DOES NOT DEMOTE THE ROOM. The auth keeps the room's verdict (`trust_checked` /
661
+ * `is_ext_shared`), the rule `slackWakeAuthorFacts` states for the channel routes: one guest's message
662
+ * must not demote the channel's memory tier. The stamp is what the consumers read.
663
+ *
664
+ * The room leg rides along exactly as on the channel routes: a channel the operator declared `public`
665
+ * marks the turn whoever wrote it. A DM or group DM contributes no room leg (`dm: true`).
666
+ *
667
+ * FAIL-OPEN, like every carriage leg: a probe that cannot answer refutes nobody. `probe` is injectable
668
+ * for the unit test only.
669
+ */
670
+ export async function stampNativeAuthorLeg(message, facts, isDm, auth, probe = slackAuthorIsMember) {
671
+ if (auth === null)
672
+ return null;
673
+ const mode = slackMode(facts.channelType, message.channelId);
674
+ // The surface fact `resolveWakeTrust` takes: on a 1:1 the partner probe, elsewhere the room's own
675
+ // confirmed-internal verdict (the expression `channelInternalAndMeta` uses).
676
+ const surfaceInternal = isDm ? facts.dmPartnerTrust === "internal" : facts.trustChecked === true && facts.isExternal === false;
677
+ const authorFacts = await slackWakeAuthorFacts(surfaceInternal, message.author?.userId, message.teamId, probe);
678
+ const channelKey = domainKeyOf(partitionForMessage(message, facts));
679
+ const rawBotId = typeof message.raw?.bot_id === "string" ? message.raw.bot_id : undefined;
680
+ const enterpriseId = forwardedSlackEnterpriseId(message);
681
+ const trust = resolveWakeTrust({
682
+ authorIsBot: Boolean(message.author?.isBot) && !isAllowedSlackDriver(message.teamId, rawBotId),
683
+ authorId: message.author?.userId,
684
+ surfaceInternal: authorFacts.surfaceInternal,
685
+ channelKey,
686
+ ...(enterpriseId === undefined ? {} : { enterpriseId }),
687
+ });
688
+ return stampNonMemberChatAuth(auth, [{ trust, refuted: authorFacts.refuted }], mode === "channel" ? { surfaceKey: channelKey } : { dm: true });
643
689
  }
644
690
  /**
645
691
  * THE WAKE-ADMISSION CHOKEPOINT for eve's native mention/DM door (OPE-33) — the only thing wired
@@ -916,16 +962,18 @@ const slackMentionChannel = slackChannel({
916
962
  console.warn(`[open-everywhere:slack] BARE STOP — turn ended with no reply, no react, and no no_reply ` +
917
963
  `(${channelId ?? "?"}/${threadTs ?? "?"}) — this usually means a judgment call went missing, not that one was made.`);
918
964
  try {
919
- const p = resolvePartition({
965
+ const bindable = {
920
966
  channel: { kind: "slack" },
921
967
  session: { auth: { current: { attributes: { team_id: channel.state.teamId ?? "", channel_id: channelId ?? "" }, principalId: "", principalType: "slack-user" } } },
922
- });
968
+ };
969
+ const p = resolvePartition(bindable);
923
970
  await getOperationalStore().appendAudit({
924
971
  ts: new Date().toISOString(),
925
972
  org: p.org,
926
973
  platform: p.platform,
927
974
  workspace: p.workspace,
928
975
  surface: p.surface,
976
+ ...auditSurfaceModeFrom(bindable),
929
977
  action: "turn.bare_stop",
930
978
  detail: { threadTs, ...(sessionId ? { sessionId } : {}) },
931
979
  });
@@ -1002,12 +1050,13 @@ const slackMentionChannel = slackChannel({
1002
1050
  // partition from the session state, independent of whether a reply target resolved.
1003
1051
  const channelId = channel.state.channelId ?? undefined;
1004
1052
  const teamId = channel.state.teamId;
1005
- const partition = channelId
1006
- ? resolvePartition({
1053
+ const supervisorBindable = channelId
1054
+ ? {
1007
1055
  channel: { kind: "slack" },
1008
1056
  session: { auth: { current: { attributes: { team_id: teamId ?? "", channel_id: channelId }, principalId: "", principalType: "slack-user" } } },
1009
- })
1057
+ }
1010
1058
  : undefined;
1059
+ const partition = supervisorBindable ? resolvePartition(supervisorBindable) : undefined;
1011
1060
  // --- MESSAGE-TOOL-ONLY hard-silence gate (OpenClaw steal, slack-events.ts) -----------
1012
1061
  // A supervisor's terminal completion text is NOT a reply: a visible reply must come from
1013
1062
  // the `reply` tool (which posted mid-turn via reply-post.ts + marked repliedThisTurn).
@@ -1029,6 +1078,7 @@ const slackMentionChannel = slackChannel({
1029
1078
  platform: partition.platform,
1030
1079
  workspace: partition.workspace,
1031
1080
  surface: partition.surface,
1081
+ ...(supervisorBindable ? auditSurfaceModeFrom(supervisorBindable) : {}),
1032
1082
  action: "turn.supervisor_prose_dropped",
1033
1083
  detail: { threadTs: target?.threadTs, chars: action.text.length, ...(sessionId ? { sessionId } : {}) },
1034
1084
  });