sage-agent-internal 0.2.3__tar.gz → 0.2.5__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.
Files changed (217) hide show
  1. sage_agent_internal-0.2.5/CLAUDE.md +167 -0
  2. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/PKG-INFO +1 -1
  3. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/package.json +2 -1
  4. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/_version.py +1 -1
  5. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/package.json +3 -2
  6. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/schemas/sage-agent-internal/package.json.orig +2 -1
  7. sage_agent_internal-0.2.3/sage_agent_internal/labextension/static/363.0520d99597afee9498e3.js → sage_agent_internal-0.2.5/sage_agent_internal/labextension/static/363.6fc8d18eedbf137940f2.js +1 -1
  8. sage_agent_internal-0.2.5/sage_agent_internal/labextension/static/968.980219bfdaa6b20f56cb.js +1 -0
  9. sage_agent_internal-0.2.3/sage_agent_internal/labextension/static/973.38ee5148a3908e41c2dd.js → sage_agent_internal-0.2.5/sage_agent_internal/labextension/static/973.016a586759b281b79f91.js +2 -2
  10. sage_agent_internal-0.2.3/sage_agent_internal/labextension/static/remoteEntry.268979abcf49d9d593b5.js → sage_agent_internal-0.2.5/sage_agent_internal/labextension/static/remoteEntry.c97bd67ec0a2caecdfcb.js +1 -1
  11. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/AppState.ts +26 -1
  12. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ChatMessages.ts +44 -2
  13. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/CodebaseManager.ts +1 -17
  14. sage_agent_internal-0.2.5/src/Components/InlineCompletionWidget.tsx +249 -0
  15. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/Settings/SettingsWidget.tsx +76 -1
  16. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Config/ConfigService.ts +18 -0
  17. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Config/prompts/claude_system_prompt.md +3 -1
  18. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Services/AnthropicService.ts +20 -4
  19. sage_agent_internal-0.2.5/src/Services/CompletionManager.ts +500 -0
  20. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Services/IChatService.ts +6 -1
  21. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Services/ServiceFactory.ts +15 -4
  22. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Services/ServiceUtils.ts +16 -0
  23. sage_agent_internal-0.2.5/src/Services/TabCompletionService.ts +158 -0
  24. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/eval_commands.ts +65 -26
  25. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/plugin.ts +25 -2
  26. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/utils/caching.ts +1 -0
  27. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/index.css +1 -0
  28. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/settings-widget.css +17 -0
  29. sage_agent_internal-0.2.5/style/tab-completion.css +23 -0
  30. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/yarn.lock +1 -0
  31. sage_agent_internal-0.2.3/sage_agent_internal/labextension/static/833.84a7b615d4a860aaea0e.js +0 -1
  32. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/.copier-answers.yml +0 -0
  33. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/.gitignore +0 -0
  34. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/.keep +0 -0
  35. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/.prettierignore +0 -0
  36. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/.vscode/settings.json +0 -0
  37. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/.yarnrc.yml +0 -0
  38. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/CHANGELOG.md +0 -0
  39. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/LICENSE +0 -0
  40. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/README.md +0 -0
  41. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/RELEASE.md +0 -0
  42. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/__tests__/sage_agent.spec.ts +0 -0
  43. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/babel.config.js +0 -0
  44. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/cli-chat-tool/index.ts +0 -0
  45. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/cli-chat-tool/package-lock.json +0 -0
  46. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/cli-chat-tool/package.json +0 -0
  47. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/cli-chat-tool/tsconfig.json +0 -0
  48. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/cli-chat-tool/yarn.lock +0 -0
  49. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/install.json +0 -0
  50. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/jest.config.js +0 -0
  51. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/package-lock.json +0 -0
  52. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/pyproject.toml +0 -0
  53. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/__init__.py +0 -0
  54. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/schemas/sage-agent-internal/plugin.json +0 -0
  55. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/122.3c2c200586e65203b674.js +0 -0
  56. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/220.d384edfd5bbcfda33a2a.js +0 -0
  57. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/262.3fc4ad88e6f8c273d4ad.js +0 -0
  58. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/353.2c285601a208c3735929.js +0 -0
  59. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/364.c2fb82c6f484097228c6.js +0 -0
  60. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/439.3cb9ac7022c8a6074647.js +0 -0
  61. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/481.96b91d018df31d54d173.js +0 -0
  62. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/553.b7906877d98a62265533.js +0 -0
  63. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/553.b7906877d98a62265533.js.LICENSE.txt +0 -0
  64. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/635.8c395c854aa2b140b668.js +0 -0
  65. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/713.103cb5ae248be385b08a.js +0 -0
  66. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/742.b204789055ded4e07883.js +0 -0
  67. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/747.b8e9485ebcbb3066eb4b.js +0 -0
  68. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/821.b58f29814f5900f1f6f8.js +0 -0
  69. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/845.cc2bc80fbfea6d20a396.js +0 -0
  70. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/888.09382cc93a2ad3932b31.js +0 -0
  71. /sage_agent_internal-0.2.3/sage_agent_internal/labextension/static/973.38ee5148a3908e41c2dd.js.LICENSE.txt → /sage_agent_internal-0.2.5/sage_agent_internal/labextension/static/973.016a586759b281b79f91.js.LICENSE.txt +0 -0
  72. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/style.js +0 -0
  73. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/sage_agent_internal/labextension/static/third-party-licenses.json +0 -0
  74. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/schema/plugin.json +0 -0
  75. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/setup.py +0 -0
  76. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/BackendTools/DatabaseTools.ts +0 -0
  77. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/BackendTools/FilesystemTools.ts +0 -0
  78. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/BackendTools/WebTools.ts +0 -0
  79. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/BackendTools/index.ts +0 -0
  80. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/BackendTools/tickers.json +0 -0
  81. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/CellTrackingService.ts +0 -0
  82. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ActionHistory.ts +0 -0
  83. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ChatContextMenu/ChatContextLoaders.ts +0 -0
  84. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ChatContextMenu/ChatContextMenu.ts +0 -0
  85. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ChatContextMenu/ChatContextMenuLogic.ts +0 -0
  86. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ChatContextMenu/ChatContextMenuUtils.ts +0 -0
  87. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ChatContextMenu/ContextCacheService.ts +0 -0
  88. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ChatContextMenu/ContextCellHighlighter.ts +0 -0
  89. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ChatContextMenu/KernelExecutionListener.ts +0 -0
  90. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ChatContextMenu/icons.ts +0 -0
  91. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ChatHistoryManager.ts +0 -0
  92. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ChatInputManager.ts +0 -0
  93. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ChatUIHelper.ts +0 -0
  94. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ConversationService.ts +0 -0
  95. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/ConversationServiceUtils.ts +0 -0
  96. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Chat/RichTextChatInput.ts +0 -0
  97. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/ChatboxContext.ts +0 -0
  98. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/CodeConfirmationDialog.ts +0 -0
  99. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/DiffApprovalDialog.ts +0 -0
  100. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/DiffNavigationContent.tsx +0 -0
  101. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/DiffNavigationWidget.tsx +0 -0
  102. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/LLMStateDisplay/DiffItem.tsx +0 -0
  103. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/LLMStateDisplay/LLMStateContent.tsx +0 -0
  104. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/LLMStateDisplay/LLMStateDisplay.tsx +0 -0
  105. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/LLMStateDisplay/icons.ts +0 -0
  106. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/LLMStateDisplay/index.ts +0 -0
  107. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/LLMStateDisplay/types.ts +0 -0
  108. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/MoreOptionsDisplay.tsx +0 -0
  109. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/NewChatDisplayWidget.ts +0 -0
  110. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/PlanStateDisplay.tsx +0 -0
  111. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/RejectionFeedbackDialog.ts +0 -0
  112. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/SnippetCreationWidget/SnippetCreationContent.tsx +0 -0
  113. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/SnippetCreationWidget/SnippetCreationWidget.tsx +0 -0
  114. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/SnippetCreationWidget/SnippetForm.tsx +0 -0
  115. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/SnippetCreationWidget/SnippetFormModal.tsx +0 -0
  116. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/SnippetCreationWidget/SnippetList.tsx +0 -0
  117. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/SnippetCreationWidget/index.ts +0 -0
  118. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/SnippetCreationWidget/types.ts +0 -0
  119. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/UpdateBanner/UpdateBannerWidget.tsx +0 -0
  120. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/chatbox.ts +0 -0
  121. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Components/icons.ts +0 -0
  122. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Config/models.json +0 -0
  123. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Config/optional_env.json +0 -0
  124. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Config/prompts/claude_system_prompt_ask_mode.md +0 -0
  125. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Config/prompts/claude_system_prompt_edit_full_cell.md +0 -0
  126. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Config/prompts/claude_system_prompt_edit_selection.md +0 -0
  127. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Config/prompts/claude_system_prompt_fast_mode.md +0 -0
  128. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Config/tools.json +0 -0
  129. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Notebook/InlineDiffService.ts +0 -0
  130. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Notebook/NotebookCellTools.ts +0 -0
  131. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Notebook/NotebookChatContainer.ts +0 -0
  132. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Notebook/NotebookContextManager.ts +0 -0
  133. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Notebook/NotebookDiffManager.ts +0 -0
  134. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Notebook/NotebookDiffTools.ts +0 -0
  135. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Notebook/NotebookStateService.ts +0 -0
  136. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Notebook/NotebookTools.ts +0 -0
  137. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Notebook/WaitingUserReplyBoxManager.ts +0 -0
  138. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/NotebookSettingsContainer.ts +0 -0
  139. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Services/AnthropicMessageCreator.ts +0 -0
  140. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Services/AnthropicStreamHandler.ts +0 -0
  141. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Services/ContextService.ts +0 -0
  142. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Services/DatabaseMetadataCache.ts +0 -0
  143. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Services/DiffStateService.ts +0 -0
  144. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Services/NotebookCellStateService.ts +0 -0
  145. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/Services/ToolService.ts +0 -0
  146. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/ThreadManager.ts +0 -0
  147. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/TrackingIDUtility.ts +0 -0
  148. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/commands.ts +0 -0
  149. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/index.ts +0 -0
  150. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/types/json.d.ts +0 -0
  151. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/types.ts +0 -0
  152. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/utils/VariableExtractor.ts +0 -0
  153. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/utils/contextTagUtils.ts +0 -0
  154. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/utils/kernelPreview.ts +0 -0
  155. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/utils/kernelUtils.ts +0 -0
  156. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/utils/stateDBCaching.ts +0 -0
  157. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/utils/tokenUtils.ts +0 -0
  158. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/utils/toolDisplay.ts +0 -0
  159. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/src/utils.ts +0 -0
  160. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/base.css +0 -0
  161. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/chat-container.css +0 -0
  162. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/chat-mention-dropdown.css +0 -0
  163. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/code-mirror-merge.css +0 -0
  164. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/codebase-manager.css +0 -0
  165. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/diff-approval.css +0 -0
  166. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/diff-edit-mode.css +0 -0
  167. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/diff-mode.css +0 -0
  168. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/diff-navigation.css +0 -0
  169. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/floating-bottom-widget.css +0 -0
  170. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/fonts.css +0 -0
  171. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/agent-mode-shiny.svg +0 -0
  172. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/agent-mode.svg +0 -0
  173. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/approve.svg +0 -0
  174. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/arrow-down.svg +0 -0
  175. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/arrow-up.svg +0 -0
  176. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/ask-mode.svg +0 -0
  177. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/check.svg +0 -0
  178. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/dashed-circle.svg +0 -0
  179. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/hands-on-mode.svg +0 -0
  180. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/open.svg +0 -0
  181. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/reapply.svg +0 -0
  182. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/reject.svg +0 -0
  183. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/run.svg +0 -0
  184. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/search.svg +0 -0
  185. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/send.svg +0 -0
  186. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/chat_input/stop.svg +0 -0
  187. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/context_menu/cell.svg +0 -0
  188. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/context_menu/data.svg +0 -0
  189. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/context_menu/insert.svg +0 -0
  190. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/context_menu/search.svg +0 -0
  191. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/context_menu/snippets.svg +0 -0
  192. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/context_menu/variable.svg +0 -0
  193. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/state_display/menu-close.svg +0 -0
  194. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/state_display/menu-icon.svg +0 -0
  195. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/icons/state_display/run_cell.svg +0 -0
  196. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/index.js +0 -0
  197. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/inline-diff-approval.css +0 -0
  198. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/left-side-menu.css +0 -0
  199. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/llm-state-display.css +0 -0
  200. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/minus-icon.css +0 -0
  201. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/modal.css +0 -0
  202. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/mode-selector-dropdown.css +0 -0
  203. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/more-options.css +0 -0
  204. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/new-chat-display.css +0 -0
  205. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/plan-state-display.css +0 -0
  206. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/snippet-creation.css +0 -0
  207. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/style.css +0 -0
  208. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/style/update-banner.css +0 -0
  209. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/templates/rule.example.md +0 -0
  210. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/tsconfig.json +0 -0
  211. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/tsconfig.test.json +0 -0
  212. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/ui-tests/README.md +0 -0
  213. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/ui-tests/jupyter_server_test_config.py +0 -0
  214. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/ui-tests/package.json +0 -0
  215. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/ui-tests/playwright.config.js +0 -0
  216. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/ui-tests/tests/sage_agent.spec.ts +0 -0
  217. {sage_agent_internal-0.2.3 → sage_agent_internal-0.2.5}/ui-tests/yarn.lock +0 -0
