container-superposition 0.1.7 → 0.1.8

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 (122) hide show
  1. package/README.md +24 -15
  2. package/dist/scripts/init.js +1 -1537
  3. package/dist/scripts/init.js.map +1 -1
  4. package/dist/tool/cli/args.d.ts +20 -0
  5. package/dist/tool/cli/args.d.ts.map +1 -0
  6. package/dist/tool/cli/args.js +325 -0
  7. package/dist/tool/cli/args.js.map +1 -0
  8. package/dist/tool/cli/run.d.ts +2 -0
  9. package/dist/tool/cli/run.d.ts.map +1 -0
  10. package/dist/tool/cli/run.js +318 -0
  11. package/dist/tool/cli/run.js.map +1 -0
  12. package/dist/tool/commands/doctor.d.ts.map +1 -1
  13. package/dist/tool/commands/doctor.js +141 -6
  14. package/dist/tool/commands/doctor.js.map +1 -1
  15. package/dist/tool/commands/explain.d.ts.map +1 -1
  16. package/dist/tool/commands/explain.js +9 -0
  17. package/dist/tool/commands/explain.js.map +1 -1
  18. package/dist/tool/commands/migrate.d.ts +7 -0
  19. package/dist/tool/commands/migrate.d.ts.map +1 -0
  20. package/dist/tool/commands/migrate.js +52 -0
  21. package/dist/tool/commands/migrate.js.map +1 -0
  22. package/dist/tool/questionnaire/answers.d.ts +16 -0
  23. package/dist/tool/questionnaire/answers.d.ts.map +1 -0
  24. package/dist/tool/questionnaire/answers.js +102 -0
  25. package/dist/tool/questionnaire/answers.js.map +1 -0
  26. package/dist/tool/questionnaire/composer.d.ts +3 -3
  27. package/dist/tool/questionnaire/composer.d.ts.map +1 -1
  28. package/dist/tool/questionnaire/composer.js +691 -27
  29. package/dist/tool/questionnaire/composer.js.map +1 -1
  30. package/dist/tool/questionnaire/presets.d.ts +60 -0
  31. package/dist/tool/questionnaire/presets.d.ts.map +1 -0
  32. package/dist/tool/questionnaire/presets.js +164 -0
  33. package/dist/tool/questionnaire/presets.js.map +1 -0
  34. package/dist/tool/questionnaire/questionnaire.d.ts +10 -0
  35. package/dist/tool/questionnaire/questionnaire.d.ts.map +1 -0
  36. package/dist/tool/questionnaire/questionnaire.js +580 -0
  37. package/dist/tool/questionnaire/questionnaire.js.map +1 -0
  38. package/dist/tool/schema/manifest-migrations.d.ts +5 -0
  39. package/dist/tool/schema/manifest-migrations.d.ts.map +1 -1
  40. package/dist/tool/schema/manifest-migrations.js +45 -0
  41. package/dist/tool/schema/manifest-migrations.js.map +1 -1
  42. package/dist/tool/schema/overlay-loader.d.ts.map +1 -1
  43. package/dist/tool/schema/overlay-loader.js +24 -0
  44. package/dist/tool/schema/overlay-loader.js.map +1 -1
  45. package/dist/tool/schema/project-config.d.ts +13 -1
  46. package/dist/tool/schema/project-config.d.ts.map +1 -1
  47. package/dist/tool/schema/project-config.js +183 -9
  48. package/dist/tool/schema/project-config.js.map +1 -1
  49. package/dist/tool/schema/target-rules.d.ts +78 -0
  50. package/dist/tool/schema/target-rules.d.ts.map +1 -0
  51. package/dist/tool/schema/target-rules.js +367 -0
  52. package/dist/tool/schema/target-rules.js.map +1 -0
  53. package/dist/tool/schema/types.d.ts +38 -1
  54. package/dist/tool/schema/types.d.ts.map +1 -1
  55. package/dist/tool/utils/parameters.d.ts +76 -0
  56. package/dist/tool/utils/parameters.d.ts.map +1 -0
  57. package/dist/tool/utils/parameters.js +125 -0
  58. package/dist/tool/utils/parameters.js.map +1 -0
  59. package/dist/tool/utils/paths.d.ts +2 -0
  60. package/dist/tool/utils/paths.d.ts.map +1 -0
  61. package/dist/tool/utils/paths.js +31 -0
  62. package/dist/tool/utils/paths.js.map +1 -0
  63. package/docs/deployment-targets.md +88 -56
  64. package/docs/examples.md +20 -17
  65. package/docs/filesystem-contract.md +5 -0
  66. package/docs/minimal-and-editor.md +65 -5
  67. package/docs/overlay-imports.md +92 -14
  68. package/docs/overlays.md +113 -28
  69. package/docs/specs/007-init-project-file/spec.md +66 -0
  70. package/docs/specs/007-target-aware-generation/spec.md +126 -0
  71. package/docs/specs/008-project-file-canonical/spec.md +83 -0
  72. package/docs/specs/009-project-env/spec.md +147 -0
  73. package/docs/specs/010-compose-env-materialization/spec.md +130 -0
  74. package/docs/specs/011-overlay-parameters/spec.md +235 -0
  75. package/overlays/.shared/README.md +27 -2
  76. package/overlays/.shared/compose/nvidia-gpu-devcontainer.yml +22 -0
  77. package/overlays/comfyui/.env.example +34 -0
  78. package/overlays/comfyui/README.md +342 -0
  79. package/overlays/comfyui/devcontainer.patch.json +15 -0
  80. package/overlays/comfyui/docker-compose.yml +39 -0
  81. package/overlays/comfyui/overlay.yml +20 -0
  82. package/overlays/comfyui/setup.sh +36 -0
  83. package/overlays/comfyui/verify.sh +103 -0
  84. package/overlays/k3d/README.md +201 -0
  85. package/overlays/k3d/devcontainer.patch.json +9 -0
  86. package/overlays/k3d/overlay.yml +19 -0
  87. package/overlays/k3d/setup.sh +34 -0
  88. package/overlays/k3d/verify.sh +38 -0
  89. package/overlays/ollama/.env.example +14 -0
  90. package/overlays/ollama/README.md +325 -0
  91. package/overlays/ollama/devcontainer.patch.json +14 -0
  92. package/overlays/ollama/docker-compose.yml +24 -0
  93. package/overlays/ollama/overlay.yml +22 -0
  94. package/overlays/ollama/setup.sh +106 -0
  95. package/overlays/ollama/verify.sh +99 -0
  96. package/overlays/open-webui/.env.example +5 -0
  97. package/overlays/open-webui/README.md +162 -0
  98. package/overlays/open-webui/devcontainer.patch.json +14 -0
  99. package/overlays/open-webui/docker-compose.yml +23 -0
  100. package/overlays/open-webui/overlay.yml +38 -0
  101. package/overlays/pgvector/.env.example +6 -0
  102. package/overlays/pgvector/README.md +215 -0
  103. package/overlays/pgvector/devcontainer.patch.json +23 -0
  104. package/overlays/pgvector/docker-compose.yml +32 -0
  105. package/overlays/pgvector/overlay.yml +44 -0
  106. package/overlays/postgres/.env.example +5 -5
  107. package/overlays/postgres/devcontainer.patch.json +4 -4
  108. package/overlays/postgres/docker-compose.yml +10 -6
  109. package/overlays/postgres/overlay.yml +19 -1
  110. package/overlays/qdrant/.env.example +4 -0
  111. package/overlays/qdrant/README.md +216 -0
  112. package/overlays/qdrant/devcontainer.patch.json +20 -0
  113. package/overlays/qdrant/docker-compose.yml +25 -0
  114. package/overlays/qdrant/overlay.yml +40 -0
  115. package/overlays/skaffold/README.md +256 -0
  116. package/overlays/skaffold/devcontainer.patch.json +9 -0
  117. package/overlays/skaffold/overlay.yml +20 -0
  118. package/overlays/skaffold/setup.sh +33 -0
  119. package/overlays/skaffold/verify.sh +24 -0
  120. package/package.json +3 -2
  121. package/tool/schema/config.schema.json +31 -1
  122. package/tool/schema/overlay-manifest.schema.json +33 -0
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Target-aware generation rules.
3
+ *
4
+ * Each non-local deployment target has a TargetRule implementation that:
5
+ * - patches devcontainer.json with target-specific fields
6
+ * - generates target-specific workspace files and user guidance
7
+ * - declares the files it owns (for stale-artifact cleanup on target switch)
8
+ */
9
+ import type { DeploymentTarget, DevContainer, OverlayMetadata, Stack } from './types.js';
10
+ /**
11
+ * Information available to a target rule when it runs.
12
+ */
13
+ export interface TargetRuleContext {
14
+ /** Selected overlay IDs (resolved, in application order). */
15
+ overlays: string[];
16
+ /** Metadata map for all selected overlays. */
17
+ overlayMetadata: Map<string, OverlayMetadata>;
18
+ /** Applied port offset (0 = none). */
19
+ portOffset: number;
20
+ /** Base stack used for generation. */
21
+ stack: Stack;
22
+ /** Absolute path to the output directory (e.g. <project>/.devcontainer). */
23
+ outputPath: string;
24
+ /** Absolute path to the project root (parent of outputPath). */
25
+ projectRoot: string;
26
+ }
27
+ /**
28
+ * A TargetRule encapsulates all target-specific generation logic for one
29
+ * deployment target. The `local` rule is a no-op pass-through.
30
+ */
31
+ export interface TargetRule {
32
+ readonly target: DeploymentTarget;
33
+ /**
34
+ * Returns a partial DevContainer object that is deep-merged into the
35
+ * composed devcontainer.json before it is written to disk.
36
+ * Return an empty object for targets that need no devcontainer changes.
37
+ */
38
+ devcontainerPatch(context: TargetRuleContext): Partial<DevContainer>;
39
+ /**
40
+ * Returns a map of files to write. Keys are relative to `context.outputPath`.
41
+ * A key that starts with `../` is resolved relative to `context.projectRoot`
42
+ * (one level above `.devcontainer/`) so it lands in the project root.
43
+ */
44
+ generateFiles(context: TargetRuleContext): Map<string, string>;
45
+ /**
46
+ * Lists the relative paths (same conventions as `generateFiles`) owned by
47
+ * this rule. Used to remove stale project-root files when the user switches
48
+ * to a different target between runs.
49
+ */
50
+ ownedFiles(): string[];
51
+ }
52
+ /**
53
+ * Return the target rule for the given deployment target.
54
+ * Throws a clear error when the target has no defined rule (future-proofing).
55
+ */
56
+ export declare function getTargetRule(target: DeploymentTarget): TargetRule;
57
+ /**
58
+ * Resolve a path produced by TargetRule.generateFiles() to an absolute
59
+ * filesystem path.
60
+ *
61
+ * Keys starting with '../' are resolved relative to projectRoot (i.e. the
62
+ * repository root, one level above .devcontainer/). All other keys are
63
+ * resolved relative to outputPath (.devcontainer/).
64
+ */
65
+ export declare function resolveTargetFilePath(key: string, outputPath: string, projectRoot: string): string;
66
+ /**
67
+ * Remove stale project-root artifacts left by a previous target.
68
+ *
69
+ * Only project-root files (keys starting with '../') are removed here; files
70
+ * inside outputPath are handled automatically by cleanupStaleFiles via the
71
+ * FileRegistry.
72
+ *
73
+ * @param previousTarget Target used in the previous generation run.
74
+ * @param nextTarget Target for the current generation run.
75
+ * @param projectRoot Absolute path to the project root.
76
+ */
77
+ export declare function removeStaleTargetArtifacts(previousTarget: DeploymentTarget, nextTarget: DeploymentTarget, projectRoot: string): void;
78
+ //# sourceMappingURL=target-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-rules.d.ts","sourceRoot":"","sources":["../../../tool/schema/target-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAIzF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8CAA8C;IAC9C,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9C,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,KAAK,EAAE,KAAK,CAAC;IACb,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;CACvB;AAID;;;GAGG;AACH,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAElC;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAErE;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE/D;;;;OAIG;IACH,UAAU,IAAI,MAAM,EAAE,CAAC;CAC1B;AAkXD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAOlE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACjC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GACpB,MAAM,CAKR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACtC,cAAc,EAAE,gBAAgB,EAChC,UAAU,EAAE,gBAAgB,EAC5B,WAAW,EAAE,MAAM,GACpB,IAAI,CAmBN"}
@@ -0,0 +1,367 @@
1
+ /**
2
+ * Target-aware generation rules.
3
+ *
4
+ * Each non-local deployment target has a TargetRule implementation that:
5
+ * - patches devcontainer.json with target-specific fields
6
+ * - generates target-specific workspace files and user guidance
7
+ * - declares the files it owns (for stale-artifact cleanup on target switch)
8
+ */
9
+ import * as fs from 'fs';
10
+ import * as path from 'path';
11
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
12
+ /** Collect all exposed ports across selected overlays, applying the offset. */
13
+ function collectPorts(overlays, overlayMetadata, portOffset) {
14
+ const result = [];
15
+ for (const id of overlays) {
16
+ const meta = overlayMetadata.get(id);
17
+ if (!meta?.ports)
18
+ continue;
19
+ for (const p of meta.ports) {
20
+ if (typeof p === 'number') {
21
+ result.push({
22
+ port: p + portOffset,
23
+ service: id,
24
+ description: '',
25
+ protocol: 'tcp',
26
+ });
27
+ }
28
+ else {
29
+ result.push({
30
+ port: p.port + portOffset,
31
+ service: p.service ?? id,
32
+ description: p.description ?? '',
33
+ protocol: p.protocol ?? 'tcp',
34
+ });
35
+ }
36
+ }
37
+ }
38
+ return result;
39
+ }
40
+ // ─── Local rule (no-op) ───────────────────────────────────────────────────────
41
+ class LocalTargetRule {
42
+ target = 'local';
43
+ devcontainerPatch(_ctx) {
44
+ return {};
45
+ }
46
+ generateFiles(_ctx) {
47
+ return new Map();
48
+ }
49
+ ownedFiles() {
50
+ return [];
51
+ }
52
+ }
53
+ // ─── Codespaces rule ─────────────────────────────────────────────────────────
54
+ class CodespacesTargetRule {
55
+ target = 'codespaces';
56
+ devcontainerPatch(ctx) {
57
+ // Recommend a machine size based on the number of services selected.
58
+ // More services → larger machine recommendation.
59
+ const serviceOverlays = ctx.overlays.filter((id) => {
60
+ const meta = ctx.overlayMetadata.get(id);
61
+ return meta?.category === 'database' || meta?.category === 'observability';
62
+ });
63
+ let cpus = 2;
64
+ let memoryGb = 4;
65
+ if (serviceOverlays.length >= 4) {
66
+ cpus = 8;
67
+ memoryGb = 16;
68
+ }
69
+ else if (serviceOverlays.length >= 2) {
70
+ cpus = 4;
71
+ memoryGb = 8;
72
+ }
73
+ return {
74
+ hostRequirements: {
75
+ cpus,
76
+ memory: `${memoryGb}gb`,
77
+ storage: '32gb',
78
+ },
79
+ };
80
+ }
81
+ generateFiles(ctx) {
82
+ const files = new Map();
83
+ const overlayNames = ctx.overlays
84
+ .map((id) => ctx.overlayMetadata.get(id)?.name ?? id)
85
+ .join(', ');
86
+ const serviceOverlays = ctx.overlays.filter((id) => {
87
+ const meta = ctx.overlayMetadata.get(id);
88
+ return meta?.category === 'database' || meta?.category === 'observability';
89
+ });
90
+ let machineNote = '**2-core** machine (default)';
91
+ if (serviceOverlays.length >= 4) {
92
+ machineNote = '**8-core** machine (recommended — many services selected)';
93
+ }
94
+ else if (serviceOverlays.length >= 2) {
95
+ machineNote = '**4-core** machine (recommended — multiple services selected)';
96
+ }
97
+ const ports = collectPorts(ctx.overlays, ctx.overlayMetadata, ctx.portOffset);
98
+ const portSection = ports.length > 0
99
+ ? `\n## Exposed Ports\n\n${ports.map((p) => `- **${p.port}** — ${p.service}${p.description ? ` (${p.description})` : ''}`).join('\n')}\n`
100
+ : '';
101
+ const content = `# GitHub Codespaces Setup
102
+
103
+ This devcontainer was generated with **\`--target codespaces\`** and is optimized for
104
+ [GitHub Codespaces](https://github.com/features/codespaces).
105
+
106
+ ## Opening in a Codespace
107
+
108
+ 1. Push this repository (including the \`.devcontainer/\` directory) to GitHub.
109
+ 2. Click **Code → Codespaces → Create codespace on <branch>**.
110
+ 3. GitHub will pick up \`.devcontainer/devcontainer.json\` automatically.
111
+
112
+ ## Recommended Machine Type
113
+
114
+ The generated \`devcontainer.json\` includes \`hostRequirements\` recommending a
115
+ ${machineNote} for the selected stack.
116
+
117
+ **Selected overlays**: ${overlayNames || '(none)'}
118
+
119
+ ## Port Forwarding
120
+
121
+ Codespaces automatically forwards ports declared in \`devcontainer.json\`.
122
+ Forwarded ports appear in the **Ports** panel inside VS Code or the Codespaces UI.
123
+ ${portSection}
124
+ ## Notes
125
+
126
+ - **docker-sock** is not available in Codespaces — use \`docker-in-docker\` instead.
127
+ - Secrets can be added under *Settings → Codespaces → Secrets*.
128
+ - To set environment variables, copy \`.devcontainer/.env.example\` to \`.devcontainer/.env\`
129
+ and add the file to your Codespaces secrets or repository environment.
130
+
131
+ ## References
132
+
133
+ - [GitHub Codespaces documentation](https://docs.github.com/en/codespaces)
134
+ - [devcontainer.json reference — hostRequirements](https://containers.dev/implementors/json_reference/#hostRequirementsProperties)
135
+ `;
136
+ files.set('CODESPACES.md', content);
137
+ return files;
138
+ }
139
+ ownedFiles() {
140
+ return ['CODESPACES.md'];
141
+ }
142
+ }
143
+ // ─── Gitpod rule ─────────────────────────────────────────────────────────────
144
+ class GitpodTargetRule {
145
+ target = 'gitpod';
146
+ devcontainerPatch(_ctx) {
147
+ return {};
148
+ }
149
+ generateFiles(ctx) {
150
+ const files = new Map();
151
+ const ports = collectPorts(ctx.overlays, ctx.overlayMetadata, ctx.portOffset);
152
+ const portsSection = ports.length > 0
153
+ ? ports
154
+ .map((p) => ` - port: ${p.port}\n onOpen: notify-user\n name: ${p.service}\n description: ${p.description || p.service}`)
155
+ .join('\n')
156
+ : '';
157
+ const devcontainerRef = ctx.stack === 'compose' ? '.devcontainer/devcontainer.json' : '.devcontainer';
158
+ const gitpodYml = [
159
+ '# Gitpod workspace configuration',
160
+ '# Generated by container-superposition with --target gitpod',
161
+ '#',
162
+ '# See: https://www.gitpod.io/docs/references/gitpod-yml',
163
+ '',
164
+ 'image:',
165
+ ` file: ${devcontainerRef}`,
166
+ '',
167
+ 'tasks:',
168
+ ' - name: Setup',
169
+ ' init: |',
170
+ ' echo "Workspace initialized — run your setup commands here"',
171
+ ' command: |',
172
+ ' echo "Workspace ready"',
173
+ '',
174
+ ...(portsSection
175
+ ? ['ports:', portsSection, '']
176
+ : ['# ports: [] # No overlay ports declared', '']),
177
+ 'vscode:',
178
+ ' extensions: []',
179
+ ].join('\n');
180
+ // .gitpod.yml must live in the repository root (one level above .devcontainer/)
181
+ files.set('../.gitpod.yml', gitpodYml);
182
+ const overlayNames = ctx.overlays
183
+ .map((id) => ctx.overlayMetadata.get(id)?.name ?? id)
184
+ .join(', ');
185
+ const portSection = ports.length > 0
186
+ ? `\n## Exposed Ports\n\n${ports.map((p) => `- **${p.port}** — ${p.service}${p.description ? ` (${p.description})` : ''}`).join('\n')}\n`
187
+ : '';
188
+ const repoUrl = '<!-- Replace with your repository URL -->';
189
+ const gitpodMd = `# Gitpod Setup
190
+
191
+ This devcontainer was generated with **\`--target gitpod\`** and includes a
192
+ \`.gitpod.yml\` at the repository root for use with [Gitpod](https://www.gitpod.io).
193
+
194
+ ## Opening in Gitpod
195
+
196
+ 1. Push this repository (including \`.devcontainer/\` and \`.gitpod.yml\`) to a
197
+ Git hosting provider supported by Gitpod (GitHub, GitLab, Bitbucket).
198
+ 2. Prefix your repository URL with \`https://gitpod.io/#\`:
199
+
200
+ \`\`\`
201
+ https://gitpod.io/#${repoUrl}
202
+ \`\`\`
203
+
204
+ Or add an **Open in Gitpod** badge to your README:
205
+
206
+ \`\`\`markdown
207
+ [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#${repoUrl})
208
+ \`\`\`
209
+
210
+ **Selected overlays**: ${overlayNames || '(none)'}
211
+ ${portSection}
212
+ ## Notes
213
+
214
+ - **docker-sock** is not available in Gitpod — use \`docker-in-docker\` instead.
215
+ - Environment variables can be set under *Gitpod Settings → Variables*.
216
+ - Copy \`.devcontainer/.env.example\` to \`.devcontainer/.env\` and configure locally.
217
+ - The generated \`.gitpod.yml\` references your devcontainer via its \`image.file\`
218
+ field — Gitpod reads devcontainer.json automatically.
219
+
220
+ ## References
221
+
222
+ - [Gitpod documentation](https://www.gitpod.io/docs)
223
+ - [Gitpod .gitpod.yml reference](https://www.gitpod.io/docs/references/gitpod-yml)
224
+ - [Gitpod + devcontainers](https://www.gitpod.io/docs/references/ides-and-editors/vscode)
225
+ `;
226
+ files.set('GITPOD.md', gitpodMd);
227
+ return files;
228
+ }
229
+ ownedFiles() {
230
+ // '../.gitpod.yml' resolves to project root; 'GITPOD.md' is in outputPath.
231
+ return ['../.gitpod.yml', 'GITPOD.md'];
232
+ }
233
+ }
234
+ // ─── DevPod rule ──────────────────────────────────────────────────────────────
235
+ class DevPodTargetRule {
236
+ target = 'devpod';
237
+ devcontainerPatch(_ctx) {
238
+ return {};
239
+ }
240
+ generateFiles(ctx) {
241
+ const files = new Map();
242
+ const devcontainerPath = ctx.stack === 'compose' ? '.devcontainer/devcontainer.json' : '.devcontainer';
243
+ const devpodYaml = [
244
+ '# DevPod workspace configuration',
245
+ '# Generated by container-superposition with --target devpod',
246
+ '#',
247
+ '# See: https://devpod.sh/docs/managing-workspaces/workspace-configuration',
248
+ '',
249
+ `devcontainerPath: ${devcontainerPath}`,
250
+ ].join('\n');
251
+ // devpod.yaml lives at the project root
252
+ files.set('../devpod.yaml', devpodYaml);
253
+ const overlayNames = ctx.overlays
254
+ .map((id) => ctx.overlayMetadata.get(id)?.name ?? id)
255
+ .join(', ');
256
+ const ports = collectPorts(ctx.overlays, ctx.overlayMetadata, ctx.portOffset);
257
+ const portSection = ports.length > 0
258
+ ? `\n## Exposed Ports\n\n${ports.map((p) => `- **${p.port}** — ${p.service}${p.description ? ` (${p.description})` : ''}`).join('\n')}\n`
259
+ : '';
260
+ const devpodMd = `# DevPod Setup
261
+
262
+ This devcontainer was generated with **\`--target devpod\`** and includes a
263
+ \`devpod.yaml\` at the repository root for use with [DevPod](https://devpod.sh).
264
+
265
+ ## Provisioning with DevPod
266
+
267
+ 1. [Install DevPod](https://devpod.sh/docs/getting-started/install).
268
+ 2. From the repository root run:
269
+
270
+ \`\`\`bash
271
+ devpod up .
272
+ \`\`\`
273
+
274
+ DevPod reads \`devpod.yaml\` and the referenced \`${devcontainerPath}\` automatically.
275
+
276
+ 3. To use a specific provider:
277
+
278
+ \`\`\`bash
279
+ devpod up . --provider docker # Local Docker
280
+ devpod up . --provider aws # AWS EC2
281
+ \`\`\`
282
+
283
+ **Selected overlays**: ${overlayNames || '(none)'}
284
+ ${portSection}
285
+ ## Notes
286
+
287
+ - Copy \`.devcontainer/.env.example\` to \`.devcontainer/.env\` and edit credentials
288
+ before running \`devpod up\`.
289
+ - DevPod respects \`hostRequirements\` in \`devcontainer.json\` for cloud providers.
290
+ - To stop and destroy the workspace: \`devpod delete <workspace-name>\`.
291
+
292
+ ## References
293
+
294
+ - [DevPod documentation](https://devpod.sh/docs)
295
+ - [DevPod workspace configuration](https://devpod.sh/docs/managing-workspaces/workspace-configuration)
296
+ - [DevPod providers](https://devpod.sh/docs/managing-providers/add-provider)
297
+ `;
298
+ files.set('DEVPOD.md', devpodMd);
299
+ return files;
300
+ }
301
+ ownedFiles() {
302
+ return ['../devpod.yaml', 'DEVPOD.md'];
303
+ }
304
+ }
305
+ // ─── Registry ────────────────────────────────────────────────────────────────
306
+ const TARGET_RULES = {
307
+ local: new LocalTargetRule(),
308
+ codespaces: new CodespacesTargetRule(),
309
+ gitpod: new GitpodTargetRule(),
310
+ devpod: new DevPodTargetRule(),
311
+ };
312
+ /**
313
+ * Return the target rule for the given deployment target.
314
+ * Throws a clear error when the target has no defined rule (future-proofing).
315
+ */
316
+ export function getTargetRule(target) {
317
+ const rule = TARGET_RULES[target];
318
+ if (!rule) {
319
+ const valid = Object.keys(TARGET_RULES).join(', ');
320
+ throw new Error(`No target rule defined for '${target}'. Valid targets are: ${valid}`);
321
+ }
322
+ return rule;
323
+ }
324
+ /**
325
+ * Resolve a path produced by TargetRule.generateFiles() to an absolute
326
+ * filesystem path.
327
+ *
328
+ * Keys starting with '../' are resolved relative to projectRoot (i.e. the
329
+ * repository root, one level above .devcontainer/). All other keys are
330
+ * resolved relative to outputPath (.devcontainer/).
331
+ */
332
+ export function resolveTargetFilePath(key, outputPath, projectRoot) {
333
+ if (key.startsWith('../')) {
334
+ return path.join(projectRoot, key.slice(3));
335
+ }
336
+ return path.join(outputPath, key);
337
+ }
338
+ /**
339
+ * Remove stale project-root artifacts left by a previous target.
340
+ *
341
+ * Only project-root files (keys starting with '../') are removed here; files
342
+ * inside outputPath are handled automatically by cleanupStaleFiles via the
343
+ * FileRegistry.
344
+ *
345
+ * @param previousTarget Target used in the previous generation run.
346
+ * @param nextTarget Target for the current generation run.
347
+ * @param projectRoot Absolute path to the project root.
348
+ */
349
+ export function removeStaleTargetArtifacts(previousTarget, nextTarget, projectRoot) {
350
+ if (previousTarget === nextTarget) {
351
+ return;
352
+ }
353
+ const previousRule = TARGET_RULES[previousTarget];
354
+ if (!previousRule) {
355
+ return;
356
+ }
357
+ for (const ownedKey of previousRule.ownedFiles()) {
358
+ if (!ownedKey.startsWith('../')) {
359
+ continue; // outputPath files handled by FileRegistry
360
+ }
361
+ const absPath = path.join(projectRoot, ownedKey.slice(3));
362
+ if (fs.existsSync(absPath)) {
363
+ fs.unlinkSync(absPath);
364
+ }
365
+ }
366
+ }
367
+ //# sourceMappingURL=target-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-rules.js","sourceRoot":"","sources":["../../../tool/schema/target-rules.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,11 @@ export interface DevContainerConfig {
54
54
  * Editor profile for customizations
