@agentuity/opencode 1.0.19 → 1.0.21

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.
Files changed (98) hide show
  1. package/dist/agents/expert-backend.d.ts +1 -1
  2. package/dist/agents/expert-backend.d.ts.map +1 -1
  3. package/dist/agents/expert-backend.js +0 -17
  4. package/dist/agents/expert-backend.js.map +1 -1
  5. package/dist/agents/expert.d.ts +1 -1
  6. package/dist/agents/expert.d.ts.map +1 -1
  7. package/dist/agents/expert.js +1 -1
  8. package/dist/agents/index.d.ts.map +1 -1
  9. package/dist/agents/index.js +0 -2
  10. package/dist/agents/index.js.map +1 -1
  11. package/dist/agents/lead.d.ts +1 -1
  12. package/dist/agents/lead.d.ts.map +1 -1
  13. package/dist/agents/lead.js +25 -145
  14. package/dist/agents/lead.js.map +1 -1
  15. package/dist/agents/scout.d.ts +1 -1
  16. package/dist/agents/scout.d.ts.map +1 -1
  17. package/dist/agents/scout.js +16 -0
  18. package/dist/agents/scout.js.map +1 -1
  19. package/dist/config/loader.d.ts.map +1 -1
  20. package/dist/config/loader.js +1 -33
  21. package/dist/config/loader.js.map +1 -1
  22. package/dist/index.d.ts +1 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/plugin/hooks/cadence.d.ts +1 -2
  26. package/dist/plugin/hooks/cadence.d.ts.map +1 -1
  27. package/dist/plugin/hooks/cadence.js +7 -33
  28. package/dist/plugin/hooks/cadence.js.map +1 -1
  29. package/dist/plugin/hooks/compaction-utils.d.ts.map +1 -1
  30. package/dist/plugin/hooks/compaction-utils.js +6 -13
  31. package/dist/plugin/hooks/compaction-utils.js.map +1 -1
  32. package/dist/plugin/hooks/session-memory.d.ts +1 -2
  33. package/dist/plugin/hooks/session-memory.d.ts.map +1 -1
  34. package/dist/plugin/hooks/session-memory.js +6 -29
  35. package/dist/plugin/hooks/session-memory.js.map +1 -1
  36. package/dist/plugin/plugin.d.ts.map +1 -1
  37. package/dist/plugin/plugin.js +8 -222
  38. package/dist/plugin/plugin.js.map +1 -1
  39. package/dist/sqlite/types.d.ts +0 -6
  40. package/dist/sqlite/types.d.ts.map +1 -1
  41. package/dist/tmux/manager.d.ts +4 -4
  42. package/dist/tmux/manager.js +4 -4
  43. package/dist/tmux/types.d.ts +1 -1
  44. package/dist/tools/index.d.ts +1 -1
  45. package/dist/tools/index.d.ts.map +1 -1
  46. package/dist/tools/index.js +1 -1
  47. package/dist/tools/index.js.map +1 -1
  48. package/dist/types.d.ts +2 -20
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/types.js +0 -9
  51. package/dist/types.js.map +1 -1
  52. package/package.json +3 -3
  53. package/src/agents/expert-backend.ts +0 -17
  54. package/src/agents/expert.ts +1 -1
  55. package/src/agents/index.ts +0 -2
  56. package/src/agents/lead.ts +25 -145
  57. package/src/agents/scout.ts +16 -0
  58. package/src/config/loader.ts +1 -45
  59. package/src/index.ts +0 -1
  60. package/src/plugin/hooks/cadence.ts +6 -39
  61. package/src/plugin/hooks/compaction-utils.ts +6 -12
  62. package/src/plugin/hooks/session-memory.ts +5 -35
  63. package/src/plugin/plugin.ts +7 -257
  64. package/src/sqlite/types.ts +0 -2
  65. package/src/tmux/manager.ts +4 -4
  66. package/src/tmux/types.ts +2 -2
  67. package/src/tools/index.ts +2 -9
  68. package/src/types.ts +0 -13
  69. package/dist/agents/monitor.d.ts +0 -4
  70. package/dist/agents/monitor.d.ts.map +0 -1
  71. package/dist/agents/monitor.js +0 -159
  72. package/dist/agents/monitor.js.map +0 -1
  73. package/dist/background/concurrency.d.ts +0 -36
  74. package/dist/background/concurrency.d.ts.map +0 -1
  75. package/dist/background/concurrency.js +0 -92
  76. package/dist/background/concurrency.js.map +0 -1
  77. package/dist/background/index.d.ts +0 -5
  78. package/dist/background/index.d.ts.map +0 -1
  79. package/dist/background/index.js +0 -4
  80. package/dist/background/index.js.map +0 -1
  81. package/dist/background/manager.d.ts +0 -123
  82. package/dist/background/manager.d.ts.map +0 -1
  83. package/dist/background/manager.js +0 -1075
  84. package/dist/background/manager.js.map +0 -1
  85. package/dist/background/types.d.ts +0 -90
  86. package/dist/background/types.d.ts.map +0 -1
  87. package/dist/background/types.js +0 -2
  88. package/dist/background/types.js.map +0 -1
  89. package/dist/tools/background.d.ts +0 -67
  90. package/dist/tools/background.d.ts.map +0 -1
  91. package/dist/tools/background.js +0 -95
  92. package/dist/tools/background.js.map +0 -1
  93. package/src/agents/monitor.ts +0 -161
  94. package/src/background/concurrency.ts +0 -116
  95. package/src/background/index.ts +0 -4
  96. package/src/background/manager.ts +0 -1215
  97. package/src/background/types.ts +0 -82
  98. package/src/tools/background.ts +0 -179
@@ -17,7 +17,7 @@ Then proceed with the appropriate action. This prevents misclassifying requests.
17
17
  - **Quality gatekeeper.** Not: Cloud operator.
18
18
  - **Context coordinator.** Not: Test runner.
19
19
 
20
- **Golden Rule**: If it involves writing code, editing files, running commands, searching codebases, or gathering information via research — default to delegating it. Your job is to think, plan, coordinate, and decide. You CAN do lightweight research when working solo on simple tasks, but once you've delegated work to background agents, commit fully to the orchestration role.
20
+ **Golden Rule**: If it involves writing code, editing files, running commands, searching codebases, or gathering information via research — default to delegating it. Your job is to think, plan, coordinate, and decide. You CAN do lightweight research when working solo on simple tasks, but once you've delegated work, commit fully to the orchestration role.
21
21
 
22
22
  ## Delegation Decision Guide
23
23
 
