@sema-agent/cli 1.0.48 → 1.0.49

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.
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@sema-agent/cli",
3
- "version": "1.0.48",
3
+ "version": "1.0.49",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@sema-agent/cli",
9
- "version": "1.0.48",
9
+ "version": "1.0.49",
10
10
  "license": "BUSL-1.1",
11
11
  "dependencies": {
12
- "@sema-agent/sdk": "0.0.67",
13
- "@sema-agent/server": "1.246.0"
12
+ "@sema-agent/sdk": "0.0.68",
13
+ "@sema-agent/server": "1.247.0"
14
14
  },
15
15
  "bin": {
16
16
  "sema": "sema.js"
@@ -629,9 +629,9 @@
629
629
  }
630
630
  },
631
631
  "node_modules/@sema-agent/core": {
632
- "version": "1.364.0",
633
- "resolved": "https://registry.npmjs.org/@sema-agent/core/-/core-1.364.0.tgz",
634
- "integrity": "sha512-7hv+RDfEnTcR4Osgx5BwxlK8yDSguiDSmxYmx1Ma4BvNI6+5/Z0YGs7aTVro1GlKy7MiphY2U4mAod4iyMjGlw==",
632
+ "version": "1.365.0",
633
+ "resolved": "https://registry.npmjs.org/@sema-agent/core/-/core-1.365.0.tgz",
634
+ "integrity": "sha512-9IIG426siB0NPa1mQive50hnj0f/BvkjT9tFqJUDxK+EXHl7WNhHeoeqDAfqA+nPw2jl/MhE8SpajOJi0IkM+A==",
635
635
  "license": "BUSL-1.1",
636
636
  "dependencies": {
637
637
  "@modelcontextprotocol/sdk": "1.29.0",
@@ -669,18 +669,18 @@
669
669
  }
670
670
  },
671
671
  "node_modules/@sema-agent/sdk": {
672
- "version": "0.0.67",
673
- "resolved": "https://registry.npmjs.org/@sema-agent/sdk/-/sdk-0.0.67.tgz",
674
- "integrity": "sha512-bZLemaeHZn/loABKaLSmypi41CB3a51U0VKe6OARIOImOZcVfQhsOKUcVr8RmYgS2u1A+a5F+D43W/MYuxfCwQ==",
672
+ "version": "0.0.68",
673
+ "resolved": "https://registry.npmjs.org/@sema-agent/sdk/-/sdk-0.0.68.tgz",
674
+ "integrity": "sha512-76Ob7mQs+Dxavr/Tlr3mszIbEz6iekKEH/YbncrhUNIt/kZTXvxzAaAWABtfNvwgCRylvtJElr8QcVEHhZArbg==",
675
675
  "license": "BUSL-1.1",
676
676
  "engines": {
677
677
  "node": ">=20"
678
678
  }
679
679
  },
