scream-code 0.15.8 → 0.16.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.
@@ -3,5 +3,5 @@ import { fileURLToPath as __cjsShimFileURLToPath } from 'node:url';
3
3
  import { dirname as __cjsShimDirname } from 'node:path';
4
4
  const __filename = __cjsShimFileURLToPath(import.meta.url);
5
5
  const __dirname = __cjsShimDirname(__filename);
6
- import { Jt as handleConnectCommand } from "./dispatch-BaAsj0v5.mjs";
6
+ import { Jt as handleConnectCommand } from "./dispatch-CsrteWRw.mjs";
7
7
  export { handleConnectCommand };
@@ -6,7 +6,7 @@ const __dirname = __cjsShimDirname(__filename);
6
6
  import { i as __require, o as __toESM, r as __exportAll, t as __commonJSMin } from "./chunk-D90kvbyJ.mjs";
7
7
  import { C as join$1, D as resolve$1, E as relative$1, S as isAbsolute$1, T as parse$7, a as isSupportedFile, b as basename$1, i as ingestFile, r as ingestDirectory, t as multiSearch, w as normalize$1, x as dirname$2, y as KnowledgeStore } from "./src-tDEINaMV.mjs";
8
8
  import { t as require_base64_js } from "./base64-js-DzVmk6Nb.mjs";
9
- import { a as setLocale, i as getLocale, n as assertScreamHostIdentity, o as t, r as createScreamDefaultHeaders, t as TextInputDialogComponent } from "./text-input-dialog-C5pDKZ-c.mjs";
9
+ import { a as setLocale, i as getLocale, n as assertScreamHostIdentity, o as t, r as createScreamDefaultHeaders, t as TextInputDialogComponent } from "./text-input-dialog-BVQaKy1Z.mjs";
10
10
  import { createRequire } from "node:module";
11
11
  import { createHash, randomBytes, randomInt, randomUUID } from "node:crypto";
12
12
  import * as fs$1 from "node:fs/promises";
@@ -107950,8 +107950,25 @@ var Session$1 = class {
107950
107950
  return this.writeMetadataPromise;
107951
107951
  }
107952
107952
  async readMetadata() {
107953
- const text = await this.options.jian.readText(this.metadataPath);
107954
- this.metadata = JSON.parse(text);
107953
+ let text;
107954
+ try {
107955
+ text = await this.options.jian.readText(this.metadataPath);
107956
+ } catch (error) {
107957
+ if (error.code === "ENOENT") return this.metadata;
107958
+ throw error;
107959
+ }
107960
+ try {
107961
+ this.metadata = JSON.parse(text);
107962
+ } catch {
107963
+ this.metadata = {
107964
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
107965
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString(),
107966
+ title: "New Session",
107967
+ isCustomTitle: false,
107968
+ agents: {},
107969
+ custom: {}
107970
+ };
107971
+ }
107955
107972
  return this.metadata;
107956
107973
  }
