pi-harness-runtime 1.1.240 → 1.1.242
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 +44 -11
- 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 +1 -1
- package/packages/jev-judge/dist/task-intake.d.ts.map +1 -1
- package/packages/jev-judge/dist/task-intake.js +10 -3
- 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 +11 -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/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
|
@@ -533,6 +533,15 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
533
533
|
userMessage = textBlocks.map((c) => c.text).join("\n");
|
|
534
534
|
}
|
|
535
535
|
|
|
536
|
+
// Check for explicit resume request
|
|
537
|
+
if (detectResume(userMessage)) {
|
|
538
|
+
if (todoContinuationController) {
|
|
539
|
+
todoContinuationController.resume();
|
|
540
|
+
logToFile("[auto-continue]", "Resume detected, continuing work");
|
|
541
|
+
}
|
|
542
|
+
// Allow normal processing after resume
|
|
543
|
+
}
|
|
544
|
+
|
|
536
545
|
// Check for explicit stop/pause request
|
|
537
546
|
if (detectExplicitPause(userMessage)) {
|
|
538
547
|
if (todoContinuationController) {
|
|
@@ -568,19 +577,43 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
568
577
|
}
|
|
569
578
|
});
|
|
570
579
|
|
|
571
|
-
// Detect explicit stop/pause requests
|
|
580
|
+
// Detect explicit stop/pause requests (must be a directive TO the harness, not mentions)
|
|
572
581
|
function detectExplicitPause(text: string): boolean {
|
|
573
|
-
const lower = text.toLowerCase();
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
+
const lower = text.toLowerCase().trim().replace(/[.!?,;]+$/, ''); // Strip trailing punctuation
|
|
583
|
+
// Must be an explicit directive to STOP/PAUSE the harness
|
|
584
|
+
const explicitPatterns = [
|
|
585
|
+
/^(stop|pause|wait|hold|wait a moment)$/i,
|
|
586
|
+
/^(please\s+)?(stop|pause)$/i,
|
|
587
|
+
/^(please\s+)?(stop|pause)\s+(the\s+)?agent/i,
|
|
588
|
+
/^(please\s+)?(stop|pause)\s+(and|for|until|with)/i,
|
|
589
|
+
/^(please\s+)?stop\s+working/i,
|
|
590
|
+
/^(please\s+)?pause\s+(the\s+)?work/i,
|
|
591
|
+
/^(please\s+)?do\s+not\s+(continue|proceed|go|start)/i,
|
|
592
|
+
/^wait\s+(for\s+me|one|two|three|minute|moment|second)/i,
|
|
593
|
+
/^hold\s+(on|up|there)/i,
|
|
594
|
+
/^not\s+(yet|now|ready)/i,
|
|
595
|
+
];
|
|
596
|
+
for (const pattern of explicitPatterns) {
|
|
597
|
+
if (pattern.test(lower)) {
|
|
598
|
+
return true;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
return false;
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
// Detect resume requests - ONLY explicit resume directives, not acknowledgments
|
|
605
|
+
// Acknowledgments like "okay" or "yes" should NOT clear an explicit pause
|
|
606
|
+
function detectResume(text: string): boolean {
|
|
607
|
+
const lower = text.toLowerCase().trim().replace(/[.!?,;]+$/, ''); // Strip trailing punctuation
|
|
608
|
+
// Only explicit resume/continue directives clear the pause
|
|
609
|
+
const resumePatterns = [
|
|
610
|
+
/^(resume|continue|go\s+ahead|carry\s+on|proceed)$/i,
|
|
611
|
+
/^(please\s+)?(resume|continue)$/i,
|
|
612
|
+
/^(please\s+)?(resume|continue)\s+(the\s+)?(work|agent|task)/i,
|
|
613
|
+
/^(please\s+)?go\s+ahead/i,
|
|
614
|
+
/^(please\s+)?carry\s+on/i,
|
|
582
615
|
];
|
|
583
|
-
for (const pattern of
|
|
616
|
+
for (const pattern of resumePatterns) {
|
|
584
617
|
if (pattern.test(lower)) {
|
|
585
618
|
return true;
|
|
586
619
|
}
|
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.242",
|
|
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 +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,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,CAoC3B;IAED;;OAEG;IACH,OAAO,CAAC,WAAW;
|
|
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,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,CAoC3B;IAED;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB;;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"}
|
|
@@ -82,11 +82,16 @@ export class TaskIntakeController {
|
|
|
82
82
|
return this._evaluate(userMessage, existingTodos);
|
|
83
83
|
}
|
|
84
84
|
/**
|
|
85
|
-
* Hash a message for deduplication
|
|
85
|
+
* Hash a message for deduplication using full content
|
|
86
86
|
*/
|
|
87
87
|
hashMessage(msg) {
|
|
88
|
-
//
|
|
89
|
-
|
|
88
|
+
// Use a simple hash of the full content to avoid collisions
|
|
89
|
+
// Simple DJB2-style hash for strings of any length
|
|
90
|
+
let hash = 5381;
|
|
91
|
+
for (let i = 0; i < msg.length; i++) {
|
|
92
|
+
hash = ((hash << 5) + hash) ^ msg.charCodeAt(i);
|
|
93
|
+
}
|
|
94
|
+
return String(hash >>> 0); // Convert to positive integer string
|
|
90
95
|
}
|
|
91
96
|
/**
|
|
92
97
|
* Record a capture request to prevent re-triggering
|
|
@@ -252,6 +257,8 @@ export class TaskIntakeController {
|
|
|
252
257
|
* @param customType - Optional custom type for the message (default: "task-capture")
|
|
253
258
|
*/
|
|
254
259
|
async requestCapture(userMessage, customType = "task-capture") {
|
|
260
|
+
// Record this capture to prevent re-triggering on the same input
|
|
261
|
+
this._recordCapture(userMessage);
|
|
255
262
|
// Build a message to prompt the agent to create todos
|
|
256
263
|
let message = `[${customType}] Work detected in user request: "${userMessage.slice(0, 200)}"`;
|
|
257
264
|
message += "\n\nPlease capture this work in the todo list if not already tracked.";
|
|
@@ -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;IAE9F,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,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,
|
|
1
|
+
{"version":3,"file":"task-intake.js","sourceRoot":"","sources":["../src/task-intake.ts"],"names":[],"mappings":"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"}
|
|
@@ -127,11 +127,16 @@ export class TaskIntakeController {
|
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
/**
|
|
130
|
-
* Hash a message for deduplication
|
|
130
|
+
* Hash a message for deduplication using full content
|
|
131
131
|
*/
|
|
132
132
|
private hashMessage(msg: string): string {
|
|
133
|
-
//
|
|
134
|
-
|
|
133
|
+
// Use a simple hash of the full content to avoid collisions
|
|
134
|
+
// Simple DJB2-style hash for strings of any length
|
|
135
|
+
let hash = 5381;
|
|
136
|
+
for (let i = 0; i < msg.length; i++) {
|
|
137
|
+
hash = ((hash << 5) + hash) ^ msg.charCodeAt(i);
|
|
138
|
+
}
|
|
139
|
+
return String(hash >>> 0); // Convert to positive integer string
|
|
135
140
|
}
|
|
136
141
|
|
|
137
142
|
/**
|
|
@@ -323,6 +328,9 @@ export class TaskIntakeController {
|
|
|
323
328
|
userMessage: string,
|
|
324
329
|
customType: string = "task-capture"
|
|
325
330
|
): Promise<void> {
|
|
331
|
+
// Record this capture to prevent re-triggering on the same input
|
|
332
|
+
this._recordCapture(userMessage);
|
|
333
|
+
|
|
326
334
|
// Build a message to prompt the agent to create todos
|
|
327
335
|
let message = `[${customType}] Work detected in user request: "${userMessage.slice(0, 200)}"`;
|
|
328
336
|
|