@open-everywhere/provider-slack 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/agent/access/slack-attachment-fetch.ts +2 -1
  2. package/agent/app-manifest.ts +15 -1
  3. package/agent/channels/slack-agent-session.ts +249 -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 +103 -29
  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 +9 -1
  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 +1282 -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 +15 -1
  32. package/dist/agent/app-manifest.js.map +1 -1
  33. package/dist/agent/channels/slack-agent-session.d.ts +81 -0
  34. package/dist/agent/channels/slack-agent-session.d.ts.map +1 -0
  35. package/dist/agent/channels/slack-agent-session.js +198 -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 +46 -97
  50. package/dist/agent/channels/slack-events.d.ts.map +1 -1
  51. package/dist/agent/channels/slack-events.js +86 -21
  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 +7 -21
  65. package/dist/agent/channels/slack-identity.d.ts.map +1 -1
  66. package/dist/agent/channels/slack-identity.js +3 -1
  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 +1282 -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
@@ -1,9 +1,8 @@
1
1
  import { type SlackAppContextRoom } from "./slack-side-panel.js";
2
- import { resolvePartition, type AttachSessionForCancel, type SeatCatchUpRequest, type SeatCatchUpResult, type ExternalPolicy, type IngestedChatMessage, PREFER_NO_REPLY_TOOL, type Partition, type BindableContext, type SingleWindowMentionPolicy, type UnifiedWindowWake, type ReplyDecision, type EngagementRow, type RoomRoster, type ContextLine, type WakeAttachment, type WakeMessageInput, type WakeParticipant, type WakeTrust, type NormalizedWake, type WakeEngagementTier } from "@open-everywhere/core/agent/adapter-api.js";
3
- import { type SpendGateDecision } from "./slack-spend-gate.js";
2
+ import { resolvePartition, type AttachSessionForCancel, type SeatCatchUpRequest, type SeatCatchUpResult, type ExternalPolicy, type IngestedChatMessage, type Partition, type BindableContext, type SingleWindowMentionPolicy, type UnifiedWindowWake, type ReplyDecision, type EngagementRow, type RoomRoster, type ContextLine, type WakeAttachment, type WakeMessageInput, type WakeParticipant, type WakeTrust, type NormalizedWake, type WakeEngagementTier } from "@open-everywhere/core/agent/adapter-api.js";
4
3
  import { type WakeBackscrollLines } from "./slack-wake-backscroll.js";
5
- export { PREFER_NO_REPLY_TOOL };
6
4
  import { type E2eDriverIdentity, type FinalMessageAction, type ReactionSinkDeps, type ReactionIngestOutcome, type ReactionVerb } from "@open-everywhere/core/agent/adapter-api.js";
5
+ import type { AuditDetail } from "@open-everywhere/core/agent/adapter-api.js";
7
6
  /**
8
7
  * Minimal Slack `event_callback` envelope shape (the subset the parser reads). Mirrors
9
8
  * Eve's internal `SlackEventCallback` without depending on a type it doesn't re-export.
@@ -95,6 +94,12 @@ export interface ParsedMessageEvent {
95
94
  * wake envelope's `<previous-body>` (wake-envelope.ts) so a judged turn can diff old↔new.
96
95
  */
97
96
  readonly previousText?: string;
97
+ /**
98
+ * TRUE ⇒ a `message_changed` edit whose words and files are exactly the pre-edit ones
99
+ * ({@link isUnchangedSlackEdit}). Absent on every other event, and on an edit that carries no
100
+ * `previous_message` to compare against, so an unknown edit reads as a real one.
101
+ */
102
+ readonly unchangedEdit?: true;
98
103
  /** True when the text @mentions the bot — those go through the normal mention path. */
99
104
  readonly isAppMention: boolean;
100
105
  /** Image/file attachment REFERENCES parsed off Slack's `files[]` (docs Part B) — surfaced in
@@ -175,6 +180,29 @@ export declare function resolveSlackInboundText(text: string, inner: Record<stri
175
180
  * ids, wrong outer type). Pure — no I/O — so it's trivially testable against fixtures.
176
181
  */
177
182
  export declare function parseMessageEvent(envelope: SlackEventEnvelope): ParsedMessageEvent | null;
