feat(toolbox): update toolbox template configuration
- Update ToolboxStack/output/toolbox-template/.devcontainer/devcontainer.json with improved container settings - Update ToolboxStack/output/toolbox-template/PROMPT with enhanced instructions - Update ToolboxStack/output/toolbox-template/SEED with updated seed data - Update ToolboxStack/output/toolbox-template/docker-compose.yml with enhanced service definitions - Add ToolboxStack/output/toolbox-template/README.md with documentation This enhances the toolbox template for creating new developer environments.
This commit is contained in:
		| @@ -11,4 +11,4 @@ | |||||||
|   ], |   ], | ||||||
|   "overrideCommand": false, |   "overrideCommand": false, | ||||||
|   "postCreateCommand": "zsh -lc 'starship --version >/dev/null'" |   "postCreateCommand": "zsh -lc 'starship --version >/dev/null'" | ||||||
| } | } | ||||||
| @@ -5,14 +5,14 @@ You are Codex, collaborating with a human on the TSYSDevStack ToolboxStack proje | |||||||
|   - Start each session by reading it (`cat SEED`) and summarize progress or adjustments here in PROMPT. |   - Start each session by reading it (`cat SEED`) and summarize progress or adjustments here in PROMPT. | ||||||
|  |  | ||||||
| Context snapshot ({{toolbox_name}}): | Context snapshot ({{toolbox_name}}): | ||||||
| - Working directory: TSYSDevStack/ToolboxStack/{{toolbox_name}} | - Working directory: artifacts/ToolboxStack/{{toolbox_name}} | ||||||
| - Image: extends from tsysdevstack-toolboxstack-toolbox-base (Ubuntu 24.04 base) | - Image: tsysdevstack-toolboxstack-{{toolbox_name}} (extends from tsysdevstack-toolboxstack-toolbox-base:release-current) | ||||||
| - Container user: toolbox (non-root, UID/GID mapped to host) | - Container user: toolbox (non-root, UID/GID mapped to host) | ||||||
| - Mounted workspace: current repo at /workspace (rw) | - Mounted workspace: current repo at /workspace (rw) | ||||||
|  |  | ||||||
| Current state: | Current state: | ||||||
| - Extends from the standard toolbox-base image, inheriting shell tooling (zsh/bash/fish with Starship & oh-my-zsh), core CLI utilities, aqua, and mise. | - Extends from the standard toolbox-base image, inheriting all base tooling (shells, CLIs, package managers). | ||||||
| - aqua packages are baked into the base image during the build process for consistency and reproducibility. | - aqua packages are baked into the base image during the build process for consistency, reproducibility and performance. | ||||||
| - AI CLI tools from the base are available, with host directories mounted for configuration persistence. | - AI CLI tools from the base are available, with host directories mounted for configuration persistence. | ||||||
| - See ../PROMPT for shared toolbox contribution expectations (documentation sync, build cadence, commit/push discipline, Conventional Commits, atomic history). | - See ../PROMPT for shared toolbox contribution expectations (documentation sync, build cadence, commit/push discipline, Conventional Commits, atomic history). | ||||||
|  |  | ||||||
| @@ -24,4 +24,4 @@ Collaboration checklist: | |||||||
| 5. Maintain UID/GID mapping and non-root execution. | 5. Maintain UID/GID mapping and non-root execution. | ||||||
|  |  | ||||||
| Active focus: | Active focus: | ||||||
| - Initialize {{toolbox_name}} using the toolbox-template scaffolding; evolve the Dockerfile/tooling inventory to satisfy the SEED goals while maintaining consistency with the base image. | - Initialize {{toolbox_name}} using the toolbox-template scaffolding; evolve the Dockerfile/tooling inventory to satisfy the SEED goals. | ||||||
							
								
								
									
										107
									
								
								ToolboxStack/output/toolbox-template/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								ToolboxStack/output/toolbox-template/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,107 @@ | |||||||
