scream-code 0.14.7 → 0.14.8
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.
- package/README.md +3 -0
- package/dist/{app-D_n0flAk.mjs → app-CJCkJpo_.mjs} +27 -20
- package/dist/{dispatch-CmY89ob7.mjs → dispatch-DVJhr5Rj.mjs} +1 -1
- package/dist/{dispatch-MWaAkj2l.mjs → dispatch-usl5yQnT.mjs} +2107 -163
- package/dist/main.mjs +1 -1
- package/package.json +1 -1
- package/dist/{src-C8lOjRbK.mjs → src-C3oCiVNb.mjs} +1 -1
package/README.md
CHANGED
|
@@ -57,6 +57,7 @@ When Scream wants to modify files or run commands, an approval panel pops up —
|
|
|
57
57
|
- **Context Search** — `/search` (Ctrl+Shift+F) full-screen keyword search over the conversation.
|
|
58
58
|
- **High Cache Hit Rate** — per-session HitR in the status bar, tuned across compatible protocols to maximize cache hits without compromising quality.
|
|
59
59
|
- **MCP / Skills / 130+ providers** — all DIY-configurable; ships with browser (46 tools) and macOS desktop automation.
|
|
60
|
+
- **Self-Evolving Plugins** — a built-in `ManagePlugin` tool lets the agent find, make, and install add-on skills/MCP servers itself and hot-apply them to the running session: nothing executes until an approved activate, a circuit breaker reclaims a plugin after repeated failures, immune memory warns before reinstalling a source that already broke, and upgrades keep a rollback-ready backup.
|
|
60
61
|
- **Remote Control** — drive Scream from WeChat, Feishu, Slack, DingTalk, QQ, Telegram, Discord via cc-connect.
|
|
61
62
|
|
|
62
63
|
### Slash Commands
|
|
@@ -134,6 +135,8 @@ The browser UI shares the same agent-core as the TUI — zero feature loss. Mult
|
|
|
134
135
|
|
|
135
136
|
Website: [scream.chat](https://scream.chat)
|
|
136
137
|
|
|
138
|
+
- **Self-Evolution manual** — walk through making, installing, tripping, and rolling back a plugin: `packages/agent-core/docs/self-evolution-e2e.md`.
|
|
139
|
+
|
|
137
140
|
### Contributing
|
|
138
141
|
|
|
139
142
|
Free and open — forks, feedback and pull requests are welcome. Scream is a lightweight agent foundation: maximize the model's own capability, don't over-constrain it with framework. Inspired by pi, pi-tui, gork, kimicli, Gemini, ohmypi, zero and others.
|
|
@@ -4,7 +4,7 @@ import { dirname as __cjsShimDirname } from 'node:path';
|
|
|
4
4
|
const __filename = __cjsShimFileURLToPath(import.meta.url);
|
|
5
5
|
const __dirname = __cjsShimDirname(__filename);
|
|
6
6
|
import "./suppress-sqlite-warning-C2VB0doZ.mjs";
|
|
7
|
-
import { $t as isTodoItemShape, A as renderDiffLinesClustered, An as CLI_COMMAND_NAME, At as ENABLE_TERMINAL_FOCUS_REPORTING, B as BackgroundAgentStatusComponent, Bn as MemoryMemoStore, Bt as TERMINAL_THEME_LIGHT, Cn as loadTuiConfig, Ct as createThemeStyles, D as toggleEmptySessionHint, Dn as getInputHistoryFile, Dt as parseOsc11BackgroundTheme, E as isTurnElapsedEnabled, En as getDataDir, Et as detectTerminalTheme, F as estimateTokens, Fn as fetchCatalog, Ft as OSC11_RESPONSE_PREFIX_NO_ESC, G as getBreathingFrame, Gn as isOrphanedToolCallError, H as AgentGroupComponent, Hn as log, Ht as isStreaming, I as getSharedSpeedTracker, In as saveCatalogCache, It as QUERY_TERMINAL_THEME, J as refineGoal, Jt as printableChar, K as resetBreathingClock, Kn as ErrorCodes, L as SkillActivationComponent, Ln as ScreamHarness, Lt as TERMINAL_FOCUS_IN, M as langFromPath, Mn as CLI_USER_AGENT_PRODUCT, Mt as OSC11_QUERY, N as CachedContainer, Nn as PRODUCT_NAME, Nt as OSC11_RESPONSE, O as ToolCallComponent, On as getLogDir, Ot as DISABLE_TERMINAL_FOCUS_REPORTING, P as ThinkingComponent, Pn as DEFAULT_CATALOG_URL, Pt as OSC11_RESPONSE_PREFIX, Qt as formatErrorMessage, R as ReadGroupComponent, Rt as TERMINAL_FOCUS_OUT, S as getDaemonInstructions, Sn as TuiLikePreferencesSchema, St as createMarkdownTheme, T as isEmptySessionHintDismissed, Tn as detectShellEnvironment, Tt as getColorPalette, U as WelcomeComponent, Un as resolveGlobalLogPath, Ut as FooterComponent, V as AssistantMessageComponent, Vn as flushDiagnosticLogs, Vt as isBusy, W as BREATHE_CYCLE_MS, Wn as isScreamError, Xt as appendStreamingArgsPreview, Yt as STATUS_BULLET, Zt as argsRecord, _ as refreshUpdateCache, _n as isExperimentalFlagEnabled, _t as clearInfoPanelState, an as EMPTY_SESSION_HINT_URL, b as readJsonlFile, bn as PULSE_WAVE_FRAMES, bt as resolveThemeSync, c as hasDispose, cn as SESSION_TIPS, ct as handlePlanCommand, d as formatMemoryMemoForInjection, dn as getCtrlDHint, en as parseStreamingArgs, et as toTerminalHyperlink, fn as getLlmNotSetMessage, g as selectUpdateTarget, gn as sortSlashCommands, gt as supportsBalance, hn as BUILTIN_SLASH_COMMANDS, ht as refreshProviderBalance, i as buildRoleAdditionalText, in as CHARS_PER_TOKEN, j as highlightLines, jn as CLI_UI_MODE, jt as ENABLE_TERMINAL_THEME_REPORTING, k as renderDiffLines, kn as detectInstallSource, kt as DISABLE_TERMINAL_THEME_REPORTING, l as isPlanExpandable, ln as TIP_ROTATION_INTERVAL_MS, mn as buildSkillSlashCommands, n as clearEvalPanelState, nn as stringValue, nt as getModelCycleLevel, on as EXIT_CONFIRM_WINDOW_MS, ot as handleFusionPlanCommand, pn as getNoActiveSessionMessage, q as clearGoalState, qn as SCREAM_ERROR_INFO, r as openUrl, rn as truncateErrorMessage, s as disposeChildren, sn as MAIN_AGENT_ID, t as dispatchInput, tn as serializeToolResultOutput, tt as changeThinkingLevel, u as MoonLoader, un as getCtrlCHint, v as readUpdateCache, vn as setExperimentalFlags, w as UserMessageComponent, wn as saveTuiConfig, wt as contrastTextHex, xn as TuiConfigParseError, xt as createEditorTheme, y as appendJsonlLine, yn as PIXEL_PULSE_FRAMES, z as parseReadGroupOutput, zn as resolveScreamHome, zt as TERMINAL_THEME_DARK } from "./dispatch-
|
|
7
|
+
import { $t as isTodoItemShape, A as renderDiffLinesClustered, An as CLI_COMMAND_NAME, At as ENABLE_TERMINAL_FOCUS_REPORTING, B as BackgroundAgentStatusComponent, Bn as MemoryMemoStore, Bt as TERMINAL_THEME_LIGHT, Cn as loadTuiConfig, Ct as createThemeStyles, D as toggleEmptySessionHint, Dn as getInputHistoryFile, Dt as parseOsc11BackgroundTheme, E as isTurnElapsedEnabled, En as getDataDir, Et as detectTerminalTheme, F as estimateTokens, Fn as fetchCatalog, Ft as OSC11_RESPONSE_PREFIX_NO_ESC, G as getBreathingFrame, Gn as isOrphanedToolCallError, H as AgentGroupComponent, Hn as log, Ht as isStreaming, I as getSharedSpeedTracker, In as saveCatalogCache, It as QUERY_TERMINAL_THEME, J as refineGoal, Jt as printableChar, K as resetBreathingClock, Kn as ErrorCodes, L as SkillActivationComponent, Ln as ScreamHarness, Lt as TERMINAL_FOCUS_IN, M as langFromPath, Mn as CLI_USER_AGENT_PRODUCT, Mt as OSC11_QUERY, N as CachedContainer, Nn as PRODUCT_NAME, Nt as OSC11_RESPONSE, O as ToolCallComponent, On as getLogDir, Ot as DISABLE_TERMINAL_FOCUS_REPORTING, P as ThinkingComponent, Pn as DEFAULT_CATALOG_URL, Pt as OSC11_RESPONSE_PREFIX, Qt as formatErrorMessage, R as ReadGroupComponent, Rt as TERMINAL_FOCUS_OUT, S as getDaemonInstructions, Sn as TuiLikePreferencesSchema, St as createMarkdownTheme, T as isEmptySessionHintDismissed, Tn as detectShellEnvironment, Tt as getColorPalette, U as WelcomeComponent, Un as resolveGlobalLogPath, Ut as FooterComponent, V as AssistantMessageComponent, Vn as flushDiagnosticLogs, Vt as isBusy, W as BREATHE_CYCLE_MS, Wn as isScreamError, Xt as appendStreamingArgsPreview, Yt as STATUS_BULLET, Zt as argsRecord, _ as refreshUpdateCache, _n as isExperimentalFlagEnabled, _t as clearInfoPanelState, an as EMPTY_SESSION_HINT_URL, b as readJsonlFile, bn as PULSE_WAVE_FRAMES, bt as resolveThemeSync, c as hasDispose, cn as SESSION_TIPS, ct as handlePlanCommand, d as formatMemoryMemoForInjection, dn as getCtrlDHint, en as parseStreamingArgs, et as toTerminalHyperlink, fn as getLlmNotSetMessage, g as selectUpdateTarget, gn as sortSlashCommands, gt as supportsBalance, hn as BUILTIN_SLASH_COMMANDS, ht as refreshProviderBalance, i as buildRoleAdditionalText, in as CHARS_PER_TOKEN, j as highlightLines, jn as CLI_UI_MODE, jt as ENABLE_TERMINAL_THEME_REPORTING, k as renderDiffLines, kn as detectInstallSource, kt as DISABLE_TERMINAL_THEME_REPORTING, l as isPlanExpandable, ln as TIP_ROTATION_INTERVAL_MS, mn as buildSkillSlashCommands, n as clearEvalPanelState, nn as stringValue, nt as getModelCycleLevel, on as EXIT_CONFIRM_WINDOW_MS, ot as handleFusionPlanCommand, pn as getNoActiveSessionMessage, q as clearGoalState, qn as SCREAM_ERROR_INFO, r as openUrl, rn as truncateErrorMessage, s as disposeChildren, sn as MAIN_AGENT_ID, t as dispatchInput, tn as serializeToolResultOutput, tt as changeThinkingLevel, u as MoonLoader, un as getCtrlCHint, v as readUpdateCache, vn as setExperimentalFlags, w as UserMessageComponent, wn as saveTuiConfig, wt as contrastTextHex, xn as TuiConfigParseError, xt as createEditorTheme, y as appendJsonlLine, yn as PIXEL_PULSE_FRAMES, z as parseReadGroupOutput, zn as resolveScreamHome, zt as TERMINAL_THEME_DARK } from "./dispatch-usl5yQnT.mjs";
|
|
8
8
|
import { a as setLocale, o as t } from "./text-input-dialog-B0yHChBj.mjs";
|
|
9
9
|
import { createRequire } from "node:module";
|
|
10
10
|
import { randomUUID } from "node:crypto";
|
|
@@ -17,8 +17,8 @@ import { z } from "zod";
|
|
|
17
17
|
import { exec, execFile, execSync, spawn, spawnSync } from "node:child_process";
|
|
18
18
|
import { promisify } from "node:util";
|
|
19
19
|
import { homedir, tmpdir } from "node:os";
|
|
20
|
-
import { createServer } from "node:http";
|
|
21
20
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
21
|
+
import { createServer } from "node:http";
|
|
22
22
|
import process$1 from "node:process";
|
|
23
23
|
import { Command, Option } from "commander";
|
|
24
24
|
import { createInterface } from "node:readline/promises";
|
|
@@ -30,7 +30,7 @@ function optionalBuildString(value) {
|
|
|
30
30
|
return typeof value === "string" && value.length > 0 ? value : void 0;
|
|
31
31
|
}
|
|
32
32
|
const SCREAM_BUILD_INFO = {
|
|
33
|
-
version: optionalBuildString("0.14.
|
|
33
|
+
version: optionalBuildString("0.14.8"),
|
|
34
34
|
channel: optionalBuildString(""),
|
|
35
35
|
commit: optionalBuildString(""),
|
|
36
36
|
buildTarget: optionalBuildString("darwin-arm64")
|
|
@@ -9498,25 +9498,31 @@ var SessionManager$1 = class {
|
|
|
9498
9498
|
return { switched: true };
|
|
9499
9499
|
}
|
|
9500
9500
|
async switchToSession(session, statusMessage) {
|
|
9501
|
-
this.
|
|
9502
|
-
|
|
9503
|
-
await this.syncRuntimeState(session);
|
|
9504
|
-
this.host.refreshSessionTitle();
|
|
9501
|
+
if (this.host.state.appState.isSwitchingSession) return;
|
|
9502
|
+
this.host.setAppState({ isSwitchingSession: true });
|
|
9505
9503
|
try {
|
|
9506
|
-
|
|
9507
|
-
|
|
9508
|
-
|
|
9509
|
-
|
|
9510
|
-
|
|
9511
|
-
|
|
9512
|
-
|
|
9513
|
-
this.host.
|
|
9504
|
+
this.resetSessionRuntime();
|
|
9505
|
+
await this.setSession(session);
|
|
9506
|
+
await this.syncRuntimeState(session);
|
|
9507
|
+
this.host.refreshSessionTitle();
|
|
9508
|
+
try {
|
|
9509
|
+
await this.host.refreshSkillCommands(this.host.session);
|
|
9510
|
+
} catch {}
|
|
9511
|
+
this.host.clearTranscriptAndRedraw();
|
|
9512
|
+
try {
|
|
9513
|
+
await this.host.sessionReplay.hydrateFromReplay(session);
|
|
9514
|
+
} catch (error) {
|
|
9515
|
+
const msg = formatErrorMessage(error);
|
|
9516
|
+
this.host.showError(t("session.replay_failed", { msg }));
|
|
9517
|
+
} finally {
|
|
9518
|
+
this.host.sessionEventHandler.startSubscription();
|
|
9519
|
+
}
|
|
9520
|
+
const resumeState = session.getResumeState();
|
|
9521
|
+
if (resumeState?.warning !== void 0) this.host.showStatus(t("session.resume_warning", { warning: resumeState.warning }), this.host.state.theme.colors.warning);
|
|
9522
|
+
this.host.showStatus(statusMessage);
|
|
9514
9523
|
} finally {
|
|
9515
|
-
this.host.
|
|
9524
|
+
this.host.setAppState({ isSwitchingSession: false });
|
|
9516
9525
|
}
|
|
9517
|
-
const resumeState = session.getResumeState();
|
|
9518
|
-
if (resumeState?.warning !== void 0) this.host.showStatus(t("session.resume_warning", { warning: resumeState.warning }), this.host.state.theme.colors.warning);
|
|
9519
|
-
this.host.showStatus(statusMessage);
|
|
9520
9526
|
}
|
|
9521
9527
|
async createNewSession() {
|
|
9522
9528
|
if (this.host.state.appState.isReplaying) {
|
|
@@ -11737,6 +11743,7 @@ function createInitialAppState(input) {
|
|
|
11737
11743
|
lastCompactionFinishedAt: void 0,
|
|
11738
11744
|
autoCompactionCount: 0,
|
|
11739
11745
|
isReplaying: false,
|
|
11746
|
+
isSwitchingSession: false,
|
|
11740
11747
|
streamingPhase: "idle",
|
|
11741
11748
|
streamingStartTime: 0,
|
|
11742
11749
|
theme: input.tuiConfig.theme,
|
|
@@ -12248,7 +12255,7 @@ var ScreamTUI = class {
|
|
|
12248
12255
|
const card = new OnboardingCardComponent({
|
|
12249
12256
|
colors: this.state.theme.colors,
|
|
12250
12257
|
onConfigure: () => {
|
|
12251
|
-
import("./dispatch-
|
|
12258
|
+
import("./dispatch-DVJhr5Rj.mjs").then(({ handleConnectCommand }) => handleConnectCommand(this, "")).finally(() => {
|
|
12252
12259
|
this.restoreEditor();
|
|
12253
12260
|
});
|
|
12254
12261
|
},
|
|
@@ -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 { Kt as handleConnectCommand } from "./dispatch-
|
|
6
|
+
import { Kt as handleConnectCommand } from "./dispatch-usl5yQnT.mjs";
|
|
7
7
|
export { handleConnectCommand };
|