@bf-meishijian/aip 0.0.26 → 0.0.28

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.
@@ -1,15 +1,6 @@
1
- import { createHash, randomUUID } from "node:crypto";
2
- import { mkdir, readFile, realpath, rename, rm, writeFile } from "node:fs/promises";
3
- import { isAbsolute, join, relative, resolve } from "node:path";
4
1
  import { resolveHostShell } from "@ai-platform/api-contracts";
5
- import { createInitialSystemMessage } from "@earendil-works/pi-ai";
6
- import { createEditToolDefinition, createFindToolDefinition, createGrepToolDefinition, createLsToolDefinition, createReadToolDefinition, createWriteToolDefinition, } from "@earendil-works/pi-coding-agent";
7
- import { Type } from "typebox";
8
- import { createHostShellTool } from "./host-tools.js";
9
- import { LocalMcpSession, localMcpToolName } from "./local-mcp.js";
2
+ import { localEmployeeRuntime } from "./local-employee-runtime.js";
10
3
  import { EMPLOYEE_EXECUTION_PROTOCOL, STAGE_DELIVERY_PROTOCOLS } from "./stage-delivery.js";
11
- import { applyDispatchedTools, rememberTool } from "./tool-dispatch.js";
12
- const SKILL_FILE_UNAVAILABLE = "EMPLOYEE_SKILL_FILE_UNAVAILABLE:读取失败,未加载正文。请使用你自己当前 Skill 目录中的完整路径重试,不要沿用主管或其他成员的绝对路径;若文件已移除或未绑定,不得把此错误当作资料正文。";
13
4
  export function employeePrompt(config, locations, team = true, _phase = "DEVELOPMENT", _release = false, child = false) {
14
5
  if (!config.nodeRules || typeof config.nodeRules.prompt !== "string")
15
6
  throw new Error("STAGE_DELIVERY_CONFIGURATION_MISSING");
@@ -39,426 +30,41 @@ export function employeePrompt(config, locations, team = true, _phase = "DEVELOP
39
30
  ].join("\n\n");
40
31
  }
