signalpilot-ai-internal 0.2.6__tar.gz → 0.8.13__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 (347) hide show
  1. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/PKG-INFO +13 -3
  2. signalpilot_ai_internal-0.8.13/jupyter-config/server-config/signalpilot_ai.json +7 -0
  3. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/package.json +6 -2
  4. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/pyproject.toml +16 -2
  5. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/schema/plugin.json +2 -2
  6. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/__init__.py +20 -0
  7. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/_version.py +1 -1
  8. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/cache_handlers.py +383 -0
  9. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/cache_service.py +700 -0
  10. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/file_scanner_service.py +1395 -0
  11. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/handlers.py +825 -0
  12. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/html_export_template/README.md +23 -0
  13. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/html_export_template/conf.json +12 -0
  14. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/html_export_template/index.html.j2 +140 -0
  15. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/package.json +7 -3
  16. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/schemas/signalpilot-ai-internal/package.json.orig +6 -2
  17. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/schemas/signalpilot-ai-internal/plugin.json +2 -2
  18. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/labextension/static/353.972abe1d2d66f083f9cc.js +1 -0
  19. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/labextension/static/384.fa432bdb7fb6b1c95ad6.js +1 -0
  20. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/labextension/static/476.ad22ccddd74ee306fb56.js +1 -0
  21. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/labextension/static/741.dc49867fafb03ea2ba4d.js +1 -0
  22. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/labextension/static/785.2d75de1a8d2c3131a8db.js +1 -0
  23. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/labextension/static/839.fdb031c8ca8bc06219e2.js +1 -0
  24. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/labextension/static/898.2c539c01057d8e209d40.js +7 -0
  25. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/labextension/static/918.665189bba0a4a0c6604f.js +1 -0
  26. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/labextension/static/remoteEntry.71adc2e2bd3b2b2749c0.js +1 -0
  27. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/third-party-licenses.json +32 -20
  28. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/schema_search_config.yml +32 -0
  29. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/schema_search_service.py +109 -0
  30. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/snowflake_schema_service.py +671 -0
  31. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/tests/__init__.py +1 -0
  32. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/tests/test_handlers.py +16 -0
  33. signalpilot_ai_internal-0.8.13/signalpilot_ai_internal/unified_database_schema_service.py +742 -0
  34. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/AppState.ts +196 -39
  35. signalpilot_ai_internal-0.8.13/src/BackendTools/DatabaseSearchTools.ts +266 -0
  36. signalpilot_ai_internal-0.8.13/src/BackendTools/DatabaseSearchUtil.ts +238 -0
  37. signalpilot_ai_internal-0.8.13/src/BackendTools/DatabaseTools.ts +300 -0
  38. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/BackendTools/FilesystemTools.ts +25 -20
  39. signalpilot_ai_internal-0.8.13/src/BackendTools/TerminalTools.ts +65 -0
  40. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/BackendTools/WebTools.ts +15 -9
  41. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/BackendTools/index.ts +2 -0
  42. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/CellTrackingService.ts +15 -5
  43. signalpilot_ai_internal-0.8.13/src/Chat/ChatContextMenu/ChatContextLoaders.ts +592 -0
  44. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Chat/ChatContextMenu/ChatContextMenu.ts +159 -122
  45. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Chat/ChatContextMenu/ChatContextMenuUtils.ts +53 -14
  46. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Chat/ChatContextMenu/ContextCacheService.ts +55 -17
  47. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Chat/ChatContextMenu/ContextCellHighlighter.ts +47 -34
  48. signalpilot_ai_internal-0.8.13/src/Chat/ChatContextMenu/DataLoaderService.ts +659 -0
  49. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Chat/ChatContextMenu/KernelExecutionListener.ts +3 -2
  50. signalpilot_ai_internal-0.8.13/src/Chat/ChatContextMenu/databaseHelper.ts +265 -0
  51. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Chat/ChatContextMenu/icons.ts +12 -0
  52. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Chat/ChatHistoryManager.ts +448 -61
  53. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Chat/ChatInputManager.ts +213 -22
  54. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Chat/ChatMessages.ts +345 -101
  55. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Chat/ChatUIHelper.ts +4 -0
  56. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Chat/ConversationService.ts +19 -16
  57. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Chat/ConversationServiceUtils.ts +214 -79
  58. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Chat/RichTextChatInput.ts +16 -8
  59. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/CodebaseManager.ts +20 -14
  60. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/ChatboxContext.ts +6 -2
  61. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/CheckpointRestorationModal.ts +3 -2
  62. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/CodeConfirmationDialog.ts +20 -4
  63. signalpilot_ai_internal-0.8.13/src/Components/ConfirmationDialog.ts +96 -0
  64. signalpilot_ai_internal-0.8.13/src/Components/DatabaseCreationModal/DatabaseCreationModal.tsx +1000 -0
  65. signalpilot_ai_internal-0.8.13/src/Components/DatabaseCreationModal/SQLDataForm.tsx +290 -0
  66. signalpilot_ai_internal-0.8.13/src/Components/DatabaseCreationModal/SnowflakeDataForm.tsx +212 -0
  67. signalpilot_ai_internal-0.8.13/src/Components/DatabaseCreationModal/index.ts +17 -0
  68. signalpilot_ai_internal-0.8.13/src/Components/DatabaseManagerWidget/DatabaseManagerWidget.tsx +1141 -0
  69. signalpilot_ai_internal-0.8.13/src/Components/DatabaseManagerWidget/DatabaseSchemaExplorer.tsx +363 -0
  70. signalpilot_ai_internal-0.8.13/src/Components/DatabaseManagerWidget/SnowflakeSchemaViewer.tsx +509 -0
  71. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/DiffApprovalDialog.ts +24 -13
  72. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/DiffNavigationContent.tsx +2 -2
  73. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/DiffNavigationWidget.tsx +2 -2
  74. signalpilot_ai_internal-0.8.13/src/Components/FileExplorerWidget/FileExplorerContent.tsx +552 -0
  75. signalpilot_ai_internal-0.8.13/src/Components/FileExplorerWidget/FileExplorerWidget.tsx +680 -0
  76. signalpilot_ai_internal-0.8.13/src/Components/FileExplorerWidget/FolderItem.tsx +262 -0
  77. signalpilot_ai_internal-0.8.13/src/Components/FileExplorerWidget/icons.ts +37 -0
  78. signalpilot_ai_internal-0.8.13/src/Components/FileExplorerWidget/index.ts +3 -0
  79. signalpilot_ai_internal-0.8.13/src/Components/FileExplorerWidget/treeUtils.ts +167 -0
  80. signalpilot_ai_internal-0.8.13/src/Components/FileExplorerWidget/types.ts +45 -0
  81. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/FirstRunModal.tsx +2 -2
  82. signalpilot_ai_internal-0.8.13/src/Components/HTMLPreviewWidget/HTMLPreviewContent.tsx +403 -0
  83. signalpilot_ai_internal-0.8.13/src/Components/HTMLPreviewWidget/index.ts +1 -0
  84. signalpilot_ai_internal-0.8.13/src/Components/HTMLPreviewWidget.tsx +53 -0
  85. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/InlineCompletionWidget.tsx +108 -55
  86. signalpilot_ai_internal-0.8.13/src/Components/JWTAuthModal.tsx +208 -0
  87. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/JwtTokenDialog.ts +12 -6
  88. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/LLMStateDisplay/DiffItem.tsx +6 -4
  89. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/LLMStateDisplay/LLMStateContent.tsx +1 -1
  90. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/LLMStateDisplay/types.ts +1 -1
  91. signalpilot_ai_internal-0.8.13/src/Components/LoginSuccessModal.tsx +188 -0
  92. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/MoreOptionsDisplay.tsx +2 -2
  93. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/NewChatDisplayWidget.ts +5 -5
  94. signalpilot_ai_internal-0.8.13/src/Components/NotebookDeploymentButton.tsx +261 -0
  95. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/PlanStateDisplay.tsx +3 -12
  96. signalpilot_ai_internal-0.8.13/src/Components/Settings/SessionTimer.tsx +205 -0
  97. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/Settings/SettingsWidget.tsx +358 -198
  98. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/SnippetCreationWidget/SnippetCreationContent.tsx +5 -3
  99. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/SnippetCreationWidget/SnippetCreationWidget.tsx +1 -2
  100. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/SnippetCreationWidget/SnippetFormModal.tsx +43 -10
  101. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/SnippetCreationWidget/SnippetList.tsx +21 -20
  102. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/SnippetCreationWidget/index.ts +0 -1
  103. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/SnippetCreationWidget/types.ts +4 -4
  104. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/UpdateBanner/UpdateBannerWidget.tsx +6 -23
  105. signalpilot_ai_internal-0.8.13/src/Components/WelcomeComponent.ts +235 -0
  106. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/chatbox.ts +414 -105
  107. signalpilot_ai_internal-0.8.13/src/Components/common/StatusBall.tsx +190 -0
  108. signalpilot_ai_internal-0.8.13/src/Components/databaseIcons.ts +25 -0
  109. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Config/ConfigService.ts +16 -2
  110. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Config/models.json +7 -3
  111. signalpilot_ai_internal-0.8.13/src/Config/prompts/subagent_report_creator.md +92 -0
  112. signalpilot_ai_internal-0.8.13/src/Config/prompts/welcome_prompt.md +56 -0
  113. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Config/tools.json +128 -1
  114. signalpilot_ai_internal-0.8.13/src/Config/welcome_tools.json +56 -0
  115. signalpilot_ai_internal-0.8.13/src/DatabaseStateService.ts +1316 -0
  116. signalpilot_ai_internal-0.8.13/src/Demo/DemoControlPanel.ts +132 -0
  117. signalpilot_ai_internal-0.8.13/src/Demo/EXAMPLES.ts +286 -0
  118. signalpilot_ai_internal-0.8.13/src/Demo/IMPLEMENTATION_SUMMARY.md +231 -0
  119. signalpilot_ai_internal-0.8.13/src/Demo/README.md +273 -0
  120. signalpilot_ai_internal-0.8.13/src/Demo/demo.ts +1274 -0
  121. signalpilot_ai_internal-0.8.13/src/Demo/demo_cell_actions.ts +233 -0
  122. signalpilot_ai_internal-0.8.13/src/Demo/demo_commands.ts +60 -0
  123. signalpilot_ai_internal-0.8.13/src/Demo/replay.ts +148 -0
  124. signalpilot_ai_internal-0.8.13/src/Demo/test_history.json +153 -0
  125. signalpilot_ai_internal-0.8.13/src/Demo/test_sp.json +153 -0
  126. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Notebook/InlineDiffService.ts +5 -5
  127. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Notebook/NotebookCellTools.ts +130 -39
  128. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Notebook/NotebookChatContainer.ts +34 -8
  129. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Notebook/NotebookContextManager.ts +1 -1
  130. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Notebook/NotebookDiffManager.ts +21 -22
  131. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Notebook/NotebookDiffTools.ts +2 -4
  132. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Notebook/NotebookStateService.ts +51 -17
  133. signalpilot_ai_internal-0.8.13/src/Notebook/NotebookTools.ts +1264 -0
  134. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/AnthropicMessageCreator.ts +37 -17
  135. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/AnthropicService.ts +33 -10
  136. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/AnthropicStreamHandler.ts +20 -20
  137. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/CheckpointManager.ts +7 -7
  138. signalpilot_ai_internal-0.8.13/src/Services/CloudUploadService.ts +507 -0
  139. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/CompletionManager.ts +19 -7
  140. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/ContextService.ts +15 -11
  141. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/DatabaseMetadataCache.ts +264 -91
  142. signalpilot_ai_internal-0.8.13/src/Services/DeploymentStateService.ts +230 -0
  143. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/DiffStateService.ts +10 -4
  144. signalpilot_ai_internal-0.8.13/src/Services/FileCacheService.ts +189 -0
  145. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/FirstRunModalService.ts +23 -10
  146. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/IChatService.ts +1 -1
  147. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/JWTAuthModalService.ts +73 -33
  148. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/JupyterAuthService.ts +227 -109
  149. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/LoginSuccessModalService.ts +72 -17
  150. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/NotebookCellStateService.ts +3 -3
  151. signalpilot_ai_internal-0.8.13/src/Services/PostHogService.ts +82 -0
  152. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/ServiceFactory.ts +3 -1
  153. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/ServiceUtils.ts +4 -4
  154. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/TabCompletionService.ts +8 -2
  155. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Services/ToolService.ts +138 -13
  156. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/ThreadManager.ts +22 -12
  157. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/TrackingIDUtility.ts +34 -9
  158. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/activateSage.ts +789 -326
  159. signalpilot_ai_internal-0.8.13/src/commands.ts +1273 -0
  160. signalpilot_ai_internal-0.8.13/src/demo.ts +372 -0
  161. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/eval_commands.ts +7 -14
  162. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/globalWidgets.ts +12 -4
  163. signalpilot_ai_internal-0.8.13/src/handler.ts +130 -0
  164. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/plugin.ts +63 -20
  165. signalpilot_ai_internal-0.8.13/src/sessionUtils.ts +214 -0
  166. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/types.ts +1 -0
  167. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/utils/VariableExtractor.ts +152 -31
  168. signalpilot_ai_internal-0.8.13/src/utils/backendCaching.ts +302 -0
  169. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/utils/contextTagUtils.ts +23 -28
  170. signalpilot_ai_internal-0.8.13/src/utils/databaseEncoder.ts +164 -0
  171. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/utils/kernelPreview.ts +102 -79
  172. signalpilot_ai_internal-0.8.13/src/utils/kernelUtils.ts +412 -0
  173. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/utils/tokenEncoder.ts +11 -9
  174. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/utils/tokenUtils.ts +6 -2
  175. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/utils/toolDisplay.ts +39 -1
  176. signalpilot_ai_internal-0.8.13/src/welcomeCta.ts +408 -0
  177. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/base.css +152 -12
  178. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/chat-container.css +0 -2
  179. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/chat-mention-dropdown.css +6 -2
  180. signalpilot_ai_internal-0.8.13/style/chatbox-launcher.css +112 -0
  181. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/code-mirror-merge.css +7 -5
  182. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/codebase-manager.css +2 -1
  183. signalpilot_ai_internal-0.8.13/style/data-cta-interface.css +641 -0
  184. signalpilot_ai_internal-0.8.13/style/database-creation-modal.css +1502 -0
  185. signalpilot_ai_internal-0.8.13/style/database-manager-widget.css +579 -0
  186. signalpilot_ai_internal-0.8.13/style/database-schema-explorer.css +686 -0
  187. signalpilot_ai_internal-0.8.13/style/demo-control-panel.css +151 -0
  188. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/diff-approval.css +8 -5
  189. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/diff-edit-mode.css +4 -7
  190. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/diff-navigation.css +15 -7
  191. signalpilot_ai_internal-0.8.13/style/file-explorer.css +995 -0
  192. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/floating-bottom-widget.css +19 -13
  193. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/fonts.css +2 -2
  194. signalpilot_ai_internal-0.8.13/style/html-preview-widget.css +293 -0
  195. signalpilot_ai_internal-0.8.13/style/icons/context_menu/database.svg +6 -0
  196. signalpilot_ai_internal-0.8.13/style/icons/databases/connection.svg +1 -0
  197. signalpilot_ai_internal-0.8.13/style/icons/databases/mysql.svg +4 -0
  198. signalpilot_ai_internal-0.8.13/style/icons/databases/postgresql.svg +8 -0
  199. signalpilot_ai_internal-0.8.13/style/icons/databases/snowflake.svg +1 -0
  200. signalpilot_ai_internal-0.8.13/style/icons/files/arrow-down.svg +1 -0
  201. signalpilot_ai_internal-0.8.13/style/icons/files/file.svg +1 -0
  202. signalpilot_ai_internal-0.8.13/style/icons/files/folder.svg +1 -0
  203. signalpilot_ai_internal-0.8.13/style/icons/files/magic.svg +3 -0
  204. signalpilot_ai_internal-0.8.13/style/icons/files/open-link.svg +1 -0
  205. signalpilot_ai_internal-0.8.13/style/icons/files/reload-1.svg +1 -0
  206. signalpilot_ai_internal-0.8.13/style/icons/files/reload.svg +1 -0
  207. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/index.css +8 -1
  208. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/index.js +12 -0
  209. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/inline-diff-approval.css +19 -9
  210. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/left-side-menu.css +12 -2
  211. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/llm-state-display.css +3 -21
  212. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/minus-icon.css +4 -3
  213. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/modal.css +74 -30
  214. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/mode-selector-dropdown.css +1 -1
  215. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/more-options.css +1 -1
  216. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/new-chat-display.css +5 -11
  217. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/plan-state-display.css +5 -6
  218. signalpilot_ai_internal-0.8.13/style/session-timer.css +403 -0
  219. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/settings-widget.css +188 -2
  220. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/snippet-creation.css +4 -2
  221. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/tab-completion.css +3 -3
  222. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/update-banner.css +6 -2
  223. signalpilot_ai_internal-0.8.13/style/welcome-component.css +119 -0
  224. signalpilot_ai_internal-0.8.13/style/welcome-tour.css +277 -0
  225. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/yarn.lock +883 -769
  226. signalpilot_ai_internal-0.2.6/cli-chat-tool/index.ts +0 -341
  227. signalpilot_ai_internal-0.2.6/cli-chat-tool/package-lock.json +0 -923
  228. signalpilot_ai_internal-0.2.6/cli-chat-tool/package.json +0 -16
  229. signalpilot_ai_internal-0.2.6/cli-chat-tool/tsconfig.json +0 -23
  230. signalpilot_ai_internal-0.2.6/cli-chat-tool/yarn.lock +0 -610
  231. signalpilot_ai_internal-0.2.6/package-lock.json +0 -12123
  232. signalpilot_ai_internal-0.2.6/signalpilot_ai_internal/labextension/static/280.ab4b08b32010009ebd95.js +0 -2
  233. signalpilot_ai_internal-0.2.6/signalpilot_ai_internal/labextension/static/280.ab4b08b32010009ebd95.js.LICENSE.txt +0 -1
  234. signalpilot_ai_internal-0.2.6/signalpilot_ai_internal/labextension/static/353.72484b768a04f89bd3dd.js +0 -1
  235. signalpilot_ai_internal-0.2.6/signalpilot_ai_internal/labextension/static/363.e3ee15e56ac7e8c15ec5.js +0 -1
  236. signalpilot_ai_internal-0.2.6/signalpilot_ai_internal/labextension/static/476.b3e7fe00841ff1b9bf63.js +0 -1
  237. signalpilot_ai_internal-0.2.6/signalpilot_ai_internal/labextension/static/785.3aa564fc148b37d1d719.js +0 -1
  238. signalpilot_ai_internal-0.2.6/signalpilot_ai_internal/labextension/static/839.fa5339ab68ecfd0098f0.js +0 -1
  239. signalpilot_ai_internal-0.2.6/signalpilot_ai_internal/labextension/static/remoteEntry.9dbc2ea4ba199c428a9a.js +0 -1
  240. signalpilot_ai_internal-0.2.6/src/BackendTools/DatabaseTools.ts +0 -611
  241. signalpilot_ai_internal-0.2.6/src/Chat/ChatContextMenu/ChatContextLoaders.ts +0 -319
  242. signalpilot_ai_internal-0.2.6/src/Chat/ChatContextMenu/ChatContextMenuLogic.ts +0 -527
  243. signalpilot_ai_internal-0.2.6/src/Chat/ChatContextMenu/DataLoaderService.ts +0 -684
  244. signalpilot_ai_internal-0.2.6/src/Components/JWTAuthModal.tsx +0 -157
  245. signalpilot_ai_internal-0.2.6/src/Components/LoginSuccessModal.tsx +0 -123
  246. signalpilot_ai_internal-0.2.6/src/Components/SnippetCreationWidget/SnippetForm.tsx +0 -68
  247. signalpilot_ai_internal-0.2.6/src/Notebook/NotebookTools.ts +0 -622
  248. signalpilot_ai_internal-0.2.6/src/commands.ts +0 -623
  249. signalpilot_ai_internal-0.2.6/src/utils/kernelUtils.ts +0 -194
  250. signalpilot_ai_internal-0.2.6/src/utils/stateDBCaching.ts +0 -157
  251. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/.copier-answers.yml +0 -0
  252. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/.gitignore +0 -0
  253. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/.keep +0 -0
  254. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/.prettierignore +0 -0
  255. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/.vscode/settings.json +0 -0
  256. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/.yarnrc.yml +0 -0
  257. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/CHANGELOG.md +0 -0
  258. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/CLAUDE.md +0 -0
  259. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/LICENSE +0 -0
  260. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/README.md +0 -0
  261. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/RELEASE.md +0 -0
  262. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/__tests__/sage_agent.spec.ts +0 -0
  263. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/babel.config.js +0 -0
  264. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/create_test_data.py +0 -0
  265. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/install.json +0 -0
  266. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/jest.config.js +0 -0
  267. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/setup.py +0 -0
  268. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/122.e2dadf63dc64d7b5f1ee.js +0 -0
  269. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/220.328403b5545f268b95c6.js +0 -0
  270. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/262.726e1da31a50868cb297.js +0 -0
  271. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/364.dbec4c2dc12e7b050dcc.js +0 -0
  272. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/439.37e271d7a80336daabe2.js +0 -0
  273. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/481.73c7a9290b7d35a8b9c1.js +0 -0
  274. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/512.b58fc0093d080b8ee61c.js +0 -0
  275. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/553.b4042a795c91d9ff71ef.js +0 -0
  276. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/553.b4042a795c91d9ff71ef.js.LICENSE.txt +0 -0
  277. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/635.9720593ee20b768da3ca.js +0 -0
  278. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/713.8e6edc9a965bdd578ca7.js +0 -0
  279. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/742.91e7b516c8699eea3373.js +0 -0
  280. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/888.34054db17bcf6e87ec95.js +0 -0
  281. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/signalpilot_ai_internal/labextension/static/style.js +0 -0
  282. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/BackendTools/tickers.json +0 -0
  283. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Chat/ActionHistory.ts +0 -0
  284. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/LLMStateDisplay/LLMStateDisplay.tsx +0 -0
  285. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/LLMStateDisplay/icons.ts +0 -0
  286. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/LLMStateDisplay/index.ts +0 -0
  287. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/RejectionFeedbackDialog.ts +0 -0
  288. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Components/icons.ts +0 -0
  289. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Config/optional_env.json +0 -0
  290. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Config/prompts/claude_system_prompt.md +0 -0
  291. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Config/prompts/claude_system_prompt_ask_mode.md +0 -0
  292. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Config/prompts/claude_system_prompt_edit_full_cell.md +0 -0
  293. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Config/prompts/claude_system_prompt_edit_selection.md +0 -0
  294. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Config/prompts/claude_system_prompt_fast_mode.md +0 -0
  295. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Config/prompts/plan_generation_prompt.md +0 -0
  296. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/Notebook/WaitingUserReplyBoxManager.ts +0 -0
  297. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/NotebookSettingsContainer.ts +0 -0
  298. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/index.ts +0 -0
  299. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/types/json.d.ts +0 -0
  300. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/utils/caching.ts +0 -0
  301. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/src/utils.ts +0 -0
  302. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/diff-mode.css +0 -0
  303. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/agent-mode-shiny.svg +0 -0
  304. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/agent-mode.svg +0 -0
  305. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/approve.svg +0 -0
  306. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/arrow-down.svg +0 -0
  307. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/arrow-up.svg +0 -0
  308. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/ask-mode.svg +0 -0
  309. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/check.svg +0 -0
  310. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/dashed-circle.svg +0 -0
  311. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/hands-on-mode.svg +0 -0
  312. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/open.svg +0 -0
  313. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/reapply.svg +0 -0
  314. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/reject.svg +0 -0
  315. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/run.svg +0 -0
  316. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/search.svg +0 -0
  317. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/send.svg +0 -0
  318. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/chat_input/stop.svg +0 -0
  319. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/context_menu/cell.svg +0 -0
  320. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/context_menu/data.svg +0 -0
  321. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/context_menu/insert.svg +0 -0
  322. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/context_menu/search.svg +0 -0
  323. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/context_menu/snippets.svg +0 -0
  324. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/context_menu/variable.svg +0 -0
  325. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/state_display/menu-close.svg +0 -0
  326. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/state_display/menu-icon.svg +0 -0
  327. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/state_display/run_cell.svg +0 -0
  328. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/icons/state_display/warning.svg +0 -0
  329. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/style/style.css +0 -0
  330. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/templates/rule.example.md +0 -0
  331. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/tsconfig.json +0 -0
  332. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/tsconfig.test.json +0 -0
  333. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/README.md +0 -0
  334. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/jupyter_server_test_config.py +0 -0
  335. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/package.json +0 -0
  336. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/playwright.config.js +0 -0
  337. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/setup-tests.bat +0 -0
  338. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/setup-tests.sh +0 -0
  339. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/slack-test-README.md +0 -0
  340. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/test_slack.py +0 -0
  341. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/tests/README_SAGE_LLM_TESTS.md +0 -0
  342. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/tests/SAGE_LLM_TESTING_PLAN.md +0 -0
  343. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/tests/config-example.ts +0 -0
  344. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/tests/sage_agent.spec.ts +0 -0
  345. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/tests/sage_diff_interactions.spec.ts +0 -0
  346. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/tests/sage_llm_test.spec.ts +0 -0
  347. {signalpilot_ai_internal-0.2.6 → signalpilot_ai_internal-0.8.13}/ui-tests/yarn.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: signalpilot_ai_internal
