@blockrun/franklin 3.8.20 → 3.8.22

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.
Binary file
Binary file
Binary file
@@ -26,7 +26,7 @@ import { recordOutcome } from '../router/local-elo.js';
26
26
  import { shouldPlan, getPlanningPrompt, getExecutorModel, isExecutorStuck, toolCallSignature } from './planner.js';
27
27
  import { shouldVerify, runVerification } from './verification.js';
28
28
  import { shouldCheckGrounding, checkGrounding, renderGroundingFollowup, buildGroundingRetryInstruction, } from './evaluator.js';
29
- import { classifyIntent, prefetchForIntent } from './intent-prefetch.js';
29
+ import { augmentUserMessage, classifyIntent, prefetchForIntent } from './intent-prefetch.js';
30
30
  import { createSessionId, appendToSession, updateSessionMeta, pruneOldSessions, loadSessionHistory, loadSessionMeta, } from '../session/storage.js';
31
31
  /**
32
32
  * Atomically replace all elements in a history array.
@@ -565,16 +565,15 @@ export async function interactiveSession(config, getUserInput, onEvent, onAbortR
565
565
  if (intent) {
566
566
  const prefetch = await prefetchForIntent(intent, client);
567
567
  if (prefetch && prefetch.anyOk) {
568
- onEvent({ kind: 'text_delta', text: `\n${prefetch.statusLine}\n\n` });
568
+ if (config.showPrefetchStatus !== false) {
569
+ onEvent({ kind: 'text_delta', text: `\n${prefetch.statusLine}\n\n` });
570
+ }
569
571
  // Augment the last user message in history (NOT lastUserInput,
570
572
  // which /retry restores — that should remain the user's original).
571
573
  const lastIdx = history.length - 1;
572
574
  const last = history[lastIdx];
573
575
  if (last && last.role === 'user' && typeof last.content === 'string') {
574
- history[lastIdx] = {
575
- role: 'user',
576
- content: `${prefetch.contextBlock}\n\nOriginal user message:\n${last.content}`,
577
- };
576
+ history[lastIdx] = augmentUserMessage(last.content, prefetch);
578
577
  }
579
578
  }
580
579
  }
@@ -162,4 +162,6 @@ export interface AgentConfig {
162
162
  * bound a single run to keep autonomous execution inside a known envelope.
163
163
  */
164
164
  maxSpendUsd?: number;
165
+ /** Show user-visible harness prefetch status lines (interactive UX only). */
166
+ showPrefetchStatus?: boolean;
165
167
  }
@@ -111,6 +111,7 @@ export async function startCommand(options) {
111
111
  workingDir: workDir,
112
112
  permissionMode: 'trust',
113
113
  debug: options.debug,
114
+ showPrefetchStatus: false,
114
115
  resumeSessionId: (typeof options.resume === 'string' && options.resume !== 'picker')
115
116
  ? options.resume
116
117
  : continueResolvedId,
@@ -291,6 +292,7 @@ export async function startCommand(options) {
291
292
  // --prompt is also scripted; batch callers never see a TTY.
292
293
  permissionMode: (options.trust || options.prompt || !process.stdin.isTTY) ? 'trust' : 'default',
293
294
  debug: options.debug,
295
+ showPrefetchStatus: process.stdin.isTTY,
294
296
  resumeSessionId,
295
297
  ...(options.maxSpend != null
296
298
  ? { maxSpendUsd: Number(options.maxSpend) }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blockrun/franklin",
3
- "version": "3.8.20",
3
+ "version": "3.8.22",
4
4
  "description": "Franklin — The AI agent with a wallet. Spends USDC autonomously to get real work done. Pay per action, no subscriptions.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -20,6 +20,7 @@
20
20
  },
21
21
  "files": [
22
22
  "dist",
23
+ "assets",
23
24
  "README.md",
24
25
  "LICENSE"
25
26
  ],