@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
@@ -0,0 +1,129 @@
1
+ import { spawn } from "node:child_process";
2
+ import fs from "node:fs/promises";
3
+ const WEZTERM_DARWIN_BIN_PATH = "/Applications/WezTerm.app/Contents/MacOS/wezterm";
4
+ const WEZTERM_GITHUB_TIMEOUT_MS = 5_000;
5
+ const runCommand = async (cmd, args) => new Promise((resolve) => {
6
+ const child = spawn(cmd, args, { stdio: ["ignore", "pipe", "pipe"] });
7
+ let stdout = "";
8
+ let stderr = "";
9
+ const finish = (result) => {
10
+ resolve(result);
11
+ };
12
+ child.stdout?.on("data", (chunk) => {
13
+ stdout += chunk.toString();
14
+ });
15
+ child.stderr?.on("data", (chunk) => {
16
+ stderr += chunk.toString();
17
+ });
18
+ child.on("error", (error) => {
19
+ finish({
20
+ ok: false,
21
+ stdout: stdout.trim(),
22
+ stderr: error instanceof Error ? error.message : String(error),
23
+ });
24
+ });
25
+ child.on("close", (code) => {
26
+ finish({
27
+ ok: code === 0,
28
+ stdout: stdout.trim(),
29
+ stderr: stderr.trim(),
30
+ });
31
+ });
32
+ });
33
+ const parseWeztermVersion = (output) => {
34
+ const match = /wezterm\s+([0-9][^\s]+)/i.exec(output.trim());
35
+ return match ? match[1] : null;
36
+ };
37
+ const resolveLocalWeztermVersion = async () => {
38
+ const candidates = [];
39
+ if (process.env.WEZTERM_EXECUTABLE) {
40
+ candidates.push(process.env.WEZTERM_EXECUTABLE);
41
+ }
42
+ candidates.push("wezterm");
43
+ if (process.platform === "darwin") {
44
+ candidates.push(WEZTERM_DARWIN_BIN_PATH);
45
+ }
46
+ for (const command of candidates) {
47
+ if (!command)
48
+ continue;
49
+ if (command.includes("/")) {
50
+ try {
51
+ await fs.access(command);
52
+ }
53
+ catch {
54
+ continue;
55
+ }
56
+ }
57
+ const result = await runCommand(command, ["--version"]);
58
+ if (!result.ok)
59
+ continue;
60
+ const parsed = parseWeztermVersion(result.stdout) ?? parseWeztermVersion(result.stderr);
61
+ if (parsed)
62
+ return parsed;
63
+ }
64
+ return null;
65
+ };
66
+ const resolveWeztermAssetUrl = async (version) => {
67
+ const controller = new AbortController();
68
+ const timeout = setTimeout(() => controller.abort(), WEZTERM_GITHUB_TIMEOUT_MS);
69
+ let response;
70
+ try {
71
+ response = await fetch(`https://api.github.com/repos/wez/wezterm/releases/tags/${encodeURIComponent(version)}`, {
72
+ headers: {
73
+ "User-Agent": "devbox-cli",
74
+ Accept: "application/vnd.github+json",
75
+ },
76
+ signal: controller.signal,
77
+ });
78
+ }
79
+ finally {
80
+ clearTimeout(timeout);
81
+ }
82
+ if (!response.ok) {
83
+ throw new Error(`Failed to resolve WezTerm release ${version} (HTTP ${response.status}).`);
84
+ }
85
+ const payload = (await response.json());
86
+ const assets = Array.isArray(payload.assets) ? payload.assets : [];
87
+ const isNonLinux = (name) => /(windows|win32|msvc|mingw|macos|darwin|osx|apple|dmg)\b/i.test(name);
88
+ const linuxAssets = assets.filter((asset) => asset.name && !isNonLinux(asset.name));
89
+ const isSourceArchive = (name) => /(^|[-_.])src([-.]|$)/i.test(name);
90
+ const appImageCandidates = linuxAssets.filter((asset) => asset.name && /\.AppImage$/i.test(asset.name));
91
+ const archiveCandidates = linuxAssets.filter((asset) => asset.name &&
92
+ !isSourceArchive(asset.name) &&
93
+ (/\.tar\.xz$/i.test(asset.name) ||
94
+ /\.tar\.gz$/i.test(asset.name) ||
95
+ /\.tgz$/i.test(asset.name) ||
96
+ /\.zip$/i.test(asset.name)));
97
+ const candidates = appImageCandidates.length > 0 ? appImageCandidates : archiveCandidates;
98
+ const selected = candidates.find((asset) => asset.browser_download_url);
99
+ if (!selected?.browser_download_url || !selected.name) {
100
+ throw new Error(`Unable to find a Linux WezTerm asset for version ${version}.`);
101
+ }
102
+ return { url: selected.browser_download_url, name: selected.name };
103
+ };
104
+ const resolveWeztermInstallOptions = async ({ version, assetUrl, }) => {
105
+ let resolvedVersion = version;
106
+ if (!resolvedVersion) {
107
+ const localVersion = await resolveLocalWeztermVersion();
108
+ if (localVersion) {
109
+ resolvedVersion = localVersion;
110
+ }
111
+ }
112
+ let resolvedAssetUrl = assetUrl;
113
+ let assetName;
114
+ if (!resolvedAssetUrl && resolvedVersion) {
115
+ const resolved = await resolveWeztermAssetUrl(resolvedVersion);
116
+ resolvedAssetUrl = resolved.url;
117
+ assetName = resolved.name;
118
+ }
119
+ const result = {};
120
+ if (resolvedAssetUrl !== undefined)
121
+ result.assetUrl = resolvedAssetUrl;
122
+ if (assetName !== undefined)
123
+ result.assetName = assetName;
124
+ if (resolvedVersion !== undefined)
125
+ result.version = resolvedVersion;
126
+ return result;
127
+ };
128
+ export { parseWeztermVersion, resolveLocalWeztermVersion, resolveWeztermAssetUrl, resolveWeztermInstallOptions, };
129
+ //# sourceMappingURL=installOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installOptions.js","sourceRoot":"","sources":["../../src/wezterm/installOptions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boxes-dev/dvb",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "type": "module",
5
5
  "license": "UNLICENSED",
