@qwen-code/channel-dingtalk 0.21.1 → 0.21.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/dist/DingtalkAdapter.d.ts +18 -1
- package/dist/DingtalkAdapter.d.ts.map +1 -1
- package/dist/DingtalkAdapter.js +190 -1
- package/dist/DingtalkAdapter.js.map +1 -1
- package/dist/interaction-presenter.d.ts +29 -0
- package/dist/interaction-presenter.d.ts.map +1 -0
- package/dist/interaction-presenter.js +179 -0
- package/dist/interaction-presenter.js.map +1 -0
- package/dist/interactive-card-client.d.ts +39 -0
- package/dist/interactive-card-client.d.ts.map +1 -0
- package/dist/interactive-card-client.js +102 -0
- package/dist/interactive-card-client.js.map +1 -0
- package/dist/interactive-card-types.d.ts +36 -0
- package/dist/interactive-card-types.d.ts.map +1 -0
- package/dist/interactive-card-types.js +128 -0
- package/dist/interactive-card-types.js.map +1 -0
- package/dist/outbound-image.d.ts +1 -0
- package/dist/outbound-image.d.ts.map +1 -1
- package/dist/outbound-image.js +10 -0
- package/dist/outbound-image.js.map +1 -1
- package/dist/question-card-controller.d.ts +37 -0
- package/dist/question-card-controller.d.ts.map +1 -0
- package/dist/question-card-controller.js +351 -0
- package/dist/question-card-controller.js.map +1 -0
- package/dist/status-card-controller.d.ts +33 -0
- package/dist/status-card-controller.d.ts.map +1 -0
- package/dist/status-card-controller.js +282 -0
- package/dist/status-card-controller.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
export class DingtalkInteractionPresenter {
|
|
2
|
+
options;
|
|
3
|
+
runs = new Map();
|
|
4
|
+
segments = new Map();
|
|
5
|
+
terminalSegmentIds = new Set();
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.options = options;
|
|
8
|
+
}
|
|
9
|
+
registerRun(runId, ownerId, target) {
|
|
10
|
+
this.runs.set(runId, {
|
|
11
|
+
ownerId,
|
|
12
|
+
target,
|
|
13
|
+
projectionChain: Promise.resolve(),
|
|
14
|
+
terminal: false,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
appendOutput(segment, chunk) {
|
|
18
|
+
const run = this.runs.get(segment.runId);
|
|
19
|
+
if (!run ||
|
|
20
|
+
run.terminal ||
|
|
21
|
+
run.ownerId !== segment.owner.id ||
|
|
22
|
+
run.target.chatId !== segment.target.chatId ||
|
|
23
|
+
run.target.isGroup !== segment.target.isGroup ||
|
|
24
|
+
!chunk ||
|
|
25
|
+
this.terminalSegmentIds.has(segment.segmentId)) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const existing = this.segments.get(segment.segmentId);
|
|
29
|
+
if (existing && existing.run !== run)
|
|
30
|
+
return;
|
|
31
|
+
const presentation = existing ?? {
|
|
32
|
+
run,
|
|
33
|
+
context: segment,
|
|
34
|
+
content: '',
|
|
35
|
+
};
|
|
36
|
+
presentation.content = this.boundContent(presentation.content + chunk);
|
|
37
|
+
this.segments.set(segment.segmentId, presentation);
|
|
38
|
+
run.activeSegmentId = segment.segmentId;
|
|
39
|
+
if (!this.options.statusCards)
|
|
40
|
+
return;
|
|
41
|
+
void this.enqueue(run, () => {
|
|
42
|
+
this.options.statusCards?.append(segment, this.cardTarget(segment.target), chunk);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
closeOutput(segmentId, text, reason, segment) {
|
|
46
|
+
let presentation = this.segments.get(segmentId);
|
|
47
|
+
if (!presentation && segment && text) {
|
|
48
|
+
this.appendOutput(segment, text);
|
|
49
|
+
presentation = this.segments.get(segmentId);
|
|
50
|
+
}
|
|
51
|
+
if (!presentation)
|
|
52
|
+
return Promise.resolve(false);
|
|
53
|
+
const run = presentation.run;
|
|
54
|
+
if (run.terminal)
|
|
55
|
+
return Promise.resolve(false);
|
|
56
|
+
this.segments.delete(segmentId);
|
|
57
|
+
this.addTerminalSegment(segmentId);
|
|
58
|
+
if (run.activeSegmentId === segmentId) {
|
|
59
|
+
run.activeSegmentId = undefined;
|
|
60
|
+
}
|
|
61
|
+
return this.enqueue(run, async () => {
|
|
62
|
+
const statusCards = this.options.statusCards;
|
|
63
|
+
if (reason === 'failed') {
|
|
64
|
+
statusCards?.fail(segmentId, text);
|
|
65
|
+
return statusCards !== undefined;
|
|
66
|
+
}
|
|
67
|
+
if (reason === 'cancelled') {
|
|
68
|
+
return statusCards !== undefined;
|
|
69
|
+
}
|
|
70
|
+
const completed = statusCards !== undefined &&
|
|
71
|
+
(await statusCards.complete(segmentId, text));
|
|
72
|
+
if (completed)
|
|
73
|
+
return true;
|
|
74
|
+
const fallbackText = text || presentation.content;
|
|
75
|
+
if (!fallbackText || !this.options.sendFallback)
|
|
76
|
+
return false;
|
|
77
|
+
await this.options.sendFallback(presentation.context.target.chatId, fallbackText, presentation.context.sessionId);
|
|
78
|
+
return true;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
presentInput(context) {
|
|
82
|
+
const run = this.runs.get(context.runId);
|
|
83
|
+
if (!run ||
|
|
84
|
+
run.terminal ||
|
|
85
|
+
run.ownerId !== context.owner.id ||
|
|
86
|
+
run.target.chatId !== context.target.chatId ||
|
|
87
|
+
run.target.isGroup !== context.target.isGroup) {
|
|
88
|
+
return Promise.resolve({ kind: 'unsupported' });
|
|
89
|
+
}
|
|
90
|
+
const questionCards = this.options.questionCards;
|
|
91
|
+
if (!questionCards)
|
|
92
|
+
return Promise.resolve({ kind: 'unsupported' });
|
|
93
|
+
return questionCards.present(context, this.cardTarget(context.target));
|
|
94
|
+
}
|
|
95
|
+
terminalizeRun(runId, terminal, detail = '') {
|
|
96
|
+
const run = this.runs.get(runId);
|
|
97
|
+
if (!run || run.terminal)
|
|
98
|
+
return;
|
|
99
|
+
this.options.questionCards?.cancelRun(runId, terminal === 'cancelled' &&
|
|
100
|
+
(detail === 'cancel_command' || detail === 'clear')
|
|
101
|
+
? 'cancelled'
|
|
102
|
+
: 'expired');
|
|
103
|
+
run.terminal = true;
|
|
104
|
+
const activeSegmentId = run.activeSegmentId;
|
|
105
|
+
run.activeSegmentId = undefined;
|
|
106
|
+
if (activeSegmentId) {
|
|
107
|
+
this.segments.delete(activeSegmentId);
|
|
108
|
+
this.addTerminalSegment(activeSegmentId);
|
|
109
|
+
}
|
|
110
|
+
const finalization = this.enqueue(run, async () => {
|
|
111
|
+
if (terminal === 'failed' && activeSegmentId) {
|
|
112
|
+
this.options.statusCards?.fail(activeSegmentId, detail);
|
|
113
|
+
}
|
|
114
|
+
else if (terminal === 'cancelled') {
|
|
115
|
+
this.options.statusCards?.cancelRun(runId, detail === 'cancel_command' ? 'cancel_command' : 'dropped');
|
|
116
|
+
}
|
|
117
|
+
else if (activeSegmentId) {
|
|
118
|
+
await this.options.statusCards?.complete(activeSegmentId, detail);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
void finalization.then(() => {
|
|
122
|
+
if (this.runs.get(runId) === run)
|
|
123
|
+
this.runs.delete(runId);
|
|
124
|
+
}, () => {
|
|
125
|
+
if (this.runs.get(runId) === run)
|
|
126
|
+
this.runs.delete(runId);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
reserveProjection(runId) {
|
|
130
|
+
const run = this.runs.get(runId);
|
|
131
|
+
if (!run || run.terminal)
|
|
132
|
+
return undefined;
|
|
133
|
+
let supplyOperation;
|
|
134
|
+
const operation = new Promise((resolve) => {
|
|
135
|
+
supplyOperation = resolve;
|
|
136
|
+
});
|
|
137
|
+
const result = this.enqueue(run, async () => {
|
|
138
|
+
const execute = await operation;
|
|
139
|
+
await execute();
|
|
140
|
+
});
|
|
141
|
+
let supplied = false;
|
|
142
|
+
return (execute) => {
|
|
143
|
+
if (!supplied) {
|
|
144
|
+
supplied = true;
|
|
145
|
+
supplyOperation(execute);
|
|
146
|
+
}
|
|
147
|
+
return result;
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
enqueue(run, operation) {
|
|
151
|
+
const result = run.projectionChain.then(operation);
|
|
152
|
+
run.projectionChain = result.then(() => undefined, () => undefined);
|
|
153
|
+
return result;
|
|
154
|
+
}
|
|
155
|
+
boundContent(content) {
|
|
156
|
+
const limit = 20_000;
|
|
157
|
+
const marker = '[Earlier output truncated]\n';
|
|
158
|
+
if (content.length <= limit)
|
|
159
|
+
return content;
|
|
160
|
+
return `${marker}${content.slice(content.length - (limit - marker.length))}`;
|
|
161
|
+
}
|
|
162
|
+
cardTarget(target) {
|
|
163
|
+
const isGroup = target.isGroup === true;
|
|
164
|
+
return {
|
|
165
|
+
chatId: isGroup ? target.chatId : target.senderId,
|
|
166
|
+
isGroup,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
addTerminalSegment(segmentId) {
|
|
170
|
+
this.terminalSegmentIds.add(segmentId);
|
|
171
|
+
while (this.terminalSegmentIds.size > 1000) {
|
|
172
|
+
const oldest = this.terminalSegmentIds.values().next().value;
|
|
173
|
+
if (oldest === undefined)
|
|
174
|
+
break;
|
|
175
|
+
this.terminalSegmentIds.delete(oldest);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=interaction-presenter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction-presenter.js","sourceRoot":"","sources":["../src/interaction-presenter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export declare const STATUS_CARD_TEMPLATE_ID = "675cde2f-f526-40cb-b828-f5b2b57b8b77.schema";
|
|
2
|
+
export declare const QUESTION_CARD_TEMPLATE_ID = "c2a6355b-9724-4f7e-9653-d33fcb3311bb.schema";
|
|
3
|
+
type CardParamMap = Record<string, unknown>;
|
|
4
|
+
export interface CreateCardInput {
|
|
5
|
+
templateId: string;
|
|
6
|
+
outTrackId: string;
|
|
7
|
+
target: {
|
|
8
|
+
chatId: string;
|
|
9
|
+
isGroup: boolean;
|
|
10
|
+
};
|
|
11
|
+
cardParamMap: CardParamMap;
|
|
12
|
+
}
|
|
13
|
+
export interface StreamCardInput {
|
|
14
|
+
outTrackId: string;
|
|
15
|
+
key: string;
|
|
16
|
+
content: string;
|
|
17
|
+
finalize: boolean;
|
|
18
|
+
isError?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface UpdateCardInput {
|
|
21
|
+
outTrackId: string;
|
|
22
|
+
cardParamMap: CardParamMap;
|
|
23
|
+
}
|
|
24
|
+
export interface DingtalkInteractiveCardClientOptions {
|
|
25
|
+
robotCode: string;
|
|
26
|
+
getAccessToken(): Promise<string>;
|
|
27
|
+
fetch?: typeof fetch;
|
|
28
|
+
}
|
|
29
|
+
export declare class DingtalkInteractiveCardClient {
|
|
30
|
+
private readonly options;
|
|
31
|
+
private readonly fetch;
|
|
32
|
+
constructor(options: DingtalkInteractiveCardClientOptions);
|
|
33
|
+
createAndDeliver(input: CreateCardInput): Promise<void>;
|
|
34
|
+
openOrUpdateStream(input: StreamCardInput): Promise<void>;
|
|
35
|
+
updateInstance(input: UpdateCardInput): Promise<void>;
|
|
36
|
+
private request;
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=interactive-card-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive-card-client.d.ts","sourceRoot":"","sources":["../src/interactive-card-client.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,gDACW,CAAC;AAChD,eAAO,MAAM,yBAAyB,gDACS,CAAC;AAKhD,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7C,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,oCAAoC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAaD,qBAAa,6BAA6B;IAG5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAER,OAAO,EAAE,oCAAoC;IAIpE,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DvD,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzD,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAU7C,OAAO;CAwBtB"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
export const STATUS_CARD_TEMPLATE_ID = '675cde2f-f526-40cb-b828-f5b2b57b8b77.schema';
|
|
3
|
+
export const QUESTION_CARD_TEMPLATE_ID = 'c2a6355b-9724-4f7e-9653-d33fcb3311bb.schema';
|
|
4
|
+
const DINGTALK_API = 'https://api.dingtalk.com';
|
|
5
|
+
const CARD_FETCH_TIMEOUT_MS = 10_000;
|
|
6
|
+
function stringifyCardParamMap(cardParamMap) {
|
|
7
|
+
return Object.fromEntries(Object.entries(cardParamMap).map(([key, value]) => [
|
|
8
|
+
key,
|
|
9
|
+
typeof value === 'string' ? value : JSON.stringify(value),
|
|
10
|
+
]));
|
|
11
|
+
}
|
|
12
|
+
export class DingtalkInteractiveCardClient {
|
|
13
|
+
options;
|
|
14
|
+
fetch;
|
|
15
|
+
constructor(options) {
|
|
16
|
+
this.options = options;
|
|
17
|
+
this.fetch = options.fetch ?? globalThis.fetch;
|
|
18
|
+
}
|
|
19
|
+
async createAndDeliver(input) {
|
|
20
|
+
const targetModel = input.target.isGroup
|
|
21
|
+
? {
|
|
22
|
+
imGroupOpenDeliverModel: {
|
|
23
|
+
robotCode: this.options.robotCode,
|
|
24
|
+
extension: { dynamicSummary: 'true' },
|
|
25
|
+
},
|
|
26
|
+
}
|
|
27
|
+
: {
|
|
28
|
+
imRobotOpenDeliverModel: {
|
|
29
|
+
spaceType: 'IM_ROBOT',
|
|
30
|
+
robotCode: this.options.robotCode,
|
|
31
|
+
extension: { dynamicSummary: 'true' },
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
const data = await this.request('/v1.0/card/instances/createAndDeliver', 'POST', {
|
|
35
|
+
cardTemplateId: input.templateId,
|
|
36
|
+
outTrackId: input.outTrackId,
|
|
37
|
+
cardData: {
|
|
38
|
+
cardParamMap: stringifyCardParamMap(input.cardParamMap),
|
|
39
|
+
},
|
|
40
|
+
callbackType: 'STREAM',
|
|
41
|
+
imGroupOpenSpaceModel: { supportForward: true },
|
|
42
|
+
imRobotOpenSpaceModel: { supportForward: true },
|
|
43
|
+
openSpaceId: input.target.isGroup
|
|
44
|
+
? `dtv1.card//IM_GROUP.${input.target.chatId}`
|
|
45
|
+
: `dtv1.card//IM_ROBOT.${input.target.chatId}`,
|
|
46
|
+
userIdType: 1,
|
|
47
|
+
...targetModel,
|
|
48
|
+
}, input.templateId);
|
|
49
|
+
const result = data && typeof data === 'object'
|
|
50
|
+
? data.result
|
|
51
|
+
: undefined;
|
|
52
|
+
const deliveries = result?.deliverResults;
|
|
53
|
+
if (Array.isArray(deliveries)) {
|
|
54
|
+
const failure = deliveries.find((entry) => entry !== null &&
|
|
55
|
+
typeof entry === 'object' &&
|
|
56
|
+
entry.success === false);
|
|
57
|
+
if (failure) {
|
|
58
|
+
throw new Error(`${input.templateId}: ${typeof failure.errorMsg === 'string' && failure.errorMsg.trim()
|
|
59
|
+
? failure.errorMsg.trim()
|
|
60
|
+
: 'DingTalk card delivery failed'}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async openOrUpdateStream(input) {
|
|
65
|
+
await this.request('/v1.0/card/streaming', 'PUT', {
|
|
66
|
+
outTrackId: input.outTrackId,
|
|
67
|
+
guid: randomUUID(),
|
|
68
|
+
key: input.key,
|
|
69
|
+
content: input.content,
|
|
70
|
+
isFull: true,
|
|
71
|
+
isFinalize: input.finalize,
|
|
72
|
+
isError: input.isError ?? false,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
async updateInstance(input) {
|
|
76
|
+
await this.request('/v1.0/card/instances', 'PUT', {
|
|
77
|
+
outTrackId: input.outTrackId,
|
|
78
|
+
cardData: {
|
|
79
|
+
cardParamMap: stringifyCardParamMap(input.cardParamMap),
|
|
80
|
+
},
|
|
81
|
+
cardUpdateOptions: { updateCardDataByKey: true },
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
async request(path, method, body, templateId) {
|
|
85
|
+
const token = await this.options.getAccessToken();
|
|
86
|
+
const response = await this.fetch(`${DINGTALK_API}${path}`, {
|
|
87
|
+
method,
|
|
88
|
+
headers: {
|
|
89
|
+
'Content-Type': 'application/json',
|
|
90
|
+
'x-acs-dingtalk-access-token': token,
|
|
91
|
+
},
|
|
92
|
+
body: JSON.stringify(body),
|
|
93
|
+
signal: AbortSignal.timeout(CARD_FETCH_TIMEOUT_MS),
|
|
94
|
+
});
|
|
95
|
+
if (!response.ok) {
|
|
96
|
+
const detail = (await response.text().catch(() => '')).slice(0, 300);
|
|
97
|
+
throw new Error(`DingTalk Card OpenAPI ${method} ${path} failed${templateId ? ` for ${templateId}` : ''}: HTTP ${response.status}${detail ? ` ${detail}` : ''}`);
|
|
98
|
+
}
|
|
99
|
+
return response.json().catch(() => undefined);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=interactive-card-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive-card-client.js","sourceRoot":"","sources":["../src/interactive-card-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface DingtalkInteractiveCardConfig {
|
|
2
|
+
enabled: boolean;
|
|
3
|
+
statusCard: {
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
};
|
|
6
|
+
questionCard: {
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
timeoutMs: number;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export interface DingtalkCardCallback {
|
|
12
|
+
outTrackId: string;
|
|
13
|
+
actionId: string;
|
|
14
|
+
actorId: string;
|
|
15
|
+
formData: Record<string, unknown>;
|
|
16
|
+
hasBusinessPayload?: boolean;
|
|
17
|
+
isCancel?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export type DingtalkCardCallbackResult = {
|
|
20
|
+
kind: 'accepted';
|
|
21
|
+
execute: () => Promise<void>;
|
|
22
|
+
} | {
|
|
23
|
+
kind: 'forbidden';
|
|
24
|
+
actorId: string;
|
|
25
|
+
target: {
|
|
26
|
+
chatId: string;
|
|
27
|
+
isGroup: boolean;
|
|
28
|
+
};
|
|
29
|
+
} | {
|
|
30
|
+
kind: 'ignored';
|
|
31
|
+
actorId?: string;
|
|
32
|
+
};
|
|
33
|
+
export declare function parseDingtalkInteractiveCardConfig(value: unknown): DingtalkInteractiveCardConfig;
|
|
34
|
+
export declare function parseDingtalkCardCallback(value: unknown): DingtalkCardCallback | undefined;
|
|
35
|
+
export declare function parseDingtalkCardActorId(value: unknown): string | undefined;
|
|
36
|
+
//# sourceMappingURL=interactive-card-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive-card-types.d.ts","sourceRoot":"","sources":["../src/interactive-card-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACjC,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACvD;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,0BAA0B,GAClC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAClD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CAC9C,GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAuC1C,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,OAAO,GACb,6BAA6B,CA2C/B;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,GACb,oBAAoB,GAAG,SAAS,CA0DlC;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAU3E"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
const DEFAULT_QUESTION_TIMEOUT_MS = 270_000;
|
|
2
|
+
function asRecord(value) {
|
|
3
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value)
|
|
4
|
+
? value
|
|
5
|
+
: undefined;
|
|
6
|
+
}
|
|
7
|
+
function parseEmbeddedRecord(value) {
|
|
8
|
+
if (typeof value !== 'string') {
|
|
9
|
+
return asRecord(value);
|
|
10
|
+
}
|
|
11
|
+
try {
|
|
12
|
+
return asRecord(JSON.parse(value));
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function parseBooleanLike(value) {
|
|
19
|
+
return value === true || value === 'true' || value === 1 || value === '1';
|
|
20
|
+
}
|
|
21
|
+
function optionalBoolean(value, path, fallback) {
|
|
22
|
+
if (value === undefined)
|
|
23
|
+
return fallback;
|
|
24
|
+
if (typeof value !== 'boolean') {
|
|
25
|
+
throw new Error(`DingTalk interactiveCards.${path} must be a boolean.`);
|
|
26
|
+
}
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
export function parseDingtalkInteractiveCardConfig(value) {
|
|
30
|
+
if (value !== undefined && !asRecord(value)) {
|
|
31
|
+
throw new Error('DingTalk interactiveCards must be an object.');
|
|
32
|
+
}
|
|
33
|
+
const configured = value !== undefined;
|
|
34
|
+
const root = asRecord(value) ?? {};
|
|
35
|
+
const status = asRecord(root['statusCard']);
|
|
36
|
+
const question = asRecord(root['questionCard']);
|
|
37
|
+
if (root['statusCard'] !== undefined && !status) {
|
|
38
|
+
throw new Error('DingTalk interactiveCards.statusCard must be an object.');
|
|
39
|
+
}
|
|
40
|
+
if (root['questionCard'] !== undefined && !question) {
|
|
41
|
+
throw new Error('DingTalk interactiveCards.questionCard must be an object.');
|
|
42
|
+
}
|
|
43
|
+
const timeoutMs = question?.['timeoutMs'] === undefined
|
|
44
|
+
? DEFAULT_QUESTION_TIMEOUT_MS
|
|
45
|
+
: question['timeoutMs'];
|
|
46
|
+
if (typeof timeoutMs !== 'number' ||
|
|
47
|
+
!Number.isFinite(timeoutMs) ||
|
|
48
|
+
timeoutMs <= 0) {
|
|
49
|
+
throw new Error('DingTalk interactiveCards.questionCard.timeoutMs must be a finite positive number.');
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
enabled: optionalBoolean(root['enabled'], 'enabled', configured),
|
|
53
|
+
statusCard: {
|
|
54
|
+
enabled: optionalBoolean(status?.['enabled'], 'statusCard.enabled', true),
|
|
55
|
+
},
|
|
56
|
+
questionCard: {
|
|
57
|
+
enabled: optionalBoolean(question?.['enabled'], 'questionCard.enabled', true),
|
|
58
|
+
timeoutMs,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export function parseDingtalkCardCallback(value) {
|
|
63
|
+
const root = parseEmbeddedRecord(value);
|
|
64
|
+
if (!root)
|
|
65
|
+
return undefined;
|
|
66
|
+
const embeddedValue = parseEmbeddedRecord(root['value']);
|
|
67
|
+
const embeddedContent = parseEmbeddedRecord(root['content']);
|
|
68
|
+
const privateSources = [embeddedValue, embeddedContent, root]
|
|
69
|
+
.map((source) => parseEmbeddedRecord(source?.['cardPrivateData']))
|
|
70
|
+
.filter((source) => source !== undefined);
|
|
71
|
+
const sources = [
|
|
72
|
+
embeddedValue,
|
|
73
|
+
embeddedContent,
|
|
74
|
+
...privateSources,
|
|
75
|
+
root,
|
|
76
|
+
].filter((source) => source !== undefined);
|
|
77
|
+
const pickString = (...keys) => {
|
|
78
|
+
for (const source of sources) {
|
|
79
|
+
for (const key of keys) {
|
|
80
|
+
const candidate = source[key];
|
|
81
|
+
if (typeof candidate === 'string' && candidate.trim()) {
|
|
82
|
+
return candidate.trim();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return undefined;
|
|
87
|
+
};
|
|
88
|
+
const privateData = privateSources[0];
|
|
89
|
+
const actionIds = privateData?.['actionIds'];
|
|
90
|
+
const actionId = (Array.isArray(actionIds) &&
|
|
91
|
+
typeof actionIds[0] === 'string' &&
|
|
92
|
+
actionIds[0].trim()
|
|
93
|
+
? actionIds[0].trim()
|
|
94
|
+
: undefined) ?? pickString('actionValue', 'eventKey', 'actionId');
|
|
95
|
+
const outTrackId = pickString('outTrackId');
|
|
96
|
+
const actorId = parseDingtalkCardActorId(root);
|
|
97
|
+
if (!outTrackId || !actionId || !actorId)
|
|
98
|
+
return undefined;
|
|
99
|
+
const params = sources
|
|
100
|
+
.map((source) => parseEmbeddedRecord(source['params']))
|
|
101
|
+
.find((source) => source !== undefined);
|
|
102
|
+
const formData = sources
|
|
103
|
+
.flatMap((source) => [
|
|
104
|
+
parseEmbeddedRecord(source['formData']),
|
|
105
|
+
parseEmbeddedRecord(parseEmbeddedRecord(source['params'])?.['form']),
|
|
106
|
+
])
|
|
107
|
+
.find((source) => source !== undefined);
|
|
108
|
+
const hasCancelField = params !== undefined &&
|
|
109
|
+
Object.prototype.hasOwnProperty.call(params, 'user_cancel');
|
|
110
|
+
return {
|
|
111
|
+
outTrackId,
|
|
112
|
+
actionId,
|
|
113
|
+
actorId,
|
|
114
|
+
formData: formData ?? {},
|
|
115
|
+
hasBusinessPayload: formData !== undefined || hasCancelField,
|
|
116
|
+
isCancel: hasCancelField && parseBooleanLike(params['user_cancel']),
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
export function parseDingtalkCardActorId(value) {
|
|
120
|
+
const root = parseEmbeddedRecord(value);
|
|
121
|
+
if (!root)
|
|
122
|
+
return undefined;
|
|
123
|
+
return ['userId', 'senderStaffId', 'senderId']
|
|
124
|
+
.map((key) => root[key])
|
|
125
|
+
.find((candidate) => typeof candidate === 'string' && candidate.trim().length > 0)
|
|
126
|
+
?.trim();
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=interactive-card-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive-card-types.js","sourceRoot":"","sources":["../src/interactive-card-types.ts"],"names":[],"mappings":"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"}
|
package/dist/outbound-image.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export declare class DingTalkMediaUploadError extends Error {
|
|
|
14
14
|
}
|
|
15
15
|
export declare function findImageMarkers(text: string): ImageMarker[];
|
|
16
16
|
export declare function replaceImageMarkers(text: string, markers: readonly ImageMarker[], replacements: readonly string[]): string;
|
|
17
|
+
export declare function sanitizeStreamingImageMarkers(text: string): string;
|
|
17
18
|
export declare function readValidatedImage(imagePath: string, options: {
|
|
18
19
|
workspaceDir: string;
|
|
19
20
|
temporaryDir?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbound-image.d.ts","sourceRoot":"","sources":["../src/outbound-image.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IAG/C,QAAQ,CAAC,WAAW,EAAE,OAAO;gBAD7B,OAAO,EAAE,MAAM,EACN,WAAW,EAAE,OAAO;CAKhC;AAoCD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAgB5D;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,WAAW,EAAE,EAC/B,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,MAAM,CAcR;AA+BD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IACP,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACA,cAAc,CA4DhB;AASD,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAiEjB"}
|
|
1
|
+
{"version":3,"file":"outbound-image.d.ts","sourceRoot":"","sources":["../src/outbound-image.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IAG/C,QAAQ,CAAC,WAAW,EAAE,OAAO;gBAD7B,OAAO,EAAE,MAAM,EACN,WAAW,EAAE,OAAO;CAKhC;AAoCD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAgB5D;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,WAAW,EAAE,EAC/B,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,MAAM,CAcR;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAclE;AA+BD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IACP,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACA,cAAc,CA4DhB;AASD,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAiEjB"}
|
package/dist/outbound-image.js
CHANGED
|
@@ -75,6 +75,16 @@ export function replaceImageMarkers(text, markers, replacements) {
|
|
|
75
75
|
}
|
|
76
76
|
return result;
|
|
77
77
|
}
|
|
78
|
+
export function sanitizeStreamingImageMarkers(text) {
|
|
79
|
+
const markers = findImageMarkers(text);
|
|
80
|
+
let result = replaceImageMarkers(text, markers, markers.map(() => '[Image pending]'));
|
|
81
|
+
const visibleText = maskCode(result);
|
|
82
|
+
const partialMarker = /\[(?:I(?:M(?:A(?:G(?:E(?::[^\]\r\n]*)?)?)?)?)?)?$/i.exec(visibleText);
|
|
83
|
+
if (partialMarker?.index !== undefined) {
|
|
84
|
+
result = `${result.slice(0, partialMarker.index)}[Image pending]`;
|
|
85
|
+
}
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
78
88
|
function isInside(realPath, directory) {
|
|
79
89
|
const pathFromDirectory = relative(directory, realPath);
|
|
80
90
|
return (pathFromDirectory === '' ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbound-image.js","sourceRoot":"","sources":["../src/outbound-image.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"outbound-image.js","sourceRoot":"","sources":["../src/outbound-image.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ChannelUserInputRequestContext, UserInputPresentationResult } from '@qwen-code/channel-base';
|
|
2
|
+
import { type DingtalkInteractiveCardClient } from './interactive-card-client.js';
|
|
3
|
+
import type { DingtalkCardCallback, DingtalkCardCallbackResult } from './interactive-card-types.js';
|
|
4
|
+
export interface QuestionCardControllerOptions {
|
|
5
|
+
client: DingtalkInteractiveCardClient;
|
|
6
|
+
timeoutMs: number;
|
|
7
|
+
sendFallback(chatId: string, text: string): Promise<void>;
|
|
8
|
+
reserveRunProjection?(runId: string): ((operation: () => Promise<void>) => Promise<void>) | undefined;
|
|
9
|
+
onError?(operation: string, error: unknown): void;
|
|
10
|
+
}
|
|
11
|
+
export declare class QuestionCardController {
|
|
12
|
+
private readonly options;
|
|
13
|
+
private readonly byRequest;
|
|
14
|
+
private readonly byOutTrack;
|
|
15
|
+
private readonly activeByScope;
|
|
16
|
+
private readonly pendingByRun;
|
|
17
|
+
private nextSequence;
|
|
18
|
+
constructor(options: QuestionCardControllerOptions);
|
|
19
|
+
present(context: ChannelUserInputRequestContext, target: {
|
|
20
|
+
chatId: string;
|
|
21
|
+
isGroup: boolean;
|
|
22
|
+
}): Promise<UserInputPresentationResult>;
|
|
23
|
+
claim(callback: DingtalkCardCallback): DingtalkCardCallbackResult;
|
|
24
|
+
cancelRun(runId: string, terminalState?: 'cancelled' | 'expired'): void;
|
|
25
|
+
private respond;
|
|
26
|
+
private expire;
|
|
27
|
+
private finalize;
|
|
28
|
+
private reserveTerminalProjection;
|
|
29
|
+
private projectTerminal;
|
|
30
|
+
private parseAnswers;
|
|
31
|
+
private readAnswerValues;
|
|
32
|
+
private otherAnswerKey;
|
|
33
|
+
private scopeKey;
|
|
34
|
+
private cardData;
|
|
35
|
+
private fallbackText;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=question-card-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"question-card-controller.d.ts","sourceRoot":"","sources":["../src/question-card-controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,8BAA8B,EAC9B,2BAA2B,EAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AA2BrC,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,6BAA6B,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,oBAAoB,CAAC,CACnB,KAAK,EAAE,MAAM,GACZ,CAAC,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IACnE,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CACnD;AAED,qBAAa,sBAAsB;IAOrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqC;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,YAAY,CAAK;gBAEI,OAAO,EAAE,6BAA6B;IAE7D,OAAO,CACX,OAAO,EAAE,8BAA8B,EACvC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAC3C,OAAO,CAAC,2BAA2B,CAAC;IA2FvC,KAAK,CAAC,QAAQ,EAAE,oBAAoB,GAAG,0BAA0B;IA2CjE,SAAS,CACP,KAAK,EAAE,MAAM,EACb,aAAa,GAAE,WAAW,GAAG,SAAuB,GACnD,IAAI;YAiBO,OAAO;YAgCP,MAAM;YAWN,QAAQ;IAgCtB,OAAO,CAAC,yBAAyB;YAMnB,eAAe;IA0C7B,OAAO,CAAC,YAAY;IAwCpB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,QAAQ;IAyChB,OAAO,CAAC,YAAY;CAWrB"}
|