@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
package/dist/skills.js
CHANGED
|
@@ -1,16 +1,60 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
1
2
|
import { homedir } from "node:os";
|
|
2
|
-
import { resolve, sep } from "node:path";
|
|
3
|
+
import { join, resolve, sep } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
3
5
|
import { loadSkills, } from "@earendil-works/pi-coding-agent";
|
|
4
6
|
import { expandHomePath, isPathInsideRoot } from "./roots.js";
|
|
7
|
+
const SUBAGENT_DELEGATION_NAME = "subagent-delegation";
|
|
8
|
+
const SUBAGENT_DELEGATION_SKILL = join(SUBAGENT_DELEGATION_NAME, "SKILL.md");
|
|
9
|
+
function bundledSkillsDir() {
|
|
10
|
+
return fileURLToPath(new URL("../skills", import.meta.url));
|
|
11
|
+
}
|
|
12
|
+
function hasSubagentDelegationSkill(skillDir) {
|
|
13
|
+
return existsSync(join(skillDir, SUBAGENT_DELEGATION_SKILL));
|
|
14
|
+
}
|
|
15
|
+
export function effectiveSkillPaths(config, cwd) {
|
|
16
|
+
const bundledSkills = bundledSkillsDir();
|
|
17
|
+
const defaultPathCandidates = [
|
|
18
|
+
join(homedir(), ".agents", "skills"),
|
|
19
|
+
resolve(cwd, ".agents", "skills"),
|
|
20
|
+
config.devspaceSkillsDir,
|
|
21
|
+
join(config.agentDir, "skills"),
|
|
22
|
+
config.subagents && !hasSubagentDelegationSkill(config.devspaceSkillsDir)
|
|
23
|
+
? bundledSkills
|
|
24
|
+
: undefined,
|
|
25
|
+
];
|
|
26
|
+
const defaultPaths = defaultPathCandidates.filter((path) => path !== undefined && existsSync(path));
|
|
27
|
+
const seen = new Set();
|
|
28
|
+
return [...defaultPaths, ...config.skillPaths]
|
|
29
|
+
.map((path) => resolveSkillPath(path, cwd))
|
|
30
|
+
.filter((path) => {
|
|
31
|
+
if (seen.has(path))
|
|
32
|
+
return false;
|
|
33
|
+
seen.add(path);
|
|
34
|
+
return true;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function resolveSkillPath(path, cwd) {
|
|
38
|
+
return resolve(cwd, expandHomePath(path));
|
|
39
|
+
}
|
|
5
40
|
export function loadWorkspaceSkills(config, cwd) {
|
|
6
41
|
if (!config.skillsEnabled)
|
|
7
42
|
return { skills: [], diagnostics: [] };
|
|
8
|
-
|
|
43
|
+
const result = loadSkills({
|
|
9
44
|
cwd,
|
|
10
45
|
agentDir: config.agentDir,
|
|
11
|
-
skillPaths: config
|
|
12
|
-
includeDefaults:
|
|
46
|
+
skillPaths: effectiveSkillPaths(config, cwd),
|
|
47
|
+
includeDefaults: false,
|
|
13
48
|
});
|
|
49
|
+
if (config.subagents)
|
|
50
|
+
return result;
|
|
51
|
+
return {
|
|
52
|
+
skills: result.skills.filter((skill) => skill.name !== SUBAGENT_DELEGATION_NAME),
|
|
53
|
+
diagnostics: result.diagnostics.filter((diagnostic) => {
|
|
54
|
+
const collision = diagnostic.collision;
|
|
55
|
+
return !(collision?.resourceType === "skill" && collision.name === SUBAGENT_DELEGATION_NAME);
|
|
56
|
+
}),
|
|
57
|
+
};
|
|
14
58
|
}
|
|
15
59
|
export function resolveSkillReadPath(skills, activatedSkillDirs, inputPath) {
|
|
16
60
|
const absolutePath = resolve(expandHomePath(inputPath));
|