ndomo 0.1.0 → 0.2.0
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.
- package/.env.example +4 -0
- package/README.es.md +29 -23
- package/README.md +64 -24
- package/bun.lock +447 -0
- package/docs/configuration.md +4 -4
- package/docs/installation.md +53 -34
- package/docs/installer.md +164 -0
- package/docs/integrations.md +1 -1
- package/docs/web-ui.md +124 -0
- package/package.json +43 -4
- package/scripts/install.sh +28 -0
- package/scripts/smoke-install.sh +47 -0
- package/scripts/smoke-web.sh +335 -0
- package/src/cli/__tests__/install.test.ts +733 -0
- package/src/cli/index.ts +8 -0
- package/src/cli/install.ts +1292 -0
- package/src/config/__tests__/schema.test.ts +223 -0
- package/src/config/schema.ts +129 -16
- package/src/http/__tests__/auth.test.ts +10 -10
- package/src/http/__tests__/spa.test.ts +296 -0
- package/src/http/auth.ts +8 -1
- package/src/http/server.ts +71 -2
- package/.bun-version +0 -1
- package/.dockerignore +0 -79
- package/.editorconfig +0 -18
- package/.github/CODEOWNERS +0 -8
- package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -62
- package/.github/ISSUE_TEMPLATE/config.yml +0 -2
- package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -34
- package/.github/dependabot.yml +0 -36
- package/.github/pull_request_template.md +0 -24
- package/.github/release.yml +0 -30
- package/.github/workflows/gitleaks.yml +0 -28
- package/.github/workflows/release-please.yml +0 -27
- package/.github/workflows/smoke.yml +0 -29
- package/.husky/commit-msg +0 -1
- package/CHANGELOG.md +0 -114
- package/Dockerfile +0 -32
- package/bin/ndomo-analyses.ts +0 -4
- package/bin/ndomo-status.ts +0 -4
- package/biome.json +0 -57
- package/commitlint.config.js +0 -3
- package/opencode.json +0 -5
- package/release-please-config.json +0 -11
- package/scripts/dev-bust-cache.sh +0 -164
- package/scripts/smoke-e2e.ts +0 -704
- package/scripts/smoke-hot.ts +0 -417
- package/scripts/smoke-v4.ts +0 -256
- package/scripts/smoke-v5.ts +0 -397
- package/scripts/uninstall.sh +0 -224
- package/src/index.ts +0 -37
- package/src/lib.ts +0 -65
- package/src/mem/scoped.ts +0 -65
- package/src/orchestrator/background.test.ts +0 -268
- package/src/orchestrator/background.ts +0 -293
- package/src/orchestrator/memory-hook.ts +0 -182
- package/src/orchestrator/reconciler.ts +0 -123
- package/src/orchestrator/scheduler.test.ts +0 -300
- package/src/orchestrator/scheduler.ts +0 -243
- package/src/plugin.test.ts +0 -2574
- package/src/plugin.ts +0 -1690
- package/src/worktrees/manager.ts +0 -236
- package/src/worktrees/state.ts +0 -87
- package/tests/integration/ranger-flow.test.ts +0 -257
- package/tsconfig.json +0 -31
package/.env.example
CHANGED
|
@@ -17,3 +17,7 @@ OPENCODE_SERVER_PASSWORD=
|
|
|
17
17
|
|
|
18
18
|
# OpenCode server URL for SDK client (default: http://localhost:4096)
|
|
19
19
|
OPENCODE_SERVER_URL=http://localhost:4096
|
|
20
|
+
|
|
21
|
+
# Web UI build-time API base (default: empty = same-origin). Set when SPA and API
|
|
22
|
+
# are on different origins (e.g., VITE_API_BASE=https://api.example.com during dev).
|
|
23
|
+
# VITE_API_BASE=
|
package/README.es.md
CHANGED
|
@@ -36,25 +36,25 @@ ndomo es un plugin de orquestación multi-agente para [OpenCode](https://github.
|
|
|
36
36
|
## Inicio Rápido
|
|
37
37
|
|
|
38
38
|
```bash
|
|
39
|
-
# Instalación rápida (interactivo, preguntará por
|
|
40
|
-
|
|
39
|
+
# Instalación rápida (interactivo, preguntará por HTTP)
|
|
40
|
+
bunx ndomo install
|
|
41
41
|
|
|
42
|
-
# No interactivo con
|
|
43
|
-
|
|
42
|
+
# No interactivo con preset + HTTP habilitado
|
|
43
|
+
bunx ndomo install --preset=budget --enable-http
|
|
44
44
|
|
|
45
|
-
# Con
|
|
46
|
-
|
|
45
|
+
# Con DCP
|
|
46
|
+
bunx ndomo install --with-dcp
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
Por defecto la instalación aplica `presets.default` de `config/ndomo.config.json`. Usa `--preset=budget` para modelos más económicos, `--provider=ID` para sobrescribir el prefijo de provider.
|
|
49
|
+
Por defecto la instalación aplica `presets.default` de `config/ndomo.config.json`. Usa `--preset=budget` para modelos más económicos, `--provider=ID` para sobrescribir el prefijo de provider, `--enable-http` para activar el servidor HTTP.
|
|
50
50
|
|
|
51
51
|
O desde el código fuente:
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
|
-
git clone
|
|
54
|
+
git clone https://github.com/nicosup98/ndomo-v2 ndomo
|
|
55
55
|
cd ndomo
|
|
56
56
|
bun install
|
|
57
|
-
|
|
57
|
+
bun run src/cli/install.ts
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
Dentro de OpenCode, verifica que todos los agentes respondan:
|
|
@@ -67,30 +67,31 @@ ping all agents
|
|
|
67
67
|
|
|
68
68
|
**Requisitos:** [bun](https://bun.sh) >= 1.1.0, OpenCode instalado y configurado con al menos un proveedor autenticado.
|
|
69
69
|
|
|
70
|
-
Instalación vía
|
|
70
|
+
Instalación vía bunx (recomendada):
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
|
-
# Instalación interactiva (preguntará por
|
|
74
|
-
|
|
73
|
+
# Instalación interactiva (preguntará por HTTP)
|
|
74
|
+
bunx ndomo install
|
|
75
75
|
|
|
76
76
|
# Con provider preestablecido (no interactivo)
|
|
77
|
-
|
|
77
|
+
bunx ndomo install --provider=opencode --no-provider-prompt
|
|
78
78
|
|
|
79
79
|
# Con preset budget + DCP
|
|
80
|
-
|
|
80
|
+
bunx ndomo install --preset=budget --with-dcp
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
O desde un clon local:
|
|
84
84
|
|
|
85
85
|
```bash
|
|
86
|
-
git clone
|
|
86
|
+
git clone https://github.com/nicosup98/ndomo-v2 ndomo
|
|
87
87
|
cd ndomo
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
bun install
|
|
89
|
+
bun run src/cli/install.ts # con preset default
|
|
90
|
+
bun run src/cli/install.ts --preset=budget # con modelos budget
|
|
91
|
+
bun run src/cli/install.ts --with-dcp # incluye plugin DCP
|
|
91
92
|
```
|
|
92
93
|
|
|
93
|
-
Ver [docs/
|
|
94
|
+
Ver [docs/installer.md](docs/installer.md) para pasos detallados.
|
|
94
95
|
|
|
95
96
|
**Flags:**
|
|
96
97
|
|
|
@@ -100,10 +101,15 @@ Ver [docs/installation.md](docs/installation.md) para pasos detallados.
|
|
|
100
101
|
| `--no-provider-prompt` | Omite el prompt interactivo de provider. El preset se aplica igualmente; no se realiza ninguna sobrescritura de prefijo de provider. |
|
|
101
102
|
| `--preset=NAME` | Selecciona un preset de `config/ndomo.config.json::presets[NAME]`. El preset es la fuente de verdad para los modelos de agentes al instalar. (default: `default`, opciones: `default`, `budget`) |
|
|
102
103
|
| `--with-dcp` | Instala y configura el plugin DCP. |
|
|
103
|
-
| `--
|
|
104
|
-
| `--
|
|
105
|
-
|
|
106
|
-
|
|
104
|
+
| `--dry-run` | Imprime los cambios planeados sin escribir archivos. |
|
|
105
|
+
| `--skip-deps` | Omite el paso de dependencias (`bun install`). |
|
|
106
|
+
| `--enable-http` | Activa automáticamente el servidor HTTP (escribe bloque http en `ndomo.config.json`). |
|
|
107
|
+
| `--disable-http` | Omite por completo el prompt automático de HTTP (default en no-TTY / CI). |
|
|
108
|
+
| `--port=N` | Puerto del servidor HTTP (default: `4097`). |
|
|
109
|
+
| `--cors-origins=CSV` | Orígenes CORS del HTTP, separados por comas (default: `*`). |
|
|
110
|
+
| `--auth-required=BOOL` | Requisito de auth HTTP (default: `true`). |
|
|
111
|
+
|
|
112
|
+
**Desinstalación:** `bunx ndomo install --uninstall` or `./scripts/uninstall.sh [--keep-data]`
|
|
107
113
|
|
|
108
114
|
## Base de Datos de Planes y Tareas
|
|
109
115
|
|
package/README.md
CHANGED
|
@@ -36,25 +36,25 @@ ndomo is a multi-agent orchestration plugin for [OpenCode](https://github.com/op
|
|
|
36
36
|
## Quick Start
|
|
37
37
|
|
|
38
38
|
```bash
|
|
39
|
-
# Quick install (interactive, will prompt for
|
|
40
|
-
|
|
39
|
+
# Quick install (interactive, will prompt for HTTP)
|
|
40
|
+
bunx ndomo install
|
|
41
41
|
|
|
42
|
-
# Non-interactive with
|
|
43
|
-
|
|
42
|
+
# Non-interactive with preset + HTTP enabled
|
|
43
|
+
bunx ndomo install --preset=budget --enable-http
|
|
44
44
|
|
|
45
|
-
# With
|
|
46
|
-
|
|
45
|
+
# With DCP
|
|
46
|
+
bunx ndomo install --with-dcp
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
By default the install applies `presets.default` from `config/ndomo.config.json`. Use `--preset=budget` for cheaper models, `--provider=ID` to override the provider prefix.
|
|
49
|
+
By default the install applies `presets.default` from `config/ndomo.config.json`. Use `--preset=budget` for cheaper models, `--provider=ID` to override the provider prefix. See [docs/installer.md](docs/installer.md) for the full flag reference.
|
|
50
50
|
|
|
51
51
|
Or from source:
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
|
-
git clone
|
|
54
|
+
git clone https://github.com/nicosup98/ndomo-v2 ndomo
|
|
55
55
|
cd ndomo
|
|
56
56
|
bun install
|
|
57
|
-
|
|
57
|
+
bun run src/cli/install.ts
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
Inside OpenCode, verify all agents respond:
|
|
@@ -67,43 +67,51 @@ ping all agents
|
|
|
67
67
|
|
|
68
68
|
**Prerequisites:** [bun](https://bun.sh) >= 1.1.0, OpenCode installed and configured with at least one authenticated provider.
|
|
69
69
|
|
|
70
|
-
Install via
|
|
70
|
+
Install via bunx (recommended):
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
|
-
# Interactive install (will prompt for
|
|
74
|
-
|
|
73
|
+
# Interactive install (will prompt for HTTP)
|
|
74
|
+
bunx ndomo install
|
|
75
75
|
|
|
76
76
|
# With provider preset (non-interactive)
|
|
77
|
-
|
|
77
|
+
bunx ndomo install --provider=opencode --no-provider-prompt
|
|
78
78
|
|
|
79
79
|
# With budget preset + DCP
|
|
80
|
-
|
|
80
|
+
bunx ndomo install --preset=budget --with-dcp
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
Or from a local clone:
|
|
84
84
|
|
|
85
85
|
```bash
|
|
86
|
-
git clone
|
|
86
|
+
git clone https://github.com/nicosup98/ndomo-v2 ndomo
|
|
87
87
|
cd ndomo
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
bun install
|
|
89
|
+
bun run src/cli/install.ts # default preset
|
|
90
|
+
bun run src/cli/install.ts --preset=budget # budget models
|
|
91
|
+
bun run src/cli/install.ts --with-dcp # include DCP plugin
|
|
91
92
|
```
|
|
92
93
|
|
|
93
|
-
See [docs/
|
|
94
|
+
See [docs/installer.md](docs/installer.md) for detailed steps and full flag reference.
|
|
95
|
+
|
|
96
|
+
> **Migration note:** `scripts/install.sh` is preserved in the published tarball as a **compat shim for users coming from `curl -fsSL ... | bash`** (the pre-0.2.0 install path). It is deprecated — new installs should use `bunx ndomo install`. The shim is not removed to avoid breaking legacy one-liners, but no new features will be added there.
|
|
94
97
|
|
|
95
98
|
**Flags:**
|
|
96
99
|
|
|
97
100
|
| Flag | Description |
|
|
98
101
|
|---|---|
|
|
99
|
-
| `--provider=ID` | Override the provider prefix for all agents. The model ID is taken from the active preset; only the `provider/` segment of the `model:` field is swapped.
|
|
102
|
+
| `--provider=ID` | Override the provider prefix for all agents. The model ID is taken from the active preset; only the `provider/` segment of the `model:` field is swapped. |
|
|
100
103
|
| `--no-provider-prompt` | Skip the interactive provider prompt. The preset is still applied; no provider prefix override is performed. |
|
|
101
|
-
| `--preset=NAME` | Select preset from `config/ndomo.config.json::presets[NAME]`.
|
|
104
|
+
| `--preset=NAME` | Select preset from `config/ndomo.config.json::presets[NAME]`. (default: `default`, options: `default`, `budget`) |
|
|
102
105
|
| `--with-dcp` | Install and configure the DCP plugin. |
|
|
103
|
-
| `--
|
|
104
|
-
| `--
|
|
106
|
+
| `--dry-run` | Print planned changes without writing files. |
|
|
107
|
+
| `--skip-deps` | Skip the `bun install` dependency step. |
|
|
108
|
+
| `--enable-http` | Auto-enable HTTP server (writes http block to `ndomo.config.json`). |
|
|
109
|
+
| `--disable-http` | Skip the HTTP auto-prompt entirely (default in non-TTY / CI). |
|
|
110
|
+
| `--port=N` | HTTP server port (default: `4097`). |
|
|
111
|
+
| `--cors-origins=CSV` | HTTP CORS origins, comma-separated (default: `*`). |
|
|
112
|
+
| `--auth-required=BOOL` | HTTP auth requirement (default: `true`). |
|
|
105
113
|
|
|
106
|
-
**Uninstall:** `./scripts/uninstall.sh [--keep-data]`
|
|
114
|
+
**Uninstall:** `bunx ndomo install --uninstall` or `./scripts/uninstall.sh [--keep-data]`
|
|
107
115
|
|
|
108
116
|
## Plans & Tasks DB
|
|
109
117
|
|
|
@@ -158,10 +166,42 @@ ndomo bundles 7 skills under `skills/`:
|
|
|
158
166
|
|
|
159
167
|
See [docs/integrations.md](docs/integrations.md) for details.
|
|
160
168
|
|
|
169
|
+
## Web UI
|
|
170
|
+
|
|
171
|
+
The HTTP server includes a read-only Vue 3 SPA for browsing plans, tasks, and sessions in the browser. Single-port topology — the same Elysia process serves both the API (`/api/*`) and the SPA (everything else, with hash-mode fallback).
|
|
172
|
+
|
|
173
|
+
See [docs/web-ui.md](docs/web-ui.md) for architecture, build pipeline, and extension guide.
|
|
174
|
+
|
|
175
|
+
Quick start:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
bun run web:build # build SPA -> src/http/web/
|
|
179
|
+
NDOMO_HTTP_ENABLED=true OPENCODE_SERVER_PASSWORD=secret bun run src/cli/serve.ts
|
|
180
|
+
# Open http://localhost:4097/
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Vite dev mode (HMR):
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
# Terminal 1: server
|
|
187
|
+
NDOMO_HTTP_ENABLED=true OPENCODE_SERVER_PASSWORD=secret bun run src/cli/serve.ts
|
|
188
|
+
# Terminal 2: SPA dev
|
|
189
|
+
bun run web:dev
|
|
190
|
+
# Open http://localhost:5173/
|
|
191
|
+
```
|
|
192
|
+
|
|
161
193
|
## Optional HTTP server
|
|
162
194
|
|
|
163
195
|
Expose ndomo's SQLite state and OpenCode SDK event stream over HTTP+SSE via an embedded Elysia server. Phase 1 ships read-only REST endpoints (`/api/plans`, `/api/tasks`, `/api/sessions`) and a live SSE relay (`/api/events`).
|
|
164
196
|
|
|
197
|
+
**Recommended: use the installer flag to enable HTTP:**
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
bunx ndomo install --enable-http
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Or set env vars manually and start the server:
|
|
204
|
+
|
|
165
205
|
```bash
|
|
166
206
|
export NDOMO_HTTP_ENABLED=true
|
|
167
207
|
export OPENCODE_SERVER_PASSWORD='pick-a-strong-passphrase'
|