@native-engagement/sdk 0.9.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -0
- package/THIRD_PARTY_LICENSES.txt +117 -0
- package/dist/index.d.ts +2479 -908
- package/dist/index.js +10 -1
- package/dist/skills/native-engagement-node-installation/SKILL.md +31 -0
- package/package.json +2 -1
- package/release.json +22 -3
package/dist/index.d.ts
CHANGED
|
@@ -64,6 +64,370 @@ export interface McpToolDefinition {
|
|
|
64
64
|
readonly annotations?: unknown;
|
|
65
65
|
readonly _meta?: unknown;
|
|
66
66
|
}
|
|
67
|
+
declare const installationModuleIds: readonly [
|
|
68
|
+
"android.wechat",
|
|
69
|
+
"android.whatsapp",
|
|
70
|
+
"bridge.wechat",
|
|
71
|
+
"bridge.mail",
|
|
72
|
+
"bridge.browser",
|
|
73
|
+
"api.youtube",
|
|
74
|
+
"api.tiktok",
|
|
75
|
+
"browser.xiaohongshu",
|
|
76
|
+
"browser.douyin",
|
|
77
|
+
"browser.tiktok"
|
|
78
|
+
];
|
|
79
|
+
export type InstallationModuleId = typeof installationModuleIds[number];
|
|
80
|
+
declare const WEIXIN_CONTENT_WRITE_OPERATIONS: readonly ("draft.create" | "draft.update" | "draft.delete" | "image.delete")[];
|
|
81
|
+
export type WeixinContentWriteOperation = typeof WEIXIN_CONTENT_WRITE_OPERATIONS[number];
|
|
82
|
+
export type ArticleFields = {
|
|
83
|
+
title: string;
|
|
84
|
+
content: string;
|
|
85
|
+
author?: string;
|
|
86
|
+
digest?: string;
|
|
87
|
+
content_source_url?: string;
|
|
88
|
+
need_open_comment?: 0 | 1;
|
|
89
|
+
only_fans_can_comment?: 0 | 1;
|
|
90
|
+
};
|
|
91
|
+
export type WeixinArticle = ArticleFields & ({
|
|
92
|
+
article_type: "news";
|
|
93
|
+
thumb_media_id: string;
|
|
94
|
+
} | {
|
|
95
|
+
article_type: "newspic";
|
|
96
|
+
image_info: {
|
|
97
|
+
image_list: {
|
|
98
|
+
image_media_id: string;
|
|
99
|
+
}[];
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
export interface Inputs {
|
|
103
|
+
"draft.create": {
|
|
104
|
+
articles: WeixinArticle[];
|
|
105
|
+
};
|
|
106
|
+
"draft.update": {
|
|
107
|
+
media_id: string;
|
|
108
|
+
index: number;
|
|
109
|
+
articles: WeixinArticle;
|
|
110
|
+
};
|
|
111
|
+
"draft.delete": {
|
|
112
|
+
media_id: string;
|
|
113
|
+
};
|
|
114
|
+
"image.delete": {
|
|
115
|
+
media_id: string;
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
export type WeixinContentIntent = {
|
|
119
|
+
profileRef: string;
|
|
120
|
+
expectedConfigurationRevision: number;
|
|
121
|
+
sourceReadRefs: string[];
|
|
122
|
+
} & {
|
|
123
|
+
[K in keyof Inputs]: {
|
|
124
|
+
operation: K;
|
|
125
|
+
input: Inputs[K];
|
|
126
|
+
};
|
|
127
|
+
}[keyof Inputs];
|
|
128
|
+
export type WeixinRuntimeWriteRequest = WeixinContentIntent & {
|
|
129
|
+
idempotencyKey: string;
|
|
130
|
+
interactionRef: string;
|
|
131
|
+
expectedRequestDigest: string;
|
|
132
|
+
};
|
|
133
|
+
export interface WeixinWriteView {
|
|
134
|
+
tenantId: string;
|
|
135
|
+
kind: "WEIXIN_WRITE";
|
|
136
|
+
profileRef: string;
|
|
137
|
+
dispatchRef: string;
|
|
138
|
+
interactionRef: string;
|
|
139
|
+
configurationRevision: number;
|
|
140
|
+
operation: WeixinContentWriteOperation;
|
|
141
|
+
state: string;
|
|
142
|
+
resultJson: string | null;
|
|
143
|
+
reasonCode: string | null;
|
|
144
|
+
platformAcceptance: "NOT_PROVEN";
|
|
145
|
+
recoveryDispatchRef: string | null;
|
|
146
|
+
}
|
|
147
|
+
declare const WEIXIN_COMMENT_OPERATIONS: readonly ("comment.open" | "comment.close" | "comment.feature" | "comment.unfeature" | "comment.delete" | "comment.reply" | "comment.reply.delete")[];
|
|
148
|
+
export type WeixinCommentOperation = typeof WEIXIN_COMMENT_OPERATIONS[number];
|
|
149
|
+
export type Target = {
|
|
150
|
+
msg_data_id: string;
|
|
151
|
+
index: number;
|
|
152
|
+
};
|
|
153
|
+
type Comment$1 = Target & {
|
|
154
|
+
user_comment_id: number;
|
|
155
|
+
};
|
|
156
|
+
type Inputs$1 = {
|
|
157
|
+
"comment.open": Target;
|
|
158
|
+
"comment.close": Target;
|
|
159
|
+
"comment.feature": Comment$1;
|
|
160
|
+
"comment.unfeature": Comment$1;
|
|
161
|
+
"comment.delete": Comment$1;
|
|
162
|
+
"comment.reply": Comment$1 & {
|
|
163
|
+
content: string;
|
|
164
|
+
};
|
|
165
|
+
"comment.reply.delete": Comment$1;
|
|
166
|
+
};
|
|
167
|
+
export type WeixinCommentIntent = {
|
|
168
|
+
profileRef: string;
|
|
169
|
+
expectedConfigurationRevision: number;
|
|
170
|
+
sourceReadRef: string;
|
|
171
|
+
} & {
|
|
172
|
+
[K in WeixinCommentOperation]: {
|
|
173
|
+
operation: K;
|
|
174
|
+
input: Inputs$1[K];
|
|
175
|
+
};
|
|
176
|
+
}[WeixinCommentOperation];
|
|
177
|
+
export type WeixinCommentRequest = WeixinCommentIntent & {
|
|
178
|
+
idempotencyKey: string;
|
|
179
|
+
interactionRef: string;
|
|
180
|
+
expectedRequestDigest: string;
|
|
181
|
+
};
|
|
182
|
+
export type WeixinCommentView = Omit<WeixinWriteView, "kind" | "operation"> & {
|
|
183
|
+
kind: "WEIXIN_COMMENT";
|
|
184
|
+
operation: WeixinCommentOperation;
|
|
185
|
+
};
|
|
186
|
+
export interface WeixinCommentBasisView {
|
|
187
|
+
tenantId: string;
|
|
188
|
+
profileRef: string;
|
|
189
|
+
configurationRevision: number;
|
|
190
|
+
sourceReadRef: string;
|
|
191
|
+
operation: WeixinCommentOperation;
|
|
192
|
+
target: Target;
|
|
193
|
+
observedAt: string;
|
|
194
|
+
comment: {
|
|
195
|
+
userCommentId: number;
|
|
196
|
+
author: string;
|
|
197
|
+
content: string;
|
|
198
|
+
reply: string | null;
|
|
199
|
+
} | null;
|
|
200
|
+
}
|
|
201
|
+
export interface WeixinUploadAsset {
|
|
202
|
+
assetRef: string;
|
|
203
|
+
digest: string;
|
|
204
|
+
sourceVersion: string;
|
|
205
|
+
mediaType: "image/png" | "image/jpeg";
|
|
206
|
+
byteLength: number;
|
|
207
|
+
filename: string;
|
|
208
|
+
}
|
|
209
|
+
export interface WeixinUploadIntent {
|
|
210
|
+
profileRef: string;
|
|
211
|
+
expectedConfigurationRevision: number;
|
|
212
|
+
asset: WeixinUploadAsset;
|
|
213
|
+
}
|
|
214
|
+
export type WeixinUploadRequest = WeixinUploadIntent & {
|
|
215
|
+
idempotencyKey: string;
|
|
216
|
+
interactionRef: string;
|
|
217
|
+
expectedRequestDigest: string;
|
|
218
|
+
};
|
|
219
|
+
export interface WeixinUploadView {
|
|
220
|
+
tenantId: string;
|
|
221
|
+
kind: "WEIXIN_UPLOAD";
|
|
222
|
+
profileRef: string;
|
|
223
|
+
dispatchRef: string;
|
|
224
|
+
interactionRef: string;
|
|
225
|
+
configurationRevision: number;
|
|
226
|
+
operation: "image.upload";
|
|
227
|
+
state: string;
|
|
228
|
+
resultJson: string | null;
|
|
229
|
+
reasonCode: string | null;
|
|
230
|
+
recoveryDispatchRef: string | null;
|
|
231
|
+
platformAcceptance: "NOT_PROVEN";
|
|
232
|
+
}
|
|
233
|
+
export type InteractionMailProvider = "ALIMAIL" | "TENCENT_EXMAIL" | "GMAIL" | "ICLOUD" | "ZOHO" | "MICROSOFT" | "CUSTOM";
|
|
234
|
+
export interface InteractionMailEndpoint {
|
|
235
|
+
host: string;
|
|
236
|
+
port: number;
|
|
237
|
+
security: "TLS" | "STARTTLS" | "NONE";
|
|
238
|
+
username?: string;
|
|
239
|
+
}
|
|
240
|
+
export interface InteractionMailConfiguration {
|
|
241
|
+
profileRef?: string;
|
|
242
|
+
expectedRevision?: number;
|
|
243
|
+
displayName?: string;
|
|
244
|
+
provider?: InteractionMailProvider;
|
|
245
|
+
mailbox?: string;
|
|
246
|
+
connection?: {
|
|
247
|
+
imap: InteractionMailEndpoint;
|
|
248
|
+
smtp: InteractionMailEndpoint;
|
|
249
|
+
};
|
|
250
|
+
presetRef?: string;
|
|
251
|
+
presetRevision?: number;
|
|
252
|
+
region?: "CN" | "HK";
|
|
253
|
+
folders?: {
|
|
254
|
+
inbox: string;
|
|
255
|
+
drafts?: string;
|
|
256
|
+
sent?: string;
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
export interface InteractionEnvironmentInstallation {
|
|
260
|
+
environmentRef: string;
|
|
261
|
+
platform: "DARWIN" | "LINUX" | "WINDOWS";
|
|
262
|
+
architecture: "ARM64" | "X64";
|
|
263
|
+
moduleIds: (InstallationModuleId | "api.weixin" | "media.shared")[];
|
|
264
|
+
installationRef?: string;
|
|
265
|
+
expectedFingerprint?: string;
|
|
266
|
+
deviceRef?: string;
|
|
267
|
+
planDigest?: string;
|
|
268
|
+
}
|
|
269
|
+
export interface InteractionAccountConnection {
|
|
270
|
+
connectionRef: string;
|
|
271
|
+
profileRef: string;
|
|
272
|
+
deviceRef: string;
|
|
273
|
+
resourceRef: string;
|
|
274
|
+
expectedPlacementRevision: number;
|
|
275
|
+
mode: "LOGIN" | "RENEW";
|
|
276
|
+
allowAgentVision: boolean;
|
|
277
|
+
maximumChallengeAttempts: number;
|
|
278
|
+
}
|
|
279
|
+
export interface InteractionDevicePlacement {
|
|
280
|
+
nodeRef: string;
|
|
281
|
+
profileRef: string;
|
|
282
|
+
expectedPlacementRevision: number;
|
|
283
|
+
resourceRef: string;
|
|
284
|
+
expectedNodeGeneration: number;
|
|
285
|
+
environmentGeneration: number;
|
|
286
|
+
expectedHostBindingDigest: string;
|
|
287
|
+
expectedModuleDigest: string;
|
|
288
|
+
}
|
|
289
|
+
export interface InteractionAccountSetup {
|
|
290
|
+
setupRef: string;
|
|
291
|
+
deviceRef: string;
|
|
292
|
+
moduleId: "android.wechat" | "android.whatsapp";
|
|
293
|
+
displayName: string;
|
|
294
|
+
installationRef?: string;
|
|
295
|
+
expectedNodeGeneration?: number;
|
|
296
|
+
expectedFingerprint?: string;
|
|
297
|
+
}
|
|
298
|
+
/** 便携配置输入与 canonical ProcessingDefinition schema 对齐,应用仍由原 Account Owner 完成。 */
|
|
299
|
+
export interface InteractionVoiceProfileBinding {
|
|
300
|
+
accountRef: string;
|
|
301
|
+
expectedVersion: number;
|
|
302
|
+
definition: {
|
|
303
|
+
processingRef: string;
|
|
304
|
+
profileRefs: readonly string[];
|
|
305
|
+
enabled: boolean;
|
|
306
|
+
assignments: readonly {
|
|
307
|
+
assignmentRef: string;
|
|
308
|
+
providerRef: string;
|
|
309
|
+
executionProfileRef: string;
|
|
310
|
+
selector: {
|
|
311
|
+
kind: "PROFILE";
|
|
312
|
+
profileRef: string;
|
|
313
|
+
} | {
|
|
314
|
+
kind: "POLICY_RULE";
|
|
315
|
+
profileRef: string;
|
|
316
|
+
policyRef: string;
|
|
317
|
+
ruleRef: string;
|
|
318
|
+
} | {
|
|
319
|
+
kind: "CONVERSATION";
|
|
320
|
+
profileRef: string;
|
|
321
|
+
engagementRef: string;
|
|
322
|
+
conversationRef: string;
|
|
323
|
+
};
|
|
324
|
+
presetSnapshot?: {
|
|
325
|
+
ownerRef: string;
|
|
326
|
+
presetRef: string;
|
|
327
|
+
version: number;
|
|
328
|
+
digest: string;
|
|
329
|
+
};
|
|
330
|
+
voiceProfile?: {
|
|
331
|
+
ownerSystem: string;
|
|
332
|
+
ownerTenantRef: string;
|
|
333
|
+
voiceProfileRef: string;
|
|
334
|
+
version: string;
|
|
335
|
+
digest: string;
|
|
336
|
+
};
|
|
337
|
+
}[];
|
|
338
|
+
};
|
|
339
|
+
audition?: {
|
|
340
|
+
assetRef: string;
|
|
341
|
+
digest: string;
|
|
342
|
+
sourceVersion: string;
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
/** 公开参数表达闭合的窄意图,既不接收秘密,也不允许调用者选择任意业务合同。 */
|
|
346
|
+
export type InteractionOperation = {
|
|
347
|
+
type: "WEIXIN_COMMENT_WRITE";
|
|
348
|
+
payload: WeixinCommentIntent;
|
|
349
|
+
} | {
|
|
350
|
+
type: "WEIXIN_IMAGE_UPLOAD";
|
|
351
|
+
payload: WeixinUploadIntent;
|
|
352
|
+
} | {
|
|
353
|
+
type: "WEIXIN_CONTENT_WRITE";
|
|
354
|
+
payload: WeixinContentIntent;
|
|
355
|
+
} | {
|
|
356
|
+
type: "MAIL_CONFIGURATION";
|
|
357
|
+
payload: InteractionMailConfiguration;
|
|
358
|
+
} | {
|
|
359
|
+
type: "MESSAGE_REVIEW";
|
|
360
|
+
payload: {
|
|
361
|
+
engagementRef: string;
|
|
362
|
+
messageRef: string;
|
|
363
|
+
version: number;
|
|
364
|
+
contentDigest: string;
|
|
365
|
+
};
|
|
366
|
+
} | {
|
|
367
|
+
type: "ENVIRONMENT_INSTALLATION";
|
|
368
|
+
payload: InteractionEnvironmentInstallation;
|
|
369
|
+
} | {
|
|
370
|
+
type: "NODE_PAIRING";
|
|
371
|
+
payload: {
|
|
372
|
+
pairingRef: string;
|
|
373
|
+
expectedRevision: number;
|
|
374
|
+
expectedFingerprint: string;
|
|
375
|
+
};
|
|
376
|
+
} | {
|
|
377
|
+
type: "DEVICE_PLACEMENT";
|
|
378
|
+
payload: InteractionDevicePlacement;
|
|
379
|
+
} | {
|
|
380
|
+
type: "ACCOUNT_SETUP";
|
|
381
|
+
payload: InteractionAccountSetup;
|
|
382
|
+
} | {
|
|
383
|
+
type: "ACCOUNT_CONNECTION";
|
|
384
|
+
payload: InteractionAccountConnection;
|
|
385
|
+
} | {
|
|
386
|
+
type: "VOICE_PROFILE_BINDING";
|
|
387
|
+
payload: InteractionVoiceProfileBinding;
|
|
388
|
+
} | {
|
|
389
|
+
type: "FEEDBACK";
|
|
390
|
+
payload: {
|
|
391
|
+
text: string;
|
|
392
|
+
};
|
|
393
|
+
};
|
|
394
|
+
export interface InteractionRequestInput {
|
|
395
|
+
idempotencyKey: string;
|
|
396
|
+
interactionRef: string;
|
|
397
|
+
title: string;
|
|
398
|
+
rationale: string;
|
|
399
|
+
operation: InteractionOperation;
|
|
400
|
+
reviewerPrincipalRef?: string;
|
|
401
|
+
expiresInSeconds?: number;
|
|
402
|
+
}
|
|
403
|
+
export interface InteractionExpectedInput {
|
|
404
|
+
idempotencyKey: string;
|
|
405
|
+
interactionRef: string;
|
|
406
|
+
expectedRevision: number;
|
|
407
|
+
expectedRequestDigest: string;
|
|
408
|
+
}
|
|
409
|
+
export interface InteractionReviseInput extends InteractionExpectedInput {
|
|
410
|
+
title?: string;
|
|
411
|
+
rationale?: string;
|
|
412
|
+
operation: InteractionOperation;
|
|
413
|
+
}
|
|
414
|
+
export interface InteractionAssignInput extends InteractionExpectedInput {
|
|
415
|
+
reviewerPrincipalRef: string;
|
|
416
|
+
}
|
|
417
|
+
export interface InteractionRespondInput extends InteractionExpectedInput {
|
|
418
|
+
action: "APPROVE" | "REJECT";
|
|
419
|
+
rationale: string;
|
|
420
|
+
}
|
|
421
|
+
export interface InteractionCancelInput extends InteractionExpectedInput {
|
|
422
|
+
rationale: string;
|
|
423
|
+
}
|
|
424
|
+
export interface InteractionGetInput {
|
|
425
|
+
interactionRef: string;
|
|
426
|
+
}
|
|
427
|
+
export interface InteractionListInput {
|
|
428
|
+
limit?: number;
|
|
429
|
+
cursor?: string;
|
|
430
|
+
}
|
|
67
431
|
/** Public DTOs shared by the Agent SDK; runtime validation is the canonical JSON Schema. */
|
|
68
432
|
export type ProspectTemporalStatus = "CURRENT" | "HISTORICAL";
|
|
69
433
|
export interface ProspectObservation {
|
|
@@ -190,117 +554,338 @@ declare const BROWSER_SOCIAL_PLATFORMS: readonly [
|
|
|
190
554
|
"DOUYIN",
|
|
191
555
|
"TIKTOK"
|
|
192
556
|
];
|
|
193
|
-
|
|
194
|
-
readonly
|
|
195
|
-
readonly
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
557
|
+
declare const WEIXIN_READ_INPUT_SCHEMAS: {
|
|
558
|
+
readonly "draft.count": Readonly<Record<string, unknown>>;
|
|
559
|
+
readonly "draft.list": Readonly<Record<string, unknown>>;
|
|
560
|
+
readonly "draft.get": Readonly<Record<string, unknown>>;
|
|
561
|
+
readonly "image.list": Readonly<Record<string, unknown>>;
|
|
562
|
+
readonly "publication.list": Readonly<Record<string, unknown>>;
|
|
563
|
+
readonly "publication.get": Readonly<Record<string, unknown>>;
|
|
564
|
+
readonly "comment.list": Readonly<Record<string, unknown>>;
|
|
565
|
+
};
|
|
566
|
+
declare const WEIXIN_READ_OPERATIONS: (keyof typeof WEIXIN_READ_INPUT_SCHEMAS)[];
|
|
567
|
+
declare const implemented: readonly [
|
|
568
|
+
{
|
|
569
|
+
readonly operation: "draft.list";
|
|
570
|
+
readonly endpoint: "draft/batchget";
|
|
571
|
+
readonly effect: "READ";
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
readonly operation: "draft.count";
|
|
575
|
+
readonly endpoint: "draft/count";
|
|
576
|
+
readonly effect: "READ";
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
readonly operation: "draft.get";
|
|
580
|
+
readonly endpoint: "draft/get";
|
|
581
|
+
readonly effect: "READ";
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
readonly operation: "draft.create";
|
|
585
|
+
readonly endpoint: "draft/add";
|
|
586
|
+
readonly effect: "WRITE";
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
readonly operation: "draft.update";
|
|
590
|
+
readonly endpoint: "draft/update";
|
|
591
|
+
readonly effect: "WRITE";
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
readonly operation: "draft.delete";
|
|
595
|
+
readonly endpoint: "draft/delete";
|
|
596
|
+
readonly effect: "WRITE";
|
|
597
|
+
},
|
|
598
|
+
{
|
|
599
|
+
readonly operation: "image.list";
|
|
600
|
+
readonly endpoint: "material/batchget_material";
|
|
601
|
+
readonly effect: "READ";
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
readonly operation: "image.upload";
|
|
605
|
+
readonly endpoint: "material/add_material";
|
|
606
|
+
readonly effect: "WRITE";
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
readonly operation: "image.delete";
|
|
610
|
+
readonly endpoint: "material/del_material";
|
|
611
|
+
readonly effect: "WRITE";
|
|
612
|
+
},
|
|
613
|
+
{
|
|
614
|
+
readonly operation: "publication.list";
|
|
615
|
+
readonly endpoint: "freepublish/batchget";
|
|
616
|
+
readonly effect: "READ";
|
|
617
|
+
},
|
|
618
|
+
{
|
|
619
|
+
readonly operation: "publication.get";
|
|
620
|
+
readonly endpoint: "freepublish/getarticle";
|
|
621
|
+
readonly effect: "READ";
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
readonly operation: "comment.list";
|
|
625
|
+
readonly endpoint: "comment/list";
|
|
626
|
+
readonly effect: "READ";
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
readonly operation: "comment.open";
|
|
630
|
+
readonly endpoint: "comment/open";
|
|
631
|
+
readonly effect: "WRITE";
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
readonly operation: "comment.close";
|
|
635
|
+
readonly endpoint: "comment/close";
|
|
636
|
+
readonly effect: "WRITE";
|
|
637
|
+
},
|
|
638
|
+
{
|
|
639
|
+
readonly operation: "comment.feature";
|
|
640
|
+
readonly endpoint: "comment/markelect";
|
|
641
|
+
readonly effect: "WRITE";
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
readonly operation: "comment.unfeature";
|
|
645
|
+
readonly endpoint: "comment/unmarkelect";
|
|
646
|
+
readonly effect: "WRITE";
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
readonly operation: "comment.delete";
|
|
650
|
+
readonly endpoint: "comment/delete";
|
|
651
|
+
readonly effect: "WRITE";
|
|
652
|
+
},
|
|
653
|
+
{
|
|
654
|
+
readonly operation: "comment.reply";
|
|
655
|
+
readonly endpoint: "comment/reply/add";
|
|
656
|
+
readonly effect: "WRITE";
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
readonly operation: "comment.reply.delete";
|
|
660
|
+
readonly endpoint: "comment/reply/delete";
|
|
661
|
+
readonly effect: "WRITE";
|
|
662
|
+
}
|
|
663
|
+
];
|
|
664
|
+
export type WeixinHostOperation = typeof implemented[number]["operation"];
|
|
665
|
+
export interface ApiCapabilitiesView {
|
|
199
666
|
readonly tenantId: string;
|
|
200
|
-
readonly
|
|
201
|
-
readonly
|
|
202
|
-
readonly
|
|
203
|
-
readonly
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
readonly
|
|
209
|
-
readonly
|
|
210
|
-
readonly
|
|
211
|
-
readonly
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
}
|
|
221
|
-
/** The exact accessible display belongs to its outer source row, without author or parent identity. */
|
|
222
|
-
export interface NativeQuotedDisplay {
|
|
223
|
-
readonly schemaVersion: 1;
|
|
224
|
-
readonly text: string;
|
|
225
|
-
readonly basis: "WECHAT_NATIVE_QUOTE_ROW" | "WECHAT_DESKTOP_CLIPBOARD_QUOTE" | "WECHAT_DESKTOP_RENDERED_QUOTE";
|
|
226
|
-
readonly displayCoverage: "CURRENT_ACCESSIBLE_DISPLAY" | "CURRENT_CLIPBOARD_DISPLAY" | "CURRENT_RENDERED_VIEW";
|
|
227
|
-
readonly displayTruncated: false;
|
|
228
|
-
readonly originalContentCompleteness: "NOT_ATTESTED";
|
|
229
|
-
readonly authorIdentity: "NOT_ATTESTED";
|
|
230
|
-
readonly parentMessageIdentity: "NOT_ATTESTED";
|
|
667
|
+
readonly profileRef: string;
|
|
668
|
+
readonly accountRef: string;
|
|
669
|
+
readonly provider: "WEIXIN_OFFICIAL";
|
|
670
|
+
readonly configuration: {
|
|
671
|
+
readonly revision: number;
|
|
672
|
+
readonly enabled: boolean;
|
|
673
|
+
readonly credentialState: "MISSING" | "CONFIGURED" | "REVOKED";
|
|
674
|
+
} | null;
|
|
675
|
+
readonly catalogSource: "REPOSITORY_IMPLEMENTATION";
|
|
676
|
+
readonly officialCoverage: "NOT_PROVEN";
|
|
677
|
+
readonly invokesRemote: false;
|
|
678
|
+
readonly operations: readonly {
|
|
679
|
+
readonly operation: WeixinHostOperation;
|
|
680
|
+
readonly effect: "READ" | "WRITE";
|
|
681
|
+
readonly hostImplementation: "IMPLEMENTED";
|
|
682
|
+
readonly managementRequestContract: "execution.node.weixin.read.request" | null;
|
|
683
|
+
readonly managementResultContract: "execution.node.weixin.read.get" | null;
|
|
684
|
+
readonly runtimeBusinessContract: string | null;
|
|
685
|
+
readonly accountPermission: "UNKNOWN";
|
|
686
|
+
readonly platformAcceptance: "NOT_PROVEN";
|
|
687
|
+
}[];
|
|
231
688
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
689
|
+
export type Page = {
|
|
690
|
+
offset: number;
|
|
691
|
+
count: number;
|
|
692
|
+
};
|
|
693
|
+
export interface ReadInputs {
|
|
694
|
+
"draft.count": Record<string, never>;
|
|
695
|
+
"draft.list": Page & {
|
|
696
|
+
no_content?: 0 | 1;
|
|
697
|
+
};
|
|
698
|
+
"draft.get": {
|
|
699
|
+
media_id: string;
|
|
700
|
+
};
|
|
701
|
+
"image.list": Page;
|
|
702
|
+
"publication.list": Page & {
|
|
703
|
+
no_content?: 0 | 1;
|
|
704
|
+
};
|
|
705
|
+
"publication.get": {
|
|
706
|
+
article_id: string;
|
|
707
|
+
};
|
|
708
|
+
"comment.list": {
|
|
709
|
+
msg_data_id: string;
|
|
710
|
+
index: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
|
|
711
|
+
begin: number;
|
|
712
|
+
count: number;
|
|
713
|
+
type: 0 | 1 | 2;
|
|
714
|
+
};
|
|
239
715
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
716
|
+
export type WeixinRuntimeReadRequest = {
|
|
717
|
+
idempotencyKey: string;
|
|
718
|
+
profileRef: string;
|
|
719
|
+
expectedConfigurationRevision: number;
|
|
720
|
+
} & {
|
|
721
|
+
[K in keyof ReadInputs]: {
|
|
722
|
+
operation: K;
|
|
723
|
+
input: ReadInputs[K];
|
|
724
|
+
};
|
|
725
|
+
}[keyof ReadInputs];
|
|
726
|
+
declare const PRESENTATION_PROTOCOL: "native-engagement.presentation/1";
|
|
727
|
+
declare const PRESENTATION_HEADER = "x-native-engagement-presentation";
|
|
728
|
+
declare const PRESENTATION_SCOPE_HEADER = "x-native-engagement-expected-scope";
|
|
729
|
+
declare const PRESENTATION_SCOPE_ACK_HEADER = "x-native-engagement-scope-verified";
|
|
730
|
+
declare const PRESENTATION_LIMITS: {
|
|
731
|
+
readonly resources: 16;
|
|
732
|
+
readonly nextActions: 8;
|
|
733
|
+
readonly bytes: 16384;
|
|
734
|
+
};
|
|
735
|
+
export interface PresentationScope {
|
|
736
|
+
tenantId: string;
|
|
737
|
+
projectRef: string | null;
|
|
738
|
+
workspaceRef: string | null;
|
|
739
|
+
}
|
|
740
|
+
export type PresentationResourceKind = "INTERACTION" | "ASSET";
|
|
741
|
+
export type PresentationLink = {
|
|
742
|
+
rel: "review" | "preview";
|
|
743
|
+
audience: "HUMAN";
|
|
744
|
+
url: string;
|
|
745
|
+
} | {
|
|
746
|
+
rel: "query";
|
|
747
|
+
audience: "AGENT";
|
|
748
|
+
url: string;
|
|
749
|
+
method: "POST";
|
|
750
|
+
};
|
|
751
|
+
export interface PresentationResource {
|
|
752
|
+
kind: PresentationResourceKind;
|
|
753
|
+
ref: string;
|
|
754
|
+
links: PresentationLink[];
|
|
755
|
+
revision?: number;
|
|
756
|
+
requestDigest?: string;
|
|
757
|
+
state?: string;
|
|
758
|
+
digest?: string;
|
|
759
|
+
sourceVersion?: string;
|
|
760
|
+
}
|
|
761
|
+
export interface PresentationAction {
|
|
762
|
+
kind: "HUMAN_REVIEW" | "HUMAN_CONFIGURATION" | "HUMAN_AUTHENTICATION" | "WAIT" | "READ_RESULT";
|
|
763
|
+
resource: {
|
|
764
|
+
kind: PresentationResourceKind;
|
|
765
|
+
ref: string;
|
|
766
|
+
};
|
|
250
767
|
}
|
|
251
|
-
export
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
768
|
+
export type PresentationResume = {
|
|
769
|
+
kind: "QUERY";
|
|
770
|
+
version: string;
|
|
771
|
+
context: PresentationScope;
|
|
772
|
+
} & ({
|
|
773
|
+
name: "engagement.interaction.get";
|
|
774
|
+
payload: {
|
|
775
|
+
interactionRef: string;
|
|
776
|
+
};
|
|
777
|
+
} | {
|
|
778
|
+
name: "asset.get";
|
|
779
|
+
payload: {
|
|
780
|
+
assetRef: string;
|
|
781
|
+
};
|
|
782
|
+
});
|
|
783
|
+
export interface ResponsePresentation {
|
|
784
|
+
protocol: typeof PRESENTATION_PROTOCOL;
|
|
785
|
+
scope: PresentationScope;
|
|
786
|
+
resources: PresentationResource[];
|
|
787
|
+
nextActions: PresentationAction[];
|
|
788
|
+
resume: PresentationResume;
|
|
789
|
+
}
|
|
790
|
+
export interface PresentationCapabilities {
|
|
791
|
+
protocol: typeof PRESENTATION_PROTOCOL;
|
|
792
|
+
requestHeader: typeof PRESENTATION_HEADER;
|
|
793
|
+
scopeHeader: typeof PRESENTATION_SCOPE_HEADER;
|
|
794
|
+
scopeAckHeader: typeof PRESENTATION_SCOPE_ACK_HEADER;
|
|
795
|
+
limits: typeof PRESENTATION_LIMITS;
|
|
796
|
+
frontendOrigin?: string;
|
|
797
|
+
apiOrigin?: string;
|
|
798
|
+
}
|
|
799
|
+
export interface PresentedEnvelope<T> {
|
|
800
|
+
ok: true;
|
|
801
|
+
contractName: string;
|
|
802
|
+
contractVersion: string;
|
|
803
|
+
resolvedTenantId?: string;
|
|
804
|
+
result: T;
|
|
805
|
+
presentation?: ResponsePresentation;
|
|
806
|
+
}
|
|
807
|
+
export type PresentationMode = "auto" | "off";
|
|
808
|
+
export interface PresentationRequest {
|
|
809
|
+
mode?: PresentationMode;
|
|
810
|
+
expectedScope?: PresentationScope;
|
|
811
|
+
expectedVersion?: string;
|
|
812
|
+
}
|
|
813
|
+
declare const BROWSER_UPLOAD_ACTIONS: readonly [
|
|
814
|
+
"MATERIALIZE",
|
|
815
|
+
"PREPARE",
|
|
816
|
+
"OBSERVE",
|
|
817
|
+
"PAUSE",
|
|
818
|
+
"RESUME",
|
|
819
|
+
"CANCEL"
|
|
820
|
+
];
|
|
821
|
+
export type BrowserUploadAction = (typeof BROWSER_UPLOAD_ACTIONS)[number];
|
|
822
|
+
export interface BrowserUploadProgress {
|
|
823
|
+
readonly protocol: 1;
|
|
824
|
+
readonly revision: number;
|
|
825
|
+
readonly stage: "MATERIAL" | "BROWSER";
|
|
826
|
+
readonly phase: "MATERIALIZING" | "MATERIAL_READY" | "PREPARATION_REQUIRED" | "UPLOADING" | "VERIFYING" | "PAUSED" | "RETRY_REQUIRED" | "READY" | "CANCELLED" | "UNKNOWN";
|
|
827
|
+
readonly manifestDigest: string;
|
|
828
|
+
readonly materializedBytes: number;
|
|
829
|
+
readonly verifiedBytes: number;
|
|
830
|
+
readonly totalBytes: number;
|
|
831
|
+
/** 平台未展示准确字节量时为 null;百分比不得冒充已确认分片字节。 */
|
|
832
|
+
readonly uploadedBytes: number | null;
|
|
833
|
+
/** 页面百分比向下取整;不据此制造已确认字节数。 */
|
|
834
|
+
readonly progressPercent: number | null;
|
|
835
|
+
readonly uploadSessionRef: string | null;
|
|
836
|
+
readonly preparationState: "NOT_INVOKED" | "INVOKED" | "UNKNOWN";
|
|
837
|
+
readonly submitState: "NOT_INVOKED" | "INVOKED" | "UNKNOWN";
|
|
838
|
+
readonly canPause: boolean;
|
|
839
|
+
readonly canResume: boolean;
|
|
840
|
+
readonly canCancel: boolean;
|
|
841
|
+
readonly reasonCode: string | null;
|
|
842
|
+
readonly observedAt: string;
|
|
257
843
|
}
|
|
258
|
-
export interface
|
|
259
|
-
readonly
|
|
260
|
-
readonly accountRef: string;
|
|
844
|
+
export interface BrowserUploadView {
|
|
845
|
+
readonly tenantId: string;
|
|
261
846
|
readonly profileRef: string;
|
|
262
|
-
readonly
|
|
263
|
-
readonly
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
readonly
|
|
270
|
-
readonly
|
|
271
|
-
readonly inboxEngagementRef: string;
|
|
272
|
-
readonly inboxConversationRef: string;
|
|
273
|
-
readonly sourceFactRef: string;
|
|
274
|
-
readonly policyRef: string;
|
|
275
|
-
readonly policyVersion: number;
|
|
276
|
-
readonly policyDigest: string;
|
|
277
|
-
} | {
|
|
278
|
-
readonly kind: "DELEGATED_NATIVE_OBSERVATION";
|
|
279
|
-
readonly principalRef: string;
|
|
280
|
-
readonly operationKey: string;
|
|
281
|
-
readonly dispatchRef: string;
|
|
282
|
-
readonly reportDigest: string;
|
|
283
|
-
readonly policyRef: string;
|
|
284
|
-
readonly policyVersion: number;
|
|
285
|
-
readonly policyDigest: string;
|
|
847
|
+
readonly engagementRef: string;
|
|
848
|
+
readonly conversationRef: string;
|
|
849
|
+
readonly messageRef: string;
|
|
850
|
+
readonly requestRef: string;
|
|
851
|
+
readonly status: string;
|
|
852
|
+
readonly browserUpload: BrowserUploadProgress | null;
|
|
853
|
+
readonly support: {
|
|
854
|
+
readonly protocol: 1;
|
|
855
|
+
readonly available: boolean;
|
|
286
856
|
};
|
|
287
857
|
}
|
|
858
|
+
export type BrowserSocialPlatform = typeof BROWSER_SOCIAL_PLATFORMS[number];
|
|
859
|
+
export interface BrowserAccountActivityView {
|
|
860
|
+
readonly tenantId: string;
|
|
861
|
+
readonly profileRef: string;
|
|
862
|
+
readonly revision: number;
|
|
863
|
+
readonly state: "READY" | "WAITING" | "PAUSED";
|
|
864
|
+
readonly nextAllowedAt: string;
|
|
865
|
+
readonly pauseRef: string | null;
|
|
866
|
+
readonly reasonCode: string | null;
|
|
867
|
+
}
|
|
868
|
+
export interface BrowserAccountView extends BrowserAccountActivityView {
|
|
869
|
+
readonly platform: BrowserSocialPlatform;
|
|
870
|
+
readonly externalAccountRef: string;
|
|
871
|
+
}
|
|
288
872
|
export interface SocialMediaCaptureFailure {
|
|
289
873
|
readonly contentRef: string;
|
|
290
874
|
readonly sourceDigest: string;
|
|
291
875
|
readonly mediaRef: string;
|
|
292
876
|
readonly reasonCode: string;
|
|
293
877
|
}
|
|
294
|
-
/**
|
|
295
|
-
export interface
|
|
296
|
-
readonly platform: "XIAOHONGSHU"
|
|
297
|
-
readonly
|
|
878
|
+
/** transport 为必填判别项,旧 TIKTOK API scope 不会被重新解释成网页授权。 */
|
|
879
|
+
export interface BrowserSocialScope {
|
|
880
|
+
readonly platform: Exclude<BrowserSocialPlatform, "XIAOHONGSHU">;
|
|
881
|
+
readonly transport: "BROWSER";
|
|
882
|
+
readonly surface: "SEARCH" | "VIDEO" | "PROFILE" | "DIRECT" | "NOTIFICATIONS" | "INBOX";
|
|
298
883
|
readonly rootRef: string;
|
|
299
884
|
readonly audience: "PUBLIC" | "ACCOUNT_OWNED" | "PRIVATE";
|
|
300
885
|
readonly query?: string;
|
|
301
886
|
readonly peerRef?: string;
|
|
302
887
|
}
|
|
303
|
-
export interface
|
|
888
|
+
export interface BrowserMediaSelection {
|
|
304
889
|
readonly assetRef: string;
|
|
305
890
|
readonly digest: string;
|
|
306
891
|
readonly sourceVersion: string;
|
|
@@ -308,34 +893,200 @@ export interface XiaohongshuMediaSelection {
|
|
|
308
893
|
readonly byteLength: number;
|
|
309
894
|
readonly filename: string;
|
|
310
895
|
}
|
|
311
|
-
export interface
|
|
312
|
-
readonly
|
|
313
|
-
|
|
314
|
-
readonly
|
|
315
|
-
readonly
|
|
316
|
-
}
|
|
317
|
-
/** Current creator UI choices are part of the reviewed content, not local execution defaults. */
|
|
318
|
-
export interface XiaohongshuPublicationSettings {
|
|
319
|
-
readonly aiAssisted: boolean;
|
|
320
|
-
readonly original: boolean;
|
|
321
|
-
readonly allowCopy: boolean | null;
|
|
896
|
+
export interface BrowserPublicationSettings {
|
|
897
|
+
readonly aiAssisted: boolean | null;
|
|
898
|
+
readonly original: boolean | null;
|
|
899
|
+
readonly commercial: boolean | null;
|
|
900
|
+
readonly allowComments: boolean | null;
|
|
322
901
|
readonly scheduledAt: string | null;
|
|
323
|
-
|
|
324
|
-
readonly extras: "NONE" | {
|
|
325
|
-
readonly components: readonly XiaohongshuPublicationComponent[];
|
|
326
|
-
};
|
|
902
|
+
readonly timeZone: string;
|
|
327
903
|
}
|
|
328
|
-
export type
|
|
904
|
+
export type BrowserSocialIntent = {
|
|
329
905
|
readonly kind: "COMMENT" | "REPLY";
|
|
330
906
|
} | {
|
|
331
|
-
readonly kind: "
|
|
332
|
-
readonly
|
|
333
|
-
readonly presentation?: "VOICE_NOTE";
|
|
907
|
+
readonly kind: "LIKE";
|
|
908
|
+
readonly value: boolean;
|
|
334
909
|
} | {
|
|
335
|
-
readonly kind: "
|
|
910
|
+
readonly kind: "FOLLOW";
|
|
336
911
|
readonly value: boolean;
|
|
337
912
|
} | {
|
|
338
|
-
readonly kind: "
|
|
913
|
+
readonly kind: "COMMENT_DELETE";
|
|
914
|
+
} | {
|
|
915
|
+
readonly kind: "COMMENT_VISIBILITY";
|
|
916
|
+
readonly visibility: "HIDDEN" | "VISIBLE";
|
|
917
|
+
} | {
|
|
918
|
+
readonly kind: "SCHEDULE_CANCEL";
|
|
919
|
+
} | {
|
|
920
|
+
readonly kind: "SCHEDULE_RESCHEDULE";
|
|
921
|
+
readonly scheduledAt: string;
|
|
922
|
+
readonly timeZone: string;
|
|
923
|
+
} | {
|
|
924
|
+
readonly kind: "DIRECT";
|
|
925
|
+
readonly assets?: readonly BrowserMediaSelection[];
|
|
926
|
+
readonly presentation?: "VOICE_NOTE";
|
|
927
|
+
} | {
|
|
928
|
+
readonly kind: "DIRECT_START";
|
|
929
|
+
readonly peerRef: string;
|
|
930
|
+
} | {
|
|
931
|
+
readonly kind: "PUBLISH";
|
|
932
|
+
readonly title: string;
|
|
933
|
+
readonly tags: readonly string[];
|
|
934
|
+
readonly visibility: "PUBLIC" | "SELF_ONLY" | "FRIENDS";
|
|
935
|
+
readonly video: BrowserMediaSelection;
|
|
936
|
+
readonly cover?: BrowserMediaSelection;
|
|
937
|
+
readonly settings: BrowserPublicationSettings;
|
|
938
|
+
};
|
|
939
|
+
export interface BrowserSocialEvidence {
|
|
940
|
+
readonly accountRef: string;
|
|
941
|
+
readonly peerRef?: string;
|
|
942
|
+
readonly title?: string;
|
|
943
|
+
readonly interaction?: {
|
|
944
|
+
readonly like?: "LIKED" | "NOT_LIKED";
|
|
945
|
+
readonly follow?: "FOLLOWING" | "NOT_FOLLOWING";
|
|
946
|
+
};
|
|
947
|
+
readonly moderation?: {
|
|
948
|
+
readonly authority: "OWN_COMMENT" | "OWN_VIDEO" | "NONE";
|
|
949
|
+
readonly videoAuthorRef: string;
|
|
950
|
+
readonly visibility?: "HIDDEN" | "VISIBLE";
|
|
951
|
+
readonly scope?: "COMMENT";
|
|
952
|
+
};
|
|
953
|
+
readonly media?: readonly {
|
|
954
|
+
readonly mediaRef: string;
|
|
955
|
+
readonly kind: "IMAGE" | "VIDEO" | "AUDIO";
|
|
956
|
+
readonly presentation?: "VOICE_NOTE";
|
|
957
|
+
}[];
|
|
958
|
+
readonly replyTo?: {
|
|
959
|
+
readonly targetRef: string;
|
|
960
|
+
readonly authorRef: string;
|
|
961
|
+
readonly rootCommentRef: string;
|
|
962
|
+
};
|
|
963
|
+
readonly unsupported?: {
|
|
964
|
+
readonly platformType: string;
|
|
965
|
+
readonly detail: "NOT_READ";
|
|
966
|
+
readonly reasonCode: "BROWSER_MESSAGE_TYPE_NOT_MAPPED";
|
|
967
|
+
};
|
|
968
|
+
readonly notification?: {
|
|
969
|
+
readonly kind: "COMMENT" | "REPLY" | "MENTION";
|
|
970
|
+
readonly subjectRef: string;
|
|
971
|
+
readonly videoRef: string;
|
|
972
|
+
readonly occurredAt: string;
|
|
973
|
+
readonly visibility?: "PUBLIC" | "SELF_ONLY" | "FRIENDS" | "UNKNOWN";
|
|
974
|
+
};
|
|
975
|
+
readonly publication?: {
|
|
976
|
+
readonly state: "PROCESSING" | "REVIEW_PENDING" | "PUBLISHED" | "REJECTED" | "SCHEDULED" | "CANCELLED";
|
|
977
|
+
readonly scheduledAt: string | null;
|
|
978
|
+
readonly visibility?: "PUBLIC" | "SELF_ONLY" | "FRIENDS" | "UNKNOWN";
|
|
979
|
+
};
|
|
980
|
+
}
|
|
981
|
+
export type BrowserPublicationObservation = NonNullable<BrowserSocialEvidence["publication"]> & {
|
|
982
|
+
readonly objectRef: string;
|
|
983
|
+
readonly observedAt: string;
|
|
984
|
+
readonly reviewRequired: boolean;
|
|
985
|
+
};
|
|
986
|
+
/** 真实私聊窗口的观察;Owner 引用只由 Core 从已核实线程派生。 */
|
|
987
|
+
export interface BrowserDirectObservation {
|
|
988
|
+
readonly state: "NEW_THREAD" | "EXISTING_THREAD" | "MESSAGE_REQUEST" | "UNREACHABLE" | "UNKNOWN";
|
|
989
|
+
readonly peerRef: string;
|
|
990
|
+
readonly scope: BrowserSocialScope | null;
|
|
991
|
+
readonly observedAt: string;
|
|
992
|
+
readonly reviewRequired: boolean;
|
|
993
|
+
readonly engagementRef?: string;
|
|
994
|
+
readonly conversationRef?: string;
|
|
995
|
+
}
|
|
996
|
+
export interface BrowserActionObservation {
|
|
997
|
+
readonly kind: "LIKE" | "FOLLOW" | "COMMENT_DELETE" | "COMMENT_VISIBILITY";
|
|
998
|
+
readonly targetRef: string;
|
|
999
|
+
readonly rootRef: string;
|
|
1000
|
+
readonly parentRef: string | null;
|
|
1001
|
+
readonly authorRef: string;
|
|
1002
|
+
readonly state: "LIKED" | "NOT_LIKED" | "FOLLOWING" | "NOT_FOLLOWING" | "DELETED" | "HIDDEN" | "VISIBLE";
|
|
1003
|
+
readonly visibilityScope?: "COMMENT";
|
|
1004
|
+
readonly observedAt: string;
|
|
1005
|
+
}
|
|
1006
|
+
export interface BrowserSocialReadOptions {
|
|
1007
|
+
readonly view?: "CONTENT" | "CAPABILITIES" | "PUBLICATIONS" | "SCHEDULED";
|
|
1008
|
+
readonly pageLimit?: number;
|
|
1009
|
+
readonly maxItems?: number;
|
|
1010
|
+
readonly maxExpansions?: number;
|
|
1011
|
+
readonly maxScrolls?: number;
|
|
1012
|
+
readonly direction?: "FORWARD" | "BACKWARD";
|
|
1013
|
+
readonly resumeBeforeContentRef?: string;
|
|
1014
|
+
readonly resumeAfterContentRef?: string;
|
|
1015
|
+
readonly captureMedia?: boolean;
|
|
1016
|
+
}
|
|
1017
|
+
export interface BrowserSocialTraversal {
|
|
1018
|
+
readonly pagesVisited: number;
|
|
1019
|
+
readonly expansions: number;
|
|
1020
|
+
readonly scrolls: number;
|
|
1021
|
+
readonly stoppedBy: "EXHAUSTED" | "PAGE_LIMIT" | "ITEM_LIMIT" | "NO_PROGRESS" | "CURRENT_VIEW" | "TIME_LIMIT" | "CONTROL_LIMIT";
|
|
1022
|
+
readonly nextAfterContentRef: string | null;
|
|
1023
|
+
readonly nextBeforeContentRef: string | null;
|
|
1024
|
+
readonly direction: "FORWARD" | "BACKWARD";
|
|
1025
|
+
readonly beforeContentRef: string | null;
|
|
1026
|
+
readonly afterContentRef: string | null;
|
|
1027
|
+
readonly startedAt: string;
|
|
1028
|
+
readonly finishedAt: string;
|
|
1029
|
+
}
|
|
1030
|
+
export interface BrowserInstalledCapabilities {
|
|
1031
|
+
readonly basis: "INSTALLED_MAPPING";
|
|
1032
|
+
readonly capabilities: readonly {
|
|
1033
|
+
readonly name: string;
|
|
1034
|
+
readonly available: boolean;
|
|
1035
|
+
readonly reasonCode: string | null;
|
|
1036
|
+
}[];
|
|
1037
|
+
}
|
|
1038
|
+
export interface BrowserSocialReadWindow {
|
|
1039
|
+
readonly view: NonNullable<BrowserSocialReadOptions["view"]>;
|
|
1040
|
+
readonly observedAt: string;
|
|
1041
|
+
readonly contentRefs: readonly string[];
|
|
1042
|
+
readonly traversal?: BrowserSocialTraversal;
|
|
1043
|
+
readonly captureFailures?: readonly SocialMediaCaptureFailure[];
|
|
1044
|
+
}
|
|
1045
|
+
/** Browser-backed Xiaohongshu scopes are separate from official API capabilities. */
|
|
1046
|
+
export interface XiaohongshuScope {
|
|
1047
|
+
readonly platform: "XIAOHONGSHU";
|
|
1048
|
+
readonly surface: "SEARCH" | "NOTE" | "PROFILE" | "DIRECT" | "NOTIFICATIONS" | "INBOX";
|
|
1049
|
+
readonly rootRef: string;
|
|
1050
|
+
readonly audience: "PUBLIC" | "ACCOUNT_OWNED" | "PRIVATE";
|
|
1051
|
+
readonly query?: string;
|
|
1052
|
+
readonly peerRef?: string;
|
|
1053
|
+
}
|
|
1054
|
+
export interface XiaohongshuMediaSelection {
|
|
1055
|
+
readonly assetRef: string;
|
|
1056
|
+
readonly digest: string;
|
|
1057
|
+
readonly sourceVersion: string;
|
|
1058
|
+
readonly mediaType: string;
|
|
1059
|
+
readonly byteLength: number;
|
|
1060
|
+
readonly filename: string;
|
|
1061
|
+
}
|
|
1062
|
+
export interface XiaohongshuPublicationComponent {
|
|
1063
|
+
readonly kind: "LOCATION" | "COLLECTION" | "MENTION" | "ACTIVITY" | "COMMERCIAL";
|
|
1064
|
+
/** Identity observed from the normal platform UI, never a URL or a display-name guess. */
|
|
1065
|
+
readonly id: string;
|
|
1066
|
+
readonly name: string;
|
|
1067
|
+
}
|
|
1068
|
+
/** Current creator UI choices are part of the reviewed content, not local execution defaults. */
|
|
1069
|
+
export interface XiaohongshuPublicationSettings {
|
|
1070
|
+
readonly aiAssisted: boolean;
|
|
1071
|
+
readonly original: boolean;
|
|
1072
|
+
readonly allowCopy: boolean | null;
|
|
1073
|
+
readonly scheduledAt: string | null;
|
|
1074
|
+
/** NONE remains valid for existing reviewed messages and retained effects. */
|
|
1075
|
+
readonly extras: "NONE" | {
|
|
1076
|
+
readonly components: readonly XiaohongshuPublicationComponent[];
|
|
1077
|
+
};
|
|
1078
|
+
}
|
|
1079
|
+
export type XiaohongshuIntent = {
|
|
1080
|
+
readonly kind: "COMMENT" | "REPLY";
|
|
1081
|
+
} | {
|
|
1082
|
+
readonly kind: "DIRECT";
|
|
1083
|
+
readonly assets?: readonly XiaohongshuMediaSelection[];
|
|
1084
|
+
readonly presentation?: "VOICE_NOTE";
|
|
1085
|
+
} | {
|
|
1086
|
+
readonly kind: "LIKE" | "FAVORITE";
|
|
1087
|
+
readonly value: boolean;
|
|
1088
|
+
} | {
|
|
1089
|
+
readonly kind: "SCHEDULE_CANCEL";
|
|
339
1090
|
} | {
|
|
340
1091
|
readonly kind: "SCHEDULE_RESCHEDULE";
|
|
341
1092
|
readonly scheduledAt: string;
|
|
@@ -405,670 +1156,238 @@ export interface XiaohongshuTraversal {
|
|
|
405
1156
|
readonly startedAt: string;
|
|
406
1157
|
readonly finishedAt: string;
|
|
407
1158
|
}
|
|
408
|
-
export
|
|
409
|
-
|
|
1159
|
+
export interface AgentStackScope {
|
|
1160
|
+
readonly authorityRef: string;
|
|
1161
|
+
readonly sourcePrincipal: Readonly<{
|
|
1162
|
+
issuer: string;
|
|
1163
|
+
subject: string;
|
|
1164
|
+
}>;
|
|
410
1165
|
readonly tenantId: string;
|
|
411
|
-
readonly
|
|
412
|
-
readonly
|
|
413
|
-
readonly
|
|
414
|
-
readonly
|
|
415
|
-
|
|
416
|
-
readonly
|
|
1166
|
+
readonly workspaceId: string;
|
|
1167
|
+
readonly projectId: string;
|
|
1168
|
+
readonly businessAgentId: string;
|
|
1169
|
+
readonly businessAgentVersionId: string;
|
|
1170
|
+
/** 经签名的上游服务凭据租约 ID;正式生产端配对要求此字段以隔离轮换后的旧断言。 */
|
|
1171
|
+
readonly sourceCredentialId?: string;
|
|
417
1172
|
}
|
|
418
|
-
export interface
|
|
419
|
-
readonly
|
|
420
|
-
readonly
|
|
1173
|
+
export interface TenantContextInput {
|
|
1174
|
+
readonly tenantId?: string | undefined;
|
|
1175
|
+
readonly principalRef?: string | undefined;
|
|
1176
|
+
readonly actorRef?: string | undefined;
|
|
1177
|
+
readonly authorizationScopes?: readonly string[] | undefined;
|
|
1178
|
+
readonly projectRef?: string | undefined;
|
|
1179
|
+
readonly workspaceRef?: string | undefined;
|
|
1180
|
+
/** Signature-verified JWT issuer, never a caller-supplied business payload. */
|
|
1181
|
+
readonly identityIssuer?: string | undefined;
|
|
1182
|
+
/** Signature-verified JWT subject, never a caller-supplied business payload. */
|
|
1183
|
+
readonly identitySubject?: string | undefined;
|
|
1184
|
+
/** 只由验证签名的 Agent Stack 适配器产生,HTTP 业务 payload 不得提供。 */
|
|
1185
|
+
readonly agentStack?: AgentStackScope | undefined;
|
|
421
1186
|
}
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
readonly
|
|
425
|
-
readonly
|
|
426
|
-
readonly state: "AGENT_CONTROLLED" | "HANDOFF_REQUESTED" | "HUMAN_CONTROLLED";
|
|
427
|
-
readonly controlScope: "ENGAGEMENT_OUTBOUND_AUTOMATION";
|
|
428
|
-
readonly handoffRef?: string;
|
|
429
|
-
readonly requestedBy?: string;
|
|
430
|
-
readonly requestedAt?: string;
|
|
431
|
-
readonly reason?: string;
|
|
432
|
-
readonly assigneeRef?: string;
|
|
433
|
-
readonly controlledBy?: string;
|
|
434
|
-
readonly controlledAt?: string;
|
|
435
|
-
readonly resumedBy?: string;
|
|
436
|
-
readonly resumedAt?: string;
|
|
437
|
-
readonly sessionCorrelationRef?: string;
|
|
1187
|
+
/** EMAIL 专属的内嵌映射;文件字节身份仍由原附件六字段清单拥有。 */
|
|
1188
|
+
export interface EmailInlineImage {
|
|
1189
|
+
readonly cid: string;
|
|
1190
|
+
readonly assetRef: string;
|
|
438
1191
|
}
|
|
439
|
-
export interface
|
|
440
|
-
readonly
|
|
1192
|
+
export interface MailSignatureImage extends EmailInlineImage {
|
|
1193
|
+
readonly filename: string;
|
|
1194
|
+
}
|
|
1195
|
+
/** 草稿中冻结的签名快照;发送和核查不再读取可变模板。 */
|
|
1196
|
+
export interface FrozenMailSignature {
|
|
1197
|
+
readonly signatureRef: string;
|
|
441
1198
|
readonly version: number;
|
|
442
|
-
readonly
|
|
443
|
-
readonly
|
|
444
|
-
readonly
|
|
1199
|
+
readonly digest: string;
|
|
1200
|
+
readonly profileRef: string;
|
|
1201
|
+
readonly text: string;
|
|
1202
|
+
readonly html?: string;
|
|
1203
|
+
readonly inlineImages: readonly EmailInlineImage[];
|
|
445
1204
|
}
|
|
446
|
-
export interface
|
|
447
|
-
readonly
|
|
448
|
-
readonly
|
|
449
|
-
readonly
|
|
1205
|
+
export interface EmailRichContent {
|
|
1206
|
+
readonly text: string;
|
|
1207
|
+
readonly html?: string;
|
|
1208
|
+
readonly inlineImages?: readonly EmailInlineImage[];
|
|
1209
|
+
readonly signature?: FrozenMailSignature;
|
|
450
1210
|
}
|
|
451
|
-
export interface
|
|
1211
|
+
export interface CommunicationPolicyBasis {
|
|
1212
|
+
readonly policyRef: string;
|
|
1213
|
+
readonly version: number;
|
|
1214
|
+
readonly digest: string;
|
|
1215
|
+
readonly matchedRuleRefs: readonly string[];
|
|
1216
|
+
readonly basisDigest: string;
|
|
1217
|
+
}
|
|
1218
|
+
/** 由已安装适配器协商的宿主需求;业务身份、设备检查及资源租约仍各自生效。 */
|
|
1219
|
+
export interface NodeExecutionRequirements {
|
|
452
1220
|
readonly protocol: 1;
|
|
453
|
-
readonly
|
|
454
|
-
readonly
|
|
455
|
-
readonly
|
|
456
|
-
readonly ownReaction: "NOT_ATTESTED";
|
|
457
|
-
readonly following: "NOT_ATTESTED";
|
|
458
|
-
readonly visibleText: readonly {
|
|
459
|
-
readonly captureKey: string;
|
|
460
|
-
readonly text: string;
|
|
461
|
-
}[];
|
|
462
|
-
readonly dynamicRead: {
|
|
463
|
-
readonly basis: "EXACT_FINDER_PROGRESS_ONLY";
|
|
464
|
-
readonly firstObservedAt: string;
|
|
465
|
-
readonly secondObservedAt: string;
|
|
466
|
-
readonly firstRawDigest: string;
|
|
467
|
-
readonly secondRawDigest: string;
|
|
468
|
-
readonly firstTreeDigest: string;
|
|
469
|
-
readonly secondTreeDigest: string;
|
|
470
|
-
readonly comparisonDigest: string;
|
|
471
|
-
readonly firstValue: string;
|
|
472
|
-
readonly secondValue: string;
|
|
473
|
-
};
|
|
1221
|
+
readonly hostSleepMonitor: boolean;
|
|
1222
|
+
readonly hostDisplay: boolean;
|
|
1223
|
+
readonly hostDesktopSession: boolean;
|
|
474
1224
|
}
|
|
475
|
-
|
|
476
|
-
export
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
readonly
|
|
480
|
-
readonly
|
|
481
|
-
readonly
|
|
482
|
-
readonly
|
|
483
|
-
readonly
|
|
484
|
-
readonly
|
|
485
|
-
readonly visibility: "FULLY_VISIBLE" | "CLIPPED";
|
|
486
|
-
readonly partial: boolean;
|
|
487
|
-
readonly rowNumber: number | null;
|
|
1225
|
+
/** The exact accessible display belongs to its outer source row, without author or parent identity. */
|
|
1226
|
+
export interface NativeQuotedDisplay {
|
|
1227
|
+
readonly schemaVersion: 1;
|
|
1228
|
+
readonly text: string;
|
|
1229
|
+
readonly basis: "WECHAT_NATIVE_QUOTE_ROW" | "WECHAT_DESKTOP_CLIPBOARD_QUOTE" | "WECHAT_DESKTOP_RENDERED_QUOTE";
|
|
1230
|
+
readonly displayCoverage: "CURRENT_ACCESSIBLE_DISPLAY" | "CURRENT_CLIPBOARD_DISPLAY" | "CURRENT_RENDERED_VIEW";
|
|
1231
|
+
readonly displayTruncated: false;
|
|
1232
|
+
readonly originalContentCompleteness: "NOT_ATTESTED";
|
|
1233
|
+
readonly authorIdentity: "NOT_ATTESTED";
|
|
1234
|
+
readonly parentMessageIdentity: "NOT_ATTESTED";
|
|
488
1235
|
}
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
readonly
|
|
493
|
-
readonly
|
|
494
|
-
readonly
|
|
495
|
-
readonly
|
|
496
|
-
readonly accountSelection: "NOT_ATTESTED";
|
|
497
|
-
readonly accountLabel: string | null;
|
|
498
|
-
readonly domainExposure: "EXPOSED" | "NOT_EXPOSED";
|
|
499
|
-
readonly refreshQualification: "NOT_REQUESTED" | "SAFE_DOMAIN_NATIVE_MENU" | "OFFICIAL_ACCOUNT_NATIVE_MENU";
|
|
500
|
-
readonly article: {
|
|
501
|
-
readonly title: string | null;
|
|
502
|
-
readonly byline: string | null;
|
|
503
|
-
readonly publisherLabel: string | null;
|
|
504
|
-
readonly publishedLabel: string | null;
|
|
505
|
-
};
|
|
506
|
-
readonly identityClue: {
|
|
507
|
-
readonly namespace: "OFFICIAL_ACCOUNT";
|
|
508
|
-
readonly clueKind: "OFFICIAL_ACCOUNT_ID";
|
|
509
|
-
readonly value: string;
|
|
510
|
-
readonly basis: "VISIBLE_PROFILE_FIELD";
|
|
511
|
-
readonly verification: "UI_DISPLAY_ONLY";
|
|
512
|
-
} | null;
|
|
513
|
-
readonly rows: readonly WechatOfficialRow[];
|
|
514
|
-
readonly commentCountLabel: string | null;
|
|
515
|
-
readonly coverage: {
|
|
516
|
-
readonly fullText: "NOT_ATTESTED";
|
|
517
|
-
readonly comments: "NOT_ATTESTED";
|
|
518
|
-
readonly excludedUnderlay: boolean;
|
|
519
|
-
readonly excludedOffscreen: boolean;
|
|
520
|
-
};
|
|
1236
|
+
/** The occurrence is observed; its human identity has not been established.
|
|
1237
|
+
* This is never a Participant, membership proof or permission to act for a person. */
|
|
1238
|
+
export interface NativeGroupAuthorResolution {
|
|
1239
|
+
readonly schemaVersion: 1;
|
|
1240
|
+
readonly state: "UNRESOLVED";
|
|
1241
|
+
readonly basis: "CURRENT_RENDERED_OCCURRENCE";
|
|
1242
|
+
readonly evidenceDigest: string;
|
|
521
1243
|
}
|
|
522
|
-
/**
|
|
523
|
-
export interface
|
|
524
|
-
readonly
|
|
525
|
-
readonly kind: "
|
|
526
|
-
readonly
|
|
527
|
-
readonly
|
|
528
|
-
readonly
|
|
529
|
-
readonly
|
|
530
|
-
readonly
|
|
531
|
-
readonly
|
|
532
|
-
readonly visibleMediaItems: number;
|
|
533
|
-
readonly declaredMediaTotal: number | null;
|
|
1244
|
+
/** Accessible card/quote text is an observation, never a filename, MIME, URL or original bytes. */
|
|
1245
|
+
export interface NativeRenderedMedia {
|
|
1246
|
+
readonly schemaVersion: 1;
|
|
1247
|
+
readonly kind: "SHARED_VIDEO_CARD" | "QUOTED_MEDIA_DISPLAY" | "NATIVE_FILE_DISPLAY" | "NATIVE_IMAGE_DISPLAY" | "NATIVE_VIDEO_DISPLAY" | "NATIVE_INBOUND_VOICE_DISPLAY";
|
|
1248
|
+
readonly displayText: string;
|
|
1249
|
+
readonly coverage: "RENDERED_CARD_ONLY" | "RENDERED_QUOTE_ONLY" | "RENDERED_NATIVE_MEDIA_ONLY";
|
|
1250
|
+
readonly originalBytes: "NOT_ACQUIRED";
|
|
1251
|
+
readonly originalContentCompleteness: "NOT_ATTESTED";
|
|
1252
|
+
readonly authorIdentity: "NOT_ATTESTED";
|
|
1253
|
+
readonly parentMessageIdentity: "NOT_ATTESTED";
|
|
534
1254
|
}
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
readonly
|
|
538
|
-
readonly
|
|
539
|
-
readonly
|
|
540
|
-
readonly
|
|
541
|
-
readonly authorBadgeObserved: boolean;
|
|
542
|
-
readonly threadRootKey: string | null;
|
|
543
|
-
readonly relationBasis: "ROOT_ROW_STRUCTURE" | "VISIBLE_GROUPED_REPLY_ROW";
|
|
544
|
-
readonly directReplyTarget: "NOT_ATTESTED";
|
|
1255
|
+
/** Native UI observation only. Neither value attests network delivery or a physical request. */
|
|
1256
|
+
export interface NativeOutboundDisplay {
|
|
1257
|
+
readonly schemaVersion: 1;
|
|
1258
|
+
readonly state: "FAILED" | "NO_FAILURE_INDICATOR";
|
|
1259
|
+
readonly basis: "WECHAT_NATIVE_OUTBOUND_TEXT_ROW";
|
|
1260
|
+
readonly delivery: "NOT_ATTESTED";
|
|
545
1261
|
}
|
|
546
|
-
export interface
|
|
547
|
-
/** v1 remains the original feed/Channels/Works shape; v2 is the closed current Moments detail preview. */
|
|
548
|
-
readonly schemaVersion: 1 | 2 | 3 | 4;
|
|
549
|
-
readonly channelsFeed?: WechatChannelsFeedObservation;
|
|
550
|
-
readonly official?: WechatOfficialObservation;
|
|
1262
|
+
export interface NativeOutboundDisplayWitness {
|
|
551
1263
|
readonly observationRef: string;
|
|
552
1264
|
readonly observedAt: string;
|
|
553
|
-
readonly page: WechatOfficialPage | "MOMENTS_FEED" | "MOMENTS_DETAIL" | "CHANNELS_COMMENTS" | "CHANNELS_FEED" | "WORKS_ENTRY" | "WORKS_MEDIA_PERMISSION_NOTICE" | "WORKS_TEXT_COVER_PREVIEW";
|
|
554
|
-
readonly identityBasis: "UNBOUND_UI_LABELS_ONLY";
|
|
555
|
-
readonly referenceLifetime: "CURRENT_OBSERVATION_ONLY";
|
|
556
|
-
readonly coverage: "BOUNDED_CURRENT_RENDERED_VIEW";
|
|
557
|
-
readonly completeness: "NOT_ATTESTED";
|
|
558
|
-
readonly publicationAudience: "NOT_ATTESTED";
|
|
559
|
-
readonly businessActionsPermitted: false;
|
|
560
|
-
readonly partial: boolean;
|
|
561
|
-
readonly truncated: boolean;
|
|
562
|
-
readonly commentsCoverage: "NOT_OBSERVED" | "CURRENT_VISIBLE_ROWS_ONLY";
|
|
563
|
-
readonly commentCountLabel: string | null;
|
|
564
|
-
readonly content: readonly WechatSocialWindowContent[];
|
|
565
|
-
readonly comments: readonly WechatSocialWindowComment[];
|
|
566
|
-
readonly partialRows: readonly {
|
|
567
|
-
readonly captureKey: string;
|
|
568
|
-
readonly reasonCode: "ANDROID_WECHAT_SOCIAL_MOMENT_CONTINUES_OUTSIDE_VIEW" | "ANDROID_WECHAT_SOCIAL_COMMENT_BODY_NOT_RENDERED";
|
|
569
|
-
}[];
|
|
570
|
-
readonly notices: readonly string[];
|
|
571
1265
|
}
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
readonly
|
|
575
|
-
|
|
576
|
-
readonly physicalIdle: boolean;
|
|
577
|
-
readonly createdAt: string;
|
|
578
|
-
readonly reasonCode?: string;
|
|
579
|
-
readonly renderedObservation?: {
|
|
580
|
-
readonly observationRef: string;
|
|
581
|
-
readonly observedAt: string;
|
|
582
|
-
readonly evidenceDigest: string;
|
|
583
|
-
readonly renderedWindow: WechatSocialRenderedWindow;
|
|
1266
|
+
export interface NativeOutboundDisplayState {
|
|
1267
|
+
readonly schemaVersion: 1;
|
|
1268
|
+
readonly latest: NativeOutboundDisplayWitness & {
|
|
1269
|
+
readonly state: NativeOutboundDisplay["state"] | "UNQUALIFIED";
|
|
584
1270
|
};
|
|
1271
|
+
readonly lastFailure?: NativeOutboundDisplayWitness;
|
|
585
1272
|
}
|
|
586
|
-
|
|
587
|
-
export interface
|
|
588
|
-
readonly
|
|
589
|
-
readonly
|
|
590
|
-
|
|
591
|
-
readonly
|
|
592
|
-
readonly
|
|
593
|
-
readonly audienceParticipantRefs?: readonly string[];
|
|
1273
|
+
/** 外部 Owner 的稳定身份;本仓只消费精确版本,不维护另一份声音主库。 */
|
|
1274
|
+
export interface VoiceProfileRef {
|
|
1275
|
+
readonly ownerSystem: string;
|
|
1276
|
+
readonly ownerTenantRef: string;
|
|
1277
|
+
readonly voiceProfileRef: string;
|
|
1278
|
+
readonly version: string;
|
|
1279
|
+
readonly digest: string;
|
|
594
1280
|
}
|
|
595
|
-
export
|
|
596
|
-
|
|
597
|
-
readonly
|
|
598
|
-
readonly
|
|
599
|
-
|
|
600
|
-
readonly
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
1281
|
+
export type VoiceProfilePurpose = "BIND" | "AUDITION" | "MESSAGE" | "NARRATION";
|
|
1282
|
+
export interface VoiceProfileDocument {
|
|
1283
|
+
readonly ref: VoiceProfileRef;
|
|
1284
|
+
readonly displayName: string;
|
|
1285
|
+
readonly languages: readonly string[];
|
|
1286
|
+
readonly voiceOrigin: "BUILTIN" | "LICENSED" | "CLONED_WITH_CONSENT";
|
|
1287
|
+
readonly allowedUses: readonly VoiceProfilePurpose[];
|
|
1288
|
+
readonly expiresAt?: string;
|
|
1289
|
+
readonly sampleAssetRef?: string;
|
|
1290
|
+
readonly rightsRef?: string;
|
|
1291
|
+
}
|
|
1292
|
+
/** 模型资格是准确版本的声明;同名 voiceRef 不表示同一声线。 */
|
|
1293
|
+
export interface VoiceModelBinding {
|
|
1294
|
+
readonly bindingRef: string;
|
|
1295
|
+
readonly providerRef: string;
|
|
1296
|
+
readonly providerVersion: string;
|
|
1297
|
+
readonly modelRef: string;
|
|
1298
|
+
readonly modelDigest: string;
|
|
1299
|
+
readonly programDigest: string;
|
|
1300
|
+
readonly voiceRef: string;
|
|
1301
|
+
readonly language: string;
|
|
1302
|
+
readonly mode: "BATCH";
|
|
1303
|
+
readonly qualification: "QUALIFIED";
|
|
1304
|
+
readonly qualificationRef: string;
|
|
1305
|
+
}
|
|
1306
|
+
export interface VoiceProfileSnapshot {
|
|
1307
|
+
readonly profile: VoiceProfileDocument;
|
|
1308
|
+
readonly binding: VoiceModelBinding;
|
|
1309
|
+
readonly digest: string;
|
|
606
1310
|
}
|
|
607
|
-
/**
|
|
608
|
-
export interface
|
|
609
|
-
readonly
|
|
610
|
-
readonly
|
|
611
|
-
readonly
|
|
612
|
-
readonly
|
|
613
|
-
readonly
|
|
614
|
-
readonly
|
|
615
|
-
readonly hostBindingDigest: string;
|
|
616
|
-
readonly runtimeKind: "MOBILE";
|
|
617
|
-
readonly conversationRevision: number;
|
|
618
|
-
readonly membershipDigest: string;
|
|
1311
|
+
/** 当前授权在不可变快照外;缓存或历史回执不能延长本次许可。 */
|
|
1312
|
+
export interface VoiceProfileAuthorization {
|
|
1313
|
+
readonly connectionRef: string;
|
|
1314
|
+
readonly grantRef: string;
|
|
1315
|
+
readonly consumerTenantRef: string;
|
|
1316
|
+
readonly principalRef: string;
|
|
1317
|
+
readonly purpose: VoiceProfilePurpose;
|
|
1318
|
+
readonly expiresAt: string;
|
|
619
1319
|
}
|
|
620
|
-
export interface
|
|
621
|
-
readonly
|
|
622
|
-
readonly
|
|
623
|
-
/** 看见内容或部分共同好友评论不证明发表时的完整受众。 */
|
|
624
|
-
readonly publicationAudience: "NOT_ATTESTED";
|
|
1320
|
+
export interface VoiceProfileResolution {
|
|
1321
|
+
readonly snapshot: VoiceProfileSnapshot;
|
|
1322
|
+
readonly authorization: VoiceProfileAuthorization;
|
|
625
1323
|
}
|
|
626
|
-
export interface
|
|
627
|
-
readonly
|
|
628
|
-
readonly
|
|
629
|
-
readonly binding: SocialRenderedReadAuthority;
|
|
630
|
-
readonly evidenceKind: "ANDROID_UI_AUTOMATION";
|
|
631
|
-
readonly targetIdentity: "OWNER_SELECTED_VIEW";
|
|
632
|
-
readonly coverage: "BOUNDED_CURRENT_RENDERED_VIEW";
|
|
633
|
-
readonly contentCoverage: "RENDERED_TEXT_AND_STRUCTURE_ONLY";
|
|
634
|
-
readonly evidenceDigest: string;
|
|
635
|
-
readonly visibility: WechatSocialVisibility;
|
|
1324
|
+
export interface VoiceProfileView {
|
|
1325
|
+
readonly profile: VoiceProfileDocument;
|
|
1326
|
+
readonly authorization: VoiceProfileAuthorization;
|
|
636
1327
|
}
|
|
637
|
-
export
|
|
638
|
-
|
|
639
|
-
readonly
|
|
640
|
-
readonly
|
|
641
|
-
readonly
|
|
642
|
-
/** SQL history uses original outbox sequence, newest first, independent of observed clock. */
|
|
643
|
-
readonly items: readonly {
|
|
644
|
-
readonly messageRef: string;
|
|
645
|
-
readonly requestRef: string | null;
|
|
646
|
-
readonly kind: "PUBLISH" | "SCHEDULE_CANCEL" | "SCHEDULE_RESCHEDULE";
|
|
647
|
-
readonly status: string;
|
|
648
|
-
readonly approvedScheduledAt: string | null;
|
|
649
|
-
readonly objectRef: string | null;
|
|
650
|
-
readonly originalPublicationRequestRef: string | null;
|
|
651
|
-
readonly association: "EXACT_OBJECT" | "MISSING_PROOF" | "CONFLICT";
|
|
652
|
-
readonly currentObservation: {
|
|
653
|
-
readonly factRef: string;
|
|
654
|
-
readonly observedAt: string;
|
|
655
|
-
readonly state: "PENDING" | "CANCELLED" | "PUBLISHED";
|
|
656
|
-
readonly scheduledAt: string | null;
|
|
657
|
-
} | null;
|
|
658
|
-
}[];
|
|
1328
|
+
export interface VoiceProfileSourceSummary {
|
|
1329
|
+
readonly sourceRef: string;
|
|
1330
|
+
readonly ownerSystem: string;
|
|
1331
|
+
readonly ownerTenantRef: string;
|
|
1332
|
+
readonly allowedUses: readonly VoiceProfilePurpose[];
|
|
659
1333
|
}
|
|
660
|
-
export interface
|
|
661
|
-
readonly
|
|
662
|
-
readonly
|
|
663
|
-
readonly
|
|
664
|
-
readonly audience: "ACCOUNT_OWNED";
|
|
1334
|
+
export interface VoiceProfileSourcePage {
|
|
1335
|
+
readonly tenantId: string;
|
|
1336
|
+
readonly entries: readonly VoiceProfileSourceSummary[];
|
|
1337
|
+
readonly nextCursor: null;
|
|
665
1338
|
}
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
readonly
|
|
669
|
-
readonly
|
|
670
|
-
readonly
|
|
671
|
-
readonly textDigest: string;
|
|
672
|
-
readonly truncated: boolean;
|
|
673
|
-
readonly coverage: "BOUNDED_RENDERED_POST_TEXT";
|
|
674
|
-
readonly completeness: "NOT_ATTESTED";
|
|
675
|
-
readonly media: "NOT_CAPTURED";
|
|
1339
|
+
export interface VoiceProfilePage {
|
|
1340
|
+
readonly tenantId: string;
|
|
1341
|
+
readonly sourceRef: string;
|
|
1342
|
+
readonly entries: readonly VoiceProfileView[];
|
|
1343
|
+
readonly nextCursor: string | null;
|
|
676
1344
|
}
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
readonly coverage: "BOUNDED_RENDERED_ROOT_COMMENT_TEXT";
|
|
680
|
-
readonly commentRef: string;
|
|
681
|
-
readonly commentUrl: string;
|
|
682
|
-
readonly authorUrl: string;
|
|
683
|
-
readonly authorIdentity: "OBSERVED_PROFILE_LINK_ONLY";
|
|
684
|
-
readonly postTextDigest: string;
|
|
685
|
-
readonly postTruncated: boolean;
|
|
686
|
-
readonly postSourceFactRef: string;
|
|
1345
|
+
export interface VoiceProfileSourcesInput {
|
|
1346
|
+
readonly purpose: VoiceProfilePurpose;
|
|
687
1347
|
}
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
readonly
|
|
691
|
-
readonly
|
|
692
|
-
readonly
|
|
693
|
-
readonly externalAccountRef: string;
|
|
694
|
-
readonly dispatchRef: string;
|
|
695
|
-
readonly reportDigest: string;
|
|
696
|
-
readonly hostBindingDigest: string;
|
|
697
|
-
readonly moduleDigest: string;
|
|
698
|
-
readonly observedAt: string;
|
|
1348
|
+
export interface VoiceProfileListInput extends VoiceProfileSourcesInput {
|
|
1349
|
+
readonly sourceRef: string;
|
|
1350
|
+
readonly language?: string;
|
|
1351
|
+
readonly limit?: number;
|
|
1352
|
+
readonly cursor?: string;
|
|
699
1353
|
}
|
|
700
|
-
export interface
|
|
701
|
-
|
|
702
|
-
reasonCode: string;
|
|
703
|
-
nextCheckAt: string | null;
|
|
704
|
-
effect: "NONE";
|
|
705
|
-
}
|
|
706
|
-
export type SocialApiPlatform = "YOUTUBE" | "TIKTOK";
|
|
707
|
-
export interface SocialApiContentScope {
|
|
708
|
-
platform: SocialApiPlatform;
|
|
709
|
-
rootRef: string;
|
|
710
|
-
audience: "PUBLIC" | "ACCOUNT_OWNED";
|
|
711
|
-
}
|
|
712
|
-
export type SocialContentScope = SocialApiContentScope | WechatSocialContentScope | XiaohongshuScope | BrowserSocialScope | FacebookSocialScope;
|
|
713
|
-
export interface SocialContentRecord {
|
|
714
|
-
contentRef: string;
|
|
715
|
-
rootRef: string;
|
|
716
|
-
parentRef: string | null;
|
|
717
|
-
threadRef?: string;
|
|
718
|
-
authorRef: string;
|
|
719
|
-
text: string;
|
|
720
|
-
kind: "POST" | "COMMENT" | "REPLY" | "MESSAGE" | "ACCOUNT" | "THREAD" | "NOTIFICATION" | "OPTION";
|
|
721
|
-
xiaohongshu?: XiaohongshuContentEvidence;
|
|
722
|
-
browser?: BrowserSocialEvidence;
|
|
723
|
-
facebook?: FacebookPostContent | FacebookCommentContent;
|
|
724
|
-
sourceVersion: string;
|
|
725
|
-
contentDigest: string;
|
|
726
|
-
observedAt: string;
|
|
727
|
-
/** 仅原生微信内容使用,authorRef 指向原 Participant;API 作者引用原样保留。 */
|
|
728
|
-
wechatAuthor?: WechatSocialAuthorEvidence;
|
|
729
|
-
replyToAuthorRef?: string;
|
|
730
|
-
}
|
|
731
|
-
export interface SocialReadFrameBase {
|
|
732
|
-
profileRef: string;
|
|
733
|
-
externalAccountRef: string;
|
|
734
|
-
observedAt: string;
|
|
735
|
-
contents: readonly SocialContentRecord[];
|
|
736
|
-
completeness: "NOT_ATTESTED";
|
|
737
|
-
}
|
|
738
|
-
export interface WechatSocialReadFrame extends SocialReadFrameBase, WechatSocialReadEvidence {
|
|
739
|
-
scope: WechatSocialContentScope;
|
|
740
|
-
readonly renderedWindow?: WechatSocialRenderedWindow;
|
|
741
|
-
}
|
|
742
|
-
export interface SocialOperationView {
|
|
743
|
-
tenantId: string;
|
|
744
|
-
profileRef: string;
|
|
745
|
-
engagementRef: string;
|
|
746
|
-
conversationRef: string;
|
|
747
|
-
dispatchRef: string;
|
|
748
|
-
action: string;
|
|
749
|
-
state: string;
|
|
750
|
-
physicalIdle: boolean;
|
|
751
|
-
requestRef: string | null;
|
|
752
|
-
reasonCode: string | null;
|
|
753
|
-
browserActivity?: XiaohongshuActivityView;
|
|
754
|
-
installedCapabilities?: BrowserInstalledCapabilities;
|
|
755
|
-
browserRead?: BrowserSocialReadWindow;
|
|
756
|
-
facebookWaiting?: FacebookReplyWaiting;
|
|
757
|
-
}
|
|
758
|
-
export interface SocialContentProjection extends SocialContentRecord {
|
|
759
|
-
revision: number;
|
|
760
|
-
factRef: string;
|
|
761
|
-
source: SourceObservation;
|
|
762
|
-
historicalContext?: true;
|
|
763
|
-
messageOrder?: {
|
|
764
|
-
previousRef: string | null;
|
|
765
|
-
nextRef: string | null;
|
|
766
|
-
};
|
|
767
|
-
renderedEvidence?: WechatSocialReadEvidence;
|
|
768
|
-
}
|
|
769
|
-
export interface SocialContentPage {
|
|
770
|
-
tenantId: string;
|
|
771
|
-
engagementRef: string;
|
|
772
|
-
conversationRef: string;
|
|
773
|
-
profileRef: string;
|
|
774
|
-
items: readonly Omit<SocialContentProjection, "source">[];
|
|
775
|
-
nextCursor: string | null;
|
|
776
|
-
consistency: "SNAPSHOT" | "LIVE";
|
|
777
|
-
coverage: "RETAINED_CANONICAL_OBSERVATIONS";
|
|
778
|
-
platformCurrentness: "NOT_ATTESTED";
|
|
779
|
-
}
|
|
780
|
-
export interface SocialTextMessage extends TextChannelMessage {
|
|
781
|
-
readonly acceptedScheduleObjectRef?: string;
|
|
782
|
-
readonly externalObjectRef?: string;
|
|
783
|
-
readonly delegation?: {
|
|
784
|
-
readonly version: number;
|
|
785
|
-
readonly factRef: string;
|
|
786
|
-
};
|
|
787
|
-
readonly channel: "SOCIAL";
|
|
788
|
-
readonly executionPlacementDigest?: string;
|
|
789
|
-
readonly conversationRef: string;
|
|
790
|
-
readonly senderParticipantRef: string;
|
|
791
|
-
readonly xiaohongshuIntent?: XiaohongshuIntent;
|
|
792
|
-
readonly browserIntent?: BrowserSocialIntent;
|
|
793
|
-
readonly browserPublication?: BrowserPublicationObservation;
|
|
794
|
-
readonly socialTarget: (SocialApiContentScope | XiaohongshuScope | BrowserSocialScope | FacebookSocialScope) & {
|
|
795
|
-
targetRef: string;
|
|
796
|
-
sourceFactRef: string;
|
|
797
|
-
sourceVersion: string;
|
|
798
|
-
sourceDigest: string;
|
|
799
|
-
conversationRevision: number;
|
|
800
|
-
};
|
|
801
|
-
}
|
|
802
|
-
export interface SocialConversationView {
|
|
803
|
-
readonly xiaohongshuScheduleHistory?: XiaohongshuScheduleHistory;
|
|
804
|
-
tenantId: string;
|
|
805
|
-
conversationRef: string;
|
|
806
|
-
profileRef: string;
|
|
807
|
-
scope: SocialContentScope;
|
|
808
|
-
revision: number;
|
|
809
|
-
contents: readonly Omit<SocialContentProjection, "source">[];
|
|
810
|
-
messages: readonly (Pick<SocialTextMessage, "messageRef" | "version" | "contentDigest" | "text" | "socialTarget" | "xiaohongshuIntent" | "browserIntent" | "browserPublication" | "externalObjectRef" | "acceptedScheduleObjectRef" | "status"> & {
|
|
811
|
-
requestRef: string | null;
|
|
812
|
-
})[];
|
|
813
|
-
dispatches: readonly {
|
|
814
|
-
dispatchRef: string;
|
|
815
|
-
action: string;
|
|
816
|
-
state: string;
|
|
817
|
-
physicalIdle: boolean;
|
|
818
|
-
createdAt: string;
|
|
819
|
-
requestRef: string | null;
|
|
820
|
-
reasonCode?: string | null;
|
|
821
|
-
}[];
|
|
822
|
-
controlVersion: number;
|
|
823
|
-
readonly autonomy?: SocialAutonomy;
|
|
824
|
-
readonly xiaohongshuRead?: {
|
|
825
|
-
dispatchRef: string;
|
|
826
|
-
traversal: XiaohongshuTraversal;
|
|
827
|
-
contentRefs?: readonly string[];
|
|
828
|
-
captureFailures?: readonly SocialMediaCaptureFailure[];
|
|
829
|
-
};
|
|
830
|
-
readonly browserRead?: BrowserSocialReadWindow & {
|
|
831
|
-
readonly dispatchRef: string;
|
|
832
|
-
};
|
|
833
|
-
readonly browserCapture?: {
|
|
834
|
-
readonly basis: "INSTALLED_NODE_PORT";
|
|
835
|
-
readonly available: boolean;
|
|
836
|
-
readonly reasonCode: string | null;
|
|
837
|
-
};
|
|
838
|
-
readonly registrationContext?: SocialRegistrationContext;
|
|
839
|
-
readonly targetRegistration?: SocialTargetRegistrationView;
|
|
840
|
-
readonly socialRegistration?: SocialRegistrationMetadata;
|
|
841
|
-
readonly publicationRegistration?: SocialPublicationRegistration;
|
|
842
|
-
readonly readAttempt?: WechatSocialReadAttemptView;
|
|
843
|
-
}
|
|
844
|
-
/** transport 为必填判别项,旧 TIKTOK API scope 不会被重新解释成网页授权。 */
|
|
845
|
-
export interface BrowserSocialScope {
|
|
846
|
-
readonly platform: Exclude<BrowserSocialPlatform, "XIAOHONGSHU">;
|
|
847
|
-
readonly transport: "BROWSER";
|
|
848
|
-
readonly surface: "SEARCH" | "VIDEO" | "PROFILE" | "DIRECT" | "NOTIFICATIONS" | "INBOX";
|
|
849
|
-
readonly rootRef: string;
|
|
850
|
-
readonly audience: "PUBLIC" | "ACCOUNT_OWNED" | "PRIVATE";
|
|
851
|
-
readonly query?: string;
|
|
852
|
-
readonly peerRef?: string;
|
|
853
|
-
}
|
|
854
|
-
export interface BrowserMediaSelection {
|
|
855
|
-
readonly assetRef: string;
|
|
856
|
-
readonly digest: string;
|
|
857
|
-
readonly sourceVersion: string;
|
|
858
|
-
readonly mediaType: string;
|
|
859
|
-
readonly byteLength: number;
|
|
860
|
-
readonly filename: string;
|
|
861
|
-
}
|
|
862
|
-
export interface BrowserPublicationSettings {
|
|
863
|
-
readonly aiAssisted: boolean | null;
|
|
864
|
-
readonly original: boolean | null;
|
|
865
|
-
readonly commercial: boolean | null;
|
|
866
|
-
readonly allowComments: boolean | null;
|
|
867
|
-
readonly scheduledAt: string | null;
|
|
868
|
-
readonly timeZone: string;
|
|
869
|
-
}
|
|
870
|
-
export type BrowserSocialIntent = {
|
|
871
|
-
readonly kind: "COMMENT" | "REPLY";
|
|
872
|
-
} | {
|
|
873
|
-
readonly kind: "SCHEDULE_CANCEL";
|
|
874
|
-
} | {
|
|
875
|
-
readonly kind: "SCHEDULE_RESCHEDULE";
|
|
876
|
-
readonly scheduledAt: string;
|
|
877
|
-
readonly timeZone: string;
|
|
878
|
-
} | {
|
|
879
|
-
readonly kind: "DIRECT";
|
|
880
|
-
readonly assets?: readonly BrowserMediaSelection[];
|
|
881
|
-
} | {
|
|
882
|
-
readonly kind: "PUBLISH";
|
|
883
|
-
readonly title: string;
|
|
884
|
-
readonly tags: readonly string[];
|
|
885
|
-
readonly visibility: "PUBLIC" | "SELF_ONLY" | "FRIENDS";
|
|
886
|
-
readonly video: BrowserMediaSelection;
|
|
887
|
-
readonly cover?: BrowserMediaSelection;
|
|
888
|
-
readonly settings: BrowserPublicationSettings;
|
|
889
|
-
};
|
|
890
|
-
export interface BrowserSocialEvidence {
|
|
891
|
-
readonly accountRef: string;
|
|
892
|
-
readonly peerRef?: string;
|
|
893
|
-
readonly title?: string;
|
|
894
|
-
readonly media?: readonly {
|
|
895
|
-
readonly mediaRef: string;
|
|
896
|
-
readonly kind: "IMAGE" | "VIDEO" | "AUDIO";
|
|
897
|
-
}[];
|
|
898
|
-
readonly replyTo?: {
|
|
899
|
-
readonly targetRef: string;
|
|
900
|
-
readonly authorRef: string;
|
|
901
|
-
readonly rootCommentRef: string;
|
|
902
|
-
};
|
|
903
|
-
readonly unsupported?: {
|
|
904
|
-
readonly platformType: string;
|
|
905
|
-
readonly detail: "NOT_READ";
|
|
906
|
-
readonly reasonCode: "BROWSER_MESSAGE_TYPE_NOT_MAPPED";
|
|
907
|
-
};
|
|
908
|
-
readonly notification?: {
|
|
909
|
-
readonly kind: "COMMENT" | "REPLY" | "MENTION";
|
|
910
|
-
readonly subjectRef: string;
|
|
911
|
-
readonly videoRef: string;
|
|
912
|
-
readonly occurredAt: string;
|
|
913
|
-
readonly visibility?: "PUBLIC" | "SELF_ONLY" | "FRIENDS" | "UNKNOWN";
|
|
914
|
-
};
|
|
915
|
-
readonly publication?: {
|
|
916
|
-
readonly state: "PROCESSING" | "REVIEW_PENDING" | "PUBLISHED" | "REJECTED" | "SCHEDULED" | "CANCELLED";
|
|
917
|
-
readonly scheduledAt: string | null;
|
|
918
|
-
readonly visibility?: "PUBLIC" | "SELF_ONLY" | "FRIENDS" | "UNKNOWN";
|
|
919
|
-
};
|
|
920
|
-
}
|
|
921
|
-
export type BrowserPublicationObservation = NonNullable<BrowserSocialEvidence["publication"]> & {
|
|
922
|
-
readonly objectRef: string;
|
|
923
|
-
readonly observedAt: string;
|
|
924
|
-
readonly reviewRequired: boolean;
|
|
925
|
-
};
|
|
926
|
-
export interface BrowserSocialReadOptions {
|
|
927
|
-
readonly view?: "CONTENT" | "CAPABILITIES" | "PUBLICATIONS" | "SCHEDULED";
|
|
928
|
-
readonly pageLimit?: number;
|
|
929
|
-
readonly maxItems?: number;
|
|
930
|
-
readonly maxExpansions?: number;
|
|
931
|
-
readonly maxScrolls?: number;
|
|
932
|
-
readonly direction?: "FORWARD" | "BACKWARD";
|
|
933
|
-
readonly resumeBeforeContentRef?: string;
|
|
934
|
-
readonly resumeAfterContentRef?: string;
|
|
935
|
-
readonly captureMedia?: boolean;
|
|
936
|
-
}
|
|
937
|
-
export interface BrowserSocialTraversal {
|
|
938
|
-
readonly pagesVisited: number;
|
|
939
|
-
readonly expansions: number;
|
|
940
|
-
readonly scrolls: number;
|
|
941
|
-
readonly stoppedBy: "EXHAUSTED" | "PAGE_LIMIT" | "ITEM_LIMIT" | "NO_PROGRESS" | "CURRENT_VIEW" | "TIME_LIMIT" | "CONTROL_LIMIT";
|
|
942
|
-
readonly nextAfterContentRef: string | null;
|
|
943
|
-
readonly nextBeforeContentRef: string | null;
|
|
944
|
-
readonly direction: "FORWARD" | "BACKWARD";
|
|
945
|
-
readonly beforeContentRef: string | null;
|
|
946
|
-
readonly afterContentRef: string | null;
|
|
947
|
-
readonly startedAt: string;
|
|
948
|
-
readonly finishedAt: string;
|
|
949
|
-
}
|
|
950
|
-
export interface BrowserInstalledCapabilities {
|
|
951
|
-
readonly basis: "INSTALLED_MAPPING";
|
|
952
|
-
readonly capabilities: readonly {
|
|
953
|
-
readonly name: string;
|
|
954
|
-
readonly available: boolean;
|
|
955
|
-
readonly reasonCode: string | null;
|
|
956
|
-
}[];
|
|
957
|
-
}
|
|
958
|
-
export interface BrowserSocialReadWindow {
|
|
959
|
-
readonly view: NonNullable<BrowserSocialReadOptions["view"]>;
|
|
960
|
-
readonly observedAt: string;
|
|
961
|
-
readonly contentRefs: readonly string[];
|
|
962
|
-
readonly traversal?: BrowserSocialTraversal;
|
|
963
|
-
readonly captureFailures?: readonly SocialMediaCaptureFailure[];
|
|
964
|
-
}
|
|
965
|
-
export interface SocialRegistrationIdentity {
|
|
966
|
-
readonly participantRef: string;
|
|
967
|
-
readonly identityVersion: number;
|
|
968
|
-
readonly externalIdentityVersion: number;
|
|
969
|
-
readonly clueRef: string;
|
|
970
|
-
}
|
|
971
|
-
export interface SocialRegistrationSource {
|
|
972
|
-
readonly dispatchRef: string;
|
|
973
|
-
readonly observationRef: string;
|
|
974
|
-
readonly captureKey: string;
|
|
975
|
-
}
|
|
976
|
-
export interface SocialTargetPreview {
|
|
977
|
-
readonly schemaVersion: 1;
|
|
978
|
-
readonly registrationRef: string;
|
|
979
|
-
readonly previewRef: string;
|
|
980
|
-
readonly observedAt: string;
|
|
981
|
-
readonly expiresAt: string;
|
|
982
|
-
readonly evidenceDigest: string;
|
|
983
|
-
readonly renderedWindow: WechatSocialRenderedWindow;
|
|
984
|
-
}
|
|
985
|
-
export interface SocialTargetQualified {
|
|
986
|
-
readonly schemaVersion: 1;
|
|
987
|
-
readonly registrationRef: string;
|
|
988
|
-
readonly state: "QUALIFIED";
|
|
989
|
-
readonly previewRef: string;
|
|
990
|
-
readonly previewDigest: string;
|
|
991
|
-
readonly captureKey: string;
|
|
992
|
-
readonly selectionReceiptRef: string;
|
|
993
|
-
readonly frame: WechatSocialReadFrame;
|
|
994
|
-
readonly authorObservation: SocialRegistrationIdentity & {
|
|
995
|
-
readonly wechatId: string;
|
|
996
|
-
readonly observedAt: string;
|
|
997
|
-
readonly evidenceDigest: string;
|
|
998
|
-
readonly basis: "CURRENT_DETAIL_AUTHOR_PROFILE_RETURN";
|
|
999
|
-
readonly verification: "VISIBLE_UI_ID_MATCH";
|
|
1000
|
-
};
|
|
1001
|
-
readonly roundTrip: {
|
|
1002
|
-
readonly enteredAt: string;
|
|
1003
|
-
readonly returnedAt: string;
|
|
1004
|
-
readonly evidenceDigest: string;
|
|
1005
|
-
readonly basis: "CURRENT_DETAIL_RETURN";
|
|
1006
|
-
};
|
|
1007
|
-
readonly viewer: "NOT_ATTESTED";
|
|
1008
|
-
}
|
|
1009
|
-
export interface SocialRegistrationMetadata {
|
|
1010
|
-
readonly protocol: 1;
|
|
1011
|
-
readonly identityBasis: "UI_INSTANCE";
|
|
1012
|
-
readonly registrationRef: string;
|
|
1013
|
-
readonly source: SocialRegistrationSource;
|
|
1014
|
-
readonly sourceRelation: "CURRENT_INSTANCE_RECONFIRMED";
|
|
1015
|
-
readonly previewRef: string;
|
|
1016
|
-
readonly previewDigest: string;
|
|
1017
|
-
readonly selectionReceiptRef: string;
|
|
1018
|
-
readonly author: SocialRegistrationIdentity;
|
|
1019
|
-
readonly local: SocialRegistrationIdentity;
|
|
1020
|
-
readonly authorObservation: SocialTargetQualified["authorObservation"];
|
|
1021
|
-
readonly roundTrip: SocialTargetQualified["roundTrip"];
|
|
1022
|
-
readonly viewer: "NOT_ATTESTED";
|
|
1023
|
-
readonly contentCoverage: "VISIBLE_SHARE_TITLE_ONLY";
|
|
1024
|
-
readonly writeEligible: false;
|
|
1025
|
-
}
|
|
1026
|
-
export interface SocialRegistrationContext {
|
|
1027
|
-
readonly schemaVersion: 1;
|
|
1028
|
-
readonly engagementRef: string;
|
|
1029
|
-
readonly conversationRef: string;
|
|
1030
|
-
readonly profileRef: string;
|
|
1031
|
-
readonly accountRef: string;
|
|
1032
|
-
readonly conversationRevision: number;
|
|
1033
|
-
readonly membershipDigest: string;
|
|
1034
|
-
readonly local: SocialRegistrationIdentity | null;
|
|
1035
|
-
readonly authors: readonly (SocialRegistrationIdentity & {
|
|
1036
|
-
readonly label: string;
|
|
1037
|
-
})[];
|
|
1038
|
-
readonly eligibility: "ELIGIBLE" | "BLOCKED";
|
|
1039
|
-
readonly reasonCodes: readonly ("LOCAL_CURRENT_SLOT_REQUIRED" | "AUTHOR_CURRENT_SLOT_REQUIRED" | "BOUNDED_MOMENTS_VIEW_REQUIRED" | "TARGET_PROTOCOL_REQUIRED")[];
|
|
1040
|
-
}
|
|
1041
|
-
export interface SocialTargetRegistrationView {
|
|
1042
|
-
readonly schemaVersion: 1;
|
|
1043
|
-
readonly registrationRef: string;
|
|
1044
|
-
readonly createdAt: string;
|
|
1045
|
-
readonly state: string;
|
|
1046
|
-
readonly physicalIdle: boolean;
|
|
1047
|
-
readonly phase: "QUEUED" | "WAITING_CONFIRMATION" | "QUALIFYING" | "REGISTERED" | "GAP" | "UNKNOWN";
|
|
1048
|
-
readonly expiresAt: string | null;
|
|
1049
|
-
readonly reasonCode?: string;
|
|
1050
|
-
readonly preview?: SocialTargetPreview & {
|
|
1051
|
-
readonly previewDigest: string;
|
|
1052
|
-
};
|
|
1053
|
-
readonly confirmationRecorded: boolean;
|
|
1054
|
-
readonly registered?: {
|
|
1055
|
-
readonly conversationRef: string;
|
|
1056
|
-
readonly rootRef: string;
|
|
1057
|
-
readonly routeRef: string;
|
|
1058
|
-
readonly receipt: ActionReceipt;
|
|
1059
|
-
};
|
|
1354
|
+
export interface VoiceProfileGetInput extends VoiceProfileSourcesInput {
|
|
1355
|
+
readonly voiceProfile: VoiceProfileRef;
|
|
1060
1356
|
}
|
|
1061
|
-
export
|
|
1062
|
-
readonly
|
|
1063
|
-
}
|
|
1064
|
-
export interface
|
|
1065
|
-
readonly
|
|
1066
|
-
readonly
|
|
1067
|
-
readonly
|
|
1068
|
-
readonly
|
|
1069
|
-
readonly
|
|
1070
|
-
readonly
|
|
1071
|
-
readonly
|
|
1357
|
+
export interface VoiceProfileResolveInput extends VoiceProfileGetInput {
|
|
1358
|
+
readonly language: string;
|
|
1359
|
+
}
|
|
1360
|
+
export interface VoiceProfileSynthesisInput {
|
|
1361
|
+
readonly idempotencyKey: string;
|
|
1362
|
+
readonly assetRef: string;
|
|
1363
|
+
readonly digest: string;
|
|
1364
|
+
readonly sourceVersion: string;
|
|
1365
|
+
readonly voiceProfile: VoiceProfileRef;
|
|
1366
|
+
readonly bindingDigest: string;
|
|
1367
|
+
readonly voiceRef: string;
|
|
1368
|
+
readonly language: string;
|
|
1369
|
+
readonly purpose: Exclude<VoiceProfilePurpose, "BIND">;
|
|
1370
|
+
}
|
|
1371
|
+
/** 模板属于创建时的精确租户范围,媒体只保存已有 Asset 的选择,不拥有字节。 */
|
|
1372
|
+
export interface MailSignatureTemplate {
|
|
1373
|
+
readonly tenantId: string;
|
|
1374
|
+
readonly projectRef?: string;
|
|
1375
|
+
readonly workspaceRef?: string;
|
|
1376
|
+
readonly signatureRef: string;
|
|
1377
|
+
readonly version: number;
|
|
1378
|
+
readonly displayName: string;
|
|
1379
|
+
readonly enabled: boolean;
|
|
1380
|
+
readonly text: string;
|
|
1381
|
+
readonly html?: string;
|
|
1382
|
+
readonly inlineImages: readonly MailSignatureImage[];
|
|
1383
|
+
readonly digest: string;
|
|
1384
|
+
readonly configuredAt: string;
|
|
1385
|
+
readonly configuredBy: string;
|
|
1386
|
+
}
|
|
1387
|
+
export interface MailSignaturePage {
|
|
1388
|
+
readonly items: readonly Pick<MailSignatureTemplate, "signatureRef" | "version" | "displayName" | "enabled" | "digest">[];
|
|
1389
|
+
readonly nextOffset: number | null;
|
|
1390
|
+
readonly total: number;
|
|
1072
1391
|
}
|
|
1073
1392
|
/** 受保护宿主原操作日志的准确引用,不是外部平台消息 ID。 */
|
|
1074
1393
|
export interface NativeExecutionSourceReference {
|
|
@@ -1144,6 +1463,66 @@ export interface NativeInteractionSource extends NativeWechatContactIdentity, Na
|
|
|
1144
1463
|
readonly authorResolution?: NativeGroupAuthorResolution;
|
|
1145
1464
|
readonly wechatGroupAuthorProtocol?: 1;
|
|
1146
1465
|
}
|
|
1466
|
+
export type NativeSourceBinding = Pick<NativeInteractionSource, "channel" | "profileRef" | "accountRef" | "hostRef" | "hostBindingDigest" | "routeRef" | "routeAssociationVersion" | "targetRef" | "conversationRevision" | "membershipDigest" | "wechatContactParticipantRef" | "wechatContactExternalRef" | "wechatContactIdentityVersion" | "wechatLocalIdentity">;
|
|
1467
|
+
/** Client representation only; neither original audio bytes nor an AX transcript. */
|
|
1468
|
+
export interface NativeVoiceObservation {
|
|
1469
|
+
readonly schemaVersion: 1;
|
|
1470
|
+
readonly durationSeconds: number;
|
|
1471
|
+
readonly playbackLabel: "UNPLAYED" | "NOT_EXPOSED";
|
|
1472
|
+
readonly playbackCompletion: "NOT_ATTESTED";
|
|
1473
|
+
readonly clientTranscript: "COLLAPSED" | "RENDERED_NOT_ACCESSIBLE";
|
|
1474
|
+
readonly transcriptText: "NOT_EXPOSED";
|
|
1475
|
+
readonly originalAudio: "NOT_ACQUIRED";
|
|
1476
|
+
}
|
|
1477
|
+
export interface SocialPublicationRegistration {
|
|
1478
|
+
readonly protocol: 1;
|
|
1479
|
+
readonly publicationRef: string;
|
|
1480
|
+
readonly requestRef: string;
|
|
1481
|
+
readonly contentDigest: string;
|
|
1482
|
+
readonly resultDigest: string;
|
|
1483
|
+
readonly publisher: SocialPublisher;
|
|
1484
|
+
readonly observedAt: string;
|
|
1485
|
+
}
|
|
1486
|
+
export interface FacebookSocialScope {
|
|
1487
|
+
readonly platform: "FACEBOOK";
|
|
1488
|
+
readonly surface: "OWN_POSTS";
|
|
1489
|
+
readonly rootRef: string;
|
|
1490
|
+
readonly audience: "ACCOUNT_OWNED";
|
|
1491
|
+
}
|
|
1492
|
+
/** 只保留正文片段的实际覆盖,不推定公开范围、完整历史或平台最终状态。 */
|
|
1493
|
+
export interface FacebookPostContent {
|
|
1494
|
+
readonly accountRef: string;
|
|
1495
|
+
readonly profileUrl: string;
|
|
1496
|
+
readonly postUrl: string;
|
|
1497
|
+
readonly textDigest: string;
|
|
1498
|
+
readonly truncated: boolean;
|
|
1499
|
+
readonly coverage: "BOUNDED_RENDERED_POST_TEXT";
|
|
1500
|
+
readonly completeness: "NOT_ATTESTED";
|
|
1501
|
+
readonly media: "NOT_CAPTURED";
|
|
1502
|
+
}
|
|
1503
|
+
/** 评论作者只绑定已观察 Profile 链接;父帖固定到同一 Source Owner 的已保留事实版本。 */
|
|
1504
|
+
export interface FacebookCommentContent extends Omit<FacebookPostContent, "coverage"> {
|
|
1505
|
+
readonly coverage: "BOUNDED_RENDERED_ROOT_COMMENT_TEXT";
|
|
1506
|
+
readonly commentRef: string;
|
|
1507
|
+
readonly commentUrl: string;
|
|
1508
|
+
readonly authorUrl: string;
|
|
1509
|
+
readonly authorIdentity: "OBSERVED_PROFILE_LINK_ONLY";
|
|
1510
|
+
readonly postTextDigest: string;
|
|
1511
|
+
readonly postTruncated: boolean;
|
|
1512
|
+
readonly postSourceFactRef: string;
|
|
1513
|
+
}
|
|
1514
|
+
/** 原签名 Node 报告的去敏引用;Work/Invocation 关联另由原 Work receipt 保留。 */
|
|
1515
|
+
export interface FacebookPostCapture {
|
|
1516
|
+
readonly protocol: 1;
|
|
1517
|
+
readonly profileRef: string;
|
|
1518
|
+
readonly accountRef: string;
|
|
1519
|
+
readonly externalAccountRef: string;
|
|
1520
|
+
readonly dispatchRef: string;
|
|
1521
|
+
readonly reportDigest: string;
|
|
1522
|
+
readonly hostBindingDigest: string;
|
|
1523
|
+
readonly moduleDigest: string;
|
|
1524
|
+
readonly observedAt: string;
|
|
1525
|
+
}
|
|
1147
1526
|
/** 来源观察描述实际证据,不把屏幕序号或本地关联解释为平台身份。 */
|
|
1148
1527
|
export interface SourceObservation {
|
|
1149
1528
|
readonly facebookPostCapture?: FacebookPostCapture;
|
|
@@ -1180,51 +1559,390 @@ export interface SourceObservation {
|
|
|
1180
1559
|
readonly sourceLocatorRef: string;
|
|
1181
1560
|
readonly changeTracking: "ON_REREAD_CONTENT_CONFLICT" | "NOT_TRACKED";
|
|
1182
1561
|
}
|
|
1183
|
-
export interface CommunicationMessage {
|
|
1184
|
-
readonly channel: "EMAIL" | "WECHAT" | "WHATSAPP" | "BROWSER" | "AGENT_PROTOCOL" | "NATIVE" | "SOCIAL";
|
|
1185
|
-
readonly direction: "INBOUND" | "OUTBOUND" | "INTERNAL";
|
|
1186
|
-
readonly state: string;
|
|
1187
|
-
readonly emailThread?: {
|
|
1188
|
-
readonly inReplyTo: readonly string[];
|
|
1189
|
-
readonly references: readonly string[];
|
|
1190
|
-
};
|
|
1191
|
-
readonly eventSequence: string;
|
|
1192
|
-
readonly occurredAt: string;
|
|
1193
|
-
readonly message: MessageProjection;
|
|
1194
|
-
readonly source: SourceObservation;
|
|
1562
|
+
export interface CommunicationMessage {
|
|
1563
|
+
readonly channel: "EMAIL" | "WECHAT" | "WHATSAPP" | "BROWSER" | "AGENT_PROTOCOL" | "NATIVE" | "SOCIAL";
|
|
1564
|
+
readonly direction: "INBOUND" | "OUTBOUND" | "INTERNAL";
|
|
1565
|
+
readonly state: string;
|
|
1566
|
+
readonly emailThread?: {
|
|
1567
|
+
readonly inReplyTo: readonly string[];
|
|
1568
|
+
readonly references: readonly string[];
|
|
1569
|
+
};
|
|
1570
|
+
readonly eventSequence: string;
|
|
1571
|
+
readonly occurredAt: string;
|
|
1572
|
+
readonly message: MessageProjection;
|
|
1573
|
+
readonly source: SourceObservation;
|
|
1574
|
+
}
|
|
1575
|
+
export interface EngagementControl {
|
|
1576
|
+
readonly tenantId: string;
|
|
1577
|
+
readonly engagementRef: string;
|
|
1578
|
+
readonly version: number;
|
|
1579
|
+
readonly state: "AGENT_CONTROLLED" | "HANDOFF_REQUESTED" | "HUMAN_CONTROLLED";
|
|
1580
|
+
readonly controlScope: "ENGAGEMENT_OUTBOUND_AUTOMATION";
|
|
1581
|
+
readonly handoffRef?: string;
|
|
1582
|
+
readonly requestedBy?: string;
|
|
1583
|
+
readonly requestedAt?: string;
|
|
1584
|
+
readonly reason?: string;
|
|
1585
|
+
readonly assigneeRef?: string;
|
|
1586
|
+
readonly controlledBy?: string;
|
|
1587
|
+
readonly controlledAt?: string;
|
|
1588
|
+
readonly resumedBy?: string;
|
|
1589
|
+
readonly resumedAt?: string;
|
|
1590
|
+
readonly sessionCorrelationRef?: string;
|
|
1591
|
+
}
|
|
1592
|
+
export interface WechatAutonomy {
|
|
1593
|
+
readonly enabled: boolean;
|
|
1594
|
+
readonly version: number;
|
|
1595
|
+
readonly delegatePrincipalRef: string;
|
|
1596
|
+
readonly expiresAt?: string;
|
|
1597
|
+
readonly configuredBy: string;
|
|
1598
|
+
}
|
|
1599
|
+
/** Browser-safe shared approval representation; no host paths, locators or bytes. */
|
|
1600
|
+
export interface MessageAttachment {
|
|
1601
|
+
readonly assetRef: string;
|
|
1602
|
+
readonly sourceVersion: string;
|
|
1603
|
+
readonly digest: string;
|
|
1604
|
+
readonly mediaType: string;
|
|
1605
|
+
readonly byteLength: number;
|
|
1606
|
+
readonly filename: string;
|
|
1607
|
+
readonly presentation?: "VOICE_NOTE" | "IMAGE" | "VIDEO";
|
|
1608
|
+
}
|
|
1609
|
+
type MessageAttachmentChoice = Pick<MessageAttachment, "assetRef" | "filename" | "presentation">;
|
|
1610
|
+
export type SourceMessagePart = {
|
|
1611
|
+
readonly partRef: string;
|
|
1612
|
+
readonly kind: "TEXT";
|
|
1613
|
+
readonly text: string;
|
|
1614
|
+
} | {
|
|
1615
|
+
readonly partRef: string;
|
|
1616
|
+
readonly kind: "FILE" | "IMAGE" | "AUDIO" | "VIDEO";
|
|
1617
|
+
readonly sourceAttachmentRef: string;
|
|
1618
|
+
readonly filename: string;
|
|
1619
|
+
readonly mediaType: string;
|
|
1620
|
+
readonly byteLength: number;
|
|
1621
|
+
readonly assetRef?: string;
|
|
1622
|
+
readonly digest?: string;
|
|
1623
|
+
readonly sourceVersion?: string;
|
|
1624
|
+
};
|
|
1625
|
+
/** 出站资产没有外部来源部件 ID;不以 AssetRef 冒充 sourceAttachmentRef。 */
|
|
1626
|
+
export type AssetMessagePart = MessageAttachment & {
|
|
1627
|
+
readonly partRef: string;
|
|
1628
|
+
readonly kind: "FILE" | "AUDIO" | "IMAGE" | "VIDEO";
|
|
1629
|
+
readonly sourceAttachmentRef?: never;
|
|
1630
|
+
};
|
|
1631
|
+
export type MessagePart = SourceMessagePart | AssetMessagePart;
|
|
1632
|
+
export type SourceChangeKind = "UNCHANGED" | "CONTENT_CONFLICT" | "CONTENT_REVISED" | "CONTENT_RECONCILED" | "CONTENT_CAPTURED" | "DELETED" | "RETRACTED" | "RESTORED" | "NOT_VISIBLE" | "NOT_SUPPORTED" | "HISTORICAL_RECORDED" | "NATIVE_DISPLAY_OBSERVED" | "NATIVE_VOICE_OBSERVED";
|
|
1633
|
+
export interface SourceLifecycleState {
|
|
1634
|
+
readonly nativeVoiceObservationDigest?: string;
|
|
1635
|
+
readonly nativeVoiceObservedAt?: string;
|
|
1636
|
+
readonly nativeVoiceObservation?: NativeVoiceObservation;
|
|
1637
|
+
readonly nativeOutboundDisplay?: NativeOutboundDisplayState;
|
|
1638
|
+
readonly nativeExecutionFactRef?: string;
|
|
1639
|
+
readonly headFactRef: string;
|
|
1640
|
+
readonly contentFactRef: string;
|
|
1641
|
+
readonly revision: number;
|
|
1642
|
+
readonly availability: "AVAILABLE" | "UNAVAILABLE" | "UNRESOLVED";
|
|
1643
|
+
readonly changeKind: SourceChangeKind | "LEGACY_OBSERVATION";
|
|
1644
|
+
readonly reasonCode: string;
|
|
1645
|
+
readonly observedAt: string;
|
|
1646
|
+
readonly candidateFactRef: string | null;
|
|
1647
|
+
readonly lastInspectionRef: string | null;
|
|
1648
|
+
}
|
|
1649
|
+
export interface SourceBasis {
|
|
1650
|
+
readonly channel: CommunicationMessage["channel"];
|
|
1651
|
+
readonly conversationRef: string;
|
|
1652
|
+
readonly messageRef: string;
|
|
1653
|
+
readonly headFactRef: string;
|
|
1654
|
+
}
|
|
1655
|
+
export interface DeliveredEmailAttachment extends MessageAttachment {
|
|
1656
|
+
readonly remoteAttachmentRef: string;
|
|
1657
|
+
}
|
|
1658
|
+
export type EmailMessageStatus = "DRAFT" | "APPROVED" | "REJECTED" | "QUEUED" | "CANCELLED" | "ACCEPTED" | "UNCERTAIN" | "FAILED";
|
|
1659
|
+
/** 原 Work 的提交依据;与内容生成来源区分,外部命令不能自行声明。 */
|
|
1660
|
+
export interface EmailWorkSource {
|
|
1661
|
+
readonly workRef: string;
|
|
1662
|
+
readonly kind: "REPLY" | "FOLLOW_UP" | "CONTACT";
|
|
1663
|
+
readonly taskOrigin?: TaskCommunicationOrigin;
|
|
1664
|
+
readonly communicationPolicyBasis?: CommunicationPolicyBasis;
|
|
1665
|
+
}
|
|
1666
|
+
export interface EmailMessageProjection extends EmailRichContent {
|
|
1667
|
+
readonly taskOrigin?: TaskCommunicationOrigin;
|
|
1668
|
+
readonly workSource?: EmailWorkSource;
|
|
1669
|
+
readonly sourceBasis?: SourceBasis;
|
|
1670
|
+
readonly tenantId: string;
|
|
1671
|
+
readonly engagementRef: string;
|
|
1672
|
+
readonly messageRef: string;
|
|
1673
|
+
readonly conversationRef?: string;
|
|
1674
|
+
readonly version: number;
|
|
1675
|
+
readonly contentDigest: string;
|
|
1676
|
+
readonly routeRef: string;
|
|
1677
|
+
readonly recipientAddress: string;
|
|
1678
|
+
readonly senderParticipantRef: string;
|
|
1679
|
+
readonly recipientParticipantRef: string;
|
|
1680
|
+
readonly subject: string;
|
|
1681
|
+
readonly text: string;
|
|
1682
|
+
readonly replyToMessageRef?: string;
|
|
1683
|
+
readonly followUpOfMessageRef?: string;
|
|
1684
|
+
readonly followUpPlanVersion?: number;
|
|
1685
|
+
readonly attachments?: readonly MessageAttachment[];
|
|
1686
|
+
readonly deliveredAttachments?: readonly DeliveredEmailAttachment[];
|
|
1687
|
+
readonly status: EmailMessageStatus;
|
|
1688
|
+
readonly createdAt: string;
|
|
1689
|
+
readonly updatedAt: string;
|
|
1690
|
+
readonly reviewedBy?: string;
|
|
1691
|
+
readonly reviewerKind?: "HUMAN";
|
|
1692
|
+
readonly approvalExpiresAt?: string;
|
|
1693
|
+
readonly profileRef?: string;
|
|
1694
|
+
readonly sendRequestRef?: string;
|
|
1695
|
+
readonly correlationRef?: string;
|
|
1696
|
+
readonly internetMessageId?: string;
|
|
1697
|
+
readonly observedAt?: string;
|
|
1698
|
+
readonly followUpDueAt?: string;
|
|
1699
|
+
}
|
|
1700
|
+
/** 原文本消息模型;旧 WechatMessage 继续作为兼容名称。 */
|
|
1701
|
+
export type TextMessageStatus = "DRAFT" | "APPROVED" | "REJECTED" | "QUEUED" | "CLIENT_VISIBLE" | "UNCERTAIN" | "FAILED" | "CANCELLED";
|
|
1702
|
+
export interface TaskCommunicationOrigin {
|
|
1703
|
+
readonly handoffRef?: string;
|
|
1704
|
+
readonly workRef: string;
|
|
1705
|
+
readonly invocationRef: string;
|
|
1706
|
+
readonly callId: string;
|
|
1707
|
+
readonly inputDigest: string;
|
|
1708
|
+
}
|
|
1709
|
+
export interface TextChannelMessage {
|
|
1710
|
+
readonly attachments?: readonly MessageAttachment[];
|
|
1711
|
+
readonly taskOrigin?: TaskCommunicationOrigin;
|
|
1712
|
+
readonly communicationPolicyBasis?: CommunicationPolicyBasis;
|
|
1713
|
+
readonly channel?: "WECHAT" | "WHATSAPP" | "SOCIAL";
|
|
1714
|
+
readonly nativeBinding?: NativeSourceBinding;
|
|
1715
|
+
readonly senderParticipantRef?: string;
|
|
1716
|
+
readonly recipientParticipantRefs?: readonly string[];
|
|
1717
|
+
readonly sourceBasis?: SourceBasis;
|
|
1718
|
+
readonly humanIntent?: {
|
|
1719
|
+
readonly kind: "HUMAN";
|
|
1720
|
+
readonly authoredBy: string;
|
|
1721
|
+
readonly contextDigest: string;
|
|
1722
|
+
};
|
|
1723
|
+
readonly conversationRef?: string;
|
|
1724
|
+
readonly tenantId: string;
|
|
1725
|
+
readonly engagementRef: string;
|
|
1726
|
+
readonly messageRef: string;
|
|
1727
|
+
readonly profileRef: string;
|
|
1728
|
+
readonly version: number;
|
|
1729
|
+
readonly text: string;
|
|
1730
|
+
readonly contentDigest: string;
|
|
1731
|
+
readonly status: TextMessageStatus;
|
|
1732
|
+
readonly createdBy: string;
|
|
1733
|
+
readonly createdAt: string;
|
|
1734
|
+
readonly updatedAt: string;
|
|
1735
|
+
readonly replyToMessageRef?: string;
|
|
1736
|
+
readonly followUpOfMessageRef?: string;
|
|
1737
|
+
readonly followUpPlanVersion?: number;
|
|
1738
|
+
readonly reviewRef?: string;
|
|
1739
|
+
readonly reviewedBy?: string;
|
|
1740
|
+
readonly approvalExpiresAt?: string;
|
|
1741
|
+
readonly reviewSourceRef?: string;
|
|
1742
|
+
readonly authorizationBasis?: "HUMAN_MESSAGE_REVIEW" | "HUMAN_CONVERSATION_DELEGATION" | "ENGAGEMENT_CONTROL";
|
|
1743
|
+
readonly authorizationControlVersion?: number;
|
|
1744
|
+
readonly requestRef?: string;
|
|
1745
|
+
readonly hostEvidenceDigest?: string;
|
|
1746
|
+
}
|
|
1747
|
+
export type CommunicationChannel = "EMAIL" | "WECHAT" | "WHATSAPP" | "SOCIAL";
|
|
1748
|
+
declare const DESKTOP_ACTION_KINDS: readonly [
|
|
1749
|
+
"MOMENTS_PUBLISH",
|
|
1750
|
+
"MOMENTS_COMMENT",
|
|
1751
|
+
"MOMENTS_REPLY",
|
|
1752
|
+
"MOMENTS_LIKE",
|
|
1753
|
+
"MOMENTS_UNLIKE",
|
|
1754
|
+
"MOMENTS_DELETE",
|
|
1755
|
+
"MOMENTS_COMMENT_DELETE",
|
|
1756
|
+
"CHANNELS_PUBLISH",
|
|
1757
|
+
"CHANNELS_COMMENT",
|
|
1758
|
+
"CHANNELS_REPLY",
|
|
1759
|
+
"CHANNELS_LIKE",
|
|
1760
|
+
"CHANNELS_UNLIKE",
|
|
1761
|
+
"CHANNELS_COMMENT_DELETE",
|
|
1762
|
+
"WORKS_PUBLISH",
|
|
1763
|
+
"WORKS_COMMENT",
|
|
1764
|
+
"WORKS_REPLY",
|
|
1765
|
+
"WORKS_LIKE",
|
|
1766
|
+
"WORKS_UNLIKE",
|
|
1767
|
+
"WORKS_DELETE",
|
|
1768
|
+
"WORKS_COMMENT_DELETE",
|
|
1769
|
+
"CONTACT_REMARK",
|
|
1770
|
+
"CONTACT_DELETE",
|
|
1771
|
+
"GROUP_RENAME",
|
|
1772
|
+
"GROUP_ANNOUNCEMENT",
|
|
1773
|
+
"GROUP_LEAVE",
|
|
1774
|
+
"GROUP_MUTE",
|
|
1775
|
+
"GROUP_UNMUTE",
|
|
1776
|
+
"GROUP_PIN",
|
|
1777
|
+
"GROUP_UNPIN",
|
|
1778
|
+
"CONTACT_REQUEST",
|
|
1779
|
+
"CONTACT_ACCEPT",
|
|
1780
|
+
"GROUP_CREATE",
|
|
1781
|
+
"GROUP_INVITE",
|
|
1782
|
+
"MESSAGE_FORWARD",
|
|
1783
|
+
"CONTACT_SHARE",
|
|
1784
|
+
"MOMENTS_SHARE",
|
|
1785
|
+
"CHANNELS_SHARE",
|
|
1786
|
+
"WORKS_SHARE"
|
|
1787
|
+
];
|
|
1788
|
+
export type DesktopActionKind = typeof DESKTOP_ACTION_KINDS[number];
|
|
1789
|
+
declare const DESKTOP_NATIVE_PRESENTATIONS: readonly [
|
|
1790
|
+
"IMAGE",
|
|
1791
|
+
"VIDEO",
|
|
1792
|
+
"VOICE_NOTE"
|
|
1793
|
+
];
|
|
1794
|
+
export type DesktopNativePresentation = typeof DESKTOP_NATIVE_PRESENTATIONS[number];
|
|
1795
|
+
declare const EXECUTION_NODE_PROTOCOL = "ne-execution-node/1.0";
|
|
1796
|
+
declare const EXECUTION_NODE_MODULE = "android.whatsapp.read";
|
|
1797
|
+
export interface NodeResourceAdvertisement extends WechatOnboardingProtocols {
|
|
1798
|
+
readonly weixinOfficialReadProtocol?: 1;
|
|
1799
|
+
readonly weixinOfficialWriteProtocol?: 2;
|
|
1800
|
+
readonly weixinOfficialCommentWriteProtocol?: 1;
|
|
1801
|
+
readonly weixinImageUploadProtocol?: 1;
|
|
1802
|
+
readonly weixinDraftPreconditionProtocol?: 2;
|
|
1803
|
+
readonly executionRequirements?: NodeExecutionRequirements;
|
|
1804
|
+
readonly desktopTaskContextProtocol?: 1;
|
|
1805
|
+
readonly desktopTaskNavigationProtocol?: 1;
|
|
1806
|
+
readonly desktopConversationLocateProtocol?: 1;
|
|
1807
|
+
readonly desktopConversationResolveProtocol?: 1;
|
|
1808
|
+
readonly desktopConversationDiscoveryProtocol?: 1;
|
|
1809
|
+
readonly desktopConversationSelectProtocol?: 1;
|
|
1810
|
+
readonly desktopConversationBrowseProtocol?: 1;
|
|
1811
|
+
readonly nativeTaskNavigationProtocol?: 1;
|
|
1812
|
+
readonly nativeCancelledDraftProtocol?: 1;
|
|
1813
|
+
readonly nativeMediaSendProtocol?: 1;
|
|
1814
|
+
/** 固定 Facebook Profile 观察与人工恢复协议,不授予营销写入。 */
|
|
1815
|
+
readonly browserProfileProtocol?: 1;
|
|
1816
|
+
readonly browserProfileTaskProtocol?: 1;
|
|
1817
|
+
readonly browserProfileContentProtocol?: 1;
|
|
1818
|
+
readonly browserProfilePostsProtocol?: 1;
|
|
1819
|
+
readonly browserProfilePostDetailProtocol?: 1;
|
|
1820
|
+
readonly browserProfileCommentsProtocol?: 1;
|
|
1821
|
+
readonly browserProfileCurrentCommentsProtocol?: 1;
|
|
1822
|
+
readonly browserProfileSearchProtocol?: 1;
|
|
1823
|
+
readonly browserProfileNavigationProtocol?: 1;
|
|
1824
|
+
readonly facebookReplyProtocol?: 1;
|
|
1825
|
+
readonly browserProfileActivityProtocol?: 1;
|
|
1826
|
+
readonly nativeRenderedWindowBoundaryProtocol?: 1;
|
|
1827
|
+
readonly nativeRenderedMediaProtocol?: 1;
|
|
1828
|
+
localResourceDigest: string;
|
|
1829
|
+
environmentGeneration: number;
|
|
1830
|
+
hostRef: string;
|
|
1831
|
+
profileRef: string;
|
|
1832
|
+
accountRef: string;
|
|
1833
|
+
sessionRef: string;
|
|
1834
|
+
capabilityRef: string;
|
|
1835
|
+
hostBindingDigest: string;
|
|
1836
|
+
application: "weixin" | "whatsapp" | "youtube" | "tiktok" | "wechat" | "browser" | "mail" | "xiaohongshu" | "douyin" | "agent";
|
|
1837
|
+
externalAccountRef?: string;
|
|
1838
|
+
bridgeBindingJson?: string;
|
|
1839
|
+
bridgeRuntimeKind?: "DESKTOP" | "BROWSER" | "API" | "MAIL" | "AGENT_PROTOCOL";
|
|
1840
|
+
mailConfigurationDigest?: string;
|
|
1841
|
+
moduleId: typeof EXECUTION_NODE_MODULE | "android.whatsapp.message" | "android.wechat.read" | "android.wechat.message" | "api.weixin" | "api.youtube" | "api.tiktok" | "bridge.wechat" | "bridge.browser" | "bridge.mail" | "bridge.agent" | "browser.xiaohongshu" | "browser.douyin" | "browser.tiktok";
|
|
1842
|
+
moduleVersion: "1.0.0";
|
|
1843
|
+
moduleDigest: string;
|
|
1844
|
+
enabled: boolean;
|
|
1845
|
+
supportsDisplayOff: boolean;
|
|
1846
|
+
supportsLocked: boolean;
|
|
1847
|
+
supportsNativeCapture?: boolean;
|
|
1848
|
+
supportsNativeCaption?: boolean;
|
|
1849
|
+
supportsNativeBytes?: boolean;
|
|
1850
|
+
supportsSourceBytes?: boolean;
|
|
1851
|
+
browserSocialProtocol?: 1;
|
|
1852
|
+
browserSocialUploadProtocol?: 1;
|
|
1853
|
+
browserSocialDirectMediaKinds?: readonly ("IMAGE" | "VIDEO" | "VOICE_NOTE")[];
|
|
1854
|
+
browserSocialActions?: readonly ("READ" | "COMMENT" | "REPLY" | "DIRECT" | "DIRECT_START" | "LIKE" | "FOLLOW" | "COMMENT_DELETE" | "COMMENT_VISIBILITY" | "PUBLISH" | "SCHEDULE_CANCEL" | "SCHEDULE_RESCHEDULE")[];
|
|
1855
|
+
xiaohongshuDirectMediaProtocol?: 1;
|
|
1856
|
+
xiaohongshuDirectMediaKinds?: readonly ("IMAGE" | "VIDEO" | "VOICE_NOTE")[];
|
|
1857
|
+
desktopFileSendProtocol?: 1;
|
|
1858
|
+
nativeWechatMultiSendProtocol?: 1;
|
|
1859
|
+
wechatPhysicalRecoveryProtocol?: 1;
|
|
1860
|
+
desktopMediaPresentations?: readonly DesktopNativePresentation[];
|
|
1861
|
+
desktopActionProtocol?: 1;
|
|
1862
|
+
desktopActionKinds?: readonly DesktopActionKind[];
|
|
1863
|
+
/** Actual protected host describe/probe negotiated personal WeChat ID verification v1. */
|
|
1864
|
+
supportsWechatContactIdentity?: boolean;
|
|
1865
|
+
wechatLocalIdentityProtocol?: 1;
|
|
1866
|
+
/** Independent complete PERSONAL LOCAL5+CONTACT3 protocol; never inferred from the GROUP capability. */
|
|
1867
|
+
wechatPersonalLocalIdentityProtocol?: 1;
|
|
1868
|
+
/** Actual protected host describe/probe negotiated the bounded unbound Social read protocol v1. */
|
|
1869
|
+
supportsWechatSocialRead?: boolean;
|
|
1870
|
+
/** Absent preserves the legacy current-page-only v1 advertisement. */
|
|
1871
|
+
wechatSocialReadProtocol?: 2;
|
|
1872
|
+
wechatSocialTargetRegistrationProtocol?: 1;
|
|
1873
|
+
wechatMomentsPublicationProtocol?: 1;
|
|
1874
|
+
wechatOfficialReadProtocol?: 1;
|
|
1875
|
+
wechatChannelsFeedReadProtocol?: 1;
|
|
1876
|
+
nativeVoiceObservationProtocol?: 1 | 2;
|
|
1877
|
+
wechatOutboundDisplayProtocol?: 1;
|
|
1878
|
+
wechatQuotedHistoryProtocol?: 1 | 2;
|
|
1195
1879
|
}
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1880
|
+
export interface NodeProof {
|
|
1881
|
+
protocol: typeof EXECUTION_NODE_PROTOCOL;
|
|
1882
|
+
tenantId: string;
|
|
1883
|
+
serviceOrigin: string;
|
|
1884
|
+
installationRef: string;
|
|
1885
|
+
keyFingerprint: string;
|
|
1886
|
+
nodeRef: string | null;
|
|
1887
|
+
nodeGeneration: number;
|
|
1888
|
+
nodeSessionRef: string | null;
|
|
1889
|
+
sessionGeneration: number;
|
|
1890
|
+
requestNonce: string;
|
|
1891
|
+
bodyDigest: string;
|
|
1892
|
+
signature: string;
|
|
1893
|
+
}
|
|
1894
|
+
/** 独立受保护端口资格;既有能力或环境变量不能推导这些版本。 */
|
|
1895
|
+
export interface WechatOnboardingProtocols {
|
|
1896
|
+
readonly wechatGroupBindingProtocol?: 1;
|
|
1897
|
+
readonly wechatGroupAuthorProtocol?: 1;
|
|
1898
|
+
readonly wechatSourceRebuildProtocol?: 1;
|
|
1899
|
+
readonly wechatTargetContinuityProtocol?: 1;
|
|
1900
|
+
readonly wechatSelectionNavigationProtocol?: 1;
|
|
1901
|
+
readonly nativeBootstrapProtocol?: 1;
|
|
1902
|
+
readonly wechatConversationDiscoveryProtocol?: 1;
|
|
1903
|
+
readonly wechatHomeLocalIdentityProtocol?: 1;
|
|
1904
|
+
readonly wechatBindingContinuityProtocol?: 1;
|
|
1905
|
+
readonly wechatSourceWindowCommitProtocol?: 1;
|
|
1906
|
+
}
|
|
1907
|
+
export interface CommunicationOwnership {
|
|
1908
|
+
readonly kind: "COMMUNICATION";
|
|
1909
|
+
readonly accountRef: string;
|
|
1910
|
+
readonly profileRef: string;
|
|
1911
|
+
readonly displayName: string;
|
|
1912
|
+
readonly basis: {
|
|
1913
|
+
readonly kind: "REVIEWED_SOCIAL_INITIATION";
|
|
1914
|
+
readonly principalRef: string;
|
|
1915
|
+
readonly operationKey: string;
|
|
1916
|
+
readonly sourceEngagementRef: string;
|
|
1917
|
+
readonly sourceConversationRef: string;
|
|
1918
|
+
readonly sourceFactRef: string;
|
|
1919
|
+
readonly requestRef: string;
|
|
1920
|
+
readonly evidenceDigest: string;
|
|
1921
|
+
} | {
|
|
1922
|
+
readonly kind: "HUMAN_DECLARED";
|
|
1923
|
+
readonly principalRef: string;
|
|
1924
|
+
readonly operationKey: string;
|
|
1925
|
+
} | {
|
|
1926
|
+
readonly kind: "DELEGATED_SOCIAL_OBSERVATION";
|
|
1927
|
+
readonly principalRef: string;
|
|
1928
|
+
readonly operationKey: string;
|
|
1929
|
+
readonly inboxEngagementRef: string;
|
|
1930
|
+
readonly inboxConversationRef: string;
|
|
1931
|
+
readonly sourceFactRef: string;
|
|
1932
|
+
readonly policyRef: string;
|
|
1933
|
+
readonly policyVersion: number;
|
|
1934
|
+
readonly policyDigest: string;
|
|
1935
|
+
} | {
|
|
1936
|
+
readonly kind: "DELEGATED_NATIVE_OBSERVATION";
|
|
1937
|
+
readonly principalRef: string;
|
|
1938
|
+
readonly operationKey: string;
|
|
1939
|
+
readonly dispatchRef: string;
|
|
1940
|
+
readonly reportDigest: string;
|
|
1941
|
+
readonly policyRef: string;
|
|
1942
|
+
readonly policyVersion: number;
|
|
1943
|
+
readonly policyDigest: string;
|
|
1944
|
+
};
|
|
1205
1945
|
}
|
|
1206
|
-
export type SourceMessagePart = {
|
|
1207
|
-
readonly partRef: string;
|
|
1208
|
-
readonly kind: "TEXT";
|
|
1209
|
-
readonly text: string;
|
|
1210
|
-
} | {
|
|
1211
|
-
readonly partRef: string;
|
|
1212
|
-
readonly kind: "FILE" | "IMAGE" | "AUDIO" | "VIDEO";
|
|
1213
|
-
readonly sourceAttachmentRef: string;
|
|
1214
|
-
readonly filename: string;
|
|
1215
|
-
readonly mediaType: string;
|
|
1216
|
-
readonly byteLength: number;
|
|
1217
|
-
readonly assetRef?: string;
|
|
1218
|
-
readonly digest?: string;
|
|
1219
|
-
readonly sourceVersion?: string;
|
|
1220
|
-
};
|
|
1221
|
-
/** 出站资产没有外部来源部件 ID;不以 AssetRef 冒充 sourceAttachmentRef。 */
|
|
1222
|
-
export type AssetMessagePart = MessageAttachment & {
|
|
1223
|
-
readonly partRef: string;
|
|
1224
|
-
readonly kind: "FILE" | "AUDIO" | "IMAGE" | "VIDEO";
|
|
1225
|
-
readonly sourceAttachmentRef?: never;
|
|
1226
|
-
};
|
|
1227
|
-
export type MessagePart = SourceMessagePart | AssetMessagePart;
|
|
1228
1946
|
export interface ProspectEngagementBasis {
|
|
1229
1947
|
readonly whyFit: string;
|
|
1230
1948
|
readonly whyNow: string;
|
|
@@ -1259,139 +1977,546 @@ export interface ActionReceipt {
|
|
|
1259
1977
|
readonly idempotentReplay: boolean;
|
|
1260
1978
|
readonly executionStatus?: "QUEUED" | "ACCEPTED" | "UNCERTAIN" | "FAILED" | "CANCELLED";
|
|
1261
1979
|
}
|
|
1262
|
-
export type NextActionType = "CONTACT" | "REPLY" | "WAIT_FOR_REPLY" | "VERIFY_UNCERTAIN_ACTION" | "REVIEW_FAILED_ACTION" | "REVIEW" | "REVIEW_MESSAGE" | "QUEUE_APPROVED_MESSAGE" | "WAIT_FOR_EXECUTION" | "FOLLOW_UP_DUE" | "NONE_SUPPRESSED" | "HANDOFF_READY";
|
|
1263
|
-
export interface NextAction {
|
|
1980
|
+
export type NextActionType = "CONTACT" | "REPLY" | "WAIT_FOR_REPLY" | "VERIFY_UNCERTAIN_ACTION" | "REVIEW_FAILED_ACTION" | "REVIEW" | "REVIEW_MESSAGE" | "QUEUE_APPROVED_MESSAGE" | "WAIT_FOR_EXECUTION" | "FOLLOW_UP_DUE" | "NONE_SUPPRESSED" | "HANDOFF_READY";
|
|
1981
|
+
export interface NextAction {
|
|
1982
|
+
readonly tenantId: string;
|
|
1983
|
+
readonly engagementRef: string;
|
|
1984
|
+
readonly type: NextActionType;
|
|
1985
|
+
readonly rationale: string;
|
|
1986
|
+
readonly requiresHuman: boolean;
|
|
1987
|
+
readonly sourceInteractionRefs: readonly string[];
|
|
1988
|
+
readonly handoffRef?: string;
|
|
1989
|
+
readonly assessmentRef?: string;
|
|
1990
|
+
readonly assessmentVersion?: number;
|
|
1991
|
+
readonly dueAt?: string;
|
|
1992
|
+
readonly channel?: string;
|
|
1993
|
+
readonly routeRef?: string;
|
|
1994
|
+
readonly messageRef?: string;
|
|
1995
|
+
readonly profileRef?: string;
|
|
1996
|
+
readonly policyRequirements?: readonly string[];
|
|
1997
|
+
readonly missingPrerequisites?: readonly string[];
|
|
1998
|
+
}
|
|
1999
|
+
export interface WechatChannelsFeedObservation {
|
|
2000
|
+
readonly protocol: 1;
|
|
2001
|
+
readonly authorIdentity: "NOT_ATTESTED";
|
|
2002
|
+
readonly contentIdentity: "NOT_ATTESTED";
|
|
2003
|
+
readonly directReplyTarget: "NOT_ATTESTED";
|
|
2004
|
+
readonly ownReaction: "NOT_ATTESTED";
|
|
2005
|
+
readonly following: "NOT_ATTESTED";
|
|
2006
|
+
readonly visibleText: readonly {
|
|
2007
|
+
readonly captureKey: string;
|
|
2008
|
+
readonly text: string;
|
|
2009
|
+
}[];
|
|
2010
|
+
readonly dynamicRead: {
|
|
2011
|
+
readonly basis: "EXACT_FINDER_PROGRESS_ONLY";
|
|
2012
|
+
readonly firstObservedAt: string;
|
|
2013
|
+
readonly secondObservedAt: string;
|
|
2014
|
+
readonly firstRawDigest: string;
|
|
2015
|
+
readonly secondRawDigest: string;
|
|
2016
|
+
readonly firstTreeDigest: string;
|
|
2017
|
+
readonly secondTreeDigest: string;
|
|
2018
|
+
readonly comparisonDigest: string;
|
|
2019
|
+
readonly firstValue: string;
|
|
2020
|
+
readonly secondValue: string;
|
|
2021
|
+
};
|
|
2022
|
+
}
|
|
2023
|
+
export type WechatObservationIntent = "CURRENT_VIEW" | "REFRESH_CURRENT_OFFICIAL_ARTICLE";
|
|
2024
|
+
export type WechatOfficialPage = "OFFICIAL_DIRECTORY" | "OFFICIAL_ACCOUNT_LIST" | "OFFICIAL_ACCOUNT_HOME" | "OFFICIAL_ACCOUNT_PROFILE" | "OFFICIAL_ARTICLE" | "OFFICIAL_ARTICLE_FAILED" | "OFFICIAL_ARTICLE_COMMENTS" | "OFFICIAL_ARTICLE_UNEXPOSED";
|
|
2025
|
+
export type WechatOfficialReason = "CURRENT_VIEW_OBSERVED" | "ARTICLE_DNS_FAILED" | "ARTICLE_LOAD_FAILED" | "ARTICLE_LOADING" | "ARTICLE_CONTENT_NOT_EXPOSED" | "OFFICIAL_STRUCTURE_UNSUPPORTED" | "OFFICIAL_SAFE_DOMAIN_NOT_PROVEN";
|
|
2026
|
+
export interface WechatOfficialRow {
|
|
2027
|
+
readonly captureKey: string;
|
|
2028
|
+
readonly kind: "ACCOUNT_LABEL" | "NEWS_PREVIEW" | "ARTICLE_PREVIEW" | "SECTION_LABEL" | "PROFILE_FIELD" | "TEXT_BLOCK" | "INLINE_FRAGMENT" | "INTERACTION_LABEL" | "COMMENT_COMPOSITE";
|
|
2029
|
+
readonly text: string;
|
|
2030
|
+
readonly label: string | null;
|
|
2031
|
+
readonly timeLabel: string | null;
|
|
2032
|
+
readonly parentKey: string | null;
|
|
2033
|
+
readonly visibility: "FULLY_VISIBLE" | "CLIPPED";
|
|
2034
|
+
readonly partial: boolean;
|
|
2035
|
+
readonly rowNumber: number | null;
|
|
2036
|
+
}
|
|
2037
|
+
export interface WechatOfficialObservation {
|
|
2038
|
+
readonly observationIntent: WechatObservationIntent;
|
|
2039
|
+
readonly viewer: "NOT_ATTESTED";
|
|
2040
|
+
readonly status: "OBSERVED" | "GAP";
|
|
2041
|
+
readonly reasonCode: WechatOfficialReason;
|
|
2042
|
+
readonly safeDomain: "mp.weixin.qq.com" | null;
|
|
2043
|
+
readonly refreshPerformed: boolean;
|
|
2044
|
+
readonly accountSelection: "NOT_ATTESTED";
|
|
2045
|
+
readonly accountLabel: string | null;
|
|
2046
|
+
readonly domainExposure: "EXPOSED" | "NOT_EXPOSED";
|
|
2047
|
+
readonly refreshQualification: "NOT_REQUESTED" | "SAFE_DOMAIN_NATIVE_MENU" | "OFFICIAL_ACCOUNT_NATIVE_MENU";
|
|
2048
|
+
readonly article: {
|
|
2049
|
+
readonly title: string | null;
|
|
2050
|
+
readonly byline: string | null;
|
|
2051
|
+
readonly publisherLabel: string | null;
|
|
2052
|
+
readonly publishedLabel: string | null;
|
|
2053
|
+
};
|
|
2054
|
+
readonly identityClue: {
|
|
2055
|
+
readonly namespace: "OFFICIAL_ACCOUNT";
|
|
2056
|
+
readonly clueKind: "OFFICIAL_ACCOUNT_ID";
|
|
2057
|
+
readonly value: string;
|
|
2058
|
+
readonly basis: "VISIBLE_PROFILE_FIELD";
|
|
2059
|
+
readonly verification: "UI_DISPLAY_ONLY";
|
|
2060
|
+
} | null;
|
|
2061
|
+
readonly rows: readonly WechatOfficialRow[];
|
|
2062
|
+
readonly commentCountLabel: string | null;
|
|
2063
|
+
readonly coverage: {
|
|
2064
|
+
readonly fullText: "NOT_ATTESTED";
|
|
2065
|
+
readonly comments: "NOT_ATTESTED";
|
|
2066
|
+
readonly excludedUnderlay: boolean;
|
|
2067
|
+
readonly excludedOffscreen: boolean;
|
|
2068
|
+
};
|
|
2069
|
+
}
|
|
2070
|
+
/** A transient display observation, never a SocialContent, Participant or write target. */
|
|
2071
|
+
export interface WechatSocialWindowContent {
|
|
2072
|
+
readonly captureKey: string;
|
|
2073
|
+
readonly kind: "MOMENT_CARD" | "CHANNELS_SNIPPET" | "CHANNELS_AUTHOR_DESCRIPTION";
|
|
2074
|
+
readonly authorLabel: string | null;
|
|
2075
|
+
readonly text: string;
|
|
2076
|
+
readonly timeLabel: string | null;
|
|
2077
|
+
readonly expandable: boolean;
|
|
2078
|
+
readonly partial: boolean;
|
|
2079
|
+
readonly plane: "FOREGROUND" | "UNDERLAY";
|
|
2080
|
+
readonly visibleMediaItems: number;
|
|
2081
|
+
readonly declaredMediaTotal: number | null;
|
|
2082
|
+
}
|
|
2083
|
+
export interface WechatSocialWindowComment {
|
|
2084
|
+
readonly captureKey: string;
|
|
2085
|
+
readonly kind: "ROOT_COMMENT" | "THREAD_REPLY";
|
|
2086
|
+
readonly authorLabel: string;
|
|
2087
|
+
readonly text: string;
|
|
2088
|
+
readonly timeLabel: string;
|
|
2089
|
+
readonly authorBadgeObserved: boolean;
|
|
2090
|
+
readonly threadRootKey: string | null;
|
|
2091
|
+
readonly relationBasis: "ROOT_ROW_STRUCTURE" | "VISIBLE_GROUPED_REPLY_ROW";
|
|
2092
|
+
readonly directReplyTarget: "NOT_ATTESTED";
|
|
2093
|
+
}
|
|
2094
|
+
export interface WechatSocialRenderedWindow {
|
|
2095
|
+
/** v1 remains the original feed/Channels/Works shape; v2 is the closed current Moments detail preview. */
|
|
2096
|
+
readonly schemaVersion: 1 | 2 | 3 | 4;
|
|
2097
|
+
readonly channelsFeed?: WechatChannelsFeedObservation;
|
|
2098
|
+
readonly official?: WechatOfficialObservation;
|
|
2099
|
+
readonly observationRef: string;
|
|
2100
|
+
readonly observedAt: string;
|
|
2101
|
+
readonly page: WechatOfficialPage | "MOMENTS_FEED" | "MOMENTS_DETAIL" | "CHANNELS_COMMENTS" | "CHANNELS_FEED" | "WORKS_ENTRY" | "WORKS_MEDIA_PERMISSION_NOTICE" | "WORKS_TEXT_COVER_PREVIEW";
|
|
2102
|
+
readonly identityBasis: "UNBOUND_UI_LABELS_ONLY";
|
|
2103
|
+
readonly referenceLifetime: "CURRENT_OBSERVATION_ONLY";
|
|
2104
|
+
readonly coverage: "BOUNDED_CURRENT_RENDERED_VIEW";
|
|
2105
|
+
readonly completeness: "NOT_ATTESTED";
|
|
2106
|
+
readonly publicationAudience: "NOT_ATTESTED";
|
|
2107
|
+
readonly businessActionsPermitted: false;
|
|
2108
|
+
readonly partial: boolean;
|
|
2109
|
+
readonly truncated: boolean;
|
|
2110
|
+
readonly commentsCoverage: "NOT_OBSERVED" | "CURRENT_VISIBLE_ROWS_ONLY";
|
|
2111
|
+
readonly commentCountLabel: string | null;
|
|
2112
|
+
readonly content: readonly WechatSocialWindowContent[];
|
|
2113
|
+
readonly comments: readonly WechatSocialWindowComment[];
|
|
2114
|
+
readonly partialRows: readonly {
|
|
2115
|
+
readonly captureKey: string;
|
|
2116
|
+
readonly reasonCode: "ANDROID_WECHAT_SOCIAL_MOMENT_CONTINUES_OUTSIDE_VIEW" | "ANDROID_WECHAT_SOCIAL_COMMENT_BODY_NOT_RENDERED";
|
|
2117
|
+
}[];
|
|
2118
|
+
readonly notices: readonly string[];
|
|
2119
|
+
}
|
|
2120
|
+
/** Added only to the existing authorized WeChat Social query; no independent submission authority. */
|
|
2121
|
+
export interface WechatSocialReadAttemptView {
|
|
2122
|
+
readonly dispatchRef: string;
|
|
2123
|
+
readonly state: "QUEUED" | "CLAIMED" | "RESOURCE_READY" | "RUNNING" | "RESULT_RECORDED" | "NEEDS_RECONCILIATION" | "ABORTED";
|
|
2124
|
+
readonly physicalIdle: boolean;
|
|
2125
|
+
readonly createdAt: string;
|
|
2126
|
+
readonly reasonCode?: string;
|
|
2127
|
+
readonly renderedObservation?: {
|
|
2128
|
+
readonly observationRef: string;
|
|
2129
|
+
readonly observedAt: string;
|
|
2130
|
+
readonly evidenceDigest: string;
|
|
2131
|
+
readonly renderedWindow: WechatSocialRenderedWindow;
|
|
2132
|
+
};
|
|
2133
|
+
}
|
|
2134
|
+
export type WechatSocialSurface = "MOMENTS" | "CHANNELS" | "OFFICIAL_ARTICLE" | "WORKS";
|
|
2135
|
+
export interface WechatSocialContentScope {
|
|
2136
|
+
readonly platform: "WECHAT";
|
|
2137
|
+
readonly surface: WechatSocialSurface;
|
|
2138
|
+
/** 原 Owner 登记的视图内定位引用,不是昵称摘要或永久平台对象 ID。 */
|
|
2139
|
+
readonly rootRef: string;
|
|
2140
|
+
readonly audience: "CURRENT_ACCOUNT_VISIBLE" | "FRIENDS" | "MUTUAL_FRIENDS" | "SELECTED_PARTICIPANTS" | "SELF_ONLY";
|
|
2141
|
+
readonly audienceParticipantRefs?: readonly string[];
|
|
2142
|
+
}
|
|
2143
|
+
export interface WechatSocialAuthorEvidence {
|
|
2144
|
+
readonly identitySpace: "PERSONAL_WECHAT" | "CHANNELS" | "OFFICIAL_ACCOUNT" | "WORKS";
|
|
2145
|
+
readonly externalRef: string;
|
|
2146
|
+
readonly evidenceDigest: string;
|
|
2147
|
+
/** Explicit current Owner clue snapshot; never a platform authentication claim. */
|
|
2148
|
+
readonly ownerIdentity?: {
|
|
2149
|
+
readonly schemaVersion: 1;
|
|
2150
|
+
readonly identityVersion: number;
|
|
2151
|
+
readonly externalIdentityVersion: number;
|
|
2152
|
+
readonly clueRef: string;
|
|
2153
|
+
};
|
|
2154
|
+
}
|
|
2155
|
+
/** 原 Owner 内部端口的受信读取依据;公共请求不能提交此 authority。 */
|
|
2156
|
+
export interface SocialRenderedReadAuthority {
|
|
1264
2157
|
readonly tenantId: string;
|
|
1265
2158
|
readonly engagementRef: string;
|
|
1266
|
-
readonly
|
|
1267
|
-
readonly
|
|
1268
|
-
readonly
|
|
1269
|
-
readonly
|
|
1270
|
-
readonly
|
|
1271
|
-
readonly
|
|
1272
|
-
readonly
|
|
1273
|
-
readonly
|
|
1274
|
-
readonly channel?: string;
|
|
1275
|
-
readonly routeRef?: string;
|
|
1276
|
-
readonly messageRef?: string;
|
|
1277
|
-
readonly profileRef?: string;
|
|
1278
|
-
readonly policyRequirements?: readonly string[];
|
|
1279
|
-
readonly missingPrerequisites?: readonly string[];
|
|
2159
|
+
readonly conversationRef: string;
|
|
2160
|
+
readonly profileRef: string;
|
|
2161
|
+
readonly accountRef: string;
|
|
2162
|
+
readonly hostRef: string;
|
|
2163
|
+
readonly hostBindingDigest: string;
|
|
2164
|
+
readonly runtimeKind: "MOBILE";
|
|
2165
|
+
readonly conversationRevision: number;
|
|
2166
|
+
readonly membershipDigest: string;
|
|
1280
2167
|
}
|
|
1281
|
-
|
|
1282
|
-
|
|
2168
|
+
export interface WechatSocialVisibility {
|
|
2169
|
+
readonly basis: "CURRENT_ACCOUNT_RENDERED_VIEW";
|
|
2170
|
+
readonly comments: "CURRENT_VISIBLE_ONLY" | "MUTUAL_FRIENDS_VISIBLE";
|
|
2171
|
+
/** 看见内容或部分共同好友评论不证明发表时的完整受众。 */
|
|
2172
|
+
readonly publicationAudience: "NOT_ATTESTED";
|
|
2173
|
+
}
|
|
2174
|
+
export interface WechatSocialReadEvidence {
|
|
1283
2175
|
readonly schemaVersion: 1;
|
|
1284
|
-
readonly
|
|
1285
|
-
readonly
|
|
1286
|
-
readonly
|
|
2176
|
+
readonly observationRef: string;
|
|
2177
|
+
readonly binding: SocialRenderedReadAuthority;
|
|
2178
|
+
readonly evidenceKind: "ANDROID_UI_AUTOMATION";
|
|
2179
|
+
readonly targetIdentity: "OWNER_SELECTED_VIEW";
|
|
2180
|
+
readonly coverage: "BOUNDED_CURRENT_RENDERED_VIEW";
|
|
2181
|
+
readonly contentCoverage: "RENDERED_TEXT_AND_STRUCTURE_ONLY";
|
|
2182
|
+
readonly evidenceDigest: string;
|
|
2183
|
+
readonly visibility: WechatSocialVisibility;
|
|
1287
2184
|
}
|
|
1288
|
-
export interface
|
|
2185
|
+
export interface SocialRegistrationIdentity {
|
|
2186
|
+
readonly participantRef: string;
|
|
2187
|
+
readonly identityVersion: number;
|
|
2188
|
+
readonly externalIdentityVersion: number;
|
|
2189
|
+
readonly clueRef: string;
|
|
2190
|
+
}
|
|
2191
|
+
export interface SocialRegistrationSource {
|
|
2192
|
+
readonly dispatchRef: string;
|
|
1289
2193
|
readonly observationRef: string;
|
|
2194
|
+
readonly captureKey: string;
|
|
2195
|
+
}
|
|
2196
|
+
export interface SocialTargetPreview {
|
|
2197
|
+
readonly schemaVersion: 1;
|
|
2198
|
+
readonly registrationRef: string;
|
|
2199
|
+
readonly previewRef: string;
|
|
1290
2200
|
readonly observedAt: string;
|
|
2201
|
+
readonly expiresAt: string;
|
|
2202
|
+
readonly evidenceDigest: string;
|
|
2203
|
+
readonly renderedWindow: WechatSocialRenderedWindow;
|
|
1291
2204
|
}
|
|
1292
|
-
export interface
|
|
2205
|
+
export interface SocialTargetQualified {
|
|
1293
2206
|
readonly schemaVersion: 1;
|
|
1294
|
-
readonly
|
|
1295
|
-
|
|
2207
|
+
readonly registrationRef: string;
|
|
2208
|
+
readonly state: "QUALIFIED";
|
|
2209
|
+
readonly previewRef: string;
|
|
2210
|
+
readonly previewDigest: string;
|
|
2211
|
+
readonly captureKey: string;
|
|
2212
|
+
readonly selectionReceiptRef: string;
|
|
2213
|
+
readonly frame: WechatSocialReadFrame;
|
|
2214
|
+
readonly authorObservation: SocialRegistrationIdentity & {
|
|
2215
|
+
readonly wechatId: string;
|
|
2216
|
+
readonly observedAt: string;
|
|
2217
|
+
readonly evidenceDigest: string;
|
|
2218
|
+
readonly basis: "CURRENT_DETAIL_AUTHOR_PROFILE_RETURN";
|
|
2219
|
+
readonly verification: "VISIBLE_UI_ID_MATCH";
|
|
1296
2220
|
};
|
|
1297
|
-
readonly
|
|
2221
|
+
readonly roundTrip: {
|
|
2222
|
+
readonly enteredAt: string;
|
|
2223
|
+
readonly returnedAt: string;
|
|
2224
|
+
readonly evidenceDigest: string;
|
|
2225
|
+
readonly basis: "CURRENT_DETAIL_RETURN";
|
|
2226
|
+
};
|
|
2227
|
+
readonly viewer: "NOT_ATTESTED";
|
|
1298
2228
|
}
|
|
1299
|
-
export
|
|
1300
|
-
|
|
1301
|
-
|
|
2229
|
+
export interface SocialRegistrationMetadata {
|
|
2230
|
+
readonly protocol: 1;
|
|
2231
|
+
readonly identityBasis: "UI_INSTANCE";
|
|
2232
|
+
readonly registrationRef: string;
|
|
2233
|
+
readonly source: SocialRegistrationSource;
|
|
2234
|
+
readonly sourceRelation: "CURRENT_INSTANCE_RECONFIRMED";
|
|
2235
|
+
readonly previewRef: string;
|
|
2236
|
+
readonly previewDigest: string;
|
|
2237
|
+
readonly selectionReceiptRef: string;
|
|
2238
|
+
readonly author: SocialRegistrationIdentity;
|
|
2239
|
+
readonly local: SocialRegistrationIdentity;
|
|
2240
|
+
readonly authorObservation: SocialTargetQualified["authorObservation"];
|
|
2241
|
+
readonly roundTrip: SocialTargetQualified["roundTrip"];
|
|
2242
|
+
readonly viewer: "NOT_ATTESTED";
|
|
2243
|
+
readonly contentCoverage: "VISIBLE_SHARE_TITLE_ONLY";
|
|
2244
|
+
readonly writeEligible: false;
|
|
2245
|
+
}
|
|
2246
|
+
export interface SocialRegistrationContext {
|
|
1302
2247
|
readonly schemaVersion: 1;
|
|
1303
|
-
readonly
|
|
1304
|
-
readonly
|
|
1305
|
-
readonly
|
|
1306
|
-
readonly
|
|
1307
|
-
readonly
|
|
1308
|
-
readonly
|
|
2248
|
+
readonly engagementRef: string;
|
|
2249
|
+
readonly conversationRef: string;
|
|
2250
|
+
readonly profileRef: string;
|
|
2251
|
+
readonly accountRef: string;
|
|
2252
|
+
readonly conversationRevision: number;
|
|
2253
|
+
readonly membershipDigest: string;
|
|
2254
|
+
readonly local: SocialRegistrationIdentity | null;
|
|
2255
|
+
readonly authors: readonly (SocialRegistrationIdentity & {
|
|
2256
|
+
readonly label: string;
|
|
2257
|
+
})[];
|
|
2258
|
+
readonly eligibility: "ELIGIBLE" | "BLOCKED";
|
|
2259
|
+
readonly reasonCodes: readonly ("LOCAL_CURRENT_SLOT_REQUIRED" | "AUTHOR_CURRENT_SLOT_REQUIRED" | "BOUNDED_MOMENTS_VIEW_REQUIRED" | "TARGET_PROTOCOL_REQUIRED")[];
|
|
2260
|
+
}
|
|
2261
|
+
export interface SocialTargetRegistrationView {
|
|
2262
|
+
readonly schemaVersion: 1;
|
|
2263
|
+
readonly registrationRef: string;
|
|
2264
|
+
readonly createdAt: string;
|
|
2265
|
+
readonly state: string;
|
|
2266
|
+
readonly physicalIdle: boolean;
|
|
2267
|
+
readonly phase: "QUEUED" | "WAITING_CONFIRMATION" | "QUALIFYING" | "REGISTERED" | "GAP" | "UNKNOWN";
|
|
2268
|
+
readonly expiresAt: string | null;
|
|
2269
|
+
readonly reasonCode?: string;
|
|
2270
|
+
readonly preview?: SocialTargetPreview & {
|
|
2271
|
+
readonly previewDigest: string;
|
|
2272
|
+
};
|
|
2273
|
+
readonly confirmationRecorded: boolean;
|
|
2274
|
+
readonly registered?: {
|
|
2275
|
+
readonly conversationRef: string;
|
|
2276
|
+
readonly rootRef: string;
|
|
2277
|
+
readonly routeRef: string;
|
|
2278
|
+
readonly receipt: ActionReceipt;
|
|
2279
|
+
};
|
|
2280
|
+
}
|
|
2281
|
+
export type SocialPublisher = SocialRegistrationIdentity & {
|
|
2282
|
+
readonly wechatId: string;
|
|
2283
|
+
};
|
|
2284
|
+
export type XiaohongshuActivityView = BrowserAccountActivityView;
|
|
2285
|
+
export interface SocialAutonomy extends WechatAutonomy {
|
|
2286
|
+
readonly expiresAt: string;
|
|
2287
|
+
readonly maxReplies: number;
|
|
2288
|
+
readonly factRef: string;
|
|
2289
|
+
}
|
|
2290
|
+
export interface XiaohongshuScheduleHistory {
|
|
2291
|
+
readonly coverage: "RETAINED_OWNER_EXACT_OBJECT_ASSOCIATIONS";
|
|
2292
|
+
readonly platformCurrentness: "NOT_ATTESTED";
|
|
2293
|
+
readonly truncated: boolean;
|
|
2294
|
+
/** SQL history uses original outbox sequence, newest first, independent of observed clock. */
|
|
2295
|
+
readonly items: readonly {
|
|
2296
|
+
readonly messageRef: string;
|
|
2297
|
+
readonly requestRef: string | null;
|
|
2298
|
+
readonly kind: "PUBLISH" | "SCHEDULE_CANCEL" | "SCHEDULE_RESCHEDULE";
|
|
2299
|
+
readonly status: string;
|
|
2300
|
+
readonly approvedScheduledAt: string | null;
|
|
2301
|
+
readonly objectRef: string | null;
|
|
2302
|
+
readonly originalPublicationRequestRef: string | null;
|
|
2303
|
+
readonly association: "EXACT_OBJECT" | "MISSING_PROOF" | "CONFLICT";
|
|
2304
|
+
readonly currentObservation: {
|
|
2305
|
+
readonly factRef: string;
|
|
2306
|
+
readonly observedAt: string;
|
|
2307
|
+
readonly state: "PENDING" | "CANCELLED" | "PUBLISHED";
|
|
2308
|
+
readonly scheduledAt: string | null;
|
|
2309
|
+
} | null;
|
|
2310
|
+
}[];
|
|
2311
|
+
}
|
|
2312
|
+
export interface FacebookReplyWaiting {
|
|
2313
|
+
kind: "ACCOUNT_PAUSED" | "ACCOUNT_BUDGET" | "NODE_UNAVAILABLE" | "NODE_POLICY" | "CLIENT_RELAY" | "PLACEMENT_CHANGED" | "RESOURCE_BUSY" | "PHYSICAL_RECOVERY";
|
|
2314
|
+
reasonCode: string;
|
|
2315
|
+
nextCheckAt: string | null;
|
|
2316
|
+
effect: "NONE";
|
|
2317
|
+
}
|
|
2318
|
+
export type SocialApiPlatform = "YOUTUBE" | "TIKTOK";
|
|
2319
|
+
export interface SocialApiContentScope {
|
|
2320
|
+
platform: SocialApiPlatform;
|
|
2321
|
+
rootRef: string;
|
|
2322
|
+
audience: "PUBLIC" | "ACCOUNT_OWNED";
|
|
2323
|
+
}
|
|
2324
|
+
export type SocialContentScope = SocialApiContentScope | WechatSocialContentScope | XiaohongshuScope | BrowserSocialScope | FacebookSocialScope;
|
|
2325
|
+
export interface SocialContentRecord {
|
|
2326
|
+
contentRef: string;
|
|
2327
|
+
rootRef: string;
|
|
2328
|
+
parentRef: string | null;
|
|
2329
|
+
threadRef?: string;
|
|
2330
|
+
authorRef: string;
|
|
2331
|
+
text: string;
|
|
2332
|
+
kind: "POST" | "COMMENT" | "REPLY" | "MESSAGE" | "ACCOUNT" | "THREAD" | "NOTIFICATION" | "OPTION";
|
|
2333
|
+
xiaohongshu?: XiaohongshuContentEvidence;
|
|
2334
|
+
browser?: BrowserSocialEvidence;
|
|
2335
|
+
facebook?: FacebookPostContent | FacebookCommentContent;
|
|
2336
|
+
sourceVersion: string;
|
|
2337
|
+
contentDigest: string;
|
|
2338
|
+
observedAt: string;
|
|
2339
|
+
/** 仅原生微信内容使用,authorRef 指向原 Participant;API 作者引用原样保留。 */
|
|
2340
|
+
wechatAuthor?: WechatSocialAuthorEvidence;
|
|
2341
|
+
replyToAuthorRef?: string;
|
|
2342
|
+
}
|
|
2343
|
+
export interface SocialReadFrameBase {
|
|
2344
|
+
profileRef: string;
|
|
2345
|
+
externalAccountRef: string;
|
|
2346
|
+
observedAt: string;
|
|
2347
|
+
contents: readonly SocialContentRecord[];
|
|
2348
|
+
completeness: "NOT_ATTESTED";
|
|
2349
|
+
}
|
|
2350
|
+
export interface WechatSocialReadFrame extends SocialReadFrameBase, WechatSocialReadEvidence {
|
|
2351
|
+
scope: WechatSocialContentScope;
|
|
2352
|
+
readonly renderedWindow?: WechatSocialRenderedWindow;
|
|
2353
|
+
}
|
|
2354
|
+
export interface SocialOperationView {
|
|
2355
|
+
tenantId: string;
|
|
2356
|
+
profileRef: string;
|
|
2357
|
+
engagementRef: string;
|
|
2358
|
+
conversationRef: string;
|
|
2359
|
+
dispatchRef: string;
|
|
2360
|
+
action: string;
|
|
2361
|
+
state: string;
|
|
2362
|
+
physicalIdle: boolean;
|
|
2363
|
+
requestRef: string | null;
|
|
2364
|
+
reasonCode: string | null;
|
|
2365
|
+
browserActivity?: XiaohongshuActivityView;
|
|
2366
|
+
installedCapabilities?: BrowserInstalledCapabilities;
|
|
2367
|
+
browserRead?: BrowserSocialReadWindow;
|
|
2368
|
+
browserUpload?: BrowserUploadProgress;
|
|
2369
|
+
browserDirect?: BrowserDirectObservation;
|
|
2370
|
+
browserAction?: BrowserActionObservation;
|
|
2371
|
+
facebookWaiting?: FacebookReplyWaiting;
|
|
2372
|
+
}
|
|
2373
|
+
export interface SocialContentProjection extends SocialContentRecord {
|
|
2374
|
+
revision: number;
|
|
2375
|
+
factRef: string;
|
|
2376
|
+
source: SourceObservation;
|
|
2377
|
+
historicalContext?: true;
|
|
2378
|
+
messageOrder?: {
|
|
2379
|
+
previousRef: string | null;
|
|
2380
|
+
nextRef: string | null;
|
|
2381
|
+
};
|
|
2382
|
+
renderedEvidence?: WechatSocialReadEvidence;
|
|
1309
2383
|
}
|
|
1310
|
-
export
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
readonly
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
readonly availability: "AVAILABLE" | "UNAVAILABLE" | "UNRESOLVED";
|
|
1321
|
-
readonly changeKind: SourceChangeKind | "LEGACY_OBSERVATION";
|
|
1322
|
-
readonly reasonCode: string;
|
|
1323
|
-
readonly observedAt: string;
|
|
1324
|
-
readonly candidateFactRef: string | null;
|
|
1325
|
-
readonly lastInspectionRef: string | null;
|
|
2384
|
+
export interface SocialContentPage {
|
|
2385
|
+
tenantId: string;
|
|
2386
|
+
engagementRef: string;
|
|
2387
|
+
conversationRef: string;
|
|
2388
|
+
profileRef: string;
|
|
2389
|
+
items: readonly Omit<SocialContentProjection, "source">[];
|
|
2390
|
+
nextCursor: string | null;
|
|
2391
|
+
consistency: "SNAPSHOT" | "LIVE";
|
|
2392
|
+
coverage: "RETAINED_CANONICAL_OBSERVATIONS";
|
|
2393
|
+
platformCurrentness: "NOT_ATTESTED";
|
|
1326
2394
|
}
|
|
1327
|
-
export interface
|
|
1328
|
-
readonly
|
|
2395
|
+
export interface SocialTextMessage extends TextChannelMessage {
|
|
2396
|
+
readonly acceptedScheduleObjectRef?: string;
|
|
2397
|
+
readonly externalObjectRef?: string;
|
|
2398
|
+
readonly delegation?: {
|
|
2399
|
+
readonly version: number;
|
|
2400
|
+
readonly factRef: string;
|
|
2401
|
+
};
|
|
2402
|
+
readonly channel: "SOCIAL";
|
|
2403
|
+
readonly executionPlacementDigest?: string;
|
|
1329
2404
|
readonly conversationRef: string;
|
|
1330
|
-
readonly
|
|
1331
|
-
readonly
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
readonly
|
|
1337
|
-
readonly
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
2405
|
+
readonly senderParticipantRef: string;
|
|
2406
|
+
readonly xiaohongshuIntent?: XiaohongshuIntent;
|
|
2407
|
+
readonly browserIntent?: BrowserSocialIntent;
|
|
2408
|
+
readonly browserDirect?: BrowserDirectObservation;
|
|
2409
|
+
readonly browserAction?: BrowserActionObservation;
|
|
2410
|
+
readonly browserPublication?: BrowserPublicationObservation;
|
|
2411
|
+
readonly browserUpload?: BrowserUploadProgress;
|
|
2412
|
+
readonly socialTarget: (SocialApiContentScope | XiaohongshuScope | BrowserSocialScope | FacebookSocialScope) & {
|
|
2413
|
+
targetRef: string;
|
|
2414
|
+
sourceFactRef: string;
|
|
2415
|
+
sourceVersion: string;
|
|
2416
|
+
sourceDigest: string;
|
|
2417
|
+
conversationRevision: number;
|
|
2418
|
+
};
|
|
1341
2419
|
}
|
|
1342
|
-
export interface
|
|
1343
|
-
readonly
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
readonly
|
|
1350
|
-
readonly
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
2420
|
+
export interface SocialConversationView {
|
|
2421
|
+
readonly xiaohongshuScheduleHistory?: XiaohongshuScheduleHistory;
|
|
2422
|
+
tenantId: string;
|
|
2423
|
+
conversationRef: string;
|
|
2424
|
+
profileRef: string;
|
|
2425
|
+
scope: SocialContentScope;
|
|
2426
|
+
revision: number;
|
|
2427
|
+
contents: readonly Omit<SocialContentProjection, "source">[];
|
|
2428
|
+
messages: readonly (Pick<SocialTextMessage, "messageRef" | "version" | "contentDigest" | "text" | "socialTarget" | "xiaohongshuIntent" | "browserIntent" | "browserAction" | "browserDirect" | "browserPublication" | "browserUpload" | "externalObjectRef" | "acceptedScheduleObjectRef" | "status"> & {
|
|
2429
|
+
requestRef: string | null;
|
|
2430
|
+
})[];
|
|
2431
|
+
dispatches: readonly {
|
|
2432
|
+
dispatchRef: string;
|
|
2433
|
+
action: string;
|
|
2434
|
+
state: string;
|
|
2435
|
+
physicalIdle: boolean;
|
|
2436
|
+
createdAt: string;
|
|
2437
|
+
requestRef: string | null;
|
|
2438
|
+
reasonCode?: string | null;
|
|
2439
|
+
}[];
|
|
2440
|
+
controlVersion: number;
|
|
2441
|
+
readonly autonomy?: SocialAutonomy;
|
|
2442
|
+
readonly xiaohongshuRead?: {
|
|
2443
|
+
dispatchRef: string;
|
|
2444
|
+
traversal: XiaohongshuTraversal;
|
|
2445
|
+
contentRefs?: readonly string[];
|
|
2446
|
+
captureFailures?: readonly SocialMediaCaptureFailure[];
|
|
1355
2447
|
};
|
|
1356
|
-
readonly
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
readonly
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
readonly
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
readonly
|
|
1369
|
-
readonly
|
|
1370
|
-
readonly
|
|
1371
|
-
readonly
|
|
1372
|
-
readonly
|
|
1373
|
-
readonly approvalExpiresAt?: string;
|
|
1374
|
-
readonly reviewSourceRef?: string;
|
|
1375
|
-
readonly authorizationBasis?: "HUMAN_MESSAGE_REVIEW" | "HUMAN_CONVERSATION_DELEGATION" | "ENGAGEMENT_CONTROL";
|
|
1376
|
-
readonly authorizationControlVersion?: number;
|
|
1377
|
-
readonly requestRef?: string;
|
|
1378
|
-
readonly hostEvidenceDigest?: string;
|
|
2448
|
+
readonly browserRead?: BrowserSocialReadWindow & {
|
|
2449
|
+
readonly dispatchRef: string;
|
|
2450
|
+
};
|
|
2451
|
+
readonly browserCapture?: {
|
|
2452
|
+
readonly basis: "INSTALLED_NODE_PORT";
|
|
2453
|
+
readonly available: boolean;
|
|
2454
|
+
readonly reasonCode: string | null;
|
|
2455
|
+
};
|
|
2456
|
+
readonly browserUploadSupport?: {
|
|
2457
|
+
readonly protocol: 1;
|
|
2458
|
+
readonly available: boolean;
|
|
2459
|
+
};
|
|
2460
|
+
readonly registrationContext?: SocialRegistrationContext;
|
|
2461
|
+
readonly targetRegistration?: SocialTargetRegistrationView;
|
|
2462
|
+
readonly socialRegistration?: SocialRegistrationMetadata;
|
|
2463
|
+
readonly publicationRegistration?: SocialPublicationRegistration;
|
|
2464
|
+
readonly readAttempt?: WechatSocialReadAttemptView;
|
|
1379
2465
|
}
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
export interface
|
|
1383
|
-
|
|
2466
|
+
/** 通用交互只关联原业务操作、人类决定和应用回执,不承载模型会话或设备秘密。 */
|
|
2467
|
+
export type EngagementInteractionOperationType = "WEIXIN_COMMENT_WRITE" | "WEIXIN_IMAGE_UPLOAD" | "WEIXIN_CONTENT_WRITE" | "MAIL_CONFIGURATION" | "MESSAGE_REVIEW" | "ENVIRONMENT_INSTALLATION" | "NODE_PAIRING" | "DEVICE_PLACEMENT" | "ACCOUNT_SETUP" | "ACCOUNT_CONNECTION" | "VOICE_PROFILE_BINDING" | "FEEDBACK";
|
|
2468
|
+
export interface EngagementInteractionOperation {
|
|
2469
|
+
type: EngagementInteractionOperationType;
|
|
2470
|
+
payload: Record<string, unknown>;
|
|
2471
|
+
}
|
|
2472
|
+
export type EngagementInteractionState = "PENDING" | "DECIDED" | "APPLYING" | "APPLIED" | "REJECTED" | "CANCELLED" | "EXPIRED" | "FAILED" | "UNKNOWN";
|
|
2473
|
+
export interface EngagementInteractionApplication {
|
|
2474
|
+
state: "NOT_STARTED" | "APPLYING" | "APPLIED" | "WAITING" | "FAILED" | "UNKNOWN";
|
|
2475
|
+
result: Record<string, unknown> | null;
|
|
2476
|
+
receiptRefs: string[];
|
|
2477
|
+
blockers: string[];
|
|
2478
|
+
}
|
|
2479
|
+
export interface EngagementInteraction {
|
|
2480
|
+
protocol: "native-engagement.interaction/1";
|
|
2481
|
+
schemaVersion: 1;
|
|
1384
2482
|
tenantId: string;
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
2483
|
+
interactionRef: string;
|
|
2484
|
+
revision: number;
|
|
2485
|
+
requestDigest: string;
|
|
2486
|
+
requesterPrincipalRef: string;
|
|
2487
|
+
reviewerPrincipalRef: string | null;
|
|
2488
|
+
projectRef: string | null;
|
|
2489
|
+
workspaceRef: string | null;
|
|
2490
|
+
kind: "CONFIGURATION" | "APPROVAL" | "INSTALLATION" | "AUTHENTICATION" | "FEEDBACK";
|
|
2491
|
+
title: string;
|
|
2492
|
+
rationale: string;
|
|
2493
|
+
operation: EngagementInteractionOperation;
|
|
2494
|
+
state: EngagementInteractionState;
|
|
2495
|
+
createdAt: string;
|
|
2496
|
+
expiresAt: string;
|
|
2497
|
+
reviewPath: string;
|
|
2498
|
+
decision: {
|
|
2499
|
+
decisionRef: string;
|
|
2500
|
+
principalRef: string;
|
|
2501
|
+
action: "APPROVE" | "REJECT";
|
|
2502
|
+
rationale: string;
|
|
2503
|
+
requestDigest: string;
|
|
2504
|
+
decidedAt: string;
|
|
2505
|
+
} | null;
|
|
2506
|
+
application: EngagementInteractionApplication;
|
|
2507
|
+
}
|
|
2508
|
+
export type WeixinReadOperation = typeof WEIXIN_READ_OPERATIONS[number];
|
|
2509
|
+
export interface WeixinReadView {
|
|
2510
|
+
tenantId: string;
|
|
2511
|
+
kind: "WEIXIN_READ";
|
|
2512
|
+
dispatchRef: string;
|
|
2513
|
+
profileRef: string;
|
|
2514
|
+
configurationRevision: number;
|
|
2515
|
+
operation: WeixinReadOperation;
|
|
2516
|
+
state: string;
|
|
2517
|
+
resultJson: string | null;
|
|
2518
|
+
reasonCode: string | null;
|
|
2519
|
+
platformAcceptance: "NOT_PROVEN";
|
|
1395
2520
|
}
|
|
1396
2521
|
export type WorkbenchSummary = ({
|
|
1397
2522
|
readonly prospectRef: string;
|
|
@@ -1426,6 +2551,192 @@ export interface ContractExecutionRequest {
|
|
|
1426
2551
|
readonly payload?: Readonly<Record<string, unknown>> | undefined;
|
|
1427
2552
|
readonly context?: TenantContextInput | undefined;
|
|
1428
2553
|
}
|
|
2554
|
+
export interface ExecutionReceipt<T> {
|
|
2555
|
+
readonly ok: true;
|
|
2556
|
+
readonly contractName: string;
|
|
2557
|
+
readonly contractVersion: string;
|
|
2558
|
+
readonly resolvedTenantId?: string;
|
|
2559
|
+
readonly result: T;
|
|
2560
|
+
}
|
|
2561
|
+
/** 签名 Node 心跳观察的宿主系统,不能从安装意图推断;旧节点明确保留 UNKNOWN。 */
|
|
2562
|
+
export interface ExecutionDeviceSystem {
|
|
2563
|
+
schemaVersion: 1;
|
|
2564
|
+
platform: "DARWIN" | "LINUX" | "WINDOWS" | "OTHER" | "UNKNOWN";
|
|
2565
|
+
architecture: "ARM64" | "X64" | "OTHER" | "UNKNOWN";
|
|
2566
|
+
observedAt: string | null;
|
|
2567
|
+
currentness: "CURRENT" | "EXPIRED" | "NOT_OBSERVED";
|
|
2568
|
+
}
|
|
2569
|
+
/** Device 是原 Node 的授权投影;登记、在线、模块及账号认证分别保留真实证据。 */
|
|
2570
|
+
export interface ExecutionDeviceView {
|
|
2571
|
+
protocol: "native-engagement.device/1";
|
|
2572
|
+
tenantId: string;
|
|
2573
|
+
deviceRef: string;
|
|
2574
|
+
nodeRef: string;
|
|
2575
|
+
installationRef: string;
|
|
2576
|
+
fingerprint: string;
|
|
2577
|
+
generation: number;
|
|
2578
|
+
online: boolean;
|
|
2579
|
+
state: "PAIRED" | "REVOKED";
|
|
2580
|
+
lastSeenAt: string | null;
|
|
2581
|
+
system?: ExecutionDeviceSystem;
|
|
2582
|
+
resources: readonly (NodeResourceAdvertisement & {
|
|
2583
|
+
resourceRef: string;
|
|
2584
|
+
blockers: string[];
|
|
2585
|
+
})[];
|
|
2586
|
+
blockers: string[];
|
|
2587
|
+
}
|
|
2588
|
+
export interface EnvironmentRequest {
|
|
2589
|
+
environmentRef: string;
|
|
2590
|
+
platform: "DARWIN" | "LINUX" | "WINDOWS";
|
|
2591
|
+
architecture: "ARM64" | "X64";
|
|
2592
|
+
moduleIds: string[];
|
|
2593
|
+
installationRef?: string;
|
|
2594
|
+
expectedFingerprint?: string;
|
|
2595
|
+
deviceRef?: string;
|
|
2596
|
+
planDigest?: string;
|
|
2597
|
+
}
|
|
2598
|
+
export interface DeviceResourceLimits {
|
|
2599
|
+
cpuPercent: number;
|
|
2600
|
+
memoryMb: number;
|
|
2601
|
+
maximumProcesses: number;
|
|
2602
|
+
maximumRuntimeSeconds: number;
|
|
2603
|
+
}
|
|
2604
|
+
export interface ExecutionEnvironmentView extends Omit<EnvironmentRequest, "installationRef" | "deviceRef"> {
|
|
2605
|
+
protocol: "native-engagement.environment/1";
|
|
2606
|
+
tenantId: string;
|
|
2607
|
+
interactionRef: string;
|
|
2608
|
+
installationRef: string | null;
|
|
2609
|
+
deviceRef: string | null;
|
|
2610
|
+
planDigest: string;
|
|
2611
|
+
state: "APPROVAL_REQUIRED" | "BOOTSTRAP_REQUIRED" | "PAIRING_REQUIRED" | "READY" | "BLOCKED";
|
|
2612
|
+
installerUrl: string | null;
|
|
2613
|
+
bootstrapUrl: string | null;
|
|
2614
|
+
artifactDigest: string | null;
|
|
2615
|
+
signatureRef: string | null;
|
|
2616
|
+
resourceLimits: DeviceResourceLimits | null;
|
|
2617
|
+
prerequisites: string[];
|
|
2618
|
+
blockers: string[];
|
|
2619
|
+
online: boolean | null;
|
|
2620
|
+
qualification: {
|
|
2621
|
+
artifact: "NOT_PROVEN" | "VERIFIED";
|
|
2622
|
+
resourceLimits: "NOT_PROVEN" | "VERIFIED";
|
|
2623
|
+
};
|
|
2624
|
+
bootstrapRequest: {
|
|
2625
|
+
schemaVersion: 1;
|
|
2626
|
+
tenantId: string;
|
|
2627
|
+
serviceOrigin: string;
|
|
2628
|
+
environmentRef: string;
|
|
2629
|
+
interactionRef: string;
|
|
2630
|
+
planDigest: string;
|
|
2631
|
+
platform: EnvironmentRequest["platform"];
|
|
2632
|
+
architecture: EnvironmentRequest["architecture"];
|
|
2633
|
+
moduleIds: string[];
|
|
2634
|
+
artifactDigest: string;
|
|
2635
|
+
signatureRef: string;
|
|
2636
|
+
resourceLimits: DeviceResourceLimits;
|
|
2637
|
+
} | null;
|
|
2638
|
+
}
|
|
2639
|
+
export type VisualChallengeAnswer = {
|
|
2640
|
+
type: "TEXT";
|
|
2641
|
+
text: string;
|
|
2642
|
+
} | {
|
|
2643
|
+
type: "POINTS";
|
|
2644
|
+
points: {
|
|
2645
|
+
x: number;
|
|
2646
|
+
y: number;
|
|
2647
|
+
}[];
|
|
2648
|
+
};
|
|
2649
|
+
export interface ConnectionChallenge {
|
|
2650
|
+
challengeRef: string;
|
|
2651
|
+
kind: "VISUAL_TEXT" | "VISUAL_POINTS";
|
|
2652
|
+
maximumAttempts: number;
|
|
2653
|
+
attempts: number;
|
|
2654
|
+
}
|
|
2655
|
+
export interface ConnectionObservation {
|
|
2656
|
+
observationRef: string;
|
|
2657
|
+
deviceRef: string;
|
|
2658
|
+
resourceRef: string;
|
|
2659
|
+
connectionRef: string;
|
|
2660
|
+
digest: string;
|
|
2661
|
+
capturedAt: string;
|
|
2662
|
+
expiresAt: string;
|
|
2663
|
+
evidenceRef: string;
|
|
2664
|
+
kind: "QR_CODE" | "VISUAL_TEXT" | "VISUAL_POINTS" | "LOGIN" | "NONE";
|
|
2665
|
+
challenge?: ConnectionChallenge;
|
|
2666
|
+
/** 本机登录事实与具体业务账号映射分离;只有原 Human 核对这张准确画面才可完成后者。 */
|
|
2667
|
+
accountConfirmation?: {
|
|
2668
|
+
basis: "HUMAN_REVIEW_REQUIRED";
|
|
2669
|
+
localLogin: "AUTHENTICATED";
|
|
2670
|
+
identity: "OWNER_SELECTED_VIEW" | "NOT_ATTESTED";
|
|
2671
|
+
validUntil: string;
|
|
2672
|
+
};
|
|
2673
|
+
}
|
|
2674
|
+
export interface AccountConnectionView {
|
|
2675
|
+
protocol: "native-engagement.account-connection/1";
|
|
2676
|
+
tenantId: string;
|
|
2677
|
+
connectionRef: string;
|
|
2678
|
+
interactionRef: string;
|
|
2679
|
+
deviceRef: string;
|
|
2680
|
+
resourceRef: string;
|
|
2681
|
+
profileRef: string;
|
|
2682
|
+
revision: number;
|
|
2683
|
+
state: "APPROVAL_REQUIRED" | "QUEUED" | "RUNNING" | "AUTHENTICATED" | "HUMAN_REQUIRED" | "UNKNOWN" | "BLOCKED" | "CANCELLED";
|
|
2684
|
+
operationRef: string | null;
|
|
2685
|
+
observation: ConnectionObservation | null;
|
|
2686
|
+
blockers: string[];
|
|
2687
|
+
authentication: {
|
|
2688
|
+
observedAt: string;
|
|
2689
|
+
validUntil: string;
|
|
2690
|
+
accountRef: string;
|
|
2691
|
+
basis: "HOST_OBSERVED_ACCOUNT" | "HUMAN_CONFIRMED_LOCAL_ACCOUNT";
|
|
2692
|
+
remoteAuthentication: "NOT_ATTESTED";
|
|
2693
|
+
} | null;
|
|
2694
|
+
approvalExpiresAt: string;
|
|
2695
|
+
online: boolean | null;
|
|
2696
|
+
currentness: "CURRENT" | "EXPIRED" | "NOT_OBSERVED";
|
|
2697
|
+
}
|
|
2698
|
+
/** 首个账号准备与原连接分离;未有真实广告时不返回 resource、placement 或登录成功。 */
|
|
2699
|
+
export type AccountSetupModule = "android.wechat" | "android.whatsapp";
|
|
2700
|
+
export interface AccountSetupIntent {
|
|
2701
|
+
setupRef: string;
|
|
2702
|
+
deviceRef: string;
|
|
2703
|
+
moduleId: AccountSetupModule;
|
|
2704
|
+
displayName: string;
|
|
2705
|
+
installationRef?: string;
|
|
2706
|
+
expectedNodeGeneration?: number;
|
|
2707
|
+
expectedFingerprint?: string;
|
|
2708
|
+
}
|
|
2709
|
+
export interface AccountSetupBinding {
|
|
2710
|
+
tenantId: string;
|
|
2711
|
+
providerRef: string;
|
|
2712
|
+
accountRef: string;
|
|
2713
|
+
profileRef: string;
|
|
2714
|
+
hostRef: string;
|
|
2715
|
+
sessionRef: string;
|
|
2716
|
+
capabilityRef: string;
|
|
2717
|
+
}
|
|
2718
|
+
export interface AccountSetupView extends AccountSetupIntent {
|
|
2719
|
+
protocol: "native-engagement.account-setup/1";
|
|
2720
|
+
tenantId: string;
|
|
2721
|
+
interactionRef: string;
|
|
2722
|
+
requestDigest: string;
|
|
2723
|
+
revision: number;
|
|
2724
|
+
state: "APPROVAL_REQUIRED" | "AUTHORITY_REQUIRED" | "QUEUED" | "RUNNING" | "LOGIN_REQUIRED" | "RESTART_REQUIRED" | "RESOURCE_READY" | "BLOCKED" | "UNKNOWN";
|
|
2725
|
+
binding: AccountSetupBinding | null;
|
|
2726
|
+
authorityPath: "/desktop/v1/accountsetup";
|
|
2727
|
+
resource: {
|
|
2728
|
+
resourceRef: string;
|
|
2729
|
+
placementRevision: number;
|
|
2730
|
+
} | null;
|
|
2731
|
+
evidence: {
|
|
2732
|
+
evidenceRef: string;
|
|
2733
|
+
digest: string;
|
|
2734
|
+
capturedAt: string;
|
|
2735
|
+
expiresAt: string;
|
|
2736
|
+
} | null;
|
|
2737
|
+
blockers: string[];
|
|
2738
|
+
originalOperationRef: string | null;
|
|
2739
|
+
}
|
|
1429
2740
|
/** 固定的输入错误可在 HTTP/SDK 边界映射,避免把解析细节带进业务错误。 */
|
|
1430
2741
|
export declare class ContractDiscoveryInputError extends Error {
|
|
1431
2742
|
constructor();
|
|
@@ -1474,8 +2785,46 @@ export declare function projectContractSchema(descriptor: ContractDescriptor, vi
|
|
|
1474
2785
|
errorCodes?: readonly string[] | undefined;
|
|
1475
2786
|
riskClass?: ContractRisk;
|
|
1476
2787
|
};
|
|
2788
|
+
/** 分发安装前置说明;宿主保留安装、依赖准备和真实 Human 授权的执行责任。 */
|
|
2789
|
+
export declare const installationRuntimeSkill: () => Promise<{
|
|
2790
|
+
name: "native-engagement-node-installation";
|
|
2791
|
+
digest: string;
|
|
2792
|
+
instructions: string;
|
|
2793
|
+
}>;
|
|
2794
|
+
/** 仅封装原canonical合同;授权、派发、微信访问和恢复仍由原Owner处理。 */
|
|
2795
|
+
export declare class WeixinOfficialClient {
|
|
2796
|
+
readonly sdk: Pick<RemoteNativeEngagementSdk, "query" | "command">;
|
|
2797
|
+
constructor(sdk: Pick<RemoteNativeEngagementSdk, "query" | "command">);
|
|
2798
|
+
commentBasis(input: WeixinCommentIntent, signal?: AbortSignal): Promise<ExecutionReceipt<WeixinCommentBasisView>>;
|
|
2799
|
+
comment(input: WeixinCommentRequest, signal?: AbortSignal): Promise<ExecutionReceipt<ActionReceipt>>;
|
|
2800
|
+
commentStatus(profileRef: string, dispatchRef: string, signal?: AbortSignal): Promise<ExecutionReceipt<WeixinCommentView>>;
|
|
2801
|
+
recoverComment(input: {
|
|
2802
|
+
idempotencyKey: string;
|
|
2803
|
+
profileRef: string;
|
|
2804
|
+
dispatchRef: string;
|
|
2805
|
+
}, signal?: AbortSignal): Promise<ExecutionReceipt<ActionReceipt>>;
|
|
2806
|
+
capabilities(profileRef: string, signal?: AbortSignal): Promise<ExecutionReceipt<ApiCapabilitiesView>>;
|
|
2807
|
+
read(input: WeixinRuntimeReadRequest, signal?: AbortSignal): Promise<ExecutionReceipt<ActionReceipt>>;
|
|
2808
|
+
readStatus(profileRef: string, dispatchRef: string, signal?: AbortSignal): Promise<ExecutionReceipt<WeixinReadView>>;
|
|
2809
|
+
write(input: WeixinRuntimeWriteRequest, signal?: AbortSignal): Promise<ExecutionReceipt<ActionReceipt>>;
|
|
2810
|
+
writeStatus(profileRef: string, dispatchRef: string, signal?: AbortSignal): Promise<ExecutionReceipt<WeixinWriteView>>;
|
|
2811
|
+
upload(input: WeixinUploadRequest, signal?: AbortSignal): Promise<ExecutionReceipt<ActionReceipt>>;
|
|
2812
|
+
uploadStatus(profileRef: string, dispatchRef: string, signal?: AbortSignal): Promise<ExecutionReceipt<WeixinUploadView>>;
|
|
2813
|
+
recoverUpload(input: {
|
|
2814
|
+
idempotencyKey: string;
|
|
2815
|
+
profileRef: string;
|
|
2816
|
+
dispatchRef: string;
|
|
2817
|
+
}, signal?: AbortSignal): Promise<ExecutionReceipt<ActionReceipt>>;
|
|
2818
|
+
recoverWrite(input: {
|
|
2819
|
+
idempotencyKey: string;
|
|
2820
|
+
profileRef: string;
|
|
2821
|
+
dispatchRef: string;
|
|
2822
|
+
}, signal?: AbortSignal): Promise<ExecutionReceipt<ActionReceipt>>;
|
|
2823
|
+
}
|
|
1477
2824
|
export type TokenProvider = () => string | Promise<string>;
|
|
1478
2825
|
export interface RemoteSdkOptions {
|
|
2826
|
+
/** 默认只为已支持的资源操作协商展示;off 完整保留旧传输。 */
|
|
2827
|
+
readonly presentation?: PresentationMode;
|
|
1479
2828
|
readonly nodeProof?: (method: string, route: string, payload: Readonly<Record<string, unknown>>) => NodeProof;
|
|
1480
2829
|
readonly baseUrl: string;
|
|
1481
2830
|
readonly accessToken: TokenProvider;
|
|
@@ -1495,6 +2844,12 @@ export declare class RemoteNativeEngagementError extends Error {
|
|
|
1495
2844
|
readonly reasonCode: string | undefined;
|
|
1496
2845
|
constructor(code: string, message: string, status: number, details?: Readonly<Record<string, unknown>>);
|
|
1497
2846
|
}
|
|
2847
|
+
/** 仅投影已认证媒体等待的原定位;白名单之外的错误详情不能进入 CLI/MCP。 */
|
|
2848
|
+
export declare function mediaProcessingRecovery(error: RemoteNativeEngagementError): Readonly<{
|
|
2849
|
+
reasonCode: "ASSET_PROCESSING_WAITING";
|
|
2850
|
+
mediaProcessingProtocol: 1;
|
|
2851
|
+
dispatchRef: string;
|
|
2852
|
+
}> | undefined;
|
|
1498
2853
|
/**
|
|
1499
2854
|
* Public Agent SDK. For each operation, present a bearer credential to the
|
|
1500
2855
|
* service, which verifies identity and tenant. This client accepts no
|
|
@@ -1540,12 +2895,163 @@ export declare class RemoteNativeEngagementSdk {
|
|
|
1540
2895
|
errorCodes?: readonly string[] | undefined;
|
|
1541
2896
|
riskClass?: ContractRisk;
|
|
1542
2897
|
}>;
|
|
1543
|
-
query(request: Pick<ContractExecutionRequest, "name" | "payload">, signal?: AbortSignal): Promise<unknown>;
|
|
1544
|
-
command(request: Pick<ContractExecutionRequest, "name" | "payload">, signal?: AbortSignal): Promise<unknown>;
|
|
2898
|
+
query(request: Pick<ContractExecutionRequest, "name" | "payload">, signal?: AbortSignal, presentation?: PresentationRequest): Promise<unknown>;
|
|
2899
|
+
command(request: Pick<ContractExecutionRequest, "name" | "payload">, signal?: AbortSignal, presentation?: PresentationRequest): Promise<unknown>;
|
|
2900
|
+
/** 明确返回完整 envelope,旧 typed helper 的业务对象返回形状保持不变。 */
|
|
2901
|
+
queryWithPresentation<T = unknown>(request: Pick<ContractExecutionRequest, "name" | "payload">, signal?: AbortSignal): Promise<PresentedEnvelope<T>>;
|
|
2902
|
+
commandWithPresentation<T = unknown>(request: Pick<ContractExecutionRequest, "name" | "payload">, signal?: AbortSignal): Promise<PresentedEnvelope<T>>;
|
|
2903
|
+
/** 只执行已校验的准确原查询,不读取其中的 URL、不切换中心或改写身份。 */
|
|
2904
|
+
resumePresentation<T = unknown>(value: ResponsePresentation, signal?: AbortSignal): Promise<PresentedEnvelope<T>>;
|
|
1545
2905
|
search(payload: Readonly<Record<string, unknown>>): Promise<unknown>;
|
|
1546
2906
|
enquiry(payload: Readonly<Record<string, unknown>>): Promise<unknown>;
|
|
1547
2907
|
agentStackPreflight(payload: Readonly<Record<string, unknown>>): Promise<unknown>;
|
|
1548
2908
|
}
|
|
2909
|
+
export type WorkClient = Pick<RemoteNativeEngagementSdk, "query" | "command">;
|
|
2910
|
+
export interface EngagementInteractionPage {
|
|
2911
|
+
tenantId: string;
|
|
2912
|
+
items: EngagementInteraction[];
|
|
2913
|
+
nextCursor: string | null;
|
|
2914
|
+
}
|
|
2915
|
+
/** 便携客户端只调用 canonical 入口;未知写入不自动重试,继续使用原幂等键和 interactionRef 查询。 */
|
|
2916
|
+
export declare function interactionClient(sdk: WorkClient): {
|
|
2917
|
+
request: (input: InteractionRequestInput) => Promise<EngagementInteraction>;
|
|
2918
|
+
get: (input: InteractionGetInput) => Promise<EngagementInteraction>;
|
|
2919
|
+
list: (input?: InteractionListInput) => Promise<EngagementInteractionPage>;
|
|
2920
|
+
revise: (input: InteractionReviseInput) => Promise<EngagementInteraction>;
|
|
2921
|
+
assign: (input: InteractionAssignInput) => Promise<EngagementInteraction>;
|
|
2922
|
+
respond: (input: InteractionRespondInput) => Promise<EngagementInteraction>;
|
|
2923
|
+
apply: (input: InteractionExpectedInput) => Promise<EngagementInteraction>;
|
|
2924
|
+
cancel: (input: InteractionCancelInput) => Promise<EngagementInteraction>;
|
|
2925
|
+
};
|
|
2926
|
+
export type InteractionClient = ReturnType<typeof interactionClient>;
|
|
2927
|
+
/** 便携入口只读非秘密元数据;未知写入不自动重试,准确原 key 交还调用者恢复。 */
|
|
2928
|
+
export declare function voiceProfileClient(sdk: WorkClient): {
|
|
2929
|
+
sources: (input: VoiceProfileSourcesInput) => Promise<VoiceProfileSourcePage>;
|
|
2930
|
+
list: (input: VoiceProfileListInput) => Promise<VoiceProfilePage>;
|
|
2931
|
+
get: (input: VoiceProfileGetInput) => Promise<VoiceProfileView>;
|
|
2932
|
+
resolve: (input: VoiceProfileResolveInput) => Promise<VoiceProfileResolution>;
|
|
2933
|
+
synthesize: (input: VoiceProfileSynthesisInput) => Promise<ActionReceipt>;
|
|
2934
|
+
};
|
|
2935
|
+
export type VoiceProfileClient = ReturnType<typeof voiceProfileClient>;
|
|
2936
|
+
export interface DeviceListInput {
|
|
2937
|
+
limit?: number;
|
|
2938
|
+
}
|
|
2939
|
+
export interface DevicePage {
|
|
2940
|
+
tenantId: string;
|
|
2941
|
+
items: ExecutionDeviceView[];
|
|
2942
|
+
}
|
|
2943
|
+
export interface DeviceInspectInput {
|
|
2944
|
+
deviceRef: string;
|
|
2945
|
+
}
|
|
2946
|
+
export interface EnvironmentGetInput {
|
|
2947
|
+
environmentRef: string;
|
|
2948
|
+
}
|
|
2949
|
+
export interface EnvironmentEnrollmentInput {
|
|
2950
|
+
idempotencyKey: string;
|
|
2951
|
+
environmentRef: string;
|
|
2952
|
+
interactionRef: string;
|
|
2953
|
+
planDigest: string;
|
|
2954
|
+
installationRef: string;
|
|
2955
|
+
expectedFingerprint: string;
|
|
2956
|
+
}
|
|
2957
|
+
export interface EnvironmentRequestInput extends Omit<InteractionRequestInput, "operation"> {
|
|
2958
|
+
operation: InteractionEnvironmentInstallation;
|
|
2959
|
+
}
|
|
2960
|
+
export interface ConnectionRequestInput extends Omit<InteractionRequestInput, "operation"> {
|
|
2961
|
+
operation: InteractionAccountConnection;
|
|
2962
|
+
}
|
|
2963
|
+
export interface ConnectionGetInput {
|
|
2964
|
+
connectionRef: string;
|
|
2965
|
+
}
|
|
2966
|
+
export interface ConnectionObserveInput extends ConnectionGetInput {
|
|
2967
|
+
idempotencyKey: string;
|
|
2968
|
+
captureImage: boolean;
|
|
2969
|
+
}
|
|
2970
|
+
export interface ConnectionEvidenceInput extends ConnectionGetInput {
|
|
2971
|
+
observationRef: string;
|
|
2972
|
+
digest: string;
|
|
2973
|
+
}
|
|
2974
|
+
export interface ConnectionChallengeInput extends ConnectionEvidenceInput {
|
|
2975
|
+
idempotencyKey: string;
|
|
2976
|
+
challengeRef: string;
|
|
2977
|
+
answer: VisualChallengeAnswer;
|
|
2978
|
+
}
|
|
2979
|
+
/** 恢复仅允许准确 Human 许可原未知操作后的观察,不重做原答案。 */
|
|
2980
|
+
export interface ConnectionRecoverInput extends ConnectionGetInput {
|
|
2981
|
+
idempotencyKey: string;
|
|
2982
|
+
operationRef: string;
|
|
2983
|
+
confirmation: "ORIGINAL_ACCOUNT_REVIEWED";
|
|
2984
|
+
}
|
|
2985
|
+
/** 仅准确 Human 可把真实本机登录观察和其账号核对结合;不声明服务商远端认证。 */
|
|
2986
|
+
export interface ConnectionAccountConfirmInput extends ConnectionEvidenceInput {
|
|
2987
|
+
idempotencyKey: string;
|
|
2988
|
+
expectedRevision: number;
|
|
2989
|
+
confirmation: "VISIBLE_ACCOUNT_MATCHES_PROFILE";
|
|
2990
|
+
}
|
|
2991
|
+
export interface ConnectionEvidence {
|
|
2992
|
+
connectionRef: string;
|
|
2993
|
+
observationRef: string;
|
|
2994
|
+
digest: string;
|
|
2995
|
+
deviceRef: string;
|
|
2996
|
+
resourceRef: string;
|
|
2997
|
+
capturedAt: string;
|
|
2998
|
+
expiresAt: string;
|
|
2999
|
+
mimeType: "image/png";
|
|
3000
|
+
dataBase64: string;
|
|
3001
|
+
}
|
|
3002
|
+
/** Device 是已授权原 Node 的摘要;登记、在线和模块可执行状态分别由服务端原事实决定。 */
|
|
3003
|
+
export declare function deviceClient(sdk: WorkClient): {
|
|
3004
|
+
list: (input?: DeviceListInput) => Promise<DevicePage>;
|
|
3005
|
+
inspect: (input: DeviceInspectInput) => Promise<ExecutionDeviceView>;
|
|
3006
|
+
requestEnvironment: (input: EnvironmentRequestInput) => Promise<ExecutionEnvironmentView>;
|
|
3007
|
+
environment: (input: EnvironmentGetInput) => Promise<ExecutionEnvironmentView>;
|
|
3008
|
+
attachEnrollment: (input: EnvironmentEnrollmentInput) => Promise<ExecutionEnvironmentView>;
|
|
3009
|
+
};
|
|
3010
|
+
export declare function connectionClient(sdk: WorkClient): {
|
|
3011
|
+
request: (input: ConnectionRequestInput) => Promise<AccountConnectionView>;
|
|
3012
|
+
get: (input: ConnectionGetInput) => Promise<AccountConnectionView>;
|
|
3013
|
+
observe: (input: ConnectionObserveInput) => Promise<AccountConnectionView>;
|
|
3014
|
+
submitChallenge: (input: ConnectionChallengeInput) => Promise<AccountConnectionView>;
|
|
3015
|
+
recover: (input: ConnectionRecoverInput) => Promise<AccountConnectionView>;
|
|
3016
|
+
confirmAccount: (input: ConnectionAccountConfirmInput) => Promise<AccountConnectionView>;
|
|
3017
|
+
evidence: (input: ConnectionEvidenceInput) => Promise<ConnectionEvidence>;
|
|
3018
|
+
};
|
|
3019
|
+
export type DeviceClient = ReturnType<typeof deviceClient>;
|
|
3020
|
+
export type ConnectionClient = ReturnType<typeof connectionClient>;
|
|
3021
|
+
export interface AccountSetupRequestInput extends Omit<InteractionRequestInput, "operation"> {
|
|
3022
|
+
operation: AccountSetupIntent;
|
|
3023
|
+
}
|
|
3024
|
+
export interface AccountSetupGetInput {
|
|
3025
|
+
setupRef: string;
|
|
3026
|
+
}
|
|
3027
|
+
export interface AccountSetupObserveInput extends AccountSetupGetInput {
|
|
3028
|
+
idempotencyKey: string;
|
|
3029
|
+
}
|
|
3030
|
+
export interface AccountSetupEvidenceInput extends AccountSetupGetInput {
|
|
3031
|
+
evidenceRef: string;
|
|
3032
|
+
digest: string;
|
|
3033
|
+
}
|
|
3034
|
+
export interface AccountSetupRecoveryInput extends AccountSetupObserveInput {
|
|
3035
|
+
originalOperationRef: string;
|
|
3036
|
+
}
|
|
3037
|
+
export interface AccountSetupEvidence extends AccountSetupEvidenceInput {
|
|
3038
|
+
tenantId: string;
|
|
3039
|
+
capturedAt: string;
|
|
3040
|
+
expiresAt: string;
|
|
3041
|
+
mimeType: "image/png";
|
|
3042
|
+
dataBase64: string;
|
|
3043
|
+
}
|
|
3044
|
+
/** 便携客户端只保留原件与 canonical schema;不固定 Agent 流程,不自动重试安装或借用 Human 身份。 */
|
|
3045
|
+
export declare function accountSetupClient(sdk: WorkClient): {
|
|
3046
|
+
request: (input: AccountSetupRequestInput) => Promise<AccountSetupView>;
|
|
3047
|
+
get: (input: AccountSetupGetInput) => Promise<AccountSetupView>;
|
|
3048
|
+
observe: (input: AccountSetupObserveInput) => Promise<AccountSetupView>;
|
|
3049
|
+
/** 当前 Human 对原 UNKNOWN 只读核对,不能以恢复名义再安装或新建资源。 */
|
|
3050
|
+
recoverHuman: (input: AccountSetupRecoveryInput) => Promise<AccountSetupView>;
|
|
3051
|
+
/** 图像接口只适用于原当前 Human 客户端;业务 MCP Agent 仅取得非秘密引用。 */
|
|
3052
|
+
evidenceHuman: (input: AccountSetupEvidenceInput) => Promise<AccountSetupEvidence>;
|
|
3053
|
+
};
|
|
3054
|
+
export type AccountSetupClient = ReturnType<typeof accountSetupClient>;
|
|
1549
3055
|
export declare const MCP_CATALOG_META_KEY = "native-engagement/toolCatalog";
|
|
1550
3056
|
/** 结构化 MCP 端口不依赖具体客户端包,保持公开 SDK 的便携依赖边界。 */
|
|
1551
3057
|
export interface McpCatalogClient {
|
|
@@ -1583,7 +3089,6 @@ export declare class NativeMcpToolCatalog {
|
|
|
1583
3089
|
content?: readonly unknown[] | undefined;
|
|
1584
3090
|
}>;
|
|
1585
3091
|
}
|
|
1586
|
-
export type WorkClient = Pick<RemoteNativeEngagementSdk, "query" | "command">;
|
|
1587
3092
|
/** Authenticated API parity; the service resolves identity and enforces every contract. */
|
|
1588
3093
|
export declare function prospectClient(client: WorkClient): {
|
|
1589
3094
|
preview: (input: ProspectImportInput) => Promise<ProspectBatchView>;
|
|
@@ -1600,6 +3105,57 @@ export declare function prospectClient(client: WorkClient): {
|
|
|
1600
3105
|
cursor?: string;
|
|
1601
3106
|
}) => Promise<EngagementCatalogPage>;
|
|
1602
3107
|
};
|
|
3108
|
+
export interface MailSignatureInput {
|
|
3109
|
+
idempotencyKey: string;
|
|
3110
|
+
signatureRef: string;
|
|
3111
|
+
expectedVersion: number;
|
|
3112
|
+
displayName: string;
|
|
3113
|
+
enabled: boolean;
|
|
3114
|
+
text: string;
|
|
3115
|
+
html?: string;
|
|
3116
|
+
inlineImages?: readonly MailSignatureImage[];
|
|
3117
|
+
}
|
|
3118
|
+
export interface MailDraftInput {
|
|
3119
|
+
idempotencyKey: string;
|
|
3120
|
+
engagementRef: string;
|
|
3121
|
+
conversationRef?: string;
|
|
3122
|
+
messageRef: string;
|
|
3123
|
+
routeRef: string;
|
|
3124
|
+
senderParticipantRef: string;
|
|
3125
|
+
recipientParticipantRef: string;
|
|
3126
|
+
subject: string;
|
|
3127
|
+
text: string;
|
|
3128
|
+
html?: string | null;
|
|
3129
|
+
inlineImages?: readonly {
|
|
3130
|
+
cid: string;
|
|
3131
|
+
assetRef: string;
|
|
3132
|
+
}[];
|
|
3133
|
+
attachments?: readonly MessageAttachmentChoice[];
|
|
3134
|
+
signatureProfileRef?: string | null;
|
|
3135
|
+
replyToMessageRef?: string;
|
|
3136
|
+
}
|
|
3137
|
+
/** SDK 仅装配正式合同,不接受调用者声明 Tenant 身份、权限或冻结签名内容。 */
|
|
3138
|
+
export declare function mailClient(client: WorkClient): {
|
|
3139
|
+
signatures: (input?: {
|
|
3140
|
+
offset?: number;
|
|
3141
|
+
limit?: number;
|
|
3142
|
+
}) => Promise<MailSignaturePage>;
|
|
3143
|
+
signature: (signatureRef: string) => Promise<MailSignatureTemplate>;
|
|
3144
|
+
configureSignature: (input: MailSignatureInput) => Promise<ActionReceipt>;
|
|
3145
|
+
bindSignature: (input: {
|
|
3146
|
+
idempotencyKey: string;
|
|
3147
|
+
profileRef: string;
|
|
3148
|
+
expectedRevision: number;
|
|
3149
|
+
signatureRef: string | null;
|
|
3150
|
+
}) => Promise<ActionReceipt>;
|
|
3151
|
+
draft: ({ profileRef, ...input }: MailDraftInput & {
|
|
3152
|
+
profileRef: string;
|
|
3153
|
+
}) => Promise<ActionReceipt>;
|
|
3154
|
+
revise: (input: MailDraftInput & {
|
|
3155
|
+
expectedVersion: number;
|
|
3156
|
+
}) => Promise<ActionReceipt>;
|
|
3157
|
+
message: (engagementRef: string, messageRef: string) => Promise<EmailMessageProjection>;
|
|
3158
|
+
};
|
|
1603
3159
|
export interface BrowserProfileAccountOwner {
|
|
1604
3160
|
readonly profileRef: string;
|
|
1605
3161
|
readonly platform: BrowserSocialPlatform;
|
|
@@ -1655,10 +3211,18 @@ export declare function browserSocialClient(sdk: Pick<RemoteNativeEngagementSdk,
|
|
|
1655
3211
|
operation: (dispatchRef: string) => Promise<SocialOperationView>;
|
|
1656
3212
|
contents: (limit?: number, cursor?: string, consistency?: "SNAPSHOT" | "LIVE") => Promise<SocialContentPage>;
|
|
1657
3213
|
draft: (idempotencyKey: string, messageRef: string, expectedVersion: number, source: Pick<SocialContentProjection, "contentRef" | "revision">, text: string, browserIntent: BrowserSocialIntent) => Promise<ActionReceipt>;
|
|
3214
|
+
likeDraft: (idempotencyKey: string, messageRef: string, expectedVersion: number, source: Pick<SocialContentProjection, "contentRef" | "revision">, value: boolean) => Promise<ActionReceipt>;
|
|
3215
|
+
followDraft: (idempotencyKey: string, messageRef: string, expectedVersion: number, source: Pick<SocialContentProjection, "contentRef" | "revision">, value: boolean) => Promise<ActionReceipt>;
|
|
3216
|
+
deleteCommentDraft: (idempotencyKey: string, messageRef: string, expectedVersion: number, source: Pick<SocialContentProjection, "contentRef" | "revision">) => Promise<ActionReceipt>;
|
|
3217
|
+
commentVisibilityDraft: (idempotencyKey: string, messageRef: string, expectedVersion: number, source: Pick<SocialContentProjection, "contentRef" | "revision">, visibility: "HIDDEN" | "VISIBLE") => Promise<ActionReceipt>;
|
|
3218
|
+
startDirectDraft: (idempotencyKey: string, messageRef: string, expectedVersion: number, source: Pick<SocialContentProjection, "contentRef" | "revision" | "kind" | "authorRef" | "browser">, text: string) => Promise<ActionReceipt>;
|
|
3219
|
+
voiceDraft: (idempotencyKey: string, messageRef: string, expectedVersion: number, source: Pick<SocialContentProjection, "contentRef" | "revision">, audio: BrowserMediaSelection) => Promise<ActionReceipt>;
|
|
1658
3220
|
scheduleCancelDraft: (idempotencyKey: string, messageRef: string, expectedVersion: number, source: Pick<SocialContentProjection, "contentRef" | "revision">) => Promise<ActionReceipt>;
|
|
1659
3221
|
scheduleRescheduleDraft: (idempotencyKey: string, messageRef: string, expectedVersion: number, source: Pick<SocialContentProjection, "contentRef" | "revision">, scheduledAt: string, timeZone: string) => Promise<ActionReceipt>;
|
|
1660
3222
|
queue: (idempotencyKey: string, message: BrowserSocialMessage, expectedControlVersion: number) => Promise<ActionReceipt>;
|
|
1661
3223
|
execute: (idempotencyKey: string, message: BrowserSocialMessage) => Promise<ActionReceipt>;
|
|
3224
|
+
upload: (idempotencyKey: string, message: BrowserSocialMessage, uploadAction: BrowserUploadAction) => Promise<ActionReceipt>;
|
|
3225
|
+
uploadProgress: (message: BrowserSocialMessage) => Promise<BrowserUploadView>;
|
|
1662
3226
|
verify: (idempotencyKey: string, message: BrowserSocialMessage) => Promise<ActionReceipt>;
|
|
1663
3227
|
cancel: (idempotencyKey: string, message: BrowserSocialMessage) => Promise<ActionReceipt>;
|
|
1664
3228
|
activity: () => Promise<BrowserAccountView>;
|
|
@@ -1669,6 +3233,9 @@ export declare function browserSocialClient(sdk: Pick<RemoteNativeEngagementSdk,
|
|
|
1669
3233
|
sourceDigest: string;
|
|
1670
3234
|
}) => Promise<ActionReceipt>;
|
|
1671
3235
|
};
|
|
3236
|
+
export type BrowserUploadNextAction = BrowserUploadAction | "EXECUTE" | "VERIFY" | "WAIT";
|
|
3237
|
+
/** 只依据保留状态选择原操作;暂停和失败恢复必须由调用方明确请求。 */
|
|
3238
|
+
export declare function nextBrowserUploadAction(view: SocialConversationView, message: SocialConversationView["messages"][number]): BrowserUploadNextAction;
|
|
1672
3239
|
export type Message = SocialConversationView["messages"][number];
|
|
1673
3240
|
/** 原请求、独立观察和已完成的原作品管理只作投影;不浏览、不计时派发、不授予发送。 */
|
|
1674
3241
|
export declare function browserPublicationLifecycle(message: Message, operation: SocialOperationView | null, view?: SocialConversationView, now?: number): {
|
|
@@ -1790,4 +3357,8 @@ export declare function createNativePublicLogin(serviceOrigin?: string, fetcher?
|
|
|
1790
3357
|
/** Open the authorization page in the operating system browser; never pass a password. */
|
|
1791
3358
|
export declare function openNativeLoginPage(address: string): Promise<void>;
|
|
1792
3359
|
|
|
3360
|
+
export {
|
|
3361
|
+
MessageAttachmentChoice as EmailAttachmentChoice,
|
|
3362
|
+
};
|
|
3363
|
+
|
|
1793
3364
|
export {};
|