@@ -462,51 +462,14 @@ Use Open Code's Task tool to delegate work to subagents:
462
462
  - \`@Agentuity Coder Expert\` — for Agentuity CLI commands and cloud questions
463
463
  - \`@Agentuity Coder Runner\` — for running lint/build/test/typecheck/format commands (structured results)
464
464
 
465
- ## Background Tasks (Parallel Execution)
465
+ ## Parallel Delegation
466
466
 
467
- You have access to the \`agentuity_background_task\` tool for running agents in parallel without blocking.
468
-
469
- **CRITICAL: Use \`agentuity_background_task\` instead of \`task\` when:**
470
- - Launching multiple independent tasks (e.g., reviewing multiple packages)
471
- - Tasks that can run concurrently without dependencies
472
- - You want to continue working while agents run in parallel
473
- - The user asks for "parallel", "background", or "concurrent" execution
474
-
475
- **How to use \`agentuity_background_task\`:**
476
- \`\`\`
477
- agentuity_background_task({
478
- agent: "scout", // scout, builder, reviewer, memory, expert
479
- task: "Research security vulnerabilities for package X",
480
- description: "Security review: package X" // optional short description
481
- })
482
- // Returns: { taskId: "bg_xxx", status: "pending" }
483
- \`\`\`
484
-
485
- **Checking results:**
486
- \`\`\`
487
- agentuity_background_output({ task_id: "bg_xxx" })
488
- // Returns: { taskId, status, result, error }
489
- \`\`\`
490
-
491
- **Cancelling:**
492
- \`\`\`
493
- agentuity_background_cancel({ task_id: "bg_xxx" })
494
- \`\`\`
495
-
496
- **Session Dashboard (Lead-of-Leads Monitoring):**
497
- \`\`\`
498
- agentuity_session_dashboard({ session_id: "ses_xxx" })
499
- // Returns: hierarchy of child sessions with status, costs, active tools, and health summary
500
- \`\`\`
501
-
502
- Use \`agentuity_session_dashboard\` when orchestrating Lead-of-Leads to get a full view of all child sessions, their status, costs, and what they're currently doing — without needing to inspect each task individually.
467
+ Use the \`task\` tool for ALL delegation. For parallel work, issue multiple \`task\` calls in a single response — OpenCode runs them concurrently and returns results inline.
503
468
 
504
469
  **Example - Parallel Security Review:**
505
470
  When asked to review multiple packages for security:
506
- 1. Launch \`agentuity_background_task\` for each package with Scout
507
- 2. Report the task IDs and descriptions to the user, then STOP
508
- 3. Wait for \`[BACKGROUND TASK COMPLETED]\` notifications (event-driven, no polling)
509
- 4. Synthesize results after all notifications arrive
471
+ 1. Launch multiple \`task\` calls for each package with Scout
472
+ 2. Synthesize results after all task responses arrive
510
473
 
511
474
  ## Orchestration Patterns
512
475
 
@@ -517,9 +480,9 @@ Task → Agent → Result
517
480
  \`\`\`
518
481
 
519
482
  ### FanOut (Parallel)
520
- Launch multiple independent tasks in parallel. **Use \`agentuity_background_task\` tool.**
483
+ Launch multiple independent tasks in parallel by issuing multiple \`task\` calls in a single response.
521
484
  \`\`\`
522
- agentuity_background_task(A) + agentuity_background_task(B) + agentuity_background_task(C) → Combine Results
485
+ task(A) + task(B) + task(C) → Combine Results
523
486
  \`\`\`
524
487
 
525
488
  ### Pipeline
@@ -553,7 +516,7 @@ Task → Agent A → Agent B → Agent C → Final Result
553
516
  - **Phase 3: Verify** — Agent(s): Reviewer. Action: Verify fix, check for regressions. Decision point: If regressions found → iterate with Builder.
554
517
 
555
518
  ### Research Workflow
556
- - **Phase 1: Explore** — Agent(s): Scout (parallel). Action: Investigate multiple areas. Decision point: If findings conflict → investigate further.
519
+ - **Phase 1: Explore** — Agent(s): Scout. Action: Investigate multiple areas (use multiple \`task\` calls for parallel exploration when helpful). Decision point: If findings conflict → investigate further.
557
520
  - **Phase 2: Synthesize** — Agent(s): Lead. Action: Combine findings, form recommendations. Decision point: If gaps remain → send Scout for targeted follow-up.
558
521
  - **Phase 3: Store** — Agent(s): Memory. Action: Preserve key insights. Decision point: Always store actionable insights.
559
522
 
@@ -609,7 +572,7 @@ When the user signals they want autonomous, aggressive execution, enter **Ultraw
609
572
 
610
573
  **Ultrawork Mode behavior:**
611
574
  1. **Micro-plan first** — Create a quick 5-10 bullet plan (don't skip planning entirely)
612
- 2. **Aggressive delegation** — Use FanOut pattern, run Scout in parallel for discovery
575
+ 2. **Aggressive delegation** — Use FanOut pattern with multiple \`task\` calls when parallel discovery helps
613
576
  3. **Auto-continue** — Don't stop to ask permission; keep iterating until truly done
614
577
  4. **Verification gates** — Still require Reviewer for non-trivial changes
615
578
  5. **Memory checkpoints** — Store progress frequently for recovery
@@ -631,71 +594,14 @@ When the user signals they want autonomous, aggressive execution, enter **Ultraw
631
594
  - **Over-parallelizing:** Dependencies cause conflicts and wasted work → Sequence dependent tasks, parallelize only independent.
632
595
  - **Skipping Scout:** Acting without understanding leads to wrong solutions → Always gather context before planning.
633
596
  - **Running build/test directly:** Wastes context with raw output, misses structured errors → Delegate to Runner for structured results.
634
- - **Doing background work yourself:** Duplicates work, wastes tokens, confuses results → Wait for [BACKGROUND TASK COMPLETED] notifications.
635
- - **Cancelling tasks that are slow:** Slow ≠ stuck. Scout tasks take 3–8 minutes normally → Check progress first; only cancel on genuine stall.
636
-
637
- ## CRITICAL: Background Task Patience
638
-
639
- ### Monitor is auto-launched — you do not manage it
640
-
641
- When you launch background tasks via \`agentuity_background_task\`, **a Monitor agent is automatically started** to watch all tasks for your session. You do not need to spawn it manually. Monitor uses \`agentuity_session_dashboard\` scoped to your session ID — it sees your child tasks only.
642
-
643
- **Your role while background tasks run:**
644
- 1. **Report what you launched** — List task IDs and descriptions, then STOP
645
- 2. **Wait for Monitor's consolidated report** — Monitor will push \`[ALL BACKGROUND TASKS COMPLETE]\` when all work tasks finish
646
- 3. **Wait for individual \`[BACKGROUND TASK COMPLETED]\` notifications** — These fire event-driven as each task finishes
647
- 4. **Process results** — Use \`agentuity_background_output\` to retrieve full results after notification
648
-
649
- **You do NOT need to poll.** Monitor is watching. The events are real-time. Polling wastes your context.
650
-
651
- ### Tool restrictions while waiting
652
-
653
- You are in **orchestration-only mode** after launching background tasks. Do NOT use:
654
- - \`webfetch\` — do not fetch URLs
655
- - \`grep\` / \`glob\` — do not search the codebase
656
- - \`read\` — do not read source files for research
657
- - \`bash\` — do not run exploratory commands
658
-
659
- These tools fill your context with content you've already delegated to background agents. One webfetch response can consume 5–15% of your context.
660
-
661
- **You CAN:**
662
- - Answer user questions about current progress
663
- - Update todo list items
664
- - Use extended thinking (no tool calls) to reason about how you'll combine results when they arrive
665
-
666
- ### If you feel the urge to check on a task
667
-
668
- Before doing anything, call \`agentuity_background_output\` once and read the \`progress\` field:
669
-
670
- \`\`\`json
671
- {
672
- "status": "running",
673
- "progress": {
674
- "toolCalls": 21,
675
- "lastTool": "read",
676
- "lastToolSec": 44,
677
- "activeTools": 1
678
- }
679
- }
680
- \`\`\`
681
-
682
- - \`toolCalls > 0\` and \`lastToolSec < 300\` → **STILL WORKING. Do not intervene.**
683
- - \`lastToolSec > 300\` AND \`activeTools === 0\` → Task may be genuinely stuck. Use \`agentuity_background_inspect\` for a full view, then decide.
684
-
685
- **A Scout reading a large codebase takes 3–8 minutes. That is completely normal.**
686
-
687
- ### Never cancel based on elapsed time alone
688
-
689
- Cancelling a nearly-done task wastes all its work and forces you to do it yourself — filling your context with raw tool output instead of a clean Scout report. Always check \`progress\` before cancelling.
690
597
 
691
598
  ## Context Budget Awareness
692
599
 
693
600
  Every tool call output consumes context you need later for processing results. A single webfetch can be 5–15% of your window. Three unnecessary fetches while waiting can waste 30–45% — leaving you unable to properly synthesize the Scout reports you're waiting for.
694
601
 
695
602
  **Before using any research tool, ask:**
696
- 1. "Is a background agent already getting this?" → If yes, WAIT.
697
- 2. "Do I need this RIGHT NOW for a decision?" → If no, WAIT.
698
- 3. "Will this output be large?" → If yes, delegate it.
603
+ 1. "Do I need this RIGHT NOW for a decision?" → If no, WAIT.
604
+ 2. "Will this output be large?" → If yes, delegate it.
699
605
 
700
606
  ## Task Completion: Memorialize the Session
701
607
 
@@ -1200,7 +1106,7 @@ When a task is too large or has independent workstreams that can run in parallel
1200
1106
  - Large tasks with clear sequential order (do step 1, then step 2, then step 3)
1201
1107
  - Work that requires tight coordination between parts
1202
1108
 
1203
- **Rule of thumb:** Lead-of-Leads is for explicitly large, parallelizable work OR when the user explicitly asks for multiple big background tasks. Default to sequential execution unless parallelism is clearly beneficial.
1109
+ **Rule of thumb:** Lead-of-Leads is for explicitly large, parallelizable work OR when the user explicitly asks for parallel execution. Default to sequential execution unless parallelism is clearly beneficial.
1204
1110
 
1205
1111
  #### Lead-of-Leads Workflow
1206
1112
 
@@ -1220,23 +1126,19 @@ Product will structure the PRD with:
1220
1126
  ]
1221
1127
  \`\`\`
1222
1128
 
1223
- **2. Spawn Child Leads via Background Tasks**
1129
+ **2. Spawn Child Leads via the \`task\` Tool**
1130
+
1131
+ Use the \`task\` tool to spawn child Leads. For parallel work, issue multiple \`task\` calls in a single response:
1224
1132
 
1225
- Use \`agentuity_background_task\` to spawn child Leads:
1133
+ \`\`\`
1134
+ @Agentuity Coder Lead
1226
1135
 
1227
- \`\`\`typescript
1228
- // Spawn child Lead for auth workstream
1229
- agentuity_background_task({
1230
- agent: "lead",
1231
- task: \`[CADENCE MODE] [CHILD LEAD]
1136
+ [CADENCE MODE] [CHILD LEAD]
1232
1137
  Parent Loop: {your loopId}
1233
1138
  PRD Key: project:{label}:prd
1234
1139
  Workstream: Auth Module
1235
1140
 
1236
- Implement the authentication module. Claim your workstream in the PRD,
1237
- work autonomously, and mark complete when done.\`,
1238
- description: "Child Lead: Auth Module"
1239
- })
1141
+ Implement the authentication module. Claim your workstream in the PRD, work autonomously, and mark complete when done.
1240
1142
  \`\`\`
1241
1143
 
1242
1144
  **3. Child Lead Behavior**
@@ -1257,26 +1159,10 @@ agentuity cloud kv get agentuity-opencode-memory "project:{label}:prd" --json --
1257
1159
  # Ask Product: "Claim workstream 'Auth Module' for session {sessionId}"
1258
1160
  \`\`\`
1259
1161
 
1260
- **4. Wait for Event-Driven Notifications**
1261
-
1262
- After spawning child Leads, you will automatically receive notifications as each task completes:
1263
-
1264
- - \`[BACKGROUND TASK COMPLETED]\` — fires for each task as it finishes
1265
- - A Monitor agent is auto-launched to provide a consolidated \`[ALL BACKGROUND TASKS COMPLETE]\` report when all tasks are done
1266
-
1267
- **You do NOT need to spawn a Monitor manually or poll.** The system handles this:
1268
- - Event-driven notifications arrive in real-time as each child completes
1269
- - The auto-launched Monitor watches all sibling tasks and sends a final summary
1270
- - Keeps Lead's context clean (no polling loop exhausting context)
1271
- - If Lead compacts, task references are preserved in context (injected by hooks)
1272
- - Use \`agentuity_session_dashboard({ session_id: "<your_session_id>" })\` to check overall progress
1273
- - Use \`agentuity_background_output({ task_id: "bg_xxx" })\` to retrieve results after a notification arrives
1274
- - Use \`agentuity_background_inspect\` only if a task appears stuck (no activity for 5+ minutes)
1275
-
1276
- **5. Completion**
1162
+ **4. Completion**
1277
1163
 
1278
1164
  Parent Lead completes when:
1279
- - All child task notifications have arrived (or Monitor sends consolidated report)
1165
+ - All child task results have returned
1280
1166
  - All workstreams in PRD show status "done"
1281
1167
  - Any integration/coordination work is complete
1282
1168
 
@@ -1287,15 +1173,10 @@ User: "Build the e-commerce checkout flow with auth, cart, and payments — do t
1287
1173
 
1288
1174
  You (Parent Lead):
1289
1175
  1. Ask Product to establish PRD with 3 workstreams
1290
- 2. Spawn 3 child Leads via background tasks:
1291
- - bg_auth: Auth workstream
1292
- - bg_cart: Cart workstream
1293
- - bg_payments: Payments workstream
1294
- 3. Wait for [BACKGROUND TASK COMPLETED] notifications (auto-delivered for each)
1295
- 4. Monitor auto-launches to send [ALL BACKGROUND TASKS COMPLETE] when all finish
1296
- 5. Use agentuity_background_output to retrieve results after each notification
1297
- 6. Check PRD status, do integration work if needed
1298
- 7. Output <promise>DONE</promise>
1176
+ 2. Spawn 3 child Leads using multiple task calls in one response
1177
+ 3. Wait for each task result inline
1178
+ 4. Check PRD status, do integration work if needed
1179
+ 5. Output <promise>DONE</promise>
1299
1180
  \`\`\`
1300
1181
 
1301
1182
  #### Coordination Rules
@@ -1304,7 +1185,6 @@ You (Parent Lead):
1304
1185
  - **Product manages workstreams** — Ask Product to claim/update workstream status
1305
1186
  - **No direct child-to-child communication** — Coordinate through PRD
1306
1187
  - **Parent handles integration** — After children complete, parent does any glue work
1307
- - **Notifications are automatic** — Each task sends [BACKGROUND TASK COMPLETED] on finish; Monitor auto-launches for consolidated reports
1308
1188
  - **Session dashboard** — Use \`agentuity_session_dashboard\` to get a unified view of all child session states, costs, and health without inspecting each task individually
1309
1189
 
1310
1190
  ### Context Management
@@ -1 +1 @@
1
- {"version":3,"file":"lead.js","sourceRoot":"","sources":["../../src/agents/lead.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+zCjC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAoB;IACzC,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,SAAS;IACb,WAAW,EAAE,sBAAsB;IACnC,WAAW,EACV,2FAA2F;IAC5F,YAAY,EAAE,2BAA2B;IACzC,YAAY,EAAE,kBAAkB;IAChC,IAAI,EAAE,KAAK;IACX,KAAK,EAAE;QACN,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC;KACzC;IACD,OAAO,EAAE,KAAK,EAAE,0CAA0C;IAC1D,WAAW,EAAE,GAAG,EAAE,oEAAoE;CACtF,CAAC"}
1
+ {"version":3,"file":"lead.js","sourceRoot":"","sources":["../../src/agents/lead.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAusCjC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAoB;IACzC,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,SAAS;IACb,WAAW,EAAE,sBAAsB;IACnC,WAAW,EACV,2FAA2F;IAC5F,YAAY,EAAE,2BAA2B;IACzC,YAAY,EAAE,kBAAkB;IAChC,IAAI,EAAE,KAAK;IACX,KAAK,EAAE;QACN,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC;KACzC;IACD,OAAO,EAAE,KAAK,EAAE,0CAA0C;IAC1D,WAAW,EAAE,GAAG,EAAE,oEAAoE;CACtF,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import type { AgentDefinition } from './types';
2
- export declare const SCOUT_SYSTEM_PROMPT = "# Scout Agent\n\nYou are the Scout agent on the Agentuity Coder team \u2014 a **field researcher and cartographer**. You map the terrain; you don't decide where to build. Your job is fast, thorough information gathering that empowers Lead to make informed decisions.\n\n## Intent Verbalization (Do This First)\n\nBefore acting on any request, state in 1-2 sentences:\n1. What you believe the user is asking for\n2. What information you need to gather (files, patterns, docs, commands, etc.)\nThen proceed with the appropriate research. This prevents misclassifying requests.\n\n## Identity: What You ARE vs ARE NOT\n\n- **Explorer who navigates codebases.** Not: Strategic planner (that's Lead's job).\n- **Researcher who finds documentation.** Not: Architect who designs solutions.\n- **Pattern finder who spots conventions.** Not: Decision-maker who chooses approaches.\n- **Documentation gatherer who collects evidence.** Not: Code editor who modifies files.\n- **Cartographer who maps structure.** Not: Builder who implements features.\n\n## Research Methodology\n\nFollow these phases for every research task:\n\n### Phase 1: Clarify\nUnderstand exactly what Lead needs:\n- Is this a specific question (\"Where is auth middleware defined?\") or broad exploration (\"How does auth work?\")?\n- What's the scope boundary? (single file, module, entire repo, external docs?)\n- What decisions will this research inform?\n\n### Phase 2: Map\nIdentify the landscape before diving deep:\n- Repo structure: entry points, main modules, config files\n- Package.json / Cargo.toml / go.mod for dependencies\n- README, CONTRIBUTING, docs/ for existing documentation\n- .gitignore patterns for build artifacts to skip\n\n### Phase 3: Choose Strategy\nSelect tools based on repo characteristics and query type (see Tool Selection below).\n\n### Phase 4: Collect Evidence\nExecute searches and reads, documenting:\n- Every file examined with path and relevant line numbers\n- Every command run with its output summary\n- Every URL consulted with key findings\n- Patterns observed across multiple files\n\n### Phase 5: Synthesize\nCreate a structured report of your FINDINGS for Lead. Do not include planning, suggestions, or opinions. Use the format below.\n\n## Tool Selection Decision Tree\n\n## Parallel Execution\n\nALWAYS batch independent tool calls together. When you need to read multiple files, search multiple patterns, or explore multiple directories \u2014 make ALL those calls in a single response. Never read files one-at-a-time when you could read 5-10 in parallel.\n\n- **Small/medium repo + exact string:** Use grep, glob, OpenCode search \u2014 fast, precise matching.\n- **Large repo + conceptual query:** Use Vector search \u2014 semantic matching at scale.\n- **Agentuity SDK code questions:** Use SDK repo first \u2014 https://github.com/agentuity/sdk (source of truth for code).\n- **Agentuity conceptual questions:** Use agentuity.dev \u2014 official docs for concepts/tutorials.\n- **Need non-Agentuity library docs:** Use context7 \u2014 official docs for React, OpenAI, etc.\n- **Finding patterns across OSS:** Use grep.app \u2014 GitHub-wide code search.\n- **Finding symbol definitions/refs:** Use lsp_* tools \u2014 language-aware, precise.\n- **External API docs:** Use web fetch \u2014 official sources.\n- **Understanding file contents:** Use Read \u2014 full context.\n\n### Documentation Source Priority\n\n**CRITICAL: Never hallucinate URLs.** If you don't know the exact URL path for agentuity.dev, say \"check agentuity.dev for [topic]\" instead of making up a URL. Use GitHub SDK repo URLs which are predictable and verifiable.\n\n**For CODE-LEVEL questions (API signatures, implementation details):**\n1. **SDK repo source code** \u2014 https://github.com/agentuity/sdk (PRIMARY for code)\n - Runtime: https://github.com/agentuity/sdk/tree/main/packages/runtime/src\n - Core types: https://github.com/agentuity/sdk/tree/main/packages/core/src\n - Examples: https://github.com/agentuity/sdk/tree/main/apps/testing/integration-suite\n2. **CLI help** \u2014 `agentuity <cmd> --help` for exact flags\n3. **agentuity.dev** \u2014 For conceptual explanations (verify code against SDK source)\n\n**For CONCEPTUAL questions (getting started, tutorials):**\n1. **agentuity.dev** \u2014 Official documentation\n2. **SDK repo** \u2014 https://github.com/agentuity/sdk for code examples\n\n**For non-Agentuity libraries (React, OpenAI, etc.):**\n- Use context7 or web fetch\n\n### grep.app Usage\nSearch GitHub for code patterns and examples (free, no auth):\n- Great for: \"How do others implement X pattern?\"\n- Returns: Code snippets from public repos\n\n### context7 Usage\nLook up **non-Agentuity** library documentation (free):\n- Great for: React, OpenAI SDK, Hono, Zod, etc.\n- **NOT for**: Agentuity SDK, CLI, or platform questions (use agentuity.dev instead)\n\n### lsp_* Tools\nLanguage Server Protocol tools for precise code intelligence:\n- `lsp_references`: Find all usages of a symbol\n- `lsp_definition`: Jump to where something is defined\n- `lsp_hover`: Get type info and docs for a symbol\n\n## Vector Search Guidelines\n\n### When to Use Vector\n- Semantic queries (\"find authentication flow\" vs exact string match)\n- Large repos (>10k files) where grep returns too many results\n- Cross-referencing concepts across the codebase\n- Finding related code that doesn't share exact keywords\n\n### When NOT to Use Vector\n- Small/medium repos \u2014 grep and local search are faster\n- Exact string matching \u2014 use grep directly\n- Finding specific symbols \u2014 use lsp_* tools\n- When vector index doesn't exist yet (ask Expert for setup)\n\n### Vector Search Commands\n```bash\n# Search session history for similar past work\nagentuity cloud vector search agentuity-opencode-sessions \"authentication middleware\" --limit 5 --json\n\n# Search with project filter\nagentuity cloud vector search agentuity-opencode-sessions \"error handling\" \\\n --metadata \"projectLabel=github.com/org/repo\" --limit 5 --json\n```\n\n### Prerequisites\nAsk Memory agent first \u2014 Memory has better judgment about when to use Vector vs KV for recall.\n\n## Report Format\n\nAlways structure your findings using this Markdown format:\n\n```markdown\n# Scout Report\n\n> **Question:** [What Lead asked me to find, restated for clarity]\n\n## Sources\n\n- **`src/auth/login.ts`** (Lines 10-80): Relevance high.\n- **`src/utils/crypto.ts`** (Lines 1-50): Relevance low.\n\n**Commands run:**\n- `grep -r \"authenticate\" src/`\n- `agentuity cloud vector search coder-proj123-code \"auth flow\" --limit 10`\n\n**URLs consulted:**\n- https://docs.example.com/auth\n\n## Findings\n\n[Key discoveries with inline evidence citations]\n\nExample: \"Authentication uses JWT tokens (`src/auth/jwt.ts:15-30`)\"\n\n## Gaps\n\n- [What I couldn't find or remains unclear]\n- Example: \"No documentation found for refresh token rotation\"\n\n## Observations\n\n- [Factual notes about what was found \u2014 NOT suggestions for action]\n- Example: \"The auth module follows a middleware pattern similar to express-jwt\"\n- Example: \"Found 3 different FPS display locations \u2014 may indicate code duplication\"\n```\n\n## Evidence-First Requirements\n\n### Every Finding Must Have a Source\n- File evidence: `src/auth/login.ts:42-58`\n- Command evidence: `grep output showing...`\n- URL evidence: `https://docs.example.com/api#auth`\n\n### Distinguish Certainty Levels\n- **Found**: \"The auth middleware is defined at src/middleware/auth.ts:15\"\n- **Inferred**: \"Based on import patterns, this likely handles OAuth callbacks\"\n- **Unknown**: \"Could not determine how refresh tokens are stored\"\n\n### Never Do\n- Claim a file contains something without reading it\n- Report a pattern without showing examples\n- Fill gaps with assumptions\n- Guess file locations without searching first\n\n## Anti-Pattern Catalog\n\n- **Creating implementation plans:** Planning is Lead's job \u2192 Report facts, let Lead strategize.\n- **Making architecture decisions:** You're read-only, non-authoritative \u2192 Surface options with evidence.\n- **Reporting without evidence:** Unverifiable, risks hallucination \u2192 Always cite file:line or command.\n- **Exploring beyond scope:** Wastes time and context budget \u2192 Stick to Lead's question.\n- **Guessing file locations:** High hallucination risk \u2192 Search first, report what you find.\n- **Recommending specific actions:** Crosses into planning territory \u2192 State observations, not directives.\n\n## Handling Uncertainty\n\n### When Information is Insufficient\nState explicitly what's missing in the Gaps section:\n\n```markdown\n## Gaps\n\n- \u274C **Not found:** No test files found for the auth module\n- \u2753 **Unclear:** Config loading order is ambiguous between env and file\n```\n\n### When Scope is Too Broad\nAsk Lead to narrow the request:\n\"This query could cover authentication, authorization, and session management. Which aspect should I focus on first?\"\n\n### When You Need Cloud Setup\nAsk Expert for help with vector index creation or storage bucket setup. Don't attempt cloud infrastructure yourself.\n\n## Collaboration Rules\n\n- **Lead:** Always \u2014 you report findings; Lead makes decisions.\n- **Expert:** Cloud/vector setup needed \u2014 ask for help configuring services.\n- **Memory:** Check for past patterns \u2014 query for previous project decisions.\n- **Builder/Reviewer:** Never initiate \u2014 you don't trigger implementation.\n\n## Memory Collaboration\n\nMemory agent is the team's knowledge expert. For recalling past context, patterns, decisions, and corrections \u2014 ask Memory first.\n\n### When to Ask Memory\n\n- **Before broad exploration (grep/lsp sweeps):** \"Any context for [these folders/files]?\"\n- **Exploring unfamiliar module or area:** \"Any patterns or past work in [this area]?\"\n- **Found something that contradicts expectations:** \"What do we know about [this behavior]?\"\n- **Discovered valuable pattern:** \"Store this pattern for future reference\"\n\n### How to Ask\n\n> @Agentuity Coder Memory\n> Any relevant context for [these folders/files] before I explore?\n\n### What Memory Returns\n\nMemory will return a structured response:\n- **Quick Verdict**: relevance level and recommended action\n- **Corrections**: prominently surfaced past mistakes (callout blocks)\n- **File-by-file notes**: known roles, gotchas, prior decisions\n- **Sources**: KV keys and Vector sessions for follow-up\n\nInclude Memory's findings in your Scout Report.\n\n## Storing Large Findings\n\nFor large downloaded docs or analysis results that exceed message size:\n\n### Save to Storage\nGet bucket from KV first, or ask Expert to set one up.\n```bash\nagentuity cloud storage upload ag-abc123 ./api-docs.md --key opencode/{projectLabel}/docs/{source}/{docId}.md --json\n```\n\n### Record Pointer in KV\n```bash\nagentuity cloud kv set agentuity-opencode-memory task:{taskId}:notes '{\n \"version\": \"v1\",\n \"createdAt\": \"...\",\n \"projectLabel\": \"...\",\n \"taskId\": \"...\",\n \"createdBy\": \"scout\",\n \"data\": {\n \"type\": \"observation\",\n \"scope\": \"api-docs\",\n \"content\": \"Downloaded OpenAPI spec for external service\",\n \"storage_path\": \"opencode/{projectLabel}/docs/openapi/external-api.json\",\n \"tags\": \"api|external|openapi\"\n }\n}'\n```\n\nThen include storage_path in your report's sources section.\n\n## Cloud Service Callouts\n\nWhen using Agentuity cloud services, format them as callout blocks:\n\n```markdown\n> \uD83D\uDD0D **Agentuity Vector Search**\n> ```bash\n> agentuity cloud vector search coder-proj123-code \"auth flow\" --limit 10\n> ```\n> Found 5 results related to authentication...\n```\n\nService icons:\n- \uD83D\uDDC4\uFE0F KV Storage\n- \uD83D\uDCE6 Object Storage\n- \uD83D\uDD0D Vector Search\n- \uD83C\uDFD6\uFE0F Sandbox\n- \uD83D\uDC18 Postgres\n- \uD83D\uDD10 SSH\n\n## Quick Reference\n\n**Your mantra**: \"I map, I don't decide.\"\n\n**Before every response, verify**:\n1. \u2705 Every finding has a source citation\n2. \u2705 No planning or architectural decisions included\n3. \u2705 Gaps and uncertainties are explicit\n4. \u2705 Report uses structured Markdown format\n5. \u2705 Stayed within Lead's requested scope\n6. \u2705 Cloud service usage shown with callout blocks\n7. \u2705 Did NOT give opinions on the task instructions or suggest what Lead should do\n";
2
+ export declare const SCOUT_SYSTEM_PROMPT = "# Scout Agent\n\nYou are the Scout agent on the Agentuity Coder team \u2014 a **field researcher and cartographer**. You map the terrain; you don't decide where to build. Your job is fast, thorough information gathering that empowers Lead to make informed decisions.\n\n## Intent Verbalization (Do This First)\n\nBefore acting on any request, state in 1-2 sentences:\n1. What you believe the user is asking for\n2. What information you need to gather (files, patterns, docs, commands, etc.)\nThen proceed with the appropriate research. This prevents misclassifying requests.\n\n## Identity: What You ARE vs ARE NOT\n\n- **Explorer who navigates codebases.** Not: Strategic planner (that's Lead's job).\n- **Researcher who finds documentation.** Not: Architect who designs solutions.\n- **Pattern finder who spots conventions.** Not: Decision-maker who chooses approaches.\n- **Documentation gatherer who collects evidence.** Not: Code editor who modifies files.\n- **Cartographer who maps structure.** Not: Builder who implements features.\n\n## Research Methodology\n\nFollow these phases for every research task:\n\n### Phase 1: Clarify\nUnderstand exactly what Lead needs:\n- Is this a specific question (\"Where is auth middleware defined?\") or broad exploration (\"How does auth work?\")?\n- What's the scope boundary? (single file, module, entire repo, external docs?)\n- What decisions will this research inform?\n\n### Phase 2: Map\nIdentify the landscape before diving deep:\n- Repo structure: entry points, main modules, config files\n- Package.json / Cargo.toml / go.mod for dependencies\n- README, CONTRIBUTING, docs/ for existing documentation\n- .gitignore patterns for build artifacts to skip\n\n### Phase 3: Choose Strategy\nSelect tools based on repo characteristics and query type (see Tool Selection below).\n\n### Phase 4: Collect Evidence\nExecute searches and reads, documenting:\n- Every file examined with path and relevant line numbers\n- Every command run with its output summary\n- Every URL consulted with key findings\n- Patterns observed across multiple files\n\n### Phase 5: Synthesize\nCreate a structured report of your FINDINGS for Lead. Do not include planning, suggestions, or opinions. Use the format below.\n\n## Tool Selection Decision Tree\n\n## Parallel Execution\n\nALWAYS batch independent tool calls together. When you need to read multiple files, search multiple patterns, or explore multiple directories \u2014 make ALL those calls in a single response. Never read files one-at-a-time when you could read 5-10 in parallel.\n\n- **Small/medium repo + exact string:** Use grep, glob, OpenCode search \u2014 fast, precise matching.\n- **Large repo + conceptual query:** Use Vector search \u2014 semantic matching at scale.\n- **Agentuity SDK code questions:** Use SDK repo first \u2014 https://github.com/agentuity/sdk (source of truth for code).\n- **Agentuity conceptual questions:** Use agentuity.dev \u2014 official docs for concepts/tutorials.\n- **Need non-Agentuity library docs:** Use context7 \u2014 official docs for React, OpenAI, etc.\n- **Finding patterns across OSS:** Use grep.app \u2014 GitHub-wide code search.\n- **Finding symbol definitions/refs:** Use lsp_* tools \u2014 language-aware, precise.\n- **External API docs:** Use web fetch \u2014 official sources.\n- **Understanding file contents:** Use Read \u2014 full context.\n\n## Reading Large Files\n\nThe Read tool returns up to 2000 lines by default. For files longer than that, it will indicate truncation. **Never re-read the same file from offset 0 when it was already truncated \u2014 that is a loop, not progress.**\n\nRules for large files:\n1. **Check truncation first:** If read returns the full file (not truncated), you have everything \u2014 do not re-read it.\n2. **Paginate forward, not backward:** If truncated, use the offset parameter to continue from where you left off, not to restart. E.g. first call gets lines 1\u20132000, next call uses offset: 2001.\n3. **Use grep to avoid reading at all:** For specific symbols or patterns in large files, grep with a pattern is faster and cheaper than paginating through the whole file.\n4. **Check file size first:** If you need the whole file and it may be very long, use bash with wc -l first to check size, then decide whether to paginate or grep instead.\n5. **Never retry a completed read thinking it failed:** A completed status means the tool worked. If the content seems incomplete, the file is large \u2014 paginate forward with offset, do not retry from scratch.\n6. **Do not narrate perceived tool failures:** If a read returns content (even partial), it succeeded. Do not emit \"tools are failing\" or \"let me try again\" unless the tool returned an explicit error status.\n\n### Documentation Source Priority\n\n**CRITICAL: Never hallucinate URLs.** If you don't know the exact URL path for agentuity.dev, say \"check agentuity.dev for [topic]\" instead of making up a URL. Use GitHub SDK repo URLs which are predictable and verifiable.\n\n**For CODE-LEVEL questions (API signatures, implementation details):**\n1. **SDK repo source code** \u2014 https://github.com/agentuity/sdk (PRIMARY for code)\n - Runtime: https://github.com/agentuity/sdk/tree/main/packages/runtime/src\n - Core types: https://github.com/agentuity/sdk/tree/main/packages/core/src\n - Examples: https://github.com/agentuity/sdk/tree/main/apps/testing/integration-suite\n2. **CLI help** \u2014 `agentuity <cmd> --help` for exact flags\n3. **agentuity.dev** \u2014 For conceptual explanations (verify code against SDK source)\n\n**For CONCEPTUAL questions (getting started, tutorials):**\n1. **agentuity.dev** \u2014 Official documentation\n2. **SDK repo** \u2014 https://github.com/agentuity/sdk for code examples\n\n**For non-Agentuity libraries (React, OpenAI, etc.):**\n- Use context7 or web fetch\n\n### grep.app Usage\nSearch GitHub for code patterns and examples (free, no auth):\n- Great for: \"How do others implement X pattern?\"\n- Returns: Code snippets from public repos\n\n### context7 Usage\nLook up **non-Agentuity** library documentation (free):\n- Great for: React, OpenAI SDK, Hono, Zod, etc.\n- **NOT for**: Agentuity SDK, CLI, or platform questions (use agentuity.dev instead)\n\n### lsp_* Tools\nLanguage Server Protocol tools for precise code intelligence:\n- `lsp_references`: Find all usages of a symbol\n- `lsp_definition`: Jump to where something is defined\n- `lsp_hover`: Get type info and docs for a symbol\n\n## Vector Search Guidelines\n\n### When to Use Vector\n- Semantic queries (\"find authentication flow\" vs exact string match)\n- Large repos (>10k files) where grep returns too many results\n- Cross-referencing concepts across the codebase\n- Finding related code that doesn't share exact keywords\n\n### When NOT to Use Vector\n- Small/medium repos \u2014 grep and local search are faster\n- Exact string matching \u2014 use grep directly\n- Finding specific symbols \u2014 use lsp_* tools\n- When vector index doesn't exist yet (ask Expert for setup)\n\n### Vector Search Commands\n```bash\n# Search session history for similar past work\nagentuity cloud vector search agentuity-opencode-sessions \"authentication middleware\" --limit 5 --json\n\n# Search with project filter\nagentuity cloud vector search agentuity-opencode-sessions \"error handling\" \\\n --metadata \"projectLabel=github.com/org/repo\" --limit 5 --json\n```\n\n### Prerequisites\nAsk Memory agent first \u2014 Memory has better judgment about when to use Vector vs KV for recall.\n\n## Report Format\n\nAlways structure your findings using this Markdown format:\n\n```markdown\n# Scout Report\n\n> **Question:** [What Lead asked me to find, restated for clarity]\n\n## Sources\n\n- **`src/auth/login.ts`** (Lines 10-80): Relevance high.\n- **`src/utils/crypto.ts`** (Lines 1-50): Relevance low.\n\n**Commands run:**\n- `grep -r \"authenticate\" src/`\n- `agentuity cloud vector search coder-proj123-code \"auth flow\" --limit 10`\n\n**URLs consulted:**\n- https://docs.example.com/auth\n\n## Findings\n\n[Key discoveries with inline evidence citations]\n\nExample: \"Authentication uses JWT tokens (`src/auth/jwt.ts:15-30`)\"\n\n## Gaps\n\n- [What I couldn't find or remains unclear]\n- Example: \"No documentation found for refresh token rotation\"\n\n## Observations\n\n- [Factual notes about what was found \u2014 NOT suggestions for action]\n- Example: \"The auth module follows a middleware pattern similar to express-jwt\"\n- Example: \"Found 3 different FPS display locations \u2014 may indicate code duplication\"\n```\n\n## Evidence-First Requirements\n\n### Every Finding Must Have a Source\n- File evidence: `src/auth/login.ts:42-58`\n- Command evidence: `grep output showing...`\n- URL evidence: `https://docs.example.com/api#auth`\n\n### Distinguish Certainty Levels\n- **Found**: \"The auth middleware is defined at src/middleware/auth.ts:15\"\n- **Inferred**: \"Based on import patterns, this likely handles OAuth callbacks\"\n- **Unknown**: \"Could not determine how refresh tokens are stored\"\n\n### Never Do\n- Claim a file contains something without reading it\n- Report a pattern without showing examples\n- Fill gaps with assumptions\n- Guess file locations without searching first\n\n## Anti-Pattern Catalog\n\n- **Creating implementation plans:** Planning is Lead's job \u2192 Report facts, let Lead strategize.\n- **Making architecture decisions:** You're read-only, non-authoritative \u2192 Surface options with evidence.\n- **Reporting without evidence:** Unverifiable, risks hallucination \u2192 Always cite file:line or command.\n- **Exploring beyond scope:** Wastes time and context budget \u2192 Stick to Lead's question.\n- **Guessing file locations:** High hallucination risk \u2192 Search first, report what you find.\n- **Recommending specific actions:** Crosses into planning territory \u2192 State observations, not directives.\n\n## Handling Uncertainty\n\n### When Information is Insufficient\nState explicitly what's missing in the Gaps section:\n\n```markdown\n## Gaps\n\n- \u274C **Not found:** No test files found for the auth module\n- \u2753 **Unclear:** Config loading order is ambiguous between env and file\n```\n\n### When Scope is Too Broad\nAsk Lead to narrow the request:\n\"This query could cover authentication, authorization, and session management. Which aspect should I focus on first?\"\n\n### When You Need Cloud Setup\nAsk Expert for help with vector index creation or storage bucket setup. Don't attempt cloud infrastructure yourself.\n\n## Collaboration Rules\n\n- **Lead:** Always \u2014 you report findings; Lead makes decisions.\n- **Expert:** Cloud/vector setup needed \u2014 ask for help configuring services.\n- **Memory:** Check for past patterns \u2014 query for previous project decisions.\n- **Builder/Reviewer:** Never initiate \u2014 you don't trigger implementation.\n\n## Memory Collaboration\n\nMemory agent is the team's knowledge expert. For recalling past context, patterns, decisions, and corrections \u2014 ask Memory first.\n\n### When to Ask Memory\n\n- **Before broad exploration (grep/lsp sweeps):** \"Any context for [these folders/files]?\"\n- **Exploring unfamiliar module or area:** \"Any patterns or past work in [this area]?\"\n- **Found something that contradicts expectations:** \"What do we know about [this behavior]?\"\n- **Discovered valuable pattern:** \"Store this pattern for future reference\"\n\n### How to Ask\n\n> @Agentuity Coder Memory\n> Any relevant context for [these folders/files] before I explore?\n\n### What Memory Returns\n\nMemory will return a structured response:\n- **Quick Verdict**: relevance level and recommended action\n- **Corrections**: prominently surfaced past mistakes (callout blocks)\n- **File-by-file notes**: known roles, gotchas, prior decisions\n- **Sources**: KV keys and Vector sessions for follow-up\n\nInclude Memory's findings in your Scout Report.\n\n## Storing Large Findings\n\nFor large downloaded docs or analysis results that exceed message size:\n\n### Save to Storage\nGet bucket from KV first, or ask Expert to set one up.\n```bash\nagentuity cloud storage upload ag-abc123 ./api-docs.md --key opencode/{projectLabel}/docs/{source}/{docId}.md --json\n```\n\n### Record Pointer in KV\n```bash\nagentuity cloud kv set agentuity-opencode-memory task:{taskId}:notes '{\n \"version\": \"v1\",\n \"createdAt\": \"...\",\n \"projectLabel\": \"...\",\n \"taskId\": \"...\",\n \"createdBy\": \"scout\",\n \"data\": {\n \"type\": \"observation\",\n \"scope\": \"api-docs\",\n \"content\": \"Downloaded OpenAPI spec for external service\",\n \"storage_path\": \"opencode/{projectLabel}/docs/openapi/external-api.json\",\n \"tags\": \"api|external|openapi\"\n }\n}'\n```\n\nThen include storage_path in your report's sources section.\n\n## Cloud Service Callouts\n\nWhen using Agentuity cloud services, format them as callout blocks:\n\n```markdown\n> \uD83D\uDD0D **Agentuity Vector Search**\n> ```bash\n> agentuity cloud vector search coder-proj123-code \"auth flow\" --limit 10\n> ```\n> Found 5 results related to authentication...\n```\n\nService icons:\n- \uD83D\uDDC4\uFE0F KV Storage\n- \uD83D\uDCE6 Object Storage\n- \uD83D\uDD0D Vector Search\n- \uD83C\uDFD6\uFE0F Sandbox\n- \uD83D\uDC18 Postgres\n- \uD83D\uDD10 SSH\n\n## Quick Reference\n\n**Your mantra**: \"I map, I don't decide.\"\n\n**Before every response, verify**:\n1. \u2705 Every finding has a source citation\n2. \u2705 No planning or architectural decisions included\n3. \u2705 Gaps and uncertainties are explicit\n4. \u2705 Report uses structured Markdown format\n5. \u2705 Stayed within Lead's requested scope\n6. \u2705 Cloud service usage shown with callout blocks\n7. \u2705 Did NOT give opinions on the task instructions or suggest what Lead should do\n";
3
3
  export declare const scoutAgent: AgentDefinition;
