@mariozechner/pi-coding-agent 0.56.1 → 0.56.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 (40) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/core/auth-storage.d.ts +1 -1
  3. package/dist/core/auth-storage.d.ts.map +1 -1
  4. package/dist/core/extensions/loader.d.ts.map +1 -1
  5. package/dist/core/extensions/loader.js +4 -4
  6. package/dist/core/extensions/loader.js.map +1 -1
  7. package/dist/core/model-resolver.d.ts.map +1 -1
  8. package/dist/core/model-resolver.js +2 -2
  9. package/dist/core/model-resolver.js.map +1 -1
  10. package/dist/core/settings-manager.d.ts +3 -0
  11. package/dist/core/settings-manager.d.ts.map +1 -1
  12. package/dist/core/settings-manager.js +10 -0
  13. package/dist/core/settings-manager.js.map +1 -1
  14. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  15. package/dist/modes/interactive/components/footer.js +8 -23
  16. package/dist/modes/interactive/components/footer.js.map +1 -1
  17. package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
  18. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  19. package/dist/modes/interactive/components/settings-selector.js +10 -0
  20. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  21. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  22. package/dist/modes/interactive/components/tool-execution.js +14 -4
  23. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  24. package/dist/modes/interactive/components/tree-selector.d.ts +4 -2
  25. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  26. package/dist/modes/interactive/components/tree-selector.js +4 -3
  27. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  28. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  29. package/dist/modes/interactive/interactive-mode.js +6 -1
  30. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  31. package/docs/custom-provider.md +11 -7
  32. package/docs/models.md +5 -1
  33. package/docs/settings.md +1 -0
  34. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  35. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  36. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  37. package/examples/extensions/custom-provider-qwen-cli/package.json +1 -1
  38. package/examples/extensions/with-deps/package-lock.json +2 -2
  39. package/examples/extensions/with-deps/package.json +1 -1
  40. package/package.json +4 -4
@@ -159,6 +159,7 @@ The `api` field determines which streaming implementation is used:
159
159
  | `openai-responses` | OpenAI Responses API |
160
160
  | `azure-openai-responses` | Azure OpenAI Responses API |
161
161
  | `openai-codex-responses` | OpenAI Codex Responses API |
162
+ | `mistral-conversations` | Mistral SDK Conversations/Chat streaming |
162
163
  | `google-generative-ai` | Google Generative AI API |
163
164
  | `google-gemini-cli` | Google Cloud Code Assist API |
164
165
  | `google-vertex` | Google Vertex AI API |
