@waishnav/devspace 1.0.3 → 1.0.4
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/dist/apply-patch.js +67 -64
- package/dist/cli.js +243 -4
- package/dist/config.js +6 -9
- package/dist/db/migrations.js +34 -0
- package/dist/db/schema.js +19 -0
- package/dist/local-agent-adapters.js +653 -0
- package/dist/local-agent-availability.js +119 -0
- package/dist/local-agent-path.js +24 -0
- package/dist/local-agent-profiles.js +135 -0
- package/dist/local-agent-runtime.js +48 -0
- package/dist/local-agent-store.js +145 -0
- package/dist/local-agent-targets.js +80 -0
- package/dist/process-sessions.js +11 -3
- package/dist/server.js +88 -50
- package/dist/skills.js +27 -3
- package/dist/ui/.vite/manifest.json +281 -281
- package/dist/ui/assets/{angular-html-D6nc7PYw.js → angular-html-CKeFzaPY.js} +1 -1
- package/dist/ui/assets/{angular-ts-BAIStLeI.js → angular-ts-0wcM_Zxf.js} +1 -1
- package/dist/ui/assets/{apl-CtEv5pop.js → apl-C7UdkNb2.js} +1 -1
- package/dist/ui/assets/{astro-CVFIMXc6.js → astro-DMqju4MJ.js} +1 -1
- package/dist/ui/assets/{blade-BgSlZ6jY.js → blade-DHanNgN5.js} +1 -1
- package/dist/ui/assets/{c-bxLlCV26.js → c-_iPKYPcx.js} +1 -1
- package/dist/ui/assets/{cobol-BuZ-r51r.js → cobol-CagdLJsE.js} +1 -1
- package/dist/ui/assets/{coffee-_JP0Joa7.js → coffee-CkNGriPi.js} +1 -1
- package/dist/ui/assets/{cpp-CP_eaz-H.js → cpp-CqmKOWIQ.js} +1 -1
- package/dist/ui/assets/{crystal-DZ-sEZd0.js → crystal-DbAbDEO1.js} +1 -1
- package/dist/ui/assets/{css-CZnyti9s.js → css-xwljL6Kw.js} +1 -1
- package/dist/ui/assets/{edge-DjsoDMTR.js → edge-CX3sYz15.js} +1 -1
- package/dist/ui/assets/{elixir-C5b04AkY.js → elixir-B3qL9hqd.js} +1 -1
- package/dist/ui/assets/{elm-Ddx-rgVY.js → elm-CH4vrjBp.js} +1 -1
- package/dist/ui/assets/{erb-cjF7oPcT.js → erb-CupHqynN.js} +1 -1
- package/dist/ui/assets/{git-rebase-DN5exBTl.js → git-rebase-CDxsU2LC.js} +1 -1
- package/dist/ui/assets/{glimmer-js-CEq0hNwa.js → glimmer-js-emkga3g1.js} +1 -1
- package/dist/ui/assets/{glimmer-ts-4uYGFkon.js → glimmer-ts-D8kQDnUw.js} +1 -1
- package/dist/ui/assets/{glsl-DEJ9tTWm.js → glsl-BtfTaPhi.js} +1 -1
- package/dist/ui/assets/{graphql-Bim5WuQh.js → graphql-DEus8iSO.js} +1 -1
- package/dist/ui/assets/{hack-BcyVIXhE.js → hack-DI8qpBqE.js} +1 -1
- package/dist/ui/assets/{haml-D9YaukDg.js → haml-Br1i1gmi.js} +1 -1
- package/dist/ui/assets/{handlebars-CFaMw9zH.js → handlebars-Ce23mu9x.js} +1 -1
- package/dist/ui/assets/{heavy-payload-B9aTqgfs.js → heavy-payload-BcZ_nGfF.js} +1 -1
- package/dist/ui/assets/{html-CgO_zx4D.js → html-RXVmfixf.js} +1 -1
- package/dist/ui/assets/{html-derivative-BxqkysJT.js → html-derivative-D1aqeobb.js} +1 -1
- package/dist/ui/assets/{http-CO5dv0RA.js → http-BebG00CE.js} +1 -1
- package/dist/ui/assets/{hurl-DRHtrK78.js → hurl-kHMuvenL.js} +1 -1
- package/dist/ui/assets/{java-BvHC_DgR.js → java-DYc2V5RJ.js} +1 -1
- package/dist/ui/assets/{javascript-C-3payQx.js → javascript-BcfzTzr3.js} +1 -1
- package/dist/ui/assets/{jinja-CAOPvEOH.js → jinja-D2RhihUZ.js} +1 -1
- package/dist/ui/assets/{jison-totCB1L-.js → jison-BuoFEePN.js} +1 -1
- package/dist/ui/assets/{json-D0J9rEe1.js → json-BIDkCuJA.js} +1 -1
- package/dist/ui/assets/{jsx-na-XQD_B.js → jsx-DHCL2HA0.js} +1 -1
- package/dist/ui/assets/{julia-CqrTtZ4-.js → julia-CvUQXscF.js} +1 -1
- package/dist/ui/assets/{just-pmrVSkMc.js → just-etc9R2qw.js} +1 -1
- package/dist/ui/assets/{latex-Cd_geX3E.js → latex-BB3zRnxC.js} +1 -1
- package/dist/ui/assets/{liquid-C6ky5sJ-.js → liquid-CIi5Mvpv.js} +1 -1
- package/dist/ui/assets/{lua-dgyBbeof.js → lua-Cox7XDiW.js} +1 -1
- package/dist/ui/assets/{marko-Dy5mfXY9.js → marko-ruBIRV0n.js} +1 -1
- package/dist/ui/assets/{mdc-7NUvxgI1.js → mdc-CcbvB9U5.js} +1 -1
- package/dist/ui/assets/{nginx-C-KiEXbI.js → nginx-DtWz6ZYE.js} +1 -1
- package/dist/ui/assets/{nim-BBw8kfl9.js → nim-BV5BR4P7.js} +1 -1
- package/dist/ui/assets/{perl-CyxhJgbO.js → perl-BvzoSaJ4.js} +1 -1
- package/dist/ui/assets/{php-m4LAOpam.js → php-C-clrAOy.js} +1 -1
- package/dist/ui/assets/{pug-Cpl0baYI.js → pug-E07_GXAr.js} +1 -1
- package/dist/ui/assets/{qml-BoSGNgIb.js → qml-dqt33dti.js} +1 -1
- package/dist/ui/assets/{r-C0JhqQd5.js → r-BcVQxsAw.js} +1 -1
- package/dist/ui/assets/{razor-CntsBNoh.js → razor-BW5T_UZ-.js} +1 -1
- package/dist/ui/assets/{regexp-BNZmOCRl.js → regexp-Ed_DEsuU.js} +1 -1
- package/dist/ui/assets/{review-payload-BgdWHWiv.js → review-payload-Dsmx33pY.js} +1 -1
- package/dist/ui/assets/{rst-BZ2XHIxM.js → rst-BkcGqLs8.js} +1 -1
- package/dist/ui/assets/{ruby-BIthfCTP.js → ruby-Sf_X_YID.js} +1 -1
- package/dist/ui/assets/{sas-5aT3fOla.js → sas-COsombsA.js} +1 -1
- package/dist/ui/assets/{scss-DZPfdkDy.js → scss-K6Ylfa26.js} +1 -1
- package/dist/ui/assets/{shellscript-DbhKc5Xj.js → shellscript-D2EdqkgV.js} +1 -1
- package/dist/ui/assets/{shellsession-X9-bcyHh.js → shellsession-jRXgXrnI.js} +1 -1
- package/dist/ui/assets/{soy-Bd4tecrW.js → soy-BGspKQWW.js} +1 -1
- package/dist/ui/assets/{sql-Chf5JrDn.js → sql-C4lAmYnM.js} +1 -1
- package/dist/ui/assets/{stata-DvMMIc_T.js → stata-DQWvRqxp.js} +1 -1
- package/dist/ui/assets/{surrealql-D5FMzVF5.js → surrealql-OmKt9XJ_.js} +1 -1
- package/dist/ui/assets/{svelte-CTiVXZrv.js → svelte-D0rUmwDI.js} +1 -1
- package/dist/ui/assets/{templ-ldnfq-7w.js → templ-B-U0RMc0.js} +1 -1
- package/dist/ui/assets/{tex-QW0_7T2r.js → tex-BIHD-btS.js} +1 -1
- package/dist/ui/assets/{ts-tags-CAKiWIBx.js → ts-tags-CGuDWfPC.js} +1 -1
- package/dist/ui/assets/{tsx-Bu9xJJmq.js → tsx-B0-h_HlD.js} +1 -1
- package/dist/ui/assets/{twig-Dp1752_V.js → twig-BN2qDJWN.js} +1 -1
- package/dist/ui/assets/{typescript-RfO03Kmm.js → typescript-BRnwPzY3.js} +1 -1
- package/dist/ui/assets/{useFileDiffInstance-DjqU4y1a.js → useFileDiffInstance-5ivdkUYO.js} +3 -3
- package/dist/ui/assets/{vue-Dlasv57G.js → vue-DekNU1qt.js} +1 -1
- package/dist/ui/assets/{vue-html-BHuJ7anu.js → vue-html-Bjlv-uvH.js} +1 -1
- package/dist/ui/assets/{vue-vine-CavE0PSk.js → vue-vine-C2Doytjq.js} +1 -1
- package/dist/ui/assets/{workspace-app-DGD9R89D.css → workspace-app-DASlX26z.css} +1 -1
- package/dist/ui/assets/{workspace-app-DDV_qdjx.js → workspace-app-DYi7VJam.js} +5 -5
- package/dist/ui/assets/{xml-Bbv64l4W.js → xml-pXbxxgI3.js} +1 -1
- package/dist/ui/assets/{xsl-Sro4gyQY.js → xsl-BEAlgDI2.js} +1 -1
- package/dist/ui/assets/{yaml-Du68c8sA.js → yaml-C1O-To71.js} +1 -1
- package/dist/ui/workspace-app.html +2 -2
- package/dist/user-config.js +21 -1
- package/dist/workspaces.js +3 -0
- package/docs/agent-profile-schema.md +165 -0
- package/docs/chatgpt-coding-workflow.md +24 -10
- package/docs/configuration.md +20 -8
- package/docs/gotchas.md +13 -0
- package/examples/agents/claude-implementer.md +30 -0
- package/examples/agents/codex-explorer.md +27 -0
- package/examples/agents/codex-qa-tester.md +29 -0
- package/examples/agents/codex-worker.md +25 -0
- package/examples/agents/copilot-reviewer.md +25 -0
- package/examples/agents/cursor-agent-worker.md +26 -0
- package/examples/agents/opencode-explorer.md +27 -0
- package/examples/agents/pi-reviewer.md +27 -0
- package/package.json +11 -3
- package/skills/subagent-delegation/SKILL.md +132 -0
- package/docs/codex-tool-mode-qa.md +0 -73
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Subagent profile schema
|
|
2
|
+
|
|
3
|
+
DevSpace agent profiles are user-owned markdown files with YAML
|
|
4
|
+
frontmatter. They describe roles such as reviewer, explorer, or implementer.
|
|
5
|
+
DevSpace owns provider invocation.
|
|
6
|
+
|
|
7
|
+
Profiles are discovered from:
|
|
8
|
+
|
|
9
|
+
- `~/.devspace/agents/*.md`
|
|
10
|
+
- `.devspace/agents/*.md`
|
|
11
|
+
|
|
12
|
+
Packaged files under `examples/agents/` are starter templates only.
|
|
13
|
+
|
|
14
|
+
## Minimal shape
|
|
15
|
+
|
|
16
|
+
```md
|
|
17
|
+
---
|
|
18
|
+
schema: devspace-agent/v1
|
|
19
|
+
name: reviewer
|
|
20
|
+
description: Read-only reviewer for bugs, security risks, and missing tests.
|
|
21
|
+
provider: codex
|
|
22
|
+
model: gpt-5.4
|
|
23
|
+
thinking: high
|
|
24
|
+
disabled: false
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
You are a read-only reviewer. Do not edit files.
|
|
28
|
+
Focus on correctness, security, test gaps, and maintainability.
|
|
29
|
+
Cite files and return concise findings.
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Frontmatter fields
|
|
33
|
+
|
|
34
|
+
### `schema`
|
|
35
|
+
|
|
36
|
+
Optional schema identifier:
|
|
37
|
+
|
|
38
|
+
```yaml
|
|
39
|
+
schema: devspace-agent/v1
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### `name`
|
|
43
|
+
|
|
44
|
+
Stable profile identifier shown to the model and accepted by:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
devspace agents run <name> "<prompt>"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Use lowercase kebab-case names. If omitted, DevSpace uses the filename without
|
|
51
|
+
`.md`.
|
|
52
|
+
|
|
53
|
+
### `description`
|
|
54
|
+
|
|
55
|
+
Required short purpose. This is exposed by `open_workspace` so the supervising
|
|
56
|
+
model can choose the right profile.
|
|
57
|
+
|
|
58
|
+
### `provider`
|
|
59
|
+
|
|
60
|
+
Required built-in provider id:
|
|
61
|
+
|
|
62
|
+
```yaml
|
|
63
|
+
provider: codex
|
|
64
|
+
provider: claude
|
|
65
|
+
provider: opencode
|
|
66
|
+
provider: pi
|
|
67
|
+
provider: cursor
|
|
68
|
+
provider: copilot
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Unsupported or custom providers are rejected. DevSpace maps providers to their
|
|
72
|
+
native integration:
|
|
73
|
+
|
|
74
|
+
- `codex`: Codex SDK
|
|
75
|
+
- `claude`: Claude Code SDK
|
|
76
|
+
- `opencode`: OpenCode SDK
|
|
77
|
+
- `pi`: Pi RPC mode
|
|
78
|
+
- `cursor`: ACP
|
|
79
|
+
- `copilot`: ACP
|
|
80
|
+
|
|
81
|
+
### `model`
|
|
82
|
+
|
|
83
|
+
Optional provider model id or alias.
|
|
84
|
+
|
|
85
|
+
```yaml
|
|
86
|
+
model: gpt-5.4
|
|
87
|
+
model: sonnet
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### `thinking`
|
|
91
|
+
|
|
92
|
+
Optional provider reasoning effort, thinking level, or model variant. If omitted,
|
|
93
|
+
DevSpace lets the provider default apply. Values are provider-specific
|
|
94
|
+
passthrough strings; DevSpace does not translate names between harnesses.
|
|
95
|
+
|
|
96
|
+
```yaml
|
|
97
|
+
thinking: low
|
|
98
|
+
thinking: high
|
|
99
|
+
thinking: xhigh
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
DevSpace passes this through to providers that expose a matching control:
|
|
103
|
+
|
|
104
|
+
- `claude`: SDK effort with adaptive thinking.
|
|
105
|
+
- `codex`: SDK model reasoning effort.
|
|
106
|
+
- `pi`: `--thinking`.
|
|
107
|
+
- `opencode`: model variant.
|
|
108
|
+
- `cursor` and `copilot`: ACP thought-level config when supported.
|
|
109
|
+
|
|
110
|
+
### `disabled`
|
|
111
|
+
|
|
112
|
+
Optional boolean. Disabled profiles are not exposed.
|
|
113
|
+
|
|
114
|
+
```yaml
|
|
115
|
+
disabled: true
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Markdown body
|
|
119
|
+
|
|
120
|
+
The body is the profile prompt prefix DevSpace prepends when launching that
|
|
121
|
+
profile. It is not included in `open_workspace` by default.
|
|
122
|
+
|
|
123
|
+
Recommended body content:
|
|
124
|
+
|
|
125
|
+
- When to use this profile.
|
|
126
|
+
- Whether the worker should act read-only or may make changes.
|
|
127
|
+
- Output format.
|
|
128
|
+
- Review or testing expectations.
|
|
129
|
+
|
|
130
|
+
## Model-facing workflow
|
|
131
|
+
|
|
132
|
+
The Subagent skill teaches only:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
devspace agents ls
|
|
136
|
+
devspace agents run <profile-or-id> "<prompt>"
|
|
137
|
+
devspace agents show <id>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
`open_workspace` exposes compact profile metadata:
|
|
141
|
+
|
|
142
|
+
```json
|
|
143
|
+
{
|
|
144
|
+
"name": "reviewer",
|
|
145
|
+
"description": "Read-only reviewer for bugs, security risks, and missing tests.",
|
|
146
|
+
"provider": "codex",
|
|
147
|
+
"model": "gpt-5.4",
|
|
148
|
+
"thinking": "high"
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
`devspace agents ls` lists existing subagent sessions for the current workspace;
|
|
153
|
+
it does not list profile definitions.
|
|
154
|
+
|
|
155
|
+
The full profile body stays out of the model context until DevSpace launches the
|
|
156
|
+
profile.
|
|
157
|
+
|
|
158
|
+
## Current non-goals
|
|
159
|
+
|
|
160
|
+
- Custom or arbitrary CLI-backed agents.
|
|
161
|
+
- Inferring changed files, tests, or diffs from worker output.
|
|
162
|
+
- Exposing raw provider transcripts by default.
|
|
163
|
+
- Teaching the model provider-specific CLIs.
|
|
164
|
+
- First-class MCP agent tools. Future tools should wrap the same provider
|
|
165
|
+
adapter registry used by `devspace agents`.
|
|
@@ -83,12 +83,24 @@ DevSpace discovers standard Agent Skills from:
|
|
|
83
83
|
|
|
84
84
|
- `~/.agents/skills`
|
|
85
85
|
- project `.agents/skills`
|
|
86
|
+
- `~/.devspace/skills`
|
|
86
87
|
|
|
87
88
|
It also keeps compatibility with:
|
|
88
89
|
|
|
90
|
+
- the bundled `subagent-delegation` skill when `DEVSPACE_SUBAGENTS=1`, unless `~/.devspace/skills/subagent-delegation/SKILL.md` exists
|
|
89
91
|
- `DEVSPACE_AGENT_DIR/skills`, defaulting to `~/.codex/skills`
|
|
90
92
|
- additional paths from `DEVSPACE_SKILL_PATHS`
|
|
91
93
|
|
|
94
|
+
When Subagents are enabled, DevSpace discovers agent profiles
|
|
95
|
+
from `~/.devspace/agents/*.md` and project `.devspace/agents/*.md`.
|
|
96
|
+
`open_workspace` exposes a compact catalog with profile names, descriptions,
|
|
97
|
+
providers, and optional models/thinking levels so the model can choose a configured agent
|
|
98
|
+
without seeing provider-specific launch details.
|
|
99
|
+
|
|
100
|
+
Example profiles are packaged under `examples/agents/` for users who want
|
|
101
|
+
starter templates. Copy or adapt them into one of the active profile directories
|
|
102
|
+
before use.
|
|
103
|
+
|
|
92
104
|
Legacy project paths such as `.pi/skills` can be added through `DEVSPACE_SKILL_PATHS` when needed.
|
|
93
105
|
|
|
94
106
|
When `open_workspace` returns matching skills, the model should read the
|
|
@@ -99,11 +111,16 @@ Skill paths may be outside the workspace. DevSpace only permits reading:
|
|
|
99
111
|
- advertised `SKILL.md` files
|
|
100
112
|
- files under a skill directory after that skill's `SKILL.md` has been read
|
|
101
113
|
|
|
102
|
-
Set `DEVSPACE_SKILLS=0` to hide skills from workspace output.
|
|
114
|
+
Set `DEVSPACE_SKILLS=0` to hide skills from workspace output. Set
|
|
115
|
+
`DEVSPACE_SUBAGENTS=1` to expose the experimental subagent catalog and
|
|
116
|
+
`subagent-delegation` skill. That skill teaches the minimal
|
|
117
|
+
`devspace agents ls`, `devspace agents run`, and `devspace agents show`
|
|
118
|
+
workflow. The catalog comes from `open_workspace`; `devspace agents ls` lists
|
|
119
|
+
existing subagent sessions for that workspace.
|
|
103
120
|
|
|
104
121
|
## Tool Names
|
|
105
122
|
|
|
106
|
-
|
|
123
|
+
DevSpace exposes these tool names:
|
|
107
124
|
|
|
108
125
|
- `open_workspace`
|
|
109
126
|
- `read`
|
|
@@ -115,14 +132,6 @@ By default, DevSpace also runs in `DEVSPACE_TOOL_MODE=minimal`, so dedicated
|
|
|
115
132
|
`grep`, `glob`, and `ls` tools are hidden. Use `bash` with command-line tools
|
|
116
133
|
such as `rg`, `find`, and `ls` for search and directory inspection.
|
|
117
134
|
|
|
118
|
-
Legacy names are available with `DEVSPACE_TOOL_NAMING=legacy`:
|
|
119
|
-
|
|
120
|
-
- `open_workspace`
|
|
121
|
-
- `read_file`
|
|
122
|
-
- `write_file`
|
|
123
|
-
- `edit_file`
|
|
124
|
-
- `run_shell`
|
|
125
|
-
|
|
126
135
|
Use `DEVSPACE_TOOL_MODE=full` to restore dedicated search and directory tools.
|
|
127
136
|
|
|
128
137
|
The experimental Codex-style surface is enabled with
|
|
@@ -149,6 +158,11 @@ and shell tools. The aggregate `show_changes` tool is not exposed by default.
|
|
|
149
158
|
Use `DEVSPACE_WIDGETS=off` to disable widget UI, or `DEVSPACE_WIDGETS=changes`
|
|
150
159
|
to expose the aggregate show-changes flow.
|
|
151
160
|
|
|
161
|
+
When `show_changes` is exposed, models should call it exactly once after the
|
|
162
|
+
final file modification in any turn that changes files. The tool only requires
|
|
163
|
+
the `workspaceId`; DevSpace automatically compares against the last shown
|
|
164
|
+
checkpoint and advances that checkpoint after rendering the aggregate diff.
|
|
165
|
+
|
|
152
166
|
## Shell Use
|
|
153
167
|
|
|
154
168
|
The shell tool is for commands that belong in a terminal:
|
package/docs/configuration.md
CHANGED
|
@@ -59,13 +59,6 @@ MCP clients discover metadata from:
|
|
|
59
59
|
|
|
60
60
|
## Tool Modes
|
|
61
61
|
|
|
62
|
-
`DEVSPACE_TOOL_NAMING` controls tool names.
|
|
63
|
-
|
|
64
|
-
| Value | Behavior |
|
|
65
|
-
| --- | --- |
|
|
66
|
-
| `short` | Default. Uses `read`, `edit`, `bash`, and related names. |
|
|
67
|
-
| `legacy` | Uses `read_file`, `edit_file`, `run_shell`, and related names. |
|
|
68
|
-
|
|
69
62
|
`DEVSPACE_TOOL_MODE` controls the tool surface.
|
|
70
63
|
|
|
71
64
|
| Value | Behavior |
|
|
@@ -99,6 +92,7 @@ sessions.
|
|
|
99
92
|
| Variable | Purpose |
|
|
100
93
|
| --- | --- |
|
|
101
94
|
| `DEVSPACE_SKILLS` | Set to `0` to hide skills. Enabled by default. |
|
|
95
|
+
| `DEVSPACE_SUBAGENTS` | Set to `1` to expose configured agent profiles as Subagents. Experimental and disabled by default. |
|
|
102
96
|
| `DEVSPACE_AGENT_DIR` | Defaults to `~/.codex`; its `skills` child is loaded for compatibility. |
|
|
103
97
|
| `DEVSPACE_SKILL_PATHS` | Optional comma-separated additional skill directories. |
|
|
104
98
|
|
|
@@ -106,12 +100,31 @@ DevSpace discovers standard Agent Skills from:
|
|
|
106
100
|
|
|
107
101
|
- `~/.agents/skills`
|
|
108
102
|
- project `.agents/skills`
|
|
103
|
+
- `~/.devspace/skills`
|
|
109
104
|
|
|
110
105
|
It also keeps compatibility with:
|
|
111
106
|
|
|
107
|
+
- the bundled `subagent-delegation` skill when `DEVSPACE_SUBAGENTS=1`, unless `~/.devspace/skills/subagent-delegation/SKILL.md` exists
|
|
112
108
|
- `DEVSPACE_AGENT_DIR/skills`, defaulting to `~/.codex/skills`
|
|
113
109
|
- additional paths from `DEVSPACE_SKILL_PATHS`
|
|
114
110
|
|
|
111
|
+
When Subagents are enabled, DevSpace discovers agent profiles
|
|
112
|
+
from:
|
|
113
|
+
|
|
114
|
+
- `~/.devspace/agents/*.md`
|
|
115
|
+
- project `.devspace/agents/*.md`
|
|
116
|
+
|
|
117
|
+
`open_workspace` returns a compact catalog containing profile names,
|
|
118
|
+
descriptions, providers, and optional models/thinking levels so the host model can choose an
|
|
119
|
+
agent without reading provider-specific launch details. `devspace agents ls`
|
|
120
|
+
lists existing subagent sessions for the current workspace, scoped by the
|
|
121
|
+
workspace environment injected into shell commands. The `subagent-delegation`
|
|
122
|
+
skill teaches the model to use only the minimal `devspace agents ls`,
|
|
123
|
+
`devspace agents run`, and `devspace agents show` workflow.
|
|
124
|
+
|
|
125
|
+
Starter profile templates are available under `examples/agents/`. Copy or adapt
|
|
126
|
+
them into one of the active profile directories before use.
|
|
127
|
+
|
|
115
128
|
Legacy project paths such as `.pi/skills` can be added through `DEVSPACE_SKILL_PATHS` when needed.
|
|
116
129
|
|
|
117
130
|
Example:
|
|
@@ -146,7 +159,6 @@ DEVSPACE_ALLOWED_ROOTS="$HOME/personal,$HOME/work" \
|
|
|
146
159
|
DEVSPACE_PUBLIC_BASE_URL="https://devspace.example.com" \
|
|
147
160
|
DEVSPACE_WORKTREE_ROOT="$HOME/.devspace/worktrees" \
|
|
148
161
|
DEVSPACE_TOOL_MODE="minimal" \
|
|
149
|
-
DEVSPACE_TOOL_NAMING="short" \
|
|
150
162
|
DEVSPACE_WIDGETS="full" \
|
|
151
163
|
npx @waishnav/devspace serve
|
|
152
164
|
```
|
package/docs/gotchas.md
CHANGED
|
@@ -197,12 +197,25 @@ DevSpace looks in standard Agent Skills locations:
|
|
|
197
197
|
|
|
198
198
|
- `~/.agents/skills`
|
|
199
199
|
- project `.agents/skills`
|
|
200
|
+
- `~/.devspace/skills`
|
|
200
201
|
|
|
201
202
|
It also checks compatibility and custom paths:
|
|
202
203
|
|
|
204
|
+
- the bundled `subagent-delegation` skill when `DEVSPACE_SUBAGENTS=1`, unless `~/.devspace/skills/subagent-delegation/SKILL.md` exists
|
|
203
205
|
- `DEVSPACE_AGENT_DIR/skills`, defaulting to `~/.codex/skills`
|
|
204
206
|
- additional paths from `DEVSPACE_SKILL_PATHS`
|
|
205
207
|
|
|
208
|
+
When `DEVSPACE_SUBAGENTS=1`, DevSpace loads agent profiles from
|
|
209
|
+
`~/.devspace/agents/*.md` and project `.devspace/agents/*.md`, then exposes a
|
|
210
|
+
compact profile catalog through `open_workspace`. The bundled
|
|
211
|
+
`subagent-delegation` skill keeps the model-facing workflow to
|
|
212
|
+
`devspace agents ls`, `devspace agents run`, and `devspace agents show`.
|
|
213
|
+
`devspace agents ls` lists existing subagent sessions, not profile
|
|
214
|
+
definitions.
|
|
215
|
+
|
|
216
|
+
Packaged agent profile examples under `examples/agents/` are starter templates.
|
|
217
|
+
Copy or adapt them into one of the active profile directories before use.
|
|
218
|
+
|
|
206
219
|
Legacy project paths such as `.pi/skills` can be added through `DEVSPACE_SKILL_PATHS` when needed.
|
|
207
220
|
|
|
208
221
|
If a skill appears in `open_workspace`, the model must read that skill's
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: devspace-agent/v1
|
|
3
|
+
name: claude-implementer
|
|
4
|
+
description: Implementation profile for multi-file changes, careful refactors, and failing test repair.
|
|
5
|
+
provider: claude
|
|
6
|
+
model: sonnet
|
|
7
|
+
thinking: high
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Take ownership of the requested implementation while keeping the change narrow.
|
|
11
|
+
Start by locating the smallest set of files that define the behavior, then make
|
|
12
|
+
the change in the existing style.
|
|
13
|
+
|
|
14
|
+
Working rules:
|
|
15
|
+
|
|
16
|
+
- Preserve existing public behavior unless the prompt explicitly asks to change it.
|
|
17
|
+
- Avoid broad rewrites, dependency churn, formatting-only edits, and speculative cleanup.
|
|
18
|
+
- Update or add focused tests when behavior changes.
|
|
19
|
+
- Run the most relevant checks available for the touched area, or explain why they could not run.
|
|
20
|
+
- If the task is ambiguous or blocked by missing context, stop with a clear blocker instead of guessing.
|
|
21
|
+
|
|
22
|
+
Report:
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
summary:
|
|
26
|
+
tests_run:
|
|
27
|
+
blockers:
|
|
28
|
+
risks:
|
|
29
|
+
follow_up_needed:
|
|
30
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: devspace-agent/v1
|
|
3
|
+
name: codex-explorer
|
|
4
|
+
description: Read-only profile for bounded codebase questions, architecture tracing, and risk discovery.
|
|
5
|
+
provider: codex
|
|
6
|
+
model: gpt-5.4-mini
|
|
7
|
+
thinking: high
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Investigate without editing. Use this profile to answer bounded questions such
|
|
11
|
+
as how a feature works, where a behavior is implemented, what depends on a
|
|
12
|
+
module, or which files are relevant before a change.
|
|
13
|
+
|
|
14
|
+
- Do not modify files.
|
|
15
|
+
- Prefer direct evidence from code over broad repository summaries.
|
|
16
|
+
- Cite file paths, symbols, and commands that support the conclusion.
|
|
17
|
+
- Separate confirmed facts from inferences.
|
|
18
|
+
- Call out unknowns that would require running the app, inspecting external state, or asking the user.
|
|
19
|
+
|
|
20
|
+
Report:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
answer:
|
|
24
|
+
evidence:
|
|
25
|
+
relevant_files:
|
|
26
|
+
unknowns:
|
|
27
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: devspace-agent/v1
|
|
3
|
+
name: codex-qa-tester
|
|
4
|
+
description: Manual QA profile for browser testing, workflow verification, and regression checks.
|
|
5
|
+
provider: codex
|
|
6
|
+
model: gpt-5.4-mini
|
|
7
|
+
thinking: high
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Verify the requested user workflow from the outside, like a QA pass before
|
|
11
|
+
release. Prefer running the app and using browser tools when the task involves
|
|
12
|
+
UI, navigation, forms, visual states, or end-to-end behavior.
|
|
13
|
+
|
|
14
|
+
- Do not modify files.
|
|
15
|
+
- Start from the acceptance criteria in the prompt; turn vague requests into a small checklist.
|
|
16
|
+
- Use the browser to exercise real interactions when a local preview or dev server is available.
|
|
17
|
+
- Cover the main happy path plus at least one realistic edge or failure state.
|
|
18
|
+
- Capture exact reproduction steps for every issue found.
|
|
19
|
+
- Distinguish confirmed failures from untested risks.
|
|
20
|
+
|
|
21
|
+
Report:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
qa_summary:
|
|
25
|
+
checks_run:
|
|
26
|
+
issues_found:
|
|
27
|
+
reproduction_steps:
|
|
28
|
+
untested_risks:
|
|
29
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: devspace-agent/v1
|
|
3
|
+
name: codex-worker
|
|
4
|
+
description: Implementation profile for focused coding tasks with clear acceptance criteria.
|
|
5
|
+
provider: codex
|
|
6
|
+
model: gpt-5.4
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Implement the requested change with minimal surface area. Use this profile when
|
|
10
|
+
the prompt already defines the desired behavior or acceptance criteria.
|
|
11
|
+
|
|
12
|
+
- Read nearby code before editing.
|
|
13
|
+
- Match existing project patterns instead of introducing new abstractions.
|
|
14
|
+
- Keep unrelated files, formatting, and dependency metadata untouched.
|
|
15
|
+
- Prefer targeted tests for the changed behavior.
|
|
16
|
+
- Surface build, test, or environment failures exactly; do not summarize them as success.
|
|
17
|
+
|
|
18
|
+
Report:
|
|
19
|
+
|
|
20
|
+
```text
|
|
21
|
+
summary:
|
|
22
|
+
tests_run:
|
|
23
|
+
blockers:
|
|
24
|
+
notes:
|
|
25
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: devspace-agent/v1
|
|
3
|
+
name: copilot-reviewer
|
|
4
|
+
description: Read-only review profile for bug risk, regressions, and missing test coverage.
|
|
5
|
+
provider: copilot
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Review the requested code path or diff without editing. Prioritize concrete
|
|
9
|
+
bugs, behavior regressions, security issues, and missing tests over style
|
|
10
|
+
preferences.
|
|
11
|
+
|
|
12
|
+
- Do not modify files.
|
|
13
|
+
- Lead with findings ordered by severity.
|
|
14
|
+
- Tie each finding to a specific file, symbol, or behavior.
|
|
15
|
+
- Ignore purely subjective style feedback unless it creates a maintenance risk.
|
|
16
|
+
- If no issue is found, say that clearly and mention any residual test or runtime risk.
|
|
17
|
+
|
|
18
|
+
Report:
|
|
19
|
+
|
|
20
|
+
```text
|
|
21
|
+
findings:
|
|
22
|
+
evidence:
|
|
23
|
+
test_gaps:
|
|
24
|
+
residual_risk:
|
|
25
|
+
```
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: devspace-agent/v1
|
|
3
|
+
name: cursor-agent-worker
|
|
4
|
+
description: Implementation profile for UI-heavy changes, small refactors, and alternative solution passes.
|
|
5
|
+
provider: cursor
|
|
6
|
+
model: composer-2.5-fast
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Work on the requested change with a bias toward practical, shippable edits. This
|
|
10
|
+
profile is useful for UI polish, small refactors, and trying an alternate
|
|
11
|
+
implementation path.
|
|
12
|
+
|
|
13
|
+
- Keep edits scoped to the requested workflow or component.
|
|
14
|
+
- Preserve existing visual language and interaction patterns.
|
|
15
|
+
- Avoid changing data contracts or public APIs unless the prompt asks for it.
|
|
16
|
+
- Check responsive and empty/error states when touching UI.
|
|
17
|
+
- Report what was verified and what still needs a human look.
|
|
18
|
+
|
|
19
|
+
Report:
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
summary:
|
|
23
|
+
verification:
|
|
24
|
+
blockers:
|
|
25
|
+
open_questions:
|
|
26
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: devspace-agent/v1
|
|
3
|
+
name: opencode-explorer
|
|
4
|
+
description: Read-only profile for fast relevant-file discovery and small architecture questions.
|
|
5
|
+
provider: opencode
|
|
6
|
+
model: opencode/deepseek-v4-flash-free
|
|
7
|
+
thinking: high
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Find the answer quickly without editing. Use this profile when the main need is
|
|
11
|
+
to identify relevant files, understand a small code path, or gather enough
|
|
12
|
+
context before implementation.
|
|
13
|
+
|
|
14
|
+
- Do not modify files.
|
|
15
|
+
- Search first, then read only the files needed to answer the prompt.
|
|
16
|
+
- Prefer precise file paths and symbols over broad summaries.
|
|
17
|
+
- Keep the response short unless the code path is genuinely complex.
|
|
18
|
+
- State uncertainty when evidence is incomplete.
|
|
19
|
+
|
|
20
|
+
Report:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
answer:
|
|
24
|
+
evidence:
|
|
25
|
+
relevant_files:
|
|
26
|
+
unknowns:
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: devspace-agent/v1
|
|
3
|
+
name: pi-reviewer
|
|
4
|
+
description: Read-only review profile for quick risk checks and targeted implementation questions.
|
|
5
|
+
provider: pi
|
|
6
|
+
model: openai-codex/gpt-5.5
|
|
7
|
+
thinking: high
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Review or investigate only the area requested. This profile is best for quick
|
|
11
|
+
risk checks, small diffs, and targeted questions where a concise answer is more
|
|
12
|
+
valuable than a broad audit.
|
|
13
|
+
|
|
14
|
+
- Do not modify files.
|
|
15
|
+
- Focus on actionable issues that could affect correctness, safety, or tests.
|
|
16
|
+
- Cite the specific code evidence for each point.
|
|
17
|
+
- Avoid broad rewrite suggestions unless the current design blocks the requested behavior.
|
|
18
|
+
- Keep low-confidence observations under `unknowns`.
|
|
19
|
+
|
|
20
|
+
Report:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
findings:
|
|
24
|
+
evidence:
|
|
25
|
+
risk_level:
|
|
26
|
+
unknowns:
|
|
27
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@waishnav/devspace",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Expose a secure local coding workspace through an MCP server.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/server.js",
|
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
"files": [
|
|
14
14
|
"dist",
|
|
15
15
|
"docs",
|
|
16
|
+
"examples",
|
|
16
17
|
"scripts",
|
|
18
|
+
"skills",
|
|
17
19
|
"README.md"
|
|
18
20
|
],
|
|
19
21
|
"publishConfig": {
|
|
@@ -26,24 +28,30 @@
|
|
|
26
28
|
"dev": "node scripts/dev-server.mjs",
|
|
27
29
|
"postinstall": "node scripts/fix-node-pty-permissions.mjs",
|
|
28
30
|
"start": "node dist/cli.js serve",
|
|
29
|
-
"test": "tsx src/config.test.ts && tsx src/ui/card-types.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/roots.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/review-checkpoints.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts",
|
|
31
|
+
"test": "tsx src/config.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/review-checkpoints.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts",
|
|
30
32
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
31
33
|
},
|
|
32
34
|
"keywords": [],
|
|
33
35
|
"author": "",
|
|
34
36
|
"license": "MIT",
|
|
35
37
|
"dependencies": {
|
|
38
|
+
"@agentclientprotocol/sdk": "^1.1.0",
|
|
39
|
+
"@anthropic-ai/claude-agent-sdk": "^0.3.200",
|
|
36
40
|
"@clack/prompts": "^1.5.1",
|
|
37
|
-
"@earendil-works/pi-coding-agent": "^0.80.
|
|
41
|
+
"@earendil-works/pi-coding-agent": "^0.80.3",
|
|
38
42
|
"@modelcontextprotocol/ext-apps": "^1.7.2",
|
|
39
43
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
44
|
+
"@openai/codex-sdk": "^0.142.5",
|
|
45
|
+
"@opencode-ai/sdk": "^1.17.13",
|
|
40
46
|
"@pierre/diffs": "^1.2.5",
|
|
41
47
|
"better-sqlite3": "^12.10.0",
|
|
48
|
+
"diff": "^8.0.3",
|
|
42
49
|
"drizzle-orm": "^0.45.2",
|
|
43
50
|
"express": "^5.2.1",
|
|
44
51
|
"react": "^19.2.6",
|
|
45
52
|
"react-dom": "^19.2.6",
|
|
46
53
|
"semver": "^7.8.4",
|
|
54
|
+
"yaml": "^2.9.0",
|
|
47
55
|
"zod": "^4.4.3"
|
|
48
56
|
},
|
|
49
57
|
"devDependencies": {
|