@@ -0,0 +1,167 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Repository Overview
6
+
7
+ Sage Agent is a JupyterLab extension that provides AI-powered assistance for data analysis and notebook development. It integrates LLM capabilities directly into Jupyter notebooks with chat interface, code generation, and notebook manipulation tools.
8
+
9
+ ## Development Commands
10
+
11
+ ### Build and Development
12
+ - `jlpm build` - Build the extension for development (includes source maps)
13
+ - `jlpm build:prod` - Build for production (optimized, no source maps)
14
+ - `jlpm watch` - Watch source files and rebuild automatically
15
+ - `jlpm watch:src` - Watch TypeScript source files only
16
+ - `jlpm watch:labextension` - Watch labextension files only
17
+
18
+ ### Development Setup
19
+ - `pip install -e "."` - Install package in development mode
20
+ - `jupyter labextension develop . --overwrite` - Link development version with JupyterLab
21
+ - `jupyter lab` - Run JupyterLab with the extension
22
+
23
+ ### Testing and Quality
24
+ - `jlpm test` - Run Jest tests with coverage
25
+ - `jlpm lint` - Run all linters (stylelint, prettier, eslint) with fixes
26
+ - `jlpm lint:check` - Check code quality without fixes
27
+ - `jlpm eslint` - Run ESLint with fixes
28
+ - `jlpm prettier` - Format code with Prettier
29
+
30
+ ### Clean Commands
31
+ - `jlpm clean` - Clean compiled TypeScript files
32
+ - `jlpm clean:all` - Clean all generated files (lib, labextension, cache)
33
+
34
+ ## Architecture Overview
35
+
36
+ ### Core Architecture Pattern
37
+ The extension follows a centralized state management pattern using **AppStateService** as the single source of truth for all application state. This service manages:
38
+
39
+ - Core services (ToolService, NotebookTracker, etc.)
40
+ - UI containers (ChatContainer, SettingsContainer)
41
+ - Notebook state and tracking
42
+ - Configuration and settings
43
+
44
+ ### Key Architectural Components
45
+
46
+ **Plugin System (src/plugin.ts:46-750)**
47
+ - Main JupyterLab plugin entry point
48
+ - Initializes all services in dependency order
49
+ - Sets up event handlers for notebook changes
50
+ - Registers commands and UI components
51
+
52
+ **State Management (src/AppState.ts)**
53
+ - Centralized state using RxJS BehaviorSubject
54
+ - Event-driven architecture for notebook changes
55
+ - Service initialization and dependency injection
56
+ - Settings and configuration management
57
+
58
+ **Chat System (src/Chat/)**
59
+ - ConversationService: Manages chat interactions with LLMs
60
+ - ChatInputManager: Handles user input and context
61
+ - ActionHistory: Tracks user actions for context
62
+ - RichTextChatInput: Advanced input component with markdown support
63
+
64
+ **Notebook Management (src/Notebook/)**
65
+ - NotebookTools: Core notebook manipulation utilities
66
+ - NotebookDiffManager: Handles code diff display and approval
67
+ - NotebookContextManager: Manages cell context for chat
68
+ - InlineDiffService: Provides inline diff visualization
69
+
70
+ **Services (src/Services/)**
71
+ - ToolService: Orchestrates all notebook tools and operations
72
+ - AnthropicService: Handles Claude API integration
73
+ - ConfigService: Manages extension configuration
74
+ - DatabaseMetadataCache: Caches database metadata for tools
75
+
76
+ ### Tool System Architecture
77
+
78
+ The extension provides structured tools for LLM interaction defined in `src/Config/tools.json`:
79
+
80
+ **Notebook Tools:**
81
+ - `notebook-edit_plan` - Manages notebook planning workflow
82
+ - `notebook-read_cells` - Reads specific notebook cells
83
+ - `notebook-add_cell` - Creates new cells with tracking
84
+ - `notebook-edit_cell` - Modifies existing cell content
85
+ - `notebook-run_cell` - Executes code cells
86
+ - `notebook-remove_cells` - Deletes specified cells
87
+ - `notebook-wait_user_reply` - UI component for user interaction
88
+
89
+ **Data Tools:**
90
+ - `filesystem-read_dataset` - Reads dataset files from data directory
91
+ - `web-search_dataset` - Searches ticker/financial data with fuzzy matching
92
+
93
+ ### Configuration System
94
+
95
+ **Model Configuration (src/Config/models.json)**
96
+ - Different models for different interaction modes
97
+ - Tool blacklists per model to optimize performance
98
+ - Supports Claude Sonnet 4 and Haiku models
99
+
100
+ **Prompt System (src/Config/prompts/)**
101
+ - Specialized system prompts for different modes
102
+ - `claude_system_prompt.md` - Main data science assistant prompt
103
+ - Mode-specific prompts for ask, edit, and fast modes
104
+
105
+ ## Important Development Patterns
106
+
107
+ ### Service Initialization Order
108
+ 1. Core services (ToolService, NotebookTracker, NotebookTools)
109
+ 2. Managers (PlanStateDisplay, WaitingUserReplyBoxManager)
110
+ 3. Additional services (ActionHistory, CellTrackingService)
111
+ 4. UI containers (ChatContainer, SettingsContainer)
112
+
113
+ ### Notebook Unique ID System
114
+ - Each notebook gets a unique `sage_ai.unique_id` in metadata
115
+ - Used for tracking chat histories and state across renames
116
+ - Fallback to path-based tracking for compatibility
117
+
118
+ ### Context Management
119
+ - Cells can be added/removed from chat context
120
+ - Visual highlighting shows which cells are in context
121
+ - Context preserved across notebook operations
122
+
123
+ ### Diff Approval Workflow
124
+ - Code changes shown as diffs before execution
125
+ - User approval required for cell modifications
126
+ - Inline diff visualization with syntax highlighting
127
+
128
+ ## Key File Locations
129
+
130
+ ### Source Structure
131
+ - `src/plugin.ts` - Main plugin entry point and initialization
132
+ - `src/AppState.ts` - Centralized state management
133
+ - `src/Config/` - Configuration files (tools, models, prompts)
134
+ - `src/Services/` - Core business logic services
135
+ - `src/Notebook/` - Notebook-specific functionality
136
+ - `src/Chat/` - Chat interface and conversation management
137
+ - `src/Components/` - Reusable UI components
138
+
139
+ ### Build Outputs
140
+ - `lib/` - Compiled TypeScript output
141
+ - `sage_agent_internal/labextension/` - JupyterLab extension package
142
+ - `style/` - CSS stylesheets and icons
143
+
144
+ ## Testing Strategy
145
+
146
+ - Jest for unit tests (`__tests__/` and `ui-tests/`)
147
+ - Playwright for integration tests
148
+ - Test configuration in `jest.config.js`
149
+ - Coverage reporting enabled
150
+
151
+ ## Extension Development Notes
152
+
153
+ ### JupyterLab Integration
154
+ - Requires JupyterLab >= 4.0.0
155
+ - Uses JupyterLab's plugin system for initialization
156
+ - Integrates with notebook tracker and command palette
157
+ - Supports JupyterLab theming system
158
+
159
+ ### Database Integration
160
+ - PGLite integration for local database operations
161
+ - Database URL management through kernel environment
162
+ - Metadata caching for performance optimization
163
+
164
+ ### Theme Support
165
+ - Automatic dark theme application on first load
166
+ - Diff visualization adapts to JupyterLab theme
167
+ - CSS custom properties for theme consistency
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sage_agent_internal
3
- Version: 0.2.3
3
+ Version: 0.2.5
4
4
  Summary: Sage Agent - Your Jupyter Notebook Assistant