41
32
  export function liveEmployee(client, runId, binding, initial, runRoot, team = true, release = false, phase = "DEVELOPMENT", isClosing = () => false, executionContext = () => "", onTerminalClose = () => { }, options = {}) {
42
- let current = initial;
43
- let round = initial;
44
- let roundInput;
45
- let roundFailure;
46
- let roundId = randomUUID();
47
- let roundRecorded = false;
48
- let roundLocations = skillLocations(runRoot, binding.member, initial.agent.skills);
49
- let locations = new Map();
50
- let refreshTail = Promise.resolve();
51
- let localMcp = new LocalMcpSession();
52
- let registerLocal;
53
- const read = (purpose = "MODEL", file) => {
54
- const result = refreshTail.then(async () => {
55
- current = await client.employeeConfig(runId, {
56
- ...binding,
57
- ...(options.child ? { child: true } : {}),
58
- purpose,
59
- ...file,
60
- });
61
- await registerLocal?.(current);
62
- const nextLocations = skillLocations(runRoot, binding.member, current.agent.skills);
63
- for (const [key, path] of locations)
64
- if (!nextLocations.has(key))
65
- await rm(path, { force: true });
66
- locations = nextLocations;
67
- if (purpose === "SKILL_READ")
68
- await materializeSkills(runRoot, binding.member, current.agent.skills);
69
- return current;
70
- });
71
- refreshTail = result.then(() => undefined, () => undefined);
72
- return result;
73
- };
74
- const refreshRound = async () => {
75
- try {
76
- const config = await read();
33
+ return localEmployeeRuntime({
34
+ initial,
35
+ runId,
36
+ runRoot,
37
+ member: binding.member,
38
+ turnId: binding.turnId,
39
+ load: (purpose, file) => client.employeeConfig(runId, {
40
+ ...binding,
41
+ ...(options.child ? { child: true } : {}),
42
+ purpose,
43
+ ...file,
44
+ }),
45
+ platformTool: async (definition, _id, args, signal) => {
46
+ const result = await client.employeeTool(runId, {
47
+ hostId: binding.hostId,
48
+ generation: binding.generation,
49
+ turnId: binding.turnId,
50
+ member: binding.member,
51
+ toolName: definition.name,
52
+ arguments: args,
53
+ }, signal);
54
+ return { content: [{ type: "text", text: result.content }], details: {} };
55
+ },
56
+ prompt: (config, locations) => `${employeePrompt(config, locations, team, phase, release, options.child)}\n\n${executionContext()}`,
57
+ validate: (config) => {
77
58
  if (!config.nodeRules || typeof config.nodeRules.prompt !== "string")
78
59
  throw new Error("STAGE_DELIVERY_CONFIGURATION_MISSING");
79
- round = config;
80
- roundId = randomUUID();
81
- roundRecorded = false;
82
- roundLocations = new Map(locations);
83
- roundFailure = undefined;
84
- }
85
- catch (error) {
86
- roundFailure = error;
87
- throw error;
88
- }
89
- };
90
- const refreshInput = async (messages) => {
91
- if (roundFailure)
92
- throw roundFailure;
93
- const input = messages.findLast((message) => message.role === "user");
94
- const inputKey = input ? JSON.stringify(input) : undefined;
95
- if (roundInput !== undefined && inputKey !== undefined && inputKey !== roundInput)
96
- await refreshRound();
97
- if (inputKey !== undefined)
98
- roundInput = inputKey;
99
- };
100
- const prompt = () => `${employeePrompt(round, roundLocations, team, phase, release, options.child)}\n\n${executionContext()}`;
101
- const extension = (api) => {
102
- registerLocal = async (config) => {
103
- const servers = config.localMcpServers ?? [];
104
- await localMcp.retain(new Set(servers.map((server) => server.connectionId)));
105
- for (const server of servers) {
106
- try {
107
- const tools = await localMcp.connect(server);
108
- for (const tool of tools) {
109
- const name = localMcpToolName(server.connectionId, tool.name);
110
- if (server.enabledToolNames && !server.enabledToolNames.includes(name))
111
- continue;
112
- const definition = {
113
- name,
114
- label: tool.label,
115
- description: tool.description,
116
- parametersJson: JSON.stringify(tool.inputSchema),
117
- execution: "HOST",
118
- handler: name,
119
- };
120
- if (!config.toolDefinitions.some((item) => item.name === name))
121
- config.toolDefinitions.push(definition);
122
- if (!config.activeToolNames.includes(name))
123
- config.activeToolNames.push(name);
124
- const implementation = {
125
- name,
126
- label: tool.label,
127
- description: tool.description,
128
- parameters: Type.Unsafe(tool.inputSchema),
129
- async execute(_id, args, signal) {
130
- const fresh = await read("TOOL");
131
- const allowed = fresh.localMcpServers?.find((item) => item.connectionId === server.connectionId);
132
- if (!allowed)
133
- throw new Error("MCP_TOOL_DISABLED");
134
- const result = await localMcp.call(allowed, tool.name, args, signal);
135
- return {
136
- content: [{ type: "text", text: JSON.stringify(result) }],
137
- details: {
138
- mcp: {
139
- connectionId: server.connectionId,
140
- tool: tool.name,
141
- isError: result.isError === true,
142
- },
143
- },
144
- };
145
- },
146
- };
147
- rememberTool(initial.toolDefinitions, name, implementation, api);
148
- api.registerTool(implementation);
149
- }
150
- }
151
- catch (error) {
152
- // Failure belongs to this service, never to the employee's other capabilities.
153
- api.appendEntry("local-mcp-status", {
154
- connectionId: server.connectionId,
155
- status: "ERROR",
156
- error: error instanceof Error && error.message.startsWith("MCP_ENV_MISSING:")
157
- ? error.message
158
- : "MCP_CONNECTION_FAILED",
159
- });
160
- }
161
- }
162
- };
163
- api.on("session_shutdown", async () => {
164
- await localMcp.close();
165
- });
166
- api.on("agent_end", async () => {
167
- const previous = localMcp;
168
- localMcp = new LocalMcpSession();
169
- await previous.close();
170
- });
171
- let runPromptOptions;
172
- // 开发验收专用:只保存实际请求的系统指令与工具定义,不记录对话/凭证。
173
- if (process.env.AIP_INSTRUCTION_EVIDENCE_DIR)
174
- api.on("before_provider_request", async (event, context) => {
175
- const payload = event.payload;
176
- const messages = Array.isArray(payload.messages) ? payload.messages : [];
177
- const input = Array.isArray(payload.input) ? payload.input : [];
178
- const request = {
179
- system: payload.system ??
180
- payload.instructions ??
181
- [...messages, ...input].filter((message) => message &&
182
- typeof message === "object" &&
183
- ["system", "developer"].includes(String(message.role))),
184
- tools: payload.tools ?? [],
185
- };
186
- const secrets = Object.values(current.environmentVariables ?? {}).filter((v) => v.length >= 4);
187
- const redact = (value) => {
188
- if (typeof value === "string")
189
- return secrets.reduce((text, secret) => text.split(secret).join("[REDACTED]"), value);
190
- if (Array.isArray(value))
191
- return value.map(redact);
192
- if (value && typeof value === "object")
193
- return Object.fromEntries(Object.entries(value).map(([key, nested]) => [key, redact(nested)]));
194
- return value;
195
- };
196
- const safeRequest = redact(request);
197
- const captureId = randomUUID();
198
- const directory = process.env.AIP_INSTRUCTION_EVIDENCE_DIR;
199
- await mkdir(directory, { recursive: true, mode: 0o700 });
200
- await writeFile(resolve(directory, `${captureId}.json`), JSON.stringify({
201
- captureId,
202
- capturedAt: new Date().toISOString(),
203
- runId,
204
- turnId: binding.turnId,
205
- member: binding.member,
206
- sessionId: context.sessionManager.getSessionId(),
207
- child: Boolean(options.child),
208
- nodeRules: redact(round.nodeRules),
209
- collaborationSource: round.collaborationSource,
210
- employee: { id: round.agent.id, revision: round.agent.revision },
211
- configHash: round.configHash,
212
- dispatchedTools: {
213
- activeToolNames: round.activeToolNames,
214
- toolDefinitions: round.toolDefinitions,
215
- },
216
- runtimeSourceHash: contentHash(await readFile(new URL(import.meta.url), "utf8")),
217
- systemPrompt: redact(prompt()),
218
- request: safeRequest,
219
- requestHash: contentHash(JSON.stringify(safeRequest)),
220
- }, null, 2), { mode: 0o600, flag: "wx" });
221
- });
222
- const registerImplementation = (tool) => {
223
- rememberTool(initial.toolDefinitions, tool.name, tool, api);
224
- api.registerTool(tool);
225
- };
226
- registerImplementation(createWriteToolDefinition(runRoot));
227
- registerImplementation(createEditToolDefinition(runRoot));
228
- registerImplementation(createGrepToolDefinition(runRoot));
229
- registerImplementation(createFindToolDefinition(runRoot));
230
- registerImplementation(createLsToolDefinition(runRoot));
231
- for (const name of (process.platform === "win32" ? ["bash", "powershell"] : ["bash"])) {
232
- const bash = createHostShellTool(runRoot, { name });
233
- registerImplementation({
234
- ...bash,
235
- async execute(id, args, signal, onUpdate, context) {
236
- const config = await read("TOOL");
237
- const shell = resolveHostShell(process.platform, config.environmentVariables ?? {});
238
- if (shell.name !== name || !config.activeToolNames.includes(name))
239
- throw new Error("EMPLOYEE_TOOL_DISABLED");
240
- // Keep credentials in this invocation's child environment, never in process.env or prompts.
241
- return createHostShellTool(context.cwd, shell, config.environmentVariables).execute(id, args, signal, onUpdate, context);
242
- },
243
- });
244
- }
245
- const nativeRead = createReadToolDefinition(runRoot);
246
- registerImplementation({
247
- ...nativeRead,
248
- async execute(id, args, signal, onUpdate, context) {
249
- await read("TOOL");
250
- if (!current.activeToolNames.includes("read"))
251
- throw new Error("EMPLOYEE_TOOL_DISABLED");
252
- const absolute = resolve(context.cwd, args.path);
253
- const resourceRoot = join(runRoot, ".aip-resources");
254
- const nested = relative(resourceRoot, absolute);
255
- const managed = !nested.startsWith("..") && !isAbsolute(nested);
256
- if (!managed)
257
- return createReadToolDefinition(context.cwd).execute(id, args, signal, onUpdate, context);
258
- const metadata = current.agent.skills.find((candidate) => locations.get(`${candidate.id}:${candidate.path}`) === absolute);
259
- if (!metadata)
260
- throw new Error(SKILL_FILE_UNAVAILABLE);
261
- const loaded = await read("SKILL_READ", { skillId: metadata.id, skillPath: metadata.path });
262
- const file = loaded.agent.skills.find((candidate) => candidate.id === metadata.id && candidate.path === metadata.path);
263
- if (typeof file?.content !== "string")
264
- throw new Error(SKILL_FILE_UNAVAILABLE);
265
- return {
266
- content: [{ type: "text", text: file.content }],
267
- details: {
268
- skillFile: {
269
- skillId: file.id,
270
- path: file.path,
271
- contentHash: contentHash(file.content),
272
- },
273
- },
274
- };
275
- },
276
- });
277
- function registerPlatformTools(definitions) {
278
- for (const definition of definitions.filter((tool) => tool.execution === "PLATFORM"))
279
- registerImplementation({
280
- name: definition.name,
281
- label: definition.label,
282
- description: definition.description,
283
- parameters: Type.Unsafe(JSON.parse(definition.parametersJson)),
284
- async execute(_id, args, signal) {
285
- const result = await client.employeeTool(runId, {
286
- hostId: binding.hostId,
287
- generation: binding.generation,
288
- turnId: binding.turnId,
289
- member: binding.member,
290
- toolName: definition.name,
291
- arguments: args,
292
- }, signal);
293
- return { content: [{ type: "text", text: result.content }], details: {} };
294
- },
295
- });
296
- }
297
- registerPlatformTools(initial.toolDefinitions);
298
- api.on("before_agent_start", async (event, context) => {
299
- runPromptOptions = event?.systemPromptOptions;
300
- if (runPromptOptions)
301
- delete runPromptOptions.forceSystemPrompt;
302
- try {
303
- await refreshRound();
304
- roundInput = undefined;
305
- registerPlatformTools(round.toolDefinitions);
306
- applyDispatchedTools(api, initial.toolDefinitions, round.toolDefinitions, round.activeToolNames);
307
- }
308
- catch (error) {
309
- context?.abort();
310
- throw error;
311
- }
312
- // 投影统一由 context_with_system 提供,避免 SDK 的 forced prompt 覆盖新消息规则。
313
- });
314
- api.on("context_with_system", async (event, context) => {
315
- // Pi-subagents 0.78 的边界扩展最后写入 forced prompt;在每次请求投影前清除,
316
- // 否则 SDK 会用它覆盖下方动态员工与节点规则,连 steer 后的新规则也无法生效。
317
- if (runPromptOptions)
318
- delete runPromptOptions.forceSystemPrompt;
319
- // 主会话已在 prepareRequest 读取;子进程只提供扩展入口,失败时取消真实请求。
320
- try {
321
- await refreshInput(event.messages);
322
- }
323
- catch (error) {
324
- context?.abort();
325
- throw error;
326
- }
327
- const config = current;
328
- const active = config.activeToolNames;
329
- registerPlatformTools(config.toolDefinitions);
330
- applyDispatchedTools(api, initial.toolDefinitions, config.toolDefinitions, active);
331
- const systemPrompt = prompt();
332
- if (!roundRecorded) {
333
- const systemPromptHash = createHash("sha256").update(systemPrompt).digest("hex");
334
- const previous = context.sessionManager
335
- .getBranch()
336
- .findLast((entry) => entry.type === "custom" && entry.customType === "employee-skill-model");
337
- const data = previous?.type === "custom"
338
- ? previous.data
339
- : undefined;
340
- const previousHash = data?.systemPromptHash ??
341
- (typeof data?.systemPrompt === "string"
342
- ? createHash("sha256").update(data.systemPrompt).digest("hex")
343
- : undefined);
344
- api.appendEntry("employee-skill-model", {
345
- employeeId: round.agent.id,
346
- member: binding.member,
347
- turnId: binding.turnId,
348
- roundId,
349
- configRevision: round.agent.revision,
350
- systemPromptHash,
351
- ...(systemPromptHash !== previousHash ? { systemPrompt } : {}),
352
- });
353
- roundRecorded = true;
354
- }
355
- const system = createInitialSystemMessage(systemPrompt, api.getAllTools().filter((tool) => active.includes(tool.name)));
356
- return {
357
- messages: [
358
- ...(system ? [system] : []),
359
- ...event.messages.filter((message) => message.role !== "system"),
360
- ],
361
- };
362
- });
363
- api.on("tool_call", async (event) => {
364
- if (isClosing())
365
- return { block: true, reason: "本轮自动执行已结束,请等待用户操作,仅可完成文字回复。" };
366
- const config = await read("TOOL");
367
- if (!config.activeToolNames.includes(event.toolName))
368
- return { block: true, reason: "EMPLOYEE_TOOL_DISABLED:当前员工已禁用此工具" };
369
- return undefined;
370
- });
371
- };
372
- function attach(session) {
373
- if (typeof session.dispose === "function") {
374
- const dispose = session.dispose.bind(session);
375
- session.dispose = () => {
376
- void localMcp.close();
377
- dispose();
378
- };
379
- }
380
- const prepareRequest = session.agent.prepareRequest;
381
- session.agent.prepareRequest = async (request, signal) => {
382
- const prior = await prepareRequest?.(request, signal);
383
- // 该 SDK 边界不会吞掉配置错误;排队消息已消费,工具续轮没有新的 user。
384
- await refreshInput((prior?.context ?? request.context).messages);
385
- return prior ?? undefined;
386
- };
387
- const original = session.agent.prepareNextTurnWithContext;
388
- session.agent.prepareNextTurnWithContext = async (turn, signal) => {
389
- const prior = await original?.(turn, signal);
390
- if (isClosing()) {
391
- onTerminalClose();
392
- session.agent.abort();
393
- session.setActiveToolsByName([]);
394
- const context = prior?.context ?? turn.context;
395
- const system = createInitialSystemMessage(prompt(), []);
396
- return {
397
- ...prior,
398
- context: {
399
- ...context,
400
- messages: [
401
- ...(system ? [system] : []),
402
- ...context.messages.filter((message) => message.role !== "system"),
403
- ],
404
- },
405
- };
406
- }
407
- const config = current;
408
- session.setActiveToolsByName(config.activeToolNames);
409
- const systemPrompt = prompt();
410
- const system = createInitialSystemMessage(systemPrompt, session.agent.state.tools.slice());
411
- return {
412
- ...prior,
413
- context: {
414
- ...(prior?.context ?? turn.context),
415
- messages: [
416
- ...(system ? [system] : []),
417
- ...(prior?.context ?? turn.context).messages.filter((message) => message.role !== "system"),
418
- ],
419
- },
420
- };
421
- };
422
- }
423
- return { extension, attach };
424
- }
425
- const contentHash = (content) => createHash("sha256").update(content).digest("hex");
426
- function skillLocations(runRoot, member, files) {
427
- if (!/^[a-z0-9-]+$/iu.test(member))
428
- throw Error("EMPLOYEE_MEMBER_INVALID");
429
- return new Map(files.map((file) => {
430
- if (!/^[a-z0-9-]+$/iu.test(file.id) ||
431
- isAbsolute(file.path) ||
432
- file.path.split(/[\\/]/u).some((part) => part === ".." || part === "." || part === ""))
433
- throw Error("SKILL_RESOURCE_PATH_FORBIDDEN");
434
- return [
435
- `${file.id}:${file.path}`,
436
- resolve(runRoot, ".aip-resources", member, "skills", file.id, file.path),
437
- ];
438
- }));
439
- }
440
- async function materializeSkills(runRoot, member, files) {
441
- const base = join(runRoot, ".aip-resources", member, "skills");
442
- await mkdir(base, { recursive: true, mode: 0o700 });
443
- const realBase = await realpath(base), realRun = await realpath(runRoot);
444
- if (relative(realRun, realBase).startsWith("..") || isAbsolute(relative(realRun, realBase)))
445
- throw Error("SKILL_RESOURCE_PATH_FORBIDDEN");
446
- for (const file of files) {
447
- if (typeof file.content !== "string")
448
- continue;
449
- if (!/^[a-z0-9-]+$/iu.test(file.id) ||
450
- isAbsolute(file.path) ||
451
- file.path.split(/[\\/]/u).some((part) => part === ".." || part === "." || part === ""))
452
- throw Error("SKILL_RESOURCE_PATH_FORBIDDEN");
453
- const target = resolve(base, file.id, file.path);
454
- await mkdir(join(target, ".."), { recursive: true, mode: 0o700 });
455
- const parent = await realpath(join(target, ".."));
456
- if (relative(realBase, parent).startsWith("..") || isAbsolute(relative(realBase, parent)))
457
- throw Error("SKILL_RESOURCE_PATH_FORBIDDEN");
458
- const temporary = `${target}.aip-next`;
459
- await rm(temporary, { force: true });
460
- await writeFile(temporary, file.content, { mode: 0o600, flag: "wx" });
461
- await rename(temporary, target);
462
- }
60
+ },
61
+ evidence: (config) => ({
62
+ nodeRules: config.nodeRules,
63
+ collaborationSource: config.collaborationSource,
64
+ child: Boolean(options.child),
65
+ }),
66
+ isClosing,
67
+ onTerminalClose,
68
+ });
463
69
  }
