gsd-pi 2.33.1-dev.ee47f1b → 2.34.0-dev.0150ae9

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 (356) hide show
  1. package/dist/bundled-resource-path.d.ts +8 -0
  2. package/dist/bundled-resource-path.js +14 -0
  3. package/dist/headless-query.js +6 -6
  4. package/dist/resources/extensions/gsd/auto/session.js +27 -32
  5. package/dist/resources/extensions/gsd/auto-dashboard.js +29 -109
  6. package/dist/resources/extensions/gsd/auto-direct-dispatch.js +6 -1
  7. package/dist/resources/extensions/gsd/auto-dispatch.js +52 -81
  8. package/dist/resources/extensions/gsd/auto-loop.js +956 -0
  9. package/dist/resources/extensions/gsd/auto-observability.js +4 -2
  10. package/dist/resources/extensions/gsd/auto-post-unit.js +75 -185
  11. package/dist/resources/extensions/gsd/auto-prompts.js +133 -101
  12. package/dist/resources/extensions/gsd/auto-recovery.js +59 -97
  13. package/dist/resources/extensions/gsd/auto-start.js +330 -309
  14. package/dist/resources/extensions/gsd/auto-supervisor.js +5 -11
  15. package/dist/resources/extensions/gsd/auto-timeout-recovery.js +7 -7
  16. package/dist/resources/extensions/gsd/auto-timers.js +3 -4
  17. package/dist/resources/extensions/gsd/auto-verification.js +35 -73
  18. package/dist/resources/extensions/gsd/auto-worktree-sync.js +167 -0
  19. package/dist/resources/extensions/gsd/auto-worktree.js +291 -126
  20. package/dist/resources/extensions/gsd/auto.js +283 -1013
  21. package/dist/resources/extensions/gsd/captures.js +10 -4
  22. package/dist/resources/extensions/gsd/dispatch-guard.js +7 -8
  23. package/dist/resources/extensions/gsd/docs/preferences-reference.md +25 -18
  24. package/dist/resources/extensions/gsd/doctor-checks.js +3 -4
  25. package/dist/resources/extensions/gsd/git-service.js +1 -1
  26. package/dist/resources/extensions/gsd/gsd-db.js +296 -151
  27. package/dist/resources/extensions/gsd/index.js +92 -228
  28. package/dist/resources/extensions/gsd/post-unit-hooks.js +13 -13
  29. package/dist/resources/extensions/gsd/progress-score.js +61 -156
  30. package/dist/resources/extensions/gsd/quick.js +98 -122
  31. package/dist/resources/extensions/gsd/session-lock.js +13 -0
  32. package/dist/resources/extensions/gsd/templates/preferences.md +1 -0
  33. package/dist/resources/extensions/gsd/undo.js +43 -48
  34. package/dist/resources/extensions/gsd/unit-runtime.js +16 -15
  35. package/dist/resources/extensions/gsd/verification-evidence.js +0 -1
  36. package/dist/resources/extensions/gsd/verification-gate.js +6 -35
  37. package/dist/resources/extensions/gsd/worktree-command.js +30 -24
  38. package/dist/resources/extensions/gsd/worktree-manager.js +2 -3
  39. package/dist/resources/extensions/gsd/worktree-resolver.js +344 -0
  40. package/dist/resources/extensions/gsd/worktree.js +7 -44
  41. package/dist/resources/extensions/mcp-client/index.js +2 -1
  42. package/dist/tool-bootstrap.js +59 -11
  43. package/dist/worktree-cli.js +7 -7
  44. package/package.json +1 -1
  45. package/packages/native/dist/native.d.ts +0 -2
  46. package/packages/native/dist/native.js +0 -2
  47. package/packages/native/src/native.ts +0 -3
  48. package/packages/pi-agent-core/dist/proxy.d.ts +1 -25
  49. package/packages/pi-agent-core/dist/proxy.d.ts.map +1 -1
  50. package/packages/pi-agent-core/dist/proxy.js +1 -1
  51. package/packages/pi-agent-core/dist/proxy.js.map +1 -1
  52. package/packages/pi-agent-core/src/proxy.ts +1 -1
  53. package/packages/pi-ai/dist/api-registry.d.ts +0 -2
  54. package/packages/pi-ai/dist/api-registry.d.ts.map +1 -1
  55. package/packages/pi-ai/dist/api-registry.js +0 -10
  56. package/packages/pi-ai/dist/api-registry.js.map +1 -1
  57. package/packages/pi-ai/dist/models.generated.d.ts +3630 -5483
  58. package/packages/pi-ai/dist/models.generated.d.ts.map +1 -1
  59. package/packages/pi-ai/dist/models.generated.js +735 -2588
  60. package/packages/pi-ai/dist/models.generated.js.map +1 -1
  61. package/packages/pi-ai/dist/providers/anthropic.d.ts +0 -8
  62. package/packages/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
  63. package/packages/pi-ai/dist/providers/anthropic.js +1 -1
  64. package/packages/pi-ai/dist/providers/anthropic.js.map +1 -1
  65. package/packages/pi-ai/dist/providers/github-copilot-headers.d.ts +0 -1
  66. package/packages/pi-ai/dist/providers/github-copilot-headers.d.ts.map +1 -1
  67. package/packages/pi-ai/dist/providers/github-copilot-headers.js +1 -1
  68. package/packages/pi-ai/dist/providers/github-copilot-headers.js.map +1 -1
  69. package/packages/pi-ai/dist/providers/google-gemini-cli.d.ts +1 -43
  70. package/packages/pi-ai/dist/providers/google-gemini-cli.d.ts.map +1 -1
  71. package/packages/pi-ai/dist/providers/google-gemini-cli.js +2 -2
  72. package/packages/pi-ai/dist/providers/google-gemini-cli.js.map +1 -1
  73. package/packages/pi-ai/dist/providers/google-shared.d.ts +0 -4
  74. package/packages/pi-ai/dist/providers/google-shared.d.ts.map +1 -1
  75. package/packages/pi-ai/dist/providers/google-shared.js +1 -1
  76. package/packages/pi-ai/dist/providers/google-shared.js.map +1 -1
  77. package/packages/pi-ai/dist/providers/register-builtins.d.ts +0 -1
  78. package/packages/pi-ai/dist/providers/register-builtins.d.ts.map +1 -1
  79. package/packages/pi-ai/dist/providers/register-builtins.js +1 -1
  80. package/packages/pi-ai/dist/providers/register-builtins.js.map +1 -1
  81. package/packages/pi-ai/dist/utils/event-stream.d.ts +0 -2
  82. package/packages/pi-ai/dist/utils/event-stream.d.ts.map +1 -1
  83. package/packages/pi-ai/dist/utils/event-stream.js +0 -4
  84. package/packages/pi-ai/dist/utils/event-stream.js.map +1 -1
  85. package/packages/pi-ai/dist/utils/overflow.d.ts +0 -4
  86. package/packages/pi-ai/dist/utils/overflow.d.ts.map +1 -1
  87. package/packages/pi-ai/dist/utils/overflow.js +0 -6
  88. package/packages/pi-ai/dist/utils/overflow.js.map +1 -1
  89. package/packages/pi-ai/dist/utils/validation.d.ts +0 -8
  90. package/packages/pi-ai/dist/utils/validation.d.ts.map +1 -1
  91. package/packages/pi-ai/dist/utils/validation.js +0 -14
  92. package/packages/pi-ai/dist/utils/validation.js.map +1 -1
  93. package/packages/pi-ai/src/api-registry.ts +0 -12
  94. package/packages/pi-ai/src/models.generated.ts +1039 -2892
  95. package/packages/pi-ai/src/providers/anthropic.ts +1 -1
  96. package/packages/pi-ai/src/providers/github-copilot-headers.ts +1 -1
  97. package/packages/pi-ai/src/providers/google-gemini-cli.ts +2 -2
  98. package/packages/pi-ai/src/providers/google-shared.ts +1 -1
  99. package/packages/pi-ai/src/providers/register-builtins.ts +1 -1
  100. package/packages/pi-ai/src/utils/event-stream.ts +0 -5
  101. package/packages/pi-ai/src/utils/overflow.ts +1 -8
  102. package/packages/pi-ai/src/utils/validation.ts +0 -15
  103. package/packages/pi-coding-agent/dist/config.d.ts +0 -9
  104. package/packages/pi-coding-agent/dist/config.d.ts.map +1 -1
  105. package/packages/pi-coding-agent/dist/config.js +4 -8
  106. package/packages/pi-coding-agent/dist/config.js.map +1 -1
  107. package/packages/pi-coding-agent/dist/core/export-html/ansi-to-html.d.ts +0 -4
  108. package/packages/pi-coding-agent/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  109. package/packages/pi-coding-agent/dist/core/export-html/ansi-to-html.js +1 -1
  110. package/packages/pi-coding-agent/dist/core/export-html/ansi-to-html.js.map +1 -1
  111. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts +0 -5
  112. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
  113. package/packages/pi-coding-agent/dist/core/extensions/runner.js +0 -13
  114. package/packages/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
  115. package/packages/pi-coding-agent/dist/core/keybindings.d.ts +0 -8
  116. package/packages/pi-coding-agent/dist/core/keybindings.d.ts.map +1 -1
  117. package/packages/pi-coding-agent/dist/core/keybindings.js +2 -2
  118. package/packages/pi-coding-agent/dist/core/keybindings.js.map +1 -1
  119. package/packages/pi-coding-agent/dist/core/lsp/client.d.ts +0 -17
  120. package/packages/pi-coding-agent/dist/core/lsp/client.d.ts.map +1 -1
  121. package/packages/pi-coding-agent/dist/core/lsp/client.js +3 -62
  122. package/packages/pi-coding-agent/dist/core/lsp/client.js.map +1 -1
  123. package/packages/pi-coding-agent/dist/core/lsp/config.d.ts +0 -2
  124. package/packages/pi-coding-agent/dist/core/lsp/config.d.ts.map +1 -1
  125. package/packages/pi-coding-agent/dist/core/lsp/config.js +0 -7
  126. package/packages/pi-coding-agent/dist/core/lsp/config.js.map +1 -1
  127. package/packages/pi-coding-agent/dist/core/lsp/edits.d.ts +0 -5
  128. package/packages/pi-coding-agent/dist/core/lsp/edits.d.ts.map +1 -1
  129. package/packages/pi-coding-agent/dist/core/lsp/edits.js +1 -1
  130. package/packages/pi-coding-agent/dist/core/lsp/edits.js.map +1 -1
  131. package/packages/pi-coding-agent/dist/core/lsp/lspmux.d.ts +0 -1
  132. package/packages/pi-coding-agent/dist/core/lsp/lspmux.d.ts.map +1 -1
  133. package/packages/pi-coding-agent/dist/core/lsp/lspmux.js +1 -1
  134. package/packages/pi-coding-agent/dist/core/lsp/lspmux.js.map +1 -1
  135. package/packages/pi-coding-agent/dist/core/lsp/utils.d.ts +1 -6
  136. package/packages/pi-coding-agent/dist/core/lsp/utils.d.ts.map +1 -1
  137. package/packages/pi-coding-agent/dist/core/lsp/utils.js +1 -28
  138. package/packages/pi-coding-agent/dist/core/lsp/utils.js.map +1 -1
  139. package/packages/pi-coding-agent/dist/core/messages.d.ts +0 -8
  140. package/packages/pi-coding-agent/dist/core/messages.d.ts.map +1 -1
  141. package/packages/pi-coding-agent/dist/core/messages.js +5 -5
  142. package/packages/pi-coding-agent/dist/core/messages.js.map +1 -1
  143. package/packages/pi-coding-agent/dist/core/model-registry.d.ts +0 -3
  144. package/packages/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
  145. package/packages/pi-coding-agent/dist/core/model-registry.js +1 -3
  146. package/packages/pi-coding-agent/dist/core/model-registry.js.map +1 -1
  147. package/packages/pi-coding-agent/dist/core/model-resolver.d.ts +1 -26
  148. package/packages/pi-coding-agent/dist/core/model-resolver.d.ts.map +1 -1
  149. package/packages/pi-coding-agent/dist/core/model-resolver.js +3 -59
  150. package/packages/pi-coding-agent/dist/core/model-resolver.js.map +1 -1
  151. package/packages/pi-coding-agent/dist/core/prompt-templates.d.ts +0 -17
  152. package/packages/pi-coding-agent/dist/core/prompt-templates.d.ts.map +1 -1
  153. package/packages/pi-coding-agent/dist/core/prompt-templates.js +2 -2
  154. package/packages/pi-coding-agent/dist/core/prompt-templates.js.map +1 -1
  155. package/packages/pi-coding-agent/dist/core/session-manager.d.ts +0 -4
  156. package/packages/pi-coding-agent/dist/core/session-manager.d.ts.map +1 -1
  157. package/packages/pi-coding-agent/dist/core/session-manager.js +2 -4
  158. package/packages/pi-coding-agent/dist/core/session-manager.js.map +1 -1
  159. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +0 -12
  160. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
  161. package/packages/pi-coding-agent/dist/core/settings-manager.js +2 -2
  162. package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
  163. package/packages/pi-coding-agent/dist/migrations.d.ts +0 -16
  164. package/packages/pi-coding-agent/dist/migrations.d.ts.map +1 -1
  165. package/packages/pi-coding-agent/dist/migrations.js +2 -2
  166. package/packages/pi-coding-agent/dist/migrations.js.map +1 -1
  167. package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector-search.d.ts +0 -2
  168. package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  169. package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector-search.js +2 -2
  170. package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  171. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +1 -24
  172. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  173. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +50 -512
  174. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  175. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.d.ts +71 -0
  176. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.d.ts.map +1 -0
  177. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js +514 -0
  178. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js.map +1 -0
  179. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +65 -4
  180. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  181. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js +6 -23
  182. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
  183. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts +12 -0
  184. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts.map +1 -0
  185. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +175 -0
  186. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -0
  187. package/packages/pi-coding-agent/dist/utils/changelog.d.ts +0 -4
  188. package/packages/pi-coding-agent/dist/utils/changelog.d.ts.map +1 -1
  189. package/packages/pi-coding-agent/dist/utils/changelog.js +1 -1
  190. package/packages/pi-coding-agent/dist/utils/changelog.js.map +1 -1
  191. package/packages/pi-coding-agent/dist/utils/clipboard-image.d.ts +0 -1
  192. package/packages/pi-coding-agent/dist/utils/clipboard-image.d.ts.map +1 -1
  193. package/packages/pi-coding-agent/dist/utils/clipboard-image.js +1 -1
  194. package/packages/pi-coding-agent/dist/utils/clipboard-image.js.map +1 -1
  195. package/packages/pi-coding-agent/dist/utils/photon.d.ts +0 -19
  196. package/packages/pi-coding-agent/dist/utils/photon.d.ts.map +1 -1
  197. package/packages/pi-coding-agent/dist/utils/photon.js +1 -120
  198. package/packages/pi-coding-agent/dist/utils/photon.js.map +1 -1
  199. package/packages/pi-coding-agent/dist/utils/tools-manager.d.ts +0 -1
  200. package/packages/pi-coding-agent/dist/utils/tools-manager.d.ts.map +1 -1
  201. package/packages/pi-coding-agent/dist/utils/tools-manager.js +1 -1
  202. package/packages/pi-coding-agent/dist/utils/tools-manager.js.map +1 -1
  203. package/packages/pi-coding-agent/package.json +1 -1
  204. package/packages/pi-coding-agent/src/config.ts +5 -10
  205. package/packages/pi-coding-agent/src/core/export-html/ansi-to-html.ts +1 -1
  206. package/packages/pi-coding-agent/src/core/extensions/runner.ts +0 -13
  207. package/packages/pi-coding-agent/src/core/keybindings.ts +2 -2
  208. package/packages/pi-coding-agent/src/core/lsp/client.ts +3 -73
  209. package/packages/pi-coding-agent/src/core/lsp/config.ts +0 -11
  210. package/packages/pi-coding-agent/src/core/lsp/edits.ts +1 -1
  211. package/packages/pi-coding-agent/src/core/lsp/lspmux.ts +1 -1
  212. package/packages/pi-coding-agent/src/core/lsp/utils.ts +1 -33
  213. package/packages/pi-coding-agent/src/core/messages.ts +5 -5
  214. package/packages/pi-coding-agent/src/core/model-registry.ts +0 -2
  215. package/packages/pi-coding-agent/src/core/model-resolver.ts +3 -77
  216. package/packages/pi-coding-agent/src/core/prompt-templates.ts +2 -2
  217. package/packages/pi-coding-agent/src/core/session-manager.ts +2 -4
  218. package/packages/pi-coding-agent/src/core/settings-manager.ts +2 -2
  219. package/packages/pi-coding-agent/src/migrations.ts +2 -2
  220. package/packages/pi-coding-agent/src/modes/interactive/components/session-selector-search.ts +2 -2
  221. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +50 -561
  222. package/packages/pi-coding-agent/src/modes/interactive/slash-command-handlers.ts +653 -0
  223. package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +7 -26
  224. package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +196 -0
  225. package/packages/pi-coding-agent/src/utils/changelog.ts +1 -1
  226. package/packages/pi-coding-agent/src/utils/clipboard-image.ts +1 -1
  227. package/packages/pi-coding-agent/src/utils/photon.ts +0 -137
  228. package/packages/pi-coding-agent/src/utils/tools-manager.ts +1 -1
  229. package/packages/pi-tui/dist/components/editor.d.ts +0 -10
  230. package/packages/pi-tui/dist/components/editor.d.ts.map +1 -1
  231. package/packages/pi-tui/dist/components/editor.js +1 -1
  232. package/packages/pi-tui/dist/components/editor.js.map +1 -1
  233. package/packages/pi-tui/dist/overlay-layout.d.ts +55 -0
  234. package/packages/pi-tui/dist/overlay-layout.d.ts.map +1 -0
  235. package/packages/pi-tui/dist/overlay-layout.js +288 -0
  236. package/packages/pi-tui/dist/overlay-layout.js.map +1 -0
  237. package/packages/pi-tui/dist/tui.d.ts +0 -22
  238. package/packages/pi-tui/dist/tui.d.ts.map +1 -1
  239. package/packages/pi-tui/dist/tui.js +6 -272
  240. package/packages/pi-tui/dist/tui.js.map +1 -1
  241. package/packages/pi-tui/dist/utils.d.ts +0 -7
  242. package/packages/pi-tui/dist/utils.d.ts.map +1 -1
  243. package/packages/pi-tui/dist/utils.js +0 -44
  244. package/packages/pi-tui/dist/utils.js.map +1 -1
  245. package/packages/pi-tui/src/components/editor.ts +1 -1
  246. package/packages/pi-tui/src/overlay-layout.ts +372 -0
  247. package/packages/pi-tui/src/tui.ts +11 -312
  248. package/packages/pi-tui/src/utils.ts +0 -43
  249. package/pkg/dist/core/export-html/ansi-to-html.d.ts +0 -4
  250. package/pkg/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  251. package/pkg/dist/core/export-html/ansi-to-html.js +1 -1
  252. package/pkg/dist/core/export-html/ansi-to-html.js.map +1 -1
  253. package/pkg/dist/modes/interactive/theme/theme.d.ts +65 -4
  254. package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  255. package/pkg/dist/modes/interactive/theme/theme.js +6 -23
  256. package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
  257. package/pkg/dist/modes/interactive/theme/themes.d.ts +12 -0
  258. package/pkg/dist/modes/interactive/theme/themes.d.ts.map +1 -0
  259. package/pkg/dist/modes/interactive/theme/themes.js +175 -0
  260. package/pkg/dist/modes/interactive/theme/themes.js.map +1 -0
  261. package/pkg/package.json +1 -1
  262. package/src/resources/extensions/gsd/auto/session.ts +47 -30
  263. package/src/resources/extensions/gsd/auto-dashboard.ts +28 -131
  264. package/src/resources/extensions/gsd/auto-direct-dispatch.ts +6 -1
  265. package/src/resources/extensions/gsd/auto-dispatch.ts +135 -91
  266. package/src/resources/extensions/gsd/auto-loop.ts +1665 -0
  267. package/src/resources/extensions/gsd/auto-observability.ts +4 -2
  268. package/src/resources/extensions/gsd/auto-post-unit.ts +85 -228
  269. package/src/resources/extensions/gsd/auto-prompts.ts +138 -109
  270. package/src/resources/extensions/gsd/auto-recovery.ts +124 -118
  271. package/src/resources/extensions/gsd/auto-start.ts +440 -354
  272. package/src/resources/extensions/gsd/auto-supervisor.ts +5 -12
  273. package/src/resources/extensions/gsd/auto-timeout-recovery.ts +8 -8
  274. package/src/resources/extensions/gsd/auto-timers.ts +3 -4
  275. package/src/resources/extensions/gsd/auto-verification.ts +76 -90
  276. package/src/resources/extensions/gsd/auto-worktree-sync.ts +204 -0
  277. package/src/resources/extensions/gsd/auto-worktree.ts +389 -141
  278. package/src/resources/extensions/gsd/auto.ts +515 -1199
  279. package/src/resources/extensions/gsd/captures.ts +10 -4
  280. package/src/resources/extensions/gsd/dispatch-guard.ts +13 -9
  281. package/src/resources/extensions/gsd/docs/preferences-reference.md +25 -18
  282. package/src/resources/extensions/gsd/doctor-checks.ts +3 -4
  283. package/src/resources/extensions/gsd/git-service.ts +8 -1
  284. package/src/resources/extensions/gsd/gitignore.ts +4 -2
  285. package/src/resources/extensions/gsd/gsd-db.ts +375 -180
  286. package/src/resources/extensions/gsd/index.ts +104 -263
  287. package/src/resources/extensions/gsd/post-unit-hooks.ts +13 -13
  288. package/src/resources/extensions/gsd/progress-score.ts +65 -200
  289. package/src/resources/extensions/gsd/quick.ts +121 -125
  290. package/src/resources/extensions/gsd/session-lock.ts +11 -0
  291. package/src/resources/extensions/gsd/templates/preferences.md +1 -0
  292. package/src/resources/extensions/gsd/tests/agent-end-retry.test.ts +32 -59
  293. package/src/resources/extensions/gsd/tests/all-milestones-complete-merge.test.ts +75 -27
  294. package/src/resources/extensions/gsd/tests/auto-budget-alerts.test.ts +1 -1
  295. package/src/resources/extensions/gsd/tests/auto-lock-creation.test.ts +37 -0
  296. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +1458 -0
  297. package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +8 -162
  298. package/src/resources/extensions/gsd/tests/auto-secrets-gate.test.ts +2 -108
  299. package/src/resources/extensions/gsd/tests/auto-session-encapsulation.test.ts +1 -3
  300. package/src/resources/extensions/gsd/tests/auto-worktree-milestone-merge.test.ts +0 -3
  301. package/src/resources/extensions/gsd/tests/auto-worktree.test.ts +58 -0
  302. package/src/resources/extensions/gsd/tests/dispatch-guard.test.ts +0 -55
  303. package/src/resources/extensions/gsd/tests/headless-query.test.ts +22 -0
  304. package/src/resources/extensions/gsd/tests/milestone-transition-worktree.test.ts +8 -11
  305. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +4 -6
  306. package/src/resources/extensions/gsd/tests/run-uat.test.ts +3 -3
  307. package/src/resources/extensions/gsd/tests/session-lock-regression.test.ts +64 -0
  308. package/src/resources/extensions/gsd/tests/sidecar-queue.test.ts +181 -0
  309. package/src/resources/extensions/gsd/tests/stale-worktree-cwd.test.ts +0 -3
  310. package/src/resources/extensions/gsd/tests/token-profile.test.ts +6 -6
  311. package/src/resources/extensions/gsd/tests/triage-dispatch.test.ts +6 -6
  312. package/src/resources/extensions/gsd/tests/undo.test.ts +6 -0
  313. package/src/resources/extensions/gsd/tests/verification-evidence.test.ts +24 -26
  314. package/src/resources/extensions/gsd/tests/verification-gate.test.ts +7 -201
  315. package/src/resources/extensions/gsd/tests/worktree-db-integration.test.ts +205 -0
  316. package/src/resources/extensions/gsd/tests/worktree-db.test.ts +442 -0
  317. package/src/resources/extensions/gsd/tests/worktree-e2e.test.ts +0 -3
  318. package/src/resources/extensions/gsd/tests/worktree-resolver.test.ts +705 -0
  319. package/src/resources/extensions/gsd/tests/worktree-sync-milestones.test.ts +57 -106
  320. package/src/resources/extensions/gsd/tests/worktree.test.ts +5 -1
  321. package/src/resources/extensions/gsd/tests/write-gate.test.ts +43 -132
  322. package/src/resources/extensions/gsd/types.ts +90 -81
  323. package/src/resources/extensions/gsd/undo.ts +42 -46
  324. package/src/resources/extensions/gsd/unit-runtime.ts +14 -18
  325. package/src/resources/extensions/gsd/verification-evidence.ts +1 -3
  326. package/src/resources/extensions/gsd/verification-gate.ts +6 -39
  327. package/src/resources/extensions/gsd/worktree-command.ts +36 -24
  328. package/src/resources/extensions/gsd/worktree-manager.ts +2 -3
  329. package/src/resources/extensions/gsd/worktree-resolver.ts +485 -0
  330. package/src/resources/extensions/gsd/worktree.ts +7 -44
  331. package/src/resources/extensions/mcp-client/index.ts +2 -1
  332. package/dist/resources/extensions/gsd/auto-constants.js +0 -5
  333. package/dist/resources/extensions/gsd/auto-idempotency.js +0 -106
  334. package/dist/resources/extensions/gsd/auto-stuck-detection.js +0 -165
  335. package/dist/resources/extensions/gsd/mechanical-completion.js +0 -351
  336. package/packages/pi-coding-agent/dist/modes/interactive/theme/dark.json +0 -85
  337. package/packages/pi-coding-agent/dist/modes/interactive/theme/light.json +0 -84
  338. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.json +0 -335
  339. package/packages/pi-coding-agent/src/modes/interactive/theme/dark.json +0 -85
  340. package/packages/pi-coding-agent/src/modes/interactive/theme/light.json +0 -84
  341. package/packages/pi-coding-agent/src/modes/interactive/theme/theme-schema.json +0 -335
  342. package/pkg/dist/modes/interactive/theme/dark.json +0 -85
  343. package/pkg/dist/modes/interactive/theme/light.json +0 -84
  344. package/pkg/dist/modes/interactive/theme/theme-schema.json +0 -335
  345. package/src/resources/extensions/gsd/auto-constants.ts +0 -6
  346. package/src/resources/extensions/gsd/auto-idempotency.ts +0 -151
  347. package/src/resources/extensions/gsd/auto-stuck-detection.ts +0 -221
  348. package/src/resources/extensions/gsd/mechanical-completion.ts +0 -430
  349. package/src/resources/extensions/gsd/tests/auto-dispatch-loop.test.ts +0 -691
  350. package/src/resources/extensions/gsd/tests/auto-reentrancy-guard.test.ts +0 -127
  351. package/src/resources/extensions/gsd/tests/auto-skip-loop.test.ts +0 -123
  352. package/src/resources/extensions/gsd/tests/dispatch-stall-guard.test.ts +0 -126
  353. package/src/resources/extensions/gsd/tests/loop-regression.test.ts +0 -874
  354. package/src/resources/extensions/gsd/tests/mechanical-completion.test.ts +0 -356
  355. package/src/resources/extensions/gsd/tests/progress-score.test.ts +0 -206
  356. package/src/resources/extensions/gsd/tests/session-lock.test.ts +0 -434
