robosystems-client 0.1.9__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.

Potentially problematic release.


This version of robosystems-client might be problematic. Click here for more details.

Files changed (301) hide show
  1. robosystems_client-0.1.9/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
  2. robosystems_client-0.1.9/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  3. robosystems_client-0.1.9/.github/workflows/claude.yml +37 -0
  4. robosystems_client-0.1.9/.github/workflows/create-pr.yml +308 -0
  5. robosystems_client-0.1.9/.github/workflows/create-release.yml +123 -0
  6. robosystems_client-0.1.9/.github/workflows/publish.yml +59 -0
  7. robosystems_client-0.1.9/.github/workflows/tag-release.yml +293 -0
  8. robosystems_client-0.1.9/.github/workflows/test.yml +39 -0
  9. robosystems_client-0.1.9/.gitignore +145 -0
  10. robosystems_client-0.1.9/.python-version +1 -0
  11. robosystems_client-0.1.9/.vscode/settings.json +22 -0
  12. robosystems_client-0.1.9/.vscode/tasks.json +178 -0
  13. robosystems_client-0.1.9/PKG-INFO +302 -0
  14. robosystems_client-0.1.9/README.md +253 -0
  15. robosystems_client-0.1.9/bin/create-pr +132 -0
  16. robosystems_client-0.1.9/bin/create-release +73 -0
  17. robosystems_client-0.1.9/justfile +95 -0
  18. robosystems_client-0.1.9/pyproject.toml +67 -0
  19. robosystems_client-0.1.9/pytest.ini +22 -0
  20. robosystems_client-0.1.9/robosystems_client/__init__.py +14 -0
  21. robosystems_client-0.1.9/robosystems_client/api/__init__.py +1 -0
  22. robosystems_client-0.1.9/robosystems_client/api/agent/__init__.py +1 -0
  23. robosystems_client-0.1.9/robosystems_client/api/agent/query_financial_agent.py +423 -0
  24. robosystems_client-0.1.9/robosystems_client/api/auth/__init__.py +1 -0
  25. robosystems_client-0.1.9/robosystems_client/api/auth/check_password_strength.py +172 -0
  26. robosystems_client-0.1.9/robosystems_client/api/auth/complete_sso_auth.py +177 -0
  27. robosystems_client-0.1.9/robosystems_client/api/auth/generate_sso_token.py +174 -0
  28. robosystems_client-0.1.9/robosystems_client/api/auth/get_captcha_config.py +87 -0
  29. robosystems_client-0.1.9/robosystems_client/api/auth/get_current_auth_user.py +220 -0
  30. robosystems_client-0.1.9/robosystems_client/api/auth/get_password_policy.py +134 -0
  31. robosystems_client-0.1.9/robosystems_client/api/auth/login_user.py +181 -0
  32. robosystems_client-0.1.9/robosystems_client/api/auth/logout_user.py +169 -0
  33. robosystems_client-0.1.9/robosystems_client/api/auth/refresh_session.py +174 -0
  34. robosystems_client-0.1.9/robosystems_client/api/auth/register_user.py +189 -0
  35. robosystems_client-0.1.9/robosystems_client/api/auth/sso_login.py +177 -0
  36. robosystems_client-0.1.9/robosystems_client/api/auth/sso_token_exchange.py +181 -0
  37. robosystems_client-0.1.9/robosystems_client/api/backup/__init__.py +1 -0
  38. robosystems_client-0.1.9/robosystems_client/api/backup/create_backup.py +401 -0
  39. robosystems_client-0.1.9/robosystems_client/api/backup/export_backup.py +225 -0
  40. robosystems_client-0.1.9/robosystems_client/api/backup/get_backup_download_url.py +258 -0
  41. robosystems_client-0.1.9/robosystems_client/api/backup/get_backup_stats.py +182 -0
  42. robosystems_client-0.1.9/robosystems_client/api/backup/kuzu_backup_health.py +202 -0
  43. robosystems_client-0.1.9/robosystems_client/api/backup/list_backups.py +217 -0
  44. robosystems_client-0.1.9/robosystems_client/api/backup/restore_backup.py +401 -0
  45. robosystems_client-0.1.9/robosystems_client/api/billing/__init__.py +1 -0
  46. robosystems_client-0.1.9/robosystems_client/api/billing/get_available_subscription_plans_v1_graph_id_billing_available_plans_get.py +198 -0
  47. robosystems_client-0.1.9/robosystems_client/api/billing/get_credit_billing_info_v1_graph_id_billing_credits_get.py +210 -0
  48. robosystems_client-0.1.9/robosystems_client/api/billing/get_current_graph_bill.py +285 -0
  49. robosystems_client-0.1.9/robosystems_client/api/billing/get_graph_billing_history.py +329 -0
  50. robosystems_client-0.1.9/robosystems_client/api/billing/get_graph_monthly_bill.py +315 -0
  51. robosystems_client-0.1.9/robosystems_client/api/billing/get_graph_pricing_info_v1_graph_id_billing_pricing_get.py +198 -0
  52. robosystems_client-0.1.9/robosystems_client/api/billing/get_graph_subscription_v1_graph_id_billing_subscription_get.py +198 -0
  53. robosystems_client-0.1.9/robosystems_client/api/billing/get_graph_usage_details.py +350 -0
  54. robosystems_client-0.1.9/robosystems_client/api/billing/upgrade_graph_subscription_v1_graph_id_billing_subscription_upgrade_post.py +216 -0
  55. robosystems_client-0.1.9/robosystems_client/api/connections/__init__.py +1 -0
  56. robosystems_client-0.1.9/robosystems_client/api/connections/create_connection.py +327 -0
  57. robosystems_client-0.1.9/robosystems_client/api/connections/create_link_token.py +281 -0
  58. robosystems_client-0.1.9/robosystems_client/api/connections/delete_connection.py +278 -0
  59. robosystems_client-0.1.9/robosystems_client/api/connections/exchange_link_token.py +301 -0
  60. robosystems_client-0.1.9/robosystems_client/api/connections/get_connection.py +262 -0
  61. robosystems_client-0.1.9/robosystems_client/api/connections/get_connection_options.py +285 -0
  62. robosystems_client-0.1.9/robosystems_client/api/connections/init_o_auth.py +230 -0
  63. robosystems_client-0.1.9/robosystems_client/api/connections/list_connections.py +314 -0
  64. robosystems_client-0.1.9/robosystems_client/api/connections/oauth_callback.py +318 -0
  65. robosystems_client-0.1.9/robosystems_client/api/connections/sync_connection.py +362 -0
  66. robosystems_client-0.1.9/robosystems_client/api/create/__init__.py +1 -0
  67. robosystems_client-0.1.9/robosystems_client/api/create/create_graph.py +375 -0
  68. robosystems_client-0.1.9/robosystems_client/api/create/get_available_extensions.py +134 -0
  69. robosystems_client-0.1.9/robosystems_client/api/credits_/__init__.py +1 -0
  70. robosystems_client-0.1.9/robosystems_client/api/credits_/check_credit_balance.py +299 -0
  71. robosystems_client-0.1.9/robosystems_client/api/credits_/check_storage_limits.py +249 -0
  72. robosystems_client-0.1.9/robosystems_client/api/credits_/get_credit_summary.py +245 -0
  73. robosystems_client-0.1.9/robosystems_client/api/credits_/get_storage_usage.py +279 -0
  74. robosystems_client-0.1.9/robosystems_client/api/credits_/list_credit_transactions.py +392 -0
  75. robosystems_client-0.1.9/robosystems_client/api/graph_analytics/__init__.py +1 -0
  76. robosystems_client-0.1.9/robosystems_client/api/graph_analytics/get_graph_metrics.py +285 -0
  77. robosystems_client-0.1.9/robosystems_client/api/graph_analytics/get_graph_usage_stats.py +329 -0
  78. robosystems_client-0.1.9/robosystems_client/api/graph_status/__init__.py +1 -0
  79. robosystems_client-0.1.9/robosystems_client/api/graph_status/get_database_health.py +273 -0
  80. robosystems_client-0.1.9/robosystems_client/api/graph_status/get_database_info.py +277 -0
  81. robosystems_client-0.1.9/robosystems_client/api/mcp/__init__.py +1 -0
  82. robosystems_client-0.1.9/robosystems_client/api/mcp/call_mcp_tool.py +432 -0
  83. robosystems_client-0.1.9/robosystems_client/api/mcp/list_mcp_tools.py +265 -0
  84. robosystems_client-0.1.9/robosystems_client/api/operations/__init__.py +1 -0
  85. robosystems_client-0.1.9/robosystems_client/api/operations/cancel_operation.py +246 -0
  86. robosystems_client-0.1.9/robosystems_client/api/operations/get_operation_status.py +273 -0
  87. robosystems_client-0.1.9/robosystems_client/api/operations/stream_operation_events.py +415 -0
  88. robosystems_client-0.1.9/robosystems_client/api/query/__init__.py +1 -0
  89. robosystems_client-0.1.9/robosystems_client/api/query/execute_cypher_query.py +482 -0
  90. robosystems_client-0.1.9/robosystems_client/api/schema/__init__.py +1 -0
  91. robosystems_client-0.1.9/robosystems_client/api/schema/export_graph_schema.py +239 -0
  92. robosystems_client-0.1.9/robosystems_client/api/schema/get_graph_schema_info.py +277 -0
  93. robosystems_client-0.1.9/robosystems_client/api/schema/list_schema_extensions.py +216 -0
  94. robosystems_client-0.1.9/robosystems_client/api/schema/validate_schema.py +326 -0
  95. robosystems_client-0.1.9/robosystems_client/api/service_offerings/__init__.py +1 -0
  96. robosystems_client-0.1.9/robosystems_client/api/service_offerings/get_service_offerings.py +197 -0
  97. robosystems_client-0.1.9/robosystems_client/api/status/__init__.py +1 -0
  98. robosystems_client-0.1.9/robosystems_client/api/status/get_mcp_health.py +136 -0
  99. robosystems_client-0.1.9/robosystems_client/api/status/get_service_status.py +134 -0
  100. robosystems_client-0.1.9/robosystems_client/api/user/__init__.py +1 -0
  101. robosystems_client-0.1.9/robosystems_client/api/user/create_user_api_key.py +205 -0
  102. robosystems_client-0.1.9/robosystems_client/api/user/get_all_credit_summaries.py +256 -0
  103. robosystems_client-0.1.9/robosystems_client/api/user/get_current_user.py +187 -0
  104. robosystems_client-0.1.9/robosystems_client/api/user/get_user_graphs.py +187 -0
  105. robosystems_client-0.1.9/robosystems_client/api/user/list_user_api_keys.py +187 -0
  106. robosystems_client-0.1.9/robosystems_client/api/user/revoke_user_api_key.py +209 -0
  107. robosystems_client-0.1.9/robosystems_client/api/user/select_user_graph.py +213 -0
  108. robosystems_client-0.1.9/robosystems_client/api/user/update_user.py +205 -0
  109. robosystems_client-0.1.9/robosystems_client/api/user/update_user_api_key.py +218 -0
  110. robosystems_client-0.1.9/robosystems_client/api/user/update_user_password.py +218 -0
  111. robosystems_client-0.1.9/robosystems_client/api/user_analytics/__init__.py +1 -0
  112. robosystems_client-0.1.9/robosystems_client/api/user_analytics/get_detailed_user_analytics.py +222 -0
  113. robosystems_client-0.1.9/robosystems_client/api/user_analytics/get_user_usage_overview.py +187 -0
  114. robosystems_client-0.1.9/robosystems_client/api/user_limits/__init__.py +1 -0
  115. robosystems_client-0.1.9/robosystems_client/api/user_limits/get_user_limits.py +190 -0
  116. robosystems_client-0.1.9/robosystems_client/api/user_limits/get_user_usage.py +187 -0
  117. robosystems_client-0.1.9/robosystems_client/api/user_subscriptions/__init__.py +1 -0
  118. robosystems_client-0.1.9/robosystems_client/api/user_subscriptions/cancel_shared_repository_subscription.py +209 -0
  119. robosystems_client-0.1.9/robosystems_client/api/user_subscriptions/get_repository_credits.py +206 -0
  120. robosystems_client-0.1.9/robosystems_client/api/user_subscriptions/get_shared_repository_credits.py +193 -0
  121. robosystems_client-0.1.9/robosystems_client/api/user_subscriptions/get_user_shared_subscriptions.py +213 -0
  122. robosystems_client-0.1.9/robosystems_client/api/user_subscriptions/subscribe_to_shared_repository.py +214 -0
  123. robosystems_client-0.1.9/robosystems_client/api/user_subscriptions/upgrade_shared_repository_subscription.py +228 -0
  124. robosystems_client-0.1.9/robosystems_client/client.py +278 -0
  125. robosystems_client-0.1.9/robosystems_client/errors.py +16 -0
  126. robosystems_client-0.1.9/robosystems_client/extensions/README.md +611 -0
  127. robosystems_client-0.1.9/robosystems_client/extensions/__init__.py +108 -0
  128. robosystems_client-0.1.9/robosystems_client/extensions/auth_integration.py +210 -0
  129. robosystems_client-0.1.9/robosystems_client/extensions/extensions.py +170 -0
  130. robosystems_client-0.1.9/robosystems_client/extensions/operation_client.py +368 -0
  131. robosystems_client-0.1.9/robosystems_client/extensions/query_client.py +375 -0
  132. robosystems_client-0.1.9/robosystems_client/extensions/sse_client.py +520 -0
  133. robosystems_client-0.1.9/robosystems_client/extensions/tests/__init__.py +1 -0
  134. robosystems_client-0.1.9/robosystems_client/extensions/tests/test_integration.py +490 -0
  135. robosystems_client-0.1.9/robosystems_client/extensions/tests/test_unit.py +560 -0
  136. robosystems_client-0.1.9/robosystems_client/extensions/utils.py +526 -0
  137. robosystems_client-0.1.9/robosystems_client/models/__init__.py +379 -0
  138. robosystems_client-0.1.9/robosystems_client/models/account_info.py +79 -0
  139. robosystems_client-0.1.9/robosystems_client/models/add_on_credit_info.py +119 -0
  140. robosystems_client-0.1.9/robosystems_client/models/agent_message.py +68 -0
  141. robosystems_client-0.1.9/robosystems_client/models/agent_request.py +132 -0
  142. robosystems_client-0.1.9/robosystems_client/models/agent_request_context_type_0.py +44 -0
  143. robosystems_client-0.1.9/robosystems_client/models/agent_response.py +132 -0
  144. robosystems_client-0.1.9/robosystems_client/models/agent_response_metadata_type_0.py +44 -0
  145. robosystems_client-0.1.9/robosystems_client/models/api_key_info.py +134 -0
  146. robosystems_client-0.1.9/robosystems_client/models/api_keys_response.py +74 -0
  147. robosystems_client-0.1.9/robosystems_client/models/auth_response.py +82 -0
  148. robosystems_client-0.1.9/robosystems_client/models/auth_response_user.py +44 -0
  149. robosystems_client-0.1.9/robosystems_client/models/available_extension.py +78 -0
  150. robosystems_client-0.1.9/robosystems_client/models/available_extensions_response.py +73 -0
  151. robosystems_client-0.1.9/robosystems_client/models/backup_create_request.py +117 -0
  152. robosystems_client-0.1.9/robosystems_client/models/backup_export_request.py +72 -0
  153. robosystems_client-0.1.9/robosystems_client/models/backup_list_response.py +90 -0
  154. robosystems_client-0.1.9/robosystems_client/models/backup_response.py +200 -0
  155. robosystems_client-0.1.9/robosystems_client/models/backup_restore_request.py +81 -0
  156. robosystems_client-0.1.9/robosystems_client/models/backup_stats_response.py +156 -0
  157. robosystems_client-0.1.9/robosystems_client/models/backup_stats_response_backup_formats.py +44 -0
  158. robosystems_client-0.1.9/robosystems_client/models/cancel_operation_response_canceloperation.py +44 -0
  159. robosystems_client-0.1.9/robosystems_client/models/cancellation_response.py +76 -0
  160. robosystems_client-0.1.9/robosystems_client/models/check_credit_balance_response_checkcreditbalance.py +44 -0
  161. robosystems_client-0.1.9/robosystems_client/models/connection_options_response.py +82 -0
  162. robosystems_client-0.1.9/robosystems_client/models/connection_provider_info.py +203 -0
  163. robosystems_client-0.1.9/robosystems_client/models/connection_provider_info_auth_type.py +11 -0
  164. robosystems_client-0.1.9/robosystems_client/models/connection_provider_info_provider.py +10 -0
  165. robosystems_client-0.1.9/robosystems_client/models/connection_response.py +149 -0
  166. robosystems_client-0.1.9/robosystems_client/models/connection_response_metadata.py +44 -0
  167. robosystems_client-0.1.9/robosystems_client/models/connection_response_provider.py +10 -0
  168. robosystems_client-0.1.9/robosystems_client/models/create_api_key_request.py +82 -0
  169. robosystems_client-0.1.9/robosystems_client/models/create_api_key_response.py +74 -0
  170. robosystems_client-0.1.9/robosystems_client/models/create_connection_request.py +179 -0
  171. robosystems_client-0.1.9/robosystems_client/models/create_connection_request_provider.py +10 -0
  172. robosystems_client-0.1.9/robosystems_client/models/create_graph_request.py +183 -0
  173. robosystems_client-0.1.9/robosystems_client/models/credit_check_request.py +82 -0
  174. robosystems_client-0.1.9/robosystems_client/models/credit_summary.py +128 -0
  175. robosystems_client-0.1.9/robosystems_client/models/credit_summary_response.py +140 -0
  176. robosystems_client-0.1.9/robosystems_client/models/credits_summary_response.py +122 -0
  177. robosystems_client-0.1.9/robosystems_client/models/credits_summary_response_credits_by_addon_item.py +44 -0
  178. robosystems_client-0.1.9/robosystems_client/models/custom_schema_definition.py +194 -0
  179. robosystems_client-0.1.9/robosystems_client/models/custom_schema_definition_metadata.py +49 -0
  180. robosystems_client-0.1.9/robosystems_client/models/custom_schema_definition_nodes_item.py +44 -0
  181. robosystems_client-0.1.9/robosystems_client/models/custom_schema_definition_relationships_item.py +44 -0
  182. robosystems_client-0.1.9/robosystems_client/models/cypher_query_request.py +128 -0
  183. robosystems_client-0.1.9/robosystems_client/models/cypher_query_request_parameters_type_0.py +44 -0
  184. robosystems_client-0.1.9/robosystems_client/models/database_health_response.py +181 -0
  185. robosystems_client-0.1.9/robosystems_client/models/database_info_response.py +191 -0
  186. robosystems_client-0.1.9/robosystems_client/models/detailed_transactions_response.py +124 -0
  187. robosystems_client-0.1.9/robosystems_client/models/detailed_transactions_response_date_range.py +44 -0
  188. robosystems_client-0.1.9/robosystems_client/models/detailed_transactions_response_summary.py +59 -0
  189. robosystems_client-0.1.9/robosystems_client/models/enhanced_credit_transaction_response.py +192 -0
  190. robosystems_client-0.1.9/robosystems_client/models/enhanced_credit_transaction_response_metadata.py +44 -0
  191. robosystems_client-0.1.9/robosystems_client/models/error_response.py +145 -0
  192. robosystems_client-0.1.9/robosystems_client/models/exchange_token_request.py +116 -0
  193. robosystems_client-0.1.9/robosystems_client/models/exchange_token_request_metadata_type_0.py +44 -0
  194. robosystems_client-0.1.9/robosystems_client/models/get_all_credit_summaries_response_getallcreditsummaries.py +44 -0
  195. robosystems_client-0.1.9/robosystems_client/models/get_backup_download_url_response_getbackupdownloadurl.py +44 -0
  196. robosystems_client-0.1.9/robosystems_client/models/get_current_auth_user_response_getcurrentauthuser.py +44 -0
  197. robosystems_client-0.1.9/robosystems_client/models/get_current_graph_bill_response_getcurrentgraphbill.py +44 -0
  198. robosystems_client-0.1.9/robosystems_client/models/get_graph_billing_history_response_getgraphbillinghistory.py +44 -0
  199. robosystems_client-0.1.9/robosystems_client/models/get_graph_monthly_bill_response_getgraphmonthlybill.py +44 -0
  200. robosystems_client-0.1.9/robosystems_client/models/get_graph_schema_info_response_getgraphschemainfo.py +44 -0
  201. robosystems_client-0.1.9/robosystems_client/models/get_graph_usage_details_response_getgraphusagedetails.py +44 -0
  202. robosystems_client-0.1.9/robosystems_client/models/get_mcp_health_response_getmcphealth.py +44 -0
  203. robosystems_client-0.1.9/robosystems_client/models/get_operation_status_response_getoperationstatus.py +44 -0
  204. robosystems_client-0.1.9/robosystems_client/models/get_storage_usage_response_getstorageusage.py +44 -0
  205. robosystems_client-0.1.9/robosystems_client/models/graph_info.py +92 -0
  206. robosystems_client-0.1.9/robosystems_client/models/graph_metadata.py +105 -0
  207. robosystems_client-0.1.9/robosystems_client/models/graph_metrics_response.py +188 -0
  208. robosystems_client-0.1.9/robosystems_client/models/graph_metrics_response_estimated_size.py +44 -0
  209. robosystems_client-0.1.9/robosystems_client/models/graph_metrics_response_health_status.py +44 -0
  210. robosystems_client-0.1.9/robosystems_client/models/graph_metrics_response_node_counts.py +44 -0
  211. robosystems_client-0.1.9/robosystems_client/models/graph_metrics_response_relationship_counts.py +44 -0
  212. robosystems_client-0.1.9/robosystems_client/models/graph_usage_response.py +116 -0
  213. robosystems_client-0.1.9/robosystems_client/models/graph_usage_response_query_statistics.py +44 -0
  214. robosystems_client-0.1.9/robosystems_client/models/graph_usage_response_recent_activity.py +44 -0
  215. robosystems_client-0.1.9/robosystems_client/models/graph_usage_response_storage_usage.py +44 -0
  216. robosystems_client-0.1.9/robosystems_client/models/health_status.py +110 -0
  217. robosystems_client-0.1.9/robosystems_client/models/health_status_details_type_0.py +44 -0
  218. robosystems_client-0.1.9/robosystems_client/models/http_validation_error.py +75 -0
  219. robosystems_client-0.1.9/robosystems_client/models/initial_entity_data.py +212 -0
  220. robosystems_client-0.1.9/robosystems_client/models/kuzu_backup_health_response_kuzubackuphealth.py +44 -0
  221. robosystems_client-0.1.9/robosystems_client/models/link_token_request.py +174 -0
  222. robosystems_client-0.1.9/robosystems_client/models/link_token_request_options_type_0.py +44 -0
  223. robosystems_client-0.1.9/robosystems_client/models/link_token_request_provider_type_0.py +10 -0
  224. robosystems_client-0.1.9/robosystems_client/models/list_connections_provider_type_0.py +10 -0
  225. robosystems_client-0.1.9/robosystems_client/models/list_schema_extensions_response_listschemaextensions.py +44 -0
  226. robosystems_client-0.1.9/robosystems_client/models/login_request.py +68 -0
  227. robosystems_client-0.1.9/robosystems_client/models/logout_user_response_logoutuser.py +44 -0
  228. robosystems_client-0.1.9/robosystems_client/models/mcp_tool_call.py +84 -0
  229. robosystems_client-0.1.9/robosystems_client/models/mcp_tool_call_arguments.py +44 -0
  230. robosystems_client-0.1.9/robosystems_client/models/mcp_tools_response.py +74 -0
  231. robosystems_client-0.1.9/robosystems_client/models/mcp_tools_response_tools_item.py +44 -0
  232. robosystems_client-0.1.9/robosystems_client/models/o_auth_callback_request.py +130 -0
  233. robosystems_client-0.1.9/robosystems_client/models/o_auth_init_request.py +128 -0
  234. robosystems_client-0.1.9/robosystems_client/models/o_auth_init_request_additional_params_type_0.py +44 -0
  235. robosystems_client-0.1.9/robosystems_client/models/o_auth_init_response.py +78 -0
  236. robosystems_client-0.1.9/robosystems_client/models/password_check_request.py +82 -0
  237. robosystems_client-0.1.9/robosystems_client/models/password_check_response.py +112 -0
  238. robosystems_client-0.1.9/robosystems_client/models/password_check_response_character_types.py +44 -0
  239. robosystems_client-0.1.9/robosystems_client/models/password_policy_response.py +66 -0
  240. robosystems_client-0.1.9/robosystems_client/models/password_policy_response_policy.py +44 -0
  241. robosystems_client-0.1.9/robosystems_client/models/plaid_connection_config.py +209 -0
  242. robosystems_client-0.1.9/robosystems_client/models/plaid_connection_config_accounts_type_0_item.py +44 -0
  243. robosystems_client-0.1.9/robosystems_client/models/plaid_connection_config_institution_type_0.py +44 -0
  244. robosystems_client-0.1.9/robosystems_client/models/quick_books_connection_config.py +92 -0
  245. robosystems_client-0.1.9/robosystems_client/models/register_request.py +98 -0
  246. robosystems_client-0.1.9/robosystems_client/models/repository_credits_response.py +101 -0
  247. robosystems_client-0.1.9/robosystems_client/models/repository_plan.py +10 -0
  248. robosystems_client-0.1.9/robosystems_client/models/repository_type.py +10 -0
  249. robosystems_client-0.1.9/robosystems_client/models/response_mode.py +11 -0
  250. robosystems_client-0.1.9/robosystems_client/models/schema_export_response.py +163 -0
  251. robosystems_client-0.1.9/robosystems_client/models/schema_export_response_data_stats_type_0.py +44 -0
  252. robosystems_client-0.1.9/robosystems_client/models/schema_export_response_schema_definition_type_0.py +44 -0
  253. robosystems_client-0.1.9/robosystems_client/models/schema_validation_request.py +142 -0
  254. robosystems_client-0.1.9/robosystems_client/models/schema_validation_request_schema_definition_type_0.py +44 -0
  255. robosystems_client-0.1.9/robosystems_client/models/schema_validation_response.py +227 -0
  256. robosystems_client-0.1.9/robosystems_client/models/schema_validation_response_compatibility_type_0.py +44 -0
  257. robosystems_client-0.1.9/robosystems_client/models/schema_validation_response_stats_type_0.py +44 -0
  258. robosystems_client-0.1.9/robosystems_client/models/sec_connection_config.py +82 -0
  259. robosystems_client-0.1.9/robosystems_client/models/sso_complete_request.py +60 -0
  260. robosystems_client-0.1.9/robosystems_client/models/sso_exchange_request.py +90 -0
  261. robosystems_client-0.1.9/robosystems_client/models/sso_exchange_response.py +78 -0
  262. robosystems_client-0.1.9/robosystems_client/models/sso_login_request.py +60 -0
  263. robosystems_client-0.1.9/robosystems_client/models/sso_token_response.py +78 -0
  264. robosystems_client-0.1.9/robosystems_client/models/storage_limit_response.py +149 -0
  265. robosystems_client-0.1.9/robosystems_client/models/subscription_info.py +180 -0
  266. robosystems_client-0.1.9/robosystems_client/models/subscription_info_metadata.py +44 -0
  267. robosystems_client-0.1.9/robosystems_client/models/subscription_request.py +89 -0
  268. robosystems_client-0.1.9/robosystems_client/models/subscription_response.py +82 -0
  269. robosystems_client-0.1.9/robosystems_client/models/success_response.py +112 -0
  270. robosystems_client-0.1.9/robosystems_client/models/success_response_data_type_0.py +44 -0
  271. robosystems_client-0.1.9/robosystems_client/models/sync_connection_request.py +106 -0
  272. robosystems_client-0.1.9/robosystems_client/models/sync_connection_request_sync_options_type_0.py +44 -0
  273. robosystems_client-0.1.9/robosystems_client/models/sync_connection_response_syncconnection.py +44 -0
  274. robosystems_client-0.1.9/robosystems_client/models/tier_upgrade_request.py +62 -0
  275. robosystems_client-0.1.9/robosystems_client/models/transaction_summary_response.py +126 -0
  276. robosystems_client-0.1.9/robosystems_client/models/update_api_key_request.py +92 -0
  277. robosystems_client-0.1.9/robosystems_client/models/update_password_request.py +76 -0
  278. robosystems_client-0.1.9/robosystems_client/models/update_user_request.py +92 -0
  279. robosystems_client-0.1.9/robosystems_client/models/upgrade_subscription_request.py +82 -0
  280. robosystems_client-0.1.9/robosystems_client/models/user_analytics_response.py +132 -0
  281. robosystems_client-0.1.9/robosystems_client/models/user_analytics_response_api_usage.py +44 -0
  282. robosystems_client-0.1.9/robosystems_client/models/user_analytics_response_graph_usage.py +44 -0
  283. robosystems_client-0.1.9/robosystems_client/models/user_analytics_response_limits.py +44 -0
  284. robosystems_client-0.1.9/robosystems_client/models/user_analytics_response_recent_activity_item.py +44 -0
  285. robosystems_client-0.1.9/robosystems_client/models/user_analytics_response_user_info.py +44 -0
  286. robosystems_client-0.1.9/robosystems_client/models/user_graph_summary.py +134 -0
  287. robosystems_client-0.1.9/robosystems_client/models/user_graphs_response.py +96 -0
  288. robosystems_client-0.1.9/robosystems_client/models/user_limits_response.py +95 -0
  289. robosystems_client-0.1.9/robosystems_client/models/user_response.py +132 -0
  290. robosystems_client-0.1.9/robosystems_client/models/user_subscriptions_response.py +90 -0
  291. robosystems_client-0.1.9/robosystems_client/models/user_usage_response.py +90 -0
  292. robosystems_client-0.1.9/robosystems_client/models/user_usage_response_graphs.py +44 -0
  293. robosystems_client-0.1.9/robosystems_client/models/user_usage_summary_response.py +130 -0
  294. robosystems_client-0.1.9/robosystems_client/models/user_usage_summary_response_usage_vs_limits.py +44 -0
  295. robosystems_client-0.1.9/robosystems_client/models/validation_error.py +88 -0
  296. robosystems_client-0.1.9/robosystems_client/py.typed +1 -0
  297. robosystems_client-0.1.9/robosystems_client/sdk-config.yaml +5 -0
  298. robosystems_client-0.1.9/robosystems_client/types.py +54 -0
  299. robosystems_client-0.1.9/ruff.toml +45 -0
  300. robosystems_client-0.1.9/tests/__init__.py +1 -0
  301. robosystems_client-0.1.9/tests/test_client.py +36 -0
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Screenshots**
24
+ If applicable, add screenshots to help explain your problem.
25
+
26
+ **Additional context**
27
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: enhancement
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,37 @@
1
+ name: Claude PR Review
2
+
3
+ on:
4
+ issue_comment:
5
+ types: [created]
6
+ pull_request_review_comment:
7
+ types: [created]
8
+ issues:
9
+ types: [opened, assigned]
10
+ pull_request_review:
11
+ types: [submitted]
12
+
13
+ jobs:
14
+ claude:
15
+ if: |
16
+ (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
17
+ (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
18
+ (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
19
+ (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
20
+ runs-on: ubuntu-latest
21
+ permissions:
22
+ contents: read
23
+ pull-requests: read
24
+ issues: read
25
+ id-token: write
26
+ steps:
27
+ - name: Checkout repository
28
+ uses: actions/checkout@v4
29
+ with:
30
+ ref: ${{ github.ref }}
31
+ token: ${{ secrets.ACTIONS_TOKEN }}
32
+
33
+ - name: Run Claude Code
34
+ id: claude
35
+ uses: anthropics/claude-code-action@beta
36
+ with:
37
+ anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
@@ -0,0 +1,308 @@
1
+ name: Claude Create PR
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ source_branch:
7
+ description: "Source branch to create PR from (defaults to current branch)"
8
+ required: false
9
+ type: string
10
+ target_branch:
11
+ description: "Target branch to merge into"
12
+ required: true
13
+ type: choice
14
+ options:
15
+ - main
16
+ - staging
17
+ default: main
18
+ pr_type:
19
+ description: "Type of PR"
20
+ required: true
21
+ type: choice
22
+ options:
23
+ - release
24
+ - feature
25
+ - bugfix
26
+ - hotfix
27
+ default: release
28
+ claude_review:
29
+ description: "Request Claude review automatically"
30
+ required: false
31
+ type: boolean
32
+ default: true
33
+
34
+ jobs:
35
+ action:
36
+ runs-on: ubuntu-latest # Use GitHub-hosted runners for memory-intensive git/Claude operations
37
+ timeout-minutes: 10
38
+ env:
39
+ GH_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
40
+ steps:
41
+ - name: Checkout
42
+ uses: actions/checkout@v4
43
+ with:
44
+ ref: ${{ github.ref }}
45
+ token: ${{ secrets.ACTIONS_TOKEN }}
46
+ fetch-depth: 0
47
+
48
+ - name: Determine source branch
49
+ id: source-branch
50
+ run: |
51
+ if [ -n "${{ inputs.source_branch }}" ]; then
52
+ SOURCE_BRANCH="${{ inputs.source_branch }}"
53
+ echo "Using specified source branch: $SOURCE_BRANCH"
54
+ git checkout "$SOURCE_BRANCH"
55
+ else
56
+ SOURCE_BRANCH=$(git branch --show-current)
57
+ echo "Using current branch: $SOURCE_BRANCH"
58
+ fi
59
+ echo "source_branch=$SOURCE_BRANCH" >> $GITHUB_OUTPUT
60
+
61
+ - name: Validate branches
62
+ id: validate
63
+ run: |
64
+ SOURCE_BRANCH="${{ steps.source-branch.outputs.source_branch }}"
65
+ TARGET_BRANCH="${{ inputs.target_branch }}"
66
+
67
+ echo "Source branch: $SOURCE_BRANCH"
68
+ echo "Target branch: $TARGET_BRANCH"
69
+
70
+ # Check if source branch exists
71
+ if ! git show-ref --verify --quiet refs/heads/$SOURCE_BRANCH && ! git show-ref --verify --quiet refs/remotes/origin/$SOURCE_BRANCH; then
72
+ echo "❌ Source branch $SOURCE_BRANCH does not exist"
73
+ exit 1
74
+ fi
75
+
76
+ # Check if target branch exists
77
+ if ! git show-ref --verify --quiet refs/heads/$TARGET_BRANCH && ! git show-ref --verify --quiet refs/remotes/origin/$TARGET_BRANCH; then
78
+ echo "❌ Target branch $TARGET_BRANCH does not exist"
79
+ exit 1
80
+ fi
81
+
82
+ # Check if branches are different
83
+ if [ "$SOURCE_BRANCH" = "$TARGET_BRANCH" ]; then
84
+ echo "❌ Source and target branches cannot be the same"
85
+ exit 1
86
+ fi
87
+
88
+ echo "✅ Branch validation passed"
89
+
90
+ - name: Analyze changes with Claude
91
+ id: analyze
92
+ run: |
93
+ SOURCE_BRANCH="${{ steps.source-branch.outputs.source_branch }}"
94
+ TARGET_BRANCH="${{ inputs.target_branch }}"
95
+ PR_TYPE="${{ inputs.pr_type }}"
96
+
97
+ # Get commit range for analysis
98
+ git fetch origin $TARGET_BRANCH
99
+ COMMIT_RANGE="origin/$TARGET_BRANCH...$SOURCE_BRANCH"
100
+
101
+ # Get diff stats (limit output to prevent memory issues)
102
+ DIFF_STATS=$(git diff --stat --no-color $COMMIT_RANGE | head -50) # Limit to 50 lines
103
+ FILES_CHANGED=$(git diff --name-only $COMMIT_RANGE | wc -l)
104
+ COMMITS_COUNT=$(git rev-list --count $COMMIT_RANGE)
105
+
106
+ # Get commit messages (limit to recent commits)
107
+ COMMIT_MESSAGES=$(git log --oneline --no-color $COMMIT_RANGE | head -20) # Limit to 20 commits
108
+
109
+ # Get detailed changes for analysis
110
+ DETAILED_CHANGES=$(git diff $COMMIT_RANGE --name-status --no-color | head -100) # Limit to 100 files
111
+
112
+ # Create analysis prompt for Claude using envsubst
113
+ export SOURCE_BRANCH TARGET_BRANCH PR_TYPE FILES_CHANGED COMMITS_COUNT COMMIT_MESSAGES DIFF_STATS DETAILED_CHANGES
114
+
115
+ cat << 'EOF' > /tmp/pr_analysis_template.txt
116
+ I need you to analyze the following git changes and create a comprehensive PR title and description.
117
+
118
+ **Context:**
119
+ - Repository: Application codebase
120
+ - Source Branch: $SOURCE_BRANCH
121
+ - Target Branch: $TARGET_BRANCH
122
+ - PR Type: $PR_TYPE
123
+ - Files Changed: $FILES_CHANGED
124
+ - Commits: $COMMITS_COUNT
125
+
126
+ **Commit Messages:**
127
+ $COMMIT_MESSAGES
128
+
129
+ **Diff Statistics:**
130
+ $DIFF_STATS
131
+
132
+ **Detailed Changes:**
133
+ $DETAILED_CHANGES
134
+
135
+ Please provide:
136
+ 1. A concise, descriptive PR title (50-72 characters)
137
+ 2. A comprehensive PR description with:
138
+ - Summary of changes
139
+ - Key accomplishments
140
+ - Breaking changes (if any)
141
+ - Testing notes
142
+ - Infrastructure considerations (avoid mentioning specific script paths or commands)
143
+
144
+ Format the response as:
145
+ TITLE: [your title here]
146
+
147
+ DESCRIPTION:
148
+ [your description here]
149
+ EOF
150
+
151
+ # Create the final prompt by writing directly to a file (avoiding envsubst issues)
152
+ cat > /tmp/pr_analysis_prompt.txt << PROMPT_EOF
153
+ I need you to analyze the following git changes and create a comprehensive PR title and description.
154
+
155
+ **Context:**
156
+ - Source Branch: $SOURCE_BRANCH
157
+ - Target Branch: $TARGET_BRANCH
158
+ - PR Type: $PR_TYPE
159
+ - Files Changed: $FILES_CHANGED
160
+ - Commits: $COMMITS_COUNT
161
+
162
+ **Commit Messages:**
163
+ $COMMIT_MESSAGES
164
+
165
+ **Diff Statistics:**
166
+ $DIFF_STATS
167
+
168
+ **Detailed Changes:**
169
+ $DETAILED_CHANGES
170
+
171
+ Please provide:
172
+ 1. A concise, descriptive PR title (50-72 characters)
173
+ 2. A comprehensive PR description with:
174
+ - Summary of changes
175
+ - Key accomplishments
176
+ - Breaking changes (if any)
177
+ - Testing notes
178
+ - Infrastructure considerations (avoid mentioning specific script paths or commands)
179
+
180
+ Format the response as:
181
+ TITLE: [your title here]
182
+
183
+ DESCRIPTION:
184
+ [your description here]
185
+ PROMPT_EOF
186
+
187
+ echo "analysis_prompt_file=/tmp/pr_analysis_prompt.txt" >> $GITHUB_OUTPUT
188
+ echo "commit_range=$COMMIT_RANGE" >> $GITHUB_OUTPUT
189
+
190
+ - name: Call Claude API
191
+ id: claude
192
+ run: |
193
+ # Call Claude API with the analysis prompt
194
+ PROMPT=$(cat /tmp/pr_analysis_prompt.txt)
195
+
196
+ # Create JSON payload using jq to properly escape content
197
+ RESPONSE=$(jq -n \
198
+ --arg model "claude-sonnet-4-20250514" \
199
+ --arg content "$PROMPT" \
200
+ '{
201
+ "model": $model,
202
+ "max_tokens": 4000,
203
+ "messages": [
204
+ {
205
+ "role": "user",
206
+ "content": $content
207
+ }
208
+ ]
209
+ }' | curl -s -X POST "https://api.anthropic.com/v1/messages" \
210
+ -H "Content-Type: application/json" \
211
+ -H "x-api-key: ${{ secrets.ANTHROPIC_API_KEY }}" \
212
+ -H "anthropic-version: 2023-06-01" \
213
+ -d @-)
214
+
215
+ # Check for API errors first
216
+ if echo "$RESPONSE" | jq -e '.error' > /dev/null; then
217
+ echo "❌ Claude API error: $(echo "$RESPONSE" | jq -r '.error.message')"
218
+ exit 1
219
+ fi
220
+
221
+ # Extract title and description from Claude's response
222
+ CLAUDE_OUTPUT=$(echo "$RESPONSE" | jq -r '.content[0].text')
223
+
224
+ # Parse the title and description
225
+ PR_TITLE=$(echo "$CLAUDE_OUTPUT" | grep "^TITLE:" | sed 's/^TITLE: //')
226
+ PR_DESCRIPTION=$(echo "$CLAUDE_OUTPUT" | sed -n '/^DESCRIPTION:/,$ p' | sed '1d')
227
+
228
+ # Validate that Claude returned meaningful content
229
+ if [ -z "$PR_TITLE" ] || [ -z "$PR_DESCRIPTION" ]; then
230
+ echo "❌ Claude returned empty title or description"
231
+ echo "Raw Claude output: $CLAUDE_OUTPUT"
232
+ exit 1
233
+ fi
234
+
235
+ # Save to outputs (escape for JSON)
236
+ {
237
+ echo "pr_title<<EOF"
238
+ echo "$PR_TITLE"
239
+ echo "EOF"
240
+ } >> $GITHUB_OUTPUT
241
+
242
+ {
243
+ echo "pr_description<<EOF"
244
+ echo "$PR_DESCRIPTION"
245
+ echo "EOF"
246
+ } >> $GITHUB_OUTPUT
247
+
248
+ echo "✅ Claude analysis completed"
249
+
250
+ - name: Create Pull Request
251
+ id: create-pr
252
+ run: |
253
+ SOURCE_BRANCH="${{ steps.source-branch.outputs.source_branch }}"
254
+ TARGET_BRANCH="${{ inputs.target_branch }}"
255
+ PR_TITLE="${{ steps.claude.outputs.pr_title }}"
256
+
257
+ # Create PR description with Claude analysis + footer
258
+ cat > /tmp/pr_description.txt << EOF
259
+ ${{ steps.claude.outputs.pr_description }}
260
+
261
+ ---
262
+ 🤖 Generated with [Claude Code](https://claude.ai/code)
263
+
264
+ **Branch Info:**
265
+ - Source: \`$SOURCE_BRANCH\`
266
+ - Target: \`$TARGET_BRANCH\`
267
+ - Type: ${{ inputs.pr_type }}
268
+
269
+ Co-Authored-By: Claude <noreply@anthropic.com>
270
+ EOF
271
+
272
+ PR_DESCRIPTION=$(cat /tmp/pr_description.txt)
273
+
274
+ # Create the PR
275
+ PR_URL=$(gh pr create \
276
+ --title "$PR_TITLE" \
277
+ --body "$PR_DESCRIPTION" \
278
+ --base "$TARGET_BRANCH" \
279
+ --head "$SOURCE_BRANCH")
280
+
281
+ echo "pr_url=$PR_URL" >> $GITHUB_OUTPUT
282
+ echo "✅ Pull Request created: $PR_URL"
283
+
284
+ - name: Request Claude review
285
+ if: ${{ inputs.claude_review }}
286
+ run: |
287
+ PR_NUMBER=$(echo "${{ steps.create-pr.outputs.pr_url }}" | sed 's/.*pull\///')
288
+
289
+ gh pr comment "$PR_NUMBER" --body "@claude please review this PR"
290
+ echo "✅ Claude review requested"
291
+
292
+ - name: Create summary
293
+ run: |
294
+ SOURCE_BRANCH="${{ steps.source-branch.outputs.source_branch }}"
295
+ TARGET_BRANCH="${{ inputs.target_branch }}"
296
+ PR_URL="${{ steps.create-pr.outputs.pr_url }}"
297
+
298
+ echo "## 🚀 Claude-Powered PR Created" >> $GITHUB_STEP_SUMMARY
299
+ echo "" >> $GITHUB_STEP_SUMMARY
300
+ echo "**PR URL:** [$PR_URL]($PR_URL)" >> $GITHUB_STEP_SUMMARY
301
+ echo "**Source:** \`$SOURCE_BRANCH\`" >> $GITHUB_STEP_SUMMARY
302
+ echo "**Target:** \`$TARGET_BRANCH\`" >> $GITHUB_STEP_SUMMARY
303
+ echo "**Type:** ${{ inputs.pr_type }}" >> $GITHUB_STEP_SUMMARY
304
+ echo "" >> $GITHUB_STEP_SUMMARY
305
+ echo "### PR Details" >> $GITHUB_STEP_SUMMARY
306
+ echo "**Title:** ${{ steps.claude.outputs.pr_title }}" >> $GITHUB_STEP_SUMMARY
307
+ echo "" >> $GITHUB_STEP_SUMMARY
308
+ echo "**Commits:** ${{ steps.analyze.outputs.commit_range }}" >> $GITHUB_STEP_SUMMARY
@@ -0,0 +1,123 @@
1
+ name: Create Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version_type:
7
+ description: "Type of version bump"
8
+ required: true
9
+ type: choice
10
+ options:
11
+ - major
12
+ - minor
13
+ - patch
14
+ default: patch
15
+
16
+ jobs:
17
+ action:
18
+ runs-on: ubuntu-latest
19
+ timeout-minutes: 1
20
+ steps:
21
+ - name: Checkout
22
+ uses: actions/checkout@v4
23
+ with:
24
+ ref: ${{ github.ref }}
25
+ token: ${{ secrets.ACTIONS_TOKEN }}
26
+ fetch-depth: 0
27
+
28
+ - name: Set up Git
29
+ run: |
30
+ git config --global user.name "github-actions[bot]"
31
+ git config --global user.email "github-actions[bot]@users.noreply.github.com"
32
+
33
+ - name: Get current version
34
+ id: current-version
35
+ run: |
36
+ CURRENT_VERSION=$(awk -F'"' '/^version = / {print $2}' pyproject.toml)
37
+ if [ -z "$CURRENT_VERSION" ]; then
38
+ echo "Could not find version in pyproject.toml"
39
+ exit 1
40
+ fi
41
+ echo "current_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
42
+ echo "Current version: $CURRENT_VERSION"
43
+
44
+ - name: Calculate new version
45
+ id: new-version
46
+ run: |
47
+ CURRENT_VERSION="${{ steps.current-version.outputs.current_version }}"
48
+ VERSION_TYPE="${{ inputs.version_type }}"
49
+
50
+ # Split version into major, minor, and patch
51
+ IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION"
52
+
53
+ # Increment appropriate version component
54
+ if [ "$VERSION_TYPE" = "major" ]; then
55
+ MAJOR=$((MAJOR + 1))
56
+ MINOR=0
57
+ PATCH=0
58
+ elif [ "$VERSION_TYPE" = "minor" ]; then
59
+ MINOR=$((MINOR + 1))
60
+ PATCH=0
61
+ else # patch
62
+ PATCH=$((PATCH + 1))
63
+ fi
64
+
65
+ NEW_VERSION="$MAJOR.$MINOR.$PATCH"
66
+ BRANCH_NAME="release/$NEW_VERSION"
67
+
68
+ echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT
69
+ echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
70
+ echo "New version: $NEW_VERSION"
71
+ echo "Branch name: $BRANCH_NAME"
72
+
73
+ - name: Check if branch already exists
74
+ id: check-branch
75
+ run: |
76
+ BRANCH_NAME="${{ steps.new-version.outputs.branch_name }}"
77
+
78
+ # Check if branch exists locally or remotely
79
+ if git show-ref --verify --quiet refs/heads/$BRANCH_NAME || git show-ref --verify --quiet refs/remotes/origin/$BRANCH_NAME; then
80
+ echo "Branch $BRANCH_NAME already exists"
81
+ echo "branch_exists=true" >> $GITHUB_OUTPUT
82
+ exit 1
83
+ else
84
+ echo "Branch $BRANCH_NAME does not exist, proceeding..."
85
+ echo "branch_exists=false" >> $GITHUB_OUTPUT
86
+ fi
87
+
88
+ - name: Create release branch and update version
89
+ run: |
90
+ CURRENT_VERSION="${{ steps.current-version.outputs.current_version }}"
91
+ NEW_VERSION="${{ steps.new-version.outputs.new_version }}"
92
+ BRANCH_NAME="${{ steps.new-version.outputs.branch_name }}"
93
+
94
+ echo "Creating new branch: $BRANCH_NAME"
95
+ git checkout -b "$BRANCH_NAME"
96
+
97
+ # Update version in pyproject.toml
98
+ sed -i "s/^version = \"$CURRENT_VERSION\"/version = \"$NEW_VERSION\"/" pyproject.toml
99
+
100
+ # Commit the changes
101
+ git add pyproject.toml
102
+
103
+ git commit -m "Bump version from $CURRENT_VERSION to $NEW_VERSION"
104
+
105
+ # Push the branch
106
+ git push origin "$BRANCH_NAME"
107
+
108
+ echo "✅ Version bumped: $CURRENT_VERSION → $NEW_VERSION"
109
+ echo "✅ Branch created: $BRANCH_NAME"
110
+ echo "✅ Changes committed and pushed successfully"
111
+
112
+ - name: Create summary
113
+ run: |
114
+ echo "## 🚀 Release Branch Created" >> $GITHUB_STEP_SUMMARY
115
+ echo "" >> $GITHUB_STEP_SUMMARY
116
+ echo "**Version:** ${{ steps.current-version.outputs.current_version }} → ${{ steps.new-version.outputs.new_version }}" >> $GITHUB_STEP_SUMMARY
117
+ echo "**Branch:** \`${{ steps.new-version.outputs.branch_name }}\`" >> $GITHUB_STEP_SUMMARY
118
+ echo "**Type:** ${{ inputs.version_type }}" >> $GITHUB_STEP_SUMMARY
119
+ echo "" >> $GITHUB_STEP_SUMMARY
120
+ echo "### Next Steps" >> $GITHUB_STEP_SUMMARY
121
+ echo "1. Review the changes in the release branch" >> $GITHUB_STEP_SUMMARY
122
+ echo "2. Create a pull request to merge into main" >> $GITHUB_STEP_SUMMARY
123
+ echo "3. After merge, the staging/prod workflows will handle deployment" >> $GITHUB_STEP_SUMMARY
@@ -0,0 +1,59 @@
1
+ name: Publish Python Client to PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ jobs:
7
+ publish:
8
+ runs-on: ubuntu-latest
9
+
10
+ permissions:
11
+ contents: read
12
+ id-token: write # For PyPI trusted publishing
13
+
14
+ steps:
15
+ - name: Checkout repository
16
+ uses: actions/checkout@v4
17
+
18
+ - name: Setup Python
19
+ uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.12"
22
+
23
+ - name: Install dependencies
24
+ run: |
25
+ python -m pip install --upgrade pip
26
+ pip install build twine
27
+
28
+ - name: Get current version
29
+ id: current-version
30
+ run: |
31
+ CURRENT_VERSION=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml', 'rb'))['project']['version'])")
32
+ echo "current_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
33
+ echo "Current version: $CURRENT_VERSION"
34
+
35
+ - name: Build package
36
+ run: python -m build
37
+
38
+ - name: Check if version exists on PyPI
39
+ id: check-pypi
40
+ run: |
41
+ VERSION="${{ steps.current-version.outputs.current_version }}"
42
+ PACKAGE_NAME="robosystems-client"
43
+
44
+ # Check if version exists on PyPI
45
+ if curl -s "https://pypi.org/pypi/${PACKAGE_NAME}/${VERSION}/json" | grep -q "\"version\""; then
46
+ echo "❌ Version ${VERSION} already exists on PyPI"
47
+ echo "version_exists=true" >> $GITHUB_OUTPUT
48
+ exit 1
49
+ else
50
+ echo "✅ Version ${VERSION} does not exist on PyPI, safe to publish"
51
+ echo "version_exists=false" >> $GITHUB_OUTPUT
52
+ fi
53
+
54
+ - name: Publish to PyPI
55
+ if: steps.check-pypi.outputs.version_exists == 'false'
56
+ uses: pypa/gh-action-pypi-publish@release/v1
57
+ with:
58
+ verbose: true
59
+ password: ${{ secrets.PYPI_TOKEN }}