183
+ /**
184
+ * Does a `message_changed` edit leave the message's WORDS and FILES as they were? Pure.
185
+ *
186
+ * 🔴 WHY THIS EXISTS (OPE-2577). Slack raises `message_changed` for more than a person's edit. It
187
+ * raises one each time the message's METADATA changes: a link unfurl, and, in the person's DM with
188
+ * the app, each `agents.sessions.setStatus` call that OE itself makes on the session's root message
189
+ * (slack-agent-session.ts: the title at the door, `processing` at turn start, `active` or
190
+ * `suspended` at the park). The event is hidden: `conversations.history` never lists it, and its
191
+ * `ts` is a fresh notice stamp. Its inner message is the person's own message, with the person's
192
+ * own author. So before this predicate, the DM door woke the seat on every one of them, as a NEW
193
+ * inbound wake. Ship #252 measured it: one DM drew three more wakes within 15 seconds, the
194
+ * reply-freshness gate refused the answer to the person's real wake as `stale-conversation`, and the
195
+ * answer landed under a later edit wake. A voice clip was lost, because an edit is never heard again
196
+ * (slack-voice-clips.ts).
197
+ *
198
+ * An edit that changes no words and no files says nothing new, so no door wakes on it. A REAL edit
199
+ * still wakes: any difference in the typed text, in the quoted-message text Slack parks in
200
+ * `attachments[]` ({@link resolveSlackInboundText}), or in a file's id or its tombstone mark (a deleted file
201
+ * stays as `mode: "tombstone"`) makes this false.
202
+ */
203
+ export declare function isUnchangedSlackEdit(inner: Record<string, unknown>, previous: Record<string, unknown>): boolean;
204
+ /** The log reason both Slack wake doors give when they drop an {@link isUnchangedSlackEdit} edit. */
205
+ export declare const UNCHANGED_EDIT_DROP_REASON = "an edit that changed no words and no files (a metadata-only message_changed) \u2014 not news";
178
206
  /** A fail-soft profile resolver: raw platform user id → {real name, self-set handle}, or
179
207
  * undefined. Injected on each route's deps so name resolution is unit-testable AND so a caller
180
208
  * that omits it (or the resolver throwing) degrades to raw ids — a name lookup must NEVER block
@@ -352,38 +380,6 @@ export declare function slackThreadFollowWake(ev: ParsedMessageEvent, opts: Slac
352
380
  * kept the @mention — the ADDRESSED `direct-mention` addressing, which keeps the envelope and its
353
381
  * wake-id and tells the standing block this wake is owed an answer. */
354
382
  export declare function slackChannelWatchWake(ev: ParsedMessageEvent, opts: SlackWakeOpts): NormalizedWake;
355
- /**
356
- * THE DM WAKE (OPE-351 stage 2; group DMs added at stage 4) — the first producer of the `dm` envelope
357
- * reason, which has been in the vocabulary (channels/wake-envelope.ts {@link WakeReason}) since it was
358
- * reverse-engineered from Tag with no emitter behind it.
359
- *
360
- * ADDRESSING IS `direct-mention`, ALWAYS, and it is doing two jobs at once. Semantically it is simply
361
- * TRUE for a 1:1: everything said in a 1:1 DM is said to the agent, so a DM is never judged for whether
362
- * it was addressed — the engagement-tier dial, the name-drop judge and the channel-watch silence bias
363
- * are all category errors here (slack-front.ts routes a DM around routeSupervisorEvent entirely for that
364
- * reason). Mechanically it is LOAD-BEARING: `direct-mention` is what stamps `oe_addressing` through
365
- * the divert, which marks the wake as OWED a reply. It selects the `[direct]` preamble, whose reply
366
- * mandate names the wake-id the model must echo back, and it classifies the drop row if the turn
367
- * ends in prose anyway.
368
- * 🔴 IT IS NOT A DELIVERY PATH (OPE-1982). It used to arm the unified channel's addressed-prose
369
- * bridge, so a DM answer written as prose instead of a `reply` call still reached the room. That
370
- * bridge is deleted: on the unified channel a turn's closing prose is DROPPED on every addressing
371
- * and re-driven once towards the tool, so a DM answer reaches its room only through a `reply` call.
372
- *
373
- * A GROUP DM IS THE SAME WAKE. The addressing is identical (the drop classification and the reply mandate
374
- * are needed just the same), and the room shape reaches the model on `<channel type="mpim">` against
375
- * a 1:1's `type="im"`. The old `groupDm` flag selected the opening clause of a PROSE preamble that no
376
- * longer exists, so OPE-770 deleted it — the schema render has no prose to select. The silence escape
377
- * the reply mandate carries is what makes unconditional WAKING compatible with conditional REPLYING
378
- * in a room that also holds other humans.
379
- *
380
- * `reason` is `dm` rather than `mention` because the envelope's reason describes the SURFACE SHAPE the
381
- * wake arrived on, and telling a DM it was "@mentioned" is a small lie that costs orientation. A group
382
- * DM keeps `dm` for the same reason: {@link WakeReason}'s own definition is "a direct-message-EQUIVALENT
383
- * surface", which an mpim is — inventing a fourth value for it would extrapolate a Tag-derived
384
- * vocabulary with no evidence behind the new entry.
385
- */
386
- export declare function slackDmWake(ev: ParsedMessageEvent, opts: SlackWakeOpts): NormalizedWake;
387
383
  /**
388
384
  * What `message.completed` (channels/slack.ts) should actually DO with a terminal
389
385
  * {@link FinalMessageAction} ("silent" or "post" — never "buffer-tool-status", which is
@@ -441,7 +437,7 @@ export interface MessageRouteDeps {
441
437
  */
442
438
  readonly confirmInternal?: (channelId: string) => Promise<boolean>;
443
439
  /** Append a durable audit row. Optional; best-effort. */
444
- readonly audit?: (action: string, detail: Record<string, unknown>) => Promise<void>;
440
+ readonly audit?: (action: string, detail: AuditDetail) => Promise<void>;
445
441
  /** Resolve the trigger author's display name for the envelope (fail-soft). Optional so
446
442
  * existing test doubles keep compiling AND so a wake never depends on a name lookup — absent
447
443
  * or throwing ⇒ the raw id renders. Live wiring points this at {@link fetchUserProfileNames}. */
