@oai404iao/pi-codex-minimal-tools 1.3.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.
Files changed (39) hide show
  1. package/LICENSE +28 -0
  2. package/LICENSES/Apache-2.0.txt +201 -0
  3. package/LICENSES/OpenAI-Codex-NOTICE.txt +6 -0
  4. package/README.md +410 -0
  5. package/THIRD_PARTY_NOTICES.md +97 -0
  6. package/config.schema.json +174 -0
  7. package/models.schema.json +217 -0
  8. package/package.json +87 -0
  9. package/provenance/openai-codex-eb9dceba-reserved-tools.json +140 -0
  10. package/src/activation.ts +56 -0
  11. package/src/background-image-generation.ts +574 -0
  12. package/src/capabilities.ts +146 -0
  13. package/src/codex-http.ts +133 -0
  14. package/src/codex-request-profile.ts +45 -0
  15. package/src/codex-reserved-tools.ts +323 -0
  16. package/src/codex-wire-identity.ts +182 -0
  17. package/src/fast-mode.ts +124 -0
  18. package/src/glyphs.ts +70 -0
  19. package/src/index.ts +332 -0
  20. package/src/model-catalog/catalog.ts +636 -0
  21. package/src/model-catalog/default-models.json +252 -0
  22. package/src/model-catalog/runtime.ts +113 -0
  23. package/src/model-catalog/types.ts +95 -0
  24. package/src/native-compaction.ts +393 -0
  25. package/src/patch/apply.ts +338 -0
  26. package/src/patch/parser.ts +224 -0
  27. package/src/patch/render.ts +201 -0
  28. package/src/provider-headers.ts +54 -0
  29. package/src/provider-native-tools.ts +71 -0
  30. package/src/provider-shim.ts +4338 -0
  31. package/src/providers/codex-apply-patch-tool.ts +23 -0
  32. package/src/providers/codex-apply-patch.lark +19 -0
  33. package/src/providers/openai-responses-shared.ts +1463 -0
  34. package/src/settings.ts +247 -0
  35. package/src/tools/apply-patch.ts +84 -0
  36. package/src/tools/image-generation.ts +274 -0
  37. package/src/tools/view-image.ts +98 -0
  38. package/src/tools/web-search.ts +524 -0
  39. package/src/utils/images.ts +73 -0
