@zhin.js/adapter-dingtalk 1.0.81 → 1.1.2

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 (77) hide show
  1. package/CHANGELOG.md +709 -3
  2. package/PERMITS.md +19 -0
  3. package/README.md +67 -333
  4. package/adapters/dingtalk/index.js +33 -0
  5. package/adapters/dingtalk/index.ts +38 -0
  6. package/agents/dingtalk/agent.json +20 -0
  7. package/agents/dingtalk/boundaries.md +3 -0
  8. package/agents/dingtalk/conventions.md +3 -0
  9. package/agents/dingtalk/skills/dingtalk/SKILL.md +26 -0
  10. package/agents/dingtalk/skills/dingtalk/tools/add_chat_members/index.js +19 -0
  11. package/agents/dingtalk/skills/dingtalk/tools/add_chat_members/index.ts +20 -0
  12. package/agents/dingtalk/skills/dingtalk/tools/create_chat/index.js +20 -0
  13. package/agents/dingtalk/skills/dingtalk/tools/create_chat/index.ts +21 -0
  14. package/agents/dingtalk/skills/dingtalk/tools/dept_info/index.js +15 -0
  15. package/agents/dingtalk/skills/dingtalk/tools/dept_info/index.ts +15 -0
  16. package/agents/dingtalk/skills/dingtalk/tools/get_dept_users/index.js +16 -0
  17. package/agents/dingtalk/skills/dingtalk/tools/get_dept_users/index.ts +16 -0
  18. package/agents/dingtalk/skills/dingtalk/tools/get_user/index.js +15 -0
  19. package/agents/dingtalk/skills/dingtalk/tools/get_user/index.ts +15 -0
  20. package/agents/dingtalk/skills/dingtalk/tools/list_departments/index.js +16 -0
  21. package/agents/dingtalk/skills/dingtalk/tools/list_departments/index.ts +16 -0
  22. package/agents/dingtalk/skills/dingtalk/tools/send_work_notice/index.js +18 -0
  23. package/agents/dingtalk/skills/dingtalk/tools/send_work_notice/index.ts +18 -0
  24. package/agents/dingtalk/skills/dingtalk/tools/update_chat/index.js +29 -0
  25. package/agents/dingtalk/skills/dingtalk/tools/update_chat/index.ts +25 -0
  26. package/agents/dingtalk/system.md +3 -0
  27. package/commands/dingtalk/endpoint/add/[id]/index.js +3 -0
  28. package/commands/dingtalk/endpoint/add/[id]/index.ts +3 -0
  29. package/commands/dingtalk/endpoint/definition.js +19 -0
  30. package/commands/dingtalk/endpoint/definition.ts +19 -0
  31. package/commands/dingtalk/endpoint/list/index.js +3 -0
  32. package/commands/dingtalk/endpoint/list/index.ts +3 -0
  33. package/commands/dingtalk/endpoint/remove/[id]/index.js +3 -0
  34. package/commands/dingtalk/endpoint/remove/[id]/index.ts +3 -0
  35. package/lib/client.d.ts +12 -0
  36. package/lib/client.js +2 -0
  37. package/lib/dingtalk-runtime-state.d.ts +1 -0
  38. package/lib/dingtalk-runtime-state.js +6 -0
  39. package/lib/endpoint.d.ts +72 -0
  40. package/lib/endpoint.js +353 -0
  41. package/lib/index.d.ts +5 -15
  42. package/lib/index.js +5 -214
  43. package/lib/platform-permit.d.ts +14 -0
  44. package/lib/platform-permit.js +33 -0
  45. package/lib/protocol.d.ts +130 -0
  46. package/lib/protocol.js +264 -0
  47. package/lib/webhook.d.ts +13 -0
  48. package/lib/webhook.js +47 -0
  49. package/package.json +76 -19
  50. package/plugin.js +19 -0
  51. package/schema.json +97 -0
  52. package/src/client.ts +16 -0
  53. package/src/dingtalk-runtime-state.ts +7 -0
  54. package/src/endpoint.ts +439 -0
  55. package/src/index.ts +44 -228
  56. package/src/platform-permit.ts +48 -0
  57. package/src/protocol.ts +377 -0
  58. package/src/webhook.ts +75 -0
  59. package/lib/adapter.d.ts +0 -16
  60. package/lib/adapter.d.ts.map +0 -1
  61. package/lib/adapter.js +0 -37
  62. package/lib/adapter.js.map +0 -1
  63. package/lib/bot.d.ts +0 -46
  64. package/lib/bot.d.ts.map +0 -1
  65. package/lib/bot.js +0 -539
  66. package/lib/bot.js.map +0 -1
  67. package/lib/index.d.ts.map +0 -1
  68. package/lib/index.js.map +0 -1
  69. package/lib/types.d.ts +0 -58
  70. package/lib/types.d.ts.map +0 -1
  71. package/lib/types.js +0 -5
  72. package/lib/types.js.map +0 -1
  73. package/plugin.yml +0 -3
  74. package/skills/dingtalk/SKILL.md +0 -91
  75. package/src/adapter.ts +0 -44
  76. package/src/bot.ts +0 -590
  77. package/src/types.ts +0 -56