@@ -452,6 +448,16 @@ export interface RouteOutcome extends ReplyDecision {
452
448
  readonly woke: boolean;
453
449
  }
454
450
  export declare function bindableFor(ev: ParsedMessageEvent): BindableContext;
451
+ /** {@link bindableFor} over BARE IDS, for an ingress that has no {@link ParsedMessageEvent} to read
452
+ * them off — the interactivity CLICK routes (OPE-1680), which carry a signed payload rather than a
453
+ * message. ONE builder, so a row written from a click keys to the same partition a message from the
454
+ * same room would. */
455
+ export declare function bindableForSlackIds(ids: {
456
+ readonly teamId?: string | undefined;
457
+ readonly channelId: string;
458
+ readonly channelType?: string | undefined;
459
+ readonly userId?: string | undefined;
460
+ }): BindableContext;
455
461
  /**
456
462
  * Route one parsed message event: apply the delivery policy and, if it passes, wake the
457
463
  * engaged thread's session. Returns the decision + whether a wake fired. All side effects
@@ -475,28 +481,6 @@ export type WakeSend = (input: {
475
481
  continuationToken: string;
476
482
  state?: unknown;
477
483
  }) => Promise<unknown>;
478
- /**
479
- * The SPEND GATE at the ENGAGEMENT door (OPE-33) — the second call site of the ONE gate
480
- * (slack-spend-gate.ts); the first is slack.ts `onInbound` (the mention door).
481
- *
482
- * WHY BOTH: on eve 0.27.5 the compiled slackChannel drops self-authored messages
483
- * (`isSelfAuthoredSlackMessage`, matching `raw.app_id` against the envelope's `api_app_id`)
484
- * BEFORE `onAppMention`/`onDirectMessage` run — and Slack stamps `app_id` on anything an app
485
- * posts through the Web API, user token included. Every driver-app-authored mention therefore
486
- * skips the mention door entirely and re-enters through THIS path (live-proven 2026-07-25:
487
- * capped surfaces never refused). Gating only the mention handler is gating one of two doors.
488
- *
489
- * Refuse-and-drop semantics mirror the mention door exactly: over cap + no admin bypass ⇒ post
490
- * the refusal, return "declined", and the caller dispatches NO model turn — DMs included
491
- * (OPE-267 removed checkCap's DM exemption). Fail-open on any gate error (the helper's own
492
- * console.warn).
493
- *
494
- * The refusal is posted through {@link postOnce}, keyed on (surface, thread root): an ambient
495
- * channel over cap answers ONCE per conversation instead of once per message, while a genuinely
496
- * new thread still gets told why it's being ignored. Fail-open by contract — a dedupe-store
497
- * outage posts anyway.
498
- */
499
- export declare function slackWakeSpendGate(ev: ParsedMessageEvent, p: Partition, threadRootTs: string): Promise<SpendGateDecision>;
500
484
  /**
501
485
  * {@link tenantFenceDeclined} for a door the FRONT route owns — the diverted DM window and the
502
486
  * shortcut ingress (OPE-1644).
@@ -651,7 +635,6 @@ export declare const DM_DRIVER_ADMIT_REASON = "e2e driver \u2014 the DM door adm
651
635
  */
652
636
  export declare function auditDmDriverAdmitted(ev: ParsedMessageEvent, dmKind: "im" | "mpim"): Promise<void>;
653
637
  export declare function liveDeps(send: WakeSend): MessageRouteDeps;
654
- export declare const _engagementWakeMode: (ev: ParsedMessageEvent) => import("@open-everywhere/core/agent/adapter-api.js").SessionMode;
655
638
  /** One wake needle: an id (for logs/attribution) + the pattern that fires it. */
