gsd-pi 2.74.0 → 2.75.0-dev.2203010a0

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 (1106) hide show
  1. package/README.md +186 -149
  2. package/dist/claude-cli-check.d.ts +10 -0
  3. package/dist/claude-cli-check.js +13 -3
  4. package/dist/cli.js +85 -0
  5. package/dist/headless-events.d.ts +1 -1
  6. package/dist/headless-events.js +5 -2
  7. package/dist/headless-query.js +4 -1
  8. package/dist/headless.js +5 -6
  9. package/dist/help-text.js +23 -0
  10. package/dist/loader.js +0 -0
  11. package/dist/onboarding.d.ts +15 -0
  12. package/dist/onboarding.js +94 -36
  13. package/dist/resources/extensions/ask-user-questions.js +17 -5
  14. package/dist/resources/extensions/claude-code-cli/models.js +9 -0
  15. package/dist/resources/extensions/claude-code-cli/readiness.js +12 -2
  16. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +76 -4
  17. package/dist/resources/extensions/gsd/activity-log.js +16 -0
  18. package/dist/resources/extensions/gsd/auto/detect-stuck.js +20 -4
  19. package/dist/resources/extensions/gsd/auto/loop.js +214 -14
  20. package/dist/resources/extensions/gsd/auto/phases.js +273 -51
  21. package/dist/resources/extensions/gsd/auto/resolve.js +1 -1
  22. package/dist/resources/extensions/gsd/auto/run-unit.js +10 -1
  23. package/dist/resources/extensions/gsd/auto/session.js +15 -0
  24. package/dist/resources/extensions/gsd/auto-artifact-paths.js +20 -0
  25. package/dist/resources/extensions/gsd/auto-dashboard.js +15 -7
  26. package/dist/resources/extensions/gsd/auto-dispatch.js +123 -7
  27. package/dist/resources/extensions/gsd/auto-loop.js +1 -1
  28. package/dist/resources/extensions/gsd/auto-model-selection.js +64 -10
  29. package/dist/resources/extensions/gsd/auto-post-unit.js +230 -25
  30. package/dist/resources/extensions/gsd/auto-prompts.js +181 -35
  31. package/dist/resources/extensions/gsd/auto-recovery.js +81 -10
  32. package/dist/resources/extensions/gsd/auto-start.js +5 -3
  33. package/dist/resources/extensions/gsd/auto-unit-closeout.js +18 -0
  34. package/dist/resources/extensions/gsd/auto-verification.js +103 -5
  35. package/dist/resources/extensions/gsd/auto-worktree.js +57 -1
  36. package/dist/resources/extensions/gsd/auto.js +91 -27
  37. package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +8 -21
  38. package/dist/resources/extensions/gsd/bootstrap/db-tools.js +22 -4
  39. package/dist/resources/extensions/gsd/bootstrap/provider-error-resume.js +5 -3
  40. package/dist/resources/extensions/gsd/bootstrap/query-tools.js +29 -0
  41. package/dist/resources/extensions/gsd/bootstrap/register-extension.js +30 -8
  42. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +83 -9
  43. package/dist/resources/extensions/gsd/cache.js +16 -5
  44. package/dist/resources/extensions/gsd/commands/catalog.js +111 -9
  45. package/dist/resources/extensions/gsd/commands/handlers/core.js +69 -25
  46. package/dist/resources/extensions/gsd/commands/handlers/escalate.js +171 -0
  47. package/dist/resources/extensions/gsd/commands/handlers/onboarding.js +175 -0
  48. package/dist/resources/extensions/gsd/commands/handlers/ops.js +41 -0
  49. package/dist/resources/extensions/gsd/commands/handlers/workflow.js +295 -37
  50. package/dist/resources/extensions/gsd/commands-add-tests.js +111 -0
  51. package/dist/resources/extensions/gsd/commands-backlog.js +140 -0
  52. package/dist/resources/extensions/gsd/commands-cmux.js +5 -2
  53. package/dist/resources/extensions/gsd/commands-config.js +5 -0
  54. package/dist/resources/extensions/gsd/commands-debug.js +388 -0
  55. package/dist/resources/extensions/gsd/commands-do.js +80 -0
  56. package/dist/resources/extensions/gsd/commands-extract-learnings.js +383 -0
  57. package/dist/resources/extensions/gsd/commands-handlers.js +21 -2
  58. package/dist/resources/extensions/gsd/commands-maintenance.js +6 -6
  59. package/dist/resources/extensions/gsd/commands-pr-branch.js +180 -0
  60. package/dist/resources/extensions/gsd/commands-prefs-wizard.js +90 -15
  61. package/dist/resources/extensions/gsd/commands-scan.js +94 -0
  62. package/dist/resources/extensions/gsd/commands-session-report.js +82 -0
  63. package/dist/resources/extensions/gsd/commands-ship.js +187 -0
  64. package/dist/resources/extensions/gsd/commands-workflow-templates.js +101 -2
  65. package/dist/resources/extensions/gsd/custom-workflow-engine.js +74 -54
  66. package/dist/resources/extensions/gsd/db-writer.js +4 -5
  67. package/dist/resources/extensions/gsd/debug-session-store.js +238 -0
  68. package/dist/resources/extensions/gsd/definition-loader.js +7 -0
  69. package/dist/resources/extensions/gsd/docs/preferences-reference.md +17 -2
  70. package/dist/resources/extensions/gsd/doctor-environment.js +2 -1
  71. package/dist/resources/extensions/gsd/doctor-git-checks.js +5 -1
  72. package/dist/resources/extensions/gsd/doctor-proactive.js +4 -1
  73. package/dist/resources/extensions/gsd/doctor-providers.js +48 -20
  74. package/dist/resources/extensions/gsd/doctor-runtime-checks.js +22 -4
  75. package/dist/resources/extensions/gsd/doctor.js +7 -1
  76. package/dist/resources/extensions/gsd/ecosystem/gsd-extension-api.js +144 -0
  77. package/dist/resources/extensions/gsd/ecosystem/loader.js +145 -0
  78. package/dist/resources/extensions/gsd/error-classifier.js +6 -3
  79. package/dist/resources/extensions/gsd/escalation.js +321 -0
  80. package/dist/resources/extensions/gsd/forensics.js +26 -29
  81. package/dist/resources/extensions/gsd/git-service.js +49 -2
  82. package/dist/resources/extensions/gsd/graph-context.js +157 -0
  83. package/dist/resources/extensions/gsd/graph.js +26 -2
  84. package/dist/resources/extensions/gsd/gsd-db.js +822 -18
  85. package/dist/resources/extensions/gsd/guided-flow.js +31 -6
  86. package/dist/resources/extensions/gsd/health-widget-core.js +42 -14
  87. package/dist/resources/extensions/gsd/health-widget.js +7 -4
  88. package/dist/resources/extensions/gsd/index.js +15 -2
  89. package/dist/resources/extensions/gsd/init-wizard.js +87 -45
  90. package/dist/resources/extensions/gsd/journal.js +27 -0
  91. package/dist/resources/extensions/gsd/markdown-renderer.js +5 -5
  92. package/dist/resources/extensions/gsd/md-importer.js +3 -4
  93. package/dist/resources/extensions/gsd/memory-store.js +19 -51
  94. package/dist/resources/extensions/gsd/metrics.js +20 -0
  95. package/dist/resources/extensions/gsd/milestone-validation-gates.js +13 -12
  96. package/dist/resources/extensions/gsd/model-cost-table.js +3 -1
  97. package/dist/resources/extensions/gsd/model-router.js +7 -1
  98. package/dist/resources/extensions/gsd/native-git-bridge.js +144 -9
  99. package/dist/resources/extensions/gsd/notification-widget.js +24 -39
  100. package/dist/resources/extensions/gsd/notifications.js +4 -0
  101. package/dist/resources/extensions/gsd/onboarding-state.js +133 -0
  102. package/dist/resources/extensions/gsd/parallel-orchestrator.js +33 -1
  103. package/dist/resources/extensions/gsd/post-execution-checks.js +27 -11
  104. package/dist/resources/extensions/gsd/pre-execution-checks.js +97 -4
  105. package/dist/resources/extensions/gsd/preferences-models.js +21 -3
  106. package/dist/resources/extensions/gsd/preferences-types.js +4 -1
  107. package/dist/resources/extensions/gsd/preferences-validation.js +160 -10
  108. package/dist/resources/extensions/gsd/preferences.js +41 -10
  109. package/dist/resources/extensions/gsd/prompts/add-tests.md +35 -0
  110. package/dist/resources/extensions/gsd/prompts/complete-milestone.md +4 -1
  111. package/dist/resources/extensions/gsd/prompts/debug-diagnose.md +25 -0
  112. package/dist/resources/extensions/gsd/prompts/debug-session-manager.md +80 -0
  113. package/dist/resources/extensions/gsd/prompts/execute-task.md +12 -0
  114. package/dist/resources/extensions/gsd/prompts/plan-milestone.md +12 -0
  115. package/dist/resources/extensions/gsd/prompts/refine-slice.md +69 -0
  116. package/dist/resources/extensions/gsd/prompts/scan.md +79 -0
  117. package/dist/resources/extensions/gsd/prompts/workflow-oneshot.md +26 -0
  118. package/dist/resources/extensions/gsd/python-resolver.js +70 -0
  119. package/dist/resources/extensions/gsd/run-manager.js +37 -17
  120. package/dist/resources/extensions/gsd/safety/evidence-collector.js +15 -30
  121. package/dist/resources/extensions/gsd/setup-catalog.js +75 -0
  122. package/dist/resources/extensions/gsd/slice-parallel-orchestrator.js +12 -2
  123. package/dist/resources/extensions/gsd/state.js +52 -4
  124. package/dist/resources/extensions/gsd/templates/PREFERENCES.md +19 -0
  125. package/dist/resources/extensions/gsd/tools/complete-slice.js +20 -0
  126. package/dist/resources/extensions/gsd/tools/complete-task.js +80 -0
  127. package/dist/resources/extensions/gsd/tools/plan-milestone.js +37 -12
  128. package/dist/resources/extensions/gsd/tools/plan-slice.js +5 -2
  129. package/dist/resources/extensions/gsd/tools/validate-milestone.js +39 -4
  130. package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +3 -14
  131. package/dist/resources/extensions/gsd/triage-resolution.js +2 -5
  132. package/dist/resources/extensions/gsd/unit-ownership.js +1 -1
  133. package/dist/resources/extensions/gsd/uok/audit-toggle.js +7 -0
  134. package/dist/resources/extensions/gsd/uok/audit.js +40 -0
  135. package/dist/resources/extensions/gsd/uok/contracts.js +1 -0
  136. package/dist/resources/extensions/gsd/uok/execution-graph.js +179 -0
  137. package/dist/resources/extensions/gsd/uok/flags.js +29 -0
  138. package/dist/resources/extensions/gsd/uok/gate-runner.js +109 -0
  139. package/dist/resources/extensions/gsd/uok/gitops.js +53 -0
  140. package/dist/resources/extensions/gsd/uok/kernel.js +85 -0
  141. package/dist/resources/extensions/gsd/uok/loop-adapter.js +133 -0
  142. package/dist/resources/extensions/gsd/uok/model-policy.js +66 -0
  143. package/dist/resources/extensions/gsd/uok/plan-v2.js +132 -0
  144. package/dist/resources/extensions/gsd/verification-gate.js +2 -1
  145. package/dist/resources/extensions/gsd/workflow-dispatch.js +64 -0
  146. package/dist/resources/extensions/gsd/workflow-install.js +327 -0
  147. package/dist/resources/extensions/gsd/workflow-logger.js +22 -0
  148. package/dist/resources/extensions/gsd/workflow-manifest.js +16 -69
  149. package/dist/resources/extensions/gsd/workflow-mcp.js +1 -6
  150. package/dist/resources/extensions/gsd/workflow-migration.js +21 -22
  151. package/dist/resources/extensions/gsd/workflow-plugins.js +346 -0
  152. package/dist/resources/extensions/gsd/workflow-projections.js +21 -16
  153. package/dist/resources/extensions/gsd/workflow-reconcile.js +14 -11
  154. package/dist/resources/extensions/gsd/workflow-templates/accessibility-audit.md +88 -0
  155. package/dist/resources/extensions/gsd/workflow-templates/api-breaking-change.md +117 -0
  156. package/dist/resources/extensions/gsd/workflow-templates/bugfix.md +1 -0
  157. package/dist/resources/extensions/gsd/workflow-templates/changelog-gen.md +82 -0
  158. package/dist/resources/extensions/gsd/workflow-templates/ci-bootstrap.md +144 -0
  159. package/dist/resources/extensions/gsd/workflow-templates/dead-code.md +81 -0
  160. package/dist/resources/extensions/gsd/workflow-templates/dep-upgrade.md +1 -0
  161. package/dist/resources/extensions/gsd/workflow-templates/docs-sync.yaml +76 -0
  162. package/dist/resources/extensions/gsd/workflow-templates/env-audit.yaml +88 -0
  163. package/dist/resources/extensions/gsd/workflow-templates/full-project.md +1 -0
  164. package/dist/resources/extensions/gsd/workflow-templates/hotfix.md +1 -0
  165. package/dist/resources/extensions/gsd/workflow-templates/issue-triage.md +84 -0
  166. package/dist/resources/extensions/gsd/workflow-templates/observability-setup.md +133 -0
  167. package/dist/resources/extensions/gsd/workflow-templates/onboarding-check.md +74 -0
  168. package/dist/resources/extensions/gsd/workflow-templates/performance-audit.md +125 -0
  169. package/dist/resources/extensions/gsd/workflow-templates/pr-review.md +67 -0
  170. package/dist/resources/extensions/gsd/workflow-templates/pr-triage.md +83 -0
  171. package/dist/resources/extensions/gsd/workflow-templates/refactor.md +1 -0
  172. package/dist/resources/extensions/gsd/workflow-templates/registry.json +184 -0
  173. package/dist/resources/extensions/gsd/workflow-templates/release.md +118 -0
  174. package/dist/resources/extensions/gsd/workflow-templates/rename-symbol.yaml +99 -0
  175. package/dist/resources/extensions/gsd/workflow-templates/security-audit.md +1 -0
  176. package/dist/resources/extensions/gsd/workflow-templates/small-feature.md +1 -0
  177. package/dist/resources/extensions/gsd/workflow-templates/spike.md +1 -0
  178. package/dist/resources/extensions/gsd/workflow-templates/test-backfill.yaml +73 -0
  179. package/dist/resources/extensions/gsd/worktree-resolver.js +42 -1
  180. package/dist/resources/extensions/remote-questions/commands.js +380 -0
  181. package/dist/resources/extensions/remote-questions/manager.js +39 -5
  182. package/dist/resources/extensions/remote-questions/telegram-adapter.js +79 -4
  183. package/dist/resources/extensions/shared/interview-ui.js +189 -1
  184. package/dist/resources/extensions/shared/layout-utils.js +17 -0
  185. package/dist/resources/extensions/shared/rtk-shared.js +47 -0
  186. package/dist/resources/extensions/shared/rtk.js +3 -46
  187. package/dist/resources/extensions/ttsr/ttsr-manager.js +3 -1
  188. package/dist/resources/skills/create-workflow/SKILL.md +33 -6
  189. package/dist/rtk-shared.d.ts +10 -0
  190. package/dist/rtk-shared.js +47 -0
  191. package/dist/rtk.d.ts +2 -6
  192. package/dist/rtk.js +3 -48
  193. package/dist/shared/workspace-types.d.ts +52 -0
  194. package/dist/shared/workspace-types.js +1 -0
  195. package/dist/tsconfig.extensions.tsbuildinfo +1 -0
  196. package/dist/update-check.d.ts +10 -0
  197. package/dist/update-check.js +24 -3
  198. package/dist/web/standalone/.next/BUILD_ID +1 -1
  199. package/dist/web/standalone/.next/app-path-routes-manifest.json +16 -16
  200. package/dist/web/standalone/.next/build-manifest.json +4 -4
  201. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  202. package/dist/web/standalone/.next/react-loadable-manifest.json +2 -2
  203. package/dist/web/standalone/.next/required-server-files.json +4 -4
  204. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  205. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  206. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  207. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  208. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  209. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  210. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  211. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  212. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  213. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  214. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  215. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  216. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  217. package/dist/web/standalone/.next/server/app/_not-found.rsc +4 -4
  218. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  219. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  220. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  221. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  222. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  223. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  224. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  225. package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
  226. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  227. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  228. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
  229. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  230. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  231. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
  232. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  233. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  234. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
  235. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  236. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  237. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  238. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  239. package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
  240. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  241. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  242. package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
  243. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  244. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  245. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  246. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  247. package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
  248. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  249. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  250. package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
  251. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  252. package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
  253. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  254. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  255. package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  256. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  257. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  258. package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
  259. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  260. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  261. package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  262. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  263. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  264. package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  265. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  266. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  267. package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
  268. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  269. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  270. package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
  271. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  272. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  273. package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
  274. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  275. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  276. package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
  277. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  278. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  279. package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  280. package/dist/web/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  281. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  282. package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  283. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  284. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  285. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  286. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  287. package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  288. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  289. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  290. package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
  291. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  292. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  293. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  294. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  295. package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
  296. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  297. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  298. package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
  299. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  300. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  301. package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
  302. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  303. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  304. package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
  305. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  306. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  307. package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
  308. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  309. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  310. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  311. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  312. package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
  313. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  314. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  315. package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
  316. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  317. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  318. package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
  319. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  320. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  321. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  322. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  323. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  324. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  325. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
  326. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  327. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +4 -4
  328. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
  329. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  330. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  331. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  332. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  333. package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
  334. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  335. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  336. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  337. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  338. package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
  339. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  340. package/dist/web/standalone/.next/server/app/index.html +1 -1
  341. package/dist/web/standalone/.next/server/app/index.rsc +5 -5
  342. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  343. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +5 -5
  344. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  345. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +4 -4
  346. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  347. package/dist/web/standalone/.next/server/app/page.js +2 -2
  348. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  349. package/dist/web/standalone/.next/server/app-paths-manifest.json +16 -16
  350. package/dist/web/standalone/.next/server/chunks/63.js +3 -3
  351. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  352. package/dist/web/standalone/.next/server/chunks/7461.js +1 -0
  353. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  354. package/dist/web/standalone/.next/server/middleware-manifest.json +5 -5
  355. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  356. package/dist/web/standalone/.next/server/middleware.js +2 -2
  357. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  358. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  359. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  360. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  361. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  362. package/dist/web/standalone/.next/static/chunks/2826.e59e8578e2e28639.js +9 -0
  363. package/dist/web/standalone/.next/static/chunks/{2008.71ee9230ad78df21.js → 3621.fc7480022c972438.js} +2 -2
  364. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
  365. package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
  366. package/dist/web/standalone/.next/static/chunks/app/page-5b113fd32bc2a1c3.js +1 -0
  367. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
  368. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
  369. package/dist/web/standalone/.next/static/chunks/{webpack-b868033a5834586d.js → webpack-5fc74f13a25fa1bb.js} +1 -1
  370. package/dist/web/standalone/.next/static/css/632cd626b1731d88.css +1 -0
  371. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  372. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  373. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  374. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  375. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  376. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  377. package/dist/web/standalone/server.js +1 -1
  378. package/dist/welcome-screen.js +48 -24
  379. package/dist/wizard.js +2 -2
  380. package/dist/worktree-cli.d.ts +6 -5
  381. package/dist/worktree-cli.js +23 -7
  382. package/package.json +5 -4
  383. package/packages/daemon/package.json +2 -2
  384. package/packages/mcp-server/dist/index.d.ts +3 -0
  385. package/packages/mcp-server/dist/index.d.ts.map +1 -1
  386. package/packages/mcp-server/dist/index.js +3 -0
  387. package/packages/mcp-server/dist/index.js.map +1 -1
  388. package/packages/mcp-server/dist/readers/graph.d.ts +87 -0
  389. package/packages/mcp-server/dist/readers/graph.d.ts.map +1 -0
  390. package/packages/mcp-server/dist/readers/graph.js +655 -0
  391. package/packages/mcp-server/dist/readers/graph.js.map +1 -0
  392. package/packages/mcp-server/dist/readers/index.d.ts +2 -0
  393. package/packages/mcp-server/dist/readers/index.d.ts.map +1 -1
  394. package/packages/mcp-server/dist/readers/index.js +1 -0
  395. package/packages/mcp-server/dist/readers/index.js.map +1 -1
  396. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  397. package/packages/mcp-server/dist/server.js +65 -0
  398. package/packages/mcp-server/dist/server.js.map +1 -1
  399. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  400. package/packages/mcp-server/dist/workflow-tools.js +88 -6
  401. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  402. package/packages/mcp-server/package.json +2 -2
  403. package/packages/mcp-server/src/index.ts +15 -0
  404. package/packages/mcp-server/src/readers/graph.test.ts +604 -0
  405. package/packages/mcp-server/src/readers/graph.ts +855 -0
  406. package/packages/mcp-server/src/readers/index.ts +12 -0
  407. package/packages/mcp-server/src/server.ts +83 -0
  408. package/packages/mcp-server/src/workflow-tools.ts +95 -10
  409. package/packages/mcp-server/tsconfig.json +1 -0
  410. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -0
  411. package/packages/native/package.json +2 -2
  412. package/packages/native/tsconfig.tsbuildinfo +1 -0
  413. package/packages/pi-agent-core/package.json +1 -1
  414. package/packages/pi-agent-core/tsconfig.json +1 -0
  415. package/packages/pi-agent-core/tsconfig.tsbuildinfo +1 -0
  416. package/packages/pi-ai/dist/index.d.ts +1 -9
  417. package/packages/pi-ai/dist/index.d.ts.map +1 -1
  418. package/packages/pi-ai/dist/index.js +1 -9
  419. package/packages/pi-ai/dist/index.js.map +1 -1
  420. package/packages/pi-ai/dist/models/capability-patches.d.ts +19 -0
  421. package/packages/pi-ai/dist/models/capability-patches.d.ts.map +1 -0
  422. package/packages/pi-ai/dist/models/capability-patches.js +37 -0
  423. package/packages/pi-ai/dist/models/capability-patches.js.map +1 -0
  424. package/packages/pi-ai/dist/{models.custom.d.ts → models/custom.d.ts} +1 -1
  425. package/packages/pi-ai/dist/models/custom.d.ts.map +1 -0
  426. package/packages/pi-ai/dist/{models.custom.js → models/custom.js} +4 -4
  427. package/packages/pi-ai/dist/models/custom.js.map +1 -0
  428. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts +1550 -0
  429. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts.map +1 -0
  430. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js +1552 -0
  431. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js.map +1 -0
  432. package/packages/pi-ai/dist/models/generated/anthropic.d.ts +394 -0
  433. package/packages/pi-ai/dist/models/generated/anthropic.d.ts.map +1 -0
  434. package/packages/pi-ai/dist/models/generated/anthropic.js +396 -0
  435. package/packages/pi-ai/dist/models/generated/anthropic.js.map +1 -0
  436. package/packages/pi-ai/dist/models/generated/azure-openai-responses.d.ts +700 -0
  437. package/packages/pi-ai/dist/models/generated/azure-openai-responses.d.ts.map +1 -0
  438. package/packages/pi-ai/dist/models/generated/azure-openai-responses.js +702 -0
  439. package/packages/pi-ai/dist/models/generated/azure-openai-responses.js.map +1 -0
  440. package/packages/pi-ai/dist/models/generated/cerebras.d.ts +71 -0
  441. package/packages/pi-ai/dist/models/generated/cerebras.d.ts.map +1 -0
  442. package/packages/pi-ai/dist/models/generated/cerebras.js +73 -0
  443. package/packages/pi-ai/dist/models/generated/cerebras.js.map +1 -0
  444. package/packages/pi-ai/dist/models/generated/github-copilot.d.ts +590 -0
  445. package/packages/pi-ai/dist/models/generated/github-copilot.d.ts.map +1 -0
  446. package/packages/pi-ai/dist/models/generated/github-copilot.js +444 -0
  447. package/packages/pi-ai/dist/models/generated/github-copilot.js.map +1 -0
  448. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts +173 -0
  449. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts.map +1 -0
  450. package/packages/pi-ai/dist/models/generated/google-antigravity.js +175 -0
  451. package/packages/pi-ai/dist/models/generated/google-antigravity.js.map +1 -0
  452. package/packages/pi-ai/dist/models/generated/google-gemini-cli.d.ts +105 -0
  453. package/packages/pi-ai/dist/models/generated/google-gemini-cli.d.ts.map +1 -0
  454. package/packages/pi-ai/dist/models/generated/google-gemini-cli.js +107 -0
  455. package/packages/pi-ai/dist/models/generated/google-gemini-cli.js.map +1 -0
  456. package/packages/pi-ai/dist/models/generated/google-vertex.d.ts +207 -0
  457. package/packages/pi-ai/dist/models/generated/google-vertex.d.ts.map +1 -0
  458. package/packages/pi-ai/dist/models/generated/google-vertex.js +209 -0
  459. package/packages/pi-ai/dist/models/generated/google-vertex.js.map +1 -0
  460. package/packages/pi-ai/dist/models/generated/google.d.ts +462 -0
  461. package/packages/pi-ai/dist/models/generated/google.d.ts.map +1 -0
  462. package/packages/pi-ai/dist/models/generated/google.js +464 -0
  463. package/packages/pi-ai/dist/models/generated/google.js.map +1 -0
  464. package/packages/pi-ai/dist/models/generated/groq.d.ts +156 -0
  465. package/packages/pi-ai/dist/models/generated/groq.d.ts.map +1 -0
  466. package/packages/pi-ai/dist/models/generated/groq.js +158 -0
  467. package/packages/pi-ai/dist/models/generated/groq.js.map +1 -0
  468. package/packages/pi-ai/dist/models/generated/huggingface.d.ts +383 -0
  469. package/packages/pi-ai/dist/models/generated/huggingface.d.ts.map +1 -0
  470. package/packages/pi-ai/dist/models/generated/huggingface.js +347 -0
  471. package/packages/pi-ai/dist/models/generated/huggingface.js.map +1 -0
  472. package/packages/pi-ai/dist/{models.generated.d.ts → models/generated/index.d.ts} +137 -154
  473. package/packages/pi-ai/dist/{models.generated.d.ts.map → models/generated/index.d.ts.map} +1 -1
  474. package/packages/pi-ai/dist/models/generated/index.js +51 -0
  475. package/packages/pi-ai/dist/models/generated/index.js.map +1 -0
  476. package/packages/pi-ai/dist/models/generated/kimi-coding.d.ts +37 -0
  477. package/packages/pi-ai/dist/models/generated/kimi-coding.d.ts.map +1 -0
  478. package/packages/pi-ai/dist/models/generated/kimi-coding.js +39 -0
  479. package/packages/pi-ai/dist/models/generated/kimi-coding.js.map +1 -0
  480. package/packages/pi-ai/dist/models/generated/minimax-cn.d.ts +105 -0
  481. package/packages/pi-ai/dist/models/generated/minimax-cn.d.ts.map +1 -0
  482. package/packages/pi-ai/dist/models/generated/minimax-cn.js +107 -0
  483. package/packages/pi-ai/dist/models/generated/minimax-cn.js.map +1 -0
  484. package/packages/pi-ai/dist/models/generated/minimax.d.ts +105 -0
  485. package/packages/pi-ai/dist/models/generated/minimax.d.ts.map +1 -0
  486. package/packages/pi-ai/dist/models/generated/minimax.js +107 -0
  487. package/packages/pi-ai/dist/models/generated/minimax.js.map +1 -0
  488. package/packages/pi-ai/dist/models/generated/mistral.d.ts +445 -0
  489. package/packages/pi-ai/dist/models/generated/mistral.d.ts.map +1 -0
  490. package/packages/pi-ai/dist/models/generated/mistral.js +447 -0
  491. package/packages/pi-ai/dist/models/generated/mistral.js.map +1 -0
  492. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts +156 -0
  493. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts.map +1 -0
  494. package/packages/pi-ai/dist/models/generated/openai-codex.js +158 -0
  495. package/packages/pi-ai/dist/models/generated/openai-codex.js.map +1 -0
  496. package/packages/pi-ai/dist/models/generated/openai.d.ts +700 -0
  497. package/packages/pi-ai/dist/models/generated/openai.d.ts.map +1 -0
  498. package/packages/pi-ai/dist/models/generated/openai.js +702 -0
  499. package/packages/pi-ai/dist/models/generated/openai.js.map +1 -0
  500. package/packages/pi-ai/dist/models/generated/opencode-go.d.ts +122 -0
  501. package/packages/pi-ai/dist/models/generated/opencode-go.d.ts.map +1 -0
  502. package/packages/pi-ai/dist/models/generated/opencode-go.js +124 -0
  503. package/packages/pi-ai/dist/models/generated/opencode-go.js.map +1 -0
  504. package/packages/pi-ai/dist/models/generated/opencode.d.ts +530 -0
  505. package/packages/pi-ai/dist/models/generated/opencode.d.ts.map +1 -0
  506. package/packages/pi-ai/dist/models/generated/opencode.js +532 -0
  507. package/packages/pi-ai/dist/models/generated/opencode.js.map +1 -0
  508. package/packages/pi-ai/dist/models/generated/openrouter.d.ts +4287 -0
  509. package/packages/pi-ai/dist/models/generated/openrouter.d.ts.map +1 -0
  510. package/packages/pi-ai/dist/models/generated/openrouter.js +4289 -0
  511. package/packages/pi-ai/dist/models/generated/openrouter.js.map +1 -0
  512. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.d.ts +2604 -0
  513. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.d.ts.map +1 -0
  514. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.js +2606 -0
  515. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.js.map +1 -0
  516. package/packages/pi-ai/dist/models/generated/xai.d.ts +411 -0
  517. package/packages/pi-ai/dist/models/generated/xai.d.ts.map +1 -0
  518. package/packages/pi-ai/dist/models/generated/xai.js +413 -0
  519. package/packages/pi-ai/dist/models/generated/xai.js.map +1 -0
  520. package/packages/pi-ai/dist/models/generated/zai.d.ts +276 -0
  521. package/packages/pi-ai/dist/models/generated/zai.d.ts.map +1 -0
  522. package/packages/pi-ai/dist/models/generated/zai.js +239 -0
  523. package/packages/pi-ai/dist/models/generated/zai.js.map +1 -0
  524. package/packages/pi-ai/dist/models/index.d.ts +27 -0
  525. package/packages/pi-ai/dist/models/index.d.ts.map +1 -0
  526. package/packages/pi-ai/dist/models/index.js +80 -0
  527. package/packages/pi-ai/dist/models/index.js.map +1 -0
  528. package/packages/pi-ai/dist/models.d.ts +1 -36
  529. package/packages/pi-ai/dist/models.d.ts.map +1 -1
  530. package/packages/pi-ai/dist/models.generated.test.js +18 -2
  531. package/packages/pi-ai/dist/models.generated.test.js.map +1 -1
  532. package/packages/pi-ai/dist/models.js +3 -112
  533. package/packages/pi-ai/dist/models.js.map +1 -1
  534. package/packages/pi-ai/dist/models.test.js +6 -5
  535. package/packages/pi-ai/dist/models.test.js.map +1 -1
  536. package/packages/pi-ai/dist/providers/amazon-bedrock.d.ts +22 -1
  537. package/packages/pi-ai/dist/providers/amazon-bedrock.d.ts.map +1 -1
  538. package/packages/pi-ai/dist/providers/amazon-bedrock.js +40 -6
  539. package/packages/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
  540. package/packages/pi-ai/dist/providers/amazon-bedrock.test.d.ts +2 -0
  541. package/packages/pi-ai/dist/providers/amazon-bedrock.test.d.ts.map +1 -0
  542. package/packages/pi-ai/dist/providers/amazon-bedrock.test.js +106 -0
  543. package/packages/pi-ai/dist/providers/amazon-bedrock.test.js.map +1 -0
  544. package/packages/pi-ai/dist/providers/anthropic-auth.test.js +42 -1
  545. package/packages/pi-ai/dist/providers/anthropic-auth.test.js.map +1 -1
  546. package/packages/pi-ai/dist/providers/anthropic-shared.d.ts +20 -1
  547. package/packages/pi-ai/dist/providers/anthropic-shared.d.ts.map +1 -1
  548. package/packages/pi-ai/dist/providers/anthropic-shared.js +32 -2
  549. package/packages/pi-ai/dist/providers/anthropic-shared.js.map +1 -1
  550. package/packages/pi-ai/dist/providers/anthropic-shared.test.js +12 -1
  551. package/packages/pi-ai/dist/providers/anthropic-shared.test.js.map +1 -1
  552. package/packages/pi-ai/dist/providers/anthropic.d.ts +11 -0
  553. package/packages/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
  554. package/packages/pi-ai/dist/providers/anthropic.js +18 -1
  555. package/packages/pi-ai/dist/providers/anthropic.js.map +1 -1
  556. package/packages/pi-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -1
  557. package/packages/pi-ai/dist/utils/oauth/openai-codex.js +12 -0
  558. package/packages/pi-ai/dist/utils/oauth/openai-codex.js.map +1 -1
  559. package/packages/pi-ai/package.json +2 -2
  560. package/packages/pi-ai/scripts/generate-models.ts +124 -40
  561. package/packages/pi-ai/src/index.ts +1 -9
  562. package/packages/pi-ai/src/models/capability-patches.ts +43 -0
  563. package/packages/pi-ai/src/{models.custom.ts → models/custom.ts} +4 -4
  564. package/packages/pi-ai/src/models/generated/amazon-bedrock.ts +1554 -0
  565. package/packages/pi-ai/src/models/generated/anthropic.ts +398 -0
  566. package/packages/pi-ai/src/models/generated/azure-openai-responses.ts +704 -0
  567. package/packages/pi-ai/src/models/generated/cerebras.ts +75 -0
  568. package/packages/pi-ai/src/models/generated/github-copilot.ts +446 -0
  569. package/packages/pi-ai/src/models/generated/google-antigravity.ts +177 -0
  570. package/packages/pi-ai/src/models/generated/google-gemini-cli.ts +109 -0
  571. package/packages/pi-ai/src/models/generated/google-vertex.ts +211 -0
  572. package/packages/pi-ai/src/models/generated/google.ts +466 -0
  573. package/packages/pi-ai/src/models/generated/groq.ts +160 -0
  574. package/packages/pi-ai/src/models/generated/huggingface.ts +349 -0
  575. package/packages/pi-ai/src/models/generated/index.ts +52 -0
  576. package/packages/pi-ai/src/models/generated/kimi-coding.ts +41 -0
  577. package/packages/pi-ai/src/models/generated/minimax-cn.ts +109 -0
  578. package/packages/pi-ai/src/models/generated/minimax.ts +109 -0
  579. package/packages/pi-ai/src/models/generated/mistral.ts +449 -0
  580. package/packages/pi-ai/src/models/generated/openai-codex.ts +160 -0
  581. package/packages/pi-ai/src/models/generated/openai.ts +704 -0
  582. package/packages/pi-ai/src/models/generated/opencode-go.ts +126 -0
  583. package/packages/pi-ai/src/models/generated/opencode.ts +534 -0
  584. package/packages/pi-ai/src/models/generated/openrouter.ts +4291 -0
  585. package/packages/pi-ai/src/models/generated/vercel-ai-gateway.ts +2608 -0
  586. package/packages/pi-ai/src/models/generated/xai.ts +415 -0
  587. package/packages/pi-ai/src/models/generated/zai.ts +241 -0
  588. package/packages/pi-ai/src/models/index.ts +106 -0
  589. package/packages/pi-ai/src/models.generated.test.ts +18 -2
  590. package/packages/pi-ai/src/models.test.ts +6 -5
  591. package/packages/pi-ai/src/models.ts +3 -153
  592. package/packages/pi-ai/src/providers/amazon-bedrock.test.ts +164 -0
  593. package/packages/pi-ai/src/providers/amazon-bedrock.ts +41 -7
  594. package/packages/pi-ai/src/providers/anthropic-auth.test.ts +47 -1
  595. package/packages/pi-ai/src/providers/anthropic-shared.test.ts +15 -1
  596. package/packages/pi-ai/src/providers/anthropic-shared.ts +36 -3
  597. package/packages/pi-ai/src/providers/anthropic.ts +19 -1
  598. package/packages/pi-ai/src/utils/oauth/openai-codex.ts +15 -0
  599. package/packages/pi-ai/tsconfig.json +1 -0
  600. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -0
  601. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.d.ts +2 -0
  602. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.d.ts.map +1 -0
  603. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js +38 -0
  604. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js.map +1 -0
  605. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  606. package/packages/pi-coding-agent/dist/core/agent-session.js +8 -2
  607. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  608. package/packages/pi-coding-agent/dist/core/auth-storage.d.ts +14 -0
  609. package/packages/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
  610. package/packages/pi-coding-agent/dist/core/auth-storage.js +34 -0
  611. package/packages/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
  612. package/packages/pi-coding-agent/dist/core/auth-storage.test.js +74 -0
  613. package/packages/pi-coding-agent/dist/core/auth-storage.test.js.map +1 -1
  614. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +476 -1
  615. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -1
  616. package/packages/pi-coding-agent/dist/core/model-registry-auth-mode.test.js +32 -0
  617. package/packages/pi-coding-agent/dist/core/model-registry-auth-mode.test.js.map +1 -1
  618. package/packages/pi-coding-agent/dist/core/model-registry-env-fallback.test.d.ts +2 -0
  619. package/packages/pi-coding-agent/dist/core/model-registry-env-fallback.test.d.ts.map +1 -0
  620. package/packages/pi-coding-agent/dist/core/model-registry-env-fallback.test.js +52 -0
  621. package/packages/pi-coding-agent/dist/core/model-registry-env-fallback.test.js.map +1 -0
  622. package/packages/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
  623. package/packages/pi-coding-agent/dist/core/model-registry.js +2 -2
  624. package/packages/pi-coding-agent/dist/core/model-registry.js.map +1 -1
  625. package/packages/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
  626. package/packages/pi-coding-agent/dist/core/sdk.js +32 -0
  627. package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
  628. package/packages/pi-coding-agent/dist/core/skill-tool.test.js +2 -2
  629. package/packages/pi-coding-agent/dist/core/skill-tool.test.js.map +1 -1
  630. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.d.ts +2 -0
  631. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.d.ts.map +1 -0
  632. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.js +61 -0
  633. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.js.map +1 -0
  634. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +11 -0
  635. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js.map +1 -1
  636. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts +1 -0
  637. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  638. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js +23 -9
  639. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js.map +1 -1
  640. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts +11 -0
  641. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts.map +1 -0
  642. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js +63 -0
  643. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js.map +1 -0
  644. package/packages/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.d.ts +8 -5
  645. package/packages/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  646. package/packages/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.js +27 -13
  647. package/packages/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  648. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -1
  649. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js +48 -34
  650. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -1
  651. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +8 -0
  652. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  653. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +68 -8
  654. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  655. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  656. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.js +22 -22
  657. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.js.map +1 -1
  658. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts +4 -0
  659. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  660. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +315 -51
  661. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  662. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.d.ts +2 -0
  663. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.d.ts.map +1 -0
  664. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.js +38 -0
  665. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.js.map +1 -0
  666. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +14 -0
  667. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  668. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +70 -6
  669. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  670. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts +70 -0
  671. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -0
  672. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js +77 -0
  673. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js.map +1 -0
  674. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +1 -66
  675. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  676. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js +1 -75
  677. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
  678. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts +1 -1
  679. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts.map +1 -1
  680. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +192 -24
  681. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -1
  682. package/packages/pi-coding-agent/package.json +1 -1
  683. package/packages/pi-coding-agent/src/core/agent-session-abort-order.test.ts +56 -0
  684. package/packages/pi-coding-agent/src/core/agent-session.ts +12 -6
  685. package/packages/pi-coding-agent/src/core/auth-storage.test.ts +83 -0
  686. package/packages/pi-coding-agent/src/core/auth-storage.ts +35 -0
  687. package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +616 -1
  688. package/packages/pi-coding-agent/src/core/model-registry-auth-mode.test.ts +37 -1
  689. package/packages/pi-coding-agent/src/core/model-registry-env-fallback.test.ts +59 -0
  690. package/packages/pi-coding-agent/src/core/model-registry.ts +2 -1
  691. package/packages/pi-coding-agent/src/core/sdk.ts +41 -0
  692. package/packages/pi-coding-agent/src/core/skill-tool.test.ts +2 -2
  693. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.ts +92 -0
  694. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +19 -0
  695. package/packages/pi-coding-agent/src/modes/interactive/components/assistant-message.ts +25 -10
  696. package/packages/pi-coding-agent/src/modes/interactive/components/chat-frame.ts +87 -0
  697. package/packages/pi-coding-agent/src/modes/interactive/components/compaction-summary-message.ts +36 -15
  698. package/packages/pi-coding-agent/src/modes/interactive/components/footer.ts +53 -31
  699. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +83 -7
  700. package/packages/pi-coding-agent/src/modes/interactive/components/user-message.ts +23 -26
  701. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +386 -77
  702. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode-ordering.test.ts +44 -0
  703. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +92 -6
  704. package/packages/pi-coding-agent/src/modes/interactive/theme/theme-schema.ts +83 -0
  705. package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +2 -83
  706. package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +208 -27
  707. package/packages/pi-coding-agent/src/types/ambient-modules.d.ts +69 -0
  708. package/packages/pi-coding-agent/tsconfig.json +3 -2
  709. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -0
  710. package/packages/pi-tui/dist/tui.d.ts.map +1 -1
  711. package/packages/pi-tui/dist/tui.js +9 -2
  712. package/packages/pi-tui/dist/tui.js.map +1 -1
  713. package/packages/pi-tui/package.json +1 -1
  714. package/packages/pi-tui/src/tui.ts +9 -1
  715. package/packages/pi-tui/tsconfig.json +1 -0
  716. package/packages/pi-tui/tsconfig.tsbuildinfo +1 -0
  717. package/packages/rpc-client/package.json +1 -1
  718. package/packages/rpc-client/tsconfig.json +1 -0
  719. package/packages/rpc-client/tsconfig.tsbuildinfo +1 -0
  720. package/pkg/dist/modes/interactive/theme/theme-schema.d.ts +70 -0
  721. package/pkg/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -0
  722. package/pkg/dist/modes/interactive/theme/theme-schema.js +77 -0
  723. package/pkg/dist/modes/interactive/theme/theme-schema.js.map +1 -0
  724. package/pkg/dist/modes/interactive/theme/theme.d.ts +1 -66
  725. package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  726. package/pkg/dist/modes/interactive/theme/theme.js +1 -75
  727. package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
  728. package/pkg/dist/modes/interactive/theme/themes.d.ts +1 -1
  729. package/pkg/dist/modes/interactive/theme/themes.d.ts.map +1 -1
  730. package/pkg/dist/modes/interactive/theme/themes.js +192 -24
  731. package/pkg/dist/modes/interactive/theme/themes.js.map +1 -1
  732. package/pkg/package.json +1 -1
  733. package/src/resources/extensions/ask-user-questions.ts +24 -6
  734. package/src/resources/extensions/claude-code-cli/models.ts +9 -0
  735. package/src/resources/extensions/claude-code-cli/readiness.ts +13 -2
  736. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +94 -4
  737. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +84 -0
  738. package/src/resources/extensions/gsd/activity-log.ts +21 -0
  739. package/src/resources/extensions/gsd/auto/detect-stuck.ts +22 -4
  740. package/src/resources/extensions/gsd/auto/loop-deps.ts +11 -0
  741. package/src/resources/extensions/gsd/auto/loop.ts +268 -13
  742. package/src/resources/extensions/gsd/auto/phases.ts +349 -64
  743. package/src/resources/extensions/gsd/auto/resolve.ts +1 -1
  744. package/src/resources/extensions/gsd/auto/run-unit.ts +11 -1
  745. package/src/resources/extensions/gsd/auto/session.ts +17 -0
  746. package/src/resources/extensions/gsd/auto-artifact-paths.ts +20 -0
  747. package/src/resources/extensions/gsd/auto-dashboard.ts +21 -4
  748. package/src/resources/extensions/gsd/auto-dispatch.ts +139 -11
  749. package/src/resources/extensions/gsd/auto-loop.ts +1 -1
  750. package/src/resources/extensions/gsd/auto-model-selection.ts +82 -10
  751. package/src/resources/extensions/gsd/auto-post-unit.ts +248 -26
  752. package/src/resources/extensions/gsd/auto-prompts.ts +211 -37
  753. package/src/resources/extensions/gsd/auto-recovery.ts +92 -10
  754. package/src/resources/extensions/gsd/auto-start.ts +8 -6
  755. package/src/resources/extensions/gsd/auto-unit-closeout.ts +25 -1
  756. package/src/resources/extensions/gsd/auto-verification.ts +132 -5
  757. package/src/resources/extensions/gsd/auto-worktree.ts +66 -0
  758. package/src/resources/extensions/gsd/auto.ts +100 -28
  759. package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +8 -21
  760. package/src/resources/extensions/gsd/bootstrap/db-tools.ts +22 -4
  761. package/src/resources/extensions/gsd/bootstrap/provider-error-resume.ts +5 -3
  762. package/src/resources/extensions/gsd/bootstrap/query-tools.ts +31 -0
  763. package/src/resources/extensions/gsd/bootstrap/register-extension.ts +38 -8
  764. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +94 -8
  765. package/src/resources/extensions/gsd/cache.ts +16 -5
  766. package/src/resources/extensions/gsd/commands/catalog.ts +104 -9
  767. package/src/resources/extensions/gsd/commands/handlers/core.ts +74 -28
  768. package/src/resources/extensions/gsd/commands/handlers/escalate.ts +216 -0
  769. package/src/resources/extensions/gsd/commands/handlers/onboarding.ts +229 -0
  770. package/src/resources/extensions/gsd/commands/handlers/ops.ts +41 -0
  771. package/src/resources/extensions/gsd/commands/handlers/workflow.ts +352 -37
  772. package/src/resources/extensions/gsd/commands-add-tests.ts +137 -0
  773. package/src/resources/extensions/gsd/commands-backlog.ts +182 -0
  774. package/src/resources/extensions/gsd/commands-cmux.ts +6 -2
  775. package/src/resources/extensions/gsd/commands-config.ts +10 -0
  776. package/src/resources/extensions/gsd/commands-debug.ts +484 -0
  777. package/src/resources/extensions/gsd/commands-do.ts +110 -0
  778. package/src/resources/extensions/gsd/commands-extract-learnings.ts +523 -0
  779. package/src/resources/extensions/gsd/commands-handlers.ts +19 -2
  780. package/src/resources/extensions/gsd/commands-maintenance.ts +6 -6
  781. package/src/resources/extensions/gsd/commands-pr-branch.ts +234 -0
  782. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +106 -15
  783. package/src/resources/extensions/gsd/commands-scan.ts +125 -0
  784. package/src/resources/extensions/gsd/commands-session-report.ts +101 -0
  785. package/src/resources/extensions/gsd/commands-ship.ts +219 -0
  786. package/src/resources/extensions/gsd/commands-workflow-templates.ts +129 -2
  787. package/src/resources/extensions/gsd/custom-workflow-engine.ts +85 -60
  788. package/src/resources/extensions/gsd/db-writer.ts +6 -5
  789. package/src/resources/extensions/gsd/debug-session-store.ts +377 -0
  790. package/src/resources/extensions/gsd/definition-loader.ts +7 -0
  791. package/src/resources/extensions/gsd/docs/preferences-reference.md +17 -2
  792. package/src/resources/extensions/gsd/doctor-environment.ts +2 -1
  793. package/src/resources/extensions/gsd/doctor-git-checks.ts +5 -1
  794. package/src/resources/extensions/gsd/doctor-proactive.ts +4 -1
  795. package/src/resources/extensions/gsd/doctor-providers.ts +52 -22
  796. package/src/resources/extensions/gsd/doctor-runtime-checks.ts +23 -4
  797. package/src/resources/extensions/gsd/doctor-types.ts +1 -0
  798. package/src/resources/extensions/gsd/doctor.ts +7 -1
  799. package/src/resources/extensions/gsd/ecosystem/gsd-extension-api.ts +228 -0
  800. package/src/resources/extensions/gsd/ecosystem/loader.ts +201 -0
  801. package/src/resources/extensions/gsd/error-classifier.ts +6 -3
  802. package/src/resources/extensions/gsd/escalation.ts +367 -0
  803. package/src/resources/extensions/gsd/forensics.ts +25 -29
  804. package/src/resources/extensions/gsd/git-service.ts +68 -1
  805. package/src/resources/extensions/gsd/graph-context.ts +212 -0
  806. package/src/resources/extensions/gsd/graph.ts +33 -3
  807. package/src/resources/extensions/gsd/gsd-db.ts +1083 -21
  808. package/src/resources/extensions/gsd/guided-flow.ts +36 -2
  809. package/src/resources/extensions/gsd/health-widget-core.ts +43 -14
  810. package/src/resources/extensions/gsd/health-widget.ts +7 -3
  811. package/src/resources/extensions/gsd/index.ts +18 -2
  812. package/src/resources/extensions/gsd/init-wizard.ts +90 -56
  813. package/src/resources/extensions/gsd/journal.ts +30 -0
  814. package/src/resources/extensions/gsd/markdown-renderer.ts +5 -5
  815. package/src/resources/extensions/gsd/md-importer.ts +3 -5
  816. package/src/resources/extensions/gsd/memory-store.ts +31 -62
  817. package/src/resources/extensions/gsd/metrics.ts +27 -0
  818. package/src/resources/extensions/gsd/milestone-validation-gates.ts +13 -14
  819. package/src/resources/extensions/gsd/model-cost-table.ts +3 -1
  820. package/src/resources/extensions/gsd/model-router.ts +15 -1
  821. package/src/resources/extensions/gsd/native-git-bridge.ts +145 -18
  822. package/src/resources/extensions/gsd/notification-widget.ts +25 -43
  823. package/src/resources/extensions/gsd/notifications.ts +6 -0
  824. package/src/resources/extensions/gsd/onboarding-state.ts +146 -0
  825. package/src/resources/extensions/gsd/parallel-orchestrator.ts +40 -1
  826. package/src/resources/extensions/gsd/post-execution-checks.ts +37 -14
  827. package/src/resources/extensions/gsd/pre-execution-checks.ts +98 -8
  828. package/src/resources/extensions/gsd/preferences-models.ts +21 -3
  829. package/src/resources/extensions/gsd/preferences-types.ts +47 -1
  830. package/src/resources/extensions/gsd/preferences-validation.ts +150 -9
  831. package/src/resources/extensions/gsd/preferences.ts +44 -10
  832. package/src/resources/extensions/gsd/prompts/add-tests.md +35 -0
  833. package/src/resources/extensions/gsd/prompts/complete-milestone.md +4 -1
  834. package/src/resources/extensions/gsd/prompts/debug-diagnose.md +25 -0
  835. package/src/resources/extensions/gsd/prompts/debug-session-manager.md +80 -0
  836. package/src/resources/extensions/gsd/prompts/execute-task.md +12 -0
  837. package/src/resources/extensions/gsd/prompts/plan-milestone.md +12 -0
  838. package/src/resources/extensions/gsd/prompts/refine-slice.md +69 -0
  839. package/src/resources/extensions/gsd/prompts/scan.md +79 -0
  840. package/src/resources/extensions/gsd/prompts/workflow-oneshot.md +26 -0
  841. package/src/resources/extensions/gsd/python-resolver.ts +76 -0
  842. package/src/resources/extensions/gsd/run-manager.ts +53 -19
  843. package/src/resources/extensions/gsd/safety/evidence-collector.ts +15 -31
  844. package/src/resources/extensions/gsd/session-lock.ts +14 -2
  845. package/src/resources/extensions/gsd/setup-catalog.ts +105 -0
  846. package/src/resources/extensions/gsd/slice-parallel-orchestrator.ts +20 -1
  847. package/src/resources/extensions/gsd/state.ts +59 -4
  848. package/src/resources/extensions/gsd/templates/PREFERENCES.md +19 -0
  849. package/src/resources/extensions/gsd/tests/agent-end-retry.test.ts +1 -34
  850. package/src/resources/extensions/gsd/tests/artifact-corruption-2630.test.ts +7 -0
  851. package/src/resources/extensions/gsd/tests/artifacts-table-preserved-on-cache-invalidate.test.ts +177 -0
  852. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +49 -31
  853. package/src/resources/extensions/gsd/tests/auto-migrating-recovery.test.ts +63 -0
  854. package/src/resources/extensions/gsd/tests/auto-model-selection.test.ts +20 -0
  855. package/src/resources/extensions/gsd/tests/auto-project-root-env.test.ts +7 -3
  856. package/src/resources/extensions/gsd/tests/auto-prompts-fallback.test.ts +35 -0
  857. package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +123 -1
  858. package/src/resources/extensions/gsd/tests/auto-retry-mcp-churn-fixes.test.ts +272 -0
  859. package/src/resources/extensions/gsd/tests/auto-warning-noise-regression.test.ts +117 -0
  860. package/src/resources/extensions/gsd/tests/auto-wrapup-inflight-guard.test.ts +39 -0
  861. package/src/resources/extensions/gsd/tests/autocomplete-regressions-1675.test.ts +39 -0
  862. package/src/resources/extensions/gsd/tests/cold-resume-db-reopen.test.ts +6 -2
  863. package/src/resources/extensions/gsd/tests/commands-backlog.test.ts +158 -0
  864. package/src/resources/extensions/gsd/tests/commands-do.test.ts +175 -0
  865. package/src/resources/extensions/gsd/tests/commands-extract-learnings.test.ts +652 -0
  866. package/src/resources/extensions/gsd/tests/commands-pr-branch.test.ts +68 -0
  867. package/src/resources/extensions/gsd/tests/commands-scan.test.ts +351 -0
  868. package/src/resources/extensions/gsd/tests/commands-session-report.test.ts +82 -0
  869. package/src/resources/extensions/gsd/tests/commands-ship.test.ts +71 -0
  870. package/src/resources/extensions/gsd/tests/commands-workflow-custom.test.ts +22 -6
  871. package/src/resources/extensions/gsd/tests/complete-slice.test.ts +6 -8
  872. package/src/resources/extensions/gsd/tests/complete-task.test.ts +2 -2
  873. package/src/resources/extensions/gsd/tests/custom-workflow-engine.test.ts +63 -0
  874. package/src/resources/extensions/gsd/tests/debug-command-handler.test.ts +905 -0
  875. package/src/resources/extensions/gsd/tests/debug-command-lifecycle.integration.test.ts +1229 -0
  876. package/src/resources/extensions/gsd/tests/debug-session-store.test.ts +565 -0
  877. package/src/resources/extensions/gsd/tests/discuss-milestone-structured-questions.test.ts +64 -0
  878. package/src/resources/extensions/gsd/tests/dispatch-complete-milestone-guard.test.ts +67 -0
  879. package/src/resources/extensions/gsd/tests/doctor-providers.test.ts +62 -18
  880. package/src/resources/extensions/gsd/tests/enhanced-verification-integration.test.ts +5 -0
  881. package/src/resources/extensions/gsd/tests/escalation.test.ts +818 -0
  882. package/src/resources/extensions/gsd/tests/extension-bootstrap-isolation.test.ts +154 -0
  883. package/src/resources/extensions/gsd/tests/finalize-timeout-guard.test.ts +39 -19
  884. package/src/resources/extensions/gsd/tests/flat-rate-routing-guard.test.ts +106 -0
  885. package/src/resources/extensions/gsd/tests/forensics-hook-key-parse.test.ts +74 -0
  886. package/src/resources/extensions/gsd/tests/graph-context.test.ts +337 -0
  887. package/src/resources/extensions/gsd/tests/graph-operations.test.ts +0 -4
  888. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +44 -1
  889. package/src/resources/extensions/gsd/tests/health-widget.test.ts +9 -3
  890. package/src/resources/extensions/gsd/tests/init-prefs-routing.test.ts +190 -0
  891. package/src/resources/extensions/gsd/tests/integration/doctor-git.test.ts +39 -0
  892. package/src/resources/extensions/gsd/tests/integration/doctor-proactive.test.ts +44 -0
  893. package/src/resources/extensions/gsd/tests/integration/doctor-runtime.test.ts +68 -1
  894. package/src/resources/extensions/gsd/tests/integration/git-service.test.ts +109 -11
  895. package/src/resources/extensions/gsd/tests/integration/idle-recovery.test.ts +51 -0
  896. package/src/resources/extensions/gsd/tests/integration/integration-proof.test.ts +2 -2
  897. package/src/resources/extensions/gsd/tests/integration/test-isolation.ts +53 -0
  898. package/src/resources/extensions/gsd/tests/journal-integration.test.ts +242 -5
  899. package/src/resources/extensions/gsd/tests/md-importer.test.ts +1 -2
  900. package/src/resources/extensions/gsd/tests/memory-store.test.ts +2 -3
  901. package/src/resources/extensions/gsd/tests/milestone-status-tool.test.ts +3 -2
  902. package/src/resources/extensions/gsd/tests/model-cost-table.test.ts +2 -2
  903. package/src/resources/extensions/gsd/tests/model-router.test.ts +1 -1
  904. package/src/resources/extensions/gsd/tests/model-unittype-mapping.test.ts +59 -0
  905. package/src/resources/extensions/gsd/tests/native-git-bridge-exec-fallback.test.ts +140 -0
  906. package/src/resources/extensions/gsd/tests/notification-widget.test.ts +1 -1
  907. package/src/resources/extensions/gsd/tests/onboarding-state.test.ts +105 -0
  908. package/src/resources/extensions/gsd/tests/plan-milestone-boundary-map-preservation.test.ts +114 -0
  909. package/src/resources/extensions/gsd/tests/plan-milestone.test.ts +4 -5
  910. package/src/resources/extensions/gsd/tests/plan-slice.test.ts +17 -0
  911. package/src/resources/extensions/gsd/tests/post-exec-retry-bypass.test.ts +79 -1
  912. package/src/resources/extensions/gsd/tests/post-execution-checks.test.ts +105 -1
  913. package/src/resources/extensions/gsd/tests/post-unit-state-rebuild.test.ts +2 -1
  914. package/src/resources/extensions/gsd/tests/pre-execution-checks.test.ts +275 -6
  915. package/src/resources/extensions/gsd/tests/pre-execution-pause-wiring.test.ts +40 -1
  916. package/src/resources/extensions/gsd/tests/preferences.test.ts +214 -1
  917. package/src/resources/extensions/gsd/tests/progressive-planning.test.ts +539 -0
  918. package/src/resources/extensions/gsd/tests/projection-no-plan-overwrite.test.ts +11 -2
  919. package/src/resources/extensions/gsd/tests/projection-regression.test.ts +7 -0
  920. package/src/resources/extensions/gsd/tests/prompt-budget-enforcement.test.ts +27 -0
  921. package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +24 -0
  922. package/src/resources/extensions/gsd/tests/prompt-db.test.ts +1 -1
  923. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +90 -2
  924. package/src/resources/extensions/gsd/tests/python-resolver.test.ts +131 -0
  925. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +68 -1
  926. package/src/resources/extensions/gsd/tests/remote-notification-from-desktop.test.ts +107 -0
  927. package/src/resources/extensions/gsd/tests/requirements.test.ts +9 -0
  928. package/src/resources/extensions/gsd/tests/session-start-footer.test.ts +153 -0
  929. package/src/resources/extensions/gsd/tests/single-writer-invariant.test.ts +180 -0
  930. package/src/resources/extensions/gsd/tests/slice-context-injection.test.ts +16 -4
  931. package/src/resources/extensions/gsd/tests/state-corruption-2945.test.ts +3 -0
  932. package/src/resources/extensions/gsd/tests/stuck-detection-coverage.test.ts +15 -0
  933. package/src/resources/extensions/gsd/tests/summary-render-parity.test.ts +5 -0
  934. package/src/resources/extensions/gsd/tests/token-profile.test.ts +8 -5
  935. package/src/resources/extensions/gsd/tests/uok-audit-unified.test.ts +101 -0
  936. package/src/resources/extensions/gsd/tests/uok-contracts.test.ts +86 -0
  937. package/src/resources/extensions/gsd/tests/uok-execution-graph.test.ts +69 -0
  938. package/src/resources/extensions/gsd/tests/uok-flags.test.ts +69 -0
  939. package/src/resources/extensions/gsd/tests/uok-gate-runner.test.ts +70 -0
  940. package/src/resources/extensions/gsd/tests/uok-gitops-turn-action.test.ts +85 -0
  941. package/src/resources/extensions/gsd/tests/uok-gitops-wiring.test.ts +35 -0
  942. package/src/resources/extensions/gsd/tests/uok-kernel-path.test.ts +166 -0
  943. package/src/resources/extensions/gsd/tests/uok-model-policy.test.ts +89 -0
  944. package/src/resources/extensions/gsd/tests/uok-plan-v2-wiring.test.ts +167 -0
  945. package/src/resources/extensions/gsd/tests/uok-preferences.test.ts +42 -0
  946. package/src/resources/extensions/gsd/tests/validate-milestone-write-order.test.ts +39 -0
  947. package/src/resources/extensions/gsd/tests/verification-gate.test.ts +35 -0
  948. package/src/resources/extensions/gsd/tests/workflow-install.test.ts +113 -0
  949. package/src/resources/extensions/gsd/tests/workflow-logger-wiring.test.ts +232 -0
  950. package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +2 -2
  951. package/src/resources/extensions/gsd/tests/workflow-plugins.test.ts +310 -0
  952. package/src/resources/extensions/gsd/tests/workflow-projections.test.ts +7 -0
  953. package/src/resources/extensions/gsd/tests/workflow-templates.test.ts +8 -2
  954. package/src/resources/extensions/gsd/tests/worktree-journal-events.test.ts +2 -1
  955. package/src/resources/extensions/gsd/tests/worktree-resolver.test.ts +77 -2
  956. package/src/resources/extensions/gsd/tools/complete-slice.ts +26 -0
  957. package/src/resources/extensions/gsd/tools/complete-task.ts +87 -0
  958. package/src/resources/extensions/gsd/tools/plan-milestone.ts +42 -8
  959. package/src/resources/extensions/gsd/tools/plan-slice.ts +6 -1
  960. package/src/resources/extensions/gsd/tools/validate-milestone.ts +48 -3
  961. package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +3 -11
  962. package/src/resources/extensions/gsd/triage-resolution.ts +2 -7
  963. package/src/resources/extensions/gsd/types.ts +76 -1
  964. package/src/resources/extensions/gsd/unit-ownership.ts +2 -2
  965. package/src/resources/extensions/gsd/unit-runtime.ts +1 -0
  966. package/src/resources/extensions/gsd/uok/audit-toggle.ts +9 -0
  967. package/src/resources/extensions/gsd/uok/audit.ts +51 -0
  968. package/src/resources/extensions/gsd/uok/contracts.ts +136 -0
  969. package/src/resources/extensions/gsd/uok/execution-graph.ts +241 -0
  970. package/src/resources/extensions/gsd/uok/flags.ts +45 -0
  971. package/src/resources/extensions/gsd/uok/gate-runner.ts +146 -0
  972. package/src/resources/extensions/gsd/uok/gitops.ts +75 -0
  973. package/src/resources/extensions/gsd/uok/kernel.ts +117 -0
  974. package/src/resources/extensions/gsd/uok/loop-adapter.ts +162 -0
  975. package/src/resources/extensions/gsd/uok/model-policy.ts +112 -0
  976. package/src/resources/extensions/gsd/uok/plan-v2.ts +156 -0
  977. package/src/resources/extensions/gsd/verification-gate.ts +2 -1
  978. package/src/resources/extensions/gsd/workflow-dispatch.ts +106 -0
  979. package/src/resources/extensions/gsd/workflow-install.ts +423 -0
  980. package/src/resources/extensions/gsd/workflow-logger.ts +27 -1
  981. package/src/resources/extensions/gsd/workflow-manifest.ts +17 -104
  982. package/src/resources/extensions/gsd/workflow-mcp.ts +1 -6
  983. package/src/resources/extensions/gsd/workflow-migration.ts +21 -29
  984. package/src/resources/extensions/gsd/workflow-plugins.ts +403 -0
  985. package/src/resources/extensions/gsd/workflow-projections.ts +26 -17
  986. package/src/resources/extensions/gsd/workflow-reconcile.ts +15 -15
  987. package/src/resources/extensions/gsd/workflow-templates/accessibility-audit.md +88 -0
  988. package/src/resources/extensions/gsd/workflow-templates/api-breaking-change.md +117 -0
  989. package/src/resources/extensions/gsd/workflow-templates/bugfix.md +1 -0
  990. package/src/resources/extensions/gsd/workflow-templates/changelog-gen.md +82 -0
  991. package/src/resources/extensions/gsd/workflow-templates/ci-bootstrap.md +144 -0
  992. package/src/resources/extensions/gsd/workflow-templates/dead-code.md +81 -0
  993. package/src/resources/extensions/gsd/workflow-templates/dep-upgrade.md +1 -0
  994. package/src/resources/extensions/gsd/workflow-templates/docs-sync.yaml +76 -0
  995. package/src/resources/extensions/gsd/workflow-templates/env-audit.yaml +88 -0
  996. package/src/resources/extensions/gsd/workflow-templates/full-project.md +1 -0
  997. package/src/resources/extensions/gsd/workflow-templates/hotfix.md +1 -0
  998. package/src/resources/extensions/gsd/workflow-templates/issue-triage.md +84 -0
  999. package/src/resources/extensions/gsd/workflow-templates/observability-setup.md +133 -0
  1000. package/src/resources/extensions/gsd/workflow-templates/onboarding-check.md +74 -0
  1001. package/src/resources/extensions/gsd/workflow-templates/performance-audit.md +125 -0
  1002. package/src/resources/extensions/gsd/workflow-templates/pr-review.md +67 -0
  1003. package/src/resources/extensions/gsd/workflow-templates/pr-triage.md +83 -0
  1004. package/src/resources/extensions/gsd/workflow-templates/refactor.md +1 -0
  1005. package/src/resources/extensions/gsd/workflow-templates/registry.json +184 -0
  1006. package/src/resources/extensions/gsd/workflow-templates/release.md +118 -0
  1007. package/src/resources/extensions/gsd/workflow-templates/rename-symbol.yaml +99 -0
  1008. package/src/resources/extensions/gsd/workflow-templates/security-audit.md +1 -0
  1009. package/src/resources/extensions/gsd/workflow-templates/small-feature.md +1 -0
  1010. package/src/resources/extensions/gsd/workflow-templates/spike.md +1 -0
  1011. package/src/resources/extensions/gsd/workflow-templates/test-backfill.yaml +73 -0
  1012. package/src/resources/extensions/gsd/workflow-templates.ts +7 -0
  1013. package/src/resources/extensions/gsd/workspace-index.ts +9 -4
  1014. package/src/resources/extensions/gsd/worktree-resolver.ts +47 -1
  1015. package/src/resources/extensions/remote-questions/commands.ts +480 -0
  1016. package/src/resources/extensions/remote-questions/manager.ts +49 -4
  1017. package/src/resources/extensions/remote-questions/telegram-adapter.ts +86 -4
  1018. package/src/resources/extensions/remote-questions/tests/command-polling.test.ts +246 -0
  1019. package/src/resources/extensions/remote-questions/tests/remote-answer-normalization.test.ts +92 -0
  1020. package/src/resources/extensions/remote-questions/tests/telegram-commands.test.ts +267 -0
  1021. package/src/resources/extensions/shared/interview-ui.ts +195 -1
  1022. package/src/resources/extensions/shared/layout-utils.ts +26 -0
  1023. package/src/resources/extensions/shared/rtk-shared.ts +58 -0
  1024. package/src/resources/extensions/shared/rtk.ts +12 -52
  1025. package/src/resources/extensions/shared/tests/interview-preview.test.ts +177 -0
  1026. package/src/resources/extensions/shared/tests/preview-layout.test.ts +120 -0
  1027. package/src/resources/extensions/ttsr/ttsr-manager.ts +10 -5
  1028. package/src/resources/skills/create-workflow/SKILL.md +33 -6
  1029. package/dist/web/standalone/.next/static/chunks/2826.dd3dc8bbd3025fa5.js +0 -9
  1030. package/dist/web/standalone/.next/static/chunks/app/page-7115e62689b5fd84.js +0 -1
  1031. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
  1032. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
  1033. package/dist/web/standalone/.next/static/css/f6e8833d46e738d8.css +0 -1
  1034. package/packages/native/dist/ps/types.d.ts +0 -5
  1035. package/packages/native/dist/ps/types.js +0 -2
  1036. package/packages/native/src/ps/types.ts +0 -5
  1037. package/packages/pi-ai/dist/models.custom.d.ts.map +0 -1
  1038. package/packages/pi-ai/dist/models.custom.js.map +0 -1
  1039. package/packages/pi-ai/dist/models.generated.js +0 -14343
  1040. package/packages/pi-ai/dist/models.generated.js.map +0 -1
  1041. package/packages/pi-ai/node_modules/@smithy/node-http-handler/LICENSE +0 -201
  1042. package/packages/pi-ai/node_modules/@smithy/node-http-handler/README.md +0 -9
  1043. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-cjs/index.js +0 -762
  1044. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/build-abort-error.js +0 -19
  1045. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/constants.js +0 -1
  1046. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/get-transformed-headers.js +0 -9
  1047. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/index.js +0 -3
  1048. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js +0 -230
  1049. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +0 -87
  1050. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-pool.js +0 -32
  1051. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +0 -169
  1052. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/readable.mock.js +0 -21
  1053. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/server.mock.js +0 -88
  1054. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-connection-timeout.js +0 -36
  1055. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-request-timeout.js +0 -21
  1056. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-socket-keep-alive.js +0 -22
  1057. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js +0 -23
  1058. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +0 -8
  1059. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +0 -41
  1060. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/stream-collector/readable.mock.js +0 -21
  1061. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/timing.js +0 -4
  1062. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/write-request-body.js +0 -63
  1063. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/build-abort-error.d.ts +0 -10
  1064. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/constants.d.ts +0 -5
  1065. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/get-transformed-headers.d.ts +0 -4
  1066. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +0 -3
  1067. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http-handler.d.ts +0 -46
  1068. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-manager.d.ts +0 -24
  1069. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-pool.d.ts +0 -12
  1070. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http2-handler.d.ts +0 -63
  1071. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/readable.mock.d.ts +0 -13
  1072. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/server.mock.d.ts +0 -12
  1073. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-connection-timeout.d.ts +0 -2
  1074. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-request-timeout.d.ts +0 -6
  1075. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-socket-keep-alive.d.ts +0 -6
  1076. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-socket-timeout.d.ts +0 -2
  1077. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +0 -5
  1078. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +0 -6
  1079. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/stream-collector/readable.mock.d.ts +0 -13
  1080. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/timing.d.ts +0 -8
  1081. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/build-abort-error.d.ts +0 -10
  1082. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/constants.d.ts +0 -5
  1083. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/get-transformed-headers.d.ts +0 -4
  1084. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/index.d.ts +0 -3
  1085. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http-handler.d.ts +0 -46
  1086. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-manager.d.ts +0 -24
  1087. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-pool.d.ts +0 -12
  1088. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-handler.d.ts +0 -63
  1089. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/readable.mock.d.ts +0 -13
  1090. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/server.mock.d.ts +0 -12
  1091. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-connection-timeout.d.ts +0 -2
  1092. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-request-timeout.d.ts +0 -6
  1093. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-keep-alive.d.ts +0 -6
  1094. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-timeout.d.ts +0 -2
  1095. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/collector.d.ts +0 -5
  1096. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/index.d.ts +0 -6
  1097. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/readable.mock.d.ts +0 -13
  1098. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/timing.d.ts +0 -8
  1099. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/write-request-body.d.ts +0 -12
  1100. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/write-request-body.d.ts +0 -12
  1101. package/packages/pi-ai/node_modules/@smithy/node-http-handler/package.json +0 -68
  1102. package/packages/pi-ai/oauth.d.ts +0 -1
  1103. package/packages/pi-ai/oauth.js +0 -1
  1104. package/packages/pi-ai/src/models.generated.ts +0 -14345
  1105. /package/dist/web/standalone/.next/static/{JpjdI2QtmIkQr4xz6gbhM → 8FZqxNe9FxQDmsbRzR8tA}/_buildManifest.js +0 -0
  1106. /package/dist/web/standalone/.next/static/{JpjdI2QtmIkQr4xz6gbhM → 8FZqxNe9FxQDmsbRzR8tA}/_ssgManifest.js +0 -0
