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,266 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProfilerTools = getProfilerTools;
4
+ const v4_1 = require("zod/v4");
5
+ const toolFactory_js_1 = require("../../lib/toolFactory.js");
6
+ /**
7
+ * Wwise Profiler 数据访问工具(ak.wwise.core.profiler.*)。
8
+ * 支持读取 CPU 使用率、内存统计和活跃语音信息,均为低风险读取操作。
9
+ */
10
+ function getProfilerTools() {
11
+ return [
12
+ (0, toolFactory_js_1.createWaapiStubTool)({
13
+ name: "ak.wwise.core.profiler.getCpuUsage",
14
+ title: "Get CPU Usage",
15
+ description: "Read profiler CPU usage information.",
16
+ domain: "profiler",
17
+ risk: "low",
18
+ permissions: ["waapi:authoring:read"],
19
+ tags: ["waapi", "profiler", "cpu", "stub"],
20
+ examples: [{ title: "Read CPU usage" }],
21
+ inputSchemaJson: {
22
+ type: "object",
23
+ properties: {},
24
+ additionalProperties: false
25
+ }
26
+ }),
27
+ (0, toolFactory_js_1.createWaapiStubTool)({
28
+ name: "ak.wwise.core.profiler.startCapture",
29
+ title: "Start Capture",
30
+ description: "Start profiler capture recording.",
31
+ domain: "profiler",
32
+ risk: "medium",
33
+ permissions: ["waapi:authoring:write"],
34
+ tags: ["waapi", "profiler", "capture", "stub"],
35
+ examples: [{ title: "Start capture" }],
36
+ inputSchemaJson: {
37
+ type: "object",
38
+ properties: {},
39
+ additionalProperties: false
40
+ }
41
+ }),
42
+ (0, toolFactory_js_1.createWaapiStubTool)({
43
+ name: "ak.wwise.core.profiler.getVoices",
44
+ title: "Get Voices",
45
+ description: "Inspect active voices in the profiler.",
46
+ domain: "profiler",
47
+ risk: "low",
48
+ permissions: ["waapi:authoring:read"],
49
+ tags: ["waapi", "profiler", "voices", "stub"],
50
+ examples: [{ title: "List active voices" }],
51
+ inputSchema: {
52
+ time: v4_1.z.number().optional()
53
+ },
54
+ inputSchemaJson: {
55
+ type: "object",
56
+ properties: {
57
+ time: { type: "number" }
58
+ },
59
+ additionalProperties: false
60
+ }
61
+ }),
62
+ (0, toolFactory_js_1.createWaapiStubTool)({
63
+ name: "ak.wwise.core.profiler.stopCapture",
64
+ title: "Stop Capture",
65
+ description: "Stop the current profiler capture session.",
66
+ domain: "profiler",
67
+ risk: "medium",
68
+ permissions: ["waapi:profiler"],
69
+ tags: ["waapi", "profiler", "capture"],
70
+ examples: [{ title: "Stop capturing" }],
71
+ inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
72
+ }),
73
+ (0, toolFactory_js_1.createWaapiStubTool)({
74
+ name: "ak.wwise.core.profiler.saveCapture",
75
+ title: "Save Capture",
76
+ description: "Save the current profiler capture to a file.",
77
+ domain: "profiler",
78
+ risk: "medium",
79
+ permissions: ["waapi:profiler"],
80
+ tags: ["waapi", "profiler", "capture"],
81
+ examples: [{ title: "Save capture to file", input: { file: "C:/capture.prof" } }],
82
+ inputSchema: { file: v4_1.z.string().min(1) },
83
+ inputSchemaJson: { type: "object", properties: { file: { type: "string", minLength: 1 }, options: {} }, required: ["file"], additionalProperties: false }
84
+ }),
85
+ (0, toolFactory_js_1.createWaapiStubTool)({
86
+ name: "ak.wwise.core.profiler.getCursorTime",
87
+ title: "Get Cursor Time",
88
+ description: "Get the current time of the user or capture cursor.",
89
+ domain: "profiler",
90
+ risk: "low",
91
+ permissions: ["waapi:profiler"],
92
+ tags: ["waapi", "profiler", "cursor"],
93
+ examples: [{ title: "Get user cursor time", input: { cursor: "user" } }],
94
+ inputSchema: { cursor: v4_1.z.enum(["user", "capture"]) },
95
+ inputSchemaJson: { type: "object", properties: { cursor: { type: "string", enum: ["user", "capture"] }, options: {} }, required: ["cursor"], additionalProperties: false }
96
+ }),
97
+ (0, toolFactory_js_1.createWaapiStubTool)({
98
+ name: "ak.wwise.core.profiler.getVoiceContributions",
99
+ title: "Get Voice Contributions",
100
+ description: "Get the volume/bus contributions for a specific voice pipeline.",
101
+ domain: "profiler",
102
+ risk: "low",
103
+ permissions: ["waapi:profiler"],
104
+ tags: ["waapi", "profiler", "voices"],
105
+ examples: [{ title: "Get contributions at user cursor", input: { voicePipelineID: 1234, time: "user" } }],
106
+ inputSchema: {
107
+ voicePipelineID: v4_1.z.number().int(),
108
+ time: v4_1.z.union([v4_1.z.number().int(), v4_1.z.enum(["user", "capture"])]),
109
+ bussesPipelineID: v4_1.z.number().int().optional()
110
+ },
111
+ inputSchemaJson: {
112
+ type: "object",
113
+ properties: {
114
+ voicePipelineID: { type: "integer" },
115
+ time: { oneOf: [{ type: "integer" }, { type: "string", enum: ["user", "capture"] }] },
116
+ bussesPipelineID: { type: "integer" }, options: {}
117
+ },
118
+ required: ["voicePipelineID", "time"],
119
+ additionalProperties: false
120
+ }
121
+ }),
122
+ (0, toolFactory_js_1.createWaapiStubTool)({
123
+ name: "ak.wwise.core.profiler.getGameObjects",
124
+ title: "Get Game Objects",
125
+ description: "Get the list of active game objects at a given profiler cursor time.",
126
+ domain: "profiler",
127
+ risk: "low",
128
+ permissions: ["waapi:profiler"],
129
+ tags: ["waapi", "profiler", "game-objects"],
130
+ examples: [{ title: "Get game objects at user cursor", input: { time: "user" } }],
131
+ inputSchema: { time: v4_1.z.union([v4_1.z.number().int(), v4_1.z.enum(["user", "capture"])]) },
132
+ inputSchemaJson: {
133
+ type: "object",
134
+ properties: { time: { oneOf: [{ type: "integer" }, { type: "string", enum: ["user", "capture"] }] }, options: {} },
135
+ required: ["time"],
136
+ additionalProperties: false
137
+ }
138
+ }),
139
+ (0, toolFactory_js_1.createWaapiStubTool)({
140
+ name: "ak.wwise.core.profiler.getAudioObjects",
141
+ title: "Get Audio Objects",
142
+ description: "Get the list of active audio objects at a given profiler cursor time.",
143
+ domain: "profiler",
144
+ risk: "low",
145
+ permissions: ["waapi:profiler"],
146
+ tags: ["waapi", "profiler", "audio-objects"],
147
+ examples: [{ title: "Get audio objects at user cursor", input: { time: "user" } }],
148
+ inputSchema: {
149
+ time: v4_1.z.union([v4_1.z.number().int(), v4_1.z.enum(["user", "capture"])]),
150
+ busPipelineID: v4_1.z.number().int().optional()
151
+ },
152
+ inputSchemaJson: {
153
+ type: "object",
154
+ properties: {
155
+ time: { oneOf: [{ type: "integer" }, { type: "string", enum: ["user", "capture"] }] },
156
+ busPipelineID: { type: "integer" }, options: {}
157
+ },
158
+ required: ["time"],
159
+ additionalProperties: false
160
+ }
161
+ }),
162
+ (0, toolFactory_js_1.createWaapiStubTool)({
163
+ name: "ak.wwise.core.profiler.getBusses",
164
+ title: "Get Busses",
165
+ description: "Get the list of active mixing busses at a given profiler cursor time.",
166
+ domain: "profiler",
167
+ risk: "low",
168
+ permissions: ["waapi:profiler"],
169
+ tags: ["waapi", "profiler", "busses"],
170
+ examples: [{ title: "Get busses at user cursor", input: { time: "user" } }],
171
+ inputSchema: {
172
+ time: v4_1.z.union([v4_1.z.number().int(), v4_1.z.enum(["user", "capture"])]),
173
+ busPipelineID: v4_1.z.number().int().optional()
174
+ },
175
+ inputSchemaJson: {
176
+ type: "object",
177
+ properties: {
178
+ time: { oneOf: [{ type: "integer" }, { type: "string", enum: ["user", "capture"] }] },
179
+ busPipelineID: { type: "integer" }, options: {}
180
+ },
181
+ required: ["time"],
182
+ additionalProperties: false
183
+ }
184
+ }),
185
+ (0, toolFactory_js_1.createWaapiStubTool)({
186
+ name: "ak.wwise.core.profiler.enableProfilerData",
187
+ title: "Enable Profiler Data",
188
+ description: "Enable specific profiler data types to be collected during capture.",
189
+ domain: "profiler",
190
+ risk: "medium",
191
+ permissions: ["waapi:profiler"],
192
+ tags: ["waapi", "profiler", "capture"],
193
+ examples: [{ title: "Enable RTPC profiling", input: { dataTypes: ["RTPC"] } }],
194
+ inputSchema: { dataTypes: v4_1.z.array(v4_1.z.string()).min(1) },
195
+ inputSchemaJson: { type: "object", properties: { dataTypes: { type: "array", minItems: 1, items: { type: "string" } }, options: {} }, required: ["dataTypes"], additionalProperties: false }
196
+ }),
197
+ (0, toolFactory_js_1.createWaapiStubTool)({
198
+ name: "ak.wwise.core.profiler.getRTPCs",
199
+ title: "Get RTPCs",
200
+ description: "Get the RTPC values active at a given profiler cursor time.",
201
+ domain: "profiler",
202
+ risk: "low",
203
+ permissions: ["waapi:profiler"],
204
+ tags: ["waapi", "profiler", "rtpc"],
205
+ examples: [{ title: "Get RTPCs at user cursor", input: { time: "user" } }],
206
+ inputSchema: { time: v4_1.z.union([v4_1.z.number().int(), v4_1.z.enum(["user", "capture"])]) },
207
+ inputSchemaJson: {
208
+ type: "object",
209
+ properties: { time: { oneOf: [{ type: "integer" }, { type: "string", enum: ["user", "capture"] }] }, options: {} },
210
+ required: ["time"],
211
+ additionalProperties: false
212
+ }
213
+ }),
214
+ (0, toolFactory_js_1.createWaapiStubTool)({
215
+ name: "ak.wwise.core.profiler.getLoadedMedia",
216
+ title: "Get Loaded Media",
217
+ description: "Get the media currently loaded into memory at a given profiler time.",
218
+ domain: "profiler",
219
+ risk: "low",
220
+ permissions: ["waapi:profiler"],
221
+ tags: ["waapi", "profiler", "media"],
222
+ examples: [{ title: "Get loaded media at user cursor", input: { time: "user" } }],
223
+ inputSchema: { time: v4_1.z.union([v4_1.z.number().int(), v4_1.z.enum(["user", "capture"])]) },
224
+ inputSchemaJson: {
225
+ type: "object",
226
+ properties: { time: { oneOf: [{ type: "integer" }, { type: "string", enum: ["user", "capture"] }] }, options: {} },
227
+ required: ["time"],
228
+ additionalProperties: false
229
+ }
230
+ }),
231
+ (0, toolFactory_js_1.createWaapiStubTool)({
232
+ name: "ak.wwise.core.profiler.getStreamedMedia",
233
+ title: "Get Streamed Media",
234
+ description: "Get the media currently being streamed at a given profiler time.",
235
+ domain: "profiler",
236
+ risk: "low",
237
+ permissions: ["waapi:profiler"],
238
+ tags: ["waapi", "profiler", "media", "streaming"],
239
+ examples: [{ title: "Get streamed media at user cursor", input: { time: "user" } }],
240
+ inputSchema: { time: v4_1.z.union([v4_1.z.number().int(), v4_1.z.enum(["user", "capture"])]) },
241
+ inputSchemaJson: {
242
+ type: "object",
243
+ properties: { time: { oneOf: [{ type: "integer" }, { type: "string", enum: ["user", "capture"] }] }, options: {} },
244
+ required: ["time"],
245
+ additionalProperties: false
246
+ }
247
+ }),
248
+ (0, toolFactory_js_1.createWaapiStubTool)({
249
+ name: "ak.wwise.core.profiler.getPerformanceMonitor",
250
+ title: "Get Performance Monitor",
251
+ description: "Get performance monitor counters at a given profiler time.",
252
+ domain: "profiler",
253
+ risk: "low",
254
+ permissions: ["waapi:profiler"],
255
+ tags: ["waapi", "profiler", "performance"],
256
+ examples: [{ title: "Get performance counters at user cursor", input: { time: "user" } }],
257
+ inputSchema: { time: v4_1.z.union([v4_1.z.number().int(), v4_1.z.enum(["user", "capture"])]) },
258
+ inputSchemaJson: {
259
+ type: "object",
260
+ properties: { time: { oneOf: [{ type: "integer" }, { type: "string", enum: ["user", "capture"] }] }, options: {} },
261
+ required: ["time"],
262
+ additionalProperties: false
263
+ }
264
+ })
265
+ ];
266
+ }
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProjectTools = getProjectTools;
4
+ const v4_1 = require("zod/v4");
5
+ const toolFactory_js_1 = require("../../lib/toolFactory.js");
6
+ /**
7
+ * Wwise 项目管理工具(ak.wwise.console.project.*)。
8
+ * 支持打开、关闭和保存项目,均为高风险操作且需要 WAAPI 连接。
9
+ */
10
+ function getProjectTools() {
11
+ return [
12
+ (0, toolFactory_js_1.createWaapiStubTool)({
13
+ name: "ak.wwise.console.project.open",
14
+ title: "Open Project",
15
+ description: "Open a Wwise project via console integration.",
16
+ domain: "project",
17
+ risk: "high",
18
+ permissions: ["waapi:project"],
19
+ tags: ["waapi", "project", "open", "stub"],
20
+ examples: [{ title: "Open a project", input: { projectPath: "C:/Projects/GameAudio/GameAudio.wproj" } }],
21
+ inputSchema: {
22
+ projectPath: v4_1.z.string().min(1)
23
+ },
24
+ inputSchemaJson: {
25
+ type: "object",
26
+ properties: {
27
+ projectPath: { type: "string", minLength: 1 }
28
+ },
29
+ required: ["projectPath"],
30
+ additionalProperties: false
31
+ }
32
+ }),
33
+ (0, toolFactory_js_1.createWaapiStubTool)({
34
+ name: "ak.wwise.core.project.save",
35
+ title: "Save Project",
36
+ description: "Save the current Wwise project.",
37
+ domain: "project",
38
+ risk: "high",
39
+ permissions: ["waapi:project"],
40
+ tags: ["waapi", "project", "save", "stub"],
41
+ examples: [{ title: "Save current project" }],
42
+ inputSchemaJson: {
43
+ type: "object",
44
+ properties: {},
45
+ additionalProperties: false
46
+ }
47
+ }),
48
+ (0, toolFactory_js_1.createWaapiStubTool)({
49
+ name: "ak.wwise.ui.project.close",
50
+ title: "Close Project",
51
+ description: "Close the current project from the UI surface.",
52
+ domain: "project",
53
+ risk: "high",
54
+ permissions: ["waapi:project"],
55
+ tags: ["waapi", "project", "close", "stub"],
56
+ examples: [{ title: "Close without prompt", input: { force: true } }],
57
+ inputSchema: {
58
+ force: v4_1.z.boolean().optional()
59
+ },
60
+ inputSchemaJson: {
61
+ type: "object",
62
+ properties: {
63
+ force: { type: "boolean" }
64
+ },
65
+ additionalProperties: false
66
+ }
67
+ }),
68
+ (0, toolFactory_js_1.createWaapiStubTool)({
69
+ name: "ak.wwise.console.project.close",
70
+ title: "Console: Close Project",
71
+ description: "Close the currently loaded project in the Wwise console (CLI).",
72
+ domain: "project",
73
+ risk: "high",
74
+ permissions: ["waapi:authoring:write"],
75
+ tags: ["waapi", "project", "console"],
76
+ examples: [{ title: "Close project from console" }],
77
+ inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
78
+ }),
79
+ (0, toolFactory_js_1.createWaapiStubTool)({
80
+ name: "ak.wwise.console.project.create",
81
+ title: "Console: Create Project",
82
+ description: "Create a new Wwise project via the console (CLI).",
83
+ domain: "project",
84
+ risk: "high",
85
+ permissions: ["waapi:authoring:write"],
86
+ tags: ["waapi", "project", "console"],
87
+ examples: [{ title: "Create a project", input: { path: "C:/Projects/MyGame/MyGame.wproj" } }],
88
+ inputSchema: {
89
+ path: v4_1.z.string().min(1),
90
+ platforms: v4_1.z.array(v4_1.z.string()).optional(),
91
+ languages: v4_1.z.array(v4_1.z.string()).optional()
92
+ },
93
+ inputSchemaJson: {
94
+ type: "object",
95
+ properties: {
96
+ path: { type: "string", minLength: 1 },
97
+ platforms: { type: "array", items: { type: "string" } },
98
+ languages: { type: "array", items: { type: "string" } }, options: {}
99
+ },
100
+ required: ["path"],
101
+ additionalProperties: false
102
+ }
103
+ }),
104
+ (0, toolFactory_js_1.createWaapiStubTool)({
105
+ name: "ak.wwise.ui.project.create",
106
+ title: "UI: Create Project",
107
+ description: "Create a new Wwise project via the Authoring UI.",
108
+ domain: "project",
109
+ risk: "high",
110
+ permissions: ["waapi:authoring:write"],
111
+ tags: ["waapi", "project", "ui"],
112
+ examples: [{ title: "Create project via UI", input: { path: "C:/Projects/MyGame/MyGame.wproj" } }],
113
+ inputSchema: {
114
+ path: v4_1.z.string().min(1),
115
+ platforms: v4_1.z.array(v4_1.z.string()).optional(),
116
+ languages: v4_1.z.array(v4_1.z.string()).optional()
117
+ },
118
+ inputSchemaJson: {
119
+ type: "object",
120
+ properties: {
121
+ path: { type: "string", minLength: 1 },
122
+ platforms: { type: "array", items: { type: "string" } },
123
+ languages: { type: "array", items: { type: "string" } }, options: {}
124
+ },
125
+ required: ["path"],
126
+ additionalProperties: false
127
+ }
128
+ }),
129
+ (0, toolFactory_js_1.createWaapiStubTool)({
130
+ name: "ak.wwise.ui.project.open",
131
+ title: "UI: Open Project",
132
+ description: "Open a Wwise project via the Authoring UI.",
133
+ domain: "project",
134
+ risk: "high",
135
+ permissions: ["waapi:authoring:write"],
136
+ tags: ["waapi", "project", "ui"],
137
+ examples: [{ title: "Open a project", input: { path: "C:/Projects/MyGame/MyGame.wproj" } }],
138
+ inputSchema: {
139
+ path: v4_1.z.string().min(1),
140
+ onMigrationRequired: v4_1.z.enum(["migrate", "fail"]).optional(),
141
+ bypassSave: v4_1.z.boolean().optional(),
142
+ autoCheckOutToSourceControl: v4_1.z.boolean().optional()
143
+ },
144
+ inputSchemaJson: {
145
+ type: "object",
146
+ properties: {
147
+ path: { type: "string", minLength: 1 },
148
+ onMigrationRequired: { type: "string", enum: ["migrate", "fail"] },
149
+ bypassSave: { type: "boolean" },
150
+ autoCheckOutToSourceControl: { type: "boolean" }, options: {}
151
+ },
152
+ required: ["path"],
153
+ additionalProperties: false
154
+ }
155
+ }),
156
+ (0, toolFactory_js_1.createWaapiStubTool)({
157
+ name: "ak.wwise.core.getInfo",
158
+ title: "Get Info",
159
+ description: "Get general information about the running Wwise Authoring instance.",
160
+ domain: "project",
161
+ risk: "low",
162
+ permissions: ["waapi:authoring:read"],
163
+ tags: ["waapi", "project", "info"],
164
+ examples: [{ title: "Get Wwise version and platform info" }],
165
+ inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
166
+ }),
167
+ (0, toolFactory_js_1.createWaapiStubTool)({
168
+ name: "ak.wwise.core.getProjectInfo",
169
+ title: "Get Project Info",
170
+ description: "Get information about the currently loaded Wwise project.",
171
+ domain: "project",
172
+ risk: "low",
173
+ permissions: ["waapi:authoring:read"],
174
+ tags: ["waapi", "project", "info"],
175
+ examples: [{ title: "Get project name and path" }],
176
+ inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
177
+ })
178
+ ];
179
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRemoteTools = getRemoteTools;
4
+ const v4_1 = require("zod/v4");
5
+ const toolFactory_js_1 = require("../../lib/toolFactory.js");
6
+ /**
7
+ * 远程控制台连接工具(ak.wwise.core.remote.*)。
8
+ * 支持连接、断开和列出远程目标,均需要 WAAPI 连接。
9
+ */
10
+ function getRemoteTools() {
11
+ return [
12
+ (0, toolFactory_js_1.createWaapiStubTool)({
13
+ name: "ak.wwise.core.remote.connect",
14
+ title: "Connect Remote",
15
+ description: "Connect the authoring app to a remote console or target.",
16
+ domain: "remote",
17
+ risk: "medium",
18
+ permissions: ["waapi:remote"],
19
+ tags: ["waapi", "remote", "connect", "stub"],
20
+ examples: [{ title: "Connect to a console", input: { host: "127.0.0.1", commandPort: 24024 } }],
21
+ inputSchema: {
22
+ host: v4_1.z.string().min(1),
23
+ commandPort: v4_1.z.number().int().optional()
24
+ },
25
+ inputSchemaJson: {
26
+ type: "object",
27
+ properties: {
28
+ host: { type: "string", minLength: 1 },
29
+ commandPort: { type: "integer" }
30
+ },
31
+ required: ["host"],
32
+ additionalProperties: false
33
+ }
34
+ }),
35
+ (0, toolFactory_js_1.createWaapiStubTool)({
36
+ name: "ak.wwise.core.remote.getAvailableConsoles",
37
+ title: "Get Available Consoles",
38
+ description: "Discover available remote consoles.",
39
+ domain: "remote",
40
+ risk: "low",
41
+ permissions: ["waapi:remote"],
42
+ tags: ["waapi", "remote", "discover", "stub"],
43
+ examples: [{ title: "Scan for consoles" }],
44
+ inputSchemaJson: {
45
+ type: "object",
46
+ properties: {},
47
+ additionalProperties: false
48
+ }
49
+ }),
50
+ (0, toolFactory_js_1.createWaapiStubTool)({
51
+ name: "ak.wwise.core.remote.disconnect",
52
+ title: "Disconnect",
53
+ description: "Disconnect from the currently connected Wwise Sound Engine instance.",
54
+ domain: "remote",
55
+ risk: "medium",
56
+ permissions: ["waapi:remote"],
57
+ tags: ["waapi", "remote", "disconnect"],
58
+ examples: [{ title: "Disconnect from engine" }],
59
+ inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
60
+ }),
61
+ (0, toolFactory_js_1.createWaapiStubTool)({
62
+ name: "ak.wwise.core.remote.getConnectionStatus",
63
+ title: "Get Connection Status",
64
+ description: "Get the current connection status to the Wwise Sound Engine.",
65
+ domain: "remote",
66
+ risk: "low",
67
+ permissions: ["waapi:remote"],
68
+ tags: ["waapi", "remote", "status"],
69
+ examples: [{ title: "Check connection status" }],
70
+ inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
71
+ })
72
+ ];
73
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSoundTools = getSoundTools;
4
+ const v4_1 = require("zod/v4");
5
+ const toolFactory_js_1 = require("../../lib/toolFactory.js");
6
+ /**
7
+ * Sound 对象工具(ak.wwise.core.sound.*)。
8
+ * 支持设置音效对象的活动音频源,需要 WAAPI 连接。
9
+ */
10
+ function getSoundTools() {
11
+ return [
12
+ (0, toolFactory_js_1.createWaapiStubTool)({
13
+ name: "ak.wwise.core.sound.setActiveSource",
14
+ title: "Set Active Source",
15
+ description: "Set the active audio source for a Sound object, optionally per-platform.",
16
+ domain: "sound",
17
+ risk: "high",
18
+ permissions: ["waapi:authoring:write"],
19
+ tags: ["waapi", "sound", "source"],
20
+ examples: [{ title: "Set the active source of a sound", input: { sound: "{SOUND_GUID}", source: "{SOURCE_GUID}" } }],
21
+ inputSchema: {
22
+ sound: v4_1.z.string().min(1),
23
+ source: v4_1.z.string().min(1),
24
+ platform: v4_1.z.string().optional()
25
+ },
26
+ inputSchemaJson: {
27
+ type: "object",
28
+ properties: {
29
+ sound: { type: "string", minLength: 1 },
30
+ source: { type: "string", minLength: 1 },
31
+ platform: { type: "string" }, options: {}
32
+ },
33
+ required: ["sound", "source"],
34
+ additionalProperties: false
35
+ }
36
+ })
37
+ ];
38
+ }