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,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSourceControlTools = getSourceControlTools;
|
|
4
|
+
const v4_1 = require("zod/v4");
|
|
5
|
+
const toolFactory_js_1 = require("../../lib/toolFactory.js");
|
|
6
|
+
/**
|
|
7
|
+
* 源码控制工具(ak.wwise.core.sourceControl.*)。
|
|
8
|
+
* 支持添加、签出、提交、删除、移动、查询状态和还原项目文件,
|
|
9
|
+
* 以及配置源码控制提供程序。均为高风险操作且需要 WAAPI 连接。
|
|
10
|
+
*/
|
|
11
|
+
/** 源码控制文件路径列表 */
|
|
12
|
+
const filesList = v4_1.z.array(v4_1.z.string().min(1)).min(1);
|
|
13
|
+
function getSourceControlTools() {
|
|
14
|
+
return [
|
|
15
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
16
|
+
name: "ak.wwise.core.sourceControl.add",
|
|
17
|
+
title: "Source Control: Add",
|
|
18
|
+
description: "Add files to source control.",
|
|
19
|
+
domain: "sourceControl",
|
|
20
|
+
risk: "high",
|
|
21
|
+
permissions: ["waapi:authoring:write"],
|
|
22
|
+
tags: ["waapi", "sourceControl", "vcs"],
|
|
23
|
+
examples: [{ title: "Add a file to source control", input: { files: ["C:/Project/MySound.wav"] } }],
|
|
24
|
+
inputSchema: { files: filesList },
|
|
25
|
+
inputSchemaJson: {
|
|
26
|
+
type: "object",
|
|
27
|
+
properties: { files: { type: "array", minItems: 1, items: { type: "string", minLength: 1 } }, options: {} },
|
|
28
|
+
required: ["files"],
|
|
29
|
+
additionalProperties: false
|
|
30
|
+
}
|
|
31
|
+
}),
|
|
32
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
33
|
+
name: "ak.wwise.core.sourceControl.checkOut",
|
|
34
|
+
title: "Source Control: Check Out",
|
|
35
|
+
description: "Check out files from source control for editing.",
|
|
36
|
+
domain: "sourceControl",
|
|
37
|
+
risk: "high",
|
|
38
|
+
permissions: ["waapi:authoring:write"],
|
|
39
|
+
tags: ["waapi", "sourceControl", "vcs"],
|
|
40
|
+
examples: [{ title: "Check out a project file", input: { files: ["C:/Project/MyGame.wproj"] } }],
|
|
41
|
+
inputSchema: { files: filesList },
|
|
42
|
+
inputSchemaJson: {
|
|
43
|
+
type: "object",
|
|
44
|
+
properties: { files: { type: "array", minItems: 1, items: { type: "string", minLength: 1 } }, options: {} },
|
|
45
|
+
required: ["files"],
|
|
46
|
+
additionalProperties: false
|
|
47
|
+
}
|
|
48
|
+
}),
|
|
49
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
50
|
+
name: "ak.wwise.core.sourceControl.commit",
|
|
51
|
+
title: "Source Control: Commit",
|
|
52
|
+
description: "Commit files to source control with a message.",
|
|
53
|
+
domain: "sourceControl",
|
|
54
|
+
risk: "high",
|
|
55
|
+
permissions: ["waapi:authoring:write"],
|
|
56
|
+
tags: ["waapi", "sourceControl", "vcs"],
|
|
57
|
+
examples: [{ title: "Commit project changes", input: { files: ["C:/Project/MyGame.wproj"], message: "Updated footstep events" } }],
|
|
58
|
+
inputSchema: { files: filesList, message: v4_1.z.string().min(1) },
|
|
59
|
+
inputSchemaJson: {
|
|
60
|
+
type: "object",
|
|
61
|
+
properties: {
|
|
62
|
+
files: { type: "array", minItems: 1, items: { type: "string", minLength: 1 } },
|
|
63
|
+
message: { type: "string", minLength: 1 }, options: {}
|
|
64
|
+
},
|
|
65
|
+
required: ["files", "message"],
|
|
66
|
+
additionalProperties: false
|
|
67
|
+
}
|
|
68
|
+
}),
|
|
69
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
70
|
+
name: "ak.wwise.core.sourceControl.delete",
|
|
71
|
+
title: "Source Control: Delete",
|
|
72
|
+
description: "Delete files via source control.",
|
|
73
|
+
domain: "sourceControl",
|
|
74
|
+
risk: "high",
|
|
75
|
+
permissions: ["waapi:authoring:write"],
|
|
76
|
+
tags: ["waapi", "sourceControl", "vcs"],
|
|
77
|
+
examples: [{ title: "Delete a file from source control", input: { files: ["C:/Project/OldSound.wav"] } }],
|
|
78
|
+
inputSchema: { files: filesList },
|
|
79
|
+
inputSchemaJson: {
|
|
80
|
+
type: "object",
|
|
81
|
+
properties: { files: { type: "array", minItems: 1, items: { type: "string", minLength: 1 } }, options: {} },
|
|
82
|
+
required: ["files"],
|
|
83
|
+
additionalProperties: false
|
|
84
|
+
}
|
|
85
|
+
}),
|
|
86
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
87
|
+
name: "ak.wwise.core.sourceControl.getSourceFiles",
|
|
88
|
+
title: "Source Control: Get Source Files",
|
|
89
|
+
description: "Get a list of files tracked by source control, with optional folder scope and filter.",
|
|
90
|
+
domain: "sourceControl",
|
|
91
|
+
risk: "low",
|
|
92
|
+
permissions: ["waapi:authoring:read"],
|
|
93
|
+
tags: ["waapi", "sourceControl", "vcs"],
|
|
94
|
+
examples: [{ title: "List all tracked files" }],
|
|
95
|
+
inputSchema: {
|
|
96
|
+
folder: v4_1.z.string().optional(),
|
|
97
|
+
recursive: v4_1.z.boolean().optional(),
|
|
98
|
+
filter: v4_1.z.string().optional()
|
|
99
|
+
},
|
|
100
|
+
inputSchemaJson: {
|
|
101
|
+
type: "object",
|
|
102
|
+
properties: { folder: { type: "string" }, recursive: { type: "boolean" }, filter: { type: "string" } },
|
|
103
|
+
additionalProperties: false
|
|
104
|
+
}
|
|
105
|
+
}),
|
|
106
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
107
|
+
name: "ak.wwise.core.sourceControl.getStatus",
|
|
108
|
+
title: "Source Control: Get Status",
|
|
109
|
+
description: "Get the source control status of the specified files.",
|
|
110
|
+
domain: "sourceControl",
|
|
111
|
+
risk: "low",
|
|
112
|
+
permissions: ["waapi:authoring:read"],
|
|
113
|
+
tags: ["waapi", "sourceControl", "vcs"],
|
|
114
|
+
examples: [{ title: "Check file status", input: { files: ["C:/Project/MyGame.wproj"] } }],
|
|
115
|
+
inputSchema: { files: filesList },
|
|
116
|
+
inputSchemaJson: {
|
|
117
|
+
type: "object",
|
|
118
|
+
properties: { files: { type: "array", minItems: 1, items: { type: "string", minLength: 1 } }, options: {} },
|
|
119
|
+
required: ["files"],
|
|
120
|
+
additionalProperties: false
|
|
121
|
+
}
|
|
122
|
+
}),
|
|
123
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
124
|
+
name: "ak.wwise.core.sourceControl.move",
|
|
125
|
+
title: "Source Control: Move",
|
|
126
|
+
description: "Move files via source control.",
|
|
127
|
+
domain: "sourceControl",
|
|
128
|
+
risk: "high",
|
|
129
|
+
permissions: ["waapi:authoring:write"],
|
|
130
|
+
tags: ["waapi", "sourceControl", "vcs"],
|
|
131
|
+
examples: [{ title: "Move a file", input: { files: ["C:/Old/sound.wav"], newFiles: ["C:/New/sound.wav"] } }],
|
|
132
|
+
inputSchema: { files: filesList, newFiles: filesList },
|
|
133
|
+
inputSchemaJson: {
|
|
134
|
+
type: "object",
|
|
135
|
+
properties: {
|
|
136
|
+
files: { type: "array", minItems: 1, items: { type: "string", minLength: 1 } },
|
|
137
|
+
newFiles: { type: "array", minItems: 1, items: { type: "string", minLength: 1 } }, options: {}
|
|
138
|
+
},
|
|
139
|
+
required: ["files", "newFiles"],
|
|
140
|
+
additionalProperties: false
|
|
141
|
+
}
|
|
142
|
+
}),
|
|
143
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
144
|
+
name: "ak.wwise.core.sourceControl.revert",
|
|
145
|
+
title: "Source Control: Revert",
|
|
146
|
+
description: "Revert local changes and restore files to source control state.",
|
|
147
|
+
domain: "sourceControl",
|
|
148
|
+
risk: "high",
|
|
149
|
+
permissions: ["waapi:authoring:write"],
|
|
150
|
+
tags: ["waapi", "sourceControl", "vcs"],
|
|
151
|
+
examples: [{ title: "Revert a file", input: { files: ["C:/Project/MyGame.wproj"] } }],
|
|
152
|
+
inputSchema: { files: filesList },
|
|
153
|
+
inputSchemaJson: {
|
|
154
|
+
type: "object",
|
|
155
|
+
properties: { files: { type: "array", minItems: 1, items: { type: "string", minLength: 1 } }, options: {} },
|
|
156
|
+
required: ["files"],
|
|
157
|
+
additionalProperties: false
|
|
158
|
+
}
|
|
159
|
+
}),
|
|
160
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
161
|
+
name: "ak.wwise.core.sourceControl.setProvider",
|
|
162
|
+
title: "Source Control: Set Provider",
|
|
163
|
+
description: "Configure the source control provider for the current Wwise project.",
|
|
164
|
+
domain: "sourceControl",
|
|
165
|
+
risk: "high",
|
|
166
|
+
permissions: ["waapi:authoring:write"],
|
|
167
|
+
tags: ["waapi", "sourceControl", "vcs"],
|
|
168
|
+
examples: [{ title: "Configure Perforce", input: { provider: "Perforce", server: "perforce:1666", workspace: "MyWorkspace" } }],
|
|
169
|
+
inputSchema: {
|
|
170
|
+
provider: v4_1.z.string().min(1),
|
|
171
|
+
server: v4_1.z.string().optional(),
|
|
172
|
+
port: v4_1.z.number().int().optional(),
|
|
173
|
+
username: v4_1.z.string().optional(),
|
|
174
|
+
password: v4_1.z.string().optional(),
|
|
175
|
+
workspace: v4_1.z.string().optional(),
|
|
176
|
+
host: v4_1.z.string().optional()
|
|
177
|
+
},
|
|
178
|
+
inputSchemaJson: {
|
|
179
|
+
type: "object",
|
|
180
|
+
properties: {
|
|
181
|
+
provider: { type: "string", minLength: 1 },
|
|
182
|
+
server: { type: "string" }, port: { type: "integer" },
|
|
183
|
+
username: { type: "string" }, password: { type: "string" },
|
|
184
|
+
workspace: { type: "string" }, host: { type: "string" }, options: {}
|
|
185
|
+
},
|
|
186
|
+
required: ["provider"],
|
|
187
|
+
additionalProperties: false
|
|
188
|
+
}
|
|
189
|
+
})
|
|
190
|
+
];
|
|
191
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSwitchContainerTools = getSwitchContainerTools;
|
|
4
|
+
const v4_1 = require("zod/v4");
|
|
5
|
+
const toolFactory_js_1 = require("../../lib/toolFactory.js");
|
|
6
|
+
/**
|
|
7
|
+
* Switch Container 子对象分配工具(ak.wwise.core.switchContainer.*)。
|
|
8
|
+
* 支持添加、查询和删除 Switch Container 的状态/切换分配,均需要 WAAPI 连接。
|
|
9
|
+
*/
|
|
10
|
+
function getSwitchContainerTools() {
|
|
11
|
+
return [
|
|
12
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
13
|
+
name: "ak.wwise.core.switchContainer.addAssignment",
|
|
14
|
+
title: "Add Assignment",
|
|
15
|
+
description: "Add an assignment between a Switch Container child object and a State or Switch value.",
|
|
16
|
+
domain: "switchContainer",
|
|
17
|
+
risk: "high",
|
|
18
|
+
permissions: ["waapi:authoring:write"],
|
|
19
|
+
tags: ["waapi", "switchContainer", "assignment"],
|
|
20
|
+
examples: [{ title: "Assign child to a switch value", input: { child: "{CHILD_GUID}", stateOrSwitch: "{STATE_GUID}" } }],
|
|
21
|
+
inputSchema: { child: v4_1.z.string().min(1), stateOrSwitch: v4_1.z.string().min(1) },
|
|
22
|
+
inputSchemaJson: {
|
|
23
|
+
type: "object",
|
|
24
|
+
properties: { child: { type: "string", minLength: 1 }, stateOrSwitch: { type: "string", minLength: 1 }, options: {} },
|
|
25
|
+
required: ["child", "stateOrSwitch"],
|
|
26
|
+
additionalProperties: false
|
|
27
|
+
}
|
|
28
|
+
}),
|
|
29
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
30
|
+
name: "ak.wwise.core.switchContainer.getAssignments",
|
|
31
|
+
title: "Get Assignments",
|
|
32
|
+
description: "Get the list of switch/state assignments for a Switch Container.",
|
|
33
|
+
domain: "switchContainer",
|
|
34
|
+
risk: "low",
|
|
35
|
+
permissions: ["waapi:authoring:read"],
|
|
36
|
+
tags: ["waapi", "switchContainer", "assignment"],
|
|
37
|
+
examples: [{ title: "Get assignments of a switch container", input: { id: "{SWITCH_CONTAINER_GUID}" } }],
|
|
38
|
+
inputSchema: { id: v4_1.z.string().min(1) },
|
|
39
|
+
inputSchemaJson: {
|
|
40
|
+
type: "object",
|
|
41
|
+
properties: { id: { type: "string", minLength: 1 }, options: {} },
|
|
42
|
+
required: ["id"],
|
|
43
|
+
additionalProperties: false
|
|
44
|
+
}
|
|
45
|
+
}),
|
|
46
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
47
|
+
name: "ak.wwise.core.switchContainer.removeAssignment",
|
|
48
|
+
title: "Remove Assignment",
|
|
49
|
+
description: "Remove an assignment between a Switch Container child object and a State or Switch value.",
|
|
50
|
+
domain: "switchContainer",
|
|
51
|
+
risk: "high",
|
|
52
|
+
permissions: ["waapi:authoring:write"],
|
|
53
|
+
tags: ["waapi", "switchContainer", "assignment"],
|
|
54
|
+
examples: [{ title: "Remove a child assignment", input: { child: "{CHILD_GUID}", stateOrSwitch: "{STATE_GUID}" } }],
|
|
55
|
+
inputSchema: { child: v4_1.z.string().min(1), stateOrSwitch: v4_1.z.string().min(1) },
|
|
56
|
+
inputSchemaJson: {
|
|
57
|
+
type: "object",
|
|
58
|
+
properties: { child: { type: "string", minLength: 1 }, stateOrSwitch: { type: "string", minLength: 1 }, options: {} },
|
|
59
|
+
required: ["child", "stateOrSwitch"],
|
|
60
|
+
additionalProperties: false
|
|
61
|
+
}
|
|
62
|
+
})
|
|
63
|
+
];
|
|
64
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTransportTools = getTransportTools;
|
|
4
|
+
const v4_1 = require("zod/v4");
|
|
5
|
+
const toolFactory_js_1 = require("../../lib/toolFactory.js");
|
|
6
|
+
/**
|
|
7
|
+
* Wwise Authoring 中的传输控制工具(ak.wwise.core.transport.*)。
|
|
8
|
+
* 支持创建、操作和销毁传输对象,均需要 WAAPI 连接。
|
|
9
|
+
*/
|
|
10
|
+
function getTransportTools() {
|
|
11
|
+
return [
|
|
12
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
13
|
+
name: "ak.wwise.core.transport.create",
|
|
14
|
+
title: "Create Transport",
|
|
15
|
+
description: "Create a Wwise transport object for playback control.",
|
|
16
|
+
domain: "transport",
|
|
17
|
+
risk: "medium",
|
|
18
|
+
permissions: ["waapi:authoring:write"],
|
|
19
|
+
tags: ["waapi", "transport", "stub"],
|
|
20
|
+
examples: [{ title: "Create transport for object", input: { object: "{GUID}" } }],
|
|
21
|
+
inputSchema: {
|
|
22
|
+
object: v4_1.z.string().min(1)
|
|
23
|
+
},
|
|
24
|
+
inputSchemaJson: {
|
|
25
|
+
type: "object",
|
|
26
|
+
properties: {
|
|
27
|
+
object: { type: "string", minLength: 1 }
|
|
28
|
+
},
|
|
29
|
+
required: ["object"],
|
|
30
|
+
additionalProperties: false
|
|
31
|
+
}
|
|
32
|
+
}),
|
|
33
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
34
|
+
name: "ak.wwise.core.transport.executeAction",
|
|
35
|
+
title: "Execute Transport Action",
|
|
36
|
+
description: "Run a transport action like play or stop.",
|
|
37
|
+
domain: "transport",
|
|
38
|
+
risk: "medium",
|
|
39
|
+
permissions: ["waapi:authoring:write"],
|
|
40
|
+
tags: ["waapi", "transport", "playback", "stub"],
|
|
41
|
+
examples: [{ title: "Play a transport", input: { transport: 1, action: "play" } }],
|
|
42
|
+
inputSchema: {
|
|
43
|
+
transport: v4_1.z.number().int(),
|
|
44
|
+
action: v4_1.z.string().min(1)
|
|
45
|
+
},
|
|
46
|
+
inputSchemaJson: {
|
|
47
|
+
type: "object",
|
|
48
|
+
properties: {
|
|
49
|
+
transport: { type: "integer" },
|
|
50
|
+
action: { type: "string", minLength: 1 }
|
|
51
|
+
},
|
|
52
|
+
required: ["transport", "action"],
|
|
53
|
+
additionalProperties: false
|
|
54
|
+
}
|
|
55
|
+
}),
|
|
56
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
57
|
+
name: "ak.wwise.core.transport.destroy",
|
|
58
|
+
title: "Destroy Transport",
|
|
59
|
+
description: "Destroy a transport object and free its resources.",
|
|
60
|
+
domain: "transport",
|
|
61
|
+
risk: "medium",
|
|
62
|
+
permissions: ["waapi:authoring:write"],
|
|
63
|
+
tags: ["waapi", "transport"],
|
|
64
|
+
examples: [{ title: "Destroy a transport", input: { transport: 1 } }],
|
|
65
|
+
inputSchema: { transport: v4_1.z.number().int() },
|
|
66
|
+
inputSchemaJson: { type: "object", properties: { transport: { type: "integer" }, options: {} }, required: ["transport"], additionalProperties: false }
|
|
67
|
+
}),
|
|
68
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
69
|
+
name: "ak.wwise.core.transport.getList",
|
|
70
|
+
title: "Get Transport List",
|
|
71
|
+
description: "Get the list of all active transport objects.",
|
|
72
|
+
domain: "transport",
|
|
73
|
+
risk: "low",
|
|
74
|
+
permissions: ["waapi:authoring:read"],
|
|
75
|
+
tags: ["waapi", "transport"],
|
|
76
|
+
examples: [{ title: "List all transports" }],
|
|
77
|
+
inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
|
|
78
|
+
}),
|
|
79
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
80
|
+
name: "ak.wwise.core.transport.getState",
|
|
81
|
+
title: "Get Transport State",
|
|
82
|
+
description: "Get the current playback state of a transport object.",
|
|
83
|
+
domain: "transport",
|
|
84
|
+
risk: "low",
|
|
85
|
+
permissions: ["waapi:authoring:read"],
|
|
86
|
+
tags: ["waapi", "transport"],
|
|
87
|
+
examples: [{ title: "Get state of transport 1", input: { transport: 1 } }],
|
|
88
|
+
inputSchema: { transport: v4_1.z.number().int() },
|
|
89
|
+
inputSchemaJson: { type: "object", properties: { transport: { type: "integer" }, options: {} }, required: ["transport"], additionalProperties: false }
|
|
90
|
+
}),
|
|
91
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
92
|
+
name: "ak.wwise.core.transport.prepare",
|
|
93
|
+
title: "Prepare Transport",
|
|
94
|
+
description: "Prepare an object for transport playback without starting it.",
|
|
95
|
+
domain: "transport",
|
|
96
|
+
risk: "medium",
|
|
97
|
+
permissions: ["waapi:authoring:write"],
|
|
98
|
+
tags: ["waapi", "transport"],
|
|
99
|
+
examples: [{ title: "Prepare object for playback", input: { object: "{GUID}" } }],
|
|
100
|
+
inputSchema: { object: v4_1.z.string().min(1) },
|
|
101
|
+
inputSchemaJson: { type: "object", properties: { object: { type: "string", minLength: 1 }, options: {} }, required: ["object"], additionalProperties: false }
|
|
102
|
+
}),
|
|
103
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
104
|
+
name: "ak.wwise.core.transport.useOriginals",
|
|
105
|
+
title: "Use Originals",
|
|
106
|
+
description: "Toggle whether transport playback uses original audio files instead of converted SoundBanks.",
|
|
107
|
+
domain: "transport",
|
|
108
|
+
risk: "medium",
|
|
109
|
+
permissions: ["waapi:authoring:write"],
|
|
110
|
+
tags: ["waapi", "transport"],
|
|
111
|
+
examples: [{ title: "Enable original files", input: { enable: true } }],
|
|
112
|
+
inputSchema: { enable: v4_1.z.boolean().optional() },
|
|
113
|
+
inputSchemaJson: { type: "object", properties: { enable: { type: "boolean" }, options: {} }, additionalProperties: false }
|
|
114
|
+
})
|
|
115
|
+
];
|
|
116
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUiTools = getUiTools;
|
|
4
|
+
const v4_1 = require("zod/v4");
|
|
5
|
+
const toolFactory_js_1 = require("../../lib/toolFactory.js");
|
|
6
|
+
/**
|
|
7
|
+
* Wwise Authoring UI 交互工具(ak.wwise.ui.*)。
|
|
8
|
+
* 支持读取和设置当前 UI 选中项,均需要 WAAPI 连接。
|
|
9
|
+
*/
|
|
10
|
+
function getUiTools() {
|
|
11
|
+
return [
|
|
12
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
13
|
+
name: "ak.wwise.ui.getSelectedObjects",
|
|
14
|
+
title: "Get Selected Objects",
|
|
15
|
+
description: "Read the current UI selection from Wwise Authoring.",
|
|
16
|
+
domain: "ui",
|
|
17
|
+
risk: "low",
|
|
18
|
+
permissions: ["waapi:authoring:read"],
|
|
19
|
+
tags: ["waapi", "ui", "selection", "stub"],
|
|
20
|
+
examples: [{ title: "Read current selection" }],
|
|
21
|
+
inputSchemaJson: {
|
|
22
|
+
type: "object",
|
|
23
|
+
properties: {},
|
|
24
|
+
additionalProperties: false
|
|
25
|
+
}
|
|
26
|
+
}),
|
|
27
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
28
|
+
name: "ak.wwise.ui.commands.execute",
|
|
29
|
+
title: "Execute UI Command",
|
|
30
|
+
description: "Execute a registered Wwise UI command.",
|
|
31
|
+
domain: "ui",
|
|
32
|
+
risk: "medium",
|
|
33
|
+
permissions: ["waapi:authoring:write"],
|
|
34
|
+
tags: ["waapi", "ui", "command", "stub"],
|
|
35
|
+
examples: [{ title: "Execute a command", input: { command: "FileSave" } }],
|
|
36
|
+
inputSchema: {
|
|
37
|
+
command: v4_1.z.string().min(1)
|
|
38
|
+
},
|
|
39
|
+
inputSchemaJson: {
|
|
40
|
+
type: "object",
|
|
41
|
+
properties: {
|
|
42
|
+
command: { type: "string", minLength: 1 }
|
|
43
|
+
},
|
|
44
|
+
required: ["command"],
|
|
45
|
+
additionalProperties: false
|
|
46
|
+
}
|
|
47
|
+
}),
|
|
48
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
49
|
+
name: "ak.wwise.ui.captureScreen",
|
|
50
|
+
title: "Capture Screen",
|
|
51
|
+
description: "Capture a screenshot of the Wwise UI.",
|
|
52
|
+
domain: "ui",
|
|
53
|
+
risk: "medium",
|
|
54
|
+
permissions: ["waapi:authoring:write"],
|
|
55
|
+
tags: ["waapi", "ui", "screenshot", "stub"],
|
|
56
|
+
examples: [{ title: "Capture the authoring window", input: { path: "C:/temp/wwise.png" } }],
|
|
57
|
+
inputSchema: {
|
|
58
|
+
path: v4_1.z.string().min(1)
|
|
59
|
+
},
|
|
60
|
+
inputSchemaJson: {
|
|
61
|
+
type: "object",
|
|
62
|
+
properties: {
|
|
63
|
+
path: { type: "string", minLength: 1 }
|
|
64
|
+
},
|
|
65
|
+
required: ["path"],
|
|
66
|
+
additionalProperties: false
|
|
67
|
+
}
|
|
68
|
+
}),
|
|
69
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
70
|
+
name: "ak.wwise.ui.bringToForeground",
|
|
71
|
+
title: "Bring to Foreground",
|
|
72
|
+
description: "Bring the Wwise Authoring window to the foreground.",
|
|
73
|
+
domain: "ui",
|
|
74
|
+
risk: "low",
|
|
75
|
+
permissions: ["waapi:authoring:read"],
|
|
76
|
+
tags: ["waapi", "ui", "window"],
|
|
77
|
+
examples: [{ title: "Focus the Wwise window" }],
|
|
78
|
+
inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
|
|
79
|
+
}),
|
|
80
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
81
|
+
name: "ak.wwise.ui.commands.getCommands",
|
|
82
|
+
title: "Get Commands",
|
|
83
|
+
description: "Get the list of registered custom commands in the Wwise UI.",
|
|
84
|
+
domain: "ui",
|
|
85
|
+
risk: "low",
|
|
86
|
+
permissions: ["waapi:authoring:read"],
|
|
87
|
+
tags: ["waapi", "ui", "commands"],
|
|
88
|
+
examples: [{ title: "List all registered commands" }],
|
|
89
|
+
inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
|
|
90
|
+
}),
|
|
91
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
92
|
+
name: "ak.wwise.ui.commands.register",
|
|
93
|
+
title: "Register Commands",
|
|
94
|
+
description: "Register custom commands in the Wwise Authoring UI.",
|
|
95
|
+
domain: "ui",
|
|
96
|
+
risk: "medium",
|
|
97
|
+
permissions: ["waapi:authoring:write"],
|
|
98
|
+
tags: ["waapi", "ui", "commands"],
|
|
99
|
+
examples: [{ title: "Register a custom command", input: { commands: [{ id: "MyPlugin.MyCommand", displayName: "Do Thing", program: "cmd.exe" }] } }],
|
|
100
|
+
inputSchema: { commands: v4_1.z.array(v4_1.z.unknown()).min(1) },
|
|
101
|
+
inputSchemaJson: {
|
|
102
|
+
type: "object",
|
|
103
|
+
properties: { commands: { type: "array", minItems: 1, items: {} }, options: {} },
|
|
104
|
+
required: ["commands"],
|
|
105
|
+
additionalProperties: false
|
|
106
|
+
}
|
|
107
|
+
}),
|
|
108
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
109
|
+
name: "ak.wwise.ui.commands.unregister",
|
|
110
|
+
title: "Unregister Commands",
|
|
111
|
+
description: "Unregister previously registered custom commands from the Wwise UI.",
|
|
112
|
+
domain: "ui",
|
|
113
|
+
risk: "medium",
|
|
114
|
+
permissions: ["waapi:authoring:write"],
|
|
115
|
+
tags: ["waapi", "ui", "commands"],
|
|
116
|
+
examples: [{ title: "Unregister a command", input: { commands: ["MyPlugin.MyCommand"] } }],
|
|
117
|
+
inputSchema: { commands: v4_1.z.array(v4_1.z.string().min(1)).min(1) },
|
|
118
|
+
inputSchemaJson: {
|
|
119
|
+
type: "object",
|
|
120
|
+
properties: { commands: { type: "array", minItems: 1, items: { type: "string", minLength: 1 } }, options: {} },
|
|
121
|
+
required: ["commands"],
|
|
122
|
+
additionalProperties: false
|
|
123
|
+
}
|
|
124
|
+
})
|
|
125
|
+
];
|
|
126
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUndoTools = getUndoTools;
|
|
4
|
+
const v4_1 = require("zod/v4");
|
|
5
|
+
const toolFactory_js_1 = require("../../lib/toolFactory.js");
|
|
6
|
+
/**
|
|
7
|
+
* Undo 操作组管理工具(ak.wwise.core.undo.*)。
|
|
8
|
+
* 支持开始/提交/取消 Undo 分组,以及撤销/重做操作,均需要 WAAPI 连接。
|
|
9
|
+
*/
|
|
10
|
+
function getUndoTools() {
|
|
11
|
+
return [
|
|
12
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
13
|
+
name: "ak.wwise.core.undo.beginGroup",
|
|
14
|
+
title: "Begin Undo Group",
|
|
15
|
+
description: "Begin a new undo group. All changes made until endGroup or cancelGroup will be grouped into a single undo step.",
|
|
16
|
+
domain: "undo",
|
|
17
|
+
risk: "medium",
|
|
18
|
+
permissions: ["waapi:authoring:write"],
|
|
19
|
+
tags: ["waapi", "undo"],
|
|
20
|
+
examples: [{ title: "Start grouping undo steps" }],
|
|
21
|
+
inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
|
|
22
|
+
}),
|
|
23
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
24
|
+
name: "ak.wwise.core.undo.cancelGroup",
|
|
25
|
+
title: "Cancel Undo Group",
|
|
26
|
+
description: "Cancel the current undo group without committing changes, optionally undoing already-made changes.",
|
|
27
|
+
domain: "undo",
|
|
28
|
+
risk: "high",
|
|
29
|
+
permissions: ["waapi:authoring:write"],
|
|
30
|
+
tags: ["waapi", "undo"],
|
|
31
|
+
examples: [{ title: "Cancel and revert group changes", input: { undo: true } }],
|
|
32
|
+
inputSchema: { undo: v4_1.z.boolean().optional() },
|
|
33
|
+
inputSchemaJson: { type: "object", properties: { undo: { type: "boolean" } }, additionalProperties: false }
|
|
34
|
+
}),
|
|
35
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
36
|
+
name: "ak.wwise.core.undo.endGroup",
|
|
37
|
+
title: "End Undo Group",
|
|
38
|
+
description: "Commit the current undo group with a display name visible in the Edit menu.",
|
|
39
|
+
domain: "undo",
|
|
40
|
+
risk: "medium",
|
|
41
|
+
permissions: ["waapi:authoring:write"],
|
|
42
|
+
tags: ["waapi", "undo"],
|
|
43
|
+
examples: [{ title: "Commit group with label", input: { displayName: "Batch Property Update" } }],
|
|
44
|
+
inputSchema: { displayName: v4_1.z.string().min(1) },
|
|
45
|
+
inputSchemaJson: {
|
|
46
|
+
type: "object",
|
|
47
|
+
properties: { displayName: { type: "string", minLength: 1 }, options: {} },
|
|
48
|
+
required: ["displayName"],
|
|
49
|
+
additionalProperties: false
|
|
50
|
+
}
|
|
51
|
+
}),
|
|
52
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
53
|
+
name: "ak.wwise.core.undo.redo",
|
|
54
|
+
title: "Redo",
|
|
55
|
+
description: "Redo the last undone action.",
|
|
56
|
+
domain: "undo",
|
|
57
|
+
risk: "high",
|
|
58
|
+
permissions: ["waapi:authoring:write"],
|
|
59
|
+
tags: ["waapi", "undo", "redo"],
|
|
60
|
+
examples: [{ title: "Redo last action" }],
|
|
61
|
+
inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
|
|
62
|
+
}),
|
|
63
|
+
(0, toolFactory_js_1.createWaapiStubTool)({
|
|
64
|
+
name: "ak.wwise.core.undo.undo",
|
|
65
|
+
title: "Undo",
|
|
66
|
+
description: "Undo the last action.",
|
|
67
|
+
domain: "undo",
|
|
68
|
+
risk: "high",
|
|
69
|
+
permissions: ["waapi:authoring:write"],
|
|
70
|
+
tags: ["waapi", "undo"],
|
|
71
|
+
examples: [{ title: "Undo last action" }],
|
|
72
|
+
inputSchemaJson: { type: "object", properties: {}, additionalProperties: false }
|
|
73
|
+
})
|
|
74
|
+
];
|
|
75
|
+
}
|