@waishnav/devspace 1.0.2 → 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/README.md +43 -7
- package/dist/apply-patch.js +402 -0
- package/dist/cli.js +256 -4
- package/dist/config.js +17 -22
- 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-platform.js +49 -0
- package/dist/process-sessions.js +337 -0
- package/dist/roots.js +5 -2
- package/dist/server.js +521 -243
- package/dist/skills.js +48 -4
- package/dist/ui/.vite/manifest.json +281 -281
- package/dist/ui/assets/{angular-html-Dj4LysSE.js → angular-html-CKeFzaPY.js} +1 -1
- package/dist/ui/assets/{angular-ts-CxuC_FFh.js → angular-ts-0wcM_Zxf.js} +1 -1
- package/dist/ui/assets/{apl-RwuvNFFo.js → apl-C7UdkNb2.js} +1 -1
- package/dist/ui/assets/{astro-ncoaUbsO.js → astro-DMqju4MJ.js} +1 -1
- package/dist/ui/assets/{blade-Dw8-Lzux.js → blade-DHanNgN5.js} +1 -1
- package/dist/ui/assets/{c-Dpbbo_f2.js → c-_iPKYPcx.js} +1 -1
- package/dist/ui/assets/{cobol-4ddX3THy.js → cobol-CagdLJsE.js} +1 -1
- package/dist/ui/assets/{coffee-Bn-a5KqK.js → coffee-CkNGriPi.js} +1 -1
- package/dist/ui/assets/{cpp-DoRrlM_T.js → cpp-CqmKOWIQ.js} +1 -1
- package/dist/ui/assets/{crystal-DiZfCxn-.js → crystal-DbAbDEO1.js} +1 -1
- package/dist/ui/assets/{css-DiQoSjDH.js → css-xwljL6Kw.js} +1 -1
- package/dist/ui/assets/{edge-wEhCUoEt.js → edge-CX3sYz15.js} +1 -1
- package/dist/ui/assets/{elixir-C3obhm0H.js → elixir-B3qL9hqd.js} +1 -1
- package/dist/ui/assets/{elm-DyTBfh1L.js → elm-CH4vrjBp.js} +1 -1
- package/dist/ui/assets/{erb-f4TnXRuY.js → erb-CupHqynN.js} +1 -1
- package/dist/ui/assets/{git-rebase-vhZbWNfp.js → git-rebase-CDxsU2LC.js} +1 -1
- package/dist/ui/assets/{glimmer-js-BG7puL6Y.js → glimmer-js-emkga3g1.js} +1 -1
- package/dist/ui/assets/{glimmer-ts-CNCfLLL1.js → glimmer-ts-D8kQDnUw.js} +1 -1
- package/dist/ui/assets/{glsl-DhT76AL5.js → glsl-BtfTaPhi.js} +1 -1
- package/dist/ui/assets/{graphql-CJX08w8y.js → graphql-DEus8iSO.js} +1 -1
- package/dist/ui/assets/{hack-DY4NGCCL.js → hack-DI8qpBqE.js} +1 -1
- package/dist/ui/assets/{haml-DwSkmVcG.js → haml-Br1i1gmi.js} +1 -1
- package/dist/ui/assets/{handlebars-CQ_1dEmi.js → handlebars-Ce23mu9x.js} +1 -1
- package/dist/ui/assets/{heavy-payload-2rGBiitA.js → heavy-payload-BcZ_nGfF.js} +1 -1
- package/dist/ui/assets/{html-B_e3Njif.js → html-RXVmfixf.js} +1 -1
- package/dist/ui/assets/{html-derivative-_nHZ_Bk-.js → html-derivative-D1aqeobb.js} +1 -1
- package/dist/ui/assets/{http-CfcvPIru.js → http-BebG00CE.js} +1 -1
- package/dist/ui/assets/{hurl-9vWDQIMO.js → hurl-kHMuvenL.js} +1 -1
- package/dist/ui/assets/{java-C4S5r6L5.js → java-DYc2V5RJ.js} +1 -1
- package/dist/ui/assets/{javascript-BRwqbMMC.js → javascript-BcfzTzr3.js} +1 -1
- package/dist/ui/assets/{jinja-DHxzMMc5.js → jinja-D2RhihUZ.js} +1 -1
- package/dist/ui/assets/{jison-B1DqeWXb.js → jison-BuoFEePN.js} +1 -1
- package/dist/ui/assets/{json-DcFTkEdd.js → json-BIDkCuJA.js} +1 -1
- package/dist/ui/assets/{jsx-DgfmYa9f.js → jsx-DHCL2HA0.js} +1 -1
- package/dist/ui/assets/{julia-3M8SJ8iF.js → julia-CvUQXscF.js} +1 -1
- package/dist/ui/assets/{just-UyH7_DNz.js → just-etc9R2qw.js} +1 -1
- package/dist/ui/assets/{latex-wUbha6EX.js → latex-BB3zRnxC.js} +1 -1
- package/dist/ui/assets/{liquid-DqNTB9kN.js → liquid-CIi5Mvpv.js} +1 -1
- package/dist/ui/assets/{lua-DrEQ1QTW.js → lua-Cox7XDiW.js} +1 -1
- package/dist/ui/assets/{marko-B3GJw9Md.js → marko-ruBIRV0n.js} +1 -1
- package/dist/ui/assets/{mdc-BnThk82m.js → mdc-CcbvB9U5.js} +1 -1
- package/dist/ui/assets/{nginx-B5IeSsOX.js → nginx-DtWz6ZYE.js} +1 -1
- package/dist/ui/assets/{nim-BJraatnS.js → nim-BV5BR4P7.js} +1 -1
- package/dist/ui/assets/{perl-BAhrR4gt.js → perl-BvzoSaJ4.js} +1 -1
- package/dist/ui/assets/{php-BKRCk_wX.js → php-C-clrAOy.js} +1 -1
- package/dist/ui/assets/{pug-B8gmSV7z.js → pug-E07_GXAr.js} +1 -1
- package/dist/ui/assets/{qml-DKrxIjHR.js → qml-dqt33dti.js} +1 -1
- package/dist/ui/assets/{r-YASBZvTH.js → r-BcVQxsAw.js} +1 -1
- package/dist/ui/assets/{razor-P-XFZqh6.js → razor-BW5T_UZ-.js} +1 -1
- package/dist/ui/assets/{regexp-CCpiH6nO.js → regexp-Ed_DEsuU.js} +1 -1
- package/dist/ui/assets/{review-payload-BLYwg6t8.js → review-payload-Dsmx33pY.js} +1 -1
- package/dist/ui/assets/{rst-CFAzckbn.js → rst-BkcGqLs8.js} +1 -1
- package/dist/ui/assets/{ruby-Dyp_Rx-S.js → ruby-Sf_X_YID.js} +1 -1
- package/dist/ui/assets/{sas-YkWZIXxT.js → sas-COsombsA.js} +1 -1
- package/dist/ui/assets/{scss-Cf89idGl.js → scss-K6Ylfa26.js} +1 -1
- package/dist/ui/assets/{shellscript-BFMb52q8.js → shellscript-D2EdqkgV.js} +1 -1
- package/dist/ui/assets/{shellsession-DuthW-5v.js → shellsession-jRXgXrnI.js} +1 -1
- package/dist/ui/assets/{soy-BohVVlJU.js → soy-BGspKQWW.js} +1 -1
- package/dist/ui/assets/{sql-CnK9R2Gt.js → sql-C4lAmYnM.js} +1 -1
- package/dist/ui/assets/{stata-D-sV4Vbr.js → stata-DQWvRqxp.js} +1 -1
- package/dist/ui/assets/{surrealql-ChAy0gHv.js → surrealql-OmKt9XJ_.js} +1 -1
- package/dist/ui/assets/{svelte-3HBVqG-H.js → svelte-D0rUmwDI.js} +1 -1
- package/dist/ui/assets/{templ-BixlV4Cp.js → templ-B-U0RMc0.js} +1 -1
- package/dist/ui/assets/{tex-DWoJKHvD.js → tex-BIHD-btS.js} +1 -1
- package/dist/ui/assets/{ts-tags-DLA8eH13.js → ts-tags-CGuDWfPC.js} +1 -1
- package/dist/ui/assets/{tsx-BYWa5JUz.js → tsx-B0-h_HlD.js} +1 -1
- package/dist/ui/assets/{twig-CnY65vAo.js → twig-BN2qDJWN.js} +1 -1
- package/dist/ui/assets/{typescript-ByInUsro.js → typescript-BRnwPzY3.js} +1 -1
- package/dist/ui/assets/{useFileDiffInstance-Dg0pWcJV.js → useFileDiffInstance-5ivdkUYO.js} +3 -3
- package/dist/ui/assets/{vue-Qngt2rkz.js → vue-DekNU1qt.js} +1 -1
- package/dist/ui/assets/{vue-html-DDue9upr.js → vue-html-Bjlv-uvH.js} +1 -1
- package/dist/ui/assets/{vue-vine-DBcAKsA6.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-DuzpU4Hf.js → workspace-app-DYi7VJam.js} +5 -5
- package/dist/ui/assets/{xml-CRLR5jiL.js → xml-pXbxxgI3.js} +1 -1
- package/dist/ui/assets/{xsl-CmcwyXbm.js → xsl-BEAlgDI2.js} +1 -1
- package/dist/ui/assets/{yaml-Dpe6Eg-k.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 +46 -12
- package/docs/configuration.md +47 -12
- package/docs/gotchas.md +24 -5
- package/docs/setup.md +1 -1
- 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 +18 -5
- package/scripts/fix-node-pty-permissions.mjs +22 -0
- package/skills/subagent-delegation/SKILL.md +132 -0
|
@@ -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`.
|
|
@@ -79,11 +79,29 @@ new context during later tool calls.
|
|
|
79
79
|
|
|
80
80
|
Skills are enabled by default for coding-agent workflows.
|
|
81
81
|
|
|
82
|
-
DevSpace discovers
|
|
82
|
+
DevSpace discovers standard Agent Skills from:
|
|
83
83
|
|
|
84
|
-
-
|
|
85
|
-
- project `.
|
|
86
|
-
-
|
|
84
|
+
- `~/.agents/skills`
|
|
85
|
+
- project `.agents/skills`
|
|
86
|
+
- `~/.devspace/skills`
|
|
87
|
+
|
|
88
|
+
It also keeps compatibility with:
|
|
89
|
+
|
|
90
|
+
- the bundled `subagent-delegation` skill when `DEVSPACE_SUBAGENTS=1`, unless `~/.devspace/skills/subagent-delegation/SKILL.md` exists
|
|
91
|
+
- `DEVSPACE_AGENT_DIR/skills`, defaulting to `~/.codex/skills`
|
|
92
|
+
- additional paths from `DEVSPACE_SKILL_PATHS`
|
|
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
|
+
|
|
104
|
+
Legacy project paths such as `.pi/skills` can be added through `DEVSPACE_SKILL_PATHS` when needed.
|
|
87
105
|
|
|
88
106
|
When `open_workspace` returns matching skills, the model should read the
|
|
89
107
|
advertised `SKILL.md` before following that skill.
|
|
@@ -93,11 +111,16 @@ Skill paths may be outside the workspace. DevSpace only permits reading:
|
|
|
93
111
|
- advertised `SKILL.md` files
|
|
94
112
|
- files under a skill directory after that skill's `SKILL.md` has been read
|
|
95
113
|
|
|
96
|
-
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.
|
|
97
120
|
|
|
98
121
|
## Tool Names
|
|
99
122
|
|
|
100
|
-
|
|
123
|
+
DevSpace exposes these tool names:
|
|
101
124
|
|
|
102
125
|
- `open_workspace`
|
|
103
126
|
- `read`
|
|
@@ -109,15 +132,21 @@ By default, DevSpace also runs in `DEVSPACE_TOOL_MODE=minimal`, so dedicated
|
|
|
109
132
|
`grep`, `glob`, and `ls` tools are hidden. Use `bash` with command-line tools
|
|
110
133
|
such as `rg`, `find`, and `ls` for search and directory inspection.
|
|
111
134
|
|
|
112
|
-
|
|
135
|
+
Use `DEVSPACE_TOOL_MODE=full` to restore dedicated search and directory tools.
|
|
136
|
+
|
|
137
|
+
The experimental Codex-style surface is enabled with
|
|
138
|
+
`DEVSPACE_TOOL_MODE=codex`. It exposes:
|
|
113
139
|
|
|
114
140
|
- `open_workspace`
|
|
115
|
-
- `
|
|
116
|
-
- `
|
|
117
|
-
- `
|
|
118
|
-
- `
|
|
141
|
+
- `read`
|
|
142
|
+
- `apply_patch`
|
|
143
|
+
- `exec_command`
|
|
144
|
+
- `write_stdin`
|
|
119
145
|
|
|
120
|
-
|
|
146
|
+
In this mode, `write`, `edit`, `bash`, `grep`, `glob`, and `ls` are not
|
|
147
|
+
registered. `exec_command` returns a process session ID when a command is still
|
|
148
|
+
running after its yield window. Use `write_stdin` to poll it, send input, resize
|
|
149
|
+
a PTY, or send Ctrl-C. Set `tty: true` only for commands that need a terminal.
|
|
121
150
|
|
|
122
151
|
## Show Changes
|
|
123
152
|
|
|
@@ -129,6 +158,11 @@ and shell tools. The aggregate `show_changes` tool is not exposed by default.
|
|
|
129
158
|
Use `DEVSPACE_WIDGETS=off` to disable widget UI, or `DEVSPACE_WIDGETS=changes`
|
|
130
159
|
to expose the aggregate show-changes flow.
|
|
131
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
|
+
|
|
132
166
|
## Shell Use
|
|
133
167
|
|
|
134
168
|
The shell tool is for commands that belong in a terminal:
|
package/docs/configuration.md
CHANGED
|
@@ -59,19 +59,23 @@ MCP clients discover metadata from:
|
|
|
59
59
|
|
|
60
60
|
## Tool Modes
|
|
61
61
|
|
|
62
|
-
`
|
|
62
|
+
`DEVSPACE_TOOL_MODE` controls the tool surface.
|
|
63
63
|
|
|
64
64
|
| Value | Behavior |
|
|
65
65
|
| --- | --- |
|
|
66
|
-
| `
|
|
67
|
-
| `
|
|
66
|
+
| `minimal` | Default. Exposes `open_workspace`, `read`, `write`, `edit`, and `bash`. Clients use `bash` with tools such as `rg`, `find`, and `ls` for inspection. |
|
|
67
|
+
| `full` | Exposes the minimal tools plus dedicated `grep`, `glob`, and `ls` tools. |
|
|
68
|
+
| `codex` | Experimental. Exposes `open_workspace`, `read`, `apply_patch`, `exec_command`, and `write_stdin`. Existing mutation and shell tools are hidden. |
|
|
68
69
|
|
|
69
|
-
`
|
|
70
|
+
`DEVSPACE_MINIMAL_TOOLS` remains a backward-compatible alias when
|
|
71
|
+
`DEVSPACE_TOOL_MODE` is unset: `1` selects `minimal` and `0` selects `full`.
|
|
72
|
+
The `codex` mode must be selected through `DEVSPACE_TOOL_MODE` and always uses
|
|
73
|
+
its fixed short tool names regardless of `DEVSPACE_TOOL_NAMING`.
|
|
70
74
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
+
Codex-mode commands run without a PTY by default. Set `tty: true` on
|
|
76
|
+
`exec_command` for interactive terminal programs. PTY support uses the optional
|
|
77
|
+
`node-pty` dependency; `write_stdin` can send input, poll output, and resize PTY
|
|
78
|
+
sessions.
|
|
75
79
|
|
|
76
80
|
## Widgets
|
|
77
81
|
|
|
@@ -88,13 +92,45 @@ MCP clients discover metadata from:
|
|
|
88
92
|
| Variable | Purpose |
|
|
89
93
|
| --- | --- |
|
|
90
94
|
| `DEVSPACE_SKILLS` | Set to `0` to hide skills. Enabled by default. |
|
|
91
|
-
| `
|
|
92
|
-
| `
|
|
95
|
+
| `DEVSPACE_SUBAGENTS` | Set to `1` to expose configured agent profiles as Subagents. Experimental and disabled by default. |
|
|
96
|
+
| `DEVSPACE_AGENT_DIR` | Defaults to `~/.codex`; its `skills` child is loaded for compatibility. |
|
|
97
|
+
| `DEVSPACE_SKILL_PATHS` | Optional comma-separated additional skill directories. |
|
|
98
|
+
|
|
99
|
+
DevSpace discovers standard Agent Skills from:
|
|
100
|
+
|
|
101
|
+
- `~/.agents/skills`
|
|
102
|
+
- project `.agents/skills`
|
|
103
|
+
- `~/.devspace/skills`
|
|
104
|
+
|
|
105
|
+
It also keeps compatibility with:
|
|
106
|
+
|
|
107
|
+
- the bundled `subagent-delegation` skill when `DEVSPACE_SUBAGENTS=1`, unless `~/.devspace/skills/subagent-delegation/SKILL.md` exists
|
|
108
|
+
- `DEVSPACE_AGENT_DIR/skills`, defaulting to `~/.codex/skills`
|
|
109
|
+
- additional paths from `DEVSPACE_SKILL_PATHS`
|
|
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
|
+
|
|
128
|
+
Legacy project paths such as `.pi/skills` can be added through `DEVSPACE_SKILL_PATHS` when needed.
|
|
93
129
|
|
|
94
130
|
Example:
|
|
95
131
|
|
|
96
132
|
```bash
|
|
97
|
-
DEVSPACE_SKILL_PATHS="$HOME/.
|
|
133
|
+
DEVSPACE_SKILL_PATHS="$HOME/.claude/skills,$HOME/company/skills" \
|
|
98
134
|
npx @waishnav/devspace serve
|
|
99
135
|
```
|
|
100
136
|
|
|
@@ -123,7 +159,6 @@ DEVSPACE_ALLOWED_ROOTS="$HOME/personal,$HOME/work" \
|
|
|
123
159
|
DEVSPACE_PUBLIC_BASE_URL="https://devspace.example.com" \
|
|
124
160
|
DEVSPACE_WORKTREE_ROOT="$HOME/.devspace/worktrees" \
|
|
125
161
|
DEVSPACE_TOOL_MODE="minimal" \
|
|
126
|
-
DEVSPACE_TOOL_NAMING="short" \
|
|
127
162
|
DEVSPACE_WIDGETS="full" \
|
|
128
163
|
npx @waishnav/devspace serve
|
|
129
164
|
```
|
package/docs/gotchas.md
CHANGED
|
@@ -15,7 +15,7 @@ If you installed globally, confirm npm's global bin directory is on `PATH`.
|
|
|
15
15
|
|
|
16
16
|
## Unsupported Node Version
|
|
17
17
|
|
|
18
|
-
DevSpace requires Node `>=
|
|
18
|
+
DevSpace requires Node `>=22.19 <27`.
|
|
19
19
|
|
|
20
20
|
Check:
|
|
21
21
|
|
|
@@ -193,11 +193,30 @@ Skills are enabled by default. Check:
|
|
|
193
193
|
DEVSPACE_SKILLS=1 npx @waishnav/devspace serve
|
|
194
194
|
```
|
|
195
195
|
|
|
196
|
-
DevSpace looks in:
|
|
196
|
+
DevSpace looks in standard Agent Skills locations:
|
|
197
197
|
|
|
198
|
-
-
|
|
199
|
-
- project `.
|
|
200
|
-
- `
|
|
198
|
+
- `~/.agents/skills`
|
|
199
|
+
- project `.agents/skills`
|
|
200
|
+
- `~/.devspace/skills`
|
|
201
|
+
|
|
202
|
+
It also checks compatibility and custom paths:
|
|
203
|
+
|
|
204
|
+
- the bundled `subagent-delegation` skill when `DEVSPACE_SUBAGENTS=1`, unless `~/.devspace/skills/subagent-delegation/SKILL.md` exists
|
|
205
|
+
- `DEVSPACE_AGENT_DIR/skills`, defaulting to `~/.codex/skills`
|
|
206
|
+
- additional paths from `DEVSPACE_SKILL_PATHS`
|
|
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
|
+
|
|
219
|
+
Legacy project paths such as `.pi/skills` can be added through `DEVSPACE_SKILL_PATHS` when needed.
|
|
201
220
|
|
|
202
221
|
If a skill appears in `open_workspace`, the model must read that skill's
|
|
203
222
|
`SKILL.md` before reading other files inside the skill directory.
|
package/docs/setup.md
CHANGED
|
@@ -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
|
+
```
|