@boxes-dev/dvb 0.2.4 → 0.2.5

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.
Files changed (92) hide show
  1. package/dist/bin/dvb.cjs +5224 -1568
  2. package/dist/bin/dvbd.cjs +73 -2
  3. package/dist/codex/services-schema.json +4 -0
  4. package/dist/codex/setup-env-secrets-schema.json +50 -0
  5. package/dist/codex/setup-external-schema.json +35 -0
  6. package/dist/codex/setup-extra-artifacts-schema.json +22 -0
  7. package/dist/devbox/cli.d.ts.map +1 -1
  8. package/dist/devbox/cli.js +1 -1
  9. package/dist/devbox/cli.js.map +1 -1
  10. package/dist/devbox/commands/agent.js +2 -2
  11. package/dist/devbox/commands/agent.js.map +1 -1
  12. package/dist/devbox/commands/init/args.d.ts +1 -0
  13. package/dist/devbox/commands/init/args.d.ts.map +1 -1
  14. package/dist/devbox/commands/init/args.js +4 -0
  15. package/dist/devbox/commands/init/args.js.map +1 -1
  16. package/dist/devbox/commands/init/clack.d.ts +22 -0
  17. package/dist/devbox/commands/init/clack.d.ts.map +1 -0
  18. package/dist/devbox/commands/init/clack.js +152 -0
  19. package/dist/devbox/commands/init/clack.js.map +1 -0
  20. package/dist/devbox/commands/init/codex/artifacts.d.ts.map +1 -1
  21. package/dist/devbox/commands/init/codex/artifacts.js +2 -1
  22. package/dist/devbox/commands/init/codex/artifacts.js.map +1 -1
  23. package/dist/devbox/commands/init/codex/index.d.ts +6 -6
  24. package/dist/devbox/commands/init/codex/index.d.ts.map +1 -1
  25. package/dist/devbox/commands/init/codex/index.js +118 -11
  26. package/dist/devbox/commands/init/codex/index.js.map +1 -1
  27. package/dist/devbox/commands/init/codex/local.d.ts +23 -4
  28. package/dist/devbox/commands/init/codex/local.d.ts.map +1 -1
  29. package/dist/devbox/commands/init/codex/local.js +344 -142
  30. package/dist/devbox/commands/init/codex/local.js.map +1 -1
  31. package/dist/devbox/commands/init/codex/plan.d.ts +31 -3
  32. package/dist/devbox/commands/init/codex/plan.d.ts.map +1 -1
  33. package/dist/devbox/commands/init/codex/plan.js +132 -6
  34. package/dist/devbox/commands/init/codex/plan.js.map +1 -1
  35. package/dist/devbox/commands/init/codex/prompts.d.ts +4 -2
  36. package/dist/devbox/commands/init/codex/prompts.d.ts.map +1 -1
  37. package/dist/devbox/commands/init/codex/prompts.js +4 -2
  38. package/dist/devbox/commands/init/codex/prompts.js.map +1 -1
  39. package/dist/devbox/commands/init/codex/remote.d.ts +2 -2
  40. package/dist/devbox/commands/init/codex/remote.d.ts.map +1 -1
  41. package/dist/devbox/commands/init/codex/remote.js +116 -11
  42. package/dist/devbox/commands/init/codex/remote.js.map +1 -1
  43. package/dist/devbox/commands/init/index.d.ts.map +1 -1
  44. package/dist/devbox/commands/init/index.js +1957 -658
  45. package/dist/devbox/commands/init/index.js.map +1 -1
  46. package/dist/devbox/commands/init/packaging.d.ts.map +1 -1
  47. package/dist/devbox/commands/init/packaging.js +4 -9
  48. package/dist/devbox/commands/init/packaging.js.map +1 -1
  49. package/dist/devbox/commands/init/progress.d.ts +17 -0
  50. package/dist/devbox/commands/init/progress.d.ts.map +1 -0
  51. package/dist/devbox/commands/init/progress.js +68 -0
  52. package/dist/devbox/commands/init/progress.js.map +1 -0
  53. package/dist/devbox/commands/init/registry.d.ts.map +1 -1
  54. package/dist/devbox/commands/init/registry.js +0 -6
  55. package/dist/devbox/commands/init/registry.js.map +1 -1
  56. package/dist/devbox/commands/init/remote.d.ts +13 -2
  57. package/dist/devbox/commands/init/remote.d.ts.map +1 -1
  58. package/dist/devbox/commands/init/remote.js +231 -80
  59. package/dist/devbox/commands/init/remote.js.map +1 -1
  60. package/dist/devbox/commands/init/repo.d.ts +5 -2
  61. package/dist/devbox/commands/init/repo.d.ts.map +1 -1
  62. package/dist/devbox/commands/init/repo.js +28 -12
  63. package/dist/devbox/commands/init/repo.js.map +1 -1
  64. package/dist/devbox/commands/init/state.d.ts +22 -1
  65. package/dist/devbox/commands/init/state.d.ts.map +1 -1
  66. package/dist/devbox/commands/init/state.js +25 -1
  67. package/dist/devbox/commands/init/state.js.map +1 -1
  68. package/dist/devbox/commands/mountSsh.d.ts.map +1 -1
  69. package/dist/devbox/commands/mountSsh.js +37 -4
  70. package/dist/devbox/commands/mountSsh.js.map +1 -1
  71. package/dist/devbox/commands/wezterm.d.ts.map +1 -1
  72. package/dist/devbox/commands/wezterm.js +18 -132
  73. package/dist/devbox/commands/wezterm.js.map +1 -1
  74. package/dist/devbox/completions/index.d.ts.map +1 -1
  75. package/dist/devbox/completions/index.js +1 -0
  76. package/dist/devbox/completions/index.js.map +1 -1
  77. package/dist/prompts/local-scan-env-secrets.md +51 -0
  78. package/dist/prompts/local-scan-external.md +36 -0
  79. package/dist/prompts/local-scan-extra-artifacts.md +26 -0
  80. package/dist/prompts/local-services-scan.md +66 -5
  81. package/dist/prompts/remote-apply.md +17 -9
  82. package/dist/wezterm/ensureMux.d.ts +18 -0
  83. package/dist/wezterm/ensureMux.d.ts.map +1 -0
  84. package/dist/wezterm/ensureMux.js +74 -0
  85. package/dist/wezterm/ensureMux.js.map +1 -0
  86. package/dist/wezterm/installOptions.d.ts +18 -0
  87. package/dist/wezterm/installOptions.d.ts.map +1 -0
  88. package/dist/wezterm/installOptions.js +129 -0
  89. package/dist/wezterm/installOptions.js.map +1 -0
  90. package/package.json +3 -1
  91. package/dist/codex/setup-schema.json +0 -176
  92. package/dist/prompts/local-scan.md +0 -32
