pi-harness-runtime 1.1.244 → 1.1.247
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 +21 -4
- 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/task-intake.d.ts +6 -2
- package/packages/jev-judge/dist/task-intake.d.ts.map +1 -1
- package/packages/jev-judge/dist/task-intake.js +20 -4
- package/packages/jev-judge/dist/task-intake.js.map +1 -1
- package/packages/jev-judge/package.json +1 -1
- package/packages/jev-judge/src/task-intake.ts +22 -4
- 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
|
@@ -542,6 +542,10 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
542
542
|
todoContinuationController.resume();
|
|
543
543
|
logToFile("[auto-continue]", "Resume detected, continuing work");
|
|
544
544
|
}
|
|
545
|
+
// Resume task intake to re-enable processing
|
|
546
|
+
if (taskIntakeController) {
|
|
547
|
+
taskIntakeController.resumeIntake();
|
|
548
|
+
}
|
|
545
549
|
// Allow normal processing after resume
|
|
546
550
|
}
|
|
547
551
|
|
|
@@ -572,6 +576,11 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
572
576
|
|
|
573
577
|
// Get current todos for duplicate detection
|
|
574
578
|
intake.evaluateWithTodos(userMessage, controller).then(async (result) => {
|
|
579
|
+
// Recheck stopped flag AFTER await - user may have paused while Jev was evaluating
|
|
580
|
+
if (intake.isStopped()) {
|
|
581
|
+
logToFile("[auto-continue]", "Task intake skipped - stopped after evaluation");
|
|
582
|
+
return;
|
|
583
|
+
}
|
|
575
584
|
if (result.actionable && result.action !== "skip") {
|
|
576
585
|
logToFile("[auto-continue]", "Task intake result:", JSON.stringify(result));
|
|
577
586
|
// Request capture if actionable using harness custom message
|
|
@@ -656,12 +665,10 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
656
665
|
const result = await todoContinuationController.decide();
|
|
657
666
|
|
|
658
667
|
if (result.action === "continue" && result.nextItemId) {
|
|
659
|
-
|
|
660
|
-
// This ensures _inFlight and continuationQueued flags are reset
|
|
661
|
-
todoContinuationController.clearQueue();
|
|
668
|
+
_steerSentThisTurn = true;
|
|
662
669
|
updateAutoContinueStatus("CONTINUING");
|
|
663
670
|
await todoContinuationController.steerToContinue(result.nextItemId);
|
|
664
|
-
// Queue remains set while agent processes, cleared on
|
|
671
|
+
// Queue remains set while agent processes, cleared on agent_end
|
|
665
672
|
} else {
|
|
666
673
|
// Not continuing - clear queue to allow future decisions
|
|
667
674
|
todoContinuationController.clearQueue();
|
|
@@ -2470,6 +2477,9 @@ Run \`bd ready\` to see current bd issues.
|
|
|
2470
2477
|
let outputLimitResumeAttempts = 0;
|
|
2471
2478
|
let pendingOutputLimitResumeAfterCompact = false;
|
|
2472
2479
|
let pendingOutputLimitResumeAfterSettled = false;
|
|
2480
|
+
|
|
2481
|
+
// Track if we sent a steer message - cleared when agent completes
|
|
2482
|
+
let _steerSentThisTurn = false;
|
|
2473
2483
|
let providerOverloadResumeAttempts = 0;
|
|
2474
2484
|
let providerOverloadResumeTimer: ReturnType<typeof setTimeout> | null = null;
|
|
2475
2485
|
|
|
@@ -3533,6 +3543,13 @@ Run \`bd ready\` to see current bd issues.
|
|
|
3533
3543
|
|
|
3534
3544
|
pi.on("agent_end", () => {
|
|
3535
3545
|
setTimeout(() => {
|
|
3546
|
+
// Clear steer queue when agent completes processing our steer message
|
|
3547
|
+
if (_steerSentThisTurn) {
|
|
3548
|
+
_steerSentThisTurn = false;
|
|
3549
|
+
todoContinuationController?.clearQueue();
|
|
3550
|
+
logToFile("[auto-continue]", "Agent turn complete, queue cleared");
|
|
3551
|
+
}
|
|
3552
|
+
|
|
3536
3553
|
if (!pendingOutputLimitResumeAfterSettled) {
|
|
3537
3554
|
return;
|
|
3538
3555
|
}
|
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.247",
|
|
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",
|
|
@@ -82,9 +82,13 @@ export declare class TaskIntakeController {
|
|
|
82
82
|
*/
|
|
83
83
|
invalidatePending(): void;
|
|
84
84
|
/**
|
|
85
|
-
* Check if
|
|
85
|
+
* Check if stopped
|
|
86
86
|
*/
|
|
87
|
-
|
|
87
|
+
isStopped(): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Resume intake - clear stopped flag to re-enable processing
|
|
90
|
+
*/
|
|
91
|
+
resumeIntake(): void;
|
|
88
92
|
/**
|
|
89
93
|
* Internal evaluation logic
|
|
90
94
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-intake.d.ts","sourceRoot":"","sources":["../src/task-intake.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACvD,yDAAyD;IACzD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,gEAAgE;IAChE,UAAU,EAAE,OAAO,CAAC;IACpB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,kDAAkD;IAClD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,yBAAyB;IACzB,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;IACpD,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,GAAG,CAAyB;IACpC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,UAAU,CAAiC;IAEnD,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAE7C,OAAO,CAAC,sBAAsB,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAY,MAAM,EAAE,gBAAgB,EAUnC;IAED;;OAEG;IACH,WAAW,IAAI,OAAO,CAErB;IAED;;OAEG;IACG,QAAQ,CACb,WAAW,EAAE,MAAM,EACnB,aAAa,GAAE,MAAM,EAAO,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAE3B;IAED;;OAEG;IACG,iBAAiB,CACtB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE;QAAE,WAAW,EAAE,MAAM,OAAO,CAAC;YAAE,KAAK,EAAE,KAAK,CAAC;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,GAC3G,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"task-intake.d.ts","sourceRoot":"","sources":["../src/task-intake.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACvD,yDAAyD;IACzD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,gEAAgE;IAChE,UAAU,EAAE,OAAO,CAAC;IACpB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,kDAAkD;IAClD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,yBAAyB;IACzB,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;IACpD,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,GAAG,CAAyB;IACpC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,UAAU,CAAiC;IAEnD,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAE7C,OAAO,CAAC,sBAAsB,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAY,MAAM,EAAE,gBAAgB,EAUnC;IAED;;OAEG;IACH,WAAW,IAAI,OAAO,CAErB;IAED;;OAEG;IACG,QAAQ,CACb,WAAW,EAAE,MAAM,EACnB,aAAa,GAAE,MAAM,EAAO,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAE3B;IAED;;OAEG;IACG,iBAAiB,CACtB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE;QAAE,WAAW,EAAE,MAAM,OAAO,CAAC;YAAE,KAAK,EAAE,KAAK,CAAC;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,GAC3G,OAAO,CAAC,gBAAgB,CAAC,CA+C3B;IAED;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB;;OAEG;IACH,iBAAiB,IAAI,IAAI,CAGxB;IAED;;OAEG;IACH,SAAS,IAAI,OAAO,CAEnB;IAED;;OAEG;IACH,YAAY,IAAI,IAAI,CAEnB;IAED;;OAEG;YACW,SAAS;IAwFvB;;OAEG;IACH,OAAO,CAAC,eAAe;IA0EvB;;;;OAIG;IACG,cAAc,CACnB,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,MAAuB,GACjC,OAAO,CAAC,IAAI,CAAC,CAUf;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAGZ;CACD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,oBAAoB,CAE/E"}
|
|
@@ -21,7 +21,7 @@ export class TaskIntakeController {
|
|
|
21
21
|
// Track recent capture request hashes to prevent self-triggering
|
|
22
22
|
recentCaptures = new Set();
|
|
23
23
|
CAPTURE_COOLDOWN_MS = 30000; // Don't re-trigger for same content within 30s
|
|
24
|
-
// Track
|
|
24
|
+
// Track stopped state to invalidate pending evaluations on stop
|
|
25
25
|
_pendingEvaluationHash = null;
|
|
26
26
|
_stopped = false;
|
|
27
27
|
constructor(config) {
|
|
@@ -50,6 +50,16 @@ export class TaskIntakeController {
|
|
|
50
50
|
* Evaluate with actual todo items from continuation controller
|
|
51
51
|
*/
|
|
52
52
|
async evaluateWithTodos(userMessage, controller) {
|
|
53
|
+
// Check if stopped - invalidatePending() was called
|
|
54
|
+
if (this._stopped) {
|
|
55
|
+
return {
|
|
56
|
+
actionable: false,
|
|
57
|
+
probability: 0,
|
|
58
|
+
isDuplicate: false,
|
|
59
|
+
modifiesExisting: false,
|
|
60
|
+
action: "skip",
|
|
61
|
+
};
|
|
62
|
+
}
|
|
53
63
|
// Check for harness-internal messages (prevent self-triggering)
|
|
54
64
|
if (userMessage.includes("[harness:task-capture]")) {
|
|
55
65
|
return {
|
|
@@ -115,10 +125,16 @@ export class TaskIntakeController {
|
|
|
115
125
|
this._stopped = true;
|
|
116
126
|
}
|
|
117
127
|
/**
|
|
118
|
-
* Check if
|
|
128
|
+
* Check if stopped
|
|
129
|
+
*/
|
|
130
|
+
isStopped() {
|
|
131
|
+
return this._stopped;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Resume intake - clear stopped flag to re-enable processing
|
|
119
135
|
*/
|
|
120
|
-
|
|
121
|
-
|
|
136
|
+
resumeIntake() {
|
|
137
|
+
this._stopped = false;
|
|
122
138
|
}
|
|
123
139
|
/**
|
|
124
140
|
* Internal evaluation logic
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-intake.js","sourceRoot":"","sources":["../src/task-intake.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA+BtC;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IACxB,GAAG,GAAoB,IAAI,CAAC;IAC5B,MAAM,CAA6B;IACnC,WAAW,GAAkB,IAAI,CAAC;IAClC,UAAU,GAA4B,IAAI,CAAC;IACnD,iEAAiE;IACzD,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1B,mBAAmB,GAAG,KAAK,CAAC,CAAE,+CAA+C;IAC9F,
|
|
1
|
+
{"version":3,"file":"task-intake.js","sourceRoot":"","sources":["../src/task-intake.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA+BtC;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IACxB,GAAG,GAAoB,IAAI,CAAC;IAC5B,MAAM,CAA6B;IACnC,WAAW,GAAkB,IAAI,CAAC;IAClC,UAAU,GAA4B,IAAI,CAAC;IACnD,iEAAiE;IACzD,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1B,mBAAmB,GAAG,KAAK,CAAC,CAAE,+CAA+C;IAC9F,gEAAgE;IACxD,sBAAsB,GAAkB,IAAI,CAAC;IAC7C,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAAY,MAAwB;QACnC,IAAI,CAAC,MAAM,GAAG;YACb,mBAAmB,EAAE,GAAG;YACxB,GAAG,MAAM;SACqB,CAAC;QAEhC,yCAAyC;QACzC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAwB,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;IAED;;OAEG;IACH,WAAW;QACV,OAAO,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACb,WAAmB,EACnB,aAAa,GAAa,EAAE;QAE5B,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACtB,WAAmB,EACnB,UAA6G;QAE7G,oDAAoD;QACpD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO;gBACN,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,KAAK;gBAClB,gBAAgB,EAAE,KAAK;gBACvB,MAAM,EAAE,MAAM;aACd,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,IAAI,WAAW,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;YACpD,OAAO;gBACN,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,KAAK;gBAClB,gBAAgB,EAAE,KAAK;gBACvB,MAAM,EAAE,MAAM;aACd,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO;gBACN,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,KAAK;gBAClB,gBAAgB,EAAE,KAAK;gBACvB,MAAM,EAAE,MAAM;aACd,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,IAAI,aAAa,GAAa,EAAE,CAAC;QACjC,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;YAChD,aAAa,GAAG,QAAQ,CAAC,KAAK;iBAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;iBACjE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACR,gCAAgC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,GAAW;QAC9B,4DAA4D;QAC5D,mDAAmD;QACnD,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAE,qCAAqC;IAClE,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,WAAmB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,sCAAsC;QACtC,UAAU,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,iBAAiB;QAChB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,SAAS;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,YAAY;QACX,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS,CACtB,WAAmB,EACnB,aAAuB;QAEvB,iCAAiC;QACjC,IAAI,WAAW,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;QAED,iCAAiC;QACjC,MAAM,KAAK,GAAG;YACb,WAAW;YACX,aAAa;YACb,YAAY,EAAE,aAAa,CAAC,MAAM;SAClC,CAAC;QAEF,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YAChE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,OAAO,MAAM,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACJ,6BAA6B;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAC7C,aAAa,EAAE;oBACd,IAAI,EAAE,MAAM;oBACZ,YAAY,EACX,mHAAmH;iBACpH;gBACD,YAAY,EAAE;oBACb,IAAI,EAAE,MAAM;oBACZ,YAAY,EACX,8GAA8G;iBAC/G;gBACD,iBAAiB,EAAE;oBAClB,IAAI,EAAE,MAAM;oBACZ,YAAY,EACX,2FAA2F;iBAC5F;aACD,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM;gBACzE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB;gBACjF,CAAC,CAAC,KAAK,CAAC;YACT,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM;gBACzE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG;gBACpD,CAAC,CAAC,KAAK,CAAC;YACT,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM;gBACnF,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG;gBACzD,CAAC,CAAC,KAAK,CAAC;YAET,+BAA+B;YAC/B,IAAI,MAAkC,CAAC;YACvC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,MAAM,GAAG,MAAM,CAAC;YACjB,CAAC;iBAAM,IAAI,gBAAgB,EAAE,CAAC;gBAC7B,MAAM,GAAG,OAAO,CAAC;YAClB,CAAC;iBAAM,IAAI,WAAW,EAAE,CAAC;gBACxB,MAAM,GAAG,MAAM,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACP,MAAM,GAAG,QAAQ,CAAC;YACnB,CAAC;YAED,MAAM,WAAW,GAAqB;gBACrC,UAAU;gBACV,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM;oBACnE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI;oBAC9C,CAAC,CAAC,CAAC;gBACJ,WAAW;gBACX,gBAAgB;gBAChB,MAAM;aACN,CAAC;YAEF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;YAC9B,OAAO,WAAW,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,8CAA8C;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YAChE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,OAAO,MAAM,CAAC;QACf,CAAC;IACF,CAAC;IAED;;OAEG;IACK,eAAe,CACtB,WAAmB,EACnB,aAAuB;QAEvB,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QAExC,oCAAoC;QACpC,MAAM,aAAa,GAAG;YACrB,oCAAoC;YACpC,cAAc;YACd,0BAA0B;YAC1B,kBAAkB;YAClB,gBAAgB;SAChB,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO;oBACN,UAAU,EAAE,KAAK;oBACjB,WAAW,EAAE,CAAC;oBACd,WAAW,EAAE,KAAK;oBAClB,gBAAgB,EAAE,KAAK;oBACvB,MAAM,EAAE,MAAM;iBACd,CAAC;YACH,CAAC;QACF,CAAC;QAED,gCAAgC;QAChC,MAAM,kBAAkB,GAAG;YAC1B,UAAU;YACV,gBAAgB;YAChB,UAAU;YACV,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,cAAc;YACd,gBAAgB;SAChB,CAAC;QAEF,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;YAChD,CAAC;QACF,CAAC;QAED,uBAAuB;QACvB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,4BAA4B;YAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAChE,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;gBAClB,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM;YACP,CAAC;QACF,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAEtD,OAAO;YACN,UAAU;YACV,WAAW;YACX,WAAW;YACX,gBAAgB,EAAE,KAAK;YACvB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;SACtC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CACnB,WAAmB,EACnB,UAAU,GAAW,cAAc;QAEnC,iEAAiE;QACjE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAEjC,sDAAsD;QACtD,IAAI,OAAO,GAAG,IAAI,UAAU,qCAAqC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;QAE9F,OAAO,IAAI,uEAAuE,CAAC;QAEnF,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACxB,CAAC;CACD;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACxD,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -52,7 +52,7 @@ export class TaskIntakeController {
|
|
|
52
52
|
// Track recent capture request hashes to prevent self-triggering
|
|
53
53
|
private recentCaptures = new Set<string>();
|
|
54
54
|
private readonly CAPTURE_COOLDOWN_MS = 30000; // Don't re-trigger for same content within 30s
|
|
55
|
-
// Track
|
|
55
|
+
// Track stopped state to invalidate pending evaluations on stop
|
|
56
56
|
private _pendingEvaluationHash: string | null = null;
|
|
57
57
|
private _stopped = false;
|
|
58
58
|
|
|
@@ -92,6 +92,17 @@ export class TaskIntakeController {
|
|
|
92
92
|
userMessage: string,
|
|
93
93
|
controller: { getSnapshot: () => Promise<{ items: Array<{ id: number; subject: string; status: string }> }> }
|
|
94
94
|
): Promise<TaskIntakeResult> {
|
|
95
|
+
// Check if stopped - invalidatePending() was called
|
|
96
|
+
if (this._stopped) {
|
|
97
|
+
return {
|
|
98
|
+
actionable: false,
|
|
99
|
+
probability: 0,
|
|
100
|
+
isDuplicate: false,
|
|
101
|
+
modifiesExisting: false,
|
|
102
|
+
action: "skip",
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
|
|
95
106
|
// Check for harness-internal messages (prevent self-triggering)
|
|
96
107
|
if (userMessage.includes("[harness:task-capture]")) {
|
|
97
108
|
return {
|
|
@@ -163,10 +174,17 @@ export class TaskIntakeController {
|
|
|
163
174
|
}
|
|
164
175
|
|
|
165
176
|
/**
|
|
166
|
-
* Check if
|
|
177
|
+
* Check if stopped
|
|
178
|
+
*/
|
|
179
|
+
isStopped(): boolean {
|
|
180
|
+
return this._stopped;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Resume intake - clear stopped flag to re-enable processing
|
|
167
185
|
*/
|
|
168
|
-
|
|
169
|
-
|
|
186
|
+
resumeIntake(): void {
|
|
187
|
+
this._stopped = false;
|
|
170
188
|
}
|
|
171
189
|
|
|
172
190
|
/**
|