codeforge-dev 1.4.0

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 (131) hide show
  1. package/.devcontainer/.env +22 -0
  2. package/.devcontainer/CHANGELOG.md +197 -0
  3. package/.devcontainer/CLAUDE.md +117 -0
  4. package/.devcontainer/README.md +222 -0
  5. package/.devcontainer/config/main-system-prompt.md +502 -0
  6. package/.devcontainer/config/settings.json +47 -0
  7. package/.devcontainer/devcontainer.json +94 -0
  8. package/.devcontainer/features/README.md +113 -0
  9. package/.devcontainer/features/agent-browser/README.md +65 -0
  10. package/.devcontainer/features/agent-browser/devcontainer-feature.json +23 -0
  11. package/.devcontainer/features/agent-browser/install.sh +79 -0
  12. package/.devcontainer/features/ast-grep/README.md +24 -0
  13. package/.devcontainer/features/ast-grep/devcontainer-feature.json +24 -0
  14. package/.devcontainer/features/ast-grep/install.sh +51 -0
  15. package/.devcontainer/features/ccstatusline/README.md +296 -0
  16. package/.devcontainer/features/ccstatusline/devcontainer-feature.json +19 -0
  17. package/.devcontainer/features/ccstatusline/install.sh +290 -0
  18. package/.devcontainer/features/ccusage/README.md +205 -0
  19. package/.devcontainer/features/ccusage/devcontainer-feature.json +38 -0
  20. package/.devcontainer/features/ccusage/install.sh +132 -0
  21. package/.devcontainer/features/claude-code/README.md +498 -0
  22. package/.devcontainer/features/claude-code/config/settings.json +36 -0
  23. package/.devcontainer/features/claude-code/config/system-prompt.md +118 -0
  24. package/.devcontainer/features/claude-code/config/world-building-sp.md +1432 -0
  25. package/.devcontainer/features/claude-code/devcontainer-feature.json +42 -0
  26. package/.devcontainer/features/claude-code/install.sh +466 -0
  27. package/.devcontainer/features/claude-monitor/README.md +74 -0
  28. package/.devcontainer/features/claude-monitor/devcontainer-feature.json +38 -0
  29. package/.devcontainer/features/claude-monitor/install.sh +99 -0
  30. package/.devcontainer/features/lsp-servers/README.md +85 -0
  31. package/.devcontainer/features/lsp-servers/devcontainer-feature.json +40 -0
  32. package/.devcontainer/features/lsp-servers/install.sh +116 -0
  33. package/.devcontainer/features/mcp-qdrant/CHANGES.md +399 -0
  34. package/.devcontainer/features/mcp-qdrant/README.md +474 -0
  35. package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +57 -0
  36. package/.devcontainer/features/mcp-qdrant/install.sh +295 -0
  37. package/.devcontainer/features/mcp-qdrant/poststart-hook.sh +129 -0
  38. package/.devcontainer/features/mcp-reasoner/README.md +177 -0
  39. package/.devcontainer/features/mcp-reasoner/devcontainer-feature.json +20 -0
  40. package/.devcontainer/features/mcp-reasoner/install.sh +177 -0
  41. package/.devcontainer/features/mcp-reasoner/poststart-hook.sh +67 -0
  42. package/.devcontainer/features/notify-hook/README.md +86 -0
  43. package/.devcontainer/features/notify-hook/devcontainer-feature.json +23 -0
  44. package/.devcontainer/features/notify-hook/install.sh +38 -0
  45. package/.devcontainer/features/splitrail/README.md +140 -0
  46. package/.devcontainer/features/splitrail/devcontainer-feature.json +34 -0
  47. package/.devcontainer/features/splitrail/install.sh +129 -0
  48. package/.devcontainer/features/tree-sitter/README.md +138 -0
  49. package/.devcontainer/features/tree-sitter/devcontainer-feature.json +52 -0
  50. package/.devcontainer/features/tree-sitter/install.sh +173 -0
  51. package/.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json +106 -0
  52. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/.claude-plugin/plugin.json +7 -0
  53. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/hooks/hooks.json +17 -0
  54. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/format-file.py +101 -0
  55. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/.claude-plugin/plugin.json +7 -0
  56. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/hooks/hooks.json +17 -0
  57. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/lint-file.py +137 -0
  58. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/.claude-plugin/plugin.json +8 -0
  59. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/claude-code-headless/SKILL.md +387 -0
  60. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/claude-code-headless/references/cli-flags-and-output.md +312 -0
  61. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/claude-code-headless/references/sdk-and-mcp.md +569 -0
  62. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker/SKILL.md +309 -0
  63. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker/references/compose-services.md +438 -0
  64. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker/references/dockerfile-patterns.md +340 -0
  65. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker-py/SKILL.md +412 -0
  66. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker-py/references/container-lifecycle.md +388 -0
  67. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker-py/references/resources-and-security.md +444 -0
  68. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/SKILL.md +344 -0
  69. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/references/middleware-and-lifespan.md +254 -0
  70. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/references/pydantic-models.md +245 -0
  71. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/references/routing-and-dependencies.md +255 -0
  72. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/references/sse-and-streaming.md +318 -0
  73. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/pydantic-ai/SKILL.md +345 -0
  74. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/pydantic-ai/references/agents-and-tools.md +271 -0
  75. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/pydantic-ai/references/models-and-streaming.md +422 -0
  76. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/skill-building/SKILL.md +220 -0
  77. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/skill-building/references/cross-vendor-principles.md +139 -0
  78. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/skill-building/references/patterns-and-antipatterns.md +376 -0
  79. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/skill-building/references/skill-authoring-patterns.md +356 -0
  80. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/SKILL.md +329 -0
  81. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/references/advanced-queries.md +314 -0
  82. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/references/javascript-patterns.md +323 -0
  83. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/references/python-patterns.md +354 -0
  84. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/references/schema-and-pragmas.md +326 -0
  85. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/SKILL.md +356 -0
  86. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/ai-sdk-svelte.md +128 -0
  87. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/component-patterns.md +332 -0
  88. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/layercake.md +203 -0
  89. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/migration-guide.md +350 -0
  90. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/runes-and-reactivity.md +328 -0
  91. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/spa-and-routing.md +262 -0
  92. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/svelte-dnd-action.md +181 -0
  93. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/testing/SKILL.md +414 -0
  94. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/testing/references/fastapi-testing.md +411 -0
  95. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/testing/references/svelte-testing.md +538 -0
  96. package/.devcontainer/plugins/devs-marketplace/plugins/codeforge-lsp/.claude-plugin/plugin.json +7 -0
  97. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/.claude-plugin/plugin.json +7 -0
  98. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/hooks/hooks.json +17 -0
  99. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/block-dangerous.py +110 -0
  100. package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/.claude-plugin/plugin.json +7 -0
  101. package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/hooks/hooks.json +17 -0
  102. package/.devcontainer/plugins/devs-marketplace/plugins/planning-reminder/.claude-plugin/plugin.json +7 -0
  103. package/.devcontainer/plugins/devs-marketplace/plugins/planning-reminder/hooks/hooks.json +17 -0
  104. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/.claude-plugin/plugin.json +7 -0
  105. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/hooks/hooks.json +17 -0
  106. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected.py +108 -0
  107. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/commands/ticket/357/200/272create-pr.md +337 -0
  108. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/commands/ticket/357/200/272new.md +166 -0
  109. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/commands/ticket/357/200/272review-commit.md +290 -0
  110. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/commands/ticket/357/200/272work.md +257 -0
  111. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/plugin.json +8 -0
  112. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/system-prompt.md +184 -0
  113. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/.claude-plugin/plugin.json +6 -0
  114. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/config/planning-instructions.md +14 -0
  115. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/functional-conjuring-map.md +989 -0
  116. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/hooks/hooks.json +33 -0
  117. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/__pycache__/post-enhance-task.cpython-314.pyc +0 -0
  118. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/enhance-planning.py +71 -0
  119. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/enhancers/enhance-plan.sh +68 -0
  120. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/enhancers/enhance-task.sh +120 -0
  121. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/post-enhance-plan.py +133 -0
  122. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/post-enhance-task.py +253 -0
  123. package/.devcontainer/scripts/setup-aliases.sh +80 -0
  124. package/.devcontainer/scripts/setup-config.sh +28 -0
  125. package/.devcontainer/scripts/setup-irie-claude.sh +32 -0
  126. package/.devcontainer/scripts/setup-plugins.sh +80 -0
  127. package/.devcontainer/scripts/setup.sh +58 -0
  128. package/LICENSE.txt +674 -0
  129. package/README.md +267 -0
  130. package/package.json +44 -0
  131. package/setup.js +83 -0
