shortcutxl 0.3.60 → 0.3.62
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/BINARY-INVENTORY.json +13 -13
- package/CHANGELOG.md +9 -0
- package/agent-docs/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/binary-provenance.json +7 -7
- package/dist/ai/models.js +2 -1
- package/dist/ai/providers/anthropic.js +18 -18
- package/dist/ai/providers/openai-completions.js +7 -5
- package/dist/ai/providers/openai-responses-shared.d.ts +1 -1
- package/dist/ai/providers/openai-responses-shared.js +4 -3
- package/dist/ai/providers/openai-responses.d.ts +2 -1
- package/dist/ai/providers/openai-responses.js +9 -5
- package/dist/ai/providers/simple-options.js +1 -0
- package/dist/ai/types.d.ts +8 -0
- package/dist/ai/utils/overflow.js +1 -1
- package/dist/app/agent-session-runtime-adapter.js +8 -0
- package/dist/app/agent-session.d.ts +2 -2
- package/dist/app/agent-session.js +15 -15
- package/dist/app/approvals/types.d.ts +1 -0
- package/dist/app/background/tool-summaries.d.ts +10 -4
- package/dist/app/background/tool-summaries.js +21 -36
- package/dist/app/collab/sync-bridge.js +3 -3
- package/dist/app/credits/credit-gate.d.ts +1 -0
- package/dist/app/credits/credit-gate.js +5 -2
- package/dist/app/extensions/runner.js +10 -0
- package/dist/app/extensions/types.d.ts +3 -0
- package/dist/app/modes/action/agent.d.ts +1 -0
- package/dist/app/modes/action/agent.js +2 -2
- package/dist/app/modes/action/prompt.js +2 -2
- package/dist/app/modes/manage/agent.d.ts +1 -1
- package/dist/app/modes/manage/agent.js +3 -3
- package/dist/app/modes/manage/prompt.js +9 -6
- package/dist/app/modes/plan/agent.js +1 -10
- package/dist/app/modes/plan/prompt.js +4 -4
- package/dist/app/modes/switch-mode.d.ts +2 -0
- package/dist/app/modes/switch-mode.js +14 -6
- package/dist/app/new-sheet/cell-diff/types.d.ts +1 -1
- package/dist/app/new-sheet/cell-diff/types.js +1 -1
- package/dist/app/new-sheet/sdk-types.d.ts +2 -2
- package/dist/app/new-sheet/sdk-types.js +2 -2
- package/dist/app/new-sheet/sheet-engine.d.ts +1 -1
- package/dist/app/new-sheet/sheet-engine.js +1 -1
- package/dist/app/providers/model-resolver.d.ts +3 -3
- package/dist/app/providers/model-resolver.js +3 -2
- package/dist/app/providers/register-shortcut-provider.js +3 -39
- package/dist/app/providers/shortcut-invoke.js +1 -0
- package/dist/app/providers/shortcut-llm-proxy-client.d.ts +61 -0
- package/dist/app/providers/shortcut-llm-proxy-client.js +135 -0
- package/dist/app/providers/shortcut-stream.js +8 -3
- package/dist/app/resources/agents.d.ts +1 -1
- package/dist/app/resources/agents.js +1 -6
- package/dist/app/session/autonomous-workflow.js +2 -37
- package/dist/app/session/session-manager.d.ts +2 -0
- package/dist/app/session/session-manager.js +63 -0
- package/dist/app/session/tool-summary-emitter.d.ts +14 -5
- package/dist/app/session/tool-summary-emitter.js +33 -19
- package/dist/app/shared/tools/execute-code/mog.d.ts +1 -1
- package/dist/app/shared/tools/execute-code/mog.js +1 -1
- package/dist/app/subagents/clone/agent.d.ts +1 -1
- package/dist/app/subagents/clone/agent.js +14 -13
- package/dist/app/subagents/document-reader/agent.js +1 -1
- package/dist/app/subagents/index.d.ts +0 -1
- package/dist/app/subagents/index.js +6 -8
- package/dist/app/subagents/verification/agent.js +45 -90
- package/dist/app/subagents/workbook-reader/agent.js +1 -1
- package/dist/app/tools/llm-analysis.d.ts +1 -1
- package/dist/app/tools/llm-analysis.js +20 -38
- package/dist/app/tools/refresh-context.d.ts +2 -2
- package/dist/app/tools/refresh-context.js +2 -2
- package/dist/app/tools/switch-mode.js +20 -2
- package/dist/app/tools/take-screenshot.d.ts +4 -4
- package/dist/app/tools/take-screenshot.js +22 -42
- package/dist/app/tools/task/runner.js +29 -3
- package/dist/app/tools/task/task.js +1 -3
- package/dist/cli.js +3839 -1011
- package/dist/contracts/agent-api.d.ts +52 -39
- package/dist/contracts/agent-api.js +18 -0
- package/dist/contracts/agent-execute-code.d.ts +1 -1
- package/dist/contracts/agent-execute-code.js +1 -1
- package/dist/contracts/agent-session-store.d.ts +7 -1
- package/dist/contracts/agent-session-store.js +18 -9
- package/dist/contracts/host-tool.d.ts +14 -0
- package/dist/contracts/host-tool.js +21 -0
- package/dist/contracts/model-call.d.ts +2 -1
- package/dist/contracts/model-call.js +1 -0
- package/dist/contracts/model-stream.d.ts +19 -5
- package/dist/contracts/model-stream.js +3 -1
- package/dist/core/agent-controller.d.ts +3 -4
- package/dist/core/agent-controller.js +3 -4
- package/dist/core/agent-engine.d.ts +3 -3
- package/dist/core/agent-engine.js +3 -3
- package/dist/core/agent-snapshot-builder.js +6 -1
- package/dist/core/core-types.d.ts +4 -4
- package/dist/core/defaults.js +1 -1
- package/dist/core/embedded-agent-facade.d.ts +2 -1
- package/dist/core/embedded-agent-facade.js +6 -0
- package/dist/core/session/compaction/compaction.js +1 -1
- package/dist/core/session/compaction/constants.d.ts +4 -5
- package/dist/core/session/compaction/constants.js +7 -10
- package/dist/core/session/compaction-bridge.d.ts +4 -1
- package/dist/core/session/compaction-bridge.js +7 -2
- package/dist/core/session/context-overflow.js +1 -1
- package/dist/core/session-schema.d.ts +9 -1
- package/dist/core/session-schema.js +22 -5
- package/dist/credits/shortcut-credits.d.ts +1 -0
- package/dist/credits/shortcut-credits.js +6 -3
- package/dist/embedded-agent/agent-event-funnel.d.ts +9 -0
- package/dist/embedded-agent/agent-event-funnel.js +13 -4
- package/dist/embedded-agent/anthropic-messages-transport.d.ts +3 -1
- package/dist/embedded-agent/anthropic-messages-transport.js +20 -9
- package/dist/embedded-agent/compaction-wiring.d.ts +4 -1
- package/dist/embedded-agent/compaction-wiring.js +8 -4
- package/dist/embedded-agent/compose.js +185 -43
- package/dist/embedded-agent/google-vertex-transport.d.ts +25 -0
- package/dist/embedded-agent/google-vertex-transport.js +496 -0
- package/dist/embedded-agent/host-runtime-options.d.ts +1 -1
- package/dist/embedded-agent/host-runtime-options.js +61 -0
- package/dist/embedded-agent/host-tools/action-tool-names.d.ts +3 -0
- package/dist/embedded-agent/host-tools/action-tool-names.js +17 -0
- package/dist/embedded-agent/host-tools/build-tool-list.d.ts +8 -1
- package/dist/embedded-agent/host-tools/build-tool-list.js +86 -43
- package/dist/embedded-agent/host-tools/create-website/contract.js +15 -22
- package/dist/embedded-agent/host-tools/execute-bash-command/contract.js +12 -15
- package/dist/embedded-agent/host-tools/get-tool-info/contract.d.ts +2 -2
- package/dist/embedded-agent/host-tools/get-tool-info/contract.js +13 -11
- package/dist/embedded-agent/host-tools/get-tool-info/shared.d.ts +1 -1
- package/dist/embedded-agent/host-tools/index.d.ts +3 -0
- package/dist/embedded-agent/host-tools/index.js +3 -0
- package/dist/embedded-agent/host-tools/invoke-llm/contract.js +15 -33
- package/dist/embedded-agent/host-tools/mcp/contract.d.ts +52 -0
- package/dist/embedded-agent/host-tools/mcp/contract.js +130 -0
- package/dist/embedded-agent/host-tools/mcp/index.d.ts +2 -0
- package/dist/embedded-agent/host-tools/mcp/index.js +2 -0
- package/dist/embedded-agent/host-tools/mode-host-tools.d.ts +4 -1
- package/dist/embedded-agent/host-tools/mode-host-tools.js +24 -26
- package/dist/embedded-agent/host-tools/modify-skill/contract.d.ts +76 -0
- package/dist/embedded-agent/host-tools/modify-skill/contract.js +234 -0
- package/dist/embedded-agent/host-tools/modify-skill/index.d.ts +3 -0
- package/dist/embedded-agent/host-tools/modify-skill/index.js +3 -0
- package/dist/embedded-agent/host-tools/read-skill/contract.d.ts +38 -0
- package/dist/embedded-agent/host-tools/read-skill/contract.js +118 -0
- package/dist/embedded-agent/host-tools/read-skill/index.d.ts +2 -0
- package/dist/embedded-agent/host-tools/read-skill/index.js +2 -0
- package/dist/embedded-agent/host-tools/registry.d.ts +7 -4
- package/dist/embedded-agent/host-tools/registry.js +13 -4
- package/dist/embedded-agent/host-tools/request-credential/contract.js +11 -14
- package/dist/embedded-agent/host-tools/request-oauth/contract.js +8 -12
- package/dist/embedded-agent/host-tools/sandbox-llm/contract.js +10 -11
- package/dist/embedded-agent/host-tools/shared/llm-stream.d.ts +4 -1
- package/dist/embedded-agent/host-tools/shared/llm-stream.js +7 -2
- package/dist/embedded-agent/host-tools/switch-mode/contract.d.ts +5 -2
- package/dist/embedded-agent/host-tools/switch-mode/contract.js +58 -45
- package/dist/embedded-agent/host-tools/take-screenshot/contract.js +13 -26
- package/dist/embedded-agent/host-tools/task/agents/clone.js +15 -8
- package/dist/embedded-agent/host-tools/task/agents/document-reader.js +1 -1
- package/dist/embedded-agent/host-tools/task/agents/index.js +3 -5
- package/dist/embedded-agent/host-tools/task/agents/verification.d.ts +2 -7
- package/dist/embedded-agent/host-tools/task/agents/verification.js +48 -91
- package/dist/embedded-agent/host-tools/task/agents/workbook-reader.js +1 -1
- package/dist/embedded-agent/host-tools/task/contract.d.ts +26 -11
- package/dist/embedded-agent/host-tools/task/contract.js +137 -71
- package/dist/embedded-agent/host-tools/task/index.d.ts +3 -2
- package/dist/embedded-agent/host-tools/task/index.js +2 -1
- package/dist/embedded-agent/host-tools/task/lifecycle.d.ts +58 -0
- package/dist/embedded-agent/host-tools/task/lifecycle.js +152 -0
- package/dist/embedded-agent/host-tools/task/manager.d.ts +108 -0
- package/dist/embedded-agent/host-tools/task/manager.js +346 -0
- package/dist/embedded-agent/host-tools/task/runner.d.ts +52 -0
- package/dist/embedded-agent/host-tools/task/runner.js +177 -0
- package/dist/embedded-agent/host-tools/task/send-message.d.ts +28 -0
- package/dist/embedded-agent/host-tools/task/send-message.js +167 -0
- package/dist/embedded-agent/host-tools/task/sidechain.d.ts +59 -0
- package/dist/embedded-agent/host-tools/task/sidechain.js +148 -0
- package/dist/embedded-agent/host-tools/timeouts.js +4 -0
- package/dist/embedded-agent/host-tools/tool-names.d.ts +4 -0
- package/dist/embedded-agent/host-tools/tool-names.js +4 -0
- package/dist/embedded-agent/host-tools/web-crawl/contract.js +9 -10
- package/dist/embedded-agent/index.d.ts +24 -2
- package/dist/embedded-agent/model-registry.d.ts +2 -0
- package/dist/embedded-agent/model-registry.js +28 -50
- package/dist/embedded-agent/model-selection.js +5 -0
- package/dist/embedded-agent/openai-completions-transport.d.ts +5 -1
- package/dist/embedded-agent/openai-completions-transport.js +19 -5
- package/dist/embedded-agent/openai-responses-transport.d.ts +2 -1
- package/dist/embedded-agent/openai-responses-transport.js +13 -3
- package/dist/embedded-agent/per-turn-options.d.ts +1 -1
- package/dist/embedded-agent/persistence.js +3 -0
- package/dist/embedded-agent/prompt/build.js +2 -3
- package/dist/embedded-agent/prompt/modes/action.js +25 -4
- package/dist/embedded-agent/prompt/modes/manage.js +9 -6
- package/dist/embedded-agent/prompt/modes/plan.js +4 -4
- package/dist/embedded-agent/prompt/sections.d.ts +4 -7
- package/dist/embedded-agent/prompt/sections.js +40 -76
- package/dist/embedded-agent/run-stats.d.ts +2 -0
- package/dist/embedded-agent/run-stats.js +15 -9
- package/dist/embedded-agent/session-entry-builder.d.ts +6 -2
- package/dist/embedded-agent/session-entry-builder.js +30 -3
- package/dist/embedded-agent/session-store.d.ts +3 -0
- package/dist/embedded-agent/session-store.js +67 -7
- package/dist/embedded-agent/stream-message-state.js +1 -1
- package/dist/embedded-agent/stream.d.ts +5 -3
- package/dist/embedded-agent/stream.js +51 -16
- package/dist/embedded-agent/task-notification-turn-queue.d.ts +30 -0
- package/dist/embedded-agent/task-notification-turn-queue.js +77 -0
- package/dist/embedded-agent/worker-bridge/dispatch.js +7 -0
- package/dist/embedded-agent/worker-bridge/embedded-agent-worker.js +5 -0
- package/dist/embedded-agent/worker-bridge/host-client.d.ts +2 -1
- package/dist/embedded-agent/worker-bridge/host-client.js +9 -0
- package/dist/fast-mode.d.ts +8 -0
- package/dist/fast-mode.js +47 -0
- package/dist/main.js +5 -5
- package/dist/model-display.d.ts +11 -0
- package/dist/model-display.js +24 -0
- package/dist/model-ids.d.ts +2 -0
- package/dist/model-ids.js +3 -1
- package/dist/shell/components/primitives/footer.js +2 -18
- package/dist/shell/components/selectors/model-selector.js +4 -2
- package/dist/shell/export-html/session-view-model.d.ts +6 -2
- package/dist/shell/export-html/session-view-model.js +2 -0
- package/dist/shell/export-html/template.js +10 -0
- package/dist/shell/footer-data-provider.d.ts +2 -0
- package/dist/shell/interactive/interactive-mode-options.d.ts +1 -0
- package/dist/shell/interactive/interactive-mode.js +13 -9
- package/dist/shortcut-model-catalog.d.ts +5 -0
- package/dist/shortcut-model-catalog.js +57 -0
- package/dist/startup/preflight/shared.js +2 -2
- package/dist/startup/runtime-routing.d.ts +1 -1
- package/dist/tool-names.d.ts +1 -2
- package/dist/tool-names.js +1 -3
- package/package.json +69 -52
- package/plugins/shortcutxl/SKILL.md +1 -0
- package/plugins/shortcutxl/skills/shortcutxl/SKILL.md +1 -0
- package/skills/advanced-mog-api/api-reference.json +14808 -14808
- package/skills/autonomous/SKILL.md +1 -7
- package/user-docs/dist/shortcutxl-docs.pdf +0 -0
- package/xll/ShortcutXL.xll +0 -0
- package/xll/python/Lib/site-packages/__pycache__/pythoncom.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/et_xmlfile/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/et_xmlfile/__pycache__/incremental_tree.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/et_xmlfile/__pycache__/xmlfile.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/__version__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_api.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_auth.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_client.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_config.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_content.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_decoders.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_exceptions.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_main.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_models.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_multipart.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_status_codes.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_types.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_urlparse.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_urls.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/__pycache__/_utils.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/_transports/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/_transports/__pycache__/asgi.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/_transports/__pycache__/base.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/_transports/__pycache__/default.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/_transports/__pycache__/mock.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx/_transports/__pycache__/wsgi.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/httpx-0.28.1.dist-info/RECORD +1 -1
- package/xll/python/Lib/site-packages/idna/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/idna/__pycache__/core.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/idna/__pycache__/idnadata.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/idna/__pycache__/intranges.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/idna/__pycache__/package_data.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/idna-3.18.dist-info/RECORD +1 -1
- package/xll/python/Lib/site-packages/openpyxl/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/__pycache__/_constants.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/cell/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/cell/__pycache__/_writer.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/cell/__pycache__/cell.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/cell/__pycache__/read_only.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/cell/__pycache__/rich_text.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/cell/__pycache__/text.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/_3d.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/_chart.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/area_chart.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/axis.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/bar_chart.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/bubble_chart.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/chartspace.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/data_source.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/descriptors.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/error_bar.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/label.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/layout.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/legend.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/line_chart.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/marker.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/picture.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/pie_chart.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/pivot.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/plotarea.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/print_settings.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/radar_chart.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/reader.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/reference.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/scatter_chart.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/series.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/series_factory.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/shapes.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/stock_chart.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/surface_chart.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/text.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/title.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/trendline.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chart/__pycache__/updown_bars.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/chartsheet.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/custom.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/properties.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/protection.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/publish.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/relation.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/chartsheet/__pycache__/views.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/comments/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/comments/__pycache__/author.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/comments/__pycache__/comment_sheet.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/comments/__pycache__/comments.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/comments/__pycache__/shape_writer.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/compat/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/compat/__pycache__/numbers.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/compat/__pycache__/strings.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/base.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/container.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/excel.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/namespace.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/nested.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/sequence.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/descriptors/__pycache__/serialisable.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/colors.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/connector.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/drawing.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/effect.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/fill.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/geometry.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/graphic.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/image.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/line.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/picture.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/properties.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/relation.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/spreadsheet_drawing.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/text.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/drawing/__pycache__/xdr.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/formatting/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/formatting/__pycache__/formatting.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/formatting/__pycache__/rule.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/formula/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/formula/__pycache__/tokenizer.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/formula/__pycache__/translate.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/packaging/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/packaging/__pycache__/core.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/packaging/__pycache__/custom.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/packaging/__pycache__/manifest.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/packaging/__pycache__/relationship.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/packaging/__pycache__/workbook.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/pivot/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/pivot/__pycache__/cache.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/pivot/__pycache__/fields.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/pivot/__pycache__/record.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/pivot/__pycache__/table.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/reader/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/reader/__pycache__/drawings.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/reader/__pycache__/excel.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/reader/__pycache__/strings.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/reader/__pycache__/workbook.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/alignment.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/borders.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/builtins.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/cell_style.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/colors.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/differential.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/fills.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/fonts.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/named_styles.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/numbers.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/protection.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/proxy.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/styleable.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/stylesheet.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/styles/__pycache__/table.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/bound_dictionary.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/cell.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/datetime.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/escape.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/exceptions.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/formulas.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/indexed_list.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/protection.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/utils/__pycache__/units.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/_writer.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/child.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/defined_name.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/external_reference.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/function_group.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/properties.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/protection.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/smart_tags.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/views.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/web.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/workbook/__pycache__/workbook.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/workbook/external_link/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/workbook/external_link/__pycache__/external.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/_read_only.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/_reader.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/_write_only.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/_writer.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/cell_range.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/copier.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/datavalidation.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/dimensions.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/drawing.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/filters.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/formula.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/header_footer.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/hyperlink.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/merge.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/page.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/pagebreak.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/print_settings.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/properties.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/protection.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/related.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/scenario.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/table.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/views.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/worksheet/__pycache__/worksheet.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/writer/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/writer/__pycache__/excel.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/writer/__pycache__/theme.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/xml/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/xml/__pycache__/constants.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/openpyxl/xml/__pycache__/functions.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/__pycache__/build_env.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/__pycache__/configuration.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/__pycache__/exceptions.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/index_command.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/main.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/parser.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/commands/__pycache__/list.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/locations/__pycache__/base.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/metadata/__pycache__/_json.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/metadata/__pycache__/base.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/_compat.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/_dists.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/_envs.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/format_control.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/index.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/link.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/release_control.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/scheme.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/models/__pycache__/target_python.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/_log.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/compat.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/egg_link.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/logging.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/misc.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/pylock.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/retry.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/urls.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/_elffile.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/_parser.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/_tokenizer.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/direct_url.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/pylock.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/filter.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/lexer.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/modeline.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/plugin.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/regexopt.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/style.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/token.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/__pycache__/util.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/filters/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/styles/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/styles/__pycache__/_mapping.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pyproject_hooks/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pyproject_hooks/__pycache__/_impl.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_cell_widths.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_emoji_replace.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_export_format.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_extension.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_fileno.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_log_render.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_loop.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_null_file.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_palettes.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_pick.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_ratio.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_win32_console.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_windows.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_windows_renderer.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/_wrap.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/abc.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/align.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/ansi.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/box.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/cells.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/color.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/color_triplet.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/columns.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/console.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/constrain.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/containers.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/control.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/default_styles.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/emoji.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/errors.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/file_proxy.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/highlighter.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/jupyter.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/live.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/live_render.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/logging.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/markup.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/measure.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/padding.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/pager.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/palette.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/panel.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/pretty.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/protocol.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/region.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/repr.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/scope.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/screen.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/segment.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/style.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/styled.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/syntax.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/table.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/terminal_theme.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/text.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/theme.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/themes.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/rich/__pycache__/traceback.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/pip-26.1.2.dist-info/RECORD +3 -3
- package/xll/python/Lib/site-packages/pywin32-311.dist-info/RECORD +2 -2
- package/xll/python/Lib/site-packages/win32/lib/__pycache__/pywin32_bootstrap.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/win32/lib/__pycache__/pywintypes.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/win32/lib/__pycache__/winerror.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/win32com/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/win32com/client/__pycache__/CLSIDToClass.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/win32com/client/__pycache__/__init__.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/win32com/client/__pycache__/build.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/win32com/client/__pycache__/dynamic.cpython-313.pyc +0 -0
- package/xll/python/Lib/site-packages/win32com/client/__pycache__/gencache.cpython-313.pyc +0 -0
- package/xll/python/Scripts/httpx.exe +0 -0
- package/xll/python/Scripts/idna.exe +0 -0
- package/xll/python/Scripts/pip.exe +0 -0
- package/xll/python/Scripts/pip3.13.exe +0 -0
- package/xll/python/Scripts/pip3.exe +0 -0
- package/xll/python/Scripts/pywin32_postinstall.exe +0 -0
- package/xll/python/Scripts/pywin32_testall.exe +0 -0
- package/xll/python/sqlite3.dll +0 -0
- package/dist/app/providers/shortcut-attribution.d.ts +0 -13
- package/dist/app/providers/shortcut-attribution.js +0 -24
- package/dist/app/subagents/general/agent.d.ts +0 -10
- package/dist/app/subagents/general/agent.js +0 -79
- package/dist/embedded-agent/host-tools/task/agents/general.d.ts +0 -10
- package/dist/embedded-agent/host-tools/task/agents/general.js +0 -74
- package/dist/embedded-agent/host-tools/task/run-subagent.d.ts +0 -51
- package/dist/embedded-agent/host-tools/task/run-subagent.js +0 -138
package/BINARY-INVENTORY.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"generatedAt": "2026-06-
|
|
3
|
+
"generatedAt": "2026-06-10T21:37:57.358Z",
|
|
4
4
|
"package": "shortcutxl",
|
|
5
5
|
"binaryExtensions": [
|
|
6
6
|
".dll",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"files": [
|
|
12
12
|
{
|
|
13
13
|
"path": "xll/ShortcutXL.xll",
|
|
14
|
-
"sha256": "
|
|
14
|
+
"sha256": "6eaecb6c7dd047ee91a0717b8849c43baa847d0c21afe094fe1d9e6fd1f89f6a",
|
|
15
15
|
"source": "ShortcutXL native XLL build",
|
|
16
16
|
"version": "package",
|
|
17
17
|
"builtBy": "shortcut",
|
|
@@ -523,7 +523,7 @@
|
|
|
523
523
|
},
|
|
524
524
|
{
|
|
525
525
|
"path": "xll/python/Scripts/httpx.exe",
|
|
526
|
-
"sha256": "
|
|
526
|
+
"sha256": "6e6b7c9bb24e920a8d59ee9464ee83f245f9a2daa1489bb23a09e80e1eac59f8",
|
|
527
527
|
"source": "httpx console launcher installed into embedded Python",
|
|
528
528
|
"version": "see packaged httpx distribution",
|
|
529
529
|
"builtBy": "third-party",
|
|
@@ -531,7 +531,7 @@
|
|
|
531
531
|
},
|
|
532
532
|
{
|
|
533
533
|
"path": "xll/python/Scripts/idna.exe",
|
|
534
|
-
"sha256": "
|
|
534
|
+
"sha256": "15dbbd45e6257c0ca2dc305880d90ccf626ddb5c9265f8e9116f564483176ce1",
|
|
535
535
|
"source": "Python package console launcher installed into embedded Python",
|
|
536
536
|
"version": "see owning Python package metadata in site-packages",
|
|
537
537
|
"builtBy": "third-party",
|
|
@@ -539,7 +539,7 @@
|
|
|
539
539
|
},
|
|
540
540
|
{
|
|
541
541
|
"path": "xll/python/Scripts/pip.exe",
|
|
542
|
-
"sha256": "
|
|
542
|
+
"sha256": "373818f3109b5b0e3d7f249ebced133b042d0e2ffd2fb983967cb611c40e5d57",
|
|
543
543
|
"source": "pip console launcher installed into embedded Python",
|
|
544
544
|
"version": "see packaged pip distribution",
|
|
545
545
|
"builtBy": "third-party",
|
|
@@ -547,7 +547,7 @@
|
|
|
547
547
|
},
|
|
548
548
|
{
|
|
549
549
|
"path": "xll/python/Scripts/pip3.13.exe",
|
|
550
|
-
"sha256": "
|
|
550
|
+
"sha256": "373818f3109b5b0e3d7f249ebced133b042d0e2ffd2fb983967cb611c40e5d57",
|
|
551
551
|
"source": "pip console launcher installed into embedded Python",
|
|
552
552
|
"version": "see packaged pip distribution",
|
|
553
553
|
"builtBy": "third-party",
|
|
@@ -555,7 +555,7 @@
|
|
|
555
555
|
},
|
|
556
556
|
{
|
|
557
557
|
"path": "xll/python/Scripts/pip3.exe",
|
|
558
|
-
"sha256": "
|
|
558
|
+
"sha256": "373818f3109b5b0e3d7f249ebced133b042d0e2ffd2fb983967cb611c40e5d57",
|
|
559
559
|
"source": "pip console launcher installed into embedded Python",
|
|
560
560
|
"version": "see packaged pip distribution",
|
|
561
561
|
"builtBy": "third-party",
|
|
@@ -563,7 +563,7 @@
|
|
|
563
563
|
},
|
|
564
564
|
{
|
|
565
565
|
"path": "xll/python/Scripts/pywin32_postinstall.exe",
|
|
566
|
-
"sha256": "
|
|
566
|
+
"sha256": "e6f28aa72208afcf845960aed0d938f48d993c78f111dab4da6e3c0b5f4a3a18",
|
|
567
567
|
"source": "Python package console launcher installed into embedded Python",
|
|
568
568
|
"version": "see owning Python package metadata in site-packages",
|
|
569
569
|
"builtBy": "third-party",
|
|
@@ -571,7 +571,7 @@
|
|
|
571
571
|
},
|
|
572
572
|
{
|
|
573
573
|
"path": "xll/python/Scripts/pywin32_testall.exe",
|
|
574
|
-
"sha256": "
|
|
574
|
+
"sha256": "3014d8654460053f2061f84ba4cfa908682a28e81780c53763ecc01a934fa4a8",
|
|
575
575
|
"source": "Python package console launcher installed into embedded Python",
|
|
576
576
|
"version": "see owning Python package metadata in site-packages",
|
|
577
577
|
"builtBy": "third-party",
|
|
@@ -779,11 +779,11 @@
|
|
|
779
779
|
},
|
|
780
780
|
{
|
|
781
781
|
"path": "xll/python/sqlite3.dll",
|
|
782
|
-
"sha256": "
|
|
783
|
-
"source": "SQLite
|
|
784
|
-
"version": "
|
|
782
|
+
"sha256": "73b045c910fc19a069bae2e2c7ebb5ea66fe6c85f166535a6e07e09155cd9e6d",
|
|
783
|
+
"source": "SQLite official precompiled Windows x64 DLL",
|
|
784
|
+
"version": "3.53.2",
|
|
785
785
|
"builtBy": "third-party",
|
|
786
|
-
"verification": "Downloaded from
|
|
786
|
+
"verification": "Downloaded from sqlite.org sqlite-dll-win-x64-3530200.zip; upstream SHA3-256 is b898ced2e0627999d7d0b9d554ea53086a9b165e52ae743277d115dcd39e6868, and vendor-python.ps1 verifies extracted sqlite3.dll SHA256 73b045c910fc19a069bae2e2c7ebb5ea66fe6c85f166535a6e07e09155cd9e6d before copying."
|
|
787
787
|
},
|
|
788
788
|
{
|
|
789
789
|
"path": "xll/python/unicodedata.pyd",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.62]
|
|
4
|
+
|
|
5
|
+
- **Windows runtime security** - Updated the embedded Windows SQLite DLL used by ShortcutXL's bundled Python runtime.
|
|
6
|
+
- **Default model update** - Updated the default model to Fable.
|
|
7
|
+
|
|
8
|
+
## [0.3.61]
|
|
9
|
+
|
|
10
|
+
- **ShortcutXL plugin guidance** - Refreshed the bundled Claude and Codex ShortcutXL plugin guidance.
|
|
11
|
+
|
|
3
12
|
## [0.3.60]
|
|
4
13
|
|
|
5
14
|
- **Safer shell approvals** - High-risk Outlook-style send and delete shell operations now require explicit one-time approval even when runtime shell bypass is enabled.
|
package/binary-provenance.json
CHANGED
|
@@ -50,13 +50,13 @@
|
|
|
50
50
|
"builtBy": "third-party",
|
|
51
51
|
"verification": "Downloaded from python.org CPython release artifacts; verify upstream SHA/signature before vendoring."
|
|
52
52
|
},
|
|
53
|
-
{
|
|
54
|
-
"pattern": "xll/python/sqlite3.dll",
|
|
55
|
-
"source": "SQLite
|
|
56
|
-
"version": "
|
|
57
|
-
"builtBy": "third-party",
|
|
58
|
-
"verification": "Downloaded from
|
|
59
|
-
},
|
|
53
|
+
{
|
|
54
|
+
"pattern": "xll/python/sqlite3.dll",
|
|
55
|
+
"source": "SQLite official precompiled Windows x64 DLL",
|
|
56
|
+
"version": "3.53.2",
|
|
57
|
+
"builtBy": "third-party",
|
|
58
|
+
"verification": "Downloaded from sqlite.org sqlite-dll-win-x64-3530200.zip; upstream SHA3-256 is b898ced2e0627999d7d0b9d554ea53086a9b165e52ae743277d115dcd39e6868, and vendor-python.ps1 verifies extracted sqlite3.dll SHA256 73b045c910fc19a069bae2e2c7ebb5ea66fe6c85f166535a6e07e09155cd9e6d before copying."
|
|
59
|
+
},
|
|
60
60
|
{
|
|
61
61
|
"pattern": "xll/python/vcruntime*.dll",
|
|
62
62
|
"source": "Microsoft Visual C++ runtime library bundled with CPython Windows embeddable runtime",
|
package/dist/ai/models.js
CHANGED
|
@@ -22,7 +22,8 @@ export function getModels(provider) {
|
|
|
22
22
|
: [];
|
|
23
23
|
}
|
|
24
24
|
export function calculateCost(model, usage) {
|
|
25
|
-
|
|
25
|
+
const uncachedInput = Math.max(0, usage.input - usage.cacheRead - usage.cacheWrite);
|
|
26
|
+
usage.cost.input = (model.cost.input / 1000000) * uncachedInput;
|
|
26
27
|
usage.cost.output = (model.cost.output / 1000000) * usage.output;
|
|
27
28
|
usage.cost.cacheRead = (model.cost.cacheRead / 1000000) * usage.cacheRead;
|
|
28
29
|
usage.cost.cacheWrite = (model.cost.cacheWrite / 1000000) * usage.cacheWrite;
|
|
@@ -113,26 +113,26 @@ export const streamAnthropic = (model, context, options) => {
|
|
|
113
113
|
};
|
|
114
114
|
try {
|
|
115
115
|
const apiKey = options?.apiKey ?? getEnvApiKey(model.provider) ?? '';
|
|
116
|
-
const client = createClient(model, apiKey, options?.interleavedThinking ?? true, options?.headers);
|
|
116
|
+
const client = createClient(model, apiKey, options?.interleavedThinking ?? true, options?.headers, options?.fetchOptions);
|
|
117
117
|
const params = buildParams(model, context, options);
|
|
118
118
|
options?.onPayload?.(params);
|
|
119
119
|
const anthropicStream = client.messages.stream({ ...params, stream: true }, { signal: options?.signal });
|
|
120
120
|
stream.push({ type: 'start', partial: output });
|
|
121
121
|
const blocks = output.content;
|
|
122
|
+
let uncachedInputTokens = 0;
|
|
122
123
|
for await (const event of anthropicStream) {
|
|
123
124
|
if (event.type === 'message_start') {
|
|
124
125
|
// Capture initial token usage from message_start event
|
|
125
126
|
// This ensures we have input token counts even if the stream is aborted early
|
|
126
|
-
|
|
127
|
+
uncachedInputTokens = event.message.usage.input_tokens || 0;
|
|
127
128
|
output.usage.output = event.message.usage.output_tokens || 0;
|
|
128
129
|
output.usage.cacheRead = event.message.usage.cache_read_input_tokens || 0;
|
|
129
130
|
output.usage.cacheWrite = event.message.usage.cache_creation_input_tokens || 0;
|
|
130
|
-
// Anthropic doesn't provide total_tokens
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
output.usage.cacheWrite;
|
|
131
|
+
// Anthropic doesn't provide total_tokens; usage.input is normalized
|
|
132
|
+
// to total input, including cache buckets.
|
|
133
|
+
output.usage.input =
|
|
134
|
+
uncachedInputTokens + output.usage.cacheRead + output.usage.cacheWrite;
|
|
135
|
+
output.usage.totalTokens = output.usage.input + output.usage.output;
|
|
136
136
|
calculateCost(model, output.usage);
|
|
137
137
|
}
|
|
138
138
|
else if (event.type === 'content_block_start') {
|
|
@@ -284,9 +284,6 @@ export const streamAnthropic = (model, context, options) => {
|
|
|
284
284
|
}
|
|
285
285
|
// Only update usage fields if present (not null).
|
|
286
286
|
// Preserves input_tokens from message_start when proxies omit it in message_delta.
|
|
287
|
-
if (event.usage.input_tokens != null) {
|
|
288
|
-
output.usage.input = event.usage.input_tokens;
|
|
289
|
-
}
|
|
290
287
|
if (event.usage.output_tokens != null) {
|
|
291
288
|
output.usage.output = event.usage.output_tokens;
|
|
292
289
|
}
|
|
@@ -296,12 +293,14 @@ export const streamAnthropic = (model, context, options) => {
|
|
|
296
293
|
if (event.usage.cache_creation_input_tokens != null) {
|
|
297
294
|
output.usage.cacheWrite = event.usage.cache_creation_input_tokens;
|
|
298
295
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
296
|
+
if (event.usage.input_tokens != null) {
|
|
297
|
+
uncachedInputTokens = event.usage.input_tokens;
|
|
298
|
+
}
|
|
299
|
+
// Anthropic doesn't provide total_tokens; usage.input is normalized
|
|
300
|
+
// to total input, including cache buckets.
|
|
301
|
+
output.usage.input =
|
|
302
|
+
uncachedInputTokens + output.usage.cacheRead + output.usage.cacheWrite;
|
|
303
|
+
output.usage.totalTokens = output.usage.input + output.usage.output;
|
|
305
304
|
calculateCost(model, output.usage);
|
|
306
305
|
}
|
|
307
306
|
}
|
|
@@ -388,7 +387,7 @@ export const streamSimpleAnthropic = (model, context, options) => {
|
|
|
388
387
|
function isOAuthToken(apiKey) {
|
|
389
388
|
return apiKey.includes('sk-ant-oat');
|
|
390
389
|
}
|
|
391
|
-
function createClient(model, apiKey, interleavedThinking, optionsHeaders) {
|
|
390
|
+
function createClient(model, apiKey, interleavedThinking, optionsHeaders, fetchOptions) {
|
|
392
391
|
// Adaptive thinking models (Opus 4.6, Sonnet 4.6) have interleaved thinking built-in.
|
|
393
392
|
// The beta header is deprecated on Opus 4.6 and redundant on Sonnet 4.6, so skip it.
|
|
394
393
|
const needsInterleavedBeta = interleavedThinking && !supportsAdaptiveThinking(model.id);
|
|
@@ -403,6 +402,7 @@ function createClient(model, apiKey, interleavedThinking, optionsHeaders) {
|
|
|
403
402
|
const client = new Anthropic({
|
|
404
403
|
apiKey,
|
|
405
404
|
baseURL: model.baseUrl,
|
|
405
|
+
fetchOptions: fetchOptions,
|
|
406
406
|
defaultHeaders: mergeHeaders({
|
|
407
407
|
accept: 'application/json',
|
|
408
408
|
'anthropic-beta': betaFeatures.join(',')
|
|
@@ -64,7 +64,7 @@ export const streamOpenAICompletions = (model, context, options) => {
|
|
|
64
64
|
};
|
|
65
65
|
try {
|
|
66
66
|
const apiKey = options?.apiKey || getEnvApiKey(model.provider) || '';
|
|
67
|
-
const client = createClient(model, context, apiKey, options?.headers);
|
|
67
|
+
const client = createClient(model, context, apiKey, options?.headers, options?.fetchOptions);
|
|
68
68
|
const params = buildParams(model, context, options);
|
|
69
69
|
options?.onPayload?.(params);
|
|
70
70
|
const openaiStream = await client.chat.completions.create(params, {
|
|
@@ -108,17 +108,18 @@ export const streamOpenAICompletions = (model, context, options) => {
|
|
|
108
108
|
if (chunk.usage) {
|
|
109
109
|
const cachedTokens = chunk.usage.prompt_tokens_details?.cached_tokens || 0;
|
|
110
110
|
const reasoningTokens = chunk.usage.completion_tokens_details?.reasoning_tokens || 0;
|
|
111
|
-
const input =
|
|
111
|
+
const input = chunk.usage.prompt_tokens || 0;
|
|
112
112
|
const outputTokens = (chunk.usage.completion_tokens || 0) + reasoningTokens;
|
|
113
113
|
output.usage = {
|
|
114
|
-
// OpenAI includes cached tokens in prompt_tokens
|
|
114
|
+
// OpenAI includes cached tokens in prompt_tokens; cost calculation
|
|
115
|
+
// derives uncached input from input - cacheRead - cacheWrite.
|
|
115
116
|
input,
|
|
116
117
|
output: outputTokens,
|
|
117
118
|
cacheRead: cachedTokens,
|
|
118
119
|
cacheWrite: 0,
|
|
119
120
|
// Compute totalTokens ourselves since we add reasoning_tokens to output
|
|
120
121
|
// and some providers (e.g., Groq) don't include them in total_tokens
|
|
121
|
-
totalTokens: input + outputTokens
|
|
122
|
+
totalTokens: input + outputTokens,
|
|
122
123
|
cost: {
|
|
123
124
|
input: 0,
|
|
124
125
|
output: 0,
|
|
@@ -287,7 +288,7 @@ export const streamSimpleOpenAICompletions = (model, context, options) => {
|
|
|
287
288
|
toolChoice
|
|
288
289
|
});
|
|
289
290
|
};
|
|
290
|
-
function createClient(model, context, apiKey, optionsHeaders) {
|
|
291
|
+
function createClient(model, context, apiKey, optionsHeaders, fetchOptions) {
|
|
291
292
|
if (!apiKey) {
|
|
292
293
|
if (!process.env.OPENAI_API_KEY) {
|
|
293
294
|
throw new Error('OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.');
|
|
@@ -302,6 +303,7 @@ function createClient(model, context, apiKey, optionsHeaders) {
|
|
|
302
303
|
return new OpenAI({
|
|
303
304
|
apiKey,
|
|
304
305
|
baseURL: model.baseUrl,
|
|
306
|
+
fetchOptions: fetchOptions,
|
|
305
307
|
defaultHeaders: headers
|
|
306
308
|
});
|
|
307
309
|
}
|
|
@@ -3,7 +3,7 @@ import type { Api, AssistantMessage, Context, Model, Tool, Usage } from '../type
|
|
|
3
3
|
import type { AssistantMessageEventStream } from '../utils/event-stream.js';
|
|
4
4
|
export interface OpenAIResponsesStreamOptions {
|
|
5
5
|
serviceTier?: ResponseCreateParamsStreaming['service_tier'];
|
|
6
|
-
applyServiceTierPricing?: (usage: Usage, serviceTier: ResponseCreateParamsStreaming['service_tier'] | undefined) => void;
|
|
6
|
+
applyServiceTierPricing?: (usage: Usage, serviceTier: ResponseCreateParamsStreaming['service_tier'] | undefined, model: Pick<Model<Api>, 'id'>) => void;
|
|
7
7
|
}
|
|
8
8
|
export interface ConvertResponsesMessagesOptions {
|
|
9
9
|
includeSystemPrompt?: boolean;
|
|
@@ -385,8 +385,9 @@ export async function processResponsesStream(openaiStream, output, stream, model
|
|
|
385
385
|
if (response?.usage) {
|
|
386
386
|
const cachedTokens = response.usage.input_tokens_details?.cached_tokens || 0;
|
|
387
387
|
output.usage = {
|
|
388
|
-
// OpenAI includes cached tokens in input_tokens
|
|
389
|
-
input
|
|
388
|
+
// OpenAI includes cached tokens in input_tokens; cost calculation
|
|
389
|
+
// derives uncached input from input - cacheRead - cacheWrite.
|
|
390
|
+
input: response.usage.input_tokens || 0,
|
|
390
391
|
output: response.usage.output_tokens || 0,
|
|
391
392
|
cacheRead: cachedTokens,
|
|
392
393
|
cacheWrite: 0,
|
|
@@ -397,7 +398,7 @@ export async function processResponsesStream(openaiStream, output, stream, model
|
|
|
397
398
|
calculateCost(model, output.usage);
|
|
398
399
|
if (options?.applyServiceTierPricing) {
|
|
399
400
|
const serviceTier = response?.service_tier ?? options.serviceTier;
|
|
400
|
-
options.applyServiceTierPricing(output.usage, serviceTier);
|
|
401
|
+
options.applyServiceTierPricing(output.usage, serviceTier, model);
|
|
401
402
|
}
|
|
402
403
|
// Map status to stop reason
|
|
403
404
|
output.stopReason = mapStopReason(response?.status);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ResponseCreateParamsStreaming } from 'openai/resources/responses/responses.js';
|
|
2
|
-
import type { SimpleStreamOptions, StreamFunction, StreamOptions } from '../types.js';
|
|
2
|
+
import type { Api, Model, SimpleStreamOptions, StreamFunction, StreamOptions } from '../types.js';
|
|
3
3
|
export interface OpenAIResponsesOptions extends StreamOptions {
|
|
4
4
|
reasoningEffort?: 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
|
|
5
5
|
reasoningSummary?: 'auto' | 'detailed' | 'concise' | null;
|
|
@@ -10,4 +10,5 @@ export interface OpenAIResponsesOptions extends StreamOptions {
|
|
|
10
10
|
*/
|
|
11
11
|
export declare const streamOpenAIResponses: StreamFunction<'openai-responses', OpenAIResponsesOptions>;
|
|
12
12
|
export declare const streamSimpleOpenAIResponses: StreamFunction<'openai-responses', SimpleStreamOptions>;
|
|
13
|
+
export declare function getServiceTierCostMultiplier(serviceTier: ResponseCreateParamsStreaming['service_tier'] | undefined, model: Pick<Model<Api>, 'id'>): number;
|
|
13
14
|
//# sourceMappingURL=openai-responses.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import OpenAI from 'openai';
|
|
2
|
+
import { SHORTCUT_MODEL_ID } from '../../model-ids.js';
|
|
2
3
|
import { getEnvApiKey } from '../env-api-keys.js';
|
|
3
4
|
import { supportsXhigh } from '../models.js';
|
|
4
5
|
import { AssistantMessageEventStream } from '../utils/event-stream.js';
|
|
@@ -58,7 +59,7 @@ export const streamOpenAIResponses = (model, context, options) => {
|
|
|
58
59
|
try {
|
|
59
60
|
// Create OpenAI client
|
|
60
61
|
const apiKey = options?.apiKey || getEnvApiKey(model.provider) || '';
|
|
61
|
-
const client = createClient(model, context, apiKey, options?.headers);
|
|
62
|
+
const client = createClient(model, context, apiKey, options?.headers, options?.fetchOptions);
|
|
62
63
|
const params = buildParams(model, context, options);
|
|
63
64
|
options?.onPayload?.(params);
|
|
64
65
|
const openaiStream = await client.responses.create(params, options?.signal ? { signal: options.signal } : undefined);
|
|
@@ -101,7 +102,7 @@ export const streamSimpleOpenAIResponses = (model, context, options) => {
|
|
|
101
102
|
reasoningEffort
|
|
102
103
|
});
|
|
103
104
|
};
|
|
104
|
-
function createClient(model, context, apiKey, optionsHeaders) {
|
|
105
|
+
function createClient(model, context, apiKey, optionsHeaders, fetchOptions) {
|
|
105
106
|
if (!apiKey) {
|
|
106
107
|
if (!process.env.OPENAI_API_KEY) {
|
|
107
108
|
throw new Error('OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.');
|
|
@@ -116,6 +117,7 @@ function createClient(model, context, apiKey, optionsHeaders) {
|
|
|
116
117
|
return new OpenAI({
|
|
117
118
|
apiKey,
|
|
118
119
|
baseURL: model.baseUrl,
|
|
120
|
+
fetchOptions: fetchOptions,
|
|
119
121
|
defaultHeaders: headers
|
|
120
122
|
});
|
|
121
123
|
}
|
|
@@ -167,18 +169,20 @@ function buildParams(model, context, options) {
|
|
|
167
169
|
}
|
|
168
170
|
return params;
|
|
169
171
|
}
|
|
170
|
-
function getServiceTierCostMultiplier(serviceTier) {
|
|
172
|
+
export function getServiceTierCostMultiplier(serviceTier, model) {
|
|
171
173
|
switch (serviceTier) {
|
|
172
174
|
case 'flex':
|
|
173
175
|
return 0.5;
|
|
174
176
|
case 'priority':
|
|
177
|
+
if (model.id === SHORTCUT_MODEL_ID.Gpt55)
|
|
178
|
+
return 2.5;
|
|
175
179
|
return 2;
|
|
176
180
|
default:
|
|
177
181
|
return 1;
|
|
178
182
|
}
|
|
179
183
|
}
|
|
180
|
-
function applyServiceTierPricing(usage, serviceTier) {
|
|
181
|
-
const multiplier = getServiceTierCostMultiplier(serviceTier);
|
|
184
|
+
function applyServiceTierPricing(usage, serviceTier, model) {
|
|
185
|
+
const multiplier = getServiceTierCostMultiplier(serviceTier, model);
|
|
182
186
|
if (multiplier === 1)
|
|
183
187
|
return;
|
|
184
188
|
usage.cost.input *= multiplier;
|
|
@@ -5,6 +5,7 @@ export function buildBaseOptions(model, options, apiKey) {
|
|
|
5
5
|
signal: options?.signal,
|
|
6
6
|
apiKey: apiKey || options?.apiKey,
|
|
7
7
|
cacheRetention: options?.cacheRetention,
|
|
8
|
+
fetchOptions: options?.fetchOptions,
|
|
8
9
|
sessionId: options?.sessionId,
|
|
9
10
|
headers: options?.headers,
|
|
10
11
|
onPayload: options?.onPayload,
|
package/dist/ai/types.d.ts
CHANGED
|
@@ -32,6 +32,13 @@ export interface StreamOptions {
|
|
|
32
32
|
* Optional callback for inspecting provider payloads before sending.
|
|
33
33
|
*/
|
|
34
34
|
onPayload?: (payload: unknown) => void;
|
|
35
|
+
/**
|
|
36
|
+
* Optional fetch settings for provider SDK calls.
|
|
37
|
+
*
|
|
38
|
+
* This is primarily used by first-party gateway transports that need browser
|
|
39
|
+
* cookies for auth; direct provider calls should normally leave it unset.
|
|
40
|
+
*/
|
|
41
|
+
fetchOptions?: RequestInit;
|
|
35
42
|
/**
|
|
36
43
|
* Optional custom HTTP headers to include in API requests.
|
|
37
44
|
* Merged with provider defaults; can override default headers.
|
|
@@ -95,6 +102,7 @@ export interface ToolCall {
|
|
|
95
102
|
thoughtSignature?: string;
|
|
96
103
|
}
|
|
97
104
|
export interface Usage {
|
|
105
|
+
/** Total input tokens, including cache read/write buckets when present. */
|
|
98
106
|
input: number;
|
|
99
107
|
output: number;
|
|
100
108
|
cacheRead: number;
|
|
@@ -98,7 +98,7 @@ export function isContextOverflow(message, contextWindow) {
|
|
|
98
98
|
}
|
|
99
99
|
// Case 2: Silent overflow (z.ai style) - successful but usage exceeds context
|
|
100
100
|
if (contextWindow && message.stopReason === 'stop') {
|
|
101
|
-
const inputTokens = message.usage.input
|
|
101
|
+
const inputTokens = message.usage.input;
|
|
102
102
|
if (inputTokens > contextWindow) {
|
|
103
103
|
return true;
|
|
104
104
|
}
|
|
@@ -35,6 +35,14 @@ function createAgentSessionCore(session, pendingHostToolRequests) {
|
|
|
35
35
|
session.replaceToolsByName(configuration.toolNames);
|
|
36
36
|
session.agent.setSystemPrompt(configuration.systemPrompt);
|
|
37
37
|
},
|
|
38
|
+
async controlTask(request) {
|
|
39
|
+
return {
|
|
40
|
+
ok: false,
|
|
41
|
+
action: request.action,
|
|
42
|
+
taskId: request.taskId,
|
|
43
|
+
reason: 'Task control is only available in the embedded ShortcutXL runtime.'
|
|
44
|
+
};
|
|
45
|
+
},
|
|
38
46
|
dispose() {
|
|
39
47
|
session.dispose();
|
|
40
48
|
},
|
|
@@ -346,7 +346,7 @@ export declare class AgentSession {
|
|
|
346
346
|
private _setAutonomousState;
|
|
347
347
|
/** Reload autonomous-run state from the persisted session header on resume. */
|
|
348
348
|
private _restoreAutonomousStateFromSession;
|
|
349
|
-
/**
|
|
349
|
+
/** Handle the product-owned /autonomous command before sending text to the model. */
|
|
350
350
|
private _prepareAutonomousPrompt;
|
|
351
351
|
/**
|
|
352
352
|
* Queue a steering message to interrupt the agent mid-run.
|
|
@@ -362,7 +362,7 @@ export declare class AgentSession {
|
|
|
362
362
|
* @param images Optional image attachments to include with the message
|
|
363
363
|
*/
|
|
364
364
|
followUp(text: string, images?: ImageContent[]): Promise<void>;
|
|
365
|
-
/** Resolve raw prompt text + images into the final agent-input shape
|
|
365
|
+
/** Resolve raw prompt text + images into the final agent-input shape. */
|
|
366
366
|
private _preparePromptInput;
|
|
367
367
|
/** Enqueue a steering message to be delivered before the next assistant response. */
|
|
368
368
|
private _queueSteer;
|
|
@@ -17,11 +17,11 @@ import { createCompactionActions, createErrorRecoveryActions, triggerCompactionI
|
|
|
17
17
|
import { isContextOverflow } from '../core/session/context-overflow.js';
|
|
18
18
|
import { SessionCompaction } from '../core/session/session-compaction.js';
|
|
19
19
|
import { classifyError, SessionErrorRecovery } from '../core/session/session-error-recovery.js';
|
|
20
|
+
import { getActiveUserMessageId } from '../core/user-message-id.js';
|
|
20
21
|
import { isShortcutFastModeModel } from '../model-ids.js';
|
|
21
22
|
import { formatFileUploadsContext, mergeFileUploads } from './file-uploads.js';
|
|
22
|
-
import {
|
|
23
|
+
import { createShortcutLlmProxyClient } from './providers/shortcut-llm-proxy-client.js';
|
|
23
24
|
import { expandPromptTemplate } from './resources/prompt-template-expansion.js';
|
|
24
|
-
import { parseSkillBlock } from './resources/skill-block.js';
|
|
25
25
|
import { AUTONOMOUS_STATE_CUSTOM_TYPE, buildAutonomousRefreshPrompt, extractProgressFolder, inferAutonomousStateFromEntries } from './session/autonomous-workflow.js';
|
|
26
26
|
import { BranchManager } from './session/branch-manager.js';
|
|
27
27
|
import { parseBudgetCommand } from './session/budget-command.js';
|
|
@@ -137,11 +137,18 @@ export class AgentSession {
|
|
|
137
137
|
this._fastModeDisabledReason = this._fastModeAllowed
|
|
138
138
|
? undefined
|
|
139
139
|
: (config.fastModeDisabledReason ?? 'team');
|
|
140
|
+
const summaryShortcutLlmProxy = createShortcutLlmProxyClient({
|
|
141
|
+
modelRegistry: this._modelRegistry,
|
|
142
|
+
getAttribution: () => ({
|
|
143
|
+
sessionId: this.sessionManager.getSessionId(),
|
|
144
|
+
userMessageId: getActiveUserMessageId(this.messages)
|
|
145
|
+
})
|
|
146
|
+
});
|
|
140
147
|
this._summaryEmitter = new ToolSummaryEmitter({
|
|
141
148
|
enabled: config.enableToolSummaries ?? true,
|
|
142
149
|
isFeatureEnabled: () => this.settingsManager.getToolSummariesEnabled(),
|
|
143
150
|
isEligibleTool: isToolSummaryEligible,
|
|
144
|
-
|
|
151
|
+
getShortcutLlmProxyClient: () => summaryShortcutLlmProxy,
|
|
145
152
|
onDiagnostic: (diagnostic) => {
|
|
146
153
|
this._toolSummaryDiagnostics.push(diagnostic);
|
|
147
154
|
if (this._toolSummaryDiagnostics.length > 200) {
|
|
@@ -388,7 +395,7 @@ export class AgentSession {
|
|
|
388
395
|
this._summaryEmitter.captureArgs(event.toolCallId, event.args);
|
|
389
396
|
}
|
|
390
397
|
if (event.type === 'tool_execution_end') {
|
|
391
|
-
this._summaryEmitter.maybeGenerate(event.toolCallId, event.toolName, event.result,
|
|
398
|
+
this._summaryEmitter.maybeGenerate(event.toolCallId, event.toolName, event.result, (e) => this._emit(e));
|
|
392
399
|
}
|
|
393
400
|
// --- Step 3c: Budget token accumulation (sync) ---
|
|
394
401
|
if (event.type === 'message_end' && event.message.role === 'assistant') {
|
|
@@ -748,7 +755,7 @@ export class AgentSession {
|
|
|
748
755
|
enabled: true,
|
|
749
756
|
originalUserTask: trimmed
|
|
750
757
|
});
|
|
751
|
-
await this.prompt(
|
|
758
|
+
await this.prompt(trimmed);
|
|
752
759
|
}
|
|
753
760
|
/** Stage a pending session refresh (mode/model swap) to be applied on the next prompt. */
|
|
754
761
|
async preparePendingRefresh(refresh) {
|
|
@@ -969,7 +976,7 @@ export class AgentSession {
|
|
|
969
976
|
_restoreAutonomousStateFromSession() {
|
|
970
977
|
this._autonomousState = inferAutonomousStateFromEntries(this.sessionManager.getEntries());
|
|
971
978
|
}
|
|
972
|
-
/**
|
|
979
|
+
/** Handle the product-owned /autonomous command before sending text to the model. */
|
|
973
980
|
_prepareAutonomousPrompt(text) {
|
|
974
981
|
if (!text.startsWith('/autonomous'))
|
|
975
982
|
return text;
|
|
@@ -981,7 +988,7 @@ export class AgentSession {
|
|
|
981
988
|
enabled: true,
|
|
982
989
|
originalUserTask: task
|
|
983
990
|
});
|
|
984
|
-
return
|
|
991
|
+
return task;
|
|
985
992
|
}
|
|
986
993
|
/**
|
|
987
994
|
* Queue a steering message to interrupt the agent mid-run.
|
|
@@ -1017,7 +1024,7 @@ export class AgentSession {
|
|
|
1017
1024
|
}
|
|
1018
1025
|
await this._queueFollowUp(prepared.text, prepared.images);
|
|
1019
1026
|
}
|
|
1020
|
-
/** Resolve raw prompt text + images into the final agent-input shape
|
|
1027
|
+
/** Resolve raw prompt text + images into the final agent-input shape. */
|
|
1021
1028
|
async _preparePromptInput(text, images, options) {
|
|
1022
1029
|
let currentText = this._prepareAutonomousPrompt(text);
|
|
1023
1030
|
let currentImages = images;
|
|
@@ -1042,13 +1049,6 @@ export class AgentSession {
|
|
|
1042
1049
|
currentText = this._expandSkillCommand(currentText);
|
|
1043
1050
|
currentText = expandPromptTemplate(currentText, [...this.promptTemplates]);
|
|
1044
1051
|
}
|
|
1045
|
-
const parsedSkill = parseSkillBlock(currentText);
|
|
1046
|
-
if (parsedSkill?.name === 'autonomous' && parsedSkill.userMessage) {
|
|
1047
|
-
this._setAutonomousState({
|
|
1048
|
-
enabled: true,
|
|
1049
|
-
originalUserTask: parsedSkill.userMessage
|
|
1050
|
-
});
|
|
1051
|
-
}
|
|
1052
1052
|
if (options.commandMode === 'reject' && currentText.startsWith('/')) {
|
|
1053
1053
|
assertNotExtensionCommand(currentText, extensionRunner);
|
|
1054
1054
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Summaries are ephemeral UX — displayed to the user but never injected
|
|
5
5
|
* into the LLM conversation context.
|
|
6
6
|
*/
|
|
7
|
-
import { type
|
|
7
|
+
import { type ShortcutLlmProxyClient } from '../providers/shortcut-llm-proxy-client.js';
|
|
8
8
|
export declare const TOOL_SUMMARY_MODEL = "claude-haiku-4-5-20251001";
|
|
9
9
|
interface ToolSummaryInput {
|
|
10
10
|
toolName: string;
|
|
@@ -13,7 +13,7 @@ interface ToolSummaryInput {
|
|
|
13
13
|
}
|
|
14
14
|
export interface ToolSummaryGenerationResult {
|
|
15
15
|
summary?: string;
|
|
16
|
-
failureReason?: 'aborted' | 'http-error' | 'invalid-json' | 'missing-text' | 'network-error';
|
|
16
|
+
failureReason?: 'aborted' | 'http-error' | 'invalid-json' | 'missing-auth' | 'missing-base-url' | 'missing-text' | 'network-error';
|
|
17
17
|
httpStatus?: number;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
@@ -22,7 +22,13 @@ export interface ToolSummaryGenerationResult {
|
|
|
22
22
|
* Returns the summary string, or undefined if the call fails or is aborted.
|
|
23
23
|
* Never throws — errors are silently swallowed since summaries are best-effort UX.
|
|
24
24
|
*/
|
|
25
|
-
export declare function generateToolSummaryDetailed(input: ToolSummaryInput,
|
|
26
|
-
|
|
25
|
+
export declare function generateToolSummaryDetailed(input: ToolSummaryInput, shortcutLlmProxy: ShortcutLlmProxyClient, options?: {
|
|
26
|
+
signal?: AbortSignal;
|
|
27
|
+
maxOutputTokens?: number;
|
|
28
|
+
}): Promise<ToolSummaryGenerationResult>;
|
|
29
|
+
export declare function generateToolSummary(input: ToolSummaryInput, shortcutLlmProxy: ShortcutLlmProxyClient, options?: {
|
|
30
|
+
signal?: AbortSignal;
|
|
31
|
+
maxOutputTokens?: number;
|
|
32
|
+
}): Promise<string | undefined>;
|
|
27
33
|
export {};
|
|
28
34
|
//# sourceMappingURL=tool-summaries.d.ts.map
|