@prestyj/cli 4.10.2 → 4.11.4

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 (96) hide show
  1. package/README.md +4 -4
  2. package/dist/app-sidecar.d.ts +2 -0
  3. package/dist/app-sidecar.d.ts.map +1 -0
  4. package/dist/app-sidecar.js +1407 -0
  5. package/dist/app-sidecar.js.map +1 -0
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +5 -22
  8. package/dist/cli.js.map +1 -1
  9. package/dist/core/agent-session.d.ts +120 -0
  10. package/dist/core/agent-session.d.ts.map +1 -1
  11. package/dist/core/agent-session.js +412 -6
  12. package/dist/core/agent-session.js.map +1 -1
  13. package/dist/core/auth-providers.d.ts +18 -0
  14. package/dist/core/auth-providers.d.ts.map +1 -0
  15. package/dist/core/auth-providers.js +71 -0
  16. package/dist/core/auth-providers.js.map +1 -0
  17. package/dist/core/event-bus.d.ts +6 -0
  18. package/dist/core/event-bus.d.ts.map +1 -1
  19. package/dist/core/event-bus.js +1 -0
  20. package/dist/core/event-bus.js.map +1 -1
  21. package/dist/core/project-discovery.d.ts +41 -0
  22. package/dist/core/project-discovery.d.ts.map +1 -0
  23. package/dist/core/project-discovery.js +441 -0
  24. package/dist/core/project-discovery.js.map +1 -0
  25. package/dist/core/prompt-commands.d.ts.map +1 -1
  26. package/dist/core/prompt-commands.js +91 -0
  27. package/dist/core/prompt-commands.js.map +1 -1
  28. package/dist/core/prompt-commands.test.js +17 -0
  29. package/dist/core/prompt-commands.test.js.map +1 -1
  30. package/dist/core/radio.d.ts +44 -0
  31. package/dist/core/radio.d.ts.map +1 -0
  32. package/dist/core/radio.js +250 -0
  33. package/dist/core/radio.js.map +1 -0
  34. package/dist/core/resolve-start.d.ts +29 -0
  35. package/dist/core/resolve-start.d.ts.map +1 -0
  36. package/dist/core/resolve-start.js +35 -0
  37. package/dist/core/resolve-start.js.map +1 -0
  38. package/dist/core/resolve-start.test.d.ts +2 -0
  39. package/dist/core/resolve-start.test.d.ts.map +1 -0
  40. package/dist/core/resolve-start.test.js +66 -0
  41. package/dist/core/resolve-start.test.js.map +1 -0
  42. package/dist/core/settings-manager.d.ts +1 -1
  43. package/dist/core/shell-path.d.ts +12 -0
  44. package/dist/core/shell-path.d.ts.map +1 -0
  45. package/dist/core/shell-path.js +166 -0
  46. package/dist/core/shell-path.js.map +1 -0
  47. package/dist/core/slash-commands.d.ts.map +1 -1
  48. package/dist/core/slash-commands.js +10 -0
  49. package/dist/core/slash-commands.js.map +1 -1
  50. package/dist/core/telegram-config.d.ts +21 -0
  51. package/dist/core/telegram-config.d.ts.map +1 -0
  52. package/dist/core/telegram-config.js +52 -0
  53. package/dist/core/telegram-config.js.map +1 -0
  54. package/dist/index.d.ts +1 -0
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +2 -0
  57. package/dist/index.js.map +1 -1
  58. package/dist/modes/serve-mode.d.ts +24 -0
  59. package/dist/modes/serve-mode.d.ts.map +1 -1
  60. package/dist/modes/serve-mode.js +54 -19
  61. package/dist/modes/serve-mode.js.map +1 -1
  62. package/dist/tools/goal-mode.test.js +1 -1
  63. package/dist/tools/goal-mode.test.js.map +1 -1
  64. package/dist/tools/goals.d.ts +7 -7
  65. package/dist/tools/index.d.ts +3 -0
  66. package/dist/tools/index.d.ts.map +1 -1
  67. package/dist/tools/index.js +1 -1
  68. package/dist/tools/index.js.map +1 -1
  69. package/dist/tools/subagent.d.ts +2 -4
  70. package/dist/tools/subagent.d.ts.map +1 -1
  71. package/dist/tools/subagent.js +24 -23
  72. package/dist/tools/subagent.js.map +1 -1
  73. package/dist/tools/tasks.d.ts +1 -1
  74. package/dist/ui/hooks/useTranscriptHistory.d.ts +2 -0
  75. package/dist/ui/hooks/useTranscriptHistory.d.ts.map +1 -1
  76. package/dist/ui/hooks/useTranscriptHistory.js +3 -2
  77. package/dist/ui/hooks/useTranscriptHistory.js.map +1 -1
  78. package/dist/ui/long-prompt-regression-harness.test.js +8 -8
  79. package/dist/ui/render.d.ts.map +1 -1
  80. package/dist/ui/render.js +60 -8
  81. package/dist/ui/render.js.map +1 -1
  82. package/dist/ui/startup-banner-order.test.js +1 -1
  83. package/dist/ui/startup-banner-order.test.js.map +1 -1
  84. package/dist/ui/terminal-history-repaint.test.d.ts +2 -0
  85. package/dist/ui/terminal-history-repaint.test.d.ts.map +1 -0
  86. package/dist/ui/terminal-history-repaint.test.js +73 -0
  87. package/dist/ui/terminal-history-repaint.test.js.map +1 -0
  88. package/dist/ui/terminal-history.d.ts +1 -0
  89. package/dist/ui/terminal-history.d.ts.map +1 -1
  90. package/dist/ui/terminal-history.js +31 -2
  91. package/dist/ui/terminal-history.js.map +1 -1
  92. package/dist/utils/git.d.ts +6 -0
  93. package/dist/utils/git.d.ts.map +1 -1
  94. package/dist/utils/git.js +12 -0
  95. package/dist/utils/git.js.map +1 -1
  96. package/package.json +5 -5
