@oai404iao/pi-codex-minimal-tools 1.4.0 → 1.4.1-alpha.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 (95) hide show
  1. package/README.md +17 -11
  2. package/THIRD_PARTY_NOTICES.md +10 -0
  3. package/package.json +9 -9
  4. package/src/activation.ts +1 -56
  5. package/src/adapter/compaction/checkpoint.ts +1 -0
  6. package/src/adapter/compaction/collect.ts +1 -0
  7. package/src/adapter/compaction/http.ts +1 -0
  8. package/src/adapter/compaction/request.ts +1 -0
  9. package/src/adapter/compaction/transport.ts +1 -0
  10. package/src/adapter/compaction/websocket.ts +1 -0
  11. package/src/background-image-generation.ts +1 -574
  12. package/src/capabilities.ts +1 -146
  13. package/src/codex-http.ts +1 -133
  14. package/src/codex-identity-extension.ts +1 -339
  15. package/src/codex-request-profile.ts +1 -45
  16. package/src/codex-reserved-tools.ts +1 -323
  17. package/src/codex-wire-identity.ts +1 -596
  18. package/src/extension/prewarm-snapshot.ts +1 -0
  19. package/src/extension/provider-presentation.ts +1 -0
  20. package/src/extension/provider-runtime.ts +1 -0
  21. package/src/extension/register.ts +36 -0
  22. package/src/extension/startup-prewarm.ts +1 -0
  23. package/src/fast-mode.ts +1 -124
  24. package/src/glyphs.ts +1 -70
  25. package/src/index.ts +8 -331
  26. package/src/model-catalog/catalog.ts +1 -636
  27. package/src/model-catalog/runtime.ts +1 -113
  28. package/src/model-catalog/types.ts +1 -95
  29. package/src/native-compaction.ts +1 -393
  30. package/src/patch/apply.ts +1 -338
  31. package/src/patch/parser.ts +1 -224
  32. package/src/patch/render.ts +1 -201
  33. package/src/provider-headers.ts +1 -54
  34. package/src/provider-native-tools.ts +1 -71
  35. package/src/provider-shim.ts +20 -4511
  36. package/src/providers/codex-apply-patch-tool.ts +1 -23
  37. package/src/providers/openai-codex/cache-key.ts +1 -0
  38. package/src/providers/openai-codex/captured-stream.ts +1 -0
  39. package/src/providers/openai-codex/constants.ts +1 -0
  40. package/src/providers/openai-codex/continuation.ts +1 -0
  41. package/src/providers/openai-codex/errors.ts +1 -0
  42. package/src/providers/openai-codex/events.ts +1 -0
  43. package/src/providers/openai-codex/headers.ts +1 -0
  44. package/src/providers/openai-codex/lite.ts +1 -0
  45. package/src/providers/openai-codex/message.ts +1 -0
  46. package/src/providers/openai-codex/prewarm.ts +1 -0
  47. package/src/providers/openai-codex/proxy.ts +1 -0
  48. package/src/providers/openai-codex/reasoning.ts +1 -0
  49. package/src/providers/openai-codex/request-body.ts +1 -0
  50. package/src/providers/openai-codex/request-context.ts +1 -0
  51. package/src/providers/openai-codex/request-metadata.ts +1 -0
  52. package/src/providers/openai-codex/retry.ts +1 -0
  53. package/src/providers/openai-codex/runtime.ts +1 -0
  54. package/src/providers/openai-codex/sse.ts +1 -0
  55. package/src/providers/openai-codex/stream-effects.ts +1 -0
  56. package/src/providers/openai-codex/stream.ts +1 -0
  57. package/src/providers/openai-codex/types.ts +1 -0
  58. package/src/providers/openai-codex/urls.ts +1 -0
  59. package/src/providers/openai-codex/usage.ts +1 -0
  60. package/src/providers/openai-codex/websocket-connection.ts +1 -0
  61. package/src/providers/openai-codex/websocket-events.ts +1 -0
  62. package/src/providers/openai-codex/websocket-session.ts +1 -0
  63. package/src/providers/openai-codex/websocket-socket.ts +1 -0
  64. package/src/providers/openai-codex/websocket-stream.ts +1 -0
  65. package/src/providers/openai-responses-shared.ts +7 -1463
  66. package/src/providers/responses/citations.ts +1 -0
  67. package/src/providers/responses/history.ts +1 -0
  68. package/src/providers/responses/items.ts +1 -0
  69. package/src/providers/responses/markdown.ts +1 -0
  70. package/src/providers/responses/messages.ts +1 -0
  71. package/src/providers/responses/signatures.ts +1 -0
  72. package/src/providers/responses/stream-state.ts +1 -0
  73. package/src/providers/responses/stream.ts +1 -0
  74. package/src/providers/responses/text-renderer.ts +1 -0
  75. package/src/providers/responses/text.ts +1 -0
  76. package/src/providers/responses/tool-identity.ts +1 -0
  77. package/src/providers/responses/tools.ts +1 -0
  78. package/src/providers/responses/types.ts +1 -0
  79. package/src/providers/responses/usage.ts +1 -0
  80. package/src/settings.ts +1 -247
  81. package/src/subagent-inline.ts +1 -8
  82. package/src/tools/apply-patch.ts +1 -84
  83. package/src/tools/image-generation/capture.ts +1 -0
  84. package/src/tools/image-generation/display.ts +1 -0
  85. package/src/tools/image-generation/preview.ts +1 -0
  86. package/src/tools/image-generation/storage.ts +1 -0
  87. package/src/tools/image-generation/types.ts +1 -0
  88. package/src/tools/image-generation.ts +1 -274
  89. package/src/tools/view-image.ts +1 -98
  90. package/src/tools/web-search/activity.ts +1 -0
  91. package/src/tools/web-search/capture.ts +1 -0
  92. package/src/tools/web-search/render.ts +1 -0
  93. package/src/tools/web-search.ts +1 -554
  94. package/src/utils/images.ts +1 -73
  95. package/src/utils/theme.ts +1 -0
