pi-harness-runtime 1.1.352 → 1.1.354
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 +36 -30
- 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
|
@@ -157,12 +157,17 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
157
157
|
existsSync(`${keysDir}/jev-api-key.txt`) &&
|
|
158
158
|
readFileSync(`${keysDir}/jev-api-key.txt`, "utf8").trim().length > 0;
|
|
159
159
|
|
|
160
|
+
// Create pending question controller - works independently of Jev
|
|
161
|
+
const { createPendingQuestionController } = await import("./packages/notification/dist/index.js");
|
|
162
|
+
const pqController = createPendingQuestionController();
|
|
163
|
+
sharedState.pqController = pqController;
|
|
164
|
+
|
|
160
165
|
if (!hasEnvKey && !hasFileKey) {
|
|
161
|
-
addHarnessMessage("Jev", "API key missing
|
|
162
|
-
"Set TYPESAFE_API_KEY or ~/.pi-harness-runtime/keys/jev-api-key.txt
|
|
166
|
+
addHarnessMessage("Jev", "API key missing; question detection active, auto-continue unavailable", "warn", [
|
|
167
|
+
"Set TYPESAFE_API_KEY or ~/.pi-harness-runtime/keys/jev-api-key.txt to enable auto-continue.",
|
|
163
168
|
]);
|
|
164
|
-
logToFile("[auto-continue]", "No Jev API key found. Set TYPESAFE_API_KEY run: echo \"{api_key}\" > ~/.pi-harness-runtime/keys/jev-api-key.txt");
|
|
165
|
-
return
|
|
169
|
+
logToFile("[auto-continue]", "No Jev API key found, but question detection is active. Set TYPESAFE_API_KEY run: echo \"{api_key}\" > ~/.pi-harness-runtime/keys/jev-api-key.txt");
|
|
170
|
+
// Don't return - question handling still works without Jev
|
|
166
171
|
}
|
|
167
172
|
|
|
168
173
|
// Resolve the actual API key: env takes priority, file is fallback
|
|
@@ -170,9 +175,6 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
170
175
|
readFileSync(`${keysDir}/jev-api-key.txt`, "utf8").trim();
|
|
171
176
|
|
|
172
177
|
const mod = await import("./packages/jev-judge/src/auto-continue.js");
|
|
173
|
-
const { createPendingQuestionController } = await import("./packages/notification/dist/index.js");
|
|
174
|
-
const pqController = createPendingQuestionController();
|
|
175
|
-
sharedState.pqController = pqController;
|
|
176
178
|
|
|
177
179
|
// Track waiting state
|
|
178
180
|
let waitingForUserSince: Date | null = null;
|
|
@@ -279,16 +281,9 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
279
281
|
// Set up pending question callback to dispatch answers to Pi
|
|
280
282
|
pqController.onUserAnswer((question, answer) => {
|
|
281
283
|
logToFile("[PendingQuestion]", `User answered: ${answer} for question ${question.requestId}`);
|
|
282
|
-
// Dispatch answer to Pi
|
|
283
|
-
|
|
284
|
-
|
|
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
|
-
);
|
|
291
|
-
}
|
|
284
|
+
// Dispatch answer to Pi
|
|
285
|
+
const message = answer === "yes" ? "yes" : "not yet";
|
|
286
|
+
pi.sendUserMessage(message, { deliverAs: "steer" });
|
|
292
287
|
});
|
|
293
288
|
|
|
294
289
|
// Detect when agent asks for continuation
|
|
@@ -536,20 +531,31 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
536
531
|
|
|
537
532
|
const decision = await judge.decide(taskState);
|
|
538
533
|
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
534
|
+
// Check session validity and user response before applying
|
|
535
|
+
if (checkSessionId !== _sessionId) {
|
|
536
|
+
// Session changed - cancel pending question
|
|
537
|
+
sharedState.pqController?.cancel("Session switched");
|
|
538
|
+
_inferenceInProgress = false;
|
|
539
|
+
updateAutoContinueStatus("IDLE");
|
|
540
|
+
return;
|
|
541
|
+
}
|
|
547
542
|
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
543
|
+
if (!waitingForUserSince) {
|
|
544
|
+
_inferenceInProgress = false;
|
|
545
|
+
updateAutoContinueStatus("IDLE");
|
|
546
|
+
return;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
// Check if question was explicitly rejected - don't auto-continue after "Not yet"
|
|
550
|
+
if (sharedState.pqController?.isResolved()) {
|
|
551
|
+
const resolution = sharedState.pqController?.getResolution();
|
|
552
|
+
if (resolution === "no") {
|
|
553
|
+
logToFile("[auto-continue]", "Question was rejected - not auto-continuing");
|
|
554
|
+
_inferenceInProgress = false;
|
|
555
|
+
updateAutoContinueStatus("IDLE");
|
|
556
|
+
return;
|
|
557
|
+
}
|
|
558
|
+
}
|
|
553
559
|
|
|
554
560
|
if (decision.action === "proceed" || decision.action === "proceed_with_caution") {
|
|
555
561
|
// Update status to continuing
|
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.354",
|
|
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",
|