@mariozechner/pi-coding-agent 0.18.0 → 0.18.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 (54) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +13 -2
  3. package/dist/core/agent-session.d.ts +43 -3
  4. package/dist/core/agent-session.d.ts.map +1 -1
  5. package/dist/core/agent-session.js +175 -7
  6. package/dist/core/agent-session.js.map +1 -1
  7. package/dist/core/export-html.d.ts.map +1 -1
  8. package/dist/core/export-html.js +10 -1
  9. package/dist/core/export-html.js.map +1 -1
  10. package/dist/core/hooks/types.d.ts +4 -4
  11. package/dist/core/hooks/types.d.ts.map +1 -1
  12. package/dist/core/hooks/types.js.map +1 -1
  13. package/dist/core/model-resolver.d.ts.map +1 -1
  14. package/dist/core/model-resolver.js +1 -0
  15. package/dist/core/model-resolver.js.map +1 -1
  16. package/dist/core/session-manager.d.ts +4 -2
  17. package/dist/core/session-manager.d.ts.map +1 -1
  18. package/dist/core/session-manager.js +23 -7
  19. package/dist/core/session-manager.js.map +1 -1
  20. package/dist/core/settings-manager.d.ts +13 -0
  21. package/dist/core/settings-manager.d.ts.map +1 -1
  22. package/dist/core/settings-manager.js +17 -0
  23. package/dist/core/settings-manager.js.map +1 -1
  24. package/dist/main.d.ts.map +1 -1
  25. package/dist/main.js +7 -3
  26. package/dist/main.js.map +1 -1
  27. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  28. package/dist/modes/interactive/components/footer.js +27 -4
  29. package/dist/modes/interactive/components/footer.js.map +1 -1
  30. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  31. package/dist/modes/interactive/components/user-message-selector.js +2 -2
  32. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  33. package/dist/modes/interactive/interactive-mode.d.ts +2 -0
  34. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  35. package/dist/modes/interactive/interactive-mode.js +39 -3
  36. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  37. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  38. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  39. package/dist/modes/interactive/theme/theme.js +8 -4
  40. package/dist/modes/interactive/theme/theme.js.map +1 -1
  41. package/dist/modes/rpc/rpc-client.d.ts +8 -0
  42. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  43. package/dist/modes/rpc/rpc-client.js +12 -0
  44. package/dist/modes/rpc/rpc-client.js.map +1 -1
  45. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  46. package/dist/modes/rpc/rpc-mode.js +11 -0
  47. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  48. package/dist/modes/rpc/rpc-types.d.ts +18 -1
  49. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  50. package/dist/modes/rpc/rpc-types.js.map +1 -1
  51. package/docs/gemini.md +255 -0
  52. package/docs/hooks.md +10 -2
  53. package/docs/rpc.md +62 -0
  54. package/package.json +4 -4
package/docs/hooks.md CHANGED
@@ -11,6 +11,14 @@ Hooks are automatically discovered from two locations:
11
11
 
12
12
  All `.ts` files in these directories are loaded automatically. Project hooks let you define project-specific behavior (similar to `.pi/AGENTS.md`).
13
13
 
14
+ You can also load a specific hook file directly using the `--hook` flag:
15
+
16
+ ```bash
17
+ pi --hook ./my-hook.ts
18
+ ```
19
+
20
+ This is useful for testing hooks without placing them in the standard directories.
21
+
14
22
  ### Additional Configuration
15
23
 
16
24
  You can also add explicit hook paths in `~/.pi/agent/settings.json`:
@@ -114,8 +122,8 @@ Fired when session changes (`/branch` or session switch).
114
122
 
115
123
  ```typescript
116
124
  pi.on("session_switch", async (event, ctx) => {
117
- // event.newSessionFile: string
118
- // event.previousSessionFile: string
125
+ // event.newSessionFile: string | null (null in --no-session mode)
126
+ // event.previousSessionFile: string | null (null in --no-session mode)
119
127
  // event.reason: "branch" | "switch"
120
128
  });
121
129
  ```
