wright-engineering 0.1.0__py3-none-any.whl

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.
@@ -0,0 +1,3 @@
1
+ """Wright public-alpha helper package."""
2
+
3
+ __version__ = "0.1.0"
@@ -0,0 +1,37 @@
1
+ from __future__ import annotations
2
+
3
+ import argparse
4
+
5
+ from . import __version__
6
+
7
+
8
+ DOCKER_IMAGE = "burhop/wright"
9
+ GHCR_IMAGE = "ghcr.io/burhop/wright"
10
+ DOCS_URL = "https://burhop.github.io/wright/"
11
+ SUPPORT_EMAIL = "wright@makerengineer.com"
12
+
13
+
14
+ def main(argv: list[str] | None = None) -> int:
15
+ parser = argparse.ArgumentParser(
16
+ prog="wright",
17
+ description="Public-alpha helper for the Wright local-first engineering appliance.",
18
+ )
19
+ parser.add_argument(
20
+ "--version",
21
+ action="version",
22
+ version=f"wright-engineering {__version__}",
23
+ )
24
+ subcommands = parser.add_subparsers(dest="command")
25
+ subcommands.add_parser("doctor", help="Print alpha install guidance.")
26
+
27
+ args = parser.parse_args(argv)
28
+ if args.command in (None, "doctor"):
29
+ print("Wright public alpha")
30
+ print(f"Docker Hub image: {DOCKER_IMAGE}:<tag>")
31
+ print(f"GHCR image: {GHCR_IMAGE}:<tag>")
32
+ print(f"Docs: {DOCS_URL}")
33
+ print(f"Support: {SUPPORT_EMAIL}")
34
+ print("Docker remains the primary end-user install path for alpha.")
35
+ return 0
36
+ parser.error(f"unknown command: {args.command}")
37
+ return 2
@@ -0,0 +1,299 @@
1
+ Metadata-Version: 2.4
2
+ Name: wright-engineering
3
+ Version: 0.1.0
4
+ Summary: Public-alpha helper CLI for the Wright local-first engineering appliance
5
+ Project-URL: Homepage, https://github.com/burhop/wright
6
+ Project-URL: Source, https://github.com/burhop/wright
7
+ Project-URL: Issues, https://github.com/burhop/wright/issues
8
+ Project-URL: Documentation, https://burhop.github.io/wright/
9
+ Project-URL: Releases, https://github.com/burhop/wright/releases
10
+ Author-email: Wright Project <wright@makerengineer.com>
11
+ License: MIT
12
+ License-File: LICENSE
13
+ Keywords: agent,docker,engineering,local-first,wright
14
+ Classifier: Development Status :: 3 - Alpha
15
+ Classifier: Environment :: Console
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Topic :: Scientific/Engineering
23
+ Requires-Python: >=3.11
24
+ Description-Content-Type: text/markdown
25
+
26
+ <p align="center">
27
+ <img src="docs/images/wright-logo.png" width="180" alt="Wright Logo">
28
+ </p>
29
+
30
+ <h1 align="center">Wright</h1>
31
+
32
+ <p align="center">
33
+ <strong>Public-alpha, local-first agent orchestration for physical engineering.</strong>
34
+ </p>
35
+
36
+ <p align="center">
37
+ <a href="https://github.com/burhop/wright/actions/workflows/python-quality.yml?query=branch%3Amain"><img src="https://github.com/burhop/wright/actions/workflows/python-quality.yml/badge.svg?branch=main" alt="Production Python CI"></a>
38
+ <a href="https://github.com/burhop/wright/actions/workflows/frontend-quality.yml?query=branch%3Amain"><img src="https://github.com/burhop/wright/actions/workflows/frontend-quality.yml/badge.svg?branch=main" alt="Production Frontend CI"></a>
39
+ <a href="https://github.com/burhop/wright/actions/workflows/docker-build.yml?query=branch%3Amain"><img src="https://github.com/burhop/wright/actions/workflows/docker-build.yml/badge.svg?branch=main" alt="Production Docker Build"></a>
40
+ <a href="https://github.com/burhop/wright/actions/workflows/docs-deploy.yml?query=branch%3Amain"><img src="https://github.com/burhop/wright/actions/workflows/docs-deploy.yml/badge.svg?branch=main" alt="Production Docs"></a>
41
+ <a href="https://github.com/burhop/wright/actions/workflows/public-alpha-safety.yml?query=branch%3Amain"><img src="https://github.com/burhop/wright/actions/workflows/public-alpha-safety.yml/badge.svg?branch=main" alt="Production Security Scan"></a>
42
+ <a href="https://github.com/burhop/wright/actions/workflows/release.yml?query=branch%3Amain"><img src="https://github.com/burhop/wright/actions/workflows/release.yml/badge.svg?branch=main" alt="Production Release"></a>
43
+ <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-yellow.svg" alt="License: MIT"></a>
44
+ <a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.11%2B-blue.svg" alt="Python 3.11+"></a>
45
+ <a href="https://nodejs.org/"><img src="https://img.shields.io/badge/node-22%2B-green.svg" alt="Node 22+"></a>
46
+ <a href="https://github.com/burhop/wright/pkgs/container/wright"><img src="https://img.shields.io/badge/image-GHCR-blue" alt="GHCR image"></a>
47
+ <a href="https://pypi.org/project/wright-engineering/"><img src="https://img.shields.io/badge/pypi-wright--engineering-blue" alt="PyPI package"></a>
48
+ <a href="https://github.com/burhop/wright/discussions"><img src="https://img.shields.io/badge/discussions-GitHub-orange?logo=github" alt="GitHub Discussions"></a>
49
+ <a href="https://github.com/burhop/wright/stargazers"><img src="https://img.shields.io/github/stars/burhop/wright.svg?style=social" alt="GitHub stars"></a>
50
+ </p>
51
+
52
+ ---
53
+
54
+ ## Public Alpha Status
55
+
56
+ Wright is alpha software for developer testing, MCP porting, demos, and selected
57
+ beta feedback. Expect rough edges, incomplete workflows, and changing APIs.
58
+
59
+ The status badges above are pinned to the production branch, `main`. Integration
60
+ work happens on `dev`, so `dev` CI may fail while production remains green; use
61
+ the GitHub Actions branch filter when checking a specific branch.
62
+
63
+ Wright is bring-your-own-AI. The repository and Docker image do not bundle an
64
+ LLM, API key, local model, hosted model, or paid engineering backend. Configure
65
+ `LLM_API_URL`, `LLM_API_KEY`, and `LLM_API_MODEL` for an OpenAI-compatible
66
+ endpoint, a local model server, or a hosted provider.
67
+
68
+ MCP-specific host software such as FreeCAD, OpenSCAD, CalculiX, Blender, vendor
69
+ CAD systems, license managers, or hardware drivers is installed only for the
70
+ selected MCP validation or usage case. It is not part of the base Docker image.
71
+ Engineering MCP server validation follows
72
+ [the clean-container process](docs/mcp-catalog/mcp-server-testing-process.md).
73
+
74
+ ## Why Wright?
75
+
76
+ Engineering teams need AI-assisted workflows without handing every design to a
77
+ single hosted black box. Wright coordinates agents and deterministic tools while
78
+ leaving LLM/provider choice, credentials, licenses, and host software under the
79
+ operator's control.
80
+
81
+ The first public alpha is aimed at developers, MCP porters, demo users, and
82
+ selected beta feedback. Local and hybrid deployments are supported, but real
83
+ engineering toolchains still require explicit configuration.
84
+
85
+ ## What Works Today
86
+
87
+ - Agent orchestration surfaces for engineering workflows.
88
+ - MCP tool registry metadata and selected-server validation paths.
89
+ - Deterministic CAD, CAE, CAM, and calculation tool actuation through adapters.
90
+ - Docker appliance for the Wright API, static web UI, Hermes profile/bootstrap,
91
+ and general validation tooling.
92
+ - BYO-AI configuration for local or hosted OpenAI-compatible endpoints.
93
+
94
+ The Docker appliance is not a complete CAD/CAE/CAM workstation and does not
95
+ silently install every possible backend.
96
+
97
+ ## User Interface
98
+
99
+ ### Agent Chat Interface
100
+
101
+ Interact with local LLM agents to iterate on designs, request modifications, or
102
+ write code.
103
+
104
+ ![Agent Chat Interface](docs/images/screenshot_agent_chat.png)
105
+
106
+ ### Tool Registry
107
+
108
+ View engineering tools, MCP status, and validation metadata available to agents.
109
+
110
+ ![Tool Registry](docs/images/screenshot_tool_registry.png)
111
+
112
+ ### Workspace Artifacts
113
+
114
+ Review files, generated artifacts, logs, and viewer panels inside the active
115
+ workspace. CAD files, scripts, screenshots, and diagnostics stay local to the
116
+ workspace volume or checkout you control.
117
+
118
+ ![Workspace Artifacts](docs/images/screenshot_initial.png)
119
+
120
+ ## Quick Start
121
+
122
+ ### Docker Appliance
123
+
124
+ Docker is the primary end-user install path for the public alpha. Published
125
+ release images use `burhop/wright:<tag>` on Docker Hub and
126
+ `ghcr.io/burhop/wright:<tag>` on GHCR.
127
+
128
+ With a release image and an env file:
129
+
130
+ ```bash
131
+ cp docker/.env.example docker/.env
132
+ # Edit docker/.env and set LLM_API_URL, LLM_API_KEY, and LLM_API_MODEL
133
+ docker run --rm -p 127.0.0.1:8080:8000 --env-file docker/.env burhop/wright:<tag>
134
+ ```
135
+
136
+ From a source checkout while developing or before a release image is cut:
137
+
138
+ ```bash
139
+ git clone https://github.com/burhop/wright.git
140
+ cd wright
141
+ cp docker/.env.example docker/.env
142
+ # Edit docker/.env and set LLM_API_URL, LLM_API_KEY, and LLM_API_MODEL
143
+ docker compose -f docker-compose.minimal.yml up -d --build
144
+ ```
145
+
146
+ Then open:
147
+
148
+ ```text
149
+ http://localhost:8080
150
+ ```
151
+
152
+ The default `docker-compose.yml` also starts Jaeger and maps Wright to
153
+ `http://localhost:8000`. See the
154
+ [Docker quickstart](docs/getting-started/quickstart-docker.md) and
155
+ [Docker deployment guide](docs/user-guide/docker.md) for LAN access, local model
156
+ server, persistent volume, and cleanup examples.
157
+
158
+ For development outside Docker, see [CONTRIBUTING.md](CONTRIBUTING.md).
159
+
160
+ ## Images and Releases
161
+
162
+ Public release images are published as:
163
+
164
+ ```text
165
+ burhop/wright:<tag>
166
+ ghcr.io/burhop/wright:<tag>
167
+ ```
168
+
169
+ The public-alpha Python helper package is:
170
+
171
+ ```bash
172
+ pip install wright-engineering
173
+ wright doctor
174
+ ```
175
+
176
+ Docker remains the primary end-user install path. `wright-engineering` is a
177
+ lightweight helper/discovery package, not the full appliance. Prerelease tags
178
+ such as `v0.1.0-alpha.1` do not move `latest`; stable tags may.
179
+
180
+ ## Architecture
181
+
182
+ Wright is a modular monorepo with a FastAPI gateway, React/Vite web UI,
183
+ agent-neutral workspace services, Hermes and future runtime adapters, an MCP
184
+ tool registry, and local workspace state.
185
+
186
+ ```mermaid
187
+ flowchart TD
188
+ User([User Web Browser]) -->|HTTP / WebSockets| API[FastAPI API Gateway]
189
+ API -->|Thin HTTP translation| Workspace[Workspace Service]
190
+ Workspace -->|Runtime selection and context| Agent[Agent Adapters]
191
+ Workspace -->|Tool assignment and policy| MCP[MCP Tool Registry]
192
+ API -->|Catalog and lifecycle reads| MCP
193
+ Agent -->|Wright gateway protocol| MCP
194
+ MCP -->|Selected server| Tools[CAD, CAE, CAM, calculators]
195
+ API -->|State, files, and logs| LocalState[SQLite and local workspace files]
196
+ ```
197
+
198
+ Hermes remains the default first-class adapter, but `.hermes.md` and
199
+ `~/.hermes` profile behavior lives in Hermes adapter/profile code. Generic
200
+ workspace lifecycle code delegates context materialization through
201
+ `packages/agent_adapters` contracts so OpenClaw and future engines can plug in
202
+ without inheriting Hermes file formats.
203
+
204
+ ### Repository Structure
205
+
206
+ ```text
207
+ wright/
208
+ |-- apps/
209
+ | |-- api/ # FastAPI gateway
210
+ | `-- web/ # React + Vite frontend
211
+ |-- packages/
212
+ | |-- core/ # Shared domain models and logging
213
+ | |-- agent_adapters/ # Adapter pattern for agent runtimes
214
+ | |-- workspace_service/ # Workspace lifecycle orchestration facade
215
+ | |-- tool_registry/ # MCP registry and validation logic
216
+ | `-- data_vault/ # Placeholder package for future storage extraction
217
+ |-- hermes-plugin-wright/ # Wright Hermes plugin compatibility package
218
+ |-- tests/
219
+ | |-- ui-integration/ # Playwright integration tests
220
+ | `-- e2e/ # Smoke and system tests
221
+ |-- docker/ # Dockerfile and supervisord configuration
222
+ |-- docs/ # Documentation site content and runbooks
223
+ |-- specs/ # Spec Kit feature artifacts
224
+ `-- .github/ # Community templates and CI workflows
225
+ ```
226
+
227
+ Refer to [docs/virtual_engineer_architecture.pdf](docs/virtual_engineer_architecture.pdf)
228
+ for the formal architecture analysis and [constitution.md](constitution.md) for
229
+ core project engineering standards.
230
+
231
+ ## Development
232
+
233
+ Run the main local quality gates:
234
+
235
+ ```bash
236
+ uv run pytest
237
+ uv run ruff check apps/api/ packages/
238
+ uv run ruff format --check apps/api/ packages/
239
+ npm ci
240
+ npx -w apps/web eslint .
241
+ npx prettier --check apps/web/
242
+ npx tsc --noEmit -p apps/web/tsconfig.app.json
243
+ npm run test --workspace=apps/web
244
+ npm run build --workspace=apps/web
245
+ mkdocs build --strict
246
+ ```
247
+
248
+ Helper scripts live in [scripts/](scripts), including public-alpha leak scans,
249
+ Docker smoke tests, CI failure log fetching, and release checks.
250
+
251
+ ## Spec Kit
252
+
253
+ Wright uses [spec-kit](https://github.com/github/spec-kit) for design-led
254
+ feature work. Most substantive changes should start with a feature spec, plan,
255
+ tasks, and implementation checklist under `specs/`.
256
+
257
+ ## Contributing
258
+
259
+ Contributions are welcome. Please read [CONTRIBUTING.md](CONTRIBUTING.md) for
260
+ local setup, branch discipline, testing, pull request expectations, and the
261
+ Spec Kit workflow.
262
+
263
+ Looking for a place to start? Browse issues labeled
264
+ [`good-first-issue`](https://github.com/burhop/wright/labels/good-first-issue).
265
+
266
+ ## Community and Support
267
+
268
+ - Ask usage questions in
269
+ [GitHub Discussions](https://github.com/burhop/wright/discussions).
270
+ - Contact maintainers for support, sponsorship, and partner questions at
271
+ `wright@makerengineer.com`.
272
+ - Report reproducible bugs with
273
+ [GitHub Issues](https://github.com/burhop/wright/issues/new/choose).
274
+ - Report security issues privately using [SECURITY.md](SECURITY.md); do not
275
+ open public security issues.
276
+
277
+ ## Support and Sponsorship
278
+
279
+ Wright is open source, but integration testing, model evaluation, and engineering
280
+ tool adapters require ongoing resources.
281
+
282
+ - API, token, and compute sponsorships help cover continuous LLM testing.
283
+ - Hardware contributions help test local-first and air-gapped deployments.
284
+ - Tool ecosystem contributions help expand the MCP catalog safely.
285
+ - Code, docs, and Spec Kit contributions help harden the public alpha.
286
+
287
+ [Sponsor Wright on GitHub](https://github.com/sponsors/burhop)
288
+
289
+ ## License
290
+
291
+ This project is licensed under the MIT License. See [LICENSE](LICENSE).
292
+
293
+ ## Star History and Contributors
294
+
295
+ [![Star History Chart](https://api.star-history.com/svg?repos=burhop/wright&type=Date)](https://github.com/burhop/wright)
296
+
297
+ <a href="https://github.com/burhop/wright/graphs/contributors">
298
+ <img src="https://contrib.rocks/image?repo=burhop/wright" alt="Contributors list">
299
+ </a>
@@ -0,0 +1,7 @@
1
+ wright_engineering/__init__.py,sha256=0bXxdbuK9gIIYx5JJ16TdTJJsbtAecmHfn4w2AGV84A,65
2
+ wright_engineering/cli.py,sha256=rm7Ww_1vLgVjJgKK4ec9BL4Y4NvBKk0PRveFL2zUcHI,1168
3
+ wright_engineering-0.1.0.dist-info/METADATA,sha256=XyLM9zqFRAG81qXcjXOs53pDvidCq6MrwZU4vJAi4LQ,12822
4
+ wright_engineering-0.1.0.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
5
+ wright_engineering-0.1.0.dist-info/entry_points.txt,sha256=KnH2Y9hYzfKZ-tr2lcxYLHpdrFIcST3GhjFcAb7dp8E,55
6
+ wright_engineering-0.1.0.dist-info/licenses/LICENSE,sha256=XhVPREMqnUOMB6hs5htaSHHpYPNdynWrfzDwzlFwrlI,1063
7
+ wright_engineering-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.30.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ wright = wright_engineering.cli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 burhop
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.