@open-everywhere/provider-slack 0.1.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.
- package/LICENSE +201 -0
- package/NOTICE +21 -0
- package/README.md +47 -0
- package/agent/access/slack-attachment-fetch.ts +168 -0
- package/agent/app-manifest.ts +149 -0
- package/agent/channels/slack-approval-card.ts +275 -0
- package/agent/channels/slack-attachments.ts +195 -0
- package/agent/channels/slack-commands.ts +227 -0
- package/agent/channels/slack-context.ts +185 -0
- package/agent/channels/slack-events.ts +5406 -0
- package/agent/channels/slack-front.ts +2349 -0
- package/agent/channels/slack-identity.ts +520 -0
- package/agent/channels/slack-input-response.ts +162 -0
- package/agent/channels/slack-mrkdwn.ts +61 -0
- package/agent/channels/slack-origin-codec.ts +62 -0
- package/agent/channels/slack-post-arm.ts +314 -0
- package/agent/channels/slack-read.ts +248 -0
- package/agent/channels/slack-route-hold.ts +107 -0
- package/agent/channels/slack-shortcut.ts +336 -0
- package/agent/channels/slack-signature.ts +53 -0
- package/agent/channels/slack-spend-gate.ts +62 -0
- package/agent/channels/slack-tenant-fence.ts +99 -0
- package/agent/channels/slack-wake-backscroll.ts +604 -0
- package/agent/channels/slack-web-api.ts +178 -0
- package/agent/channels/slack-webhook-verifier.ts +116 -0
- package/agent/channels/slack.ts +1266 -0
- package/agent/contributions.ts +32 -0
- package/agent/docs-generated.ts +15 -0
- package/agent/ops.ts +50 -0
- package/agent/provider-events.ts +91 -0
- package/agent/register.ts +144 -0
- package/agent/surface-parity.ts +99 -0
- package/dist/agent/access/slack-attachment-fetch.d.ts +15 -0
- package/dist/agent/access/slack-attachment-fetch.d.ts.map +1 -0
- package/dist/agent/access/slack-attachment-fetch.js +151 -0
- package/dist/agent/access/slack-attachment-fetch.js.map +1 -0
- package/dist/agent/app-manifest.d.ts +15 -0
- package/dist/agent/app-manifest.d.ts.map +1 -0
- package/dist/agent/app-manifest.js +141 -0
- package/dist/agent/app-manifest.js.map +1 -0
- package/dist/agent/channels/slack-approval-card.d.ts +71 -0
- package/dist/agent/channels/slack-approval-card.d.ts.map +1 -0
- package/dist/agent/channels/slack-approval-card.js +232 -0
- package/dist/agent/channels/slack-approval-card.js.map +1 -0
- package/dist/agent/channels/slack-attachments.d.ts +66 -0
- package/dist/agent/channels/slack-attachments.d.ts.map +1 -0
- package/dist/agent/channels/slack-attachments.js +174 -0
- package/dist/agent/channels/slack-attachments.js.map +1 -0
- package/dist/agent/channels/slack-commands.d.ts +27 -0
- package/dist/agent/channels/slack-commands.d.ts.map +1 -0
- package/dist/agent/channels/slack-commands.js +208 -0
- package/dist/agent/channels/slack-commands.js.map +1 -0
- package/dist/agent/channels/slack-context.d.ts +26 -0
- package/dist/agent/channels/slack-context.d.ts.map +1 -0
- package/dist/agent/channels/slack-context.js +178 -0
- package/dist/agent/channels/slack-context.js.map +1 -0
- package/dist/agent/channels/slack-events.d.ts +1654 -0
- package/dist/agent/channels/slack-events.d.ts.map +1 -0
- package/dist/agent/channels/slack-events.js +4240 -0
- package/dist/agent/channels/slack-events.js.map +1 -0
- package/dist/agent/channels/slack-front.d.ts +387 -0
- package/dist/agent/channels/slack-front.d.ts.map +1 -0
- package/dist/agent/channels/slack-front.js +1958 -0
- package/dist/agent/channels/slack-front.js.map +1 -0
- package/dist/agent/channels/slack-identity.d.ts +245 -0
- package/dist/agent/channels/slack-identity.d.ts.map +1 -0
- package/dist/agent/channels/slack-identity.js +405 -0
- package/dist/agent/channels/slack-identity.js.map +1 -0
- package/dist/agent/channels/slack-input-response.d.ts +26 -0
- package/dist/agent/channels/slack-input-response.d.ts.map +1 -0
- package/dist/agent/channels/slack-input-response.js +127 -0
- package/dist/agent/channels/slack-input-response.js.map +1 -0
- package/dist/agent/channels/slack-mrkdwn.d.ts +3 -0
- package/dist/agent/channels/slack-mrkdwn.d.ts.map +1 -0
- package/dist/agent/channels/slack-mrkdwn.js +53 -0
- package/dist/agent/channels/slack-mrkdwn.js.map +1 -0
- package/dist/agent/channels/slack-origin-codec.d.ts +7 -0
- package/dist/agent/channels/slack-origin-codec.d.ts.map +1 -0
- package/dist/agent/channels/slack-origin-codec.js +55 -0
- package/dist/agent/channels/slack-origin-codec.js.map +1 -0
- package/dist/agent/channels/slack-post-arm.d.ts +54 -0
- package/dist/agent/channels/slack-post-arm.d.ts.map +1 -0
- package/dist/agent/channels/slack-post-arm.js +268 -0
- package/dist/agent/channels/slack-post-arm.js.map +1 -0
- package/dist/agent/channels/slack-read.d.ts +84 -0
- package/dist/agent/channels/slack-read.d.ts.map +1 -0
- package/dist/agent/channels/slack-read.js +205 -0
- package/dist/agent/channels/slack-read.js.map +1 -0
- package/dist/agent/channels/slack-route-hold.d.ts +34 -0
- package/dist/agent/channels/slack-route-hold.d.ts.map +1 -0
- package/dist/agent/channels/slack-route-hold.js +97 -0
- package/dist/agent/channels/slack-route-hold.js.map +1 -0
- package/dist/agent/channels/slack-shortcut.d.ts +162 -0
- package/dist/agent/channels/slack-shortcut.d.ts.map +1 -0
- package/dist/agent/channels/slack-shortcut.js +262 -0
- package/dist/agent/channels/slack-shortcut.js.map +1 -0
- package/dist/agent/channels/slack-signature.d.ts +19 -0
- package/dist/agent/channels/slack-signature.d.ts.map +1 -0
- package/dist/agent/channels/slack-signature.js +50 -0
- package/dist/agent/channels/slack-signature.js.map +1 -0
- package/dist/agent/channels/slack-spend-gate.d.ts +22 -0
- package/dist/agent/channels/slack-spend-gate.d.ts.map +1 -0
- package/dist/agent/channels/slack-spend-gate.js +48 -0
- package/dist/agent/channels/slack-spend-gate.js.map +1 -0
- package/dist/agent/channels/slack-tenant-fence.d.ts +61 -0
- package/dist/agent/channels/slack-tenant-fence.d.ts.map +1 -0
- package/dist/agent/channels/slack-tenant-fence.js +88 -0
- package/dist/agent/channels/slack-tenant-fence.js.map +1 -0
- package/dist/agent/channels/slack-wake-backscroll.d.ts +188 -0
- package/dist/agent/channels/slack-wake-backscroll.d.ts.map +1 -0
- package/dist/agent/channels/slack-wake-backscroll.js +473 -0
- package/dist/agent/channels/slack-wake-backscroll.js.map +1 -0
- package/dist/agent/channels/slack-web-api.d.ts +46 -0
- package/dist/agent/channels/slack-web-api.d.ts.map +1 -0
- package/dist/agent/channels/slack-web-api.js +147 -0
- package/dist/agent/channels/slack-web-api.js.map +1 -0
- package/dist/agent/channels/slack-webhook-verifier.d.ts +5 -0
- package/dist/agent/channels/slack-webhook-verifier.d.ts.map +1 -0
- package/dist/agent/channels/slack-webhook-verifier.js +112 -0
- package/dist/agent/channels/slack-webhook-verifier.js.map +1 -0
- package/dist/agent/channels/slack.d.ts +37 -0
- package/dist/agent/channels/slack.d.ts.map +1 -0
- package/dist/agent/channels/slack.js +1169 -0
- package/dist/agent/channels/slack.js.map +1 -0
- package/dist/agent/contributions.d.ts +17 -0
- package/dist/agent/contributions.d.ts.map +1 -0
- package/dist/agent/contributions.js +32 -0
- package/dist/agent/contributions.js.map +1 -0
- package/dist/agent/docs-generated.d.ts +3 -0
- package/dist/agent/docs-generated.d.ts.map +1 -0
- package/dist/agent/docs-generated.js +13 -0
- package/dist/agent/docs-generated.js.map +1 -0
- package/dist/agent/ops.d.ts +3 -0
- package/dist/agent/ops.d.ts.map +1 -0
- package/dist/agent/ops.js +38 -0
- package/dist/agent/ops.js.map +1 -0
- package/dist/agent/provider-events.d.ts +3 -0
- package/dist/agent/provider-events.d.ts.map +1 -0
- package/dist/agent/provider-events.js +84 -0
- package/dist/agent/provider-events.js.map +1 -0
- package/dist/agent/register.d.ts +5 -0
- package/dist/agent/register.d.ts.map +1 -0
- package/dist/agent/register.js +118 -0
- package/dist/agent/register.js.map +1 -0
- package/dist/agent/surface-parity.d.ts +3 -0
- package/dist/agent/surface-parity.d.ts.map +1 -0
- package/dist/agent/surface-parity.js +95 -0
- package/dist/agent/surface-parity.js.map +1 -0
- package/package.json +209 -0
- package/tsconfig.build.json +22 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// SLACK's surface-parity declaration (OPE-1499) — every capability the chat-surface contract
|
|
2
|
+
// names, answered. Registered by registerSlackProvider(); read by `npm run lint:surface-parity`
|
|
3
|
+
// and by the generator that renders the contract's §7.1, §7.1.1 and §7.2 tables.
|
|
4
|
+
//
|
|
5
|
+
// Slack is the REFERENCE SURFACE: it honours every capability, so this file is the shape a new
|
|
6
|
+
// provider copies and then argues with. The two qualified cells below are the interesting ones —
|
|
7
|
+
// both are "honoured, by a different route than a reader would assume".
|
|
8
|
+
export const SLACK_SURFACE_PARITY = {
|
|
9
|
+
// --- registration seams (§7.1) ---------------------------------------------------------------
|
|
10
|
+
"identity-mapper": "supported",
|
|
11
|
+
"capability-manifest": "supported",
|
|
12
|
+
"post-arm": "supported",
|
|
13
|
+
"wake-origin-codec": "supported",
|
|
14
|
+
// The arm renders the buttons (`slack-post-arm.ts`), the front routes the tap back
|
|
15
|
+
// (`slack-front.ts` classifies `oe_input:`, `slack-approval-card.ts` settles it), and the settle
|
|
16
|
+
// DELIVERS through core's `approvalCardRespondVia` — all three halves, as the row requires. The
|
|
17
|
+
// third is not a formality: this front bound its own `args.from(bareToken)` until OPE-1863, and
|
|
18
|
+
// that address is channel-local, so every tap threw and the approval stayed parked.
|
|
19
|
+
"unified-action-plane": "supported",
|
|
20
|
+
// `replyAnchorTs` is placement only and sits outside `threadRef`, so two top-level wakes in one
|
|
21
|
+
// channel are ONE conversation carrying two different anchors. Both members are implemented.
|
|
22
|
+
"origin-placement-carry": "supported",
|
|
23
|
+
"read-adapter": "supported",
|
|
24
|
+
"reaction-feedback-ingest": "supported",
|
|
25
|
+
// Slack registers no `SurfaceMessageOps` row: its ancillary posts ride Eve's own Slack client
|
|
26
|
+
// path (channels/slack-events.ts `slackForm`), not a bot-token REST call through the registry.
|
|
27
|
+
// The effect is identical; only the transport differs — so the capability IS honoured and the
|
|
28
|
+
// note is what stops the empty registry row reading as a gap.
|
|
29
|
+
"ancillary-ops": { supported: "inline — rides Eve's own Slack client path, not the ops registry" },
|
|
30
|
+
"ambient-engagement-seam": "supported",
|
|
31
|
+
// 🔴 NOTHING TO PROMOTE, NOT A GAP TO CLOSE. Slack writes no `slack.dispatched` action at all, so
|
|
32
|
+
// this surface has no dispatch row carrying an `addressing` value. `J-ENGAGED-slack` still asks
|
|
33
|
+
// for `thread-follow`, and `gateEngagedWake` SKIPS on the empty dispatch read by design — the leg
|
|
34
|
+
// rests on its reply and stand-down proofs instead.
|
|
35
|
+
"engaged-row-promotion": { unsupported: "no dispatch row — Slack writes no `slack.dispatched` action, so there is no `addressing` value to promote" },
|
|
36
|
+
// The FIRST surface to consult thread ownership at ingest, and the reference wiring for the other
|
|
37
|
+
// five: `slack-front.ts`'s `withSingleWindowDiversion` calls `divertInboundToUnifiedWindow`, and a
|
|
38
|
+
// wake whose origin carries a `threadTs` is what the router reads as thread-scoped.
|
|
39
|
+
// BOTH legs, and the DM one is not a formality: a Slack DM message that genuinely sits in a thread
|
|
40
|
+
// keeps its `threadTs`, so a DM thread can be owned. `scheduleDmWake` ran on the RAW divert until
|
|
41
|
+
// OPE-1719, which orphaned any seat spawned inside one.
|
|
42
|
+
"owned-thread-ingress": "supported",
|
|
43
|
+
// The reference wiring for the other five: `slack-wake-backscroll.ts slackSeatCatchUpFetch` reads
|
|
44
|
+
// `conversations.history` since the seat's own `lastWakeAt`, enriches in-window threads with
|
|
45
|
+
// `conversations.replies`, and hands the normalized window to core's shared catch-up path.
|
|
46
|
+
"seat-catch-up": "supported",
|
|
47
|
+
// The name-drop hydration pours into the seat's context slot on the SEAT ROAD, and that pour goes
|
|
48
|
+
// through `admitContextLines` (slack-events.ts, `deps.seatRoute` present). An UNSEATED deployment
|
|
49
|
+
// takes the same thunk with no policy, which is not an unpoliced seat: there is no seat to govern.
|
|
50
|
+
"seat-context-admission": "supported",
|
|
51
|
+
// The BUILT-IN path: core renders Block Kit and posts it itself, so this surface registers no
|
|
52
|
+
// `CardPoster` and is the one platform `hasApprovalCardPath` answers by name.
|
|
53
|
+
// 🔴 BARE, NOT `{ supported: "…" }`. A noted cell is EXEMPT from the overclaim arm by design, and
|
|
54
|
+
// the whole value of this row is that arm: drop the built-in render and the cell must go red.
|
|
55
|
+
"approval-card": "supported",
|
|
56
|
+
// The same built-in path renders the judge-lift notice, so a lifted act posts a notice carrying
|
|
57
|
+
// the one "This should not have run" button, and `slack-front.ts` routes that tap back through
|
|
58
|
+
// core's shared `contradict` decision.
|
|
59
|
+
"judge-lift-notice": "supported",
|
|
60
|
+
// --- wake legs and conversation shapes -------------------------------------------------------
|
|
61
|
+
"addressed-leg": "supported",
|
|
62
|
+
"ambient-leg": "supported",
|
|
63
|
+
"name-drop-mention": "supported",
|
|
64
|
+
// THE ONLY SURFACE THAT WAKES ON AN EDIT, and the reason the shared rule reads wider than it is:
|
|
65
|
+
// `shouldDeliverReply` carves `message_changed` out of its blanket subtype refusal, and Slack is
|
|
66
|
+
// the only bundle whose door ever sees the event. `routeMessageEvent` then dispatches it as a
|
|
67
|
+
// `message-edited` wake carrying `<previous-body>` (slack-events.ts).
|
|
68
|
+
"message-edit-wake": "supported",
|
|
69
|
+
threads: "supported",
|
|
70
|
+
rooms: "supported",
|
|
71
|
+
dm: "supported",
|
|
72
|
+
mpim: "supported",
|
|
73
|
+
// --- core verbs (§7.2) -----------------------------------------------------------------------
|
|
74
|
+
reply: "supported",
|
|
75
|
+
edit_reply: "supported",
|
|
76
|
+
react: "supported",
|
|
77
|
+
no_reply: "supported",
|
|
78
|
+
read_channel: "supported",
|
|
79
|
+
read_thread: "supported",
|
|
80
|
+
// `search` federates WORK connectors and mounts on the session's grants, not on the bound
|
|
81
|
+
// surface. Slack registers no work-search adapter, so it contributes no searchable corpus — a
|
|
82
|
+
// Slack-bound session still mounts the verb when its domain holds a ticketing grant (§4.7).
|
|
83
|
+
search: { unsupported: "no work-search adapter — Slack is a chat surface, not a work corpus (§4.7)" },
|
|
84
|
+
post_message: "supported",
|
|
85
|
+
dm_person: "supported",
|
|
86
|
+
set_dm_delivery: "supported",
|
|
87
|
+
stop: { supported: "✋ reaction, plus the `/oe stop` command" },
|
|
88
|
+
ack_stop_glyph: "supported",
|
|
89
|
+
ack_cancel_note: "supported",
|
|
90
|
+
// The verb marks a real engagement row when the registry holds one, and refuses out loud when it
|
|
91
|
+
// does not (§4.10, §7.6) — a refusal on a missing ROW, never on a missing anchor.
|
|
92
|
+
stand_down: { supported: "marks the engagement row; refuses out loud when the registry holds none" },
|
|
93
|
+
post_file: "supported",
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=surface-parity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface-parity.js","sourceRoot":"","sources":["../../agent/surface-parity.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,gGAAgG;AAChG,iFAAiF;AACjF,EAAE;AACF,+FAA+F;AAC/F,iGAAiG;AACjG,wEAAwE;AAIxE,MAAM,CAAC,MAAM,oBAAoB,GAA6B;IAC5D,gGAAgG;IAChG,iBAAiB,EAAE,WAAW;IAC9B,qBAAqB,EAAE,WAAW;IAClC,UAAU,EAAE,WAAW;IACvB,mBAAmB,EAAE,WAAW;IAChC,mFAAmF;IACnF,iGAAiG;IACjG,gGAAgG;IAChG,gGAAgG;IAChG,oFAAoF;IACpF,sBAAsB,EAAE,WAAW;IACnC,gGAAgG;IAChG,6FAA6F;IAC7F,wBAAwB,EAAE,WAAW;IACrC,cAAc,EAAE,WAAW;IAC3B,0BAA0B,EAAE,WAAW;IACvC,8FAA8F;IAC9F,+FAA+F;IAC/F,8FAA8F;IAC9F,8DAA8D;IAC9D,eAAe,EAAE,EAAE,SAAS,EAAE,kEAAkE,EAAE;IAClG,yBAAyB,EAAE,WAAW;IACtC,kGAAkG;IAClG,gGAAgG;IAChG,kGAAkG;IAClG,oDAAoD;IACpD,uBAAuB,EAAE,EAAE,WAAW,EAAE,2GAA2G,EAAE;IACrJ,kGAAkG;IAClG,mGAAmG;IACnG,oFAAoF;IACpF,mGAAmG;IACnG,kGAAkG;IAClG,wDAAwD;IACxD,sBAAsB,EAAE,WAAW;IACnC,kGAAkG;IAClG,6FAA6F;IAC7F,2FAA2F;IAC3F,eAAe,EAAE,WAAW;IAC5B,kGAAkG;IAClG,kGAAkG;IAClG,mGAAmG;IACnG,wBAAwB,EAAE,WAAW;IACrC,8FAA8F;IAC9F,8EAA8E;IAC9E,kGAAkG;IAClG,8FAA8F;IAC9F,eAAe,EAAE,WAAW;IAC5B,gGAAgG;IAChG,+FAA+F;IAC/F,uCAAuC;IACvC,mBAAmB,EAAE,WAAW;IAEhC,gGAAgG;IAChG,eAAe,EAAE,WAAW;IAC5B,aAAa,EAAE,WAAW;IAC1B,mBAAmB,EAAE,WAAW;IAChC,iGAAiG;IACjG,iGAAiG;IACjG,8FAA8F;IAC9F,sEAAsE;IACtE,mBAAmB,EAAE,WAAW;IAChC,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,WAAW;IAClB,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,WAAW;IAEjB,gGAAgG;IAChG,KAAK,EAAE,WAAW;IAClB,UAAU,EAAE,WAAW;IACvB,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,WAAW;IACrB,YAAY,EAAE,WAAW;IACzB,WAAW,EAAE,WAAW;IACxB,0FAA0F;IAC1F,8FAA8F;IAC9F,4FAA4F;IAC5F,MAAM,EAAE,EAAE,WAAW,EAAE,4EAA4E,EAAE;IACrG,YAAY,EAAE,WAAW;IACzB,SAAS,EAAE,WAAW;IACtB,eAAe,EAAE,WAAW;IAC5B,IAAI,EAAE,EAAE,SAAS,EAAE,yCAAyC,EAAE;IAC9D,cAAc,EAAE,WAAW;IAC3B,eAAe,EAAE,WAAW;IAC5B,iGAAiG;IACjG,kFAAkF;IAClF,UAAU,EAAE,EAAE,SAAS,EAAE,yEAAyE,EAAE;IACpG,SAAS,EAAE,WAAW;CACvB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@open-everywhere/provider-slack",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Open Everywhere Slack provider — Slack channel and DM surfaces, identity mapping, approval cards and slash commands.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"agent",
|
|
7
|
+
"slack",
|
|
8
|
+
"slack-bot",
|
|
9
|
+
"chatops",
|
|
10
|
+
"eve"
|
|
11
|
+
],
|
|
12
|
+
"license": "Apache-2.0",
|
|
13
|
+
"type": "module",
|
|
14
|
+
"homepage": "https://github.com/open-everywhere/open-everywhere/tree/main/packages/providers/slack",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/open-everywhere/open-everywhere.git",
|
|
18
|
+
"directory": "packages/providers/slack"
|
|
19
|
+
},
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/open-everywhere/open-everywhere/issues"
|
|
22
|
+
},
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=24"
|
|
25
|
+
},
|
|
26
|
+
"publishConfig": {
|
|
27
|
+
"access": "public"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"agent",
|
|
31
|
+
"dist",
|
|
32
|
+
"tsconfig.json",
|
|
33
|
+
"tsconfig.build.json",
|
|
34
|
+
"LICENSE",
|
|
35
|
+
"NOTICE"
|
|
36
|
+
],
|
|
37
|
+
"exports": {
|
|
38
|
+
"./package.json": "./package.json",
|
|
39
|
+
"./agent/access/slack-attachment-fetch.js": {
|
|
40
|
+
"types": "./dist/agent/access/slack-attachment-fetch.d.ts",
|
|
41
|
+
"default": "./dist/agent/access/slack-attachment-fetch.js"
|
|
42
|
+
},
|
|
43
|
+
"./agent/app-manifest.js": {
|
|
44
|
+
"types": "./dist/agent/app-manifest.d.ts",
|
|
45
|
+
"default": "./dist/agent/app-manifest.js"
|
|
46
|
+
},
|
|
47
|
+
"./agent/channels/slack-approval-card.js": {
|
|
48
|
+
"types": "./dist/agent/channels/slack-approval-card.d.ts",
|
|
49
|
+
"default": "./dist/agent/channels/slack-approval-card.js"
|
|
50
|
+
},
|
|
51
|
+
"./agent/channels/slack-attachments.js": {
|
|
52
|
+
"types": "./dist/agent/channels/slack-attachments.d.ts",
|
|
53
|
+
"default": "./dist/agent/channels/slack-attachments.js"
|
|
54
|
+
},
|
|
55
|
+
"./agent/channels/slack-commands.js": {
|
|
56
|
+
"types": "./dist/agent/channels/slack-commands.d.ts",
|
|
57
|
+
"default": "./dist/agent/channels/slack-commands.js"
|
|
58
|
+
},
|
|
59
|
+
"./agent/channels/slack-context.js": {
|
|
60
|
+
"types": "./dist/agent/channels/slack-context.d.ts",
|
|
61
|
+
"default": "./dist/agent/channels/slack-context.js"
|
|
62
|
+
},
|
|
63
|
+
"./agent/channels/slack-events.js": {
|
|
64
|
+
"types": "./dist/agent/channels/slack-events.d.ts",
|
|
65
|
+
"default": "./dist/agent/channels/slack-events.js"
|
|
66
|
+
},
|
|
67
|
+
"./agent/channels/slack-front.js": {
|
|
68
|
+
"types": "./dist/agent/channels/slack-front.d.ts",
|
|
69
|
+
"default": "./dist/agent/channels/slack-front.js"
|
|
70
|
+
},
|
|
71
|
+
"./agent/channels/slack-identity.js": {
|
|
72
|
+
"types": "./dist/agent/channels/slack-identity.d.ts",
|
|
73
|
+
"default": "./dist/agent/channels/slack-identity.js"
|
|
74
|
+
},
|
|
75
|
+
"./agent/channels/slack-input-response.js": {
|
|
76
|
+
"types": "./dist/agent/channels/slack-input-response.d.ts",
|
|
77
|
+
"default": "./dist/agent/channels/slack-input-response.js"
|
|
78
|
+
},
|
|
79
|
+
"./agent/channels/slack-mrkdwn.js": {
|
|
80
|
+
"types": "./dist/agent/channels/slack-mrkdwn.d.ts",
|
|
81
|
+
"default": "./dist/agent/channels/slack-mrkdwn.js"
|
|
82
|
+
},
|
|
83
|
+
"./agent/channels/slack-origin-codec.js": {
|
|
84
|
+
"types": "./dist/agent/channels/slack-origin-codec.d.ts",
|
|
85
|
+
"default": "./dist/agent/channels/slack-origin-codec.js"
|
|
86
|
+
},
|
|
87
|
+
"./agent/channels/slack-post-arm.js": {
|
|
88
|
+
"types": "./dist/agent/channels/slack-post-arm.d.ts",
|
|
89
|
+
"default": "./dist/agent/channels/slack-post-arm.js"
|
|
90
|
+
},
|
|
91
|
+
"./agent/channels/slack-read.js": {
|
|
92
|
+
"types": "./dist/agent/channels/slack-read.d.ts",
|
|
93
|
+
"default": "./dist/agent/channels/slack-read.js"
|
|
94
|
+
},
|
|
95
|
+
"./agent/channels/slack-route-hold.js": {
|
|
96
|
+
"types": "./dist/agent/channels/slack-route-hold.d.ts",
|
|
97
|
+
"default": "./dist/agent/channels/slack-route-hold.js"
|
|
98
|
+
},
|
|
99
|
+
"./agent/channels/slack-shortcut.js": {
|
|
100
|
+
"types": "./dist/agent/channels/slack-shortcut.d.ts",
|
|
101
|
+
"default": "./dist/agent/channels/slack-shortcut.js"
|
|
102
|
+
},
|
|
103
|
+
"./agent/channels/slack-signature.js": {
|
|
104
|
+
"types": "./dist/agent/channels/slack-signature.d.ts",
|
|
105
|
+
"default": "./dist/agent/channels/slack-signature.js"
|
|
106
|
+
},
|
|
107
|
+
"./agent/channels/slack-spend-gate.js": {
|
|
108
|
+
"types": "./dist/agent/channels/slack-spend-gate.d.ts",
|
|
109
|
+
"default": "./dist/agent/channels/slack-spend-gate.js"
|
|
110
|
+
},
|
|
111
|
+
"./agent/channels/slack-tenant-fence.js": {
|
|
112
|
+
"types": "./dist/agent/channels/slack-tenant-fence.d.ts",
|
|
113
|
+
"default": "./dist/agent/channels/slack-tenant-fence.js"
|
|
114
|
+
},
|
|
115
|
+
"./agent/channels/slack-wake-backscroll.js": {
|
|
116
|
+
"types": "./dist/agent/channels/slack-wake-backscroll.d.ts",
|
|
117
|
+
"default": "./dist/agent/channels/slack-wake-backscroll.js"
|
|
118
|
+
},
|
|
119
|
+
"./agent/channels/slack-web-api.js": {
|
|
120
|
+
"types": "./dist/agent/channels/slack-web-api.d.ts",
|
|
121
|
+
"default": "./dist/agent/channels/slack-web-api.js"
|
|
122
|
+
},
|
|
123
|
+
"./agent/channels/slack-webhook-verifier.js": {
|
|
124
|
+
"types": "./dist/agent/channels/slack-webhook-verifier.d.ts",
|
|
125
|
+
"default": "./dist/agent/channels/slack-webhook-verifier.js"
|
|
126
|
+
},
|
|
127
|
+
"./agent/channels/slack.js": {
|
|
128
|
+
"types": "./dist/agent/channels/slack.d.ts",
|
|
129
|
+
"default": "./dist/agent/channels/slack.js"
|
|
130
|
+
},
|
|
131
|
+
"./agent/contributions.js": {
|
|
132
|
+
"types": "./dist/agent/contributions.d.ts",
|
|
133
|
+
"default": "./dist/agent/contributions.js"
|
|
134
|
+
},
|
|
135
|
+
"./agent/docs-generated.js": {
|
|
136
|
+
"types": "./dist/agent/docs-generated.d.ts",
|
|
137
|
+
"default": "./dist/agent/docs-generated.js"
|
|
138
|
+
},
|
|
139
|
+
"./agent/ops.js": {
|
|
140
|
+
"types": "./dist/agent/ops.d.ts",
|
|
141
|
+
"default": "./dist/agent/ops.js"
|
|
142
|
+
},
|
|
143
|
+
"./agent/provider-events.js": {
|
|
144
|
+
"types": "./dist/agent/provider-events.d.ts",
|
|
145
|
+
"default": "./dist/agent/provider-events.js"
|
|
146
|
+
},
|
|
147
|
+
"./agent/register.js": {
|
|
148
|
+
"types": "./dist/agent/register.d.ts",
|
|
149
|
+
"default": "./dist/agent/register.js"
|
|
150
|
+
},
|
|
151
|
+
"./agent/surface-parity.js": {
|
|
152
|
+
"types": "./dist/agent/surface-parity.d.ts",
|
|
153
|
+
"default": "./dist/agent/surface-parity.js"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"scripts": {
|
|
157
|
+
"build": "tsc -p tsconfig.build.json",
|
|
158
|
+
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
159
|
+
"test": "npm run test:chain",
|
|
160
|
+
"test:chain": "npm run test:slack-e2e && npm run test:slack-context && npm run test:slack-wake-backscroll && npm run test:slack-identity && npm run test:slack-spend-gate && npm run test:slack-wake-mapping && npm run test:slack-tenant-fence && npm run test:slack-wake-drop-hold && npm run test:slack-engagement && npm run test:slack-grant-card &&npm run test:slack-supervisor-reply && npm run test:slack-replier-label && npm run test:slack-normalized-wake && npm run test:slack-wake-trust && npm run test:slack-nonmember-author && npm run test:slack-contextline-trust && npm run test:slack-dm-seat && npm run test:slack-dm-divert && npm run test:slack-shortcut && npm run test:slack-enterprise-rung && npm run test:slack-attachments && npm run test:slack-commands && npm run test:slack-reaction-ingest && npm run test:slack-chat-audit && npm run test:slack-scope-audit && npm run test:slack-app-manifest && npm run test:slack-workspace-roster && npm run test:slack-webhook-verifier && npm run test:slack-input-response && npm run test:slack-approval-card && npm run test:slack-mrkdwn && npm run test:slack-native-wake-heal && npm run test:slack-rate-limit && npm run test:slack-web-api-seam",
|
|
161
|
+
"test:slack-webhook-verifier": "NODE_NO_WARNINGS=1 tsx scripts/slack-webhook-verifier-test.ts",
|
|
162
|
+
"test:slack-workspace-roster": "NODE_NO_WARNINGS=1 tsx scripts/slack-workspace-roster-test.ts",
|
|
163
|
+
"test:slack-scope-audit": "NODE_NO_WARNINGS=1 tsx scripts/slack-scope-audit-test.ts",
|
|
164
|
+
"test:slack-app-manifest": "NODE_NO_WARNINGS=1 tsx scripts/slack-app-manifest-test.ts",
|
|
165
|
+
"test:slack-commands": "NODE_NO_WARNINGS=1 tsx scripts/slack-commands-test.ts",
|
|
166
|
+
"test:slack-reaction-ingest": "NODE_NO_WARNINGS=1 tsx scripts/slack-reaction-ingest-test.ts",
|
|
167
|
+
"test:slack-chat-audit": "NODE_NO_WARNINGS=1 tsx scripts/slack-chat-audit-test.ts",
|
|
168
|
+
"test:slack-e2e": "NODE_NO_WARNINGS=1 tsx scripts/slack-e2e-test.ts",
|
|
169
|
+
"test:slack-context": "NODE_NO_WARNINGS=1 tsx scripts/slack-context-test.ts",
|
|
170
|
+
"test:slack-wake-backscroll": "NODE_NO_WARNINGS=1 tsx scripts/slack-wake-backscroll-test.ts",
|
|
171
|
+
"test:slack-identity": "NODE_NO_WARNINGS=1 tsx scripts/slack-identity-test.ts",
|
|
172
|
+
"test:slack-spend-gate": "NODE_NO_WARNINGS=1 tsx scripts/slack-spend-gate-test.ts",
|
|
173
|
+
"test:slack-wake-mapping": "NODE_NO_WARNINGS=1 tsx scripts/slack-wake-mapping-test.ts",
|
|
174
|
+
"test:slack-tenant-fence": "NODE_NO_WARNINGS=1 tsx scripts/slack-tenant-fence-test.ts",
|
|
175
|
+
"test:slack-engagement": "NODE_NO_WARNINGS=1 tsx scripts/slack-engagement-test.ts",
|
|
176
|
+
"test:slack-grant-card": "NODE_NO_WARNINGS=1 tsx scripts/slack-grant-card-test.ts",
|
|
177
|
+
"test:slack-supervisor-reply": "NODE_NO_WARNINGS=1 tsx scripts/slack-supervisor-reply-test.ts",
|
|
178
|
+
"test:slack-replier-label": "NODE_NO_WARNINGS=1 tsx scripts/slack-replier-label-test.ts",
|
|
179
|
+
"test:slack-normalized-wake": "NODE_NO_WARNINGS=1 tsx scripts/slack-normalized-wake-test.ts",
|
|
180
|
+
"test:slack-nonmember-author": "NODE_NO_WARNINGS=1 tsx scripts/slack-nonmember-author-test.ts",
|
|
181
|
+
"test:slack-contextline-trust": "NODE_NO_WARNINGS=1 tsx scripts/slack-contextline-trust-test.ts",
|
|
182
|
+
"test:slack-wake-trust": "NODE_NO_WARNINGS=1 tsx scripts/slack-wake-trust-test.ts",
|
|
183
|
+
"test:slack-dm-seat": "NODE_NO_WARNINGS=1 tsx scripts/slack-dm-seat-test.ts",
|
|
184
|
+
"test:slack-dm-divert": "NODE_NO_WARNINGS=1 tsx scripts/slack-dm-divert-test.ts",
|
|
185
|
+
"test:slack-shortcut": "NODE_NO_WARNINGS=1 tsx scripts/slack-shortcut-test.ts",
|
|
186
|
+
"test:slack-enterprise-rung": "NODE_NO_WARNINGS=1 tsx scripts/slack-enterprise-rung-test.ts",
|
|
187
|
+
"test:slack-native-wake-heal": "NODE_NO_WARNINGS=1 tsx scripts/slack-native-wake-heal-test.ts",
|
|
188
|
+
"test:slack-attachments": "NODE_NO_WARNINGS=1 tsx scripts/slack-attachments-test.ts",
|
|
189
|
+
"test:slack-input-response": "NODE_NO_WARNINGS=1 tsx scripts/slack-input-response-test.ts",
|
|
190
|
+
"test:slack-approval-card": "NODE_NO_WARNINGS=1 tsx scripts/slack-approval-card-test.ts",
|
|
191
|
+
"test:slack-mrkdwn": "NODE_NO_WARNINGS=1 tsx scripts/slack-mrkdwn-test.ts",
|
|
192
|
+
"test:slack-rate-limit": "NODE_NO_WARNINGS=1 tsx scripts/slack-rate-limit-test.ts",
|
|
193
|
+
"test:slack-web-api-seam": "NODE_NO_WARNINGS=1 tsx scripts/slack-web-api-seam-test.ts",
|
|
194
|
+
"test:slack-wake-drop-hold": "NODE_NO_WARNINGS=1 tsx scripts/slack-wake-drop-hold-test.ts"
|
|
195
|
+
},
|
|
196
|
+
"dependencies": {
|
|
197
|
+
"@open-everywhere/core": "0.1.0",
|
|
198
|
+
"undici": "^7.28.0",
|
|
199
|
+
"zod": "4.5.4"
|
|
200
|
+
},
|
|
201
|
+
"peerDependencies": {
|
|
202
|
+
"eve": "0.54.3"
|
|
203
|
+
},
|
|
204
|
+
"devDependencies": {
|
|
205
|
+
"@types/node": "latest",
|
|
206
|
+
"tsx": "latest",
|
|
207
|
+
"typescript": "latest"
|
|
208
|
+
}
|
|
209
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
// PUBLISH BUILD (OPE-406). See packages/core/tsconfig.build.json for the full rationale: the
|
|
3
|
+
// sibling tsconfig.json stays noEmit (it is the typecheck gate and covers scripts/** too); this
|
|
4
|
+
// config emits ONLY the published surface (agent/**) into dist/, because a registry install
|
|
5
|
+
// cannot execute raw TypeScript and "eve build" evaluates the authored agent modules.
|
|
6
|
+
"extends": "./tsconfig.json",
|
|
7
|
+
"compilerOptions": {
|
|
8
|
+
"noEmit": false,
|
|
9
|
+
// Incremental: these run from every pre-hook (pretypecheck/pretest/prebuild), so a no-op
|
|
10
|
+
// rebuild has to be near-free or the gate chain pays a full tsc on every invocation.
|
|
11
|
+
"incremental": true,
|
|
12
|
+
// OUTSIDE outDir on purpose: a tsbuildinfo left in dist/ gets swept up by the files
|
|
13
|
+
// allowlist and PUBLISHED (caught by the tarball listing, 2026-08-12).
|
|
14
|
+
"tsBuildInfoFile": "./.tsbuildinfo",
|
|
15
|
+
"declaration": true,
|
|
16
|
+
"declarationMap": true,
|
|
17
|
+
"sourceMap": true,
|
|
18
|
+
"outDir": "dist",
|
|
19
|
+
"rootDir": "."
|
|
20
|
+
},
|
|
21
|
+
"include": ["agent/**/*.ts"]
|
|
22
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2023",
|
|
4
|
+
"module": "NodeNext",
|
|
5
|
+
"moduleResolution": "NodeNext",
|
|
6
|
+
"lib": ["ES2023"],
|
|
7
|
+
"strict": true,
|
|
8
|
+
"esModuleInterop": true,
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
"noEmit": true,
|
|
11
|
+
"resolveJsonModule": true,
|
|
12
|
+
"types": ["node"]
|
|
13
|
+
},
|
|
14
|
+
"include": ["agent/**/*.ts", "scripts/**/*.ts"]
|
|
15
|
+
}
|