@zhihaohong52/sonata 0.8.2 → 0.8.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/dist/cli.js +72 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/agents.js +223 -0
- package/dist/commands/agents.js.map +1 -0
- package/dist/commands/reset.js +340 -0
- package/dist/commands/reset.js.map +1 -0
- package/dist/detect.js +14 -4
- package/dist/detect.js.map +1 -1
- package/dist/init/guidance.js +80 -30
- package/dist/init/guidance.js.map +1 -1
- package/dist/init/toml.js +137 -0
- package/dist/init/toml.js.map +1 -1
- package/dist/settings.js +28 -0
- package/dist/settings.js.map +1 -1
- package/dist/tui-ink/agents-app.js +67 -0
- package/dist/tui-ink/agents-app.js.map +1 -0
- package/dist/tui-ink/agents-run.js +23 -0
- package/dist/tui-ink/agents-run.js.map +1 -0
- package/dist/tui-ink/app-state.js +78 -0
- package/dist/tui-ink/app-state.js.map +1 -1
- package/dist/tui-ink/app.js +33 -12
- package/dist/tui-ink/app.js.map +1 -1
- package/dist/tui-ink/components/models-step.js +17 -4
- package/dist/tui-ink/components/models-step.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `sonata reset` — undo what `sonata init` wrote, and nothing else.
|
|
3
|
+
*
|
|
4
|
+
* Init scatters its output across five places: the config, the generated tier
|
|
5
|
+
* agents, the loop skill, a block inside a `CLAUDE.md` sonata does not own,
|
|
6
|
+
* and two settings files holding the routing env, four lifecycle hooks, the
|
|
7
|
+
* permission hook and the tool allow-list. Undoing that by hand means knowing
|
|
8
|
+
* all five, which is why the only reliable answer used to be "delete the repo
|
|
9
|
+
* and start again".
|
|
10
|
+
*
|
|
11
|
+
* Three rules shape the whole command:
|
|
12
|
+
*
|
|
13
|
+
* - **It removes only what sonata wrote.** An agent file without sonata's
|
|
14
|
+
* marker is left alone; `permissions.allow` keeps every entry that is not
|
|
15
|
+
* sonata's; `CLAUDE.md` loses what is between the markers and not one byte
|
|
16
|
+
* more. A settings file is rewritten, never deleted — sonata is one writer
|
|
17
|
+
* of it among several.
|
|
18
|
+
* - **It keeps everything that is expensive to recreate**: API keys, the usage
|
|
19
|
+
* ledger, the ranking catalogs, and the `.sonata/` run store. Those are not
|
|
20
|
+
* configuration, and a user resetting a bad setup should not lose their
|
|
21
|
+
* spend history or have to re-enter every key. The kept list is printed, so
|
|
22
|
+
* "reset" cannot be read as "removed everything".
|
|
23
|
+
* - **It plans first, then applies.** The plan is a list of typed actions with
|
|
24
|
+
* a label each, so the confirmation names every path before anything is
|
|
25
|
+
* touched, and the set shown is exactly the set removed.
|
|
26
|
+
*/
|
|
27
|
+
import { existsSync, readFileSync, readdirSync, rmSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
28
|
+
import { join } from 'node:path';
|
|
29
|
+
import { GLOBAL_CONFIG_RELATIVE } from '../config.js';
|
|
30
|
+
import { isSonataAgentText } from '../detect.js';
|
|
31
|
+
import { agentsDirFor, configPathFor } from '../init/helpers.js';
|
|
32
|
+
import { removeGuidance } from '../init/guidance.js';
|
|
33
|
+
import { readSettings, revokeSonataTools, settingsPath, uninstallHook, writeSettings, } from '../settings.js';
|
|
34
|
+
import { planRouteManual, planRouteOff, routeSessionsFile, routeSettingsFile, routeSubagentsFile } from './route.js';
|
|
35
|
+
/**
|
|
36
|
+
* The agent files in this directory that sonata generated.
|
|
37
|
+
*
|
|
38
|
+
* Only a missing directory is an empty answer. Every other failure — a
|
|
39
|
+
* permission error, a bad mount, an unreadable file — used to be flattened to
|
|
40
|
+
* `[]` or to `false`, which produced a plan with no agents in it and a command
|
|
41
|
+
* that reported success having left every agent installed. That is the worst
|
|
42
|
+
* shape a cleanup can fail in: silent, and indistinguishable from having had
|
|
43
|
+
* nothing to do. Unreadable files are named as warnings instead, and the
|
|
44
|
+
* ownership test is the same one `sync` and `prune` use.
|
|
45
|
+
*/
|
|
46
|
+
function sonataAgents(dir) {
|
|
47
|
+
const warnings = [];
|
|
48
|
+
let entries;
|
|
49
|
+
try {
|
|
50
|
+
entries = readdirSync(dir);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
if (err.code === 'ENOENT')
|
|
54
|
+
return { files: [], warnings };
|
|
55
|
+
return { files: [], warnings: [`could not read ${dir}: ${err.message} — agent files left in place`] };
|
|
56
|
+
}
|
|
57
|
+
const files = [];
|
|
58
|
+
for (const f of entries.filter((name) => name.endsWith('.md')).sort()) {
|
|
59
|
+
const path = join(dir, f);
|
|
60
|
+
try {
|
|
61
|
+
if (isSonataAgentText(readFileSync(path, 'utf8')))
|
|
62
|
+
files.push(f);
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
warnings.push(`could not read ${path}: ${err.message} — left in place`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return { files, warnings };
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Strip sonata out of one settings file.
|
|
72
|
+
*
|
|
73
|
+
* Every transform is by command *shape* rather than by this install's own
|
|
74
|
+
* path: a user who ran `sonata init` from a different checkout — an npm
|
|
75
|
+
* install now replaced by a clone, say — would otherwise have their hooks left
|
|
76
|
+
* behind by the very command whose job is removing them. `planRouteOff` can
|
|
77
|
+
* refuse (a non-localhost base URL it did not write), and that refusal must
|
|
78
|
+
* not take the rest of the file down with it, so it is caught and reported.
|
|
79
|
+
*/
|
|
80
|
+
export function planSettingsReset(settings, packageRoot, scope) {
|
|
81
|
+
let next = settings;
|
|
82
|
+
let changed = false;
|
|
83
|
+
const warnings = [];
|
|
84
|
+
try {
|
|
85
|
+
const off = planRouteOff(next, packageRoot);
|
|
86
|
+
next = off.settings;
|
|
87
|
+
changed = changed || off.changed;
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
warnings.push(`left the routing env in place: ${err.message}`);
|
|
91
|
+
}
|
|
92
|
+
const manual = planRouteManual(next, packageRoot, scope);
|
|
93
|
+
next = manual.settings;
|
|
94
|
+
changed = changed || manual.changed;
|
|
95
|
+
// The permission hook is found by the file it runs, not by this install's
|
|
96
|
+
// absolute path, for the same reason `planRouteOff` finds its own that way.
|
|
97
|
+
for (const [event, needle] of [
|
|
98
|
+
['PreToolUse', 'capture-mode.mjs'],
|
|
99
|
+
['SessionStart', 'ensure-serve.mjs'],
|
|
100
|
+
['SessionStart', 'route-session.mjs'],
|
|
101
|
+
['SessionEnd', 'route-session.mjs'],
|
|
102
|
+
['SubagentStart', 'route-subagent.mjs'],
|
|
103
|
+
['SubagentStop', 'route-subagent.mjs'],
|
|
104
|
+
]) {
|
|
105
|
+
for (;;) {
|
|
106
|
+
const command = (next.hooks?.[event] ?? [])
|
|
107
|
+
.flatMap((entry) => entry.hooks)
|
|
108
|
+
.find((h) => h.command.includes(needle))?.command;
|
|
109
|
+
if (command === undefined)
|
|
110
|
+
break;
|
|
111
|
+
const removed = uninstallHook(next, command, event);
|
|
112
|
+
next = removed.settings;
|
|
113
|
+
changed = changed || removed.changed;
|
|
114
|
+
// `uninstallHook` matches by exact command, so a second install's copy
|
|
115
|
+
// of the same hook survives the first pass. Without this guard, a
|
|
116
|
+
// no-op removal would also spin here forever.
|
|
117
|
+
if (!removed.changed)
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const revoked = revokeSonataTools(next);
|
|
122
|
+
next = revoked.settings;
|
|
123
|
+
changed = changed || revoked.changed;
|
|
124
|
+
return { settings: next, changed, warnings };
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* What `sonata reset` would do, without doing any of it.
|
|
128
|
+
*
|
|
129
|
+
* Reads the filesystem — the plan has to name real paths — but writes nothing,
|
|
130
|
+
* so it doubles as the dry run behind the confirmation prompt.
|
|
131
|
+
*/
|
|
132
|
+
export function planReset(opts) {
|
|
133
|
+
const scope = opts.scope ?? 'project';
|
|
134
|
+
const { cwd, home, packageRoot } = opts;
|
|
135
|
+
const base = scope === 'global' ? home : cwd;
|
|
136
|
+
const actions = [];
|
|
137
|
+
const warnings = [];
|
|
138
|
+
const configPath = configPathFor(scope, cwd, home);
|
|
139
|
+
if (existsSync(configPath)) {
|
|
140
|
+
actions.push({ kind: 'delete-file', label: 'config', path: configPath });
|
|
141
|
+
}
|
|
142
|
+
const agentsDir = agentsDirFor(scope, cwd, home);
|
|
143
|
+
const agents = sonataAgents(agentsDir);
|
|
144
|
+
warnings.push(...agents.warnings);
|
|
145
|
+
if (agents.files.length > 0) {
|
|
146
|
+
actions.push({
|
|
147
|
+
kind: 'delete-agents',
|
|
148
|
+
label: `${agents.files.length} generated agent${agents.files.length === 1 ? '' : 's'}`,
|
|
149
|
+
dir: agentsDir,
|
|
150
|
+
files: agents.files,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
const skillDir = join(base, '.claude', 'skills', 'sonata-loop');
|
|
154
|
+
if (existsSync(skillDir)) {
|
|
155
|
+
actions.push({ kind: 'delete-dir', label: 'sonata-loop skill', path: skillDir });
|
|
156
|
+
}
|
|
157
|
+
// The CLAUDE.md block is the one artifact in a file sonata does not own, so
|
|
158
|
+
// it is spliced out rather than the file being removed — and a file whose
|
|
159
|
+
// markers do not pair up is left entirely alone, with the reason reported.
|
|
160
|
+
const guidancePath = scope === 'global'
|
|
161
|
+
? join(home, '.claude', 'CLAUDE.md')
|
|
162
|
+
: join(cwd, 'CLAUDE.md');
|
|
163
|
+
if (existsSync(guidancePath)) {
|
|
164
|
+
try {
|
|
165
|
+
const existing = readFileSync(guidancePath, 'utf8');
|
|
166
|
+
const without = removeGuidance(existing);
|
|
167
|
+
if (without !== undefined) {
|
|
168
|
+
actions.push({
|
|
169
|
+
kind: 'write-file', label: 'the sonata block in CLAUDE.md', path: guidancePath, content: without,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
catch (err) {
|
|
174
|
+
warnings.push(`left ${guidancePath} unchanged: ${err.message}`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// Project scope writes routing into `settings.local.json` and the permission
|
|
178
|
+
// hook into `settings.json`; global scope puts both in one file. Deduplicated
|
|
179
|
+
// so the same file is never planned twice.
|
|
180
|
+
const settingsFiles = [...new Set([
|
|
181
|
+
routeSettingsFile(cwd, scope, home),
|
|
182
|
+
settingsPath(scope, cwd, home),
|
|
183
|
+
])];
|
|
184
|
+
for (const path of settingsFiles) {
|
|
185
|
+
if (!existsSync(path))
|
|
186
|
+
continue;
|
|
187
|
+
const current = readSettings(path);
|
|
188
|
+
const stripped = planSettingsReset(current, packageRoot, scope);
|
|
189
|
+
warnings.push(...stripped.warnings);
|
|
190
|
+
if (stripped.changed) {
|
|
191
|
+
actions.push({
|
|
192
|
+
kind: 'write-settings', label: 'routing, hooks and the tool allow-list', path, settings: stripped.settings,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
for (const path of [routeSessionsFile(cwd, scope, home), routeSubagentsFile(cwd, scope, home)]) {
|
|
197
|
+
if (existsSync(path)) {
|
|
198
|
+
actions.push({ kind: 'delete-file', label: 'routed-session registry', path });
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return {
|
|
202
|
+
scope,
|
|
203
|
+
actions,
|
|
204
|
+
kept: [
|
|
205
|
+
`gateway keys (${join(home, '.config', 'sonata', 'credentials')}) — \`sonata auth list\``,
|
|
206
|
+
`the usage ledger (${join(home, '.config', 'sonata', 'usage')}) — \`sonata usage\``,
|
|
207
|
+
'the ranking and pricing caches',
|
|
208
|
+
scope === 'global'
|
|
209
|
+
? `any project's own sonata.toml`
|
|
210
|
+
: `the machine config (${join(home, GLOBAL_CONFIG_RELATIVE)})`,
|
|
211
|
+
],
|
|
212
|
+
warnings,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
/** The plan as the lines a user is asked to approve. */
|
|
216
|
+
export function describeReset(plan) {
|
|
217
|
+
const lines = [];
|
|
218
|
+
if (plan.actions.length === 0) {
|
|
219
|
+
lines.push(` nothing to remove — no sonata ${plan.scope} setup found`);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
lines.push(` sonata reset (${plan.scope}) will remove:`);
|
|
223
|
+
for (const action of plan.actions) {
|
|
224
|
+
lines.push(` ${action.kind === 'write-settings' || action.kind === 'write-file' ? '~' : '-'} ${action.label}`);
|
|
225
|
+
if (action.kind === 'delete-agents') {
|
|
226
|
+
// Every path, never a truncated sample. Elsewhere a "… and N more" is
|
|
227
|
+
// a courtesy; here the list *is* the thing being agreed to, and a
|
|
228
|
+
// confirmation that hides paths it then deletes is not a confirmation.
|
|
229
|
+
for (const f of action.files)
|
|
230
|
+
lines.push(` ${join(action.dir, f)}`);
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
lines.push(` ${action.path}`);
|
|
234
|
+
// `writeSettings` copies the file aside before writing, so the reset
|
|
235
|
+
// touches a second path — and would overwrite a backup already there.
|
|
236
|
+
// Naming it keeps "the set shown is the set touched" literally true,
|
|
237
|
+
// and the copy is the undo for this command, so it is kept.
|
|
238
|
+
if (action.kind === 'write-settings') {
|
|
239
|
+
lines.push(` ${action.path}.bak (previous contents, overwritten if one exists)`);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
lines.push('');
|
|
244
|
+
lines.push(' it keeps:');
|
|
245
|
+
for (const k of plan.kept)
|
|
246
|
+
lines.push(` · ${k}`);
|
|
247
|
+
}
|
|
248
|
+
for (const w of plan.warnings)
|
|
249
|
+
lines.push(` ! ${w}`);
|
|
250
|
+
return lines;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Delete one path, reporting anything that is not "it was already gone".
|
|
254
|
+
*
|
|
255
|
+
* `ENOENT` is the only benign failure: a concurrent `sonata sync` or a
|
|
256
|
+
* half-finished earlier reset is a race, not a fault. Every other errno —
|
|
257
|
+
* `EACCES`, `EPERM`, `EBUSY`, `EISDIR` — means the artifact is still there,
|
|
258
|
+
* and swallowing it let the command report success over a setup it had not
|
|
259
|
+
* removed.
|
|
260
|
+
*/
|
|
261
|
+
function removePath(path, touched, failures) {
|
|
262
|
+
try {
|
|
263
|
+
unlinkSync(path);
|
|
264
|
+
touched.push(path);
|
|
265
|
+
}
|
|
266
|
+
catch (err) {
|
|
267
|
+
if (err.code === 'ENOENT')
|
|
268
|
+
return;
|
|
269
|
+
failures.push(`${path}: ${err.message}`);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
/** Carry out a plan. */
|
|
273
|
+
export function applyReset(plan) {
|
|
274
|
+
const touched = [];
|
|
275
|
+
const failures = [];
|
|
276
|
+
for (const action of plan.actions) {
|
|
277
|
+
switch (action.kind) {
|
|
278
|
+
case 'delete-file':
|
|
279
|
+
removePath(action.path, touched, failures);
|
|
280
|
+
break;
|
|
281
|
+
case 'delete-dir':
|
|
282
|
+
try {
|
|
283
|
+
rmSync(action.path, { recursive: true, force: true });
|
|
284
|
+
touched.push(action.path);
|
|
285
|
+
}
|
|
286
|
+
catch (err) {
|
|
287
|
+
failures.push(`${action.path}: ${err.message}`);
|
|
288
|
+
}
|
|
289
|
+
break;
|
|
290
|
+
case 'delete-agents':
|
|
291
|
+
for (const f of action.files)
|
|
292
|
+
removePath(join(action.dir, f), touched, failures);
|
|
293
|
+
break;
|
|
294
|
+
case 'write-file':
|
|
295
|
+
try {
|
|
296
|
+
writeFileSync(action.path, action.content);
|
|
297
|
+
touched.push(action.path);
|
|
298
|
+
}
|
|
299
|
+
catch (err) {
|
|
300
|
+
failures.push(`${action.path}: ${err.message}`);
|
|
301
|
+
}
|
|
302
|
+
break;
|
|
303
|
+
case 'write-settings':
|
|
304
|
+
try {
|
|
305
|
+
writeSettings(action.path, action.settings);
|
|
306
|
+
touched.push(action.path);
|
|
307
|
+
}
|
|
308
|
+
catch (err) {
|
|
309
|
+
failures.push(`${action.path}: ${err.message}`);
|
|
310
|
+
}
|
|
311
|
+
break;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
return { touched, failures };
|
|
315
|
+
}
|
|
316
|
+
export async function cmdReset(opts, io) {
|
|
317
|
+
const plan = planReset(opts);
|
|
318
|
+
for (const line of describeReset(plan))
|
|
319
|
+
io.out(line);
|
|
320
|
+
if (plan.actions.length === 0)
|
|
321
|
+
return 0;
|
|
322
|
+
io.out('');
|
|
323
|
+
if (!opts.yes && !await io.confirm('Remove these?')) {
|
|
324
|
+
io.out(' · nothing removed');
|
|
325
|
+
return 1;
|
|
326
|
+
}
|
|
327
|
+
const { touched, failures } = applyReset(plan);
|
|
328
|
+
io.out(` ✓ removed ${touched.length} path${touched.length === 1 ? '' : 's'}`);
|
|
329
|
+
if (failures.length > 0) {
|
|
330
|
+
// A partial reset that exits 0 is the failure this command exists to
|
|
331
|
+
// avoid: the user believes the setup is gone and it is not.
|
|
332
|
+
io.out(` ! ${failures.length} path(s) could not be removed:`);
|
|
333
|
+
for (const f of failures)
|
|
334
|
+
io.out(` ${f}`);
|
|
335
|
+
return 1;
|
|
336
|
+
}
|
|
337
|
+
io.out(' ❯ run `sonata init` to set up again');
|
|
338
|
+
return 0;
|
|
339
|
+
}
|
|
340
|
+
//# sourceMappingURL=reset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../src/commands/reset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,GAC5E,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA2BrH;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;QACrF,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,kBAAkB,GAAG,KAAM,GAAa,CAAC,OAAO,8BAA8B,CAAC,EAAE,CAAC;IACnH,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,kBAAkB,IAAI,KAAM,GAAa,CAAC,OAAO,kBAAkB,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAkB,EAClB,WAAmB,EACnB,KAAiB;IAEjB,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC5C,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;QACpB,OAAO,GAAG,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,kCAAmC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACzD,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;IACvB,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;IAEpC,0EAA0E;IAC1E,4EAA4E;IAC5E,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI;QAC5B,CAAC,YAAY,EAAE,kBAAkB,CAAC;QAClC,CAAC,cAAc,EAAE,kBAAkB,CAAC;QACpC,CAAC,cAAc,EAAE,mBAAmB,CAAC;QACrC,CAAC,YAAY,EAAE,mBAAmB,CAAC;QACnC,CAAC,eAAe,EAAE,oBAAoB,CAAC;QACvC,CAAC,cAAc,EAAE,oBAAoB,CAAC;KAC9B,EAAE,CAAC;QACX,SAAS,CAAC;YACR,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;iBACxC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC/B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;YACpD,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM;YACjC,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACpD,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;YACxB,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;YACrC,uEAAuE;YACvE,kEAAkE;YAClE,8CAA8C;YAC9C,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,MAAM;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IACxB,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAErC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,IAAkB;IAC1C,MAAM,KAAK,GAAe,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;IAClD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,mBAAmB,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;YACtF,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAChE,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,4EAA4E;IAC5E,0EAA0E;IAC1E,2EAA2E;IAC3E,MAAM,YAAY,GAAG,KAAK,KAAK,QAAQ;QACrC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC;QACpC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC3B,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,+BAA+B,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO;iBACjG,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,QAAQ,YAAY,eAAgB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,8EAA8E;IAC9E,2CAA2C;IAC3C,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;YAChC,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;YACnC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC;SAC/B,CAAC,CAAC,CAAC;IACJ,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QAChC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAChE,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,wCAAwC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC3G,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAC/F,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK;QACL,OAAO;QACP,IAAI,EAAE;YACJ,iBAAiB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,0BAA0B;YACzF,qBAAqB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,sBAAsB;YACnF,gCAAgC;YAChC,KAAK,KAAK,QAAQ;gBAChB,CAAC,CAAC,+BAA+B;gBACjC,CAAC,CAAC,uBAAuB,IAAI,CAAC,IAAI,EAAE,sBAAsB,CAAC,GAAG;SACjE;QACD,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,aAAa,CAAC,IAAe;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,mCAAmC,IAAI,CAAC,KAAK,cAAc,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,KAAK,gBAAgB,CAAC,CAAC;QAC1D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAClH,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACpC,sEAAsE;gBACtE,kEAAkE;gBAClE,uEAAuE;gBACvE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK;oBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrC,qEAAqE;gBACrE,sEAAsE;gBACtE,qEAAqE;gBACrE,4DAA4D;gBAC5D,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;oBACrC,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,sDAAsD,CAAC,CAAC;gBAC3F,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,UAAU,CAAC,IAAY,EAAE,OAAiB,EAAE,QAAkB;IACrE,IAAI,CAAC;QACH,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QAC7D,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AASD,wBAAwB;AACxB,MAAM,UAAU,UAAU,CAAC,IAAe;IACxC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,aAAa;gBAChB,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC;oBACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACtD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM;YACR,KAAK,eAAe;gBAClB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK;oBAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACjF,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC;oBACH,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM;YACR,KAAK,gBAAgB;gBACnB,IAAI,CAAC;oBACH,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC5C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAsC,EAAE,EAAW;IAChF,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC;QAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAExC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACX,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QACpD,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/C,EAAE,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,MAAM,QAAQ,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,qEAAqE;QACrE,4DAA4D;QAC5D,EAAE,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,MAAM,gCAAgC,CAAC,CAAC;QAC/D,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACX,CAAC;IACD,EAAE,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IAClD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
package/dist/detect.js
CHANGED
|
@@ -167,12 +167,22 @@ export function staleAgents(agentsDir, expected) {
|
|
|
167
167
|
.filter((f) => !wanted.has(f))
|
|
168
168
|
.sort();
|
|
169
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Whether this agent file's *content* is sonata's.
|
|
172
|
+
*
|
|
173
|
+
* Split out from `isSonataAgent` so a caller that must distinguish "not
|
|
174
|
+
* sonata's" from "could not be read" can apply the same ownership test without
|
|
175
|
+
* reimplementing it. `sonata reset` is that caller: a file it cannot read is
|
|
176
|
+
* one it cannot promise to have removed.
|
|
177
|
+
*/
|
|
178
|
+
export function isSonataAgentText(text) {
|
|
179
|
+
return text.includes('forwarding wrapper around the sonata runtime')
|
|
180
|
+
|| text.includes(TIER_AGENT_MARKER)
|
|
181
|
+
|| /^name:\s+native-[^\s]+/m.test(text);
|
|
182
|
+
}
|
|
170
183
|
export function isSonataAgent(path) {
|
|
171
184
|
try {
|
|
172
|
-
|
|
173
|
-
return text.includes('forwarding wrapper around the sonata runtime')
|
|
174
|
-
|| text.includes(TIER_AGENT_MARKER)
|
|
175
|
-
|| /^name:\s+native-[^\s]+/m.test(text);
|
|
185
|
+
return isSonataAgentText(readFileSync(path, 'utf8'));
|
|
176
186
|
}
|
|
177
187
|
catch {
|
|
178
188
|
return false;
|
package/dist/detect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG/E,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAsChC,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1E,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8CAA8C;AAC9C,wEAAwE;AACxE,uEAAuE;AACvE,0DAA0D;AAC1D,wEAAwE;AACxE,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC9D,mBAAmB;IACnB,QAAQ,EAAE,2BAA2B;IACrC,cAAc,EAAE,2BAA2B;IAC3C,OAAO,EAAE,2BAA2B;IAEpC,0BAA0B;IAC1B,UAAU,EAAE,4BAA4B;IACxC,aAAa,EAAE,+BAA+B;IAE9C,kBAAkB;IAClB,WAAW,EAAE,8BAA8B;IAC3C,UAAU,EAAE,6BAA6B;IACzC,QAAQ,EAAE,kDAAkD;IAC5D,SAAS,EAAE,2BAA2B;IACtC,KAAK,EAAE,qBAAqB;IAC5B,YAAY,EAAE,iCAAiC;IAE/C,wBAAwB;IACxB,YAAY,EAAE,8BAA8B;IAE5C,sBAAsB;IACtB,MAAM,EAAE,gCAAgC;IACxC,UAAU,EAAE,6BAA6B;IACzC,aAAa,EAAE,6BAA6B;IAC5C,WAAW,EAAE,uCAAuC;IACpD,cAAc,EAAE,uCAAuC;IACvD,UAAU,EAAE,4BAA4B;IACxC,YAAY,EAAE,8BAA8B;IAC5C,WAAW,EAAE,qCAAqC;IAClD,WAAW,EAAE,6BAA6B;IAC1C,QAAQ,EAAE,iCAAiC;IAC3C,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,+BAA+B;IAC7C,YAAY,EAAE,2BAA2B;IACzC,YAAY,EAAE,qCAAqC;IACnD,gBAAgB,EAAE,+BAA+B;IACjD,QAAQ,EAAE,iCAAiC;IAC3C,QAAQ,EAAE,qCAAqC;IAE/C,wBAAwB;IACxB,UAAU,EAAE,4BAA4B;IACxC,WAAW,EAAE,wDAAwD;IACrE,WAAW,EAAE,6BAA6B;IAC1C,YAAY,EAAE,uCAAuC;IACrD,QAAQ,EAAE,0BAA0B;IACpC,SAAS,EAAE,gCAAgC;IAC3C,OAAO,EAAE,6BAA6B;CACvC,CAAC;AAEF,MAAM,UAAU,6BAA6B,CAAC,IAAY;IACxD,yEAAyE;IACzE,6EAA6E;IAC7E,2BAA2B;IAC3B,MAAM,GAAG,GAA2B,EAAE,GAAG,wBAAwB,EAAE,CAAC;IACpE,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;IACD,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1E,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC;QACtC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACzD,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,mEAAmE;QACnE,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QACtD,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;YAC9B,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;YACzB,GAAG,EAAE,IAAI;SACV,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAmBD;;;GAGG;AACH,MAAM,uBAAuB,GAAG,CAAC,UAAU,CAAC,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAgB,EAAE,MAAgB;IACnE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,uBAAuB,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;IAElD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,OAAO,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QACvE,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,IAAI;YAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,QAAkB;IAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,OAAO,WAAW,CAAC,SAAS,CAAC;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;SAChD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC7B,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,8CAA8C,CAAC;WAC/D,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;WAChC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,CAAC;QACH,OAAO,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,KAAe;IAC5D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,4DAA4D;QAC9D,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,GAAW,EAAE,IAAc,EAAE,GAAuB;IACxE,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,KAAK,UAAU,aAAa,CAC1B,GAAW,EACX,IAAc,EACd,GAAsB,EACtB,EAAU;IAEV,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,CAAC;oBACT,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,yEAAyE;oBAClF,GAAG,EAAE,mBAAmB;iBACzB,CAAC;SACH,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACjF,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAc;IACjD,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAEhE,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;IAC/E,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IAEvG,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,EAAE;YACR,eAAe,EAAE,EAAE;YACnB,QAAQ,EAAE,CAAC;oBACT,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,2BAA2B;oBACpC,GAAG,EAAE,+CAA+C;iBACrD,CAAC;SACH,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC;YACZ,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,YAAY,OAAO,gCAAgC,GAAG,CAAC,iBAAiB,EAAE;YACnF,GAAG,EAAE,kEAAkE;SACxE,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,0EAA0E;IAC1E,wEAAwE;IACxE,2EAA2E;IAC3E,8CAA8C;IAC9C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IACpG,MAAM,IAAI,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAEhE,4EAA4E;IAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,MAAM,KAAK,GAAG,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACvE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IACrF,CAAC;IACD,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAC;IAEnE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAC;QAC1C,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI;YAC5B,CAAC,CAAC;gBACA,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,kFAAkF;gBAC3F,GAAG,EAAE,8EAA8E;aACpF;YACD,CAAC,CAAC;gBACA,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,6BAA6B;gBACtC,GAAG,EAAE,qBAAqB;aAC3B,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,IAAI;QACf,OAAO;QACP,SAAS;QACT,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;QACrD,IAAI;QACJ,eAAe;QACf,gBAAgB;QAChB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAc;IAC3C,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAElF,mEAAmE;IACnE,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACzG,CAAC;IAED,2EAA2E;IAC3E,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IACpG,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC;YACZ,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,6CAA6C;YACtD,GAAG,EAAE,iCAAiC;SACvC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,IAAI;QACf,OAAO;QACP,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;QAClD,eAAe,EAAE,EAAE;QACnB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAc;IAC9C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAClE,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC5G,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC;YACZ,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,yCAAyC;YAClD,GAAG,EAAE,aAAa;SACnB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,IAAI;QACf,OAAO;QACP,SAAS,EAAE,IAAI;QACf,IAAI;QACJ,yEAAyE;QACzE,yCAAyC;QACzC,eAAe,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;QACjD,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAe;IAClD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACrE,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC/G,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,kBAAkB,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC;YACZ,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,4DAA4D;YACrE,GAAG,EAAE,gBAAgB;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,IAAI;QACf,OAAO;QACP,SAAS,EAAE,IAAI;QACf,IAAI;QACJ,4EAA4E;QAC5E,4CAA4C;QAC5C,eAAe,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAc;IAClD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,kDAAkD;AAClD,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAwB,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;QACpE,iEAAiE;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAA0C,CAAC;IAC3E,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAY;IAC5D,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC/B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEtD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;IAChC,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/init/guidance.js
CHANGED
|
@@ -65,50 +65,100 @@ function countOccurrences(haystack, needle) {
|
|
|
65
65
|
return count;
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
68
|
-
*
|
|
68
|
+
* Where the managed block sits, or `undefined` when there is none.
|
|
69
69
|
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* the
|
|
70
|
+
* Extracted so the merge and the removal cannot disagree about what counts as
|
|
71
|
+
* a well-formed file. Every malformed shape throws here rather than being
|
|
72
|
+
* repaired, for the reason the markers exist at all: each available repair —
|
|
73
|
+
* inventing an end, reading a stray marker as prose, rewriting the first of
|
|
74
|
+
* two blocks — can eat a paragraph the user wrote.
|
|
73
75
|
*/
|
|
74
|
-
export function
|
|
75
|
-
// Only a file that does not exist is written whole. A file that exists but
|
|
76
|
-
// holds nothing but whitespace still has bytes, and replacing them outright
|
|
77
|
-
// would be a change outside the markers — the one thing this must never do.
|
|
78
|
-
if (existing === undefined) {
|
|
79
|
-
return block.endsWith('\n') ? block : `${block}\n`;
|
|
80
|
-
}
|
|
76
|
+
export function locateGuidance(existing) {
|
|
81
77
|
const begins = countOccurrences(existing, GUIDANCE_BEGIN);
|
|
82
78
|
const ends = countOccurrences(existing, GUIDANCE_END);
|
|
83
|
-
// Repeated markers are refused before any
|
|
84
|
-
//
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
//
|
|
79
|
+
// Repeated markers are refused before any splice is attempted. `indexOf`
|
|
80
|
+
// alone would span from the *first* begin to the *first* end, and in a file
|
|
81
|
+
// shaped begin/…/begin/…/end that swallows the user text sitting between the
|
|
82
|
+
// two begins. Two complete blocks are equally malformed: rewriting one would
|
|
83
|
+
// leave the other behind to contradict it.
|
|
88
84
|
if (begins > 1 || ends > 1) {
|
|
89
|
-
throw new Error(`CLAUDE.md contains more than one sonata block (${begins} "${GUIDANCE_BEGIN}", `
|
|
90
|
-
`${ends} "${GUIDANCE_END}"). Leave exactly one, and run
|
|
85
|
+
throw new Error(`CLAUDE.md contains more than one sonata block (${begins} "${GUIDANCE_BEGIN}", `
|
|
86
|
+
+ `${ends} "${GUIDANCE_END}"). Leave exactly one, and run the command again.`);
|
|
91
87
|
}
|
|
92
88
|
const begin = existing.indexOf(GUIDANCE_BEGIN);
|
|
93
89
|
const end = existing.indexOf(GUIDANCE_END);
|
|
94
|
-
// A marker without its partner means the file was hand-edited.
|
|
95
|
-
// available here — inventing an end, or treating the stray marker as text —
|
|
96
|
-
// can destroy content, so neither is taken.
|
|
90
|
+
// A marker without its partner means the file was hand-edited.
|
|
97
91
|
if (begin !== -1 && end === -1) {
|
|
98
|
-
throw new Error(`CLAUDE.md has an unterminated sonata block: "${GUIDANCE_BEGIN}" with no matching `
|
|
99
|
-
`"${GUIDANCE_END}". Restore the end marker, or delete the block, and run
|
|
92
|
+
throw new Error(`CLAUDE.md has an unterminated sonata block: "${GUIDANCE_BEGIN}" with no matching `
|
|
93
|
+
+ `"${GUIDANCE_END}". Restore the end marker, or delete the block, and run the command again.`);
|
|
100
94
|
}
|
|
101
95
|
if (begin === -1 && end !== -1) {
|
|
102
|
-
throw new Error(`CLAUDE.md has a stray "${GUIDANCE_END}" marker with no matching "${GUIDANCE_BEGIN}". `
|
|
103
|
-
'Remove it, and run
|
|
96
|
+
throw new Error(`CLAUDE.md has a stray "${GUIDANCE_END}" marker with no matching "${GUIDANCE_BEGIN}". `
|
|
97
|
+
+ 'Remove it, and run the command again.');
|
|
104
98
|
}
|
|
105
99
|
if (begin !== -1 && end !== -1 && end < begin) {
|
|
106
|
-
throw new Error(`CLAUDE.md has sonata markers in the wrong order ("${GUIDANCE_END}" before `
|
|
107
|
-
`"${GUIDANCE_BEGIN}"). Fix or delete the block, and run
|
|
100
|
+
throw new Error(`CLAUDE.md has sonata markers in the wrong order ("${GUIDANCE_END}" before `
|
|
101
|
+
+ `"${GUIDANCE_BEGIN}"). Fix or delete the block, and run the command again.`);
|
|
102
|
+
}
|
|
103
|
+
return begin === -1 ? undefined : { begin, end: end + GUIDANCE_END.length };
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Drop the managed block, leaving every other byte where it was.
|
|
107
|
+
*
|
|
108
|
+
* `undefined` means there was nothing to remove — the caller reports "no block
|
|
109
|
+
* here" rather than rewriting a file it did not change.
|
|
110
|
+
*
|
|
111
|
+
* The one liberty taken is dropping the blank line an append separated the
|
|
112
|
+
* block by, and it is deliberately narrow: *exactly* two trailing newlines
|
|
113
|
+
* collapse to one, and nothing else is touched. A wider rule (`/\n{2,}$/`)
|
|
114
|
+
* ate user content — a whitespace-only `CLAUDE.md` of three newlines came back
|
|
115
|
+
* as one, which is bytes outside the markers, the one thing this must never
|
|
116
|
+
* change. Without any rule, every merge/remove cycle would leave another blank
|
|
117
|
+
* line behind.
|
|
118
|
+
*
|
|
119
|
+
* One case is genuinely unrecoverable: a file that ended *without* a trailing
|
|
120
|
+
* newline was separated by two, and two is also what a file ending in one
|
|
121
|
+
* newline produces. Those are indistinguishable after the fact, so such a file
|
|
122
|
+
* comes back with a single trailing newline it did not have. Adding one byte
|
|
123
|
+
* is the safe side of an ambiguity whose other side deletes one.
|
|
124
|
+
*/
|
|
125
|
+
export function removeGuidance(existing) {
|
|
126
|
+
const at = locateGuidance(existing);
|
|
127
|
+
if (at === undefined)
|
|
128
|
+
return undefined;
|
|
129
|
+
const head = existing.slice(0, at.begin);
|
|
130
|
+
const tail = existing.slice(at.end);
|
|
131
|
+
// A block with real content after it was put there by the *replace* path,
|
|
132
|
+
// which preserves both surrounding spans byte-for-byte and inserts no
|
|
133
|
+
// separator of its own. So there is nothing of sonata's to take back:
|
|
134
|
+
// splicing out the markers and leaving every other byte alone is the exact
|
|
135
|
+
// inverse. Touching the whitespace here is how user-authored blank lines on
|
|
136
|
+
// either side got eaten.
|
|
137
|
+
if (tail.trim() !== '')
|
|
138
|
+
return `${head}${tail}`;
|
|
139
|
+
// Otherwise the block sits at the end, where `mergeGuidance` appended it
|
|
140
|
+
// after a separator it chose from the file's own trailing newlines. That
|
|
141
|
+
// separator, and the block's trailing newline, are sonata's to remove.
|
|
142
|
+
return /(^|[^\n])\n\n$/.test(head) ? head.slice(0, -1) : head;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Merge the managed block into an existing `CLAUDE.md`.
|
|
146
|
+
*
|
|
147
|
+
* Pure so the interesting behaviour — what survives, what is replaced, what is
|
|
148
|
+
* refused — is testable without a filesystem. `existing` is `undefined` when
|
|
149
|
+
* the file does not exist yet.
|
|
150
|
+
*/
|
|
151
|
+
export function mergeGuidance(existing, block) {
|
|
152
|
+
// Only a file that does not exist is written whole. A file that exists but
|
|
153
|
+
// holds nothing but whitespace still has bytes, and replacing them outright
|
|
154
|
+
// would be a change outside the markers — the one thing this must never do.
|
|
155
|
+
if (existing === undefined) {
|
|
156
|
+
return block.endsWith('\n') ? block : `${block}\n`;
|
|
108
157
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
const
|
|
158
|
+
const at = locateGuidance(existing);
|
|
159
|
+
if (at !== undefined) {
|
|
160
|
+
const before = existing.slice(0, at.begin);
|
|
161
|
+
const after = existing.slice(at.end);
|
|
112
162
|
return `${before}${block.trimEnd()}${after}`;
|
|
113
163
|
}
|
|
114
164
|
// No block yet: append, leaving every existing byte where it was. An empty
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guidance.js","sourceRoot":"","sources":["../../src/init/guidance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,uBAAuB,CAAC;AACtD,MAAM,CAAC,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,cAAc;QACd,kBAAkB;QAClB,EAAE;QACF,6EAA6E;QAC7E,2EAA2E;QAC3E,4EAA4E;QAC5E,+EAA+E;QAC/E,oBAAoB;QACpB,EAAE;QACF,wEAAwE;QACxE,6EAA6E;QAC7E,6EAA6E;QAC7E,aAAa;QACb,EAAE;QACF,+EAA+E;QAC/E,6EAA6E;QAC7E,yEAAyE;QACzE,YAAY;QACZ,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB,EAAE,MAAc;IACxD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACrG,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"guidance.js","sourceRoot":"","sources":["../../src/init/guidance.ts"],"names":[],"mappings":"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"}
|