3
- Version: 0.2.6
3
+ Version: 0.8.13
4
4
  Summary: SignalPilot Agent - Your Jupyter Notebook Assistant
5
5
  Project-URL: Homepage, https://signalpilot.ai/
6
6
  Author-email: Daniel Schaffield <danielschaffield@gmail.com>
@@ -43,13 +43,23 @@ Classifier: Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt
43
43
  Classifier: License :: OSI Approved :: BSD License
44
44
  Classifier: Programming Language :: Python
45
45
  Classifier: Programming Language :: Python :: 3
46
- Classifier: Programming Language :: Python :: 3.6
47
46
  Classifier: Programming Language :: Python :: 3.9
48
47
  Classifier: Programming Language :: Python :: 3.10
49
48
  Classifier: Programming Language :: Python :: 3.11
50
49
  Classifier: Programming Language :: Python :: 3.12
51
50
  Classifier: Programming Language :: Python :: 3.13
52
- Requires-Python: >=3.6
51
+ Requires-Python: >=3.10
52
+ Requires-Dist: jupyter-server<3,>=2.4.0
53
+ Requires-Dist: openpyxl
54
+ Requires-Dist: pandas>=2.0.0
55
+ Requires-Dist: pyarrow
56
+ Requires-Dist: schema-search
57
+ Provides-Extra: test
58
+ Requires-Dist: coverage; extra == 'test'
59
+ Requires-Dist: pytest; extra == 'test'
60
+ Requires-Dist: pytest-asyncio; extra == 'test'
61
+ Requires-Dist: pytest-cov; extra == 'test'
62
+ Requires-Dist: pytest-jupyter[server]>=0.6.0; extra == 'test'
53
63
  Description-Content-Type: text/markdown
