shortcutxl 0.3.35 → 0.3.37
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 +8 -0
- package/dist/app/agent-session.d.ts +4 -3
- package/dist/app/prompts/com-api-reference.json +9 -9
- package/dist/app/prompts/mog-api-reference.json +11454 -11454
- package/dist/app/prompts/spreadjs-api-reference.json +552 -552
- package/dist/app/session/autonomous-workflow.d.ts +6 -0
- package/dist/app/session/pending-refresh-overrides.d.ts +14 -0
- package/dist/app/tools/execute-code/com-executor.d.ts +1 -1
- package/dist/app/tools/refresh-context.d.ts +2 -0
- package/dist/cli.js +744 -735
- package/dist/cloud/cloud-shell-adapter.d.ts +2 -1
- package/dist/remote-control/whatsapp/transport.d.ts +1 -0
- package/dist/shell/interactive/interactive-mode.d.ts +1 -0
- package/dist/shell/session-client.d.ts +1 -1
- package/dist/startup/startup-xll.d.ts +1 -2
- package/dist/startup/sync-xll.d.ts +1 -1
- package/dist/startup/update-manager.d.ts +1 -1
- package/dist/utils/truncate.d.ts +11 -0
- package/package.json +3 -3
- package/skills/autonomous/SKILL.md +5 -1
- package/user-docs/dist/shortcutxl-docs.pdf +0 -0
- package/xll/ShortcutXL.xll +0 -0
- package/xll/modules/shortcut_xl/_exec_entry.py +4 -2
- package/xll/modules/shortcut_xl/api-reference.py +1 -1
- package/xll/python/Lib/site-packages/httpx-0.28.1.dist-info/RECORD +1 -1
- package/xll/python/Lib/site-packages/pip-26.0.1.dist-info/RECORD +3 -3
- package/xll/python/Scripts/httpx.exe +0 -0
- package/xll/python/Scripts/pip.exe +0 -0
- package/xll/python/Scripts/pip3.12.exe +0 -0
- package/xll/python/Scripts/pip3.exe +0 -0
- package/xll/python/vcruntime140.dll +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.37]
|
|
4
|
+
|
|
5
|
+
- **Bug fixes** — Improved stability for autonomous workflows and update checks.
|
|
6
|
+
|
|
7
|
+
## [0.3.36]
|
|
8
|
+
|
|
9
|
+
- **Enterprise 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.
|
|
10
|
+
|
|
3
11
|
## [0.3.35]
|
|
4
12
|
|
|
5
13
|
- **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.
|
|
@@ -21,7 +21,7 @@ import type { CustomMessage } from './messages.js';
|
|
|
21
21
|
import type { ModelRegistry } from './providers/model-registry.js';
|
|
22
22
|
import { type PromptTemplate } from './resources/prompt-templates.js';
|
|
23
23
|
import type { ResourceLoader } from './resources/resource-loader.js';
|
|
24
|
-
import { type AutonomousState, type PendingRefresh } from './session/autonomous-workflow.js';
|
|
24
|
+
import { type AutonomousState, type ConsumedPendingRefresh, type PendingRefresh } from './session/autonomous-workflow.js';
|
|
25
25
|
import { type ForkResult, type NavigateTreeResult } from './session/branch-manager.js';
|
|
26
26
|
import { type CompactionCompleteFn, type CompactionResult } from './session/compaction/index.js';
|
|
27
27
|
import { type ExtensionBindings } from './session/extension-lifecycle.js';
|
|
@@ -277,10 +277,11 @@ export declare class AgentSession {
|
|
|
277
277
|
get isCompacting(): boolean;
|
|
278
278
|
/** Set a pending context refresh query (consumed after the current agent loop ends). */
|
|
279
279
|
setPendingRefresh(refresh: PendingRefresh): void;
|
|
280
|
-
/** Consume and return the pending refresh
|
|
281
|
-
consumePendingRefresh():
|
|
280
|
+
/** Consume and return the pending refresh payload, or null if none. */
|
|
281
|
+
consumePendingRefresh(): ConsumedPendingRefresh | null;
|
|
282
282
|
get autonomousState(): Readonly<AutonomousState> | null;
|
|
283
283
|
startAutonomous(task: string): Promise<void>;
|
|
284
|
+
preparePendingRefresh(refresh: PendingRefresh): Promise<void>;
|
|
284
285
|
clearAutonomousState(): void;
|
|
285
286
|
/** All messages including custom types like BashExecutionMessage */
|
|
286
287
|
get messages(): AgentMessage[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"interfaces": {
|
|
3
3
|
"Workbook": {
|
|
4
|
-
"docstring": "Workbook wrapper.\nUsage:\n wb = Workbook(app.Workbooks(\"MyFile.xlsx\"))\n\nRaw COM access:\n wb._wb \
|
|
4
|
+
"docstring": "Workbook wrapper.\nUsage:\n wb = Workbook(app.Workbooks(\"MyFile.xlsx\"))\n\nRaw COM access:\n wb._wb \u2014 the underlying COM Workbook object for direct platform API calls.\n Example: wb._wb.Worksheets(\"Sheet1\").Visible = False",
|
|
5
5
|
"functions": {
|
|
6
6
|
"getSheetNames": {
|
|
7
7
|
"signature": "def getSheetNames() -> list[str]",
|
|
@@ -43,14 +43,14 @@
|
|
|
43
43
|
},
|
|
44
44
|
"calculate": {
|
|
45
45
|
"signature": "def calculate() -> None",
|
|
46
|
-
"docstring": "Recalculate the entire workbook.\nDependent formulas don't update until after code block completes \
|
|
46
|
+
"docstring": "Recalculate the entire workbook.\nDependent formulas don't update until after code block completes \u2014 read in a follow-up block.",
|
|
47
47
|
"tags": [
|
|
48
48
|
"action"
|
|
49
49
|
]
|
|
50
50
|
},
|
|
51
51
|
"errorCheck": {
|
|
52
52
|
"signature": "def errorCheck(ranges: list[str] | None = None) -> str",
|
|
53
|
-
"docstring": "Scan for errors (#REF!, #DIV/0!, #NAME?, #VALUE!, #N/A, #NULL!, #NUM!).\n Args:\n ranges: Optional sheet names (\"Sheet1\") or ranges (\"Sheet1!A1:D50\"). Omit to check all.\n Returns:\n \"No issues found.\" or \"Errors (N):\nSheet1!A1: #REF!\n...\"",
|
|
53
|
+
"docstring": "Scan for errors (#REF!, #DIV/0!, #NAME?, #VALUE!, #N/A, #NULL!, #NUM!). Ranges MUST include a sheet name (\"Sheet1\" or \"Sheet1!A1:D50\") \u2014 bare ranges like \"A1:D50\" will fail.\n Args:\n ranges: Optional sheet names (\"Sheet1\") or ranges (\"Sheet1!A1:D50\"). Omit to check all.\n Returns:\n \"No issues found.\" or \"Errors (N):\nSheet1!A1: #REF!\n...\"",
|
|
54
54
|
"tags": [
|
|
55
55
|
"action",
|
|
56
56
|
"ask"
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
76
|
"Worksheet": {
|
|
77
|
-
"docstring": "Worksheet wrapper.\nUsage:\n sheet = wb.getSheet(\"Sheet1\")\n\nRaw COM access:\n sheet._ws \
|
|
77
|
+
"docstring": "Worksheet wrapper.\nUsage:\n sheet = wb.getSheet(\"Sheet1\")\n\nRaw COM access:\n sheet._ws \u2014 the underlying COM Worksheet object for direct platform API calls.\n Use for borders, text orientation, cell protection, and other properties not covered by the wrapper.\n Example: sheet._ws.Range(\"A1\").Borders(9).LineStyle = 1 # xlEdgeBottom, xlContinuous",
|
|
78
78
|
"functions": {
|
|
79
79
|
"getSheetSummary": {
|
|
80
80
|
"signature": "def getSheetSummary() -> str",
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
},
|
|
142
142
|
"setCellRange": {
|
|
143
143
|
"signature": "def setCellRange(range_addr: str, values: list[list[Any]], number_format: str | None = None, ) -> None",
|
|
144
|
-
"docstring": "Bulk write \
|
|
144
|
+
"docstring": "Bulk write \u2014 ALWAYS use for >100 cells. \"=\" prefix = formula.\nExamples:\n sheet.setCellRange(\"A1:B2\", [[1, 2], [3, 4]])\n sheet.setCellRange(\"A1:B2\", [[\"=SUM(C1)\", \"=SUM(D1)\"], [5, 6]], number_format=\"$#,##0\")",
|
|
145
145
|
"tags": [
|
|
146
146
|
"action"
|
|
147
147
|
]
|
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
},
|
|
182
182
|
"index_to_address": {
|
|
183
183
|
"signature": "def index_to_address(row: int, col: int) -> str",
|
|
184
|
-
"docstring": "Convert 0-based (row, col) to Excel address: index_to_address(0, 0) \
|
|
184
|
+
"docstring": "Convert 0-based (row, col) to Excel address: index_to_address(0, 0) \u2192 \"A1\".",
|
|
185
185
|
"tags": [
|
|
186
186
|
"action",
|
|
187
187
|
"ask"
|
|
@@ -189,7 +189,7 @@
|
|
|
189
189
|
},
|
|
190
190
|
"address_to_index": {
|
|
191
191
|
"signature": "def address_to_index(address: str) -> tuple[int, int]",
|
|
192
|
-
"docstring": "Parse \"A1\" into (row, col) 0-based tuple: address_to_index(\"B3\") \
|
|
192
|
+
"docstring": "Parse \"A1\" into (row, col) 0-based tuple: address_to_index(\"B3\") \u2192 (2, 1).",
|
|
193
193
|
"tags": [
|
|
194
194
|
"action",
|
|
195
195
|
"ask"
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
},
|
|
198
198
|
"col_letter": {
|
|
199
199
|
"signature": "def col_letter(index: int) -> str",
|
|
200
|
-
"docstring": "Convert 0-based column index to letter: col_letter(26) \
|
|
200
|
+
"docstring": "Convert 0-based column index to letter: col_letter(26) \u2192 \"AA\".",
|
|
201
201
|
"tags": [
|
|
202
202
|
"action",
|
|
203
203
|
"ask"
|
|
@@ -205,7 +205,7 @@
|
|
|
205
205
|
},
|
|
206
206
|
"col_index": {
|
|
207
207
|
"signature": "def col_index(letter: str) -> int",
|
|
208
|
-
"docstring": "Convert column letter to 0-based index: col_index(\"AA\") \
|
|
208
|
+
"docstring": "Convert column letter to 0-based index: col_index(\"AA\") \u2192 26.",
|
|
209
209
|
"tags": [
|
|
210
210
|
"action",
|
|
211
211
|
"ask"
|