shortcutxl 0.2.0

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 (423) hide show
  1. package/README.md +59 -0
  2. package/agent-docs/README.md +397 -0
  3. package/agent-docs/docs/compaction.md +390 -0
  4. package/agent-docs/docs/custom-provider.md +580 -0
  5. package/agent-docs/docs/development.md +69 -0
  6. package/agent-docs/docs/extensions.md +1971 -0
  7. package/agent-docs/docs/json.md +79 -0
  8. package/agent-docs/docs/keybindings.md +174 -0
  9. package/agent-docs/docs/models.md +293 -0
  10. package/agent-docs/docs/packages.md +209 -0
  11. package/agent-docs/docs/prompt-templates.md +67 -0
  12. package/agent-docs/docs/providers.md +186 -0
  13. package/agent-docs/docs/rpc.md +1317 -0
  14. package/agent-docs/docs/sdk.md +962 -0
  15. package/agent-docs/docs/session.md +412 -0
  16. package/agent-docs/docs/settings.md +223 -0
  17. package/agent-docs/docs/shell-aliases.md +13 -0
  18. package/agent-docs/docs/skills.md +231 -0
  19. package/agent-docs/docs/terminal-setup.md +70 -0
  20. package/agent-docs/docs/termux.md +127 -0
  21. package/agent-docs/docs/themes.md +295 -0
  22. package/agent-docs/docs/tree.md +219 -0
  23. package/agent-docs/docs/tui.md +887 -0
  24. package/agent-docs/docs/windows.md +17 -0
  25. package/agent-docs/examples/README.md +25 -0
  26. package/agent-docs/examples/extensions/README.md +205 -0
  27. package/agent-docs/examples/extensions/antigravity-image-gen.ts +447 -0
  28. package/agent-docs/examples/extensions/auto-commit-on-exit.ts +49 -0
  29. package/agent-docs/examples/extensions/bash-spawn-hook.ts +30 -0
  30. package/agent-docs/examples/extensions/bookmark.ts +50 -0
  31. package/agent-docs/examples/extensions/built-in-tool-renderer.ts +256 -0
  32. package/agent-docs/examples/extensions/claude-rules.ts +86 -0
  33. package/agent-docs/examples/extensions/commands.ts +75 -0
  34. package/agent-docs/examples/extensions/confirm-destructive.ts +59 -0
  35. package/agent-docs/examples/extensions/custom-compaction.ts +126 -0
  36. package/agent-docs/examples/extensions/custom-footer.ts +63 -0
  37. package/agent-docs/examples/extensions/custom-header.ts +73 -0
  38. package/agent-docs/examples/extensions/custom-provider-anthropic/index.ts +660 -0
  39. package/agent-docs/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  40. package/agent-docs/examples/extensions/custom-provider-anthropic/package.json +19 -0
  41. package/agent-docs/examples/extensions/custom-provider-gitlab-duo/index.ts +362 -0
  42. package/agent-docs/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  43. package/agent-docs/examples/extensions/custom-provider-gitlab-duo/test.ts +88 -0
  44. package/agent-docs/examples/extensions/custom-provider-qwen-cli/index.ts +349 -0
  45. package/agent-docs/examples/extensions/custom-provider-qwen-cli/package.json +16 -0
  46. package/agent-docs/examples/extensions/dirty-repo-guard.ts +56 -0
  47. package/agent-docs/examples/extensions/doom-overlay/README.md +46 -0
  48. package/agent-docs/examples/extensions/doom-overlay/doom/build.sh +152 -0
  49. package/agent-docs/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  50. package/agent-docs/examples/extensions/doom-overlay/doom-component.ts +133 -0
  51. package/agent-docs/examples/extensions/doom-overlay/doom-engine.ts +186 -0
  52. package/agent-docs/examples/extensions/doom-overlay/doom-keys.ts +108 -0
  53. package/agent-docs/examples/extensions/doom-overlay/index.ts +74 -0
  54. package/agent-docs/examples/extensions/doom-overlay/wad-finder.ts +51 -0
  55. package/agent-docs/examples/extensions/dynamic-resources/SKILL.md +8 -0
  56. package/agent-docs/examples/extensions/dynamic-resources/dynamic.json +79 -0
  57. package/agent-docs/examples/extensions/dynamic-resources/dynamic.md +5 -0
  58. package/agent-docs/examples/extensions/dynamic-resources/index.ts +15 -0
  59. package/agent-docs/examples/extensions/dynamic-tools.ts +77 -0
  60. package/agent-docs/examples/extensions/event-bus.ts +43 -0
  61. package/agent-docs/examples/extensions/file-trigger.ts +41 -0
  62. package/agent-docs/examples/extensions/git-checkpoint.ts +53 -0
  63. package/agent-docs/examples/extensions/handoff.ts +155 -0
  64. package/agent-docs/examples/extensions/hello.ts +25 -0
  65. package/agent-docs/examples/extensions/inline-bash.ts +94 -0
  66. package/agent-docs/examples/extensions/input-transform.ts +43 -0
  67. package/agent-docs/examples/extensions/interactive-shell.ts +209 -0
  68. package/agent-docs/examples/extensions/mac-system-theme.ts +47 -0
  69. package/agent-docs/examples/extensions/message-renderer.ts +59 -0
  70. package/agent-docs/examples/extensions/minimal-mode.ts +430 -0
  71. package/agent-docs/examples/extensions/modal-editor.ts +90 -0
  72. package/agent-docs/examples/extensions/model-status.ts +31 -0
  73. package/agent-docs/examples/extensions/notify.ts +55 -0
  74. package/agent-docs/examples/extensions/overlay-qa-tests.ts +936 -0
  75. package/agent-docs/examples/extensions/overlay-test.ts +159 -0
  76. package/agent-docs/examples/extensions/permission-gate.ts +37 -0
  77. package/agent-docs/examples/extensions/pirate.ts +47 -0
  78. package/agent-docs/examples/extensions/plan-mode/README.md +65 -0
  79. package/agent-docs/examples/extensions/plan-mode/index.ts +363 -0
  80. package/agent-docs/examples/extensions/plan-mode/utils.ts +173 -0
  81. package/agent-docs/examples/extensions/preset.ts +418 -0
  82. package/agent-docs/examples/extensions/protected-paths.ts +30 -0
  83. package/agent-docs/examples/extensions/qna.ts +122 -0
  84. package/agent-docs/examples/extensions/question.ts +278 -0
  85. package/agent-docs/examples/extensions/questionnaire.ts +440 -0
  86. package/agent-docs/examples/extensions/rainbow-editor.ts +90 -0
  87. package/agent-docs/examples/extensions/reload-runtime.ts +37 -0
  88. package/agent-docs/examples/extensions/rpc-demo.ts +124 -0
  89. package/agent-docs/examples/extensions/sandbox/index.ts +324 -0
  90. package/agent-docs/examples/extensions/sandbox/package-lock.json +92 -0
  91. package/agent-docs/examples/extensions/sandbox/package.json +19 -0
  92. package/agent-docs/examples/extensions/send-user-message.ts +97 -0
  93. package/agent-docs/examples/extensions/session-name.ts +27 -0
  94. package/agent-docs/examples/extensions/shutdown-command.ts +69 -0
  95. package/agent-docs/examples/extensions/snake.ts +343 -0
  96. package/agent-docs/examples/extensions/space-invaders.ts +566 -0
  97. package/agent-docs/examples/extensions/ssh.ts +233 -0
  98. package/agent-docs/examples/extensions/status-line.ts +40 -0
  99. package/agent-docs/examples/extensions/subagent/README.md +172 -0
  100. package/agent-docs/examples/extensions/subagent/agents/planner.md +37 -0
  101. package/agent-docs/examples/extensions/subagent/agents/reviewer.md +35 -0
  102. package/agent-docs/examples/extensions/subagent/agents/scout.md +50 -0
  103. package/agent-docs/examples/extensions/subagent/agents/worker.md +24 -0
  104. package/agent-docs/examples/extensions/subagent/agents.ts +130 -0
  105. package/agent-docs/examples/extensions/subagent/index.ts +1068 -0
  106. package/agent-docs/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  107. package/agent-docs/examples/extensions/subagent/prompts/implement.md +10 -0
  108. package/agent-docs/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  109. package/agent-docs/examples/extensions/summarize.ts +206 -0
  110. package/agent-docs/examples/extensions/system-prompt-header.ts +17 -0
  111. package/agent-docs/examples/extensions/timed-confirm.ts +72 -0
  112. package/agent-docs/examples/extensions/titlebar-spinner.ts +58 -0
  113. package/agent-docs/examples/extensions/todo.ts +314 -0
  114. package/agent-docs/examples/extensions/tool-override.ts +146 -0
  115. package/agent-docs/examples/extensions/tools.ts +145 -0
  116. package/agent-docs/examples/extensions/trigger-compact.ts +40 -0
  117. package/agent-docs/examples/extensions/truncated-tool.ts +194 -0
  118. package/agent-docs/examples/extensions/widget-placement.ts +17 -0
  119. package/agent-docs/examples/extensions/with-deps/index.ts +37 -0
  120. package/agent-docs/examples/extensions/with-deps/package-lock.json +31 -0
  121. package/agent-docs/examples/extensions/with-deps/package.json +22 -0
  122. package/agent-docs/examples/rpc-extension-ui.ts +654 -0
  123. package/agent-docs/examples/sdk/01-minimal.ts +22 -0
  124. package/agent-docs/examples/sdk/02-custom-model.ts +48 -0
  125. package/agent-docs/examples/sdk/03-custom-prompt.ts +55 -0
  126. package/agent-docs/examples/sdk/04-skills.ts +53 -0
  127. package/agent-docs/examples/sdk/05-tools.ts +56 -0
  128. package/agent-docs/examples/sdk/06-extensions.ts +88 -0
  129. package/agent-docs/examples/sdk/07-context-files.ts +40 -0
  130. package/agent-docs/examples/sdk/08-prompt-templates.ts +47 -0
  131. package/agent-docs/examples/sdk/09-api-keys-and-oauth.ts +48 -0
  132. package/agent-docs/examples/sdk/10-settings.ts +54 -0
  133. package/agent-docs/examples/sdk/11-sessions.ts +48 -0
  134. package/agent-docs/examples/sdk/12-full-control.ts +82 -0
  135. package/agent-docs/examples/sdk/README.md +144 -0
  136. package/agent-docs/xll-skill.md +61 -0
  137. package/agent-docs/xll-spec.md +110 -0
  138. package/dist/cli/args.js +290 -0
  139. package/dist/cli/config-selector.js +31 -0
  140. package/dist/cli/file-processor.js +79 -0
  141. package/dist/cli/list-models.js +92 -0
  142. package/dist/cli/package-commands.js +210 -0
  143. package/dist/cli/report-settings-errors.js +11 -0
  144. package/dist/cli/session-picker.js +34 -0
  145. package/dist/cli.js +19 -0
  146. package/dist/config.js +288 -0
  147. package/dist/core/abort.js +15 -0
  148. package/dist/core/agent-loop.js +352 -0
  149. package/dist/core/agent-session.js +2019 -0
  150. package/dist/core/agent.js +410 -0
  151. package/dist/core/auth-storage.js +456 -0
  152. package/dist/core/bash-executor.js +222 -0
  153. package/dist/core/compaction/branch-summarization.js +242 -0
  154. package/dist/core/compaction/compaction.js +610 -0
  155. package/dist/core/compaction/index.js +7 -0
  156. package/dist/core/compaction/utils.js +139 -0
  157. package/dist/core/defaults.js +6 -0
  158. package/dist/core/diagnostics.js +2 -0
  159. package/dist/core/event-bus.js +25 -0
  160. package/dist/core/exec.js +71 -0
  161. package/dist/core/export-html/ansi-to-html.js +256 -0
  162. package/dist/core/export-html/index.js +238 -0
  163. package/dist/core/export-html/session-view-model.js +342 -0
  164. package/dist/core/export-html/template.css +1110 -0
  165. package/dist/core/export-html/template.html +76 -0
  166. package/dist/core/export-html/template.js +1990 -0
  167. package/dist/core/export-html/tool-renderer.js +63 -0
  168. package/dist/core/export-html/vendor/highlight.min.js +7725 -0
  169. package/dist/core/export-html/vendor/marked.min.js +1803 -0
  170. package/dist/core/extensions/index.js +9 -0
  171. package/dist/core/extensions/loader.js +422 -0
  172. package/dist/core/extensions/runner.js +651 -0
  173. package/dist/core/extensions/types.js +35 -0
  174. package/dist/core/extensions/wrapper.js +102 -0
  175. package/dist/core/footer-data-provider.js +162 -0
  176. package/dist/core/index.js +9 -0
  177. package/dist/core/keybindings.js +153 -0
  178. package/dist/core/messages.js +133 -0
  179. package/dist/core/model-registry.js +539 -0
  180. package/dist/core/model-resolver.js +370 -0
  181. package/dist/core/package-manager.js +1485 -0
  182. package/dist/core/prompt-templates.js +253 -0
  183. package/dist/core/resolve-config-value.js +59 -0
  184. package/dist/core/resource-loader.js +700 -0
  185. package/dist/core/sdk.js +197 -0
  186. package/dist/core/session-bash.js +99 -0
  187. package/dist/core/session-compaction.js +165 -0
  188. package/dist/core/session-manager.js +1153 -0
  189. package/dist/core/session-models.js +99 -0
  190. package/dist/core/session-retry.js +155 -0
  191. package/dist/core/settings-manager.js +572 -0
  192. package/dist/core/skills.js +382 -0
  193. package/dist/core/slash-commands.js +31 -0
  194. package/dist/core/system-prompt.js +161 -0
  195. package/dist/core/theme.js +770 -0
  196. package/dist/core/timings.js +26 -0
  197. package/dist/core/tools/bash.js +258 -0
  198. package/dist/core/tools/edit-diff.js +245 -0
  199. package/dist/core/tools/edit.js +148 -0
  200. package/dist/core/tools/find.js +208 -0
  201. package/dist/core/tools/grep.js +246 -0
  202. package/dist/core/tools/index.js +67 -0
  203. package/dist/core/tools/ls.js +123 -0
  204. package/dist/core/tools/path-utils.js +81 -0
  205. package/dist/core/tools/read.js +160 -0
  206. package/dist/core/tools/truncate.js +70 -0
  207. package/dist/core/tools/write.js +82 -0
  208. package/dist/custom/agents/action.js +13 -0
  209. package/dist/custom/agents/document-reader.js +70 -0
  210. package/dist/custom/agents/general.js +26 -0
  211. package/dist/custom/agents/index.js +49 -0
  212. package/dist/custom/agents/installation.js +13 -0
  213. package/dist/custom/agents/types.js +7 -0
  214. package/dist/custom/auth/refresh-timer.js +33 -0
  215. package/dist/custom/auth/shortcut-oauth.js +145 -0
  216. package/dist/custom/constants.js +21 -0
  217. package/dist/custom/context/workbook-summary.js +73 -0
  218. package/dist/custom/credits/shortcut-credits.js +29 -0
  219. package/dist/custom/cron/cron-daemon-entry.js +18 -0
  220. package/dist/custom/cron/daemon-ipc.js +131 -0
  221. package/dist/custom/cron/daemon.js +224 -0
  222. package/dist/custom/cron/jobs.js +226 -0
  223. package/dist/custom/cron/run-log.js +51 -0
  224. package/dist/custom/cron/schedule.js +72 -0
  225. package/dist/custom/cron/status-line.js +98 -0
  226. package/dist/custom/cron/store.js +87 -0
  227. package/dist/custom/cron/types.js +8 -0
  228. package/dist/custom/dev/index.js +59 -0
  229. package/dist/custom/dev/trace-export.js +58 -0
  230. package/dist/custom/ensure-excel.js +63 -0
  231. package/dist/custom/excel-config.js +36 -0
  232. package/dist/custom/preflight.js +422 -0
  233. package/dist/custom/prompts/action.js +100 -0
  234. package/dist/custom/prompts/api.js +66 -0
  235. package/dist/custom/prompts/installation.js +124 -0
  236. package/dist/custom/prompts/shared.js +138 -0
  237. package/dist/custom/providers/llm-usage.js +42 -0
  238. package/dist/custom/providers/message-converter.js +74 -0
  239. package/dist/custom/providers/provider-ids.js +9 -0
  240. package/dist/custom/providers/register-openai-codex-provider.js +27 -0
  241. package/dist/custom/providers/register-shortcut-provider.js +52 -0
  242. package/dist/custom/providers/shortcut-invoke.js +117 -0
  243. package/dist/custom/providers/shortcut-stream.js +252 -0
  244. package/dist/custom/providers/sse-protocol.js +38 -0
  245. package/dist/custom/sync-xll.js +130 -0
  246. package/dist/custom/tools/cron.js +413 -0
  247. package/dist/custom/tools/excel-exec.js +167 -0
  248. package/dist/custom/tools/excel-range.js +50 -0
  249. package/dist/custom/tools/llm-analysis.js +265 -0
  250. package/dist/custom/tools/render-helpers.js +38 -0
  251. package/dist/custom/tools/switch-mode.js +94 -0
  252. package/dist/custom/tools/task/agents.js +6 -0
  253. package/dist/custom/tools/task/index.js +8 -0
  254. package/dist/custom/tools/task/render.js +348 -0
  255. package/dist/custom/tools/task/subprocess.js +320 -0
  256. package/dist/custom/tools/task/task.js +205 -0
  257. package/dist/custom/tools/todo-list.js +195 -0
  258. package/dist/custom/tracing/session-upload.js +93 -0
  259. package/dist/index.js +45 -0
  260. package/dist/main.js +613 -0
  261. package/dist/migrations.js +265 -0
  262. package/dist/modes/index.js +8 -0
  263. package/dist/modes/interactive/components/armin.js +337 -0
  264. package/dist/modes/interactive/components/assistant-message.js +94 -0
  265. package/dist/modes/interactive/components/bash-execution.js +171 -0
  266. package/dist/modes/interactive/components/bordered-loader.js +51 -0
  267. package/dist/modes/interactive/components/branch-summary-message.js +45 -0
  268. package/dist/modes/interactive/components/compaction-summary-message.js +46 -0
  269. package/dist/modes/interactive/components/config-selector.js +488 -0
  270. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  271. package/dist/modes/interactive/components/custom-editor.js +93 -0
  272. package/dist/modes/interactive/components/custom-message.js +81 -0
  273. package/dist/modes/interactive/components/daxnuts.js +140 -0
  274. package/dist/modes/interactive/components/diff.js +133 -0
  275. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  276. package/dist/modes/interactive/components/extension-editor.js +105 -0
  277. package/dist/modes/interactive/components/extension-input.js +61 -0
  278. package/dist/modes/interactive/components/extension-selector.js +78 -0
  279. package/dist/modes/interactive/components/footer.js +309 -0
  280. package/dist/modes/interactive/components/index.js +33 -0
  281. package/dist/modes/interactive/components/keybinding-hints.js +61 -0
  282. package/dist/modes/interactive/components/layout.js +64 -0
  283. package/dist/modes/interactive/components/login-dialog.js +148 -0
  284. package/dist/modes/interactive/components/model-selector.js +237 -0
  285. package/dist/modes/interactive/components/oauth-selector.js +111 -0
  286. package/dist/modes/interactive/components/session-selector-search.js +157 -0
  287. package/dist/modes/interactive/components/session-selector.js +860 -0
  288. package/dist/modes/interactive/components/settings-selector.js +123 -0
  289. package/dist/modes/interactive/components/show-images-selector.js +35 -0
  290. package/dist/modes/interactive/components/skill-invocation-message.js +48 -0
  291. package/dist/modes/interactive/components/theme-selector.js +47 -0
  292. package/dist/modes/interactive/components/thinking-selector.js +47 -0
  293. package/dist/modes/interactive/components/tool-execution.js +789 -0
  294. package/dist/modes/interactive/components/tool-group.js +106 -0
  295. package/dist/modes/interactive/components/tree-selector.js +962 -0
  296. package/dist/modes/interactive/components/user-message-selector.js +115 -0
  297. package/dist/modes/interactive/components/user-message.js +48 -0
  298. package/dist/modes/interactive/components/visual-truncate.js +33 -0
  299. package/dist/modes/interactive/file-attachments.js +135 -0
  300. package/dist/modes/interactive/interactive-mode.js +3775 -0
  301. package/dist/modes/interactive/theme/dark.json +85 -0
  302. package/dist/modes/interactive/theme/light.json +85 -0
  303. package/dist/modes/interactive/theme/theme-schema.json +335 -0
  304. package/dist/modes/interactive/theme/theme.js +177 -0
  305. package/dist/modes/print-mode.js +101 -0
  306. package/dist/modes/rpc/rpc-client.js +387 -0
  307. package/dist/modes/rpc/rpc-mode.js +509 -0
  308. package/dist/modes/rpc/rpc-types.js +8 -0
  309. package/dist/subagent-entry.js +145 -0
  310. package/dist/tool-names.js +34 -0
  311. package/dist/tui/autocomplete.js +596 -0
  312. package/dist/tui/components/box.js +104 -0
  313. package/dist/tui/components/cancellable-loader.js +35 -0
  314. package/dist/tui/components/editor.js +1679 -0
  315. package/dist/tui/components/image.js +69 -0
  316. package/dist/tui/components/input.js +433 -0
  317. package/dist/tui/components/loader.js +49 -0
  318. package/dist/tui/components/markdown.js +629 -0
  319. package/dist/tui/components/select-list.js +152 -0
  320. package/dist/tui/components/settings-list.js +185 -0
  321. package/dist/tui/components/spacer.js +23 -0
  322. package/dist/tui/components/text.js +89 -0
  323. package/dist/tui/components/truncated-text.js +51 -0
  324. package/dist/tui/editor-component.js +2 -0
  325. package/dist/tui/fuzzy.js +107 -0
  326. package/dist/tui/get-east-asian-width/index.js +32 -0
  327. package/dist/tui/get-east-asian-width/lookup.js +404 -0
  328. package/dist/tui/index.js +32 -0
  329. package/dist/tui/keybindings.js +114 -0
  330. package/dist/tui/keys.js +959 -0
  331. package/dist/tui/kill-ring.js +44 -0
  332. package/dist/tui/stdin-buffer.js +317 -0
  333. package/dist/tui/terminal-image.js +288 -0
  334. package/dist/tui/terminal.js +249 -0
  335. package/dist/tui/tui/autocomplete.js +596 -0
  336. package/dist/tui/tui/components/box.js +106 -0
  337. package/dist/tui/tui/components/cancellable-loader.js +35 -0
  338. package/dist/tui/tui/components/editor.js +1679 -0
  339. package/dist/tui/tui/components/image.js +69 -0
  340. package/dist/tui/tui/components/input.js +433 -0
  341. package/dist/tui/tui/components/loader.js +49 -0
  342. package/dist/tui/tui/components/markdown.js +629 -0
  343. package/dist/tui/tui/components/select-list.js +152 -0
  344. package/dist/tui/tui/components/settings-list.js +185 -0
  345. package/dist/tui/tui/components/spacer.js +23 -0
  346. package/dist/tui/tui/components/text.js +91 -0
  347. package/dist/tui/tui/components/truncated-text.js +51 -0
  348. package/dist/tui/tui/editor-component.js +2 -0
  349. package/dist/tui/tui/fuzzy.js +107 -0
  350. package/dist/tui/tui/get-east-asian-width/index.js +32 -0
  351. package/dist/tui/tui/get-east-asian-width/lookup.js +404 -0
  352. package/dist/tui/tui/index.js +32 -0
  353. package/dist/tui/tui/keybindings.js +114 -0
  354. package/dist/tui/tui/keys.js +959 -0
  355. package/dist/tui/tui/kill-ring.js +44 -0
  356. package/dist/tui/tui/stdin-buffer.js +317 -0
  357. package/dist/tui/tui/terminal-image.js +288 -0
  358. package/dist/tui/tui/terminal.js +249 -0
  359. package/dist/tui/tui/tui.js +955 -0
  360. package/dist/tui/tui/undo-stack.js +25 -0
  361. package/dist/tui/tui/utils.js +800 -0
  362. package/dist/tui/tui.js +955 -0
  363. package/dist/tui/undo-stack.js +25 -0
  364. package/dist/tui/utils.js +800 -0
  365. package/dist/utils/changelog.js +87 -0
  366. package/dist/utils/clipboard-image.js +164 -0
  367. package/dist/utils/clipboard-native.js +14 -0
  368. package/dist/utils/clipboard.js +67 -0
  369. package/dist/utils/frontmatter.js +26 -0
  370. package/dist/utils/git.js +166 -0
  371. package/dist/utils/image-convert.js +35 -0
  372. package/dist/utils/image-resize.js +183 -0
  373. package/dist/utils/mime.js +26 -0
  374. package/dist/utils/photon.js +121 -0
  375. package/dist/utils/shell.js +217 -0
  376. package/dist/utils/sleep.js +17 -0
  377. package/dist/utils/tools-manager.js +259 -0
  378. package/package.json +78 -0
  379. package/skills/excel-com-api/SKILL.md +74 -0
  380. package/skills/excel-com-api/excel-type-library.py +27767 -0
  381. package/skills/excel-com-api/office-type-library.py +10867 -0
  382. package/skills/integrations/SKILL.md +138 -0
  383. package/skills/integrations/alphasense.md +457 -0
  384. package/skills/integrations/bloomberg.md +803 -0
  385. package/skills/integrations/calcbench.md +315 -0
  386. package/skills/integrations/capiq.md +848 -0
  387. package/skills/integrations/dynamics-365-finance.md +354 -0
  388. package/skills/integrations/earnings_transcripts.md +387 -0
  389. package/skills/integrations/factset.md +758 -0
  390. package/skills/integrations/ice-fixed-income.md +344 -0
  391. package/skills/integrations/moodys-analytics.md +313 -0
  392. package/skills/integrations/morningstar.md +433 -0
  393. package/skills/integrations/nasdaq-data-link.md +249 -0
  394. package/skills/integrations/pitchbook.md +413 -0
  395. package/skills/integrations/preqin.md +422 -0
  396. package/skills/integrations/quickbooks.md +289 -0
  397. package/skills/integrations/quickfs.md +314 -0
  398. package/skills/integrations/refinitiv.md +473 -0
  399. package/skills/integrations/sage-intacct.md +401 -0
  400. package/skills/integrations/visible-alpha.md +320 -0
  401. package/skills/integrations/xero.md +393 -0
  402. package/skills/integrations/ycharts.md +306 -0
  403. package/skills/pdf-creation/SKILL.md +93 -0
  404. package/skills/pdf-extraction/SKILL.md +32 -0
  405. package/skills/powerpoint-creation/SKILL.md +110 -0
  406. package/skills/sec-edgar/SKILL.md +127 -0
  407. package/skills/sec-edgar/sec_to_pdf.py +109 -0
  408. package/xll/ShortcutXL.xll +0 -0
  409. package/xll/modules/debug_render.py +272 -0
  410. package/xll/modules/gameboy.py +241 -0
  411. package/xll/modules/pong.py +188 -0
  412. package/xll/modules/shortcut_xl/__init__.py +18 -0
  413. package/xll/modules/shortcut_xl/_categorize.py +200 -0
  414. package/xll/modules/shortcut_xl/_com.py +108 -0
  415. package/xll/modules/shortcut_xl/_format.py +252 -0
  416. package/xll/modules/shortcut_xl/_log.py +12 -0
  417. package/xll/modules/shortcut_xl/_managed.py +116 -0
  418. package/xll/modules/shortcut_xl/_registry.py +44 -0
  419. package/xll/modules/shortcut_xl/_threading.py +161 -0
  420. package/xll/modules/shortcut_xl/_tracking.py +283 -0
  421. package/xll/modules/stocks.py +100 -0
  422. package/xll/python3.dll +0 -0
  423. package/xll/python312.dll +0 -0
