databricks-agentbricks 0.4.0__tar.gz → 0.5.0__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 (195) hide show
  1. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/PKG-INFO +45 -16
  2. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/README.md +44 -15
  3. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/pyproject.toml +1 -1
  4. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/app.py +5 -5
  5. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/auth.py +1 -1
  6. databricks_agentbricks-0.5.0/src/databricks_agentbricks/cli/deploy.py +243 -0
  7. databricks_agentbricks-0.5.0/src/databricks_agentbricks/cli/dev.py +111 -0
  8. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/doctor.py +1 -1
  9. databricks_agentbricks-0.5.0/src/databricks_agentbricks/cli/endpoint.py +81 -0
  10. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/init.py +5 -5
  11. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/mcp.py +2 -2
  12. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/memory.py +18 -9
  13. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/pipeline.py +35 -8
  14. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/sandbox.py +15 -51
  15. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/sessions.py +18 -9
  16. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/tools.py +6 -6
  17. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/tracing.py +21 -195
  18. databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/__init__.py +1 -0
  19. databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/api_client_provider.py +36 -0
  20. databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/apps_client.py +645 -0
  21. databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/app_auth.py → databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/apps_user_auth_client.py +85 -40
  22. databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/conversation_store_client.py +202 -0
  23. databricks_agentbricks-0.4.0/src/databricks_agentbricks/legacy_lakebase_runtime_store.py → databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/legacy_runtime_store.py +38 -2
  24. databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/tracing_client.py +235 -0
  25. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/errors.py +1 -1
  26. databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation/__init__.py +1 -0
  27. databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation/deploy.py +238 -0
  28. databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation/dev.py +98 -0
  29. databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation/endpoint.py +81 -0
  30. databricks_agentbricks-0.4.0/src/databricks_agentbricks/_group.py → databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation/group.py +2 -1
  31. {databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli → databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation}/help.py +10 -5
  32. {databricks_agentbricks-0.4.0/src/databricks_agentbricks → databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation}/render.py +1 -1
  33. databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation/reporter.py +29 -0
  34. databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation/tracing.py +17 -0
  35. databricks_agentbricks-0.5.0/src/databricks_agentbricks/projects/__init__.py +1 -0
  36. {databricks_agentbricks-0.4.0/src/databricks_agentbricks → databricks_agentbricks-0.5.0/src/databricks_agentbricks/projects}/agent_project.py +23 -22
  37. databricks_agentbricks-0.5.0/src/databricks_agentbricks/projects/app_manifest.py +131 -0
  38. databricks_agentbricks-0.4.0/src/databricks_agentbricks/project_config.py → databricks_agentbricks-0.5.0/src/databricks_agentbricks/projects/config.py +1 -1
  39. databricks_agentbricks-0.5.0/src/databricks_agentbricks/projects/resolver.py +56 -0
  40. databricks_agentbricks-0.5.0/src/databricks_agentbricks/reporting.py +36 -0
  41. databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/__init__.py +4 -0
  42. databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/deploy_service.py +426 -0
  43. databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/deployment/__init__.py +5 -0
  44. databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/deployment/config.py +54 -0
  45. databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/deployment/names.py +44 -0
  46. databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/deployment/provisioners.py +589 -0
  47. {databricks_agentbricks-0.4.0/src/databricks_agentbricks → databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/deployment}/tool_access.py +30 -24
  48. databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/deployment/tool_access_provisioner.py +49 -0
  49. databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/dev_service.py +231 -0
  50. databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/invoke/__init__.py +1 -0
  51. databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/invoke/auth.py +32 -0
  52. databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/endpoint_request.py → databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/invoke/request.py +2 -2
  53. databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/endpoint_transport.py → databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/invoke/transport.py +6 -3
  54. databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/invoke_service.py +138 -0
  55. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/pyproject.toml +1 -1
  56. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/pyproject.toml +1 -1
  57. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/runtime/adapter.py +3 -1
  58. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/tests/test_agent.py +18 -0
  59. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/pyproject.toml +1 -1
  60. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/pyproject.toml +1 -1
  61. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/CHAT_APP.md +9 -4
  62. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/runtime/ui.py +4 -13
  63. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/tests/test_demo_ui.py +6 -6
  64. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/app.js +80 -58
  65. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/index.html +7 -6
  66. databricks_agentbricks-0.5.0/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/markdown-it-15.0.2.min.js +39 -0
  67. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/styles.css +21 -1
  68. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/CHAT_APP.md +9 -4
  69. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/runtime/ui.py +3 -10
  70. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/tests/test_demo_ui.py +4 -4
  71. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/app.js +78 -18
  72. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/index.html +7 -6
  73. databricks_agentbricks-0.5.0/src/databricks_agentbricks/templates/ui/agent-openai/ui/markdown-it-15.0.2.min.js +39 -0
  74. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/styles.css +21 -1
  75. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/_api_client.py +36 -7
  76. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/app.py +36 -14
  77. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/tool_manifest.py +14 -2
  78. databricks_agentbricks-0.4.0/src/databricks_agentbricks/app_resources.py +0 -395
  79. databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/deploy.py +0 -1039
  80. databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/dev.py +0 -310
  81. databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/endpoint.py +0 -150
  82. databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/endpoint_examples.py +0 -33
  83. databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/endpoint_output.py +0 -53
  84. databricks_agentbricks-0.4.0/src/databricks_agentbricks/trace_tables.py +0 -36
  85. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/.gitignore +0 -0
  86. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/NOTICE +0 -0
  87. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/__init__.py +0 -0
  88. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/__init__.py +0 -0
  89. {databricks_agentbricks-0.4.0/src/databricks_agentbricks → databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients}/databricks_cli.py +0 -0
  90. /databricks_agentbricks-0.4.0/src/databricks_agentbricks/lakebase_runtime_store.py → /databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/managed_runtime_store.py +0 -0
  91. {databricks_agentbricks-0.4.0/src/databricks_agentbricks → databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation}/theme.py +0 -0
  92. /databricks_agentbricks-0.4.0/src/databricks_agentbricks/project_types.py → /databricks_agentbricks-0.5.0/src/databricks_agentbricks/projects/types.py +0 -0
  93. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/py.typed +0 -0
  94. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-bricks-migrate/SKILL.md +0 -0
  95. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/.env.example +0 -0
  96. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/.gitignore +0 -0
  97. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/AGENTKIT_CONTRACT.md +0 -0
  98. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/AGENTS.md +0 -0
  99. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/CLAUDE.md +0 -0
  100. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/README.md +0 -0
  101. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/__init__.py +0 -0
  102. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/agent.py +0 -0
  103. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/mcps.py +0 -0
  104. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/tools/__init__.py +0 -0
  105. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/tools/sample_tool.py +0 -0
  106. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/tools/send_message.py +0 -0
  107. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/app.yaml +0 -0
  108. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/runtime/__init__.py +0 -0
  109. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/runtime/adapter.py +0 -0
  110. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/runtime/main.py +0 -0
  111. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/__init__.py +0 -0
  112. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/test_agent.py +0 -0
  113. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/test_runtime.py +0 -0
  114. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/test_workspace.py +0 -0
  115. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/.env.example +0 -0
  116. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/.gitignore +0 -0
  117. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/AGENTKIT_CONTRACT.md +0 -0
  118. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/AGENTS.md +0 -0
  119. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/CLAUDE.md +0 -0
  120. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/README.md +0 -0
  121. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/agent/__init__.py +0 -0
  122. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/agent/agent.py +0 -0
  123. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/agent/mcps.py +0 -0
  124. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/agent/tools/__init__.py +0 -0
  125. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/agent/tools/sample_tool.py +0 -0
  126. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/agent/tools/send_message.py +0 -0
  127. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/app.yaml +0 -0
  128. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/runtime/__init__.py +0 -0
  129. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/runtime/main.py +0 -0
  130. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/tests/__init__.py +0 -0
  131. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/tests/test_runtime.py +0 -0
  132. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/tests/test_workspace.py +0 -0
  133. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/.env.example +0 -0
  134. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/.gitignore +0 -0
  135. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/README.md +0 -0
  136. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/agent/__init__.py +0 -0
  137. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/agent/agent.py +0 -0
  138. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/app.yaml +0 -0
  139. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/runtime/__init__.py +0 -0
  140. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/runtime/main.py +0 -0
  141. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/tests/test_runtime.py +0 -0
  142. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/.env.example +0 -0
  143. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/.gitignore +0 -0
  144. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/README.md +0 -0
  145. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/agent/__init__.py +0 -0
  146. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/agent/agent.py +0 -0
  147. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/app.yaml +0 -0
  148. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/runtime/__init__.py +0 -0
  149. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/runtime/main.py +0 -0
  150. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/tests/test_runtime.py +0 -0
  151. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/sandbox_mcp.py +0 -0
  152. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/sandbox_mcp_langgraph.py +0 -0
  153. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/runtime/main.py +0 -0
  154. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/agentbricks-mark.png +0 -0
  155. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/runtime/main.py +0 -0
  156. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/agentbricks-mark.png +0 -0
  157. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/__init__.py +0 -0
  158. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/_pagination.py +0 -0
  159. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/client.py +0 -0
  160. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/langgraph/__init__.py +0 -0
  161. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/langgraph/genie.py +0 -0
  162. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/langgraph/mcp.py +0 -0
  163. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/langgraph/memory.py +0 -0
  164. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/langgraph/responses.py +0 -0
  165. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/langgraph/session_store.py +0 -0
  166. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/memory_store.py +0 -0
  167. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/models.py +0 -0
  168. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/openai/__init__.py +0 -0
  169. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/openai/genie.py +0 -0
  170. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/openai/mcp.py +0 -0
  171. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/openai/memory.py +0 -0
  172. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/openai/sessions.py +0 -0
  173. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/py.typed +0 -0
  174. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/ARCHITECTURE.md +0 -0
  175. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/README.md +0 -0
  176. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/__init__.py +0 -0
  177. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/auth.py +0 -0
  178. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/durability/__init__.py +0 -0
  179. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/durability/execution.py +0 -0
  180. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/durability/heartbeat.py +0 -0
  181. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/durability/lakebase_runtime_store.py +0 -0
  182. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/durability/recovery.py +0 -0
  183. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/durability/store.py +0 -0
  184. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/execution.py +0 -0
  185. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/genie.py +0 -0
  186. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/mcp_auth.py +0 -0
  187. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/model_services.py +0 -0
  188. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/runtime.py +0 -0
  189. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/session_store_client.py +0 -0
  190. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/store.py +0 -0
  191. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/tracing.py +0 -0
  192. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/types.py +0 -0
  193. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/workspace.py +0 -0
  194. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/session_store.py +0 -0
  195. {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/timefmt.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: databricks-agentbricks
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: Agent Bricks CLI and AgentKit SDK for custom agents on Databricks
5
5
  Author-email: Databricks <agent-feedback@databricks.com>
6
6
  License-File: NOTICE
@@ -103,19 +103,16 @@ The two ways to run an agent:
103
103
 
104
104
  ## Installation
105
105
 
106
- From PyPI:
107
-
108
106
  The `databricks-agentbricks` Python distribution installs the `agentbricks` command and AgentKit.
109
107
 
110
108
  ```sh
111
109
  pip install databricks-agentbricks
112
110
  ```
113
111
 
114
- From source:
115
-
116
- ```sh
117
- pip install 'git+https://github.com/databricks/databricks-ai-bridge.git#subdirectory=integrations/agentbricks'
118
- ```
112
+ Install from PyPI rather than from this repository. Templates on `main` can depend on SDK changes that
113
+ are not yet released, while generated projects install the released SDK from PyPI, so a CLI installed
114
+ from source can scaffold projects that fail to start. To work on Agent Bricks itself, see
115
+ [CONTRIBUTING.md](CONTRIBUTING.md).
119
116
 
120
117
  The base package includes the CLI, store SDK, and `DurableAgentServer` HTTP runtime. Generated projects
121
118
  declare their framework dependencies automatically.
@@ -153,7 +150,7 @@ The shortest path from a blank directory to a running and deployed agent:
153
150
 
154
151
  ```sh
155
152
  agentbricks login --profile <profile>
156
- agentbricks init my-agent
153
+ agentbricks init my-agent # Defaults to LangGraph; add --framework=openai for OpenAI Agents SDK
157
154
  cd my-agent
158
155
  agentbricks dev # run locally
159
156
  agentbricks deploy my-agent # deploy to Databricks
@@ -180,6 +177,28 @@ it an HTTP request. MLflow tracing is on by default (`agentbricks init` binds a
180
177
  `.agentbricks/` and `agentbricks deploy` to the bound workspace experiment; `agentbricks tracing list` shows the
181
178
  available traces.
182
179
 
180
+ ## Inspect and clean up a project
181
+
182
+ Read `agent.toml` for the recorded agent name, declared memory/session stores, tracing, and tool
183
+ bindings. A declaration does not confirm that the resource exists or that the deployed app can use it.
184
+
185
+ | Inspect | Command | Details |
186
+ | --- | --- | --- |
187
+ | Local onboarding checks | `agentbricks doctor .` | Offline; does not verify bindings or deployed resources. |
188
+ | Agent Bricks apps in a workspace | `agentbricks -p <profile> deployments list` | Lists apps with the `agent-bricks-` prefix in the selected workspace, including other projects. |
189
+ | App status and URL | `agentbricks -p <profile> deployments get agent-bricks-<name>` | Queries the selected workspace for the named app. |
190
+ | Memory store IDs and details | `agentbricks -p <profile> memory stores list`, then `agentbricks -p <profile> memory stores get <resource-name>` | Workspace-wide; can include other projects' stores. Use the ID or resource name, not the display name. |
191
+ | Session store names and details | `agentbricks -p <profile> sessions stores list`, then `agentbricks -p <profile> sessions stores get <name>` | Workspace-wide; can include other projects' stores. Use the store name. |
192
+
193
+ Review each confirmation. Delete a store only after confirming that you own it and no other agent
194
+ needs it, using the same profile and identifier used to inspect it.
195
+
196
+ | Clean up | Command | Details |
197
+ | --- | --- | --- |
198
+ | Deployment | `agentbricks -p <profile> deployments delete agent-bricks-<name>` | Managed Runtime Store cleanup checks the app identity and runs before app deletion; a cleanup failure retains the app for retry. Memory/session stores, tracing experiments, tools, and source files are retained. |
199
+ | [Memory store](cli.md#agentbricks-memory-stores-delete) | `agentbricks -p <profile> memory stores delete <resource-name>` | Soft-deletes the store after confirmation. |
200
+ | [Session store](cli.md#agentbricks-sessions-stores-delete) | `agentbricks -p <profile> sessions stores delete <name>` | Deletes the store after confirmation. |
201
+
183
202
  ## Public names
184
203
 
185
204
  Use `agentbricks` for the CLI and `AgentKitClient` from `databricks_agentkit` for the Python SDK. New
@@ -460,6 +479,10 @@ agentbricks deploy my-agent
460
479
  ```
461
480
 
462
481
  Memory and session stores are independent resources: deleting one never affects the other.
482
+ For projects with `agent.toml`, unbinding either store removes its declaration; the next deploy
483
+ removes the corresponding `AGENT_MEMORY_STORE` or `AGENT_SESSION_STORE` entry from `app.yaml`.
484
+ Unbinding does not delete the store or revoke an existing grant to the App's service principal.
485
+ If access must be revoked, coordinate that separately with the store owner or workspace admin.
463
486
 
464
487
  ## Commands
465
488
 
@@ -624,7 +647,7 @@ add` updates only this file; direct TOML edits have the same behavior. Both mana
624
647
  adapters read the managed bindings at runtime without generating or patching agent source:
625
648
 
626
649
  ```sh
627
- agentbricks tools add sandbox --scope table:samples.nyctaxi.trips
650
+ agentbricks tools add sandbox --scope volume:main.data.files
628
651
  agentbricks tools add mcp system.ai.web_search
629
652
  agentbricks tools add uc-function catalog.schema.lookup_ticket
630
653
  agentbricks tools add genie-one
@@ -662,9 +685,7 @@ user's permissions instead of the App service principal.
662
685
  | --- | --- |
663
686
  | UC function | Apps `uc_securable`: `FUNCTION` / `EXECUTE` |
664
687
  | Genie Agent space | Apps `genie_space`: `CAN_RUN` |
665
- | Sandbox table scope | Apps `uc_securable`: `TABLE` / `SELECT` or `MODIFY` |
666
688
  | Sandbox volume scope | Apps `uc_securable`: `VOLUME` / `READ_VOLUME` or `WRITE_VOLUME` |
667
- | Sandbox Workspace path | Workspace ACL: `CAN_READ` or `CAN_EDIT` |
668
689
  | External MCP service | Unity Catalog: effective `EXECUTE` plus `USE_SCHEMA` and `USE_CATALOG` on its named parents |
669
690
  | Built-in `system.ai` MCP service, including Sandbox and Genie One | Platform-managed access defaults; Agent Bricks does not mutate system securables |
670
691
 
@@ -673,7 +694,7 @@ grant. Use a Genie Agent binding when the App identity should be scoped to one e
673
694
 
674
695
  Apps-backed tool resources are named deterministically and reconciled to the manifest on each
675
696
  deploy: removing a binding removes that Agent Bricks-owned Apps resource while preserving Runtime
676
- Store, tracing, and user-owned resources. MCP and Workspace ACL grants are additive in this release
697
+ Store, tracing, and user-owned resources. MCP grants are additive in this release
677
698
  because their permission APIs do not expose trustworthy Agent Bricks ownership metadata; removing
678
699
  those bindings does not revoke an independently valid grant.
679
700
 
@@ -882,8 +903,8 @@ If a manifest with `server = "agentbricks"` contains `source = { kind = "python"
882
903
  `[[tools]]` entry; the decorated tool in `agent/tools/` remains active. `agentbricks dev` and `agentbricks deploy`
883
904
  do not generate or patch Python tool code, and do not alter the manifest's `[[tools]]` bindings.
884
905
 
885
- Sandbox scopes default to read-only access. Repeat `--scope` to allow more than one resource, use
886
- `volume:` or `workspace:` for those resource types, and use `--permission read_write` only when the
906
+ Sandbox scopes support volumes only and default to read-only access. Repeat `--scope` to allow more
907
+ than one volume, use `volume:catalog.schema.volume`, and use `--permission read_write` only when the
887
908
  agent needs writes. Every sandbox call carries this fixed downscope in MCP `_meta`, outside the tool
888
909
  arguments controlled by the model. New sandbox bindings also expose the selected Databricks
889
910
  credential to sandbox code by default:
@@ -893,9 +914,17 @@ credential to sandbox code by default:
893
914
  id = "sandbox"
894
915
  auth = "user"
895
916
  source = { kind = "sandbox", service = "system.ai.sandbox" }
896
- policy = { downscope = [{ resource = "workspace:/Workspace/Shared", permission = "read_only" }], databricks_access_token_included = true }
917
+ policy = { downscope = [{ resource = "volume:main.data.files", permission = "read_only" }], databricks_access_token_included = true }
897
918
  ```
898
919
 
920
+ Table sandbox scopes are not supported yet because Databricks Connect does not support table
921
+ downscoping. Workspace sandbox scopes are also not supported yet; they have not been validated
922
+ against a live workspace. Use a volume instead. Existing `table:` and `workspace:` entries must be
923
+ removed from `agent.toml` before using `agentbricks dev` or `agentbricks deploy`.
924
+
925
+ The table implementation is retained behind a disabled code-level gate so it can be enabled when
926
+ Databricks Connect supports table downscoping. There is no CLI option to bypass that gate.
927
+
899
928
  With `databricks_access_token_included = true`, the sandbox receives `DATABRICKS_HOST`, a short-lived
900
929
  `DATABRICKS_TOKEN`, and `DATABRICKS_AUTH_TYPE`, so code such as
901
930
  `WorkspaceClient().current_user.me()` can call workspace APIs. This policy does not choose the
@@ -67,19 +67,16 @@ The two ways to run an agent:
67
67
 
68
68
  ## Installation
69
69
 
70
- From PyPI:
71
-
72
70
  The `databricks-agentbricks` Python distribution installs the `agentbricks` command and AgentKit.
73
71
 
74
72
  ```sh
75
73
  pip install databricks-agentbricks
76
74
  ```
77
75
 
78
- From source:
79
-
80
- ```sh
81
- pip install 'git+https://github.com/databricks/databricks-ai-bridge.git#subdirectory=integrations/agentbricks'
82
- ```
76
+ Install from PyPI rather than from this repository. Templates on `main` can depend on SDK changes that
77
+ are not yet released, while generated projects install the released SDK from PyPI, so a CLI installed
78
+ from source can scaffold projects that fail to start. To work on Agent Bricks itself, see
79
+ [CONTRIBUTING.md](CONTRIBUTING.md).
83
80
 
84
81
  The base package includes the CLI, store SDK, and `DurableAgentServer` HTTP runtime. Generated projects
85
82
  declare their framework dependencies automatically.
@@ -117,7 +114,7 @@ The shortest path from a blank directory to a running and deployed agent:
117
114
 
118
115
  ```sh
119
116
  agentbricks login --profile <profile>
120
- agentbricks init my-agent
117
+ agentbricks init my-agent # Defaults to LangGraph; add --framework=openai for OpenAI Agents SDK
121
118
  cd my-agent
122
119
  agentbricks dev # run locally
123
120
  agentbricks deploy my-agent # deploy to Databricks
@@ -144,6 +141,28 @@ it an HTTP request. MLflow tracing is on by default (`agentbricks init` binds a
144
141
  `.agentbricks/` and `agentbricks deploy` to the bound workspace experiment; `agentbricks tracing list` shows the
145
142
  available traces.
146
143
 
144
+ ## Inspect and clean up a project
145
+
146
+ Read `agent.toml` for the recorded agent name, declared memory/session stores, tracing, and tool
147
+ bindings. A declaration does not confirm that the resource exists or that the deployed app can use it.
148
+
149
+ | Inspect | Command | Details |
150
+ | --- | --- | --- |
151
+ | Local onboarding checks | `agentbricks doctor .` | Offline; does not verify bindings or deployed resources. |
152
+ | Agent Bricks apps in a workspace | `agentbricks -p <profile> deployments list` | Lists apps with the `agent-bricks-` prefix in the selected workspace, including other projects. |
153
+ | App status and URL | `agentbricks -p <profile> deployments get agent-bricks-<name>` | Queries the selected workspace for the named app. |
154
+ | Memory store IDs and details | `agentbricks -p <profile> memory stores list`, then `agentbricks -p <profile> memory stores get <resource-name>` | Workspace-wide; can include other projects' stores. Use the ID or resource name, not the display name. |
155
+ | Session store names and details | `agentbricks -p <profile> sessions stores list`, then `agentbricks -p <profile> sessions stores get <name>` | Workspace-wide; can include other projects' stores. Use the store name. |
156
+
157
+ Review each confirmation. Delete a store only after confirming that you own it and no other agent
158
+ needs it, using the same profile and identifier used to inspect it.
159
+
160
+ | Clean up | Command | Details |
161
+ | --- | --- | --- |
162
+ | Deployment | `agentbricks -p <profile> deployments delete agent-bricks-<name>` | Managed Runtime Store cleanup checks the app identity and runs before app deletion; a cleanup failure retains the app for retry. Memory/session stores, tracing experiments, tools, and source files are retained. |
163
+ | [Memory store](cli.md#agentbricks-memory-stores-delete) | `agentbricks -p <profile> memory stores delete <resource-name>` | Soft-deletes the store after confirmation. |
164
+ | [Session store](cli.md#agentbricks-sessions-stores-delete) | `agentbricks -p <profile> sessions stores delete <name>` | Deletes the store after confirmation. |
165
+
147
166
  ## Public names
148
167
 
149
168
  Use `agentbricks` for the CLI and `AgentKitClient` from `databricks_agentkit` for the Python SDK. New
@@ -424,6 +443,10 @@ agentbricks deploy my-agent
424
443
  ```
425
444
 
426
445
  Memory and session stores are independent resources: deleting one never affects the other.
446
+ For projects with `agent.toml`, unbinding either store removes its declaration; the next deploy
447
+ removes the corresponding `AGENT_MEMORY_STORE` or `AGENT_SESSION_STORE` entry from `app.yaml`.
448
+ Unbinding does not delete the store or revoke an existing grant to the App's service principal.
449
+ If access must be revoked, coordinate that separately with the store owner or workspace admin.
427
450
 
428
451
  ## Commands
429
452
 
@@ -588,7 +611,7 @@ add` updates only this file; direct TOML edits have the same behavior. Both mana
588
611
  adapters read the managed bindings at runtime without generating or patching agent source:
589
612
 
590
613
  ```sh
591
- agentbricks tools add sandbox --scope table:samples.nyctaxi.trips
614
+ agentbricks tools add sandbox --scope volume:main.data.files
592
615
  agentbricks tools add mcp system.ai.web_search
593
616
  agentbricks tools add uc-function catalog.schema.lookup_ticket
594
617
  agentbricks tools add genie-one
@@ -626,9 +649,7 @@ user's permissions instead of the App service principal.
626
649
  | --- | --- |
627
650
  | UC function | Apps `uc_securable`: `FUNCTION` / `EXECUTE` |
628
651
  | Genie Agent space | Apps `genie_space`: `CAN_RUN` |
629
- | Sandbox table scope | Apps `uc_securable`: `TABLE` / `SELECT` or `MODIFY` |
630
652
  | Sandbox volume scope | Apps `uc_securable`: `VOLUME` / `READ_VOLUME` or `WRITE_VOLUME` |
631
- | Sandbox Workspace path | Workspace ACL: `CAN_READ` or `CAN_EDIT` |
632
653
  | External MCP service | Unity Catalog: effective `EXECUTE` plus `USE_SCHEMA` and `USE_CATALOG` on its named parents |
633
654
  | Built-in `system.ai` MCP service, including Sandbox and Genie One | Platform-managed access defaults; Agent Bricks does not mutate system securables |
634
655
 
@@ -637,7 +658,7 @@ grant. Use a Genie Agent binding when the App identity should be scoped to one e
637
658
 
638
659
  Apps-backed tool resources are named deterministically and reconciled to the manifest on each
639
660
  deploy: removing a binding removes that Agent Bricks-owned Apps resource while preserving Runtime
640
- Store, tracing, and user-owned resources. MCP and Workspace ACL grants are additive in this release
661
+ Store, tracing, and user-owned resources. MCP grants are additive in this release
641
662
  because their permission APIs do not expose trustworthy Agent Bricks ownership metadata; removing
642
663
  those bindings does not revoke an independently valid grant.
643
664
 
@@ -846,8 +867,8 @@ If a manifest with `server = "agentbricks"` contains `source = { kind = "python"
846
867
  `[[tools]]` entry; the decorated tool in `agent/tools/` remains active. `agentbricks dev` and `agentbricks deploy`
847
868
  do not generate or patch Python tool code, and do not alter the manifest's `[[tools]]` bindings.
848
869
 
849
- Sandbox scopes default to read-only access. Repeat `--scope` to allow more than one resource, use
850
- `volume:` or `workspace:` for those resource types, and use `--permission read_write` only when the
870
+ Sandbox scopes support volumes only and default to read-only access. Repeat `--scope` to allow more
871
+ than one volume, use `volume:catalog.schema.volume`, and use `--permission read_write` only when the
851
872
  agent needs writes. Every sandbox call carries this fixed downscope in MCP `_meta`, outside the tool
852
873
  arguments controlled by the model. New sandbox bindings also expose the selected Databricks
853
874
  credential to sandbox code by default:
@@ -857,9 +878,17 @@ credential to sandbox code by default:
857
878
  id = "sandbox"
858
879
  auth = "user"
859
880
  source = { kind = "sandbox", service = "system.ai.sandbox" }
860
- policy = { downscope = [{ resource = "workspace:/Workspace/Shared", permission = "read_only" }], databricks_access_token_included = true }
881
+ policy = { downscope = [{ resource = "volume:main.data.files", permission = "read_only" }], databricks_access_token_included = true }
861
882
  ```
862
883
 
884
+ Table sandbox scopes are not supported yet because Databricks Connect does not support table
885
+ downscoping. Workspace sandbox scopes are also not supported yet; they have not been validated
886
+ against a live workspace. Use a volume instead. Existing `table:` and `workspace:` entries must be
887
+ removed from `agent.toml` before using `agentbricks dev` or `agentbricks deploy`.
888
+
889
+ The table implementation is retained behind a disabled code-level gate so it can be enabled when
890
+ Databricks Connect supports table downscoping. There is no CLI option to bypass that gate.
891
+
863
892
  With `databricks_access_token_included = true`, the sandbox receives `DATABRICKS_HOST`, a short-lived
864
893
  `DATABRICKS_TOKEN`, and `DATABRICKS_AUTH_TYPE`, so code such as
865
894
  `WorkspaceClient().current_user.me()` can call workspace APIs. This policy does not choose the
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "databricks-agentbricks"
3
- version = "0.4.0"
3
+ version = "0.5.0"
4
4
  description = "Agent Bricks CLI and AgentKit SDK for custom agents on Databricks"
5
5
  authors = [
6
6
  { name="Databricks", email="agent-feedback@databricks.com" },
@@ -16,12 +16,13 @@ from databricks_agentbricks.cli.deploy import deploy, deployments
16
16
  from databricks_agentbricks.cli.dev import dev
17
17
  from databricks_agentbricks.cli.doctor import doctor
18
18
  from databricks_agentbricks.cli.endpoint import endpoint
19
- from databricks_agentbricks.cli.help import configure_help
20
19
  from databricks_agentbricks.cli.init import init
21
20
  from databricks_agentbricks.cli.memory import memory
22
21
  from databricks_agentbricks.cli.sessions import sessions
23
22
  from databricks_agentbricks.cli.tools import tools
24
23
  from databricks_agentbricks.cli.tracing import tracing
24
+ from databricks_agentbricks.clients.api_client_provider import ApiClientProvider
25
+ from databricks_agentbricks.presentation.help import configure_help
25
26
  from databricks_agentkit._api_client import _AgentBricksApiClient
26
27
 
27
28
 
@@ -31,12 +32,11 @@ class CliContext:
31
32
  def __init__(self, profile: Optional[str], output: str):
32
33
  self.profile = profile
33
34
  self.output = output
34
- self._client: Optional[_AgentBricksApiClient] = None
35
+ self.api_client_provider = ApiClientProvider(profile)
35
36
 
36
37
  def client(self) -> _AgentBricksApiClient:
37
- if self._client is None:
38
- self._client = _AgentBricksApiClient(self.profile)
39
- return self._client
38
+ """Compatibility accessor for commands not yet migrated to ``api_client_provider``."""
39
+ return self.api_client_provider.get()
40
40
 
41
41
 
42
42
  @click.group(name="agentbricks", context_settings={"help_option_names": ["-h", "--help"]})
@@ -19,8 +19,8 @@ from typing import Optional
19
19
 
20
20
  import click
21
21
 
22
- from databricks_agentbricks import render
23
22
  from databricks_agentbricks.errors import AgentCliError
23
+ from databricks_agentbricks.presentation import render
24
24
  from databricks_agentkit._api_client import _AgentBricksApiClient
25
25
 
26
26
 
@@ -0,0 +1,243 @@
1
+ """`agentbricks deploy` and the `agentbricks deployments` group — manage agent deployments.
2
+
3
+ `agentbricks deploy` is the integrated entry point: it provisions the memory/session stores
4
+ bound in `agent.toml`, grants the app's service principal access to them, then rolls out
5
+ the deployment. Agent Bricks Runtime deployments receive a persistent Runtime Store; a temporary rollout
6
+ switch chooses between the legacy per-app Lakebase project and the service-managed database.
7
+ `agent.toml` is the CLI's authoring source, resolved here into the `AGENT_MEMORY_STORE` /
8
+ `AGENT_SESSION_STORE` env vars written into `app.yaml` — the runtime reads those, never
9
+ `agent.toml`. `agentbricks deployments` covers the lifecycle verbs
10
+ (`list`/`get`/`logs`/`start`/`stop`/`delete`).
11
+
12
+ Every verb here is a thin adapter: it builds a `DeployService` from the CLI context, handles any
13
+ terminal confirmation, calls one method, and hands the raw result to a presenter. The work itself
14
+ lives in the service and its collaborators,
15
+ including driving the Databricks Apps runtime via the `databricks apps` CLI (an implementation detail
16
+ that is not part of the Agent Bricks CLI surface).
17
+ """
18
+
19
+ from __future__ import annotations
20
+
21
+ import click
22
+
23
+ from databricks_agentbricks.clients.apps_client import AppsClient
24
+ from databricks_agentbricks.clients.apps_user_auth_client import AppsUserAuthClient
25
+ from databricks_agentbricks.clients.conversation_store_client import (
26
+ MemoryStoreClient,
27
+ SessionStoreClient,
28
+ )
29
+ from databricks_agentbricks.clients.databricks_cli import _databricks
30
+ from databricks_agentbricks.clients.tracing_client import TracingClient
31
+ from databricks_agentbricks.presentation import render
32
+ from databricks_agentbricks.presentation.deploy import (
33
+ present_deleted,
34
+ present_deploy_result,
35
+ present_deployment_detail,
36
+ present_deployments_list,
37
+ present_started,
38
+ present_stopped,
39
+ )
40
+ from databricks_agentbricks.presentation.reporter import ClickReporter
41
+ from databricks_agentbricks.projects.resolver import ProjectResolver
42
+ from databricks_agentbricks.services.deploy_service import DeployRequest, DeployService
43
+ from databricks_agentbricks.services.deployment.config import (
44
+ _DEFAULT_PIP_INDEX_URL,
45
+ _USE_MANAGED_RUNTIME_STORE,
46
+ TRACES_EXPERIMENT_ID_ENV, # noqa: F401 - compatibility re-export
47
+ TRACES_TRACKING_URI_ENV, # noqa: F401 - compatibility re-export
48
+ MlflowTracingConfig, # noqa: F401 - compatibility re-export
49
+ mlflow_tracing_config, # noqa: F401 - compatibility re-export
50
+ )
51
+ from databricks_agentbricks.services.deployment.names import (
52
+ DeploymentName,
53
+ _prefixed_name, # noqa: F401 - compatibility re-export
54
+ )
55
+ from databricks_agentbricks.services.deployment.provisioners import (
56
+ AppProvisioner,
57
+ MemoryStoreProvisioner,
58
+ RuntimeStoreProvisioner,
59
+ SessionStoreProvisioner,
60
+ TracingProvisioner,
61
+ )
62
+ from databricks_agentbricks.services.deployment.tool_access_provisioner import ToolAccessProvisioner
63
+
64
+
65
+ def build_deploy_service(obj) -> DeployService:
66
+ """Compose a deployment service for this CLI invocation without opening an API client."""
67
+ api_client_provider = obj.api_client_provider
68
+ apps_client = AppsClient(obj.profile, runner=_databricks)
69
+ apps_user_auth_client = AppsUserAuthClient(obj.profile)
70
+ reporter = ClickReporter()
71
+ return DeployService(
72
+ project_resolver=ProjectResolver(),
73
+ apps_client=apps_client,
74
+ api_client_provider=api_client_provider,
75
+ app_provisioner=AppProvisioner(
76
+ apps_client, api_client_provider, apps_user_auth_client, reporter
77
+ ),
78
+ memory_store_provisioner=MemoryStoreProvisioner(
79
+ MemoryStoreClient(api_client_provider), reporter
80
+ ),
81
+ session_store_provisioner=SessionStoreProvisioner(
82
+ SessionStoreClient(api_client_provider), reporter
83
+ ),
84
+ tracing_provisioner=TracingProvisioner(
85
+ TracingClient(api_client_provider, apps_client, obj.profile), reporter
86
+ ),
87
+ runtime_store_provisioner=RuntimeStoreProvisioner(
88
+ api_client_provider, apps_client, obj.profile, _USE_MANAGED_RUNTIME_STORE, reporter
89
+ ),
90
+ tool_access_provisioner=ToolAccessProvisioner(apps_client, obj.profile, reporter),
91
+ reporter=reporter,
92
+ )
93
+
94
+
95
+ # --- agentbricks deploy -----------------------------------------------------------
96
+
97
+
98
+ @click.command()
99
+ @click.argument("name", required=False)
100
+ @click.option(
101
+ "--source",
102
+ default=".",
103
+ type=click.Path(exists=True, file_okay=False),
104
+ help="Local source directory for the deployment (containing app.yaml). Defaults to the "
105
+ "current directory.",
106
+ )
107
+ @click.option(
108
+ "--pip-index-url",
109
+ default=_DEFAULT_PIP_INDEX_URL,
110
+ show_default=True,
111
+ help="Base URL of the Python Package Index. Defaults to public PyPI.",
112
+ )
113
+ @click.option(
114
+ "--workspace-path",
115
+ default=None,
116
+ help="Workspace destination for the synced source (defaults to a per-user path).",
117
+ )
118
+ @click.option(
119
+ "--instances",
120
+ "instance_count",
121
+ type=click.IntRange(min=1, max=5),
122
+ default=None,
123
+ help="Number of deployment instances.",
124
+ )
125
+ @click.option(
126
+ "--allow-user-scope-update",
127
+ is_flag=True,
128
+ help="Allow Agent Bricks to add missing user API scopes to an existing App from managed-tool "
129
+ "inference and [auth.user] additions. Once added, later deploys do not need this flag.",
130
+ )
131
+ @click.pass_obj
132
+ def deploy(
133
+ obj,
134
+ name,
135
+ source,
136
+ pip_index_url,
137
+ workspace_path,
138
+ instance_count,
139
+ allow_user_scope_update,
140
+ ) -> None:
141
+ """Deploy your agent to Databricks Apps and get back a hosted URL to try it.
142
+
143
+ Rolls the agent out to Databricks Apps and prints the URL where you (or anyone you share it with)
144
+ can use it. The deployed agent reaches Databricks model serving through the AI Gateway using the
145
+ app's own identity — no model keys to configure — and `deploy` also reconciles the stores declared
146
+ in agent.toml and wires in any tracing.
147
+
148
+ NAME is recorded in agent.toml on the first deploy, so a later `agentbricks deploy` from the project
149
+ directory can omit it (passing NAME again updates the recorded name). New apps are named
150
+ `agent-bricks-<name>`. Use the full app name with the `agentbricks deployments` commands.
151
+
152
+ Any memory/session store declared in agent.toml (for example, by `agentbricks memory/sessions bind`)
153
+ is created if it doesn't exist yet; agent.toml itself is never modified for stores.
154
+
155
+ Scaling to multiple instances (--instances) uses best-effort sticky routing, so a browser
156
+ session automatically stays on one instance.
157
+
158
+ \b
159
+ To keep a session on one app replica (sticky routing), API clients must resend a stable
160
+ UUID (for example, their session id) in the X-Routing-Key request header on every request.
161
+ The header is a routing hint only - non-blank, no more than 128 UTF-8 bytes, used verbatim -
162
+ not authentication and not the session id itself (send the session id in the request body):
163
+ X-Routing-Key: <uuid>
164
+ """
165
+ request = DeployRequest(
166
+ name=name,
167
+ source=source,
168
+ pip_index_url=pip_index_url,
169
+ workspace_path=workspace_path,
170
+ instance_count=instance_count,
171
+ allow_user_scope_update=allow_user_scope_update,
172
+ )
173
+ result = build_deploy_service(obj).deploy(request)
174
+ present_deploy_result(result, output=obj.output)
175
+
176
+
177
+ # --- agentbricks deployments <lifecycle> ------------------------------------------
178
+
179
+
180
+ @click.group()
181
+ def deployments() -> None:
182
+ """Inspect and manage deployed agents: list, get, stream logs, start, stop, or delete."""
183
+
184
+
185
+ @deployments.command("list")
186
+ @click.pass_obj
187
+ def deployments_list(obj) -> None:
188
+ """List Agent Bricks deployments (apps named `agent-bricks-*`)."""
189
+ present_deployments_list(build_deploy_service(obj).list_deployments(), output=obj.output)
190
+
191
+
192
+ @deployments.command("get")
193
+ @click.argument("name", type=DeploymentName)
194
+ @click.pass_obj
195
+ def deployments_get(obj, name) -> None:
196
+ """Get an agent deployment's details."""
197
+ present_deployment_detail(build_deploy_service(obj).get(name), name, output=obj.output)
198
+
199
+
200
+ @deployments.command("logs")
201
+ @click.argument("name", type=DeploymentName)
202
+ @click.pass_obj
203
+ def deployments_logs(obj, name) -> None:
204
+ """Stream a deployment's logs."""
205
+ build_deploy_service(obj).logs(name)
206
+
207
+
208
+ @deployments.command("start")
209
+ @click.argument("name", type=DeploymentName)
210
+ @click.pass_obj
211
+ def deployments_start(obj, name) -> None:
212
+ """Start a deployment."""
213
+ build_deploy_service(obj).start(name)
214
+ present_started(name, output=obj.output)
215
+
216
+
217
+ @deployments.command("stop")
218
+ @click.argument("name", type=DeploymentName)
219
+ @click.option("--yes", "-y", is_flag=True, help="Skip the confirmation prompt.")
220
+ @click.pass_obj
221
+ def deployments_stop(obj, name, yes) -> None:
222
+ """Stop a deployment."""
223
+ if not yes:
224
+ click.confirm(
225
+ f"Stop deployment '{name}'? This cannot be undone.", default=False, abort=True
226
+ )
227
+ build_deploy_service(obj).stop(name)
228
+ present_stopped(name, output=obj.output)
229
+
230
+
231
+ @deployments.command("delete")
232
+ @click.argument("name", type=DeploymentName)
233
+ @click.option("--yes", "-y", is_flag=True, help="Skip the confirmation prompt.")
234
+ @click.pass_obj
235
+ def deployments_delete(obj, name, yes) -> None:
236
+ """Delete a deployment and, when managed provisioning is enabled, its Runtime Store."""
237
+ service = build_deploy_service(obj)
238
+ target = f"deployment '{name}'"
239
+ if not yes and service.deletes_runtime_store_data():
240
+ target += " and its Runtime Store data"
241
+ render.confirm_destroy(target, assume_yes=yes)
242
+ service.delete(name)
243
+ present_deleted(name, output=obj.output)