@felan-ai/ext-codex 0.3.4 → 0.3.6

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/NOTICE CHANGED
@@ -11,6 +11,11 @@ preservation behavior is adapted from
11
11
  b4b99630cda3c066749af0fb3ac9b8184b2a4c7d,
12
12
  https://github.com/IgorWarzocha/howaboua-pi-stuff/tree/b4b99630cda3c066749af0fb3ac9b8184b2a4c7d/packages/pi-codex-conversion.
13
13
 
14
+ The narrow nullable strictness compatibility behavior is adapted from
15
+ @howaboua/pi-codex-conversion 3.0.26 at npm gitHead
16
+ f16fee563f71849cc2b9a94be2b6f70e12fca804,
17
+ https://github.com/IgorWarzocha/howaboua-pi-stuff/tree/f16fee563f71849cc2b9a94be2b6f70e12fca804/packages/pi-codex-conversion.
18
+
14
19
  Copyright (c) 2026 Umberto B.
15
20
  Licensed under the MIT License included in this package.
16
21
 
@@ -18,10 +23,10 @@ Adapted portions include structured tool schemas and output conventions,
18
23
  patch parsing and matching, model activation policy, structured skill-prompt
19
24
  preservation, OpenAI request options, cached WebSocket transport selection,
20
25
  and local TUI tool labels. Felan implements process and file operations against
21
- AgentRuntime and uses Pi 0.84.4's native OpenAI Codex transport for connection
26
+ AgentRuntime and uses Pi 0.85.1's native OpenAI Codex transport for connection
22
27
  reuse and cached continuation.
23
28
 
24
- This package uses @earendil-works/pi-tui 0.84.4 from
29
+ This package uses @earendil-works/pi-tui 0.85.1 from
25
30
  https://github.com/earendil-works/pi, licensed under the MIT License.
26
31
  Copyright (c) 2025 Mario Zechner.
27
32
 
package/README.md CHANGED
@@ -72,6 +72,15 @@ finish. Set it to `false` to use Pi's standard timing. Manual and
72
72
  overflow-recovery compaction remain immediate. Pi still owns summary generation;
73
73
  this setting does not enable upstream OpenAI native Responses compaction.
74
74
 
75
+ For eligible Responses requests, the extension converts Pi's nullable
76
+ function-tool `strict` value to `false` so optional arguments remain optional.
77
+ Explicit `true` or `false` values, absent values, and non-function tools are
78
+ left unchanged.
79
+
80
+ Pi 0.85.1 includes GPT-6 Astra in its built-in OpenAI and OpenAI Codex catalogs.
81
+ The existing GPT policy enables this extension's structured tools and native
82
+ Responses controls without a custom `models.json` entry.
83
+
75
84
  The extension excludes restart-durable jobs, web access, image generation,
76
85
  Code Mode/Responses Lite, prompt replacement, native Responses compaction,
77
86
  voice, and UI widgets.
@@ -1 +1 @@
1
- {"version":3,"file":"request-options.d.ts","sourceRoot":"","sources":["../src/request-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,EACpC,MAAM,EAAE,WAAW,GAClB,OAAO,GAAG,SAAS,CAQrB"}
1
+ {"version":3,"file":"request-options.d.ts","sourceRoot":"","sources":["../src/request-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,EACpC,MAAM,EAAE,WAAW,GAClB,OAAO,GAAG,SAAS,CASrB"}
@@ -2,13 +2,26 @@ import { supportsCodexResponsesRequest } from './model-policy.js';
2
2
  export function applyCodexRequestOptions(payload, ctx, config) {
3
3
  if (!supportsCodexResponsesRequest(ctx.model) || !isRecord(payload))
4
4
  return undefined;
5
- const text = isRecord(payload.text) ? payload.text : {};
5
+ const normalizedPayload = normalizeCodexFunctionToolStrictness(payload) ?? payload;
6
+ const text = isRecord(normalizedPayload.text) ? normalizedPayload.text : {};
6
7
  return {
7
- ...payload,
8
+ ...normalizedPayload,
8
9
  ...(config.fast ? { service_tier: 'priority' } : {}),
9
10
  text: { ...text, verbosity: config.verbosity },
10
11
  };
11
12
  }
13
+ function normalizeCodexFunctionToolStrictness(payload) {
14
+ if (!Array.isArray(payload.tools))
15
+ return undefined;
16
+ let changed = false;
17
+ const tools = payload.tools.map((tool) => {
18
+ if (!isRecord(tool) || tool.type !== 'function' || tool.strict !== null)
19
+ return tool;
20
+ changed = true;
21
+ return { ...tool, strict: false };
22
+ });
23
+ return changed ? { ...payload, tools } : undefined;
24
+ }
12
25
  function isRecord(value) {
13
26
  return typeof value === 'object' && value !== null && !Array.isArray(value);
14
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"request-options.js","sourceRoot":"","sources":["../src/request-options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAElE,MAAM,UAAU,wBAAwB,CACtC,OAAgB,EAChB,GAAoC,EACpC,MAAmB;IAEnB,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IACtF,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO;QACL,GAAG,OAAO;QACV,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"request-options.js","sourceRoot":"","sources":["../src/request-options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAElE,MAAM,UAAU,wBAAwB,CACtC,OAAgB,EAChB,GAAoC,EACpC,MAAmB;IAEnB,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IACtF,MAAM,iBAAiB,GAAG,oCAAoC,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;IACnF,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,OAAO;QACL,GAAG,iBAAiB;QACpB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,oCAAoC,CAC3C,OAAgC;IAEhC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACrF,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@felan-ai/ext-codex",
3
- "version": "0.3.4",
3
+ "version": "0.3.6",
4
4
  "description": "Codex-compatible structured tools and OpenAI request controls for Felan",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -25,14 +25,14 @@
25
25
  }
26
26
  },
27
27
  "dependencies": {
28
- "@earendil-works/pi-tui": "0.84.4",
28
+ "@earendil-works/pi-tui": "0.85.1",
29
29
  "typebox": "1.1.38"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "@felan-ai/agent-core": "^0.5.0"
33
33
  },
34
34
  "devDependencies": {
35
- "@felan-ai/agent-core": "0.5.7"
35
+ "@felan-ai/agent-core": "0.5.10"
36
36
  },
37
37
  "publishConfig": {
38
38
  "access": "public",