@@ -1,5 +1,5 @@
1
1
  import { agentLoop, isAbortError } from "@prestyj/agent";
2
- import { ProviderError } from "@prestyj/ai";
2
+ import { ProviderError, } from "@prestyj/ai";
3
3
  import { EventBus } from "./event-bus.js";
4
4
  import { SlashCommandRegistry, createBuiltinCommands, } from "./slash-commands.js";
5
5
  import { PROMPT_COMMANDS, getPromptCommand } from "./prompt-commands.js";
@@ -20,6 +20,10 @@ import { MCPClientManager, getMCPServers, getAllMcpServers } from "./mcp/index.j
20
20
  import { log } from "./logger.js";
21
21
  import { setEstimatorModel } from "./compaction/token-estimator.js";
22
22
  import { discoverAgents } from "./agents.js";
23
+ import { generateSessionTitle } from "../utils/session-title.js";
24
+ import { evaluateIdealReview, buildIdealReviewMessage, } from "./ideal-review.js";
25
+ import { evaluateLoopBreak, buildLoopBreakMessage, toolCallSignature, detectTextRepetition, } from "./loop-breaker.js";
26
+ import { buildRegroundingMessage } from "./regrounding.js";
23
27
  import crypto from "node:crypto";
24
28
  import fs from "node:fs/promises";
25
29
  import path from "node:path";
