@clowder-ai/connector-wecom-agent 0.0.0-stage → 0.1.0-alpha.7

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 (58) hide show
  1. package/README.en.md +56 -0
  2. package/README.md +24 -2
  3. package/assets/icon.svg +6 -0
  4. package/dist/WeComAgentAdapter.d.ts +149 -0
  5. package/dist/WeComAgentAdapter.d.ts.map +1 -0
  6. package/dist/WeComAgentAdapter.js +525 -0
  7. package/dist/WeComAgentAdapter.js.map +1 -0
  8. package/dist/collect-media.d.ts +12 -0
  9. package/dist/collect-media.d.ts.map +1 -0
  10. package/dist/collect-media.js +27 -0
  11. package/dist/collect-media.js.map +1 -0
  12. package/dist/command-ingress.d.ts +10 -0
  13. package/dist/command-ingress.d.ts.map +1 -0
  14. package/dist/command-ingress.js +13 -0
  15. package/dist/command-ingress.js.map +1 -0
  16. package/dist/inbound-download.d.ts +13 -0
  17. package/dist/inbound-download.d.ts.map +1 -0
  18. package/dist/inbound-download.js +70 -0
  19. package/dist/inbound-download.js.map +1 -0
  20. package/dist/inbound-media-source.d.ts +25 -0
  21. package/dist/inbound-media-source.d.ts.map +1 -0
  22. package/dist/inbound-media-source.js +111 -0
  23. package/dist/inbound-media-source.js.map +1 -0
  24. package/dist/index.d.ts +4 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +2 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/media-notice.d.ts +6 -0
  29. package/dist/media-notice.d.ts.map +1 -0
  30. package/dist/media-notice.js +50 -0
  31. package/dist/media-notice.js.map +1 -0
  32. package/dist/plugin-entrypoint.d.ts +7 -0
  33. package/dist/plugin-entrypoint.d.ts.map +1 -0
  34. package/dist/plugin-entrypoint.js +292 -0
  35. package/dist/plugin-entrypoint.js.map +1 -0
  36. package/dist/reply-sender-map.d.ts +10 -0
  37. package/dist/reply-sender-map.d.ts.map +1 -0
  38. package/dist/reply-sender-map.js +123 -0
  39. package/dist/reply-sender-map.js.map +1 -0
  40. package/dist/rich-block-plaintext.d.ts +5 -0
  41. package/dist/rich-block-plaintext.d.ts.map +1 -0
  42. package/dist/rich-block-plaintext.js +45 -0
  43. package/dist/rich-block-plaintext.js.map +1 -0
  44. package/dist/runtime.d.ts +65 -0
  45. package/dist/runtime.d.ts.map +1 -0
  46. package/dist/runtime.js +84 -0
  47. package/dist/runtime.js.map +1 -0
  48. package/dist/thread-mappings.d.ts +46 -0
  49. package/dist/thread-mappings.d.ts.map +1 -0
  50. package/dist/thread-mappings.js +62 -0
  51. package/dist/thread-mappings.js.map +1 -0
  52. package/dist/types.d.ts +15 -0
  53. package/dist/types.d.ts.map +1 -0
  54. package/dist/types.js +2 -0
  55. package/dist/types.js.map +1 -0
  56. package/npm-shrinkwrap.json +215 -0
  57. package/package.json +55 -4
  58. package/plugin.yaml +83 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-entrypoint.js","sourceRoot":"","sources":["../src/plugin-entrypoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { FeatureContext } from '@clowder-ai/plugin-sdk';