54
64
 
55
65
  # **SignalPilot Agent — The AI-Powered Assistant for Jupyter Notebooks**
@@ -0,0 +1,7 @@
1
+ {
2
+ "ServerApp": {
3
+ "jpserver_extensions": {
4
+ "signalpilot_ai_internal": true
5
+ }
6
+ }
7
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "signalpilot-ai-internal",
3
- "version": "0.2.6",
3
+ "version": "0.8.13",
4
4
  "description": "SignalPilot Agent - Your Jupyter Notebook Assistant",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -68,6 +68,7 @@
68
68
  "@types/hogan.js": "^3.0.5",
69
69
  "babel-plugin-transform-remove-console": "^6.9.4",
70
70
  "best-effort-json-parser": "^1.1.3",
71
+ "bluebird": "^3.7.2",
71
72
  "bootstrap": "^5.3.7",
72
73
  "chalk": "^4.1.2",
73
74
  "codemirror": "^6.0.2",
@@ -76,10 +77,12 @@
76
77
  "diff": "^8.0.1",
77
78
  "diff2html": "^3.4.51",
78
79
  "dompurify": "^3.2.5",
80
+ "driver.js": "^1.3.6",
81
+ "fuse.js": "^7.1.0",
79
82
  "jwt-decode": "^4.0.0",
80
83
  "marked": "^15.0.11",
81
84
  "partial-json": "^0.1.7",
82
- "posthog-js": "^1.268.4",
85
+ "posthog-js": "^1.268.5",
83
86
  "react-bootstrap": "^2.10.10",
84
87
  "readline": "^1.3.0",
85
88
  "rxjs": "^7.8.2",
@@ -90,6 +93,7 @@
90
93
  "devDependencies": {
91
94
  "@jupyterlab/builder": "^4.0.0",
92
95
  "@jupyterlab/testutils": "^4.0.0",
96
+ "@types/bluebird": "^3.5.42",
93
97
  "@types/jest": "^29.2.0",
94
98
  "@types/json-schema": "^7.0.11",
95
99
  "@types/react": "^18.0.26",
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
  name = "signalpilot_ai_internal"
7
7
  readme = "README.md"
8
8
  license = { file = "LICENSE" }
9
- requires-python = ">=3.6"
9
+ requires-python = ">=3.10"
10
10
  classifiers = [
11
11
  "Framework :: Jupyter",
12
12
  "Framework :: Jupyter :: JupyterLab",
@@ -16,7 +16,6 @@ classifiers = [
16
16
  "License :: OSI Approved :: BSD License",
17
17
  "Programming Language :: Python",
18
18
  "Programming Language :: Python :: 3",
19
- "Programming Language :: Python :: 3.6",
20
19
  "Programming Language :: Python :: 3.9",
21
20
  "Programming Language :: Python :: 3.10",
22
21
  "Programming Language :: Python :: 3.11",
@@ -24,9 +23,23 @@ classifiers = [
24
23
  "Programming Language :: Python :: 3.13",
25
24
  ]
26
25
  dependencies = [
26
+ "jupyter_server>=2.4.0,<3",
27
+ "pandas>=2.0.0",
28
+ "pyarrow",
29
+ "schema-search",
30
+ "openpyxl"
27
31
  ]
28
32
  dynamic = ["version", "description", "authors", "urls", "keywords"]
29
33
 
34
+ [project.optional-dependencies]
35
+ test = [
36
+ "coverage",
37
+ "pytest",
38
+ "pytest-asyncio",
39
+ "pytest-cov",
40
+ "pytest-jupyter[server]>=0.6.0"
41
+ ]
42
+
30
43
  [tool.hatch.version]
31
44
  source = "nodejs"
32
45
 
@@ -40,6 +53,7 @@ exclude = [".github", "binder"]
40
53
  [tool.hatch.build.targets.wheel.shared-data]
41
54
  "signalpilot_ai_internal/labextension" = "share/jupyter/labextensions/signalpilot-ai-internal"
42
55
  "install.json" = "share/jupyter/labextensions/signalpilot-ai-internal/install.json"
56
+ "jupyter-config/server-config" = "etc/jupyter/jupyter_server_config.d"
43
57
 
44
58
  [tool.hatch.build.hooks.version]
45
59
  path = "signalpilot_ai_internal/_version.py"
@@ -31,7 +31,7 @@
31
31
  "type": "string",
32
32
  "title": "Model Name",
33
33
  "description": "The name of the Anthropic model to use",
34
- "default": "claude-3-5-sonnet-20241022"
34
+ "default": "claude-sonnet-4-5"
35
35
  },
36
36
  "darkThemeApplied": {
37
37
  "type": "boolean",
@@ -82,7 +82,7 @@
82
82
  "type": "string",
83
83
  "title": "Claude Model ID",
84
84
  "description": "The ID of the Claude model to use",
85
- "default": "claude-sonnet-4-20250514"
85
+ "default": "claude-sonnet-4-5"
86
86
  },
87
87
  "claudeModelUrl": {
88
88
  "type": "string",
@@ -7,6 +7,7 @@ except ImportError:
7
7
  import warnings
8
8
  warnings.warn("Importing 'signalpilot_ai_internal' outside a proper installation.")
9
9
  __version__ = "dev"
10
+ from .handlers import setup_handlers
10
11
 
11
12
 
12
13
  def _jupyter_labextension_paths():
@@ -14,3 +15,22 @@ def _jupyter_labextension_paths():
14
15
  "src": "labextension",
15
16
  "dest": "signalpilot-ai-internal"
16
17
  }]
18
+
19
+
20
+ def _jupyter_server_extension_points():
21
+ return [{
22
+ "module": "signalpilot_ai_internal"
23
+ }]
24
+
25
+
26
+ def _load_jupyter_server_extension(server_app):
27
+ """Registers the API handler to receive HTTP requests from the frontend extension.
28
+
29
+ Parameters
30
+ ----------
31
+ server_app: jupyterlab.labapp.LabApp
32
+ JupyterLab application instance
33
+ """
34
+ setup_handlers(server_app.web_app)
35
+ name = "signalpilot_ai_internal"
36
+ server_app.log.info(f"Registered {name} server extension")
@@ -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.6'
4
+ __version__ = VERSION = '0.8.13'
@@ -0,0 +1,383 @@
1
+ """
2
+ Cache endpoint handlers for SignalPilot AI.
3
+ Provides REST API handlers for chat histories and app values caching.
4
+ """
5
+
6
+ import json
7
+ from typing import Any, Dict, Optional
8
+
9
+ from jupyter_server.base.handlers import APIHandler
10
+ import tornado
11
+
12
+ from .cache_service import get_cache_service
13
+
14
+
15
+ class ChatHistoriesHandler(APIHandler):
16
+ """Handler for chat histories cache operations"""
17
+
18
+ @tornado.web.authenticated
19
+ def get(self, chat_id=None):
20
+ """Get chat histories or specific chat history"""
21
+ try:
22
+ cache_service = get_cache_service()
23
+
24
+ if not cache_service.is_available():
25
+ self.set_status(503)
26
+ self.finish(json.dumps({
27
+ "error": "Cache service not available",
28
+ "message": "Persistent storage is not accessible"
29
+ }))
30
+ return
31
+
32
+ if chat_id:
33
+ # Get specific chat history
34
+ history = cache_service.get_chat_history(chat_id)
35
+ if history is None:
36
+ self.set_status(404)
37
+ self.finish(json.dumps({
38
+ "error": "Chat history not found",
39
+ "chat_id": chat_id
40
+ }))
41
+ else:
42
+ self.finish(json.dumps({
43
+ "chat_id": chat_id,
44
+ "history": history
45
+ }))
46
+ else:
47
+ # Get all chat histories
48
+ histories = cache_service.get_chat_histories()
49
+ self.finish(json.dumps({
50
+ "chat_histories": histories,
51
+ "count": len(histories)
52
+ }))
53
+
54
+ except Exception as e:
55
+ self.set_status(500)
56
+ self.finish(json.dumps({
57
+ "error": "Internal server error",
58
+ "message": str(e)
59
+ }))
60
+
61
+ @tornado.web.authenticated
62
+ def post(self, chat_id=None):
63
+ """Create or update chat history"""
64
+ try:
65
+ cache_service = get_cache_service()
66
+
67
+ if not cache_service.is_available():
68
+ self.set_status(503)
69
+ self.finish(json.dumps({
70
+ "error": "Cache service not available",
71
+ "message": "Persistent storage is not accessible"
72
+ }))
73
+ return
74
+
75
+ # Parse request body
76
+ try:
77
+ body = json.loads(self.request.body.decode('utf-8'))
78
+ except json.JSONDecodeError:
79
+ self.set_status(400)
80
+ self.finish(json.dumps({
81
+ "error": "Invalid JSON in request body"
82
+ }))
83
+ return
84
+
85
+ if chat_id:
86
+ # Update specific chat history
87
+ history_data = body.get('history')
88
+ if history_data is None:
89
+ self.set_status(400)
90
+ self.finish(json.dumps({
91
+ "error": "Missing 'history' field in request body"
92
+ }))
93
+ return
94
+
95
+ success = cache_service.set_chat_history(chat_id, history_data)
96
+ if success:
97
+ self.finish(json.dumps({
98
+ "success": True,
99
+ "chat_id": chat_id,
100
+ "message": "Chat history updated successfully"
101
+ }))
102
+ else:
103
+ self.set_status(500)
104
+ self.finish(json.dumps({
105
+ "error": "Failed to save chat history"
106
+ }))
107
+ else:
108
+ # Bulk update operation
109
+ chat_histories = body.get('chat_histories', {})
110
+ if not isinstance(chat_histories, dict):
111
+ self.set_status(400)
112
+ self.finish(json.dumps({
113
+ "error": "'chat_histories' must be an object"
114
+ }))
115
+ return
116
+
117
+ # Update each chat history
118
+ failures = []
119
+ successes = []
120
+
121
+ for cid, history in chat_histories.items():
122
+ if cache_service.set_chat_history(cid, history):
123
+ successes.append(cid)
124
+ else:
125
+ failures.append(cid)
126
+
127
+ self.finish(json.dumps({
128
+ "success": len(failures) == 0,
129
+ "updated": successes,
130
+ "failed": failures,
131
+ "message": f"Updated {len(successes)} chat histories, {len(failures)} failed"
132
+ }))
133
+
134
+ except Exception as e:
135
+ self.set_status(500)
136
+ self.finish(json.dumps({
137
+ "error": "Internal server error",
138
+ "message": str(e)
139
+ }))
140
+
141
+ @tornado.web.authenticated
142
+ def delete(self, chat_id=None):
143
+ """Delete chat history or all chat histories"""
144
+ try:
145
+ cache_service = get_cache_service()
146
+
147
+ if not cache_service.is_available():
148
+ self.set_status(503)
149
+ self.finish(json.dumps({
150
+ "error": "Cache service not available",
151
+ "message": "Persistent storage is not accessible"
152
+ }))
153
+ return
154
+
155
+ if chat_id:
156
+ # Delete specific chat history
157
+ success = cache_service.delete_chat_history(chat_id)
158
+ if success:
159
+ self.finish(json.dumps({
160
+ "success": True,
161
+ "chat_id": chat_id,
162
+ "message": "Chat history deleted successfully"
163
+ }))
164
+ else:
165
+ self.set_status(500)
166
+ self.finish(json.dumps({
167
+ "error": "Failed to delete chat history"
168
+ }))
169
+ else:
170
+ # Clear all chat histories
171
+ success = cache_service.clear_chat_histories()
172
+ if success:
173
+ self.finish(json.dumps({
174
+ "success": True,
175
+ "message": "All chat histories cleared successfully"
176
+ }))
177
+ else:
178
+ self.set_status(500)
179
+ self.finish(json.dumps({
180
+ "error": "Failed to clear chat histories"
181
+ }))
182
+
183
+ except Exception as e:
184
+ self.set_status(500)
185
+ self.finish(json.dumps({
186
+ "error": "Internal server error",
187
+ "message": str(e)
188
+ }))
189
+
190
+
191
+ class AppValuesHandler(APIHandler):
192
+ """Handler for app values cache operations"""
193
+
194
+ @tornado.web.authenticated
195
+ def get(self, key=None):
196
+ """Get app values or specific app value"""
197
+ try:
198
+ cache_service = get_cache_service()
199
+
200
+ if not cache_service.is_available():
201
+ self.set_status(503)
202
+ self.finish(json.dumps({
203
+ "error": "Cache service not available",
204
+ "message": "Persistent storage is not accessible"
205
+ }))
206
+ return
207
+
208
+ if key:
209
+ # Get specific app value
210
+ default = self.get_argument('default', None)
211
+ try:
212
+ if default:
213
+ default = json.loads(default)
214
+ except json.JSONDecodeError:
215
+ pass # Use string default
216
+
217
+ value = cache_service.get_app_value(key, default)
218
+ self.finish(json.dumps({
219
+ "key": key,
220
+ "value": value
221
+ }))
222
+ else:
223
+ # Get all app values
224
+ values = cache_service.get_app_values()
225
+ self.finish(json.dumps({
226
+ "app_values": values,
227
+ "count": len(values)
228
+ }))
229
+
230
+ except Exception as e:
231
+ self.set_status(500)
232
+ self.finish(json.dumps({
233
+ "error": "Internal server error",
234
+ "message": str(e)
235
+ }))
236
+
237
+ @tornado.web.authenticated
238
+ def post(self, key=None):
239
+ """Create or update app value"""
240
+ try:
241
+ cache_service = get_cache_service()
242
+
243
+ if not cache_service.is_available():
244
+ self.set_status(503)
245
+ self.finish(json.dumps({
246
+ "error": "Cache service not available",
247
+ "message": "Persistent storage is not accessible"
248
+ }))
249
+ return
250
+
251
+ # Parse request body
252
+ try:
253
+ body = json.loads(self.request.body.decode('utf-8'))
254
+ except json.JSONDecodeError:
255
+ self.set_status(400)
256
+ self.finish(json.dumps({
257
+ "error": "Invalid JSON in request body"
258
+ }))
259
+ return
260
+
261
+ if key:
262
+ # Update specific app value
263
+ value_data = body.get('value')
264
+ if value_data is None:
265
+ self.set_status(400)
266
+ self.finish(json.dumps({
267
+ "error": "Missing 'value' field in request body"
268
+ }))
269
+ return
270
+
271
+ success = cache_service.set_app_value(key, value_data)
272
+ if success:
273
+ self.finish(json.dumps({
274
+ "success": True,
275
+ "key": key,
276
+ "message": "App value updated successfully"
277
+ }))
278
+ else:
279
+ self.set_status(500)
280
+ self.finish(json.dumps({
281
+ "error": "Failed to save app value"
282
+ }))
283
+ else:
284
+ # Bulk update operation
285
+ app_values = body.get('app_values', {})
286
+ if not isinstance(app_values, dict):
287
+ self.set_status(400)
288
+ self.finish(json.dumps({
289
+ "error": "'app_values' must be an object"
290
+ }))
291
+ return
292
+
293
+ # Update each app value
294
+ failures = []
295
+ successes = []
296
+
297
+ for k, value in app_values.items():
298
+ if cache_service.set_app_value(k, value):
299
+ successes.append(k)
300
+ else:
301
+ failures.append(k)
302
+
303
+ self.finish(json.dumps({
304
+ "success": len(failures) == 0,
305
+ "updated": successes,
306
+ "failed": failures,
307
+ "message": f"Updated {len(successes)} app values, {len(failures)} failed"
308
+ }))
309
+
310
+ except Exception as e:
311
+ self.set_status(500)
312
+ self.finish(json.dumps({
313
+ "error": "Internal server error",
314
+ "message": str(e)
315
+ }))
316
+
317
+ @tornado.web.authenticated
318
+ def delete(self, key=None):
319
+ """Delete app value or all app values"""
320
+ try:
321
+ cache_service = get_cache_service()
322
+
323
+ if not cache_service.is_available():
324
+ self.set_status(503)
325
+ self.finish(json.dumps({
326
+ "error": "Cache service not available",
327
+ "message": "Persistent storage is not accessible"
328
+ }))
329
+ return
330
+
331
+ if key:
332
+ # Delete specific app value
333
+ success = cache_service.delete_app_value(key)
334
+ if success:
335
+ self.finish(json.dumps({
336
+ "success": True,
337
+ "key": key,
338
+ "message": "App value deleted successfully"
339
+ }))
340
+ else:
341
+ self.set_status(500)
342
+ self.finish(json.dumps({
343
+ "error": "Failed to delete app value"
344
+ }))
345
+ else:
346
+ # Clear all app values
347
+ success = cache_service.clear_app_values()
348
+ if success:
349
+ self.finish(json.dumps({
350
+ "success": True,
351
+ "message": "All app values cleared successfully"
352
+ }))
353
+ else:
354
+ self.set_status(500)
355
+ self.finish(json.dumps({
356
+ "error": "Failed to clear app values"
357
+ }))
358
+
359
+ except Exception as e:
360
+ self.set_status(500)
361
+ self.finish(json.dumps({
362
+ "error": "Internal server error",
363
+ "message": str(e)
364
+ }))
365
+
366
+
367
+ class CacheInfoHandler(APIHandler):
368
+ """Handler for cache service information"""
369
+
370
+ @tornado.web.authenticated
371
+ def get(self):
372
+ """Get cache service information and statistics"""
373
+ try:
374
+ cache_service = get_cache_service()
375
+ info = cache_service.get_cache_info()
376
+ self.finish(json.dumps(info))
377
+
378
+ except Exception as e:
379
+ self.set_status(500)
380
+ self.finish(json.dumps({
381
+ "error": "Internal server error",
382
+ "message": str(e)
383
+ }))