hdsp-jupyter-extension 2.0.28__py3-none-any.whl → 2.0.30__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.
- agent_server/config/__init__.py +5 -0
- agent_server/config/server_config.py +213 -0
- agent_server/core/__init__.py +2 -2
- agent_server/core/llm_service.py +2 -3
- agent_server/main.py +4 -4
- agent_server/routers/agent.py +2 -2
- agent_server/routers/chat.py +31 -28
- agent_server/routers/config.py +8 -7
- agent_server/routers/langchain_agent.py +97 -79
- hdsp_agent_core/managers/config_manager.py +37 -87
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.data}/data/share/jupyter/labextensions/hdsp-agent/build_log.json +1 -1
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.data}/data/share/jupyter/labextensions/hdsp-agent/package.json +2 -2
- 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.30.data/data/share/jupyter/labextensions/hdsp-agent/static/frontend_styles_index_js.f2eca2f8fa682eb21f72.js +11 -12
- hdsp_jupyter_extension-2.0.30.data/data/share/jupyter/labextensions/hdsp-agent/static/frontend_styles_index_js.f2eca2f8fa682eb21f72.js.map +1 -0
- jupyter_ext/labextension/static/lib_index_js.df05d90f366bfd5fa023.js → hdsp_jupyter_extension-2.0.30.data/data/share/jupyter/labextensions/hdsp-agent/static/lib_index_js.cc0a7158a5e3de7f22f7.js +125 -949
- hdsp_jupyter_extension-2.0.30.data/data/share/jupyter/labextensions/hdsp-agent/static/lib_index_js.cc0a7158a5e3de7f22f7.js.map +1 -0
- hdsp_jupyter_extension-2.0.28.data/data/share/jupyter/labextensions/hdsp-agent/static/remoteEntry.08fce819ee32e9d25175.js → hdsp_jupyter_extension-2.0.30.data/data/share/jupyter/labextensions/hdsp-agent/static/remoteEntry.f6cc904a0e9d0d4a9792.js +3 -3
- jupyter_ext/labextension/static/remoteEntry.08fce819ee32e9d25175.js.map → hdsp_jupyter_extension-2.0.30.data/data/share/jupyter/labextensions/hdsp-agent/static/remoteEntry.f6cc904a0e9d0d4a9792.js.map +1 -1
- {hdsp_jupyter_extension-2.0.28.dist-info → hdsp_jupyter_extension-2.0.30.dist-info}/METADATA +1 -1
- {hdsp_jupyter_extension-2.0.28.dist-info → hdsp_jupyter_extension-2.0.30.dist-info}/RECORD +50 -48
- jupyter_ext/_version.py +1 -1
- jupyter_ext/labextension/build_log.json +1 -1
- jupyter_ext/labextension/package.json +2 -2
- jupyter_ext/labextension/static/{frontend_styles_index_js.55727265b00191e68d9a.js → frontend_styles_index_js.f2eca2f8fa682eb21f72.js} +11 -12
- jupyter_ext/labextension/static/frontend_styles_index_js.f2eca2f8fa682eb21f72.js.map +1 -0
- 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
- jupyter_ext/labextension/static/lib_index_js.cc0a7158a5e3de7f22f7.js.map +1 -0
- jupyter_ext/labextension/static/{remoteEntry.08fce819ee32e9d25175.js → remoteEntry.f6cc904a0e9d0d4a9792.js} +3 -3
- hdsp_jupyter_extension-2.0.28.data/data/share/jupyter/labextensions/hdsp-agent/static/remoteEntry.08fce819ee32e9d25175.js.map → jupyter_ext/labextension/static/remoteEntry.f6cc904a0e9d0d4a9792.js.map +1 -1
- hdsp_jupyter_extension-2.0.28.data/data/share/jupyter/labextensions/hdsp-agent/static/frontend_styles_index_js.55727265b00191e68d9a.js.map +0 -1
- hdsp_jupyter_extension-2.0.28.data/data/share/jupyter/labextensions/hdsp-agent/static/lib_index_js.df05d90f366bfd5fa023.js.map +0 -1
- jupyter_ext/labextension/static/frontend_styles_index_js.55727265b00191e68d9a.js.map +0 -1
- jupyter_ext/labextension/static/lib_index_js.df05d90f366bfd5fa023.js.map +0 -1
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.data}/data/etc/jupyter/jupyter_server_config.d/hdsp_jupyter_extension.json +0 -0
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.data}/data/share/jupyter/labextensions/hdsp-agent/install.json +0 -0
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.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
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.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
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.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
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.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
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.data}/data/share/jupyter/labextensions/hdsp-agent/static/style.js +0 -0
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.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
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.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
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_cache_dist_emotion-cache_browser_development_esm_js.24edcc52a1c014a8a5f0.js +0 -0
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.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
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_react_dist_emotion-react_browser_development_esm_js.19ecf6babe00caff6b8a.js +0 -0
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.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
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_styled_dist_emotion-styled_browser_development_esm_js.661fb5836f4978a7c6e1.js +0 -0
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.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
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_index_js.985697e0162d8d088ca2.js +0 -0
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_index_js.985697e0162d8d088ca2.js.map +0 -0
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_utils_createSvgIcon_js.1f5038488cdfd8b3a85d.js +0 -0
- {hdsp_jupyter_extension-2.0.28.data → hdsp_jupyter_extension-2.0.30.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_utils_createSvgIcon_js.1f5038488cdfd8b3a85d.js.map +0 -0
- {hdsp_jupyter_extension-2.0.28.dist-info → hdsp_jupyter_extension-2.0.30.dist-info}/WHEEL +0 -0
- {hdsp_jupyter_extension-2.0.28.dist-info → hdsp_jupyter_extension-2.0.30.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Configuration Manager -
|
|
2
|
+
Configuration Manager - Jupyter Client Connection Settings
|
|
3
3
|
|
|
4
|
-
|
|
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
|
-
#
|
|
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
|
-
"
|
|
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
|
-
"""
|
|
175
|
-
config
|
|
176
|
-
|
|
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
|
-
"""
|
|
194
|
-
|
|
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
|
-
"""
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
"
|
|
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
|
-
"""
|
|
219
|
-
|
|
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:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hdsp-agent",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.30",
|
|
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.
|
|
135
|
+
"load": "static/remoteEntry.f6cc904a0e9d0d4a9792.js",
|
|
136
136
|
"extension": "./extension",
|
|
137
137
|
"style": "./style"
|
|
138
138
|
}
|