gsd-pi 2.82.0-dev.3709f22a5 → 2.82.0-dev.57fd453e4

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 (183) hide show
  1. package/README.md +2 -2
  2. package/dist/resources/.managed-resources-content-hash +1 -1
  3. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +1 -1
  4. package/dist/resources/extensions/gsd/auto/loop.js +14 -1
  5. package/dist/resources/extensions/gsd/auto/phases.js +53 -29
  6. package/dist/resources/extensions/gsd/auto/session.js +4 -0
  7. package/dist/resources/extensions/gsd/auto/workflow-kernel.js +3 -0
  8. package/dist/resources/extensions/gsd/auto-direct-dispatch.js +1 -0
  9. package/dist/resources/extensions/gsd/auto-dispatch.js +12 -18
  10. package/dist/resources/extensions/gsd/auto-post-unit.js +13 -6
  11. package/dist/resources/extensions/gsd/auto-recovery.js +40 -13
  12. package/dist/resources/extensions/gsd/auto-start.js +3 -3
  13. package/dist/resources/extensions/gsd/auto-verification.js +17 -4
  14. package/dist/resources/extensions/gsd/auto-worktree.js +65 -9
  15. package/dist/resources/extensions/gsd/auto.js +14 -8
  16. package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +6 -1
  17. package/dist/resources/extensions/gsd/bootstrap/db-tools.js +1 -1
  18. package/dist/resources/extensions/gsd/bootstrap/write-gate.js +1 -1
  19. package/dist/resources/extensions/gsd/commands-prefs-wizard.js +7 -2
  20. package/dist/resources/extensions/gsd/crash-recovery.js +16 -4
  21. package/dist/resources/extensions/gsd/db/milestone-leases.js +24 -0
  22. package/dist/resources/extensions/gsd/forensics.js +3 -3
  23. package/dist/resources/extensions/gsd/git-service.js +6 -2
  24. package/dist/resources/extensions/gsd/gsd-db.js +20 -6
  25. package/dist/resources/extensions/gsd/guided-flow-queue.js +4 -3
  26. package/dist/resources/extensions/gsd/guided-flow.js +8 -5
  27. package/dist/resources/extensions/gsd/markdown-renderer.js +10 -8
  28. package/dist/resources/extensions/gsd/paths.js +4 -0
  29. package/dist/resources/extensions/gsd/queue-reorder-ui.js +30 -13
  30. package/dist/resources/extensions/gsd/state.js +1 -1
  31. package/dist/resources/extensions/gsd/status-guards.js +7 -0
  32. package/dist/resources/extensions/gsd/templates/plan.md +1 -0
  33. package/dist/resources/extensions/gsd/templates/task-plan.md +6 -0
  34. package/dist/resources/extensions/gsd/tools/plan-slice.js +3 -5
  35. package/dist/resources/extensions/gsd/workflow-mcp.js +17 -1
  36. package/dist/resources/extensions/gsd/worktree-manager.js +1 -1
  37. package/dist/resources/extensions/ttsr/ttsr-manager.js +3 -1
  38. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  39. package/dist/web/standalone/.next/BUILD_ID +1 -1
  40. package/dist/web/standalone/.next/app-path-routes-manifest.json +14 -14
  41. package/dist/web/standalone/.next/build-manifest.json +3 -3
  42. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  43. package/dist/web/standalone/.next/react-loadable-manifest.json +3 -3
  44. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  45. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  46. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  47. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  48. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  49. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  50. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  51. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  52. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  53. package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
  54. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  55. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  56. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  57. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  58. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  59. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  60. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  61. package/dist/web/standalone/.next/server/app/index.html +1 -1
  62. package/dist/web/standalone/.next/server/app/index.rsc +1 -1
  63. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  64. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  65. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  66. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  67. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  68. package/dist/web/standalone/.next/server/app-paths-manifest.json +14 -14
  69. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  70. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  71. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  72. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  73. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  74. package/dist/web/standalone/.next/static/chunks/8359.65b24fac92188a6b.js +10 -0
  75. package/dist/web/standalone/.next/static/chunks/9441.ff70bb53f6835771.js +1 -0
  76. package/dist/web/standalone/.next/static/chunks/{webpack-9a4db269f9ed63ad.js → webpack-855d616060cb6e59.js} +1 -1
  77. package/package.json +1 -1
  78. package/packages/pi-ai/dist/providers/google-gemini-cli.d.ts.map +1 -1
  79. package/packages/pi-ai/dist/providers/google-gemini-cli.js +5 -0
  80. package/packages/pi-ai/dist/providers/google-gemini-cli.js.map +1 -1
  81. package/packages/pi-ai/dist/providers/google-gemini-cli.test.d.ts +2 -0
  82. package/packages/pi-ai/dist/providers/google-gemini-cli.test.d.ts.map +1 -0
  83. package/packages/pi-ai/dist/providers/google-gemini-cli.test.js +41 -0
  84. package/packages/pi-ai/dist/providers/google-gemini-cli.test.js.map +1 -0
  85. package/packages/pi-ai/src/providers/google-gemini-cli.test.ts +49 -0
  86. package/packages/pi-ai/src/providers/google-gemini-cli.ts +7 -0
  87. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  88. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +44 -3
  89. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -1
  90. package/packages/pi-coding-agent/dist/core/sdk.js +1 -1
  91. package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
  92. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  93. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +71 -97
  94. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  95. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.js +12 -0
  96. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.js.map +1 -1
  97. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  98. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +19 -8
  99. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  100. package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +53 -3
  101. package/packages/pi-coding-agent/src/core/sdk.ts +1 -1
  102. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +75 -102
  103. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode-ordering.test.ts +14 -0
  104. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +23 -8
  105. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  106. package/packages/pi-tui/dist/__tests__/terminal.test.d.ts +2 -0
  107. package/packages/pi-tui/dist/__tests__/terminal.test.d.ts.map +1 -0
  108. package/packages/pi-tui/dist/__tests__/terminal.test.js +103 -0
  109. package/packages/pi-tui/dist/__tests__/terminal.test.js.map +1 -0
  110. package/packages/pi-tui/dist/terminal.d.ts +2 -0
  111. package/packages/pi-tui/dist/terminal.d.ts.map +1 -1
  112. package/packages/pi-tui/dist/terminal.js +12 -0
  113. package/packages/pi-tui/dist/terminal.js.map +1 -1
  114. package/packages/pi-tui/src/__tests__/terminal.test.ts +121 -0
  115. package/packages/pi-tui/src/terminal.ts +11 -0
  116. package/packages/pi-tui/tsconfig.tsbuildinfo +1 -1
  117. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +1 -1
  118. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +9 -0
  119. package/src/resources/extensions/gsd/auto/loop.ts +14 -1
  120. package/src/resources/extensions/gsd/auto/phases.ts +60 -36
  121. package/src/resources/extensions/gsd/auto/session.ts +4 -0
  122. package/src/resources/extensions/gsd/auto/workflow-kernel.ts +5 -1
  123. package/src/resources/extensions/gsd/auto-direct-dispatch.ts +1 -0
  124. package/src/resources/extensions/gsd/auto-dispatch.ts +12 -18
  125. package/src/resources/extensions/gsd/auto-post-unit.ts +14 -6
  126. package/src/resources/extensions/gsd/auto-recovery.ts +45 -11
  127. package/src/resources/extensions/gsd/auto-start.ts +2 -3
  128. package/src/resources/extensions/gsd/auto-verification.ts +22 -2
  129. package/src/resources/extensions/gsd/auto-worktree.ts +74 -9
  130. package/src/resources/extensions/gsd/auto.ts +13 -8
  131. package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +9 -1
  132. package/src/resources/extensions/gsd/bootstrap/db-tools.ts +1 -1
  133. package/src/resources/extensions/gsd/bootstrap/write-gate.ts +1 -1
  134. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +8 -3
  135. package/src/resources/extensions/gsd/crash-recovery.ts +16 -2
  136. package/src/resources/extensions/gsd/db/milestone-leases.ts +26 -0
  137. package/src/resources/extensions/gsd/forensics.ts +3 -3
  138. package/src/resources/extensions/gsd/git-service.ts +6 -3
  139. package/src/resources/extensions/gsd/gsd-db.ts +18 -6
  140. package/src/resources/extensions/gsd/guided-flow-queue.ts +4 -3
  141. package/src/resources/extensions/gsd/guided-flow.ts +8 -5
  142. package/src/resources/extensions/gsd/markdown-renderer.ts +10 -8
  143. package/src/resources/extensions/gsd/paths.ts +5 -0
  144. package/src/resources/extensions/gsd/queue-reorder-ui.ts +31 -13
  145. package/src/resources/extensions/gsd/state.ts +1 -1
  146. package/src/resources/extensions/gsd/status-guards.ts +8 -0
  147. package/src/resources/extensions/gsd/templates/plan.md +1 -0
  148. package/src/resources/extensions/gsd/templates/task-plan.md +6 -0
  149. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +2 -0
  150. package/src/resources/extensions/gsd/tests/auto-paused-ui-cleanup.test.ts +139 -1
  151. package/src/resources/extensions/gsd/tests/auto-post-unit-step-message.test.ts +6 -5
  152. package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +76 -5
  153. package/src/resources/extensions/gsd/tests/checkout-branch-stash-guard.test.ts +87 -0
  154. package/src/resources/extensions/gsd/tests/crash-recovery-via-db.test.ts +43 -0
  155. package/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts +2 -0
  156. package/src/resources/extensions/gsd/tests/dispatch-complete-milestone-guard.test.ts +27 -0
  157. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +11 -0
  158. package/src/resources/extensions/gsd/tests/gsdroot-worktree-detection.test.ts +5 -2
  159. package/src/resources/extensions/gsd/tests/integration/git-service.test.ts +9 -0
  160. package/src/resources/extensions/gsd/tests/journal-integration.test.ts +46 -0
  161. package/src/resources/extensions/gsd/tests/merge-db-cycle.test.ts +179 -0
  162. package/src/resources/extensions/gsd/tests/pipeline-variant-dispatch.test.ts +2 -1
  163. package/src/resources/extensions/gsd/tests/plan-slice.test.ts +26 -1
  164. package/src/resources/extensions/gsd/tests/post-unit-state-rebuild.test.ts +84 -0
  165. package/src/resources/extensions/gsd/tests/prefs-wizard-coverage.test.ts +59 -0
  166. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +18 -1
  167. package/src/resources/extensions/gsd/tests/quality-gates.test.ts +6 -0
  168. package/src/resources/extensions/gsd/tests/queue-reorder-ui.test.ts +54 -0
  169. package/src/resources/extensions/gsd/tests/remediation-completion-guard.test.ts +43 -0
  170. package/src/resources/extensions/gsd/tests/run-uat-replay-cap.test.ts +2 -3
  171. package/src/resources/extensions/gsd/tests/status-guards.test.ts +13 -1
  172. package/src/resources/extensions/gsd/tests/unit-context-manifest.test.ts +17 -0
  173. package/src/resources/extensions/gsd/tests/validate-milestone-stuck-guard.test.ts +29 -2
  174. package/src/resources/extensions/gsd/tests/workflow-kernel.test.ts +7 -0
  175. package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +18 -0
  176. package/src/resources/extensions/gsd/tools/plan-slice.ts +3 -4
  177. package/src/resources/extensions/gsd/workflow-mcp.ts +18 -1
  178. package/src/resources/extensions/gsd/worktree-manager.ts +1 -1
  179. package/src/resources/extensions/ttsr/ttsr-manager.ts +5 -1
  180. package/dist/web/standalone/.next/static/chunks/8359.7eb3bb8f8ecf4c01.js +0 -10
  181. package/dist/web/standalone/.next/static/chunks/9441.1081da1125d1764f.js +0 -1
  182. /package/dist/web/standalone/.next/static/{kkGf3_VaPFkiDNV_D7Dtl → ky6ieNHfZXB_oHPklwTJb}/_buildManifest.js +0 -0
  183. /package/dist/web/standalone/.next/static/{kkGf3_VaPFkiDNV_D7Dtl → ky6ieNHfZXB_oHPklwTJb}/_ssgManifest.js +0 -0
