development-engine-vector 0.3.0__tar.gz → 0.3.1__tar.gz
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.
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/PKG-INFO +79 -33
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/changelog.md +8 -1
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/contributing.md +14 -11
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/__init__.py +1 -1
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/docs/architecture.md +20 -3
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/pyproject.toml +1 -1
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/readme.md +78 -32
- development_engine_vector-0.3.1/version +1 -0
- development_engine_vector-0.3.0/version +0 -1
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/.flake8 +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/.gitignore +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/__main__.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/cli/__init__.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/cli/cli.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/kernel/__init__.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/kernel/config.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/kernel/db.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/kernel/paths.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/kernel/pmf_kernel.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/kernel/selfcheck.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/__init__.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/actions.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/db/__init__.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/db/base.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/db/checks.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/db/events.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/db/health.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/db/identity.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/db/manifest.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/db/overview.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/db/runs.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/routes.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/static/__init__.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/static/web.css +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/static/web.js +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/templates.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/web.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/utils.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/vcs/__init__.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/vcs/git.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/vcs/github.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/workflow/__init__.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/workflow/cda.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/workflow/changelog.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/workflow/preflight.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/workflow/release.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/workflow/versioning.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev-cli.toml.example +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/license +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/tests/__init__.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/tests/test_cda_preflight.py +0 -0
- {development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/tests/test_dev_cli.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: development-engine-vector
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: Development Engine Vector — internal developer workflow CLI.
|
|
5
5
|
Author-email: Ernie Butcher <ernie@fiosii.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -12,7 +12,7 @@ Description-Content-Type: text/markdown
|
|
|
12
12
|
# Development Engine Vector
|
|
13
13
|
|
|
14
14
|
[](https://www.python.org/downloads/)
|
|
15
|
-
[](https://pypi.org/project/development-engine-vector)
|
|
16
16
|
[](https://opensource.org/licenses/MIT)
|
|
17
17
|
|
|
18
18
|
**Development Engine Vector** (`dev`) is the developer workflow coordination CLI for goCosmix systems. It provides a consistent, scriptable interface for preflight checks, version management, changelog automation, release orchestration, and git/GitHub operations — usable across every system in the federation.
|
|
@@ -51,10 +51,10 @@ Description-Content-Type: text/markdown
|
|
|
51
51
|
### Install from PyPI
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
|
-
pip install
|
|
54
|
+
pip install development-engine-vector
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
-
> **macOS / system Python note**: pip installs the `dev` binary to `~/Library/Python/3.
|
|
57
|
+
> **macOS / system Python note**: pip installs the `dev` binary to `~/Library/Python/3.9/bin/` which may not be on `PATH` by default.
|
|
58
58
|
>
|
|
59
59
|
> ```bash
|
|
60
60
|
> export PATH="$HOME/Library/Python/3.9/bin:$PATH"
|
|
@@ -62,30 +62,38 @@ pip install dev-cli
|
|
|
62
62
|
>
|
|
63
63
|
> Add this line to `~/.zprofile` for persistence.
|
|
64
64
|
|
|
65
|
-
###
|
|
65
|
+
### First-time setup (recommended)
|
|
66
|
+
|
|
67
|
+
After install, run the onboarding wizard — it creates your home directory, registers the macOS LaunchAgent, and opens the dashboard:
|
|
66
68
|
|
|
67
69
|
```bash
|
|
68
|
-
|
|
69
|
-
cd dev/source
|
|
70
|
-
pip install -e .
|
|
70
|
+
dev setup
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
### Install
|
|
73
|
+
### Install from source
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
|
-
|
|
76
|
+
git clone https://github.com/goCosmix/dev.git
|
|
77
|
+
cd dev/source
|
|
78
|
+
pip install -e .
|
|
77
79
|
```
|
|
78
80
|
|
|
79
81
|
## ⚡ Quick Start
|
|
80
82
|
|
|
81
83
|
```bash
|
|
82
|
-
pip install
|
|
84
|
+
pip install development-engine-vector
|
|
83
85
|
export PATH="$HOME/Library/Python/3.9/bin:$PATH"
|
|
84
86
|
|
|
87
|
+
# Full onboarding (creates ~/Library/goCosmix/tools/dev/, registers launchd, opens UI)
|
|
88
|
+
dev setup
|
|
89
|
+
|
|
90
|
+
# Or just start the dashboard manually
|
|
91
|
+
dev ui start
|
|
92
|
+
|
|
85
93
|
# Point at any goCosmix project
|
|
86
|
-
dev pf --project /
|
|
87
|
-
dev version show --project /
|
|
88
|
-
dev release --project /
|
|
94
|
+
dev pf --project /path/to/project # preflight check
|
|
95
|
+
dev version show --project /path/to/project
|
|
96
|
+
dev release --project /path/to/project --dry-run
|
|
89
97
|
```
|
|
90
98
|
|
|
91
99
|
## 🔧 CLI Reference
|
|
@@ -167,6 +175,48 @@ Checks: version consistency, install path, DB state, required tools on PATH, Pyt
|
|
|
167
175
|
dev config show --project <path> # display active config and resolved settings
|
|
168
176
|
```
|
|
169
177
|
|
|
178
|
+
### `dev ui`
|
|
179
|
+
|
|
180
|
+
Manage the embedded web dashboard (port 9001).
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
dev ui start # start dashboard, open browser
|
|
184
|
+
dev ui start --no-browser # start without opening browser
|
|
185
|
+
dev ui stop # stop dashboard
|
|
186
|
+
dev ui status # show pid, started time, log path
|
|
187
|
+
dev ui restart # restart
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### `dev pmf`
|
|
191
|
+
|
|
192
|
+
Manage the embedded PMF kernel and background services.
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
dev pmf services # list all services and status
|
|
196
|
+
dev pmf status [service_id] # detailed status for one or all services
|
|
197
|
+
dev pmf start ui # start a service
|
|
198
|
+
dev pmf stop ui # stop a service
|
|
199
|
+
dev pmf restart ui # restart a service
|
|
200
|
+
dev pmf logs ui [--tail 50] # tail service log
|
|
201
|
+
dev pmf up # start all services (called by launchd on login)
|
|
202
|
+
dev pmf install # register macOS LaunchAgent (auto-start on login)
|
|
203
|
+
dev pmf uninstall # remove LaunchAgent
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### `dev setup`
|
|
207
|
+
|
|
208
|
+
Full onboarding wizard — run once after install.
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
dev setup # init dirs + pmf install + ui start + open browser
|
|
212
|
+
dev setup --no-browser # same, skip browser
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Steps:
|
|
216
|
+
1. **Init** — create `~/Library/goCosmix/tools/dev/` and all runtime subdirs; patch `~/.zprofile` if `dev` is not on PATH
|
|
217
|
+
2. **PMF install** — register `com.gocosmix.dev` LaunchAgent so `dev` starts automatically on every login
|
|
218
|
+
3. **Up** — start the web UI via PMF kernel, open browser at `http://127.0.0.1:9001`
|
|
219
|
+
|
|
170
220
|
## ⚙️ Configuration
|
|
171
221
|
|
|
172
222
|
Add a `.dev-cli.toml` or `dev-cli.toml` at any project root:
|
|
@@ -197,16 +247,19 @@ dev --config ./custom.dev-cli.toml release --project /Volumes/intel/systems/cda/
|
|
|
197
247
|
|
|
198
248
|
## 🏗 Architecture
|
|
199
249
|
|
|
200
|
-
`dev` is organized into
|
|
250
|
+
`dev` is organized into five layers:
|
|
201
251
|
|
|
202
252
|
```
|
|
203
253
|
dev/
|
|
204
|
-
├── kernel/ — runtime foundation (paths, DB, config, self-check)
|
|
254
|
+
├── kernel/ — runtime foundation (paths, PMF kernel, DB, config, self-check)
|
|
205
255
|
├── workflow/ — business logic (versioning, changelog, preflight, release)
|
|
206
256
|
├── vcs/ — version control ops (git, GitHub API)
|
|
257
|
+
├── ui/ — embedded WSGI dashboard (port 9001, indigo theme)
|
|
207
258
|
└── cli/ — thin click wrappers
|
|
208
259
|
```
|
|
209
260
|
|
|
261
|
+
Runtime home: `~/Library/goCosmix/tools/dev/` (tools tier — `9000` namespace)
|
|
262
|
+
|
|
210
263
|
See [docs/architecture.md](docs/architecture.md) for the full design.
|
|
211
264
|
|
|
212
265
|
## 🛠 Development
|
|
@@ -216,31 +269,24 @@ cd /Volumes/intel/systems/dev/source
|
|
|
216
269
|
pip install -e .
|
|
217
270
|
export PATH="$HOME/Library/Python/3.9/bin:$PATH"
|
|
218
271
|
|
|
219
|
-
# Run checks
|
|
272
|
+
# Run all checks (lint + typecheck + tests)
|
|
273
|
+
python3 /Volumes/intel/systems/dev/control/scripts/vet.py
|
|
274
|
+
|
|
275
|
+
# Or individually
|
|
220
276
|
python3 -m flake8 dev/
|
|
221
277
|
python3 -m mypy dev/
|
|
222
278
|
python3 -m pytest tests/ -q
|
|
223
|
-
|
|
224
|
-
# Or via the control plane
|
|
225
|
-
python3 ../control/scripts/vet.py
|
|
226
|
-
python3 ../control/cli.py health
|
|
227
279
|
```
|
|
228
280
|
|
|
229
281
|
### Control plane
|
|
230
282
|
|
|
231
|
-
|
|
232
|
-
python3 control/cli.py --help
|
|
283
|
+
The control plane manages the `dev` system itself (not for managing other projects).
|
|
233
284
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
dev
|
|
237
|
-
dev
|
|
238
|
-
dev
|
|
239
|
-
dev-control seed # re-seed control.db
|
|
240
|
-
dev-control selfcheck # engine self-diagnostics
|
|
241
|
-
dev-control runs # show run history from dev.db
|
|
242
|
-
dev-control projects # show registered projects
|
|
243
|
-
dev-control manifest # query file manifest from control.db
|
|
285
|
+
```bash
|
|
286
|
+
# Vet, seed, and publish
|
|
287
|
+
python3 /Volumes/intel/systems/dev/control/scripts/vet.py # lint + typecheck + tests
|
|
288
|
+
python3 /Volumes/intel/systems/dev/control/scripts/seed.py # re-seed control.db
|
|
289
|
+
python3 /Volumes/intel/systems/dev/control/scripts/push.py # vet + git push + PyPI publish
|
|
244
290
|
```
|
|
245
291
|
|
|
246
292
|
## 🤝 Contributing
|
|
@@ -5,7 +5,14 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [0.3.
|
|
8
|
+
## [0.3.1] - 2026-05-11
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- PyPI package renamed from `dev-cli` (taken) to **`development-engine-vector`** — matching the `code-data-ark` naming convention
|
|
12
|
+
- `--version` now resolves from `development-engine-vector` package metadata
|
|
13
|
+
- Docs updated: readme, architecture, contributing — correct DEV_HOME path (`tools/dev`), port 9001, `ui`/`pmf`/`setup` command reference, `ui/` layer in architecture diagram
|
|
14
|
+
|
|
15
|
+
## [0.3.0] - 2026-05-11
|
|
9
16
|
|
|
10
17
|
### Added
|
|
11
18
|
- **Embedded web UI** — full WSGI dashboard on port 9001 (`dev ui start/stop/status/restart`)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Contributing to Development Engine Vector
|
|
2
2
|
|
|
3
|
-
We welcome contributions. This document provides guidelines for working on `
|
|
3
|
+
We welcome contributions. This document provides guidelines for working on `development-engine-vector`.
|
|
4
4
|
|
|
5
5
|
## Code of Conduct
|
|
6
6
|
|
|
@@ -20,7 +20,7 @@ cd dev/source
|
|
|
20
20
|
### Setup development environment
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
|
-
pip install -e
|
|
23
|
+
pip install -e .
|
|
24
24
|
export PATH="$HOME/Library/Python/3.9/bin:$PATH"
|
|
25
25
|
```
|
|
26
26
|
|
|
@@ -86,7 +86,8 @@ dev/
|
|
|
86
86
|
├── source/ # all tracked code lives here
|
|
87
87
|
│ ├── dev/ # Python package
|
|
88
88
|
│ │ ├── kernel/ # runtime foundation
|
|
89
|
-
│ │ │ ├── paths.py # DEV_HOME
|
|
89
|
+
│ │ │ ├── paths.py # DEV_HOME = ~/Library/goCosmix/tools/dev
|
|
90
|
+
│ │ │ ├── pmf_kernel.py # PMFKernel, launchd integration (port 9001)
|
|
90
91
|
│ │ │ ├── db.py # WAL SQLite — runs + projects
|
|
91
92
|
│ │ │ ├── config.py # DevConfig — reads .dev-cli.toml
|
|
92
93
|
│ │ │ └── selfcheck.py # engine self-diagnostics
|
|
@@ -99,6 +100,13 @@ dev/
|
|
|
99
100
|
│ │ ├── vcs/ # version control
|
|
100
101
|
│ │ │ ├── git.py
|
|
101
102
|
│ │ │ └── github.py
|
|
103
|
+
│ │ ├── ui/ # embedded WSGI dashboard (port 9001)
|
|
104
|
+
│ │ │ ├── web.py
|
|
105
|
+
│ │ │ ├── routes.py
|
|
106
|
+
│ │ │ ├── templates.py
|
|
107
|
+
│ │ │ ├── actions.py
|
|
108
|
+
│ │ │ ├── static/ # web.css (indigo theme), web.js
|
|
109
|
+
│ │ │ └── db/ # per-page query modules
|
|
102
110
|
│ │ └── cli/
|
|
103
111
|
│ │ └── cli.py # click entry point
|
|
104
112
|
│ ├── tests/
|
|
@@ -108,15 +116,9 @@ dev/
|
|
|
108
116
|
│ ├── readme.md
|
|
109
117
|
│ └── version
|
|
110
118
|
├── local/ # runtime state (gitignored)
|
|
111
|
-
│ ├── data/ # dev.db lives at ~/Library/goCosmix/apps/dev/
|
|
112
|
-
│ └── logs/
|
|
113
119
|
└── control/ # management artifacts (gitignored)
|
|
114
|
-
├── cli.py # dev-control CLI
|
|
115
|
-
├── ops.py # reusable status helpers
|
|
116
120
|
├── data/ # control.db
|
|
117
|
-
|
|
118
|
-
├── audit/ # audit engine output JSONs
|
|
119
|
-
└── docs/ # control system documentation
|
|
121
|
+
└── scripts/ # seed.py, vet.py, push.py
|
|
120
122
|
```
|
|
121
123
|
|
|
122
124
|
## Key components
|
|
@@ -125,7 +127,8 @@ dev/
|
|
|
125
127
|
Thin click wrappers. All logic delegates to `workflow/` and `vcs/` modules.
|
|
126
128
|
|
|
127
129
|
### Kernel (`dev/kernel/`)
|
|
128
|
-
- `paths.py` — canonical path constants; `DEV_HOME = ~/Library/goCosmix/
|
|
130
|
+
- `paths.py` — canonical path constants; `DEV_HOME = ~/Library/goCosmix/tools/dev`
|
|
131
|
+
- `pmf_kernel.py` — `PMFKernel`: start/stop/restart/status for background services; `install_launchd` / `uninstall_launchd` for `com.gocosmix.dev` LaunchAgent
|
|
129
132
|
- `db.py` — WAL SQLite; `record_run`, `finish_run`, `upsert_project`, `get_recent_runs`
|
|
130
133
|
- `config.py` — loads `.dev-cli.toml` / `dev-cli.toml` from project root
|
|
131
134
|
- `selfcheck.py` — five checks: version, install path, DB, tools, dependencies
|
|
@@ -35,12 +35,13 @@ The kernel provides the shared infrastructure all other layers depend on.
|
|
|
35
35
|
|
|
36
36
|
| Module | Responsibility |
|
|
37
37
|
|---|---|
|
|
38
|
-
| `paths.py` | `DEV_HOME`, `DATA_DIR`, `LOG_DIR`, `DB_PATH`, `ensure_dirs()` |
|
|
38
|
+
| `paths.py` | `DEV_HOME`, `DATA_DIR`, `RUN_DIR`, `LOG_DIR`, `PMF_DIR`, `DB_PATH`, `UI_PID_FILE`, `DEFAULT_PORT`, `ensure_dirs()` |
|
|
39
39
|
| `db.py` | WAL SQLite runtime DB — `runs` + `projects` tables; `record_run`, `finish_run`, `upsert_project` |
|
|
40
40
|
| `config.py` | Loads `.dev-cli.toml` / `dev-cli.toml` from project root via TOML parser |
|
|
41
41
|
| `selfcheck.py` | Five checks: version consistency, install path, DB integrity, tools on PATH, Python deps |
|
|
42
|
+
| `pmf_kernel.py` | `PMFKernel` process manager; `install_launchd` / `uninstall_launchd` for `com.gocosmix.dev` LaunchAgent |
|
|
42
43
|
|
|
43
|
-
**DEV_HOME** resolves to `~/Library/goCosmix/
|
|
44
|
+
**DEV_HOME** resolves to `~/Library/goCosmix/tools/dev` on macOS (tools tier — port 9001; 9000 reserved for future tool orchestrator). The runtime DB lives at `DEV_HOME/data/dev.db`.
|
|
44
45
|
|
|
45
46
|
### `workflow/` — Business Logic
|
|
46
47
|
|
|
@@ -74,6 +75,22 @@ CDA-extended checks (via `--full`):
|
|
|
74
75
|
- Queue depth
|
|
75
76
|
- Session analysis freshness
|
|
76
77
|
|
|
78
|
+
### `ui/` — Embedded Dashboard
|
|
79
|
+
|
|
80
|
+
A self-contained WSGI application served on port 9001 (tools namespace). Zero npm, zero build step — CSS and JS are bundled as Python string constants.
|
|
81
|
+
|
|
82
|
+
| Module | Responsibility |
|
|
83
|
+
|---|---|
|
|
84
|
+
| `web.py` | `start_server(host, port=9001)` — `WSGIServer` with `SO_REUSEADDR` |
|
|
85
|
+
| `routes.py` | WSGI app; routes all API endpoints and serves the SPA shell |
|
|
86
|
+
| `templates.py` | `INDEX_HTML` shell; `PAGE_REGISTRY_JS` — page render functions |
|
|
87
|
+
| `actions.py` | Background task execution (`vet`); `ACTION_STATE` tracker |
|
|
88
|
+
| `static/web.css` | Indigo accent theme (`--accent: #6366f1`) |
|
|
89
|
+
| `static/web.js` | Page init functions; run drawer; tab switching |
|
|
90
|
+
| `db/` | Per-page DB query modules: overview, runs, health, checks, manifest, identity, events |
|
|
91
|
+
|
|
92
|
+
**API endpoints**: `GET /`, `/api/overview`, `/api/runs`, `/api/run`, `/api/health`, `/api/checks`, `/api/manifest`, `/api/identity`, `/api/events`; `POST /api/action`, `/api/query`
|
|
93
|
+
|
|
77
94
|
### `vcs/` — Version Control
|
|
78
95
|
|
|
79
96
|
| Module | Key class | Responsibility |
|
|
@@ -82,7 +99,7 @@ CDA-extended checks (via `--full`):
|
|
|
82
99
|
| `github.py` | — | `create_github_repo()`, `_github_api()`, token loading from `.env` |
|
|
83
100
|
|
|
84
101
|
`GitOps.ensure_remote()` creates the GitHub repo via API and sets `origin` if absent.
|
|
85
|
-
Token is loaded from
|
|
102
|
+
Token is loaded from `/Volumes/intel/.env` (`GITHUB_TOKEN`).
|
|
86
103
|
|
|
87
104
|
### `cli/` — Click Interface
|
|
88
105
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Development Engine Vector
|
|
2
2
|
|
|
3
3
|
[](https://www.python.org/downloads/)
|
|
4
|
-
[](https://pypi.org/project/development-engine-vector)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
|
|
7
7
|
**Development Engine Vector** (`dev`) is the developer workflow coordination CLI for goCosmix systems. It provides a consistent, scriptable interface for preflight checks, version management, changelog automation, release orchestration, and git/GitHub operations — usable across every system in the federation.
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
### Install from PyPI
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
pip install
|
|
43
|
+
pip install development-engine-vector
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
> **macOS / system Python note**: pip installs the `dev` binary to `~/Library/Python/3.
|
|
46
|
+
> **macOS / system Python note**: pip installs the `dev` binary to `~/Library/Python/3.9/bin/` which may not be on `PATH` by default.
|
|
47
47
|
>
|
|
48
48
|
> ```bash
|
|
49
49
|
> export PATH="$HOME/Library/Python/3.9/bin:$PATH"
|
|
@@ -51,30 +51,38 @@ pip install dev-cli
|
|
|
51
51
|
>
|
|
52
52
|
> Add this line to `~/.zprofile` for persistence.
|
|
53
53
|
|
|
54
|
-
###
|
|
54
|
+
### First-time setup (recommended)
|
|
55
|
+
|
|
56
|
+
After install, run the onboarding wizard — it creates your home directory, registers the macOS LaunchAgent, and opens the dashboard:
|
|
55
57
|
|
|
56
58
|
```bash
|
|
57
|
-
|
|
58
|
-
cd dev/source
|
|
59
|
-
pip install -e .
|
|
59
|
+
dev setup
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
### Install
|
|
62
|
+
### Install from source
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
|
|
65
|
+
git clone https://github.com/goCosmix/dev.git
|
|
66
|
+
cd dev/source
|
|
67
|
+
pip install -e .
|
|
66
68
|
```
|
|
67
69
|
|
|
68
70
|
## ⚡ Quick Start
|
|
69
71
|
|
|
70
72
|
```bash
|
|
71
|
-
pip install
|
|
73
|
+
pip install development-engine-vector
|
|
72
74
|
export PATH="$HOME/Library/Python/3.9/bin:$PATH"
|
|
73
75
|
|
|
76
|
+
# Full onboarding (creates ~/Library/goCosmix/tools/dev/, registers launchd, opens UI)
|
|
77
|
+
dev setup
|
|
78
|
+
|
|
79
|
+
# Or just start the dashboard manually
|
|
80
|
+
dev ui start
|
|
81
|
+
|
|
74
82
|
# Point at any goCosmix project
|
|
75
|
-
dev pf --project /
|
|
76
|
-
dev version show --project /
|
|
77
|
-
dev release --project /
|
|
83
|
+
dev pf --project /path/to/project # preflight check
|
|
84
|
+
dev version show --project /path/to/project
|
|
85
|
+
dev release --project /path/to/project --dry-run
|
|
78
86
|
```
|
|
79
87
|
|
|
80
88
|
## 🔧 CLI Reference
|
|
@@ -156,6 +164,48 @@ Checks: version consistency, install path, DB state, required tools on PATH, Pyt
|
|
|
156
164
|
dev config show --project <path> # display active config and resolved settings
|
|
157
165
|
```
|
|
158
166
|
|
|
167
|
+
### `dev ui`
|
|
168
|
+
|
|
169
|
+
Manage the embedded web dashboard (port 9001).
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
dev ui start # start dashboard, open browser
|
|
173
|
+
dev ui start --no-browser # start without opening browser
|
|
174
|
+
dev ui stop # stop dashboard
|
|
175
|
+
dev ui status # show pid, started time, log path
|
|
176
|
+
dev ui restart # restart
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### `dev pmf`
|
|
180
|
+
|
|
181
|
+
Manage the embedded PMF kernel and background services.
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
dev pmf services # list all services and status
|
|
185
|
+
dev pmf status [service_id] # detailed status for one or all services
|
|
186
|
+
dev pmf start ui # start a service
|
|
187
|
+
dev pmf stop ui # stop a service
|
|
188
|
+
dev pmf restart ui # restart a service
|
|
189
|
+
dev pmf logs ui [--tail 50] # tail service log
|
|
190
|
+
dev pmf up # start all services (called by launchd on login)
|
|
191
|
+
dev pmf install # register macOS LaunchAgent (auto-start on login)
|
|
192
|
+
dev pmf uninstall # remove LaunchAgent
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### `dev setup`
|
|
196
|
+
|
|
197
|
+
Full onboarding wizard — run once after install.
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
dev setup # init dirs + pmf install + ui start + open browser
|
|
201
|
+
dev setup --no-browser # same, skip browser
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Steps:
|
|
205
|
+
1. **Init** — create `~/Library/goCosmix/tools/dev/` and all runtime subdirs; patch `~/.zprofile` if `dev` is not on PATH
|
|
206
|
+
2. **PMF install** — register `com.gocosmix.dev` LaunchAgent so `dev` starts automatically on every login
|
|
207
|
+
3. **Up** — start the web UI via PMF kernel, open browser at `http://127.0.0.1:9001`
|
|
208
|
+
|
|
159
209
|
## ⚙️ Configuration
|
|
160
210
|
|
|
161
211
|
Add a `.dev-cli.toml` or `dev-cli.toml` at any project root:
|
|
@@ -186,16 +236,19 @@ dev --config ./custom.dev-cli.toml release --project /Volumes/intel/systems/cda/
|
|
|
186
236
|
|
|
187
237
|
## 🏗 Architecture
|
|
188
238
|
|
|
189
|
-
`dev` is organized into
|
|
239
|
+
`dev` is organized into five layers:
|
|
190
240
|
|
|
191
241
|
```
|
|
192
242
|
dev/
|
|
193
|
-
├── kernel/ — runtime foundation (paths, DB, config, self-check)
|
|
243
|
+
├── kernel/ — runtime foundation (paths, PMF kernel, DB, config, self-check)
|
|
194
244
|
├── workflow/ — business logic (versioning, changelog, preflight, release)
|
|
195
245
|
├── vcs/ — version control ops (git, GitHub API)
|
|
246
|
+
├── ui/ — embedded WSGI dashboard (port 9001, indigo theme)
|
|
196
247
|
└── cli/ — thin click wrappers
|
|
197
248
|
```
|
|
198
249
|
|
|
250
|
+
Runtime home: `~/Library/goCosmix/tools/dev/` (tools tier — `9000` namespace)
|
|
251
|
+
|
|
199
252
|
See [docs/architecture.md](docs/architecture.md) for the full design.
|
|
200
253
|
|
|
201
254
|
## 🛠 Development
|
|
@@ -205,31 +258,24 @@ cd /Volumes/intel/systems/dev/source
|
|
|
205
258
|
pip install -e .
|
|
206
259
|
export PATH="$HOME/Library/Python/3.9/bin:$PATH"
|
|
207
260
|
|
|
208
|
-
# Run checks
|
|
261
|
+
# Run all checks (lint + typecheck + tests)
|
|
262
|
+
python3 /Volumes/intel/systems/dev/control/scripts/vet.py
|
|
263
|
+
|
|
264
|
+
# Or individually
|
|
209
265
|
python3 -m flake8 dev/
|
|
210
266
|
python3 -m mypy dev/
|
|
211
267
|
python3 -m pytest tests/ -q
|
|
212
|
-
|
|
213
|
-
# Or via the control plane
|
|
214
|
-
python3 ../control/scripts/vet.py
|
|
215
|
-
python3 ../control/cli.py health
|
|
216
268
|
```
|
|
217
269
|
|
|
218
270
|
### Control plane
|
|
219
271
|
|
|
220
|
-
|
|
221
|
-
python3 control/cli.py --help
|
|
272
|
+
The control plane manages the `dev` system itself (not for managing other projects).
|
|
222
273
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
dev
|
|
226
|
-
dev
|
|
227
|
-
dev
|
|
228
|
-
dev-control seed # re-seed control.db
|
|
229
|
-
dev-control selfcheck # engine self-diagnostics
|
|
230
|
-
dev-control runs # show run history from dev.db
|
|
231
|
-
dev-control projects # show registered projects
|
|
232
|
-
dev-control manifest # query file manifest from control.db
|
|
274
|
+
```bash
|
|
275
|
+
# Vet, seed, and publish
|
|
276
|
+
python3 /Volumes/intel/systems/dev/control/scripts/vet.py # lint + typecheck + tests
|
|
277
|
+
python3 /Volumes/intel/systems/dev/control/scripts/seed.py # re-seed control.db
|
|
278
|
+
python3 /Volumes/intel/systems/dev/control/scripts/push.py # vet + git push + PyPI publish
|
|
233
279
|
```
|
|
234
280
|
|
|
235
281
|
## 🤝 Contributing
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.3.1
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.3.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/kernel/pmf_kernel.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/ui/static/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/workflow/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/workflow/changelog.py
RENAMED
|
File without changes
|
{development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/workflow/preflight.py
RENAMED
|
File without changes
|
|
File without changes
|
{development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/dev/workflow/versioning.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{development_engine_vector-0.3.0 → development_engine_vector-0.3.1}/tests/test_cda_preflight.py
RENAMED
|
File without changes
|
|
File without changes
|