@wemuda/launchrail 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -20
- package/assets/agents-docs/domain.md +59 -0
- package/assets/agents-docs/issue-tracker-github.md +51 -0
- package/assets/agents-docs/issue-tracker-gitlab.md +52 -0
- package/assets/agents-docs/issue-tracker-linear.md +52 -0
- package/assets/agents-docs/issue-tracker-local.md +45 -0
- package/assets/ralph.permission-guard.py +90 -0
- package/assets/ralph.workflow.js +26 -8
- package/assets/skills/NOTICE.md +41 -0
- package/assets/skills/launchrail/launch/SKILL.md +67 -0
- package/assets/skills/launchrail/launch/workflow.md +77 -0
- package/assets/skills/launchrail/launch-browser-smoke/SKILL.md +49 -0
- package/assets/skills/launchrail/launch-code-review/SKILL.md +89 -0
- package/assets/skills/launchrail/launch-design-validation/SKILL.md +44 -0
- package/assets/skills/launchrail/launch-discovery/SKILL.md +33 -0
- package/assets/skills/launchrail/launch-grill/CONTEXT-FORMAT.md +62 -0
- package/assets/skills/launchrail/launch-grill/SKILL.md +48 -0
- package/assets/skills/launchrail/launch-grill/domain-modeling.md +45 -0
- package/assets/skills/launchrail/launch-implement/SKILL.md +46 -0
- package/assets/skills/launchrail/launch-project-alignment/SKILL.md +48 -0
- package/assets/skills/launchrail/launch-ralph/SKILL.md +100 -0
- package/assets/skills/launchrail/launch-ralph-implement/SKILL.md +17 -0
- package/assets/skills/launchrail/launch-research/SKILL.md +16 -0
- package/assets/skills/launchrail/launch-resolving-merge-conflicts/SKILL.md +15 -0
- package/assets/skills/launchrail/launch-spec/SKILL.md +77 -0
- package/assets/skills/launchrail/launch-tickets/SKILL.md +107 -0
- package/assets/skills/launchrail/launch-vision-creation/SKILL.md +60 -0
- package/assets/skills/launchrail/launch-wayfinder/SKILL.md +130 -0
- package/dist/commands/add.js +21 -4
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/doctor.js +42 -32
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts +3 -7
- package/dist/commands/init.js +62 -85
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/sync.js +11 -0
- package/dist/commands/sync.js.map +1 -1
- package/dist/index.js +0 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/agentsDocs.d.ts +4 -0
- package/dist/lib/agentsDocs.js +32 -0
- package/dist/lib/agentsDocs.js.map +1 -0
- package/dist/lib/claudeSettings.d.ts +74 -11
- package/dist/lib/claudeSettings.js +185 -17
- package/dist/lib/claudeSettings.js.map +1 -1
- package/dist/lib/detect.d.ts +0 -2
- package/dist/lib/detect.js +0 -1
- package/dist/lib/detect.js.map +1 -1
- package/dist/lib/manifest.d.ts +14 -1
- package/dist/lib/manifest.js +18 -1
- package/dist/lib/manifest.js.map +1 -1
- package/dist/lib/migrations.js +202 -1
- package/dist/lib/migrations.js.map +1 -1
- package/dist/lib/project.js +9 -1
- package/dist/lib/project.js.map +1 -1
- package/dist/lib/ralph.d.ts +16 -5
- package/dist/lib/ralph.js +32 -9
- package/dist/lib/ralph.js.map +1 -1
- package/dist/lib/seeds.js +3 -1
- package/dist/lib/seeds.js.map +1 -1
- package/dist/lib/skills.d.ts +12 -0
- package/dist/lib/skills.js +57 -0
- package/dist/lib/skills.js.map +1 -0
- package/dist/lib/upstream.d.ts +6 -6
- package/dist/lib/upstream.js +1 -1
- package/dist/lib/upstream.js.map +1 -1
- package/package.json +1 -1
- package/dist/lib/claudeCli.d.ts +0 -51
- package/dist/lib/claudeCli.js +0 -71
- package/dist/lib/claudeCli.js.map +0 -1
package/dist/commands/init.js
CHANGED
|
@@ -2,14 +2,16 @@ import { spawnSync } from "node:child_process";
|
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import * as p from "@clack/prompts";
|
|
5
|
-
import {
|
|
5
|
+
import { agentsDocsFiles } from "../lib/agentsDocs.js";
|
|
6
6
|
import { applyClaudeImports, planClaudeImports, } from "../lib/claudeImports.js";
|
|
7
|
-
import {
|
|
7
|
+
import { applyRalphGuardHook, CLAUDE_SETTINGS_PATH, planRalphGuardHook, } from "../lib/claudeSettings.js";
|
|
8
8
|
import { detectRepo } from "../lib/detect.js";
|
|
9
9
|
import { emptyLockfile, readLockfile, writeLockfile } from "../lib/lockfile.js";
|
|
10
10
|
import { migrationIds } from "../lib/migrations.js";
|
|
11
|
+
import { RALPH_MODULE, ralphFiles } from "../lib/ralph.js";
|
|
11
12
|
import { ISSUE_TRACKERS, MANIFEST_FILENAME, parseManifest, serializeManifest, } from "../lib/manifest.js";
|
|
12
13
|
import { seedFiles } from "../lib/seeds.js";
|
|
14
|
+
import { skillFiles } from "../lib/skills.js";
|
|
13
15
|
import { ACTION_LABEL, applyPlan, planWrites } from "../lib/writer.js";
|
|
14
16
|
import { VERSION } from "../version.js";
|
|
15
17
|
function suggestedTestCommand(detection) {
|
|
@@ -26,17 +28,29 @@ function defaultTesting(detection) {
|
|
|
26
28
|
appUrl: null,
|
|
27
29
|
};
|
|
28
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Ralph is the implementation loop (ADR-0020), so its module is on from the
|
|
33
|
+
* start: init installs the loop's materials and nobody meets a "needs
|
|
34
|
+
* `launchrail add ralph`" wall at the moment they start building (ADR-0018).
|
|
35
|
+
*/
|
|
36
|
+
function defaultModules() {
|
|
37
|
+
return { core: true, [RALPH_MODULE]: true };
|
|
38
|
+
}
|
|
29
39
|
function defaultManifestFor(detection) {
|
|
30
40
|
return {
|
|
31
41
|
schemaVersion: 1,
|
|
32
42
|
mode: "standard-mvp",
|
|
33
43
|
origin: detection.looksEstablished ? "existing" : "new",
|
|
34
|
-
issueTracker: detection.gitRemoteUrl?.includes("github.com")
|
|
44
|
+
issueTracker: detection.gitRemoteUrl?.includes("github.com")
|
|
45
|
+
? "github"
|
|
46
|
+
: detection.gitRemoteUrl?.includes("gitlab")
|
|
47
|
+
? "gitlab"
|
|
48
|
+
: "none",
|
|
35
49
|
conventions: {
|
|
36
50
|
conventionalCommits: detection.conventionalCommitRatio === null ? true : detection.conventionalCommitRatio >= 0.5,
|
|
37
51
|
},
|
|
38
52
|
testing: defaultTesting(detection),
|
|
39
|
-
modules:
|
|
53
|
+
modules: defaultModules(),
|
|
40
54
|
};
|
|
41
55
|
}
|
|
42
56
|
async function interview(detection) {
|
|
@@ -97,13 +111,13 @@ async function interview(detection) {
|
|
|
97
111
|
...defaultTesting(detection),
|
|
98
112
|
unitCommand: answers.unitCommand.trim() === "" ? null : answers.unitCommand.trim(),
|
|
99
113
|
},
|
|
100
|
-
modules:
|
|
114
|
+
modules: defaultModules(),
|
|
101
115
|
};
|
|
102
116
|
}
|
|
103
|
-
const
|
|
117
|
+
const HOOK_LABEL = {
|
|
104
118
|
create: "create ",
|
|
105
119
|
merge: "update ",
|
|
106
|
-
"skip-
|
|
120
|
+
"skip-registered": "ok ",
|
|
107
121
|
"skip-invalid": "conflict",
|
|
108
122
|
};
|
|
109
123
|
const CLAUDE_IMPORTS_LABEL = {
|
|
@@ -116,15 +130,15 @@ export async function runInit(opts) {
|
|
|
116
130
|
// Launchrail relies on git history for safe writes — a missing repository is
|
|
117
131
|
// something init fixes, not something it lectures about. `git init` never
|
|
118
132
|
// fires inside an existing repository (detection walks up the tree).
|
|
119
|
-
let gitInitialized = false;
|
|
120
133
|
if (!detection.isGitRepo && !opts.dryRun) {
|
|
121
|
-
gitInitialized = spawnSync("git", ["init", "-q"], { cwd: opts.cwd, encoding: "utf8" }).status === 0;
|
|
134
|
+
const gitInitialized = spawnSync("git", ["init", "-q"], { cwd: opts.cwd, encoding: "utf8" }).status === 0;
|
|
122
135
|
if (gitInitialized) {
|
|
123
136
|
console.log("Initialized a git repository (`git init`) — Launchrail relies on git history for safe writes.");
|
|
124
137
|
detection.isGitRepo = true;
|
|
125
138
|
}
|
|
126
139
|
}
|
|
127
|
-
|
|
140
|
+
// Set once the manifest is known and the ralph module is on (ADR-0021).
|
|
141
|
+
let ralphHook = null;
|
|
128
142
|
const claudeImports = planClaudeImports(opts.cwd);
|
|
129
143
|
const interactive = !opts.yes && process.stdin.isTTY === true && process.stdout.isTTY === true;
|
|
130
144
|
let manifest;
|
|
@@ -134,7 +148,7 @@ export async function runInit(opts) {
|
|
|
134
148
|
console.error(`launchrail: existing ${MANIFEST_FILENAME} is invalid:`);
|
|
135
149
|
for (const error of parsed.errors)
|
|
136
150
|
console.error(` - ${error}`);
|
|
137
|
-
return { code: 1, actions: [],
|
|
151
|
+
return { code: 1, actions: [], ralphHook, claudeImports };
|
|
138
152
|
}
|
|
139
153
|
manifest = parsed.manifest;
|
|
140
154
|
console.log(`Found existing ${MANIFEST_FILENAME} — using its configuration (init is idempotent).`);
|
|
@@ -147,7 +161,7 @@ export async function runInit(opts) {
|
|
|
147
161
|
}
|
|
148
162
|
else {
|
|
149
163
|
console.error("launchrail: non-interactive session — re-run with --yes to accept defaults.");
|
|
150
|
-
return { code: 1, actions: [],
|
|
164
|
+
return { code: 1, actions: [], ralphHook, claudeImports };
|
|
151
165
|
}
|
|
152
166
|
// Adopting a project that already exists (not a fresh Launchrail init): make
|
|
153
167
|
// the safe-write model explicit — existing files are kept, and Launchrail
|
|
@@ -159,11 +173,27 @@ export async function runInit(opts) {
|
|
|
159
173
|
const specs = [
|
|
160
174
|
{ relPath: MANIFEST_FILENAME, content: serializeManifest(manifest), ownership: "seeded" },
|
|
161
175
|
...seedFiles({ projectName: detection.projectName, manifest, launchrailVersion: VERSION }),
|
|
176
|
+
// Workflow configuration under docs/agents/ seeds straight from the
|
|
177
|
+
// manifest's answers (ADR-0020) — there is no interactive setup stage.
|
|
178
|
+
...agentsDocsFiles(manifest),
|
|
179
|
+
// The workflow skills — Launchrail's own complete set (ADR-0020) — ship as
|
|
180
|
+
// managed files (ADR-0019): they travel with the repo, so cloud and
|
|
181
|
+
// non-Claude agents get them with no install step.
|
|
182
|
+
...skillFiles(),
|
|
183
|
+
// The Ralph loop's materials install with init when its module is on
|
|
184
|
+
// (fresh manifests always enable it, ADR-0018/0020). An existing manifest
|
|
185
|
+
// without the module is brought current by sync's migration, not silently
|
|
186
|
+
// rewritten here.
|
|
187
|
+
...(manifest.modules[RALPH_MODULE] ? ralphFiles() : []),
|
|
162
188
|
];
|
|
189
|
+
// Ralph's guard-hook file rides `specs`; its registration in the shared,
|
|
190
|
+
// project-owned settings.json is planned as an additive merge (ADR-0021).
|
|
191
|
+
if (manifest.modules[RALPH_MODULE])
|
|
192
|
+
ralphHook = planRalphGuardHook(opts.cwd);
|
|
163
193
|
const existing = readLockfile(opts.cwd);
|
|
164
194
|
if (existing.error) {
|
|
165
195
|
console.error(`launchrail: ${existing.error} — refusing to continue. Fix or remove the lockfile first.`);
|
|
166
|
-
return { code: 1, actions: [],
|
|
196
|
+
return { code: 1, actions: [], ralphHook, claudeImports };
|
|
167
197
|
}
|
|
168
198
|
const lockfile = existing.lockfile ?? emptyLockfile(VERSION);
|
|
169
199
|
if (!existing.lockfile) {
|
|
@@ -177,7 +207,9 @@ export async function runInit(opts) {
|
|
|
177
207
|
for (const action of actions) {
|
|
178
208
|
console.log(` ${ACTION_LABEL[action.kind]} ${action.spec.relPath} (${action.detail})`);
|
|
179
209
|
}
|
|
180
|
-
|
|
210
|
+
if (ralphHook) {
|
|
211
|
+
console.log(` ${HOOK_LABEL[ralphHook.kind]} ${CLAUDE_SETTINGS_PATH} (${ralphHook.detail})`);
|
|
212
|
+
}
|
|
181
213
|
// Only worth a line when a CLAUDE.md already exists; a fresh one is seeded
|
|
182
214
|
// with both imports and shows up in the file actions above.
|
|
183
215
|
if (claudeImports.kind !== "seed") {
|
|
@@ -187,24 +219,20 @@ export async function runInit(opts) {
|
|
|
187
219
|
if (!detection.isGitRepo) {
|
|
188
220
|
console.log(" git-init . (not a git repository — init will run `git init` first)");
|
|
189
221
|
}
|
|
190
|
-
if (opts.skipPluginInstall) {
|
|
191
|
-
console.log(" skip Claude Code plugin install (--skip-plugin-install)");
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
const version = detectClaudeCli(opts.cwd);
|
|
195
|
-
console.log(version
|
|
196
|
-
? ` install ${WORKFLOW_PLUGINS.map((wp) => wp.id).join(" + ")} into Claude Code (claude CLI ${version} detected)`
|
|
197
|
-
: " manual Claude Code plugin install (claude CLI not found — instructions will be printed)");
|
|
198
|
-
}
|
|
199
222
|
console.log("\nDry run — nothing was written.");
|
|
200
|
-
return { code: 0, actions,
|
|
223
|
+
return { code: 0, actions, ralphHook, claudeImports };
|
|
201
224
|
}
|
|
202
225
|
const written = applyPlan(opts.cwd, actions, lockfile);
|
|
203
|
-
|
|
204
|
-
|
|
226
|
+
// Register Ralph's guard hook (ADR-0021), an additive merge into the shared,
|
|
227
|
+
// project-owned settings.json (re-planned against the on-disk file).
|
|
228
|
+
if (manifest.modules[RALPH_MODULE]) {
|
|
229
|
+
const applied = applyRalphGuardHook(opts.cwd, planRalphGuardHook(opts.cwd));
|
|
230
|
+
if (applied && !written.includes(CLAUDE_SETTINGS_PATH))
|
|
231
|
+
written.push(CLAUDE_SETTINGS_PATH);
|
|
232
|
+
}
|
|
205
233
|
// Wire the workflow imports into a pre-existing CLAUDE.md (no-op when init
|
|
206
234
|
// just seeded a fresh one, which already carries both). Additive and
|
|
207
|
-
// idempotent, mirroring the .claude/settings.json merge (ADR-
|
|
235
|
+
// idempotent, mirroring the old .claude/settings.json merge (ADR-0012).
|
|
208
236
|
const importsWired = applyClaudeImports(opts.cwd, claudeImports);
|
|
209
237
|
if (importsWired)
|
|
210
238
|
written.push("CLAUDE.md");
|
|
@@ -229,71 +257,20 @@ export async function runInit(opts) {
|
|
|
229
257
|
if (!detection.isGitRepo) {
|
|
230
258
|
console.log("\n⚠ Not a git repository. Run `git init` before letting agents work here — Launchrail relies on git for safe writes.");
|
|
231
259
|
}
|
|
232
|
-
|
|
233
|
-
const failedPlugins = [];
|
|
234
|
-
if (!opts.skipPluginInstall) {
|
|
235
|
-
const version = detectClaudeCli(opts.cwd);
|
|
236
|
-
if (version === null) {
|
|
237
|
-
plugin = "no-cli";
|
|
238
|
-
}
|
|
239
|
-
else {
|
|
240
|
-
console.log("\nInstalling the Claude Code plugins the workflow needs (first run clones marketplaces)…");
|
|
241
|
-
let fresh = 0;
|
|
242
|
-
for (const wp of WORKFLOW_PLUGINS) {
|
|
243
|
-
const result = installPlugin(opts.cwd, wp);
|
|
244
|
-
if (result.state === "installed") {
|
|
245
|
-
if (result.detail !== "up-to-date")
|
|
246
|
-
fresh += 1;
|
|
247
|
-
const suffix = result.detail === "updated"
|
|
248
|
-
? ` — updated${result.versions ? ` (${result.versions})` : ""}`
|
|
249
|
-
: result.detail === "up-to-date"
|
|
250
|
-
? " — already up to date"
|
|
251
|
-
: "";
|
|
252
|
-
console.log(` ✓ ${wp.label} (${wp.id})${suffix}`);
|
|
253
|
-
}
|
|
254
|
-
else {
|
|
255
|
-
failedPlugins.push(wp);
|
|
256
|
-
console.log(` ⚠ ${wp.label} (${wp.id}) failed at ${result.step}:`);
|
|
257
|
-
for (const line of result.output.split("\n").slice(0, 3)) {
|
|
258
|
-
if (line.trim())
|
|
259
|
-
console.log(` ${line.trim()}`);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
plugin = failedPlugins.length > 0 ? "failed" : fresh > 0 ? "installed" : "already-installed";
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
const pluginReady = plugin === "installed" || plugin === "already-installed";
|
|
267
|
-
console.log("\nYou're set up — from here the workflow runs inside Claude Code:");
|
|
260
|
+
console.log("\nYou're set up — the workflow skills are in .claude/skills/ (managed by Launchrail):");
|
|
268
261
|
console.log(' 1. Commit the result: git add -A && git commit -m "chore: initialize launchrail"');
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
console.log(" (Session already open? Run /reload-plugins, or restart Claude Code.)");
|
|
272
|
-
}
|
|
273
|
-
else {
|
|
274
|
-
const toInstall = plugin === "failed" ? failedPlugins : WORKFLOW_PLUGINS;
|
|
275
|
-
console.log(" 2. Install the workflow plugins into Claude Code:");
|
|
276
|
-
for (const wp of toInstall) {
|
|
277
|
-
console.log(` claude plugin marketplace add ${wp.marketplace}`);
|
|
278
|
-
console.log(` claude plugin install ${wp.id}`);
|
|
279
|
-
}
|
|
280
|
-
console.log(" (No claude CLI? Inside Claude Code run /plugin → Marketplaces → Add, and enter the");
|
|
281
|
-
console.log(` owner/repo sources above. ${CLAUDE_SETTINGS_PATH} also declares these plugins, so`);
|
|
282
|
-
console.log(" Claude Code offers them by itself the first time this folder is trusted.)");
|
|
283
|
-
}
|
|
284
|
-
console.log(" 3. Run /launchrail:launch — it detects the project's stage and drives the workflow from there.");
|
|
262
|
+
console.log(" 2. Open Claude Code (or another agent) here — the skills are ready to invoke, nothing to install.");
|
|
263
|
+
console.log(" 3. Run /launch — it detects the project's stage and drives the workflow from there.");
|
|
285
264
|
if (manifest.origin === "existing") {
|
|
286
265
|
console.log(" For an existing project it starts by aligning your code with Launchrail's artifacts:");
|
|
287
266
|
console.log(" it infers a vision from what you already have, asks about the gaps, and inventories your");
|
|
288
|
-
console.log(" design system — rather than
|
|
289
|
-
console.log(" first (the skills are already installed).");
|
|
267
|
+
console.log(" design system — rather than a blank vision.");
|
|
290
268
|
}
|
|
291
269
|
else {
|
|
292
|
-
console.log(" On a fresh project that
|
|
293
|
-
console.log("
|
|
294
|
-
console.log(" TODO. No seeded file needs filling in by hand.");
|
|
270
|
+
console.log(" On a fresh project that starts with vision creation, which also replaces the seeded");
|
|
271
|
+
console.log(" AGENTS.md project-purpose TODO.");
|
|
295
272
|
}
|
|
296
273
|
console.log("\nRun `npx @wemuda/launchrail doctor` any time to validate the setup.");
|
|
297
|
-
return { code: 0, actions,
|
|
274
|
+
return { code: 0, actions, ralphHook, claudeImports };
|
|
298
275
|
}
|
|
299
276
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAuB,MAAM,qBAAqB,CAAC;AAC5G,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAElB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,GAEtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAKlB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAqC,MAAM,kBAAkB,CAAC;AAC1G,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAsBxC,SAAS,oBAAoB,CAAC,SAAwB;IACpD,IAAI,CAAC,SAAS,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,GAAG,SAAS,CAAC,cAAc,IAAI,KAAK,OAAO,CAAC;AACrD,CAAC;AAED,SAAS,cAAc,CAAC,SAAwB;IAC9C,OAAO;QACL,WAAW,EAAE,oBAAoB,CAAC,SAAS,CAAC;QAC5C,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,cAAc,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI;QACvF,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAwB;IAClD,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK;QACvD,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;QAChF,WAAW,EAAE;YACX,mBAAmB,EACjB,SAAS,CAAC,uBAAuB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,IAAI,GAAG;SAC/F;QACD,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC;QAClC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;KACxB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,SAAwB;IAC/C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACzB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,KAAK,CAC3B;QACE,MAAM,EAAE,GAAG,EAAE,CACX,CAAC,CAAC,MAAM,CAAC;YACP,OAAO,EAAE,kDAAkD;YAC3D,YAAY,EAAE,QAAQ,CAAC,MAAgB;YACvC,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,2CAA2C,EAAE;gBACzF;oBACE,KAAK,EAAE,UAAU;oBACjB,KAAK,EAAE,kBAAkB;oBACzB,IAAI,EAAE,yEAAyE;iBAChF;aACF;SACF,CAAC;QACJ,IAAI,EAAE,GAAG,EAAE,CACT,CAAC,CAAC,MAAM,CAAC;YACP,OAAO,EAAE,cAAc;YACvB,YAAY,EAAE,QAAQ,CAAC,IAAc;YACrC,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,0BAA0B,EAAE;gBAClF,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,kDAAkD,EAAE;gBAC5F,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,8CAA8C,EAAE;aACnG;SACF,CAAC;QACJ,YAAY,EAAE,GAAG,EAAE,CACjB,CAAC,CAAC,MAAM,CAAC;YACP,OAAO,EAAE,eAAe;YACxB,YAAY,EAAE,QAAQ,CAAC,YAAsB;YAC7C,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;SAC7D,CAAC;QACJ,mBAAmB,EAAE,GAAG,EAAE,CACxB,CAAC,CAAC,OAAO,CAAC;YACR,OAAO,EAAE,kFAAkF;YAC3F,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,mBAAmB;SACvD,CAAC;QACJ,WAAW,EAAE,GAAG,EAAE,CAChB,CAAC,CAAC,IAAI,CAAC;YACL,OAAO,EAAE,oDAAoD;YAC7D,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE;YAChD,WAAW,EAAE,gBAAgB;SAC9B,CAAC;KACL,EACD;QACE,QAAQ,EAAE,GAAG,EAAE;YACb,CAAC,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;KACF,CACF,CAAC;IAEF,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,IAAI,EAAE,OAAO,CAAC,IAAY;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAgB;QAChC,YAAY,EAAE,OAAO,CAAC,YAA4B;QAClD,WAAW,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAAE;QACjE,OAAO,EAAE;YACP,GAAG,cAAc,CAAC,SAAS,CAAC;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE;SACnF;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAyC;IAC3D,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,UAAU;IACjB,eAAe,EAAE,UAAU;IAC3B,cAAc,EAAE,UAAU;CAC3B,CAAC;AAEF,MAAM,oBAAoB,GAA8C;IACtE,IAAI,EAAE,UAAU;IAChB,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,UAAU;CAClB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAiB;IAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,6EAA6E;IAC7E,0EAA0E;IAC1E,qEAAqE;IACrE,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACzC,cAAc,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;QACpG,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,+FAA+F,CAAC,CAAC;YAC7G,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;IAE/F,IAAI,QAAkB,CAAC;IACvB,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,wBAAwB,iBAAiB,cAAc,CAAC,CAAC;YACvE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM;gBAAE,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;YACjE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC9E,CAAC;QACD,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,kBAAkB,iBAAiB,kDAAkD,CAAC,CAAC;IACrG,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,QAAQ,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACpB,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;QAC7F,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC9E,CAAC;IAED,6EAA6E;IAC7E,0EAA0E;IAC1E,+DAA+D;IAC/D,MAAM,gBAAgB,GACpB,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;IACzG,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CACT,yHAAyH,CAC1H,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAe;QACxB,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE;QACzF,GAAG,SAAS,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;KAC3F,CAAC;IAEF,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,eAAe,QAAQ,CAAC,KAAK,4DAA4D,CAAC,CAAC;QACzG,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACvB,0EAA0E;QAC1E,qEAAqE;QACrE,QAAQ,CAAC,UAAU,GAAG,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,oBAAoB,MAAM,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACjG,2EAA2E;IAC3E,4DAA4D;IAC5D,IAAI,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACrG,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CACT,OAAO;gBACL,CAAC,CAAC,eAAe,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kCAAkC,OAAO,YAAY;gBACrH,CAAC,CAAC,+FAA+F,CACpG,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACnF,2EAA2E;IAC3E,qEAAqE;IACrE,8EAA8E;IAC9E,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACjE,IAAI,YAAY;QAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,SAAS,GAAG;QACnB,GAAG,QAAQ,CAAC,SAAS;QACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAAC,mBAAmB;QAC7D,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW;KAC1C,CAAC;IACF,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAClE,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,GAAG,CACT,OAAO,CAAC,MAAM,GAAG,CAAC;QAChB,CAAC,CAAC,WAAW,OAAO,CAAC,MAAM,WAAW;QACtC,CAAC,CAAC,oDAAoD,CACzD,CAAC;IACF,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CACT,4DAA4D,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,2CAA2C,CACtI,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,sHAAsH,CAAC,CAAC;IACtI,CAAC;IAED,IAAI,MAAM,GAAkB,SAAS,CAAC;IACtC,MAAM,aAAa,GAAqB,EAAE,CAAC;IAC3C,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,0FAA0F,CAAC,CAAC;YACxG,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC3C,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;oBACjC,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY;wBAAE,KAAK,IAAI,CAAC,CAAC;oBAC/C,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,KAAK,SAAS;wBACzB,CAAC,CAAC,aAAa,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC/D,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY;4BAC9B,CAAC,CAAC,uBAAuB;4BACzB,CAAC,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACN,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,EAAE,eAAe,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;oBACpE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;wBACzD,IAAI,IAAI,CAAC,IAAI,EAAE;4BAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,mBAAmB,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;IAClG,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,0FAA0F,CAAC,CAAC;QACxG,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;IAC3F,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACnE,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;QACvG,OAAO,CAAC,GAAG,CAAC,mCAAmC,oBAAoB,kCAAkC,CAAC,CAAC;QACvG,OAAO,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,kGAAkG,CAAC,CAAC;IAChH,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,2FAA2F,CAAC,CAAC;QACzG,OAAO,CAAC,GAAG,CAAC,+FAA+F,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;QAC5G,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;QAC5G,OAAO,CAAC,GAAG,CAAC,iGAAiG,CAAC,CAAC;QAC/G,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;AAC/D,CAAC"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/sync.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
1
3
|
import { writeLockfile } from "../lib/lockfile.js";
|
|
4
|
+
import { MANIFEST_FILENAME, parseManifest } from "../lib/manifest.js";
|
|
2
5
|
import { applyPendingMigrations, MIGRATIONS, planPendingMigrations, } from "../lib/migrations.js";
|
|
3
6
|
import { loadProject, desiredSpecs } from "../lib/project.js";
|
|
4
7
|
import { ACTION_LABEL, applyPlan, planWrites } from "../lib/writer.js";
|
|
@@ -67,6 +70,14 @@ export function runSync(opts) {
|
|
|
67
70
|
console.error("Migrations applied before the failure are recorded; fix the cause and re-run `launchrail sync`.");
|
|
68
71
|
return { code: 1, actions: [], migrations };
|
|
69
72
|
}
|
|
73
|
+
// A migration may edit the manifest (e.g. enabling a module); re-read it so
|
|
74
|
+
// the regenerated file surface reflects the post-migration configuration in
|
|
75
|
+
// this run instead of the next one.
|
|
76
|
+
if (migrations.some((result) => result.status === "applied")) {
|
|
77
|
+
const reparsed = parseManifest(readFileSync(join(opts.cwd, MANIFEST_FILENAME), "utf8"));
|
|
78
|
+
if (reparsed.manifest)
|
|
79
|
+
state.manifest = reparsed.manifest;
|
|
80
|
+
}
|
|
70
81
|
const actions = planWrites(opts.cwd, desiredSpecs(state), state.lockfile);
|
|
71
82
|
printActions(actions);
|
|
72
83
|
const written = applyPlan(opts.cwd, actions, state.lockfile);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -33,10 +33,6 @@ init / add options:
|
|
|
33
33
|
--dry-run Show what would be written without writing
|
|
34
34
|
-y, --yes Accept defaults; no interactive questions
|
|
35
35
|
|
|
36
|
-
init options:
|
|
37
|
-
--skip-plugin-install Declare the Claude Code plugin but do not install it
|
|
38
|
-
via the claude CLI (env: LAUNCHRAIL_SKIP_CLAUDE_CLI=1)
|
|
39
|
-
|
|
40
36
|
smoke options:
|
|
41
37
|
--url <url> Test a specific URL (e.g. a preview environment)
|
|
42
38
|
--dry-run Show what would be scaffolded without writing
|
|
@@ -64,7 +60,6 @@ if (command === "init") {
|
|
|
64
60
|
cwd: process.cwd(),
|
|
65
61
|
dryRun: flags.has("--dry-run"),
|
|
66
62
|
yes: flags.has("--yes") || flags.has("-y"),
|
|
67
|
-
skipPluginInstall: flags.has("--skip-plugin-install"),
|
|
68
63
|
});
|
|
69
64
|
process.exit(outcome.code);
|
|
70
65
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,IAAI,GAAG,cAAc,OAAO;;;;;;;sDAOoB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
/**
|
|
5
|
+
* Per-repo workflow configuration under docs/agents/: the issue-tracker
|
|
6
|
+
* conventions (including the rail's label vocabulary) and the domain-doc
|
|
7
|
+
* consumer rules. Upstream needed an interactive setup skill to write these;
|
|
8
|
+
* Launchrail derives them from the manifest and seeds them at init/sync
|
|
9
|
+
* (ADR-0020), so stage 0 is just `init`. Seeded means created once and then
|
|
10
|
+
* project-owned — edit them freely, or delete one to have `sync` re-seed it
|
|
11
|
+
* from the manifest's current answers (e.g. after switching trackers).
|
|
12
|
+
*/
|
|
13
|
+
const AGENTS_DOCS_ASSET_DIR = fileURLToPath(new URL("../../assets/agents-docs/", import.meta.url));
|
|
14
|
+
export const AGENTS_DOCS_DEST_PREFIX = "docs/agents";
|
|
15
|
+
function asset(name) {
|
|
16
|
+
return readFileSync(join(AGENTS_DOCS_ASSET_DIR, name), "utf8");
|
|
17
|
+
}
|
|
18
|
+
export function agentsDocsFiles(manifest) {
|
|
19
|
+
const specs = [
|
|
20
|
+
{ relPath: `${AGENTS_DOCS_DEST_PREFIX}/domain.md`, content: asset("domain.md"), ownership: "seeded" },
|
|
21
|
+
];
|
|
22
|
+
// `none` means no tracker — nothing to document.
|
|
23
|
+
if (manifest.issueTracker !== "none") {
|
|
24
|
+
specs.push({
|
|
25
|
+
relPath: `${AGENTS_DOCS_DEST_PREFIX}/issue-tracker.md`,
|
|
26
|
+
content: asset(`issue-tracker-${manifest.issueTracker}.md`),
|
|
27
|
+
ownership: "seeded",
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return specs;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=agentsDocs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentsDocs.js","sourceRoot":"","sources":["../../src/lib/agentsDocs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC;;;;;;;;GAQG;AACH,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEnG,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAAC;AAErD,SAAS,KAAK,CAAC,IAAY;IACzB,OAAO,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAkB;IAChD,MAAM,KAAK,GAAe;QACxB,EAAE,OAAO,EAAE,GAAG,uBAAuB,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE;KACtG,CAAC;IACF,iDAAiD;IACjD,IAAI,QAAQ,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,GAAG,uBAAuB,mBAAmB;YACtD,OAAO,EAAE,KAAK,CAAC,iBAAiB,QAAQ,CAAC,YAAY,KAAK,CAAC;YAC3D,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Consuming projects subscribe to
|
|
3
|
-
* committed, project-scoped declaration in .claude/settings.json (ADR-0003,
|
|
4
|
-
* extended
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
2
|
+
* Consuming projects used to subscribe to workflow Claude Code plugins through
|
|
3
|
+
* a committed, project-scoped declaration in .claude/settings.json (ADR-0003,
|
|
4
|
+
* extended by ADR-0011, retired by ADR-0019/0020 — skills ship as files now).
|
|
5
|
+
* This module remains to plan additive merges and, mostly, their inverse: the
|
|
6
|
+
* migrations that strip the retired declarations from consumers. The file is
|
|
7
|
+
* project-owned and shared with unrelated Claude Code configuration, so it is
|
|
8
|
+
* never tracked in the lockfile and never replaced — only the named keys are
|
|
9
|
+
* ever added or removed.
|
|
10
10
|
*/
|
|
11
11
|
export declare const CLAUDE_SETTINGS_PATH: string;
|
|
12
12
|
export interface PluginDeclaration {
|
|
@@ -19,10 +19,28 @@ export interface PluginDeclaration {
|
|
|
19
19
|
/** Human-readable label for init/doctor messages. */
|
|
20
20
|
label: string;
|
|
21
21
|
}
|
|
22
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* The workflow plugin roster is empty: the skills are Launchrail's own and ship
|
|
24
|
+
* as managed files (ADR-0019/0020), never as plugins. Kept as an (empty) array
|
|
25
|
+
* because the legacy declaration migrations plan through it.
|
|
26
|
+
*/
|
|
23
27
|
export declare const PLUGIN_DECLARATIONS: PluginDeclaration[];
|
|
28
|
+
/**
|
|
29
|
+
* The declarations Launchrail wrote before it shipped skills as files
|
|
30
|
+
* (ADR-0003/0011). The vendor migration strips these from a consumer's
|
|
31
|
+
* settings.json; they live here only so it knows what to remove.
|
|
32
|
+
*/
|
|
33
|
+
export declare const RETIRED_PLUGIN_DECLARATIONS: PluginDeclaration[];
|
|
34
|
+
/**
|
|
35
|
+
* The declaration Launchrail added when a project selected the retired
|
|
36
|
+
* `superpowers` implementation loop (ADR-0017, removed by ADR-0020). The
|
|
37
|
+
* independence migration removes it — only from projects whose manifest had
|
|
38
|
+
* selected that loop, so a declaration the user added for their own reasons
|
|
39
|
+
* is never touched.
|
|
40
|
+
*/
|
|
41
|
+
export declare const RETIRED_SUPERPOWERS_DECLARATION: PluginDeclaration;
|
|
24
42
|
export type DeclarationState = "declared" | "no-file" | "invalid-json" | "undeclared";
|
|
25
|
-
export declare function declarationState(root: string): DeclarationState;
|
|
43
|
+
export declare function declarationState(root: string, declarations?: PluginDeclaration[]): DeclarationState;
|
|
26
44
|
export type SettingsPlanKind = "create" | "merge" | "skip-declared" | "skip-invalid";
|
|
27
45
|
export interface SettingsPlan {
|
|
28
46
|
kind: SettingsPlanKind;
|
|
@@ -30,6 +48,51 @@ export interface SettingsPlan {
|
|
|
30
48
|
/** Full file content to write; null when nothing should change. */
|
|
31
49
|
content: string | null;
|
|
32
50
|
}
|
|
33
|
-
export declare function planPluginDeclaration(root: string): SettingsPlan;
|
|
51
|
+
export declare function planPluginDeclaration(root: string, declarations?: PluginDeclaration[]): SettingsPlan;
|
|
34
52
|
/** Execute a plan. Returns true when the file was written. */
|
|
35
53
|
export declare function applyPluginDeclaration(root: string, plan: SettingsPlan): boolean;
|
|
54
|
+
export type SettingsRemovalKind = "remove" | "skip-absent" | "skip-invalid" | "skip-no-file";
|
|
55
|
+
export interface SettingsRemovalPlan {
|
|
56
|
+
kind: SettingsRemovalKind;
|
|
57
|
+
detail: string;
|
|
58
|
+
/** Full file content to write; null when nothing should change. */
|
|
59
|
+
content: string | null;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Plan removal of retired plugin declarations from .claude/settings.json — the
|
|
63
|
+
* additive inverse of planPluginDeclaration (ADR-0019). Only the named keys are
|
|
64
|
+
* dropped; anything else the project put there (other marketplaces/plugins, a
|
|
65
|
+
* selected loop's declaration, unrelated settings) is preserved, and a container
|
|
66
|
+
* emptied by the removal is dropped rather than left as `{}`.
|
|
67
|
+
*/
|
|
68
|
+
export declare function planRemovePluginDeclaration(root: string, declarations?: PluginDeclaration[]): SettingsRemovalPlan;
|
|
69
|
+
/** Execute a removal plan. Returns true when the file was written. */
|
|
70
|
+
export declare function applyRemovePluginDeclaration(root: string, plan: SettingsRemovalPlan): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* The Ralph unattended-launch guard (ADR-0021). The hook *file* is a managed
|
|
73
|
+
* Ralph asset (see `ralphFiles`); this is its registration in the project-owned,
|
|
74
|
+
* shared `.claude/settings.json` — an additive `PreToolUse(Workflow)` entry that
|
|
75
|
+
* runs the guard. Like the plugin declaration, the file is never lockfile-tracked
|
|
76
|
+
* and never replaced wholesale: the registration is an idempotent merge that
|
|
77
|
+
* preserves every other setting and hook a project already carries.
|
|
78
|
+
*/
|
|
79
|
+
export declare const RALPH_GUARD_HOOK_COMMAND = "python3 \"$CLAUDE_PROJECT_DIR/.claude/hooks/ralph-permission-guard.py\"";
|
|
80
|
+
export type HookRegistrationState = "registered" | "no-file" | "invalid-json" | "unregistered";
|
|
81
|
+
/** Whether the guard hook is already registered in a project's settings.json. */
|
|
82
|
+
export declare function ralphGuardHookState(root: string): HookRegistrationState;
|
|
83
|
+
export type HookPlanKind = "create" | "merge" | "skip-registered" | "skip-invalid";
|
|
84
|
+
export interface HookPlan {
|
|
85
|
+
kind: HookPlanKind;
|
|
86
|
+
detail: string;
|
|
87
|
+
/** Full file content to write; null when nothing should change. */
|
|
88
|
+
content: string | null;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Plan registration of the Ralph guard hook in .claude/settings.json. Additive
|
|
92
|
+
* and idempotent: an existing registration (matched by the guard command, not by
|
|
93
|
+
* exact JSON) is left alone, unparseable JSON is never touched, and every
|
|
94
|
+
* unrelated setting — including other hooks — is preserved.
|
|
95
|
+
*/
|
|
96
|
+
export declare function planRalphGuardHook(root: string): HookPlan;
|
|
97
|
+
/** Execute a hook-registration plan. Returns true when the file was written. */
|
|
98
|
+
export declare function applyRalphGuardHook(root: string, plan: HookPlan): boolean;
|