bohr-agent-sdk 0.1.116__tar.gz → 0.1.117__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.116 → bohr_agent_sdk-0.1.117}/PKG-INFO +1 -1
  2. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/setup.py +1 -1
  3. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/bohr_agent_sdk.egg-info/PKG-INFO +1 -1
  4. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/server/calculation_mcp_server.py +23 -11
  5. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/README.md +0 -0
  6. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/pyproject.toml +0 -0
  7. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/setup.cfg +0 -0
  8. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/bohr_agent_sdk.egg-info/SOURCES.txt +0 -0
  9. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/bohr_agent_sdk.egg-info/dependency_links.txt +0 -0
  10. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/bohr_agent_sdk.egg-info/entry_points.txt +0 -0
  11. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/bohr_agent_sdk.egg-info/requires.txt +0 -0
  12. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/bohr_agent_sdk.egg-info/top_level.txt +0 -0
  13. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/__init__.py +0 -0
  14. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/__init__.py +0 -0
  15. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/adapter/adk/__init__.py +0 -0
  16. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/adapter/adk/client/__init__.py +0 -0
  17. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/adapter/adk/client/calculation_mcp_tool.py +0 -0
  18. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/adapter/adk/storage_artifact_service.py +0 -0
  19. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/adapter/adk/utils.py +0 -0
  20. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/adapter/camel/__init__.py +0 -0
  21. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/adapter/camel/client/__init__.py +0 -0
  22. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/adapter/camel/client/calculation_mcp_client.py +0 -0
  23. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/__init__.py +0 -0
  24. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/cli.py +0 -0
  25. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/__init__.py +0 -0
  26. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/calculation/simple.py.template +0 -0
  27. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/device/tescan_device.py.template +0 -0
  28. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/main.py.template +0 -0
  29. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/__init__.py +0 -0
  30. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/api/__init__.py +0 -0
  31. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/api/config.py +0 -0
  32. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/api/constants.py +0 -0
  33. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/api/debug.py +0 -0
  34. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/api/files.py +0 -0
  35. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/api/files_upload.py +0 -0
  36. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/api/files_user.py +0 -0
  37. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/api/messages.py +0 -0
  38. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/api/projects.py +0 -0
  39. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/api/sessions.py +0 -0
  40. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/api/utils.py +0 -0
  41. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/api/websocket.py +0 -0
  42. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/config/__init__.py +0 -0
  43. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/config/agent_config.py +0 -0
  44. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/frontend/index.html +0 -0
  45. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/frontend/package.json +0 -0
  46. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/frontend/tsconfig.json +0 -0
  47. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/frontend/tsconfig.node.json +0 -0
  48. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/frontend/ui-static/assets/index-DdAmKhul.js +0 -0
  49. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/frontend/ui-static/assets/index-DfN2raU9.css +0 -0
  50. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/frontend/ui-static/index.html +0 -0
  51. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/frontend/vite.config.ts +0 -0
  52. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/scripts/build_ui.py +0 -0
  53. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/server/__init__.py +0 -0
  54. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/server/app.py +0 -0
  55. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/server/connection.py +0 -0
  56. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/server/file_watcher.py +0 -0
  57. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/server/middleware.py +0 -0
  58. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/server/models.py +0 -0
  59. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/server/session_manager.py +0 -0
  60. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/server/user_files.py +0 -0
  61. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/server/utils.py +0 -0
  62. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/test_download.py +0 -0
  63. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/ui_utils.py +0 -0
  64. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cli/templates/ui/websocket-server.py +0 -0
  65. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/client/__init__.py +0 -0
  66. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/client/mcp_client.py +0 -0
  67. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cloud/__init__.py +0 -0
  68. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cloud/main.py +0 -0
  69. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cloud/mcp.py +0 -0
  70. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/cloud/mqtt.py +0 -0
  71. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/device/__init__.py +0 -0
  72. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/device/device/__init__.py +0 -0
  73. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/device/device/device.py +0 -0
  74. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/device/device/types.py +0 -0
  75. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/device/mqtt_device_twin.py +0 -0
  76. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/server/__init__.py +0 -0
  77. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/server/executor/__init__.py +0 -0
  78. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/server/executor/base_executor.py +0 -0
  79. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/server/executor/dispatcher_executor.py +0 -0
  80. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/server/executor/local_executor.py +0 -0
  81. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/server/preprocessor.py +0 -0
  82. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/server/storage/__init__.py +0 -0
  83. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/server/storage/base_storage.py +0 -0
  84. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/server/storage/bohrium_storage.py +0 -0
  85. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/server/storage/http_storage.py +0 -0
  86. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/server/storage/local_storage.py +0 -0
  87. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/server/storage/oss_storage.py +0 -0
  88. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/src/dp/agent/server/utils.py +0 -0
  89. {bohr_agent_sdk-0.1.116 → bohr_agent_sdk-0.1.117}/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.116
