@zhixuan92/multi-model-agent 4.0.1 → 4.0.3
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/README.md +31 -21
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +9 -24
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/serve.d.ts.map +1 -1
- package/dist/cli/serve.js +16 -58
- package/dist/cli/serve.js.map +1 -1
- package/dist/cli/status.js +1 -1
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/sync-skills.d.ts +62 -0
- package/dist/cli/sync-skills.d.ts.map +1 -0
- package/dist/cli/sync-skills.js +251 -0
- package/dist/cli/sync-skills.js.map +1 -0
- package/dist/cli/telemetry.js +2 -2
- package/dist/cli/telemetry.js.map +1 -1
- package/dist/http/async-dispatch.d.ts +11 -0
- package/dist/http/async-dispatch.d.ts.map +1 -1
- package/dist/http/async-dispatch.js +112 -7
- package/dist/http/async-dispatch.js.map +1 -1
- package/dist/http/execution-context.d.ts +4 -1
- package/dist/http/execution-context.d.ts.map +1 -1
- package/dist/http/execution-context.js +14 -6
- package/dist/http/execution-context.js.map +1 -1
- package/dist/http/handlers/control/batch.d.ts.map +1 -1
- package/dist/http/handlers/control/batch.js +74 -6
- package/dist/http/handlers/control/batch.js.map +1 -1
- package/dist/http/handlers/control/retry.d.ts.map +1 -1
- package/dist/http/handlers/control/retry.js +1 -0
- package/dist/http/handlers/control/retry.js.map +1 -1
- package/dist/http/handlers/introspection/status.js +1 -1
- package/dist/http/handlers/tools/audit.d.ts.map +1 -1
- package/dist/http/handlers/tools/audit.js +1 -0
- package/dist/http/handlers/tools/audit.js.map +1 -1
- package/dist/http/handlers/tools/debug.d.ts.map +1 -1
- package/dist/http/handlers/tools/debug.js +1 -0
- package/dist/http/handlers/tools/debug.js.map +1 -1
- package/dist/http/handlers/tools/delegate.d.ts.map +1 -1
- package/dist/http/handlers/tools/delegate.js +1 -0
- package/dist/http/handlers/tools/delegate.js.map +1 -1
- package/dist/http/handlers/tools/execute-plan.d.ts.map +1 -1
- package/dist/http/handlers/tools/execute-plan.js +1 -0
- package/dist/http/handlers/tools/execute-plan.js.map +1 -1
- package/dist/http/handlers/tools/explore.d.ts.map +1 -1
- package/dist/http/handlers/tools/explore.js +1 -0
- package/dist/http/handlers/tools/explore.js.map +1 -1
- package/dist/http/handlers/tools/investigate.d.ts.map +1 -1
- package/dist/http/handlers/tools/investigate.js +1 -0
- package/dist/http/handlers/tools/investigate.js.map +1 -1
- package/dist/http/handlers/tools/retry.d.ts.map +1 -1
- package/dist/http/handlers/tools/retry.js +1 -0
- package/dist/http/handlers/tools/retry.js.map +1 -1
- package/dist/http/handlers/tools/review.d.ts.map +1 -1
- package/dist/http/handlers/tools/review.js +1 -0
- package/dist/http/handlers/tools/review.js.map +1 -1
- package/dist/http/handlers/tools/verify.d.ts.map +1 -1
- package/dist/http/handlers/tools/verify.js +1 -0
- package/dist/http/handlers/tools/verify.js.map +1 -1
- package/dist/http/middleware/caller-identity.d.ts +6 -3
- package/dist/http/middleware/caller-identity.d.ts.map +1 -1
- package/dist/http/middleware/caller-identity.js +5 -16
- package/dist/http/middleware/caller-identity.js.map +1 -1
- package/dist/http/project-registry.d.ts +9 -0
- package/dist/http/project-registry.d.ts.map +1 -1
- package/dist/http/project-registry.js +6 -2
- package/dist/http/project-registry.js.map +1 -1
- package/dist/http/request-pipeline.d.ts +3 -0
- package/dist/http/request-pipeline.d.ts.map +1 -1
- package/dist/http/request-pipeline.js +11 -1
- package/dist/http/request-pipeline.js.map +1 -1
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +30 -3
- package/dist/http/server.js.map +1 -1
- package/dist/http/types.d.ts +3 -2
- package/dist/http/types.d.ts.map +1 -1
- package/dist/skills/_shared/auth.md +25 -12
- package/dist/skills/mma-audit/SKILL.md +3 -1
- package/dist/skills/mma-context-blocks/SKILL.md +5 -1
- package/dist/skills/mma-debug/SKILL.md +3 -1
- package/dist/skills/mma-delegate/SKILL.md +3 -1
- package/dist/skills/mma-execute-plan/SKILL.md +3 -1
- package/dist/skills/mma-explore/SKILL.md +3 -1
- package/dist/skills/mma-investigate/SKILL.md +3 -1
- package/dist/skills/mma-retry/SKILL.md +3 -1
- package/dist/skills/mma-review/SKILL.md +3 -1
- package/dist/skills/mma-verify/SKILL.md +3 -1
- package/dist/skills/multi-model-agent/SKILL.md +1 -1
- package/dist/telemetry/recorder.js +3 -0
- package/dist/telemetry/recorder.js.map +1 -1
- package/package.json +3 -2
- package/scripts/postinstall.js +2 -2
- package/dist/cli/install-skill.d.ts +0 -78
- package/dist/cli/install-skill.d.ts.map +0 -1
- package/dist/cli/install-skill.js +0 -304
- package/dist/cli/install-skill.js.map +0 -1
- package/dist/cli/update-skills.d.ts +0 -16
- package/dist/cli/update-skills.d.ts.map +0 -1
- package/dist/cli/update-skills.js +0 -158
- package/dist/cli/update-skills.js.map +0 -1
- package/dist/http/loopback.d.ts +0 -17
- package/dist/http/loopback.d.ts.map +0 -1
- package/dist/http/loopback.js +0 -43
- package/dist/http/loopback.js.map +0 -1
- package/dist/http/router.d.ts +0 -19
- package/dist/http/router.d.ts.map +0 -1
- package/dist/http/router.js +0 -51
- package/dist/http/router.js.map +0 -1
- package/dist/http/wire/delegate-wire.d.ts +0 -4
- package/dist/http/wire/delegate-wire.d.ts.map +0 -1
- package/dist/http/wire/delegate-wire.js +0 -16
- package/dist/http/wire/delegate-wire.js.map +0 -1
- package/dist/http/wire/execute-plan-wire.d.ts +0 -18
- package/dist/http/wire/execute-plan-wire.d.ts.map +0 -1
- package/dist/http/wire/execute-plan-wire.js +0 -26
- package/dist/http/wire/execute-plan-wire.js.map +0 -1
- package/dist/http/wire/registry.d.ts +0 -3
- package/dist/http/wire/registry.d.ts.map +0 -1
- package/dist/http/wire/registry.js +0 -20
- package/dist/http/wire/registry.js.map +0 -1
- package/dist/install/claude-code.d.ts +0 -43
- package/dist/install/claude-code.d.ts.map +0 -1
- package/dist/install/claude-code.js +0 -65
- package/dist/install/claude-code.js.map +0 -1
- package/dist/install/codex-cli.d.ts +0 -27
- package/dist/install/codex-cli.d.ts.map +0 -1
- package/dist/install/codex-cli.js +0 -84
- package/dist/install/codex-cli.js.map +0 -1
- package/dist/install/cursor.d.ts +0 -72
- package/dist/install/cursor.d.ts.map +0 -1
- package/dist/install/cursor.js +0 -81
- package/dist/install/cursor.js.map +0 -1
- package/dist/install/discover.d.ts +0 -27
- package/dist/install/discover.d.ts.map +0 -1
- package/dist/install/discover.js +0 -67
- package/dist/install/discover.js.map +0 -1
- package/dist/install/gemini-cli.d.ts +0 -66
- package/dist/install/gemini-cli.d.ts.map +0 -1
- package/dist/install/gemini-cli.js +0 -111
- package/dist/install/gemini-cli.js.map +0 -1
- package/dist/install/headers.d.ts +0 -17
- package/dist/install/headers.d.ts.map +0 -1
- package/dist/install/headers.js +0 -22
- package/dist/install/headers.js.map +0 -1
- package/dist/install/include-utils.d.ts +0 -27
- package/dist/install/include-utils.d.ts.map +0 -1
- package/dist/install/include-utils.js +0 -90
- package/dist/install/include-utils.js.map +0 -1
- package/dist/install/manifest-resolve.d.ts +0 -17
- package/dist/install/manifest-resolve.d.ts.map +0 -1
- package/dist/install/manifest-resolve.js +0 -78
- package/dist/install/manifest-resolve.js.map +0 -1
- package/dist/install/manifest.d.ts +0 -94
- package/dist/install/manifest.d.ts.map +0 -1
- package/dist/install/manifest.js +0 -234
- package/dist/install/manifest.js.map +0 -1
- package/dist/install/missing-skills.d.ts +0 -20
- package/dist/install/missing-skills.d.ts.map +0 -1
- package/dist/install/missing-skills.js +0 -42
- package/dist/install/missing-skills.js.map +0 -1
- package/dist/install/notify.d.ts +0 -6
- package/dist/install/notify.d.ts.map +0 -1
- package/dist/install/notify.js +0 -13
- package/dist/install/notify.js.map +0 -1
- package/dist/install/orchestrate.d.ts +0 -47
- package/dist/install/orchestrate.d.ts.map +0 -1
- package/dist/install/orchestrate.js +0 -98
- package/dist/install/orchestrate.js.map +0 -1
- package/dist/install/skill-manifest-sync.d.ts +0 -11
- package/dist/install/skill-manifest-sync.d.ts.map +0 -1
- package/dist/install/skill-manifest-sync.js +0 -65
- package/dist/install/skill-manifest-sync.js.map +0 -1
- package/dist/openapi.d.ts +0 -15
- package/dist/openapi.d.ts.map +0 -1
- package/dist/openapi.js +0 -286
- package/dist/openapi.js.map +0 -1
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* sync-skills.ts — `mmagent sync-skills` subcommand.
|
|
3
|
+
*
|
|
4
|
+
* Single command for skill management: idempotent upsert of every shipped
|
|
5
|
+
* skill into every detected (or specified) client. Compares canonical
|
|
6
|
+
* SUPPORTED_SKILLS against on-disk SKILL.md and the install manifest, and:
|
|
7
|
+
* - installs skills not present on disk
|
|
8
|
+
* - overwrites skills whose installed version differs from canonical
|
|
9
|
+
* - removes skills no longer in SUPPORTED_SKILLS (orphan cleanup)
|
|
10
|
+
* - rewrites the install manifest to reflect post-sync state
|
|
11
|
+
*
|
|
12
|
+
* Replaces install-skill + update-skills as of 4.0.2.
|
|
13
|
+
*
|
|
14
|
+
* Usage:
|
|
15
|
+
* mmagent sync-skills [--target=<client>] [--all-targets] [--dry-run] [--json]
|
|
16
|
+
* [--silent] [--best-effort] [--if-exists]
|
|
17
|
+
*
|
|
18
|
+
* Exit codes:
|
|
19
|
+
* 0 — success (or no clients detected)
|
|
20
|
+
* 1 — one or more skills failed to write/remove
|
|
21
|
+
* 2 — manifest was written by a newer mmagent (FutureManifestError)
|
|
22
|
+
* 3 — explicit --target was not a known client
|
|
23
|
+
*/
|
|
24
|
+
import * as os from 'node:os';
|
|
25
|
+
import * as fs from 'node:fs';
|
|
26
|
+
import * as path from 'node:path';
|
|
27
|
+
import minimist from 'minimist';
|
|
28
|
+
import matter from 'gray-matter';
|
|
29
|
+
import { ALL_CLIENTS, detectClients, listEntries, appendEntry, removeEntry, FutureManifestError, } from '@zhixuan92/multi-model-agent-core/tool-surface/manifest';
|
|
30
|
+
import { SUPPORTED_SKILLS, readSkillContent, getSkillsRoot, } from '@zhixuan92/multi-model-agent-core/tool-surface/discover';
|
|
31
|
+
import { writeSkillToClient, removeSkillFromClient, resolveClientInstallDir, } from '@zhixuan92/multi-model-agent-core/tool-surface/skill-installer';
|
|
32
|
+
export const ExitCode = Object.freeze({
|
|
33
|
+
SUCCESS: 0,
|
|
34
|
+
ERR_PARTIAL: 1,
|
|
35
|
+
ERR_FUTURE_MANIFEST: 2,
|
|
36
|
+
ERR_UNKNOWN_TARGET: 3,
|
|
37
|
+
});
|
|
38
|
+
export function parseArgs(argv) {
|
|
39
|
+
const args = minimist(argv, {
|
|
40
|
+
string: ['target'],
|
|
41
|
+
boolean: ['dry-run', 'json', 'all-targets'],
|
|
42
|
+
alias: { t: 'target', j: 'json' },
|
|
43
|
+
});
|
|
44
|
+
let targets = null;
|
|
45
|
+
if (args.target) {
|
|
46
|
+
const t = Array.isArray(args.target) ? args.target : [args.target];
|
|
47
|
+
targets = t.map((s) => s);
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
targets,
|
|
51
|
+
allTargets: args['all-targets'] === true,
|
|
52
|
+
dryRun: args['dry-run'] === true,
|
|
53
|
+
json: args['json'] === true,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export class UnknownTargetError extends Error {
|
|
57
|
+
code = 'unknown_target';
|
|
58
|
+
constructor(target, valid) {
|
|
59
|
+
super(`Unknown target '${target}'. Valid: ${valid.join(', ')}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export function resolveTargets(explicit, allTargets, homeDir) {
|
|
63
|
+
if (allTargets)
|
|
64
|
+
return [...ALL_CLIENTS];
|
|
65
|
+
if (explicit !== null) {
|
|
66
|
+
for (const t of explicit) {
|
|
67
|
+
if (!ALL_CLIENTS.includes(t))
|
|
68
|
+
throw new UnknownTargetError(t, ALL_CLIENTS);
|
|
69
|
+
}
|
|
70
|
+
return Array.from(new Set(explicit));
|
|
71
|
+
}
|
|
72
|
+
return detectClients(homeDir);
|
|
73
|
+
}
|
|
74
|
+
function versionFromContent(content) {
|
|
75
|
+
try {
|
|
76
|
+
const parsed = matter(content);
|
|
77
|
+
const v = parsed.data['version'];
|
|
78
|
+
return typeof v === 'string' && v.length > 0 ? v : 'unknown';
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return 'unknown';
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function manifestPresent(homeDir) {
|
|
85
|
+
return fs.existsSync(path.join(homeDir, '.multi-model', 'install-manifest.json'));
|
|
86
|
+
}
|
|
87
|
+
function readInstalledVersion(skillName, target, homeDir) {
|
|
88
|
+
const dir = resolveClientInstallDir(target, homeDir);
|
|
89
|
+
if (!dir)
|
|
90
|
+
return null;
|
|
91
|
+
const skillFile = path.join(dir, skillName, 'SKILL.md');
|
|
92
|
+
try {
|
|
93
|
+
return versionFromContent(fs.readFileSync(skillFile, 'utf8'));
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export async function runSyncSkills(deps = {}) {
|
|
100
|
+
const argv = deps.argv ?? process.argv.slice(2);
|
|
101
|
+
const homeDir = deps.homeDir ?? os.homedir();
|
|
102
|
+
const skillsRoot = getSkillsRoot(deps.skillsRoot);
|
|
103
|
+
const stdout = deps.stdout ?? process.stdout.write.bind(process.stdout);
|
|
104
|
+
const stderr = deps.stderr ?? process.stderr.write.bind(process.stderr);
|
|
105
|
+
const silent = deps.silent ?? false;
|
|
106
|
+
const bestEffort = deps.bestEffort ?? false;
|
|
107
|
+
const log = silent ? (_) => true : stdout;
|
|
108
|
+
if (deps.ifExists && !manifestPresent(homeDir))
|
|
109
|
+
return ExitCode.SUCCESS;
|
|
110
|
+
const parsed = parseArgs(argv);
|
|
111
|
+
let targets;
|
|
112
|
+
try {
|
|
113
|
+
targets = resolveTargets(parsed.targets, parsed.allTargets, homeDir);
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
if (err instanceof UnknownTargetError) {
|
|
117
|
+
stderr(`mmagent sync-skills: ${err.message}\n`);
|
|
118
|
+
return bestEffort ? 0 : ExitCode.ERR_UNKNOWN_TARGET;
|
|
119
|
+
}
|
|
120
|
+
throw err;
|
|
121
|
+
}
|
|
122
|
+
if (targets.length === 0) {
|
|
123
|
+
if (parsed.json) {
|
|
124
|
+
stdout(JSON.stringify({ targets: [], outcome: 'no-clients-detected' }) + '\n');
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
log('No clients detected. Use --target=<client> or --all-targets.\n');
|
|
128
|
+
}
|
|
129
|
+
return ExitCode.SUCCESS;
|
|
130
|
+
}
|
|
131
|
+
let manifestEntries;
|
|
132
|
+
try {
|
|
133
|
+
manifestEntries = listEntries(homeDir);
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
if (err instanceof FutureManifestError) {
|
|
137
|
+
stderr(`mmagent sync-skills: ${err.message}\n`);
|
|
138
|
+
return bestEffort ? 0 : ExitCode.ERR_FUTURE_MANIFEST;
|
|
139
|
+
}
|
|
140
|
+
if (bestEffort)
|
|
141
|
+
return 0;
|
|
142
|
+
throw err;
|
|
143
|
+
}
|
|
144
|
+
const outcome = {
|
|
145
|
+
installed: [],
|
|
146
|
+
updated: [],
|
|
147
|
+
removed: [],
|
|
148
|
+
upToDate: [],
|
|
149
|
+
errors: [],
|
|
150
|
+
};
|
|
151
|
+
// Pass 1: orphan removal — drop skills that disappeared from the bundle.
|
|
152
|
+
for (const entry of manifestEntries) {
|
|
153
|
+
if (SUPPORTED_SKILLS.includes(entry.name))
|
|
154
|
+
continue;
|
|
155
|
+
for (const target of entry.targets) {
|
|
156
|
+
if (parsed.dryRun) {
|
|
157
|
+
outcome.removed.push({ skill: entry.name, target });
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
try {
|
|
161
|
+
removeSkillFromClient(entry.name, target, homeDir);
|
|
162
|
+
outcome.removed.push({ skill: entry.name, target });
|
|
163
|
+
}
|
|
164
|
+
catch (err) {
|
|
165
|
+
outcome.errors.push({
|
|
166
|
+
skill: entry.name,
|
|
167
|
+
target,
|
|
168
|
+
reason: err instanceof Error ? err.message : String(err),
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (!parsed.dryRun)
|
|
173
|
+
removeEntry(entry.name, [], homeDir);
|
|
174
|
+
}
|
|
175
|
+
// Pass 2: upsert canonical skills × resolved targets.
|
|
176
|
+
for (const skillName of SUPPORTED_SKILLS) {
|
|
177
|
+
const content = readSkillContent(skillName, skillsRoot);
|
|
178
|
+
if (content === null) {
|
|
179
|
+
outcome.errors.push({
|
|
180
|
+
skill: skillName,
|
|
181
|
+
target: targets[0],
|
|
182
|
+
reason: `Bundled SKILL.md not found at ${path.join(skillsRoot, skillName, 'SKILL.md')}`,
|
|
183
|
+
});
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
const canonicalVersion = versionFromContent(content);
|
|
187
|
+
for (const target of targets) {
|
|
188
|
+
const installedVersion = readInstalledVersion(skillName, target, homeDir);
|
|
189
|
+
const action = installedVersion === null
|
|
190
|
+
? 'install'
|
|
191
|
+
: installedVersion !== canonicalVersion
|
|
192
|
+
? 'update'
|
|
193
|
+
: 'up-to-date';
|
|
194
|
+
if (action === 'up-to-date') {
|
|
195
|
+
outcome.upToDate.push({ skill: skillName, target });
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
if (parsed.dryRun) {
|
|
199
|
+
if (action === 'install') {
|
|
200
|
+
outcome.installed.push({ skill: skillName, target, version: canonicalVersion });
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
outcome.updated.push({ skill: skillName, target, from: installedVersion, to: canonicalVersion });
|
|
204
|
+
}
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
try {
|
|
208
|
+
writeSkillToClient(skillName, content, target, homeDir, skillsRoot, canonicalVersion);
|
|
209
|
+
appendEntry(skillName, canonicalVersion, [target], homeDir);
|
|
210
|
+
if (action === 'install') {
|
|
211
|
+
outcome.installed.push({ skill: skillName, target, version: canonicalVersion });
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
outcome.updated.push({ skill: skillName, target, from: installedVersion, to: canonicalVersion });
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
catch (err) {
|
|
218
|
+
outcome.errors.push({
|
|
219
|
+
skill: skillName,
|
|
220
|
+
target,
|
|
221
|
+
reason: err instanceof Error ? err.message : String(err),
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
if (parsed.json) {
|
|
227
|
+
stdout(JSON.stringify({ dryRun: parsed.dryRun, targets, outcome }) + '\n');
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
const verb = parsed.dryRun ? 'Would sync' : 'Synced';
|
|
231
|
+
const parts = [];
|
|
232
|
+
if (outcome.installed.length > 0)
|
|
233
|
+
parts.push(`${outcome.installed.length} installed`);
|
|
234
|
+
if (outcome.updated.length > 0)
|
|
235
|
+
parts.push(`${outcome.updated.length} updated`);
|
|
236
|
+
if (outcome.removed.length > 0)
|
|
237
|
+
parts.push(`${outcome.removed.length} orphan removed`);
|
|
238
|
+
if (outcome.upToDate.length > 0)
|
|
239
|
+
parts.push(`${outcome.upToDate.length} up-to-date`);
|
|
240
|
+
if (outcome.errors.length > 0)
|
|
241
|
+
parts.push(`${outcome.errors.length} errors`);
|
|
242
|
+
const summary = parts.length > 0 ? parts.join(', ') : 'nothing to do';
|
|
243
|
+
log(`${verb} ${SUPPORTED_SKILLS.length} skill(s) → ${targets.join(', ')} (${summary}).\n`);
|
|
244
|
+
for (const e of outcome.errors)
|
|
245
|
+
stderr(`error: ${e.skill} → ${e.target}: ${e.reason}\n`);
|
|
246
|
+
}
|
|
247
|
+
if (outcome.errors.length > 0)
|
|
248
|
+
return bestEffort ? 0 : ExitCode.ERR_PARTIAL;
|
|
249
|
+
return ExitCode.SUCCESS;
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=sync-skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-skills.js","sourceRoot":"","sources":["../../src/cli/sync-skills.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/telemetry.js
CHANGED
|
@@ -79,11 +79,11 @@ async function runEnable(deps) {
|
|
|
79
79
|
}
|
|
80
80
|
const telemetry = (cfg.telemetry ?? {});
|
|
81
81
|
telemetry.enabled = true;
|
|
82
|
-
telemetry.consentSchemaVersion
|
|
82
|
+
delete telemetry.consentSchemaVersion;
|
|
83
83
|
cfg.telemetry = telemetry;
|
|
84
84
|
try {
|
|
85
85
|
writeConfigObj(deps.homeDir, cfg);
|
|
86
|
-
stdout('Telemetry enabled (config.telemetry.enabled = true
|
|
86
|
+
stdout('Telemetry enabled (config.telemetry.enabled = true)\n');
|
|
87
87
|
return 0;
|
|
88
88
|
}
|
|
89
89
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/cli/telemetry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/cli/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,17 @@ export interface AsyncDispatchOptions<TResult> {
|
|
|
8
8
|
batchRegistry: BatchRegistry;
|
|
9
9
|
projectContext: ProjectContext;
|
|
10
10
|
deps: HandlerDeps;
|
|
11
|
+
/**
|
|
12
|
+
* Caller identity from the x-mma-client request header. Threaded into
|
|
13
|
+
* ExecutionContext so the cloud `task.completed` event carries the client.
|
|
14
|
+
* Without this the wire event has an empty string and the backend rejects
|
|
15
|
+
* the upload (STRICT_ID_REGEX). triggeringSkill was dropped because it's
|
|
16
|
+
* implied by `route` for the 99% case (mma-<route> → /<route>).
|
|
17
|
+
*/
|
|
18
|
+
caller?: {
|
|
19
|
+
client: string;
|
|
20
|
+
mainModel?: string | null;
|
|
21
|
+
};
|
|
11
22
|
/**
|
|
12
23
|
* The async function that does the real work. Receives the ExecutionContext
|
|
13
24
|
* and the pre-allocated batchId.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-dispatch.d.ts","sourceRoot":"","sources":["../../src/http/async-dispatch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"async-dispatch.d.ts","sourceRoot":"","sources":["../../src/http/async-dispatch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,MAAM,WAAW,oBAAoB,CAAC,OAAO;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACvD;;;OAGG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxE;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,OAAO,EACnC,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAClC,mBAAmB,CA8HrB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// packages/server/src/http/async-dispatch.ts
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
|
+
import { STAGE_ORDER_BY_ROUTE } from '@zhixuan92/multi-model-agent-core/lifecycle/stage-progression';
|
|
3
4
|
import { buildExecutionContext } from './execution-context.js';
|
|
4
5
|
/**
|
|
5
6
|
* Registers a new batch as 'pending', schedules the executor via setImmediate,
|
|
@@ -26,22 +27,56 @@ export function asyncDispatch(opts) {
|
|
|
26
27
|
blocksReleased: false,
|
|
27
28
|
});
|
|
28
29
|
// Build execution context for this batch
|
|
29
|
-
const ctx = buildExecutionContext(deps, projectContext, batchId, tool);
|
|
30
|
+
const ctx = buildExecutionContext(deps, projectContext, batchId, tool, opts.caller);
|
|
30
31
|
// Schedule executor asynchronously — do not await here
|
|
31
32
|
const startedAtMs = Date.now();
|
|
32
33
|
setImmediate(() => {
|
|
33
34
|
void (async () => {
|
|
34
35
|
try {
|
|
35
36
|
deps.bus.emit({ event: 'task_started', ts: new Date().toISOString(), batchId, taskIndex: 0, route: tool, cwd: projectCwd });
|
|
36
|
-
// Mark the batch as running so
|
|
37
|
-
// "1/1 running, Xs elapsed"
|
|
38
|
-
//
|
|
39
|
-
//
|
|
37
|
+
// Mark the batch as running so /batch/:id polling reports
|
|
38
|
+
// "1/1 running, Xs elapsed" the instant the executor begins.
|
|
39
|
+
// Without bumping the headline snapshot here, the polling endpoint
|
|
40
|
+
// returns the initial "0/N queued" fallback until the runner's first
|
|
41
|
+
// heartbeat arrives — which can be many seconds (or minutes) later
|
|
42
|
+
// because heartbeats fire from inside provider.run. That gap is what
|
|
43
|
+
// made 4.0.1 audits look like the daemon was deadlocked when the
|
|
44
|
+
// only thing actually slow was the LLM call.
|
|
40
45
|
const entry = batchRegistry.get(batchId);
|
|
41
46
|
if (entry) {
|
|
42
47
|
entry.tasksTotal = 1;
|
|
43
48
|
entry.tasksStarted = 1;
|
|
44
49
|
entry.tasksCompleted = 0;
|
|
50
|
+
// Use the route's stage-order denominator (3 for audit, 7 for
|
|
51
|
+
// delegate, etc.) so polling shows "Implementing (1/3)" the
|
|
52
|
+
// instant the executor starts — instead of an opaque
|
|
53
|
+
// "1/1 running" that doesn't tell the main agent how far along
|
|
54
|
+
// the lifecycle has progressed.
|
|
55
|
+
const stagesTotal = STAGE_ORDER_BY_ROUTE[tool]?.length ?? 1;
|
|
56
|
+
const initialStage = STAGE_ORDER_BY_ROUTE[tool]?.[0] ?? 'Running';
|
|
57
|
+
const prefix = `${initialStage} (1/${stagesTotal}) - `;
|
|
58
|
+
const fallback = `${initialStage} (1/${stagesTotal})`;
|
|
59
|
+
batchRegistry.updateRunningHeadlineSnapshot(batchId, {
|
|
60
|
+
prefix,
|
|
61
|
+
statsClause: ``,
|
|
62
|
+
dispatchedAt: entry.runningHeadlineSnapshot.dispatchedAt,
|
|
63
|
+
fallback,
|
|
64
|
+
});
|
|
65
|
+
// Also seed the per-task snapshot so multi-task polling formatters
|
|
66
|
+
// don't fall through to the legacy single-snapshot path before the
|
|
67
|
+
// first runner_turn_completed event fires.
|
|
68
|
+
batchRegistry.updatePerTaskHeadlineSnapshot(batchId, 0, {
|
|
69
|
+
prefix,
|
|
70
|
+
statsClause: ``,
|
|
71
|
+
dispatchedAt: entry.runningHeadlineSnapshot.dispatchedAt,
|
|
72
|
+
fallback,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
// Verbose-stderr breadcrumb so operators tailing the daemon see the
|
|
76
|
+
// executor lifecycle past request_received without grepping the
|
|
77
|
+
// JSONL log. Cheap; gated on diagnostics.verbose.
|
|
78
|
+
if (deps.config.diagnostics?.verbose) {
|
|
79
|
+
process.stdout.write(`[mmagent verbose] event=executor_started ts=${new Date().toISOString()} batch=${batchId} route=${tool}\n`);
|
|
45
80
|
}
|
|
46
81
|
const result = await opts.executor(ctx, batchId);
|
|
47
82
|
const resultObj = result;
|
|
@@ -50,7 +85,27 @@ export function asyncDispatch(opts) {
|
|
|
50
85
|
entryAfter.tasksCompleted = 1;
|
|
51
86
|
batchRegistry.complete(batchId, result);
|
|
52
87
|
const taskCount = Array.isArray(resultObj?.results) ? resultObj.results.length : 0;
|
|
53
|
-
|
|
88
|
+
const durationMs = Date.now() - startedAtMs;
|
|
89
|
+
// Gap 5 fix (4.0.3+): inspect the envelope for structured failure
|
|
90
|
+
// signals. The executor may catch errors and package them into a
|
|
91
|
+
// result envelope (with structuredError or status='error') instead
|
|
92
|
+
// of throwing — without this check, batch_completed fires
|
|
93
|
+
// misleadingly while the verbose log gives operators no signal
|
|
94
|
+
// that anything went wrong. Detection uses STRUCTURED FIELDS ONLY,
|
|
95
|
+
// never string comparisons.
|
|
96
|
+
const failure = detectFailure(resultObj);
|
|
97
|
+
if (failure) {
|
|
98
|
+
deps.bus.emit({ event: 'batch_failed', ts: new Date().toISOString(), batchId, tool, durationMs, errorCode: failure.code, errorMessage: failure.message });
|
|
99
|
+
if (deps.config.diagnostics?.verbose) {
|
|
100
|
+
process.stdout.write(`[mmagent verbose] event=batch_failed ts=${new Date().toISOString()} batch=${batchId} route=${tool} duration_ms=${durationMs} error_code=${failure.code} error="${failure.message.replace(/"/g, '\\"')}"\n`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
deps.bus.emit({ event: 'batch_completed', ts: new Date().toISOString(), batchId, tool, durationMs, taskCount });
|
|
105
|
+
if (deps.config.diagnostics?.verbose) {
|
|
106
|
+
process.stdout.write(`[mmagent verbose] event=batch_completed ts=${new Date().toISOString()} batch=${batchId} route=${tool} duration_ms=${durationMs}\n`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
54
109
|
}
|
|
55
110
|
catch (err) {
|
|
56
111
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -60,7 +115,11 @@ export function asyncDispatch(opts) {
|
|
|
60
115
|
message,
|
|
61
116
|
...(stack !== undefined && { stack }),
|
|
62
117
|
});
|
|
63
|
-
|
|
118
|
+
const durationMs = Date.now() - startedAtMs;
|
|
119
|
+
deps.bus.emit({ event: 'batch_failed', ts: new Date().toISOString(), batchId, tool, durationMs, errorCode: 'runner_crash', errorMessage: message });
|
|
120
|
+
if (deps.config.diagnostics?.verbose) {
|
|
121
|
+
process.stdout.write(`[mmagent verbose] event=batch_failed ts=${new Date().toISOString()} batch=${batchId} route=${tool} duration_ms=${durationMs} error="${message.replace(/"/g, '\\"')}"\n`);
|
|
122
|
+
}
|
|
64
123
|
}
|
|
65
124
|
})();
|
|
66
125
|
});
|
|
@@ -69,4 +128,50 @@ export function asyncDispatch(opts) {
|
|
|
69
128
|
statusUrl: `/batch/${batchId}`,
|
|
70
129
|
};
|
|
71
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Inspect an executor return envelope for structured failure signals.
|
|
133
|
+
* Returns { code, message } when the envelope indicates failure, null
|
|
134
|
+
* otherwise.
|
|
135
|
+
*
|
|
136
|
+
* Per the Gap 5 fix design (wire-telemetry-gaps plan): NO string
|
|
137
|
+
* comparison to "batch succeeded". Use only:
|
|
138
|
+
* 1. Any task result with `structuredError` (most authoritative)
|
|
139
|
+
* 2. Any task result with `status` other than 'ok'
|
|
140
|
+
* 3. Envelope-level `error` object whose `kind` is not 'not_applicable'
|
|
141
|
+
* (notApplicable() is the structured "no error" sentinel)
|
|
142
|
+
*/
|
|
143
|
+
function detectFailure(envelope) {
|
|
144
|
+
if (!envelope)
|
|
145
|
+
return null;
|
|
146
|
+
const results = Array.isArray(envelope.results) ? envelope.results : [];
|
|
147
|
+
// Source 1: explicit structuredError on any task result
|
|
148
|
+
for (const r of results) {
|
|
149
|
+
const se = r.structuredError;
|
|
150
|
+
if (se && typeof se.code === 'string') {
|
|
151
|
+
return { code: se.code, message: typeof se.message === 'string' ? se.message : se.code };
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// Source 2: any task result with status === 'error'.
|
|
155
|
+
// 'incomplete' is intentionally NOT treated as failure — review-rework
|
|
156
|
+
// paths can transit through 'incomplete' on intermediate rounds while
|
|
157
|
+
// the eventual envelope still represents a valid (if imperfect) batch.
|
|
158
|
+
// Only 'error' and 'failed' are categorical batch-level failures.
|
|
159
|
+
for (const r of results) {
|
|
160
|
+
const status = r.status;
|
|
161
|
+
if (typeof status === 'string' && (status === 'error' || status === 'failed')) {
|
|
162
|
+
const code = (typeof r.errorCode === 'string' && r.errorCode.length > 0) ? r.errorCode : status;
|
|
163
|
+
const msg = (typeof r.error === 'string' && r.error.length > 0) ? r.error : status;
|
|
164
|
+
return { code, message: msg };
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// Source 3: envelope-level error object with kind != 'not_applicable'
|
|
168
|
+
const env = envelope.error;
|
|
169
|
+
if (env && typeof env.kind === 'string' && env.kind !== 'not_applicable') {
|
|
170
|
+
return {
|
|
171
|
+
code: typeof env.code === 'string' ? env.code : 'envelope_error',
|
|
172
|
+
message: typeof env.message === 'string' ? env.message : 'envelope error',
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
72
177
|
//# sourceMappingURL=async-dispatch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-dispatch.js","sourceRoot":"","sources":["../../src/http/async-dispatch.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"async-dispatch.js","sourceRoot":"","sources":["../../src/http/async-dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,5 +10,8 @@ import type { ProjectContext } from '@zhixuan92/multi-model-agent-core';
|
|
|
10
10
|
* subset of fields populated here. Phase B/E will migrate executors into the
|
|
11
11
|
* full lifecycle, after which this shim can be deleted.
|
|
12
12
|
*/
|
|
13
|
-
export declare function buildExecutionContext(deps: HandlerDeps, pc: ProjectContext, batchId: string, route?: string
|
|
13
|
+
export declare function buildExecutionContext(deps: HandlerDeps, pc: ProjectContext, batchId: string, route?: string, caller?: {
|
|
14
|
+
client: string;
|
|
15
|
+
mainModel?: string | null;
|
|
16
|
+
}): ExecutionContext;
|
|
14
17
|
//# sourceMappingURL=execution-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../src/http/execution-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGxE;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../src/http/execution-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGxE;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACrD,gBAAgB,CA6DlB"}
|
|
@@ -8,7 +8,7 @@ import { getRecorder } from '../telemetry/recorder.js';
|
|
|
8
8
|
* subset of fields populated here. Phase B/E will migrate executors into the
|
|
9
9
|
* full lifecycle, after which this shim can be deleted.
|
|
10
10
|
*/
|
|
11
|
-
export function buildExecutionContext(deps, pc, batchId, route) {
|
|
11
|
+
export function buildExecutionContext(deps, pc, batchId, route, caller) {
|
|
12
12
|
const recordHeartbeat = (tick) => {
|
|
13
13
|
const effectiveBatchId = tick.batchId || batchId;
|
|
14
14
|
const entry = deps.batchRegistry.get(effectiveBatchId);
|
|
@@ -32,10 +32,12 @@ export function buildExecutionContext(deps, pc, batchId, route) {
|
|
|
32
32
|
config: deps.config,
|
|
33
33
|
logger: deps.logger,
|
|
34
34
|
bus: deps.bus,
|
|
35
|
-
|
|
35
|
+
// Per-request X-MMA-Main-Model header is the only source. Enforced at
|
|
36
|
+
// the request-pipeline boundary (4.0.3+); by the time we reach this
|
|
37
|
+
// builder, caller.mainModel is guaranteed non-null for tool routes.
|
|
38
|
+
mainModel: caller?.mainModel ?? null,
|
|
36
39
|
route: route ?? '',
|
|
37
|
-
client: '',
|
|
38
|
-
triggeringSkill: '',
|
|
40
|
+
client: caller?.client ?? 'other',
|
|
39
41
|
batchId,
|
|
40
42
|
recordHeartbeat,
|
|
41
43
|
recorder,
|
|
@@ -54,8 +56,14 @@ export function buildExecutionContext(deps, pc, batchId, route) {
|
|
|
54
56
|
stall: { controller: new AbortController(), lastEventAtMs: now, fired: false },
|
|
55
57
|
implementerToolMode: undefined,
|
|
56
58
|
heartbeat: undefined,
|
|
57
|
-
|
|
58
|
-
verbose
|
|
59
|
+
// Propagate config.diagnostics.verbose so the runner-shell + adapter
|
|
60
|
+
// emit per-turn events. Without this, the runner think verbose is off
|
|
61
|
+
// even when the daemon was started with diagnostics.verbose=true, and
|
|
62
|
+
// the only stderr breadcrumbs are the few HTTP-handler events.
|
|
63
|
+
verboseStream: deps.config.diagnostics?.verbose
|
|
64
|
+
? (line) => { process.stderr.write(line); }
|
|
65
|
+
: () => { },
|
|
66
|
+
verbose: deps.config.diagnostics?.verbose ?? false,
|
|
59
67
|
outputTargets: [],
|
|
60
68
|
reviewerEngine: deps.reviewerEngine,
|
|
61
69
|
annotatorEngine: deps.annotatorEngine,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-context.js","sourceRoot":"","sources":["../../src/http/execution-context.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAiB,EACjB,EAAkB,EAClB,OAAe,EACf,KAAc;
|
|
1
|
+
{"version":3,"file":"execution-context.js","sourceRoot":"","sources":["../../src/http/execution-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../../src/http/handlers/control/batch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAiB,KAAK,aAAa,EAAiB,MAAM,mCAAmC,CAAC;AAErG,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../../src/http/handlers/control/batch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAiB,KAAK,aAAa,EAAiB,MAAM,mCAAmC,CAAC;AAErG,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU,CAwJpE"}
|