@diegopetrucci/pi-extensions 0.1.74 → 0.1.78
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/LICENSE +2 -0
- package/README.md +17 -12
- package/extensions/agent-workflow-audit/README.md +1 -1
- package/extensions/agent-workflow-audit/index.ts +1631 -1009
- package/extensions/agent-workflow-audit/package.json +1 -1
- package/extensions/annotate-git-diff/README.md +3 -1
- package/extensions/annotate-git-diff/clipboard.ts +109 -100
- package/extensions/annotate-git-diff/git.ts +846 -768
- package/extensions/annotate-git-diff/glimpseui.d.ts +87 -78
- package/extensions/annotate-git-diff/index.ts +712 -671
- package/extensions/annotate-git-diff/package.json +1 -1
- package/extensions/annotate-git-diff/prompt.ts +45 -45
- package/extensions/annotate-git-diff/quiet-glimpse.ts +161 -155
- package/extensions/annotate-git-diff/review-server.ts +337 -311
- package/extensions/annotate-git-diff/types.ts +132 -132
- package/extensions/annotate-git-diff/ui.ts +27 -27
- package/extensions/annotate-git-diff/watch.ts +74 -74
- package/extensions/annotate-git-diff/web/app.js +1947 -1884
- package/extensions/annotate-git-diff/web/index.html +5 -6
- package/extensions/annotate-last-message/README.md +1 -1
- package/extensions/annotate-last-message/glimpseui.d.ts +87 -78
- package/extensions/annotate-last-message/index.ts +210 -206
- package/extensions/annotate-last-message/package.json +1 -1
- package/extensions/annotate-last-message/prompt.ts +87 -66
- package/extensions/annotate-last-message/quiet-glimpse.ts +161 -155
- package/extensions/annotate-last-message/session.ts +94 -89
- package/extensions/annotate-last-message/theme.ts +199 -193
- package/extensions/annotate-last-message/types.ts +23 -23
- package/extensions/annotate-last-message/ui.ts +27 -25
- package/extensions/annotate-last-message/web/app.js +4 -7
- package/extensions/annotate-last-message/web/index.html +3 -3
- package/extensions/annotate-last-message/web/md-renderer.js +1 -1
- package/extensions/brrr/README.md +1 -1
- package/extensions/brrr/index.ts +213 -191
- package/extensions/brrr/package.json +1 -1
- package/extensions/claude-fast/README.md +5 -79
- package/extensions/claude-fast/index.ts +31 -289
- package/extensions/claude-fast/package.json +2 -3
- package/extensions/code-reviewer/README.md +6 -6
- package/extensions/code-reviewer/index.ts +1825 -1373
- package/extensions/code-reviewer/package.json +1 -1
- package/extensions/confirm-destructive/README.md +1 -1
- package/extensions/confirm-destructive/index.ts +50 -52
- package/extensions/confirm-destructive/package.json +1 -1
- package/extensions/context-cap/README.md +9 -9
- package/extensions/context-cap/index.ts +313 -305
- package/extensions/context-cap/package.json +2 -2
- package/extensions/context-inspector/index.ts +1211 -1064
- package/extensions/context-inspector/package.json +1 -1
- package/extensions/contrarian/README.md +4 -3
- package/extensions/contrarian/index.ts +1863 -1737
- package/extensions/contrarian/package.json +1 -1
- package/extensions/dirty-repo-guard/index.ts +37 -41
- package/extensions/dirty-repo-guard/package.json +1 -1
- package/extensions/dynamic-context-pruning/README.md +11 -43
- package/extensions/dynamic-context-pruning/index.ts +2131 -2105
- package/extensions/dynamic-context-pruning/package.json +1 -1
- package/extensions/fast/README.md +52 -14
- package/extensions/fast/index.ts +513 -317
- package/extensions/fast/package.json +1 -1
- package/extensions/git-footer/README.md +1 -1
- package/extensions/git-footer/index.ts +458 -411
- package/extensions/git-footer/package.json +2 -3
- package/extensions/gnosis/index.ts +180 -130
- package/extensions/gnosis/package.json +1 -1
- package/extensions/inline-bash/index.ts +87 -103
- package/extensions/inline-bash/package.json +1 -1
- package/extensions/librarian/README.md +1 -1
- package/extensions/librarian/index.ts +1877 -1419
- package/extensions/librarian/package.json +1 -1
- package/extensions/minimal-footer/README.md +5 -5
- package/extensions/minimal-footer/index.ts +987 -1012
- package/extensions/minimal-footer/minimal-footer.example.json +1 -1
- package/extensions/minimal-footer/openai-usage.ts +195 -190
- package/extensions/minimal-footer/package.json +1 -1
- package/extensions/notify/index.ts +222 -230
- package/extensions/notify/package.json +1 -1
- package/extensions/openai-fast/README.md +5 -73
- package/extensions/openai-fast/index.ts +32 -272
- package/extensions/openai-fast/package.json +2 -3
- package/extensions/oracle/README.md +4 -3
- package/extensions/oracle/index.ts +1740 -1627
- package/extensions/oracle/package.json +1 -1
- package/extensions/permission-gate/README.md +3 -0
- package/extensions/permission-gate/index.ts +785 -612
- package/extensions/permission-gate/package.json +1 -1
- package/extensions/permission-gate/powershell-safety.ts +840 -793
- package/extensions/project-mcp-json/.pi-fleet-tested-version +1 -0
- package/extensions/project-mcp-json/README.md +199 -0
- package/extensions/project-mcp-json/config.ts +564 -0
- package/extensions/project-mcp-json/index.ts +119 -0
- package/extensions/project-mcp-json/package.json +38 -0
- package/extensions/quiet-tools/.pi-fleet-tested-version +1 -1
- package/extensions/quiet-tools/README.md +30 -19
- package/extensions/quiet-tools/index.ts +376 -291
- package/extensions/quiet-tools/package.json +2 -2
- package/extensions/review/README.md +2 -2
- package/extensions/review/index.ts +1745 -1872
- package/extensions/review/package.json +1 -1
- package/extensions/todo/index.ts +280 -280
- package/extensions/todo/package.json +1 -1
- package/extensions/triage-comments/README.md +6 -4
- package/extensions/triage-comments/index.ts +2620 -1888
- package/extensions/triage-comments/package.json +1 -1
- package/package.json +9 -6
- package/assets/social-preview.png +0 -0
- package/extensions/claude-fast/claude-fast.example.json +0 -4
- package/extensions/openai-fast/openai-fast.example.json +0 -4
|
@@ -20,7 +20,7 @@ Then reload pi:
|
|
|
20
20
|
|
|
21
21
|
## Usage
|
|
22
22
|
|
|
23
|
-
Run `/annotate-git-diff` inside a git repository. The command opens a native review window with:
|
|
23
|
+
Run `/annotate-git-diff` from an interactive pi TUI session inside a git repository. The command opens a native review window with:
|
|
24
24
|
|
|
25
25
|
- Monaco-based diff viewing,
|
|
26
26
|
- branch diff, per-commit including working tree, and all-files scopes,
|
|
@@ -37,6 +37,7 @@ There is no runtime setting or toggle for submit behavior. To restore the prior
|
|
|
37
37
|
|
|
38
38
|
## Requirements
|
|
39
39
|
|
|
40
|
+
- Interactive pi TUI session.
|
|
40
41
|
- Run inside a git repository.
|
|
41
42
|
- Local desktop support for opening a native [Glimpse](https://github.com/mariozechner/glimpse) window.
|
|
42
43
|
- Packaged Monaco and Tailwind assets from this npm package.
|
|
@@ -44,6 +45,7 @@ There is no runtime setting or toggle for submit behavior. To restore the prior
|
|
|
44
45
|
|
|
45
46
|
## Troubleshooting
|
|
46
47
|
|
|
48
|
+
- `annotate-git-diff requires interactive mode.` → run it from the pi TUI.
|
|
47
49
|
- `Review failed: Not inside a git repository.` → change into a git repo and rerun `/annotate-git-diff`.
|
|
48
50
|
- `No reviewable files found.` → make or fetch reviewable changes, then rerun.
|
|
49
51
|
- `Review failed: Glimpse host not found ...` → the native window runtime is unavailable; reinstall/update the package and rerun from a machine/session that can open native windows.
|
|
@@ -5,139 +5,148 @@ const MAX_CLIPBOARD_BYTES = 16 * 1024 * 1024;
|
|
|
5
5
|
type ClipboardPlatform = NodeJS.Platform;
|
|
6
6
|
|
|
7
7
|
interface ClipboardCommand {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
command: string;
|
|
9
|
+
args: string[];
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export interface ClipboardCommandResult {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
status: number | null;
|
|
14
|
+
signal?: NodeJS.Signals | null;
|
|
15
|
+
stdout?: string | Buffer;
|
|
16
|
+
stderr?: string | Buffer;
|
|
17
|
+
error?: Error;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export type ClipboardCommandRunner = (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
command: string,
|
|
22
|
+
args: string[],
|
|
23
|
+
options: { encoding: "utf8"; maxBuffer: number; input?: string },
|
|
24
24
|
) => ClipboardCommandResult;
|
|
25
25
|
|
|
26
26
|
interface ClipboardOptions {
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
platform?: ClipboardPlatform;
|
|
28
|
+
runner?: ClipboardCommandRunner;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
const defaultRunner: ClipboardCommandRunner = (command, args, options) =>
|
|
31
|
+
const defaultRunner: ClipboardCommandRunner = (command, args, options) =>
|
|
32
|
+
spawnSync(command, args, options);
|
|
32
33
|
|
|
33
34
|
function clipboardReadCommands(platform: ClipboardPlatform): ClipboardCommand[] {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
35
|
+
switch (platform) {
|
|
36
|
+
case "darwin":
|
|
37
|
+
return [{ command: "pbpaste", args: [] }];
|
|
38
|
+
case "win32":
|
|
39
|
+
return [
|
|
40
|
+
{
|
|
41
|
+
command: "powershell.exe",
|
|
42
|
+
args: [
|
|
43
|
+
"-NoProfile",
|
|
44
|
+
"-NonInteractive",
|
|
45
|
+
"-Command",
|
|
46
|
+
"[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; Get-Clipboard -Raw",
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
case "linux":
|
|
51
|
+
return [
|
|
52
|
+
{ command: "wl-paste", args: ["--type", "text/plain"] },
|
|
53
|
+
{ command: "xclip", args: ["-selection", "clipboard", "-out"] },
|
|
54
|
+
{ command: "xsel", args: ["--clipboard", "--output"] },
|
|
55
|
+
];
|
|
56
|
+
default:
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
function clipboardWriteCommands(platform: ClipboardPlatform): ClipboardCommand[] {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
62
|
+
switch (platform) {
|
|
63
|
+
case "darwin":
|
|
64
|
+
return [{ command: "pbcopy", args: [] }];
|
|
65
|
+
case "win32":
|
|
66
|
+
return [
|
|
67
|
+
{
|
|
68
|
+
command: "powershell.exe",
|
|
69
|
+
args: [
|
|
70
|
+
"-NoProfile",
|
|
71
|
+
"-NonInteractive",
|
|
72
|
+
"-Command",
|
|
73
|
+
"[Console]::InputEncoding = [System.Text.Encoding]::UTF8; $text = [Console]::In.ReadToEnd(); Set-Clipboard -Value $text",
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
case "linux":
|
|
78
|
+
return [
|
|
79
|
+
{ command: "wl-copy", args: ["--type", "text/plain"] },
|
|
80
|
+
{ command: "xclip", args: ["-selection", "clipboard", "-in"] },
|
|
81
|
+
{ command: "xsel", args: ["--clipboard", "--input"] },
|
|
82
|
+
];
|
|
83
|
+
default:
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
85
86
|
}
|
|
86
87
|
|
|
87
88
|
function commandLabel(command: ClipboardCommand): string {
|
|
88
|
-
|
|
89
|
+
return [command.command, ...command.args].join(" ");
|
|
89
90
|
}
|
|
90
91
|
|
|
91
92
|
function outputToString(value: string | Buffer | undefined): string {
|
|
92
|
-
|
|
93
|
-
|
|
93
|
+
if (value == null) return "";
|
|
94
|
+
return typeof value === "string" ? value : value.toString("utf8");
|
|
94
95
|
}
|
|
95
96
|
|
|
96
|
-
function runClipboardCommand(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
97
|
+
function runClipboardCommand(
|
|
98
|
+
command: ClipboardCommand,
|
|
99
|
+
runner: ClipboardCommandRunner,
|
|
100
|
+
input?: string,
|
|
101
|
+
): string {
|
|
102
|
+
const result = runner(command.command, command.args, {
|
|
103
|
+
encoding: "utf8",
|
|
104
|
+
maxBuffer: MAX_CLIPBOARD_BYTES,
|
|
105
|
+
...(input == null ? {} : { input }),
|
|
106
|
+
});
|
|
107
|
+
if (result.error) throw result.error;
|
|
108
|
+
if (result.status !== 0) {
|
|
109
|
+
const stderr = outputToString(result.stderr).trim();
|
|
110
|
+
const status = result.status == null ? result.signal || "unknown" : result.status;
|
|
111
|
+
throw new Error(`${commandLabel(command)} exited with ${status}${stderr ? `: ${stderr}` : ""}`);
|
|
112
|
+
}
|
|
113
|
+
return outputToString(result.stdout);
|
|
109
114
|
}
|
|
110
115
|
|
|
111
|
-
function runFirstAvailable(
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
116
|
+
function runFirstAvailable(
|
|
117
|
+
commands: ClipboardCommand[],
|
|
118
|
+
runner: ClipboardCommandRunner,
|
|
119
|
+
input?: string,
|
|
120
|
+
): string {
|
|
121
|
+
if (commands.length === 0) {
|
|
122
|
+
throw new Error(`System clipboard is unsupported on ${process.platform}.`);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const errors: string[] = [];
|
|
126
|
+
for (const command of commands) {
|
|
127
|
+
try {
|
|
128
|
+
return runClipboardCommand(command, runner, input);
|
|
129
|
+
} catch (error) {
|
|
130
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
131
|
+
errors.push(`${commandLabel(command)}: ${message}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
throw new Error(`No system clipboard command succeeded. ${errors.join("; ")}`);
|
|
126
135
|
}
|
|
127
136
|
|
|
128
137
|
export function readSystemClipboard(options: ClipboardOptions = {}): string {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
138
|
+
const platform = options.platform ?? process.platform;
|
|
139
|
+
const runner = options.runner ?? defaultRunner;
|
|
140
|
+
return runFirstAvailable(clipboardReadCommands(platform), runner);
|
|
132
141
|
}
|
|
133
142
|
|
|
134
143
|
export function writeSystemClipboard(text: string, options: ClipboardOptions = {}): void {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
144
|
+
const platform = options.platform ?? process.platform;
|
|
145
|
+
const runner = options.runner ?? defaultRunner;
|
|
146
|
+
runFirstAvailable(clipboardWriteCommands(platform), runner, text);
|
|
138
147
|
}
|
|
139
148
|
|
|
140
149
|
export const __testing = {
|
|
141
|
-
|
|
142
|
-
|
|
150
|
+
clipboardReadCommands,
|
|
151
|
+
clipboardWriteCommands,
|
|
143
152
|
};
|