|  | # 🧰 TSYSDevStack Toolbox Template | ||||||
|  |  | ||||||
|  | Template for creating new toolboxes that extend from the `toolbox-base` image. | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | ## 🚀 Quick Start | ||||||
|  |  | ||||||
|  | 1. **Create a new toolbox** | ||||||
|  |    ```bash | ||||||
|  |    cp -r /path/to/toolbox-template /path/to/new-toolbox | ||||||
|  |    cd /path/to/new-toolbox | ||||||
|  |    ``` | ||||||
|  |     | ||||||
|  | 2. **Customize the toolbox** | ||||||
|  |    - Edit `Dockerfile` to add toolbox-specific tooling | ||||||
|  |    - Modify `docker-compose.yml` to adjust service configuration | ||||||
|  |    - Update `SEED` to define the toolbox's purpose and goals | ||||||
|  |     | ||||||
|  | 3. **Build the toolbox** | ||||||
|  |    ```bash | ||||||
|  |    ./build.sh | ||||||
|  |    ``` | ||||||
|  |     | ||||||
|  | 4. **Start the toolbox** | ||||||
|  |    ```bash | ||||||
|  |    ./run.sh up | ||||||
|  |    ``` | ||||||
|  |     | ||||||
|  | 5. **Access the toolbox** | ||||||
|  |    ```bash | ||||||
|  |    docker exec -it tsysdevstack-toolboxstack-<toolbox-name> zsh | ||||||
|  |    ``` | ||||||
|  |     | ||||||
|  | 6. **Stop the toolbox** | ||||||
|  |    ```bash | ||||||
|  |    ./run.sh down | ||||||
|  |    ``` | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | ## 🧱 Architecture | ||||||
|  |  | ||||||
|  | - **Base Image**: Extends from `tsysdevstack-toolboxstack-toolbox-base:release-current` | ||||||
|  | - **User**: Runs as non-root `toolbox` user (UID/GID mapped to host) | ||||||
|  | - **Workspace**: Mounts current directory to `/workspace` (read/write) | ||||||
|  | - **Runtime**: Inherits all tooling from base plus toolbox-specific additions | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | ## 🛠️ Customization | ||||||
|  |  | ||||||
|  | ### Dockerfile | ||||||
|  | Extend the base image with toolbox-specific tooling: | ||||||
|  | ```dockerfile | ||||||
|  | # Extend from the toolbox-base image | ||||||
|  | FROM tsysdevstack-toolboxstack-toolbox-base:release-current | ||||||
|  |  | ||||||
|  | # Add toolbox-specific packages or configurations | ||||||
|  | RUN apt-get update && apt-get install -y --no-install-recommends \ | ||||||
|  |     specific-package \ | ||||||
|  |     && apt-get clean \ | ||||||
|  |     && rm -rf /var/lib/apt/lists/* | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### docker-compose.yml | ||||||
|  | Adjust service configuration for toolbox-specific needs: | ||||||
|  | ```yaml | ||||||
|  | services: | ||||||
|  |   my-toolbox: | ||||||
|  |     # Inherits all base configuration | ||||||
|  |     # Add toolbox-specific volumes, ports, etc. | ||||||
|  |     volumes: | ||||||
|  |       - ./custom-config:/home/toolbox/.config/custom-tool | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### SEED | ||||||
|  | Define the toolbox's purpose and goals: | ||||||
|  | ```markdown | ||||||
|  | - Describe what this toolbox should provide (languages, CLIs, workflows) | ||||||
|  | - List required base image modifications or additional mounts | ||||||
|  | - Note verification or testing expectations specific to this toolbox | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | ## 📂 Project Layout | ||||||
|  |  | ||||||
|  | | Path | Purpose | | ||||||
|  | |------|---------| | ||||||
|  | | `Dockerfile` | Extends base image with toolbox-specific tooling | | ||||||
|  | | `docker-compose.yml` | Service configuration for the toolbox | | ||||||
|  | | `build.sh` | Wrapper around `docker build` with host UID/GID mapping | | ||||||
|  | | `run.sh` | Helper to bring the service up/down | | ||||||
|  | | `.devcontainer/devcontainer.json` | VS Code remote container definition | | ||||||
|  | | `SEED` | Defines the toolbox's purpose and goals | | ||||||
|  | | `PROMPT` | LLM onboarding prompt for future contributors | | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | ## 🤝 Collaboration Notes | ||||||
|  |  | ||||||
|  | - Inherits all collaboration policies from `toolbox-base` | ||||||
|  | - Document toolbox-specific additions in `README.md` and `PROMPT` | ||||||
|  | - Update `SEED` only when the high-level objectives change | ||||||
|  | - Prefer aqua/mise for new tooling to keep installations reproducible | ||||||
|  | - Keep documentation synchronized for future contributors | ||||||
| @@ -1,6 +1,38 @@ | |||||||
| - This toolbox extends from the standard toolbox-base image, inheriting all base tooling (shells, CLIs, package managers). | # Toolbox Template SEED | ||||||
| - Add {{toolbox_name}}-specific tools via aqua.yaml, Dockerfile, or mise configurations. |  | ||||||
| - Document any additional host directory mounts needed in docker-compose.yml. | This SEED file defines the high-level objectives for all toolboxes created from this template. | ||||||
| - Ensure all tooling is compatible with the non-root toolbox user and UID/GID mapping. |  | ||||||
| - Update README.md to document {{toolbox_name}}-specific features and tooling. | ## 🎯 Goals | ||||||
| - Follow the same build and run patterns as the base image for consistency. |  | ||||||
|  | - **Extensibility**: Each toolbox should extend from `toolbox-base` to inherit core tooling | ||||||
|  | - **Consistency**: All toolboxes should follow the same patterns and conventions | ||||||
|  | - **Reproducibility**: Toolbox builds should be deterministic and cache-efficient | ||||||
|  | - **Security**: Toolboxes should run as non-root users with minimal privileges | ||||||
|  | - **Portability**: Toolboxes should work identically across different host environments | ||||||
|  |  | ||||||
|  | ## 🧰 Requirements | ||||||
|  |  | ||||||
|  | - **Base Image**: Extend from `tsysdevstack-toolboxstack-toolbox-base:release-current` | ||||||
|  | - **User Model**: Run as non-root `toolbox` user (UID/GID mapped to host) | ||||||
|  | - **Workspace**: Mount current directory to `/workspace` (read/write) | ||||||
|  | - **Runtime**: Inherit all base tooling plus toolbox-specific additions | ||||||
|  | - **Configuration**: Preserve user configs/mise toolchains via volume mounts | ||||||
|  |  | ||||||
|  | ## 🛠️ Implementation | ||||||
|  |  | ||||||
|  | - **Dockerfile**: Extend from base with toolbox-specific tooling | ||||||
|  | - **docker-compose.yml**: Configure service with inherited + custom settings | ||||||
|  | - **build.sh**: Wrapper around `docker build` with UID/GID mapping | ||||||
|  | - **run.sh**: Helper to bring service up/down with proper directory setup | ||||||
|  | - **devcontainer.json**: VS Code remote container definition | ||||||
|  | - **SEED**: Define toolbox-specific objectives (this file) | ||||||
|  | - **PROMPT**: LLM onboarding prompt for future contributors | ||||||
|  |  | ||||||
|  | ## ✅ Verification | ||||||
|  |  | ||||||
|  | - Toolboxes should build without errors | ||||||
|  | - Toolboxes should start and run indefinitely | ||||||
|  | - Toolboxes should be accessible via `docker exec` | ||||||
|  | - Toolboxes should inherit all base tooling | ||||||
|  | - Toolboxes should support toolbox-specific additions | ||||||
|  | - Toolboxes should preserve user configurations across restarts | ||||||
| @@ -4,6 +4,7 @@ services: | |||||||
|     image: tsysdevstack-toolboxstack-{{toolbox_name}} |     image: tsysdevstack-toolboxstack-{{toolbox_name}} | ||||||
|     build: |     build: | ||||||
|       context: . |       context: . | ||||||
|  |       dockerfile: Dockerfile | ||||||
|       args: |       args: | ||||||
|         USER_ID: ${LOCAL_UID:-1000} |         USER_ID: ${LOCAL_UID:-1000} | ||||||
|         GROUP_ID: ${LOCAL_GID:-1000} |         GROUP_ID: ${LOCAL_GID:-1000} | ||||||
| @@ -29,3 +30,17 @@ services: | |||||||
|       - ${HOME}/.cache/qwen:/home/toolbox/.cache/qwen:rw |       - ${HOME}/.cache/qwen:/home/toolbox/.cache/qwen:rw | ||||||
|       - ${HOME}/.cache/code:/home/toolbox/.cache/code:rw |       - ${HOME}/.cache/code:/home/toolbox/.cache/code:rw | ||||||
|       - ${HOME}/.cache/opencode:/home/toolbox/.cache/opencode:rw |       - ${HOME}/.cache/opencode:/home/toolbox/.cache/opencode:rw | ||||||
|  |       # Additional AI tool directories | ||||||
|  |       - ${HOME}/.config/codex:/home/toolbox/.config/codex:rw | ||||||
|  |       - ${HOME}/.cache/codex:/home/toolbox/.cache/codex:rw | ||||||
|  |       # AI CLI tool configuration and cache directories | ||||||
|  |       - ${HOME}/.config/openai:/home/toolbox/.config/openai:rw | ||||||
|  |       - ${HOME}/.config/gemini:/home/toolbox/.config/gemini:rw | ||||||
|  |       - ${HOME}/.config/qwen:/home/toolbox/.config/qwen:rw | ||||||
|  |       - ${HOME}/.config/code:/home/toolbox/.config/code:rw | ||||||
|  |       - ${HOME}/.config/opencode:/home/toolbox/.config/opencode:rw | ||||||
|  |       - ${HOME}/.cache/openai:/home/toolbox/.cache/openai:rw | ||||||
|  |       - ${HOME}/.cache/gemini:/home/toolbox/.cache/gemini:rw | ||||||
|  |       - ${HOME}/.cache/qwen:/home/toolbox/.cache/qwen:rw | ||||||
|  |       - ${HOME}/.cache/code:/home/toolbox/.cache/code:rw | ||||||
|  |       - ${HOME}/.cache/opencode:/home/toolbox/.cache/opencode:rw | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user