@zhin.js/adapter-slack 4.0.1 → 4.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.
Files changed (118) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +207 -98
  3. package/{skills/slack/SKILL.md → agent/skills/slack.md} +2 -0
  4. package/agent/tools/add_reaction.ts +26 -0
  5. package/agent/tools/archive_channel.ts +24 -0
  6. package/agent/tools/edit_message.ts +27 -0
  7. package/agent/tools/invite_to_channel.ts +26 -0
  8. package/agent/tools/pin_message.ts +26 -0
  9. package/agent/tools/remove_reaction.ts +26 -0
  10. package/agent/tools/set_purpose.ts +26 -0
  11. package/agent/tools/set_topic.ts +26 -0
  12. package/agent/tools/unarchive.ts +24 -0
  13. package/agent/tools/unpin_message.ts +26 -0
  14. package/agent/tools/user_info.ts +31 -0
  15. package/lib/agent/tools/add_reaction.js +21 -0
  16. package/lib/agent/tools/add_reaction.js.map +1 -0
  17. package/lib/agent/tools/archive_channel.js +21 -0
  18. package/lib/agent/tools/archive_channel.js.map +1 -0
  19. package/lib/agent/tools/edit_message.js +22 -0
  20. package/lib/agent/tools/edit_message.js.map +1 -0
  21. package/lib/agent/tools/invite_to_channel.js +22 -0
  22. package/lib/agent/tools/invite_to_channel.js.map +1 -0
  23. package/lib/agent/tools/pin_message.js +22 -0
  24. package/lib/agent/tools/pin_message.js.map +1 -0
  25. package/lib/agent/tools/remove_reaction.js +21 -0
  26. package/lib/agent/tools/remove_reaction.js.map +1 -0
  27. package/lib/agent/tools/set_purpose.js +22 -0
  28. package/lib/agent/tools/set_purpose.js.map +1 -0
  29. package/lib/agent/tools/set_topic.js +22 -0
  30. package/lib/agent/tools/set_topic.js.map +1 -0
  31. package/lib/agent/tools/unarchive.js +21 -0
  32. package/lib/agent/tools/unarchive.js.map +1 -0
  33. package/lib/agent/tools/unpin_message.js +22 -0
  34. package/lib/agent/tools/unpin_message.js.map +1 -0
  35. package/lib/agent/tools/user_info.js +28 -0
  36. package/lib/agent/tools/user_info.js.map +1 -0
  37. package/lib/{adapter.js → src/adapter.js} +19 -3
  38. package/lib/src/adapter.js.map +1 -0
  39. package/lib/src/endpoint.js +312 -0
  40. package/lib/src/endpoint.js.map +1 -0
  41. package/lib/src/event-dispatcher.js +233 -0
  42. package/lib/src/event-dispatcher.js.map +1 -0
  43. package/lib/src/index.js +51 -0
  44. package/lib/src/index.js.map +1 -0
  45. package/lib/src/markdown-to-mrkdwn.js +61 -0
  46. package/lib/src/markdown-to-mrkdwn.js.map +1 -0
  47. package/lib/src/mrkdwn-to-markdown.js +31 -0
  48. package/lib/src/mrkdwn-to-markdown.js.map +1 -0
  49. package/lib/{platform-permit.js → src/platform-permit.js} +3 -0
  50. package/lib/src/platform-permit.js.map +1 -0
  51. package/lib/src/segment-mapper.js.map +1 -0
  52. package/lib/src/signing.js +21 -0
  53. package/lib/src/signing.js.map +1 -0
  54. package/lib/src/slack-agent-deps.js +10 -0
  55. package/lib/src/slack-agent-deps.js.map +1 -0
  56. package/lib/src/slack-inbound-filter.js +47 -0
  57. package/lib/src/slack-inbound-filter.js.map +1 -0
  58. package/lib/src/slack-inbound.js +127 -0
  59. package/lib/src/slack-inbound.js.map +1 -0
  60. package/lib/src/slack-message-ref.js +18 -0
  61. package/lib/src/slack-message-ref.js.map +1 -0
  62. package/lib/src/slack-outbound.js +223 -0
  63. package/lib/src/slack-outbound.js.map +1 -0
  64. package/lib/src/slack-reaction.js +27 -0
  65. package/lib/src/slack-reaction.js.map +1 -0
  66. package/lib/src/slack-response-url.js +17 -0
  67. package/lib/src/slack-response-url.js.map +1 -0
  68. package/lib/src/slack-side-events.js +64 -0
  69. package/lib/src/slack-side-events.js.map +1 -0
  70. package/lib/src/transport-http.js +83 -0
  71. package/lib/src/transport-http.js.map +1 -0
  72. package/lib/src/transport-socket.js +68 -0
  73. package/lib/src/transport-socket.js.map +1 -0
  74. package/lib/src/types.js +5 -0
  75. package/lib/src/types.js.map +1 -0
  76. package/package.json +24 -6
  77. package/src/adapter.ts +28 -7
  78. package/src/endpoint.ts +206 -604
  79. package/src/event-dispatcher.ts +255 -0
  80. package/src/index.ts +31 -239
  81. package/src/markdown-to-mrkdwn.ts +58 -0
  82. package/src/mrkdwn-to-markdown.ts +29 -0
  83. package/src/platform-permit.ts +1 -2
  84. package/src/signing.ts +28 -0
  85. package/src/slack-agent-deps.ts +22 -0
  86. package/src/slack-inbound-filter.ts +60 -0
  87. package/src/slack-inbound.ts +140 -0
  88. package/src/slack-message-ref.ts +18 -0
  89. package/src/slack-outbound.ts +269 -0
  90. package/src/slack-reaction.ts +23 -0
  91. package/src/slack-response-url.ts +26 -0
  92. package/src/slack-side-events.ts +74 -0
  93. package/src/transport-http.ts +95 -0
  94. package/src/transport-socket.ts +77 -0
  95. package/src/types.ts +99 -4
  96. package/lib/adapter.d.ts +0 -19
  97. package/lib/adapter.d.ts.map +0 -1
  98. package/lib/adapter.js.map +0 -1
  99. package/lib/endpoint.d.ts +0 -108
  100. package/lib/endpoint.d.ts.map +0 -1
  101. package/lib/endpoint.js +0 -677
  102. package/lib/endpoint.js.map +0 -1
  103. package/lib/index.d.ts +0 -10
  104. package/lib/index.d.ts.map +0 -1
  105. package/lib/index.js +0 -252
  106. package/lib/index.js.map +0 -1
  107. package/lib/platform-permit.d.ts +0 -17
  108. package/lib/platform-permit.d.ts.map +0 -1
  109. package/lib/platform-permit.js.map +0 -1
  110. package/lib/segment-mapper.d.ts +0 -2
  111. package/lib/segment-mapper.d.ts.map +0 -1
  112. package/lib/segment-mapper.js.map +0 -1
  113. package/lib/types.d.ts +0 -17
  114. package/lib/types.d.ts.map +0 -1
  115. package/lib/types.js +0 -2
  116. package/lib/types.js.map +0 -1
  117. /package/{skills/slack → agent}/PERMITS.md +0 -0
  118. /package/lib/{segment-mapper.js → src/segment-mapper.js} +0 -0
