pi-harness-runtime 1.1.275 → 1.1.276
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 +52 -33
- 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/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/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
package/index.ts
CHANGED
|
@@ -377,47 +377,66 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
377
377
|
let pendingUserPromptCount = 0;
|
|
378
378
|
let lastPromptTime = 0;
|
|
379
379
|
let intakeTimer: ReturnType<typeof setTimeout> | null = null;
|
|
380
|
-
let
|
|
380
|
+
let pendingPromptContents: string[] = []; // Accumulate batch prompt contents
|
|
381
381
|
const PROMPT_WINDOW_MS = 2000; // 2 second debounce window
|
|
382
382
|
|
|
383
383
|
// Detect user responses - track prompts for debounced task capture
|
|
384
384
|
pi.on("message_start", async (event) => {
|
|
385
385
|
const msg = event.message as { role?: string } | undefined;
|
|
386
386
|
if (msg?.role === "user") {
|
|
387
|
+
// Normalize content to string (handle array of text blocks)
|
|
388
|
+
let content = "";
|
|
389
|
+
const rawContent = (msg as { content?: string | Array<{ text?: string }> } | undefined)?.content;
|
|
390
|
+
if (Array.isArray(rawContent)) {
|
|
391
|
+
content = rawContent.map((c) => c.text ?? "").join("\n");
|
|
392
|
+
} else if (typeof rawContent === "string") {
|
|
393
|
+
content = rawContent;
|
|
394
|
+
}
|
|
395
|
+
|
|
387
396
|
// Skip harness-generated follow-ups (not real user prompts)
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
397
|
+
if (!content.includes("Please add all tasks to task list todo")) {
|
|
398
|
+
const now = Date.now();
|
|
399
|
+
// Reset batch if window expired
|
|
400
|
+
if (now - lastPromptTime > PROMPT_WINDOW_MS) {
|
|
401
|
+
pendingUserPromptCount = 0;
|
|
402
|
+
pendingPromptContents = [];
|
|
403
|
+
}
|
|
404
|
+
pendingUserPromptCount++;
|
|
405
|
+
pendingPromptContents.push(content);
|
|
406
|
+
lastPromptTime = now;
|
|
407
|
+
logToFile("[auto-continue]", "User prompt arrived, pending count:", String(pendingUserPromptCount));
|
|
408
|
+
|
|
409
|
+
// Clear any pending timer
|
|
410
|
+
if (intakeTimer) {
|
|
411
|
+
clearTimeout(intakeTimer);
|
|
412
|
+
intakeTimer = null;
|
|
413
|
+
}
|
|
404
414
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
415
|
+
// Set debounce timer - evaluate after window expires
|
|
416
|
+
if (taskIntakeController && todoContinuationController) {
|
|
417
|
+
const intake = taskIntakeController;
|
|
418
|
+
const controller = todoContinuationController;
|
|
419
|
+
const capturedCount = pendingUserPromptCount;
|
|
420
|
+
const capturedContents = [...pendingPromptContents];
|
|
421
|
+
|
|
422
|
+
intakeTimer = setTimeout(async () => {
|
|
423
|
+
// Only trigger if multiple prompts arrived
|
|
424
|
+
if (capturedCount > 1) {
|
|
425
|
+
pendingUserPromptCount = 0;
|
|
426
|
+
pendingPromptContents = [];
|
|
427
|
+
logToFile("[auto-continue]", "Multiple prompts in queue, evaluating for task capture");
|
|
428
|
+
try {
|
|
429
|
+
// Check if stopped before dispatching
|
|
430
|
+
if (intake.isStopped()) {
|
|
431
|
+
logToFile("[auto-continue]", "Task intake skipped - stopped after evaluation");
|
|
432
|
+
return;
|
|
433
|
+
}
|
|
434
|
+
// Evaluate all prompts in batch
|
|
435
|
+
const combinedContent = capturedContents.join("\n---\n");
|
|
436
|
+
const result = await intake.evaluateWithTodos(combinedContent, controller);
|
|
437
|
+
if (result.actionable && result.action !== "skip") {
|
|
438
|
+
await intake.requestCapture(combinedContent, "harness:task-capture");
|
|
439
|
+
}
|
|
421
440
|
} catch (err) {
|
|
422
441
|
logToFile("[auto-continue]", "Task intake error:", String(err));
|
|
423
442
|
}
|
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.276",
|
|
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",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/provider-router",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.276",
|
|
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",
|