@@ -5,9 +5,9 @@
5
5
  * dependency audits, handles auto-fix retry logic, and writes
6
6
  * verification evidence JSON.
7
7
  *
8
- * Extracted from handleAgentEnd() in auto.ts. Returns a sentinel
9
- * value instead of calling return/pauseAuto directly — the caller
10
- * checks the result and handles control flow.
8
+ * Extracted from the pre-loop agent_end handler in auto.ts. Returns a
9
+ * sentinel value instead of calling return/pauseAuto directly — the
10
+ * caller checks the result and handles control flow.
11
11
  */
12
12
  import { mkdirSync, writeFileSync } from "node:fs";
13
13
  import { resolveSlicePath, resolveMilestoneFile } from "./paths.js";
@@ -24,6 +24,8 @@ import { writeVerificationJSON } from "./verification-evidence.js";
24
24
  import { logWarning } from "./workflow-logger.js";
25
25
  import { runPostExecutionChecks } from "./post-execution-checks.js";
26
26
  import { join } from "node:path";
27
+ import { resolveUokFlags } from "./uok/flags.js";
28
+ import { UokGateRunner } from "./uok/gate-runner.js";
27
29
  function isInfraVerificationFailure(stderr) {
28
30
  return /\b(ENOENT|ENOTFOUND|ETIMEDOUT|ECONNRESET|EAI_AGAIN|spawn\s+\S+\s+ENOENT|command not found)\b/i.test(stderr);
29
31
  }
