@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.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.1",
45
- "@oh-my-pi/pi-agent-core": "13.1.1",
46
- "@oh-my-pi/pi-ai": "13.1.1",
47
- "@oh-my-pi/pi-natives": "13.1.1",
48
- "@oh-my-pi/pi-tui": "13.1.1",
49
- "@oh-my-pi/pi-utils": "13.1.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}}
@@ -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
- job_ids: Type.Optional(
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: [], timedOut: false },
58
+ details: { jobs: [] },
65
59
  };
66
60
  }
67
61
 
68
- const timeoutMs = (params.timeout ?? 300) * 1000;
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: [], timedOut: false },
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, false);
82
+ return this.#buildResult(jobsToWatch);
90
83
  }
91
84
 
92
- // Block until at least one running job finishes or timeout
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, false);
103
+ return this.#buildResult(jobsToWatch);
112
104
  }
113
105
 
114
- // Check if we timed out (all watched jobs still running)
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, timedOut },
159
+ details: { jobs: jobResults },
177
160
  };
178
161
  }
179
162
  }