tesseract-agent 0.10.3 → 0.10.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 (2) hide show
  1. package/dist-bundle/cli.js +22 -7
  2. package/package.json +1 -1
@@ -24215,7 +24215,11 @@ CRITICAL RULES:
24215
24215
  - Use screenshot to see the visual state.
24216
24216
  - When element selectors are provided, use click or evaluate to interact.
24217
24217
  - You can read and edit project source files if a project directory is configured.
24218
- - Always confirm before making destructive changes to source files.`
24218
+ - Always confirm before making destructive changes to source files.
24219
+ - When you name a file, write its FULL ABSOLUTE PATH (e.g. \`/Users/me/work/proj/docs/plan.md\`),
24220
+ not a project-relative one. The app turns file references in your replies into clickable links,
24221
+ and a relative path is ambiguous the moment more than one project is open \u2014 it resolves against
24222
+ the wrong root, or nothing, and the link does not open. An absolute path always opens.`
24219
24223
  },
24220
24224
  {
24221
24225
  id: "agent.system.unattended-report",
@@ -36038,6 +36042,9 @@ function sessionStoreFor(mode) {
36038
36042
  return sharedSessionStore;
36039
36043
  return { ...sharedSessionStore, load: async () => null };
36040
36044
  }
36045
+ function unattendedReportDirective(send4) {
36046
+ return unattendedModeFor({ optedIn: send4.unattended, origin: send4.origin }) !== "off" ? prompt("agent.system.unattended-report") : "";
36047
+ }
36041
36048
  function unknownModelEnv(model) {
36042
36049
  const id = (model ?? "").trim();
36043
36050
  if (!id || /^claude-/i.test(id))
@@ -38589,10 +38596,15 @@ ${prompt("agent.system.website-build")}` : "";
38589
38596
  } else if (live.sessionId) {
38590
38597
  this.narrator.startTurn(live.sessionId, live.lastPrompt ?? params.message);
38591
38598
  }
38599
+ const lateDirective = live.unattendedReportSent ? "" : unattendedReportDirective(params);
38600
+ if (lateDirective)
38601
+ live.unattendedReportSent = true;
38592
38602
  const sdkMsg = {
38593
38603
  type: "user",
38594
38604
  parent_tool_use_id: null,
38595
- message: { role: "user", content: userText }
38605
+ message: { role: "user", content: lateDirective ? `${userText}
38606
+
38607
+ ${lateDirective}` : userText }
38596
38608
  };
38597
38609
  live.pump.push(sdkMsg);
38598
38610
  }
@@ -38622,6 +38634,9 @@ ${prompt("agent.system.website-build")}` : "";
38622
38634
  const isNewSession = !params.sessionId;
38623
38635
  const pendingTitle = isNewSession ? params.message.trim().slice(0, 80) : "";
38624
38636
  const live = {
38637
+ // The system prompt below carries the directive whenever this send is unattended, so
38638
+ // the resident path must not append it again on the very first turn.
38639
+ ...unattendedReportDirective(params) ? { unattendedReportSent: true } : {},
38625
38640
  sessionId: params.sessionId ?? "",
38626
38641
  clientRequestId: params.clientRequestId,
38627
38642
  lastPrompt: params.message,
@@ -39329,9 +39344,9 @@ ${prompt("agent.system.website-build")}` : "";
39329
39344
 
39330
39345
  ${params.appendSystemPrompt}` : "") + (params.reinforcedVerification ? `
39331
39346
 
39332
- ${rvPhaseDirective()}` : "") + (unattendedModeFor({ optedIn: params.unattended, origin: params.origin }) !== "off" ? `
39347
+ ${rvPhaseDirective()}` : "") + (unattendedReportDirective(params) ? `
39333
39348
 
39334
- ${prompt("agent.system.unattended-report")}` : ""), live.sessionId) },
39349
+ ${unattendedReportDirective(params)}` : ""), live.sessionId) },
39335
39350
  includePartialMessages: true,
39336
39351
  // Emit a predicted follow-up prompt after each turn (git/context-aware) — rendered
39337
39352
  // as a clickable suggestion chip. Off by default in the SDK, so opt in here.
@@ -85329,7 +85344,7 @@ function askRdeskConsent(opts) {
85329
85344
  fullscreenable: false,
85330
85345
  show: false,
85331
85346
  backgroundColor: "#00000000",
85332
- webPreferences: { preload: daemonPreloadPath(), contextIsolation: true, sandbox: false }
85347
+ webPreferences: { preload: daemonPreloadPath(), contextIsolation: true, sandbox: false, partition: "tess-ui-consent" }
85333
85348
  });
85334
85349
  win3.setAlwaysOnTop(true, "screen-saver");
85335
85350
  win3.setVisibleOnAllWorkspaces(true, { visibleOnFullScreen: true });
@@ -107479,7 +107494,7 @@ async function runDaemon(opts = {}) {
107479
107494
  const otherDaemonPids = () => {
107480
107495
  try {
107481
107496
  const raw = execFileSync5("ps", ["-axww", "-o", "pid=,command="], { encoding: "utf8", timeout: 3e3 });
107482
- return raw.split("\n").filter((l) => /Tesseract\.app|host-daemon|--merged/.test(l) && !/\bgrep\b|ps -axww/.test(l)).map((l) => Number(l.trim().split(/\s+/)[0])).filter((pid) => Number.isFinite(pid) && pid !== process.pid && pid !== process.ppid);
107497
+ return raw.split("\n").filter((l) => /Tesseract\.app|host-daemon/.test(l) && !/\bgrep\b|ps -axww/.test(l)).map((l) => Number(l.trim().split(/\s+/)[0])).filter((pid) => Number.isFinite(pid) && pid !== process.pid && pid !== process.ppid);
107483
107498
  } catch {
107484
107499
  return [];
107485
107500
  }
@@ -107578,7 +107593,7 @@ async function runDaemon(opts = {}) {
107578
107593
  process.exit(code);
107579
107594
  }
107580
107595
  startSystemEvents({ version: VERSION2, log: (m) => log9(m) });
107581
- const mergedProcess = opts.merged ?? (process.env.CCB_MERGED_PROCESS === "1" || process.argv.includes("--merged"));
107596
+ const mergedProcess = opts.merged === true;
107582
107597
  const deliberateMergedQuit = () => !!globalThis.__ccbDeliberateQuit;
107583
107598
  const onTermSignal = (sig) => {
107584
107599
  if (mergedProcess && !deliberateMergedQuit()) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tesseract-agent",
3
- "version": "0.10.3",
3
+ "version": "0.10.4",
4
4
  "license": "UNLICENSED",
5
5
  "publishConfig": {
6
6
  "access": "public",