@mariozechner/pi-coding-agent 0.63.1 → 0.63.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 (31) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/core/agent-session.d.ts.map +1 -1
  3. package/dist/core/agent-session.js +1 -0
  4. package/dist/core/agent-session.js.map +1 -1
  5. package/dist/core/extensions/runner.d.ts +1 -0
  6. package/dist/core/extensions/runner.d.ts.map +1 -1
  7. package/dist/core/extensions/runner.js +3 -0
  8. package/dist/core/extensions/runner.js.map +1 -1
  9. package/dist/core/extensions/types.d.ts +3 -0
  10. package/dist/core/extensions/types.d.ts.map +1 -1
  11. package/dist/core/extensions/types.js.map +1 -1
  12. package/dist/core/tools/edit-diff.d.ts +3 -3
  13. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  14. package/dist/core/tools/edit-diff.js.map +1 -1
  15. package/dist/core/tools/edit.d.ts +7 -17
  16. package/dist/core/tools/edit.d.ts.map +1 -1
  17. package/dist/core/tools/edit.js +20 -102
  18. package/dist/core/tools/edit.js.map +1 -1
  19. package/dist/core/tools/index.d.ts +5 -10
  20. package/dist/core/tools/index.d.ts.map +1 -1
  21. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  22. package/dist/modes/interactive/interactive-mode.js +1 -0
  23. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  24. package/docs/extensions.md +33 -0
  25. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  26. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  27. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  28. package/examples/extensions/custom-provider-qwen-cli/package.json +1 -1
  29. package/examples/extensions/with-deps/package-lock.json +2 -2
  30. package/examples/extensions/with-deps/package.json +1 -1
  31. package/package.json +4 -4
@@ -629,6 +629,8 @@ Fired after tool execution finishes and before `tool_execution_end` plus the fin
629
629
  - Each handler sees the latest result after previous handler changes
630
630
  - Handlers can return partial patches (`content`, `details`, or `isError`); omitted fields keep their current values
631
631
 
632
+ Use `ctx.signal` for nested async work inside the handler. This lets Esc cancel model calls, `fetch()`, and other abort-aware operations started by the extension.
633
+
632
634
  ```typescript
633
635
  import { isBashToolResult } from "@mariozechner/pi-coding-agent";
634
636
 
@@ -640,6 +642,12 @@ pi.on("tool_result", async (event, ctx) => {
640
642
  // event.details is typed as BashToolDetails
641
643
  }
642
644
 
645
+ const response = await fetch("https://example.com/summarize", {
646
+ method: "POST",
647
+ body: JSON.stringify({ content: event.content }),
648
+ signal: ctx.signal,
649
+ });
650
+
643
651
  // Modify result:
644
652
  return { content: [...], details: {...}, isError: false };
645
653
  });
@@ -759,6 +767,31 @@ ctx.sessionManager.getLeafId() // Current leaf entry ID
759
767
 
760
768
  Access to models and API keys.
761
769
 
770
+ ### ctx.signal
771
+
772
+ The current agent abort signal, or `undefined` when no agent turn is active.
773
+
774
+ Use this for abort-aware nested work started by extension handlers, for example:
775
+ - `fetch(..., { signal: ctx.signal })`
776
+ - model calls that accept `signal`
777
+ - file or process helpers that accept `AbortSignal`
778
+
779
+ `ctx.signal` is typically defined during active turn events such as `tool_call`, `tool_result`, `message_update`, and `turn_end`.
780
+ It is usually `undefined` in idle or non-turn contexts such as session events, extension commands, and shortcuts fired while pi is idle.
781
+
782
+ ```typescript
783
+ pi.on("tool_result", async (event, ctx) => {
784
+ const response = await fetch("https://example.com/api", {
785
+ method: "POST",
786
+ body: JSON.stringify(event),
787
+ signal: ctx.signal,
788
+ });
789
+
790
+ const data = await response.json();
791
+ return { details: data };
792
+ });
793
+ ```
794
+
762
795
  ### ctx.isIdle() / ctx.abort() / ctx.hasPendingMessages()
763
796
 
764
797
  Control flow helpers.
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "pi-extension-custom-provider",
3
- "version": "1.14.1",
3
+ "version": "1.14.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pi-extension-custom-provider",
9
- "version": "1.14.1",
9
+ "version": "1.14.2",
10
10
  "dependencies": {
11
11
  "@anthropic-ai/sdk": "^0.52.0"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-custom-provider-anthropic",
3
3
  "private": true,
4
- "version": "1.14.1",
4
+ "version": "1.14.2",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-custom-provider-gitlab-duo",
3
3
  "private": true,
4
- "version": "1.14.1",
4
+ "version": "1.14.2",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-custom-provider-qwen-cli",
3
3
  "private": true,
4
- "version": "1.13.1",
4
+ "version": "1.13.2",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "pi-extension-with-deps",
3
- "version": "1.27.1",
3
+ "version": "1.27.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pi-extension-with-deps",
9
- "version": "1.27.1",
9
+ "version": "1.27.2",
10
10
  "dependencies": {
11
11
  "ms": "^2.1.3"
12
12
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-with-deps",
3
3
  "private": true,
4
- "version": "1.27.1",
4
+ "version": "1.27.2",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mariozechner/pi-coding-agent",
3
- "version": "0.63.1",
3
+ "version": "0.63.2",
4
4
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
5
5
  "type": "module",
6
6
  "piConfig": {
@@ -40,9 +40,9 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@mariozechner/jiti": "^2.6.2",
43
- "@mariozechner/pi-agent-core": "^0.63.1",
44
- "@mariozechner/pi-ai": "^0.63.1",
45
- "@mariozechner/pi-tui": "^0.63.1",
43
+ "@mariozechner/pi-agent-core": "^0.63.2",
44
+ "@mariozechner/pi-ai": "^0.63.2",
45
+ "@mariozechner/pi-tui": "^0.63.2",
46
46
  "@silvia-odwyer/photon-node": "^0.3.4",
47
47
  "ajv": "^8.17.1",
48
48
  "chalk": "^5.5.0",