shortcutxl 0.3.51 → 0.3.53
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/CHANGELOG.md +193 -183
- package/dist/app/agent-session-runtime-adapter.d.ts +1 -0
- package/dist/app/agent-session-runtime-adapter.js +1 -0
- package/dist/app/agent-session.d.ts +4 -0
- package/dist/app/agent-session.js +24 -21
- package/dist/app/index.d.ts +2 -4
- package/dist/app/index.js +2 -4
- package/dist/app/mcp/connection.js +65 -6
- package/dist/app/mcp/hosted-oauth-provider.js +7 -3
- package/dist/app/mcp/oauth-discovery.js +4 -5
- package/dist/app/mcp/proxy-fetch.d.ts +3 -0
- package/dist/app/mcp/proxy-fetch.js +118 -0
- package/dist/app/prompts/com-api-reference.json +146 -215
- package/dist/app/services/user-context.d.ts +4 -45
- package/dist/app/services/user-context.js +4 -89
- package/dist/app/session/permission-context.d.ts +1 -1
- package/dist/app/session/permission-context.js +2 -2
- package/dist/app/session/system-reminder-context.d.ts +2 -0
- package/dist/app/session/system-reminder-context.js +8 -0
- package/dist/app/tools/index.d.ts +0 -1
- package/dist/app/tools/index.js +0 -1
- package/dist/app/workbook-context/workbook-summary.d.ts +1 -1
- package/dist/app/workbook-context/workbook-summary.js +6 -8
- package/dist/cli.js +1531 -1405
- package/dist/endpoints.d.ts +0 -2
- package/dist/endpoints.js +0 -2
- package/dist/main.js +14 -24
- package/dist/shell/components/line-selection-scroll-container.js +15 -3
- package/dist/shell/components/primitives/footer.js +22 -5
- package/dist/shell/interactive/interactive-mode.js +4 -2
- package/dist/shell/keybindings.js +4 -4
- package/dist/shell/presentation/slash-command-rendering.js +2 -0
- package/dist/shell/session-client.d.ts +1 -0
- package/dist/shell/session-client.js +3 -0
- package/dist/tool-names.d.ts +0 -1
- package/dist/tool-names.js +0 -1
- package/package.json +291 -291
- package/user-docs/dist/index.html +576 -644
- package/user-docs/dist/shortcutxl-docs.pdf +0 -0
- package/dist/app/services/project-workspace.d.ts +0 -27
- package/dist/app/services/project-workspace.js +0 -44
- package/dist/app/services/website-storage.d.ts +0 -24
- package/dist/app/services/website-storage.js +0 -130
- package/dist/app/tools/create-website.d.ts +0 -88
- package/dist/app/tools/create-website.js +0 -282
package/CHANGELOG.md
CHANGED
|
@@ -1,183 +1,193 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## [0.3.
|
|
4
|
-
|
|
5
|
-
- **
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
- **
|
|
10
|
-
- **
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- **
|
|
16
|
-
- **
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- **
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- **
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- **
|
|
32
|
-
- **
|
|
33
|
-
|
|
34
|
-
## [0.3.
|
|
35
|
-
|
|
36
|
-
-
|
|
37
|
-
- **
|
|
38
|
-
|
|
39
|
-
## [0.3.
|
|
40
|
-
|
|
41
|
-
- **
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
- **
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
- **
|
|
61
|
-
|
|
62
|
-
## [0.3.
|
|
63
|
-
|
|
64
|
-
- **
|
|
65
|
-
- **
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
- **
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
- **
|
|
77
|
-
|
|
78
|
-
## [0.3.
|
|
79
|
-
|
|
80
|
-
- **
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
- **
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
- **
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
- **
|
|
100
|
-
- **
|
|
101
|
-
- **
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
- **
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
- **
|
|
112
|
-
- **
|
|
113
|
-
- **
|
|
114
|
-
|
|
115
|
-
## [0.2.
|
|
116
|
-
|
|
117
|
-
- **
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
- **
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
- **
|
|
130
|
-
- **
|
|
131
|
-
- **
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
- **
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
- **
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
- **
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
- **
|
|
154
|
-
- **
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
- **
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
- **
|
|
183
|
-
- **
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.3.53]
|
|
4
|
+
|
|
5
|
+
- **Enterprise MCP OAuth fixes** - Hosted enterprise MCP servers now handle OAuth discovery and proxied requests more reliably.
|
|
6
|
+
|
|
7
|
+
## [0.3.52]
|
|
8
|
+
|
|
9
|
+
- **Team fast mode policy** - Fast Mode is now automatically disabled for team accounts, with a clear message when your team policy blocks it.
|
|
10
|
+
- **Cleaner footer and shortcuts** - The footer now uses shorter model names, shows model/thinking hotkeys inline, and moves model cycling to `alt+p`, thinking to `alt+t`, and runtime permission bypass to `alt+r`.
|
|
11
|
+
- **Copy selection hint** - Selecting transcript text now shows a `Ctrl+C to copy` hint while preserving the exact copied text.
|
|
12
|
+
|
|
13
|
+
## [0.3.51]
|
|
14
|
+
|
|
15
|
+
- **TUI rendering and text selection** - Improved TUI rendering, scrolling. Fixed text highlighting and selection for copy pastes.
|
|
16
|
+
- **Agentic MCP setup** - Agents can now help set up MCP servers through `shortcut mcp add/list/get/login/logout/remove`, with clearer login, logs, and OAuth settings.
|
|
17
|
+
- **User-requested session settings** - When asked, agents can inspect available models and thinking levels or apply your requested session change.
|
|
18
|
+
- **Skill sync clarity** - Skill sync now shows startup differences plus per-file upload/download changes, source, and visibility.
|
|
19
|
+
- **Fast mode toggle** - Fast Mode now shows in the footer and can be toggled with `alt+f` or `/fast`, with clearer availability warnings.
|
|
20
|
+
- **Scrollable approvals** - Large approval and permission dialogs now scroll properly, including spreadsheet change tables in small terminals.
|
|
21
|
+
|
|
22
|
+
## [0.3.50]
|
|
23
|
+
|
|
24
|
+
- **MCP-enabled task agents** - General task agents can now use connected MCP servers, giving delegated work access to the same external tools and resources as the main CLI.
|
|
25
|
+
- **Safer skill uploads** - Uploading skills no longer treats missing local skills as cloud deletions, so remote-only skills stay untouched unless explicitly replaced.
|
|
26
|
+
- **Misc bug fixes** - Shift+A for agent panel, wording, clarity.
|
|
27
|
+
|
|
28
|
+
## [0.3.49]
|
|
29
|
+
|
|
30
|
+
- **Transcript scrolling & rendering** - Long conversations now scroll more cleanly with mouse wheel, PageUp/PageDown, and Ctrl+Home/Ctrl+End support while the editor and footer stay pinned.
|
|
31
|
+
- **Longer-running task agents** - Background task agents now get a 30-minute default timeout, reducing early timeouts on bigger jobs.
|
|
32
|
+
- **Clearer path-based skills** - Skills loaded from custom folders are grouped by their real root paths so the agent can find and use them more reliably.
|
|
33
|
+
|
|
34
|
+
## [0.3.48]
|
|
35
|
+
|
|
36
|
+
- **Background subagents** - Subagents can now work in the background, be steered during conversations, be revived for additional tasks once they are done, and have their statuses surfaced in the UI.
|
|
37
|
+
- **Skill proposals** - ShortcutXL now automatically browses through past sessions and suggests new skills and skill modifications.
|
|
38
|
+
|
|
39
|
+
## [0.3.47]
|
|
40
|
+
|
|
41
|
+
- **GPT-5.5** — Upgraded the OpenAI reasoning model from GPT-5.4 to GPT-5.5 (400K context window, stronger reasoning).
|
|
42
|
+
- **Out-of-credits message** — When your credit balance runs out, ShortcutXL now shows a clear message instead of silently failing.
|
|
43
|
+
|
|
44
|
+
## [0.3.46]
|
|
45
|
+
|
|
46
|
+
- **`alt+m` to cycle modes** — New keyboard shortcut to cycle between Ask, Plan, and Action modes.
|
|
47
|
+
- **Automatic session recovery** — ShortcutXL now silently refreshes your token and retries when the session expires mid-run, instead of surfacing a "Session expired" error.
|
|
48
|
+
|
|
49
|
+
## [0.3.45]
|
|
50
|
+
|
|
51
|
+
- **Preserve Excel calculation mode** — ShortcutXL no longer overrides Excel's calculation mode during code execution. If you have manual calculation enabled, it stays manual while Shortcut runs your code.
|
|
52
|
+
|
|
53
|
+
## [0.3.44]
|
|
54
|
+
|
|
55
|
+
- **Shorty mascot** — Replaced the braille X logo with a new Shorty block-art mascot.
|
|
56
|
+
- **Plan mode bug fix** — Fixed an issue where plan mode was unable to read files.
|
|
57
|
+
|
|
58
|
+
## [0.3.43]
|
|
59
|
+
|
|
60
|
+
- **Security & stability** — Internal hardening fixes across the runtime.
|
|
61
|
+
|
|
62
|
+
## [0.3.42]
|
|
63
|
+
|
|
64
|
+
- **Hosted MCP OAuth** — ShortcutXL now supports OAuth-authenticated hosted MCP servers. Configure a hosted MCP in `mcp.json`, then log in from `/mcp` or `/login`, see `login required` status when auth is missing, and log out again directly from the MCP menu.
|
|
65
|
+
- **AgentController context cleanup** — Simplified agent context and prompt behavior for cleaner single-turn and multi-turn execution.
|
|
66
|
+
|
|
67
|
+
## [0.3.40]
|
|
68
|
+
|
|
69
|
+
- **Runtime permissions** — New `/permissions` command to review and change what file and shell tools can do. Approve individual workspaces, grant narrower read or read/write exceptions to files and folders outside them, and toggle spreadsheet auto-approve per settings profile.
|
|
70
|
+
- **Skip runtime and spreadsheet permissions** — Explicit `/permissions skip-runtime-permissions` (and matching `--skip-runtime-permissions` / `--skip-spreadsheet-permissions` CLI flags) for when you intentionally want those permission boundaries disabled.
|
|
71
|
+
|
|
72
|
+
## [0.3.39]
|
|
73
|
+
|
|
74
|
+
- **Claude Opus 4.7** - Added Claude Opus 4.7 as a selectable Shortcut model with a 1M-token context window.
|
|
75
|
+
- **Clearer mode switching** - Action, Plan, and Installation now each expose only the mode switches that are actually valid from that mode.
|
|
76
|
+
- **More reliable Excel connection handling** - ShortcutXL now gives clearer guidance and better context for Excel and workbook state.
|
|
77
|
+
|
|
78
|
+
## [0.3.38]
|
|
79
|
+
|
|
80
|
+
- **Inline `/skill:name` invocations** — Trigger a skill from anywhere in your message, not just the start.
|
|
81
|
+
- **Interactive approval for skill downloads** — `/download-skills` now shows per-skill diffs (modified, local-only, and remote-only files) and asks before replacing a local skill folder with the cloud copy.
|
|
82
|
+
- **Larger context windows** — Claude Opus 4.6 bumped to 400K tokens; GPT-5.4 bumped to 272K tokens.
|
|
83
|
+
|
|
84
|
+
## [0.3.37]
|
|
85
|
+
|
|
86
|
+
- **Bug fixes** — Improved stability for autonomous workflows and update checks.
|
|
87
|
+
|
|
88
|
+
## [0.3.36]
|
|
89
|
+
|
|
90
|
+
- **Managed-network install fix** - ShortcutXL no longer fails installation on locked-down networks just because WhatsApp phone control depends on a GitHub-hosted package. Standard installs now succeed without needing GitHub SSH access.
|
|
91
|
+
|
|
92
|
+
## [0.3.35]
|
|
93
|
+
|
|
94
|
+
- **Edit-mode detection** — When you're editing a cell, ShortcutXL now detects it and waits instead of throwing a cryptic COM error. You'll see a prompt asking you to press Enter or Escape, and execution resumes automatically.
|
|
95
|
+
- **Bug fixes** — General stability and reliability improvements across credit reporting, Excel operations, session resumption, and concurrency.
|
|
96
|
+
|
|
97
|
+
## [0.3.34]
|
|
98
|
+
|
|
99
|
+
- **Revamped update flow** - When an update is available at launch, ShortcutXL now prompts before the shell starts and runs the update in the foreground.
|
|
100
|
+
- **Import skills from Claude Code and Codex** - New `/port-skills` lets you register skills from Claude Code, Codex, and `.agents` folders.
|
|
101
|
+
- **Better `/autonomous` continuation** - Long-running autonomous tasks now continue more cleanly after a context refresh instead of losing the thread mid-run.
|
|
102
|
+
|
|
103
|
+
## [0.2.32]
|
|
104
|
+
|
|
105
|
+
- **Durable memory** - ShortcutXL now remembers useful context across sessions, so you no longer need to repeat the same preferences and project details every time you start a new conversation.
|
|
106
|
+
- **Faster and more reliable tool use** - Read-only tools can run while the assistant is still streaming, interrupted turns recover more gracefully, and long responses continue more reliably.
|
|
107
|
+
- **`/manage` mode** - New delegation-focused mode for complex work. Use `/manage` when you want the agent to coordinate tasks instead of executing everything directly.
|
|
108
|
+
- **Tool summaries** - The interactive UI now shows short human-readable summaries of tool executions so it's easier to follow what the agent is doing.
|
|
109
|
+
- **Budgeted runs** - New `/budget <token-budget> <task>` command for long-running work with an explicit cumulative token limit.
|
|
110
|
+
- **More reliable MCP connections** - Long-running MCP tools now handle timeouts and progress more gracefully, with clearer errors and better visibility in `/mcp`.
|
|
111
|
+
- **Skill visibility controls** - `/skills` now lets you choose which loaded skills are advertised to the agent. Unchecked skills stay available through explicit `/skill:name`.
|
|
112
|
+
- **Skill upload** - New `/upload-skills` command to push your local user skills to cloud storage, with approval before overwriting or deleting an existing remote copy.
|
|
113
|
+
- **Faster workbook startup context** - ShortcutXL now uses a lighter workbook context during startup, improving responsiveness before deeper workbook inspection is needed.
|
|
114
|
+
|
|
115
|
+
## [0.2.31]
|
|
116
|
+
|
|
117
|
+
- **Improved agent behavior quality** — Better exploration, verification, and convention-matching when working with spreadsheets.
|
|
118
|
+
|
|
119
|
+
## [0.2.30]
|
|
120
|
+
|
|
121
|
+
- **MCP server support** — Connect external tools via the Model Context Protocol. Ask the agent to set one up and it will walk you through config, credentials via `/connect`, and verification. Use `/mcp` to see connected servers and their tools.
|
|
122
|
+
- **Loops** — Set up recurring tasks with `/loop`. The agent executes them in the background and shows a status line in the footer. Example: `/loop 5m pull latest google earnings when it drops`.
|
|
123
|
+
- **Autonomous mode** — Run `/autonomous` to let the agent tackle complex tasks end-to-end. It collaborates with you on a phased plan, then executes each phase with built-in implementation, testing, and independent review cycles.
|
|
124
|
+
|
|
125
|
+
## [0.2.28]
|
|
126
|
+
|
|
127
|
+
- **Three working modes** — Ask questions about your spreadsheet (Ask), plan complex changes before executing (Plan), or jump straight into edits (Action). Switch anytime with `/ask`, `/plan`, `/action`.
|
|
128
|
+
- **Claude Code & Codex plugin integration** — Use ShortcutXL as a skill directly from Claude Code or Codex.
|
|
129
|
+
- **Improved installation experience** — Smoother setup with better error handling and guided prompts.
|
|
130
|
+
- **Built-in help** — `/docs` opens a guide covering features, workflows, and integrations.
|
|
131
|
+
- **Cleaner status bar** — Simplified token usage display in the footer.
|
|
132
|
+
|
|
133
|
+
## [0.2.27]
|
|
134
|
+
|
|
135
|
+
- **Friendlier setup experience** — First-time install now shows plain-language step names (e.g. "Calculation Engine" instead of "Python Packages") and a prominent green prompt when Excel needs to be opened.
|
|
136
|
+
|
|
137
|
+
## [0.2.26]
|
|
138
|
+
|
|
139
|
+
- **Workbook scope** — When multiple workbooks are open, ShortcutXL now asks which ones to focus on. The agent only sees the workbooks you select, keeping context tight and responses more relevant.
|
|
140
|
+
- **Connections** — Connect external data sources via `/connect`. Supports databases (Snowflake, Postgres, Oracle, MySQL), SaaS APIs (Salesforce, Notion, HubSpot, Airtable), and cloud drives. Credentials are stored in the OS keychain.
|
|
141
|
+
- **Skill sync** — Download shared skills from the cloud with `/download-skills`.
|
|
142
|
+
- **Skill creator** — A built-in eval-driven workflow for authoring, testing, and improving custom skills.
|
|
143
|
+
- **Fixed local install issues** — Resolved a shell path bug that could prevent the CLI from launching after a global npm install.
|
|
144
|
+
|
|
145
|
+
## [0.2.22]
|
|
146
|
+
|
|
147
|
+
- **Tool extensions** — Build custom tools that the agent can call.
|
|
148
|
+
- **Sandbox hardening** — The sandbox now blocks more ways code could escape isolation. When you update ShortcutXL, the sandbox automatically updates itself too.
|
|
149
|
+
- **Faster install** — Sandbox is now downloaded on demand instead of bundled.
|
|
150
|
+
|
|
151
|
+
## [0.2.19]
|
|
152
|
+
|
|
153
|
+
- **Sandbox & security hardening** — Code execution can now optionally run inside a sandbox (/sandbox) that blocks unauthorized file writes, reads, and in-bound and out-bound network traffic.
|
|
154
|
+
- **Clearer privacy controls** - You can opt out of conversation uploads to our servers for complete privacy.
|
|
155
|
+
|
|
156
|
+
## [0.2.18]
|
|
157
|
+
|
|
158
|
+
- **Fixed startup crash** — Resolved a circular import in the Python modules that caused "internal error" on every Excel action.
|
|
159
|
+
|
|
160
|
+
## [0.2.17]
|
|
161
|
+
|
|
162
|
+
- **Better change review dialog** — Cell diffs now show full addresses (e.g. `Sheet1!A1`), formula details, and keyboard navigation with arrow keys for scrolling through large changesets.
|
|
163
|
+
- **Alt+V paste is more reliable** — Fixed cases where Alt+V would fail silently. Now gives clear feedback and handles clipboard errors gracefully.
|
|
164
|
+
- **Skill saving bug fixed** — Skills are not saved in the correct directory and survives application updates.
|
|
165
|
+
- **Clean terminal on launch** — Starting ShortcutXL now clears prior output so you always begin with a fresh screen.
|
|
166
|
+
|
|
167
|
+
## [0.2.14]
|
|
168
|
+
|
|
169
|
+
- **Python linting & type checking** — Added ruff and pyright checks for the Python modules and tests. Import sorting, unused variables, and type errors are now caught before publish.
|
|
170
|
+
- **Cleaner dead-code detection** — Removed unused TypeScript exports and tightened knip configuration.
|
|
171
|
+
|
|
172
|
+
## [0.2.13]
|
|
173
|
+
|
|
174
|
+
- **Stay logged in across terminals** — Previously, opening a new terminal while others were running could force you to log in again. Now your session persists reliably no matter how many terminals you have open.
|
|
175
|
+
|
|
176
|
+
## [0.2.12]
|
|
177
|
+
|
|
178
|
+
- **No more popup windows during updates** — Background updates now run silently instead of flashing a command prompt on your screen.
|
|
179
|
+
|
|
180
|
+
## [0.2.11]
|
|
181
|
+
|
|
182
|
+
- **More reliable first-time setup** — ShortcutXL now waits for Excel to be fully ready before running its connection test, so setup succeeds on the first try even on slower machines.
|
|
183
|
+
- **Switched to production servers** — All traffic now routes through `shortcut.ai` production endpoints for better performance and reliability.
|
|
184
|
+
|
|
185
|
+
## [0.2.9]
|
|
186
|
+
|
|
187
|
+
- **Works without Python on your PATH** — ShortcutXL now finds and loads Python automatically. No more fiddling with environment variables or system settings to get things working.
|
|
188
|
+
|
|
189
|
+
## [0.1.1]
|
|
190
|
+
|
|
191
|
+
- **Update notifications** — ShortcutXL tells you when a new version is available and shows you the exact command to upgrade.
|
|
192
|
+
- **Survives reinstalls** — Updating or reinstalling the npm package no longer breaks your Excel setup. Everything keeps working without reconfiguration.
|
|
193
|
+
- **Handles Excel locks gracefully** — If Excel has ShortcutXL loaded during an update, you get a clear message instead of a crash.
|
|
@@ -38,6 +38,7 @@ export interface CreateAgentSessionRuntimeAdapterOptions {
|
|
|
38
38
|
approvalState?: AgentApprovalState;
|
|
39
39
|
budgetLimits?: RuntimeBudgetLimits;
|
|
40
40
|
enableToolSummaries?: boolean;
|
|
41
|
+
fastModeAllowed?: boolean;
|
|
41
42
|
modeName?: string;
|
|
42
43
|
model?: Model<Api>;
|
|
43
44
|
observability?: RuntimeObservability;
|
|
@@ -211,6 +211,7 @@ export async function createAgentSessionRuntimeAdapter(options) {
|
|
|
211
211
|
initialModeName: options.modeName,
|
|
212
212
|
initialPermissionPolicy: options.permissionPolicy,
|
|
213
213
|
modelRegistry,
|
|
214
|
+
fastModeAllowed: options.fastModeAllowed,
|
|
214
215
|
extensionRunnerRef,
|
|
215
216
|
prePromptContext: options.prePromptContext,
|
|
216
217
|
budgetLimits: options.budgetLimits,
|
|
@@ -105,6 +105,7 @@ export interface AgentSessionConfig {
|
|
|
105
105
|
initialPermissionPolicy?: RuntimePermissionPolicy;
|
|
106
106
|
/** Model registry for API key resolution and model discovery */
|
|
107
107
|
modelRegistry: AgentModelRegistry;
|
|
108
|
+
fastModeAllowed?: boolean;
|
|
108
109
|
/** Mutable ref used by AgentController to access the current ExtensionRunner */
|
|
109
110
|
extensionRunnerRef?: {
|
|
110
111
|
current?: ExtensionRunner;
|
|
@@ -182,6 +183,7 @@ export declare class AgentSession {
|
|
|
182
183
|
private _observability?;
|
|
183
184
|
private _tools;
|
|
184
185
|
private _models;
|
|
186
|
+
private _fastModeAllowed;
|
|
185
187
|
private _extensions;
|
|
186
188
|
private _compactionActions;
|
|
187
189
|
private _compactionTriggerDeps;
|
|
@@ -262,7 +264,9 @@ export declare class AgentSession {
|
|
|
262
264
|
/** Current thinking level */
|
|
263
265
|
get thinkingLevel(): ThinkingLevel;
|
|
264
266
|
get isFastModeEnabled(): boolean;
|
|
267
|
+
get isFastModeAllowed(): boolean;
|
|
265
268
|
get isFastModeAvailable(): boolean;
|
|
269
|
+
setFastModeAllowed(allowed: boolean): void;
|
|
266
270
|
setFastModeEnabled(enabled: boolean): void;
|
|
267
271
|
toggleFastMode(): boolean;
|
|
268
272
|
/** Whether agent is currently streaming a response */
|
|
@@ -27,7 +27,7 @@ import { emitExtensionEvent } from './session/extension-emitter.js';
|
|
|
27
27
|
import { ExtensionLifecycle } from './session/extension-lifecycle.js';
|
|
28
28
|
import { ModelManager } from './session/model-manager.js';
|
|
29
29
|
import { resolvePendingRefreshOverride } from './session/pending-refresh-overrides.js';
|
|
30
|
-
import {
|
|
30
|
+
import { formatRuntimePermissionBypassReminder } from './session/permission-context.js';
|
|
31
31
|
import { PersistenceHandler } from './session/persistence-handler.js';
|
|
32
32
|
import { assertNotExtensionCommand, buildMessageContent, normalizeUserContent, tryExtensionCommand } from './session/prompt-pipeline.js';
|
|
33
33
|
import { QueueTracker } from './session/queue-tracker.js';
|
|
@@ -37,6 +37,7 @@ import { executeNewSession, executeSwitchSession } from './session/session-lifec
|
|
|
37
37
|
import { getAvailableThinkingLevels, supportsThinking, supportsXhighThinking } from './session/session-models.js';
|
|
38
38
|
import { computeContextUsage, computeSessionStats } from './session/session-stats.js';
|
|
39
39
|
import { expandSkillCommand } from './session/skill-expansion.js';
|
|
40
|
+
import { formatSystemReminderContext } from './session/system-reminder-context.js';
|
|
40
41
|
import { ToolRegistry } from './session/tool-registry.js';
|
|
41
42
|
import { ToolSummaryEmitter } from './session/tool-summary-emitter.js';
|
|
42
43
|
import { isToolSummaryEligible } from './session/tool-summary-policy.js';
|
|
@@ -109,6 +110,7 @@ export class AgentSession {
|
|
|
109
110
|
_tools;
|
|
110
111
|
// Model manager — model switching, cycling, thinking level
|
|
111
112
|
_models;
|
|
113
|
+
_fastModeAllowed = true;
|
|
112
114
|
// Extension lifecycle — owns extension runner, bindings, reload
|
|
113
115
|
_extensions;
|
|
114
116
|
// Bridge objects for compaction/recovery/budget subsystems
|
|
@@ -127,6 +129,7 @@ export class AgentSession {
|
|
|
127
129
|
this._prePromptContext = config.prePromptContext;
|
|
128
130
|
this._budgetLimits = config.budgetLimits;
|
|
129
131
|
this._observability = config.observability;
|
|
132
|
+
this._fastModeAllowed = config.fastModeAllowed ?? true;
|
|
130
133
|
this._summaryEmitter = new ToolSummaryEmitter({
|
|
131
134
|
enabled: config.enableToolSummaries ?? true,
|
|
132
135
|
isFeatureEnabled: () => this.settingsManager.getToolSummariesEnabled(),
|
|
@@ -587,8 +590,16 @@ export class AgentSession {
|
|
|
587
590
|
get isFastModeEnabled() {
|
|
588
591
|
return this.isFastModeAvailable && this.agent.speed === 'fast';
|
|
589
592
|
}
|
|
593
|
+
get isFastModeAllowed() {
|
|
594
|
+
return this._fastModeAllowed;
|
|
595
|
+
}
|
|
590
596
|
get isFastModeAvailable() {
|
|
591
|
-
return isShortcutFastModeModel(this.model);
|
|
597
|
+
return this._fastModeAllowed && isShortcutFastModeModel(this.model);
|
|
598
|
+
}
|
|
599
|
+
setFastModeAllowed(allowed) {
|
|
600
|
+
this._fastModeAllowed = allowed;
|
|
601
|
+
if (!allowed)
|
|
602
|
+
this.setFastModeEnabled(false);
|
|
592
603
|
}
|
|
593
604
|
setFastModeEnabled(enabled) {
|
|
594
605
|
this.agent.speed = enabled && this.isFastModeAvailable ? 'fast' : undefined;
|
|
@@ -801,18 +812,8 @@ export class AgentSession {
|
|
|
801
812
|
}
|
|
802
813
|
// Build messages array (custom message if any, then user message)
|
|
803
814
|
const messages = [];
|
|
804
|
-
// Add user message
|
|
805
|
-
const userContent = [{ type: 'text', text: expandedText }];
|
|
806
|
-
if (currentImages) {
|
|
807
|
-
userContent.push(...currentImages);
|
|
808
|
-
}
|
|
809
|
-
messages.push({
|
|
810
|
-
role: 'user',
|
|
811
|
-
content: userContent,
|
|
812
|
-
timestamp: Date.now()
|
|
813
|
-
});
|
|
814
815
|
this.lastPrePromptDetails = undefined;
|
|
815
|
-
const prePromptContextParts = [
|
|
816
|
+
const prePromptContextParts = [formatRuntimePermissionBypassReminder(this.permissionPolicy)];
|
|
816
817
|
let prePromptDetails;
|
|
817
818
|
if (this._prePromptContext) {
|
|
818
819
|
const ctx = await this._prePromptContext();
|
|
@@ -825,19 +826,21 @@ export class AgentSession {
|
|
|
825
826
|
messages.push({
|
|
826
827
|
role: 'custom',
|
|
827
828
|
customType: 'prePromptContext',
|
|
828
|
-
content: prePromptContextParts
|
|
829
|
+
content: formatSystemReminderContext(prePromptContextParts),
|
|
829
830
|
display: false,
|
|
830
831
|
details: prePromptDetails,
|
|
831
832
|
timestamp: Date.now()
|
|
832
833
|
});
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
else if (message.role === 'user') {
|
|
838
|
-
this.sessionManager.appendMessage(message);
|
|
839
|
-
}
|
|
834
|
+
// Add user message
|
|
835
|
+
const userContent = [{ type: 'text', text: expandedText }];
|
|
836
|
+
if (currentImages) {
|
|
837
|
+
userContent.push(...currentImages);
|
|
840
838
|
}
|
|
839
|
+
messages.push({
|
|
840
|
+
role: 'user',
|
|
841
|
+
content: userContent,
|
|
842
|
+
timestamp: Date.now()
|
|
843
|
+
});
|
|
841
844
|
// Inject any pending "nextTurn" messages as context alongside the user message
|
|
842
845
|
for (const msg of this._pendingNextTurnMessages) {
|
|
843
846
|
messages.push(msg);
|
package/dist/app/index.d.ts
CHANGED
|
@@ -28,9 +28,7 @@ export { resolveCliModel } from './providers/model-resolver.js';
|
|
|
28
28
|
export { registerShortcutProvider } from './providers/register-shortcut-provider.js';
|
|
29
29
|
export * from './resources/index.js';
|
|
30
30
|
export type { PromptTemplate, Skill } from './resources/index.js';
|
|
31
|
-
export {
|
|
32
|
-
export { UserContextProvider, fetchUserInfo, type WorkspaceContextValue } from './services/user-context.js';
|
|
33
|
-
export { createWebsiteStorageOperations, type WebsiteStorageOptions } from './services/website-storage.js';
|
|
31
|
+
export { fetchUserInfo, type UserInfo } from './services/user-context.js';
|
|
34
32
|
export { getLastAssistantText } from './session/assistant-text.js';
|
|
35
33
|
export { listAllSessions, listSessions } from './session/session-catalog.js';
|
|
36
34
|
export type { SessionInfo, SessionListProgress } from './session/session-catalog.js';
|
|
@@ -53,6 +51,6 @@ export type { SkillSyncStatusItem, SkillsSyncStatus } from './sync/skills-status
|
|
|
53
51
|
export { uploadSkills } from './sync/skills-upload.js';
|
|
54
52
|
export type { SkillUploadApprovalRequest, SkillsUploadResult } from './sync/skills-upload.js';
|
|
55
53
|
export * from './tools/index.js';
|
|
56
|
-
export { buildWorkbookPromptContext, fetchWorkbookConnectionState,
|
|
54
|
+
export { buildWorkbookPromptContext, fetchWorkbookConnectionState, formatWorkbookScopeReminder } from './workbook-context/workbook-summary.js';
|
|
57
55
|
export { SCOPE_UNSET, type WorkbookConnectionState, type WorkbookScopeDetails, type WorkbookScopeStateRef } from './workbook-scope.js';
|
|
58
56
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/app/index.js
CHANGED
|
@@ -23,9 +23,7 @@ export { ModelRegistry } from './providers/model-registry.js';
|
|
|
23
23
|
export { resolveCliModel } from './providers/model-resolver.js';
|
|
24
24
|
export { registerShortcutProvider } from './providers/register-shortcut-provider.js';
|
|
25
25
|
export * from './resources/index.js';
|
|
26
|
-
export {
|
|
27
|
-
export { UserContextProvider, fetchUserInfo } from './services/user-context.js';
|
|
28
|
-
export { createWebsiteStorageOperations } from './services/website-storage.js';
|
|
26
|
+
export { fetchUserInfo } from './services/user-context.js';
|
|
29
27
|
export { getLastAssistantText } from './session/assistant-text.js';
|
|
30
28
|
export { listAllSessions, listSessions } from './session/session-catalog.js';
|
|
31
29
|
export { continueRecentSessionManager, createInMemorySessionManager, createSessionManager, forkSessionManager, openSessionManager } from './session/session-factory.js';
|
|
@@ -40,6 +38,6 @@ export { downloadSkillsWithApproval } from './sync/skills-download.js';
|
|
|
40
38
|
export { checkSkillsSyncStatus } from './sync/skills-status.js';
|
|
41
39
|
export { uploadSkills } from './sync/skills-upload.js';
|
|
42
40
|
export * from './tools/index.js';
|
|
43
|
-
export { buildWorkbookPromptContext, fetchWorkbookConnectionState,
|
|
41
|
+
export { buildWorkbookPromptContext, fetchWorkbookConnectionState, formatWorkbookScopeReminder } from './workbook-context/workbook-summary.js';
|
|
44
42
|
export { SCOPE_UNSET } from './workbook-scope.js';
|
|
45
43
|
//# sourceMappingURL=index.js.map
|