@@ -1,3 +1,5 @@
1
+ // Project/App: GSD-2
2
+ // File Purpose: Regression tests for streamed interactive chat ordering.
1
3
  import assert from "node:assert/strict";
2
4
  import { test } from "node:test";
3
5
  import { handleAgentEvent } from "../modes/interactive/controllers/chat-controller.js";
@@ -91,9 +93,7 @@ function createHost() {
91
93
  };
92
94
  return host;
93
95
  }
94
- test("chat-controller renders content blocks in content[] index order (tool-first stream)", async () => {
95
- // ToolExecutionComponent uses the global theme singleton.
96
- // Install a minimal no-op theme implementation for this unit test.
96
+ function installTheme() {
97
97
  globalThis[Symbol.for("@gsd/pi-coding-agent:theme")] = {
98
98
  fg: (_key, text) => text,
99
99
  bg: (_key, text) => text,
@@ -101,6 +101,11 @@ test("chat-controller renders content blocks in content[] index order (tool-firs
101
101
  italic: (text) => text,
102
102
  truncate: (text) => text,
103
103
  };
104
+ }
105
+ test("chat-controller renders content blocks in content[] index order (tool-first stream)", async () => {
106
+ // ToolExecutionComponent uses the global theme singleton.
107
+ // Install a minimal no-op theme implementation for this unit test.
108
+ installTheme();
104
109
  const host = createHost();
105
110
  const toolId = "mcp-tool-1";
106
111
  const toolCall = {
@@ -147,6 +152,42 @@ test("chat-controller renders content blocks in content[] index order (tool-firs
147
152
  assert.equal(host.chatContainer.children[0]?.constructor?.name, "ToolExecutionComponent");
148
153
  assert.equal(host.chatContainer.children[1]?.constructor?.name, "AssistantMessageComponent");
149
154
  });
155
+ test("chat-controller skips empty GPT reasoning blocks before tool-only turns", async () => {
156
+ installTheme();
157
+ const host = createHost();
158
+ host.getMarkdownThemeWithSettings = () => ({});
159
+ const toolId = "gpt-tool-1";
160
+ const toolCall = {
161
+ type: "toolCall",
162
+ id: toolId,
163
+ name: "read",
164
+ arguments: { filePath: "todo.js" },
165
+ };
166
+ const content = [
167
+ { type: "thinking", thinking: "", thinkingSignature: "encrypted" },
168
+ toolCall,
169
+ ];
170
+ await handleAgentEvent(host, { type: "message_start", message: makeAssistant([]) });
171
+ await handleAgentEvent(host, {
172
+ type: "message_update",
173
+ message: makeAssistant(content),
174
+ assistantMessageEvent: {
175
+ type: "toolcall_end",
176
+ contentIndex: 1,
177
+ toolCall: {
178
+ ...toolCall,
179
+ externalResult: {
180
+ content: [{ type: "text", text: "todo contents" }],
181
+ details: {},
182
+ isError: false,
183
+ },
184
+ },
185
+ partial: makeAssistant(content),
186
+ },
187
+ });
188
+ assert.equal(host.chatContainer.children.length, 1, "empty reasoning should not create a blank assistant block");
189
+ assert.equal(host.chatContainer.children[0]?.constructor?.name, "ToolExecutionComponent");
190
+ });
150
191
  test("chat-controller renders serverToolUse before trailing text matching content[] index order", async () => {
151
192
  globalThis[Symbol.for("@gsd/pi-coding-agent:theme")] = {
152
193
  fg: (_key, text) => text,