@@ -33,8 +37,40 @@ export class AgentSession {
33
37
  extensionLoader = new ExtensionLoader();
34
38
  messages = [];
35
39
  tools = [];
40
+ /** Rebuilds the read tool for a new model (video byte cap is baked in at
41
+ * creation). Called from switchModel so video-capable models get the
42
+ * read-tool's native-video path after a mid-session model change. */
43
+ rebuildReadTool;
36
44
  skills = [];
37
45
  cacheKeyLogged = false;
46
+ // ── Self-correction hook state (mirrors the TUI's useAgentLoop refs) ──
47
+ // Reset at the start of every run; observed from the event stream; read by
48
+ // the loop-break (mid-loop) and ideal-review (pre-stop) callbacks.
49
+ hookStats = {
50
+ changedLines: 0,
51
+ toolCalls: 0,
52
+ toolFailures: 0,
53
+ turns: 0,
54
+ writeCalls: 0,
55
+ editCalls: 0,
56
+ bashCalls: 0,
57
+ };
58
+ hookText = "";
59
+ hookConsecutiveFailures = 0;
60
+ hookMaxSignatureRepeats = 0;
61
+ hookMaxSameFileEdits = 0;
62
+ hookSignatureCounts = new Map();
63
+ hookFileEditCounts = new Map();
64
+ hookToolCalls = new Map();
65
+ idealReviewInjected = false;
66
+ loopBreakInjected = false;
67
+ regroundingInjected = false;
68
+ compactionOccurred = false;
69
+ originalRequest = "";
70
+ // Messages queued by the user while a run is in flight. Drained at the
71
+ // mid-loop steering boundary (user steering wins over the hooks), mirroring
72
+ // the TUI's getSteeringMessages.
73
+ userQueue = [];
38
74
  processManager;
39
75
  lspManager;
40
76
  mcpManager;
@@ -45,6 +81,12 @@ export class AgentSession {
45
81
  maxTokens;
46
82
  thinkingLevel;
47
83
  customSystemPrompt;
84
+ /** Shared with the tool layer so plan-mode restrictions read live state. */
85
+ planModeRef = { current: false };
86
+ /** Path of the approved plan currently being implemented, or undefined. When
87
+ * set, the system prompt carries the `[DONE:n]` progress contract so the
88
+ * model emits step-completion markers the UI's plan-progress widget reads. */
89
+ approvedPlanPath;
48
90
  sessionId = "";
49
91
  sessionPath = "";
50
92
  lastPersistedIndex = 0;
@@ -57,10 +99,27 @@ export class AgentSession {
57
99
  this.model = options.model;
58
100
  this.cwd = options.cwd;
59
101
  this.baseUrl = options.baseUrl;
60
- this.maxTokens = options.maxTokens ?? getModel(options.model)?.maxOutputTokens ?? 16384;
102
+ this.maxTokens = this.resolveMaxTokens(options.model);
61
103
  this.thinkingLevel = options.thinkingLevel;
62
104
  this.customSystemPrompt = options.systemPrompt;
63
105
  }
106
+ /**
107
+ * Derive the output-token cap for a model. Follows the active model's
108
+ * `maxOutputTokens` so a session booted on a large-output model (e.g. Kimi's
109
+ * 256K) doesn't carry that cap to a smaller one (e.g. Opus's 128K) after a
110
+ * model switch — that mismatch surfaces from the provider as
111
+ * `max_tokens: 262144 > 128000, which is the maximum allowed …`. An explicit
112
+ * `maxTokens` override is honored but clamped to the model's ceiling.
113
+ */
114
+ resolveMaxTokens(modelId) {
115
+ const modelInfo = getModel(modelId);
116
+ if (this.opts.maxTokens) {
117
+ return modelInfo
118
+ ? Math.min(this.opts.maxTokens, modelInfo.maxOutputTokens)
119
+ : this.opts.maxTokens;
120
+ }
121
+ return modelInfo?.maxOutputTokens ?? 16384;
122
+ }
64
123
  async initialize() {
65
124
  // Set model for accurate token estimation
66
125
  setEstimatorModel(this.model);
@@ -87,17 +146,29 @@ export class AgentSession {
87
146
  globalAgentsDir: paths.agentsDir,
88
147
  projectDir: this.cwd,
89
148
  });
90
- const { tools, processManager, lspManager } = createTools(this.cwd, {
149
+ const { tools, processManager, rebuildReadTool, lspManager } = createTools(this.cwd, {
91
150
  agents,
92
151
  skills: this.skills,
93
152
  provider: this.provider,
94
153
  model: this.model,
95
154
  lspDiagnostics: this.settingsManager.get("lspDiagnostics"),
96
- // Lazy — sessionId isn't assigned yet when createTools() runs, so we
97
- // must defer reading the cache key until the sub-agent actually fires.
155
+ // Lazy — sessionId/model/provider can change after createTools() runs, so
156
+ // sub-agent spawns read the current parent state at execution time.
157
+ getProvider: () => this.provider,
158
+ getModel: () => this.model,
98
159
  getCacheKey: () => this.getPromptCacheKey(),
160
+ // Plan mode: only wired when the host supplies callbacks. The ref is
161
+ // shared so bash/edit/write enforce read-only restrictions live.
162
+ ...(this.opts.onEnterPlan || this.opts.onExitPlan
163
+ ? {
164
+ planModeRef: this.planModeRef,
165
+ onEnterPlan: this.opts.onEnterPlan,
166
+ onExitPlan: this.opts.onExitPlan,
167
+ }
168
+ : {}),
99
169
  });
100
170
  this.tools = tools;
171
+ this.rebuildReadTool = rebuildReadTool;
101
172
  this.processManager = processManager;
102
173
  this.lspManager = lspManager;
103
174
  // Connect MCP servers (non-blocking — failures are logged and skipped).
@@ -235,6 +306,203 @@ export class AgentSession {
235
306
  this.lastPersistedIndex = this.messages.length;
236
307
  await this.runLoop();
237
308
  }
309
+ /**
310
+ * Prompt with multimodal attachments (images / videos) alongside optional
311
+ * text. Images and videos become native content blocks the model can see;
312
+ * non-media files are surfaced as a text note with their saved path so the
313
+ * agent can open them with its tools. Slash-command parsing is skipped —
314
+ * attachments are always a direct conversational turn.
315
+ */
316
+ async promptWithAttachments(text, attachments) {
317
+ const parts = [];
318
+ const fileNotes = [];
319
+ const modelSupportsVideo = getModel(this.model)?.supportsVideo ?? false;
320
+ for (const a of attachments) {
321
+ if (a.kind === "image") {
322
+ parts.push({ type: "image", mediaType: a.mediaType, data: a.data });
323
+ }
324
+ else if (a.kind === "video") {
325
+ // Mirror the CLI's buildUserContentWithAttachments: never send inline
326
+ // VideoContent in the user message. Video-capable models (Kimi/Gemini/
327
+ // MiniMax) watch video via the read tool, which auto-compresses to the
328
+ // model's byte cap and delivers it in the provider's required shape.
329
+ // Non-video models get a plain note so they know to use ffmpeg. The file
330
+ // was already saved to disk by prepareAttachments in the sidecar.
331
+ if (modelSupportsVideo && a.path) {
332
+ parts.push({
333
+ type: "text",
334
+ text: `The user attached a video at ${a.path}. You CAN watch it: call the read tool ` +
335
+ `on this exact path now, then answer based on what you see. Do not say you ` +
336
+ `cannot watch video — reading the file lets you analyze it.`,
337
+ });
338
+ }
339
+ else if (a.path) {
340
+ parts.push({
341
+ type: "text",
342
+ text: `[User attached a video file at ${a.path}. You cannot watch video directly; ` +
343
+ `if needed, use ffmpeg to extract frames or audio.]`,
344
+ });
345
+ }
346
+ else {
347
+ parts.push({
348
+ type: "text",
349
+ text: `[User attached a video file but it could not be saved for analysis.]`,
350
+ });
351
+ }
352
+ }
353
+ else if (a.path) {
354
+ fileNotes.push(`- ${a.name} (saved at ${a.path})`);
355
+ }
356
+ }
357
+ const textParts = [];
358
+ if (text.trim())
359
+ textParts.push(text.trim());
360
+ if (fileNotes.length > 0) {
361
+ textParts.push(`Attached files (inspect with your tools):\n${fileNotes.join("\n")}`);
362
+ }
363
+ if (textParts.length > 0)
364
+ parts.unshift({ type: "text", text: textParts.join("\n\n") });
365
+ if (parts.length === 0)
366
+ return;
367
+ const userMessage = { role: "user", content: parts };
368
+ this.messages.push(userMessage);
369
+ await this.persistMessage(userMessage);
370
+ this.lastPersistedIndex = this.messages.length;
371
+ await this.runLoop();
372
+ }
373
+ /**
374
+ * Reset per-run self-correction hook state. Mirrors the TUI's run_start
375
+ * resets so each run evaluates the hooks from a clean slate. `originalRequest`
376
+ * is the verbatim user ask, pinned for post-compaction re-grounding.
377
+ */
378
+ resetHookState(originalRequest) {
379
+ this.hookStats = {
380
+ changedLines: 0,
381
+ toolCalls: 0,
382
+ toolFailures: 0,
383
+ turns: 0,
384
+ writeCalls: 0,
385
+ editCalls: 0,
386
+ bashCalls: 0,
387
+ };
388
+ this.hookText = "";
389
+ this.hookConsecutiveFailures = 0;
390
+ this.hookMaxSignatureRepeats = 0;
391
+ this.hookMaxSameFileEdits = 0;
392
+ this.hookSignatureCounts.clear();
393
+ this.hookFileEditCounts.clear();
394
+ this.hookToolCalls.clear();
395
+ this.idealReviewInjected = false;
396
+ this.loopBreakInjected = false;
397
+ this.regroundingInjected = false;
398
+ this.compactionOccurred = false;
399
+ this.originalRequest = originalRequest;
400
+ }
401
+ /**
402
+ * Fold one agent event into the hook stat accumulators. Pure bookkeeping —
403
+ * the same signals the TUI's useAgentLoop collects, so the loop-break and
404
+ * ideal-review decisions match across the CLI and the app.
405
+ */
406
+ trackHookEvent(event) {
407
+ switch (event.type) {
408
+ case "text_delta":
409
+ this.hookText += event.text;
410
+ break;
411
+ case "tool_call_start":
412
+ this.hookToolCalls.set(event.toolCallId, { name: event.name, args: event.args ?? {} });
413
+ break;
414
+ case "tool_call_end": {
415
+ const call = this.hookToolCalls.get(event.toolCallId);
416
+ const name = call?.name ?? "";
417
+ const args = call?.args;
418
+ this.hookStats.toolCalls += 1;
419
+ if (event.isError)
420
+ this.hookStats.toolFailures += 1;
421
+ if (name === "write")
422
+ this.hookStats.writeCalls += 1;
423
+ if (name === "edit")
424
+ this.hookStats.editCalls += 1;
425
+ if (name === "bash")
426
+ this.hookStats.bashCalls += 1;
427
+ this.hookConsecutiveFailures = event.isError ? this.hookConsecutiveFailures + 1 : 0;
428
+ const sig = toolCallSignature(name, args);
429
+ const sigNext = (this.hookSignatureCounts.get(sig) ?? 0) + 1;
430
+ this.hookSignatureCounts.set(sig, sigNext);
431
+ if (sigNext > this.hookMaxSignatureRepeats)
432
+ this.hookMaxSignatureRepeats = sigNext;
433
+ if ((name === "edit" || name === "write") && args) {
434
+ const filePath = args.file_path;
435
+ if (typeof filePath === "string") {
436
+ const fileNext = (this.hookFileEditCounts.get(filePath) ?? 0) + 1;
437
+ this.hookFileEditCounts.set(filePath, fileNext);
438
+ if (fileNext > this.hookMaxSameFileEdits)
439
+ this.hookMaxSameFileEdits = fileNext;
440
+ }
441
+ }
442
+ if (name === "edit" && !event.isError) {
443
+ const diff = event.details?.diff ?? event.result;
444
+ const added = (diff.match(/^\+[^+]/gm) ?? []).length;
445
+ const removed = (diff.match(/^-[^-]/gm) ?? []).length;
446
+ this.hookStats.changedLines += added + removed;
447
+ }
448
+ break;
449
+ }
450
+ case "turn_end":
451
+ this.hookStats.turns = event.turn;
452
+ break;
453
+ }
454
+ }
455
+ /**
456
+ * Mid-loop steering hook: fires the loop-breaker when the agent looks stuck,
457
+ * then post-compaction re-grounding. At most one of each per run. Mirrors the
458
+ * TUI's getSteeringMessages ordering (minus user steering, which the app
459
+ * delivers as normal prompts).
460
+ */
461
+ getHookSteeringMessages() {
462
+ // User steering wins: drain any messages queued during this run first so the
463
+ // agent sees them mid-loop instead of after it stops.
464
+ if (this.userQueue.length > 0) {
465
+ const merged = this.userQueue.splice(0).join("\n\n");
466
+ return [{ role: "user", content: merged }];
467
+ }
468
+ if (!this.settingsManager.get("idealReviewEnabled"))
469
+ return null;
470
+ if (!this.loopBreakInjected) {
471
+ const decision = evaluateLoopBreak({
472
+ consecutiveFailures: this.hookConsecutiveFailures,
473
+ maxSignatureRepeats: this.hookMaxSignatureRepeats,
474
+ maxSameFileEdits: this.hookMaxSameFileEdits,
475
+ textRepetitionDetected: detectTextRepetition(this.hookText),
476
+ });
477
+ if (decision.shouldBreak) {
478
+ this.loopBreakInjected = true;
479
+ this.eventBus.emit("hook", { kind: "loop_break" });
480
+ return [buildLoopBreakMessage(decision.reasons)];
481
+ }
482
+ }
483
+ if (!this.regroundingInjected && this.compactionOccurred) {
484
+ this.regroundingInjected = true;
485
+ this.eventBus.emit("hook", { kind: "regrounding" });
486
+ return [buildRegroundingMessage(this.originalRequest)];
487
+ }
488
+ return null;
489
+ }
490
+ /**
491
+ * Pre-stop follow-up hook: runs the ideal review once, when the agent would
492
+ * otherwise finish and the change set is substantial enough to warrant it.
493
+ */
494
+ getHookFollowUpMessages() {
495
+ if (!this.settingsManager.get("idealReviewEnabled"))
496
+ return null;
497
+ if (this.idealReviewInjected)
498
+ return null;
499
+ const decision = evaluateIdealReview(this.hookStats);
500
+ if (!decision.shouldReview)
501
+ return null;
502
+ this.idealReviewInjected = true;
503
+ this.eventBus.emit("hook", { kind: "ideal" });
504
+ return [buildIdealReviewMessage(decision.reasons)];
505
+ }
238
506
  /** Auto-compact if needed, run agent loop with auth retry, and persist messages. */
239
507
  async runLoop() {
240
508
  // One-shot cache-key marker per session so turn_end cacheRead numbers
@@ -249,6 +517,11 @@ export class AgentSession {
249
517
  transient: String(!!this.opts.transient),
250
518
  });
251
519
  }
520
+ // Reset self-correction hook state for this run; pin the latest user message
521
+ // as the verbatim original request for post-compaction re-grounding.
522
+ const lastUser = [...this.messages].reverse().find((m) => m.role === "user");
523
+ const originalRequest = typeof lastUser?.content === "string" ? lastUser.content : "";
524
+ this.resetHookState(originalRequest);
252
525
  // Resolve OAuth credentials and run agent loop.
253
526
  // On 401, force-refresh the token and retry once — the provider may have
254
527
  // revoked the token server-side before the stored expiry (e.g. after a restart).
@@ -264,6 +537,8 @@ export class AgentSession {
264
537
  const threshold = this.settingsManager.get("compactThreshold");
265
538
  if (shouldCompact(this.messages, contextWindow, threshold)) {
266
539
  await this.compact(creds);
540
+ // Re-grounding hook keys off this — the context was just summarized.
541
+ this.compactionOccurred = true;
267
542
  }
268
543
  }
269
544
  const userAgent = this.provider === "anthropic" ? await getClaudeCliUserAgent() : undefined;
@@ -296,8 +571,13 @@ export class AgentSession {
296
571
  // clearToolUses disabled — causes model to output unsolicited context summaries
297
572
  // Single tool result shouldn't exceed 30% of context window (in chars)
298
573
  maxToolResultChars: Math.floor(getContextWindow(this.model, { provider: this.provider, accountId }) * 3.5 * 0.3),
574
+ // Self-correction hooks (same as the TUI): loop-break + re-grounding are
575
+ // polled mid-loop; the ideal review is polled when the agent would stop.
576
+ getSteeringMessages: () => this.getHookSteeringMessages(),
577
+ getFollowUpMessages: () => this.getHookFollowUpMessages(),
299
578
  });
300
579
  for await (const event of generator) {
580
+ this.trackHookEvent(event);
301
581
  this.eventBus.forwardAgentEvent(event);
302
582
  }
303
583
  };
@@ -341,7 +621,25 @@ export class AgentSession {
341
621
  this.provider = provider;
342
622
  this.model = model;
343
623
  setEstimatorModel(model);
344
- this.eventBus.emit("model_change", { provider: this.provider, model: this.model });
624
+ // maxTokens must follow the active model — it was frozen at the boot
625
+ // model's `maxOutputTokens` in the constructor, so without this a session
626
+ // booted on e.g. Kimi (256K) keeps sending that cap after switching to a
627
+ // smaller model (Opus 128K), which the provider rejects.
628
+ this.maxTokens = this.resolveMaxTokens(model);
629
+ this.eventBus.emit("model_change", {
630
+ provider: this.provider,
631
+ model: this.model,
632
+ supportsVideo: getModel(this.model)?.supportsVideo ?? false,
633
+ });
634
+ // Rebuild the read tool for the new model's video byte cap. The tool's
635
+ // video capability (description + native-video execute path) is baked in
636
+ // at creation from the model's maxVideoBytes, so switching to/from a
637
+ // video-capable model mid-session needs a fresh tool object — mirrors
638
+ // the TUI's rebuildReadTool call on model switch.
639
+ if (this.rebuildReadTool) {
640
+ const newReadTool = this.rebuildReadTool(model);
641
+ this.tools = this.tools.map((t) => (t.name === "read" ? newReadTool : t));
642
+ }
345
643
  // Update provider-specific tools when provider changes
346
644
  if (provider && provider !== prevProvider) {
347
645
  // Add/remove client-side web_search tool based on provider.
@@ -425,6 +723,9 @@ export class AgentSession {
425
723
  });
426
724
  }
427
725
  async newSession() {
726
+ // A fresh session drops any in-flight plan state so its prompt is clean.
727
+ this.planModeRef.current = false;
728
+ this.approvedPlanPath = undefined;
428
729
  const basePrompt = this.customSystemPrompt ??
429
730
  (await buildSystemPrompt(this.cwd, this.skills, false, undefined, this.tools.map((tool) => tool.name), undefined, this.provider));
430
731
  this.messages = [{ role: "system", content: basePrompt }];
@@ -485,11 +786,116 @@ export class AgentSession {
485
786
  sessionId: this.sessionId,
486
787
  sessionPath: this.sessionPath,
487
788
  messageCount: this.messages.length,
789
+ planMode: this.planModeRef.current,
488
790
  };
489
791
  }
792
+ getPlanMode() {
793
+ return this.planModeRef.current;
794
+ }
795
+ /** Queue a user message to be injected mid-run as steering. Returns the new
796
+ * queue length. No-op semantics are the caller's concern. */
797
+ queueMessage(text) {
798
+ this.userQueue.push(text);
799
+ return this.userQueue.length;
800
+ }
801
+ /** Number of messages currently queued. */
802
+ getQueuedCount() {
803
+ return this.userQueue.length;
804
+ }
805
+ /** Clear the queue, returning the combined text (to restore to the composer). */
806
+ drainQueue() {
807
+ return this.userQueue.splice(0).join("\n\n");
808
+ }
809
+ /** Snapshot of background processes (bash run_in_background), newest-state. */
810
+ listBackgroundProcesses() {
811
+ return this.processManager?.list() ?? [];
812
+ }
813
+ /** Stop a background process by id. Returns a human-readable status string. */
814
+ async killBackgroundProcess(id) {
815
+ if (!this.processManager)
816
+ return `No background process with id "${id}"`;
817
+ return this.processManager.stop(id);
818
+ }
819
+ /**
820
+ * Toggle plan mode: flips the shared ref (so tools enforce read-only
821
+ * restrictions) and rebuilds the system prompt in place so the model is told
822
+ * about the mode change on its next turn. No-op when a custom system prompt
823
+ * is in force (the host owns the prompt then).
824
+ */
825
+ async setPlanMode(active) {
826
+ this.planModeRef.current = active;
827
+ // Entering plan mode discards any prior approved-plan contract (a new plan
828
+ // is about to be drafted); exiting keeps it (set explicitly via accept).
829
+ if (active)
830
+ this.approvedPlanPath = undefined;
831
+ await this.rebuildSystemPromptInPlace();
832
+ }
833
+ /**
834
+ * Bake an approved plan into the system prompt so the model is told to emit
835
+ * `[DONE:n]` markers as it completes each step (the contract the UI's
836
+ * plan-progress widget reads). Pass `undefined` to clear it. No-op when a
837
+ * custom system prompt is in force (the host owns the prompt then).
838
+ */
839
+ async setApprovedPlan(approvedPlanPath) {
840
+ this.approvedPlanPath = approvedPlanPath;
841
+ await this.rebuildSystemPromptInPlace();
842
+ }
843
+ /** Rebuild messages[0] from current plan-mode + approved-plan state. */
844
+ async rebuildSystemPromptInPlace() {
845
+ if (this.customSystemPrompt)
846
+ return;
847
+ const rebuilt = await buildSystemPrompt(this.cwd, this.skills, this.planModeRef.current, this.approvedPlanPath, this.tools.map((tool) => tool.name), undefined, this.provider);
848
+ if (this.messages[0]?.role === "system") {
849
+ this.messages[0] = { role: "system", content: rebuilt };
850
+ }
851
+ else {
852
+ this.messages.unshift({ role: "system", content: rebuilt });
853
+ }
854
+ }
490
855
  getMessages() {
491
856
  return this.messages;
492
857
  }
858
+ /**
859
+ * Generate a short LLM session title from the conversation so far (first user
860
+ * message + first assistant reply). Best-effort; returns null on failure or
861
+ * when there's no user message yet. Uses the cheapest model for the provider.
862
+ */
863
+ async generateTitle() {
864
+ const extractText = (content) => typeof content === "string"
865
+ ? content
866
+ : content
867
+ .map((c) => c.type === "text" && "text" in c && typeof c.text === "string" ? c.text : "")
868
+ .join(" ");
869
+ const userMsg = this.messages.find((m) => m.role === "user");
870
+ const assistantMsg = this.messages.find((m) => m.role === "assistant");
871
+ const userText = userMsg ? extractText(userMsg.content) : "";
872
+ if (!userText.trim())
873
+ return null;
874
+ try {
875
+ const creds = await this.authStorage.resolveCredentials(this.provider);
876
+ const title = await generateSessionTitle({
877
+ provider: this.provider,
878
+ userMessage: userText,
879
+ assistantPreview: assistantMsg ? extractText(assistantMsg.content).slice(0, 200) : "",
880
+ apiKey: creds.accessToken,
881
+ baseUrl: this.baseUrl ?? creds.baseUrl,
882
+ accountId: creds.accountId,
883
+ });
884
+ return title || null;
885
+ }
886
+ catch {
887
+ return null;
888
+ }
889
+ }
890
+ /** Current reasoning/thinking level, or undefined when thinking is off. */
891
+ getThinkingLevel() {
892
+ return this.thinkingLevel;
893
+ }
894
+ /** Set the reasoning/thinking level (undefined turns thinking off). Takes
895
+ * effect on the next prompt, since the in-flight loop reads it at start. */
896
+ setThinkingLevel(level) {
897
+ this.thinkingLevel = level;
898
+ }
493
899
  /** Replace the abort signal (e.g. after cancellation). */
494
900
  setSignal(signal) {
495
901
  this.opts = { ...this.opts, signal };
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session.js","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session.js","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"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"}