bohr-agent-sdk 0.1.118__tar.gz → 0.1.120__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 (89) hide show
  1. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/PKG-INFO +1 -1
  2. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/setup.py +1 -1
  3. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/bohr_agent_sdk.egg-info/PKG-INFO +1 -1
  4. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/server/session_manager.py +1 -1
  5. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/websocket-server.py +4 -2
  6. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/server/calculation_mcp_server.py +10 -4
  7. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/README.md +0 -0
  8. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/pyproject.toml +0 -0
  9. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/setup.cfg +0 -0
  10. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/bohr_agent_sdk.egg-info/SOURCES.txt +0 -0
  11. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/bohr_agent_sdk.egg-info/dependency_links.txt +0 -0
  12. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/bohr_agent_sdk.egg-info/entry_points.txt +0 -0
  13. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/bohr_agent_sdk.egg-info/requires.txt +0 -0
  14. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/bohr_agent_sdk.egg-info/top_level.txt +0 -0
  15. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/__init__.py +0 -0
  16. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/__init__.py +0 -0
  17. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/adapter/adk/__init__.py +0 -0
  18. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/adapter/adk/client/__init__.py +0 -0
  19. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/adapter/adk/client/calculation_mcp_tool.py +0 -0
  20. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/adapter/adk/storage_artifact_service.py +0 -0
  21. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/adapter/adk/utils.py +0 -0
  22. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/adapter/camel/__init__.py +0 -0
  23. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/adapter/camel/client/__init__.py +0 -0
  24. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/adapter/camel/client/calculation_mcp_client.py +0 -0
  25. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/__init__.py +0 -0
  26. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/cli.py +0 -0
  27. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/__init__.py +0 -0
  28. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/calculation/simple.py.template +0 -0
  29. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/device/tescan_device.py.template +0 -0
  30. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/main.py.template +0 -0
  31. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/__init__.py +0 -0
  32. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/api/__init__.py +0 -0
  33. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/api/config.py +0 -0
  34. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/api/constants.py +0 -0
  35. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/api/debug.py +0 -0
  36. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/api/files.py +0 -0
  37. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/api/files_upload.py +0 -0
  38. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/api/files_user.py +0 -0
  39. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/api/messages.py +0 -0
  40. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/api/projects.py +0 -0
  41. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/api/sessions.py +0 -0
  42. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/api/utils.py +0 -0
  43. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/api/websocket.py +0 -0
  44. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/config/__init__.py +0 -0
  45. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/config/agent_config.py +0 -0
  46. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/frontend/index.html +0 -0
  47. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/frontend/package.json +0 -0
  48. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/frontend/tsconfig.json +0 -0
  49. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/frontend/tsconfig.node.json +0 -0
  50. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/frontend/ui-static/assets/index-DdAmKhul.js +0 -0
  51. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/frontend/ui-static/assets/index-DfN2raU9.css +0 -0
  52. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/frontend/ui-static/index.html +0 -0
  53. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/frontend/vite.config.ts +0 -0
  54. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/scripts/build_ui.py +0 -0
  55. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/server/__init__.py +0 -0
  56. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/server/app.py +0 -0
  57. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/server/connection.py +0 -0
  58. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/server/file_watcher.py +0 -0
  59. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/server/middleware.py +0 -0
  60. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/server/models.py +0 -0
  61. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/server/user_files.py +0 -0
  62. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/server/utils.py +0 -0
  63. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/test_download.py +0 -0
  64. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cli/templates/ui/ui_utils.py +0 -0
  65. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/client/__init__.py +0 -0
  66. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/client/mcp_client.py +0 -0
  67. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cloud/__init__.py +0 -0
  68. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cloud/main.py +0 -0
  69. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cloud/mcp.py +0 -0
  70. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/cloud/mqtt.py +0 -0
  71. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/device/__init__.py +0 -0
  72. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/device/device/__init__.py +0 -0
  73. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/device/device/device.py +0 -0
  74. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/device/device/types.py +0 -0
  75. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/device/mqtt_device_twin.py +0 -0
  76. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/server/__init__.py +0 -0
  77. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/server/executor/__init__.py +0 -0
  78. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/server/executor/base_executor.py +0 -0
  79. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/server/executor/dispatcher_executor.py +0 -0
  80. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/server/executor/local_executor.py +0 -0
  81. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/server/preprocessor.py +0 -0
  82. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/server/storage/__init__.py +0 -0
  83. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/server/storage/base_storage.py +0 -0
  84. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/server/storage/bohrium_storage.py +0 -0
  85. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/server/storage/http_storage.py +0 -0
  86. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/server/storage/local_storage.py +0 -0
  87. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/server/storage/oss_storage.py +0 -0
  88. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/src/dp/agent/server/utils.py +0 -0
  89. {bohr_agent_sdk-0.1.118 → bohr_agent_sdk-0.1.120}/tests/test_cli.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bohr-agent-sdk
