@downcity/plugins 1.0.56 → 1.0.57
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/bin/BuiltinPlugins.d.ts.map +1 -1
- package/bin/BuiltinPlugins.js +0 -4
- package/bin/BuiltinPlugins.js.map +1 -1
- package/bin/asr/Plugin.d.ts +67 -7
- package/bin/asr/Plugin.d.ts.map +1 -1
- package/bin/asr/Plugin.js +229 -461
- package/bin/asr/Plugin.js.map +1 -1
- package/bin/asr/types/AsrPlugin.d.ts +114 -0
- package/bin/asr/types/AsrPlugin.d.ts.map +1 -0
- package/bin/asr/types/AsrPlugin.js +10 -0
- package/bin/asr/types/AsrPlugin.js.map +1 -0
- package/bin/image/ImagePlugin.d.ts +1 -1
- package/bin/image/ImagePlugin.d.ts.map +1 -1
- package/bin/image/ImagePlugin.js +23 -5
- package/bin/image/ImagePlugin.js.map +1 -1
- package/bin/index.d.ts +2 -0
- package/bin/index.d.ts.map +1 -1
- package/bin/tts/Plugin.d.ts +53 -6
- package/bin/tts/Plugin.d.ts.map +1 -1
- package/bin/tts/Plugin.js +197 -474
- package/bin/tts/Plugin.js.map +1 -1
- package/bin/tts/types/TtsPlugin.d.ts +63 -102
- package/bin/tts/types/TtsPlugin.d.ts.map +1 -1
- package/bin/tts/types/TtsPlugin.js +4 -3
- package/bin/tts/types/TtsPlugin.js.map +1 -1
- package/bin/web/PROMPT.d.ts +1 -1
- package/bin/web/PROMPT.d.ts.map +1 -1
- package/bin/web/PROMPT.js +1 -1
- package/bin/web/PROMPT.js.map +1 -1
- package/bin/web/Plugin.d.ts +66 -5
- package/bin/web/Plugin.d.ts.map +1 -1
- package/bin/web/Plugin.js +126 -450
- package/bin/web/Plugin.js.map +1 -1
- package/bin/web/WebPromptAssets.d.ts +1 -9
- package/bin/web/WebPromptAssets.d.ts.map +1 -1
- package/bin/web/WebPromptAssets.js +1 -11
- package/bin/web/WebPromptAssets.js.map +1 -1
- package/bin/web/runtime/Install.d.ts +19 -0
- package/bin/web/runtime/Install.d.ts.map +1 -0
- package/bin/web/runtime/Install.js +178 -0
- package/bin/web/runtime/Install.js.map +1 -0
- package/bin/web/types/WebPlugin.d.ts +37 -109
- package/bin/web/types/WebPlugin.d.ts.map +1 -1
- package/bin/web/types/WebPlugin.js +5 -7
- package/bin/web/types/WebPlugin.js.map +1 -1
- package/package.json +2 -2
- package/src/BuiltinPlugins.ts +0 -4
- package/src/asr/Plugin.ts +264 -483
- package/src/asr/types/AsrPlugin.ts +118 -0
- package/src/image/ImagePlugin.ts +23 -5
- package/src/index.ts +12 -0
- package/src/tts/Plugin.ts +225 -492
- package/src/tts/types/TtsPlugin.ts +67 -102
- package/src/web/PROMPT.ts +1 -1
- package/src/web/PROMPT.ts.txt +32 -6
- package/src/web/Plugin.ts +119 -453
- package/src/web/WebPromptAssets.ts +1 -13
- package/src/web/runtime/Install.ts +241 -0
- package/src/web/types/WebPlugin.ts +37 -113
- package/bin/asr/Config.d.ts +0 -43
- package/bin/asr/Config.d.ts.map +0 -1
- package/bin/asr/Config.js +0 -107
- package/bin/asr/Config.js.map +0 -1
- package/bin/asr/Dependency.d.ts +0 -77
- package/bin/asr/Dependency.d.ts.map +0 -1
- package/bin/asr/Dependency.js +0 -238
- package/bin/asr/Dependency.js.map +0 -1
- package/bin/asr/InboundAugment.d.ts +0 -17
- package/bin/asr/InboundAugment.d.ts.map +0 -1
- package/bin/asr/InboundAugment.js +0 -47
- package/bin/asr/InboundAugment.js.map +0 -1
- package/bin/asr/ModelCatalog.d.ts +0 -29
- package/bin/asr/ModelCatalog.d.ts.map +0 -1
- package/bin/asr/ModelCatalog.js +0 -25
- package/bin/asr/ModelCatalog.js.map +0 -1
- package/bin/tts/Dependency.d.ts +0 -90
- package/bin/tts/Dependency.d.ts.map +0 -1
- package/bin/tts/Dependency.js +0 -344
- package/bin/tts/Dependency.js.map +0 -1
- package/bin/tts/PluginSupport.d.ts +0 -25
- package/bin/tts/PluginSupport.d.ts.map +0 -1
- package/bin/tts/PluginSupport.js +0 -72
- package/bin/tts/PluginSupport.js.map +0 -1
- package/bin/tts/runtime/Catalog.d.ts +0 -21
- package/bin/tts/runtime/Catalog.d.ts.map +0 -1
- package/bin/tts/runtime/Catalog.js +0 -90
- package/bin/tts/runtime/Catalog.js.map +0 -1
- package/bin/tts/runtime/DependencyInstaller.d.ts +0 -143
- package/bin/tts/runtime/DependencyInstaller.d.ts.map +0 -1
- package/bin/tts/runtime/DependencyInstaller.js +0 -261
- package/bin/tts/runtime/DependencyInstaller.js.map +0 -1
- package/bin/tts/runtime/Installer.d.ts +0 -89
- package/bin/tts/runtime/Installer.d.ts.map +0 -1
- package/bin/tts/runtime/Installer.js +0 -188
- package/bin/tts/runtime/Installer.js.map +0 -1
- package/bin/tts/runtime/Paths.d.ts +0 -20
- package/bin/tts/runtime/Paths.d.ts.map +0 -1
- package/bin/tts/runtime/Paths.js +0 -32
- package/bin/tts/runtime/Paths.js.map +0 -1
- package/bin/tts/runtime/Synthesizer.d.ts +0 -44
- package/bin/tts/runtime/Synthesizer.d.ts.map +0 -1
- package/bin/tts/runtime/Synthesizer.js +0 -363
- package/bin/tts/runtime/Synthesizer.js.map +0 -1
- package/bin/tts/types/Tts.d.ts +0 -91
- package/bin/tts/types/Tts.d.ts.map +0 -1
- package/bin/tts/types/Tts.js +0 -9
- package/bin/tts/types/Tts.js.map +0 -1
- package/bin/voice/Config.d.ts +0 -43
- package/bin/voice/Config.d.ts.map +0 -1
- package/bin/voice/Config.js +0 -104
- package/bin/voice/Config.js.map +0 -1
- package/bin/voice/Dependency.d.ts +0 -77
- package/bin/voice/Dependency.d.ts.map +0 -1
- package/bin/voice/Dependency.js +0 -237
- package/bin/voice/Dependency.js.map +0 -1
- package/bin/voice/InboundAugment.d.ts +0 -17
- package/bin/voice/InboundAugment.d.ts.map +0 -1
- package/bin/voice/InboundAugment.js +0 -47
- package/bin/voice/InboundAugment.js.map +0 -1
- package/bin/voice/ModelCatalog.d.ts +0 -29
- package/bin/voice/ModelCatalog.d.ts.map +0 -1
- package/bin/voice/ModelCatalog.js +0 -25
- package/bin/voice/ModelCatalog.js.map +0 -1
- package/bin/voice/runtime/Catalog.d.ts +0 -18
- package/bin/voice/runtime/Catalog.d.ts.map +0 -1
- package/bin/voice/runtime/Catalog.js +0 -61
- package/bin/voice/runtime/Catalog.js.map +0 -1
- package/bin/voice/runtime/DependencyInstaller.d.ts +0 -145
- package/bin/voice/runtime/DependencyInstaller.d.ts.map +0 -1
- package/bin/voice/runtime/DependencyInstaller.js +0 -309
- package/bin/voice/runtime/DependencyInstaller.js.map +0 -1
- package/bin/voice/runtime/Installer.d.ts +0 -94
- package/bin/voice/runtime/Installer.d.ts.map +0 -1
- package/bin/voice/runtime/Installer.js +0 -200
- package/bin/voice/runtime/Installer.js.map +0 -1
- package/bin/voice/runtime/Paths.d.ts +0 -8
- package/bin/voice/runtime/Paths.d.ts.map +0 -1
- package/bin/voice/runtime/Paths.js +0 -26
- package/bin/voice/runtime/Paths.js.map +0 -1
- package/bin/voice/runtime/Transcriber.d.ts +0 -57
- package/bin/voice/runtime/Transcriber.d.ts.map +0 -1
- package/bin/voice/runtime/Transcriber.js +0 -329
- package/bin/voice/runtime/Transcriber.js.map +0 -1
- package/bin/voice/types/Voice.d.ts +0 -58
- package/bin/voice/types/Voice.d.ts.map +0 -1
- package/bin/voice/types/Voice.js +0 -9
- package/bin/voice/types/Voice.js.map +0 -1
- package/bin/voice/types/VoicePlugin.d.ts +0 -190
- package/bin/voice/types/VoicePlugin.d.ts.map +0 -1
- package/bin/voice/types/VoicePlugin.js +0 -9
- package/bin/voice/types/VoicePlugin.js.map +0 -1
- package/bin/web/Dependency.d.ts +0 -10
- package/bin/web/Dependency.d.ts.map +0 -1
- package/bin/web/Dependency.js +0 -10
- package/bin/web/Dependency.js.map +0 -1
- package/bin/web/PROMPT.agent-browser.d.ts +0 -7
- package/bin/web/PROMPT.agent-browser.d.ts.map +0 -1
- package/bin/web/PROMPT.agent-browser.js +0 -8
- package/bin/web/PROMPT.agent-browser.js.map +0 -1
- package/bin/web/PROMPT.web-access.d.ts +0 -7
- package/bin/web/PROMPT.web-access.d.ts.map +0 -1
- package/bin/web/PROMPT.web-access.js +0 -8
- package/bin/web/PROMPT.web-access.js.map +0 -1
- package/bin/web/runtime/Config.d.ts +0 -21
- package/bin/web/runtime/Config.d.ts.map +0 -1
- package/bin/web/runtime/Config.js +0 -79
- package/bin/web/runtime/Config.js.map +0 -1
- package/bin/web/runtime/Source.d.ts +0 -29
- package/bin/web/runtime/Source.d.ts.map +0 -1
- package/bin/web/runtime/Source.js +0 -209
- package/bin/web/runtime/Source.js.map +0 -1
- package/src/asr/Config.ts +0 -138
- package/src/asr/Dependency.ts +0 -336
- package/src/asr/InboundAugment.ts +0 -59
- package/src/asr/ModelCatalog.ts +0 -43
- package/src/tts/Dependency.ts +0 -473
- package/src/tts/PluginSupport.ts +0 -85
- package/src/tts/runtime/Catalog.ts +0 -97
- package/src/tts/runtime/DependencyInstaller.ts +0 -436
- package/src/tts/runtime/Installer.ts +0 -297
- package/src/tts/runtime/Paths.ts +0 -39
- package/src/tts/runtime/Synthesizer.ts +0 -480
- package/src/tts/types/Tts.ts +0 -99
- package/src/voice/Config.ts +0 -135
- package/src/voice/Dependency.ts +0 -329
- package/src/voice/InboundAugment.ts +0 -59
- package/src/voice/ModelCatalog.ts +0 -43
- package/src/voice/runtime/Catalog.ts +0 -68
- package/src/voice/runtime/DependencyInstaller.ts +0 -505
- package/src/voice/runtime/Installer.ts +0 -324
- package/src/voice/runtime/Paths.ts +0 -26
- package/src/voice/runtime/Transcriber.ts +0 -467
- package/src/voice/types/Voice.ts +0 -68
- package/src/voice/types/VoicePlugin.ts +0 -194
- package/src/web/Dependency.ts +0 -17
- package/src/web/PROMPT.agent-browser.ts +0 -9
- package/src/web/PROMPT.agent-browser.ts.txt +0 -17
- package/src/web/PROMPT.web-access.ts +0 -9
- package/src/web/PROMPT.web-access.ts.txt +0 -13
- package/src/web/runtime/Config.ts +0 -105
- package/src/web/runtime/Source.ts +0 -257
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebPlugin 安装器。
|
|
3
|
+
*
|
|
4
|
+
* 关键点(中文)
|
|
5
|
+
* - install 只负责准备联网相关 skill / CLI 依赖,不写 provider 配置。
|
|
6
|
+
* - skill 安装复用 SkillPlugin 的 `npx skills` 通道,避免 web 自建 registry。
|
|
7
|
+
* - agent-browser 额外准备 npm CLI 包,因为其 skill 需要 `agent-browser` 命令可用。
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { execa } from "execa";
|
|
11
|
+
import fs from "node:fs";
|
|
12
|
+
import path from "node:path";
|
|
13
|
+
import type {
|
|
14
|
+
JsonObject,
|
|
15
|
+
JsonValue,
|
|
16
|
+
} from "@downcity/agent/internal/types/common/Json.js";
|
|
17
|
+
import type { AgentContext } from "@downcity/agent/internal/types/runtime/agent/AgentContext.js";
|
|
18
|
+
import { skillInstallCommand } from "@/skill/Command.js";
|
|
19
|
+
import type {
|
|
20
|
+
WebPluginInstallPayload,
|
|
21
|
+
WebPluginInstallScope,
|
|
22
|
+
WebPluginInstallTarget,
|
|
23
|
+
} from "@/web/types/WebPlugin.js";
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* 单个安装步骤结果。
|
|
27
|
+
*/
|
|
28
|
+
interface WebPluginInstallStep {
|
|
29
|
+
/**
|
|
30
|
+
* 步骤名称。
|
|
31
|
+
*/
|
|
32
|
+
name: string;
|
|
33
|
+
/**
|
|
34
|
+
* 步骤是否成功。
|
|
35
|
+
*/
|
|
36
|
+
success: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* 人类可读说明。
|
|
39
|
+
*/
|
|
40
|
+
message: string;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* 读取字符串字段。
|
|
45
|
+
*/
|
|
46
|
+
function read_string(value: JsonValue | undefined): string | undefined {
|
|
47
|
+
if (typeof value !== "string") return undefined;
|
|
48
|
+
const trimmed = value.trim();
|
|
49
|
+
return trimmed || undefined;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* 读取布尔字段。
|
|
54
|
+
*/
|
|
55
|
+
function read_boolean(value: JsonValue | undefined): boolean | undefined {
|
|
56
|
+
return typeof value === "boolean" ? value : undefined;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* 归一化安装目标。
|
|
61
|
+
*/
|
|
62
|
+
function resolve_install_target(value: JsonValue | undefined): WebPluginInstallTarget {
|
|
63
|
+
const target = read_string(value);
|
|
64
|
+
if (target === "web-access" || target === "agent-browser" || target === "all") {
|
|
65
|
+
return target;
|
|
66
|
+
}
|
|
67
|
+
return "web-access";
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* 归一化安装作用域。
|
|
72
|
+
*/
|
|
73
|
+
function resolve_install_scope(value: JsonValue | undefined): WebPluginInstallScope {
|
|
74
|
+
const scope = read_string(value);
|
|
75
|
+
return scope === "project" ? "project" : "user";
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* 判断命令是否已经可用。
|
|
80
|
+
*/
|
|
81
|
+
async function command_exists(command: string): Promise<boolean> {
|
|
82
|
+
try {
|
|
83
|
+
const result = await execa(command, ["--help"], {
|
|
84
|
+
reject: false,
|
|
85
|
+
timeout: 15_000,
|
|
86
|
+
});
|
|
87
|
+
return (result.exitCode ?? 1) === 0;
|
|
88
|
+
} catch {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* 执行 npm 包安装。
|
|
95
|
+
*/
|
|
96
|
+
async function install_npm_package(params: {
|
|
97
|
+
root_path: string;
|
|
98
|
+
package_name: string;
|
|
99
|
+
scope: WebPluginInstallScope;
|
|
100
|
+
}): Promise<void> {
|
|
101
|
+
if (params.scope === "project") {
|
|
102
|
+
const package_manager = resolve_project_package_manager(params.root_path);
|
|
103
|
+
const args =
|
|
104
|
+
package_manager === "pnpm"
|
|
105
|
+
? ["add", "-D", params.package_name]
|
|
106
|
+
: package_manager === "yarn"
|
|
107
|
+
? ["add", "-D", params.package_name]
|
|
108
|
+
: ["install", "--save-dev", params.package_name];
|
|
109
|
+
await execa(package_manager, args, {
|
|
110
|
+
cwd: params.root_path,
|
|
111
|
+
stdio: "inherit",
|
|
112
|
+
});
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
await execa("npm", ["install", "-g", params.package_name], {
|
|
117
|
+
stdio: "inherit",
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* 根据锁文件推断项目包管理器。
|
|
123
|
+
*/
|
|
124
|
+
function resolve_project_package_manager(root_path: string): "pnpm" | "yarn" | "npm" {
|
|
125
|
+
if (fs.existsSync(path.join(root_path, "pnpm-lock.yaml"))) return "pnpm";
|
|
126
|
+
if (fs.existsSync(path.join(root_path, "yarn.lock"))) return "yarn";
|
|
127
|
+
return "npm";
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* 将步骤列表转成 JSON。
|
|
132
|
+
*/
|
|
133
|
+
function serialize_steps(steps: WebPluginInstallStep[]): JsonValue[] {
|
|
134
|
+
return steps.map((step) => ({
|
|
135
|
+
name: step.name,
|
|
136
|
+
success: step.success,
|
|
137
|
+
message: step.message,
|
|
138
|
+
}));
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* 安装 skill。
|
|
143
|
+
*/
|
|
144
|
+
async function install_skill(params: {
|
|
145
|
+
spec: string;
|
|
146
|
+
scope: WebPluginInstallScope;
|
|
147
|
+
yes: boolean;
|
|
148
|
+
agent: string;
|
|
149
|
+
steps: WebPluginInstallStep[];
|
|
150
|
+
}): Promise<void> {
|
|
151
|
+
await skillInstallCommand(params.spec, {
|
|
152
|
+
global: params.scope === "user",
|
|
153
|
+
yes: params.yes,
|
|
154
|
+
agent: params.agent,
|
|
155
|
+
});
|
|
156
|
+
params.steps.push({
|
|
157
|
+
name: `${params.spec}:skill`,
|
|
158
|
+
success: true,
|
|
159
|
+
message:
|
|
160
|
+
params.scope === "user"
|
|
161
|
+
? `Installed ${params.spec} skill in user scope.`
|
|
162
|
+
: `Installed ${params.spec} skill in project scope.`,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* 准备 agent-browser CLI。
|
|
168
|
+
*/
|
|
169
|
+
async function install_agent_browser_cli(params: {
|
|
170
|
+
context: AgentContext;
|
|
171
|
+
scope: WebPluginInstallScope;
|
|
172
|
+
steps: WebPluginInstallStep[];
|
|
173
|
+
}): Promise<void> {
|
|
174
|
+
if (await command_exists("agent-browser")) {
|
|
175
|
+
params.steps.push({
|
|
176
|
+
name: "agent-browser:cli",
|
|
177
|
+
success: true,
|
|
178
|
+
message: "agent-browser CLI is already available.",
|
|
179
|
+
});
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
await install_npm_package({
|
|
184
|
+
root_path: params.context.rootPath,
|
|
185
|
+
package_name: "agent-browser",
|
|
186
|
+
scope: params.scope,
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
params.steps.push({
|
|
190
|
+
name: "agent-browser:cli",
|
|
191
|
+
success: true,
|
|
192
|
+
message:
|
|
193
|
+
params.scope === "user"
|
|
194
|
+
? "Installed agent-browser CLI globally with npm."
|
|
195
|
+
: "Installed agent-browser as a project devDependency.",
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* 执行 WebPlugin install action。
|
|
201
|
+
*/
|
|
202
|
+
export async function installWebPluginTargets(params: {
|
|
203
|
+
context: AgentContext;
|
|
204
|
+
payload?: WebPluginInstallPayload | null;
|
|
205
|
+
}): Promise<JsonObject> {
|
|
206
|
+
const payload = params.payload || {};
|
|
207
|
+
const target = resolve_install_target(payload.target);
|
|
208
|
+
const scope = resolve_install_scope(payload.scope);
|
|
209
|
+
const yes = read_boolean(payload.yes) ?? true;
|
|
210
|
+
const agent = read_string(payload.agent) || "claude-code";
|
|
211
|
+
const targets =
|
|
212
|
+
target === "all" ? (["web-access", "agent-browser"] as const) : ([target] as const);
|
|
213
|
+
const steps: WebPluginInstallStep[] = [];
|
|
214
|
+
|
|
215
|
+
for (const item of targets) {
|
|
216
|
+
await install_skill({
|
|
217
|
+
spec: item,
|
|
218
|
+
scope,
|
|
219
|
+
yes,
|
|
220
|
+
agent,
|
|
221
|
+
steps,
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
if (item === "agent-browser") {
|
|
225
|
+
await install_agent_browser_cli({
|
|
226
|
+
context: params.context,
|
|
227
|
+
scope,
|
|
228
|
+
steps,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
return {
|
|
234
|
+
target,
|
|
235
|
+
scope,
|
|
236
|
+
agent,
|
|
237
|
+
steps: serialize_steps(steps),
|
|
238
|
+
nextAction:
|
|
239
|
+
"Use SkillPlugin lookup/list to inspect installed skills, then let the agent choose the concrete web path during task execution.",
|
|
240
|
+
};
|
|
241
|
+
}
|
|
@@ -1,141 +1,65 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* WebPlugin 协议类型。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
5
|
+
* - web plugin 只注入联网方法论,不维护 provider 运行态。
|
|
6
|
+
* - install action 仅用于准备联网相关 skill 与工具依赖。
|
|
7
|
+
* - target 表示要准备的联网能力,不表示 agent 运行时默认选择。
|
|
7
8
|
*/
|
|
8
9
|
|
|
9
10
|
import type { JsonValue } from "@downcity/agent/internal/types/common/Json.js";
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
|
-
*
|
|
13
|
+
* WebPlugin 可安装目标。
|
|
13
14
|
*/
|
|
14
|
-
export
|
|
15
|
-
"https://github.com/eze-is/web-access";
|
|
15
|
+
export type WebPluginInstallTarget = "web-access" | "agent-browser" | "all";
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
19
|
-
*/
|
|
20
|
-
export type WebPluginProvider = "web-access" | "agent-browser";
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Web plugin 安装作用域。
|
|
18
|
+
* WebPlugin 安装作用域。
|
|
24
19
|
*/
|
|
25
20
|
export type WebPluginInstallScope = "user" | "project";
|
|
26
21
|
|
|
27
22
|
/**
|
|
28
|
-
*
|
|
29
|
-
*/
|
|
30
|
-
export interface WebPluginConfig {
|
|
31
|
-
/**
|
|
32
|
-
* 兼容统一结构化配置约束的索引签名。
|
|
33
|
-
*/
|
|
34
|
-
[key: string]: JsonValue | undefined;
|
|
35
|
-
/**
|
|
36
|
-
* 当前使用的 provider。
|
|
37
|
-
*/
|
|
38
|
-
provider?: WebPluginProvider;
|
|
39
|
-
/**
|
|
40
|
-
* 是否向 agent 注入 provider 提示词。
|
|
41
|
-
*/
|
|
42
|
-
injectPrompt?: boolean;
|
|
43
|
-
/**
|
|
44
|
-
* provider 来源仓库地址。
|
|
45
|
-
*/
|
|
46
|
-
repositoryUrl?: string;
|
|
47
|
-
/**
|
|
48
|
-
* provider 版本标签或备注。
|
|
49
|
-
*/
|
|
50
|
-
sourceVersion?: string;
|
|
51
|
-
/**
|
|
52
|
-
* agent-browser 命令名(可选)。
|
|
53
|
-
*/
|
|
54
|
-
browserCommand?: string;
|
|
55
|
-
/**
|
|
56
|
-
* skill 安装作用域。
|
|
57
|
-
*/
|
|
58
|
-
installScope?: WebPluginInstallScope;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* 归一化后的 web plugin 配置。
|
|
63
|
-
*/
|
|
64
|
-
export interface ResolvedWebPluginConfig {
|
|
65
|
-
/**
|
|
66
|
-
* 当前 provider。
|
|
67
|
-
*/
|
|
68
|
-
provider: WebPluginProvider;
|
|
69
|
-
/**
|
|
70
|
-
* 是否注入 prompt。
|
|
71
|
-
*/
|
|
72
|
-
injectPrompt: boolean;
|
|
73
|
-
/**
|
|
74
|
-
* 仓库地址。
|
|
75
|
-
*/
|
|
76
|
-
repositoryUrl: string;
|
|
77
|
-
/**
|
|
78
|
-
* provider 版本标签(可选)。
|
|
79
|
-
*/
|
|
80
|
-
sourceVersion?: string;
|
|
81
|
-
/**
|
|
82
|
-
* 浏览器命令。
|
|
83
|
-
*/
|
|
84
|
-
browserCommand: string;
|
|
85
|
-
/**
|
|
86
|
-
* skill 安装作用域。
|
|
87
|
-
*/
|
|
88
|
-
installScope: WebPluginInstallScope;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* web plugin setup/install 输入。
|
|
23
|
+
* WebPlugin install action 输入。
|
|
93
24
|
*/
|
|
94
|
-
export interface
|
|
95
|
-
/**
|
|
96
|
-
* provider。
|
|
97
|
-
*/
|
|
98
|
-
provider?: WebPluginProvider;
|
|
25
|
+
export interface WebPluginInstallPayload {
|
|
99
26
|
/**
|
|
100
|
-
*
|
|
27
|
+
* 要准备的联网能力。
|
|
28
|
+
*
|
|
29
|
+
* 说明(中文)
|
|
30
|
+
* - `web-access`:安装 web-access skill。
|
|
31
|
+
* - `agent-browser`:安装 agent-browser skill,并准备 agent-browser CLI 包。
|
|
32
|
+
* - `all`:同时准备以上能力。
|
|
33
|
+
* - 默认值为 `web-access`,避免默认安装额外 CLI。
|
|
101
34
|
*/
|
|
102
|
-
|
|
35
|
+
target?: WebPluginInstallTarget;
|
|
103
36
|
/**
|
|
104
|
-
*
|
|
37
|
+
* 安装作用域。
|
|
38
|
+
*
|
|
39
|
+
* 说明(中文)
|
|
40
|
+
* - `user`:安装到用户级 skill / npm 全局环境。
|
|
41
|
+
* - `project`:安装到当前项目级 skill / devDependency。
|
|
42
|
+
* - 默认值为 `user`,避免默认修改项目依赖。
|
|
105
43
|
*/
|
|
106
|
-
|
|
44
|
+
scope?: WebPluginInstallScope;
|
|
107
45
|
/**
|
|
108
|
-
*
|
|
46
|
+
* 是否跳过安装确认。
|
|
47
|
+
*
|
|
48
|
+
* 说明(中文)
|
|
49
|
+
* - 会透传给底层 skill installer。
|
|
50
|
+
* - 默认值为 `true`,适合 agent 自动执行。
|
|
109
51
|
*/
|
|
110
|
-
|
|
52
|
+
yes?: boolean;
|
|
111
53
|
/**
|
|
112
|
-
*
|
|
54
|
+
* skill installer 的目标 agent 名称。
|
|
55
|
+
*
|
|
56
|
+
* 说明(中文)
|
|
57
|
+
* - 默认使用 `claude-code`,与现有 SkillPlugin 安装行为保持一致。
|
|
113
58
|
*/
|
|
114
|
-
|
|
59
|
+
agent?: string;
|
|
115
60
|
/**
|
|
116
|
-
*
|
|
61
|
+
* 允许保留额外 JSON 字段,便于未来扩展安装器参数。
|
|
117
62
|
*/
|
|
118
|
-
|
|
63
|
+
[key: string]: JsonValue | undefined;
|
|
119
64
|
}
|
|
120
65
|
|
|
121
|
-
/**
|
|
122
|
-
* web plugin 依赖检查结果。
|
|
123
|
-
*/
|
|
124
|
-
export interface WebPluginDependencyCheckResult {
|
|
125
|
-
/**
|
|
126
|
-
* 当前 provider 是否可用。
|
|
127
|
-
*/
|
|
128
|
-
available: boolean;
|
|
129
|
-
/**
|
|
130
|
-
* 当前 provider 是否已就绪。
|
|
131
|
-
*/
|
|
132
|
-
installed: boolean;
|
|
133
|
-
/**
|
|
134
|
-
* 不可用原因列表。
|
|
135
|
-
*/
|
|
136
|
-
reasons: string[];
|
|
137
|
-
/**
|
|
138
|
-
* 结构化详情(可选)。
|
|
139
|
-
*/
|
|
140
|
-
details?: JsonValue;
|
|
141
|
-
}
|
package/bin/asr/Config.d.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ASR plugin 配置读写工具。
|
|
3
|
-
*
|
|
4
|
-
* 关键点(中文)
|
|
5
|
-
* - 行为配置与转写依赖配置统一收敛到 `plugins.asr`。
|
|
6
|
-
* - 写入前将输入规范化为 JSON object,避免 undefined 进入项目配置。
|
|
7
|
-
*/
|
|
8
|
-
import type { VoicePluginConfig } from "../voice/types/VoicePlugin.js";
|
|
9
|
-
import type { AgentPluginConfigRuntime } from "@downcity/agent/internal/types/agent/AgentRuntimeAssembly.js";
|
|
10
|
-
import type { JsonObject, JsonValue } from "@downcity/agent/internal/types/common/Json.js";
|
|
11
|
-
/**
|
|
12
|
-
* 将普通对象转为可持久化 JSON object。
|
|
13
|
-
*/
|
|
14
|
-
export declare function toJsonObject(input: Record<string, unknown> | null | undefined): JsonObject | null;
|
|
15
|
-
/**
|
|
16
|
-
* 读取字符串选项。
|
|
17
|
-
*/
|
|
18
|
-
export declare function getStringOpt(opts: Record<string, JsonValue>, key: string): string | undefined;
|
|
19
|
-
/**
|
|
20
|
-
* 读取布尔选项。
|
|
21
|
-
*/
|
|
22
|
-
export declare function getBooleanOpt(opts: Record<string, JsonValue>, key: string, defaultValue: boolean): boolean;
|
|
23
|
-
/**
|
|
24
|
-
* 读取 ASR Plugin 配置。
|
|
25
|
-
*/
|
|
26
|
-
export declare function readVoicePluginConfig(runtime: {
|
|
27
|
-
config: {
|
|
28
|
-
plugins?: Record<string, unknown>;
|
|
29
|
-
};
|
|
30
|
-
}): VoicePluginConfig;
|
|
31
|
-
/**
|
|
32
|
-
* 写入完整 ASR plugin 配置。
|
|
33
|
-
*/
|
|
34
|
-
export declare function writeVoicePluginConfig(params: {
|
|
35
|
-
agentState: {
|
|
36
|
-
config: {
|
|
37
|
-
plugins?: Record<string, unknown>;
|
|
38
|
-
};
|
|
39
|
-
pluginConfig: AgentPluginConfigRuntime;
|
|
40
|
-
};
|
|
41
|
-
value: VoicePluginConfig;
|
|
42
|
-
}): Promise<void>;
|
|
43
|
-
//# sourceMappingURL=Config.d.ts.map
|
package/bin/asr/Config.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/asr/Config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8DAA8D,CAAC;AAC7G,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAE3F;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAChD,UAAU,GAAG,IAAI,CAyBnB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,CAKpB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,OAAO,GACpB,OAAO,CAST;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;CACH,GAAG,iBAAiB,CA8BpB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,UAAU,EAAE;QACV,MAAM,EAAE;YACN,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACnC,CAAC;QACF,YAAY,EAAE,wBAAwB,CAAC;KACxC,CAAC;IACF,KAAK,EAAE,iBAAiB,CAAC;CAC1B,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhB"}
|
package/bin/asr/Config.js
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ASR plugin 配置读写工具。
|
|
3
|
-
*
|
|
4
|
-
* 关键点(中文)
|
|
5
|
-
* - 行为配置与转写依赖配置统一收敛到 `plugins.asr`。
|
|
6
|
-
* - 写入前将输入规范化为 JSON object,避免 undefined 进入项目配置。
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* 将普通对象转为可持久化 JSON object。
|
|
10
|
-
*/
|
|
11
|
-
export function toJsonObject(input) {
|
|
12
|
-
if (!input)
|
|
13
|
-
return null;
|
|
14
|
-
const out = {};
|
|
15
|
-
for (const [key, value] of Object.entries(input)) {
|
|
16
|
-
if (value === undefined)
|
|
17
|
-
continue;
|
|
18
|
-
if (value === null ||
|
|
19
|
-
typeof value === "string" ||
|
|
20
|
-
typeof value === "number" ||
|
|
21
|
-
typeof value === "boolean") {
|
|
22
|
-
out[key] = value;
|
|
23
|
-
continue;
|
|
24
|
-
}
|
|
25
|
-
if (Array.isArray(value)) {
|
|
26
|
-
out[key] = value
|
|
27
|
-
.filter((item) => item !== undefined)
|
|
28
|
-
.map((item) => item);
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
if (typeof value === "object") {
|
|
32
|
-
out[key] = toJsonObject(value) || {};
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return out;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* 读取字符串选项。
|
|
39
|
-
*/
|
|
40
|
-
export function getStringOpt(opts, key) {
|
|
41
|
-
const value = opts[key];
|
|
42
|
-
if (typeof value !== "string")
|
|
43
|
-
return undefined;
|
|
44
|
-
const trimmed = value.trim();
|
|
45
|
-
return trimmed || undefined;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* 读取布尔选项。
|
|
49
|
-
*/
|
|
50
|
-
export function getBooleanOpt(opts, key, defaultValue) {
|
|
51
|
-
const value = opts[key];
|
|
52
|
-
if (typeof value === "boolean")
|
|
53
|
-
return value;
|
|
54
|
-
if (typeof value === "string") {
|
|
55
|
-
const normalized = value.trim().toLowerCase();
|
|
56
|
-
if (["1", "true", "yes", "y", "on"].includes(normalized))
|
|
57
|
-
return true;
|
|
58
|
-
if (["0", "false", "no", "n", "off"].includes(normalized))
|
|
59
|
-
return false;
|
|
60
|
-
}
|
|
61
|
-
return defaultValue;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* 读取 ASR Plugin 配置。
|
|
65
|
-
*/
|
|
66
|
-
export function readVoicePluginConfig(runtime) {
|
|
67
|
-
const current = runtime.config.plugins?.asr;
|
|
68
|
-
const normalized = current && typeof current === "object" && !Array.isArray(current)
|
|
69
|
-
? current
|
|
70
|
-
: {};
|
|
71
|
-
return {
|
|
72
|
-
injectPrompt: typeof normalized.injectPrompt === "boolean"
|
|
73
|
-
? normalized.injectPrompt
|
|
74
|
-
: true,
|
|
75
|
-
augmentMessage: typeof normalized.augmentMessage === "boolean"
|
|
76
|
-
? normalized.augmentMessage
|
|
77
|
-
: true,
|
|
78
|
-
provider: normalized.provider === "command" || normalized.provider === "local"
|
|
79
|
-
? normalized.provider
|
|
80
|
-
: "local",
|
|
81
|
-
...(typeof normalized.modelId === "string" ? { modelId: normalized.modelId } : {}),
|
|
82
|
-
...(typeof normalized.modelsDir === "string" ? { modelsDir: normalized.modelsDir } : {}),
|
|
83
|
-
...(typeof normalized.pythonBin === "string" ? { pythonBin: normalized.pythonBin } : {}),
|
|
84
|
-
...(typeof normalized.command === "string" ? { command: normalized.command } : {}),
|
|
85
|
-
...(typeof normalized.language === "string" ? { language: normalized.language } : {}),
|
|
86
|
-
...(typeof normalized.timeoutMs === "number" ? { timeoutMs: normalized.timeoutMs } : {}),
|
|
87
|
-
...(typeof normalized.strategy === "string" ? { strategy: normalized.strategy } : {}),
|
|
88
|
-
...(Array.isArray(normalized.installedModels)
|
|
89
|
-
? { installedModels: normalized.installedModels }
|
|
90
|
-
: {}),
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* 写入完整 ASR plugin 配置。
|
|
95
|
-
*/
|
|
96
|
-
export async function writeVoicePluginConfig(params) {
|
|
97
|
-
if (!params.agentState.config.plugins) {
|
|
98
|
-
params.agentState.config.plugins = {};
|
|
99
|
-
}
|
|
100
|
-
const next = {
|
|
101
|
-
...params.value,
|
|
102
|
-
};
|
|
103
|
-
delete next.enabled;
|
|
104
|
-
params.agentState.config.plugins.asr = (toJsonObject(next) || {});
|
|
105
|
-
await params.agentState.pluginConfig.persistProjectPlugins(params.agentState.config.plugins);
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=Config.js.map
|
package/bin/asr/Config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/asr/Config.ts"],"names":[],"mappings":"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"}
|
package/bin/asr/Dependency.d.ts
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ASR Plugin Dependency Helper。
|
|
3
|
-
*
|
|
4
|
-
* 关键点(中文)
|
|
5
|
-
* - ASR 的转写依赖现在内聚在 plugin 内部,不再暴露独立依赖端口心智。
|
|
6
|
-
* - 这里统一管理检查、安装、配置读写与转写句柄解析。
|
|
7
|
-
*/
|
|
8
|
-
import type { JsonValue } from "@downcity/agent/internal/types/common/Json.js";
|
|
9
|
-
import type { PluginCommandContext } from "@downcity/agent/internal/plugin/types/Plugin.js";
|
|
10
|
-
import type { VoicePluginConfig, VoiceTranscriberConfig, VoiceTranscriberInstallInput, VoiceTranscriberHandle } from "../voice/types/VoicePlugin.js";
|
|
11
|
-
export interface VoiceDependencyCheckResult {
|
|
12
|
-
/**
|
|
13
|
-
* 当前依赖是否可用。
|
|
14
|
-
*/
|
|
15
|
-
available: boolean;
|
|
16
|
-
/**
|
|
17
|
-
* 不可用原因列表。
|
|
18
|
-
*/
|
|
19
|
-
reasons: string[];
|
|
20
|
-
/**
|
|
21
|
-
* 结构化附加数据(可选)。
|
|
22
|
-
*/
|
|
23
|
-
details?: JsonValue;
|
|
24
|
-
}
|
|
25
|
-
export interface VoiceDependencyInstallResult {
|
|
26
|
-
/**
|
|
27
|
-
* 安装是否成功。
|
|
28
|
-
*/
|
|
29
|
-
success: boolean;
|
|
30
|
-
/**
|
|
31
|
-
* 人类可读消息(可选)。
|
|
32
|
-
*/
|
|
33
|
-
message?: string;
|
|
34
|
-
/**
|
|
35
|
-
* 结构化附加数据(可选)。
|
|
36
|
-
*/
|
|
37
|
-
details?: JsonValue;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* 读取 ASR 转写依赖配置。
|
|
41
|
-
*/
|
|
42
|
-
export declare function readVoiceTranscriberConfig(context: PluginCommandContext): VoiceTranscriberConfig;
|
|
43
|
-
/**
|
|
44
|
-
* 写入 ASR 转写依赖配置。
|
|
45
|
-
*/
|
|
46
|
-
export declare function writeVoiceTranscriberConfig(params: {
|
|
47
|
-
context: PluginCommandContext;
|
|
48
|
-
value: Partial<VoiceTranscriberConfig>;
|
|
49
|
-
}): Promise<VoicePluginConfig>;
|
|
50
|
-
/**
|
|
51
|
-
* 检查 ASR 转写依赖可用性。
|
|
52
|
-
*/
|
|
53
|
-
export declare function checkVoiceTranscriber(context: PluginCommandContext): Promise<VoiceDependencyCheckResult>;
|
|
54
|
-
/**
|
|
55
|
-
* 安装或修复 ASR 转写依赖。
|
|
56
|
-
*/
|
|
57
|
-
export declare function installVoiceTranscriber(params: {
|
|
58
|
-
context: PluginCommandContext;
|
|
59
|
-
input?: VoiceTranscriberInstallInput;
|
|
60
|
-
}): Promise<VoiceDependencyInstallResult>;
|
|
61
|
-
/**
|
|
62
|
-
* 解析 ASR 转写句柄。
|
|
63
|
-
*/
|
|
64
|
-
export declare function resolveVoiceTranscriber(context: PluginCommandContext): Promise<VoiceTranscriberHandle>;
|
|
65
|
-
/**
|
|
66
|
-
* 执行一次 ASR 转写。
|
|
67
|
-
*/
|
|
68
|
-
export declare function transcribeWithVoiceDependency(params: {
|
|
69
|
-
context: PluginCommandContext;
|
|
70
|
-
audioPath: string;
|
|
71
|
-
language?: string;
|
|
72
|
-
}): Promise<{
|
|
73
|
-
success: boolean;
|
|
74
|
-
text?: string;
|
|
75
|
-
error?: string;
|
|
76
|
-
}>;
|
|
77
|
-
//# sourceMappingURL=Dependency.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Dependency.d.ts","sourceRoot":"","sources":["../../src/asr/Dependency.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AAoBtC,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAqCD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,oBAAoB,GAC5B,sBAAsB,CAUxB;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,MAAM,EAAE;IACxD,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACxC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAe7B;AA4CD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,0BAA0B,CAAC,CAUrC;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IACpD,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,CAAC,EAAE,4BAA4B,CAAC;CACtC,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAqFxC;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,sBAAsB,CAAC,CAqBjC;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CAAC,MAAM,EAAE;IAC1D,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAM/D"}
|