@earendil-works/pi-coding-agent 0.86.0 → 0.86.1

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 (51) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +1 -0
  3. package/dist/bundle/chunks/{chunk-7YM6BE7Y.js → chunk-CMRUVXTE.js} +23 -22
  4. package/dist/bundle/chunks/{chunk-7IOYH2SY.js → chunk-HTEQD2HM.js} +1 -1
  5. package/dist/bundle/chunks/meta.js +2 -0
  6. package/dist/bundle/chunks/{openai-completions-KQPOPEVM.js → openai-completions-CYGM3XXP.js} +1 -1
  7. package/dist/bundle/chunks/{virtual-modules-XW5APVUE.js → virtual-modules-MGTKWDID.js} +1 -1
  8. package/dist/bundle/cli-runtime.js +3 -0
  9. package/dist/bundle/cli.js +4 -2
  10. package/dist/bundle/index.js +1 -1
  11. package/dist/bundle/rpc-entry.js +1 -1
  12. package/dist/cli/args.d.ts.map +1 -1
  13. package/dist/cli/args.js +1 -0
  14. package/dist/cli/args.js.map +1 -1
  15. package/dist/core/model-resolver.d.ts.map +1 -1
  16. package/dist/core/model-resolver.js +1 -0
  17. package/dist/core/model-resolver.js.map +1 -1
  18. package/dist/modes/interactive/bug-report.d.ts +2 -0
  19. package/dist/modes/interactive/bug-report.d.ts.map +1 -1
  20. package/dist/modes/interactive/bug-report.js +2 -5
  21. package/dist/modes/interactive/bug-report.js.map +1 -1
  22. package/dist/modes/interactive/components/extension-editor.d.ts +4 -1
  23. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  24. package/dist/modes/interactive/components/extension-editor.js +7 -2
  25. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  26. package/dist/modes/interactive/interactive-mode.d.ts +2 -1
  27. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  28. package/dist/modes/interactive/interactive-mode.js +10 -3
  29. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  30. package/dist/utils/clipboard-image.d.ts.map +1 -1
  31. package/dist/utils/clipboard-image.js +1 -12
  32. package/dist/utils/clipboard-image.js.map +1 -1
  33. package/dist/utils/clipboard.d.ts.map +1 -1
  34. package/dist/utils/clipboard.js +74 -20
  35. package/dist/utils/clipboard.js.map +1 -1
  36. package/dist/utils/wsl.d.ts +3 -0
  37. package/dist/utils/wsl.d.ts.map +1 -0
  38. package/dist/utils/wsl.js +15 -0
  39. package/dist/utils/wsl.js.map +1 -0
  40. package/docs/providers.md +8 -0
  41. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  42. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  43. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  44. package/examples/extensions/gondolin/package-lock.json +2 -2
  45. package/examples/extensions/gondolin/package.json +1 -1
  46. package/examples/extensions/sandbox/package-lock.json +2 -2
  47. package/examples/extensions/sandbox/package.json +1 -1
  48. package/examples/extensions/with-deps/package-lock.json +2 -2
  49. package/examples/extensions/with-deps/package.json +1 -1
  50. package/npm-shrinkwrap.json +20 -20
  51. package/package.json +8 -8
@@ -6,6 +6,7 @@ import * as crypto from "node:crypto";
6
6
  import * as fs from "node:fs";
7
7
  import * as os from "node:os";
8
8
  import * as path from "node:path";
9
+ import { isRetryableAssistantError, } from "@earendil-works/pi-ai/compat";
9
10
  import * as TuiLayouts from "@earendil-works/pi-tui";
10
11
  import { CombinedAutocompleteProvider, Container, fuzzyFilter, getCapabilities, hyperlink, Markdown, matchesKey, Spacer, setCapabilityOverrides, setKeybindings, Text, TruncatedText, TuiAltScreen, TuiMainScreen, visibleWidth, } from "@earendil-works/pi-tui";
11
12
  import chalk from "chalk";
@@ -1571,6 +1572,13 @@ export class InteractiveMode {
1571
1572
  this.chatContainer.addChild(new Text(theme.fg("muted", `If this looks like a ${APP_NAME} bug, /bug sends a report to the developers.`), this.outputPad, 0));
1572
1573
  this.ui.requestRender();
1573
1574
  }
1575
+ maybeSuggestBugReport(message) {
1576
+ if (message.stopReason !== "error" || isRetryableAssistantError(message))
1577
+ return;
1578
+ if (/\b(?:abort(?:ed)?|cancel(?:l?ed)?)\b/i.test(message.errorMessage ?? ""))
1579
+ return;
1580
+ this.suggestBugReport();
1581
+ }
1574
1582
  renderCurrentSessionState() {
1575
1583
  this.loadedResourcesContainer.clear();
1576
1584
  this.chatContainer.clear();
@@ -2724,8 +2732,7 @@ export class InteractiveMode {
2724
2732
  });
2725
2733
  }
2726
2734
  this.pendingTools.clear();
2727
- if (this.streamingMessage.stopReason === "error")
2728
- this.suggestBugReport();
2735
+ this.maybeSuggestBugReport(this.streamingMessage);
2729
2736
  }
2730
2737
  else {
2731
2738
  // Args are now complete - trigger diff computation for edit tools
@@ -2873,7 +2880,6 @@ export class InteractiveMode {
2873
2880
  // Show error only on final failure (success shows normal response)
2874
2881
  if (!event.success) {
2875
2882
  this.showError(`Retry failed after ${event.attempt} attempts: ${event.finalError || "Unknown error"}`);
2876
- this.suggestBugReport();
2877
2883
  }
2878
2884
  this.ui.requestRender();
2879
2885
  break;
@@ -5258,6 +5264,7 @@ export class InteractiveMode {
5258
5264
  ui: this.ui,
5259
5265
  editorContainer: this.editorContainer,
5260
5266
  editor: this.editor,
5267
+ keybindings: this.keybindings,
5261
5268
  showStatus: (message) => this.showStatus(message),
5262
5269
  showError: (message) => this.showError(message),
5263
5270
  }, hint);