sage-agent-internal 0.1.30__tar.gz → 0.1.31rc0__tar.gz
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.
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/.copier-answers.yml +3 -3
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/.gitignore +2 -2
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/.prettierignore +1 -1
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/PKG-INFO +12 -12
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/README.md +8 -8
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/RELEASE.md +1 -1
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/__tests__/sage_agent.spec.ts +1 -1
- sage_agent_internal-0.1.31rc0/install.json +5 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/package-lock.json +2 -2
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/package.json +8 -7
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/pyproject.toml +8 -8
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/__init__.py +2 -2
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/_version.py +1 -1
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/package.json +9 -8
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/schemas/sage-agent-internal/package.json.orig +8 -7
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/schemas/sage-agent-internal/plugin.json +5 -5
- sage_agent_internal-0.1.31rc0/sage_agent_internal/labextension/static/353.2c285601a208c3735929.js +1 -0
- sage_agent_internal-0.1.31rc0/sage_agent_internal/labextension/static/363.d6c25400a011b62fbae6.js +1 -0
- sage_agent_internal-0.1.31rc0/sage_agent_internal/labextension/static/439.3cb9ac7022c8a6074647.js +1 -0
- sage_agent_internal-0.1.31rc0/sage_agent_internal/labextension/static/635.8c395c854aa2b140b668.js +1 -0
- sage_agent_internal-0.1.31rc0/sage_agent_internal/labextension/static/747.b8e9485ebcbb3066eb4b.js +1 -0
- sage_agent_internal-0.1.31rc0/sage_agent_internal/labextension/static/821.b58f29814f5900f1f6f8.js +1 -0
- sage_agent_internal-0.1.31rc0/sage_agent_internal/labextension/static/833.1509794f6b586558f96c.js +1 -0
- sage_agent_internal-0.1.31rc0/sage_agent_internal/labextension/static/973.38ee5148a3908e41c2dd.js +2 -0
- sage_agent_internal-0.1.31rc0/sage_agent_internal/labextension/static/remoteEntry.b4d298844205dc8d9771.js +1 -0
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/static/third-party-licenses.json +35 -5
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/schema/plugin.json +5 -5
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/AppState.ts +120 -45
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/BackendTools/DatabaseTools.ts +100 -19
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ChatContextMenu/ContextCacheService.ts +23 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ChatContextMenu/icons.ts +7 -7
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ChatHistoryManager.ts +5 -2
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ChatInputManager.ts +10 -4
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ChatMessages.ts +787 -4
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ConversationServiceUtils.ts +60 -15
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/CodebaseManager.ts +4 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/ChatboxContext.ts +17 -1
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/DiffApprovalDialog.ts +94 -166
- sage_agent_internal-0.1.31rc0/src/Components/DiffNavigationContent.tsx +89 -0
- sage_agent_internal-0.1.31rc0/src/Components/DiffNavigationWidget.tsx +449 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/LLMStateDisplay/DiffItem.tsx +15 -13
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/LLMStateDisplay/LLMStateContent.tsx +37 -20
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/LLMStateDisplay/icons.ts +3 -3
- sage_agent_internal-0.1.31rc0/src/Components/PlanStateDisplay.tsx +446 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/Settings/SettingsWidget.tsx +37 -19
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/UpdateBanner/UpdateBannerWidget.tsx +49 -28
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/chatbox.ts +51 -2
- sage_agent_internal-0.1.31rc0/src/Components/icons.ts +91 -0
- sage_agent_internal-0.1.31rc0/src/Config/prompts/claude_system_prompt.md +70 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Config/tools.json +16 -3
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Notebook/InlineDiffService.ts +137 -100
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Notebook/NotebookCellTools.ts +38 -46
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Notebook/NotebookChatContainer.ts +1 -1
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Notebook/NotebookDiffManager.ts +17 -4
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Notebook/NotebookDiffTools.ts +18 -13
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Notebook/NotebookTools.ts +25 -5
- sage_agent_internal-0.1.31rc0/src/Notebook/WaitingUserReplyBoxManager.ts +277 -0
- sage_agent_internal-0.1.31rc0/src/Services/ContextService.ts +98 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Services/DatabaseMetadataCache.ts +1 -1
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/index.ts +1 -1
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/plugin.ts +132 -18
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/utils/caching.ts +2 -2
- sage_agent_internal-0.1.31rc0/src/utils/contextTagUtils.ts +208 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/utils/stateDBCaching.ts +1 -1
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/base.css +113 -14
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/chat-mention-dropdown.css +10 -4
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/code-mirror-merge.css +9 -1
- sage_agent_internal-0.1.31rc0/style/diff-navigation.css +178 -0
- sage_agent_internal-0.1.31rc0/style/floating-bottom-widget.css +191 -0
- sage_agent_internal-0.1.31rc0/style/icons/chat_input/approve.svg +3 -0
- sage_agent_internal-0.1.31rc0/style/icons/chat_input/arrow-down.svg +1 -0
- sage_agent_internal-0.1.31rc0/style/icons/chat_input/arrow-up.svg +1 -0
- sage_agent_internal-0.1.31rc0/style/icons/chat_input/check.svg +3 -0
- sage_agent_internal-0.1.31rc0/style/icons/chat_input/dashed-circle.svg +9 -0
- sage_agent_internal-0.1.31rc0/style/icons/chat_input/reject.svg +3 -0
- sage_agent_internal-0.1.31rc0/style/icons/state_display/run_cell.svg +4 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/index.css +1 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/index.js +1 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/inline-diff-approval.css +73 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/llm-state-display.css +6 -2
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/plan-state-display.css +60 -7
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/ui-tests/package.json +2 -2
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/yarn.lock +551 -559
- sage_agent_internal-0.1.30/install.json +0 -5
- sage_agent_internal-0.1.30/sage_agent/labextension/static/379.b3bf2f8d00bdb186e6f8.js +0 -1
- sage_agent_internal-0.1.30/sage_agent/labextension/static/424.46b6777adc8e6829c7d8.js +0 -1
- sage_agent_internal-0.1.30/sage_agent/labextension/static/439.61293ec148172a793000.js +0 -1
- sage_agent_internal-0.1.30/sage_agent/labextension/static/540.283f7cceb475717261ed.js +0 -1
- sage_agent_internal-0.1.30/sage_agent/labextension/static/982.e8f28fa7892d44e0d1bb.js +0 -2
- sage_agent_internal-0.1.30/sage_agent/labextension/static/remoteEntry.8dbbd4ce55849ba88012.js +0 -1
- sage_agent_internal-0.1.30/src/Components/PlanStateDisplay.tsx +0 -295
- sage_agent_internal-0.1.30/src/Components/icons.ts +0 -49
- sage_agent_internal-0.1.30/src/Config/prompts/claude_system_prompt.md +0 -88
- sage_agent_internal-0.1.30/src/Notebook/WaitingUserReplyBoxManager.ts +0 -39
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/.keep +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/.vscode/settings.json +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/.yarnrc.yml +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/CHANGELOG.md +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/LICENSE +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/babel.config.js +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/cli-chat-tool/index.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/cli-chat-tool/package-lock.json +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/cli-chat-tool/package.json +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/cli-chat-tool/tsconfig.json +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/cli-chat-tool/yarn.lock +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/jest.config.js +0 -0
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/static/122.3c2c200586e65203b674.js +0 -0
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/static/220.d384edfd5bbcfda33a2a.js +0 -0
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/static/262.3fc4ad88e6f8c273d4ad.js +0 -0
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/static/364.c2fb82c6f484097228c6.js +0 -0
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/static/481.96b91d018df31d54d173.js +0 -0
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/static/553.b7906877d98a62265533.js +0 -0
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/static/553.b7906877d98a62265533.js.LICENSE.txt +0 -0
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/static/713.103cb5ae248be385b08a.js +0 -0
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/static/742.b204789055ded4e07883.js +0 -0
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/static/845.cc2bc80fbfea6d20a396.js +0 -0
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/static/888.09382cc93a2ad3932b31.js +0 -0
- /sage_agent_internal-0.1.30/sage_agent/labextension/static/982.e8f28fa7892d44e0d1bb.js.LICENSE.txt → /sage_agent_internal-0.1.31rc0/sage_agent_internal/labextension/static/973.38ee5148a3908e41c2dd.js.LICENSE.txt +0 -0
- {sage_agent_internal-0.1.30/sage_agent → sage_agent_internal-0.1.31rc0/sage_agent_internal}/labextension/static/style.js +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/setup.py +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/BackendTools/FilesystemTools.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/BackendTools/WebTools.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/BackendTools/index.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/BackendTools/tickers.json +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/CellTrackingService.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ActionHistory.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ChatContextMenu/ChatContextLoaders.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ChatContextMenu/ChatContextMenu.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ChatContextMenu/ChatContextMenuLogic.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ChatContextMenu/ChatContextMenuUtils.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ChatContextMenu/ContextCellHighlighter.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ChatContextMenu/KernelExecutionListener.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ChatUIHelper.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/ConversationService.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Chat/RichTextChatInput.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/CodeConfirmationDialog.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/LLMStateDisplay/LLMStateDisplay.tsx +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/LLMStateDisplay/index.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/LLMStateDisplay/types.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/MoreOptionsDisplay.tsx +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/NewChatDisplayWidget.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/RejectionFeedbackDialog.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/SnippetCreationWidget/SnippetCreationContent.tsx +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/SnippetCreationWidget/SnippetCreationWidget.tsx +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/SnippetCreationWidget/SnippetForm.tsx +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/SnippetCreationWidget/SnippetFormModal.tsx +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/SnippetCreationWidget/SnippetList.tsx +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/SnippetCreationWidget/index.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Components/SnippetCreationWidget/types.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Config/ConfigService.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Config/models.json +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Config/optional_env.json +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Config/prompts/claude_system_prompt_ask_mode.md +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Config/prompts/claude_system_prompt_edit_full_cell.md +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Config/prompts/claude_system_prompt_edit_selection.md +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Config/prompts/claude_system_prompt_fast_mode.md +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Notebook/NotebookContextManager.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Notebook/NotebookStateService.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/NotebookSettingsContainer.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Services/AnthropicMessageCreator.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Services/AnthropicService.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Services/AnthropicStreamHandler.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Services/DiffStateService.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Services/IChatService.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Services/NotebookCellStateService.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Services/ServiceFactory.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Services/ServiceUtils.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/Services/ToolService.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/ThreadManager.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/TrackingIDUtility.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/commands.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/eval_commands.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/types/json.d.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/types.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/utils/VariableExtractor.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/utils/kernelPreview.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/utils/kernelUtils.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/utils/tokenUtils.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/utils/toolDisplay.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/src/utils.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/chat-container.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/codebase-manager.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/diff-approval.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/diff-edit-mode.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/diff-mode.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/fonts.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/chat_input/agent-mode-shiny.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/chat_input/agent-mode.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/chat_input/ask-mode.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/chat_input/hands-on-mode.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/chat_input/open.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/chat_input/reapply.svg +0 -0
- /sage_agent_internal-0.1.30/style/icons/state_display/run_cell.svg → /sage_agent_internal-0.1.31rc0/style/icons/chat_input/run.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/chat_input/search.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/chat_input/send.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/chat_input/stop.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/context_menu/cell.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/context_menu/data.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/context_menu/insert.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/context_menu/search.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/context_menu/snippets.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/context_menu/variable.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/state_display/menu-close.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/icons/state_display/menu-icon.svg +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/left-side-menu.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/minus-icon.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/modal.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/mode-selector-dropdown.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/more-options.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/new-chat-display.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/settings-widget.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/snippet-creation.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/style.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/style/update-banner.css +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/templates/rule.example.md +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/tsconfig.json +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/tsconfig.test.json +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/ui-tests/README.md +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/ui-tests/jupyter_server_test_config.py +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/ui-tests/playwright.config.js +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/ui-tests/tests/sage_agent.spec.ts +0 -0
- {sage_agent_internal-0.1.30 → sage_agent_internal-0.1.31rc0}/ui-tests/yarn.lock +0 -0
@@ -6,9 +6,9 @@ author_name: Daniel Schaffield
|
|
6
6
|
has_binder: true
|
7
7
|
has_settings: true
|
8
8
|
kind: frontend
|
9
|
-
labextension_name: sage-agent
|
9
|
+
labextension_name: sage-agent-internal
|
10
10
|
project_short_description: Sage Agent - Your Jupyter Notebook Assistant
|
11
|
-
python_name:
|
12
|
-
repository: https://github.com/AlpineX-Labs/jupyter-sage-agent
|
11
|
+
python_name: sage_agent_internal
|
12
|
+
repository: https://github.com/AlpineX-Labs/jupyter-sage-agent-internal
|
13
13
|
test: true
|
14
14
|
|
@@ -7,9 +7,9 @@ node_modules/
|
|
7
7
|
*.egg-info/
|
8
8
|
.ipynb_checkpoints
|
9
9
|
*.tsbuildinfo
|
10
|
-
|
10
|
+
sage_agent_internal/labextension
|
11
11
|
# Version file is handled by hatchling
|
12
|
-
|
12
|
+
sage_agent_internal/_version.py
|
13
13
|
|
14
14
|
# Integration tests
|
15
15
|
ui-tests/test-results/
|
@@ -1,10 +1,10 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: sage_agent_internal
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.31rc0
|
4
4
|
Summary: Sage Agent - Your Jupyter Notebook Assistant
|
5
|
-
Project-URL: Homepage, https://github.com/AlpineX-Labs/jupyter-sage-agent
|
6
|
-
Project-URL: Bug Tracker, https://github.com/AlpineX-Labs/jupyter-sage-agent/issues
|
7
|
-
Project-URL: Repository, https://github.com/AlpineX-Labs/jupyter-sage-agent.git
|
5
|
+
Project-URL: Homepage, https://github.com/AlpineX-Labs/jupyter-sage-agent-internal
|
6
|
+
Project-URL: Bug Tracker, https://github.com/AlpineX-Labs/jupyter-sage-agent-internal/issues
|
7
|
+
Project-URL: Repository, https://github.com/AlpineX-Labs/jupyter-sage-agent-internal.git
|
8
8
|
Author-email: Daniel Schaffield <danielschaffield@gmail.com>
|
9
9
|
License: BSD 3-Clause License
|
10
10
|
|
@@ -54,10 +54,10 @@ Classifier: Programming Language :: Python :: 3.13
|
|
54
54
|
Requires-Python: >=3.6
|
55
55
|
Description-Content-Type: text/markdown
|
56
56
|
|
57
|
-
#
|
57
|
+
# sage_agent_internal
|
58
58
|
|
59
|
-
[](https://github.com/AlpineX-Labs/jupyter-sage-agent/actions/workflows/build.yml)
|
60
|
-
[](https://mybinder.org/v2/gh/AlpineX-Labs/jupyter-sage-agent/main?urlpath=lab)
|
59
|
+
[](https://github.com/AlpineX-Labs/jupyter-sage-agent-internal/actions/workflows/build.yml)
|
60
|
+
[](https://mybinder.org/v2/gh/AlpineX-Labs/jupyter-sage-agent-internal/main?urlpath=lab)
|
61
61
|
|
62
62
|
Sage Agent - Your Jupyter Notebook Assistant
|
63
63
|
|
@@ -70,7 +70,7 @@ Sage Agent - Your Jupyter Notebook Assistant
|
|
70
70
|
To install the extension, execute:
|
71
71
|
|
72
72
|
```bash
|
73
|
-
pip install
|
73
|
+
pip install sage_agent_internal
|
74
74
|
```
|
75
75
|
|
76
76
|
## Uninstall
|
@@ -78,7 +78,7 @@ pip install sage_agent
|
|
78
78
|
To remove the extension, execute:
|
79
79
|
|
80
80
|
```bash
|
81
|
-
pip uninstall
|
81
|
+
pip uninstall sage_agent_internal
|
82
82
|
```
|
83
83
|
|
84
84
|
## Contributing
|
@@ -93,7 +93,7 @@ The `jlpm` command is JupyterLab's pinned version of
|
|
93
93
|
|
94
94
|
```bash
|
95
95
|
# Clone the repo to your local environment
|
96
|
-
# Change directory to the
|
96
|
+
# Change directory to the sage_agent_internal directory
|
97
97
|
# Install package in development mode
|
98
98
|
pip install -e "."
|
99
99
|
# Link your development version of the extension with JupyterLab
|
@@ -122,12 +122,12 @@ jupyter lab build --minimize=False
|
|
122
122
|
### Development uninstall
|
123
123
|
|
124
124
|
```bash
|
125
|
-
pip uninstall
|
125
|
+
pip uninstall sage_agent_internal
|
126
126
|
```
|
127
127
|
|
128
128
|
In development mode, you will also need to remove the symlink created by `jupyter labextension develop`
|
129
129
|
command. To find its location, you can run `jupyter labextension list` to figure out where the `labextensions`
|
130
|
-
folder is located. Then you can remove the symlink named `sage-agent` within that folder.
|
130
|
+
folder is located. Then you can remove the symlink named `sage-agent-internal` within that folder.
|
131
131
|
|
132
132
|
### Testing the extension
|
133
133
|
|
@@ -1,7 +1,7 @@
|
|
1
|
-
#
|
1
|
+
# sage_agent_internal
|
2
2
|
|
3
|
-
[](https://github.com/AlpineX-Labs/jupyter-sage-agent/actions/workflows/build.yml)
|
4
|
-
[](https://mybinder.org/v2/gh/AlpineX-Labs/jupyter-sage-agent/main?urlpath=lab)
|
3
|
+
[](https://github.com/AlpineX-Labs/jupyter-sage-agent-internal/actions/workflows/build.yml)
|
4
|
+
[](https://mybinder.org/v2/gh/AlpineX-Labs/jupyter-sage-agent-internal/main?urlpath=lab)
|
5
5
|
|
6
6
|
Sage Agent - Your Jupyter Notebook Assistant
|
7
7
|
|
@@ -14,7 +14,7 @@ Sage Agent - Your Jupyter Notebook Assistant
|
|
14
14
|
To install the extension, execute:
|
15
15
|
|
16
16
|
```bash
|
17
|
-
pip install
|
17
|
+
pip install sage_agent_internal
|
18
18
|
```
|
19
19
|
|
20
20
|
## Uninstall
|
@@ -22,7 +22,7 @@ pip install sage_agent
|
|
22
22
|
To remove the extension, execute:
|
23
23
|
|
24
24
|
```bash
|
25
|
-
pip uninstall
|
25
|
+
pip uninstall sage_agent_internal
|
26
26
|
```
|
27
27
|
|
28
28
|
## Contributing
|
@@ -37,7 +37,7 @@ The `jlpm` command is JupyterLab's pinned version of
|
|
37
37
|
|
38
38
|
```bash
|
39
39
|
# Clone the repo to your local environment
|
40
|
-
# Change directory to the
|
40
|
+
# Change directory to the sage_agent_internal directory
|
41
41
|
# Install package in development mode
|
42
42
|
pip install -e "."
|
43
43
|
# Link your development version of the extension with JupyterLab
|
@@ -66,12 +66,12 @@ jupyter lab build --minimize=False
|
|
66
66
|
### Development uninstall
|
67
67
|
|
68
68
|
```bash
|
69
|
-
pip uninstall
|
69
|
+
pip uninstall sage_agent_internal
|
70
70
|
```
|
71
71
|
|
72
72
|
In development mode, you will also need to remove the symlink created by `jupyter labextension develop`
|
73
73
|
command. To find its location, you can run `jupyter labextension list` to figure out where the `labextensions`
|
74
|
-
folder is located. Then you can remove the symlink named `sage-agent` within that folder.
|
74
|
+
folder is located. Then you can remove the symlink named `sage-agent-internal` within that folder.
|
75
75
|
|
76
76
|
### Testing the extension
|
77
77
|
|
@@ -1,11 +1,11 @@
|
|
1
1
|
{
|
2
|
-
"name": "sage-agent",
|
2
|
+
"name": "sage-agent-internal",
|
3
3
|
"version": "0.1.18",
|
4
4
|
"lockfileVersion": 3,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
|
-
"name": "sage-agent",
|
8
|
+
"name": "sage-agent-internal",
|
9
9
|
"version": "0.1.18",
|
10
10
|
"license": "BSD-3-Clause",
|
11
11
|
"dependencies": {
|
@@ -1,15 +1,15 @@
|
|
1
1
|
{
|
2
2
|
"name": "sage-agent-internal",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.31-rc0",
|
4
4
|
"description": "Sage Agent - Your Jupyter Notebook Assistant",
|
5
5
|
"keywords": [
|
6
6
|
"jupyter",
|
7
7
|
"jupyterlab",
|
8
8
|
"jupyterlab-extension"
|
9
9
|
],
|
10
|
-
"homepage": "https://github.com/AlpineX-Labs/jupyter-sage-agent",
|
10
|
+
"homepage": "https://github.com/AlpineX-Labs/jupyter-sage-agent-internal",
|
11
11
|
"bugs": {
|
12
|
-
"url": "https://github.com/AlpineX-Labs/jupyter-sage-agent/issues"
|
12
|
+
"url": "https://github.com/AlpineX-Labs/jupyter-sage-agent-internal/issues"
|
13
13
|
},
|
14
14
|
"license": "BSD-3-Clause",
|
15
15
|
"author": {
|
@@ -27,7 +27,7 @@
|
|
27
27
|
"style": "style/index.css",
|
28
28
|
"repository": {
|
29
29
|
"type": "git",
|
30
|
-
"url": "https://github.com/AlpineX-Labs/jupyter-sage-agent.git"
|
30
|
+
"url": "https://github.com/AlpineX-Labs/jupyter-sage-agent-internal.git"
|
31
31
|
},
|
32
32
|
"scripts": {
|
33
33
|
"build": "jlpm prebuild && jlpm build:lib && jlpm build:labextension:dev",
|
@@ -40,7 +40,7 @@
|
|
40
40
|
"clean": "jlpm clean:lib",
|
41
41
|
"clean:lib": "rimraf lib tsconfig.tsbuildinfo",
|
42
42
|
"clean:lintcache": "rimraf .eslintcache .stylelintcache",
|
43
|
-
"clean:labextension": "rimraf
|
43
|
+
"clean:labextension": "rimraf sage_agent_internal/labextension sage_agent_internal/_version.py",
|
44
44
|
"clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache",
|
45
45
|
"eslint": "jlpm eslint:check --fix",
|
46
46
|
"eslint:check": "eslint . --cache --ext .ts,.tsx",
|
@@ -59,7 +59,6 @@
|
|
59
59
|
},
|
60
60
|
"dependencies": {
|
61
61
|
"@anthropic-ai/sdk": "^0.54.0",
|
62
|
-
"@codemirror/merge": "^6.10.2",
|
63
62
|
"@electric-sql/pglite": "^0.3.6",
|
64
63
|
"@google/generative-ai": "^0.24.0",
|
65
64
|
"@jupyterlab/application": "^4.0.0",
|
@@ -71,6 +70,8 @@
|
|
71
70
|
"best-effort-json-parser": "^1.1.3",
|
72
71
|
"bootstrap": "^5.3.7",
|
73
72
|
"chalk": "^4.1.2",
|
73
|
+
"codemirror": "^6.0.2",
|
74
|
+
"codemirror-merge-alpinex": "^6.10.4",
|
74
75
|
"diff": "^8.0.1",
|
75
76
|
"diff2html": "^3.4.51",
|
76
77
|
"dompurify": "^3.2.5",
|
@@ -122,7 +123,7 @@
|
|
122
123
|
},
|
123
124
|
"jupyterlab": {
|
124
125
|
"extension": true,
|
125
|
-
"outputDir": "
|
126
|
+
"outputDir": "sage_agent_internal/labextension",
|
126
127
|
"schemaDir": "schema"
|
127
128
|
},
|
128
129
|
"eslintIgnore": [
|
@@ -34,24 +34,24 @@ source = "nodejs"
|
|
34
34
|
fields = ["description", "authors", "urls", "keywords"]
|
35
35
|
|
36
36
|
[tool.hatch.build.targets.sdist]
|
37
|
-
artifacts = ["
|
37
|
+
artifacts = ["sage_agent_internal/labextension"]
|
38
38
|
exclude = [".github", "binder"]
|
39
39
|
|
40
40
|
[tool.hatch.build.targets.wheel.shared-data]
|
41
|
-
"
|
42
|
-
"install.json" = "share/jupyter/labextensions/sage-agent/install.json"
|
41
|
+
"sage_agent_internal/labextension" = "share/jupyter/labextensions/sage-agent-internal"
|
42
|
+
"install.json" = "share/jupyter/labextensions/sage-agent-internal/install.json"
|
43
43
|
|
44
44
|
[tool.hatch.build.hooks.version]
|
45
|
-
path = "
|
45
|
+
path = "sage_agent_internal/_version.py"
|
46
46
|
|
47
47
|
[tool.hatch.build.hooks.jupyter-builder]
|
48
48
|
dependencies = ["hatch-jupyter-builder>=0.5"]
|
49
49
|
build-function = "hatch_jupyter_builder.npm_builder"
|
50
50
|
ensured-targets = [
|
51
|
-
"
|
52
|
-
"
|
51
|
+
"sage_agent_internal/labextension/static/style.js",
|
52
|
+
"sage_agent_internal/labextension/package.json",
|
53
53
|
]
|
54
|
-
skip-if-exists = ["
|
54
|
+
skip-if-exists = ["sage_agent_internal/labextension/static/style.js"]
|
55
55
|
|
56
56
|
[tool.hatch.build.hooks.jupyter-builder.build-kwargs]
|
57
57
|
build_cmd = "build:prod"
|
@@ -61,7 +61,7 @@ npm = ["jlpm"]
|
|
61
61
|
build_cmd = "install:extension"
|
62
62
|
npm = ["jlpm"]
|
63
63
|
source_dir = "src"
|
64
|
-
build_dir = "
|
64
|
+
build_dir = "sage_agent_internal/labextension"
|
65
65
|
|
66
66
|
[tool.jupyter-releaser.options]
|
67
67
|
version_cmd = "hatch version"
|
@@ -5,12 +5,12 @@ except ImportError:
|
|
5
5
|
# in editable mode with pip. It is highly recommended to install
|
6
6
|
# the package from a stable release or in editable mode: https://pip.pypa.io/en/stable/topics/local-project-installs/#editable-installs
|
7
7
|
import warnings
|
8
|
-
warnings.warn("Importing '
|
8
|
+
warnings.warn("Importing 'sage_agent_internal' outside a proper installation.")
|
9
9
|
__version__ = "dev"
|
10
10
|
|
11
11
|
|
12
12
|
def _jupyter_labextension_paths():
|
13
13
|
return [{
|
14
14
|
"src": "labextension",
|
15
|
-
"dest": "sage-agent"
|
15
|
+
"dest": "sage-agent-internal"
|
16
16
|
}]
|
@@ -1,15 +1,15 @@
|
|
1
1
|
{
|
2
2
|
"name": "sage-agent-internal",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.31-rc0",
|
4
4
|
"description": "Sage Agent - Your Jupyter Notebook Assistant",
|
5
5
|
"keywords": [
|
6
6
|
"jupyter",
|
7
7
|
"jupyterlab",
|
8
8
|
"jupyterlab-extension"
|
9
9
|
],
|
10
|
-
"homepage": "https://github.com/AlpineX-Labs/jupyter-sage-agent",
|
10
|
+
"homepage": "https://github.com/AlpineX-Labs/jupyter-sage-agent-internal",
|
11
11
|
"bugs": {
|
12
|
-
"url": "https://github.com/AlpineX-Labs/jupyter-sage-agent/issues"
|
12
|
+
"url": "https://github.com/AlpineX-Labs/jupyter-sage-agent-internal/issues"
|
13
13
|
},
|
14
14
|
"license": "BSD-3-Clause",
|
15
15
|
"author": {
|
@@ -27,7 +27,7 @@
|
|
27
27
|
"style": "style/index.css",
|
28
28
|
"repository": {
|
29
29
|
"type": "git",
|
30
|
-
"url": "https://github.com/AlpineX-Labs/jupyter-sage-agent.git"
|
30
|
+
"url": "https://github.com/AlpineX-Labs/jupyter-sage-agent-internal.git"
|
31
31
|
},
|
32
32
|
"scripts": {
|
33
33
|
"build": "jlpm prebuild && jlpm build:lib && jlpm build:labextension:dev",
|
@@ -40,7 +40,7 @@
|
|
40
40
|
"clean": "jlpm clean:lib",
|
41
41
|
"clean:lib": "rimraf lib tsconfig.tsbuildinfo",
|
42
42
|
"clean:lintcache": "rimraf .eslintcache .stylelintcache",
|
43
|
-
"clean:labextension": "rimraf
|
43
|
+
"clean:labextension": "rimraf sage_agent_internal/labextension sage_agent_internal/_version.py",
|
44
44
|
"clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache",
|
45
45
|
"eslint": "jlpm eslint:check --fix",
|
46
46
|
"eslint:check": "eslint . --cache --ext .ts,.tsx",
|
@@ -59,7 +59,6 @@
|
|
59
59
|
},
|
60
60
|
"dependencies": {
|
61
61
|
"@anthropic-ai/sdk": "^0.54.0",
|
62
|
-
"@codemirror/merge": "^6.10.2",
|
63
62
|
"@electric-sql/pglite": "^0.3.6",
|
64
63
|
"@google/generative-ai": "^0.24.0",
|
65
64
|
"@jupyterlab/application": "^4.0.0",
|
@@ -71,6 +70,8 @@
|
|
71
70
|
"best-effort-json-parser": "^1.1.3",
|
72
71
|
"bootstrap": "^5.3.7",
|
73
72
|
"chalk": "^4.1.2",
|
73
|
+
"codemirror": "^6.0.2",
|
74
|
+
"codemirror-merge-alpinex": "^6.10.4",
|
74
75
|
"diff": "^8.0.1",
|
75
76
|
"diff2html": "^3.4.51",
|
76
77
|
"dompurify": "^3.2.5",
|
@@ -122,10 +123,10 @@
|
|
122
123
|
},
|
123
124
|
"jupyterlab": {
|
124
125
|
"extension": true,
|
125
|
-
"outputDir": "
|
126
|
+
"outputDir": "sage_agent_internal/labextension",
|
126
127
|
"schemaDir": "schema",
|
127
128
|
"_build": {
|
128
|
-
"load": "static/remoteEntry.
|
129
|
+
"load": "static/remoteEntry.b4d298844205dc8d9771.js",
|
129
130
|
"extension": "./extension",
|
130
131
|
"style": "./style"
|
131
132
|
}
|
@@ -1,15 +1,15 @@
|
|
1
1
|
{
|
2
2
|
"name": "sage-agent-internal",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.31-rc0",
|
4
4
|
"description": "Sage Agent - Your Jupyter Notebook Assistant",
|
5
5
|
"keywords": [
|
6
6
|
"jupyter",
|
7
7
|
"jupyterlab",
|
8
8
|
"jupyterlab-extension"
|
9
9
|
],
|
10
|
-
"homepage": "https://github.com/AlpineX-Labs/jupyter-sage-agent",
|
10
|
+
"homepage": "https://github.com/AlpineX-Labs/jupyter-sage-agent-internal",
|
11
11
|
"bugs": {
|
12
|
-
"url": "https://github.com/AlpineX-Labs/jupyter-sage-agent/issues"
|
12
|
+
"url": "https://github.com/AlpineX-Labs/jupyter-sage-agent-internal/issues"
|
13
13
|
},
|
14
14
|
"license": "BSD-3-Clause",
|
15
15
|
"author": {
|
@@ -27,7 +27,7 @@
|
|
27
27
|
"style": "style/index.css",
|
28
28
|
"repository": {
|
29
29
|
"type": "git",
|
30
|
-
"url": "https://github.com/AlpineX-Labs/jupyter-sage-agent.git"
|
30
|
+
"url": "https://github.com/AlpineX-Labs/jupyter-sage-agent-internal.git"
|
31
31
|
},
|
32
32
|
"scripts": {
|
33
33
|
"build": "jlpm prebuild && jlpm build:lib && jlpm build:labextension:dev",
|
@@ -40,7 +40,7 @@
|
|
40
40
|
"clean": "jlpm clean:lib",
|
41
41
|
"clean:lib": "rimraf lib tsconfig.tsbuildinfo",
|
42
42
|
"clean:lintcache": "rimraf .eslintcache .stylelintcache",
|
43
|
-
"clean:labextension": "rimraf
|
43
|
+
"clean:labextension": "rimraf sage_agent_internal/labextension sage_agent_internal/_version.py",
|
44
44
|
"clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache",
|
45
45
|
"eslint": "jlpm eslint:check --fix",
|
46
46
|
"eslint:check": "eslint . --cache --ext .ts,.tsx",
|
@@ -59,7 +59,6 @@
|
|
59
59
|
},
|
60
60
|
"dependencies": {
|
61
61
|
"@anthropic-ai/sdk": "^0.54.0",
|
62
|
-
"@codemirror/merge": "^6.10.2",
|
63
62
|
"@electric-sql/pglite": "^0.3.6",
|
64
63
|
"@google/generative-ai": "^0.24.0",
|
65
64
|
"@jupyterlab/application": "^4.0.0",
|
@@ -71,6 +70,8 @@
|
|
71
70
|
"best-effort-json-parser": "^1.1.3",
|
72
71
|
"bootstrap": "^5.3.7",
|
73
72
|
"chalk": "^4.1.2",
|
73
|
+
"codemirror": "^6.0.2",
|
74
|
+
"codemirror-merge-alpinex": "^6.10.4",
|
74
75
|
"diff": "^8.0.1",
|
75
76
|
"diff2html": "^3.4.51",
|
76
77
|
"dompurify": "^3.2.5",
|
@@ -122,7 +123,7 @@
|
|
122
123
|
},
|
123
124
|
"jupyterlab": {
|
124
125
|
"extension": true,
|
125
|
-
"outputDir": "
|
126
|
+
"outputDir": "sage_agent_internal/labextension",
|
126
127
|
"schemaDir": "schema"
|
127
128
|
},
|
128
129
|
"eslintIgnore": [
|
@@ -39,11 +39,11 @@
|
|
39
39
|
"description": "Whether the dark theme has been applied on first load",
|
40
40
|
"default": false
|
41
41
|
},
|
42
|
-
"
|
43
|
-
"type": "
|
44
|
-
"title": "Update Declined",
|
45
|
-
"description": "
|
46
|
-
"default":
|
42
|
+
"updateDeclinedVersion": {
|
43
|
+
"type": "string",
|
44
|
+
"title": "Update Declined Version",
|
45
|
+
"description": "Version declined",
|
46
|
+
"default": ""
|
47
47
|
},
|
48
48
|
"chatHistories": {
|
49
49
|
"type": "object",
|
sage_agent_internal-0.1.31rc0/sage_agent_internal/labextension/static/353.2c285601a208c3735929.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";(self.webpackChunksage_agent_internal=self.webpackChunksage_agent_internal||[]).push([[353],{4353:(e,t,n)=>{n.d(t,{b6:()=>v,cL:()=>L,g_:()=>y,pw:()=>Te});var r=n(195),o=n(5024),l=n(2084),i=n(3708);function s(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let o=e(t,n);return!!o&&(r(n.update(o)),!0)}}const a=s(m,0),c=s(d,0),f=s((e,t)=>d(e,t,function(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),o=n.to<=r.to?r:e.doc.lineAt(n.to);o.from>r.from&&o.from==n.to&&(o=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let l=t.length-1;l>=0&&t[l].to>r.from?t[l].to=o.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:o.to})}return t}(t)),0);function u(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}const h=50;function d(e,t,n=t.selection.ranges){let r=n.map(e=>u(t,e.from).block);if(!r.every(e=>e))return null;let o=n.map((e,n)=>function(e,{open:t,close:n},r,o){let l,i,s=e.sliceDoc(r-h,r),a=e.sliceDoc(o,o+h),c=/\s*$/.exec(s)[0].length,f=/^\s*/.exec(a)[0].length,u=s.length-c;if(s.slice(u-t.length,u)==t&&a.slice(f,f+n.length)==n)return{open:{pos:r-c,margin:c&&1},close:{pos:o+f,margin:f&&1}};o-r<=2*h?l=i=e.sliceDoc(r,o):(l=e.sliceDoc(r,r+h),i=e.sliceDoc(o-h,o));let d=/^\s*/.exec(l)[0].length,m=/\s*$/.exec(i)[0].length,p=i.length-m-n.length;return l.slice(d,d+t.length)==t&&i.slice(p,p+n.length)==n?{open:{pos:r+d+t.length,margin:/\s/.test(l.charAt(d+t.length))?1:0},close:{pos:o-m-n.length,margin:/\s/.test(i.charAt(p-1))?1:0}}:null}(t,r[n],e.from,e.to));if(2!=e&&!o.every(e=>e))return{changes:t.changes(n.map((e,t)=>o[t]?[]:[{from:e.from,insert:r[t].open+" "},{from:e.to,insert:" "+r[t].close}]))};if(1!=e&&o.some(e=>e)){let e=[];for(let t,n=0;n<o.length;n++)if(t=o[n]){let o=r[n],{open:l,close:i}=t;e.push({from:l.pos-o.open.length,to:l.pos+l.margin},{from:i.pos-i.margin,to:i.pos+o.close.length})}return{changes:e}}return null}function m(e,t,n=t.selection.ranges){let r=[],o=-1;for(let{from:e,to:l}of n){let n=r.length,i=1e9,s=u(t,e).line;if(s){for(let n=e;n<=l;){let a=t.doc.lineAt(n);if(a.from>o&&(e==l||l>a.from)){o=a.from;let e=/^\s*/.exec(a.text)[0].length,t=e==a.length,n=a.text.slice(e,e+s.length)==s?e:-1;e<a.text.length&&e<i&&(i=e),r.push({line:a,comment:n,token:s,indent:e,empty:t,single:!1})}n=a.to+1}if(i<1e9)for(let e=n;e<r.length;e++)r[e].indent<r[e].line.text.length&&(r[e].indent=i);r.length==n+1&&(r[n].single=!0)}}if(2!=e&&r.some(e=>e.comment<0&&(!e.empty||e.single))){let e=[];for(let{line:t,token:n,indent:o,empty:l,single:i}of r)!i&&l||e.push({from:t.from+o,insert:n+" "});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}if(1!=e&&r.some(e=>e.comment>=0)){let e=[];for(let{line:t,comment:n,token:o}of r)if(n>=0){let r=t.from+n,l=r+o.length;" "==t.text[l-t.from]&&l++,e.push({from:r,to:l})}return{changes:e}}return null}const p=r.Annotation.define(),g=r.Annotation.define(),y=r.Facet.define(),k=r.Facet.define({combine:e=>(0,r.combineConfig)(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}),A=r.StateField.define({create:()=>J.empty,update(e,t){let n=t.state.facet(k),o=t.annotation(p);if(o){let r=C.fromTransaction(t,o.selection),l=o.side,i=0==l?e.undone:e.done;return i=r?B(i,i.length,n.minDepth,r):T(i,t.startState.selection),new J(0==l?o.rest:i,0==l?i:o.rest)}let l=t.annotation(g);if("full"!=l&&"before"!=l||(e=e.isolate()),!1===t.annotation(r.Transaction.addToHistory))return t.changes.empty?e:e.addMapping(t.changes.desc);let i=C.fromTransaction(t),s=t.annotation(r.Transaction.time),a=t.annotation(r.Transaction.userEvent);return i?e=e.addChanges(i,s,a,n,t):t.selection&&(e=e.addSelection(t.startState.selection,s,a,n.newGroupDelay)),"full"!=l&&"after"!=l||(e=e.isolate()),e},toJSON:e=>({done:e.done.map(e=>e.toJSON()),undone:e.undone.map(e=>e.toJSON())}),fromJSON:e=>new J(e.done.map(C.fromJSON),e.undone.map(C.fromJSON))});function v(e={}){return[A,k.of(e),o.EditorView.domEventHandlers({beforeinput(e,t){let n="historyUndo"==e.inputType?w:"historyRedo"==e.inputType?E:null;return!!n&&(e.preventDefault(),n(t))}})]}function S(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let o=n.field(A,!1);if(!o)return!1;let l=o.pop(e,n,t);return!!l&&(r(l),!0)}}const w=S(0,!1),E=S(1,!1),D=S(0,!0),x=S(1,!0);class C{constructor(e,t,n,r,o){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=o}setSelAfter(e){return new C(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:null===(e=this.changes)||void 0===e?void 0:e.toJSON(),mapped:null===(t=this.mapped)||void 0===t?void 0:t.toJSON(),startSelection:null===(n=this.startSelection)||void 0===n?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map(e=>e.toJSON())}}static fromJSON(e){return new C(e.changes&&r.ChangeSet.fromJSON(e.changes),[],e.mapped&&r.ChangeDesc.fromJSON(e.mapped),e.startSelection&&r.EditorSelection.fromJSON(e.startSelection),e.selectionsAfter.map(r.EditorSelection.fromJSON))}static fromTransaction(e,t){let n=b;for(let t of e.startState.facet(y)){let r=t(e);r.length&&(n=n.concat(r))}return!n.length&&e.changes.empty?null:new C(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,b)}static selection(e){return new C(void 0,b,void 0,void 0,e)}}function B(e,t,n,r){let o=t+1>n+20?t-n-1:0,l=e.slice(o,t);return l.push(r),l}function M(e,t){return e.length?t.length?e.concat(t):e:t}const b=[],O=200;function T(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-O));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),B(e,e.length-1,1e9,n.setSelAfter(r)))}return[C.selection([t])]}function I(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function V(e,t){if(!e.length)return e;let n=e.length,r=b;for(;n;){let o=N(e[n-1],t,r);if(o.changes&&!o.changes.empty||o.effects.length){let t=e.slice(0,n);return t[n-1]=o,t}t=o.mapped,n--,r=o.selectionsAfter}return r.length?[C.selection(r)]:b}function N(e,t,n){let o=M(e.selectionsAfter.length?e.selectionsAfter.map(e=>e.map(t)):b,n);if(!e.changes)return C.selection(o);let l=e.changes.map(t),i=t.mapDesc(e.changes,!0),s=e.mapped?e.mapped.composeDesc(i):i;return new C(l,r.StateEffect.mapEffects(e.effects,t),s,e.startSelection.map(i),o)}const R=/^(input\.type|delete)($|\.)/;class J{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new J(this.done,this.undone):this}addChanges(e,t,n,o,l){let i=this.done,s=i[i.length-1];return i=s&&s.changes&&!s.changes.empty&&e.changes&&(!n||R.test(n))&&(!s.selectionsAfter.length&&t-this.prevTime<o.newGroupDelay&&o.joinToEvent(l,function(e,t){let n=[],r=!1;return e.iterChangedRanges((e,t)=>n.push(e,t)),t.iterChangedRanges((e,t,o,l)=>{for(let e=0;e<n.length;){let t=n[e++],i=n[e++];l>=t&&o<=i&&(r=!0)}}),r}(s.changes,e.changes))||"input.type.compose"==n)?B(i,i.length-1,o.minDepth,new C(e.changes.compose(s.changes),M(r.StateEffect.mapEffects(e.effects,s.changes),s.effects),s.mapped,s.startSelection,b)):B(i,i.length,o.minDepth,e),new J(i,b,t,n)}addSelection(e,t,n,r){let o=this.done.length?this.done[this.done.length-1].selectionsAfter:b;return o.length>0&&t-this.prevTime<r&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&(l=o[o.length-1],i=e,l.ranges.length==i.ranges.length&&0===l.ranges.filter((e,t)=>e.empty!=i.ranges[t].empty).length)?this:new J(T(this.done,e),this.undone,t,n);var l,i}addMapping(e){return new J(V(this.done,e),V(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let r=0==e?this.done:this.undone;if(0==r.length)return null;let o=r[r.length-1],l=o.selectionsAfter[0]||t.selection;if(n&&o.selectionsAfter.length)return t.update({selection:o.selectionsAfter[o.selectionsAfter.length-1],annotations:p.of({side:e,rest:I(r),selection:l}),userEvent:0==e?"select.undo":"select.redo",scrollIntoView:!0});if(o.changes){let n=1==r.length?b:r.slice(0,r.length-1);return o.mapped&&(n=V(n,o.mapped)),t.update({changes:o.changes,selection:o.startSelection,effects:o.effects,annotations:p.of({side:e,rest:n,selection:l}),filter:!1,userEvent:0==e?"undo":"redo",scrollIntoView:!0})}return null}}J.empty=new J(b,b);const L=[{key:"Mod-z",run:w,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:E,preventDefault:!0},{linux:"Ctrl-Shift-z",run:E,preventDefault:!0},{key:"Mod-u",run:D,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:x,preventDefault:!0}];function U(e,t){return r.EditorSelection.create(e.ranges.map(t),e.mainIndex)}function H(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function P({state:e,dispatch:t},n){let r=U(e.selection,n);return!r.eq(e.selection,!0)&&(t(H(e,r)),!0)}function z(e,t){return r.EditorSelection.cursor(t?e.to:e.from)}function G(e,t){return P(e,n=>n.empty?e.moveByChar(n,t):z(n,t))}function q(e){return e.textDirectionAt(e.state.selection.main.head)==o.Direction.LTR}const _=e=>G(e,!q(e)),j=e=>G(e,q(e));function F(e,t){return P(e,n=>n.empty?e.moveByGroup(n,t):z(n,t))}function $(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function W(e,t,n){let o,s,a=(0,l.syntaxTree)(e).resolveInner(t.head),c=n?i.NodeProp.closedBy:i.NodeProp.openedBy;for(let r=t.head;;){let t=n?a.childAfter(r):a.childBefore(r);if(!t)break;$(e,t,c)?a=t:r=n?t.to:t.from}return s=a.type.prop(c)&&(o=n?(0,l.matchBrackets)(e,a.from,1):(0,l.matchBrackets)(e,a.to,-1))&&o.matched?n?o.end.to:o.end.from:n?a.to:a.from,r.EditorSelection.cursor(s,n?-1:1)}function K(e,t){return P(e,n=>{if(!n.empty)return z(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)})}"undefined"!=typeof Intl&&Intl.Segmenter;const Q=e=>K(e,!1),X=e=>K(e,!0);function Y(e){let t,n=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,r=0,l=0;if(n){for(let t of e.state.facet(o.EditorView.scrollMargins)){let n=t(e);(null==n?void 0:n.top)&&(r=Math.max(null==n?void 0:n.top,r)),(null==n?void 0:n.bottom)&&(l=Math.max(null==n?void 0:n.bottom,l))}t=e.scrollDOM.clientHeight-r-l}else t=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:r,marginBottom:l,selfScroll:n,height:Math.max(e.defaultLineHeight,t-5)}}function Z(e,t){let n,r=Y(e),{state:l}=e,i=U(l.selection,n=>n.empty?e.moveVertically(n,t,r.height):z(n,t));if(i.eq(l.selection))return!1;if(r.selfScroll){let t=e.coordsAtPos(l.selection.main.head),s=e.scrollDOM.getBoundingClientRect(),a=s.top+r.marginTop,c=s.bottom-r.marginBottom;t&&t.top>a&&t.bottom<c&&(n=o.EditorView.scrollIntoView(i.main.head,{y:"start",yMargin:t.top-a}))}return e.dispatch(H(l,i),{effects:n}),!0}const ee=e=>Z(e,!1),te=e=>Z(e,!0);function ne(e,t,n){let o=e.lineBlockAt(t.head),l=e.moveToLineBoundary(t,n);if(l.head==t.head&&l.head!=(n?o.to:o.from)&&(l=e.moveToLineBoundary(t,n,!1)),!n&&l.head==o.from&&o.length){let n=/^\s*/.exec(e.state.sliceDoc(o.from,Math.min(o.from+100,o.to)))[0].length;n&&t.head!=o.from+n&&(l=r.EditorSelection.cursor(o.from+n))}return l}function re(e,t){let n=U(e.state.selection,e=>{let n=t(e);return r.EditorSelection.range(e.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)});return!n.eq(e.state.selection)&&(e.dispatch(H(e.state,n)),!0)}function oe(e,t){return re(e,n=>e.moveByChar(n,t))}const le=e=>oe(e,!q(e)),ie=e=>oe(e,q(e));function se(e,t){return re(e,n=>e.moveByGroup(n,t))}function ae(e,t){return re(e,n=>e.moveVertically(n,t))}const ce=e=>ae(e,!1),fe=e=>ae(e,!0);function ue(e,t){return re(e,n=>e.moveVertically(n,t,Y(e).height))}const he=e=>ue(e,!1),de=e=>ue(e,!0),me=({state:e,dispatch:t})=>(t(H(e,{anchor:0})),!0),pe=({state:e,dispatch:t})=>(t(H(e,{anchor:e.doc.length})),!0),ge=({state:e,dispatch:t})=>(t(H(e,{anchor:e.selection.main.anchor,head:0})),!0),ye=({state:e,dispatch:t})=>(t(H(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0);function ke(e,t){if(e.state.readOnly)return!1;let n="delete.selection",{state:l}=e,i=l.changeByRange(o=>{let{from:l,to:i}=o;if(l==i){let r=t(o);r<l?(n="delete.backward",r=Ae(e,r,!1)):r>l&&(n="delete.forward",r=Ae(e,r,!0)),l=Math.min(l,r),i=Math.max(i,r)}else l=Ae(e,l,!1),i=Ae(e,i,!0);return l==i?{range:o}:{changes:{from:l,to:i},range:r.EditorSelection.cursor(l,l<o.head?-1:1)}});return!i.changes.empty&&(e.dispatch(l.update(i,{scrollIntoView:!0,userEvent:n,effects:"delete.selection"==n?o.EditorView.announce.of(l.phrase("Selection deleted")):void 0})),!0)}function Ae(e,t,n){if(e instanceof o.EditorView)for(let r of e.state.facet(o.EditorView.atomicRanges).map(t=>t(e)))r.between(t,t,(e,r)=>{e<t&&r>t&&(t=n?r:e)});return t}const ve=(e,t,n)=>ke(e,o=>{let i,s,a=o.from,{state:c}=e,f=c.doc.lineAt(a);if(n&&!t&&a>f.from&&a<f.from+200&&!/[^ \t]/.test(i=f.text.slice(0,a-f.from))){if("\t"==i[i.length-1])return a-1;let e=(0,r.countColumn)(i,c.tabSize)%(0,l.getIndentUnit)(c)||(0,l.getIndentUnit)(c);for(let t=0;t<e&&" "==i[i.length-1-t];t++)a--;s=a}else s=(0,r.findClusterBreak)(f.text,a-f.from,t,t)+f.from,s==a&&f.number!=(t?c.doc.lines:1)?s+=t?1:-1:!t&&/[\ufe00-\ufe0f]/.test(f.text.slice(s-f.from,a-f.from))&&(s=(0,r.findClusterBreak)(f.text,s-f.from,!1,!1)+f.from);return s}),Se=e=>ve(e,!1,!0),we=e=>ve(e,!0,!1),Ee=(e,t)=>ke(e,n=>{let o=n.head,{state:l}=e,i=l.doc.lineAt(o),s=l.charCategorizer(o);for(let e=null;;){if(o==(t?i.to:i.from)){o==n.head&&i.number!=(t?l.doc.lines:1)&&(o+=t?1:-1);break}let a=(0,r.findClusterBreak)(i.text,o-i.from,t)+i.from,c=i.text.slice(Math.min(o,a)-i.from,Math.max(o,a)-i.from),f=s(c);if(null!=e&&f!=e)break;" "==c&&o==n.head||(e=f),o=a}return o}),De=e=>Ee(e,!1);function xe(e){let t=[],n=-1;for(let r of e.selection.ranges){let o=e.doc.lineAt(r.from),l=e.doc.lineAt(r.to);if(r.empty||r.to!=l.from||(l=e.doc.lineAt(r.to-1)),n>=o.number){let e=t[t.length-1];e.to=l.to,e.ranges.push(r)}else t.push({from:o.from,to:l.to,ranges:[r]});n=l.number+1}return t}function Ce(e,t,n){if(e.readOnly)return!1;let o=[],l=[];for(let t of xe(e)){if(n?t.to==e.doc.length:0==t.from)continue;let i=e.doc.lineAt(n?t.to+1:t.from-1),s=i.length+1;if(n){o.push({from:t.to,to:i.to},{from:t.from,insert:i.text+e.lineBreak});for(let n of t.ranges)l.push(r.EditorSelection.range(Math.min(e.doc.length,n.anchor+s),Math.min(e.doc.length,n.head+s)))}else{o.push({from:i.from,to:t.from},{from:t.to,insert:e.lineBreak+i.text});for(let e of t.ranges)l.push(r.EditorSelection.range(e.anchor-s,e.head-s))}}return!!o.length&&(t(e.update({changes:o,scrollIntoView:!0,selection:r.EditorSelection.create(l,e.selection.mainIndex),userEvent:"move.line"})),!0)}function Be(e,t,n){if(e.readOnly)return!1;let r=[];for(let t of xe(e))n?r.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):r.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});return t(e.update({changes:r,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Me=be(!1);function be(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let o=t.changeByRange(n=>{let{from:o,to:s}=n,a=t.doc.lineAt(o),c=!e&&o==s&&function(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n,r=(0,l.syntaxTree)(e).resolveInner(t),o=r.childBefore(t),s=r.childAfter(t);return o&&s&&o.to<=t&&s.from>=t&&(n=o.type.prop(i.NodeProp.closedBy))&&n.indexOf(s.name)>-1&&e.doc.lineAt(o.to).from==e.doc.lineAt(s.from).from&&!/\S/.test(e.sliceDoc(o.to,s.from))?{from:o.to,to:s.from}:null}(t,o);e&&(o=s=(s<=a.to?a:t.doc.lineAt(s)).to);let f=new l.IndentContext(t,{simulateBreak:o,simulateDoubleBreak:!!c}),u=(0,l.getIndentation)(f,o);for(null==u&&(u=(0,r.countColumn)(/^\s*/.exec(t.doc.lineAt(o).text)[0],t.tabSize));s<a.to&&/\s/.test(a.text[s-a.from]);)s++;c?({from:o,to:s}=c):o>a.from&&o<a.from+100&&!/\S/.test(a.text.slice(0,o))&&(o=a.from);let h=["",(0,l.indentString)(t,u)];return c&&h.push((0,l.indentString)(t,f.lineIndent(a.from,-1))),{changes:{from:o,to:s,insert:r.Text.of(h)},range:r.EditorSelection.cursor(o+1+h[1].length)}});return n(t.update(o,{scrollIntoView:!0,userEvent:"input"})),!0}}function Oe(e,t){let n=-1;return e.changeByRange(o=>{let l=[];for(let r=o.from;r<=o.to;){let i=e.doc.lineAt(r);i.number>n&&(o.empty||o.to>i.from)&&(t(i,l,o),n=i.number),r=i.to+1}let i=e.changes(l);return{changes:l,range:r.EditorSelection.range(i.mapPos(o.anchor,1),i.mapPos(o.head,1))}})}const Te=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:e=>P(e,t=>W(e.state,t,!q(e))),shift:e=>re(e,t=>W(e.state,t,!q(e)))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:e=>P(e,t=>W(e.state,t,q(e))),shift:e=>re(e,t=>W(e.state,t,q(e)))},{key:"Alt-ArrowUp",run:({state:e,dispatch:t})=>Ce(e,t,!1)},{key:"Shift-Alt-ArrowUp",run:({state:e,dispatch:t})=>Be(e,t,!1)},{key:"Alt-ArrowDown",run:({state:e,dispatch:t})=>Ce(e,t,!0)},{key:"Shift-Alt-ArrowDown",run:({state:e,dispatch:t})=>Be(e,t,!0)},{key:"Escape",run:({state:e,dispatch:t})=>{let n=e.selection,o=null;return n.ranges.length>1?o=r.EditorSelection.create([n.main]):n.main.empty||(o=r.EditorSelection.create([r.EditorSelection.cursor(n.main.head)])),!!o&&(t(H(e,o)),!0)}},{key:"Mod-Enter",run:be(!0)},{key:"Alt-l",mac:"Ctrl-l",run:({state:e,dispatch:t})=>{let n=xe(e).map(({from:t,to:n})=>r.EditorSelection.range(t,Math.min(n+1,e.doc.length)));return t(e.update({selection:r.EditorSelection.create(n),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:e,dispatch:t})=>{let n=U(e.selection,t=>{let n=(0,l.syntaxTree)(e),o=n.resolveStack(t.from,1);if(t.empty){let e=n.resolveStack(t.from,-1);e.node.from>=o.node.from&&e.node.to<=o.node.to&&(o=e)}for(let e=o;e;e=e.next){let{node:n}=e;if((n.from<t.from&&n.to>=t.to||n.to>t.to&&n.from<=t.from)&&e.next)return r.EditorSelection.range(n.to,n.from)}return t});return!n.eq(e.selection)&&(t(H(e,n)),!0)},preventDefault:!0},{key:"Mod-[",run:({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(Oe(e,(t,n)=>{let o=/^\s*/.exec(t.text)[0];if(!o)return;let i=(0,r.countColumn)(o,e.tabSize),s=0,a=(0,l.indentString)(e,Math.max(0,i-(0,l.getIndentUnit)(e)));for(;s<o.length&&s<a.length&&o.charCodeAt(s)==a.charCodeAt(s);)s++;n.push({from:t.from+s,to:t.from+o.length,insert:a.slice(s)})}),{userEvent:"delete.dedent"})),!0)},{key:"Mod-]",run:({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(Oe(e,(t,n)=>{n.push({from:t.from,insert:e.facet(l.indentUnit)})}),{userEvent:"input.indent"})),!0)},{key:"Mod-Alt-\\",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new l.IndentContext(e,{overrideIndentation:e=>{let t=n[e];return null==t?-1:t}}),o=Oe(e,(t,o,i)=>{let s=(0,l.getIndentation)(r,t.from);if(null==s)return;/\S/.test(t.text)||(s=0);let a=/^\s*/.exec(t.text)[0],c=(0,l.indentString)(e,s);(a!=c||i.from<t.from+a.length)&&(n[t.from]=s,o.push({from:t.from,to:t.from+a.length,insert:c}))});return o.changes.empty||t(e.update(o,{userEvent:"indent"})),!0}},{key:"Shift-Mod-k",run:e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(xe(t).map(({from:e,to:n})=>(e>0?e--:n<t.doc.length&&n++,{from:e,to:n}))),r=U(t.selection,t=>{let n;if(e.lineWrapping){let r=e.lineBlockAt(t.head),o=e.coordsAtPos(t.head,t.assoc||1);o&&(n=r.bottom+e.documentTop-o.bottom+e.defaultLineHeight/2)}return e.moveVertically(t,!0,n)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:e,dispatch:t})=>function(e,t,n){let o=!1,i=U(e.selection,t=>{let i=(0,l.matchBrackets)(e,t.head,-1)||(0,l.matchBrackets)(e,t.head,1)||t.head>0&&(0,l.matchBrackets)(e,t.head-1,1)||t.head<e.doc.length&&(0,l.matchBrackets)(e,t.head+1,-1);if(!i||!i.end)return t;o=!0;let s=i.start.from==t.head?i.end.to:i.end.from;return n?r.EditorSelection.range(t.anchor,s):r.EditorSelection.cursor(s)});return!!o&&(t(H(e,i)),!0)}(e,t,!1)},{key:"Mod-/",run:e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=u(e.state,n.from);return r.line?a(e):!!r.block&&f(e)}},{key:"Alt-A",run:c},{key:"Ctrl-m",mac:"Shift-Alt-m",run:e=>(e.setTabFocusMode(),!0)}].concat([{key:"ArrowLeft",run:_,shift:le,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:e=>F(e,!q(e)),shift:e=>se(e,!q(e)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:e=>P(e,t=>ne(e,t,!q(e))),shift:e=>re(e,t=>ne(e,t,!q(e))),preventDefault:!0},{key:"ArrowRight",run:j,shift:ie,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:e=>F(e,q(e)),shift:e=>se(e,q(e)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:e=>P(e,t=>ne(e,t,q(e))),shift:e=>re(e,t=>ne(e,t,q(e))),preventDefault:!0},{key:"ArrowUp",run:Q,shift:ce,preventDefault:!0},{mac:"Cmd-ArrowUp",run:me,shift:ge},{mac:"Ctrl-ArrowUp",run:ee,shift:he},{key:"ArrowDown",run:X,shift:fe,preventDefault:!0},{mac:"Cmd-ArrowDown",run:pe,shift:ye},{mac:"Ctrl-ArrowDown",run:te,shift:de},{key:"PageUp",run:ee,shift:he},{key:"PageDown",run:te,shift:de},{key:"Home",run:e=>P(e,t=>ne(e,t,!1)),shift:e=>re(e,t=>ne(e,t,!1)),preventDefault:!0},{key:"Mod-Home",run:me,shift:ge},{key:"End",run:e=>P(e,t=>ne(e,t,!0)),shift:e=>re(e,t=>ne(e,t,!0)),preventDefault:!0},{key:"Mod-End",run:pe,shift:ye},{key:"Enter",run:Me,shift:Me},{key:"Mod-a",run:({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:Se,shift:Se},{key:"Delete",run:we},{key:"Mod-Backspace",mac:"Alt-Backspace",run:De},{key:"Mod-Delete",mac:"Alt-Delete",run:e=>Ee(e,!0)},{mac:"Mod-Backspace",run:e=>ke(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)})},{mac:"Mod-Delete",run:e=>ke(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)})}].concat([{key:"Ctrl-b",run:_,shift:le,preventDefault:!0},{key:"Ctrl-f",run:j,shift:ie},{key:"Ctrl-p",run:Q,shift:ce},{key:"Ctrl-n",run:X,shift:fe},{key:"Ctrl-a",run:e=>P(e,t=>r.EditorSelection.cursor(e.lineBlockAt(t.head).from,1)),shift:e=>re(e,t=>r.EditorSelection.cursor(e.lineBlockAt(t.head).from))},{key:"Ctrl-e",run:e=>P(e,t=>r.EditorSelection.cursor(e.lineBlockAt(t.head).to,-1)),shift:e=>re(e,t=>r.EditorSelection.cursor(e.lineBlockAt(t.head).to))},{key:"Ctrl-d",run:we},{key:"Ctrl-h",run:Se},{key:"Ctrl-k",run:e=>ke(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)})},{key:"Ctrl-Alt-h",run:De},{key:"Ctrl-o",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:r.Text.of(["",""])},range:r.EditorSelection.cursor(e.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(t=>{if(!t.empty||0==t.from||t.from==e.doc.length)return{range:t};let n=t.from,o=e.doc.lineAt(n),l=n==o.from?n-1:(0,r.findClusterBreak)(o.text,n-o.from,!1)+o.from,i=n==o.to?n+1:(0,r.findClusterBreak)(o.text,n-o.from,!0)+o.from;return{changes:{from:l,to:i,insert:e.doc.slice(n,i).append(e.doc.slice(l,n))},range:r.EditorSelection.cursor(i)}});return!n.changes.empty&&(t(e.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:te}].map(e=>({mac:e.key,run:e.run,shift:e.shift}))))}}]);
|