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.
- qca-0.0.1.dev1/.env.live.example +15 -0
- qca-0.0.1.dev1/LICENSE +21 -0
- qca-0.0.1.dev1/MANIFEST.in +5 -0
- qca-0.0.1.dev1/Makefile +27 -0
- qca-0.0.1.dev1/PKG-INFO +279 -0
- qca-0.0.1.dev1/README.md +255 -0
- qca-0.0.1.dev1/docs/forward-api.md +2551 -0
- qca-0.0.1.dev1/docs/managed-api.md +2598 -0
- qca-0.0.1.dev1/examples/README.md +89 -0
- qca-0.0.1.dev1/examples/__init__.py +1 -0
- qca-0.0.1.dev1/examples/common/__init__.py +1 -0
- qca-0.0.1.dev1/examples/common/live.py +331 -0
- qca-0.0.1.dev1/examples/conftest.py +25 -0
- qca-0.0.1.dev1/examples/forward/__init__.py +1 -0
- qca-0.0.1.dev1/examples/forward/__main__.py +24 -0
- qca-0.0.1.dev1/examples/forward/_cleanup.py +13 -0
- qca-0.0.1.dev1/examples/forward/async_session.py +37 -0
- qca-0.0.1.dev1/examples/forward/batch.py +130 -0
- qca-0.0.1.dev1/examples/forward/memory.py +66 -0
- qca-0.0.1.dev1/examples/forward/models.py +19 -0
- qca-0.0.1.dev1/examples/forward/resources.py +78 -0
- qca-0.0.1.dev1/examples/forward/schedule.py +70 -0
- qca-0.0.1.dev1/examples/forward/session.py +70 -0
- qca-0.0.1.dev1/examples/forward/test_live.py +12 -0
- qca-0.0.1.dev1/examples/managed/__init__.py +1 -0
- qca-0.0.1.dev1/examples/managed/__main__.py +24 -0
- qca-0.0.1.dev1/examples/managed/_cleanup.py +13 -0
- qca-0.0.1.dev1/examples/managed/async_session.py +37 -0
- qca-0.0.1.dev1/examples/managed/deployment.py +49 -0
- qca-0.0.1.dev1/examples/managed/dream.py +76 -0
- qca-0.0.1.dev1/examples/managed/memory.py +52 -0
- qca-0.0.1.dev1/examples/managed/models.py +19 -0
- qca-0.0.1.dev1/examples/managed/resources.py +69 -0
- qca-0.0.1.dev1/examples/managed/session.py +66 -0
- qca-0.0.1.dev1/examples/managed/test_live.py +12 -0
- qca-0.0.1.dev1/pyproject.toml +54 -0
- qca-0.0.1.dev1/setup.cfg +4 -0
- qca-0.0.1.dev1/src/qca/__init__.py +50 -0
- qca-0.0.1.dev1/src/qca/_version.py +1 -0
- qca-0.0.1.dev1/src/qca/common/__init__.py +43 -0
- qca-0.0.1.dev1/src/qca/common/_base_client.py +450 -0
- qca-0.0.1.dev1/src/qca/common/_exceptions.py +97 -0
- qca-0.0.1.dev1/src/qca/common/_files.py +38 -0
- qca-0.0.1.dev1/src/qca/common/_models.py +33 -0
- qca-0.0.1.dev1/src/qca/common/_resource.py +35 -0
- qca-0.0.1.dev1/src/qca/common/_response.py +220 -0
- qca-0.0.1.dev1/src/qca/common/_streaming.py +143 -0
- qca-0.0.1.dev1/src/qca/common/_types.py +25 -0
- qca-0.0.1.dev1/src/qca/common/_utils.py +73 -0
- qca-0.0.1.dev1/src/qca/common/credentials.py +13 -0
- qca-0.0.1.dev1/src/qca/common/pagination.py +118 -0
- qca-0.0.1.dev1/src/qca/forward/__init__.py +7 -0
- qca-0.0.1.dev1/src/qca/forward/_client.py +142 -0
- qca-0.0.1.dev1/src/qca/forward/resources/__init__.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/resources/batches/__init__.py +4 -0
- qca-0.0.1.dev1/src/qca/forward/resources/batches/batches.py +308 -0
- qca-0.0.1.dev1/src/qca/forward/resources/batches/tasks.py +71 -0
- qca-0.0.1.dev1/src/qca/forward/resources/channel_pairings.py +111 -0
- qca-0.0.1.dev1/src/qca/forward/resources/channels/__init__.py +4 -0
- qca-0.0.1.dev1/src/qca/forward/resources/channels/channels.py +336 -0
- qca-0.0.1.dev1/src/qca/forward/resources/channels/qr_sessions.py +106 -0
- qca-0.0.1.dev1/src/qca/forward/resources/environments.py +305 -0
- qca-0.0.1.dev1/src/qca/forward/resources/files.py +272 -0
- qca-0.0.1.dev1/src/qca/forward/resources/identities/__init__.py +6 -0
- qca-0.0.1.dev1/src/qca/forward/resources/identities/configs.py +249 -0
- qca-0.0.1.dev1/src/qca/forward/resources/identities/identities.py +570 -0
- qca-0.0.1.dev1/src/qca/forward/resources/identities/memory_stores.py +186 -0
- qca-0.0.1.dev1/src/qca/forward/resources/memory_stores/__init__.py +6 -0
- qca-0.0.1.dev1/src/qca/forward/resources/memory_stores/memories.py +290 -0
- qca-0.0.1.dev1/src/qca/forward/resources/memory_stores/memory_stores.py +321 -0
- qca-0.0.1.dev1/src/qca/forward/resources/memory_stores/memory_versions.py +179 -0
- qca-0.0.1.dev1/src/qca/forward/resources/models.py +58 -0
- qca-0.0.1.dev1/src/qca/forward/resources/schedule_runs.py +149 -0
- qca-0.0.1.dev1/src/qca/forward/resources/schedules.py +545 -0
- qca-0.0.1.dev1/src/qca/forward/resources/sessions/__init__.py +6 -0
- qca-0.0.1.dev1/src/qca/forward/resources/sessions/events.py +208 -0
- qca-0.0.1.dev1/src/qca/forward/resources/sessions/resources.py +66 -0
- qca-0.0.1.dev1/src/qca/forward/resources/sessions/sessions.py +417 -0
- qca-0.0.1.dev1/src/qca/forward/resources/sessions/threads/__init__.py +4 -0
- qca-0.0.1.dev1/src/qca/forward/resources/sessions/threads/events.py +128 -0
- qca-0.0.1.dev1/src/qca/forward/resources/sessions/threads/threads.py +177 -0
- qca-0.0.1.dev1/src/qca/forward/resources/skills/__init__.py +4 -0
- qca-0.0.1.dev1/src/qca/forward/resources/skills/skills.py +335 -0
- qca-0.0.1.dev1/src/qca/forward/resources/skills/versions.py +253 -0
- qca-0.0.1.dev1/src/qca/forward/resources/templates.py +426 -0
- qca-0.0.1.dev1/src/qca/forward/resources/vaults/__init__.py +4 -0
- qca-0.0.1.dev1/src/qca/forward/resources/vaults/credentials.py +227 -0
- qca-0.0.1.dev1/src/qca/forward/resources/vaults/vaults.py +217 -0
- qca-0.0.1.dev1/src/qca/forward/types/__init__.py +205 -0
- qca-0.0.1.dev1/src/qca/forward/types/batch.py +35 -0
- qca-0.0.1.dev1/src/qca/forward/types/batch_cancel_params.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/batch_create_params.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/batch_file.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/batch_list_params.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/batch_request_counts.py +17 -0
- qca-0.0.1.dev1/src/qca/forward/types/batch_task.py +24 -0
- qca-0.0.1.dev1/src/qca/forward/types/batch_task_artifacts_item.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/batch_task_error.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/batch_task_list_params.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/batch_task_usage.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/batch_usage.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/channel.py +27 -0
- qca-0.0.1.dev1/src/qca/forward/types/channel_channel_config.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/channel_channel_config_response_options.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/channel_create_params.py +18 -0
- qca-0.0.1.dev1/src/qca/forward/types/channel_identity_resolution.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/channel_list_params.py +18 -0
- qca-0.0.1.dev1/src/qca/forward/types/channel_pairing.py +17 -0
- qca-0.0.1.dev1/src/qca/forward/types/channel_pairing_create_params.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/channel_qr_session.py +19 -0
- qca-0.0.1.dev1/src/qca/forward/types/channel_qr_session_create_params.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/channel_update_params.py +16 -0
- qca-0.0.1.dev1/src/qca/forward/types/content_block_param.py +17 -0
- qca-0.0.1.dev1/src/qca/forward/types/deleted_channel.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/deleted_channel_pairing.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/deleted_identity.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/deleted_memory.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/deleted_memory_store.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/deleted_memory_store_mount.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/deleted_skill_version.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/effective_config.py +23 -0
- qca-0.0.1.dev1/src/qca/forward/types/effective_config_agent.py +19 -0
- qca-0.0.1.dev1/src/qca/forward/types/effective_config_agent_tools_item.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/effective_config_agent_tools_item_configs_item.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/effective_config_session.py +17 -0
- qca-0.0.1.dev1/src/qca/forward/types/effective_config_session_resources_item.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/environment.py +24 -0
- qca-0.0.1.dev1/src/qca/forward/types/environment_config.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/environment_config_packages.py +17 -0
- qca-0.0.1.dev1/src/qca/forward/types/environment_create_params.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/environment_list_params.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/environment_update_params.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/environment_variable_override.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/environment_variable_override_param.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/file_list_params.py +16 -0
- qca-0.0.1.dev1/src/qca/forward/types/file_metadata.py +22 -0
- qca-0.0.1.dev1/src/qca/forward/types/file_upload_params.py +17 -0
- qca-0.0.1.dev1/src/qca/forward/types/git_hub_repository.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/git_hub_repository_param.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity.py +19 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_clear_params.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_clear_response.py +18 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_clear_response_summary.py +16 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_config.py +25 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_config_list_params.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_config_spec.py +31 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_config_spec_param.py +31 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_config_upsert_params.py +17 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_create_params.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_list_params.py +17 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_list_templates_response.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_memory_store_list_response.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_memory_store_mount_params.py +9 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_stats.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_template.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/identity_update_params.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/image_source_param.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/mcp_server.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/mcp_server_override.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/mcp_server_override_param.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/mcp_server_param.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/memory.py +21 -0
- qca-0.0.1.dev1/src/qca/forward/types/memory_store.py +25 -0
- qca-0.0.1.dev1/src/qca/forward/types/memory_store_create_params.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/memory_store_list_params.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/memory_store_memory_create_params.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/memory_store_memory_list_params.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/memory_store_memory_update_params.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/memory_store_memory_version_list_params.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/memory_store_mount.py +20 -0
- qca-0.0.1.dev1/src/qca/forward/types/memory_store_update_params.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/memory_version.py +23 -0
- qca-0.0.1.dev1/src/qca/forward/types/model.py +23 -0
- qca-0.0.1.dev1/src/qca/forward/types/model_config.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/model_config_param.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/model_list_response.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/multiagent_config.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/multiagent_config_param.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/multiagent_entry.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/multiagent_entry_param.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/permission_policy.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/permission_policy_param.py +9 -0
- qca-0.0.1.dev1/src/qca/forward/types/resource_binding.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/resource_binding_param.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule.py +34 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_archive_many_params.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_archive_many_response.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_archive_params.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_create_params.py +21 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_execution.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_initial_events_item.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_list_params.py +19 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_pause_params.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_paused_reason.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_run.py +33 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_run_list_params.py +20 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_run_params.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_run_retrieve_params.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_run_trigger_context.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_sinks_item.py +16 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_sinks_item_target.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_trigger_policy.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_unpause_params.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/schedule_update_params.py +20 -0
- qca-0.0.1.dev1/src/qca/forward/types/session.py +33 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_archive_params.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_cancel_params.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_config.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_create_params.py +21 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_create_params_config_param.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_event.py +52 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_event_list_params.py +18 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_event_param.py +24 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_event_send_params.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_event_send_response.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_event_stream_params.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_list_params.py +27 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_resource.py +17 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_resource_add_params.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_resource_spec_param.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_stats.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_template.py +18 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_thread.py +27 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_thread_archive_params.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_thread_event_list_params.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_thread_event_stream_params.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_thread_list_params.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_thread_stop_reason.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_update_params.py +17 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_update_params_config_param.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/session_usage.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/skill.py +23 -0
- qca-0.0.1.dev1/src/qca/forward/types/skill_binding.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/skill_binding_param.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/skill_create_params.py +20 -0
- qca-0.0.1.dev1/src/qca/forward/types/skill_list_params.py +17 -0
- qca-0.0.1.dev1/src/qca/forward/types/skill_override.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/skill_override_param.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/skill_retrieve_params.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/skill_update_params.py +16 -0
- qca-0.0.1.dev1/src/qca/forward/types/skill_version.py +22 -0
- qca-0.0.1.dev1/src/qca/forward/types/skill_version_create_params.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/skill_version_list_params.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/system_override.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/system_override_param.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/template.py +39 -0
- qca-0.0.1.dev1/src/qca/forward/types/template_archive_params.py +11 -0
- qca-0.0.1.dev1/src/qca/forward/types/template_clone_params.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/template_create_params.py +35 -0
- qca-0.0.1.dev1/src/qca/forward/types/template_list_params.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/template_update_params.py +35 -0
- qca-0.0.1.dev1/src/qca/forward/types/tool.py +21 -0
- qca-0.0.1.dev1/src/qca/forward/types/tool_config.py +16 -0
- qca-0.0.1.dev1/src/qca/forward/types/tool_config_param.py +16 -0
- qca-0.0.1.dev1/src/qca/forward/types/tool_override.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/tool_override_param.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/tool_param.py +21 -0
- qca-0.0.1.dev1/src/qca/forward/types/vault.py +18 -0
- qca-0.0.1.dev1/src/qca/forward/types/vault_create_params.py +13 -0
- qca-0.0.1.dev1/src/qca/forward/types/vault_credential.py +22 -0
- qca-0.0.1.dev1/src/qca/forward/types/vault_credential_auth.py +12 -0
- qca-0.0.1.dev1/src/qca/forward/types/vault_credential_create_params.py +14 -0
- qca-0.0.1.dev1/src/qca/forward/types/vault_credential_list_params.py +15 -0
- qca-0.0.1.dev1/src/qca/forward/types/vault_list_params.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/__init__.py +7 -0
- qca-0.0.1.dev1/src/qca/managed/_client.py +115 -0
- qca-0.0.1.dev1/src/qca/managed/resources/__init__.py +10 -0
- qca-0.0.1.dev1/src/qca/managed/resources/agents/__init__.py +4 -0
- qca-0.0.1.dev1/src/qca/managed/resources/agents/agents.py +386 -0
- qca-0.0.1.dev1/src/qca/managed/resources/agents/versions.py +71 -0
- qca-0.0.1.dev1/src/qca/managed/resources/deployment_runs.py +160 -0
- qca-0.0.1.dev1/src/qca/managed/resources/deployments.py +552 -0
- qca-0.0.1.dev1/src/qca/managed/resources/dreams.py +303 -0
- qca-0.0.1.dev1/src/qca/managed/resources/environments/__init__.py +4 -0
- qca-0.0.1.dev1/src/qca/managed/resources/environments/environments.py +359 -0
- qca-0.0.1.dev1/src/qca/managed/resources/environments/work.py +449 -0
- qca-0.0.1.dev1/src/qca/managed/resources/files.py +295 -0
- qca-0.0.1.dev1/src/qca/managed/resources/memory_stores/__init__.py +6 -0
- qca-0.0.1.dev1/src/qca/managed/resources/memory_stores/memories.py +358 -0
- qca-0.0.1.dev1/src/qca/managed/resources/memory_stores/memory_stores.py +362 -0
- qca-0.0.1.dev1/src/qca/managed/resources/memory_stores/memory_versions.py +228 -0
- qca-0.0.1.dev1/src/qca/managed/resources/models.py +71 -0
- qca-0.0.1.dev1/src/qca/managed/resources/sessions/__init__.py +6 -0
- qca-0.0.1.dev1/src/qca/managed/resources/sessions/events.py +240 -0
- qca-0.0.1.dev1/src/qca/managed/resources/sessions/resources.py +303 -0
- qca-0.0.1.dev1/src/qca/managed/resources/sessions/sessions.py +472 -0
- qca-0.0.1.dev1/src/qca/managed/resources/sessions/threads/__init__.py +4 -0
- qca-0.0.1.dev1/src/qca/managed/resources/sessions/threads/events.py +141 -0
- qca-0.0.1.dev1/src/qca/managed/resources/sessions/threads/threads.py +185 -0
- qca-0.0.1.dev1/src/qca/managed/resources/skills/__init__.py +4 -0
- qca-0.0.1.dev1/src/qca/managed/resources/skills/skills.py +254 -0
- qca-0.0.1.dev1/src/qca/managed/resources/skills/versions.py +273 -0
- qca-0.0.1.dev1/src/qca/managed/resources/vaults/__init__.py +4 -0
- qca-0.0.1.dev1/src/qca/managed/resources/vaults/credentials.py +437 -0
- qca-0.0.1.dev1/src/qca/managed/resources/vaults/vaults.py +296 -0
- qca-0.0.1.dev1/src/qca/managed/types/__init__.py +421 -0
- qca-0.0.1.dev1/src/qca/managed/types/actor_union.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/advisor_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent.py +33 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_archive_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_create_params.py +31 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_list_params.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_mcp_tool_result_event_content_union.py +21 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_message_event_content_union.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_reference.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_retrieve_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_skill_union.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_thread_message_received_event_content_union.py +20 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_thread_message_received_event_content_union_source.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_thread_message_sent_event_content_union.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_thread_message_sent_event_content_union_source.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_tool_config_union.py +22 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_tool_config_union_permission_policy.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_tool_result_event_content_union.py +21 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_tool_union.py +25 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_tool_union_default_config.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_tool_union_default_config_permission_policy.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_toolset20260401_params.py +37 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_toolset_default_config_params.py +16 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_update_params.py +32 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_version_list_params.py +14 -0
- qca-0.0.1.dev1/src/qca/managed/types/agent_with_overrides_params.py +27 -0
- qca-0.0.1.dev1/src/qca/managed/types/always_allow_policy_param.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/always_ask_policy_param.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/base64_document_source_param.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/base64_image_source_param.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/bash_tool_config_params.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/branch_checkout_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/budget_limit.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/budget_limit_param.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/cache_creation_usage.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/capability_support.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/cloud_config_networking_union.py +14 -0
- qca-0.0.1.dev1/src/qca/managed/types/cloud_config_params.py +19 -0
- qca-0.0.1.dev1/src/qca/managed/types/commit_checkout_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/context_management_capability.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/credential.py +23 -0
- qca-0.0.1.dev1/src/qca/managed/types/credential_auth_union.py +23 -0
- qca-0.0.1.dev1/src/qca/managed/types/credential_validation.py +23 -0
- qca-0.0.1.dev1/src/qca/managed/types/custom_skill_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/custom_tool_input_schema.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/custom_tool_input_schema_param.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/custom_tool_params.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/delete_session_resource.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deleted_credential.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deleted_file.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deleted_memory.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deleted_memory_store.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deleted_session.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deleted_skill.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deleted_skill_version.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deleted_vault.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/delta_content.py +16 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment.py +37 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_archive_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_create_params.py +36 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_initial_event_union.py +20 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_list_params.py +22 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_pause_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_paused_reason_error_union.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_paused_reason_union.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_retrieve_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_run.py +24 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_run_error_union.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_run_list_params.py +24 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_run_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_run_retrieve_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_unpause_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_update_params.py +34 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_user_define_outcome_event_rubric_union.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_user_message_event_content_union.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/deployment_user_message_event_content_union_source.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/document_block_param.py +22 -0
- qca-0.0.1.dev1/src/qca/managed/types/dream.py +33 -0
- qca-0.0.1.dev1/src/qca/managed/types/dream_archive_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/dream_cancel_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/dream_create_params.py +23 -0
- qca-0.0.1.dev1/src/qca/managed/types/dream_error.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/dream_input_union.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/dream_list_params.py +19 -0
- qca-0.0.1.dev1/src/qca/managed/types/dream_memory_store_input_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/dream_model_config.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/dream_model_config_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/dream_output.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/dream_retrieve_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/dream_sessions_input_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/dream_usage.py +14 -0
- qca-0.0.1.dev1/src/qca/managed/types/edit_tool_config_params.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/effort_capability.py +19 -0
- qca-0.0.1.dev1/src/qca/managed/types/effort_high_param.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/effort_low_param.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/effort_max_param.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/effort_medium_param.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/effort_xhigh_param.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment.py +23 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_archive_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_config_union.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_create_params.py +21 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_delete_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_delete_response.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_list_params.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_retrieve_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_update_params.py +21 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_variable_auth_response_networking_union.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_variable_create_params.py +20 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_variable_update_params.py +19 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_work_ack_params.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_work_heartbeat_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_work_list_params.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_work_poll_params.py +14 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_work_retrieve_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_work_stats_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_work_stop_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/environment_work_update_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/file_delete_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/file_document_source_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/file_download_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/file_get_metadata_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/file_image_source_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/file_list_params.py +19 -0
- qca-0.0.1.dev1/src/qca/managed/types/file_metadata.py +25 -0
- qca-0.0.1.dev1/src/qca/managed/types/file_resource.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/file_resource_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/file_rubric_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/file_scope.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/file_upload_params.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/git_hub_repository_resource_checkout_union.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/git_hub_repository_resource_config_checkout_union.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/git_hub_repository_resource_params.py +19 -0
- qca-0.0.1.dev1/src/qca/managed/types/glob_tool_config_params.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/grep_tool_config_params.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/image_block_param.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/injection_location_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/injection_location_response.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/injection_location_update_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/limited_credential_networking_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/limited_network_params.py +14 -0
- qca-0.0.1.dev1/src/qca/managed/types/mcp_probe.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/mcp_server_url_definition.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/mcp_tool_config.py +16 -0
- qca-0.0.1.dev1/src/qca/managed/types/mcp_tool_config_params.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/mcp_tool_config_permission_policy_union.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/mcp_toolset_default_config_params.py +16 -0
- qca-0.0.1.dev1/src/qca/managed/types/mcp_toolset_params.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/mcpo_auth_create_params.py +19 -0
- qca-0.0.1.dev1/src/qca/managed/types/mcpo_auth_refresh_params.py +23 -0
- qca-0.0.1.dev1/src/qca/managed/types/mcpo_auth_refresh_response.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/mcpo_auth_refresh_response_token_endpoint_auth_union.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/mcpo_auth_refresh_update_params.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/mcpo_auth_update_params.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory.py +22 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_list_item_union.py +21 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store.py +19 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_archive_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_create_params.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_delete_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_list_params.py +19 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_create_params.py +16 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_delete_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_list_params.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_retrieve_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_update_params.py +21 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_version_list_params.py +23 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_version_redact_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_memory_version_retrieve_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_resource_param.py +14 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_retrieve_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_store_update_params.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/memory_version.py +27 -0
- qca-0.0.1.dev1/src/qca/managed/types/model_capabilities.py +25 -0
- qca-0.0.1.dev1/src/qca/managed/types/model_config.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/model_config_effort_union.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/model_config_params.py +39 -0
- qca-0.0.1.dev1/src/qca/managed/types/model_info.py +30 -0
- qca-0.0.1.dev1/src/qca/managed/types/model_list_params.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/monetary_amount.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/monetary_amount_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/multiagent.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/multiagent_agent_union.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/multiagent_params.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/multiagent_self_params.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/outcome_evaluation_resource.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/output_behavior_create_new_param.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/output_behavior_union.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/output_behavior_update_existing_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/packages.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/packages_params.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/plain_text_document_source_param.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/precondition_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/qoder_skill_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/read_tool_config_params.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/redacted_block_param.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/refresh_http_response.py +14 -0
- qca-0.0.1.dev1/src/qca/managed/types/refresh_object.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/schedule.py +16 -0
- qca-0.0.1.dev1/src/qca/managed/types/schedule_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/search_result_block_param.py +19 -0
- qca-0.0.1.dev1/src/qca/managed/types/search_result_citations.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/search_result_citations_param.py +9 -0
- qca-0.0.1.dev1/src/qca/managed/types/search_result_content.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/search_result_content_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/self_hosted_config_params.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/self_hosted_work.py +26 -0
- qca-0.0.1.dev1/src/qca/managed/types/self_hosted_work_heartbeat_response.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/self_hosted_work_queue_stats.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/send_session_events.py +14 -0
- qca-0.0.1.dev1/src/qca/managed/types/send_session_events_data_union.py +39 -0
- qca-0.0.1.dev1/src/qca/managed/types/server_tool_usage.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/session.py +37 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_agent.py +28 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_agent_skill_union.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_agent_tool_union.py +25 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_agent_tool_union_default_config.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_agent_tool_union_default_config_permission_policy.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_agent_update_param.py +24 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_archive_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_create_params.py +31 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_delete_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_error_event_error_union.py +19 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_error_event_error_union_retry_status.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_event.py +77 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_event_list_params.py +23 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_event_send_params.py +34 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_event_stop_reason.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_event_stream_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_event_usage.py +24 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_list_params.py +26 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_multiagent_coordinator.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_multiagent_coordinator_agent_union.py +26 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_resource_add_params.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_resource_config_union.py +21 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_resource_delete_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_resource_get_response_union.py +27 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_resource_list_params.py +16 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_resource_retrieve_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_resource_union.py +27 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_resource_update_params.py +14 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_resource_update_response_union.py +27 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_retrieve_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_stats.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_stream_event.py +82 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_stream_event_stop_reason.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_stream_event_usage.py +24 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_thread.py +27 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_thread_agent_skill_union.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_thread_agent_tool_union.py +25 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_thread_agent_tool_union_default_config.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_thread_agent_tool_union_default_config_permission_policy.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_thread_agent_union.py +26 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_thread_archive_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_thread_event_list_params.py +16 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_thread_event_stream_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_thread_list_params.py +14 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_thread_retrieve_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_thread_stats.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_thread_usage.py +22 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_update_params.py +22 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_usage.py +22 -0
- qca-0.0.1.dev1/src/qca/managed/types/session_work_data.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/skill.py +22 -0
- qca-0.0.1.dev1/src/qca/managed/types/skill_create_params.py +17 -0
- qca-0.0.1.dev1/src/qca/managed/types/skill_delete_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/skill_list_params.py +19 -0
- qca-0.0.1.dev1/src/qca/managed/types/skill_retrieve_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/skill_source.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/skill_version.py +19 -0
- qca-0.0.1.dev1/src/qca/managed/types/skill_version_create_params.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/skill_version_delete_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/skill_version_download_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/skill_version_list_params.py +14 -0
- qca-0.0.1.dev1/src/qca/managed/types/skill_version_retrieve_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/span_model_usage.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/start_event_preview_union.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/static_bearer_create_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/static_bearer_update_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/stream_session_thread_events_union.py +82 -0
- qca-0.0.1.dev1/src/qca/managed/types/stream_session_thread_events_union_stop_reason.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/stream_session_thread_events_union_usage.py +24 -0
- qca-0.0.1.dev1/src/qca/managed/types/system_content_block.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/system_content_block_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/system_message_event_params.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/text_block.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/text_block_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/text_rubric_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/thinking_capability.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/thinking_types.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/token_endpoint_auth_basic_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/token_endpoint_auth_basic_update_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/token_endpoint_auth_none_param.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/token_endpoint_auth_post_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/token_endpoint_auth_post_update_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/trigger_context_union.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/unrestricted_credential_networking_params.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/unrestricted_network_param.py +11 -0
- qca-0.0.1.dev1/src/qca/managed/types/url_document_source_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/url_image_source_param.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/urlmcp_server_params.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/user_custom_tool_result_event_content_union.py +21 -0
- qca-0.0.1.dev1/src/qca/managed/types/user_custom_tool_result_event_params.py +20 -0
- qca-0.0.1.dev1/src/qca/managed/types/user_define_outcome_event_params.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/user_define_outcome_event_rubric_union.py +13 -0
- qca-0.0.1.dev1/src/qca/managed/types/user_interrupt_event_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/user_location.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/user_location_param.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/user_message_event_content_union.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/user_message_event_content_union_source.py +15 -0
- qca-0.0.1.dev1/src/qca/managed/types/user_message_event_params.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/user_tool_confirmation_event_params.py +14 -0
- qca-0.0.1.dev1/src/qca/managed/types/user_tool_result_event_content_union.py +21 -0
- qca-0.0.1.dev1/src/qca/managed/types/user_tool_result_event_params.py +20 -0
- qca-0.0.1.dev1/src/qca/managed/types/vault.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/vault_archive_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/vault_create_params.py +14 -0
- qca-0.0.1.dev1/src/qca/managed/types/vault_credential_archive_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/vault_credential_create_params.py +20 -0
- qca-0.0.1.dev1/src/qca/managed/types/vault_credential_delete_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/vault_credential_list_params.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/vault_credential_mcpo_auth_validate_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/vault_credential_retrieve_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/vault_credential_update_params.py +19 -0
- qca-0.0.1.dev1/src/qca/managed/types/vault_delete_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/vault_list_params.py +18 -0
- qca-0.0.1.dev1/src/qca/managed/types/vault_retrieve_params.py +12 -0
- qca-0.0.1.dev1/src/qca/managed/types/web_fetch_tool_config_params.py +21 -0
- qca-0.0.1.dev1/src/qca/managed/types/web_search_tool_config_params.py +22 -0
- qca-0.0.1.dev1/src/qca/managed/types/write_tool_config_params.py +18 -0
- qca-0.0.1.dev1/src/qca/py.typed +0 -0
- qca-0.0.1.dev1/src/qca.egg-info/PKG-INFO +279 -0
- qca-0.0.1.dev1/src/qca.egg-info/SOURCES.txt +637 -0
- qca-0.0.1.dev1/src/qca.egg-info/dependency_links.txt +1 -0
- qca-0.0.1.dev1/src/qca.egg-info/requires.txt +11 -0
- qca-0.0.1.dev1/src/qca.egg-info/top_level.txt +1 -0
- qca-0.0.1.dev1/tests/test_client.py +488 -0
- qca-0.0.1.dev1/tests/test_docs_contract.py +147 -0
- qca-0.0.1.dev1/tests/test_examples.py +506 -0
- qca-0.0.1.dev1/tests/test_pagination.py +120 -0
- qca-0.0.1.dev1/tests/test_resource_surface.py +182 -0
- 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.
|
qca-0.0.1.dev1/Makefile
ADDED
|
@@ -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
|
qca-0.0.1.dev1/PKG-INFO
ADDED
|
@@ -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) 开源。
|
qca-0.0.1.dev1/README.md
ADDED
|
@@ -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) 开源。
|