@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,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: subagent-delegation
|
|
3
|
+
description: Delegate coding tasks to user-configured DevSpace subagents.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Subagent Delegation
|
|
7
|
+
|
|
8
|
+
Use this skill when the user explicitly asks to delegate work to another coding
|
|
9
|
+
agent, use a named subagent, get a second opinion, compare approaches, or run
|
|
10
|
+
a subagent-like workflow.
|
|
11
|
+
|
|
12
|
+
Do not use subagents silently. Tell the user when another subagent is
|
|
13
|
+
being used.
|
|
14
|
+
|
|
15
|
+
## Core commands
|
|
16
|
+
|
|
17
|
+
Use only these commands for normal delegation:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
devspace agents ls
|
|
21
|
+
devspace agents run <profile-or-provider-or-id> "<prompt>"
|
|
22
|
+
devspace agents show <id>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
`ls` shows existing subagent sessions for the current workspace. DevSpace scopes
|
|
26
|
+
it automatically from the shell environment injected by the workspace tool.
|
|
27
|
+
|
|
28
|
+
`run <profile> "<prompt>"` starts a new configured profile and prints a
|
|
29
|
+
DevSpace agent id.
|
|
30
|
+
|
|
31
|
+
`run <provider> "<prompt>"` starts a raw built-in provider when no configured
|
|
32
|
+
profile is needed. Built-in providers are listed by `open_workspace`.
|
|
33
|
+
|
|
34
|
+
`run <id> "<prompt>"` sends a follow-up to an existing agent.
|
|
35
|
+
|
|
36
|
+
`show <id>` prints status and the latest response. If the agent is still
|
|
37
|
+
running, `show` waits briefly. If there is still no final response, call `show`
|
|
38
|
+
again later.
|
|
39
|
+
|
|
40
|
+
Do not run provider CLIs such as `codex`, `claude`, `opencode`, `pi`,
|
|
41
|
+
`cursor-agent`, or `copilot` directly unless you are explicitly debugging
|
|
42
|
+
DevSpace agent integration.
|
|
43
|
+
|
|
44
|
+
## Choosing a profile
|
|
45
|
+
|
|
46
|
+
Choose profiles from the compact subagent profile catalog returned by
|
|
47
|
+
`open_workspace`. Use the profile name with `devspace agents run`. If no
|
|
48
|
+
profile fits and delegation is still appropriate, use a built-in provider name
|
|
49
|
+
from `open_workspace`.
|
|
50
|
+
|
|
51
|
+
Profiles may declare a model and optional thinking level. To override the
|
|
52
|
+
configured/default provider model or thinking level for a run, pass `--model`
|
|
53
|
+
or `--thinking`:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
devspace agents run <profile-or-provider> --model <model> "<prompt>"
|
|
57
|
+
devspace agents run <profile-or-provider> --thinking <level> "<prompt>"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Use `--thinking` only when the user asks for a specific reasoning depth or when
|
|
61
|
+
the task clearly needs a different effort than the configured profile default.
|
|
62
|
+
Thinking values are provider-specific passthrough values. Use names supported by
|
|
63
|
+
the selected local agent harness; DevSpace does not translate values between
|
|
64
|
+
providers.
|
|
65
|
+
|
|
66
|
+
Good delegation targets:
|
|
67
|
+
|
|
68
|
+
- `reviewer`: second opinion, bug risk, security risk, test gaps.
|
|
69
|
+
- `explorer`: read-only codebase investigation.
|
|
70
|
+
- `implementer`: focused implementation when the user asked for delegation.
|
|
71
|
+
|
|
72
|
+
Do not delegate ordinary coding work just because a profile exists. Use normal
|
|
73
|
+
DevSpace tools unless the user asked for delegation, another agent's opinion,
|
|
74
|
+
parallel work, or a named subagent.
|
|
75
|
+
|
|
76
|
+
## Worker prompts
|
|
77
|
+
|
|
78
|
+
Agents start with only the prompt you send plus their configured profile
|
|
79
|
+
instructions. Make prompts self-contained.
|
|
80
|
+
|
|
81
|
+
Implementation prompt shape:
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
Goal:
|
|
85
|
+
<clear goal>
|
|
86
|
+
|
|
87
|
+
Context:
|
|
88
|
+
<repo/module/user constraints>
|
|
89
|
+
|
|
90
|
+
Relevant files:
|
|
91
|
+
<paths and why they matter>
|
|
92
|
+
|
|
93
|
+
Acceptance criteria:
|
|
94
|
+
- <criterion>
|
|
95
|
+
|
|
96
|
+
Rules:
|
|
97
|
+
- Keep changes focused.
|
|
98
|
+
- Do not perform unrelated refactors.
|
|
99
|
+
- Report blockers clearly.
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Read-only investigation prompt shape:
|
|
103
|
+
|
|
104
|
+
```text
|
|
105
|
+
Question:
|
|
106
|
+
<specific question>
|
|
107
|
+
|
|
108
|
+
Scope:
|
|
109
|
+
<files/directories/modules to inspect>
|
|
110
|
+
|
|
111
|
+
Rules:
|
|
112
|
+
- Do not modify files.
|
|
113
|
+
- Cite relevant file paths and symbols.
|
|
114
|
+
- Separate facts from guesses.
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## After the worker responds
|
|
118
|
+
|
|
119
|
+
Always review the result before presenting it as verified.
|
|
120
|
+
|
|
121
|
+
For write-capable tasks, inspect changed files and run or explain relevant
|
|
122
|
+
tests. For read-only tasks, verify that important claims are supported by repo
|
|
123
|
+
evidence.
|
|
124
|
+
|
|
125
|
+
Be transparent in the final response:
|
|
126
|
+
|
|
127
|
+
```text
|
|
128
|
+
I used <profile>. It reported <summary>. I verified <checks>. Remaining risk:
|
|
129
|
+
<risk or none>.
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Never hide that a subagent was used.
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
# Codex Tool Mode Manual QA
|
|
2
|
-
|
|
3
|
-
Run these checks against a disposable Git repository inside an allowed DevSpace
|
|
4
|
-
root. Keep the DevSpace server logs visible during the test.
|
|
5
|
-
|
|
6
|
-
## Setup
|
|
7
|
-
|
|
8
|
-
1. Build the current branch with `npm ci && npm run build`.
|
|
9
|
-
2. Start DevSpace with `DEVSPACE_TOOL_MODE=codex devspace serve`.
|
|
10
|
-
3. Connect or refresh the DevSpace connector in ChatGPT.
|
|
11
|
-
4. Open the disposable repository with `open_workspace`.
|
|
12
|
-
5. Confirm the core tools are `open_workspace`, `read`, `apply_patch`,
|
|
13
|
-
`exec_command`, and `write_stdin`.
|
|
14
|
-
6. Confirm `write`, `edit`, `bash`, `grep`, `glob`, and `ls` are absent.
|
|
15
|
-
7. If `DEVSPACE_WIDGETS=changes`, also expect `show_changes`.
|
|
16
|
-
|
|
17
|
-
## Apply Patch
|
|
18
|
-
|
|
19
|
-
1. Add a text file containing multiple lines and a blank line.
|
|
20
|
-
2. Update two separate regions of that file in one patch.
|
|
21
|
-
3. Create a nested file, rename it, and then delete it.
|
|
22
|
-
4. Patch an existing CRLF file and verify it remains CRLF.
|
|
23
|
-
5. Verify executable permissions survive an update and a move.
|
|
24
|
-
6. Try to add `../outside.txt`; confirm the tool rejects the path.
|
|
25
|
-
7. Patch through a symlink targeting an external directory; confirm rejection.
|
|
26
|
-
8. Submit a hunk whose context is absent; confirm no file from that patch changes.
|
|
27
|
-
9. With changes widgets enabled, inspect the aggregate diff.
|
|
28
|
-
|
|
29
|
-
## Foreground Commands
|
|
30
|
-
|
|
31
|
-
1. Run `pwd` and confirm it reports the opened workspace.
|
|
32
|
-
2. Run a command in a relative `workingDirectory` and confirm the directory.
|
|
33
|
-
3. Write to stdout and stderr; confirm both appear.
|
|
34
|
-
4. Exit nonzero; confirm `running=false` and the exit code.
|
|
35
|
-
5. Use a small output budget on a noisy command; confirm truncation is reported.
|
|
36
|
-
|
|
37
|
-
## Background Sessions
|
|
38
|
-
|
|
39
|
-
1. Start a delayed command with a short yield time.
|
|
40
|
-
2. Confirm `exec_command` returns `running=true` and a `sessionId`.
|
|
41
|
-
3. Poll with empty `chars`; confirm output is not duplicated.
|
|
42
|
-
4. Poll until completion; confirm the final exit code and no `sessionId`.
|
|
43
|
-
5. Poll the completed session again; confirm it is unknown.
|
|
44
|
-
6. Reconnect MCP without restarting DevSpace and confirm polling still works.
|
|
45
|
-
7. Restart DevSpace and confirm old process session IDs are invalid.
|
|
46
|
-
|
|
47
|
-
## Input, Interrupt, And PTY
|
|
48
|
-
|
|
49
|
-
1. Start a program that reads stdin without a PTY and send it a line.
|
|
50
|
-
2. Start a long-running process and send `\u0003`; confirm it stops.
|
|
51
|
-
3. Start an interactive program with `tty=true`; confirm it detects a TTY.
|
|
52
|
-
4. Resize a PTY from 80x24 to 120x30 and verify the observed dimensions.
|
|
53
|
-
5. Omit optional dependencies; normal commands must work and `tty=true` must
|
|
54
|
-
return the explicit `node-pty` error.
|
|
55
|
-
|
|
56
|
-
## Cleanup
|
|
57
|
-
|
|
58
|
-
1. Start a non-PTY command that creates a long-running child process.
|
|
59
|
-
2. Stop DevSpace with SIGINT and verify both shell and child exit.
|
|
60
|
-
3. Repeat with a PTY command.
|
|
61
|
-
4. Confirm no process remains after server exit.
|
|
62
|
-
5. Repeat session cycles and check that memory use does not steadily increase.
|
|
63
|
-
|
|
64
|
-
## Existing Mode Regression
|
|
65
|
-
|
|
66
|
-
1. Start without `DEVSPACE_TOOL_MODE`; confirm `minimal` remains the default.
|
|
67
|
-
2. Minimal must expose `read`, `write`, `edit`, and `bash`, but not Codex tools
|
|
68
|
-
or dedicated search tools.
|
|
69
|
-
3. `DEVSPACE_TOOL_MODE=full` must add `grep`, `glob`, and `ls`.
|
|
70
|
-
4. With no explicit mode, `DEVSPACE_MINIMAL_TOOLS=1` maps to minimal and `0`
|
|
71
|
-
maps to full.
|
|
72
|
-
5. Set `DEVSPACE_TOOL_MODE=codex` with `DEVSPACE_MINIMAL_TOOLS=0`; confirm the
|
|
73
|
-
explicit Codex mode wins.
|