gsd-pi 2.14.4 → 2.15.0

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.
Files changed (172) hide show
  1. package/dist/cli.js +17 -7
  2. package/dist/resources/extensions/bg-shell/index.ts +38 -1644
  3. package/dist/resources/extensions/bg-shell/interaction.ts +198 -0
  4. package/dist/resources/extensions/bg-shell/output-formatter.ts +259 -0
  5. package/dist/resources/extensions/bg-shell/overlay.ts +432 -0
  6. package/dist/resources/extensions/bg-shell/process-manager.ts +404 -0
  7. package/dist/resources/extensions/bg-shell/readiness-detector.ts +126 -0
  8. package/dist/resources/extensions/bg-shell/types.ts +251 -0
  9. package/dist/resources/extensions/bg-shell/utilities.ts +55 -0
  10. package/dist/resources/extensions/gsd/activity-log.ts +22 -9
  11. package/dist/resources/extensions/gsd/auto-dashboard.ts +432 -0
  12. package/dist/resources/extensions/gsd/auto-dispatch.ts +258 -0
  13. package/dist/resources/extensions/gsd/auto-prompts.ts +791 -0
  14. package/dist/resources/extensions/gsd/auto-recovery.ts +493 -0
  15. package/dist/resources/extensions/gsd/auto-supervisor.ts +59 -0
  16. package/dist/resources/extensions/gsd/auto-worktree.ts +40 -3
  17. package/dist/resources/extensions/gsd/auto.ts +215 -1750
  18. package/dist/resources/extensions/gsd/cache.ts +27 -0
  19. package/dist/resources/extensions/gsd/commands.ts +310 -6
  20. package/dist/resources/extensions/gsd/crash-recovery.ts +4 -3
  21. package/dist/resources/extensions/gsd/dashboard-overlay.ts +5 -1
  22. package/dist/resources/extensions/gsd/dispatch-guard.ts +26 -15
  23. package/dist/resources/extensions/gsd/docs/preferences-reference.md +2 -2
  24. package/dist/resources/extensions/gsd/errors.ts +31 -0
  25. package/dist/resources/extensions/gsd/export.ts +100 -0
  26. package/dist/resources/extensions/gsd/git-service.ts +8 -1
  27. package/dist/resources/extensions/gsd/guided-flow.ts +4 -2
  28. package/dist/resources/extensions/gsd/history.ts +162 -0
  29. package/dist/resources/extensions/gsd/index.ts +2 -2
  30. package/dist/resources/extensions/gsd/metrics.ts +17 -0
  31. package/dist/resources/extensions/gsd/notifications.ts +88 -0
  32. package/dist/resources/extensions/gsd/preferences.ts +144 -16
  33. package/dist/resources/extensions/gsd/prompts/complete-milestone.md +4 -0
  34. package/dist/resources/extensions/gsd/prompts/complete-slice.md +10 -0
  35. package/dist/resources/extensions/gsd/prompts/execute-task.md +6 -2
  36. package/dist/resources/extensions/gsd/prompts/guided-complete-slice.md +1 -1
  37. package/dist/resources/extensions/gsd/prompts/guided-research-slice.md +3 -1
  38. package/dist/resources/extensions/gsd/prompts/plan-milestone.md +6 -0
  39. package/dist/resources/extensions/gsd/prompts/plan-slice.md +11 -1
  40. package/dist/resources/extensions/gsd/prompts/reassess-roadmap.md +6 -0
  41. package/dist/resources/extensions/gsd/prompts/research-milestone.md +13 -8
  42. package/dist/resources/extensions/gsd/prompts/research-slice.md +31 -3
  43. package/dist/resources/extensions/gsd/prompts/system.md +17 -7
  44. package/dist/resources/extensions/gsd/provider-error-pause.ts +12 -0
  45. package/dist/resources/extensions/gsd/templates/plan.md +0 -7
  46. package/dist/resources/extensions/gsd/templates/reassessment.md +3 -2
  47. package/dist/resources/extensions/gsd/templates/research.md +38 -5
  48. package/dist/resources/extensions/gsd/templates/state.md +0 -1
  49. package/dist/resources/extensions/gsd/tests/agent-end-provider-error.test.ts +29 -0
  50. package/dist/resources/extensions/gsd/tests/auto-budget-alerts.test.ts +33 -0
  51. package/dist/resources/extensions/gsd/tests/auto-draft-pause.test.ts +20 -14
  52. package/dist/resources/extensions/gsd/tests/auto-worktree-milestone-merge.test.ts +43 -0
  53. package/dist/resources/extensions/gsd/tests/complete-milestone.test.ts +4 -5
  54. package/dist/resources/extensions/gsd/tests/dispatch-guard.test.ts +34 -20
  55. package/dist/resources/extensions/gsd/tests/draft-promotion.test.ts +5 -6
  56. package/dist/resources/extensions/gsd/tests/notifications.test.ts +67 -0
  57. package/dist/resources/extensions/gsd/tests/preferences-git.test.ts +25 -18
  58. package/dist/resources/extensions/gsd/tests/preferences-models.test.ts +208 -0
  59. package/dist/resources/extensions/gsd/tests/preferences-schema-validation.test.ts +176 -0
  60. package/dist/resources/extensions/gsd/tests/undo.test.ts +136 -0
  61. package/dist/resources/extensions/gsd/types.ts +13 -0
  62. package/dist/resources/extensions/gsd/undo.ts +219 -0
  63. package/dist/update-check.js +3 -6
  64. package/package.json +1 -1
  65. package/packages/pi-coding-agent/dist/config.d.ts +0 -6
  66. package/packages/pi-coding-agent/dist/config.d.ts.map +1 -1
  67. package/packages/pi-coding-agent/dist/config.js +9 -6
  68. package/packages/pi-coding-agent/dist/config.js.map +1 -1
  69. package/packages/pi-coding-agent/src/config.ts +10 -6
  70. package/packages/pi-tui/dist/components/__tests__/cancellable-loader.test.d.ts +2 -0
  71. package/packages/pi-tui/dist/components/__tests__/cancellable-loader.test.d.ts.map +1 -0
  72. package/packages/pi-tui/dist/components/__tests__/cancellable-loader.test.js +38 -0
  73. package/packages/pi-tui/dist/components/__tests__/cancellable-loader.test.js.map +1 -0
  74. package/packages/pi-tui/dist/components/__tests__/input.test.d.ts +2 -0
  75. package/packages/pi-tui/dist/components/__tests__/input.test.d.ts.map +1 -0
  76. package/packages/pi-tui/dist/components/__tests__/input.test.js +29 -0
  77. package/packages/pi-tui/dist/components/__tests__/input.test.js.map +1 -0
  78. package/packages/pi-tui/dist/components/__tests__/loader.test.d.ts +2 -0
  79. package/packages/pi-tui/dist/components/__tests__/loader.test.d.ts.map +1 -0
  80. package/packages/pi-tui/dist/components/__tests__/loader.test.js +37 -0
  81. package/packages/pi-tui/dist/components/__tests__/loader.test.js.map +1 -0
  82. package/packages/pi-tui/dist/components/cancellable-loader.d.ts.map +1 -1
  83. package/packages/pi-tui/dist/components/cancellable-loader.js +2 -0
  84. package/packages/pi-tui/dist/components/cancellable-loader.js.map +1 -1
  85. package/packages/pi-tui/dist/components/editor.d.ts +1 -0
  86. package/packages/pi-tui/dist/components/editor.d.ts.map +1 -1
  87. package/packages/pi-tui/dist/components/editor.js +13 -1
  88. package/packages/pi-tui/dist/components/editor.js.map +1 -1
  89. package/packages/pi-tui/dist/components/input.d.ts +3 -1
  90. package/packages/pi-tui/dist/components/input.d.ts.map +1 -1
  91. package/packages/pi-tui/dist/components/input.js +11 -1
  92. package/packages/pi-tui/dist/components/input.js.map +1 -1
  93. package/packages/pi-tui/dist/components/loader.d.ts +1 -0
  94. package/packages/pi-tui/dist/components/loader.d.ts.map +1 -1
  95. package/packages/pi-tui/dist/components/loader.js +7 -0
  96. package/packages/pi-tui/dist/components/loader.js.map +1 -1
  97. package/packages/pi-tui/dist/terminal.d.ts.map +1 -1
  98. package/packages/pi-tui/dist/terminal.js +4 -1
  99. package/packages/pi-tui/dist/terminal.js.map +1 -1
  100. package/packages/pi-tui/dist/tui.d.ts.map +1 -1
  101. package/packages/pi-tui/dist/tui.js +7 -0
  102. package/packages/pi-tui/dist/tui.js.map +1 -1
  103. package/packages/pi-tui/src/components/__tests__/cancellable-loader.test.ts +45 -0
  104. package/packages/pi-tui/src/components/__tests__/input.test.ts +35 -0
  105. package/packages/pi-tui/src/components/__tests__/loader.test.ts +45 -0
  106. package/packages/pi-tui/src/components/cancellable-loader.ts +2 -0
  107. package/packages/pi-tui/src/components/editor.ts +14 -1
  108. package/packages/pi-tui/src/components/input.ts +11 -1
  109. package/packages/pi-tui/src/components/loader.ts +8 -0
  110. package/packages/pi-tui/src/terminal.ts +4 -1
  111. package/packages/pi-tui/src/tui.ts +9 -0
  112. package/src/resources/extensions/bg-shell/index.ts +38 -1644
  113. package/src/resources/extensions/bg-shell/interaction.ts +198 -0
  114. package/src/resources/extensions/bg-shell/output-formatter.ts +259 -0
  115. package/src/resources/extensions/bg-shell/overlay.ts +432 -0
  116. package/src/resources/extensions/bg-shell/process-manager.ts +404 -0
  117. package/src/resources/extensions/bg-shell/readiness-detector.ts +126 -0
  118. package/src/resources/extensions/bg-shell/types.ts +251 -0
  119. package/src/resources/extensions/bg-shell/utilities.ts +55 -0
  120. package/src/resources/extensions/gsd/activity-log.ts +22 -9
  121. package/src/resources/extensions/gsd/auto-dashboard.ts +432 -0
  122. package/src/resources/extensions/gsd/auto-dispatch.ts +258 -0
  123. package/src/resources/extensions/gsd/auto-prompts.ts +791 -0
  124. package/src/resources/extensions/gsd/auto-recovery.ts +493 -0
  125. package/src/resources/extensions/gsd/auto-supervisor.ts +59 -0
  126. package/src/resources/extensions/gsd/auto-worktree.ts +40 -3
  127. package/src/resources/extensions/gsd/auto.ts +215 -1750
  128. package/src/resources/extensions/gsd/cache.ts +27 -0
  129. package/src/resources/extensions/gsd/commands.ts +310 -6
  130. package/src/resources/extensions/gsd/crash-recovery.ts +4 -3
  131. package/src/resources/extensions/gsd/dashboard-overlay.ts +5 -1
  132. package/src/resources/extensions/gsd/dispatch-guard.ts +26 -15
  133. package/src/resources/extensions/gsd/docs/preferences-reference.md +2 -2
  134. package/src/resources/extensions/gsd/errors.ts +31 -0
  135. package/src/resources/extensions/gsd/export.ts +100 -0
  136. package/src/resources/extensions/gsd/git-service.ts +8 -1
  137. package/src/resources/extensions/gsd/guided-flow.ts +4 -2
  138. package/src/resources/extensions/gsd/history.ts +162 -0
  139. package/src/resources/extensions/gsd/index.ts +2 -2
  140. package/src/resources/extensions/gsd/metrics.ts +17 -0
  141. package/src/resources/extensions/gsd/notifications.ts +88 -0
  142. package/src/resources/extensions/gsd/preferences.ts +144 -16
  143. package/src/resources/extensions/gsd/prompts/complete-milestone.md +4 -0
  144. package/src/resources/extensions/gsd/prompts/complete-slice.md +10 -0
  145. package/src/resources/extensions/gsd/prompts/execute-task.md +6 -2
  146. package/src/resources/extensions/gsd/prompts/guided-complete-slice.md +1 -1
  147. package/src/resources/extensions/gsd/prompts/guided-research-slice.md +3 -1
  148. package/src/resources/extensions/gsd/prompts/plan-milestone.md +6 -0
  149. package/src/resources/extensions/gsd/prompts/plan-slice.md +11 -1
  150. package/src/resources/extensions/gsd/prompts/reassess-roadmap.md +6 -0
  151. package/src/resources/extensions/gsd/prompts/research-milestone.md +13 -8
  152. package/src/resources/extensions/gsd/prompts/research-slice.md +31 -3
  153. package/src/resources/extensions/gsd/prompts/system.md +17 -7
  154. package/src/resources/extensions/gsd/provider-error-pause.ts +12 -0
  155. package/src/resources/extensions/gsd/templates/plan.md +0 -7
  156. package/src/resources/extensions/gsd/templates/reassessment.md +3 -2
  157. package/src/resources/extensions/gsd/templates/research.md +38 -5
  158. package/src/resources/extensions/gsd/templates/state.md +0 -1
  159. package/src/resources/extensions/gsd/tests/agent-end-provider-error.test.ts +29 -0
  160. package/src/resources/extensions/gsd/tests/auto-budget-alerts.test.ts +33 -0
  161. package/src/resources/extensions/gsd/tests/auto-draft-pause.test.ts +20 -14
  162. package/src/resources/extensions/gsd/tests/auto-worktree-milestone-merge.test.ts +43 -0
  163. package/src/resources/extensions/gsd/tests/complete-milestone.test.ts +4 -5
  164. package/src/resources/extensions/gsd/tests/dispatch-guard.test.ts +34 -20
  165. package/src/resources/extensions/gsd/tests/draft-promotion.test.ts +5 -6
  166. package/src/resources/extensions/gsd/tests/notifications.test.ts +67 -0
  167. package/src/resources/extensions/gsd/tests/preferences-git.test.ts +25 -18
  168. package/src/resources/extensions/gsd/tests/preferences-models.test.ts +208 -0
  169. package/src/resources/extensions/gsd/tests/preferences-schema-validation.test.ts +176 -0
  170. package/src/resources/extensions/gsd/tests/undo.test.ts +136 -0
  171. package/src/resources/extensions/gsd/types.ts +13 -0
  172. package/src/resources/extensions/gsd/undo.ts +219 -0