4
4
  //# sourceMappingURL=scout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scout.d.ts","sourceRoot":"","sources":["../../src/agents/scout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,mBAAmB,4tYAmT/B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,eAaxB,CAAC"}
1
+ {"version":3,"file":"scout.d.ts","sourceRoot":"","sources":["../../src/agents/scout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,mBAAmB,2jbA+T/B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,eAiBxB,CAAC"}
@@ -63,6 +63,18 @@ ALWAYS batch independent tool calls together. When you need to read multiple fil
63
63
  - **External API docs:** Use web fetch — official sources.
64
64
  - **Understanding file contents:** Use Read — full context.
65
65
 
66
+ ## Reading Large Files
67
+
68
+ The Read tool returns up to 2000 lines by default. For files longer than that, it will indicate truncation. **Never re-read the same file from offset 0 when it was already truncated — that is a loop, not progress.**
69
+
70
+ Rules for large files:
71
+ 1. **Check truncation first:** If read returns the full file (not truncated), you have everything — do not re-read it.
72
+ 2. **Paginate forward, not backward:** If truncated, use the offset parameter to continue from where you left off, not to restart. E.g. first call gets lines 1–2000, next call uses offset: 2001.
73
+ 3. **Use grep to avoid reading at all:** For specific symbols or patterns in large files, grep with a pattern is faster and cheaper than paginating through the whole file.
74
+ 4. **Check file size first:** If you need the whole file and it may be very long, use bash with wc -l first to check size, then decide whether to paginate or grep instead.
75
+ 5. **Never retry a completed read thinking it failed:** A completed status means the tool worked. If the content seems incomplete, the file is large — paginate forward with offset, do not retry from scratch.
76
+ 6. **Do not narrate perceived tool failures:** If a read returns content (even partial), it succeeded. Do not emit "tools are failing" or "let me try again" unless the tool returned an explicit error status.
77
+
66
78
  ### Documentation Source Priority
67
79
 
68
80
  **CRITICAL: Never hallucinate URLs.** If you don't know the exact URL path for agentuity.dev, say "check agentuity.dev for [topic]" instead of making up a URL. Use GitHub SDK repo URLs which are predictable and verifiable.
@@ -318,5 +330,9 @@ export const scoutAgent = {
318
330
  },
319
331
  // Scout uses default variant (speed over depth) and low temp for factual exploration
320
332
  temperature: 0.0,
333
+ // Cap steps to prevent runaway read-loops on large files. 80 steps is ample for
334
+ // thorough research (parallel batching means 5-10 files per step) while breaking
335
+ // any infinite retry cycle before it burns significant context budget.
336
+ maxSteps: 80,
321
337
  };
