@oai404iao/pi-codex-runtime 0.1.0-alpha.1 → 0.2.0
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 +7 -2
- package/THIRD_PARTY_NOTICES.md +7 -0
- package/config.schema.json +3 -103
- package/package.json +4 -4
- package/provenance/openai-codex-ddea03ad-astra.json +54 -0
- package/src/capabilities.ts +3 -1
- package/src/model-catalog/catalog.ts +0 -5
- package/src/model-catalog/default-models.json +8 -0
- package/src/model-catalog/runtime.ts +9 -3
- package/src/settings.ts +26 -16
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Alpha bootstrap candidate; initial npm publication is still pending.
|
|
|
4
4
|
It has no Pi extension entry
|
|
5
5
|
and does not automatically register tools or providers.
|
|
6
6
|
|
|
7
|
-
Peer floor: Pi 0.
|
|
7
|
+
Peer floor: Pi 0.85.1; tested against 0.85.1.
|
|
8
8
|
|
|
9
9
|
Owns shared Codex authentication/headers, wire identity, settings/catalog,
|
|
10
10
|
Responses replay contracts and the session-scoped composition broker.
|
|
@@ -12,7 +12,12 @@ Capability-specific HTTP clients, storage and transports live in other packages.
|
|
|
12
12
|
|
|
13
13
|
Configuration paths remain
|
|
14
14
|
`<agentDir>/extensions/pi-codex-minimal-tools/{config,models}.json`.
|
|
15
|
-
This package ships the canonical schemas and default catalog
|
|
15
|
+
This package ships the canonical schemas and default catalog, including the
|
|
16
|
+
`openai-codex/gpt-6-astra` Responses Lite profile. The global
|
|
17
|
+
`config.json.imageGeneration:false` setting gates image capability derivation
|
|
18
|
+
without replacing the selected model profile. Likewise,
|
|
19
|
+
`config.json.webSocketEnabled:false` forces SSE and disables WebSocket prewarm
|
|
20
|
+
without changing that profile.
|
|
16
21
|
`./subagent-inline` supplies the existing SDK identity integration.
|
|
17
22
|
`./internal/*` is implementation wiring, not a stable public API.
|
|
18
23
|
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -11,6 +11,13 @@ apply-patch compatibility evidence remains pinned to
|
|
|
11
11
|
The unmodified provenance record preserves upstream source identifiers, not
|
|
12
12
|
claims that every referenced source file is shipped in this package.
|
|
13
13
|
|
|
14
|
+
The bundled `openai-codex/gpt-6-astra` profile is derived from Codex model and
|
|
15
|
+
request metadata at
|
|
16
|
+
`ddea03ad049142943bdbf13e937b1d67e8c1ba0c`, cross-checked against the
|
|
17
|
+
MIT-licensed `@earendil-works/pi-ai@0.85.1` catalog. Exact source and tarball
|
|
18
|
+
identifiers are recorded in
|
|
19
|
+
`provenance/openai-codex-ddea03ad-astra.json`.
|
|
20
|
+
|
|
14
21
|
Modified namespace-tool compatibility serialization is in
|
|
15
22
|
`src/codex-reserved-tools.ts` and the capability-specific `src/reserved-tools/`
|
|
16
23
|
assets. This is not a license or authorization to access
|
package/config.schema.json
CHANGED
|
@@ -27,23 +27,9 @@
|
|
|
27
27
|
"description": "Automatically activate enabled package tools on supported models.",
|
|
28
28
|
"default": true
|
|
29
29
|
},
|
|
30
|
-
"
|
|
30
|
+
"webSocketEnabled": {
|
|
31
31
|
"type": "boolean",
|
|
32
|
-
"description": "
|
|
33
|
-
"deprecated": true,
|
|
34
|
-
"default": true
|
|
35
|
-
},
|
|
36
|
-
"openaiTransport": {
|
|
37
|
-
"type": "string",
|
|
38
|
-
"description": "Deprecated compatibility override. Move per-model Responses transport to extension models.json.",
|
|
39
|
-
"deprecated": true,
|
|
40
|
-
"enum": ["sse", "websocket", "websocket-cached", "auto"],
|
|
41
|
-
"default": "sse"
|
|
42
|
-
},
|
|
43
|
-
"openaiWebSocketPrewarm": {
|
|
44
|
-
"type": "boolean",
|
|
45
|
-
"description": "Deprecated compatibility override. Move per-model one-shot session-startup WebSocket prewarm behavior to extension models.json.",
|
|
46
|
-
"deprecated": true,
|
|
32
|
+
"description": "Global Responses WebSocket master switch. false forces SSE and disables WebSocket prewarm for every model profile.",
|
|
47
33
|
"default": true
|
|
48
34
|
},
|
|
49
35
|
"fastMode": {
|
|
@@ -51,74 +37,11 @@
|
|
|
51
37
|
"description": "Global user toggle for the Fast service tier declared by the active model profile.",
|
|
52
38
|
"default": false
|
|
53
39
|
},
|
|
54
|
-
"compactionMode": {
|
|
55
|
-
"type": "string",
|
|
56
|
-
"description": "Deprecated compatibility override. Move per-model compaction behavior to extension models.json.",
|
|
57
|
-
"deprecated": true,
|
|
58
|
-
"enum": ["pi", "responses", "responses-compact"],
|
|
59
|
-
"default": "pi"
|
|
60
|
-
},
|
|
61
|
-
"requestProfile": {
|
|
62
|
-
"type": "object",
|
|
63
|
-
"description": "Deprecated compatibility override. Move Responses mode, reasoning summary, prompt placement, patch transport, and tool capabilities to extension models.json.",
|
|
64
|
-
"deprecated": true,
|
|
65
|
-
"default": {},
|
|
66
|
-
"additionalProperties": false,
|
|
67
|
-
"properties": {
|
|
68
|
-
"responsesMode": {
|
|
69
|
-
"type": "string",
|
|
70
|
-
"description": "Responses protocol mode. Lite requires an endpoint that implements the Codex Responses Lite contract.",
|
|
71
|
-
"enum": ["standard", "lite"],
|
|
72
|
-
"default": "standard"
|
|
73
|
-
},
|
|
74
|
-
"reasoningSummary": {
|
|
75
|
-
"type": "string",
|
|
76
|
-
"description": "Deprecated compatibility override for the reasoning summary mode. Move this to responses.reasoningSummary in the per-model catalog.",
|
|
77
|
-
"enum": ["auto", "concise", "detailed", "none"],
|
|
78
|
-
"default": "auto"
|
|
79
|
-
},
|
|
80
|
-
"systemPromptPlacement": {
|
|
81
|
-
"type": "string",
|
|
82
|
-
"description": "Where Standard Responses places Pi's system prompt. Responses Lite always uses a developer message.",
|
|
83
|
-
"enum": ["instructions", "developer"],
|
|
84
|
-
"default": "instructions"
|
|
85
|
-
},
|
|
86
|
-
"patchTransport": {
|
|
87
|
-
"type": "string",
|
|
88
|
-
"description": "Transport for apply_patch: a JSON function tool or the Codex freeform custom tool.",
|
|
89
|
-
"enum": ["function", "custom"],
|
|
90
|
-
"default": "function"
|
|
91
|
-
},
|
|
92
|
-
"supportsHostedTools": {
|
|
93
|
-
"type": "boolean",
|
|
94
|
-
"description": "Enable hosted-tool activation and request rewriting. Responses Lite always disables hosted tools.",
|
|
95
|
-
"default": true
|
|
96
|
-
},
|
|
97
|
-
"supportsParallelTools": {
|
|
98
|
-
"type": "boolean",
|
|
99
|
-
"description": "Enable parallel tool calls in provider requests. Responses Lite always disables parallel tools.",
|
|
100
|
-
"default": true
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
"apiKeyMode": {
|
|
105
|
-
"type": "boolean",
|
|
106
|
-
"description": "Deprecated compatibility override. Move the endpoint/auth shape to responses.endpoint in extension models.json.",
|
|
107
|
-
"deprecated": true,
|
|
108
|
-
"default": false
|
|
109
|
-
},
|
|
110
40
|
"imageGeneration": {
|
|
111
41
|
"type": "boolean",
|
|
112
|
-
"description": "
|
|
113
|
-
"deprecated": true,
|
|
42
|
+
"description": "Global image-generation master switch. false disables image tools, commands, presentation, hosted injection, standalone endpoints, and direct fallback without changing other model-profile behavior.",
|
|
114
43
|
"default": true
|
|
115
44
|
},
|
|
116
|
-
"webSearchEnabled": {
|
|
117
|
-
"type": "boolean",
|
|
118
|
-
"description": "Deprecated compatibility override. Move per-model web-search support to extension models.json.",
|
|
119
|
-
"deprecated": true,
|
|
120
|
-
"default": false
|
|
121
|
-
},
|
|
122
45
|
"imageOutputDir": {
|
|
123
46
|
"type": "string",
|
|
124
47
|
"description": "Directory for generated images. Relative paths resolve against the workspace root.",
|
|
@@ -137,34 +60,11 @@
|
|
|
137
60
|
"description": "Allow direct OpenAI Images API generation when native Codex generation is unavailable.",
|
|
138
61
|
"default": false
|
|
139
62
|
},
|
|
140
|
-
"viewImage": {
|
|
141
|
-
"type": "boolean",
|
|
142
|
-
"description": "Deprecated compatibility override. Move per-model view_image support to extension models.json.",
|
|
143
|
-
"deprecated": true,
|
|
144
|
-
"default": false
|
|
145
|
-
},
|
|
146
63
|
"viewImageWorkspaceOnly": {
|
|
147
64
|
"type": "boolean",
|
|
148
65
|
"description": "Reject view_image paths outside the active workspace.",
|
|
149
66
|
"default": false
|
|
150
67
|
},
|
|
151
|
-
"applyPatchEnabled": {
|
|
152
|
-
"type": "boolean",
|
|
153
|
-
"description": "Deprecated compatibility override. Move per-model apply_patch support to extension models.json.",
|
|
154
|
-
"deprecated": true,
|
|
155
|
-
"default": true
|
|
156
|
-
},
|
|
157
|
-
"additionalModelIds": {
|
|
158
|
-
"type": "array",
|
|
159
|
-
"description": "Deprecated compatibility allowlist. Add exact per-model entries to extension models.json instead.",
|
|
160
|
-
"deprecated": true,
|
|
161
|
-
"items": {
|
|
162
|
-
"type": "string",
|
|
163
|
-
"pattern": "^[^\\s/]+/\\S+$"
|
|
164
|
-
},
|
|
165
|
-
"uniqueItems": true,
|
|
166
|
-
"default": []
|
|
167
|
-
},
|
|
168
68
|
"deferApplyPatchRendering": {
|
|
169
69
|
"type": "boolean",
|
|
170
70
|
"description": "Use Pi's fallback tool renderer instead of the built-in streaming filesystem preview.",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oai404iao/pi-codex-runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Unpublished pi-codex-runtime workspace for the staged Codex split",
|
|
6
6
|
"type": "module",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"./subagent-inline": "./src/subagent-inline.ts"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@earendil-works/pi-ai": ">=0.
|
|
27
|
-
"@earendil-works/pi-coding-agent": ">=0.
|
|
26
|
+
"@earendil-works/pi-ai": ">=0.85.1",
|
|
27
|
+
"@earendil-works/pi-coding-agent": ">=0.85.1"
|
|
28
28
|
},
|
|
29
29
|
"peerDependenciesMeta": {
|
|
30
30
|
"@earendil-works/pi-ai": {
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"engines": {
|
|
65
65
|
"node": ">=22.19.0"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "61f1d82471fff63e3e9d5c0276b5e069c9fc8f1f"
|
|
68
68
|
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"upstream": {
|
|
4
|
+
"repository": "https://github.com/openai/codex",
|
|
5
|
+
"revision": "ddea03ad049142943bdbf13e937b1d67e8c1ba0c",
|
|
6
|
+
"commitUrl": "https://github.com/openai/codex/commit/ddea03ad049142943bdbf13e937b1d67e8c1ba0c",
|
|
7
|
+
"license": "Apache-2.0"
|
|
8
|
+
},
|
|
9
|
+
"files": {
|
|
10
|
+
"LICENSE": {
|
|
11
|
+
"role": "upstream Apache-2.0 license",
|
|
12
|
+
"gitBlobSha": "4606e72e042564097e8780d66c1d4dcb611869bd",
|
|
13
|
+
"sha256": "d17f227e4df5da1600391338865ce0f3055211760a36688f816941d58232d8dc",
|
|
14
|
+
"rawUrl": "https://raw.githubusercontent.com/openai/codex/ddea03ad049142943bdbf13e937b1d67e8c1ba0c/LICENSE"
|
|
15
|
+
},
|
|
16
|
+
"NOTICE": {
|
|
17
|
+
"role": "upstream NOTICE",
|
|
18
|
+
"gitBlobSha": "2805899d56d0332d175cfc613c67d45d6f006db7",
|
|
19
|
+
"sha256": "9d71575ecfd9a843fc1677b0efb08053c6ba9fd686a0de1a6f5382fd3c220915",
|
|
20
|
+
"rawUrl": "https://raw.githubusercontent.com/openai/codex/ddea03ad049142943bdbf13e937b1d67e8c1ba0c/NOTICE"
|
|
21
|
+
},
|
|
22
|
+
"codex-rs/models-manager/models.json": {
|
|
23
|
+
"role": "GPT-6 Astra capabilities and defaults",
|
|
24
|
+
"gitBlobSha": "1b5ce2c515986f84147abe5f4fb6e9b0deab0470",
|
|
25
|
+
"sha256": "897614e513a591b362f76c34e4b4d31af5809a2b52f8c0ab57f2990c5bf4ab3d",
|
|
26
|
+
"rawUrl": "https://raw.githubusercontent.com/openai/codex/ddea03ad049142943bdbf13e937b1d67e8c1ba0c/codex-rs/models-manager/models.json"
|
|
27
|
+
},
|
|
28
|
+
"codex-rs/models-manager/src/model_info.rs": {
|
|
29
|
+
"role": "model metadata representation and context-window limits",
|
|
30
|
+
"gitBlobSha": "ca1006993137d66de19137ff136f7ac8d36f9da3",
|
|
31
|
+
"sha256": "919883a4a15f6f3cace2ec78388aa7f9f8e042f74f553877843552ed55bf15bf",
|
|
32
|
+
"rawUrl": "https://raw.githubusercontent.com/openai/codex/ddea03ad049142943bdbf13e937b1d67e8c1ba0c/codex-rs/models-manager/src/model_info.rs"
|
|
33
|
+
},
|
|
34
|
+
"codex-rs/core/src/client.rs": {
|
|
35
|
+
"role": "Responses Lite and WebSocket request behavior",
|
|
36
|
+
"gitBlobSha": "8d2db30d7bb942cd030cb8d511eaafba8cbe46dd",
|
|
37
|
+
"sha256": "6a9b3d5d60293ca694e1642c905b574c2c12da490cff1c165e485f35a81f6edb",
|
|
38
|
+
"rawUrl": "https://raw.githubusercontent.com/openai/codex/ddea03ad049142943bdbf13e937b1d67e8c1ba0c/codex-rs/core/src/client.rs"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"catalogReference": {
|
|
42
|
+
"package": "@earendil-works/pi-ai",
|
|
43
|
+
"version": "0.85.1",
|
|
44
|
+
"license": "MIT",
|
|
45
|
+
"repository": "https://github.com/earendil-works/pi",
|
|
46
|
+
"tarballIntegrity": "sha512-+VgVIJDkDO2efYJKEEqvPTH4zmnIaXdAppGbO+vKFA9qy5PdhFiAenuFAkU+oiCSfOC4dMHDyrjdQeL4ZoC5CQ==",
|
|
47
|
+
"path": "dist/providers/data/openai-codex.json",
|
|
48
|
+
"sha256": "a10bfcfd34db6bcb98d8ee46175e154cab30530a137dbf31ac1434020ed3ffdd"
|
|
49
|
+
},
|
|
50
|
+
"localImplementations": [
|
|
51
|
+
"pi-codex-runtime/src/model-catalog/default-models.json",
|
|
52
|
+
"pi-codex-minimal-tools/src/model-catalog/default-models.json"
|
|
53
|
+
]
|
|
54
|
+
}
|
package/src/capabilities.ts
CHANGED
|
@@ -66,7 +66,9 @@ export function computeToolCapabilities(model: ModelLike | undefined, settings:
|
|
|
66
66
|
const providerShimActive = modelSettings.providerShimActive;
|
|
67
67
|
|
|
68
68
|
return {
|
|
69
|
-
image_generation: imageGeneration
|
|
69
|
+
image_generation: !settings.imageGeneration
|
|
70
|
+
? { enabled: false, reason: "image generation disabled by global setting" }
|
|
71
|
+
: imageGeneration === "hosted" && providerShimActive && imageInput
|
|
70
72
|
? { enabled: true, reason: "model profile enables hosted image_generation" }
|
|
71
73
|
: imageGeneration === "standalone" && imageInput
|
|
72
74
|
? { enabled: true, reason: "model profile enables standalone image generation" }
|
|
@@ -490,7 +490,6 @@ function legacySettingsRecord(settings: CodexMinimalToolsSettings): JsonRecord {
|
|
|
490
490
|
"compactionMode",
|
|
491
491
|
"requestProfile",
|
|
492
492
|
"apiKeyMode",
|
|
493
|
-
"imageGeneration",
|
|
494
493
|
"webSearchEnabled",
|
|
495
494
|
"viewImage",
|
|
496
495
|
"applyPatchEnabled",
|
|
@@ -523,7 +522,6 @@ function legacyProfilePatch(
|
|
|
523
522
|
"compactionMode",
|
|
524
523
|
"requestProfile",
|
|
525
524
|
"apiKeyMode",
|
|
526
|
-
"imageGeneration",
|
|
527
525
|
"webSearchEnabled",
|
|
528
526
|
"viewImage",
|
|
529
527
|
"applyPatchEnabled",
|
|
@@ -569,9 +567,6 @@ function legacyProfilePatch(
|
|
|
569
567
|
webSearch: settings.webSearchEnabled && hostedTools && oldExtendedToolModel
|
|
570
568
|
? { implementation: "hosted", contentTypes: [...contentTypes] }
|
|
571
569
|
: false,
|
|
572
|
-
imageGeneration: settings.imageGeneration && hostedTools
|
|
573
|
-
? "hosted"
|
|
574
|
-
: false,
|
|
575
570
|
viewImage: settings.viewImage,
|
|
576
571
|
},
|
|
577
572
|
compaction: settings.compactionMode,
|
|
@@ -150,6 +150,14 @@
|
|
|
150
150
|
"endpoint": "codex"
|
|
151
151
|
}
|
|
152
152
|
},
|
|
153
|
+
{
|
|
154
|
+
"id": "openai-codex/gpt-6-astra",
|
|
155
|
+
"extends": "openai/gpt-5.6-sol",
|
|
156
|
+
"responses": {
|
|
157
|
+
"endpoint": "codex",
|
|
158
|
+
"reasoningSummary": "none"
|
|
159
|
+
}
|
|
160
|
+
},
|
|
153
161
|
{
|
|
154
162
|
"id": "openai-codex/gpt-5.6-terra",
|
|
155
163
|
"extends": "openai/gpt-5.6-terra",
|
|
@@ -70,7 +70,9 @@ export function loadModelSettings(
|
|
|
70
70
|
const configuredWebSearchImplementation = effective.tools.webSearch
|
|
71
71
|
? effective.tools.webSearch.implementation
|
|
72
72
|
: undefined;
|
|
73
|
-
const configuredImageGenerationImplementation =
|
|
73
|
+
const configuredImageGenerationImplementation = baseSettings.imageGeneration
|
|
74
|
+
? effective.tools.imageGeneration || undefined
|
|
75
|
+
: undefined;
|
|
74
76
|
const webSearchImplementation = !packageEnabled
|
|
75
77
|
|| (configuredWebSearchImplementation === "hosted" && !providerShimActive)
|
|
76
78
|
? undefined
|
|
@@ -94,8 +96,12 @@ export function loadModelSettings(
|
|
|
94
96
|
...baseSettings,
|
|
95
97
|
providerShimActive,
|
|
96
98
|
nativeProviderTools: providerShimActive && usesProviderToolRewrite,
|
|
97
|
-
openaiTransport:
|
|
98
|
-
|
|
99
|
+
openaiTransport: baseSettings.webSocketEnabled
|
|
100
|
+
? effective.responses.transport
|
|
101
|
+
: "sse",
|
|
102
|
+
openaiWebSocketPrewarm:
|
|
103
|
+
baseSettings.webSocketEnabled
|
|
104
|
+
&& effective.responses.websocketPrewarm,
|
|
99
105
|
compactionMode: providerShimActive ? effective.compaction : "pi",
|
|
100
106
|
requestProfile,
|
|
101
107
|
apiKeyMode: endpointUsesApiKey(effective.responses.endpoint, model),
|
package/src/settings.ts
CHANGED
|
@@ -6,50 +6,59 @@ import type { CodexRequestProfileOverride } from "./codex-request-profile.js";
|
|
|
6
6
|
export const PACKAGE_NAME = "pi-codex-minimal-tools";
|
|
7
7
|
export const CONFIG_FILE_NAME = "config.json";
|
|
8
8
|
|
|
9
|
-
export interface
|
|
9
|
+
export interface CodexGlobalSettings {
|
|
10
10
|
enabled: boolean;
|
|
11
11
|
glyphStyle: "unicode" | "ascii";
|
|
12
12
|
autoEnable: boolean;
|
|
13
|
+
webSocketEnabled: boolean;
|
|
14
|
+
fastMode: boolean;
|
|
15
|
+
imageGeneration: boolean;
|
|
16
|
+
imageOutputDir: string;
|
|
17
|
+
imageModel: "gpt-image-2" | "gpt-image-1.5" | "gpt-image-1";
|
|
18
|
+
directImageApiFallback: boolean;
|
|
19
|
+
viewImageWorkspaceOnly: boolean;
|
|
20
|
+
deferApplyPatchRendering: boolean;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface CodexMinimalToolsSettings extends CodexGlobalSettings {
|
|
13
24
|
nativeProviderTools: boolean;
|
|
14
25
|
openaiTransport: "sse" | "websocket" | "websocket-cached" | "auto";
|
|
15
26
|
openaiWebSocketPrewarm: boolean;
|
|
16
|
-
fastMode: boolean;
|
|
17
27
|
compactionMode: "pi" | "responses" | "responses-compact";
|
|
18
28
|
requestProfile: CodexRequestProfileOverride;
|
|
19
29
|
apiKeyMode: boolean;
|
|
20
|
-
imageGeneration: boolean;
|
|
21
30
|
webSearchEnabled: boolean;
|
|
22
|
-
imageOutputDir: string;
|
|
23
|
-
imageModel: "gpt-image-2" | "gpt-image-1.5" | "gpt-image-1";
|
|
24
|
-
directImageApiFallback: boolean;
|
|
25
31
|
viewImage: boolean;
|
|
26
|
-
viewImageWorkspaceOnly: boolean;
|
|
27
32
|
applyPatchEnabled: boolean;
|
|
28
33
|
additionalModelIds: string[];
|
|
29
|
-
deferApplyPatchRendering: boolean;
|
|
30
34
|
}
|
|
31
35
|
|
|
32
|
-
export const
|
|
36
|
+
export const DEFAULT_GLOBAL_SETTINGS: Readonly<CodexGlobalSettings> = {
|
|
33
37
|
enabled: true,
|
|
34
38
|
glyphStyle: "unicode",
|
|
35
39
|
autoEnable: true,
|
|
40
|
+
webSocketEnabled: true,
|
|
41
|
+
fastMode: false,
|
|
42
|
+
imageGeneration: true,
|
|
43
|
+
imageOutputDir: ".pi/openai-codex-images",
|
|
44
|
+
imageModel: "gpt-image-2",
|
|
45
|
+
directImageApiFallback: false,
|
|
46
|
+
viewImageWorkspaceOnly: false,
|
|
47
|
+
deferApplyPatchRendering: false,
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const DEFAULT_SETTINGS: CodexMinimalToolsSettings = {
|
|
51
|
+
...DEFAULT_GLOBAL_SETTINGS,
|
|
36
52
|
nativeProviderTools: true,
|
|
37
53
|
openaiTransport: "sse",
|
|
38
54
|
openaiWebSocketPrewarm: true,
|
|
39
|
-
fastMode: false,
|
|
40
55
|
compactionMode: "pi",
|
|
41
56
|
requestProfile: {},
|
|
42
57
|
apiKeyMode: false,
|
|
43
|
-
imageGeneration: true,
|
|
44
58
|
webSearchEnabled: false,
|
|
45
|
-
imageOutputDir: ".pi/openai-codex-images",
|
|
46
|
-
imageModel: "gpt-image-2",
|
|
47
|
-
directImageApiFallback: false,
|
|
48
59
|
viewImage: false,
|
|
49
|
-
viewImageWorkspaceOnly: false,
|
|
50
60
|
applyPatchEnabled: true,
|
|
51
61
|
additionalModelIds: [],
|
|
52
|
-
deferApplyPatchRendering: false,
|
|
53
62
|
};
|
|
54
63
|
|
|
55
64
|
type SettingsRecord = Record<string, unknown>;
|
|
@@ -188,6 +197,7 @@ export function loadSettings(_cwd?: string): CodexMinimalToolsSettings {
|
|
|
188
197
|
enabled: boolSetting(raw, "enabled"),
|
|
189
198
|
glyphStyle: glyphStyleSetting(raw),
|
|
190
199
|
autoEnable: boolSetting(raw, "autoEnable"),
|
|
200
|
+
webSocketEnabled: boolSetting(raw, "webSocketEnabled"),
|
|
191
201
|
nativeProviderTools: boolSetting(raw, "nativeProviderTools"),
|
|
192
202
|
openaiTransport: openaiTransportSetting(raw),
|
|
193
203
|
openaiWebSocketPrewarm: boolSetting(raw, "openaiWebSocketPrewarm"),
|