pi-harness-runtime 1.1.197 → 1.1.198
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/package.json +1 -1
- package/packages/a2a-adapter/package.json +1 -1
- package/packages/agent-policy/package.json +1 -1
- package/packages/architecture-generator/package.json +1 -1
- package/packages/auth/package.json +1 -1
- package/packages/autonomous-refactor/package.json +1 -1
- package/packages/autonomous-runtime/package.json +1 -1
- package/packages/cache-strategy/package.json +1 -1
- package/packages/capability-registry/package.json +1 -1
- package/packages/checkpoint/package.json +1 -1
- package/packages/cli-plugin-sdk/package.json +1 -1
- package/packages/clipboard/package.json +1 -1
- package/packages/clipboard-plugin/package.json +1 -1
- package/packages/code-generation/package.json +1 -1
- package/packages/code-review/package.json +1 -1
- package/packages/codex-adapter/package.json +1 -1
- package/packages/codex-watcher/package.json +1 -1
- package/packages/config-capture/package.json +1 -1
- package/packages/context-compiler/package.json +1 -1
- package/packages/context-discovery/package.json +1 -1
- package/packages/context-manager/package.json +1 -1
- package/packages/cookie-sanitizer/package.json +1 -1
- package/packages/cost-optimizer/package.json +1 -1
- package/packages/dependency-analyzer/package.json +1 -1
- package/packages/django-plugin/package.json +1 -1
- package/packages/doc-generator/package.json +1 -1
- package/packages/e2e-tester/package.json +1 -1
- package/packages/evaluation-engine/package.json +1 -1
- package/packages/evaluation-runner/package.json +1 -1
- package/packages/event-bus/package.json +1 -1
- package/packages/event-store/package.json +1 -1
- package/packages/experience-replay/package.json +1 -1
- package/packages/feedback-collector/package.json +1 -1
- package/packages/file-copy-helper/package.json +1 -1
- package/packages/framework-detector/package.json +1 -1
- package/packages/framework-plugin-sdk/package.json +1 -1
- package/packages/frappe-plugin/package.json +1 -1
- package/packages/generic-web-plugin/package.json +1 -1
- package/packages/health-monitor/package.json +1 -1
- package/packages/intent-analyzer/package.json +1 -1
- package/packages/jev-judge/dist/continuation-controller.d.ts.map +1 -1
- package/packages/jev-judge/dist/continuation-controller.js +34 -3
- package/packages/jev-judge/dist/continuation-controller.js.map +1 -1
- package/packages/jev-judge/package.json +1 -1
- package/packages/jev-judge/src/continuation-controller.ts +36 -3
- package/packages/knowledge-graph/package.json +1 -1
- package/packages/knowledge-retrieval/package.json +1 -1
- package/packages/laravel-plugin/package.json +1 -1
- package/packages/learning-engine/package.json +1 -1
- package/packages/mcp-adapter/package.json +1 -1
- package/packages/memory-engine/package.json +1 -1
- package/packages/milestone-manager/package.json +1 -1
- package/packages/model-registry/package.json +1 -1
- package/packages/nextjs-plugin/package.json +1 -1
- package/packages/notification/dist/conversation-bridge.d.ts.map +1 -1
- package/packages/notification/dist/conversation-bridge.js +19 -0
- package/packages/notification/dist/conversation-bridge.js.map +1 -1
- package/packages/notification/package.json +4 -2
- package/packages/notification/src/conversation-bridge.ts +21 -0
- package/packages/observability/package.json +1 -1
- package/packages/okf-indexer/package.json +1 -1
- package/packages/paperclip-integration/package.json +1 -1
- package/packages/performance-optimizer/package.json +1 -1
- package/packages/privilege-broker/package.json +1 -1
- package/packages/project-analyzer/package.json +1 -1
- package/packages/project-bootstrap/package.json +1 -1
- package/packages/projection-engine/package.json +1 -1
- package/packages/prompt-compiler/package.json +1 -1
- package/packages/prompt-versioning/package.json +1 -1
- package/packages/provider-adapter-sdk/package.json +1 -1
- package/packages/provider-router/package.json +1 -1
- package/packages/provider-selector/package.json +1 -1
- package/packages/providers/package.json +1 -1
- package/packages/qdrant-skills/package.json +1 -1
- package/packages/quota-manager/package.json +1 -1
- package/packages/rate-limiter/package.json +1 -1
- package/packages/react-vite-plugin/package.json +1 -1
- package/packages/release-manager/package.json +1 -1
- package/packages/requirement-compiler/package.json +1 -1
- package/packages/runtime/package.json +1 -1
- package/packages/scheduler/package.json +1 -1
- package/packages/scheduler-adapter/package.json +1 -1
- package/packages/session/package.json +1 -1
- package/packages/session-api/package.json +1 -1
- package/packages/session-export/package.json +1 -1
- package/packages/shared-context/package.json +1 -1
- package/packages/skill-mcp-client/package.json +1 -1
- package/packages/skill-registry/package.json +1 -1
- package/packages/skills/package.json +1 -1
- package/packages/sprint-planner/package.json +1 -1
- package/packages/subscription-engine/package.json +1 -1
- package/packages/task-compiler/package.json +1 -1
- package/packages/telegram/package.json +1 -1
- package/packages/tencentdb-memory/package.json +1 -1
- package/packages/tencentdb-sync/package.json +1 -1
- package/packages/test-data-generator/package.json +1 -1
- package/packages/test-generator/package.json +1 -1
- package/packages/todo-bd-sync/package.json +1 -1
- package/packages/token-estimation/package.json +1 -1
- package/packages/token-optimizer/package.json +1 -1
- package/packages/trajectory/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/packages/webmcp-tester/package.json +1 -1
- package/packages/workflow-events/package.json +1 -1
- package/packages/workspace-scanner/package.json +1 -1
- package/packages/worktree/package.json +1 -1
- package/packages/write-review/package.json +1 -1
|
@@ -2,6 +2,22 @@ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
|
2
2
|
import type { TodoItem } from "./todo-provider.js";
|
|
3
3
|
import { createTodoProvider } from "./todo-provider.js";
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Simple debug logger that writes to file, not stdout
|
|
7
|
+
*/
|
|
8
|
+
const DEBUG_LOG_FILE = "/tmp/pi-harness-debug.log";
|
|
9
|
+
function debugLog(component: string, ...args: unknown[]): void {
|
|
10
|
+
try {
|
|
11
|
+
const timestamp = new Date().toISOString();
|
|
12
|
+
const msg = `[${timestamp}] [${component}] ${args.map(a => String(a)).join(" ")}\n`;
|
|
13
|
+
import("node:fs").then(({ appendFileSync }) => {
|
|
14
|
+
appendFileSync(DEBUG_LOG_FILE, msg);
|
|
15
|
+
}).catch(() => {});
|
|
16
|
+
} catch {
|
|
17
|
+
// Silently fail
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
5
21
|
/**
|
|
6
22
|
* Continuation configuration
|
|
7
23
|
*/
|
|
@@ -82,9 +98,12 @@ export class TodoContinuationController {
|
|
|
82
98
|
* Register lifecycle hooks
|
|
83
99
|
*/
|
|
84
100
|
register(): void {
|
|
101
|
+
debugLog("TodoContinuation", "Registering hooks");
|
|
102
|
+
|
|
85
103
|
// Session start - reset state
|
|
86
104
|
this.pi.on("session_start", () => {
|
|
87
105
|
this.reset();
|
|
106
|
+
debugLog("TodoContinuation", "Session started");
|
|
88
107
|
});
|
|
89
108
|
|
|
90
109
|
// Agent settled - evaluate continuation
|
|
@@ -116,6 +135,8 @@ export class TodoContinuationController {
|
|
|
116
135
|
this.state.continuationQueued = false;
|
|
117
136
|
}
|
|
118
137
|
});
|
|
138
|
+
|
|
139
|
+
debugLog("TodoContinuation", "Lifecycle hooks registered");
|
|
119
140
|
}
|
|
120
141
|
|
|
121
142
|
/**
|
|
@@ -124,6 +145,7 @@ export class TodoContinuationController {
|
|
|
124
145
|
private async evaluateContinuation(): Promise<void> {
|
|
125
146
|
// 1. Check user pause
|
|
126
147
|
if (this.state.userPaused) {
|
|
148
|
+
debugLog("TodoContinuation", "User paused, stopping");
|
|
127
149
|
return;
|
|
128
150
|
}
|
|
129
151
|
|
|
@@ -131,6 +153,7 @@ export class TodoContinuationController {
|
|
|
131
153
|
const availability = await this.todoProvider.availability();
|
|
132
154
|
if (!availability.available) {
|
|
133
155
|
// No todo provider - don't auto-continue
|
|
156
|
+
debugLog("TodoContinuation", "Provider unavailable:", availability.error);
|
|
134
157
|
return;
|
|
135
158
|
}
|
|
136
159
|
|
|
@@ -146,6 +169,7 @@ export class TodoContinuationController {
|
|
|
146
169
|
// 4. If there's work in progress, continue it
|
|
147
170
|
if (inProgressItems.length > 0) {
|
|
148
171
|
const item = inProgressItems[0];
|
|
172
|
+
debugLog("TodoContinuation", "In-progress item:", item.subject);
|
|
149
173
|
await this.continueItem(item);
|
|
150
174
|
return;
|
|
151
175
|
}
|
|
@@ -155,7 +179,7 @@ export class TodoContinuationController {
|
|
|
155
179
|
const hasWork = pendingItems.length > 0 || inProgressItems.length > 0;
|
|
156
180
|
|
|
157
181
|
if (!hasWork && totalItems === 0) {
|
|
158
|
-
|
|
182
|
+
debugLog("TodoContinuation", "All items complete");
|
|
159
183
|
return;
|
|
160
184
|
}
|
|
161
185
|
|
|
@@ -164,6 +188,8 @@ export class TodoContinuationController {
|
|
|
164
188
|
const blockedItems = await this.todoProvider.getBlocked();
|
|
165
189
|
if (blockedItems.length === pendingItems.length) {
|
|
166
190
|
// All pending items are blocked - don't auto-continue
|
|
191
|
+
const blocker = blockedItems[0];
|
|
192
|
+
debugLog("TodoContinuation", "Items blocked:", blocker?.subject);
|
|
167
193
|
return;
|
|
168
194
|
}
|
|
169
195
|
|
|
@@ -173,8 +199,8 @@ export class TodoContinuationController {
|
|
|
173
199
|
await this.continueItem(readyItems[0]);
|
|
174
200
|
}
|
|
175
201
|
}
|
|
176
|
-
} catch {
|
|
177
|
-
|
|
202
|
+
} catch (err) {
|
|
203
|
+
debugLog("TodoContinuation", "Evaluation error:", err);
|
|
178
204
|
}
|
|
179
205
|
}
|
|
180
206
|
|
|
@@ -183,6 +209,7 @@ export class TodoContinuationController {
|
|
|
183
209
|
*/
|
|
184
210
|
private async continueItem(item: TodoItem): Promise<void> {
|
|
185
211
|
if (this.state.steerAttempts >= this.config.maxSteerAttempts) {
|
|
212
|
+
debugLog("TodoContinuation", "Max steer attempts reached");
|
|
186
213
|
return;
|
|
187
214
|
}
|
|
188
215
|
|
|
@@ -194,6 +221,7 @@ export class TodoContinuationController {
|
|
|
194
221
|
: `Continue task: ${item.subject}`;
|
|
195
222
|
|
|
196
223
|
this.state.lastSteerMessage = message;
|
|
224
|
+
debugLog("TodoContinuation", "Continuing:", item.subject);
|
|
197
225
|
// Note: Pi does not expose sendUserMessage API.
|
|
198
226
|
// The Telegram notification system will prompt user for ambiguous cases.
|
|
199
227
|
}
|
|
@@ -203,6 +231,7 @@ export class TodoContinuationController {
|
|
|
203
231
|
*/
|
|
204
232
|
async steerToContinue(itemId: number): Promise<void> {
|
|
205
233
|
if (this.state.steerAttempts >= this.config.maxSteerAttempts) {
|
|
234
|
+
debugLog("TodoContinuation", "Max steer attempts reached");
|
|
206
235
|
return;
|
|
207
236
|
}
|
|
208
237
|
|
|
@@ -218,12 +247,14 @@ export class TodoContinuationController {
|
|
|
218
247
|
|
|
219
248
|
this.state.lastSteerMessage = message;
|
|
220
249
|
this.state.todoRevision = snapshot.revision;
|
|
250
|
+
debugLog("TodoContinuation", "Steering to continue item", itemId);
|
|
221
251
|
}
|
|
222
252
|
|
|
223
253
|
/**
|
|
224
254
|
* Mark a todo item as complete
|
|
225
255
|
*/
|
|
226
256
|
async markComplete(_itemId: number): Promise<void> {
|
|
257
|
+
debugLog("TodoContinuation", "Marking item complete");
|
|
227
258
|
this.state.currentItemId = null;
|
|
228
259
|
this.state.generation++;
|
|
229
260
|
}
|
|
@@ -232,6 +263,7 @@ export class TodoContinuationController {
|
|
|
232
263
|
* User paused
|
|
233
264
|
*/
|
|
234
265
|
pause(): void {
|
|
266
|
+
debugLog("TodoContinuation", "User paused");
|
|
235
267
|
this.state.userPaused = true;
|
|
236
268
|
this.state.continuationQueued = false;
|
|
237
269
|
}
|
|
@@ -259,6 +291,7 @@ export class TodoContinuationController {
|
|
|
259
291
|
* Cleanup on shutdown
|
|
260
292
|
*/
|
|
261
293
|
private cleanup(): void {
|
|
294
|
+
debugLog("TodoContinuation", "Cleaning up");
|
|
262
295
|
this.state.continuationQueued = false;
|
|
263
296
|
this.state.generation++;
|
|
264
297
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-bridge.d.ts","sourceRoot":"","sources":["../src/conversation-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation-bridge.d.ts","sourceRoot":"","sources":["../src/conversation-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAkBnE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACxC,gDAAgD;IAChD,sBAAsB,EAAE,OAAO,CAAC;IAChC,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;CACzB;AAYD;;;;GAIG;AACH,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,EAAE,CAAe;IACzB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,gBAAgB,CAAsB;IAE9C,YACC,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,GAAE,OAAO,CAAC,wBAAwB,CAAM,EAS9C;IAED;;OAEG;IACH,QAAQ,IAAI,IAAI,CAuDf;IAED;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;YACW,uBAAuB;IAarC;;OAEG;YACW,oBAAoB;IAKlC;;OAEG;YACW,qBAAqB;IAmCnC;;OAEG;IACH,OAAO,CAAC,YAAY;IA6DpB;;OAEG;IACH,OAAO,CAAC,KAAK;IAMb;;OAEG;IACH,IAAI,IAAI,IAAI,CAEX;CACD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACvC,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,GACxC,kBAAkB,CAIpB"}
|
|
@@ -11,6 +11,22 @@
|
|
|
11
11
|
* - Safe formatting
|
|
12
12
|
* - Delivery status tracking
|
|
13
13
|
*/
|
|
14
|
+
/**
|
|
15
|
+
* Simple debug logger that writes to file, not stdout
|
|
16
|
+
*/
|
|
17
|
+
const DEBUG_LOG_FILE = "/tmp/pi-harness-debug.log";
|
|
18
|
+
function debugLog(component, ...args) {
|
|
19
|
+
try {
|
|
20
|
+
const timestamp = new Date().toISOString();
|
|
21
|
+
const msg = `[${timestamp}] [${component}] ${args.map(a => String(a)).join(" ")}\n`;
|
|
22
|
+
import("node:fs").then(({ appendFileSync }) => {
|
|
23
|
+
appendFileSync(DEBUG_LOG_FILE, msg);
|
|
24
|
+
}).catch(() => { });
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// Silently fail
|
|
28
|
+
}
|
|
29
|
+
}
|
|
14
30
|
/**
|
|
15
31
|
* Conversation Bridge
|
|
16
32
|
*
|
|
@@ -36,9 +52,11 @@ export class ConversationBridge {
|
|
|
36
52
|
* Register all lifecycle hooks
|
|
37
53
|
*/
|
|
38
54
|
register() {
|
|
55
|
+
debugLog("ConversationBridge", "Registering hooks");
|
|
39
56
|
// Session start - reset state
|
|
40
57
|
this.pi.on("session_start", () => {
|
|
41
58
|
this.reset();
|
|
59
|
+
debugLog("ConversationBridge", "Session started");
|
|
42
60
|
});
|
|
43
61
|
// Session compact - flush pending messages
|
|
44
62
|
this.pi.on("session_compact", (_event) => {
|
|
@@ -79,6 +97,7 @@ export class ConversationBridge {
|
|
|
79
97
|
this.pi.on("agent_settled", () => {
|
|
80
98
|
this.finalizePendingMessages();
|
|
81
99
|
});
|
|
100
|
+
debugLog("ConversationBridge", "Lifecycle hooks registered");
|
|
82
101
|
}
|
|
83
102
|
/**
|
|
84
103
|
* Extract text content from a message
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-bridge.js","sourceRoot":"","sources":["../src/conversation-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"conversation-bridge.js","sourceRoot":"","sources":["../src/conversation-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/notification",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.198",
|
|
4
4
|
"description": "pi-harness-runtime — notification",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -18,5 +18,7 @@
|
|
|
18
18
|
"build": "tsc",
|
|
19
19
|
"test": "bun test"
|
|
20
20
|
},
|
|
21
|
-
"dependencies": {
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@pi/observability": "workspace:*"
|
|
23
|
+
}
|
|
22
24
|
}
|
|
@@ -15,6 +15,22 @@
|
|
|
15
15
|
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
16
16
|
import type { NotificationCenter } from "./notification-center.js";
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Simple debug logger that writes to file, not stdout
|
|
20
|
+
*/
|
|
21
|
+
const DEBUG_LOG_FILE = "/tmp/pi-harness-debug.log";
|
|
22
|
+
function debugLog(component: string, ...args: unknown[]): void {
|
|
23
|
+
try {
|
|
24
|
+
const timestamp = new Date().toISOString();
|
|
25
|
+
const msg = `[${timestamp}] [${component}] ${args.map(a => String(a)).join(" ")}\n`;
|
|
26
|
+
import("node:fs").then(({ appendFileSync }) => {
|
|
27
|
+
appendFileSync(DEBUG_LOG_FILE, msg);
|
|
28
|
+
}).catch(() => {});
|
|
29
|
+
} catch {
|
|
30
|
+
// Silently fail
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
18
34
|
/**
|
|
19
35
|
* Configuration for the conversation bridge
|
|
20
36
|
*/
|
|
@@ -66,9 +82,12 @@ export class ConversationBridge {
|
|
|
66
82
|
* Register all lifecycle hooks
|
|
67
83
|
*/
|
|
68
84
|
register(): void {
|
|
85
|
+
debugLog("ConversationBridge", "Registering hooks");
|
|
86
|
+
|
|
69
87
|
// Session start - reset state
|
|
70
88
|
this.pi.on("session_start", () => {
|
|
71
89
|
this.reset();
|
|
90
|
+
debugLog("ConversationBridge", "Session started");
|
|
72
91
|
});
|
|
73
92
|
|
|
74
93
|
// Session compact - flush pending messages
|
|
@@ -115,6 +134,8 @@ export class ConversationBridge {
|
|
|
115
134
|
this.pi.on("agent_settled", () => {
|
|
116
135
|
this.finalizePendingMessages();
|
|
117
136
|
});
|
|
137
|
+
|
|
138
|
+
debugLog("ConversationBridge", "Lifecycle hooks registered");
|
|
118
139
|
}
|
|
119
140
|
|
|
120
141
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/provider-router",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.198",
|
|
4
4
|
"description": "Enhanced Provider Router for pi-harness-runtime — intelligent routing with capabilities, costs, and quotas",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/provider-router.js",
|