2
+ export interface ReplySender {
3
+ readonly id: string;
4
+ readonly name?: string;
5
+ }
6
+ export declare function createReplySenderMap(context: FeatureContext): {
7
+ record(hostMessageId: string, replySender: ReplySender): Promise<void>;
8
+ resolve(hostMessageId: string | undefined): Promise<ReplySender | undefined>;
9
+ };
10
+ //# sourceMappingURL=reply-sender-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reply-sender-map.d.ts","sourceRoot":"","sources":["../src/reply-sender-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AA0CD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc;0BAkD5B,MAAM,eAAe,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;2BAgB/C,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;EAmBrF"}
@@ -0,0 +1,123 @@
1
+ const KEY_PREFIX = 'reply-sender:';
2
+ const ENTRY_TTL_MS = 24 * 60 * 60 * 1000;
3
+ const SWEEP_EVERY_RECORDS = 50;
4
+ const ENTRY_CAP = 2000;
5
+ function object(value) {
6
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
7
+ }
8
+ function errorName(error) {
9
+ return error instanceof Error ? error.name : 'unknown';
10
+ }
11
+ function parseEntry(value) {
12
+ if (typeof value !== 'string')
13
+ return undefined;
14
+ let parsed;
15
+ try {
16
+ parsed = JSON.parse(value);
17
+ }
18
+ catch {
19
+ return undefined;
20
+ }
21
+ if (!object(parsed) || parsed.version !== 1 || typeof parsed.storedAt !== 'number')
22
+ return undefined;
23
+ const candidate = parsed.sender;
24
+ if (!object(candidate) || typeof candidate.id !== 'string' || candidate.id.length === 0)
25
+ return undefined;
26
+ return {
27
+ version: 1,
28
+ storedAt: parsed.storedAt,
29
+ sender: {
30
+ id: candidate.id,
31
+ ...(typeof candidate.name === 'string' ? { name: candidate.name } : {}),
32
+ },
33
+ };
34
+ }
35
+ export function createReplySenderMap(context) {
36
+ let recordedSinceSweep = 0;
37
+ let sweepInFlight = false;
38
+ const sweep = async () => {
39
+ let listed;
40
+ try {
41
+ listed = await context.storage.list();
42
+ }
43
+ catch (error) {
44
+ context.log('warn', 'Connector reply-sender mapping sweep failed', { errorName: errorName(error) });
45
+ return;
46
+ }
47
+ const now = Date.now();
48
+ const live = [];
49
+ for (const [key, item] of Object.entries(listed)) {
50
+ if (!key.startsWith(KEY_PREFIX))
51
+ continue;
52
+ const entry = parseEntry(item?.value);
53
+ if (entry === undefined || entry.storedAt + ENTRY_TTL_MS < now) {
54
+ await context.storage.delete(key).catch(() => undefined);
55
+ continue;
56
+ }
57
+ live.push({ key, storedAt: entry.storedAt });
58
+ }
59
+ live.sort((a, b) => a.storedAt - b.storedAt);
60
+ let overflow = live.length - (ENTRY_CAP - 1);
61
+ for (let index = 0; overflow > 0 && index < live.length; index += 1, overflow -= 1) {
62
+ await context.storage.delete(live[index].key).catch(() => undefined);
63
+ }
64
+ };
65
+ // Sweep single-flight in the background: recording stays on the inbound
66
+ // hot path and overlapping bursts never stack sweeps. sweep() already
67
+ // swallows and logs its own storage failures. context.log is intentionally
68
+ // NOT used here: log() runs assertActive() and throws
69
+ // FeatureContextRevokedError after stop/revoke, so a sweep racing feature
70
+ // shutdown would turn into an unhandled rejection; console.warn is the
71
+ // reviewer-sanctioned exception that stays callable past revocation.
72
+ const sweepInBackground = () => {
73
+ if (sweepInFlight)
74
+ return;
75
+ sweepInFlight = true;
76
+ void sweep()
77
+ .catch((error) => {
78
+ console.warn('Connector reply-sender mapping sweep failed', { errorName: errorName(error) });
79
+ })
80
+ .finally(() => {
81
+ sweepInFlight = false;
82
+ });
83
+ };
84
+ return {
85
+ async record(hostMessageId, replySender) {
86
+ const now = Date.now();
87
+ try {
88
+ await context.storage.set(`${KEY_PREFIX}${hostMessageId}`, JSON.stringify({ version: 1, sender: replySender, storedAt: now }));
89
+ }
90
+ catch (error) {
91
+ context.log('warn', 'Connector reply-sender mapping record failed', { errorName: errorName(error) });
92
+ return;
93
+ }
94
+ recordedSinceSweep += 1;
95
+ if (recordedSinceSweep < SWEEP_EVERY_RECORDS)
96
+ return;
97
+ recordedSinceSweep = 0;
98
+ sweepInBackground();
99
+ },
100
+ async resolve(hostMessageId) {
101
+ if (hostMessageId === undefined)
102
+ return undefined;
103
+ const key = `${KEY_PREFIX}${hostMessageId}`;
104
+ let stored;
105
+ try {
106
+ stored = await context.storage.get(key);
107
+ }
108
+ catch (error) {
109
+ context.log('warn', 'Connector reply-sender mapping lookup failed', { errorName: errorName(error) });
110
+ return undefined;
111
+ }
112
+ const entry = parseEntry(stored?.value);
113
+ if (entry === undefined)
114
+ return undefined;
115
+ if (entry.storedAt + ENTRY_TTL_MS < Date.now()) {
116
+ await context.storage.delete(key).catch(() => undefined);
117
+ return undefined;
118
+ }
119
+ return entry.sender;
120
+ },
121
+ };
122
+ }
123
+ //# sourceMappingURL=reply-sender-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reply-sender-map.js","sourceRoot":"","sources":["../src/reply-sender-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ type RichBlockLike = Readonly<Record<string, unknown>>;
2
+ export declare function renderRichBlockPlaintext(block: RichBlockLike): string;
3
+ export declare function renderAllRichBlocksPlaintext(blocks: readonly RichBlockLike[]): string;
4
+ export {};
5
+ //# sourceMappingURL=rich-block-plaintext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rich-block-plaintext.d.ts","sourceRoot":"","sources":["../src/rich-block-plaintext.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAuCrE;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAErF"}
@@ -0,0 +1,45 @@
1
+ export function renderRichBlockPlaintext(block) {
2
+ switch (block.kind) {
3
+ case 'card': {
4
+ const parts = [`📋 ${block.title}`];
5
+ if (block.bodyMarkdown)
6
+ parts.push(String(block.bodyMarkdown));
7
+ if (Array.isArray(block.fields) && block.fields.length > 0) {
8
+ parts.push(block.fields
9
+ .map((field) => ` ${field.label}: ${field.value}`)
10
+ .join('\n'));
11
+ }
12
+ return parts.join('\n');
13
+ }
14
+ case 'checklist': {
15
+ const header = block.title ? `☑️ ${block.title}` : '☑️ Checklist';
16
+ const items = Array.isArray(block.items)
17
+ ? block.items
18
+ .map((item) => `${item.checked ? '✅' : '☐'} ${item.text}`)
19
+ .join('\n')
20
+ : '';
21
+ return `${header}\n${items}`;
22
+ }
23
+ case 'diff':
24
+ return `📝 ${block.filePath}\n\`\`\`\n${block.diff}\n\`\`\``;
25
+ case 'audio':
26
+ return block.text ? `🔊 ${block.text}` : `🔊 [Audio: ${block.url}]`;
27
+ case 'media_gallery': {
28
+ const header = block.title ? `🖼️ ${block.title}` : '🖼️ Gallery';
29
+ const items = Array.isArray(block.items)
30
+ ? block.items
31
+ .map((item) => item.caption
32
+ || item.alt
33
+ || item.url)
34
+ .join('\n')
35
+ : '';
36
+ return `${header}\n${items}`;
37
+ }
38
+ default:
39
+ return `[${block.kind}]`;
40
+ }
41
+ }
42
+ export function renderAllRichBlocksPlaintext(blocks) {
43
+ return blocks.map(renderRichBlockPlaintext).join('\n\n');
44
+ }
45
+ //# sourceMappingURL=rich-block-plaintext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rich-block-plaintext.js","sourceRoot":"","sources":["../src/rich-block-plaintext.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,wBAAwB,CAAC,KAAoB;IAC3D,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACpC,IAAI,KAAK,CAAC,YAAY;gBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;qBACpB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAM,KAAiC,CAAC,KAAK,KAAM,KAAiC,CAAC,KAAK,EAAE,CAAC;qBAC5G,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACjB,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;YAClE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;gBACtC,CAAC,CAAC,KAAK,CAAC,KAAK;qBACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAI,IAAgC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAK,IAAgC,CAAC,IAAI,EAAE,CAAC;qBACnH,IAAI,CAAC,IAAI,CAAC;gBACb,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,GAAG,MAAM,KAAK,KAAK,EAAE,CAAC;QAC/B,CAAC;QACD,KAAK,MAAM;YACT,OAAO,MAAM,KAAK,CAAC,QAAQ,aAAa,KAAK,CAAC,IAAI,UAAU,CAAC;QAC/D,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,GAAG,GAAG,CAAC;QACtE,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;YAClE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;gBACtC,CAAC,CAAC,KAAK,CAAC,KAAK;qBACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAE,IAAgC,CAAC,OAAO;uBAClD,IAAgC,CAAC,GAAG;uBACpC,IAAgC,CAAC,GAAG,CAAC;qBAC1C,IAAI,CAAC,IAAI,CAAC;gBACb,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,GAAG,MAAM,KAAK,KAAK,EAAE,CAAC;QAC/B,CAAC;QACD;YACE,OAAO,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAgC;IAC3E,OAAO,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { WeComAgentAdapter, type WeComAgentAdapterOptions } from './WeComAgentAdapter.js';
2
+ import type { ConnectorLogger } from './types.js';
3
+ export interface WeComAgentRuntimeConfig {
4
+ readonly corpId: string;
5
+ readonly agentId: string;
6
+ readonly agentSecret: string;
7
+ readonly callbackToken: string;
8
+ readonly encodingAesKey: string;
9
+ }
10
+ export interface WeComAgentWebhookInput {
11
+ readonly body?: unknown;
12
+ readonly query?: Readonly<Record<string, string>>;
13
+ }
14
+ export type WeComAgentWebhookResult = Readonly<{
15
+ kind: 'challenge';
16
+ response: string;
17
+ }> | Readonly<{
18
+ kind: 'processed';
19
+ messageId: string;
20
+ }> | Readonly<{
21
+ kind: 'skipped';
22
+ reason: string;
23
+ }> | Readonly<{
24
+ kind: 'error';
25
+ status: number;
26
+ message: string;
27
+ }>;
28
+ export interface WeComAgentHostInboundMessage {
29
+ readonly externalConversationId: string;
30
+ readonly externalSenderId: string;
31
+ readonly providerMessageId: string;
32
+ readonly text: string;
33
+ readonly attachments?: readonly Readonly<{
34
+ type: 'image' | 'file' | 'audio';
35
+ platformKey: string;
36
+ fileName?: string;
37
+ }>[];
38
+ }
39
+ export interface WeComAgentRuntimeHost {
40
+ deliver(message: WeComAgentHostInboundMessage): Promise<void>;
41
+ }
42
+ export interface WeComAgentRuntimeAdapter {
43
+ readonly connectorId: string;
44
+ verifyCallback: WeComAgentAdapter['verifyCallback'];
45
+ decryptInbound: WeComAgentAdapter['decryptInbound'];
46
+ parseEvent: WeComAgentAdapter['parseEvent'];
47
+ sendFormattedReply: WeComAgentAdapter['sendFormattedReply'];
48
+ sendMedia: WeComAgentAdapter['sendMedia'];
49
+ sendReply: WeComAgentAdapter['sendReply'];
50
+ }
51
+ export interface WeComAgentConnectorRuntime<Adapter extends WeComAgentRuntimeAdapter = WeComAgentAdapter> {
52
+ readonly outbound: Adapter;
53
+ start(): Promise<void>;
54
+ stop(): Promise<void>;
55
+ handleWebhook(input: WeComAgentWebhookInput): Promise<WeComAgentWebhookResult>;
56
+ }
57
+ export interface WeComAgentConnectorRuntimeOptions<Adapter extends WeComAgentRuntimeAdapter = WeComAgentAdapter> {
58
+ readonly config: WeComAgentRuntimeConfig;
59
+ readonly host: WeComAgentRuntimeHost;
60
+ readonly logger: ConnectorLogger;
61
+ readonly createAdapter?: (logger: ConnectorLogger, config: WeComAgentAdapterOptions) => Adapter;
62
+ }
63
+ export declare function requireWeComAgentWebhookInput(candidate: unknown): WeComAgentWebhookInput;
64
+ export declare function createWeComAgentConnectorRuntime<Adapter extends WeComAgentRuntimeAdapter = WeComAgentAdapter>(options: WeComAgentConnectorRuntimeOptions<Adapter>): WeComAgentConnectorRuntime<Adapter>;
65
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import { WeComAgentAdapter, } from './WeComAgentAdapter.js';
2
+ function required(value, key) {
3
+ const normalized = value.trim();
4
+ if (normalized.length === 0)
5
+ throw new TypeError(`${key} must be a non-empty declared value`);
6
+ return normalized;
7
+ }
8
+ function hostMessage(message) {
9
+ const attachments = message.attachments?.map((attachment) => ({
10
+ type: attachment.type === 'video' ? 'file' : attachment.type,
11
+ platformKey: attachment.mediaId,
12
+ ...(attachment.fileName === undefined ? {} : { fileName: attachment.fileName }),
13
+ }));
14
+ return {
15
+ externalConversationId: message.chatId,
16
+ externalSenderId: message.senderId,
17
+ providerMessageId: message.messageId,
18
+ text: message.text,
19
+ ...(attachments === undefined ? {} : { attachments }),
20
+ };
21
+ }
22
+ export function requireWeComAgentWebhookInput(candidate) {
23
+ if (candidate === null || typeof candidate !== 'object' || Array.isArray(candidate)) {
24
+ throw new TypeError('wecom-agent webhook input must be an object');
25
+ }
26
+ const input = candidate;
27
+ if (input.query !== undefined && (input.query === null || typeof input.query !== 'object' || Array.isArray(input.query)
28
+ || Object.values(input.query).some(value => typeof value !== 'string'))) {
29
+ throw new TypeError('wecom-agent webhook query must contain string values');
30
+ }
31
+ return { body: input.body, ...(input.query === undefined ? {} : { query: input.query }) };
32
+ }
33
+ export function createWeComAgentConnectorRuntime(options) {
34
+ const config = {
35
+ corpId: required(options.config.corpId, 'corpId'),
36
+ agentId: required(options.config.agentId, 'agentId'),
37
+ agentSecret: required(options.config.agentSecret, 'agentSecret'),
38
+ token: required(options.config.callbackToken, 'callbackToken'),
39
+ encodingAesKey: required(options.config.encodingAesKey, 'encodingAesKey'),
40
+ };
41
+ const createAdapter = options.createAdapter ?? ((logger, value) => new WeComAgentAdapter(logger, value));
42
+ const outbound = createAdapter(options.logger, config);
43
+ let stopped = false;
44
+ return {
45
+ outbound,
46
+ async start() {
47
+ if (stopped)
48
+ throw new Error('WeCom Agent connector runtime has been stopped');
49
+ },
50
+ async stop() { stopped = true; },
51
+ async handleWebhook(candidate) {
52
+ if (stopped)
53
+ throw new Error('WeCom Agent connector runtime has been stopped');
54
+ const input = requireWeComAgentWebhookInput(candidate);
55
+ const query = input.query ?? {};
56
+ const signature = query.msg_signature ?? '';
57
+ const timestamp = query.timestamp ?? '';
58
+ const nonce = query.nonce ?? '';
59
+ if (query.echostr !== undefined) {
60
+ const response = outbound.verifyCallback({ msg_signature: signature, timestamp, nonce, echostr: query.echostr });
61
+ return response === null
62
+ ? { kind: 'error', status: 403, message: 'echostr verification failed' }
63
+ : { kind: 'challenge', response };
64
+ }
65
+ const body = typeof input.body === 'string'
66
+ ? input.body
67
+ : input.body === undefined
68
+ ? undefined
69
+ : JSON.stringify(input.body);
70
+ if (body === undefined)
71
+ throw new TypeError('wecom-agent webhook body must be XML text');
72
+ const decrypted = outbound.decryptInbound(body, { msg_signature: signature, timestamp, nonce });
73
+ if (decrypted === null) {
74
+ return { kind: 'error', status: 403, message: 'Signature verification or decryption failed' };
75
+ }
76
+ const parsed = outbound.parseEvent(decrypted);
77
+ if (parsed === null)
78
+ return { kind: 'skipped', reason: 'unsupported_event' };
79
+ await options.host.deliver(hostMessage(parsed));
80
+ return { kind: 'processed', messageId: parsed.messageId };
81
+ },
82
+ };
83
+ }
84
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { FeatureContext } from '@clowder-ai/plugin-sdk';
2
+ type Mapping = {
3
+ readonly key: string;
4
+ readonly threadId: string;
5
+ readonly createdAt: number;
6
+ };
7
+ type Creation = {
8
+ readonly title: string;
9
+ readonly parentThreadId?: string;
10
+ readonly participants?: readonly string[];
11
+ };
12
+ export declare function threadMappings(context: FeatureContext): {
13
+ findByKey: (name: string) => Promise<import("@clowder-ai/plugin-sdk").PluginThreadSummary | null>;
14
+ bind: (name: string, threadId: string) => Promise<boolean | Mapping>;
15
+ unbind: (name: string) => Promise<boolean | Mapping>;
16
+ listBindings: () => Promise<Mapping[]>;
17
+ ensureByKey: (name: string, input: Creation) => Promise<import("@clowder-ai/plugin-sdk").PluginThreadSummary>;
18
+ ensureSystemThread: () => Promise<import("@clowder-ai/plugin-sdk").PluginThreadSummary>;
19
+ get(threadId: string): Promise<import("@clowder-ai/plugin-sdk").PluginThreadSummary | null>;
20
+ list(options?: {
21
+ readonly limit?: number;
22
+ readonly before?: {
23
+ readonly lastActiveAt: number;
24
+ readonly id: string;
25
+ };
26
+ }): Promise<readonly import("@clowder-ai/plugin-sdk").PluginThreadSummary[]>;
27
+ readMessages(threadId: string, options: {
28
+ readonly before?: {
29
+ readonly timestamp: number;
30
+ readonly id: string;
31
+ };
32
+ readonly limit: number;
33
+ }): Promise<readonly import("@clowder-ai/plugin-sdk").PluginThreadMessage[]>;
34
+ getCats(threadId: string): Promise<import("@clowder-ai/plugin-sdk").PluginThreadCats>;
35
+ addParticipants(input: {
36
+ readonly threadId: string;
37
+ readonly catIds: readonly string[];
38
+ }): Promise<import("@clowder-ai/plugin-sdk").PluginThreadSummary>;
39
+ create(input: import("@clowder-ai/plugin-sdk").PluginThreadCreateInput): Promise<import("@clowder-ai/plugin-sdk").PluginThreadSummary>;
40
+ update(threadId: string, patch: {
41
+ readonly title?: string;
42
+ readonly preferredCats?: readonly string[];
43
+ }): Promise<import("@clowder-ai/plugin-sdk").PluginThreadSummary>;
44
+ };
45
+ export {};
46
+ //# sourceMappingURL=thread-mappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-mappings.d.ts","sourceRoot":"","sources":["../src/thread-mappings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,KAAK,OAAO,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/F,KAAK,QAAQ,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AA+CxH,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc;sBA/B1B,MAAM;iBAwBjB,MAAM,YAAY,MAAM;mBACtB,MAAM;;wBAVD,MAAM,SAAS,QAAQ;;;;sBAqB0T,CAAC;uBAAiC,CAAC;;;;;;uBAA8S,CAAC;;;;;;;;;;;;;sBAA2f,CAAC;8BAAwC,CAAC;;EAD/tC"}
@@ -0,0 +1,62 @@
1
+ const contexts = new WeakMap();
2
+ /** Package-owned external-conversation mapping. Host receives ordinary thread calls only. */
3
+ function createMappings(context) {
4
+ const key = 'thread-mappings.v1';
5
+ let tail = Promise.resolve();
6
+ const serialize = (run) => {
7
+ const next = tail.then(run, run);
8
+ tail = next.catch(() => { });
9
+ return next;
10
+ };
11
+ const read = async () => {
12
+ const stored = await context.storage.get(key);
13
+ const rows = stored?.value ?? [];
14
+ if (!Array.isArray(rows) || rows.some(row => !row || typeof row.key !== 'string' || typeof row.threadId !== 'string' || typeof row.createdAt !== 'number'))
15
+ throw new Error('Invalid plugin thread mappings');
16
+ return { stored, rows: rows };
17
+ };
18
+ const find = async (name) => {
19
+ const { rows } = await read();
20
+ const row = rows.find(row => row.key === name);
21
+ return row ? context.threads.get(row.threadId) : null;
22
+ };
23
+ const save = async (name, threadId) => {
24
+ const { stored, rows } = await read();
25
+ const next = rows.filter(row => row.key !== name);
26
+ if (threadId !== null) {
27
+ if (!await context.threads.get(threadId))
28
+ throw new Error('Thread unavailable');
29
+ next.push({ key: name, threadId, createdAt: Date.now() });
30
+ }
31
+ const result = await context.storage.compareAndSet(key, stored?.revision ?? null, next);
32
+ if (!result.applied)
33
+ throw new Error('Plugin thread mappings changed concurrently');
34
+ return threadId === null ? rows.length !== next.length : next.find(row => row.key === name);
35
+ };
36
+ const ensure = (name, input) => serialize(async () => {
37
+ const existing = await find(name);
38
+ if (existing)
39
+ return existing;
40
+ const thread = await context.threads.create(input);
41
+ await save(name, thread.id);
42
+ return thread;
43
+ });
44
+ return {
45
+ ...context.threads,
46
+ findByKey: find,
47
+ bind: (name, threadId) => serialize(() => save(name, threadId)),
48
+ unbind: (name) => serialize(() => save(name, null)),
49
+ listBindings: async () => (await read()).rows,
50
+ ensureByKey: ensure,
51
+ ensureSystemThread: () => ensure('command-audit', { title: '连接器命令记录' }),
52
+ };
53
+ }
54
+ export function threadMappings(context) {
55
+ let value = contexts.get(context);
56
+ if (!value) {
57
+ value = createMappings(context);
58
+ contexts.set(context, value);
59
+ }
60
+ return value;
61
+ }
62
+ //# sourceMappingURL=thread-mappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-mappings.js","sourceRoot":"","sources":["../src/thread-mappings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export type ConnectorLogMethod = (...args: readonly unknown[]) => void;
2
+ export interface ConnectorLogger {
3
+ info: ConnectorLogMethod;
4
+ warn: ConnectorLogMethod;
5
+ error: ConnectorLogMethod;
6
+ debug: ConnectorLogMethod;
7
+ }
8
+ export interface MessageEnvelope {
9
+ header: string;
10
+ body: string;
11
+ origin: 'direct' | 'callback';
12
+ subtitle?: string;
13
+ footer?: string;
14
+ }
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,EAAE,SAAS,OAAO,EAAE,KAAK,IAAI,CAAC;AAEvE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}