@zhin.js/adapter-slack 4.0.1 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +77 -160
  3. package/adapters/slack.ts +34 -0
  4. package/{skills/slack/SKILL.md → agent/skills/slack.md} +2 -0
  5. package/agent/tools/add_reaction.ts +26 -0
  6. package/agent/tools/archive_channel.ts +24 -0
  7. package/agent/tools/edit_message.ts +28 -0
  8. package/agent/tools/invite_to_channel.ts +26 -0
  9. package/agent/tools/pin_message.ts +26 -0
  10. package/agent/tools/remove_reaction.ts +26 -0
  11. package/agent/tools/set_purpose.ts +26 -0
  12. package/agent/tools/set_topic.ts +26 -0
  13. package/agent/tools/unarchive.ts +24 -0
  14. package/agent/tools/unpin_message.ts +26 -0
  15. package/agent/tools/user_info.ts +31 -0
  16. package/lib/endpoint.d.ts +133 -94
  17. package/lib/endpoint.js +270 -612
  18. package/lib/index.d.ts +11 -10
  19. package/lib/index.js +11 -252
  20. package/lib/markdown-to-mrkdwn.d.ts +9 -0
  21. package/lib/markdown-to-mrkdwn.js +121 -0
  22. package/lib/mrkdwn-to-markdown.d.ts +4 -0
  23. package/lib/mrkdwn-to-markdown.js +30 -0
  24. package/lib/platform-permit.d.ts +1 -2
  25. package/lib/platform-permit.js +4 -2
  26. package/lib/protocol.d.ts +143 -0
  27. package/lib/protocol.js +225 -0
  28. package/lib/slack-agent-deps.d.ts +28 -0
  29. package/lib/slack-agent-deps.js +30 -0
  30. package/lib/slack-inbound-filter.d.ts +12 -0
  31. package/lib/slack-inbound-filter.js +46 -0
  32. package/lib/slack-message-ref.d.ts +7 -0
  33. package/lib/slack-message-ref.js +17 -0
  34. package/lib/slack-outbound.d.ts +24 -0
  35. package/lib/slack-outbound.js +109 -0
  36. package/lib/slack-reaction.d.ts +1 -0
  37. package/lib/slack-reaction.js +26 -0
  38. package/lib/slack-response-url.d.ts +5 -0
  39. package/lib/slack-response-url.js +16 -0
  40. package/lib/webhook.d.ts +14 -0
  41. package/lib/webhook.js +69 -0
  42. package/package.json +53 -14
  43. package/plugin.ts +13 -0
  44. package/schema.json +38 -0
  45. package/src/endpoint.ts +339 -647
  46. package/src/index.ts +65 -277
  47. package/src/markdown-to-mrkdwn.ts +117 -0
  48. package/src/mrkdwn-to-markdown.ts +29 -0
  49. package/src/platform-permit.ts +1 -2
  50. package/src/protocol.ts +380 -0
  51. package/src/slack-agent-deps.ts +57 -0
  52. package/src/slack-inbound-filter.ts +60 -0
  53. package/src/slack-message-ref.ts +18 -0
  54. package/src/slack-outbound.ts +167 -0
  55. package/src/slack-reaction.ts +23 -0
  56. package/src/slack-response-url.ts +26 -0
  57. package/src/webhook.ts +103 -0
  58. package/lib/adapter.d.ts +0 -19
  59. package/lib/adapter.d.ts.map +0 -1
  60. package/lib/adapter.js +0 -46
  61. package/lib/adapter.js.map +0 -1
  62. package/lib/endpoint.d.ts.map +0 -1
  63. package/lib/endpoint.js.map +0 -1
  64. package/lib/index.d.ts.map +0 -1
  65. package/lib/index.js.map +0 -1
  66. package/lib/platform-permit.d.ts.map +0 -1
  67. package/lib/platform-permit.js.map +0 -1
  68. package/lib/segment-mapper.d.ts +0 -2
  69. package/lib/segment-mapper.d.ts.map +0 -1
  70. package/lib/segment-mapper.js +0 -2
  71. package/lib/segment-mapper.js.map +0 -1
  72. package/lib/types.d.ts +0 -17
  73. package/lib/types.d.ts.map +0 -1
  74. package/lib/types.js +0 -2
  75. package/lib/types.js.map +0 -1
  76. package/plugin.yml +0 -3
  77. package/src/adapter.ts +0 -54
  78. package/src/segment-mapper.ts +0 -1
  79. package/src/types.ts +0 -18
  80. /package/{skills/slack → agent}/PERMITS.md +0 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zhin.js/adapter-slack",
3
- "version": "4.0.1",
4
- "description": "Zhin.js adapter for Slack",
3
+ "version": "4.1.1",
4
+ "description": "Zhin.js Slack adapter for Plugin Runtime (Socket Mode / HTTP Events)",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
7
7
  "types": "./lib/index.d.ts",
