@agimon-ai/doompi 0.0.1-alpha.21 → 0.0.1-alpha.22
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/README.md +158 -101
- package/package.json +19 -19
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# DoomPi
|
|
2
2
|
|
|
3
3
|
**A coding agent that loads only the skills and tools you name.**
|
|
4
4
|
|
|
@@ -6,14 +6,15 @@
|
|
|
6
6
|
> wakes up with database tools, browser controls, and their small novel of schemas. This
|
|
7
7
|
> is our config.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
DoomPi is an opinionated, composable distribution of [Pi](https://github.com/earendil-works/pi). It is closer
|
|
10
|
+
in spirit to Spacemacs, Doom Emacs, or a curated Neovim setup than to a single plugin. It is tailored
|
|
11
|
+
for people whose agent has one MCP server too many. It turns extensions, skills,
|
|
11
12
|
MCP servers, and system prompts into config instead of background noise.
|
|
12
13
|
|
|
13
|
-

|
|
14
15
|
|
|
15
16
|
Plugin systems scope what an agent knows. Nothing scopes what it can reach. Claude Code's
|
|
16
|
-
`enableAllProjectMcpServers` and static denylist are repository-wide.
|
|
17
|
+
`enableAllProjectMcpServers` and static denylist are repository-wide. DoomPi draws that
|
|
17
18
|
boundary around the session. Pick a major mode and some domains; add a profile if you want
|
|
18
19
|
one. Four YAML files decide what loads; `doompi --explain` tells you what got in, why, and
|
|
19
20
|
what it costs before launch.
|
|
@@ -30,6 +31,14 @@ npm install -g @agimon-ai/doompi
|
|
|
30
31
|
|
|
31
32
|
The package pins and installs the upstream Pi version used by `dpi`.
|
|
32
33
|
|
|
34
|
+
## Status and requirements
|
|
35
|
+
|
|
36
|
+
DoomPi is alpha software. Configuration and package boundaries may still change between alpha releases.
|
|
37
|
+
|
|
38
|
+
- Node.js 22.19.0 or newer
|
|
39
|
+
- macOS or Linux on arm64 or x64 for the bundled Runner backend
|
|
40
|
+
- Pi 0.84.2 and Pi TUI 0.84.2 for packages that declare them as peer requirements
|
|
41
|
+
|
|
33
42
|
## Try DoomPi without replacing your Pi setup
|
|
34
43
|
|
|
35
44
|
`dpi` is the comparison runner. Use it to try DoomPi beside your current `pi` customization
|
|
@@ -51,43 +60,14 @@ not register DoomPi in either normal Pi settings file.
|
|
|
51
60
|
|
|
52
61
|
### Sync storage and worktrees
|
|
53
62
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
```text
|
|
57
|
-
~/.pi/.doom/sync/<repo-label>--<repo-id-32hex>/
|
|
58
|
-
shared-cache/objects/<full-build-sha256>/
|
|
59
|
-
worktrees/<worktree-label>--<worktree-id-32hex>/
|
|
60
|
-
```
|
|
63
|
+
DoomPi stores generated sync state under `~/.pi/.doom/sync`, outside the repository. Each
|
|
64
|
+
Git worktree gets isolated runtime state while immutable build artifacts may be shared.
|
|
61
65
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
content-addressed build objects but never share state, `dist`, manifests, staged
|
|
65
|
-
resources, or per-process `run` files. Runtime loading uses only verified artifacts
|
|
66
|
-
materialized in the current worktree directory; it never loads directly from the
|
|
67
|
-
shared cache. The global `~/.pi/.doom/*.yaml` configuration and persistent
|
|
68
|
-
`~/.pi/.doom/plugin-cache` behavior are unchanged.
|
|
69
|
-
|
|
70
|
-
Older releases may have written state under `<repository>/.pi/doom`. That location
|
|
71
|
-
is a read-only fallback only when the corresponding home-scoped state is absent.
|
|
72
|
-
`doompi sync --check` reports that migration is required, and `doompi sync` rebuilds
|
|
73
|
-
into the home-scoped worktree namespace rather than copying the legacy files. DoomPi
|
|
74
|
-
does not automatically delete legacy, orphaned, or unused generated directories.
|
|
75
|
-
|
|
76
|
-
For a fair comparison, `dpi` lets Pi merge the same ordinary settings from
|
|
77
|
-
`~/.pi/agent/settings.json` and `<repo>/.pi/settings.json`. It then overlays only these
|
|
78
|
-
DoomPi-owned values in memory:
|
|
79
|
-
|
|
80
|
-
```json
|
|
81
|
-
{
|
|
82
|
-
"extensions": ["@agimon-ai/doompi", "!extensions/**"],
|
|
83
|
-
"themes": ["themes/doom-pi-dark.json"],
|
|
84
|
-
"theme": "doom-pi-dark",
|
|
85
|
-
"quietStartup": true
|
|
86
|
-
}
|
|
87
|
-
```
|
|
66
|
+
`dpi` preserves Pi's normal global and repository settings, then applies DoomPi's extension
|
|
67
|
+
and theme settings in memory. It never writes those values to `.pi/settings.json`.
|
|
88
68
|
|
|
89
|
-
|
|
90
|
-
|
|
69
|
+
Run `doompi sync --check` to detect stale or legacy state. Run `doompi sync` to rebuild it
|
|
70
|
+
in the current home-scoped layout.
|
|
91
71
|
|
|
92
72
|
When you are comfortable with DoomPi and no longer need the side-by-side experiment, register
|
|
93
73
|
it for normal Pi:
|
|
@@ -108,7 +88,7 @@ doompi --domains analytics --explain
|
|
|
108
88
|
|
|
109
89
|
## Philosophy
|
|
110
90
|
|
|
111
|
-
An agent does not need every tool for every job.
|
|
91
|
+
An agent does not need every tool for every job. DoomPi separates the base session from
|
|
112
92
|
the things you switch on for a while: modes choose behavior, domains choose subject
|
|
113
93
|
matter, and profiles choose a point of view.
|
|
114
94
|
|
|
@@ -119,14 +99,14 @@ or whatever else you do. Define as many as you like; only one is active at a tim
|
|
|
119
99
|
can switch it without leaving the session.
|
|
120
100
|
|
|
121
101
|
Minor modes are battery-included switches inside that base. They start off, stack freely,
|
|
122
|
-
and keep their model tools and skills out of context until turned on.
|
|
102
|
+
and keep their model tools and skills out of context until turned on. DoomPi ships six:
|
|
123
103
|
|
|
124
|
-
- **Help mode
|
|
125
|
-
- **Plan mode
|
|
126
|
-
- **Loop mode
|
|
127
|
-
- **Goal mode
|
|
128
|
-
- **Workflow mode
|
|
129
|
-
- **Voice mode
|
|
104
|
+
- **Help mode:** expose package-owned guidance only while you need it.
|
|
105
|
+
- **Plan mode:** remove Pi's file-editing tools while you agree on an approach.
|
|
106
|
+
- **Loop mode:** run a prompt now, then run it again on a schedule.
|
|
107
|
+
- **Goal mode:** keep one objective in view until it is done or dismissed.
|
|
108
|
+
- **Workflow mode:** run jobs with dependencies, timeouts, and artifacts.
|
|
109
|
+
- **Voice mode:** replace typing with local speech.
|
|
130
110
|
|
|
131
111
|
### Domains
|
|
132
112
|
|
|
@@ -143,7 +123,7 @@ plugins:
|
|
|
143
123
|
entries:
|
|
144
124
|
remote-review:
|
|
145
125
|
source: url
|
|
146
|
-
url:
|
|
126
|
+
url: '<REVIEW_PLUGIN_GIT_URL>'
|
|
147
127
|
ref: v1.2.0
|
|
148
128
|
|
|
149
129
|
domains:
|
|
@@ -213,8 +193,8 @@ Together they can dispatch structured jobs from one live session.
|
|
|
213
193
|
|
|
214
194
|
#### Workflows
|
|
215
195
|
|
|
216
|
-
GitHub Actions already has a decent vocabulary for long jobs, so
|
|
217
|
-
declares the
|
|
196
|
+
GitHub Actions already has a decent vocabulary for long jobs, so DoomPi reuses it. Each job
|
|
197
|
+
declares the DoomPi session it wants. Here, implementation gets coding tools; the release
|
|
218
198
|
note waits for it and gets marketing context plus a brand voice:
|
|
219
199
|
|
|
220
200
|
```yaml
|
|
@@ -223,21 +203,21 @@ on:
|
|
|
223
203
|
|
|
224
204
|
jobs:
|
|
225
205
|
implement:
|
|
206
|
+
runs-on: ubuntu-latest
|
|
226
207
|
steps:
|
|
227
208
|
- name: Build the feature
|
|
228
209
|
timeout-minutes: 180
|
|
229
|
-
artifacts: [implementation/report.md]
|
|
230
210
|
interactiveRun:
|
|
231
211
|
default: |
|
|
232
212
|
doompi --major-mode dev --domains development --auto-stop \
|
|
233
213
|
--cwd "$PWD" "$JOB_SYSTEM_PROMPT"
|
|
234
214
|
|
|
235
215
|
release-note:
|
|
216
|
+
runs-on: ubuntu-latest
|
|
236
217
|
needs: implement
|
|
237
218
|
steps:
|
|
238
219
|
- name: Write the release note
|
|
239
220
|
timeout-minutes: 30
|
|
240
|
-
artifacts: [marketing/release-note.md]
|
|
241
221
|
interactiveRun:
|
|
242
222
|
default: |
|
|
243
223
|
doompi --major-mode marketing --domains marketing \
|
|
@@ -253,51 +233,65 @@ it. One session becomes the dispatcher instead of the place every job has to fit
|
|
|
253
233
|
|
|
254
234
|
## Features
|
|
255
235
|
|
|
256
|
-
|
|
236
|
+
DoomPi is a distribution, not one giant extension. Each package owns one job; shared TUI
|
|
257
237
|
and session contracts make them behave like one. Use the defaults together or replace
|
|
258
238
|
them one at a time.
|
|
259
239
|
|
|
260
|
-
###
|
|
240
|
+
### Foundation and interface
|
|
241
|
+
|
|
242
|
+
#### Configuration and composition
|
|
261
243
|
|
|
262
244
|
[`@agimon-ai/doompi`][pkg-doompi] is both an extension and the command-line config compiler. `dpi init`
|
|
263
245
|
creates repository config for an isolated experiment, while `doompi init` creates the personal
|
|
264
|
-
config and registers the permanent Pi integration. The sync commands resolve every major mode
|
|
265
|
-
|
|
266
|
-
|
|
246
|
+
config and registers the permanent Pi integration. The sync commands resolve every major mode and domain into a distribution Pi can load quickly.
|
|
247
|
+
|
|
248
|
+
#### Supporting packages
|
|
249
|
+
|
|
250
|
+
[`@agimon-ai/doompi-config`][pkg-doompi-config] resolves the four YAML files and exposes the
|
|
251
|
+
configuration API. [`@agimon-ai/doompi-extension-contracts`][pkg-doompi-extension-contracts]
|
|
252
|
+
contains the shared protocol and Leader contracts used by extension authors.
|
|
253
|
+
[`@agimon-ai/doompi-file-edit`][pkg-doompi-file-edit] opens files in the configured editor and
|
|
254
|
+
keeps the edit timeline. [`@agimon-ai/doompi-log`][pkg-doompi-log] collects session events, while
|
|
255
|
+
[`@agimon-ai/doompi-telemetry`][pkg-doompi-telemetry] is the library-level telemetry adapter.
|
|
256
|
+
|
|
257
|
+
Runner selects one native artifact automatically; do not install these directly:
|
|
258
|
+
[`darwin-arm64`][pkg-rmux-darwin-arm64], [`darwin-x64`][pkg-rmux-darwin-x64],
|
|
259
|
+
[`linux-arm64`][pkg-rmux-linux-arm64], or [`linux-x64`][pkg-rmux-linux-x64].
|
|
267
260
|
|
|
268
|
-
|
|
261
|
+
#### Leader key
|
|
269
262
|
|
|
270
263
|
[`@agimon-ai/doompi-ui`][pkg-doompi-ui] turns `SPC` into a map of the available commands. It stays out of
|
|
271
264
|
the way when a draft is not empty, and other packages contribute bindings through one
|
|
272
265
|
leader API instead of hardcoding their own menus.
|
|
273
266
|
|
|
274
|
-
###
|
|
267
|
+
### Coordinated work
|
|
275
268
|
|
|
276
|
-
|
|
277
|
-
They can work in parallel, message one another, and use the model policy attached to the
|
|
278
|
-
selected Team package entry. `SPC a l` lists available agents; `SPC a r` opens current-session runs and
|
|
279
|
-
their controls.
|
|
269
|
+
#### Agent team
|
|
280
270
|
|
|
281
|
-
|
|
271
|
+
[`@agimon-ai/doompi-team`][pkg-doompi-team] runs named subagents asynchronously. It owns agents,
|
|
272
|
+
runs, membership, intercom, and model policy; Task owns the persistent task graph used for
|
|
273
|
+
delegation. Agents can work in parallel and message one another. `SPC a l` lists available agents;
|
|
274
|
+
`SPC a r` opens current-session runs and their controls.
|
|
275
|
+
|
|
276
|
+
#### Tasks
|
|
282
277
|
|
|
283
278
|
[`@agimon-ai/doompi-task`][pkg-doompi-task] keeps a task graph on disk, not a disposable checklist in the
|
|
284
|
-
transcript. Dependencies
|
|
285
|
-
subagent
|
|
279
|
+
transcript. Dependencies persist independently of transcript compaction, and work can be handed to
|
|
280
|
+
a subagent, including a smaller model when the job does not need the expensive one. Seeded
|
|
286
281
|
`minimal` and `copilot` modes select its `task` layer; omit that layer when a major mode
|
|
287
282
|
should not expose the task tool.
|
|
288
283
|
|
|
289
|
-
|
|
284
|
+
#### Runner
|
|
290
285
|
|
|
291
286
|
[`@agimon-ai/doompi-runner`][pkg-doompi-runner] replaces Pi's blocking `bash` tool with
|
|
292
287
|
supervised command execution in the generated default Copilot mode. Short commands still return
|
|
293
|
-
inline; commands that pass the configurable threshold
|
|
288
|
+
inline; commands that pass the configurable threshold of 60 seconds by default move into the
|
|
294
289
|
background with durable logs. Use `background: true` for an immediate detached run or
|
|
295
|
-
`interactive: true` when the command needs terminal input. Runner IDs
|
|
296
|
-
|
|
297
|
-
`doom-runner` CLI. Platform-specific RMUX binaries are selected automatically, with a fallback
|
|
290
|
+
`interactive: true` when the command needs terminal input. Runner IDs and durable logs remain available to the current session through Runner Space at
|
|
291
|
+
`SPC r r` or the `doom-runner` CLI. Platform-specific RMUX binaries are selected automatically, with a fallback
|
|
298
292
|
when RMUX is unavailable. Custom modes must include the `runner` layer to replace `bash`.
|
|
299
293
|
|
|
300
|
-
|
|
294
|
+
#### Auto-compact
|
|
301
295
|
|
|
302
296
|
Ordinary compaction waits for one summary to save an overgrown session.
|
|
303
297
|
[`@agimon-ai/doompi-autocompact`][pkg-doompi-autocompact] leaves checkpoints instead:
|
|
@@ -307,71 +301,76 @@ Ordinary compaction waits for one summary to save an overgrown session.
|
|
|
307
301
|
result is ready to use.
|
|
308
302
|
3. On the third pass, it combines them again and forces compaction.
|
|
309
303
|
|
|
310
|
-
The work runs off-thread
|
|
311
|
-
|
|
304
|
+
The work runs off-thread and can make up to three additional summarization calls. The standard
|
|
305
|
+
adapter preserves staged conversation checkpoints; Task and Team keep their own state rather than
|
|
306
|
+
being embedded as special snapshots in the compact summary.
|
|
307
|
+
|
|
308
|
+
### Context and access
|
|
312
309
|
|
|
313
|
-
|
|
310
|
+
#### Help mode
|
|
314
311
|
|
|
315
312
|
[`@agimon-ai/doompi-help`][pkg-doompi-help] keeps package guidance out of the default prompt. A fresh parent
|
|
316
313
|
session performs no Help retrieval and exposes no Help skills. Use `SPC h e`, or the existing
|
|
317
314
|
`minor_mode` client in headless sessions, to activate the package indexes; use the same action
|
|
318
315
|
to deactivate them before the next interaction. The initial contributors expose
|
|
319
|
-
`doompi-help`, `workflow-help`, and `doompi-config-help`.
|
|
320
|
-
Help runtime.
|
|
316
|
+
`doompi-help`, `workflow-help`, and `doompi-config-help`. DoomPi's default child-session assembly does not include the Help runtime.
|
|
321
317
|
|
|
322
|
-
|
|
318
|
+
#### MCP
|
|
323
319
|
|
|
324
320
|
[`@agimon-ai/doompi-mcp`][pkg-doompi-mcp] is the gate between a session and its servers. It reads `.mcp.json`
|
|
325
321
|
and other common formats, then exposes only the servers and proxy upstreams allowed by the
|
|
326
322
|
selected domains. Switch domains and that boundary reloads with them.
|
|
327
323
|
|
|
328
|
-
|
|
324
|
+
#### Ask user question
|
|
329
325
|
|
|
330
326
|
[`@agimon-ai/doompi-user-feedback`][pkg-doompi-user-feedback] gives the agent a structured question that actually
|
|
331
327
|
waits for an answer. In autonomous Voice mode it skips the modal, narrates the choices,
|
|
332
328
|
and accepts the next spoken response as an ordinary user message.
|
|
333
329
|
|
|
334
|
-
|
|
330
|
+
#### Logging and telemetry
|
|
331
|
+
|
|
332
|
+
DoomPi logging records operational metadata such as counters, spans, session IDs, tool names, and
|
|
333
|
+
errors. Callers remain responsible for values they attach to telemetry. `SPC h l` opens current-session
|
|
334
|
+
metrics, and [`@agimon-ai/log-sink-mcp`][pkg-log-sink-mcp] provides historical lookup when a sink is
|
|
335
|
+
configured.
|
|
335
336
|
|
|
336
|
-
|
|
337
|
-
SQLite database by default. `SPC h l` opens the metrics, and
|
|
338
|
-
[`@agimon-ai/log-sink-mcp`][pkg-log-sink-mcp] gives the agent CLI tools for inspecting its own
|
|
339
|
-
runs.
|
|
337
|
+
### Modes and automation
|
|
340
338
|
|
|
341
|
-
|
|
339
|
+
#### Plan mode
|
|
342
340
|
|
|
343
|
-
A promise to "only plan" is not a permission boundary. [`@agimon-ai/doompi-plan`][pkg-doompi-plan]
|
|
344
|
-
|
|
345
|
-
approval. Use `SPC p p` for normal planning, `SPC p d` for debug planning, `SPC p f` for
|
|
341
|
+
A promise to "only plan" is not a permission boundary. [`@agimon-ai/doompi-plan`][pkg-doompi-plan]
|
|
342
|
+
removes Pi's `edit` and `write` tools while the agent explores, persists the plan, and hands it back
|
|
343
|
+
for approval. It does not sandbox Bash, external tools, or the operating system. Use `SPC p p` for normal planning, `SPC p d` for debug planning, `SPC p f` for
|
|
346
344
|
the Fable flow, and `SPC p e` to exit. Turn it on when the approach should be settled
|
|
347
345
|
before the files move.
|
|
348
346
|
|
|
349
|
-
|
|
347
|
+
#### Loop mode
|
|
350
348
|
|
|
351
349
|
[`@agimon-ai/doompi-loop`][pkg-doompi-loop] is an in-session scheduler. It runs a prompt immediately and then
|
|
352
350
|
repeats it on an interval; several loops can coexist. Use `SPC l s` to start one and
|
|
353
351
|
`SPC l l` to list or stop them. It is for recurring checks and prompts that belong to the
|
|
354
352
|
current session.
|
|
355
353
|
|
|
356
|
-
|
|
354
|
+
#### Goal mode
|
|
357
355
|
|
|
358
356
|
[`@agimon-ai/doompi-goal`][pkg-doompi-goal] pins one objective to the session until it completes or you end
|
|
359
357
|
it. Use `SPC g g` for status, `SPC g s` to start, `SPC g e` to end, and `SPC g p` for
|
|
360
358
|
history. Finished goals leave the prompt and tools behind but remain in history when you
|
|
361
359
|
want to restart one.
|
|
362
360
|
|
|
363
|
-
|
|
361
|
+
#### Workflow mode
|
|
364
362
|
|
|
365
363
|
[`@agimon-ai/doompi-workflow`][pkg-doompi-workflow] runs GitHub Actions-style job graphs with dependencies,
|
|
366
|
-
timeouts, artifacts, and a separate
|
|
364
|
+
timeouts, artifacts, and a separate DoomPi session for each step. Use `SPC w w` to launch,
|
|
367
365
|
`SPC w l` to manage, `SPC w r` to recover a failed run, and `SPC w e` to give the agent
|
|
368
366
|
workflow tools or take them back. It is for work that needs hard job boundaries and
|
|
369
367
|
explicit handoffs rather than one long conversation.
|
|
370
368
|
|
|
371
|
-
|
|
369
|
+
#### Voice mode
|
|
372
370
|
|
|
373
|
-
[`@agimon-ai/doompi-voice`][pkg-doompi-voice]
|
|
374
|
-
|
|
371
|
+
[`@agimon-ai/doompi-voice`][pkg-doompi-voice] captures PCM audio through the local platform helper and
|
|
372
|
+
can transcribe it locally. Transcript text, session state, and model requests may still cross process
|
|
373
|
+
or provider boundaries according to the configured engines. `SPC v v` is one-shot manual dictation and never enables Voice tools. `SPC v a`
|
|
375
374
|
toggles autonomous capture; only its exact-active TUI session receives the two Voice
|
|
376
375
|
façades plus the standalone `narrate` tool.
|
|
377
376
|
|
|
@@ -392,7 +391,7 @@ available, and the same model continues to provide bounded command correction.
|
|
|
392
391
|
|
|
393
392
|
## Configuration
|
|
394
393
|
|
|
395
|
-
|
|
394
|
+
DoomPi reads four configuration files:
|
|
396
395
|
|
|
397
396
|
- `config.yaml` defines runtime settings such as trust, editor, planning, and voice behavior.
|
|
398
397
|
- `modes.yaml` defines extension layers and major modes.
|
|
@@ -400,7 +399,7 @@ Doompi reads four configuration files:
|
|
|
400
399
|
- `profiles.yaml` supplies persona files and environment defaults.
|
|
401
400
|
|
|
402
401
|
Each matrix file has two optional layers: personal defaults in `~/.pi/.doom/` and repository
|
|
403
|
-
overrides in `<repository>/.doom/`.
|
|
402
|
+
overrides in `<repository>/.doom/`. DoomPi loads both. Unique named entries from either layer
|
|
404
403
|
remain available; a same-named repository entry replaces the complete personal entry. Plugin
|
|
405
404
|
and profile roots from both layers are retained. Relative paths in personal config resolve
|
|
406
405
|
from `~/.pi/.doom/`; relative paths in repository config resolve from the repository root.
|
|
@@ -434,7 +433,7 @@ majorMode:
|
|
|
434
433
|
layers: [team, review]
|
|
435
434
|
```
|
|
436
435
|
|
|
437
|
-
Order matters:
|
|
436
|
+
Order matters: DoomPi assembles layers and their packages from left to right. Put settings
|
|
438
437
|
under the package that consumes them; a layer is composition, not a mystery bag of shared
|
|
439
438
|
configuration. Home and repository `layers` and `majorMode` records merge by name, with the
|
|
440
439
|
repository definition winning a collision.
|
|
@@ -456,7 +455,7 @@ plugins:
|
|
|
456
455
|
entries:
|
|
457
456
|
remote-review:
|
|
458
457
|
source: url
|
|
459
|
-
url:
|
|
458
|
+
url: '<REVIEW_PLUGIN_GIT_URL>'
|
|
460
459
|
ref: v1.2.0
|
|
461
460
|
published-research:
|
|
462
461
|
source: npm
|
|
@@ -499,7 +498,7 @@ amount of repository context is none.
|
|
|
499
498
|
|
|
500
499
|
A profile directory becomes discoverable when it directly contains `profile.md`, `SOUL.md`,
|
|
501
500
|
or `AGENTS.md`. A root may be one profile or a container of direct-child profiles. The folder
|
|
502
|
-
name becomes the profile name;
|
|
501
|
+
name becomes the profile name; DoomPi concatenates those three files in that order.
|
|
503
502
|
|
|
504
503
|
```yaml
|
|
505
504
|
profiles:
|
|
@@ -541,6 +540,56 @@ DPI without registering it in normal Pi settings. `doompi sync --check` turns dr
|
|
|
541
540
|
non-zero exit code for CI. If the explanation is surprising, fix the YAML before paying a model
|
|
542
541
|
to be surprised with you.
|
|
543
542
|
|
|
543
|
+
## Trust and data boundaries
|
|
544
|
+
|
|
545
|
+
DoomPi executes the extensions, remote Git/npm plugins, hooks, MCP stdio commands, workflows, and
|
|
546
|
+
shell commands you configure. Treat them as trusted executable code. Runner commands inherit the
|
|
547
|
+
process environment and operating-system privileges; their logs may contain command output and
|
|
548
|
+
secrets. MCP credentials may live in the system keyring or private configuration files.
|
|
549
|
+
|
|
550
|
+
Voice can keep PCM capture and transcription local when local engines are selected, but transcript
|
|
551
|
+
text and model requests follow the configured providers. Loop, Workflow, Plan, Autocompact, Team,
|
|
552
|
+
and autonomous Voice can make additional model calls. Telemetry is disabled or redirected through
|
|
553
|
+
its owning package's controls; values supplied by callers are not automatically scrubbed.
|
|
554
|
+
|
|
555
|
+
## CLI reference
|
|
556
|
+
|
|
557
|
+
| Command or option | What it does |
|
|
558
|
+
| -------------------------------------------- | -------------------------------------------------------------------------------- |
|
|
559
|
+
| `dpi init`, `dpi sync`, `dpi` | Creates, synchronizes, and runs the repository-scoped comparison setup |
|
|
560
|
+
| `doompi init`, `doompi sync` | Seeds personal config, builds synchronized state, and registers DoomPi with Pi |
|
|
561
|
+
| `doompi sync --check` | Exits non-zero when synchronized state is stale or legacy state needs migration |
|
|
562
|
+
| `doompi compat <codex\|claude\|antigravity>` | Resolves the selected matrix and launches the compatibility adapter |
|
|
563
|
+
| `doom-runner` | Inspects and controls supervised Runner processes and logs |
|
|
564
|
+
| `--explain` | Prints the resolved matrix and estimated prompt cost without launching Pi |
|
|
565
|
+
| `--emit-mcp <dir>`, `--no-mcp` | Writes the resolved MCP config or disables MCP for one run |
|
|
566
|
+
| `--cwd <path>`, `--auto-stop` | Chooses the working directory or exits after an interactive agent settles |
|
|
567
|
+
| `--` and remaining arguments | Forwards provider or Pi arguments unchanged where the selected command allows it |
|
|
568
|
+
|
|
569
|
+
## Troubleshooting and direct use
|
|
570
|
+
|
|
571
|
+
- Run `doompi sync --check` to detect drift and `doompi sync` to rebuild synchronized state.
|
|
572
|
+
- If RMUX is unavailable on a supported target, Runner reports the fallback it uses. Linux native
|
|
573
|
+
artifacts require a compatible loader and libc environment.
|
|
574
|
+
- Leader menus and overlays require Pi's interactive TUI. Commands and tools remain the interface
|
|
575
|
+
for JSON, RPC, and other headless sessions where the owning package supports them.
|
|
576
|
+
- Install a directly loaded Pi subsystem with `pi install npm:@agimon-ai/<package>`. Library consumers
|
|
577
|
+
use `npm install`; native RMUX artifacts are selected by Runner and should not be installed directly.
|
|
578
|
+
The distribution remains the supported way to get the coordinated defaults.
|
|
579
|
+
|
|
580
|
+
## Development
|
|
581
|
+
|
|
582
|
+
```bash
|
|
583
|
+
nx build @agimon-ai/doompi
|
|
584
|
+
nx test @agimon-ai/doompi
|
|
585
|
+
nx typecheck @agimon-ai/doompi
|
|
586
|
+
nx lint @agimon-ai/doompi
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
## License
|
|
590
|
+
|
|
591
|
+
MIT
|
|
592
|
+
|
|
544
593
|
## Package release order
|
|
545
594
|
|
|
546
595
|
Publish [`@agimon-ai/doompi-extension-contracts`][pkg-doompi-extension-contracts] first, then
|
|
@@ -550,6 +599,14 @@ by the release tooling.
|
|
|
550
599
|
|
|
551
600
|
[pkg-doompi]: https://www.npmjs.com/package/@agimon-ai/doompi
|
|
552
601
|
[pkg-doompi-ui]: https://www.npmjs.com/package/@agimon-ai/doompi-ui
|
|
602
|
+
[pkg-doompi-config]: https://www.npmjs.com/package/@agimon-ai/doompi-config
|
|
603
|
+
[pkg-doompi-file-edit]: https://www.npmjs.com/package/@agimon-ai/doompi-file-edit
|
|
604
|
+
[pkg-doompi-log]: https://www.npmjs.com/package/@agimon-ai/doompi-log
|
|
605
|
+
[pkg-doompi-telemetry]: https://www.npmjs.com/package/@agimon-ai/doompi-telemetry
|
|
606
|
+
[pkg-rmux-darwin-arm64]: https://www.npmjs.com/package/@agimon-ai/doompi-runner-rmux-darwin-arm64
|
|
607
|
+
[pkg-rmux-darwin-x64]: https://www.npmjs.com/package/@agimon-ai/doompi-runner-rmux-darwin-x64
|
|
608
|
+
[pkg-rmux-linux-arm64]: https://www.npmjs.com/package/@agimon-ai/doompi-runner-rmux-linux-arm64
|
|
609
|
+
[pkg-rmux-linux-x64]: https://www.npmjs.com/package/@agimon-ai/doompi-runner-rmux-linux-x64
|
|
553
610
|
[pkg-doompi-team]: https://www.npmjs.com/package/@agimon-ai/doompi-team
|
|
554
611
|
[pkg-doompi-task]: https://www.npmjs.com/package/@agimon-ai/doompi-task
|
|
555
612
|
[pkg-doompi-runner]: https://www.npmjs.com/package/@agimon-ai/doompi-runner
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agimon-ai/doompi",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.22",
|
|
4
4
|
"description": "Pi-based agent harness for repository automations and developer workflows",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -346,24 +346,24 @@
|
|
|
346
346
|
"rolldown": "1.0.0-rc.17",
|
|
347
347
|
"typebox": "1.1.38",
|
|
348
348
|
"yaml": "2.9.0",
|
|
349
|
-
"@agimon-ai/doompi-
|
|
350
|
-
"@agimon-ai/doompi-
|
|
351
|
-
"@agimon-ai/doompi-
|
|
352
|
-
"@agimon-ai/doompi-
|
|
353
|
-
"@agimon-ai/doompi-
|
|
354
|
-
"@agimon-ai/doompi-
|
|
355
|
-
"@agimon-ai/doompi-
|
|
356
|
-
"@agimon-ai/doompi-
|
|
357
|
-
"@agimon-ai/doompi-
|
|
358
|
-
"@agimon-ai/doompi-
|
|
359
|
-
"@agimon-ai/doompi-
|
|
360
|
-
"@agimon-ai/doompi-
|
|
361
|
-
"@agimon-ai/doompi-
|
|
362
|
-
"@agimon-ai/doompi-
|
|
363
|
-
"@agimon-ai/doompi-
|
|
364
|
-
"@agimon-ai/doompi-
|
|
365
|
-
"@agimon-ai/doompi-
|
|
366
|
-
"@agimon-ai/doompi-
|
|
349
|
+
"@agimon-ai/doompi-extension-contracts": "0.0.1-alpha.22",
|
|
350
|
+
"@agimon-ai/doompi-autocompact": "0.0.1-alpha.22",
|
|
351
|
+
"@agimon-ai/doompi-file-edit": "0.0.1-alpha.22",
|
|
352
|
+
"@agimon-ai/doompi-goal": "0.0.1-alpha.12",
|
|
353
|
+
"@agimon-ai/doompi-config": "0.0.1-alpha.22",
|
|
354
|
+
"@agimon-ai/doompi-log": "0.0.1-alpha.22",
|
|
355
|
+
"@agimon-ai/doompi-loop": "0.0.1-alpha.22",
|
|
356
|
+
"@agimon-ai/doompi-help": "0.0.1-alpha.5",
|
|
357
|
+
"@agimon-ai/doompi-task": "0.0.1-alpha.22",
|
|
358
|
+
"@agimon-ai/doompi-mcp": "0.0.1-alpha.22",
|
|
359
|
+
"@agimon-ai/doompi-team": "0.0.1-alpha.22",
|
|
360
|
+
"@agimon-ai/doompi-user-feedback": "0.0.1-alpha.11",
|
|
361
|
+
"@agimon-ai/doompi-telemetry": "0.0.1-alpha.22",
|
|
362
|
+
"@agimon-ai/doompi-plan": "0.0.1-alpha.22",
|
|
363
|
+
"@agimon-ai/doompi-ui": "0.0.1-alpha.22",
|
|
364
|
+
"@agimon-ai/doompi-runner": "0.0.1-alpha.22",
|
|
365
|
+
"@agimon-ai/doompi-workflow": "0.0.1-alpha.22",
|
|
366
|
+
"@agimon-ai/doompi-voice": "0.0.1-alpha.22"
|
|
367
367
|
},
|
|
368
368
|
"devDependencies": {
|
|
369
369
|
"@earendil-works/pi-ai": "0.84.2",
|