@basicbit/vrchat-mcp 0.1.8 → 0.1.10
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/CHANGELOG.md +29 -0
- package/README.md +1 -1
- package/dist/package.json +4 -3
- package/dist/src/auth/index.js +4 -1
- package/dist/src/auth/index.js.map +1 -1
- package/dist/src/core/generatedToolOverrides.js +4 -0
- package/dist/src/core/generatedToolOverrides.js.map +1 -1
- package/dist/src/core/operationPolicy.js +19 -1
- package/dist/src/core/operationPolicy.js.map +1 -1
- package/dist/src/generated/vrchat-schemas.js +3 -1
- package/dist/src/generated/vrchat-schemas.js.map +1 -1
- package/dist/src/models/avatars.js +85 -0
- package/dist/src/models/avatars.js.map +1 -1
- package/dist/src/models/groups.js +92 -0
- package/dist/src/models/groups.js.map +1 -1
- package/dist/src/models/invites.js +31 -2
- package/dist/src/models/invites.js.map +1 -1
- package/dist/src/models/status.js +4 -2
- package/dist/src/models/status.js.map +1 -1
- package/dist/src/services/api/client.js +5 -0
- package/dist/src/services/api/client.js.map +1 -1
- package/dist/src/services/avatars/index.js +166 -1
- package/dist/src/services/avatars/index.js.map +1 -1
- package/dist/src/services/groups/index.js +1 -0
- package/dist/src/services/groups/index.js.map +1 -1
- package/dist/src/services/groups/posts.js +0 -0
- package/dist/src/services/groups/posts.js.map +1 -0
- package/dist/src/services/invites/curated.js +35 -16
- package/dist/src/services/invites/curated.js.map +1 -1
- package/dist/src/tools/curated/avatars.js +41 -3
- package/dist/src/tools/curated/avatars.js.map +1 -1
- package/dist/src/tools/curated/groupPosts.js +173 -0
- package/dist/src/tools/curated/groupPosts.js.map +1 -0
- package/dist/src/tools/curated/groups.js +3 -42
- package/dist/src/tools/curated/groups.js.map +1 -1
- package/dist/src/tools/curated/invites.js +1 -1
- package/dist/src/tools/curated/invites.js.map +1 -1
- package/dist/src/tools/raw.js +5 -1
- package/dist/src/tools/raw.js.map +1 -1
- package/dist/src/tools/registerAllTools.js +2 -0
- package/dist/src/tools/registerAllTools.js.map +1 -1
- package/docs/curated-tools.md +18 -0
- package/docs/robust-notes.md +9 -1
- package/docs/spec-drift.md +71 -0
- package/docs/tools.md +664 -239
- package/package.json +4 -3
- package/server.json +2 -2
|
@@ -20,4 +20,89 @@ export const AvatarProfileOutputSchema = z.object({
|
|
|
20
20
|
})
|
|
21
21
|
.optional(),
|
|
22
22
|
});
|
|
23
|
+
/** VRChat's content-gating tags. Deliberately no default: callers state intent explicitly. */
|
|
24
|
+
export const AVATAR_CONTENT_TAGS = [
|
|
25
|
+
'content_sex',
|
|
26
|
+
'content_adult',
|
|
27
|
+
'content_violence',
|
|
28
|
+
'content_gore',
|
|
29
|
+
'content_horror',
|
|
30
|
+
];
|
|
31
|
+
export const AvatarUpdateInputSchema = z
|
|
32
|
+
.object({
|
|
33
|
+
// Matches the `user` convention on vrchat_boop / vrchat_friend_request: a human-readable
|
|
34
|
+
// name is first-class, the ID is there for precision and for disambiguation.
|
|
35
|
+
avatar: z
|
|
36
|
+
.string()
|
|
37
|
+
.min(1)
|
|
38
|
+
.describe('Avatar to edit: an avtr_ ID, or the exact name of one of your own avatars.'),
|
|
39
|
+
name: z.string().min(1).optional().describe('New name for the avatar.'),
|
|
40
|
+
description: z.string().optional().describe('New description. Pass "" to clear it.'),
|
|
41
|
+
// The spec's ReleaseStatus includes 'all', which is a search-filter sentinel rather than a
|
|
42
|
+
// publication state the endpoint accepts.
|
|
43
|
+
releaseStatus: z
|
|
44
|
+
.enum(['public', 'private', 'hidden'])
|
|
45
|
+
.optional()
|
|
46
|
+
.describe('Publication state. Risky in both directions — see the tool description before changing it.'),
|
|
47
|
+
// Merge semantics, never a blind replace: `updateAvatar` overwrites the whole tags array, so
|
|
48
|
+
// a raw set would silently drop author tags the caller never intended to touch.
|
|
49
|
+
addTags: z
|
|
50
|
+
.array(z.enum(AVATAR_CONTENT_TAGS))
|
|
51
|
+
.min(1)
|
|
52
|
+
.optional()
|
|
53
|
+
.describe('Content tags to add. Merged into the existing tags; nothing else is removed.'),
|
|
54
|
+
removeTags: z
|
|
55
|
+
.array(z.enum(AVATAR_CONTENT_TAGS))
|
|
56
|
+
.min(1)
|
|
57
|
+
.optional()
|
|
58
|
+
.describe('Content tags to remove. Other tags, including author tags, are left alone.'),
|
|
59
|
+
// Strips every `content_*` tag, including ones newer than AVATAR_CONTENT_TAGS, so clearing
|
|
60
|
+
// still works when VRChat adds a tag this build doesn't know about.
|
|
61
|
+
clearContentTags: z
|
|
62
|
+
.boolean()
|
|
63
|
+
.optional()
|
|
64
|
+
.describe('Remove every content_* tag, including any this build does not know about.'),
|
|
65
|
+
dryRun: z
|
|
66
|
+
.boolean()
|
|
67
|
+
.optional()
|
|
68
|
+
.describe('Compute and return the exact change without writing it.'),
|
|
69
|
+
})
|
|
70
|
+
.superRefine((input, ctx) => {
|
|
71
|
+
const hasEdit = input.name !== undefined ||
|
|
72
|
+
input.description !== undefined ||
|
|
73
|
+
input.releaseStatus !== undefined ||
|
|
74
|
+
input.addTags !== undefined ||
|
|
75
|
+
input.removeTags !== undefined ||
|
|
76
|
+
input.clearContentTags === true;
|
|
77
|
+
if (!hasEdit) {
|
|
78
|
+
ctx.addIssue({
|
|
79
|
+
code: z.ZodIssueCode.custom,
|
|
80
|
+
message: 'Provide at least one of name, description, releaseStatus, addTags, removeTags, clearContentTags.',
|
|
81
|
+
path: ['name'],
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
if (input.clearContentTags && input.removeTags) {
|
|
85
|
+
ctx.addIssue({
|
|
86
|
+
code: z.ZodIssueCode.custom,
|
|
87
|
+
message: 'clearContentTags already removes every content tag; drop removeTags.',
|
|
88
|
+
path: ['removeTags'],
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
const overlap = (input.addTags ?? []).filter((tag) => (input.removeTags ?? []).includes(tag));
|
|
92
|
+
if (overlap.length > 0) {
|
|
93
|
+
ctx.addIssue({
|
|
94
|
+
code: z.ZodIssueCode.custom,
|
|
95
|
+
message: `Tags cannot be both added and removed: ${overlap.join(', ')}`,
|
|
96
|
+
path: ['removeTags'],
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
export const AvatarUpdateOutputSchema = z.object({
|
|
101
|
+
avatarId: z.string(),
|
|
102
|
+
name: z.string().optional(),
|
|
103
|
+
dryRun: z.boolean(),
|
|
104
|
+
status: z.enum(['updated', 'unchanged']),
|
|
105
|
+
changes: z.record(z.string(), z.unknown()).optional(),
|
|
106
|
+
tags: z.array(z.string()),
|
|
107
|
+
});
|
|
23
108
|
//# sourceMappingURL=avatars.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatars.js","sourceRoot":"","sources":["../../../src/models/avatars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACvD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAC/D,QAAQ,EAAE,OAAO,CAAC,QAAQ;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,MAAM,EAAE,eAAe;IACvB,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"avatars.js","sourceRoot":"","sources":["../../../src/models/avatars.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,10 @@ export const GroupPostSummarySchema = z.object({
|
|
|
20
20
|
updatedAt: z.string().optional(),
|
|
21
21
|
authorId: schemas.UserID.optional(),
|
|
22
22
|
visibility: z.string().optional(),
|
|
23
|
+
// roleIds and imageId are part of the post's edit surface: vrchat_group_post_update
|
|
24
|
+
// replaces the whole post, so omitting them here would silently clear them.
|
|
25
|
+
roleIds: schemas.GroupRoleIDList.optional(),
|
|
26
|
+
imageId: schemas.FileID.optional(),
|
|
23
27
|
});
|
|
24
28
|
export const GroupInstanceSummarySchema = z.object({
|
|
25
29
|
worldId: schemas.WorldID.optional(),
|
|
@@ -162,6 +166,44 @@ export const GroupRolesManageInputSchema = z.discriminatedUnion('action', [
|
|
|
162
166
|
groupRoleId: schemas.GroupRoleID,
|
|
163
167
|
}),
|
|
164
168
|
]);
|
|
169
|
+
// The MCP SDK only serializes ZodObject shapes into the advertised JSON Schema; a
|
|
170
|
+
// discriminatedUnion publishes `properties: {}`, which strips typed fields like
|
|
171
|
+
// `permissions` from the wire contract and makes clients send them as strings.
|
|
172
|
+
// Advertise this flat superset, and keep the union above as the real validator.
|
|
173
|
+
export const GroupRolesManageToolSchema = z.object({
|
|
174
|
+
action: z.enum([
|
|
175
|
+
'assign_member_role',
|
|
176
|
+
'remove_member_role',
|
|
177
|
+
'create_role',
|
|
178
|
+
'update_role',
|
|
179
|
+
'delete_role',
|
|
180
|
+
]),
|
|
181
|
+
groupId: schemas.GroupID.optional().describe('Target group. Provide groupId or shortCode.'),
|
|
182
|
+
shortCode: z.string().optional().describe('Target group short code. Provide groupId or shortCode.'),
|
|
183
|
+
userId: schemas.UserID
|
|
184
|
+
.optional()
|
|
185
|
+
.describe('Member to act on. REQUIRED for assign_member_role and remove_member_role.'),
|
|
186
|
+
groupRoleId: schemas.GroupRoleID
|
|
187
|
+
.optional()
|
|
188
|
+
.describe('Existing role to act on. REQUIRED for assign_member_role, remove_member_role, update_role and delete_role. Not used by create_role.'),
|
|
189
|
+
roleId: schemas.GroupRoleID
|
|
190
|
+
.optional()
|
|
191
|
+
.describe('create_role only, and optional there: requests a specific ID for the new role instead of letting VRChat assign one. This is NOT the role being edited — that is groupRoleId.'),
|
|
192
|
+
name: z.string().optional().describe('Role name. Used by create_role and update_role.'),
|
|
193
|
+
description: z
|
|
194
|
+
.string()
|
|
195
|
+
.optional()
|
|
196
|
+
.describe('Role description. Used by create_role and update_role.'),
|
|
197
|
+
permissions: z
|
|
198
|
+
.array(schemas.GroupPermissions)
|
|
199
|
+
.optional()
|
|
200
|
+
.describe('Complete permission list for the role, replacing the previous one. Used by create_role and update_role. Note group-members-remove and group-bans-manage each require group-members-manage on the same role.'),
|
|
201
|
+
isSelfAssignable: z
|
|
202
|
+
.boolean()
|
|
203
|
+
.optional()
|
|
204
|
+
.describe('Whether members can assign this role to themselves. create_role and update_role.'),
|
|
205
|
+
order: z.number().int().optional().describe('Display order of the role. update_role only.'),
|
|
206
|
+
});
|
|
165
207
|
export const GroupRolesManageOutputSchema = z.object({
|
|
166
208
|
action: z.string(),
|
|
167
209
|
groupId: schemas.GroupID,
|
|
@@ -189,6 +231,53 @@ export const GroupPostsRecentOutputSchema = z.object({
|
|
|
189
231
|
page: GroupPageSchema.optional(),
|
|
190
232
|
posts: z.array(GroupPostSummarySchema),
|
|
191
233
|
});
|
|
234
|
+
const GroupPostBodySchema = z.object({
|
|
235
|
+
title: z.string().min(1).describe('Post title.'),
|
|
236
|
+
text: z.string().min(1).describe('Post body text.'),
|
|
237
|
+
visibility: schemas.GroupPostVisibility.describe('group restricts the post to members; public shows it on the group page.'),
|
|
238
|
+
roleIds: schemas.GroupRoleIDList.describe('Restrict the post to these group roles. Omit to show it to everyone who can see the post.').optional(),
|
|
239
|
+
imageId: schemas.FileID.describe('Existing VRChat file ID to attach as the post image.').optional(),
|
|
240
|
+
// .default().optional() rather than .default() alone: the former keeps the false
|
|
241
|
+
// default while leaving the field out of the advertised required list.
|
|
242
|
+
sendNotification: z
|
|
243
|
+
.boolean()
|
|
244
|
+
.default(false)
|
|
245
|
+
.optional()
|
|
246
|
+
.describe('Notify group members. Defaults to false; set true only when the post warrants a ping.'),
|
|
247
|
+
});
|
|
248
|
+
const GroupPostTargetSchema = z.object({
|
|
249
|
+
groupId: schemas.GroupID.describe('Exact group ID. Provide groupId or shortCode.').optional(),
|
|
250
|
+
shortCode: z
|
|
251
|
+
.string()
|
|
252
|
+
.describe('Exact group short code. Provide groupId or shortCode.')
|
|
253
|
+
.optional(),
|
|
254
|
+
});
|
|
255
|
+
export const GroupPostCreateInputSchema = GroupPostBodySchema.extend(GroupPostTargetSchema.shape);
|
|
256
|
+
export const GroupPostUpdateInputSchema = GroupPostBodySchema.partial()
|
|
257
|
+
.extend(GroupPostTargetSchema.shape)
|
|
258
|
+
.extend({
|
|
259
|
+
postId: schemas.NotificationID.describe('Post ID from vrchat_group_post_create or vrchat_group_posts_recent. Shaped like a notification ID (not_...).'),
|
|
260
|
+
roleIds: schemas.GroupRoleIDList.describe('Replace the post role restrictions. Omit to keep the current roles; pass an empty array to clear them.').optional(),
|
|
261
|
+
imageId: schemas.FileID.nullable()
|
|
262
|
+
.describe('Replace the post image. Omit to keep the current image; pass null to remove it.')
|
|
263
|
+
.optional(),
|
|
264
|
+
sendNotification: z
|
|
265
|
+
.boolean()
|
|
266
|
+
.default(false)
|
|
267
|
+
.optional()
|
|
268
|
+
.describe('Re-notify group members about the edit. Defaults to false so corrections stay quiet.'),
|
|
269
|
+
});
|
|
270
|
+
export const GroupPostDeleteInputSchema = GroupPostTargetSchema.extend({
|
|
271
|
+
postId: schemas.NotificationID.describe('Post ID to delete.'),
|
|
272
|
+
});
|
|
273
|
+
export const GroupPostWriteOutputSchema = z.object({
|
|
274
|
+
status: z.enum(['created', 'updated', 'deleted']),
|
|
275
|
+
groupId: schemas.GroupID,
|
|
276
|
+
postId: schemas.NotificationID.optional(),
|
|
277
|
+
/** True when update merged missing fields from the existing post instead of replacing blind. */
|
|
278
|
+
mergedFromExisting: z.boolean().optional(),
|
|
279
|
+
post: GroupPostSummarySchema.nullable().optional(),
|
|
280
|
+
});
|
|
192
281
|
export const GroupEventsListInputSchema = GroupShapeSchema.extend({
|
|
193
282
|
groupId: schemas.GroupID.optional(),
|
|
194
283
|
shortCode: z.string().optional(),
|
|
@@ -290,6 +379,9 @@ export function toGroupPostSummary(post) {
|
|
|
290
379
|
updatedAt: post.updatedAt ?? undefined,
|
|
291
380
|
authorId: post.authorId ?? undefined,
|
|
292
381
|
visibility: post.visibility ?? undefined,
|
|
382
|
+
// The API reads back the role list as singular `roleId` but accepts it as `roleIds`.
|
|
383
|
+
roleIds: Array.isArray(post.roleId) ? post.roleId : undefined,
|
|
384
|
+
imageId: post.imageId ?? undefined,
|
|
293
385
|
};
|
|
294
386
|
}
|
|
295
387
|
export function toGroupInstanceSummary(instance) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups.js","sourceRoot":"","sources":["../../../src/models/groups.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"groups.js","sourceRoot":"","sources":["../../../src/models/groups.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,9 +12,38 @@ export const InviteSelfOutputSchema = z.object({
|
|
|
12
12
|
});
|
|
13
13
|
export const InviteUserSchema = z.object({
|
|
14
14
|
userId: schemas.UserID,
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
worldId: schemas.WorldID.optional().describe('World of the target instance. Pair with instanceId.'),
|
|
16
|
+
instanceId: schemas.InstanceID.optional().describe('Instance to invite into. Pair with worldId, or pass the full "wrld_:instance" string here. VRChat rejects a bare instance ID on its own.'),
|
|
17
|
+
location: z
|
|
18
|
+
.string()
|
|
19
|
+
.optional()
|
|
20
|
+
.describe('Full location string like "wrld_:instance". Simplest option when you have it.'),
|
|
17
21
|
messageSlot: z.number().int().min(0).max(11).optional(),
|
|
22
|
+
}).superRefine((input, ctx) => {
|
|
23
|
+
// Silently preferring location over an explicit pair would invite people to a different
|
|
24
|
+
// instance than the caller named, so make the forms mutually exclusive.
|
|
25
|
+
if (input.location && (input.worldId || input.instanceId)) {
|
|
26
|
+
ctx.addIssue({
|
|
27
|
+
code: z.ZodIssueCode.custom,
|
|
28
|
+
message: 'Provide either location, or worldId + instanceId — not both.',
|
|
29
|
+
path: ['location'],
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
if (input.worldId && !input.instanceId) {
|
|
33
|
+
ctx.addIssue({
|
|
34
|
+
code: z.ZodIssueCode.custom,
|
|
35
|
+
message: 'worldId requires instanceId.',
|
|
36
|
+
path: ['instanceId'],
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
// Pairing them would build "wrld_a:wrld_a:inst_1"; instanceId already carries the world.
|
|
40
|
+
if (input.worldId && input.instanceId?.includes(':')) {
|
|
41
|
+
ctx.addIssue({
|
|
42
|
+
code: z.ZodIssueCode.custom,
|
|
43
|
+
message: 'instanceId is already a full "wrld_:instance" location, so drop worldId — or pass the bare instance ID alongside it.',
|
|
44
|
+
path: ['worldId'],
|
|
45
|
+
});
|
|
46
|
+
}
|
|
18
47
|
});
|
|
19
48
|
export const InviteUserOutputSchema = z.object({
|
|
20
49
|
status: z.literal('sent'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invites.js","sourceRoot":"","sources":["../../../src/models/invites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;IACnC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACzB,YAAY,EAAE,eAAe,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"invites.js","sourceRoot":"","sources":["../../../src/models/invites.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,10 @@ import { schemas } from '../generated/vrchat-schemas.js';
|
|
|
3
3
|
export const StatusSchema = schemas.UserStatus;
|
|
4
4
|
export const StatusColorSchema = z.enum(['blue', 'green', 'orange', 'red']);
|
|
5
5
|
export const STATUS_FROM_COLOR = {
|
|
6
|
-
blue
|
|
7
|
-
|
|
6
|
+
// VRChat's client shows Join Me as blue and Active as green. The OpenAPI spec does not
|
|
7
|
+
// describe colors at all, so this mapping tracks the client UI, not the schema.
|
|
8
|
+
blue: 'join me',
|
|
9
|
+
green: 'active',
|
|
8
10
|
orange: 'ask me',
|
|
9
11
|
red: 'busy',
|
|
10
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/models/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;AAC/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,iBAAiB,GAG1B;IACF,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/models/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;AAC/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,iBAAiB,GAG1B;IACF,uFAAuF;IACvF,gFAAgF;IAChF,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,MAAM;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;CAClC,CAAC;KACD,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAC1B,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;IACnD,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC;IAEjD,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,0BAA0B;YACnC,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAClC,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,UAAU,KAAK,CAAC,KAAK,qBAAqB,YAAY,sBAAsB,KAAK,CAAC,MAAM,IAAI;gBACrG,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,MAAM,EAAE,YAAY;IACpB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC"}
|
|
@@ -31,6 +31,7 @@ const readParsers = {
|
|
|
31
31
|
searchWorlds: (data) => parseArrayWithSchema(WorldSchema, data, 'searchWorlds'),
|
|
32
32
|
getFavoritedWorlds: (data) => parseArrayWithSchema(schemas.FavoritedWorld.partial(), data, 'getFavoritedWorlds'),
|
|
33
33
|
getFavoritedAvatars: (data) => parseArrayWithSchema(AvatarSchema, data, 'getFavoritedAvatars'),
|
|
34
|
+
searchAvatars: (data) => parseArrayWithSchema(AvatarSchema, data, 'searchAvatars'),
|
|
34
35
|
getFavorites: (data) => parseArrayWithSchema(FavoriteSchema, data, 'getFavorites'),
|
|
35
36
|
getFavoriteGroups: (data) => parseArrayWithSchema(FavoriteGroupSchema, data, 'getFavoriteGroups'),
|
|
36
37
|
getFavoriteGroup: (data) => parseNullable(FavoriteGroupSchema, data, 'getFavoriteGroup'),
|
|
@@ -56,6 +57,7 @@ const writeParsers = {
|
|
|
56
57
|
createInstance: (data) => parseNullable(InstanceSchema, data, 'createInstance'),
|
|
57
58
|
inviteMyselfTo: (data) => parseNullable(SentNotificationSchema, data, 'inviteMyselfTo'),
|
|
58
59
|
inviteUser: (data) => parseNullable(SentNotificationSchema, data, 'inviteUser'),
|
|
60
|
+
updateAvatar: (data) => parseNullable(schemas.Avatar.partial(), data, 'updateAvatar'),
|
|
59
61
|
updateUser: (data) => parseNullable(CurrentUserSchema, data, 'updateUser'),
|
|
60
62
|
createGroupCalendarEvent: (data) => parseNullable(CalendarEventSchema, data, 'createGroupCalendarEvent'),
|
|
61
63
|
updateGroupCalendarEvent: (data) => parseNullable(CalendarEventSchema, data, 'updateGroupCalendarEvent'),
|
|
@@ -63,6 +65,9 @@ const writeParsers = {
|
|
|
63
65
|
followGroupCalendarEvent: (data) => parseNullable(CalendarEventSchema, data, 'followGroupCalendarEvent'),
|
|
64
66
|
addFavorite: (data) => parseNullable(FavoriteSchema, data, 'addFavorite'),
|
|
65
67
|
removeFavorite: (data) => parseNullable(schemas.Success.partial(), data, 'removeFavorite'),
|
|
68
|
+
addGroupPost: (data) => parseNullable(schemas.GroupPost.partial(), data, 'addGroupPost'),
|
|
69
|
+
updateGroupPost: (data) => parseNullable(schemas.GroupPost.partial(), data, 'updateGroupPost'),
|
|
70
|
+
deleteGroupPost: (data) => parseNullable(schemas.Success.partial(), data, 'deleteGroupPost'),
|
|
66
71
|
addGroupMemberRole: (data) => parseWithSchema(schemas.GroupRoleIDList, data, 'addGroupMemberRole'),
|
|
67
72
|
removeGroupMemberRole: (data) => parseWithSchema(schemas.GroupRoleIDList, data, 'removeGroupMemberRole'),
|
|
68
73
|
createGroupRole: (data) => parseNullable(GroupRoleSchema, data, 'createGroupRole'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/services/api/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/services/api/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { callReadOperationParsed } from '../api/client.js';
|
|
1
|
+
import { callReadOperationParsed, callWriteOperationParsed, } from '../api/client.js';
|
|
2
|
+
import { callWithRetry, sleep } from '../../core/retry.js';
|
|
2
3
|
import { buildCacheKey, cacheConfig, cacheManager } from '../cache.js';
|
|
3
4
|
const CACHE_TTL_MS = cacheConfig.groupsTtlMs;
|
|
4
5
|
const CACHE_STALE_TTL_MS = cacheConfig.groupsStaleTtlMs;
|
|
@@ -13,6 +14,170 @@ async function fetchAvatarProfileCached(avatarId, ttlMs = CACHE_TTL_MS, staleTtl
|
|
|
13
14
|
return avatar;
|
|
14
15
|
});
|
|
15
16
|
}
|
|
17
|
+
const CONTENT_TAG_PREFIX = 'content_';
|
|
18
|
+
/** Full avtr_ + UUID shape. A bare `avtr_` prefix test would misread an avatar *named* that. */
|
|
19
|
+
const AVATAR_ID_PATTERN = /^avtr_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
20
|
+
/**
|
|
21
|
+
* Serializes read-modify-write per avatar. Two overlapping updates would otherwise both read the
|
|
22
|
+
* same tag list and each PUT a complete array, so the later write would silently drop the
|
|
23
|
+
* earlier one's addition — breaking the merge guarantee this tool advertises.
|
|
24
|
+
*/
|
|
25
|
+
const avatarLocks = new Map();
|
|
26
|
+
function withAvatarLock(avatarId, run) {
|
|
27
|
+
const prior = avatarLocks.get(avatarId) ?? Promise.resolve();
|
|
28
|
+
const result = prior.then(run, run);
|
|
29
|
+
const settled = result.then(() => undefined, () => undefined);
|
|
30
|
+
avatarLocks.set(avatarId, settled);
|
|
31
|
+
void settled.then(() => {
|
|
32
|
+
if (avatarLocks.get(avatarId) === settled)
|
|
33
|
+
avatarLocks.delete(avatarId);
|
|
34
|
+
});
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
const AVATAR_PAGE_DELAY_MS = 250;
|
|
38
|
+
const AVATAR_PAGE_RETRY = {
|
|
39
|
+
maxAttempts: 4,
|
|
40
|
+
baseDelayMs: 1_000,
|
|
41
|
+
maxDelayMs: 30_000,
|
|
42
|
+
};
|
|
43
|
+
function nextTagsFor(existing, input) {
|
|
44
|
+
let tags = existing;
|
|
45
|
+
if (input.clearContentTags) {
|
|
46
|
+
tags = tags.filter((tag) => !tag.startsWith(CONTENT_TAG_PREFIX));
|
|
47
|
+
}
|
|
48
|
+
if (input.removeTags?.length) {
|
|
49
|
+
tags = tags.filter((tag) => !input.removeTags.includes(tag));
|
|
50
|
+
}
|
|
51
|
+
if (input.addTags?.length) {
|
|
52
|
+
// Dedupe against the accumulating list, not the pre-addition snapshot, so a caller passing
|
|
53
|
+
// the same tag twice cannot write it twice.
|
|
54
|
+
tags = [...new Set([...tags, ...input.addTags])];
|
|
55
|
+
}
|
|
56
|
+
return tags;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Carries the structured payload the tool layer needs to return actionable guidance rather
|
|
60
|
+
* than a bare string, so a client can follow the recovery path programmatically.
|
|
61
|
+
*/
|
|
62
|
+
export class AvatarLookupError extends Error {
|
|
63
|
+
status;
|
|
64
|
+
nextSteps;
|
|
65
|
+
constructor(message, status, nextSteps) {
|
|
66
|
+
super(message);
|
|
67
|
+
this.status = status;
|
|
68
|
+
this.nextSteps = nextSteps;
|
|
69
|
+
this.name = 'AvatarLookupError';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/** Accepts an avtr_ ID or the exact name of one of the caller's own avatars. */
|
|
73
|
+
async function resolveAvatarId(avatar) {
|
|
74
|
+
if (AVATAR_ID_PATTERN.test(avatar))
|
|
75
|
+
return avatar;
|
|
76
|
+
// Must see every owned avatar before deciding. Reading one page would report a later avatar
|
|
77
|
+
// as missing, and — worse — if two same-named avatars straddle a page boundary the ambiguity
|
|
78
|
+
// guard would see only one and write to it.
|
|
79
|
+
const pageSize = 100;
|
|
80
|
+
const maxPages = 20;
|
|
81
|
+
const owned = [];
|
|
82
|
+
let page = 0;
|
|
83
|
+
for (; page < maxPages; page += 1) {
|
|
84
|
+
// Retried and paced like the group-member snapshot: a transient 429 on page 7 should not
|
|
85
|
+
// discard six good pages and abort a resolution the caller cannot easily retry.
|
|
86
|
+
const { data: result } = await callWithRetry(() => callReadOperationParsed('searchAvatars', {
|
|
87
|
+
user: 'me',
|
|
88
|
+
n: pageSize,
|
|
89
|
+
offset: page * pageSize,
|
|
90
|
+
releaseStatus: 'all',
|
|
91
|
+
}), AVATAR_PAGE_RETRY);
|
|
92
|
+
const batch = (result.data ?? []);
|
|
93
|
+
owned.push(...batch);
|
|
94
|
+
if (batch.length < pageSize)
|
|
95
|
+
break;
|
|
96
|
+
await sleep(AVATAR_PAGE_DELAY_MS);
|
|
97
|
+
}
|
|
98
|
+
if (page === maxPages) {
|
|
99
|
+
throw new AvatarLookupError(`Could not list all of your avatars within ${maxPages * pageSize} results, so a name cannot be resolved safely.`, 'too_many_to_search', ['Call this tool again with the avtr_ ID.']);
|
|
100
|
+
}
|
|
101
|
+
// Exact only. A case-insensitive fallback would let a mistyped "cutie" mutate "Cutie",
|
|
102
|
+
// and the schema advertises an exact name.
|
|
103
|
+
const matches = owned.filter((a) => a.name === avatar);
|
|
104
|
+
if (matches.length === 0) {
|
|
105
|
+
throw new AvatarLookupError(`No avatar of yours is exactly named "${avatar}".`, 'not_found', [
|
|
106
|
+
'List your avatars with vrchat_read using operationId searchAvatars and user="me".',
|
|
107
|
+
'Then call this tool again with the avtr_ ID.',
|
|
108
|
+
]);
|
|
109
|
+
}
|
|
110
|
+
if (matches.length > 1) {
|
|
111
|
+
const ids = matches.map((m) => m.id).join(', ');
|
|
112
|
+
throw new AvatarLookupError(`"${avatar}" matches ${matches.length} of your avatars.`, 'ambiguous', [`Call this tool again with one of these avtr_ IDs: ${ids}.`]);
|
|
113
|
+
}
|
|
114
|
+
return matches[0].id;
|
|
115
|
+
}
|
|
116
|
+
/** Only fields that actually differ, so an unchanged request never issues a write. */
|
|
117
|
+
function changedFieldsOnly(current, input, existing, tags) {
|
|
118
|
+
const body = {};
|
|
119
|
+
if (input.name !== undefined && input.name !== current.name) {
|
|
120
|
+
body.name = input.name;
|
|
121
|
+
}
|
|
122
|
+
if (input.description !== undefined && input.description !== current.description) {
|
|
123
|
+
body.description = input.description;
|
|
124
|
+
}
|
|
125
|
+
if (input.releaseStatus !== undefined && input.releaseStatus !== current.releaseStatus) {
|
|
126
|
+
body.releaseStatus = input.releaseStatus;
|
|
127
|
+
}
|
|
128
|
+
if (tags.length !== existing.length || tags.some((tag, i) => tag !== existing[i])) {
|
|
129
|
+
body.tags = tags;
|
|
130
|
+
}
|
|
131
|
+
return body;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Edit avatar metadata. Only name, description, releaseStatus and content tags are reachable —
|
|
135
|
+
* assetUrl, unityPackageUrl, unityVersion and version are never written, because a bad value
|
|
136
|
+
* there points an avatar at the wrong build with no undo.
|
|
137
|
+
*
|
|
138
|
+
* Tags are merged against a freshly-read list rather than replaced, so unrelated tags (author
|
|
139
|
+
* tags in particular) survive. `updateAvatar` overwrites the whole array otherwise.
|
|
140
|
+
*/
|
|
141
|
+
export async function updateAvatarMetadata(input) {
|
|
142
|
+
const avatarId = await resolveAvatarId(input.avatar);
|
|
143
|
+
return await withAvatarLock(avatarId, () => applyAvatarUpdate(avatarId, input));
|
|
144
|
+
}
|
|
145
|
+
async function applyAvatarUpdate(avatarId, input) {
|
|
146
|
+
const dryRun = input.dryRun ?? false;
|
|
147
|
+
// Read uncached — a stale tag list would silently drop tags on write.
|
|
148
|
+
const current = await callReadOperationParsed('getAvatar', { avatarId });
|
|
149
|
+
if (!current.data)
|
|
150
|
+
throw new Error('Avatar not found.');
|
|
151
|
+
const existing = (current.data.tags ?? []);
|
|
152
|
+
const tags = nextTagsFor(existing, input);
|
|
153
|
+
const body = changedFieldsOnly(current.data, input, existing, tags);
|
|
154
|
+
// Chainable output: callers targeting by ID still get the human-readable name back.
|
|
155
|
+
const name = body.name ?? current.data.name;
|
|
156
|
+
if (Object.keys(body).length === 0) {
|
|
157
|
+
return { avatarId, name, dryRun, status: 'unchanged', tags: existing };
|
|
158
|
+
}
|
|
159
|
+
if (dryRun) {
|
|
160
|
+
return { avatarId, name, dryRun, status: 'updated', changes: body, tags };
|
|
161
|
+
}
|
|
162
|
+
// finally, not after: VRChat may apply the update and still return a body the generated
|
|
163
|
+
// parser rejects. Skipping invalidation there would leave a stale cached profile that a
|
|
164
|
+
// retry cannot repair, because the fresh merge read then reports "unchanged".
|
|
165
|
+
let updated;
|
|
166
|
+
try {
|
|
167
|
+
updated = await callWriteOperationParsed('updateAvatar', { avatarId }, body);
|
|
168
|
+
}
|
|
169
|
+
finally {
|
|
170
|
+
cacheManager.invalidateByTag('avatars:profile');
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
avatarId,
|
|
174
|
+
name: updated.data?.name ?? name,
|
|
175
|
+
dryRun,
|
|
176
|
+
status: 'updated',
|
|
177
|
+
changes: body,
|
|
178
|
+
tags: (updated.data?.tags ?? tags),
|
|
179
|
+
};
|
|
180
|
+
}
|
|
16
181
|
export async function getAvatarProfile(avatarId) {
|
|
17
182
|
const { value, stale } = await fetchAvatarProfileCached(avatarId);
|
|
18
183
|
return {
|