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.
Files changed (31) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/app/agent-session.d.ts +4 -3
  3. package/dist/app/prompts/com-api-reference.json +9 -9
  4. package/dist/app/prompts/mog-api-reference.json +11454 -11454
  5. package/dist/app/prompts/spreadjs-api-reference.json +552 -552
  6. package/dist/app/session/autonomous-workflow.d.ts +6 -0
  7. package/dist/app/session/pending-refresh-overrides.d.ts +14 -0
  8. package/dist/app/tools/execute-code/com-executor.d.ts +1 -1
  9. package/dist/app/tools/refresh-context.d.ts +2 -0
  10. package/dist/cli.js +744 -735
  11. package/dist/cloud/cloud-shell-adapter.d.ts +2 -1
  12. package/dist/remote-control/whatsapp/transport.d.ts +1 -0
  13. package/dist/shell/interactive/interactive-mode.d.ts +1 -0
  14. package/dist/shell/session-client.d.ts +1 -1
  15. package/dist/startup/startup-xll.d.ts +1 -2
  16. package/dist/startup/sync-xll.d.ts +1 -1
  17. package/dist/startup/update-manager.d.ts +1 -1
  18. package/dist/utils/truncate.d.ts +11 -0
  19. package/package.json +3 -3
  20. package/skills/autonomous/SKILL.md +5 -1
  21. package/user-docs/dist/shortcutxl-docs.pdf +0 -0
  22. package/xll/ShortcutXL.xll +0 -0
  23. package/xll/modules/shortcut_xl/_exec_entry.py +4 -2
  24. package/xll/modules/shortcut_xl/api-reference.py +1 -1
  25. package/xll/python/Lib/site-packages/httpx-0.28.1.dist-info/RECORD +1 -1
  26. package/xll/python/Lib/site-packages/pip-26.0.1.dist-info/RECORD +3 -3
  27. package/xll/python/Scripts/httpx.exe +0 -0
  28. package/xll/python/Scripts/pip.exe +0 -0
  29. package/xll/python/Scripts/pip3.12.exe +0 -0
  30. package/xll/python/Scripts/pip3.exe +0 -0
  31. 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 query, or null if none. */
281
- consumePendingRefresh(): string | null;
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 \u00e2\u20ac\u201d the underlying COM Workbook object for direct platform API calls.\n Example: wb._wb.Worksheets(\"Sheet1\").Visible = False",
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 \u00e2\u20ac\u201d read in a follow-up block.",
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 \u00e2\u20ac\u201d 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",
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 \u00e2\u20ac\u201d 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\")",
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) \u00e2\u2020\u2019 \"A1\".",
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\") \u00e2\u2020\u2019 (2, 1).",
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) \u00e2\u2020\u2019 \"AA\".",
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\") \u00e2\u2020\u2019 26.",
208
+ "docstring": "Convert column letter to 0-based index: col_index(\"AA\") \u2192 26.",
209
209
  "tags": [
210
210
  "action",
211
211
  "ask"