@oh-my-pi/pi-coding-agent 13.1.1 → 13.1.2
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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [13.1.2] - 2026-02-23
|
|
6
|
+
### Breaking Changes
|
|
7
|
+
|
|
8
|
+
- Removed `timeout` parameter from await tool—tool now waits indefinitely until jobs complete or the call is aborted
|
|
9
|
+
- Renamed `job_ids` parameter to `jobs` in await tool schema
|
|
10
|
+
- Removed `timedOut` field from await tool result details
|
|
11
|
+
|
|
5
12
|
## [13.1.1] - 2026-02-23
|
|
6
13
|
|
|
7
14
|
### Fixed
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/pi-coding-agent",
|
|
4
|
-
"version": "13.1.
|
|
4
|
+
"version": "13.1.2",
|
|
5
5
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
6
6
|
"homepage": "https://github.com/can1357/oh-my-pi",
|
|
7
7
|
"author": "Can Boluk",
|
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@mozilla/readability": "^0.6",
|
|
44
|
-
"@oh-my-pi/omp-stats": "13.1.
|
|
45
|
-
"@oh-my-pi/pi-agent-core": "13.1.
|
|
46
|
-
"@oh-my-pi/pi-ai": "13.1.
|
|
47
|
-
"@oh-my-pi/pi-natives": "13.1.
|
|
48
|
-
"@oh-my-pi/pi-tui": "13.1.
|
|
49
|
-
"@oh-my-pi/pi-utils": "13.1.
|
|
44
|
+
"@oh-my-pi/omp-stats": "13.1.2",
|
|
45
|
+
"@oh-my-pi/pi-agent-core": "13.1.2",
|
|
46
|
+
"@oh-my-pi/pi-ai": "13.1.2",
|
|
47
|
+
"@oh-my-pi/pi-natives": "13.1.2",
|
|
48
|
+
"@oh-my-pi/pi-tui": "13.1.2",
|
|
49
|
+
"@oh-my-pi/pi-utils": "13.1.2",
|
|
50
50
|
"@sinclair/typebox": "^0.34",
|
|
51
51
|
"@xterm/headless": "^6.0",
|
|
52
52
|
"ajv": "^8.18",
|
|
@@ -16,6 +16,16 @@
|
|
|
16
16
|
</file>
|
|
17
17
|
{{/list}}
|
|
18
18
|
</instructions>
|
|
19
|
+
{{/if}}
|
|
20
|
+
{{#if git.isRepo}}
|
|
21
|
+
## Version Control
|
|
22
|
+
Snapshot; does not update during conversation.
|
|
23
|
+
Current branch: {{git.currentBranch}}
|
|
24
|
+
Main branch: {{git.mainBranch}}
|
|
25
|
+
{{git.status}}
|
|
26
|
+
### History
|
|
27
|
+
{{git.commits}}
|
|
28
|
+
{{/if}}
|
|
19
29
|
</project>
|
|
20
30
|
{{/ifAny}}
|
|
21
31
|
{{#if skills.length}}
|
package/src/tools/await-tool.ts
CHANGED
|
@@ -5,16 +5,11 @@ import awaitDescription from "../prompts/tools/await.md" with { type: "text" };
|
|
|
5
5
|
import type { ToolSession } from "./index";
|
|
6
6
|
|
|
7
7
|
const awaitSchema = Type.Object({
|
|
8
|
-
|
|
8
|
+
jobs: Type.Optional(
|
|
9
9
|
Type.Array(Type.String(), {
|
|
10
10
|
description: "Specific job IDs to wait for. If omitted, waits for any running job.",
|
|
11
11
|
}),
|
|
12
12
|
),
|
|
13
|
-
timeout: Type.Optional(
|
|
14
|
-
Type.Number({
|
|
15
|
-
description: "Maximum seconds to wait before returning (default: 300)",
|
|
16
|
-
}),
|
|
17
|
-
),
|
|
18
13
|
});
|
|
19
14
|
|
|
20
15
|
type AwaitParams = Static<typeof awaitSchema>;
|
|
@@ -31,7 +26,6 @@ interface AwaitResult {
|
|
|
31
26
|
|
|
32
27
|
export interface AwaitToolDetails {
|
|
33
28
|
jobs: AwaitResult[];
|
|
34
|
-
timedOut: boolean;
|
|
35
29
|
}
|
|
36
30
|
|
|
37
31
|
export class AwaitTool implements AgentTool<typeof awaitSchema, AwaitToolDetails> {
|
|
@@ -61,12 +55,11 @@ export class AwaitTool implements AgentTool<typeof awaitSchema, AwaitToolDetails
|
|
|
61
55
|
if (!manager) {
|
|
62
56
|
return {
|
|
63
57
|
content: [{ type: "text", text: "Async execution is disabled; no background jobs to poll." }],
|
|
64
|
-
details: { jobs: []
|
|
58
|
+
details: { jobs: [] },
|
|
65
59
|
};
|
|
66
60
|
}
|
|
67
61
|
|
|
68
|
-
const
|
|
69
|
-
const requestedIds = params.job_ids;
|
|
62
|
+
const requestedIds = params.jobs;
|
|
70
63
|
|
|
71
64
|
// Resolve which jobs to watch
|
|
72
65
|
const jobsToWatch = requestedIds?.length
|
|
@@ -79,19 +72,18 @@ export class AwaitTool implements AgentTool<typeof awaitSchema, AwaitToolDetails
|
|
|
79
72
|
: "No running background jobs to wait for.";
|
|
80
73
|
return {
|
|
81
74
|
content: [{ type: "text", text: message }],
|
|
82
|
-
details: { jobs: []
|
|
75
|
+
details: { jobs: [] },
|
|
83
76
|
};
|
|
84
77
|
}
|
|
85
78
|
|
|
86
79
|
// If all watched jobs are already done, return immediately
|
|
87
80
|
const runningJobs = jobsToWatch.filter(j => j.status === "running");
|
|
88
81
|
if (runningJobs.length === 0) {
|
|
89
|
-
return this.#buildResult(jobsToWatch
|
|
82
|
+
return this.#buildResult(jobsToWatch);
|
|
90
83
|
}
|
|
91
84
|
|
|
92
|
-
// Block until at least one running job finishes or
|
|
85
|
+
// Block until at least one running job finishes or the call is aborted
|
|
93
86
|
const racePromises: Promise<unknown>[] = runningJobs.map(j => j.promise);
|
|
94
|
-
racePromises.push(Bun.sleep(timeoutMs));
|
|
95
87
|
|
|
96
88
|
if (signal) {
|
|
97
89
|
const { promise: abortPromise, resolve: abortResolve } = Promise.withResolvers<void>();
|
|
@@ -108,14 +100,10 @@ export class AwaitTool implements AgentTool<typeof awaitSchema, AwaitToolDetails
|
|
|
108
100
|
}
|
|
109
101
|
|
|
110
102
|
if (signal?.aborted) {
|
|
111
|
-
return this.#buildResult(jobsToWatch
|
|
103
|
+
return this.#buildResult(jobsToWatch);
|
|
112
104
|
}
|
|
113
105
|
|
|
114
|
-
|
|
115
|
-
const stillRunning = jobsToWatch.filter(j => j.status === "running");
|
|
116
|
-
const timedOut = stillRunning.length === runningJobs.length;
|
|
117
|
-
|
|
118
|
-
return this.#buildResult(jobsToWatch, timedOut);
|
|
106
|
+
return this.#buildResult(jobsToWatch);
|
|
119
107
|
}
|
|
120
108
|
|
|
121
109
|
#buildResult(
|
|
@@ -128,7 +116,6 @@ export class AwaitTool implements AgentTool<typeof awaitSchema, AwaitToolDetails
|
|
|
128
116
|
resultText?: string;
|
|
129
117
|
errorText?: string;
|
|
130
118
|
}[],
|
|
131
|
-
timedOut: boolean,
|
|
132
119
|
): AgentToolResult<AwaitToolDetails> {
|
|
133
120
|
const now = Date.now();
|
|
134
121
|
const jobResults: AwaitResult[] = jobs.map(j => ({
|
|
@@ -145,10 +132,6 @@ export class AwaitTool implements AgentTool<typeof awaitSchema, AwaitToolDetails
|
|
|
145
132
|
const running = jobResults.filter(j => j.status === "running");
|
|
146
133
|
|
|
147
134
|
const lines: string[] = [];
|
|
148
|
-
if (timedOut) {
|
|
149
|
-
lines.push("Timed out waiting for jobs to complete.\n");
|
|
150
|
-
}
|
|
151
|
-
|
|
152
135
|
if (completed.length > 0) {
|
|
153
136
|
lines.push(`## Completed (${completed.length})\n`);
|
|
154
137
|
for (const j of completed) {
|
|
@@ -173,7 +156,7 @@ export class AwaitTool implements AgentTool<typeof awaitSchema, AwaitToolDetails
|
|
|
173
156
|
|
|
174
157
|
return {
|
|
175
158
|
content: [{ type: "text", text: lines.join("\n") }],
|
|
176
|
-
details: { jobs: jobResults
|
|
159
|
+
details: { jobs: jobResults },
|
|
177
160
|
};
|
|
178
161
|
}
|
|
179
162
|
}
|