@@ -180,14 +181,17 @@ models: [{
180
181
  high: "default",
181
182
  xhigh: "default"
182
183
  },
183
- maxTokensField: "max_tokens", // instead of "max_completion_tokens"
184
- requiresToolResultName: true, // tool results need name field
185
- requiresMistralToolIds: true,
186
- thinkingFormat: "qwen" // uses enable_thinking: true
187
- }
188
- }]
184
+ maxTokensField: "max_tokens", // instead of "max_completion_tokens"
185
+ requiresToolResultName: true, // tool results need name field
186
+ thinkingFormat: "qwen" // uses enable_thinking: true
187
+ }
188
+ }]
189
189
  ```
190
190
 
191
+ > Migration note: Mistral moved from `openai-completions` to `mistral-conversations`.
192
+ > Use `mistral-conversations` for native Mistral models.
193
+ > If you intentionally route Mistral-compatible/custom endpoints through `openai-completions`, set `compat` flags explicitly as needed.
194
+
191
195
  ### Auth Header
192
196
 
193
197
  If your provider expects `Authorization: Bearer <key>` but doesn't use a standard API, set `authHeader: true`:
@@ -301,6 +305,7 @@ For providers with non-standard APIs, implement `streamSimple`. Study the existi
301
305
 
302
306
  **Reference implementations:**
303
307
  - [anthropic.ts](https://github.com/badlogic/pi-mono/blob/main/packages/ai/src/providers/anthropic.ts) - Anthropic Messages API
308
+ - [mistral.ts](https://github.com/badlogic/pi-mono/blob/main/packages/ai/src/providers/mistral.ts) - Mistral Conversations API
304
309
  - [openai-completions.ts](https://github.com/badlogic/pi-mono/blob/main/packages/ai/src/providers/openai-completions.ts) - OpenAI Chat Completions
305
310
  - [openai-responses.ts](https://github.com/badlogic/pi-mono/blob/main/packages/ai/src/providers/openai-responses.ts) - OpenAI Responses API
306
311
  - [google.ts](https://github.com/badlogic/pi-mono/blob/main/packages/ai/src/providers/google.ts) - Google Generative AI
@@ -581,7 +586,6 @@ interface ProviderModelConfig {
581
586
  requiresToolResultName?: boolean;
582
587
  requiresAssistantAfterToolResult?: boolean;
583
588
  requiresThinkingAsText?: boolean;
584
- requiresMistralToolIds?: boolean;
585
589
  thinkingFormat?: "openai" | "zai" | "qwen";
586
590
  };
587
591
  }
package/docs/models.md CHANGED
@@ -129,7 +129,7 @@ The `apiKey` and `headers` fields support three formats:
129
129
  | Field | Required | Default | Description |
130
130
  |-------|----------|---------|-------------|
131
131
  | `id` | Yes | — | Model identifier (passed to the API) |
132
- | `name` | No | `id` | Display name in model selector |
132
+ | `name` | No | `id` | Human-readable model label. Used for matching (`--model` patterns) and shown in model details/status text. |
133
133
  | `api` | No | provider's `api` | Override provider's API for this model |
134
134
  | `reasoning` | No | `false` | Supports extended thinking |
135
135
  | `input` | No | `["text"]` | Input types: `["text"]` or `["text", "image"]` |
@@ -137,6 +137,10 @@ The `apiKey` and `headers` fields support three formats:
137
137
  | `maxTokens` | No | `16384` | Maximum output tokens |
138
138
  | `cost` | No | all zeros | `{"input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0}` (per million tokens) |
139
139
 
140
+ Current behavior:
141
+ - `/model` and `--list-models` list entries by model `id`.
142
+ - The configured `name` is used for model matching and detail/status text.
143
+
140
144
  ## Overriding Built-in Providers
141
145
 
142
146
  Route a built-in provider through a proxy without redefining models:
package/docs/settings.md CHANGED
@@ -42,6 +42,7 @@ Edit directly or use `/settings` for common options.
42
42
  | `quietStartup` | boolean | `false` | Hide startup header |
43
43
  | `collapseChangelog` | boolean | `false` | Show condensed changelog after updates |
44
44
  | `doubleEscapeAction` | string | `"tree"` | Action for double-escape: `"tree"`, `"fork"`, or `"none"` |
45
+ | `treeFilterMode` | string | `"default"` | Default filter for `/tree`: `"default"`, `"no-tools"`, `"user-only"`, `"labeled-only"`, `"all"` |
45
46
  | `editorPaddingX` | number | `0` | Horizontal padding for input editor (0-3) |
46
47
  | `autocompleteMaxVisible` | number | `5` | Max visible items in autocomplete dropdown (3-20) |
47
48
  | `showHardwareCursor` | boolean | `false` | Show terminal cursor |
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "pi-extension-custom-provider",
3
- "version": "1.7.1",
3
+ "version": "1.7.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pi-extension-custom-provider",
9
- "version": "1.7.1",
9
+ "version": "1.7.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.7.1",
4
+ "version": "1.7.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.7.1",
4
+ "version": "1.7.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.6.1",
4
+ "version": "1.6.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.20.1",
3
+ "version": "1.20.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pi-extension-with-deps",
9
- "version": "1.20.1",
9
+ "version": "1.20.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.20.1",
4
+ "version": "1.20.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.56.1",
3
+ "version": "0.56.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.56.1",
44
- "@mariozechner/pi-ai": "^0.56.1",
45
- "@mariozechner/pi-tui": "^0.56.1",
43
+ "@mariozechner/pi-agent-core": "^0.56.2",
44
+ "@mariozechner/pi-ai": "^0.56.2",
45
+ "@mariozechner/pi-tui": "^0.56.2",
46
46
  "@silvia-odwyer/photon-node": "^0.3.4",
47
47
  "chalk": "^5.5.0",
48
48
  "cli-highlight": "^2.1.11",