scream-code 0.14.5 → 0.14.6
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/dist/{app-4wRRcsTF.mjs → app-755L4Xpi.mjs} +6 -5
- package/dist/{dispatch-BSLRpoBA.mjs → dispatch-DEFMbHSe.mjs} +36 -26
- package/dist/{dispatch-DHFfsRy8.mjs → dispatch-Vy7eCkPt.mjs} +1 -1
- package/dist/main.mjs +1 -1
- package/dist/{text-input-dialog-Ciit7nAM.mjs → text-input-dialog-C7gjr4Gk.mjs} +4 -4
- package/dist/{text-input-dialog-BLM32jyJ.mjs → text-input-dialog-FGVh3qGR.mjs} +1 -1
- package/package.json +1 -1
|
@@ -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 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-
|
|
8
|
-
import { a as setLocale, o as t } from "./text-input-dialog-
|
|
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-DEFMbHSe.mjs";
|
|
8
|
+
import { a as setLocale, o as t } from "./text-input-dialog-C7gjr4Gk.mjs";
|
|
9
9
|
import { createRequire } from "node:module";
|
|
10
10
|
import { randomUUID } from "node:crypto";
|
|
11
11
|
import { access, mkdir, mkdtemp, readFile, readdir, realpath, rm, unlink, writeFile } from "node:fs/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.6"),
|
|
34
34
|
channel: optionalBuildString(""),
|
|
35
35
|
commit: optionalBuildString(""),
|
|
36
36
|
buildTarget: optionalBuildString("darwin-arm64")
|
|
@@ -2701,7 +2701,8 @@ var SessionEventHandler = class {
|
|
|
2701
2701
|
output: serializeToolResultOutput(event.output),
|
|
2702
2702
|
is_error: event.isError,
|
|
2703
2703
|
synthetic: event.synthetic,
|
|
2704
|
-
display: event.display
|
|
2704
|
+
display: event.display,
|
|
2705
|
+
message: event.message
|
|
2705
2706
|
};
|
|
2706
2707
|
streamingUI.completeToolResult(event.toolCallId, resultData);
|
|
2707
2708
|
if (canTransitionTo(this.host.state.appState.streamingPhase, "waiting")) this.host.setAppState({ streamingPhase: "waiting" });
|
|
@@ -12189,7 +12190,7 @@ var ScreamTUI = class {
|
|
|
12189
12190
|
const card = new OnboardingCardComponent({
|
|
12190
12191
|
colors: this.state.theme.colors,
|
|
12191
12192
|
onConfigure: () => {
|
|
12192
|
-
import("./dispatch-
|
|
12193
|
+
import("./dispatch-Vy7eCkPt.mjs").then(({ handleConnectCommand }) => handleConnectCommand(this, "")).finally(() => {
|
|
12193
12194
|
this.restoreEditor();
|
|
12194
12195
|
});
|
|
12195
12196
|
},
|
|
@@ -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, x as dirname$2, y as KnowledgeStore } from "./src-BH9W5k24.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-
|
|
9
|
+
import { a as setLocale, i as getLocale, n as assertScreamHostIdentity, o as t, r as createScreamDefaultHeaders, t as TextInputDialogComponent } from "./text-input-dialog-C7gjr4Gk.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";
|
|
@@ -64654,7 +64654,7 @@ function renderPrompt(template, vars) {
|
|
|
64654
64654
|
}
|
|
64655
64655
|
//#endregion
|
|
64656
64656
|
//#region ../../packages/agent-core/src/tools/builtin/collaboration/skill-tool.md
|
|
64657
|
-
var skill_tool_default = "Invoke a registered skill from the current skill listing. BLOCKING REQUIREMENT: when a skill from the listing matches the user's request, you MUST call this tool (not free-form text). Do NOT call the same skill repeatedly inside one turn — recursive depth is capped at {{ MAX_SKILL_QUERY_DEPTH }}.\n\n## Currently model-invocable skills\n{{ AVAILABLE_SKILLS }}\nThis list is a construction-time snapshot; for the live catalog inspect the skill registry.";
|
|
64657
|
+
var skill_tool_default = "Invoke a registered skill from the current skill listing. BLOCKING REQUIREMENT: when a skill from the listing matches the user's request, you MUST call this tool (not free-form text). Do NOT call the same skill repeatedly inside one turn — recursive depth is capped at {{ MAX_SKILL_QUERY_DEPTH }}.\n\n## Currently model-invocable skills\n{{ AVAILABLE_SKILLS }}\nThis list is a construction-time snapshot; for the live catalog inspect the skill registry.\n\n## Matching guide\n\n- A skill matches when the user's request involves the scenarios/trigger conditions listed in the skill's \"When to use\" line.\n- Look for: (a) keywords in the user's request that match the skill's trigger phrases, (b) the task type or scenario described in the skill's \"When to use\", (c) similar requests the skill was designed for.\n- If a skill seems relevant, invoke it first — if it doesn't fit, you can always fall back to doing it yourself.";
|
|
64658
64658
|
/** Max skills to list inline in the tool description; rest are summarized. */
|
|
64659
64659
|
const MAX_INLINE_SKILLS = 15;
|
|
64660
64660
|
/** Max description length per skill line. */
|
|
@@ -67623,7 +67623,7 @@ Analyze the conversation transcript and the user's explicit guidance, then produ
|
|
|
67623
67623
|
The package must contain:
|
|
67624
67624
|
- name: kebab-case skill name. Prefer the user's nameHint if it is valid kebab-case; otherwise derive a concise name from the purpose.
|
|
67625
67625
|
- description: one sentence describing when to use this skill.
|
|
67626
|
-
- when-to-use: **required** — 1-2 sentences describing the specific situations/trigger conditions that should make the agent use this skill (e.g. "when the user asks to convert a document to PDF", "when debugging a vitest snapshot failure"
|
|
67626
|
+
- when-to-use: **required** — 1-2 sentences describing the specific situations/trigger conditions that should make the agent use this skill. Must include: (a) concrete trigger phrases/keywords the user might say (e.g. "convert", "PDF", "debug", "snapshot"), (b) the specific scenario or task type (e.g. "document conversion", "test debugging"), (c) avoid vague terms like "when needed" or "when appropriate". Use "When the user [action/request]..." or "When [task type]..." format. Examples: "when the user asks to convert a document to PDF", "when debugging a vitest snapshot failure", "when the user requests to deploy a model gateway". This drives the skill listing's "When to use" line, which is how the model decides to invoke the skill. Never leave it empty.
|
|
67627
67627
|
- content: the complete Markdown body of SKILL.md, following the MANDATORY structure below.
|
|
67628
67628
|
- files: optional supporting files (e.g. scripts, data files) relative to the skill directory. Empty array if none.
|
|
67629
67629
|
|
|
@@ -67786,7 +67786,7 @@ function validateSkillPlan(plan, nameHint) {
|
|
|
67786
67786
|
const normalizedHint = sanitizeSkillName(nameHint);
|
|
67787
67787
|
if (plan.name !== normalizedHint) throw new ScreamError(ErrorCodes.REQUEST_INVALID, `Generated skill name "${plan.name}" does not match the user's requested name "${normalizedHint}". Please use the requested name.`);
|
|
67788
67788
|
}
|
|
67789
|
-
if (plan.whenToUse.trim().length === 0) throw new ScreamError(ErrorCodes.REQUEST_INVALID, "Generated skill plan is missing the required \"whenToUse\" field. Describe the specific situations that should trigger this skill (it powers the skill listing's \"When to use\" line
|
|
67789
|
+
if (plan.whenToUse.trim().length === 0) throw new ScreamError(ErrorCodes.REQUEST_INVALID, "Generated skill plan is missing the required \"whenToUse\" field. Describe the specific situations that should trigger this skill with concrete trigger conditions (e.g. \"when the user asks to convert a document to PDF\") — it powers the skill listing's \"When to use\" line.");
|
|
67790
67790
|
let parsedSkill;
|
|
67791
67791
|
try {
|
|
67792
67792
|
parsedSkill = parseSkillText({
|
|
@@ -68459,11 +68459,16 @@ var EditTool = class {
|
|
|
68459
68459
|
await this.jian.writeText(safePath, materializeModelText(newContent, modelView.lineEndingStyle));
|
|
68460
68460
|
scanCache.clear();
|
|
68461
68461
|
const { notice, hasErrors } = await this.appendDiagnostics(safePath);
|
|
68462
|
-
const output = `Replaced 1 occurrence in ${args.path}
|
|
68462
|
+
const output = `Replaced 1 occurrence in ${args.path}`;
|
|
68463
|
+
const message = notice.length > 0 ? notice : void 0;
|
|
68463
68464
|
return hasErrors ? {
|
|
68464
68465
|
isError: true,
|
|
68465
|
-
output
|
|
68466
|
-
|
|
68466
|
+
output,
|
|
68467
|
+
message
|
|
68468
|
+
} : {
|
|
68469
|
+
output,
|
|
68470
|
+
message
|
|
68471
|
+
};
|
|
68467
68472
|
}
|
|
68468
68473
|
const parts = content.split(args.old_string);
|
|
68469
68474
|
const replacementCount = parts.length - 1;
|
|
@@ -68478,11 +68483,16 @@ var EditTool = class {
|
|
|
68478
68483
|
await this.jian.writeText(safePath, materializeModelText(newContent, modelView.lineEndingStyle));
|
|
68479
68484
|
scanCache.clear();
|
|
68480
68485
|
const { notice, hasErrors } = await this.appendDiagnostics(safePath);
|
|
68481
|
-
const output = `Replaced ${String(replacementCount)} occurrences in ${args.path}
|
|
68486
|
+
const output = `Replaced ${String(replacementCount)} occurrences in ${args.path}`;
|
|
68487
|
+
const message = notice.length > 0 ? notice : void 0;
|
|
68482
68488
|
return hasErrors ? {
|
|
68483
68489
|
isError: true,
|
|
68484
|
-
output
|
|
68485
|
-
|
|
68490
|
+
output,
|
|
68491
|
+
message
|
|
68492
|
+
} : {
|
|
68493
|
+
output,
|
|
68494
|
+
message
|
|
68495
|
+
};
|
|
68486
68496
|
} catch (error) {
|
|
68487
68497
|
if (error?.code === "EISDIR") return {
|
|
68488
68498
|
isError: true,
|
|
@@ -74214,11 +74224,16 @@ var WriteTool = class {
|
|
|
74214
74224
|
scanCache.clear();
|
|
74215
74225
|
const bytesWritten = Buffer.byteLength(args.content, "utf8");
|
|
74216
74226
|
const { notice, hasErrors } = await this.appendDiagnostics(safePath);
|
|
74217
|
-
const output = `${mode === "append" ? "Appended" : "Wrote"} ${String(bytesWritten)} bytes to ${args.path}
|
|
74227
|
+
const output = `${mode === "append" ? "Appended" : "Wrote"} ${String(bytesWritten)} bytes to ${args.path}`;
|
|
74228
|
+
const message = notice.length > 0 ? notice : void 0;
|
|
74218
74229
|
return hasErrors ? {
|
|
74219
74230
|
isError: true,
|
|
74220
|
-
output
|
|
74221
|
-
|
|
74231
|
+
output,
|
|
74232
|
+
message
|
|
74233
|
+
} : {
|
|
74234
|
+
output,
|
|
74235
|
+
message
|
|
74236
|
+
};
|
|
74222
74237
|
} catch (error) {
|
|
74223
74238
|
if (error?.code === "ENOENT") return {
|
|
74224
74239
|
isError: true,
|
|
@@ -97417,7 +97432,8 @@ function mapLoopEvent(event, turnId) {
|
|
|
97417
97432
|
toolCallId: event.toolCallId,
|
|
97418
97433
|
output: event.result.output,
|
|
97419
97434
|
isError: event.result.isError,
|
|
97420
|
-
display: event.result.isError === true ? void 0 : event.result.display
|
|
97435
|
+
display: event.result.isError === true ? void 0 : event.result.display,
|
|
97436
|
+
message: event.result.message
|
|
97421
97437
|
};
|
|
97422
97438
|
case "turn.interrupted":
|
|
97423
97439
|
if (event.activeStep === void 0) return void 0;
|
|
@@ -129510,7 +129526,7 @@ async function guidedGoalSetup(host) {
|
|
|
129510
129526
|
host.showNotice(t("goal.storm_breaker"), t("goal.conflict_loop"));
|
|
129511
129527
|
return;
|
|
129512
129528
|
}
|
|
129513
|
-
const { TextInputDialogComponent } = await import("./text-input-dialog-
|
|
129529
|
+
const { TextInputDialogComponent } = await import("./text-input-dialog-FGVh3qGR.mjs");
|
|
129514
129530
|
const initialDesc = await promptText(host, TextInputDialogComponent, {
|
|
129515
129531
|
title: t("goal.setup_title_initial"),
|
|
129516
129532
|
subtitle: t("goal.setup_desc_hint"),
|
|
@@ -129531,7 +129547,7 @@ async function guidedGoalSetup(host) {
|
|
|
129531
129547
|
await showGoalConfigWizard(host, session, confirmed.trim() || objective, false);
|
|
129532
129548
|
}
|
|
129533
129549
|
async function showGoalConfigWizard(host, session, objective, replace) {
|
|
129534
|
-
const { TextInputDialogComponent } = await import("./text-input-dialog-
|
|
129550
|
+
const { TextInputDialogComponent } = await import("./text-input-dialog-FGVh3qGR.mjs");
|
|
129535
129551
|
const turnInput = await promptNumber(host, TextInputDialogComponent, {
|
|
129536
129552
|
title: t("goal.wizard_title", { objective }),
|
|
129537
129553
|
subtitle: t("goal.budget_turns_hint"),
|
|
@@ -130900,7 +130916,7 @@ var ThinkingComponent = class {
|
|
|
130900
130916
|
}
|
|
130901
130917
|
const truncated = rendered.slice(0, 3);
|
|
130902
130918
|
const remaining = contentLines.length - 2;
|
|
130903
|
-
const hint =
|
|
130919
|
+
const hint = t("thinking.more_lines", { count: String(remaining) });
|
|
130904
130920
|
const hintWidth = Math.max(0, width - 2);
|
|
130905
130921
|
truncated.push(" " + chalk.dim(truncateToWidth(hint, hintWidth, "…")));
|
|
130906
130922
|
if (isRenderCacheEnabled()) {
|
|
@@ -131594,12 +131610,10 @@ var TruncatedOutputComponent = class {
|
|
|
131594
131610
|
expanded;
|
|
131595
131611
|
maxLines;
|
|
131596
131612
|
hintFormatter;
|
|
131597
|
-
collapseHintFormatter;
|
|
131598
131613
|
constructor(output, options) {
|
|
131599
131614
|
this.expanded = options.expanded;
|
|
131600
131615
|
this.maxLines = options.maxLines ?? PREVIEW_LINES;
|
|
131601
131616
|
this.hintFormatter = options.hintFormatter;
|
|
131602
|
-
this.collapseHintFormatter = options.collapseHintFormatter;
|
|
131603
131617
|
const tint = options.isError ? chalk.hex(options.colors.error) : chalk.dim;
|
|
131604
131618
|
const cleaned = trimTrailingEmptyLines(output.split("\n")).join("\n");
|
|
131605
131619
|
const stripped = options.isError ? cleaned.replaceAll(/\u001B\[[0-9;]*m/g, "") : cleaned;
|
|
@@ -131611,11 +131625,7 @@ var TruncatedOutputComponent = class {
|
|
|
131611
131625
|
}
|
|
131612
131626
|
render(width) {
|
|
131613
131627
|
const contentLines = this.textComponent.render(width);
|
|
131614
|
-
if (contentLines.length <= this.maxLines) return contentLines;
|
|
131615
|
-
if (this.expanded) {
|
|
131616
|
-
const collapseHint = this.collapseHintFormatter ? this.collapseHintFormatter() : t("shell.collapse_hint");
|
|
131617
|
-
return [chalk.dim(collapseHint), ...contentLines];
|
|
131618
|
-
}
|
|
131628
|
+
if (this.expanded || contentLines.length <= this.maxLines) return contentLines;
|
|
131619
131629
|
const remaining = contentLines.length - this.maxLines;
|
|
131620
131630
|
const tail = this.maxLines <= 0 ? [] : contentLines.slice(-this.maxLines);
|
|
131621
131631
|
const expandHint = this.hintFormatter ? this.hintFormatter(remaining) : t("shell.more_lines", { count: String(remaining) });
|
|
@@ -131655,8 +131665,7 @@ var ShellExecutionComponent = class extends Container {
|
|
|
131655
131665
|
colors,
|
|
131656
131666
|
maxLines: previewLines,
|
|
131657
131667
|
maxBytes: MAX_SHELL_OUTPUT_BYTES,
|
|
131658
|
-
hintFormatter: (remaining) => t("shell.more_lines", { count: String(remaining) })
|
|
131659
|
-
collapseHintFormatter: () => t("shell.collapse_hint")
|
|
131668
|
+
hintFormatter: (remaining) => t("shell.more_lines", { count: String(remaining) })
|
|
131660
131669
|
}));
|
|
131661
131670
|
}
|
|
131662
131671
|
};
|
|
@@ -133495,6 +133504,7 @@ var ToolCallComponent = class ToolCallComponent extends CachedContainer {
|
|
|
133495
133504
|
colors: this.colors
|
|
133496
133505
|
});
|
|
133497
133506
|
for (const component of components) this.addChild(component);
|
|
133507
|
+
if (result.message !== void 0 && result.message.length > 0) for (const line of result.message.split("\n")) this.addChild(new Text(chalk.dim(line), 2, 0));
|
|
133498
133508
|
}
|
|
133499
133509
|
/**
|
|
133500
133510
|
* Render AskUserQuestion's JSON payload as a friendly Q/A list.
|
|
@@ -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-DEFMbHSe.mjs";
|
|
7
7
|
export { handleConnectCommand };
|
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-
|
|
9
|
+
(await import("./app-755L4Xpi.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);
|
|
@@ -959,8 +959,8 @@ const dictionaries = {
|
|
|
959
959
|
"cronmsg.missed": "{count} 次错过",
|
|
960
960
|
"cronmsg.final_delivery": "最终投递",
|
|
961
961
|
"thinking.in_progress": "思考中...",
|
|
962
|
-
"
|
|
963
|
-
"shell.
|
|
962
|
+
"thinking.more_lines": "...(还有 {count} 行,按 ctrl+o 展开)",
|
|
963
|
+
"shell.more_lines": "...(还有 {count} 行,按 ctrl+o 展开)",
|
|
964
964
|
"ccconnect.note_botfather": "需先在 @BotFather 创建 bot",
|
|
965
965
|
"ccconnect.note_napcat": "需要 NapCat/OneBot",
|
|
966
966
|
"ccconnect.note_wecom": "需要公网 IP",
|
|
@@ -2057,8 +2057,8 @@ const dictionaries = {
|
|
|
2057
2057
|
"cronmsg.missed": "{count} missed",
|
|
2058
2058
|
"cronmsg.final_delivery": "Final delivery",
|
|
2059
2059
|
"thinking.in_progress": "Thinking...",
|
|
2060
|
-
"
|
|
2061
|
-
"shell.
|
|
2060
|
+
"thinking.more_lines": "... ({count} more lines, ctrl+o to expand)",
|
|
2061
|
+
"shell.more_lines": "... ({count} more lines, ctrl+o to expand)",
|
|
2062
2062
|
"ccconnect.note_botfather": "Create a bot at @BotFather first",
|
|
2063
2063
|
"ccconnect.note_napcat": "Requires NapCat/OneBot",
|
|
2064
2064
|
"ccconnect.note_wecom": "Requires public IP",
|
|
@@ -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 { t as TextInputDialogComponent } from "./text-input-dialog-
|
|
6
|
+
import { t as TextInputDialogComponent } from "./text-input-dialog-C7gjr4Gk.mjs";
|
|
7
7
|
export { TextInputDialogComponent };
|