@luan.sh/pi-codex-native 0.3.8 → 0.3.9
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 +5 -7
- package/node_modules/@luan.sh/pi-code-mode/README.md +3 -5
- package/node_modules/@luan.sh/pi-code-mode/package.json +3 -3
- package/node_modules/@luan.sh/pi-libactions/README.md +3 -5
- package/node_modules/@luan.sh/pi-libactions/package.json +3 -3
- package/node_modules/@luan.sh/pi-libtui/README.md +58 -7
- package/node_modules/@luan.sh/pi-libtui/native-revision +1 -1
- package/node_modules/@luan.sh/pi-libtui/package.json +3 -3
- package/node_modules/@luan.sh/pi-libtui/src/native-binary.ts +1 -1
- package/node_modules/@luan.sh/pi-libtui/test/native-binary.test.ts +1 -1
- package/node_modules/@luan.sh/pi-xsettings/README.md +3 -5
- package/node_modules/@luan.sh/pi-xsettings/package.json +3 -3
- package/package.json +3 -3
- package/src/tools/web-run/native.ts +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
# @luan.sh/pi-codex-native
|
|
2
|
-
|
|
3
|
-
[Pi gallery](https://pi.dev/packages/@luan.sh/pi-codex-native)
|
|
1
|
+
# @luan.sh/pi-codex-native [<img src="https://pi.luan.sh/icons/pi.svg" width="14" alt="Pi gallery">](https://pi.dev/packages/@luan.sh/pi-codex-native) [<img src="https://pi.luan.sh/icons/npm.svg" width="14" alt="npm">](https://www.npmjs.com/package/@luan.sh/pi-codex-native)
|
|
4
2
|
|
|
5
3
|
`@luan.sh/pi-codex-native` adds the `openai-codex` provider to Pi. It talks
|
|
6
4
|
to the ChatGPT-backed Codex Responses endpoint, keeps the provider's native
|
|
@@ -12,9 +10,9 @@ or image-generation tools.
|
|
|
12
10
|
|
|
13
11
|
## Preview
|
|
14
12
|
|
|
15
|
-

|
|
16
14
|
|
|
17
|
-
[Watch the demo](https://
|
|
15
|
+
[Watch the demo](https://pi.luan.sh/media/previews/pi-codex-native-38742cb8baf1.mp4).
|
|
18
16
|
|
|
19
17
|
## Install
|
|
20
18
|
|
|
@@ -148,7 +146,7 @@ is installed; otherwise the defaults apply.
|
|
|
148
146
|
`time` operations plus `response_length` and `settings.search_context_size`.
|
|
149
147
|
It rejects a non-Codex active model before starting the native process.
|
|
150
148
|
|
|
151
|
-
Requires a Rust toolchain (https://rustup.rs). The `
|
|
149
|
+
Requires a Rust toolchain (https://rustup.rs). The `web-run` binary builds
|
|
152
150
|
itself on first use under Pi's agent directory (`native/web-run/<version>/`).
|
|
153
151
|
Set `PI_CODEX_WEB_RUN_BIN` to use a prebuilt binary.
|
|
154
152
|
|
|
@@ -166,7 +164,7 @@ from `PI_CODEX_BASE_URL` or the default Codex backend.
|
|
|
166
164
|
- Browser login cannot return to Pi: make sure port `1455` is free. Set
|
|
167
165
|
`PI_OAUTH_CALLBACK_HOST` if the callback must bind to a host other than
|
|
168
166
|
`127.0.0.1`.
|
|
169
|
-
- `
|
|
167
|
+
- `web-run` fails to build: make sure `cargo` is on `PATH`, or point
|
|
170
168
|
`PI_CODEX_WEB_RUN_BIN` at a prebuilt binary.
|
|
171
169
|
- `web__run` rejects the model: the active model must use provider
|
|
172
170
|
`openai-codex` and API `openai-codex-responses`.
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
# @luan.sh/pi-code-mode
|
|
2
|
-
|
|
3
|
-
[Pi gallery](https://pi.dev/packages/@luan.sh/pi-code-mode)
|
|
1
|
+
# @luan.sh/pi-code-mode [<img src="https://pi.luan.sh/icons/pi.svg" width="14" alt="Pi gallery">](https://pi.dev/packages/@luan.sh/pi-code-mode) [<img src="https://pi.luan.sh/icons/npm.svg" width="14" alt="npm">](https://www.npmjs.com/package/@luan.sh/pi-code-mode)
|
|
4
2
|
|
|
5
3
|
Code Mode adds two tools to Pi:
|
|
6
4
|
|
|
@@ -14,9 +12,9 @@ available inside `exec` through the SDK described below.
|
|
|
14
12
|
|
|
15
13
|
## Preview
|
|
16
14
|
|
|
17
|
-

|
|
18
16
|
|
|
19
|
-
[Watch the demo](https://
|
|
17
|
+
[Watch the demo](https://pi.luan.sh/media/previews/pi-code-mode-90738a72b416.mp4).
|
|
20
18
|
|
|
21
19
|
## Install
|
|
22
20
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luan.sh/pi-code-mode",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.9",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"./src/extension.ts",
|
|
22
22
|
"./node_modules/@luan.sh/pi-libtui/src/extension.ts"
|
|
23
23
|
],
|
|
24
|
-
"image": "https://
|
|
25
|
-
"video": "https://
|
|
24
|
+
"image": "https://pi.luan.sh/media/previews/pi-code-mode-1fb9bf32cd5a.png",
|
|
25
|
+
"video": "https://pi.luan.sh/media/previews/pi-code-mode-90738a72b416.mp4"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"@earendil-works/pi-coding-agent": "*",
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
# @luan.sh/pi-libactions
|
|
2
|
-
|
|
3
|
-
[Pi gallery](https://pi.dev/packages/@luan.sh/pi-libactions)
|
|
1
|
+
# @luan.sh/pi-libactions [<img src="https://pi.luan.sh/icons/pi.svg" width="14" alt="Pi gallery">](https://pi.dev/packages/@luan.sh/pi-libactions) [<img src="https://pi.luan.sh/icons/npm.svg" width="14" alt="npm">](https://www.npmjs.com/package/@luan.sh/pi-libactions)
|
|
4
2
|
|
|
5
3
|
`@luan.sh/pi-libactions` is a UI-free action registry and keybinding loader
|
|
6
4
|
for Pi extensions. It is a library, not a Pi extension: importing it registers
|
|
@@ -17,9 +15,9 @@ without registering their keys as global editor shortcuts.
|
|
|
17
15
|
|
|
18
16
|
Actions registered by Side Panel and Side Chat, bound by Xsettings, and listed in Pi's `/hotkeys`. The library itself registers no UI.
|
|
19
17
|
|
|
20
|
-

|
|
21
19
|
|
|
22
|
-
[Watch the demo](https://
|
|
20
|
+
[Watch the demo](https://pi.luan.sh/media/previews/pi-libactions-c0f46f189045.mp4).
|
|
23
21
|
|
|
24
22
|
## For users: `keybindings.json`
|
|
25
23
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luan.sh/pi-libactions",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
},
|
|
19
19
|
"pi": {
|
|
20
20
|
"extensions": [],
|
|
21
|
-
"image": "https://
|
|
22
|
-
"video": "https://
|
|
21
|
+
"image": "https://pi.luan.sh/media/previews/pi-libactions-bbaab600e262.png",
|
|
22
|
+
"video": "https://pi.luan.sh/media/previews/pi-libactions-c0f46f189045.mp4"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {},
|
|
25
25
|
"peerDependencies": {
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
# @luan.sh/pi-libtui
|
|
2
|
-
|
|
3
|
-
[Pi gallery](https://pi.dev/packages/@luan.sh/pi-libtui)
|
|
1
|
+
# @luan.sh/pi-libtui [<img src="https://pi.luan.sh/icons/pi.svg" width="14" alt="Pi gallery">](https://pi.dev/packages/@luan.sh/pi-libtui) [<img src="https://pi.luan.sh/icons/npm.svg" width="14" alt="npm">](https://www.npmjs.com/package/@luan.sh/pi-libtui)
|
|
4
2
|
|
|
5
3
|
Shared terminal UI for Pi extensions: layouts, split panes, dialogs, pickers,
|
|
6
4
|
selection actions, semantic colors, icons, cursors, syntax highlighting,
|
|
@@ -20,9 +18,9 @@ registers no model-facing tools, keybindings, or feature-specific UI.
|
|
|
20
18
|
|
|
21
19
|
The native palette diagnostic and shared picker components in Xsettings.
|
|
22
20
|
|
|
23
|
-

|
|
24
22
|
|
|
25
|
-
[Watch the demo](https://
|
|
23
|
+
[Watch the demo](https://pi.luan.sh/media/previews/pi-libtui-e7ff85f140d3.mp4).
|
|
26
24
|
|
|
27
25
|
## Install
|
|
28
26
|
|
|
@@ -49,6 +47,59 @@ neither a generated 256-color palette nor an ANSI base-16 palette, the host
|
|
|
49
47
|
switches to Pi's built-in theme for the detected light or dark scheme (dark if
|
|
50
48
|
the measurement fails).
|
|
51
49
|
|
|
50
|
+
## Components
|
|
51
|
+
|
|
52
|
+
Captures of the shared components inside the extensions that use them. The
|
|
53
|
+
images are served from the documentation site.
|
|
54
|
+
|
|
55
|
+
`ActionPanel` with a `DialogButtonBar` footer in a `DialogOverlay`: the
|
|
56
|
+
pi-copy-mode reaction picker.
|
|
57
|
+
|
|
58
|
+

|
|
59
|
+
|
|
60
|
+
`MultiSelect` with ordered checkboxes, a filter `SemanticInput`, and a
|
|
61
|
+
`DialogButtonBar`: the pi-xsettings segment editor.
|
|
62
|
+
|
|
63
|
+

|
|
64
|
+
|
|
65
|
+
`mountSplitPane` with side-panel tabs from `registerSidePanelProvider`:
|
|
66
|
+
pi-panels hosting a pi-side conversation.
|
|
67
|
+
|
|
68
|
+

|
|
69
|
+
|
|
70
|
+
`UnifiedDiffView` from `pi-libtui/diff`: the pi-fileops `apply_patch` result.
|
|
71
|
+
|
|
72
|
+

|
|
73
|
+
|
|
74
|
+
`PtyPane` over `TerminalProjection` from `pi-libtui/terminal`: the
|
|
75
|
+
pi-exec-command Process Hub attached to a running server.
|
|
76
|
+
|
|
77
|
+

|
|
78
|
+
|
|
79
|
+
`renderDetailCard` as an anchored overlay: a pi-copy-mode annotation.
|
|
80
|
+
|
|
81
|
+

|
|
82
|
+
|
|
83
|
+
`ToolActivity` and `ToolTranscript` from `pi-libtui/tool`: pi-tool-search
|
|
84
|
+
and pi-exec-command rows collapsed into an `Explored` group.
|
|
85
|
+
|
|
86
|
+

|
|
87
|
+
|
|
88
|
+
`ProgressBar`, `renderPill`, and `renderEditorTokenPills`: the
|
|
89
|
+
pi-custom-editor status row and file tokens.
|
|
90
|
+
|
|
91
|
+

|
|
92
|
+
|
|
93
|
+
`TransientPill`: the pi-tuicr confirmation after a review comment is added.
|
|
94
|
+
|
|
95
|
+

|
|
96
|
+
|
|
97
|
+
Components without a capture in a shipped extension: `PickerPanel`
|
|
98
|
+
(pi-prompt-storage), `SearchableSelect` and `SelectBox` (pi-xsettings
|
|
99
|
+
editors), `SelectionActionBar` (pi-copy-mode), `FramedEditorOverlay`,
|
|
100
|
+
`mountHoverTooltip`, `FloatingOverlay`, `ActivityIndicator` styles, and
|
|
101
|
+
`applyScrollbar`. Add them here when a gallery recording shows them in use.
|
|
102
|
+
|
|
52
103
|
## Public modules
|
|
53
104
|
|
|
54
105
|
Every entry point is a side-effect-free import. "Host required" means the
|
|
@@ -76,9 +127,9 @@ guarded Pi 0.84–0.85 adapter; unsupported hosts keep their native transcript.
|
|
|
76
127
|
|
|
77
128
|
## Native binaries
|
|
78
129
|
|
|
79
|
-
Feature packages shell out to Rust binaries such as `
|
|
130
|
+
Feature packages shell out to Rust binaries such as `terminal-bridge` (the
|
|
80
131
|
exported `TERMINAL_BRIDGE` descriptor). Requires a Rust toolchain
|
|
81
|
-
(https://rustup.rs). The `
|
|
132
|
+
(https://rustup.rs). The `terminal-bridge` binary builds itself on first use
|
|
82
133
|
under Pi's agent directory (`native/terminal-bridge/<revision>/`), where
|
|
83
134
|
`<revision>` is the source commit recorded in the packaged `native-revision` file. Set `PI_TERMINAL_BRIDGE_BINARY` to use
|
|
84
135
|
a prebuilt binary; it must point at an executable file.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
eace67b49e52950cb408c08f290f1ca9c409d68a
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luan.sh/pi-libtui",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.9",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"themes": [
|
|
31
31
|
"./themes"
|
|
32
32
|
],
|
|
33
|
-
"image": "https://
|
|
34
|
-
"video": "https://
|
|
33
|
+
"image": "https://pi.luan.sh/media/previews/pi-libtui-1820a03ca387.png",
|
|
34
|
+
"video": "https://pi.luan.sh/media/previews/pi-libtui-e7ff85f140d3.mp4"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@earendil-works/pi-coding-agent": "*",
|
|
@@ -10,7 +10,7 @@ const options = (executables: readonly string[], environment: Record<string, str
|
|
|
10
10
|
rev: "v1.2.3",
|
|
11
11
|
isExecutable: (path: string) => executables.includes(path),
|
|
12
12
|
});
|
|
13
|
-
const managed = join("/agent/native", "terminal-bridge", "v1.2.3", "bin", "
|
|
13
|
+
const managed = join("/agent/native", "terminal-bridge", "v1.2.3", "bin", "terminal-bridge");
|
|
14
14
|
|
|
15
15
|
test("env override wins and must be executable", () => {
|
|
16
16
|
expect(locateNativeBinary(TERMINAL_BRIDGE, options(["/x/bridge"], { [ENV]: "/x/bridge" }))).toEqual({
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
# @luan.sh/pi-xsettings
|
|
2
|
-
|
|
3
|
-
[Pi gallery](https://pi.dev/packages/@luan.sh/pi-xsettings)
|
|
1
|
+
# @luan.sh/pi-xsettings [<img src="https://pi.luan.sh/icons/pi.svg" width="14" alt="Pi gallery">](https://pi.dev/packages/@luan.sh/pi-xsettings) [<img src="https://pi.luan.sh/icons/npm.svg" width="14" alt="npm">](https://www.npmjs.com/package/@luan.sh/pi-xsettings)
|
|
4
2
|
|
|
5
3
|
`@luan.sh/pi-xsettings` is a settings host for Pi extensions. It adds the
|
|
6
4
|
`/xsettings` editor to Pi's interactive TUI, persists Pi and extension settings
|
|
@@ -11,9 +9,9 @@ register through pi-libactions.
|
|
|
11
9
|
|
|
12
10
|
## Preview
|
|
13
11
|
|
|
14
|
-

|
|
15
13
|
|
|
16
|
-
[Watch the demo](https://
|
|
14
|
+
[Watch the demo](https://pi.luan.sh/media/previews/pi-xsettings-6661ed0cbe89.mp4).
|
|
17
15
|
|
|
18
16
|
## Install
|
|
19
17
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luan.sh/pi-xsettings",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"./src/extension.ts",
|
|
22
22
|
"./node_modules/@luan.sh/pi-libtui/src/extension.ts"
|
|
23
23
|
],
|
|
24
|
-
"image": "https://
|
|
25
|
-
"video": "https://
|
|
24
|
+
"image": "https://pi.luan.sh/media/previews/pi-xsettings-25c1f13ef32f.png",
|
|
25
|
+
"video": "https://pi.luan.sh/media/previews/pi-xsettings-6661ed0cbe89.mp4"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@luan.sh/pi-libactions": "file:../pi-libactions",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luan.sh/pi-codex-native",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.9",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"./src/extension.ts",
|
|
22
22
|
"./node_modules/@luan.sh/pi-libtui/src/extension.ts"
|
|
23
23
|
],
|
|
24
|
-
"image": "https://
|
|
25
|
-
"video": "https://
|
|
24
|
+
"image": "https://pi.luan.sh/media/previews/pi-codex-native-695375265293.png",
|
|
25
|
+
"video": "https://pi.luan.sh/media/previews/pi-codex-native-38742cb8baf1.mp4"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"@earendil-works/pi-ai": "*",
|
|
@@ -4,7 +4,7 @@ import type { WebRunParameters } from "./schema.ts";
|
|
|
4
4
|
|
|
5
5
|
const MAX_DIAGNOSTIC_CHARS = 8_192;
|
|
6
6
|
const MAX_STDOUT_BYTES = 8 * 1024 * 1024;
|
|
7
|
-
const WEB_RUN: NativeBinary = { crate: "web-run", binaryName: "
|
|
7
|
+
const WEB_RUN: NativeBinary = { crate: "web-run", binaryName: "web-run", env: "PI_CODEX_WEB_RUN_BIN" };
|
|
8
8
|
|
|
9
9
|
export function resolveWebRunBinary(hooks?: EnsureNativeBinaryHooks): Promise<string> {
|
|
10
10
|
return ensureNativeBinary(WEB_RUN, hooks);
|