@@ -0,0 +1,97 @@
1
+ # Third-party notices
2
+
3
+ ## OpenAI Codex
4
+
5
+ This package includes and analyzes material from
6
+ [OpenAI Codex](https://github.com/openai/codex) at revision
7
+ [`eb9dceba1a2e658142a456c5898836774835616b`](https://github.com/openai/codex/commit/eb9dceba1a2e658142a456c5898836774835616b).
8
+
9
+ ### Exact upstream snapshot
10
+
11
+ `src/providers/codex-apply-patch.lark` is an exact copy of:
12
+
13
+ ```text
14
+ codex-rs/core/src/tools/handlers/apply_patch.lark
15
+ ```
16
+
17
+ at the revision above. OpenAI Codex distributes that file under the Apache
18
+ License 2.0. The license and upstream NOTICE are included in:
19
+
20
+ - `LICENSES/Apache-2.0.txt`
21
+ - `LICENSES/OpenAI-Codex-NOTICE.txt`
22
+
23
+ ### Modified compatibility implementation
24
+
25
+ `src/patch/parser.ts` and `src/patch/apply.ts` are substantially modified
26
+ TypeScript adaptations of the Codex apply-patch parsing and matching behavior
27
+ analyzed at revision
28
+ [`03bb3b12367397e14a8facc2e018d645ff4d8e83`](https://github.com/openai/codex/commit/03bb3b12367397e14a8facc2e018d645ff4d8e83).
29
+ The primary upstream paths were:
30
+
31
+ ```text
32
+ codex-rs/apply-patch/src/parser.rs
33
+ codex-rs/apply-patch/src/streaming_parser.rs
34
+ codex-rs/apply-patch/src/seek_sequence.rs
35
+ codex-rs/apply-patch/src/lib.rs
36
+ codex-rs/core/src/tools/handlers/apply_patch.rs
37
+ codex-rs/core/src/tools/handlers/apply_patch_spec.rs
38
+ ```
39
+
40
+ The local files were rewritten for TypeScript and Pi, including virtual-state
41
+ preflight, symlink and overwrite checks, mutation serialization, rollback,
42
+ CRLF preservation, and renderer preview integration. They carry prominent
43
+ source and modification notices and remain subject to the included
44
+ Apache-2.0 terms for the adapted material.
45
+
46
+ ### Derived analysis
47
+
48
+ The repository's `reference/` directory contains protocol analysis based on
49
+ both Codex revisions above. It is development documentation and is excluded
50
+ from the npm tarball.
51
+
52
+ ### Modified namespace-tool compatibility serialization
53
+
54
+ `src/codex-reserved-tools.ts` is a modified TypeScript compatibility
55
+ serialization of the Codex namespace-tool construction at the pinned revision
56
+ above. It preserves the local `web.run` and `image_gen.imagegen` declaration
57
+ shapes used by this package's internal Responses Lite path; it is not an exact
58
+ copy of one upstream file or an OpenAI-supported public API contract.
59
+
60
+ The two local function descriptions are byte-for-byte matches for:
61
+
62
+ ```text
63
+ codex-rs/ext/web-search/web_run_description.md
64
+ codex-rs/ext/image-generation/imagegen_description.md
65
+ ```
66
+
67
+ The local `web.run` parameters are a compatibility serialization derived from
68
+ the web-search schema generator and `SearchCommands` input types in:
69
+
70
+ ```text
71
+ codex-rs/ext/web-search/src/tool.rs
72
+ codex-rs/ext/web-search/src/schema.rs
73
+ codex-rs/codex-api/src/search.rs
74
+ ```
75
+
76
+ The local `image_gen.imagegen` parameters are a compatibility serialization
77
+ derived from `ImagegenArgs` and its namespace-tool construction in:
78
+
79
+ ```text
80
+ codex-rs/ext/image-generation/src/lib.rs
81
+ codex-rs/ext/image-generation/src/tool.rs
82
+ ```
83
+
84
+ `codex-rs/tools/src/responses_api.rs`,
85
+ `codex-rs/tools/src/tool_spec.rs`, and `codex-rs/core/src/client.rs` establish
86
+ the namespace serialization and Responses Lite tool placement. The immutable
87
+ upstream blob IDs, SHA-256 checksums, source URLs, and local canonical-JSON
88
+ fingerprints are recorded in
89
+ `provenance/openai-codex-eb9dceba-reserved-tools.json`.
90
+
91
+ The Apache-2.0 license and upstream NOTICE above apply to the derived material.
92
+ This source-attribution record resolves the earlier captured-metadata
93
+ classification at the engineering level; it is not legal advice. This `1.3.0`
94
+ source revision is approved only for a one-time manual npm bootstrap from a
95
+ reviewed public `main` commit. It is intentionally excluded from guarded
96
+ GitHub Actions release artifacts until the npm trusted publisher is configured
97
+ and a separate reviewed activation changes its release track to `publishable`.
@@ -0,0 +1,174 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://unpkg.com/@oai404iao/pi-codex-minimal-tools@1/config.schema.json",
4
+ "title": "@oai404iao/pi-codex-minimal-tools configuration",
5
+ "description": "Configuration for the @oai404iao/pi-codex-minimal-tools Pi extension.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "$schema": {
10
+ "type": "string",
11
+ "description": "JSON Schema URL used by editors for validation and completion.",
12
+ "default": "https://unpkg.com/@oai404iao/pi-codex-minimal-tools@1/config.schema.json"
13
+ },
14
+ "enabled": {
15
+ "type": "boolean",
16
+ "description": "Enable this package's tools, provider shim, compaction hooks, and commands.",
17
+ "default": true
18
+ },
19
+ "glyphStyle": {
20
+ "type": "string",
21
+ "description": "Glyph style used by the extension UI.",
22
+ "enum": ["unicode", "ascii"],
23
+ "default": "unicode"
24
+ },
25
+ "autoEnable": {
26
+ "type": "boolean",
27
+ "description": "Automatically activate enabled package tools on supported models.",
28
+ "default": true
29
+ },
30
+ "nativeProviderTools": {
31
+ "type": "boolean",
32
+ "description": "Deprecated compatibility override. Move per-model hosted tool behavior to extension models.json.",
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,
47
+ "default": true
48
+ },
49
+ "fastMode": {
50
+ "type": "boolean",
51
+ "description": "Global user toggle for the Fast service tier declared by the active model profile.",
52
+ "default": false
53
+ },
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
+ "imageGeneration": {
111
+ "type": "boolean",
112
+ "description": "Deprecated compatibility override. Move per-model image-generation support to extension models.json.",
113
+ "deprecated": true,
114
+ "default": true
115
+ },
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
+ "imageOutputDir": {
123
+ "type": "string",
124
+ "description": "Directory for generated images. Relative paths resolve against the workspace root.",
125
+ "minLength": 1,
126
+ "pattern": "\\S",
127
+ "default": ".pi/openai-codex-images"
128
+ },
129
+ "imageModel": {
130
+ "type": "string",
131
+ "description": "Image model used by standalone generation, hosted image tool rewriting, and direct fallback.",
132
+ "enum": ["gpt-image-2", "gpt-image-1.5", "gpt-image-1"],
133
+ "default": "gpt-image-2"
134
+ },
135
+ "directImageApiFallback": {
136
+ "type": "boolean",
137
+ "description": "Allow direct OpenAI Images API generation when native Codex generation is unavailable.",
138
+ "default": false
139
+ },
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
+ "viewImageWorkspaceOnly": {
147
+ "type": "boolean",
148
+ "description": "Reject view_image paths outside the active workspace.",
149
+ "default": false
150
+ },
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
+ "deferApplyPatchRendering": {
169
+ "type": "boolean",
170
+ "description": "Use Pi's fallback tool renderer instead of the built-in streaming filesystem preview.",
171
+ "default": false
172
+ }
173
+ }
174
+ }
@@ -0,0 +1,217 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://unpkg.com/@oai404iao/pi-codex-minimal-tools@1/models.schema.json",
4
+ "title": "@oai404iao/pi-codex-minimal-tools model catalog overrides",
5
+ "description": "Per-model Codex protocol and tool capability profiles. User entries override bundled entries by exact provider/model id.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["version", "models"],
9
+ "properties": {
10
+ "$schema": {
11
+ "type": "string",
12
+ "description": "JSON Schema URL used by editors for validation and completion.",
13
+ "default": "https://unpkg.com/@oai404iao/pi-codex-minimal-tools@1/models.schema.json"
14
+ },
15
+ "version": {
16
+ "const": 1,
17
+ "description": "Model catalog format version.",
18
+ "default": 1
19
+ },
20
+ "models": {
21
+ "type": "array",
22
+ "description": "Exact per-model profiles. Duplicate ids in one user file are rejected.",
23
+ "items": {
24
+ "$ref": "#/$defs/model"
25
+ },
26
+ "default": []
27
+ }
28
+ },
29
+ "$defs": {
30
+ "modelId": {
31
+ "type": "string",
32
+ "pattern": "^[^\\s/]+/\\S+$"
33
+ },
34
+ "model": {
35
+ "type": "object",
36
+ "additionalProperties": false,
37
+ "required": ["id"],
38
+ "properties": {
39
+ "id": {
40
+ "$ref": "#/$defs/modelId",
41
+ "description": "Exact provider/model id, for example openai/gpt-5.5."
42
+ },
43
+ "extends": {
44
+ "$ref": "#/$defs/modelId",
45
+ "description": "Optional parent profile. The parent is deep-merged first; arrays are replaced."
46
+ },
47
+ "enabled": {
48
+ "type": "boolean",
49
+ "description": "Whether this profile can activate extension behavior."
50
+ },
51
+ "responses": {
52
+ "type": "object",
53
+ "additionalProperties": false,
54
+ "properties": {
55
+ "providerShim": {
56
+ "type": "boolean",
57
+ "description": "Use this extension's Codex Responses serializer/parser. The Pi model must use api openai-responses or openai-codex-responses."
58
+ },
59
+ "endpoint": {
60
+ "enum": ["auto", "openai", "codex"],
61
+ "description": "Endpoint and authentication shape."
62
+ },
63
+ "mode": {
64
+ "enum": ["standard", "lite"],
65
+ "description": "Standard Responses or the internal Codex Responses Lite envelope."
66
+ },
67
+ "reasoningSummary": {
68
+ "enum": ["auto", "concise", "detailed", "none"],
69
+ "description": "Reasoning summary mode. none omits reasoning.summary; absent defaults to auto in Standard mode and none in Lite mode."
70
+ },
71
+ "systemPromptPlacement": {
72
+ "enum": ["instructions", "developer"],
73
+ "description": "Standard-mode prompt placement. Lite always uses a developer message."
74
+ },
75
+ "transport": {
76
+ "enum": ["sse", "websocket", "websocket-cached", "auto"],
77
+ "description": "Responses transport and continuation strategy."
78
+ },
79
+ "websocketPrewarm": {
80
+ "type": "boolean",
81
+ "description": "At session startup, schedule one best-effort generate:false prewarm request containing only the stable system/tool envelope."
82
+ }
83
+ }
84
+ },
85
+ "tools": {
86
+ "type": "object",
87
+ "additionalProperties": false,
88
+ "properties": {
89
+ "parallelCalls": {
90
+ "type": "boolean",
91
+ "description": "Whether the request permits parallel tool calls. Lite always forces false."
92
+ },
93
+ "applyPatch": {
94
+ "description": "Disable apply_patch, expose a JSON function tool, or use the Codex freeform custom tool.",
95
+ "enum": [false, "function", "custom"],
96
+ "enumDescriptions": [
97
+ "Do not expose an apply_patch tool.",
98
+ "Expose apply_patch as a regular JSON function tool.",
99
+ "Expose apply_patch as the Codex freeform custom tool."
100
+ ]
101
+ },
102
+ "webSearch": {
103
+ "description": "Disable web search or choose hosted Responses search versus standalone Codex web.run.",
104
+ "if": {
105
+ "type": "boolean"
106
+ },
107
+ "then": {
108
+ "const": false
109
+ },
110
+ "else": {
111
+ "type": "object"
112
+ },
113
+ "defaultSnippets": [
114
+ {
115
+ "label": "Disable web search",
116
+ "description": "Do not expose web search for this model.",
117
+ "body": false
118
+ },
119
+ {
120
+ "label": "Hosted web search",
121
+ "description": "Use the server-executed Responses web_search tool.",
122
+ "body": {
123
+ "implementation": "hosted"
124
+ }
125
+ },
126
+ {
127
+ "label": "Standalone web search",
128
+ "description": "Expose web.run and call the Codex alpha/search endpoint.",
129
+ "body": {
130
+ "implementation": "standalone"
131
+ }
132
+ }
133
+ ],
134
+ "additionalProperties": false,
135
+ "required": ["implementation"],
136
+ "properties": {
137
+ "implementation": {
138
+ "enum": ["hosted", "standalone"],
139
+ "enumDescriptions": [
140
+ "Use the server-executed Responses web_search tool.",
141
+ "Expose web.run and call the Codex alpha/search endpoint."
142
+ ]
143
+ },
144
+ "contentTypes": {
145
+ "type": "array",
146
+ "description": "Search modalities advertised or accepted by this model.",
147
+ "minItems": 1,
148
+ "items": {
149
+ "enum": ["text", "image"]
150
+ },
151
+ "uniqueItems": true
152
+ }
153
+ }
154
+ },
155
+ "imageGeneration": {
156
+ "description": "Disable image generation, use hosted Responses image_generation, or use standalone Codex Images endpoints.",
157
+ "enum": [false, "hosted", "standalone"],
158
+ "enumDescriptions": [
159
+ "Do not expose an image-generation tool.",
160
+ "Use the hosted Responses image_generation tool.",
161
+ "Expose image_gen.imagegen and call the standalone Codex Images endpoints."
162
+ ]
163
+ },
164
+ "viewImage": {
165
+ "type": "boolean",
166
+ "description": "Expose the local view_image tool when the Pi model accepts image input."
167
+ }
168
+ }
169
+ },
170
+ "compaction": {
171
+ "enum": ["pi", "responses", "responses-compact"],
172
+ "description": "Pi summary compaction, Codex remote compaction v2, or the legacy /responses/compact endpoint."
173
+ },
174
+ "fast": {
175
+ "description": "Disable Fast mode for this model or configure its service tier and optional usage-cost multiplier.",
176
+ "if": {
177
+ "type": "boolean"
178
+ },
179
+ "then": {
180
+ "const": false
181
+ },
182
+ "else": {
183
+ "type": "object"
184
+ },
185
+ "defaultSnippets": [
186
+ {
187
+ "label": "Disable Fast mode",
188
+ "description": "Do not enable a Fast service tier for this model.",
189
+ "body": false
190
+ },
191
+ {
192
+ "label": "Configure Fast mode",
193
+ "description": "Configure the Responses service tier used by the global Fast toggle.",
194
+ "body": {
195
+ "serviceTier": "priority"
196
+ }
197
+ }
198
+ ],
199
+ "additionalProperties": false,
200
+ "required": ["serviceTier"],
201
+ "properties": {
202
+ "serviceTier": {
203
+ "type": "string",
204
+ "minLength": 1,
205
+ "description": "Responses service_tier value sent when the global Fast toggle is enabled."
206
+ },
207
+ "costMultiplier": {
208
+ "type": "number",
209
+ "exclusiveMinimum": 0,
210
+ "description": "Optional multiplier applied to Pi's reported request cost for this tier."
211
+ }
212
+ }
213
+ }
214
+ }
215
+ }
216
+ }
217
+ }
package/package.json ADDED
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "@oai404iao/pi-codex-minimal-tools",
3
+ "version": "1.3.0",
4
+ "description": "Model-profiled Codex Responses tools for Pi: WebSocket, Lite, web search, images, compaction, and apply_patch",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/oai404iao/omp.git",
8
+ "directory": "pi-extensions/pi-codex-minimal-tools"
9
+ },
10
+ "homepage": "https://github.com/oai404iao/omp/tree/main/pi-extensions/pi-codex-minimal-tools#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/oai404iao/omp/issues"
13
+ },
14
+ "type": "module",
15
+ "keywords": [
16
+ "pi-package",
17
+ "pi",
18
+ "pi-coding-agent",
19
+ "codex",
20
+ "openai",
21
+ "image-generation",
22
+ "web-search",
23
+ "apply-patch"
24
+ ],
25
+ "license": "SEE LICENSE IN LICENSE",
26
+ "publishConfig": {
27
+ "access": "public",
28
+ "registry": "https://registry.npmjs.org/"
29
+ },
30
+ "pi": {
31
+ "extensions": [
32
+ "./src/index.ts"
33
+ ]
34
+ },
35
+ "peerDependencies": {
36
+ "@earendil-works/pi-ai": ">=0.84.2",
37
+ "@earendil-works/pi-coding-agent": ">=0.84.2",
38
+ "@earendil-works/pi-tui": ">=0.84.2",
39
+ "typebox": "*"
40
+ },
41
+ "dependencies": {
42
+ "https-proxy-agent": "^9.1.0",
43
+ "socks-proxy-agent": "^10.1.0",
44
+ "undici": "^8.10.0",
45
+ "ws": "^8.21.1"
46
+ },
47
+ "devDependencies": {
48
+ "@earendil-works/pi-ai": "^0.84.2",
49
+ "@earendil-works/pi-coding-agent": "^0.84.2",
50
+ "@earendil-works/pi-tui": "^0.84.2",
51
+ "@types/node": "^26.2.0",
52
+ "tsx": "^4.20.6",
53
+ "typebox": "^1.1.24",
54
+ "typescript": "^7.0.2"
55
+ },
56
+ "scripts": {
57
+ "typecheck": "tsc -p tsconfig.json --noEmit",
58
+ "test": "tsx --test tests/**/*.test.ts",
59
+ "check": "npm run typecheck && npm test"
60
+ },
61
+ "files": [
62
+ "src/",
63
+ "provenance/",
64
+ "README.md",
65
+ "LICENSE",
66
+ "LICENSES/",
67
+ "THIRD_PARTY_NOTICES.md",
68
+ "config.schema.json",
69
+ "models.schema.json",
70
+ "package.json"
71
+ ],
72
+ "engines": {
73
+ "node": ">=22.19.0"
74
+ },
75
+ "peerDependenciesMeta": {
76
+ "@earendil-works/pi-ai": {
77
+ "optional": true
78
+ },
79
+ "@earendil-works/pi-coding-agent": {
80
+ "optional": true
81
+ },
82
+ "@earendil-works/pi-tui": {
83
+ "optional": true
84
+ }
85
+ },
86
+ "gitHead": "596d799c6f7db3508b6d46bb05cdca6ea9e3b716"
87
+ }