@@ -1,91 +0,0 @@
1
- ---
2
- name: dingtalk
3
- platforms:
4
- - dingtalk
5
- description: >-
6
- 钉钉平台管理能力。当用户在钉钉中请求群管理(踢人、改群名、查群信息)、
7
- 组织架构查询(部门/用户查询)、发送工作通知、创建或管理群聊时使用。
8
- 即使用户没有提到钉钉,只要上下文是钉钉/DingTalk 场景且涉及群管理、
9
- 组织架构或工作通知,就应触发。仅有昵称时先查部门用户列表获取 user_id。
10
- keywords:
11
- - dingtalk
12
- - 钉钉
13
- - adapter:dingtalk
14
- - 群管理
15
- - 部门
16
- - 工作通知
17
- - 组织架构
18
- - 企业
19
- - list_members
20
- tags:
21
- - group
22
- - management
23
- - im
24
- - enterprise
25
- tools:
26
- - dingtalk_get_user
27
- - dingtalk_get_dept_users
28
- - dingtalk_list_departments
29
- - dingtalk_send_work_notice
30
- - dingtalk_create_chat
31
- - dingtalk_add_chat_members
32
- - dingtalk_dept_info
33
- - dingtalk_update_chat
34
- - dingtalk_kick_member
35
- - dingtalk_set_group_name
36
- - dingtalk_get_group_info
37
- ---
38
-
39
- # 钉钉群聊与组织管理技能
40
-
41
- 钉钉是企业 IM 平台,特有组织架构(部门树)和工作通知能力,区别于个人社交类 IM。
42
-
43
- ## 核心原则
44
-
45
- ### 组织架构是核心
46
-
47
- 钉钉的用户隶属于部门树,很多操作需要从组织架构出发:
48
- ```
49
- dingtalk_list_departments → 获取部门列表(根部门 ID=1)
50
- dingtalk_get_dept_users(dept_id) → 获取部门下的用户列表
51
- dingtalk_get_user(user_id) → 获取用户详情
52
- ```
53
-
54
- ### 工作通知 ≠ 群消息
55
-
56
- `dingtalk_send_work_notice` 是直接发给个人的企业通知,出现在钉钉的「工作通知」入口,不需要群聊。用户说「通知一下张三」,如果是正式的企业通知,用 `send_work_notice`;如果只是聊天消息,用普通消息发送。
57
-
58
- ## 工具分类
59
-
60
- ### 群聊管理
61
-
62
- | 工具 | 用途 | 说明 |
63
- |------|------|------|
64
- | `dingtalk_kick_member` | 踢出成员 | — |
65
- | `dingtalk_set_group_name` | 改群名 | — |
66
- | `dingtalk_get_group_info` | 群信息 | — |
67
- | `dingtalk_create_chat` | 创建群聊 | 需群主 userId + 至少一个成员 |
68
- | `dingtalk_add_chat_members` | 添加成员 | — |
69
- | `dingtalk_update_chat` | 更新群设置 | 改名、换群主、增减成员 |
70
-
71
- ### 组织架构
72
-
73
- | 工具 | 用途 | 说明 |
74
- |------|------|------|
75
- | `dingtalk_list_departments` | 部门列表 | 默认从根部门 ID=1 开始 |
76
- | `dingtalk_dept_info` | 部门详情 | — |
77
- | `dingtalk_get_dept_users` | 部门用户列表 | — |
78
- | `dingtalk_get_user` | 用户详情 | — |
79
-
80
- ### 通知
81
-
82
- | 工具 | 用途 | 说明 |
83
- |------|------|------|
84
- | `dingtalk_send_work_notice` | 工作通知 | 发给指定用户列表,不需要群 |
85
-
86
- ## 易错点
87
-
88
- 1. **部门查询从根部门 ID=1 开始**。不知道部门 ID 时先 `list_departments` 获取整棵部门树。
89
- 2. **群聊创建需要群主 userId 和至少一个成员**,不能创建空群。
90
- 3. **工作通知是独立于群聊的**,它发到个人的钉钉「工作通知」入口,不要与群消息混淆。
91
- 4. **操作成员需要钉钉 userId**,仅有昵称时先通过 `get_dept_users` 或 `get_group_info` 查找。
package/src/adapter.ts DELETED
@@ -1,44 +0,0 @@
1
- /**
2
- * 钉钉适配器
3
- */
4
- import {
5
- Adapter,
6
- Plugin,
7
- } from "zhin.js";
8
- import { DingTalkBot } from "./bot.js";
9
- import type { DingTalkBotConfig } from "./types.js";
10
-
11
- export class DingTalkAdapter extends Adapter<DingTalkBot> {
12
- #router: any;
13
-
14
- constructor(plugin: Plugin, router: any) {
15
- super(plugin, "dingtalk", []);
16
- this.#router = router;
17
- }
18
-
19
- createBot(config: DingTalkBotConfig): DingTalkBot {
20
- return new DingTalkBot(this, this.#router, config);
21
- }
22
-
23
- async kickMember(botId: string, sceneId: string, userId: string) {
24
- const bot = this.bots.get(botId);
25
- if (!bot) throw new Error(`Bot ${botId} 不存在`);
26
- return bot.updateChat(sceneId, { del_useridlist: [userId] });
27
- }
28
-
29
- async setGroupName(botId: string, sceneId: string, name: string) {
30
- const bot = this.bots.get(botId);
31
- if (!bot) throw new Error(`Bot ${botId} 不存在`);
32
- return bot.updateChat(sceneId, { name });
33
- }
34
-
35
- async getGroupInfo(botId: string, sceneId: string) {
36
- const bot = this.bots.get(botId);
37
- if (!bot) throw new Error(`Bot ${botId} 不存在`);
38
- return bot.getChatInfo(sceneId);
39
- }
40
-
41
- async start(): Promise<void> {
42
- await super.start();
43
- }
44
- }