656
639
  export interface WakeTrigger {
657
640
  readonly id: string;
@@ -684,22 +667,6 @@ export interface NameDropInput {
684
667
  * was explicitly added to person-by-person, where name-drop barging feels worst.
685
668
  */
686
669
  export declare function shouldNameDropWake(input: NameDropInput): ReplyDecision;
687
- /**
688
- * Did the built-in name-drop ABSTAIN on this message, as opposed to dropping it for policy?
689
- *
690
- * 🔴 THE WHOLE WAKE-ARM RUNG RESTS ON THIS DISTINCTION (OPE-1367, docs/extending/drop-in-arms.md).
691
- * {@link shouldNameDropWake} answers `deliver: false` for seven different reasons and only ONE of
692
- * them is "I have no opinion": the text does not name the agent. The other six are policy — a DM
693
- * or group DM (the mention path already always-wakes a DM), a bot author, an `app_mention`, a
694
- * message subtype, a domain that never enabled the name-drop wake, and a channel the internal probe
695
- * could not confirm. A consumer's arm may fill the abstention. It may not overturn a policy drop.
696
- *
697
- * 🔴 DERIVED FROM THE BUILT-IN, NEVER RE-LISTED. This asks the built-in itself: with the name
698
- * matched and everything else exactly as it is, would it wake? A hand-kept copy of the
699
- * disqualifiers would go stale the first time somebody adds one to the policy above, and the arm
700
- * would then reach a message the policy had just started dropping.
701
- */
702
- export declare function nameDropAbstained(input: NameDropInput): boolean;
703
670
  /**
704
671
  * The message a name-drop turn receives. A HIGHER bar than the engaged-thread judge:
705
672
  * the agent was never invited into this conversation, so "when in doubt, stay out". The
@@ -854,8 +821,6 @@ export interface NameDropRouteDeps {
854
821
  */
855
822
  export declare function routeNameDropEvent(ev: ParsedMessageEvent, deps: NameDropRouteDeps): Promise<RouteOutcome>;
856
823
  export declare function botDisplayName(): Promise<string | undefined>;
857
- /** Reset the cached display name (tests only). */
858
- export declare function _resetBotDisplayName(): void;
859
824
  /**
860
825
  * Positively confirm a channel is internal (fail-closed, TTL-cached — see
861
826
  * channelInternalAndMeta). Exported because the routine dispatcher
@@ -1027,25 +992,6 @@ export declare function applySlackExternalPolicy(ev: ParsedMessageEvent, p: Part
1027
992
  readonly trust: WakeTrust;
1028
993
  readonly refuted: boolean;
1029
994
  }, route: string): Promise<SlackExternalVerdict>;
1030
- /**
1031
- * Withhold an EXCLUDED author's HYDRATED CONTEXT LINES on the name-drop wake (OPE-525) — the
1032
- * side-channel slot `withholdWakeBodies` cannot fill on its own.
1033
- *
1034
- * 🔴 WHY THE TRANSFORM NEEDS HELP HERE. Its automatic leg reaches an author whose ENVELOPE message
1035
- * it withheld, and reads their id off that message. A name-drop's hydration quotes people who wrote
1036
- * nothing in the envelope at all, so there is no withheld message to read an id from. This resolves
1037
- * the answer for each distinct hydrated sender and hands the transform the sync predicate it takes.
1038
- *
1039
- * 🔴 A POSITIVE REFUTATION ONLY, AND ONLY FOR A HUMAN SENDER. `probe` returning `undefined` (no
1040
- * token, an API error) is NOT a refutation — absence of evidence, and this leg fails OPEN like every
1041
- * other in the plane. A `bot` line carries a bot id, and a machine author is never excluded, so only
1042
- * `senderType: "user"` lines are asked about.
1043
- *
1044
- * COSTS NOTHING ON THE OPT-OUT GRAIN: `taint` returns the wake by reference before any probe runs.
1045
- * On `withhold` it costs one TTL-cached `users.info` per DISTINCT hydrated author, resolved in
1046
- * parallel, and the render budget caps the hydration at ten lines.
1047
- */
1048
- export declare function withholdNameDropContext(nw: NormalizedWake, policy: ExternalPolicy, teamId: string | undefined, probe?: SlackMemberProbe): Promise<NormalizedWake>;
1049
995
  /**
1050
996
  * Re-grade a first-wake BACKSCROLL bundle's per-message trust with the same per-author probe
1051
997
  * (OPE-466). `backscrollTrustResolver` is SYNCHRONOUS and takes the ROOM's internal verdict, so every
@@ -1372,7 +1318,7 @@ export interface SupervisorRouteDeps {
1372
1318
  window?: UnifiedWindowWake;
1373
1319
  }) => Promise<void>;
1374
1320
  /** Append a durable audit row (e.g. `engagement.stop`). Optional; best-effort. */
1375
- readonly audit?: (action: string, detail: Record<string, unknown>) => Promise<void>;
1321
+ readonly audit?: (action: string, detail: AuditDetail) => Promise<void>;
1376
1322
  /**
1377
1323
  * ENGAGE the trigger's thread as a PARTICIPATING surface (task #100 — window-riding stop parity):
1378
1324
  * called ONLY on an ADDRESSED `directMention` so a mention diverted into the window enrolls its
@@ -1434,6 +1380,8 @@ export interface SupervisorRouteDeps {
1434
1380
  * route's own singleWindow + internal facts — a directMention flag on a non-single-window or
1435
1381
  * non-internal wake degrades safely to the plain channel-watch treatment. Unset ⇒ byte-identical.
1436
1382
  */
1383
+ /** The Slack user ids a message mentions (`<@U…>` or `<@U…|name>`), in the order it names them. Pure. */
1384
+ export declare function slackMentionedUserIds(text: string | undefined): string[];
1437
1385
  export declare function routeSupervisorEvent(ev: ParsedMessageEvent, deps: SupervisorRouteDeps, opts?: {
1438
1386
  readonly directMention?: boolean;
1439
1387
  readonly nameDrop?: boolean;
@@ -1691,4 +1639,5 @@ export declare function liveReactionDeps(botIdentity: {
1691
1639
  }, attachSession?: AttachSessionForCancel): SlackReactionRouteDeps;
1692
1640
  /** Production deps for the channel-join route: the shared marker + live Slack confirmation. */
1693
1641
  export declare function liveChannelJoinDeps(send: WakeSend): ChannelJoinRouteDeps;
1642
+ export {};
1694
1643
  //# sourceMappingURL=slack-events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slack-events.d.ts","sourceRoot":"","sources":["../../../agent/channels/slack-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-events.d.ts","sourceRoot":"","sources":["../../../agent/channels/slack-events.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ import { parseSlackAppContext } from "./slack-side-panel.js";
20
20
  import { callSlackWebApi } from "./slack-web-api.js";
21
21
  import { slackBotToken } from "../setup/credentials.js";
22
22
  import { RateLimitExhaustedError } from "@open-everywhere/core/agent/adapter-api.js";
23
- import { resolvePartition, cancelAnchoredTurn, turnAnchorKey, STOP_HAND_SLACK_NAME, domainKeyOf, resolveWakeTrust, backscrollTrustResolver, carryTailForward, recordWakeTail, tailAuthorGrain, standingSeatRegistryKey, stampNonMemberChatAuth, contextLineIngestion, getConfig, ingestUntrusted, noteIngestionVerdict, taintMarkLands, nameDropWakeEnabled, engagementTierFor, windowedSupervisorEnabled, seatCatchUpSinceMs, seatCatchUp, seatAdmissionFor, admitContextLines, hydrationSlices, supervisorGrainFor, mintRotationToken, claimRuntimeRotation, stampMintedRuntime, grainUsesUnifiedWindow, mintWakeId, singleWindowMentionPolicy, isThreadEngaged, markThreadEngaged, getThreadEngagement, markThreadStopped, shouldDeliverReply, STAND_DOWN_DELIVERY_REFUSAL, getOperationalStore, resolveExternalPolicy, externalPolicyOverrideFor, roomIsSilenced, withholdsBody, withholdWakeBodies, withheldWakeMessage, ingestedAfterWithholding, silentRoomNotice, silentNoticeKey, EXTERNAL_SENDER_NOTICE, EXTERNAL_MENTION_ACK, owesSuppressedMentionAck, suppressionRendering, postOnce, outboundKey, isSurfaceOnboarded, markSurfaceOnboarded, registerGovernanceMemberSupplier, renderWake, mkMessageTrigger, NO_REPLY_SENTINEL, PREFER_NO_REPLY_TOOL, slackVendorEventTime, spreadVendorTs, dmTrustTtlMs, engagedFollowUpContract, dispatchNativeWakeWithRetry, } from "@open-everywhere/core/agent/adapter-api.js";
23
+ import { resolvePartition, auditSurfaceModeFrom, cancelAnchoredTurn, turnAnchorKey, STOP_HAND_SLACK_NAME, domainKeyOf, resolveWakeTrust, backscrollTrustResolver, carryTailForward, recordWakeTail, tailAuthorGrain, standingSeatRegistryKey, stampNonMemberChatAuth, contextLineIngestion, getConfig, ingestUntrusted, noteIngestionVerdict, taintMarkLands, nameDropWakeEnabled, engagementTierFor, windowedSupervisorEnabled, seatCatchUpSinceMs, seatCatchUp, seatAdmissionFor, admitContextLines, hydrationSlices, supervisorGrainFor, mintRotationToken, claimRuntimeRotation, stampMintedRuntime, grainUsesUnifiedWindow, mintWakeId, singleWindowMentionPolicy, isThreadEngaged, markThreadEngaged, getThreadEngagement, markThreadStopped, shouldDeliverReply, STAND_DOWN_DELIVERY_REFUSAL, getOperationalStore, resolveExternalPolicy, externalPolicyOverrideFor, roomIsSilenced, withholdsBody, withholdWakeBodies, withheldWakeMessage, ingestedAfterWithholding, silentRoomNotice, silentNoticeKey, EXTERNAL_SENDER_NOTICE, EXTERNAL_MENTION_ACK, owesSuppressedMentionAck, suppressionRendering, postOnce, outboundKey, isSurfaceOnboarded, markSurfaceOnboarded, registerGovernanceMemberSupplier, renderWake, mkMessageTrigger, NO_REPLY_SENTINEL, PREFER_NO_REPLY_TOOL, slackVendorEventTime, spreadVendorTs, dmTrustTtlMs, engagedFollowUpContract, dispatchNativeWakeWithRetry, coverForWake, } from "@open-everywhere/core/agent/adapter-api.js";
24
24
  import { slackMode, buildSlackAuth, channelFactsFromInfo, partnerFactsFromInfo, appCanReadConversation, } from "./slack-identity.js";
25
25
  import { slackSpendGate } from "./slack-spend-gate.js";
26
26
  import { slackTenantAdmission } from "./slack-tenant-fence.js";
@@ -28,9 +28,8 @@ import { holdRouteWork } from "./slack-route-hold.js";
28
28
  import { fetchWakeBackscrollLines, fetchWakeEnvelopeBackscroll, RAW_FETCH_REACHBACK_HOURS, WAKE_BACKSCROLL_MAX } from "./slack-wake-backscroll.js";
29
29
  // The silence vocabulary (NO_REPLY_SENTINEL / PREFER_NO_REPLY_TOOL) MOVED to normalized-wake.ts —
30
30
  // the shared wake renderer that emits it — so no per-surface dialect can drift its own copy.
31
- // PREFER_NO_REPLY_TOOL is re-exported here for existing importers; provider-neutral callers reach
32
- // NO_REPLY_SENTINEL through turn-delivery.ts (OPE-114 Stage 0), never through this provider file.
33
- export { PREFER_NO_REPLY_TOOL };
31
+ // Provider-neutral callers reach NO_REPLY_SENTINEL through turn-delivery.ts (OPE-114 Stage 0), never
32
+ // through this provider file.
34
33
  import { registerSlackAttachment } from "./slack-attachments.js";
35
34
  // Provider-neutral turn/delivery helpers lifted to turn-delivery.ts (OPE-114 Stage 0). The
36
35
  // Slack code below still consumes these three (turnEffectsFor builds on FinalMessageAction,
@@ -609,6 +608,7 @@ export function parseMessageEvent(envelope) {
609
608
  if (a.kind === "image" && a.id && a.url)
610
609
  registerSlackAttachment(a.id, { urlPrivate: a.url, mimeType: a.mimeType, name: a.name, teamId });
611
610
  }
611
+ const unchangedEdit = previousMessage !== undefined && isUnchangedSlackEdit(inner, previousMessage);
612
612
  return {
613
613
  channelId,
614
614
  ts,
@@ -622,6 +622,7 @@ export function parseMessageEvent(envelope) {
622
622
  text,
623
623
  authoredText,
624
624
  previousText: typeof previousMessage?.text === "string" ? previousMessage.text : undefined,
625
+ ...(unchangedEdit ? { unchangedEdit: true } : {}),
625
626
  // `app_mention` arrives as its own event type; a `message` whose text contains the bot
626
627
  // ref is also a mention. We don't know our own bot id here, so the event-type check is
627
628
  // the reliable signal; the route also filters app_mention so the mention path owns it.
@@ -633,6 +634,48 @@ export function parseMessageEvent(envelope) {
633
634
  ...(appContext === undefined ? {} : { appContext }),
634
635
  };
635
636
  }
637
+ /**
638
+ * Does a `message_changed` edit leave the message's WORDS and FILES as they were? Pure.
639
+ *
640
+ * 🔴 WHY THIS EXISTS (OPE-2577). Slack raises `message_changed` for more than a person's edit. It
641
+ * raises one each time the message's METADATA changes: a link unfurl, and, in the person's DM with
642
+ * the app, each `agents.sessions.setStatus` call that OE itself makes on the session's root message
643
+ * (slack-agent-session.ts: the title at the door, `processing` at turn start, `active` or
644
+ * `suspended` at the park). The event is hidden: `conversations.history` never lists it, and its
645
+ * `ts` is a fresh notice stamp. Its inner message is the person's own message, with the person's
646
+ * own author. So before this predicate, the DM door woke the seat on every one of them, as a NEW
647
+ * inbound wake. Ship #252 measured it: one DM drew three more wakes within 15 seconds, the
648
+ * reply-freshness gate refused the answer to the person's real wake as `stale-conversation`, and the
649
+ * answer landed under a later edit wake. A voice clip was lost, because an edit is never heard again
650
+ * (slack-voice-clips.ts).
651
+ *
652
+ * An edit that changes no words and no files says nothing new, so no door wakes on it. A REAL edit
653
+ * still wakes: any difference in the typed text, in the quoted-message text Slack parks in
654
+ * `attachments[]` ({@link resolveSlackInboundText}), or in a file's id or its tombstone mark (a deleted file
655
+ * stays as `mode: "tombstone"`) makes this false.
656
+ */
657
+ export function isUnchangedSlackEdit(inner, previous) {
658
+ const textOf = (m) => resolveSlackInboundText(typeof m.text === "string" ? m.text : "", m);
659
+ if (typeof previous.text !== "string")
660
+ return false; // no pre-edit text to compare ⇒ treat it as a real edit
661
+ if (textOf(inner) !== textOf(previous))
662
+ return false;
663
+ // Each file's identity, plus a tombstone mark: Slack keeps a deleted file's `id` on the message and
664
+ // marks it `mode: "tombstone"`, so a removal changes the key even when the id set does not. Only that
665
+ // one mode counts, so a field that one copy carries and the other omits cannot turn a metadata-only
666
+ // edit into a real one.
667
+ const fileKeys = (m) => (Array.isArray(m.files) ? m.files : [])
668
+ .map((f) => {
669
+ const o = typeof f === "object" && f !== null ? f : {};
670
+ const key = [o["id"], o["url_private"], o["name"]].find((v) => typeof v === "string") ?? "";
671
+ return `${String(key)}${o["mode"] === "tombstone" ? ":tombstone" : ""}`;
672
+ })
673
+ .sort()
674
+ .join("\n");
675
+ return fileKeys(inner) === fileKeys(previous);
676
+ }
677
+ /** The log reason both Slack wake doors give when they drop an {@link isUnchangedSlackEdit} edit. */
678
+ export const UNCHANGED_EDIT_DROP_REASON = "an edit that changed no words and no files (a metadata-only message_changed) — not news";
636
679
  // --- judged replies: the wake instruction + the silence sentinel -------------
637
680
  //
638
681
  // An engaged thread forwards EVERY human reply to the session (that's what engagement
@@ -939,7 +982,7 @@ function seatWakeAddressing(opts) {
939
982
  * surface", which an mpim is — inventing a fourth value for it would extrapolate a Tag-derived
940
983
  * vocabulary with no evidence behind the new entry.
941
984
  */
942
- export function slackDmWake(ev, opts) {
985
+ function slackDmWake(ev, opts) {
943
986
  return slackJudgedWake(ev, "direct-mention", opts, "dm");
944
987
  }
945
988
  export function turnEffectsFor(action, cardPostedThisTurn) {
@@ -957,7 +1000,7 @@ export function bindableFor(ev) {
957
1000
  * them off — the interactivity CLICK routes (OPE-1680), which carry a signed payload rather than a
958
1001
  * message. ONE builder, so a row written from a click keys to the same partition a message from the
959
1002
  * same room would. */
960
- function bindableForSlackIds(ids) {
1003
+ export function bindableForSlackIds(ids) {
961
1004
  return {
962
1005
  channel: { kind: "slack" },
963
1006
  session: {
@@ -1134,11 +1177,12 @@ async function appendRouteAudit(surfaceKey, action, detail) {
1134
1177
  try {
1135
1178
  // surfaceKey is `platform/workspace/surface` — split to the partition fields the audit row needs.
1136
1179
  const [platform = "slack", workspace = "", surface = ""] = surfaceKey.split("/");
1137
- const org = resolvePartition({
1180
+ const bindable = {
1138
1181
  channel: { kind: platform },
1139
1182
  session: { auth: { current: { attributes: { team_id: workspace, channel_id: surface }, principalId: "", principalType: "slack-user" } } },
1140
- }).org;
1141
- await getOperationalStore().appendAudit({ ts: new Date().toISOString(), org, platform, workspace, surface, action, detail });
1183
+ };
1184
+ const org = resolvePartition(bindable).org;
1185
+ await getOperationalStore().appendAudit({ ts: new Date().toISOString(), org, platform, workspace, surface, ...auditSurfaceModeFrom(bindable), action, detail });
1142
1186
  }
1143
1187
  catch (err) {
1144
1188
  console.warn(`[open-everywhere:slack] route audit write failed: ${String(err)}`);
@@ -1172,7 +1216,7 @@ async function appendRouteAudit(surfaceKey, action, detail) {
1172
1216
  * new thread still gets told why it's being ignored. Fail-open by contract — a dedupe-store
1173
1217
  * outage posts anyway.
1174
1218
  */
1175
- export async function slackWakeSpendGate(ev, p, threadRootTs) {
1219
+ async function slackWakeSpendGate(ev, p, threadRootTs) {
1176
1220
  return slackSpendGate({
1177
1221
  bindable: bindableFor(ev),
1178
1222
  mode: slackMode(ev.channelType, ev.channelId),
@@ -1243,13 +1287,15 @@ async function appendWakeRow(ev, action, reason, detail) {
1243
1287
  * rather than carrying an invented stamp. Swallows every failure, like its caller. */
1244
1288
  async function appendWakeRowForIds(ids, ts, action, reason, detail) {
1245
1289
  try {
1246
- const p = resolvePartition(bindableForSlackIds(ids));
1290
+ const bindable = bindableForSlackIds(ids);
1291
+ const p = resolvePartition(bindable);
1247
1292
  await getOperationalStore().appendAudit({
1248
1293
  ts: new Date().toISOString(),
1249
1294
  org: p.org,
1250
1295
  platform: p.platform,
1251
1296
  workspace: p.workspace,
1252
1297
  surface: p.surface,
1298
+ ...auditSurfaceModeFrom(bindable),
1253
1299
  action,
1254
1300
  detail: { reason, channel: ids.channelId, ts, ...detail },
1255
1301
  });
@@ -1529,6 +1575,9 @@ export async function auditDmDriverAdmitted(ev, dmKind) {
1529
1575
  dmKind,
1530
1576
  botId: ev.botId ?? null,
1531
1577
  team: ev.teamId ?? null,
1578
+ // The event's subtype, so a reader can tell a typed message from an edit or an upload without
1579
+ // a second source (OPE-2577 had to infer it from the notice-shaped `ts`).
1580
+ subtype: ev.subtype ?? null,
1532
1581
  });
1533
1582
  }
1534
1583
  /**
@@ -1605,9 +1654,6 @@ function authForEvent(ev, facts) {
1605
1654
  trustChecked: facts?.trustChecked,
1606
1655
  });
1607
1656
  }
1608
- // Keep mode resolution referenced (the wake scopes to a channel, never mpim/dm here) so a
1609
- // future spike that needs it doesn't re-derive — and to assert the import stays live.
1610
- export const _engagementWakeMode = (ev) => slackMode(ev.channelType, ev.channelId);
1611
1657
  /**
1612
1658
  * The wake triggers for a channel: the unified wake token set (always first — see
1613
1659
  * {@link wakeNameDropTokens}), plus any caller-supplied extras (a future per-domain hook — none
@@ -1672,7 +1718,7 @@ export function shouldNameDropWake(input) {
1672
1718
  * disqualifiers would go stale the first time somebody adds one to the policy above, and the arm
1673
1719
  * would then reach a message the policy had just started dropping.
1674
1720
  */
1675
- export function nameDropAbstained(input) {
1721
+ function nameDropAbstained(input) {
1676
1722
  if (input.textMatchesName)
1677
1723
  return false;
1678
1724
  return shouldNameDropWake({ ...input, textMatchesName: true }).deliver;
@@ -2077,10 +2123,6 @@ export function botDisplayName() {
2077
2123
  }
2078
2124
  return botDisplayNamePromise;
2079
2125
  }
2080
- /** Reset the cached display name (tests only). */
2081
- export function _resetBotDisplayName() {
2082
- botDisplayNamePromise = undefined;
2083
- }
2084
2126
  // Positively confirm a channel is internal via conversations.info, TTL-cached (channels
2085
2127
  // change shared-ness rarely; the API is rate-limited). Any failure → { internal: false }
2086
2128
  // (fail-closed). The SAME response also carries the channel's descriptive metadata
@@ -2511,7 +2553,7 @@ function externalPolicyDropReason(verdict) {
2511
2553
  * On `withhold` it costs one TTL-cached `users.info` per DISTINCT hydrated author, resolved in
2512
2554
  * parallel, and the render budget caps the hydration at ten lines.
2513
2555
  */
2514
- export async function withholdNameDropContext(nw, policy, teamId, probe = slackAuthorIsMember) {
2556
+ async function withholdNameDropContext(nw, policy, teamId, probe = slackAuthorIsMember) {
2515
2557
  const isWithheld = (m) => withholdsBody(m, policy);
2516
2558
  if (policy.authorGrain !== "withhold")
2517
2559
  return nw; // by reference — byte-identical
@@ -3179,6 +3221,10 @@ export function shouldSupervisorWake(input) {
3179
3221
  * route's own singleWindow + internal facts — a directMention flag on a non-single-window or
3180
3222
  * non-internal wake degrades safely to the plain channel-watch treatment. Unset ⇒ byte-identical.
3181
3223
  */
3224
+ /** The Slack user ids a message mentions (`<@U…>` or `<@U…|name>`), in the order it names them. Pure. */
3225
+ export function slackMentionedUserIds(text) {
3226
+ return [...(text ?? "").matchAll(/<@([UW][A-Z0-9]+)(?:\|[^>]*)?>/g)].map((m) => m[1]);
3227
+ }
3182
3228
  export async function routeSupervisorEvent(ev, deps, opts) {
3183
3229
  // THE NAME-DROP TIER (OPE-1725). `routeNameDropEvent` has already judged this message — the name
3184
3230
  // matched, the domain opted in, the channel confirmed internal — and handed the wake here because
@@ -3552,7 +3598,7 @@ export async function routeSupervisorEvent(ev, deps, opts) {
3552
3598
  // `priorContext` map above) and the hydrated lines are decided by one transform, and it returns
3553
3599
  // the wake BY REFERENCE on the `taint` opt-out grain, so nothing moves for a deployment that
3554
3600
  // opted out. Run only on the name-drop tier, which is the only tier that carries the slot.
3555
- const wake = slackChannelWatchWake(ev, {
3601
+ const watchWake = slackChannelWatchWake(ev, {
3556
3602
  mode: "supervisor",
3557
3603
  trust: wakeTrust,
3558
3604
  engagementTier,
@@ -3589,6 +3635,25 @@ export async function routeSupervisorEvent(ev, deps, opts) {
3589
3635
  ? { contextLines: nameDropRendered, contextSource: nameDropContext?.source, readMoreHint: nameDropContext?.readMoreHint }
3590
3636
  : {}),
3591
3637
  });
3638
+ // 🔴 OUT-OF-OFFICE COVER (OPE-2513). A message that mentions a person with live cover gets OE's cover note on
3639
+ // THIS wake, and nothing else changes: the binding, the auth bag and the room's memory stay the room's, so the
3640
+ // answer can use only what this room already knows. No window, no wake id, no cover (cover/wake.ts).
3641
+ const cover = await coverForWake({
3642
+ org: p.org,
3643
+ platform: "slack",
3644
+ workspace: p.workspace,
3645
+ surface: p.surface,
3646
+ surfaceKey: p.surfaceKey,
3647
+ channelId: ev.channelId,
3648
+ roomPublic: ev.channelType === "channel",
3649
+ wakeId: window?.wakeId,
3650
+ mentionedIds: slackMentionedUserIds(ev.authoredText),
3651
+ ...(ev.userId ? { askerId: ev.userId } : {}),
3652
+ ...(trigger.authorName ? { askerName: trigger.authorName } : {}),
3653
+ text: ev.authoredText,
3654
+ now: new Date(atIso),
3655
+ }).catch(() => ({ covered: [] }));
3656
+ const wake = cover.systemNote ? { ...watchWake, systemNote: watchWake.systemNote ? `${watchWake.systemNote}\n${cover.systemNote}` : cover.systemNote } : watchWake;
3592
3657
  const rendered = renderWake(nameDropTier ? await withholdNameDropContext(wake, externalPolicy, ev.teamId, deps.authorIsMember) : wake, deps.now);
3593
3658
  return deps.wake({
3594
3659
  token,