@@ -1,335 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "Pi Coding Agent Theme",
4
- "description": "Theme schema for Pi coding agent",
5
- "type": "object",
6
- "required": ["name", "colors"],
7
- "properties": {
8
- "$schema": {
9
- "type": "string",
10
- "description": "JSON schema reference"
11
- },
12
- "name": {
13
- "type": "string",
14
- "description": "Theme name"
15
- },
16
- "vars": {
17
- "type": "object",
18
- "description": "Reusable color variables",
19
- "additionalProperties": {
20
- "oneOf": [
21
- {
22
- "type": "string",
23
- "description": "Hex color (#RRGGBB), variable reference, or empty string for terminal default"
24
- },
25
- {
26
- "type": "integer",
27
- "minimum": 0,
28
- "maximum": 255,
29
- "description": "256-color palette index (0-255)"
30
- }
31
- ]
32
- }
33
- },
34
- "colors": {
35
- "type": "object",
36
- "description": "Theme color definitions (all required)",
37
- "required": [
38
- "accent",
39
- "border",
40
- "borderAccent",
41
- "borderMuted",
42
- "success",
43
- "error",
44
- "warning",
45
- "muted",
46
- "dim",
47
- "text",
48
- "thinkingText",
49
- "selectedBg",
50
- "userMessageBg",
51
- "userMessageText",
52
- "customMessageBg",
53
- "customMessageText",
54
- "customMessageLabel",
55
- "toolPendingBg",
56
- "toolSuccessBg",
57
- "toolErrorBg",
58
- "toolTitle",
59
- "toolOutput",
60
- "mdHeading",
61
- "mdLink",
62
- "mdLinkUrl",
63
- "mdCode",
64
- "mdCodeBlock",
65
- "mdCodeBlockBorder",
66
- "mdQuote",
67
- "mdQuoteBorder",
68
- "mdHr",
69
- "mdListBullet",
70
- "toolDiffAdded",
71
- "toolDiffRemoved",
72
- "toolDiffContext",
73
- "syntaxComment",
74
- "syntaxKeyword",
75
- "syntaxFunction",
76
- "syntaxVariable",
77
- "syntaxString",
78
- "syntaxNumber",
79
- "syntaxType",
80
- "syntaxOperator",
81
- "syntaxPunctuation",
82
- "thinkingOff",
83
- "thinkingMinimal",
84
- "thinkingLow",
85
- "thinkingMedium",
86
- "thinkingHigh",
87
- "thinkingXhigh",
88
- "bashMode"
89
- ],
90
- "properties": {
91
- "accent": {
92
- "$ref": "#/$defs/colorValue",
93
- "description": "Primary accent color (logo, selected items, cursor)"
94
- },
95
- "border": {
96
- "$ref": "#/$defs/colorValue",
97
- "description": "Normal borders"
98
- },
99
- "borderAccent": {
100
- "$ref": "#/$defs/colorValue",
101
- "description": "Highlighted borders"
102
- },
103
- "borderMuted": {
104
- "$ref": "#/$defs/colorValue",
105
- "description": "Subtle borders"
106
- },
107
- "success": {
108
- "$ref": "#/$defs/colorValue",
109
- "description": "Success states"
110
- },
111
- "error": {
112
- "$ref": "#/$defs/colorValue",
113
- "description": "Error states"
114
- },
115
- "warning": {
116
- "$ref": "#/$defs/colorValue",
117
- "description": "Warning states"
118
- },
119
- "muted": {
120
- "$ref": "#/$defs/colorValue",
121
- "description": "Secondary/dimmed text"
122
- },
123
- "dim": {
124
- "$ref": "#/$defs/colorValue",
125
- "description": "Very dimmed text (more subtle than muted)"
126
- },
127
- "text": {
128
- "$ref": "#/$defs/colorValue",
129
- "description": "Default text color (usually empty string)"
130
- },
131
- "thinkingText": {
132
- "$ref": "#/$defs/colorValue",
133
- "description": "Thinking block text color"
134
- },
135
- "selectedBg": {
136
- "$ref": "#/$defs/colorValue",
137
- "description": "Selected item background"
138
- },
139
- "userMessageBg": {
140
- "$ref": "#/$defs/colorValue",
141
- "description": "User message background"
142
- },
143
- "userMessageText": {
144
- "$ref": "#/$defs/colorValue",
145
- "description": "User message text color"
146
- },
147
- "customMessageBg": {
148
- "$ref": "#/$defs/colorValue",
149
- "description": "Custom message background (hook-injected messages)"
150
- },
151
- "customMessageText": {
152
- "$ref": "#/$defs/colorValue",
153
- "description": "Custom message text color"
154
- },
155
- "customMessageLabel": {
156
- "$ref": "#/$defs/colorValue",
157
- "description": "Custom message type label color"
158
- },
159
- "toolPendingBg": {
160
- "$ref": "#/$defs/colorValue",
161
- "description": "Tool execution box (pending state)"
162
- },
163
- "toolSuccessBg": {
164
- "$ref": "#/$defs/colorValue",
165
- "description": "Tool execution box (success state)"
166
- },
167
- "toolErrorBg": {
168
- "$ref": "#/$defs/colorValue",
169
- "description": "Tool execution box (error state)"
170
- },
171
- "toolTitle": {
172
- "$ref": "#/$defs/colorValue",
173
- "description": "Tool execution box title color"
174
- },
175
- "toolOutput": {
176
- "$ref": "#/$defs/colorValue",
177
- "description": "Tool execution box output text color"
178
- },
179
- "mdHeading": {
180
- "$ref": "#/$defs/colorValue",
181
- "description": "Markdown heading text"
182
- },
183
- "mdLink": {
184
- "$ref": "#/$defs/colorValue",
185
- "description": "Markdown link text"
186
- },
187
- "mdLinkUrl": {
188
- "$ref": "#/$defs/colorValue",
189
- "description": "Markdown link URL"
190
- },
191
- "mdCode": {
192
- "$ref": "#/$defs/colorValue",
193
- "description": "Markdown inline code"
194
- },
195
- "mdCodeBlock": {
196
- "$ref": "#/$defs/colorValue",
197
- "description": "Markdown code block content"
198
- },
199
- "mdCodeBlockBorder": {
200
- "$ref": "#/$defs/colorValue",
201
- "description": "Markdown code block fences"
202
- },
203
- "mdQuote": {
204
- "$ref": "#/$defs/colorValue",
205
- "description": "Markdown blockquote text"
206
- },
207
- "mdQuoteBorder": {
208
- "$ref": "#/$defs/colorValue",
209
- "description": "Markdown blockquote border"
210
- },
211
- "mdHr": {
212
- "$ref": "#/$defs/colorValue",
213
- "description": "Markdown horizontal rule"
214
- },
215
- "mdListBullet": {
216
- "$ref": "#/$defs/colorValue",
217
- "description": "Markdown list bullets/numbers"
218
- },
219
- "toolDiffAdded": {
220
- "$ref": "#/$defs/colorValue",
221
- "description": "Added lines in tool diffs"
222
- },
223
- "toolDiffRemoved": {
224
- "$ref": "#/$defs/colorValue",
225
- "description": "Removed lines in tool diffs"
226
- },
227
- "toolDiffContext": {
228
- "$ref": "#/$defs/colorValue",
229
- "description": "Context lines in tool diffs"
230
- },
231
- "syntaxComment": {
232
- "$ref": "#/$defs/colorValue",
233
- "description": "Syntax highlighting: comments"
234
- },
235
- "syntaxKeyword": {
236
- "$ref": "#/$defs/colorValue",
237
- "description": "Syntax highlighting: keywords"
238
- },
239
- "syntaxFunction": {
240
- "$ref": "#/$defs/colorValue",
241
- "description": "Syntax highlighting: function names"
242
- },
243
- "syntaxVariable": {
244
- "$ref": "#/$defs/colorValue",
245
- "description": "Syntax highlighting: variable names"
246
- },
247
- "syntaxString": {
248
- "$ref": "#/$defs/colorValue",
249
- "description": "Syntax highlighting: string literals"
250
- },
251
- "syntaxNumber": {
252
- "$ref": "#/$defs/colorValue",
253
- "description": "Syntax highlighting: number literals"
254
- },
255
- "syntaxType": {
256
- "$ref": "#/$defs/colorValue",
257
- "description": "Syntax highlighting: type names"
258
- },
259
- "syntaxOperator": {
260
- "$ref": "#/$defs/colorValue",
261
- "description": "Syntax highlighting: operators"
262
- },
263
- "syntaxPunctuation": {
264
- "$ref": "#/$defs/colorValue",
265
- "description": "Syntax highlighting: punctuation"
266
- },
267
- "thinkingOff": {
268
- "$ref": "#/$defs/colorValue",
269
- "description": "Thinking level border: off"
270
- },
271
- "thinkingMinimal": {
272
- "$ref": "#/$defs/colorValue",
273
- "description": "Thinking level border: minimal"
274
- },
275
- "thinkingLow": {
276
- "$ref": "#/$defs/colorValue",
277
- "description": "Thinking level border: low"
278
- },
279
- "thinkingMedium": {
280
- "$ref": "#/$defs/colorValue",
281
- "description": "Thinking level border: medium"
282
- },
283
- "thinkingHigh": {
284
- "$ref": "#/$defs/colorValue",
285
- "description": "Thinking level border: high"
286
- },
287
- "thinkingXhigh": {
288
- "$ref": "#/$defs/colorValue",
289
- "description": "Thinking level border: xhigh (OpenAI codex-max only)"
290
- },
291
- "bashMode": {
292
- "$ref": "#/$defs/colorValue",
293
- "description": "Editor border color in bash mode"
294
- }
295
- },
296
- "additionalProperties": false
297
- },
298
- "export": {
299
- "type": "object",
300
- "description": "Optional colors for HTML export (defaults derived from userMessageBg if not specified)",
301
- "properties": {
302
- "pageBg": {
303
- "$ref": "#/$defs/colorValue",
304
- "description": "Page background color"
305
- },
306
- "cardBg": {
307
- "$ref": "#/$defs/colorValue",
308
- "description": "Card/container background color"
309
- },
310
- "infoBg": {
311
- "$ref": "#/$defs/colorValue",
312
- "description": "Info sections background (system prompt, notices)"
313
- }
314
- },
315
- "additionalProperties": false
316
- }
317
- },
318
- "additionalProperties": false,
319
- "$defs": {
320
- "colorValue": {
321
- "oneOf": [
322
- {
323
- "type": "string",
324
- "description": "Hex color (#RRGGBB), variable reference, or empty string for terminal default"
325
- },
326
- {
327
- "type": "integer",
328
- "minimum": 0,
329
- "maximum": 255,
330
- "description": "256-color palette index (0-255)"
331
- }
332
- ]
333
- }
334
- }
335
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * Shared constants for auto-mode modules (auto.ts, auto-post-unit.ts, etc.).
3
- */
4
-
5
- /** Throttle STATE.md rebuilds — at most once per 30 seconds. */
6
- export const STATE_REBUILD_MIN_INTERVAL_MS = 30_000;
@@ -1,151 +0,0 @@
1
- /**
2
- * Idempotency checks for auto-mode unit dispatch.
3
- *
4
- * Handles completed-key membership, artifact cross-validation,
5
- * consecutive skip counting, phantom skip loop detection, key eviction,
6
- * and fallback persistence.
7
- *
8
- * Extracted from dispatchNextUnit() in auto.ts. Pure decision logic
9
- * with set mutations — does NOT call dispatchNextUnit or stopAuto.
10
- */
11
-
12
- import { invalidateAllCaches } from "./cache.js";
13
- import {
14
- verifyExpectedArtifact,
15
- persistCompletedKey,
16
- removePersistedKey,
17
- } from "./auto-recovery.js";
18
- import { resolveMilestoneFile } from "./paths.js";
19
- import { MAX_CONSECUTIVE_SKIPS, MAX_LIFETIME_DISPATCHES } from "./auto/session.js";
20
- import type { AutoSession } from "./auto/session.js";
21
- import { parseUnitId } from "./unit-id.js";
22
-
23
- export interface IdempotencyContext {
24
- s: AutoSession;
25
- unitType: string;
26
- unitId: string;
27
- basePath: string;
28
- /** Notification callback */
29
- notify: (message: string, level: "info" | "warning" | "error") => void;
30
- }
31
-
32
- export type IdempotencyResult =
33
- | { action: "skip"; reason: string }
34
- | { action: "rerun"; reason: string }
35
- | { action: "proceed" }
36
- | { action: "stop"; reason: string };
37
-
38
- /**
39
- * Check whether a unit should be skipped (already completed), rerun
40
- * (stale completion record), or dispatched normally.
41
- *
42
- * Mutates s.completedKeySet, s.unitConsecutiveSkips, s.unitLifetimeDispatches,
43
- * and s.recentlyEvictedKeys as needed.
44
- */
45
- export function checkIdempotency(ictx: IdempotencyContext): IdempotencyResult {
46
- const { s, unitType, unitId, basePath, notify } = ictx;
47
- const idempotencyKey = `${unitType}/${unitId}`;
48
-
49
- // ── Primary path: key exists in completed set ──
50
- if (s.completedKeySet.has(idempotencyKey)) {
51
- const artifactExists = verifyExpectedArtifact(unitType, unitId, basePath);
52
- if (artifactExists) {
53
- // Guard against infinite skip loops
54
- const skipCount = (s.unitConsecutiveSkips.get(idempotencyKey) ?? 0) + 1;
55
- s.unitConsecutiveSkips.set(idempotencyKey, skipCount);
56
- if (skipCount > MAX_CONSECUTIVE_SKIPS) {
57
- // Cross-check: verify the unit's milestone is still active (#790)
58
- const skippedMid = parseUnitId(unitId).milestone;
59
- const skippedMilestoneComplete = skippedMid
60
- ? !!resolveMilestoneFile(basePath, skippedMid, "SUMMARY")
61
- : false;
62
- if (skippedMilestoneComplete) {
63
- s.unitConsecutiveSkips.delete(idempotencyKey);
64
- invalidateAllCaches();
65
- notify(
66
- `Phantom skip loop cleared: ${unitType} ${unitId} belongs to completed milestone ${skippedMid}. Re-dispatching from fresh state.`,
67
- "info",
68
- );
69
- return { action: "skip", reason: "phantom-loop-cleared" };
70
- }
71
- s.unitConsecutiveSkips.delete(idempotencyKey);
72
- s.completedKeySet.delete(idempotencyKey);
73
- s.recentlyEvictedKeys.add(idempotencyKey);
74
- removePersistedKey(basePath, idempotencyKey);
75
- invalidateAllCaches();
76
- notify(
77
- `Skip loop detected: ${unitType} ${unitId} skipped ${skipCount} times without advancing. Evicting completion record and forcing reconciliation.`,
78
- "warning",
79
- );
80
- return { action: "skip", reason: "evicted" };
81
- }
82
- // Count toward lifetime cap
83
- const lifeSkip = (s.unitLifetimeDispatches.get(idempotencyKey) ?? 0) + 1;
84
- s.unitLifetimeDispatches.set(idempotencyKey, lifeSkip);
85
- if (lifeSkip > MAX_LIFETIME_DISPATCHES) {
86
- return { action: "stop", reason: `Hard loop: ${unitType} ${unitId} (skip cycle)` };
87
- }
88
- notify(
89
- `Skipping ${unitType} ${unitId} — already completed in a prior session. Advancing.`,
90
- "info",
91
- );
92
- return { action: "skip", reason: "completed" };
93
- } else {
94
- // Stale completion record — artifact missing. Remove and re-run.
95
- s.completedKeySet.delete(idempotencyKey);
96
- removePersistedKey(basePath, idempotencyKey);
97
- notify(
98
- `Re-running ${unitType} ${unitId} — marked complete but expected artifact missing.`,
99
- "warning",
100
- );
101
- return { action: "rerun", reason: "stale-key" };
102
- }
103
- }
104
-
105
- // ── Fallback: key missing but artifact exists ──
106
- if (verifyExpectedArtifact(unitType, unitId, basePath) && !s.recentlyEvictedKeys.has(idempotencyKey)) {
107
- persistCompletedKey(basePath, idempotencyKey);
108
- s.completedKeySet.add(idempotencyKey);
109
- invalidateAllCaches();
110
- // Same consecutive-skip guard as the primary path
111
- const skipCount2 = (s.unitConsecutiveSkips.get(idempotencyKey) ?? 0) + 1;
112
- s.unitConsecutiveSkips.set(idempotencyKey, skipCount2);
113
- if (skipCount2 > MAX_CONSECUTIVE_SKIPS) {
114
- const skippedMid2 = parseUnitId(unitId).milestone;
115
- const skippedMilestoneComplete2 = skippedMid2
116
- ? !!resolveMilestoneFile(basePath, skippedMid2, "SUMMARY")
117
- : false;
118
- if (skippedMilestoneComplete2) {
119
- s.unitConsecutiveSkips.delete(idempotencyKey);
120
- invalidateAllCaches();
121
- notify(
122
- `Phantom skip loop cleared: ${unitType} ${unitId} belongs to completed milestone ${skippedMid2}. Re-dispatching from fresh state.`,
123
- "info",
124
- );
125
- return { action: "skip", reason: "phantom-loop-cleared" };
126
- }
127
- s.unitConsecutiveSkips.delete(idempotencyKey);
128
- s.completedKeySet.delete(idempotencyKey);
129
- removePersistedKey(basePath, idempotencyKey);
130
- invalidateAllCaches();
131
- notify(
132
- `Skip loop detected: ${unitType} ${unitId} skipped ${skipCount2} times without advancing. Evicting completion record and forcing reconciliation.`,
133
- "warning",
134
- );
135
- return { action: "skip", reason: "evicted" };
136
- }
137
- // Count toward lifetime cap
138
- const lifeSkip2 = (s.unitLifetimeDispatches.get(idempotencyKey) ?? 0) + 1;
139
- s.unitLifetimeDispatches.set(idempotencyKey, lifeSkip2);
140
- if (lifeSkip2 > MAX_LIFETIME_DISPATCHES) {
141
- return { action: "stop", reason: `Hard loop: ${unitType} ${unitId} (skip cycle)` };
142
- }
143
- notify(
144
- `Skipping ${unitType} ${unitId} — artifact exists but completion key was missing. Repaired and advancing.`,
145
- "info",
146
- );
147
- return { action: "skip", reason: "fallback-persisted" };
148
- }
149
-
150
- return { action: "proceed" };
151
- }