@kingingwang/pi-windows-arm64 0.84.1 → 0.84.3
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/bin/CHANGELOG.md +168 -2
- package/bin/README.md +9 -4
- package/bin/docs/compaction.md +21 -6
- package/bin/docs/custom-provider.md +6 -3
- package/bin/docs/environment-variables.md +16 -10
- package/bin/docs/extensions.md +24 -9
- package/bin/docs/json.md +12 -5
- package/bin/docs/keybindings.md +22 -12
- package/bin/docs/llama-cpp.md +2 -0
- package/bin/docs/models.md +8 -2
- package/bin/docs/packages.md +2 -2
- package/bin/docs/providers.md +8 -1
- package/bin/docs/rpc.md +24 -7
- package/bin/docs/sdk.md +16 -2
- package/bin/docs/settings.md +41 -2
- package/bin/docs/skills.md +4 -3
- package/bin/docs/terminal-setup.md +34 -11
- package/bin/docs/themes.md +24 -3
- package/bin/docs/tui.md +2 -2
- package/bin/docs/usage.md +9 -4
- package/bin/docs/windows.md +24 -2
- package/bin/examples/extensions/border-status-editor.ts +1 -1
- package/bin/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/bin/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/bin/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/bin/examples/extensions/git-checkpoint.ts +2 -2
- package/bin/examples/extensions/gondolin/package-lock.json +2 -2
- package/bin/examples/extensions/gondolin/package.json +1 -1
- package/bin/examples/extensions/notify.ts +3 -1
- package/bin/examples/extensions/sandbox/package-lock.json +2 -2
- package/bin/examples/extensions/sandbox/package.json +1 -1
- package/bin/examples/extensions/subagent/README.md +3 -1
- package/bin/examples/extensions/subagent/agents.ts +40 -9
- package/bin/examples/extensions/subagent/index.ts +27 -4
- package/bin/examples/extensions/titlebar-spinner.ts +1 -1
- package/bin/examples/extensions/with-deps/package-lock.json +2 -2
- package/bin/examples/extensions/with-deps/package.json +1 -1
- package/bin/examples/rpc-extension-ui.ts +1 -1
- package/bin/examples/sdk/06-extensions.ts +1 -1
- package/bin/examples/sdk/README.md +1 -1
- package/bin/package.json +12 -14
- package/bin/pi.exe +0 -0
- package/bin/theme/dark.json +2 -0
- package/bin/theme/light.json +2 -0
- package/bin/theme/theme-schema.json +9 -1
- package/package.json +1 -1
- package/bin/node_modules/@mariozechner/clipboard-win32-arm64-msvc/README.md +0 -3
- package/bin/node_modules/@mariozechner/clipboard-win32-arm64-msvc/clipboard.win32-arm64-msvc.node +0 -0
- package/bin/node_modules/@mariozechner/clipboard-win32-arm64-msvc/package.json +0 -22
package/bin/docs/windows.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Windows Setup
|
|
2
2
|
|
|
3
|
-
Pi
|
|
3
|
+
Pi uses Git Bash by default on Windows. Checked locations (in order):
|
|
4
4
|
|
|
5
5
|
1. Custom path from `~/.pi/agent/settings.json`
|
|
6
6
|
2. Git Bash (`C:\Program Files\Git\bin\bash.exe`)
|
|
@@ -8,7 +8,29 @@ Pi requires a bash shell on Windows. Checked locations (in order):
|
|
|
8
8
|
|
|
9
9
|
For most users, [Git for Windows](https://git-scm.com/download/win) is sufficient.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## PowerShell Tool
|
|
12
|
+
|
|
13
|
+
The optional `powershell` tool runs commands through `pwsh.exe` when available, otherwise Windows PowerShell. It starts PowerShell with `-NoProfile -NonInteractive -ExecutionPolicy Bypass`. Administrator-enforced execution policies can still take precedence.
|
|
14
|
+
|
|
15
|
+
Use `defaultTools` to replace the model-facing `bash` tool:
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"defaultTools": ["read", "powershell", "edit", "write"]
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Or enable both while comparing behavior:
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"defaultTools": ["read", "bash", "powershell", "edit", "write"]
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The `!` and `!!` editor commands still use Bash.
|
|
32
|
+
|
|
33
|
+
## Custom Bash Path
|
|
12
34
|
|
|
13
35
|
```json
|
|
14
36
|
{
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-extension-custom-provider",
|
|
3
|
-
"version": "0.84.
|
|
3
|
+
"version": "0.84.3",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "pi-extension-custom-provider",
|
|
9
|
-
"version": "0.84.
|
|
9
|
+
"version": "0.84.3",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sdk": "^0.52.0"
|
|
12
12
|
}
|
|
@@ -46,8 +46,8 @@ export default function (pi: ExtensionAPI) {
|
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
48
|
|
|
49
|
-
pi.on("
|
|
50
|
-
// Clear checkpoints after agent completes
|
|
49
|
+
pi.on("agent_settled", async () => {
|
|
50
|
+
// Clear checkpoints after the full agent run completes
|
|
51
51
|
checkpoints.clear();
|
|
52
52
|
});
|
|
53
53
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-extension-gondolin",
|
|
3
|
-
"version": "0.84.
|
|
3
|
+
"version": "0.84.3",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "pi-extension-gondolin",
|
|
9
|
-
"version": "0.84.
|
|
9
|
+
"version": "0.84.3",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@earendil-works/gondolin": "0.12.0"
|
|
12
12
|
}
|
|
@@ -49,7 +49,9 @@ function notify(title: string, body: string): void {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
export default function (pi: ExtensionAPI) {
|
|
52
|
-
|
|
52
|
+
// `agent_end` fires after each low-level run; Pi may still retry, compact,
|
|
53
|
+
// or continue with queued follow-ups. Notify only after the full run settles.
|
|
54
|
+
pi.on("agent_settled", async () => {
|
|
53
55
|
notify("Pi", "Ready for input");
|
|
54
56
|
});
|
|
55
57
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-extension-sandbox",
|
|
3
|
-
"version": "1.14.
|
|
3
|
+
"version": "1.14.3",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "pi-extension-sandbox",
|
|
9
|
-
"version": "1.14.
|
|
9
|
+
"version": "1.14.3",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sandbox-runtime": "^0.0.26"
|
|
12
12
|
}
|
|
@@ -62,7 +62,7 @@ This tool executes a separate `pi` subprocess with a delegated system prompt and
|
|
|
62
62
|
|
|
63
63
|
To enable project-local agents, pass `agentScope: "both"` (or `"project"`). Only do this for repositories you trust.
|
|
64
64
|
|
|
65
|
-
When running interactively, the tool prompts for confirmation before running project-local agents. Set `confirmProjectAgents: false` to disable.
|
|
65
|
+
When running interactively, the tool prompts for confirmation before running project-local agents in untrusted projects. Trusted projects skip the additional prompt. Set `confirmProjectAgents: false` to disable confirmation.
|
|
66
66
|
|
|
67
67
|
## Usage
|
|
68
68
|
|
|
@@ -137,6 +137,8 @@ model: claude-haiku-4-5
|
|
|
137
137
|
System prompt for the agent goes here.
|
|
138
138
|
```
|
|
139
139
|
|
|
140
|
+
When `model` is omitted, the subagent inherits the dispatching session's active model and thinking level.
|
|
141
|
+
|
|
140
142
|
**Locations:**
|
|
141
143
|
- `~/.pi/agent/agents/*.md` - User-level (always loaded)
|
|
142
144
|
- `.pi/agents/*.md` - Project-level (only with `agentScope: "project"` or `"both"`)
|
|
@@ -23,6 +23,42 @@ export interface AgentDiscoveryResult {
|
|
|
23
23
|
projectAgentsDir: string | null;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Raw agent frontmatter. Values are `unknown` because `parseFrontmatter` runs a
|
|
28
|
+
* real YAML parser, so any scalar or collection can appear here.
|
|
29
|
+
*
|
|
30
|
+
* A type alias rather than an interface: `parseFrontmatter` constrains its
|
|
31
|
+
* parameter to `Record<string, unknown>`, and only an alias picks up the
|
|
32
|
+
* implicit index signature that satisfies it.
|
|
33
|
+
*/
|
|
34
|
+
type AgentFrontmatter = {
|
|
35
|
+
name?: unknown;
|
|
36
|
+
description?: unknown;
|
|
37
|
+
tools?: unknown;
|
|
38
|
+
model?: unknown;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Normalize a frontmatter `tools` value to a list of tool names.
|
|
43
|
+
*
|
|
44
|
+
* Both spellings are valid YAML and both are in use:
|
|
45
|
+
*
|
|
46
|
+
* tools: read, bash # string
|
|
47
|
+
* tools: [read, bash] # array
|
|
48
|
+
*
|
|
49
|
+
* so accept either. Anything else (a number, a map, a nested list) yields no
|
|
50
|
+
* tools rather than throwing: this runs inside agent discovery, where a single
|
|
51
|
+
* bad file must not take down every other agent in the same directory.
|
|
52
|
+
*/
|
|
53
|
+
function parseToolList(value: unknown): string[] | undefined {
|
|
54
|
+
const raw = Array.isArray(value) ? value : typeof value === "string" ? value.split(",") : [];
|
|
55
|
+
const tools = raw
|
|
56
|
+
.filter((t): t is string => typeof t === "string")
|
|
57
|
+
.map((t) => t.trim())
|
|
58
|
+
.filter(Boolean);
|
|
59
|
+
return tools.length > 0 ? tools : undefined;
|
|
60
|
+
}
|
|
61
|
+
|
|
26
62
|
function loadAgentsFromDir(dir: string, source: "user" | "project"): AgentConfig[] {
|
|
27
63
|
const agents: AgentConfig[] = [];
|
|
28
64
|
|
|
@@ -49,22 +85,17 @@ function loadAgentsFromDir(dir: string, source: "user" | "project"): AgentConfig
|
|
|
49
85
|
continue;
|
|
50
86
|
}
|
|
51
87
|
|
|
52
|
-
const { frontmatter, body } = parseFrontmatter<
|
|
88
|
+
const { frontmatter, body } = parseFrontmatter<AgentFrontmatter>(content);
|
|
53
89
|
|
|
54
|
-
if (
|
|
90
|
+
if (typeof frontmatter.name !== "string" || typeof frontmatter.description !== "string") {
|
|
55
91
|
continue;
|
|
56
92
|
}
|
|
57
93
|
|
|
58
|
-
const tools = frontmatter.tools
|
|
59
|
-
?.split(",")
|
|
60
|
-
.map((t: string) => t.trim())
|
|
61
|
-
.filter(Boolean);
|
|
62
|
-
|
|
63
94
|
agents.push({
|
|
64
95
|
name: frontmatter.name,
|
|
65
96
|
description: frontmatter.description,
|
|
66
|
-
tools:
|
|
67
|
-
model: frontmatter.model,
|
|
97
|
+
tools: parseToolList(frontmatter.tools),
|
|
98
|
+
model: typeof frontmatter.model === "string" ? frontmatter.model : undefined,
|
|
68
99
|
systemPrompt: body,
|
|
69
100
|
source,
|
|
70
101
|
filePath,
|
|
@@ -16,7 +16,7 @@ import { spawn } from "node:child_process";
|
|
|
16
16
|
import * as fs from "node:fs";
|
|
17
17
|
import * as os from "node:os";
|
|
18
18
|
import * as path from "node:path";
|
|
19
|
-
import type { AgentToolResult } from "@earendil-works/pi-agent-core";
|
|
19
|
+
import type { AgentToolResult, ThinkingLevel } from "@earendil-works/pi-agent-core";
|
|
20
20
|
import type { Message } from "@earendil-works/pi-ai";
|
|
21
21
|
import { StringEnum } from "@earendil-works/pi-ai";
|
|
22
22
|
import {
|
|
@@ -264,8 +264,14 @@ function getPiInvocation(args: string[]): { command: string; args: string[] } {
|
|
|
264
264
|
|
|
265
265
|
type OnUpdateCallback = (partial: AgentToolResult<SubagentDetails>) => void;
|
|
266
266
|
|
|
267
|
+
interface DispatchDefaults {
|
|
268
|
+
model?: string;
|
|
269
|
+
thinkingLevel?: ThinkingLevel;
|
|
270
|
+
}
|
|
271
|
+
|
|
267
272
|
async function runSingleAgent(
|
|
268
273
|
defaultCwd: string,
|
|
274
|
+
dispatchDefaults: DispatchDefaults,
|
|
269
275
|
agents: AgentConfig[],
|
|
270
276
|
agentName: string,
|
|
271
277
|
task: string,
|
|
@@ -292,7 +298,12 @@ async function runSingleAgent(
|
|
|
292
298
|
}
|
|
293
299
|
|
|
294
300
|
const args: string[] = ["--mode", "json", "-p", "--no-session"];
|
|
295
|
-
|
|
301
|
+
const inheritsDispatchConfig = !agent.model;
|
|
302
|
+
const model = agent.model ?? dispatchDefaults.model;
|
|
303
|
+
if (model) args.push("--model", model);
|
|
304
|
+
if (inheritsDispatchConfig && dispatchDefaults.thinkingLevel) {
|
|
305
|
+
args.push("--thinking", dispatchDefaults.thinkingLevel);
|
|
306
|
+
}
|
|
296
307
|
if (agent.tools && agent.tools.length > 0) args.push("--tools", agent.tools.join(","));
|
|
297
308
|
|
|
298
309
|
let tmpPromptDir: string | null = null;
|
|
@@ -306,7 +317,7 @@ async function runSingleAgent(
|
|
|
306
317
|
messages: [],
|
|
307
318
|
stderr: "",
|
|
308
319
|
usage: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, cost: 0, contextTokens: 0, turns: 0 },
|
|
309
|
-
model
|
|
320
|
+
model,
|
|
310
321
|
step,
|
|
311
322
|
};
|
|
312
323
|
|
|
@@ -471,6 +482,10 @@ export default function (pi: ExtensionAPI) {
|
|
|
471
482
|
|
|
472
483
|
async execute(_toolCallId, params, signal, onUpdate, ctx) {
|
|
473
484
|
const agentScope: AgentScope = params.agentScope ?? "user";
|
|
485
|
+
const dispatchDefaults: DispatchDefaults = {
|
|
486
|
+
model: ctx.model ? `${ctx.model.provider}/${ctx.model.id}` : undefined,
|
|
487
|
+
thinkingLevel: ctx.thinkingLevel,
|
|
488
|
+
};
|
|
474
489
|
const discovery = discoverAgents(ctx.cwd, agentScope);
|
|
475
490
|
const agents = discovery.agents;
|
|
476
491
|
const confirmProjectAgents = params.confirmProjectAgents ?? true;
|
|
@@ -502,7 +517,12 @@ export default function (pi: ExtensionAPI) {
|
|
|
502
517
|
};
|
|
503
518
|
}
|
|
504
519
|
|
|
505
|
-
if (
|
|
520
|
+
if (
|
|
521
|
+
(agentScope === "project" || agentScope === "both") &&
|
|
522
|
+
confirmProjectAgents &&
|
|
523
|
+
ctx.hasUI &&
|
|
524
|
+
!ctx.isProjectTrusted()
|
|
525
|
+
) {
|
|
506
526
|
const requestedAgentNames = new Set<string>();
|
|
507
527
|
if (params.chain) for (const step of params.chain) requestedAgentNames.add(step.agent);
|
|
508
528
|
if (params.tasks) for (const t of params.tasks) requestedAgentNames.add(t.agent);
|
|
@@ -552,6 +572,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
552
572
|
|
|
553
573
|
const result = await runSingleAgent(
|
|
554
574
|
ctx.cwd,
|
|
575
|
+
dispatchDefaults,
|
|
555
576
|
agents,
|
|
556
577
|
step.agent,
|
|
557
578
|
taskWithContext,
|
|
@@ -624,6 +645,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
624
645
|
const results = await mapWithConcurrencyLimit(params.tasks, MAX_CONCURRENCY, async (t, index) => {
|
|
625
646
|
const result = await runSingleAgent(
|
|
626
647
|
ctx.cwd,
|
|
648
|
+
dispatchDefaults,
|
|
627
649
|
agents,
|
|
628
650
|
t.agent,
|
|
629
651
|
t.task,
|
|
@@ -666,6 +688,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
666
688
|
if (params.agent && params.task) {
|
|
667
689
|
const result = await runSingleAgent(
|
|
668
690
|
ctx.cwd,
|
|
691
|
+
dispatchDefaults,
|
|
669
692
|
agents,
|
|
670
693
|
params.agent,
|
|
671
694
|
params.task,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-extension-with-deps",
|
|
3
|
-
"version": "0.84.
|
|
3
|
+
"version": "0.84.3",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "pi-extension-with-deps",
|
|
9
|
-
"version": "0.84.
|
|
9
|
+
"version": "0.84.3",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"ms": "^2.1.3"
|
|
12
12
|
},
|
|
@@ -71,7 +71,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
71
71
|
});
|
|
72
72
|
|
|
73
73
|
pi.on("agent_end", async (event) => {
|
|
74
|
-
console.log(\`[Extension]
|
|
74
|
+
console.log(\`[Extension] Low-level run ended, \${event.messages.length} messages\`);
|
|
75
75
|
});
|
|
76
76
|
|
|
77
77
|
// Register a custom tool
|
package/bin/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@earendil-works/pi-coding-agent",
|
|
3
|
-
"version": "0.84.
|
|
3
|
+
"version": "0.84.3",
|
|
4
4
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"piConfig": {
|
|
7
7
|
"configDir": ".pi"
|
|
8
8
|
},
|
|
9
9
|
"bin": {
|
|
10
|
-
"pi": "dist/cli.js"
|
|
10
|
+
"pi": "dist/bundle/cli.js"
|
|
11
11
|
},
|
|
12
12
|
"main": "./dist/index.js",
|
|
13
13
|
"types": "./dist/index.d.ts",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"import": "./dist/index.js"
|
|
18
18
|
},
|
|
19
19
|
"./rpc-entry": {
|
|
20
|
-
"import": "./dist/rpc-entry.js"
|
|
20
|
+
"import": "./dist/bundle/rpc-entry.js"
|
|
21
21
|
},
|
|
22
22
|
"./client": {
|
|
23
23
|
"types": "./dist/client/index.d.ts",
|
|
@@ -34,8 +34,9 @@
|
|
|
34
34
|
],
|
|
35
35
|
"scripts": {
|
|
36
36
|
"clean": "shx rm -rf dist",
|
|
37
|
-
"build": "
|
|
38
|
-
"build:
|
|
37
|
+
"build": "npm run build:unbundled && node ../../scripts/build-coding-agent-bundle.mjs",
|
|
38
|
+
"build:unbundled": "tsgo -p tsconfig.build.json && shx chmod +x dist/cli.js dist/rpc-entry.js && npm run copy-assets",
|
|
39
|
+
"build:binary": "npm --prefix ../tui run build && npm --prefix ../telemetry run build && npm --prefix ../ai run build && npm --prefix ../agent run build && npm --prefix ../protocol run build && npm --prefix ../client run build && npm run build && bun build --compile --no-compile-autoload-bunfig ./src/bun/cli.ts ./src/utils/image-resize-worker.ts --outfile dist/pi && npm run copy-binary-assets",
|
|
39
40
|
"copy-assets": "shx mkdir -p dist/modes/interactive/theme && shx cp src/modes/interactive/theme/*.json dist/modes/interactive/theme/ && shx mkdir -p dist/modes/interactive/assets && shx cp src/modes/interactive/assets/*.png dist/modes/interactive/assets/ && shx mkdir -p dist/core/export-html/vendor && shx cp src/core/export-html/template.html src/core/export-html/template.css src/core/export-html/template.js dist/core/export-html/ && shx cp src/core/export-html/vendor/*.js dist/core/export-html/vendor/",
|
|
40
41
|
"copy-binary-assets": "shx cp package.json dist/ && shx cp README.md dist/ && shx cp CHANGELOG.md dist/ && shx mkdir -p dist/theme && shx cp src/modes/interactive/theme/*.json dist/theme/ && shx mkdir -p dist/assets && shx cp src/modes/interactive/assets/*.png dist/assets/ && shx mkdir -p dist/export-html/vendor && shx cp src/core/export-html/template.html dist/export-html/ && shx cp src/core/export-html/vendor/*.js dist/export-html/vendor/ && shx cp -r docs dist/ && shx cp -r examples dist/ && shx cp ../../node_modules/@silvia-odwyer/photon-node/photon_rs_bg.wasm dist/",
|
|
41
42
|
"test": "vitest --run",
|
|
@@ -43,16 +44,15 @@
|
|
|
43
44
|
"prepublishOnly": "npm run clean && npm run build && npm run shrinkwrap"
|
|
44
45
|
},
|
|
45
46
|
"dependencies": {
|
|
46
|
-
"@earendil-works/pi-agent-core": "^0.84.
|
|
47
|
-
"@earendil-works/pi-ai": "^0.84.
|
|
48
|
-
"@earendil-works/pi-client": "^0.84.
|
|
49
|
-
"@earendil-works/pi-protocol": "^0.84.
|
|
50
|
-
"@earendil-works/pi-tui": "^0.84.
|
|
47
|
+
"@earendil-works/pi-agent-core": "^0.84.3",
|
|
48
|
+
"@earendil-works/pi-ai": "^0.84.3",
|
|
49
|
+
"@earendil-works/pi-client": "^0.84.3",
|
|
50
|
+
"@earendil-works/pi-protocol": "^0.84.3",
|
|
51
|
+
"@earendil-works/pi-tui": "^0.84.3",
|
|
51
52
|
"@silvia-odwyer/photon-node": "0.3.4",
|
|
52
53
|
"chalk": "5.6.2",
|
|
53
54
|
"cross-spawn": "7.0.6",
|
|
54
55
|
"diff": "8.0.4",
|
|
55
|
-
"glob": "13.0.6",
|
|
56
56
|
"grok-mermaid": "0.2.2",
|
|
57
57
|
"highlight.js": "10.7.3",
|
|
58
58
|
"hosted-git-info": "9.0.3",
|
|
@@ -77,10 +77,8 @@
|
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
79
|
"@types/cross-spawn": "6.0.6",
|
|
80
|
-
"@types/diff": "7.0.2",
|
|
81
80
|
"@types/hosted-git-info": "3.0.5",
|
|
82
|
-
"@types/
|
|
83
|
-
"@types/node": "24.12.4",
|
|
81
|
+
"@types/node": "22.19.19",
|
|
84
82
|
"@types/proper-lockfile": "4.1.4",
|
|
85
83
|
"@types/semver": "7.7.1",
|
|
86
84
|
"shx": "0.4.0",
|
package/bin/pi.exe
CHANGED
|
Binary file
|
package/bin/theme/dark.json
CHANGED
package/bin/theme/light.json
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"colors": {
|
|
36
36
|
"type": "object",
|
|
37
|
-
"description": "Theme color definitions (thinkingMax and
|
|
37
|
+
"description": "Theme color definitions (thinkingMax, scrollbarThumb, and search highlight colors are optional and use compatible fallbacks)",
|
|
38
38
|
"required": [
|
|
39
39
|
"accent",
|
|
40
40
|
"border",
|
|
@@ -141,6 +141,14 @@
|
|
|
141
141
|
"$ref": "#/$defs/colorValue",
|
|
142
142
|
"description": "Fullscreen scrollbar thumb background (falls back to selectedBg when omitted)"
|
|
143
143
|
},
|
|
144
|
+
"searchMatchBg": {
|
|
145
|
+
"$ref": "#/$defs/colorValue",
|
|
146
|
+
"description": "Transcript search match background and current-match text (falls back to selectedBg when omitted)"
|
|
147
|
+
},
|
|
148
|
+
"searchMatchText": {
|
|
149
|
+
"$ref": "#/$defs/colorValue",
|
|
150
|
+
"description": "Transcript search match text and current-match background (falls back to text when omitted)"
|
|
151
|
+
},
|
|
144
152
|
"userMessageBg": {
|
|
145
153
|
"$ref": "#/$defs/colorValue",
|
|
146
154
|
"description": "User message background"
|
package/package.json
CHANGED
package/bin/node_modules/@mariozechner/clipboard-win32-arm64-msvc/clipboard.win32-arm64-msvc.node
DELETED
|
Binary file
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@mariozechner/clipboard-win32-arm64-msvc",
|
|
3
|
-
"version": "0.3.9",
|
|
4
|
-
"os": [
|
|
5
|
-
"win32"
|
|
6
|
-
],
|
|
7
|
-
"cpu": [
|
|
8
|
-
"arm64"
|
|
9
|
-
],
|
|
10
|
-
"main": "clipboard.win32-arm64-msvc.node",
|
|
11
|
-
"files": [
|
|
12
|
-
"clipboard.win32-arm64-msvc.node"
|
|
13
|
-
],
|
|
14
|
-
"license": "MIT",
|
|
15
|
-
"engines": {
|
|
16
|
-
"node": ">= 10"
|
|
17
|
-
},
|
|
18
|
-
"repository": {
|
|
19
|
-
"type": "git",
|
|
20
|
-
"url": "https://github.com/badlogic/clipboard.git"
|
|
21
|
-
}
|
|
22
|
-
}
|