3
- Version: 0.1.118
3
+ Version: 0.1.120
4
4
  Summary: SDK for scientific agents
5
5
  Home-page: https://github.com/dptech-corp/bohr-agent-sdk/
6
6
  Author: DP Technology
@@ -9,7 +9,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
9
9
 
10
10
  setup(
11
11
  name="bohr-agent-sdk",
12
- version="0.1.118",
12
+ version="0.1.120",
13
13
  description="SDK for science agent and mcp tools",
14
14
  long_description=long_description,
15
15
  long_description_content_type="text/markdown",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bohr-agent-sdk
3
- Version: 0.1.118
3
+ Version: 0.1.120
4
4
  Summary: SDK for scientific agents
5
5
  Home-page: https://github.com/dptech-corp/bohr-agent-sdk/
6
6
  Author: DP Technology
@@ -632,7 +632,7 @@ class SessionManager:
632
632
  ):
633
633
  """Process message stream - using ADK native event handling"""
634
634
  streaming_text = "" # Accumulate streaming text
635
-
635
+
636
636
  # Run Runner
637
637
  async for event in runner.run_async(
638
638
  new_message=content,
@@ -48,11 +48,13 @@ if __name__ == "__main__":
48
48
 
49
49
  # uvicorn 始终监听 0.0.0.0 以支持所有配置的主机
50
50
  uvicorn.run(
51
- app,
52
- host="0.0.0.0",
51
+ app,
52
+ host="0.0.0.0",
53
53
  port=port,
54
54
  log_level="info", # 使用 info 级别,过滤掉 warning
55
55
  access_log=False, # 禁用访问日志,减少噪音
56
+ ws_ping_interval=20, # Send WebSocket ping every 20s to keep connection alive
57
+ ws_ping_timeout=30, # Disconnect if no pong received within 30s
56
58
  # 添加自定义的日志配置
57
59
  log_config={
58
60
  "version": 1,
@@ -26,6 +26,7 @@ from .executor import executor_dict
26
26
  from .storage import storage_dict
27
27
  from .utils import get_logger, JobResult, Tool
28
28
  logger = get_logger(__name__)
29
+ CALCULATION_MCP_WORKDIR = os.getenv("CALCULATION_MCP_WORKDIR", os.getcwd())
29
30
 
30
31
 
31
32
  def parse_uri(uri):
@@ -58,6 +59,7 @@ def init_executor(executor_config: Optional[dict] = None):
58
59
  @contextmanager
59
60
  def set_directory(workdir: str):
60
61
  cwd = os.getcwd()
62
+ workdir = os.path.join(CALCULATION_MCP_WORKDIR, workdir)
61
63
  os.makedirs(workdir, exist_ok=True)
62
64
  try:
63
65
  os.chdir(workdir)
@@ -130,13 +132,15 @@ def handle_input_artifacts(fn, kwargs, storage):
130
132
  kwargs.get(name) is not None):
131
133
  uris = kwargs[name]
132
134
  new_paths = []
133
- for uri in uris:
135
+ for i, uri in enumerate(uris):
134
136
  scheme, key = parse_uri(uri)
135
137
  if scheme == storage_type:
136
138
  s = storage
137
139
  else:
138
140
  s = storage_dict[scheme]()
139
- path = s.download(key, "inputs/%s" % name)
141
+ dest_dir = Path("inputs") / name / f"item_{i:03d}"
142
+ dest_dir.mkdir(parents=True, exist_ok=True)
143
+ path = s.download(key, str(dest_dir))
140
144
  new_paths.append(Path(path))
141
145
  logger.info("Artifact %s downloaded to %s" % (
142
146
  uri, path))
@@ -172,13 +176,15 @@ def handle_input_artifacts(fn, kwargs, storage):
172
176
  new_paths_dict = {}
173
177
  for key_name, uris in uris_dict.items():
174
178
  new_paths = []
175
- for uri in uris:
179
+ for i, uri in enumerate(uris):
176
180
  scheme, key = parse_uri(uri)
177
181
  if scheme == storage_type:
178
182
  s = storage
179
183
  else:
180
184
  s = storage_dict[scheme]()
181
- path = s.download(key, f"inputs/{name}/{key_name}")
185
+ dest_dir = Path("inputs") / name / key_name / f"item_{i:03d}"
186
+ dest_dir.mkdir(parents=True, exist_ok=True)
187
+ path = s.download(key, str(dest_dir))
182
188
  new_paths.append(Path(path))
183
189
  logger.info("Artifact %s (key=%s) downloaded to %s" % (
184
190
  uri, key_name, path))