@@ -43,6 +45,31 @@ function isInfraVerificationFailure(stderr) {
43
45
  */
44
46
  async function runValidateMilestonePostCheck(vctx, pauseAuto) {
45
47
  const { s, ctx, pi } = vctx;
48
+ const prefs = loadEffectiveGSDPreferences()?.preferences;
49
+ const uokFlags = resolveUokFlags(prefs);
50
+ const persistMilestoneValidationGate = async (outcome, failureClass, rationale, findings = "", milestoneId) => {
51
+ if (!uokFlags.gates || !s.currentUnit)
52
+ return;
53
+ const gateRunner = new UokGateRunner();
54
+ gateRunner.register({
55
+ id: "milestone-validation-post-check",
56
+ type: "verification",
57
+ execute: async () => ({
58
+ outcome,
59
+ failureClass,
60
+ rationale,
61
+ findings,
62
+ }),
63
+ });
64
+ await gateRunner.run("milestone-validation-post-check", {
65
+ basePath: s.basePath,
66
+ traceId: `validation-post-check:${s.currentUnit.id}`,
67
+ turnId: s.currentUnit.id,
68
+ milestoneId,
69
+ unitType: s.currentUnit.type,
70
+ unitId: s.currentUnit.id,
71
+ });
72
+ };
46
73
  if (!s.currentUnit)
47
74
  return "continue";
48
75
  const { milestone: mid } = parseUnitId(s.currentUnit.id);
@@ -55,17 +82,22 @@ async function runValidateMilestonePostCheck(vctx, pauseAuto) {
55
82
  if (!validationContent)
56
83
  return "continue";
57
84
  const verdict = extractVerdict(validationContent);
58
- if (verdict !== "needs-remediation")
85
+ if (verdict !== "needs-remediation") {
86
+ await persistMilestoneValidationGate("pass", "none", `milestone validation verdict is ${verdict}; no remediation loop risk`, "", mid);
59
87
  return "continue";
88
+ }
60
89
  const incompleteSliceCount = await countIncompleteSlices(s.basePath, mid);
61
90
  // If any non-closed slices exist, the agent successfully queued remediation
62
91
  // work — proceed normally. The state machine will execute those slices and
63
92
  // re-validate per the #3596/#3670 fix.
64
- if (incompleteSliceCount > 0)
93
+ if (incompleteSliceCount > 0) {
94
+ await persistMilestoneValidationGate("pass", "none", `remediation slices present (${incompleteSliceCount}); validation can continue`, "", mid);
65
95
  return "continue";
96
+ }
66
97
  ctx.ui.notify(`Milestone ${mid} validation returned verdict=needs-remediation but no remediation slices were added. Pausing for human review.`, "error");
67
98
  process.stderr.write(`validate-milestone: pausing — verdict=needs-remediation with no incomplete slices for ${mid}. ` +
68
99
  `The agent must call gsd_reassess_roadmap to add remediation slices before re-validation.\n`);
100
+ await persistMilestoneValidationGate("manual-attention", "manual-attention", "needs-remediation verdict without queued remediation slices", `No incomplete slices found for ${mid} while verdict=needs-remediation`, mid);
69
101
  await pauseAuto(ctx, pi);
70
102
  return "pause";
71
103
  }
@@ -122,6 +154,7 @@ export async function runPostUnitVerification(vctx, pauseAuto) {
122
154
  try {
123
155
  const effectivePrefs = loadEffectiveGSDPreferences();
124
156
  const prefs = effectivePrefs?.preferences;
157
+ const uokFlags = resolveUokFlags(prefs);
125
158
  // Read task plan verify field
126
159
  const { milestone: mid, slice: sid, task: tid } = parseUnitId(s.currentUnit.id);
127
160
  let taskPlanVerify;
@@ -153,6 +186,35 @@ export async function runPostUnitVerification(vctx, pauseAuto) {
153
186
  process.stderr.write(` [${w.severity}] ${w.name}: ${w.title}\n`);
154
187
  }
155
188
  }
189
+ if (uokFlags.gates) {
190
+ const gateRunner = new UokGateRunner();
191
+ gateRunner.register({
192
+ id: "verification-gate",
193
+ type: "verification",
194
+ execute: async () => ({
195
+ outcome: result.passed ? "pass" : "fail",
196
+ failureClass: result.runtimeErrors?.some((e) => e.blocking)
197
+ ? "execution"
198
+ : "verification",
199
+ rationale: result.passed
200
+ ? "verification checks passed"
201
+ : "verification checks failed",
202
+ findings: result.passed
203
+ ? ""
204
+ : formatFailureContext(result),
205
+ }),
206
+ });
207
+ await gateRunner.run("verification-gate", {
208
+ basePath: s.basePath,
209
+ traceId: `verification:${s.currentUnit.id}`,
210
+ turnId: s.currentUnit.id,
211
+ milestoneId: mid ?? undefined,
212
+ sliceId: sid ?? undefined,
213
+ taskId: tid ?? undefined,
214
+ unitType: s.currentUnit.type,
215
+ unitId: s.currentUnit.id,
216
+ });
217
+ }
156
218
  // Auto-fix retry preferences
157
219
  const autoFixEnabled = prefs?.verification_auto_fix !== false;
158
220
  const maxRetries = typeof prefs?.verification_max_retries === "number"
@@ -253,6 +315,42 @@ export async function runPostUnitVerification(vctx, pauseAuto) {
253
315
  : "⚠";
254
316
  process.stderr.write(`gsd-post-exec: ${checkEmoji} [${check.category}] ${check.target}: ${check.message}\n`);
255
317
  }
318
+ if (uokFlags.gates) {
319
+ const strictMode = prefs?.enhanced_verification_strict === true;
320
+ const warnEscalated = postExecResult.status === "warn" && strictMode;
321
+ const blockingFailure = postExecResult.status === "fail" || warnEscalated;
322
+ const findings = postExecResult.checks
323
+ .filter((check) => !check.passed)
324
+ .map((check) => `[${check.category}] ${check.target}: ${check.message}`)
325
+ .join("\n");
326
+ const gateRunner = new UokGateRunner();
327
+ gateRunner.register({
328
+ id: "post-execution-checks",
329
+ type: "artifact",
330
+ execute: async () => ({
331
+ outcome: blockingFailure ? "fail" : "pass",
332
+ failureClass: postExecResult.status === "fail"
333
+ ? "artifact"
334
+ : warnEscalated
335
+ ? "policy"
336
+ : "none",
337
+ rationale: blockingFailure
338
+ ? `post-execution checks ${postExecResult.status}${warnEscalated ? " (strict)" : ""}`
339
+ : "post-execution checks passed",
340
+ findings,
341
+ }),
342
+ });
343
+ await gateRunner.run("post-execution-checks", {
344
+ basePath: s.basePath,
345
+ traceId: `verification:${s.currentUnit.id}`,
346
+ turnId: s.currentUnit.id,
347
+ milestoneId: mid,
348
+ sliceId: sid,
349
+ taskId: tid,
350
+ unitType: s.currentUnit.type,
351
+ unitId: s.currentUnit.id,
352
+ });
353
+ }
256
354
  // Check for blocking failures
257
355
  if (postExecResult.status === "fail") {
258
356
  postExecBlockingFailure = true;
@@ -20,7 +20,7 @@ import { MergeConflictError, readIntegrationBranch, RUNTIME_EXCLUSION_PATHS } fr
20
20
  import { debugLog } from "./debug-logger.js";
21
21
  import { logWarning, logError } from "./workflow-logger.js";
22
22
  import { loadEffectiveGSDPreferences } from "./preferences.js";
23
- import { nativeGetCurrentBranch, nativeDetectMainBranch, nativeWorkingTreeStatus, nativeAddAllWithExclusions, nativeCommit, nativeCheckoutBranch, nativeMergeSquash, nativeConflictFiles, nativeCheckoutTheirs, nativeAddPaths, nativeRmForce, nativeBranchDelete, nativeBranchExists, nativeDiffNumstat, nativeUpdateRef, nativeIsAncestor, nativeMergeAbort, } from "./native-git-bridge.js";
23
+ import { nativeGetCurrentBranch, nativeDetectMainBranch, nativeWorkingTreeStatus, nativeAddAllWithExclusions, nativeCommit, nativeCheckoutBranch, nativeMergeSquash, nativeConflictFiles, nativeCheckoutTheirs, nativeAddPaths, nativeRmForce, nativeBranchDelete, nativeBranchForceReset, nativeBranchExists, nativeDiffNumstat, nativeUpdateRef, nativeIsAncestor, nativeMergeAbort, } from "./native-git-bridge.js";
24
24
  const gsdHome = process.env.GSD_HOME || join(homedir(), ".gsd");
25
25
  const PROJECT_PREFERENCES_FILE = "PREFERENCES.md";
26
26
  const LEGACY_PROJECT_PREFERENCES_FILE = "preferences.md";
@@ -54,6 +54,8 @@ function isSamePath(a, b) {
54
54
  return realpathSync(a) === realpathSync(b);
55
55
  }
56
56
  catch (e) {
57
+ if (e.code === "ENOENT")
58
+ return false;
57
59
  logWarning("worktree", `isSamePath failed: ${e.message}`);
58
60
  return false;
59
61
  }
@@ -790,9 +792,63 @@ export function runWorktreePostCreateHook(sourceDir, worktreeDir, hookPath) {
790
792
  }
791
793
  }
792
794
  // ─── Auto-Worktree Branch Naming ───────────────────────────────────────────
795
+ /** Returns the git branch name for a milestone worktree (`milestone/<MID>`). */
793
796
  export function autoWorktreeBranch(milestoneId) {
794
797
  return `milestone/${milestoneId}`;
795
798
  }
799
+ // ─── Branch-mode Entry ─────────────────────────────────────────────────────
800
+ /**
801
+ * Enter branch isolation mode for a milestone.
802
+ *
803
+ * Creates `milestone/<MID>` from the integration branch (if it doesn't
804
+ * exist yet) and checks out to it. No worktree directory is created — the
805
+ * project root is the working copy; only HEAD changes.
806
+ *
807
+ * Uses the same 3-tier integration-branch fallback as createAutoWorktree:
808
+ * 1. META.json recorded integration branch
809
+ * 2. git.main_branch preference
810
+ * 3. nativeDetectMainBranch (origin/HEAD auto-detection)
811
+ */
812
+ export function enterBranchModeForMilestone(basePath, milestoneId) {
813
+ const branch = autoWorktreeBranch(milestoneId);
814
+ const branchExists = nativeBranchExists(basePath, branch);
815
+ if (!branchExists) {
816
+ // Create the milestone branch from the integration branch start-point.
817
+ const integrationBranch = readIntegrationBranch(basePath, milestoneId) ?? undefined;
818
+ const gitPrefs = loadEffectiveGSDPreferences()?.preferences?.git;
819
+ // Validate main_branch preference exists in the repo before using it —
820
+ // a stale preference (e.g. "master" when repo uses "main") would cause
821
+ // nativeBranchForceReset to fail with a bad start-point reference.
822
+ const validatedPrefBranch = gitPrefs?.main_branch &&
823
+ typeof gitPrefs.main_branch === "string" &&
824
+ gitPrefs.main_branch.length > 0 &&
825
+ nativeBranchExists(basePath, gitPrefs.main_branch)
826
+ ? gitPrefs.main_branch
827
+ : undefined;
828
+ const startPoint = integrationBranch ??
829
+ validatedPrefBranch ??
830
+ nativeDetectMainBranch(basePath);
831
+ // nativeBranchForceReset creates (or resets) branch at startPoint,
832
+ // then checkout switches HEAD to it.
833
+ nativeBranchForceReset(basePath, branch, startPoint);
834
+ debugLog("auto-worktree", {
835
+ action: "enterBranchMode",
836
+ milestoneId,
837
+ branch,
838
+ startPoint,
839
+ created: true,
840
+ });
841
+ }
842
+ else {
843
+ debugLog("auto-worktree", {
844
+ action: "enterBranchMode",
845
+ milestoneId,
846
+ branch,
847
+ reused: true,
848
+ });
849
+ }
850
+ nativeCheckoutBranch(basePath, branch);
851
+ }
796
852
  // ─── Public API ────────────────────────────────────────────────────────────
797
853
  /**
798
854
  * Create a new auto-worktree for a milestone, chdir into it, and store
@@ -36,7 +36,7 @@ import { captureAvailableSkills, resetSkillTelemetry, } from "./skill-telemetry.
36
36
  import { getRtkSessionSavings } from "../shared/rtk-session-stats.js";
37
37
  import { deactivateGSD } from "../shared/gsd-phase-state.js";
38
38
  import { initMetrics, resetMetrics, getLedger, getProjectTotals, formatCost, formatTokenCount, } from "./metrics.js";
39
- import { logWarning } from "./workflow-logger.js";
39
+ import { setLogBasePath, logWarning } from "./workflow-logger.js";
40
40
  import { homedir } from "node:os";
41
41
  import { join } from "node:path";
42
42
  import { pathToFileURL } from "node:url";
@@ -45,12 +45,14 @@ import { atomicWriteSync } from "./atomic-write.js";
45
45
  import { autoCommitCurrentBranch, captureIntegrationBranch, detectWorktreeName, getCurrentBranch, getMainBranch, setActiveMilestoneId, } from "./worktree.js";
46
46
  import { GitServiceImpl } from "./git-service.js";
47
47
  import { getPriorSliceCompletionBlocker } from "./dispatch-guard.js";
48
- import { createAutoWorktree, enterAutoWorktree, teardownAutoWorktree, isInAutoWorktree, getAutoWorktreePath, mergeMilestoneToMain, autoWorktreeBranch, syncWorktreeStateBack, syncProjectRootToWorktree, checkResourcesStale, escapeStaleWorktree, } from "./auto-worktree.js";
48
+ import { createAutoWorktree, enterAutoWorktree, enterBranchModeForMilestone, teardownAutoWorktree, isInAutoWorktree, getAutoWorktreePath, mergeMilestoneToMain, autoWorktreeBranch, syncWorktreeStateBack, syncProjectRootToWorktree, checkResourcesStale, escapeStaleWorktree, } from "./auto-worktree.js";
49
49
  import { pruneQueueOrder } from "./queue-order.js";
50
+ import { startCommandPolling as _startCommandPolling, isRemoteConfigured } from "../remote-questions/manager.js";
50
51
  import { debugLog, isDebugEnabled, writeDebugSummary } from "./debug-logger.js";
51
52
  import { reconcileMergeState, } from "./auto-recovery.js";
52
53
  import { resolveDispatch, DISPATCH_RULES } from "./auto-dispatch.js";
53
54
  import { getErrorMessage } from "./error-utils.js";
55
+ import { recoverFailedMigration } from "./migrate-external.js";
54
56
  import { initRegistry, convertDispatchRules } from "./rule-registry.js";
55
57
  import { emitJournalEvent as _emitJournalEvent } from "./journal.js";
56
58
  import { updateProgressWidget as _updateProgressWidget, updateSliceProgressCache, clearSliceProgressCache, hideFooter, } from "./auto-dashboard.js";
@@ -61,10 +63,12 @@ import { clearCmuxSidebar, logCmuxEvent, syncCmuxSidebar } from "../cmux/index.j
61
63
  // ── Extracted modules ──────────────────────────────────────────────────────
62
64
  import { startUnitSupervision } from "./auto-timers.js";
63
65
  import { runPostUnitVerification } from "./auto-verification.js";
64
- import { postUnitPreVerification, postUnitPostVerification, } from "./auto-post-unit.js";
66
+ import { autoCommitUnit, postUnitPreVerification, postUnitPostVerification, } from "./auto-post-unit.js";
65
67
  import { bootstrapAutoSession, openProjectDbIfPresent } from "./auto-start.js";
66
68
  import { initHealthWidget } from "./health-widget.js";
67
- import { autoLoop, resolveAgentEnd, resolveAgentEndCancelled, _resetPendingResolve, isSessionSwitchInFlight } from "./auto-loop.js";
69
+ import { runLegacyAutoLoop, runUokKernelLoop, resolveAgentEnd, resolveAgentEndCancelled, _resetPendingResolve, isSessionSwitchInFlight } from "./auto-loop.js";
70
+ import { runAutoLoopWithUok } from "./uok/kernel.js";
71
+ import { resolveUokFlags } from "./uok/flags.js";
68
72
  import { WorktreeResolver, } from "./worktree-resolver.js";
69
73
  import { reorderForCaching } from "./prompt-ordering.js";
70
74
  // ─── Session State ─────────────────────────────────────────────────────────
@@ -140,6 +144,7 @@ export function startAutoDetached(ctx, pi, base, verboseMode, options) {
140
144
  debugLog("auto-start-failed", { error: message });
141
145
  });
142
146
  }
147
+ /** Returns true if the project is configured for `isolation:worktree` mode. */
143
148
  export function shouldUseWorktreeIsolation() {
144
149
  const prefs = loadEffectiveGSDPreferences()?.preferences?.git;
145
150
  if (prefs?.isolation === "worktree")
@@ -183,6 +188,26 @@ function deregisterSigtermHandler() {
183
188
  _deregisterSigtermHandler(s.sigtermHandler);
184
189
  s.sigtermHandler = null;
185
190
  }
191
+ /**
192
+ * Wrapper: start background command polling for the configured remote channel
193
+ * (currently Telegram only). Stores the cleanup function on the session so
194
+ * every exit path can stop the interval via stopCommandPolling().
195
+ * No-op when no remote channel is configured.
196
+ */
197
+ function startAutoCommandPolling(basePath) {
198
+ if (!isRemoteConfigured())
199
+ return;
200
+ // Clear any existing interval before starting a new one (e.g. resume path).
201
+ stopAutoCommandPolling();
202
+ s.commandPollingCleanup = _startCommandPolling(basePath);
203
+ }
204
+ /** Wrapper: stop background command polling and clear the stored cleanup. */
205
+ function stopAutoCommandPolling() {
206
+ if (s.commandPollingCleanup) {
207
+ s.commandPollingCleanup();
208
+ s.commandPollingCleanup = null;
209
+ }
210
+ }
186
211
  export function getAutoDashboardData() {
187
212
  const ledger = getLedger();
188
213
  const totals = ledger ? getProjectTotals(ledger.units) : null;
@@ -246,6 +271,14 @@ export function getActiveRunDir() {
246
271
  export function getAutoModeStartModel() {
247
272
  return s.autoModeStartModel;
248
273
  }
274
+ /**
275
+ * Update the dashboard-facing dispatched model label.
276
+ * Used when runtime recovery switches models mid-unit (e.g. provider fallback)
277
+ * so the AUTO box reflects the active model immediately.
278
+ */
279
+ export function setCurrentDispatchedModelId(model) {
280
+ s.currentDispatchedModelId = model ? `${model.provider}/${model.id}` : null;
281
+ }
249
282
  // Tool tracking — delegates to auto-tool-tracking.ts
250
283
  export function markToolStart(toolCallId, toolName) {
251
284
  _markToolStart(toolCallId, s.active, toolName);
@@ -360,10 +393,22 @@ function clearUnitTimeout() {
360
393
  }
361
394
  /** Build snapshot metric opts. */
362
395
  function buildSnapshotOpts(_unitType, _unitId) {
396
+ const prefs = loadEffectiveGSDPreferences()?.preferences;
397
+ const uokFlags = resolveUokFlags(prefs);
363
398
  return {
364
399
  ...(s.autoStartTime > 0 ? { autoSessionKey: String(s.autoStartTime) } : {}),
365
400
  promptCharCount: s.lastPromptCharCount,
366
401
  baselineCharCount: s.lastBaselineCharCount,
402
+ traceId: s.currentTraceId ?? undefined,
403
+ turnId: s.currentTurnId ?? undefined,
404
+ ...(uokFlags.gitops
405
+ ? {
406
+ gitAction: uokFlags.gitopsTurnAction,
407
+ gitPush: uokFlags.gitopsTurnPush,
408
+ gitStatus: s.lastGitActionStatus ?? undefined,
409
+ gitError: s.lastGitActionFailure ?? undefined,
410
+ }
411
+ : {}),
367
412
  ...(s.currentUnitRouting ?? {}),
368
413
  };
369
414
  }
@@ -378,6 +423,7 @@ function handleLostSessionLock(ctx, lockStatus) {
378
423
  s.paused = false;
379
424
  deactivateGSD();
380
425
  clearUnitTimeout();
426
+ stopAutoCommandPolling();
381
427
  restoreProjectRootEnv();
382
428
  restoreMilestoneLockEnv();
383
429
  deregisterSigtermHandler();
@@ -413,6 +459,7 @@ function cleanupAfterLoopExit(ctx) {
413
459
  s.active = false;
414
460
  deactivateGSD();
415
461
  clearUnitTimeout();
462
+ stopAutoCommandPolling();
416
463
  restoreProjectRootEnv();
417
464
  restoreMilestoneLockEnv();
418
465
  // Clear crash lock and release session lock so the next `/gsd next` does
@@ -457,6 +504,7 @@ export async function stopAuto(ctx, pi, reason) {
457
504
  // ── Step 1: Timers and locks ──
458
505
  try {
459
506
  clearUnitTimeout();
507
+ stopAutoCommandPolling();
460
508
  if (lockBase())
461
509
  clearLock(lockBase());
462
510
  if (lockBase())
@@ -710,6 +758,7 @@ export async function pauseAuto(ctx, _pi, _errorContext) {
710
758
  if (!s.active)
711
759
  return;
712
760
  clearUnitTimeout();
761
+ stopAutoCommandPolling();
713
762
  // Flush queued follow-up messages (#3512).
714
763
  // Late async notifications (async_job_result, gsd-auto-wrapup) can trigger
715
764
  // extra LLM turns after pause. Flush them the same way run-unit.ts does.
@@ -800,6 +849,7 @@ function buildResolverDeps() {
800
849
  teardownAutoWorktree,
801
850
  createAutoWorktree,
802
851
  enterAutoWorktree,
852
+ enterBranchModeForMilestone,
803
853
  getAutoWorktreePath,
804
854
  autoCommitCurrentBranch,
805
855
  getCurrentBranch,
@@ -884,6 +934,7 @@ function buildLoopDeps() {
884
934
  getMainBranch,
885
935
  // Unit closeout + runtime records
886
936
  closeoutUnit,
937
+ autoCommitUnit,
887
938
  recordOutcome,
888
939
  writeLock,
889
940
  captureAvailableSkills,
@@ -926,6 +977,11 @@ function buildLoopDeps() {
926
977
  emitJournalEvent: (entry) => _emitJournalEvent(s.basePath, entry),
927
978
  };
928
979
  }
980
+ /**
981
+ * Start auto-mode. Handles both fresh-start and resume paths, sets up session
982
+ * state, enters the milestone worktree or branch, and dispatches the first unit.
983
+ * No-ops if auto-mode is already active.
984
+ */
929
985
  export async function startAuto(ctx, pi, base, verboseMode, options) {
930
986
  if (s.active) {
931
987
  debugLog("startAuto", { phase: "already-active", skipping: true });
@@ -941,6 +997,12 @@ export async function startAuto(ctx, pi, base, verboseMode, options) {
941
997
  }
942
998
  // Escape stale worktree cwd from a previous milestone (#608).
943
999
  base = escapeStaleWorktree(base);
1000
+ // Heal .gsd.migrating before any branching — covers both fresh-start and
1001
+ // resume paths (#4416). The matching call in auto-start.ts covers the
1002
+ // bootstrap-only path; this call ensures the resume path is also protected.
1003
+ if (recoverFailedMigration(base)) {
1004
+ ctx.ui.notify("Recovered unfinished migration (.gsd.migrating → .gsd).", "info");
1005
+ }
944
1006
  const freshStartAssessment = interruptedAssessment
945
1007
  ?? await assessInterruptedSession(base);
946
1008
  if (freshStartAssessment.classification === "running") {
@@ -1081,6 +1143,11 @@ export async function startAuto(ctx, pi, base, verboseMode, options) {
1081
1143
  s.stepMode = requestedStepMode;
1082
1144
  s.cmdCtx = ctx;
1083
1145
  s.basePath = base;
1146
+ // Ensure the workflow-logger audit log is pinned to the project root
1147
+ // even when auto-mode is entered via a path that bypasses the
1148
+ // bootstrap/dynamic-tools ensureDbOpen() → setLogBasePath() chain
1149
+ // (e.g. /clear resume, hot-reload).
1150
+ setLogBasePath(base);
1084
1151
  s.unitDispatchCount.clear();
1085
1152
  s.unitLifetimeDispatches.clear();
1086
1153
  if (!getLedger())
@@ -1092,9 +1159,9 @@ export async function startAuto(ctx, pi, base, verboseMode, options) {
1092
1159
  const level = to === "red" ? "error" : to === "yellow" ? "warning" : "info";
1093
1160
  ctx.ui.notify(summary, level);
1094
1161
  });
1095
- // ── Auto-worktree: re-enter worktree on resume ──
1162
+ // ── Auto-worktree / branch-mode: re-enter on resume ──
1096
1163
  if (s.currentMilestoneId &&
1097
- shouldUseWorktreeIsolation() &&
1164
+ getIsolationMode() !== "none" &&
1098
1165
  s.originalBasePath &&
1099
1166
  !isInAutoWorktree(s.basePath) &&
1100
1167
  !detectWorktreeName(s.basePath) &&
@@ -1159,7 +1226,15 @@ export async function startAuto(ctx, pi, base, verboseMode, options) {
1159
1226
  writeLock(lockBase(), "resuming", s.currentMilestoneId ?? "unknown");
1160
1227
  logCmuxEvent(loadEffectiveGSDPreferences()?.preferences, s.stepMode ? "Step-mode resumed." : "Auto-mode resumed.", "progress");
1161
1228
  captureProjectRootEnv(s.originalBasePath || s.basePath);
1162
- await autoLoop(ctx, pi, s, buildLoopDeps());
1229
+ startAutoCommandPolling(s.basePath);
1230
+ await runAutoLoopWithUok({
1231
+ ctx,
1232
+ pi,
1233
+ s,
1234
+ deps: buildLoopDeps(),
1235
+ runKernelLoop: runUokKernelLoop,
1236
+ runLegacyLoop: runLegacyAutoLoop,
1237
+ });
1163
1238
  cleanupAfterLoopExit(ctx);
1164
1239
  return;
1165
1240
  }
@@ -1182,29 +1257,18 @@ export async function startAuto(ctx, pi, base, verboseMode, options) {
1182
1257
  logWarning("engine", `cmux sync failed: ${err instanceof Error ? err.message : String(err)}`, { file: "auto.ts" });
1183
1258
  }
1184
1259
  logCmuxEvent(loadEffectiveGSDPreferences()?.preferences, requestedStepMode ? "Step-mode started." : "Auto-mode started.", "progress");
1260
+ startAutoCommandPolling(s.basePath);
1185
1261
  // Dispatch the first unit
1186
- await autoLoop(ctx, pi, s, buildLoopDeps());
1262
+ await runAutoLoopWithUok({
1263
+ ctx,
1264
+ pi,
1265
+ s,
1266
+ deps: buildLoopDeps(),
1267
+ runKernelLoop: runUokKernelLoop,
1268
+ runLegacyLoop: runLegacyAutoLoop,
1269
+ });
1187
1270
  cleanupAfterLoopExit(ctx);
1188
1271
  }
1189
- // ─── Agent End Handler ────────────────────────────────────────────────────────
1190
- /**
1191
- * Deprecated thin wrapper — kept as export for backward compatibility.
1192
- * The actual agent_end processing now happens via resolveAgentEnd() in auto-loop.ts,
1193
- * which is called directly from index.ts. The autoLoop() while loop handles all
1194
- * post-unit processing (verification, hooks, dispatch) that this function used to do.
1195
- *
1196
- * If called by straggler code, it simply resolves the pending promise so the loop
1197
- * can continue.
1198
- */
1199
- export async function handleAgentEnd(ctx, pi) {
1200
- if (!s.active || !s.cmdCtx) {
1201
- // Even when inactive, resolve any pending promise so the loop is unblocked.
1202
- resolveAgentEndCancelled();
1203
- return;
1204
- }
1205
- clearUnitTimeout();
1206
- resolveAgentEnd({ messages: [] });
1207
- }
1208
1272
  // describeNextUnit is imported from auto-dashboard.ts and re-exported
1209
1273
  export { describeNextUnit } from "./auto-dashboard.js";
1210
1274
  /** Thin wrapper: delegates to auto-dashboard.ts, passing state accessors. */
@@ -1,6 +1,6 @@
1
1
  import { logWarning } from "../workflow-logger.js";
2
2
  import { checkAutoStartAfterDiscuss } from "../guided-flow.js";
3
- import { getAutoDashboardData, getAutoModeStartModel, isAutoActive, pauseAuto } from "../auto.js";
3
+ import { getAutoDashboardData, getAutoModeStartModel, isAutoActive, pauseAuto, setCurrentDispatchedModelId } from "../auto.js";
4
4
  import { getNextFallbackModel, resolveModelWithFallbacksForUnit } from "../preferences.js";
5
5
  import { pauseAutoForProviderError } from "../provider-error-pause.js";
6
6
  import { isSessionSwitchInFlight, resolveAgentEnd } from "../auto-loop.js";
@@ -106,26 +106,11 @@ export async function handleAgentEnd(pi, event, ctx) {
106
106
  const explicitRetryAfterMs = ("retryAfterMs" in lastMsg && typeof lastMsg.retryAfterMs === "number") ? lastMsg.retryAfterMs : undefined;
107
107
  // ── 1. Classify using rawErrorMsg to avoid prose false-positives ────
108
108
  const cls = classifyError(rawErrorMsg, explicitRetryAfterMs);
109
- // ── 1b. Defer to Core RetryHandler for transient errors ─────────────
110
- // The Core RetryHandler (agent-session.ts) processes retryable errors
111
- // AFTER this extension handler, in the same _processAgentEvent() call.
112
- // For transient errors (overloaded, rate limit, server), the Core will
113
- // retry in-context same session, same conversation — which is strictly
114
- // better than our Layer 2 pause+resume (which creates a new session).
115
- //
116
- // If we react here AND the Core also retries, we race: pauseAuto tears
117
- // down the session while agent.continue() starts a new turn.
118
- //
119
- // Solution: Do nothing for transient errors. The Core RetryHandler
120
- // runs next in _processAgentEvent and will either:
121
- // a) Retry successfully → new agent_end (success) → we see it next time
122
- // b) Exhaust retries → the agent stays idle, autoLoop's unit timeout
123
- // or stuck detection handles it
124
- //
125
- // We do NOT call resolveAgentEnd here — that would unblock autoLoop
126
- // prematurely while the Core is still retrying in the same session.
127
- // We do NOT call pauseAuto — that would tear down the session.
128
- if (isTransient(cls)) {
109
+ // ── 1b. Defer to Core RetryHandler for most transient errors ────────
110
+ // Core retries transient failures in-session after this handler.
111
+ // Keep that behavior for non-rate-limit classes to avoid pause/retry races,
112
+ // but let rate-limit continue into model fallback logic below (#4373).
113
+ if (isTransient(cls) && cls.kind !== "rate-limit") {
129
114
  return;
130
115
  }
131
116
  // Cap rate-limit backoff for CLI-style providers (openai-codex, google-gemini-cli)
@@ -177,6 +162,7 @@ export async function handleAgentEnd(pi, event, ctx) {
177
162
  if (modelToSet) {
178
163
  const ok = await pi.setModel(modelToSet, { persist: false });
179
164
  if (ok) {
165
+ setCurrentDispatchedModelId({ provider: modelToSet.provider, id: modelToSet.id });
180
166
  ctx.ui.notify(`Model error${errorDetail}. Switched to fallback: ${nextModelId} and resuming.`, "warning");
181
167
  pi.sendMessage({ customType: "gsd-auto-timeout-recovery", content: "Continue execution.", display: false }, { triggerTurn: true });
182
168
  return;
@@ -193,6 +179,7 @@ export async function handleAgentEnd(pi, event, ctx) {
193
179
  if (startModel) {
194
180
  const ok = await pi.setModel(startModel, { persist: false });
195
181
  if (ok) {
182
+ setCurrentDispatchedModelId({ provider: startModel.provider, id: startModel.id });
196
183
  retryState.networkRetryCount = 0;
197
184
  retryState.currentRetryModelId = undefined;
198
185
  ctx.ui.notify(`Model error${errorDetail}. Restored session model: ${sessionModel.provider}/${sessionModel.id} and resuming.`, "warning");
@@ -421,10 +421,14 @@ export function registerDbTools(pi) {
421
421
  depends: Type.Array(Type.String(), { description: "Slice dependency IDs" }),
422
422
  demo: Type.String({ description: "Roadmap demo text / After this" }),
423
423
  goal: Type.String({ description: "Slice goal" }),
424
- successCriteria: Type.String({ description: "Slice success criteria block" }),
425
- proofLevel: Type.String({ description: "Slice proof level" }),
426
- integrationClosure: Type.String({ description: "Slice integration closure" }),
427
- observabilityImpact: Type.String({ description: "Slice observability impact" }),
424
+ // ADR-011: heavy planning fields are optional for sketch slices; required for full slices.
425
+ successCriteria: Type.Optional(Type.String({ description: "Slice success criteria block (required for full slices; omit for sketches)" })),
426
+ proofLevel: Type.Optional(Type.String({ description: "Slice proof level (required for full slices; omit for sketches)" })),
427
+ integrationClosure: Type.Optional(Type.String({ description: "Slice integration closure (required for full slices; omit for sketches)" })),
428
+ observabilityImpact: Type.Optional(Type.String({ description: "Slice observability impact (required for full slices; omit for sketches)" })),
429
+ // ADR-011 sketch-then-refine fields.
430
+ isSketch: Type.Optional(Type.Boolean({ description: "ADR-011: true marks this slice as a sketch awaiting refine-slice expansion" })),
431
+ sketchScope: Type.Optional(Type.String({ description: "ADR-011: 2–3 sentence scope boundary, required when isSketch=true" })),
428
432
  }), { description: "Planned slices for the milestone" }),
429
433
  // ── Enrichment metadata (optional — defaults to empty) ────────────
430
434
  status: Type.Optional(Type.String({ description: "Milestone status (defaults to active)" })),
@@ -589,6 +593,20 @@ export function registerDbTools(pi) {
589
593
  keyFiles: Type.Optional(Type.Array(Type.String(), { description: "List of key files created or modified" })),
590
594
  keyDecisions: Type.Optional(Type.Array(Type.String(), { description: "List of key decisions made during this task" })),
591
595
  blockerDiscovered: Type.Optional(Type.Boolean({ description: "Whether a plan-invalidating blocker was discovered" })),
596
+ // ADR-011 Phase 2: mid-execution escalation — agent asks the user to resolve an ambiguity.
597
+ escalation: Type.Optional(Type.Object({
598
+ question: Type.String({ description: "The question the user needs to answer — one clear sentence." }),
599
+ options: Type.Array(Type.Object({
600
+ id: Type.String({ description: "Short id (e.g. 'A', 'B') used by /gsd escalate resolve." }),
601
+ label: Type.String({ description: "One-line label." }),
602
+ tradeoffs: Type.String({ description: "1-2 sentences on the tradeoffs of this option." }),
603
+ }), { minItems: 2, maxItems: 4, description: "2–4 options the user can choose between." }),
604
+ recommendation: Type.String({ description: "Option id the executor recommends." }),
605
+ recommendationRationale: Type.String({ description: "Why the recommendation — 1–2 sentences." }),
606
+ continueWithDefault: Type.Boolean({
607
+ description: "When true, loop continues (artifact logged for later review). When false, auto-mode pauses until the user resolves via /gsd escalate resolve.",
608
+ }),
609
+ }, { description: "ADR-011 Phase 2: optional escalation payload. Only honored when phases.mid_execution_escalation is true." })),
592
610
  verificationEvidence: Type.Optional(Type.Array(Type.Union([
593
611
  Type.Object({
594
612
  command: Type.String({ description: "Verification command that was run" }),
@@ -1,5 +1,6 @@
1
1
  import { getAutoDashboardData, startAuto } from "../auto.js";
2
2
  import { resetTransientRetryState } from "./agent-end-recovery.js";
3
+ import { resetSessionTimeoutState } from "../auto/phases.js";
3
4
  const defaultDeps = {
4
5
  getSnapshot: () => getAutoDashboardData(),
5
6
  startAuto,
@@ -14,10 +15,11 @@ export async function resumeAutoAfterProviderDelay(pi, ctx, deps = defaultDeps)
14
15
  ctx.ui.notify("Provider error recovery delay elapsed, but no paused auto-mode base path was available. Leaving auto-mode paused.", "warning");
15
16
  return "missing-base";
16
17
  }
17
- // Reset the transient retry counter before restarting — without this,
18
- // consecutiveTransientCount accumulates across pause/resume cycles and
19
- // permanently locks out auto-resume after MAX_TRANSIENT_AUTO_RESUMES errors.
18
+ // Reset retry counters before restarting — without this, counters
19
+ // accumulate across pause/resume cycles and permanently lock out
20
+ // auto-resume after their respective MAX thresholds.
20
21
  resetTransientRetryState();
22
+ resetSessionTimeoutState();
21
23
  await deps.startAuto(ctx, pi, snapshot.basePath, false, { step: snapshot.stepMode });
22
24
  return "resumed";
23
25
  }