container-superposition 0.1.3 → 0.1.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.
- package/README.md +72 -1014
- package/dist/scripts/init.js +512 -238
- package/dist/scripts/init.js.map +1 -1
- package/dist/tool/commands/adopt.d.ts +62 -0
- package/dist/tool/commands/adopt.d.ts.map +1 -0
- package/dist/tool/commands/adopt.js +767 -0
- package/dist/tool/commands/adopt.js.map +1 -0
- package/dist/tool/commands/doctor.js +2 -2
- package/dist/tool/commands/explain.d.ts.map +1 -1
- package/dist/tool/commands/explain.js +88 -0
- package/dist/tool/commands/explain.js.map +1 -1
- package/dist/tool/commands/hash.d.ts +36 -0
- package/dist/tool/commands/hash.d.ts.map +1 -0
- package/dist/tool/commands/hash.js +242 -0
- package/dist/tool/commands/hash.js.map +1 -0
- package/dist/tool/commands/plan.d.ts +53 -0
- package/dist/tool/commands/plan.d.ts.map +1 -1
- package/dist/tool/commands/plan.js +784 -42
- package/dist/tool/commands/plan.js.map +1 -1
- package/dist/tool/questionnaire/composer.d.ts +12 -3
- package/dist/tool/questionnaire/composer.d.ts.map +1 -1
- package/dist/tool/questionnaire/composer.js +133 -20
- package/dist/tool/questionnaire/composer.js.map +1 -1
- package/dist/tool/schema/project-config.d.ts +15 -0
- package/dist/tool/schema/project-config.d.ts.map +1 -0
- package/dist/tool/schema/project-config.js +359 -0
- package/dist/tool/schema/project-config.js.map +1 -0
- package/dist/tool/schema/types.d.ts +57 -1
- package/dist/tool/schema/types.d.ts.map +1 -1
- package/dist/tool/utils/backup.d.ts +23 -0
- package/dist/tool/utils/backup.d.ts.map +1 -0
- package/dist/tool/utils/backup.js +123 -0
- package/dist/tool/utils/backup.js.map +1 -0
- package/dist/tool/utils/gitignore.d.ts +15 -0
- package/dist/tool/utils/gitignore.d.ts.map +1 -0
- package/dist/tool/utils/gitignore.js +41 -0
- package/dist/tool/utils/gitignore.js.map +1 -0
- package/dist/tool/utils/services-export.d.ts +14 -0
- package/dist/tool/utils/services-export.d.ts.map +1 -0
- package/dist/tool/utils/services-export.js +478 -0
- package/dist/tool/utils/services-export.js.map +1 -0
- package/dist/tool/utils/summary.d.ts +69 -0
- package/dist/tool/utils/summary.d.ts.map +1 -0
- package/dist/tool/utils/summary.js +260 -0
- package/dist/tool/utils/summary.js.map +1 -0
- package/docs/README.md +12 -2
- package/docs/adopt.md +196 -0
- package/docs/custom-patches.md +1 -1
- package/docs/discovery-commands.md +55 -3
- package/docs/examples.md +40 -6
- package/docs/filesystem-contract.md +58 -0
- package/docs/hash.md +183 -0
- package/docs/minimal-and-editor.md +1 -1
- package/docs/overlays.md +108 -5
- package/docs/presets-architecture.md +1 -1
- package/docs/presets.md +1 -1
- package/docs/publishing.md +36 -23
- package/docs/security.md +43 -0
- package/docs/specs/001-verbose-plan-graph/checklists/requirements.md +36 -0
- package/docs/specs/001-verbose-plan-graph/contracts/plan-verbose-output.md +96 -0
- package/docs/specs/001-verbose-plan-graph/data-model.md +111 -0
- package/docs/specs/001-verbose-plan-graph/plan.md +127 -0
- package/docs/specs/001-verbose-plan-graph/quickstart.md +106 -0
- package/docs/specs/001-verbose-plan-graph/research.md +100 -0
- package/docs/specs/001-verbose-plan-graph/spec.md +128 -0
- package/docs/specs/001-verbose-plan-graph/tasks.md +223 -0
- package/docs/specs/002-superposition-config-file/checklists/requirements.md +36 -0
- package/docs/specs/002-superposition-config-file/contracts/init-project-config.md +98 -0
- package/docs/specs/002-superposition-config-file/data-model.md +126 -0
- package/docs/specs/002-superposition-config-file/plan.md +208 -0
- package/docs/specs/002-superposition-config-file/quickstart.md +140 -0
- package/docs/specs/002-superposition-config-file/research.md +144 -0
- package/docs/specs/002-superposition-config-file/spec.md +130 -0
- package/docs/specs/002-superposition-config-file/tasks.md +213 -0
- package/docs/team-workflow.md +27 -1
- package/docs/workflows.md +136 -0
- package/overlays/.presets/microservice.yml +32 -6
- package/overlays/.presets/sdd.yml +84 -0
- package/overlays/.presets/web-api.yml +76 -56
- package/overlays/README.md +7 -1
- package/overlays/amp/README.md +70 -0
- package/overlays/amp/devcontainer.patch.json +3 -0
- package/overlays/amp/overlay.yml +15 -0
- package/overlays/amp/setup.sh +21 -0
- package/overlays/amp/verify.sh +21 -0
- package/overlays/claude-code/README.md +83 -0
- package/overlays/claude-code/devcontainer.patch.json +3 -0
- package/overlays/claude-code/overlay.yml +15 -0
- package/overlays/claude-code/setup.sh +21 -0
- package/overlays/claude-code/verify.sh +21 -0
- package/overlays/cloudflared/README.md +190 -0
- package/overlays/cloudflared/devcontainer.patch.json +3 -0
- package/overlays/cloudflared/overlay.yml +15 -0
- package/overlays/cloudflared/setup.sh +49 -0
- package/overlays/cloudflared/verify.sh +21 -0
- package/overlays/direnv/README.md +6 -4
- package/overlays/direnv/setup.sh +0 -12
- package/overlays/gemini-cli/README.md +77 -0
- package/overlays/gemini-cli/devcontainer.patch.json +3 -0
- package/overlays/gemini-cli/overlay.yml +15 -0
- package/overlays/gemini-cli/setup.sh +21 -0
- package/overlays/gemini-cli/verify.sh +21 -0
- package/overlays/grpc-tools/README.md +242 -0
- package/overlays/grpc-tools/devcontainer.patch.json +14 -0
- package/overlays/grpc-tools/overlay.yml +14 -0
- package/overlays/grpc-tools/setup.sh +57 -0
- package/overlays/grpc-tools/verify.sh +47 -0
- package/overlays/keycloak/.env.example +5 -0
- package/overlays/keycloak/README.md +238 -0
- package/overlays/keycloak/devcontainer.patch.json +17 -0
- package/overlays/keycloak/docker-compose.yml +32 -0
- package/overlays/keycloak/overlay.yml +23 -0
- package/overlays/keycloak/verify.sh +54 -0
- package/overlays/mailpit/.env.example +4 -0
- package/overlays/mailpit/README.md +191 -0
- package/overlays/mailpit/devcontainer.patch.json +20 -0
- package/overlays/mailpit/docker-compose.yml +17 -0
- package/overlays/mailpit/overlay.yml +26 -0
- package/overlays/mailpit/verify.sh +52 -0
- package/overlays/ngrok/overlay.yml +2 -1
- package/overlays/opencode/README.md +76 -0
- package/overlays/opencode/devcontainer.patch.json +3 -0
- package/overlays/opencode/overlay.yml +14 -0
- package/overlays/opencode/setup.sh +21 -0
- package/overlays/opencode/verify.sh +21 -0
- package/overlays/python/README.md +51 -35
- package/overlays/python/devcontainer.patch.json +7 -4
- package/overlays/python/setup.sh +50 -23
- package/overlays/python/verify.sh +29 -1
- package/overlays/spec-kit/README.md +181 -0
- package/overlays/spec-kit/devcontainer.patch.json +6 -0
- package/overlays/spec-kit/overlay.yml +19 -0
- package/overlays/spec-kit/setup.sh +45 -0
- package/overlays/spec-kit/verify.sh +33 -0
- package/overlays/windsurf-cli/README.md +69 -0
- package/overlays/windsurf-cli/devcontainer.patch.json +3 -0
- package/overlays/windsurf-cli/overlay.yml +15 -0
- package/overlays/windsurf-cli/setup.sh +21 -0
- package/overlays/windsurf-cli/verify.sh +21 -0
- package/package.json +1 -1
- package/tool/schema/config.schema.json +138 -9
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# spec-kit setup — install specify-cli for Spec-Driven Development
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
echo "📦 Installing prerequisites for spec-kit..."
|
|
7
|
+
|
|
8
|
+
# Ensure uv tool bin directory is always on PATH (uv puts shims here regardless
|
|
9
|
+
# of whether uv itself was pre-installed or freshly installed in this script)
|
|
10
|
+
export PATH="$HOME/.local/bin:$PATH"
|
|
11
|
+
|
|
12
|
+
# Ensure uv is available (fast Python package manager)
|
|
13
|
+
if ! command -v uv &>/dev/null; then
|
|
14
|
+
echo " Installing uv..."
|
|
15
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
16
|
+
# Re-source in case the installer wrote to a non-standard location
|
|
17
|
+
export PATH="$HOME/.cargo/bin:$HOME/.local/bin:$PATH"
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
echo "📦 Installing specify-cli..."
|
|
21
|
+
# Pin to a uv-managed Python (avoids broken system Python 3.13 on Debian trixie
|
|
22
|
+
# where stdlib modules like shutil/os can be missing due to Debian's split packages)
|
|
23
|
+
UV_PYTHON_VERSION="3.12"
|
|
24
|
+
echo " Ensuring uv-managed Python ${UV_PYTHON_VERSION} is available..."
|
|
25
|
+
uv python install "${UV_PYTHON_VERSION}"
|
|
26
|
+
|
|
27
|
+
# Install specify-cli using the uv-managed Python, not the system interpreter
|
|
28
|
+
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git \
|
|
29
|
+
--python "${UV_PYTHON_VERSION}"
|
|
30
|
+
|
|
31
|
+
# Verify — use the full path as a fallback in case the shim dir is not yet in PATH
|
|
32
|
+
SPECIFY_BIN="$(uv tool dir 2>/dev/null)/specify-cli/bin/specify"
|
|
33
|
+
if command -v specify &>/dev/null; then
|
|
34
|
+
echo "✓ specify-cli installed: $(specify --version 2>/dev/null || echo 'ok')"
|
|
35
|
+
elif [ -x "$SPECIFY_BIN" ]; then
|
|
36
|
+
echo "✓ specify-cli installed at $SPECIFY_BIN (add ~/.local/bin to PATH)"
|
|
37
|
+
else
|
|
38
|
+
echo "✗ specify-cli installation failed"
|
|
39
|
+
exit 1
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
echo "✓ spec-kit setup complete"
|
|
43
|
+
echo "ℹ️ Spec Kit: https://github.com/github/spec-kit"
|
|
44
|
+
echo "ℹ️ Usage: specify init <PROJECT_NAME> --ai <agent>"
|
|
45
|
+
echo "ℹ️ Agents: codex, claude, gemini, copilot, cursor-agent, windsurf, amp, ..."
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# spec-kit overlay verification script
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
# uv installs shims to ~/.local/bin; ensure it is on PATH
|
|
7
|
+
export PATH="$HOME/.local/bin:$PATH"
|
|
8
|
+
|
|
9
|
+
echo "🔍 Verifying spec-kit overlay setup..."
|
|
10
|
+
|
|
11
|
+
# Check uv is available
|
|
12
|
+
if ! command -v uv &>/dev/null; then
|
|
13
|
+
echo "✗ uv not found"
|
|
14
|
+
exit 1
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
echo "✓ uv is installed: $(uv --version 2>/dev/null || echo 'installed')"
|
|
18
|
+
|
|
19
|
+
# Check specify CLI is available
|
|
20
|
+
if ! command -v specify &>/dev/null; then
|
|
21
|
+
echo "✗ specify not found"
|
|
22
|
+
exit 1
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
echo "✓ specify is installed: $(specify --version 2>/dev/null || echo 'installed')"
|
|
26
|
+
|
|
27
|
+
echo ""
|
|
28
|
+
echo "✅ spec-kit overlay verification complete!"
|
|
29
|
+
echo ""
|
|
30
|
+
echo "💡 Tips:"
|
|
31
|
+
echo " - Run 'specify --help' to see available commands"
|
|
32
|
+
echo " - Initialize a project: specify init <PROJECT_NAME> --ai <agent>"
|
|
33
|
+
echo " - Supported agents: codex, claude, gemini, copilot, cursor-agent, windsurf, amp, ..."
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Windsurf CLI Overlay
|
|
2
|
+
|
|
3
|
+
Adds the Codeium Windsurf CLI (`windsurf`) for AI-powered development assistance in the terminal.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Windsurf CLI** — Codeium's AI coding agent for terminal use
|
|
8
|
+
- **Cascade flows** — AI-driven multi-step development tasks
|
|
9
|
+
|
|
10
|
+
## What is Windsurf CLI?
|
|
11
|
+
|
|
12
|
+
Windsurf CLI is Codeium's headless agentic coding assistant that brings the power of the Windsurf IDE agent to the command line:
|
|
13
|
+
|
|
14
|
+
- **Agentic coding** — Autonomous multi-step task execution
|
|
15
|
+
- **Codebase understanding** — Deep indexing of your repository
|
|
16
|
+
- **Code generation** — Create features from natural language
|
|
17
|
+
- **Refactoring** — Improve existing code with AI guidance
|
|
18
|
+
|
|
19
|
+
## How It Works
|
|
20
|
+
|
|
21
|
+
This overlay installs the Windsurf CLI globally via npm, making the `windsurf` command available in your devcontainer.
|
|
22
|
+
|
|
23
|
+
## Common Commands
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Start an interactive session
|
|
27
|
+
windsurf
|
|
28
|
+
|
|
29
|
+
# Check version
|
|
30
|
+
windsurf --version
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Use Cases
|
|
34
|
+
|
|
35
|
+
- **Feature implementation** — Describe what you want, Windsurf implements it
|
|
36
|
+
- **Code exploration** — Understand large or complex codebases
|
|
37
|
+
- **Spec-Driven Development** — Works with `spec-kit` overlay via `specify init --ai windsurf`
|
|
38
|
+
|
|
39
|
+
**Integrates well with:**
|
|
40
|
+
|
|
41
|
+
- `spec-kit` — Use Windsurf with the SDD workflow
|
|
42
|
+
- `nodejs` — Required for installation
|
|
43
|
+
- `git-helpers` — Git integration for AI-generated code
|
|
44
|
+
|
|
45
|
+
## Configuration
|
|
46
|
+
|
|
47
|
+
Authenticate with your Codeium account:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
windsurf auth
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Verification
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
bash .devcontainer/scripts/verify-windsurf-cli.sh
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## References
|
|
60
|
+
|
|
61
|
+
- [Windsurf Documentation](https://docs.codeium.com/windsurf/getting-started)
|
|
62
|
+
- [Codeium Platform](https://codeium.com/)
|
|
63
|
+
|
|
64
|
+
**Related Overlays:**
|
|
65
|
+
|
|
66
|
+
- `spec-kit` — Spec-Driven Development with Windsurf as the AI agent
|
|
67
|
+
- `codex` — OpenAI Codex CLI (alternative AI assistant)
|
|
68
|
+
- `claude-code` — Anthropic Claude Code (alternative AI assistant)
|
|
69
|
+
- `nodejs` — Required for npm-based installation
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
id: windsurf-cli
|
|
2
|
+
name: Windsurf CLI
|
|
3
|
+
description: Codeium Windsurf CLI for AI-powered development assistance
|
|
4
|
+
category: dev
|
|
5
|
+
supports: []
|
|
6
|
+
requires:
|
|
7
|
+
- nodejs
|
|
8
|
+
suggests: []
|
|
9
|
+
conflicts: []
|
|
10
|
+
tags:
|
|
11
|
+
- dev
|
|
12
|
+
- ai
|
|
13
|
+
- windsurf
|
|
14
|
+
- codeium
|
|
15
|
+
ports: []
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# windsurf-cli setup script - Install Codeium Windsurf CLI
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
echo "📦 Installing Codeium Windsurf CLI..."
|
|
7
|
+
|
|
8
|
+
# Install windsurf globally via npm
|
|
9
|
+
npm install -g @codeium/windsurf-cli
|
|
10
|
+
|
|
11
|
+
# Verify installation
|
|
12
|
+
if command -v windsurf &>/dev/null; then
|
|
13
|
+
echo "✓ Windsurf CLI installed successfully: $(windsurf --version 2>/dev/null || echo 'installed')"
|
|
14
|
+
else
|
|
15
|
+
echo "✗ Windsurf CLI installation failed"
|
|
16
|
+
exit 1
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
echo "✓ windsurf-cli setup complete"
|
|
20
|
+
echo "ℹ️ Codeium Windsurf: https://docs.codeium.com/windsurf/getting-started"
|
|
21
|
+
echo "ℹ️ Run 'windsurf --help' to get started"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# windsurf-cli overlay verification script
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
echo "🔍 Verifying windsurf-cli overlay setup..."
|
|
7
|
+
|
|
8
|
+
# Check if windsurf CLI is installed
|
|
9
|
+
if ! command -v windsurf &>/dev/null; then
|
|
10
|
+
echo "✗ windsurf CLI is not installed or not in PATH"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
echo "✓ windsurf CLI is installed: $(windsurf --version 2>/dev/null || echo 'installed')"
|
|
15
|
+
|
|
16
|
+
echo ""
|
|
17
|
+
echo "✅ windsurf-cli overlay verification complete!"
|
|
18
|
+
echo ""
|
|
19
|
+
echo "💡 Tips:"
|
|
20
|
+
echo " - Run 'windsurf --help' to see available commands"
|
|
21
|
+
echo " - Authenticate with your Codeium account"
|
package/package.json
CHANGED
|
@@ -11,28 +11,67 @@
|
|
|
11
11
|
},
|
|
12
12
|
"baseImage": {
|
|
13
13
|
"type": "string",
|
|
14
|
-
"enum": ["bookworm", "trixie", "custom"],
|
|
14
|
+
"enum": ["bookworm", "trixie", "alpine", "ubuntu", "custom"],
|
|
15
15
|
"default": "bookworm",
|
|
16
|
-
"description": "Base
|
|
16
|
+
"description": "Base image / Linux distro variant (or 'custom' for a user-defined image)"
|
|
17
17
|
},
|
|
18
18
|
"customImage": {
|
|
19
19
|
"type": "string",
|
|
20
20
|
"description": "Custom base image (only when baseImage is 'custom')"
|
|
21
21
|
},
|
|
22
|
+
"containerName": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Container/project name to write into devcontainer.json"
|
|
25
|
+
},
|
|
26
|
+
"preset": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "Preset ID to expand during generation"
|
|
29
|
+
},
|
|
30
|
+
"presetChoices": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"additionalProperties": {
|
|
33
|
+
"type": "string"
|
|
34
|
+
},
|
|
35
|
+
"description": "Preset parameter choices keyed by parameter name"
|
|
36
|
+
},
|
|
22
37
|
"language": {
|
|
23
38
|
"type": "array",
|
|
24
39
|
"items": {
|
|
25
40
|
"type": "string",
|
|
26
|
-
"enum": [
|
|
41
|
+
"enum": [
|
|
42
|
+
"dotnet",
|
|
43
|
+
"nodejs",
|
|
44
|
+
"python",
|
|
45
|
+
"mkdocs",
|
|
46
|
+
"java",
|
|
47
|
+
"go",
|
|
48
|
+
"rust",
|
|
49
|
+
"bun",
|
|
50
|
+
"powershell"
|
|
51
|
+
]
|
|
27
52
|
},
|
|
28
53
|
"default": [],
|
|
29
54
|
"description": "Language/framework overlays"
|
|
30
55
|
},
|
|
31
56
|
"database": {
|
|
32
|
-
"type": "
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
57
|
+
"type": "array",
|
|
58
|
+
"items": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"enum": [
|
|
61
|
+
"postgres",
|
|
62
|
+
"redis",
|
|
63
|
+
"mongodb",
|
|
64
|
+
"mysql",
|
|
65
|
+
"sqlserver",
|
|
66
|
+
"sqlite",
|
|
67
|
+
"minio",
|
|
68
|
+
"rabbitmq",
|
|
69
|
+
"redpanda",
|
|
70
|
+
"nats"
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
"default": [],
|
|
74
|
+
"description": "Database overlays"
|
|
36
75
|
},
|
|
37
76
|
"playwright": {
|
|
38
77
|
"type": "boolean",
|
|
@@ -43,11 +82,38 @@
|
|
|
43
82
|
"type": "array",
|
|
44
83
|
"items": {
|
|
45
84
|
"type": "string",
|
|
46
|
-
"enum": ["azure-cli", "aws-cli", "kubectl-helm", "
|
|
85
|
+
"enum": ["azure-cli", "aws-cli", "gcloud", "kubectl-helm", "terraform", "pulumi"]
|
|
47
86
|
},
|
|
48
87
|
"default": [],
|
|
49
88
|
"description": "Cloud/orchestration tools to include"
|
|
50
89
|
},
|
|
90
|
+
"devTools": {
|
|
91
|
+
"type": "array",
|
|
92
|
+
"items": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"enum": [
|
|
95
|
+
"docker-in-docker",
|
|
96
|
+
"docker-sock",
|
|
97
|
+
"codex",
|
|
98
|
+
"playwright",
|
|
99
|
+
"git-helpers",
|
|
100
|
+
"pre-commit",
|
|
101
|
+
"commitlint",
|
|
102
|
+
"just",
|
|
103
|
+
"direnv",
|
|
104
|
+
"modern-cli-tools",
|
|
105
|
+
"ngrok",
|
|
106
|
+
"spec-kit",
|
|
107
|
+
"claude-code",
|
|
108
|
+
"gemini-cli",
|
|
109
|
+
"amp",
|
|
110
|
+
"windsurf-cli",
|
|
111
|
+
"opencode"
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
"default": [],
|
|
115
|
+
"description": "Developer tooling overlays"
|
|
116
|
+
},
|
|
51
117
|
"observability": {
|
|
52
118
|
"type": "array",
|
|
53
119
|
"items": {
|
|
@@ -59,13 +125,76 @@
|
|
|
59
125
|
},
|
|
60
126
|
"portOffset": {
|
|
61
127
|
"type": "number",
|
|
128
|
+
"minimum": 0,
|
|
62
129
|
"description": "Port offset for running multiple instances"
|
|
63
130
|
},
|
|
64
131
|
"outputPath": {
|
|
65
132
|
"type": "string",
|
|
66
133
|
"default": "./.devcontainer",
|
|
67
134
|
"description": "Where to write the devcontainer configuration"
|
|
135
|
+
},
|
|
136
|
+
"target": {
|
|
137
|
+
"type": "string",
|
|
138
|
+
"enum": ["local", "codespaces", "gitpod", "devpod"],
|
|
139
|
+
"description": "Target environment for compatibility checks"
|
|
140
|
+
},
|
|
141
|
+
"minimal": {
|
|
142
|
+
"type": "boolean",
|
|
143
|
+
"description": "Exclude optional overlays marked as minimal"
|
|
144
|
+
},
|
|
145
|
+
"editor": {
|
|
146
|
+
"type": "string",
|
|
147
|
+
"enum": ["vscode", "jetbrains", "none"],
|
|
148
|
+
"description": "Editor customization profile"
|
|
149
|
+
},
|
|
150
|
+
"customizations": {
|
|
151
|
+
"type": "object",
|
|
152
|
+
"properties": {
|
|
153
|
+
"devcontainerPatch": {
|
|
154
|
+
"type": "object",
|
|
155
|
+
"description": "Additional devcontainer.json content merged during generation"
|
|
156
|
+
},
|
|
157
|
+
"dockerComposePatch": {
|
|
158
|
+
"type": "object",
|
|
159
|
+
"description": "Additional docker-compose content merged during generation"
|
|
160
|
+
},
|
|
161
|
+
"environment": {
|
|
162
|
+
"type": "object",
|
|
163
|
+
"additionalProperties": {
|
|
164
|
+
"type": "string"
|
|
165
|
+
},
|
|
166
|
+
"description": "Environment variables written to custom/environment.env"
|
|
167
|
+
},
|
|
168
|
+
"scripts": {
|
|
169
|
+
"type": "object",
|
|
170
|
+
"properties": {
|
|
171
|
+
"postCreate": {
|
|
172
|
+
"type": "array",
|
|
173
|
+
"items": { "type": "string" }
|
|
174
|
+
},
|
|
175
|
+
"postStart": {
|
|
176
|
+
"type": "array",
|
|
177
|
+
"items": { "type": "string" }
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"additionalProperties": false
|
|
181
|
+
},
|
|
182
|
+
"files": {
|
|
183
|
+
"type": "array",
|
|
184
|
+
"items": {
|
|
185
|
+
"type": "object",
|
|
186
|
+
"properties": {
|
|
187
|
+
"path": { "type": "string" },
|
|
188
|
+
"content": { "type": "string" }
|
|
189
|
+
},
|
|
190
|
+
"required": ["path", "content"],
|
|
191
|
+
"additionalProperties": false
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
"additionalProperties": false
|
|
68
196
|
}
|
|
69
197
|
},
|
|
70
|
-
"required": [
|
|
198
|
+
"required": [],
|
|
199
|
+
"additionalProperties": false
|
|
71
200
|
}
|