@kenkaiiii/ggcoder 5.69.0 → 5.71.0

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 (226) hide show
  1. package/assets/motion/bin/contact-sheet.mjs +9 -3
  2. package/assets/motion/bin/cues.mjs +337 -0
  3. package/assets/motion/bin/library.mjs +53 -10
  4. package/assets/motion/bin/motion-blur.mjs +943 -0
  5. package/assets/motion/bin/motion-check.mjs +354 -3
  6. package/assets/motion/bin/music-fit.mjs +436 -0
  7. package/assets/motion/bin/pdf-extract.mjs +22 -10
  8. package/assets/motion/bin/reference-study.mjs +346 -0
  9. package/assets/motion/bin/score-synth.mjs +1052 -93
  10. package/assets/motion/library/README.md +50 -14
  11. package/assets/motion/library/kit/moves.js +1981 -0
  12. package/assets/motion/library/library.json +232 -0
  13. package/assets/motion/library/pieces/camera-rig/meta.json +13 -0
  14. package/assets/motion/library/pieces/camera-rig/piece.html +153 -0
  15. package/assets/motion/library/pieces/camera-rig/preview.jpg +0 -0
  16. package/assets/motion/library/pieces/chain-knock/meta.json +13 -0
  17. package/assets/motion/library/pieces/chain-knock/piece.html +195 -0
  18. package/assets/motion/library/pieces/chain-knock/preview.jpg +0 -0
  19. package/assets/motion/library/pieces/gather-to-logo/meta.json +13 -0
  20. package/assets/motion/library/pieces/gather-to-logo/piece.html +159 -0
  21. package/assets/motion/library/pieces/gather-to-logo/preview.jpg +0 -0
  22. package/assets/motion/library/pieces/morph-carry/meta.json +13 -0
  23. package/assets/motion/library/pieces/morph-carry/piece.html +173 -0
  24. package/assets/motion/library/pieces/morph-carry/preview.jpg +0 -0
  25. package/assets/motion/library/pieces/one-shape-journey/meta.json +13 -0
  26. package/assets/motion/library/pieces/one-shape-journey/piece.html +195 -0
  27. package/assets/motion/library/pieces/one-shape-journey/preview.jpg +0 -0
  28. package/assets/motion/library/pieces/open-from-subject/meta.json +13 -0
  29. package/assets/motion/library/pieces/open-from-subject/piece.html +168 -0
  30. package/assets/motion/library/pieces/open-from-subject/preview.jpg +0 -0
  31. package/assets/motion/library/pieces/request-to-result/meta.json +13 -0
  32. package/assets/motion/library/pieces/request-to-result/piece.html +212 -0
  33. package/assets/motion/library/pieces/request-to-result/preview.jpg +0 -0
  34. package/assets/motion/library/pieces/scale-dive/meta.json +13 -0
  35. package/assets/motion/library/pieces/scale-dive/piece.html +321 -0
  36. package/assets/motion/library/pieces/scale-dive/preview.jpg +0 -0
  37. package/assets/motion/library/pieces/screen-replica-steps/meta.json +13 -0
  38. package/assets/motion/library/pieces/screen-replica-steps/piece.html +366 -0
  39. package/assets/motion/library/pieces/screen-replica-steps/preview.jpg +0 -0
  40. package/assets/motion/library/pieces/zoom-into-card/meta.json +13 -0
  41. package/assets/motion/library/pieces/zoom-into-card/piece.html +179 -0
  42. package/assets/motion/library/pieces/zoom-into-card/preview.jpg +0 -0
  43. package/assets/motion/library/sheets/diagram.jpg +0 -0
  44. package/assets/motion/library/sheets/frame.jpg +0 -0
  45. package/assets/motion/library/sheets/transition.jpg +0 -0
  46. package/assets/motion/library/sheets/ui.jpg +0 -0
  47. package/assets/motion/references/build-sheet.md +206 -0
  48. package/assets/motion/references/runtime/determinism-rules.md +1 -1
  49. package/assets/motion/references/runtime/gsap-easing-and-stagger.md +29 -29
  50. package/assets/motion/references/runtime/inputs-and-assets.md +7 -12
  51. package/assets/motion/references/runtime/lint-validate-inspect.md +3 -3
  52. package/assets/motion/references/runtime/minimal-composition.md +1 -1
  53. package/assets/motion/references/runtime/preview-render.md +3 -3
  54. package/assets/motion/skills/app-walkthrough/SKILL.md +66 -0
  55. package/assets/motion/skills/before-after/SKILL.md +53 -0
  56. package/assets/motion/skills/brand-kit/SKILL.md +3 -3
  57. package/assets/motion/skills/dev-tool-video/SKILL.md +57 -0
  58. package/assets/motion/skills/launch-video/SKILL.md +62 -0
  59. package/assets/motion/skills/match-reference/SKILL.md +58 -0
  60. package/assets/motion/skills/motion/SKILL.md +78 -85
  61. package/assets/motion/skills/source-ingest/SKILL.md +17 -6
  62. package/assets/motion/skills/website-video/SKILL.md +59 -0
  63. package/assets/skills/bulletproof/SKILL.md +36 -11
  64. package/assets/skills/bulletproof/references/agent-surface.md +19 -9
  65. package/assets/skills/bulletproof/references/audit-protocol.md +20 -5
  66. package/assets/skills/bulletproof/references/platform-playbooks.md +5 -4
  67. package/assets/skills/bulletproof/references/provenance.md +26 -1
  68. package/assets/skills/bulletproof/references/secure-defaults.md +6 -5
  69. package/assets/skills/bulletproof/references/supply-chain.md +21 -17
  70. package/assets/skills/bulletproof/references/threat-landscape.md +28 -26
  71. package/assets/skills/bulletproof/references/verification.md +2 -0
  72. package/assets/skills/clarify/SKILL.md +25 -16
  73. package/assets/skills/code-review/SKILL.md +71 -13
  74. package/assets/skills/code-review/references/agent-diffs.md +27 -0
  75. package/assets/skills/code-review/references/tests.md +19 -0
  76. package/assets/skills/compliance-guard/SKILL.md +20 -5
  77. package/assets/skills/compliance-guard/references/artifacts.md +1 -1
  78. package/assets/skills/compliance-guard/references/eu-uk.md +16 -16
  79. package/assets/skills/compliance-guard/references/lawsuit-vectors.md +5 -5
  80. package/assets/skills/compliance-guard/references/provenance.md +41 -2
  81. package/assets/skills/compliance-guard/references/sector-gates.md +3 -3
  82. package/assets/skills/compliance-guard/references/security-baseline.md +2 -2
  83. package/assets/skills/compliance-guard/references/trigger-map.md +5 -5
  84. package/assets/skills/compliance-guard/references/us.md +27 -21
  85. package/assets/skills/durable/SKILL.md +87 -79
  86. package/assets/skills/durable/references/agent-db-safety.md +69 -0
  87. package/assets/skills/durable/references/backups-and-runtime.md +19 -12
  88. package/assets/skills/durable/references/migrations-and-schema.md +13 -6
  89. package/assets/skills/evidence-led-ui/SKILL.md +69 -127
  90. package/assets/skills/evidence-led-ui/references/anti-defaults.md +107 -208
  91. package/assets/skills/evidence-led-ui/references/direction.md +124 -0
  92. package/assets/skills/evidence-led-ui/references/production-contract.md +8 -0
  93. package/assets/skills/evidence-led-ui/references/provenance.md +24 -1
  94. package/assets/skills/lean/SKILL.md +90 -71
  95. package/assets/skills/lean/references/memory-and-processes.md +3 -2
  96. package/assets/skills/lean/references/playbooks.md +37 -12
  97. package/assets/skills/refactoring/SKILL.md +24 -3
  98. package/assets/skills/refactoring/references/agent-pitfalls.md +4 -1
  99. package/assets/skills/refactoring/references/legacy.md +21 -0
  100. package/assets/skills/root-cause/SKILL.md +20 -10
  101. package/assets/skills/shared-language/SKILL.md +16 -14
  102. package/assets/skills/tdd/SKILL.md +27 -15
  103. package/dist/app-sidecar.js +56 -33
  104. package/dist/app-sidecar.js.map +1 -1
  105. package/dist/cli.js +2 -11
  106. package/dist/cli.js.map +1 -1
  107. package/dist/core/acceptance-checks.d.ts +48 -0
  108. package/dist/core/acceptance-checks.js +144 -0
  109. package/dist/core/acceptance-checks.js.map +1 -0
  110. package/dist/core/agent-session.d.ts +32 -70
  111. package/dist/core/agent-session.js +92 -413
  112. package/dist/core/agent-session.js.map +1 -1
  113. package/dist/core/agents.d.ts +6 -5
  114. package/dist/core/agents.js.map +1 -1
  115. package/dist/core/bundled-agents.js +1 -3
  116. package/dist/core/bundled-agents.js.map +1 -1
  117. package/dist/core/compaction/compactor.js +78 -48
  118. package/dist/core/compaction/compactor.js.map +1 -1
  119. package/dist/core/mcp/content.js +6 -2
  120. package/dist/core/mcp/content.js.map +1 -1
  121. package/dist/core/model-unavailable.d.ts +14 -0
  122. package/dist/core/model-unavailable.js +23 -0
  123. package/dist/core/model-unavailable.js.map +1 -0
  124. package/dist/core/node-debugger.d.ts +148 -0
  125. package/dist/core/node-debugger.js +642 -0
  126. package/dist/core/node-debugger.js.map +1 -0
  127. package/dist/core/process-manager.d.ts +14 -0
  128. package/dist/core/process-manager.js +61 -0
  129. package/dist/core/process-manager.js.map +1 -1
  130. package/dist/core/session-history.d.ts +12 -0
  131. package/dist/core/session-history.js +27 -0
  132. package/dist/core/session-history.js.map +1 -1
  133. package/dist/core/settings-manager.d.ts +0 -1
  134. package/dist/core/settings-manager.js +2 -5
  135. package/dist/core/settings-manager.js.map +1 -1
  136. package/dist/core/skills.js +3 -1
  137. package/dist/core/skills.js.map +1 -1
  138. package/dist/core/subagent-manager.d.ts +11 -5
  139. package/dist/core/subagent-manager.js +15 -7
  140. package/dist/core/subagent-manager.js.map +1 -1
  141. package/dist/core/test-impact.d.ts +73 -0
  142. package/dist/core/test-impact.js +467 -0
  143. package/dist/core/test-impact.js.map +1 -0
  144. package/dist/core/thinking-level.d.ts +1 -1
  145. package/dist/core/thinking-level.js +1 -1
  146. package/dist/core/thinking-level.js.map +1 -1
  147. package/dist/core/verification-gate.d.ts +8 -98
  148. package/dist/core/verification-gate.js +26 -256
  149. package/dist/core/verification-gate.js.map +1 -1
  150. package/dist/interactive.js +2 -1
  151. package/dist/interactive.js.map +1 -1
  152. package/dist/modes/subagent-worker-mode.js +17 -5
  153. package/dist/modes/subagent-worker-mode.js.map +1 -1
  154. package/dist/motion-agent/motion-agent.d.ts +6 -2
  155. package/dist/motion-agent/motion-agent.js +5 -7
  156. package/dist/motion-agent/motion-agent.js.map +1 -1
  157. package/dist/motion-agent/motion-prompt.d.ts +1 -1
  158. package/dist/motion-agent/motion-prompt.js +14 -19
  159. package/dist/motion-agent/motion-prompt.js.map +1 -1
  160. package/dist/motion-agent/motion-review.d.ts +5 -1
  161. package/dist/motion-agent/motion-review.js +8 -3
  162. package/dist/motion-agent/motion-review.js.map +1 -1
  163. package/dist/motion-agent/motion-studio-context.js +1 -1
  164. package/dist/motion-agent/motion-studio-context.js.map +1 -1
  165. package/dist/system-prompt.js +3 -1
  166. package/dist/system-prompt.js.map +1 -1
  167. package/dist/test-support/keep-alive.d.ts +14 -0
  168. package/dist/test-support/keep-alive.js +17 -0
  169. package/dist/test-support/keep-alive.js.map +1 -0
  170. package/dist/tools/bash-read-evidence.d.ts +10 -0
  171. package/dist/tools/bash-read-evidence.js +133 -0
  172. package/dist/tools/bash-read-evidence.js.map +1 -0
  173. package/dist/tools/bash.d.ts +10 -1
  174. package/dist/tools/bash.js +66 -3
  175. package/dist/tools/bash.js.map +1 -1
  176. package/dist/tools/debug.d.ts +54 -0
  177. package/dist/tools/debug.js +233 -0
  178. package/dist/tools/debug.js.map +1 -0
  179. package/dist/tools/edit.js +12 -4
  180. package/dist/tools/edit.js.map +1 -1
  181. package/dist/tools/index.d.ts +19 -2
  182. package/dist/tools/index.js +46 -6
  183. package/dist/tools/index.js.map +1 -1
  184. package/dist/tools/prompt-hints.js +2 -0
  185. package/dist/tools/prompt-hints.js.map +1 -1
  186. package/dist/tools/read-tracker.d.ts +5 -0
  187. package/dist/tools/read-tracker.js +19 -9
  188. package/dist/tools/read-tracker.js.map +1 -1
  189. package/dist/tools/skill.js +5 -0
  190. package/dist/tools/skill.js.map +1 -1
  191. package/dist/tools/steroids.d.ts +1 -1
  192. package/dist/tools/subagent-control.js +11 -3
  193. package/dist/tools/subagent-control.js.map +1 -1
  194. package/dist/tools/subagent-shared.d.ts +16 -8
  195. package/dist/tools/subagent-shared.js +21 -15
  196. package/dist/tools/subagent-shared.js.map +1 -1
  197. package/dist/tools/subagent.d.ts +8 -2
  198. package/dist/tools/subagent.js +16 -9
  199. package/dist/tools/subagent.js.map +1 -1
  200. package/dist/tools/tool-tiers.d.ts +2 -2
  201. package/dist/tools/tool-tiers.js +3 -2
  202. package/dist/tools/tool-tiers.js.map +1 -1
  203. package/dist/ui/App.d.ts +0 -7
  204. package/dist/ui/App.js +6 -79
  205. package/dist/ui/App.js.map +1 -1
  206. package/dist/ui/hooks/useAgentLoop.d.ts +0 -7
  207. package/dist/ui/hooks/useAgentLoop.js +1 -119
  208. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  209. package/dist/ui/render.d.ts +0 -4
  210. package/dist/ui/render.js +0 -2
  211. package/dist/ui/render.js.map +1 -1
  212. package/dist/utils/image.d.ts +14 -0
  213. package/dist/utils/image.js +16 -0
  214. package/dist/utils/image.js.map +1 -1
  215. package/package.json +4 -4
  216. package/assets/motion/references/motion-language.md +0 -128
  217. package/assets/motion/skills/video-qa/SKILL.md +0 -89
  218. package/dist/core/ideal-review-subagent.d.ts +0 -56
  219. package/dist/core/ideal-review-subagent.js +0 -112
  220. package/dist/core/ideal-review-subagent.js.map +0 -1
  221. package/dist/core/ideal-review.d.ts +0 -82
  222. package/dist/core/ideal-review.js +0 -242
  223. package/dist/core/ideal-review.js.map +0 -1
  224. package/dist/motion-agent/motion-check-tool.d.ts +0 -42
  225. package/dist/motion-agent/motion-check-tool.js +0 -564
  226. package/dist/motion-agent/motion-check-tool.js.map +0 -1