package/README.md ADDED
@@ -0,0 +1,267 @@
1
+ # CodeForge DevContainer
2
+
3
+ [![License: GPL-3.0](https://img.shields.io/badge/License-GPL%203.0-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
4
+ [![npm version](https://img.shields.io/npm/v/codeforge.svg)](https://www.npmjs.com/package/codeforge)
5
+
6
+ A curated development environment optimized for AI-powered coding with Claude Code. CodeForge comes pre-configured with language servers, code intelligence tools, and official Anthropic plugins to streamline your development workflow.
7
+
8
+ ## Installation
9
+
10
+ Add CodeForge to any project:
11
+
12
+ ```bash
13
+ npx codeforge
14
+ ```
15
+
16
+ This copies the `.devcontainer/` directory to your project. Then open in VS Code and select "Reopen in Container".
17
+
18
+ ### Options
19
+
20
+ ```bash
21
+ npx codeforge --force # Overwrite existing .devcontainer directory
22
+ npx codeforge -f # Short form
23
+ ```
24
+
25
+ ### Alternative Install Methods
26
+
27
+ ```bash
28
+ # Install globally
29
+ npm install -g codeforge
30
+ codeforge
31
+
32
+ # Run specific version
33
+ npx codeforge@1.2.3
34
+ ```
35
+
36
+ ## Prerequisites
37
+
38
+ - **Docker Desktop** (or compatible container runtime like Podman)
39
+ - **VS Code** with the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers), or **GitHub Codespaces**
40
+ - **Claude Code authentication** - see [Authentication](#authentication) section
41
+
42
+ ## Quick Start
43
+
44
+ 1. **Open in Container**
45
+ - VS Code: Open the folder, then select "Reopen in Container" from the command palette
46
+ - Codespaces: Create a new codespace from this repository
47
+
48
+ 2. **Authenticate** (first time only)
49
+ ```bash
50
+ claude
51
+ ```
52
+ Follow the prompts to authenticate via browser or API key.
53
+
54
+ 3. **Start Claude Code**
55
+ ```bash
56
+ cc
57
+ ```
58
+
59
+ ## Authentication
60
+
61
+ Claude Code supports multiple authentication methods. On first run, you'll be prompted to choose:
62
+
63
+ ### Browser Login (Recommended)
64
+
65
+ ```bash
66
+ claude
67
+ ```
68
+
69
+ Select "Login with browser" and complete authentication in your browser. This uses your Claude.ai account.
70
+
71
+ ### API Key
72
+
73
+ For programmatic access or environments without browsers:
74
+
75
+ ```bash
76
+ export ANTHROPIC_API_KEY="sk-ant-..."
77
+ claude
78
+ ```
79
+
80
+ Get an API key from [console.anthropic.com](https://console.anthropic.com/).
81
+
82
+ ### Credential Persistence
83
+
84
+ Authentication credentials are stored in `/workspaces/.claude/` and persist across container rebuilds.
85
+
86
+ For more options, see the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code).
87
+
88
+ ## GitHub CLI Authentication
89
+
90
+ GitHub CLI (`gh`) is pre-installed for repository operations like pushing code, creating pull requests, and accessing private repositories.
91
+
92
+ ### Interactive Login (Recommended)
93
+
94
+ ```bash
95
+ gh auth login
96
+ ```
97
+
98
+ Follow the prompts:
99
+ 1. Select **GitHub.com** (or your enterprise server)
100
+ 2. Choose your preferred protocol: **HTTPS** (recommended) or **SSH**
101
+ 3. Authenticate via **browser** (easiest) or paste a personal access token
102
+
103
+ ### Token-Based Login
104
+
105
+ For automated setups or environments without browser access:
106
+
107
+ ```bash
108
+ # From a file
109
+ gh auth login --with-token < ~/github-token.txt
110
+
111
+ # From environment variable
112
+ echo "$GITHUB_TOKEN" | gh auth login --with-token
113
+ ```
114
+
115
+ Generate a token at [github.com/settings/tokens](https://github.com/settings/tokens) with appropriate scopes (typically `repo`, `read:org`).
116
+
117
+ ### Verifying Authentication
118
+
119
+ ```bash
120
+ gh auth status
121
+ ```
122
+
123
+ Expected output shows your authenticated account and token scopes.
124
+
125
+ ### Credential Persistence
126
+
127
+ GitHub CLI credentials are automatically persisted across container rebuilds. The container is configured to store credentials in `/workspaces/.gh/` (via `GH_CONFIG_DIR`), which is part of the bind-mounted workspace.
128
+
129
+ **You only need to authenticate once.** After running `gh auth login`, your credentials will survive container rebuilds and be available in future sessions.
130
+
131
+ ## Available Tools
132
+
133
+ ### Languages & Runtimes
134
+ | Tool | Description |
135
+ |------|-------------|
136
+ | Python 3.14 | Base language runtime |
137
+ | Node.js LTS | JavaScript runtime |
138
+ | TypeScript | Via Node.js |
139
+
140
+ ### Package Managers
141
+ | Tool | Description |
142
+ |------|-------------|
143
+ | `uv` | Fast Python package manager (pip alternative) |
144
+ | `npm` | Node.js package manager |
145
+ | `pip` / `pipx` | Python package installers |
146
+
147
+ ### Development Tools
148
+ | Tool | Description |
149
+ |------|-------------|
150
+ | `gh` | GitHub CLI for repository operations |
151
+ | `docker` | Container CLI (connects to host Docker) |
152
+ | `git` | Version control |
153
+ | `jq` | JSON processor |
154
+ | `curl` | HTTP client |
155
+ | `agent-browser` | Headless browser automation for AI agents |
156
+
157
+ ### Code Intelligence
158
+ | Tool | Description |
159
+ |------|-------------|
160
+ | tree-sitter | AST parsing for JavaScript, TypeScript, Python |
161
+ | ast-grep | Structural code search and rewriting |
162
+ | Pyright | Python language server |
163
+ | TypeScript LSP | TypeScript/JavaScript language server |
164
+
165
+ ### Claude Code Tools
166
+ | Tool | Description |
167
+ |------|-------------|
168
+ | `claude` | Claude Code CLI |
169
+ | `cc` | Wrapper with auto-configuration |
170
+ | `ccusage` | Token usage analyzer |
171
+ | `ccstatusline` | Status line for sessions |
172
+ | `claude-monitor` | Real-time usage tracking |
173
+
174
+ ## Using Claude Code
175
+
176
+ ### The `cc` Command
177
+
178
+ The `cc` command is a wrapper that:
179
+ - Creates a project-local `.claude/` directory if missing
180
+ - Copies default configuration files
181
+ - Launches Claude Code with the project's system prompt
182
+
183
+ ```bash
184
+ cc # Start Claude Code in current directory
185
+ cc "explain this" # Start with an initial prompt
186
+ ```
187
+
188
+ ### Direct CLI
189
+
190
+ For more control, use the `claude` command directly:
191
+
192
+ ```bash
193
+ claude # Basic invocation
194
+ claude --help # View all options
195
+ claude --resume # Resume previous session
196
+ ```
197
+
198
+ ## Configuration
199
+
200
+ ### Environment Variables
201
+
202
+ Edit `.devcontainer/.env` to customize behavior:
203
+
204
+ | Variable | Default | Description |
205
+ |----------|---------|-------------|
206
+ | `CLAUDE_CONFIG_DIR` | `/workspaces/.claude` | Claude configuration directory |
207
+ | `SETUP_CONFIG` | `true` | Copy config files during setup |
208
+ | `OVERWRITE_CONFIG` | `true` | Overwrite existing configs |
209
+ | `SETUP_ALIASES` | `true` | Add `cc` alias to shell |
210
+ | `SETUP_PLUGINS` | `true` | Install official plugins |
211
+
212
+ ### Claude Code Settings
213
+
214
+ Default settings are in `.devcontainer/config/settings.json`. These are copied to `/workspaces/.claude/settings.json` on first run.
215
+
216
+ Key defaults:
217
+ - **Model**: Claude Opus 4.5
218
+ - **Default mode**: Plan (prompts before executing)
219
+ - **Max output tokens**: 64,000
220
+
221
+ ### System Prompt
222
+
223
+ The default system prompt is in `.devcontainer/config/main-system-prompt.md`. Override it by creating a `.claude/system-prompt.md` in your project directory.
224
+
225
+ ## Custom Features
226
+
227
+ CodeForge includes several custom devcontainer features:
228
+
229
+ | Feature | Description |
230
+ |---------|-------------|
231
+ | `claude-monitor` | Real-time token usage monitoring with ML predictions |
232
+ | `ccusage` | Usage analytics CLI |
233
+ | `ccstatusline` | Compact powerline status display |
234
+ | `ast-grep` | Structural code search using AST patterns |
235
+ | `tree-sitter` | Parser with JS/TS/Python grammars |
236
+ | `lsp-servers` | Pyright and TypeScript language servers |
237
+ | `agent-browser` | Browser automation with accessibility snapshots and screenshots |
238
+
239
+ ## Essential Gotchas
240
+
241
+ - **Authentication required**: Run `claude` once to authenticate before using `cc`
242
+ - **Plan mode default**: The container starts in "plan" mode, which prompts for approval before making changes
243
+ - **Project-local config**: The `cc` command creates `.claude/` in your current directory for project-specific settings
244
+ - **GitHub auth persists**: Run `gh auth login` once; credentials survive container rebuilds (stored in `/workspaces/.gh/`)
245
+
246
+ ## Development
247
+
248
+ ### Testing Locally
249
+
250
+ ```bash
251
+ git clone https://github.com/AnExiledDev/CodeForge.git
252
+ cd CodeForge
253
+ npm test
254
+ ```
255
+
256
+ ### Publishing
257
+
258
+ ```bash
259
+ # Bump version in package.json, then:
260
+ npm publish
261
+ ```
262
+
263
+ ## Further Reading
264
+
265
+ - [Claude Code Documentation](https://docs.anthropic.com/en/docs/claude-code)
266
+ - [Dev Containers Specification](https://containers.dev/)
267
+ - [GitHub CLI Manual](https://cli.github.com/manual/)
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "codeforge-dev",
3
+ "version": "1.4.0",
4
+ "description": "Complete development container that sets up Claude Code with modular devcontainer features, modern dev tools, and persistent configurations. Drop it into any project and get a production-ready AI development environment in minutes.",
5
+ "main": "setup.js",
6
+ "bin": {
7
+ "codeforge": "setup.js"
8
+ },
9
+ "scripts": {
10
+ "test": "node test.js"
11
+ },
12
+ "keywords": [
13
+ "devcontainer",
14
+ "claude",
15
+ "claude-code",
16
+ "mcp",
17
+ "mcp-server",
18
+ "ai",
19
+ "development-environment",
20
+ "vscode",
21
+ "container",
22
+ "qdrant",
23
+ "reasoner",
24
+ "ai-development"
25
+ ],
26
+ "author": "AnExiledDev",
27
+ "license": "GPL-3.0",
28
+ "files": [
29
+ ".devcontainer/**/*",
30
+ "setup.js",
31
+ "README.md"
32
+ ],
33
+ "engines": {
34
+ "node": ">=14.0.0"
35
+ },
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "git+https://github.com/AnExiledDev/CodeForge.git"
39
+ },
40
+ "homepage": "https://github.com/AnExiledDev/CodeForge#readme",
41
+ "bugs": {
42
+ "url": "https://github.com/AnExiledDev/CodeForge/issues"
43
+ }
44
+ }
package/setup.js ADDED
@@ -0,0 +1,83 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+
6
+ function copyDirectory(src, dest) {
7
+ if (!fs.existsSync(dest)) {
8
+ fs.mkdirSync(dest, { recursive: true });
9
+ }
10
+
11
+ const entries = fs.readdirSync(src, { withFileTypes: true });
12
+
13
+ for (const entry of entries) {
14
+ const srcPath = path.join(src, entry.name);
15
+ const destPath = path.join(dest, entry.name);
16
+
17
+ if (entry.isDirectory()) {
18
+ copyDirectory(srcPath, destPath);
19
+ } else {
20
+ fs.copyFileSync(srcPath, destPath);
21
+ }
22
+ }
23
+ }
24
+
25
+ function main() {
26
+ const args = process.argv.slice(2);
27
+ const force = args.includes('--force') || args.includes('-f');
28
+
29
+ const currentDir = process.cwd();
30
+ const packageDir = __dirname;
31
+ const devcontainerSrc = path.join(packageDir, '.devcontainer');
32
+ const devcontainerDest = path.join(currentDir, '.devcontainer');
33
+
34
+ console.log('🚀 Setting up CodeForge DevContainer...');
35
+
36
+ // Check if .devcontainer already exists
37
+ if (fs.existsSync(devcontainerDest)) {
38
+ if (force) {
39
+ console.log('⚠️ Removing existing .devcontainer directory...');
40
+ fs.rmSync(devcontainerDest, { recursive: true, force: true });
41
+ } else {
42
+ console.log('⚠️ .devcontainer directory already exists.');
43
+ console.log(' Use --force to overwrite, or remove it manually.');
44
+ process.exit(1);
45
+ }
46
+ }
47
+
48
+ // Check if source .devcontainer exists
49
+ if (!fs.existsSync(devcontainerSrc)) {
50
+ console.error('❌ Error: .devcontainer source directory not found in package.');
51
+ process.exit(1);
52
+ }
53
+
54
+ try {
55
+ // Copy .devcontainer directory
56
+ copyDirectory(devcontainerSrc, devcontainerDest);
57
+
58
+ console.log('✅ CodeForge DevContainer configuration installed!');
59
+ console.log('');
60
+ console.log('🔧 Next steps:');
61
+ console.log(' 1. Open this folder in VS Code');
62
+ console.log(' 2. Select "Reopen in Container" from the command palette');
63
+ console.log(' 3. Run: claude');
64
+ console.log('');
65
+ console.log('📚 Features included:');
66
+ console.log(' • Claude Code CLI with optimized tool configuration');
67
+ console.log(' • MCP servers: Qdrant (vector memory), Reasoner');
68
+ console.log(' • Development tools: Node.js LTS, Python 3.14, Git with delta');
69
+ console.log(' • Persistent configuration and shell history');
70
+ console.log('');
71
+ console.log('🔗 Documentation: See .devcontainer/README.md');
72
+
73
+ } catch (error) {
74
+ console.error('❌ Error copying .devcontainer:', error.message);
75
+ process.exit(1);
76
+ }
77
+ }
78
+
79
+ if (require.main === module) {
80
+ main();
81
+ }
82
+
83
+ module.exports = { copyDirectory, main };