@@ -32,24 +32,49 @@
32
32
  "directory": "plugins/adapters/slack"
33
33
  },
34
34
  "dependencies": {
35
- "@slack/bolt": "^4.7.3",
36
- "@slack/web-api": "^7.17.0"
35
+ "@slack/socket-mode": "^2.0.3",
36
+ "@slack/web-api": "^7.17.0",
37
+ "@zhin.js/adapter": "1.0.1",
38
+ "@zhin.js/core": "1.3.5",
39
+ "@zhin.js/host-http": "1.0.1",
40
+ "@zhin.js/logger": "1.0.75",
41
+ "@zhin.js/plugin-runtime": "1.0.1"
42
+ },
43
+ "peerDependencies": {
44
+ "zod": "^4.0.0",
45
+ "@zhin.js/adapter": "1.0.1",
46
+ "@zhin.js/agent": "1.0.4",
47
+ "@zhin.js/core": "1.3.5",
48
+ "@zhin.js/host-http": "1.0.1",
49
+ "@zhin.js/plugin-runtime": "1.0.1",
50
+ "zhin.js": "4.1.3"
51
+ },
52
+ "peerDependenciesMeta": {
53
+ "zhin.js": {
54
+ "optional": true
55
+ },
56
+ "@zhin.js/agent": {
57
+ "optional": true
58
+ },
59
+ "zod": {
60
+ "optional": true
61
+ }
37
62
  },
38
63
  "devDependencies": {
39
64
  "@types/node": "^26.1.0",
40
65
  "typescript": "^6.0.3",
41
- "zhin.js": "4.1.1"
42
- },
43
- "peerDependencies": {
44
- "zhin.js": "4.1.1"
66
+ "vitest": "^4.1.10",
67
+ "zod": "^4.4.3",
68
+ "@zhin.js/agent": "1.0.4",
69
+ "zhin.js": "4.1.3"
45
70
  },
46
71
  "files": [
72
+ "adapters",
73
+ "plugin.ts",
74
+ "schema.json",
47
75
  "src",
48
76
  "lib",
49
- "client",
50
- "dist",
51
- "skills",
52
- "plugin.yml",
77
+ "agent",
53
78
  "README.md",
54
79
  "CHANGELOG.md"
55
80
  ],
@@ -60,9 +85,23 @@
60
85
  "engines": {
61
86
  "node": "^20.19.0 || >=22.12.0"
62
87
  },
88
+ "zhin": {
89
+ "protocol": 1,
90
+ "type": "plugin",
91
+ "entry": "./plugin.ts",
92
+ "engine": "^1.0.0",
93
+ "runtime": "trusted",
94
+ "features": [
95
+ {
96
+ "package": "@zhin.js/adapter",
97
+ "api": "^1.0.0"
98
+ }
99
+ ],
100
+ "plugins": []
101
+ },
63
102
  "scripts": {
64
- "build": "pnpm build:node",
103
+ "build": "tsc",
65
104
  "clean": "rimraf lib",
66
- "build:node": "tsc"
105
+ "test": "NODE_OPTIONS=--experimental-strip-types vitest run --root ../../.. plugins/adapters/slack/tests"
67
106
  }
68
107
  }
package/plugin.ts ADDED
@@ -0,0 +1,13 @@
1
+ import { definePlugin } from '@zhin.js/plugin-runtime';
2
+ import { registerSlackPlatformPermitChecker } from './src/platform-permit.js';
3
+
4
+ export default definePlugin({
5
+ name: 'slack',
6
+ metadata: {
7
+ displayName: 'Slack Adapter',
8
+ },
9
+ setup() {
10
+ // 平台权限门禁:workspace_owner / channel_manager 等(agent 工具 platformPermit)
11
+ return registerSlackPlatformPermitChecker();
12
+ },
13
+ });
package/schema.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "name": {
7
+ "type": "string",
8
+ "default": "slack-bot"
9
+ },
10
+ "token": {
11
+ "type": "string",
12
+ "description": "Bot User OAuth Token (xoxb-...)"
13
+ },
14
+ "signingSecret": {
15
+ "type": "string",
16
+ "description": "Required for HTTP Events API (socketMode: false)"
17
+ },
18
+ "appToken": {
19
+ "type": "string",
20
+ "description": "App-Level Token (xapp-...) for Socket Mode"
21
+ },
22
+ "socketMode": {
23
+ "type": "boolean",
24
+ "default": true,
25
+ "description": "Prefer Socket Mode (default). Set false for HTTP Events via httpHostToken."
26
+ },
27
+ "webhookPath": {
28
+ "type": "string",
29
+ "default": "/slack/events"
30
+ },
31
+ "clientPingTimeout": {
32
+ "type": "number",
33
+ "default": 15000,
34
+ "description": "Socket Mode client ping timeout (ms)"
35
+ }
36
+ },
37
+ "required": ["token"]
38
+ }