@@ -158,7 +158,7 @@ export interface AgentSessionOptions {
158
158
  sessionRootDir?: string;
159
159
  /** Register GG Coder built-in/prompt/custom slash commands. Defaults to true. */
160
160
  coderSlashCommands?: boolean;
161
- /** Enable loop-break, re-grounding, and Ideal review hooks. Defaults to true. */
161
+ /** Enable loop-break and re-grounding hooks. Defaults to true. */
162
162
  selfCorrectionHooks?: boolean;
163
163
  /** Override the semantic-loop judge LLM call (tests). Receives the finished
164
164
  * prompt, returns the model's raw reply. Default: one-shot `stream()` call
@@ -237,6 +237,7 @@ export declare class AgentSession {
237
237
  /** Forgets every file read; called whenever the conversation is replaced or
238
238
  * rewound, so the model must re-read a file before changing it. */
239
239
  private clearReadTracker;
240
+ private recordBashReads;
240
241
  private skills;
241
242
  private cacheKeyLogged;
242
243
  private hookStats;
@@ -249,20 +250,6 @@ export declare class AgentSession {
249
250
  private hookFileEditCounts;
250
251
  private hookToolCalls;
251
252
  private backgroundVerification;
252
- private idealReviewPhase;
253
- /** Runtime-only suppression while Ken owns verification in autopilot mode. */
254
- private idealReviewSuppressed;
255
- /** Mirror of the last `hook_armed` value broadcast this run, so the event
256
- * fires only on a real edge. */
257
- private idealReviewArmed;
258
- /** Cached test-drift probe, keyed by the size of the edited-file set. Drift
259
- * depends only on WHICH files were edited and that set only grows, so this
260
- * keeps the arming check off the filesystem on most tool results — the probe
261
- * is several sync existsSync calls per edited file. */
262
- private idealDriftProbe;
263
- private readonly reviewCoverage;
264
- /** Coverage follow-ups spent this run, capped by MAX_REVIEW_COVERAGE_INJECTIONS. */
265
- private reviewCoverageInjected;
266
253
  /** 0 = none; 1 = first nudge sent; 2 = final stop-and-report injected. */
267
254
  private loopBreakInjected;
268
255
  private regroundingInjected;
@@ -272,8 +259,6 @@ export declare class AgentSession {
272
259
  * injection at the next steering poll; judge failures fail open (no
273
260
  * injection) and still consume budget + cooldown. */
274
261
  private semanticLoop;
275
- /** Independent Ideal reviewer spawned once per run (score-gated). */
276
- private independentReviewStarted;
277
262
  /**
278
263
  * The environment as the cached system prompt currently describes it.
279
264
  * Re-recorded on every prompt build, so a rebuild (e.g. `/add-dir`) needs no
@@ -284,11 +269,11 @@ export declare class AgentSession {
284
269
  private runStartedAt;
285
270
  /** Gate injections spent this run, capped by MAX_PROCESS_GATE_INJECTIONS. */
286
271
  private processGateInjected;
287
- /** Verification gate: code edited this run, nothing proved it since. */
272
+ /** Verification evidence: code edited this run, and what has proved it since.
273
+ * Passive tracking only — it feeds run status and autopilot, never a turn. */
288
274
  private readonly verificationGate;
289
- /** Mirror of the last verification `hook_armed` value, so the event fires
290
- * only on a real edge. */
291
- private verificationArmed;
275
+ /** Mirror of the last `hook_armed` value, so the event fires only on an edge. */
276
+ private preFinalArmed;
292
277
  private compactionOccurred;
293
278
  /**
294
279
  * Re-grounding carry-over for post-turn compaction. `resetHookState` clears
@@ -318,6 +303,7 @@ export declare class AgentSession {
318
303
  private steeringListeners;
319
304
  private processManager?;
320
305
  private lspManager?;
306
+ private debugManager?;
321
307
  private subAgentManager?;
322
308
  /**
323
309
  * Out-of-band push notifications (finished children, background-process
@@ -531,10 +517,17 @@ export declare class AgentSession {
531
517
  private resetHookState;
532
518
  /**
533
519
  * Fold one agent event into the hook stat accumulators. Pure bookkeeping —
534
- * the same signals the TUI's useAgentLoop collects, so the loop-break and
535
- * ideal-review decisions match across the CLI and the app.
520
+ * the same signals the TUI's useAgentLoop collects, so loop-break decisions
521
+ * match across the CLI and the app.
536
522
  */
537
523
  private trackHookEvent;
524
+ /**
525
+ * Count full-file `cat` output from the step that just finished as reads, so
526
+ * an edit after `cat` does not cost a second read. Uses the step's results as
527
+ * stored in the transcript (after per-turn trimming): only bytes the model
528
+ * actually received count.
529
+ */
530
+ private creditBashReads;
538
531
  /**
539
532
  * Append every message added since the last flush to the session file.
540
533
  *
@@ -566,15 +559,6 @@ export declare class AgentSession {
566
559
  * cheaper routing: judging a model's own failure patterns with a weaker
567
560
  * model swaps false negatives for false positives. */
568
561
  private callSemanticLoopJudge;
569
- /** Independent fresh-context review of the finished work (Codex Guardian
570
- * pattern). Spawns a READ-ONLY child on the ACTIVE model, waits bounded,
571
- * and returns findings for the acting agent to address — or nothing when
572
- * the review passes, is unavailable, or fails (in-thread review remains the
573
- * fallback; the feature degrades, never blocks).
574
- *
575
- * Runs inside the pre-stop poll, so the candidate final answer is already
576
- * held by arming and this wait cannot race a streamed answer. */
577
- private runIndependentReview;
578
562
  /**
579
563
  * Turn-budget extension gate. The loop consults this instead of stopping
580
564
  * mid-task when it exhausts `maxTurns`. Grant ONLY on evidence of progress —
@@ -582,43 +566,20 @@ export declare class AgentSession {
582
566
  * with — so reuse the same stuck signals that drive the loop-breaker.
583
567
  */
584
568
  private shouldExtendTurnBudget;
585
- /**
586
- * Would the stop AFTER the current turn inject the Ideal review? Same inputs
587
- * as the pre-stop gate below, evaluated early so clients know a candidate
588
- * final answer is a review draft BEFORE it streams.
589
- *
590
- * The turn count is looked ahead by one on purpose. `hookStats.turns` only
591
- * advances at `turn_end`, so while the model is writing the draft the counter
592
- * still reads the PREVIOUS turn; the real gate sees one more. Without the
593
- * lookahead a run sitting on score 3 crosses to 4 on the draft's own
594
- * `turn_end` — after the text already streamed — which is precisely the
595
- * appear-then-vanish flash. Over-arming by one turn point costs only live
596
- * token streaming on a final answer that then shows whole; under-arming costs
597
- * the flash, so this errs toward arming.
598
- */
599
- private wouldInjectIdealReview;
600
- /** Would a stop right now inject the verification gate? Same conditions as
601
- * the pre-stop branch below, so arming and injection cannot disagree. */
602
- private wouldInjectVerification;
569
+ /** Would a stop right now inject a pre-final follow-up? Only queued LSP
570
+ * diagnostics (real errors injected below) or a mode-owned completion
571
+ * review can, so clients hold the candidate answer only then. */
572
+ private wouldInjectBeforeFinal;
603
573
  /** Broadcast pre-final hook arming on change. Both edges matter: armed=false
604
- * after the hook fires is what lets a client stream the REVIEWED final
605
- * answer live again.
606
- *
607
- * Callable before `initialize()`: the sidecar sets Ken's review suppression
608
- * on a freshly constructed session, and every arming predicate below reads
609
- * settings that `initialize()` has not loaded yet. Nothing can be armed
610
- * before the session can run a turn, and the first `tool_result`/`turn_end`
611
- * recomputes both edges — so skipping is the correct answer, not a patch. */
574
+ * after the hook fires is what lets a client stream the final answer live
575
+ * again. Callable before `initialize()`, when no manager exists yet. */
612
576
  private refreshHookArming;
613
- private refreshVerificationArmed;
614
- private refreshIdealReviewArmed;
615
577
  /**
616
- * Pre-stop Ideal review phase machine. Once review starts, completion is
617
- * blocked until harness-owned post-injection reads cover every changed file.
578
+ * Pre-stop follow-ups: LSP errors, unread child agents and background
579
+ * processes, and a mode-owned completion review. Verification evidence is
580
+ * tracked passively for run status; it never forces another turn.
618
581
  */
619
582
  private getHookFollowUpMessages;
620
- private reviewLspEvidence;
621
- private withReviewLspEvidence;
622
583
  /** Wraps the real run: cancels an in-flight cache prewarm and tracks run
623
584
  * activity / last real request time for {@link prewarm}. */
624
585
  private runLoop;
@@ -727,12 +688,6 @@ export declare class AgentSession {
727
688
  */
728
689
  getCacheExpiryStatus(now?: number): CacheExpiryStatus | null;
729
690
  getPlanMode(): boolean;
730
- /**
731
- * Suppress only the pre-final Ideal self-review for this live session.
732
- * Autopilot uses this while Ken independently owns verification; loop-break
733
- * and post-compaction re-grounding remain active.
734
- */
735
- setIdealReviewSuppressed(suppressed: boolean): void;
736
691
  /** Queue a user message (optionally with attachments) to be injected mid-run
737
692
  * as steering. Returns the new queue length. No-op semantics are the caller's
738
693
  * concern. */
@@ -764,6 +719,13 @@ export declare class AgentSession {
764
719
  listBackgroundProcesses(): BackgroundProcess[];
765
720
  /** Stop a background process by id. Returns a human-readable status string. */
766
721
  killBackgroundProcess(id: string): Promise<string>;
722
+ /**
723
+ * Force-stop every background process tree, synchronously. Background
724
+ * commands run in their own process group, so the daemon's group kill on
725
+ * quit never reaches them: this is the only thing that does. Callers on a
726
+ * shutdown deadline run it before awaiting anything that can hang.
727
+ */
728
+ stopBackgroundProcesses(): void;
767
729
  /** Replace a host-owned system prompt in place without resetting conversation history. */
768
730
  setCustomSystemPrompt(systemPrompt: string, promptCacheKeyPrefix?: string): void;
769
731
  /**