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:
		| @@ -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. | ||||
|  | ||||
| Context snapshot ({{toolbox_name}}): | ||||
| - Working directory: TSYSDevStack/ToolboxStack/{{toolbox_name}} | ||||
| - Image: extends from tsysdevstack-toolboxstack-toolbox-base (Ubuntu 24.04 base) | ||||
| - Working directory: artifacts/ToolboxStack/{{toolbox_name}} | ||||
| - Image: tsysdevstack-toolboxstack-{{toolbox_name}} (extends from tsysdevstack-toolboxstack-toolbox-base:release-current) | ||||
| - Container user: toolbox (non-root, UID/GID mapped to host) | ||||
| - Mounted workspace: current repo at /workspace (rw) | ||||
|  | ||||
| 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. | ||||
| - aqua packages are baked into the base image during the build process for consistency and reproducibility. | ||||
| - 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, reproducibility and performance. | ||||
| - 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). | ||||
|  | ||||
| @@ -24,4 +24,4 @@ Collaboration checklist: | ||||
| 5. Maintain UID/GID mapping and non-root execution. | ||||
|  | ||||
| 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). | ||||
| - Add {{toolbox_name}}-specific tools via aqua.yaml, Dockerfile, or mise configurations. | ||||
| - Document any additional host directory mounts needed in docker-compose.yml. | ||||
| - 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. | ||||
| - Follow the same build and run patterns as the base image for consistency. | ||||
| # Toolbox Template SEED | ||||
|  | ||||
| This SEED file defines the high-level objectives for all toolboxes created from this template. | ||||
|  | ||||
| ## 🎯 Goals | ||||
|  | ||||
| - **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}} | ||||
|     build: | ||||
|       context: . | ||||
|       dockerfile: Dockerfile | ||||
|       args: | ||||
|         USER_ID: ${LOCAL_UID:-1000} | ||||
|         GROUP_ID: ${LOCAL_GID:-1000} | ||||
| @@ -29,3 +30,17 @@ services: | ||||
|       - ${HOME}/.cache/qwen:/home/toolbox/.cache/qwen:rw | ||||
|       - ${HOME}/.cache/code:/home/toolbox/.cache/code: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