@@ -0,0 +1,26 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { platformPermit } from '../../src/platform-permit.js';
4
+ import { getSlackAgentDeps } from '../../src/slack-agent-deps.js';
5
+
6
+ export default defineTool<{
7
+ endpoint_id: string;
8
+ channel_id: string;
9
+ timestamp: string;
10
+ }>({
11
+ description: '取消 Slack 频道中消息的置顶',
12
+ inputSchema: z.object({
13
+ endpoint_id: z.string().describe('Endpoint 名称'),
14
+ channel_id: z.string().describe('频道 ID'),
15
+ timestamp: z.string().describe('消息时间戳'),
16
+ }),
17
+ platforms: ['slack'],
18
+ tags: ['slack'],
19
+ permissions: [platformPermit('channel_manager')],
20
+ async execute({ endpoint_id, channel_id, timestamp }) {
21
+ const { getEndpoint } = getSlackAgentDeps();
22
+ const endpoint = getEndpoint(endpoint_id);
23
+ const success = await endpoint.unpinMessage(channel_id, timestamp);
24
+ return { success, message: success ? '已取消置顶' : '操作失败' };
25
+ },
26
+ });
@@ -0,0 +1,31 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getSlackAgentDeps } from '../../src/slack-agent-deps.js';
4
+
5
+ export default defineTool<{
6
+ endpoint_id: string;
7
+ user_id: string;
8
+ }>({
9
+ description: '查询 Slack 用户详细信息',
10
+ inputSchema: z.object({
11
+ endpoint_id: z.string().describe('Endpoint 名称'),
12
+ user_id: z.string().describe('用户 ID'),
13
+ }),
14
+ platforms: ['slack'],
15
+ tags: ['slack'],
16
+ async execute({ endpoint_id, user_id }) {
17
+ const { getEndpoint } = getSlackAgentDeps();
18
+ const endpoint = getEndpoint(endpoint_id);
19
+ const user = await endpoint.getUserInfo(user_id);
20
+ return {
21
+ id: user.id,
22
+ name: user.name,
23
+ real_name: user.real_name,
24
+ display_name: user.profile?.display_name,
25
+ email: user.profile?.email,
26
+ is_admin: user.is_admin,
27
+ is_bot: user.is_bot,
28
+ status_text: user.profile?.status_text,
29
+ };
30
+ },
31
+ });
@@ -0,0 +1,21 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getSlackAgentDeps } from '../../src/slack-agent-deps.js';
4
+ export default defineTool({
5
+ description: '给 Slack 消息添加表情反应',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ channel: z.string().describe('频道 ID'),
9
+ timestamp: z.string().describe('消息时间戳'),
10
+ emoji: z.string().describe('表情名称(不含冒号)'),
11
+ }),
12
+ platforms: ['slack'],
13
+ tags: ['slack'],
14
+ async execute({ endpoint_id, channel, timestamp, emoji }) {
15
+ const { getEndpoint } = getSlackAgentDeps();
16
+ const endpoint = getEndpoint(endpoint_id);
17
+ const success = await endpoint.addReaction(channel, timestamp, emoji);
18
+ return { success, message: success ? `已添加反应 :${emoji}:` : '操作失败' };
19
+ },
20
+ });
21
+ //# sourceMappingURL=add_reaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add_reaction.js","sourceRoot":"","sources":["../../../agent/tools/add_reaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAe,UAAU,CAKtB;IACD,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACzC,CAAC;IACF,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;QACtD,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACtE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACrE,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { platformPermit } from '../../src/platform-permit.js';
4
+ import { getSlackAgentDeps } from '../../src/slack-agent-deps.js';
5
+ export default defineTool({
6
+ description: '归档 Slack 频道',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ channel: z.string().describe('频道 ID'),
10
+ }),
11
+ platforms: ['slack'],
12
+ tags: ['slack'],
13
+ permissions: [platformPermit('workspace_admin')],
14
+ async execute({ endpoint_id, channel }) {
15
+ const { getEndpoint } = getSlackAgentDeps();
16
+ const endpoint = getEndpoint(endpoint_id);
17
+ const success = await endpoint.archiveChannel(channel);
18
+ return { success, message: success ? '已归档频道' : '操作失败' };
19
+ },
20
+ });
21
+ //# sourceMappingURL=archive_channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive_channel.js","sourceRoot":"","sources":["../../../agent/tools/archive_channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAe,UAAU,CAGtB;IACD,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;KACtC,CAAC;IACF,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,WAAW,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAChD,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE;QACpC,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1D,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getSlackAgentDeps } from '../../src/slack-agent-deps.js';
4
+ export default defineTool({
5
+ description: '编辑 Slack 消息',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ channel: z.string().describe('频道 ID'),
9
+ message_ts: z.string().describe('消息时间戳'),
10
+ text: z.string().describe('新的消息文本'),
11
+ }),
12
+ platforms: ['slack'],
13
+ tags: ['slack'],
14
+ async execute({ endpoint_id, channel, message_ts, text }) {
15
+ const { getAdapter } = getSlackAgentDeps();
16
+ await getAdapter().editMessage(endpoint_id, channel, message_ts, [
17
+ { type: 'text', data: { text } },
18
+ ]);
19
+ return { success: true, message: '消息已编辑' };
20
+ },
21
+ });
22
+ //# sourceMappingURL=edit_message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit_message.js","sourceRoot":"","sources":["../../../agent/tools/edit_message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAe,UAAU,CAKtB;IACD,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;KACpC,CAAC;IACF,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;QACtD,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC3C,MAAM,UAAU,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE;YAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;SACjC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC7C,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { platformPermit } from '../../src/platform-permit.js';
4
+ import { getSlackAgentDeps } from '../../src/slack-agent-deps.js';
5
+ export default defineTool({
6
+ description: '邀请用户加入 Slack 频道',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ channel: z.string().describe('频道 ID'),
10
+ users: z.string().describe('用户 ID 列表(逗号分隔)'),
11
+ }),
12
+ platforms: ['slack'],
13
+ tags: ['slack'],
14
+ permissions: [platformPermit('channel_manager')],
15
+ async execute({ endpoint_id, channel, users }) {
16
+ const { getEndpoint } = getSlackAgentDeps();
17
+ const endpoint = getEndpoint(endpoint_id);
18
+ const success = await endpoint.inviteToChannel(channel, users.split(','));
19
+ return { success, message: success ? '已邀请用户加入频道' : '操作失败' };
20
+ },
21
+ });
22
+ //# sourceMappingURL=invite_to_channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invite_to_channel.js","sourceRoot":"","sources":["../../../agent/tools/invite_to_channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAe,UAAU,CAItB;IACD,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KAC7C,CAAC;IACF,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,WAAW,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAChD,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9D,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { platformPermit } from '../../src/platform-permit.js';
4
+ import { getSlackAgentDeps } from '../../src/slack-agent-deps.js';
5
+ export default defineTool({
6
+ description: '置顶 Slack 消息',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ channel: z.string().describe('频道 ID'),
10
+ timestamp: z.string().describe('消息时间戳'),
11
+ }),
12
+ platforms: ['slack'],
13
+ tags: ['slack'],
14
+ permissions: [platformPermit('channel_manager')],
15
+ async execute({ endpoint_id, channel, timestamp }) {
16
+ const { getEndpoint } = getSlackAgentDeps();
17
+ const endpoint = getEndpoint(endpoint_id);
18
+ const success = await endpoint.pinMessage(channel, timestamp);
19
+ return { success, message: success ? '已置顶消息' : '操作失败' };
20
+ },
21
+ });
22
+ //# sourceMappingURL=pin_message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pin_message.js","sourceRoot":"","sources":["../../../agent/tools/pin_message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAe,UAAU,CAItB;IACD,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;KACxC,CAAC;IACF,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,WAAW,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAChD,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/C,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1D,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getSlackAgentDeps } from '../../src/slack-agent-deps.js';
4
+ export default defineTool({
5
+ description: '移除 Slack 消息上的表情反应',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ channel_id: z.string().describe('频道 ID'),
9
+ timestamp: z.string().describe('消息时间戳'),
10
+ name: z.string().describe('表情名称(如 thumbsup、heart)'),
11
+ }),
12
+ platforms: ['slack'],
13
+ tags: ['slack'],
14
+ async execute({ endpoint_id, channel_id, timestamp, name }) {
15
+ const { getEndpoint } = getSlackAgentDeps();
16
+ const endpoint = getEndpoint(endpoint_id);
17
+ const success = await endpoint.removeReaction(channel_id, timestamp, name);
18
+ return { success, message: success ? `已移除反应 :${name}:` : '操作失败' };
19
+ },
20
+ });
21
+ //# sourceMappingURL=remove_reaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove_reaction.js","sourceRoot":"","sources":["../../../agent/tools/remove_reaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAe,UAAU,CAKtB;IACD,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KACpD,CAAC;IACF,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE;QACxD,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACpE,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { platformPermit } from '../../src/platform-permit.js';
4
+ import { getSlackAgentDeps } from '../../src/slack-agent-deps.js';
5
+ export default defineTool({
6
+ description: '设置 Slack 频道的用途/目的',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ channel_id: z.string().describe('频道 ID'),
10
+ purpose: z.string().describe('频道用途描述'),
11
+ }),
12
+ platforms: ['slack'],
13
+ tags: ['slack'],
14
+ permissions: [platformPermit('channel_manager')],
15
+ async execute({ endpoint_id, channel_id, purpose }) {
16
+ const { getEndpoint } = getSlackAgentDeps();
17
+ const endpoint = getEndpoint(endpoint_id);
18
+ const success = await endpoint.setChannelPurpose(channel_id, purpose);
19
+ return { success, message: success ? '频道用途已更新' : '操作失败' };
20
+ },
21
+ });
22
+ //# sourceMappingURL=set_purpose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set_purpose.js","sourceRoot":"","sources":["../../../agent/tools/set_purpose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAe,UAAU,CAItB;IACD,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;KACvC,CAAC;IACF,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,WAAW,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAChD,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE;QAChD,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACtE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5D,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { platformPermit } from '../../src/platform-permit.js';
4
+ import { getSlackAgentDeps } from '../../src/slack-agent-deps.js';
5
+ export default defineTool({
6
+ description: '设置 Slack 频道话题',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ channel: z.string().describe('频道 ID'),
10
+ topic: z.string().describe('新话题'),
11
+ }),
12
+ platforms: ['slack'],
13
+ tags: ['slack'],
14
+ permissions: [platformPermit('channel_manager')],
15
+ async execute({ endpoint_id, channel, topic }) {
16
+ const { getEndpoint } = getSlackAgentDeps();
17
+ const endpoint = getEndpoint(endpoint_id);
18
+ const success = await endpoint.setChannelTopic(channel, topic);
19
+ return { success, message: success ? '已设置频道话题' : '操作失败' };
20
+ },
21
+ });
22
+ //# sourceMappingURL=set_topic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set_topic.js","sourceRoot":"","sources":["../../../agent/tools/set_topic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAe,UAAU,CAItB;IACD,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;KAClC,CAAC;IACF,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,WAAW,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAChD,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5D,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { platformPermit } from '../../src/platform-permit.js';
4
+ import { getSlackAgentDeps } from '../../src/slack-agent-deps.js';
5
+ export default defineTool({
6
+ description: '恢复已归档的 Slack 频道',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ channel_id: z.string().describe('频道 ID'),
10
+ }),
11
+ platforms: ['slack'],
12
+ tags: ['slack'],
13
+ permissions: [platformPermit('workspace_admin')],
14
+ async execute({ endpoint_id, channel_id }) {
15
+ const { getEndpoint } = getSlackAgentDeps();
16
+ const endpoint = getEndpoint(endpoint_id);
17
+ const success = await endpoint.unarchiveChannel(channel_id);
18
+ return { success, message: success ? '频道已恢复' : '操作失败' };
19
+ },
20
+ });
21
+ //# sourceMappingURL=unarchive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unarchive.js","sourceRoot":"","sources":["../../../agent/tools/unarchive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAe,UAAU,CAGtB;IACD,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;KACzC,CAAC;IACF,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,WAAW,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAChD,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE;QACvC,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC5D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1D,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { platformPermit } from '../../src/platform-permit.js';
4
+ import { getSlackAgentDeps } from '../../src/slack-agent-deps.js';
5
+ export default defineTool({
6
+ description: '取消 Slack 频道中消息的置顶',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ channel_id: z.string().describe('频道 ID'),
10
+ timestamp: z.string().describe('消息时间戳'),
11
+ }),
12
+ platforms: ['slack'],
13
+ tags: ['slack'],
14
+ permissions: [platformPermit('channel_manager')],
15
+ async execute({ endpoint_id, channel_id, timestamp }) {
16
+ const { getEndpoint } = getSlackAgentDeps();
17
+ const endpoint = getEndpoint(endpoint_id);
18
+ const success = await endpoint.unpinMessage(channel_id, timestamp);
19
+ return { success, message: success ? '已取消置顶' : '操作失败' };
20
+ },
21
+ });
22
+ //# sourceMappingURL=unpin_message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unpin_message.js","sourceRoot":"","sources":["../../../agent/tools/unpin_message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAe,UAAU,CAItB;IACD,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;KACxC,CAAC;IACF,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,WAAW,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAChD,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE;QAClD,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1D,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getSlackAgentDeps } from '../../src/slack-agent-deps.js';
4
+ export default defineTool({
5
+ description: '查询 Slack 用户详细信息',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ user_id: z.string().describe('用户 ID'),
9
+ }),
10
+ platforms: ['slack'],
11
+ tags: ['slack'],
12
+ async execute({ endpoint_id, user_id }) {
13
+ const { getEndpoint } = getSlackAgentDeps();
14
+ const endpoint = getEndpoint(endpoint_id);
15
+ const user = await endpoint.getUserInfo(user_id);
16
+ return {
17
+ id: user.id,
18
+ name: user.name,
19
+ real_name: user.real_name,
20
+ display_name: user.profile?.display_name,
21
+ email: user.profile?.email,
22
+ is_admin: user.is_admin,
23
+ is_bot: user.is_bot,
24
+ status_text: user.profile?.status_text,
25
+ };
26
+ },
27
+ });
28
+ //# sourceMappingURL=user_info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user_info.js","sourceRoot":"","sources":["../../../agent/tools/user_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAe,UAAU,CAGtB;IACD,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;KACtC,CAAC;IACF,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE;QACpC,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY;YACxC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW;SACvC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -2,17 +2,33 @@
2
2
  * Slack 适配器