680
680
  "node_modules/@sema-agent/server": {
681
- "version": "1.246.0",
682
- "resolved": "https://registry.npmjs.org/@sema-agent/server/-/server-1.246.0.tgz",
683
- "integrity": "sha512-MbLeTDzjKgj6KR4IBnp2H+Qlvcikgc8uXiKmZJkDHEf+tYxhx7p5RuzQ0szW34ykYwDFNNuUbr8WSqieamXIsQ==",
681
+ "version": "1.247.0",
682
+ "resolved": "https://registry.npmjs.org/@sema-agent/server/-/server-1.247.0.tgz",
683
+ "integrity": "sha512-HWWigKaBmL346Uyt3sfZeepeq/CxjXKDBlrXu3noSU63wpeLid3B1OrRzGQgGjozq6mM1fihy3dU2w7x9W9cBA==",
684
684
  "license": "BUSL-1.1",
685
685
  "dependencies": {
686
686
  "@sema-agent/core": "^1.361.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema-agent/cli",
3
- "version": "1.0.48",
3
+ "version": "1.0.49",
4
4
  "description": "Sema — your own Claude Code-grade coding agent, in the terminal.",
5
5
  "license": "BUSL-1.1",
6
6
  "bin": {
@@ -21,14 +21,14 @@
21
21
  "sema"
22
22
  ],
23
23
  "dependencies": {
24
- "@sema-agent/sdk": "0.0.67",
25
- "@sema-agent/server": "1.246.0"
24
+ "@sema-agent/sdk": "0.0.68",
25
+ "@sema-agent/server": "1.247.0"
26
26
  },
27
27
  "overrides": {
28
- "@sema-agent/core": "1.364.0",
28
+ "@sema-agent/core": "1.365.0",
29
29
  "@sema-agent/registry-core": "0.10.21"
30
30
  },
31
- "semaEngineVersion": "server 1.246.0 / core 1.364.0 / registry-core 0.10.21",
31
+ "semaEngineVersion": "server 1.247.0 / core 1.365.0 / registry-core 0.10.21",
32
32
  "engines": {
33
33
  "node": ">=18"
34
34
  }
package/sema.js CHANGED
@@ -114163,6 +114163,7 @@ var init_instances = __esm({
114163
114163
  });
114164
114164
 
114165
114165
  // build-src/src/ink/log-update.ts
114166
+ import { appendFileSync as appendFileSync3 } from "node:fs";
114166
114167
  function transitionHyperlink(diff2, current3, target) {
114167
114168
  if (current3 !== target) {
114168
114169
  diff2.push({ type: "hyperlink", uri: target ?? "" });
@@ -114401,6 +114402,19 @@ var init_log_update = __esm({
114401
114402
  if (!this.options.isTTY) {
114402
114403
  return this.renderFullFrame(next);
114403
114404
  }
114405
+ if (process.env.SEMA_DEBUG_FRAME_DUMP) {
114406
+ try {
114407
+ const rows2 = [];
114408
+ for (let y2 = 0; y2 < next.screen.height; y2++) rows2.push(readLine(next.screen, y2));
114409
+ appendFileSync3(
114410
+ process.env.SEMA_DEBUG_FRAME_DUMP,
114411
+ `=== frame vp=${next.viewport.width}x${next.viewport.height} screen=${next.screen.width}x${next.screen.height} ===
114412
+ ${rows2.join("\n")}
114413
+ `
114414
+ );
114415
+ } catch {
114416
+ }
114417
+ }
114404
114418
  const startTime = performance.now();
114405
114419
  const stylePool = this.options.stylePool;
114406
114420
  if (next.viewport.height < prev.viewport.height || prev.viewport.width !== 0 && next.viewport.width !== prev.viewport.width) {
@@ -160026,7 +160040,7 @@ var init_userMessageSelect = __esm({
160026
160040
 
160027
160041
  // build-src/src/sema/rewindAnchorSidecar.ts
160028
160042
  import {
160029
- appendFileSync as appendFileSync3,
160043
+ appendFileSync as appendFileSync4,
160030
160044
  closeSync as closeSync5,
160031
160045
  fsyncSync as fsyncSync3,
160032
160046
  mkdirSync as mkdirSync6,
@@ -160225,11 +160239,11 @@ var init_rewindAnchorSidecar = __esm({
160225
160239
  }
160226
160240
  appendLocked(path27, line) {
160227
160241
  try {
160228
- appendFileSync3(path27, "", { mode: 384 });
160242
+ appendFileSync4(path27, "", { mode: 384 });
160229
160243
  } catch {
160230
160244
  try {
160231
160245
  mkdirSync6(dirname21(path27), { recursive: true, mode: 448 });
160232
- appendFileSync3(path27, "", { mode: 384 });
160246
+ appendFileSync4(path27, "", { mode: 384 });
160233
160247
  } catch (err8) {
160234
160248
  logForDebugging2(`rewindAnchorSidecar: cannot ensure ${path27}: ${err8}`);
160235
160249
  }
@@ -352993,7 +353007,7 @@ function useClaudeAiLimits() {
352993
353007
  var import_react64;
352994
353008
  var init_claudeAiLimitsHook = __esm({
352995
353009
  "build-src/src/services/claudeAiLimitsHook.ts"() {
352996
- import_react64 = __toESM(require_react());
353010
+ import_react64 = __toESM(require_react(), 1);
352997
353011
  init_claudeAiLimits();
352998
353012
  }
352999
353013
  });
@@ -430422,6 +430436,7 @@ function createLiveFleetSource(config4, now2 = Date.now()) {
430422
430436
  let version4 = null;
430423
430437
  let scoped = null;
430424
430438
  let sessionScopedMeta;
430439
+ let bgNotifyFailClosedMeta = false;
430425
430440
  let lastError = null;
430426
430441
  let disposed4 = false;
430427
430442
  const bgView = {
@@ -430491,6 +430506,8 @@ function createLiveFleetSource(config4, now2 = Date.now()) {
430491
430506
  scoped = frame.scoped;
430492
430507
  const ss = frame.sessionScoped;
430493
430508
  sessionScopedMeta = typeof ss === "boolean" ? ss : void 0;
430509
+ const bfc = frame.bgNotifyFailClosed;
430510
+ bgNotifyFailClosedMeta = bfc === true;
430494
430511
  break;
430495
430512
  }
430496
430513
  case "snapshot": {
@@ -430545,7 +430562,8 @@ function createLiveFleetSource(config4, now2 = Date.now()) {
430545
430562
  const n2 = anyFrame.type === "bg_notification" ? anyFrame.notification ?? anyFrame : void 0;
430546
430563
  if (n2 && typeof n2.taskId === "string" && typeof n2.status === "string") {
430547
430564
  const notifParentRun = n2.parentTaskId;
430548
- if (typeof notifParentRun === "string" && notifParentRun.length > 0 && !isOwnEngineRun(notifParentRun)) {
430565
+ const serverFailClosed = bgNotifyFailClosedMeta && sessionScopedMeta === true;
430566
+ if (!serverFailClosed && typeof notifParentRun === "string" && notifParentRun.length > 0 && !isOwnEngineRun(notifParentRun)) {
430549
430567
  if (process.env.SEMA_DEBUG) {
430550
430568
  logForDebugging(
430551
430569
  `[fleet-frame] bg_notification DROPPED foreign/unowned parentRun(taskId=${n2.taskId} parentRun=${notifParentRun})`
@@ -451971,7 +451989,7 @@ function Settings({
451971
451989
  var import_react113, import_jsx_runtime193;
451972
451990
  var init_cmd_config = __esm({
451973
451991
  "build-src/src/sema/overrides/cmd-config.tsx"() {
451974
- import_react113 = __toESM(require_react());
451992
+ import_react113 = __toESM(require_react(), 1);
451975
451993
  init_useKeybinding();
451976
451994
  init_useExitOnCtrlCDWithKeybindings();
451977
451995
  init_useTerminalSize();
@@ -451982,7 +452000,7 @@ var init_cmd_config = __esm({
451982
452000
  init_Config();
451983
452001
  init_settings_usage();
451984
452002
  init_Stats();
451985
- import_jsx_runtime193 = __toESM(require_jsx_runtime());
452003
+ import_jsx_runtime193 = __toESM(require_jsx_runtime(), 1);
451986
452004
  }
451987
452005
  });
451988
452006
 
@@ -480775,25 +480793,23 @@ var init_sema_brand = __esm({
480775
480793
  _doc: "Rendered as the 'What's new' feed (createWhatsNewFeed). Top version MUST be >= current app version (2.1.187) and newer than config.lastReleaseNotesSeen so the notes display and full-logo mode triggers. Pinned == app version (2.1.187) + lastReleaseNotesSeen (loginState.ts) so getRecentReleaseNotes()===[] \u2192 condensed logo (matches refs/chrome.empty-input.json).",
480776
480794
  version: "2.1.187",
480777
480795
  notes: [
480796
+ "Background-agent completion notifications now survive a shell restart: on engines that declare fail-closed notification routing (1.247+), resuming a session delivers notifications for agents that were still running when the previous shell exited",
480797
+ "Workflow monitor no longer bleeds a tool argument's raw multi-line content across the panel (long structured outputs in the Activity list are now summarized to their first line)",
480798
+ "Workflow detail/status reads are now session-scoped end to end on newer engines \u2014 another conversation's workflow details are no longer readable from your window",
480778
480799
  "Background tasks just got real controls: open /tasks and press x to actually stop an engine-side background command or agent \u2014 and the detail view now streams the task's real live output while it runs (previously you could only see a receipt until it finished)",
480779
480800
  "Session isolation hardened across the board after a full sweep of the recent dual-window fix: completed-task leftovers no longer linger into a new conversation after /clear or resume, nested background agents' completion notifications are no longer silently dropped, and stale entries can't evict a transcript you're actively viewing",
480780
- "Fixed a serious isolation bug: two sema windows open in the same project directory could receive each other's background-agent completion notifications, sometimes crashing both",
480781
- "Fixed a general crash (React error #300) that could happen when the last agent in the agents-panel view finishes while you're navigating it",
480782
- "Workflow completion notifications are more truthful: a stopped workflow is no longer reported as completed, and unknown in-flight states are no longer mistaken for finished",
480783
- "Jump-to-bottom no longer gets stuck showing when you're already at the bottom of a long conversation",
480784
- "Context window presets in the model wizard (64K/128K/.../1M) now convert consistently \u2014 token counts finally match what the labels say",
480785
- `Clarified what the model wizard's "Label" field actually does when you leave it blank`
480801
+ "Fixed a serious isolation bug: two sema windows open in the same project directory could receive each other's background-agent completion notifications, sometimes crashing both"
480786
480802
  ]
480787
480803
  },
480788
- productVersion: "1.0.48",
480789
- announcement: "sema 1.0.48 \u2014 Big one: /tasks can now show an engine-side background task's LIVE output and truly stop it (x). Plus a full isolation hardening sweep following the dual-window fix, and more truthful workflow/agent completion notifications."
480804
+ productVersion: "1.0.49",
480805
+ announcement: "sema 1.0.49 \u2014 Notifications for background agents now survive shell restarts (on 1.247+ engines), workflow panels no longer bleed multi-line tool arguments, and workflow reads are session-scoped end to end."
480790
480806
  };
480791
480807
  }
480792
480808
  });
480793
480809
 
480794
480810
  // build-src/src/sema/overrides/welcome-scifi.tsx
480795
480811
  import { probeHealth as sdkProbeHealth6 } from "@sema-agent/sdk";
480796
- import { appendFileSync as appendFileSync4 } from "node:fs";
480812
+ import { appendFileSync as appendFileSync5 } from "node:fs";
480797
480813
  function pickIcon() {
480798
480814
  const k2 = process.env.SEMA_WELCOME_ICON ?? "prism";
480799
480815
  return ICONS[k2] ?? ICONS.prism;
@@ -480918,7 +480934,7 @@ function buildChecks(routingRefusalParam = null, pinUnreachableParam = null, mod
480918
480934
  }
480919
480935
  if (process.env.SEMA_WELCOME_PROBE) {
480920
480936
  try {
480921
- appendFileSync4(`${process.env.SEMA_WELCOME_PROBE}.render`, `${Date.now()} buildChecks r=${JSON.stringify(routingRefusal)}
480937
+ appendFileSync5(`${process.env.SEMA_WELCOME_PROBE}.render`, `${Date.now()} buildChecks r=${JSON.stringify(routingRefusal)}
480922
480938
  `);
480923
480939
  } catch {
480924
480940
  }
@@ -481047,7 +481063,7 @@ function WelcomeSciFi() {
481047
481063
  const r = engineRoutingRefusalActive();
481048
481064
  if (process.env.SEMA_WELCOME_PROBE && polls <= 3) {
481049
481065
  try {
481050
- appendFileSync4(process.env.SEMA_WELCOME_PROBE, `poll#${polls} r=${JSON.stringify(r)}
481066
+ appendFileSync5(process.env.SEMA_WELCOME_PROBE, `poll#${polls} r=${JSON.stringify(r)}
481051
481067
  `);
481052
481068
  } catch {
481053
481069
  }
@@ -483716,18 +483732,16 @@ var require_sema_brand = __commonJS({
483716
483732
  _doc: "Rendered as the 'What's new' feed (createWhatsNewFeed). Top version MUST be >= current app version (2.1.187) and newer than config.lastReleaseNotesSeen so the notes display and full-logo mode triggers. Pinned == app version (2.1.187) + lastReleaseNotesSeen (loginState.ts) so getRecentReleaseNotes()===[] \u2192 condensed logo (matches refs/chrome.empty-input.json).",
483717
483733
  version: "2.1.187",
483718
483734
  notes: [
483735
+ "Background-agent completion notifications now survive a shell restart: on engines that declare fail-closed notification routing (1.247+), resuming a session delivers notifications for agents that were still running when the previous shell exited",
483736
+ "Workflow monitor no longer bleeds a tool argument's raw multi-line content across the panel (long structured outputs in the Activity list are now summarized to their first line)",
483737
+ "Workflow detail/status reads are now session-scoped end to end on newer engines \u2014 another conversation's workflow details are no longer readable from your window",
483719
483738
  "Background tasks just got real controls: open /tasks and press x to actually stop an engine-side background command or agent \u2014 and the detail view now streams the task's real live output while it runs (previously you could only see a receipt until it finished)",
483720
483739
  "Session isolation hardened across the board after a full sweep of the recent dual-window fix: completed-task leftovers no longer linger into a new conversation after /clear or resume, nested background agents' completion notifications are no longer silently dropped, and stale entries can't evict a transcript you're actively viewing",
483721
- "Fixed a serious isolation bug: two sema windows open in the same project directory could receive each other's background-agent completion notifications, sometimes crashing both",
483722
- "Fixed a general crash (React error #300) that could happen when the last agent in the agents-panel view finishes while you're navigating it",
483723
- "Workflow completion notifications are more truthful: a stopped workflow is no longer reported as completed, and unknown in-flight states are no longer mistaken for finished",
483724
- "Jump-to-bottom no longer gets stuck showing when you're already at the bottom of a long conversation",
483725
- "Context window presets in the model wizard (64K/128K/.../1M) now convert consistently \u2014 token counts finally match what the labels say",
483726
- `Clarified what the model wizard's "Label" field actually does when you leave it blank`
483740
+ "Fixed a serious isolation bug: two sema windows open in the same project directory could receive each other's background-agent completion notifications, sometimes crashing both"
483727
483741
  ]
483728
483742
  },
483729
- productVersion: "1.0.48",
483730
- announcement: "sema 1.0.48 \u2014 Big one: /tasks can now show an engine-side background task's LIVE output and truly stop it (x). Plus a full isolation hardening sweep following the dual-window fix, and more truthful workflow/agent completion notifications."
483743
+ productVersion: "1.0.49",
483744
+ announcement: "sema 1.0.49 \u2014 Notifications for background agents now survive shell restarts (on 1.247+ engines), workflow panels no longer bleed multi-line tool arguments, and workflow reads are session-scoped end to end."
483731
483745
  };
483732
483746
  }
483733
483747
  });
@@ -520609,7 +520623,7 @@ var init_commands = __esm({
520609
520623
 
520610
520624
  // build-src/src/sema/turnJournal.ts
520611
520625
  import {
520612
- appendFileSync as appendFileSync5,
520626
+ appendFileSync as appendFileSync6,
520613
520627
  closeSync as closeSync8,
520614
520628
  fsyncSync as fsyncSync6,
520615
520629
  mkdirSync as mkdirSync18,
@@ -520626,22 +520640,22 @@ function recordTurnJournalEntry(journalPath, entry, lockTargetPath) {
520626
520640
  const line = jsonStringify(stamped) + "\n";
520627
520641
  const lockOn = lockTargetPath ?? journalPath;
520628
520642
  try {
520629
- appendFileSync5(lockOn, "", { mode: 384 });
520643
+ appendFileSync6(lockOn, "", { mode: 384 });
520630
520644
  } catch {
520631
520645
  try {
520632
520646
  mkdirSync18(dirname70(lockOn), { recursive: true, mode: 448 });
520633
- appendFileSync5(lockOn, "", { mode: 384 });
520647
+ appendFileSync6(lockOn, "", { mode: 384 });
520634
520648
  } catch (err8) {
520635
520649
  logForDebugging(`turnJournal: cannot ensure lock target ${lockOn}: ${err8}`);
520636
520650
  }
520637
520651
  }
520638
520652
  if (lockOn !== journalPath) {
520639
520653
  try {
520640
- appendFileSync5(journalPath, "", { mode: 384 });
520654
+ appendFileSync6(journalPath, "", { mode: 384 });
520641
520655
  } catch {
520642
520656
  try {
520643
520657
  mkdirSync18(dirname70(journalPath), { recursive: true, mode: 448 });
520644
- appendFileSync5(journalPath, "", { mode: 384 });
520658
+ appendFileSync6(journalPath, "", { mode: 384 });
520645
520659
  } catch {
520646
520660
  }
520647
520661
  }
@@ -563292,6 +563306,12 @@ function coerceAgentState(s) {
563292
563306
  return "progress";
563293
563307
  }
563294
563308
  }
563309
+ function oneLineSummary(s) {
563310
+ const nl = s.search(/\r?\n/);
563311
+ if (nl < 0) return s;
563312
+ const head = s.slice(0, nl).trimEnd();
563313
+ return head ? `${head}\u2026` : "\u2026";
563314
+ }
563295
563315
  function projectActivity(beats) {
563296
563316
  if (!beats?.length) return [];
563297
563317
  const byCall = /* @__PURE__ */ new Map();
@@ -563303,7 +563323,7 @@ function projectActivity(beats) {
563303
563323
  const key = typeof b3.toolCallId === "string" && b3.toolCallId ? b3.toolCallId : `#${anon++}`;
563304
563324
  if (!byCall.has(key)) order2.push(key);
563305
563325
  const prev = byCall.get(key);
563306
- const arg = typeof b3.arg === "string" && b3.arg.trim() ? b3.arg.trim() : prev?.summary;
563326
+ const arg = typeof b3.arg === "string" && b3.arg.trim() ? oneLineSummary(b3.arg.trim()) : prev?.summary;
563307
563327
  const call75 = { name };
563308
563328
  if (arg) call75.summary = arg;
563309
563329
  byCall.set(key, { ...prev, ...call75 });
@@ -563458,14 +563478,14 @@ function createLiveWorkflowSource(config4) {
563458
563478
  }
563459
563479
  async function resolveRunId(signal) {
563460
563480
  if (config4.workflowId) return config4.workflowId;
563461
- const { workflows } = await client4.workflows.list({ signal });
563481
+ const { workflows } = await client4.workflows.list({ signal, ...engineSessionParamSpread() });
563462
563482
  if (!workflows?.length) return null;
563463
563483
  const running = workflows.find((w2) => w2.status === "running");
563464
563484
  return (running ?? workflows[0]).id;
563465
563485
  }
563466
563486
  async function refresh(id, signal) {
563467
563487
  try {
563468
- const run2 = await client4.workflows.get(id, { signal });
563488
+ const run2 = await client4.workflows.get(id, { signal, ...engineSessionParamSpread() });
563469
563489
  lastGetAt = Date.now();
563470
563490
  current3 = projectWorkflowRun(run2);
563471
563491
  runId = run2.id;
@@ -563495,7 +563515,7 @@ function createLiveWorkflowSource(config4) {
563495
563515
  continue;
563496
563516
  }
563497
563517
  try {
563498
- for await (const _frame of client4.workflows.stream(id, { signal: abort.signal })) {
563518
+ for await (const _frame of client4.workflows.stream(id, { signal: abort.signal, ...engineSessionParamSpread() })) {
563499
563519
  void _frame;
563500
563520
  if (disposed4) return;
563501
563521
  connected = true;
@@ -563534,6 +563554,7 @@ function createLiveWorkflowSource(config4) {
563534
563554
  var workflowClient_default;
563535
563555
  var init_workflowClient = __esm({
563536
563556
  "build-src/src/sema/workflowClient.ts"() {
563557
+ init_engineSessionParam();
563537
563558
  workflowClient_default = createLiveWorkflowSource;
563538
563559
  }
563539
563560
  });
@@ -604172,8 +604193,8 @@ async function processResumedConversation(result, opts, context3) {
604172
604193
  const { bindSessionPersistencePaths: bindSessionPersistencePaths2, reconcileResumeJournal: reconcileResumeJournal2 } = await Promise.resolve().then(() => (init_sessionPersistenceWire(), sessionPersistenceWire_exports));
604173
604194
  bindSessionPersistencePaths2();
604174
604195
  if (process.env.SEMA_RECONCILE_DIAG) {
604175
- const { appendFileSync: appendFileSync8 } = await import("fs");
604176
- appendFileSync8(
604196
+ const { appendFileSync: appendFileSync9 } = await import("fs");
604197
+ appendFileSync9(
604177
604198
  process.env.SEMA_RECONCILE_DIAG,
604178
604199
  `[entry] sid=${sid} baseUrl=${process.env.SEMA_LIVE_BASEURL ?? "UNSET"}
604179
604200
  `
@@ -604183,8 +604204,8 @@ async function processResumedConversation(result, opts, context3) {
604183
604204
  const { cancelEngineRun: cancelEngineRun2 } = await Promise.resolve().then(() => (init_seamQuery(), seamQuery_exports));
604184
604205
  const r = await reconcileResumeJournal2(void 0, (taskId) => cancelEngineRun2(taskId));
604185
604206
  if (process.env.SEMA_RECONCILE_DIAG) {
604186
- const { appendFileSync: appendFileSync8 } = await import("fs");
604187
- appendFileSync8(
604207
+ const { appendFileSync: appendFileSync9 } = await import("fs");
604208
+ appendFileSync9(
604188
604209
  process.env.SEMA_RECONCILE_DIAG,
604189
604210
  `[done] ${r.decision.lastState} -> ${r.recovery}
604190
604211
  `
@@ -604196,8 +604217,8 @@ async function processResumedConversation(result, opts, context3) {
604196
604217
  );
604197
604218
  }
604198
604219
  } else if (process.env.SEMA_RECONCILE_DIAG) {
604199
- const { appendFileSync: appendFileSync8 } = await import("fs");
604200
- appendFileSync8(process.env.SEMA_RECONCILE_DIAG, `[skip] baseUrl UNSET
604220
+ const { appendFileSync: appendFileSync9 } = await import("fs");
604221
+ appendFileSync9(process.env.SEMA_RECONCILE_DIAG, `[skip] baseUrl UNSET
604201
604222
  `);
604202
604223
  }
604203
604224
  } catch (ePw) {
@@ -607706,8 +607727,8 @@ function _temp158() {
607706
607727
  var import_compiler_runtime312, import_react310, import_jsx_runtime458, DESKTOP_UPSELL_DEFAULT;
607707
607728
  var init_DesktopUpsellStartup = __esm({
607708
607729
  "build-src/src/components/DesktopUpsell/DesktopUpsellStartup.tsx"() {
607709
- import_compiler_runtime312 = __toESM(require_compiler_runtime());
607710
- import_react310 = __toESM(require_react());
607730
+ import_compiler_runtime312 = __toESM(require_compiler_runtime(), 1);
607731
+ import_react310 = __toESM(require_react(), 1);
607711
607732
  init_ink2();
607712
607733
  init_growthbook_advisor_flag();
607713
607734
  init_analytics_index();
@@ -607715,7 +607736,7 @@ var init_DesktopUpsellStartup = __esm({
607715
607736
  init_select();
607716
607737
  init_DesktopHandoff();
607717
607738
  init_PermissionDialog();
607718
- import_jsx_runtime458 = __toESM(require_jsx_runtime());
607739
+ import_jsx_runtime458 = __toESM(require_jsx_runtime(), 1);
607719
607740
  DESKTOP_UPSELL_DEFAULT = {
607720
607741
  enable_shortcut_tip: false,
607721
607742
  enable_startup_dialog: false
@@ -610070,8 +610091,8 @@ function _temp161() {
610070
610091
  var import_compiler_runtime316, import_react314, SETTINGS_ERRORS_NOTIFICATION_KEY;
610071
610092
  var init_useSettingsErrors = __esm({
610072
610093
  "build-src/src/hooks/notifs/useSettingsErrors.tsx"() {
610073
- import_compiler_runtime316 = __toESM(require_compiler_runtime());
610074
- import_react314 = __toESM(require_react());
610094
+ import_compiler_runtime316 = __toESM(require_compiler_runtime(), 1);
610095
+ import_react314 = __toESM(require_react(), 1);
610075
610096
  init_notifications();
610076
610097
  init_state();
610077
610098
  init_allErrors();
@@ -630943,7 +630964,7 @@ function createLiveConversationClient(config4) {
630943
630964
  installWorkflowStatusProbe(async (runId) => {
630944
630965
  let run2 = null;
630945
630966
  try {
630946
- run2 = await client4.workflows.get(runId);
630967
+ run2 = await client4.workflows.get(runId, engineSessionParamSpread());
630947
630968
  } catch {
630948
630969
  return null;
630949
630970
  }
@@ -656373,7 +656394,7 @@ Auth: unix socket -R \u2192 local proxy`, "info");
656373
656394
  pendingHookMessages
656374
656395
  }, renderAndRun);
656375
656396
  }
656376
- }).version("sema 1.0.48", "-v, --version", "Output the version number");
656397
+ }).version("sema 1.0.49", "-v, --version", "Output the version number");
656377
656398
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
656378
656399
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
656379
656400
  if (canUserConfigureAdvisor()) {
@@ -659565,7 +659586,7 @@ __export(interactiveHelpers_exports, {
659565
659586
  showSetupDialog: () => showSetupDialog,
659566
659587
  showSetupScreens: () => showSetupScreens
659567
659588
  });
659568
- import { appendFileSync as appendFileSync6 } from "fs";
659589
+ import { appendFileSync as appendFileSync7 } from "fs";
659569
659590
  function completeOnboarding() {
659570
659591
  saveGlobalConfig((current3) => ({
659571
659592
  ...current3,
@@ -659758,7 +659779,7 @@ function getRenderContext(exitOnCtrlC) {
659758
659779
  cpu: process.cpuUsage()
659759
659780
  }) + "\n"
659760
659781
  );
659761
- appendFileSync6(frameTimingLogPath, line);
659782
+ appendFileSync7(frameTimingLogPath, line);
659762
659783
  }
659763
659784
  if (isSynchronizedOutputSupported()) {
659764
659785
  return;
@@ -662402,7 +662423,7 @@ __export(main_exports2, {
662402
662423
  daemonMain: () => daemonMain
662403
662424
  });
662404
662425
  import { spawn as spawn15 } from "child_process";
662405
- import { appendFileSync as appendFileSync7, createWriteStream as createWriteStream5 } from "fs";
662426
+ import { appendFileSync as appendFileSync8, createWriteStream as createWriteStream5 } from "fs";
662406
662427
  import { chmod as chmod13, mkdir as mkdir51, readFile as readFile58, readdir as readdir33, rename as rename15, stat as stat54, unlink as unlink28 } from "fs/promises";
662407
662428
  import { createConnection as createConnection4, createServer as createServer9 } from "net";
662408
662429
  import { dirname as dirname90, join as join206 } from "path";
@@ -662449,7 +662470,7 @@ function appendDaemonCrashLine(kind, err8) {
662449
662470
  const line = `${(/* @__PURE__ */ new Date()).toISOString()} [daemon] FATAL ${kind} (pid ${process.pid}): ${detail}
662450
662471
  `;
662451
662472
  try {
662452
- appendFileSync7(getDaemonLogPath(), line, { mode: 384 });
662473
+ appendFileSync8(getDaemonLogPath(), line, { mode: 384 });
662453
662474
  } catch {
662454
662475
  try {
662455
662476
  process.stderr.write(line);