464
70
  //# sourceMappingURL=live-employee.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"live-employee.js","sourceRoot":"","sources":["../src/live-employee.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live-employee.js","sourceRoot":"","sources":["../src/live-employee.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { type components } from "@ai-platform/api-contracts";
2
+ import { type AgentSession, type ExtensionFactory, type ToolDefinition } from "@earendil-works/pi-coding-agent";
3
+ export type LocalEmployeeConfig = components["schemas"]["LocalEmployeeRuntimeConfig"];
4
+ /** 所有本地员工共享配置刷新、原生工具、MCP 和 Skill 文件装载;业务上下文由调用方提供。 */
5
+ export declare function localEmployeeRuntime<Config extends LocalEmployeeConfig>(options: {
6
+ initial: Config;
7
+ runId: string;
8
+ runRoot: string;
9
+ member: string;
10
+ turnId?: string;
11
+ load: (purpose: "MODEL" | "TOOL" | "SKILL_READ", file?: {
12
+ skillId: string;
13
+ skillPath: string;
14
+ }, call?: {
15
+ id: string;
16
+ toolName: string;
17
+ }) => Promise<Config>;
18
+ platformTool: (definition: LocalEmployeeConfig["toolDefinitions"][number], ...args: Parameters<ToolDefinition["execute"]>) => ReturnType<ToolDefinition["execute"]>;
19
+ prompt: (config: Config, locations: Map<string, string>) => string;
20
+ validate?: (config: Config) => void;
21
+ evidence?: (config: Config) => Record<string, unknown>;
22
+ wrapTool?: (tool: ToolDefinition) => ToolDefinition;
23
+ isClosing?: () => boolean;
24
+ onTerminalClose?: () => void;
25
+ }): {
26
+ extension: ExtensionFactory;
27
+ attach: (session: AgentSession) => void;
28
+ };
29
+ //# sourceMappingURL=local-employee-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-employee-runtime.d.ts","sourceRoot":"","sources":["../src/local-employee-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,4BAA4B,CAAC;AAE/E,OAAO,EACL,KAAK,YAAY,EAQjB,KAAK,gBAAgB,EAErB,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AAKzC,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,4BAA4B,CAAC,CAAC;AAItF,sDAAsD;AACtD,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,mBAAmB,EAAE,OAAO,EAAE;IAChF,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,CACJ,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,YAAY,EACxC,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAC7C,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KACpC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,YAAY,EAAE,CACZ,UAAU,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,EAC1D,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAC3C,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,cAAc,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;;sBA6a0B,YAAY;EAsDtC"}