@clowder-ai/connector-feishu 0.0.0-stage → 0.1.0-alpha.8

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 (78) hide show
  1. package/README.en.md +54 -0
  2. package/README.md +25 -2
  3. package/assets/icon.svg +3 -0
  4. package/dist/FeishuAdapter.d.ts +250 -0
  5. package/dist/FeishuAdapter.d.ts.map +1 -0
  6. package/dist/FeishuAdapter.js +845 -0
  7. package/dist/FeishuAdapter.js.map +1 -0
  8. package/dist/FeishuQrBindClient.d.ts +23 -0
  9. package/dist/FeishuQrBindClient.d.ts.map +1 -0
  10. package/dist/FeishuQrBindClient.js +97 -0
  11. package/dist/FeishuQrBindClient.js.map +1 -0
  12. package/dist/FeishuTokenManager.d.ts +15 -0
  13. package/dist/FeishuTokenManager.d.ts.map +1 -0
  14. package/dist/FeishuTokenManager.js +35 -0
  15. package/dist/FeishuTokenManager.js.map +1 -0
  16. package/dist/command-ingress.d.ts +10 -0
  17. package/dist/command-ingress.d.ts.map +1 -0
  18. package/dist/command-ingress.js +15 -0
  19. package/dist/command-ingress.js.map +1 -0
  20. package/dist/execution-status.d.ts +27 -0
  21. package/dist/execution-status.d.ts.map +1 -0
  22. package/dist/execution-status.js +48 -0
  23. package/dist/execution-status.js.map +1 -0
  24. package/dist/feishu-card-formatter.d.ts +18 -0
  25. package/dist/feishu-card-formatter.d.ts.map +1 -0
  26. package/dist/feishu-card-formatter.js +58 -0
  27. package/dist/feishu-card-formatter.js.map +1 -0
  28. package/dist/inbound-download.d.ts +13 -0
  29. package/dist/inbound-download.d.ts.map +1 -0
  30. package/dist/inbound-download.js +70 -0
  31. package/dist/inbound-download.js.map +1 -0
  32. package/dist/inbound-media-source.d.ts +25 -0
  33. package/dist/inbound-media-source.d.ts.map +1 -0
  34. package/dist/inbound-media-source.js +111 -0
  35. package/dist/inbound-media-source.js.map +1 -0
  36. package/dist/index.d.ts +9 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +5 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/lifecycle-action.d.ts +30 -0
  41. package/dist/lifecycle-action.d.ts.map +1 -0
  42. package/dist/lifecycle-action.js +457 -0
  43. package/dist/lifecycle-action.js.map +1 -0
  44. package/dist/materialize-media.d.ts +7 -0
  45. package/dist/materialize-media.d.ts.map +1 -0
  46. package/dist/materialize-media.js +35 -0
  47. package/dist/materialize-media.js.map +1 -0
  48. package/dist/media-notice.d.ts +6 -0
  49. package/dist/media-notice.d.ts.map +1 -0
  50. package/dist/media-notice.js +50 -0
  51. package/dist/media-notice.js.map +1 -0
  52. package/dist/plugin-entrypoint.d.ts +9 -0
  53. package/dist/plugin-entrypoint.d.ts.map +1 -0
  54. package/dist/plugin-entrypoint.js +347 -0
  55. package/dist/plugin-entrypoint.js.map +1 -0
  56. package/dist/reply-sender-map.d.ts +10 -0
  57. package/dist/reply-sender-map.d.ts.map +1 -0
  58. package/dist/reply-sender-map.js +123 -0
  59. package/dist/reply-sender-map.js.map +1 -0
  60. package/dist/runtime.d.ts +190 -0
  61. package/dist/runtime.d.ts.map +1 -0
  62. package/dist/runtime.js +580 -0
  63. package/dist/runtime.js.map +1 -0
  64. package/dist/settings.d.ts +20 -0
  65. package/dist/settings.d.ts.map +1 -0
  66. package/dist/settings.js +35 -0
  67. package/dist/settings.js.map +1 -0
  68. package/dist/thread-mappings.d.ts +46 -0
  69. package/dist/thread-mappings.d.ts.map +1 -0
  70. package/dist/thread-mappings.js +62 -0
  71. package/dist/thread-mappings.js.map +1 -0
  72. package/dist/types.d.ts +54 -0
  73. package/dist/types.d.ts.map +1 -0
  74. package/dist/types.js +7 -0
  75. package/dist/types.js.map +1 -0
  76. package/npm-shrinkwrap.json +979 -0
  77. package/package.json +58 -4
  78. package/plugin.yaml +128 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeishuAdapter.js","sourceRoot":"","sources":["../src/FeishuAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface FeishuQrCreateResult {
2
+ qrUrl: string;
3
+ qrPayload: string;
4
+ intervalMs: number;
5
+ expireMs: number;
6
+ }
7
+ export interface FeishuQrPollResult {
8
+ status: 'waiting' | 'confirmed' | 'expired' | 'denied' | 'error';
9
+ appId?: string;
10
+ appSecret?: string;
11
+ error?: string;
12
+ }
13
+ export interface FeishuQrBindClient {
14
+ create(): Promise<FeishuQrCreateResult>;
15
+ poll(qrPayload: string): Promise<FeishuQrPollResult>;
16
+ }
17
+ export declare class DefaultFeishuQrBindClient implements FeishuQrBindClient {
18
+ private readonly fetchFn;
19
+ constructor(fetchFn?: typeof fetch);
20
+ create(): Promise<FeishuQrCreateResult>;
21
+ poll(qrPayload: string): Promise<FeishuQrPollResult>;
22
+ }
23
+ //# sourceMappingURL=FeishuQrBindClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeishuQrBindClient.d.ts","sourceRoot":"","sources":["../src/FeishuQrBindClient.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACtD;AA4BD,qBAAa,yBAA0B,YAAW,kBAAkB;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,GAAE,OAAO,KAAwB;IAE/D,MAAM,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAuCvC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA0C3D"}
@@ -0,0 +1,97 @@
1
+ import QRCode from 'qrcode';
2
+ const FEISHU_ACCOUNTS_BASE_URL = 'https://accounts.feishu.cn';
3
+ const LARK_ACCOUNTS_BASE_URL = 'https://accounts.larksuite.com';
4
+ function toPositiveNumber(value, fallback) {
5
+ if (typeof value === 'number' && Number.isFinite(value) && value > 0)
6
+ return value;
7
+ if (typeof value === 'string') {
8
+ const parsed = Number(value);
9
+ if (Number.isFinite(parsed) && parsed > 0)
10
+ return parsed;
11
+ }
12
+ return fallback;
13
+ }
14
+ async function postFeishuRegistration(fetchFn, baseUrl, form) {
15
+ const res = await fetchFn(`${baseUrl}/oauth/v1/app/registration`, {
16
+ method: 'POST',
17
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
18
+ body: form.toString(),
19
+ });
20
+ const data = (await res.json().catch(() => ({})));
21
+ if (!res.ok && typeof data.error !== 'string') {
22
+ throw new Error(`registration api ${res.status}`);
23
+ }
24
+ return data;
25
+ }
26
+ export class DefaultFeishuQrBindClient {
27
+ fetchFn;
28
+ constructor(fetchFn = globalThis.fetch) {
29
+ this.fetchFn = fetchFn;
30
+ }
31
+ async create() {
32
+ const initData = await postFeishuRegistration(this.fetchFn, FEISHU_ACCOUNTS_BASE_URL, new URLSearchParams({ action: 'init' }));
33
+ const supportedMethods = Array.isArray(initData.supported_auth_methods) ? initData.supported_auth_methods : [];
34
+ if (!supportedMethods.includes('client_secret')) {
35
+ throw new Error('Feishu registration endpoint does not support client_secret auth method');
36
+ }
37
+ const beginData = await postFeishuRegistration(this.fetchFn, FEISHU_ACCOUNTS_BASE_URL, new URLSearchParams({
38
+ action: 'begin',
39
+ archetype: 'PersonalAgent',
40
+ auth_method: 'client_secret',
41
+ request_user_info: 'open_id',
42
+ }));
43
+ const verificationUri = beginData.verification_uri_complete;
44
+ const deviceCode = beginData.device_code;
45
+ if (typeof verificationUri !== 'string' || typeof deviceCode !== 'string') {
46
+ throw new Error('Feishu registration response is missing QR payload');
47
+ }
48
+ const qrUrl = new URL(verificationUri);
49
+ qrUrl.searchParams.set('from', 'onboard');
50
+ return {
51
+ qrUrl: await QRCode.toDataURL(qrUrl.toString(), { width: 384, margin: 2 }),
52
+ qrPayload: deviceCode,
53
+ intervalMs: toPositiveNumber(beginData.interval, 5) * 1000,
54
+ expireMs: toPositiveNumber(beginData.expire_in, 600) * 1000,
55
+ };
56
+ }
57
+ async poll(qrPayload) {
58
+ const form = new URLSearchParams({ action: 'poll', device_code: qrPayload });
59
+ let pollData = await postFeishuRegistration(this.fetchFn, FEISHU_ACCOUNTS_BASE_URL, form);
60
+ const tenantBrand = typeof pollData.user_info === 'object' && pollData.user_info && 'tenant_brand' in pollData.user_info
61
+ ? String(pollData.user_info.tenant_brand ?? '')
62
+ : '';
63
+ const hasCredentials = typeof pollData.client_id === 'string' && typeof pollData.client_secret === 'string';
64
+ if (!hasCredentials && tenantBrand === 'lark') {
65
+ try {
66
+ pollData = await postFeishuRegistration(this.fetchFn, LARK_ACCOUNTS_BASE_URL, form);
67
+ }
68
+ catch {
69
+ // Ignore fallback failure; original pollData still drives final state.
70
+ }
71
+ }
72
+ if (typeof pollData.client_id === 'string' && typeof pollData.client_secret === 'string') {
73
+ return {
74
+ status: 'confirmed',
75
+ appId: pollData.client_id,
76
+ appSecret: pollData.client_secret,
77
+ };
78
+ }
79
+ if (pollData.error === 'authorization_pending' || pollData.error === 'slow_down') {
80
+ return { status: 'waiting' };
81
+ }
82
+ if (pollData.error === 'access_denied') {
83
+ return { status: 'denied' };
84
+ }
85
+ if (pollData.error === 'expired_token') {
86
+ return { status: 'expired' };
87
+ }
88
+ if (typeof pollData.error === 'string') {
89
+ return {
90
+ status: 'error',
91
+ error: typeof pollData.error_description === 'string' ? pollData.error_description : pollData.error,
92
+ };
93
+ }
94
+ return { status: 'waiting' };
95
+ }
96
+ }
97
+ //# sourceMappingURL=FeishuQrBindClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeishuQrBindClient.js","sourceRoot":"","sources":["../src/FeishuQrBindClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface FeishuTokenManagerOptions {
2
+ readonly appId: string;
3
+ readonly appSecret: string;
4
+ readonly fetchFn?: typeof fetch;
5
+ }
6
+ export declare class FeishuTokenManager {
7
+ private cachedToken;
8
+ private expiresAt;
9
+ private readonly appId;
10
+ private readonly appSecret;
11
+ private readonly fetchFn;
12
+ constructor(opts: FeishuTokenManagerOptions);
13
+ getTenantAccessToken(signal?: AbortSignal): Promise<string>;
14
+ }
15
+ //# sourceMappingURL=FeishuTokenManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeishuTokenManager.d.ts","sourceRoot":"","sources":["../src/FeishuTokenManager.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACjC;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;gBAE3B,IAAI,EAAE,yBAAyB;IAMrC,oBAAoB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;CA4BlE"}
@@ -0,0 +1,35 @@
1
+ export class FeishuTokenManager {
2
+ cachedToken;
3
+ expiresAt = 0;
4
+ appId;
5
+ appSecret;
6
+ fetchFn;
7
+ constructor(opts) {
8
+ this.appId = opts.appId;
9
+ this.appSecret = opts.appSecret;
10
+ this.fetchFn = opts.fetchFn ?? globalThis.fetch;
11
+ }
12
+ async getTenantAccessToken(signal) {
13
+ if (this.cachedToken && Date.now() < this.expiresAt) {
14
+ return this.cachedToken;
15
+ }
16
+ const res = await this.fetchFn('https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal', {
17
+ method: 'POST',
18
+ headers: { 'Content-Type': 'application/json; charset=utf-8' },
19
+ body: JSON.stringify({
20
+ app_id: this.appId,
21
+ app_secret: this.appSecret,
22
+ }),
23
+ signal,
24
+ });
25
+ if (!res.ok) {
26
+ throw new Error(`Feishu token API ${res.status}`);
27
+ }
28
+ const data = (await res.json());
29
+ this.cachedToken = data.tenant_access_token;
30
+ // Refresh 5 minutes early
31
+ this.expiresAt = Date.now() + (data.expire - 300) * 1000;
32
+ return this.cachedToken;
33
+ }
34
+ }
35
+ //# sourceMappingURL=FeishuTokenManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeishuTokenManager.js","sourceRoot":"","sources":["../src/FeishuTokenManager.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,kBAAkB;IACrB,WAAW,CAAqB;IAChC,SAAS,GAAG,CAAC,CAAC;IACL,KAAK,CAAS;IACd,SAAS,CAAS;IAClB,OAAO,CAAe;IAEvC,YAAY,IAA+B;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAoB;QAC7C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,uEAAuE,EAAE;YACtG,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE;YAC9D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM,EAAE,IAAI,CAAC,KAAK;gBAClB,UAAU,EAAE,IAAI,CAAC,SAAS;aAC3B,CAAC;YACF,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAG7B,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC5C,0BAA0B;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;QACzD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import type { FeishuHostInboundMessage } from './runtime.js';
2
+ /** Provider facts only; no chat-id heuristics or payload owner authority. */
3
+ export declare function connectorCommandFacts(message: FeishuHostInboundMessage): {
4
+ chatId: string;
5
+ providerMessageId: string;
6
+ text: string;
7
+ group: boolean;
8
+ senderId: string | undefined;
9
+ };
10
+ //# sourceMappingURL=command-ingress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-ingress.d.ts","sourceRoot":"","sources":["../src/command-ingress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAE7D,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,wBAAwB;;;;;;EAWtE"}
@@ -0,0 +1,15 @@
1
+ /** Provider facts only; no chat-id heuristics or payload owner authority. */
2
+ export function connectorCommandFacts(message) {
3
+ if (message.conversation?.type !== 'direct' && message.conversation?.type !== 'group')
4
+ throw new TypeError('missing provider conversation fact');
5
+ const sender = message.externalSenderId;
6
+ return {
7
+ chatId: message.externalConversationId,
8
+ providerMessageId: message.providerMessageId,
9
+ text: message.text,
10
+ // The authenticated adapter owns the conversation classification.
11
+ group: message.conversation.type === 'group',
12
+ senderId: sender === 'unknown' || sender === '' ? undefined : sender,
13
+ };
14
+ }
15
+ //# sourceMappingURL=command-ingress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-ingress.js","sourceRoot":"","sources":["../src/command-ingress.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,MAAM,UAAU,qBAAqB,CAAC,OAAiC;IACrE,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IACjJ,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACxC,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,sBAAsB;QACtC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,kEAAkE;QAClE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,OAAO;QAC5C,QAAQ,EAAE,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;KACrE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ /** Platform feedback business state. Delivery is the only Host callback. */
2
+ import { type PluginExecutionStatusDelivery } from '@clowder-ai/plugin-contract';
3
+ export type ExecutionStatus = PluginExecutionStatusDelivery;
4
+ export type LifecycleAction = (input: ExecutionStatus) => {
5
+ readonly deliveryId: string;
6
+ } | Promise<{
7
+ readonly deliveryId: string;
8
+ }>;
9
+ export declare function defineLifecycleAction(handler: LifecycleAction): (input: unknown) => Promise<{
10
+ readonly deliveryId: string;
11
+ } | {
12
+ readonly deliveryId: string;
13
+ }>;
14
+ export declare function lifecycleRejectReason(decision: {
15
+ reason: 'OUT_OF_ORDER' | 'DELIVERY_CONFLICT' | 'INVALID_HISTORY';
16
+ }): "EXECUTION_OUT_OF_ORDER" | "EXECUTION_DELIVERY_CONFLICT" | "PLUGIN_INTERNAL";
17
+ type Decision = {
18
+ kind: 'accept';
19
+ } | {
20
+ kind: 'replay';
21
+ } | {
22
+ kind: 'reject';
23
+ reason: 'DELIVERY_CONFLICT' | 'INVALID_HISTORY' | 'OUT_OF_ORDER';
24
+ };
25
+ export declare function decideLifecycleTransition(historyInput: readonly unknown[], eventInput: unknown): Decision;
26
+ export {};
27
+ //# sourceMappingURL=execution-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-status.d.ts","sourceRoot":"","sources":["../src/execution-status.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,EAAuB,KAAK,6BAA6B,EAAC,MAAM,6BAA6B,CAAC;AAErG,MAAM,MAAM,eAAe,GAAC,6BAA6B,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAC,CAAC,KAAK,EAAC,eAAe,KAAG;IAAC,QAAQ,CAAC,UAAU,EAAC,MAAM,CAAA;CAAC,GAAC,OAAO,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAC,MAAM,CAAA;CAAC,CAAC,CAAC;AAKxH,wBAAgB,qBAAqB,CAAC,OAAO,EAAC,eAAe,IAC/C,OAAM,OAAO;yBAN+C,MAAM;;yBAA+B,MAAM;GAUpH;AACD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAC;IAAC,MAAM,EAAC,cAAc,GAAC,mBAAmB,GAAC,iBAAiB,CAAA;CAAC,gFAE3G;AACD,KAAK,QAAQ,GAAC;IAAC,IAAI,EAAC,QAAQ,CAAA;CAAC,GAAC;IAAC,IAAI,EAAC,QAAQ,CAAA;CAAC,GAAC;IAAC,IAAI,EAAC,QAAQ,CAAC;IAAA,MAAM,EAAC,mBAAmB,GAAC,iBAAiB,GAAC,cAAc,CAAA;CAAC,CAAC;AAU1H,wBAAgB,yBAAyB,CAAC,YAAY,EAAC,SAAS,OAAO,EAAE,EAAC,UAAU,EAAC,OAAO,GAAE,QAAQ,CAMrG"}
@@ -0,0 +1,48 @@
1
+ /** Platform feedback business state. Delivery is the only Host callback. */
2
+ import { isPluginDeliveryInput } from '@clowder-ai/plugin-contract';
3
+ import { isDeepStrictEqual } from 'node:util';
4
+ function requireStatus(input) {
5
+ if (!isPluginDeliveryInput(input) || input.kind !== 'execution_status')
6
+ throw new TypeError('invalid execution status delivery');
7
+ return structuredClone(input);
8
+ }
9
+ export function defineLifecycleAction(handler) {
10
+ return async (input) => {
11
+ const status = requireStatus(input), result = await handler(status);
12
+ if (!result || Object.keys(result).length !== 1 || result.deliveryId !== status.deliveryId)
13
+ throw new TypeError('invalid execution status receipt');
14
+ return result;
15
+ };
16
+ }
17
+ export function lifecycleRejectReason(decision) {
18
+ return decision.reason === 'OUT_OF_ORDER' ? 'EXECUTION_OUT_OF_ORDER' : decision.reason === 'DELIVERY_CONFLICT' ? 'EXECUTION_DELIVERY_CONFLICT' : 'PLUGIN_INTERNAL';
19
+ }
20
+ function next(history, event) {
21
+ const duplicate = history.find(row => row.deliveryId === event.deliveryId);
22
+ if (duplicate)
23
+ return isDeepStrictEqual(duplicate, event) ? { kind: 'replay' } : { kind: 'reject', reason: 'DELIVERY_CONFLICT' };
24
+ if (history.some(row => row.executionId !== event.executionId || row.threadId !== event.threadId))
25
+ return { kind: 'reject', reason: 'INVALID_HISTORY' };
26
+ if (!history.length)
27
+ return event.state === 'started' ? { kind: 'accept' } : { kind: 'reject', reason: 'OUT_OF_ORDER' };
28
+ const last = history.at(-1);
29
+ if (last.state === 'settled' || event.state === 'started' || event.state === 'resumed' && last.state !== 'blocked' || last.state === 'blocked' && !['resumed', 'settled'].includes(event.state))
30
+ return { kind: 'reject', reason: 'OUT_OF_ORDER' };
31
+ return { kind: 'accept' };
32
+ }
33
+ export function decideLifecycleTransition(historyInput, eventInput) {
34
+ try {
35
+ const history = [];
36
+ for (const input of historyInput) {
37
+ const event = requireStatus(input);
38
+ if (next(history, event).kind !== 'accept')
39
+ return { kind: 'reject', reason: 'INVALID_HISTORY' };
40
+ history.push(event);
41
+ }
42
+ return next(history, requireStatus(eventInput));
43
+ }
44
+ catch {
45
+ return { kind: 'reject', reason: 'INVALID_HISTORY' };
46
+ }
47
+ }
48
+ //# sourceMappingURL=execution-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-status.js","sourceRoot":"","sources":["../src/execution-status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { RichBlock } from './types.js';
2
+ interface LarkCardElement {
3
+ tag: string;
4
+ [key: string]: unknown;
5
+ }
6
+ export interface LarkCard {
7
+ header: {
8
+ title: {
9
+ content: string;
10
+ tag: string;
11
+ };
12
+ template: string;
13
+ };
14
+ elements: LarkCardElement[];
15
+ }
16
+ export declare function formatFeishuCard(blocks: RichBlock[], catDisplayName: string, textContent?: string): LarkCard;
17
+ export {};
18
+ //# sourceMappingURL=feishu-card-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feishu-card-formatter.d.ts","sourceRoot":"","sources":["../src/feishu-card-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAS5C,UAAU,eAAe;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE;QAAE,KAAK,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAqCD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,CAmB5G"}
@@ -0,0 +1,58 @@
1
+ const TONE_TO_COLOR = {
2
+ info: 'blue',
3
+ success: 'green',
4
+ warning: 'orange',
5
+ danger: 'red',
6
+ };
7
+ function blockToElements(block) {
8
+ switch (block.kind) {
9
+ case 'card': {
10
+ const els = [];
11
+ if (block.bodyMarkdown) {
12
+ els.push({ tag: 'markdown', content: block.bodyMarkdown });
13
+ }
14
+ if (block.fields?.length) {
15
+ els.push({
16
+ tag: 'markdown',
17
+ content: block.fields.map((f) => `**${f.label}**: ${f.value}`).join('\n'),
18
+ });
19
+ }
20
+ return els;
21
+ }
22
+ case 'checklist': {
23
+ const text = block.items.map((i) => `${i.checked ? '✅' : '☐'} ${i.text}`).join('\n');
24
+ return [{ tag: 'markdown', content: block.title ? `**${block.title}**\n${text}` : text }];
25
+ }
26
+ case 'diff':
27
+ return [
28
+ { tag: 'markdown', content: `**${block.filePath}**` },
29
+ { tag: 'markdown', content: `\`\`\`${block.languageHint || ''}\n${block.diff}\n\`\`\`` },
30
+ ];
31
+ case 'audio':
32
+ return [{ tag: 'markdown', content: block.text ? `🔊 ${block.text}` : '🔊 [Audio]' }];
33
+ case 'media_gallery': {
34
+ const text = block.items.map((i) => `[${i.caption || i.alt || 'image'}](${i.url})`).join('\n');
35
+ return [{ tag: 'markdown', content: block.title ? `**${block.title}**\n${text}` : text }];
36
+ }
37
+ default:
38
+ return [{ tag: 'markdown', content: `[${block.kind}]` }];
39
+ }
40
+ }
41
+ export function formatFeishuCard(blocks, catDisplayName, textContent) {
42
+ const firstCard = blocks.find((b) => b.kind === 'card');
43
+ const title = firstCard && firstCard.kind === 'card' ? `【${catDisplayName}🐱】${firstCard.title}` : `【${catDisplayName}🐱】`;
44
+ const tone = (firstCard?.kind === 'card' && firstCard.tone) || 'info';
45
+ // hasOwn: `||` does not stop a truthy prototype hit — tone is a free-form
46
+ // string from the caller, and tone='constructor' would put a FUNCTION into
47
+ // `template`, which JSON.stringify then silently drops (malformed card).
48
+ const template = Object.hasOwn(TONE_TO_COLOR, tone) ? TONE_TO_COLOR[tone] : 'blue';
49
+ const elements = [];
50
+ if (textContent) {
51
+ elements.push({ tag: 'markdown', content: textContent });
52
+ }
53
+ for (const block of blocks) {
54
+ elements.push(...blockToElements(block));
55
+ }
56
+ return { header: { title: { content: title, tag: 'plain_text' }, template }, elements };
57
+ }
58
+ //# sourceMappingURL=feishu-card-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feishu-card-formatter.js","sourceRoot":"","sources":["../src/feishu-card-formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /** Host import is capped at 64 MiB; reject before an adapter buffers beyond it. */
2
+ export declare const INBOUND_MEDIA_MAX_BYTES: number;
3
+ export declare const INBOUND_MEDIA_TIMEOUT_MS = 30000;
4
+ export declare class InboundMediaLimitError extends Error {
5
+ readonly maxBytes: number;
6
+ constructor(maxBytes: number);
7
+ }
8
+ export declare function collectBoundedInboundMedia(content: AsyncIterable<Uint8Array>, maxBytes?: number): Promise<Buffer>;
9
+ export declare function fetchBoundedInboundMedia(fetchFn: typeof fetch, input: string | URL, init?: RequestInit, maxBytes?: number, timeoutMs?: number): Promise<{
10
+ readonly response: Response;
11
+ readonly bytes: Buffer;
12
+ }>;
13
+ //# sourceMappingURL=inbound-download.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbound-download.d.ts","sourceRoot":"","sources":["../src/inbound-download.ts"],"names":[],"mappings":"AAEA,mFAAmF;AACnF,eAAO,MAAM,uBAAuB,QAAgB,CAAC;AACrD,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C,qBAAa,sBAAuB,SAAQ,KAAK;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM;CAItC;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,EAClC,QAAQ,SAA0B,GACjC,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,OAAO,KAAK,EACrB,KAAK,EAAE,MAAM,GAAG,GAAG,EACnB,IAAI,GAAE,WAAgB,EACtB,QAAQ,SAA0B,EAClC,SAAS,SAA2B,GACnC,OAAO,CAAC;IAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAyClE"}
@@ -0,0 +1,70 @@
1
+ const MEBIBYTE = 1024 * 1024;
2
+ /** Host import is capped at 64 MiB; reject before an adapter buffers beyond it. */
3
+ export const INBOUND_MEDIA_MAX_BYTES = 64 * MEBIBYTE;
4
+ export const INBOUND_MEDIA_TIMEOUT_MS = 30_000;
5
+ export class InboundMediaLimitError extends Error {
6
+ maxBytes;
7
+ constructor(maxBytes) {
8
+ super(`inbound media exceeds the plugin safety limit of ${maxBytes} bytes`);
9
+ this.maxBytes = maxBytes;
10
+ this.name = 'InboundMediaLimitError';
11
+ }
12
+ }
13
+ export async function collectBoundedInboundMedia(content, maxBytes = INBOUND_MEDIA_MAX_BYTES) {
14
+ const chunks = [];
15
+ let total = 0;
16
+ for await (const chunk of content) {
17
+ total += chunk.byteLength;
18
+ if (total > maxBytes)
19
+ throw new InboundMediaLimitError(maxBytes);
20
+ chunks.push(Buffer.from(chunk));
21
+ }
22
+ return Buffer.concat(chunks, total);
23
+ }
24
+ export async function fetchBoundedInboundMedia(fetchFn, input, init = {}, maxBytes = INBOUND_MEDIA_MAX_BYTES, timeoutMs = INBOUND_MEDIA_TIMEOUT_MS) {
25
+ const controller = new AbortController();
26
+ const timer = setTimeout(() => controller.abort(new Error('inbound media download timed out')), timeoutMs);
27
+ const signal = init.signal === null || init.signal === undefined
28
+ ? controller.signal
29
+ : AbortSignal.any([init.signal, controller.signal]);
30
+ try {
31
+ const response = await fetchFn(input, { ...init, signal });
32
+ if (!response.ok) {
33
+ await response.body?.cancel().catch(() => undefined);
34
+ return { response, bytes: Buffer.alloc(0) };
35
+ }
36
+ const contentLength = Number(response.headers.get('content-length'));
37
+ if (Number.isFinite(contentLength) && contentLength > maxBytes) {
38
+ controller.abort();
39
+ await response.body?.cancel().catch(() => undefined);
40
+ throw new InboundMediaLimitError(maxBytes);
41
+ }
42
+ if (response.body === null)
43
+ return { response, bytes: Buffer.alloc(0) };
44
+ const reader = response.body.getReader();
45
+ const chunks = [];
46
+ let total = 0;
47
+ try {
48
+ while (true) {
49
+ const item = await reader.read();
50
+ if (item.done)
51
+ break;
52
+ total += item.value.byteLength;
53
+ if (total > maxBytes) {
54
+ controller.abort();
55
+ await reader.cancel().catch(() => undefined);
56
+ throw new InboundMediaLimitError(maxBytes);
57
+ }
58
+ chunks.push(Buffer.from(item.value));
59
+ }
60
+ }
61
+ finally {
62
+ reader.releaseLock();
63
+ }
64
+ return { response, bytes: Buffer.concat(chunks, total) };
65
+ }
66
+ finally {
67
+ clearTimeout(timer);
68
+ }
69
+ }
70
+ //# sourceMappingURL=inbound-download.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbound-download.js","sourceRoot":"","sources":["../src/inbound-download.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type FeatureContext, type PluginMessagingDraft } from '@clowder-ai/plugin-sdk';
2
+ export interface InboundMediaLocator {
3
+ readonly sourceEventId: string;
4
+ readonly type: 'image' | 'file' | 'audio' | 'video';
5
+ readonly platformKey: string;
6
+ readonly fileName?: string;
7
+ readonly duration?: number;
8
+ }
9
+ type DraftElement = PluginMessagingDraft['payload']['elements'][number];
10
+ export interface InboundMediaOwnership {
11
+ readonly entries: readonly {
12
+ readonly reference: string;
13
+ readonly revision: number;
14
+ }[];
15
+ }
16
+ export interface RetainedInboundMedia {
17
+ readonly elements: readonly DraftElement[];
18
+ readonly ownership: InboundMediaOwnership;
19
+ }
20
+ export declare function privateMediaReference(connectorId: string, sourceEventId: string, elementId: string): string;
21
+ export declare function retainInboundMedia(context: FeatureContext, connectorId: string, sourceId: string, sourceEventId: string, attachments: readonly Omit<InboundMediaLocator, 'sourceEventId'>[]): Promise<RetainedInboundMedia>;
22
+ export declare function releaseInboundMedia(context: FeatureContext, ownership: InboundMediaOwnership, sendError?: unknown): Promise<void>;
23
+ export declare function createInboundMediaSource(context: FeatureContext, download: (locator: InboundMediaLocator) => Promise<Uint8Array>): import('@clowder-ai/plugin-sdk').PluginStreams;
24
+ export {};
25
+ //# sourceMappingURL=inbound-media-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbound-media-source.d.ts","sourceRoot":"","sources":["../src/inbound-media-source.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAQD,KAAK,YAAY,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS;QACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC3B,EAAE,CAAC;CACL;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;CAC3C;AAkBD,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAG3G;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,SAAS,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,EAAE,GACjE,OAAO,CAAC,oBAAoB,CAAC,CAuD/B;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,qBAAqB,EAChC,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,UAAU,CAAC,GAC9D,OAAO,wBAAwB,EAAE,aAAa,CAiBhD"}