@@ -1,74 +1,153 @@
1
1
  import { spawn } from "node:child_process";
2
- import readline from "node:readline/promises";
3
- import { colors } from "../../../ui/colors.js";
4
- import { loadLocalScanPrompt, loadLocalServicesScanPrompt, } from "./prompts.js";
2
+ import { createWriteStream } from "node:fs";
3
+ import fs from "node:fs/promises";
4
+ import path from "node:path";
5
+ import { cancel, isCancel, log } from "@clack/prompts";
6
+ import { loadLocalEnvSecretsScanPrompt, loadLocalExternalScanPrompt, loadLocalExtraArtifactsScanPrompt, loadLocalServicesScanPrompt, } from "./prompts.js";
7
+ import { multiselectWithHelp } from "../clack.js";
5
8
  const stripAnsi = (value) => value.replace(/\u001b\[[0-9;]*[A-Za-z]/g, "");
6
9
  const extractBoldText = (line) => {
7
10
  const match = line.match(/\*\*([^*]+)\*\*/);
8
11
  const text = match?.[1];
9
12
  return text ? text.trim() : null;
10
13
  };
11
- const runCodexExec = async (cwd, args, onProgress) => new Promise((resolve, reject) => {
12
- const child = spawn("codex", ["exec", ...args], {
13
- cwd,
14
- stdio: ["ignore", "pipe", "pipe"],
15
- });
16
- let stdout = "";
17
- let stderr = "";
18
- let stdoutBuffer = "";
19
- let stderrBuffer = "";
20
- let lastProgress = null;
21
- const handleLine = (line) => {
22
- if (!onProgress)
23
- return;
24
- const clean = stripAnsi(line);
25
- const bold = extractBoldText(clean);
26
- if (!bold || bold === lastProgress)
27
- return;
28
- lastProgress = bold;
29
- onProgress(bold);
30
- };
31
- const consume = (chunk, buffer, update) => {
32
- let next = buffer + chunk.toString();
33
- let idx = next.indexOf("\n");
34
- while (idx !== -1) {
35
- const line = next.slice(0, idx);
36
- handleLine(line);
37
- next = next.slice(idx + 1);
38
- idx = next.indexOf("\n");
14
+ const runCodexExec = async (cwd, args, onProgress, logOptions = {}) => {
15
+ const { stdoutLogPath, stderrLogPath } = logOptions;
16
+ let stdoutStream = null;
17
+ let stderrStream = null;
18
+ try {
19
+ if (stdoutLogPath) {
20
+ await fs.mkdir(path.dirname(stdoutLogPath), { recursive: true });
21
+ stdoutStream = createWriteStream(stdoutLogPath, { flags: "a" });
22
+ }
23
+ if (stderrLogPath) {
24
+ await fs.mkdir(path.dirname(stderrLogPath), { recursive: true });
25
+ stderrStream = createWriteStream(stderrLogPath, { flags: "a" });
39
26
  }
40
- update(next);
27
+ }
28
+ catch {
29
+ stdoutStream = null;
30
+ stderrStream = null;
31
+ }
32
+ const closeStream = async (stream) => {
33
+ if (!stream)
34
+ return;
35
+ await new Promise((resolve) => stream.end(() => resolve()));
41
36
  };
42
- child.stdout?.on("data", (chunk) => {
43
- stdout += chunk.toString();
44
- consume(chunk, stdoutBuffer, (next) => {
45
- stdoutBuffer = next;
46
- });
47
- });
48
- child.stderr?.on("data", (chunk) => {
49
- stderr += chunk.toString();
50
- consume(chunk, stderrBuffer, (next) => {
51
- stderrBuffer = next;
37
+ try {
38
+ await new Promise((resolve, reject) => {
39
+ const child = spawn("codex", ["-a", "never", "exec", ...args], {
40
+ cwd,
41
+ stdio: ["ignore", "pipe", "pipe"],
42
+ });
43
+ let stdout = "";
44
+ let stderr = "";
45
+ let stdoutBuffer = "";
46
+ let stderrBuffer = "";
47
+ let lastProgress = null;
48
+ const handleLine = (line) => {
49
+ if (!onProgress)
50
+ return;
51
+ const clean = stripAnsi(line);
52
+ const bold = extractBoldText(clean);
53
+ if (!bold || bold === lastProgress)
54
+ return;
55
+ lastProgress = bold;
56
+ onProgress(bold);
57
+ };
58
+ const consume = (chunk, buffer, update) => {
59
+ let next = buffer + chunk.toString();
60
+ let idx = next.indexOf("\n");
61
+ while (idx !== -1) {
62
+ const line = next.slice(0, idx);
63
+ handleLine(line);
64
+ next = next.slice(idx + 1);
65
+ idx = next.indexOf("\n");
66
+ }
67
+ update(next);
68
+ };
69
+ child.stdout?.on("data", (chunk) => {
70
+ stdout += chunk.toString();
71
+ stdoutStream?.write(chunk);
72
+ consume(chunk, stdoutBuffer, (next) => {
73
+ stdoutBuffer = next;
74
+ });
75
+ });
76
+ child.stderr?.on("data", (chunk) => {
77
+ stderr += chunk.toString();
78
+ stderrStream?.write(chunk);
79
+ consume(chunk, stderrBuffer, (next) => {
80
+ stderrBuffer = next;
81
+ });
82
+ });
83
+ child.on("error", reject);
84
+ child.on("close", (code) => {
85
+ if (stdoutBuffer)
86
+ handleLine(stdoutBuffer);
87
+ if (stderrBuffer)
88
+ handleLine(stderrBuffer);
89
+ if (code === 0) {
90
+ resolve();
91
+ return;
92
+ }
93
+ const detail = stderr.trim() || stdout.trim();
94
+ const suffix = detail ? `: ${detail}` : "";
95
+ reject(new Error(`codex exec failed (exit ${code ?? "unknown"})${suffix}`));
96
+ });
52
97
  });
53
- });
54
- child.on("error", reject);
55
- child.on("close", (code) => {
56
- if (stdoutBuffer)
57
- handleLine(stdoutBuffer);
58
- if (stderrBuffer)
59
- handleLine(stderrBuffer);
60
- if (code === 0) {
61
- resolve();
62
- return;
63
- }
64
- const detail = stderr.trim() || stdout.trim();
65
- const suffix = detail ? `: ${detail}` : "";
66
- reject(new Error(`codex exec failed (exit ${code ?? "unknown"})${suffix}`));
67
- });
68
- });
69
- const runLocalSetupScan = async ({ cwd, schemaPath, outputPath, homeDir, onProgress, }) => {
70
- const localScanPrompt = await loadLocalScanPrompt();
98
+ }
99
+ finally {
100
+ await Promise.all([closeStream(stdoutStream), closeStream(stderrStream)]);
101
+ }
102
+ };
103
+ const runLocalSetupEnvSecretsScan = async ({ cwd, schemaPath, outputPath, onProgress, }) => {
104
+ const localScanPrompt = await loadLocalEnvSecretsScanPrompt();
105
+ const stamp = new Date().toISOString().replace(/[:.]/g, "-");
106
+ const logDir = path.join(cwd, ".devbox", "logs");
107
+ const stdoutLogPath = path.join(logDir, `codex-local-setup-env-secrets-scan-${stamp}.jsonl`);
108
+ const stderrLogPath = path.join(logDir, `codex-local-setup-env-secrets-scan-${stamp}.stderr.log`);
109
+ const metaLogPath = path.join(logDir, `codex-local-setup-env-secrets-scan-${stamp}.meta.json`);
110
+ await fs.mkdir(logDir, { recursive: true });
111
+ await fs.mkdir(path.dirname(outputPath), { recursive: true });
112
+ await fs.writeFile(metaLogPath, JSON.stringify({
113
+ kind: "local-setup-env-secrets-scan",
114
+ createdAt: new Date().toISOString(),
115
+ cwd,
116
+ schemaPath,
117
+ outputPath,
118
+ prompt: localScanPrompt,
119
+ }, null, 2), "utf8");
71
120
  const args = [
121
+ "--json",
122
+ "--sandbox",
123
+ "workspace-write",
124
+ "--output-schema",
125
+ schemaPath,
126
+ "-o",
127
+ outputPath,
128
+ localScanPrompt,
129
+ ];
130
+ await runCodexExec(cwd, args, onProgress, { stdoutLogPath, stderrLogPath });
131
+ };
132
+ const runLocalSetupExternalScan = async ({ cwd, schemaPath, outputPath, homeDir, onProgress, }) => {
133
+ const localScanPrompt = await loadLocalExternalScanPrompt();
134
+ const stamp = new Date().toISOString().replace(/[:.]/g, "-");
135
+ const logDir = path.join(cwd, ".devbox", "logs");
136
+ const stdoutLogPath = path.join(logDir, `codex-local-setup-external-scan-${stamp}.jsonl`);
137
+ const stderrLogPath = path.join(logDir, `codex-local-setup-external-scan-${stamp}.stderr.log`);
138
+ const metaLogPath = path.join(logDir, `codex-local-setup-external-scan-${stamp}.meta.json`);
139
+ await fs.mkdir(logDir, { recursive: true });
140
+ await fs.mkdir(path.dirname(outputPath), { recursive: true });
141
+ await fs.writeFile(metaLogPath, JSON.stringify({
142
+ kind: "local-setup-external-scan",
143
+ createdAt: new Date().toISOString(),
144
+ cwd,
145
+ schemaPath,
146
+ outputPath,
147
+ prompt: localScanPrompt,
148
+ }, null, 2), "utf8");
149
+ const args = [
150
+ "--json",
72
151
  "--sandbox",
73
152
  "workspace-write",
74
153
  ...(homeDir ? ["--add-dir", homeDir] : []),
@@ -78,11 +157,55 @@ const runLocalSetupScan = async ({ cwd, schemaPath, outputPath, homeDir, onProgr
78
157
  outputPath,
79
158
  localScanPrompt,
80
159
  ];
81
- await runCodexExec(cwd, args, onProgress);
160
+ await runCodexExec(cwd, args, onProgress, { stdoutLogPath, stderrLogPath });
161
+ };
162
+ const runLocalSetupExtraArtifactsScan = async ({ cwd, schemaPath, outputPath, onProgress, }) => {
163
+ const localScanPrompt = await loadLocalExtraArtifactsScanPrompt();
164
+ const stamp = new Date().toISOString().replace(/[:.]/g, "-");
165
+ const logDir = path.join(cwd, ".devbox", "logs");
166
+ const stdoutLogPath = path.join(logDir, `codex-local-setup-extra-artifacts-scan-${stamp}.jsonl`);
167
+ const stderrLogPath = path.join(logDir, `codex-local-setup-extra-artifacts-scan-${stamp}.stderr.log`);
168
+ const metaLogPath = path.join(logDir, `codex-local-setup-extra-artifacts-scan-${stamp}.meta.json`);
169
+ await fs.mkdir(logDir, { recursive: true });
170
+ await fs.mkdir(path.dirname(outputPath), { recursive: true });
171
+ await fs.writeFile(metaLogPath, JSON.stringify({
172
+ kind: "local-setup-extra-artifacts-scan",
173
+ createdAt: new Date().toISOString(),
174
+ cwd,
175
+ schemaPath,
176
+ outputPath,
177
+ prompt: localScanPrompt,
178
+ }, null, 2), "utf8");
179
+ const args = [
180
+ "--json",
181
+ "--sandbox",
182
+ "workspace-write",
183
+ "--output-schema",
184
+ schemaPath,
185
+ "-o",
186
+ outputPath,
187
+ localScanPrompt,
188
+ ];
189
+ await runCodexExec(cwd, args, onProgress, { stdoutLogPath, stderrLogPath });
82
190
  };
83
191
  const runLocalServicesScan = async ({ cwd, schemaPath, outputPath, homeDir, onProgress, }) => {
84
192
  const servicesScanPrompt = await loadLocalServicesScanPrompt();
193
+ const stamp = new Date().toISOString().replace(/[:.]/g, "-");
194
+ const logDir = path.join(cwd, ".devbox", "logs");
195
+ const stdoutLogPath = path.join(logDir, `codex-local-services-scan-${stamp}.jsonl`);
196
+ const stderrLogPath = path.join(logDir, `codex-local-services-scan-${stamp}.stderr.log`);
197
+ const metaLogPath = path.join(logDir, `codex-local-services-scan-${stamp}.meta.json`);
198
+ await fs.mkdir(logDir, { recursive: true });
199
+ await fs.writeFile(metaLogPath, JSON.stringify({
200
+ kind: "local-services-scan",
201
+ createdAt: new Date().toISOString(),
202
+ cwd,
203
+ schemaPath,
204
+ outputPath,
205
+ prompt: servicesScanPrompt,
206
+ }, null, 2), "utf8");
85
207
  const args = [
208
+ "--json",
86
209
  "--sandbox",
87
210
  "workspace-write",
88
211
  ...(homeDir ? ["--add-dir", homeDir] : []),
@@ -92,98 +215,177 @@ const runLocalServicesScan = async ({ cwd, schemaPath, outputPath, homeDir, onPr
92
215
  outputPath,
93
216
  servicesScanPrompt,
94
217
  ];
95
- await runCodexExec(cwd, args, onProgress);
218
+ await runCodexExec(cwd, args, onProgress, { stdoutLogPath, stderrLogPath });
219
+ };
220
+ const toPosixPath = (value) => value.split(path.sep).join(path.posix.sep);
221
+ const toRepoRelativePath = (repoRoot, filePath) => {
222
+ const resolved = path.isAbsolute(filePath)
223
+ ? filePath
224
+ : path.resolve(repoRoot, filePath);
225
+ const relative = path.relative(repoRoot, resolved) || filePath;
226
+ return toPosixPath(relative);
96
227
  };
97
- const promptForSectionApproval = async (title, items, renderTitle, renderDetails, promptLabel) => {
98
- if (!process.stdin.isTTY) {
99
- throw new Error("Interactive terminal required to approve setup items.");
228
+ const countSecretVars = (vars) => vars.reduce((count, entry) => count + (entry.isSecret ? 1 : 0), 0);
229
+ const buildEnvFileHint = (entry) => {
230
+ const usageText = entry.usage?.trim() || "none";
231
+ const secrets = countSecretVars(entry.vars);
232
+ const varsText = `${entry.vars.length} var${entry.vars.length === 1 ? "" : "s"}`;
233
+ const secretsText = `${secrets} secret${secrets === 1 ? "" : "s"}`;
234
+ return `${varsText}\n${secretsText}\n${usageText}`;
235
+ };
236
+ const buildExternalDependencyLabel = (entry) => entry.version ? `${entry.name}@${entry.version}` : entry.name;
237
+ const promptForPlanApproval = async ({ plan, repoRoot, initialPlan, }) => {
238
+ log.step("Review setup findings");
239
+ const envFileOptions = plan.envFiles.map((entry) => ({
240
+ value: entry.path,
241
+ label: toRepoRelativePath(repoRoot, entry.path),
242
+ hint: buildEnvFileHint(entry),
243
+ }));
244
+ const secretFileOptions = plan.secretFiles.map((entry) => ({
245
+ value: entry.path,
246
+ label: toRepoRelativePath(repoRoot, entry.path),
247
+ hint: entry.description,
248
+ }));
249
+ const extraArtifactOptions = plan.extraArtifacts.map((entry) => ({
250
+ value: entry.path,
251
+ label: toRepoRelativePath(repoRoot, entry.path),
252
+ hint: entry.description,
253
+ }));
254
+ const externalDependencyOptions = plan.externalDependencies.map((entry) => ({
255
+ value: entry.name,
256
+ label: buildExternalDependencyLabel(entry),
257
+ hint: entry.evidence ? `Evidence: ${entry.evidence}` : "Evidence: none",
258
+ }));
259
+ const externalConfigOptions = plan.externalConfigs.map((entry) => ({
260
+ value: entry.path,
261
+ label: toRepoRelativePath(repoRoot, entry.path),
262
+ hint: entry.description,
263
+ }));
264
+ const envFileSelection = plan.envFiles.length === 0
265
+ ? []
266
+ : await multiselectWithHelp({
267
+ message: "Select .env files to copy to the devbox",
268
+ options: envFileOptions,
269
+ initialValues: initialPlan?.envFiles.map((entry) => entry.path) ??
270
+ plan.envFiles.map((entry) => entry.path),
271
+ required: false,
272
+ });
273
+ if (isCancel(envFileSelection)) {
274
+ cancel("Init canceled.");
275
+ throw new Error("Init canceled.");
100
276
  }
101
- if (items.length === 0)
102
- return items;
103
- console.log("");
104
- console.log(title);
105
- const rl = readline.createInterface({
106
- input: process.stdin,
107
- output: process.stdout,
108
- });
109
- const approved = [];
110
- for (const item of items) {
111
- const details = renderDetails(item);
112
- console.log(`- ${renderTitle(item)}`);
113
- for (const line of details) {
114
- if (line.trim())
115
- console.log(` ${line}`);
116
- }
117
- const answer = await rl.question(promptLabel ? `${promptLabel} (y/N): ` : " Approve? (y/N): ");
118
- if (answer.trim().toLowerCase() === "y") {
119
- approved.push(item);
120
- }
277
+ const secretFileSelection = plan.secretFiles.length === 0
278
+ ? []
279
+ : await multiselectWithHelp({
280
+ message: "Select secret/config files to copy to the devbox",
281
+ options: secretFileOptions,
282
+ initialValues: initialPlan?.secretFiles.map((entry) => entry.path) ??
283
+ plan.secretFiles.map((entry) => entry.path),
284
+ required: false,
285
+ });
286
+ if (isCancel(secretFileSelection)) {
287
+ cancel("Init canceled.");
288
+ throw new Error("Init canceled.");
121
289
  }
122
- rl.close();
123
- return approved;
124
- };
125
- const formatEnvVarLine = (entry) => {
126
- const valueText = entry.isSecret
127
- ? "********"
128
- : entry.value ?? "";
129
- if (entry.commented) {
130
- const commentedSuffix = " (commented out)";
131
- if (!entry.hasValue) {
132
- return colors.gray(` • ${entry.name}${commentedSuffix}`);
133
- }
134
- const content = ` • ${entry.name}${valueText ? `=${valueText}` : ""}${commentedSuffix}`;
135
- return colors.gray(content);
290
+ const extraArtifactSelection = plan.extraArtifacts.length === 0
291
+ ? []
292
+ : await multiselectWithHelp({
293
+ message: "Select other artifacts to copy to the devbox",
294
+ options: extraArtifactOptions,
295
+ initialValues: initialPlan?.extraArtifacts.map((entry) => entry.path) ??
296
+ plan.extraArtifacts.map((entry) => entry.path),
297
+ required: false,
298
+ });
299
+ if (isCancel(extraArtifactSelection)) {
300
+ cancel("Init canceled.");
301
+ throw new Error("Init canceled.");
136
302
  }
137
- if (entry.isSecret) {
138
- return ` • ${entry.name}: ${colors.cyan(valueText)}`;
303
+ const externalDependencySelection = plan.externalDependencies.length === 0
304
+ ? []
305
+ : await multiselectWithHelp({
306
+ message: "Select external dependencies to install on the devbox",
307
+ options: externalDependencyOptions,
308
+ initialValues: initialPlan?.externalDependencies.map((entry) => entry.name) ??
309
+ plan.externalDependencies.map((entry) => entry.name),
310
+ required: false,
311
+ });
312
+ if (isCancel(externalDependencySelection)) {
313
+ cancel("Init canceled.");
314
+ throw new Error("Init canceled.");
139
315
  }
140
- return ` • ${entry.name}=${colors.cyan(valueText)}`;
141
- };
142
- const promptForPlanApproval = async (plan) => {
143
- console.log("Local environment analysis complete. Choose what to migrate to the devbox.");
144
- const envFiles = await promptForSectionApproval(colors.green("ENV FILES"), plan.envFiles, (item) => colors.boldWhite(item.path), (item) => {
145
- const lines = [];
146
- if (item.vars.length === 0) {
147
- lines.push(colors.gray(" • (no env vars found)"));
148
- }
149
- else {
150
- for (const entry of item.vars) {
151
- lines.push(formatEnvVarLine(entry));
152
- }
153
- }
154
- const usageText = item.usage ? item.usage : "none";
155
- lines.push(` How it's used: ${colors.muted(usageText)}`);
156
- return lines;
157
- }, colors.boldWhite(" Copy this file?"));
158
- const secretFiles = await promptForSectionApproval("Secret/config files", plan.secretFiles, (item) => `${item.name} (${item.path})`, (item) => [item.description]);
159
- const extraArtifacts = await promptForSectionApproval("Other untracked artifacts", plan.extraArtifacts, (item) => `${item.name} (${item.path})`, (item) => [item.description]);
160
- const externalDependencies = await promptForSectionApproval("External dependencies", plan.externalDependencies, (item) => item.name, (item) => {
161
- const version = item.version ? `Version: ${item.version}` : "Version: unknown";
162
- const evidence = item.evidence ? `Evidence: ${item.evidence}` : "Evidence: none";
163
- return [version, evidence];
164
- });
165
- const externalConfigs = await promptForSectionApproval("External config/secret files", plan.externalConfigs, (item) => `${item.name} (${item.path})`, (item) => [item.description]);
316
+ const externalConfigSelection = plan.externalConfigs.length === 0
317
+ ? []
318
+ : await multiselectWithHelp({
319
+ message: "Select external config/secret files to copy to the devbox",
320
+ options: externalConfigOptions,
321
+ initialValues: initialPlan?.externalConfigs.map((entry) => entry.path) ??
322
+ plan.externalConfigs.map((entry) => entry.path),
323
+ required: false,
324
+ });
325
+ if (isCancel(externalConfigSelection)) {
326
+ cancel("Init canceled.");
327
+ throw new Error("Init canceled.");
328
+ }
329
+ const envFileSet = new Set(envFileSelection);
330
+ const secretFileSet = new Set(secretFileSelection);
331
+ const extraArtifactSet = new Set(extraArtifactSelection);
332
+ const externalDependencySet = new Set(externalDependencySelection);
333
+ const externalConfigSet = new Set(externalConfigSelection);
166
334
  return {
167
335
  schemaVersion: plan.schemaVersion,
168
- envFiles,
169
- secretFiles,
170
- extraArtifacts,
171
- externalDependencies,
172
- externalConfigs,
336
+ envFiles: plan.envFiles.filter((entry) => envFileSet.has(entry.path)),
337
+ secretFiles: plan.secretFiles.filter((entry) => secretFileSet.has(entry.path)),
338
+ extraArtifacts: plan.extraArtifacts.filter((entry) => extraArtifactSet.has(entry.path)),
339
+ externalDependencies: plan.externalDependencies.filter((entry) => externalDependencySet.has(entry.name)),
340
+ externalConfigs: plan.externalConfigs.filter((entry) => externalConfigSet.has(entry.path)),
173
341
  };
174
342
  };
175
- const promptForServicesApproval = async (plan) => {
176
- console.log("Local run analysis complete. Choose what to use for dev setup validation.");
177
- const appEntrypoints = await promptForSectionApproval(colors.green("APP ENTRYPOINTS"), plan.appEntrypoints, (item) => colors.boldWhite(item.command), (item) => [item.description], colors.boldWhite(" Use this entrypoint to validate setup?"));
178
- const backgroundServices = await promptForSectionApproval(colors.green("BACKGROUND SERVICES"), plan.backgroundServices, (item) => colors.boldWhite(item.name), (item) => {
179
- const portText = item.httpPort === null ? "HTTP port: none" : `HTTP port: ${item.httpPort}`;
180
- return [item.command, portText];
181
- }, colors.boldWhite(" Keep this service running?"));
343
+ const promptForServicesApproval = async ({ plan, initialPlan, }) => {
344
+ log.step("Review run services findings");
345
+ const appEntrypointOptions = plan.appEntrypoints.map((entry) => ({
346
+ value: entry.command,
347
+ label: entry.command,
348
+ hint: entry.description?.trim() || "no description",
349
+ }));
350
+ const backgroundServiceOptions = plan.backgroundServices.map((entry) => ({
351
+ value: entry.name,
352
+ label: entry.name,
353
+ hint: `${entry.command}; HTTP port: ${entry.httpPort ?? "none"}`,
354
+ }));
355
+ const appEntrypointSelection = plan.appEntrypoints.length === 0
356
+ ? []
357
+ : await multiselectWithHelp({
358
+ message: "Select app entrypoints to validate setup",
359
+ options: appEntrypointOptions,
360
+ initialValues: initialPlan?.appEntrypoints.map((entry) => entry.command) ??
361
+ plan.appEntrypoints.map((entry) => entry.command),
362
+ required: false,
363
+ });
364
+ if (isCancel(appEntrypointSelection)) {
365
+ cancel("Init canceled.");
366
+ throw new Error("Init canceled.");
367
+ }
368
+ const backgroundServiceSelection = plan.backgroundServices.length === 0
369
+ ? []
370
+ : await multiselectWithHelp({
371
+ message: "Select background services to run in the devbox",
372
+ options: backgroundServiceOptions,
373
+ initialValues: initialPlan?.backgroundServices.map((entry) => entry.name) ??
374
+ plan.backgroundServices.map((entry) => entry.name),
375
+ required: false,
376
+ });
377
+ if (isCancel(backgroundServiceSelection)) {
378
+ cancel("Init canceled.");
379
+ throw new Error("Init canceled.");
380
+ }
381
+ const appEntrypointSet = new Set(appEntrypointSelection);
382
+ const backgroundServiceSet = new Set(backgroundServiceSelection);
182
383
  return {
183
384
  schemaVersion: plan.schemaVersion,
184
- appEntrypoints,
185
- backgroundServices,
385
+ scanFullyCompleted: plan.scanFullyCompleted,
386
+ appEntrypoints: plan.appEntrypoints.filter((entry) => appEntrypointSet.has(entry.command)),
387
+ backgroundServices: plan.backgroundServices.filter((entry) => backgroundServiceSet.has(entry.name)),
186
388
  };
187
389
  };
188
- export { promptForPlanApproval, promptForServicesApproval, runLocalServicesScan, runLocalSetupScan, };
390
+ export { promptForPlanApproval, promptForServicesApproval, runLocalServicesScan, runLocalSetupEnvSecretsScan, runLocalSetupExternalScan, runLocalSetupExtraArtifactsScan, };
189
391
  //# sourceMappingURL=local.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../../../src/devbox/commands/init/codex/local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../../../src/devbox/commands/init/codex/local.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ type ExternalConfigEntry = {
32
32
  };
33
33
  type ServicesPlan = {
34
34
  schemaVersion: number;
35
+ scanFullyCompleted: boolean;
35
36
  appEntrypoints: Array<{
36
37
  command: string;
37
38
  description: string;
@@ -50,12 +51,39 @@ type SetupPlan = {
50
51
  externalDependencies: ExternalDependencyEntry[];
51
52
  externalConfigs: ExternalConfigEntry[];
52
53
  };
53
- declare const writeSetupSchema: (dir: string) => Promise<string>;
54
+ type SetupEnvSecretsPlan = {
55
+ schemaVersion: number;
56
+ scanFullyCompleted: boolean;
57
+ envFiles: EnvFileEntry[];
58
+ secretFiles: SecretFileEntry[];
59
+ };
60
+ type SetupExternalPlan = {
61
+ schemaVersion: number;
62
+ scanFullyCompleted: boolean;
63
+ externalDependencies: ExternalDependencyEntry[];
64
+ externalConfigs: ExternalConfigEntry[];
65
+ };
66
+ type SetupExtraArtifactsPlan = {
67
+ schemaVersion: number;
68
+ scanFullyCompleted: boolean;
69
+ extraArtifacts: ExtraArtifactEntry[];
70
+ };
71
+ declare const writeSetupEnvSecretsSchema: (dir: string) => Promise<string>;
72
+ declare const writeSetupExternalSchema: (dir: string) => Promise<string>;
73
+ declare const writeSetupExtraArtifactsSchema: (dir: string) => Promise<string>;
54
74
  declare const writeServicesSchema: (dir: string) => Promise<string>;
55
75
  declare const readSetupPlan: (setupPath: string) => Promise<SetupPlan>;
76
+ declare const readSetupEnvSecretsPlan: (scanPath: string) => Promise<SetupEnvSecretsPlan>;
77
+ declare const readSetupExternalPlan: (scanPath: string) => Promise<SetupExternalPlan>;
78
+ declare const readSetupExtraArtifactsPlan: (scanPath: string) => Promise<SetupExtraArtifactsPlan>;
56
79
  declare const readServicesPlan: (servicesPath: string) => Promise<ServicesPlan>;
57
80
  declare const writeSetupPlan: (setupPath: string, plan: SetupPlan) => Promise<void>;
81
+ declare const mergeSetupScans: ({ envSecrets, external, extraArtifacts, }: {
82
+ envSecrets: SetupEnvSecretsPlan;
83
+ external: SetupExternalPlan;
84
+ extraArtifacts: SetupExtraArtifactsPlan;
85
+ }) => SetupPlan;
58
86
  declare const writeServicesPlan: (servicesPath: string, plan: ServicesPlan) => Promise<void>;
59
- export { readSetupPlan, readServicesPlan, writeSetupPlan, writeSetupSchema, writeServicesPlan, writeServicesSchema, };
60
- export type { EnvFileEntry, ExtraArtifactEntry, ExternalConfigEntry, ExternalDependencyEntry, ServicesPlan, SecretFileEntry, SetupPlan, };
87
+ export { readSetupPlan, readSetupEnvSecretsPlan, readSetupExternalPlan, readSetupExtraArtifactsPlan, readServicesPlan, writeSetupPlan, mergeSetupScans, writeSetupEnvSecretsSchema, writeSetupExternalSchema, writeSetupExtraArtifactsSchema, writeServicesPlan, writeServicesSchema, };
88
+ export type { EnvFileEntry, ExtraArtifactEntry, ExternalConfigEntry, ExternalDependencyEntry, ServicesPlan, SecretFileEntry, SetupEnvSecretsPlan, SetupExternalPlan, SetupExtraArtifactsPlan, SetupPlan, };
61
89
  //# sourceMappingURL=plan.d.ts.map