5
5
  Project-URL: Homepage, https://github.com/AlpineX-Labs/jupyter-sage-agent-internal
6
6
  Project-URL: Bug Tracker, https://github.com/AlpineX-Labs/jupyter-sage-agent-internal/issues
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sage-agent-internal",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "Sage Agent - Your Jupyter Notebook Assistant",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -62,6 +62,7 @@
62
62
  "@electric-sql/pglite": "^0.3.6",
63
63
  "@google/generative-ai": "^0.24.0",
64
64
  "@jupyterlab/application": "^4.0.0",
65
+ "@jupyterlab/docmanager": "^4.4.5",
65
66
  "@jupyterlab/extensionmanager": "^4.4.4",
66
67
  "@jupyterlab/notebook-extension": "^4.4.0",
67
68
  "@jupyterlab/settingregistry": "^4.0.0",
@@ -1,4 +1,4 @@
1
1
  # This file is auto-generated by Hatchling. As such, do not:
2
2
  # - modify
3
3
  # - track in version control e.g. be sure to add to .gitignore
4
- __version__ = VERSION = '0.2.3'
4
+ __version__ = VERSION = '0.2.5'
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sage-agent-internal",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "Sage Agent - Your Jupyter Notebook Assistant",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -62,6 +62,7 @@
62
62
  "@electric-sql/pglite": "^0.3.6",
