|
| 1 | +--- |
| 2 | +name: print-os |
| 3 | +description: Use when operating, extending, debugging, or explaining Print-OS: a local-first 3D print farm manager with FastAPI, Streamlit, Next.js, Three.js, JSCAD, print queues, printer inventory, cost tracking, backup workflows, and AI-assisted CAD. Also use when an agent needs to create print-job payloads, inspect local API state, or preserve the public-safe repo boundary. |
| 4 | +--- |
| 5 | + |
| 6 | +# Print-OS |
| 7 | + |
| 8 | +Print-OS is a local-first fabrication operations system. Treat it as three cooperating surfaces: |
| 9 | + |
| 10 | +- `caedo-api`: FastAPI backend, Streamlit operator console, SQLite, printer/job/queue/costing/inventory/business routes. |
| 11 | +- `caedo-web`: Next.js dashboard and CAD/analytics surface. |
| 12 | +- `modules/3d-designer`: standalone Three.js/JSCAD AI-assisted parametric design workspace. |
| 13 | + |
| 14 | +## Operating Rules |
| 15 | + |
| 16 | +1. Preserve the public-safe boundary. Do not commit `.env`, `.streamlit/secrets.toml`, printer credentials, customer data, local databases, `.omx`, `.next`, `node_modules`, or scratch exports. |
| 17 | +2. Prefer local verification before claims: |
| 18 | + - `cd caedo-api && python -m pytest -q` |
| 19 | + - `cd caedo-web && SKIP_OLLAMA_BOOT=true npm run validate` |
| 20 | + - `cd modules/3d-designer && SKIP_OLLAMA_BOOT=true npm run validate` |
| 21 | + - `bash scripts/smoke-test.sh` when services are running |
| 22 | +3. Use the API for operational state instead of guessing from docs. |
| 23 | +4. Keep write actions explicit. Creating jobs changes local state; reading manifests, queues, printers, and jobs is safe. |
| 24 | + |
| 25 | +## Optional Local Tools |
| 26 | + |
| 27 | +From the repo root: |
| 28 | + |
| 29 | +```bash |
| 30 | +python3 tools/print_os_cli.py manifest --format json |
| 31 | +python3 tools/print_os_cli.py job-payload --name "Bracket" --material PLA --width 40 --depth 20 --height 12 --format json |
| 32 | +python3 tools/print_os_cli.py api-get health --base-url http://127.0.0.1:8000 |
| 33 | +python3 tools/print_os_cli.py create-job --name "Bracket" --material PLA --width 40 --depth 20 --height 12 |
| 34 | +``` |
| 35 | + |
| 36 | +If the MCP server is configured, use: |
| 37 | + |
| 38 | +- `print_os_manifest` |
| 39 | +- `print_os_job_payload` |
| 40 | +- `print_os_api_get` |
| 41 | +- `print_os_create_job` |
| 42 | + |
| 43 | +## Common Paths |
| 44 | + |
| 45 | +- Backend health: `http://127.0.0.1:8000/health` |
| 46 | +- Web app: `http://127.0.0.1:3002` |
| 47 | +- 3D designer: `http://127.0.0.1:3003` |
| 48 | +- Streamlit console: `http://127.0.0.1:8501` |
| 49 | + |
| 50 | +Read `llms.txt` for agent navigation and `docs/OPERATOR_RUNBOOK.md` for the complete public operator path. |
0 commit comments