3
+ Version: 0.1.117
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.116",
12
+ version="0.1.117",
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.116
3
+ Version: 0.1.117
4
4
  Summary: SDK for scientific agents
5
5
  Home-page: https://github.com/dptech-corp/bohr-agent-sdk/
6
6
  Author: DP Technology
@@ -371,7 +371,9 @@ class CalculationMCPServer:
371
371
  self.mcp._tool_manager._tools[tool.name] = tool
372
372
  return tool
373
373
 
374
- def tool(self, preprocess_func=None, create_workdir=True):
374
+ def tool(self, preprocess_func=None, create_workdir=None):
375
+ # When create_workdir is None, do not create workdir when fn is async
376
+ # and running locally to avoid chdir conflicts, create otherwise
375
377
  if preprocess_func is None:
376
378
  preprocess_func = self.preprocess_func
377
379
 
@@ -381,11 +383,17 @@ class CalculationMCPServer:
381
383
  **kwargs) -> SubmitResult:
382
384
  trace_id = datetime.today().strftime('%Y-%m-%d-%H:%M:%S.%f')
383
385
  logger.info("Job processing (Trace ID: %s)" % trace_id)
384
- workdir = trace_id if create_workdir else "."
386
+ if preprocess_func is not None:
387
+ executor, storage, kwargs = preprocess_func(
388
+ executor, storage, kwargs)
389
+ executor_type, executor = init_executor(executor)
390
+ if create_workdir is False or (
391
+ create_workdir is None and inspect.iscoroutinefunction(fn)
392
+ and executor_type == "local"):
393
+ workdir = "."
394
+ else:
395
+ workdir = trace_id
385
396
  with set_directory(workdir):
386
- if preprocess_func is not None:
387
- executor, storage, kwargs = preprocess_func(
388
- executor, storage, kwargs)
389
397
  job = {
390
398
  "tool_name": fn.__name__,
391
399
  "executor": executor,
@@ -395,7 +403,6 @@ class CalculationMCPServer:
395
403
  json.dump(job, f, indent=4)
396
404
  kwargs, input_artifacts = handle_input_artifacts(
397
405
  fn, kwargs, storage)
398
- executor_type, executor = init_executor(executor)
399
406
  res = executor.submit(fn, kwargs)
400
407
  exec_id = res["job_id"]
401
408
  job_id = "%s/%s" % (workdir, exec_id)
@@ -417,14 +424,19 @@ class CalculationMCPServer:
417
424
  context = self.mcp.get_context()
418
425
  trace_id = datetime.today().strftime('%Y-%m-%d-%H:%M:%S.%f')
419
426
  logger.info("Job processing (Trace ID: %s)" % trace_id)
420
- workdir = trace_id if create_workdir else "."
427
+ if preprocess_func is not None:
428
+ executor, storage, kwargs = preprocess_func(
429
+ executor, storage, kwargs)
430
+ executor_type, executor = init_executor(executor)
431
+ if create_workdir is False or (
432
+ create_workdir is None and inspect.iscoroutinefunction(fn)
433
+ and executor_type == "local"):
434
+ workdir = "."
435
+ else:
436
+ workdir = trace_id
421
437
  with set_directory(workdir):
422
- if preprocess_func is not None:
423
- executor, storage, kwargs = preprocess_func(
424
- executor, storage, kwargs)
425
438
  kwargs, input_artifacts = handle_input_artifacts(
426
439
  fn, kwargs, storage)
427
- executor_type, executor = init_executor(executor)
428
440
  res = await executor.async_run(
429
441
  fn, kwargs, context, workdir)
430
442
  exec_id = res["job_id"]