hdsp-jupyter-extension 2.0.28__py3-none-any.whl → 2.0.29__py3-none-any.whl

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 (54) hide show
  1. agent_server/config/__init__.py +5 -0
  2. agent_server/config/server_config.py +213 -0
  3. agent_server/core/__init__.py +2 -2
  4. agent_server/core/llm_service.py +2 -3
  5. agent_server/main.py +4 -4
  6. agent_server/routers/agent.py +2 -2
  7. agent_server/routers/chat.py +31 -28
  8. agent_server/routers/config.py +8 -7
  9. agent_server/routers/langchain_agent.py +97 -79
  10. hdsp_agent_core/managers/config_manager.py +37 -87
  11. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/build_log.json +1 -1
  12. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/package.json +2 -2
  13. hdsp_jupyter_extension-2.0.28.data/data/share/jupyter/labextensions/hdsp-agent/static/frontend_styles_index_js.55727265b00191e68d9a.js → hdsp_jupyter_extension-2.0.29.data/data/share/jupyter/labextensions/hdsp-agent/static/frontend_styles_index_js.f2eca2f8fa682eb21f72.js +11 -12
  14. hdsp_jupyter_extension-2.0.29.data/data/share/jupyter/labextensions/hdsp-agent/static/frontend_styles_index_js.f2eca2f8fa682eb21f72.js.map +1 -0
  15. jupyter_ext/labextension/static/lib_index_js.df05d90f366bfd5fa023.js → hdsp_jupyter_extension-2.0.29.data/data/share/jupyter/labextensions/hdsp-agent/static/lib_index_js.cc0a7158a5e3de7f22f7.js +125 -949
  16. hdsp_jupyter_extension-2.0.29.data/data/share/jupyter/labextensions/hdsp-agent/static/lib_index_js.cc0a7158a5e3de7f22f7.js.map +1 -0
  17. hdsp_jupyter_extension-2.0.28.data/data/share/jupyter/labextensions/hdsp-agent/static/remoteEntry.08fce819ee32e9d25175.js → hdsp_jupyter_extension-2.0.29.data/data/share/jupyter/labextensions/hdsp-agent/static/remoteEntry.bfff374b5cc6a57e16d2.js +3 -3
  18. jupyter_ext/labextension/static/remoteEntry.08fce819ee32e9d25175.js.map → hdsp_jupyter_extension-2.0.29.data/data/share/jupyter/labextensions/hdsp-agent/static/remoteEntry.bfff374b5cc6a57e16d2.js.map +1 -1
  19. {hdsp_jupyter_extension-2.0.28.dist-info → hdsp_jupyter_extension-2.0.29.dist-info}/METADATA +1 -1
  20. {hdsp_jupyter_extension-2.0.28.dist-info → hdsp_jupyter_extension-2.0.29.dist-info}/RECORD +50 -48
  21. jupyter_ext/_version.py +1 -1
  22. jupyter_ext/labextension/build_log.json +1 -1
  23. jupyter_ext/labextension/package.json +2 -2
  24. jupyter_ext/labextension/static/{frontend_styles_index_js.55727265b00191e68d9a.js → frontend_styles_index_js.f2eca2f8fa682eb21f72.js} +11 -12
  25. jupyter_ext/labextension/static/frontend_styles_index_js.f2eca2f8fa682eb21f72.js.map +1 -0
  26. hdsp_jupyter_extension-2.0.28.data/data/share/jupyter/labextensions/hdsp-agent/static/lib_index_js.df05d90f366bfd5fa023.js → jupyter_ext/labextension/static/lib_index_js.cc0a7158a5e3de7f22f7.js +125 -949
  27. jupyter_ext/labextension/static/lib_index_js.cc0a7158a5e3de7f22f7.js.map +1 -0
  28. jupyter_ext/labextension/static/{remoteEntry.08fce819ee32e9d25175.js → remoteEntry.bfff374b5cc6a57e16d2.js} +3 -3
  29. hdsp_jupyter_extension-2.0.28.data/data/share/jupyter/labextensions/hdsp-agent/static/remoteEntry.08fce819ee32e9d25175.js.map → jupyter_ext/labextension/static/remoteEntry.bfff374b5cc6a57e16d2.js.map +1 -1
  30. hdsp_jupyter_extension-2.0.28.data/data/share/jupyter/labextensions/hdsp-agent/static/frontend_styles_index_js.55727265b00191e68d9a.js.map +0 -1
  31. hdsp_jupyter_extension-2.0.28.data/data/share/jupyter/labextensions/hdsp-agent/static/lib_index_js.df05d90f366bfd5fa023.js.map +0 -1
  32. jupyter_ext/labextension/static/frontend_styles_index_js.55727265b00191e68d9a.js.map +0 -1
  33. jupyter_ext/labextension/static/lib_index_js.df05d90f366bfd5fa023.js.map +0 -1
  34. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/etc/jupyter/jupyter_server_config.d/hdsp_jupyter_extension.json +0 -0
  35. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/install.json +0 -0
  36. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b80.c095373419d05e6f141a.js +0 -0
  37. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b80.c095373419d05e6f141a.js.map +0 -0
  38. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b81.61e75fb98ecff46cf836.js +0 -0
  39. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b81.61e75fb98ecff46cf836.js.map +0 -0
  40. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/style.js +0 -0
  41. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_babel_runtime_helpers_esm_extends_js-node_modules_emotion_serialize_dist-051195.e2553aab0c3963b83dd7.js +0 -0
  42. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_babel_runtime_helpers_esm_extends_js-node_modules_emotion_serialize_dist-051195.e2553aab0c3963b83dd7.js.map +0 -0
  43. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_cache_dist_emotion-cache_browser_development_esm_js.24edcc52a1c014a8a5f0.js +0 -0
  44. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_cache_dist_emotion-cache_browser_development_esm_js.24edcc52a1c014a8a5f0.js.map +0 -0
  45. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_react_dist_emotion-react_browser_development_esm_js.19ecf6babe00caff6b8a.js +0 -0
  46. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_react_dist_emotion-react_browser_development_esm_js.19ecf6babe00caff6b8a.js.map +0 -0
  47. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_styled_dist_emotion-styled_browser_development_esm_js.661fb5836f4978a7c6e1.js +0 -0
  48. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_styled_dist_emotion-styled_browser_development_esm_js.661fb5836f4978a7c6e1.js.map +0 -0
  49. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_index_js.985697e0162d8d088ca2.js +0 -0
  50. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_index_js.985697e0162d8d088ca2.js.map +0 -0
  51. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_utils_createSvgIcon_js.1f5038488cdfd8b3a85d.js +0 -0
  52. {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.29.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_utils_createSvgIcon_js.1f5038488cdfd8b3a85d.js.map +0 -0
  53. {hdsp_jupyter_extension-2.0.28.dist-info → hdsp_jupyter_extension-2.0.29.dist-info}/WHEEL +0 -0
  54. {hdsp_jupyter_extension-2.0.28.dist-info → hdsp_jupyter_extension-2.0.29.dist-info}/licenses/LICENSE +0 -0
@@ -1,7 +1,14 @@
1
1
  """
2
- Configuration Manager - Handle extension settings persistence
2
+ Configuration Manager - Jupyter Client Connection Settings
3
3
 
4
- Singleton manager for configuration persistence across sessions.
4
+ This config manager handles only connection settings for Jupyter clients:
5
+ - agentServerUrl: URL of the Agent Server to connect to
6
+ - embed_agent_server: Whether to run Agent Server in embedded mode
7
+
8
+ All LLM settings (provider, API keys, models, prompts) are managed by
9
+ the Agent Server's ServerConfigManager (~/.hdsp_agent/server_config.json).
10
+
11
+ User preferences (workspaceRoot, autoApprove) are stored in browser localStorage.
5
12
  """
6
13
 
7
14
  import json
@@ -79,51 +86,16 @@ class ConfigManager:
79
86
  return self._default_config()
80
87
 
81
88
  def _default_config(self) -> Dict[str, Any]:
82
- """Get default configuration"""
89
+ """Get default configuration for Jupyter client.
90
+
91
+ NOTE: This config only contains connection settings.
92
+ All LLM settings are managed by the Agent Server (see agent_server/config/server_config.py).
93
+ User preferences (workspaceRoot, autoApprove) are stored in browser localStorage.
94
+ """
83
95
  return {
84
- # Admin Config - LLM Provider Settings
85
- "provider": "gemini",
86
- "gemini": {"apiKey": "", "model": "gemini-2.5-pro"},
87
- "openai": {"apiKey": "", "model": "gpt-4o"},
88
- "vllm": {
89
- "endpoint": "http://localhost:8000",
90
- "apiKey": "",
91
- "model": "meta-llama/Llama-2-7b-chat-hf",
92
- },
93
- # Admin Config - Summarization LLM
94
- "summarization": {
95
- "enabled": False,
96
- "provider": "gemini",
97
- "model": None,
98
- },
99
- # Admin Config - Embedding
100
- "embedding": {
101
- "provider": "openai",
102
- "model": "text-embedding-3-small",
103
- "apiKey": None,
104
- },
105
- # Admin Config - RAG
106
- "rag": {
107
- "qdrantUrl": "http://localhost:6333",
108
- "collectionName": "hdsp_docs",
109
- },
110
- # Admin Config - Agent Server
96
+ # Connection settings
111
97
  "agentServerUrl": "http://localhost:8000",
112
- "agentServerTimeout": 120.0,
113
- # Admin Config - Prompts (None = use defaults)
114
- "prompts": {
115
- "planner": None,
116
- "python_developer": None,
117
- "researcher": None,
118
- "athena_query": None,
119
- },
120
- # Admin Config - Feature Toggles
121
- "useResponsesApi": False,
122
- "idleTimeout": 300,
123
- # User Config
124
- "workspaceRoot": "",
125
- "temperature": 0.7,
126
- "autoApprove": False,
98
+ "embed_agent_server": False, # If True, Jupyter runs embedded Agent Server
127
99
  }
128
100
 
129
101
  def get_config(self) -> Dict[str, Any]:
@@ -170,55 +142,33 @@ class ConfigManager:
170
142
  self._config[key] = value
171
143
  self.save_config(self._config)
172
144
 
145
+ def get_agent_server_url(self) -> str:
146
+ """Get Agent Server URL for connection."""
147
+ return self.get("agentServerUrl", "http://localhost:8000")
148
+
149
+ def is_embedded_mode(self) -> bool:
150
+ """Check if running in embedded mode (Jupyter runs Agent Server)."""
151
+ return self.get("embed_agent_server", False)
152
+
153
+ # Legacy methods for backward compatibility (deprecated)
173
154
  def get_admin_config(self) -> Dict[str, Any]:
174
- """Get admin-related configuration"""
175
- config = self.get_config()
176
- admin_keys = [
177
- "provider",
178
- "gemini",
179
- "openai",
180
- "vllm",
181
- "summarization",
182
- "embedding",
183
- "rag",
184
- "agentServerUrl",
185
- "agentServerTimeout",
186
- "prompts",
187
- "useResponsesApi",
188
- "idleTimeout",
189
- ]
190
- return {k: config.get(k) for k in admin_keys if k in config}
155
+ """DEPRECATED: Admin config is now on Agent Server.
156
+ Use Agent Server's /config/admin API instead."""
157
+ return {"agentServerUrl": self.get_agent_server_url()}
191
158
 
192
159
  def get_user_config(self) -> Dict[str, Any]:
193
- """Get user-related configuration"""
194
- config = self.get_config()
195
- user_keys = ["workspaceRoot", "temperature", "autoApprove"]
196
- return {k: config.get(k) for k in user_keys if k in config}
160
+ """DEPRECATED: User config is now in browser localStorage."""
161
+ return {}
197
162
 
198
163
  def update_admin_config(self, updates: Dict[str, Any]):
199
- """Update only admin-related configuration"""
200
- admin_keys = [
201
- "provider",
202
- "gemini",
203
- "openai",
204
- "vllm",
205
- "summarization",
206
- "embedding",
207
- "rag",
208
- "agentServerUrl",
209
- "agentServerTimeout",
210
- "prompts",
211
- "useResponsesApi",
212
- "idleTimeout",
213
- ]
214
- filtered_updates = {k: v for k, v in updates.items() if k in admin_keys}
215
- self.update_config(filtered_updates)
164
+ """DEPRECATED: Use Agent Server's /config/admin API."""
165
+ # Only allow updating agentServerUrl
166
+ if "agentServerUrl" in updates:
167
+ self.set("agentServerUrl", updates["agentServerUrl"])
216
168
 
217
169
  def update_user_config(self, updates: Dict[str, Any]):
218
- """Update only user-related configuration"""
219
- user_keys = ["workspaceRoot", "temperature", "autoApprove"]
220
- filtered_updates = {k: v for k, v in updates.items() if k in user_keys}
221
- self.update_config(filtered_updates)
170
+ """DEPRECATED: User config is in browser localStorage."""
171
+ pass
222
172
 
223
173
 
224
174
  def get_config_manager() -> ConfigManager:
@@ -722,7 +722,7 @@
722
722
  "@mui/material": {},
723
723
  "react-markdown": {},
724
724
  "hdsp-agent": {
725
- "version": "2.0.28",
725
+ "version": "2.0.29",
726
726
  "singleton": true,
727
727
  "import": "/Users/a421721/Desktop/hdsp/hdsp_agent/extensions/jupyter/lib/index.js"
728
728
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hdsp-agent",
3
- "version": "2.0.28",
3
+ "version": "2.0.29",
4
4
  "description": "HDSP Agent JupyterLab Extension - Thin client for Agent Server",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -132,7 +132,7 @@
132
132
  }
133
133
  },
134
134
  "_build": {
135
- "load": "static/remoteEntry.08fce819ee32e9d25175.js",
135
+ "load": "static/remoteEntry.bfff374b5cc6a57e16d2.js",
136
136
  "extension": "./extension",
137
137
  "style": "./style"
138
138
  }