wwise-waapi-mcp 1.0.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.
Files changed (38) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +221 -0
  3. package/README_ZH.md +221 -0
  4. package/config/domains.json +130 -0
  5. package/config/runtime.json +4 -0
  6. package/dist/src/core/server.js +80 -0
  7. package/dist/src/core/transport.js +92 -0
  8. package/dist/src/domains/audio/tools.js +193 -0
  9. package/dist/src/domains/catalog/tools.js +198 -0
  10. package/dist/src/domains/debug/tools.js +139 -0
  11. package/dist/src/domains/example/tools.js +56 -0
  12. package/dist/src/domains/log/tools.js +79 -0
  13. package/dist/src/domains/object/tools.js +499 -0
  14. package/dist/src/domains/plugin/tools.js +45 -0
  15. package/dist/src/domains/profiler/tools.js +266 -0
  16. package/dist/src/domains/project/tools.js +179 -0
  17. package/dist/src/domains/remote/tools.js +73 -0
  18. package/dist/src/domains/sound/tools.js +38 -0
  19. package/dist/src/domains/soundbank/tools.js +137 -0
  20. package/dist/src/domains/soundengine/tools.js +529 -0
  21. package/dist/src/domains/sourceControl/tools.js +191 -0
  22. package/dist/src/domains/switchContainer/tools.js +64 -0
  23. package/dist/src/domains/transport/tools.js +116 -0
  24. package/dist/src/domains/ui/tools.js +126 -0
  25. package/dist/src/domains/undo/tools.js +75 -0
  26. package/dist/src/index.js +95 -0
  27. package/dist/src/lib/errors.js +31 -0
  28. package/dist/src/lib/logger.js +43 -0
  29. package/dist/src/lib/referenceCatalog.js +167 -0
  30. package/dist/src/lib/response.js +88 -0
  31. package/dist/src/lib/runtimePaths.js +21 -0
  32. package/dist/src/lib/toolFactory.js +73 -0
  33. package/dist/src/lib/waapiClient.js +97 -0
  34. package/dist/src/lib/waapiSchemaResolver.js +120 -0
  35. package/dist/src/registry/toolRegistry.js +180 -0
  36. package/dist/src/registry/types.js +2 -0
  37. package/dist/tests/verify.js +119 -0
  38. package/package.json +56 -0
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLogTools = getLogTools;
4
+ const v4_1 = require("zod/v4");
5
+ const toolFactory_js_1 = require("../../lib/toolFactory.js");
6
+ /**
7
+ * Wwise 日志通道工具(ak.wwise.core.log.*)。
8
+ * 支持读取、写入和清空日志通道,均需要 WAAPI 连接。
9
+ */
10
+ /** 日志严重级别 */
11
+ const logSeverity = v4_1.z.enum(["Message", "Warning", "Error", "FatalError"]);
12
+ /** 日志通道名称 */
13
+ const logChannel = v4_1.z.enum([
14
+ "ErrorsAndWarnings", "Errors", "Warnings",
15
+ "Messages", "Scheduler", "Network", "Build",
16
+ "Sequencer", "Captures", "DeferredDestruction"
17
+ ]);
18
+ function getLogTools() {
19
+ return [
20
+ (0, toolFactory_js_1.createWaapiStubTool)({
21
+ name: "ak.wwise.core.log.addItem",
22
+ title: "Add Log Item",
23
+ description: "Add an item to the Wwise log.",
24
+ domain: "log",
25
+ risk: "low",
26
+ permissions: ["waapi:authoring:write"],
27
+ tags: ["waapi", "log"],
28
+ examples: [{ title: "Log a warning message", input: { message: "Test warning", severity: "Warning" } }],
29
+ inputSchema: {
30
+ message: v4_1.z.string().min(1),
31
+ severity: logSeverity.optional(),
32
+ channel: logChannel.optional()
33
+ },
34
+ inputSchemaJson: {
35
+ type: "object",
36
+ properties: {
37
+ message: { type: "string", minLength: 1 },
38
+ severity: { type: "string", enum: ["Message", "Warning", "Error", "FatalError"] },
39
+ channel: { type: "string" }, options: {}
40
+ },
41
+ required: ["message"],
42
+ additionalProperties: false
43
+ }
44
+ }),
45
+ (0, toolFactory_js_1.createWaapiStubTool)({
46
+ name: "ak.wwise.core.log.clear",
47
+ title: "Clear Log",
48
+ description: "Clear items from the Wwise log, optionally scoped to a specific channel.",
49
+ domain: "log",
50
+ risk: "medium",
51
+ permissions: ["waapi:authoring:write"],
52
+ tags: ["waapi", "log"],
53
+ examples: [{ title: "Clear all log items" }],
54
+ inputSchema: { channel: logChannel.optional() },
55
+ inputSchemaJson: {
56
+ type: "object",
57
+ properties: { channel: { type: "string" } },
58
+ additionalProperties: false
59
+ }
60
+ }),
61
+ (0, toolFactory_js_1.createWaapiStubTool)({
62
+ name: "ak.wwise.core.log.get",
63
+ title: "Get Log",
64
+ description: "Get log items from a specific Wwise log channel.",
65
+ domain: "log",
66
+ risk: "low",
67
+ permissions: ["waapi:authoring:read"],
68
+ tags: ["waapi", "log"],
69
+ examples: [{ title: "Get errors and warnings", input: { channel: "ErrorsAndWarnings" } }],
70
+ inputSchema: { channel: logChannel },
71
+ inputSchemaJson: {
72
+ type: "object",
73
+ properties: { channel: { type: "string" }, options: {} },
74
+ required: ["channel"],
75
+ additionalProperties: false
76
+ }
77
+ })
78
+ ];
79
+ }
@@ -0,0 +1,499 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getObjectTools = getObjectTools;
4
+ const v4_1 = require("zod/v4");
5
+ const toolFactory_js_1 = require("../../lib/toolFactory.js");
6
+ /**
7
+ * Wwise 授权工具中的对象操作工具(ak.wwise.core.object.*)。
8
+ * 支持查询、创建、修改和删除对象,
9
+ * 读取操作为中风险,写入操作为高风险。
10
+ */
11
+ function getObjectTools() {
12
+ return [
13
+ (0, toolFactory_js_1.createWaapiStubTool)({
14
+ name: "ak.wwise.core.object.get",
15
+ title: "Get Objects",
16
+ description: "Run a WAQL or legacy object query in Wwise Authoring.",
17
+ domain: "object",
18
+ risk: "medium",
19
+ permissions: ["waapi:authoring:read"],
20
+ tags: ["waapi", "object", "query", "stub"],
21
+ examples: [{ title: "Query all events", input: { waql: 'from type Event select name, id' } }],
22
+ inputSchema: {
23
+ waql: v4_1.z.string().optional(),
24
+ from: v4_1.z.unknown().optional(),
25
+ transform: v4_1.z.array(v4_1.z.unknown()).optional(),
26
+ options: v4_1.z.unknown().optional()
27
+ },
28
+ inputSchemaJson: {
29
+ type: "object",
30
+ properties: {
31
+ waql: { type: "string" },
32
+ from: {},
33
+ transform: { type: "array", items: {} },
34
+ options: {}
35
+ },
36
+ additionalProperties: false
37
+ }
38
+ }),
39
+ (0, toolFactory_js_1.createWaapiStubTool)({
40
+ name: "ak.wwise.core.object.create",
41
+ title: "Create Object",
42
+ description: "Create a Wwise object under a parent object.",
43
+ domain: "object",
44
+ risk: "high",
45
+ permissions: ["waapi:authoring:write"],
46
+ tags: ["waapi", "object", "create", "stub"],
47
+ examples: [{ title: "Create a random container", input: { parent: "\\Actor-Mixer Hierarchy\\Default Work Unit", type: "RandomSequenceContainer", name: "Footsteps" } }],
48
+ inputSchema: {
49
+ parent: v4_1.z.string().min(1),
50
+ type: v4_1.z.string().min(1),
51
+ name: v4_1.z.string().min(1),
52
+ list: v4_1.z.string().optional(),
53
+ onNameConflict: v4_1.z.enum(["rename", "replace", "fail", "merge"]).optional(),
54
+ platform: v4_1.z.string().optional(),
55
+ autoAddToSourceControl: v4_1.z.boolean().optional(),
56
+ notes: v4_1.z.string().optional(),
57
+ children: v4_1.z.array(v4_1.z.unknown()).optional(),
58
+ options: v4_1.z.unknown().optional()
59
+ },
60
+ inputSchemaJson: {
61
+ type: "object",
62
+ properties: {
63
+ parent: { type: "string", minLength: 1 },
64
+ type: { type: "string", minLength: 1 },
65
+ name: { type: "string", minLength: 1 },
66
+ list: { type: "string" },
67
+ onNameConflict: { type: "string", enum: ["rename", "replace", "fail", "merge"] },
68
+ platform: { type: "string" },
69
+ autoAddToSourceControl: { type: "boolean" },
70
+ notes: { type: "string" },
71
+ children: { type: "array", items: {} },
72
+ options: {}
73
+ },
74
+ required: ["parent", "type", "name"],
75
+ additionalProperties: false
76
+ }
77
+ }),
78
+ (0, toolFactory_js_1.createWaapiStubTool)({
79
+ name: "ak.wwise.core.object.setProperty",
80
+ title: "Set Property",
81
+ description: "Set a property value on an existing Wwise object.",
82
+ domain: "object",
83
+ risk: "high",
84
+ permissions: ["waapi:authoring:write"],
85
+ tags: ["waapi", "object", "property", "stub"],
86
+ examples: [{ title: "Set voice volume", input: { object: "{GUID}", property: "Volume", value: -3 } }],
87
+ inputSchema: {
88
+ object: v4_1.z.string().min(1),
89
+ property: v4_1.z.string().min(1),
90
+ value: v4_1.z.unknown(),
91
+ platform: v4_1.z.string().optional(),
92
+ options: v4_1.z.unknown().optional()
93
+ },
94
+ inputSchemaJson: {
95
+ type: "object",
96
+ properties: {
97
+ object: { type: "string", minLength: 1 },
98
+ property: { type: "string", minLength: 1 },
99
+ value: {},
100
+ platform: { type: "string" },
101
+ options: {}
102
+ },
103
+ required: ["object", "property", "value"],
104
+ additionalProperties: false
105
+ }
106
+ }),
107
+ (0, toolFactory_js_1.createWaapiStubTool)({
108
+ name: "ak.wwise.core.object.copy",
109
+ title: "Copy Object",
110
+ description: "Copy a Wwise object to a new parent.",
111
+ domain: "object",
112
+ risk: "high",
113
+ permissions: ["waapi:authoring:write"],
114
+ tags: ["waapi", "object", "copy"],
115
+ examples: [{ title: "Copy an event", input: { object: "{GUID}", parent: "\\Events\\Default Work Unit" } }],
116
+ inputSchema: {
117
+ object: v4_1.z.string().min(1),
118
+ parent: v4_1.z.string().min(1),
119
+ onNameConflict: v4_1.z.enum(["rename", "replace", "fail"]).optional(),
120
+ autoCheckOutToSourceControl: v4_1.z.boolean().optional(),
121
+ autoAddToSourceControl: v4_1.z.boolean().optional()
122
+ },
123
+ inputSchemaJson: {
124
+ type: "object",
125
+ properties: {
126
+ object: { type: "string", minLength: 1 }, parent: { type: "string", minLength: 1 },
127
+ onNameConflict: { type: "string", enum: ["rename", "replace", "fail"] },
128
+ autoCheckOutToSourceControl: { type: "boolean" }, autoAddToSourceControl: { type: "boolean" }, options: {}
129
+ },
130
+ required: ["object", "parent"],
131
+ additionalProperties: false
132
+ }
133
+ }),
134
+ (0, toolFactory_js_1.createWaapiStubTool)({
135
+ name: "ak.wwise.core.object.delete",
136
+ title: "Delete Object",
137
+ description: "Delete a Wwise object.",
138
+ domain: "object",
139
+ risk: "high",
140
+ permissions: ["waapi:authoring:write"],
141
+ tags: ["waapi", "object", "delete"],
142
+ examples: [{ title: "Delete an object", input: { object: "{GUID}" } }],
143
+ inputSchema: {
144
+ object: v4_1.z.string().min(1),
145
+ autoCheckOutToSourceControl: v4_1.z.boolean().optional()
146
+ },
147
+ inputSchemaJson: {
148
+ type: "object",
149
+ properties: {
150
+ object: { type: "string", minLength: 1 },
151
+ autoCheckOutToSourceControl: { type: "boolean" }, options: {}
152
+ },
153
+ required: ["object"],
154
+ additionalProperties: false
155
+ }
156
+ }),
157
+ (0, toolFactory_js_1.createWaapiStubTool)({
158
+ name: "ak.wwise.core.object.move",
159
+ title: "Move Object",
160
+ description: "Move a Wwise object to a new parent.",
161
+ domain: "object",
162
+ risk: "high",
163
+ permissions: ["waapi:authoring:write"],
164
+ tags: ["waapi", "object", "move"],
165
+ examples: [{ title: "Move an event", input: { object: "{GUID}", parent: "\\Events\\Default Work Unit" } }],
166
+ inputSchema: {
167
+ object: v4_1.z.string().min(1),
168
+ parent: v4_1.z.string().min(1),
169
+ onNameConflict: v4_1.z.enum(["rename", "replace", "fail"]).optional(),
170
+ autoCheckOutToSourceControl: v4_1.z.boolean().optional()
171
+ },
172
+ inputSchemaJson: {
173
+ type: "object",
174
+ properties: {
175
+ object: { type: "string", minLength: 1 }, parent: { type: "string", minLength: 1 },
176
+ onNameConflict: { type: "string", enum: ["rename", "replace", "fail"] },
177
+ autoCheckOutToSourceControl: { type: "boolean" }, options: {}
178
+ },
179
+ required: ["object", "parent"],
180
+ additionalProperties: false
181
+ }
182
+ }),
183
+ (0, toolFactory_js_1.createWaapiStubTool)({
184
+ name: "ak.wwise.core.object.set",
185
+ title: "Set Objects",
186
+ description: "Set properties, children, or import data on one or more objects in a single call.",
187
+ domain: "object",
188
+ risk: "high",
189
+ permissions: ["waapi:authoring:write"],
190
+ tags: ["waapi", "object", "batch"],
191
+ examples: [{ title: "Set volume on object", input: { objects: [{ object: "{GUID}", "@Volume": -6 }] } }],
192
+ inputSchema: {
193
+ objects: v4_1.z.array(v4_1.z.unknown()).min(1),
194
+ platform: v4_1.z.string().optional(),
195
+ onNameConflict: v4_1.z.enum(["rename", "replace", "fail", "merge"]).optional(),
196
+ listMode: v4_1.z.enum(["replaceAll", "append"]).optional(),
197
+ autoAddToSourceControl: v4_1.z.boolean().optional()
198
+ },
199
+ inputSchemaJson: {
200
+ type: "object",
201
+ properties: {
202
+ objects: { type: "array", minItems: 1, items: {} },
203
+ platform: { type: "string" },
204
+ onNameConflict: { type: "string", enum: ["rename", "replace", "fail", "merge"] },
205
+ listMode: { type: "string", enum: ["replaceAll", "append"] },
206
+ autoAddToSourceControl: { type: "boolean" }, options: {}
207
+ },
208
+ required: ["objects"],
209
+ additionalProperties: false
210
+ }
211
+ }),
212
+ (0, toolFactory_js_1.createWaapiStubTool)({
213
+ name: "ak.wwise.core.object.setName",
214
+ title: "Rename Object",
215
+ description: "Rename a Wwise object.",
216
+ domain: "object",
217
+ risk: "high",
218
+ permissions: ["waapi:authoring:write"],
219
+ tags: ["waapi", "object", "rename"],
220
+ examples: [{ title: "Rename an event", input: { object: "{GUID}", value: "Play_Footstep_NewName" } }],
221
+ inputSchema: { object: v4_1.z.string().min(1), value: v4_1.z.string().min(1) },
222
+ inputSchemaJson: {
223
+ type: "object",
224
+ properties: { object: { type: "string", minLength: 1 }, value: { type: "string", minLength: 1 }, options: {} },
225
+ required: ["object", "value"],
226
+ additionalProperties: false
227
+ }
228
+ }),
229
+ (0, toolFactory_js_1.createWaapiStubTool)({
230
+ name: "ak.wwise.core.object.setNotes",
231
+ title: "Set Object Notes",
232
+ description: "Set the notes/comments on a Wwise object.",
233
+ domain: "object",
234
+ risk: "high",
235
+ permissions: ["waapi:authoring:write"],
236
+ tags: ["waapi", "object", "notes"],
237
+ examples: [{ title: "Add a note to an event", input: { object: "{GUID}", value: "Used for player footsteps." } }],
238
+ inputSchema: { object: v4_1.z.string().min(1), value: v4_1.z.string() },
239
+ inputSchemaJson: {
240
+ type: "object",
241
+ properties: { object: { type: "string", minLength: 1 }, value: { type: "string" }, options: {} },
242
+ required: ["object", "value"],
243
+ additionalProperties: false
244
+ }
245
+ }),
246
+ (0, toolFactory_js_1.createWaapiStubTool)({
247
+ name: "ak.wwise.core.object.setReference",
248
+ title: "Set Reference",
249
+ description: "Set an object-type reference on a Wwise object (e.g. OutputBus).",
250
+ domain: "object",
251
+ risk: "high",
252
+ permissions: ["waapi:authoring:write"],
253
+ tags: ["waapi", "object", "reference"],
254
+ examples: [{ title: "Route object to a bus", input: { object: "{GUID}", reference: "OutputBus", value: "\\Master Audio Bus\\SFX" } }],
255
+ inputSchema: {
256
+ object: v4_1.z.string().min(1),
257
+ reference: v4_1.z.string().min(1),
258
+ value: v4_1.z.string().min(1),
259
+ platform: v4_1.z.string().optional()
260
+ },
261
+ inputSchemaJson: {
262
+ type: "object",
263
+ properties: {
264
+ object: { type: "string", minLength: 1 }, reference: { type: "string", minLength: 1 },
265
+ value: { type: "string", minLength: 1 }, platform: { type: "string" }, options: {}
266
+ },
267
+ required: ["object", "reference", "value"],
268
+ additionalProperties: false
269
+ }
270
+ }),
271
+ (0, toolFactory_js_1.createWaapiStubTool)({
272
+ name: "ak.wwise.core.object.setRandomizer",
273
+ title: "Set Randomizer",
274
+ description: "Configure the randomizer on a property (enabled, min offset, max offset).",
275
+ domain: "object",
276
+ risk: "high",
277
+ permissions: ["waapi:authoring:write"],
278
+ tags: ["waapi", "object", "randomizer"],
279
+ examples: [{ title: "Randomize Volume ±3 dB", input: { object: "{GUID}", property: "Volume", enabled: true, min: -3, max: 3 } }],
280
+ inputSchema: {
281
+ object: v4_1.z.string().min(1),
282
+ property: v4_1.z.string().min(1),
283
+ platform: v4_1.z.string().optional(),
284
+ enabled: v4_1.z.boolean().optional(),
285
+ min: v4_1.z.number().max(0).optional(),
286
+ max: v4_1.z.number().min(0).optional()
287
+ },
288
+ inputSchemaJson: {
289
+ type: "object",
290
+ properties: {
291
+ object: { type: "string", minLength: 1 }, property: { type: "string", minLength: 1 },
292
+ platform: { type: "string" }, enabled: { type: "boolean" },
293
+ min: { type: "number", maximum: 0 }, max: { type: "number", minimum: 0 }, options: {}
294
+ },
295
+ required: ["object", "property"],
296
+ additionalProperties: false
297
+ }
298
+ }),
299
+ (0, toolFactory_js_1.createWaapiStubTool)({
300
+ name: "ak.wwise.core.object.pasteProperties",
301
+ title: "Paste Properties",
302
+ description: "Paste properties from one object to one or more target objects.",
303
+ domain: "object",
304
+ risk: "high",
305
+ permissions: ["waapi:authoring:write"],
306
+ tags: ["waapi", "object", "paste"],
307
+ examples: [{ title: "Copy all properties", input: { source: "{SOURCE_GUID}", targets: ["{TARGET_GUID}"] } }],
308
+ inputSchema: {
309
+ source: v4_1.z.string().min(1),
310
+ targets: v4_1.z.array(v4_1.z.string()).min(1),
311
+ pasteMode: v4_1.z.enum(["replaceEntire", "addReplace", "addKeep"]).optional(),
312
+ inclusion: v4_1.z.array(v4_1.z.string()).optional(),
313
+ exclusion: v4_1.z.array(v4_1.z.string()).optional()
314
+ },
315
+ inputSchemaJson: {
316
+ type: "object",
317
+ properties: {
318
+ source: { type: "string", minLength: 1 },
319
+ targets: { type: "array", minItems: 1, items: { type: "string" } },
320
+ pasteMode: { type: "string", enum: ["replaceEntire", "addReplace", "addKeep"] },
321
+ inclusion: { type: "array", items: { type: "string" } },
322
+ exclusion: { type: "array", items: { type: "string" } }, options: {}
323
+ },
324
+ required: ["source", "targets"],
325
+ additionalProperties: false
326
+ }
327
+ }),
328
+ (0, toolFactory_js_1.createWaapiStubTool)({
329
+ name: "ak.wwise.core.object.getPropertyAndReferenceNames",
330
+ title: "Get Property and Reference Names",
331
+ description: "Get all property and reference names for an object or class.",
332
+ domain: "object",
333
+ risk: "low",
334
+ permissions: ["waapi:authoring:read"],
335
+ tags: ["waapi", "object", "schema"],
336
+ examples: [{ title: "List properties of an event", input: { object: "{GUID}" } }],
337
+ inputSchema: {
338
+ object: v4_1.z.string().optional(),
339
+ classId: v4_1.z.number().int().min(0).optional()
340
+ },
341
+ inputSchemaJson: {
342
+ type: "object",
343
+ properties: { object: { type: "string" }, classId: { type: "integer", minimum: 0 }, options: {} },
344
+ additionalProperties: false
345
+ }
346
+ }),
347
+ (0, toolFactory_js_1.createWaapiStubTool)({
348
+ name: "ak.wwise.core.object.getPropertyInfo",
349
+ title: "Get Property Info",
350
+ description: "Get detailed information about a specific property of an object or class.",
351
+ domain: "object",
352
+ risk: "low",
353
+ permissions: ["waapi:authoring:read"],
354
+ tags: ["waapi", "object", "schema"],
355
+ examples: [{ title: "Get Volume property info", input: { object: "{GUID}", property: "Volume" } }],
356
+ inputSchema: {
357
+ property: v4_1.z.string().min(1),
358
+ object: v4_1.z.string().optional(),
359
+ classId: v4_1.z.number().int().min(0).optional()
360
+ },
361
+ inputSchemaJson: {
362
+ type: "object",
363
+ properties: {
364
+ property: { type: "string", minLength: 1 },
365
+ object: { type: "string" }, classId: { type: "integer", minimum: 0 }, options: {}
366
+ },
367
+ required: ["property"],
368
+ additionalProperties: false
369
+ }
370
+ }),
371
+ (0, toolFactory_js_1.createWaapiStubTool)({
372
+ name: "ak.wwise.core.object.getTypes",
373
+ title: "Get Object Types",
374
+ description: "Get a list of all Wwise object types with their class IDs and descriptions.",
375
+ domain: "object",
376
+ risk: "low",
377
+ permissions: ["waapi:authoring:read"],
378
+ tags: ["waapi", "object", "schema"],
379
+ examples: [{ title: "List all object types" }],
380
+ inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
381
+ }),
382
+ (0, toolFactory_js_1.createWaapiStubTool)({
383
+ name: "ak.wwise.core.object.diff",
384
+ title: "Diff Objects",
385
+ description: "Compare two objects and return their property differences.",
386
+ domain: "object",
387
+ risk: "low",
388
+ permissions: ["waapi:authoring:read"],
389
+ tags: ["waapi", "object", "diff"],
390
+ examples: [{ title: "Compare two sound objects", input: { source: "{GUID_A}", target: "{GUID_B}" } }],
391
+ inputSchema: { source: v4_1.z.string().min(1), target: v4_1.z.string().min(1) },
392
+ inputSchemaJson: {
393
+ type: "object",
394
+ properties: { source: { type: "string", minLength: 1 }, target: { type: "string", minLength: 1 }, options: {} },
395
+ required: ["source", "target"],
396
+ additionalProperties: false
397
+ }
398
+ }),
399
+ (0, toolFactory_js_1.createWaapiStubTool)({
400
+ name: "ak.wwise.core.object.setStateGroups",
401
+ title: "Set State Groups",
402
+ description: "Set the State Groups on an object.",
403
+ domain: "object",
404
+ risk: "high",
405
+ permissions: ["waapi:authoring:write"],
406
+ tags: ["waapi", "object", "states"],
407
+ examples: [{ title: "Assign state groups to a sound", input: { object: "{GUID}", stateGroups: ["{STATE_GROUP_GUID}"] } }],
408
+ inputSchema: { object: v4_1.z.string().min(1), stateGroups: v4_1.z.array(v4_1.z.string()).min(1) },
409
+ inputSchemaJson: {
410
+ type: "object",
411
+ properties: { object: { type: "string", minLength: 1 }, stateGroups: { type: "array", minItems: 1, items: { type: "string" } }, options: {} },
412
+ required: ["object", "stateGroups"],
413
+ additionalProperties: false
414
+ }
415
+ }),
416
+ (0, toolFactory_js_1.createWaapiStubTool)({
417
+ name: "ak.wwise.core.object.setStateProperties",
418
+ title: "Set State Properties",
419
+ description: "Set which properties are driven by state on an object.",
420
+ domain: "object",
421
+ risk: "high",
422
+ permissions: ["waapi:authoring:write"],
423
+ tags: ["waapi", "object", "states"],
424
+ examples: [{ title: "Enable state-driven Volume", input: { object: "{GUID}", stateProperties: [{ property: "Volume", customName: "" }] } }],
425
+ inputSchema: { object: v4_1.z.string().min(1), stateProperties: v4_1.z.array(v4_1.z.unknown()).min(1) },
426
+ inputSchemaJson: {
427
+ type: "object",
428
+ properties: { object: { type: "string", minLength: 1 }, stateProperties: { type: "array", minItems: 1, items: {} }, options: {} },
429
+ required: ["object", "stateProperties"],
430
+ additionalProperties: false
431
+ }
432
+ }),
433
+ (0, toolFactory_js_1.createWaapiStubTool)({
434
+ name: "ak.wwise.core.object.setLinked",
435
+ title: "Set Property Linked",
436
+ description: "Link or unlink a property across platforms on an object.",
437
+ domain: "object",
438
+ risk: "high",
439
+ permissions: ["waapi:authoring:write"],
440
+ tags: ["waapi", "object", "platform", "property"],
441
+ examples: [{ title: "Link Volume across platforms", input: { object: "{GUID}", property: "Volume", platform: "{PLATFORM_GUID}", linked: true } }],
442
+ inputSchema: {
443
+ object: v4_1.z.string().min(1),
444
+ property: v4_1.z.string().min(1),
445
+ platform: v4_1.z.string().min(1),
446
+ linked: v4_1.z.boolean()
447
+ },
448
+ inputSchemaJson: {
449
+ type: "object",
450
+ properties: {
451
+ object: { type: "string", minLength: 1 }, property: { type: "string", minLength: 1 },
452
+ platform: { type: "string", minLength: 1 }, linked: { type: "boolean" }, options: {}
453
+ },
454
+ required: ["object", "property", "platform", "linked"],
455
+ additionalProperties: false
456
+ }
457
+ }),
458
+ (0, toolFactory_js_1.createWaapiStubTool)({
459
+ name: "ak.wwise.core.object.isLinked",
460
+ title: "Is Property Linked",
461
+ description: "Check whether a property is linked across platforms on an object.",
462
+ domain: "object",
463
+ risk: "low",
464
+ permissions: ["waapi:authoring:read"],
465
+ tags: ["waapi", "object", "platform", "property"],
466
+ examples: [{ title: "Check Volume link status", input: { object: "{GUID}", property: "Volume", platform: "{PLATFORM_GUID}" } }],
467
+ inputSchema: { object: v4_1.z.string().min(1), property: v4_1.z.string().min(1), platform: v4_1.z.string().min(1) },
468
+ inputSchemaJson: {
469
+ type: "object",
470
+ properties: {
471
+ object: { type: "string", minLength: 1 }, property: { type: "string", minLength: 1 },
472
+ platform: { type: "string", minLength: 1 }, options: {}
473
+ },
474
+ required: ["object", "property", "platform"],
475
+ additionalProperties: false
476
+ }
477
+ }),
478
+ (0, toolFactory_js_1.createWaapiStubTool)({
479
+ name: "ak.wwise.core.object.isPropertyEnabled",
480
+ title: "Is Property Enabled",
481
+ description: "Check whether a property is enabled for an object on a specific platform.",
482
+ domain: "object",
483
+ risk: "low",
484
+ permissions: ["waapi:authoring:read"],
485
+ tags: ["waapi", "object", "platform", "property"],
486
+ examples: [{ title: "Check if Volume is enabled", input: { object: "{GUID}", platform: "{PLATFORM_GUID}", property: "Volume" } }],
487
+ inputSchema: { object: v4_1.z.string().min(1), platform: v4_1.z.string().min(1), property: v4_1.z.string().min(1) },
488
+ inputSchemaJson: {
489
+ type: "object",
490
+ properties: {
491
+ object: { type: "string", minLength: 1 }, platform: { type: "string", minLength: 1 },
492
+ property: { type: "string", minLength: 1 }, options: {}
493
+ },
494
+ required: ["object", "platform", "property"],
495
+ additionalProperties: false
496
+ }
497
+ })
498
+ ];
499
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPluginTools = getPluginTools;
4
+ const toolFactory_js_1 = require("../../lib/toolFactory.js");
5
+ /**
6
+ * Wwise 插件发现工具(ak.wwise.core.plugin.*)。
7
+ * 支持列出已安装插件及其属性,均为只读低风险操作。
8
+ */
9
+ function getPluginTools() {
10
+ return [
11
+ (0, toolFactory_js_1.createWaapiStubTool)({
12
+ name: "ak.wwise.core.plugin.getList",
13
+ title: "Get Plugin List",
14
+ description: "Get the list of installed Wwise plug-ins.",
15
+ domain: "plugin",
16
+ risk: "low",
17
+ permissions: ["waapi:authoring:read"],
18
+ tags: ["waapi", "plugin", "discovery"],
19
+ examples: [{ title: "List all installed plugins" }],
20
+ inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
21
+ }),
22
+ (0, toolFactory_js_1.createWaapiStubTool)({
23
+ name: "ak.wwise.core.plugin.getProperties",
24
+ title: "Get Plugin Properties",
25
+ description: "Get the property schemas for all installed plug-ins.",
26
+ domain: "plugin",
27
+ risk: "low",
28
+ permissions: ["waapi:authoring:read"],
29
+ tags: ["waapi", "plugin", "schema"],
30
+ examples: [{ title: "Get all plugin property schemas" }],
31
+ inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
32
+ }),
33
+ (0, toolFactory_js_1.createWaapiStubTool)({
34
+ name: "ak.wwise.core.plugin.getProperty",
35
+ title: "Get Plugin Property",
36
+ description: "Get the property schema for a specific plug-in.",
37
+ domain: "plugin",
38
+ risk: "low",
39
+ permissions: ["waapi:authoring:read"],
40
+ tags: ["waapi", "plugin", "schema"],
41
+ examples: [{ title: "Get property schema for a plugin" }],
42
+ inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
43
+ })
44
+ ];
45
+ }