scream-code 0.15.6 → 0.15.7
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 +6 -3
- package/dist/{app-Y2DCZTWP.mjs → app-BWXezRMl.mjs} +10 -8
- package/dist/{dispatch-jQiqBKV2.mjs → dispatch-BJ6GyqMS.mjs} +645 -82
- package/dist/{dispatch-CkPcMk4b.mjs → dispatch-CPK1Lkxu.mjs} +1 -1
- package/dist/main.mjs +1 -1
- package/dist/public/assets/{index-ChLLVxTo.js → index-Bvn-ixUo.js} +2 -2
- package/dist/public/assets/index-Bvn-ixUo.js.map +1 -0
- package/dist/public/index.html +1 -1
- package/dist/{text-input-dialog-LOMBSusF.mjs → text-input-dialog-CnQM0DYj.mjs} +21 -11
- package/dist/{text-input-dialog-DJwYNHcs.mjs → text-input-dialog-MAm2GHmm.mjs} +1 -1
- package/package.json +1 -1
- package/dist/public/assets/index-ChLLVxTo.js.map +0 -1
package/README.md
CHANGED
|
@@ -48,9 +48,11 @@ When Scream wants to modify files or run commands, an approval panel pops up —
|
|
|
48
48
|
|
|
49
49
|
### Features
|
|
50
50
|
|
|
51
|
-
- **Goal Loop** — autonomous, goal-driven execution with an independent judge agent and token/time
|
|
51
|
+
- **Goal Loop** — autonomous, goal-driven execution with an independent judge agent. Rejections must name concrete gaps; evidence gaps self-repair for up to 3 rounds, subjective calls park for your decision (with a written report), and token/time budgets bound the loop.
|
|
52
|
+
- **TUI Sidebar** — four live panels: workspace Git diff summary (green adds / red deletes), per-session token accounting (cache-hit / cache-miss / output), 8 sub-agent slots with real-time states (idle / working / outputting / messaging / reworking), and Goal status with judge state (awaiting / judging / adjudicated).
|
|
52
53
|
- **Wolfpack** — unlimited parallel sub-agents (coder / explore / plan / verify / reviewer / oracle / writer / worker).
|
|
53
|
-
- **Subagent Collaboration** —
|
|
54
|
+
- **Subagent Collaboration** — delegate to specialist sub-agents and stay in control: they **ask the lead agent for guidance mid-task instead of guessing when blocked**, request a handoff when a different specialist fits, take mid-task redirects or follow-up notes, return structured JSON when asked, and can be confined to a safe mode (read-only / edit-only / commands-allowed) so they never overstep your limits.
|
|
55
|
+
- **Bot Mode (`/bot`)** — unattended execution: reversible work (reads, in-workspace edits, read-only commands) runs freely, while irreversible actions (push / publish / delete / sensitive files / unclassified operations) are automatically denied and queued for your review — with the reason fed back to the model so it stops retrying.
|
|
54
56
|
- **Persistent Memory** — structured pain-point memory with FTS5 full-text + tag + vector retrieval, shared across sessions.
|
|
55
57
|
- **Local Knowledge Graph** — SAG-based visual knowledge base for multi-hop reasoning; import your own docs anytime.
|
|
56
58
|
- **RLM Mode** — persistent Python workspace for long-running tasks, with unlimited recursive sub-agents.
|
|
@@ -63,7 +65,7 @@ When Scream wants to modify files or run commands, an approval panel pops up —
|
|
|
63
65
|
|
|
64
66
|
### Slash Commands
|
|
65
67
|
|
|
66
|
-
Type `/` in the input to browse. All
|
|
68
|
+
Type `/` in the input to browse. All 48 commands:
|
|
67
69
|
|
|
68
70
|
<details>
|
|
69
71
|
<summary>Full command reference (click to expand)</summary>
|
|
@@ -74,6 +76,7 @@ Type `/` in the input to browse. All 47 commands:
|
|
|
74
76
|
| `/auto` | Toggle auto permission mode |
|
|
75
77
|
| `/yes` (`/yolo`) | Toggle auto-approve mode |
|
|
76
78
|
| `/ask` | Toggle read-only Q&A mode |
|
|
79
|
+
| `/bot` | Unattended bot mode: reversible actions auto-approve, irreversible ones park for review |
|
|
77
80
|
| `/goal [objective]` | View/manage auto goals |
|
|
78
81
|
| `/wolfpack` (`/wp`) | Toggle wolfpack mode — auto-approve + batch concurrency |
|
|
79
82
|
| `/rlm` | RLM mode: persistent Python workspace, unlimited recursive subagents |
|
|
@@ -4,8 +4,8 @@ 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
|
|
8
|
-
import { a as setLocale, i as getLocale, o as t } from "./text-input-dialog-
|
|
7
|
+
import { $t as argsRecord, A as renderDiffLinesClustered, An as detectShellEnvironment, At as DISABLE_TERMINAL_THEME_REPORTING, B as BackgroundAgentStatusComponent, Bn as fetchCatalog, Bt as TERMINAL_THEME_DARK, Cn as startManualEmbeddingDownload, Ct as createMarkdownTheme, D as toggleEmptySessionHint, Dn as TuiLikePreferencesSchema, Dt as detectTerminalTheme, E as isTurnElapsedEnabled, En as TuiConfigParseError, Et as getColorPalette, F as estimateTokens, Fn as CLI_COMMAND_NAME, Ft as OSC11_RESPONSE_PREFIX, G as getBreathingFrame, Gn as MemoryMemoStore, Gt as lerpGradient, H as AgentGroupComponent, Hn as ScreamHarness, Ht as isBusy, I as getSharedSpeedTracker, In as CLI_UI_MODE, It as OSC11_RESPONSE_PREFIX_NO_ESC, J as refineGoal, Jn as resolveGlobalLogPath, K as resetBreathingClock, Kn as flushDiagnosticLogs, L as SkillActivationComponent, Ln as CLI_USER_AGENT_PRODUCT, Lt as QUERY_TERMINAL_THEME, M as langFromPath, Mn as getInputHistoryFile, Mt as ENABLE_TERMINAL_THEME_REPORTING, N as CachedContainer, Nn as getLogDir, Nt as OSC11_QUERY, O as ToolCallComponent, On as loadTuiConfig, Ot as parseOsc11BackgroundTheme, P as ThinkingComponent, Pn as detectInstallSource, Pt as OSC11_RESPONSE, Qn as SCREAM_ERROR_INFO, Qt as appendStreamingArgsPreview, R as ReadGroupComponent, Rn as PRODUCT_NAME, Rt as TERMINAL_FOCUS_IN, S as getDaemonInstructions, Sn as isEmbeddingModelCached, St as createEditorTheme, T as isEmptySessionHintDismissed, Tn as PULSE_WAVE_FRAMES, Tt as contrastTextHex, U as WelcomeComponent, Ut as isStreaming, V as AssistantMessageComponent, Vn as saveCatalogCache, Vt as TERMINAL_THEME_LIGHT, W as BREATHE_CYCLE_MS, Wn as resolveScreamHome, Wt as FooterComponent, Xn as isOrphanedToolCallError, Xt as printableChar, Yn as isScreamError, Zn as ErrorCodes, Zt as STATUS_BULLET, _ as refreshUpdateCache, _n as BUILTIN_SLASH_COMMANDS, _t as supportsBalance, an as truncateErrorMessage, b as readJsonlFile, bn as setExperimentalFlags, c as hasDispose, cn as EXIT_CONFIRM_WINDOW_MS, d as formatMemoryMemoForInjection, dn as TIP_ROTATION_INTERVAL_MS, en as formatErrorMessage, et as toTerminalHyperlink, fn as getCtrlCHint, g as selectUpdateTarget, gn as buildSkillSlashCommands, gt as refreshProviderBalance, hn as getNoActiveSessionMessage, i as buildRoleAdditionalText, in as stringValue, j as highlightLines, jn as getDataDir, jt as ENABLE_TERMINAL_FOCUS_REPORTING, k as renderDiffLines, kn as saveTuiConfig, kt as DISABLE_TERMINAL_FOCUS_REPORTING, l as isPlanExpandable, ln as MAIN_AGENT_ID, lt as handlePlanCommand, mn as getLlmNotSetMessage, n as clearEvalPanelState, nn as parseStreamingArgs, nt as getModelCycleLevel, on as CHARS_PER_TOKEN, pn as getCtrlDHint, q as clearGoalState, qn as log, r as openUrl, rn as serializeToolResultOutput, s as disposeChildren, sn as EMPTY_SESSION_HINT_URL, st as handleFusionPlanCommand, t as dispatchInput, tn as isTodoItemShape, tt as changeThinkingLevel, u as MoonLoader, un as SESSION_TIPS, v as readUpdateCache, vn as sortSlashCommands, vt as clearInfoPanelState, w as UserMessageComponent, wn as PIXEL_PULSE_FRAMES, wt as createThemeStyles, xn as getKnowledgeStore, xt as resolveThemeSync, y as appendJsonlLine, yn as isExperimentalFlagEnabled, z as parseReadGroupOutput, zn as DEFAULT_CATALOG_URL, zt as TERMINAL_FOCUS_OUT } from "./dispatch-BJ6GyqMS.mjs";
|
|
8
|
+
import { a as setLocale, i as getLocale, o as t } from "./text-input-dialog-CnQM0DYj.mjs";
|
|
9
9
|
import { createRequire } from "node:module";
|
|
10
10
|
import { randomBytes, randomUUID, scryptSync, timingSafeEqual } from "node:crypto";
|
|
11
11
|
import { access, chmod, mkdir, mkdtemp, readFile, readdir, realpath, rename, rm, stat, unlink, writeFile } from "node:fs/promises";
|
|
@@ -32,7 +32,7 @@ function optionalBuildString(value) {
|
|
|
32
32
|
return typeof value === "string" && value.length > 0 ? value : void 0;
|
|
33
33
|
}
|
|
34
34
|
const SCREAM_BUILD_INFO = {
|
|
35
|
-
version: optionalBuildString("0.15.
|
|
35
|
+
version: optionalBuildString("0.15.7"),
|
|
36
36
|
channel: optionalBuildString(""),
|
|
37
37
|
commit: optionalBuildString(""),
|
|
38
38
|
buildTarget: optionalBuildString("darwin-arm64")
|
|
@@ -13572,7 +13572,7 @@ var ScreamTUI = class {
|
|
|
13572
13572
|
const card = new OnboardingCardComponent({
|
|
13573
13573
|
colors: this.state.theme.colors,
|
|
13574
13574
|
onConfigure: () => {
|
|
13575
|
-
import("./dispatch-
|
|
13575
|
+
import("./dispatch-CPK1Lkxu.mjs").then(({ handleConnectCommand }) => handleConnectCommand(this, "")).finally(() => {
|
|
13576
13576
|
this.restoreEditor();
|
|
13577
13577
|
onDone?.();
|
|
13578
13578
|
});
|
|
@@ -16674,8 +16674,9 @@ var WebSession = class {
|
|
|
16674
16674
|
}
|
|
16675
16675
|
return;
|
|
16676
16676
|
case "auto":
|
|
16677
|
-
case "yes":
|
|
16678
|
-
|
|
16677
|
+
case "yes":
|
|
16678
|
+
case "bot": {
|
|
16679
|
+
const mode = command === "auto" ? "auto" : command === "bot" ? "bot" : "yolo";
|
|
16679
16680
|
try {
|
|
16680
16681
|
await this.session.setPermission(mode);
|
|
16681
16682
|
this.permission = mode;
|
|
@@ -17412,9 +17413,10 @@ var SessionManager = class {
|
|
|
17412
17413
|
list() {
|
|
17413
17414
|
return Array.from(this.sessions.values()).map((s) => s.getListItem()).toSorted((a, b) => b.createdAt - a.createdAt);
|
|
17414
17415
|
}
|
|
17415
|
-
/** True when any session has an agent turn (main or subagent) in flight
|
|
17416
|
+
/** True when any session has an agent turn (main or subagent) in flight, or
|
|
17417
|
+
* any session runs in unattended bot mode (defers idle exit). */
|
|
17416
17418
|
anyBusy() {
|
|
17417
|
-
return Array.from(this.sessions.values()).some((s) => s.isTurnActive);
|
|
17419
|
+
return Array.from(this.sessions.values()).some((s) => s.isTurnActive || s.permission === "bot");
|
|
17418
17420
|
}
|
|
17419
17421
|
async delete(sessionId) {
|
|
17420
17422
|
const ws = this.sessions.get(sessionId);
|