@ouhuang/pi-coding-agent 0.65.1 → 0.65.2

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 (44) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +1 -1
  3. package/dist/core/agent-session-runtime.d.ts +2 -2
  4. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  5. package/dist/core/agent-session-runtime.js +8 -4
  6. package/dist/core/agent-session-runtime.js.map +1 -1
  7. package/dist/core/bash-executor.d.ts.map +1 -1
  8. package/dist/core/bash-executor.js +19 -7
  9. package/dist/core/bash-executor.js.map +1 -1
  10. package/dist/core/package-manager.d.ts.map +1 -1
  11. package/dist/core/package-manager.js +2 -8
  12. package/dist/core/package-manager.js.map +1 -1
  13. package/dist/core/resource-loader.d.ts.map +1 -1
  14. package/dist/core/resource-loader.js +4 -3
  15. package/dist/core/resource-loader.js.map +1 -1
  16. package/dist/core/session-cwd.d.ts +19 -0
  17. package/dist/core/session-cwd.d.ts.map +1 -0
  18. package/dist/core/session-cwd.js +38 -0
  19. package/dist/core/session-cwd.js.map +1 -0
  20. package/dist/core/session-manager.d.ts +2 -1
  21. package/dist/core/session-manager.d.ts.map +1 -1
  22. package/dist/core/session-manager.js +3 -2
  23. package/dist/core/session-manager.js.map +1 -1
  24. package/dist/core/tools/bash.d.ts.map +1 -1
  25. package/dist/core/tools/bash.js +19 -9
  26. package/dist/core/tools/bash.js.map +1 -1
  27. package/dist/main.d.ts.map +1 -1
  28. package/dist/main.js +47 -4
  29. package/dist/main.js.map +1 -1
  30. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  31. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  32. package/dist/modes/interactive/interactive-mode.js +36 -0
  33. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  34. package/dist/utils/paths.d.ts +7 -0
  35. package/dist/utils/paths.d.ts.map +1 -0
  36. package/dist/utils/paths.js +19 -0
  37. package/dist/utils/paths.js.map +1 -0
  38. package/examples/extensions/custom-provider-anthropic/package-lock.json +22 -22
  39. package/examples/extensions/custom-provider-anthropic/package.json +17 -17
  40. package/examples/extensions/custom-provider-gitlab-duo/package.json +14 -14
  41. package/examples/extensions/custom-provider-qwen-cli/package.json +14 -14
  42. package/examples/extensions/with-deps/package-lock.json +29 -29
  43. package/examples/extensions/with-deps/package.json +20 -20
  44. package/package.json +4 -4
@@ -15,6 +15,7 @@ import { KeybindingsManager } from "../../core/keybindings.js";
15
15
  import { createCompactionSummaryMessage } from "../../core/messages.js";
16
16
  import { findExactModelReferenceMatch, resolveModelScope } from "../../core/model-resolver.js";
17
17
  import { DefaultPackageManager } from "../../core/package-manager.js";
18
+ import { formatMissingSessionCwdPrompt, MissingSessionCwdError } from "../../core/session-cwd.js";
18
19
  import { SessionManager } from "../../core/session-manager.js";
19
20
  import { BUILTIN_SLASH_COMMANDS } from "../../core/slash-commands.js";
20
21
  import { getChangelogPath, getNewEntries, parseChangelog } from "../../utils/changelog.js";
@@ -1377,6 +1378,10 @@ export class InteractiveMode {
1377
1378
  const result = await this.showExtensionSelector(`${title}\n${message}`, ["Yes", "No"], opts);
1378
1379
  return result === "Yes";
1379
1380
  }
1381
+ async promptForMissingSessionCwd(error) {
1382
+ const confirmed = await this.showExtensionConfirm("Session cwd not found", formatMissingSessionCwdPrompt(error.issue));
1383
+ return confirmed ? error.issue.fallbackCwd : undefined;
1384
+ }
1380
1385
  /**
1381
1386
  * Show a text input for extensions.
1382
1387
  */
@@ -3222,6 +3227,21 @@ export class InteractiveMode {
3222
3227
  this.showStatus("Resumed session");
3223
3228
  }
3224
3229
  catch (error) {
3230
+ if (error instanceof MissingSessionCwdError) {
3231
+ const selectedCwd = await this.promptForMissingSessionCwd(error);
3232
+ if (!selectedCwd) {
3233
+ this.showStatus("Resume cancelled");
3234
+ return;
3235
+ }
3236
+ const result = await this.runtimeHost.switchSession(sessionPath, selectedCwd);
3237
+ if (result.cancelled) {
3238
+ return;
3239
+ }
3240
+ await this.handleRuntimeSessionChange();
3241
+ this.renderCurrentSessionState();
3242
+ this.showStatus("Resumed session in current cwd");
3243
+ return;
3244
+ }
3225
3245
  await this.handleFatalRuntimeError("Failed to resume session", error);
3226
3246
  }
3227
3247
  }
@@ -3456,6 +3476,22 @@ export class InteractiveMode {
3456
3476
  this.showStatus(`Session imported from: ${inputPath}`);
3457
3477
  }
3458
3478
  catch (error) {
3479
+ if (error instanceof MissingSessionCwdError) {
3480
+ const selectedCwd = await this.promptForMissingSessionCwd(error);
3481
+ if (!selectedCwd) {
3482
+ this.showStatus("Import cancelled");
3483
+ return;
3484
+ }
3485
+ const result = await this.runtimeHost.importFromJsonl(inputPath, selectedCwd);
3486
+ if (result.cancelled) {
3487
+ this.showStatus("Import cancelled");
3488
+ return;
3489
+ }
3490
+ await this.handleRuntimeSessionChange();
3491
+ this.renderCurrentSessionState();
3492
+ this.showStatus(`Session imported from: ${inputPath}`);
3493
+ return;
3494
+ }
3459
3495
  await this.handleFatalRuntimeError("Failed to import session", error);
3460
3496
  }
3461
3497
  }