qca-sdk 0.0.1.dev5__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- qca_sdk-0.2.0/Makefile +33 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/PKG-INFO +66 -19
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/README.md +61 -17
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/common/live.py +5 -112
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/forward/__main__.py +6 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/forward/batch.py +19 -47
- qca_sdk-0.2.0/examples/forward/conversation.py +70 -0
- qca_sdk-0.2.0/examples/forward/identity_config.py +80 -0
- qca_sdk-0.2.0/examples/forward/memory.py +92 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/forward/resources.py +27 -18
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/forward/schedule.py +10 -9
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/forward/session.py +12 -17
- qca_sdk-0.2.0/examples/forward/streaming_deltas.py +84 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/managed/__main__.py +6 -0
- qca_sdk-0.2.0/examples/managed/conversation.py +66 -0
- qca_sdk-0.2.0/examples/managed/custom_tools.py +129 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/managed/deployment.py +8 -11
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/managed/dream.py +5 -10
- qca_sdk-0.2.0/examples/managed/memory.py +83 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/managed/resources.py +27 -18
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/managed/session.py +12 -17
- qca_sdk-0.2.0/examples/managed/streaming_deltas.py +80 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/pyproject.toml +11 -5
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/__init__.py +6 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/common/__init__.py +6 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/common/_base_client.py +51 -43
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/common/_exceptions.py +10 -0
- qca_sdk-0.2.0/src/qca/common/_models.py +79 -0
- qca_sdk-0.2.0/src/qca/common/_resumable_streaming.py +244 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/common/_streaming.py +7 -6
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/sessions/events.py +80 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/sessions/events.py +86 -2
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_event_stream_params.py +1 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca_sdk.egg-info/PKG-INFO +66 -19
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca_sdk.egg-info/SOURCES.txt +15 -5
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca_sdk.egg-info/requires.txt +5 -1
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/tests/test_client.py +33 -11
- qca_sdk-0.2.0/tests/test_docs_check.py +21 -0
- qca_sdk-0.2.0/tests/test_generate_docs.py +56 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/tests/test_pagination.py +8 -7
- qca_sdk-0.2.0/tests/test_public_contract.py +192 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/tests/test_resource_surface.py +13 -2
- qca_sdk-0.2.0/tests/test_response_alignment.py +264 -0
- qca_sdk-0.2.0/tests/test_resumable_streaming.py +572 -0
- qca_sdk-0.2.0/tests/test_scenarios_offline.py +196 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/tests/test_streaming.py +5 -3
- qca_sdk-0.2.0/tests/test_strict_integration_offline.py +90 -0
- qca_sdk-0.0.1.dev5/Makefile +0 -27
- qca_sdk-0.0.1.dev5/examples/conftest.py +0 -25
- qca_sdk-0.0.1.dev5/examples/forward/memory.py +0 -66
- qca_sdk-0.0.1.dev5/examples/forward/test_live.py +0 -12
- qca_sdk-0.0.1.dev5/examples/managed/memory.py +0 -52
- qca_sdk-0.0.1.dev5/examples/managed/test_live.py +0 -12
- qca_sdk-0.0.1.dev5/src/qca/common/_models.py +0 -33
- qca_sdk-0.0.1.dev5/tests/test_examples.py +0 -506
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/.env.live.example +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/LICENSE +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/MANIFEST.in +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/common/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/forward/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/forward/_cleanup.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/forward/async_session.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/forward/models.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/managed/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/managed/_cleanup.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/managed/async_session.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/examples/managed/models.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/setup.cfg +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/_version.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/common/_files.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/common/_platform.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/common/_resource.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/common/_response.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/common/_types.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/common/_utils.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/common/credentials.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/common/pagination.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/_client.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/batches/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/batches/batches.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/batches/tasks.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/channel_pairings.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/channels/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/channels/channels.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/channels/qr_sessions.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/environments.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/files.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/identities/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/identities/configs.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/identities/identities.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/identities/memory_stores.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/memory_stores/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/memory_stores/memories.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/memory_stores/memory_stores.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/memory_stores/memory_versions.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/models.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/schedule_runs.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/schedules.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/sessions/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/sessions/resources.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/sessions/sessions.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/sessions/threads/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/sessions/threads/events.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/sessions/threads/threads.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/skills/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/skills/skills.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/skills/versions.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/templates.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/vaults/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/vaults/credentials.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/resources/vaults/vaults.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/batch.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/batch_cancel_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/batch_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/batch_file.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/batch_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/batch_request_counts.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/batch_task.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/batch_task_artifacts_item.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/batch_task_error.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/batch_task_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/batch_task_usage.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/batch_usage.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/channel.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/channel_channel_config.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/channel_channel_config_response_options.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/channel_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/channel_identity_resolution.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/channel_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/channel_pairing.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/channel_pairing_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/channel_qr_session.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/channel_qr_session_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/channel_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/content_block_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/deleted_channel.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/deleted_channel_pairing.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/deleted_identity.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/deleted_memory.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/deleted_memory_store.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/deleted_memory_store_mount.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/deleted_skill_version.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/effective_config.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/effective_config_agent.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/effective_config_agent_tools_item.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/effective_config_agent_tools_item_configs_item.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/effective_config_session.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/effective_config_session_resources_item.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/environment.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/environment_config.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/environment_config_packages.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/environment_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/environment_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/environment_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/environment_variable_override.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/environment_variable_override_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/file_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/file_metadata.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/file_upload_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/git_hub_repository.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/git_hub_repository_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_clear_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_clear_response.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_clear_response_summary.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_config.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_config_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_config_spec.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_config_spec_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_config_upsert_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_list_templates_response.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_memory_store_list_response.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_memory_store_mount_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_stats.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_template.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/identity_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/image_source_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/mcp_server.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/mcp_server_override.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/mcp_server_override_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/mcp_server_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/memory.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/memory_store.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/memory_store_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/memory_store_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/memory_store_memory_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/memory_store_memory_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/memory_store_memory_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/memory_store_memory_version_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/memory_store_mount.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/memory_store_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/memory_version.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/model.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/model_config.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/model_config_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/model_list_response.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/multiagent_config.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/multiagent_config_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/multiagent_entry.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/multiagent_entry_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/permission_policy.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/permission_policy_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/resource_binding.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/resource_binding_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_archive_many_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_archive_many_response.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_archive_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_execution.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_initial_events_item.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_pause_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_paused_reason.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_run.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_run_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_run_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_run_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_run_trigger_context.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_sinks_item.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_sinks_item_target.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_trigger_policy.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_unpause_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/schedule_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_archive_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_cancel_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_config.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_create_params_config_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_event.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_event_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_event_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_event_send_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_event_send_response.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_event_stream_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_resource.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_resource_add_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_resource_spec_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_stats.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_template.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_thread.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_thread_archive_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_thread_event_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_thread_event_stream_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_thread_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_thread_stop_reason.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_update_params_config_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/session_usage.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/skill.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/skill_binding.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/skill_binding_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/skill_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/skill_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/skill_override.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/skill_override_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/skill_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/skill_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/skill_version.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/skill_version_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/skill_version_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/system_override.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/system_override_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/template.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/template_archive_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/template_clone_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/template_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/template_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/template_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/tool.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/tool_config.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/tool_config_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/tool_override.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/tool_override_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/tool_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/vault.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/vault_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/vault_credential.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/vault_credential_auth.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/vault_credential_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/vault_credential_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/forward/types/vault_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/_client.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/agents/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/agents/agents.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/agents/versions.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/deployment_runs.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/deployments.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/dreams.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/environments/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/environments/environments.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/environments/work.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/files.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/memory_stores/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/memory_stores/memories.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/memory_stores/memory_stores.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/memory_stores/memory_versions.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/models.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/sessions/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/sessions/resources.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/sessions/sessions.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/sessions/threads/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/sessions/threads/events.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/sessions/threads/threads.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/skills/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/skills/skills.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/skills/versions.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/vaults/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/vaults/credentials.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/resources/vaults/vaults.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/__init__.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/actor_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/advisor_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_archive_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_mcp_tool_result_event_content_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_message_event_content_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_reference.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_skill_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_thread_message_received_event_content_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_thread_message_received_event_content_union_source.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_thread_message_sent_event_content_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_thread_message_sent_event_content_union_source.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_tool_config_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_tool_config_union_permission_policy.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_tool_result_event_content_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_tool_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_tool_union_default_config.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_tool_union_default_config_permission_policy.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_toolset20260401_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_toolset_default_config_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_version_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/agent_with_overrides_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/always_allow_policy_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/always_ask_policy_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/base64_document_source_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/base64_image_source_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/bash_tool_config_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/branch_checkout_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/budget_limit.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/budget_limit_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/cache_creation_usage.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/capability_support.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/cloud_config_networking_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/cloud_config_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/commit_checkout_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/context_management_capability.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/credential.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/credential_auth_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/credential_validation.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/custom_skill_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/custom_tool_input_schema.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/custom_tool_input_schema_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/custom_tool_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/delete_session_resource.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deleted_credential.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deleted_file.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deleted_memory.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deleted_memory_store.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deleted_session.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deleted_skill.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deleted_skill_version.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deleted_vault.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/delta_content.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_archive_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_initial_event_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_pause_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_paused_reason_error_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_paused_reason_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_run.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_run_error_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_run_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_run_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_run_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_unpause_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_user_define_outcome_event_rubric_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_user_message_event_content_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/deployment_user_message_event_content_union_source.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/document_block_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/dream.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/dream_archive_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/dream_cancel_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/dream_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/dream_error.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/dream_input_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/dream_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/dream_memory_store_input_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/dream_model_config.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/dream_model_config_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/dream_output.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/dream_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/dream_sessions_input_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/dream_usage.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/edit_tool_config_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/effort_capability.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/effort_high_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/effort_low_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/effort_max_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/effort_medium_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/effort_xhigh_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_archive_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_config_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_delete_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_delete_response.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_variable_auth_response_networking_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_variable_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_variable_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_work_ack_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_work_heartbeat_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_work_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_work_poll_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_work_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_work_stats_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_work_stop_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/environment_work_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/file_delete_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/file_document_source_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/file_download_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/file_get_metadata_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/file_image_source_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/file_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/file_metadata.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/file_resource.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/file_resource_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/file_rubric_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/file_scope.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/file_upload_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/git_hub_repository_resource_checkout_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/git_hub_repository_resource_config_checkout_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/git_hub_repository_resource_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/glob_tool_config_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/grep_tool_config_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/image_block_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/injection_location_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/injection_location_response.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/injection_location_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/limited_credential_networking_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/limited_network_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/mcp_probe.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/mcp_server_url_definition.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/mcp_tool_config.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/mcp_tool_config_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/mcp_tool_config_permission_policy_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/mcp_toolset_default_config_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/mcp_toolset_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/mcpo_auth_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/mcpo_auth_refresh_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/mcpo_auth_refresh_response.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/mcpo_auth_refresh_response_token_endpoint_auth_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/mcpo_auth_refresh_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/mcpo_auth_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_list_item_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_archive_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_delete_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_memory_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_memory_delete_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_memory_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_memory_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_memory_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_memory_version_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_memory_version_redact_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_memory_version_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_resource_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_store_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/memory_version.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/model_capabilities.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/model_config.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/model_config_effort_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/model_config_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/model_info.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/model_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/monetary_amount.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/monetary_amount_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/multiagent.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/multiagent_agent_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/multiagent_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/multiagent_self_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/outcome_evaluation_resource.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/output_behavior_create_new_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/output_behavior_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/output_behavior_update_existing_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/packages.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/packages_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/plain_text_document_source_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/precondition_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/qoder_skill_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/read_tool_config_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/redacted_block_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/refresh_http_response.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/refresh_object.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/schedule.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/schedule_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/search_result_block_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/search_result_citations.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/search_result_citations_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/search_result_content.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/search_result_content_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/self_hosted_config_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/self_hosted_work.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/self_hosted_work_heartbeat_response.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/self_hosted_work_queue_stats.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/send_session_events.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/send_session_events_data_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/server_tool_usage.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_agent.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_agent_skill_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_agent_tool_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_agent_tool_union_default_config.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_agent_tool_union_default_config_permission_policy.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_agent_update_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_archive_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_delete_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_error_event_error_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_error_event_error_union_retry_status.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_event.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_event_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_event_send_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_event_stop_reason.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_event_usage.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_multiagent_coordinator.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_multiagent_coordinator_agent_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_resource_add_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_resource_config_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_resource_delete_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_resource_get_response_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_resource_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_resource_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_resource_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_resource_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_resource_update_response_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_stats.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_stream_event.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_stream_event_stop_reason.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_stream_event_usage.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_thread.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_thread_agent_skill_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_thread_agent_tool_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_thread_agent_tool_union_default_config.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_thread_agent_tool_union_default_config_permission_policy.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_thread_agent_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_thread_archive_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_thread_event_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_thread_event_stream_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_thread_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_thread_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_thread_stats.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_thread_usage.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_usage.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/session_work_data.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/skill.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/skill_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/skill_delete_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/skill_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/skill_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/skill_source.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/skill_version.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/skill_version_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/skill_version_delete_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/skill_version_download_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/skill_version_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/skill_version_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/span_model_usage.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/start_event_preview_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/static_bearer_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/static_bearer_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/stream_session_thread_events_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/stream_session_thread_events_union_stop_reason.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/stream_session_thread_events_union_usage.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/system_content_block.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/system_content_block_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/system_message_event_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/text_block.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/text_block_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/text_rubric_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/thinking_capability.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/thinking_types.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/token_endpoint_auth_basic_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/token_endpoint_auth_basic_update_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/token_endpoint_auth_none_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/token_endpoint_auth_post_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/token_endpoint_auth_post_update_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/trigger_context_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/unrestricted_credential_networking_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/unrestricted_network_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/url_document_source_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/url_image_source_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/urlmcp_server_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/user_custom_tool_result_event_content_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/user_custom_tool_result_event_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/user_define_outcome_event_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/user_define_outcome_event_rubric_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/user_interrupt_event_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/user_location.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/user_location_param.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/user_message_event_content_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/user_message_event_content_union_source.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/user_message_event_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/user_tool_confirmation_event_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/user_tool_result_event_content_union.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/user_tool_result_event_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/vault.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/vault_archive_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/vault_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/vault_credential_archive_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/vault_credential_create_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/vault_credential_delete_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/vault_credential_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/vault_credential_mcpo_auth_validate_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/vault_credential_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/vault_credential_update_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/vault_delete_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/vault_list_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/vault_retrieve_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/web_fetch_tool_config_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/web_search_tool_config_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/managed/types/write_tool_config_params.py +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca/py.typed +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca_sdk.egg-info/dependency_links.txt +0 -0
- {qca_sdk-0.0.1.dev5 → qca_sdk-0.2.0}/src/qca_sdk.egg-info/top_level.txt +0 -0
qca_sdk-0.2.0/Makefile
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
PYTHON ?= python3
|
|
2
|
+
LIVE_ENV_FILE ?= .env.live
|
|
3
|
+
.DEFAULT_GOAL := test
|
|
4
|
+
|
|
5
|
+
.PHONY: test lint typecheck build docs docs-check test-live test-live-managed test-live-all
|
|
6
|
+
|
|
7
|
+
test:
|
|
8
|
+
$(PYTHON) -m pytest -q
|
|
9
|
+
|
|
10
|
+
docs:
|
|
11
|
+
uv run --python 3.12 --extra dev --locked python scripts/generate-docs.py
|
|
12
|
+
|
|
13
|
+
docs-check:
|
|
14
|
+
uv run --python 3.12 --extra dev --locked python scripts/docs-check.py
|
|
15
|
+
|
|
16
|
+
lint:
|
|
17
|
+
$(PYTHON) -m ruff check src tests examples scripts
|
|
18
|
+
$(PYTHON) -m ruff format --check src tests examples scripts
|
|
19
|
+
|
|
20
|
+
typecheck:
|
|
21
|
+
$(PYTHON) -m mypy src/qca scripts
|
|
22
|
+
|
|
23
|
+
build:
|
|
24
|
+
$(PYTHON) -m build
|
|
25
|
+
|
|
26
|
+
test-live:
|
|
27
|
+
QODER_RUN_LIVE=1 QODER_LIVE_ENV_FILE="$(LIVE_ENV_FILE)" $(PYTHON) -m pytest tests/integration/test_forward.py -m integration -v
|
|
28
|
+
|
|
29
|
+
test-live-managed:
|
|
30
|
+
QODER_RUN_LIVE=1 QODER_LIVE_ENV_FILE="$(LIVE_ENV_FILE)" $(PYTHON) -m pytest tests/integration/test_managed.py -m integration -v
|
|
31
|
+
|
|
32
|
+
test-live-all:
|
|
33
|
+
QODER_RUN_LIVE=1 QODER_LIVE_ENV_FILE="$(LIVE_ENV_FILE)" $(PYTHON) -m pytest tests/integration -m integration -v
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: qca-sdk
|
|
3
|
-
Version: 0.0
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: Typed synchronous and asynchronous clients for Qoder Cloud Agents
|
|
5
5
|
Author: Qoder
|
|
6
6
|
License-Expression: MIT
|
|
@@ -27,11 +27,16 @@ Requires-Dist: pytest>=8; extra == "dev"
|
|
|
27
27
|
Requires-Dist: pytest-asyncio>=0.24; extra == "dev"
|
|
28
28
|
Requires-Dist: ruff>=0.11; extra == "dev"
|
|
29
29
|
Requires-Dist: mypy>=1.15; extra == "dev"
|
|
30
|
-
Requires-Dist: build
|
|
30
|
+
Requires-Dist: build==1.6.1; extra == "dev"
|
|
31
|
+
Requires-Dist: pydoc-markdown<5,>=4; extra == "dev"
|
|
32
|
+
Provides-Extra: release
|
|
33
|
+
Requires-Dist: twine==7.0.0; extra == "release"
|
|
31
34
|
Dynamic: license-file
|
|
32
35
|
|
|
33
36
|
# Qoder Cloud Agents Python SDK
|
|
34
37
|
|
|
38
|
+
[Changelog](CHANGELOG.md) · [Releases](https://github.com/QoderAI/qoder-cloud-agents-sdk-python/releases)
|
|
39
|
+
|
|
35
40
|
[](https://pypi.org/project/qca-sdk/)
|
|
36
41
|
|
|
37
42
|
The Qoder Cloud Agents Python SDK provides access to the Qoder Cloud Agents API from Python 3.10+. It ships synchronous and natively asynchronous clients, typed request parameters and response models, automatic pagination, SSE streaming, and file transfer.
|
|
@@ -44,7 +49,7 @@ The API is exposed in two modes, and each has its own client, resources, and typ
|
|
|
44
49
|
python -m pip install qca-sdk
|
|
45
50
|
```
|
|
46
51
|
|
|
47
|
-
The distribution is named `qca-sdk`; the import package is `qca`. The package is
|
|
52
|
+
The distribution is named `qca-sdk`; the import package is `qca`. The package is pre-1.0, so the command above resolves to the latest `0.1.x` release. To work from a checkout of this repository instead:
|
|
48
53
|
|
|
49
54
|
```bash
|
|
50
55
|
python -m pip install .
|
|
@@ -55,6 +60,22 @@ python -m pip install -e '.[dev]' # development environment
|
|
|
55
60
|
|
|
56
61
|
Python 3.10 or newer. The runtime dependencies are `httpx`, `pydantic` v2, `anyio`, and `typing-extensions`; the package is typed and ships `py.typed`.
|
|
57
62
|
|
|
63
|
+
## Generating documentation
|
|
64
|
+
|
|
65
|
+
The API reference under `docs/api/` is generated from the public source and
|
|
66
|
+
committed. Regenerate and verify it with:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
make docs # regenerate docs/api/ from src/qca
|
|
70
|
+
make docs-check # regenerate + drift/link/snippet checks (offline)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Under the hood these run `pydoc-markdown` via `uv` on a pinned Python 3.12:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
uv run --python 3.12 --extra dev --locked pydoc-markdown pydoc-markdown.yml
|
|
77
|
+
```
|
|
78
|
+
|
|
58
79
|
## Usage
|
|
59
80
|
|
|
60
81
|
```python
|
|
@@ -86,7 +107,7 @@ Explicit arguments take precedence over environment variables. The clients never
|
|
|
86
107
|
|
|
87
108
|
```python
|
|
88
109
|
client = Forward(
|
|
89
|
-
|
|
110
|
+
pat="your-access-token",
|
|
90
111
|
base_url="https://api.qoder.com.cn/api/v1/forward",
|
|
91
112
|
timeout=30.0,
|
|
92
113
|
max_retries=2,
|
|
@@ -190,26 +211,34 @@ Reuse one `session_id` for the whole conversation, and reuse one idempotency key
|
|
|
190
211
|
|
|
191
212
|
## Resuming a stream
|
|
192
213
|
|
|
193
|
-
The
|
|
214
|
+
The low-level `stream()` method exposes `stream.last_event_id` but does not reconnect. Use the handwritten `resumable_stream()` helper to reconnect automatically after EOF, timeouts, transient transport failures, and retryable HTTP statuses. It checkpoints only complete events and sends the latest checkpoint as `Last-Event-ID`; close it with a context manager when finished.
|
|
194
215
|
|
|
195
216
|
```python
|
|
196
|
-
|
|
217
|
+
with client.sessions.events.resumable_stream(
|
|
218
|
+
session_id,
|
|
219
|
+
last_event_id=saved_event_id,
|
|
220
|
+
event_deltas=["agent.message"],
|
|
221
|
+
) as stream:
|
|
222
|
+
for event in stream:
|
|
223
|
+
saved_event_id = stream.last_event_id
|
|
224
|
+
print(event.type)
|
|
225
|
+
```
|
|
197
226
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
except APIConnectionError:
|
|
205
|
-
pass # reconnect with the last_event_id recorded above
|
|
227
|
+
The async form is a native async iterator and context manager; unlike `stream()`, constructing it does not require `await`:
|
|
228
|
+
|
|
229
|
+
```python
|
|
230
|
+
async with client.sessions.events.resumable_stream(session_id) as stream:
|
|
231
|
+
async for event in stream:
|
|
232
|
+
print(event.type)
|
|
206
233
|
```
|
|
207
234
|
|
|
235
|
+
The helper retries until closed, cancelled, or it receives `session.status_terminated` / `session.deleted`. It uses jittered exponential backoff and the same HTTP retry classification as the client (in particular, `409` is not retried). It does not query event history, discard an invalid cursor, or deduplicate event IDs because multiple preview deltas may share one ID.
|
|
236
|
+
|
|
208
237
|
Events are also readable after the fact through `client.sessions.events.list(session_id)`, which paginates like any other list method.
|
|
209
238
|
|
|
210
239
|
## Handling errors
|
|
211
240
|
|
|
212
|
-
`APIConnectionError` is raised when the request never reached the API; `APITimeoutError` is its timeout subclass. A non-2xx status raises an `APIStatusError` subclass, and
|
|
241
|
+
`APIConnectionError` is raised when the request never reached the API; `APITimeoutError` is its timeout subclass. A non-2xx status raises an `APIStatusError` subclass. Invalid JSON, invalid download URLs, and response schema mismatches when strict response validation is enabled raise `APIResponseValidationError`. All of them derive from `qca.APIError`.
|
|
213
242
|
|
|
214
243
|
```python
|
|
215
244
|
from qca import APIConnectionError, APIStatusError, APITimeoutError
|
|
@@ -231,13 +260,29 @@ except APIStatusError as exc:
|
|
|
231
260
|
| 403 | `PermissionDeniedError` |
|
|
232
261
|
| 404 | `NotFoundError` |
|
|
233
262
|
| 409 | `ConflictError` |
|
|
263
|
+
| 413 | `RequestTooLargeError` |
|
|
234
264
|
| 422 | `UnprocessableEntityError` |
|
|
235
265
|
| 429 | `RateLimitError` |
|
|
236
|
-
|
|
|
266
|
+
| 529 | `OverloadedError` |
|
|
267
|
+
| other 5xx | `InternalServerError` |
|
|
237
268
|
| other | `APIStatusError` |
|
|
238
269
|
|
|
239
270
|
`code` and `type` are read from the error body and are `None` when the server omits them, so log `message` and `request_id` as well. A non-JSON error body is kept verbatim in `.body`.
|
|
240
271
|
|
|
272
|
+
`RequestTooLargeError` and `OverloadedError` inherit directly from `APIStatusError`, matching Anthropic. Code that previously caught `InternalServerError` for status 529 should now catch `OverloadedError` as well, or catch `APIStatusError` for all HTTP errors.
|
|
273
|
+
|
|
274
|
+
## Response validation
|
|
275
|
+
|
|
276
|
+
By default, responses are constructed into models without requiring every field to match the declared schema, matching Anthropic's Python SDK. Nested objects are still converted to models and unknown fields are retained. Unexpected field values may keep their original type, so type annotations describe the expected API schema rather than guaranteeing the runtime value.
|
|
277
|
+
|
|
278
|
+
To require Pydantic response validation and raise `APIResponseValidationError` on a schema mismatch, enable the constructor option:
|
|
279
|
+
|
|
280
|
+
```python
|
|
281
|
+
client = Forward(_strict_response_validation=True)
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
The option is available on `Forward`, `Managed`, `AsyncForward`, and `AsyncManaged`, and is preserved by `with_options`, raw and streaming response views, pagination, and SSE parsing. Invalid JSON and invalid download URLs still raise `APIResponseValidationError` in either mode. Direct construction or validation of model classes continues to use Pydantic validation.
|
|
285
|
+
|
|
241
286
|
## Request IDs
|
|
242
287
|
|
|
243
288
|
Every response model carries the `x-request-id` of the call that produced it, and errors expose the same value. Include it when reporting a problem.
|
|
@@ -251,6 +296,8 @@ print(identity._request_id)
|
|
|
251
296
|
|
|
252
297
|
Certain errors are retried twice by default with exponential backoff. GET and HEAD requests, and any request carrying an idempotency key, are retried on connection errors, 408, 429, and 5xx; other requests are retried on 429 only. A 409 is never retried automatically, and an SSE stream that has already been established is never retried. Within those rules the SDK honors `x-should-retry` and a valid `Retry-After-Ms` or `Retry-After`.
|
|
253
298
|
|
|
299
|
+
Positive server-requested delays, including values over 60 seconds, are honored up to 4,294,967 seconds, matching Anthropic's Python SDK. A numeric `Retry-After-Ms` takes precedence over `Retry-After`, which accepts seconds or an HTTP date. Zero, negative, or invalid delays fall back to exponential backoff. A server-requested wait can therefore exceed the timeout configured for an individual HTTP attempt.
|
|
300
|
+
|
|
254
301
|
```python
|
|
255
302
|
client = Forward(max_retries=0) # disable for all requests
|
|
256
303
|
client.with_options(max_retries=5).sessions.list() # or override per call site
|
|
@@ -260,7 +307,7 @@ client.with_options(max_retries=5).sessions.list() # or override per call site
|
|
|
260
307
|
|
|
261
308
|
## Timeouts
|
|
262
309
|
|
|
263
|
-
The default timeout is
|
|
310
|
+
The default timeout is 5 seconds to connect and 600 seconds each for reading data, writing data, and acquiring a connection from the pool, matching Anthropic's Python SDK. These are phase timeouts, not a total request deadline. Pass a float of seconds, an `httpx.Timeout`, or `None` to disable.
|
|
264
311
|
|
|
265
312
|
```python
|
|
266
313
|
client = Forward(timeout=30.0)
|
|
@@ -390,11 +437,11 @@ For tokens that expire, pass a credential provider instead of a static token. It
|
|
|
390
437
|
client = Forward(credential=my_credential)
|
|
391
438
|
```
|
|
392
439
|
|
|
393
|
-
A static `
|
|
440
|
+
A static `pat` takes precedence over a provider, and an explicit `Authorization` header takes precedence over both.
|
|
394
441
|
|
|
395
442
|
## Versioning
|
|
396
443
|
|
|
397
|
-
This project follows [Semantic Versioning](https://semver.org). It is pre-1.0
|
|
444
|
+
This project follows [Semantic Versioning](https://semver.org). It is pre-1.0, so the public surface may still change between releases. Anything prefixed with an underscore is internal and may change at any time.
|
|
398
445
|
|
|
399
446
|
```python
|
|
400
447
|
import qca
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Qoder Cloud Agents Python SDK
|
|
2
2
|
|
|
3
|
+
[Changelog](CHANGELOG.md) · [Releases](https://github.com/QoderAI/qoder-cloud-agents-sdk-python/releases)
|
|
4
|
+
|
|
3
5
|
[](https://pypi.org/project/qca-sdk/)
|
|
4
6
|
|
|
5
7
|
The Qoder Cloud Agents Python SDK provides access to the Qoder Cloud Agents API from Python 3.10+. It ships synchronous and natively asynchronous clients, typed request parameters and response models, automatic pagination, SSE streaming, and file transfer.
|
|
@@ -12,7 +14,7 @@ The API is exposed in two modes, and each has its own client, resources, and typ
|
|
|
12
14
|
python -m pip install qca-sdk
|
|
13
15
|
```
|
|
14
16
|
|
|
15
|
-
The distribution is named `qca-sdk`; the import package is `qca`. The package is
|
|
17
|
+
The distribution is named `qca-sdk`; the import package is `qca`. The package is pre-1.0, so the command above resolves to the latest `0.1.x` release. To work from a checkout of this repository instead:
|
|
16
18
|
|
|
17
19
|
```bash
|
|
18
20
|
python -m pip install .
|
|
@@ -23,6 +25,22 @@ python -m pip install -e '.[dev]' # development environment
|
|
|
23
25
|
|
|
24
26
|
Python 3.10 or newer. The runtime dependencies are `httpx`, `pydantic` v2, `anyio`, and `typing-extensions`; the package is typed and ships `py.typed`.
|
|
25
27
|
|
|
28
|
+
## Generating documentation
|
|
29
|
+
|
|
30
|
+
The API reference under `docs/api/` is generated from the public source and
|
|
31
|
+
committed. Regenerate and verify it with:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
make docs # regenerate docs/api/ from src/qca
|
|
35
|
+
make docs-check # regenerate + drift/link/snippet checks (offline)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Under the hood these run `pydoc-markdown` via `uv` on a pinned Python 3.12:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
uv run --python 3.12 --extra dev --locked pydoc-markdown pydoc-markdown.yml
|
|
42
|
+
```
|
|
43
|
+
|
|
26
44
|
## Usage
|
|
27
45
|
|
|
28
46
|
```python
|
|
@@ -54,7 +72,7 @@ Explicit arguments take precedence over environment variables. The clients never
|
|
|
54
72
|
|
|
55
73
|
```python
|
|
56
74
|
client = Forward(
|
|
57
|
-
|
|
75
|
+
pat="your-access-token",
|
|
58
76
|
base_url="https://api.qoder.com.cn/api/v1/forward",
|
|
59
77
|
timeout=30.0,
|
|
60
78
|
max_retries=2,
|
|
@@ -158,26 +176,34 @@ Reuse one `session_id` for the whole conversation, and reuse one idempotency key
|
|
|
158
176
|
|
|
159
177
|
## Resuming a stream
|
|
160
178
|
|
|
161
|
-
The
|
|
179
|
+
The low-level `stream()` method exposes `stream.last_event_id` but does not reconnect. Use the handwritten `resumable_stream()` helper to reconnect automatically after EOF, timeouts, transient transport failures, and retryable HTTP statuses. It checkpoints only complete events and sends the latest checkpoint as `Last-Event-ID`; close it with a context manager when finished.
|
|
162
180
|
|
|
163
181
|
```python
|
|
164
|
-
|
|
182
|
+
with client.sessions.events.resumable_stream(
|
|
183
|
+
session_id,
|
|
184
|
+
last_event_id=saved_event_id,
|
|
185
|
+
event_deltas=["agent.message"],
|
|
186
|
+
) as stream:
|
|
187
|
+
for event in stream:
|
|
188
|
+
saved_event_id = stream.last_event_id
|
|
189
|
+
print(event.type)
|
|
190
|
+
```
|
|
165
191
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
except APIConnectionError:
|
|
173
|
-
pass # reconnect with the last_event_id recorded above
|
|
192
|
+
The async form is a native async iterator and context manager; unlike `stream()`, constructing it does not require `await`:
|
|
193
|
+
|
|
194
|
+
```python
|
|
195
|
+
async with client.sessions.events.resumable_stream(session_id) as stream:
|
|
196
|
+
async for event in stream:
|
|
197
|
+
print(event.type)
|
|
174
198
|
```
|
|
175
199
|
|
|
200
|
+
The helper retries until closed, cancelled, or it receives `session.status_terminated` / `session.deleted`. It uses jittered exponential backoff and the same HTTP retry classification as the client (in particular, `409` is not retried). It does not query event history, discard an invalid cursor, or deduplicate event IDs because multiple preview deltas may share one ID.
|
|
201
|
+
|
|
176
202
|
Events are also readable after the fact through `client.sessions.events.list(session_id)`, which paginates like any other list method.
|
|
177
203
|
|
|
178
204
|
## Handling errors
|
|
179
205
|
|
|
180
|
-
`APIConnectionError` is raised when the request never reached the API; `APITimeoutError` is its timeout subclass. A non-2xx status raises an `APIStatusError` subclass, and
|
|
206
|
+
`APIConnectionError` is raised when the request never reached the API; `APITimeoutError` is its timeout subclass. A non-2xx status raises an `APIStatusError` subclass. Invalid JSON, invalid download URLs, and response schema mismatches when strict response validation is enabled raise `APIResponseValidationError`. All of them derive from `qca.APIError`.
|
|
181
207
|
|
|
182
208
|
```python
|
|
183
209
|
from qca import APIConnectionError, APIStatusError, APITimeoutError
|
|
@@ -199,13 +225,29 @@ except APIStatusError as exc:
|
|
|
199
225
|
| 403 | `PermissionDeniedError` |
|
|
200
226
|
| 404 | `NotFoundError` |
|
|
201
227
|
| 409 | `ConflictError` |
|
|
228
|
+
| 413 | `RequestTooLargeError` |
|
|
202
229
|
| 422 | `UnprocessableEntityError` |
|
|
203
230
|
| 429 | `RateLimitError` |
|
|
204
|
-
|
|
|
231
|
+
| 529 | `OverloadedError` |
|
|
232
|
+
| other 5xx | `InternalServerError` |
|
|
205
233
|
| other | `APIStatusError` |
|
|
206
234
|
|
|
207
235
|
`code` and `type` are read from the error body and are `None` when the server omits them, so log `message` and `request_id` as well. A non-JSON error body is kept verbatim in `.body`.
|
|
208
236
|
|
|
237
|
+
`RequestTooLargeError` and `OverloadedError` inherit directly from `APIStatusError`, matching Anthropic. Code that previously caught `InternalServerError` for status 529 should now catch `OverloadedError` as well, or catch `APIStatusError` for all HTTP errors.
|
|
238
|
+
|
|
239
|
+
## Response validation
|
|
240
|
+
|
|
241
|
+
By default, responses are constructed into models without requiring every field to match the declared schema, matching Anthropic's Python SDK. Nested objects are still converted to models and unknown fields are retained. Unexpected field values may keep their original type, so type annotations describe the expected API schema rather than guaranteeing the runtime value.
|
|
242
|
+
|
|
243
|
+
To require Pydantic response validation and raise `APIResponseValidationError` on a schema mismatch, enable the constructor option:
|
|
244
|
+
|
|
245
|
+
```python
|
|
246
|
+
client = Forward(_strict_response_validation=True)
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
The option is available on `Forward`, `Managed`, `AsyncForward`, and `AsyncManaged`, and is preserved by `with_options`, raw and streaming response views, pagination, and SSE parsing. Invalid JSON and invalid download URLs still raise `APIResponseValidationError` in either mode. Direct construction or validation of model classes continues to use Pydantic validation.
|
|
250
|
+
|
|
209
251
|
## Request IDs
|
|
210
252
|
|
|
211
253
|
Every response model carries the `x-request-id` of the call that produced it, and errors expose the same value. Include it when reporting a problem.
|
|
@@ -219,6 +261,8 @@ print(identity._request_id)
|
|
|
219
261
|
|
|
220
262
|
Certain errors are retried twice by default with exponential backoff. GET and HEAD requests, and any request carrying an idempotency key, are retried on connection errors, 408, 429, and 5xx; other requests are retried on 429 only. A 409 is never retried automatically, and an SSE stream that has already been established is never retried. Within those rules the SDK honors `x-should-retry` and a valid `Retry-After-Ms` or `Retry-After`.
|
|
221
263
|
|
|
264
|
+
Positive server-requested delays, including values over 60 seconds, are honored up to 4,294,967 seconds, matching Anthropic's Python SDK. A numeric `Retry-After-Ms` takes precedence over `Retry-After`, which accepts seconds or an HTTP date. Zero, negative, or invalid delays fall back to exponential backoff. A server-requested wait can therefore exceed the timeout configured for an individual HTTP attempt.
|
|
265
|
+
|
|
222
266
|
```python
|
|
223
267
|
client = Forward(max_retries=0) # disable for all requests
|
|
224
268
|
client.with_options(max_retries=5).sessions.list() # or override per call site
|
|
@@ -228,7 +272,7 @@ client.with_options(max_retries=5).sessions.list() # or override per call site
|
|
|
228
272
|
|
|
229
273
|
## Timeouts
|
|
230
274
|
|
|
231
|
-
The default timeout is
|
|
275
|
+
The default timeout is 5 seconds to connect and 600 seconds each for reading data, writing data, and acquiring a connection from the pool, matching Anthropic's Python SDK. These are phase timeouts, not a total request deadline. Pass a float of seconds, an `httpx.Timeout`, or `None` to disable.
|
|
232
276
|
|
|
233
277
|
```python
|
|
234
278
|
client = Forward(timeout=30.0)
|
|
@@ -358,11 +402,11 @@ For tokens that expire, pass a credential provider instead of a static token. It
|
|
|
358
402
|
client = Forward(credential=my_credential)
|
|
359
403
|
```
|
|
360
404
|
|
|
361
|
-
A static `
|
|
405
|
+
A static `pat` takes precedence over a provider, and an explicit `Authorization` header takes precedence over both.
|
|
362
406
|
|
|
363
407
|
## Versioning
|
|
364
408
|
|
|
365
|
-
This project follows [Semantic Versioning](https://semver.org). It is pre-1.0
|
|
409
|
+
This project follows [Semantic Versioning](https://semver.org). It is pre-1.0, so the public surface may still change between releases. Anything prefixed with an underscore is internal and may change at any time.
|
|
366
410
|
|
|
367
411
|
```python
|
|
368
412
|
import qca
|
|
@@ -3,7 +3,6 @@ from __future__ import annotations
|
|
|
3
3
|
import argparse
|
|
4
4
|
import json
|
|
5
5
|
import os
|
|
6
|
-
import random
|
|
7
6
|
import re
|
|
8
7
|
import sys
|
|
9
8
|
import time
|
|
@@ -56,7 +55,7 @@ def read_env(path: str | Path) -> dict[str, str]:
|
|
|
56
55
|
@dataclass
|
|
57
56
|
class Config:
|
|
58
57
|
mode: str
|
|
59
|
-
|
|
58
|
+
pat: str = field(repr=False)
|
|
60
59
|
base_url: str = ""
|
|
61
60
|
model: str = ""
|
|
62
61
|
timeout: float = 300
|
|
@@ -89,7 +88,7 @@ class Config:
|
|
|
89
88
|
return cls(mode, token, str(url), values.get(prefix + "MODEL", ""), timeout)
|
|
90
89
|
|
|
91
90
|
def client_options(self) -> dict[str, Any]:
|
|
92
|
-
return dict(
|
|
91
|
+
return dict(pat=self.pat, base_url=self.base_url, max_retries=0, timeout=30)
|
|
93
92
|
|
|
94
93
|
|
|
95
94
|
def safe_error(error: BaseException, token: str = "") -> str:
|
|
@@ -163,7 +162,7 @@ class Run:
|
|
|
163
162
|
try:
|
|
164
163
|
action()
|
|
165
164
|
except Exception as error:
|
|
166
|
-
failures.append(f"{kind} {resource_id}: {safe_error(error, self.config.
|
|
165
|
+
failures.append(f"{kind} {resource_id}: {safe_error(error, self.config.pat)}")
|
|
167
166
|
self.cleanups.clear()
|
|
168
167
|
if failures:
|
|
169
168
|
raise RuntimeError("Cleanup failed:\n" + "\n".join(failures))
|
|
@@ -171,89 +170,6 @@ class Run:
|
|
|
171
170
|
self.output("cleanup", "completed")
|
|
172
171
|
|
|
173
172
|
|
|
174
|
-
@dataclass
|
|
175
|
-
class TurnResult:
|
|
176
|
-
text: str = ""
|
|
177
|
-
last_id: str = ""
|
|
178
|
-
tool_used: bool = False
|
|
179
|
-
complete: bool = False
|
|
180
|
-
|
|
181
|
-
def observe(self, event: Any) -> None:
|
|
182
|
-
if hasattr(event, "to_dict"):
|
|
183
|
-
event = event.to_dict(mode="json")
|
|
184
|
-
kind = event.get("type")
|
|
185
|
-
if event.get("id"):
|
|
186
|
-
self.last_id = event["id"]
|
|
187
|
-
if kind in ("session.error", "session.status_terminated"):
|
|
188
|
-
raise AssertionError(f"Execution failed: {kind}, event_id={self.last_id}")
|
|
189
|
-
if kind in ("agent.tool_use", "agent.mcp_tool_use"):
|
|
190
|
-
self.tool_used = True
|
|
191
|
-
elif kind == "agent.message":
|
|
192
|
-
# Only the latest completed assistant message can satisfy assertions.
|
|
193
|
-
self.text = "\n".join(
|
|
194
|
-
block.get("text", "") for block in event.get("content", []) if block.get("type") == "text"
|
|
195
|
-
)
|
|
196
|
-
elif kind == "session.status_idle":
|
|
197
|
-
reason = event.get("stop_reason")
|
|
198
|
-
reason = reason.get("type") if isinstance(reason, dict) else reason
|
|
199
|
-
if reason not in (None, "", "end_turn", "stop_sequence"):
|
|
200
|
-
raise AssertionError(f"Execution stopped early: {reason}, event_id={self.last_id}")
|
|
201
|
-
self.complete = bool(self.text)
|
|
202
|
-
|
|
203
|
-
def verify(self, expected: list[str], require_tool: bool = False) -> None:
|
|
204
|
-
if not self.complete:
|
|
205
|
-
raise AssertionError(f"No idle state after assistant output; last_event_id={self.last_id}")
|
|
206
|
-
if not all(value in self.text for value in expected):
|
|
207
|
-
raise AssertionError(f"Assistant output is missing expected values; last_event_id={self.last_id}")
|
|
208
|
-
if require_tool and not self.tool_used:
|
|
209
|
-
raise AssertionError(f"No actual tool execution; last_event_id={self.last_id}")
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
def wait_reply(events: Any, run: Run, session_id: str, after: str = "") -> TurnResult:
|
|
213
|
-
result = TurnResult(last_id=after)
|
|
214
|
-
while not result.complete:
|
|
215
|
-
run.remaining()
|
|
216
|
-
page = events.list(
|
|
217
|
-
session_id,
|
|
218
|
-
order="asc",
|
|
219
|
-
limit=100,
|
|
220
|
-
extra_query={"after_id": result.last_id or None, "include_tool_calls": True},
|
|
221
|
-
timeout=min(run.remaining(), 30),
|
|
222
|
-
)
|
|
223
|
-
for index, event in enumerate(page):
|
|
224
|
-
if index >= 2000:
|
|
225
|
-
raise AssertionError("Event polling exceeded 2000 events")
|
|
226
|
-
result.observe(event)
|
|
227
|
-
if result.complete:
|
|
228
|
-
break
|
|
229
|
-
if not result.complete:
|
|
230
|
-
run.pause()
|
|
231
|
-
run.output("assistant", result.text)
|
|
232
|
-
return result
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
def turn(
|
|
236
|
-
events: Any,
|
|
237
|
-
run: Run,
|
|
238
|
-
session_id: str,
|
|
239
|
-
prompt: str,
|
|
240
|
-
expected: list[str],
|
|
241
|
-
*,
|
|
242
|
-
require_tool: bool = False,
|
|
243
|
-
) -> TurnResult:
|
|
244
|
-
run.output("user", prompt)
|
|
245
|
-
result = events.send(
|
|
246
|
-
session_id,
|
|
247
|
-
events=[{"type": "user.message", "content": [{"type": "text", "text": prompt}]}],
|
|
248
|
-
extra_headers={"Idempotency-Key": name("event")},
|
|
249
|
-
)
|
|
250
|
-
if len(result.data) != 1 or not result.data[0].id:
|
|
251
|
-
raise AssertionError("Send must return exactly one user event ID")
|
|
252
|
-
reply = wait_reply(events, run, session_id, result.data[0].id)
|
|
253
|
-
reply.verify(expected, require_tool)
|
|
254
|
-
return reply
|
|
255
|
-
|
|
256
|
-
|
|
257
173
|
def choose_model(models: Any, requested: str) -> str:
|
|
258
174
|
enabled = [model.id for model in models.data if model.is_enabled and model.id]
|
|
259
175
|
if requested:
|
|
@@ -265,29 +181,6 @@ def choose_model(models: Any, requested: str) -> str:
|
|
|
265
181
|
return "ultimate" if "ultimate" in enabled else sorted(enabled)[0]
|
|
266
182
|
|
|
267
183
|
|
|
268
|
-
@dataclass
|
|
269
|
-
class ProjectMemory:
|
|
270
|
-
project: str = field(default_factory=lambda: "青禾订单-" + marker()[:6])
|
|
271
|
-
release_time: str = field(default_factory=lambda: f"{random.randrange(20, 24):02}:{random.randrange(60):02}")
|
|
272
|
-
contact: str = field(default_factory=lambda: random.choice(["林岚", "陈朔", "叶澄", "苏棠"]))
|
|
273
|
-
rollback_version: str = field(
|
|
274
|
-
default_factory=lambda: f"v2.{random.randrange(100, 1000)}.{random.randrange(100, 1000)}"
|
|
275
|
-
)
|
|
276
|
-
path = "projects/release-conventions.md"
|
|
277
|
-
|
|
278
|
-
def content(self) -> str:
|
|
279
|
-
return f"---\nname: release-conventions\ndescription: {self.project} 的项目发布约定\nmetadata:\n type: project\n---\n\n# {self.project}\n\n- 北京时间 {self.release_time} 开始发布。\n- 发布异常时联系值班负责人{self.contact}。\n- 回滚使用已验证的稳定版本 {self.rollback_version}。\n\nWhy: 在值班窗口发布,并使用验证过的版本恢复服务。\nHow to apply: 为这个项目拟定发布计划时遵循以上约定。\n"
|
|
280
|
-
|
|
281
|
-
def index(self) -> str:
|
|
282
|
-
return f"- [{self.project} 发布约定]({self.path}) — 发布窗口、异常联系人与回滚约定。\n"
|
|
283
|
-
|
|
284
|
-
def prompt(self) -> str:
|
|
285
|
-
return f"请根据你记得的项目约定,为「{self.project}」拟一份简短上线安排,涵盖开始时间、异常联系和回滚处理。不要执行发布;缺少信息时请明确说明。"
|
|
286
|
-
|
|
287
|
-
def expected(self) -> list[str]:
|
|
288
|
-
return [self.release_time, self.contact, self.rollback_version]
|
|
289
|
-
|
|
290
|
-
|
|
291
184
|
def run_cli(mode: str, client_type: Any, scenarios: dict[str, Callable[[Any, Run], None]]) -> None:
|
|
292
185
|
parser = argparse.ArgumentParser(description=f"Qoder {mode} SDK examples")
|
|
293
186
|
parser.add_argument("--env", default=".env.live")
|
|
@@ -314,9 +207,9 @@ def run_cli(mode: str, client_type: Any, scenarios: dict[str, Callable[[Any, Run
|
|
|
314
207
|
try:
|
|
315
208
|
context.cleanup()
|
|
316
209
|
except Exception as error:
|
|
317
|
-
errors.append(safe_error(error, config.
|
|
210
|
+
errors.append(safe_error(error, config.pat))
|
|
318
211
|
except Exception as error:
|
|
319
|
-
errors.insert(0, safe_error(error, config.
|
|
212
|
+
errors.insert(0, safe_error(error, config.pat))
|
|
320
213
|
results.append({"scenario": scenario, "passed": not errors, "outputs": context.outputs, "errors": errors})
|
|
321
214
|
if args.output == "text":
|
|
322
215
|
print(f"{scenario}: {'FAIL' if errors else 'PASS'}")
|
|
@@ -4,19 +4,25 @@ from examples.common.live import run_cli
|
|
|
4
4
|
from qca import Forward
|
|
5
5
|
|
|
6
6
|
from .batch import run as batch
|
|
7
|
+
from .conversation import run as conversation
|
|
8
|
+
from .identity_config import run as identity_config
|
|
7
9
|
from .memory import run as memory
|
|
8
10
|
from .models import run as models
|
|
9
11
|
from .resources import run as resources
|
|
10
12
|
from .schedule import run as schedule
|
|
11
13
|
from .session import run as session
|
|
14
|
+
from .streaming_deltas import run as streaming_deltas
|
|
12
15
|
|
|
13
16
|
SCENARIOS = {
|
|
14
17
|
"models": models,
|
|
15
18
|
"session": session,
|
|
19
|
+
"conversation": conversation,
|
|
16
20
|
"resources": resources,
|
|
21
|
+
"identity_config": identity_config,
|
|
17
22
|
"memory": memory,
|
|
18
23
|
"schedule": schedule,
|
|
19
24
|
"batch": batch,
|
|
25
|
+
"streaming_deltas": streaming_deltas,
|
|
20
26
|
}
|
|
21
27
|
|
|
22
28
|
|