package/dist/cli.js CHANGED
@@ -7,6 +7,7 @@ import { ensureManagedTools } from './tool-bootstrap.js';
7
7
  import { loadStoredEnvKeys } from './wizard.js';
8
8
  import { getPiDefaultModelAndProvider, migratePiCredentials } from './pi-migration.js';
9
9
  import { shouldRunOnboarding, runOnboarding } from './onboarding.js';
10
+ import chalk from 'chalk';
10
11
  import { checkForUpdates } from './update-check.js';
11
12
  function exitIfManagedResourcesAreNewer(currentAgentDir) {
12
13
  const currentVersion = process.env.GSD_VERSION || '0.0.0';
@@ -14,13 +15,9 @@ function exitIfManagedResourcesAreNewer(currentAgentDir) {
14
15
  if (!managedVersion) {
15
16
  return;
16
17
  }
17
- const yellow = '\x1b[33m';
18
- const dim = '\x1b[2m';
19
- const reset = '\x1b[0m';
20
- const bold = '\x1b[1m';
21
- process.stderr.write(`[gsd] ${yellow}Version mismatch detected${reset}\n` +
22
- `[gsd] Synced resources are from ${bold}v${managedVersion}${reset}, but this \`gsd\` binary is ${dim}v${currentVersion}${reset}.\n` +
23
- `[gsd] Run ${bold}npm install -g gsd-pi@latest${reset} or ${bold}gsd update${reset}, then try again.\n`);
18
+ process.stderr.write(`[gsd] ${chalk.yellow('Version mismatch detected')}\n` +
19
+ `[gsd] Synced resources are from ${chalk.bold(`v${managedVersion}`)}, but this \`gsd\` binary is ${chalk.dim(`v${currentVersion}`)}.\n` +
20
+ `[gsd] Run ${chalk.bold('npm install -g gsd-pi@latest')} or ${chalk.bold('gsd update')}, then try again.\n`);
24
21
  process.exit(1);
25
22
  }
26
23
  function parseCliArgs(argv) {
@@ -111,11 +108,24 @@ migratePiCredentials(authStorage);
111
108
  // Run onboarding wizard on first launch (no LLM provider configured)
112
109
  if (!isPrintMode && shouldRunOnboarding(authStorage)) {
113
110
  await runOnboarding(authStorage);
111
+ // Clean up stdin state left by @clack/prompts.
112
+ // readline.emitKeypressEvents() adds a permanent data listener and
113
+ // readline.createInterface() may leave stdin paused. Remove stale
114
+ // listeners and pause stdin so the TUI can start with a clean slate.
115
+ process.stdin.removeAllListeners('data');
116
+ process.stdin.removeAllListeners('keypress');
117
+ if (process.stdin.setRawMode)
118
+ process.stdin.setRawMode(false);
119
+ process.stdin.pause();
114
120
  }
115
121
  // Non-blocking update check — runs at most once per 24h, fire-and-forget
116
122
  if (!isPrintMode) {
117
123
  checkForUpdates().catch(() => { });
118
124
  }
125
+ // Warn if terminal is too narrow for readable output
126
+ if (!isPrintMode && process.stdout.columns && process.stdout.columns < 40) {
127
+ process.stderr.write(chalk.yellow(`[gsd] Terminal width is ${process.stdout.columns} columns (minimum recommended: 40). Output may be unreadable.\n`));
128
+ }
119
129
  const modelRegistry = new ModelRegistry(authStorage);
120
130
  const settingsManager = SettingsManager.create(agentDir);
121
131
  // --list-models: print available models and exit (no TTY needed)