@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.
- package/agent/access/slack-attachment-fetch.ts +2 -1
- package/agent/app-manifest.ts +18 -2
- package/agent/channels/slack-agent-session.ts +338 -0
- package/agent/channels/slack-attachments.ts +20 -11
- package/agent/channels/slack-commands.ts +172 -12
- package/agent/channels/slack-context.ts +0 -5
- package/agent/channels/slack-events.ts +161 -33
- package/agent/channels/slack-follow-ups.ts +148 -0
- package/agent/channels/slack-front.ts +232 -26
- package/agent/channels/slack-home.ts +9 -3
- package/agent/channels/slack-identity.ts +43 -2
- package/agent/channels/slack-memory-canvas.ts +192 -51
- package/agent/channels/slack-origin-codec.ts +9 -0
- package/agent/channels/slack-post-arm.ts +68 -11
- package/agent/channels/slack-read.ts +27 -2
- package/agent/channels/slack-reply-blocks.ts +180 -0
- package/agent/channels/slack-reply-feedback.ts +75 -0
- package/agent/channels/slack-shortcut.ts +1 -1
- package/agent/channels/slack-voice-clips.ts +82 -0
- package/agent/channels/slack-wake-backscroll.ts +0 -5
- package/agent/channels/slack.ts +74 -13
- package/agent/docs-generated.ts +1299 -2
- package/agent/ops.ts +14 -21
- package/agent/register.ts +13 -0
- package/agent/setup/credentials.ts +17 -0
- package/agent/setup/page.ts +6 -3
- package/agent/surface-parity.ts +2 -0
- package/dist/agent/access/slack-attachment-fetch.d.ts.map +1 -1
- package/dist/agent/access/slack-attachment-fetch.js.map +1 -1
- package/dist/agent/app-manifest.d.ts.map +1 -1
- package/dist/agent/app-manifest.js +18 -2
- package/dist/agent/app-manifest.js.map +1 -1
- package/dist/agent/channels/slack-agent-session.d.ts +85 -0
- package/dist/agent/channels/slack-agent-session.d.ts.map +1 -0
- package/dist/agent/channels/slack-agent-session.js +282 -0
- package/dist/agent/channels/slack-agent-session.js.map +1 -0
- package/dist/agent/channels/slack-attachments.d.ts +11 -0
- package/dist/agent/channels/slack-attachments.d.ts.map +1 -1
- package/dist/agent/channels/slack-attachments.js +21 -14
- package/dist/agent/channels/slack-attachments.js.map +1 -1
- package/dist/agent/channels/slack-commands.d.ts +113 -10
- package/dist/agent/channels/slack-commands.d.ts.map +1 -1
- package/dist/agent/channels/slack-commands.js +146 -13
- package/dist/agent/channels/slack-commands.js.map +1 -1
- package/dist/agent/channels/slack-context.d.ts +1 -2
- package/dist/agent/channels/slack-context.d.ts.map +1 -1
- package/dist/agent/channels/slack-context.js +0 -4
- package/dist/agent/channels/slack-context.js.map +1 -1
- package/dist/agent/channels/slack-events.d.ts +53 -100
- package/dist/agent/channels/slack-events.d.ts.map +1 -1
- package/dist/agent/channels/slack-events.js +142 -26
- package/dist/agent/channels/slack-events.js.map +1 -1
- package/dist/agent/channels/slack-follow-ups.d.ts +44 -0
- package/dist/agent/channels/slack-follow-ups.d.ts.map +1 -0
- package/dist/agent/channels/slack-follow-ups.js +129 -0
- package/dist/agent/channels/slack-follow-ups.js.map +1 -0
- package/dist/agent/channels/slack-front.d.ts +28 -45
- package/dist/agent/channels/slack-front.d.ts.map +1 -1
- package/dist/agent/channels/slack-front.js +207 -22
- package/dist/agent/channels/slack-front.js.map +1 -1
- package/dist/agent/channels/slack-home.d.ts.map +1 -1
- package/dist/agent/channels/slack-home.js +10 -3
- package/dist/agent/channels/slack-home.js.map +1 -1
- package/dist/agent/channels/slack-identity.d.ts +33 -21
- package/dist/agent/channels/slack-identity.d.ts.map +1 -1
- package/dist/agent/channels/slack-identity.js +36 -2
- package/dist/agent/channels/slack-identity.js.map +1 -1
- package/dist/agent/channels/slack-memory-canvas.d.ts +21 -5
- package/dist/agent/channels/slack-memory-canvas.d.ts.map +1 -1
- package/dist/agent/channels/slack-memory-canvas.js +162 -52
- package/dist/agent/channels/slack-memory-canvas.js.map +1 -1
- package/dist/agent/channels/slack-origin-codec.d.ts.map +1 -1
- package/dist/agent/channels/slack-origin-codec.js +10 -0
- package/dist/agent/channels/slack-origin-codec.js.map +1 -1
- package/dist/agent/channels/slack-post-arm.d.ts +21 -1
- package/dist/agent/channels/slack-post-arm.d.ts.map +1 -1
- package/dist/agent/channels/slack-post-arm.js +57 -10
- package/dist/agent/channels/slack-post-arm.js.map +1 -1
- package/dist/agent/channels/slack-read.d.ts +11 -1
- package/dist/agent/channels/slack-read.d.ts.map +1 -1
- package/dist/agent/channels/slack-read.js +27 -3
- package/dist/agent/channels/slack-read.js.map +1 -1
- package/dist/agent/channels/slack-reply-blocks.d.ts +29 -0
- package/dist/agent/channels/slack-reply-blocks.d.ts.map +1 -0
- package/dist/agent/channels/slack-reply-blocks.js +172 -0
- package/dist/agent/channels/slack-reply-blocks.js.map +1 -0
- package/dist/agent/channels/slack-reply-feedback.d.ts +23 -0
- package/dist/agent/channels/slack-reply-feedback.d.ts.map +1 -0
- package/dist/agent/channels/slack-reply-feedback.js +63 -0
- package/dist/agent/channels/slack-reply-feedback.js.map +1 -0
- package/dist/agent/channels/slack-shortcut.d.ts +10 -0
- package/dist/agent/channels/slack-shortcut.d.ts.map +1 -1
- package/dist/agent/channels/slack-shortcut.js +1 -1
- package/dist/agent/channels/slack-shortcut.js.map +1 -1
- package/dist/agent/channels/slack-voice-clips.d.ts +16 -0
- package/dist/agent/channels/slack-voice-clips.d.ts.map +1 -0
- package/dist/agent/channels/slack-voice-clips.js +80 -0
- package/dist/agent/channels/slack-voice-clips.js.map +1 -0
- package/dist/agent/channels/slack-wake-backscroll.d.ts +0 -2
- package/dist/agent/channels/slack-wake-backscroll.d.ts.map +1 -1
- package/dist/agent/channels/slack-wake-backscroll.js +0 -4
- package/dist/agent/channels/slack-wake-backscroll.js.map +1 -1
- package/dist/agent/channels/slack.d.ts +22 -1
- package/dist/agent/channels/slack.d.ts.map +1 -1
- package/dist/agent/channels/slack.js +63 -13
- package/dist/agent/channels/slack.js.map +1 -1
- package/dist/agent/docs-generated.d.ts.map +1 -1
- package/dist/agent/docs-generated.js +1299 -2
- package/dist/agent/docs-generated.js.map +1 -1
- package/dist/agent/ops.d.ts +1 -1
- package/dist/agent/ops.d.ts.map +1 -1
- package/dist/agent/ops.js +15 -21
- package/dist/agent/ops.js.map +1 -1
- package/dist/agent/register.d.ts.map +1 -1
- package/dist/agent/register.js +12 -1
- package/dist/agent/register.js.map +1 -1
- package/dist/agent/setup/credentials.d.ts +12 -0
- package/dist/agent/setup/credentials.d.ts.map +1 -1
- package/dist/agent/setup/credentials.js +17 -0
- package/dist/agent/setup/credentials.js.map +1 -1
- package/dist/agent/setup/page.d.ts.map +1 -1
- package/dist/agent/setup/page.js +6 -3
- package/dist/agent/setup/page.js.map +1 -1
- package/dist/agent/surface-parity.d.ts.map +1 -1
- package/dist/agent/surface-parity.js +2 -0
- package/dist/agent/surface-parity.js.map +1 -1
- package/package.json +31 -3
|
@@ -28,6 +28,8 @@ export function buildSlackAuth(input) {
|
|
|
28
28
|
attributes.trust_checked = String(input.trustChecked);
|
|
29
29
|
if (input.dmPartnerTrust)
|
|
30
30
|
attributes.dm_partner_trust = input.dmPartnerTrust;
|
|
31
|
+
if (input.agentSessionTs)
|
|
32
|
+
attributes.agent_session_ts = input.agentSessionTs;
|
|
31
33
|
// Root-DM grain stamp (window-tool-gating §D-DM, widened to group DMs): a 1:1 DM OR an mpim (group
|
|
32
34
|
// DM) is a STANDING seat ⇒ narrowed hands — both are closed multi-party conversations with no
|
|
33
35
|
// channel identity. A DM is unambiguously channelType "im" (the DM path always sets it); the
|
|
@@ -95,7 +97,7 @@ function enterpriseIdOfUser(u) {
|
|
|
95
97
|
* PURE and SYNCHRONOUS — the register read is (identity/trust.ts's own contract), so this adds no
|
|
96
98
|
* I/O to a leg that already pays for one `users.info`.
|
|
97
99
|
*/
|
|
98
|
-
|
|
100
|
+
function slackWorkspaceVouched(teamId, enterpriseId) {
|
|
99
101
|
const team = surfaceKeySegment(teamId);
|
|
100
102
|
if (team.length === 0)
|
|
101
103
|
return false; // no workspace named ⇒ nothing to ask about ⇒ not vouched
|
|
@@ -155,7 +157,7 @@ export function partnerFactsFromInfo(info, expectedTeamId) {
|
|
|
155
157
|
const u = info?.user;
|
|
156
158
|
if (!u || typeof u !== "object")
|
|
157
159
|
return { dmPartnerTrust: "external" }; // lookup failed → fail closed
|
|
158
|
-
const guestOrStranger =
|
|
160
|
+
const guestOrStranger = slackUserGuestFlagged(u);
|
|
159
161
|
const deleted = Boolean(u["deleted"]);
|
|
160
162
|
const homeTeamId = typeof u["team_id"] === "string" ? u["team_id"] : undefined;
|
|
161
163
|
// 🔴 NO EXPECTED WORKSPACE IS NOT AN OWN-WORKSPACE ANSWER. This used to read the absence as
|
|
@@ -177,6 +179,38 @@ export function partnerFactsFromInfo(info, expectedTeamId) {
|
|
|
177
179
|
const internal = !guestOrStranger && !deleted && admittedWorkspace;
|
|
178
180
|
return { dmPartnerTrust: internal ? "internal" : "external" };
|
|
179
181
|
}
|
|
182
|
+
/** Slack's own guest flags on a `users.info` user object: a multi-channel guest (`is_restricted`), a
|
|
183
|
+
* single-channel guest (`is_ultra_restricted`) or a Slack Connect stranger (`is_stranger`). The ONE
|
|
184
|
+
* reader of these three flags, so {@link partnerFactsFromInfo} and the 1:1 DM roster
|
|
185
|
+
* ({@link imRosterFactsFromInfo}) cannot disagree on what Slack calls a guest. It reads no workspace
|
|
186
|
+
* and no declaration: it is what Slack OBSERVED about the person, nothing inferred. */
|
|
187
|
+
export function slackUserGuestFlagged(u) {
|
|
188
|
+
return Boolean(u["is_restricted"] || u["is_ultra_restricted"] || u["is_stranger"]);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* The room facts of a 1:1 DM (`is_im`) from a `conversations.info` response, or `undefined` for any
|
|
192
|
+
* other conversation (OPE-2630). The DM roster reads these instead of
|
|
193
|
+
* {@link ChannelFacts.isExternal}.
|
|
194
|
+
*
|
|
195
|
+
* 🔴 WHY A DM DOES NOT READ `isExternal`. `isExternal` is true on ANY of the four share bits.
|
|
196
|
+
* `is_org_shared` marks a share across the workspaces of ONE Enterprise Grid organisation. `is_shared`
|
|
197
|
+
* marks ANY share, a Slack Connect one included, so it alone does not tell a Grid share from a Connect
|
|
198
|
+
* one. A Connect DM also carries `is_ext_shared` (or `is_pending_ext_shared`), and this function reads
|
|
199
|
+
* those two bits. A 1:1 DM has exactly two parties, the app and one person, so `is_org_shared` or `is_shared` on it
|
|
200
|
+
* says nothing about an outside audience. Read as "external", they floored a full member's own DM to
|
|
201
|
+
* `guest`, and the card-disclosure floor refused every approval card there (OPE-2630, a Grid install).
|
|
202
|
+
* So a DM's audience is judged by the two facts that do name an outside party: the Slack Connect bits
|
|
203
|
+
* (`is_ext_shared`, `is_pending_ext_shared`) here, and the partner's own guest flags
|
|
204
|
+
* ({@link slackUserGuestFlagged}), which the roster reads with `users.info`.
|
|
205
|
+
*/
|
|
206
|
+
export function imRosterFactsFromInfo(info) {
|
|
207
|
+
const ch = info?.channel;
|
|
208
|
+
if (!ch || typeof ch !== "object" || ch["is_im"] !== true)
|
|
209
|
+
return undefined;
|
|
210
|
+
const partnerId = typeof ch["user"] === "string" && ch["user"].length > 0 ? ch["user"] : undefined;
|
|
211
|
+
const connectShared = Boolean(ch["is_ext_shared"] || ch["is_pending_ext_shared"]);
|
|
212
|
+
return { ...(partnerId === undefined ? {} : { partnerId }), connectShared };
|
|
213
|
+
}
|
|
180
214
|
/** What an app_mention envelope tells us directly (often just channel_type). */
|
|
181
215
|
export function channelFactsFromRaw(raw) {
|
|
182
216
|
const channelType = typeof raw["channel_type"] === "string" ? raw["channel_type"] : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-identity.js","sourceRoot":"","sources":["../../../agent/channels/slack-identity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slack-identity.js","sourceRoot":"","sources":["../../../agent/channels/slack-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type MemoryWriteEvent } from "@open-everywhere/core/agent/adapter-api.js";
|
|
1
|
+
import { type MemoryWriteEvent, type OperationalStore } from "@open-everywhere/core/agent/adapter-api.js";
|
|
2
2
|
export type CanvasOutcome = "created" | "updated" | "unchanged" | "skipped-external" | "skipped-guest" | "skipped-foreign" | "skipped-disabled" | "cleared-external" | "cleared-guest" | "cleared-disabled" | "clear-failed" | "failed";
|
|
3
3
|
export interface MemoryCanvasDeps {
|
|
4
4
|
/** One Slack Web API call; undefined on any failure. */
|
|
@@ -10,6 +10,8 @@ export interface MemoryCanvasDeps {
|
|
|
10
10
|
* `users.info` probe (slack-events.ts `slackAuthorIsMember`). */
|
|
11
11
|
readonly authorIsMember: (userId: string, teamId: string | undefined) => Promise<boolean | undefined>;
|
|
12
12
|
readonly now?: () => Date;
|
|
13
|
+
/** The `memory_canvas` row (OPE-2587). The live dep is the operational store. */
|
|
14
|
+
readonly store?: Pick<OperationalStore, "getMemoryCanvas" | "setMemoryCanvas">;
|
|
13
15
|
}
|
|
14
16
|
/** The live deps: every call through `slackForm` (the one Web API seam, fail-soft), the room verdict
|
|
15
17
|
* read FRESH, and the shared per-person membership probe. */
|
|
@@ -20,21 +22,35 @@ export declare function liveMemoryCanvasDeps(): MemoryCanvasDeps;
|
|
|
20
22
|
* on some clients. A memory view must never notify anyone, so both forms are defused. PURE.
|
|
21
23
|
*/
|
|
22
24
|
export declare function defuseCanvasText(markdown: string): string;
|
|
25
|
+
/** The channel one canvas decision is about, and the org and team its `memory_canvas` row is keyed by. */
|
|
26
|
+
export interface CanvasRoom {
|
|
27
|
+
readonly org: string;
|
|
28
|
+
readonly teamId: string;
|
|
29
|
+
readonly channelId: string;
|
|
30
|
+
}
|
|
23
31
|
/**
|
|
24
32
|
* Write one channel's canvas — or, with `markdown: null`, only RECHECK it. Never throws.
|
|
25
33
|
*
|
|
26
|
-
* 🔴 THE GATE RUNS BEFORE EVERY DECISION, AND A FAILED GATE TAKES THE
|
|
34
|
+
* 🔴 THE GATE RUNS BEFORE EVERY DECISION, AND A FAILED GATE TAKES THE MEMORY CANVAS DOWN (OPE-2451,
|
|
27
35
|
* the brain's security review). A canvas the app wrote while the channel passed outlives the room's
|
|
28
36
|
* trust otherwise: once the channel is shared, or a guest joins, a refresh that merely SKIPS leaves
|
|
29
37
|
* every line of the domain's memory on screen for the new audience. So on either refusal the app
|
|
30
|
-
* replaces
|
|
31
|
-
*
|
|
38
|
+
* replaces the memory canvas with {@link withdrawnCanvasMarkdown} ({@link withdrawIfOurs}).
|
|
39
|
+
*
|
|
40
|
+
* 🔴 ONLY THE MEMORY CANVAS IS WRITTEN (OPE-2587). Slack shows a channel's canvases as tabs, and the
|
|
41
|
+
* canvas a person approves through `write_canvas` has the app's bot user as its creator too. So the app
|
|
42
|
+
* rewrites only the canvas core's {@link memoryCanvasAmong} finds: the id its `memory_canvas` row
|
|
43
|
+
* holds, or, for a canvas made before the row existed, the rule that function names. A channel with no
|
|
44
|
+
* memory canvas gets one, and the row records its id. A person's canvas and a `write_canvas` canvas are
|
|
45
|
+
* not touched, in either direction, unless a person typed the memory canvas footer line into one by
|
|
46
|
+
* hand ({@link memoryCanvasAmong} rule 3). A lookup that leaves the answer open writes nothing (`failed`),
|
|
47
|
+
* because a new canvas could then duplicate the memory canvas.
|
|
32
48
|
*
|
|
33
49
|
* `null` markdown is the recheck the trust EVENTS run: it takes the canvas down on a failed gate and
|
|
34
50
|
* writes nothing on a passing one (`unchanged`). `joinedUserId` is the person a join event named: they
|
|
35
51
|
* are probed DIRECTLY, because Slack's member list may not carry them yet when the event arrives.
|
|
36
52
|
*/
|
|
37
|
-
export declare function publishChannelCanvas(
|
|
53
|
+
export declare function publishChannelCanvas(room: CanvasRoom, markdown: string | null, botUserId: string | undefined, deps: MemoryCanvasDeps, joinedUserId?: string): Promise<CanvasOutcome>;
|
|
38
54
|
/** What woke a canvas decision: a memory write, or one of the two trust events. */
|
|
39
55
|
export type CanvasTrigger = "memory-write" | "member-joined" | "channel-shared";
|
|
40
56
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-memory-canvas.d.ts","sourceRoot":"","sources":["../../../agent/channels/slack-memory-canvas.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slack-memory-canvas.d.ts","sourceRoot":"","sources":["../../../agent/channels/slack-memory-canvas.ts"],"names":[],"mappings":"AA4CA,OAAO,EAkBL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAEtB,MAAM,4CAA4C,CAAC;AAcpD,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,SAAS,GACT,WAAW,GACX,kBAAkB,GAClB,eAAe,GACf,iBAAiB,GACjB,kBAAkB,GAClB,kBAAkB,GAClB,eAAe,GACf,kBAAkB,GAClB,cAAc,GACd,QAAQ,CAAC;AAMb,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;IAC/G;wGACoG;IACpG,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE;sEACkE;IAClE,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IACtG,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,GAAG,iBAAiB,CAAC,CAAC;CAChF;AA8DD;8DAC8D;AAC9D,wBAAgB,oBAAoB,IAAI,gBAAgB,CAMvD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEzD;AAyFD,0GAA0G;AAC1G,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAqDD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,IAAI,EAAE,gBAAgB,EACtB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,CAAC,CAwBxB;AAOD,mFAAmF;AACnF,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAEhF;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE;IACL,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACzD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,EACD,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,aAAa,CAAC,CA8BxB;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C1G;AAMD,mGAAmG;AACnG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB/F"}
|
|
@@ -24,15 +24,24 @@
|
|
|
24
24
|
// reports, until the next memory write or trust event re-runs it (docs/capabilities/memory.md lists
|
|
25
25
|
// every limit).
|
|
26
26
|
//
|
|
27
|
-
// 🔴
|
|
28
|
-
//
|
|
29
|
-
// `
|
|
30
|
-
//
|
|
27
|
+
// 🔴 ONLY THE MEMORY CANVAS IS EVER TOUCHED (OPE-2587). A channel can show more than one canvas (the
|
|
28
|
+
// channel canvas and its canvas tabs). People write their own, and the agent creates canvases for
|
|
29
|
+
// people through `write_canvas`, with the app's own bot user as the creator. So the creator does not
|
|
30
|
+
// mark the memory canvas. The app records the id `conversations.canvases.create` answers in the
|
|
31
|
+
// `memory_canvas` row and rewrites only that canvas (core `memoryCanvasAmong` names the rule, and how
|
|
32
|
+
// a canvas made before the row existed is adopted). Every other canvas stays as its owner left it,
|
|
33
|
+
// unless a person types the memory canvas footer line into it by hand (core `memoryCanvasAmong` rule
|
|
34
|
+
// 3). A channel whose canvas slot another canvas holds gets no memory canvas, and the refusal is logged
|
|
35
|
+
// and audited so an operator can see why a channel shows no memory.
|
|
31
36
|
//
|
|
32
37
|
// 🔴 WHAT A CANVAS DOES NOT DO. It is a READ view. Members correct or forget a line by asking the
|
|
33
38
|
// agent in the channel, which goes through the tools and the approval card like any other change.
|
|
34
39
|
// An edit made directly in the canvas is overwritten on the next memory write — the canvas says so.
|
|
35
|
-
|
|
40
|
+
// The agent's own `write_canvas` refuses this canvas for the same reason (core
|
|
41
|
+
// channels/slack-canvas-list.ts `refuseMemoryCanvasWrite`, OPE-2585): both sides find the memory
|
|
42
|
+
// canvas through the one core rule, `memoryCanvasAmong`. It reads the `properties.canvas` field AND
|
|
43
|
+
// every canvas tab (`properties.tabs[]`, OPE-2587), because Slack can hold a channel canvas only as a tab.
|
|
44
|
+
import { agentDisplayName, appendAudit, domainForChannel, domainsNamingSilo, getConfig, getOperationalStore, MEMORY_CANVAS_MARKER, memoryCanvasAmong, memoryCanvasSurfaceKey, readDomainMemory, storedMemoryCanvas, memoryLineForReader, renderMemoryMarkdown, scrubAuditText, } from "@open-everywhere/core/agent/adapter-api.js";
|
|
36
45
|
import { confirmChannelInternalFresh, slackAuthorIsMember, slackForm } from "./slack-events.js";
|
|
37
46
|
import { encodeSlackForm } from "./slack-web-api.js";
|
|
38
47
|
/** The audit action every refresh attempt writes, one row per channel. Declared in core's registry. */
|
|
@@ -46,6 +55,53 @@ const CANVAS_MARKDOWN_MAX = 90_000;
|
|
|
46
55
|
/** The most members a canvas channel may have and still be checked person by person (one page of
|
|
47
56
|
* `conversations.members`). A larger channel is refused rather than half-checked. */
|
|
48
57
|
const MEMBER_CHECK_MAX = 200;
|
|
58
|
+
/** The longest Slack-supplied string the audit row keeps. Slack's codes and scope lists are far shorter. */
|
|
59
|
+
const SLACK_ERROR_TEXT_MAX = 120;
|
|
60
|
+
/** Slack's own text, kept only when it is a short code or scope list: never a free-text blob. */
|
|
61
|
+
function slackCode(v) {
|
|
62
|
+
return typeof v === "string" && v.length > 0 && v.length <= SLACK_ERROR_TEXT_MAX && /^[A-Za-z0-9_.:,-]+$/.test(v) ? v : undefined;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Wrap the deps of ONE canvas decision so the decision's last Slack refusal is kept (OPE-2600). Every
|
|
66
|
+
* lookup on the canvas path is fail-soft, and core's {@link memoryCanvasAmong} reads only `ok`, so
|
|
67
|
+
* without this a scope gap and a product defect both reach the audit row as a bare `failed`. The
|
|
68
|
+
* LAST refusal of the decision is kept. On most paths that is the call that decided the outcome. An
|
|
69
|
+
* earlier refusal can also have only shaped the path: a refused `auth.test` leaves the bot unknown, and
|
|
70
|
+
* a refused `conversations.members` sends the decision to the take-down. A throw is never a Slack
|
|
71
|
+
* refusal, so the callers drop the refusal on their throw path.
|
|
72
|
+
*/
|
|
73
|
+
function recordSlackRefusals(deps) {
|
|
74
|
+
let last;
|
|
75
|
+
return {
|
|
76
|
+
deps: {
|
|
77
|
+
...deps,
|
|
78
|
+
call: async (method, body) => {
|
|
79
|
+
const res = await deps.call(method, body);
|
|
80
|
+
if (res === undefined)
|
|
81
|
+
last = { method, error: "no_response" };
|
|
82
|
+
else if (res.ok !== true) {
|
|
83
|
+
const needed = slackCode(res.needed);
|
|
84
|
+
last = { method, error: slackCode(res.error) ?? "unknown", ...(needed ? { needed } : {}) };
|
|
85
|
+
}
|
|
86
|
+
return res;
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
refusal: () => last,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/** The Slack refusal behind an outcome, when it has one: present only on `failed` and `clear-failed`,
|
|
93
|
+
* and only when a Slack call was refused. A failure with no Slack refusal (a store read, a throw)
|
|
94
|
+
* answers undefined. */
|
|
95
|
+
function refusalFor(outcome, refusal) {
|
|
96
|
+
return outcome === "failed" || outcome === "clear-failed" ? refusal : undefined;
|
|
97
|
+
}
|
|
98
|
+
/** The audit detail fields for a refusal: `slackError` (Slack's code, through the audit scrub, as every
|
|
99
|
+
* error-named key must be), `slackMethod`, and `slackNeeded` when Slack names a scope. */
|
|
100
|
+
function slackErrorDetail(e) {
|
|
101
|
+
if (!e)
|
|
102
|
+
return {};
|
|
103
|
+
return { slackError: scrubAuditText(e.error), slackMethod: e.method, ...(e.needed ? { slackNeeded: scrubAuditText(e.needed) } : {}) };
|
|
104
|
+
}
|
|
49
105
|
/** The live deps: every call through `slackForm` (the one Web API seam, fail-soft), the room verdict
|
|
50
106
|
* read FRESH, and the shared per-person membership probe. */
|
|
51
107
|
export function liveMemoryCanvasDeps() {
|
|
@@ -68,7 +124,7 @@ function memoryCanvasMarkdown(domain, groups, nowIso) {
|
|
|
68
124
|
const name = agentDisplayName();
|
|
69
125
|
const body = renderMemoryMarkdown(`What ${name} knows — ${domain.title ?? domain.name}`, groups, nowIso);
|
|
70
126
|
const footer = `\n---\n${name} keeps this canvas up to date. To correct or forget a line, ask ${name} in this channel. ` +
|
|
71
|
-
|
|
127
|
+
`${MEMORY_CANVAS_MARKER}\n`;
|
|
72
128
|
// OPE-2486 — the memory provenance carriers read as plain words on a canvas a whole channel reads.
|
|
73
129
|
const text = defuseCanvasText(memoryLineForReader(body));
|
|
74
130
|
const cut = text.length > CANVAS_MARKDOWN_MAX ? text.slice(0, CANVAS_MARKDOWN_MAX) + "\n\n_This canvas is full. Ask in this channel for the rest._\n" : text;
|
|
@@ -145,55 +201,85 @@ function withdrawnCanvasMarkdown() {
|
|
|
145
201
|
const name = agentDisplayName();
|
|
146
202
|
return (`# ${name}'s memory canvas was withdrawn\n\n` +
|
|
147
203
|
`This channel includes guests or people from outside your organisation, so ${name} no longer shows its memory here. ` +
|
|
148
|
-
`The memory itself is unchanged. Members can still ask ${name} about it in an internal channel
|
|
204
|
+
`The memory itself is unchanged. Members can still ask ${name} about it in an internal channel. ` +
|
|
205
|
+
// The marker keeps the withdrawn canvas the memory canvas, so a later refresh rewrites it in place.
|
|
206
|
+
`${MEMORY_CANVAS_MARKER}\n`);
|
|
207
|
+
}
|
|
208
|
+
/** Slack's answer when it answered `ok`, else undefined: the read shape core's rule takes. */
|
|
209
|
+
function readOk(deps) {
|
|
210
|
+
return async (method, params) => {
|
|
211
|
+
const res = await deps.call(method, params);
|
|
212
|
+
return res?.ok === true ? res : undefined;
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
/** The memory canvas among the channel's canvases, by core's one rule (OPE-2587). */
|
|
216
|
+
async function findMemoryCanvas(room, info, botUserId, deps) {
|
|
217
|
+
const stored = await storedMemoryCanvas(deps.store ?? getOperationalStore(), room.org, memoryCanvasSurfaceKey(room.teamId, room.channelId));
|
|
218
|
+
return memoryCanvasAmong(readOk(deps), info, stored, botUserId);
|
|
219
|
+
}
|
|
220
|
+
/** Record the room's memory canvas id. A failed write is not an outcome: the row then names an older id
|
|
221
|
+
* or none, the canvas carries {@link MEMORY_CANVAS_MARKER}, and core's rule scans for the marker
|
|
222
|
+
* whenever the row's id is not on screen. So the next decision finds this canvas again. */
|
|
223
|
+
async function recordMemoryCanvas(room, canvasId, deps) {
|
|
224
|
+
const at = (deps.now?.() ?? new Date()).toISOString();
|
|
225
|
+
await (deps.store ?? getOperationalStore()).setMemoryCanvas(room.org, memoryCanvasSurfaceKey(room.teamId, room.channelId), canvasId, at).catch(() => undefined);
|
|
149
226
|
}
|
|
150
227
|
/**
|
|
151
|
-
* Take the
|
|
152
|
-
* `conversations.info`,
|
|
153
|
-
* a skip — the caller cannot rule out that the
|
|
154
|
-
* say so. `skipped-*` is kept for the
|
|
155
|
-
*
|
|
228
|
+
* Take the memory canvas down in one channel, if it has one. FAIL-CLOSED ON EVERY LOOKUP: a failed
|
|
229
|
+
* `conversations.info`, store read, `files.info` or section lookup, or an unknown bot identity, answers
|
|
230
|
+
* `clear-failed`, never a skip — the caller cannot rule out that the memory canvas is still on screen,
|
|
231
|
+
* and the audit row must say so. `skipped-*` is kept for the answer that PROVES no memory canvas is on
|
|
232
|
+
* screen ({@link memoryCanvasAmong} answers `none`). Only the memory canvas is cleared: a person's
|
|
233
|
+
* canvas, and a canvas the agent made for a person through `write_canvas`, are not touched (OPE-2587),
|
|
234
|
+
* unless a person typed the memory canvas footer line into one by hand ({@link memoryCanvasAmong} rule 3).
|
|
156
235
|
*/
|
|
157
|
-
async function withdrawIfOurs(
|
|
158
|
-
const info = await deps.call("conversations.info", { channel: channelId });
|
|
236
|
+
async function withdrawIfOurs(room, reason, botUserId, deps) {
|
|
237
|
+
const info = await deps.call("conversations.info", { channel: room.channelId });
|
|
159
238
|
if (info?.ok !== true)
|
|
160
239
|
return "clear-failed";
|
|
161
|
-
const
|
|
162
|
-
if (
|
|
163
|
-
return `skipped-${reason}`;
|
|
164
|
-
const file = await deps.call("files.info", { file: existing });
|
|
165
|
-
if (file?.ok !== true)
|
|
166
|
-
return "clear-failed";
|
|
167
|
-
const creator = file.file?.user;
|
|
168
|
-
if (botUserId === undefined)
|
|
240
|
+
const match = await findMemoryCanvas(room, info, botUserId, deps);
|
|
241
|
+
if (match.kind === "unsure")
|
|
169
242
|
return "clear-failed";
|
|
170
|
-
if (
|
|
243
|
+
if (match.kind === "none")
|
|
171
244
|
return `skipped-${reason}`;
|
|
172
245
|
const cleared = await deps.call("canvases.edit", {
|
|
173
|
-
canvas_id:
|
|
246
|
+
canvas_id: match.canvasId,
|
|
174
247
|
changes: [{ operation: "replace", document_content: { type: "markdown", markdown: withdrawnCanvasMarkdown() } }],
|
|
175
248
|
});
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
return
|
|
249
|
+
if (cleared?.ok !== true)
|
|
250
|
+
return "clear-failed";
|
|
251
|
+
if (match.adopt)
|
|
252
|
+
await recordMemoryCanvas(room, match.canvasId, deps);
|
|
253
|
+
return `cleared-${reason}`;
|
|
181
254
|
}
|
|
255
|
+
/** Slack's refusals of `conversations.canvases.create` that mean the channel's canvas slot holds a
|
|
256
|
+
* canvas that is not the memory canvas: a person's channel canvas, or the one tab a free plan allows,
|
|
257
|
+
* which a person's canvas or a canvas the agent made through `write_canvas` can hold. */
|
|
258
|
+
const CANVAS_SLOT_TAKEN = new Set(["channel_canvas_already_exists", "free_team_canvas_tab_already_exists"]);
|
|
182
259
|
/**
|
|
183
260
|
* Write one channel's canvas — or, with `markdown: null`, only RECHECK it. Never throws.
|
|
184
261
|
*
|
|
185
|
-
* 🔴 THE GATE RUNS BEFORE EVERY DECISION, AND A FAILED GATE TAKES THE
|
|
262
|
+
* 🔴 THE GATE RUNS BEFORE EVERY DECISION, AND A FAILED GATE TAKES THE MEMORY CANVAS DOWN (OPE-2451,
|
|
186
263
|
* the brain's security review). A canvas the app wrote while the channel passed outlives the room's
|
|
187
264
|
* trust otherwise: once the channel is shared, or a guest joins, a refresh that merely SKIPS leaves
|
|
188
265
|
* every line of the domain's memory on screen for the new audience. So on either refusal the app
|
|
189
|
-
* replaces
|
|
190
|
-
*
|
|
266
|
+
* replaces the memory canvas with {@link withdrawnCanvasMarkdown} ({@link withdrawIfOurs}).
|
|
267
|
+
*
|
|
268
|
+
* 🔴 ONLY THE MEMORY CANVAS IS WRITTEN (OPE-2587). Slack shows a channel's canvases as tabs, and the
|
|
269
|
+
* canvas a person approves through `write_canvas` has the app's bot user as its creator too. So the app
|
|
270
|
+
* rewrites only the canvas core's {@link memoryCanvasAmong} finds: the id its `memory_canvas` row
|
|
271
|
+
* holds, or, for a canvas made before the row existed, the rule that function names. A channel with no
|
|
272
|
+
* memory canvas gets one, and the row records its id. A person's canvas and a `write_canvas` canvas are
|
|
273
|
+
* not touched, in either direction, unless a person typed the memory canvas footer line into one by
|
|
274
|
+
* hand ({@link memoryCanvasAmong} rule 3). A lookup that leaves the answer open writes nothing (`failed`),
|
|
275
|
+
* because a new canvas could then duplicate the memory canvas.
|
|
191
276
|
*
|
|
192
277
|
* `null` markdown is the recheck the trust EVENTS run: it takes the canvas down on a failed gate and
|
|
193
278
|
* writes nothing on a passing one (`unchanged`). `joinedUserId` is the person a join event named: they
|
|
194
279
|
* are probed DIRECTLY, because Slack's member list may not carry them yet when the event arrives.
|
|
195
280
|
*/
|
|
196
|
-
export async function publishChannelCanvas(
|
|
281
|
+
export async function publishChannelCanvas(room, markdown, botUserId, deps, joinedUserId) {
|
|
282
|
+
const { channelId, teamId } = room;
|
|
197
283
|
const blocked = !(await deps.channelInternal(channelId))
|
|
198
284
|
? "external"
|
|
199
285
|
: (joinedUserId !== undefined && joinedUserId !== botUserId && (await deps.authorIsMember(joinedUserId, teamId)) !== true) ||
|
|
@@ -201,24 +287,33 @@ export async function publishChannelCanvas(channelId, markdown, botUserId, deps,
|
|
|
201
287
|
? "guest"
|
|
202
288
|
: undefined;
|
|
203
289
|
if (blocked)
|
|
204
|
-
return withdrawIfOurs(
|
|
290
|
+
return withdrawIfOurs(room, blocked, botUserId, deps);
|
|
205
291
|
if (markdown === null)
|
|
206
292
|
return "unchanged";
|
|
207
293
|
const info = await deps.call("conversations.info", { channel: channelId });
|
|
208
294
|
if (info?.ok !== true)
|
|
209
295
|
return "failed";
|
|
210
|
-
const
|
|
211
|
-
if (
|
|
296
|
+
const match = await findMemoryCanvas(room, info, botUserId, deps);
|
|
297
|
+
if (match.kind === "unsure")
|
|
298
|
+
return "failed";
|
|
299
|
+
if (match.kind === "none") {
|
|
212
300
|
const created = await deps.call("conversations.canvases.create", { channel_id: channelId, document_content: { type: "markdown", markdown } });
|
|
213
|
-
|
|
301
|
+
if (created?.ok !== true)
|
|
302
|
+
return typeof created?.error === "string" && CANVAS_SLOT_TAKEN.has(created.error) ? "skipped-foreign" : "failed";
|
|
303
|
+
if (typeof created.canvas_id === "string" && created.canvas_id.length > 0)
|
|
304
|
+
await recordMemoryCanvas(room, created.canvas_id, deps);
|
|
305
|
+
return "created";
|
|
214
306
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
if (
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
307
|
+
const edited = await deps.call("canvases.edit", { canvas_id: match.canvasId, changes: [{ operation: "replace", document_content: { type: "markdown", markdown } }] });
|
|
308
|
+
if (edited?.ok !== true)
|
|
309
|
+
return "failed";
|
|
310
|
+
if (match.adopt)
|
|
311
|
+
await recordMemoryCanvas(room, match.canvasId, deps);
|
|
312
|
+
return "updated";
|
|
313
|
+
}
|
|
314
|
+
/** The deploy-log tail for a Slack refusal: the method and code, and the scope Slack names. */
|
|
315
|
+
function slackErrorLog(e) {
|
|
316
|
+
return e ? ` (${e.method}: ${e.error}${e.needed ? `, needs ${e.needed}` : ""})` : "";
|
|
222
317
|
}
|
|
223
318
|
/**
|
|
224
319
|
* Recheck ONE channel's canvas after a trust event (a person joined it, or it was shared). The front
|
|
@@ -232,15 +327,23 @@ export async function publishChannelCanvas(channelId, markdown, botUserId, deps,
|
|
|
232
327
|
*/
|
|
233
328
|
export async function recheckChannelCanvas(input, deps) {
|
|
234
329
|
const surfaceKey = `slack/${input.teamId}/${input.channelId}`;
|
|
330
|
+
const room = { org: input.org, teamId: input.teamId, channelId: input.channelId };
|
|
235
331
|
const domain = domainForChannel(surfaceKey, getConfig().loadDomains());
|
|
236
332
|
const shows = domain !== undefined && domain.memory !== undefined && domain.memoryCanvas !== false;
|
|
237
|
-
|
|
333
|
+
// The recorder starts before `auth.test`: an unknown bot identity is a refusal the row should name.
|
|
334
|
+
const recorded = recordSlackRefusals(deps);
|
|
335
|
+
const auth = await recorded.deps.call("auth.test", {});
|
|
238
336
|
const botUserId = auth?.ok === true && typeof auth.user_id === "string" ? auth.user_id : undefined;
|
|
337
|
+
let threw = false;
|
|
239
338
|
const outcome = await (shows
|
|
240
|
-
? publishChannelCanvas(
|
|
241
|
-
: withdrawIfOurs(
|
|
339
|
+
? publishChannelCanvas(room, null, botUserId, recorded.deps, input.joinedUserId)
|
|
340
|
+
: withdrawIfOurs(room, "disabled", botUserId, recorded.deps)).catch(() => {
|
|
341
|
+
threw = true;
|
|
342
|
+
return "clear-failed";
|
|
343
|
+
});
|
|
344
|
+
const refusal = threw ? undefined : refusalFor(outcome, recorded.refusal());
|
|
242
345
|
if (outcome !== "unchanged" && outcome !== "skipped-disabled") {
|
|
243
|
-
console.log(`[open-everywhere:slack-canvas] ${input.trigger} recheck, channel ${input.channelId}: ${outcome}`);
|
|
346
|
+
console.log(`[open-everywhere:slack-canvas] ${input.trigger} recheck, channel ${input.channelId}: ${outcome}${slackErrorLog(refusal)}`);
|
|
244
347
|
}
|
|
245
348
|
await appendAudit({
|
|
246
349
|
org: input.org,
|
|
@@ -248,7 +351,7 @@ export async function recheckChannelCanvas(input, deps) {
|
|
|
248
351
|
workspace: input.teamId,
|
|
249
352
|
surface: input.channelId,
|
|
250
353
|
action: MEMORY_CANVAS_ACTION,
|
|
251
|
-
detail: { domain: domain?.name ?? null, trigger: input.trigger, outcome },
|
|
354
|
+
detail: { domain: domain?.name ?? null, trigger: input.trigger, outcome, ...slackErrorDetail(refusal) },
|
|
252
355
|
}).catch(() => undefined);
|
|
253
356
|
return outcome;
|
|
254
357
|
}
|
|
@@ -281,9 +384,16 @@ export async function refreshMemoryCanvases(event, deps) {
|
|
|
281
384
|
const markdown = shows ? memoryCanvasMarkdown(domain, await readDomainMemory(event.org, domain), nowIso) : "";
|
|
282
385
|
for (const room of rooms) {
|
|
283
386
|
// A throw on the clear-only path cannot rule out that the old canvas is still up, so it says so.
|
|
284
|
-
const
|
|
387
|
+
const canvasRoom = { org: event.org, teamId, channelId: room.channelId };
|
|
388
|
+
const recorded = recordSlackRefusals(deps);
|
|
389
|
+
let threw = false;
|
|
390
|
+
const outcome = await (shows ? publishChannelCanvas(canvasRoom, markdown, botUserId, recorded.deps) : withdrawIfOurs(canvasRoom, "disabled", botUserId, recorded.deps)).catch(() => {
|
|
391
|
+
threw = true;
|
|
392
|
+
return shows ? "failed" : "clear-failed";
|
|
393
|
+
});
|
|
394
|
+
const refusal = threw ? undefined : refusalFor(outcome, recorded.refusal());
|
|
285
395
|
if (outcome !== "created" && outcome !== "updated") {
|
|
286
|
-
console.log(`[open-everywhere:slack-canvas] domain "${domain.name}" channel ${room.channelId}: ${outcome}`);
|
|
396
|
+
console.log(`[open-everywhere:slack-canvas] domain "${domain.name}" channel ${room.channelId}: ${outcome}${slackErrorLog(refusal)}`);
|
|
287
397
|
}
|
|
288
398
|
const [platform, workspace, surface] = room.surfaceKey.split("/");
|
|
289
399
|
await appendAudit({
|
|
@@ -292,7 +402,7 @@ export async function refreshMemoryCanvases(event, deps) {
|
|
|
292
402
|
workspace: workspace,
|
|
293
403
|
surface: surface,
|
|
294
404
|
action: MEMORY_CANVAS_ACTION,
|
|
295
|
-
detail: { domain: domain.name, trigger: "memory-write", silo: event.silo, outcome, chars: markdown.length },
|
|
405
|
+
detail: { domain: domain.name, trigger: "memory-write", silo: event.silo, outcome, chars: markdown.length, ...slackErrorDetail(refusal) },
|
|
296
406
|
}).catch(() => undefined);
|
|
297
407
|
}
|
|
298
408
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-memory-canvas.js","sourceRoot":"","sources":["../../../agent/channels/slack-memory-canvas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slack-memory-canvas.js","sourceRoot":"","sources":["../../../agent/channels/slack-memory-canvas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-origin-codec.d.ts","sourceRoot":"","sources":["../../../agent/channels/slack-origin-codec.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAErG,KAAK,WAAW,GAAG,OAAO,CAAC,iBAAiB,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAMrE,eAAO,MAAM,oBAAoB,EAAE,eAAe,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"slack-origin-codec.d.ts","sourceRoot":"","sources":["../../../agent/channels/slack-origin-codec.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAErG,KAAK,WAAW,GAAG,OAAO,CAAC,iBAAiB,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAMrE,eAAO,MAAM,oBAAoB,EAAE,eAAe,CAAC,WAAW,CAyD7D,CAAC"}
|
|
@@ -55,6 +55,16 @@ export const slackWakeOriginCodec = {
|
|
|
55
55
|
const ts = typeof origin.threadTs === "string" && origin.threadTs.length > 0 ? origin.threadTs : typeof origin.replyAnchorTs === "string" && origin.replyAnchorTs.length > 0 ? origin.replyAnchorTs : undefined;
|
|
56
56
|
return ts === undefined ? undefined : { channelId: origin.channelId, messageId: ts };
|
|
57
57
|
},
|
|
58
|
+
// THE THREAD A REPLY OPENS (OPE-2532). A post that is already in a thread answers undefined, because its
|
|
59
|
+
// own `threadTs` is the key. A post placed under an anchor lands in the anchor's thread (the post arm
|
|
60
|
+
// reads `threadTs ?? replyAnchorTs`), and Slack threads do not nest, so a reply carries the anchor. A
|
|
61
|
+
// top-level post opens a thread under its own ts.
|
|
62
|
+
replyThreadUnder: (origin, messageId) => {
|
|
63
|
+
if (typeof origin.threadTs === "string" && origin.threadTs.length > 0)
|
|
64
|
+
return undefined;
|
|
65
|
+
const anchor = typeof origin.replyAnchorTs === "string" && origin.replyAnchorTs.length > 0 ? origin.replyAnchorTs : messageId;
|
|
66
|
+
return { platform: "slack", channelId: origin.channelId, threadTs: anchor };
|
|
67
|
+
},
|
|
58
68
|
// A `dmOrigin` arm lived here (OPE-306) to mint a DM delegation anchor's reply origin from the
|
|
59
69
|
// binding. OPE-368 deleted the anchor and the interface member with it — a Slack 1:1 or group DM
|
|
60
70
|
// now diverts into its own first-class window (OPE-351 stages 2 + 4), so its origin is minted and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-origin-codec.js","sourceRoot":"","sources":["../../../agent/channels/slack-origin-codec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slack-origin-codec.js","sourceRoot":"","sources":["../../../agent/channels/slack-origin-codec.ts"],"names":[],"mappings":"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"}
|