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.
- package/LICENSE +19 -0
- package/README.md +221 -0
- package/README_ZH.md +221 -0
- package/config/domains.json +130 -0
- package/config/runtime.json +4 -0
- package/dist/src/core/server.js +80 -0
- package/dist/src/core/transport.js +92 -0
- package/dist/src/domains/audio/tools.js +193 -0
- package/dist/src/domains/catalog/tools.js +198 -0
- package/dist/src/domains/debug/tools.js +139 -0
- package/dist/src/domains/example/tools.js +56 -0
- package/dist/src/domains/log/tools.js +79 -0
- package/dist/src/domains/object/tools.js +499 -0
- package/dist/src/domains/plugin/tools.js +45 -0
- package/dist/src/domains/profiler/tools.js +266 -0
- package/dist/src/domains/project/tools.js +179 -0
- package/dist/src/domains/remote/tools.js +73 -0
- package/dist/src/domains/sound/tools.js +38 -0
- package/dist/src/domains/soundbank/tools.js +137 -0
- package/dist/src/domains/soundengine/tools.js +529 -0
- package/dist/src/domains/sourceControl/tools.js +191 -0
- package/dist/src/domains/switchContainer/tools.js +64 -0
- package/dist/src/domains/transport/tools.js +116 -0
- package/dist/src/domains/ui/tools.js +126 -0
- package/dist/src/domains/undo/tools.js +75 -0
- package/dist/src/index.js +95 -0
- package/dist/src/lib/errors.js +31 -0
- package/dist/src/lib/logger.js +43 -0
- package/dist/src/lib/referenceCatalog.js +167 -0
- package/dist/src/lib/response.js +88 -0
- package/dist/src/lib/runtimePaths.js +21 -0
- package/dist/src/lib/toolFactory.js +73 -0
- package/dist/src/lib/waapiClient.js +97 -0
- package/dist/src/lib/waapiSchemaResolver.js +120 -0
- package/dist/src/registry/toolRegistry.js +180 -0
- package/dist/src/registry/types.js +2 -0
- package/dist/tests/verify.js +119 -0
- 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
|
+
}
|