package/docs/rpc.md CHANGED
@@ -303,6 +303,34 @@ Response:
303
303
  {"type": "response", "command": "set_auto_compaction", "success": true}
304
304
  ```
305
305
 
306
+ ### Retry
307
+
308
+ #### set_auto_retry
309
+
310
+ Enable or disable automatic retry on transient errors (overloaded, rate limit, 5xx).
311
+
312
+ ```json
313
+ {"type": "set_auto_retry", "enabled": true}
314
+ ```
315
+
316
+ Response:
317
+ ```json
318
+ {"type": "response", "command": "set_auto_retry", "success": true}
319
+ ```
320
+
321
+ #### abort_retry
322
+
323
+ Abort an in-progress retry (cancel the delay and stop retrying).
324
+
325
+ ```json
326
+ {"type": "abort_retry"}
327
+ ```
328
+
329
+ Response:
330
+ ```json
331
+ {"type": "response", "command": "abort_retry", "success": true}
332
+ ```
333
+
306
334
  ### Bash
307
335
 
308
336
  #### bash
@@ -528,6 +556,8 @@ Events are streamed to stdout as JSON lines during agent operation. Events do NO
528
556
  | `tool_execution_end` | Tool completes |
529
557
  | `auto_compaction_start` | Auto-compaction begins |
530
558
  | `auto_compaction_end` | Auto-compaction completes |
559
+ | `auto_retry_start` | Auto-retry begins (after transient error) |
560
+ | `auto_retry_end` | Auto-retry completes (success or final failure) |
531
561
 
532
562
  ### agent_start
533
563
 
@@ -664,6 +694,38 @@ Emitted when automatic compaction runs (when context is nearly full).
664
694
 
665
695
  If compaction was aborted, `result` is `null` and `aborted` is `true`.
666
696
 
697
+ ### auto_retry_start / auto_retry_end
698
+
699
+ Emitted when automatic retry is triggered after a transient error (overloaded, rate limit, 5xx).
700
+
701
+ ```json
702
+ {
703
+ "type": "auto_retry_start",
704
+ "attempt": 1,
705
+ "maxAttempts": 3,
706
+ "delayMs": 2000,
707
+ "errorMessage": "529 {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"}}"
708
+ }
709
+ ```
710
+
711
+ ```json
712
+ {
713
+ "type": "auto_retry_end",
714
+ "success": true,
715
+ "attempt": 2
716
+ }
717
+ ```
718
+
719
+ On final failure (max retries exceeded):
720
+ ```json
721
+ {
722
+ "type": "auto_retry_end",
723
+ "success": false,
724
+ "attempt": 3,
725
+ "finalError": "529 overloaded_error: Overloaded"
726
+ }
727
+ ```
728
+
667
729
  ## Error Handling
668
730
 
669
731
  Failed commands return a response with `success: false`:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mariozechner/pi-coding-agent",
3
- "version": "0.18.0",
3
+ "version": "0.18.2",
4
4
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
5
5
  "type": "module",
6
6
  "piConfig": {
@@ -39,9 +39,9 @@
39
39
  "prepublishOnly": "npm run clean && npm run build"
40
40
  },
41
41
  "dependencies": {
42
- "@mariozechner/pi-agent-core": "^0.18.0",
43
- "@mariozechner/pi-ai": "^0.18.0",
44
- "@mariozechner/pi-tui": "^0.18.0",
42
+ "@mariozechner/pi-agent-core": "^0.18.2",
43
+ "@mariozechner/pi-ai": "^0.18.2",
44
+ "@mariozechner/pi-tui": "^0.18.2",
45
45
  "chalk": "^5.5.0",
46
46
  "diff": "^8.0.2",
47
47
  "glob": "^11.0.3",