gsd-pi 2.74.0-dev.703eabc → 2.74.0-dev.ffbcc03

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 (65) hide show
  1. package/dist/resources/extensions/gsd/auto-recovery.js +24 -10
  2. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +16 -5
  3. package/dist/resources/extensions/gsd/cache.js +16 -5
  4. package/dist/resources/extensions/gsd/guided-flow.js +1 -1
  5. package/dist/resources/extensions/gsd/safety/evidence-collector.js +15 -30
  6. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  7. package/dist/web/standalone/.next/BUILD_ID +1 -1
  8. package/dist/web/standalone/.next/app-path-routes-manifest.json +14 -14
  9. package/dist/web/standalone/.next/build-manifest.json +2 -2
  10. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  11. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  12. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  13. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  15. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  16. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  17. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  18. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  19. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  20. package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
  21. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  22. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  23. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  24. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  25. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  26. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  27. package/dist/web/standalone/.next/server/app/index.html +1 -1
  28. package/dist/web/standalone/.next/server/app/index.rsc +1 -1
  29. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  30. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  31. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  32. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  33. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  34. package/dist/web/standalone/.next/server/app-paths-manifest.json +14 -14
  35. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  36. package/dist/web/standalone/.next/server/middleware-manifest.json +5 -5
  37. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  38. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  39. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  40. package/package.json +1 -1
  41. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  42. package/packages/mcp-server/dist/workflow-tools.js +88 -6
  43. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  44. package/packages/mcp-server/src/workflow-tools.ts +95 -10
  45. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  46. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +8 -0
  47. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  48. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +17 -0
  49. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  50. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +1 -0
  51. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  52. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +17 -0
  53. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  54. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +17 -0
  55. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +19 -0
  56. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  57. package/src/resources/extensions/gsd/auto-recovery.ts +29 -9
  58. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +16 -5
  59. package/src/resources/extensions/gsd/cache.ts +16 -5
  60. package/src/resources/extensions/gsd/guided-flow.ts +1 -1
  61. package/src/resources/extensions/gsd/safety/evidence-collector.ts +15 -31
  62. package/src/resources/extensions/gsd/tests/artifacts-table-preserved-on-cache-invalidate.test.ts +177 -0
  63. package/src/resources/extensions/gsd/tests/auto-retry-mcp-churn-fixes.test.ts +272 -0
  64. /package/dist/web/standalone/.next/static/{3U-oZ5FT59BM7sm2GInic → kn6xzWKYnogsxp2b6RpDD}/_buildManifest.js +0 -0
  65. /package/dist/web/standalone/.next/static/{3U-oZ5FT59BM7sm2GInic → kn6xzWKYnogsxp2b6RpDD}/_ssgManifest.js +0 -0
@@ -427,6 +427,23 @@ export class ToolExecutionComponent extends Container {
427
427
  this.maybeConvertImagesForKitty();
428
428
  }
429
429
 
430
+ /**
431
+ * Mark a tool call as historical when replaying from session context and
432
+ * no matching tool result is available. Happens after compaction squashes
433
+ * tool_result messages out of history — the tool call block survives but
434
+ * the result is gone. Without this, the component stays in "Running" state
435
+ * forever even though the tool completed long ago.
436
+ */
437
+ markHistoricalNoResult(): void {
438
+ if (this.result) return; // real result already set, nothing to do
439
+ this.isPartial = false;
440
+ this.result = {
441
+ content: [],
442
+ isError: false,
443
+ };
444
+ this.updateDisplay();
445
+ }
446
+
430
447
  /**
431
448
  * Finalize a pending tool call as failed/interrupted while preserving any streamed partial output.
432
449
  */
@@ -1827,6 +1827,8 @@ export class InteractiveMode {
1827
1827
  this.showError(message);
1828
1828
  } else if (type === "warning") {
1829
1829
  this.showWarning(message);
1830
+ } else if (type === "success") {
1831
+ this.showSuccess(message);
1830
1832
  } else {
1831
1833
  this.showStatus(message, { append: true });
1832
1834
  }
@@ -2339,6 +2341,12 @@ export class InteractiveMode {
2339
2341
  }
2340
2342
  }
2341
2343
 
2344
+ // Any pendingTools entries left over after replay are historical tool
2345
+ // calls whose results were squashed out of session context (commonly by
2346
+ // compaction). Mark them finished so the frame stops showing "Running".
2347
+ for (const component of this.pendingTools.values()) {
2348
+ component.markHistoricalNoResult();
2349
+ }
2342
2350
  this.pendingTools.clear();
2343
2351
  this.trimChatHistory();
2344
2352
  this.ui.requestRender();
@@ -2737,6 +2745,17 @@ export class InteractiveMode {
2737
2745
  this.ui.requestRender();
2738
2746
  }
2739
2747
 
2748
+ showSuccess(successMessage: string): void {
2749
+ this.chatContainer.addChild(new Spacer(1));
2750
+ this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("success", text)));
2751
+ this.chatContainer.addChild(
2752
+ new Text(theme.fg("success", successMessage), 1, 0),
2753
+ );
2754
+ this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("success", text)));
2755
+ this.chatContainer.addChild(new Spacer(1));
2756
+ this.ui.requestRender();
2757
+ }
2758
+
2740
2759
  showTip(message: string): void {
2741
2760
  this.chatContainer.addChild(new Spacer(1));
2742
2761
  this.chatContainer.addChild(new Text(theme.fg("dim", `💡 ${message}`), 1, 0));