pi-harness-runtime 1.1.351 → 1.1.352
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/index.ts +32 -23
- 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/connection-runtime/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/contracts/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/durable-review/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-sink/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/package.json +1 -1
- 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/package.json +1 -1
- 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/permission-mode/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/relay/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/voice-api/package.json +1 -1
- package/packages/webmcp-tester/package.json +1 -1
- package/packages/wiki/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
package/index.ts
CHANGED
|
@@ -276,22 +276,20 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
276
276
|
return content;
|
|
277
277
|
}
|
|
278
278
|
|
|
279
|
-
//
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
if (
|
|
284
|
-
|
|
279
|
+
// Set up pending question callback to dispatch answers to Pi
|
|
280
|
+
pqController.onUserAnswer((question, answer) => {
|
|
281
|
+
logToFile("[PendingQuestion]", `User answered: ${answer} for question ${question.requestId}`);
|
|
282
|
+
// Dispatch answer to Pi if needed
|
|
283
|
+
if (answer === "yes") {
|
|
284
|
+
pi.sendUserMessage("yes", { deliverAs: "steer" }).catch((_e: unknown) =>
|
|
285
|
+
logToFile("[PendingQuestion]", "Failed to send yes to Pi")
|
|
286
|
+
);
|
|
287
|
+
} else if (answer === "no") {
|
|
288
|
+
pi.sendUserMessage("not yet", { deliverAs: "steer" }).catch((_e: unknown) =>
|
|
289
|
+
logToFile("[PendingQuestion]", "Failed to send no to Pi")
|
|
290
|
+
);
|
|
285
291
|
}
|
|
286
|
-
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
// Detect routine continuation questions ("Should I continue?")
|
|
290
|
-
// These should NOT block immediate continuation - let Jev/todo controller decide
|
|
291
|
-
function isRoutineContinuation(question: string): boolean {
|
|
292
|
-
const result = pqController.detectQuestion(question);
|
|
293
|
-
return result.isRoutine ?? false;
|
|
294
|
-
}
|
|
292
|
+
});
|
|
295
293
|
|
|
296
294
|
// Detect when agent asks for continuation
|
|
297
295
|
pi.on("message_end", async (event) => {
|
|
@@ -299,22 +297,33 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
299
297
|
if (!msg || msg.role !== "assistant") return;
|
|
300
298
|
|
|
301
299
|
const content = extractAssistantText(msg);
|
|
302
|
-
const
|
|
300
|
+
const result = pqController.detectQuestion(content);
|
|
303
301
|
|
|
304
302
|
// Only trigger if: we found a question AND it's different from last notification
|
|
305
303
|
// Skip routine continuation questions - let Jev/todo controller decide
|
|
306
|
-
if (
|
|
304
|
+
if (result.detected && result.questionText && result.questionText !== _lastNotifiedQuestion && !waitingForUserSince) {
|
|
307
305
|
// Skip routine continuation - don't block automatic continuation
|
|
308
|
-
if (
|
|
309
|
-
|
|
310
|
-
|
|
306
|
+
if (result.isRoutine) {
|
|
307
|
+
logToFile("[auto-continue]", "Routine continuation detected, not blocking");
|
|
308
|
+
return;
|
|
311
309
|
}
|
|
312
|
-
|
|
310
|
+
|
|
311
|
+
// Create question in controller
|
|
312
|
+
const question = pqController.createQuestion({
|
|
313
|
+
text: result.questionText,
|
|
314
|
+
sessionId: _sessionId,
|
|
315
|
+
workspacePath: _piSessionCwd || "/",
|
|
316
|
+
kind: result.kind || "approval",
|
|
317
|
+
});
|
|
318
|
+
|
|
319
|
+
logToFile("[PendingQuestion]", `Question created: ${question.requestId} - ${result.questionText?.slice(0, 50)}`);
|
|
320
|
+
|
|
321
|
+
_lastNotifiedQuestion = result.questionText;
|
|
313
322
|
waitingForUserSince = new Date();
|
|
314
323
|
|
|
315
324
|
// Create stable jobId from question content hash (callback-safe: digits only)
|
|
316
325
|
const questionHash = Math.abs(
|
|
317
|
-
|
|
326
|
+
result.questionText.split("").reduce((a, c) => {
|
|
318
327
|
a = ((a << 5) - a) + c.charCodeAt(0);
|
|
319
328
|
return a & a;
|
|
320
329
|
}, 0)
|
|
@@ -336,7 +345,7 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
336
345
|
// Emit WaitingForUserInput to Telegram with Yes/No buttons
|
|
337
346
|
_nc?.notifyWithApproval("WaitingForUserInput", {
|
|
338
347
|
jobId: `waiting-user-${questionHash}`,
|
|
339
|
-
requirement:
|
|
348
|
+
requirement: result.questionText,
|
|
340
349
|
}, {
|
|
341
350
|
approveLabel: "Continue",
|
|
342
351
|
rejectLabel: "Not yet",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/capability-registry",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.352",
|
|
4
4
|
"description": "Capability Registry for pi-harness-runtime — tracks model capabilities and enables capability-based routing",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|