@@ -0,0 +1,320 @@
1
+ **Visible Alpha Excel Formula Guide**
2
+
3
+ **Intro**
4
+ You have full access to Visible Alpha consensus estimates data through the native Excel Add-in, but you should only pull Visible Alpha data **when the user explicitly tells you to**. Visible Alpha aggregates detailed analyst estimates from sell-side research, providing granular consensus data for revenue segments, KPIs, and financial metrics. You can retrieve any data point by writing VA formulas directly in Excel cells.
5
+
6
+ **IMPORTANT:** Before completing a task involving Visible Alpha, you must verify:
7
+ 1. Your VAData and VAdetail formulas do not return errors.
8
+ 2. All values should seem reasonable and make intuitive sense based on your general knowledge of analyst estimates.
9
+ 3. Use cell references for tickers and parameters when possible as opposed to hardcoded values.
10
+ 4. Be aware that coverage varies by company - large caps have more detail than small caps.
11
+ 5. Some custom line items may require user help to identify correct field IDs.
12
+
13
+ You should essentially gut check every value that shows up. If there are any errors or the values seem wrong, you likely wrote the formula syntax incorrectly or are using invalid line item IDs. Please correct the formula until it outputs the proper value.
14
+
15
+ **Note:** Visible Alpha is a Pattern B integration. While most standard metrics work directly, some company-specific or custom fields may require the user to look up field IDs in the Visible Alpha platform.
16
+
17
+ ---
18
+
19
+ **Visible Alpha Excel Functions Overview**
20
+
21
+ Visible Alpha provides these main Excel functions:
22
+
23
+ | Function | Purpose | Use Case |
24
+ |----------|---------|----------|
25
+ | VAData | Consensus estimates | Line item data for any period |
26
+ | VAdetail | Estimate details | Contributor-level data, high/low/mean |
27
+ | VACompany | Company information | Metadata about coverage |
28
+ | VAContributor | Broker details | Information about contributing analysts |
29
+
30
+ ---
31
+
32
+ **1. VAData - Consensus Estimates**
33
+
34
+ Returns consensus estimate data for a specific line item and period.
35
+
36
+ **Syntax:** =VAData("Ticker", "Period", "LineItem", "Source", "DataType")
37
+
38
+ **Parameters:**
39
+ | Parameter | Description | Required |
40
+ |-----------|-------------|----------|
41
+ | Ticker | Stock ticker symbol | Yes |
42
+ | Period | Time period (see Period section) | Yes |
43
+ | LineItem | Line item ID or name | Yes |
44
+ | Source | Data source (Consensus, Custom, broker) | No (default: Consensus) |
45
+ | DataType | STD (standardized) or NMV (native) | No (default: STD) |
46
+
47
+ **Examples:**
48
+ =VAData("AAPL", "Q0", "190", "Consensus", "STD")
49
+ -> Apple's current quarter consensus revenue.
50
+
51
+ =VAData("MSFT", "Y0", "217", "Consensus", "STD")
52
+ -> Microsoft's current year consensus net income.
53
+
54
+ =VAData("GOOGL", "Q+1", "219")
55
+ -> Alphabet's next quarter consensus diluted EPS.
56
+
57
+ **Using Cell References:**
58
+ =VAData(A1, "Y0", "190")
59
+ -> Revenue for ticker in cell A1.
60
+
61
+ =VAData("AAPL", B1, "190")
62
+ -> Apple revenue for period in cell B1.
63
+
64
+ ---
65
+
66
+ **2. VAdetail - Estimate Details**
67
+
68
+ Returns detailed estimate information including contributor-level data.
69
+
70
+ **Syntax:** =VAdetail("Property", "Ticker", "Source", "Period")
71
+
72
+ **Properties:**
73
+ | Property | Description |
74
+ |----------|-------------|
75
+ | Mean | Average estimate |
76
+ | Median | Median estimate |
77
+ | High | Highest estimate |
78
+ | Low | Lowest estimate |
79
+ | StdDev | Standard deviation |
80
+ | NumEst | Number of estimates |
81
+ | LastUpdate | Last update date |
82
+
83
+ **Examples:**
84
+ =VAdetail("High", "AAPL", "Consensus", "Y0")
85
+ -> Highest estimate for Apple current year.
86
+
87
+ =VAdetail("Low", "MSFT", "Consensus", "Q+1")
88
+ -> Lowest estimate for Microsoft next quarter.
89
+
90
+ =VAdetail("NumEst", "GOOGL", "Consensus", "Y0")
91
+ -> Number of analysts covering Google.
92
+
93
+ ---
94
+
95
+ **3. Period Specification**
96
+
97
+ **Relative Periods:**
98
+ | Period | Description |
99
+ |--------|-------------|
100
+ | Q0 | Current fiscal quarter |
101
+ | Q+1 | Next fiscal quarter |
102
+ | Q+2 | Two quarters ahead |
103
+ | Q-1 | Prior fiscal quarter |
104
+ | Y0 | Current fiscal year |
105
+ | Y+1 | Next fiscal year |
106
+ | Y+2 | Two years ahead |
107
+ | Y-1 | Prior fiscal year |
108
+
109
+ **Absolute Periods:**
110
+ | Period | Description |
111
+ |--------|-------------|
112
+ | Q1-2024 | Q1 of fiscal 2024 |
113
+ | Q2-2024 | Q2 of fiscal 2024 |
114
+ | 3QFY-2024 | Third quarter of FY2024 |
115
+ | FY-2024 | Fiscal year 2024 |
116
+
117
+ **Semi-Annual:**
118
+ | Period | Description |
119
+ |--------|-------------|
120
+ | H1-2024 | First half 2024 |
121
+ | H2-2024 | Second half 2024 |
122
+
123
+ ---
124
+
125
+ **4. Standardized Line Item IDs**
126
+
127
+ Visible Alpha uses numeric IDs for standardized line items. These work across all covered companies.
128
+
129
+ **Income Statement:**
130
+ | ID | Line Item |
131
+ |----|-----------|
132
+ | 190 | Total Revenue |
133
+ | 191 | Product Revenue |
134
+ | 192 | Service Revenue |
135
+ | 193 | Other Revenue |
136
+ | 194 | Gross Profit |
137
+ | 195 | Cost of Goods Sold |
138
+ | 200 | Operating Expenses |
139
+ | 201 | R&D Expense |
140
+ | 202 | SG&A Expense |
141
+ | 204 | Operating Income (EBIT) |
142
+ | 205 | EBITDA |
143
+ | 210 | Interest Expense |
144
+ | 211 | Interest Income |
145
+ | 215 | Pre-tax Income |
146
+ | 216 | Tax Expense |
147
+ | 217 | Net Income |
148
+ | 218 | EPS (Basic) |
149
+ | 219 | EPS (Diluted) |
150
+
151
+ **Profitability:**
152
+ | ID | Line Item |
153
+ |----|-----------|
154
+ | 4250 | EBITDA |
155
+ | 4251 | Adjusted EBITDA |
156
+ | 4260 | EBIT |
157
+ | 4261 | Adjusted EBIT |
158
+ | 4441 | Free Cash Flow |
159
+ | 4442 | Operating Cash Flow |
160
+
161
+ **Per Share:**
162
+ | ID | Line Item |
163
+ |----|-----------|
164
+ | 218 | EPS Basic |
165
+ | 219 | EPS Diluted |
166
+ | 220 | Adjusted EPS |
167
+ | 230 | Dividends Per Share |
168
+ | 231 | Book Value Per Share |
169
+
170
+ **Margins (as %):**
171
+ | ID | Line Item |
172
+ |----|-----------|
173
+ | 300 | Gross Margin |
174
+ | 301 | Operating Margin |
175
+ | 302 | EBITDA Margin |
176
+ | 303 | Net Margin |
177
+
178
+ **Balance Sheet:**
179
+ | ID | Line Item |
180
+ |----|-----------|
181
+ | 500 | Total Assets |
182
+ | 501 | Cash & Equivalents |
183
+ | 510 | Total Debt |
184
+ | 520 | Shareholders' Equity |
185
+ | 530 | Net Debt |
186
+
187
+ **Cash Flow:**
188
+ | ID | Line Item |
189
+ |----|-----------|
190
+ | 600 | Operating Cash Flow |
191
+ | 610 | Capital Expenditures |
192
+ | 620 | Free Cash Flow |
193
+ | 630 | Dividends Paid |
194
+
195
+ ---
196
+
197
+ **5. Data Source Options**
198
+
199
+ | Source | Description |
200
+ |--------|-------------|
201
+ | Consensus | Aggregated estimate from all contributors |
202
+ | Custom | User's custom model (if configured) |
203
+ | [Broker Name] | Specific broker's estimate (e.g., "Goldman Sachs") |
204
+
205
+ ---
206
+
207
+ **6. Example Formulas by Use Case**
208
+
209
+ **Revenue Estimates:**
210
+ =VAData("AAPL", "Q0", "190")
211
+ -> Apple current quarter revenue consensus.
212
+
213
+ =VAData("MSFT", "Y+1", "190")
214
+ -> Microsoft next year revenue estimate.
215
+
216
+ =VAData("AMZN", "Q+1", "191")
217
+ -> Amazon next quarter product revenue.
218
+
219
+ **Earnings Estimates:**
220
+ =VAData("AAPL", "Y0", "219")
221
+ -> Apple current year diluted EPS consensus.
222
+
223
+ =VAData("GOOGL", "Q0", "217")
224
+ -> Google current quarter net income.
225
+
226
+ =VAData("META", "Y+1", "220")
227
+ -> Meta next year adjusted EPS.
228
+
229
+ **EBITDA & Profitability:**
230
+ =VAData("NVDA", "Y0", "4250")
231
+ -> NVIDIA current year EBITDA.
232
+
233
+ =VAData("TSLA", "Y0", "302")
234
+ -> Tesla EBITDA margin estimate.
235
+
236
+ **Estimate Ranges:**
237
+ =VAdetail("High", "AAPL", "Consensus", "Y0")
238
+ -> Apple highest estimate.
239
+
240
+ =VAdetail("Low", "AAPL", "Consensus", "Y0")
241
+ -> Apple lowest estimate.
242
+
243
+ =VAdetail("High", "AAPL", "Consensus", "Y0") - VAdetail("Low", "AAPL", "Consensus", "Y0")
244
+ -> Apple estimate spread.
245
+
246
+ **Analyst Coverage:**
247
+ =VAdetail("NumEst", "AAPL", "Consensus", "Y0")
248
+ -> Number of analysts covering Apple.
249
+
250
+ =VAdetail("LastUpdate", "MSFT", "Consensus", "Y0")
251
+ -> Date of last estimate update.
252
+
253
+ **Multi-Period Analysis:**
254
+ =VAData("AAPL", "Y0", "190") / VAData("AAPL", "Y-1", "190") - 1
255
+ -> Apple YoY revenue growth estimate.
256
+
257
+ **Segment Revenue (if available):**
258
+ =VAData("AAPL", "Y0", "191")
259
+ -> Apple product revenue estimate.
260
+
261
+ =VAData("AAPL", "Y0", "192")
262
+ -> Apple services revenue estimate.
263
+
264
+ ---
265
+
266
+ **7. Company-Specific Line Items**
267
+
268
+ Beyond standardized line items, Visible Alpha tracks company-specific KPIs and segment data. These vary by company and may require looking up the field ID in the platform.
269
+
270
+ **Common Company-Specific Metrics:**
271
+ | Type | Examples |
272
+ |------|----------|
273
+ | Segment Revenue | iPhone, Mac, iPad, Services (Apple) |
274
+ | KPIs | Monthly Active Users, ARPU, Subscribers |
275
+ | Unit Economics | Gross Merchandise Value, Take Rate |
276
+ | Operating Metrics | Store Count, Same-Store Sales |
277
+
278
+ **To find custom field IDs:**
279
+ 1. Open Visible Alpha platform
280
+ 2. Navigate to company page
281
+ 3. Find the line item in the estimates table
282
+ 4. Note the field ID or use the Excel Field Picker
283
+
284
+ ---
285
+
286
+ **8. Error Handling**
287
+
288
+ **Common Errors:**
289
+ | Error | Cause | Solution |
290
+ |-------|-------|----------|
291
+ | #VALUE! | Invalid ticker | Verify ticker symbol |
292
+ | #N/A | No coverage | Company may not be covered |
293
+ | #REF! | Invalid line item | Check line item ID exists |
294
+ | 0 or blank | No estimate | Period may not have estimates yet |
295
+ | Wrong value | Wrong data type | Try STD vs NMV parameter |
296
+
297
+ **Debugging Tips:**
298
+ 1. Verify company coverage on Visible Alpha platform
299
+ 2. Check line item ID is valid (use standardized IDs first)
300
+ 3. Ensure period format is correct (Q0, Y0, Q1-2024, etc.)
301
+ 4. For company-specific fields, look up ID in platform
302
+ 5. Try Consensus source before specific brokers
303
+
304
+ ---
305
+
306
+ **Final Checklist:**
307
+ - Is the ticker covered by Visible Alpha?
308
+ - What line item is needed? (Use standardized ID if possible)
309
+ - What period? (Current Q0/Y0, future Q+1/Y+1, absolute Q1-2024)
310
+ - Is this consensus or a specific broker's estimate?
311
+ - For custom/segment data, do you have the correct field ID?
312
+ - Is the Visible Alpha add-in connected?
313
+
314
+ ---
315
+
316
+ **Additional Resources:**
317
+ - Visible Alpha Platform: https://www.visiblealpha.com/
318
+ - Excel Add-in Guide: https://support.visiblealpha.com/hc/en-us/articles/115000909168
319
+ - API Documentation: https://www.visiblealpha.com/api-documentation
320
+ - Field Reference: Available within Visible Alpha platform
@@ -0,0 +1,393 @@
1
+ **Xero Excel Formula Guide**
2
+
3
+ **Intro**
4
+ You have full access to Xero accounting data through Scott's Add-in for Excel, but you should only pull Xero data **when the user explicitly tells you to**. Scott's Add-in provides direct Excel formulas to retrieve general ledger balances, contacts, invoices, bills, bank transactions, and more. You can retrieve any data point by writing SCOTT formulas directly in Excel cells.
5
+
6
+ **IMPORTANT:** Before completing a task involving Xero, you must verify:
7
+ 1. Your SCOTT formulas do not return errors.
8
+ 2. All values should seem reasonable and make intuitive sense based on your general knowledge of accounting.
9
+ 3. Use cell references for account codes and parameters when possible as opposed to hardcoded values.
10
+ 4. Be aware that Xero API has rate limits; avoid excessive formula refreshes.
11
+ 5. Account codes must match exactly as configured in Xero chart of accounts.
12
+
13
+ You should essentially gut check every value that shows up. If there are any errors or the values seem wrong, you likely wrote the formula syntax incorrectly or are using invalid account codes. Please correct the formula until it outputs the proper value.
14
+
15
+ ---
16
+
17
+ **Scott's Add-in Functions Overview**
18
+
19
+ Scott's Add-in provides several Excel functions for Xero:
20
+
21
+ | Function | Purpose | Use Case |
22
+ |----------|---------|----------|
23
+ | SCOTT.GL | General Ledger | Account balances, names, types |
24
+ | SCOTT.CONTACTS | Contacts | Customer and supplier information |
25
+ | SCOTT.INVOICES | Invoices | Sales invoice data |
26
+ | SCOTT.BILLS | Bills | Purchase bill data |
27
+ | SCOTT.BANKBALANCE | Bank | Bank account balances |
28
+ | SCOTT.BANKTRANSACTIONS | Bank | Bank transaction details |
29
+ | SCOTT.PAYMENTS | Payments | Payment records |
30
+ | SCOTT.QUOTES | Quotes | Sales quote data |
31
+ | SCOTT.PURCHASEORDERS | Purchase Orders | PO data |
32
+ | SCOTT.ITEMS | Items | Inventory items |
33
+ | SCOTT.TRACKING | Tracking | Tracking category data |
34
+
35
+ ---
36
+
37
+ **1. SCOTT.GL - General Ledger**
38
+
39
+ Returns general ledger account data including balances.
40
+
41
+ **Syntax:** =SCOTT.GL("AccountCode", "Field")
42
+
43
+ **Fields:**
44
+ | Field | Description |
45
+ |-------|-------------|
46
+ | Balance | Current account balance |
47
+ | Name | Account name |
48
+ | Code | Account code |
49
+ | Type | Account type (REVENUE, EXPENSE, etc.) |
50
+ | Class | Account class (ASSET, LIABILITY, EQUITY, REVENUE, EXPENSE) |
51
+ | Status | ACTIVE or ARCHIVED |
52
+ | Description | Account description |
53
+ | TaxType | Default tax type |
54
+ | YTDBalance | Year-to-date balance |
55
+ | ReportingCode | Reporting code for financial statements |
56
+
57
+ **Examples:**
58
+ =SCOTT.GL("200", "Balance")
59
+ -> Balance for account code 200.
60
+
61
+ =SCOTT.GL("200", "Name")
62
+ -> Name of account 200.
63
+
64
+ =SCOTT.GL("400", "YTDBalance")
65
+ -> Year-to-date balance for account 400.
66
+
67
+ **Using Cell References:**
68
+ =SCOTT.GL(A1, "Balance")
69
+ -> Balance for account code in cell A1.
70
+
71
+ =SCOTT.GL("200", B1)
72
+ -> Field specified in cell B1 for account 200.
73
+
74
+ ---
75
+
76
+ **2. SCOTT.CONTACTS - Contacts**
77
+
78
+ Returns customer and supplier contact information.
79
+
80
+ **Syntax:** =SCOTT.CONTACTS("Field1", "Field2", ..., [FilterField], [FilterValue])
81
+
82
+ **Fields:**
83
+ | Field | Description |
84
+ |-------|-------------|
85
+ | ContactID | Unique contact identifier |
86
+ | Name | Contact/company name |
87
+ | FirstName | First name |
88
+ | LastName | Last name |
89
+ | EmailAddress | Primary email |
90
+ | AccountNumber | Account reference number |
91
+ | ContactStatus | ACTIVE or ARCHIVED |
92
+ | IsSupplier | TRUE if supplier |
93
+ | IsCustomer | TRUE if customer |
94
+ | DefaultCurrency | Default currency code |
95
+ | Phone | Primary phone number |
96
+ | Fax | Fax number |
97
+ | Mobile | Mobile phone |
98
+ | Website | Website URL |
99
+ | TaxNumber | Tax/VAT number |
100
+ | BankAccountDetails | Bank account info |
101
+ | BalanceDue | Outstanding balance |
102
+ | OverdueAmount | Overdue amount |
103
+
104
+ **Examples:**
105
+ =SCOTT.CONTACTS("Name", "EmailAddress", "Phone")
106
+ -> List all contacts with name, email, and phone.
107
+
108
+ =SCOTT.CONTACTS("Name", "BalanceDue", "IsCustomer", TRUE)
109
+ -> All customers with outstanding balances.
110
+
111
+ =SCOTT.CONTACTS("Name", "OverdueAmount", "IsSupplier", TRUE)
112
+ -> All suppliers with overdue amounts.
113
+
114
+ ---
115
+
116
+ **3. SCOTT.INVOICES - Sales Invoices**
117
+
118
+ Returns sales invoice data.
119
+
120
+ **Syntax:** =SCOTT.INVOICES("Field1", "Field2", ..., [FilterField], [FilterValue])
121
+
122
+ **Fields:**
123
+ | Field | Description |
124
+ |-------|-------------|
125
+ | InvoiceID | Unique invoice identifier |
126
+ | InvoiceNumber | Invoice reference number |
127
+ | ContactName | Customer name |
128
+ | Date | Invoice date |
129
+ | DueDate | Payment due date |
130
+ | Status | DRAFT, SUBMITTED, AUTHORISED, PAID, VOIDED |
131
+ | SubTotal | Subtotal before tax |
132
+ | TotalTax | Total tax amount |
133
+ | Total | Invoice total |
134
+ | AmountDue | Remaining balance |
135
+ | AmountPaid | Amount paid |
136
+ | AmountCredited | Credits applied |
137
+ | CurrencyCode | Currency |
138
+ | Reference | Reference field |
139
+ | LineItems | Line item details |
140
+
141
+ **Examples:**
142
+ =SCOTT.INVOICES("InvoiceNumber", "ContactName", "Total", "AmountDue")
143
+ -> All invoices with key fields.
144
+
145
+ =SCOTT.INVOICES("InvoiceNumber", "ContactName", "AmountDue", "Status", "AUTHORISED")
146
+ -> Unpaid authorized invoices.
147
+
148
+ =SCOTT.INVOICES("ContactName", "Total", "Date", "DueDate", "AmountDue", "Status", "AUTHORISED")
149
+ -> Detailed AR report for authorized invoices.
150
+
151
+ ---
152
+
153
+ **4. SCOTT.BILLS - Purchase Bills**
154
+
155
+ Returns accounts payable bill data.
156
+
157
+ **Syntax:** =SCOTT.BILLS("Field1", "Field2", ..., [FilterField], [FilterValue])
158
+
159
+ **Fields:**
160
+ | Field | Description |
161
+ |-------|-------------|
162
+ | InvoiceID | Unique bill identifier |
163
+ | InvoiceNumber | Bill/reference number |
164
+ | ContactName | Supplier name |
165
+ | Date | Bill date |
166
+ | DueDate | Payment due date |
167
+ | Status | DRAFT, SUBMITTED, AUTHORISED, PAID, VOIDED |
168
+ | SubTotal | Subtotal before tax |
169
+ | TotalTax | Total tax amount |
170
+ | Total | Bill total |
171
+ | AmountDue | Remaining balance |
172
+ | AmountPaid | Amount paid |
173
+ | CurrencyCode | Currency |
174
+ | Reference | Reference field |
175
+
176
+ **Examples:**
177
+ =SCOTT.BILLS("InvoiceNumber", "ContactName", "Total", "AmountDue")
178
+ -> All bills with key fields.
179
+
180
+ =SCOTT.BILLS("ContactName", "DueDate", "AmountDue", "Status", "AUTHORISED")
181
+ -> Unpaid bills with due dates.
182
+
183
+ ---
184
+
185
+ **5. SCOTT.BANKBALANCE - Bank Balances**
186
+
187
+ Returns current bank account balances.
188
+
189
+ **Syntax:** =SCOTT.BANKBALANCE("AccountCode")
190
+
191
+ **Example:**
192
+ =SCOTT.BANKBALANCE("090")
193
+ -> Current balance for bank account 090.
194
+
195
+ ---
196
+
197
+ **6. SCOTT.BANKTRANSACTIONS - Bank Transactions**
198
+
199
+ Returns bank transaction details.
200
+
201
+ **Syntax:** =SCOTT.BANKTRANSACTIONS("Field1", "Field2", ..., [FilterField], [FilterValue])
202
+
203
+ **Fields:**
204
+ | Field | Description |
205
+ |-------|-------------|
206
+ | BankTransactionID | Unique transaction ID |
207
+ | Type | RECEIVE, SPEND, RECEIVE-OVERPAYMENT, etc. |
208
+ | ContactName | Contact name |
209
+ | Date | Transaction date |
210
+ | Status | AUTHORISED, DELETED |
211
+ | SubTotal | Amount before tax |
212
+ | TotalTax | Tax amount |
213
+ | Total | Total amount |
214
+ | Reference | Reference field |
215
+ | IsReconciled | TRUE if reconciled |
216
+ | BankAccountCode | Bank account code |
217
+
218
+ **Examples:**
219
+ =SCOTT.BANKTRANSACTIONS("Date", "Type", "ContactName", "Total", "Reference")
220
+ -> All bank transactions with key fields.
221
+
222
+ =SCOTT.BANKTRANSACTIONS("Date", "ContactName", "Total", "Type", "RECEIVE")
223
+ -> Money received transactions only.
224
+
225
+ ---
226
+
227
+ **7. SCOTT.PAYMENTS - Payments**
228
+
229
+ Returns payment records.
230
+
231
+ **Syntax:** =SCOTT.PAYMENTS("Field1", "Field2", ..., [FilterField], [FilterValue])
232
+
233
+ **Fields:**
234
+ | Field | Description |
235
+ |-------|-------------|
236
+ | PaymentID | Unique payment ID |
237
+ | Date | Payment date |
238
+ | Amount | Payment amount |
239
+ | Reference | Reference field |
240
+ | PaymentType | ACCRECPAYMENT, ACCPAYPAYMENT, etc. |
241
+ | Status | AUTHORISED, DELETED |
242
+ | InvoiceNumber | Related invoice number |
243
+ | ContactName | Contact name |
244
+
245
+ ---
246
+
247
+ **8. Xero Account Types Reference**
248
+
249
+ **Account Classes:**
250
+ | Class | Description |
251
+ |-------|-------------|
252
+ | ASSET | Assets (bank, receivables, inventory, fixed assets) |
253
+ | LIABILITY | Liabilities (payables, loans, accruals) |
254
+ | EQUITY | Equity (capital, retained earnings) |
255
+ | REVENUE | Income accounts |
256
+ | EXPENSE | Expense accounts |
257
+
258
+ **Account Types:**
259
+ | Type | Class | Description |
260
+ |------|-------|-------------|
261
+ | BANK | ASSET | Bank accounts |
262
+ | CURRENT | ASSET | Current assets (receivables, inventory) |
263
+ | FIXED | ASSET | Fixed assets |
264
+ | PREPAYMENT | ASSET | Prepaid expenses |
265
+ | CURRLIAB | LIABILITY | Current liabilities |
266
+ | TERMLIAB | LIABILITY | Long-term liabilities |
267
+ | EQUITY | EQUITY | Equity accounts |
268
+ | REVENUE | REVENUE | Sales/income accounts |
269
+ | DIRECTCOSTS | EXPENSE | Cost of goods sold |
270
+ | EXPENSE | EXPENSE | Operating expenses |
271
+ | OVERHEADS | EXPENSE | Overhead expenses |
272
+
273
+ ---
274
+
275
+ **9. Standard Xero Account Codes**
276
+
277
+ **Common Default Codes (may vary by organization):**
278
+ | Code | Account Name | Type |
279
+ |------|-------------|------|
280
+ | 090 | Business Bank Account | BANK |
281
+ | 091 | Business Savings Account | BANK |
282
+ | 200 | Sales | REVENUE |
283
+ | 260 | Other Revenue | REVENUE |
284
+ | 300 | Purchases | DIRECTCOSTS |
285
+ | 310 | Cost of Goods Sold | DIRECTCOSTS |
286
+ | 400 | Advertising | EXPENSE |
287
+ | 404 | Bank Fees | EXPENSE |
288
+ | 408 | Cleaning | EXPENSE |
289
+ | 412 | Consulting & Accounting | EXPENSE |
290
+ | 420 | Entertainment | EXPENSE |
291
+ | 429 | General Expenses | EXPENSE |
292
+ | 449 | Office Expenses | EXPENSE |
293
+ | 461 | Printing & Stationery | EXPENSE |
294
+ | 469 | Rent | EXPENSE |
295
+ | 473 | Subscriptions | EXPENSE |
296
+ | 477 | Telephone & Internet | EXPENSE |
297
+ | 489 | Travel | EXPENSE |
298
+ | 493 | Wages & Salaries | EXPENSE |
299
+ | 500 | Accounts Receivable | CURRENT |
300
+ | 610 | Accounts Payable | CURRLIAB |
301
+ | 800 | Owner's Capital | EQUITY |
302
+ | 820 | Retained Earnings | EQUITY |
303
+
304
+ ---
305
+
306
+ **10. Example Formulas by Use Case**
307
+
308
+ **Financial Position:**
309
+ =SCOTT.GL("090", "Balance")
310
+ -> Main bank account balance.
311
+
312
+ =SCOTT.GL("500", "Balance")
313
+ -> Accounts receivable balance.
314
+
315
+ =SCOTT.GL("610", "Balance")
316
+ -> Accounts payable balance.
317
+
318
+ **Revenue & Expenses:**
319
+ =SCOTT.GL("200", "YTDBalance")
320
+ -> Year-to-date sales revenue.
321
+
322
+ =SCOTT.GL("493", "YTDBalance")
323
+ -> Year-to-date wages expense.
324
+
325
+ **Accounts Receivable:**
326
+ =SCOTT.INVOICES("InvoiceNumber", "ContactName", "Date", "DueDate", "AmountDue", "Status", "AUTHORISED")
327
+ -> AR aging report (unpaid invoices).
328
+
329
+ =SCOTT.CONTACTS("Name", "BalanceDue", "OverdueAmount", "IsCustomer", TRUE)
330
+ -> Customer balances with overdue amounts.
331
+
332
+ **Accounts Payable:**
333
+ =SCOTT.BILLS("InvoiceNumber", "ContactName", "Date", "DueDate", "AmountDue", "Status", "AUTHORISED")
334
+ -> AP aging report (unpaid bills).
335
+
336
+ =SCOTT.CONTACTS("Name", "BalanceDue", "OverdueAmount", "IsSupplier", TRUE)
337
+ -> Supplier balances with overdue amounts.
338
+
339
+ **Cash Flow:**
340
+ =SCOTT.BANKTRANSACTIONS("Date", "Type", "ContactName", "Total", "Type", "RECEIVE")
341
+ -> Cash receipts.
342
+
343
+ =SCOTT.BANKTRANSACTIONS("Date", "Type", "ContactName", "Total", "Type", "SPEND")
344
+ -> Cash payments.
345
+
346
+ =SCOTT.PAYMENTS("Date", "ContactName", "Amount", "InvoiceNumber")
347
+ -> Payment details with invoice references.
348
+
349
+ **Contact Management:**
350
+ =SCOTT.CONTACTS("Name", "EmailAddress", "Phone", "BalanceDue")
351
+ -> Contact list with balances.
352
+
353
+ =SCOTT.CONTACTS("Name", "AccountNumber", "DefaultCurrency", "IsCustomer", TRUE)
354
+ -> Customer master list.
355
+
356
+ ---
357
+
358
+ **11. Error Handling**
359
+
360
+ **Common Errors:**
361
+ | Error | Cause | Solution |
362
+ |-------|-------|----------|
363
+ | #VALUE! | Invalid account code | Verify code exists in Xero chart of accounts |
364
+ | #NAME? | Function not recognized | Check Scott's Add-in is installed and enabled |
365
+ | #N/A | No data found | Verify filter values, check data exists |
366
+ | Connection error | Not authenticated | Re-authenticate in Scott's Add-in menu |
367
+ | Rate limit | Too many requests | Reduce formula refresh frequency |
368
+
369
+ **Debugging Tips:**
370
+ 1. Test account codes in Xero first to verify they exist
371
+ 2. Start with simple formulas before adding filters
372
+ 3. Check Scott's Add-in connection status
373
+ 4. Verify field names are spelled correctly (case-sensitive)
374
+ 5. For contacts, ensure IsCustomer/IsSupplier filter matches data
375
+
376
+ ---
377
+
378
+ **Final Checklist:**
379
+ - What Xero data is needed? (GL balances? Invoices? Contacts? Bank?)
380
+ - What account code(s) are involved? (Verify in Xero chart of accounts)
381
+ - What fields are required for the output?
382
+ - Is a filter needed? (Status, contact type, date range)
383
+ - Are account codes and field names spelled correctly?
384
+ - Is the Scott's Add-in connected and authenticated?
385
+ - Are rate limits being respected?
386
+
387
+ ---
388
+
389
+ **Additional Resources:**
390
+ - Scott's Add-ins for Xero: https://www.scottsaddins.com/xero-excel-add-in/
391
+ - Scott's Add-in Documentation: https://www.scottsaddins.com/documentation/
392
+ - Xero Chart of Accounts: https://central.xero.com/s/article/Set-up-your-chart-of-accounts
393
+ - Xero API Reference: https://developer.xero.com/documentation/api/accounting/overview