@benvargas/pi-openai-verbosity 1.1.0 → 1.1.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.
- package/README.md +41 -2
- package/extensions/index.ts +5 -3
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -121,7 +121,8 @@ By default, the extension mirrors the Codex CLI's own per-model verbosity defaul
|
|
|
121
121
|
"openai-codex/gpt-5.5": "low",
|
|
122
122
|
"openai-codex/gpt-5.6-luna": "low",
|
|
123
123
|
"openai-codex/gpt-5.6-sol": "low",
|
|
124
|
-
"openai-codex/gpt-5.6-terra": "low"
|
|
124
|
+
"openai-codex/gpt-5.6-terra": "low",
|
|
125
|
+
"openai-codex/gpt-6-astra": "low"
|
|
125
126
|
}
|
|
126
127
|
}
|
|
127
128
|
```
|
|
@@ -130,6 +131,42 @@ You can change any value to override the default for that model. If you have an
|
|
|
130
131
|
older version of this extension, your file's entries win over these defaults, and entries for model slugs pi no
|
|
131
132
|
longer exposes are simply ignored.
|
|
132
133
|
|
|
134
|
+
## Why not `samplingParams`?
|
|
135
|
+
|
|
136
|
+
pi 0.84.0 added `samplingParams`, which lets you pass arbitrary OpenAI-compatible parameters through
|
|
137
|
+
`models.json`, model overrides, and extension providers. Reading those release notes, it is natural to assume
|
|
138
|
+
this extension is now redundant and that you can write:
|
|
139
|
+
|
|
140
|
+
```json
|
|
141
|
+
{
|
|
142
|
+
"modelOverrides": {
|
|
143
|
+
"openai-codex/gpt-5.5": {
|
|
144
|
+
"samplingParams": { "text": { "verbosity": "medium" } }
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**On `openai-codex` this silently does nothing.** There is no error and no warning; the setting is simply never
|
|
151
|
+
applied. `samplingParams` is explicitly scoped to OpenAI-*compatible* adapters — pi-ai documents it as "only
|
|
152
|
+
applied by OpenAI-compatible adapters (completions, responses, Azure responses); other APIs ignore it" — and
|
|
153
|
+
the Codex adapter is not one of them. It builds its own request and hardcodes `text: { verbosity: ... }`,
|
|
154
|
+
defaulting to `low`.
|
|
155
|
+
|
|
156
|
+
So for the `openai-codex` provider, this extension remains the only way to set per-model verbosity.
|
|
157
|
+
|
|
158
|
+
### If you use `samplingParams` on the plain `openai` provider
|
|
159
|
+
|
|
160
|
+
There it *is* applied, but the merge is a shallow top-level `Object.assign`. That means:
|
|
161
|
+
|
|
162
|
+
```json
|
|
163
|
+
{ "samplingParams": { "text": { "verbosity": "medium" } } }
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
replaces the **entire** `text` object rather than merging into it, discarding any other `text` fields pi had
|
|
167
|
+
already set. This extension deliberately does the opposite: it preserves existing `text` fields and replaces
|
|
168
|
+
only `text.verbosity`.
|
|
169
|
+
|
|
133
170
|
## Debugging
|
|
134
171
|
|
|
135
172
|
Pi does not currently expose a simple CLI flag to print the final provider request body. To verify this extension is
|
|
@@ -159,7 +196,9 @@ delete it when you are done debugging.
|
|
|
159
196
|
|
|
160
197
|
- This extension only changes outgoing provider request payloads.
|
|
161
198
|
- Existing `text` fields are preserved, and only `text.verbosity` is replaced.
|
|
162
|
-
- Only the `openai-codex` provider is supported.
|
|
199
|
+
- Only the `openai-codex` provider is supported. pi 0.84.0's `samplingParams` does not reach that provider, so
|
|
200
|
+
this extension remains the only per-model verbosity control for it — see
|
|
201
|
+
[Why not `samplingParams`?](#why-not-samplingparams).
|
|
163
202
|
- This extension is most useful if you want different verbosity settings for different OpenAI Codex model slugs.
|
|
164
203
|
|
|
165
204
|
## Uninstall
|
package/extensions/index.ts
CHANGED
|
@@ -21,9 +21,10 @@ const VERBOSITY_CONFIG_BASENAME = "pi-openai-verbosity.json";
|
|
|
21
21
|
const VERBOSITY_COMMAND_ARGS = ["status"] as const;
|
|
22
22
|
const DEBUG_LOG_ENV = "PI_OPENAI_VERBOSITY_DEBUG_LOG";
|
|
23
23
|
const SUPPORTED_PROVIDERS = ["openai-codex"] as const;
|
|
24
|
-
// Mirrors the Codex CLI upstream
|
|
25
|
-
// catalog
|
|
26
|
-
//
|
|
24
|
+
// Mirrors the Codex CLI upstream `default_verbosity` for every model in pi's
|
|
25
|
+
// openai-codex catalog as of pi 0.85.1 (gpt-5.3-codex-spark through
|
|
26
|
+
// gpt-6-astra). pi itself falls back to `low` for all codex requests, which
|
|
27
|
+
// matches upstream everywhere except gpt-5.4-mini (upstream default: medium).
|
|
27
28
|
const DEFAULT_MODEL_VERBOSITY = {
|
|
28
29
|
"openai-codex/gpt-5.3-codex-spark": "low",
|
|
29
30
|
"openai-codex/gpt-5.4": "low",
|
|
@@ -32,6 +33,7 @@ const DEFAULT_MODEL_VERBOSITY = {
|
|
|
32
33
|
"openai-codex/gpt-5.6-luna": "low",
|
|
33
34
|
"openai-codex/gpt-5.6-sol": "low",
|
|
34
35
|
"openai-codex/gpt-5.6-terra": "low",
|
|
36
|
+
"openai-codex/gpt-6-astra": "low",
|
|
35
37
|
} as const;
|
|
36
38
|
|
|
37
39
|
type TextVerbosity = "low" | "medium" | "high";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@benvargas/pi-openai-verbosity",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Per-model OpenAI Codex text verbosity overrides for pi",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi",
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"openai-codex",
|
|
13
13
|
"gpt-5.5",
|
|
14
14
|
"gpt-5.6-sol",
|
|
15
|
+
"gpt-6-astra",
|
|
15
16
|
"verbosity",
|
|
16
17
|
"text-verbosity",
|
|
17
18
|
"per-model"
|