scream-code 0.18.3 → 0.18.5
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-DpKIeocS.mjs → app-DTuYJJwB.mjs} +11 -9
- package/dist/{dispatch-DD5FtPHZ.mjs → dispatch-BFsePVX6.mjs} +56 -21
- package/dist/{dispatch-CYy-62kt.mjs → dispatch-fJ2MwyhX.mjs} +1 -1
- package/dist/main.mjs +1 -1
- package/dist/public/assets/{index-BsmGEP9G.js → index-BIs_1Cpx.js} +2 -2
- package/dist/public/assets/{index-BsmGEP9G.js.map → index-BIs_1Cpx.js.map} +1 -1
- package/dist/public/assets/{index-BgrNzOAz.css → index-bnhnZew2.css} +1 -1
- package/dist/public/index.html +2 -2
- package/dist/{text-input-dialog-DCMeCMoC.mjs → text-input-dialog-BcAJghtL.mjs} +1 -1
- package/dist/{text-input-dialog-Dw-Cl3DW.mjs → text-input-dialog-CxdRYbA4.mjs} +6 -4
- package/package.json +1 -1
|
@@ -5,8 +5,8 @@ const __filename = __cjsShimFileURLToPath(import.meta.url);
|
|
|
5
5
|
const __dirname = __cjsShimDirname(__filename);
|
|
6
6
|
import "./suppress-sqlite-warning-C2VB0doZ.mjs";
|
|
7
7
|
import { A as sharedMemoStore } from "./src-C7C9e5Ds.mjs";
|
|
8
|
-
import { $ as refineGoal, $n as ScreamHarness, $t as FooterComponent, A as renderDiffLinesClustered, An as setExperimentalFlags, At as isEmptySessionHintDismissed, B as AssistantMessageComponent, Bn as saveTuiConfig, Bt as ENABLE_TERMINAL_FOCUS_REPORTING, C as readJsonlFile, Cn as getCtrlDHint, Ct as supportsBalance, D as UserMessageComponent, Dn as BUILTIN_SLASH_COMMANDS, Dt as resolveThemeSync, En as buildSkillSlashCommands, F as NoticeMessageComponent, Fn as PIXEL_PULSE_FRAMES, Ft as getColorPalette, G as BackgroundAgentStatusComponent, Gn as detectInstallSource, Gt as OSC11_RESPONSE_PREFIX_NO_ESC, H as charsForTokenBudget, Hn as getDataDir, Ht as OSC11_QUERY, I as StatusMessageComponent, In as PULSE_WAVE_FRAMES, It as detectTerminalTheme, J as BREATHE_CYCLE_MS, Jn as CLI_USER_AGENT_PRODUCT, Jt as TERMINAL_FOCUS_OUT, K as AgentGroupComponent, Kn as CLI_COMMAND_NAME, Kt as QUERY_TERMINAL_THEME, L as replaceTabs, Ln as TuiConfigParseError, Lt as parseOsc11BackgroundTheme, M as langFromPath, Mn as getKnowledgeStore, Mt as toggleEmptySessionHint, N as CachedContainer, Nn as hasEmbeddingModelCache, Nt as createThemeStyles, O as ToolCallComponent, On as sortSlashCommands, Ot as createEditorTheme, P as ThinkingComponent, Pn as startManualEmbeddingDownload, Pt as contrastTextHex, Q as clearGoalState, Qn as saveCatalogCache, Qt as isStreaming, R as sanitizeShellOutput, Rn as TuiLikePreferencesSchema, Rt as DISABLE_TERMINAL_FOCUS_REPORTING, S as appendJsonlLine, Sn as getCtrlCHint, St as refreshProviderBalance, T as getDaemonInstructions, Tn as getNoActiveSessionMessage, U as estimateTokens, Un as getInputHistoryFile, Ut as OSC11_RESPONSE, V as ActivityGroupComponent, Vn as detectShellEnvironment, Vt as ENABLE_TERMINAL_THEME_REPORTING, W as getSharedSpeedTracker, Wn as getLogDir, Wt as OSC11_RESPONSE_PREFIX, X as resetBreathingClock, Xn as DEFAULT_CATALOG_URL, Xt as TERMINAL_THEME_LIGHT, Y as getBreathingFrame, Yn as PRODUCT_NAME, Yt as TERMINAL_THEME_DARK, Z as CompactionComponent, Zn as fetchCatalog, Zt as isBusy, _n as EMPTY_SESSION_HINT_URL, a as buildRoleAdditionalText, at as isInternalMessage, b as refreshUpdateCache, bn as SESSION_TIPS, cn as appendSessionHeaderHint, cr as resolveScreamHome, ct as getModelCycleLevel, d as isExpandable, dn as formatErrorMessage, dr as resolveGlobalLogPath, en as lerpGradient, er as encodeWorkDirKey, f as isPlanExpandable, fn as isTodoItemShape, fr as isScreamError, gn as truncateErrorMessage, hn as stringValue, hr as SCREAM_ERROR_INFO, ht as handlePlanCommand, i as openUrl, ir as removeSessionIndexEntry, j as highlightLines, jn as embeddingFailureDetail, jt as isTurnElapsedEnabled, k as renderDiffLines, kn as isExperimentalFlagEnabled, kt as createMarkdownTheme, l as disposeChildren, ln as appendStreamingArgsPreview, lr as flushDiagnosticLogs, m as formatMemoryMemoForInjection, mn as serializeToolResultOutput, mr as ErrorCodes, n as clearEvalPanelState, nr as appendSessionIndexEntry, o as syncDiagramCapabilityPrompt, on as printableChar, or as isRealUserPrompt, ot as toTerminalHyperlink, p as MoonLoader, pn as parseStreamingArgs, pr as isOrphanedToolCallError, pt as handleFusionPlanCommand, q as WelcomeComponent, qn as CLI_UI_MODE, qt as TERMINAL_FOCUS_IN, rr as readSessionIndex, sn as STATUS_BULLET, sr as parseRlmMaxDepthArg, st as changeThinkingLevel, t as dispatchInput, tn as SubagentSlots, tr as normalizeWorkDir, u as hasDispose, un as argsRecord, ur as log, vn as EXIT_CONFIRM_WINDOW_MS, wn as getLlmNotSetMessage, wt as clearInfoPanelState, x as readUpdateCache, xn as TIP_ROTATION_INTERVAL_MS, y as selectUpdateTarget, yn as MAIN_AGENT_ID, z as SkillActivationComponent, zn as loadTuiConfig, zt as DISABLE_TERMINAL_THEME_REPORTING } from "./dispatch-
|
|
9
|
-
import {
|
|
8
|
+
import { $ as refineGoal, $n as ScreamHarness, $t as FooterComponent, A as renderDiffLinesClustered, An as setExperimentalFlags, At as isEmptySessionHintDismissed, B as AssistantMessageComponent, Bn as saveTuiConfig, Bt as ENABLE_TERMINAL_FOCUS_REPORTING, C as readJsonlFile, Cn as getCtrlDHint, Ct as supportsBalance, D as UserMessageComponent, Dn as BUILTIN_SLASH_COMMANDS, Dt as resolveThemeSync, En as buildSkillSlashCommands, F as NoticeMessageComponent, Fn as PIXEL_PULSE_FRAMES, Ft as getColorPalette, G as BackgroundAgentStatusComponent, Gn as detectInstallSource, Gt as OSC11_RESPONSE_PREFIX_NO_ESC, H as charsForTokenBudget, Hn as getDataDir, Ht as OSC11_QUERY, I as StatusMessageComponent, In as PULSE_WAVE_FRAMES, It as detectTerminalTheme, J as BREATHE_CYCLE_MS, Jn as CLI_USER_AGENT_PRODUCT, Jt as TERMINAL_FOCUS_OUT, K as AgentGroupComponent, Kn as CLI_COMMAND_NAME, Kt as QUERY_TERMINAL_THEME, L as replaceTabs, Ln as TuiConfigParseError, Lt as parseOsc11BackgroundTheme, M as langFromPath, Mn as getKnowledgeStore, Mt as toggleEmptySessionHint, N as CachedContainer, Nn as hasEmbeddingModelCache, Nt as createThemeStyles, O as ToolCallComponent, On as sortSlashCommands, Ot as createEditorTheme, P as ThinkingComponent, Pn as startManualEmbeddingDownload, Pt as contrastTextHex, Q as clearGoalState, Qn as saveCatalogCache, Qt as isStreaming, R as sanitizeShellOutput, Rn as TuiLikePreferencesSchema, Rt as DISABLE_TERMINAL_FOCUS_REPORTING, S as appendJsonlLine, Sn as getCtrlCHint, St as refreshProviderBalance, T as getDaemonInstructions, Tn as getNoActiveSessionMessage, U as estimateTokens, Un as getInputHistoryFile, Ut as OSC11_RESPONSE, V as ActivityGroupComponent, Vn as detectShellEnvironment, Vt as ENABLE_TERMINAL_THEME_REPORTING, W as getSharedSpeedTracker, Wn as getLogDir, Wt as OSC11_RESPONSE_PREFIX, X as resetBreathingClock, Xn as DEFAULT_CATALOG_URL, Xt as TERMINAL_THEME_LIGHT, Y as getBreathingFrame, Yn as PRODUCT_NAME, Yt as TERMINAL_THEME_DARK, Z as CompactionComponent, Zn as fetchCatalog, Zt as isBusy, _n as EMPTY_SESSION_HINT_URL, a as buildRoleAdditionalText, at as isInternalMessage, b as refreshUpdateCache, bn as SESSION_TIPS, cn as appendSessionHeaderHint, cr as resolveScreamHome, ct as getModelCycleLevel, d as isExpandable, dn as formatErrorMessage, dr as resolveGlobalLogPath, en as lerpGradient, er as encodeWorkDirKey, f as isPlanExpandable, fn as isTodoItemShape, fr as isScreamError, gn as truncateErrorMessage, hn as stringValue, hr as SCREAM_ERROR_INFO, ht as handlePlanCommand, i as openUrl, ir as removeSessionIndexEntry, j as highlightLines, jn as embeddingFailureDetail, jt as isTurnElapsedEnabled, k as renderDiffLines, kn as isExperimentalFlagEnabled, kt as createMarkdownTheme, l as disposeChildren, ln as appendStreamingArgsPreview, lr as flushDiagnosticLogs, m as formatMemoryMemoForInjection, mn as serializeToolResultOutput, mr as ErrorCodes, n as clearEvalPanelState, nr as appendSessionIndexEntry, o as syncDiagramCapabilityPrompt, on as printableChar, or as isRealUserPrompt, ot as toTerminalHyperlink, p as MoonLoader, pn as parseStreamingArgs, pr as isOrphanedToolCallError, pt as handleFusionPlanCommand, q as WelcomeComponent, qn as CLI_UI_MODE, qt as TERMINAL_FOCUS_IN, rr as readSessionIndex, sn as STATUS_BULLET, sr as parseRlmMaxDepthArg, st as changeThinkingLevel, t as dispatchInput, tn as SubagentSlots, tr as normalizeWorkDir, u as hasDispose, un as argsRecord, ur as log, vn as EXIT_CONFIRM_WINDOW_MS, wn as getLlmNotSetMessage, wt as clearInfoPanelState, x as readUpdateCache, xn as TIP_ROTATION_INTERVAL_MS, y as selectUpdateTarget, yn as MAIN_AGENT_ID, z as SkillActivationComponent, zn as loadTuiConfig, zt as DISABLE_TERMINAL_THEME_REPORTING } from "./dispatch-BFsePVX6.mjs";
|
|
9
|
+
import { i as t, n as getLocale, r as setLocale } from "./text-input-dialog-CxdRYbA4.mjs";
|
|
10
10
|
import { createRequire } from "node:module";
|
|
11
11
|
import { randomBytes, randomUUID, scryptSync, timingSafeEqual } from "node:crypto";
|
|
12
12
|
import { access, appendFile, chmod, mkdir, mkdtemp, readFile, readdir, realpath, rename, rm, stat, unlink, writeFile } from "node:fs/promises";
|
|
@@ -33,7 +33,7 @@ function optionalBuildString(value) {
|
|
|
33
33
|
return typeof value === "string" && value.length > 0 ? value : void 0;
|
|
34
34
|
}
|
|
35
35
|
const SCREAM_BUILD_INFO = {
|
|
36
|
-
version: optionalBuildString("0.18.
|
|
36
|
+
version: optionalBuildString("0.18.5"),
|
|
37
37
|
channel: optionalBuildString(""),
|
|
38
38
|
commit: optionalBuildString(""),
|
|
39
39
|
buildTarget: optionalBuildString("darwin-arm64")
|
|
@@ -1927,6 +1927,8 @@ var EditorKeyboardController = class {
|
|
|
1927
1927
|
}
|
|
1928
1928
|
cancelCurrentStream() {
|
|
1929
1929
|
this.host.session?.cancel();
|
|
1930
|
+
this.host.approvalController.cancelAll("turn cancelled");
|
|
1931
|
+
this.host.questionController.cancelAll("turn cancelled");
|
|
1930
1932
|
}
|
|
1931
1933
|
cancelCurrentCompaction() {
|
|
1932
1934
|
const session = this.host.session;
|
|
@@ -12028,11 +12030,11 @@ function adaptChoices(toolName, display, grantOptions) {
|
|
|
12028
12030
|
return getDefaultApprovalChoices().filter((choice) => isGrantOffered(choice, grantOptions)).map((choice) => cloneChoice(choice));
|
|
12029
12031
|
}
|
|
12030
12032
|
/**
|
|
12031
|
-
* A narrowed `grantOptions` list drops the grants it does not offer —
|
|
12032
|
-
*
|
|
12033
|
-
*
|
|
12034
|
-
*
|
|
12035
|
-
*
|
|
12033
|
+
* A narrowed `grantOptions` list drops the grants it does not offer — a prompt
|
|
12034
|
+
* that offers `once` only must not paint an "allow for session" button. The
|
|
12035
|
+
* response validation in the core downgrades such a scope anyway; hiding the
|
|
12036
|
+
* button keeps the UI from offering a choice that cannot be honored. Absent
|
|
12037
|
+
* list = every grant (older emitters; no built-in prompt is once-only today).
|
|
12036
12038
|
*/
|
|
12037
12039
|
function isGrantOffered(choice, grantOptions) {
|
|
12038
12040
|
if (grantOptions === void 0) return true;
|
|
@@ -15209,7 +15211,7 @@ var ScreamTUI = class {
|
|
|
15209
15211
|
const card = new OnboardingCardComponent({
|
|
15210
15212
|
colors: this.state.theme.colors,
|
|
15211
15213
|
onConfigure: () => {
|
|
15212
|
-
import("./dispatch-
|
|
15214
|
+
import("./dispatch-fJ2MwyhX.mjs").then(({ handleConnectCommand }) => handleConnectCommand(this, "")).finally(() => {
|
|
15213
15215
|
this.restoreEditor();
|
|
15214
15216
|
onDone?.();
|
|
15215
15217
|
});
|
|
@@ -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 { A as sharedMemoStore, B as buildProjectTagCloud, C as applyConsolidation, D as parseMemoryMemos, E as buildExitExtractionPrompt, F as probeLocalEmbeddingSupport, G as join$1, H as basename$1, I as createMemoryMemo, J as relative$1, K as normalize, L as toSummary, M as clearEmbeddingModelCache, N as createFastEmbedEngine, O as stripMemoryTags, P as hasEmbeddingModelCache$1, R as generateTags, S as DreamTracker, T as EXIT_EXTRACTION_SYSTEM_PROMPT, U as dirname$2, V as rankMemos, W as isAbsolute$1, Y as resolve$2, a as isSupportedFile, b as sharedKnowledgeStoreReady, i as ingestFile, j as classifyEmbeddingFailure, k as MemoryMemoStore, q as parse$7, r as ingestDirectory, t as multiSearch, w as buildConsolidationPlan, y as sharedKnowledgeStore, z as normalizeTags } from "./src-C7C9e5Ds.mjs";
|
|
8
8
|
import { n as require_base64_js, t as XMLParser } from "./XMLParser-DFAnGqkc.mjs";
|
|
9
|
-
import { a as
|
|
9
|
+
import { a as assertScreamHostIdentity, i as t, n as getLocale, o as createScreamDefaultHeaders, r as setLocale, t as TextInputDialogComponent } from "./text-input-dialog-CxdRYbA4.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";
|
|
@@ -87535,7 +87535,8 @@ const DEFAULT_EGRESS_ALLOWLIST = [
|
|
|
87535
87535
|
*
|
|
87536
87536
|
* Two callers keep the same semantics:
|
|
87537
87537
|
* - `PrivateReadEgressAskPermissionPolicy` — prompt the user (once or
|
|
87538
|
-
* session),
|
|
87538
|
+
* session) in the modes that ask (manual, ask); auto and yolo approve above
|
|
87539
|
+
* this policy, so it is unreachable there by design;
|
|
87539
87540
|
* - bot mode — deny instead, because no human is there to answer a prompt.
|
|
87540
87541
|
*
|
|
87541
87542
|
* Fail-closed details:
|
|
@@ -87572,11 +87573,12 @@ function assessPrivateReadEgress(agent, context) {
|
|
|
87572
87573
|
* assumed safe.
|
|
87573
87574
|
*
|
|
87574
87575
|
* The chain position is the mechanism (see `createPermissionDecisionPolicies`):
|
|
87575
|
-
* the policy sits after `
|
|
87576
|
-
*
|
|
87577
|
-
*
|
|
87578
|
-
*
|
|
87579
|
-
* this
|
|
87576
|
+
* the policy sits after `auto-mode-approve`/`yolo-mode-approve`, so auto and
|
|
87577
|
+
* yolo never stop to ask — the ask applies only in the modes that prompt
|
|
87578
|
+
* (manual, ask). It sits before `warnings-ask`, so a dangerous-command prompt
|
|
87579
|
+
* cannot replace the egress check on a command that matches both, and a
|
|
87580
|
+
* memorized grant whose pattern matches this call still silences the ask
|
|
87581
|
+
* (checked below).
|
|
87580
87582
|
*
|
|
87581
87583
|
* Egress detection is deliberately narrow (MVP): `FetchURL` and the shell
|
|
87582
87584
|
* download/remote verbs in `Bash`. Known blind spots, kept here so the next
|
|
@@ -88669,14 +88671,22 @@ function dangerousCommandWarnings(command) {
|
|
|
88669
88671
|
//#endregion
|
|
88670
88672
|
//#region ../../packages/agent-core/src/agent/permission/policies/warnings-ask.ts
|
|
88671
88673
|
/**
|
|
88672
|
-
* Dangerous shell commands
|
|
88673
|
-
*
|
|
88674
|
+
* Dangerous shell commands ask before running in manual mode — auto and yolo
|
|
88675
|
+
* approve above this policy, and ask mode's guard denies above it, so the
|
|
88676
|
+
* warning only ever fires where a prompt is expected.
|
|
88677
|
+
*
|
|
88678
|
+
* The prompt offers `once` and `session`. A session grant is memorized as the
|
|
88679
|
+
* rule the approved command records (`Bash(rm -rf ./dist)`, or the family
|
|
88680
|
+
* template of a curated family), so re-running that same command stops
|
|
88681
|
+
* asking. Only that identical rule silences the warning — a tool-wide `Bash`
|
|
88682
|
+
* grant, or a family template recorded from a different family member
|
|
88683
|
+
* (`git push *` approved via `git push origin main`), never does.
|
|
88674
88684
|
*
|
|
88675
88685
|
* The chain position is the mechanism (see `createPermissionDecisionPolicies`):
|
|
88676
88686
|
* the policy sits after `auto-mode-approve`, so unattended auto mode keeps
|
|
88677
|
-
* running without prompts, and before `session-approval-history`, so
|
|
88678
|
-
*
|
|
88679
|
-
*
|
|
88687
|
+
* running without prompts, and before `session-approval-history`, so the
|
|
88688
|
+
* blanket approve that policy performs cannot silence the warning before this
|
|
88689
|
+
* policy applies its own exact-command check.
|
|
88680
88690
|
*/
|
|
88681
88691
|
var WarningsAskPermissionPolicy = class {
|
|
88682
88692
|
agent;
|
|
@@ -88690,6 +88700,7 @@ var WarningsAskPermissionPolicy = class {
|
|
|
88690
88700
|
if (typeof command !== "string") return;
|
|
88691
88701
|
const warnings = dangerousCommandWarnings(command);
|
|
88692
88702
|
if (warnings.length === 0) return;
|
|
88703
|
+
if (this.memorizedCommandGrant(context)) return;
|
|
88693
88704
|
return {
|
|
88694
88705
|
kind: "ask",
|
|
88695
88706
|
reason: {
|
|
@@ -88697,9 +88708,21 @@ var WarningsAskPermissionPolicy = class {
|
|
|
88697
88708
|
warning_count: warnings.length
|
|
88698
88709
|
},
|
|
88699
88710
|
reasons: warnings,
|
|
88700
|
-
grantOptions: ["once"]
|
|
88711
|
+
grantOptions: ["once", "session"]
|
|
88701
88712
|
};
|
|
88702
88713
|
}
|
|
88714
|
+
/**
|
|
88715
|
+
* A session grant silences the warning only when it is the very rule this
|
|
88716
|
+
* call records (`Bash(rm -rf ./dist)`, or the family template of a curated
|
|
88717
|
+
* family) — the user already approved this command for the session. A grant
|
|
88718
|
+
* recorded for a *different* command never counts: neither a tool-wide
|
|
88719
|
+
* `Bash` grant (a legacy wire record) nor a family template recorded from a
|
|
88720
|
+
* benign family member (`git push *` approved via `git push origin main`)
|
|
88721
|
+
* may turn `git push --force` silent.
|
|
88722
|
+
*/
|
|
88723
|
+
memorizedCommandGrant(context) {
|
|
88724
|
+
return this.agent.permission.sessionApprovalRulePatterns.some((pattern) => pattern === context.execution.approvalRule);
|
|
88725
|
+
}
|
|
88703
88726
|
};
|
|
88704
88727
|
//#endregion
|
|
88705
88728
|
//#region ../../packages/agent-core/src/agent/permission/policies/collaboration-auto-approve.ts
|
|
@@ -88727,14 +88750,22 @@ var CollaborationAutoApprovePermissionPolicy = class {
|
|
|
88727
88750
|
};
|
|
88728
88751
|
//#endregion
|
|
88729
88752
|
//#region ../../packages/agent-core/src/agent/permission/policies/yolo-mode-approve.ts
|
|
88753
|
+
/**
|
|
88754
|
+
* yolo mode → approve every tool operation: no approval prompt fires while
|
|
88755
|
+
* yolo is active (egress, dangerous commands, sensitive paths included).
|
|
88756
|
+
* ExitPlanMode is deliberately exempt — a plan decision is not a tool
|
|
88757
|
+
* operation, so the chain falls through to `session-approval-history` /
|
|
88758
|
+
* `exit-plan-mode-review-ask` and yolo keeps plan decisions with the user.
|
|
88759
|
+
*/
|
|
88730
88760
|
var YoloModeApprovePermissionPolicy = class {
|
|
88731
88761
|
agent;
|
|
88732
88762
|
name = "yolo-mode-approve";
|
|
88733
88763
|
constructor(agent) {
|
|
88734
88764
|
this.agent = agent;
|
|
88735
88765
|
}
|
|
88736
|
-
evaluate() {
|
|
88766
|
+
evaluate(context) {
|
|
88737
88767
|
if (this.agent.permission.mode !== "yolo") return;
|
|
88768
|
+
if (context.toolCall.name === "ExitPlanMode") return;
|
|
88738
88769
|
return { kind: "approve" };
|
|
88739
88770
|
}
|
|
88740
88771
|
};
|
|
@@ -88771,8 +88802,9 @@ function createPermissionDecisionPolicies(agent) {
|
|
|
88771
88802
|
new UserConfiguredDenyPermissionPolicy(agent),
|
|
88772
88803
|
new BotModePermissionPolicy(agent),
|
|
88773
88804
|
new CollaborationAutoApprovePermissionPolicy(),
|
|
88774
|
-
new PrivateReadEgressAskPermissionPolicy(agent),
|
|
88775
88805
|
new AutoModeApprovePermissionPolicy(agent),
|
|
88806
|
+
new YoloModeApprovePermissionPolicy(agent),
|
|
88807
|
+
new PrivateReadEgressAskPermissionPolicy(agent),
|
|
88776
88808
|
new WarningsAskPermissionPolicy(agent),
|
|
88777
88809
|
new SessionApprovalHistoryPermissionPolicy(agent),
|
|
88778
88810
|
new UserConfiguredAskPermissionPolicy(agent),
|
|
@@ -88782,7 +88814,6 @@ function createPermissionDecisionPolicies(agent) {
|
|
|
88782
88814
|
new SensitiveFileAccessAskPermissionPolicy(agent),
|
|
88783
88815
|
new GitControlPathAccessAskPermissionPolicy(agent),
|
|
88784
88816
|
new CwdOutsideFileWriteAskPermissionPolicy(agent),
|
|
88785
|
-
new YoloModeApprovePermissionPolicy(agent),
|
|
88786
88817
|
new WolfPackModeApprovePermissionPolicy(agent),
|
|
88787
88818
|
new DefaultToolApprovePermissionPolicy(),
|
|
88788
88819
|
new ManagePluginReadOnlyApprovePermissionPolicy(),
|
|
@@ -89079,9 +89110,12 @@ var PermissionManager = class {
|
|
|
89079
89110
|
/**
|
|
89080
89111
|
* Drop a session scope the policy never offered. Panels filter their buttons
|
|
89081
89112
|
* by `grantOptions`, but the response is wire input — the core is the only
|
|
89082
|
-
* place that can guarantee a
|
|
89083
|
-
*
|
|
89084
|
-
*
|
|
89113
|
+
* place that can guarantee a prompt never memorizes a scope it did not
|
|
89114
|
+
* offer, whatever the emitting build or a future once-only prompt does. Runs
|
|
89115
|
+
* before the session rule is derived, so a downgraded response leaves no
|
|
89116
|
+
* `session-runtime` rule behind. No built-in prompt is once-only today
|
|
89117
|
+
* (every ask offers `once` + `session`), so this path is wire-input defense
|
|
89118
|
+
* rather than a covered product flow.
|
|
89085
89119
|
*/
|
|
89086
89120
|
downgradeUnofferedSessionScope(response, grantOptions, toolName) {
|
|
89087
89121
|
if (response.decision !== "approved" || response.scope !== "session") return response;
|
|
@@ -105996,6 +106030,7 @@ var TurnFlow = class {
|
|
|
105996
106030
|
this.agent.usage.endTurn();
|
|
105997
106031
|
this.abortTurn(cancelReason);
|
|
105998
106032
|
this.agent.subagentHost?.cancelAll(cancelReason);
|
|
106033
|
+
this.agent.permission.cancelAllApprovals();
|
|
105999
106034
|
}
|
|
106000
106035
|
get currentId() {
|
|
106001
106036
|
return this.turnId;
|
|
@@ -140043,7 +140078,7 @@ async function guidedGoalSetup(host) {
|
|
|
140043
140078
|
host.showNotice(t("goal.storm_breaker"), t("goal.conflict_loop"));
|
|
140044
140079
|
return;
|
|
140045
140080
|
}
|
|
140046
|
-
const { TextInputDialogComponent } = await import("./text-input-dialog-
|
|
140081
|
+
const { TextInputDialogComponent } = await import("./text-input-dialog-BcAJghtL.mjs");
|
|
140047
140082
|
const initialDesc = await promptText(host, TextInputDialogComponent, {
|
|
140048
140083
|
title: t("goal.setup_title_initial"),
|
|
140049
140084
|
subtitle: t("goal.setup_desc_hint"),
|
|
@@ -140064,7 +140099,7 @@ async function guidedGoalSetup(host) {
|
|
|
140064
140099
|
await showGoalConfigWizard(host, session, confirmed.trim() || objective, false);
|
|
140065
140100
|
}
|
|
140066
140101
|
async function showGoalConfigWizard(host, session, objective, replace) {
|
|
140067
|
-
const { TextInputDialogComponent } = await import("./text-input-dialog-
|
|
140102
|
+
const { TextInputDialogComponent } = await import("./text-input-dialog-BcAJghtL.mjs");
|
|
140068
140103
|
const turnInput = await promptNumber(host, TextInputDialogComponent, {
|
|
140069
140104
|
title: t("goal.wizard_title", { objective }),
|
|
140070
140105
|
subtitle: t("goal.budget_turns_hint"),
|
|
@@ -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 { in as handleConnectCommand } from "./dispatch-
|
|
6
|
+
import { in as handleConnectCommand } from "./dispatch-BFsePVX6.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-DTuYJJwB.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);
|