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.
- package/README.md +59 -0
- package/agent-docs/README.md +397 -0
- package/agent-docs/docs/compaction.md +390 -0
- package/agent-docs/docs/custom-provider.md +580 -0
- package/agent-docs/docs/development.md +69 -0
- package/agent-docs/docs/extensions.md +1971 -0
- package/agent-docs/docs/json.md +79 -0
- package/agent-docs/docs/keybindings.md +174 -0
- package/agent-docs/docs/models.md +293 -0
- package/agent-docs/docs/packages.md +209 -0
- package/agent-docs/docs/prompt-templates.md +67 -0
- package/agent-docs/docs/providers.md +186 -0
- package/agent-docs/docs/rpc.md +1317 -0
- package/agent-docs/docs/sdk.md +962 -0
- package/agent-docs/docs/session.md +412 -0
- package/agent-docs/docs/settings.md +223 -0
- package/agent-docs/docs/shell-aliases.md +13 -0
- package/agent-docs/docs/skills.md +231 -0
- package/agent-docs/docs/terminal-setup.md +70 -0
- package/agent-docs/docs/termux.md +127 -0
- package/agent-docs/docs/themes.md +295 -0
- package/agent-docs/docs/tree.md +219 -0
- package/agent-docs/docs/tui.md +887 -0
- package/agent-docs/docs/windows.md +17 -0
- package/agent-docs/examples/README.md +25 -0
- package/agent-docs/examples/extensions/README.md +205 -0
- package/agent-docs/examples/extensions/antigravity-image-gen.ts +447 -0
- package/agent-docs/examples/extensions/auto-commit-on-exit.ts +49 -0
- package/agent-docs/examples/extensions/bash-spawn-hook.ts +30 -0
- package/agent-docs/examples/extensions/bookmark.ts +50 -0
- package/agent-docs/examples/extensions/built-in-tool-renderer.ts +256 -0
- package/agent-docs/examples/extensions/claude-rules.ts +86 -0
- package/agent-docs/examples/extensions/commands.ts +75 -0
- package/agent-docs/examples/extensions/confirm-destructive.ts +59 -0
- package/agent-docs/examples/extensions/custom-compaction.ts +126 -0
- package/agent-docs/examples/extensions/custom-footer.ts +63 -0
- package/agent-docs/examples/extensions/custom-header.ts +73 -0
- package/agent-docs/examples/extensions/custom-provider-anthropic/index.ts +660 -0
- package/agent-docs/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
- package/agent-docs/examples/extensions/custom-provider-anthropic/package.json +19 -0
- package/agent-docs/examples/extensions/custom-provider-gitlab-duo/index.ts +362 -0
- package/agent-docs/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
- package/agent-docs/examples/extensions/custom-provider-gitlab-duo/test.ts +88 -0
- package/agent-docs/examples/extensions/custom-provider-qwen-cli/index.ts +349 -0
- package/agent-docs/examples/extensions/custom-provider-qwen-cli/package.json +16 -0
- package/agent-docs/examples/extensions/dirty-repo-guard.ts +56 -0
- package/agent-docs/examples/extensions/doom-overlay/README.md +46 -0
- package/agent-docs/examples/extensions/doom-overlay/doom/build.sh +152 -0
- package/agent-docs/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
- package/agent-docs/examples/extensions/doom-overlay/doom-component.ts +133 -0
- package/agent-docs/examples/extensions/doom-overlay/doom-engine.ts +186 -0
- package/agent-docs/examples/extensions/doom-overlay/doom-keys.ts +108 -0
- package/agent-docs/examples/extensions/doom-overlay/index.ts +74 -0
- package/agent-docs/examples/extensions/doom-overlay/wad-finder.ts +51 -0
- package/agent-docs/examples/extensions/dynamic-resources/SKILL.md +8 -0
- package/agent-docs/examples/extensions/dynamic-resources/dynamic.json +79 -0
- package/agent-docs/examples/extensions/dynamic-resources/dynamic.md +5 -0
- package/agent-docs/examples/extensions/dynamic-resources/index.ts +15 -0
- package/agent-docs/examples/extensions/dynamic-tools.ts +77 -0
- package/agent-docs/examples/extensions/event-bus.ts +43 -0
- package/agent-docs/examples/extensions/file-trigger.ts +41 -0
- package/agent-docs/examples/extensions/git-checkpoint.ts +53 -0
- package/agent-docs/examples/extensions/handoff.ts +155 -0
- package/agent-docs/examples/extensions/hello.ts +25 -0
- package/agent-docs/examples/extensions/inline-bash.ts +94 -0
- package/agent-docs/examples/extensions/input-transform.ts +43 -0
- package/agent-docs/examples/extensions/interactive-shell.ts +209 -0
- package/agent-docs/examples/extensions/mac-system-theme.ts +47 -0
- package/agent-docs/examples/extensions/message-renderer.ts +59 -0
- package/agent-docs/examples/extensions/minimal-mode.ts +430 -0
- package/agent-docs/examples/extensions/modal-editor.ts +90 -0
- package/agent-docs/examples/extensions/model-status.ts +31 -0
- package/agent-docs/examples/extensions/notify.ts +55 -0
- package/agent-docs/examples/extensions/overlay-qa-tests.ts +936 -0
- package/agent-docs/examples/extensions/overlay-test.ts +159 -0
- package/agent-docs/examples/extensions/permission-gate.ts +37 -0
- package/agent-docs/examples/extensions/pirate.ts +47 -0
- package/agent-docs/examples/extensions/plan-mode/README.md +65 -0
- package/agent-docs/examples/extensions/plan-mode/index.ts +363 -0
- package/agent-docs/examples/extensions/plan-mode/utils.ts +173 -0
- package/agent-docs/examples/extensions/preset.ts +418 -0
- package/agent-docs/examples/extensions/protected-paths.ts +30 -0
- package/agent-docs/examples/extensions/qna.ts +122 -0
- package/agent-docs/examples/extensions/question.ts +278 -0
- package/agent-docs/examples/extensions/questionnaire.ts +440 -0
- package/agent-docs/examples/extensions/rainbow-editor.ts +90 -0
- package/agent-docs/examples/extensions/reload-runtime.ts +37 -0
- package/agent-docs/examples/extensions/rpc-demo.ts +124 -0
- package/agent-docs/examples/extensions/sandbox/index.ts +324 -0
- package/agent-docs/examples/extensions/sandbox/package-lock.json +92 -0
- package/agent-docs/examples/extensions/sandbox/package.json +19 -0
- package/agent-docs/examples/extensions/send-user-message.ts +97 -0
- package/agent-docs/examples/extensions/session-name.ts +27 -0
- package/agent-docs/examples/extensions/shutdown-command.ts +69 -0
- package/agent-docs/examples/extensions/snake.ts +343 -0
- package/agent-docs/examples/extensions/space-invaders.ts +566 -0
- package/agent-docs/examples/extensions/ssh.ts +233 -0
- package/agent-docs/examples/extensions/status-line.ts +40 -0
- package/agent-docs/examples/extensions/subagent/README.md +172 -0
- package/agent-docs/examples/extensions/subagent/agents/planner.md +37 -0
- package/agent-docs/examples/extensions/subagent/agents/reviewer.md +35 -0
- package/agent-docs/examples/extensions/subagent/agents/scout.md +50 -0
- package/agent-docs/examples/extensions/subagent/agents/worker.md +24 -0
- package/agent-docs/examples/extensions/subagent/agents.ts +130 -0
- package/agent-docs/examples/extensions/subagent/index.ts +1068 -0
- package/agent-docs/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
- package/agent-docs/examples/extensions/subagent/prompts/implement.md +10 -0
- package/agent-docs/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
- package/agent-docs/examples/extensions/summarize.ts +206 -0
- package/agent-docs/examples/extensions/system-prompt-header.ts +17 -0
- package/agent-docs/examples/extensions/timed-confirm.ts +72 -0
- package/agent-docs/examples/extensions/titlebar-spinner.ts +58 -0
- package/agent-docs/examples/extensions/todo.ts +314 -0
- package/agent-docs/examples/extensions/tool-override.ts +146 -0
- package/agent-docs/examples/extensions/tools.ts +145 -0
- package/agent-docs/examples/extensions/trigger-compact.ts +40 -0
- package/agent-docs/examples/extensions/truncated-tool.ts +194 -0
- package/agent-docs/examples/extensions/widget-placement.ts +17 -0
- package/agent-docs/examples/extensions/with-deps/index.ts +37 -0
- package/agent-docs/examples/extensions/with-deps/package-lock.json +31 -0
- package/agent-docs/examples/extensions/with-deps/package.json +22 -0
- package/agent-docs/examples/rpc-extension-ui.ts +654 -0
- package/agent-docs/examples/sdk/01-minimal.ts +22 -0
- package/agent-docs/examples/sdk/02-custom-model.ts +48 -0
- package/agent-docs/examples/sdk/03-custom-prompt.ts +55 -0
- package/agent-docs/examples/sdk/04-skills.ts +53 -0
- package/agent-docs/examples/sdk/05-tools.ts +56 -0
- package/agent-docs/examples/sdk/06-extensions.ts +88 -0
- package/agent-docs/examples/sdk/07-context-files.ts +40 -0
- package/agent-docs/examples/sdk/08-prompt-templates.ts +47 -0
- package/agent-docs/examples/sdk/09-api-keys-and-oauth.ts +48 -0
- package/agent-docs/examples/sdk/10-settings.ts +54 -0
- package/agent-docs/examples/sdk/11-sessions.ts +48 -0
- package/agent-docs/examples/sdk/12-full-control.ts +82 -0
- package/agent-docs/examples/sdk/README.md +144 -0
- package/agent-docs/xll-skill.md +61 -0
- package/agent-docs/xll-spec.md +110 -0
- package/dist/cli/args.js +290 -0
- package/dist/cli/config-selector.js +31 -0
- package/dist/cli/file-processor.js +79 -0
- package/dist/cli/list-models.js +92 -0
- package/dist/cli/package-commands.js +210 -0
- package/dist/cli/report-settings-errors.js +11 -0
- package/dist/cli/session-picker.js +34 -0
- package/dist/cli.js +19 -0
- package/dist/config.js +288 -0
- package/dist/core/abort.js +15 -0
- package/dist/core/agent-loop.js +352 -0
- package/dist/core/agent-session.js +2019 -0
- package/dist/core/agent.js +410 -0
- package/dist/core/auth-storage.js +456 -0
- package/dist/core/bash-executor.js +222 -0
- package/dist/core/compaction/branch-summarization.js +242 -0
- package/dist/core/compaction/compaction.js +610 -0
- package/dist/core/compaction/index.js +7 -0
- package/dist/core/compaction/utils.js +139 -0
- package/dist/core/defaults.js +6 -0
- package/dist/core/diagnostics.js +2 -0
- package/dist/core/event-bus.js +25 -0
- package/dist/core/exec.js +71 -0
- package/dist/core/export-html/ansi-to-html.js +256 -0
- package/dist/core/export-html/index.js +238 -0
- package/dist/core/export-html/session-view-model.js +342 -0
- package/dist/core/export-html/template.css +1110 -0
- package/dist/core/export-html/template.html +76 -0
- package/dist/core/export-html/template.js +1990 -0
- package/dist/core/export-html/tool-renderer.js +63 -0
- package/dist/core/export-html/vendor/highlight.min.js +7725 -0
- package/dist/core/export-html/vendor/marked.min.js +1803 -0
- package/dist/core/extensions/index.js +9 -0
- package/dist/core/extensions/loader.js +422 -0
- package/dist/core/extensions/runner.js +651 -0
- package/dist/core/extensions/types.js +35 -0
- package/dist/core/extensions/wrapper.js +102 -0
- package/dist/core/footer-data-provider.js +162 -0
- package/dist/core/index.js +9 -0
- package/dist/core/keybindings.js +153 -0
- package/dist/core/messages.js +133 -0
- package/dist/core/model-registry.js +539 -0
- package/dist/core/model-resolver.js +370 -0
- package/dist/core/package-manager.js +1485 -0
- package/dist/core/prompt-templates.js +253 -0
- package/dist/core/resolve-config-value.js +59 -0
- package/dist/core/resource-loader.js +700 -0
- package/dist/core/sdk.js +197 -0
- package/dist/core/session-bash.js +99 -0
- package/dist/core/session-compaction.js +165 -0
- package/dist/core/session-manager.js +1153 -0
- package/dist/core/session-models.js +99 -0
- package/dist/core/session-retry.js +155 -0
- package/dist/core/settings-manager.js +572 -0
- package/dist/core/skills.js +382 -0
- package/dist/core/slash-commands.js +31 -0
- package/dist/core/system-prompt.js +161 -0
- package/dist/core/theme.js +770 -0
- package/dist/core/timings.js +26 -0
- package/dist/core/tools/bash.js +258 -0
- package/dist/core/tools/edit-diff.js +245 -0
- package/dist/core/tools/edit.js +148 -0
- package/dist/core/tools/find.js +208 -0
- package/dist/core/tools/grep.js +246 -0
- package/dist/core/tools/index.js +67 -0
- package/dist/core/tools/ls.js +123 -0
- package/dist/core/tools/path-utils.js +81 -0
- package/dist/core/tools/read.js +160 -0
- package/dist/core/tools/truncate.js +70 -0
- package/dist/core/tools/write.js +82 -0
- package/dist/custom/agents/action.js +13 -0
- package/dist/custom/agents/document-reader.js +70 -0
- package/dist/custom/agents/general.js +26 -0
- package/dist/custom/agents/index.js +49 -0
- package/dist/custom/agents/installation.js +13 -0
- package/dist/custom/agents/types.js +7 -0
- package/dist/custom/auth/refresh-timer.js +33 -0
- package/dist/custom/auth/shortcut-oauth.js +145 -0
- package/dist/custom/constants.js +21 -0
- package/dist/custom/context/workbook-summary.js +73 -0
- package/dist/custom/credits/shortcut-credits.js +29 -0
- package/dist/custom/cron/cron-daemon-entry.js +18 -0
- package/dist/custom/cron/daemon-ipc.js +131 -0
- package/dist/custom/cron/daemon.js +224 -0
- package/dist/custom/cron/jobs.js +226 -0
- package/dist/custom/cron/run-log.js +51 -0
- package/dist/custom/cron/schedule.js +72 -0
- package/dist/custom/cron/status-line.js +98 -0
- package/dist/custom/cron/store.js +87 -0
- package/dist/custom/cron/types.js +8 -0
- package/dist/custom/dev/index.js +59 -0
- package/dist/custom/dev/trace-export.js +58 -0
- package/dist/custom/ensure-excel.js +63 -0
- package/dist/custom/excel-config.js +36 -0
- package/dist/custom/preflight.js +422 -0
- package/dist/custom/prompts/action.js +100 -0
- package/dist/custom/prompts/api.js +66 -0
- package/dist/custom/prompts/installation.js +124 -0
- package/dist/custom/prompts/shared.js +138 -0
- package/dist/custom/providers/llm-usage.js +42 -0
- package/dist/custom/providers/message-converter.js +74 -0
- package/dist/custom/providers/provider-ids.js +9 -0
- package/dist/custom/providers/register-openai-codex-provider.js +27 -0
- package/dist/custom/providers/register-shortcut-provider.js +52 -0
- package/dist/custom/providers/shortcut-invoke.js +117 -0
- package/dist/custom/providers/shortcut-stream.js +252 -0
- package/dist/custom/providers/sse-protocol.js +38 -0
- package/dist/custom/sync-xll.js +130 -0
- package/dist/custom/tools/cron.js +413 -0
- package/dist/custom/tools/excel-exec.js +167 -0
- package/dist/custom/tools/excel-range.js +50 -0
- package/dist/custom/tools/llm-analysis.js +265 -0
- package/dist/custom/tools/render-helpers.js +38 -0
- package/dist/custom/tools/switch-mode.js +94 -0
- package/dist/custom/tools/task/agents.js +6 -0
- package/dist/custom/tools/task/index.js +8 -0
- package/dist/custom/tools/task/render.js +348 -0
- package/dist/custom/tools/task/subprocess.js +320 -0
- package/dist/custom/tools/task/task.js +205 -0
- package/dist/custom/tools/todo-list.js +195 -0
- package/dist/custom/tracing/session-upload.js +93 -0
- package/dist/index.js +45 -0
- package/dist/main.js +613 -0
- package/dist/migrations.js +265 -0
- package/dist/modes/index.js +8 -0
- package/dist/modes/interactive/components/armin.js +337 -0
- package/dist/modes/interactive/components/assistant-message.js +94 -0
- package/dist/modes/interactive/components/bash-execution.js +171 -0
- package/dist/modes/interactive/components/bordered-loader.js +51 -0
- package/dist/modes/interactive/components/branch-summary-message.js +45 -0
- package/dist/modes/interactive/components/compaction-summary-message.js +46 -0
- package/dist/modes/interactive/components/config-selector.js +488 -0
- package/dist/modes/interactive/components/countdown-timer.js +33 -0
- package/dist/modes/interactive/components/custom-editor.js +93 -0
- package/dist/modes/interactive/components/custom-message.js +81 -0
- package/dist/modes/interactive/components/daxnuts.js +140 -0
- package/dist/modes/interactive/components/diff.js +133 -0
- package/dist/modes/interactive/components/dynamic-border.js +21 -0
- package/dist/modes/interactive/components/extension-editor.js +105 -0
- package/dist/modes/interactive/components/extension-input.js +61 -0
- package/dist/modes/interactive/components/extension-selector.js +78 -0
- package/dist/modes/interactive/components/footer.js +309 -0
- package/dist/modes/interactive/components/index.js +33 -0
- package/dist/modes/interactive/components/keybinding-hints.js +61 -0
- package/dist/modes/interactive/components/layout.js +64 -0
- package/dist/modes/interactive/components/login-dialog.js +148 -0
- package/dist/modes/interactive/components/model-selector.js +237 -0
- package/dist/modes/interactive/components/oauth-selector.js +111 -0
- package/dist/modes/interactive/components/session-selector-search.js +157 -0
- package/dist/modes/interactive/components/session-selector.js +860 -0
- package/dist/modes/interactive/components/settings-selector.js +123 -0
- package/dist/modes/interactive/components/show-images-selector.js +35 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +48 -0
- package/dist/modes/interactive/components/theme-selector.js +47 -0
- package/dist/modes/interactive/components/thinking-selector.js +47 -0
- package/dist/modes/interactive/components/tool-execution.js +789 -0
- package/dist/modes/interactive/components/tool-group.js +106 -0
- package/dist/modes/interactive/components/tree-selector.js +962 -0
- package/dist/modes/interactive/components/user-message-selector.js +115 -0
- package/dist/modes/interactive/components/user-message.js +48 -0
- package/dist/modes/interactive/components/visual-truncate.js +33 -0
- package/dist/modes/interactive/file-attachments.js +135 -0
- package/dist/modes/interactive/interactive-mode.js +3775 -0
- package/dist/modes/interactive/theme/dark.json +85 -0
- package/dist/modes/interactive/theme/light.json +85 -0
- package/dist/modes/interactive/theme/theme-schema.json +335 -0
- package/dist/modes/interactive/theme/theme.js +177 -0
- package/dist/modes/print-mode.js +101 -0
- package/dist/modes/rpc/rpc-client.js +387 -0
- package/dist/modes/rpc/rpc-mode.js +509 -0
- package/dist/modes/rpc/rpc-types.js +8 -0
- package/dist/subagent-entry.js +145 -0
- package/dist/tool-names.js +34 -0
- package/dist/tui/autocomplete.js +596 -0
- package/dist/tui/components/box.js +104 -0
- package/dist/tui/components/cancellable-loader.js +35 -0
- package/dist/tui/components/editor.js +1679 -0
- package/dist/tui/components/image.js +69 -0
- package/dist/tui/components/input.js +433 -0
- package/dist/tui/components/loader.js +49 -0
- package/dist/tui/components/markdown.js +629 -0
- package/dist/tui/components/select-list.js +152 -0
- package/dist/tui/components/settings-list.js +185 -0
- package/dist/tui/components/spacer.js +23 -0
- package/dist/tui/components/text.js +89 -0
- package/dist/tui/components/truncated-text.js +51 -0
- package/dist/tui/editor-component.js +2 -0
- package/dist/tui/fuzzy.js +107 -0
- package/dist/tui/get-east-asian-width/index.js +32 -0
- package/dist/tui/get-east-asian-width/lookup.js +404 -0
- package/dist/tui/index.js +32 -0
- package/dist/tui/keybindings.js +114 -0
- package/dist/tui/keys.js +959 -0
- package/dist/tui/kill-ring.js +44 -0
- package/dist/tui/stdin-buffer.js +317 -0
- package/dist/tui/terminal-image.js +288 -0
- package/dist/tui/terminal.js +249 -0
- package/dist/tui/tui/autocomplete.js +596 -0
- package/dist/tui/tui/components/box.js +106 -0
- package/dist/tui/tui/components/cancellable-loader.js +35 -0
- package/dist/tui/tui/components/editor.js +1679 -0
- package/dist/tui/tui/components/image.js +69 -0
- package/dist/tui/tui/components/input.js +433 -0
- package/dist/tui/tui/components/loader.js +49 -0
- package/dist/tui/tui/components/markdown.js +629 -0
- package/dist/tui/tui/components/select-list.js +152 -0
- package/dist/tui/tui/components/settings-list.js +185 -0
- package/dist/tui/tui/components/spacer.js +23 -0
- package/dist/tui/tui/components/text.js +91 -0
- package/dist/tui/tui/components/truncated-text.js +51 -0
- package/dist/tui/tui/editor-component.js +2 -0
- package/dist/tui/tui/fuzzy.js +107 -0
- package/dist/tui/tui/get-east-asian-width/index.js +32 -0
- package/dist/tui/tui/get-east-asian-width/lookup.js +404 -0
- package/dist/tui/tui/index.js +32 -0
- package/dist/tui/tui/keybindings.js +114 -0
- package/dist/tui/tui/keys.js +959 -0
- package/dist/tui/tui/kill-ring.js +44 -0
- package/dist/tui/tui/stdin-buffer.js +317 -0
- package/dist/tui/tui/terminal-image.js +288 -0
- package/dist/tui/tui/terminal.js +249 -0
- package/dist/tui/tui/tui.js +955 -0
- package/dist/tui/tui/undo-stack.js +25 -0
- package/dist/tui/tui/utils.js +800 -0
- package/dist/tui/tui.js +955 -0
- package/dist/tui/undo-stack.js +25 -0
- package/dist/tui/utils.js +800 -0
- package/dist/utils/changelog.js +87 -0
- package/dist/utils/clipboard-image.js +164 -0
- package/dist/utils/clipboard-native.js +14 -0
- package/dist/utils/clipboard.js +67 -0
- package/dist/utils/frontmatter.js +26 -0
- package/dist/utils/git.js +166 -0
- package/dist/utils/image-convert.js +35 -0
- package/dist/utils/image-resize.js +183 -0
- package/dist/utils/mime.js +26 -0
- package/dist/utils/photon.js +121 -0
- package/dist/utils/shell.js +217 -0
- package/dist/utils/sleep.js +17 -0
- package/dist/utils/tools-manager.js +259 -0
- package/package.json +78 -0
- package/skills/excel-com-api/SKILL.md +74 -0
- package/skills/excel-com-api/excel-type-library.py +27767 -0
- package/skills/excel-com-api/office-type-library.py +10867 -0
- package/skills/integrations/SKILL.md +138 -0
- package/skills/integrations/alphasense.md +457 -0
- package/skills/integrations/bloomberg.md +803 -0
- package/skills/integrations/calcbench.md +315 -0
- package/skills/integrations/capiq.md +848 -0
- package/skills/integrations/dynamics-365-finance.md +354 -0
- package/skills/integrations/earnings_transcripts.md +387 -0
- package/skills/integrations/factset.md +758 -0
- package/skills/integrations/ice-fixed-income.md +344 -0
- package/skills/integrations/moodys-analytics.md +313 -0
- package/skills/integrations/morningstar.md +433 -0
- package/skills/integrations/nasdaq-data-link.md +249 -0
- package/skills/integrations/pitchbook.md +413 -0
- package/skills/integrations/preqin.md +422 -0
- package/skills/integrations/quickbooks.md +289 -0
- package/skills/integrations/quickfs.md +314 -0
- package/skills/integrations/refinitiv.md +473 -0
- package/skills/integrations/sage-intacct.md +401 -0
- package/skills/integrations/visible-alpha.md +320 -0
- package/skills/integrations/xero.md +393 -0
- package/skills/integrations/ycharts.md +306 -0
- package/skills/pdf-creation/SKILL.md +93 -0
- package/skills/pdf-extraction/SKILL.md +32 -0
- package/skills/powerpoint-creation/SKILL.md +110 -0
- package/skills/sec-edgar/SKILL.md +127 -0
- package/skills/sec-edgar/sec_to_pdf.py +109 -0
- package/xll/ShortcutXL.xll +0 -0
- package/xll/modules/debug_render.py +272 -0
- package/xll/modules/gameboy.py +241 -0
- package/xll/modules/pong.py +188 -0
- package/xll/modules/shortcut_xl/__init__.py +18 -0
- package/xll/modules/shortcut_xl/_categorize.py +200 -0
- package/xll/modules/shortcut_xl/_com.py +108 -0
- package/xll/modules/shortcut_xl/_format.py +252 -0
- package/xll/modules/shortcut_xl/_log.py +12 -0
- package/xll/modules/shortcut_xl/_managed.py +116 -0
- package/xll/modules/shortcut_xl/_registry.py +44 -0
- package/xll/modules/shortcut_xl/_threading.py +161 -0
- package/xll/modules/shortcut_xl/_tracking.py +283 -0
- package/xll/modules/stocks.py +100 -0
- package/xll/python3.dll +0 -0
- package/xll/python312.dll +0 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model and thinking level management — pure logic.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from AgentSession. All functions are pure (no side effects).
|
|
5
|
+
* AgentSession delegates to these for cycling math and level clamping,
|
|
6
|
+
* then handles persistence and extension events itself.
|
|
7
|
+
*/
|
|
8
|
+
import { modelsAreEqual, supportsXhigh } from '@mariozechner/pi-ai';
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Constants
|
|
11
|
+
// ============================================================================
|
|
12
|
+
/** Standard thinking levels (ordered low → high) */
|
|
13
|
+
export const THINKING_LEVELS = ['off', 'minimal', 'low', 'medium', 'high'];
|
|
14
|
+
/** Thinking levels including xhigh (for supported models) */
|
|
15
|
+
export const THINKING_LEVELS_WITH_XHIGH = [
|
|
16
|
+
'off',
|
|
17
|
+
'minimal',
|
|
18
|
+
'low',
|
|
19
|
+
'medium',
|
|
20
|
+
'high',
|
|
21
|
+
'xhigh'
|
|
22
|
+
];
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Thinking Level Logic
|
|
25
|
+
// ============================================================================
|
|
26
|
+
/** Check if a model supports thinking/reasoning. */
|
|
27
|
+
export function supportsThinking(model) {
|
|
28
|
+
return !!model?.reasoning;
|
|
29
|
+
}
|
|
30
|
+
/** Check if a model supports xhigh thinking. */
|
|
31
|
+
export function supportsXhighThinking(model) {
|
|
32
|
+
return model ? supportsXhigh(model) : false;
|
|
33
|
+
}
|
|
34
|
+
/** Get available thinking levels for a given model. */
|
|
35
|
+
export function getAvailableThinkingLevels(model) {
|
|
36
|
+
if (!supportsThinking(model))
|
|
37
|
+
return ['off'];
|
|
38
|
+
return supportsXhighThinking(model) ? THINKING_LEVELS_WITH_XHIGH : THINKING_LEVELS;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Clamp a thinking level to the nearest available level.
|
|
42
|
+
* Searches forward first (higher levels), then backward (lower levels).
|
|
43
|
+
*/
|
|
44
|
+
export function clampThinkingLevel(level, availableLevels) {
|
|
45
|
+
if (availableLevels.includes(level))
|
|
46
|
+
return level;
|
|
47
|
+
const ordered = THINKING_LEVELS_WITH_XHIGH;
|
|
48
|
+
const available = new Set(availableLevels);
|
|
49
|
+
const requestedIndex = ordered.indexOf(level);
|
|
50
|
+
if (requestedIndex === -1) {
|
|
51
|
+
return availableLevels[0] ?? 'off';
|
|
52
|
+
}
|
|
53
|
+
// Search forward (higher levels)
|
|
54
|
+
for (let i = requestedIndex; i < ordered.length; i++) {
|
|
55
|
+
const candidate = ordered[i];
|
|
56
|
+
if (available.has(candidate))
|
|
57
|
+
return candidate;
|
|
58
|
+
}
|
|
59
|
+
// Search backward (lower levels)
|
|
60
|
+
for (let i = requestedIndex - 1; i >= 0; i--) {
|
|
61
|
+
const candidate = ordered[i];
|
|
62
|
+
if (available.has(candidate))
|
|
63
|
+
return candidate;
|
|
64
|
+
}
|
|
65
|
+
return availableLevels[0] ?? 'off';
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Compute the next thinking level in a cycle.
|
|
69
|
+
* @returns The next level, or undefined if model doesn't support thinking.
|
|
70
|
+
*/
|
|
71
|
+
export function cycleThinkingLevel(currentLevel, model) {
|
|
72
|
+
if (!supportsThinking(model))
|
|
73
|
+
return undefined;
|
|
74
|
+
const levels = getAvailableThinkingLevels(model);
|
|
75
|
+
const currentIndex = levels.indexOf(currentLevel);
|
|
76
|
+
const nextIndex = (currentIndex + 1) % levels.length;
|
|
77
|
+
return levels[nextIndex];
|
|
78
|
+
}
|
|
79
|
+
// ============================================================================
|
|
80
|
+
// Model Cycling Logic
|
|
81
|
+
// ============================================================================
|
|
82
|
+
/**
|
|
83
|
+
* Compute the next model in the cycle.
|
|
84
|
+
* Pure index math — does not mutate state.
|
|
85
|
+
* @returns The next model, or undefined if ≤1 model available.
|
|
86
|
+
*/
|
|
87
|
+
export function computeNextModel(availableModels, currentModel, direction) {
|
|
88
|
+
if (availableModels.length <= 1)
|
|
89
|
+
return undefined;
|
|
90
|
+
let currentIndex = currentModel
|
|
91
|
+
? availableModels.findIndex((m) => modelsAreEqual(m, currentModel))
|
|
92
|
+
: -1;
|
|
93
|
+
if (currentIndex === -1)
|
|
94
|
+
currentIndex = 0;
|
|
95
|
+
const len = availableModels.length;
|
|
96
|
+
const nextIndex = direction === 'forward' ? (currentIndex + 1) % len : (currentIndex - 1 + len) % len;
|
|
97
|
+
return availableModels[nextIndex];
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=session-models.js.map
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session retry state machine.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from AgentSession to be independently testable.
|
|
5
|
+
* Handles exponential backoff for retryable LLM errors
|
|
6
|
+
* (overloaded, rate limit, server errors).
|
|
7
|
+
*
|
|
8
|
+
* Context overflow errors are NOT handled here — those go through compaction.
|
|
9
|
+
*/
|
|
10
|
+
import { sleep } from '../utils/sleep.js';
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Error Classification
|
|
13
|
+
// ============================================================================
|
|
14
|
+
const RETRYABLE_ERROR_PATTERN = /overloaded|rate.?limit|too many requests|429|500|502|503|504|service.?unavailable|server error|internal error|connection.?error|connection.?refused|other side closed|fetch failed|upstream.?connect|reset before headers|terminated|retry delay/i;
|
|
15
|
+
export function isRetryableError(message, isContextOverflow) {
|
|
16
|
+
if (message.stopReason !== 'error' || !message.errorMessage)
|
|
17
|
+
return false;
|
|
18
|
+
if (isContextOverflow(message))
|
|
19
|
+
return false;
|
|
20
|
+
return RETRYABLE_ERROR_PATTERN.test(message.errorMessage);
|
|
21
|
+
}
|
|
22
|
+
// ============================================================================
|
|
23
|
+
// Retry State Machine
|
|
24
|
+
// ============================================================================
|
|
25
|
+
export class SessionRetry {
|
|
26
|
+
_abortController = undefined;
|
|
27
|
+
_attempt = 0;
|
|
28
|
+
_promise = undefined;
|
|
29
|
+
_resolve = undefined;
|
|
30
|
+
_listener = undefined;
|
|
31
|
+
get attempt() {
|
|
32
|
+
return this._attempt;
|
|
33
|
+
}
|
|
34
|
+
get isRetrying() {
|
|
35
|
+
return this._promise !== undefined;
|
|
36
|
+
}
|
|
37
|
+
onEvent(listener) {
|
|
38
|
+
this._listener = listener;
|
|
39
|
+
}
|
|
40
|
+
_emit(event) {
|
|
41
|
+
this._listener?.(event);
|
|
42
|
+
}
|
|
43
|
+
/** Reset all state to idle. */
|
|
44
|
+
_reset() {
|
|
45
|
+
this._attempt = 0;
|
|
46
|
+
this._resolve?.();
|
|
47
|
+
this._resolve = undefined;
|
|
48
|
+
this._promise = undefined;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create the retry promise synchronously when an agent_end event arrives.
|
|
52
|
+
*
|
|
53
|
+
* This MUST be called synchronously from the agent event handler, before
|
|
54
|
+
* any async processing. The reason: agent.prompt() resolves as soon as
|
|
55
|
+
* agent_end fires, and the caller immediately calls wait().
|
|
56
|
+
* If the promise isn't created yet, wait() returns immediately
|
|
57
|
+
* and the caller proceeds before the retry completes.
|
|
58
|
+
*/
|
|
59
|
+
prepareForAgentEnd(lastAssistant, isContextOverflow, settings) {
|
|
60
|
+
if (this._promise)
|
|
61
|
+
return false;
|
|
62
|
+
if (!settings.enabled)
|
|
63
|
+
return false;
|
|
64
|
+
if (!lastAssistant || !isRetryableError(lastAssistant, isContextOverflow))
|
|
65
|
+
return false;
|
|
66
|
+
this._promise = new Promise((resolve) => {
|
|
67
|
+
this._resolve = resolve;
|
|
68
|
+
});
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Handle a retryable error. Called from the async agent_end processing.
|
|
73
|
+
* @returns true if retry was initiated, false if disabled or max retries exceeded
|
|
74
|
+
*/
|
|
75
|
+
async handleRetryableError(message, settings, actions) {
|
|
76
|
+
if (!settings.enabled) {
|
|
77
|
+
this._reset();
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
// Defensive fallback: create promise if prepareForAgentEnd wasn't called.
|
|
81
|
+
// This happens when handleRetryableError is called outside the normal
|
|
82
|
+
// agent_end → processAgentEvent flow (e.g. direct invocation in tests
|
|
83
|
+
// or future refactors that bypass the synchronous prepare step).
|
|
84
|
+
if (!this._promise) {
|
|
85
|
+
this._promise = new Promise((resolve) => {
|
|
86
|
+
this._resolve = resolve;
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
this._attempt++;
|
|
90
|
+
if (this._attempt > settings.maxRetries) {
|
|
91
|
+
this._emit({
|
|
92
|
+
type: 'auto_retry_end',
|
|
93
|
+
success: false,
|
|
94
|
+
attempt: this._attempt - 1,
|
|
95
|
+
finalError: message.errorMessage
|
|
96
|
+
});
|
|
97
|
+
this._reset();
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
const delayMs = Math.min(settings.baseDelayMs * 2 ** (this._attempt - 1), settings.maxDelayMs);
|
|
101
|
+
this._emit({
|
|
102
|
+
type: 'auto_retry_start',
|
|
103
|
+
attempt: this._attempt,
|
|
104
|
+
maxAttempts: settings.maxRetries,
|
|
105
|
+
delayMs,
|
|
106
|
+
errorMessage: message.errorMessage || 'Unknown error'
|
|
107
|
+
});
|
|
108
|
+
actions.removeLastAssistantMessage();
|
|
109
|
+
this._abortController = new AbortController();
|
|
110
|
+
try {
|
|
111
|
+
await sleep(delayMs, this._abortController.signal);
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
const attempt = this._attempt;
|
|
115
|
+
this._abortController = undefined;
|
|
116
|
+
this._emit({
|
|
117
|
+
type: 'auto_retry_end',
|
|
118
|
+
success: false,
|
|
119
|
+
attempt,
|
|
120
|
+
finalError: 'Retry cancelled'
|
|
121
|
+
});
|
|
122
|
+
this._reset();
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
this._abortController = undefined;
|
|
126
|
+
actions.continue();
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Called when a successful assistant response arrives mid-retry.
|
|
131
|
+
* Resets the retry counter and resolves the promise.
|
|
132
|
+
*/
|
|
133
|
+
onSuccess() {
|
|
134
|
+
if (this._attempt <= 0)
|
|
135
|
+
return;
|
|
136
|
+
this._emit({
|
|
137
|
+
type: 'auto_retry_end',
|
|
138
|
+
success: true,
|
|
139
|
+
attempt: this._attempt
|
|
140
|
+
});
|
|
141
|
+
this._reset();
|
|
142
|
+
}
|
|
143
|
+
/** Cancel in-progress retry. */
|
|
144
|
+
abort() {
|
|
145
|
+
this._abortController?.abort();
|
|
146
|
+
this._reset();
|
|
147
|
+
}
|
|
148
|
+
/** Wait for any in-progress retry to complete. */
|
|
149
|
+
async wait() {
|
|
150
|
+
if (this._promise) {
|
|
151
|
+
await this._promise;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=session-retry.js.map
|