From 74bffe994a87d67778e5a47a2f85fd9c7bcb5688 Mon Sep 17 00:00:00 2001 From: Satya Patel Date: Sun, 19 Apr 2026 19:33:20 -0700 Subject: [PATCH 1/4] feat(desktop): safer defaults for builtin terminal agent presets (#3546) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(desktop): safer defaults for builtin terminal agent presets Swap permission-bypass flags for each CLI's intended safe-but-useful mode (claude acceptEdits, codex --full-auto, gemini auto_edit, copilot --allow-all-tools). Drop mastracode/opencode/pi from the default seed since they are YOLO-by-default at the CLI level; they remain available via Quick-Add. Remove cursor-agent's --yolo suffix (silent no-op on the real binary). Existing users are preserved — the v1 terminalPresetsInitialized guard and v2 migration marker ensure stored commands are never rewritten. * test(desktop): update agent-launch-request fixture for new codex default buildPromptAgentLaunchRequest's terminal-command fixture hard-coded the old --dangerously-bypass-approvals-and-sandbox flag. Update it to the new --full-auto default so the test reflects the current builtin. * fix(desktop): address reviewer feedback on safe-default flag choices - gemini promptCommand: add --approval-mode=auto_edit so prompt/task launches use the same safety mode as terminal launches (flagged by cubic, greptile, and CodeRabbit) - copilot: switch from --allow-all-tools to --allow-tool=write. Per GitHub's own docs, --allow-all-tools "allows all tools to run automatically without confirmation" including shell, which contradicts the safe-by-default claim. --allow-tool=write auto- approves file edits only (analog of claude's acceptEdits). - docs: update copilot line; clarify mastracode/opencode/pi opt-in parentheticals so users understand why they're not auto-seeded. --- .../shared/utils/agent-launch-request.test.ts | 2 +- apps/docs/content/docs/terminal-presets.mdx | 20 ++++++++++--------- packages/shared/src/agent-command.test.ts | 4 ++-- .../shared/src/builtin-terminal-agents.ts | 20 +++++++------------ 4 files changed, 21 insertions(+), 25 deletions(-) diff --git a/apps/desktop/src/shared/utils/agent-launch-request.test.ts b/apps/desktop/src/shared/utils/agent-launch-request.test.ts index de4bc0b4d63..9264b27fc46 100644 --- a/apps/desktop/src/shared/utils/agent-launch-request.test.ts +++ b/apps/desktop/src/shared/utils/agent-launch-request.test.ts @@ -46,7 +46,7 @@ describe("buildPromptAgentLaunchRequest", () => { agentType: "codex", terminal: { command: - 'codex -c model_reasoning_effort="high" --dangerously-bypass-approvals-and-sandbox -c model_reasoning_summary="detailed" -c model_supports_reasoning_summaries=true', + 'codex -c model_reasoning_effort="high" -c model_reasoning_summary="detailed" -c model_supports_reasoning_summaries=true --full-auto', }, }); }); diff --git a/apps/docs/content/docs/terminal-presets.mdx b/apps/docs/content/docs/terminal-presets.mdx index 5baecb51971..6078dbcac80 100644 --- a/apps/docs/content/docs/terminal-presets.mdx +++ b/apps/docs/content/docs/terminal-presets.mdx @@ -41,15 +41,17 @@ Presets are parallel by default. ## Quick-Add Templates -Pre-configured presets for popular AI agents: - -- **amp** - `amp` -- **claude** - `claude --dangerously-skip-permissions` -- **codex** - Full danger mode with high reasoning effort -- **gemini** - `gemini --yolo` -- **pi** - `pi` -- **cursor-agent** - Cursor AI agent -- **opencode** - Open-source AI coding agent +Pre-configured presets for popular AI agents. Defaults are safe-by-default — agents can read and edit files, but still prompt before running shell commands or touching files outside your workspace. Edit any preset to opt into a more permissive mode. + +- **amp** - `amp` (built-in permission rules auto-deny destructive ops) +- **claude** - `claude --permission-mode acceptEdits` +- **codex** - `codex ... --full-auto` (workspace-sandboxed) +- **gemini** - `gemini --approval-mode=auto_edit` +- **copilot** - `copilot --allow-tool=write` +- **cursor-agent** - `cursor-agent` (prompts for every action) +- **mastracode** - Mastra's coding agent (opt-in: auto-approves all actions by default at the CLI; no startup flag to restrict) +- **opencode** - Open-source AI coding agent (opt-in: full file and shell access by default at the CLI; no startup flag to restrict) +- **pi** - Minimal terminal coding harness (opt-in: auto-approves all actions by default at the CLI; no startup flag to restrict) ## Preset Bar diff --git a/packages/shared/src/agent-command.test.ts b/packages/shared/src/agent-command.test.ts index 6b1ecde6f0c..720af0c1cc5 100644 --- a/packages/shared/src/agent-command.test.ts +++ b/packages/shared/src/agent-command.test.ts @@ -13,7 +13,7 @@ describe("buildAgentPromptCommand", () => { }); expect(command).toContain( - "model_supports_reasoning_summaries=true -- \"$(cat <<'SUPERSET_PROMPT_12345678'", + "model_supports_reasoning_summaries=true --full-auto -- \"$(cat <<'SUPERSET_PROMPT_12345678'", ); expect(command).toContain("- Only modified file: runtime.ts"); }); @@ -26,7 +26,7 @@ describe("buildAgentPromptCommand", () => { }); expect(command).toStartWith( - "claude --dangerously-skip-permissions \"$(cat <<'SUPERSET_PROMPT_abcdefgh'", + "claude --permission-mode acceptEdits \"$(cat <<'SUPERSET_PROMPT_abcdefgh'", ); }); diff --git a/packages/shared/src/builtin-terminal-agents.ts b/packages/shared/src/builtin-terminal-agents.ts index 1d043e8a160..b634fe09179 100644 --- a/packages/shared/src/builtin-terminal-agents.ts +++ b/packages/shared/src/builtin-terminal-agents.ts @@ -62,7 +62,7 @@ export const BUILTIN_TERMINAL_AGENTS = [ label: "Claude", description: "Anthropic's coding agent for reading code, editing files, and running terminal workflows.", - command: "claude --dangerously-skip-permissions", + command: "claude --permission-mode acceptEdits", includeInDefaultTerminalPresets: true, }), createBuiltinTerminalAgent({ @@ -80,9 +80,9 @@ export const BUILTIN_TERMINAL_AGENTS = [ description: "OpenAI's coding agent for reading, modifying, and running code across tasks.", command: - 'codex -c model_reasoning_effort="high" --dangerously-bypass-approvals-and-sandbox -c model_reasoning_summary="detailed" -c model_supports_reasoning_summaries=true', + 'codex -c model_reasoning_effort="high" -c model_reasoning_summary="detailed" -c model_supports_reasoning_summaries=true --full-auto', promptCommand: - 'codex -c model_reasoning_effort="high" --dangerously-bypass-approvals-and-sandbox -c model_reasoning_summary="detailed" -c model_supports_reasoning_summaries=true --', + 'codex -c model_reasoning_effort="high" -c model_reasoning_summary="detailed" -c model_supports_reasoning_summaries=true --full-auto --', includeInDefaultTerminalPresets: true, }), createBuiltinTerminalAgent({ @@ -90,9 +90,8 @@ export const BUILTIN_TERMINAL_AGENTS = [ label: "Gemini", description: "Google's open-source terminal agent for coding, problem-solving, and task work.", - command: "gemini --yolo", - promptCommand: "gemini", - promptCommandSuffix: "--yolo", + command: "gemini --approval-mode=auto_edit", + promptCommand: "gemini --approval-mode=auto_edit", includeInDefaultTerminalPresets: true, }), createBuiltinTerminalAgent({ @@ -101,7 +100,6 @@ export const BUILTIN_TERMINAL_AGENTS = [ description: "Mastra's coding agent for building, debugging, and shipping code from the terminal.", command: "mastracode", - includeInDefaultTerminalPresets: true, }), createBuiltinTerminalAgent({ id: "opencode", @@ -109,7 +107,6 @@ export const BUILTIN_TERMINAL_AGENTS = [ description: "Open-source coding agent for the terminal, IDE, and desktop.", command: "opencode", promptCommand: "opencode --prompt", - includeInDefaultTerminalPresets: true, }), createBuiltinTerminalAgent({ id: "pi", @@ -117,7 +114,6 @@ export const BUILTIN_TERMINAL_AGENTS = [ description: "Minimal terminal coding harness for flexible coding workflows.", command: "pi", - includeInDefaultTerminalPresets: true, }), createBuiltinTerminalAgent({ id: "kimi", @@ -134,9 +130,8 @@ export const BUILTIN_TERMINAL_AGENTS = [ label: "Copilot", description: "GitHub's coding agent for planning, editing, and building in your repo.", - command: "copilot --allow-all", - promptCommand: "copilot -i --allow-all", - promptCommandSuffix: "--yolo", + command: "copilot --allow-tool=write", + promptCommand: "copilot -i --allow-tool=write", includeInDefaultTerminalPresets: true, }), createBuiltinTerminalAgent({ @@ -145,7 +140,6 @@ export const BUILTIN_TERMINAL_AGENTS = [ description: "Cursor's coding agent for editing, running, and debugging code in parallel.", command: "cursor-agent", - promptCommandSuffix: "--yolo", }), ] as const; From 3a421288c6d2b2d201424f233661339e55d4ebf6 Mon Sep 17 00:00:00 2001 From: Satya Patel Date: Tue, 21 Apr 2026 11:48:21 -0700 Subject: [PATCH 2/4] fix(desktop): backfill legacy permissions for canary users exposed to #3546 (#3615) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #3546 swapped builtin terminal agent defaults to safer modes (claude acceptEdits, codex --full-auto, gemini auto_edit, copilot --allow-tool=write, cursor-agent without --yolo suffix). The v1 `terminalPresetsInitialized` guard and v2 migration marker preserved users' stored terminal-preset command strings, but the **agent-preset** resolution path (resolveAgentConfigs in packages/shared/src/agent-settings.ts) layers user overrides on top of the *current* builtin defaults — so any existing canary user who never customized claude/codex/gemini/copilot/cursor-agent silently had their resolved launch command swapped. Fix: one-shot backfill into agentPresetOverrides. New `agentPresetPermissionsMigratedAt` column in settings gates the migration to run exactly once per user. On first read of agent-preset overrides, if the user's stored `terminalPresets` row contains any of the 4 pre-#3546 exact default command strings (meaning their seed happened on a pre-#3546 build), we inject overrides for `command`/`promptCommand`/`promptCommandSuffix` carrying the legacy YOLO values, skipping any field the user has already customized. Fresh post-#3546 installs have no legacy fingerprint, so the migration only stamps the timestamp and moves on. --- packages/shared/package.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/shared/package.json b/packages/shared/package.json index 3903cd1aed7..5b5ac2fefd3 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -48,6 +48,10 @@ "types": "./src/agent-permissions-migration.ts", "default": "./src/agent-permissions-migration.ts" }, + "./agent-permissions-migration": { + "types": "./src/agent-permissions-migration.ts", + "default": "./src/agent-permissions-migration.ts" + }, "./task-slug": { "types": "./src/task-slug.ts", "default": "./src/task-slug.ts" From 725938fa2394ddde796ca30369565ce3a26c0e6b Mon Sep 17 00:00:00 2001 From: Kiet <31864905+Kitenite@users.noreply.github.com> Date: Thu, 23 Apr 2026 10:49:10 -0700 Subject: [PATCH 3/4] fix(desktop): claim TERM_PROGRAM=kitty so TUIs parse Shift+Enter CSI-u (#3667) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(desktop): adopt Ghostty keyboard model in v2 terminal v2's terminal runtime only filtered app hotkeys. With kitty keyboard protocol enabled (needed for Shift+Enter disambiguation in claude-code, modifier reporting in neovim/helix), every Mac Cmd chord xterm saw got CSI-u encoded and leaked into TUIs as a literal char — and line-edit niceties like Cmd+Left/Right/Backspace and Option+Left/Right that v1 handles never worked at all. Mirror Ghostty's approach (src/input/key_encode.zig:534-545: "on macOS, command+keys do not encode text"): bubble every Mac Cmd chord out to the host before xterm's kitty encoder runs, then port v1's line-edit chord translators so shell navigation works the same in both renderers. Changes: - Broaden shouldBubbleClipboardShortcut's Mac branch to bubble all Cmd chords (not just Cmd+C/V with selection gating). v1 benefits too. - Port v1's line-edit translators into v2's custom key handler: Cmd+Left/Right/Backspace, Option+Left/Right, Windows Ctrl+Left/Right. Duplicates v1 for now; a follow-up can share the handler properly. - Wire shouldSelectAllShortcut into v2 so Cmd+A selects terminal buffer. - Use xterm.input(data, true) to inject translated sequences into the PTY (fires onData, forwarded by terminal-ws-transport). - Restructure tests around the new Mac rule. * fix(desktop): track kitty flags to gate Shift+Enter CSI-u injection When claude-code or codex pushes kitty progressive-enhancement flags (CSI > N u), the running program expects modified keys as CSI-u. xterm.js v6.1-beta tracks this internally but doesn't expose the active flags, so we mirror them via our own CSI handlers registered alongside xterm's built-ins (registering with return-false passes through to xterm too). With the disambiguate bit active, Shift+Enter now emits the canonical \x1b[13;2u that both claude-code and codex recognise — matching Ghostty / kitty / wezterm, which all gate CSI-u on program-initiated kitty mode (ghostty/src/input/key_encode.zig:88, kitty/key_encoding.c:153). Without kitty flags, Shift+Enter falls through to xterm.js's legacy encoding (plain \r), so bash / zsh still behave normally. Replaces the previous alt-screen heuristic, which incorrectly missed Ink-based TUIs like claude-code that render inline rather than in the alternate buffer. * chore(desktop): instrument v2 terminal keyboard path for diagnosis Add three toggleable diagnostic taps, all gated on localStorage flag `__kbdDebug=1`: - Every keydown that reaches the custom key handler: key / code / mods / current kitty flags. - Every kitty CSI push/set/pop with resulting flag state. - Every onData byte written to the PTY, shown as hex (non-printable escaped, printable verbatim) plus length and kitty flags. Second flag `__kbdDebugSkipOverride=1` temporarily disables our Shift+Enter CSI-u override so we can observe xterm.js's raw encoding. To use: in DevTools console, `localStorage.setItem('__kbdDebug', '1')` (optionally also `__kbdDebugSkipOverride`), reload the terminal pane, reproduce the bug, copy `[kbd:*]` logs. * fix(desktop): match Shift+Enter CSI-u form to active kitty flags Diagnostic trace showed xterm.js emits event-type-suffixed kitty sequences when the running program activates the report-events flag (0x02) — e.g. Escape release came through as \x1b[27;1:3u. Our override was hardcoded to \x1b[13;2u which is the right form only when disambiguate (0x01) is the sole flag; claude-code (which requests flags = 0x07) was rejecting the suffix-less form and submitting instead of newline. Inspect the flags at inject time: emit \x1b[13;2:1u (explicit press event type) when 0x02 is active, \x1b[13;2u otherwise. Also make kbdLog stringify its payload so DevTools shows the bytes inline instead of collapsing to "Object". * chore(desktop): log keyup too, in addition to keydown * chore(desktop): disable Shift+Enter override to capture xterm raw output * fix(host-service): claim TERM_PROGRAM=kitty so TUIs parse our CSI-u Diagnostic trace of v2 terminal Shift+Enter proved xterm.js v6 with kittyKeyboard is emitting the correct kitty-protocol bytes (\x1b[13;2u press + \x1b[13;2:3u release, same as Ghostty). Yet Shift+Enter still submits in claude-code — strings-dumped the claude-code binary and found the actual gate: Ix_ = { ghostty: "Ghostty", kitty: "Kitty", "iTerm.app": "iTerm2", WezTerm: "WezTerm", WarpTerminal: "Warp" } Its CSI-u parser keys off TERM_PROGRAM being in that allowlist. With our previous "Superset" value it ignored the bytes entirely and fell through to Node readline's legacy keypress handling, where Shift+Enter looks like plain Enter and submits. Claim "kitty" — the protocol origin. Fewer downstream version-gated branches than "ghostty" (which claude-code version-checks against 1.2.0) and safer than "iTerm.app" (color-depth gated on version <3.x). TERM_PROGRAM_VERSION stays as our host-service version; programs that care about real kitty version will hit our version string and probably fall back to conservative behaviour. * chore(desktop): remove diagnostic instrumentation and abandoned override code Root cause for claude-code Shift+Enter landed in host-service env.ts (TERM_PROGRAM=kitty). The renderer-side machinery we added while diagnosing is no longer needed: - kbdLog / kbdHex / kbdDebugSkipOverride console tap - createKittyFlagTracker (watched CSI > u pushes to gate the override) - KITTY_FLAG_DISAMBIGUATE / KITTY_FLAG_REPORT_EVENTS constants - shiftEnterCsiU helper - terminal.onData logging tap v2 terminal-runtime.ts is back to a simple createKeyEventHandler calling resolveHotkeyFromEvent → line-edit translators → select-all → clipboard bubble → xterm default. Shift+Enter now goes through xterm's native kitty encoder and claude-code parses it correctly because TERM_PROGRAM is in its allowlist. Net -142 LOC from renderer. * experiment(desktop): narrow Mac Cmd bubble back to VS Code-style Hypothesis: with TERM_PROGRAM=kitty claiming kitty in the claude-code / codex allowlist, kitty-aware TUIs parse CSI-u Cmd+chords correctly and don't show literal char garbage. The broader Ghostty-style "bubble every Mac Cmd chord" may have been overkill — needed only for TUIs that don't speak CSI-u. Revert the Mac branch of shouldBubbleClipboardShortcut to the original narrow rule (Cmd+V + Cmd+C-with-selection) to test. If kitty-aware TUIs stay clean AND non-kitty-aware ones (vim base, less, htop, tmux-without- kitty) are tolerable, we can ship simpler. Line-edit translators and Cmd+A select-all stay — those aren't kitty-specific, they're Mac-convention handling the shell expects regardless of kitty. * experiment(desktop): revert all renderer changes, keep only TERM_PROGRAM=kitty Aggressive minimum — strip terminal-runtime.ts and clipboardShortcuts.ts back to main. The only net change from main becomes: env.TERM_PROGRAM = "kitty" (was "Superset") If claude-code's CSI-u parsing handles Cmd+C/V/Left/Right correctly with TERM_PROGRAM now in the allowlist, and shell fallback is acceptable for the rest, this is the true minimum fix. Things that may regress and be worth checking: - Cmd+Left / Cmd+Right / Cmd+Backspace in shell (no translator → xterm sends CSI-u → bash readline ignores → no cursor navigation) - Option+Left / Option+Right (same, word navigation won't work in shell) - Cmd+A in shell (no select-all handler → CSI-u to PTY) - Cmd+C in vim / less / htop (no broad bubble → CSI-u reaches PTY; if those TUIs don't speak kitty they'll show garbage) If any of those bite, we restore the specific piece(s). * chore(host-service): trim TERM_PROGRAM comment to essentials --- packages/host-service/src/terminal/env.test.ts | 4 ++-- packages/host-service/src/terminal/env.ts | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/host-service/src/terminal/env.test.ts b/packages/host-service/src/terminal/env.test.ts index 490eed59d7c..9a45c5e0388 100644 --- a/packages/host-service/src/terminal/env.test.ts +++ b/packages/host-service/src/terminal/env.test.ts @@ -393,7 +393,7 @@ describe("buildV2TerminalEnv", () => { const env = buildV2TerminalEnv(baseParams); expect(env).toMatchObject({ TERM: "xterm-256color", - TERM_PROGRAM: "Superset", + TERM_PROGRAM: "kitty", TERM_PROGRAM_VERSION: "2.0.0", COLORTERM: "truecolor", PWD: "/tmp/workspace", @@ -405,7 +405,7 @@ describe("buildV2TerminalEnv", () => { SUPERSET_AGENT_HOOK_PORT: "51741", SUPERSET_AGENT_HOOK_VERSION: "2", }); - expect(env.TERM_PROGRAM).toBe("Superset"); + expect(env.TERM_PROGRAM).toBe("kitty"); expect(env.LANG).toContain("UTF-8"); }); diff --git a/packages/host-service/src/terminal/env.ts b/packages/host-service/src/terminal/env.ts index 135594ba068..247a035f904 100644 --- a/packages/host-service/src/terminal/env.ts +++ b/packages/host-service/src/terminal/env.ts @@ -144,7 +144,11 @@ export function buildV2TerminalEnv( Object.assign(env, getShellBootstrapEnv({ shell, baseEnv, supersetHomeDir })); env.TERM = "xterm-256color"; - env.TERM_PROGRAM = "Superset"; + // claude-code and similar chat TUIs only parse kitty CSI-u (e.g. Shift+Enter + // → \x1b[13;2u) when TERM_PROGRAM ∈ {ghostty, kitty, iTerm.app, WezTerm, + // WarpTerminal}. xterm.js already emits the right bytes — claim kitty so + // they're parsed instead of submitted as plain Enter. + env.TERM_PROGRAM = "kitty"; env.TERM_PROGRAM_VERSION = hostServiceVersion; env.COLORTERM = "truecolor"; env.COLORFGBG = themeType === "light" ? "0;15" : "15;0"; From 4f8c948ea0e69724ef1be3c091543c2805179197 Mon Sep 17 00:00:00 2001 From: MocA-Love Date: Fri, 24 Apr 2026 06:52:46 +0900 Subject: [PATCH 4/4] fix(shared): dedupe "./agent-permissions-migration" export MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit upstream #3615 backfill cherry-pick の際に packages/shared/package.json に 既存と重複する export entry が追加された。duplicate key 警告を解消。 --- bun.lock | 4 +--- packages/shared/package.json | 4 ---- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/bun.lock b/bun.lock index 406d5bd1793..f5134fae6b4 100644 --- a/bun.lock +++ b/bun.lock @@ -109,7 +109,7 @@ }, "apps/desktop": { "name": "@superset/desktop", - "version": "1.5.6", + "version": "1.5.5", "dependencies": { "@ai-sdk/anthropic": "^3.0.43", "@ai-sdk/openai": "3.0.36", @@ -7305,8 +7305,6 @@ "proxy-agent/lru-cache": ["lru-cache@7.18.3", "", {}, "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA=="], - "proxy-agent/proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="], - "radix-ui/@radix-ui/react-aspect-ratio": ["@radix-ui/react-aspect-ratio@1.1.7", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Yq6lvO9HQyPwev1onK1daHCHqXVLzPhSVjmsNjCa2Zcxy2f7uJD2itDtxknv6FzAKCwD1qQkeVDmX/cev13n/g=="], "radix-ui/@radix-ui/react-avatar": ["@radix-ui/react-avatar@1.1.10", "", { "dependencies": { "@radix-ui/react-context": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-is-hydrated": "0.1.0", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog=="], diff --git a/packages/shared/package.json b/packages/shared/package.json index 5b5ac2fefd3..3903cd1aed7 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -48,10 +48,6 @@ "types": "./src/agent-permissions-migration.ts", "default": "./src/agent-permissions-migration.ts" }, - "./agent-permissions-migration": { - "types": "./src/agent-permissions-migration.ts", - "default": "./src/agent-permissions-migration.ts" - }, "./task-slug": { "types": "./src/task-slug.ts", "default": "./src/task-slug.ts"