gsd-pi 2.3.7 → 2.3.9
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 +5 -2
- package/dist/cli.js +32 -2
- package/dist/logo.d.ts +16 -0
- package/dist/logo.js +25 -0
- package/dist/onboarding.d.ts +43 -0
- package/dist/onboarding.js +425 -0
- package/dist/wizard.js +8 -0
- package/package.json +1 -1
- package/scripts/postinstall.js +38 -9
- package/src/resources/GSD-WORKFLOW.md +2 -2
- package/src/resources/extensions/google-search/index.ts +1 -1
- package/src/resources/extensions/gsd/auto.ts +393 -168
- package/src/resources/extensions/gsd/files.ts +9 -7
- package/src/resources/extensions/gsd/index.ts +57 -2
- package/src/resources/extensions/gsd/metrics.ts +7 -5
- package/src/resources/extensions/gsd/migrate/command.ts +4 -1
- package/src/resources/extensions/gsd/migrate/validator.ts +5 -3
- package/src/resources/extensions/gsd/prompts/system.md +1 -1
- package/src/resources/extensions/gsd/tests/migrate-parser.test.ts +5 -5
- package/src/resources/extensions/gsd/tests/migrate-validator-parsers.test.ts +3 -3
- package/src/resources/extensions/gsd/tests/parsers.test.ts +94 -0
- package/src/resources/extensions/gsd/tests/resolve-ts-hooks.mjs +23 -6
- package/src/resources/extensions/gsd/tests/worktree-integration.test.ts +253 -0
- package/src/resources/extensions/gsd/tests/worktree.test.ts +116 -1
- package/src/resources/extensions/gsd/unit-runtime.ts +22 -1
- package/src/resources/extensions/gsd/workspace-index.ts +2 -2
- package/src/resources/extensions/gsd/worktree-command.ts +147 -41
- package/src/resources/extensions/gsd/worktree.ts +105 -8
- package/src/resources/extensions/mcporter/index.ts +21 -2
- package/src/resources/extensions/search-the-web/command-search-provider.ts +95 -0
- package/src/resources/extensions/search-the-web/http.ts +1 -1
- package/src/resources/extensions/search-the-web/index.ts +9 -3
- package/src/resources/extensions/search-the-web/provider.ts +118 -0
- package/src/resources/extensions/search-the-web/tavily.ts +116 -0
- package/src/resources/extensions/search-the-web/tool-llm-context.ts +265 -108
- package/src/resources/extensions/search-the-web/tool-search.ts +161 -88
- package/src/resources/extensions/subagent/index.ts +1 -1
package/scripts/postinstall.js
CHANGED
|
@@ -33,23 +33,52 @@ const banner =
|
|
|
33
33
|
` ${green}✓${reset} Installed successfully\n` +
|
|
34
34
|
` ${dim}Run ${reset}${cyan}gsd${reset}${dim} to get started.${reset}\n`
|
|
35
35
|
|
|
36
|
+
function run(command, options = {}) {
|
|
37
|
+
return execSync(command, {
|
|
38
|
+
cwd: resolve(__dirname, '..'),
|
|
39
|
+
encoding: 'utf8',
|
|
40
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
41
|
+
...options,
|
|
42
|
+
})
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function printCaptured(output) {
|
|
46
|
+
if (output) process.stderr.write(output)
|
|
47
|
+
}
|
|
48
|
+
|
|
36
49
|
process.stderr.write(banner)
|
|
37
50
|
|
|
38
51
|
// Apply patches to upstream dependencies (non-fatal)
|
|
39
52
|
try {
|
|
40
|
-
|
|
53
|
+
const output = run('npx patch-package')
|
|
54
|
+
printCaptured(output)
|
|
41
55
|
process.stderr.write(`\n ${green}✓${reset} Patches applied\n`)
|
|
42
|
-
} catch {
|
|
56
|
+
} catch (error) {
|
|
57
|
+
printCaptured(error.stdout)
|
|
58
|
+
printCaptured(error.stderr)
|
|
43
59
|
process.stderr.write(`\n ${yellow}⚠${reset} Failed to apply patches — run ${cyan}npx patch-package${reset} manually\n`)
|
|
44
60
|
}
|
|
45
61
|
|
|
46
|
-
// Install Playwright chromium for browser tools (non-fatal)
|
|
62
|
+
// Install Playwright chromium for browser tools (non-fatal).
|
|
63
|
+
// We intentionally avoid --with-deps here because install scripts should not
|
|
64
|
+
// block on interactive sudo prompts. Playwright validates host requirements
|
|
65
|
+
// after download; if Linux libs are missing, suggest the explicit follow-up.
|
|
47
66
|
try {
|
|
48
|
-
|
|
67
|
+
const output = run('npx playwright install chromium')
|
|
68
|
+
printCaptured(output)
|
|
49
69
|
process.stderr.write(`\n ${green}✓${reset} Browser tools ready\n\n`)
|
|
50
|
-
} catch {
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
70
|
+
} catch (error) {
|
|
71
|
+
const output = `${error.stdout ?? ''}${error.stderr ?? ''}`
|
|
72
|
+
printCaptured(output)
|
|
73
|
+
|
|
74
|
+
if (os.platform() === 'linux' && output.includes('Host system is missing dependencies to run browsers.')) {
|
|
75
|
+
process.stderr.write(
|
|
76
|
+
`\n ${yellow}⚠${reset} Browser downloaded, but Linux system dependencies are missing.\n` +
|
|
77
|
+
` ${dim}Run ${reset}${cyan}sudo npx playwright install-deps chromium${reset}${dim} to finish setup.${reset}\n\n`
|
|
78
|
+
)
|
|
79
|
+
} else {
|
|
80
|
+
process.stderr.write(
|
|
81
|
+
`\n ${yellow}⚠${reset} Browser tools unavailable — run ${cyan}npx playwright install chromium${reset} to enable\n\n`
|
|
82
|
+
)
|
|
83
|
+
}
|
|
55
84
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> This document teaches you how to operate the GSD planning methodology manually using files on disk.
|
|
4
4
|
>
|
|
5
|
-
> **When to read this:** At the start of any session working on GSD-managed work, or when
|
|
5
|
+
> **When to read this:** At the start of any session working on GSD-managed work, or when loaded by `/gsd`.
|
|
6
6
|
>
|
|
7
7
|
> **After reading this, always read `.gsd/state.md` to find out what's next.**
|
|
8
8
|
> If the milestone has a `context.md`, read that too — it contains project-specific decisions, reference paths, and implementation guidance that this generic methodology doc does not.
|
|
@@ -656,6 +656,6 @@ This methodology doc is generic. Project-specific guidance belongs in the milest
|
|
|
656
656
|
|
|
657
657
|
If you sense context pressure (many files read, long execution, lots of tool output):
|
|
658
658
|
|
|
659
|
-
1. **If mid-task:** Write `continue.md` with exact resume state. Tell the user: "Context is getting full. I've saved progress to continue.md. Start a new session and
|
|
659
|
+
1. **If mid-task:** Write `continue.md` with exact resume state. Tell the user: "Context is getting full. I've saved progress to continue.md. Start a new session and run `/gsd` to pick up where you left off, or `/gsd auto` to resume in auto-execution mode."
|
|
660
660
|
2. **If between tasks:** Just update `state.md` with the next action. No continue file needed — the next session will read state.md and pick up the next task cleanly.
|
|
661
661
|
3. **Don't fight it.** The whole system is designed for this. A fresh session with the right files loaded is better than a stale session with degraded reasoning.
|
|
@@ -141,7 +141,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
141
141
|
try {
|
|
142
142
|
const ai = getClient();
|
|
143
143
|
const response = await ai.models.generateContent({
|
|
144
|
-
model: "gemini-
|
|
144
|
+
model: process.env.GEMINI_SEARCH_MODEL || "gemini-2.5-flash",
|
|
145
145
|
contents: params.query,
|
|
146
146
|
config: {
|
|
147
147
|
tools: [{ googleSearch: {} }],
|