yosr-seed 0.2.2 → 0.2.4
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/CHANGELOG.md +24 -0
- package/README.md +1 -1
- package/dist/adopt.d.ts +6 -0
- package/dist/adopt.js +416 -0
- package/dist/adopt.js.map +1 -0
- package/dist/create.js +3 -0
- package/dist/create.js.map +1 -1
- package/dist/engine/ci/apply.d.ts +15 -0
- package/dist/engine/ci/apply.js +32 -0
- package/dist/engine/ci/apply.js.map +1 -0
- package/dist/engine/ci/content.d.ts +12 -0
- package/dist/engine/ci/content.js +58 -0
- package/dist/engine/ci/content.js.map +1 -0
- package/dist/engine/gate/run.d.ts +35 -1
- package/dist/engine/gate/run.js +84 -22
- package/dist/engine/gate/run.js.map +1 -1
- package/dist/engine/index.d.ts +4 -1
- package/dist/engine/index.js +4 -1
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/render/lockfile.js +1 -0
- package/dist/engine/render/lockfile.js.map +1 -1
- package/dist/engine/render/render.js +4 -0
- package/dist/engine/render/render.js.map +1 -1
- package/dist/help.js +7 -1
- package/dist/help.js.map +1 -1
- package/dist/labels.js +1 -0
- package/dist/labels.js.map +1 -1
- package/dist/run.js +6 -0
- package/dist/run.js.map +1 -1
- package/dist/schemas/seed.answers.schema.json +5 -0
- package/dist/upgrade.d.ts +35 -0
- package/dist/upgrade.js +390 -0
- package/dist/upgrade.js.map +1 -0
- package/package.json +8 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# yosr-seed
|
|
2
2
|
|
|
3
|
+
## 0.2.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- ADR 0025 §2–§3: `yosr-seed upgrade` (report-only) and `yosr-seed adopt` (rulebook + adopted `.seed/` record). Creates write `origin: "created"`. No auto-apply, no architecture assessment.
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @yosr-ai/template-next-fullstack@0.2.4
|
|
10
|
+
- @yosr-ai/template-fastapi@0.2.4
|
|
11
|
+
- @yosr-ai/template-hono@0.2.4
|
|
12
|
+
- @yosr-ai/template-vite-react@0.2.4
|
|
13
|
+
- @yosr-ai/template-astro-site@0.2.4
|
|
14
|
+
|
|
15
|
+
## 0.2.3
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Opt-in create-time CI recipe (ADR 0025 §1): `--ci` writes a sample GitHub Actions workflow that runs a **pinned** `yosr-seed gate` (never `@latest`). On Next.js, `--ci` replaces the template-local `.github/workflows/ci.yml` so only `yosr-seed-gate.yml` remains; plain `gate` does not run Playwright e2e (use `gate --e2e`). Default creates are unchanged. Not an upgrade or adopt command.
|
|
20
|
+
- Updated dependencies
|
|
21
|
+
- @yosr-ai/template-next-fullstack@0.2.3
|
|
22
|
+
- @yosr-ai/template-fastapi@0.2.3
|
|
23
|
+
- @yosr-ai/template-hono@0.2.3
|
|
24
|
+
- @yosr-ai/template-vite-react@0.2.3
|
|
25
|
+
- @yosr-ai/template-astro-site@0.2.3
|
|
26
|
+
|
|
3
27
|
## 0.2.2
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -100,7 +100,7 @@ Style presets (Clean / Classic / Minimal) and tweaks shape layout, formatting, a
|
|
|
100
100
|
| `yosr-seed --version` / `-v` | CLI and template versions |
|
|
101
101
|
| `yosr-seed --help` / `-h` | Full flag list |
|
|
102
102
|
|
|
103
|
-
Common create flags (see `--help` for all): `--template`, `--project-name`, `--database`, `--orm`, `--api-client`, `--content`, `--react-islands`, `--contact`, `--auth`, `--api`, `--payments`, `--deploy`, `--package-manager`, `--profile`, `--non-interactive`, `--save-profile`, `--e2e`, `--no-gate`, `--no-git`, `--push`.
|
|
103
|
+
Common create flags (see `--help` for all): `--template`, `--project-name`, `--database`, `--orm`, `--api-client`, `--content`, `--react-islands`, `--contact`, `--auth`, `--api`, `--payments`, `--deploy`, `--workflow`, `--ci`, `--package-manager`, `--profile`, `--non-interactive`, `--save-profile`, `--e2e`, `--no-gate`, `--no-git`, `--push`.
|
|
104
104
|
|
|
105
105
|
## Style profile
|
|
106
106
|
|
package/dist/adopt.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CliIo } from "./run.js";
|
|
2
|
+
/**
|
|
3
|
+
* Add the Yosr Seed rulebook + adopted `.seed/` record to an existing repo (ADR 0025 §3).
|
|
4
|
+
* Always previews (including one gate run) before writing Yosr Seed files.
|
|
5
|
+
*/
|
|
6
|
+
export declare function runAdopt(io: CliIo): Promise<number>;
|
package/dist/adopt.js
ADDED
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { copyFileSync, existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, statSync, writeFileSync, } from "node:fs";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { buildProfile, copilotInstructions, exitCodes, geminiMd, render, RenderError, runGate, templateSource, validateAnswers, } from "./engine/index.js";
|
|
6
|
+
import { liveProbe, packageManagerCheck, pythonCheck, } from "./preflight.js";
|
|
7
|
+
import { isTemplateId, loadTemplateManifest, templateDir, templatePackageVersion, TEMPLATE_IDS, } from "./templates.js";
|
|
8
|
+
const RULEBOOK_PATHS = [
|
|
9
|
+
"AGENTS.md",
|
|
10
|
+
"CLAUDE.md",
|
|
11
|
+
"GEMINI.md",
|
|
12
|
+
".github/copilot-instructions.md",
|
|
13
|
+
];
|
|
14
|
+
const USAGE = "Usage: yosr-seed adopt [dir] --template <next-fullstack|fastapi|hono|vite-react|astro-site> [--package-manager pnpm|npm|uv] [--yes]";
|
|
15
|
+
function sha256Text(content) {
|
|
16
|
+
return createHash("sha256").update(content).digest("hex");
|
|
17
|
+
}
|
|
18
|
+
function parseFlags(args) {
|
|
19
|
+
let dir;
|
|
20
|
+
let template;
|
|
21
|
+
let packageManager;
|
|
22
|
+
let yes = false;
|
|
23
|
+
for (let i = 0; i < args.length; i += 1) {
|
|
24
|
+
const arg = args[i];
|
|
25
|
+
if (arg === "--yes" || arg === "-y") {
|
|
26
|
+
yes = true;
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (arg === "--template") {
|
|
30
|
+
const value = args[i + 1];
|
|
31
|
+
if (value === undefined || value.startsWith("--")) {
|
|
32
|
+
return { error: USAGE };
|
|
33
|
+
}
|
|
34
|
+
template = value;
|
|
35
|
+
i += 1;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (arg.startsWith("--template=")) {
|
|
39
|
+
template = arg.slice("--template=".length);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (arg === "--package-manager") {
|
|
43
|
+
const value = args[i + 1];
|
|
44
|
+
if (value === undefined || value.startsWith("--")) {
|
|
45
|
+
return { error: USAGE };
|
|
46
|
+
}
|
|
47
|
+
if (value !== "pnpm" && value !== "npm" && value !== "uv") {
|
|
48
|
+
return { error: `Unknown package manager ${JSON.stringify(value)}.` };
|
|
49
|
+
}
|
|
50
|
+
packageManager = value;
|
|
51
|
+
i += 1;
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (arg.startsWith("--package-manager=")) {
|
|
55
|
+
const value = arg.slice("--package-manager=".length);
|
|
56
|
+
if (value !== "pnpm" && value !== "npm" && value !== "uv") {
|
|
57
|
+
return { error: `Unknown package manager ${JSON.stringify(value)}.` };
|
|
58
|
+
}
|
|
59
|
+
packageManager = value;
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (arg.startsWith("--"))
|
|
63
|
+
return { error: USAGE };
|
|
64
|
+
if (dir !== undefined)
|
|
65
|
+
return { error: USAGE };
|
|
66
|
+
dir = arg;
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
dir: dir ?? ".",
|
|
70
|
+
...(template !== undefined ? { template } : {}),
|
|
71
|
+
...(packageManager !== undefined ? { packageManager } : {}),
|
|
72
|
+
yes,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function defaultPackageManager(template) {
|
|
76
|
+
return template === "fastapi" ? "uv" : "pnpm";
|
|
77
|
+
}
|
|
78
|
+
function lockfileName(pm) {
|
|
79
|
+
if (pm === "pnpm")
|
|
80
|
+
return "pnpm-lock.yaml";
|
|
81
|
+
if (pm === "npm")
|
|
82
|
+
return "package-lock.json";
|
|
83
|
+
return "uv.lock";
|
|
84
|
+
}
|
|
85
|
+
function foreignLockfiles(root, chosen) {
|
|
86
|
+
const found = [];
|
|
87
|
+
for (const pm of ["pnpm", "npm", "uv"]) {
|
|
88
|
+
if (pm === chosen)
|
|
89
|
+
continue;
|
|
90
|
+
const name = lockfileName(pm);
|
|
91
|
+
if (existsSync(path.join(root, name)))
|
|
92
|
+
found.push(name);
|
|
93
|
+
}
|
|
94
|
+
return found;
|
|
95
|
+
}
|
|
96
|
+
function claudePointer() {
|
|
97
|
+
return `@AGENTS.md\n\n<!-- Claude Code imports AGENTS.md above. Add Claude-specific notes below. -->\n`;
|
|
98
|
+
}
|
|
99
|
+
async function agentsFromTemplate(templateId, engineVersion, packageManager, projectName) {
|
|
100
|
+
const tempRoot = mkdtempSync(path.join(tmpdir(), "yosr-adopt-agents-"));
|
|
101
|
+
const outDir = path.join(tempRoot, "out");
|
|
102
|
+
try {
|
|
103
|
+
await render({
|
|
104
|
+
templateDir: templateDir(templateId),
|
|
105
|
+
engineVersion,
|
|
106
|
+
answers: { projectName },
|
|
107
|
+
profile: buildProfile({
|
|
108
|
+
preset: "clean",
|
|
109
|
+
now: "2026-11-10T00:00:00.000Z",
|
|
110
|
+
createdWith: "yosr-seed adopt",
|
|
111
|
+
}),
|
|
112
|
+
outDir,
|
|
113
|
+
packageManager,
|
|
114
|
+
});
|
|
115
|
+
const agentsPath = path.join(outDir, "AGENTS.md");
|
|
116
|
+
if (!existsSync(agentsPath)) {
|
|
117
|
+
throw new Error(`Template ${templateId} did not produce AGENTS.md for adopt.`);
|
|
118
|
+
}
|
|
119
|
+
return readFileSync(agentsPath, "utf8");
|
|
120
|
+
}
|
|
121
|
+
finally {
|
|
122
|
+
rmSync(tempRoot, { recursive: true, force: true });
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
async function plannedRulebook(templateId, engineVersion, packageManager, projectName) {
|
|
126
|
+
const agents = await agentsFromTemplate(templateId, engineVersion, packageManager, projectName);
|
|
127
|
+
return {
|
|
128
|
+
"AGENTS.md": agents,
|
|
129
|
+
"CLAUDE.md": claudePointer(),
|
|
130
|
+
"GEMINI.md": geminiMd(),
|
|
131
|
+
".github/copilot-instructions.md": copilotInstructions(),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
function lastLines(text) {
|
|
135
|
+
const lines = text.split("\n").filter((line) => line.trim().length > 0);
|
|
136
|
+
return lines.slice(-15).join("\n");
|
|
137
|
+
}
|
|
138
|
+
function printGateSteps(io, gate) {
|
|
139
|
+
for (const step of gate.steps) {
|
|
140
|
+
const seconds = step.durationSec !== undefined ? ` ${step.durationSec}s` : "";
|
|
141
|
+
const mark = step.result === "passed"
|
|
142
|
+
? "ok "
|
|
143
|
+
: step.result === "skipped"
|
|
144
|
+
? "skip"
|
|
145
|
+
: "fail";
|
|
146
|
+
io.stdout(`${mark} ${step.id}${seconds}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async function askYesNo(io, question, defaultYes) {
|
|
150
|
+
if (io.interactive) {
|
|
151
|
+
const answer = await io.interactive.confirm({
|
|
152
|
+
kind: "confirm",
|
|
153
|
+
message: question,
|
|
154
|
+
initialValue: defaultYes,
|
|
155
|
+
});
|
|
156
|
+
if (io.interactive.isCancel(answer))
|
|
157
|
+
return "cancel";
|
|
158
|
+
return answer;
|
|
159
|
+
}
|
|
160
|
+
if (io.prompt) {
|
|
161
|
+
const hint = defaultYes ? "Y/n" : "y/N";
|
|
162
|
+
const answer = String(await io.prompt(`${question} (${hint}) `)).trim();
|
|
163
|
+
if (answer.length === 0)
|
|
164
|
+
return defaultYes;
|
|
165
|
+
return /^(y|yes)$/i.test(answer);
|
|
166
|
+
}
|
|
167
|
+
return defaultYes;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Add the Yosr Seed rulebook + adopted `.seed/` record to an existing repo (ADR 0025 §3).
|
|
171
|
+
* Always previews (including one gate run) before writing Yosr Seed files.
|
|
172
|
+
*/
|
|
173
|
+
export async function runAdopt(io) {
|
|
174
|
+
const parsed = parseFlags(io.args.slice(1));
|
|
175
|
+
if ("error" in parsed) {
|
|
176
|
+
io.stderr(parsed.error);
|
|
177
|
+
return exitCodes.failure;
|
|
178
|
+
}
|
|
179
|
+
const root = path.resolve(io.cwd ?? process.cwd(), parsed.dir);
|
|
180
|
+
if (!existsSync(root) || !statSync(root).isDirectory()) {
|
|
181
|
+
io.stderr(`Directory not found: ${root}`);
|
|
182
|
+
return exitCodes.failure;
|
|
183
|
+
}
|
|
184
|
+
if (existsSync(path.join(root, ".seed"))) {
|
|
185
|
+
io.stderr("This folder already has a .seed/ record. Adopt refuses to run when .seed/ exists.");
|
|
186
|
+
return exitCodes.failure;
|
|
187
|
+
}
|
|
188
|
+
let templateId;
|
|
189
|
+
if (parsed.template !== undefined) {
|
|
190
|
+
if (!isTemplateId(parsed.template)) {
|
|
191
|
+
io.stderr(`Unknown template ${JSON.stringify(parsed.template)}. Choose one of: ${TEMPLATE_IDS.join(", ")}.`);
|
|
192
|
+
return exitCodes.failure;
|
|
193
|
+
}
|
|
194
|
+
templateId = parsed.template;
|
|
195
|
+
}
|
|
196
|
+
else if (io.interactive) {
|
|
197
|
+
const picked = await io.interactive.select({
|
|
198
|
+
kind: "select",
|
|
199
|
+
message: "Template to adopt as",
|
|
200
|
+
options: TEMPLATE_IDS.map((id) => ({ value: id, label: id })),
|
|
201
|
+
initialValue: TEMPLATE_IDS[0],
|
|
202
|
+
line: "choices",
|
|
203
|
+
});
|
|
204
|
+
if (io.interactive.isCancel(picked) || !isTemplateId(picked)) {
|
|
205
|
+
io.stderr("Adopt cancelled.");
|
|
206
|
+
return exitCodes.failure;
|
|
207
|
+
}
|
|
208
|
+
templateId = picked;
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
io.stderr("Pass --template <next-fullstack|fastapi|hono|vite-react|astro-site> (adopt does not detect the stack).");
|
|
212
|
+
return exitCodes.failure;
|
|
213
|
+
}
|
|
214
|
+
const packageManager = parsed.packageManager ?? defaultPackageManager(templateId);
|
|
215
|
+
const manifest = loadTemplateManifest(templateId);
|
|
216
|
+
const shippedVersion = templatePackageVersion(templateId);
|
|
217
|
+
const tdir = templateDir(templateId);
|
|
218
|
+
for (const foreign of foreignLockfiles(root, packageManager)) {
|
|
219
|
+
io.stdout(`Warning: found ${foreign} while using ${packageManager}. Pass --package-manager if you meant a different manager.`);
|
|
220
|
+
}
|
|
221
|
+
const probe = io.probe ?? liveProbe();
|
|
222
|
+
const checks = [
|
|
223
|
+
packageManagerCheck(packageManager, probe),
|
|
224
|
+
];
|
|
225
|
+
if (manifest.engines.python !== undefined) {
|
|
226
|
+
checks.push(pythonCheck(manifest.engines.python, probe));
|
|
227
|
+
}
|
|
228
|
+
const missing = checks.filter((check) => !check.ok);
|
|
229
|
+
if (missing.length > 0) {
|
|
230
|
+
for (const check of missing)
|
|
231
|
+
io.stderr(check.line);
|
|
232
|
+
return exitCodes.failure;
|
|
233
|
+
}
|
|
234
|
+
io.stdout("Yosr Seed adopt preview");
|
|
235
|
+
io.stdout(`Template ${templateId}@${shippedVersion}`);
|
|
236
|
+
io.stdout(`Package manager ${packageManager}`);
|
|
237
|
+
io.stdout("");
|
|
238
|
+
io.stdout("Rulebook files");
|
|
239
|
+
const projectName = path.basename(root);
|
|
240
|
+
let planned;
|
|
241
|
+
try {
|
|
242
|
+
planned = await plannedRulebook(templateId, io.version, packageManager, projectName);
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
const message = error instanceof RenderError || error instanceof Error
|
|
246
|
+
? error.message
|
|
247
|
+
: String(error);
|
|
248
|
+
io.stderr(`Could not build the rulebook from folder name ${JSON.stringify(projectName)}.\n${message}`);
|
|
249
|
+
return exitCodes.failure;
|
|
250
|
+
}
|
|
251
|
+
const existing = [];
|
|
252
|
+
const missingPaths = [];
|
|
253
|
+
for (const rel of RULEBOOK_PATHS) {
|
|
254
|
+
if (existsSync(path.join(root, rel))) {
|
|
255
|
+
existing.push(rel);
|
|
256
|
+
io.stdout(` keep (exists): ${rel}`);
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
missingPaths.push(rel);
|
|
260
|
+
io.stdout(` add: ${rel}`);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
const reportTempDir = mkdtempSync(path.join(tmpdir(), "yosr-adopt-report-"));
|
|
264
|
+
const reportTemp = path.join(reportTempDir, "report.md");
|
|
265
|
+
const ephemeralAnswers = {
|
|
266
|
+
packageManager,
|
|
267
|
+
options: {},
|
|
268
|
+
files: {},
|
|
269
|
+
style: { applied: {} },
|
|
270
|
+
};
|
|
271
|
+
io.stdout("");
|
|
272
|
+
io.stdout("Gate preview (may write node_modules / .venv / caches, and a lockfile if none exists; not .seed/)");
|
|
273
|
+
const gate = await (io.runProjectGate ?? runGate)({
|
|
274
|
+
dir: root,
|
|
275
|
+
templateDir: tdir,
|
|
276
|
+
services: true,
|
|
277
|
+
e2e: false,
|
|
278
|
+
image: false,
|
|
279
|
+
quiet: true,
|
|
280
|
+
answers: ephemeralAnswers,
|
|
281
|
+
persistAnswers: false,
|
|
282
|
+
reportPath: reportTemp,
|
|
283
|
+
lockedInstall: true,
|
|
284
|
+
});
|
|
285
|
+
if (gate.installCommand) {
|
|
286
|
+
io.stdout(`Install command: ${gate.installCommand}`);
|
|
287
|
+
}
|
|
288
|
+
printGateSteps(io, gate);
|
|
289
|
+
if (!gate.green) {
|
|
290
|
+
const failed = gate.steps.find((step) => step.result === "failed" || step.result === "timed-out");
|
|
291
|
+
if (failed?.excerpt)
|
|
292
|
+
io.stderr(lastLines(failed.excerpt));
|
|
293
|
+
for (const problem of gate.problems)
|
|
294
|
+
io.stderr(problem);
|
|
295
|
+
io.stdout("Gate would be red today.");
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
io.stdout(`Tests: ${gate.testCount}`);
|
|
299
|
+
io.stdout("Gate would be green today.");
|
|
300
|
+
}
|
|
301
|
+
io.stdout("Preview writes no Yosr Seed files (.seed/ and rulebook paths untouched).");
|
|
302
|
+
if (!parsed.yes) {
|
|
303
|
+
// TTY only. Pipes and CI must pass --yes (line prompts would hang).
|
|
304
|
+
if (io.interactive) {
|
|
305
|
+
const answer = await askYesNo(io, "Apply adopt (write missing rulebook files + .seed/)?", false);
|
|
306
|
+
if (answer === "cancel" || answer === false) {
|
|
307
|
+
io.stdout("Adopt cancelled. Nothing written.");
|
|
308
|
+
rmSync(reportTempDir, { recursive: true, force: true });
|
|
309
|
+
return exitCodes.ok;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
io.stdout("Pass --yes to apply. Existing rulebook files are kept.");
|
|
314
|
+
rmSync(reportTempDir, { recursive: true, force: true });
|
|
315
|
+
return exitCodes.ok;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
const overwrite = new Set();
|
|
319
|
+
if (!parsed.yes && io.interactive) {
|
|
320
|
+
for (const rel of existing) {
|
|
321
|
+
const replace = await askYesNo(io, `Overwrite existing ${rel}?`, false);
|
|
322
|
+
if (replace === "cancel") {
|
|
323
|
+
io.stdout("Adopt cancelled. Nothing written.");
|
|
324
|
+
rmSync(reportTempDir, { recursive: true, force: true });
|
|
325
|
+
return exitCodes.ok;
|
|
326
|
+
}
|
|
327
|
+
if (replace)
|
|
328
|
+
overwrite.add(rel);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
const toWrite = [...missingPaths, ...overwrite];
|
|
332
|
+
try {
|
|
333
|
+
const written = {};
|
|
334
|
+
for (const rel of toWrite) {
|
|
335
|
+
written[rel] = {
|
|
336
|
+
owner: "template",
|
|
337
|
+
sha256: sha256Text(planned[rel]),
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
const profile = buildProfile({
|
|
341
|
+
preset: "clean",
|
|
342
|
+
now: new Date().toISOString(),
|
|
343
|
+
createdWith: "yosr-seed adopt",
|
|
344
|
+
});
|
|
345
|
+
const profileJson = `${JSON.stringify(profile, null, 2)}\n`;
|
|
346
|
+
written[".seed/profile.json"] = {
|
|
347
|
+
owner: "template",
|
|
348
|
+
sha256: sha256Text(profileJson),
|
|
349
|
+
};
|
|
350
|
+
const reportBody = readFileSync(reportTemp);
|
|
351
|
+
written[".seed/report.md"] = {
|
|
352
|
+
owner: "template",
|
|
353
|
+
sha256: sha256Text(reportBody),
|
|
354
|
+
};
|
|
355
|
+
const answers = {
|
|
356
|
+
lockVersion: 1,
|
|
357
|
+
engine: io.version,
|
|
358
|
+
origin: "adopted",
|
|
359
|
+
template: {
|
|
360
|
+
name: templateId,
|
|
361
|
+
version: shippedVersion,
|
|
362
|
+
source: templateSource(tdir),
|
|
363
|
+
},
|
|
364
|
+
packageManager,
|
|
365
|
+
options: {},
|
|
366
|
+
style: {
|
|
367
|
+
profileVersion: profile.profileVersion,
|
|
368
|
+
snapshot: ".seed/profile.json",
|
|
369
|
+
applied: {},
|
|
370
|
+
},
|
|
371
|
+
features: [],
|
|
372
|
+
files: written,
|
|
373
|
+
gate: {
|
|
374
|
+
status: gate.green ? "green" : "not-green",
|
|
375
|
+
location: "local",
|
|
376
|
+
fixAttempts: 0,
|
|
377
|
+
report: ".seed/report.md",
|
|
378
|
+
steps: gate.steps.map((step) => ({
|
|
379
|
+
id: step.id,
|
|
380
|
+
required: step.required,
|
|
381
|
+
result: step.result,
|
|
382
|
+
...(step.durationSec !== undefined
|
|
383
|
+
? { durationSec: step.durationSec }
|
|
384
|
+
: {}),
|
|
385
|
+
})),
|
|
386
|
+
},
|
|
387
|
+
};
|
|
388
|
+
try {
|
|
389
|
+
validateAnswers(answers, ".seed/answers.json");
|
|
390
|
+
}
|
|
391
|
+
catch (error) {
|
|
392
|
+
const message = error instanceof RenderError || error instanceof Error
|
|
393
|
+
? error.message
|
|
394
|
+
: String(error);
|
|
395
|
+
io.stderr(`Adopt record is invalid; nothing written.\n${message}`);
|
|
396
|
+
return exitCodes.failure;
|
|
397
|
+
}
|
|
398
|
+
for (const rel of toWrite) {
|
|
399
|
+
const dest = path.join(root, rel);
|
|
400
|
+
mkdirSync(path.dirname(dest), { recursive: true });
|
|
401
|
+
writeFileSync(dest, planned[rel]);
|
|
402
|
+
}
|
|
403
|
+
mkdirSync(path.join(root, ".seed"), { recursive: true });
|
|
404
|
+
writeFileSync(path.join(root, ".seed", "profile.json"), profileJson);
|
|
405
|
+
copyFileSync(reportTemp, path.join(root, ".seed", "report.md"));
|
|
406
|
+
writeFileSync(path.join(root, ".seed", "answers.json"), `${JSON.stringify(answers, null, 2)}\n`);
|
|
407
|
+
io.stdout(gate.green
|
|
408
|
+
? "Adopted. .seed/ written with origin adopted. Gate was green at preview."
|
|
409
|
+
: "Adopted. .seed/ written with origin adopted. Gate was red at preview — fix and re-run yosr-seed gate.");
|
|
410
|
+
return exitCodes.ok;
|
|
411
|
+
}
|
|
412
|
+
finally {
|
|
413
|
+
rmSync(reportTempDir, { recursive: true, force: true });
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
//# sourceMappingURL=adopt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adopt.js","sourceRoot":"","sources":["../src/adopt.ts"],"names":[],"mappings":"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"}
|
package/dist/create.js
CHANGED
|
@@ -685,6 +685,9 @@ export async function runCreate(io) {
|
|
|
685
685
|
flags.answers.workflow !== null) {
|
|
686
686
|
io.stdout(`Using workflow: ${String(flags.answers.workflow)}`);
|
|
687
687
|
}
|
|
688
|
+
if (flags.nonInteractive && flags.answers.ci === true) {
|
|
689
|
+
io.stdout("Using CI recipe: GitHub Actions sample with pinned yosr-seed gate");
|
|
690
|
+
}
|
|
688
691
|
let projectName = flags.answers.projectName;
|
|
689
692
|
if (typeof projectName !== "string" || projectName.length === 0) {
|
|
690
693
|
io.stderr("projectName has no default and no flag. Pass --project-name.");
|