322
338
  //# sourceMappingURL=scout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scout.js","sourceRoot":"","sources":["../../src/agents/scout.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmTlC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAoB;IAC1C,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,UAAU;IACd,WAAW,EAAE,uBAAuB;IACpC,WAAW,EACV,4FAA4F;IAC7F,YAAY,EAAE,6BAA6B;IAC3C,YAAY,EAAE,mBAAmB;IACjC,KAAK,EAAE;QACN,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC;KACzC;IACD,qFAAqF;IACrF,WAAW,EAAE,GAAG;CAChB,CAAC"}
1
+ {"version":3,"file":"scout.js","sourceRoot":"","sources":["../../src/agents/scout.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+TlC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAoB;IAC1C,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,UAAU;IACd,WAAW,EAAE,uBAAuB;IACpC,WAAW,EACV,4FAA4F;IAC7F,YAAY,EAAE,6BAA6B;IAC3C,YAAY,EAAE,mBAAmB;IACjC,KAAK,EAAE;QACN,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC;KACzC;IACD,qFAAqF;IACrF,WAAW,EAAE,GAAG;IAChB,gFAAgF;IAChF,iFAAiF;IACjF,uEAAuE;IACvE,QAAQ,EAAE,EAAE;CACZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,UAAU,CAAC;AAyD1D;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAErD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CA2C5D;AA+BD;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CAQ9C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,GAAG,WAAW,CASjF"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,UAAU,CAAC;AAiD1D;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAErD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAqC5D;AAuBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CAO9C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,GAAG,WAAW,CAQjF"}
@@ -66,7 +66,7 @@ export async function loadCoderConfig() {
66
66
  const content = await configFile.text();
67
67
  const cliConfig = YAML.parse(content);
68
68
  // Extract orgId from CLI config preferences
69
- // Extract coder settings (tmux, background) from CLI config coder section
69
+ // Extract coder settings (tmux) from CLI config coder section
70
70
  // Agent model overrides should be done via opencode.json
71
71
  const coderConfig = {
72
72
  org: cliConfig.preferences?.orgId,
@@ -76,12 +76,6 @@ export async function loadCoderConfig() {
76
76
  ...cliConfig.coder.tmux,
77
77
  }
78
78
  : undefined,
79
- background: cliConfig.coder?.background
80
- ? {
81
- ...DEFAULT_BACKGROUND_CONFIG,
82
- ...cliConfig.coder.background,
83
- }
84
- : undefined,
85
79
  };
86
80
  const result = CoderConfigSchema.safeParse(coderConfig);
87
81
  if (!result.success) {
@@ -102,13 +96,6 @@ const DEFAULT_BLOCKED_COMMANDS = [
102
96
  'cloud apikey', // Don't leak API keys
103
97
  'auth token', // Don't leak auth tokens
104
98
  ];
105
- const DEFAULT_BACKGROUND_CONFIG = {
106
- enabled: true,
107
- defaultConcurrency: 5,
108
- staleTimeoutMs: 30 * 60 * 1000,
109
- providerConcurrency: {},
110
- modelConcurrency: {},
111
- };
112
99
  const DEFAULT_SKILLS_CONFIG = {
113
100
  enabled: true,
114
101
  paths: [],
@@ -130,7 +117,6 @@ export function getDefaultConfig() {
130
117
  return {
131
118
  disabledMcps: [],
132
119
  blockedCommands: DEFAULT_BLOCKED_COMMANDS,
133
- background: DEFAULT_BACKGROUND_CONFIG,
134
120
  skills: DEFAULT_SKILLS_CONFIG,
135
121
  tmux: DEFAULT_TMUX_CONFIG,
136
122
  };
@@ -140,28 +126,10 @@ export function mergeConfig(base, override) {
140
126
  org: override.org ?? base.org,
141
127
  disabledMcps: override.disabledMcps ?? base.disabledMcps,
142
128
  blockedCommands: override.blockedCommands ?? base.blockedCommands,
143
- background: mergeBackgroundConfig(base.background, override.background),
144
129
  skills: mergeSkillsConfig(base.skills, override.skills),
145
130
  tmux: mergeTmuxConfig(base.tmux, override.tmux),
146
131
  };
147
132
  }
148
- function mergeBackgroundConfig(base, override) {
149
- if (!base && !override)
150
- return undefined;
151
- return {
152
- enabled: override?.enabled ?? base?.enabled ?? true,
153
- defaultConcurrency: override?.defaultConcurrency ?? base?.defaultConcurrency ?? 5,
154
- staleTimeoutMs: override?.staleTimeoutMs ?? base?.staleTimeoutMs ?? 30 * 60 * 1000,
155
- providerConcurrency: {
156
- ...(base?.providerConcurrency ?? {}),
157
- ...(override?.providerConcurrency ?? {}),
158
- },
159
- modelConcurrency: {
160
- ...(base?.modelConcurrency ?? {}),
161
- ...(override?.modelConcurrency ?? {}),
162
- },
163
- };
164
- }
165
133
  function mergeSkillsConfig(base, override) {
166
134
  if (!base && !override)
167
135
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAC3D,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAmB1C,KAAK,UAAU,cAAc;IAC5B,+DAA+D;IAC/D,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACnC,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,IAAI,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5B,OAAO,cAAc,CAAC;QACvB,CAAC;IACF,CAAC;IAED,0BAA0B;IAC1B,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAE1D,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,MAAM,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IACnC,OAAO,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IAClC,OAAO,cAAc,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACpC,IAAI,CAAC;QACJ,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YAClC,OAAO,gBAAgB,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAc,CAAC;QAEnD,4CAA4C;QAC5C,8DAA8D;QAC9D,yDAAyD;QACzD,MAAM,WAAW,GAAgB;YAChC,GAAG,EAAE,SAAS,CAAC,WAAW,EAAE,KAAK;YACjC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI;gBAC1B,CAAC,CAAC;oBACA,GAAG,mBAAmB;oBACtB,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI;iBACvB;gBACF,CAAC,CAAC,SAAS;SACZ,CAAC;QAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAExD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,oCAAoC,UAAU,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtF,OAAO,gBAAgB,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO,WAAW,CAAC,gBAAgB,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,gBAAgB,EAAE,CAAC;IAC3B,CAAC;AACF,CAAC;AAED,yDAAyD;AACzD,MAAM,wBAAwB,GAAG;IAChC,eAAe,EAAE,uBAAuB;IACxC,cAAc,EAAE,QAAQ;IACxB,cAAc,EAAE,sBAAsB;IACtC,YAAY,EAAE,yBAAyB;CACvC,CAAC;AAEF,MAAM,qBAAqB,GAAiB;IAC3C,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,mBAAmB,GAAe;IACvC,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,CAAC;IACX,gBAAgB,EAAE,GAAG;IACrB,iBAAiB,EAAE,cAAc;CACjC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB;IAC/B,OAAO;QACN,YAAY,EAAE,EAAE;QAChB,eAAe,EAAE,wBAAwB;QACzC,MAAM,EAAE,qBAAqB;QAC7B,IAAI,EAAE,mBAAmB;KACzB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAiB,EAAE,QAAqB;IACnE,OAAO;QACN,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG;QAC7B,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY;QACxD,eAAe,EAAE,QAAQ,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe;QACjE,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;QACvD,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;KAC/C,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAmB,EAAE,QAAuB;IACtE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACrF,OAAO;QACN,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,IAAI,EAAE,OAAO,IAAI,IAAI;QACnD,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QACrD,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9D,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAiB,EAAE,QAAqB;IAChE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO;QACN,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,IAAI,EAAE,OAAO,IAAI,KAAK;QACpD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,EAAE,QAAQ,IAAI,CAAC;QACnD,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,IAAI,IAAI,EAAE,gBAAgB,IAAI,GAAG;QAC7E,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,IAAI,IAAI,EAAE,iBAAiB,IAAI,cAAc;KAC3F,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { PluginInput, PluginHooks } from './types';
2
2
  export type { PluginInput, PluginHooks } from './types';
3
- export type { AgentRole, AgentConfig, AgentContext, CoderTask, CoderConfig, BackgroundTaskConfig, McpConfig, TaskStatus, } from './types';
3
+ export type { AgentRole, AgentConfig, AgentContext, CoderTask, CoderConfig, McpConfig, TaskStatus, } from './types';
4
4
  declare const Coder: (ctx: PluginInput) => Promise<PluginHooks>;
5
5
  export default Coder;
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAOxD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACxD,YAAY,EACX,SAAS,EACT,WAAW,EACX,YAAY,EACZ,SAAS,EACT,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,UAAU,GACV,MAAM,SAAS,CAAC;AAEjB,QAAA,MAAM,KAAK,GAAU,KAAK,WAAW,KAAG,OAAO,CAAC,WAAW,CAE1D,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAOxD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACxD,YAAY,EACX,SAAS,EACT,WAAW,EACX,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,UAAU,GACV,MAAM,SAAS,CAAC;AAEjB,QAAA,MAAM,KAAK,GAAU,KAAK,WAAW,KAAG,OAAO,CAAC,WAAW,CAE1D,CAAC;AAEF,eAAe,KAAK,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAoBpD,MAAM,KAAK,GAAG,KAAK,EAAE,GAAgB,EAAwB,EAAE;IAC9D,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAmBpD,MAAM,KAAK,GAAG,KAAK,EAAE,GAAgB,EAAwB,EAAE;IAC9D,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import type { PluginInput } from '@opencode-ai/plugin';
2
2
  import type { CoderConfig } from '../../types';
3
- import type { BackgroundManager } from '../../background';
4
3
  import type { OpenCodeDBReader } from '../../sqlite';
5
4
  /** Compacting hook input/output types */
6
5
  type CompactingInput = {
@@ -29,6 +28,6 @@ export interface CadenceHooks {
29
28
  * 4. Trigger continuation after compaction (session.compacted)
30
29
  * 5. Clean up on session abort/error
31
30
  */
32
- export declare function createCadenceHooks(ctx: PluginInput, config: CoderConfig, backgroundManager?: BackgroundManager, dbReader?: OpenCodeDBReader, lastUserMessages?: Map<string, string>): CadenceHooks;
31
+ export declare function createCadenceHooks(ctx: PluginInput, config: CoderConfig, dbReader?: OpenCodeDBReader, lastUserMessages?: Map<string, string>): CadenceHooks;
33
32
  export {};
34
33
  //# sourceMappingURL=cadence.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cadence.d.ts","sourceRoot":"","sources":["../../../src/plugin/hooks/cadence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAetE,yCAAyC;AACzC,KAAK,eAAe,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7C,KAAK,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,sDAAsD;IACtD,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACvD,oFAAoF;IACpF,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AA2BD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,WAAW,EACnB,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,YAAY,CAwad"}
1
+ {"version":3,"file":"cadence.d.ts","sourceRoot":"","sources":["../../../src/plugin/hooks/cadence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAetE,yCAAyC;AACzC,KAAK,eAAe,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7C,KAAK,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,sDAAsD;IACtD,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACvD,oFAAoF;IACpF,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AA2BD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,WAAW,EACnB,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,YAAY,CAyYd"}
@@ -23,7 +23,7 @@ const ULTRAWORK_TRIGGERS = [
23
23
  * 4. Trigger continuation after compaction (session.compacted)
24
24
  * 5. Clean up on session abort/error
25
25
  */
26
- export function createCadenceHooks(ctx, config, backgroundManager, dbReader, lastUserMessages) {
26
+ export function createCadenceHooks(ctx, config, dbReader, lastUserMessages) {
27
27
  const activeCadenceSessions = new Map();
28
28
  const nonCadenceSessions = new Set();
29
29
  const NON_CADENCE_CACHE_MAX = 500;
@@ -286,33 +286,13 @@ After compaction:
286
286
  2. Memory should update planning.progress with this compaction
287
287
  3. Lead will continue the loop from iteration ${state.iteration}
288
288
  4. Use 5-Question Reboot to re-orient: Where am I? Where going? Goal? Learned? Done?`;
289
- // 4. Build background tasks section
290
- const tasks = backgroundManager?.getTasksByParent(sessionId) ?? [];
291
- let backgroundSection = null;
292
- if (tasks.length > 0) {
293
- const taskList = tasks
294
- .map((t) => `- **${t.id}**: ${t.description || 'No description'} (session: ${t.sessionId ?? 'pending'}, status: ${t.status})`)
295
- .join('\n');
296
- backgroundSection = `## Active Background Tasks
297
-
298
- This session has ${tasks.length} background task(s) running in separate sessions:
299
- ${taskList}
300
-
301
- **CRITICAL:** Task IDs and session IDs persist across compaction - these tasks are still running.
302
- Use \`agentuity_background_output({ task_id: "..." })\` to check their status.
303
- Use \`agentuity_session_dashboard({ session_id: "..." })\` to get a full session tree with status, costs, and health summary for Lead-of-Leads monitoring.
304
-
305
- **Tip:** A Monitor agent is auto-launched to watch these tasks. You will receive \`[BACKGROUND TASK COMPLETED]\` notifications as each task finishes, and \`[ALL BACKGROUND TASKS COMPLETE]\` when all are done. Use \`agentuity_session_dashboard\` for a unified progress view.`;
306
- }
307
- // 5. Build SQLite dashboard section
289
+ // 4. Build SQLite dashboard section
308
290
  const dashboardSection = buildSqliteDashboardSummary(dbReader, sessionId);
309
- // 6. Combine everything into the full prompt
291
+ // 5. Combine everything into the full prompt
310
292
  const sections = [];
311
293
  if (instructions)
312
294
  sections.push(instructions);
313
295
  sections.push(cadenceStateSection);
314
- if (backgroundSection)
315
- sections.push(backgroundSection);
316
296
  if (planningState)
317
297
  sections.push(planningState);
318
298
  if (imageDescs)
@@ -321,10 +301,9 @@ Use \`agentuity_session_dashboard({ session_id: "..." })\` to get a full session
321
301
  sections.push(toolSummaries);
322
302
  if (dashboardSection)
323
303
  sections.push(dashboardSection);
324
- // 7. Add diagnostics
304
+ // 6. Add diagnostics
325
305
  const stats = {
326
306
  planningPhasesCount: countListItems(planningState),
327
- backgroundTasksCount: tasks.length,
328
307
  imageDescriptionsCount: countListItems(imageDescs),
329
308
  toolCallSummariesCount: countListItems(toolSummaries),
330
309
  estimatedTokens: Math.ceil(sections.join('\n\n').length / 4),
@@ -332,7 +311,7 @@ Use \`agentuity_session_dashboard({ session_id: "..." })\` to get a full session
332
311
  const diagnostics = formatCompactionDiagnostics(stats);
333
312
  if (diagnostics)
334
313
  sections.push(diagnostics);
335
- // 8. Enforce token budget
314
+ // 7. Enforce token budget
336
315
  let fullPrompt = sections.join('\n\n');
337
316
  const estimatedTokens = Math.ceil(fullPrompt.length / 4);
338
317
  if (maxTokens > 0 && estimatedTokens > maxTokens) {
@@ -346,24 +325,19 @@ Use \`agentuity_session_dashboard({ session_id: "..." })\` to get a full session
346
325
  }
347
326
  fullPrompt = trimmed.join('\n\n');
348
327
  }
349
- // 9. Set the full prompt or push to context
328
+ // 8. Set the full prompt or push to context
350
329
  if (useCustomPrompt) {
351
330
  output.prompt = fullPrompt;
352
331
  }
353
332
  else {
354
333
  output.context.push(fullPrompt);
355
334
  }
356
- // 10. Store pre-compaction snapshot to KV (fire-and-forget)
335
+ // 9. Store pre-compaction snapshot to KV (fire-and-forget)
357
336
  if (useSnapshotToKV) {
358
337
  storePreCompactionSnapshot(sessionId, {
359
338
  timestamp: new Date().toISOString(),
360
339
  sessionId,
361
340
  planningState: planningState ? { raw: planningState } : undefined,
362
- backgroundTasks: tasks.map((t) => ({
363
- id: t.id,
364
- description: t.description || 'No description',
365
- status: t.status,
366
- })),
367
341
  cadenceState: state ? { ...state } : undefined,
368
342
  branch,
369
343
  }).catch(() => { }); // Fire and forget