package/README.md CHANGED
@@ -3,11 +3,15 @@
3
3
  Codex-specific Responses support for Pi, driven by an exact per-model JSON
4
4
  catalog instead of model-name heuristics.
5
5
 
6
- Compatibility: Pi 0.84.2 or newer; tested against 0.84.2.
6
+ Peer floor: Pi 0.84.2; tested against 0.84.2 and 0.85.1.
7
7
 
8
- > npm identity: `@oai404iao/pi-codex-minimal-tools`. Version `1.3.0` is
9
- > prepared for a one-time manually authenticated npm bootstrap from a reviewed
10
- > public `main` commit.
8
+ > npm identity stays `@oai404iao/pi-codex-minimal-tools`. This checkout composes
9
+ > core, web-search and imagegen through a shared runtime. The four new packages
10
+ > are alpha bootstrap candidates. Guarded bundle publication remains blocked
11
+ > until those dependencies are bootstrapped and separately activated.
12
+ > Previously published tarballs are unchanged. See
13
+ > [package composition](../../docs/codex-packages.md) for local installation tests
14
+ > and version/lifecycle restrictions; this is not a new npm release.
11
15
 
12
16
  > **Compatibility boundary:** Responses Lite uses an internal Codex request
13
17
  > shape. This package pins and tests a compatibility serialization for exact
@@ -52,13 +56,15 @@ sessions; it does not register providers, tools, commands, or renderers.
52
56
 
53
57
  ## Install
54
58
 
55
- After `1.3.0` is available on npm:
59
+ After the reviewed split-package alpha and its dependencies are available on npm:
56
60
 
57
61
  ```bash
58
- pi install npm:@oai404iao/pi-codex-minimal-tools@1.3.0
62
+ pi install npm:@oai404iao/pi-codex-minimal-tools@1.4.1-alpha.0
59
63
  ```
60
64
 
61
- Before the initial bootstrap, or when testing unreleased source:
65
+ Until then, test a complete repository checkout after running the root
66
+ `npm ci --ignore-scripts`; an isolated bundle source directory cannot supply
67
+ its unpublished workspace dependencies:
62
68
 
