container-superposition 0.1.4 → 0.1.6
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 +74 -1370
- package/dist/scripts/init.js +350 -185
- package/dist/scripts/init.js.map +1 -1
- package/dist/tool/commands/adopt.d.ts +63 -0
- package/dist/tool/commands/adopt.d.ts.map +1 -0
- package/dist/tool/commands/adopt.js +1104 -0
- package/dist/tool/commands/adopt.js.map +1 -0
- 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 +2 -0
- package/dist/tool/commands/plan.d.ts.map +1 -1
- package/dist/tool/commands/plan.js +262 -42
- package/dist/tool/commands/plan.js.map +1 -1
- package/dist/tool/schema/project-config.d.ts +17 -0
- package/dist/tool/schema/project-config.d.ts.map +1 -0
- package/dist/tool/schema/project-config.js +441 -0
- package/dist/tool/schema/project-config.js.map +1 -0
- package/dist/tool/schema/types.d.ts +39 -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/docs/README.md +12 -2
- package/docs/adopt.md +202 -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 +70 -0
- 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 +213 -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 +136 -0
- package/docs/specs/002-superposition-config-file/tasks.md +215 -0
- package/docs/team-workflow.md +33 -1
- package/docs/workflows.md +139 -0
- package/features/cross-distro-packages/README.md +18 -0
- package/features/cross-distro-packages/devcontainer-feature.json +3 -3
- package/features/cross-distro-packages/install.sh +49 -7
- package/overlays/.presets/sdd.yml +84 -0
- 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/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/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/pandoc/README.md +279 -0
- package/overlays/pandoc/devcontainer.patch.json +14 -0
- package/overlays/pandoc/overlay.yml +19 -0
- package/overlays/pandoc/setup.sh +94 -0
- package/overlays/pandoc/verify.sh +13 -0
- 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,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
|
}
|