107957
107974
  async flushMetadata() {
@@ -123596,6 +123613,18 @@ const SessionSummaryStateSchema = z.object({
123596
123613
  title: z.string().optional(),
123597
123614
  custom: z.record(z.string(), z.unknown()).optional()
123598
123615
  });
123616
+ let stateWriteCounter = 0;
123617
+ /**
123618
+ * Atomic state.json write: plain writeFile truncates the target before the
123619
+ * new bytes land, so a process killed mid-write leaves a 0-byte state.json
123620
+ * and the next resume crashes on JSON.parse. Temp-file + rename makes the
123621
+ * swap all-or-nothing.
123622
+ */
123623
+ async function writeStateAtomically(statePath, content) {
123624
+ const tmpPath = `${statePath}.${process.pid}.${Date.now().toString(36)}.${(stateWriteCounter++).toString(36)}.tmp`;
123625
+ await writeFile(tmpPath, content, "utf-8");
123626
+ await rename(tmpPath, statePath);
123627
+ }
123599
123628
  var SessionStore = class {
123600
123629
  homeDir;
123601
123630
  sessionsDir;
@@ -123685,7 +123714,7 @@ var SessionStore = class {
123685
123714
  title: normalized,
123686
123715
  isCustomTitle: true
123687
123716
  };
123688
- await writeFile(statePath, `${JSON.stringify(next, null, 2)}\n`, "utf-8");
123717
+ await writeStateAtomically(statePath, `${JSON.stringify(next, null, 2)}\n`);
123689
123718
  }
123690
123719
  async delete(id) {
123691
123720
  assertSafeSessionId(id);
@@ -123790,7 +123819,7 @@ var SessionStore = class {
123790
123819
  agents: rewriteAgentHomedirs(parsed["agents"], sourceDir, targetDir),
123791
123820
  custom: Object.assign({}, isRecord$1(parsed["custom"]) ? parsed["custom"] : {}, input.metadata)
123792
123821
  };
123793
- await writeFile(statePath, `${JSON.stringify(next, null, 2)}\n`, "utf-8");
123822
+ await writeStateAtomically(statePath, `${JSON.stringify(next, null, 2)}\n`);
123794
123823
  }
123795
123824
  async summaryFromDir(id, sessionDir, workDir) {
123796
123825
  const dirStat = await stat(sessionDir);
@@ -128445,6 +128474,7 @@ var ApiKeyInputDialogComponent = class extends Container {
128445
128474
  const STATUS_BULLET = "■ ";
128446
128475
  const USER_MESSAGE_BULLET = "■ ";
128447
128476
  const FAILURE_MARK = "✗ ";
128477
+ const INTERJECTION_BULLET = "▸ ";
128448
128478
  //#endregion
128449
128479
  //#region src/tui/utils/printable-key.ts
128450
128480
  /**
@@ -133567,7 +133597,7 @@ async function guidedGoalSetup(host) {
133567
133597
  host.showNotice(t("goal.storm_breaker"), t("goal.conflict_loop"));
133568
133598
  return;
133569
133599
  }
133570
- const { TextInputDialogComponent } = await import("./text-input-dialog-BBSjCM5z.mjs");
133600
+ const { TextInputDialogComponent } = await import("./text-input-dialog-B0PROY20.mjs");
133571
133601
  const initialDesc = await promptText(host, TextInputDialogComponent, {
133572
133602
  title: t("goal.setup_title_initial"),
133573
133603
  subtitle: t("goal.setup_desc_hint"),
@@ -133588,7 +133618,7 @@ async function guidedGoalSetup(host) {
133588
133618
  await showGoalConfigWizard(host, session, confirmed.trim() || objective, false);
133589
133619
  }
133590
133620
  async function showGoalConfigWizard(host, session, objective, replace) {
133591
- const { TextInputDialogComponent } = await import("./text-input-dialog-BBSjCM5z.mjs");
133621
+ const { TextInputDialogComponent } = await import("./text-input-dialog-B0PROY20.mjs");
133592
133622
  const turnInput = await promptNumber(host, TextInputDialogComponent, {
133593
133623
  title: t("goal.wizard_title", { objective }),
133594
133624
  subtitle: t("goal.budget_turns_hint"),
@@ -139502,7 +139532,7 @@ function detectScreamPath() {
139502
139532
  * shell, so an unquoted path containing spaces would be split apart.
139503
139533
  */
139504
139534
  function quoteShellPath(path) {
139505
- return `"${path.replaceAll(/"/g, "\\\"")}"`;
139535
+ return `"${path.replaceAll("\"", "\\\"")}"`;
139506
139536
  }
139507
139537
  /** Parse every configured platform type from config.toml content. */
139508
139538
  function parseConfiguredTypes(content) {
@@ -139553,7 +139583,7 @@ function isVersionAtLeast(version, min) {
139553
139583
  */
139554
139584
  function tomlString(value) {
139555
139585
  if (!value.includes("'")) return `'${value}'`;
139556
- return `"${value.replaceAll(/\\/g, "\\\\").replaceAll(/"/g, "\\\"")}"`;
139586
+ return `"${value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"")}"`;
139557
139587
  }
139558
139588
  function generateConfig(platform) {
139559
139589
  const dir = dirname$1(CONFIG_PATH);
@@ -143518,4 +143548,4 @@ async function handleBuiltInSlashCommand(host, name, args) {
143518
143548
  }
143519
143549
  }
143520
143550
  //#endregion
143521
- export { handleTitleCommand as $, argsRecord as $t, renderDiffLinesClustered as A, detectShellEnvironment as An, DISABLE_TERMINAL_THEME_REPORTING as At, BackgroundAgentStatusComponent as B, fetchCatalog as Bn, TERMINAL_THEME_DARK as Bt, handleRevokeCommand as C, startManualEmbeddingDownload as Cn, createMarkdownTheme as Ct, toggleEmptySessionHint as D, TuiLikePreferencesSchema as Dn, detectTerminalTheme as Dt, isTurnElapsedEnabled as E, TuiConfigParseError as En, getColorPalette as Et, estimateTokens as F, CLI_COMMAND_NAME as Fn, OSC11_RESPONSE_PREFIX as Ft, getBreathingFrame as G, MemoryMemoStore as Gn, lerpGradient as Gt, AgentGroupComponent as H, ScreamHarness as Hn, isBusy as Ht, getSharedSpeedTracker as I, CLI_UI_MODE as In, OSC11_RESPONSE_PREFIX_NO_ESC as It, refineGoal as J, resolveGlobalLogPath as Jn, handleConnectCommand as Jt, resetBreathingClock as K, flushDiagnosticLogs as Kn, handleTraceCommand as Kt, SkillActivationComponent as L, CLI_USER_AGENT_PRODUCT as Ln, QUERY_TERMINAL_THEME as Lt, langFromPath as M, getInputHistoryFile as Mn, ENABLE_TERMINAL_THEME_REPORTING as Mt, CachedContainer as N, getLogDir as Nn, OSC11_QUERY as Nt, ToolCallComponent as O, loadTuiConfig as On, parseOsc11BackgroundTheme as Ot, ThinkingComponent as P, detectInstallSource as Pn, OSC11_RESPONSE as Pt, handleInitCommand as Q, SCREAM_ERROR_INFO as Qn, appendStreamingArgsPreview as Qt, ReadGroupComponent as R, PRODUCT_NAME as Rn, TERMINAL_FOCUS_IN as Rt, getDaemonInstructions as S, isEmbeddingModelCached as Sn, createEditorTheme as St, isEmptySessionHintDismissed as T, PULSE_WAVE_FRAMES as Tn, contrastTextHex as Tt, WelcomeComponent as U, MCP_OAUTH_AUTHORIZATION_URL_TOOL_UPDATE as Un, isStreaming as Ut, AssistantMessageComponent as V, saveCatalogCache as Vn, TERMINAL_THEME_LIGHT as Vt, BREATHE_CYCLE_MS as W, resolveScreamHome as Wn, FooterComponent as Wt, handleExportMdCommand as X, isOrphanedToolCallError as Xn, printableChar as Xt, handleExportDebugZipCommand as Y, isScreamError as Yn, handleLogoutCommand as Yt, handleForkCommand as Z, ErrorCodes as Zn, STATUS_BULLET as Zt, refreshUpdateCache as _, BUILTIN_SLASH_COMMANDS as _n, supportsBalance as _t, handleExtensionCommand as a, truncateErrorMessage as an, handleCompactCommand as at, readJsonlFile as b, setExperimentalFlags as bn, showUsage as bt, hasDispose as c, EXIT_CONFIRM_WINDOW_MS as cn, handleModelCommand as ct, formatMemoryMemoForInjection as d, TIP_ROTATION_INTERVAL_MS as dn, handleWolfpackCommand as dt, formatErrorMessage as en, toTerminalHyperlink as et, handleMemoryCommand as f, getCtrlCHint as fn, handleYoloCommand as ft, selectUpdateTarget as g, buildSkillSlashCommands as gn, refreshProviderBalance as gt, handleUpdateCommand as h, getNoActiveSessionMessage as hn, showSettingsSelector as ht, buildRoleAdditionalText as i, stringValue as in, handleBotCommand as it, highlightLines as j, getDataDir as jn, ENABLE_TERMINAL_FOCUS_REPORTING as jt, renderDiffLines as k, saveTuiConfig as kn, DISABLE_TERMINAL_FOCUS_REPORTING as kt, isPlanExpandable as l, MAIN_AGENT_ID$1 as ln, handlePlanCommand as lt, handleMcpCommand as m, getLlmNotSetMessage as mn, showPermissionPicker as mt, clearEvalPanelState as n, parseStreamingArgs as nn, getModelCycleLevel as nt, handleSkillCommand as o, CHARS_PER_TOKEN as on, handleEditorCommand as ot, handleChannelCommand as p, getCtrlDHint as pn, showModelPicker as pt, clearGoalState as q, log as qn, handleSearchCommand as qt, openUrl as r, serializeToolResultOutput as rn, handleAutoCommand as rt, disposeChildren as s, EMPTY_SESSION_HINT_URL as sn, handleFusionPlanCommand as st, dispatchInput as t, isTodoItemShape as tn, changeThinkingLevel as tt, MoonLoader as u, SESSION_TIPS as un, handleThemeCommand as ut, readUpdateCache as v, sortSlashCommands as vn, clearInfoPanelState as vt, UserMessageComponent as w, PIXEL_PULSE_FRAMES as wn, createThemeStyles as wt, handleCcCommand as x, getKnowledgeStore as xn, resolveThemeSync as xt, appendJsonlLine as y, isExperimentalFlagEnabled as yn, showStatusReport as yt, parseReadGroupOutput as z, DEFAULT_CATALOG_URL as zn, TERMINAL_FOCUS_OUT as zt };
143551
+ export { handleTitleCommand as $, isOrphanedToolCallError as $n, appendStreamingArgsPreview as $t, renderDiffLinesClustered as A, saveTuiConfig as An, DISABLE_TERMINAL_THEME_REPORTING as At, BackgroundAgentStatusComponent as B, DEFAULT_CATALOG_URL as Bn, TERMINAL_THEME_DARK as Bt, handleRevokeCommand as C, isEmbeddingModelCached as Cn, createMarkdownTheme as Ct, toggleEmptySessionHint as D, TuiConfigParseError as Dn, detectTerminalTheme as Dt, isTurnElapsedEnabled as E, PULSE_WAVE_FRAMES as En, getColorPalette as Et, estimateTokens as F, detectInstallSource as Fn, OSC11_RESPONSE_PREFIX as Ft, getBreathingFrame as G, appendSessionIndexEntry as Gn, lerpGradient as Gt, AgentGroupComponent as H, saveCatalogCache as Hn, isBusy as Ht, getSharedSpeedTracker as I, CLI_COMMAND_NAME as In, OSC11_RESPONSE_PREFIX_NO_ESC as It, refineGoal as J, MemoryMemoStore as Jn, handleConnectCommand as Jt, resetBreathingClock as K, MCP_OAUTH_AUTHORIZATION_URL_TOOL_UPDATE as Kn, handleTraceCommand as Kt, SkillActivationComponent as L, CLI_UI_MODE as Ln, QUERY_TERMINAL_THEME as Lt, langFromPath as M, getDataDir as Mn, ENABLE_TERMINAL_THEME_REPORTING as Mt, CachedContainer as N, getInputHistoryFile as Nn, OSC11_QUERY as Nt, ToolCallComponent as O, TuiLikePreferencesSchema as On, parseOsc11BackgroundTheme as Ot, ThinkingComponent as P, getLogDir as Pn, OSC11_RESPONSE as Pt, handleInitCommand as Q, isScreamError as Qn, STATUS_BULLET as Qt, ReadGroupComponent as R, CLI_USER_AGENT_PRODUCT as Rn, TERMINAL_FOCUS_IN as Rt, getDaemonInstructions as S, getKnowledgeStore as Sn, createEditorTheme as St, isEmptySessionHintDismissed as T, PIXEL_PULSE_FRAMES as Tn, contrastTextHex as Tt, WelcomeComponent as U, ScreamHarness as Un, isStreaming as Ut, AssistantMessageComponent as V, fetchCatalog as Vn, TERMINAL_THEME_LIGHT as Vt, BREATHE_CYCLE_MS as W, encodeWorkDirKey as Wn, FooterComponent as Wt, handleExportMdCommand as X, log as Xn, printableChar as Xt, handleExportDebugZipCommand as Y, flushDiagnosticLogs as Yn, handleLogoutCommand as Yt, handleForkCommand as Z, resolveGlobalLogPath as Zn, INTERJECTION_BULLET as Zt, refreshUpdateCache as _, buildSkillSlashCommands as _n, supportsBalance as _t, handleExtensionCommand as a, stringValue as an, handleCompactCommand as at, readJsonlFile as b, isExperimentalFlagEnabled as bn, showUsage as bt, hasDispose as c, EMPTY_SESSION_HINT_URL as cn, handleModelCommand as ct, formatMemoryMemoForInjection as d, SESSION_TIPS as dn, handleWolfpackCommand as dt, argsRecord as en, ErrorCodes as er, toTerminalHyperlink as et, handleMemoryCommand as f, TIP_ROTATION_INTERVAL_MS as fn, handleYoloCommand as ft, selectUpdateTarget as g, getNoActiveSessionMessage as gn, refreshProviderBalance as gt, handleUpdateCommand as h, getLlmNotSetMessage as hn, showSettingsSelector as ht, buildRoleAdditionalText as i, serializeToolResultOutput as in, handleBotCommand as it, highlightLines as j, detectShellEnvironment as jn, ENABLE_TERMINAL_FOCUS_REPORTING as jt, renderDiffLines as k, loadTuiConfig as kn, DISABLE_TERMINAL_FOCUS_REPORTING as kt, isPlanExpandable as l, EXIT_CONFIRM_WINDOW_MS as ln, handlePlanCommand as lt, handleMcpCommand as m, getCtrlDHint as mn, showPermissionPicker as mt, clearEvalPanelState as n, isTodoItemShape as nn, getModelCycleLevel as nt, handleSkillCommand as o, truncateErrorMessage as on, handleEditorCommand as ot, handleChannelCommand as p, getCtrlCHint as pn, showModelPicker as pt, clearGoalState as q, resolveScreamHome as qn, handleSearchCommand as qt, openUrl as r, parseStreamingArgs as rn, handleAutoCommand as rt, disposeChildren as s, CHARS_PER_TOKEN as sn, handleFusionPlanCommand as st, dispatchInput as t, formatErrorMessage as tn, SCREAM_ERROR_INFO as tr, changeThinkingLevel as tt, MoonLoader as u, MAIN_AGENT_ID$1 as un, handleThemeCommand as ut, readUpdateCache as v, BUILTIN_SLASH_COMMANDS as vn, clearInfoPanelState as vt, UserMessageComponent as w, startManualEmbeddingDownload as wn, createThemeStyles as wt, handleCcCommand as x, setExperimentalFlags as xn, resolveThemeSync as xt, appendJsonlLine as y, sortSlashCommands as yn, showStatusReport as yt, parseReadGroupOutput as z, PRODUCT_NAME as zn, TERMINAL_FOCUS_OUT as zt };
package/dist/main.mjs CHANGED
@@ -6,7 +6,7 @@ const __dirname = __cjsShimDirname(__filename);
6
6
  import "./suppress-sqlite-warning-C2VB0doZ.mjs";
7
7
  //#region src/main.ts
8
8
  try {
9
- (await import("./app-Bbg_nJTR.mjs")).main();
9
+ (await import("./app-N_PRvDIk.mjs")).main();
10
10
  } catch (error) {
11
11
  process.stderr.write(`${error instanceof Error ? error.stack ?? error.message : String(error)}\n`);
12
12
  process.exit(1);