claudepod 1.1.2 → 1.2.2
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/.devcontainer/.env +18 -0
- package/.devcontainer/CHANGELOG.md +68 -0
- package/.devcontainer/CLAUDE.md +100 -0
- package/.devcontainer/README.md +220 -0
- package/.devcontainer/config/main-system-prompt.md +118 -0
- package/.devcontainer/config/settings.json +41 -0
- package/.devcontainer/devcontainer.json +71 -113
- package/.devcontainer/features/README.md +113 -0
- package/.devcontainer/features/ast-grep/README.md +24 -0
- package/.devcontainer/features/ast-grep/devcontainer-feature.json +24 -0
- package/.devcontainer/features/ast-grep/install.sh +51 -0
- package/.devcontainer/features/ccstatusline/README.md +296 -0
- package/.devcontainer/features/ccstatusline/devcontainer-feature.json +19 -0
- package/.devcontainer/features/ccstatusline/install.sh +290 -0
- package/.devcontainer/features/ccusage/README.md +205 -0
- package/.devcontainer/features/ccusage/devcontainer-feature.json +38 -0
- package/.devcontainer/features/ccusage/install.sh +132 -0
- package/.devcontainer/features/claude-code/README.md +498 -0
- package/.devcontainer/features/claude-code/config/settings.json +36 -0
- package/.devcontainer/features/claude-code/config/system-prompt.md +118 -0
- package/.devcontainer/features/claude-code/config/world-building-sp.md +1432 -0
- package/.devcontainer/features/claude-code/devcontainer-feature.json +42 -0
- package/.devcontainer/features/claude-code/install.sh +466 -0
- package/.devcontainer/features/claude-monitor/README.md +74 -0
- package/.devcontainer/features/claude-monitor/devcontainer-feature.json +38 -0
- package/.devcontainer/features/claude-monitor/install.sh +99 -0
- package/.devcontainer/features/lsp-servers/README.md +85 -0
- package/.devcontainer/features/lsp-servers/devcontainer-feature.json +34 -0
- package/.devcontainer/features/lsp-servers/install.sh +92 -0
- package/.devcontainer/features/mcp-qdrant/CHANGES.md +399 -0
- package/.devcontainer/features/mcp-qdrant/README.md +474 -0
- package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +57 -0
- package/.devcontainer/features/mcp-qdrant/install.sh +295 -0
- package/.devcontainer/features/mcp-qdrant/poststart-hook.sh +129 -0
- package/.devcontainer/features/mcp-reasoner/README.md +177 -0
- package/.devcontainer/features/mcp-reasoner/devcontainer-feature.json +20 -0
- package/.devcontainer/features/mcp-reasoner/install.sh +177 -0
- package/.devcontainer/features/mcp-reasoner/poststart-hook.sh +67 -0
- package/.devcontainer/features/splitrail/README.md +140 -0
- package/.devcontainer/features/splitrail/devcontainer-feature.json +34 -0
- package/.devcontainer/features/splitrail/install.sh +129 -0
- package/.devcontainer/features/tree-sitter/README.md +138 -0
- package/.devcontainer/features/tree-sitter/devcontainer-feature.json +52 -0
- package/.devcontainer/features/tree-sitter/install.sh +173 -0
- package/.devcontainer/scripts/setup-aliases.sh +52 -0
- package/.devcontainer/scripts/setup-config.sh +28 -0
- package/.devcontainer/scripts/setup-irie-claude.sh +32 -0
- package/.devcontainer/scripts/setup-lsp.sh +20 -0
- package/.devcontainer/scripts/setup-plugins.sh +31 -0
- package/.devcontainer/scripts/setup.sh +60 -0
- package/README.md +153 -187
- package/package.json +6 -10
- package/setup.js +2 -2
- package/.devcontainer/config/claude/mcp.json +0 -76
- package/.devcontainer/config/claude/mcp.json.template +0 -117
- package/.devcontainer/config/claude/output-styles/strict-development.md +0 -158
- package/.devcontainer/config/claude/settings.json +0 -10
- package/.devcontainer/config/claude/system-prompt.md +0 -3
- package/.devcontainer/config/searxng/ods_config.json +0 -22
- package/.devcontainer/config/searxng/searxng_env_template +0 -71
- package/.devcontainer/config/serena/serena_config.yml +0 -72
- package/.devcontainer/config/taskmaster/config.json +0 -37
- package/.devcontainer/ods_config.json +0 -21
- package/.devcontainer/post-create.sh +0 -1077
- package/.devcontainer/post-start.sh +0 -551
- package/.devcontainer/sanitize-system-prompt.sh +0 -31
- package/.devcontainer/scripts/config/claude-core.sh +0 -210
- package/.devcontainer/scripts/config/searxng.sh +0 -411
- package/.devcontainer/scripts/config/serena.sh +0 -47
- package/.devcontainer/scripts/config/taskmaster.sh +0 -41
- package/.devcontainer/scripts/generate-mcp-config.js +0 -205
- package/.devcontainer/scripts/install/claude-code.sh +0 -112
- package/.devcontainer/scripts/shell/zsh-config.sh +0 -271
- package/.devcontainer/scripts/utils.sh +0 -44
- package/.devcontainer/setup-zsh.sh +0 -234
|
@@ -1,113 +1,71 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "ClaudePod
|
|
3
|
-
"image": "mcr.microsoft.com/
|
|
4
|
-
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"ghcr.io/devcontainers/features/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
"customizations": {
|
|
73
|
-
"vscode": {
|
|
74
|
-
"extensions": [
|
|
75
|
-
"ms-vscode-remote.remote-containers",
|
|
76
|
-
"ms-vscode-remote.remote-ssh",
|
|
77
|
-
"ms-vscode-remote.remote-ssh-edit",
|
|
78
|
-
"ms-vscode.remote-explorer",
|
|
79
|
-
"ms-vscode-remote.vscode-remote-extensionpack",
|
|
80
|
-
"ms-python.python",
|
|
81
|
-
"ms-python.vscode-pylance",
|
|
82
|
-
"dbaeumer.vscode-eslint",
|
|
83
|
-
"esbenp.prettier-vscode",
|
|
84
|
-
"GitHub.vscode-pull-request-github",
|
|
85
|
-
"eamodio.gitlens"
|
|
86
|
-
],
|
|
87
|
-
"settings": {
|
|
88
|
-
"remote.SSH.defaultExtensions": [
|
|
89
|
-
"ms-vscode-remote.remote-ssh-edit"
|
|
90
|
-
],
|
|
91
|
-
"terminal.integrated.defaultProfile.linux": "zsh",
|
|
92
|
-
"terminal.integrated.profiles.linux": {
|
|
93
|
-
"zsh": {
|
|
94
|
-
"path": "/usr/bin/zsh",
|
|
95
|
-
"args": ["-l"]
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
"terminal.integrated.shell.linux": "/usr/bin/zsh",
|
|
99
|
-
"terminal.integrated.shellArgs.linux": ["-l"],
|
|
100
|
-
"terminal.integrated.fontFamily": "MesloLGS NF, 'Courier New', monospace",
|
|
101
|
-
"terminal.integrated.fontSize": 14
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
|
|
106
|
-
"remoteUser": "node",
|
|
107
|
-
"containerUser": "node",
|
|
108
|
-
|
|
109
|
-
"workspaceFolder": "/workspace",
|
|
110
|
-
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached",
|
|
111
|
-
|
|
112
|
-
"postAttachCommand": "sudo chown -R node:node /workspace"
|
|
113
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "ClaudePod",
|
|
3
|
+
"image": "mcr.microsoft.com/devcontainers/python:3.14",
|
|
4
|
+
|
|
5
|
+
"workspaceFolder": "/workspaces",
|
|
6
|
+
"workspaceMount": "source=${localWorkspaceFolder},target=/workspaces,type=bind",
|
|
7
|
+
|
|
8
|
+
"remoteEnv": {
|
|
9
|
+
"WORKSPACE_ROOT": "/workspaces",
|
|
10
|
+
"CLAUDE_CONFIG_DIR": "/workspaces/.claude",
|
|
11
|
+
"GH_CONFIG_DIR": "/workspaces/.gh"
|
|
12
|
+
},
|
|
13
|
+
|
|
14
|
+
"overrideFeatureInstallOrder": [
|
|
15
|
+
"ghcr.io/devcontainers/features/node",
|
|
16
|
+
"ghcr.io/devcontainers/features/github-cli",
|
|
17
|
+
"ghcr.io/devcontainers/features/docker-outside-of-docker",
|
|
18
|
+
"ghcr.io/devcontainers-extra/features/uv",
|
|
19
|
+
"ghcr.io/anthropics/devcontainer-features/claude-code",
|
|
20
|
+
"./features/claude-monitor",
|
|
21
|
+
"./features/ccusage",
|
|
22
|
+
"./features/ccstatusline",
|
|
23
|
+
"./features/ast-grep",
|
|
24
|
+
"./features/tree-sitter",
|
|
25
|
+
"./features/lsp-servers"
|
|
26
|
+
],
|
|
27
|
+
|
|
28
|
+
"features": {
|
|
29
|
+
"ghcr.io/devcontainers/features/node:1": {
|
|
30
|
+
"version": "lts",
|
|
31
|
+
"nodeGypDependencies": true
|
|
32
|
+
},
|
|
33
|
+
"ghcr.io/devcontainers/features/github-cli:1": {},
|
|
34
|
+
"ghcr.io/devcontainers/features/docker-outside-of-docker:1":
|
|
35
|
+
{
|
|
36
|
+
"moby": false
|
|
37
|
+
},
|
|
38
|
+
"ghcr.io/devcontainers-extra/features/uv:1": {},
|
|
39
|
+
"ghcr.io/anthropics/devcontainer-features/claude-code:1": {},
|
|
40
|
+
"./features/ccusage": {
|
|
41
|
+
"version": "latest",
|
|
42
|
+
"shells": "both",
|
|
43
|
+
"username": "automatic"
|
|
44
|
+
},
|
|
45
|
+
"./features/claude-monitor": {
|
|
46
|
+
"version": "latest",
|
|
47
|
+
"installer": "uv",
|
|
48
|
+
"username": "automatic"
|
|
49
|
+
},
|
|
50
|
+
"./features/ccstatusline": {
|
|
51
|
+
"username": "automatic"
|
|
52
|
+
},
|
|
53
|
+
"./features/ast-grep": {},
|
|
54
|
+
"./features/tree-sitter": {},
|
|
55
|
+
"./features/lsp-servers": {}
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
"postStartCommand": "bash ${containerWorkspaceFolder}/.devcontainer/scripts/setup.sh",
|
|
59
|
+
|
|
60
|
+
"remoteUser": "vscode",
|
|
61
|
+
"containerUser": "vscode",
|
|
62
|
+
|
|
63
|
+
"customizations": {
|
|
64
|
+
"vscode": {
|
|
65
|
+
"settings": {
|
|
66
|
+
"terminal.integrated.defaultProfile.linux": "bash"
|
|
67
|
+
},
|
|
68
|
+
"extensions": []
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# AgentPod DevContainer Features
|
|
2
|
+
|
|
3
|
+
This directory contains DevContainer Features for AI coding agent environments. These features follow the [DevContainer Features specification](https://containers.dev/implementors/features/) and can be published to OCI registries for distribution.
|
|
4
|
+
|
|
5
|
+
## Available Features
|
|
6
|
+
|
|
7
|
+
### mcp-qdrant
|
|
8
|
+
Vector database integration via Qdrant MCP server. Enables semantic search, embeddings management, and RAG workflows.
|
|
9
|
+
|
|
10
|
+
**Status**: ✅ Complete
|
|
11
|
+
**Documentation**: [mcp-qdrant/README.md](./mcp-qdrant/README.md)
|
|
12
|
+
|
|
13
|
+
## Feature Structure
|
|
14
|
+
|
|
15
|
+
Each feature follows this structure:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
feature-name/
|
|
19
|
+
├── devcontainer-feature.json # Feature metadata and options
|
|
20
|
+
├── install.sh # Installation script (executable)
|
|
21
|
+
└── README.md # Feature documentation
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Development Workflow
|
|
25
|
+
|
|
26
|
+
### Creating a New Feature
|
|
27
|
+
|
|
28
|
+
1. **Create directory**: `mkdir features/feature-name`
|
|
29
|
+
2. **Add metadata**: Create `devcontainer-feature.json`
|
|
30
|
+
3. **Write installer**: Create `install.sh` (make executable)
|
|
31
|
+
4. **Document**: Create `README.md`
|
|
32
|
+
5. **Test locally**: Reference in devcontainer.json
|
|
33
|
+
|
|
34
|
+
### Local Testing
|
|
35
|
+
|
|
36
|
+
To test a feature locally before publishing:
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"features": {
|
|
41
|
+
"./features/feature-name": {
|
|
42
|
+
"option1": "value1"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Publishing Features
|
|
49
|
+
|
|
50
|
+
Features will be published to GitHub Container Registry (GHCR):
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
ghcr.io/yourorg/agentpod-features/feature-name:1
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Publishing workflow** (future):
|
|
57
|
+
- Push to main branch
|
|
58
|
+
- GitHub Actions builds and publishes
|
|
59
|
+
- Tags create versioned releases
|
|
60
|
+
|
|
61
|
+
## Feature Guidelines
|
|
62
|
+
|
|
63
|
+
### Granularity
|
|
64
|
+
- **One feature = One tool/service**
|
|
65
|
+
- Bundle only if tools are always used together
|
|
66
|
+
- See [AGENTPOD_ARCHITECTURE.md](../../AGENTPOD_ARCHITECTURE.md) for guidance
|
|
67
|
+
|
|
68
|
+
### Options
|
|
69
|
+
- Use clear, descriptive option names
|
|
70
|
+
- Provide sensible defaults
|
|
71
|
+
- Support environment variable substitution: `"${env:VAR}"`
|
|
72
|
+
- Document all options in README
|
|
73
|
+
|
|
74
|
+
### Installation
|
|
75
|
+
- Must be idempotent (safe to run multiple times)
|
|
76
|
+
- Check if already installed before installing
|
|
77
|
+
- Use appropriate user (not always root)
|
|
78
|
+
- Clean up on failure
|
|
79
|
+
|
|
80
|
+
### Configuration
|
|
81
|
+
- Generate necessary config files
|
|
82
|
+
- Provide helper scripts for manual setup
|
|
83
|
+
- Print clear installation summary
|
|
84
|
+
- Show next steps to user
|
|
85
|
+
|
|
86
|
+
## Migration from Modules
|
|
87
|
+
|
|
88
|
+
ClaudePod modules are being converted to DevContainer Features:
|
|
89
|
+
|
|
90
|
+
| Old Module | New Feature | Status |
|
|
91
|
+
|-----------|-------------|---------|
|
|
92
|
+
| mcp_qdrant | mcp-qdrant | ✅ Complete |
|
|
93
|
+
| mcp_browser | mcp-browser | 🔜 Planned |
|
|
94
|
+
| mcp_sourcerer | mcp-sourcerer | 🔜 Planned |
|
|
95
|
+
| mcp_reasoner | mcp-reasoner | 🔜 Planned |
|
|
96
|
+
| mcp_obsidian | mcp-obsidian | 🔜 Planned |
|
|
97
|
+
| mcp_code_runner | mcp-code-runner | 🔜 Planned |
|
|
98
|
+
|
|
99
|
+
## Resources
|
|
100
|
+
|
|
101
|
+
- [DevContainer Features Specification](https://containers.dev/implementors/features/)
|
|
102
|
+
- [Feature Authoring Guide](https://containers.dev/guide/author-a-feature)
|
|
103
|
+
- [Feature Best Practices](https://containers.dev/guide/feature-authoring-best-practices)
|
|
104
|
+
- [AgentPod Architecture](../../AGENTPOD_ARCHITECTURE.md)
|
|
105
|
+
|
|
106
|
+
## Contributing
|
|
107
|
+
|
|
108
|
+
Features are part of the AgentPod project. See main repository for contribution guidelines.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
**Status**: Active Development
|
|
113
|
+
**Last Updated**: 2025-11-11
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# ast-grep (Feature)
|
|
2
|
+
|
|
3
|
+
Installs [ast-grep](https://ast-grep.github.io/) CLI via npm for structural code search, lint, and rewriting using AST matching.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"features": {
|
|
10
|
+
"./features/ast-grep": {}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Options
|
|
16
|
+
|
|
17
|
+
| Option | Type | Default | Description |
|
|
18
|
+
|--------|------|---------|-------------|
|
|
19
|
+
| `version` | string | `latest` | @ast-grep/cli npm package version |
|
|
20
|
+
| `username` | string | `automatic` | Container user to install for |
|
|
21
|
+
|
|
22
|
+
## Dependencies
|
|
23
|
+
|
|
24
|
+
Requires Node.js: `ghcr.io/devcontainers/features/node:1`
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "ast-grep",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"name": "ast-grep",
|
|
5
|
+
"description": "Installs ast-grep CLI for structural code search, lint, and rewriting using AST matching",
|
|
6
|
+
"maintainer": "AnExiledDev",
|
|
7
|
+
"documentationURL": "https://ast-grep.github.io/",
|
|
8
|
+
"options": {
|
|
9
|
+
"version": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "@ast-grep/cli npm package version (e.g., 'latest', '0.31.1')",
|
|
12
|
+
"default": "latest"
|
|
13
|
+
},
|
|
14
|
+
"username": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Container user to install for",
|
|
17
|
+
"default": "automatic"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"installsAfter": [
|
|
21
|
+
"ghcr.io/devcontainers/features/common-utils:2",
|
|
22
|
+
"ghcr.io/devcontainers/features/node:1"
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
VERSION="${VERSION:-latest}"
|
|
5
|
+
USERNAME="${USERNAME:-automatic}"
|
|
6
|
+
|
|
7
|
+
echo "[ast-grep] Starting installation..."
|
|
8
|
+
echo "[ast-grep] Version: ${VERSION}"
|
|
9
|
+
|
|
10
|
+
# Source nvm if available
|
|
11
|
+
if [ -f /usr/local/share/nvm/nvm.sh ]; then
|
|
12
|
+
source /usr/local/share/nvm/nvm.sh
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
# Validate npm is available
|
|
16
|
+
if ! command -v npm &>/dev/null; then
|
|
17
|
+
echo "[ast-grep] ERROR: npm not available"
|
|
18
|
+
echo " Ensure node feature is installed first"
|
|
19
|
+
exit 1
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
# Detect user
|
|
23
|
+
if [ "${USERNAME}" = "auto" ] || [ "${USERNAME}" = "automatic" ]; then
|
|
24
|
+
if [ -n "${_REMOTE_USER:-}" ]; then
|
|
25
|
+
USERNAME="${_REMOTE_USER}"
|
|
26
|
+
elif getent passwd vscode >/dev/null 2>&1; then
|
|
27
|
+
USERNAME="vscode"
|
|
28
|
+
elif getent passwd node >/dev/null 2>&1; then
|
|
29
|
+
USERNAME="node"
|
|
30
|
+
elif getent passwd codespace >/dev/null 2>&1; then
|
|
31
|
+
USERNAME="codespace"
|
|
32
|
+
else
|
|
33
|
+
USERNAME="root"
|
|
34
|
+
fi
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
echo "[ast-grep] Installing for user: ${USERNAME}"
|
|
38
|
+
|
|
39
|
+
# Install via npm
|
|
40
|
+
if [ "${VERSION}" = "latest" ]; then
|
|
41
|
+
NPM_PACKAGE="@ast-grep/cli"
|
|
42
|
+
else
|
|
43
|
+
NPM_PACKAGE="@ast-grep/cli@${VERSION}"
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
npm install -g "${NPM_PACKAGE}" 2>/dev/null || {
|
|
47
|
+
echo "[ast-grep] WARNING: Global install failed, trying user install"
|
|
48
|
+
su - "${USERNAME}" -c "npm install -g ${NPM_PACKAGE}" 2>/dev/null || true
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
echo "[ast-grep] Installed: $(ast-grep --version 2>/dev/null || echo 'unknown')"
|