qca 0.0.1.dev1__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 (639) hide show
  1. qca-0.0.1.dev1/.env.live.example +15 -0
  2. qca-0.0.1.dev1/LICENSE +21 -0
  3. qca-0.0.1.dev1/MANIFEST.in +5 -0
  4. qca-0.0.1.dev1/Makefile +27 -0
  5. qca-0.0.1.dev1/PKG-INFO +279 -0
  6. qca-0.0.1.dev1/README.md +255 -0
  7. qca-0.0.1.dev1/docs/forward-api.md +2551 -0
  8. qca-0.0.1.dev1/docs/managed-api.md +2598 -0
  9. qca-0.0.1.dev1/examples/README.md +89 -0
  10. qca-0.0.1.dev1/examples/__init__.py +1 -0
  11. qca-0.0.1.dev1/examples/common/__init__.py +1 -0
  12. qca-0.0.1.dev1/examples/common/live.py +331 -0
  13. qca-0.0.1.dev1/examples/conftest.py +25 -0
  14. qca-0.0.1.dev1/examples/forward/__init__.py +1 -0
  15. qca-0.0.1.dev1/examples/forward/__main__.py +24 -0
  16. qca-0.0.1.dev1/examples/forward/_cleanup.py +13 -0
  17. qca-0.0.1.dev1/examples/forward/async_session.py +37 -0
  18. qca-0.0.1.dev1/examples/forward/batch.py +130 -0
  19. qca-0.0.1.dev1/examples/forward/memory.py +66 -0
  20. qca-0.0.1.dev1/examples/forward/models.py +19 -0
  21. qca-0.0.1.dev1/examples/forward/resources.py +78 -0
  22. qca-0.0.1.dev1/examples/forward/schedule.py +70 -0
  23. qca-0.0.1.dev1/examples/forward/session.py +70 -0
  24. qca-0.0.1.dev1/examples/forward/test_live.py +12 -0
  25. qca-0.0.1.dev1/examples/managed/__init__.py +1 -0
  26. qca-0.0.1.dev1/examples/managed/__main__.py +24 -0
  27. qca-0.0.1.dev1/examples/managed/_cleanup.py +13 -0
  28. qca-0.0.1.dev1/examples/managed/async_session.py +37 -0
  29. qca-0.0.1.dev1/examples/managed/deployment.py +49 -0
  30. qca-0.0.1.dev1/examples/managed/dream.py +76 -0
  31. qca-0.0.1.dev1/examples/managed/memory.py +52 -0
  32. qca-0.0.1.dev1/examples/managed/models.py +19 -0
  33. qca-0.0.1.dev1/examples/managed/resources.py +69 -0
  34. qca-0.0.1.dev1/examples/managed/session.py +66 -0
  35. qca-0.0.1.dev1/examples/managed/test_live.py +12 -0
  36. qca-0.0.1.dev1/pyproject.toml +54 -0
  37. qca-0.0.1.dev1/setup.cfg +4 -0
  38. qca-0.0.1.dev1/src/qca/__init__.py +50 -0
  39. qca-0.0.1.dev1/src/qca/_version.py +1 -0
  40. qca-0.0.1.dev1/src/qca/common/__init__.py +43 -0
  41. qca-0.0.1.dev1/src/qca/common/_base_client.py +450 -0
  42. qca-0.0.1.dev1/src/qca/common/_exceptions.py +97 -0
  43. qca-0.0.1.dev1/src/qca/common/_files.py +38 -0
  44. qca-0.0.1.dev1/src/qca/common/_models.py +33 -0
  45. qca-0.0.1.dev1/src/qca/common/_resource.py +35 -0
  46. qca-0.0.1.dev1/src/qca/common/_response.py +220 -0
  47. qca-0.0.1.dev1/src/qca/common/_streaming.py +143 -0
  48. qca-0.0.1.dev1/src/qca/common/_types.py +25 -0
  49. qca-0.0.1.dev1/src/qca/common/_utils.py +73 -0
  50. qca-0.0.1.dev1/src/qca/common/credentials.py +13 -0
  51. qca-0.0.1.dev1/src/qca/common/pagination.py +118 -0
  52. qca-0.0.1.dev1/src/qca/forward/__init__.py +7 -0
  53. qca-0.0.1.dev1/src/qca/forward/_client.py +142 -0
  54. qca-0.0.1.dev1/src/qca/forward/resources/__init__.py +14 -0
  55. qca-0.0.1.dev1/src/qca/forward/resources/batches/__init__.py +4 -0
  56. qca-0.0.1.dev1/src/qca/forward/resources/batches/batches.py +308 -0
  57. qca-0.0.1.dev1/src/qca/forward/resources/batches/tasks.py +71 -0
  58. qca-0.0.1.dev1/src/qca/forward/resources/channel_pairings.py +111 -0
  59. qca-0.0.1.dev1/src/qca/forward/resources/channels/__init__.py +4 -0
  60. qca-0.0.1.dev1/src/qca/forward/resources/channels/channels.py +336 -0
  61. qca-0.0.1.dev1/src/qca/forward/resources/channels/qr_sessions.py +106 -0
  62. qca-0.0.1.dev1/src/qca/forward/resources/environments.py +305 -0
  63. qca-0.0.1.dev1/src/qca/forward/resources/files.py +272 -0
  64. qca-0.0.1.dev1/src/qca/forward/resources/identities/__init__.py +6 -0
  65. qca-0.0.1.dev1/src/qca/forward/resources/identities/configs.py +249 -0
  66. qca-0.0.1.dev1/src/qca/forward/resources/identities/identities.py +570 -0
  67. qca-0.0.1.dev1/src/qca/forward/resources/identities/memory_stores.py +186 -0
  68. qca-0.0.1.dev1/src/qca/forward/resources/memory_stores/__init__.py +6 -0
  69. qca-0.0.1.dev1/src/qca/forward/resources/memory_stores/memories.py +290 -0
  70. qca-0.0.1.dev1/src/qca/forward/resources/memory_stores/memory_stores.py +321 -0
  71. qca-0.0.1.dev1/src/qca/forward/resources/memory_stores/memory_versions.py +179 -0
  72. qca-0.0.1.dev1/src/qca/forward/resources/models.py +58 -0
  73. qca-0.0.1.dev1/src/qca/forward/resources/schedule_runs.py +149 -0
  74. qca-0.0.1.dev1/src/qca/forward/resources/schedules.py +545 -0
  75. qca-0.0.1.dev1/src/qca/forward/resources/sessions/__init__.py +6 -0
  76. qca-0.0.1.dev1/src/qca/forward/resources/sessions/events.py +208 -0
  77. qca-0.0.1.dev1/src/qca/forward/resources/sessions/resources.py +66 -0
  78. qca-0.0.1.dev1/src/qca/forward/resources/sessions/sessions.py +417 -0
  79. qca-0.0.1.dev1/src/qca/forward/resources/sessions/threads/__init__.py +4 -0
  80. qca-0.0.1.dev1/src/qca/forward/resources/sessions/threads/events.py +128 -0
  81. qca-0.0.1.dev1/src/qca/forward/resources/sessions/threads/threads.py +177 -0
  82. qca-0.0.1.dev1/src/qca/forward/resources/skills/__init__.py +4 -0
  83. qca-0.0.1.dev1/src/qca/forward/resources/skills/skills.py +335 -0
  84. qca-0.0.1.dev1/src/qca/forward/resources/skills/versions.py +253 -0
  85. qca-0.0.1.dev1/src/qca/forward/resources/templates.py +426 -0
  86. qca-0.0.1.dev1/src/qca/forward/resources/vaults/__init__.py +4 -0
  87. qca-0.0.1.dev1/src/qca/forward/resources/vaults/credentials.py +227 -0
  88. qca-0.0.1.dev1/src/qca/forward/resources/vaults/vaults.py +217 -0
  89. qca-0.0.1.dev1/src/qca/forward/types/__init__.py +205 -0
  90. qca-0.0.1.dev1/src/qca/forward/types/batch.py +35 -0
  91. qca-0.0.1.dev1/src/qca/forward/types/batch_cancel_params.py +11 -0
  92. qca-0.0.1.dev1/src/qca/forward/types/batch_create_params.py +14 -0
  93. qca-0.0.1.dev1/src/qca/forward/types/batch_file.py +13 -0
  94. qca-0.0.1.dev1/src/qca/forward/types/batch_list_params.py +14 -0
  95. qca-0.0.1.dev1/src/qca/forward/types/batch_request_counts.py +17 -0
  96. qca-0.0.1.dev1/src/qca/forward/types/batch_task.py +24 -0
  97. qca-0.0.1.dev1/src/qca/forward/types/batch_task_artifacts_item.py +14 -0
  98. qca-0.0.1.dev1/src/qca/forward/types/batch_task_error.py +12 -0
  99. qca-0.0.1.dev1/src/qca/forward/types/batch_task_list_params.py +14 -0
  100. qca-0.0.1.dev1/src/qca/forward/types/batch_task_usage.py +11 -0
  101. qca-0.0.1.dev1/src/qca/forward/types/batch_usage.py +11 -0
  102. qca-0.0.1.dev1/src/qca/forward/types/channel.py +27 -0
  103. qca-0.0.1.dev1/src/qca/forward/types/channel_channel_config.py +14 -0
  104. qca-0.0.1.dev1/src/qca/forward/types/channel_channel_config_response_options.py +12 -0
  105. qca-0.0.1.dev1/src/qca/forward/types/channel_create_params.py +18 -0
  106. qca-0.0.1.dev1/src/qca/forward/types/channel_identity_resolution.py +11 -0
  107. qca-0.0.1.dev1/src/qca/forward/types/channel_list_params.py +18 -0
  108. qca-0.0.1.dev1/src/qca/forward/types/channel_pairing.py +17 -0
  109. qca-0.0.1.dev1/src/qca/forward/types/channel_pairing_create_params.py +14 -0
  110. qca-0.0.1.dev1/src/qca/forward/types/channel_qr_session.py +19 -0
  111. qca-0.0.1.dev1/src/qca/forward/types/channel_qr_session_create_params.py +11 -0
  112. qca-0.0.1.dev1/src/qca/forward/types/channel_update_params.py +16 -0
  113. qca-0.0.1.dev1/src/qca/forward/types/content_block_param.py +17 -0
  114. qca-0.0.1.dev1/src/qca/forward/types/deleted_channel.py +12 -0
  115. qca-0.0.1.dev1/src/qca/forward/types/deleted_channel_pairing.py +12 -0
  116. qca-0.0.1.dev1/src/qca/forward/types/deleted_identity.py +12 -0
  117. qca-0.0.1.dev1/src/qca/forward/types/deleted_memory.py +13 -0
  118. qca-0.0.1.dev1/src/qca/forward/types/deleted_memory_store.py +13 -0
  119. qca-0.0.1.dev1/src/qca/forward/types/deleted_memory_store_mount.py +13 -0
  120. qca-0.0.1.dev1/src/qca/forward/types/deleted_skill_version.py +13 -0
  121. qca-0.0.1.dev1/src/qca/forward/types/effective_config.py +23 -0
  122. qca-0.0.1.dev1/src/qca/forward/types/effective_config_agent.py +19 -0
  123. qca-0.0.1.dev1/src/qca/forward/types/effective_config_agent_tools_item.py +15 -0
  124. qca-0.0.1.dev1/src/qca/forward/types/effective_config_agent_tools_item_configs_item.py +12 -0
  125. qca-0.0.1.dev1/src/qca/forward/types/effective_config_session.py +17 -0
  126. qca-0.0.1.dev1/src/qca/forward/types/effective_config_session_resources_item.py +14 -0
  127. qca-0.0.1.dev1/src/qca/forward/types/environment.py +24 -0
  128. qca-0.0.1.dev1/src/qca/forward/types/environment_config.py +15 -0
  129. qca-0.0.1.dev1/src/qca/forward/types/environment_config_packages.py +17 -0
  130. qca-0.0.1.dev1/src/qca/forward/types/environment_create_params.py +15 -0
  131. qca-0.0.1.dev1/src/qca/forward/types/environment_list_params.py +14 -0
  132. qca-0.0.1.dev1/src/qca/forward/types/environment_update_params.py +14 -0
  133. qca-0.0.1.dev1/src/qca/forward/types/environment_variable_override.py +12 -0
  134. qca-0.0.1.dev1/src/qca/forward/types/environment_variable_override_param.py +12 -0
  135. qca-0.0.1.dev1/src/qca/forward/types/file_list_params.py +16 -0
  136. qca-0.0.1.dev1/src/qca/forward/types/file_metadata.py +22 -0
  137. qca-0.0.1.dev1/src/qca/forward/types/file_upload_params.py +17 -0
  138. qca-0.0.1.dev1/src/qca/forward/types/git_hub_repository.py +13 -0
  139. qca-0.0.1.dev1/src/qca/forward/types/git_hub_repository_param.py +14 -0
  140. qca-0.0.1.dev1/src/qca/forward/types/identity.py +19 -0
  141. qca-0.0.1.dev1/src/qca/forward/types/identity_clear_params.py +11 -0
  142. qca-0.0.1.dev1/src/qca/forward/types/identity_clear_response.py +18 -0
  143. qca-0.0.1.dev1/src/qca/forward/types/identity_clear_response_summary.py +16 -0
  144. qca-0.0.1.dev1/src/qca/forward/types/identity_config.py +25 -0
  145. qca-0.0.1.dev1/src/qca/forward/types/identity_config_list_params.py +15 -0
  146. qca-0.0.1.dev1/src/qca/forward/types/identity_config_spec.py +31 -0
  147. qca-0.0.1.dev1/src/qca/forward/types/identity_config_spec_param.py +31 -0
  148. qca-0.0.1.dev1/src/qca/forward/types/identity_config_upsert_params.py +17 -0
  149. qca-0.0.1.dev1/src/qca/forward/types/identity_create_params.py +15 -0
  150. qca-0.0.1.dev1/src/qca/forward/types/identity_list_params.py +17 -0
  151. qca-0.0.1.dev1/src/qca/forward/types/identity_list_templates_response.py +14 -0
  152. qca-0.0.1.dev1/src/qca/forward/types/identity_memory_store_list_response.py +15 -0
  153. qca-0.0.1.dev1/src/qca/forward/types/identity_memory_store_mount_params.py +9 -0
  154. qca-0.0.1.dev1/src/qca/forward/types/identity_stats.py +14 -0
  155. qca-0.0.1.dev1/src/qca/forward/types/identity_template.py +15 -0
  156. qca-0.0.1.dev1/src/qca/forward/types/identity_update_params.py +15 -0
  157. qca-0.0.1.dev1/src/qca/forward/types/image_source_param.py +15 -0
  158. qca-0.0.1.dev1/src/qca/forward/types/mcp_server.py +13 -0
  159. qca-0.0.1.dev1/src/qca/forward/types/mcp_server_override.py +13 -0
  160. qca-0.0.1.dev1/src/qca/forward/types/mcp_server_override_param.py +13 -0
  161. qca-0.0.1.dev1/src/qca/forward/types/mcp_server_param.py +13 -0
  162. qca-0.0.1.dev1/src/qca/forward/types/memory.py +21 -0
  163. qca-0.0.1.dev1/src/qca/forward/types/memory_store.py +25 -0
  164. qca-0.0.1.dev1/src/qca/forward/types/memory_store_create_params.py +14 -0
  165. qca-0.0.1.dev1/src/qca/forward/types/memory_store_list_params.py +14 -0
  166. qca-0.0.1.dev1/src/qca/forward/types/memory_store_memory_create_params.py +13 -0
  167. qca-0.0.1.dev1/src/qca/forward/types/memory_store_memory_list_params.py +14 -0
  168. qca-0.0.1.dev1/src/qca/forward/types/memory_store_memory_update_params.py +13 -0
  169. qca-0.0.1.dev1/src/qca/forward/types/memory_store_memory_version_list_params.py +14 -0
  170. qca-0.0.1.dev1/src/qca/forward/types/memory_store_mount.py +20 -0
  171. qca-0.0.1.dev1/src/qca/forward/types/memory_store_update_params.py +13 -0
  172. qca-0.0.1.dev1/src/qca/forward/types/memory_version.py +23 -0
  173. qca-0.0.1.dev1/src/qca/forward/types/model.py +23 -0
  174. qca-0.0.1.dev1/src/qca/forward/types/model_config.py +13 -0
  175. qca-0.0.1.dev1/src/qca/forward/types/model_config_param.py +13 -0
  176. qca-0.0.1.dev1/src/qca/forward/types/model_list_response.py +15 -0
  177. qca-0.0.1.dev1/src/qca/forward/types/multiagent_config.py +15 -0
  178. qca-0.0.1.dev1/src/qca/forward/types/multiagent_config_param.py +15 -0
  179. qca-0.0.1.dev1/src/qca/forward/types/multiagent_entry.py +13 -0
  180. qca-0.0.1.dev1/src/qca/forward/types/multiagent_entry_param.py +13 -0
  181. qca-0.0.1.dev1/src/qca/forward/types/permission_policy.py +11 -0
  182. qca-0.0.1.dev1/src/qca/forward/types/permission_policy_param.py +9 -0
  183. qca-0.0.1.dev1/src/qca/forward/types/resource_binding.py +11 -0
  184. qca-0.0.1.dev1/src/qca/forward/types/resource_binding_param.py +11 -0
  185. qca-0.0.1.dev1/src/qca/forward/types/schedule.py +34 -0
  186. qca-0.0.1.dev1/src/qca/forward/types/schedule_archive_many_params.py +12 -0
  187. qca-0.0.1.dev1/src/qca/forward/types/schedule_archive_many_response.py +11 -0
  188. qca-0.0.1.dev1/src/qca/forward/types/schedule_archive_params.py +11 -0
  189. qca-0.0.1.dev1/src/qca/forward/types/schedule_create_params.py +21 -0
  190. qca-0.0.1.dev1/src/qca/forward/types/schedule_execution.py +14 -0
  191. qca-0.0.1.dev1/src/qca/forward/types/schedule_initial_events_item.py +12 -0
  192. qca-0.0.1.dev1/src/qca/forward/types/schedule_list_params.py +19 -0
  193. qca-0.0.1.dev1/src/qca/forward/types/schedule_pause_params.py +11 -0
  194. qca-0.0.1.dev1/src/qca/forward/types/schedule_paused_reason.py +11 -0
  195. qca-0.0.1.dev1/src/qca/forward/types/schedule_run.py +33 -0
  196. qca-0.0.1.dev1/src/qca/forward/types/schedule_run_list_params.py +20 -0
  197. qca-0.0.1.dev1/src/qca/forward/types/schedule_run_params.py +11 -0
  198. qca-0.0.1.dev1/src/qca/forward/types/schedule_run_retrieve_params.py +11 -0
  199. qca-0.0.1.dev1/src/qca/forward/types/schedule_run_trigger_context.py +13 -0
  200. qca-0.0.1.dev1/src/qca/forward/types/schedule_sinks_item.py +16 -0
  201. qca-0.0.1.dev1/src/qca/forward/types/schedule_sinks_item_target.py +12 -0
  202. qca-0.0.1.dev1/src/qca/forward/types/schedule_trigger_policy.py +15 -0
  203. qca-0.0.1.dev1/src/qca/forward/types/schedule_unpause_params.py +11 -0
  204. qca-0.0.1.dev1/src/qca/forward/types/schedule_update_params.py +20 -0
  205. qca-0.0.1.dev1/src/qca/forward/types/session.py +33 -0
  206. qca-0.0.1.dev1/src/qca/forward/types/session_archive_params.py +11 -0
  207. qca-0.0.1.dev1/src/qca/forward/types/session_cancel_params.py +11 -0
  208. qca-0.0.1.dev1/src/qca/forward/types/session_config.py +11 -0
  209. qca-0.0.1.dev1/src/qca/forward/types/session_create_params.py +21 -0
  210. qca-0.0.1.dev1/src/qca/forward/types/session_create_params_config_param.py +11 -0
  211. qca-0.0.1.dev1/src/qca/forward/types/session_event.py +52 -0
  212. qca-0.0.1.dev1/src/qca/forward/types/session_event_list_params.py +18 -0
  213. qca-0.0.1.dev1/src/qca/forward/types/session_event_param.py +24 -0
  214. qca-0.0.1.dev1/src/qca/forward/types/session_event_send_params.py +15 -0
  215. qca-0.0.1.dev1/src/qca/forward/types/session_event_send_response.py +14 -0
  216. qca-0.0.1.dev1/src/qca/forward/types/session_event_stream_params.py +14 -0
  217. qca-0.0.1.dev1/src/qca/forward/types/session_list_params.py +27 -0
  218. qca-0.0.1.dev1/src/qca/forward/types/session_resource.py +17 -0
  219. qca-0.0.1.dev1/src/qca/forward/types/session_resource_add_params.py +13 -0
  220. qca-0.0.1.dev1/src/qca/forward/types/session_resource_spec_param.py +13 -0
  221. qca-0.0.1.dev1/src/qca/forward/types/session_stats.py +12 -0
  222. qca-0.0.1.dev1/src/qca/forward/types/session_template.py +18 -0
  223. qca-0.0.1.dev1/src/qca/forward/types/session_thread.py +27 -0
  224. qca-0.0.1.dev1/src/qca/forward/types/session_thread_archive_params.py +11 -0
  225. qca-0.0.1.dev1/src/qca/forward/types/session_thread_event_list_params.py +13 -0
  226. qca-0.0.1.dev1/src/qca/forward/types/session_thread_event_stream_params.py +11 -0
  227. qca-0.0.1.dev1/src/qca/forward/types/session_thread_list_params.py +13 -0
  228. qca-0.0.1.dev1/src/qca/forward/types/session_thread_stop_reason.py +11 -0
  229. qca-0.0.1.dev1/src/qca/forward/types/session_update_params.py +17 -0
  230. qca-0.0.1.dev1/src/qca/forward/types/session_update_params_config_param.py +11 -0
  231. qca-0.0.1.dev1/src/qca/forward/types/session_usage.py +11 -0
  232. qca-0.0.1.dev1/src/qca/forward/types/skill.py +23 -0
  233. qca-0.0.1.dev1/src/qca/forward/types/skill_binding.py +14 -0
  234. qca-0.0.1.dev1/src/qca/forward/types/skill_binding_param.py +14 -0
  235. qca-0.0.1.dev1/src/qca/forward/types/skill_create_params.py +20 -0
  236. qca-0.0.1.dev1/src/qca/forward/types/skill_list_params.py +17 -0
  237. qca-0.0.1.dev1/src/qca/forward/types/skill_override.py +13 -0
  238. qca-0.0.1.dev1/src/qca/forward/types/skill_override_param.py +13 -0
  239. qca-0.0.1.dev1/src/qca/forward/types/skill_retrieve_params.py +11 -0
  240. qca-0.0.1.dev1/src/qca/forward/types/skill_update_params.py +16 -0
  241. qca-0.0.1.dev1/src/qca/forward/types/skill_version.py +22 -0
  242. qca-0.0.1.dev1/src/qca/forward/types/skill_version_create_params.py +13 -0
  243. qca-0.0.1.dev1/src/qca/forward/types/skill_version_list_params.py +12 -0
  244. qca-0.0.1.dev1/src/qca/forward/types/system_override.py +12 -0
  245. qca-0.0.1.dev1/src/qca/forward/types/system_override_param.py +12 -0
  246. qca-0.0.1.dev1/src/qca/forward/types/template.py +39 -0
  247. qca-0.0.1.dev1/src/qca/forward/types/template_archive_params.py +11 -0
  248. qca-0.0.1.dev1/src/qca/forward/types/template_clone_params.py +13 -0
  249. qca-0.0.1.dev1/src/qca/forward/types/template_create_params.py +35 -0
  250. qca-0.0.1.dev1/src/qca/forward/types/template_list_params.py +14 -0
  251. qca-0.0.1.dev1/src/qca/forward/types/template_update_params.py +35 -0
  252. qca-0.0.1.dev1/src/qca/forward/types/tool.py +21 -0
  253. qca-0.0.1.dev1/src/qca/forward/types/tool_config.py +16 -0
  254. qca-0.0.1.dev1/src/qca/forward/types/tool_config_param.py +16 -0
  255. qca-0.0.1.dev1/src/qca/forward/types/tool_override.py +15 -0
  256. qca-0.0.1.dev1/src/qca/forward/types/tool_override_param.py +15 -0
  257. qca-0.0.1.dev1/src/qca/forward/types/tool_param.py +21 -0
  258. qca-0.0.1.dev1/src/qca/forward/types/vault.py +18 -0
  259. qca-0.0.1.dev1/src/qca/forward/types/vault_create_params.py +13 -0
  260. qca-0.0.1.dev1/src/qca/forward/types/vault_credential.py +22 -0
  261. qca-0.0.1.dev1/src/qca/forward/types/vault_credential_auth.py +12 -0
  262. qca-0.0.1.dev1/src/qca/forward/types/vault_credential_create_params.py +14 -0
  263. qca-0.0.1.dev1/src/qca/forward/types/vault_credential_list_params.py +15 -0
  264. qca-0.0.1.dev1/src/qca/forward/types/vault_list_params.py +15 -0
  265. qca-0.0.1.dev1/src/qca/managed/__init__.py +7 -0
  266. qca-0.0.1.dev1/src/qca/managed/_client.py +115 -0
  267. qca-0.0.1.dev1/src/qca/managed/resources/__init__.py +10 -0
  268. qca-0.0.1.dev1/src/qca/managed/resources/agents/__init__.py +4 -0
  269. qca-0.0.1.dev1/src/qca/managed/resources/agents/agents.py +386 -0
  270. qca-0.0.1.dev1/src/qca/managed/resources/agents/versions.py +71 -0
  271. qca-0.0.1.dev1/src/qca/managed/resources/deployment_runs.py +160 -0
  272. qca-0.0.1.dev1/src/qca/managed/resources/deployments.py +552 -0
  273. qca-0.0.1.dev1/src/qca/managed/resources/dreams.py +303 -0
  274. qca-0.0.1.dev1/src/qca/managed/resources/environments/__init__.py +4 -0
  275. qca-0.0.1.dev1/src/qca/managed/resources/environments/environments.py +359 -0
  276. qca-0.0.1.dev1/src/qca/managed/resources/environments/work.py +449 -0
  277. qca-0.0.1.dev1/src/qca/managed/resources/files.py +295 -0
  278. qca-0.0.1.dev1/src/qca/managed/resources/memory_stores/__init__.py +6 -0
  279. qca-0.0.1.dev1/src/qca/managed/resources/memory_stores/memories.py +358 -0
  280. qca-0.0.1.dev1/src/qca/managed/resources/memory_stores/memory_stores.py +362 -0
  281. qca-0.0.1.dev1/src/qca/managed/resources/memory_stores/memory_versions.py +228 -0
  282. qca-0.0.1.dev1/src/qca/managed/resources/models.py +71 -0
  283. qca-0.0.1.dev1/src/qca/managed/resources/sessions/__init__.py +6 -0
  284. qca-0.0.1.dev1/src/qca/managed/resources/sessions/events.py +240 -0
  285. qca-0.0.1.dev1/src/qca/managed/resources/sessions/resources.py +303 -0
  286. qca-0.0.1.dev1/src/qca/managed/resources/sessions/sessions.py +472 -0
  287. qca-0.0.1.dev1/src/qca/managed/resources/sessions/threads/__init__.py +4 -0
  288. qca-0.0.1.dev1/src/qca/managed/resources/sessions/threads/events.py +141 -0
  289. qca-0.0.1.dev1/src/qca/managed/resources/sessions/threads/threads.py +185 -0
  290. qca-0.0.1.dev1/src/qca/managed/resources/skills/__init__.py +4 -0
  291. qca-0.0.1.dev1/src/qca/managed/resources/skills/skills.py +254 -0
  292. qca-0.0.1.dev1/src/qca/managed/resources/skills/versions.py +273 -0
  293. qca-0.0.1.dev1/src/qca/managed/resources/vaults/__init__.py +4 -0
  294. qca-0.0.1.dev1/src/qca/managed/resources/vaults/credentials.py +437 -0
  295. qca-0.0.1.dev1/src/qca/managed/resources/vaults/vaults.py +296 -0
  296. qca-0.0.1.dev1/src/qca/managed/types/__init__.py +421 -0
  297. qca-0.0.1.dev1/src/qca/managed/types/actor_union.py +15 -0
  298. qca-0.0.1.dev1/src/qca/managed/types/advisor_params.py +12 -0
  299. qca-0.0.1.dev1/src/qca/managed/types/agent.py +33 -0
  300. qca-0.0.1.dev1/src/qca/managed/types/agent_archive_params.py +12 -0
  301. qca-0.0.1.dev1/src/qca/managed/types/agent_create_params.py +31 -0
  302. qca-0.0.1.dev1/src/qca/managed/types/agent_list_params.py +18 -0
  303. qca-0.0.1.dev1/src/qca/managed/types/agent_mcp_tool_result_event_content_union.py +21 -0
  304. qca-0.0.1.dev1/src/qca/managed/types/agent_message_event_content_union.py +12 -0
  305. qca-0.0.1.dev1/src/qca/managed/types/agent_params.py +13 -0
  306. qca-0.0.1.dev1/src/qca/managed/types/agent_reference.py +13 -0
  307. qca-0.0.1.dev1/src/qca/managed/types/agent_retrieve_params.py +13 -0
  308. qca-0.0.1.dev1/src/qca/managed/types/agent_skill_union.py +13 -0
  309. qca-0.0.1.dev1/src/qca/managed/types/agent_thread_message_received_event_content_union.py +20 -0
  310. qca-0.0.1.dev1/src/qca/managed/types/agent_thread_message_received_event_content_union_source.py +15 -0
  311. qca-0.0.1.dev1/src/qca/managed/types/agent_thread_message_sent_event_content_union.py +18 -0
  312. qca-0.0.1.dev1/src/qca/managed/types/agent_thread_message_sent_event_content_union_source.py +15 -0
  313. qca-0.0.1.dev1/src/qca/managed/types/agent_tool_config_union.py +22 -0
  314. qca-0.0.1.dev1/src/qca/managed/types/agent_tool_config_union_permission_policy.py +11 -0
  315. qca-0.0.1.dev1/src/qca/managed/types/agent_tool_result_event_content_union.py +21 -0
  316. qca-0.0.1.dev1/src/qca/managed/types/agent_tool_union.py +25 -0
  317. qca-0.0.1.dev1/src/qca/managed/types/agent_tool_union_default_config.py +15 -0
  318. qca-0.0.1.dev1/src/qca/managed/types/agent_tool_union_default_config_permission_policy.py +11 -0
  319. qca-0.0.1.dev1/src/qca/managed/types/agent_toolset20260401_params.py +37 -0
  320. qca-0.0.1.dev1/src/qca/managed/types/agent_toolset_default_config_params.py +16 -0
  321. qca-0.0.1.dev1/src/qca/managed/types/agent_update_params.py +32 -0
  322. qca-0.0.1.dev1/src/qca/managed/types/agent_version_list_params.py +14 -0
  323. qca-0.0.1.dev1/src/qca/managed/types/agent_with_overrides_params.py +27 -0
  324. qca-0.0.1.dev1/src/qca/managed/types/always_allow_policy_param.py +11 -0
  325. qca-0.0.1.dev1/src/qca/managed/types/always_ask_policy_param.py +11 -0
  326. qca-0.0.1.dev1/src/qca/managed/types/base64_document_source_param.py +13 -0
  327. qca-0.0.1.dev1/src/qca/managed/types/base64_image_source_param.py +13 -0
  328. qca-0.0.1.dev1/src/qca/managed/types/bash_tool_config_params.py +18 -0
  329. qca-0.0.1.dev1/src/qca/managed/types/branch_checkout_param.py +12 -0
  330. qca-0.0.1.dev1/src/qca/managed/types/budget_limit.py +15 -0
  331. qca-0.0.1.dev1/src/qca/managed/types/budget_limit_param.py +15 -0
  332. qca-0.0.1.dev1/src/qca/managed/types/cache_creation_usage.py +12 -0
  333. qca-0.0.1.dev1/src/qca/managed/types/capability_support.py +11 -0
  334. qca-0.0.1.dev1/src/qca/managed/types/cloud_config_networking_union.py +14 -0
  335. qca-0.0.1.dev1/src/qca/managed/types/cloud_config_params.py +19 -0
  336. qca-0.0.1.dev1/src/qca/managed/types/commit_checkout_param.py +12 -0
  337. qca-0.0.1.dev1/src/qca/managed/types/context_management_capability.py +17 -0
  338. qca-0.0.1.dev1/src/qca/managed/types/credential.py +23 -0
  339. qca-0.0.1.dev1/src/qca/managed/types/credential_auth_union.py +23 -0
  340. qca-0.0.1.dev1/src/qca/managed/types/credential_validation.py +23 -0
  341. qca-0.0.1.dev1/src/qca/managed/types/custom_skill_params.py +13 -0
  342. qca-0.0.1.dev1/src/qca/managed/types/custom_tool_input_schema.py +13 -0
  343. qca-0.0.1.dev1/src/qca/managed/types/custom_tool_input_schema_param.py +13 -0
  344. qca-0.0.1.dev1/src/qca/managed/types/custom_tool_params.py +17 -0
  345. qca-0.0.1.dev1/src/qca/managed/types/delete_session_resource.py +12 -0
  346. qca-0.0.1.dev1/src/qca/managed/types/deleted_credential.py +12 -0
  347. qca-0.0.1.dev1/src/qca/managed/types/deleted_file.py +12 -0
  348. qca-0.0.1.dev1/src/qca/managed/types/deleted_memory.py +12 -0
  349. qca-0.0.1.dev1/src/qca/managed/types/deleted_memory_store.py +12 -0
  350. qca-0.0.1.dev1/src/qca/managed/types/deleted_session.py +12 -0
  351. qca-0.0.1.dev1/src/qca/managed/types/deleted_skill.py +12 -0
  352. qca-0.0.1.dev1/src/qca/managed/types/deleted_skill_version.py +12 -0
  353. qca-0.0.1.dev1/src/qca/managed/types/deleted_vault.py +12 -0
  354. qca-0.0.1.dev1/src/qca/managed/types/delta_content.py +16 -0
  355. qca-0.0.1.dev1/src/qca/managed/types/deployment.py +37 -0
  356. qca-0.0.1.dev1/src/qca/managed/types/deployment_archive_params.py +12 -0
  357. qca-0.0.1.dev1/src/qca/managed/types/deployment_create_params.py +36 -0
  358. qca-0.0.1.dev1/src/qca/managed/types/deployment_initial_event_union.py +20 -0
  359. qca-0.0.1.dev1/src/qca/managed/types/deployment_list_params.py +22 -0
  360. qca-0.0.1.dev1/src/qca/managed/types/deployment_pause_params.py +12 -0
  361. qca-0.0.1.dev1/src/qca/managed/types/deployment_paused_reason_error_union.py +11 -0
  362. qca-0.0.1.dev1/src/qca/managed/types/deployment_paused_reason_union.py +15 -0
  363. qca-0.0.1.dev1/src/qca/managed/types/deployment_retrieve_params.py +12 -0
  364. qca-0.0.1.dev1/src/qca/managed/types/deployment_run.py +24 -0
  365. qca-0.0.1.dev1/src/qca/managed/types/deployment_run_error_union.py +12 -0
  366. qca-0.0.1.dev1/src/qca/managed/types/deployment_run_list_params.py +24 -0
  367. qca-0.0.1.dev1/src/qca/managed/types/deployment_run_params.py +12 -0
  368. qca-0.0.1.dev1/src/qca/managed/types/deployment_run_retrieve_params.py +12 -0
  369. qca-0.0.1.dev1/src/qca/managed/types/deployment_unpause_params.py +12 -0
  370. qca-0.0.1.dev1/src/qca/managed/types/deployment_update_params.py +34 -0
  371. qca-0.0.1.dev1/src/qca/managed/types/deployment_user_define_outcome_event_rubric_union.py +13 -0
  372. qca-0.0.1.dev1/src/qca/managed/types/deployment_user_message_event_content_union.py +18 -0
  373. qca-0.0.1.dev1/src/qca/managed/types/deployment_user_message_event_content_union_source.py +15 -0
  374. qca-0.0.1.dev1/src/qca/managed/types/document_block_param.py +22 -0
  375. qca-0.0.1.dev1/src/qca/managed/types/dream.py +33 -0
  376. qca-0.0.1.dev1/src/qca/managed/types/dream_archive_params.py +12 -0
  377. qca-0.0.1.dev1/src/qca/managed/types/dream_cancel_params.py +12 -0
  378. qca-0.0.1.dev1/src/qca/managed/types/dream_create_params.py +23 -0
  379. qca-0.0.1.dev1/src/qca/managed/types/dream_error.py +12 -0
  380. qca-0.0.1.dev1/src/qca/managed/types/dream_input_union.py +13 -0
  381. qca-0.0.1.dev1/src/qca/managed/types/dream_list_params.py +19 -0
  382. qca-0.0.1.dev1/src/qca/managed/types/dream_memory_store_input_param.py +12 -0
  383. qca-0.0.1.dev1/src/qca/managed/types/dream_model_config.py +12 -0
  384. qca-0.0.1.dev1/src/qca/managed/types/dream_model_config_param.py +12 -0
  385. qca-0.0.1.dev1/src/qca/managed/types/dream_output.py +12 -0
  386. qca-0.0.1.dev1/src/qca/managed/types/dream_retrieve_params.py +12 -0
  387. qca-0.0.1.dev1/src/qca/managed/types/dream_sessions_input_param.py +12 -0
  388. qca-0.0.1.dev1/src/qca/managed/types/dream_usage.py +14 -0
  389. qca-0.0.1.dev1/src/qca/managed/types/edit_tool_config_params.py +18 -0
  390. qca-0.0.1.dev1/src/qca/managed/types/effort_capability.py +19 -0
  391. qca-0.0.1.dev1/src/qca/managed/types/effort_high_param.py +11 -0
  392. qca-0.0.1.dev1/src/qca/managed/types/effort_low_param.py +11 -0
  393. qca-0.0.1.dev1/src/qca/managed/types/effort_max_param.py +11 -0
  394. qca-0.0.1.dev1/src/qca/managed/types/effort_medium_param.py +11 -0
  395. qca-0.0.1.dev1/src/qca/managed/types/effort_xhigh_param.py +11 -0
  396. qca-0.0.1.dev1/src/qca/managed/types/environment.py +23 -0
  397. qca-0.0.1.dev1/src/qca/managed/types/environment_archive_params.py +12 -0
  398. qca-0.0.1.dev1/src/qca/managed/types/environment_config_union.py +17 -0
  399. qca-0.0.1.dev1/src/qca/managed/types/environment_create_params.py +21 -0
  400. qca-0.0.1.dev1/src/qca/managed/types/environment_delete_params.py +12 -0
  401. qca-0.0.1.dev1/src/qca/managed/types/environment_delete_response.py +12 -0
  402. qca-0.0.1.dev1/src/qca/managed/types/environment_list_params.py +18 -0
  403. qca-0.0.1.dev1/src/qca/managed/types/environment_retrieve_params.py +12 -0
  404. qca-0.0.1.dev1/src/qca/managed/types/environment_update_params.py +21 -0
  405. qca-0.0.1.dev1/src/qca/managed/types/environment_variable_auth_response_networking_union.py +12 -0
  406. qca-0.0.1.dev1/src/qca/managed/types/environment_variable_create_params.py +20 -0
  407. qca-0.0.1.dev1/src/qca/managed/types/environment_variable_update_params.py +19 -0
  408. qca-0.0.1.dev1/src/qca/managed/types/environment_work_ack_params.py +11 -0
  409. qca-0.0.1.dev1/src/qca/managed/types/environment_work_heartbeat_params.py +13 -0
  410. qca-0.0.1.dev1/src/qca/managed/types/environment_work_list_params.py +15 -0
  411. qca-0.0.1.dev1/src/qca/managed/types/environment_work_poll_params.py +14 -0
  412. qca-0.0.1.dev1/src/qca/managed/types/environment_work_retrieve_params.py +12 -0
  413. qca-0.0.1.dev1/src/qca/managed/types/environment_work_stats_params.py +12 -0
  414. qca-0.0.1.dev1/src/qca/managed/types/environment_work_stop_params.py +13 -0
  415. qca-0.0.1.dev1/src/qca/managed/types/environment_work_update_params.py +13 -0
  416. qca-0.0.1.dev1/src/qca/managed/types/file_delete_params.py +12 -0
  417. qca-0.0.1.dev1/src/qca/managed/types/file_document_source_param.py +12 -0
  418. qca-0.0.1.dev1/src/qca/managed/types/file_download_params.py +12 -0
  419. qca-0.0.1.dev1/src/qca/managed/types/file_get_metadata_params.py +12 -0
  420. qca-0.0.1.dev1/src/qca/managed/types/file_image_source_param.py +12 -0
  421. qca-0.0.1.dev1/src/qca/managed/types/file_list_params.py +19 -0
  422. qca-0.0.1.dev1/src/qca/managed/types/file_metadata.py +25 -0
  423. qca-0.0.1.dev1/src/qca/managed/types/file_resource.py +17 -0
  424. qca-0.0.1.dev1/src/qca/managed/types/file_resource_params.py +13 -0
  425. qca-0.0.1.dev1/src/qca/managed/types/file_rubric_params.py +12 -0
  426. qca-0.0.1.dev1/src/qca/managed/types/file_scope.py +12 -0
  427. qca-0.0.1.dev1/src/qca/managed/types/file_upload_params.py +18 -0
  428. qca-0.0.1.dev1/src/qca/managed/types/git_hub_repository_resource_checkout_union.py +13 -0
  429. qca-0.0.1.dev1/src/qca/managed/types/git_hub_repository_resource_config_checkout_union.py +13 -0
  430. qca-0.0.1.dev1/src/qca/managed/types/git_hub_repository_resource_params.py +19 -0
  431. qca-0.0.1.dev1/src/qca/managed/types/glob_tool_config_params.py +18 -0
  432. qca-0.0.1.dev1/src/qca/managed/types/grep_tool_config_params.py +18 -0
  433. qca-0.0.1.dev1/src/qca/managed/types/image_block_param.py +17 -0
  434. qca-0.0.1.dev1/src/qca/managed/types/injection_location_params.py +12 -0
  435. qca-0.0.1.dev1/src/qca/managed/types/injection_location_response.py +12 -0
  436. qca-0.0.1.dev1/src/qca/managed/types/injection_location_update_params.py +12 -0
  437. qca-0.0.1.dev1/src/qca/managed/types/limited_credential_networking_params.py +12 -0
  438. qca-0.0.1.dev1/src/qca/managed/types/limited_network_params.py +14 -0
  439. qca-0.0.1.dev1/src/qca/managed/types/mcp_probe.py +15 -0
  440. qca-0.0.1.dev1/src/qca/managed/types/mcp_server_url_definition.py +13 -0
  441. qca-0.0.1.dev1/src/qca/managed/types/mcp_tool_config.py +16 -0
  442. qca-0.0.1.dev1/src/qca/managed/types/mcp_tool_config_params.py +17 -0
  443. qca-0.0.1.dev1/src/qca/managed/types/mcp_tool_config_permission_policy_union.py +11 -0
  444. qca-0.0.1.dev1/src/qca/managed/types/mcp_toolset_default_config_params.py +16 -0
  445. qca-0.0.1.dev1/src/qca/managed/types/mcp_toolset_params.py +18 -0
  446. qca-0.0.1.dev1/src/qca/managed/types/mcpo_auth_create_params.py +19 -0
  447. qca-0.0.1.dev1/src/qca/managed/types/mcpo_auth_refresh_params.py +23 -0
  448. qca-0.0.1.dev1/src/qca/managed/types/mcpo_auth_refresh_response.py +18 -0
  449. qca-0.0.1.dev1/src/qca/managed/types/mcpo_auth_refresh_response_token_endpoint_auth_union.py +11 -0
  450. qca-0.0.1.dev1/src/qca/managed/types/mcpo_auth_refresh_update_params.py +17 -0
  451. qca-0.0.1.dev1/src/qca/managed/types/mcpo_auth_update_params.py +18 -0
  452. qca-0.0.1.dev1/src/qca/managed/types/memory.py +22 -0
  453. qca-0.0.1.dev1/src/qca/managed/types/memory_list_item_union.py +21 -0
  454. qca-0.0.1.dev1/src/qca/managed/types/memory_store.py +19 -0
  455. qca-0.0.1.dev1/src/qca/managed/types/memory_store_archive_params.py +12 -0
  456. qca-0.0.1.dev1/src/qca/managed/types/memory_store_create_params.py +15 -0
  457. qca-0.0.1.dev1/src/qca/managed/types/memory_store_delete_params.py +12 -0
  458. qca-0.0.1.dev1/src/qca/managed/types/memory_store_list_params.py +19 -0
  459. qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_create_params.py +16 -0
  460. qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_delete_params.py +13 -0
  461. qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_list_params.py +17 -0
  462. qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_retrieve_params.py +13 -0
  463. qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_update_params.py +21 -0
  464. qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_version_list_params.py +23 -0
  465. qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_version_redact_params.py +12 -0
  466. qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_version_retrieve_params.py +13 -0
  467. qca-0.0.1.dev1/src/qca/managed/types/memory_store_resource_param.py +14 -0
  468. qca-0.0.1.dev1/src/qca/managed/types/memory_store_retrieve_params.py +12 -0
  469. qca-0.0.1.dev1/src/qca/managed/types/memory_store_update_params.py +15 -0
  470. qca-0.0.1.dev1/src/qca/managed/types/memory_version.py +27 -0
  471. qca-0.0.1.dev1/src/qca/managed/types/model_capabilities.py +25 -0
  472. qca-0.0.1.dev1/src/qca/managed/types/model_config.py +18 -0
  473. qca-0.0.1.dev1/src/qca/managed/types/model_config_effort_union.py +11 -0
  474. qca-0.0.1.dev1/src/qca/managed/types/model_config_params.py +39 -0
  475. qca-0.0.1.dev1/src/qca/managed/types/model_info.py +30 -0
  476. qca-0.0.1.dev1/src/qca/managed/types/model_list_params.py +15 -0
  477. qca-0.0.1.dev1/src/qca/managed/types/monetary_amount.py +12 -0
  478. qca-0.0.1.dev1/src/qca/managed/types/monetary_amount_param.py +12 -0
  479. qca-0.0.1.dev1/src/qca/managed/types/multiagent.py +15 -0
  480. qca-0.0.1.dev1/src/qca/managed/types/multiagent_agent_union.py +17 -0
  481. qca-0.0.1.dev1/src/qca/managed/types/multiagent_params.py +17 -0
  482. qca-0.0.1.dev1/src/qca/managed/types/multiagent_self_params.py +11 -0
  483. qca-0.0.1.dev1/src/qca/managed/types/outcome_evaluation_resource.py +18 -0
  484. qca-0.0.1.dev1/src/qca/managed/types/output_behavior_create_new_param.py +11 -0
  485. qca-0.0.1.dev1/src/qca/managed/types/output_behavior_union.py +12 -0
  486. qca-0.0.1.dev1/src/qca/managed/types/output_behavior_update_existing_param.py +12 -0
  487. qca-0.0.1.dev1/src/qca/managed/types/packages.py +17 -0
  488. qca-0.0.1.dev1/src/qca/managed/types/packages_params.py +17 -0
  489. qca-0.0.1.dev1/src/qca/managed/types/plain_text_document_source_param.py +13 -0
  490. qca-0.0.1.dev1/src/qca/managed/types/precondition_param.py +12 -0
  491. qca-0.0.1.dev1/src/qca/managed/types/qoder_skill_params.py +13 -0
  492. qca-0.0.1.dev1/src/qca/managed/types/read_tool_config_params.py +18 -0
  493. qca-0.0.1.dev1/src/qca/managed/types/redacted_block_param.py +11 -0
  494. qca-0.0.1.dev1/src/qca/managed/types/refresh_http_response.py +14 -0
  495. qca-0.0.1.dev1/src/qca/managed/types/refresh_object.py +15 -0
  496. qca-0.0.1.dev1/src/qca/managed/types/schedule.py +16 -0
  497. qca-0.0.1.dev1/src/qca/managed/types/schedule_params.py +13 -0
  498. qca-0.0.1.dev1/src/qca/managed/types/search_result_block_param.py +19 -0
  499. qca-0.0.1.dev1/src/qca/managed/types/search_result_citations.py +11 -0
  500. qca-0.0.1.dev1/src/qca/managed/types/search_result_citations_param.py +9 -0
  501. qca-0.0.1.dev1/src/qca/managed/types/search_result_content.py +12 -0
  502. qca-0.0.1.dev1/src/qca/managed/types/search_result_content_param.py +12 -0
  503. qca-0.0.1.dev1/src/qca/managed/types/self_hosted_config_params.py +11 -0
  504. qca-0.0.1.dev1/src/qca/managed/types/self_hosted_work.py +26 -0
  505. qca-0.0.1.dev1/src/qca/managed/types/self_hosted_work_heartbeat_response.py +15 -0
  506. qca-0.0.1.dev1/src/qca/managed/types/self_hosted_work_queue_stats.py +15 -0
  507. qca-0.0.1.dev1/src/qca/managed/types/send_session_events.py +14 -0
  508. qca-0.0.1.dev1/src/qca/managed/types/send_session_events_data_union.py +39 -0
  509. qca-0.0.1.dev1/src/qca/managed/types/server_tool_usage.py +12 -0
  510. qca-0.0.1.dev1/src/qca/managed/types/session.py +37 -0
  511. qca-0.0.1.dev1/src/qca/managed/types/session_agent.py +28 -0
  512. qca-0.0.1.dev1/src/qca/managed/types/session_agent_skill_union.py +13 -0
  513. qca-0.0.1.dev1/src/qca/managed/types/session_agent_tool_union.py +25 -0
  514. qca-0.0.1.dev1/src/qca/managed/types/session_agent_tool_union_default_config.py +17 -0
  515. qca-0.0.1.dev1/src/qca/managed/types/session_agent_tool_union_default_config_permission_policy.py +11 -0
  516. qca-0.0.1.dev1/src/qca/managed/types/session_agent_update_param.py +24 -0
  517. qca-0.0.1.dev1/src/qca/managed/types/session_archive_params.py +12 -0
  518. qca-0.0.1.dev1/src/qca/managed/types/session_create_params.py +31 -0
  519. qca-0.0.1.dev1/src/qca/managed/types/session_delete_params.py +12 -0
  520. qca-0.0.1.dev1/src/qca/managed/types/session_error_event_error_union.py +19 -0
  521. qca-0.0.1.dev1/src/qca/managed/types/session_error_event_error_union_retry_status.py +11 -0
  522. qca-0.0.1.dev1/src/qca/managed/types/session_event.py +77 -0
  523. qca-0.0.1.dev1/src/qca/managed/types/session_event_list_params.py +23 -0
  524. qca-0.0.1.dev1/src/qca/managed/types/session_event_send_params.py +34 -0
  525. qca-0.0.1.dev1/src/qca/managed/types/session_event_stop_reason.py +12 -0
  526. qca-0.0.1.dev1/src/qca/managed/types/session_event_stream_params.py +13 -0
  527. qca-0.0.1.dev1/src/qca/managed/types/session_event_usage.py +24 -0
  528. qca-0.0.1.dev1/src/qca/managed/types/session_list_params.py +26 -0
  529. qca-0.0.1.dev1/src/qca/managed/types/session_multiagent_coordinator.py +15 -0
  530. qca-0.0.1.dev1/src/qca/managed/types/session_multiagent_coordinator_agent_union.py +26 -0
  531. qca-0.0.1.dev1/src/qca/managed/types/session_resource_add_params.py +15 -0
  532. qca-0.0.1.dev1/src/qca/managed/types/session_resource_config_union.py +21 -0
  533. qca-0.0.1.dev1/src/qca/managed/types/session_resource_delete_params.py +12 -0
  534. qca-0.0.1.dev1/src/qca/managed/types/session_resource_get_response_union.py +27 -0
  535. qca-0.0.1.dev1/src/qca/managed/types/session_resource_list_params.py +16 -0
  536. qca-0.0.1.dev1/src/qca/managed/types/session_resource_retrieve_params.py +12 -0
  537. qca-0.0.1.dev1/src/qca/managed/types/session_resource_union.py +27 -0
  538. qca-0.0.1.dev1/src/qca/managed/types/session_resource_update_params.py +14 -0
  539. qca-0.0.1.dev1/src/qca/managed/types/session_resource_update_response_union.py +27 -0
  540. qca-0.0.1.dev1/src/qca/managed/types/session_retrieve_params.py +12 -0
  541. qca-0.0.1.dev1/src/qca/managed/types/session_stats.py +12 -0
  542. qca-0.0.1.dev1/src/qca/managed/types/session_stream_event.py +82 -0
  543. qca-0.0.1.dev1/src/qca/managed/types/session_stream_event_stop_reason.py +12 -0
  544. qca-0.0.1.dev1/src/qca/managed/types/session_stream_event_usage.py +24 -0
  545. qca-0.0.1.dev1/src/qca/managed/types/session_thread.py +27 -0
  546. qca-0.0.1.dev1/src/qca/managed/types/session_thread_agent_skill_union.py +13 -0
  547. qca-0.0.1.dev1/src/qca/managed/types/session_thread_agent_tool_union.py +25 -0
  548. qca-0.0.1.dev1/src/qca/managed/types/session_thread_agent_tool_union_default_config.py +17 -0
  549. qca-0.0.1.dev1/src/qca/managed/types/session_thread_agent_tool_union_default_config_permission_policy.py +11 -0
  550. qca-0.0.1.dev1/src/qca/managed/types/session_thread_agent_union.py +26 -0
  551. qca-0.0.1.dev1/src/qca/managed/types/session_thread_archive_params.py +12 -0
  552. qca-0.0.1.dev1/src/qca/managed/types/session_thread_event_list_params.py +16 -0
  553. qca-0.0.1.dev1/src/qca/managed/types/session_thread_event_stream_params.py +13 -0
  554. qca-0.0.1.dev1/src/qca/managed/types/session_thread_list_params.py +14 -0
  555. qca-0.0.1.dev1/src/qca/managed/types/session_thread_retrieve_params.py +12 -0
  556. qca-0.0.1.dev1/src/qca/managed/types/session_thread_stats.py +13 -0
  557. qca-0.0.1.dev1/src/qca/managed/types/session_thread_usage.py +22 -0
  558. qca-0.0.1.dev1/src/qca/managed/types/session_update_params.py +22 -0
  559. qca-0.0.1.dev1/src/qca/managed/types/session_usage.py +22 -0
  560. qca-0.0.1.dev1/src/qca/managed/types/session_work_data.py +12 -0
  561. qca-0.0.1.dev1/src/qca/managed/types/skill.py +22 -0
  562. qca-0.0.1.dev1/src/qca/managed/types/skill_create_params.py +17 -0
  563. qca-0.0.1.dev1/src/qca/managed/types/skill_delete_params.py +12 -0
  564. qca-0.0.1.dev1/src/qca/managed/types/skill_list_params.py +19 -0
  565. qca-0.0.1.dev1/src/qca/managed/types/skill_retrieve_params.py +12 -0
  566. qca-0.0.1.dev1/src/qca/managed/types/skill_source.py +11 -0
  567. qca-0.0.1.dev1/src/qca/managed/types/skill_version.py +19 -0
  568. qca-0.0.1.dev1/src/qca/managed/types/skill_version_create_params.py +15 -0
  569. qca-0.0.1.dev1/src/qca/managed/types/skill_version_delete_params.py +12 -0
  570. qca-0.0.1.dev1/src/qca/managed/types/skill_version_download_params.py +12 -0
  571. qca-0.0.1.dev1/src/qca/managed/types/skill_version_list_params.py +14 -0
  572. qca-0.0.1.dev1/src/qca/managed/types/skill_version_retrieve_params.py +12 -0
  573. qca-0.0.1.dev1/src/qca/managed/types/span_model_usage.py +15 -0
  574. qca-0.0.1.dev1/src/qca/managed/types/start_event_preview_union.py +12 -0
  575. qca-0.0.1.dev1/src/qca/managed/types/static_bearer_create_params.py +13 -0
  576. qca-0.0.1.dev1/src/qca/managed/types/static_bearer_update_params.py +12 -0
  577. qca-0.0.1.dev1/src/qca/managed/types/stream_session_thread_events_union.py +82 -0
  578. qca-0.0.1.dev1/src/qca/managed/types/stream_session_thread_events_union_stop_reason.py +12 -0
  579. qca-0.0.1.dev1/src/qca/managed/types/stream_session_thread_events_union_usage.py +24 -0
  580. qca-0.0.1.dev1/src/qca/managed/types/system_content_block.py +12 -0
  581. qca-0.0.1.dev1/src/qca/managed/types/system_content_block_param.py +12 -0
  582. qca-0.0.1.dev1/src/qca/managed/types/system_message_event_params.py +15 -0
  583. qca-0.0.1.dev1/src/qca/managed/types/text_block.py +12 -0
  584. qca-0.0.1.dev1/src/qca/managed/types/text_block_param.py +12 -0
  585. qca-0.0.1.dev1/src/qca/managed/types/text_rubric_params.py +12 -0
  586. qca-0.0.1.dev1/src/qca/managed/types/thinking_capability.py +15 -0
  587. qca-0.0.1.dev1/src/qca/managed/types/thinking_types.py +15 -0
  588. qca-0.0.1.dev1/src/qca/managed/types/token_endpoint_auth_basic_param.py +12 -0
  589. qca-0.0.1.dev1/src/qca/managed/types/token_endpoint_auth_basic_update_param.py +12 -0
  590. qca-0.0.1.dev1/src/qca/managed/types/token_endpoint_auth_none_param.py +11 -0
  591. qca-0.0.1.dev1/src/qca/managed/types/token_endpoint_auth_post_param.py +12 -0
  592. qca-0.0.1.dev1/src/qca/managed/types/token_endpoint_auth_post_update_param.py +12 -0
  593. qca-0.0.1.dev1/src/qca/managed/types/trigger_context_union.py +13 -0
  594. qca-0.0.1.dev1/src/qca/managed/types/unrestricted_credential_networking_params.py +11 -0
  595. qca-0.0.1.dev1/src/qca/managed/types/unrestricted_network_param.py +11 -0
  596. qca-0.0.1.dev1/src/qca/managed/types/url_document_source_param.py +12 -0
  597. qca-0.0.1.dev1/src/qca/managed/types/url_image_source_param.py +12 -0
  598. qca-0.0.1.dev1/src/qca/managed/types/urlmcp_server_params.py +13 -0
  599. qca-0.0.1.dev1/src/qca/managed/types/user_custom_tool_result_event_content_union.py +21 -0
  600. qca-0.0.1.dev1/src/qca/managed/types/user_custom_tool_result_event_params.py +20 -0
  601. qca-0.0.1.dev1/src/qca/managed/types/user_define_outcome_event_params.py +18 -0
  602. qca-0.0.1.dev1/src/qca/managed/types/user_define_outcome_event_rubric_union.py +13 -0
  603. qca-0.0.1.dev1/src/qca/managed/types/user_interrupt_event_params.py +12 -0
  604. qca-0.0.1.dev1/src/qca/managed/types/user_location.py +15 -0
  605. qca-0.0.1.dev1/src/qca/managed/types/user_location_param.py +15 -0
  606. qca-0.0.1.dev1/src/qca/managed/types/user_message_event_content_union.py +18 -0
  607. qca-0.0.1.dev1/src/qca/managed/types/user_message_event_content_union_source.py +15 -0
  608. qca-0.0.1.dev1/src/qca/managed/types/user_message_event_params.py +18 -0
  609. qca-0.0.1.dev1/src/qca/managed/types/user_tool_confirmation_event_params.py +14 -0
  610. qca-0.0.1.dev1/src/qca/managed/types/user_tool_result_event_content_union.py +21 -0
  611. qca-0.0.1.dev1/src/qca/managed/types/user_tool_result_event_params.py +20 -0
  612. qca-0.0.1.dev1/src/qca/managed/types/vault.py +18 -0
  613. qca-0.0.1.dev1/src/qca/managed/types/vault_archive_params.py +12 -0
  614. qca-0.0.1.dev1/src/qca/managed/types/vault_create_params.py +14 -0
  615. qca-0.0.1.dev1/src/qca/managed/types/vault_credential_archive_params.py +12 -0
  616. qca-0.0.1.dev1/src/qca/managed/types/vault_credential_create_params.py +20 -0
  617. qca-0.0.1.dev1/src/qca/managed/types/vault_credential_delete_params.py +12 -0
  618. qca-0.0.1.dev1/src/qca/managed/types/vault_credential_list_params.py +18 -0
  619. qca-0.0.1.dev1/src/qca/managed/types/vault_credential_mcpo_auth_validate_params.py +12 -0
  620. qca-0.0.1.dev1/src/qca/managed/types/vault_credential_retrieve_params.py +12 -0
  621. qca-0.0.1.dev1/src/qca/managed/types/vault_credential_update_params.py +19 -0
  622. qca-0.0.1.dev1/src/qca/managed/types/vault_delete_params.py +12 -0
  623. qca-0.0.1.dev1/src/qca/managed/types/vault_list_params.py +18 -0
  624. qca-0.0.1.dev1/src/qca/managed/types/vault_retrieve_params.py +12 -0
  625. qca-0.0.1.dev1/src/qca/managed/types/web_fetch_tool_config_params.py +21 -0
  626. qca-0.0.1.dev1/src/qca/managed/types/web_search_tool_config_params.py +22 -0
  627. qca-0.0.1.dev1/src/qca/managed/types/write_tool_config_params.py +18 -0
  628. qca-0.0.1.dev1/src/qca/py.typed +0 -0
  629. qca-0.0.1.dev1/src/qca.egg-info/PKG-INFO +279 -0
  630. qca-0.0.1.dev1/src/qca.egg-info/SOURCES.txt +637 -0
  631. qca-0.0.1.dev1/src/qca.egg-info/dependency_links.txt +1 -0
  632. qca-0.0.1.dev1/src/qca.egg-info/requires.txt +11 -0
  633. qca-0.0.1.dev1/src/qca.egg-info/top_level.txt +1 -0
  634. qca-0.0.1.dev1/tests/test_client.py +488 -0
  635. qca-0.0.1.dev1/tests/test_docs_contract.py +147 -0
  636. qca-0.0.1.dev1/tests/test_examples.py +506 -0
  637. qca-0.0.1.dev1/tests/test_pagination.py +120 -0
  638. qca-0.0.1.dev1/tests/test_resource_surface.py +182 -0
  639. qca-0.0.1.dev1/tests/test_streaming.py +169 -0
