@kyan-du/agent-wechat-wechaty-puppet 0.13.3 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/mod.js +104 -7
- package/package.json +1 -1
package/dist/mod.js
CHANGED
|
@@ -4108,6 +4108,23 @@ var chatSchema = external_exports.object({
|
|
|
4108
4108
|
unreadCount: external_exports.number().int().nonnegative(),
|
|
4109
4109
|
isGroup: external_exports.boolean()
|
|
4110
4110
|
});
|
|
4111
|
+
var groupMemberSchema = external_exports.object({
|
|
4112
|
+
memberId: external_exports.string().min(1),
|
|
4113
|
+
displayName: external_exports.string().min(1),
|
|
4114
|
+
groupAlias: external_exports.string().optional(),
|
|
4115
|
+
nickName: external_exports.string().optional()
|
|
4116
|
+
});
|
|
4117
|
+
var groupMembersPageSchema = external_exports.object({
|
|
4118
|
+
schemaVersion: external_exports.literal(1),
|
|
4119
|
+
items: external_exports.array(groupMemberSchema),
|
|
4120
|
+
nextCursor: external_exports.string().nullable().optional(),
|
|
4121
|
+
errorCode: external_exports.string().optional()
|
|
4122
|
+
});
|
|
4123
|
+
var listGroupMembersParamsSchema = external_exports.object({
|
|
4124
|
+
groupId: external_exports.string().endsWith("@chatroom"),
|
|
4125
|
+
limit: external_exports.number().int().positive().max(100).optional().default(50),
|
|
4126
|
+
cursor: external_exports.string().optional()
|
|
4127
|
+
});
|
|
4111
4128
|
var listChatsParamsSchema = external_exports.object({
|
|
4112
4129
|
limit: external_exports.number().int().positive().max(100).optional().default(50),
|
|
4113
4130
|
offset: external_exports.number().int().nonnegative().optional().default(0)
|
|
@@ -4134,6 +4151,22 @@ var openChatResultSchema = external_exports.object({
|
|
|
4134
4151
|
error: external_exports.string().optional()
|
|
4135
4152
|
});
|
|
4136
4153
|
var idempotencyKeySchema = external_exports.string().min(1).max(128).regex(/^[A-Za-z0-9._:-]+$/);
|
|
4154
|
+
var forwardedMessageNodeSchema = external_exports.lazy(() => external_exports.object({
|
|
4155
|
+
sender: external_exports.string().optional(),
|
|
4156
|
+
senderId: external_exports.string().optional(),
|
|
4157
|
+
timestamp: external_exports.string().optional(),
|
|
4158
|
+
text: external_exports.string().optional(),
|
|
4159
|
+
messageType: external_exports.number().int().optional(),
|
|
4160
|
+
media: external_exports.string().optional(),
|
|
4161
|
+
children: external_exports.array(forwardedMessageNodeSchema),
|
|
4162
|
+
truncated: external_exports.boolean()
|
|
4163
|
+
}));
|
|
4164
|
+
var forwardedMessageTreeSchema = external_exports.object({
|
|
4165
|
+
schemaVersion: external_exports.number().int(),
|
|
4166
|
+
title: external_exports.string().optional(),
|
|
4167
|
+
nodes: external_exports.array(forwardedMessageNodeSchema),
|
|
4168
|
+
truncated: external_exports.boolean()
|
|
4169
|
+
});
|
|
4137
4170
|
var messageSchema = external_exports.object({
|
|
4138
4171
|
localId: external_exports.number().int(),
|
|
4139
4172
|
serverId: external_exports.number(),
|
|
@@ -4142,7 +4175,26 @@ var messageSchema = external_exports.object({
|
|
|
4142
4175
|
senderName: external_exports.string().optional(),
|
|
4143
4176
|
type: external_exports.number().int(),
|
|
4144
4177
|
content: external_exports.string(),
|
|
4145
|
-
timestamp: external_exports.string()
|
|
4178
|
+
timestamp: external_exports.string(),
|
|
4179
|
+
forwarded: forwardedMessageTreeSchema.optional()
|
|
4180
|
+
});
|
|
4181
|
+
var mediaReferenceSchema = external_exports.object({
|
|
4182
|
+
localId: external_exports.number().int(),
|
|
4183
|
+
url: external_exports.string().min(1)
|
|
4184
|
+
});
|
|
4185
|
+
var syncReadStateSchema = external_exports.object({
|
|
4186
|
+
unreadCount: external_exports.number().int().nonnegative(),
|
|
4187
|
+
observedAt: external_exports.string().min(1)
|
|
4188
|
+
});
|
|
4189
|
+
var chatSyncPageSchema = external_exports.object({
|
|
4190
|
+
schemaVersion: external_exports.literal(1),
|
|
4191
|
+
chat: chatSchema.optional(),
|
|
4192
|
+
items: external_exports.array(messageSchema),
|
|
4193
|
+
nextCursor: external_exports.string().optional().nullable(),
|
|
4194
|
+
syncToken: external_exports.string(),
|
|
4195
|
+
readState: syncReadStateSchema,
|
|
4196
|
+
media: external_exports.array(mediaReferenceSchema),
|
|
4197
|
+
errorCode: external_exports.string().optional()
|
|
4146
4198
|
});
|
|
4147
4199
|
var listMessagesParamsSchema = external_exports.object({
|
|
4148
4200
|
chatId: external_exports.string().min(1),
|
|
@@ -4168,6 +4220,31 @@ var sendParamsSchema = external_exports.object({
|
|
|
4168
4220
|
source: external_exports.string().min(1).max(64).regex(/^[A-Za-z0-9._:-]+$/).optional(),
|
|
4169
4221
|
similarityConfirmed: external_exports.boolean().optional()
|
|
4170
4222
|
});
|
|
4223
|
+
var deliveryStateSchema = external_exports.enum(["queued", "composing", "submitted", "observed_in_chat", "confirmed", "uncertain", "failed"]);
|
|
4224
|
+
var deliveryCauseSchema = external_exports.enum(["send_accepted", "target_sender_and_payload_match", "observation_confirmed", "target_mismatch", "sender_unverified", "payload_mismatch", "pre_commit_failure", "post_commit_uncertain"]);
|
|
4225
|
+
var deliveryTransitionSchema = external_exports.object({ from: deliveryStateSchema, to: deliveryStateSchema, at: external_exports.string().datetime(), reason: deliveryCauseSchema });
|
|
4226
|
+
var deliveryObservationSchema = external_exports.object({
|
|
4227
|
+
chatId: external_exports.string().trim().min(1).max(512),
|
|
4228
|
+
localId: external_exports.number().int().nonnegative().safe(),
|
|
4229
|
+
serverId: external_exports.number().int().nonnegative().safe(),
|
|
4230
|
+
timestamp: external_exports.string().datetime(),
|
|
4231
|
+
type: external_exports.number().int().nonnegative().safe(),
|
|
4232
|
+
sender: external_exports.string().trim().min(1).max(512),
|
|
4233
|
+
content: external_exports.string().max(1e6)
|
|
4234
|
+
}).strict();
|
|
4235
|
+
var deliveryAttemptSchema = external_exports.object({
|
|
4236
|
+
schemaVersion: external_exports.literal(1),
|
|
4237
|
+
idempotencyKey: idempotencyKeySchema.optional(),
|
|
4238
|
+
senderId: external_exports.string().trim().min(1).max(512),
|
|
4239
|
+
targetChatId: external_exports.string().trim().min(1).max(512),
|
|
4240
|
+
payloadDigest: external_exports.string().regex(/^[a-f0-9]{64}$/),
|
|
4241
|
+
state: deliveryStateSchema,
|
|
4242
|
+
commitAttempted: external_exports.boolean(),
|
|
4243
|
+
createdAt: external_exports.string().datetime(),
|
|
4244
|
+
updatedAt: external_exports.string().datetime(),
|
|
4245
|
+
observedLocalId: external_exports.number().int().nonnegative().optional(),
|
|
4246
|
+
transitions: external_exports.array(deliveryTransitionSchema).max(32)
|
|
4247
|
+
});
|
|
4171
4248
|
var sendResultSchema = external_exports.object({
|
|
4172
4249
|
success: external_exports.boolean(),
|
|
4173
4250
|
messageId: external_exports.string().optional(),
|
|
@@ -4180,11 +4257,13 @@ var getMediaParamsSchema = external_exports.object({
|
|
|
4180
4257
|
localId: external_exports.number().int()
|
|
4181
4258
|
});
|
|
4182
4259
|
var mediaResultSchema = external_exports.object({
|
|
4183
|
-
type: external_exports.enum(["image", "emoji", "voice", "video", "unsupported"]),
|
|
4260
|
+
type: external_exports.enum(["image", "emoji", "file", "voice", "video", "pending", "unsupported"]),
|
|
4184
4261
|
data: external_exports.string().optional(),
|
|
4185
4262
|
url: external_exports.string().optional(),
|
|
4186
4263
|
format: external_exports.string(),
|
|
4187
|
-
filename: external_exports.string()
|
|
4264
|
+
filename: external_exports.string(),
|
|
4265
|
+
source: external_exports.enum(["original", "thumbnail"]).optional(),
|
|
4266
|
+
errorCode: external_exports.string().optional()
|
|
4188
4267
|
});
|
|
4189
4268
|
var agentConfigSchema = external_exports.object({
|
|
4190
4269
|
maxTurns: external_exports.number().int().positive().default(30),
|
|
@@ -4257,11 +4336,12 @@ var WeChatClient = class {
|
|
|
4257
4336
|
await throwHttpError(res);
|
|
4258
4337
|
return res.json();
|
|
4259
4338
|
}
|
|
4260
|
-
async post(path, body) {
|
|
4339
|
+
async post(path, body, signal) {
|
|
4261
4340
|
const res = await fetch(`${this.base}${path}`, {
|
|
4262
4341
|
method: "POST",
|
|
4263
4342
|
headers: this.headers,
|
|
4264
|
-
body: body != null ? JSON.stringify(body) : void 0
|
|
4343
|
+
body: body != null ? JSON.stringify(body) : void 0,
|
|
4344
|
+
signal
|
|
4265
4345
|
});
|
|
4266
4346
|
if (!res.ok)
|
|
4267
4347
|
await throwHttpError(res);
|
|
@@ -4306,8 +4386,14 @@ var WeChatClient = class {
|
|
|
4306
4386
|
async markChatRead(chatId) {
|
|
4307
4387
|
return this.post(`/api/chats/${encodeURIComponent(chatId)}/mark-read`);
|
|
4308
4388
|
}
|
|
4309
|
-
async openChat(chatId, clearUnreads) {
|
|
4310
|
-
return this.post(`/api/chats/${encodeURIComponent(chatId)}/open${qs({ clearUnreads })}
|
|
4389
|
+
async openChat(chatId, clearUnreads, signal, executionTimeoutMs) {
|
|
4390
|
+
return this.post(`/api/chats/${encodeURIComponent(chatId)}/open${qs({ clearUnreads, executionTimeoutMs })}`, void 0, signal);
|
|
4391
|
+
}
|
|
4392
|
+
async listGroupMembersPage(groupId, limit, cursor) {
|
|
4393
|
+
const page = groupMembersPageSchema.parse(await this.get(`/api/groups/${encodeURIComponent(groupId)}/members${qs({ limit, cursor })}`));
|
|
4394
|
+
if (page.errorCode)
|
|
4395
|
+
throw new WeChatHttpError(400, "Bad Request", page.errorCode, page.errorCode);
|
|
4396
|
+
return { ...page, nextCursor: page.nextCursor ?? void 0 };
|
|
4311
4397
|
}
|
|
4312
4398
|
// ---- Contacts ----
|
|
4313
4399
|
async listContactsPage(limit, cursor) {
|
|
@@ -4332,6 +4418,17 @@ var WeChatClient = class {
|
|
|
4332
4418
|
async listMessages(chatId, limit) {
|
|
4333
4419
|
return (await this.listMessagesPage(chatId, limit)).items;
|
|
4334
4420
|
}
|
|
4421
|
+
async syncChat(chatId, options = {}) {
|
|
4422
|
+
const raw = await this.get(`/api/sync/${encodeURIComponent(chatId)}${qs({ limit: options.limit, cursor: options.cursor, since: options.since, from: options.from, to: options.to })}`);
|
|
4423
|
+
if (raw && typeof raw === "object" && typeof raw.errorCode === "string") {
|
|
4424
|
+
const errorCode = raw.errorCode;
|
|
4425
|
+
throw new WeChatHttpError(400, "Bad Request", errorCode, errorCode);
|
|
4426
|
+
}
|
|
4427
|
+
const page = chatSyncPageSchema.parse(raw);
|
|
4428
|
+
if (page.errorCode)
|
|
4429
|
+
throw new WeChatHttpError(400, "Bad Request", page.errorCode, page.errorCode);
|
|
4430
|
+
return { ...page, nextCursor: page.nextCursor ?? void 0 };
|
|
4431
|
+
}
|
|
4335
4432
|
async getMedia(chatId, localId) {
|
|
4336
4433
|
return this.get(`/api/messages/${encodeURIComponent(chatId)}/media/${localId}`);
|
|
4337
4434
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kyan-du/agent-wechat-wechaty-puppet",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.1",
|
|
4
4
|
"description": "Wechaty Puppet for agent-wechat — bridges Wechaty bots to WeChat via the agent-wechat REST/WebSocket server",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/mod.js",
|