3
3
  */
4
4
  import { Adapter, OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL } from 'zhin.js';
5
- import { SlackEndpoint } from "./endpoint.js";
5
+ import { SlackEndpoint } from './endpoint.js';
6
6
  export class SlackAdapter extends Adapter {
7
7
  static capabilities = ['inbound', 'outbound'];
8
8
  static outboundRichSegmentPolicy = OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL;
9
- static interactivePolicy = 'text';
9
+ static interactivePolicy = 'native';
10
10
  constructor(plugin) {
11
- super(plugin, "slack", []);
11
+ super(plugin, 'slack', []);
12
12
  }
13
13
  createEndpoint(config) {
14
14
  return new SlackEndpoint(this, config);
15
15
  }
16
+ async editMessage(arg1, channel, messageId, content) {
17
+ if (typeof arg1 === 'object') {
18
+ return super.editMessage(arg1);
19
+ }
20
+ const endpoint = this.endpoints.get(arg1);
21
+ if (!endpoint)
22
+ throw new Error(`Endpoint ${arg1} 不存在`);
23
+ await endpoint.$editMessage({
24
+ messageId: messageId,
25
+ context: 'slack',
26
+ endpoint: arg1,
27
+ id: channel,
28
+ type: 'group',
29
+ content: content,
30
+ });
31
+ }
16
32
  // ── ISceneManagement 标准群管方法 ──────────────────────────────────
17
33
  async removeMember(endpointId, sceneId, userId) {
18
34
  const endpoint = this.endpoints.get(endpointId);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAU,oCAAoC,EAA2B,MAAM,SAAS,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,MAAM,OAAO,YAAa,SAAQ,OAAsB;IACtD,MAAM,CAAmB,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;IACzE,MAAM,CAAU,yBAAyB,GAAG,oCAAoC,CAAC;IACjF,MAAM,CAAU,iBAAiB,GAAG,QAAiB,CAAC;IAEtD,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,cAAc,CAAC,MAA2B;QACxC,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAID,KAAK,CAAC,WAAW,CACf,IAAiC,EACjC,OAAgB,EAChB,SAAkB,EAClB,OAAuC;QAEvC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC;QACvD,MAAM,QAAQ,CAAC,YAAY,CAAC;YAC1B,SAAS,EAAE,SAAU;YACrB,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,IAAI;YACd,EAAE,EAAE,OAAQ;YACZ,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,OAAQ;SAClB,CAAC,CAAC;IACL,CAAC;IAED,gEAAgE;IAEhE,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,OAAe,EAAE,MAAc;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,OAAe,EAAE,IAAY;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,OAAe;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,OAAe;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,kEAAkE;IAElE,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC"}