55
55
  */
56
56
  export type EditorProfile = 'vscode' | 'jetbrains' | 'none';
57
+ export type ProjectEnvTarget = 'auto' | 'remoteEnv' | 'composeEnv';
58
+ export interface ProjectEnvVar {
59
+ value: string;
60
+ target?: ProjectEnvTarget;
61
+ }
57
62
  /**
58
63
  * Questionnaire response interface
59
64
  */
@@ -77,7 +82,9 @@ export interface QuestionnaireAnswers {
77
82
  target?: DeploymentTarget;
78
83
  minimal?: boolean;
79
84
  editor?: EditorProfile;
85
+ projectEnv?: Record<string, ProjectEnvVar>;
80
86
  customizations?: CustomizationConfig;
87
+ overlayParameters?: Record<string, string>;
81
88
  }
82
89
  /**
83
90
  * Port attributes configuration
@@ -105,6 +112,9 @@ export interface DevContainer {
105
112
  extensions?: string[];
106
113
  settings?: Record<string, any>;
107
114
  };
115
+ jetbrains?: {
116
+ backend: string;
117
+ };
108
118
  };
109
119
  forwardPorts?: number[];
110
120
  portsAttributes?: Record<string, PortAttributes>;
@@ -138,6 +148,15 @@ export interface PortMetadata {
138
148
  export interface NormalizedPort extends PortMetadata {
139
149
  actualPort: number;
140
150
  }
151
+ /**
152
+ * Declaration of a single configurable parameter for an overlay.
153
+ * Parameters are resolved at generation time using {{cs.PARAM_NAME}} substitution.
154
+ */
155
+ export interface OverlayParameterDefinition {
156
+ description: string;
157
+ default?: string;
158
+ sensitive?: boolean;
159
+ }
141
160
  /**
142
161
  * Overlay metadata from overlays.yml
143
162
  */
