@zhin.js/adapter-wecom 0.0.1 → 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.
- package/CHANGELOG.md +716 -0
- package/{skills/wecom/PERMITS.md → PERMITS.md} +1 -1
- package/README.md +83 -215
- package/adapters/wecom/index.js +34 -0
- package/adapters/wecom/index.ts +39 -0
- package/agents/wecom/agent.json +20 -0
- package/agents/wecom/boundaries.md +3 -0
- package/agents/wecom/conventions.md +3 -0
- package/{skills → agents/wecom/skills}/wecom/SKILL.md +4 -4
- package/agents/wecom/skills/wecom/tools/get_dept_users/index.js +16 -0
- package/agents/wecom/skills/wecom/tools/get_dept_users/index.ts +16 -0
- package/agents/wecom/skills/wecom/tools/get_user/index.js +15 -0
- package/agents/wecom/skills/wecom/tools/get_user/index.ts +15 -0
- package/agents/wecom/skills/wecom/tools/list_departments/index.js +16 -0
- package/agents/wecom/skills/wecom/tools/list_departments/index.ts +16 -0
- package/agents/wecom/skills/wecom/tools/send_text/index.js +17 -0
- package/agents/wecom/skills/wecom/tools/send_text/index.ts +17 -0
- package/agents/wecom/system.md +3 -0
- package/commands/wecom/endpoint/add/[id]/index.js +3 -0
- package/commands/wecom/endpoint/add/[id]/index.ts +3 -0
- package/commands/wecom/endpoint/definition.js +20 -0
- package/commands/wecom/endpoint/definition.ts +20 -0
- package/commands/wecom/endpoint/list/index.js +3 -0
- package/commands/wecom/endpoint/list/index.ts +3 -0
- package/commands/wecom/endpoint/remove/[id]/index.js +3 -0
- package/commands/wecom/endpoint/remove/[id]/index.ts +3 -0
- package/lib/client.d.ts +12 -0
- package/lib/client.js +2 -0
- package/lib/endpoint.d.ts +55 -37
- package/lib/endpoint.js +247 -516
- package/lib/index.d.ts +6 -15
- package/lib/index.js +6 -115
- package/lib/media-upload.d.ts +23 -0
- package/lib/media-upload.js +58 -0
- package/lib/platform-permit.d.ts +2 -4
- package/lib/platform-permit.js +5 -11
- package/lib/protocol.d.ts +98 -0
- package/lib/protocol.js +267 -0
- package/lib/side-event-dispatch.d.ts +4 -0
- package/lib/side-event-dispatch.js +63 -0
- package/lib/webhook.d.ts +14 -0
- package/lib/webhook.js +86 -0
- package/lib/wecom-runtime-state.d.ts +1 -0
- package/lib/wecom-runtime-state.js +6 -0
- package/package.json +77 -17
- package/plugin.js +19 -0
- package/schema.json +106 -0
- package/src/client.ts +16 -0
- package/src/endpoint.ts +311 -559
- package/src/index.ts +52 -131
- package/src/media-upload.ts +79 -0
- package/src/platform-permit.ts +6 -11
- package/src/protocol.ts +377 -0
- package/src/side-event-dispatch.ts +70 -0
- package/src/webhook.ts +130 -0
- package/src/wecom-runtime-state.ts +7 -0
- package/lib/adapter.d.ts +0 -15
- package/lib/adapter.d.ts.map +0 -1
- package/lib/adapter.js +0 -20
- package/lib/adapter.js.map +0 -1
- package/lib/endpoint.d.ts.map +0 -1
- package/lib/endpoint.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/platform-permit.d.ts.map +0 -1
- package/lib/platform-permit.js.map +0 -1
- package/lib/types.d.ts +0 -48
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js +0 -5
- package/lib/types.js.map +0 -1
- package/plugin.yml +0 -3
- package/src/adapter.ts +0 -26
- package/src/types.ts +0 -51
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `wecom endpoint` 命令族:由 @zhin.js/adapter 的 createEndpointCommands 套件生成。
|
|
3
|
+
* commands/wecom/endpoint/ 下的 list / add / remove 直接默认导出这三项。
|
|
4
|
+
*/
|
|
5
|
+
import { createEndpointCommands } from 'zhin.js/adapter';
|
|
6
|
+
import { defineCommand } from 'zhin.js/command';
|
|
7
|
+
import { wecomRuntimeStateToken } from '../../../src/wecom-runtime-state.js';
|
|
8
|
+
|
|
9
|
+
export const wecomEndpointCommands = createEndpointCommands({
|
|
10
|
+
adapterKey: 'wecom',
|
|
11
|
+
adapterDisplayName: 'WeCom',
|
|
12
|
+
fields: [
|
|
13
|
+
{ key: 'corpId', required: true, env: true, description: '企业 corpId' },
|
|
14
|
+
{ key: 'agentSecret', required: true, env: true, description: '应用 secret' },
|
|
15
|
+
{ key: 'token', required: true, env: true, description: '回调 token' },
|
|
16
|
+
{ key: 'encodingAESKey', required: true, env: true, description: '回调加解密 key' },
|
|
17
|
+
],
|
|
18
|
+
running: (use) => use(wecomRuntimeStateToken).endpoints.values(),
|
|
19
|
+
describeEntry: (entry) => `corpId: ${String(entry.corpId)}`,
|
|
20
|
+
}, defineCommand);
|
package/lib/client.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { WecomClient } from './endpoint.js';
|
|
2
|
+
import type { WecomMessage } from './protocol.js';
|
|
3
|
+
export type WecomClientEventMap = Record<string, WecomMessage>;
|
|
4
|
+
declare module '@zhin.js/feature-kit' {
|
|
5
|
+
interface AdapterClientRegistry {
|
|
6
|
+
readonly wecom: {
|
|
7
|
+
readonly client: WecomClient;
|
|
8
|
+
readonly events: WecomClientEventMap;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export declare const wecomClient: import("@zhin.js/adapter").EndpointClientToken<WecomClient, WecomClientEventMap>;
|
package/lib/client.js
ADDED
package/lib/endpoint.d.ts
CHANGED
|
@@ -1,43 +1,61 @@
|
|
|
1
|
+
import { Endpoint } from 'zhin.js/adapter';
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
+
* WecomEndpoint — lifecycle, outbound send, inbound admit, OpenAPI helpers for agent tools.
|
|
3
4
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import type {
|
|
7
|
-
import type
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
private decryptMessage;
|
|
27
|
-
private parseXmlMessage;
|
|
28
|
-
private handleMessage;
|
|
29
|
-
private ensureAccessToken;
|
|
30
|
-
private refreshAccessToken;
|
|
31
|
-
$formatMessage(msg: WecomMessage): Message<WecomMessage>;
|
|
32
|
-
private parseMessageContent;
|
|
33
|
-
$sendMessage(options: SendOptions): Promise<string>;
|
|
34
|
-
$recallMessage(_id: string): Promise<void>;
|
|
35
|
-
private formatSendContent;
|
|
36
|
-
$connect(): Promise<void>;
|
|
37
|
-
$disconnect(): Promise<void>;
|
|
38
|
-
getUserInfo(userId: string): Promise<WecomApiResponse | null>;
|
|
5
|
+
import { type EndpointControl, type EndpointSendRequest } from 'zhin.js/adapter';
|
|
6
|
+
import type { HttpHost } from '@zhin.js/host-http';
|
|
7
|
+
import type { CapabilityId } from 'zhin.js';
|
|
8
|
+
import { type ResolvedWecomConfig, type WecomMessage } from './protocol.js';
|
|
9
|
+
export type WecomFetch = (url: string, init?: {
|
|
10
|
+
readonly method?: string;
|
|
11
|
+
readonly headers?: Record<string, string>;
|
|
12
|
+
readonly body?: string | FormData;
|
|
13
|
+
}) => Promise<{
|
|
14
|
+
readonly ok: boolean;
|
|
15
|
+
readonly status: number;
|
|
16
|
+
text(): Promise<string>;
|
|
17
|
+
json(): Promise<unknown>;
|
|
18
|
+
}>;
|
|
19
|
+
export interface WecomEndpointOptions {
|
|
20
|
+
readonly id: CapabilityId;
|
|
21
|
+
readonly http: HttpHost;
|
|
22
|
+
readonly config: ResolvedWecomConfig;
|
|
23
|
+
readonly fetch?: WecomFetch;
|
|
24
|
+
}
|
|
25
|
+
export interface WecomClientApi {
|
|
26
|
+
getUserInfo(userId: string): Promise<unknown>;
|
|
39
27
|
getDepartmentUsers(deptId: number): Promise<unknown[]>;
|
|
40
28
|
getDepartmentList(deptId?: number): Promise<unknown[]>;
|
|
41
29
|
sendTextMessage(userId: string, content: string): Promise<boolean>;
|
|
42
30
|
}
|
|
43
|
-
|
|
31
|
+
/** WeCom API surface exposed to plugin events without Endpoint lifecycle methods. */
|
|
32
|
+
export declare class WecomClient implements WecomClientApi {
|
|
33
|
+
readonly api: WecomClientApi;
|
|
34
|
+
constructor(api: WecomClientApi);
|
|
35
|
+
getUserInfo: (userId: string) => Promise<unknown>;
|
|
36
|
+
getDepartmentUsers: (deptId: number) => Promise<unknown[]>;
|
|
37
|
+
getDepartmentList: (deptId?: number) => Promise<unknown[]>;
|
|
38
|
+
sendTextMessage: (userId: string, content: string) => Promise<boolean>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 企业微信服务端 API 无 bot 群列表/群成员列表接口(客户群接口属「客户联系」
|
|
42
|
+
* 独立授权域,非 bot 社交面),好友/频道概念亦不存在;
|
|
43
|
+
* 因此本 endpoint 不暴露 EndpointManagement(Console 社交面 RPC 对该平台保持未接线)。
|
|
44
|
+
*/
|
|
45
|
+
export declare class WecomEndpoint extends Endpoint<WecomClient> {
|
|
46
|
+
#private;
|
|
47
|
+
readonly client: WecomClient;
|
|
48
|
+
readonly control: EndpointControl;
|
|
49
|
+
constructor(options: WecomEndpointOptions);
|
|
50
|
+
/** Used by webhook handler. */
|
|
51
|
+
get isOpen(): boolean;
|
|
52
|
+
get config(): ResolvedWecomConfig;
|
|
53
|
+
start(): Promise<void>;
|
|
54
|
+
open(): void;
|
|
55
|
+
close(): void;
|
|
56
|
+
stop(): Promise<void>;
|
|
57
|
+
send({ conversation, payload }: EndpointSendRequest): Promise<string>;
|
|
58
|
+
recallMessage(messageId: string): Promise<void>;
|
|
59
|
+
/** Test / internal: admit a parsed message when open (non-webhook path). */
|
|
60
|
+
admit(msg: WecomMessage): void;
|
|
61
|
+
}
|