@luan.sh/pi-fileops 0.3.7 → 0.3.8

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 CHANGED
@@ -1,6 +1,4 @@
1
- # @luan.sh/pi-fileops
2
-
3
- [Pi gallery](https://pi.dev/packages/@luan.sh/pi-fileops)
1
+ # @luan.sh/pi-fileops&nbsp;[<img src="https://pi.luan.sh/icons/pi.svg" width="14" alt="Pi gallery">](https://pi.dev/packages/@luan.sh/pi-fileops)&nbsp;[<img src="https://pi.luan.sh/icons/npm.svg" width="14" alt="npm">](https://www.npmjs.com/package/@luan.sh/pi-fileops)
4
2
 
5
3
  `@luan.sh/pi-fileops` adds an `apply_patch` tool to Pi. The model writes a
6
4
  Codex-style patch (`*** Begin Patch` ... `*** End Patch`) and a native Rust
@@ -10,9 +8,9 @@ and, when Code Mode is installed, as `tools.apply_patch(...)` inside `exec`.
10
8
 
11
9
  ## Preview
12
10
 
13
- ![@luan.sh/pi-fileops in Bootty](https://github.com/luan/agents/releases/download/v0.3.2/pi-fileops.png)
11
+ ![@luan.sh/pi-fileops in Bootty](https://pi.luan.sh/media/previews/pi-fileops-fd6d191a4760.png)
14
12
 
15
- [Watch the demo](https://github.com/luan/agents/releases/download/v0.3.2/pi-fileops.mp4).
13
+ [Watch the demo](https://pi.luan.sh/media/previews/pi-fileops-fcf6128b5f4c.mp4).
16
14
 
17
15
  ## Install
18
16
 
@@ -20,7 +18,7 @@ and, when Code Mode is installed, as `tools.apply_patch(...)` inside `exec`.
20
18
  pi install npm:@luan.sh/pi-fileops
21
19
  ```
22
20
 
23
- Requires a Rust toolchain (<https://rustup.rs>). The `apply_patch` binary builds
21
+ Requires a Rust toolchain (<https://rustup.rs>). The `apply-patch` binary builds
24
22
  itself on first use under Pi's agent directory (`native/apply-patch/<version>/`).
25
23
  Set `PI_APPLY_PATCH_BIN` to use a prebuilt binary.
26
24
 
@@ -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&nbsp;[<img src="https://pi.luan.sh/icons/pi.svg" width="14" alt="Pi gallery">](https://pi.dev/packages/@luan.sh/pi-code-mode)&nbsp;[<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
- ![@luan.sh/pi-code-mode in Bootty](https://github.com/luan/agents/releases/download/v0.3.3/pi-code-mode.png)
15
+ ![@luan.sh/pi-code-mode in Bootty](https://pi.luan.sh/media/previews/pi-code-mode-1fb9bf32cd5a.png)
18
16
 
19
- [Watch the demo](https://github.com/luan/agents/releases/download/v0.3.3/pi-code-mode.mp4).
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.8",
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://github.com/luan/agents/releases/download/v0.3.3/pi-code-mode.png",
25
- "video": "https://github.com/luan/agents/releases/download/v0.3.3/pi-code-mode.mp4"
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-libtui
2
-
3
- [Pi gallery](https://pi.dev/packages/@luan.sh/pi-libtui)
1
+ # @luan.sh/pi-libtui&nbsp;[<img src="https://pi.luan.sh/icons/pi.svg" width="14" alt="Pi gallery">](https://pi.dev/packages/@luan.sh/pi-libtui)&nbsp;[<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
- ![@luan.sh/pi-libtui in Bootty](https://github.com/luan/agents/releases/download/v0.3.2/pi-libtui.png)
21
+ ![@luan.sh/pi-libtui in Bootty](https://pi.luan.sh/media/previews/pi-libtui-1820a03ca387.png)
24
22
 
25
- [Watch the demo](https://github.com/luan/agents/releases/download/v0.3.2/pi-libtui.mp4).
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
+ ![ActionPanel and DialogButtonBar in pi-copy-mode](https://pi.luan.sh/media/libtui/action-panel.png)
59
+
60
+ `MultiSelect` with ordered checkboxes, a filter `SemanticInput`, and a
61
+ `DialogButtonBar`: the pi-xsettings segment editor.
62
+
63
+ ![MultiSelect in pi-xsettings](https://pi.luan.sh/media/libtui/multi-select.png)
64
+
65
+ `mountSplitPane` with side-panel tabs from `registerSidePanelProvider`:
66
+ pi-panels hosting a pi-side conversation.
67
+
68
+ ![Split pane and side-panel tabs in pi-panels](https://pi.luan.sh/media/libtui/split-panes.png)
69
+
70
+ `UnifiedDiffView` from `pi-libtui/diff`: the pi-fileops `apply_patch` result.
71
+
72
+ ![UnifiedDiffView in pi-fileops](https://pi.luan.sh/media/libtui/unified-diff.png)
73
+
74
+ `PtyPane` over `TerminalProjection` from `pi-libtui/terminal`: the
75
+ pi-exec-command Process Hub attached to a running server.
76
+
77
+ ![PtyPane in pi-exec-command](https://pi.luan.sh/media/libtui/terminal.png)
78
+
79
+ `renderDetailCard` as an anchored overlay: a pi-copy-mode annotation.
80
+
81
+ ![Detail card in pi-copy-mode](https://pi.luan.sh/media/libtui/detail-card.png)
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
+ ![ToolActivity rows in pi-tool-search](https://pi.luan.sh/media/libtui/tool-activity.png)
87
+
88
+ `ProgressBar`, `renderPill`, and `renderEditorTokenPills`: the
89
+ pi-custom-editor status row and file tokens.
90
+
91
+ ![Status row and editor pills in pi-custom-editor](https://pi.luan.sh/media/libtui/status-row.png)
92
+
93
+ `TransientPill`: the pi-tuicr confirmation after a review comment is added.
94
+
95
+ ![TransientPill in pi-tuicr](https://pi.luan.sh/media/libtui/transient-pill.png)
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 `terminal_bridge` (the
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 `terminal_bridge` binary builds itself on first use
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
- 6ed73340be70e909918ec92adc31ba920bfc8cd4
1
+ eace67b49e52950cb408c08f290f1ca9c409d68a
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luan.sh/pi-libtui",
3
- "version": "0.3.8",
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://github.com/luan/agents/releases/download/v0.3.2/pi-libtui.png",
34
- "video": "https://github.com/luan/agents/releases/download/v0.3.2/pi-libtui.mp4"
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": "*",
@@ -35,7 +35,7 @@ export type NativeBinaryLocation =
35
35
 
36
36
  export const TERMINAL_BRIDGE: NativeBinary = {
37
37
  crate: "terminal-bridge",
38
- binaryName: "terminal_bridge",
38
+ binaryName: "terminal-bridge",
39
39
  env: "PI_TERMINAL_BRIDGE_BINARY",
40
40
  };
41
41
 
@@ -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", "terminal_bridge");
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({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luan.sh/pi-fileops",
3
- "version": "0.3.7",
3
+ "version": "0.3.8",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -20,8 +20,8 @@
20
20
  "./src/extension.ts",
21
21
  "./node_modules/@luan.sh/pi-libtui/src/extension.ts"
22
22
  ],
23
- "image": "https://github.com/luan/agents/releases/download/v0.3.2/pi-fileops.png",
24
- "video": "https://github.com/luan/agents/releases/download/v0.3.2/pi-fileops.mp4"
23
+ "image": "https://pi.luan.sh/media/previews/pi-fileops-fd6d191a4760.png",
24
+ "video": "https://pi.luan.sh/media/previews/pi-fileops-fcf6128b5f4c.mp4"
25
25
  },
26
26
  "dependencies": {
27
27
  "@luan.sh/pi-code-mode": "file:../pi-code-mode",
package/src/binary.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ensureNativeBinary, type NativeBinary } from "@luan.sh/pi-libtui";
2
2
 
3
- const APPLY_PATCH: NativeBinary = { crate: "apply-patch", binaryName: "apply_patch", env: "PI_APPLY_PATCH_BIN" };
3
+ const APPLY_PATCH: NativeBinary = { crate: "apply-patch", binaryName: "apply-patch", env: "PI_APPLY_PATCH_BIN" };
4
4
 
5
5
  export function resolveApplyPatchBinary(): Promise<string> {
6
6
  return ensureNativeBinary(APPLY_PATCH);
@@ -19,7 +19,7 @@ const releaseBinary = join(
19
19
  workspaceRoot,
20
20
  "target",
21
21
  "release",
22
- process.platform === "win32" ? "apply_patch.exe" : "apply_patch",
22
+ process.platform === "win32" ? "apply-patch.exe" : "apply-patch",
23
23
  );
24
24
  const originalOverride = process.env["PI_APPLY_PATCH_BIN"];
25
25
  const codeModeAdaptersKey = Symbol.for("pi-code-mode/nested-tool-adapters/v2");