6
6
  "publishConfig": {
@@ -26,6 +26,8 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "@bomb.sh/tab": "^0.0.12",
29
+ "@clack/core": "^1.0.0",
30
+ "@clack/prompts": "^1.0.0",
29
31
  "convex": "^1.29.3",
30
32
  "ora": "^8.2.0",
31
33
  "ws": "^8.18.3"
@@ -1,176 +0,0 @@
1
- {
2
- "type": "object",
3
- "additionalProperties": false,
4
- "required": [
5
- "schemaVersion",
6
- "envFiles",
7
- "secretFiles",
8
- "extraArtifacts",
9
- "externalDependencies",
10
- "externalConfigs"
11
- ],
12
- "properties": {
13
- "schemaVersion": {
14
- "type": "number"
15
- },
16
- "envFiles": {
17
- "type": "array",
18
- "items": {
19
- "type": "object",
20
- "additionalProperties": false,
21
- "required": [
22
- "name",
23
- "path",
24
- "vars",
25
- "usage"
26
- ],
27
- "properties": {
28
- "name": {
29
- "type": "string"
30
- },
31
- "path": {
32
- "type": "string"
33
- },
34
- "vars": {
35
- "type": "array",
36
- "items": {
37
- "type": "object",
38
- "additionalProperties": false,
39
- "required": [
40
- "name",
41
- "value",
42
- "isSecret",
43
- "commented",
44
- "hasValue"
45
- ],
46
- "properties": {
47
- "name": {
48
- "type": "string"
49
- },
50
- "value": {
51
- "type": [
52
- "string",
53
- "null"
54
- ]
55
- },
56
- "isSecret": {
57
- "type": "boolean"
58
- },
59
- "commented": {
60
- "type": "boolean"
61
- },
62
- "hasValue": {
63
- "type": "boolean"
64
- }
65
- }
66
- }
67
- },
68
- "usage": {
69
- "type": [
70
- "string",
71
- "null"
72
- ]
73
- }
74
- }
75
- }
76
- },
77
- "secretFiles": {
78
- "type": "array",
79
- "items": {
80
- "type": "object",
81
- "additionalProperties": false,
82
- "required": [
83
- "name",
84
- "path",
85
- "description"
86
- ],
87
- "properties": {
88
- "name": {
89
- "type": "string"
90
- },
91
- "path": {
92
- "type": "string"
93
- },
94
- "description": {
95
- "type": "string"
96
- }
97
- }
98
- }
99
- },
100
- "extraArtifacts": {
101
- "type": "array",
102
- "items": {
103
- "type": "object",
104
- "additionalProperties": false,
105
- "required": [
106
- "name",
107
- "path",
108
- "description"
109
- ],
110
- "properties": {
111
- "name": {
112
- "type": "string"
113
- },
114
- "path": {
115
- "type": "string"
116
- },
117
- "description": {
118
- "type": "string"
119
- }
120
- }
121
- }
122
- },
123
- "externalDependencies": {
124
- "type": "array",
125
- "items": {
126
- "type": "object",
127
- "additionalProperties": false,
128
- "required": [
129
- "name",
130
- "version",
131
- "evidence"
132
- ],
133
- "properties": {
134
- "name": {
135
- "type": "string"
136
- },
137
- "version": {
138
- "type": [
139
- "string",
140
- "null"
141
- ]
142
- },
143
- "evidence": {
144
- "type": [
145
- "string",
146
- "null"
147
- ]
148
- }
149
- }
150
- }
151
- },
152
- "externalConfigs": {
153
- "type": "array",
154
- "items": {
155
- "type": "object",
156
- "additionalProperties": false,
157
- "required": [
158
- "name",
159
- "path",
160
- "description"
161
- ],
162
- "properties": {
163
- "name": {
164
- "type": "string"
165
- },
166
- "path": {
167
- "type": "string"
168
- },
169
- "description": {
170
- "type": "string"
171
- }
172
- }
173
- }
174
- }
175
- }
176
- }
@@ -1,32 +0,0 @@
1
- We're migrating this dev environment from the current macOS to a Linux-based devbox. It will solely be used for local development of this repo.
2
- Your task is to create a detailed inventory of everything needed to recreate the local dev environment.
3
- We'll already have the repo checked out, so focus on any other dependencies, configs, and files needed for local operation.
4
- Exhaustively scan this repo and the local environment for anything needed to recreate this dev environment from scratch.
5
- Only include items that are required for local operation.
6
- Do not include secret values.
7
-
8
- Return JSON with this shape:
9
- - schemaVersion: number (use 2)
10
- - envFiles: [{ name, path, vars, usage }]
11
- - envFiles are untracked .env-style files in the repo
12
- - vars is a list of { name, value, isSecret, commented, hasValue }
13
- - hasValue is true if the variable has a non-empty value (even if commented)
14
- - value should be present for non-secret vars; use null for secrets
15
- - usage should mention where the file / env vars consumed (briefly)
16
- - secretFiles: [{ name, path, description }]
17
- - untracked non-.env files that include secrets or configs needed locally
18
- - "description" should name the secrets/configs by name (no values)
19
- - extraArtifacts: [{ name, path, description }]
20
- - other untracked files or directories that seem required for local operation
21
- - keep this list tight; prefer listing a directory if all contents are needed rather than many individual files
22
- - "description" should explain very briefly what the artifact(s) appear to be used for
23
- - externalDependencies: [{ name, version, evidence }]
24
- - dependencies not installed by repo scripts but needed locally
25
- - these can be CLIs, runtimes, global tools, etc.
26
- - "version" refers to either the required or, if not clear, the installed version on local
27
- - evidence can mention where you inferred it, should be very short
28
- - externalConfigs: [{ name, path, description }]
29
- - config/secret files outside the repo that are required for local operation
30
- - "description" should explain why they appear to be needed
31
-
32
- Return only JSON that matches the provided schema.