qca 0.0.1.dev1__py3-none-any.whl

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 (596) hide show
  1. qca/__init__.py +50 -0
  2. qca/_version.py +1 -0
  3. qca/common/__init__.py +43 -0
  4. qca/common/_base_client.py +450 -0
  5. qca/common/_exceptions.py +97 -0
  6. qca/common/_files.py +38 -0
  7. qca/common/_models.py +33 -0
  8. qca/common/_resource.py +35 -0
  9. qca/common/_response.py +220 -0
  10. qca/common/_streaming.py +143 -0
  11. qca/common/_types.py +25 -0
  12. qca/common/_utils.py +73 -0
  13. qca/common/credentials.py +13 -0
  14. qca/common/pagination.py +118 -0
  15. qca/forward/__init__.py +7 -0
  16. qca/forward/_client.py +142 -0
  17. qca/forward/resources/__init__.py +14 -0
  18. qca/forward/resources/batches/__init__.py +4 -0
  19. qca/forward/resources/batches/batches.py +308 -0
  20. qca/forward/resources/batches/tasks.py +71 -0
  21. qca/forward/resources/channel_pairings.py +111 -0
  22. qca/forward/resources/channels/__init__.py +4 -0
  23. qca/forward/resources/channels/channels.py +336 -0
  24. qca/forward/resources/channels/qr_sessions.py +106 -0
  25. qca/forward/resources/environments.py +305 -0
  26. qca/forward/resources/files.py +272 -0
  27. qca/forward/resources/identities/__init__.py +6 -0
  28. qca/forward/resources/identities/configs.py +249 -0
  29. qca/forward/resources/identities/identities.py +570 -0
  30. qca/forward/resources/identities/memory_stores.py +186 -0
  31. qca/forward/resources/memory_stores/__init__.py +6 -0
  32. qca/forward/resources/memory_stores/memories.py +290 -0
  33. qca/forward/resources/memory_stores/memory_stores.py +321 -0
  34. qca/forward/resources/memory_stores/memory_versions.py +179 -0
  35. qca/forward/resources/models.py +58 -0
  36. qca/forward/resources/schedule_runs.py +149 -0
  37. qca/forward/resources/schedules.py +545 -0
  38. qca/forward/resources/sessions/__init__.py +6 -0
  39. qca/forward/resources/sessions/events.py +208 -0
  40. qca/forward/resources/sessions/resources.py +66 -0
  41. qca/forward/resources/sessions/sessions.py +417 -0
  42. qca/forward/resources/sessions/threads/__init__.py +4 -0
  43. qca/forward/resources/sessions/threads/events.py +128 -0
  44. qca/forward/resources/sessions/threads/threads.py +177 -0
  45. qca/forward/resources/skills/__init__.py +4 -0
  46. qca/forward/resources/skills/skills.py +335 -0
  47. qca/forward/resources/skills/versions.py +253 -0
  48. qca/forward/resources/templates.py +426 -0
  49. qca/forward/resources/vaults/__init__.py +4 -0
  50. qca/forward/resources/vaults/credentials.py +227 -0
  51. qca/forward/resources/vaults/vaults.py +217 -0
  52. qca/forward/types/__init__.py +205 -0
  53. qca/forward/types/batch.py +35 -0
  54. qca/forward/types/batch_cancel_params.py +11 -0
  55. qca/forward/types/batch_create_params.py +14 -0
  56. qca/forward/types/batch_file.py +13 -0
  57. qca/forward/types/batch_list_params.py +14 -0
  58. qca/forward/types/batch_request_counts.py +17 -0
  59. qca/forward/types/batch_task.py +24 -0
  60. qca/forward/types/batch_task_artifacts_item.py +14 -0
  61. qca/forward/types/batch_task_error.py +12 -0
  62. qca/forward/types/batch_task_list_params.py +14 -0
  63. qca/forward/types/batch_task_usage.py +11 -0
  64. qca/forward/types/batch_usage.py +11 -0
  65. qca/forward/types/channel.py +27 -0
  66. qca/forward/types/channel_channel_config.py +14 -0
  67. qca/forward/types/channel_channel_config_response_options.py +12 -0
  68. qca/forward/types/channel_create_params.py +18 -0
  69. qca/forward/types/channel_identity_resolution.py +11 -0
  70. qca/forward/types/channel_list_params.py +18 -0
  71. qca/forward/types/channel_pairing.py +17 -0
  72. qca/forward/types/channel_pairing_create_params.py +14 -0
  73. qca/forward/types/channel_qr_session.py +19 -0
  74. qca/forward/types/channel_qr_session_create_params.py +11 -0
  75. qca/forward/types/channel_update_params.py +16 -0
  76. qca/forward/types/content_block_param.py +17 -0
  77. qca/forward/types/deleted_channel.py +12 -0
  78. qca/forward/types/deleted_channel_pairing.py +12 -0
  79. qca/forward/types/deleted_identity.py +12 -0
  80. qca/forward/types/deleted_memory.py +13 -0
  81. qca/forward/types/deleted_memory_store.py +13 -0
  82. qca/forward/types/deleted_memory_store_mount.py +13 -0
  83. qca/forward/types/deleted_skill_version.py +13 -0
  84. qca/forward/types/effective_config.py +23 -0
  85. qca/forward/types/effective_config_agent.py +19 -0
  86. qca/forward/types/effective_config_agent_tools_item.py +15 -0
  87. qca/forward/types/effective_config_agent_tools_item_configs_item.py +12 -0
  88. qca/forward/types/effective_config_session.py +17 -0
  89. qca/forward/types/effective_config_session_resources_item.py +14 -0
  90. qca/forward/types/environment.py +24 -0
  91. qca/forward/types/environment_config.py +15 -0
  92. qca/forward/types/environment_config_packages.py +17 -0
  93. qca/forward/types/environment_create_params.py +15 -0
  94. qca/forward/types/environment_list_params.py +14 -0
  95. qca/forward/types/environment_update_params.py +14 -0
  96. qca/forward/types/environment_variable_override.py +12 -0
  97. qca/forward/types/environment_variable_override_param.py +12 -0
  98. qca/forward/types/file_list_params.py +16 -0
  99. qca/forward/types/file_metadata.py +22 -0
  100. qca/forward/types/file_upload_params.py +17 -0
  101. qca/forward/types/git_hub_repository.py +13 -0
  102. qca/forward/types/git_hub_repository_param.py +14 -0
  103. qca/forward/types/identity.py +19 -0
  104. qca/forward/types/identity_clear_params.py +11 -0
  105. qca/forward/types/identity_clear_response.py +18 -0
  106. qca/forward/types/identity_clear_response_summary.py +16 -0
  107. qca/forward/types/identity_config.py +25 -0
  108. qca/forward/types/identity_config_list_params.py +15 -0
  109. qca/forward/types/identity_config_spec.py +31 -0
  110. qca/forward/types/identity_config_spec_param.py +31 -0
  111. qca/forward/types/identity_config_upsert_params.py +17 -0
  112. qca/forward/types/identity_create_params.py +15 -0
  113. qca/forward/types/identity_list_params.py +17 -0
  114. qca/forward/types/identity_list_templates_response.py +14 -0
  115. qca/forward/types/identity_memory_store_list_response.py +15 -0
  116. qca/forward/types/identity_memory_store_mount_params.py +9 -0
  117. qca/forward/types/identity_stats.py +14 -0
  118. qca/forward/types/identity_template.py +15 -0
  119. qca/forward/types/identity_update_params.py +15 -0
  120. qca/forward/types/image_source_param.py +15 -0
  121. qca/forward/types/mcp_server.py +13 -0
  122. qca/forward/types/mcp_server_override.py +13 -0
  123. qca/forward/types/mcp_server_override_param.py +13 -0
  124. qca/forward/types/mcp_server_param.py +13 -0
  125. qca/forward/types/memory.py +21 -0
  126. qca/forward/types/memory_store.py +25 -0
  127. qca/forward/types/memory_store_create_params.py +14 -0
  128. qca/forward/types/memory_store_list_params.py +14 -0
  129. qca/forward/types/memory_store_memory_create_params.py +13 -0
  130. qca/forward/types/memory_store_memory_list_params.py +14 -0
  131. qca/forward/types/memory_store_memory_update_params.py +13 -0
  132. qca/forward/types/memory_store_memory_version_list_params.py +14 -0
  133. qca/forward/types/memory_store_mount.py +20 -0
  134. qca/forward/types/memory_store_update_params.py +13 -0
  135. qca/forward/types/memory_version.py +23 -0
  136. qca/forward/types/model.py +23 -0
  137. qca/forward/types/model_config.py +13 -0
  138. qca/forward/types/model_config_param.py +13 -0
  139. qca/forward/types/model_list_response.py +15 -0
  140. qca/forward/types/multiagent_config.py +15 -0
  141. qca/forward/types/multiagent_config_param.py +15 -0
  142. qca/forward/types/multiagent_entry.py +13 -0
  143. qca/forward/types/multiagent_entry_param.py +13 -0
  144. qca/forward/types/permission_policy.py +11 -0
  145. qca/forward/types/permission_policy_param.py +9 -0
  146. qca/forward/types/resource_binding.py +11 -0
  147. qca/forward/types/resource_binding_param.py +11 -0
  148. qca/forward/types/schedule.py +34 -0
  149. qca/forward/types/schedule_archive_many_params.py +12 -0
  150. qca/forward/types/schedule_archive_many_response.py +11 -0
  151. qca/forward/types/schedule_archive_params.py +11 -0
  152. qca/forward/types/schedule_create_params.py +21 -0
  153. qca/forward/types/schedule_execution.py +14 -0
  154. qca/forward/types/schedule_initial_events_item.py +12 -0
  155. qca/forward/types/schedule_list_params.py +19 -0
  156. qca/forward/types/schedule_pause_params.py +11 -0
  157. qca/forward/types/schedule_paused_reason.py +11 -0
  158. qca/forward/types/schedule_run.py +33 -0
  159. qca/forward/types/schedule_run_list_params.py +20 -0
  160. qca/forward/types/schedule_run_params.py +11 -0
  161. qca/forward/types/schedule_run_retrieve_params.py +11 -0
  162. qca/forward/types/schedule_run_trigger_context.py +13 -0
  163. qca/forward/types/schedule_sinks_item.py +16 -0
  164. qca/forward/types/schedule_sinks_item_target.py +12 -0
  165. qca/forward/types/schedule_trigger_policy.py +15 -0
  166. qca/forward/types/schedule_unpause_params.py +11 -0
  167. qca/forward/types/schedule_update_params.py +20 -0
  168. qca/forward/types/session.py +33 -0
  169. qca/forward/types/session_archive_params.py +11 -0
  170. qca/forward/types/session_cancel_params.py +11 -0
  171. qca/forward/types/session_config.py +11 -0
  172. qca/forward/types/session_create_params.py +21 -0
  173. qca/forward/types/session_create_params_config_param.py +11 -0
  174. qca/forward/types/session_event.py +52 -0
  175. qca/forward/types/session_event_list_params.py +18 -0
  176. qca/forward/types/session_event_param.py +24 -0
  177. qca/forward/types/session_event_send_params.py +15 -0
  178. qca/forward/types/session_event_send_response.py +14 -0
  179. qca/forward/types/session_event_stream_params.py +14 -0
  180. qca/forward/types/session_list_params.py +27 -0
  181. qca/forward/types/session_resource.py +17 -0
  182. qca/forward/types/session_resource_add_params.py +13 -0
  183. qca/forward/types/session_resource_spec_param.py +13 -0
  184. qca/forward/types/session_stats.py +12 -0
  185. qca/forward/types/session_template.py +18 -0
  186. qca/forward/types/session_thread.py +27 -0
  187. qca/forward/types/session_thread_archive_params.py +11 -0
  188. qca/forward/types/session_thread_event_list_params.py +13 -0
  189. qca/forward/types/session_thread_event_stream_params.py +11 -0
  190. qca/forward/types/session_thread_list_params.py +13 -0
  191. qca/forward/types/session_thread_stop_reason.py +11 -0
  192. qca/forward/types/session_update_params.py +17 -0
  193. qca/forward/types/session_update_params_config_param.py +11 -0
  194. qca/forward/types/session_usage.py +11 -0
  195. qca/forward/types/skill.py +23 -0
  196. qca/forward/types/skill_binding.py +14 -0
  197. qca/forward/types/skill_binding_param.py +14 -0
  198. qca/forward/types/skill_create_params.py +20 -0
  199. qca/forward/types/skill_list_params.py +17 -0
  200. qca/forward/types/skill_override.py +13 -0
  201. qca/forward/types/skill_override_param.py +13 -0
  202. qca/forward/types/skill_retrieve_params.py +11 -0
  203. qca/forward/types/skill_update_params.py +16 -0
  204. qca/forward/types/skill_version.py +22 -0
  205. qca/forward/types/skill_version_create_params.py +13 -0
  206. qca/forward/types/skill_version_list_params.py +12 -0
  207. qca/forward/types/system_override.py +12 -0
  208. qca/forward/types/system_override_param.py +12 -0
  209. qca/forward/types/template.py +39 -0
  210. qca/forward/types/template_archive_params.py +11 -0
  211. qca/forward/types/template_clone_params.py +13 -0
  212. qca/forward/types/template_create_params.py +35 -0
  213. qca/forward/types/template_list_params.py +14 -0
  214. qca/forward/types/template_update_params.py +35 -0
  215. qca/forward/types/tool.py +21 -0
  216. qca/forward/types/tool_config.py +16 -0
  217. qca/forward/types/tool_config_param.py +16 -0
  218. qca/forward/types/tool_override.py +15 -0
  219. qca/forward/types/tool_override_param.py +15 -0
  220. qca/forward/types/tool_param.py +21 -0
  221. qca/forward/types/vault.py +18 -0
  222. qca/forward/types/vault_create_params.py +13 -0
  223. qca/forward/types/vault_credential.py +22 -0
  224. qca/forward/types/vault_credential_auth.py +12 -0
  225. qca/forward/types/vault_credential_create_params.py +14 -0
  226. qca/forward/types/vault_credential_list_params.py +15 -0
  227. qca/forward/types/vault_list_params.py +15 -0
  228. qca/managed/__init__.py +7 -0
  229. qca/managed/_client.py +115 -0
  230. qca/managed/resources/__init__.py +10 -0
  231. qca/managed/resources/agents/__init__.py +4 -0
  232. qca/managed/resources/agents/agents.py +386 -0
  233. qca/managed/resources/agents/versions.py +71 -0
  234. qca/managed/resources/deployment_runs.py +160 -0
  235. qca/managed/resources/deployments.py +552 -0
  236. qca/managed/resources/dreams.py +303 -0
  237. qca/managed/resources/environments/__init__.py +4 -0
  238. qca/managed/resources/environments/environments.py +359 -0
  239. qca/managed/resources/environments/work.py +449 -0
  240. qca/managed/resources/files.py +295 -0
  241. qca/managed/resources/memory_stores/__init__.py +6 -0
  242. qca/managed/resources/memory_stores/memories.py +358 -0
  243. qca/managed/resources/memory_stores/memory_stores.py +362 -0
  244. qca/managed/resources/memory_stores/memory_versions.py +228 -0
  245. qca/managed/resources/models.py +71 -0
  246. qca/managed/resources/sessions/__init__.py +6 -0
  247. qca/managed/resources/sessions/events.py +240 -0
  248. qca/managed/resources/sessions/resources.py +303 -0
  249. qca/managed/resources/sessions/sessions.py +472 -0
  250. qca/managed/resources/sessions/threads/__init__.py +4 -0
  251. qca/managed/resources/sessions/threads/events.py +141 -0
  252. qca/managed/resources/sessions/threads/threads.py +185 -0
  253. qca/managed/resources/skills/__init__.py +4 -0
  254. qca/managed/resources/skills/skills.py +254 -0
  255. qca/managed/resources/skills/versions.py +273 -0
  256. qca/managed/resources/vaults/__init__.py +4 -0
  257. qca/managed/resources/vaults/credentials.py +437 -0
  258. qca/managed/resources/vaults/vaults.py +296 -0
  259. qca/managed/types/__init__.py +421 -0
  260. qca/managed/types/actor_union.py +15 -0
  261. qca/managed/types/advisor_params.py +12 -0
  262. qca/managed/types/agent.py +33 -0
  263. qca/managed/types/agent_archive_params.py +12 -0
  264. qca/managed/types/agent_create_params.py +31 -0
  265. qca/managed/types/agent_list_params.py +18 -0
  266. qca/managed/types/agent_mcp_tool_result_event_content_union.py +21 -0
  267. qca/managed/types/agent_message_event_content_union.py +12 -0
  268. qca/managed/types/agent_params.py +13 -0
  269. qca/managed/types/agent_reference.py +13 -0
  270. qca/managed/types/agent_retrieve_params.py +13 -0
  271. qca/managed/types/agent_skill_union.py +13 -0
  272. qca/managed/types/agent_thread_message_received_event_content_union.py +20 -0
  273. qca/managed/types/agent_thread_message_received_event_content_union_source.py +15 -0
  274. qca/managed/types/agent_thread_message_sent_event_content_union.py +18 -0
  275. qca/managed/types/agent_thread_message_sent_event_content_union_source.py +15 -0
  276. qca/managed/types/agent_tool_config_union.py +22 -0
  277. qca/managed/types/agent_tool_config_union_permission_policy.py +11 -0
  278. qca/managed/types/agent_tool_result_event_content_union.py +21 -0
  279. qca/managed/types/agent_tool_union.py +25 -0
  280. qca/managed/types/agent_tool_union_default_config.py +15 -0
  281. qca/managed/types/agent_tool_union_default_config_permission_policy.py +11 -0
  282. qca/managed/types/agent_toolset20260401_params.py +37 -0
  283. qca/managed/types/agent_toolset_default_config_params.py +16 -0
  284. qca/managed/types/agent_update_params.py +32 -0
  285. qca/managed/types/agent_version_list_params.py +14 -0
  286. qca/managed/types/agent_with_overrides_params.py +27 -0
  287. qca/managed/types/always_allow_policy_param.py +11 -0
  288. qca/managed/types/always_ask_policy_param.py +11 -0
  289. qca/managed/types/base64_document_source_param.py +13 -0
  290. qca/managed/types/base64_image_source_param.py +13 -0
  291. qca/managed/types/bash_tool_config_params.py +18 -0
  292. qca/managed/types/branch_checkout_param.py +12 -0
  293. qca/managed/types/budget_limit.py +15 -0
  294. qca/managed/types/budget_limit_param.py +15 -0
  295. qca/managed/types/cache_creation_usage.py +12 -0
  296. qca/managed/types/capability_support.py +11 -0
  297. qca/managed/types/cloud_config_networking_union.py +14 -0
  298. qca/managed/types/cloud_config_params.py +19 -0
  299. qca/managed/types/commit_checkout_param.py +12 -0
  300. qca/managed/types/context_management_capability.py +17 -0
  301. qca/managed/types/credential.py +23 -0
  302. qca/managed/types/credential_auth_union.py +23 -0
  303. qca/managed/types/credential_validation.py +23 -0
  304. qca/managed/types/custom_skill_params.py +13 -0
  305. qca/managed/types/custom_tool_input_schema.py +13 -0
  306. qca/managed/types/custom_tool_input_schema_param.py +13 -0
  307. qca/managed/types/custom_tool_params.py +17 -0
  308. qca/managed/types/delete_session_resource.py +12 -0
  309. qca/managed/types/deleted_credential.py +12 -0
  310. qca/managed/types/deleted_file.py +12 -0
  311. qca/managed/types/deleted_memory.py +12 -0
  312. qca/managed/types/deleted_memory_store.py +12 -0
  313. qca/managed/types/deleted_session.py +12 -0
  314. qca/managed/types/deleted_skill.py +12 -0
  315. qca/managed/types/deleted_skill_version.py +12 -0
  316. qca/managed/types/deleted_vault.py +12 -0
  317. qca/managed/types/delta_content.py +16 -0
  318. qca/managed/types/deployment.py +37 -0
  319. qca/managed/types/deployment_archive_params.py +12 -0
  320. qca/managed/types/deployment_create_params.py +36 -0
  321. qca/managed/types/deployment_initial_event_union.py +20 -0
  322. qca/managed/types/deployment_list_params.py +22 -0
  323. qca/managed/types/deployment_pause_params.py +12 -0
  324. qca/managed/types/deployment_paused_reason_error_union.py +11 -0
  325. qca/managed/types/deployment_paused_reason_union.py +15 -0
  326. qca/managed/types/deployment_retrieve_params.py +12 -0
  327. qca/managed/types/deployment_run.py +24 -0
  328. qca/managed/types/deployment_run_error_union.py +12 -0
  329. qca/managed/types/deployment_run_list_params.py +24 -0
  330. qca/managed/types/deployment_run_params.py +12 -0
  331. qca/managed/types/deployment_run_retrieve_params.py +12 -0
  332. qca/managed/types/deployment_unpause_params.py +12 -0
  333. qca/managed/types/deployment_update_params.py +34 -0
  334. qca/managed/types/deployment_user_define_outcome_event_rubric_union.py +13 -0
  335. qca/managed/types/deployment_user_message_event_content_union.py +18 -0
  336. qca/managed/types/deployment_user_message_event_content_union_source.py +15 -0
  337. qca/managed/types/document_block_param.py +22 -0
  338. qca/managed/types/dream.py +33 -0
  339. qca/managed/types/dream_archive_params.py +12 -0
  340. qca/managed/types/dream_cancel_params.py +12 -0
  341. qca/managed/types/dream_create_params.py +23 -0
  342. qca/managed/types/dream_error.py +12 -0
  343. qca/managed/types/dream_input_union.py +13 -0
  344. qca/managed/types/dream_list_params.py +19 -0
  345. qca/managed/types/dream_memory_store_input_param.py +12 -0
  346. qca/managed/types/dream_model_config.py +12 -0
  347. qca/managed/types/dream_model_config_param.py +12 -0
  348. qca/managed/types/dream_output.py +12 -0
  349. qca/managed/types/dream_retrieve_params.py +12 -0
  350. qca/managed/types/dream_sessions_input_param.py +12 -0
  351. qca/managed/types/dream_usage.py +14 -0
  352. qca/managed/types/edit_tool_config_params.py +18 -0
  353. qca/managed/types/effort_capability.py +19 -0
  354. qca/managed/types/effort_high_param.py +11 -0
  355. qca/managed/types/effort_low_param.py +11 -0
  356. qca/managed/types/effort_max_param.py +11 -0
  357. qca/managed/types/effort_medium_param.py +11 -0
  358. qca/managed/types/effort_xhigh_param.py +11 -0
  359. qca/managed/types/environment.py +23 -0
  360. qca/managed/types/environment_archive_params.py +12 -0
  361. qca/managed/types/environment_config_union.py +17 -0
  362. qca/managed/types/environment_create_params.py +21 -0
  363. qca/managed/types/environment_delete_params.py +12 -0
  364. qca/managed/types/environment_delete_response.py +12 -0
  365. qca/managed/types/environment_list_params.py +18 -0
  366. qca/managed/types/environment_retrieve_params.py +12 -0
  367. qca/managed/types/environment_update_params.py +21 -0
  368. qca/managed/types/environment_variable_auth_response_networking_union.py +12 -0
  369. qca/managed/types/environment_variable_create_params.py +20 -0
  370. qca/managed/types/environment_variable_update_params.py +19 -0
  371. qca/managed/types/environment_work_ack_params.py +11 -0
  372. qca/managed/types/environment_work_heartbeat_params.py +13 -0
  373. qca/managed/types/environment_work_list_params.py +15 -0
  374. qca/managed/types/environment_work_poll_params.py +14 -0
  375. qca/managed/types/environment_work_retrieve_params.py +12 -0
  376. qca/managed/types/environment_work_stats_params.py +12 -0
  377. qca/managed/types/environment_work_stop_params.py +13 -0
  378. qca/managed/types/environment_work_update_params.py +13 -0
  379. qca/managed/types/file_delete_params.py +12 -0
  380. qca/managed/types/file_document_source_param.py +12 -0
  381. qca/managed/types/file_download_params.py +12 -0
  382. qca/managed/types/file_get_metadata_params.py +12 -0
  383. qca/managed/types/file_image_source_param.py +12 -0
  384. qca/managed/types/file_list_params.py +19 -0
  385. qca/managed/types/file_metadata.py +25 -0
  386. qca/managed/types/file_resource.py +17 -0
  387. qca/managed/types/file_resource_params.py +13 -0
  388. qca/managed/types/file_rubric_params.py +12 -0
  389. qca/managed/types/file_scope.py +12 -0
  390. qca/managed/types/file_upload_params.py +18 -0
  391. qca/managed/types/git_hub_repository_resource_checkout_union.py +13 -0
  392. qca/managed/types/git_hub_repository_resource_config_checkout_union.py +13 -0
  393. qca/managed/types/git_hub_repository_resource_params.py +19 -0
  394. qca/managed/types/glob_tool_config_params.py +18 -0
  395. qca/managed/types/grep_tool_config_params.py +18 -0
  396. qca/managed/types/image_block_param.py +17 -0
  397. qca/managed/types/injection_location_params.py +12 -0
  398. qca/managed/types/injection_location_response.py +12 -0
  399. qca/managed/types/injection_location_update_params.py +12 -0
  400. qca/managed/types/limited_credential_networking_params.py +12 -0
  401. qca/managed/types/limited_network_params.py +14 -0
  402. qca/managed/types/mcp_probe.py +15 -0
  403. qca/managed/types/mcp_server_url_definition.py +13 -0
  404. qca/managed/types/mcp_tool_config.py +16 -0
  405. qca/managed/types/mcp_tool_config_params.py +17 -0
  406. qca/managed/types/mcp_tool_config_permission_policy_union.py +11 -0
  407. qca/managed/types/mcp_toolset_default_config_params.py +16 -0
  408. qca/managed/types/mcp_toolset_params.py +18 -0
  409. qca/managed/types/mcpo_auth_create_params.py +19 -0
  410. qca/managed/types/mcpo_auth_refresh_params.py +23 -0
  411. qca/managed/types/mcpo_auth_refresh_response.py +18 -0
  412. qca/managed/types/mcpo_auth_refresh_response_token_endpoint_auth_union.py +11 -0
  413. qca/managed/types/mcpo_auth_refresh_update_params.py +17 -0
  414. qca/managed/types/mcpo_auth_update_params.py +18 -0
  415. qca/managed/types/memory.py +22 -0
  416. qca/managed/types/memory_list_item_union.py +21 -0
  417. qca/managed/types/memory_store.py +19 -0
  418. qca/managed/types/memory_store_archive_params.py +12 -0
  419. qca/managed/types/memory_store_create_params.py +15 -0
  420. qca/managed/types/memory_store_delete_params.py +12 -0
  421. qca/managed/types/memory_store_list_params.py +19 -0
  422. qca/managed/types/memory_store_memory_create_params.py +16 -0
  423. qca/managed/types/memory_store_memory_delete_params.py +13 -0
  424. qca/managed/types/memory_store_memory_list_params.py +17 -0
  425. qca/managed/types/memory_store_memory_retrieve_params.py +13 -0
  426. qca/managed/types/memory_store_memory_update_params.py +21 -0
  427. qca/managed/types/memory_store_memory_version_list_params.py +23 -0
  428. qca/managed/types/memory_store_memory_version_redact_params.py +12 -0
  429. qca/managed/types/memory_store_memory_version_retrieve_params.py +13 -0
  430. qca/managed/types/memory_store_resource_param.py +14 -0
  431. qca/managed/types/memory_store_retrieve_params.py +12 -0
  432. qca/managed/types/memory_store_update_params.py +15 -0
  433. qca/managed/types/memory_version.py +27 -0
  434. qca/managed/types/model_capabilities.py +25 -0
  435. qca/managed/types/model_config.py +18 -0
  436. qca/managed/types/model_config_effort_union.py +11 -0
  437. qca/managed/types/model_config_params.py +39 -0
  438. qca/managed/types/model_info.py +30 -0
  439. qca/managed/types/model_list_params.py +15 -0
  440. qca/managed/types/monetary_amount.py +12 -0
  441. qca/managed/types/monetary_amount_param.py +12 -0
  442. qca/managed/types/multiagent.py +15 -0
  443. qca/managed/types/multiagent_agent_union.py +17 -0
  444. qca/managed/types/multiagent_params.py +17 -0
  445. qca/managed/types/multiagent_self_params.py +11 -0
  446. qca/managed/types/outcome_evaluation_resource.py +18 -0
  447. qca/managed/types/output_behavior_create_new_param.py +11 -0
  448. qca/managed/types/output_behavior_union.py +12 -0
  449. qca/managed/types/output_behavior_update_existing_param.py +12 -0
  450. qca/managed/types/packages.py +17 -0
  451. qca/managed/types/packages_params.py +17 -0
  452. qca/managed/types/plain_text_document_source_param.py +13 -0
  453. qca/managed/types/precondition_param.py +12 -0
  454. qca/managed/types/qoder_skill_params.py +13 -0
  455. qca/managed/types/read_tool_config_params.py +18 -0
  456. qca/managed/types/redacted_block_param.py +11 -0
  457. qca/managed/types/refresh_http_response.py +14 -0
  458. qca/managed/types/refresh_object.py +15 -0
  459. qca/managed/types/schedule.py +16 -0
  460. qca/managed/types/schedule_params.py +13 -0
  461. qca/managed/types/search_result_block_param.py +19 -0
  462. qca/managed/types/search_result_citations.py +11 -0
  463. qca/managed/types/search_result_citations_param.py +9 -0
  464. qca/managed/types/search_result_content.py +12 -0
  465. qca/managed/types/search_result_content_param.py +12 -0
  466. qca/managed/types/self_hosted_config_params.py +11 -0
  467. qca/managed/types/self_hosted_work.py +26 -0
  468. qca/managed/types/self_hosted_work_heartbeat_response.py +15 -0
  469. qca/managed/types/self_hosted_work_queue_stats.py +15 -0
  470. qca/managed/types/send_session_events.py +14 -0
  471. qca/managed/types/send_session_events_data_union.py +39 -0
  472. qca/managed/types/server_tool_usage.py +12 -0
  473. qca/managed/types/session.py +37 -0
  474. qca/managed/types/session_agent.py +28 -0
  475. qca/managed/types/session_agent_skill_union.py +13 -0
  476. qca/managed/types/session_agent_tool_union.py +25 -0
  477. qca/managed/types/session_agent_tool_union_default_config.py +17 -0
  478. qca/managed/types/session_agent_tool_union_default_config_permission_policy.py +11 -0
  479. qca/managed/types/session_agent_update_param.py +24 -0
  480. qca/managed/types/session_archive_params.py +12 -0
  481. qca/managed/types/session_create_params.py +31 -0
  482. qca/managed/types/session_delete_params.py +12 -0
  483. qca/managed/types/session_error_event_error_union.py +19 -0
  484. qca/managed/types/session_error_event_error_union_retry_status.py +11 -0
  485. qca/managed/types/session_event.py +77 -0
  486. qca/managed/types/session_event_list_params.py +23 -0
  487. qca/managed/types/session_event_send_params.py +34 -0
  488. qca/managed/types/session_event_stop_reason.py +12 -0
  489. qca/managed/types/session_event_stream_params.py +13 -0
  490. qca/managed/types/session_event_usage.py +24 -0
  491. qca/managed/types/session_list_params.py +26 -0
  492. qca/managed/types/session_multiagent_coordinator.py +15 -0
  493. qca/managed/types/session_multiagent_coordinator_agent_union.py +26 -0
  494. qca/managed/types/session_resource_add_params.py +15 -0
  495. qca/managed/types/session_resource_config_union.py +21 -0
  496. qca/managed/types/session_resource_delete_params.py +12 -0
  497. qca/managed/types/session_resource_get_response_union.py +27 -0
  498. qca/managed/types/session_resource_list_params.py +16 -0
  499. qca/managed/types/session_resource_retrieve_params.py +12 -0
  500. qca/managed/types/session_resource_union.py +27 -0
  501. qca/managed/types/session_resource_update_params.py +14 -0
  502. qca/managed/types/session_resource_update_response_union.py +27 -0
  503. qca/managed/types/session_retrieve_params.py +12 -0
  504. qca/managed/types/session_stats.py +12 -0
  505. qca/managed/types/session_stream_event.py +82 -0
  506. qca/managed/types/session_stream_event_stop_reason.py +12 -0
  507. qca/managed/types/session_stream_event_usage.py +24 -0
  508. qca/managed/types/session_thread.py +27 -0
  509. qca/managed/types/session_thread_agent_skill_union.py +13 -0
  510. qca/managed/types/session_thread_agent_tool_union.py +25 -0
  511. qca/managed/types/session_thread_agent_tool_union_default_config.py +17 -0
  512. qca/managed/types/session_thread_agent_tool_union_default_config_permission_policy.py +11 -0
  513. qca/managed/types/session_thread_agent_union.py +26 -0
  514. qca/managed/types/session_thread_archive_params.py +12 -0
  515. qca/managed/types/session_thread_event_list_params.py +16 -0
  516. qca/managed/types/session_thread_event_stream_params.py +13 -0
  517. qca/managed/types/session_thread_list_params.py +14 -0
  518. qca/managed/types/session_thread_retrieve_params.py +12 -0
  519. qca/managed/types/session_thread_stats.py +13 -0
  520. qca/managed/types/session_thread_usage.py +22 -0
  521. qca/managed/types/session_update_params.py +22 -0
  522. qca/managed/types/session_usage.py +22 -0
  523. qca/managed/types/session_work_data.py +12 -0
  524. qca/managed/types/skill.py +22 -0
  525. qca/managed/types/skill_create_params.py +17 -0
  526. qca/managed/types/skill_delete_params.py +12 -0
  527. qca/managed/types/skill_list_params.py +19 -0
  528. qca/managed/types/skill_retrieve_params.py +12 -0
  529. qca/managed/types/skill_source.py +11 -0
  530. qca/managed/types/skill_version.py +19 -0
  531. qca/managed/types/skill_version_create_params.py +15 -0
  532. qca/managed/types/skill_version_delete_params.py +12 -0
  533. qca/managed/types/skill_version_download_params.py +12 -0
  534. qca/managed/types/skill_version_list_params.py +14 -0
  535. qca/managed/types/skill_version_retrieve_params.py +12 -0
  536. qca/managed/types/span_model_usage.py +15 -0
  537. qca/managed/types/start_event_preview_union.py +12 -0
  538. qca/managed/types/static_bearer_create_params.py +13 -0
  539. qca/managed/types/static_bearer_update_params.py +12 -0
  540. qca/managed/types/stream_session_thread_events_union.py +82 -0
  541. qca/managed/types/stream_session_thread_events_union_stop_reason.py +12 -0
  542. qca/managed/types/stream_session_thread_events_union_usage.py +24 -0
  543. qca/managed/types/system_content_block.py +12 -0
  544. qca/managed/types/system_content_block_param.py +12 -0
  545. qca/managed/types/system_message_event_params.py +15 -0
  546. qca/managed/types/text_block.py +12 -0
  547. qca/managed/types/text_block_param.py +12 -0
  548. qca/managed/types/text_rubric_params.py +12 -0
  549. qca/managed/types/thinking_capability.py +15 -0
  550. qca/managed/types/thinking_types.py +15 -0
  551. qca/managed/types/token_endpoint_auth_basic_param.py +12 -0
  552. qca/managed/types/token_endpoint_auth_basic_update_param.py +12 -0
  553. qca/managed/types/token_endpoint_auth_none_param.py +11 -0
  554. qca/managed/types/token_endpoint_auth_post_param.py +12 -0
  555. qca/managed/types/token_endpoint_auth_post_update_param.py +12 -0
  556. qca/managed/types/trigger_context_union.py +13 -0
  557. qca/managed/types/unrestricted_credential_networking_params.py +11 -0
  558. qca/managed/types/unrestricted_network_param.py +11 -0
  559. qca/managed/types/url_document_source_param.py +12 -0
  560. qca/managed/types/url_image_source_param.py +12 -0
  561. qca/managed/types/urlmcp_server_params.py +13 -0
  562. qca/managed/types/user_custom_tool_result_event_content_union.py +21 -0
  563. qca/managed/types/user_custom_tool_result_event_params.py +20 -0
  564. qca/managed/types/user_define_outcome_event_params.py +18 -0
  565. qca/managed/types/user_define_outcome_event_rubric_union.py +13 -0
  566. qca/managed/types/user_interrupt_event_params.py +12 -0
  567. qca/managed/types/user_location.py +15 -0
  568. qca/managed/types/user_location_param.py +15 -0
  569. qca/managed/types/user_message_event_content_union.py +18 -0
  570. qca/managed/types/user_message_event_content_union_source.py +15 -0
  571. qca/managed/types/user_message_event_params.py +18 -0
  572. qca/managed/types/user_tool_confirmation_event_params.py +14 -0
  573. qca/managed/types/user_tool_result_event_content_union.py +21 -0
  574. qca/managed/types/user_tool_result_event_params.py +20 -0
  575. qca/managed/types/vault.py +18 -0
  576. qca/managed/types/vault_archive_params.py +12 -0
  577. qca/managed/types/vault_create_params.py +14 -0
  578. qca/managed/types/vault_credential_archive_params.py +12 -0
  579. qca/managed/types/vault_credential_create_params.py +20 -0
  580. qca/managed/types/vault_credential_delete_params.py +12 -0
  581. qca/managed/types/vault_credential_list_params.py +18 -0
  582. qca/managed/types/vault_credential_mcpo_auth_validate_params.py +12 -0
  583. qca/managed/types/vault_credential_retrieve_params.py +12 -0
  584. qca/managed/types/vault_credential_update_params.py +19 -0
  585. qca/managed/types/vault_delete_params.py +12 -0
  586. qca/managed/types/vault_list_params.py +18 -0
  587. qca/managed/types/vault_retrieve_params.py +12 -0
  588. qca/managed/types/web_fetch_tool_config_params.py +21 -0
  589. qca/managed/types/web_search_tool_config_params.py +22 -0
  590. qca/managed/types/write_tool_config_params.py +18 -0
  591. qca/py.typed +0 -0
  592. qca-0.0.1.dev1.dist-info/METADATA +279 -0
  593. qca-0.0.1.dev1.dist-info/RECORD +596 -0
  594. qca-0.0.1.dev1.dist-info/WHEEL +5 -0
  595. qca-0.0.1.dev1.dist-info/licenses/LICENSE +21 -0
  596. qca-0.0.1.dev1.dist-info/top_level.txt +1 -0
@@ -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) 开源。