63
69
  ```bash
64
70
  pi install /absolute/path/to/pi-codex-minimal-tools
@@ -424,8 +430,8 @@ Third-party material retains its own terms; see
424
430
  [LICENSE](LICENSE) and [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
425
431
 
426
432
  The Codex namespace-tool source attribution is recorded in
427
- `provenance/openai-codex-eb9dceba-reserved-tools.json`. The `1.3.0` source
428
- revision is intentionally staged for its one-time manual npm bootstrap and
429
- excluded from guarded GitHub Actions release artifacts until trusted publishing
430
- is configured. Responses Lite remains an internal Codex compatibility path,
433
+ `provenance/openai-codex-eb9dceba-reserved-tools.json`. The existing bundle has
434
+ configured trusted publishing, but the split-package alpha still requires
435
+ dependency-first bootstrap and activation of the four new packages before
436
+ guarded publication can proceed. Responses Lite remains an internal Codex compatibility path,
431
437
  not an OpenAI-supported public API contract.
@@ -1,5 +1,15 @@
1
1
  # Third-party notices
2
2
 
3
+ ## Split ownership
4
+
5
+ The local implementation paths described below are retained as compatibility
6
+ forwards or verified asset mirrors. Their adaptations now live in
7
+ `@oai404iao/pi-codex-core`; namespace serialization lives in
8
+ `@oai404iao/pi-codex-runtime/src/reserved-tools/`. Those packages retain the
9
+ original modification notices, Apache snapshots and provenance. Search/image
10
+ clients live in their respective capability packages. No upstream revision or
11
+ reviewed fingerprint changed during this move.
12
+
3
13
  ## OpenAI Codex
4
14
 
5
15
  This package includes and analyzes material from
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oai404iao/pi-codex-minimal-tools",
3
- "version": "1.4.0",
3
+ "version": "1.4.1-alpha.0",
4
4
  "description": "Model-profiled Codex Responses tools for Pi: WebSocket, Lite, web search, images, compaction, and apply_patch",
5
5
  "repository": {
6
6
  "type": "git",
@@ -43,15 +43,15 @@
43
43
  "typebox": "*"
44
44
  },
45
45
  "dependencies": {
46
- "https-proxy-agent": "^9.1.0",
47
- "socks-proxy-agent": "^10.1.0",
48
- "undici": "^8.10.0",
49
- "ws": "^8.21.1"
46
+ "@oai404iao/pi-codex-runtime": "0.1.0-alpha.1",
47
+ "@oai404iao/pi-codex-core": "0.1.0-alpha.1",
48
+ "@oai404iao/pi-codex-web-search": "0.1.0-alpha.1",
49
+ "@oai404iao/pi-codex-imagegen": "0.1.0-alpha.1"
50
50
  },
51
51
  "devDependencies": {
52
- "@earendil-works/pi-ai": "^0.84.2",
53
- "@earendil-works/pi-coding-agent": "^0.84.2",
54
- "@earendil-works/pi-tui": "^0.84.2",
52
+ "@earendil-works/pi-ai": "0.85.1",
53
+ "@earendil-works/pi-coding-agent": "0.85.1",
54
+ "@earendil-works/pi-tui": "0.85.1",
55
55
  "@types/node": "^26.2.0",
56
56
  "tsx": "^4.20.6",
57
57
  "typebox": "^1.1.24",
@@ -87,5 +87,5 @@
87
87
  "optional": true
88
88
  }
89
89
  },
90
- "gitHead": "a93559be8f8b02739310c492b36270b13607fbf9"
90
+ "gitHead": "53026bf9e3f6a1d16a9c990e6034b49041928eab"
91
91
  }
package/src/activation.ts CHANGED
@@ -1,56 +1 @@
1
- import type { ModelLike } from "./capabilities.js";
2
- import { listResolvedModelProfiles, resolveModelProfile } from "./model-catalog/catalog.js";
3
- import type { CodexMinimalToolsSettings } from "./settings.js";
4
-
5
- export interface ModelRegistryLike {
6
- getAll?: () => unknown;
7
- getAvailable?: () => unknown;
8
- find?: (provider: string, id: string) => unknown;
9
- }
10
-
11
- export interface ActivationContextLike {
12
- model?: ModelLike;
13
- modelRegistry?: ModelRegistryLike;
14
- }
15
-
16
- export function registryModels(registry: ModelRegistryLike | undefined): ModelLike[] {
17
- if (!registry) return [];
18
- for (const method of [registry.getAll, registry.getAvailable]) {
19
- if (typeof method !== "function") continue;
20
- try {
21
- const value = method.call(registry);
22
- if (Array.isArray(value)) return value.filter((model): model is ModelLike => Boolean(model) && typeof model === "object");
23
- } catch {
24
- // Try the next registry shape.
25
- }
26
- }
27
- return [];
28
- }
29
-
30
- export function hasConfiguredModelsLoaded(
31
- ctx: ActivationContextLike,
32
- settings?: CodexMinimalToolsSettings,
33
- ): boolean {
34
- const current = resolveModelProfile(ctx.model, { settings });
35
- if (current?.effective.enabled) return true;
36
- const configured = new Set(
37
- listResolvedModelProfiles({ settings })
38
- .filter((profile) => profile.effective.enabled)
39
- .map((profile) => profile.id.toLowerCase()),
40
- );
41
- if (registryModels(ctx.modelRegistry).some((model) => {
42
- const provider = model.provider?.trim().toLowerCase();
43
- const id = model.id?.trim().toLowerCase();
44
- return Boolean(provider && id && configured.has(`${provider}/${id}`));
45
- })) {
46
- return true;
47
- }
48
- try {
49
- return [...configured].some((fullId) => {
50
- const slash = fullId.indexOf("/");
51
- return Boolean(ctx.modelRegistry?.find?.(fullId.slice(0, slash), fullId.slice(slash + 1)));
52
- });
53
- } catch {
54
- return false;
55
- }
56
- }
1
+ export * from "@oai404iao/pi-codex-runtime/internal/activation";
@@ -0,0 +1 @@
1
+ export * from "@oai404iao/pi-codex-core/internal/adapter/compaction/checkpoint";
@@ -0,0 +1 @@
1
+ export * from "@oai404iao/pi-codex-core/internal/adapter/compaction/collect";
@@ -0,0 +1 @@
1
+ export * from "@oai404iao/pi-codex-core/internal/adapter/compaction/http";
@@ -0,0 +1 @@
1
+ export * from "@oai404iao/pi-codex-core/internal/adapter/compaction/request";
@@ -0,0 +1 @@
1
+ export * from "@oai404iao/pi-codex-core/internal/adapter/compaction/transport";
@@ -0,0 +1 @@
1
+ export * from "@oai404iao/pi-codex-core/internal/adapter/compaction/websocket";