@@ -154,8 +173,10 @@ export interface OverlayMetadata {
154
173
  ports?: (number | PortMetadata)[];
155
174
  order?: number;
156
175
  imports?: string[];
176
+ compose_imports?: string[];
157
177
  minimal?: boolean;
158
178
  hidden?: boolean;
179
+ parameters?: Record<string, OverlayParameterDefinition>;
159
180
  }
160
181
  /**
161
182
  * User choice configuration for presets
@@ -255,6 +276,9 @@ export interface SuperpositionManifest {
255
276
  reason: string;
256
277
  };
257
278
  containerName?: string;
279
+ target?: DeploymentTarget;
280
+ minimal?: boolean;
281
+ editor?: EditorProfile;
258
282
  customizations?: {
259
283
  enabled: boolean;
260
284
  location: string;
@@ -274,6 +298,8 @@ export interface CustomizationConfig {
274
298
  files?: Array<{
275
299
  source: string;
276
300
  destination: string;
301
+ /** Pre-loaded file content; avoids re-reading from disk when available (e.g. when materialized from a project config). */
302
+ content?: string;
277
303
  }>;
278
304
  }
279
305
  export interface ProjectConfigFileEntry {
@@ -283,7 +309,7 @@ export interface ProjectConfigFileEntry {
283
309
  export interface ProjectConfigCustomizationsInput {
284
310
  devcontainerPatch?: DevContainer;
285
311
  dockerComposePatch?: Record<string, any>;
286
- environment?: Record<string, string>;
312
+ envTemplate?: Record<string, string>;
287
313
  scripts?: {
288
314
  postCreate?: string[];
289
315
  postStart?: string[];
@@ -366,6 +392,15 @@ export interface FixRun {
366
392
  summary: FixOutcomeSummary;
367
393
  exitDisposition: ExitDisposition;
368
394
  }
395
+ /**
396
+ * Resolved composition input — produced by mergeAnswers() after all user input has been
397
+ * collected and defaults applied. Guarantees that array fields which QuestionnaireAnswers
398
+ * leaves optional are present (empty arrays at minimum), making downstream code type-safe.
399
+ */
400
+ export interface CompositionInput extends QuestionnaireAnswers {
401
+ language: LanguageOverlay[];
402
+ database: DatabaseOverlay[];
403
+ }
369
404
  export interface ProjectConfigSelection {
370
405
  stack?: Stack;
371
406
  baseImage?: BaseImage;
@@ -379,6 +414,8 @@ export interface ProjectConfigSelection {
379
414
  target?: DeploymentTarget;
380
415
  minimal?: boolean;
381
416
  editor?: EditorProfile;
417
+ env?: Record<string, ProjectEnvVar>;
382
418
  customizations?: ProjectConfigCustomizationsInput;
419
+ parameters?: Record<string, string>;
383
420
  }
384
421
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../tool/schema/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../tool/schema/types.ts"],"names":[],"mappings":"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"}