63
63
  "@google/generative-ai": "^0.24.0",
64
64
  "@jupyterlab/application": "^4.0.0",
65
+ "@jupyterlab/docmanager": "^4.4.5",
65
66
  "@jupyterlab/extensionmanager": "^4.4.4",
66
67
  "@jupyterlab/notebook-extension": "^4.4.0",
67
68
  "@jupyterlab/settingregistry": "^4.0.0",
@@ -126,7 +127,7 @@
126
127
  "outputDir": "sage_agent_internal/labextension",
127
128
  "schemaDir": "schema",
128
129
  "_build": {
129
- "load": "static/remoteEntry.268979abcf49d9d593b5.js",
130
+ "load": "static/remoteEntry.c97bd67ec0a2caecdfcb.js",
130
131
  "extension": "./extension",
131
132
  "style": "./style"
132
133
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sage-agent-internal",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "Sage Agent - Your Jupyter Notebook Assistant",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -62,6 +62,7 @@
62
62
  "@electric-sql/pglite": "^0.3.6",
63
63
  "@google/generative-ai": "^0.24.0",
64
64
  "@jupyterlab/application": "^4.0.0",
65
+ "@jupyterlab/docmanager": "^4.4.5",
65
66
  "@jupyterlab/extensionmanager": "^4.4.4",
66
67
  "@jupyterlab/notebook-extension": "^4.4.0",
67
68
  "@jupyterlab/settingregistry": "^4.0.0",