@@ -0,0 +1,15 @@
1
+ # Separate test accounts are supported. Do not commit real PATs.
2
+ QODER_FORWARD_PAT=
3
+ QODER_FORWARD_BASE_URL=https://api.qoder.com.cn/api/v1/forward
4
+ QODER_FORWARD_MODEL=
5
+
6
+ QODER_MANAGED_PAT=
7
+ QODER_MANAGED_BASE_URL=https://api.qoder.com.cn/api/v1/cloud
8
+ QODER_MANAGED_MODEL=
9
+
10
+ # Optional fallback for either mode.
11
+ QODER_ACCESS_TOKEN=
12
+
13
+ # pytest live tests require explicit opt-in in the process environment:
14
+ # QODER_RUN_LIVE=1 python -m pytest examples -m live -v
15
+ # Scenarios other than models create resources and may consume model credits.
qca-0.0.1.dev1/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Qoder
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,5 @@
1
+ include README.md Makefile
2
+ include .env.live.example
3
+ recursive-include src *.py py.typed
4
+ recursive-include examples *.py *.md
5
+ recursive-include docs *.md
@@ -0,0 +1,27 @@
1
+ PYTHON ?= python3
2
+ LIVE_ENV_FILE ?= .env.live
3
+ .DEFAULT_GOAL := test
4
+
5
+ .PHONY: test lint typecheck build test-live test-live-managed test-live-all
6
+
7
+ test:
8
+ $(PYTHON) -m pytest -q
9
+
10
+ lint:
11
+ $(PYTHON) -m ruff check src tests examples
12
+ $(PYTHON) -m ruff format --check src tests examples
13
+
14
+ typecheck:
15
+ $(PYTHON) -m mypy src/qca
16
+
17
+ build:
18
+ $(PYTHON) -m build
19
+
20
+ test-live:
21
+ QODER_RUN_LIVE=1 QODER_LIVE_ENV_FILE="$(LIVE_ENV_FILE)" $(PYTHON) -m pytest examples/forward -m live -v
22
+
23
+ test-live-managed:
24
+ QODER_RUN_LIVE=1 QODER_LIVE_ENV_FILE="$(LIVE_ENV_FILE)" $(PYTHON) -m pytest examples/managed -m live -v
25
+
26
+ test-live-all:
27
+ QODER_RUN_LIVE=1 QODER_LIVE_ENV_FILE="$(LIVE_ENV_FILE)" $(PYTHON) -m pytest examples -m live -v
@@ -0,0 +1,279 @@
1
+ Metadata-Version: 2.4
2
+ Name: qca
3
+ Version: 0.0.1.dev1
4
+ Summary: Typed synchronous and asynchronous clients for Qoder Cloud Agents
5
+ Author: Qoder
6
+ License-Expression: MIT
7
+ Project-URL: Repository, https://github.com/QoderAI/qoder-cloud-agents-sdk-python
8
+ Project-URL: Issues, https://github.com/QoderAI/qoder-cloud-agents-sdk-python/issues
9
+ Keywords: Qoder,Cloud Agents,Forward,Managed
10
+ Requires-Python: >=3.10
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Requires-Dist: httpx<1,>=0.27
14
+ Requires-Dist: pydantic<3,>=2.11
15
+ Requires-Dist: typing-extensions<5,>=4.12
16
+ Requires-Dist: anyio<5,>=4
17
+ Provides-Extra: dev
18
+ Requires-Dist: pytest>=8; extra == "dev"
19
+ Requires-Dist: pytest-asyncio>=0.24; extra == "dev"
20
+ Requires-Dist: ruff>=0.11; extra == "dev"
21
+ Requires-Dist: mypy>=1.15; extra == "dev"
22
+ Requires-Dist: build>=1.2; extra == "dev"
23
+ Dynamic: license-file
24
+
25
+ # Qoder Cloud Agents Python SDK
26
+
27
+ Python 3.10+,同步与原生异步客户端,支持类型化响应、自动分页、SSE 和文件传输。
28
+
29
+ 完整 API 参考:[Forward API](docs/forward-api.md) · [Managed API](docs/managed-api.md),包含初始化、同步/异步调用、分页、SSE、文件传输,以及全部资源方法的参数、返回类型与 HTTP 路由。
30
+
31
+ ## 安装与配置
32
+
33
+ ```bash
34
+ # 在本仓库中安装
35
+ python -m pip install .
36
+ # 开发环境
37
+ python -m pip install -e '.[dev]'
38
+ ```
39
+
40
+ ```python
41
+ from qca import Forward, Managed
42
+
43
+ with Forward() as client:
44
+ for model in client.models.list().data:
45
+ if model.is_enabled:
46
+ print(model.id)
47
+
48
+ with Managed() as client:
49
+ for agent in client.agents.list(limit=20):
50
+ print(agent.id, agent.name)
51
+ ```
52
+
53
+ 也可使用 `from qca.forward import Client` 或 `from qca.managed import Client`。两种模式独立实例化,使用各自的资源与类型。
54
+
55
+ | 配置 | Forward | Managed |
56
+ |---|---|---|
57
+ | 令牌 | `QODER_ACCESS_TOKEN` | `QODER_ACCESS_TOKEN` |
58
+ | API 根地址 | `QODER_FORWARD_BASE_URL` | `QODER_BASE_URL` |
59
+ | 默认地址 | `https://api.qoder.com/api/v1/forward/` | `https://api.qoder.com/api/v1/cloud/` |
60
+
61
+ 显式参数优先于环境变量。客户端不读取 `.env`;只有 examples 读取 `.env.live`。CN 环境需要显式配置对应根地址:
62
+
63
+ ```python
64
+ client = Forward(
65
+ access_token="your-access-token",
66
+ base_url="https://api.qoder.com.cn/api/v1/forward",
67
+ timeout=30.0,
68
+ max_retries=2,
69
+ )
70
+ ```
71
+
72
+ ## 会话
73
+
74
+ Forward 通过 Identity 和 Template 创建 Session,Managed 通过 Agent 和 Environment 创建 Session:
75
+
76
+ ```python
77
+ from qca import Forward
78
+
79
+ with Forward() as client:
80
+ environment = client.environments.create(name="demo", config={"type": "cloud"})
81
+ identity = client.identities.create(external_id="example-user", name="示例用户")
82
+ template = client.templates.create(
83
+ name="assistant", environment_id=environment.id,
84
+ model="ultimate", # 使用当前账号已启用的模型
85
+ system="根据可读取的资料回答问题。",
86
+ tools=[{"type": "agent_toolset_20260401"}],
87
+ )
88
+ session = client.sessions.create(identity_id=identity.id, template_id=template.id)
89
+ print(session.id)
90
+ ```
91
+
92
+ ```python
93
+ from qca import Managed
94
+
95
+ with Managed() as client:
96
+ environment = client.environments.create(name="demo", config={"type": "cloud"})
97
+ agent = client.agents.create(
98
+ name="assistant", model={"id": "ultimate"},
99
+ system="根据可读取的资料回答问题。",
100
+ tools=[{"type": "agent_toolset_20260401"}],
101
+ )
102
+ session = client.sessions.create(environment_id=environment.id, agent=agent.id)
103
+ print(session.id)
104
+ ```
105
+
106
+ 片段会创建资源。包含执行断言和清理的完整用例见 [examples](examples/README.md)。Forward 还提供 Schedule、Batch、Channel;Managed 提供 Deployment、Dream、自托管环境 Work API。
107
+
108
+ ## 消息与 SSE
109
+
110
+ 下列代码适用于两种客户端。在同一段对话中复用 `session_id`,同一条逻辑消息的 HTTP 重试复用幂等键。
111
+
112
+ ```python
113
+ from uuid import uuid4
114
+
115
+ sent = client.sessions.events.send(
116
+ session_id,
117
+ events=[{"type": "user.message", "content": [{"type": "text", "text": "你好"}]}],
118
+ extra_headers={"Idempotency-Key": uuid4().hex},
119
+ )
120
+
121
+ with client.sessions.events.stream(
122
+ session_id,
123
+ extra_headers={"Last-Event-ID": sent.data[0].id},
124
+ event_deltas=["agent.message"],
125
+ ) as stream:
126
+ for event in stream:
127
+ if event.type == "agent.message":
128
+ print(event.to_json())
129
+ elif event.type == "session.status_idle":
130
+ print(event.stop_reason)
131
+ break
132
+ elif event.type in ("session.error", "session.status_terminated"):
133
+ raise RuntimeError(f"Session stopped: {event.type}")
134
+ ```
135
+
136
+ SDK 不自动重连 SSE。保存 `stream.last_event_id`,重连时通过 `Last-Event-ID` 恢复,不要重发已被接收的消息。`event_start`、`event_delta` 是预览,最终事件会再次包含完整内容;同一个 ID 的增量事件不会被去重。idle 可能表示等待确认或达到预算,业务成功还需检查 `stop_reason` 和最终回复。
137
+
138
+ ## 异步
139
+
140
+ 异步客户端使用 `httpx.AsyncClient`,请求、重试等待、SSE 读取均为原生异步 I/O。
141
+
142
+ ```python
143
+ import asyncio
144
+ from qca import AsyncManaged
145
+
146
+ async def main():
147
+ async with AsyncManaged() as client:
148
+ async for agent in client.agents.list(limit=20):
149
+ print(agent.id)
150
+ first_page = await client.sessions.list(limit=10)
151
+ print(first_page.data)
152
+
153
+ asyncio.run(main())
154
+ ```
155
+
156
+ 异步流使用 `async with await client.sessions.events.stream(...)`。完整片段见 [Forward 异步示例](examples/forward/async_session.py)和 [Managed 异步示例](examples/managed/async_session.py)。本地文件读取通过线程执行,网络请求直接使用异步 HTTP 客户端。
157
+
158
+ ## 参数与响应
159
+
160
+ 方法使用 snake_case、关键字参数和类型注解。嵌套资源的目标 ID 可以作为位置参数,祖先 ID 必须具名:
161
+
162
+ ```python
163
+ credential = client.vaults.credentials.retrieve("credential-id", vault_id="vault-id")
164
+ memory = client.memory_stores.memories.retrieve("memory-id", memory_store_id="store-id")
165
+ ```
166
+
167
+ 各 mode 的 `types/*_params.py` 使用 `TypedDict` 定义请求。嵌套参数直接传普通字典;联合类型直接传对应的字符串、字典或列表。响应是 Pydantic 模型,可以直接访问字段,未知字段也会保留。
168
+
169
+ ```python
170
+ from qca import NOT_GIVEN
171
+
172
+ client.identities.update("identity-id", name=NOT_GIVEN) # 不发送 name
173
+ client.identities.update("identity-id", name=None) # 发送 null
174
+ client.identities.update("identity-id", enabled=False) # 保留 false
175
+
176
+ identity = client.identities.retrieve("identity-id")
177
+ print(identity.to_dict())
178
+ print(identity.to_json())
179
+ print(identity._request_id)
180
+ print("name" in identity.model_fields_set) # 区分缺失与 null
181
+ ```
182
+
183
+ 能否清空字段由服务端决定。方法均支持 `extra_headers`、`extra_query`、`extra_body`、`timeout`;extra 值优先于方法参数。空数组、空对象、0、false 均保留。
184
+
185
+ ## 分页
186
+
187
+ ```python
188
+ page = client.sessions.list(limit=20)
189
+ print(page.data) # 当前页
190
+ for session in page: # 自动获取后续页
191
+ print(session.id)
192
+ for page in client.sessions.list().iter_pages():
193
+ print(len(page.data))
194
+ ```
195
+
196
+ SDK 按 Go API 区分 `after_id` / `before_id` 与 `next_page` 分页,后续请求保留过滤条件。游标不前进或循环时抛出异常。非分页列表响应(例如 Models)通过 `.data` 访问。
197
+
198
+ ## 错误、超时与重试
199
+
200
+ ```python
201
+ from qca import APIConnectionError, APIStatusError, APITimeoutError
202
+
203
+ try:
204
+ session = client.sessions.retrieve("sess-id", timeout=10)
205
+ except APITimeoutError:
206
+ print("请求超时")
207
+ except APIConnectionError:
208
+ print("网络连接失败")
209
+ except APIStatusError as exc:
210
+ print(exc.status_code, exc.code, exc.type, exc.request_id)
211
+ ```
212
+
213
+ HTTP 状态分别对应 `BadRequestError`、`AuthenticationError`、`PermissionDeniedError`、`NotFoundError`、`ConflictError`、`UnprocessableEntityError`、`RateLimitError`、`InternalServerError`。非 JSON 错误正文保留在 `.body`。响应无法解码为声明类型时抛出 `APIResponseValidationError`。
214
+
215
+ 默认连接超时 10 秒,其余 HTTP 阶段 60 秒。可传浮点秒数、`httpx.Timeout`、`None`;超时按 HTTP 阶段和单次尝试计算。端到端任务期限由调用方管理,异步代码可用 `asyncio.wait_for`。
216
+
217
+ 默认最多重试 2 次:GET/HEAD 或携带 `Idempotency-Key` 的请求可对连接错误、408、429、5xx 重试;无幂等键的其他请求仅对 429 重试;409 不自动重试。在上述约束内遵循 `x-should-retry` 和有效的 `Retry-After-Ms` / `Retry-After`,否则指数退避。已建立的 SSE 不重试。
218
+
219
+ `client.with_options(max_retries=0, timeout=20)` 返回独立配置的客户端,复用同一个 HTTP 连接池;关闭任一客户端会关闭这个池。
220
+
221
+ ## 文件和自定义 HTTP
222
+
223
+ ```python
224
+ from pathlib import Path
225
+
226
+ file = client.files.upload(file=Path("report.txt"))
227
+ skill = client.skills.create(files=[("example/SKILL.md", b"---\nname: example\n---\nExample skill")])
228
+ with client.files.download(file.id) as content:
229
+ content.write_to_file("downloaded.txt")
230
+ ```
231
+
232
+ 上传支持 bytes、二进制文件对象、Path、`(文件名, 内容[, MIME 类型])`。调用方传入的文件对象由调用方关闭;上传内容会缓存以便重试。metadata 使用 JSON 编码,Skill 相对路径保留在 multipart 文件名中。
233
+
234
+ Files 下载先获取临时链接,再流式读取存储地址;API 认证、默认请求头、Cookie 不会发送到存储主机。Skill Version 下载直接返回 API 的二进制响应。异步下载使用 `await client.files.download(...)`、`await response.write_to_file(...)`。
235
+
236
+ ```python
237
+ import httpx
238
+ from qca import Forward
239
+
240
+ with Forward(http_client=httpx.Client(proxy="http://localhost:8080")) as client:
241
+ raw = client.models.with_raw_response.list()
242
+ print(raw.status_code, raw.headers)
243
+ models = raw.parse()
244
+ ```
245
+
246
+ 异步客户端可传 `httpx.AsyncClient`,异步 raw response 使用 `await raw.parse()`。动态令牌提供者传到 `credential=`,每次 HTTP 尝试调用 `get_token()`;异步客户端也接受异步 `get_token()`。静态 access_token 优先于提供者,显式 Authorization 请求头优先于两者。
247
+
248
+ 需要先查看响应头再读取正文时使用 `with_streaming_response`。退出上下文时关闭连接:
249
+
250
+ ```python
251
+ with client.models.with_streaming_response.list() as response:
252
+ print(response.headers)
253
+ models = response.parse()
254
+ ```
255
+
256
+ 异步版本使用 `async with client.models.with_streaming_response.list()`,通过 `await response.parse()` 解析正文;也可以按块迭代 `iter_bytes()` / `iter_lines()`。
257
+
258
+ ## 目录
259
+
260
+ ```text
261
+ src/qca/
262
+ __init__.py
263
+ common/ # HTTP、鉴权、错误、分页、上传/下载、SSE
264
+ forward/
265
+ _client.py
266
+ resources/ # identities/configs、sessions/events 等
267
+ types/ # 请求 TypedDict、响应模型
268
+ managed/
269
+ _client.py
270
+ resources/ # agents、deployments、environments/work 等
271
+ types/
272
+ tests/ # 资源面、文档契约、公共层与模拟执行场景
273
+ examples/ # 每个场景一个文件;各 mode 含 6 个同步场景、异步片段及 live 测试
274
+ docs/ # Forward / Managed 完整 API 参考
275
+ ```
276
+
277
+ ## 许可证
278
+
279
+ 本项目基于 [MIT License](LICENSE) 开源。
@@ -0,0 +1,255 @@
1
+ # Qoder Cloud Agents Python SDK
2
+
3
+ Python 3.10+,同步与原生异步客户端,支持类型化响应、自动分页、SSE 和文件传输。
4
+
5
+ 完整 API 参考:[Forward API](docs/forward-api.md) · [Managed API](docs/managed-api.md),包含初始化、同步/异步调用、分页、SSE、文件传输,以及全部资源方法的参数、返回类型与 HTTP 路由。
6
+
7
+ ## 安装与配置
8
+
9
+ ```bash
10
+ # 在本仓库中安装
11
+ python -m pip install .
12
+ # 开发环境
13
+ python -m pip install -e '.[dev]'
14
+ ```
15
+
16
+ ```python
17
+ from qca import Forward, Managed
18
+
19
+ with Forward() as client:
20
+ for model in client.models.list().data:
21
+ if model.is_enabled:
22
+ print(model.id)
23
+
24
+ with Managed() as client:
25
+ for agent in client.agents.list(limit=20):
26
+ print(agent.id, agent.name)
27
+ ```
28
+
29
+ 也可使用 `from qca.forward import Client` 或 `from qca.managed import Client`。两种模式独立实例化,使用各自的资源与类型。
30
+
31
+ | 配置 | Forward | Managed |
32
+ |---|---|---|
33
+ | 令牌 | `QODER_ACCESS_TOKEN` | `QODER_ACCESS_TOKEN` |
34
+ | API 根地址 | `QODER_FORWARD_BASE_URL` | `QODER_BASE_URL` |
35
+ | 默认地址 | `https://api.qoder.com/api/v1/forward/` | `https://api.qoder.com/api/v1/cloud/` |
36
+
37
+ 显式参数优先于环境变量。客户端不读取 `.env`;只有 examples 读取 `.env.live`。CN 环境需要显式配置对应根地址:
38
+
39
+ ```python
40
+ client = Forward(
41
+ access_token="your-access-token",
42
+ base_url="https://api.qoder.com.cn/api/v1/forward",
43
+ timeout=30.0,
44
+ max_retries=2,
45
+ )
46
+ ```
47
+
48
+ ## 会话
49
+
50
+ Forward 通过 Identity 和 Template 创建 Session,Managed 通过 Agent 和 Environment 创建 Session:
51
+
52
+ ```python
53
+ from qca import Forward
54
+
55
+ with Forward() as client:
56
+ environment = client.environments.create(name="demo", config={"type": "cloud"})
57
+ identity = client.identities.create(external_id="example-user", name="示例用户")
58
+ template = client.templates.create(
59
+ name="assistant", environment_id=environment.id,
60
+ model="ultimate", # 使用当前账号已启用的模型
61
+ system="根据可读取的资料回答问题。",
62
+ tools=[{"type": "agent_toolset_20260401"}],
63
+ )
64
+ session = client.sessions.create(identity_id=identity.id, template_id=template.id)
65
+ print(session.id)
66
+ ```
67
+
68
+ ```python
69
+ from qca import Managed
70
+
71
+ with Managed() as client:
72
+ environment = client.environments.create(name="demo", config={"type": "cloud"})
73
+ agent = client.agents.create(
74
+ name="assistant", model={"id": "ultimate"},
75
+ system="根据可读取的资料回答问题。",
76
+ tools=[{"type": "agent_toolset_20260401"}],
77
+ )
78
+ session = client.sessions.create(environment_id=environment.id, agent=agent.id)
79
+ print(session.id)
80
+ ```
81
+
82
+ 片段会创建资源。包含执行断言和清理的完整用例见 [examples](examples/README.md)。Forward 还提供 Schedule、Batch、Channel;Managed 提供 Deployment、Dream、自托管环境 Work API。
83
+
84
+ ## 消息与 SSE
85
+
86
+ 下列代码适用于两种客户端。在同一段对话中复用 `session_id`,同一条逻辑消息的 HTTP 重试复用幂等键。
87
+
88
+ ```python
89
+ from uuid import uuid4
90
+
91
+ sent = client.sessions.events.send(
92
+ session_id,
93
+ events=[{"type": "user.message", "content": [{"type": "text", "text": "你好"}]}],
94
+ extra_headers={"Idempotency-Key": uuid4().hex},
95
+ )
96
+
97
+ with client.sessions.events.stream(
98
+ session_id,
99
+ extra_headers={"Last-Event-ID": sent.data[0].id},
100
+ event_deltas=["agent.message"],
101
+ ) as stream:
102
+ for event in stream:
103
+ if event.type == "agent.message":
104
+ print(event.to_json())
105
+ elif event.type == "session.status_idle":
106
+ print(event.stop_reason)
107
+ break
108
+ elif event.type in ("session.error", "session.status_terminated"):
109
+ raise RuntimeError(f"Session stopped: {event.type}")
110
+ ```
111
+
112
+ SDK 不自动重连 SSE。保存 `stream.last_event_id`,重连时通过 `Last-Event-ID` 恢复,不要重发已被接收的消息。`event_start`、`event_delta` 是预览,最终事件会再次包含完整内容;同一个 ID 的增量事件不会被去重。idle 可能表示等待确认或达到预算,业务成功还需检查 `stop_reason` 和最终回复。
113
+
114
+ ## 异步
115
+
116
+ 异步客户端使用 `httpx.AsyncClient`,请求、重试等待、SSE 读取均为原生异步 I/O。
117
+
118
+ ```python
119
+ import asyncio
120
+ from qca import AsyncManaged
121
+
122
+ async def main():
123
+ async with AsyncManaged() as client:
124
+ async for agent in client.agents.list(limit=20):
125
+ print(agent.id)
126
+ first_page = await client.sessions.list(limit=10)
127
+ print(first_page.data)
128
+
129
+ asyncio.run(main())
130
+ ```
131
+
132
+ 异步流使用 `async with await client.sessions.events.stream(...)`。完整片段见 [Forward 异步示例](examples/forward/async_session.py)和 [Managed 异步示例](examples/managed/async_session.py)。本地文件读取通过线程执行,网络请求直接使用异步 HTTP 客户端。
133
+
134
+ ## 参数与响应
135
+
136
+ 方法使用 snake_case、关键字参数和类型注解。嵌套资源的目标 ID 可以作为位置参数,祖先 ID 必须具名:
137
+
138
+ ```python
139
+ credential = client.vaults.credentials.retrieve("credential-id", vault_id="vault-id")
140
+ memory = client.memory_stores.memories.retrieve("memory-id", memory_store_id="store-id")
141
+ ```
142
+
143
+ 各 mode 的 `types/*_params.py` 使用 `TypedDict` 定义请求。嵌套参数直接传普通字典;联合类型直接传对应的字符串、字典或列表。响应是 Pydantic 模型,可以直接访问字段,未知字段也会保留。
144
+
145
+ ```python
146
+ from qca import NOT_GIVEN
147
+
148
+ client.identities.update("identity-id", name=NOT_GIVEN) # 不发送 name
149
+ client.identities.update("identity-id", name=None) # 发送 null
150
+ client.identities.update("identity-id", enabled=False) # 保留 false
151
+
152
+ identity = client.identities.retrieve("identity-id")
153
+ print(identity.to_dict())
154
+ print(identity.to_json())
155
+ print(identity._request_id)
156
+ print("name" in identity.model_fields_set) # 区分缺失与 null
157
+ ```
158
+
159
+ 能否清空字段由服务端决定。方法均支持 `extra_headers`、`extra_query`、`extra_body`、`timeout`;extra 值优先于方法参数。空数组、空对象、0、false 均保留。
160
+
161
+ ## 分页
162
+
163
+ ```python
164
+ page = client.sessions.list(limit=20)
165
+ print(page.data) # 当前页
166
+ for session in page: # 自动获取后续页
167
+ print(session.id)
168
+ for page in client.sessions.list().iter_pages():
169
+ print(len(page.data))
170
+ ```
171
+
172
+ SDK 按 Go API 区分 `after_id` / `before_id` 与 `next_page` 分页,后续请求保留过滤条件。游标不前进或循环时抛出异常。非分页列表响应(例如 Models)通过 `.data` 访问。
173
+
174
+ ## 错误、超时与重试
175
+
176
+ ```python
177
+ from qca import APIConnectionError, APIStatusError, APITimeoutError
178
+
179
+ try:
180
+ session = client.sessions.retrieve("sess-id", timeout=10)
181
+ except APITimeoutError:
182
+ print("请求超时")
183
+ except APIConnectionError:
184
+ print("网络连接失败")
185
+ except APIStatusError as exc:
186
+ print(exc.status_code, exc.code, exc.type, exc.request_id)
187
+ ```
188
+
189
+ HTTP 状态分别对应 `BadRequestError`、`AuthenticationError`、`PermissionDeniedError`、`NotFoundError`、`ConflictError`、`UnprocessableEntityError`、`RateLimitError`、`InternalServerError`。非 JSON 错误正文保留在 `.body`。响应无法解码为声明类型时抛出 `APIResponseValidationError`。
190
+
191
+ 默认连接超时 10 秒,其余 HTTP 阶段 60 秒。可传浮点秒数、`httpx.Timeout`、`None`;超时按 HTTP 阶段和单次尝试计算。端到端任务期限由调用方管理,异步代码可用 `asyncio.wait_for`。
192
+
193
+ 默认最多重试 2 次:GET/HEAD 或携带 `Idempotency-Key` 的请求可对连接错误、408、429、5xx 重试;无幂等键的其他请求仅对 429 重试;409 不自动重试。在上述约束内遵循 `x-should-retry` 和有效的 `Retry-After-Ms` / `Retry-After`,否则指数退避。已建立的 SSE 不重试。
194
+
195
+ `client.with_options(max_retries=0, timeout=20)` 返回独立配置的客户端,复用同一个 HTTP 连接池;关闭任一客户端会关闭这个池。
196
+
197
+ ## 文件和自定义 HTTP
198
+
199
+ ```python
200
+ from pathlib import Path
201
+
202
+ file = client.files.upload(file=Path("report.txt"))
203
+ skill = client.skills.create(files=[("example/SKILL.md", b"---\nname: example\n---\nExample skill")])
204
+ with client.files.download(file.id) as content:
205
+ content.write_to_file("downloaded.txt")
206
+ ```
207
+
208
+ 上传支持 bytes、二进制文件对象、Path、`(文件名, 内容[, MIME 类型])`。调用方传入的文件对象由调用方关闭;上传内容会缓存以便重试。metadata 使用 JSON 编码,Skill 相对路径保留在 multipart 文件名中。
209
+
210
+ Files 下载先获取临时链接,再流式读取存储地址;API 认证、默认请求头、Cookie 不会发送到存储主机。Skill Version 下载直接返回 API 的二进制响应。异步下载使用 `await client.files.download(...)`、`await response.write_to_file(...)`。
211
+
212
+ ```python
213
+ import httpx
214
+ from qca import Forward
215
+
216
+ with Forward(http_client=httpx.Client(proxy="http://localhost:8080")) as client:
217
+ raw = client.models.with_raw_response.list()
218
+ print(raw.status_code, raw.headers)
219
+ models = raw.parse()
220
+ ```
221
+
222
+ 异步客户端可传 `httpx.AsyncClient`,异步 raw response 使用 `await raw.parse()`。动态令牌提供者传到 `credential=`,每次 HTTP 尝试调用 `get_token()`;异步客户端也接受异步 `get_token()`。静态 access_token 优先于提供者,显式 Authorization 请求头优先于两者。
223
+
224
+ 需要先查看响应头再读取正文时使用 `with_streaming_response`。退出上下文时关闭连接:
225
+
226
+ ```python
227
+ with client.models.with_streaming_response.list() as response:
228
+ print(response.headers)
229
+ models = response.parse()
230
+ ```
231
+
232
+ 异步版本使用 `async with client.models.with_streaming_response.list()`,通过 `await response.parse()` 解析正文;也可以按块迭代 `iter_bytes()` / `iter_lines()`。
233
+
234
+ ## 目录
235
+
236
+ ```text
237
+ src/qca/
238
+ __init__.py
239
+ common/ # HTTP、鉴权、错误、分页、上传/下载、SSE
240
+ forward/
241
+ _client.py
242
+ resources/ # identities/configs、sessions/events 等
243
+ types/ # 请求 TypedDict、响应模型
244
+ managed/
245
+ _client.py
246
+ resources/ # agents、deployments、environments/work 等
247
+ types/
248
+ tests/ # 资源面、文档契约、公共层与模拟执行场景
249
+ examples/ # 每个场景一个文件;各 mode 含 6 个同步场景、异步片段及 live 测试
250
+ docs/ # Forward / Managed 完整 API 参考
251
+ ```
252
+
253
+ ## 许可证
254
+
255
+ 本项目基于 [MIT License](LICENSE) 开源。