From f2ec2f248b57ca097584f3b8fb83d7e6cd4529cb Mon Sep 17 00:00:00 2001 From: Abhishek Mishra Date: Thu, 6 Aug 2026 15:03:34 +0530 Subject: [PATCH 1/2] feat!: rename SDK namespaces atoms->agents, waves->speech (6.0.0) Rename the two product surfaces to industry-standard names: - atoms -> agents (voice-agent platform) - waves -> speech (TTS/STT/voices) The wire API, auth, method signatures, and observability headers are unchanged. This is an SDK-surface rename generated from the updated namespaces in the Fern config, plus a soft backward-compat layer. Backward compatibility (deprecated, removed in the next major): - client.atoms / client.waves resolve to client.agents / client.speech - attribute access smallestai.atoms / smallestai.waves - deep imports (import smallestai.atoms.crew.nodes, from smallestai.waves.helpers import synthesize_to_file) All old names emit a DeprecationWarning and keep object identity with the new modules (a sys.meta_path finder plus client attribute aliases). Preserved: X-Source / X-Fern-SDK-Version headers, PlanNotEntitledError and error-message hints, the CLI, crew/helpers, and the streaming TTS/STT helpers. ruff lint/format applied. Adds tests/custom/test_6_0_rename_compat.py covering the new surface, deprecated aliases, deep-import identity, and the observability header. See MIGRATION.md and CHANGELOG.md. --- .fernignore | 14 +- MIGRATION.md | 50 ++++ changelog.md | 18 ++ examples/agent_versioning_lifecycle.py | 6 +- examples/build_voice_agent.py | 24 +- examples/crew_transfer_node.py | 4 +- examples/inspect_calls.py | 4 +- examples/quickstart.py | 8 +- examples/transfer_call.py | 4 +- pyproject.toml | 4 +- scripts/verify.py | 6 +- src/smallestai/__init__.py | 71 ++++-- src/smallestai/_compat.py | 104 ++++++++ src/smallestai/{atoms => agents}/__init__.py | 0 .../agent_templates/__init__.py | 0 .../agent_templates/client.py | 8 +- .../agent_templates/raw_client.py | 0 .../agent_templates/types/__init__.py | 0 ...emplates_agent_templates_request_region.py | 0 ...gent_templates_agent_templates_response.py | 0 ...ates_agent_templates_response_data_item.py | 0 ..._templates_response_data_item_call_type.py | 0 ...tes_response_data_item_default_language.py | 0 ...ent_templates_response_data_item_region.py | 0 ...response_data_item_single_prompt_config.py | 0 ...ta_item_single_prompt_config_tools_item.py | 0 ...em_single_prompt_config_tools_item_type.py | 0 ...plates_response_data_item_workflow_type.py | 0 .../post_agent_from_template_response.py | 0 .../agent_versioning_branches/__init__.py | 0 .../agent_versioning_branches/client.py | 48 ++-- .../agent_versioning_branches/raw_client.py | 0 .../types/__init__.py | 0 ...hive_agent_versioning_branches_response.py | 0 ...agent_versioning_branches_response_data.py | 0 ...lish_agent_versioning_branches_response.py | 0 ...agent_versioning_branches_response_data.py | 0 ...anch_agent_versioning_branches_response.py | 0 ...raft_agent_versioning_branches_response.py | 0 ...agent_versioning_branches_response_data.py | 0 .../get_agent_versioning_branches_response.py | 0 ...raft_agent_versioning_branches_response.py | 0 ...list_agent_versioning_branches_response.py | 0 ...agent_versioning_branches_response_data.py | 0 ...live_agent_versioning_branches_response.py | 0 ...raft_agent_versioning_branches_response.py | 0 ...name_agent_versioning_branches_response.py | 0 ...call_agent_versioning_branches_response.py | 0 .../types/test_call_v2request_mode.py | 0 ...e_branch_draft_request_background_sound.py | 0 .../update_branch_draft_request_slm_model.py | 0 ...raft_agent_versioning_branches_response.py | 0 .../agent_versioning_drafts/__init__.py | 0 .../agent_versioning_drafts/client.py | 36 +-- .../agent_versioning_drafts/raw_client.py | 0 .../agent_versioning_drafts/types/__init__.py | 0 ..._draft_agent_versioning_drafts_response.py | 0 ..._draft_agent_versioning_drafts_response.py | 0 .../draft_config_request_background_sound.py | 0 .../types/draft_config_request_slm_model.py | 0 ..._agent_id_drafts_draft_id_diff_response.py | 0 ...t_id_drafts_draft_id_diff_response_data.py | 0 ...ft_id_diff_response_data_sections_value.py | 0 .../get_agent_id_drafts_draft_id_response.py | 0 ..._agent_id_drafts_draft_id_response_data.py | 0 .../types/get_agent_id_drafts_response.py | 0 .../get_agent_id_drafts_response_data_item.py | 0 ...t_id_drafts_draft_id_test_call_response.py | 0 ...drafts_draft_id_test_call_response_data.py | 0 ..._draft_agent_versioning_drafts_response.py | 0 ..._draft_agent_versioning_drafts_response.py | 0 ...t_agent_versioning_drafts_response_data.py | 0 ...config_agent_versioning_drafts_response.py | 0 .../agent_versioning_revisions/__init__.py | 0 .../agent_versioning_revisions/client.py | 20 +- .../agent_versioning_revisions/raw_client.py | 0 .../types/__init__.py | 0 ...iff_agent_versioning_revisions_response.py | 0 ...get_agent_versioning_revisions_response.py | 0 ...gent_versioning_revisions_response_data.py | 0 ...ory_agent_versioning_revisions_response.py | 0 ...gent_versioning_revisions_response_data.py | 0 ...ning_revisions_response_data_trail_item.py | 0 ...ist_agent_versioning_revisions_response.py | 0 ...gent_versioning_revisions_response_data.py | 0 ...ore_agent_versioning_revisions_response.py | 0 .../agent_versioning_versions/__init__.py | 0 .../agent_versioning_versions/client.py | 24 +- .../agent_versioning_versions/raw_client.py | 0 .../types/__init__.py | 0 ...sion_agent_versioning_versions_response.py | 0 .../get_agent_id_versions_diff_response.py | 0 .../types/get_agent_id_versions_response.py | 0 .../get_agent_id_versions_response_data.py | 0 ...id_versions_response_data_versions_item.py | 0 ...t_agent_id_versions_version_id_response.py | 0 ...nt_id_versions_version_id_response_data.py | 0 ..._versions_version_id_test_call_response.py | 0 ...ions_version_id_test_call_response_data.py | 0 ...data_agent_versioning_versions_response.py | 0 .../{atoms => agents}/agents/__init__.py | 0 .../{atoms => agents}/agents/client.py | 40 +-- .../{atoms => agents}/agents/raw_client.py | 0 .../agents/types/__init__.py | 0 .../types/archive_agent_agents_response.py | 0 .../archive_agent_agents_response_data.py | 0 ...hive_agent_agents_response_data_message.py | 0 .../types/create_agent_agents_response.py | 0 .../create_agent_request_background_sound.py | 0 .../create_agent_request_denoising_config.py | 0 .../types/create_agent_request_language.py | 0 .../create_agent_request_language_default.py | 0 ...e_agent_request_language_supported_item.py | 0 ...create_agent_request_language_switching.py | 0 ...e_agent_request_llm_idle_timeout_config.py | 0 .../create_agent_request_pre_call_api.py | 0 ...reate_agent_request_pre_call_api_method.py | 0 ...st_pre_call_api_response_variables_item.py | 0 ..._agent_request_pronunciation_dicts_item.py | 0 .../create_agent_request_redaction_config.py | 0 ...te_agent_request_session_timeout_config.py | 0 .../types/create_agent_request_slm_model.py | 0 .../create_agent_request_smart_turn_config.py | 0 .../types/create_agent_request_synthesizer.py | 0 ..._agent_request_synthesizer_voice_config.py | 0 ...request_synthesizer_voice_config_gender.py | 0 ..._request_synthesizer_voice_config_model.py | 0 .../types/create_agent_request_timezone.py | 0 ...te_agent_request_voice_detection_config.py | 0 ...ent_request_voice_mail_detection_config.py | 0 .../types/duplicate_agent_agents_response.py | 0 .../duplicate_agent_agents_response_data.py | 0 .../agents/types/get_agent_agents_response.py | 0 ...get_agent_avatar_presigned_url_response.py | 0 ...gent_avatar_presigned_url_response_data.py | 0 .../types/get_agent_call_logs_response.py | 0 .../get_agent_call_logs_response_data.py | 0 ..._call_logs_response_data_call_logs_item.py | 0 .../types/get_agent_widget_config_response.py | 0 .../get_agent_widget_config_response_data.py | 0 ..._agent_widget_config_response_data_mode.py | 0 ...nt_widget_config_response_data_position.py | 0 ..._agent_widget_config_response_data_size.py | 0 ...agent_widget_config_response_data_theme.py | 0 .../list_agents_agents_request_sort_field.py | 0 .../list_agents_agents_request_sort_order.py | 0 .../types/list_agents_agents_request_type.py | 0 .../types/list_agents_agents_response.py | 0 .../types/list_agents_agents_response_data.py | 0 .../types/update_agent_agents_response.py | 0 ...ent_widget_config_request_widget_config.py | 0 ...idget_config_request_widget_config_mode.py | 0 ...t_config_request_widget_config_position.py | 0 ...idget_config_request_widget_config_size.py | 0 ...dget_config_request_widget_config_theme.py | 0 .../update_agent_widget_config_response.py | 0 .../{atoms => agents}/analytics/__init__.py | 0 .../{atoms => agents}/analytics/client.py | 72 +++--- .../{atoms => agents}/analytics/raw_client.py | 0 .../analytics/types/__init__.py | 0 ...et_agent_performance_request_sort_order.py | 0 .../types/get_agent_performance_response.py | 0 .../get_agent_performance_response_data.py | 0 ...t_performance_response_data_agents_item.py | 0 ...tics_concurrency_request_include_agents.py | 0 .../get_analytics_concurrency_response.py | 0 ...get_analytics_concurrency_response_data.py | 0 ...concurrency_response_data_by_agent_item.py | 0 ...currency_response_data_data_points_item.py | 0 .../types/get_analytics_summary_response.py | 0 .../get_analytics_summary_response_data.py | 0 .../types/get_attempt_cohort_response.py | 0 .../types/get_attempt_cohort_response_data.py | 0 ...tempt_cohort_response_data_cohorts_item.py | 0 .../types/get_call_counts_by_day_response.py | 0 .../get_call_counts_by_day_response_data.py | 0 ...y_response_data_call_counts_by_day_item.py | 0 .../types/get_call_counts_log_response.py | 0 .../get_call_counts_log_response_data.py | 0 ...all_counts_log_response_data_calls_item.py | 0 .../get_call_outcomes_timeseries_response.py | 0 ..._call_outcomes_timeseries_response_data.py | 0 ...meseries_response_data_data_points_item.py | 0 ...utcomes_timeseries_response_data_totals.py | 0 .../get_call_start_distribution_response.py | 0 ...t_call_start_distribution_response_data.py | 0 ...ribution_response_data_data_points_item.py | 0 .../get_call_volume_timeseries_response.py | 0 ...et_call_volume_timeseries_response_data.py | 0 ...meseries_response_data_data_points_item.py | 0 .../get_conversation_details_response.py | 0 .../get_conversation_details_response_data.py | 0 ...ation_details_response_data_events_item.py | 0 ...n_details_response_data_transcript_item.py | 0 .../types/get_daily_call_summary_response.py | 0 .../get_daily_call_summary_response_data.py | 0 .../analytics/types/get_dashboard_response.py | 0 .../types/get_dashboard_response_data.py | 0 .../types/get_duration_stats_response.py | 0 .../types/get_duration_stats_response_data.py | 0 .../types/get_hourly_performance_response.py | 0 .../get_hourly_performance_response_data.py | 0 ...ly_performance_response_data_hours_item.py | 0 .../types/get_phone_number_trends_response.py | 0 .../get_phone_number_trends_response_data.py | 0 ...number_trends_response_data_trends_item.py | 0 ...ponse_data_trends_item_data_points_item.py | 0 .../get_pickup_rate_by_number_response.py | 0 ...get_pickup_rate_by_number_response_data.py | 0 ...te_by_number_response_data_numbers_item.py | 0 .../types/get_usage_timeseries_response.py | 0 .../get_usage_timeseries_response_data.py | 0 ...age_timeseries_response_data_date_range.py | 0 ...ies_response_data_day_wise_credits_item.py | 0 .../types/get_weekly_trends_response.py | 0 .../types/get_weekly_trends_response_data.py | 0 ..._weekly_trends_response_data_weeks_item.py | 0 .../{atoms => agents}/audience/__init__.py | 0 .../{atoms => agents}/audience/client.py | 32 +-- .../{atoms => agents}/audience/raw_client.py | 0 .../audience/types/__init__.py | 0 .../delete_audience_id_members_response.py | 0 ...elete_audience_id_members_response_data.py | 0 .../types/delete_audience_id_response.py | 0 .../types/get_audience_id_members_response.py | 0 .../get_audience_id_members_response_data.py | 0 ...e_id_members_response_data_members_item.py | 0 ...get_audience_id_members_search_response.py | 0 ...udience_id_members_search_response_data.py | 0 ...mbers_search_response_data_members_item.py | 0 ...embers_search_response_data_search_info.py | 0 ...h_response_data_search_info_search_type.py | 0 .../audience/types/get_audience_response.py | 0 .../types/get_audience_response_data.py | 0 .../audience/types/list_audience_response.py | 0 .../types/list_audience_response_data_item.py | 0 ...ience_response_data_item_campaigns_item.py | 0 .../post_audience_id_members_response.py | 0 ..._audience_id_members_response_data_item.py | 0 ...ence_id_members_response_data_item_data.py | 0 .../audience/types/post_audience_response.py | 0 .../types/post_audience_response_data.py | 0 .../{atoms => agents}/billing/__init__.py | 0 .../{atoms => agents}/billing/client.py | 20 +- .../{atoms => agents}/billing/raw_client.py | 0 .../billing/types/__init__.py | 0 .../types/get_ledger_billing_request_scope.py | 0 .../types/get_ledger_billing_request_type.py | 0 .../call_actions/__init__.py | 0 .../{atoms => agents}/call_actions/client.py | 24 +- .../call_actions/raw_client.py | 0 .../call_actions/types/__init__.py | 0 .../create_call_action_request_action_type.py | 0 .../create_call_action_request_category.py | 0 .../create_call_action_request_config.py | 0 .../types/create_call_action_response.py | 0 .../types/delete_call_action_response.py | 0 .../types/delete_call_action_response_data.py | 0 .../types/get_call_action_response.py | 0 .../list_call_actions_request_category.py | 0 .../types/list_call_actions_response.py | 0 .../types/list_call_actions_response_data.py | 0 .../update_call_action_request_action_type.py | 0 .../update_call_action_request_category.py | 0 .../update_call_action_request_config.py | 0 .../types/update_call_action_response.py | 0 .../{atoms => agents}/calls/__init__.py | 0 .../{atoms => agents}/calls/client.py | 16 +- .../{atoms => agents}/calls/raw_client.py | 0 .../{atoms => agents}/calls/types/__init__.py | 0 .../calls/types/get_calls_response.py | 0 .../calls/types/get_calls_response_data.py | 0 ...calls_response_data_post_call_analytics.py | 0 ...call_analytics_disposition_metrics_item.py | 0 .../types/get_calls_response_data_status.py | 0 ...get_calls_response_data_transcript_item.py | 0 ...alls_response_data_transcript_item_role.py | 0 ...alls_response_data_turn_latency_metrics.py | 0 ...a_turn_latency_metrics_transitions_item.py | 0 .../types/get_calls_response_data_type.py | 0 ...t_calls_response_data_voice_config_used.py | 0 .../types/list_calls_request_call_types.py | 0 .../calls/types/list_calls_request_sort_by.py | 0 .../types/list_calls_request_sort_order.py | 0 .../calls/types/list_calls_response.py | 0 .../calls/types/list_calls_response_data.py | 0 ...se_data_disposition_metrics_config_item.py | 0 .../list_calls_response_data_logs_item.py | 0 ...logs_item_agent_disposition_config_item.py | 0 ...onse_data_logs_item_post_call_analytics.py | 0 ...call_analytics_disposition_metrics_item.py | 0 ...st_calls_response_data_logs_item_status.py | 0 ...nse_data_logs_item_turn_latency_metrics.py | 0 ...m_turn_latency_metrics_transitions_item.py | 0 ...list_calls_response_data_logs_item_type.py | 0 .../list_calls_response_data_pagination.py | 0 .../calls/types/search_calls_response.py | 0 .../calls/types/search_calls_response_data.py | 0 .../search_calls_response_data_logs_item.py | 0 ...onse_data_logs_item_post_call_analytics.py | 0 ...call_analytics_disposition_metrics_item.py | 0 ...ch_calls_response_data_logs_item_status.py | 0 ...nse_data_logs_item_turn_latency_metrics.py | 0 ...m_turn_latency_metrics_transitions_item.py | 0 ...arch_calls_response_data_logs_item_type.py | 0 ...ound_call_calls_request_variables_value.py | 0 ...outbound_call_calls_request_x_test_call.py | 0 .../start_outbound_call_calls_response.py | 0 ...start_outbound_call_calls_response_data.py | 0 .../{atoms => agents}/campaigns/__init__.py | 0 .../{atoms => agents}/campaigns/client.py | 24 +- .../{atoms => agents}/campaigns/raw_client.py | 0 .../campaigns/types/__init__.py | 0 .../types/create_campaigns_response.py | 0 .../types/create_campaigns_response_data.py | 0 .../create_campaigns_response_data_status.py | 0 .../types/delete_campaigns_response.py | 0 .../campaigns/types/get_campaigns_response.py | 0 .../types/get_campaigns_response_data.py | 0 .../get_campaigns_response_data_campaign.py | 0 ..._campaigns_response_data_campaign_agent.py | 0 ...mpaigns_response_data_campaign_audience.py | 0 ...campaigns_response_data_campaign_status.py | 0 ...get_campaigns_response_data_events_item.py | 0 .../get_campaigns_response_data_metrics.py | 0 .../list_campaigns_request_sort_field.py | 0 .../list_campaigns_request_sort_order.py | 0 .../types/list_campaigns_request_status.py | 0 .../types/list_campaigns_response.py | 0 .../types/list_campaigns_response_data.py | 0 ..._campaigns_response_data_campaigns_item.py | 0 ...igns_response_data_campaigns_item_agent.py | 0 ...s_response_data_campaigns_item_audience.py | 0 ...gns_response_data_campaigns_item_status.py | 0 ...list_campaigns_response_data_pagination.py | 0 .../types/pause_campaigns_response.py | 0 .../start_or_resume_campaigns_response.py | 0 ...start_or_resume_campaigns_response_data.py | 0 src/smallestai/{atoms => agents}/client.py | 33 +-- .../{atoms => agents}/compliance/__init__.py | 0 .../{atoms => agents}/compliance/client.py | 20 +- .../compliance/raw_client.py | 0 .../compliance/types/__init__.py | 0 ...liance_requirements_request_number_type.py | 0 ...mpliance_requirements_request_user_type.py | 0 .../get_compliance_requirements_response.py | 0 ...t_compliance_status_request_number_type.py | 0 ...get_compliance_status_request_user_type.py | 0 .../types/get_compliance_status_response.py | 0 .../get_compliance_status_response_data.py | 0 ...et_compliance_status_response_data_step.py | 0 ...liance_applications_id_refresh_response.py | 0 .../types/resubmit_compliance_response.py | 0 .../submit_compliance_request_number_type.py | 0 .../submit_compliance_request_user_type.py | 0 .../types/submit_compliance_response.py | 0 .../{atoms => agents}/concurrency/__init__.py | 0 .../{atoms => agents}/concurrency/client.py | 12 +- .../concurrency/raw_client.py | 0 .../concurrency/types/__init__.py | 0 .../types/get_concurrency_response.py | 0 .../types/get_concurrency_response_data.py | 0 ...t_concurrency_response_data_agents_item.py | 0 ..._reservations_request_reservations_item.py | 0 ...pdate_concurrency_reservations_response.py | 0 ..._concurrency_reservations_response_data.py | 0 .../conversations/__init__.py | 0 .../{atoms => agents}/conversations/client.py | 16 +- .../conversations/raw_client.py | 0 .../conversations/types/__init__.py | 0 .../types/cancel_conversations_response.py | 0 .../cancel_conversations_response_data.py | 0 .../cancel_queued_conversations_response.py | 0 ...ncel_queued_conversations_response_data.py | 0 ...call_id_recording_download_url_response.py | 0 ...id_recording_download_url_response_data.py | 0 ...t_retry_attempts_conversations_response.py | 0 ...ry_attempts_conversations_response_data.py | 0 src/smallestai/agents/crew/__init__.py | 13 + .../crew/clients/__init__.py | 4 +- .../{atoms => agents}/crew/clients/base.py | 2 +- .../{atoms => agents}/crew/clients/openai.py | 6 +- .../{atoms => agents}/crew/clients/types.py | 2 +- .../{atoms => agents}/crew/context.py | 0 .../{atoms => agents}/crew/events.py | 4 +- src/smallestai/agents/crew/nodes/__init__.py | 9 + .../crew/nodes/background_crew.py | 4 +- .../{atoms => agents}/crew/nodes/base.py | 6 +- .../crew/nodes/output_crew.py | 8 +- .../{atoms => agents}/crew/server.py | 2 +- .../{atoms => agents}/crew/session.py | 6 +- .../{atoms => agents}/crew/task_manager.py | 0 .../{atoms => agents}/crew/tools/__init__.py | 6 +- .../{atoms => agents}/crew/tools/decorator.py | 2 +- .../{atoms => agents}/crew/tools/registry.py | 4 +- .../{atoms => agents}/crew/tools/schema.py | 0 src/smallestai/{atoms => agents}/crew/type.py | 0 .../disposition_metric_templates/__init__.py | 0 .../disposition_metric_templates/client.py | 4 +- .../raw_client.py | 0 .../types/__init__.py | 0 ...t_disposition_metric_templates_response.py | 0 ...ion_metric_templates_response_data_item.py | 0 ...ponse_data_item_disposition_metric_type.py | 0 .../{atoms => agents}/dnc/__init__.py | 0 .../{atoms => agents}/dnc/client.py | 4 +- .../{atoms => agents}/dnc/raw_client.py | 0 .../{atoms => agents}/dnc/types/__init__.py | 0 .../dnc/types/list_dnc_request_sort_field.py | 0 .../dnc/types/list_dnc_request_sort_order.py | 0 .../dnc/types/list_dnc_response.py | 0 .../dnc/types/list_dnc_response_data.py | 0 .../list_dnc_response_data_entries_item.py | 0 .../list_dnc_response_data_pagination.py | 0 .../{atoms => agents}/errors/__init__.py | 0 .../errors/bad_gateway_error.py | 0 .../errors/bad_request_error.py | 0 .../errors/conflict_error.py | 0 .../errors/forbidden_error.py | 0 .../errors/internal_server_error.py | 0 .../{atoms => agents}/errors/locked_error.py | 0 .../errors/not_found_error.py | 0 .../errors/too_many_requests_error.py | 0 .../errors/unauthorized_error.py | 0 .../errors/unprocessable_entity_error.py | 0 .../{atoms => agents}/helpers/__init__.py | 30 +-- .../{atoms => agents}/helpers/_envelope.py | 0 .../{atoms => agents}/helpers/agent_tools.py | 8 +- .../{atoms => agents}/helpers/audience.py | 2 +- .../{atoms => agents}/helpers/call.py | 8 +- .../{atoms => agents}/helpers/campaign.py | 2 +- .../{atoms => agents}/helpers/kb.py | 2 +- .../{atoms => agents}/helpers/versioning.py | 10 +- .../integrations/__init__.py | 0 .../{atoms => agents}/integrations/client.py | 12 +- .../integrations/raw_client.py | 0 .../integrations/types/__init__.py | 0 .../types/get_web_engage_details_response.py | 0 .../modify_web_engage_integration_response.py | 0 .../knowledge_base/__init__.py | 0 .../knowledge_base/client.py | 56 ++-- .../knowledge_base/raw_client.py | 0 .../knowledge_base/types/__init__.py | 0 .../types/create_knowledge_base_response.py | 0 .../types/delete_knowledge_base_response.py | 0 ...d_items_knowledge_base_item_id_response.py | 0 ...knowledge_base_scraped_urls_id_response.py | 0 ...ct_sitemap_urls_knowledge_base_response.py | 0 ...temap_urls_knowledge_base_response_data.py | 0 .../types/get_knowledge_base_response.py | 0 .../get_knowledgebase_id_items_response.py | 0 ..._knowledgebase_id_scraped_urls_response.py | 0 ...base_id_scraped_urls_response_data_item.py | 0 .../types/list_knowledge_base_response.py | 0 ...edgebase_compelete_file_upload_response.py | 0 ...nowledgebase_get_presigned_url_response.py | 0 ...dgebase_get_presigned_url_response_data.py | 0 ...edgebase_id_items_upload_media_response.py | 0 .../types/post_knowledgebase_id_response.py | 0 .../scrape_urls_knowledge_base_response.py | 0 .../live_transcripts/__init__.py | 0 .../live_transcripts/client.py | 4 +- .../live_transcripts/raw_client.py | 0 .../live_transcripts/types/__init__.py | 0 ...o_live_events_live_transcripts_response.py | 0 ...ts_live_transcripts_response_event_type.py | 0 ..._live_transcripts_response_metrics_item.py | 0 .../organization/__init__.py | 0 .../{atoms => agents}/organization/client.py | 4 +- .../organization/raw_client.py | 0 .../organization/types/__init__.py | 0 .../types/get_organization_response.py | 0 .../types/get_organization_response_data.py | 0 ...organization_response_data_members_item.py | 0 ...organization_response_data_subscription.py | 0 .../phone_numbers/__init__.py | 0 .../{atoms => agents}/phone_numbers/client.py | 36 +-- .../phone_numbers/raw_client.py | 0 .../phone_numbers/types/__init__.py | 0 .../types/get_product_all_numbers_response.py | 0 .../get_product_all_numbers_response_data.py | 0 ...et_product_manage_subscription_response.py | 0 ...oduct_manage_subscription_response_data.py | 0 .../get_product_proration_amount_response.py | 0 ..._product_proration_amount_response_data.py | 0 .../get_product_unpaid_invoices_response.py | 0 ...t_product_unpaid_invoices_response_data.py | 0 .../import_sip_phone_numbers_response.py | 0 .../import_sip_phone_numbers_response_data.py | 0 ..._phone_numbers_response_data_attributes.py | 0 ...hone_numbers_response_data_product_type.py | 0 .../types/list_phone_numbers_response.py | 0 .../list_phone_numbers_response_data_item.py | 0 ...e_numbers_response_data_item_attributes.py | 0 ..._response_data_item_attributes_provider.py | 0 ...numbers_response_data_item_product_type.py | 0 .../types/release_phone_numbers_response.py | 0 .../release_phone_numbers_response_data.py | 0 .../rent_phone_numbers_request_provider.py | 0 .../types/rent_phone_numbers_response.py | 0 .../types/rent_phone_numbers_response_data.py | 0 ...rentable_phone_numbers_request_provider.py | 0 .../search_rentable_phone_numbers_response.py | 0 ...ntable_phone_numbers_response_data_item.py | 0 ...one_numbers_response_data_item_provider.py | 0 .../prompt_scoring/__init__.py | 0 .../prompt_scoring/client.py | 8 +- .../prompt_scoring/raw_client.py | 0 .../prompt_scoring/types/__init__.py | 0 .../post_prompt_scoring_score_request.py | 0 ...t_prompt_scoring_score_request_draft_id.py | 0 ...prompt_scoring_score_request_version_id.py | 0 .../post_prompt_scoring_score_response.py | 0 ...post_prompt_scoring_score_response_data.py | 0 ...prompt_scoring_score_response_data_band.py | 0 ...ing_score_response_data_dimensions_item.py | 0 ...ore_response_data_dimensions_item_level.py | 0 ...oring_score_response_data_overall_grade.py | 0 .../{atoms => agents}/raw_client.py | 4 +- .../{atoms => agents}/realtime/__init__.py | 0 .../{atoms => agents}/realtime/client.py | 4 +- .../{atoms => agents}/realtime/raw_client.py | 0 .../realtime/types/__init__.py | 0 .../register_call_realtime_request_mode.py | 0 ...r_call_realtime_request_variables_value.py | 0 .../types/register_call_realtime_response.py | 0 .../register_call_realtime_response_data.py | 0 .../{atoms => agents}/types/__init__.py | 0 .../{atoms => agents}/types/agent_dto.py | 0 .../types/agent_dto_background_sound.py | 0 .../types/agent_dto_config_source.py | 0 .../types/agent_dto_denoising_config.py | 0 .../types/agent_dto_language.py | 0 .../types/agent_dto_language_default.py | 0 .../types/agent_dto_language_switching.py | 0 .../agent_dto_llm_idle_timeout_config.py | 0 .../types/agent_dto_pre_call_api.py | 0 .../types/agent_dto_pre_call_api_method.py | 0 ...to_pre_call_api_response_variables_item.py | 0 .../agent_dto_pronunciation_dicts_item.py | 0 .../types/agent_dto_redaction_config.py | 0 .../types/agent_dto_resolved_config.py | 0 ...nt_dto_resolved_config_default_language.py | 0 .../types/agent_dto_session_timeout_config.py | 0 .../types/agent_dto_slm_model.py | 0 .../types/agent_dto_smart_turn_config.py | 0 .../types/agent_dto_synthesizer.py | 0 .../agent_dto_synthesizer_voice_config.py | 0 ...ent_dto_synthesizer_voice_config_gender.py | 0 ...gent_dto_synthesizer_voice_config_model.py | 0 .../types/agent_dto_timezone.py | 0 .../types/agent_dto_versioned_workflow.py | 0 .../types/agent_dto_voice_detection_config.py | 0 .../agent_dto_voice_mail_detection_config.py | 0 .../types/agent_dto_widget_config.py | 0 .../types/agent_dto_widget_config_mode.py | 0 .../types/agent_dto_widget_config_position.py | 0 .../types/agent_dto_widget_config_size.py | 0 .../types/agent_dto_widget_config_theme.py | 0 .../{atoms => agents}/types/agent_version.py | 0 .../types/agent_version_blocks.py | 0 .../types/agent_version_diff.py | 0 .../types/agent_version_diff_diffs_item.py | 0 ...nt_version_diff_diffs_item_changes_item.py | 0 ..._diff_diffs_item_changes_item_new_value.py | 0 ..._diff_diffs_item_changes_item_old_value.py | 0 .../types/agent_version_metrics.py | 0 .../types/agent_version_metrics_comparison.py | 0 ...gent_version_metrics_comparison_metrics.py | 0 ...rsion_metrics_comparison_metrics_deltas.py | 0 .../types/agent_version_status.py | 0 .../types/analytics_date_range.py | 0 .../types/analytics_trend_metric.py | 0 .../{atoms => agents}/types/api_response.py | 0 .../types/bad_request_error_body.py | 0 .../types/bad_request_error_body_error.py | 0 .../types/bad_request_error_response.py | 0 .../types/billing_balance_response.py | 0 .../types/billing_balance_response_data.py | 0 .../types/billing_invoice_list_response.py | 0 .../types/billing_invoice_pdf_response.py | 0 .../billing_invoice_pdf_response_data.py | 0 .../types/billing_ledger_entry.py | 0 .../billing_ledger_entry_transaction_type.py | 0 .../types/billing_ledger_response.py | 0 .../types/billing_ledger_response_data.py | 0 .../billing_ledger_response_data_period.py | 0 .../billing_ledger_response_data_summary.py | 0 .../types/billing_usage_breakdown_response.py | 0 .../billing_usage_breakdown_response_data.py | 0 .../{atoms => agents}/types/branch.py | 0 .../{atoms => agents}/types/branch_status.py | 0 .../{atoms => agents}/types/branch_summary.py | 0 .../{atoms => agents}/types/call_action.py | 0 .../types/call_action_action_type.py | 0 .../types/call_action_category.py | 0 .../types/call_action_condition.py | 0 .../types/call_action_condition_operator.py | 0 .../types/call_action_config.py | 0 .../types/compliance_application.py | 0 .../compliance_application_number_type.py | 0 .../types/compliance_application_status.py | 0 .../types/compliance_application_user_type.py | 0 .../types/compliance_requirement.py | 0 .../types/conflict_error_body.py | 0 .../types/conflict_error_response.py | 0 .../{atoms => agents}/types/diff_change.py | 0 .../{atoms => agents}/types/diff_result.py | 0 .../{atoms => agents}/types/diff_section.py | 0 .../types/disposition_metric.py | 0 ...position_metric_disposition_metric_type.py | 0 .../types/draft_conflict_error.py | 0 .../types/draft_conflict_error_data.py | 0 .../draft_conflict_error_data_conflict.py | 0 .../{atoms => agents}/types/draft_detail.py | 0 .../types/draft_detail_edit_history_item.py | 0 .../types/draft_edit_history_entry.py | 0 .../types/forbidden_error_body.py | 0 .../types/internal_server_error_body.py | 0 .../types/internal_server_error_response.py | 0 .../{atoms => agents}/types/knowledge_base.py | 0 .../types/knowledge_base_item.py | 0 .../types/knowledge_base_item_item_type.py | 0 .../knowledge_base_item_processing_status.py | 0 .../types/knowledge_base_processing_status.py | 0 .../types/locked_error_response.py | 0 .../types/locked_error_response_error_type.py | 0 .../types/not_found_error_body.py | 0 .../types/not_found_error_body_error.py | 0 .../types/post_call_analytics_config.py | 0 ...l_analytics_config_success_metrics_item.py | 0 ...uccess_metrics_item_success_metric_type.py | 0 .../{atoms => agents}/types/product.py | 0 .../types/product_attributes.py | 0 .../types/product_attributes_provider.py | 0 .../types/product_product_type.py | 0 .../{atoms => agents}/types/prompt_score.py | 0 .../types/prompt_score_dimensions_item.py | 0 .../{atoms => agents}/types/publish_result.py | 0 .../types/publish_result_state.py | 0 .../types/required_document_type.py | 0 ...ired_document_type_required_fields_item.py | 0 .../{atoms => agents}/types/revision.py | 0 .../types/revision_pending_publish.py | 0 .../types/revision_pending_publish_state.py | 0 .../types/revision_security_check.py | 0 .../types/revision_status.py | 0 .../types/single_prompt_config.py | 0 .../types/single_prompt_data.py | 0 .../types/test_call_request.py | 0 .../types/test_call_request_mode.py | 0 .../types/test_call_result.py | 0 .../types/too_many_requests_error_body.py | 0 ...too_many_requests_error_body_rate_limit.py | 0 .../{atoms => agents}/types/tool.py | 0 .../types/tool_headers_array_item.py | 0 .../types/tool_llm_parameters_item.py | 0 .../types/tool_llm_parameters_item_type.py | 0 .../{atoms => agents}/types/tool_method.py | 0 .../types/tool_on_hold_music.py | 0 .../types/tool_query_params_item.py | 0 .../types/tool_response_variables_item.py | 0 .../types/tool_transfer_option.py | 0 ..._transfer_option_private_handoff_option.py | 0 ...sfer_option_private_handoff_option_type.py | 0 ...l_transfer_option_public_handoff_option.py | 0 ...nsfer_option_public_handoff_option_type.py | 0 .../types/tool_transfer_option_type.py | 0 .../{atoms => agents}/types/tool_type.py | 0 .../tool_variables_extraction_schema_item.py | 0 ...l_variables_extraction_schema_item_type.py | 0 .../types/unauthorized_error_response.py | 0 .../{atoms => agents}/types/version_blocks.py | 0 ...ersioning_v2migration_required_response.py | 0 ...2migration_required_response_error_type.py | 0 .../types/web_engage_integration_set.py | 0 .../{atoms => agents}/types/webhook.py | 0 .../{atoms => agents}/types/webhook_agent.py | 0 .../{atoms => agents}/types/webhook_event.py | 0 .../webhook_event_analytics_completed.py | 0 ...hook_event_analytics_completed_metadata.py | 0 ..._analytics_completed_metadata_analytics.py | 0 ...analytics_completed_metadata_event_type.py | 0 .../types/webhook_event_analytics_metric.py | 0 ...nalytics_metric_disposition_metric_type.py | 0 .../webhook_event_analytics_metric_value.py | 0 .../types/webhook_event_call_data.py | 0 .../webhook_event_call_data_call_direction.py | 0 .../webhook_event_call_data_call_status.py | 0 .../types/webhook_event_envelope.py | 0 .../types/webhook_event_post_conversation.py | 0 ...ebhook_event_post_conversation_metadata.py | 0 ...t_post_conversation_metadata_event_type.py | 0 .../types/webhook_event_pre_conversation.py | 0 ...webhook_event_pre_conversation_metadata.py | 0 ...nt_pre_conversation_metadata_event_type.py | 0 .../types/webhook_event_transcript_turn.py | 0 .../webhook_event_transcript_turn_role.py | 0 .../{atoms => agents}/types/webhook_status.py | 0 .../types/webhook_subscription.py | 0 .../types/webhook_subscription_event_type.py | 0 .../types/webhook_subscription_populated.py | 0 ...bhook_subscription_populated_event_type.py | 0 .../{atoms => agents}/types/widget_config.py | 0 .../types/widget_config_mode.py | 0 .../types/widget_config_position.py | 0 .../types/widget_config_size.py | 0 .../types/widget_config_theme.py | 0 .../types/workflow_graph_data.py | 0 .../types/workflow_graph_data_edges_item.py | 0 .../types/workflow_graph_data_nodes_item.py | 0 ...workflow_graph_data_nodes_item_position.py | 0 .../{atoms => agents}/types/workflow_type.py | 0 .../{atoms => agents}/user/__init__.py | 0 .../{atoms => agents}/user/client.py | 4 +- .../{atoms => agents}/user/raw_client.py | 0 .../{atoms => agents}/user/types/__init__.py | 0 .../user/types/get_user_response.py | 0 .../user/types/get_user_response_data.py | 0 .../{atoms => agents}/webhooks/__init__.py | 0 .../{atoms => agents}/webhooks/client.py | 32 +-- .../{atoms => agents}/webhooks/raw_client.py | 0 .../webhooks/types/__init__.py | 0 .../create_webhooks_request_events_item.py | 0 ...webhooks_request_events_item_event_type.py | 0 .../types/create_webhooks_response.py | 0 ...agent_id_webhook_subscriptions_response.py | 0 .../types/delete_webhooks_response.py | 0 ...agent_id_webhook_subscriptions_response.py | 0 .../webhooks/types/get_webhook_response.py | 0 .../types/get_webhook_response_data.py | 0 ..._subscriptions_request_event_types_item.py | 0 ...agent_id_webhook_subscriptions_response.py | 0 .../types/update_webhooks_response.py | 0 src/smallestai/atoms/crew/__init__.py | 13 - src/smallestai/atoms/crew/nodes/__init__.py | 9 - src/smallestai/cli/agents.py | 12 +- src/smallestai/cli/calls.py | 10 +- src/smallestai/cli/campaigns.py | 14 +- src/smallestai/cli/main.py | 4 +- src/smallestai/cli/phone_numbers.py | 12 +- src/smallestai/cli/utils.py | 3 +- src/smallestai/cli/waves.py | 8 +- src/smallestai/client.py | 52 ++-- src/smallestai/errors.py | 12 +- src/smallestai/{waves => speech}/__init__.py | 0 src/smallestai/{waves => speech}/client.py | 241 +++++++++--------- .../{waves => speech}/electron/__init__.py | 0 .../{waves => speech}/electron/client.py | 8 +- .../{waves => speech}/electron/raw_client.py | 0 .../electron/types/__init__.py | 0 ...chat_completion_request_response_format.py | 0 ...completion_request_response_format_type.py | 0 .../types/chat_completion_request_stop.py | 0 .../chat_completion_request_stream_options.py | 0 .../chat_completion_request_tool_choice.py | 0 ...completion_request_tool_choice_function.py | 0 ...n_request_tool_choice_function_function.py | 0 ...etion_request_tool_choice_function_type.py | 0 ...hat_completion_request_tool_choice_zero.py | 0 .../{waves => speech}/errors/__init__.py | 0 .../errors/bad_gateway_error.py | 0 .../errors/bad_request_error.py | 0 .../errors/content_too_large_error.py | 0 .../errors/forbidden_error.py | 0 .../errors/internal_server_error.py | 0 .../errors/service_unavailable_error.py | 0 .../errors/too_many_requests_error.py | 0 .../errors/unauthorized_error.py | 0 .../{waves => speech}/helpers/__init__.py | 0 .../helpers/streaming_stt.py | 8 +- .../{waves => speech}/helpers/tts.py | 8 +- .../{waves => speech}/raw_client.py | 174 +++++++------ .../speech_to_speech/__init__.py | 0 .../speech_to_speech/client.py | 0 .../speech_to_speech/raw_client.py | 0 .../speech_to_speech/socket_client.py | 0 .../speech_to_speech/types/__init__.py | 0 .../types/conversation_item_added.py | 0 .../types/conversation_item_added_type.py | 0 .../types/conversation_item_create.py | 0 .../types/conversation_item_create_type.py | 0 .../types/conversation_item_done.py | 0 .../types/conversation_item_done_type.py | 0 .../speech_to_speech/types/error_event.py | 0 .../types/error_event_error.py | 0 .../types/error_event_error_code.py | 0 .../types/error_event_type.py | 0 .../types/input_audio_buffer_append.py | 0 .../types/input_audio_buffer_append_type.py | 0 .../input_audio_buffer_speech_started.py | 0 .../input_audio_buffer_speech_started_type.py | 0 .../input_audio_buffer_speech_stopped.py | 0 .../input_audio_buffer_speech_stopped_type.py | 0 .../speech_to_speech/types/response_cancel.py | 0 .../types/response_cancel_type.py | 0 .../speech_to_speech/types/response_create.py | 0 .../types/response_create_type.py | 0 .../types/response_created.py | 0 .../types/response_created_response.py | 0 .../types/response_created_type.py | 0 .../speech_to_speech/types/response_done.py | 0 .../types/response_done_response.py | 0 .../types/response_done_response_status.py | 0 .../response_done_response_status_details.py | 0 ...onse_done_response_status_details_error.py | 0 ...nse_done_response_status_details_reason.py | 0 .../types/response_done_response_usage.py | 0 .../types/response_done_type.py | 0 .../response_function_call_arguments_delta.py | 0 ...onse_function_call_arguments_delta_type.py | 0 .../response_function_call_arguments_done.py | 0 ...ponse_function_call_arguments_done_type.py | 0 .../types/response_output_audio_delta.py | 0 .../types/response_output_audio_delta_type.py | 0 .../types/response_output_audio_done.py | 0 .../types/response_output_audio_done_type.py | 0 .../types/session_configure.py | 0 .../types/session_configure_type.py | 0 .../types/session_configured.py | 0 .../types/session_configured_session.py | 0 .../types/session_configured_type.py | 0 .../speech_to_speech/types/session_created.py | 0 .../types/session_created_type.py | 0 .../speech_to_speech/types/session_update.py | 0 .../types/session_update_session.py | 0 .../types/session_update_type.py | 0 .../speech_to_speech/types/session_updated.py | 0 .../types/session_updated_type.py | 0 .../speech_to_text/__init__.py | 3 + .../speech_to_text/client.py | 0 .../speech_to_text/raw_client.py | 0 .../speech_to_text/socket_client.py | 0 .../speech_to_text/types/__init__.py | 3 + .../speech_to_text/types/close_stream.py | 0 .../speech_to_text/types/close_stream_type.py | 0 .../speech_to_text/types/finalize_signal.py | 0 .../types/finalize_signal_type.py | 0 .../transcribe_request_emotion_detection.py | 0 .../transcribe_request_gender_detection.py | 0 .../types/transcribe_request_language.py | 0 .../types/transcribe_request_model.py | 0 .../types/transcribe_request_redact_pci.py | 0 .../types/transcribe_request_redact_pii.py | 0 .../transcribe_request_webhook_method.py | 0 .../transcribe_request_x_expire_content.py | 5 + .../types/transcribe_response.py | 0 .../types/transcription_error_event.py | 0 .../types/transcription_error_event_type.py | 0 .../types/transcription_event.py | 0 .../types/transcription_event_type.py | 0 .../transcription_event_utterances_item.py | 0 .../types/transcription_event_words_item.py | 0 .../{waves => speech}/stream_tts.py | 14 +- .../streaming_tts/__init__.py | 0 .../{waves => speech}/streaming_tts/client.py | 0 .../streaming_tts/raw_client.py | 0 .../streaming_tts/socket_client.py | 0 .../streaming_tts/types/__init__.py | 0 .../types/stream_tts_request_message.py | 0 .../stream_tts_request_message_language.py | 0 .../types/stream_tts_response_message.py | 0 .../types/stream_tts_response_message_data.py | 0 .../stream_tts_response_message_error.py | 0 .../stream_tts_response_message_status.py | 0 .../{waves => speech}/tts/__init__.py | 0 .../{waves => speech}/tts/client.py | 26 +- .../{waves => speech}/tts/raw_client.py | 26 +- .../{waves => speech}/tts/socket_client.py | 0 .../{waves => speech}/tts/types/__init__.py | 0 .../tts/types/tts_request_message.py | 0 .../tts/types/tts_request_message_language.py | 0 .../tts/types/tts_request_message_model.py | 0 ...t_message_number_pronunciation_language.py | 0 .../tts/types/tts_response_message.py | 0 .../tts/types/tts_response_message_data.py | 0 .../tts/types/tts_response_message_status.py | 0 .../{waves => speech}/types/__init__.py | 128 +++++----- .../{waves => speech}/types/async_accepted.py | 0 .../{waves => speech}/types/audio_chunk.py | 9 +- .../types/audio_chunk_data.py | 14 +- .../types/audio_chunk_status.py | 0 .../types/bad_request_error_body.py | 0 .../types/chat_completion.py | 0 .../types/chat_completion_choices_item.py | 0 ...t_completion_choices_item_finish_reason.py | 0 .../types/chat_completion_object.py | 0 .../speech/types/completion_status.py | 44 ++++ .../types/completion_status_status.py | 0 .../types/conversation_item.py | 0 .../types/conversation_item_content_item.py | 0 .../conversation_item_content_item_type.py | 0 .../types/conversation_item_role.py | 0 .../types/conversation_item_status.py | 0 .../types/conversation_item_type.py | 0 ...create_voice_clone_speech_request_model.py | 5 + .../create_voice_clone_speech_response.py | 22 ++ ...create_voice_clone_speech_response_data.py | 52 ++++ ...clone_speech_response_data_samples_item.py | 31 +++ ...voice_clone_speech_response_data_status.py | 7 + .../create_voice_clone_waves_request_model.py | 0 .../create_voice_clone_waves_response.py | 0 .../create_voice_clone_waves_response_data.py | 0 ..._clone_waves_response_data_samples_item.py | 0 ..._voice_clone_waves_response_data_status.py | 0 .../delete_pronunciation_dict_response.py | 0 .../types/electron_message.py | 0 .../types/electron_tool_call.py | 0 .../types/electron_tool_call_function.py | 0 .../types/electron_tool_call_type.py | 0 .../{waves => speech}/types/error.py | 0 .../{waves => speech}/types/error_error.py | 0 .../types/error_error_details_item.py | 0 .../{waves => speech}/types/error_response.py | 9 +- .../types/error_response_error.py | 11 +- .../types/error_response_status.py | 0 .../types/get_voices_speech_request_model.py | 5 + .../types/get_voices_speech_response.py} | 13 +- .../get_voices_speech_response_voices_item.py | 39 +++ ...voices_speech_response_voices_item_tags.py | 52 ++++ .../types/get_voices_waves_request_model.py | 0 .../types/get_voices_waves_response.py | 0 .../get_voices_waves_response_voices_item.py | 0 ..._voices_waves_response_voices_item_tags.py | 0 .../types/internal_server_error_body.py | 0 .../internal_server_error_body_error_code.py | 0 .../types/lightning_large_request.py | 0 .../types/lightning_large_request_language.py | 0 .../lightning_large_request_output_format.py | 0 .../types/lightning_request.py | 0 .../types/lightning_request_language.py | 0 .../types/lightning_request_output_format.py | 0 .../types/lightningv2request.py | 0 .../types/lightningv2request_language.py | 0 .../types/lightningv2request_output_format.py | 0 .../list_voice_clones_speech_response.py | 21 ++ ..._voice_clones_speech_response_data_item.py | 54 ++++ ..._speech_response_data_item_cloning_type.py | 5 + ...clones_speech_response_data_item_status.py | 7 + .../types/list_voice_clones_waves_response.py | 0 ...t_voice_clones_waves_response_data_item.py | 0 ...s_waves_response_data_item_cloning_type.py | 0 ..._clones_waves_response_data_item_status.py | 0 .../types/pronunciation_dict.py | 0 .../types/pronunciation_item.py | 0 .../{waves => speech}/types/sample_rate.py | 0 .../{waves => speech}/types/session_config.py | 0 .../types/session_config_voice.py | 0 .../types/streaming_tts_config.py | 0 .../types/stt_error_response.py | 0 ...ning_large_speech_request_output_format.py | 7 + ...tning_large_waves_request_output_format.py | 0 ..._lightning_speech_request_output_format.py | 5 + ...ightning_v2speech_request_output_format.py | 5 + ...lightning_v2waves_request_output_format.py | 0 ...e_lightning_waves_request_output_format.py | 0 ...ning_large_speech_request_output_format.py | 7 + ...tning_large_waves_request_output_format.py | 0 ...ightning_v2speech_request_output_format.py | 7 + ...lightning_v2waves_request_output_format.py | 0 ...sse_tts_speech_request_x_expire_content.py | 5 + ...ize_tts_speech_request_x_expire_content.py | 5 + .../{waves => speech}/types/tool.py | 0 .../{waves => speech}/types/tool_type.py | 0 .../types/transcription_response.py | 0 .../types/transcription_response_metadata.py | 0 .../{waves => speech}/types/tts_error.py | 0 .../{waves => speech}/types/tts_request.py | 0 .../types/tts_request_language.py | 0 .../types/tts_request_model.py | 0 ...s_request_number_pronunciation_language.py | 0 .../types/tts_request_output_format.py | 0 .../types/unauthorized_error_body.py | 0 .../update_pronunciation_dict_response.py | 0 .../{waves => speech}/types/usage.py | 0 .../types/usage_prompt_tokens_details.py | 0 .../{waves => speech}/types/utterance.py | 0 .../{waves => speech}/types/word.py | 0 tests/custom/test_6_0_rename_compat.py | 77 ++++++ tests/custom/test_agent_tools_helper.py | 14 +- tests/custom/test_as_page_envelope.py | 2 +- tests/custom/test_cli_calls.py | 2 +- .../test_crew_context_from_llm_request.py | 4 +- .../test_crew_session_ready_ordering.py | 4 +- .../test_crew_terminal_handoff_guard.py | 12 +- .../test_crew_transfer_onhold_optional.py | 2 +- tests/custom/test_error_devx.py | 4 +- tests/custom/test_helpers_rest.py | 8 +- .../custom/test_output_node_on_event_hook.py | 4 +- tests/custom/test_sdk_fixes.py | 15 +- tests/custom/test_streaming_stt_helper.py | 6 +- tests/custom/test_tts_helper.py | 14 +- tests/custom/test_versioning_helper.py | 14 +- tests/custom/test_waves_shim_import.py | 12 +- tests/velocity/field_drop_audit.py | 15 +- tests/velocity/integration.py | 33 +-- tests/velocity/smoke.py | 10 +- tests/velocity/triage.py | 37 ++- tests/velocity/v2_versioning_api_probe.py | 2 +- tests/velocity/v2_versioning_e2e.py | 9 +- tests/wire/test_atoms_agentTemplates.py | 4 +- .../test_atoms_agentVersioningBranches.py | 24 +- .../wire/test_atoms_agentVersioningDrafts.py | 18 +- .../test_atoms_agentVersioningRevisions.py | 10 +- .../test_atoms_agentVersioningVersions.py | 12 +- tests/wire/test_atoms_agents.py | 20 +- tests/wire/test_atoms_analytics.py | 36 +-- tests/wire/test_atoms_audience.py | 16 +- tests/wire/test_atoms_billing.py | 10 +- tests/wire/test_atoms_callActions.py | 12 +- tests/wire/test_atoms_calls.py | 8 +- tests/wire/test_atoms_campaigns.py | 12 +- tests/wire/test_atoms_compliance.py | 10 +- tests/wire/test_atoms_concurrency.py | 6 +- tests/wire/test_atoms_conversations.py | 8 +- .../test_atoms_dispositionMetricTemplates.py | 2 +- tests/wire/test_atoms_dnc.py | 2 +- tests/wire/test_atoms_integrations.py | 6 +- tests/wire/test_atoms_knowledgeBase.py | 28 +- tests/wire/test_atoms_liveTranscripts.py | 2 +- tests/wire/test_atoms_organization.py | 2 +- tests/wire/test_atoms_phoneNumbers.py | 18 +- tests/wire/test_atoms_promptScoring.py | 4 +- tests/wire/test_atoms_realtime.py | 2 +- tests/wire/test_atoms_user.py | 2 +- tests/wire/test_atoms_webhooks.py | 16 +- tests/wire/test_waves.py | 30 +-- tests/wire/test_waves_electron.py | 4 +- 1028 files changed, 1829 insertions(+), 1103 deletions(-) create mode 100644 src/smallestai/_compat.py rename src/smallestai/{atoms => agents}/__init__.py (100%) rename src/smallestai/{atoms => agents}/agent_templates/__init__.py (100%) rename src/smallestai/{atoms => agents}/agent_templates/client.py (96%) rename src/smallestai/{atoms => agents}/agent_templates/raw_client.py (100%) rename src/smallestai/{atoms => agents}/agent_templates/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/agent_templates/types/list_agent_templates_agent_templates_request_region.py (100%) rename src/smallestai/{atoms => agents}/agent_templates/types/list_agent_templates_agent_templates_response.py (100%) rename src/smallestai/{atoms => agents}/agent_templates/types/list_agent_templates_agent_templates_response_data_item.py (100%) rename src/smallestai/{atoms => agents}/agent_templates/types/list_agent_templates_agent_templates_response_data_item_call_type.py (100%) rename src/smallestai/{atoms => agents}/agent_templates/types/list_agent_templates_agent_templates_response_data_item_default_language.py (100%) rename src/smallestai/{atoms => agents}/agent_templates/types/list_agent_templates_agent_templates_response_data_item_region.py (100%) rename src/smallestai/{atoms => agents}/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config.py (100%) rename src/smallestai/{atoms => agents}/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config_tools_item.py (100%) rename src/smallestai/{atoms => agents}/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config_tools_item_type.py (100%) rename src/smallestai/{atoms => agents}/agent_templates/types/list_agent_templates_agent_templates_response_data_item_workflow_type.py (100%) rename src/smallestai/{atoms => agents}/agent_templates/types/post_agent_from_template_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/__init__.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/client.py (96%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/raw_client.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/archive_agent_versioning_branches_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/archive_agent_versioning_branches_response_data.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/cancel_publish_agent_versioning_branches_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/cancel_publish_agent_versioning_branches_response_data.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/create_branch_agent_versioning_branches_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/discard_draft_agent_versioning_branches_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/discard_draft_agent_versioning_branches_response_data.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/get_agent_versioning_branches_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/get_draft_agent_versioning_branches_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/list_agent_versioning_branches_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/list_agent_versioning_branches_response_data.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/make_live_agent_versioning_branches_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/publish_draft_agent_versioning_branches_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/rename_agent_versioning_branches_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/test_call_agent_versioning_branches_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/test_call_v2request_mode.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/update_branch_draft_request_background_sound.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/update_branch_draft_request_slm_model.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_branches/types/update_draft_agent_versioning_branches_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/__init__.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/client.py (97%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/raw_client.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/create_draft_agent_versioning_drafts_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/discard_draft_agent_versioning_drafts_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/draft_config_request_background_sound.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/draft_config_request_slm_model.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response_data.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response_data_sections_value.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_response_data.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/get_agent_id_drafts_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/get_agent_id_drafts_response_data_item.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/post_agent_id_drafts_draft_id_test_call_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/post_agent_id_drafts_draft_id_test_call_response_data.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/publish_draft_agent_versioning_drafts_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/rename_draft_agent_versioning_drafts_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/rename_draft_agent_versioning_drafts_response_data.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_drafts/types/update_draft_config_agent_versioning_drafts_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_revisions/__init__.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_revisions/client.py (96%) rename src/smallestai/{atoms => agents}/agent_versioning_revisions/raw_client.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_revisions/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_revisions/types/diff_agent_versioning_revisions_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_revisions/types/get_agent_versioning_revisions_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_revisions/types/get_agent_versioning_revisions_response_data.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response_data.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response_data_trail_item.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_revisions/types/list_agent_versioning_revisions_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_revisions/types/list_agent_versioning_revisions_response_data.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_revisions/types/restore_agent_versioning_revisions_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_versions/__init__.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_versions/client.py (96%) rename src/smallestai/{atoms => agents}/agent_versioning_versions/raw_client.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_versions/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_versions/types/activate_version_agent_versioning_versions_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_versions/types/get_agent_id_versions_diff_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_versions/types/get_agent_id_versions_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_versions/types/get_agent_id_versions_response_data.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_versions/types/get_agent_id_versions_response_data_versions_item.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_versions/types/get_agent_id_versions_version_id_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_versions/types/get_agent_id_versions_version_id_response_data.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_versions/types/post_agent_id_versions_version_id_test_call_response.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_versions/types/post_agent_id_versions_version_id_test_call_response_data.py (100%) rename src/smallestai/{atoms => agents}/agent_versioning_versions/types/update_version_metadata_agent_versioning_versions_response.py (100%) rename src/smallestai/{atoms => agents}/agents/__init__.py (100%) rename src/smallestai/{atoms => agents}/agents/client.py (98%) rename src/smallestai/{atoms => agents}/agents/raw_client.py (100%) rename src/smallestai/{atoms => agents}/agents/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/agents/types/archive_agent_agents_response.py (100%) rename src/smallestai/{atoms => agents}/agents/types/archive_agent_agents_response_data.py (100%) rename src/smallestai/{atoms => agents}/agents/types/archive_agent_agents_response_data_message.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_agents_response.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_background_sound.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_denoising_config.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_language.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_language_default.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_language_supported_item.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_language_switching.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_llm_idle_timeout_config.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_pre_call_api.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_pre_call_api_method.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_pre_call_api_response_variables_item.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_pronunciation_dicts_item.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_redaction_config.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_session_timeout_config.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_slm_model.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_smart_turn_config.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_synthesizer.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_synthesizer_voice_config.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_synthesizer_voice_config_gender.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_synthesizer_voice_config_model.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_timezone.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_voice_detection_config.py (100%) rename src/smallestai/{atoms => agents}/agents/types/create_agent_request_voice_mail_detection_config.py (100%) rename src/smallestai/{atoms => agents}/agents/types/duplicate_agent_agents_response.py (100%) rename src/smallestai/{atoms => agents}/agents/types/duplicate_agent_agents_response_data.py (100%) rename src/smallestai/{atoms => agents}/agents/types/get_agent_agents_response.py (100%) rename src/smallestai/{atoms => agents}/agents/types/get_agent_avatar_presigned_url_response.py (100%) rename src/smallestai/{atoms => agents}/agents/types/get_agent_avatar_presigned_url_response_data.py (100%) rename src/smallestai/{atoms => agents}/agents/types/get_agent_call_logs_response.py (100%) rename src/smallestai/{atoms => agents}/agents/types/get_agent_call_logs_response_data.py (100%) rename src/smallestai/{atoms => agents}/agents/types/get_agent_call_logs_response_data_call_logs_item.py (100%) rename src/smallestai/{atoms => agents}/agents/types/get_agent_widget_config_response.py (100%) rename src/smallestai/{atoms => agents}/agents/types/get_agent_widget_config_response_data.py (100%) rename src/smallestai/{atoms => agents}/agents/types/get_agent_widget_config_response_data_mode.py (100%) rename src/smallestai/{atoms => agents}/agents/types/get_agent_widget_config_response_data_position.py (100%) rename src/smallestai/{atoms => agents}/agents/types/get_agent_widget_config_response_data_size.py (100%) rename src/smallestai/{atoms => agents}/agents/types/get_agent_widget_config_response_data_theme.py (100%) rename src/smallestai/{atoms => agents}/agents/types/list_agents_agents_request_sort_field.py (100%) rename src/smallestai/{atoms => agents}/agents/types/list_agents_agents_request_sort_order.py (100%) rename src/smallestai/{atoms => agents}/agents/types/list_agents_agents_request_type.py (100%) rename src/smallestai/{atoms => agents}/agents/types/list_agents_agents_response.py (100%) rename src/smallestai/{atoms => agents}/agents/types/list_agents_agents_response_data.py (100%) rename src/smallestai/{atoms => agents}/agents/types/update_agent_agents_response.py (100%) rename src/smallestai/{atoms => agents}/agents/types/update_agent_widget_config_request_widget_config.py (100%) rename src/smallestai/{atoms => agents}/agents/types/update_agent_widget_config_request_widget_config_mode.py (100%) rename src/smallestai/{atoms => agents}/agents/types/update_agent_widget_config_request_widget_config_position.py (100%) rename src/smallestai/{atoms => agents}/agents/types/update_agent_widget_config_request_widget_config_size.py (100%) rename src/smallestai/{atoms => agents}/agents/types/update_agent_widget_config_request_widget_config_theme.py (100%) rename src/smallestai/{atoms => agents}/agents/types/update_agent_widget_config_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/__init__.py (100%) rename src/smallestai/{atoms => agents}/analytics/client.py (96%) rename src/smallestai/{atoms => agents}/analytics/raw_client.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_agent_performance_request_sort_order.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_agent_performance_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_agent_performance_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_agent_performance_response_data_agents_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_analytics_concurrency_request_include_agents.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_analytics_concurrency_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_analytics_concurrency_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_analytics_concurrency_response_data_by_agent_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_analytics_concurrency_response_data_data_points_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_analytics_summary_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_analytics_summary_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_attempt_cohort_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_attempt_cohort_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_attempt_cohort_response_data_cohorts_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_counts_by_day_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_counts_by_day_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_counts_by_day_response_data_call_counts_by_day_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_counts_log_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_counts_log_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_counts_log_response_data_calls_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_outcomes_timeseries_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_outcomes_timeseries_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_outcomes_timeseries_response_data_data_points_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_outcomes_timeseries_response_data_totals.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_start_distribution_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_start_distribution_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_start_distribution_response_data_data_points_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_volume_timeseries_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_volume_timeseries_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_call_volume_timeseries_response_data_data_points_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_conversation_details_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_conversation_details_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_conversation_details_response_data_events_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_conversation_details_response_data_transcript_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_daily_call_summary_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_daily_call_summary_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_dashboard_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_dashboard_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_duration_stats_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_duration_stats_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_hourly_performance_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_hourly_performance_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_hourly_performance_response_data_hours_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_phone_number_trends_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_phone_number_trends_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_phone_number_trends_response_data_trends_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_phone_number_trends_response_data_trends_item_data_points_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_pickup_rate_by_number_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_pickup_rate_by_number_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_pickup_rate_by_number_response_data_numbers_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_usage_timeseries_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_usage_timeseries_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_usage_timeseries_response_data_date_range.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_usage_timeseries_response_data_day_wise_credits_item.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_weekly_trends_response.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_weekly_trends_response_data.py (100%) rename src/smallestai/{atoms => agents}/analytics/types/get_weekly_trends_response_data_weeks_item.py (100%) rename src/smallestai/{atoms => agents}/audience/__init__.py (100%) rename src/smallestai/{atoms => agents}/audience/client.py (96%) rename src/smallestai/{atoms => agents}/audience/raw_client.py (100%) rename src/smallestai/{atoms => agents}/audience/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/audience/types/delete_audience_id_members_response.py (100%) rename src/smallestai/{atoms => agents}/audience/types/delete_audience_id_members_response_data.py (100%) rename src/smallestai/{atoms => agents}/audience/types/delete_audience_id_response.py (100%) rename src/smallestai/{atoms => agents}/audience/types/get_audience_id_members_response.py (100%) rename src/smallestai/{atoms => agents}/audience/types/get_audience_id_members_response_data.py (100%) rename src/smallestai/{atoms => agents}/audience/types/get_audience_id_members_response_data_members_item.py (100%) rename src/smallestai/{atoms => agents}/audience/types/get_audience_id_members_search_response.py (100%) rename src/smallestai/{atoms => agents}/audience/types/get_audience_id_members_search_response_data.py (100%) rename src/smallestai/{atoms => agents}/audience/types/get_audience_id_members_search_response_data_members_item.py (100%) rename src/smallestai/{atoms => agents}/audience/types/get_audience_id_members_search_response_data_search_info.py (100%) rename src/smallestai/{atoms => agents}/audience/types/get_audience_id_members_search_response_data_search_info_search_type.py (100%) rename src/smallestai/{atoms => agents}/audience/types/get_audience_response.py (100%) rename src/smallestai/{atoms => agents}/audience/types/get_audience_response_data.py (100%) rename src/smallestai/{atoms => agents}/audience/types/list_audience_response.py (100%) rename src/smallestai/{atoms => agents}/audience/types/list_audience_response_data_item.py (100%) rename src/smallestai/{atoms => agents}/audience/types/list_audience_response_data_item_campaigns_item.py (100%) rename src/smallestai/{atoms => agents}/audience/types/post_audience_id_members_response.py (100%) rename src/smallestai/{atoms => agents}/audience/types/post_audience_id_members_response_data_item.py (100%) rename src/smallestai/{atoms => agents}/audience/types/post_audience_id_members_response_data_item_data.py (100%) rename src/smallestai/{atoms => agents}/audience/types/post_audience_response.py (100%) rename src/smallestai/{atoms => agents}/audience/types/post_audience_response_data.py (100%) rename src/smallestai/{atoms => agents}/billing/__init__.py (100%) rename src/smallestai/{atoms => agents}/billing/client.py (97%) rename src/smallestai/{atoms => agents}/billing/raw_client.py (100%) rename src/smallestai/{atoms => agents}/billing/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/billing/types/get_ledger_billing_request_scope.py (100%) rename src/smallestai/{atoms => agents}/billing/types/get_ledger_billing_request_type.py (100%) rename src/smallestai/{atoms => agents}/call_actions/__init__.py (100%) rename src/smallestai/{atoms => agents}/call_actions/client.py (95%) rename src/smallestai/{atoms => agents}/call_actions/raw_client.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/create_call_action_request_action_type.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/create_call_action_request_category.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/create_call_action_request_config.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/create_call_action_response.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/delete_call_action_response.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/delete_call_action_response_data.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/get_call_action_response.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/list_call_actions_request_category.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/list_call_actions_response.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/list_call_actions_response_data.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/update_call_action_request_action_type.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/update_call_action_request_category.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/update_call_action_request_config.py (100%) rename src/smallestai/{atoms => agents}/call_actions/types/update_call_action_response.py (100%) rename src/smallestai/{atoms => agents}/calls/__init__.py (100%) rename src/smallestai/{atoms => agents}/calls/client.py (98%) rename src/smallestai/{atoms => agents}/calls/raw_client.py (100%) rename src/smallestai/{atoms => agents}/calls/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/calls/types/get_calls_response.py (100%) rename src/smallestai/{atoms => agents}/calls/types/get_calls_response_data.py (100%) rename src/smallestai/{atoms => agents}/calls/types/get_calls_response_data_post_call_analytics.py (100%) rename src/smallestai/{atoms => agents}/calls/types/get_calls_response_data_post_call_analytics_disposition_metrics_item.py (100%) rename src/smallestai/{atoms => agents}/calls/types/get_calls_response_data_status.py (100%) rename src/smallestai/{atoms => agents}/calls/types/get_calls_response_data_transcript_item.py (100%) rename src/smallestai/{atoms => agents}/calls/types/get_calls_response_data_transcript_item_role.py (100%) rename src/smallestai/{atoms => agents}/calls/types/get_calls_response_data_turn_latency_metrics.py (100%) rename src/smallestai/{atoms => agents}/calls/types/get_calls_response_data_turn_latency_metrics_transitions_item.py (100%) rename src/smallestai/{atoms => agents}/calls/types/get_calls_response_data_type.py (100%) rename src/smallestai/{atoms => agents}/calls/types/get_calls_response_data_voice_config_used.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_request_call_types.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_request_sort_by.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_request_sort_order.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_response.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_response_data.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_response_data_disposition_metrics_config_item.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_response_data_logs_item.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_response_data_logs_item_agent_disposition_config_item.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_response_data_logs_item_post_call_analytics.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_response_data_logs_item_post_call_analytics_disposition_metrics_item.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_response_data_logs_item_status.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_response_data_logs_item_turn_latency_metrics.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_response_data_logs_item_turn_latency_metrics_transitions_item.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_response_data_logs_item_type.py (100%) rename src/smallestai/{atoms => agents}/calls/types/list_calls_response_data_pagination.py (100%) rename src/smallestai/{atoms => agents}/calls/types/search_calls_response.py (100%) rename src/smallestai/{atoms => agents}/calls/types/search_calls_response_data.py (100%) rename src/smallestai/{atoms => agents}/calls/types/search_calls_response_data_logs_item.py (100%) rename src/smallestai/{atoms => agents}/calls/types/search_calls_response_data_logs_item_post_call_analytics.py (100%) rename src/smallestai/{atoms => agents}/calls/types/search_calls_response_data_logs_item_post_call_analytics_disposition_metrics_item.py (100%) rename src/smallestai/{atoms => agents}/calls/types/search_calls_response_data_logs_item_status.py (100%) rename src/smallestai/{atoms => agents}/calls/types/search_calls_response_data_logs_item_turn_latency_metrics.py (100%) rename src/smallestai/{atoms => agents}/calls/types/search_calls_response_data_logs_item_turn_latency_metrics_transitions_item.py (100%) rename src/smallestai/{atoms => agents}/calls/types/search_calls_response_data_logs_item_type.py (100%) rename src/smallestai/{atoms => agents}/calls/types/start_outbound_call_calls_request_variables_value.py (100%) rename src/smallestai/{atoms => agents}/calls/types/start_outbound_call_calls_request_x_test_call.py (100%) rename src/smallestai/{atoms => agents}/calls/types/start_outbound_call_calls_response.py (100%) rename src/smallestai/{atoms => agents}/calls/types/start_outbound_call_calls_response_data.py (100%) rename src/smallestai/{atoms => agents}/campaigns/__init__.py (100%) rename src/smallestai/{atoms => agents}/campaigns/client.py (97%) rename src/smallestai/{atoms => agents}/campaigns/raw_client.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/create_campaigns_response.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/create_campaigns_response_data.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/create_campaigns_response_data_status.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/delete_campaigns_response.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/get_campaigns_response.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/get_campaigns_response_data.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/get_campaigns_response_data_campaign.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/get_campaigns_response_data_campaign_agent.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/get_campaigns_response_data_campaign_audience.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/get_campaigns_response_data_campaign_status.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/get_campaigns_response_data_events_item.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/get_campaigns_response_data_metrics.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/list_campaigns_request_sort_field.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/list_campaigns_request_sort_order.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/list_campaigns_request_status.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/list_campaigns_response.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/list_campaigns_response_data.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/list_campaigns_response_data_campaigns_item.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/list_campaigns_response_data_campaigns_item_agent.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/list_campaigns_response_data_campaigns_item_audience.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/list_campaigns_response_data_campaigns_item_status.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/list_campaigns_response_data_pagination.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/pause_campaigns_response.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/start_or_resume_campaigns_response.py (100%) rename src/smallestai/{atoms => agents}/campaigns/types/start_or_resume_campaigns_response_data.py (100%) rename src/smallestai/{atoms => agents}/client.py (94%) rename src/smallestai/{atoms => agents}/compliance/__init__.py (100%) rename src/smallestai/{atoms => agents}/compliance/client.py (97%) rename src/smallestai/{atoms => agents}/compliance/raw_client.py (100%) rename src/smallestai/{atoms => agents}/compliance/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/compliance/types/get_compliance_requirements_request_number_type.py (100%) rename src/smallestai/{atoms => agents}/compliance/types/get_compliance_requirements_request_user_type.py (100%) rename src/smallestai/{atoms => agents}/compliance/types/get_compliance_requirements_response.py (100%) rename src/smallestai/{atoms => agents}/compliance/types/get_compliance_status_request_number_type.py (100%) rename src/smallestai/{atoms => agents}/compliance/types/get_compliance_status_request_user_type.py (100%) rename src/smallestai/{atoms => agents}/compliance/types/get_compliance_status_response.py (100%) rename src/smallestai/{atoms => agents}/compliance/types/get_compliance_status_response_data.py (100%) rename src/smallestai/{atoms => agents}/compliance/types/get_compliance_status_response_data_step.py (100%) rename src/smallestai/{atoms => agents}/compliance/types/post_compliance_applications_id_refresh_response.py (100%) rename src/smallestai/{atoms => agents}/compliance/types/resubmit_compliance_response.py (100%) rename src/smallestai/{atoms => agents}/compliance/types/submit_compliance_request_number_type.py (100%) rename src/smallestai/{atoms => agents}/compliance/types/submit_compliance_request_user_type.py (100%) rename src/smallestai/{atoms => agents}/compliance/types/submit_compliance_response.py (100%) rename src/smallestai/{atoms => agents}/concurrency/__init__.py (100%) rename src/smallestai/{atoms => agents}/concurrency/client.py (94%) rename src/smallestai/{atoms => agents}/concurrency/raw_client.py (100%) rename src/smallestai/{atoms => agents}/concurrency/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/concurrency/types/get_concurrency_response.py (100%) rename src/smallestai/{atoms => agents}/concurrency/types/get_concurrency_response_data.py (100%) rename src/smallestai/{atoms => agents}/concurrency/types/get_concurrency_response_data_agents_item.py (100%) rename src/smallestai/{atoms => agents}/concurrency/types/update_concurrency_reservations_request_reservations_item.py (100%) rename src/smallestai/{atoms => agents}/concurrency/types/update_concurrency_reservations_response.py (100%) rename src/smallestai/{atoms => agents}/concurrency/types/update_concurrency_reservations_response_data.py (100%) rename src/smallestai/{atoms => agents}/conversations/__init__.py (100%) rename src/smallestai/{atoms => agents}/conversations/client.py (96%) rename src/smallestai/{atoms => agents}/conversations/raw_client.py (100%) rename src/smallestai/{atoms => agents}/conversations/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/conversations/types/cancel_conversations_response.py (100%) rename src/smallestai/{atoms => agents}/conversations/types/cancel_conversations_response_data.py (100%) rename src/smallestai/{atoms => agents}/conversations/types/cancel_queued_conversations_response.py (100%) rename src/smallestai/{atoms => agents}/conversations/types/cancel_queued_conversations_response_data.py (100%) rename src/smallestai/{atoms => agents}/conversations/types/get_conversation_call_id_recording_download_url_response.py (100%) rename src/smallestai/{atoms => agents}/conversations/types/get_conversation_call_id_recording_download_url_response_data.py (100%) rename src/smallestai/{atoms => agents}/conversations/types/list_retry_attempts_conversations_response.py (100%) rename src/smallestai/{atoms => agents}/conversations/types/list_retry_attempts_conversations_response_data.py (100%) create mode 100644 src/smallestai/agents/crew/__init__.py rename src/smallestai/{atoms => agents}/crew/clients/__init__.py (71%) rename src/smallestai/{atoms => agents}/crew/clients/base.py (95%) rename src/smallestai/{atoms => agents}/crew/clients/openai.py (98%) rename src/smallestai/{atoms => agents}/crew/clients/types.py (97%) rename src/smallestai/{atoms => agents}/crew/context.py (100%) rename src/smallestai/{atoms => agents}/crew/events.py (98%) create mode 100644 src/smallestai/agents/crew/nodes/__init__.py rename src/smallestai/{atoms => agents}/crew/nodes/background_crew.py (94%) rename src/smallestai/{atoms => agents}/crew/nodes/base.py (97%) rename src/smallestai/{atoms => agents}/crew/nodes/output_crew.py (97%) rename src/smallestai/{atoms => agents}/crew/server.py (99%) rename src/smallestai/{atoms => agents}/crew/session.py (98%) rename src/smallestai/{atoms => agents}/crew/task_manager.py (100%) rename src/smallestai/{atoms => agents}/crew/tools/__init__.py (62%) rename src/smallestai/{atoms => agents}/crew/tools/decorator.py (97%) rename src/smallestai/{atoms => agents}/crew/tools/registry.py (98%) rename src/smallestai/{atoms => agents}/crew/tools/schema.py (100%) rename src/smallestai/{atoms => agents}/crew/type.py (100%) rename src/smallestai/{atoms => agents}/disposition_metric_templates/__init__.py (100%) rename src/smallestai/{atoms => agents}/disposition_metric_templates/client.py (95%) rename src/smallestai/{atoms => agents}/disposition_metric_templates/raw_client.py (100%) rename src/smallestai/{atoms => agents}/disposition_metric_templates/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/disposition_metric_templates/types/list_disposition_metric_templates_response.py (100%) rename src/smallestai/{atoms => agents}/disposition_metric_templates/types/list_disposition_metric_templates_response_data_item.py (100%) rename src/smallestai/{atoms => agents}/disposition_metric_templates/types/list_disposition_metric_templates_response_data_item_disposition_metric_type.py (100%) rename src/smallestai/{atoms => agents}/dnc/__init__.py (100%) rename src/smallestai/{atoms => agents}/dnc/client.py (98%) rename src/smallestai/{atoms => agents}/dnc/raw_client.py (100%) rename src/smallestai/{atoms => agents}/dnc/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/dnc/types/list_dnc_request_sort_field.py (100%) rename src/smallestai/{atoms => agents}/dnc/types/list_dnc_request_sort_order.py (100%) rename src/smallestai/{atoms => agents}/dnc/types/list_dnc_response.py (100%) rename src/smallestai/{atoms => agents}/dnc/types/list_dnc_response_data.py (100%) rename src/smallestai/{atoms => agents}/dnc/types/list_dnc_response_data_entries_item.py (100%) rename src/smallestai/{atoms => agents}/dnc/types/list_dnc_response_data_pagination.py (100%) rename src/smallestai/{atoms => agents}/errors/__init__.py (100%) rename src/smallestai/{atoms => agents}/errors/bad_gateway_error.py (100%) rename src/smallestai/{atoms => agents}/errors/bad_request_error.py (100%) rename src/smallestai/{atoms => agents}/errors/conflict_error.py (100%) rename src/smallestai/{atoms => agents}/errors/forbidden_error.py (100%) rename src/smallestai/{atoms => agents}/errors/internal_server_error.py (100%) rename src/smallestai/{atoms => agents}/errors/locked_error.py (100%) rename src/smallestai/{atoms => agents}/errors/not_found_error.py (100%) rename src/smallestai/{atoms => agents}/errors/too_many_requests_error.py (100%) rename src/smallestai/{atoms => agents}/errors/unauthorized_error.py (100%) rename src/smallestai/{atoms => agents}/errors/unprocessable_entity_error.py (100%) rename src/smallestai/{atoms => agents}/helpers/__init__.py (50%) rename src/smallestai/{atoms => agents}/helpers/_envelope.py (100%) rename src/smallestai/{atoms => agents}/helpers/agent_tools.py (98%) rename src/smallestai/{atoms => agents}/helpers/audience.py (99%) rename src/smallestai/{atoms => agents}/helpers/call.py (95%) rename src/smallestai/{atoms => agents}/helpers/campaign.py (98%) rename src/smallestai/{atoms => agents}/helpers/kb.py (99%) rename src/smallestai/{atoms => agents}/helpers/versioning.py (96%) rename src/smallestai/{atoms => agents}/integrations/__init__.py (100%) rename src/smallestai/{atoms => agents}/integrations/client.py (94%) rename src/smallestai/{atoms => agents}/integrations/raw_client.py (100%) rename src/smallestai/{atoms => agents}/integrations/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/integrations/types/get_web_engage_details_response.py (100%) rename src/smallestai/{atoms => agents}/integrations/types/modify_web_engage_integration_response.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/__init__.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/client.py (95%) rename src/smallestai/{atoms => agents}/knowledge_base/raw_client.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/create_knowledge_base_response.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/delete_knowledge_base_response.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/delete_knowledgebase_knowledge_base_id_items_knowledge_base_item_id_response.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/delete_knowledgebase_knowledge_base_id_scraped_urls_knowledge_base_scraped_urls_id_response.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/extract_sitemap_urls_knowledge_base_response.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/extract_sitemap_urls_knowledge_base_response_data.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/get_knowledge_base_response.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/get_knowledgebase_id_items_response.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/get_knowledgebase_id_scraped_urls_response.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/get_knowledgebase_id_scraped_urls_response_data_item.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/list_knowledge_base_response.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/post_knowledgebase_compelete_file_upload_response.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/post_knowledgebase_get_presigned_url_response.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/post_knowledgebase_get_presigned_url_response_data.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/post_knowledgebase_id_items_upload_media_response.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/post_knowledgebase_id_response.py (100%) rename src/smallestai/{atoms => agents}/knowledge_base/types/scrape_urls_knowledge_base_response.py (100%) rename src/smallestai/{atoms => agents}/live_transcripts/__init__.py (100%) rename src/smallestai/{atoms => agents}/live_transcripts/client.py (97%) rename src/smallestai/{atoms => agents}/live_transcripts/raw_client.py (100%) rename src/smallestai/{atoms => agents}/live_transcripts/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/live_transcripts/types/subscribe_to_live_events_live_transcripts_response.py (100%) rename src/smallestai/{atoms => agents}/live_transcripts/types/subscribe_to_live_events_live_transcripts_response_event_type.py (100%) rename src/smallestai/{atoms => agents}/live_transcripts/types/subscribe_to_live_events_live_transcripts_response_metrics_item.py (100%) rename src/smallestai/{atoms => agents}/organization/__init__.py (100%) rename src/smallestai/{atoms => agents}/organization/client.py (95%) rename src/smallestai/{atoms => agents}/organization/raw_client.py (100%) rename src/smallestai/{atoms => agents}/organization/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/organization/types/get_organization_response.py (100%) rename src/smallestai/{atoms => agents}/organization/types/get_organization_response_data.py (100%) rename src/smallestai/{atoms => agents}/organization/types/get_organization_response_data_members_item.py (100%) rename src/smallestai/{atoms => agents}/organization/types/get_organization_response_data_subscription.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/__init__.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/client.py (95%) rename src/smallestai/{atoms => agents}/phone_numbers/raw_client.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/get_product_all_numbers_response.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/get_product_all_numbers_response_data.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/get_product_manage_subscription_response.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/get_product_manage_subscription_response_data.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/get_product_proration_amount_response.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/get_product_proration_amount_response_data.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/get_product_unpaid_invoices_response.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/get_product_unpaid_invoices_response_data.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/import_sip_phone_numbers_response.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/import_sip_phone_numbers_response_data.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/import_sip_phone_numbers_response_data_attributes.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/import_sip_phone_numbers_response_data_product_type.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/list_phone_numbers_response.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/list_phone_numbers_response_data_item.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/list_phone_numbers_response_data_item_attributes.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/list_phone_numbers_response_data_item_attributes_provider.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/list_phone_numbers_response_data_item_product_type.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/release_phone_numbers_response.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/release_phone_numbers_response_data.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/rent_phone_numbers_request_provider.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/rent_phone_numbers_response.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/rent_phone_numbers_response_data.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/search_rentable_phone_numbers_request_provider.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/search_rentable_phone_numbers_response.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/search_rentable_phone_numbers_response_data_item.py (100%) rename src/smallestai/{atoms => agents}/phone_numbers/types/search_rentable_phone_numbers_response_data_item_provider.py (100%) rename src/smallestai/{atoms => agents}/prompt_scoring/__init__.py (100%) rename src/smallestai/{atoms => agents}/prompt_scoring/client.py (96%) rename src/smallestai/{atoms => agents}/prompt_scoring/raw_client.py (100%) rename src/smallestai/{atoms => agents}/prompt_scoring/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/prompt_scoring/types/post_prompt_scoring_score_request.py (100%) rename src/smallestai/{atoms => agents}/prompt_scoring/types/post_prompt_scoring_score_request_draft_id.py (100%) rename src/smallestai/{atoms => agents}/prompt_scoring/types/post_prompt_scoring_score_request_version_id.py (100%) rename src/smallestai/{atoms => agents}/prompt_scoring/types/post_prompt_scoring_score_response.py (100%) rename src/smallestai/{atoms => agents}/prompt_scoring/types/post_prompt_scoring_score_response_data.py (100%) rename src/smallestai/{atoms => agents}/prompt_scoring/types/post_prompt_scoring_score_response_data_band.py (100%) rename src/smallestai/{atoms => agents}/prompt_scoring/types/post_prompt_scoring_score_response_data_dimensions_item.py (100%) rename src/smallestai/{atoms => agents}/prompt_scoring/types/post_prompt_scoring_score_response_data_dimensions_item_level.py (100%) rename src/smallestai/{atoms => agents}/prompt_scoring/types/post_prompt_scoring_score_response_data_overall_grade.py (100%) rename src/smallestai/{atoms => agents}/raw_client.py (87%) rename src/smallestai/{atoms => agents}/realtime/__init__.py (100%) rename src/smallestai/{atoms => agents}/realtime/client.py (98%) rename src/smallestai/{atoms => agents}/realtime/raw_client.py (100%) rename src/smallestai/{atoms => agents}/realtime/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/realtime/types/register_call_realtime_request_mode.py (100%) rename src/smallestai/{atoms => agents}/realtime/types/register_call_realtime_request_variables_value.py (100%) rename src/smallestai/{atoms => agents}/realtime/types/register_call_realtime_response.py (100%) rename src/smallestai/{atoms => agents}/realtime/types/register_call_realtime_response_data.py (100%) rename src/smallestai/{atoms => agents}/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_background_sound.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_config_source.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_denoising_config.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_language.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_language_default.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_language_switching.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_llm_idle_timeout_config.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_pre_call_api.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_pre_call_api_method.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_pre_call_api_response_variables_item.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_pronunciation_dicts_item.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_redaction_config.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_resolved_config.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_resolved_config_default_language.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_session_timeout_config.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_slm_model.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_smart_turn_config.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_synthesizer.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_synthesizer_voice_config.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_synthesizer_voice_config_gender.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_synthesizer_voice_config_model.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_timezone.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_versioned_workflow.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_voice_detection_config.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_voice_mail_detection_config.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_widget_config.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_widget_config_mode.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_widget_config_position.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_widget_config_size.py (100%) rename src/smallestai/{atoms => agents}/types/agent_dto_widget_config_theme.py (100%) rename src/smallestai/{atoms => agents}/types/agent_version.py (100%) rename src/smallestai/{atoms => agents}/types/agent_version_blocks.py (100%) rename src/smallestai/{atoms => agents}/types/agent_version_diff.py (100%) rename src/smallestai/{atoms => agents}/types/agent_version_diff_diffs_item.py (100%) rename src/smallestai/{atoms => agents}/types/agent_version_diff_diffs_item_changes_item.py (100%) rename src/smallestai/{atoms => agents}/types/agent_version_diff_diffs_item_changes_item_new_value.py (100%) rename src/smallestai/{atoms => agents}/types/agent_version_diff_diffs_item_changes_item_old_value.py (100%) rename src/smallestai/{atoms => agents}/types/agent_version_metrics.py (100%) rename src/smallestai/{atoms => agents}/types/agent_version_metrics_comparison.py (100%) rename src/smallestai/{atoms => agents}/types/agent_version_metrics_comparison_metrics.py (100%) rename src/smallestai/{atoms => agents}/types/agent_version_metrics_comparison_metrics_deltas.py (100%) rename src/smallestai/{atoms => agents}/types/agent_version_status.py (100%) rename src/smallestai/{atoms => agents}/types/analytics_date_range.py (100%) rename src/smallestai/{atoms => agents}/types/analytics_trend_metric.py (100%) rename src/smallestai/{atoms => agents}/types/api_response.py (100%) rename src/smallestai/{atoms => agents}/types/bad_request_error_body.py (100%) rename src/smallestai/{atoms => agents}/types/bad_request_error_body_error.py (100%) rename src/smallestai/{atoms => agents}/types/bad_request_error_response.py (100%) rename src/smallestai/{atoms => agents}/types/billing_balance_response.py (100%) rename src/smallestai/{atoms => agents}/types/billing_balance_response_data.py (100%) rename src/smallestai/{atoms => agents}/types/billing_invoice_list_response.py (100%) rename src/smallestai/{atoms => agents}/types/billing_invoice_pdf_response.py (100%) rename src/smallestai/{atoms => agents}/types/billing_invoice_pdf_response_data.py (100%) rename src/smallestai/{atoms => agents}/types/billing_ledger_entry.py (100%) rename src/smallestai/{atoms => agents}/types/billing_ledger_entry_transaction_type.py (100%) rename src/smallestai/{atoms => agents}/types/billing_ledger_response.py (100%) rename src/smallestai/{atoms => agents}/types/billing_ledger_response_data.py (100%) rename src/smallestai/{atoms => agents}/types/billing_ledger_response_data_period.py (100%) rename src/smallestai/{atoms => agents}/types/billing_ledger_response_data_summary.py (100%) rename src/smallestai/{atoms => agents}/types/billing_usage_breakdown_response.py (100%) rename src/smallestai/{atoms => agents}/types/billing_usage_breakdown_response_data.py (100%) rename src/smallestai/{atoms => agents}/types/branch.py (100%) rename src/smallestai/{atoms => agents}/types/branch_status.py (100%) rename src/smallestai/{atoms => agents}/types/branch_summary.py (100%) rename src/smallestai/{atoms => agents}/types/call_action.py (100%) rename src/smallestai/{atoms => agents}/types/call_action_action_type.py (100%) rename src/smallestai/{atoms => agents}/types/call_action_category.py (100%) rename src/smallestai/{atoms => agents}/types/call_action_condition.py (100%) rename src/smallestai/{atoms => agents}/types/call_action_condition_operator.py (100%) rename src/smallestai/{atoms => agents}/types/call_action_config.py (100%) rename src/smallestai/{atoms => agents}/types/compliance_application.py (100%) rename src/smallestai/{atoms => agents}/types/compliance_application_number_type.py (100%) rename src/smallestai/{atoms => agents}/types/compliance_application_status.py (100%) rename src/smallestai/{atoms => agents}/types/compliance_application_user_type.py (100%) rename src/smallestai/{atoms => agents}/types/compliance_requirement.py (100%) rename src/smallestai/{atoms => agents}/types/conflict_error_body.py (100%) rename src/smallestai/{atoms => agents}/types/conflict_error_response.py (100%) rename src/smallestai/{atoms => agents}/types/diff_change.py (100%) rename src/smallestai/{atoms => agents}/types/diff_result.py (100%) rename src/smallestai/{atoms => agents}/types/diff_section.py (100%) rename src/smallestai/{atoms => agents}/types/disposition_metric.py (100%) rename src/smallestai/{atoms => agents}/types/disposition_metric_disposition_metric_type.py (100%) rename src/smallestai/{atoms => agents}/types/draft_conflict_error.py (100%) rename src/smallestai/{atoms => agents}/types/draft_conflict_error_data.py (100%) rename src/smallestai/{atoms => agents}/types/draft_conflict_error_data_conflict.py (100%) rename src/smallestai/{atoms => agents}/types/draft_detail.py (100%) rename src/smallestai/{atoms => agents}/types/draft_detail_edit_history_item.py (100%) rename src/smallestai/{atoms => agents}/types/draft_edit_history_entry.py (100%) rename src/smallestai/{atoms => agents}/types/forbidden_error_body.py (100%) rename src/smallestai/{atoms => agents}/types/internal_server_error_body.py (100%) rename src/smallestai/{atoms => agents}/types/internal_server_error_response.py (100%) rename src/smallestai/{atoms => agents}/types/knowledge_base.py (100%) rename src/smallestai/{atoms => agents}/types/knowledge_base_item.py (100%) rename src/smallestai/{atoms => agents}/types/knowledge_base_item_item_type.py (100%) rename src/smallestai/{atoms => agents}/types/knowledge_base_item_processing_status.py (100%) rename src/smallestai/{atoms => agents}/types/knowledge_base_processing_status.py (100%) rename src/smallestai/{atoms => agents}/types/locked_error_response.py (100%) rename src/smallestai/{atoms => agents}/types/locked_error_response_error_type.py (100%) rename src/smallestai/{atoms => agents}/types/not_found_error_body.py (100%) rename src/smallestai/{atoms => agents}/types/not_found_error_body_error.py (100%) rename src/smallestai/{atoms => agents}/types/post_call_analytics_config.py (100%) rename src/smallestai/{atoms => agents}/types/post_call_analytics_config_success_metrics_item.py (100%) rename src/smallestai/{atoms => agents}/types/post_call_analytics_config_success_metrics_item_success_metric_type.py (100%) rename src/smallestai/{atoms => agents}/types/product.py (100%) rename src/smallestai/{atoms => agents}/types/product_attributes.py (100%) rename src/smallestai/{atoms => agents}/types/product_attributes_provider.py (100%) rename src/smallestai/{atoms => agents}/types/product_product_type.py (100%) rename src/smallestai/{atoms => agents}/types/prompt_score.py (100%) rename src/smallestai/{atoms => agents}/types/prompt_score_dimensions_item.py (100%) rename src/smallestai/{atoms => agents}/types/publish_result.py (100%) rename src/smallestai/{atoms => agents}/types/publish_result_state.py (100%) rename src/smallestai/{atoms => agents}/types/required_document_type.py (100%) rename src/smallestai/{atoms => agents}/types/required_document_type_required_fields_item.py (100%) rename src/smallestai/{atoms => agents}/types/revision.py (100%) rename src/smallestai/{atoms => agents}/types/revision_pending_publish.py (100%) rename src/smallestai/{atoms => agents}/types/revision_pending_publish_state.py (100%) rename src/smallestai/{atoms => agents}/types/revision_security_check.py (100%) rename src/smallestai/{atoms => agents}/types/revision_status.py (100%) rename src/smallestai/{atoms => agents}/types/single_prompt_config.py (100%) rename src/smallestai/{atoms => agents}/types/single_prompt_data.py (100%) rename src/smallestai/{atoms => agents}/types/test_call_request.py (100%) rename src/smallestai/{atoms => agents}/types/test_call_request_mode.py (100%) rename src/smallestai/{atoms => agents}/types/test_call_result.py (100%) rename src/smallestai/{atoms => agents}/types/too_many_requests_error_body.py (100%) rename src/smallestai/{atoms => agents}/types/too_many_requests_error_body_rate_limit.py (100%) rename src/smallestai/{atoms => agents}/types/tool.py (100%) rename src/smallestai/{atoms => agents}/types/tool_headers_array_item.py (100%) rename src/smallestai/{atoms => agents}/types/tool_llm_parameters_item.py (100%) rename src/smallestai/{atoms => agents}/types/tool_llm_parameters_item_type.py (100%) rename src/smallestai/{atoms => agents}/types/tool_method.py (100%) rename src/smallestai/{atoms => agents}/types/tool_on_hold_music.py (100%) rename src/smallestai/{atoms => agents}/types/tool_query_params_item.py (100%) rename src/smallestai/{atoms => agents}/types/tool_response_variables_item.py (100%) rename src/smallestai/{atoms => agents}/types/tool_transfer_option.py (100%) rename src/smallestai/{atoms => agents}/types/tool_transfer_option_private_handoff_option.py (100%) rename src/smallestai/{atoms => agents}/types/tool_transfer_option_private_handoff_option_type.py (100%) rename src/smallestai/{atoms => agents}/types/tool_transfer_option_public_handoff_option.py (100%) rename src/smallestai/{atoms => agents}/types/tool_transfer_option_public_handoff_option_type.py (100%) rename src/smallestai/{atoms => agents}/types/tool_transfer_option_type.py (100%) rename src/smallestai/{atoms => agents}/types/tool_type.py (100%) rename src/smallestai/{atoms => agents}/types/tool_variables_extraction_schema_item.py (100%) rename src/smallestai/{atoms => agents}/types/tool_variables_extraction_schema_item_type.py (100%) rename src/smallestai/{atoms => agents}/types/unauthorized_error_response.py (100%) rename src/smallestai/{atoms => agents}/types/version_blocks.py (100%) rename src/smallestai/{atoms => agents}/types/versioning_v2migration_required_response.py (100%) rename src/smallestai/{atoms => agents}/types/versioning_v2migration_required_response_error_type.py (100%) rename src/smallestai/{atoms => agents}/types/web_engage_integration_set.py (100%) rename src/smallestai/{atoms => agents}/types/webhook.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_agent.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_analytics_completed.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_analytics_completed_metadata.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_analytics_completed_metadata_analytics.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_analytics_completed_metadata_event_type.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_analytics_metric.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_analytics_metric_disposition_metric_type.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_analytics_metric_value.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_call_data.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_call_data_call_direction.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_call_data_call_status.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_envelope.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_post_conversation.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_post_conversation_metadata.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_post_conversation_metadata_event_type.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_pre_conversation.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_pre_conversation_metadata.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_pre_conversation_metadata_event_type.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_transcript_turn.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_event_transcript_turn_role.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_status.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_subscription.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_subscription_event_type.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_subscription_populated.py (100%) rename src/smallestai/{atoms => agents}/types/webhook_subscription_populated_event_type.py (100%) rename src/smallestai/{atoms => agents}/types/widget_config.py (100%) rename src/smallestai/{atoms => agents}/types/widget_config_mode.py (100%) rename src/smallestai/{atoms => agents}/types/widget_config_position.py (100%) rename src/smallestai/{atoms => agents}/types/widget_config_size.py (100%) rename src/smallestai/{atoms => agents}/types/widget_config_theme.py (100%) rename src/smallestai/{atoms => agents}/types/workflow_graph_data.py (100%) rename src/smallestai/{atoms => agents}/types/workflow_graph_data_edges_item.py (100%) rename src/smallestai/{atoms => agents}/types/workflow_graph_data_nodes_item.py (100%) rename src/smallestai/{atoms => agents}/types/workflow_graph_data_nodes_item_position.py (100%) rename src/smallestai/{atoms => agents}/types/workflow_type.py (100%) rename src/smallestai/{atoms => agents}/user/__init__.py (100%) rename src/smallestai/{atoms => agents}/user/client.py (96%) rename src/smallestai/{atoms => agents}/user/raw_client.py (100%) rename src/smallestai/{atoms => agents}/user/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/user/types/get_user_response.py (100%) rename src/smallestai/{atoms => agents}/user/types/get_user_response_data.py (100%) rename src/smallestai/{atoms => agents}/webhooks/__init__.py (100%) rename src/smallestai/{atoms => agents}/webhooks/client.py (96%) rename src/smallestai/{atoms => agents}/webhooks/raw_client.py (100%) rename src/smallestai/{atoms => agents}/webhooks/types/__init__.py (100%) rename src/smallestai/{atoms => agents}/webhooks/types/create_webhooks_request_events_item.py (100%) rename src/smallestai/{atoms => agents}/webhooks/types/create_webhooks_request_events_item_event_type.py (100%) rename src/smallestai/{atoms => agents}/webhooks/types/create_webhooks_response.py (100%) rename src/smallestai/{atoms => agents}/webhooks/types/delete_agent_agent_id_webhook_subscriptions_response.py (100%) rename src/smallestai/{atoms => agents}/webhooks/types/delete_webhooks_response.py (100%) rename src/smallestai/{atoms => agents}/webhooks/types/get_agent_agent_id_webhook_subscriptions_response.py (100%) rename src/smallestai/{atoms => agents}/webhooks/types/get_webhook_response.py (100%) rename src/smallestai/{atoms => agents}/webhooks/types/get_webhook_response_data.py (100%) rename src/smallestai/{atoms => agents}/webhooks/types/post_agent_agent_id_webhook_subscriptions_request_event_types_item.py (100%) rename src/smallestai/{atoms => agents}/webhooks/types/post_agent_agent_id_webhook_subscriptions_response.py (100%) rename src/smallestai/{atoms => agents}/webhooks/types/update_webhooks_response.py (100%) delete mode 100644 src/smallestai/atoms/crew/__init__.py delete mode 100644 src/smallestai/atoms/crew/nodes/__init__.py rename src/smallestai/{waves => speech}/__init__.py (100%) rename src/smallestai/{waves => speech}/client.py (91%) rename src/smallestai/{waves => speech}/electron/__init__.py (100%) rename src/smallestai/{waves => speech}/electron/client.py (98%) rename src/smallestai/{waves => speech}/electron/raw_client.py (100%) rename src/smallestai/{waves => speech}/electron/types/__init__.py (100%) rename src/smallestai/{waves => speech}/electron/types/chat_completion_request_response_format.py (100%) rename src/smallestai/{waves => speech}/electron/types/chat_completion_request_response_format_type.py (100%) rename src/smallestai/{waves => speech}/electron/types/chat_completion_request_stop.py (100%) rename src/smallestai/{waves => speech}/electron/types/chat_completion_request_stream_options.py (100%) rename src/smallestai/{waves => speech}/electron/types/chat_completion_request_tool_choice.py (100%) rename src/smallestai/{waves => speech}/electron/types/chat_completion_request_tool_choice_function.py (100%) rename src/smallestai/{waves => speech}/electron/types/chat_completion_request_tool_choice_function_function.py (100%) rename src/smallestai/{waves => speech}/electron/types/chat_completion_request_tool_choice_function_type.py (100%) rename src/smallestai/{waves => speech}/electron/types/chat_completion_request_tool_choice_zero.py (100%) rename src/smallestai/{waves => speech}/errors/__init__.py (100%) rename src/smallestai/{waves => speech}/errors/bad_gateway_error.py (100%) rename src/smallestai/{waves => speech}/errors/bad_request_error.py (100%) rename src/smallestai/{waves => speech}/errors/content_too_large_error.py (100%) rename src/smallestai/{waves => speech}/errors/forbidden_error.py (100%) rename src/smallestai/{waves => speech}/errors/internal_server_error.py (100%) rename src/smallestai/{waves => speech}/errors/service_unavailable_error.py (100%) rename src/smallestai/{waves => speech}/errors/too_many_requests_error.py (100%) rename src/smallestai/{waves => speech}/errors/unauthorized_error.py (100%) rename src/smallestai/{waves => speech}/helpers/__init__.py (100%) rename src/smallestai/{waves => speech}/helpers/streaming_stt.py (96%) rename src/smallestai/{waves => speech}/helpers/tts.py (94%) rename src/smallestai/{waves => speech}/raw_client.py (94%) rename src/smallestai/{waves => speech}/speech_to_speech/__init__.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/client.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/raw_client.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/socket_client.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/__init__.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/conversation_item_added.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/conversation_item_added_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/conversation_item_create.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/conversation_item_create_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/conversation_item_done.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/conversation_item_done_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/error_event.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/error_event_error.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/error_event_error_code.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/error_event_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/input_audio_buffer_append.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/input_audio_buffer_append_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/input_audio_buffer_speech_started.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/input_audio_buffer_speech_started_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/input_audio_buffer_speech_stopped.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/input_audio_buffer_speech_stopped_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_cancel.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_cancel_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_create.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_create_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_created.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_created_response.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_created_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_done.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_done_response.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_done_response_status.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_done_response_status_details.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_done_response_status_details_error.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_done_response_status_details_reason.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_done_response_usage.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_done_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_function_call_arguments_delta.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_function_call_arguments_delta_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_function_call_arguments_done.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_function_call_arguments_done_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_output_audio_delta.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_output_audio_delta_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_output_audio_done.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/response_output_audio_done_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/session_configure.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/session_configure_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/session_configured.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/session_configured_session.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/session_configured_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/session_created.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/session_created_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/session_update.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/session_update_session.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/session_update_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/session_updated.py (100%) rename src/smallestai/{waves => speech}/speech_to_speech/types/session_updated_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/__init__.py (95%) rename src/smallestai/{waves => speech}/speech_to_text/client.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/raw_client.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/socket_client.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/__init__.py (95%) rename src/smallestai/{waves => speech}/speech_to_text/types/close_stream.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/close_stream_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/finalize_signal.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/finalize_signal_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/transcribe_request_emotion_detection.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/transcribe_request_gender_detection.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/transcribe_request_language.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/transcribe_request_model.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/transcribe_request_redact_pci.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/transcribe_request_redact_pii.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/transcribe_request_webhook_method.py (100%) create mode 100644 src/smallestai/speech/speech_to_text/types/transcribe_request_x_expire_content.py rename src/smallestai/{waves => speech}/speech_to_text/types/transcribe_response.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/transcription_error_event.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/transcription_error_event_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/transcription_event.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/transcription_event_type.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/transcription_event_utterances_item.py (100%) rename src/smallestai/{waves => speech}/speech_to_text/types/transcription_event_words_item.py (100%) rename src/smallestai/{waves => speech}/stream_tts.py (97%) rename src/smallestai/{waves => speech}/streaming_tts/__init__.py (100%) rename src/smallestai/{waves => speech}/streaming_tts/client.py (100%) rename src/smallestai/{waves => speech}/streaming_tts/raw_client.py (100%) rename src/smallestai/{waves => speech}/streaming_tts/socket_client.py (100%) rename src/smallestai/{waves => speech}/streaming_tts/types/__init__.py (100%) rename src/smallestai/{waves => speech}/streaming_tts/types/stream_tts_request_message.py (100%) rename src/smallestai/{waves => speech}/streaming_tts/types/stream_tts_request_message_language.py (100%) rename src/smallestai/{waves => speech}/streaming_tts/types/stream_tts_response_message.py (100%) rename src/smallestai/{waves => speech}/streaming_tts/types/stream_tts_response_message_data.py (100%) rename src/smallestai/{waves => speech}/streaming_tts/types/stream_tts_response_message_error.py (100%) rename src/smallestai/{waves => speech}/streaming_tts/types/stream_tts_response_message_status.py (100%) rename src/smallestai/{waves => speech}/tts/__init__.py (100%) rename src/smallestai/{waves => speech}/tts/client.py (92%) rename src/smallestai/{waves => speech}/tts/raw_client.py (92%) rename src/smallestai/{waves => speech}/tts/socket_client.py (100%) rename src/smallestai/{waves => speech}/tts/types/__init__.py (100%) rename src/smallestai/{waves => speech}/tts/types/tts_request_message.py (100%) rename src/smallestai/{waves => speech}/tts/types/tts_request_message_language.py (100%) rename src/smallestai/{waves => speech}/tts/types/tts_request_message_model.py (100%) rename src/smallestai/{waves => speech}/tts/types/tts_request_message_number_pronunciation_language.py (100%) rename src/smallestai/{waves => speech}/tts/types/tts_response_message.py (100%) rename src/smallestai/{waves => speech}/tts/types/tts_response_message_data.py (100%) rename src/smallestai/{waves => speech}/tts/types/tts_response_message_status.py (100%) rename src/smallestai/{waves => speech}/types/__init__.py (65%) rename src/smallestai/{waves => speech}/types/async_accepted.py (100%) rename src/smallestai/{waves => speech}/types/audio_chunk.py (74%) rename src/smallestai/{waves => speech}/types/audio_chunk_data.py (65%) rename src/smallestai/{waves => speech}/types/audio_chunk_status.py (100%) rename src/smallestai/{waves => speech}/types/bad_request_error_body.py (100%) rename src/smallestai/{waves => speech}/types/chat_completion.py (100%) rename src/smallestai/{waves => speech}/types/chat_completion_choices_item.py (100%) rename src/smallestai/{waves => speech}/types/chat_completion_choices_item_finish_reason.py (100%) rename src/smallestai/{waves => speech}/types/chat_completion_object.py (100%) create mode 100644 src/smallestai/speech/types/completion_status.py rename src/smallestai/{waves => speech}/types/completion_status_status.py (100%) rename src/smallestai/{waves => speech}/types/conversation_item.py (100%) rename src/smallestai/{waves => speech}/types/conversation_item_content_item.py (100%) rename src/smallestai/{waves => speech}/types/conversation_item_content_item_type.py (100%) rename src/smallestai/{waves => speech}/types/conversation_item_role.py (100%) rename src/smallestai/{waves => speech}/types/conversation_item_status.py (100%) rename src/smallestai/{waves => speech}/types/conversation_item_type.py (100%) create mode 100644 src/smallestai/speech/types/create_voice_clone_speech_request_model.py create mode 100644 src/smallestai/speech/types/create_voice_clone_speech_response.py create mode 100644 src/smallestai/speech/types/create_voice_clone_speech_response_data.py create mode 100644 src/smallestai/speech/types/create_voice_clone_speech_response_data_samples_item.py create mode 100644 src/smallestai/speech/types/create_voice_clone_speech_response_data_status.py rename src/smallestai/{waves => speech}/types/create_voice_clone_waves_request_model.py (100%) rename src/smallestai/{waves => speech}/types/create_voice_clone_waves_response.py (100%) rename src/smallestai/{waves => speech}/types/create_voice_clone_waves_response_data.py (100%) rename src/smallestai/{waves => speech}/types/create_voice_clone_waves_response_data_samples_item.py (100%) rename src/smallestai/{waves => speech}/types/create_voice_clone_waves_response_data_status.py (100%) rename src/smallestai/{waves => speech}/types/delete_pronunciation_dict_response.py (100%) rename src/smallestai/{waves => speech}/types/electron_message.py (100%) rename src/smallestai/{waves => speech}/types/electron_tool_call.py (100%) rename src/smallestai/{waves => speech}/types/electron_tool_call_function.py (100%) rename src/smallestai/{waves => speech}/types/electron_tool_call_type.py (100%) rename src/smallestai/{waves => speech}/types/error.py (100%) rename src/smallestai/{waves => speech}/types/error_error.py (100%) rename src/smallestai/{waves => speech}/types/error_error_details_item.py (100%) rename src/smallestai/{waves => speech}/types/error_response.py (80%) rename src/smallestai/{waves => speech}/types/error_response_error.py (76%) rename src/smallestai/{waves => speech}/types/error_response_status.py (100%) create mode 100644 src/smallestai/speech/types/get_voices_speech_request_model.py rename src/smallestai/{waves/types/completion_status.py => speech/types/get_voices_speech_response.py} (62%) create mode 100644 src/smallestai/speech/types/get_voices_speech_response_voices_item.py create mode 100644 src/smallestai/speech/types/get_voices_speech_response_voices_item_tags.py rename src/smallestai/{waves => speech}/types/get_voices_waves_request_model.py (100%) rename src/smallestai/{waves => speech}/types/get_voices_waves_response.py (100%) rename src/smallestai/{waves => speech}/types/get_voices_waves_response_voices_item.py (100%) rename src/smallestai/{waves => speech}/types/get_voices_waves_response_voices_item_tags.py (100%) rename src/smallestai/{waves => speech}/types/internal_server_error_body.py (100%) rename src/smallestai/{waves => speech}/types/internal_server_error_body_error_code.py (100%) rename src/smallestai/{waves => speech}/types/lightning_large_request.py (100%) rename src/smallestai/{waves => speech}/types/lightning_large_request_language.py (100%) rename src/smallestai/{waves => speech}/types/lightning_large_request_output_format.py (100%) rename src/smallestai/{waves => speech}/types/lightning_request.py (100%) rename src/smallestai/{waves => speech}/types/lightning_request_language.py (100%) rename src/smallestai/{waves => speech}/types/lightning_request_output_format.py (100%) rename src/smallestai/{waves => speech}/types/lightningv2request.py (100%) rename src/smallestai/{waves => speech}/types/lightningv2request_language.py (100%) rename src/smallestai/{waves => speech}/types/lightningv2request_output_format.py (100%) create mode 100644 src/smallestai/speech/types/list_voice_clones_speech_response.py create mode 100644 src/smallestai/speech/types/list_voice_clones_speech_response_data_item.py create mode 100644 src/smallestai/speech/types/list_voice_clones_speech_response_data_item_cloning_type.py create mode 100644 src/smallestai/speech/types/list_voice_clones_speech_response_data_item_status.py rename src/smallestai/{waves => speech}/types/list_voice_clones_waves_response.py (100%) rename src/smallestai/{waves => speech}/types/list_voice_clones_waves_response_data_item.py (100%) rename src/smallestai/{waves => speech}/types/list_voice_clones_waves_response_data_item_cloning_type.py (100%) rename src/smallestai/{waves => speech}/types/list_voice_clones_waves_response_data_item_status.py (100%) rename src/smallestai/{waves => speech}/types/pronunciation_dict.py (100%) rename src/smallestai/{waves => speech}/types/pronunciation_item.py (100%) rename src/smallestai/{waves => speech}/types/sample_rate.py (100%) rename src/smallestai/{waves => speech}/types/session_config.py (100%) rename src/smallestai/{waves => speech}/types/session_config_voice.py (100%) rename src/smallestai/{waves => speech}/types/streaming_tts_config.py (100%) rename src/smallestai/{waves => speech}/types/stt_error_response.py (100%) create mode 100644 src/smallestai/speech/types/synthesize_lightning_large_speech_request_output_format.py rename src/smallestai/{waves => speech}/types/synthesize_lightning_large_waves_request_output_format.py (100%) create mode 100644 src/smallestai/speech/types/synthesize_lightning_speech_request_output_format.py create mode 100644 src/smallestai/speech/types/synthesize_lightning_v2speech_request_output_format.py rename src/smallestai/{waves => speech}/types/synthesize_lightning_v2waves_request_output_format.py (100%) rename src/smallestai/{waves => speech}/types/synthesize_lightning_waves_request_output_format.py (100%) create mode 100644 src/smallestai/speech/types/synthesize_sse_lightning_large_speech_request_output_format.py rename src/smallestai/{waves => speech}/types/synthesize_sse_lightning_large_waves_request_output_format.py (100%) create mode 100644 src/smallestai/speech/types/synthesize_sse_lightning_v2speech_request_output_format.py rename src/smallestai/{waves => speech}/types/synthesize_sse_lightning_v2waves_request_output_format.py (100%) create mode 100644 src/smallestai/speech/types/synthesize_sse_tts_speech_request_x_expire_content.py create mode 100644 src/smallestai/speech/types/synthesize_tts_speech_request_x_expire_content.py rename src/smallestai/{waves => speech}/types/tool.py (100%) rename src/smallestai/{waves => speech}/types/tool_type.py (100%) rename src/smallestai/{waves => speech}/types/transcription_response.py (100%) rename src/smallestai/{waves => speech}/types/transcription_response_metadata.py (100%) rename src/smallestai/{waves => speech}/types/tts_error.py (100%) rename src/smallestai/{waves => speech}/types/tts_request.py (100%) rename src/smallestai/{waves => speech}/types/tts_request_language.py (100%) rename src/smallestai/{waves => speech}/types/tts_request_model.py (100%) rename src/smallestai/{waves => speech}/types/tts_request_number_pronunciation_language.py (100%) rename src/smallestai/{waves => speech}/types/tts_request_output_format.py (100%) rename src/smallestai/{waves => speech}/types/unauthorized_error_body.py (100%) rename src/smallestai/{waves => speech}/types/update_pronunciation_dict_response.py (100%) rename src/smallestai/{waves => speech}/types/usage.py (100%) rename src/smallestai/{waves => speech}/types/usage_prompt_tokens_details.py (100%) rename src/smallestai/{waves => speech}/types/utterance.py (100%) rename src/smallestai/{waves => speech}/types/word.py (100%) create mode 100644 tests/custom/test_6_0_rename_compat.py diff --git a/.fernignore b/.fernignore index 8718b2d84..956de5736 100644 --- a/.fernignore +++ b/.fernignore @@ -4,8 +4,8 @@ poetry.lock pyproject.toml # Customer-owned directories (Track A's fix makes ** patterns work) -src/smallestai/atoms/crew/** -src/smallestai/atoms/helpers/** +src/smallestai/agents/crew/** +src/smallestai/agents/helpers/** src/smallestai/cli/** # Observability customizations (source attribution + real SDK version header; @@ -16,19 +16,19 @@ src/smallestai/version.py # DevX: actionable error messages + PlanNotEntitledError specialization. src/smallestai/core/api_error.py src/smallestai/core/_error_hints.py -src/smallestai/atoms/errors/bad_request_error.py +src/smallestai/agents/errors/bad_request_error.py src/smallestai/errors.py # Customer-added files (generator never produces these) -src/smallestai/waves/stream_tts.py -src/smallestai/waves/types/sample_rate.py +src/smallestai/speech/stream_tts.py +src/smallestai/speech/types/sample_rate.py # Files with non-IR-expressible customizations # (shim block in waves/__init__.py lazy-loads the WavesStreamingTTS compat shim). # client.py/raw_client.py are now regen-owned: the unified `tts` client streams bytes # natively (verified 282KB audio on prod), so the old SampleRate/streaming override is # obsolete. Dropped from .fernignore in 5.2.0 so future regens keep them current. -src/smallestai/waves/__init__.py +src/smallestai/speech/__init__.py # (Sub-package __init__ stopgaps removed in 5.2.0: exclude_types_from_init_exports # was flipped to false, so the generator now exports these types natively and the @@ -58,7 +58,7 @@ RELEASE.md # Pre-release verification harness (hand-written) scripts/** Makefile -src/smallestai/waves/helpers/** +src/smallestai/speech/helpers/** # Hand-written README (do not regenerate) README.md diff --git a/MIGRATION.md b/MIGRATION.md index c4a6e2658..ef616bf48 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -1,3 +1,53 @@ +# Migrating to smallestai 6.0.0 + +6.0.0 renames the two product surfaces to industry-standard names: + +- `atoms` → **`agents`** (the voice-agent platform) +- `waves` → **`speech`** (TTS / STT / voices) + +The wire API, auth, method signatures, and observability are all unchanged. The +old names keep working as **deprecated aliases** that emit a `DeprecationWarning`, +so existing code runs untouched. The aliases are removed in the next major +(7.0.0) — do the rename at your convenience before then. + +## What to change + +| Before (≤5.x) | After (6.0.0) | +|---|---| +| `client.atoms.agents.list_agents()` | `client.agents.agents.list_agents()` | +| `client.atoms.calls.start_outbound_call(...)` | `client.agents.calls.start_outbound_call(...)` | +| `client.waves.text_to_speech(...)` | `client.speech.text_to_speech(...)` | +| `from smallestai.atoms.helpers import AgentTools` | `from smallestai.agents.helpers import AgentTools` | +| `from smallestai.waves.helpers import synthesize_to_file` | `from smallestai.speech.helpers import synthesize_to_file` | +| `import smallestai.atoms.crew` | `import smallestai.agents.crew` | + +A blunt find-and-replace across your codebase is safe: + +```bash +# client attributes and imports +grep -rl 'smallestai\.atoms\|\.atoms\.\|smallestai\.waves\|\.waves\.' . \ + | xargs sed -i '' -e 's/smallestai\.atoms/smallestai.agents/g' \ + -e 's/smallestai\.waves/smallestai.speech/g' \ + -e 's/\.atoms\./.agents./g' \ + -e 's/\.waves\./.speech./g' +``` + +To find remaining deprecated usage, run Python with warnings visible: + +```bash +python -W error::DeprecationWarning your_script.py +``` + +## Not affected + +- `SmallestAI(api_key=...)` construction and the `SMALLEST_API_KEY` env var. +- Error types (`PlanNotEntitledError`, `BadRequestError`, …) and their import paths. +- Observability headers (`X-Source`, `X-Fern-SDK-Version`). +- The `SmallestAIEnvironment` fields (`atoms`, `waves`, `waves_ws`, `payment`) — these + are wire/URL config, not the SDK surface, and are unchanged. + +--- + # Migrating to smallestai 5.0.0 5.0.0 makes the Atoms client surface consistent and discoverable. The wire API is diff --git a/changelog.md b/changelog.md index 0feb8ae3a..a4c122ef6 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,21 @@ +## 6.0.0 - 2026-08-06 + +Namespace rename to industry-standard names. The wire API is unchanged; this is +an **SDK-surface** rename with soft backward-compat. + +* **BREAKING (soft): `atoms` → `agents`, `waves` → `speech`.** The client + surfaces are now `client.agents.*` and `client.speech.*`; the top-level + subpackages are `smallestai.agents` and `smallestai.speech`. +* **back-compat**: the old names keep working as deprecated aliases and emit a + `DeprecationWarning`. This covers the client attributes (`client.atoms`, + `client.waves`), attribute access (`smallestai.atoms`), and deep imports + (`from smallestai.waves.helpers import synthesize_to_file`). Deprecated aliases + are removed in the next major. See `MIGRATION.md`. +* **tooling**: `ruff` lint/format applied across the tree (imports sorted, unused + imports removed). A `uv` build-system migration is planned separately. +* **unchanged**: observability headers (`X-Source`, `X-Fern-SDK-Version`), auth, + error types (`PlanNotEntitledError` etc.), and every method signature. + ## 5.5.0 - 2026-08-05 DevX pass (backward-compatible). diff --git a/examples/agent_versioning_lifecycle.py b/examples/agent_versioning_lifecycle.py index 0d04c33b2..b6c9730bc 100644 --- a/examples/agent_versioning_lifecycle.py +++ b/examples/agent_versioning_lifecycle.py @@ -16,12 +16,12 @@ import os from smallestai import SmallestAI -from smallestai.atoms.helpers.versioning import Versioning, DraftConflictError +from smallestai.agents.helpers.versioning import DraftConflictError, Versioning client = SmallestAI(api_key=os.environ["SMALLEST_API_KEY"]) # 1. CREATE — one call, fully configured, live immediately. No versioning needed. -agent_id = client.atoms.agents.create_agent( +agent_id = client.agents.agents.create_agent( name="receptionist", global_prompt="You are a friendly receptionist. Book appointments and answer questions.", first_message="Hi, how can I help?", @@ -30,7 +30,7 @@ print("agent (live):", agent_id) # You can place calls right now — the agent is serving the config above. -# client.atoms.calls.start_an_outbound_call(agent_id=agent_id, to_phone="+15551234567") +# client.agents.calls.start_an_outbound_call(agent_id=agent_id, to_phone="+15551234567") # ------------------------------------------------------------------------------ # 2. EDIT the config later — this is where versioning comes in. diff --git a/examples/build_voice_agent.py b/examples/build_voice_agent.py index 3e0b18ba7..156e95d59 100644 --- a/examples/build_voice_agent.py +++ b/examples/build_voice_agent.py @@ -21,8 +21,8 @@ import time from smallestai import SmallestAI +from smallestai.agents.helpers import as_page from smallestai.environment import SmallestAIEnvironment -from smallestai.atoms.helpers import as_page def _id_of(obj): @@ -50,10 +50,10 @@ def main() -> None: created_ids = [] print("1. whoami") - print(" ", c.atoms.user.get_user_details().data.user_email) + print(" ", c.agents.user.get_user_details().data.user_email) print("2. create agent") - agent_id = c.atoms.agents.create_agent( + agent_id = c.agents.agents.create_agent( name=f"mario-pizza-{int(time.time())}", first_message="Hi, thanks for calling Mario's Pizza! What can I get started for you?", global_prompt="You are a friendly assistant for Mario's Pizza. Take orders, " @@ -63,14 +63,14 @@ def main() -> None: print(" agent id:", agent_id) print("3. read it back") - agent = c.atoms.agents.get_agent(id=agent_id).data + agent = c.agents.agents.get_agent(id=agent_id).data print(" name :", agent.name) print(" firstMessage :", repr(agent.first_message)) print("4. (optional) knowledge base for the menu") created_kb = None try: - kb = c.atoms.knowledge_base.create( + kb = c.agents.knowledge_base.create( name="mario-menu", description="Pizza menu + prices" ) created_kb = getattr(kb, "data", None) @@ -79,16 +79,16 @@ def main() -> None: print(" KB skipped:", type(e).__name__, str(e)[:80]) print("5. draft a new version from the active one") - versions = as_page(c.atoms.agent_versioning_versions.list_published_versions(id=agent_id)) + versions = as_page(c.agents.agent_versioning_versions.list_published_versions(id=agent_id)) active = next((v for v in versions.items if getattr(v, "is_active", False)), None) or versions.items[0] src_version_id = _id_of(active) print(" source version:", src_version_id) - draft = c.atoms.agent_versioning_drafts.create_draft(id=agent_id, source_version_id=src_version_id) + draft = c.agents.agent_versioning_drafts.create_draft(id=agent_id, source_version_id=src_version_id) draft_id = getattr(draft.data, "draft_id", None) or _id_of(draft.data) print(" draft id:", draft_id) print("6. publish the draft with activate=True (go live)") - published = c.atoms.agent_versioning_drafts.publish_draft( + published = c.agents.agent_versioning_drafts.publish_draft( id=agent_id, draft_id=draft_id, label="v2-live", activate=True ) new_version_id = _id_of(published.data) @@ -98,7 +98,7 @@ def main() -> None: live = False for i in range(10): time.sleep(4) - vs = as_page(c.atoms.agent_versioning_versions.list_published_versions(id=agent_id)) + vs = as_page(c.agents.agent_versioning_versions.list_published_versions(id=agent_id)) v = next((x for x in vs.items if _id_of(x) == new_version_id), None) sc = getattr(v, "security_check", None) status = getattr(sc, "status", None) if sc else None @@ -110,18 +110,18 @@ def main() -> None: print(" -> LIVE" if live else " -> not active yet (security check may still be running)") print("8. list agents in the org") - print(" total:", len(as_page(c.atoms.agents.list_agents()).items)) + print(" total:", len(as_page(c.agents.agents.list_agents()).items)) print("9. cleanup (archive the demo agent + delete the demo KB)") if created_kb: try: - c.atoms.knowledge_base.delete(id=created_kb) + c.agents.knowledge_base.delete(id=created_kb) print(" deleted KB:", created_kb) except Exception as e: print(" KB delete skipped:", type(e).__name__, str(e)[:60]) for aid in created_ids: try: - c.atoms.agents.archive_agent(id=aid) + c.agents.agents.archive_agent(id=aid) print(" archived:", aid) except Exception as e: print(" archive skipped:", type(e).__name__, str(e)[:60]) diff --git a/examples/crew_transfer_node.py b/examples/crew_transfer_node.py index 61feb1b03..a270edb3c 100644 --- a/examples/crew_transfer_node.py +++ b/examples/crew_transfer_node.py @@ -19,12 +19,12 @@ """ import os -from smallestai.atoms.crew.nodes import OutputCrewNode -from smallestai.atoms.crew.events import ( +from smallestai.agents.crew.events import ( SDKAgentTransferConversationEvent, TransferOption, TransferOptionType, ) +from smallestai.agents.crew.nodes import OutputCrewNode # Bring your own OpenAI-compatible client + tool registry. This example assumes a # client exposing `.chat(messages=..., stream=True, tools=...)` and a registry that diff --git a/examples/inspect_calls.py b/examples/inspect_calls.py index c5712f585..d341b0a5d 100644 --- a/examples/inspect_calls.py +++ b/examples/inspect_calls.py @@ -22,7 +22,7 @@ def main() -> None: if len(sys.argv) > 1: call_id = sys.argv[1] - call = client.atoms.calls.get(id=call_id).data + call = client.agents.calls.get(id=call_id).data print(f"call {call_id}") print(" status :", getattr(call, "status", None)) print(" type :", getattr(call, "type", None)) @@ -35,7 +35,7 @@ def main() -> None: return # No id given -> list recent calls. - logs = client.atoms.calls.list(limit=10).data.logs or [] + logs = client.agents.calls.list(limit=10).data.logs or [] print(f"{len(logs)} recent call(s):") for item in logs: print( diff --git a/examples/quickstart.py b/examples/quickstart.py index 8dfceb046..2f745f7ab 100644 --- a/examples/quickstart.py +++ b/examples/quickstart.py @@ -34,20 +34,20 @@ def make_client() -> SmallestAI: def main() -> None: client = make_client() - me = client.atoms.user.get_user_details() + me = client.agents.user.get_user_details() print("authenticated as:", me.data.user_email) - created = client.atoms.agents.create_agent( + created = client.agents.agents.create_agent( name="quickstart-demo", first_message="Hi! Thanks for calling — how can I help?", ) agent_id = created.data print("created agent:", agent_id) - agent = client.atoms.agents.get_agent(id=agent_id) + agent = client.agents.agents.get_agent(id=agent_id) print("first_message persisted as:", repr(agent.data.first_message)) - listing = client.atoms.agents.list_agents() + listing = client.agents.agents.list_agents() agents = getattr(listing.data, "agents", listing.data) print("agents in org:", len(agents)) diff --git a/examples/transfer_call.py b/examples/transfer_call.py index 1c6fa723a..77da96ba1 100644 --- a/examples/transfer_call.py +++ b/examples/transfer_call.py @@ -22,7 +22,7 @@ import os from smallestai import SmallestAI -from smallestai.atoms.helpers import AgentTools +from smallestai.agents.helpers import AgentTools def main() -> None: @@ -31,7 +31,7 @@ def main() -> None: # 1. A single-prompt agent. Its prompt should tell the LLM WHEN to transfer, # otherwise the tool never fires. - agent_id = client.atoms.agents.create_agent( + agent_id = client.agents.agents.create_agent( name="Front desk (transfer demo)", workflow_type="single_prompt", first_message="Hi, thanks for calling. How can I help?", diff --git a/pyproject.toml b/pyproject.toml index ae784bdb1..440384f04 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ dynamic = ["version"] [tool.poetry] name = "smallestai" -version = "5.5.0" +version = "6.0.0" description = "" readme = "README.md" authors = [] @@ -80,7 +80,7 @@ markers = [ [tool.mypy] plugins = ["pydantic.mypy"] -exclude = ["examples/crew_transfer_node.py", "src/smallestai/atoms/crew", "src/smallestai/atoms/helpers", "src/smallestai/cli", "src/smallestai/waves/text_to_speech/client.py", "src/smallestai/waves/text_to_speech/raw_client.py", "src/smallestai/waves/stream_tts.py"] +exclude = ["examples/crew_transfer_node.py", "src/smallestai/agents/crew", "src/smallestai/agents/helpers", "src/smallestai/cli", "src/smallestai/speech/text_to_speech/client.py", "src/smallestai/speech/text_to_speech/raw_client.py", "src/smallestai/speech/stream_tts.py", "src/smallestai/core/pydantic_utilities.py", "src/smallestai/core/unchecked_base_model.py"] [tool.ruff] line-length = 120 diff --git a/scripts/verify.py b/scripts/verify.py index 2d2fd5b40..af91b038f 100644 --- a/scripts/verify.py +++ b/scripts/verify.py @@ -28,8 +28,8 @@ CUSTOM = ROOT / "tests" / "custom" GREEN, RED, YEL, DIM, END = "\033[32m", "\033[31m", "\033[33m", "\033[2m", "\033[0m" -failures = [] -warnings = [] +failures: list = [] +warnings: list = [] def hdr(t): @@ -150,7 +150,7 @@ def read_methods(client): # ---------------------------------------------------------------- layer 2 def check_live_sweep(client): hdr("2. LIVE READ SWEEP — every no-arg read endpoint") - from smallestai.atoms.helpers import as_page + from smallestai.agents.helpers import as_page items_by_label = {} n = ok = 0 for label, method in read_methods(client): diff --git a/src/smallestai/__init__.py b/src/smallestai/__init__.py index 074279c5c..31ece64c4 100644 --- a/src/smallestai/__init__.py +++ b/src/smallestai/__init__.py @@ -1,38 +1,58 @@ -# This file was auto-generated by Fern from our API Definition. +# Hand-maintained (see .fernignore). Based on the generated root __init__, plus: +# - custom exports (PlanNotEntitledError, the `errors` module), +# - deprecated 6.0 back-compat aliases for the old `atoms` / `waves` names. +# Re-apply these after a regen. # isort: skip_file import typing +import warnings from importlib import import_module if typing.TYPE_CHECKING: - from . import atoms, errors, waves + from . import agents, errors, speech from ._default_clients import DefaultAioHttpClient, DefaultAsyncHttpxClient - from .atoms.client import AsyncAtomsClient, AtomsClient - from .atoms.errors.bad_request_error import PlanNotEntitledError + from .agents.client import AgentsClient, AsyncAgentsClient + from .agents.errors.bad_request_error import PlanNotEntitledError from .client import AsyncSmallestAI, SmallestAI from .environment import SmallestAIEnvironment + from .speech.client import AsyncSpeechClient, SpeechClient from .version import __version__ - from .waves.client import AsyncWavesClient, WavesClient + _dynamic_imports: typing.Dict[str, str] = { - "AsyncAtomsClient": ".atoms.client", + "AgentsClient": ".agents.client", + "AsyncAgentsClient": ".agents.client", "AsyncSmallestAI": ".client", - "AsyncWavesClient": ".waves.client", - "AtomsClient": ".atoms.client", + "AsyncSpeechClient": ".speech.client", "DefaultAioHttpClient": "._default_clients", "DefaultAsyncHttpxClient": "._default_clients", - "PlanNotEntitledError": ".atoms.errors.bad_request_error", + "PlanNotEntitledError": ".agents.errors.bad_request_error", "SmallestAI": ".client", "SmallestAIEnvironment": ".environment", - "WavesClient": ".waves.client", + "SpeechClient": ".speech.client", "__version__": ".version", - "atoms": ".atoms", + "agents": ".agents", "errors": ".errors", - "waves": ".waves", + "speech": ".speech", } +# Deprecated 6.0 aliases: old product names -> new. Attribute access +# (smallestai.atoms) is handled here; deep imports (import smallestai.atoms.crew) +# are handled by the import hook installed at the bottom of this file. +_DEPRECATED_ALIASES = {"atoms": "agents", "waves": "speech"} + def __getattr__(attr_name: str) -> typing.Any: + if attr_name in _DEPRECATED_ALIASES: + new = _DEPRECATED_ALIASES[attr_name] + warnings.warn( + f"smallestai.{attr_name} is deprecated and will be removed in a future " + f"major version; use smallestai.{new} instead.", + DeprecationWarning, + stacklevel=2, + ) + return import_module(f".{new}", __package__) + module_name = _dynamic_imports.get(attr_name) if module_name is None: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") @@ -40,8 +60,11 @@ def __getattr__(attr_name: str) -> typing.Any: module = import_module(module_name, __package__) if module_name == f".{attr_name}": return module - else: - return getattr(module, attr_name) + obj = getattr(module, attr_name) + if attr_name in ("SmallestAI", "AsyncSmallestAI"): + from ._compat import add_deprecated_client_aliases + add_deprecated_client_aliases(obj) + return obj except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -49,23 +72,27 @@ def __getattr__(attr_name: str) -> typing.Any: def __dir__(): - lazy_attrs = list(_dynamic_imports.keys()) - return sorted(lazy_attrs) + return sorted(list(_dynamic_imports.keys()) + list(_DEPRECATED_ALIASES.keys())) __all__ = [ - "AsyncAtomsClient", + "AgentsClient", + "AsyncAgentsClient", "AsyncSmallestAI", - "AsyncWavesClient", - "AtomsClient", + "AsyncSpeechClient", "DefaultAioHttpClient", "DefaultAsyncHttpxClient", "PlanNotEntitledError", "SmallestAI", "SmallestAIEnvironment", - "WavesClient", + "SpeechClient", "__version__", - "atoms", + "agents", "errors", - "waves", + "speech", ] + +# Keep `import smallestai.atoms.crew...` (and .waves...) working, deprecated. +from ._compat import install_import_aliases as _install_import_aliases + +_install_import_aliases() diff --git a/src/smallestai/_compat.py b/src/smallestai/_compat.py new file mode 100644 index 000000000..f4216a918 --- /dev/null +++ b/src/smallestai/_compat.py @@ -0,0 +1,104 @@ +"""Backward-compat import aliases for the 6.0 rename (atoms->agents, waves->speech). + +Hand-maintained (see .fernignore). Attribute access (``smallestai.agents``) is +handled by the root ``__init__`` ``__getattr__``. This module installs a +``sys.meta_path`` finder so that *deep* imports of the old names keep working, +e.g. ``import smallestai.agents.crew.nodes`` or +``from smallestai.speech.helpers import synthesize_to_file``. Each such import +resolves to the new module and emits a ``DeprecationWarning`` once per old name. +Remove this shim in the next major. +""" + +import importlib +import sys +import warnings +from importlib.abc import Loader, MetaPathFinder +from importlib.machinery import ModuleSpec +from types import ModuleType +from typing import Optional, Sequence + +# old top-level package -> new top-level package +_ALIASES = { + "smallestai.atoms": "smallestai.agents", + "smallestai.waves": "smallestai.speech", +} +_warned: set = set() + + +def _resolve(fullname: str) -> Optional[str]: + for old, new in _ALIASES.items(): + if fullname == old or fullname.startswith(old + "."): + return new + fullname[len(old):] + return None + + +class _AliasLoader(Loader): + def __init__(self, old_name: str, new_name: str) -> None: + self._old_name = old_name + self._new_name = new_name + + def create_module(self, spec: ModuleSpec) -> ModuleType: + top = self._old_name.split(".", 2)[1] # "atoms" or "waves" + if top not in _warned: + _warned.add(top) + new_top = _ALIASES["smallestai." + top].split(".")[-1] + warnings.warn( + f"smallestai.{top} is deprecated and will be removed in a future " + f"major version; use smallestai.{new_top} instead.", + DeprecationWarning, + stacklevel=2, + ) + module = importlib.import_module(self._new_name) + sys.modules[self._old_name] = module + return module + + def exec_module(self, module: ModuleType) -> None: + # The module already executed under its real name; nothing to do. + pass + + +class _AliasFinder(MetaPathFinder): + def find_spec( + self, fullname: str, path: Optional[Sequence[str]] = None, target: Optional[ModuleType] = None + ) -> Optional[ModuleSpec]: + new_name = _resolve(fullname) + if new_name is None: + return None + # No submodule_search_locations: the target may be a package, but we let + # this finder handle every level (smallestai.atoms.crew.nodes -> ...) so + # each aliased module is the *same object* as the real one, not a re-exec. + return ModuleSpec(fullname, _AliasLoader(fullname, new_name)) + + +def install_import_aliases() -> None: + if not any(isinstance(f, _AliasFinder) for f in sys.meta_path): + sys.meta_path.insert(0, _AliasFinder()) + + +# --- Deprecated client attribute aliases (client.atoms -> client.agents, etc.) --- +# Applied lazily to the SmallestAI / AsyncSmallestAI classes when they are first +# imported (see the root __init__), so we don't eagerly import the client and +# defeat lazy loading. + +_CLIENT_ALIASES = {"atoms": "agents", "waves": "speech"} + + +def _make_alias_property(old_name: str, new_name: str): + def getter(self): + warnings.warn( + f"client.{old_name} is deprecated and will be removed in a future major " + f"version; use client.{new_name} instead.", + DeprecationWarning, + stacklevel=2, + ) + return getattr(self, new_name) + + return property(getter) + + +def add_deprecated_client_aliases(cls: type) -> None: + if getattr(cls, "_smallestai_deprecated_aliases", False): + return + for old_name, new_name in _CLIENT_ALIASES.items(): + setattr(cls, old_name, _make_alias_property(old_name, new_name)) + setattr(cls, "_smallestai_deprecated_aliases", True) diff --git a/src/smallestai/atoms/__init__.py b/src/smallestai/agents/__init__.py similarity index 100% rename from src/smallestai/atoms/__init__.py rename to src/smallestai/agents/__init__.py diff --git a/src/smallestai/atoms/agent_templates/__init__.py b/src/smallestai/agents/agent_templates/__init__.py similarity index 100% rename from src/smallestai/atoms/agent_templates/__init__.py rename to src/smallestai/agents/agent_templates/__init__.py diff --git a/src/smallestai/atoms/agent_templates/client.py b/src/smallestai/agents/agent_templates/client.py similarity index 96% rename from src/smallestai/atoms/agent_templates/client.py rename to src/smallestai/agents/agent_templates/client.py index 04f453052..81630f196 100644 --- a/src/smallestai/atoms/agent_templates/client.py +++ b/src/smallestai/agents/agent_templates/client.py @@ -55,7 +55,7 @@ def list_agent_templates( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_templates.list_agent_templates() + client.agents.agent_templates.list_agent_templates() """ _response = self._raw_client.list_agent_templates(region=region, request_options=request_options) return _response.data @@ -97,7 +97,7 @@ def create_agent_from_template( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_templates.create_agent_from_template( + client.agents.agent_templates.create_agent_from_template( agent_name="agentName", template_id="templateId", ) @@ -158,7 +158,7 @@ async def list_agent_templates( async def main() -> None: - await client.atoms.agent_templates.list_agent_templates() + await client.agents.agent_templates.list_agent_templates() asyncio.run(main()) @@ -208,7 +208,7 @@ async def create_agent_from_template( async def main() -> None: - await client.atoms.agent_templates.create_agent_from_template( + await client.agents.agent_templates.create_agent_from_template( agent_name="agentName", template_id="templateId", ) diff --git a/src/smallestai/atoms/agent_templates/raw_client.py b/src/smallestai/agents/agent_templates/raw_client.py similarity index 100% rename from src/smallestai/atoms/agent_templates/raw_client.py rename to src/smallestai/agents/agent_templates/raw_client.py diff --git a/src/smallestai/atoms/agent_templates/types/__init__.py b/src/smallestai/agents/agent_templates/types/__init__.py similarity index 100% rename from src/smallestai/atoms/agent_templates/types/__init__.py rename to src/smallestai/agents/agent_templates/types/__init__.py diff --git a/src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_request_region.py b/src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_request_region.py similarity index 100% rename from src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_request_region.py rename to src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_request_region.py diff --git a/src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response.py b/src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response.py similarity index 100% rename from src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response.py rename to src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response.py diff --git a/src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item.py b/src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item.py similarity index 100% rename from src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item.py rename to src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item.py diff --git a/src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item_call_type.py b/src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item_call_type.py similarity index 100% rename from src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item_call_type.py rename to src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item_call_type.py diff --git a/src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item_default_language.py b/src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item_default_language.py similarity index 100% rename from src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item_default_language.py rename to src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item_default_language.py diff --git a/src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item_region.py b/src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item_region.py similarity index 100% rename from src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item_region.py rename to src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item_region.py diff --git a/src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config.py b/src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config.py similarity index 100% rename from src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config.py rename to src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config.py diff --git a/src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config_tools_item.py b/src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config_tools_item.py similarity index 100% rename from src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config_tools_item.py rename to src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config_tools_item.py diff --git a/src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config_tools_item_type.py b/src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config_tools_item_type.py similarity index 100% rename from src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config_tools_item_type.py rename to src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item_single_prompt_config_tools_item_type.py diff --git a/src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item_workflow_type.py b/src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item_workflow_type.py similarity index 100% rename from src/smallestai/atoms/agent_templates/types/list_agent_templates_agent_templates_response_data_item_workflow_type.py rename to src/smallestai/agents/agent_templates/types/list_agent_templates_agent_templates_response_data_item_workflow_type.py diff --git a/src/smallestai/atoms/agent_templates/types/post_agent_from_template_response.py b/src/smallestai/agents/agent_templates/types/post_agent_from_template_response.py similarity index 100% rename from src/smallestai/atoms/agent_templates/types/post_agent_from_template_response.py rename to src/smallestai/agents/agent_templates/types/post_agent_from_template_response.py diff --git a/src/smallestai/atoms/agent_versioning_branches/__init__.py b/src/smallestai/agents/agent_versioning_branches/__init__.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/__init__.py rename to src/smallestai/agents/agent_versioning_branches/__init__.py diff --git a/src/smallestai/atoms/agent_versioning_branches/client.py b/src/smallestai/agents/agent_versioning_branches/client.py similarity index 96% rename from src/smallestai/atoms/agent_versioning_branches/client.py rename to src/smallestai/agents/agent_versioning_branches/client.py index f82a0fcaf..43d5984b4 100644 --- a/src/smallestai/atoms/agent_versioning_branches/client.py +++ b/src/smallestai/agents/agent_versioning_branches/client.py @@ -66,7 +66,7 @@ def list( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_branches.list( + client.agents.agent_versioning_branches.list( id="id", ) """ @@ -105,7 +105,7 @@ def create_branch( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_branches.create_branch( + client.agents.agent_versioning_branches.create_branch( id="id", source_branch_id="sourceBranchId", name="name", @@ -145,7 +145,7 @@ def get( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_branches.get( + client.agents.agent_versioning_branches.get( id="id", branch_id="branchId", ) @@ -184,7 +184,7 @@ def rename( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_branches.rename( + client.agents.agent_versioning_branches.rename( id="id", branch_id="branchId", name="name", @@ -222,7 +222,7 @@ def archive( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_branches.archive( + client.agents.agent_versioning_branches.archive( id="id", branch_id="branchId", ) @@ -259,7 +259,7 @@ def make_live( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_branches.make_live( + client.agents.agent_versioning_branches.make_live( id="id", branch_id="branchId", ) @@ -296,7 +296,7 @@ def get_draft( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_branches.get_draft( + client.agents.agent_versioning_branches.get_draft( id="id", branch_id="branchId", ) @@ -426,7 +426,7 @@ def update_draft( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_branches.update_draft( + client.agents.agent_versioning_branches.update_draft( id="id", branch_id="branchId", ) @@ -493,7 +493,7 @@ def discard_draft( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_branches.discard_draft( + client.agents.agent_versioning_branches.discard_draft( id="id", branch_id="branchId", ) @@ -542,7 +542,7 @@ def publish_draft( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_branches.publish_draft( + client.agents.agent_versioning_branches.publish_draft( id="id", branch_id="branchId", ) @@ -579,7 +579,7 @@ def cancel_publish( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_branches.cancel_publish( + client.agents.agent_versioning_branches.cancel_publish( id="id", branch_id="branchId", ) @@ -637,7 +637,7 @@ def test_call( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_branches.test_call( + client.agents.agent_versioning_branches.test_call( id="id", branch_id="branchId", ) @@ -700,7 +700,7 @@ async def list( async def main() -> None: - await client.atoms.agent_versioning_branches.list( + await client.agents.agent_versioning_branches.list( id="id", ) @@ -747,7 +747,7 @@ async def create_branch( async def main() -> None: - await client.atoms.agent_versioning_branches.create_branch( + await client.agents.agent_versioning_branches.create_branch( id="id", source_branch_id="sourceBranchId", name="name", @@ -795,7 +795,7 @@ async def get( async def main() -> None: - await client.atoms.agent_versioning_branches.get( + await client.agents.agent_versioning_branches.get( id="id", branch_id="branchId", ) @@ -842,7 +842,7 @@ async def rename( async def main() -> None: - await client.atoms.agent_versioning_branches.rename( + await client.agents.agent_versioning_branches.rename( id="id", branch_id="branchId", name="name", @@ -888,7 +888,7 @@ async def archive( async def main() -> None: - await client.atoms.agent_versioning_branches.archive( + await client.agents.agent_versioning_branches.archive( id="id", branch_id="branchId", ) @@ -933,7 +933,7 @@ async def make_live( async def main() -> None: - await client.atoms.agent_versioning_branches.make_live( + await client.agents.agent_versioning_branches.make_live( id="id", branch_id="branchId", ) @@ -978,7 +978,7 @@ async def get_draft( async def main() -> None: - await client.atoms.agent_versioning_branches.get_draft( + await client.agents.agent_versioning_branches.get_draft( id="id", branch_id="branchId", ) @@ -1116,7 +1116,7 @@ async def update_draft( async def main() -> None: - await client.atoms.agent_versioning_branches.update_draft( + await client.agents.agent_versioning_branches.update_draft( id="id", branch_id="branchId", ) @@ -1191,7 +1191,7 @@ async def discard_draft( async def main() -> None: - await client.atoms.agent_versioning_branches.discard_draft( + await client.agents.agent_versioning_branches.discard_draft( id="id", branch_id="branchId", ) @@ -1248,7 +1248,7 @@ async def publish_draft( async def main() -> None: - await client.atoms.agent_versioning_branches.publish_draft( + await client.agents.agent_versioning_branches.publish_draft( id="id", branch_id="branchId", ) @@ -1293,7 +1293,7 @@ async def cancel_publish( async def main() -> None: - await client.atoms.agent_versioning_branches.cancel_publish( + await client.agents.agent_versioning_branches.cancel_publish( id="id", branch_id="branchId", ) @@ -1359,7 +1359,7 @@ async def test_call( async def main() -> None: - await client.atoms.agent_versioning_branches.test_call( + await client.agents.agent_versioning_branches.test_call( id="id", branch_id="branchId", ) diff --git a/src/smallestai/atoms/agent_versioning_branches/raw_client.py b/src/smallestai/agents/agent_versioning_branches/raw_client.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/raw_client.py rename to src/smallestai/agents/agent_versioning_branches/raw_client.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/__init__.py b/src/smallestai/agents/agent_versioning_branches/types/__init__.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/__init__.py rename to src/smallestai/agents/agent_versioning_branches/types/__init__.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/archive_agent_versioning_branches_response.py b/src/smallestai/agents/agent_versioning_branches/types/archive_agent_versioning_branches_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/archive_agent_versioning_branches_response.py rename to src/smallestai/agents/agent_versioning_branches/types/archive_agent_versioning_branches_response.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/archive_agent_versioning_branches_response_data.py b/src/smallestai/agents/agent_versioning_branches/types/archive_agent_versioning_branches_response_data.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/archive_agent_versioning_branches_response_data.py rename to src/smallestai/agents/agent_versioning_branches/types/archive_agent_versioning_branches_response_data.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/cancel_publish_agent_versioning_branches_response.py b/src/smallestai/agents/agent_versioning_branches/types/cancel_publish_agent_versioning_branches_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/cancel_publish_agent_versioning_branches_response.py rename to src/smallestai/agents/agent_versioning_branches/types/cancel_publish_agent_versioning_branches_response.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/cancel_publish_agent_versioning_branches_response_data.py b/src/smallestai/agents/agent_versioning_branches/types/cancel_publish_agent_versioning_branches_response_data.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/cancel_publish_agent_versioning_branches_response_data.py rename to src/smallestai/agents/agent_versioning_branches/types/cancel_publish_agent_versioning_branches_response_data.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/create_branch_agent_versioning_branches_response.py b/src/smallestai/agents/agent_versioning_branches/types/create_branch_agent_versioning_branches_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/create_branch_agent_versioning_branches_response.py rename to src/smallestai/agents/agent_versioning_branches/types/create_branch_agent_versioning_branches_response.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/discard_draft_agent_versioning_branches_response.py b/src/smallestai/agents/agent_versioning_branches/types/discard_draft_agent_versioning_branches_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/discard_draft_agent_versioning_branches_response.py rename to src/smallestai/agents/agent_versioning_branches/types/discard_draft_agent_versioning_branches_response.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/discard_draft_agent_versioning_branches_response_data.py b/src/smallestai/agents/agent_versioning_branches/types/discard_draft_agent_versioning_branches_response_data.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/discard_draft_agent_versioning_branches_response_data.py rename to src/smallestai/agents/agent_versioning_branches/types/discard_draft_agent_versioning_branches_response_data.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/get_agent_versioning_branches_response.py b/src/smallestai/agents/agent_versioning_branches/types/get_agent_versioning_branches_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/get_agent_versioning_branches_response.py rename to src/smallestai/agents/agent_versioning_branches/types/get_agent_versioning_branches_response.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/get_draft_agent_versioning_branches_response.py b/src/smallestai/agents/agent_versioning_branches/types/get_draft_agent_versioning_branches_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/get_draft_agent_versioning_branches_response.py rename to src/smallestai/agents/agent_versioning_branches/types/get_draft_agent_versioning_branches_response.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/list_agent_versioning_branches_response.py b/src/smallestai/agents/agent_versioning_branches/types/list_agent_versioning_branches_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/list_agent_versioning_branches_response.py rename to src/smallestai/agents/agent_versioning_branches/types/list_agent_versioning_branches_response.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/list_agent_versioning_branches_response_data.py b/src/smallestai/agents/agent_versioning_branches/types/list_agent_versioning_branches_response_data.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/list_agent_versioning_branches_response_data.py rename to src/smallestai/agents/agent_versioning_branches/types/list_agent_versioning_branches_response_data.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/make_live_agent_versioning_branches_response.py b/src/smallestai/agents/agent_versioning_branches/types/make_live_agent_versioning_branches_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/make_live_agent_versioning_branches_response.py rename to src/smallestai/agents/agent_versioning_branches/types/make_live_agent_versioning_branches_response.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/publish_draft_agent_versioning_branches_response.py b/src/smallestai/agents/agent_versioning_branches/types/publish_draft_agent_versioning_branches_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/publish_draft_agent_versioning_branches_response.py rename to src/smallestai/agents/agent_versioning_branches/types/publish_draft_agent_versioning_branches_response.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/rename_agent_versioning_branches_response.py b/src/smallestai/agents/agent_versioning_branches/types/rename_agent_versioning_branches_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/rename_agent_versioning_branches_response.py rename to src/smallestai/agents/agent_versioning_branches/types/rename_agent_versioning_branches_response.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/test_call_agent_versioning_branches_response.py b/src/smallestai/agents/agent_versioning_branches/types/test_call_agent_versioning_branches_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/test_call_agent_versioning_branches_response.py rename to src/smallestai/agents/agent_versioning_branches/types/test_call_agent_versioning_branches_response.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/test_call_v2request_mode.py b/src/smallestai/agents/agent_versioning_branches/types/test_call_v2request_mode.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/test_call_v2request_mode.py rename to src/smallestai/agents/agent_versioning_branches/types/test_call_v2request_mode.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/update_branch_draft_request_background_sound.py b/src/smallestai/agents/agent_versioning_branches/types/update_branch_draft_request_background_sound.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/update_branch_draft_request_background_sound.py rename to src/smallestai/agents/agent_versioning_branches/types/update_branch_draft_request_background_sound.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/update_branch_draft_request_slm_model.py b/src/smallestai/agents/agent_versioning_branches/types/update_branch_draft_request_slm_model.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/update_branch_draft_request_slm_model.py rename to src/smallestai/agents/agent_versioning_branches/types/update_branch_draft_request_slm_model.py diff --git a/src/smallestai/atoms/agent_versioning_branches/types/update_draft_agent_versioning_branches_response.py b/src/smallestai/agents/agent_versioning_branches/types/update_draft_agent_versioning_branches_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_branches/types/update_draft_agent_versioning_branches_response.py rename to src/smallestai/agents/agent_versioning_branches/types/update_draft_agent_versioning_branches_response.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/__init__.py b/src/smallestai/agents/agent_versioning_drafts/__init__.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/__init__.py rename to src/smallestai/agents/agent_versioning_drafts/__init__.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/client.py b/src/smallestai/agents/agent_versioning_drafts/client.py similarity index 97% rename from src/smallestai/atoms/agent_versioning_drafts/client.py rename to src/smallestai/agents/agent_versioning_drafts/client.py index ed1a1e760..b8b1eed28 100644 --- a/src/smallestai/atoms/agent_versioning_drafts/client.py +++ b/src/smallestai/agents/agent_versioning_drafts/client.py @@ -68,7 +68,7 @@ def list_active_drafts( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_drafts.list_active_drafts( + client.agents.agent_versioning_drafts.list_active_drafts( id="id", ) """ @@ -119,7 +119,7 @@ def create_draft( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_drafts.create_draft( + client.agents.agent_versioning_drafts.create_draft( id="id", ) """ @@ -171,7 +171,7 @@ def get_draft_detail( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_drafts.get_draft_detail( + client.agents.agent_versioning_drafts.get_draft_detail( id="id", draft_id="draftId", ) @@ -210,7 +210,7 @@ def discard_draft( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_drafts.discard_draft( + client.agents.agent_versioning_drafts.discard_draft( id="id", draft_id="draftId", ) @@ -253,7 +253,7 @@ def rename_draft( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_drafts.rename_draft( + client.agents.agent_versioning_drafts.rename_draft( id="id", draft_id="draftId", draft_name="draftName", @@ -301,7 +301,7 @@ def get_draft_diff( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_drafts.get_draft_diff( + client.agents.agent_versioning_drafts.get_draft_diff( id="id", draft_id="draftId", ) @@ -358,7 +358,7 @@ def publish_draft( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_drafts.publish_draft( + client.agents.agent_versioning_drafts.publish_draft( id="id", draft_id="draftId", ) @@ -411,7 +411,7 @@ def test_call_with_draft_config( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_drafts.test_call_with_draft_config( + client.agents.agent_versioning_drafts.test_call_with_draft_config( id="id", draft_id="draftId", ) @@ -589,7 +589,7 @@ def update_draft_config( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_drafts.update_draft_config( + client.agents.agent_versioning_drafts.update_draft_config( id="id", draft_id="draftId", ) @@ -681,7 +681,7 @@ async def list_active_drafts( async def main() -> None: - await client.atoms.agent_versioning_drafts.list_active_drafts( + await client.agents.agent_versioning_drafts.list_active_drafts( id="id", ) @@ -740,7 +740,7 @@ async def create_draft( async def main() -> None: - await client.atoms.agent_versioning_drafts.create_draft( + await client.agents.agent_versioning_drafts.create_draft( id="id", ) @@ -800,7 +800,7 @@ async def get_draft_detail( async def main() -> None: - await client.atoms.agent_versioning_drafts.get_draft_detail( + await client.agents.agent_versioning_drafts.get_draft_detail( id="id", draft_id="draftId", ) @@ -847,7 +847,7 @@ async def discard_draft( async def main() -> None: - await client.atoms.agent_versioning_drafts.discard_draft( + await client.agents.agent_versioning_drafts.discard_draft( id="id", draft_id="draftId", ) @@ -898,7 +898,7 @@ async def rename_draft( async def main() -> None: - await client.atoms.agent_versioning_drafts.rename_draft( + await client.agents.agent_versioning_drafts.rename_draft( id="id", draft_id="draftId", draft_name="draftName", @@ -956,7 +956,7 @@ async def get_draft_diff( async def main() -> None: - await client.atoms.agent_versioning_drafts.get_draft_diff( + await client.agents.agent_versioning_drafts.get_draft_diff( id="id", draft_id="draftId", ) @@ -1021,7 +1021,7 @@ async def publish_draft( async def main() -> None: - await client.atoms.agent_versioning_drafts.publish_draft( + await client.agents.agent_versioning_drafts.publish_draft( id="id", draft_id="draftId", ) @@ -1082,7 +1082,7 @@ async def test_call_with_draft_config( async def main() -> None: - await client.atoms.agent_versioning_drafts.test_call_with_draft_config( + await client.agents.agent_versioning_drafts.test_call_with_draft_config( id="id", draft_id="draftId", ) @@ -1268,7 +1268,7 @@ async def update_draft_config( async def main() -> None: - await client.atoms.agent_versioning_drafts.update_draft_config( + await client.agents.agent_versioning_drafts.update_draft_config( id="id", draft_id="draftId", ) diff --git a/src/smallestai/atoms/agent_versioning_drafts/raw_client.py b/src/smallestai/agents/agent_versioning_drafts/raw_client.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/raw_client.py rename to src/smallestai/agents/agent_versioning_drafts/raw_client.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/__init__.py b/src/smallestai/agents/agent_versioning_drafts/types/__init__.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/__init__.py rename to src/smallestai/agents/agent_versioning_drafts/types/__init__.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/create_draft_agent_versioning_drafts_response.py b/src/smallestai/agents/agent_versioning_drafts/types/create_draft_agent_versioning_drafts_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/create_draft_agent_versioning_drafts_response.py rename to src/smallestai/agents/agent_versioning_drafts/types/create_draft_agent_versioning_drafts_response.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/discard_draft_agent_versioning_drafts_response.py b/src/smallestai/agents/agent_versioning_drafts/types/discard_draft_agent_versioning_drafts_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/discard_draft_agent_versioning_drafts_response.py rename to src/smallestai/agents/agent_versioning_drafts/types/discard_draft_agent_versioning_drafts_response.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/draft_config_request_background_sound.py b/src/smallestai/agents/agent_versioning_drafts/types/draft_config_request_background_sound.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/draft_config_request_background_sound.py rename to src/smallestai/agents/agent_versioning_drafts/types/draft_config_request_background_sound.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/draft_config_request_slm_model.py b/src/smallestai/agents/agent_versioning_drafts/types/draft_config_request_slm_model.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/draft_config_request_slm_model.py rename to src/smallestai/agents/agent_versioning_drafts/types/draft_config_request_slm_model.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response.py b/src/smallestai/agents/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response.py rename to src/smallestai/agents/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response_data.py b/src/smallestai/agents/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response_data.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response_data.py rename to src/smallestai/agents/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response_data.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response_data_sections_value.py b/src/smallestai/agents/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response_data_sections_value.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response_data_sections_value.py rename to src/smallestai/agents/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_diff_response_data_sections_value.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_response.py b/src/smallestai/agents/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_response.py rename to src/smallestai/agents/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_response.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_response_data.py b/src/smallestai/agents/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_response_data.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_response_data.py rename to src/smallestai/agents/agent_versioning_drafts/types/get_agent_id_drafts_draft_id_response_data.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/get_agent_id_drafts_response.py b/src/smallestai/agents/agent_versioning_drafts/types/get_agent_id_drafts_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/get_agent_id_drafts_response.py rename to src/smallestai/agents/agent_versioning_drafts/types/get_agent_id_drafts_response.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/get_agent_id_drafts_response_data_item.py b/src/smallestai/agents/agent_versioning_drafts/types/get_agent_id_drafts_response_data_item.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/get_agent_id_drafts_response_data_item.py rename to src/smallestai/agents/agent_versioning_drafts/types/get_agent_id_drafts_response_data_item.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/post_agent_id_drafts_draft_id_test_call_response.py b/src/smallestai/agents/agent_versioning_drafts/types/post_agent_id_drafts_draft_id_test_call_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/post_agent_id_drafts_draft_id_test_call_response.py rename to src/smallestai/agents/agent_versioning_drafts/types/post_agent_id_drafts_draft_id_test_call_response.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/post_agent_id_drafts_draft_id_test_call_response_data.py b/src/smallestai/agents/agent_versioning_drafts/types/post_agent_id_drafts_draft_id_test_call_response_data.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/post_agent_id_drafts_draft_id_test_call_response_data.py rename to src/smallestai/agents/agent_versioning_drafts/types/post_agent_id_drafts_draft_id_test_call_response_data.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/publish_draft_agent_versioning_drafts_response.py b/src/smallestai/agents/agent_versioning_drafts/types/publish_draft_agent_versioning_drafts_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/publish_draft_agent_versioning_drafts_response.py rename to src/smallestai/agents/agent_versioning_drafts/types/publish_draft_agent_versioning_drafts_response.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/rename_draft_agent_versioning_drafts_response.py b/src/smallestai/agents/agent_versioning_drafts/types/rename_draft_agent_versioning_drafts_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/rename_draft_agent_versioning_drafts_response.py rename to src/smallestai/agents/agent_versioning_drafts/types/rename_draft_agent_versioning_drafts_response.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/rename_draft_agent_versioning_drafts_response_data.py b/src/smallestai/agents/agent_versioning_drafts/types/rename_draft_agent_versioning_drafts_response_data.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/rename_draft_agent_versioning_drafts_response_data.py rename to src/smallestai/agents/agent_versioning_drafts/types/rename_draft_agent_versioning_drafts_response_data.py diff --git a/src/smallestai/atoms/agent_versioning_drafts/types/update_draft_config_agent_versioning_drafts_response.py b/src/smallestai/agents/agent_versioning_drafts/types/update_draft_config_agent_versioning_drafts_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_drafts/types/update_draft_config_agent_versioning_drafts_response.py rename to src/smallestai/agents/agent_versioning_drafts/types/update_draft_config_agent_versioning_drafts_response.py diff --git a/src/smallestai/atoms/agent_versioning_revisions/__init__.py b/src/smallestai/agents/agent_versioning_revisions/__init__.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_revisions/__init__.py rename to src/smallestai/agents/agent_versioning_revisions/__init__.py diff --git a/src/smallestai/atoms/agent_versioning_revisions/client.py b/src/smallestai/agents/agent_versioning_revisions/client.py similarity index 96% rename from src/smallestai/atoms/agent_versioning_revisions/client.py rename to src/smallestai/agents/agent_versioning_revisions/client.py index ae7dbda1a..8219d5951 100644 --- a/src/smallestai/atoms/agent_versioning_revisions/client.py +++ b/src/smallestai/agents/agent_versioning_revisions/client.py @@ -66,7 +66,7 @@ def list( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_revisions.list( + client.agents.agent_versioning_revisions.list( id="id", branch_id="branchId", ) @@ -106,7 +106,7 @@ def get( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_revisions.get( + client.agents.agent_versioning_revisions.get( id="id", branch_id="branchId", revision_id="revisionId", @@ -147,7 +147,7 @@ def get_history( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_revisions.get_history( + client.agents.agent_versioning_revisions.get_history( id="id", branch_id="branchId", revision_id="revisionId", @@ -190,7 +190,7 @@ def restore( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_revisions.restore( + client.agents.agent_versioning_revisions.restore( id="id", branch_id="branchId", revision_id="revisionId", @@ -231,7 +231,7 @@ def diff( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_revisions.diff( + client.agents.agent_versioning_revisions.diff( id="id", a="a", b="b", @@ -300,7 +300,7 @@ async def list( async def main() -> None: - await client.atoms.agent_versioning_revisions.list( + await client.agents.agent_versioning_revisions.list( id="id", branch_id="branchId", ) @@ -348,7 +348,7 @@ async def get( async def main() -> None: - await client.atoms.agent_versioning_revisions.get( + await client.agents.agent_versioning_revisions.get( id="id", branch_id="branchId", revision_id="revisionId", @@ -397,7 +397,7 @@ async def get_history( async def main() -> None: - await client.atoms.agent_versioning_revisions.get_history( + await client.agents.agent_versioning_revisions.get_history( id="id", branch_id="branchId", revision_id="revisionId", @@ -448,7 +448,7 @@ async def restore( async def main() -> None: - await client.atoms.agent_versioning_revisions.restore( + await client.agents.agent_versioning_revisions.restore( id="id", branch_id="branchId", revision_id="revisionId", @@ -497,7 +497,7 @@ async def diff( async def main() -> None: - await client.atoms.agent_versioning_revisions.diff( + await client.agents.agent_versioning_revisions.diff( id="id", a="a", b="b", diff --git a/src/smallestai/atoms/agent_versioning_revisions/raw_client.py b/src/smallestai/agents/agent_versioning_revisions/raw_client.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_revisions/raw_client.py rename to src/smallestai/agents/agent_versioning_revisions/raw_client.py diff --git a/src/smallestai/atoms/agent_versioning_revisions/types/__init__.py b/src/smallestai/agents/agent_versioning_revisions/types/__init__.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_revisions/types/__init__.py rename to src/smallestai/agents/agent_versioning_revisions/types/__init__.py diff --git a/src/smallestai/atoms/agent_versioning_revisions/types/diff_agent_versioning_revisions_response.py b/src/smallestai/agents/agent_versioning_revisions/types/diff_agent_versioning_revisions_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_revisions/types/diff_agent_versioning_revisions_response.py rename to src/smallestai/agents/agent_versioning_revisions/types/diff_agent_versioning_revisions_response.py diff --git a/src/smallestai/atoms/agent_versioning_revisions/types/get_agent_versioning_revisions_response.py b/src/smallestai/agents/agent_versioning_revisions/types/get_agent_versioning_revisions_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_revisions/types/get_agent_versioning_revisions_response.py rename to src/smallestai/agents/agent_versioning_revisions/types/get_agent_versioning_revisions_response.py diff --git a/src/smallestai/atoms/agent_versioning_revisions/types/get_agent_versioning_revisions_response_data.py b/src/smallestai/agents/agent_versioning_revisions/types/get_agent_versioning_revisions_response_data.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_revisions/types/get_agent_versioning_revisions_response_data.py rename to src/smallestai/agents/agent_versioning_revisions/types/get_agent_versioning_revisions_response_data.py diff --git a/src/smallestai/atoms/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response.py b/src/smallestai/agents/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response.py rename to src/smallestai/agents/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response.py diff --git a/src/smallestai/atoms/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response_data.py b/src/smallestai/agents/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response_data.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response_data.py rename to src/smallestai/agents/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response_data.py diff --git a/src/smallestai/atoms/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response_data_trail_item.py b/src/smallestai/agents/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response_data_trail_item.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response_data_trail_item.py rename to src/smallestai/agents/agent_versioning_revisions/types/get_history_agent_versioning_revisions_response_data_trail_item.py diff --git a/src/smallestai/atoms/agent_versioning_revisions/types/list_agent_versioning_revisions_response.py b/src/smallestai/agents/agent_versioning_revisions/types/list_agent_versioning_revisions_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_revisions/types/list_agent_versioning_revisions_response.py rename to src/smallestai/agents/agent_versioning_revisions/types/list_agent_versioning_revisions_response.py diff --git a/src/smallestai/atoms/agent_versioning_revisions/types/list_agent_versioning_revisions_response_data.py b/src/smallestai/agents/agent_versioning_revisions/types/list_agent_versioning_revisions_response_data.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_revisions/types/list_agent_versioning_revisions_response_data.py rename to src/smallestai/agents/agent_versioning_revisions/types/list_agent_versioning_revisions_response_data.py diff --git a/src/smallestai/atoms/agent_versioning_revisions/types/restore_agent_versioning_revisions_response.py b/src/smallestai/agents/agent_versioning_revisions/types/restore_agent_versioning_revisions_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_revisions/types/restore_agent_versioning_revisions_response.py rename to src/smallestai/agents/agent_versioning_revisions/types/restore_agent_versioning_revisions_response.py diff --git a/src/smallestai/atoms/agent_versioning_versions/__init__.py b/src/smallestai/agents/agent_versioning_versions/__init__.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_versions/__init__.py rename to src/smallestai/agents/agent_versioning_versions/__init__.py diff --git a/src/smallestai/atoms/agent_versioning_versions/client.py b/src/smallestai/agents/agent_versioning_versions/client.py similarity index 96% rename from src/smallestai/atoms/agent_versioning_versions/client.py rename to src/smallestai/agents/agent_versioning_versions/client.py index e3508668a..9c700f16c 100644 --- a/src/smallestai/atoms/agent_versioning_versions/client.py +++ b/src/smallestai/agents/agent_versioning_versions/client.py @@ -80,7 +80,7 @@ def list_published_versions( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_versions.list_published_versions( + client.agents.agent_versioning_versions.list_published_versions( id="id", ) """ @@ -123,7 +123,7 @@ def diff_two_versions( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_versions.diff_two_versions( + client.agents.agent_versioning_versions.diff_two_versions( id="id", version_a="versionA", version_b="versionB", @@ -168,7 +168,7 @@ def get_version_detail( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_versions.get_version_detail( + client.agents.agent_versioning_versions.get_version_detail( id="id", version_id="versionId", ) @@ -227,7 +227,7 @@ def update_version_metadata( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_versions.update_version_metadata( + client.agents.agent_versioning_versions.update_version_metadata( id="id", version_id="versionId", ) @@ -273,7 +273,7 @@ def activate_version( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_versions.activate_version( + client.agents.agent_versioning_versions.activate_version( id="id", version_id="versionId", ) @@ -328,7 +328,7 @@ def test_call_with_version_config( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agent_versioning_versions.test_call_with_version_config( + client.agents.agent_versioning_versions.test_call_with_version_config( id="id", version_id="versionId", ) @@ -405,7 +405,7 @@ async def list_published_versions( async def main() -> None: - await client.atoms.agent_versioning_versions.list_published_versions( + await client.agents.agent_versioning_versions.list_published_versions( id="id", ) @@ -456,7 +456,7 @@ async def diff_two_versions( async def main() -> None: - await client.atoms.agent_versioning_versions.diff_two_versions( + await client.agents.agent_versioning_versions.diff_two_versions( id="id", version_a="versionA", version_b="versionB", @@ -509,7 +509,7 @@ async def get_version_detail( async def main() -> None: - await client.atoms.agent_versioning_versions.get_version_detail( + await client.agents.agent_versioning_versions.get_version_detail( id="id", version_id="versionId", ) @@ -576,7 +576,7 @@ async def update_version_metadata( async def main() -> None: - await client.atoms.agent_versioning_versions.update_version_metadata( + await client.agents.agent_versioning_versions.update_version_metadata( id="id", version_id="versionId", ) @@ -630,7 +630,7 @@ async def activate_version( async def main() -> None: - await client.atoms.agent_versioning_versions.activate_version( + await client.agents.agent_versioning_versions.activate_version( id="id", version_id="versionId", ) @@ -693,7 +693,7 @@ async def test_call_with_version_config( async def main() -> None: - await client.atoms.agent_versioning_versions.test_call_with_version_config( + await client.agents.agent_versioning_versions.test_call_with_version_config( id="id", version_id="versionId", ) diff --git a/src/smallestai/atoms/agent_versioning_versions/raw_client.py b/src/smallestai/agents/agent_versioning_versions/raw_client.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_versions/raw_client.py rename to src/smallestai/agents/agent_versioning_versions/raw_client.py diff --git a/src/smallestai/atoms/agent_versioning_versions/types/__init__.py b/src/smallestai/agents/agent_versioning_versions/types/__init__.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_versions/types/__init__.py rename to src/smallestai/agents/agent_versioning_versions/types/__init__.py diff --git a/src/smallestai/atoms/agent_versioning_versions/types/activate_version_agent_versioning_versions_response.py b/src/smallestai/agents/agent_versioning_versions/types/activate_version_agent_versioning_versions_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_versions/types/activate_version_agent_versioning_versions_response.py rename to src/smallestai/agents/agent_versioning_versions/types/activate_version_agent_versioning_versions_response.py diff --git a/src/smallestai/atoms/agent_versioning_versions/types/get_agent_id_versions_diff_response.py b/src/smallestai/agents/agent_versioning_versions/types/get_agent_id_versions_diff_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_versions/types/get_agent_id_versions_diff_response.py rename to src/smallestai/agents/agent_versioning_versions/types/get_agent_id_versions_diff_response.py diff --git a/src/smallestai/atoms/agent_versioning_versions/types/get_agent_id_versions_response.py b/src/smallestai/agents/agent_versioning_versions/types/get_agent_id_versions_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_versions/types/get_agent_id_versions_response.py rename to src/smallestai/agents/agent_versioning_versions/types/get_agent_id_versions_response.py diff --git a/src/smallestai/atoms/agent_versioning_versions/types/get_agent_id_versions_response_data.py b/src/smallestai/agents/agent_versioning_versions/types/get_agent_id_versions_response_data.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_versions/types/get_agent_id_versions_response_data.py rename to src/smallestai/agents/agent_versioning_versions/types/get_agent_id_versions_response_data.py diff --git a/src/smallestai/atoms/agent_versioning_versions/types/get_agent_id_versions_response_data_versions_item.py b/src/smallestai/agents/agent_versioning_versions/types/get_agent_id_versions_response_data_versions_item.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_versions/types/get_agent_id_versions_response_data_versions_item.py rename to src/smallestai/agents/agent_versioning_versions/types/get_agent_id_versions_response_data_versions_item.py diff --git a/src/smallestai/atoms/agent_versioning_versions/types/get_agent_id_versions_version_id_response.py b/src/smallestai/agents/agent_versioning_versions/types/get_agent_id_versions_version_id_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_versions/types/get_agent_id_versions_version_id_response.py rename to src/smallestai/agents/agent_versioning_versions/types/get_agent_id_versions_version_id_response.py diff --git a/src/smallestai/atoms/agent_versioning_versions/types/get_agent_id_versions_version_id_response_data.py b/src/smallestai/agents/agent_versioning_versions/types/get_agent_id_versions_version_id_response_data.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_versions/types/get_agent_id_versions_version_id_response_data.py rename to src/smallestai/agents/agent_versioning_versions/types/get_agent_id_versions_version_id_response_data.py diff --git a/src/smallestai/atoms/agent_versioning_versions/types/post_agent_id_versions_version_id_test_call_response.py b/src/smallestai/agents/agent_versioning_versions/types/post_agent_id_versions_version_id_test_call_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_versions/types/post_agent_id_versions_version_id_test_call_response.py rename to src/smallestai/agents/agent_versioning_versions/types/post_agent_id_versions_version_id_test_call_response.py diff --git a/src/smallestai/atoms/agent_versioning_versions/types/post_agent_id_versions_version_id_test_call_response_data.py b/src/smallestai/agents/agent_versioning_versions/types/post_agent_id_versions_version_id_test_call_response_data.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_versions/types/post_agent_id_versions_version_id_test_call_response_data.py rename to src/smallestai/agents/agent_versioning_versions/types/post_agent_id_versions_version_id_test_call_response_data.py diff --git a/src/smallestai/atoms/agent_versioning_versions/types/update_version_metadata_agent_versioning_versions_response.py b/src/smallestai/agents/agent_versioning_versions/types/update_version_metadata_agent_versioning_versions_response.py similarity index 100% rename from src/smallestai/atoms/agent_versioning_versions/types/update_version_metadata_agent_versioning_versions_response.py rename to src/smallestai/agents/agent_versioning_versions/types/update_version_metadata_agent_versioning_versions_response.py diff --git a/src/smallestai/atoms/agents/__init__.py b/src/smallestai/agents/agents/__init__.py similarity index 100% rename from src/smallestai/atoms/agents/__init__.py rename to src/smallestai/agents/agents/__init__.py diff --git a/src/smallestai/atoms/agents/client.py b/src/smallestai/agents/agents/client.py similarity index 98% rename from src/smallestai/atoms/agents/client.py rename to src/smallestai/agents/agents/client.py index c74da0887..4c3fe09a7 100644 --- a/src/smallestai/atoms/agents/client.py +++ b/src/smallestai/agents/agents/client.py @@ -104,7 +104,7 @@ def list_agents( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agents.list_agents() + client.agents.agents.list_agents() """ _response = self._raw_client.list_agents( page=page, @@ -281,7 +281,7 @@ def create_agent( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agents.create_agent( + client.agents.agents.create_agent( name="name", ) """ @@ -360,7 +360,7 @@ def duplicate_agent( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agents.duplicate_agent( + client.agents.agents.duplicate_agent( id="id", target_organization_id="60d0fe4f5311236168a109ca", ) @@ -433,7 +433,7 @@ def get_agent( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agents.get_agent( + client.agents.agents.get_agent( id="id", ) """ @@ -508,7 +508,7 @@ def update_agent( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agents.update_agent( + client.agents.agents.update_agent( id="id", ) """ @@ -550,7 +550,7 @@ def get_agent_widget_config( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agents.get_agent_widget_config( + client.agents.agents.get_agent_widget_config( id="id", ) """ @@ -590,7 +590,7 @@ def update_agent_widget_config( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agents.update_agent_widget_config( + client.agents.agents.update_agent_widget_config( id="id", ) """ @@ -640,7 +640,7 @@ def get_agent_avatar_presigned_url( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agents.get_agent_avatar_presigned_url( + client.agents.agents.get_agent_avatar_presigned_url( id="id", file_name="fileName", content_type="contentType", @@ -689,7 +689,7 @@ def get_agent_call_logs( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agents.get_agent_call_logs( + client.agents.agents.get_agent_call_logs( id="id", ) """ @@ -732,7 +732,7 @@ def archive_agent( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.agents.archive_agent( + client.agents.agents.archive_agent( id="id", ) """ @@ -810,7 +810,7 @@ async def list_agents( async def main() -> None: - await client.atoms.agents.list_agents() + await client.agents.agents.list_agents() asyncio.run(main()) @@ -995,7 +995,7 @@ async def create_agent( async def main() -> None: - await client.atoms.agents.create_agent( + await client.agents.agents.create_agent( name="name", ) @@ -1082,7 +1082,7 @@ async def duplicate_agent( async def main() -> None: - await client.atoms.agents.duplicate_agent( + await client.agents.agents.duplicate_agent( id="id", target_organization_id="60d0fe4f5311236168a109ca", ) @@ -1163,7 +1163,7 @@ async def get_agent( async def main() -> None: - await client.atoms.agents.get_agent( + await client.agents.agents.get_agent( id="id", ) @@ -1246,7 +1246,7 @@ async def update_agent( async def main() -> None: - await client.atoms.agents.update_agent( + await client.agents.agents.update_agent( id="id", ) @@ -1296,7 +1296,7 @@ async def get_agent_widget_config( async def main() -> None: - await client.atoms.agents.get_agent_widget_config( + await client.agents.agents.get_agent_widget_config( id="id", ) @@ -1344,7 +1344,7 @@ async def update_agent_widget_config( async def main() -> None: - await client.atoms.agents.update_agent_widget_config( + await client.agents.agents.update_agent_widget_config( id="id", ) @@ -1402,7 +1402,7 @@ async def get_agent_avatar_presigned_url( async def main() -> None: - await client.atoms.agents.get_agent_avatar_presigned_url( + await client.agents.agents.get_agent_avatar_presigned_url( id="id", file_name="fileName", content_type="contentType", @@ -1459,7 +1459,7 @@ async def get_agent_call_logs( async def main() -> None: - await client.atoms.agents.get_agent_call_logs( + await client.agents.agents.get_agent_call_logs( id="id", ) @@ -1512,7 +1512,7 @@ async def archive_agent( async def main() -> None: - await client.atoms.agents.archive_agent( + await client.agents.agents.archive_agent( id="id", ) diff --git a/src/smallestai/atoms/agents/raw_client.py b/src/smallestai/agents/agents/raw_client.py similarity index 100% rename from src/smallestai/atoms/agents/raw_client.py rename to src/smallestai/agents/agents/raw_client.py diff --git a/src/smallestai/atoms/agents/types/__init__.py b/src/smallestai/agents/agents/types/__init__.py similarity index 100% rename from src/smallestai/atoms/agents/types/__init__.py rename to src/smallestai/agents/agents/types/__init__.py diff --git a/src/smallestai/atoms/agents/types/archive_agent_agents_response.py b/src/smallestai/agents/agents/types/archive_agent_agents_response.py similarity index 100% rename from src/smallestai/atoms/agents/types/archive_agent_agents_response.py rename to src/smallestai/agents/agents/types/archive_agent_agents_response.py diff --git a/src/smallestai/atoms/agents/types/archive_agent_agents_response_data.py b/src/smallestai/agents/agents/types/archive_agent_agents_response_data.py similarity index 100% rename from src/smallestai/atoms/agents/types/archive_agent_agents_response_data.py rename to src/smallestai/agents/agents/types/archive_agent_agents_response_data.py diff --git a/src/smallestai/atoms/agents/types/archive_agent_agents_response_data_message.py b/src/smallestai/agents/agents/types/archive_agent_agents_response_data_message.py similarity index 100% rename from src/smallestai/atoms/agents/types/archive_agent_agents_response_data_message.py rename to src/smallestai/agents/agents/types/archive_agent_agents_response_data_message.py diff --git a/src/smallestai/atoms/agents/types/create_agent_agents_response.py b/src/smallestai/agents/agents/types/create_agent_agents_response.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_agents_response.py rename to src/smallestai/agents/agents/types/create_agent_agents_response.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_background_sound.py b/src/smallestai/agents/agents/types/create_agent_request_background_sound.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_background_sound.py rename to src/smallestai/agents/agents/types/create_agent_request_background_sound.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_denoising_config.py b/src/smallestai/agents/agents/types/create_agent_request_denoising_config.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_denoising_config.py rename to src/smallestai/agents/agents/types/create_agent_request_denoising_config.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_language.py b/src/smallestai/agents/agents/types/create_agent_request_language.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_language.py rename to src/smallestai/agents/agents/types/create_agent_request_language.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_language_default.py b/src/smallestai/agents/agents/types/create_agent_request_language_default.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_language_default.py rename to src/smallestai/agents/agents/types/create_agent_request_language_default.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_language_supported_item.py b/src/smallestai/agents/agents/types/create_agent_request_language_supported_item.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_language_supported_item.py rename to src/smallestai/agents/agents/types/create_agent_request_language_supported_item.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_language_switching.py b/src/smallestai/agents/agents/types/create_agent_request_language_switching.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_language_switching.py rename to src/smallestai/agents/agents/types/create_agent_request_language_switching.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_llm_idle_timeout_config.py b/src/smallestai/agents/agents/types/create_agent_request_llm_idle_timeout_config.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_llm_idle_timeout_config.py rename to src/smallestai/agents/agents/types/create_agent_request_llm_idle_timeout_config.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_pre_call_api.py b/src/smallestai/agents/agents/types/create_agent_request_pre_call_api.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_pre_call_api.py rename to src/smallestai/agents/agents/types/create_agent_request_pre_call_api.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_pre_call_api_method.py b/src/smallestai/agents/agents/types/create_agent_request_pre_call_api_method.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_pre_call_api_method.py rename to src/smallestai/agents/agents/types/create_agent_request_pre_call_api_method.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_pre_call_api_response_variables_item.py b/src/smallestai/agents/agents/types/create_agent_request_pre_call_api_response_variables_item.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_pre_call_api_response_variables_item.py rename to src/smallestai/agents/agents/types/create_agent_request_pre_call_api_response_variables_item.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_pronunciation_dicts_item.py b/src/smallestai/agents/agents/types/create_agent_request_pronunciation_dicts_item.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_pronunciation_dicts_item.py rename to src/smallestai/agents/agents/types/create_agent_request_pronunciation_dicts_item.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_redaction_config.py b/src/smallestai/agents/agents/types/create_agent_request_redaction_config.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_redaction_config.py rename to src/smallestai/agents/agents/types/create_agent_request_redaction_config.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_session_timeout_config.py b/src/smallestai/agents/agents/types/create_agent_request_session_timeout_config.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_session_timeout_config.py rename to src/smallestai/agents/agents/types/create_agent_request_session_timeout_config.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_slm_model.py b/src/smallestai/agents/agents/types/create_agent_request_slm_model.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_slm_model.py rename to src/smallestai/agents/agents/types/create_agent_request_slm_model.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_smart_turn_config.py b/src/smallestai/agents/agents/types/create_agent_request_smart_turn_config.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_smart_turn_config.py rename to src/smallestai/agents/agents/types/create_agent_request_smart_turn_config.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_synthesizer.py b/src/smallestai/agents/agents/types/create_agent_request_synthesizer.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_synthesizer.py rename to src/smallestai/agents/agents/types/create_agent_request_synthesizer.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_synthesizer_voice_config.py b/src/smallestai/agents/agents/types/create_agent_request_synthesizer_voice_config.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_synthesizer_voice_config.py rename to src/smallestai/agents/agents/types/create_agent_request_synthesizer_voice_config.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_synthesizer_voice_config_gender.py b/src/smallestai/agents/agents/types/create_agent_request_synthesizer_voice_config_gender.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_synthesizer_voice_config_gender.py rename to src/smallestai/agents/agents/types/create_agent_request_synthesizer_voice_config_gender.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_synthesizer_voice_config_model.py b/src/smallestai/agents/agents/types/create_agent_request_synthesizer_voice_config_model.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_synthesizer_voice_config_model.py rename to src/smallestai/agents/agents/types/create_agent_request_synthesizer_voice_config_model.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_timezone.py b/src/smallestai/agents/agents/types/create_agent_request_timezone.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_timezone.py rename to src/smallestai/agents/agents/types/create_agent_request_timezone.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_voice_detection_config.py b/src/smallestai/agents/agents/types/create_agent_request_voice_detection_config.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_voice_detection_config.py rename to src/smallestai/agents/agents/types/create_agent_request_voice_detection_config.py diff --git a/src/smallestai/atoms/agents/types/create_agent_request_voice_mail_detection_config.py b/src/smallestai/agents/agents/types/create_agent_request_voice_mail_detection_config.py similarity index 100% rename from src/smallestai/atoms/agents/types/create_agent_request_voice_mail_detection_config.py rename to src/smallestai/agents/agents/types/create_agent_request_voice_mail_detection_config.py diff --git a/src/smallestai/atoms/agents/types/duplicate_agent_agents_response.py b/src/smallestai/agents/agents/types/duplicate_agent_agents_response.py similarity index 100% rename from src/smallestai/atoms/agents/types/duplicate_agent_agents_response.py rename to src/smallestai/agents/agents/types/duplicate_agent_agents_response.py diff --git a/src/smallestai/atoms/agents/types/duplicate_agent_agents_response_data.py b/src/smallestai/agents/agents/types/duplicate_agent_agents_response_data.py similarity index 100% rename from src/smallestai/atoms/agents/types/duplicate_agent_agents_response_data.py rename to src/smallestai/agents/agents/types/duplicate_agent_agents_response_data.py diff --git a/src/smallestai/atoms/agents/types/get_agent_agents_response.py b/src/smallestai/agents/agents/types/get_agent_agents_response.py similarity index 100% rename from src/smallestai/atoms/agents/types/get_agent_agents_response.py rename to src/smallestai/agents/agents/types/get_agent_agents_response.py diff --git a/src/smallestai/atoms/agents/types/get_agent_avatar_presigned_url_response.py b/src/smallestai/agents/agents/types/get_agent_avatar_presigned_url_response.py similarity index 100% rename from src/smallestai/atoms/agents/types/get_agent_avatar_presigned_url_response.py rename to src/smallestai/agents/agents/types/get_agent_avatar_presigned_url_response.py diff --git a/src/smallestai/atoms/agents/types/get_agent_avatar_presigned_url_response_data.py b/src/smallestai/agents/agents/types/get_agent_avatar_presigned_url_response_data.py similarity index 100% rename from src/smallestai/atoms/agents/types/get_agent_avatar_presigned_url_response_data.py rename to src/smallestai/agents/agents/types/get_agent_avatar_presigned_url_response_data.py diff --git a/src/smallestai/atoms/agents/types/get_agent_call_logs_response.py b/src/smallestai/agents/agents/types/get_agent_call_logs_response.py similarity index 100% rename from src/smallestai/atoms/agents/types/get_agent_call_logs_response.py rename to src/smallestai/agents/agents/types/get_agent_call_logs_response.py diff --git a/src/smallestai/atoms/agents/types/get_agent_call_logs_response_data.py b/src/smallestai/agents/agents/types/get_agent_call_logs_response_data.py similarity index 100% rename from src/smallestai/atoms/agents/types/get_agent_call_logs_response_data.py rename to src/smallestai/agents/agents/types/get_agent_call_logs_response_data.py diff --git a/src/smallestai/atoms/agents/types/get_agent_call_logs_response_data_call_logs_item.py b/src/smallestai/agents/agents/types/get_agent_call_logs_response_data_call_logs_item.py similarity index 100% rename from src/smallestai/atoms/agents/types/get_agent_call_logs_response_data_call_logs_item.py rename to src/smallestai/agents/agents/types/get_agent_call_logs_response_data_call_logs_item.py diff --git a/src/smallestai/atoms/agents/types/get_agent_widget_config_response.py b/src/smallestai/agents/agents/types/get_agent_widget_config_response.py similarity index 100% rename from src/smallestai/atoms/agents/types/get_agent_widget_config_response.py rename to src/smallestai/agents/agents/types/get_agent_widget_config_response.py diff --git a/src/smallestai/atoms/agents/types/get_agent_widget_config_response_data.py b/src/smallestai/agents/agents/types/get_agent_widget_config_response_data.py similarity index 100% rename from src/smallestai/atoms/agents/types/get_agent_widget_config_response_data.py rename to src/smallestai/agents/agents/types/get_agent_widget_config_response_data.py diff --git a/src/smallestai/atoms/agents/types/get_agent_widget_config_response_data_mode.py b/src/smallestai/agents/agents/types/get_agent_widget_config_response_data_mode.py similarity index 100% rename from src/smallestai/atoms/agents/types/get_agent_widget_config_response_data_mode.py rename to src/smallestai/agents/agents/types/get_agent_widget_config_response_data_mode.py diff --git a/src/smallestai/atoms/agents/types/get_agent_widget_config_response_data_position.py b/src/smallestai/agents/agents/types/get_agent_widget_config_response_data_position.py similarity index 100% rename from src/smallestai/atoms/agents/types/get_agent_widget_config_response_data_position.py rename to src/smallestai/agents/agents/types/get_agent_widget_config_response_data_position.py diff --git a/src/smallestai/atoms/agents/types/get_agent_widget_config_response_data_size.py b/src/smallestai/agents/agents/types/get_agent_widget_config_response_data_size.py similarity index 100% rename from src/smallestai/atoms/agents/types/get_agent_widget_config_response_data_size.py rename to src/smallestai/agents/agents/types/get_agent_widget_config_response_data_size.py diff --git a/src/smallestai/atoms/agents/types/get_agent_widget_config_response_data_theme.py b/src/smallestai/agents/agents/types/get_agent_widget_config_response_data_theme.py similarity index 100% rename from src/smallestai/atoms/agents/types/get_agent_widget_config_response_data_theme.py rename to src/smallestai/agents/agents/types/get_agent_widget_config_response_data_theme.py diff --git a/src/smallestai/atoms/agents/types/list_agents_agents_request_sort_field.py b/src/smallestai/agents/agents/types/list_agents_agents_request_sort_field.py similarity index 100% rename from src/smallestai/atoms/agents/types/list_agents_agents_request_sort_field.py rename to src/smallestai/agents/agents/types/list_agents_agents_request_sort_field.py diff --git a/src/smallestai/atoms/agents/types/list_agents_agents_request_sort_order.py b/src/smallestai/agents/agents/types/list_agents_agents_request_sort_order.py similarity index 100% rename from src/smallestai/atoms/agents/types/list_agents_agents_request_sort_order.py rename to src/smallestai/agents/agents/types/list_agents_agents_request_sort_order.py diff --git a/src/smallestai/atoms/agents/types/list_agents_agents_request_type.py b/src/smallestai/agents/agents/types/list_agents_agents_request_type.py similarity index 100% rename from src/smallestai/atoms/agents/types/list_agents_agents_request_type.py rename to src/smallestai/agents/agents/types/list_agents_agents_request_type.py diff --git a/src/smallestai/atoms/agents/types/list_agents_agents_response.py b/src/smallestai/agents/agents/types/list_agents_agents_response.py similarity index 100% rename from src/smallestai/atoms/agents/types/list_agents_agents_response.py rename to src/smallestai/agents/agents/types/list_agents_agents_response.py diff --git a/src/smallestai/atoms/agents/types/list_agents_agents_response_data.py b/src/smallestai/agents/agents/types/list_agents_agents_response_data.py similarity index 100% rename from src/smallestai/atoms/agents/types/list_agents_agents_response_data.py rename to src/smallestai/agents/agents/types/list_agents_agents_response_data.py diff --git a/src/smallestai/atoms/agents/types/update_agent_agents_response.py b/src/smallestai/agents/agents/types/update_agent_agents_response.py similarity index 100% rename from src/smallestai/atoms/agents/types/update_agent_agents_response.py rename to src/smallestai/agents/agents/types/update_agent_agents_response.py diff --git a/src/smallestai/atoms/agents/types/update_agent_widget_config_request_widget_config.py b/src/smallestai/agents/agents/types/update_agent_widget_config_request_widget_config.py similarity index 100% rename from src/smallestai/atoms/agents/types/update_agent_widget_config_request_widget_config.py rename to src/smallestai/agents/agents/types/update_agent_widget_config_request_widget_config.py diff --git a/src/smallestai/atoms/agents/types/update_agent_widget_config_request_widget_config_mode.py b/src/smallestai/agents/agents/types/update_agent_widget_config_request_widget_config_mode.py similarity index 100% rename from src/smallestai/atoms/agents/types/update_agent_widget_config_request_widget_config_mode.py rename to src/smallestai/agents/agents/types/update_agent_widget_config_request_widget_config_mode.py diff --git a/src/smallestai/atoms/agents/types/update_agent_widget_config_request_widget_config_position.py b/src/smallestai/agents/agents/types/update_agent_widget_config_request_widget_config_position.py similarity index 100% rename from src/smallestai/atoms/agents/types/update_agent_widget_config_request_widget_config_position.py rename to src/smallestai/agents/agents/types/update_agent_widget_config_request_widget_config_position.py diff --git a/src/smallestai/atoms/agents/types/update_agent_widget_config_request_widget_config_size.py b/src/smallestai/agents/agents/types/update_agent_widget_config_request_widget_config_size.py similarity index 100% rename from src/smallestai/atoms/agents/types/update_agent_widget_config_request_widget_config_size.py rename to src/smallestai/agents/agents/types/update_agent_widget_config_request_widget_config_size.py diff --git a/src/smallestai/atoms/agents/types/update_agent_widget_config_request_widget_config_theme.py b/src/smallestai/agents/agents/types/update_agent_widget_config_request_widget_config_theme.py similarity index 100% rename from src/smallestai/atoms/agents/types/update_agent_widget_config_request_widget_config_theme.py rename to src/smallestai/agents/agents/types/update_agent_widget_config_request_widget_config_theme.py diff --git a/src/smallestai/atoms/agents/types/update_agent_widget_config_response.py b/src/smallestai/agents/agents/types/update_agent_widget_config_response.py similarity index 100% rename from src/smallestai/atoms/agents/types/update_agent_widget_config_response.py rename to src/smallestai/agents/agents/types/update_agent_widget_config_response.py diff --git a/src/smallestai/atoms/analytics/__init__.py b/src/smallestai/agents/analytics/__init__.py similarity index 100% rename from src/smallestai/atoms/analytics/__init__.py rename to src/smallestai/agents/analytics/__init__.py diff --git a/src/smallestai/atoms/analytics/client.py b/src/smallestai/agents/analytics/client.py similarity index 96% rename from src/smallestai/atoms/analytics/client.py rename to src/smallestai/agents/analytics/client.py index 4a38ce6e0..ce555a632 100644 --- a/src/smallestai/atoms/analytics/client.py +++ b/src/smallestai/agents/analytics/client.py @@ -96,7 +96,7 @@ def get_call_counts_log( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_call_counts_log() + client.agents.analytics.get_call_counts_log() """ _response = self._raw_client.get_call_counts_log( agent_id=agent_id, @@ -155,7 +155,7 @@ def get_call_counts_by_day( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_call_counts_by_day() + client.agents.analytics.get_call_counts_by_day() """ _response = self._raw_client.get_call_counts_by_day( agent_id=agent_id, @@ -193,7 +193,7 @@ def get_conversation_details( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_conversation_details( + client.agents.analytics.get_conversation_details( call_id="callId", ) """ @@ -233,7 +233,7 @@ def get_usage_timeseries( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_usage_timeseries() + client.agents.analytics.get_usage_timeseries() """ _response = self._raw_client.get_usage_timeseries( date_from=date_from, date_to=date_to, request_options=request_options @@ -285,7 +285,7 @@ def get_dashboard( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_dashboard() + client.agents.analytics.get_dashboard() """ _response = self._raw_client.get_dashboard( agent_id=agent_id, @@ -342,7 +342,7 @@ def get_analytics_summary( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_analytics_summary() + client.agents.analytics.get_analytics_summary() """ _response = self._raw_client.get_analytics_summary( agent_id=agent_id, @@ -399,7 +399,7 @@ def get_call_volume_timeseries( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_call_volume_timeseries() + client.agents.analytics.get_call_volume_timeseries() """ _response = self._raw_client.get_call_volume_timeseries( agent_id=agent_id, @@ -456,7 +456,7 @@ def get_pickup_rate_by_number( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_pickup_rate_by_number() + client.agents.analytics.get_pickup_rate_by_number() """ _response = self._raw_client.get_pickup_rate_by_number( agent_id=agent_id, @@ -513,7 +513,7 @@ def get_phone_number_trends( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_phone_number_trends() + client.agents.analytics.get_phone_number_trends() """ _response = self._raw_client.get_phone_number_trends( agent_id=agent_id, @@ -570,7 +570,7 @@ def get_hourly_performance( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_hourly_performance() + client.agents.analytics.get_hourly_performance() """ _response = self._raw_client.get_hourly_performance( agent_id=agent_id, @@ -627,7 +627,7 @@ def get_call_outcomes_timeseries( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_call_outcomes_timeseries() + client.agents.analytics.get_call_outcomes_timeseries() """ _response = self._raw_client.get_call_outcomes_timeseries( agent_id=agent_id, @@ -684,7 +684,7 @@ def get_duration_stats( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_duration_stats() + client.agents.analytics.get_duration_stats() """ _response = self._raw_client.get_duration_stats( agent_id=agent_id, @@ -741,7 +741,7 @@ def get_weekly_trends( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_weekly_trends() + client.agents.analytics.get_weekly_trends() """ _response = self._raw_client.get_weekly_trends( agent_id=agent_id, @@ -810,7 +810,7 @@ def get_agent_performance( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_agent_performance() + client.agents.analytics.get_agent_performance() """ _response = self._raw_client.get_agent_performance( agent_id=agent_id, @@ -864,7 +864,7 @@ def get_analytics_concurrency( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_analytics_concurrency( + client.agents.analytics.get_analytics_concurrency( date=datetime.date.fromisoformat( "2023-01-15", ), @@ -910,7 +910,7 @@ def get_call_start_distribution( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_call_start_distribution( + client.agents.analytics.get_call_start_distribution( date=datetime.date.fromisoformat( "2023-01-15", ), @@ -956,7 +956,7 @@ def get_daily_call_summary( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_daily_call_summary( + client.agents.analytics.get_daily_call_summary( date=datetime.date.fromisoformat( "2023-01-15", ), @@ -1012,7 +1012,7 @@ def get_attempt_cohort( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.analytics.get_attempt_cohort() + client.agents.analytics.get_attempt_cohort() """ _response = self._raw_client.get_attempt_cohort( agent_id=agent_id, @@ -1098,7 +1098,7 @@ async def get_call_counts_log( async def main() -> None: - await client.atoms.analytics.get_call_counts_log() + await client.agents.analytics.get_call_counts_log() asyncio.run(main()) @@ -1165,7 +1165,7 @@ async def get_call_counts_by_day( async def main() -> None: - await client.atoms.analytics.get_call_counts_by_day() + await client.agents.analytics.get_call_counts_by_day() asyncio.run(main()) @@ -1211,7 +1211,7 @@ async def get_conversation_details( async def main() -> None: - await client.atoms.analytics.get_conversation_details( + await client.agents.analytics.get_conversation_details( call_id="callId", ) @@ -1259,7 +1259,7 @@ async def get_usage_timeseries( async def main() -> None: - await client.atoms.analytics.get_usage_timeseries() + await client.agents.analytics.get_usage_timeseries() asyncio.run(main()) @@ -1319,7 +1319,7 @@ async def get_dashboard( async def main() -> None: - await client.atoms.analytics.get_dashboard() + await client.agents.analytics.get_dashboard() asyncio.run(main()) @@ -1384,7 +1384,7 @@ async def get_analytics_summary( async def main() -> None: - await client.atoms.analytics.get_analytics_summary() + await client.agents.analytics.get_analytics_summary() asyncio.run(main()) @@ -1449,7 +1449,7 @@ async def get_call_volume_timeseries( async def main() -> None: - await client.atoms.analytics.get_call_volume_timeseries() + await client.agents.analytics.get_call_volume_timeseries() asyncio.run(main()) @@ -1514,7 +1514,7 @@ async def get_pickup_rate_by_number( async def main() -> None: - await client.atoms.analytics.get_pickup_rate_by_number() + await client.agents.analytics.get_pickup_rate_by_number() asyncio.run(main()) @@ -1579,7 +1579,7 @@ async def get_phone_number_trends( async def main() -> None: - await client.atoms.analytics.get_phone_number_trends() + await client.agents.analytics.get_phone_number_trends() asyncio.run(main()) @@ -1644,7 +1644,7 @@ async def get_hourly_performance( async def main() -> None: - await client.atoms.analytics.get_hourly_performance() + await client.agents.analytics.get_hourly_performance() asyncio.run(main()) @@ -1709,7 +1709,7 @@ async def get_call_outcomes_timeseries( async def main() -> None: - await client.atoms.analytics.get_call_outcomes_timeseries() + await client.agents.analytics.get_call_outcomes_timeseries() asyncio.run(main()) @@ -1774,7 +1774,7 @@ async def get_duration_stats( async def main() -> None: - await client.atoms.analytics.get_duration_stats() + await client.agents.analytics.get_duration_stats() asyncio.run(main()) @@ -1839,7 +1839,7 @@ async def get_weekly_trends( async def main() -> None: - await client.atoms.analytics.get_weekly_trends() + await client.agents.analytics.get_weekly_trends() asyncio.run(main()) @@ -1916,7 +1916,7 @@ async def get_agent_performance( async def main() -> None: - await client.atoms.analytics.get_agent_performance() + await client.agents.analytics.get_agent_performance() asyncio.run(main()) @@ -1977,7 +1977,7 @@ async def get_analytics_concurrency( async def main() -> None: - await client.atoms.analytics.get_analytics_concurrency( + await client.agents.analytics.get_analytics_concurrency( date=datetime.date.fromisoformat( "2023-01-15", ), @@ -2030,7 +2030,7 @@ async def get_call_start_distribution( async def main() -> None: - await client.atoms.analytics.get_call_start_distribution( + await client.agents.analytics.get_call_start_distribution( date=datetime.date.fromisoformat( "2023-01-15", ), @@ -2083,7 +2083,7 @@ async def get_daily_call_summary( async def main() -> None: - await client.atoms.analytics.get_daily_call_summary( + await client.agents.analytics.get_daily_call_summary( date=datetime.date.fromisoformat( "2023-01-15", ), @@ -2147,7 +2147,7 @@ async def get_attempt_cohort( async def main() -> None: - await client.atoms.analytics.get_attempt_cohort() + await client.agents.analytics.get_attempt_cohort() asyncio.run(main()) diff --git a/src/smallestai/atoms/analytics/raw_client.py b/src/smallestai/agents/analytics/raw_client.py similarity index 100% rename from src/smallestai/atoms/analytics/raw_client.py rename to src/smallestai/agents/analytics/raw_client.py diff --git a/src/smallestai/atoms/analytics/types/__init__.py b/src/smallestai/agents/analytics/types/__init__.py similarity index 100% rename from src/smallestai/atoms/analytics/types/__init__.py rename to src/smallestai/agents/analytics/types/__init__.py diff --git a/src/smallestai/atoms/analytics/types/get_agent_performance_request_sort_order.py b/src/smallestai/agents/analytics/types/get_agent_performance_request_sort_order.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_agent_performance_request_sort_order.py rename to src/smallestai/agents/analytics/types/get_agent_performance_request_sort_order.py diff --git a/src/smallestai/atoms/analytics/types/get_agent_performance_response.py b/src/smallestai/agents/analytics/types/get_agent_performance_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_agent_performance_response.py rename to src/smallestai/agents/analytics/types/get_agent_performance_response.py diff --git a/src/smallestai/atoms/analytics/types/get_agent_performance_response_data.py b/src/smallestai/agents/analytics/types/get_agent_performance_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_agent_performance_response_data.py rename to src/smallestai/agents/analytics/types/get_agent_performance_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_agent_performance_response_data_agents_item.py b/src/smallestai/agents/analytics/types/get_agent_performance_response_data_agents_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_agent_performance_response_data_agents_item.py rename to src/smallestai/agents/analytics/types/get_agent_performance_response_data_agents_item.py diff --git a/src/smallestai/atoms/analytics/types/get_analytics_concurrency_request_include_agents.py b/src/smallestai/agents/analytics/types/get_analytics_concurrency_request_include_agents.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_analytics_concurrency_request_include_agents.py rename to src/smallestai/agents/analytics/types/get_analytics_concurrency_request_include_agents.py diff --git a/src/smallestai/atoms/analytics/types/get_analytics_concurrency_response.py b/src/smallestai/agents/analytics/types/get_analytics_concurrency_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_analytics_concurrency_response.py rename to src/smallestai/agents/analytics/types/get_analytics_concurrency_response.py diff --git a/src/smallestai/atoms/analytics/types/get_analytics_concurrency_response_data.py b/src/smallestai/agents/analytics/types/get_analytics_concurrency_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_analytics_concurrency_response_data.py rename to src/smallestai/agents/analytics/types/get_analytics_concurrency_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_analytics_concurrency_response_data_by_agent_item.py b/src/smallestai/agents/analytics/types/get_analytics_concurrency_response_data_by_agent_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_analytics_concurrency_response_data_by_agent_item.py rename to src/smallestai/agents/analytics/types/get_analytics_concurrency_response_data_by_agent_item.py diff --git a/src/smallestai/atoms/analytics/types/get_analytics_concurrency_response_data_data_points_item.py b/src/smallestai/agents/analytics/types/get_analytics_concurrency_response_data_data_points_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_analytics_concurrency_response_data_data_points_item.py rename to src/smallestai/agents/analytics/types/get_analytics_concurrency_response_data_data_points_item.py diff --git a/src/smallestai/atoms/analytics/types/get_analytics_summary_response.py b/src/smallestai/agents/analytics/types/get_analytics_summary_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_analytics_summary_response.py rename to src/smallestai/agents/analytics/types/get_analytics_summary_response.py diff --git a/src/smallestai/atoms/analytics/types/get_analytics_summary_response_data.py b/src/smallestai/agents/analytics/types/get_analytics_summary_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_analytics_summary_response_data.py rename to src/smallestai/agents/analytics/types/get_analytics_summary_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_attempt_cohort_response.py b/src/smallestai/agents/analytics/types/get_attempt_cohort_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_attempt_cohort_response.py rename to src/smallestai/agents/analytics/types/get_attempt_cohort_response.py diff --git a/src/smallestai/atoms/analytics/types/get_attempt_cohort_response_data.py b/src/smallestai/agents/analytics/types/get_attempt_cohort_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_attempt_cohort_response_data.py rename to src/smallestai/agents/analytics/types/get_attempt_cohort_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_attempt_cohort_response_data_cohorts_item.py b/src/smallestai/agents/analytics/types/get_attempt_cohort_response_data_cohorts_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_attempt_cohort_response_data_cohorts_item.py rename to src/smallestai/agents/analytics/types/get_attempt_cohort_response_data_cohorts_item.py diff --git a/src/smallestai/atoms/analytics/types/get_call_counts_by_day_response.py b/src/smallestai/agents/analytics/types/get_call_counts_by_day_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_counts_by_day_response.py rename to src/smallestai/agents/analytics/types/get_call_counts_by_day_response.py diff --git a/src/smallestai/atoms/analytics/types/get_call_counts_by_day_response_data.py b/src/smallestai/agents/analytics/types/get_call_counts_by_day_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_counts_by_day_response_data.py rename to src/smallestai/agents/analytics/types/get_call_counts_by_day_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_call_counts_by_day_response_data_call_counts_by_day_item.py b/src/smallestai/agents/analytics/types/get_call_counts_by_day_response_data_call_counts_by_day_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_counts_by_day_response_data_call_counts_by_day_item.py rename to src/smallestai/agents/analytics/types/get_call_counts_by_day_response_data_call_counts_by_day_item.py diff --git a/src/smallestai/atoms/analytics/types/get_call_counts_log_response.py b/src/smallestai/agents/analytics/types/get_call_counts_log_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_counts_log_response.py rename to src/smallestai/agents/analytics/types/get_call_counts_log_response.py diff --git a/src/smallestai/atoms/analytics/types/get_call_counts_log_response_data.py b/src/smallestai/agents/analytics/types/get_call_counts_log_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_counts_log_response_data.py rename to src/smallestai/agents/analytics/types/get_call_counts_log_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_call_counts_log_response_data_calls_item.py b/src/smallestai/agents/analytics/types/get_call_counts_log_response_data_calls_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_counts_log_response_data_calls_item.py rename to src/smallestai/agents/analytics/types/get_call_counts_log_response_data_calls_item.py diff --git a/src/smallestai/atoms/analytics/types/get_call_outcomes_timeseries_response.py b/src/smallestai/agents/analytics/types/get_call_outcomes_timeseries_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_outcomes_timeseries_response.py rename to src/smallestai/agents/analytics/types/get_call_outcomes_timeseries_response.py diff --git a/src/smallestai/atoms/analytics/types/get_call_outcomes_timeseries_response_data.py b/src/smallestai/agents/analytics/types/get_call_outcomes_timeseries_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_outcomes_timeseries_response_data.py rename to src/smallestai/agents/analytics/types/get_call_outcomes_timeseries_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_call_outcomes_timeseries_response_data_data_points_item.py b/src/smallestai/agents/analytics/types/get_call_outcomes_timeseries_response_data_data_points_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_outcomes_timeseries_response_data_data_points_item.py rename to src/smallestai/agents/analytics/types/get_call_outcomes_timeseries_response_data_data_points_item.py diff --git a/src/smallestai/atoms/analytics/types/get_call_outcomes_timeseries_response_data_totals.py b/src/smallestai/agents/analytics/types/get_call_outcomes_timeseries_response_data_totals.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_outcomes_timeseries_response_data_totals.py rename to src/smallestai/agents/analytics/types/get_call_outcomes_timeseries_response_data_totals.py diff --git a/src/smallestai/atoms/analytics/types/get_call_start_distribution_response.py b/src/smallestai/agents/analytics/types/get_call_start_distribution_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_start_distribution_response.py rename to src/smallestai/agents/analytics/types/get_call_start_distribution_response.py diff --git a/src/smallestai/atoms/analytics/types/get_call_start_distribution_response_data.py b/src/smallestai/agents/analytics/types/get_call_start_distribution_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_start_distribution_response_data.py rename to src/smallestai/agents/analytics/types/get_call_start_distribution_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_call_start_distribution_response_data_data_points_item.py b/src/smallestai/agents/analytics/types/get_call_start_distribution_response_data_data_points_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_start_distribution_response_data_data_points_item.py rename to src/smallestai/agents/analytics/types/get_call_start_distribution_response_data_data_points_item.py diff --git a/src/smallestai/atoms/analytics/types/get_call_volume_timeseries_response.py b/src/smallestai/agents/analytics/types/get_call_volume_timeseries_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_volume_timeseries_response.py rename to src/smallestai/agents/analytics/types/get_call_volume_timeseries_response.py diff --git a/src/smallestai/atoms/analytics/types/get_call_volume_timeseries_response_data.py b/src/smallestai/agents/analytics/types/get_call_volume_timeseries_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_volume_timeseries_response_data.py rename to src/smallestai/agents/analytics/types/get_call_volume_timeseries_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_call_volume_timeseries_response_data_data_points_item.py b/src/smallestai/agents/analytics/types/get_call_volume_timeseries_response_data_data_points_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_call_volume_timeseries_response_data_data_points_item.py rename to src/smallestai/agents/analytics/types/get_call_volume_timeseries_response_data_data_points_item.py diff --git a/src/smallestai/atoms/analytics/types/get_conversation_details_response.py b/src/smallestai/agents/analytics/types/get_conversation_details_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_conversation_details_response.py rename to src/smallestai/agents/analytics/types/get_conversation_details_response.py diff --git a/src/smallestai/atoms/analytics/types/get_conversation_details_response_data.py b/src/smallestai/agents/analytics/types/get_conversation_details_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_conversation_details_response_data.py rename to src/smallestai/agents/analytics/types/get_conversation_details_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_conversation_details_response_data_events_item.py b/src/smallestai/agents/analytics/types/get_conversation_details_response_data_events_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_conversation_details_response_data_events_item.py rename to src/smallestai/agents/analytics/types/get_conversation_details_response_data_events_item.py diff --git a/src/smallestai/atoms/analytics/types/get_conversation_details_response_data_transcript_item.py b/src/smallestai/agents/analytics/types/get_conversation_details_response_data_transcript_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_conversation_details_response_data_transcript_item.py rename to src/smallestai/agents/analytics/types/get_conversation_details_response_data_transcript_item.py diff --git a/src/smallestai/atoms/analytics/types/get_daily_call_summary_response.py b/src/smallestai/agents/analytics/types/get_daily_call_summary_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_daily_call_summary_response.py rename to src/smallestai/agents/analytics/types/get_daily_call_summary_response.py diff --git a/src/smallestai/atoms/analytics/types/get_daily_call_summary_response_data.py b/src/smallestai/agents/analytics/types/get_daily_call_summary_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_daily_call_summary_response_data.py rename to src/smallestai/agents/analytics/types/get_daily_call_summary_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_dashboard_response.py b/src/smallestai/agents/analytics/types/get_dashboard_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_dashboard_response.py rename to src/smallestai/agents/analytics/types/get_dashboard_response.py diff --git a/src/smallestai/atoms/analytics/types/get_dashboard_response_data.py b/src/smallestai/agents/analytics/types/get_dashboard_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_dashboard_response_data.py rename to src/smallestai/agents/analytics/types/get_dashboard_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_duration_stats_response.py b/src/smallestai/agents/analytics/types/get_duration_stats_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_duration_stats_response.py rename to src/smallestai/agents/analytics/types/get_duration_stats_response.py diff --git a/src/smallestai/atoms/analytics/types/get_duration_stats_response_data.py b/src/smallestai/agents/analytics/types/get_duration_stats_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_duration_stats_response_data.py rename to src/smallestai/agents/analytics/types/get_duration_stats_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_hourly_performance_response.py b/src/smallestai/agents/analytics/types/get_hourly_performance_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_hourly_performance_response.py rename to src/smallestai/agents/analytics/types/get_hourly_performance_response.py diff --git a/src/smallestai/atoms/analytics/types/get_hourly_performance_response_data.py b/src/smallestai/agents/analytics/types/get_hourly_performance_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_hourly_performance_response_data.py rename to src/smallestai/agents/analytics/types/get_hourly_performance_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_hourly_performance_response_data_hours_item.py b/src/smallestai/agents/analytics/types/get_hourly_performance_response_data_hours_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_hourly_performance_response_data_hours_item.py rename to src/smallestai/agents/analytics/types/get_hourly_performance_response_data_hours_item.py diff --git a/src/smallestai/atoms/analytics/types/get_phone_number_trends_response.py b/src/smallestai/agents/analytics/types/get_phone_number_trends_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_phone_number_trends_response.py rename to src/smallestai/agents/analytics/types/get_phone_number_trends_response.py diff --git a/src/smallestai/atoms/analytics/types/get_phone_number_trends_response_data.py b/src/smallestai/agents/analytics/types/get_phone_number_trends_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_phone_number_trends_response_data.py rename to src/smallestai/agents/analytics/types/get_phone_number_trends_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_phone_number_trends_response_data_trends_item.py b/src/smallestai/agents/analytics/types/get_phone_number_trends_response_data_trends_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_phone_number_trends_response_data_trends_item.py rename to src/smallestai/agents/analytics/types/get_phone_number_trends_response_data_trends_item.py diff --git a/src/smallestai/atoms/analytics/types/get_phone_number_trends_response_data_trends_item_data_points_item.py b/src/smallestai/agents/analytics/types/get_phone_number_trends_response_data_trends_item_data_points_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_phone_number_trends_response_data_trends_item_data_points_item.py rename to src/smallestai/agents/analytics/types/get_phone_number_trends_response_data_trends_item_data_points_item.py diff --git a/src/smallestai/atoms/analytics/types/get_pickup_rate_by_number_response.py b/src/smallestai/agents/analytics/types/get_pickup_rate_by_number_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_pickup_rate_by_number_response.py rename to src/smallestai/agents/analytics/types/get_pickup_rate_by_number_response.py diff --git a/src/smallestai/atoms/analytics/types/get_pickup_rate_by_number_response_data.py b/src/smallestai/agents/analytics/types/get_pickup_rate_by_number_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_pickup_rate_by_number_response_data.py rename to src/smallestai/agents/analytics/types/get_pickup_rate_by_number_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_pickup_rate_by_number_response_data_numbers_item.py b/src/smallestai/agents/analytics/types/get_pickup_rate_by_number_response_data_numbers_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_pickup_rate_by_number_response_data_numbers_item.py rename to src/smallestai/agents/analytics/types/get_pickup_rate_by_number_response_data_numbers_item.py diff --git a/src/smallestai/atoms/analytics/types/get_usage_timeseries_response.py b/src/smallestai/agents/analytics/types/get_usage_timeseries_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_usage_timeseries_response.py rename to src/smallestai/agents/analytics/types/get_usage_timeseries_response.py diff --git a/src/smallestai/atoms/analytics/types/get_usage_timeseries_response_data.py b/src/smallestai/agents/analytics/types/get_usage_timeseries_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_usage_timeseries_response_data.py rename to src/smallestai/agents/analytics/types/get_usage_timeseries_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_usage_timeseries_response_data_date_range.py b/src/smallestai/agents/analytics/types/get_usage_timeseries_response_data_date_range.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_usage_timeseries_response_data_date_range.py rename to src/smallestai/agents/analytics/types/get_usage_timeseries_response_data_date_range.py diff --git a/src/smallestai/atoms/analytics/types/get_usage_timeseries_response_data_day_wise_credits_item.py b/src/smallestai/agents/analytics/types/get_usage_timeseries_response_data_day_wise_credits_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_usage_timeseries_response_data_day_wise_credits_item.py rename to src/smallestai/agents/analytics/types/get_usage_timeseries_response_data_day_wise_credits_item.py diff --git a/src/smallestai/atoms/analytics/types/get_weekly_trends_response.py b/src/smallestai/agents/analytics/types/get_weekly_trends_response.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_weekly_trends_response.py rename to src/smallestai/agents/analytics/types/get_weekly_trends_response.py diff --git a/src/smallestai/atoms/analytics/types/get_weekly_trends_response_data.py b/src/smallestai/agents/analytics/types/get_weekly_trends_response_data.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_weekly_trends_response_data.py rename to src/smallestai/agents/analytics/types/get_weekly_trends_response_data.py diff --git a/src/smallestai/atoms/analytics/types/get_weekly_trends_response_data_weeks_item.py b/src/smallestai/agents/analytics/types/get_weekly_trends_response_data_weeks_item.py similarity index 100% rename from src/smallestai/atoms/analytics/types/get_weekly_trends_response_data_weeks_item.py rename to src/smallestai/agents/analytics/types/get_weekly_trends_response_data_weeks_item.py diff --git a/src/smallestai/atoms/audience/__init__.py b/src/smallestai/agents/audience/__init__.py similarity index 100% rename from src/smallestai/atoms/audience/__init__.py rename to src/smallestai/agents/audience/__init__.py diff --git a/src/smallestai/atoms/audience/client.py b/src/smallestai/agents/audience/client.py similarity index 96% rename from src/smallestai/atoms/audience/client.py rename to src/smallestai/agents/audience/client.py index 0cd656e53..0e6f1e212 100644 --- a/src/smallestai/atoms/audience/client.py +++ b/src/smallestai/agents/audience/client.py @@ -55,7 +55,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Li client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.audience.list() + client.agents.audience.list() """ _response = self._raw_client.list(request_options=request_options) return _response.data @@ -110,7 +110,7 @@ def create_audience_with_csv_upload( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.audience.create_audience_with_csv_upload( + client.agents.audience.create_audience_with_csv_upload( name="name", phone_number_column_name="phoneNumberColumnName", ) @@ -150,7 +150,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.audience.get( + client.agents.audience.get( id="60d0fe4f5311236168a109ca", ) """ @@ -189,7 +189,7 @@ def delete_audience( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.audience.delete_audience( + client.agents.audience.delete_audience( id="60d0fe4f5311236168a109ca", ) """ @@ -234,7 +234,7 @@ def get_audience_members( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.audience.get_audience_members( + client.agents.audience.get_audience_members( id="60d0fe4f5311236168a109ca", page=1, offset=10, @@ -282,7 +282,7 @@ def add_audience_members( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.audience.add_audience_members( + client.agents.audience.add_audience_members( id="60d0fe4f5311236168a109ca", members=[ { @@ -325,7 +325,7 @@ def delete_audience_members( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.audience.delete_audience_members( + client.agents.audience.delete_audience_members( id="60d0fe4f5311236168a109ca", member_ids=["60d0fe4f5311236168a109cd"], ) @@ -374,7 +374,7 @@ def search_audience_members( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.audience.search_audience_members( + client.agents.audience.search_audience_members( id="60d0fe4f5311236168a109ca", query="john", ) @@ -424,7 +424,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None) async def main() -> None: - await client.atoms.audience.list() + await client.agents.audience.list() asyncio.run(main()) @@ -487,7 +487,7 @@ async def create_audience_with_csv_upload( async def main() -> None: - await client.atoms.audience.create_audience_with_csv_upload( + await client.agents.audience.create_audience_with_csv_upload( name="name", phone_number_column_name="phoneNumberColumnName", ) @@ -535,7 +535,7 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions] async def main() -> None: - await client.atoms.audience.get( + await client.agents.audience.get( id="60d0fe4f5311236168a109ca", ) @@ -582,7 +582,7 @@ async def delete_audience( async def main() -> None: - await client.atoms.audience.delete_audience( + await client.agents.audience.delete_audience( id="60d0fe4f5311236168a109ca", ) @@ -635,7 +635,7 @@ async def get_audience_members( async def main() -> None: - await client.atoms.audience.get_audience_members( + await client.agents.audience.get_audience_members( id="60d0fe4f5311236168a109ca", page=1, offset=10, @@ -693,7 +693,7 @@ async def add_audience_members( async def main() -> None: - await client.atoms.audience.add_audience_members( + await client.agents.audience.add_audience_members( id="60d0fe4f5311236168a109ca", members=[ { @@ -744,7 +744,7 @@ async def delete_audience_members( async def main() -> None: - await client.atoms.audience.delete_audience_members( + await client.agents.audience.delete_audience_members( id="60d0fe4f5311236168a109ca", member_ids=["60d0fe4f5311236168a109cd"], ) @@ -803,7 +803,7 @@ async def search_audience_members( async def main() -> None: - await client.atoms.audience.search_audience_members( + await client.agents.audience.search_audience_members( id="60d0fe4f5311236168a109ca", query="john", ) diff --git a/src/smallestai/atoms/audience/raw_client.py b/src/smallestai/agents/audience/raw_client.py similarity index 100% rename from src/smallestai/atoms/audience/raw_client.py rename to src/smallestai/agents/audience/raw_client.py diff --git a/src/smallestai/atoms/audience/types/__init__.py b/src/smallestai/agents/audience/types/__init__.py similarity index 100% rename from src/smallestai/atoms/audience/types/__init__.py rename to src/smallestai/agents/audience/types/__init__.py diff --git a/src/smallestai/atoms/audience/types/delete_audience_id_members_response.py b/src/smallestai/agents/audience/types/delete_audience_id_members_response.py similarity index 100% rename from src/smallestai/atoms/audience/types/delete_audience_id_members_response.py rename to src/smallestai/agents/audience/types/delete_audience_id_members_response.py diff --git a/src/smallestai/atoms/audience/types/delete_audience_id_members_response_data.py b/src/smallestai/agents/audience/types/delete_audience_id_members_response_data.py similarity index 100% rename from src/smallestai/atoms/audience/types/delete_audience_id_members_response_data.py rename to src/smallestai/agents/audience/types/delete_audience_id_members_response_data.py diff --git a/src/smallestai/atoms/audience/types/delete_audience_id_response.py b/src/smallestai/agents/audience/types/delete_audience_id_response.py similarity index 100% rename from src/smallestai/atoms/audience/types/delete_audience_id_response.py rename to src/smallestai/agents/audience/types/delete_audience_id_response.py diff --git a/src/smallestai/atoms/audience/types/get_audience_id_members_response.py b/src/smallestai/agents/audience/types/get_audience_id_members_response.py similarity index 100% rename from src/smallestai/atoms/audience/types/get_audience_id_members_response.py rename to src/smallestai/agents/audience/types/get_audience_id_members_response.py diff --git a/src/smallestai/atoms/audience/types/get_audience_id_members_response_data.py b/src/smallestai/agents/audience/types/get_audience_id_members_response_data.py similarity index 100% rename from src/smallestai/atoms/audience/types/get_audience_id_members_response_data.py rename to src/smallestai/agents/audience/types/get_audience_id_members_response_data.py diff --git a/src/smallestai/atoms/audience/types/get_audience_id_members_response_data_members_item.py b/src/smallestai/agents/audience/types/get_audience_id_members_response_data_members_item.py similarity index 100% rename from src/smallestai/atoms/audience/types/get_audience_id_members_response_data_members_item.py rename to src/smallestai/agents/audience/types/get_audience_id_members_response_data_members_item.py diff --git a/src/smallestai/atoms/audience/types/get_audience_id_members_search_response.py b/src/smallestai/agents/audience/types/get_audience_id_members_search_response.py similarity index 100% rename from src/smallestai/atoms/audience/types/get_audience_id_members_search_response.py rename to src/smallestai/agents/audience/types/get_audience_id_members_search_response.py diff --git a/src/smallestai/atoms/audience/types/get_audience_id_members_search_response_data.py b/src/smallestai/agents/audience/types/get_audience_id_members_search_response_data.py similarity index 100% rename from src/smallestai/atoms/audience/types/get_audience_id_members_search_response_data.py rename to src/smallestai/agents/audience/types/get_audience_id_members_search_response_data.py diff --git a/src/smallestai/atoms/audience/types/get_audience_id_members_search_response_data_members_item.py b/src/smallestai/agents/audience/types/get_audience_id_members_search_response_data_members_item.py similarity index 100% rename from src/smallestai/atoms/audience/types/get_audience_id_members_search_response_data_members_item.py rename to src/smallestai/agents/audience/types/get_audience_id_members_search_response_data_members_item.py diff --git a/src/smallestai/atoms/audience/types/get_audience_id_members_search_response_data_search_info.py b/src/smallestai/agents/audience/types/get_audience_id_members_search_response_data_search_info.py similarity index 100% rename from src/smallestai/atoms/audience/types/get_audience_id_members_search_response_data_search_info.py rename to src/smallestai/agents/audience/types/get_audience_id_members_search_response_data_search_info.py diff --git a/src/smallestai/atoms/audience/types/get_audience_id_members_search_response_data_search_info_search_type.py b/src/smallestai/agents/audience/types/get_audience_id_members_search_response_data_search_info_search_type.py similarity index 100% rename from src/smallestai/atoms/audience/types/get_audience_id_members_search_response_data_search_info_search_type.py rename to src/smallestai/agents/audience/types/get_audience_id_members_search_response_data_search_info_search_type.py diff --git a/src/smallestai/atoms/audience/types/get_audience_response.py b/src/smallestai/agents/audience/types/get_audience_response.py similarity index 100% rename from src/smallestai/atoms/audience/types/get_audience_response.py rename to src/smallestai/agents/audience/types/get_audience_response.py diff --git a/src/smallestai/atoms/audience/types/get_audience_response_data.py b/src/smallestai/agents/audience/types/get_audience_response_data.py similarity index 100% rename from src/smallestai/atoms/audience/types/get_audience_response_data.py rename to src/smallestai/agents/audience/types/get_audience_response_data.py diff --git a/src/smallestai/atoms/audience/types/list_audience_response.py b/src/smallestai/agents/audience/types/list_audience_response.py similarity index 100% rename from src/smallestai/atoms/audience/types/list_audience_response.py rename to src/smallestai/agents/audience/types/list_audience_response.py diff --git a/src/smallestai/atoms/audience/types/list_audience_response_data_item.py b/src/smallestai/agents/audience/types/list_audience_response_data_item.py similarity index 100% rename from src/smallestai/atoms/audience/types/list_audience_response_data_item.py rename to src/smallestai/agents/audience/types/list_audience_response_data_item.py diff --git a/src/smallestai/atoms/audience/types/list_audience_response_data_item_campaigns_item.py b/src/smallestai/agents/audience/types/list_audience_response_data_item_campaigns_item.py similarity index 100% rename from src/smallestai/atoms/audience/types/list_audience_response_data_item_campaigns_item.py rename to src/smallestai/agents/audience/types/list_audience_response_data_item_campaigns_item.py diff --git a/src/smallestai/atoms/audience/types/post_audience_id_members_response.py b/src/smallestai/agents/audience/types/post_audience_id_members_response.py similarity index 100% rename from src/smallestai/atoms/audience/types/post_audience_id_members_response.py rename to src/smallestai/agents/audience/types/post_audience_id_members_response.py diff --git a/src/smallestai/atoms/audience/types/post_audience_id_members_response_data_item.py b/src/smallestai/agents/audience/types/post_audience_id_members_response_data_item.py similarity index 100% rename from src/smallestai/atoms/audience/types/post_audience_id_members_response_data_item.py rename to src/smallestai/agents/audience/types/post_audience_id_members_response_data_item.py diff --git a/src/smallestai/atoms/audience/types/post_audience_id_members_response_data_item_data.py b/src/smallestai/agents/audience/types/post_audience_id_members_response_data_item_data.py similarity index 100% rename from src/smallestai/atoms/audience/types/post_audience_id_members_response_data_item_data.py rename to src/smallestai/agents/audience/types/post_audience_id_members_response_data_item_data.py diff --git a/src/smallestai/atoms/audience/types/post_audience_response.py b/src/smallestai/agents/audience/types/post_audience_response.py similarity index 100% rename from src/smallestai/atoms/audience/types/post_audience_response.py rename to src/smallestai/agents/audience/types/post_audience_response.py diff --git a/src/smallestai/atoms/audience/types/post_audience_response_data.py b/src/smallestai/agents/audience/types/post_audience_response_data.py similarity index 100% rename from src/smallestai/atoms/audience/types/post_audience_response_data.py rename to src/smallestai/agents/audience/types/post_audience_response_data.py diff --git a/src/smallestai/atoms/billing/__init__.py b/src/smallestai/agents/billing/__init__.py similarity index 100% rename from src/smallestai/atoms/billing/__init__.py rename to src/smallestai/agents/billing/__init__.py diff --git a/src/smallestai/atoms/billing/client.py b/src/smallestai/agents/billing/client.py similarity index 97% rename from src/smallestai/atoms/billing/client.py rename to src/smallestai/agents/billing/client.py index eebcce73b..e5cc102f0 100644 --- a/src/smallestai/atoms/billing/client.py +++ b/src/smallestai/agents/billing/client.py @@ -53,7 +53,7 @@ def get_balance(self, *, request_options: typing.Optional[RequestOptions] = None client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.billing.get_balance() + client.agents.billing.get_balance() """ _response = self._raw_client.get_balance(request_options=request_options) return _response.data @@ -129,7 +129,7 @@ def get_ledger( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.billing.get_ledger( + client.agents.billing.get_ledger( from_=datetime.datetime.fromisoformat( "2026-07-01 00:00:00+00:00", ), @@ -169,7 +169,7 @@ def get_usage_breakdown( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.billing.get_usage_breakdown() + client.agents.billing.get_usage_breakdown() """ _response = self._raw_client.get_usage_breakdown(request_options=request_options) return _response.data @@ -202,7 +202,7 @@ def list_invoices(self, *, request_options: typing.Optional[RequestOptions] = No client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.billing.list_invoices() + client.agents.billing.list_invoices() """ _response = self._raw_client.list_invoices(request_options=request_options) return _response.data @@ -238,7 +238,7 @@ def get_invoice_pdf( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.billing.get_invoice_pdf( + client.agents.billing.get_invoice_pdf( invoice_id="invoiceId", ) """ @@ -289,7 +289,7 @@ async def get_balance(self, *, request_options: typing.Optional[RequestOptions] async def main() -> None: - await client.atoms.billing.get_balance() + await client.agents.billing.get_balance() asyncio.run(main()) @@ -372,7 +372,7 @@ async def get_ledger( async def main() -> None: - await client.atoms.billing.get_ledger( + await client.agents.billing.get_ledger( from_=datetime.datetime.fromisoformat( "2026-07-01 00:00:00+00:00", ), @@ -420,7 +420,7 @@ async def get_usage_breakdown( async def main() -> None: - await client.atoms.billing.get_usage_breakdown() + await client.agents.billing.get_usage_breakdown() asyncio.run(main()) @@ -463,7 +463,7 @@ async def list_invoices( async def main() -> None: - await client.atoms.billing.list_invoices() + await client.agents.billing.list_invoices() asyncio.run(main()) @@ -507,7 +507,7 @@ async def get_invoice_pdf( async def main() -> None: - await client.atoms.billing.get_invoice_pdf( + await client.agents.billing.get_invoice_pdf( invoice_id="invoiceId", ) diff --git a/src/smallestai/atoms/billing/raw_client.py b/src/smallestai/agents/billing/raw_client.py similarity index 100% rename from src/smallestai/atoms/billing/raw_client.py rename to src/smallestai/agents/billing/raw_client.py diff --git a/src/smallestai/atoms/billing/types/__init__.py b/src/smallestai/agents/billing/types/__init__.py similarity index 100% rename from src/smallestai/atoms/billing/types/__init__.py rename to src/smallestai/agents/billing/types/__init__.py diff --git a/src/smallestai/atoms/billing/types/get_ledger_billing_request_scope.py b/src/smallestai/agents/billing/types/get_ledger_billing_request_scope.py similarity index 100% rename from src/smallestai/atoms/billing/types/get_ledger_billing_request_scope.py rename to src/smallestai/agents/billing/types/get_ledger_billing_request_scope.py diff --git a/src/smallestai/atoms/billing/types/get_ledger_billing_request_type.py b/src/smallestai/agents/billing/types/get_ledger_billing_request_type.py similarity index 100% rename from src/smallestai/atoms/billing/types/get_ledger_billing_request_type.py rename to src/smallestai/agents/billing/types/get_ledger_billing_request_type.py diff --git a/src/smallestai/atoms/call_actions/__init__.py b/src/smallestai/agents/call_actions/__init__.py similarity index 100% rename from src/smallestai/atoms/call_actions/__init__.py rename to src/smallestai/agents/call_actions/__init__.py diff --git a/src/smallestai/atoms/call_actions/client.py b/src/smallestai/agents/call_actions/client.py similarity index 95% rename from src/smallestai/atoms/call_actions/client.py rename to src/smallestai/agents/call_actions/client.py index e3555e199..7e9ee4867 100644 --- a/src/smallestai/atoms/call_actions/client.py +++ b/src/smallestai/agents/call_actions/client.py @@ -82,7 +82,7 @@ def list_call_actions( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.call_actions.list_call_actions( + client.agents.call_actions.list_call_actions( agent_id="agentId", ) """ @@ -143,12 +143,12 @@ def create_call_action( Examples -------- from smallestai import SmallestAI - from smallestai.atoms.call_actions import CreateCallActionRequestConfig + from smallestai.agents.call_actions import CreateCallActionRequestConfig client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.call_actions.create_call_action( + client.agents.call_actions.create_call_action( agent_id="agentId", category="trigger", provider="provider", @@ -192,7 +192,7 @@ def get_call_action( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.call_actions.get_call_action( + client.agents.call_actions.get_call_action( id="id", ) """ @@ -247,7 +247,7 @@ def update_call_action( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.call_actions.update_call_action( + client.agents.call_actions.update_call_action( id="id", ) """ @@ -288,7 +288,7 @@ def delete_call_action( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.call_actions.delete_call_action( + client.agents.call_actions.delete_call_action( id="id", ) """ @@ -361,7 +361,7 @@ async def list_call_actions( async def main() -> None: - await client.atoms.call_actions.list_call_actions( + await client.agents.call_actions.list_call_actions( agent_id="agentId", ) @@ -427,7 +427,7 @@ async def create_call_action( import asyncio from smallestai import AsyncSmallestAI - from smallestai.atoms.call_actions import CreateCallActionRequestConfig + from smallestai.agents.call_actions import CreateCallActionRequestConfig client = AsyncSmallestAI( api_key="YOUR_API_KEY", @@ -435,7 +435,7 @@ async def create_call_action( async def main() -> None: - await client.atoms.call_actions.create_call_action( + await client.agents.call_actions.create_call_action( agent_id="agentId", category="trigger", provider="provider", @@ -487,7 +487,7 @@ async def get_call_action( async def main() -> None: - await client.atoms.call_actions.get_call_action( + await client.agents.call_actions.get_call_action( id="id", ) @@ -550,7 +550,7 @@ async def update_call_action( async def main() -> None: - await client.atoms.call_actions.update_call_action( + await client.agents.call_actions.update_call_action( id="id", ) @@ -599,7 +599,7 @@ async def delete_call_action( async def main() -> None: - await client.atoms.call_actions.delete_call_action( + await client.agents.call_actions.delete_call_action( id="id", ) diff --git a/src/smallestai/atoms/call_actions/raw_client.py b/src/smallestai/agents/call_actions/raw_client.py similarity index 100% rename from src/smallestai/atoms/call_actions/raw_client.py rename to src/smallestai/agents/call_actions/raw_client.py diff --git a/src/smallestai/atoms/call_actions/types/__init__.py b/src/smallestai/agents/call_actions/types/__init__.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/__init__.py rename to src/smallestai/agents/call_actions/types/__init__.py diff --git a/src/smallestai/atoms/call_actions/types/create_call_action_request_action_type.py b/src/smallestai/agents/call_actions/types/create_call_action_request_action_type.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/create_call_action_request_action_type.py rename to src/smallestai/agents/call_actions/types/create_call_action_request_action_type.py diff --git a/src/smallestai/atoms/call_actions/types/create_call_action_request_category.py b/src/smallestai/agents/call_actions/types/create_call_action_request_category.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/create_call_action_request_category.py rename to src/smallestai/agents/call_actions/types/create_call_action_request_category.py diff --git a/src/smallestai/atoms/call_actions/types/create_call_action_request_config.py b/src/smallestai/agents/call_actions/types/create_call_action_request_config.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/create_call_action_request_config.py rename to src/smallestai/agents/call_actions/types/create_call_action_request_config.py diff --git a/src/smallestai/atoms/call_actions/types/create_call_action_response.py b/src/smallestai/agents/call_actions/types/create_call_action_response.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/create_call_action_response.py rename to src/smallestai/agents/call_actions/types/create_call_action_response.py diff --git a/src/smallestai/atoms/call_actions/types/delete_call_action_response.py b/src/smallestai/agents/call_actions/types/delete_call_action_response.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/delete_call_action_response.py rename to src/smallestai/agents/call_actions/types/delete_call_action_response.py diff --git a/src/smallestai/atoms/call_actions/types/delete_call_action_response_data.py b/src/smallestai/agents/call_actions/types/delete_call_action_response_data.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/delete_call_action_response_data.py rename to src/smallestai/agents/call_actions/types/delete_call_action_response_data.py diff --git a/src/smallestai/atoms/call_actions/types/get_call_action_response.py b/src/smallestai/agents/call_actions/types/get_call_action_response.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/get_call_action_response.py rename to src/smallestai/agents/call_actions/types/get_call_action_response.py diff --git a/src/smallestai/atoms/call_actions/types/list_call_actions_request_category.py b/src/smallestai/agents/call_actions/types/list_call_actions_request_category.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/list_call_actions_request_category.py rename to src/smallestai/agents/call_actions/types/list_call_actions_request_category.py diff --git a/src/smallestai/atoms/call_actions/types/list_call_actions_response.py b/src/smallestai/agents/call_actions/types/list_call_actions_response.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/list_call_actions_response.py rename to src/smallestai/agents/call_actions/types/list_call_actions_response.py diff --git a/src/smallestai/atoms/call_actions/types/list_call_actions_response_data.py b/src/smallestai/agents/call_actions/types/list_call_actions_response_data.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/list_call_actions_response_data.py rename to src/smallestai/agents/call_actions/types/list_call_actions_response_data.py diff --git a/src/smallestai/atoms/call_actions/types/update_call_action_request_action_type.py b/src/smallestai/agents/call_actions/types/update_call_action_request_action_type.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/update_call_action_request_action_type.py rename to src/smallestai/agents/call_actions/types/update_call_action_request_action_type.py diff --git a/src/smallestai/atoms/call_actions/types/update_call_action_request_category.py b/src/smallestai/agents/call_actions/types/update_call_action_request_category.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/update_call_action_request_category.py rename to src/smallestai/agents/call_actions/types/update_call_action_request_category.py diff --git a/src/smallestai/atoms/call_actions/types/update_call_action_request_config.py b/src/smallestai/agents/call_actions/types/update_call_action_request_config.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/update_call_action_request_config.py rename to src/smallestai/agents/call_actions/types/update_call_action_request_config.py diff --git a/src/smallestai/atoms/call_actions/types/update_call_action_response.py b/src/smallestai/agents/call_actions/types/update_call_action_response.py similarity index 100% rename from src/smallestai/atoms/call_actions/types/update_call_action_response.py rename to src/smallestai/agents/call_actions/types/update_call_action_response.py diff --git a/src/smallestai/atoms/calls/__init__.py b/src/smallestai/agents/calls/__init__.py similarity index 100% rename from src/smallestai/atoms/calls/__init__.py rename to src/smallestai/agents/calls/__init__.py diff --git a/src/smallestai/atoms/calls/client.py b/src/smallestai/agents/calls/client.py similarity index 98% rename from src/smallestai/atoms/calls/client.py rename to src/smallestai/agents/calls/client.py index 44985c997..6a6d857fe 100644 --- a/src/smallestai/atoms/calls/client.py +++ b/src/smallestai/agents/calls/client.py @@ -126,7 +126,7 @@ def list( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.calls.list( + client.agents.calls.list( agent_ids="60d0fe4f5311236168a109ca,60d0fe4f5311236168a109cb", campaign_ids="60d0fe4f5311236168a109ca,60d0fe4f5311236168a109cb", search="+1234567890", @@ -197,7 +197,7 @@ def search( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.calls.search( + client.agents.calls.search( call_ids=["CALL-1737000000000-abc123", "CALL-1737000000001-def456"], ) """ @@ -228,7 +228,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.calls.get( + client.agents.calls.get( id="CALL-1737000000000-abc123", ) """ @@ -336,7 +336,7 @@ def start_outbound_call( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.calls.start_outbound_call( + client.agents.calls.start_outbound_call( agent_id="60d0fe4f5311236168a109ca", phone_number="+1234567890", ) @@ -465,7 +465,7 @@ async def list( async def main() -> None: - await client.atoms.calls.list( + await client.agents.calls.list( agent_ids="60d0fe4f5311236168a109ca,60d0fe4f5311236168a109cb", campaign_ids="60d0fe4f5311236168a109ca,60d0fe4f5311236168a109cb", search="+1234567890", @@ -544,7 +544,7 @@ async def search( async def main() -> None: - await client.atoms.calls.search( + await client.agents.calls.search( call_ids=["CALL-1737000000000-abc123", "CALL-1737000000001-def456"], ) @@ -583,7 +583,7 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions] async def main() -> None: - await client.atoms.calls.get( + await client.agents.calls.get( id="CALL-1737000000000-abc123", ) @@ -699,7 +699,7 @@ async def start_outbound_call( async def main() -> None: - await client.atoms.calls.start_outbound_call( + await client.agents.calls.start_outbound_call( agent_id="60d0fe4f5311236168a109ca", phone_number="+1234567890", ) diff --git a/src/smallestai/atoms/calls/raw_client.py b/src/smallestai/agents/calls/raw_client.py similarity index 100% rename from src/smallestai/atoms/calls/raw_client.py rename to src/smallestai/agents/calls/raw_client.py diff --git a/src/smallestai/atoms/calls/types/__init__.py b/src/smallestai/agents/calls/types/__init__.py similarity index 100% rename from src/smallestai/atoms/calls/types/__init__.py rename to src/smallestai/agents/calls/types/__init__.py diff --git a/src/smallestai/atoms/calls/types/get_calls_response.py b/src/smallestai/agents/calls/types/get_calls_response.py similarity index 100% rename from src/smallestai/atoms/calls/types/get_calls_response.py rename to src/smallestai/agents/calls/types/get_calls_response.py diff --git a/src/smallestai/atoms/calls/types/get_calls_response_data.py b/src/smallestai/agents/calls/types/get_calls_response_data.py similarity index 100% rename from src/smallestai/atoms/calls/types/get_calls_response_data.py rename to src/smallestai/agents/calls/types/get_calls_response_data.py diff --git a/src/smallestai/atoms/calls/types/get_calls_response_data_post_call_analytics.py b/src/smallestai/agents/calls/types/get_calls_response_data_post_call_analytics.py similarity index 100% rename from src/smallestai/atoms/calls/types/get_calls_response_data_post_call_analytics.py rename to src/smallestai/agents/calls/types/get_calls_response_data_post_call_analytics.py diff --git a/src/smallestai/atoms/calls/types/get_calls_response_data_post_call_analytics_disposition_metrics_item.py b/src/smallestai/agents/calls/types/get_calls_response_data_post_call_analytics_disposition_metrics_item.py similarity index 100% rename from src/smallestai/atoms/calls/types/get_calls_response_data_post_call_analytics_disposition_metrics_item.py rename to src/smallestai/agents/calls/types/get_calls_response_data_post_call_analytics_disposition_metrics_item.py diff --git a/src/smallestai/atoms/calls/types/get_calls_response_data_status.py b/src/smallestai/agents/calls/types/get_calls_response_data_status.py similarity index 100% rename from src/smallestai/atoms/calls/types/get_calls_response_data_status.py rename to src/smallestai/agents/calls/types/get_calls_response_data_status.py diff --git a/src/smallestai/atoms/calls/types/get_calls_response_data_transcript_item.py b/src/smallestai/agents/calls/types/get_calls_response_data_transcript_item.py similarity index 100% rename from src/smallestai/atoms/calls/types/get_calls_response_data_transcript_item.py rename to src/smallestai/agents/calls/types/get_calls_response_data_transcript_item.py diff --git a/src/smallestai/atoms/calls/types/get_calls_response_data_transcript_item_role.py b/src/smallestai/agents/calls/types/get_calls_response_data_transcript_item_role.py similarity index 100% rename from src/smallestai/atoms/calls/types/get_calls_response_data_transcript_item_role.py rename to src/smallestai/agents/calls/types/get_calls_response_data_transcript_item_role.py diff --git a/src/smallestai/atoms/calls/types/get_calls_response_data_turn_latency_metrics.py b/src/smallestai/agents/calls/types/get_calls_response_data_turn_latency_metrics.py similarity index 100% rename from src/smallestai/atoms/calls/types/get_calls_response_data_turn_latency_metrics.py rename to src/smallestai/agents/calls/types/get_calls_response_data_turn_latency_metrics.py diff --git a/src/smallestai/atoms/calls/types/get_calls_response_data_turn_latency_metrics_transitions_item.py b/src/smallestai/agents/calls/types/get_calls_response_data_turn_latency_metrics_transitions_item.py similarity index 100% rename from src/smallestai/atoms/calls/types/get_calls_response_data_turn_latency_metrics_transitions_item.py rename to src/smallestai/agents/calls/types/get_calls_response_data_turn_latency_metrics_transitions_item.py diff --git a/src/smallestai/atoms/calls/types/get_calls_response_data_type.py b/src/smallestai/agents/calls/types/get_calls_response_data_type.py similarity index 100% rename from src/smallestai/atoms/calls/types/get_calls_response_data_type.py rename to src/smallestai/agents/calls/types/get_calls_response_data_type.py diff --git a/src/smallestai/atoms/calls/types/get_calls_response_data_voice_config_used.py b/src/smallestai/agents/calls/types/get_calls_response_data_voice_config_used.py similarity index 100% rename from src/smallestai/atoms/calls/types/get_calls_response_data_voice_config_used.py rename to src/smallestai/agents/calls/types/get_calls_response_data_voice_config_used.py diff --git a/src/smallestai/atoms/calls/types/list_calls_request_call_types.py b/src/smallestai/agents/calls/types/list_calls_request_call_types.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_request_call_types.py rename to src/smallestai/agents/calls/types/list_calls_request_call_types.py diff --git a/src/smallestai/atoms/calls/types/list_calls_request_sort_by.py b/src/smallestai/agents/calls/types/list_calls_request_sort_by.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_request_sort_by.py rename to src/smallestai/agents/calls/types/list_calls_request_sort_by.py diff --git a/src/smallestai/atoms/calls/types/list_calls_request_sort_order.py b/src/smallestai/agents/calls/types/list_calls_request_sort_order.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_request_sort_order.py rename to src/smallestai/agents/calls/types/list_calls_request_sort_order.py diff --git a/src/smallestai/atoms/calls/types/list_calls_response.py b/src/smallestai/agents/calls/types/list_calls_response.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_response.py rename to src/smallestai/agents/calls/types/list_calls_response.py diff --git a/src/smallestai/atoms/calls/types/list_calls_response_data.py b/src/smallestai/agents/calls/types/list_calls_response_data.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_response_data.py rename to src/smallestai/agents/calls/types/list_calls_response_data.py diff --git a/src/smallestai/atoms/calls/types/list_calls_response_data_disposition_metrics_config_item.py b/src/smallestai/agents/calls/types/list_calls_response_data_disposition_metrics_config_item.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_response_data_disposition_metrics_config_item.py rename to src/smallestai/agents/calls/types/list_calls_response_data_disposition_metrics_config_item.py diff --git a/src/smallestai/atoms/calls/types/list_calls_response_data_logs_item.py b/src/smallestai/agents/calls/types/list_calls_response_data_logs_item.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_response_data_logs_item.py rename to src/smallestai/agents/calls/types/list_calls_response_data_logs_item.py diff --git a/src/smallestai/atoms/calls/types/list_calls_response_data_logs_item_agent_disposition_config_item.py b/src/smallestai/agents/calls/types/list_calls_response_data_logs_item_agent_disposition_config_item.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_response_data_logs_item_agent_disposition_config_item.py rename to src/smallestai/agents/calls/types/list_calls_response_data_logs_item_agent_disposition_config_item.py diff --git a/src/smallestai/atoms/calls/types/list_calls_response_data_logs_item_post_call_analytics.py b/src/smallestai/agents/calls/types/list_calls_response_data_logs_item_post_call_analytics.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_response_data_logs_item_post_call_analytics.py rename to src/smallestai/agents/calls/types/list_calls_response_data_logs_item_post_call_analytics.py diff --git a/src/smallestai/atoms/calls/types/list_calls_response_data_logs_item_post_call_analytics_disposition_metrics_item.py b/src/smallestai/agents/calls/types/list_calls_response_data_logs_item_post_call_analytics_disposition_metrics_item.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_response_data_logs_item_post_call_analytics_disposition_metrics_item.py rename to src/smallestai/agents/calls/types/list_calls_response_data_logs_item_post_call_analytics_disposition_metrics_item.py diff --git a/src/smallestai/atoms/calls/types/list_calls_response_data_logs_item_status.py b/src/smallestai/agents/calls/types/list_calls_response_data_logs_item_status.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_response_data_logs_item_status.py rename to src/smallestai/agents/calls/types/list_calls_response_data_logs_item_status.py diff --git a/src/smallestai/atoms/calls/types/list_calls_response_data_logs_item_turn_latency_metrics.py b/src/smallestai/agents/calls/types/list_calls_response_data_logs_item_turn_latency_metrics.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_response_data_logs_item_turn_latency_metrics.py rename to src/smallestai/agents/calls/types/list_calls_response_data_logs_item_turn_latency_metrics.py diff --git a/src/smallestai/atoms/calls/types/list_calls_response_data_logs_item_turn_latency_metrics_transitions_item.py b/src/smallestai/agents/calls/types/list_calls_response_data_logs_item_turn_latency_metrics_transitions_item.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_response_data_logs_item_turn_latency_metrics_transitions_item.py rename to src/smallestai/agents/calls/types/list_calls_response_data_logs_item_turn_latency_metrics_transitions_item.py diff --git a/src/smallestai/atoms/calls/types/list_calls_response_data_logs_item_type.py b/src/smallestai/agents/calls/types/list_calls_response_data_logs_item_type.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_response_data_logs_item_type.py rename to src/smallestai/agents/calls/types/list_calls_response_data_logs_item_type.py diff --git a/src/smallestai/atoms/calls/types/list_calls_response_data_pagination.py b/src/smallestai/agents/calls/types/list_calls_response_data_pagination.py similarity index 100% rename from src/smallestai/atoms/calls/types/list_calls_response_data_pagination.py rename to src/smallestai/agents/calls/types/list_calls_response_data_pagination.py diff --git a/src/smallestai/atoms/calls/types/search_calls_response.py b/src/smallestai/agents/calls/types/search_calls_response.py similarity index 100% rename from src/smallestai/atoms/calls/types/search_calls_response.py rename to src/smallestai/agents/calls/types/search_calls_response.py diff --git a/src/smallestai/atoms/calls/types/search_calls_response_data.py b/src/smallestai/agents/calls/types/search_calls_response_data.py similarity index 100% rename from src/smallestai/atoms/calls/types/search_calls_response_data.py rename to src/smallestai/agents/calls/types/search_calls_response_data.py diff --git a/src/smallestai/atoms/calls/types/search_calls_response_data_logs_item.py b/src/smallestai/agents/calls/types/search_calls_response_data_logs_item.py similarity index 100% rename from src/smallestai/atoms/calls/types/search_calls_response_data_logs_item.py rename to src/smallestai/agents/calls/types/search_calls_response_data_logs_item.py diff --git a/src/smallestai/atoms/calls/types/search_calls_response_data_logs_item_post_call_analytics.py b/src/smallestai/agents/calls/types/search_calls_response_data_logs_item_post_call_analytics.py similarity index 100% rename from src/smallestai/atoms/calls/types/search_calls_response_data_logs_item_post_call_analytics.py rename to src/smallestai/agents/calls/types/search_calls_response_data_logs_item_post_call_analytics.py diff --git a/src/smallestai/atoms/calls/types/search_calls_response_data_logs_item_post_call_analytics_disposition_metrics_item.py b/src/smallestai/agents/calls/types/search_calls_response_data_logs_item_post_call_analytics_disposition_metrics_item.py similarity index 100% rename from src/smallestai/atoms/calls/types/search_calls_response_data_logs_item_post_call_analytics_disposition_metrics_item.py rename to src/smallestai/agents/calls/types/search_calls_response_data_logs_item_post_call_analytics_disposition_metrics_item.py diff --git a/src/smallestai/atoms/calls/types/search_calls_response_data_logs_item_status.py b/src/smallestai/agents/calls/types/search_calls_response_data_logs_item_status.py similarity index 100% rename from src/smallestai/atoms/calls/types/search_calls_response_data_logs_item_status.py rename to src/smallestai/agents/calls/types/search_calls_response_data_logs_item_status.py diff --git a/src/smallestai/atoms/calls/types/search_calls_response_data_logs_item_turn_latency_metrics.py b/src/smallestai/agents/calls/types/search_calls_response_data_logs_item_turn_latency_metrics.py similarity index 100% rename from src/smallestai/atoms/calls/types/search_calls_response_data_logs_item_turn_latency_metrics.py rename to src/smallestai/agents/calls/types/search_calls_response_data_logs_item_turn_latency_metrics.py diff --git a/src/smallestai/atoms/calls/types/search_calls_response_data_logs_item_turn_latency_metrics_transitions_item.py b/src/smallestai/agents/calls/types/search_calls_response_data_logs_item_turn_latency_metrics_transitions_item.py similarity index 100% rename from src/smallestai/atoms/calls/types/search_calls_response_data_logs_item_turn_latency_metrics_transitions_item.py rename to src/smallestai/agents/calls/types/search_calls_response_data_logs_item_turn_latency_metrics_transitions_item.py diff --git a/src/smallestai/atoms/calls/types/search_calls_response_data_logs_item_type.py b/src/smallestai/agents/calls/types/search_calls_response_data_logs_item_type.py similarity index 100% rename from src/smallestai/atoms/calls/types/search_calls_response_data_logs_item_type.py rename to src/smallestai/agents/calls/types/search_calls_response_data_logs_item_type.py diff --git a/src/smallestai/atoms/calls/types/start_outbound_call_calls_request_variables_value.py b/src/smallestai/agents/calls/types/start_outbound_call_calls_request_variables_value.py similarity index 100% rename from src/smallestai/atoms/calls/types/start_outbound_call_calls_request_variables_value.py rename to src/smallestai/agents/calls/types/start_outbound_call_calls_request_variables_value.py diff --git a/src/smallestai/atoms/calls/types/start_outbound_call_calls_request_x_test_call.py b/src/smallestai/agents/calls/types/start_outbound_call_calls_request_x_test_call.py similarity index 100% rename from src/smallestai/atoms/calls/types/start_outbound_call_calls_request_x_test_call.py rename to src/smallestai/agents/calls/types/start_outbound_call_calls_request_x_test_call.py diff --git a/src/smallestai/atoms/calls/types/start_outbound_call_calls_response.py b/src/smallestai/agents/calls/types/start_outbound_call_calls_response.py similarity index 100% rename from src/smallestai/atoms/calls/types/start_outbound_call_calls_response.py rename to src/smallestai/agents/calls/types/start_outbound_call_calls_response.py diff --git a/src/smallestai/atoms/calls/types/start_outbound_call_calls_response_data.py b/src/smallestai/agents/calls/types/start_outbound_call_calls_response_data.py similarity index 100% rename from src/smallestai/atoms/calls/types/start_outbound_call_calls_response_data.py rename to src/smallestai/agents/calls/types/start_outbound_call_calls_response_data.py diff --git a/src/smallestai/atoms/campaigns/__init__.py b/src/smallestai/agents/campaigns/__init__.py similarity index 100% rename from src/smallestai/atoms/campaigns/__init__.py rename to src/smallestai/agents/campaigns/__init__.py diff --git a/src/smallestai/atoms/campaigns/client.py b/src/smallestai/agents/campaigns/client.py similarity index 97% rename from src/smallestai/atoms/campaigns/client.py rename to src/smallestai/agents/campaigns/client.py index 27ac5bc53..6865415ec 100644 --- a/src/smallestai/atoms/campaigns/client.py +++ b/src/smallestai/agents/campaigns/client.py @@ -84,7 +84,7 @@ def list( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.campaigns.list() + client.agents.campaigns.list() """ _response = self._raw_client.list( page=page, @@ -161,7 +161,7 @@ def create( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.campaigns.create( + client.agents.campaigns.create( name="My Campaign", audience_id="60d0fe4f5311236168a109ca", agent_id="60d0fe4f5311236168a109ca", @@ -204,7 +204,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.campaigns.get( + client.agents.campaigns.get( id="id", ) """ @@ -235,7 +235,7 @@ def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] = client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.campaigns.delete( + client.agents.campaigns.delete( id="id", ) """ @@ -272,7 +272,7 @@ def start_or_resume( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.campaigns.start_or_resume( + client.agents.campaigns.start_or_resume( id="id", ) """ @@ -304,7 +304,7 @@ def pause(self, id: str, *, request_options: typing.Optional[RequestOptions] = N client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.campaigns.pause( + client.agents.campaigns.pause( id="id", ) """ @@ -381,7 +381,7 @@ async def list( async def main() -> None: - await client.atoms.campaigns.list() + await client.agents.campaigns.list() asyncio.run(main()) @@ -466,7 +466,7 @@ async def create( async def main() -> None: - await client.atoms.campaigns.create( + await client.agents.campaigns.create( name="My Campaign", audience_id="60d0fe4f5311236168a109ca", agent_id="60d0fe4f5311236168a109ca", @@ -517,7 +517,7 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions] async def main() -> None: - await client.atoms.campaigns.get( + await client.agents.campaigns.get( id="id", ) @@ -558,7 +558,7 @@ async def delete( async def main() -> None: - await client.atoms.campaigns.delete( + await client.agents.campaigns.delete( id="id", ) @@ -603,7 +603,7 @@ async def start_or_resume( async def main() -> None: - await client.atoms.campaigns.start_or_resume( + await client.agents.campaigns.start_or_resume( id="id", ) @@ -645,7 +645,7 @@ async def pause( async def main() -> None: - await client.atoms.campaigns.pause( + await client.agents.campaigns.pause( id="id", ) diff --git a/src/smallestai/atoms/campaigns/raw_client.py b/src/smallestai/agents/campaigns/raw_client.py similarity index 100% rename from src/smallestai/atoms/campaigns/raw_client.py rename to src/smallestai/agents/campaigns/raw_client.py diff --git a/src/smallestai/atoms/campaigns/types/__init__.py b/src/smallestai/agents/campaigns/types/__init__.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/__init__.py rename to src/smallestai/agents/campaigns/types/__init__.py diff --git a/src/smallestai/atoms/campaigns/types/create_campaigns_response.py b/src/smallestai/agents/campaigns/types/create_campaigns_response.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/create_campaigns_response.py rename to src/smallestai/agents/campaigns/types/create_campaigns_response.py diff --git a/src/smallestai/atoms/campaigns/types/create_campaigns_response_data.py b/src/smallestai/agents/campaigns/types/create_campaigns_response_data.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/create_campaigns_response_data.py rename to src/smallestai/agents/campaigns/types/create_campaigns_response_data.py diff --git a/src/smallestai/atoms/campaigns/types/create_campaigns_response_data_status.py b/src/smallestai/agents/campaigns/types/create_campaigns_response_data_status.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/create_campaigns_response_data_status.py rename to src/smallestai/agents/campaigns/types/create_campaigns_response_data_status.py diff --git a/src/smallestai/atoms/campaigns/types/delete_campaigns_response.py b/src/smallestai/agents/campaigns/types/delete_campaigns_response.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/delete_campaigns_response.py rename to src/smallestai/agents/campaigns/types/delete_campaigns_response.py diff --git a/src/smallestai/atoms/campaigns/types/get_campaigns_response.py b/src/smallestai/agents/campaigns/types/get_campaigns_response.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/get_campaigns_response.py rename to src/smallestai/agents/campaigns/types/get_campaigns_response.py diff --git a/src/smallestai/atoms/campaigns/types/get_campaigns_response_data.py b/src/smallestai/agents/campaigns/types/get_campaigns_response_data.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/get_campaigns_response_data.py rename to src/smallestai/agents/campaigns/types/get_campaigns_response_data.py diff --git a/src/smallestai/atoms/campaigns/types/get_campaigns_response_data_campaign.py b/src/smallestai/agents/campaigns/types/get_campaigns_response_data_campaign.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/get_campaigns_response_data_campaign.py rename to src/smallestai/agents/campaigns/types/get_campaigns_response_data_campaign.py diff --git a/src/smallestai/atoms/campaigns/types/get_campaigns_response_data_campaign_agent.py b/src/smallestai/agents/campaigns/types/get_campaigns_response_data_campaign_agent.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/get_campaigns_response_data_campaign_agent.py rename to src/smallestai/agents/campaigns/types/get_campaigns_response_data_campaign_agent.py diff --git a/src/smallestai/atoms/campaigns/types/get_campaigns_response_data_campaign_audience.py b/src/smallestai/agents/campaigns/types/get_campaigns_response_data_campaign_audience.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/get_campaigns_response_data_campaign_audience.py rename to src/smallestai/agents/campaigns/types/get_campaigns_response_data_campaign_audience.py diff --git a/src/smallestai/atoms/campaigns/types/get_campaigns_response_data_campaign_status.py b/src/smallestai/agents/campaigns/types/get_campaigns_response_data_campaign_status.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/get_campaigns_response_data_campaign_status.py rename to src/smallestai/agents/campaigns/types/get_campaigns_response_data_campaign_status.py diff --git a/src/smallestai/atoms/campaigns/types/get_campaigns_response_data_events_item.py b/src/smallestai/agents/campaigns/types/get_campaigns_response_data_events_item.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/get_campaigns_response_data_events_item.py rename to src/smallestai/agents/campaigns/types/get_campaigns_response_data_events_item.py diff --git a/src/smallestai/atoms/campaigns/types/get_campaigns_response_data_metrics.py b/src/smallestai/agents/campaigns/types/get_campaigns_response_data_metrics.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/get_campaigns_response_data_metrics.py rename to src/smallestai/agents/campaigns/types/get_campaigns_response_data_metrics.py diff --git a/src/smallestai/atoms/campaigns/types/list_campaigns_request_sort_field.py b/src/smallestai/agents/campaigns/types/list_campaigns_request_sort_field.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/list_campaigns_request_sort_field.py rename to src/smallestai/agents/campaigns/types/list_campaigns_request_sort_field.py diff --git a/src/smallestai/atoms/campaigns/types/list_campaigns_request_sort_order.py b/src/smallestai/agents/campaigns/types/list_campaigns_request_sort_order.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/list_campaigns_request_sort_order.py rename to src/smallestai/agents/campaigns/types/list_campaigns_request_sort_order.py diff --git a/src/smallestai/atoms/campaigns/types/list_campaigns_request_status.py b/src/smallestai/agents/campaigns/types/list_campaigns_request_status.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/list_campaigns_request_status.py rename to src/smallestai/agents/campaigns/types/list_campaigns_request_status.py diff --git a/src/smallestai/atoms/campaigns/types/list_campaigns_response.py b/src/smallestai/agents/campaigns/types/list_campaigns_response.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/list_campaigns_response.py rename to src/smallestai/agents/campaigns/types/list_campaigns_response.py diff --git a/src/smallestai/atoms/campaigns/types/list_campaigns_response_data.py b/src/smallestai/agents/campaigns/types/list_campaigns_response_data.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/list_campaigns_response_data.py rename to src/smallestai/agents/campaigns/types/list_campaigns_response_data.py diff --git a/src/smallestai/atoms/campaigns/types/list_campaigns_response_data_campaigns_item.py b/src/smallestai/agents/campaigns/types/list_campaigns_response_data_campaigns_item.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/list_campaigns_response_data_campaigns_item.py rename to src/smallestai/agents/campaigns/types/list_campaigns_response_data_campaigns_item.py diff --git a/src/smallestai/atoms/campaigns/types/list_campaigns_response_data_campaigns_item_agent.py b/src/smallestai/agents/campaigns/types/list_campaigns_response_data_campaigns_item_agent.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/list_campaigns_response_data_campaigns_item_agent.py rename to src/smallestai/agents/campaigns/types/list_campaigns_response_data_campaigns_item_agent.py diff --git a/src/smallestai/atoms/campaigns/types/list_campaigns_response_data_campaigns_item_audience.py b/src/smallestai/agents/campaigns/types/list_campaigns_response_data_campaigns_item_audience.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/list_campaigns_response_data_campaigns_item_audience.py rename to src/smallestai/agents/campaigns/types/list_campaigns_response_data_campaigns_item_audience.py diff --git a/src/smallestai/atoms/campaigns/types/list_campaigns_response_data_campaigns_item_status.py b/src/smallestai/agents/campaigns/types/list_campaigns_response_data_campaigns_item_status.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/list_campaigns_response_data_campaigns_item_status.py rename to src/smallestai/agents/campaigns/types/list_campaigns_response_data_campaigns_item_status.py diff --git a/src/smallestai/atoms/campaigns/types/list_campaigns_response_data_pagination.py b/src/smallestai/agents/campaigns/types/list_campaigns_response_data_pagination.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/list_campaigns_response_data_pagination.py rename to src/smallestai/agents/campaigns/types/list_campaigns_response_data_pagination.py diff --git a/src/smallestai/atoms/campaigns/types/pause_campaigns_response.py b/src/smallestai/agents/campaigns/types/pause_campaigns_response.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/pause_campaigns_response.py rename to src/smallestai/agents/campaigns/types/pause_campaigns_response.py diff --git a/src/smallestai/atoms/campaigns/types/start_or_resume_campaigns_response.py b/src/smallestai/agents/campaigns/types/start_or_resume_campaigns_response.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/start_or_resume_campaigns_response.py rename to src/smallestai/agents/campaigns/types/start_or_resume_campaigns_response.py diff --git a/src/smallestai/atoms/campaigns/types/start_or_resume_campaigns_response_data.py b/src/smallestai/agents/campaigns/types/start_or_resume_campaigns_response_data.py similarity index 100% rename from src/smallestai/atoms/campaigns/types/start_or_resume_campaigns_response_data.py rename to src/smallestai/agents/campaigns/types/start_or_resume_campaigns_response_data.py diff --git a/src/smallestai/atoms/client.py b/src/smallestai/agents/client.py similarity index 94% rename from src/smallestai/atoms/client.py rename to src/smallestai/agents/client.py index 96f201193..888810f3e 100644 --- a/src/smallestai/atoms/client.py +++ b/src/smallestai/agents/client.py @@ -5,7 +5,7 @@ import typing from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from .raw_client import AsyncRawAtomsClient, RawAtomsClient +from .raw_client import AsyncRawAgentsClient, RawAgentsClient if typing.TYPE_CHECKING: from .agent_templates.client import AgentTemplatesClient, AsyncAgentTemplatesClient @@ -13,7 +13,8 @@ from .agent_versioning_drafts.client import AgentVersioningDraftsClient, AsyncAgentVersioningDraftsClient from .agent_versioning_revisions.client import AgentVersioningRevisionsClient, AsyncAgentVersioningRevisionsClient from .agent_versioning_versions.client import AgentVersioningVersionsClient, AsyncAgentVersioningVersionsClient - from .agents.client import AgentsClient, AsyncAgentsClient + from .agents.client import AgentsClient as agents_agents_client_AgentsClient + from .agents.client import AsyncAgentsClient as agents_agents_client_AsyncAgentsClient from .analytics.client import AnalyticsClient, AsyncAnalyticsClient from .audience.client import AsyncAudienceClient, AudienceClient from .billing.client import AsyncBillingClient, BillingClient @@ -39,14 +40,14 @@ from .webhooks.client import AsyncWebhooksClient, WebhooksClient -class AtomsClient: +class AgentsClient: def __init__(self, *, client_wrapper: SyncClientWrapper): - self._raw_client = RawAtomsClient(client_wrapper=client_wrapper) + self._raw_client = RawAgentsClient(client_wrapper=client_wrapper) self._client_wrapper = client_wrapper self._user: typing.Optional[UserClient] = None self._organization: typing.Optional[OrganizationClient] = None self._agent_templates: typing.Optional[AgentTemplatesClient] = None - self._agents: typing.Optional[AgentsClient] = None + self._agents: typing.Optional[agents_agents_client_AgentsClient] = None self._realtime: typing.Optional[RealtimeClient] = None self._calls: typing.Optional[CallsClient] = None self._conversations: typing.Optional[ConversationsClient] = None @@ -71,13 +72,13 @@ def __init__(self, *, client_wrapper: SyncClientWrapper): self._billing: typing.Optional[BillingClient] = None @property - def with_raw_response(self) -> RawAtomsClient: + def with_raw_response(self) -> RawAgentsClient: """ Retrieves a raw implementation of this client that returns raw responses. Returns ------- - RawAtomsClient + RawAgentsClient """ return self._raw_client @@ -108,9 +109,9 @@ def agent_templates(self): @property def agents(self): if self._agents is None: - from .agents.client import AgentsClient # noqa: E402 + from .agents.client import AgentsClient as agents_agents_client_AgentsClient # noqa: E402 - self._agents = AgentsClient(client_wrapper=self._client_wrapper) + self._agents = agents_agents_client_AgentsClient(client_wrapper=self._client_wrapper) return self._agents @property @@ -290,14 +291,14 @@ def billing(self): return self._billing -class AsyncAtomsClient: +class AsyncAgentsClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): - self._raw_client = AsyncRawAtomsClient(client_wrapper=client_wrapper) + self._raw_client = AsyncRawAgentsClient(client_wrapper=client_wrapper) self._client_wrapper = client_wrapper self._user: typing.Optional[AsyncUserClient] = None self._organization: typing.Optional[AsyncOrganizationClient] = None self._agent_templates: typing.Optional[AsyncAgentTemplatesClient] = None - self._agents: typing.Optional[AsyncAgentsClient] = None + self._agents: typing.Optional[agents_agents_client_AsyncAgentsClient] = None self._realtime: typing.Optional[AsyncRealtimeClient] = None self._calls: typing.Optional[AsyncCallsClient] = None self._conversations: typing.Optional[AsyncConversationsClient] = None @@ -322,13 +323,13 @@ def __init__(self, *, client_wrapper: AsyncClientWrapper): self._billing: typing.Optional[AsyncBillingClient] = None @property - def with_raw_response(self) -> AsyncRawAtomsClient: + def with_raw_response(self) -> AsyncRawAgentsClient: """ Retrieves a raw implementation of this client that returns raw responses. Returns ------- - AsyncRawAtomsClient + AsyncRawAgentsClient """ return self._raw_client @@ -359,9 +360,9 @@ def agent_templates(self): @property def agents(self): if self._agents is None: - from .agents.client import AsyncAgentsClient # noqa: E402 + from .agents.client import AsyncAgentsClient as agents_agents_client_AsyncAgentsClient # noqa: E402 - self._agents = AsyncAgentsClient(client_wrapper=self._client_wrapper) + self._agents = agents_agents_client_AsyncAgentsClient(client_wrapper=self._client_wrapper) return self._agents @property diff --git a/src/smallestai/atoms/compliance/__init__.py b/src/smallestai/agents/compliance/__init__.py similarity index 100% rename from src/smallestai/atoms/compliance/__init__.py rename to src/smallestai/agents/compliance/__init__.py diff --git a/src/smallestai/atoms/compliance/client.py b/src/smallestai/agents/compliance/client.py similarity index 97% rename from src/smallestai/atoms/compliance/client.py rename to src/smallestai/agents/compliance/client.py index 285a66aa2..a15528e94 100644 --- a/src/smallestai/atoms/compliance/client.py +++ b/src/smallestai/agents/compliance/client.py @@ -76,7 +76,7 @@ def get_compliance_status( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.compliance.get_compliance_status( + client.agents.compliance.get_compliance_status( country_iso="IN", number_type="local", user_type="individual", @@ -126,7 +126,7 @@ def get_compliance_requirements( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.compliance.get_compliance_requirements( + client.agents.compliance.get_compliance_requirements( country_iso="IN", number_type="local", user_type="individual", @@ -207,7 +207,7 @@ def submit( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.compliance.submit( + client.agents.compliance.submit( country_iso="countryIso", number_type="local", user_type="individual", @@ -268,7 +268,7 @@ def resubmit( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.compliance.resubmit( + client.agents.compliance.resubmit( id="id", documents="documents", ) @@ -304,7 +304,7 @@ def refresh_compliance_application_status( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.compliance.refresh_compliance_application_status( + client.agents.compliance.refresh_compliance_application_status( id="id", ) """ @@ -371,7 +371,7 @@ async def get_compliance_status( async def main() -> None: - await client.atoms.compliance.get_compliance_status( + await client.agents.compliance.get_compliance_status( country_iso="IN", number_type="local", user_type="individual", @@ -429,7 +429,7 @@ async def get_compliance_requirements( async def main() -> None: - await client.atoms.compliance.get_compliance_requirements( + await client.agents.compliance.get_compliance_requirements( country_iso="IN", number_type="local", user_type="individual", @@ -518,7 +518,7 @@ async def submit( async def main() -> None: - await client.atoms.compliance.submit( + await client.agents.compliance.submit( country_iso="countryIso", number_type="local", user_type="individual", @@ -587,7 +587,7 @@ async def resubmit( async def main() -> None: - await client.atoms.compliance.resubmit( + await client.agents.compliance.resubmit( id="id", documents="documents", ) @@ -633,7 +633,7 @@ async def refresh_compliance_application_status( async def main() -> None: - await client.atoms.compliance.refresh_compliance_application_status( + await client.agents.compliance.refresh_compliance_application_status( id="id", ) diff --git a/src/smallestai/atoms/compliance/raw_client.py b/src/smallestai/agents/compliance/raw_client.py similarity index 100% rename from src/smallestai/atoms/compliance/raw_client.py rename to src/smallestai/agents/compliance/raw_client.py diff --git a/src/smallestai/atoms/compliance/types/__init__.py b/src/smallestai/agents/compliance/types/__init__.py similarity index 100% rename from src/smallestai/atoms/compliance/types/__init__.py rename to src/smallestai/agents/compliance/types/__init__.py diff --git a/src/smallestai/atoms/compliance/types/get_compliance_requirements_request_number_type.py b/src/smallestai/agents/compliance/types/get_compliance_requirements_request_number_type.py similarity index 100% rename from src/smallestai/atoms/compliance/types/get_compliance_requirements_request_number_type.py rename to src/smallestai/agents/compliance/types/get_compliance_requirements_request_number_type.py diff --git a/src/smallestai/atoms/compliance/types/get_compliance_requirements_request_user_type.py b/src/smallestai/agents/compliance/types/get_compliance_requirements_request_user_type.py similarity index 100% rename from src/smallestai/atoms/compliance/types/get_compliance_requirements_request_user_type.py rename to src/smallestai/agents/compliance/types/get_compliance_requirements_request_user_type.py diff --git a/src/smallestai/atoms/compliance/types/get_compliance_requirements_response.py b/src/smallestai/agents/compliance/types/get_compliance_requirements_response.py similarity index 100% rename from src/smallestai/atoms/compliance/types/get_compliance_requirements_response.py rename to src/smallestai/agents/compliance/types/get_compliance_requirements_response.py diff --git a/src/smallestai/atoms/compliance/types/get_compliance_status_request_number_type.py b/src/smallestai/agents/compliance/types/get_compliance_status_request_number_type.py similarity index 100% rename from src/smallestai/atoms/compliance/types/get_compliance_status_request_number_type.py rename to src/smallestai/agents/compliance/types/get_compliance_status_request_number_type.py diff --git a/src/smallestai/atoms/compliance/types/get_compliance_status_request_user_type.py b/src/smallestai/agents/compliance/types/get_compliance_status_request_user_type.py similarity index 100% rename from src/smallestai/atoms/compliance/types/get_compliance_status_request_user_type.py rename to src/smallestai/agents/compliance/types/get_compliance_status_request_user_type.py diff --git a/src/smallestai/atoms/compliance/types/get_compliance_status_response.py b/src/smallestai/agents/compliance/types/get_compliance_status_response.py similarity index 100% rename from src/smallestai/atoms/compliance/types/get_compliance_status_response.py rename to src/smallestai/agents/compliance/types/get_compliance_status_response.py diff --git a/src/smallestai/atoms/compliance/types/get_compliance_status_response_data.py b/src/smallestai/agents/compliance/types/get_compliance_status_response_data.py similarity index 100% rename from src/smallestai/atoms/compliance/types/get_compliance_status_response_data.py rename to src/smallestai/agents/compliance/types/get_compliance_status_response_data.py diff --git a/src/smallestai/atoms/compliance/types/get_compliance_status_response_data_step.py b/src/smallestai/agents/compliance/types/get_compliance_status_response_data_step.py similarity index 100% rename from src/smallestai/atoms/compliance/types/get_compliance_status_response_data_step.py rename to src/smallestai/agents/compliance/types/get_compliance_status_response_data_step.py diff --git a/src/smallestai/atoms/compliance/types/post_compliance_applications_id_refresh_response.py b/src/smallestai/agents/compliance/types/post_compliance_applications_id_refresh_response.py similarity index 100% rename from src/smallestai/atoms/compliance/types/post_compliance_applications_id_refresh_response.py rename to src/smallestai/agents/compliance/types/post_compliance_applications_id_refresh_response.py diff --git a/src/smallestai/atoms/compliance/types/resubmit_compliance_response.py b/src/smallestai/agents/compliance/types/resubmit_compliance_response.py similarity index 100% rename from src/smallestai/atoms/compliance/types/resubmit_compliance_response.py rename to src/smallestai/agents/compliance/types/resubmit_compliance_response.py diff --git a/src/smallestai/atoms/compliance/types/submit_compliance_request_number_type.py b/src/smallestai/agents/compliance/types/submit_compliance_request_number_type.py similarity index 100% rename from src/smallestai/atoms/compliance/types/submit_compliance_request_number_type.py rename to src/smallestai/agents/compliance/types/submit_compliance_request_number_type.py diff --git a/src/smallestai/atoms/compliance/types/submit_compliance_request_user_type.py b/src/smallestai/agents/compliance/types/submit_compliance_request_user_type.py similarity index 100% rename from src/smallestai/atoms/compliance/types/submit_compliance_request_user_type.py rename to src/smallestai/agents/compliance/types/submit_compliance_request_user_type.py diff --git a/src/smallestai/atoms/compliance/types/submit_compliance_response.py b/src/smallestai/agents/compliance/types/submit_compliance_response.py similarity index 100% rename from src/smallestai/atoms/compliance/types/submit_compliance_response.py rename to src/smallestai/agents/compliance/types/submit_compliance_response.py diff --git a/src/smallestai/atoms/concurrency/__init__.py b/src/smallestai/agents/concurrency/__init__.py similarity index 100% rename from src/smallestai/atoms/concurrency/__init__.py rename to src/smallestai/agents/concurrency/__init__.py diff --git a/src/smallestai/atoms/concurrency/client.py b/src/smallestai/agents/concurrency/client.py similarity index 94% rename from src/smallestai/atoms/concurrency/client.py rename to src/smallestai/agents/concurrency/client.py index 2bf927448..020c7e9d7 100644 --- a/src/smallestai/atoms/concurrency/client.py +++ b/src/smallestai/agents/concurrency/client.py @@ -51,7 +51,7 @@ def get_concurrency(self, *, request_options: typing.Optional[RequestOptions] = client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.concurrency.get_concurrency() + client.agents.concurrency.get_concurrency() """ _response = self._raw_client.get_concurrency(request_options=request_options) return _response.data @@ -81,14 +81,14 @@ def update_concurrency_reservations( Examples -------- from smallestai import SmallestAI - from smallestai.atoms.concurrency import ( + from smallestai.agents.concurrency import ( UpdateConcurrencyReservationsRequestReservationsItem, ) client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.concurrency.update_concurrency_reservations( + client.agents.concurrency.update_concurrency_reservations( reservations=[ UpdateConcurrencyReservationsRequestReservationsItem( agent_id="agentId", @@ -149,7 +149,7 @@ async def get_concurrency( async def main() -> None: - await client.atoms.concurrency.get_concurrency() + await client.agents.concurrency.get_concurrency() asyncio.run(main()) @@ -184,7 +184,7 @@ async def update_concurrency_reservations( import asyncio from smallestai import AsyncSmallestAI - from smallestai.atoms.concurrency import ( + from smallestai.agents.concurrency import ( UpdateConcurrencyReservationsRequestReservationsItem, ) @@ -194,7 +194,7 @@ async def update_concurrency_reservations( async def main() -> None: - await client.atoms.concurrency.update_concurrency_reservations( + await client.agents.concurrency.update_concurrency_reservations( reservations=[ UpdateConcurrencyReservationsRequestReservationsItem( agent_id="agentId", diff --git a/src/smallestai/atoms/concurrency/raw_client.py b/src/smallestai/agents/concurrency/raw_client.py similarity index 100% rename from src/smallestai/atoms/concurrency/raw_client.py rename to src/smallestai/agents/concurrency/raw_client.py diff --git a/src/smallestai/atoms/concurrency/types/__init__.py b/src/smallestai/agents/concurrency/types/__init__.py similarity index 100% rename from src/smallestai/atoms/concurrency/types/__init__.py rename to src/smallestai/agents/concurrency/types/__init__.py diff --git a/src/smallestai/atoms/concurrency/types/get_concurrency_response.py b/src/smallestai/agents/concurrency/types/get_concurrency_response.py similarity index 100% rename from src/smallestai/atoms/concurrency/types/get_concurrency_response.py rename to src/smallestai/agents/concurrency/types/get_concurrency_response.py diff --git a/src/smallestai/atoms/concurrency/types/get_concurrency_response_data.py b/src/smallestai/agents/concurrency/types/get_concurrency_response_data.py similarity index 100% rename from src/smallestai/atoms/concurrency/types/get_concurrency_response_data.py rename to src/smallestai/agents/concurrency/types/get_concurrency_response_data.py diff --git a/src/smallestai/atoms/concurrency/types/get_concurrency_response_data_agents_item.py b/src/smallestai/agents/concurrency/types/get_concurrency_response_data_agents_item.py similarity index 100% rename from src/smallestai/atoms/concurrency/types/get_concurrency_response_data_agents_item.py rename to src/smallestai/agents/concurrency/types/get_concurrency_response_data_agents_item.py diff --git a/src/smallestai/atoms/concurrency/types/update_concurrency_reservations_request_reservations_item.py b/src/smallestai/agents/concurrency/types/update_concurrency_reservations_request_reservations_item.py similarity index 100% rename from src/smallestai/atoms/concurrency/types/update_concurrency_reservations_request_reservations_item.py rename to src/smallestai/agents/concurrency/types/update_concurrency_reservations_request_reservations_item.py diff --git a/src/smallestai/atoms/concurrency/types/update_concurrency_reservations_response.py b/src/smallestai/agents/concurrency/types/update_concurrency_reservations_response.py similarity index 100% rename from src/smallestai/atoms/concurrency/types/update_concurrency_reservations_response.py rename to src/smallestai/agents/concurrency/types/update_concurrency_reservations_response.py diff --git a/src/smallestai/atoms/concurrency/types/update_concurrency_reservations_response_data.py b/src/smallestai/agents/concurrency/types/update_concurrency_reservations_response_data.py similarity index 100% rename from src/smallestai/atoms/concurrency/types/update_concurrency_reservations_response_data.py rename to src/smallestai/agents/concurrency/types/update_concurrency_reservations_response_data.py diff --git a/src/smallestai/atoms/conversations/__init__.py b/src/smallestai/agents/conversations/__init__.py similarity index 100% rename from src/smallestai/atoms/conversations/__init__.py rename to src/smallestai/agents/conversations/__init__.py diff --git a/src/smallestai/atoms/conversations/client.py b/src/smallestai/agents/conversations/client.py similarity index 96% rename from src/smallestai/atoms/conversations/client.py rename to src/smallestai/agents/conversations/client.py index 57f566280..60846377b 100644 --- a/src/smallestai/atoms/conversations/client.py +++ b/src/smallestai/agents/conversations/client.py @@ -59,7 +59,7 @@ def get_a_time_limited_recording_download_url( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.conversations.get_a_time_limited_recording_download_url( + client.agents.conversations.get_a_time_limited_recording_download_url( call_id="CALL-1781127346211-e765f7", ) """ @@ -97,7 +97,7 @@ def list_retry_attempts( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.conversations.list_retry_attempts( + client.agents.conversations.list_retry_attempts( call_id="callId", ) """ @@ -139,7 +139,7 @@ def cancel( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.conversations.cancel( + client.agents.conversations.cancel( call_id="CALL-1778226705739-7e4c17", ) """ @@ -176,7 +176,7 @@ def cancel_queued( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.conversations.cancel_queued( + client.agents.conversations.cancel_queued( call_id="CALL-1781127346211-e765f7", ) """ @@ -232,7 +232,7 @@ async def get_a_time_limited_recording_download_url( async def main() -> None: - await client.atoms.conversations.get_a_time_limited_recording_download_url( + await client.agents.conversations.get_a_time_limited_recording_download_url( call_id="CALL-1781127346211-e765f7", ) @@ -280,7 +280,7 @@ async def list_retry_attempts( async def main() -> None: - await client.atoms.conversations.list_retry_attempts( + await client.agents.conversations.list_retry_attempts( call_id="callId", ) @@ -330,7 +330,7 @@ async def cancel( async def main() -> None: - await client.atoms.conversations.cancel( + await client.agents.conversations.cancel( call_id="CALL-1778226705739-7e4c17", ) @@ -375,7 +375,7 @@ async def cancel_queued( async def main() -> None: - await client.atoms.conversations.cancel_queued( + await client.agents.conversations.cancel_queued( call_id="CALL-1781127346211-e765f7", ) diff --git a/src/smallestai/atoms/conversations/raw_client.py b/src/smallestai/agents/conversations/raw_client.py similarity index 100% rename from src/smallestai/atoms/conversations/raw_client.py rename to src/smallestai/agents/conversations/raw_client.py diff --git a/src/smallestai/atoms/conversations/types/__init__.py b/src/smallestai/agents/conversations/types/__init__.py similarity index 100% rename from src/smallestai/atoms/conversations/types/__init__.py rename to src/smallestai/agents/conversations/types/__init__.py diff --git a/src/smallestai/atoms/conversations/types/cancel_conversations_response.py b/src/smallestai/agents/conversations/types/cancel_conversations_response.py similarity index 100% rename from src/smallestai/atoms/conversations/types/cancel_conversations_response.py rename to src/smallestai/agents/conversations/types/cancel_conversations_response.py diff --git a/src/smallestai/atoms/conversations/types/cancel_conversations_response_data.py b/src/smallestai/agents/conversations/types/cancel_conversations_response_data.py similarity index 100% rename from src/smallestai/atoms/conversations/types/cancel_conversations_response_data.py rename to src/smallestai/agents/conversations/types/cancel_conversations_response_data.py diff --git a/src/smallestai/atoms/conversations/types/cancel_queued_conversations_response.py b/src/smallestai/agents/conversations/types/cancel_queued_conversations_response.py similarity index 100% rename from src/smallestai/atoms/conversations/types/cancel_queued_conversations_response.py rename to src/smallestai/agents/conversations/types/cancel_queued_conversations_response.py diff --git a/src/smallestai/atoms/conversations/types/cancel_queued_conversations_response_data.py b/src/smallestai/agents/conversations/types/cancel_queued_conversations_response_data.py similarity index 100% rename from src/smallestai/atoms/conversations/types/cancel_queued_conversations_response_data.py rename to src/smallestai/agents/conversations/types/cancel_queued_conversations_response_data.py diff --git a/src/smallestai/atoms/conversations/types/get_conversation_call_id_recording_download_url_response.py b/src/smallestai/agents/conversations/types/get_conversation_call_id_recording_download_url_response.py similarity index 100% rename from src/smallestai/atoms/conversations/types/get_conversation_call_id_recording_download_url_response.py rename to src/smallestai/agents/conversations/types/get_conversation_call_id_recording_download_url_response.py diff --git a/src/smallestai/atoms/conversations/types/get_conversation_call_id_recording_download_url_response_data.py b/src/smallestai/agents/conversations/types/get_conversation_call_id_recording_download_url_response_data.py similarity index 100% rename from src/smallestai/atoms/conversations/types/get_conversation_call_id_recording_download_url_response_data.py rename to src/smallestai/agents/conversations/types/get_conversation_call_id_recording_download_url_response_data.py diff --git a/src/smallestai/atoms/conversations/types/list_retry_attempts_conversations_response.py b/src/smallestai/agents/conversations/types/list_retry_attempts_conversations_response.py similarity index 100% rename from src/smallestai/atoms/conversations/types/list_retry_attempts_conversations_response.py rename to src/smallestai/agents/conversations/types/list_retry_attempts_conversations_response.py diff --git a/src/smallestai/atoms/conversations/types/list_retry_attempts_conversations_response_data.py b/src/smallestai/agents/conversations/types/list_retry_attempts_conversations_response_data.py similarity index 100% rename from src/smallestai/atoms/conversations/types/list_retry_attempts_conversations_response_data.py rename to src/smallestai/agents/conversations/types/list_retry_attempts_conversations_response_data.py diff --git a/src/smallestai/agents/crew/__init__.py b/src/smallestai/agents/crew/__init__.py new file mode 100644 index 000000000..3e507c580 --- /dev/null +++ b/src/smallestai/agents/crew/__init__.py @@ -0,0 +1,13 @@ +""" +Smallest AI Atoms Agent SDK. + +A real-time WebSocket agent framework for building voice agents, +chatbots, and other interactive AI applications. + +Usage: + from smallestai.agents.crew.server import AtomsCrewApp + from smallestai.agents.crew.session import CrewSession + from smallestai.agents.crew.nodes import OutputCrewNode, BackgroundCrewNode + from smallestai.agents.crew.clients.openai import OpenAIClient + from smallestai.agents.crew.tools import function_tool, ToolRegistry +""" diff --git a/src/smallestai/atoms/crew/clients/__init__.py b/src/smallestai/agents/crew/clients/__init__.py similarity index 71% rename from src/smallestai/atoms/crew/clients/__init__.py rename to src/smallestai/agents/crew/clients/__init__.py index 1c56076ce..7644eba39 100644 --- a/src/smallestai/atoms/crew/clients/__init__.py +++ b/src/smallestai/agents/crew/clients/__init__.py @@ -4,8 +4,8 @@ Standalone clients that can be used in any node for making LLM API calls. """ -from smallestai.atoms.crew.clients.openai import OpenAIClient -from smallestai.atoms.crew.clients.types import ( +from smallestai.agents.crew.clients.openai import OpenAIClient +from smallestai.agents.crew.clients.types import ( ChatChunk, ChatResponse, ToolCall, diff --git a/src/smallestai/atoms/crew/clients/base.py b/src/smallestai/agents/crew/clients/base.py similarity index 95% rename from src/smallestai/atoms/crew/clients/base.py rename to src/smallestai/agents/crew/clients/base.py index 5cf5b83a3..fae047087 100644 --- a/src/smallestai/atoms/crew/clients/base.py +++ b/src/smallestai/agents/crew/clients/base.py @@ -7,7 +7,7 @@ from abc import ABC, abstractmethod from typing import Any, AsyncIterator, Dict, List, Literal, Optional, Union, overload -from smallestai.atoms.crew.clients.types import ChatChunk, ChatResponse +from smallestai.agents.crew.clients.types import ChatChunk, ChatResponse class BaseLLMClient(ABC): diff --git a/src/smallestai/atoms/crew/clients/openai.py b/src/smallestai/agents/crew/clients/openai.py similarity index 98% rename from src/smallestai/atoms/crew/clients/openai.py rename to src/smallestai/agents/crew/clients/openai.py index b56c220ea..d5bed13c5 100644 --- a/src/smallestai/atoms/crew/clients/openai.py +++ b/src/smallestai/agents/crew/clients/openai.py @@ -25,9 +25,9 @@ ChatCompletionChunk, ) -from smallestai.atoms.crew.clients.base import BaseLLMClient -from smallestai.atoms.crew.clients.types import ChatChunk, ChatResponse, ToolCall -from smallestai.atoms.crew.type import NOT_GIVEN, NotGivenOr, is_given +from smallestai.agents.crew.clients.base import BaseLLMClient +from smallestai.agents.crew.clients.types import ChatChunk, ChatResponse, ToolCall +from smallestai.agents.crew.type import NOT_GIVEN, NotGivenOr, is_given load_dotenv() diff --git a/src/smallestai/atoms/crew/clients/types.py b/src/smallestai/agents/crew/clients/types.py similarity index 97% rename from src/smallestai/atoms/crew/clients/types.py rename to src/smallestai/agents/crew/clients/types.py index 1a40a06f7..b736e1cbb 100644 --- a/src/smallestai/atoms/crew/clients/types.py +++ b/src/smallestai/agents/crew/clients/types.py @@ -4,7 +4,7 @@ Common types used across different LLM providers. """ -from dataclasses import dataclass, field +from dataclasses import dataclass from typing import Any, Dict, List, Optional diff --git a/src/smallestai/atoms/crew/context.py b/src/smallestai/agents/crew/context.py similarity index 100% rename from src/smallestai/atoms/crew/context.py rename to src/smallestai/agents/crew/context.py diff --git a/src/smallestai/atoms/crew/events.py b/src/smallestai/agents/crew/events.py similarity index 98% rename from src/smallestai/atoms/crew/events.py rename to src/smallestai/agents/crew/events.py index 4fe51ac53..ee29a871c 100644 --- a/src/smallestai/atoms/crew/events.py +++ b/src/smallestai/agents/crew/events.py @@ -139,8 +139,8 @@ class SDKAgentLogEvent(SDKAgentEvent, type=EventType.AGENT_LOG.value): Example (background node):: - from smallestai.atoms.crew.events import SDKAgentLogEvent - from smallestai.atoms.crew.nodes import BackgroundCrewNode + from smallestai.agents.crew.events import SDKAgentLogEvent + from smallestai.agents.crew.nodes import BackgroundCrewNode class SentimentAnalyzer(BackgroundCrewNode): async def process_event(self, event): diff --git a/src/smallestai/agents/crew/nodes/__init__.py b/src/smallestai/agents/crew/nodes/__init__.py new file mode 100644 index 000000000..5c12adcc3 --- /dev/null +++ b/src/smallestai/agents/crew/nodes/__init__.py @@ -0,0 +1,9 @@ +""" +Specialized base node classes for different agent behaviors. +""" + +from smallestai.agents.crew.nodes.background_crew import BackgroundCrewNode +from smallestai.agents.crew.nodes.base import CrewNode +from smallestai.agents.crew.nodes.output_crew import OutputCrewNode + +__all__ = ["BackgroundCrewNode", "OutputCrewNode", "CrewNode"] diff --git a/src/smallestai/atoms/crew/nodes/background_crew.py b/src/smallestai/agents/crew/nodes/background_crew.py similarity index 94% rename from src/smallestai/atoms/crew/nodes/background_crew.py rename to src/smallestai/agents/crew/nodes/background_crew.py index 68f0a6c0d..86005723e 100644 --- a/src/smallestai/atoms/crew/nodes/background_crew.py +++ b/src/smallestai/agents/crew/nodes/background_crew.py @@ -7,8 +7,8 @@ - Use for: sentiment analysis, data extraction, background reasoning """ -from smallestai.atoms.crew.events import SDKEvent -from smallestai.atoms.crew.nodes.base import CrewNode +from smallestai.agents.crew.events import SDKEvent +from smallestai.agents.crew.nodes.base import CrewNode class BackgroundCrewNode(CrewNode): diff --git a/src/smallestai/atoms/crew/nodes/base.py b/src/smallestai/agents/crew/nodes/base.py similarity index 97% rename from src/smallestai/atoms/crew/nodes/base.py rename to src/smallestai/agents/crew/nodes/base.py index 4fa16602d..1795e86e9 100644 --- a/src/smallestai/atoms/crew/nodes/base.py +++ b/src/smallestai/agents/crew/nodes/base.py @@ -10,13 +10,13 @@ from loguru import logger -from smallestai.atoms.crew.events import ( +from smallestai.agents.crew.events import ( SDKAgentErrorEvent, SDKEvent, SDKSystemControlInterruptEvent, SDKSystemInitEvent, ) -from smallestai.atoms.crew.task_manager import TaskManager +from smallestai.agents.crew.task_manager import TaskManager class CrewNode: @@ -204,7 +204,7 @@ def _error_severity(self) -> str: (`BackgroundCrewNode`) are warnings. """ # Local import avoids a circular dep at module-load time. - from smallestai.atoms.crew.nodes.background_crew import BackgroundCrewNode + from smallestai.agents.crew.nodes.background_crew import BackgroundCrewNode return "warning" if isinstance(self, BackgroundCrewNode) else "fatal" async def __create_process_event_task(self): diff --git a/src/smallestai/atoms/crew/nodes/output_crew.py b/src/smallestai/agents/crew/nodes/output_crew.py similarity index 97% rename from src/smallestai/atoms/crew/nodes/output_crew.py rename to src/smallestai/agents/crew/nodes/output_crew.py index 0e6f0f87d..1e83cd92a 100644 --- a/src/smallestai/atoms/crew/nodes/output_crew.py +++ b/src/smallestai/agents/crew/nodes/output_crew.py @@ -14,8 +14,8 @@ from loguru import logger -from smallestai.atoms.crew.context import ContextManager -from smallestai.atoms.crew.events import ( +from smallestai.agents.crew.context import ContextManager +from smallestai.agents.crew.events import ( OutputAgentSettings, SDKAgentEndCallEvent, SDKAgentErrorEvent, @@ -34,8 +34,8 @@ # Events that hand the call off / end it. Once one is emitted the conversation is # over for this node, so we stop responding to further LLM requests. _HANDOFF_EVENTS = (SDKAgentTransferConversationEvent, SDKAgentEndCallEvent) -from smallestai.atoms.crew.nodes.base import CrewNode -from smallestai.atoms.crew.task_manager import TaskManager +from smallestai.agents.crew.nodes.base import CrewNode +from smallestai.agents.crew.task_manager import TaskManager class OutputCrewNode(CrewNode): diff --git a/src/smallestai/atoms/crew/server.py b/src/smallestai/agents/crew/server.py similarity index 99% rename from src/smallestai/atoms/crew/server.py rename to src/smallestai/agents/crew/server.py index ee98f01df..5368ee089 100644 --- a/src/smallestai/atoms/crew/server.py +++ b/src/smallestai/agents/crew/server.py @@ -6,7 +6,7 @@ from fastapi import FastAPI, WebSocket from loguru import logger -from smallestai.atoms.crew.session import CrewSession +from smallestai.agents.crew.session import CrewSession async def _dry_run_setup_handler( diff --git a/src/smallestai/atoms/crew/session.py b/src/smallestai/agents/crew/session.py similarity index 98% rename from src/smallestai/atoms/crew/session.py rename to src/smallestai/agents/crew/session.py index f997a1537..28bb740e0 100644 --- a/src/smallestai/atoms/crew/session.py +++ b/src/smallestai/agents/crew/session.py @@ -17,14 +17,14 @@ from loguru import logger from pydantic import BaseModel -from smallestai.atoms.crew.events import ( +from smallestai.agents.crew.events import ( SDKAgentErrorEvent, SDKAgentReadyEvent, SDKEvent, SDKSystemInitEvent, ) -from smallestai.atoms.crew.nodes import CrewNode -from smallestai.atoms.crew.task_manager import TaskManager, TaskManagerParams +from smallestai.agents.crew.nodes import CrewNode +from smallestai.agents.crew.task_manager import TaskManager, TaskManagerParams @dataclass diff --git a/src/smallestai/atoms/crew/task_manager.py b/src/smallestai/agents/crew/task_manager.py similarity index 100% rename from src/smallestai/atoms/crew/task_manager.py rename to src/smallestai/agents/crew/task_manager.py diff --git a/src/smallestai/atoms/crew/tools/__init__.py b/src/smallestai/agents/crew/tools/__init__.py similarity index 62% rename from src/smallestai/atoms/crew/tools/__init__.py rename to src/smallestai/agents/crew/tools/__init__.py index 46d603143..cc91e50ff 100644 --- a/src/smallestai/atoms/crew/tools/__init__.py +++ b/src/smallestai/agents/crew/tools/__init__.py @@ -4,13 +4,13 @@ Provides decorator-based tool registration and automatic execution. """ -from smallestai.atoms.crew.tools.decorator import ( +from smallestai.agents.crew.tools.decorator import ( find_function_tools, function_tool, is_function_tool, ) -from smallestai.atoms.crew.tools.registry import ToolRegistry -from smallestai.atoms.crew.tools.schema import FunctionSchema +from smallestai.agents.crew.tools.registry import ToolRegistry +from smallestai.agents.crew.tools.schema import FunctionSchema __all__ = [ "function_tool", diff --git a/src/smallestai/atoms/crew/tools/decorator.py b/src/smallestai/agents/crew/tools/decorator.py similarity index 97% rename from src/smallestai/atoms/crew/tools/decorator.py rename to src/smallestai/agents/crew/tools/decorator.py index 8da8320f4..b31571653 100644 --- a/src/smallestai/atoms/crew/tools/decorator.py +++ b/src/smallestai/agents/crew/tools/decorator.py @@ -8,7 +8,7 @@ from dataclasses import dataclass from typing import Any, Callable, List, Optional -from smallestai.atoms.crew.tools.schema import FunctionSchema, extract_function_schema +from smallestai.agents.crew.tools.schema import FunctionSchema, extract_function_schema @dataclass diff --git a/src/smallestai/atoms/crew/tools/registry.py b/src/smallestai/agents/crew/tools/registry.py similarity index 98% rename from src/smallestai/atoms/crew/tools/registry.py rename to src/smallestai/agents/crew/tools/registry.py index 7c9ce2a8a..1a7faa428 100644 --- a/src/smallestai/atoms/crew/tools/registry.py +++ b/src/smallestai/agents/crew/tools/registry.py @@ -11,8 +11,8 @@ from loguru import logger -from smallestai.atoms.crew.clients.types import ToolCall, ToolResult -from smallestai.atoms.crew.tools.decorator import ( +from smallestai.agents.crew.clients.types import ToolCall, ToolResult +from smallestai.agents.crew.tools.decorator import ( FunctionToolInfo, find_function_tools, is_function_tool, diff --git a/src/smallestai/atoms/crew/tools/schema.py b/src/smallestai/agents/crew/tools/schema.py similarity index 100% rename from src/smallestai/atoms/crew/tools/schema.py rename to src/smallestai/agents/crew/tools/schema.py diff --git a/src/smallestai/atoms/crew/type.py b/src/smallestai/agents/crew/type.py similarity index 100% rename from src/smallestai/atoms/crew/type.py rename to src/smallestai/agents/crew/type.py diff --git a/src/smallestai/atoms/disposition_metric_templates/__init__.py b/src/smallestai/agents/disposition_metric_templates/__init__.py similarity index 100% rename from src/smallestai/atoms/disposition_metric_templates/__init__.py rename to src/smallestai/agents/disposition_metric_templates/__init__.py diff --git a/src/smallestai/atoms/disposition_metric_templates/client.py b/src/smallestai/agents/disposition_metric_templates/client.py similarity index 95% rename from src/smallestai/atoms/disposition_metric_templates/client.py rename to src/smallestai/agents/disposition_metric_templates/client.py index 994aa5bdc..6d3b70ed3 100644 --- a/src/smallestai/atoms/disposition_metric_templates/client.py +++ b/src/smallestai/agents/disposition_metric_templates/client.py @@ -46,7 +46,7 @@ def list_disposition_metric_templates( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.disposition_metric_templates.list_disposition_metric_templates() + client.agents.disposition_metric_templates.list_disposition_metric_templates() """ _response = self._raw_client.list_disposition_metric_templates(request_options=request_options) return _response.data @@ -95,7 +95,7 @@ async def list_disposition_metric_templates( async def main() -> None: - await client.atoms.disposition_metric_templates.list_disposition_metric_templates() + await client.agents.disposition_metric_templates.list_disposition_metric_templates() asyncio.run(main()) diff --git a/src/smallestai/atoms/disposition_metric_templates/raw_client.py b/src/smallestai/agents/disposition_metric_templates/raw_client.py similarity index 100% rename from src/smallestai/atoms/disposition_metric_templates/raw_client.py rename to src/smallestai/agents/disposition_metric_templates/raw_client.py diff --git a/src/smallestai/atoms/disposition_metric_templates/types/__init__.py b/src/smallestai/agents/disposition_metric_templates/types/__init__.py similarity index 100% rename from src/smallestai/atoms/disposition_metric_templates/types/__init__.py rename to src/smallestai/agents/disposition_metric_templates/types/__init__.py diff --git a/src/smallestai/atoms/disposition_metric_templates/types/list_disposition_metric_templates_response.py b/src/smallestai/agents/disposition_metric_templates/types/list_disposition_metric_templates_response.py similarity index 100% rename from src/smallestai/atoms/disposition_metric_templates/types/list_disposition_metric_templates_response.py rename to src/smallestai/agents/disposition_metric_templates/types/list_disposition_metric_templates_response.py diff --git a/src/smallestai/atoms/disposition_metric_templates/types/list_disposition_metric_templates_response_data_item.py b/src/smallestai/agents/disposition_metric_templates/types/list_disposition_metric_templates_response_data_item.py similarity index 100% rename from src/smallestai/atoms/disposition_metric_templates/types/list_disposition_metric_templates_response_data_item.py rename to src/smallestai/agents/disposition_metric_templates/types/list_disposition_metric_templates_response_data_item.py diff --git a/src/smallestai/atoms/disposition_metric_templates/types/list_disposition_metric_templates_response_data_item_disposition_metric_type.py b/src/smallestai/agents/disposition_metric_templates/types/list_disposition_metric_templates_response_data_item_disposition_metric_type.py similarity index 100% rename from src/smallestai/atoms/disposition_metric_templates/types/list_disposition_metric_templates_response_data_item_disposition_metric_type.py rename to src/smallestai/agents/disposition_metric_templates/types/list_disposition_metric_templates_response_data_item_disposition_metric_type.py diff --git a/src/smallestai/atoms/dnc/__init__.py b/src/smallestai/agents/dnc/__init__.py similarity index 100% rename from src/smallestai/atoms/dnc/__init__.py rename to src/smallestai/agents/dnc/__init__.py diff --git a/src/smallestai/atoms/dnc/client.py b/src/smallestai/agents/dnc/client.py similarity index 98% rename from src/smallestai/atoms/dnc/client.py rename to src/smallestai/agents/dnc/client.py index 79298a419..850918441 100644 --- a/src/smallestai/atoms/dnc/client.py +++ b/src/smallestai/agents/dnc/client.py @@ -78,7 +78,7 @@ def list( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.dnc.list() + client.agents.dnc.list() """ _response = self._raw_client.list( agent_id=agent_id, @@ -165,7 +165,7 @@ async def list( async def main() -> None: - await client.atoms.dnc.list() + await client.agents.dnc.list() asyncio.run(main()) diff --git a/src/smallestai/atoms/dnc/raw_client.py b/src/smallestai/agents/dnc/raw_client.py similarity index 100% rename from src/smallestai/atoms/dnc/raw_client.py rename to src/smallestai/agents/dnc/raw_client.py diff --git a/src/smallestai/atoms/dnc/types/__init__.py b/src/smallestai/agents/dnc/types/__init__.py similarity index 100% rename from src/smallestai/atoms/dnc/types/__init__.py rename to src/smallestai/agents/dnc/types/__init__.py diff --git a/src/smallestai/atoms/dnc/types/list_dnc_request_sort_field.py b/src/smallestai/agents/dnc/types/list_dnc_request_sort_field.py similarity index 100% rename from src/smallestai/atoms/dnc/types/list_dnc_request_sort_field.py rename to src/smallestai/agents/dnc/types/list_dnc_request_sort_field.py diff --git a/src/smallestai/atoms/dnc/types/list_dnc_request_sort_order.py b/src/smallestai/agents/dnc/types/list_dnc_request_sort_order.py similarity index 100% rename from src/smallestai/atoms/dnc/types/list_dnc_request_sort_order.py rename to src/smallestai/agents/dnc/types/list_dnc_request_sort_order.py diff --git a/src/smallestai/atoms/dnc/types/list_dnc_response.py b/src/smallestai/agents/dnc/types/list_dnc_response.py similarity index 100% rename from src/smallestai/atoms/dnc/types/list_dnc_response.py rename to src/smallestai/agents/dnc/types/list_dnc_response.py diff --git a/src/smallestai/atoms/dnc/types/list_dnc_response_data.py b/src/smallestai/agents/dnc/types/list_dnc_response_data.py similarity index 100% rename from src/smallestai/atoms/dnc/types/list_dnc_response_data.py rename to src/smallestai/agents/dnc/types/list_dnc_response_data.py diff --git a/src/smallestai/atoms/dnc/types/list_dnc_response_data_entries_item.py b/src/smallestai/agents/dnc/types/list_dnc_response_data_entries_item.py similarity index 100% rename from src/smallestai/atoms/dnc/types/list_dnc_response_data_entries_item.py rename to src/smallestai/agents/dnc/types/list_dnc_response_data_entries_item.py diff --git a/src/smallestai/atoms/dnc/types/list_dnc_response_data_pagination.py b/src/smallestai/agents/dnc/types/list_dnc_response_data_pagination.py similarity index 100% rename from src/smallestai/atoms/dnc/types/list_dnc_response_data_pagination.py rename to src/smallestai/agents/dnc/types/list_dnc_response_data_pagination.py diff --git a/src/smallestai/atoms/errors/__init__.py b/src/smallestai/agents/errors/__init__.py similarity index 100% rename from src/smallestai/atoms/errors/__init__.py rename to src/smallestai/agents/errors/__init__.py diff --git a/src/smallestai/atoms/errors/bad_gateway_error.py b/src/smallestai/agents/errors/bad_gateway_error.py similarity index 100% rename from src/smallestai/atoms/errors/bad_gateway_error.py rename to src/smallestai/agents/errors/bad_gateway_error.py diff --git a/src/smallestai/atoms/errors/bad_request_error.py b/src/smallestai/agents/errors/bad_request_error.py similarity index 100% rename from src/smallestai/atoms/errors/bad_request_error.py rename to src/smallestai/agents/errors/bad_request_error.py diff --git a/src/smallestai/atoms/errors/conflict_error.py b/src/smallestai/agents/errors/conflict_error.py similarity index 100% rename from src/smallestai/atoms/errors/conflict_error.py rename to src/smallestai/agents/errors/conflict_error.py diff --git a/src/smallestai/atoms/errors/forbidden_error.py b/src/smallestai/agents/errors/forbidden_error.py similarity index 100% rename from src/smallestai/atoms/errors/forbidden_error.py rename to src/smallestai/agents/errors/forbidden_error.py diff --git a/src/smallestai/atoms/errors/internal_server_error.py b/src/smallestai/agents/errors/internal_server_error.py similarity index 100% rename from src/smallestai/atoms/errors/internal_server_error.py rename to src/smallestai/agents/errors/internal_server_error.py diff --git a/src/smallestai/atoms/errors/locked_error.py b/src/smallestai/agents/errors/locked_error.py similarity index 100% rename from src/smallestai/atoms/errors/locked_error.py rename to src/smallestai/agents/errors/locked_error.py diff --git a/src/smallestai/atoms/errors/not_found_error.py b/src/smallestai/agents/errors/not_found_error.py similarity index 100% rename from src/smallestai/atoms/errors/not_found_error.py rename to src/smallestai/agents/errors/not_found_error.py diff --git a/src/smallestai/atoms/errors/too_many_requests_error.py b/src/smallestai/agents/errors/too_many_requests_error.py similarity index 100% rename from src/smallestai/atoms/errors/too_many_requests_error.py rename to src/smallestai/agents/errors/too_many_requests_error.py diff --git a/src/smallestai/atoms/errors/unauthorized_error.py b/src/smallestai/agents/errors/unauthorized_error.py similarity index 100% rename from src/smallestai/atoms/errors/unauthorized_error.py rename to src/smallestai/agents/errors/unauthorized_error.py diff --git a/src/smallestai/atoms/errors/unprocessable_entity_error.py b/src/smallestai/agents/errors/unprocessable_entity_error.py similarity index 100% rename from src/smallestai/atoms/errors/unprocessable_entity_error.py rename to src/smallestai/agents/errors/unprocessable_entity_error.py diff --git a/src/smallestai/atoms/helpers/__init__.py b/src/smallestai/agents/helpers/__init__.py similarity index 50% rename from src/smallestai/atoms/helpers/__init__.py rename to src/smallestai/agents/helpers/__init__.py index f5c4b3133..6c785d877 100644 --- a/src/smallestai/atoms/helpers/__init__.py +++ b/src/smallestai/agents/helpers/__init__.py @@ -1,25 +1,25 @@ """Utility classes for Atoms API operations.""" -from smallestai.atoms.helpers.agent_tools import AgentTools, AgentToolsError -from smallestai.atoms.helpers.audience import Audience -from smallestai.atoms.helpers.call import Call, CallAnalytics -from smallestai.atoms.helpers.campaign import Campaign -from smallestai.atoms.helpers.kb import KB -from smallestai.atoms.helpers._envelope import Page, as_page, require_id -from smallestai.atoms.helpers.versioning import ( - Versioning, - VersioningError, - MigrationRequiredError, - DraftConflictError, +from smallestai.agents.helpers._envelope import Page, as_page, require_id +from smallestai.agents.helpers.agent_tools import AgentTools, AgentToolsError +from smallestai.agents.helpers.audience import Audience +from smallestai.agents.helpers.call import Call, CallAnalytics +from smallestai.agents.helpers.campaign import Campaign +from smallestai.agents.helpers.kb import KB +from smallestai.agents.helpers.versioning import ( BaseRevisionUnavailableError, + DraftConflictError, + MigrationRequiredError, SecurityCheckFailedError, + Versioning, + VersioningError, ) # Re-export the tool-config models so callers don't need their deep module paths -# (they are not exported from smallestai.atoms.types). -from smallestai.atoms.types.single_prompt_config import SinglePromptConfig -from smallestai.atoms.types.tool import Tool -from smallestai.atoms.types.tool_transfer_option import ToolTransferOption +# (they are not exported from smallestai.agents.types). +from smallestai.agents.types.single_prompt_config import SinglePromptConfig +from smallestai.agents.types.tool import Tool +from smallestai.agents.types.tool_transfer_option import ToolTransferOption __all__ = [ "AgentTools", diff --git a/src/smallestai/atoms/helpers/_envelope.py b/src/smallestai/agents/helpers/_envelope.py similarity index 100% rename from src/smallestai/atoms/helpers/_envelope.py rename to src/smallestai/agents/helpers/_envelope.py diff --git a/src/smallestai/atoms/helpers/agent_tools.py b/src/smallestai/agents/helpers/agent_tools.py similarity index 98% rename from src/smallestai/atoms/helpers/agent_tools.py rename to src/smallestai/agents/helpers/agent_tools.py index 507bc9d00..a13558343 100644 --- a/src/smallestai/atoms/helpers/agent_tools.py +++ b/src/smallestai/agents/helpers/agent_tools.py @@ -21,7 +21,7 @@ Usage ----- - from smallestai.atoms.helpers import AgentTools + from smallestai.agents.helpers import AgentTools tools = AgentTools(api_key="sk_...") # or SMALLEST_API_KEY env var @@ -51,10 +51,10 @@ import requests -from smallestai.atoms.types.tool import Tool -from smallestai.atoms.types.tool_transfer_option import ToolTransferOption +from smallestai.agents.types.tool import Tool +from smallestai.agents.types.tool_transfer_option import ToolTransferOption -logger = logging.getLogger("smallestai.atoms.agent_tools") +logger = logging.getLogger("smallestai.agents.agent_tools") DEFAULT_BASE_URL = "https://api.smallest.ai/atoms/v1" diff --git a/src/smallestai/atoms/helpers/audience.py b/src/smallestai/agents/helpers/audience.py similarity index 99% rename from src/smallestai/atoms/helpers/audience.py rename to src/smallestai/agents/helpers/audience.py index f514a680a..363e4b2e4 100644 --- a/src/smallestai/atoms/helpers/audience.py +++ b/src/smallestai/agents/helpers/audience.py @@ -2,7 +2,7 @@ Audience management. Usage: - from smallestai.atoms.helpers import Audience + from smallestai.agents.helpers import Audience audience = Audience() audience.create(name="My Audience", phone_numbers=["+1234567890"]) diff --git a/src/smallestai/atoms/helpers/call.py b/src/smallestai/agents/helpers/call.py similarity index 95% rename from src/smallestai/atoms/helpers/call.py rename to src/smallestai/agents/helpers/call.py index bd324cab9..31280b70d 100644 --- a/src/smallestai/atoms/helpers/call.py +++ b/src/smallestai/agents/helpers/call.py @@ -2,7 +2,7 @@ Call management and analytics. Usage: - from smallestai.atoms.helpers import Call + from smallestai.agents.helpers import Call call = Call() call.get_calls() @@ -23,7 +23,7 @@ class CallAnalytics: Read-only manager for call analytics (list, fetch, search, post-call config). NOTE: this is analytics-only — it does NOT place calls. To start an outbound - call use ``client.atoms.calls.start_an_outbound_call(...)``. + call use ``client.agents.calls.start_an_outbound_call(...)``. Can be used standalone: analytics = CallAnalytics() @@ -143,10 +143,10 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: import warnings warnings.warn( - "smallestai.atoms.helpers.Call is deprecated and will be removed in a " + "smallestai.agents.helpers.Call is deprecated and will be removed in a " "future major version. Use CallAnalytics instead (it is analytics-only " "and does not place calls; to start a call use " - "client.atoms.calls.start_an_outbound_call).", + "client.agents.calls.start_an_outbound_call).", DeprecationWarning, stacklevel=2, ) diff --git a/src/smallestai/atoms/helpers/campaign.py b/src/smallestai/agents/helpers/campaign.py similarity index 98% rename from src/smallestai/atoms/helpers/campaign.py rename to src/smallestai/agents/helpers/campaign.py index ef317fbed..86da17ab4 100644 --- a/src/smallestai/atoms/helpers/campaign.py +++ b/src/smallestai/agents/helpers/campaign.py @@ -2,7 +2,7 @@ Campaign management. Usage: - from smallestai.atoms.helpers import Campaign + from smallestai.agents.helpers import Campaign campaign = Campaign() campaign.create(name="My Campaign", agent_id="...", audience_id="...", phone_ids=["..."]) diff --git a/src/smallestai/atoms/helpers/kb.py b/src/smallestai/agents/helpers/kb.py similarity index 99% rename from src/smallestai/atoms/helpers/kb.py rename to src/smallestai/agents/helpers/kb.py index bba8a435b..2b5705f75 100644 --- a/src/smallestai/atoms/helpers/kb.py +++ b/src/smallestai/agents/helpers/kb.py @@ -2,7 +2,7 @@ Knowledge Base management. Usage: - from smallestai.atoms.helpers import KB + from smallestai.agents.helpers import KB kb = KB() kb.create(name="My KB", description="Company knowledge") diff --git a/src/smallestai/atoms/helpers/versioning.py b/src/smallestai/agents/helpers/versioning.py similarity index 96% rename from src/smallestai/atoms/helpers/versioning.py rename to src/smallestai/agents/helpers/versioning.py index 1bd584d8c..f51ac0af2 100644 --- a/src/smallestai/atoms/helpers/versioning.py +++ b/src/smallestai/agents/helpers/versioning.py @@ -14,7 +14,7 @@ - data.conflict{expectedRevision, latestRevision, diffs} -> DraftConflictError - errors == ["base_revision_unavailable"] -> BaseRevisionUnavailableError -This is a thin wrapper over `client.atoms.agent_versioning_branches` / +This is a thin wrapper over `client.agents.agent_versioning_branches` / `.agent_versioning_revisions`, so it rides future regens without changes. """ from __future__ import annotations @@ -32,7 +32,7 @@ class VersioningError(Exception): class MigrationRequiredError(VersioningError): """A v1 versioning endpoint was called while the branch model is enabled. - Migrate to the branch/revision API (client.atoms.agent_versioning_branches). + Migrate to the branch/revision API (client.agents.agent_versioning_branches). """ @@ -120,7 +120,7 @@ class Versioning: Usage: from smallestai import SmallestAI - from smallestai.atoms.helpers.versioning import Versioning + from smallestai.agents.helpers.versioning import Versioning client = SmallestAI(api_key="...") v = Versioning(client) @@ -133,8 +133,8 @@ class Versioning: def __init__(self, client: typing.Any): self._client = client - self.branches = client.atoms.agent_versioning_branches - self.revisions = client.atoms.agent_versioning_revisions + self.branches = client.agents.agent_versioning_branches + self.revisions = client.agents.agent_versioning_revisions def update_draft(self, agent_id: str, branch_id: str, **fields: typing.Any) -> typing.Any: """update_draft with the three 409 flavors mapped to typed exceptions. diff --git a/src/smallestai/atoms/integrations/__init__.py b/src/smallestai/agents/integrations/__init__.py similarity index 100% rename from src/smallestai/atoms/integrations/__init__.py rename to src/smallestai/agents/integrations/__init__.py diff --git a/src/smallestai/atoms/integrations/client.py b/src/smallestai/agents/integrations/client.py similarity index 94% rename from src/smallestai/atoms/integrations/client.py rename to src/smallestai/agents/integrations/client.py index 4801a9fb2..37a21c5e6 100644 --- a/src/smallestai/atoms/integrations/client.py +++ b/src/smallestai/agents/integrations/client.py @@ -55,12 +55,12 @@ def modify_web_engage_integration( Examples -------- from smallestai import SmallestAI - from smallestai.atoms import WebEngageIntegrationSet + from smallestai.agents import WebEngageIntegrationSet client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.integrations.modify_web_engage_integration( + client.agents.integrations.modify_web_engage_integration( integration_sets=[ WebEngageIntegrationSet( license_code="licenseCode", @@ -100,7 +100,7 @@ def get_web_engage_details( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.integrations.get_web_engage_details() + client.agents.integrations.get_web_engage_details() """ _response = self._raw_client.get_web_engage_details(request_options=request_options) return _response.data @@ -150,7 +150,7 @@ async def modify_web_engage_integration( import asyncio from smallestai import AsyncSmallestAI - from smallestai.atoms import WebEngageIntegrationSet + from smallestai.agents import WebEngageIntegrationSet client = AsyncSmallestAI( api_key="YOUR_API_KEY", @@ -158,7 +158,7 @@ async def modify_web_engage_integration( async def main() -> None: - await client.atoms.integrations.modify_web_engage_integration( + await client.agents.integrations.modify_web_engage_integration( integration_sets=[ WebEngageIntegrationSet( license_code="licenseCode", @@ -206,7 +206,7 @@ async def get_web_engage_details( async def main() -> None: - await client.atoms.integrations.get_web_engage_details() + await client.agents.integrations.get_web_engage_details() asyncio.run(main()) diff --git a/src/smallestai/atoms/integrations/raw_client.py b/src/smallestai/agents/integrations/raw_client.py similarity index 100% rename from src/smallestai/atoms/integrations/raw_client.py rename to src/smallestai/agents/integrations/raw_client.py diff --git a/src/smallestai/atoms/integrations/types/__init__.py b/src/smallestai/agents/integrations/types/__init__.py similarity index 100% rename from src/smallestai/atoms/integrations/types/__init__.py rename to src/smallestai/agents/integrations/types/__init__.py diff --git a/src/smallestai/atoms/integrations/types/get_web_engage_details_response.py b/src/smallestai/agents/integrations/types/get_web_engage_details_response.py similarity index 100% rename from src/smallestai/atoms/integrations/types/get_web_engage_details_response.py rename to src/smallestai/agents/integrations/types/get_web_engage_details_response.py diff --git a/src/smallestai/atoms/integrations/types/modify_web_engage_integration_response.py b/src/smallestai/agents/integrations/types/modify_web_engage_integration_response.py similarity index 100% rename from src/smallestai/atoms/integrations/types/modify_web_engage_integration_response.py rename to src/smallestai/agents/integrations/types/modify_web_engage_integration_response.py diff --git a/src/smallestai/atoms/knowledge_base/__init__.py b/src/smallestai/agents/knowledge_base/__init__.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/__init__.py rename to src/smallestai/agents/knowledge_base/__init__.py diff --git a/src/smallestai/atoms/knowledge_base/client.py b/src/smallestai/agents/knowledge_base/client.py similarity index 95% rename from src/smallestai/atoms/knowledge_base/client.py rename to src/smallestai/agents/knowledge_base/client.py index 7144fa9cf..ca9fa53fc 100644 --- a/src/smallestai/atoms/knowledge_base/client.py +++ b/src/smallestai/agents/knowledge_base/client.py @@ -65,7 +65,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Li client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.knowledge_base.list() + client.agents.knowledge_base.list() """ _response = self._raw_client.list(request_options=request_options) return _response.data @@ -102,7 +102,7 @@ def create( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.knowledge_base.create( + client.agents.knowledge_base.create( name="name", ) """ @@ -133,7 +133,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.knowledge_base.get( + client.agents.knowledge_base.get( id="id", ) """ @@ -179,7 +179,7 @@ def update_a_knowledge_base_name_description( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.knowledge_base.update_a_knowledge_base_name_description( + client.agents.knowledge_base.update_a_knowledge_base_name_description( id="id", name="Q4 Pricing Updates", ) @@ -219,7 +219,7 @@ def delete( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.knowledge_base.delete( + client.agents.knowledge_base.delete( id="id", ) """ @@ -252,7 +252,7 @@ def get_all_knowledge_base_items( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.knowledge_base.get_all_knowledge_base_items( + client.agents.knowledge_base.get_all_knowledge_base_items( id="id", ) """ @@ -292,7 +292,7 @@ def delete_a_knowledge_base_item( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.knowledge_base.delete_a_knowledge_base_item( + client.agents.knowledge_base.delete_a_knowledge_base_item( knowledge_base_id="knowledgeBaseId", knowledge_base_item_id="knowledgeBaseItemId", ) @@ -337,7 +337,7 @@ def upload_a_pdf_file_to_a_knowledge_base( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.knowledge_base.upload_a_pdf_file_to_a_knowledge_base( + client.agents.knowledge_base.upload_a_pdf_file_to_a_knowledge_base( id="id", ) """ @@ -393,7 +393,7 @@ def get_a_presigned_s3url_for_direct_file_upload( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.knowledge_base.get_a_presigned_s3url_for_direct_file_upload( + client.agents.knowledge_base.get_a_presigned_s3url_for_direct_file_upload( file_name="company-handbook.pdf", file_size=2457600, content_type="application/pdf", @@ -454,7 +454,7 @@ def complete_a_presigned_url_upload_and_start_processing( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.knowledge_base.complete_a_presigned_url_upload_and_start_processing( + client.agents.knowledge_base.complete_a_presigned_url_upload_and_start_processing( file_name="company-handbook.pdf", content_type="application/pdf", knowledge_base_id="6867ca76d0f8f2e0f4201281", @@ -503,7 +503,7 @@ def extract_sitemap_urls( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.knowledge_base.extract_sitemap_urls( + client.agents.knowledge_base.extract_sitemap_urls( site_url="https://example.com/sitemap.xml", knowledge_base_id="6867ca76d0f8f2e0f4201281", ) @@ -547,7 +547,7 @@ def scrape_urls( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.knowledge_base.scrape_urls( + client.agents.knowledge_base.scrape_urls( id="id", urls=["https://example.com/pricing", "https://example.com/faq"], ) @@ -581,7 +581,7 @@ def list_scraped_ur_ls_in_a_knowledge_base_their_status( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.knowledge_base.list_scraped_ur_ls_in_a_knowledge_base_their_status( + client.agents.knowledge_base.list_scraped_ur_ls_in_a_knowledge_base_their_status( id="id", ) """ @@ -623,7 +623,7 @@ def delete_a_scraped_url_from_a_knowledge_base( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.knowledge_base.delete_a_scraped_url_from_a_knowledge_base( + client.agents.knowledge_base.delete_a_scraped_url_from_a_knowledge_base( knowledge_base_id="knowledgeBaseId", knowledge_base_scraped_urls_id="knowledgeBaseScrapedUrlsId", ) @@ -675,7 +675,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None) async def main() -> None: - await client.atoms.knowledge_base.list() + await client.agents.knowledge_base.list() asyncio.run(main()) @@ -720,7 +720,7 @@ async def create( async def main() -> None: - await client.atoms.knowledge_base.create( + await client.agents.knowledge_base.create( name="name", ) @@ -761,7 +761,7 @@ async def get( async def main() -> None: - await client.atoms.knowledge_base.get( + await client.agents.knowledge_base.get( id="id", ) @@ -815,7 +815,7 @@ async def update_a_knowledge_base_name_description( async def main() -> None: - await client.atoms.knowledge_base.update_a_knowledge_base_name_description( + await client.agents.knowledge_base.update_a_knowledge_base_name_description( id="id", name="Q4 Pricing Updates", ) @@ -863,7 +863,7 @@ async def delete( async def main() -> None: - await client.atoms.knowledge_base.delete( + await client.agents.knowledge_base.delete( id="id", ) @@ -904,7 +904,7 @@ async def get_all_knowledge_base_items( async def main() -> None: - await client.atoms.knowledge_base.get_all_knowledge_base_items( + await client.agents.knowledge_base.get_all_knowledge_base_items( id="id", ) @@ -952,7 +952,7 @@ async def delete_a_knowledge_base_item( async def main() -> None: - await client.atoms.knowledge_base.delete_a_knowledge_base_item( + await client.agents.knowledge_base.delete_a_knowledge_base_item( knowledge_base_id="knowledgeBaseId", knowledge_base_item_id="knowledgeBaseItemId", ) @@ -1005,7 +1005,7 @@ async def upload_a_pdf_file_to_a_knowledge_base( async def main() -> None: - await client.atoms.knowledge_base.upload_a_pdf_file_to_a_knowledge_base( + await client.agents.knowledge_base.upload_a_pdf_file_to_a_knowledge_base( id="id", ) @@ -1069,7 +1069,7 @@ async def get_a_presigned_s3url_for_direct_file_upload( async def main() -> None: - await client.atoms.knowledge_base.get_a_presigned_s3url_for_direct_file_upload( + await client.agents.knowledge_base.get_a_presigned_s3url_for_direct_file_upload( file_name="company-handbook.pdf", file_size=2457600, content_type="application/pdf", @@ -1138,7 +1138,7 @@ async def complete_a_presigned_url_upload_and_start_processing( async def main() -> None: - await client.atoms.knowledge_base.complete_a_presigned_url_upload_and_start_processing( + await client.agents.knowledge_base.complete_a_presigned_url_upload_and_start_processing( file_name="company-handbook.pdf", content_type="application/pdf", knowledge_base_id="6867ca76d0f8f2e0f4201281", @@ -1195,7 +1195,7 @@ async def extract_sitemap_urls( async def main() -> None: - await client.atoms.knowledge_base.extract_sitemap_urls( + await client.agents.knowledge_base.extract_sitemap_urls( site_url="https://example.com/sitemap.xml", knowledge_base_id="6867ca76d0f8f2e0f4201281", ) @@ -1247,7 +1247,7 @@ async def scrape_urls( async def main() -> None: - await client.atoms.knowledge_base.scrape_urls( + await client.agents.knowledge_base.scrape_urls( id="id", urls=["https://example.com/pricing", "https://example.com/faq"], ) @@ -1289,7 +1289,7 @@ async def list_scraped_ur_ls_in_a_knowledge_base_their_status( async def main() -> None: - await client.atoms.knowledge_base.list_scraped_ur_ls_in_a_knowledge_base_their_status( + await client.agents.knowledge_base.list_scraped_ur_ls_in_a_knowledge_base_their_status( id="id", ) @@ -1339,7 +1339,7 @@ async def delete_a_scraped_url_from_a_knowledge_base( async def main() -> None: - await client.atoms.knowledge_base.delete_a_scraped_url_from_a_knowledge_base( + await client.agents.knowledge_base.delete_a_scraped_url_from_a_knowledge_base( knowledge_base_id="knowledgeBaseId", knowledge_base_scraped_urls_id="knowledgeBaseScrapedUrlsId", ) diff --git a/src/smallestai/atoms/knowledge_base/raw_client.py b/src/smallestai/agents/knowledge_base/raw_client.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/raw_client.py rename to src/smallestai/agents/knowledge_base/raw_client.py diff --git a/src/smallestai/atoms/knowledge_base/types/__init__.py b/src/smallestai/agents/knowledge_base/types/__init__.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/__init__.py rename to src/smallestai/agents/knowledge_base/types/__init__.py diff --git a/src/smallestai/atoms/knowledge_base/types/create_knowledge_base_response.py b/src/smallestai/agents/knowledge_base/types/create_knowledge_base_response.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/create_knowledge_base_response.py rename to src/smallestai/agents/knowledge_base/types/create_knowledge_base_response.py diff --git a/src/smallestai/atoms/knowledge_base/types/delete_knowledge_base_response.py b/src/smallestai/agents/knowledge_base/types/delete_knowledge_base_response.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/delete_knowledge_base_response.py rename to src/smallestai/agents/knowledge_base/types/delete_knowledge_base_response.py diff --git a/src/smallestai/atoms/knowledge_base/types/delete_knowledgebase_knowledge_base_id_items_knowledge_base_item_id_response.py b/src/smallestai/agents/knowledge_base/types/delete_knowledgebase_knowledge_base_id_items_knowledge_base_item_id_response.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/delete_knowledgebase_knowledge_base_id_items_knowledge_base_item_id_response.py rename to src/smallestai/agents/knowledge_base/types/delete_knowledgebase_knowledge_base_id_items_knowledge_base_item_id_response.py diff --git a/src/smallestai/atoms/knowledge_base/types/delete_knowledgebase_knowledge_base_id_scraped_urls_knowledge_base_scraped_urls_id_response.py b/src/smallestai/agents/knowledge_base/types/delete_knowledgebase_knowledge_base_id_scraped_urls_knowledge_base_scraped_urls_id_response.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/delete_knowledgebase_knowledge_base_id_scraped_urls_knowledge_base_scraped_urls_id_response.py rename to src/smallestai/agents/knowledge_base/types/delete_knowledgebase_knowledge_base_id_scraped_urls_knowledge_base_scraped_urls_id_response.py diff --git a/src/smallestai/atoms/knowledge_base/types/extract_sitemap_urls_knowledge_base_response.py b/src/smallestai/agents/knowledge_base/types/extract_sitemap_urls_knowledge_base_response.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/extract_sitemap_urls_knowledge_base_response.py rename to src/smallestai/agents/knowledge_base/types/extract_sitemap_urls_knowledge_base_response.py diff --git a/src/smallestai/atoms/knowledge_base/types/extract_sitemap_urls_knowledge_base_response_data.py b/src/smallestai/agents/knowledge_base/types/extract_sitemap_urls_knowledge_base_response_data.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/extract_sitemap_urls_knowledge_base_response_data.py rename to src/smallestai/agents/knowledge_base/types/extract_sitemap_urls_knowledge_base_response_data.py diff --git a/src/smallestai/atoms/knowledge_base/types/get_knowledge_base_response.py b/src/smallestai/agents/knowledge_base/types/get_knowledge_base_response.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/get_knowledge_base_response.py rename to src/smallestai/agents/knowledge_base/types/get_knowledge_base_response.py diff --git a/src/smallestai/atoms/knowledge_base/types/get_knowledgebase_id_items_response.py b/src/smallestai/agents/knowledge_base/types/get_knowledgebase_id_items_response.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/get_knowledgebase_id_items_response.py rename to src/smallestai/agents/knowledge_base/types/get_knowledgebase_id_items_response.py diff --git a/src/smallestai/atoms/knowledge_base/types/get_knowledgebase_id_scraped_urls_response.py b/src/smallestai/agents/knowledge_base/types/get_knowledgebase_id_scraped_urls_response.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/get_knowledgebase_id_scraped_urls_response.py rename to src/smallestai/agents/knowledge_base/types/get_knowledgebase_id_scraped_urls_response.py diff --git a/src/smallestai/atoms/knowledge_base/types/get_knowledgebase_id_scraped_urls_response_data_item.py b/src/smallestai/agents/knowledge_base/types/get_knowledgebase_id_scraped_urls_response_data_item.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/get_knowledgebase_id_scraped_urls_response_data_item.py rename to src/smallestai/agents/knowledge_base/types/get_knowledgebase_id_scraped_urls_response_data_item.py diff --git a/src/smallestai/atoms/knowledge_base/types/list_knowledge_base_response.py b/src/smallestai/agents/knowledge_base/types/list_knowledge_base_response.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/list_knowledge_base_response.py rename to src/smallestai/agents/knowledge_base/types/list_knowledge_base_response.py diff --git a/src/smallestai/atoms/knowledge_base/types/post_knowledgebase_compelete_file_upload_response.py b/src/smallestai/agents/knowledge_base/types/post_knowledgebase_compelete_file_upload_response.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/post_knowledgebase_compelete_file_upload_response.py rename to src/smallestai/agents/knowledge_base/types/post_knowledgebase_compelete_file_upload_response.py diff --git a/src/smallestai/atoms/knowledge_base/types/post_knowledgebase_get_presigned_url_response.py b/src/smallestai/agents/knowledge_base/types/post_knowledgebase_get_presigned_url_response.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/post_knowledgebase_get_presigned_url_response.py rename to src/smallestai/agents/knowledge_base/types/post_knowledgebase_get_presigned_url_response.py diff --git a/src/smallestai/atoms/knowledge_base/types/post_knowledgebase_get_presigned_url_response_data.py b/src/smallestai/agents/knowledge_base/types/post_knowledgebase_get_presigned_url_response_data.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/post_knowledgebase_get_presigned_url_response_data.py rename to src/smallestai/agents/knowledge_base/types/post_knowledgebase_get_presigned_url_response_data.py diff --git a/src/smallestai/atoms/knowledge_base/types/post_knowledgebase_id_items_upload_media_response.py b/src/smallestai/agents/knowledge_base/types/post_knowledgebase_id_items_upload_media_response.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/post_knowledgebase_id_items_upload_media_response.py rename to src/smallestai/agents/knowledge_base/types/post_knowledgebase_id_items_upload_media_response.py diff --git a/src/smallestai/atoms/knowledge_base/types/post_knowledgebase_id_response.py b/src/smallestai/agents/knowledge_base/types/post_knowledgebase_id_response.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/post_knowledgebase_id_response.py rename to src/smallestai/agents/knowledge_base/types/post_knowledgebase_id_response.py diff --git a/src/smallestai/atoms/knowledge_base/types/scrape_urls_knowledge_base_response.py b/src/smallestai/agents/knowledge_base/types/scrape_urls_knowledge_base_response.py similarity index 100% rename from src/smallestai/atoms/knowledge_base/types/scrape_urls_knowledge_base_response.py rename to src/smallestai/agents/knowledge_base/types/scrape_urls_knowledge_base_response.py diff --git a/src/smallestai/atoms/live_transcripts/__init__.py b/src/smallestai/agents/live_transcripts/__init__.py similarity index 100% rename from src/smallestai/atoms/live_transcripts/__init__.py rename to src/smallestai/agents/live_transcripts/__init__.py diff --git a/src/smallestai/atoms/live_transcripts/client.py b/src/smallestai/agents/live_transcripts/client.py similarity index 97% rename from src/smallestai/atoms/live_transcripts/client.py rename to src/smallestai/agents/live_transcripts/client.py index ed7609b2e..620f71d34 100644 --- a/src/smallestai/atoms/live_transcripts/client.py +++ b/src/smallestai/agents/live_transcripts/client.py @@ -89,7 +89,7 @@ def subscribe_to_live_events( client = SmallestAI( api_key="YOUR_API_KEY", ) - response = client.atoms.live_transcripts.subscribe_to_live_events( + response = client.agents.live_transcripts.subscribe_to_live_events( call_id="CALL-1758124225863-80752e", ) for chunk in response: @@ -187,7 +187,7 @@ async def subscribe_to_live_events( async def main() -> None: - response = await client.atoms.live_transcripts.subscribe_to_live_events( + response = await client.agents.live_transcripts.subscribe_to_live_events( call_id="CALL-1758124225863-80752e", ) async for chunk in response: diff --git a/src/smallestai/atoms/live_transcripts/raw_client.py b/src/smallestai/agents/live_transcripts/raw_client.py similarity index 100% rename from src/smallestai/atoms/live_transcripts/raw_client.py rename to src/smallestai/agents/live_transcripts/raw_client.py diff --git a/src/smallestai/atoms/live_transcripts/types/__init__.py b/src/smallestai/agents/live_transcripts/types/__init__.py similarity index 100% rename from src/smallestai/atoms/live_transcripts/types/__init__.py rename to src/smallestai/agents/live_transcripts/types/__init__.py diff --git a/src/smallestai/atoms/live_transcripts/types/subscribe_to_live_events_live_transcripts_response.py b/src/smallestai/agents/live_transcripts/types/subscribe_to_live_events_live_transcripts_response.py similarity index 100% rename from src/smallestai/atoms/live_transcripts/types/subscribe_to_live_events_live_transcripts_response.py rename to src/smallestai/agents/live_transcripts/types/subscribe_to_live_events_live_transcripts_response.py diff --git a/src/smallestai/atoms/live_transcripts/types/subscribe_to_live_events_live_transcripts_response_event_type.py b/src/smallestai/agents/live_transcripts/types/subscribe_to_live_events_live_transcripts_response_event_type.py similarity index 100% rename from src/smallestai/atoms/live_transcripts/types/subscribe_to_live_events_live_transcripts_response_event_type.py rename to src/smallestai/agents/live_transcripts/types/subscribe_to_live_events_live_transcripts_response_event_type.py diff --git a/src/smallestai/atoms/live_transcripts/types/subscribe_to_live_events_live_transcripts_response_metrics_item.py b/src/smallestai/agents/live_transcripts/types/subscribe_to_live_events_live_transcripts_response_metrics_item.py similarity index 100% rename from src/smallestai/atoms/live_transcripts/types/subscribe_to_live_events_live_transcripts_response_metrics_item.py rename to src/smallestai/agents/live_transcripts/types/subscribe_to_live_events_live_transcripts_response_metrics_item.py diff --git a/src/smallestai/atoms/organization/__init__.py b/src/smallestai/agents/organization/__init__.py similarity index 100% rename from src/smallestai/atoms/organization/__init__.py rename to src/smallestai/agents/organization/__init__.py diff --git a/src/smallestai/atoms/organization/client.py b/src/smallestai/agents/organization/client.py similarity index 95% rename from src/smallestai/atoms/organization/client.py rename to src/smallestai/agents/organization/client.py index 026cdc805..a6c599ee4 100644 --- a/src/smallestai/atoms/organization/client.py +++ b/src/smallestai/agents/organization/client.py @@ -44,7 +44,7 @@ def get_organization_details( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.organization.get_organization_details() + client.agents.organization.get_organization_details() """ _response = self._raw_client.get_organization_details(request_options=request_options) return _response.data @@ -91,7 +91,7 @@ async def get_organization_details( async def main() -> None: - await client.atoms.organization.get_organization_details() + await client.agents.organization.get_organization_details() asyncio.run(main()) diff --git a/src/smallestai/atoms/organization/raw_client.py b/src/smallestai/agents/organization/raw_client.py similarity index 100% rename from src/smallestai/atoms/organization/raw_client.py rename to src/smallestai/agents/organization/raw_client.py diff --git a/src/smallestai/atoms/organization/types/__init__.py b/src/smallestai/agents/organization/types/__init__.py similarity index 100% rename from src/smallestai/atoms/organization/types/__init__.py rename to src/smallestai/agents/organization/types/__init__.py diff --git a/src/smallestai/atoms/organization/types/get_organization_response.py b/src/smallestai/agents/organization/types/get_organization_response.py similarity index 100% rename from src/smallestai/atoms/organization/types/get_organization_response.py rename to src/smallestai/agents/organization/types/get_organization_response.py diff --git a/src/smallestai/atoms/organization/types/get_organization_response_data.py b/src/smallestai/agents/organization/types/get_organization_response_data.py similarity index 100% rename from src/smallestai/atoms/organization/types/get_organization_response_data.py rename to src/smallestai/agents/organization/types/get_organization_response_data.py diff --git a/src/smallestai/atoms/organization/types/get_organization_response_data_members_item.py b/src/smallestai/agents/organization/types/get_organization_response_data_members_item.py similarity index 100% rename from src/smallestai/atoms/organization/types/get_organization_response_data_members_item.py rename to src/smallestai/agents/organization/types/get_organization_response_data_members_item.py diff --git a/src/smallestai/atoms/organization/types/get_organization_response_data_subscription.py b/src/smallestai/agents/organization/types/get_organization_response_data_subscription.py similarity index 100% rename from src/smallestai/atoms/organization/types/get_organization_response_data_subscription.py rename to src/smallestai/agents/organization/types/get_organization_response_data_subscription.py diff --git a/src/smallestai/atoms/phone_numbers/__init__.py b/src/smallestai/agents/phone_numbers/__init__.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/__init__.py rename to src/smallestai/agents/phone_numbers/__init__.py diff --git a/src/smallestai/atoms/phone_numbers/client.py b/src/smallestai/agents/phone_numbers/client.py similarity index 95% rename from src/smallestai/atoms/phone_numbers/client.py rename to src/smallestai/agents/phone_numbers/client.py index 19d27183c..1e9acdd7f 100644 --- a/src/smallestai/atoms/phone_numbers/client.py +++ b/src/smallestai/agents/phone_numbers/client.py @@ -60,7 +60,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Li client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.phone_numbers.list() + client.agents.phone_numbers.list() """ _response = self._raw_client.list(request_options=request_options) return _response.data @@ -93,7 +93,7 @@ def list_all_phone_numbers_platform_sip( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.phone_numbers.list_all_phone_numbers_platform_sip() + client.agents.phone_numbers.list_all_phone_numbers_platform_sip() """ _response = self._raw_client.list_all_phone_numbers_platform_sip(request_options=request_options) return _response.data @@ -137,7 +137,7 @@ def search_rentable( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.phone_numbers.search_rentable( + client.agents.phone_numbers.search_rentable( country_code="US", provider="plivo", ) @@ -172,7 +172,7 @@ def preview_prorated_rental_cost_for_renting_a_phone_number_today( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.phone_numbers.preview_prorated_rental_cost_for_renting_a_phone_number_today() + client.agents.phone_numbers.preview_prorated_rental_cost_for_renting_a_phone_number_today() """ _response = self._raw_client.preview_prorated_rental_cost_for_renting_a_phone_number_today( request_options=request_options @@ -215,7 +215,7 @@ def rent( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.phone_numbers.rent( + client.agents.phone_numbers.rent( phone_number="13183747513", provider="plivo", ) @@ -251,7 +251,7 @@ def release( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.phone_numbers.release( + client.agents.phone_numbers.release( product_id="6969109c84c74bed175f02a7", ) """ @@ -281,7 +281,7 @@ def get_stripe_customer_portal_url( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.phone_numbers.get_stripe_customer_portal_url() + client.agents.phone_numbers.get_stripe_customer_portal_url() """ _response = self._raw_client.get_stripe_customer_portal_url(request_options=request_options) return _response.data @@ -309,7 +309,7 @@ def check_whether_the_organization_has_unpaid_invoices( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.phone_numbers.check_whether_the_organization_has_unpaid_invoices() + client.agents.phone_numbers.check_whether_the_organization_has_unpaid_invoices() """ _response = self._raw_client.check_whether_the_organization_has_unpaid_invoices(request_options=request_options) return _response.data @@ -362,7 +362,7 @@ def import_sip( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.phone_numbers.import_sip( + client.agents.phone_numbers.import_sip( phone_number="+14155551234", sip_termination_url="trunk.your-provider.com", name="Main Support Line", @@ -425,7 +425,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None) async def main() -> None: - await client.atoms.phone_numbers.list() + await client.agents.phone_numbers.list() asyncio.run(main()) @@ -466,7 +466,7 @@ async def list_all_phone_numbers_platform_sip( async def main() -> None: - await client.atoms.phone_numbers.list_all_phone_numbers_platform_sip() + await client.agents.phone_numbers.list_all_phone_numbers_platform_sip() asyncio.run(main()) @@ -518,7 +518,7 @@ async def search_rentable( async def main() -> None: - await client.atoms.phone_numbers.search_rentable( + await client.agents.phone_numbers.search_rentable( country_code="US", provider="plivo", ) @@ -561,7 +561,7 @@ async def preview_prorated_rental_cost_for_renting_a_phone_number_today( async def main() -> None: - await client.atoms.phone_numbers.preview_prorated_rental_cost_for_renting_a_phone_number_today() + await client.agents.phone_numbers.preview_prorated_rental_cost_for_renting_a_phone_number_today() asyncio.run(main()) @@ -612,7 +612,7 @@ async def rent( async def main() -> None: - await client.atoms.phone_numbers.rent( + await client.agents.phone_numbers.rent( phone_number="13183747513", provider="plivo", ) @@ -658,7 +658,7 @@ async def release( async def main() -> None: - await client.atoms.phone_numbers.release( + await client.agents.phone_numbers.release( product_id="6969109c84c74bed175f02a7", ) @@ -696,7 +696,7 @@ async def get_stripe_customer_portal_url( async def main() -> None: - await client.atoms.phone_numbers.get_stripe_customer_portal_url() + await client.agents.phone_numbers.get_stripe_customer_portal_url() asyncio.run(main()) @@ -732,7 +732,7 @@ async def check_whether_the_organization_has_unpaid_invoices( async def main() -> None: - await client.atoms.phone_numbers.check_whether_the_organization_has_unpaid_invoices() + await client.agents.phone_numbers.check_whether_the_organization_has_unpaid_invoices() asyncio.run(main()) @@ -795,7 +795,7 @@ async def import_sip( async def main() -> None: - await client.atoms.phone_numbers.import_sip( + await client.agents.phone_numbers.import_sip( phone_number="+14155551234", sip_termination_url="trunk.your-provider.com", name="Main Support Line", diff --git a/src/smallestai/atoms/phone_numbers/raw_client.py b/src/smallestai/agents/phone_numbers/raw_client.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/raw_client.py rename to src/smallestai/agents/phone_numbers/raw_client.py diff --git a/src/smallestai/atoms/phone_numbers/types/__init__.py b/src/smallestai/agents/phone_numbers/types/__init__.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/__init__.py rename to src/smallestai/agents/phone_numbers/types/__init__.py diff --git a/src/smallestai/atoms/phone_numbers/types/get_product_all_numbers_response.py b/src/smallestai/agents/phone_numbers/types/get_product_all_numbers_response.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/get_product_all_numbers_response.py rename to src/smallestai/agents/phone_numbers/types/get_product_all_numbers_response.py diff --git a/src/smallestai/atoms/phone_numbers/types/get_product_all_numbers_response_data.py b/src/smallestai/agents/phone_numbers/types/get_product_all_numbers_response_data.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/get_product_all_numbers_response_data.py rename to src/smallestai/agents/phone_numbers/types/get_product_all_numbers_response_data.py diff --git a/src/smallestai/atoms/phone_numbers/types/get_product_manage_subscription_response.py b/src/smallestai/agents/phone_numbers/types/get_product_manage_subscription_response.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/get_product_manage_subscription_response.py rename to src/smallestai/agents/phone_numbers/types/get_product_manage_subscription_response.py diff --git a/src/smallestai/atoms/phone_numbers/types/get_product_manage_subscription_response_data.py b/src/smallestai/agents/phone_numbers/types/get_product_manage_subscription_response_data.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/get_product_manage_subscription_response_data.py rename to src/smallestai/agents/phone_numbers/types/get_product_manage_subscription_response_data.py diff --git a/src/smallestai/atoms/phone_numbers/types/get_product_proration_amount_response.py b/src/smallestai/agents/phone_numbers/types/get_product_proration_amount_response.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/get_product_proration_amount_response.py rename to src/smallestai/agents/phone_numbers/types/get_product_proration_amount_response.py diff --git a/src/smallestai/atoms/phone_numbers/types/get_product_proration_amount_response_data.py b/src/smallestai/agents/phone_numbers/types/get_product_proration_amount_response_data.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/get_product_proration_amount_response_data.py rename to src/smallestai/agents/phone_numbers/types/get_product_proration_amount_response_data.py diff --git a/src/smallestai/atoms/phone_numbers/types/get_product_unpaid_invoices_response.py b/src/smallestai/agents/phone_numbers/types/get_product_unpaid_invoices_response.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/get_product_unpaid_invoices_response.py rename to src/smallestai/agents/phone_numbers/types/get_product_unpaid_invoices_response.py diff --git a/src/smallestai/atoms/phone_numbers/types/get_product_unpaid_invoices_response_data.py b/src/smallestai/agents/phone_numbers/types/get_product_unpaid_invoices_response_data.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/get_product_unpaid_invoices_response_data.py rename to src/smallestai/agents/phone_numbers/types/get_product_unpaid_invoices_response_data.py diff --git a/src/smallestai/atoms/phone_numbers/types/import_sip_phone_numbers_response.py b/src/smallestai/agents/phone_numbers/types/import_sip_phone_numbers_response.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/import_sip_phone_numbers_response.py rename to src/smallestai/agents/phone_numbers/types/import_sip_phone_numbers_response.py diff --git a/src/smallestai/atoms/phone_numbers/types/import_sip_phone_numbers_response_data.py b/src/smallestai/agents/phone_numbers/types/import_sip_phone_numbers_response_data.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/import_sip_phone_numbers_response_data.py rename to src/smallestai/agents/phone_numbers/types/import_sip_phone_numbers_response_data.py diff --git a/src/smallestai/atoms/phone_numbers/types/import_sip_phone_numbers_response_data_attributes.py b/src/smallestai/agents/phone_numbers/types/import_sip_phone_numbers_response_data_attributes.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/import_sip_phone_numbers_response_data_attributes.py rename to src/smallestai/agents/phone_numbers/types/import_sip_phone_numbers_response_data_attributes.py diff --git a/src/smallestai/atoms/phone_numbers/types/import_sip_phone_numbers_response_data_product_type.py b/src/smallestai/agents/phone_numbers/types/import_sip_phone_numbers_response_data_product_type.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/import_sip_phone_numbers_response_data_product_type.py rename to src/smallestai/agents/phone_numbers/types/import_sip_phone_numbers_response_data_product_type.py diff --git a/src/smallestai/atoms/phone_numbers/types/list_phone_numbers_response.py b/src/smallestai/agents/phone_numbers/types/list_phone_numbers_response.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/list_phone_numbers_response.py rename to src/smallestai/agents/phone_numbers/types/list_phone_numbers_response.py diff --git a/src/smallestai/atoms/phone_numbers/types/list_phone_numbers_response_data_item.py b/src/smallestai/agents/phone_numbers/types/list_phone_numbers_response_data_item.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/list_phone_numbers_response_data_item.py rename to src/smallestai/agents/phone_numbers/types/list_phone_numbers_response_data_item.py diff --git a/src/smallestai/atoms/phone_numbers/types/list_phone_numbers_response_data_item_attributes.py b/src/smallestai/agents/phone_numbers/types/list_phone_numbers_response_data_item_attributes.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/list_phone_numbers_response_data_item_attributes.py rename to src/smallestai/agents/phone_numbers/types/list_phone_numbers_response_data_item_attributes.py diff --git a/src/smallestai/atoms/phone_numbers/types/list_phone_numbers_response_data_item_attributes_provider.py b/src/smallestai/agents/phone_numbers/types/list_phone_numbers_response_data_item_attributes_provider.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/list_phone_numbers_response_data_item_attributes_provider.py rename to src/smallestai/agents/phone_numbers/types/list_phone_numbers_response_data_item_attributes_provider.py diff --git a/src/smallestai/atoms/phone_numbers/types/list_phone_numbers_response_data_item_product_type.py b/src/smallestai/agents/phone_numbers/types/list_phone_numbers_response_data_item_product_type.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/list_phone_numbers_response_data_item_product_type.py rename to src/smallestai/agents/phone_numbers/types/list_phone_numbers_response_data_item_product_type.py diff --git a/src/smallestai/atoms/phone_numbers/types/release_phone_numbers_response.py b/src/smallestai/agents/phone_numbers/types/release_phone_numbers_response.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/release_phone_numbers_response.py rename to src/smallestai/agents/phone_numbers/types/release_phone_numbers_response.py diff --git a/src/smallestai/atoms/phone_numbers/types/release_phone_numbers_response_data.py b/src/smallestai/agents/phone_numbers/types/release_phone_numbers_response_data.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/release_phone_numbers_response_data.py rename to src/smallestai/agents/phone_numbers/types/release_phone_numbers_response_data.py diff --git a/src/smallestai/atoms/phone_numbers/types/rent_phone_numbers_request_provider.py b/src/smallestai/agents/phone_numbers/types/rent_phone_numbers_request_provider.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/rent_phone_numbers_request_provider.py rename to src/smallestai/agents/phone_numbers/types/rent_phone_numbers_request_provider.py diff --git a/src/smallestai/atoms/phone_numbers/types/rent_phone_numbers_response.py b/src/smallestai/agents/phone_numbers/types/rent_phone_numbers_response.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/rent_phone_numbers_response.py rename to src/smallestai/agents/phone_numbers/types/rent_phone_numbers_response.py diff --git a/src/smallestai/atoms/phone_numbers/types/rent_phone_numbers_response_data.py b/src/smallestai/agents/phone_numbers/types/rent_phone_numbers_response_data.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/rent_phone_numbers_response_data.py rename to src/smallestai/agents/phone_numbers/types/rent_phone_numbers_response_data.py diff --git a/src/smallestai/atoms/phone_numbers/types/search_rentable_phone_numbers_request_provider.py b/src/smallestai/agents/phone_numbers/types/search_rentable_phone_numbers_request_provider.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/search_rentable_phone_numbers_request_provider.py rename to src/smallestai/agents/phone_numbers/types/search_rentable_phone_numbers_request_provider.py diff --git a/src/smallestai/atoms/phone_numbers/types/search_rentable_phone_numbers_response.py b/src/smallestai/agents/phone_numbers/types/search_rentable_phone_numbers_response.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/search_rentable_phone_numbers_response.py rename to src/smallestai/agents/phone_numbers/types/search_rentable_phone_numbers_response.py diff --git a/src/smallestai/atoms/phone_numbers/types/search_rentable_phone_numbers_response_data_item.py b/src/smallestai/agents/phone_numbers/types/search_rentable_phone_numbers_response_data_item.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/search_rentable_phone_numbers_response_data_item.py rename to src/smallestai/agents/phone_numbers/types/search_rentable_phone_numbers_response_data_item.py diff --git a/src/smallestai/atoms/phone_numbers/types/search_rentable_phone_numbers_response_data_item_provider.py b/src/smallestai/agents/phone_numbers/types/search_rentable_phone_numbers_response_data_item_provider.py similarity index 100% rename from src/smallestai/atoms/phone_numbers/types/search_rentable_phone_numbers_response_data_item_provider.py rename to src/smallestai/agents/phone_numbers/types/search_rentable_phone_numbers_response_data_item_provider.py diff --git a/src/smallestai/atoms/prompt_scoring/__init__.py b/src/smallestai/agents/prompt_scoring/__init__.py similarity index 100% rename from src/smallestai/atoms/prompt_scoring/__init__.py rename to src/smallestai/agents/prompt_scoring/__init__.py diff --git a/src/smallestai/atoms/prompt_scoring/client.py b/src/smallestai/agents/prompt_scoring/client.py similarity index 96% rename from src/smallestai/atoms/prompt_scoring/client.py rename to src/smallestai/agents/prompt_scoring/client.py index 79256cfa1..c3661a78c 100644 --- a/src/smallestai/atoms/prompt_scoring/client.py +++ b/src/smallestai/agents/prompt_scoring/client.py @@ -74,14 +74,14 @@ def score_a_prompt( Examples -------- from smallestai import SmallestAI - from smallestai.atoms.prompt_scoring import ( + from smallestai.agents.prompt_scoring import ( PostPromptScoringScoreRequestVersionId, ) client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.prompt_scoring.score_a_prompt( + client.agents.prompt_scoring.score_a_prompt( request=PostPromptScoringScoreRequestVersionId( version_id="6a1589b75e048394eb37bc47", ), @@ -155,7 +155,7 @@ async def score_a_prompt( import asyncio from smallestai import AsyncSmallestAI - from smallestai.atoms.prompt_scoring import ( + from smallestai.agents.prompt_scoring import ( PostPromptScoringScoreRequestVersionId, ) @@ -165,7 +165,7 @@ async def score_a_prompt( async def main() -> None: - await client.atoms.prompt_scoring.score_a_prompt( + await client.agents.prompt_scoring.score_a_prompt( request=PostPromptScoringScoreRequestVersionId( version_id="6a1589b75e048394eb37bc47", ), diff --git a/src/smallestai/atoms/prompt_scoring/raw_client.py b/src/smallestai/agents/prompt_scoring/raw_client.py similarity index 100% rename from src/smallestai/atoms/prompt_scoring/raw_client.py rename to src/smallestai/agents/prompt_scoring/raw_client.py diff --git a/src/smallestai/atoms/prompt_scoring/types/__init__.py b/src/smallestai/agents/prompt_scoring/types/__init__.py similarity index 100% rename from src/smallestai/atoms/prompt_scoring/types/__init__.py rename to src/smallestai/agents/prompt_scoring/types/__init__.py diff --git a/src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_request.py b/src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_request.py similarity index 100% rename from src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_request.py rename to src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_request.py diff --git a/src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_request_draft_id.py b/src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_request_draft_id.py similarity index 100% rename from src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_request_draft_id.py rename to src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_request_draft_id.py diff --git a/src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_request_version_id.py b/src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_request_version_id.py similarity index 100% rename from src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_request_version_id.py rename to src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_request_version_id.py diff --git a/src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_response.py b/src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_response.py similarity index 100% rename from src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_response.py rename to src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_response.py diff --git a/src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_response_data.py b/src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_response_data.py similarity index 100% rename from src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_response_data.py rename to src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_response_data.py diff --git a/src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_response_data_band.py b/src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_response_data_band.py similarity index 100% rename from src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_response_data_band.py rename to src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_response_data_band.py diff --git a/src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_response_data_dimensions_item.py b/src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_response_data_dimensions_item.py similarity index 100% rename from src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_response_data_dimensions_item.py rename to src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_response_data_dimensions_item.py diff --git a/src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_response_data_dimensions_item_level.py b/src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_response_data_dimensions_item_level.py similarity index 100% rename from src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_response_data_dimensions_item_level.py rename to src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_response_data_dimensions_item_level.py diff --git a/src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_response_data_overall_grade.py b/src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_response_data_overall_grade.py similarity index 100% rename from src/smallestai/atoms/prompt_scoring/types/post_prompt_scoring_score_response_data_overall_grade.py rename to src/smallestai/agents/prompt_scoring/types/post_prompt_scoring_score_response_data_overall_grade.py diff --git a/src/smallestai/atoms/raw_client.py b/src/smallestai/agents/raw_client.py similarity index 87% rename from src/smallestai/atoms/raw_client.py rename to src/smallestai/agents/raw_client.py index 94d54655e..542790e9d 100644 --- a/src/smallestai/atoms/raw_client.py +++ b/src/smallestai/agents/raw_client.py @@ -3,11 +3,11 @@ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -class RawAtomsClient: +class RawAgentsClient: def __init__(self, *, client_wrapper: SyncClientWrapper): self._client_wrapper = client_wrapper -class AsyncRawAtomsClient: +class AsyncRawAgentsClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): self._client_wrapper = client_wrapper diff --git a/src/smallestai/atoms/realtime/__init__.py b/src/smallestai/agents/realtime/__init__.py similarity index 100% rename from src/smallestai/atoms/realtime/__init__.py rename to src/smallestai/agents/realtime/__init__.py diff --git a/src/smallestai/atoms/realtime/client.py b/src/smallestai/agents/realtime/client.py similarity index 98% rename from src/smallestai/atoms/realtime/client.py rename to src/smallestai/agents/realtime/client.py index 91b007242..72e788ad5 100644 --- a/src/smallestai/atoms/realtime/client.py +++ b/src/smallestai/agents/realtime/client.py @@ -90,7 +90,7 @@ def register_call( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.realtime.register_call( + client.agents.realtime.register_call( agent_id="69da0b4c20c0e03cfa4ee258", ) """ @@ -182,7 +182,7 @@ async def register_call( async def main() -> None: - await client.atoms.realtime.register_call( + await client.agents.realtime.register_call( agent_id="69da0b4c20c0e03cfa4ee258", ) diff --git a/src/smallestai/atoms/realtime/raw_client.py b/src/smallestai/agents/realtime/raw_client.py similarity index 100% rename from src/smallestai/atoms/realtime/raw_client.py rename to src/smallestai/agents/realtime/raw_client.py diff --git a/src/smallestai/atoms/realtime/types/__init__.py b/src/smallestai/agents/realtime/types/__init__.py similarity index 100% rename from src/smallestai/atoms/realtime/types/__init__.py rename to src/smallestai/agents/realtime/types/__init__.py diff --git a/src/smallestai/atoms/realtime/types/register_call_realtime_request_mode.py b/src/smallestai/agents/realtime/types/register_call_realtime_request_mode.py similarity index 100% rename from src/smallestai/atoms/realtime/types/register_call_realtime_request_mode.py rename to src/smallestai/agents/realtime/types/register_call_realtime_request_mode.py diff --git a/src/smallestai/atoms/realtime/types/register_call_realtime_request_variables_value.py b/src/smallestai/agents/realtime/types/register_call_realtime_request_variables_value.py similarity index 100% rename from src/smallestai/atoms/realtime/types/register_call_realtime_request_variables_value.py rename to src/smallestai/agents/realtime/types/register_call_realtime_request_variables_value.py diff --git a/src/smallestai/atoms/realtime/types/register_call_realtime_response.py b/src/smallestai/agents/realtime/types/register_call_realtime_response.py similarity index 100% rename from src/smallestai/atoms/realtime/types/register_call_realtime_response.py rename to src/smallestai/agents/realtime/types/register_call_realtime_response.py diff --git a/src/smallestai/atoms/realtime/types/register_call_realtime_response_data.py b/src/smallestai/agents/realtime/types/register_call_realtime_response_data.py similarity index 100% rename from src/smallestai/atoms/realtime/types/register_call_realtime_response_data.py rename to src/smallestai/agents/realtime/types/register_call_realtime_response_data.py diff --git a/src/smallestai/atoms/types/__init__.py b/src/smallestai/agents/types/__init__.py similarity index 100% rename from src/smallestai/atoms/types/__init__.py rename to src/smallestai/agents/types/__init__.py diff --git a/src/smallestai/atoms/types/agent_dto.py b/src/smallestai/agents/types/agent_dto.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto.py rename to src/smallestai/agents/types/agent_dto.py diff --git a/src/smallestai/atoms/types/agent_dto_background_sound.py b/src/smallestai/agents/types/agent_dto_background_sound.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_background_sound.py rename to src/smallestai/agents/types/agent_dto_background_sound.py diff --git a/src/smallestai/atoms/types/agent_dto_config_source.py b/src/smallestai/agents/types/agent_dto_config_source.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_config_source.py rename to src/smallestai/agents/types/agent_dto_config_source.py diff --git a/src/smallestai/atoms/types/agent_dto_denoising_config.py b/src/smallestai/agents/types/agent_dto_denoising_config.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_denoising_config.py rename to src/smallestai/agents/types/agent_dto_denoising_config.py diff --git a/src/smallestai/atoms/types/agent_dto_language.py b/src/smallestai/agents/types/agent_dto_language.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_language.py rename to src/smallestai/agents/types/agent_dto_language.py diff --git a/src/smallestai/atoms/types/agent_dto_language_default.py b/src/smallestai/agents/types/agent_dto_language_default.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_language_default.py rename to src/smallestai/agents/types/agent_dto_language_default.py diff --git a/src/smallestai/atoms/types/agent_dto_language_switching.py b/src/smallestai/agents/types/agent_dto_language_switching.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_language_switching.py rename to src/smallestai/agents/types/agent_dto_language_switching.py diff --git a/src/smallestai/atoms/types/agent_dto_llm_idle_timeout_config.py b/src/smallestai/agents/types/agent_dto_llm_idle_timeout_config.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_llm_idle_timeout_config.py rename to src/smallestai/agents/types/agent_dto_llm_idle_timeout_config.py diff --git a/src/smallestai/atoms/types/agent_dto_pre_call_api.py b/src/smallestai/agents/types/agent_dto_pre_call_api.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_pre_call_api.py rename to src/smallestai/agents/types/agent_dto_pre_call_api.py diff --git a/src/smallestai/atoms/types/agent_dto_pre_call_api_method.py b/src/smallestai/agents/types/agent_dto_pre_call_api_method.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_pre_call_api_method.py rename to src/smallestai/agents/types/agent_dto_pre_call_api_method.py diff --git a/src/smallestai/atoms/types/agent_dto_pre_call_api_response_variables_item.py b/src/smallestai/agents/types/agent_dto_pre_call_api_response_variables_item.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_pre_call_api_response_variables_item.py rename to src/smallestai/agents/types/agent_dto_pre_call_api_response_variables_item.py diff --git a/src/smallestai/atoms/types/agent_dto_pronunciation_dicts_item.py b/src/smallestai/agents/types/agent_dto_pronunciation_dicts_item.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_pronunciation_dicts_item.py rename to src/smallestai/agents/types/agent_dto_pronunciation_dicts_item.py diff --git a/src/smallestai/atoms/types/agent_dto_redaction_config.py b/src/smallestai/agents/types/agent_dto_redaction_config.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_redaction_config.py rename to src/smallestai/agents/types/agent_dto_redaction_config.py diff --git a/src/smallestai/atoms/types/agent_dto_resolved_config.py b/src/smallestai/agents/types/agent_dto_resolved_config.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_resolved_config.py rename to src/smallestai/agents/types/agent_dto_resolved_config.py diff --git a/src/smallestai/atoms/types/agent_dto_resolved_config_default_language.py b/src/smallestai/agents/types/agent_dto_resolved_config_default_language.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_resolved_config_default_language.py rename to src/smallestai/agents/types/agent_dto_resolved_config_default_language.py diff --git a/src/smallestai/atoms/types/agent_dto_session_timeout_config.py b/src/smallestai/agents/types/agent_dto_session_timeout_config.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_session_timeout_config.py rename to src/smallestai/agents/types/agent_dto_session_timeout_config.py diff --git a/src/smallestai/atoms/types/agent_dto_slm_model.py b/src/smallestai/agents/types/agent_dto_slm_model.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_slm_model.py rename to src/smallestai/agents/types/agent_dto_slm_model.py diff --git a/src/smallestai/atoms/types/agent_dto_smart_turn_config.py b/src/smallestai/agents/types/agent_dto_smart_turn_config.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_smart_turn_config.py rename to src/smallestai/agents/types/agent_dto_smart_turn_config.py diff --git a/src/smallestai/atoms/types/agent_dto_synthesizer.py b/src/smallestai/agents/types/agent_dto_synthesizer.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_synthesizer.py rename to src/smallestai/agents/types/agent_dto_synthesizer.py diff --git a/src/smallestai/atoms/types/agent_dto_synthesizer_voice_config.py b/src/smallestai/agents/types/agent_dto_synthesizer_voice_config.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_synthesizer_voice_config.py rename to src/smallestai/agents/types/agent_dto_synthesizer_voice_config.py diff --git a/src/smallestai/atoms/types/agent_dto_synthesizer_voice_config_gender.py b/src/smallestai/agents/types/agent_dto_synthesizer_voice_config_gender.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_synthesizer_voice_config_gender.py rename to src/smallestai/agents/types/agent_dto_synthesizer_voice_config_gender.py diff --git a/src/smallestai/atoms/types/agent_dto_synthesizer_voice_config_model.py b/src/smallestai/agents/types/agent_dto_synthesizer_voice_config_model.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_synthesizer_voice_config_model.py rename to src/smallestai/agents/types/agent_dto_synthesizer_voice_config_model.py diff --git a/src/smallestai/atoms/types/agent_dto_timezone.py b/src/smallestai/agents/types/agent_dto_timezone.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_timezone.py rename to src/smallestai/agents/types/agent_dto_timezone.py diff --git a/src/smallestai/atoms/types/agent_dto_versioned_workflow.py b/src/smallestai/agents/types/agent_dto_versioned_workflow.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_versioned_workflow.py rename to src/smallestai/agents/types/agent_dto_versioned_workflow.py diff --git a/src/smallestai/atoms/types/agent_dto_voice_detection_config.py b/src/smallestai/agents/types/agent_dto_voice_detection_config.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_voice_detection_config.py rename to src/smallestai/agents/types/agent_dto_voice_detection_config.py diff --git a/src/smallestai/atoms/types/agent_dto_voice_mail_detection_config.py b/src/smallestai/agents/types/agent_dto_voice_mail_detection_config.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_voice_mail_detection_config.py rename to src/smallestai/agents/types/agent_dto_voice_mail_detection_config.py diff --git a/src/smallestai/atoms/types/agent_dto_widget_config.py b/src/smallestai/agents/types/agent_dto_widget_config.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_widget_config.py rename to src/smallestai/agents/types/agent_dto_widget_config.py diff --git a/src/smallestai/atoms/types/agent_dto_widget_config_mode.py b/src/smallestai/agents/types/agent_dto_widget_config_mode.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_widget_config_mode.py rename to src/smallestai/agents/types/agent_dto_widget_config_mode.py diff --git a/src/smallestai/atoms/types/agent_dto_widget_config_position.py b/src/smallestai/agents/types/agent_dto_widget_config_position.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_widget_config_position.py rename to src/smallestai/agents/types/agent_dto_widget_config_position.py diff --git a/src/smallestai/atoms/types/agent_dto_widget_config_size.py b/src/smallestai/agents/types/agent_dto_widget_config_size.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_widget_config_size.py rename to src/smallestai/agents/types/agent_dto_widget_config_size.py diff --git a/src/smallestai/atoms/types/agent_dto_widget_config_theme.py b/src/smallestai/agents/types/agent_dto_widget_config_theme.py similarity index 100% rename from src/smallestai/atoms/types/agent_dto_widget_config_theme.py rename to src/smallestai/agents/types/agent_dto_widget_config_theme.py diff --git a/src/smallestai/atoms/types/agent_version.py b/src/smallestai/agents/types/agent_version.py similarity index 100% rename from src/smallestai/atoms/types/agent_version.py rename to src/smallestai/agents/types/agent_version.py diff --git a/src/smallestai/atoms/types/agent_version_blocks.py b/src/smallestai/agents/types/agent_version_blocks.py similarity index 100% rename from src/smallestai/atoms/types/agent_version_blocks.py rename to src/smallestai/agents/types/agent_version_blocks.py diff --git a/src/smallestai/atoms/types/agent_version_diff.py b/src/smallestai/agents/types/agent_version_diff.py similarity index 100% rename from src/smallestai/atoms/types/agent_version_diff.py rename to src/smallestai/agents/types/agent_version_diff.py diff --git a/src/smallestai/atoms/types/agent_version_diff_diffs_item.py b/src/smallestai/agents/types/agent_version_diff_diffs_item.py similarity index 100% rename from src/smallestai/atoms/types/agent_version_diff_diffs_item.py rename to src/smallestai/agents/types/agent_version_diff_diffs_item.py diff --git a/src/smallestai/atoms/types/agent_version_diff_diffs_item_changes_item.py b/src/smallestai/agents/types/agent_version_diff_diffs_item_changes_item.py similarity index 100% rename from src/smallestai/atoms/types/agent_version_diff_diffs_item_changes_item.py rename to src/smallestai/agents/types/agent_version_diff_diffs_item_changes_item.py diff --git a/src/smallestai/atoms/types/agent_version_diff_diffs_item_changes_item_new_value.py b/src/smallestai/agents/types/agent_version_diff_diffs_item_changes_item_new_value.py similarity index 100% rename from src/smallestai/atoms/types/agent_version_diff_diffs_item_changes_item_new_value.py rename to src/smallestai/agents/types/agent_version_diff_diffs_item_changes_item_new_value.py diff --git a/src/smallestai/atoms/types/agent_version_diff_diffs_item_changes_item_old_value.py b/src/smallestai/agents/types/agent_version_diff_diffs_item_changes_item_old_value.py similarity index 100% rename from src/smallestai/atoms/types/agent_version_diff_diffs_item_changes_item_old_value.py rename to src/smallestai/agents/types/agent_version_diff_diffs_item_changes_item_old_value.py diff --git a/src/smallestai/atoms/types/agent_version_metrics.py b/src/smallestai/agents/types/agent_version_metrics.py similarity index 100% rename from src/smallestai/atoms/types/agent_version_metrics.py rename to src/smallestai/agents/types/agent_version_metrics.py diff --git a/src/smallestai/atoms/types/agent_version_metrics_comparison.py b/src/smallestai/agents/types/agent_version_metrics_comparison.py similarity index 100% rename from src/smallestai/atoms/types/agent_version_metrics_comparison.py rename to src/smallestai/agents/types/agent_version_metrics_comparison.py diff --git a/src/smallestai/atoms/types/agent_version_metrics_comparison_metrics.py b/src/smallestai/agents/types/agent_version_metrics_comparison_metrics.py similarity index 100% rename from src/smallestai/atoms/types/agent_version_metrics_comparison_metrics.py rename to src/smallestai/agents/types/agent_version_metrics_comparison_metrics.py diff --git a/src/smallestai/atoms/types/agent_version_metrics_comparison_metrics_deltas.py b/src/smallestai/agents/types/agent_version_metrics_comparison_metrics_deltas.py similarity index 100% rename from src/smallestai/atoms/types/agent_version_metrics_comparison_metrics_deltas.py rename to src/smallestai/agents/types/agent_version_metrics_comparison_metrics_deltas.py diff --git a/src/smallestai/atoms/types/agent_version_status.py b/src/smallestai/agents/types/agent_version_status.py similarity index 100% rename from src/smallestai/atoms/types/agent_version_status.py rename to src/smallestai/agents/types/agent_version_status.py diff --git a/src/smallestai/atoms/types/analytics_date_range.py b/src/smallestai/agents/types/analytics_date_range.py similarity index 100% rename from src/smallestai/atoms/types/analytics_date_range.py rename to src/smallestai/agents/types/analytics_date_range.py diff --git a/src/smallestai/atoms/types/analytics_trend_metric.py b/src/smallestai/agents/types/analytics_trend_metric.py similarity index 100% rename from src/smallestai/atoms/types/analytics_trend_metric.py rename to src/smallestai/agents/types/analytics_trend_metric.py diff --git a/src/smallestai/atoms/types/api_response.py b/src/smallestai/agents/types/api_response.py similarity index 100% rename from src/smallestai/atoms/types/api_response.py rename to src/smallestai/agents/types/api_response.py diff --git a/src/smallestai/atoms/types/bad_request_error_body.py b/src/smallestai/agents/types/bad_request_error_body.py similarity index 100% rename from src/smallestai/atoms/types/bad_request_error_body.py rename to src/smallestai/agents/types/bad_request_error_body.py diff --git a/src/smallestai/atoms/types/bad_request_error_body_error.py b/src/smallestai/agents/types/bad_request_error_body_error.py similarity index 100% rename from src/smallestai/atoms/types/bad_request_error_body_error.py rename to src/smallestai/agents/types/bad_request_error_body_error.py diff --git a/src/smallestai/atoms/types/bad_request_error_response.py b/src/smallestai/agents/types/bad_request_error_response.py similarity index 100% rename from src/smallestai/atoms/types/bad_request_error_response.py rename to src/smallestai/agents/types/bad_request_error_response.py diff --git a/src/smallestai/atoms/types/billing_balance_response.py b/src/smallestai/agents/types/billing_balance_response.py similarity index 100% rename from src/smallestai/atoms/types/billing_balance_response.py rename to src/smallestai/agents/types/billing_balance_response.py diff --git a/src/smallestai/atoms/types/billing_balance_response_data.py b/src/smallestai/agents/types/billing_balance_response_data.py similarity index 100% rename from src/smallestai/atoms/types/billing_balance_response_data.py rename to src/smallestai/agents/types/billing_balance_response_data.py diff --git a/src/smallestai/atoms/types/billing_invoice_list_response.py b/src/smallestai/agents/types/billing_invoice_list_response.py similarity index 100% rename from src/smallestai/atoms/types/billing_invoice_list_response.py rename to src/smallestai/agents/types/billing_invoice_list_response.py diff --git a/src/smallestai/atoms/types/billing_invoice_pdf_response.py b/src/smallestai/agents/types/billing_invoice_pdf_response.py similarity index 100% rename from src/smallestai/atoms/types/billing_invoice_pdf_response.py rename to src/smallestai/agents/types/billing_invoice_pdf_response.py diff --git a/src/smallestai/atoms/types/billing_invoice_pdf_response_data.py b/src/smallestai/agents/types/billing_invoice_pdf_response_data.py similarity index 100% rename from src/smallestai/atoms/types/billing_invoice_pdf_response_data.py rename to src/smallestai/agents/types/billing_invoice_pdf_response_data.py diff --git a/src/smallestai/atoms/types/billing_ledger_entry.py b/src/smallestai/agents/types/billing_ledger_entry.py similarity index 100% rename from src/smallestai/atoms/types/billing_ledger_entry.py rename to src/smallestai/agents/types/billing_ledger_entry.py diff --git a/src/smallestai/atoms/types/billing_ledger_entry_transaction_type.py b/src/smallestai/agents/types/billing_ledger_entry_transaction_type.py similarity index 100% rename from src/smallestai/atoms/types/billing_ledger_entry_transaction_type.py rename to src/smallestai/agents/types/billing_ledger_entry_transaction_type.py diff --git a/src/smallestai/atoms/types/billing_ledger_response.py b/src/smallestai/agents/types/billing_ledger_response.py similarity index 100% rename from src/smallestai/atoms/types/billing_ledger_response.py rename to src/smallestai/agents/types/billing_ledger_response.py diff --git a/src/smallestai/atoms/types/billing_ledger_response_data.py b/src/smallestai/agents/types/billing_ledger_response_data.py similarity index 100% rename from src/smallestai/atoms/types/billing_ledger_response_data.py rename to src/smallestai/agents/types/billing_ledger_response_data.py diff --git a/src/smallestai/atoms/types/billing_ledger_response_data_period.py b/src/smallestai/agents/types/billing_ledger_response_data_period.py similarity index 100% rename from src/smallestai/atoms/types/billing_ledger_response_data_period.py rename to src/smallestai/agents/types/billing_ledger_response_data_period.py diff --git a/src/smallestai/atoms/types/billing_ledger_response_data_summary.py b/src/smallestai/agents/types/billing_ledger_response_data_summary.py similarity index 100% rename from src/smallestai/atoms/types/billing_ledger_response_data_summary.py rename to src/smallestai/agents/types/billing_ledger_response_data_summary.py diff --git a/src/smallestai/atoms/types/billing_usage_breakdown_response.py b/src/smallestai/agents/types/billing_usage_breakdown_response.py similarity index 100% rename from src/smallestai/atoms/types/billing_usage_breakdown_response.py rename to src/smallestai/agents/types/billing_usage_breakdown_response.py diff --git a/src/smallestai/atoms/types/billing_usage_breakdown_response_data.py b/src/smallestai/agents/types/billing_usage_breakdown_response_data.py similarity index 100% rename from src/smallestai/atoms/types/billing_usage_breakdown_response_data.py rename to src/smallestai/agents/types/billing_usage_breakdown_response_data.py diff --git a/src/smallestai/atoms/types/branch.py b/src/smallestai/agents/types/branch.py similarity index 100% rename from src/smallestai/atoms/types/branch.py rename to src/smallestai/agents/types/branch.py diff --git a/src/smallestai/atoms/types/branch_status.py b/src/smallestai/agents/types/branch_status.py similarity index 100% rename from src/smallestai/atoms/types/branch_status.py rename to src/smallestai/agents/types/branch_status.py diff --git a/src/smallestai/atoms/types/branch_summary.py b/src/smallestai/agents/types/branch_summary.py similarity index 100% rename from src/smallestai/atoms/types/branch_summary.py rename to src/smallestai/agents/types/branch_summary.py diff --git a/src/smallestai/atoms/types/call_action.py b/src/smallestai/agents/types/call_action.py similarity index 100% rename from src/smallestai/atoms/types/call_action.py rename to src/smallestai/agents/types/call_action.py diff --git a/src/smallestai/atoms/types/call_action_action_type.py b/src/smallestai/agents/types/call_action_action_type.py similarity index 100% rename from src/smallestai/atoms/types/call_action_action_type.py rename to src/smallestai/agents/types/call_action_action_type.py diff --git a/src/smallestai/atoms/types/call_action_category.py b/src/smallestai/agents/types/call_action_category.py similarity index 100% rename from src/smallestai/atoms/types/call_action_category.py rename to src/smallestai/agents/types/call_action_category.py diff --git a/src/smallestai/atoms/types/call_action_condition.py b/src/smallestai/agents/types/call_action_condition.py similarity index 100% rename from src/smallestai/atoms/types/call_action_condition.py rename to src/smallestai/agents/types/call_action_condition.py diff --git a/src/smallestai/atoms/types/call_action_condition_operator.py b/src/smallestai/agents/types/call_action_condition_operator.py similarity index 100% rename from src/smallestai/atoms/types/call_action_condition_operator.py rename to src/smallestai/agents/types/call_action_condition_operator.py diff --git a/src/smallestai/atoms/types/call_action_config.py b/src/smallestai/agents/types/call_action_config.py similarity index 100% rename from src/smallestai/atoms/types/call_action_config.py rename to src/smallestai/agents/types/call_action_config.py diff --git a/src/smallestai/atoms/types/compliance_application.py b/src/smallestai/agents/types/compliance_application.py similarity index 100% rename from src/smallestai/atoms/types/compliance_application.py rename to src/smallestai/agents/types/compliance_application.py diff --git a/src/smallestai/atoms/types/compliance_application_number_type.py b/src/smallestai/agents/types/compliance_application_number_type.py similarity index 100% rename from src/smallestai/atoms/types/compliance_application_number_type.py rename to src/smallestai/agents/types/compliance_application_number_type.py diff --git a/src/smallestai/atoms/types/compliance_application_status.py b/src/smallestai/agents/types/compliance_application_status.py similarity index 100% rename from src/smallestai/atoms/types/compliance_application_status.py rename to src/smallestai/agents/types/compliance_application_status.py diff --git a/src/smallestai/atoms/types/compliance_application_user_type.py b/src/smallestai/agents/types/compliance_application_user_type.py similarity index 100% rename from src/smallestai/atoms/types/compliance_application_user_type.py rename to src/smallestai/agents/types/compliance_application_user_type.py diff --git a/src/smallestai/atoms/types/compliance_requirement.py b/src/smallestai/agents/types/compliance_requirement.py similarity index 100% rename from src/smallestai/atoms/types/compliance_requirement.py rename to src/smallestai/agents/types/compliance_requirement.py diff --git a/src/smallestai/atoms/types/conflict_error_body.py b/src/smallestai/agents/types/conflict_error_body.py similarity index 100% rename from src/smallestai/atoms/types/conflict_error_body.py rename to src/smallestai/agents/types/conflict_error_body.py diff --git a/src/smallestai/atoms/types/conflict_error_response.py b/src/smallestai/agents/types/conflict_error_response.py similarity index 100% rename from src/smallestai/atoms/types/conflict_error_response.py rename to src/smallestai/agents/types/conflict_error_response.py diff --git a/src/smallestai/atoms/types/diff_change.py b/src/smallestai/agents/types/diff_change.py similarity index 100% rename from src/smallestai/atoms/types/diff_change.py rename to src/smallestai/agents/types/diff_change.py diff --git a/src/smallestai/atoms/types/diff_result.py b/src/smallestai/agents/types/diff_result.py similarity index 100% rename from src/smallestai/atoms/types/diff_result.py rename to src/smallestai/agents/types/diff_result.py diff --git a/src/smallestai/atoms/types/diff_section.py b/src/smallestai/agents/types/diff_section.py similarity index 100% rename from src/smallestai/atoms/types/diff_section.py rename to src/smallestai/agents/types/diff_section.py diff --git a/src/smallestai/atoms/types/disposition_metric.py b/src/smallestai/agents/types/disposition_metric.py similarity index 100% rename from src/smallestai/atoms/types/disposition_metric.py rename to src/smallestai/agents/types/disposition_metric.py diff --git a/src/smallestai/atoms/types/disposition_metric_disposition_metric_type.py b/src/smallestai/agents/types/disposition_metric_disposition_metric_type.py similarity index 100% rename from src/smallestai/atoms/types/disposition_metric_disposition_metric_type.py rename to src/smallestai/agents/types/disposition_metric_disposition_metric_type.py diff --git a/src/smallestai/atoms/types/draft_conflict_error.py b/src/smallestai/agents/types/draft_conflict_error.py similarity index 100% rename from src/smallestai/atoms/types/draft_conflict_error.py rename to src/smallestai/agents/types/draft_conflict_error.py diff --git a/src/smallestai/atoms/types/draft_conflict_error_data.py b/src/smallestai/agents/types/draft_conflict_error_data.py similarity index 100% rename from src/smallestai/atoms/types/draft_conflict_error_data.py rename to src/smallestai/agents/types/draft_conflict_error_data.py diff --git a/src/smallestai/atoms/types/draft_conflict_error_data_conflict.py b/src/smallestai/agents/types/draft_conflict_error_data_conflict.py similarity index 100% rename from src/smallestai/atoms/types/draft_conflict_error_data_conflict.py rename to src/smallestai/agents/types/draft_conflict_error_data_conflict.py diff --git a/src/smallestai/atoms/types/draft_detail.py b/src/smallestai/agents/types/draft_detail.py similarity index 100% rename from src/smallestai/atoms/types/draft_detail.py rename to src/smallestai/agents/types/draft_detail.py diff --git a/src/smallestai/atoms/types/draft_detail_edit_history_item.py b/src/smallestai/agents/types/draft_detail_edit_history_item.py similarity index 100% rename from src/smallestai/atoms/types/draft_detail_edit_history_item.py rename to src/smallestai/agents/types/draft_detail_edit_history_item.py diff --git a/src/smallestai/atoms/types/draft_edit_history_entry.py b/src/smallestai/agents/types/draft_edit_history_entry.py similarity index 100% rename from src/smallestai/atoms/types/draft_edit_history_entry.py rename to src/smallestai/agents/types/draft_edit_history_entry.py diff --git a/src/smallestai/atoms/types/forbidden_error_body.py b/src/smallestai/agents/types/forbidden_error_body.py similarity index 100% rename from src/smallestai/atoms/types/forbidden_error_body.py rename to src/smallestai/agents/types/forbidden_error_body.py diff --git a/src/smallestai/atoms/types/internal_server_error_body.py b/src/smallestai/agents/types/internal_server_error_body.py similarity index 100% rename from src/smallestai/atoms/types/internal_server_error_body.py rename to src/smallestai/agents/types/internal_server_error_body.py diff --git a/src/smallestai/atoms/types/internal_server_error_response.py b/src/smallestai/agents/types/internal_server_error_response.py similarity index 100% rename from src/smallestai/atoms/types/internal_server_error_response.py rename to src/smallestai/agents/types/internal_server_error_response.py diff --git a/src/smallestai/atoms/types/knowledge_base.py b/src/smallestai/agents/types/knowledge_base.py similarity index 100% rename from src/smallestai/atoms/types/knowledge_base.py rename to src/smallestai/agents/types/knowledge_base.py diff --git a/src/smallestai/atoms/types/knowledge_base_item.py b/src/smallestai/agents/types/knowledge_base_item.py similarity index 100% rename from src/smallestai/atoms/types/knowledge_base_item.py rename to src/smallestai/agents/types/knowledge_base_item.py diff --git a/src/smallestai/atoms/types/knowledge_base_item_item_type.py b/src/smallestai/agents/types/knowledge_base_item_item_type.py similarity index 100% rename from src/smallestai/atoms/types/knowledge_base_item_item_type.py rename to src/smallestai/agents/types/knowledge_base_item_item_type.py diff --git a/src/smallestai/atoms/types/knowledge_base_item_processing_status.py b/src/smallestai/agents/types/knowledge_base_item_processing_status.py similarity index 100% rename from src/smallestai/atoms/types/knowledge_base_item_processing_status.py rename to src/smallestai/agents/types/knowledge_base_item_processing_status.py diff --git a/src/smallestai/atoms/types/knowledge_base_processing_status.py b/src/smallestai/agents/types/knowledge_base_processing_status.py similarity index 100% rename from src/smallestai/atoms/types/knowledge_base_processing_status.py rename to src/smallestai/agents/types/knowledge_base_processing_status.py diff --git a/src/smallestai/atoms/types/locked_error_response.py b/src/smallestai/agents/types/locked_error_response.py similarity index 100% rename from src/smallestai/atoms/types/locked_error_response.py rename to src/smallestai/agents/types/locked_error_response.py diff --git a/src/smallestai/atoms/types/locked_error_response_error_type.py b/src/smallestai/agents/types/locked_error_response_error_type.py similarity index 100% rename from src/smallestai/atoms/types/locked_error_response_error_type.py rename to src/smallestai/agents/types/locked_error_response_error_type.py diff --git a/src/smallestai/atoms/types/not_found_error_body.py b/src/smallestai/agents/types/not_found_error_body.py similarity index 100% rename from src/smallestai/atoms/types/not_found_error_body.py rename to src/smallestai/agents/types/not_found_error_body.py diff --git a/src/smallestai/atoms/types/not_found_error_body_error.py b/src/smallestai/agents/types/not_found_error_body_error.py similarity index 100% rename from src/smallestai/atoms/types/not_found_error_body_error.py rename to src/smallestai/agents/types/not_found_error_body_error.py diff --git a/src/smallestai/atoms/types/post_call_analytics_config.py b/src/smallestai/agents/types/post_call_analytics_config.py similarity index 100% rename from src/smallestai/atoms/types/post_call_analytics_config.py rename to src/smallestai/agents/types/post_call_analytics_config.py diff --git a/src/smallestai/atoms/types/post_call_analytics_config_success_metrics_item.py b/src/smallestai/agents/types/post_call_analytics_config_success_metrics_item.py similarity index 100% rename from src/smallestai/atoms/types/post_call_analytics_config_success_metrics_item.py rename to src/smallestai/agents/types/post_call_analytics_config_success_metrics_item.py diff --git a/src/smallestai/atoms/types/post_call_analytics_config_success_metrics_item_success_metric_type.py b/src/smallestai/agents/types/post_call_analytics_config_success_metrics_item_success_metric_type.py similarity index 100% rename from src/smallestai/atoms/types/post_call_analytics_config_success_metrics_item_success_metric_type.py rename to src/smallestai/agents/types/post_call_analytics_config_success_metrics_item_success_metric_type.py diff --git a/src/smallestai/atoms/types/product.py b/src/smallestai/agents/types/product.py similarity index 100% rename from src/smallestai/atoms/types/product.py rename to src/smallestai/agents/types/product.py diff --git a/src/smallestai/atoms/types/product_attributes.py b/src/smallestai/agents/types/product_attributes.py similarity index 100% rename from src/smallestai/atoms/types/product_attributes.py rename to src/smallestai/agents/types/product_attributes.py diff --git a/src/smallestai/atoms/types/product_attributes_provider.py b/src/smallestai/agents/types/product_attributes_provider.py similarity index 100% rename from src/smallestai/atoms/types/product_attributes_provider.py rename to src/smallestai/agents/types/product_attributes_provider.py diff --git a/src/smallestai/atoms/types/product_product_type.py b/src/smallestai/agents/types/product_product_type.py similarity index 100% rename from src/smallestai/atoms/types/product_product_type.py rename to src/smallestai/agents/types/product_product_type.py diff --git a/src/smallestai/atoms/types/prompt_score.py b/src/smallestai/agents/types/prompt_score.py similarity index 100% rename from src/smallestai/atoms/types/prompt_score.py rename to src/smallestai/agents/types/prompt_score.py diff --git a/src/smallestai/atoms/types/prompt_score_dimensions_item.py b/src/smallestai/agents/types/prompt_score_dimensions_item.py similarity index 100% rename from src/smallestai/atoms/types/prompt_score_dimensions_item.py rename to src/smallestai/agents/types/prompt_score_dimensions_item.py diff --git a/src/smallestai/atoms/types/publish_result.py b/src/smallestai/agents/types/publish_result.py similarity index 100% rename from src/smallestai/atoms/types/publish_result.py rename to src/smallestai/agents/types/publish_result.py diff --git a/src/smallestai/atoms/types/publish_result_state.py b/src/smallestai/agents/types/publish_result_state.py similarity index 100% rename from src/smallestai/atoms/types/publish_result_state.py rename to src/smallestai/agents/types/publish_result_state.py diff --git a/src/smallestai/atoms/types/required_document_type.py b/src/smallestai/agents/types/required_document_type.py similarity index 100% rename from src/smallestai/atoms/types/required_document_type.py rename to src/smallestai/agents/types/required_document_type.py diff --git a/src/smallestai/atoms/types/required_document_type_required_fields_item.py b/src/smallestai/agents/types/required_document_type_required_fields_item.py similarity index 100% rename from src/smallestai/atoms/types/required_document_type_required_fields_item.py rename to src/smallestai/agents/types/required_document_type_required_fields_item.py diff --git a/src/smallestai/atoms/types/revision.py b/src/smallestai/agents/types/revision.py similarity index 100% rename from src/smallestai/atoms/types/revision.py rename to src/smallestai/agents/types/revision.py diff --git a/src/smallestai/atoms/types/revision_pending_publish.py b/src/smallestai/agents/types/revision_pending_publish.py similarity index 100% rename from src/smallestai/atoms/types/revision_pending_publish.py rename to src/smallestai/agents/types/revision_pending_publish.py diff --git a/src/smallestai/atoms/types/revision_pending_publish_state.py b/src/smallestai/agents/types/revision_pending_publish_state.py similarity index 100% rename from src/smallestai/atoms/types/revision_pending_publish_state.py rename to src/smallestai/agents/types/revision_pending_publish_state.py diff --git a/src/smallestai/atoms/types/revision_security_check.py b/src/smallestai/agents/types/revision_security_check.py similarity index 100% rename from src/smallestai/atoms/types/revision_security_check.py rename to src/smallestai/agents/types/revision_security_check.py diff --git a/src/smallestai/atoms/types/revision_status.py b/src/smallestai/agents/types/revision_status.py similarity index 100% rename from src/smallestai/atoms/types/revision_status.py rename to src/smallestai/agents/types/revision_status.py diff --git a/src/smallestai/atoms/types/single_prompt_config.py b/src/smallestai/agents/types/single_prompt_config.py similarity index 100% rename from src/smallestai/atoms/types/single_prompt_config.py rename to src/smallestai/agents/types/single_prompt_config.py diff --git a/src/smallestai/atoms/types/single_prompt_data.py b/src/smallestai/agents/types/single_prompt_data.py similarity index 100% rename from src/smallestai/atoms/types/single_prompt_data.py rename to src/smallestai/agents/types/single_prompt_data.py diff --git a/src/smallestai/atoms/types/test_call_request.py b/src/smallestai/agents/types/test_call_request.py similarity index 100% rename from src/smallestai/atoms/types/test_call_request.py rename to src/smallestai/agents/types/test_call_request.py diff --git a/src/smallestai/atoms/types/test_call_request_mode.py b/src/smallestai/agents/types/test_call_request_mode.py similarity index 100% rename from src/smallestai/atoms/types/test_call_request_mode.py rename to src/smallestai/agents/types/test_call_request_mode.py diff --git a/src/smallestai/atoms/types/test_call_result.py b/src/smallestai/agents/types/test_call_result.py similarity index 100% rename from src/smallestai/atoms/types/test_call_result.py rename to src/smallestai/agents/types/test_call_result.py diff --git a/src/smallestai/atoms/types/too_many_requests_error_body.py b/src/smallestai/agents/types/too_many_requests_error_body.py similarity index 100% rename from src/smallestai/atoms/types/too_many_requests_error_body.py rename to src/smallestai/agents/types/too_many_requests_error_body.py diff --git a/src/smallestai/atoms/types/too_many_requests_error_body_rate_limit.py b/src/smallestai/agents/types/too_many_requests_error_body_rate_limit.py similarity index 100% rename from src/smallestai/atoms/types/too_many_requests_error_body_rate_limit.py rename to src/smallestai/agents/types/too_many_requests_error_body_rate_limit.py diff --git a/src/smallestai/atoms/types/tool.py b/src/smallestai/agents/types/tool.py similarity index 100% rename from src/smallestai/atoms/types/tool.py rename to src/smallestai/agents/types/tool.py diff --git a/src/smallestai/atoms/types/tool_headers_array_item.py b/src/smallestai/agents/types/tool_headers_array_item.py similarity index 100% rename from src/smallestai/atoms/types/tool_headers_array_item.py rename to src/smallestai/agents/types/tool_headers_array_item.py diff --git a/src/smallestai/atoms/types/tool_llm_parameters_item.py b/src/smallestai/agents/types/tool_llm_parameters_item.py similarity index 100% rename from src/smallestai/atoms/types/tool_llm_parameters_item.py rename to src/smallestai/agents/types/tool_llm_parameters_item.py diff --git a/src/smallestai/atoms/types/tool_llm_parameters_item_type.py b/src/smallestai/agents/types/tool_llm_parameters_item_type.py similarity index 100% rename from src/smallestai/atoms/types/tool_llm_parameters_item_type.py rename to src/smallestai/agents/types/tool_llm_parameters_item_type.py diff --git a/src/smallestai/atoms/types/tool_method.py b/src/smallestai/agents/types/tool_method.py similarity index 100% rename from src/smallestai/atoms/types/tool_method.py rename to src/smallestai/agents/types/tool_method.py diff --git a/src/smallestai/atoms/types/tool_on_hold_music.py b/src/smallestai/agents/types/tool_on_hold_music.py similarity index 100% rename from src/smallestai/atoms/types/tool_on_hold_music.py rename to src/smallestai/agents/types/tool_on_hold_music.py diff --git a/src/smallestai/atoms/types/tool_query_params_item.py b/src/smallestai/agents/types/tool_query_params_item.py similarity index 100% rename from src/smallestai/atoms/types/tool_query_params_item.py rename to src/smallestai/agents/types/tool_query_params_item.py diff --git a/src/smallestai/atoms/types/tool_response_variables_item.py b/src/smallestai/agents/types/tool_response_variables_item.py similarity index 100% rename from src/smallestai/atoms/types/tool_response_variables_item.py rename to src/smallestai/agents/types/tool_response_variables_item.py diff --git a/src/smallestai/atoms/types/tool_transfer_option.py b/src/smallestai/agents/types/tool_transfer_option.py similarity index 100% rename from src/smallestai/atoms/types/tool_transfer_option.py rename to src/smallestai/agents/types/tool_transfer_option.py diff --git a/src/smallestai/atoms/types/tool_transfer_option_private_handoff_option.py b/src/smallestai/agents/types/tool_transfer_option_private_handoff_option.py similarity index 100% rename from src/smallestai/atoms/types/tool_transfer_option_private_handoff_option.py rename to src/smallestai/agents/types/tool_transfer_option_private_handoff_option.py diff --git a/src/smallestai/atoms/types/tool_transfer_option_private_handoff_option_type.py b/src/smallestai/agents/types/tool_transfer_option_private_handoff_option_type.py similarity index 100% rename from src/smallestai/atoms/types/tool_transfer_option_private_handoff_option_type.py rename to src/smallestai/agents/types/tool_transfer_option_private_handoff_option_type.py diff --git a/src/smallestai/atoms/types/tool_transfer_option_public_handoff_option.py b/src/smallestai/agents/types/tool_transfer_option_public_handoff_option.py similarity index 100% rename from src/smallestai/atoms/types/tool_transfer_option_public_handoff_option.py rename to src/smallestai/agents/types/tool_transfer_option_public_handoff_option.py diff --git a/src/smallestai/atoms/types/tool_transfer_option_public_handoff_option_type.py b/src/smallestai/agents/types/tool_transfer_option_public_handoff_option_type.py similarity index 100% rename from src/smallestai/atoms/types/tool_transfer_option_public_handoff_option_type.py rename to src/smallestai/agents/types/tool_transfer_option_public_handoff_option_type.py diff --git a/src/smallestai/atoms/types/tool_transfer_option_type.py b/src/smallestai/agents/types/tool_transfer_option_type.py similarity index 100% rename from src/smallestai/atoms/types/tool_transfer_option_type.py rename to src/smallestai/agents/types/tool_transfer_option_type.py diff --git a/src/smallestai/atoms/types/tool_type.py b/src/smallestai/agents/types/tool_type.py similarity index 100% rename from src/smallestai/atoms/types/tool_type.py rename to src/smallestai/agents/types/tool_type.py diff --git a/src/smallestai/atoms/types/tool_variables_extraction_schema_item.py b/src/smallestai/agents/types/tool_variables_extraction_schema_item.py similarity index 100% rename from src/smallestai/atoms/types/tool_variables_extraction_schema_item.py rename to src/smallestai/agents/types/tool_variables_extraction_schema_item.py diff --git a/src/smallestai/atoms/types/tool_variables_extraction_schema_item_type.py b/src/smallestai/agents/types/tool_variables_extraction_schema_item_type.py similarity index 100% rename from src/smallestai/atoms/types/tool_variables_extraction_schema_item_type.py rename to src/smallestai/agents/types/tool_variables_extraction_schema_item_type.py diff --git a/src/smallestai/atoms/types/unauthorized_error_response.py b/src/smallestai/agents/types/unauthorized_error_response.py similarity index 100% rename from src/smallestai/atoms/types/unauthorized_error_response.py rename to src/smallestai/agents/types/unauthorized_error_response.py diff --git a/src/smallestai/atoms/types/version_blocks.py b/src/smallestai/agents/types/version_blocks.py similarity index 100% rename from src/smallestai/atoms/types/version_blocks.py rename to src/smallestai/agents/types/version_blocks.py diff --git a/src/smallestai/atoms/types/versioning_v2migration_required_response.py b/src/smallestai/agents/types/versioning_v2migration_required_response.py similarity index 100% rename from src/smallestai/atoms/types/versioning_v2migration_required_response.py rename to src/smallestai/agents/types/versioning_v2migration_required_response.py diff --git a/src/smallestai/atoms/types/versioning_v2migration_required_response_error_type.py b/src/smallestai/agents/types/versioning_v2migration_required_response_error_type.py similarity index 100% rename from src/smallestai/atoms/types/versioning_v2migration_required_response_error_type.py rename to src/smallestai/agents/types/versioning_v2migration_required_response_error_type.py diff --git a/src/smallestai/atoms/types/web_engage_integration_set.py b/src/smallestai/agents/types/web_engage_integration_set.py similarity index 100% rename from src/smallestai/atoms/types/web_engage_integration_set.py rename to src/smallestai/agents/types/web_engage_integration_set.py diff --git a/src/smallestai/atoms/types/webhook.py b/src/smallestai/agents/types/webhook.py similarity index 100% rename from src/smallestai/atoms/types/webhook.py rename to src/smallestai/agents/types/webhook.py diff --git a/src/smallestai/atoms/types/webhook_agent.py b/src/smallestai/agents/types/webhook_agent.py similarity index 100% rename from src/smallestai/atoms/types/webhook_agent.py rename to src/smallestai/agents/types/webhook_agent.py diff --git a/src/smallestai/atoms/types/webhook_event.py b/src/smallestai/agents/types/webhook_event.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event.py rename to src/smallestai/agents/types/webhook_event.py diff --git a/src/smallestai/atoms/types/webhook_event_analytics_completed.py b/src/smallestai/agents/types/webhook_event_analytics_completed.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_analytics_completed.py rename to src/smallestai/agents/types/webhook_event_analytics_completed.py diff --git a/src/smallestai/atoms/types/webhook_event_analytics_completed_metadata.py b/src/smallestai/agents/types/webhook_event_analytics_completed_metadata.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_analytics_completed_metadata.py rename to src/smallestai/agents/types/webhook_event_analytics_completed_metadata.py diff --git a/src/smallestai/atoms/types/webhook_event_analytics_completed_metadata_analytics.py b/src/smallestai/agents/types/webhook_event_analytics_completed_metadata_analytics.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_analytics_completed_metadata_analytics.py rename to src/smallestai/agents/types/webhook_event_analytics_completed_metadata_analytics.py diff --git a/src/smallestai/atoms/types/webhook_event_analytics_completed_metadata_event_type.py b/src/smallestai/agents/types/webhook_event_analytics_completed_metadata_event_type.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_analytics_completed_metadata_event_type.py rename to src/smallestai/agents/types/webhook_event_analytics_completed_metadata_event_type.py diff --git a/src/smallestai/atoms/types/webhook_event_analytics_metric.py b/src/smallestai/agents/types/webhook_event_analytics_metric.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_analytics_metric.py rename to src/smallestai/agents/types/webhook_event_analytics_metric.py diff --git a/src/smallestai/atoms/types/webhook_event_analytics_metric_disposition_metric_type.py b/src/smallestai/agents/types/webhook_event_analytics_metric_disposition_metric_type.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_analytics_metric_disposition_metric_type.py rename to src/smallestai/agents/types/webhook_event_analytics_metric_disposition_metric_type.py diff --git a/src/smallestai/atoms/types/webhook_event_analytics_metric_value.py b/src/smallestai/agents/types/webhook_event_analytics_metric_value.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_analytics_metric_value.py rename to src/smallestai/agents/types/webhook_event_analytics_metric_value.py diff --git a/src/smallestai/atoms/types/webhook_event_call_data.py b/src/smallestai/agents/types/webhook_event_call_data.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_call_data.py rename to src/smallestai/agents/types/webhook_event_call_data.py diff --git a/src/smallestai/atoms/types/webhook_event_call_data_call_direction.py b/src/smallestai/agents/types/webhook_event_call_data_call_direction.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_call_data_call_direction.py rename to src/smallestai/agents/types/webhook_event_call_data_call_direction.py diff --git a/src/smallestai/atoms/types/webhook_event_call_data_call_status.py b/src/smallestai/agents/types/webhook_event_call_data_call_status.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_call_data_call_status.py rename to src/smallestai/agents/types/webhook_event_call_data_call_status.py diff --git a/src/smallestai/atoms/types/webhook_event_envelope.py b/src/smallestai/agents/types/webhook_event_envelope.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_envelope.py rename to src/smallestai/agents/types/webhook_event_envelope.py diff --git a/src/smallestai/atoms/types/webhook_event_post_conversation.py b/src/smallestai/agents/types/webhook_event_post_conversation.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_post_conversation.py rename to src/smallestai/agents/types/webhook_event_post_conversation.py diff --git a/src/smallestai/atoms/types/webhook_event_post_conversation_metadata.py b/src/smallestai/agents/types/webhook_event_post_conversation_metadata.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_post_conversation_metadata.py rename to src/smallestai/agents/types/webhook_event_post_conversation_metadata.py diff --git a/src/smallestai/atoms/types/webhook_event_post_conversation_metadata_event_type.py b/src/smallestai/agents/types/webhook_event_post_conversation_metadata_event_type.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_post_conversation_metadata_event_type.py rename to src/smallestai/agents/types/webhook_event_post_conversation_metadata_event_type.py diff --git a/src/smallestai/atoms/types/webhook_event_pre_conversation.py b/src/smallestai/agents/types/webhook_event_pre_conversation.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_pre_conversation.py rename to src/smallestai/agents/types/webhook_event_pre_conversation.py diff --git a/src/smallestai/atoms/types/webhook_event_pre_conversation_metadata.py b/src/smallestai/agents/types/webhook_event_pre_conversation_metadata.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_pre_conversation_metadata.py rename to src/smallestai/agents/types/webhook_event_pre_conversation_metadata.py diff --git a/src/smallestai/atoms/types/webhook_event_pre_conversation_metadata_event_type.py b/src/smallestai/agents/types/webhook_event_pre_conversation_metadata_event_type.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_pre_conversation_metadata_event_type.py rename to src/smallestai/agents/types/webhook_event_pre_conversation_metadata_event_type.py diff --git a/src/smallestai/atoms/types/webhook_event_transcript_turn.py b/src/smallestai/agents/types/webhook_event_transcript_turn.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_transcript_turn.py rename to src/smallestai/agents/types/webhook_event_transcript_turn.py diff --git a/src/smallestai/atoms/types/webhook_event_transcript_turn_role.py b/src/smallestai/agents/types/webhook_event_transcript_turn_role.py similarity index 100% rename from src/smallestai/atoms/types/webhook_event_transcript_turn_role.py rename to src/smallestai/agents/types/webhook_event_transcript_turn_role.py diff --git a/src/smallestai/atoms/types/webhook_status.py b/src/smallestai/agents/types/webhook_status.py similarity index 100% rename from src/smallestai/atoms/types/webhook_status.py rename to src/smallestai/agents/types/webhook_status.py diff --git a/src/smallestai/atoms/types/webhook_subscription.py b/src/smallestai/agents/types/webhook_subscription.py similarity index 100% rename from src/smallestai/atoms/types/webhook_subscription.py rename to src/smallestai/agents/types/webhook_subscription.py diff --git a/src/smallestai/atoms/types/webhook_subscription_event_type.py b/src/smallestai/agents/types/webhook_subscription_event_type.py similarity index 100% rename from src/smallestai/atoms/types/webhook_subscription_event_type.py rename to src/smallestai/agents/types/webhook_subscription_event_type.py diff --git a/src/smallestai/atoms/types/webhook_subscription_populated.py b/src/smallestai/agents/types/webhook_subscription_populated.py similarity index 100% rename from src/smallestai/atoms/types/webhook_subscription_populated.py rename to src/smallestai/agents/types/webhook_subscription_populated.py diff --git a/src/smallestai/atoms/types/webhook_subscription_populated_event_type.py b/src/smallestai/agents/types/webhook_subscription_populated_event_type.py similarity index 100% rename from src/smallestai/atoms/types/webhook_subscription_populated_event_type.py rename to src/smallestai/agents/types/webhook_subscription_populated_event_type.py diff --git a/src/smallestai/atoms/types/widget_config.py b/src/smallestai/agents/types/widget_config.py similarity index 100% rename from src/smallestai/atoms/types/widget_config.py rename to src/smallestai/agents/types/widget_config.py diff --git a/src/smallestai/atoms/types/widget_config_mode.py b/src/smallestai/agents/types/widget_config_mode.py similarity index 100% rename from src/smallestai/atoms/types/widget_config_mode.py rename to src/smallestai/agents/types/widget_config_mode.py diff --git a/src/smallestai/atoms/types/widget_config_position.py b/src/smallestai/agents/types/widget_config_position.py similarity index 100% rename from src/smallestai/atoms/types/widget_config_position.py rename to src/smallestai/agents/types/widget_config_position.py diff --git a/src/smallestai/atoms/types/widget_config_size.py b/src/smallestai/agents/types/widget_config_size.py similarity index 100% rename from src/smallestai/atoms/types/widget_config_size.py rename to src/smallestai/agents/types/widget_config_size.py diff --git a/src/smallestai/atoms/types/widget_config_theme.py b/src/smallestai/agents/types/widget_config_theme.py similarity index 100% rename from src/smallestai/atoms/types/widget_config_theme.py rename to src/smallestai/agents/types/widget_config_theme.py diff --git a/src/smallestai/atoms/types/workflow_graph_data.py b/src/smallestai/agents/types/workflow_graph_data.py similarity index 100% rename from src/smallestai/atoms/types/workflow_graph_data.py rename to src/smallestai/agents/types/workflow_graph_data.py diff --git a/src/smallestai/atoms/types/workflow_graph_data_edges_item.py b/src/smallestai/agents/types/workflow_graph_data_edges_item.py similarity index 100% rename from src/smallestai/atoms/types/workflow_graph_data_edges_item.py rename to src/smallestai/agents/types/workflow_graph_data_edges_item.py diff --git a/src/smallestai/atoms/types/workflow_graph_data_nodes_item.py b/src/smallestai/agents/types/workflow_graph_data_nodes_item.py similarity index 100% rename from src/smallestai/atoms/types/workflow_graph_data_nodes_item.py rename to src/smallestai/agents/types/workflow_graph_data_nodes_item.py diff --git a/src/smallestai/atoms/types/workflow_graph_data_nodes_item_position.py b/src/smallestai/agents/types/workflow_graph_data_nodes_item_position.py similarity index 100% rename from src/smallestai/atoms/types/workflow_graph_data_nodes_item_position.py rename to src/smallestai/agents/types/workflow_graph_data_nodes_item_position.py diff --git a/src/smallestai/atoms/types/workflow_type.py b/src/smallestai/agents/types/workflow_type.py similarity index 100% rename from src/smallestai/atoms/types/workflow_type.py rename to src/smallestai/agents/types/workflow_type.py diff --git a/src/smallestai/atoms/user/__init__.py b/src/smallestai/agents/user/__init__.py similarity index 100% rename from src/smallestai/atoms/user/__init__.py rename to src/smallestai/agents/user/__init__.py diff --git a/src/smallestai/atoms/user/client.py b/src/smallestai/agents/user/client.py similarity index 96% rename from src/smallestai/atoms/user/client.py rename to src/smallestai/agents/user/client.py index 69d766276..729a85439 100644 --- a/src/smallestai/atoms/user/client.py +++ b/src/smallestai/agents/user/client.py @@ -42,7 +42,7 @@ def get_user_details(self, *, request_options: typing.Optional[RequestOptions] = client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.user.get_user_details() + client.agents.user.get_user_details() """ _response = self._raw_client.get_user_details(request_options=request_options) return _response.data @@ -87,7 +87,7 @@ async def get_user_details(self, *, request_options: typing.Optional[RequestOpti async def main() -> None: - await client.atoms.user.get_user_details() + await client.agents.user.get_user_details() asyncio.run(main()) diff --git a/src/smallestai/atoms/user/raw_client.py b/src/smallestai/agents/user/raw_client.py similarity index 100% rename from src/smallestai/atoms/user/raw_client.py rename to src/smallestai/agents/user/raw_client.py diff --git a/src/smallestai/atoms/user/types/__init__.py b/src/smallestai/agents/user/types/__init__.py similarity index 100% rename from src/smallestai/atoms/user/types/__init__.py rename to src/smallestai/agents/user/types/__init__.py diff --git a/src/smallestai/atoms/user/types/get_user_response.py b/src/smallestai/agents/user/types/get_user_response.py similarity index 100% rename from src/smallestai/atoms/user/types/get_user_response.py rename to src/smallestai/agents/user/types/get_user_response.py diff --git a/src/smallestai/atoms/user/types/get_user_response_data.py b/src/smallestai/agents/user/types/get_user_response_data.py similarity index 100% rename from src/smallestai/atoms/user/types/get_user_response_data.py rename to src/smallestai/agents/user/types/get_user_response_data.py diff --git a/src/smallestai/atoms/webhooks/__init__.py b/src/smallestai/agents/webhooks/__init__.py similarity index 100% rename from src/smallestai/atoms/webhooks/__init__.py rename to src/smallestai/agents/webhooks/__init__.py diff --git a/src/smallestai/atoms/webhooks/client.py b/src/smallestai/agents/webhooks/client.py similarity index 96% rename from src/smallestai/atoms/webhooks/client.py rename to src/smallestai/agents/webhooks/client.py index c44a814a6..87da96c6c 100644 --- a/src/smallestai/atoms/webhooks/client.py +++ b/src/smallestai/agents/webhooks/client.py @@ -62,7 +62,7 @@ def get_webhooks( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.webhooks.get_webhooks() + client.agents.webhooks.get_webhooks() """ _response = self._raw_client.get_webhooks(webhook_id=webhook_id, request_options=request_options) return _response.data @@ -103,12 +103,12 @@ def create( Examples -------- from smallestai import SmallestAI - from smallestai.atoms.webhooks import CreateWebhooksRequestEventsItem + from smallestai.agents.webhooks import CreateWebhooksRequestEventsItem client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.webhooks.create( + client.agents.webhooks.create( endpoint="https://example.com/webhook", description="Webhook for conversation events", events=[ @@ -155,7 +155,7 @@ def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] = client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.webhooks.delete( + client.agents.webhooks.delete( id="id", ) """ @@ -219,7 +219,7 @@ def update( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.webhooks.update( + client.agents.webhooks.update( id="id", ) """ @@ -254,7 +254,7 @@ def get_webhook_subscriptions_for_an_agent( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.webhooks.get_webhook_subscriptions_for_an_agent( + client.agents.webhooks.get_webhook_subscriptions_for_an_agent( agent_id="agentId", ) """ @@ -300,7 +300,7 @@ def replace_webhook_subscriptions_for_an_agent( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.webhooks.replace_webhook_subscriptions_for_an_agent( + client.agents.webhooks.replace_webhook_subscriptions_for_an_agent( agent_id="agentId", event_types=["pre-conversation"], webhook_id="60d0fe4f5311236168a109ca", @@ -338,7 +338,7 @@ def delete_webhook_subscriptions_for_an_agent( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.atoms.webhooks.delete_webhook_subscriptions_for_an_agent( + client.agents.webhooks.delete_webhook_subscriptions_for_an_agent( agent_id="agentId", ) """ @@ -394,7 +394,7 @@ async def get_webhooks( async def main() -> None: - await client.atoms.webhooks.get_webhooks() + await client.agents.webhooks.get_webhooks() asyncio.run(main()) @@ -440,7 +440,7 @@ async def create( import asyncio from smallestai import AsyncSmallestAI - from smallestai.atoms.webhooks import CreateWebhooksRequestEventsItem + from smallestai.agents.webhooks import CreateWebhooksRequestEventsItem client = AsyncSmallestAI( api_key="YOUR_API_KEY", @@ -448,7 +448,7 @@ async def create( async def main() -> None: - await client.atoms.webhooks.create( + await client.agents.webhooks.create( endpoint="https://example.com/webhook", description="Webhook for conversation events", events=[ @@ -505,7 +505,7 @@ async def delete( async def main() -> None: - await client.atoms.webhooks.delete( + await client.agents.webhooks.delete( id="id", ) @@ -577,7 +577,7 @@ async def update( async def main() -> None: - await client.atoms.webhooks.update( + await client.agents.webhooks.update( id="id", ) @@ -620,7 +620,7 @@ async def get_webhook_subscriptions_for_an_agent( async def main() -> None: - await client.atoms.webhooks.get_webhook_subscriptions_for_an_agent( + await client.agents.webhooks.get_webhook_subscriptions_for_an_agent( agent_id="agentId", ) @@ -676,7 +676,7 @@ async def replace_webhook_subscriptions_for_an_agent( async def main() -> None: - await client.atoms.webhooks.replace_webhook_subscriptions_for_an_agent( + await client.agents.webhooks.replace_webhook_subscriptions_for_an_agent( agent_id="agentId", event_types=["pre-conversation"], webhook_id="60d0fe4f5311236168a109ca", @@ -722,7 +722,7 @@ async def delete_webhook_subscriptions_for_an_agent( async def main() -> None: - await client.atoms.webhooks.delete_webhook_subscriptions_for_an_agent( + await client.agents.webhooks.delete_webhook_subscriptions_for_an_agent( agent_id="agentId", ) diff --git a/src/smallestai/atoms/webhooks/raw_client.py b/src/smallestai/agents/webhooks/raw_client.py similarity index 100% rename from src/smallestai/atoms/webhooks/raw_client.py rename to src/smallestai/agents/webhooks/raw_client.py diff --git a/src/smallestai/atoms/webhooks/types/__init__.py b/src/smallestai/agents/webhooks/types/__init__.py similarity index 100% rename from src/smallestai/atoms/webhooks/types/__init__.py rename to src/smallestai/agents/webhooks/types/__init__.py diff --git a/src/smallestai/atoms/webhooks/types/create_webhooks_request_events_item.py b/src/smallestai/agents/webhooks/types/create_webhooks_request_events_item.py similarity index 100% rename from src/smallestai/atoms/webhooks/types/create_webhooks_request_events_item.py rename to src/smallestai/agents/webhooks/types/create_webhooks_request_events_item.py diff --git a/src/smallestai/atoms/webhooks/types/create_webhooks_request_events_item_event_type.py b/src/smallestai/agents/webhooks/types/create_webhooks_request_events_item_event_type.py similarity index 100% rename from src/smallestai/atoms/webhooks/types/create_webhooks_request_events_item_event_type.py rename to src/smallestai/agents/webhooks/types/create_webhooks_request_events_item_event_type.py diff --git a/src/smallestai/atoms/webhooks/types/create_webhooks_response.py b/src/smallestai/agents/webhooks/types/create_webhooks_response.py similarity index 100% rename from src/smallestai/atoms/webhooks/types/create_webhooks_response.py rename to src/smallestai/agents/webhooks/types/create_webhooks_response.py diff --git a/src/smallestai/atoms/webhooks/types/delete_agent_agent_id_webhook_subscriptions_response.py b/src/smallestai/agents/webhooks/types/delete_agent_agent_id_webhook_subscriptions_response.py similarity index 100% rename from src/smallestai/atoms/webhooks/types/delete_agent_agent_id_webhook_subscriptions_response.py rename to src/smallestai/agents/webhooks/types/delete_agent_agent_id_webhook_subscriptions_response.py diff --git a/src/smallestai/atoms/webhooks/types/delete_webhooks_response.py b/src/smallestai/agents/webhooks/types/delete_webhooks_response.py similarity index 100% rename from src/smallestai/atoms/webhooks/types/delete_webhooks_response.py rename to src/smallestai/agents/webhooks/types/delete_webhooks_response.py diff --git a/src/smallestai/atoms/webhooks/types/get_agent_agent_id_webhook_subscriptions_response.py b/src/smallestai/agents/webhooks/types/get_agent_agent_id_webhook_subscriptions_response.py similarity index 100% rename from src/smallestai/atoms/webhooks/types/get_agent_agent_id_webhook_subscriptions_response.py rename to src/smallestai/agents/webhooks/types/get_agent_agent_id_webhook_subscriptions_response.py diff --git a/src/smallestai/atoms/webhooks/types/get_webhook_response.py b/src/smallestai/agents/webhooks/types/get_webhook_response.py similarity index 100% rename from src/smallestai/atoms/webhooks/types/get_webhook_response.py rename to src/smallestai/agents/webhooks/types/get_webhook_response.py diff --git a/src/smallestai/atoms/webhooks/types/get_webhook_response_data.py b/src/smallestai/agents/webhooks/types/get_webhook_response_data.py similarity index 100% rename from src/smallestai/atoms/webhooks/types/get_webhook_response_data.py rename to src/smallestai/agents/webhooks/types/get_webhook_response_data.py diff --git a/src/smallestai/atoms/webhooks/types/post_agent_agent_id_webhook_subscriptions_request_event_types_item.py b/src/smallestai/agents/webhooks/types/post_agent_agent_id_webhook_subscriptions_request_event_types_item.py similarity index 100% rename from src/smallestai/atoms/webhooks/types/post_agent_agent_id_webhook_subscriptions_request_event_types_item.py rename to src/smallestai/agents/webhooks/types/post_agent_agent_id_webhook_subscriptions_request_event_types_item.py diff --git a/src/smallestai/atoms/webhooks/types/post_agent_agent_id_webhook_subscriptions_response.py b/src/smallestai/agents/webhooks/types/post_agent_agent_id_webhook_subscriptions_response.py similarity index 100% rename from src/smallestai/atoms/webhooks/types/post_agent_agent_id_webhook_subscriptions_response.py rename to src/smallestai/agents/webhooks/types/post_agent_agent_id_webhook_subscriptions_response.py diff --git a/src/smallestai/atoms/webhooks/types/update_webhooks_response.py b/src/smallestai/agents/webhooks/types/update_webhooks_response.py similarity index 100% rename from src/smallestai/atoms/webhooks/types/update_webhooks_response.py rename to src/smallestai/agents/webhooks/types/update_webhooks_response.py diff --git a/src/smallestai/atoms/crew/__init__.py b/src/smallestai/atoms/crew/__init__.py deleted file mode 100644 index e63509ac1..000000000 --- a/src/smallestai/atoms/crew/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -""" -Smallest AI Atoms Agent SDK. - -A real-time WebSocket agent framework for building voice agents, -chatbots, and other interactive AI applications. - -Usage: - from smallestai.atoms.crew.server import AtomsCrewApp - from smallestai.atoms.crew.session import CrewSession - from smallestai.atoms.crew.nodes import OutputCrewNode, BackgroundCrewNode - from smallestai.atoms.crew.clients.openai import OpenAIClient - from smallestai.atoms.crew.tools import function_tool, ToolRegistry -""" diff --git a/src/smallestai/atoms/crew/nodes/__init__.py b/src/smallestai/atoms/crew/nodes/__init__.py deleted file mode 100644 index 842f6a682..000000000 --- a/src/smallestai/atoms/crew/nodes/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -""" -Specialized base node classes for different agent behaviors. -""" - -from smallestai.atoms.crew.nodes.background_crew import BackgroundCrewNode -from smallestai.atoms.crew.nodes.base import CrewNode -from smallestai.atoms.crew.nodes.output_crew import OutputCrewNode - -__all__ = ["BackgroundCrewNode", "OutputCrewNode", "CrewNode"] diff --git a/src/smallestai/cli/agents.py b/src/smallestai/cli/agents.py index e022a9ba8..54e9c3846 100644 --- a/src/smallestai/cli/agents.py +++ b/src/smallestai/cli/agents.py @@ -27,9 +27,9 @@ def initialise_agents_app(auth_client: AuthClient): @agents_app.command("list") def list_agents(): """List agents in your org.""" - from smallestai.atoms.helpers import as_page + from smallestai.agents.helpers import as_page - pg = as_page(_client(auth_client).atoms.agents.list_agents()) + pg = as_page(_client(auth_client).agents.agents.list_agents()) table = Table("ID", "Name", title=f"Agents ({len(pg.items)})") for a in pg.items: table.add_row(getattr(a, "id", None) or getattr(a, "_id", "?"), getattr(a, "name", "—")) @@ -38,7 +38,7 @@ def list_agents(): @agents_app.command("get") def get_agent(agent_id: str): """Show one agent's config.""" - a = _client(auth_client).atoms.agents.get_agent(id=agent_id).data + a = _client(auth_client).agents.agents.get_agent(id=agent_id).data console.print(f"[bold]{getattr(a, 'name', '—')}[/bold] [dim]{agent_id}[/dim]") console.print(f" first message : {getattr(a, 'first_message', None)!r}") console.print(f" language : {getattr(a, 'language', None)}") @@ -52,7 +52,7 @@ def dashboard(agent_id: str): @agents_app.command("phone-status") def phone_status(agent_id: str): """Show whether a phone number is configured for the agent.""" - a = _client(auth_client).atoms.agents.get_agent(id=agent_id).data + a = _client(auth_client).agents.agents.get_agent(id=agent_id).data number = getattr(a, "phone_number", None) if number: console.print(f"[green]Phone configured:[/green] {number}") @@ -78,7 +78,7 @@ def create( kw["description"] = description if allow_inbound: kw["allow_inbound_call"] = True - agent_id = _client(auth_client).atoms.agents.create_agent(**kw).data + agent_id = _client(auth_client).agents.agents.create_agent(**kw).data console.print(f"[green]Created agent[/green] {agent_id}") console.print(f" dashboard: {DASHBOARD}/{agent_id}") @@ -92,7 +92,7 @@ def call( kw = {"agent_id": agent_id, "phone_number": to} if from_product_id: kw["from_product_id"] = from_product_id - r = _client(auth_client).atoms.calls.start_outbound_call(**kw) + r = _client(auth_client).agents.calls.start_outbound_call(**kw) console.print(f"[green]Call started:[/green] {getattr(r, 'data', r)}") return agents_app diff --git a/src/smallestai/cli/calls.py b/src/smallestai/cli/calls.py index 64f581d69..52eb361d1 100644 --- a/src/smallestai/cli/calls.py +++ b/src/smallestai/cli/calls.py @@ -1,6 +1,6 @@ """`smallestai calls …` — inspect call logs, details, transcripts, and recordings. -Read-only, on top of the published SDK (`client.atoms.calls`). To place a call use +Read-only, on top of the published SDK (`client.agents.calls`). To place a call use `smallestai agents call`. """ @@ -50,7 +50,7 @@ def list_calls( kw["call_types"] = call_type if status: kw["status_filter"] = status - data = _data(make_client(auth_client).atoms.calls.list(**kw)) + data = _data(make_client(auth_client).agents.calls.list(**kw)) logs = getattr(data, "logs", None) or [] if as_json: console.print_json(_json.dumps([_row_dict(x) for x in logs], default=str)) @@ -74,7 +74,7 @@ def get_call( as_json: bool = typer.Option(False, "--json", help="Emit raw JSON"), ): """Show one call's details (status, duration, cost, recording, turn count).""" - d = _data(make_client(auth_client).atoms.calls.get(id=call_id)) + d = _data(make_client(auth_client).agents.calls.get(id=call_id)) if as_json: console.print_json(d.json() if hasattr(d, "json") else _json.dumps(d, default=str)) return @@ -101,7 +101,7 @@ def transcript( as_json: bool = typer.Option(False, "--json", help="Emit raw JSON"), ): """Print a call's transcript, one turn per line.""" - d = _data(make_client(auth_client).atoms.calls.get(id=call_id)) + d = _data(make_client(auth_client).agents.calls.get(id=call_id)) turns = getattr(d, "transcript", None) or [] if as_json: console.print_json( @@ -123,7 +123,7 @@ def transcript( @calls_app.command("recording") def recording(call_id: str): """Print a call's recording URL(s).""" - d = _data(make_client(auth_client).atoms.calls.get(id=call_id)) + d = _data(make_client(auth_client).agents.calls.get(id=call_id)) url = getattr(d, "recording_url", None) dual = getattr(d, "recording_dual_url", None) if not url and not dual: diff --git a/src/smallestai/cli/campaigns.py b/src/smallestai/cli/campaigns.py index 24882c800..14f993319 100644 --- a/src/smallestai/cli/campaigns.py +++ b/src/smallestai/cli/campaigns.py @@ -1,6 +1,6 @@ """`smallestai campaigns …` — list, inspect, and control outbound campaigns. -Thin CLI over `client.atoms.campaigns`, matching the style of `smallestai calls`. +Thin CLI over `client.agents.campaigns`, matching the style of `smallestai calls`. """ import json as _json @@ -41,7 +41,7 @@ def list_campaigns( kw["search"] = search if page is not None: kw["page"] = page - resp = make_client(auth_client).atoms.campaigns.list(**kw) + resp = make_client(auth_client).agents.campaigns.list(**kw) data = _data(resp) items = getattr(data, "campaigns", None) or (data if isinstance(data, list) else []) if as_json: @@ -64,7 +64,7 @@ def get_campaign( as_json: bool = typer.Option(False, "--json", help="Emit raw JSON"), ): """Show one campaign's details.""" - resp = make_client(auth_client).atoms.campaigns.get(id=campaign_id) + resp = make_client(auth_client).agents.campaigns.get(id=campaign_id) d = _data(resp) if as_json: console.print_json(resp.json() if hasattr(resp, "json") else _json.dumps(d, default=str)) @@ -104,19 +104,19 @@ def create_campaign( kw["max_retries"] = max_retries if retry_delay is not None: kw["retry_delay"] = retry_delay - d = _data(make_client(auth_client).atoms.campaigns.create(**kw)) + d = _data(make_client(auth_client).agents.campaigns.create(**kw)) console.print(f"[green]Created campaign[/green] {getattr(d, 'id', None) or getattr(d, '_id', d)}") @campaigns_app.command("pause") def pause_campaign(campaign_id: str): """Pause a running campaign.""" - make_client(auth_client).atoms.campaigns.pause(id=campaign_id) + make_client(auth_client).agents.campaigns.pause(id=campaign_id) console.print(f"[yellow]Paused[/yellow] {campaign_id}") @campaigns_app.command("resume") def resume_campaign(campaign_id: str): """Start or resume a campaign.""" - make_client(auth_client).atoms.campaigns.start_or_resume(id=campaign_id) + make_client(auth_client).agents.campaigns.start_or_resume(id=campaign_id) console.print(f"[green]Started/resumed[/green] {campaign_id}") @campaigns_app.command("delete") @@ -127,7 +127,7 @@ def delete_campaign( """Delete a campaign.""" if not yes: typer.confirm(f"Delete campaign {campaign_id}?", abort=True) - make_client(auth_client).atoms.campaigns.delete(id=campaign_id) + make_client(auth_client).agents.campaigns.delete(id=campaign_id) console.print(f"[red]Deleted[/red] {campaign_id}") return campaigns_app diff --git a/src/smallestai/cli/main.py b/src/smallestai/cli/main.py index ee4594709..c072fd03f 100644 --- a/src/smallestai/cli/main.py +++ b/src/smallestai/cli/main.py @@ -8,11 +8,11 @@ from smallestai.cli.auth import initialise_auth_app from smallestai.cli.calls import initialise_calls_app from smallestai.cli.campaigns import initialise_campaigns_app -from smallestai.cli.phone_numbers import initialise_phone_numbers_app -from smallestai.cli.waves import initialise_waves_app from smallestai.cli.lib.atoms import AtomsAPIClient from smallestai.cli.lib.auth import AuthClient from smallestai.cli.lib.project_config import ProjectConfig +from smallestai.cli.phone_numbers import initialise_phone_numbers_app +from smallestai.cli.waves import initialise_waves_app console = Console() diff --git a/src/smallestai/cli/phone_numbers.py b/src/smallestai/cli/phone_numbers.py index 764e1758c..6fd8151de 100644 --- a/src/smallestai/cli/phone_numbers.py +++ b/src/smallestai/cli/phone_numbers.py @@ -1,6 +1,6 @@ """`smallestai phone-numbers …` — list, search, rent, release, and import numbers. -Thin CLI over `client.atoms.phone_numbers`, matching the style of `smallestai calls`. +Thin CLI over `client.agents.phone_numbers`, matching the style of `smallestai calls`. Rent/release/import are billable/stateful and prompt for confirmation. """ @@ -44,7 +44,7 @@ def list_numbers( as_json: bool = typer.Option(False, "--json", help="Emit raw JSON"), ): """List your phone numbers.""" - resp = make_client(auth_client).atoms.phone_numbers.list() + resp = make_client(auth_client).agents.phone_numbers.list() data = _data(resp) items = _items(data, "phone_numbers") if as_json: @@ -73,7 +73,7 @@ def search_rentable( kw: typing.Dict[str, typing.Any] = {"country_code": country_code, "provider": provider} if area_code: kw["area_code"] = area_code - resp = make_client(auth_client).atoms.phone_numbers.search_rentable(**kw) + resp = make_client(auth_client).agents.phone_numbers.search_rentable(**kw) data = _data(resp) items = _items(data, "phone_numbers") if as_json: @@ -94,7 +94,7 @@ def rent_number( """Rent a phone number (billable).""" if not yes: typer.confirm(f"Rent {phone_number} via {provider}? This is billable.", abort=True) - d = _data(make_client(auth_client).atoms.phone_numbers.rent(phone_number=phone_number, provider=provider)) + d = _data(make_client(auth_client).agents.phone_numbers.rent(phone_number=phone_number, provider=provider)) console.print(f"[green]Rented[/green] {phone_number} ({getattr(d, 'product_id', None) or d})") @app.command("release") @@ -105,7 +105,7 @@ def release_number( """Release a rented number.""" if not yes: typer.confirm(f"Release number {product_id}?", abort=True) - make_client(auth_client).atoms.phone_numbers.release(product_id=product_id) + make_client(auth_client).agents.phone_numbers.release(product_id=product_id) console.print(f"[red]Released[/red] {product_id}") @app.command("import-sip") @@ -124,7 +124,7 @@ def import_sip( kw["sip_username"] = sip_username if sip_password: kw["sip_password"] = sip_password - make_client(auth_client).atoms.phone_numbers.import_sip(**kw) + make_client(auth_client).agents.phone_numbers.import_sip(**kw) console.print(f"[green]Imported SIP number[/green] {phone_number}") return app diff --git a/src/smallestai/cli/utils.py b/src/smallestai/cli/utils.py index 147aa0ba3..e9c73eff0 100644 --- a/src/smallestai/cli/utils.py +++ b/src/smallestai/cli/utils.py @@ -3,9 +3,8 @@ import io import zipfile from pathlib import Path -from typing import List, Set +from typing import Set -from loguru import logger from rich.console import Console console = Console() diff --git a/src/smallestai/cli/waves.py b/src/smallestai/cli/waves.py index 559c52ff2..be6ef0850 100644 --- a/src/smallestai/cli/waves.py +++ b/src/smallestai/cli/waves.py @@ -41,7 +41,7 @@ def voices( as_json: bool = typer.Option(False, "--json", help="Emit raw JSON"), ): """List available voices for a model.""" - resp = make_client(auth_client).waves.get_voices(model=model) + resp = make_client(auth_client).speech.get_voices(model=model) data = _data(resp) items = _items(data, "voices") if as_json: @@ -66,7 +66,7 @@ def clones( as_json: bool = typer.Option(False, "--json", help="Emit raw JSON"), ): """List your cloned voices.""" - resp = make_client(auth_client).waves.list_voice_clones() + resp = make_client(auth_client).speech.list_voice_clones() data = _data(resp) items = _items(data, "voices") if as_json: @@ -106,7 +106,7 @@ def tts( kw["speed"] = speed written = 0 with open(out, "wb") as fh: - for chunk in make_client(auth_client).waves.synthesize_tts(**kw): + for chunk in make_client(auth_client).speech.synthesize_tts(**kw): fh.write(chunk) written += len(chunk) console.print(f"[green]Wrote {written} bytes to {out}[/green]") @@ -125,7 +125,7 @@ def stt( kw: typing.Dict[str, typing.Any] = {"model": model, "language": language, "request": audio} if diarize: kw["diarize"] = True - resp = make_client(auth_client).waves.speech_to_text.transcribe(**kw) + resp = make_client(auth_client).speech.speech_to_text.transcribe(**kw) if as_json: console.print_json(resp.json() if hasattr(resp, "json") else _json.dumps(resp, default=str)) return diff --git a/src/smallestai/client.py b/src/smallestai/client.py index c61ba19c5..8799719cb 100644 --- a/src/smallestai/client.py +++ b/src/smallestai/client.py @@ -12,8 +12,8 @@ from .environment import SmallestAIEnvironment if typing.TYPE_CHECKING: - from .atoms.client import AsyncAtomsClient, AtomsClient - from .waves.client import AsyncWavesClient, WavesClient + from .agents.client import AgentsClient, AsyncAgentsClient + from .speech.client import AsyncSpeechClient, SpeechClient class SmallestAI: @@ -92,24 +92,24 @@ def __init__( max_retries=_defaulted_max_retries, logging=logging, ) - self._atoms: typing.Optional[AtomsClient] = None - self._waves: typing.Optional[WavesClient] = None + self._agents: typing.Optional[AgentsClient] = None + self._speech: typing.Optional[SpeechClient] = None @property - def atoms(self): - if self._atoms is None: - from .atoms.client import AtomsClient # noqa: E402 + def agents(self): + if self._agents is None: + from .agents.client import AgentsClient # noqa: E402 - self._atoms = AtomsClient(client_wrapper=self._client_wrapper) - return self._atoms + self._agents = AgentsClient(client_wrapper=self._client_wrapper) + return self._agents @property - def waves(self): - if self._waves is None: - from .waves.client import WavesClient # noqa: E402 + def speech(self): + if self._speech is None: + from .speech.client import SpeechClient # noqa: E402 - self._waves = WavesClient(client_wrapper=self._client_wrapper) - return self._waves + self._speech = SpeechClient(client_wrapper=self._client_wrapper) + return self._speech def _make_default_async_client( @@ -209,21 +209,21 @@ def __init__( max_retries=_defaulted_max_retries, logging=logging, ) - self._atoms: typing.Optional[AsyncAtomsClient] = None - self._waves: typing.Optional[AsyncWavesClient] = None + self._agents: typing.Optional[AsyncAgentsClient] = None + self._speech: typing.Optional[AsyncSpeechClient] = None @property - def atoms(self): - if self._atoms is None: - from .atoms.client import AsyncAtomsClient # noqa: E402 + def agents(self): + if self._agents is None: + from .agents.client import AsyncAgentsClient # noqa: E402 - self._atoms = AsyncAtomsClient(client_wrapper=self._client_wrapper) - return self._atoms + self._agents = AsyncAgentsClient(client_wrapper=self._client_wrapper) + return self._agents @property - def waves(self): - if self._waves is None: - from .waves.client import AsyncWavesClient # noqa: E402 + def speech(self): + if self._speech is None: + from .speech.client import AsyncSpeechClient # noqa: E402 - self._waves = AsyncWavesClient(client_wrapper=self._client_wrapper) - return self._waves + self._speech = AsyncSpeechClient(client_wrapper=self._client_wrapper) + return self._speech diff --git a/src/smallestai/errors.py b/src/smallestai/errors.py index 88983395e..793fd777c 100644 --- a/src/smallestai/errors.py +++ b/src/smallestai/errors.py @@ -8,12 +8,12 @@ distinctly while ``except ForbiddenError`` still catches it. """ -from smallestai.atoms.errors.bad_request_error import BadRequestError, PlanNotEntitledError -from smallestai.atoms.errors.conflict_error import ConflictError -from smallestai.atoms.errors.forbidden_error import ForbiddenError -from smallestai.atoms.errors.not_found_error import NotFoundError -from smallestai.atoms.errors.too_many_requests_error import TooManyRequestsError -from smallestai.atoms.errors.unauthorized_error import UnauthorizedError +from smallestai.agents.errors.bad_request_error import BadRequestError, PlanNotEntitledError +from smallestai.agents.errors.conflict_error import ConflictError +from smallestai.agents.errors.forbidden_error import ForbiddenError +from smallestai.agents.errors.not_found_error import NotFoundError +from smallestai.agents.errors.too_many_requests_error import TooManyRequestsError +from smallestai.agents.errors.unauthorized_error import UnauthorizedError from smallestai.core.api_error import ApiError __all__ = [ diff --git a/src/smallestai/waves/__init__.py b/src/smallestai/speech/__init__.py similarity index 100% rename from src/smallestai/waves/__init__.py rename to src/smallestai/speech/__init__.py diff --git a/src/smallestai/waves/client.py b/src/smallestai/speech/client.py similarity index 91% rename from src/smallestai/waves/client.py rename to src/smallestai/speech/client.py index cb4393298..8c35cc94d 100644 --- a/src/smallestai/waves/client.py +++ b/src/smallestai/speech/client.py @@ -7,26 +7,28 @@ from .. import core from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from ..core.request_options import RequestOptions -from .raw_client import AsyncRawWavesClient, RawWavesClient -from .types.create_voice_clone_waves_request_model import CreateVoiceCloneWavesRequestModel -from .types.create_voice_clone_waves_response import CreateVoiceCloneWavesResponse +from .raw_client import AsyncRawSpeechClient, RawSpeechClient +from .types.create_voice_clone_speech_request_model import CreateVoiceCloneSpeechRequestModel +from .types.create_voice_clone_speech_response import CreateVoiceCloneSpeechResponse from .types.delete_pronunciation_dict_response import DeletePronunciationDictResponse -from .types.get_voices_waves_request_model import GetVoicesWavesRequestModel -from .types.get_voices_waves_response import GetVoicesWavesResponse -from .types.list_voice_clones_waves_response import ListVoiceClonesWavesResponse +from .types.get_voices_speech_request_model import GetVoicesSpeechRequestModel +from .types.get_voices_speech_response import GetVoicesSpeechResponse +from .types.list_voice_clones_speech_response import ListVoiceClonesSpeechResponse from .types.pronunciation_dict import PronunciationDict from .types.pronunciation_item import PronunciationItem -from .types.synthesize_lightning_large_waves_request_output_format import ( - SynthesizeLightningLargeWavesRequestOutputFormat, +from .types.synthesize_lightning_large_speech_request_output_format import ( + SynthesizeLightningLargeSpeechRequestOutputFormat, ) -from .types.synthesize_lightning_v2waves_request_output_format import SynthesizeLightningV2WavesRequestOutputFormat -from .types.synthesize_lightning_waves_request_output_format import SynthesizeLightningWavesRequestOutputFormat -from .types.synthesize_sse_lightning_large_waves_request_output_format import ( - SynthesizeSseLightningLargeWavesRequestOutputFormat, +from .types.synthesize_lightning_speech_request_output_format import SynthesizeLightningSpeechRequestOutputFormat +from .types.synthesize_lightning_v2speech_request_output_format import SynthesizeLightningV2SpeechRequestOutputFormat +from .types.synthesize_sse_lightning_large_speech_request_output_format import ( + SynthesizeSseLightningLargeSpeechRequestOutputFormat, ) -from .types.synthesize_sse_lightning_v2waves_request_output_format import ( - SynthesizeSseLightningV2WavesRequestOutputFormat, +from .types.synthesize_sse_lightning_v2speech_request_output_format import ( + SynthesizeSseLightningV2SpeechRequestOutputFormat, ) +from .types.synthesize_sse_tts_speech_request_x_expire_content import SynthesizeSseTtsSpeechRequestXExpireContent +from .types.synthesize_tts_speech_request_x_expire_content import SynthesizeTtsSpeechRequestXExpireContent from .types.tts_request_language import TtsRequestLanguage from .types.tts_request_model import TtsRequestModel from .types.tts_request_number_pronunciation_language import TtsRequestNumberPronunciationLanguage @@ -37,30 +39,28 @@ from .electron.client import AsyncElectronClient, ElectronClient from .speech_to_speech.client import AsyncSpeechToSpeechClient, SpeechToSpeechClient from .speech_to_text.client import AsyncSpeechToTextClient, SpeechToTextClient - from .streaming_tts.client import AsyncStreamingTtsClient, StreamingTtsClient from .tts.client import AsyncTtsClient, TtsClient # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) -class WavesClient: +class SpeechClient: def __init__(self, *, client_wrapper: SyncClientWrapper): - self._raw_client = RawWavesClient(client_wrapper=client_wrapper) + self._raw_client = RawSpeechClient(client_wrapper=client_wrapper) self._client_wrapper = client_wrapper self._speech_to_text: typing.Optional[SpeechToTextClient] = None self._electron: typing.Optional[ElectronClient] = None self._tts: typing.Optional[TtsClient] = None - self._streaming_tts: typing.Optional[StreamingTtsClient] = None self._speech_to_speech: typing.Optional[SpeechToSpeechClient] = None @property - def with_raw_response(self) -> RawWavesClient: + def with_raw_response(self) -> RawSpeechClient: """ Retrieves a raw implementation of this client that returns raw responses. Returns ------- - RawWavesClient + RawSpeechClient """ return self._raw_client @@ -87,7 +87,7 @@ def get_pronunciation_dicts( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.waves.get_pronunciation_dicts() + client.speech.get_pronunciation_dicts() """ _response = self._raw_client.get_pronunciation_dicts(request_options=request_options) return _response.data @@ -114,12 +114,12 @@ def create_pronunciation_dict( Examples -------- from smallestai import SmallestAI - from smallestai.waves import PronunciationItem + from smallestai.speech import PronunciationItem client = SmallestAI( api_key="YOUR_API_KEY", ) - client.waves.create_pronunciation_dict( + client.speech.create_pronunciation_dict( items=[ PronunciationItem( word="mysql", @@ -160,12 +160,12 @@ def update_pronunciation_dict( Examples -------- from smallestai import SmallestAI - from smallestai.waves import PronunciationItem + from smallestai.speech import PronunciationItem client = SmallestAI( api_key="YOUR_API_KEY", ) - client.waves.update_pronunciation_dict( + client.speech.update_pronunciation_dict( id="64f1234567890abcdef12345", items=[ PronunciationItem( @@ -204,7 +204,7 @@ def delete_pronunciation_dict( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.waves.delete_pronunciation_dict( + client.speech.delete_pronunciation_dict( id="64f1234567890abcdef12345", ) """ @@ -214,7 +214,7 @@ def delete_pronunciation_dict( def synthesize_lightning( self, *, - output_format: typing.Optional[SynthesizeLightningWavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeLightningSpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> None: """ @@ -222,7 +222,7 @@ def synthesize_lightning( Parameters ---------- - output_format : typing.Optional[SynthesizeLightningWavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeLightningSpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -238,7 +238,7 @@ def synthesize_lightning( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.waves.synthesize_lightning() + client.speech.synthesize_lightning() """ _response = self._raw_client.synthesize_lightning(output_format=output_format, request_options=request_options) return _response.data @@ -246,7 +246,7 @@ def synthesize_lightning( def synthesize_lightning_large( self, *, - output_format: typing.Optional[SynthesizeLightningLargeWavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeLightningLargeSpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> None: """ @@ -254,7 +254,7 @@ def synthesize_lightning_large( Parameters ---------- - output_format : typing.Optional[SynthesizeLightningLargeWavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeLightningLargeSpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -270,7 +270,7 @@ def synthesize_lightning_large( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.waves.synthesize_lightning_large() + client.speech.synthesize_lightning_large() """ _response = self._raw_client.synthesize_lightning_large( output_format=output_format, request_options=request_options @@ -280,7 +280,7 @@ def synthesize_lightning_large( def synthesize_sse_lightning_large( self, *, - output_format: typing.Optional[SynthesizeSseLightningLargeWavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeSseLightningLargeSpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> None: """ @@ -302,7 +302,7 @@ def synthesize_sse_lightning_large( Parameters ---------- - output_format : typing.Optional[SynthesizeSseLightningLargeWavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeSseLightningLargeSpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -318,7 +318,7 @@ def synthesize_sse_lightning_large( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.waves.synthesize_sse_lightning_large() + client.speech.synthesize_sse_lightning_large() """ _response = self._raw_client.synthesize_sse_lightning_large( output_format=output_format, request_options=request_options @@ -328,7 +328,7 @@ def synthesize_sse_lightning_large( def synthesize_lightning_v2( self, *, - output_format: typing.Optional[SynthesizeLightningV2WavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeLightningV2SpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> None: """ @@ -336,7 +336,7 @@ def synthesize_lightning_v2( Parameters ---------- - output_format : typing.Optional[SynthesizeLightningV2WavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeLightningV2SpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -352,7 +352,7 @@ def synthesize_lightning_v2( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.waves.synthesize_lightning_v2() + client.speech.synthesize_lightning_v2() """ _response = self._raw_client.synthesize_lightning_v2( output_format=output_format, request_options=request_options @@ -362,7 +362,7 @@ def synthesize_lightning_v2( def synthesize_sse_lightning_v2( self, *, - output_format: typing.Optional[SynthesizeSseLightningV2WavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeSseLightningV2SpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> None: """ @@ -385,7 +385,7 @@ def synthesize_sse_lightning_v2( Parameters ---------- - output_format : typing.Optional[SynthesizeSseLightningV2WavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeSseLightningV2SpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -401,7 +401,7 @@ def synthesize_sse_lightning_v2( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.waves.synthesize_sse_lightning_v2() + client.speech.synthesize_sse_lightning_v2() """ _response = self._raw_client.synthesize_sse_lightning_v2( output_format=output_format, request_options=request_options @@ -409,14 +409,14 @@ def synthesize_sse_lightning_v2( return _response.data def get_voices( - self, model: GetVoicesWavesRequestModel, *, request_options: typing.Optional[RequestOptions] = None - ) -> GetVoicesWavesResponse: + self, model: GetVoicesSpeechRequestModel, *, request_options: typing.Optional[RequestOptions] = None + ) -> GetVoicesSpeechResponse: """ List voices available for Lightning v3.1. The response is the union of the standard and Pro voice catalogs — the API does not return a per-voice "is Pro" flag, so consult the [Lightning v3.1 Pro](/models/model-cards/text-to-speech/lightning-v-3-1-pro) and [Lightning v3.1](/models/model-cards/text-to-speech/lightning-v-3-1) model cards for the canonical per-pool voice lists. Use the `voice_id` from this response together with `"model": "lightning_v3.1"` (default) or `"model": "lightning_v3.1_pro"` on the unified `/waves/v1/tts` route to pick the pool. Parameters ---------- - model : GetVoicesWavesRequestModel + model : GetVoicesSpeechRequestModel The catalog to query. Currently only `lightning-v3.1` is supported — the response returns the union of standard Lightning v3.1 voices and Lightning v3.1 Pro voices. The API does not include a per-voice Pro flag; consult the model cards for the canonical per-pool catalogs. request_options : typing.Optional[RequestOptions] @@ -424,7 +424,7 @@ def get_voices( Returns ------- - GetVoicesWavesResponse + GetVoicesSpeechResponse Voices retrieved successfully. Examples @@ -434,7 +434,7 @@ def get_voices( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.waves.get_voices( + client.speech.get_voices( model="lightning-v3.1", ) """ @@ -446,6 +446,7 @@ def synthesize_tts( *, text: str, voice_id: str, + expire_content: typing.Optional[SynthesizeTtsSpeechRequestXExpireContent] = None, model: typing.Optional[TtsRequestModel] = OMIT, sample_rate: typing.Optional[int] = OMIT, speed: typing.Optional[float] = OMIT, @@ -560,6 +561,10 @@ def synthesize_tts( voice_id : str The voice identifier to use for speech generation. See the model card for available voices per model. + expire_content : typing.Optional[SynthesizeTtsSpeechRequestXExpireContent] + **Enterprise plans only.** Opt in if you want this request's content + deleted after 7 days. Omit it to retain content, which is the default. + model : typing.Optional[TtsRequestModel] TTS model to route the request to. Controls which model pool serves this synthesis. @@ -668,7 +673,7 @@ def synthesize_tts( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.waves.synthesize_tts( + client.speech.synthesize_tts( text="Hello from Waves TTS.", voice_id="magnus", ) @@ -676,6 +681,7 @@ def synthesize_tts( with self._raw_client.synthesize_tts( text=text, voice_id=voice_id, + expire_content=expire_content, model=model, sample_rate=sample_rate, speed=speed, @@ -695,6 +701,7 @@ def synthesize_sse_tts( *, text: str, voice_id: str, + expire_content: typing.Optional[SynthesizeSseTtsSpeechRequestXExpireContent] = None, model: typing.Optional[TtsRequestModel] = OMIT, sample_rate: typing.Optional[int] = OMIT, speed: typing.Optional[float] = OMIT, @@ -725,9 +732,9 @@ def synthesize_sse_tts( ## How it works 1. POST your text + voice settings — same payload as `/waves/v1/tts`, plus optional `model`. - 2. The response is `Content-Type: text/event-stream`. Each chunk frame is `event: audio\\n` followed by `data: {"audio": ""}\\n\\n`. + 2. The response is `Content-Type: text/event-stream`. Each chunk frame is `event: audio\\n` followed by `data: {"audio": "", "done": false, "status": "206"}\\n\\n`. 3. Decode each chunk's `audio` field with base64 and feed the PCM bytes to your audio pipeline (browser `MediaSource`, ffmpeg pipe, raw PCM player, etc.). - 4. A final `data: {"done": true}\\n\\n` frame marks end of stream. + 4. A final `data: {"status": "200", "done": true}\\n\\n` frame marks end of stream. Detect the terminator with `done == true`; every chunk frame also carries `done: false`, so `"done" in msg` matches every frame. ## Examples @@ -758,6 +765,10 @@ def synthesize_sse_tts( voice_id : str The voice identifier to use for speech generation. See the model card for available voices per model. + expire_content : typing.Optional[SynthesizeSseTtsSpeechRequestXExpireContent] + **Enterprise plans only.** Opt in if you want this request's content + deleted after 7 days. Omit it to retain content, which is the default. + model : typing.Optional[TtsRequestModel] TTS model to route the request to. Controls which model pool serves this synthesis. @@ -866,7 +877,7 @@ def synthesize_sse_tts( client = SmallestAI( api_key="YOUR_API_KEY", ) - response = client.waves.synthesize_sse_tts( + response = client.speech.synthesize_sse_tts( text="text", voice_id="voice_id", ) @@ -876,6 +887,7 @@ def synthesize_sse_tts( with self._raw_client.synthesize_sse_tts( text=text, voice_id=voice_id, + expire_content=expire_content, model=model, sample_rate=sample_rate, speed=speed, @@ -892,7 +904,7 @@ def synthesize_sse_tts( def list_voice_clones( self, *, request_options: typing.Optional[RequestOptions] = None - ) -> ListVoiceClonesWavesResponse: + ) -> ListVoiceClonesSpeechResponse: """ Retrieve all voice clones in your organization. @@ -903,7 +915,7 @@ def list_voice_clones( Returns ------- - ListVoiceClonesWavesResponse + ListVoiceClonesSpeechResponse List of voice clones. Examples @@ -913,7 +925,7 @@ def list_voice_clones( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.waves.list_voice_clones() + client.speech.list_voice_clones() """ _response = self._raw_client.list_voice_clones(request_options=request_options) return _response.data @@ -927,9 +939,9 @@ def create_voice_clone( accent: typing.Optional[str] = OMIT, tags: typing.Optional[str] = OMIT, language: typing.Optional[str] = OMIT, - model: typing.Optional[CreateVoiceCloneWavesRequestModel] = OMIT, + model: typing.Optional[CreateVoiceCloneSpeechRequestModel] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> CreateVoiceCloneWavesResponse: + ) -> CreateVoiceCloneSpeechResponse: """ Create an instant voice clone in a single call. Defaults to `lightning-v3.1`. @@ -962,7 +974,7 @@ def create_voice_clone( (e.g. `en`, `hi`). The server validates and rejects unsupported codes with a 400. - model : typing.Optional[CreateVoiceCloneWavesRequestModel] + model : typing.Optional[CreateVoiceCloneSpeechRequestModel] Voice cloning model. Defaults to `lightning-v3.1`. `lightning-v2` is accepted by the schema for historical reasons but is deprecated — the server returns 400 with @@ -973,7 +985,7 @@ def create_voice_clone( Returns ------- - CreateVoiceCloneWavesResponse + CreateVoiceCloneSpeechResponse Voice clone created. Includes pre-generated sample clips of the new voice. Examples @@ -983,7 +995,7 @@ def create_voice_clone( client = SmallestAI( api_key="YOUR_API_KEY", ) - client.waves.create_voice_clone( + client.speech.create_voice_clone( display_name="displayName", ) """ @@ -1023,14 +1035,6 @@ def tts(self): self._tts = TtsClient(client_wrapper=self._client_wrapper) return self._tts - @property - def streaming_tts(self): - if self._streaming_tts is None: - from .streaming_tts.client import StreamingTtsClient # noqa: E402 - - self._streaming_tts = StreamingTtsClient(client_wrapper=self._client_wrapper) - return self._streaming_tts - @property def speech_to_speech(self): if self._speech_to_speech is None: @@ -1040,24 +1044,23 @@ def speech_to_speech(self): return self._speech_to_speech -class AsyncWavesClient: +class AsyncSpeechClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): - self._raw_client = AsyncRawWavesClient(client_wrapper=client_wrapper) + self._raw_client = AsyncRawSpeechClient(client_wrapper=client_wrapper) self._client_wrapper = client_wrapper self._speech_to_text: typing.Optional[AsyncSpeechToTextClient] = None self._electron: typing.Optional[AsyncElectronClient] = None self._tts: typing.Optional[AsyncTtsClient] = None - self._streaming_tts: typing.Optional[AsyncStreamingTtsClient] = None self._speech_to_speech: typing.Optional[AsyncSpeechToSpeechClient] = None @property - def with_raw_response(self) -> AsyncRawWavesClient: + def with_raw_response(self) -> AsyncRawSpeechClient: """ Retrieves a raw implementation of this client that returns raw responses. Returns ------- - AsyncRawWavesClient + AsyncRawSpeechClient """ return self._raw_client @@ -1089,7 +1092,7 @@ async def get_pronunciation_dicts( async def main() -> None: - await client.waves.get_pronunciation_dicts() + await client.speech.get_pronunciation_dicts() asyncio.run(main()) @@ -1121,7 +1124,7 @@ async def create_pronunciation_dict( import asyncio from smallestai import AsyncSmallestAI - from smallestai.waves import PronunciationItem + from smallestai.speech import PronunciationItem client = AsyncSmallestAI( api_key="YOUR_API_KEY", @@ -1129,7 +1132,7 @@ async def create_pronunciation_dict( async def main() -> None: - await client.waves.create_pronunciation_dict( + await client.speech.create_pronunciation_dict( items=[ PronunciationItem( word="mysql", @@ -1175,7 +1178,7 @@ async def update_pronunciation_dict( import asyncio from smallestai import AsyncSmallestAI - from smallestai.waves import PronunciationItem + from smallestai.speech import PronunciationItem client = AsyncSmallestAI( api_key="YOUR_API_KEY", @@ -1183,7 +1186,7 @@ async def update_pronunciation_dict( async def main() -> None: - await client.waves.update_pronunciation_dict( + await client.speech.update_pronunciation_dict( id="64f1234567890abcdef12345", items=[ PronunciationItem( @@ -1232,7 +1235,7 @@ async def delete_pronunciation_dict( async def main() -> None: - await client.waves.delete_pronunciation_dict( + await client.speech.delete_pronunciation_dict( id="64f1234567890abcdef12345", ) @@ -1245,7 +1248,7 @@ async def main() -> None: async def synthesize_lightning( self, *, - output_format: typing.Optional[SynthesizeLightningWavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeLightningSpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> None: """ @@ -1253,7 +1256,7 @@ async def synthesize_lightning( Parameters ---------- - output_format : typing.Optional[SynthesizeLightningWavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeLightningSpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1274,7 +1277,7 @@ async def synthesize_lightning( async def main() -> None: - await client.waves.synthesize_lightning() + await client.speech.synthesize_lightning() asyncio.run(main()) @@ -1287,7 +1290,7 @@ async def main() -> None: async def synthesize_lightning_large( self, *, - output_format: typing.Optional[SynthesizeLightningLargeWavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeLightningLargeSpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> None: """ @@ -1295,7 +1298,7 @@ async def synthesize_lightning_large( Parameters ---------- - output_format : typing.Optional[SynthesizeLightningLargeWavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeLightningLargeSpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1316,7 +1319,7 @@ async def synthesize_lightning_large( async def main() -> None: - await client.waves.synthesize_lightning_large() + await client.speech.synthesize_lightning_large() asyncio.run(main()) @@ -1329,7 +1332,7 @@ async def main() -> None: async def synthesize_sse_lightning_large( self, *, - output_format: typing.Optional[SynthesizeSseLightningLargeWavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeSseLightningLargeSpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> None: """ @@ -1351,7 +1354,7 @@ async def synthesize_sse_lightning_large( Parameters ---------- - output_format : typing.Optional[SynthesizeSseLightningLargeWavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeSseLightningLargeSpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1372,7 +1375,7 @@ async def synthesize_sse_lightning_large( async def main() -> None: - await client.waves.synthesize_sse_lightning_large() + await client.speech.synthesize_sse_lightning_large() asyncio.run(main()) @@ -1385,7 +1388,7 @@ async def main() -> None: async def synthesize_lightning_v2( self, *, - output_format: typing.Optional[SynthesizeLightningV2WavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeLightningV2SpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> None: """ @@ -1393,7 +1396,7 @@ async def synthesize_lightning_v2( Parameters ---------- - output_format : typing.Optional[SynthesizeLightningV2WavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeLightningV2SpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1414,7 +1417,7 @@ async def synthesize_lightning_v2( async def main() -> None: - await client.waves.synthesize_lightning_v2() + await client.speech.synthesize_lightning_v2() asyncio.run(main()) @@ -1427,7 +1430,7 @@ async def main() -> None: async def synthesize_sse_lightning_v2( self, *, - output_format: typing.Optional[SynthesizeSseLightningV2WavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeSseLightningV2SpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> None: """ @@ -1450,7 +1453,7 @@ async def synthesize_sse_lightning_v2( Parameters ---------- - output_format : typing.Optional[SynthesizeSseLightningV2WavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeSseLightningV2SpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1471,7 +1474,7 @@ async def synthesize_sse_lightning_v2( async def main() -> None: - await client.waves.synthesize_sse_lightning_v2() + await client.speech.synthesize_sse_lightning_v2() asyncio.run(main()) @@ -1482,14 +1485,14 @@ async def main() -> None: return _response.data async def get_voices( - self, model: GetVoicesWavesRequestModel, *, request_options: typing.Optional[RequestOptions] = None - ) -> GetVoicesWavesResponse: + self, model: GetVoicesSpeechRequestModel, *, request_options: typing.Optional[RequestOptions] = None + ) -> GetVoicesSpeechResponse: """ List voices available for Lightning v3.1. The response is the union of the standard and Pro voice catalogs — the API does not return a per-voice "is Pro" flag, so consult the [Lightning v3.1 Pro](/models/model-cards/text-to-speech/lightning-v-3-1-pro) and [Lightning v3.1](/models/model-cards/text-to-speech/lightning-v-3-1) model cards for the canonical per-pool voice lists. Use the `voice_id` from this response together with `"model": "lightning_v3.1"` (default) or `"model": "lightning_v3.1_pro"` on the unified `/waves/v1/tts` route to pick the pool. Parameters ---------- - model : GetVoicesWavesRequestModel + model : GetVoicesSpeechRequestModel The catalog to query. Currently only `lightning-v3.1` is supported — the response returns the union of standard Lightning v3.1 voices and Lightning v3.1 Pro voices. The API does not include a per-voice Pro flag; consult the model cards for the canonical per-pool catalogs. request_options : typing.Optional[RequestOptions] @@ -1497,7 +1500,7 @@ async def get_voices( Returns ------- - GetVoicesWavesResponse + GetVoicesSpeechResponse Voices retrieved successfully. Examples @@ -1512,7 +1515,7 @@ async def get_voices( async def main() -> None: - await client.waves.get_voices( + await client.speech.get_voices( model="lightning-v3.1", ) @@ -1527,6 +1530,7 @@ async def synthesize_tts( *, text: str, voice_id: str, + expire_content: typing.Optional[SynthesizeTtsSpeechRequestXExpireContent] = None, model: typing.Optional[TtsRequestModel] = OMIT, sample_rate: typing.Optional[int] = OMIT, speed: typing.Optional[float] = OMIT, @@ -1641,6 +1645,10 @@ async def synthesize_tts( voice_id : str The voice identifier to use for speech generation. See the model card for available voices per model. + expire_content : typing.Optional[SynthesizeTtsSpeechRequestXExpireContent] + **Enterprise plans only.** Opt in if you want this request's content + deleted after 7 days. Omit it to retain content, which is the default. + model : typing.Optional[TtsRequestModel] TTS model to route the request to. Controls which model pool serves this synthesis. @@ -1754,7 +1762,7 @@ async def synthesize_tts( async def main() -> None: - await client.waves.synthesize_tts( + await client.speech.synthesize_tts( text="Hello from Waves TTS.", voice_id="magnus", ) @@ -1765,6 +1773,7 @@ async def main() -> None: async with self._raw_client.synthesize_tts( text=text, voice_id=voice_id, + expire_content=expire_content, model=model, sample_rate=sample_rate, speed=speed, @@ -1785,6 +1794,7 @@ async def synthesize_sse_tts( *, text: str, voice_id: str, + expire_content: typing.Optional[SynthesizeSseTtsSpeechRequestXExpireContent] = None, model: typing.Optional[TtsRequestModel] = OMIT, sample_rate: typing.Optional[int] = OMIT, speed: typing.Optional[float] = OMIT, @@ -1815,9 +1825,9 @@ async def synthesize_sse_tts( ## How it works 1. POST your text + voice settings — same payload as `/waves/v1/tts`, plus optional `model`. - 2. The response is `Content-Type: text/event-stream`. Each chunk frame is `event: audio\\n` followed by `data: {"audio": ""}\\n\\n`. + 2. The response is `Content-Type: text/event-stream`. Each chunk frame is `event: audio\\n` followed by `data: {"audio": "", "done": false, "status": "206"}\\n\\n`. 3. Decode each chunk's `audio` field with base64 and feed the PCM bytes to your audio pipeline (browser `MediaSource`, ffmpeg pipe, raw PCM player, etc.). - 4. A final `data: {"done": true}\\n\\n` frame marks end of stream. + 4. A final `data: {"status": "200", "done": true}\\n\\n` frame marks end of stream. Detect the terminator with `done == true`; every chunk frame also carries `done: false`, so `"done" in msg` matches every frame. ## Examples @@ -1848,6 +1858,10 @@ async def synthesize_sse_tts( voice_id : str The voice identifier to use for speech generation. See the model card for available voices per model. + expire_content : typing.Optional[SynthesizeSseTtsSpeechRequestXExpireContent] + **Enterprise plans only.** Opt in if you want this request's content + deleted after 7 days. Omit it to retain content, which is the default. + model : typing.Optional[TtsRequestModel] TTS model to route the request to. Controls which model pool serves this synthesis. @@ -1961,7 +1975,7 @@ async def synthesize_sse_tts( async def main() -> None: - response = await client.waves.synthesize_sse_tts( + response = await client.speech.synthesize_sse_tts( text="text", voice_id="voice_id", ) @@ -1974,6 +1988,7 @@ async def main() -> None: async with self._raw_client.synthesize_sse_tts( text=text, voice_id=voice_id, + expire_content=expire_content, model=model, sample_rate=sample_rate, speed=speed, @@ -1991,7 +2006,7 @@ async def main() -> None: async def list_voice_clones( self, *, request_options: typing.Optional[RequestOptions] = None - ) -> ListVoiceClonesWavesResponse: + ) -> ListVoiceClonesSpeechResponse: """ Retrieve all voice clones in your organization. @@ -2002,7 +2017,7 @@ async def list_voice_clones( Returns ------- - ListVoiceClonesWavesResponse + ListVoiceClonesSpeechResponse List of voice clones. Examples @@ -2017,7 +2032,7 @@ async def list_voice_clones( async def main() -> None: - await client.waves.list_voice_clones() + await client.speech.list_voice_clones() asyncio.run(main()) @@ -2034,9 +2049,9 @@ async def create_voice_clone( accent: typing.Optional[str] = OMIT, tags: typing.Optional[str] = OMIT, language: typing.Optional[str] = OMIT, - model: typing.Optional[CreateVoiceCloneWavesRequestModel] = OMIT, + model: typing.Optional[CreateVoiceCloneSpeechRequestModel] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> CreateVoiceCloneWavesResponse: + ) -> CreateVoiceCloneSpeechResponse: """ Create an instant voice clone in a single call. Defaults to `lightning-v3.1`. @@ -2069,7 +2084,7 @@ async def create_voice_clone( (e.g. `en`, `hi`). The server validates and rejects unsupported codes with a 400. - model : typing.Optional[CreateVoiceCloneWavesRequestModel] + model : typing.Optional[CreateVoiceCloneSpeechRequestModel] Voice cloning model. Defaults to `lightning-v3.1`. `lightning-v2` is accepted by the schema for historical reasons but is deprecated — the server returns 400 with @@ -2080,7 +2095,7 @@ async def create_voice_clone( Returns ------- - CreateVoiceCloneWavesResponse + CreateVoiceCloneSpeechResponse Voice clone created. Includes pre-generated sample clips of the new voice. Examples @@ -2095,7 +2110,7 @@ async def create_voice_clone( async def main() -> None: - await client.waves.create_voice_clone( + await client.speech.create_voice_clone( display_name="displayName", ) @@ -2138,14 +2153,6 @@ def tts(self): self._tts = AsyncTtsClient(client_wrapper=self._client_wrapper) return self._tts - @property - def streaming_tts(self): - if self._streaming_tts is None: - from .streaming_tts.client import AsyncStreamingTtsClient # noqa: E402 - - self._streaming_tts = AsyncStreamingTtsClient(client_wrapper=self._client_wrapper) - return self._streaming_tts - @property def speech_to_speech(self): if self._speech_to_speech is None: diff --git a/src/smallestai/waves/electron/__init__.py b/src/smallestai/speech/electron/__init__.py similarity index 100% rename from src/smallestai/waves/electron/__init__.py rename to src/smallestai/speech/electron/__init__.py diff --git a/src/smallestai/waves/electron/client.py b/src/smallestai/speech/electron/client.py similarity index 98% rename from src/smallestai/waves/electron/client.py rename to src/smallestai/speech/electron/client.py index 38223f28d..aac126bcc 100644 --- a/src/smallestai/waves/electron/client.py +++ b/src/smallestai/speech/electron/client.py @@ -217,12 +217,12 @@ def complete( Examples -------- from smallestai import SmallestAI - from smallestai.waves import ElectronMessage + from smallestai.speech import ElectronMessage client = SmallestAI( api_key="YOUR_API_KEY", ) - client.waves.electron.complete( + client.speech.electron.complete( model="electron", messages=[ ElectronMessage( @@ -459,7 +459,7 @@ async def complete( import asyncio from smallestai import AsyncSmallestAI - from smallestai.waves import ElectronMessage + from smallestai.speech import ElectronMessage client = AsyncSmallestAI( api_key="YOUR_API_KEY", @@ -467,7 +467,7 @@ async def complete( async def main() -> None: - await client.waves.electron.complete( + await client.speech.electron.complete( model="electron", messages=[ ElectronMessage( diff --git a/src/smallestai/waves/electron/raw_client.py b/src/smallestai/speech/electron/raw_client.py similarity index 100% rename from src/smallestai/waves/electron/raw_client.py rename to src/smallestai/speech/electron/raw_client.py diff --git a/src/smallestai/waves/electron/types/__init__.py b/src/smallestai/speech/electron/types/__init__.py similarity index 100% rename from src/smallestai/waves/electron/types/__init__.py rename to src/smallestai/speech/electron/types/__init__.py diff --git a/src/smallestai/waves/electron/types/chat_completion_request_response_format.py b/src/smallestai/speech/electron/types/chat_completion_request_response_format.py similarity index 100% rename from src/smallestai/waves/electron/types/chat_completion_request_response_format.py rename to src/smallestai/speech/electron/types/chat_completion_request_response_format.py diff --git a/src/smallestai/waves/electron/types/chat_completion_request_response_format_type.py b/src/smallestai/speech/electron/types/chat_completion_request_response_format_type.py similarity index 100% rename from src/smallestai/waves/electron/types/chat_completion_request_response_format_type.py rename to src/smallestai/speech/electron/types/chat_completion_request_response_format_type.py diff --git a/src/smallestai/waves/electron/types/chat_completion_request_stop.py b/src/smallestai/speech/electron/types/chat_completion_request_stop.py similarity index 100% rename from src/smallestai/waves/electron/types/chat_completion_request_stop.py rename to src/smallestai/speech/electron/types/chat_completion_request_stop.py diff --git a/src/smallestai/waves/electron/types/chat_completion_request_stream_options.py b/src/smallestai/speech/electron/types/chat_completion_request_stream_options.py similarity index 100% rename from src/smallestai/waves/electron/types/chat_completion_request_stream_options.py rename to src/smallestai/speech/electron/types/chat_completion_request_stream_options.py diff --git a/src/smallestai/waves/electron/types/chat_completion_request_tool_choice.py b/src/smallestai/speech/electron/types/chat_completion_request_tool_choice.py similarity index 100% rename from src/smallestai/waves/electron/types/chat_completion_request_tool_choice.py rename to src/smallestai/speech/electron/types/chat_completion_request_tool_choice.py diff --git a/src/smallestai/waves/electron/types/chat_completion_request_tool_choice_function.py b/src/smallestai/speech/electron/types/chat_completion_request_tool_choice_function.py similarity index 100% rename from src/smallestai/waves/electron/types/chat_completion_request_tool_choice_function.py rename to src/smallestai/speech/electron/types/chat_completion_request_tool_choice_function.py diff --git a/src/smallestai/waves/electron/types/chat_completion_request_tool_choice_function_function.py b/src/smallestai/speech/electron/types/chat_completion_request_tool_choice_function_function.py similarity index 100% rename from src/smallestai/waves/electron/types/chat_completion_request_tool_choice_function_function.py rename to src/smallestai/speech/electron/types/chat_completion_request_tool_choice_function_function.py diff --git a/src/smallestai/waves/electron/types/chat_completion_request_tool_choice_function_type.py b/src/smallestai/speech/electron/types/chat_completion_request_tool_choice_function_type.py similarity index 100% rename from src/smallestai/waves/electron/types/chat_completion_request_tool_choice_function_type.py rename to src/smallestai/speech/electron/types/chat_completion_request_tool_choice_function_type.py diff --git a/src/smallestai/waves/electron/types/chat_completion_request_tool_choice_zero.py b/src/smallestai/speech/electron/types/chat_completion_request_tool_choice_zero.py similarity index 100% rename from src/smallestai/waves/electron/types/chat_completion_request_tool_choice_zero.py rename to src/smallestai/speech/electron/types/chat_completion_request_tool_choice_zero.py diff --git a/src/smallestai/waves/errors/__init__.py b/src/smallestai/speech/errors/__init__.py similarity index 100% rename from src/smallestai/waves/errors/__init__.py rename to src/smallestai/speech/errors/__init__.py diff --git a/src/smallestai/waves/errors/bad_gateway_error.py b/src/smallestai/speech/errors/bad_gateway_error.py similarity index 100% rename from src/smallestai/waves/errors/bad_gateway_error.py rename to src/smallestai/speech/errors/bad_gateway_error.py diff --git a/src/smallestai/waves/errors/bad_request_error.py b/src/smallestai/speech/errors/bad_request_error.py similarity index 100% rename from src/smallestai/waves/errors/bad_request_error.py rename to src/smallestai/speech/errors/bad_request_error.py diff --git a/src/smallestai/waves/errors/content_too_large_error.py b/src/smallestai/speech/errors/content_too_large_error.py similarity index 100% rename from src/smallestai/waves/errors/content_too_large_error.py rename to src/smallestai/speech/errors/content_too_large_error.py diff --git a/src/smallestai/waves/errors/forbidden_error.py b/src/smallestai/speech/errors/forbidden_error.py similarity index 100% rename from src/smallestai/waves/errors/forbidden_error.py rename to src/smallestai/speech/errors/forbidden_error.py diff --git a/src/smallestai/waves/errors/internal_server_error.py b/src/smallestai/speech/errors/internal_server_error.py similarity index 100% rename from src/smallestai/waves/errors/internal_server_error.py rename to src/smallestai/speech/errors/internal_server_error.py diff --git a/src/smallestai/waves/errors/service_unavailable_error.py b/src/smallestai/speech/errors/service_unavailable_error.py similarity index 100% rename from src/smallestai/waves/errors/service_unavailable_error.py rename to src/smallestai/speech/errors/service_unavailable_error.py diff --git a/src/smallestai/waves/errors/too_many_requests_error.py b/src/smallestai/speech/errors/too_many_requests_error.py similarity index 100% rename from src/smallestai/waves/errors/too_many_requests_error.py rename to src/smallestai/speech/errors/too_many_requests_error.py diff --git a/src/smallestai/waves/errors/unauthorized_error.py b/src/smallestai/speech/errors/unauthorized_error.py similarity index 100% rename from src/smallestai/waves/errors/unauthorized_error.py rename to src/smallestai/speech/errors/unauthorized_error.py diff --git a/src/smallestai/waves/helpers/__init__.py b/src/smallestai/speech/helpers/__init__.py similarity index 100% rename from src/smallestai/waves/helpers/__init__.py rename to src/smallestai/speech/helpers/__init__.py diff --git a/src/smallestai/waves/helpers/streaming_stt.py b/src/smallestai/speech/helpers/streaming_stt.py similarity index 96% rename from src/smallestai/waves/helpers/streaming_stt.py rename to src/smallestai/speech/helpers/streaming_stt.py index 2d01536c1..49bc4f677 100644 --- a/src/smallestai/waves/helpers/streaming_stt.py +++ b/src/smallestai/speech/helpers/streaming_stt.py @@ -1,6 +1,6 @@ """Typed entry point for streaming speech-to-text (Pulse live WebSocket). -The generated ``client.waves.speech_to_text.stream()`` accepts session config only +The generated ``client.speech.speech_to_text.stream()`` accepts session config only through ``request_options["additional_query_parameters"]``, because the Pulse live endpoint reads every knob (``model``, ``language``, ``sample_rate``, keyword boosting, redaction, VAD, ...) from the WebSocket handshake query string. That works, but it is @@ -14,7 +14,7 @@ Example (sync), with keyword boosting:: from smallestai import SmallestAI - from smallestai.waves.helpers import stream_speech_to_text + from smallestai.speech.helpers import stream_speech_to_text client = SmallestAI() with stream_speech_to_text( @@ -174,7 +174,7 @@ def stream_speech_to_text( ) -> typing.Any: """Open a streaming STT session with typed handshake params. - Delegates to ``client.waves.speech_to_text.stream(...)`` and returns its context + Delegates to ``client.speech.speech_to_text.stream(...)`` and returns its context manager unchanged, so use it with ``with`` (sync client) or ``async with`` (async client). Only ``language`` is required; the rest have Pulse-live defaults or are omitted when ``None``. @@ -211,4 +211,4 @@ def stream_speech_to_text( resolved: typing.Dict[str, typing.Any] = dict(request_options or {}) caller_overrides = resolved.get("additional_query_parameters") or {} resolved["additional_query_parameters"] = {**query, **caller_overrides} - return client.waves.speech_to_text.stream(request_options=resolved) + return client.speech.speech_to_text.stream(request_options=resolved) diff --git a/src/smallestai/waves/helpers/tts.py b/src/smallestai/speech/helpers/tts.py similarity index 94% rename from src/smallestai/waves/helpers/tts.py rename to src/smallestai/speech/helpers/tts.py index 787b983e9..1649190e3 100644 --- a/src/smallestai/waves/helpers/tts.py +++ b/src/smallestai/speech/helpers/tts.py @@ -4,13 +4,13 @@ For the common case — "turn this text into an audio file" — start here: from smallestai import SmallestAI - from smallestai.waves.helpers import synthesize_to_file, synthesize_bytes + from smallestai.speech.helpers import synthesize_to_file, synthesize_bytes client = SmallestAI(api_key="...") synthesize_to_file(client, "Hello from Smallest.", voice_id="kanik", path="hello.wav") audio = synthesize_bytes(client, "Hello again.", voice_id="kanik") -Both wrap `client.waves.synthesize_tts` (which streams audio chunks) and accept +Both wrap `client.speech.synthesize_tts` (which streams audio chunks) and accept any of its keyword options via `**kwargs` (e.g. `sample_rate`, `speed`, `language`). Sync client only. @@ -55,7 +55,7 @@ def _synthesize_stream( ) -> typing.Iterator[bytes]: if expire_content: kwargs = _kwargs_with_expiry(kwargs) - return client.waves.synthesize_tts( + return client.speech.synthesize_tts( text=text, voice_id=voice_id, model=model, output_format=output_format, **kwargs ) @@ -132,7 +132,7 @@ def synthesize_with_expiry( kwargs = _kwargs_with_expiry(kwargs) # Streaming raw responses are exposed as a context manager yielding an # object with `.data` (the byte stream) and `.headers`. - with client.waves.with_raw_response.synthesize_tts( + with client.speech.with_raw_response.synthesize_tts( text=text, voice_id=voice_id, model=model, output_format=output_format, **kwargs ) as raw: audio = b"".join(raw.data) diff --git a/src/smallestai/waves/raw_client.py b/src/smallestai/speech/raw_client.py similarity index 94% rename from src/smallestai/waves/raw_client.py rename to src/smallestai/speech/raw_client.py index 70dd45766..3ddf71e3e 100644 --- a/src/smallestai/waves/raw_client.py +++ b/src/smallestai/speech/raw_client.py @@ -19,25 +19,27 @@ from .errors.bad_request_error import BadRequestError from .errors.internal_server_error import InternalServerError from .errors.unauthorized_error import UnauthorizedError -from .types.create_voice_clone_waves_request_model import CreateVoiceCloneWavesRequestModel -from .types.create_voice_clone_waves_response import CreateVoiceCloneWavesResponse +from .types.create_voice_clone_speech_request_model import CreateVoiceCloneSpeechRequestModel +from .types.create_voice_clone_speech_response import CreateVoiceCloneSpeechResponse from .types.delete_pronunciation_dict_response import DeletePronunciationDictResponse -from .types.get_voices_waves_request_model import GetVoicesWavesRequestModel -from .types.get_voices_waves_response import GetVoicesWavesResponse -from .types.list_voice_clones_waves_response import ListVoiceClonesWavesResponse +from .types.get_voices_speech_request_model import GetVoicesSpeechRequestModel +from .types.get_voices_speech_response import GetVoicesSpeechResponse +from .types.list_voice_clones_speech_response import ListVoiceClonesSpeechResponse from .types.pronunciation_dict import PronunciationDict from .types.pronunciation_item import PronunciationItem -from .types.synthesize_lightning_large_waves_request_output_format import ( - SynthesizeLightningLargeWavesRequestOutputFormat, +from .types.synthesize_lightning_large_speech_request_output_format import ( + SynthesizeLightningLargeSpeechRequestOutputFormat, ) -from .types.synthesize_lightning_v2waves_request_output_format import SynthesizeLightningV2WavesRequestOutputFormat -from .types.synthesize_lightning_waves_request_output_format import SynthesizeLightningWavesRequestOutputFormat -from .types.synthesize_sse_lightning_large_waves_request_output_format import ( - SynthesizeSseLightningLargeWavesRequestOutputFormat, +from .types.synthesize_lightning_speech_request_output_format import SynthesizeLightningSpeechRequestOutputFormat +from .types.synthesize_lightning_v2speech_request_output_format import SynthesizeLightningV2SpeechRequestOutputFormat +from .types.synthesize_sse_lightning_large_speech_request_output_format import ( + SynthesizeSseLightningLargeSpeechRequestOutputFormat, ) -from .types.synthesize_sse_lightning_v2waves_request_output_format import ( - SynthesizeSseLightningV2WavesRequestOutputFormat, +from .types.synthesize_sse_lightning_v2speech_request_output_format import ( + SynthesizeSseLightningV2SpeechRequestOutputFormat, ) +from .types.synthesize_sse_tts_speech_request_x_expire_content import SynthesizeSseTtsSpeechRequestXExpireContent +from .types.synthesize_tts_speech_request_x_expire_content import SynthesizeTtsSpeechRequestXExpireContent from .types.tts_request_language import TtsRequestLanguage from .types.tts_request_model import TtsRequestModel from .types.tts_request_number_pronunciation_language import TtsRequestNumberPronunciationLanguage @@ -49,7 +51,7 @@ OMIT = typing.cast(typing.Any, ...) -class RawWavesClient: +class RawSpeechClient: def __init__(self, *, client_wrapper: SyncClientWrapper): self._client_wrapper = client_wrapper @@ -383,7 +385,7 @@ def delete_pronunciation_dict( def synthesize_lightning( self, *, - output_format: typing.Optional[SynthesizeLightningWavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeLightningSpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[None]: """ @@ -391,7 +393,7 @@ def synthesize_lightning( Parameters ---------- - output_format : typing.Optional[SynthesizeLightningWavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeLightningSpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -428,7 +430,7 @@ def synthesize_lightning( def synthesize_lightning_large( self, *, - output_format: typing.Optional[SynthesizeLightningLargeWavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeLightningLargeSpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[None]: """ @@ -436,7 +438,7 @@ def synthesize_lightning_large( Parameters ---------- - output_format : typing.Optional[SynthesizeLightningLargeWavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeLightningLargeSpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -473,7 +475,7 @@ def synthesize_lightning_large( def synthesize_sse_lightning_large( self, *, - output_format: typing.Optional[SynthesizeSseLightningLargeWavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeSseLightningLargeSpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[None]: """ @@ -495,7 +497,7 @@ def synthesize_sse_lightning_large( Parameters ---------- - output_format : typing.Optional[SynthesizeSseLightningLargeWavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeSseLightningLargeSpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -532,7 +534,7 @@ def synthesize_sse_lightning_large( def synthesize_lightning_v2( self, *, - output_format: typing.Optional[SynthesizeLightningV2WavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeLightningV2SpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[None]: """ @@ -540,7 +542,7 @@ def synthesize_lightning_v2( Parameters ---------- - output_format : typing.Optional[SynthesizeLightningV2WavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeLightningV2SpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -577,7 +579,7 @@ def synthesize_lightning_v2( def synthesize_sse_lightning_v2( self, *, - output_format: typing.Optional[SynthesizeSseLightningV2WavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeSseLightningV2SpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[None]: """ @@ -600,7 +602,7 @@ def synthesize_sse_lightning_v2( Parameters ---------- - output_format : typing.Optional[SynthesizeSseLightningV2WavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeSseLightningV2SpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -635,14 +637,14 @@ def synthesize_sse_lightning_v2( raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def get_voices( - self, model: GetVoicesWavesRequestModel, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[GetVoicesWavesResponse]: + self, model: GetVoicesSpeechRequestModel, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[GetVoicesSpeechResponse]: """ List voices available for Lightning v3.1. The response is the union of the standard and Pro voice catalogs — the API does not return a per-voice "is Pro" flag, so consult the [Lightning v3.1 Pro](/models/model-cards/text-to-speech/lightning-v-3-1-pro) and [Lightning v3.1](/models/model-cards/text-to-speech/lightning-v-3-1) model cards for the canonical per-pool voice lists. Use the `voice_id` from this response together with `"model": "lightning_v3.1"` (default) or `"model": "lightning_v3.1_pro"` on the unified `/waves/v1/tts` route to pick the pool. Parameters ---------- - model : GetVoicesWavesRequestModel + model : GetVoicesSpeechRequestModel The catalog to query. Currently only `lightning-v3.1` is supported — the response returns the union of standard Lightning v3.1 voices and Lightning v3.1 Pro voices. The API does not include a per-voice Pro flag; consult the model cards for the canonical per-pool catalogs. request_options : typing.Optional[RequestOptions] @@ -650,7 +652,7 @@ def get_voices( Returns ------- - HttpResponse[GetVoicesWavesResponse] + HttpResponse[GetVoicesSpeechResponse] Voices retrieved successfully. """ _response = self._client_wrapper.httpx_client.request( @@ -662,9 +664,9 @@ def get_voices( try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetVoicesWavesResponse, + GetVoicesSpeechResponse, construct_type( - type_=GetVoicesWavesResponse, # type: ignore + type_=GetVoicesSpeechResponse, # type: ignore object_=_response.json(), ), ) @@ -717,6 +719,7 @@ def synthesize_tts( *, text: str, voice_id: str, + expire_content: typing.Optional[SynthesizeTtsSpeechRequestXExpireContent] = None, model: typing.Optional[TtsRequestModel] = OMIT, sample_rate: typing.Optional[int] = OMIT, speed: typing.Optional[float] = OMIT, @@ -831,6 +834,10 @@ def synthesize_tts( voice_id : str The voice identifier to use for speech generation. See the model card for available voices per model. + expire_content : typing.Optional[SynthesizeTtsSpeechRequestXExpireContent] + **Enterprise plans only.** Opt in if you want this request's content + deleted after 7 days. Omit it to retain content, which is the default. + model : typing.Optional[TtsRequestModel] TTS model to route the request to. Controls which model pool serves this synthesis. @@ -953,6 +960,7 @@ def synthesize_tts( headers={ "content-type": "application/json", "Accept": "audio/wav", + "x-expire-content": str(expire_content) if expire_content is not None else None, }, request_options=request_options, omit=OMIT, @@ -1021,6 +1029,7 @@ def synthesize_sse_tts( *, text: str, voice_id: str, + expire_content: typing.Optional[SynthesizeSseTtsSpeechRequestXExpireContent] = None, model: typing.Optional[TtsRequestModel] = OMIT, sample_rate: typing.Optional[int] = OMIT, speed: typing.Optional[float] = OMIT, @@ -1051,9 +1060,9 @@ def synthesize_sse_tts( ## How it works 1. POST your text + voice settings — same payload as `/waves/v1/tts`, plus optional `model`. - 2. The response is `Content-Type: text/event-stream`. Each chunk frame is `event: audio\\n` followed by `data: {"audio": ""}\\n\\n`. + 2. The response is `Content-Type: text/event-stream`. Each chunk frame is `event: audio\\n` followed by `data: {"audio": "", "done": false, "status": "206"}\\n\\n`. 3. Decode each chunk's `audio` field with base64 and feed the PCM bytes to your audio pipeline (browser `MediaSource`, ffmpeg pipe, raw PCM player, etc.). - 4. A final `data: {"done": true}\\n\\n` frame marks end of stream. + 4. A final `data: {"status": "200", "done": true}\\n\\n` frame marks end of stream. Detect the terminator with `done == true`; every chunk frame also carries `done: false`, so `"done" in msg` matches every frame. ## Examples @@ -1084,6 +1093,10 @@ def synthesize_sse_tts( voice_id : str The voice identifier to use for speech generation. See the model card for available voices per model. + expire_content : typing.Optional[SynthesizeSseTtsSpeechRequestXExpireContent] + **Enterprise plans only.** Opt in if you want this request's content + deleted after 7 days. Omit it to retain content, which is the default. + model : typing.Optional[TtsRequestModel] TTS model to route the request to. Controls which model pool serves this synthesis. @@ -1203,6 +1216,10 @@ def synthesize_sse_tts( "session_id": session_id, "request_id": request_id, }, + headers={ + "content-type": "application/json", + "x-expire-content": str(expire_content) if expire_content is not None else None, + }, request_options=request_options, omit=OMIT, ) as _response: @@ -1289,7 +1306,7 @@ def _iter(): def list_voice_clones( self, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[ListVoiceClonesWavesResponse]: + ) -> HttpResponse[ListVoiceClonesSpeechResponse]: """ Retrieve all voice clones in your organization. @@ -1300,7 +1317,7 @@ def list_voice_clones( Returns ------- - HttpResponse[ListVoiceClonesWavesResponse] + HttpResponse[ListVoiceClonesSpeechResponse] List of voice clones. """ _response = self._client_wrapper.httpx_client.request( @@ -1312,9 +1329,9 @@ def list_voice_clones( try: if 200 <= _response.status_code < 300: _data = typing.cast( - ListVoiceClonesWavesResponse, + ListVoiceClonesSpeechResponse, construct_type( - type_=ListVoiceClonesWavesResponse, # type: ignore + type_=ListVoiceClonesSpeechResponse, # type: ignore object_=_response.json(), ), ) @@ -1359,9 +1376,9 @@ def create_voice_clone( accent: typing.Optional[str] = OMIT, tags: typing.Optional[str] = OMIT, language: typing.Optional[str] = OMIT, - model: typing.Optional[CreateVoiceCloneWavesRequestModel] = OMIT, + model: typing.Optional[CreateVoiceCloneSpeechRequestModel] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[CreateVoiceCloneWavesResponse]: + ) -> HttpResponse[CreateVoiceCloneSpeechResponse]: """ Create an instant voice clone in a single call. Defaults to `lightning-v3.1`. @@ -1394,7 +1411,7 @@ def create_voice_clone( (e.g. `en`, `hi`). The server validates and rejects unsupported codes with a 400. - model : typing.Optional[CreateVoiceCloneWavesRequestModel] + model : typing.Optional[CreateVoiceCloneSpeechRequestModel] Voice cloning model. Defaults to `lightning-v3.1`. `lightning-v2` is accepted by the schema for historical reasons but is deprecated — the server returns 400 with @@ -1405,7 +1422,7 @@ def create_voice_clone( Returns ------- - HttpResponse[CreateVoiceCloneWavesResponse] + HttpResponse[CreateVoiceCloneSpeechResponse] Voice clone created. Includes pre-generated sample clips of the new voice. """ _response = self._client_wrapper.httpx_client.request( @@ -1430,9 +1447,9 @@ def create_voice_clone( try: if 200 <= _response.status_code < 300: _data = typing.cast( - CreateVoiceCloneWavesResponse, + CreateVoiceCloneSpeechResponse, construct_type( - type_=CreateVoiceCloneWavesResponse, # type: ignore + type_=CreateVoiceCloneSpeechResponse, # type: ignore object_=_response.json(), ), ) @@ -1480,7 +1497,7 @@ def create_voice_clone( raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) -class AsyncRawWavesClient: +class AsyncRawSpeechClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): self._client_wrapper = client_wrapper @@ -1814,7 +1831,7 @@ async def delete_pronunciation_dict( async def synthesize_lightning( self, *, - output_format: typing.Optional[SynthesizeLightningWavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeLightningSpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[None]: """ @@ -1822,7 +1839,7 @@ async def synthesize_lightning( Parameters ---------- - output_format : typing.Optional[SynthesizeLightningWavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeLightningSpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1859,7 +1876,7 @@ async def synthesize_lightning( async def synthesize_lightning_large( self, *, - output_format: typing.Optional[SynthesizeLightningLargeWavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeLightningLargeSpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[None]: """ @@ -1867,7 +1884,7 @@ async def synthesize_lightning_large( Parameters ---------- - output_format : typing.Optional[SynthesizeLightningLargeWavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeLightningLargeSpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1904,7 +1921,7 @@ async def synthesize_lightning_large( async def synthesize_sse_lightning_large( self, *, - output_format: typing.Optional[SynthesizeSseLightningLargeWavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeSseLightningLargeSpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[None]: """ @@ -1926,7 +1943,7 @@ async def synthesize_sse_lightning_large( Parameters ---------- - output_format : typing.Optional[SynthesizeSseLightningLargeWavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeSseLightningLargeSpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1963,7 +1980,7 @@ async def synthesize_sse_lightning_large( async def synthesize_lightning_v2( self, *, - output_format: typing.Optional[SynthesizeLightningV2WavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeLightningV2SpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[None]: """ @@ -1971,7 +1988,7 @@ async def synthesize_lightning_v2( Parameters ---------- - output_format : typing.Optional[SynthesizeLightningV2WavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeLightningV2SpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -2008,7 +2025,7 @@ async def synthesize_lightning_v2( async def synthesize_sse_lightning_v2( self, *, - output_format: typing.Optional[SynthesizeSseLightningV2WavesRequestOutputFormat] = OMIT, + output_format: typing.Optional[SynthesizeSseLightningV2SpeechRequestOutputFormat] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[None]: """ @@ -2031,7 +2048,7 @@ async def synthesize_sse_lightning_v2( Parameters ---------- - output_format : typing.Optional[SynthesizeSseLightningV2WavesRequestOutputFormat] + output_format : typing.Optional[SynthesizeSseLightningV2SpeechRequestOutputFormat] request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -2066,14 +2083,14 @@ async def synthesize_sse_lightning_v2( raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def get_voices( - self, model: GetVoicesWavesRequestModel, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[GetVoicesWavesResponse]: + self, model: GetVoicesSpeechRequestModel, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[GetVoicesSpeechResponse]: """ List voices available for Lightning v3.1. The response is the union of the standard and Pro voice catalogs — the API does not return a per-voice "is Pro" flag, so consult the [Lightning v3.1 Pro](/models/model-cards/text-to-speech/lightning-v-3-1-pro) and [Lightning v3.1](/models/model-cards/text-to-speech/lightning-v-3-1) model cards for the canonical per-pool voice lists. Use the `voice_id` from this response together with `"model": "lightning_v3.1"` (default) or `"model": "lightning_v3.1_pro"` on the unified `/waves/v1/tts` route to pick the pool. Parameters ---------- - model : GetVoicesWavesRequestModel + model : GetVoicesSpeechRequestModel The catalog to query. Currently only `lightning-v3.1` is supported — the response returns the union of standard Lightning v3.1 voices and Lightning v3.1 Pro voices. The API does not include a per-voice Pro flag; consult the model cards for the canonical per-pool catalogs. request_options : typing.Optional[RequestOptions] @@ -2081,7 +2098,7 @@ async def get_voices( Returns ------- - AsyncHttpResponse[GetVoicesWavesResponse] + AsyncHttpResponse[GetVoicesSpeechResponse] Voices retrieved successfully. """ _response = await self._client_wrapper.httpx_client.request( @@ -2093,9 +2110,9 @@ async def get_voices( try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetVoicesWavesResponse, + GetVoicesSpeechResponse, construct_type( - type_=GetVoicesWavesResponse, # type: ignore + type_=GetVoicesSpeechResponse, # type: ignore object_=_response.json(), ), ) @@ -2148,6 +2165,7 @@ async def synthesize_tts( *, text: str, voice_id: str, + expire_content: typing.Optional[SynthesizeTtsSpeechRequestXExpireContent] = None, model: typing.Optional[TtsRequestModel] = OMIT, sample_rate: typing.Optional[int] = OMIT, speed: typing.Optional[float] = OMIT, @@ -2262,6 +2280,10 @@ async def synthesize_tts( voice_id : str The voice identifier to use for speech generation. See the model card for available voices per model. + expire_content : typing.Optional[SynthesizeTtsSpeechRequestXExpireContent] + **Enterprise plans only.** Opt in if you want this request's content + deleted after 7 days. Omit it to retain content, which is the default. + model : typing.Optional[TtsRequestModel] TTS model to route the request to. Controls which model pool serves this synthesis. @@ -2384,6 +2406,7 @@ async def synthesize_tts( headers={ "content-type": "application/json", "Accept": "audio/wav", + "x-expire-content": str(expire_content) if expire_content is not None else None, }, request_options=request_options, omit=OMIT, @@ -2453,6 +2476,7 @@ async def synthesize_sse_tts( *, text: str, voice_id: str, + expire_content: typing.Optional[SynthesizeSseTtsSpeechRequestXExpireContent] = None, model: typing.Optional[TtsRequestModel] = OMIT, sample_rate: typing.Optional[int] = OMIT, speed: typing.Optional[float] = OMIT, @@ -2483,9 +2507,9 @@ async def synthesize_sse_tts( ## How it works 1. POST your text + voice settings — same payload as `/waves/v1/tts`, plus optional `model`. - 2. The response is `Content-Type: text/event-stream`. Each chunk frame is `event: audio\\n` followed by `data: {"audio": ""}\\n\\n`. + 2. The response is `Content-Type: text/event-stream`. Each chunk frame is `event: audio\\n` followed by `data: {"audio": "", "done": false, "status": "206"}\\n\\n`. 3. Decode each chunk's `audio` field with base64 and feed the PCM bytes to your audio pipeline (browser `MediaSource`, ffmpeg pipe, raw PCM player, etc.). - 4. A final `data: {"done": true}\\n\\n` frame marks end of stream. + 4. A final `data: {"status": "200", "done": true}\\n\\n` frame marks end of stream. Detect the terminator with `done == true`; every chunk frame also carries `done: false`, so `"done" in msg` matches every frame. ## Examples @@ -2516,6 +2540,10 @@ async def synthesize_sse_tts( voice_id : str The voice identifier to use for speech generation. See the model card for available voices per model. + expire_content : typing.Optional[SynthesizeSseTtsSpeechRequestXExpireContent] + **Enterprise plans only.** Opt in if you want this request's content + deleted after 7 days. Omit it to retain content, which is the default. + model : typing.Optional[TtsRequestModel] TTS model to route the request to. Controls which model pool serves this synthesis. @@ -2635,6 +2663,10 @@ async def synthesize_sse_tts( "session_id": session_id, "request_id": request_id, }, + headers={ + "content-type": "application/json", + "x-expire-content": str(expire_content) if expire_content is not None else None, + }, request_options=request_options, omit=OMIT, ) as _response: @@ -2721,7 +2753,7 @@ async def _iter(): async def list_voice_clones( self, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[ListVoiceClonesWavesResponse]: + ) -> AsyncHttpResponse[ListVoiceClonesSpeechResponse]: """ Retrieve all voice clones in your organization. @@ -2732,7 +2764,7 @@ async def list_voice_clones( Returns ------- - AsyncHttpResponse[ListVoiceClonesWavesResponse] + AsyncHttpResponse[ListVoiceClonesSpeechResponse] List of voice clones. """ _response = await self._client_wrapper.httpx_client.request( @@ -2744,9 +2776,9 @@ async def list_voice_clones( try: if 200 <= _response.status_code < 300: _data = typing.cast( - ListVoiceClonesWavesResponse, + ListVoiceClonesSpeechResponse, construct_type( - type_=ListVoiceClonesWavesResponse, # type: ignore + type_=ListVoiceClonesSpeechResponse, # type: ignore object_=_response.json(), ), ) @@ -2791,9 +2823,9 @@ async def create_voice_clone( accent: typing.Optional[str] = OMIT, tags: typing.Optional[str] = OMIT, language: typing.Optional[str] = OMIT, - model: typing.Optional[CreateVoiceCloneWavesRequestModel] = OMIT, + model: typing.Optional[CreateVoiceCloneSpeechRequestModel] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[CreateVoiceCloneWavesResponse]: + ) -> AsyncHttpResponse[CreateVoiceCloneSpeechResponse]: """ Create an instant voice clone in a single call. Defaults to `lightning-v3.1`. @@ -2826,7 +2858,7 @@ async def create_voice_clone( (e.g. `en`, `hi`). The server validates and rejects unsupported codes with a 400. - model : typing.Optional[CreateVoiceCloneWavesRequestModel] + model : typing.Optional[CreateVoiceCloneSpeechRequestModel] Voice cloning model. Defaults to `lightning-v3.1`. `lightning-v2` is accepted by the schema for historical reasons but is deprecated — the server returns 400 with @@ -2837,7 +2869,7 @@ async def create_voice_clone( Returns ------- - AsyncHttpResponse[CreateVoiceCloneWavesResponse] + AsyncHttpResponse[CreateVoiceCloneSpeechResponse] Voice clone created. Includes pre-generated sample clips of the new voice. """ _response = await self._client_wrapper.httpx_client.request( @@ -2862,9 +2894,9 @@ async def create_voice_clone( try: if 200 <= _response.status_code < 300: _data = typing.cast( - CreateVoiceCloneWavesResponse, + CreateVoiceCloneSpeechResponse, construct_type( - type_=CreateVoiceCloneWavesResponse, # type: ignore + type_=CreateVoiceCloneSpeechResponse, # type: ignore object_=_response.json(), ), ) diff --git a/src/smallestai/waves/speech_to_speech/__init__.py b/src/smallestai/speech/speech_to_speech/__init__.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/__init__.py rename to src/smallestai/speech/speech_to_speech/__init__.py diff --git a/src/smallestai/waves/speech_to_speech/client.py b/src/smallestai/speech/speech_to_speech/client.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/client.py rename to src/smallestai/speech/speech_to_speech/client.py diff --git a/src/smallestai/waves/speech_to_speech/raw_client.py b/src/smallestai/speech/speech_to_speech/raw_client.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/raw_client.py rename to src/smallestai/speech/speech_to_speech/raw_client.py diff --git a/src/smallestai/waves/speech_to_speech/socket_client.py b/src/smallestai/speech/speech_to_speech/socket_client.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/socket_client.py rename to src/smallestai/speech/speech_to_speech/socket_client.py diff --git a/src/smallestai/waves/speech_to_speech/types/__init__.py b/src/smallestai/speech/speech_to_speech/types/__init__.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/__init__.py rename to src/smallestai/speech/speech_to_speech/types/__init__.py diff --git a/src/smallestai/waves/speech_to_speech/types/conversation_item_added.py b/src/smallestai/speech/speech_to_speech/types/conversation_item_added.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/conversation_item_added.py rename to src/smallestai/speech/speech_to_speech/types/conversation_item_added.py diff --git a/src/smallestai/waves/speech_to_speech/types/conversation_item_added_type.py b/src/smallestai/speech/speech_to_speech/types/conversation_item_added_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/conversation_item_added_type.py rename to src/smallestai/speech/speech_to_speech/types/conversation_item_added_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/conversation_item_create.py b/src/smallestai/speech/speech_to_speech/types/conversation_item_create.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/conversation_item_create.py rename to src/smallestai/speech/speech_to_speech/types/conversation_item_create.py diff --git a/src/smallestai/waves/speech_to_speech/types/conversation_item_create_type.py b/src/smallestai/speech/speech_to_speech/types/conversation_item_create_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/conversation_item_create_type.py rename to src/smallestai/speech/speech_to_speech/types/conversation_item_create_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/conversation_item_done.py b/src/smallestai/speech/speech_to_speech/types/conversation_item_done.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/conversation_item_done.py rename to src/smallestai/speech/speech_to_speech/types/conversation_item_done.py diff --git a/src/smallestai/waves/speech_to_speech/types/conversation_item_done_type.py b/src/smallestai/speech/speech_to_speech/types/conversation_item_done_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/conversation_item_done_type.py rename to src/smallestai/speech/speech_to_speech/types/conversation_item_done_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/error_event.py b/src/smallestai/speech/speech_to_speech/types/error_event.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/error_event.py rename to src/smallestai/speech/speech_to_speech/types/error_event.py diff --git a/src/smallestai/waves/speech_to_speech/types/error_event_error.py b/src/smallestai/speech/speech_to_speech/types/error_event_error.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/error_event_error.py rename to src/smallestai/speech/speech_to_speech/types/error_event_error.py diff --git a/src/smallestai/waves/speech_to_speech/types/error_event_error_code.py b/src/smallestai/speech/speech_to_speech/types/error_event_error_code.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/error_event_error_code.py rename to src/smallestai/speech/speech_to_speech/types/error_event_error_code.py diff --git a/src/smallestai/waves/speech_to_speech/types/error_event_type.py b/src/smallestai/speech/speech_to_speech/types/error_event_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/error_event_type.py rename to src/smallestai/speech/speech_to_speech/types/error_event_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/input_audio_buffer_append.py b/src/smallestai/speech/speech_to_speech/types/input_audio_buffer_append.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/input_audio_buffer_append.py rename to src/smallestai/speech/speech_to_speech/types/input_audio_buffer_append.py diff --git a/src/smallestai/waves/speech_to_speech/types/input_audio_buffer_append_type.py b/src/smallestai/speech/speech_to_speech/types/input_audio_buffer_append_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/input_audio_buffer_append_type.py rename to src/smallestai/speech/speech_to_speech/types/input_audio_buffer_append_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/input_audio_buffer_speech_started.py b/src/smallestai/speech/speech_to_speech/types/input_audio_buffer_speech_started.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/input_audio_buffer_speech_started.py rename to src/smallestai/speech/speech_to_speech/types/input_audio_buffer_speech_started.py diff --git a/src/smallestai/waves/speech_to_speech/types/input_audio_buffer_speech_started_type.py b/src/smallestai/speech/speech_to_speech/types/input_audio_buffer_speech_started_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/input_audio_buffer_speech_started_type.py rename to src/smallestai/speech/speech_to_speech/types/input_audio_buffer_speech_started_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/input_audio_buffer_speech_stopped.py b/src/smallestai/speech/speech_to_speech/types/input_audio_buffer_speech_stopped.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/input_audio_buffer_speech_stopped.py rename to src/smallestai/speech/speech_to_speech/types/input_audio_buffer_speech_stopped.py diff --git a/src/smallestai/waves/speech_to_speech/types/input_audio_buffer_speech_stopped_type.py b/src/smallestai/speech/speech_to_speech/types/input_audio_buffer_speech_stopped_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/input_audio_buffer_speech_stopped_type.py rename to src/smallestai/speech/speech_to_speech/types/input_audio_buffer_speech_stopped_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_cancel.py b/src/smallestai/speech/speech_to_speech/types/response_cancel.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_cancel.py rename to src/smallestai/speech/speech_to_speech/types/response_cancel.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_cancel_type.py b/src/smallestai/speech/speech_to_speech/types/response_cancel_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_cancel_type.py rename to src/smallestai/speech/speech_to_speech/types/response_cancel_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_create.py b/src/smallestai/speech/speech_to_speech/types/response_create.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_create.py rename to src/smallestai/speech/speech_to_speech/types/response_create.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_create_type.py b/src/smallestai/speech/speech_to_speech/types/response_create_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_create_type.py rename to src/smallestai/speech/speech_to_speech/types/response_create_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_created.py b/src/smallestai/speech/speech_to_speech/types/response_created.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_created.py rename to src/smallestai/speech/speech_to_speech/types/response_created.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_created_response.py b/src/smallestai/speech/speech_to_speech/types/response_created_response.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_created_response.py rename to src/smallestai/speech/speech_to_speech/types/response_created_response.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_created_type.py b/src/smallestai/speech/speech_to_speech/types/response_created_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_created_type.py rename to src/smallestai/speech/speech_to_speech/types/response_created_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_done.py b/src/smallestai/speech/speech_to_speech/types/response_done.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_done.py rename to src/smallestai/speech/speech_to_speech/types/response_done.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_done_response.py b/src/smallestai/speech/speech_to_speech/types/response_done_response.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_done_response.py rename to src/smallestai/speech/speech_to_speech/types/response_done_response.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_done_response_status.py b/src/smallestai/speech/speech_to_speech/types/response_done_response_status.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_done_response_status.py rename to src/smallestai/speech/speech_to_speech/types/response_done_response_status.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_done_response_status_details.py b/src/smallestai/speech/speech_to_speech/types/response_done_response_status_details.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_done_response_status_details.py rename to src/smallestai/speech/speech_to_speech/types/response_done_response_status_details.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_done_response_status_details_error.py b/src/smallestai/speech/speech_to_speech/types/response_done_response_status_details_error.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_done_response_status_details_error.py rename to src/smallestai/speech/speech_to_speech/types/response_done_response_status_details_error.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_done_response_status_details_reason.py b/src/smallestai/speech/speech_to_speech/types/response_done_response_status_details_reason.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_done_response_status_details_reason.py rename to src/smallestai/speech/speech_to_speech/types/response_done_response_status_details_reason.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_done_response_usage.py b/src/smallestai/speech/speech_to_speech/types/response_done_response_usage.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_done_response_usage.py rename to src/smallestai/speech/speech_to_speech/types/response_done_response_usage.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_done_type.py b/src/smallestai/speech/speech_to_speech/types/response_done_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_done_type.py rename to src/smallestai/speech/speech_to_speech/types/response_done_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_function_call_arguments_delta.py b/src/smallestai/speech/speech_to_speech/types/response_function_call_arguments_delta.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_function_call_arguments_delta.py rename to src/smallestai/speech/speech_to_speech/types/response_function_call_arguments_delta.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_function_call_arguments_delta_type.py b/src/smallestai/speech/speech_to_speech/types/response_function_call_arguments_delta_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_function_call_arguments_delta_type.py rename to src/smallestai/speech/speech_to_speech/types/response_function_call_arguments_delta_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_function_call_arguments_done.py b/src/smallestai/speech/speech_to_speech/types/response_function_call_arguments_done.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_function_call_arguments_done.py rename to src/smallestai/speech/speech_to_speech/types/response_function_call_arguments_done.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_function_call_arguments_done_type.py b/src/smallestai/speech/speech_to_speech/types/response_function_call_arguments_done_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_function_call_arguments_done_type.py rename to src/smallestai/speech/speech_to_speech/types/response_function_call_arguments_done_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_output_audio_delta.py b/src/smallestai/speech/speech_to_speech/types/response_output_audio_delta.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_output_audio_delta.py rename to src/smallestai/speech/speech_to_speech/types/response_output_audio_delta.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_output_audio_delta_type.py b/src/smallestai/speech/speech_to_speech/types/response_output_audio_delta_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_output_audio_delta_type.py rename to src/smallestai/speech/speech_to_speech/types/response_output_audio_delta_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_output_audio_done.py b/src/smallestai/speech/speech_to_speech/types/response_output_audio_done.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_output_audio_done.py rename to src/smallestai/speech/speech_to_speech/types/response_output_audio_done.py diff --git a/src/smallestai/waves/speech_to_speech/types/response_output_audio_done_type.py b/src/smallestai/speech/speech_to_speech/types/response_output_audio_done_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/response_output_audio_done_type.py rename to src/smallestai/speech/speech_to_speech/types/response_output_audio_done_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/session_configure.py b/src/smallestai/speech/speech_to_speech/types/session_configure.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/session_configure.py rename to src/smallestai/speech/speech_to_speech/types/session_configure.py diff --git a/src/smallestai/waves/speech_to_speech/types/session_configure_type.py b/src/smallestai/speech/speech_to_speech/types/session_configure_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/session_configure_type.py rename to src/smallestai/speech/speech_to_speech/types/session_configure_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/session_configured.py b/src/smallestai/speech/speech_to_speech/types/session_configured.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/session_configured.py rename to src/smallestai/speech/speech_to_speech/types/session_configured.py diff --git a/src/smallestai/waves/speech_to_speech/types/session_configured_session.py b/src/smallestai/speech/speech_to_speech/types/session_configured_session.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/session_configured_session.py rename to src/smallestai/speech/speech_to_speech/types/session_configured_session.py diff --git a/src/smallestai/waves/speech_to_speech/types/session_configured_type.py b/src/smallestai/speech/speech_to_speech/types/session_configured_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/session_configured_type.py rename to src/smallestai/speech/speech_to_speech/types/session_configured_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/session_created.py b/src/smallestai/speech/speech_to_speech/types/session_created.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/session_created.py rename to src/smallestai/speech/speech_to_speech/types/session_created.py diff --git a/src/smallestai/waves/speech_to_speech/types/session_created_type.py b/src/smallestai/speech/speech_to_speech/types/session_created_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/session_created_type.py rename to src/smallestai/speech/speech_to_speech/types/session_created_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/session_update.py b/src/smallestai/speech/speech_to_speech/types/session_update.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/session_update.py rename to src/smallestai/speech/speech_to_speech/types/session_update.py diff --git a/src/smallestai/waves/speech_to_speech/types/session_update_session.py b/src/smallestai/speech/speech_to_speech/types/session_update_session.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/session_update_session.py rename to src/smallestai/speech/speech_to_speech/types/session_update_session.py diff --git a/src/smallestai/waves/speech_to_speech/types/session_update_type.py b/src/smallestai/speech/speech_to_speech/types/session_update_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/session_update_type.py rename to src/smallestai/speech/speech_to_speech/types/session_update_type.py diff --git a/src/smallestai/waves/speech_to_speech/types/session_updated.py b/src/smallestai/speech/speech_to_speech/types/session_updated.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/session_updated.py rename to src/smallestai/speech/speech_to_speech/types/session_updated.py diff --git a/src/smallestai/waves/speech_to_speech/types/session_updated_type.py b/src/smallestai/speech/speech_to_speech/types/session_updated_type.py similarity index 100% rename from src/smallestai/waves/speech_to_speech/types/session_updated_type.py rename to src/smallestai/speech/speech_to_speech/types/session_updated_type.py diff --git a/src/smallestai/waves/speech_to_text/__init__.py b/src/smallestai/speech/speech_to_text/__init__.py similarity index 95% rename from src/smallestai/waves/speech_to_text/__init__.py rename to src/smallestai/speech/speech_to_text/__init__.py index 41d51f66b..cacd7fc6a 100644 --- a/src/smallestai/waves/speech_to_text/__init__.py +++ b/src/smallestai/speech/speech_to_text/__init__.py @@ -18,6 +18,7 @@ TranscribeRequestRedactPci, TranscribeRequestRedactPii, TranscribeRequestWebhookMethod, + TranscribeRequestXExpireContent, TranscribeResponse, TranscriptionErrorEvent, TranscriptionErrorEventType, @@ -38,6 +39,7 @@ "TranscribeRequestRedactPci": ".types", "TranscribeRequestRedactPii": ".types", "TranscribeRequestWebhookMethod": ".types", + "TranscribeRequestXExpireContent": ".types", "TranscribeResponse": ".types", "TranscriptionErrorEvent": ".types", "TranscriptionErrorEventType": ".types", @@ -81,6 +83,7 @@ def __dir__(): "TranscribeRequestRedactPci", "TranscribeRequestRedactPii", "TranscribeRequestWebhookMethod", + "TranscribeRequestXExpireContent", "TranscribeResponse", "TranscriptionErrorEvent", "TranscriptionErrorEventType", diff --git a/src/smallestai/waves/speech_to_text/client.py b/src/smallestai/speech/speech_to_text/client.py similarity index 100% rename from src/smallestai/waves/speech_to_text/client.py rename to src/smallestai/speech/speech_to_text/client.py diff --git a/src/smallestai/waves/speech_to_text/raw_client.py b/src/smallestai/speech/speech_to_text/raw_client.py similarity index 100% rename from src/smallestai/waves/speech_to_text/raw_client.py rename to src/smallestai/speech/speech_to_text/raw_client.py diff --git a/src/smallestai/waves/speech_to_text/socket_client.py b/src/smallestai/speech/speech_to_text/socket_client.py similarity index 100% rename from src/smallestai/waves/speech_to_text/socket_client.py rename to src/smallestai/speech/speech_to_text/socket_client.py diff --git a/src/smallestai/waves/speech_to_text/types/__init__.py b/src/smallestai/speech/speech_to_text/types/__init__.py similarity index 95% rename from src/smallestai/waves/speech_to_text/types/__init__.py rename to src/smallestai/speech/speech_to_text/types/__init__.py index a5674b46c..a2a816731 100644 --- a/src/smallestai/waves/speech_to_text/types/__init__.py +++ b/src/smallestai/speech/speech_to_text/types/__init__.py @@ -17,6 +17,7 @@ from .transcribe_request_redact_pci import TranscribeRequestRedactPci from .transcribe_request_redact_pii import TranscribeRequestRedactPii from .transcribe_request_webhook_method import TranscribeRequestWebhookMethod + from .transcribe_request_x_expire_content import TranscribeRequestXExpireContent from .transcribe_response import TranscribeResponse from .transcription_error_event import TranscriptionErrorEvent from .transcription_error_event_type import TranscriptionErrorEventType @@ -36,6 +37,7 @@ "TranscribeRequestRedactPci": ".transcribe_request_redact_pci", "TranscribeRequestRedactPii": ".transcribe_request_redact_pii", "TranscribeRequestWebhookMethod": ".transcribe_request_webhook_method", + "TranscribeRequestXExpireContent": ".transcribe_request_x_expire_content", "TranscribeResponse": ".transcribe_response", "TranscriptionErrorEvent": ".transcription_error_event", "TranscriptionErrorEventType": ".transcription_error_event_type", @@ -79,6 +81,7 @@ def __dir__(): "TranscribeRequestRedactPci", "TranscribeRequestRedactPii", "TranscribeRequestWebhookMethod", + "TranscribeRequestXExpireContent", "TranscribeResponse", "TranscriptionErrorEvent", "TranscriptionErrorEventType", diff --git a/src/smallestai/waves/speech_to_text/types/close_stream.py b/src/smallestai/speech/speech_to_text/types/close_stream.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/close_stream.py rename to src/smallestai/speech/speech_to_text/types/close_stream.py diff --git a/src/smallestai/waves/speech_to_text/types/close_stream_type.py b/src/smallestai/speech/speech_to_text/types/close_stream_type.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/close_stream_type.py rename to src/smallestai/speech/speech_to_text/types/close_stream_type.py diff --git a/src/smallestai/waves/speech_to_text/types/finalize_signal.py b/src/smallestai/speech/speech_to_text/types/finalize_signal.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/finalize_signal.py rename to src/smallestai/speech/speech_to_text/types/finalize_signal.py diff --git a/src/smallestai/waves/speech_to_text/types/finalize_signal_type.py b/src/smallestai/speech/speech_to_text/types/finalize_signal_type.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/finalize_signal_type.py rename to src/smallestai/speech/speech_to_text/types/finalize_signal_type.py diff --git a/src/smallestai/waves/speech_to_text/types/transcribe_request_emotion_detection.py b/src/smallestai/speech/speech_to_text/types/transcribe_request_emotion_detection.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/transcribe_request_emotion_detection.py rename to src/smallestai/speech/speech_to_text/types/transcribe_request_emotion_detection.py diff --git a/src/smallestai/waves/speech_to_text/types/transcribe_request_gender_detection.py b/src/smallestai/speech/speech_to_text/types/transcribe_request_gender_detection.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/transcribe_request_gender_detection.py rename to src/smallestai/speech/speech_to_text/types/transcribe_request_gender_detection.py diff --git a/src/smallestai/waves/speech_to_text/types/transcribe_request_language.py b/src/smallestai/speech/speech_to_text/types/transcribe_request_language.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/transcribe_request_language.py rename to src/smallestai/speech/speech_to_text/types/transcribe_request_language.py diff --git a/src/smallestai/waves/speech_to_text/types/transcribe_request_model.py b/src/smallestai/speech/speech_to_text/types/transcribe_request_model.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/transcribe_request_model.py rename to src/smallestai/speech/speech_to_text/types/transcribe_request_model.py diff --git a/src/smallestai/waves/speech_to_text/types/transcribe_request_redact_pci.py b/src/smallestai/speech/speech_to_text/types/transcribe_request_redact_pci.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/transcribe_request_redact_pci.py rename to src/smallestai/speech/speech_to_text/types/transcribe_request_redact_pci.py diff --git a/src/smallestai/waves/speech_to_text/types/transcribe_request_redact_pii.py b/src/smallestai/speech/speech_to_text/types/transcribe_request_redact_pii.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/transcribe_request_redact_pii.py rename to src/smallestai/speech/speech_to_text/types/transcribe_request_redact_pii.py diff --git a/src/smallestai/waves/speech_to_text/types/transcribe_request_webhook_method.py b/src/smallestai/speech/speech_to_text/types/transcribe_request_webhook_method.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/transcribe_request_webhook_method.py rename to src/smallestai/speech/speech_to_text/types/transcribe_request_webhook_method.py diff --git a/src/smallestai/speech/speech_to_text/types/transcribe_request_x_expire_content.py b/src/smallestai/speech/speech_to_text/types/transcribe_request_x_expire_content.py new file mode 100644 index 000000000..ddf5bad77 --- /dev/null +++ b/src/smallestai/speech/speech_to_text/types/transcribe_request_x_expire_content.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +TranscribeRequestXExpireContent = typing.Union[typing.Literal["true"], typing.Any] diff --git a/src/smallestai/waves/speech_to_text/types/transcribe_response.py b/src/smallestai/speech/speech_to_text/types/transcribe_response.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/transcribe_response.py rename to src/smallestai/speech/speech_to_text/types/transcribe_response.py diff --git a/src/smallestai/waves/speech_to_text/types/transcription_error_event.py b/src/smallestai/speech/speech_to_text/types/transcription_error_event.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/transcription_error_event.py rename to src/smallestai/speech/speech_to_text/types/transcription_error_event.py diff --git a/src/smallestai/waves/speech_to_text/types/transcription_error_event_type.py b/src/smallestai/speech/speech_to_text/types/transcription_error_event_type.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/transcription_error_event_type.py rename to src/smallestai/speech/speech_to_text/types/transcription_error_event_type.py diff --git a/src/smallestai/waves/speech_to_text/types/transcription_event.py b/src/smallestai/speech/speech_to_text/types/transcription_event.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/transcription_event.py rename to src/smallestai/speech/speech_to_text/types/transcription_event.py diff --git a/src/smallestai/waves/speech_to_text/types/transcription_event_type.py b/src/smallestai/speech/speech_to_text/types/transcription_event_type.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/transcription_event_type.py rename to src/smallestai/speech/speech_to_text/types/transcription_event_type.py diff --git a/src/smallestai/waves/speech_to_text/types/transcription_event_utterances_item.py b/src/smallestai/speech/speech_to_text/types/transcription_event_utterances_item.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/transcription_event_utterances_item.py rename to src/smallestai/speech/speech_to_text/types/transcription_event_utterances_item.py diff --git a/src/smallestai/waves/speech_to_text/types/transcription_event_words_item.py b/src/smallestai/speech/speech_to_text/types/transcription_event_words_item.py similarity index 100% rename from src/smallestai/waves/speech_to_text/types/transcription_event_words_item.py rename to src/smallestai/speech/speech_to_text/types/transcription_event_words_item.py diff --git a/src/smallestai/waves/stream_tts.py b/src/smallestai/speech/stream_tts.py similarity index 97% rename from src/smallestai/waves/stream_tts.py rename to src/smallestai/speech/stream_tts.py index c8262834a..dd2fc06e1 100644 --- a/src/smallestai/waves/stream_tts.py +++ b/src/smallestai/speech/stream_tts.py @@ -1,6 +1,6 @@ """ WavesStreamingTTS — thin compatibility shim for the legacy -`from smallestai.waves import WavesStreamingTTS, TTSConfig` pattern +`from smallestai.speech import WavesStreamingTTS, TTSConfig` pattern shipped in smallestai==4.3.1. This wraps the unified TTS streaming WebSocket endpoint @@ -18,17 +18,17 @@ For new code, prefer the namespaced Fern client: - client.waves.lightning_v31tts.connect(...) + client.speech.lightning_v31tts.connect(...) This shim exists to avoid breaking customers on the 4.3.1 pattern. """ -import json import base64 -import time -import threading +import json import queue +import threading +import time +from dataclasses import dataclass from typing import Generator, Optional, Sequence -from dataclasses import dataclass, field from websocket import WebSocketApp # from `websocket-client` package @@ -57,7 +57,7 @@ class WavesStreamingTTS: Example:: - from smallestai.waves import WavesStreamingTTS, TTSConfig + from smallestai.speech import WavesStreamingTTS, TTSConfig config = TTSConfig(voice_id="magnus", api_key="...") streaming_tts = WavesStreamingTTS(config) audio_chunks = list(streaming_tts.synthesize("Hello world")) diff --git a/src/smallestai/waves/streaming_tts/__init__.py b/src/smallestai/speech/streaming_tts/__init__.py similarity index 100% rename from src/smallestai/waves/streaming_tts/__init__.py rename to src/smallestai/speech/streaming_tts/__init__.py diff --git a/src/smallestai/waves/streaming_tts/client.py b/src/smallestai/speech/streaming_tts/client.py similarity index 100% rename from src/smallestai/waves/streaming_tts/client.py rename to src/smallestai/speech/streaming_tts/client.py diff --git a/src/smallestai/waves/streaming_tts/raw_client.py b/src/smallestai/speech/streaming_tts/raw_client.py similarity index 100% rename from src/smallestai/waves/streaming_tts/raw_client.py rename to src/smallestai/speech/streaming_tts/raw_client.py diff --git a/src/smallestai/waves/streaming_tts/socket_client.py b/src/smallestai/speech/streaming_tts/socket_client.py similarity index 100% rename from src/smallestai/waves/streaming_tts/socket_client.py rename to src/smallestai/speech/streaming_tts/socket_client.py diff --git a/src/smallestai/waves/streaming_tts/types/__init__.py b/src/smallestai/speech/streaming_tts/types/__init__.py similarity index 100% rename from src/smallestai/waves/streaming_tts/types/__init__.py rename to src/smallestai/speech/streaming_tts/types/__init__.py diff --git a/src/smallestai/waves/streaming_tts/types/stream_tts_request_message.py b/src/smallestai/speech/streaming_tts/types/stream_tts_request_message.py similarity index 100% rename from src/smallestai/waves/streaming_tts/types/stream_tts_request_message.py rename to src/smallestai/speech/streaming_tts/types/stream_tts_request_message.py diff --git a/src/smallestai/waves/streaming_tts/types/stream_tts_request_message_language.py b/src/smallestai/speech/streaming_tts/types/stream_tts_request_message_language.py similarity index 100% rename from src/smallestai/waves/streaming_tts/types/stream_tts_request_message_language.py rename to src/smallestai/speech/streaming_tts/types/stream_tts_request_message_language.py diff --git a/src/smallestai/waves/streaming_tts/types/stream_tts_response_message.py b/src/smallestai/speech/streaming_tts/types/stream_tts_response_message.py similarity index 100% rename from src/smallestai/waves/streaming_tts/types/stream_tts_response_message.py rename to src/smallestai/speech/streaming_tts/types/stream_tts_response_message.py diff --git a/src/smallestai/waves/streaming_tts/types/stream_tts_response_message_data.py b/src/smallestai/speech/streaming_tts/types/stream_tts_response_message_data.py similarity index 100% rename from src/smallestai/waves/streaming_tts/types/stream_tts_response_message_data.py rename to src/smallestai/speech/streaming_tts/types/stream_tts_response_message_data.py diff --git a/src/smallestai/waves/streaming_tts/types/stream_tts_response_message_error.py b/src/smallestai/speech/streaming_tts/types/stream_tts_response_message_error.py similarity index 100% rename from src/smallestai/waves/streaming_tts/types/stream_tts_response_message_error.py rename to src/smallestai/speech/streaming_tts/types/stream_tts_response_message_error.py diff --git a/src/smallestai/waves/streaming_tts/types/stream_tts_response_message_status.py b/src/smallestai/speech/streaming_tts/types/stream_tts_response_message_status.py similarity index 100% rename from src/smallestai/waves/streaming_tts/types/stream_tts_response_message_status.py rename to src/smallestai/speech/streaming_tts/types/stream_tts_response_message_status.py diff --git a/src/smallestai/waves/tts/__init__.py b/src/smallestai/speech/tts/__init__.py similarity index 100% rename from src/smallestai/waves/tts/__init__.py rename to src/smallestai/speech/tts/__init__.py diff --git a/src/smallestai/waves/tts/client.py b/src/smallestai/speech/tts/client.py similarity index 92% rename from src/smallestai/waves/tts/client.py rename to src/smallestai/speech/tts/client.py index c35756d11..461029844 100644 --- a/src/smallestai/waves/tts/client.py +++ b/src/smallestai/speech/tts/client.py @@ -38,7 +38,11 @@ def with_raw_response(self) -> RawTtsClient: @contextmanager def connect( - self, *, authorization: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None + self, + *, + authorization: typing.Optional[str] = None, + expire_content: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, ) -> typing.Iterator[TtsSocketClient]: """ # Live TTS WebSocket — `/waves/v1/tts/live` @@ -138,6 +142,11 @@ def connect( authorization : typing.Optional[str] Bearer token for authentication. Format: Bearer YOUR_API_KEY + expire_content : typing.Optional[str] + **Enterprise plans only.** Opt in if you want this session's content + deleted after 7 days. Omit it to retain content, which is the default. + Sent as a header on the WebSocket upgrade request. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -164,6 +173,8 @@ def connect( headers = self._raw_client._client_wrapper.get_headers() if authorization is not None: headers["Authorization"] = str(authorization) + if expire_content is not None: + headers["x-expire-content"] = str(expire_content) if request_options and "additional_headers" in request_options: headers.update(request_options["additional_headers"]) try: @@ -201,7 +212,11 @@ def with_raw_response(self) -> AsyncRawTtsClient: @asynccontextmanager async def connect( - self, *, authorization: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None + self, + *, + authorization: typing.Optional[str] = None, + expire_content: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, ) -> typing.AsyncIterator[AsyncTtsSocketClient]: """ # Live TTS WebSocket — `/waves/v1/tts/live` @@ -301,6 +316,11 @@ async def connect( authorization : typing.Optional[str] Bearer token for authentication. Format: Bearer YOUR_API_KEY + expire_content : typing.Optional[str] + **Enterprise plans only.** Opt in if you want this session's content + deleted after 7 days. Omit it to retain content, which is the default. + Sent as a header on the WebSocket upgrade request. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -327,6 +347,8 @@ async def connect( headers = self._raw_client._client_wrapper.get_headers() if authorization is not None: headers["Authorization"] = str(authorization) + if expire_content is not None: + headers["x-expire-content"] = str(expire_content) if request_options and "additional_headers" in request_options: headers.update(request_options["additional_headers"]) try: diff --git a/src/smallestai/waves/tts/raw_client.py b/src/smallestai/speech/tts/raw_client.py similarity index 92% rename from src/smallestai/waves/tts/raw_client.py rename to src/smallestai/speech/tts/raw_client.py index 38ca0a9aa..546163f80 100644 --- a/src/smallestai/waves/tts/raw_client.py +++ b/src/smallestai/speech/tts/raw_client.py @@ -26,7 +26,11 @@ def __init__(self, *, client_wrapper: SyncClientWrapper): @contextmanager def connect( - self, *, authorization: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None + self, + *, + authorization: typing.Optional[str] = None, + expire_content: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, ) -> typing.Iterator[TtsSocketClient]: """ # Live TTS WebSocket — `/waves/v1/tts/live` @@ -126,6 +130,11 @@ def connect( authorization : typing.Optional[str] Bearer token for authentication. Format: Bearer YOUR_API_KEY + expire_content : typing.Optional[str] + **Enterprise plans only.** Opt in if you want this session's content + deleted after 7 days. Omit it to retain content, which is the default. + Sent as a header on the WebSocket upgrade request. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -152,6 +161,8 @@ def connect( headers = self._client_wrapper.get_headers() if authorization is not None: headers["Authorization"] = str(authorization) + if expire_content is not None: + headers["x-expire-content"] = str(expire_content) if request_options and "additional_headers" in request_options: headers.update(request_options["additional_headers"]) try: @@ -178,7 +189,11 @@ def __init__(self, *, client_wrapper: AsyncClientWrapper): @asynccontextmanager async def connect( - self, *, authorization: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None + self, + *, + authorization: typing.Optional[str] = None, + expire_content: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, ) -> typing.AsyncIterator[AsyncTtsSocketClient]: """ # Live TTS WebSocket — `/waves/v1/tts/live` @@ -278,6 +293,11 @@ async def connect( authorization : typing.Optional[str] Bearer token for authentication. Format: Bearer YOUR_API_KEY + expire_content : typing.Optional[str] + **Enterprise plans only.** Opt in if you want this session's content + deleted after 7 days. Omit it to retain content, which is the default. + Sent as a header on the WebSocket upgrade request. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -304,6 +324,8 @@ async def connect( headers = self._client_wrapper.get_headers() if authorization is not None: headers["Authorization"] = str(authorization) + if expire_content is not None: + headers["x-expire-content"] = str(expire_content) if request_options and "additional_headers" in request_options: headers.update(request_options["additional_headers"]) try: diff --git a/src/smallestai/waves/tts/socket_client.py b/src/smallestai/speech/tts/socket_client.py similarity index 100% rename from src/smallestai/waves/tts/socket_client.py rename to src/smallestai/speech/tts/socket_client.py diff --git a/src/smallestai/waves/tts/types/__init__.py b/src/smallestai/speech/tts/types/__init__.py similarity index 100% rename from src/smallestai/waves/tts/types/__init__.py rename to src/smallestai/speech/tts/types/__init__.py diff --git a/src/smallestai/waves/tts/types/tts_request_message.py b/src/smallestai/speech/tts/types/tts_request_message.py similarity index 100% rename from src/smallestai/waves/tts/types/tts_request_message.py rename to src/smallestai/speech/tts/types/tts_request_message.py diff --git a/src/smallestai/waves/tts/types/tts_request_message_language.py b/src/smallestai/speech/tts/types/tts_request_message_language.py similarity index 100% rename from src/smallestai/waves/tts/types/tts_request_message_language.py rename to src/smallestai/speech/tts/types/tts_request_message_language.py diff --git a/src/smallestai/waves/tts/types/tts_request_message_model.py b/src/smallestai/speech/tts/types/tts_request_message_model.py similarity index 100% rename from src/smallestai/waves/tts/types/tts_request_message_model.py rename to src/smallestai/speech/tts/types/tts_request_message_model.py diff --git a/src/smallestai/waves/tts/types/tts_request_message_number_pronunciation_language.py b/src/smallestai/speech/tts/types/tts_request_message_number_pronunciation_language.py similarity index 100% rename from src/smallestai/waves/tts/types/tts_request_message_number_pronunciation_language.py rename to src/smallestai/speech/tts/types/tts_request_message_number_pronunciation_language.py diff --git a/src/smallestai/waves/tts/types/tts_response_message.py b/src/smallestai/speech/tts/types/tts_response_message.py similarity index 100% rename from src/smallestai/waves/tts/types/tts_response_message.py rename to src/smallestai/speech/tts/types/tts_response_message.py diff --git a/src/smallestai/waves/tts/types/tts_response_message_data.py b/src/smallestai/speech/tts/types/tts_response_message_data.py similarity index 100% rename from src/smallestai/waves/tts/types/tts_response_message_data.py rename to src/smallestai/speech/tts/types/tts_response_message_data.py diff --git a/src/smallestai/waves/tts/types/tts_response_message_status.py b/src/smallestai/speech/tts/types/tts_response_message_status.py similarity index 100% rename from src/smallestai/waves/tts/types/tts_response_message_status.py rename to src/smallestai/speech/tts/types/tts_response_message_status.py diff --git a/src/smallestai/waves/types/__init__.py b/src/smallestai/speech/types/__init__.py similarity index 65% rename from src/smallestai/waves/types/__init__.py rename to src/smallestai/speech/types/__init__.py index 28f21ea45..fe682a093 100644 --- a/src/smallestai/waves/types/__init__.py +++ b/src/smallestai/speech/types/__init__.py @@ -9,7 +9,6 @@ from .async_accepted import AsyncAccepted from .audio_chunk import AudioChunk from .audio_chunk_data import AudioChunkData - from .audio_chunk_status import AudioChunkStatus from .bad_request_error_body import BadRequestErrorBody from .chat_completion import ChatCompletion from .chat_completion_choices_item import ChatCompletionChoicesItem @@ -23,11 +22,11 @@ from .conversation_item_role import ConversationItemRole from .conversation_item_status import ConversationItemStatus from .conversation_item_type import ConversationItemType - from .create_voice_clone_waves_request_model import CreateVoiceCloneWavesRequestModel - from .create_voice_clone_waves_response import CreateVoiceCloneWavesResponse - from .create_voice_clone_waves_response_data import CreateVoiceCloneWavesResponseData - from .create_voice_clone_waves_response_data_samples_item import CreateVoiceCloneWavesResponseDataSamplesItem - from .create_voice_clone_waves_response_data_status import CreateVoiceCloneWavesResponseDataStatus + from .create_voice_clone_speech_request_model import CreateVoiceCloneSpeechRequestModel + from .create_voice_clone_speech_response import CreateVoiceCloneSpeechResponse + from .create_voice_clone_speech_response_data import CreateVoiceCloneSpeechResponseData + from .create_voice_clone_speech_response_data_samples_item import CreateVoiceCloneSpeechResponseDataSamplesItem + from .create_voice_clone_speech_response_data_status import CreateVoiceCloneSpeechResponseDataStatus from .delete_pronunciation_dict_response import DeletePronunciationDictResponse from .electron_message import ElectronMessage from .electron_tool_call import ElectronToolCall @@ -39,10 +38,10 @@ from .error_response import ErrorResponse from .error_response_error import ErrorResponseError from .error_response_status import ErrorResponseStatus - from .get_voices_waves_request_model import GetVoicesWavesRequestModel - from .get_voices_waves_response import GetVoicesWavesResponse - from .get_voices_waves_response_voices_item import GetVoicesWavesResponseVoicesItem - from .get_voices_waves_response_voices_item_tags import GetVoicesWavesResponseVoicesItemTags + from .get_voices_speech_request_model import GetVoicesSpeechRequestModel + from .get_voices_speech_response import GetVoicesSpeechResponse + from .get_voices_speech_response_voices_item import GetVoicesSpeechResponseVoicesItem + from .get_voices_speech_response_voices_item_tags import GetVoicesSpeechResponseVoicesItemTags from .internal_server_error_body import InternalServerErrorBody from .internal_server_error_body_error_code import InternalServerErrorBodyErrorCode from .lightning_large_request import LightningLargeRequest @@ -54,23 +53,30 @@ from .lightningv2request import Lightningv2Request from .lightningv2request_language import Lightningv2RequestLanguage from .lightningv2request_output_format import Lightningv2RequestOutputFormat - from .list_voice_clones_waves_response import ListVoiceClonesWavesResponse - from .list_voice_clones_waves_response_data_item import ListVoiceClonesWavesResponseDataItem - from .list_voice_clones_waves_response_data_item_cloning_type import ListVoiceClonesWavesResponseDataItemCloningType - from .list_voice_clones_waves_response_data_item_status import ListVoiceClonesWavesResponseDataItemStatus + from .list_voice_clones_speech_response import ListVoiceClonesSpeechResponse + from .list_voice_clones_speech_response_data_item import ListVoiceClonesSpeechResponseDataItem + from .list_voice_clones_speech_response_data_item_cloning_type import ( + ListVoiceClonesSpeechResponseDataItemCloningType, + ) + from .list_voice_clones_speech_response_data_item_status import ListVoiceClonesSpeechResponseDataItemStatus from .pronunciation_dict import PronunciationDict from .pronunciation_item import PronunciationItem from .session_config import SessionConfig from .session_config_voice import SessionConfigVoice - from .streaming_tts_config import StreamingTtsConfig from .stt_error_response import SttErrorResponse - from .synthesize_lightning_large_waves_request_output_format import SynthesizeLightningLargeWavesRequestOutputFormat - from .synthesize_lightning_v2waves_request_output_format import SynthesizeLightningV2WavesRequestOutputFormat - from .synthesize_lightning_waves_request_output_format import SynthesizeLightningWavesRequestOutputFormat - from .synthesize_sse_lightning_large_waves_request_output_format import ( - SynthesizeSseLightningLargeWavesRequestOutputFormat, + from .synthesize_lightning_large_speech_request_output_format import ( + SynthesizeLightningLargeSpeechRequestOutputFormat, + ) + from .synthesize_lightning_speech_request_output_format import SynthesizeLightningSpeechRequestOutputFormat + from .synthesize_lightning_v2speech_request_output_format import SynthesizeLightningV2SpeechRequestOutputFormat + from .synthesize_sse_lightning_large_speech_request_output_format import ( + SynthesizeSseLightningLargeSpeechRequestOutputFormat, + ) + from .synthesize_sse_lightning_v2speech_request_output_format import ( + SynthesizeSseLightningV2SpeechRequestOutputFormat, ) - from .synthesize_sse_lightning_v2waves_request_output_format import SynthesizeSseLightningV2WavesRequestOutputFormat + from .synthesize_sse_tts_speech_request_x_expire_content import SynthesizeSseTtsSpeechRequestXExpireContent + from .synthesize_tts_speech_request_x_expire_content import SynthesizeTtsSpeechRequestXExpireContent from .tool import Tool from .tool_type import ToolType from .transcription_response import TranscriptionResponse @@ -91,7 +97,6 @@ "AsyncAccepted": ".async_accepted", "AudioChunk": ".audio_chunk", "AudioChunkData": ".audio_chunk_data", - "AudioChunkStatus": ".audio_chunk_status", "BadRequestErrorBody": ".bad_request_error_body", "ChatCompletion": ".chat_completion", "ChatCompletionChoicesItem": ".chat_completion_choices_item", @@ -105,11 +110,11 @@ "ConversationItemRole": ".conversation_item_role", "ConversationItemStatus": ".conversation_item_status", "ConversationItemType": ".conversation_item_type", - "CreateVoiceCloneWavesRequestModel": ".create_voice_clone_waves_request_model", - "CreateVoiceCloneWavesResponse": ".create_voice_clone_waves_response", - "CreateVoiceCloneWavesResponseData": ".create_voice_clone_waves_response_data", - "CreateVoiceCloneWavesResponseDataSamplesItem": ".create_voice_clone_waves_response_data_samples_item", - "CreateVoiceCloneWavesResponseDataStatus": ".create_voice_clone_waves_response_data_status", + "CreateVoiceCloneSpeechRequestModel": ".create_voice_clone_speech_request_model", + "CreateVoiceCloneSpeechResponse": ".create_voice_clone_speech_response", + "CreateVoiceCloneSpeechResponseData": ".create_voice_clone_speech_response_data", + "CreateVoiceCloneSpeechResponseDataSamplesItem": ".create_voice_clone_speech_response_data_samples_item", + "CreateVoiceCloneSpeechResponseDataStatus": ".create_voice_clone_speech_response_data_status", "DeletePronunciationDictResponse": ".delete_pronunciation_dict_response", "ElectronMessage": ".electron_message", "ElectronToolCall": ".electron_tool_call", @@ -121,10 +126,10 @@ "ErrorResponse": ".error_response", "ErrorResponseError": ".error_response_error", "ErrorResponseStatus": ".error_response_status", - "GetVoicesWavesRequestModel": ".get_voices_waves_request_model", - "GetVoicesWavesResponse": ".get_voices_waves_response", - "GetVoicesWavesResponseVoicesItem": ".get_voices_waves_response_voices_item", - "GetVoicesWavesResponseVoicesItemTags": ".get_voices_waves_response_voices_item_tags", + "GetVoicesSpeechRequestModel": ".get_voices_speech_request_model", + "GetVoicesSpeechResponse": ".get_voices_speech_response", + "GetVoicesSpeechResponseVoicesItem": ".get_voices_speech_response_voices_item", + "GetVoicesSpeechResponseVoicesItemTags": ".get_voices_speech_response_voices_item_tags", "InternalServerErrorBody": ".internal_server_error_body", "InternalServerErrorBodyErrorCode": ".internal_server_error_body_error_code", "LightningLargeRequest": ".lightning_large_request", @@ -136,21 +141,22 @@ "Lightningv2Request": ".lightningv2request", "Lightningv2RequestLanguage": ".lightningv2request_language", "Lightningv2RequestOutputFormat": ".lightningv2request_output_format", - "ListVoiceClonesWavesResponse": ".list_voice_clones_waves_response", - "ListVoiceClonesWavesResponseDataItem": ".list_voice_clones_waves_response_data_item", - "ListVoiceClonesWavesResponseDataItemCloningType": ".list_voice_clones_waves_response_data_item_cloning_type", - "ListVoiceClonesWavesResponseDataItemStatus": ".list_voice_clones_waves_response_data_item_status", + "ListVoiceClonesSpeechResponse": ".list_voice_clones_speech_response", + "ListVoiceClonesSpeechResponseDataItem": ".list_voice_clones_speech_response_data_item", + "ListVoiceClonesSpeechResponseDataItemCloningType": ".list_voice_clones_speech_response_data_item_cloning_type", + "ListVoiceClonesSpeechResponseDataItemStatus": ".list_voice_clones_speech_response_data_item_status", "PronunciationDict": ".pronunciation_dict", "PronunciationItem": ".pronunciation_item", "SessionConfig": ".session_config", "SessionConfigVoice": ".session_config_voice", - "StreamingTtsConfig": ".streaming_tts_config", "SttErrorResponse": ".stt_error_response", - "SynthesizeLightningLargeWavesRequestOutputFormat": ".synthesize_lightning_large_waves_request_output_format", - "SynthesizeLightningV2WavesRequestOutputFormat": ".synthesize_lightning_v2waves_request_output_format", - "SynthesizeLightningWavesRequestOutputFormat": ".synthesize_lightning_waves_request_output_format", - "SynthesizeSseLightningLargeWavesRequestOutputFormat": ".synthesize_sse_lightning_large_waves_request_output_format", - "SynthesizeSseLightningV2WavesRequestOutputFormat": ".synthesize_sse_lightning_v2waves_request_output_format", + "SynthesizeLightningLargeSpeechRequestOutputFormat": ".synthesize_lightning_large_speech_request_output_format", + "SynthesizeLightningSpeechRequestOutputFormat": ".synthesize_lightning_speech_request_output_format", + "SynthesizeLightningV2SpeechRequestOutputFormat": ".synthesize_lightning_v2speech_request_output_format", + "SynthesizeSseLightningLargeSpeechRequestOutputFormat": ".synthesize_sse_lightning_large_speech_request_output_format", + "SynthesizeSseLightningV2SpeechRequestOutputFormat": ".synthesize_sse_lightning_v2speech_request_output_format", + "SynthesizeSseTtsSpeechRequestXExpireContent": ".synthesize_sse_tts_speech_request_x_expire_content", + "SynthesizeTtsSpeechRequestXExpireContent": ".synthesize_tts_speech_request_x_expire_content", "Tool": ".tool", "ToolType": ".tool_type", "TranscriptionResponse": ".transcription_response", @@ -195,7 +201,6 @@ def __dir__(): "AsyncAccepted", "AudioChunk", "AudioChunkData", - "AudioChunkStatus", "BadRequestErrorBody", "ChatCompletion", "ChatCompletionChoicesItem", @@ -209,11 +214,11 @@ def __dir__(): "ConversationItemRole", "ConversationItemStatus", "ConversationItemType", - "CreateVoiceCloneWavesRequestModel", - "CreateVoiceCloneWavesResponse", - "CreateVoiceCloneWavesResponseData", - "CreateVoiceCloneWavesResponseDataSamplesItem", - "CreateVoiceCloneWavesResponseDataStatus", + "CreateVoiceCloneSpeechRequestModel", + "CreateVoiceCloneSpeechResponse", + "CreateVoiceCloneSpeechResponseData", + "CreateVoiceCloneSpeechResponseDataSamplesItem", + "CreateVoiceCloneSpeechResponseDataStatus", "DeletePronunciationDictResponse", "ElectronMessage", "ElectronToolCall", @@ -225,10 +230,10 @@ def __dir__(): "ErrorResponse", "ErrorResponseError", "ErrorResponseStatus", - "GetVoicesWavesRequestModel", - "GetVoicesWavesResponse", - "GetVoicesWavesResponseVoicesItem", - "GetVoicesWavesResponseVoicesItemTags", + "GetVoicesSpeechRequestModel", + "GetVoicesSpeechResponse", + "GetVoicesSpeechResponseVoicesItem", + "GetVoicesSpeechResponseVoicesItemTags", "InternalServerErrorBody", "InternalServerErrorBodyErrorCode", "LightningLargeRequest", @@ -240,21 +245,22 @@ def __dir__(): "Lightningv2Request", "Lightningv2RequestLanguage", "Lightningv2RequestOutputFormat", - "ListVoiceClonesWavesResponse", - "ListVoiceClonesWavesResponseDataItem", - "ListVoiceClonesWavesResponseDataItemCloningType", - "ListVoiceClonesWavesResponseDataItemStatus", + "ListVoiceClonesSpeechResponse", + "ListVoiceClonesSpeechResponseDataItem", + "ListVoiceClonesSpeechResponseDataItemCloningType", + "ListVoiceClonesSpeechResponseDataItemStatus", "PronunciationDict", "PronunciationItem", "SessionConfig", "SessionConfigVoice", - "StreamingTtsConfig", "SttErrorResponse", - "SynthesizeLightningLargeWavesRequestOutputFormat", - "SynthesizeLightningV2WavesRequestOutputFormat", - "SynthesizeLightningWavesRequestOutputFormat", - "SynthesizeSseLightningLargeWavesRequestOutputFormat", - "SynthesizeSseLightningV2WavesRequestOutputFormat", + "SynthesizeLightningLargeSpeechRequestOutputFormat", + "SynthesizeLightningSpeechRequestOutputFormat", + "SynthesizeLightningV2SpeechRequestOutputFormat", + "SynthesizeSseLightningLargeSpeechRequestOutputFormat", + "SynthesizeSseLightningV2SpeechRequestOutputFormat", + "SynthesizeSseTtsSpeechRequestXExpireContent", + "SynthesizeTtsSpeechRequestXExpireContent", "Tool", "ToolType", "TranscriptionResponse", diff --git a/src/smallestai/waves/types/async_accepted.py b/src/smallestai/speech/types/async_accepted.py similarity index 100% rename from src/smallestai/waves/types/async_accepted.py rename to src/smallestai/speech/types/async_accepted.py diff --git a/src/smallestai/waves/types/audio_chunk.py b/src/smallestai/speech/types/audio_chunk.py similarity index 74% rename from src/smallestai/waves/types/audio_chunk.py rename to src/smallestai/speech/types/audio_chunk.py index a58b4da9f..6590b906f 100644 --- a/src/smallestai/waves/types/audio_chunk.py +++ b/src/smallestai/speech/types/audio_chunk.py @@ -6,17 +6,10 @@ from ...core.pydantic_utilities import IS_PYDANTIC_V2 from ...core.unchecked_base_model import UncheckedBaseModel from .audio_chunk_data import AudioChunkData -from .audio_chunk_status import AudioChunkStatus class AudioChunk(UncheckedBaseModel): - request_id: str = pydantic.Field() - """ - Unique identifier for the TTS request - """ - - status: AudioChunkStatus - data: AudioChunkData + data: typing.Optional[AudioChunkData] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/smallestai/waves/types/audio_chunk_data.py b/src/smallestai/speech/types/audio_chunk_data.py similarity index 65% rename from src/smallestai/waves/types/audio_chunk_data.py rename to src/smallestai/speech/types/audio_chunk_data.py index 5a63ab72a..0b0415d4d 100644 --- a/src/smallestai/waves/types/audio_chunk_data.py +++ b/src/smallestai/speech/types/audio_chunk_data.py @@ -8,19 +8,9 @@ class AudioChunkData(UncheckedBaseModel): - audio: str = pydantic.Field() + audio: typing.Optional[str] = pydantic.Field(default=None) """ - Base64-encoded PCM audio chunk - """ - - format: typing.Optional[str] = pydantic.Field(default=None) - """ - Audio format (PCM 16-bit mono) - """ - - sample_rate: typing.Optional[int] = pydantic.Field(default=None) - """ - Audio sample rate in Hz + Base64-encoded audio chunk """ if IS_PYDANTIC_V2: diff --git a/src/smallestai/waves/types/audio_chunk_status.py b/src/smallestai/speech/types/audio_chunk_status.py similarity index 100% rename from src/smallestai/waves/types/audio_chunk_status.py rename to src/smallestai/speech/types/audio_chunk_status.py diff --git a/src/smallestai/waves/types/bad_request_error_body.py b/src/smallestai/speech/types/bad_request_error_body.py similarity index 100% rename from src/smallestai/waves/types/bad_request_error_body.py rename to src/smallestai/speech/types/bad_request_error_body.py diff --git a/src/smallestai/waves/types/chat_completion.py b/src/smallestai/speech/types/chat_completion.py similarity index 100% rename from src/smallestai/waves/types/chat_completion.py rename to src/smallestai/speech/types/chat_completion.py diff --git a/src/smallestai/waves/types/chat_completion_choices_item.py b/src/smallestai/speech/types/chat_completion_choices_item.py similarity index 100% rename from src/smallestai/waves/types/chat_completion_choices_item.py rename to src/smallestai/speech/types/chat_completion_choices_item.py diff --git a/src/smallestai/waves/types/chat_completion_choices_item_finish_reason.py b/src/smallestai/speech/types/chat_completion_choices_item_finish_reason.py similarity index 100% rename from src/smallestai/waves/types/chat_completion_choices_item_finish_reason.py rename to src/smallestai/speech/types/chat_completion_choices_item_finish_reason.py diff --git a/src/smallestai/waves/types/chat_completion_object.py b/src/smallestai/speech/types/chat_completion_object.py similarity index 100% rename from src/smallestai/waves/types/chat_completion_object.py rename to src/smallestai/speech/types/chat_completion_object.py diff --git a/src/smallestai/speech/types/completion_status.py b/src/smallestai/speech/types/completion_status.py new file mode 100644 index 000000000..f5e8aafed --- /dev/null +++ b/src/smallestai/speech/types/completion_status.py @@ -0,0 +1,44 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ...core.pydantic_utilities import IS_PYDANTIC_V2 +from ...core.unchecked_base_model import UncheckedBaseModel +from .completion_status_status import CompletionStatusStatus + + +class CompletionStatus(UncheckedBaseModel): + session_id: typing.Optional[str] = pydantic.Field(default=None) + """ + Internal session identifier (system-generated). + """ + + request_id: typing.Optional[str] = pydantic.Field(default=None) + """ + Internal request identifier (system-generated). + """ + + external_session_id: typing.Optional[str] = pydantic.Field(default=None) + """ + Echoed client-provided session_id. + """ + + external_request_id: typing.Optional[str] = pydantic.Field(default=None) + """ + Echoed client-provided request_id. + """ + + status: typing.Optional[CompletionStatusStatus] = pydantic.Field(default=None) + """ + Indicates that the streaming is complete + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/smallestai/waves/types/completion_status_status.py b/src/smallestai/speech/types/completion_status_status.py similarity index 100% rename from src/smallestai/waves/types/completion_status_status.py rename to src/smallestai/speech/types/completion_status_status.py diff --git a/src/smallestai/waves/types/conversation_item.py b/src/smallestai/speech/types/conversation_item.py similarity index 100% rename from src/smallestai/waves/types/conversation_item.py rename to src/smallestai/speech/types/conversation_item.py diff --git a/src/smallestai/waves/types/conversation_item_content_item.py b/src/smallestai/speech/types/conversation_item_content_item.py similarity index 100% rename from src/smallestai/waves/types/conversation_item_content_item.py rename to src/smallestai/speech/types/conversation_item_content_item.py diff --git a/src/smallestai/waves/types/conversation_item_content_item_type.py b/src/smallestai/speech/types/conversation_item_content_item_type.py similarity index 100% rename from src/smallestai/waves/types/conversation_item_content_item_type.py rename to src/smallestai/speech/types/conversation_item_content_item_type.py diff --git a/src/smallestai/waves/types/conversation_item_role.py b/src/smallestai/speech/types/conversation_item_role.py similarity index 100% rename from src/smallestai/waves/types/conversation_item_role.py rename to src/smallestai/speech/types/conversation_item_role.py diff --git a/src/smallestai/waves/types/conversation_item_status.py b/src/smallestai/speech/types/conversation_item_status.py similarity index 100% rename from src/smallestai/waves/types/conversation_item_status.py rename to src/smallestai/speech/types/conversation_item_status.py diff --git a/src/smallestai/waves/types/conversation_item_type.py b/src/smallestai/speech/types/conversation_item_type.py similarity index 100% rename from src/smallestai/waves/types/conversation_item_type.py rename to src/smallestai/speech/types/conversation_item_type.py diff --git a/src/smallestai/speech/types/create_voice_clone_speech_request_model.py b/src/smallestai/speech/types/create_voice_clone_speech_request_model.py new file mode 100644 index 000000000..421901df8 --- /dev/null +++ b/src/smallestai/speech/types/create_voice_clone_speech_request_model.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +CreateVoiceCloneSpeechRequestModel = typing.Union[typing.Literal["lightning-v3.1"], typing.Any] diff --git a/src/smallestai/speech/types/create_voice_clone_speech_response.py b/src/smallestai/speech/types/create_voice_clone_speech_response.py new file mode 100644 index 000000000..e103d2194 --- /dev/null +++ b/src/smallestai/speech/types/create_voice_clone_speech_response.py @@ -0,0 +1,22 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ...core.pydantic_utilities import IS_PYDANTIC_V2 +from ...core.unchecked_base_model import UncheckedBaseModel +from .create_voice_clone_speech_response_data import CreateVoiceCloneSpeechResponseData + + +class CreateVoiceCloneSpeechResponse(UncheckedBaseModel): + message: typing.Optional[str] = None + data: typing.Optional[CreateVoiceCloneSpeechResponseData] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/smallestai/speech/types/create_voice_clone_speech_response_data.py b/src/smallestai/speech/types/create_voice_clone_speech_response_data.py new file mode 100644 index 000000000..605ad4b31 --- /dev/null +++ b/src/smallestai/speech/types/create_voice_clone_speech_response_data.py @@ -0,0 +1,52 @@ +# This file was auto-generated by Fern from our API Definition. + +import datetime as dt +import typing + +import pydantic +import typing_extensions +from ...core.pydantic_utilities import IS_PYDANTIC_V2 +from ...core.serialization import FieldMetadata +from ...core.unchecked_base_model import UncheckedBaseModel +from .create_voice_clone_speech_response_data_samples_item import CreateVoiceCloneSpeechResponseDataSamplesItem +from .create_voice_clone_speech_response_data_status import CreateVoiceCloneSpeechResponseDataStatus + + +class CreateVoiceCloneSpeechResponseData(UncheckedBaseModel): + voice_id: typing_extensions.Annotated[ + typing.Optional[str], + FieldMetadata(alias="voiceId"), + pydantic.Field(alias="voiceId", description="Unique voice ID. Pass this as `voice_id` in TTS requests."), + ] = None + display_name: typing_extensions.Annotated[ + typing.Optional[str], FieldMetadata(alias="displayName"), pydantic.Field(alias="displayName") + ] = None + model: typing.Optional[str] = pydantic.Field(default=None) + """ + Internal model document for the cloned voice. + """ + + status: typing.Optional[CreateVoiceCloneSpeechResponseDataStatus] = None + language: typing.Optional[str] = None + audio_file_names: typing_extensions.Annotated[ + typing.Optional[typing.List[str]], FieldMetadata(alias="audioFileNames"), pydantic.Field(alias="audioFileNames") + ] = None + created_at: typing_extensions.Annotated[ + typing.Optional[dt.datetime], FieldMetadata(alias="createdAt"), pydantic.Field(alias="createdAt") + ] = None + organization_id: typing_extensions.Annotated[ + typing.Optional[str], FieldMetadata(alias="organizationId"), pydantic.Field(alias="organizationId") + ] = None + samples: typing.Optional[typing.List[CreateVoiceCloneSpeechResponseDataSamplesItem]] = pydantic.Field(default=None) + """ + Pre-generated sample audio clips in the cloned voice. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/smallestai/speech/types/create_voice_clone_speech_response_data_samples_item.py b/src/smallestai/speech/types/create_voice_clone_speech_response_data_samples_item.py new file mode 100644 index 000000000..1485deec5 --- /dev/null +++ b/src/smallestai/speech/types/create_voice_clone_speech_response_data_samples_item.py @@ -0,0 +1,31 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ...core.pydantic_utilities import IS_PYDANTIC_V2 +from ...core.serialization import FieldMetadata +from ...core.unchecked_base_model import UncheckedBaseModel + + +class CreateVoiceCloneSpeechResponseDataSamplesItem(UncheckedBaseModel): + text: typing.Optional[str] = pydantic.Field(default=None) + """ + Text that was synthesized. + """ + + audio_url: typing_extensions.Annotated[ + typing.Optional[str], + FieldMetadata(alias="audioUrl"), + pydantic.Field(alias="audioUrl", description="Signed URL to the generated sample audio."), + ] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/smallestai/speech/types/create_voice_clone_speech_response_data_status.py b/src/smallestai/speech/types/create_voice_clone_speech_response_data_status.py new file mode 100644 index 000000000..95b7828be --- /dev/null +++ b/src/smallestai/speech/types/create_voice_clone_speech_response_data_status.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +CreateVoiceCloneSpeechResponseDataStatus = typing.Union[ + typing.Literal["pending", "processing", "completed", "failed"], typing.Any +] diff --git a/src/smallestai/waves/types/create_voice_clone_waves_request_model.py b/src/smallestai/speech/types/create_voice_clone_waves_request_model.py similarity index 100% rename from src/smallestai/waves/types/create_voice_clone_waves_request_model.py rename to src/smallestai/speech/types/create_voice_clone_waves_request_model.py diff --git a/src/smallestai/waves/types/create_voice_clone_waves_response.py b/src/smallestai/speech/types/create_voice_clone_waves_response.py similarity index 100% rename from src/smallestai/waves/types/create_voice_clone_waves_response.py rename to src/smallestai/speech/types/create_voice_clone_waves_response.py diff --git a/src/smallestai/waves/types/create_voice_clone_waves_response_data.py b/src/smallestai/speech/types/create_voice_clone_waves_response_data.py similarity index 100% rename from src/smallestai/waves/types/create_voice_clone_waves_response_data.py rename to src/smallestai/speech/types/create_voice_clone_waves_response_data.py diff --git a/src/smallestai/waves/types/create_voice_clone_waves_response_data_samples_item.py b/src/smallestai/speech/types/create_voice_clone_waves_response_data_samples_item.py similarity index 100% rename from src/smallestai/waves/types/create_voice_clone_waves_response_data_samples_item.py rename to src/smallestai/speech/types/create_voice_clone_waves_response_data_samples_item.py diff --git a/src/smallestai/waves/types/create_voice_clone_waves_response_data_status.py b/src/smallestai/speech/types/create_voice_clone_waves_response_data_status.py similarity index 100% rename from src/smallestai/waves/types/create_voice_clone_waves_response_data_status.py rename to src/smallestai/speech/types/create_voice_clone_waves_response_data_status.py diff --git a/src/smallestai/waves/types/delete_pronunciation_dict_response.py b/src/smallestai/speech/types/delete_pronunciation_dict_response.py similarity index 100% rename from src/smallestai/waves/types/delete_pronunciation_dict_response.py rename to src/smallestai/speech/types/delete_pronunciation_dict_response.py diff --git a/src/smallestai/waves/types/electron_message.py b/src/smallestai/speech/types/electron_message.py similarity index 100% rename from src/smallestai/waves/types/electron_message.py rename to src/smallestai/speech/types/electron_message.py diff --git a/src/smallestai/waves/types/electron_tool_call.py b/src/smallestai/speech/types/electron_tool_call.py similarity index 100% rename from src/smallestai/waves/types/electron_tool_call.py rename to src/smallestai/speech/types/electron_tool_call.py diff --git a/src/smallestai/waves/types/electron_tool_call_function.py b/src/smallestai/speech/types/electron_tool_call_function.py similarity index 100% rename from src/smallestai/waves/types/electron_tool_call_function.py rename to src/smallestai/speech/types/electron_tool_call_function.py diff --git a/src/smallestai/waves/types/electron_tool_call_type.py b/src/smallestai/speech/types/electron_tool_call_type.py similarity index 100% rename from src/smallestai/waves/types/electron_tool_call_type.py rename to src/smallestai/speech/types/electron_tool_call_type.py diff --git a/src/smallestai/waves/types/error.py b/src/smallestai/speech/types/error.py similarity index 100% rename from src/smallestai/waves/types/error.py rename to src/smallestai/speech/types/error.py diff --git a/src/smallestai/waves/types/error_error.py b/src/smallestai/speech/types/error_error.py similarity index 100% rename from src/smallestai/waves/types/error_error.py rename to src/smallestai/speech/types/error_error.py diff --git a/src/smallestai/waves/types/error_error_details_item.py b/src/smallestai/speech/types/error_error_details_item.py similarity index 100% rename from src/smallestai/waves/types/error_error_details_item.py rename to src/smallestai/speech/types/error_error_details_item.py diff --git a/src/smallestai/waves/types/error_response.py b/src/smallestai/speech/types/error_response.py similarity index 80% rename from src/smallestai/waves/types/error_response.py rename to src/smallestai/speech/types/error_response.py index a175802fb..8bc5d0dd0 100644 --- a/src/smallestai/waves/types/error_response.py +++ b/src/smallestai/speech/types/error_response.py @@ -10,13 +10,8 @@ class ErrorResponse(UncheckedBaseModel): - request_id: str = pydantic.Field() - """ - Unique identifier for the failed request - """ - - status: ErrorResponseStatus - error: ErrorResponseError + status: typing.Optional[ErrorResponseStatus] = None + error: typing.Optional[ErrorResponseError] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/smallestai/waves/types/error_response_error.py b/src/smallestai/speech/types/error_response_error.py similarity index 76% rename from src/smallestai/waves/types/error_response_error.py rename to src/smallestai/speech/types/error_response_error.py index f94a59a0b..ca2daa87f 100644 --- a/src/smallestai/waves/types/error_response_error.py +++ b/src/smallestai/speech/types/error_response_error.py @@ -8,15 +8,8 @@ class ErrorResponseError(UncheckedBaseModel): - message: str = pydantic.Field() - """ - Human-readable error message - """ - - code: str = pydantic.Field() - """ - Machine-readable error code - """ + message: typing.Optional[str] = None + code: typing.Optional[str] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/smallestai/waves/types/error_response_status.py b/src/smallestai/speech/types/error_response_status.py similarity index 100% rename from src/smallestai/waves/types/error_response_status.py rename to src/smallestai/speech/types/error_response_status.py diff --git a/src/smallestai/speech/types/get_voices_speech_request_model.py b/src/smallestai/speech/types/get_voices_speech_request_model.py new file mode 100644 index 000000000..b4a2b160f --- /dev/null +++ b/src/smallestai/speech/types/get_voices_speech_request_model.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +GetVoicesSpeechRequestModel = typing.Union[typing.Literal["lightning-v3.1"], typing.Any] diff --git a/src/smallestai/waves/types/completion_status.py b/src/smallestai/speech/types/get_voices_speech_response.py similarity index 62% rename from src/smallestai/waves/types/completion_status.py rename to src/smallestai/speech/types/get_voices_speech_response.py index abf0cf8ae..6f409106a 100644 --- a/src/smallestai/waves/types/completion_status.py +++ b/src/smallestai/speech/types/get_voices_speech_response.py @@ -5,18 +5,13 @@ import pydantic from ...core.pydantic_utilities import IS_PYDANTIC_V2 from ...core.unchecked_base_model import UncheckedBaseModel -from .completion_status_status import CompletionStatusStatus +from .get_voices_speech_response_voices_item import GetVoicesSpeechResponseVoicesItem -class CompletionStatus(UncheckedBaseModel): - request_id: str = pydantic.Field() +class GetVoicesSpeechResponse(UncheckedBaseModel): + voices: typing.Optional[typing.List[GetVoicesSpeechResponseVoicesItem]] = pydantic.Field(default=None) """ - Unique identifier for the TTS request - """ - - status: CompletionStatusStatus = pydantic.Field() - """ - Indicates that the streaming synthesis is complete + List of available voices. """ if IS_PYDANTIC_V2: diff --git a/src/smallestai/speech/types/get_voices_speech_response_voices_item.py b/src/smallestai/speech/types/get_voices_speech_response_voices_item.py new file mode 100644 index 000000000..4d1192d6d --- /dev/null +++ b/src/smallestai/speech/types/get_voices_speech_response_voices_item.py @@ -0,0 +1,39 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ...core.pydantic_utilities import IS_PYDANTIC_V2 +from ...core.serialization import FieldMetadata +from ...core.unchecked_base_model import UncheckedBaseModel +from .get_voices_speech_response_voices_item_tags import GetVoicesSpeechResponseVoicesItemTags + + +class GetVoicesSpeechResponseVoicesItem(UncheckedBaseModel): + voice_id: typing_extensions.Annotated[ + str, + FieldMetadata(alias="voiceId"), + pydantic.Field( + alias="voiceId", + description="Unique Voice ID. Pass this value as `voice_id` on `POST /waves/v1/tts` (or the streaming route).", + ), + ] + display_name: typing_extensions.Annotated[ + str, + FieldMetadata(alias="displayName"), + pydantic.Field(alias="displayName", description="Display name for the voice."), + ] + tags: typing.Optional[GetVoicesSpeechResponseVoicesItemTags] = pydantic.Field(default=None) + """ + Tag metadata used to identify the voice's characteristics. Filter on these fields to find voices for a target language, accent, or use case. Fields may be empty on some voices. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/smallestai/speech/types/get_voices_speech_response_voices_item_tags.py b/src/smallestai/speech/types/get_voices_speech_response_voices_item_tags.py new file mode 100644 index 000000000..8741c35ce --- /dev/null +++ b/src/smallestai/speech/types/get_voices_speech_response_voices_item_tags.py @@ -0,0 +1,52 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ...core.pydantic_utilities import IS_PYDANTIC_V2 +from ...core.unchecked_base_model import UncheckedBaseModel + + +class GetVoicesSpeechResponseVoicesItemTags(UncheckedBaseModel): + """ + Tag metadata used to identify the voice's characteristics. Filter on these fields to find voices for a target language, accent, or use case. Fields may be empty on some voices. + """ + + language: typing.Optional[typing.List[str]] = pydantic.Field(default=None) + """ + Languages the voice was trained on (e.g., `["english"]`, `["english", "hindi"]`). + """ + + accent: typing.Optional[str] = pydantic.Field(default=None) + """ + Accent of the voice (e.g., `american`, `british`, `indian`). + """ + + gender: typing.Optional[str] = pydantic.Field(default=None) + """ + Gender of the voice (`male` or `female`). + """ + + age: typing.Optional[str] = pydantic.Field(default=None) + """ + Age range of the voice (e.g., `young`, `middle aged`, `senior`). + """ + + emotions: typing.Optional[typing.List[str]] = pydantic.Field(default=None) + """ + Emotional ranges the voice supports. May be empty. + """ + + usecases: typing.Optional[typing.List[str]] = pydantic.Field(default=None) + """ + Recommended use cases for the voice (e.g., `conversational`, `narration`). + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/smallestai/waves/types/get_voices_waves_request_model.py b/src/smallestai/speech/types/get_voices_waves_request_model.py similarity index 100% rename from src/smallestai/waves/types/get_voices_waves_request_model.py rename to src/smallestai/speech/types/get_voices_waves_request_model.py diff --git a/src/smallestai/waves/types/get_voices_waves_response.py b/src/smallestai/speech/types/get_voices_waves_response.py similarity index 100% rename from src/smallestai/waves/types/get_voices_waves_response.py rename to src/smallestai/speech/types/get_voices_waves_response.py diff --git a/src/smallestai/waves/types/get_voices_waves_response_voices_item.py b/src/smallestai/speech/types/get_voices_waves_response_voices_item.py similarity index 100% rename from src/smallestai/waves/types/get_voices_waves_response_voices_item.py rename to src/smallestai/speech/types/get_voices_waves_response_voices_item.py diff --git a/src/smallestai/waves/types/get_voices_waves_response_voices_item_tags.py b/src/smallestai/speech/types/get_voices_waves_response_voices_item_tags.py similarity index 100% rename from src/smallestai/waves/types/get_voices_waves_response_voices_item_tags.py rename to src/smallestai/speech/types/get_voices_waves_response_voices_item_tags.py diff --git a/src/smallestai/waves/types/internal_server_error_body.py b/src/smallestai/speech/types/internal_server_error_body.py similarity index 100% rename from src/smallestai/waves/types/internal_server_error_body.py rename to src/smallestai/speech/types/internal_server_error_body.py diff --git a/src/smallestai/waves/types/internal_server_error_body_error_code.py b/src/smallestai/speech/types/internal_server_error_body_error_code.py similarity index 100% rename from src/smallestai/waves/types/internal_server_error_body_error_code.py rename to src/smallestai/speech/types/internal_server_error_body_error_code.py diff --git a/src/smallestai/waves/types/lightning_large_request.py b/src/smallestai/speech/types/lightning_large_request.py similarity index 100% rename from src/smallestai/waves/types/lightning_large_request.py rename to src/smallestai/speech/types/lightning_large_request.py diff --git a/src/smallestai/waves/types/lightning_large_request_language.py b/src/smallestai/speech/types/lightning_large_request_language.py similarity index 100% rename from src/smallestai/waves/types/lightning_large_request_language.py rename to src/smallestai/speech/types/lightning_large_request_language.py diff --git a/src/smallestai/waves/types/lightning_large_request_output_format.py b/src/smallestai/speech/types/lightning_large_request_output_format.py similarity index 100% rename from src/smallestai/waves/types/lightning_large_request_output_format.py rename to src/smallestai/speech/types/lightning_large_request_output_format.py diff --git a/src/smallestai/waves/types/lightning_request.py b/src/smallestai/speech/types/lightning_request.py similarity index 100% rename from src/smallestai/waves/types/lightning_request.py rename to src/smallestai/speech/types/lightning_request.py diff --git a/src/smallestai/waves/types/lightning_request_language.py b/src/smallestai/speech/types/lightning_request_language.py similarity index 100% rename from src/smallestai/waves/types/lightning_request_language.py rename to src/smallestai/speech/types/lightning_request_language.py diff --git a/src/smallestai/waves/types/lightning_request_output_format.py b/src/smallestai/speech/types/lightning_request_output_format.py similarity index 100% rename from src/smallestai/waves/types/lightning_request_output_format.py rename to src/smallestai/speech/types/lightning_request_output_format.py diff --git a/src/smallestai/waves/types/lightningv2request.py b/src/smallestai/speech/types/lightningv2request.py similarity index 100% rename from src/smallestai/waves/types/lightningv2request.py rename to src/smallestai/speech/types/lightningv2request.py diff --git a/src/smallestai/waves/types/lightningv2request_language.py b/src/smallestai/speech/types/lightningv2request_language.py similarity index 100% rename from src/smallestai/waves/types/lightningv2request_language.py rename to src/smallestai/speech/types/lightningv2request_language.py diff --git a/src/smallestai/waves/types/lightningv2request_output_format.py b/src/smallestai/speech/types/lightningv2request_output_format.py similarity index 100% rename from src/smallestai/waves/types/lightningv2request_output_format.py rename to src/smallestai/speech/types/lightningv2request_output_format.py diff --git a/src/smallestai/speech/types/list_voice_clones_speech_response.py b/src/smallestai/speech/types/list_voice_clones_speech_response.py new file mode 100644 index 000000000..8ae2f9f12 --- /dev/null +++ b/src/smallestai/speech/types/list_voice_clones_speech_response.py @@ -0,0 +1,21 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ...core.pydantic_utilities import IS_PYDANTIC_V2 +from ...core.unchecked_base_model import UncheckedBaseModel +from .list_voice_clones_speech_response_data_item import ListVoiceClonesSpeechResponseDataItem + + +class ListVoiceClonesSpeechResponse(UncheckedBaseModel): + data: typing.Optional[typing.List[ListVoiceClonesSpeechResponseDataItem]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/smallestai/speech/types/list_voice_clones_speech_response_data_item.py b/src/smallestai/speech/types/list_voice_clones_speech_response_data_item.py new file mode 100644 index 000000000..0553879f4 --- /dev/null +++ b/src/smallestai/speech/types/list_voice_clones_speech_response_data_item.py @@ -0,0 +1,54 @@ +# This file was auto-generated by Fern from our API Definition. + +import datetime as dt +import typing + +import pydantic +import typing_extensions +from ...core.pydantic_utilities import IS_PYDANTIC_V2 +from ...core.serialization import FieldMetadata +from ...core.unchecked_base_model import UncheckedBaseModel +from .list_voice_clones_speech_response_data_item_cloning_type import ListVoiceClonesSpeechResponseDataItemCloningType +from .list_voice_clones_speech_response_data_item_status import ListVoiceClonesSpeechResponseDataItemStatus + + +class ListVoiceClonesSpeechResponseDataItem(UncheckedBaseModel): + id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="_id"), pydantic.Field(alias="_id")] = ( + None + ) + voice_id: typing_extensions.Annotated[ + typing.Optional[str], FieldMetadata(alias="voiceId"), pydantic.Field(alias="voiceId") + ] = None + display_name: typing_extensions.Annotated[ + typing.Optional[str], FieldMetadata(alias="displayName"), pydantic.Field(alias="displayName") + ] = None + description: typing.Optional[str] = None + accent: typing.Optional[str] = None + tags: typing.Optional[typing.List[str]] = None + language: typing.Optional[str] = None + status: typing.Optional[ListVoiceClonesSpeechResponseDataItemStatus] = None + cloning_type: typing_extensions.Annotated[ + typing.Optional[ListVoiceClonesSpeechResponseDataItemCloningType], + FieldMetadata(alias="cloningType"), + pydantic.Field(alias="cloningType"), + ] = None + model_ids: typing_extensions.Annotated[ + typing.Optional[typing.List[str]], + FieldMetadata(alias="modelIds"), + pydantic.Field( + alias="modelIds", + description="Models this clone is compatible with. `lightning-v3.1`\nis the current default. Older entries may list\n`lightning-large`.", + ), + ] = None + created_at: typing_extensions.Annotated[ + typing.Optional[dt.datetime], FieldMetadata(alias="createdAt"), pydantic.Field(alias="createdAt") + ] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/smallestai/speech/types/list_voice_clones_speech_response_data_item_cloning_type.py b/src/smallestai/speech/types/list_voice_clones_speech_response_data_item_cloning_type.py new file mode 100644 index 000000000..205335f15 --- /dev/null +++ b/src/smallestai/speech/types/list_voice_clones_speech_response_data_item_cloning_type.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ListVoiceClonesSpeechResponseDataItemCloningType = typing.Union[typing.Literal["instant", "professional"], typing.Any] diff --git a/src/smallestai/speech/types/list_voice_clones_speech_response_data_item_status.py b/src/smallestai/speech/types/list_voice_clones_speech_response_data_item_status.py new file mode 100644 index 000000000..5eb8ee70d --- /dev/null +++ b/src/smallestai/speech/types/list_voice_clones_speech_response_data_item_status.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ListVoiceClonesSpeechResponseDataItemStatus = typing.Union[ + typing.Literal["pending", "processing", "completed", "failed"], typing.Any +] diff --git a/src/smallestai/waves/types/list_voice_clones_waves_response.py b/src/smallestai/speech/types/list_voice_clones_waves_response.py similarity index 100% rename from src/smallestai/waves/types/list_voice_clones_waves_response.py rename to src/smallestai/speech/types/list_voice_clones_waves_response.py diff --git a/src/smallestai/waves/types/list_voice_clones_waves_response_data_item.py b/src/smallestai/speech/types/list_voice_clones_waves_response_data_item.py similarity index 100% rename from src/smallestai/waves/types/list_voice_clones_waves_response_data_item.py rename to src/smallestai/speech/types/list_voice_clones_waves_response_data_item.py diff --git a/src/smallestai/waves/types/list_voice_clones_waves_response_data_item_cloning_type.py b/src/smallestai/speech/types/list_voice_clones_waves_response_data_item_cloning_type.py similarity index 100% rename from src/smallestai/waves/types/list_voice_clones_waves_response_data_item_cloning_type.py rename to src/smallestai/speech/types/list_voice_clones_waves_response_data_item_cloning_type.py diff --git a/src/smallestai/waves/types/list_voice_clones_waves_response_data_item_status.py b/src/smallestai/speech/types/list_voice_clones_waves_response_data_item_status.py similarity index 100% rename from src/smallestai/waves/types/list_voice_clones_waves_response_data_item_status.py rename to src/smallestai/speech/types/list_voice_clones_waves_response_data_item_status.py diff --git a/src/smallestai/waves/types/pronunciation_dict.py b/src/smallestai/speech/types/pronunciation_dict.py similarity index 100% rename from src/smallestai/waves/types/pronunciation_dict.py rename to src/smallestai/speech/types/pronunciation_dict.py diff --git a/src/smallestai/waves/types/pronunciation_item.py b/src/smallestai/speech/types/pronunciation_item.py similarity index 100% rename from src/smallestai/waves/types/pronunciation_item.py rename to src/smallestai/speech/types/pronunciation_item.py diff --git a/src/smallestai/waves/types/sample_rate.py b/src/smallestai/speech/types/sample_rate.py similarity index 100% rename from src/smallestai/waves/types/sample_rate.py rename to src/smallestai/speech/types/sample_rate.py diff --git a/src/smallestai/waves/types/session_config.py b/src/smallestai/speech/types/session_config.py similarity index 100% rename from src/smallestai/waves/types/session_config.py rename to src/smallestai/speech/types/session_config.py diff --git a/src/smallestai/waves/types/session_config_voice.py b/src/smallestai/speech/types/session_config_voice.py similarity index 100% rename from src/smallestai/waves/types/session_config_voice.py rename to src/smallestai/speech/types/session_config_voice.py diff --git a/src/smallestai/waves/types/streaming_tts_config.py b/src/smallestai/speech/types/streaming_tts_config.py similarity index 100% rename from src/smallestai/waves/types/streaming_tts_config.py rename to src/smallestai/speech/types/streaming_tts_config.py diff --git a/src/smallestai/waves/types/stt_error_response.py b/src/smallestai/speech/types/stt_error_response.py similarity index 100% rename from src/smallestai/waves/types/stt_error_response.py rename to src/smallestai/speech/types/stt_error_response.py diff --git a/src/smallestai/speech/types/synthesize_lightning_large_speech_request_output_format.py b/src/smallestai/speech/types/synthesize_lightning_large_speech_request_output_format.py new file mode 100644 index 000000000..2788e731b --- /dev/null +++ b/src/smallestai/speech/types/synthesize_lightning_large_speech_request_output_format.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +SynthesizeLightningLargeSpeechRequestOutputFormat = typing.Union[ + typing.Literal["pcm", "wav", "ulaw", "alaw"], typing.Any +] diff --git a/src/smallestai/waves/types/synthesize_lightning_large_waves_request_output_format.py b/src/smallestai/speech/types/synthesize_lightning_large_waves_request_output_format.py similarity index 100% rename from src/smallestai/waves/types/synthesize_lightning_large_waves_request_output_format.py rename to src/smallestai/speech/types/synthesize_lightning_large_waves_request_output_format.py diff --git a/src/smallestai/speech/types/synthesize_lightning_speech_request_output_format.py b/src/smallestai/speech/types/synthesize_lightning_speech_request_output_format.py new file mode 100644 index 000000000..4875e1aba --- /dev/null +++ b/src/smallestai/speech/types/synthesize_lightning_speech_request_output_format.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +SynthesizeLightningSpeechRequestOutputFormat = typing.Union[typing.Literal["pcm", "wav", "ulaw", "alaw"], typing.Any] diff --git a/src/smallestai/speech/types/synthesize_lightning_v2speech_request_output_format.py b/src/smallestai/speech/types/synthesize_lightning_v2speech_request_output_format.py new file mode 100644 index 000000000..f8ca09121 --- /dev/null +++ b/src/smallestai/speech/types/synthesize_lightning_v2speech_request_output_format.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +SynthesizeLightningV2SpeechRequestOutputFormat = typing.Union[typing.Literal["pcm", "wav", "ulaw", "alaw"], typing.Any] diff --git a/src/smallestai/waves/types/synthesize_lightning_v2waves_request_output_format.py b/src/smallestai/speech/types/synthesize_lightning_v2waves_request_output_format.py similarity index 100% rename from src/smallestai/waves/types/synthesize_lightning_v2waves_request_output_format.py rename to src/smallestai/speech/types/synthesize_lightning_v2waves_request_output_format.py diff --git a/src/smallestai/waves/types/synthesize_lightning_waves_request_output_format.py b/src/smallestai/speech/types/synthesize_lightning_waves_request_output_format.py similarity index 100% rename from src/smallestai/waves/types/synthesize_lightning_waves_request_output_format.py rename to src/smallestai/speech/types/synthesize_lightning_waves_request_output_format.py diff --git a/src/smallestai/speech/types/synthesize_sse_lightning_large_speech_request_output_format.py b/src/smallestai/speech/types/synthesize_sse_lightning_large_speech_request_output_format.py new file mode 100644 index 000000000..e8a465770 --- /dev/null +++ b/src/smallestai/speech/types/synthesize_sse_lightning_large_speech_request_output_format.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +SynthesizeSseLightningLargeSpeechRequestOutputFormat = typing.Union[ + typing.Literal["pcm", "wav", "ulaw", "alaw"], typing.Any +] diff --git a/src/smallestai/waves/types/synthesize_sse_lightning_large_waves_request_output_format.py b/src/smallestai/speech/types/synthesize_sse_lightning_large_waves_request_output_format.py similarity index 100% rename from src/smallestai/waves/types/synthesize_sse_lightning_large_waves_request_output_format.py rename to src/smallestai/speech/types/synthesize_sse_lightning_large_waves_request_output_format.py diff --git a/src/smallestai/speech/types/synthesize_sse_lightning_v2speech_request_output_format.py b/src/smallestai/speech/types/synthesize_sse_lightning_v2speech_request_output_format.py new file mode 100644 index 000000000..d7463e2fc --- /dev/null +++ b/src/smallestai/speech/types/synthesize_sse_lightning_v2speech_request_output_format.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +SynthesizeSseLightningV2SpeechRequestOutputFormat = typing.Union[ + typing.Literal["pcm", "wav", "ulaw", "alaw"], typing.Any +] diff --git a/src/smallestai/waves/types/synthesize_sse_lightning_v2waves_request_output_format.py b/src/smallestai/speech/types/synthesize_sse_lightning_v2waves_request_output_format.py similarity index 100% rename from src/smallestai/waves/types/synthesize_sse_lightning_v2waves_request_output_format.py rename to src/smallestai/speech/types/synthesize_sse_lightning_v2waves_request_output_format.py diff --git a/src/smallestai/speech/types/synthesize_sse_tts_speech_request_x_expire_content.py b/src/smallestai/speech/types/synthesize_sse_tts_speech_request_x_expire_content.py new file mode 100644 index 000000000..1165f1760 --- /dev/null +++ b/src/smallestai/speech/types/synthesize_sse_tts_speech_request_x_expire_content.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +SynthesizeSseTtsSpeechRequestXExpireContent = typing.Union[typing.Literal["true"], typing.Any] diff --git a/src/smallestai/speech/types/synthesize_tts_speech_request_x_expire_content.py b/src/smallestai/speech/types/synthesize_tts_speech_request_x_expire_content.py new file mode 100644 index 000000000..dd7134b55 --- /dev/null +++ b/src/smallestai/speech/types/synthesize_tts_speech_request_x_expire_content.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +SynthesizeTtsSpeechRequestXExpireContent = typing.Union[typing.Literal["true"], typing.Any] diff --git a/src/smallestai/waves/types/tool.py b/src/smallestai/speech/types/tool.py similarity index 100% rename from src/smallestai/waves/types/tool.py rename to src/smallestai/speech/types/tool.py diff --git a/src/smallestai/waves/types/tool_type.py b/src/smallestai/speech/types/tool_type.py similarity index 100% rename from src/smallestai/waves/types/tool_type.py rename to src/smallestai/speech/types/tool_type.py diff --git a/src/smallestai/waves/types/transcription_response.py b/src/smallestai/speech/types/transcription_response.py similarity index 100% rename from src/smallestai/waves/types/transcription_response.py rename to src/smallestai/speech/types/transcription_response.py diff --git a/src/smallestai/waves/types/transcription_response_metadata.py b/src/smallestai/speech/types/transcription_response_metadata.py similarity index 100% rename from src/smallestai/waves/types/transcription_response_metadata.py rename to src/smallestai/speech/types/transcription_response_metadata.py diff --git a/src/smallestai/waves/types/tts_error.py b/src/smallestai/speech/types/tts_error.py similarity index 100% rename from src/smallestai/waves/types/tts_error.py rename to src/smallestai/speech/types/tts_error.py diff --git a/src/smallestai/waves/types/tts_request.py b/src/smallestai/speech/types/tts_request.py similarity index 100% rename from src/smallestai/waves/types/tts_request.py rename to src/smallestai/speech/types/tts_request.py diff --git a/src/smallestai/waves/types/tts_request_language.py b/src/smallestai/speech/types/tts_request_language.py similarity index 100% rename from src/smallestai/waves/types/tts_request_language.py rename to src/smallestai/speech/types/tts_request_language.py diff --git a/src/smallestai/waves/types/tts_request_model.py b/src/smallestai/speech/types/tts_request_model.py similarity index 100% rename from src/smallestai/waves/types/tts_request_model.py rename to src/smallestai/speech/types/tts_request_model.py diff --git a/src/smallestai/waves/types/tts_request_number_pronunciation_language.py b/src/smallestai/speech/types/tts_request_number_pronunciation_language.py similarity index 100% rename from src/smallestai/waves/types/tts_request_number_pronunciation_language.py rename to src/smallestai/speech/types/tts_request_number_pronunciation_language.py diff --git a/src/smallestai/waves/types/tts_request_output_format.py b/src/smallestai/speech/types/tts_request_output_format.py similarity index 100% rename from src/smallestai/waves/types/tts_request_output_format.py rename to src/smallestai/speech/types/tts_request_output_format.py diff --git a/src/smallestai/waves/types/unauthorized_error_body.py b/src/smallestai/speech/types/unauthorized_error_body.py similarity index 100% rename from src/smallestai/waves/types/unauthorized_error_body.py rename to src/smallestai/speech/types/unauthorized_error_body.py diff --git a/src/smallestai/waves/types/update_pronunciation_dict_response.py b/src/smallestai/speech/types/update_pronunciation_dict_response.py similarity index 100% rename from src/smallestai/waves/types/update_pronunciation_dict_response.py rename to src/smallestai/speech/types/update_pronunciation_dict_response.py diff --git a/src/smallestai/waves/types/usage.py b/src/smallestai/speech/types/usage.py similarity index 100% rename from src/smallestai/waves/types/usage.py rename to src/smallestai/speech/types/usage.py diff --git a/src/smallestai/waves/types/usage_prompt_tokens_details.py b/src/smallestai/speech/types/usage_prompt_tokens_details.py similarity index 100% rename from src/smallestai/waves/types/usage_prompt_tokens_details.py rename to src/smallestai/speech/types/usage_prompt_tokens_details.py diff --git a/src/smallestai/waves/types/utterance.py b/src/smallestai/speech/types/utterance.py similarity index 100% rename from src/smallestai/waves/types/utterance.py rename to src/smallestai/speech/types/utterance.py diff --git a/src/smallestai/waves/types/word.py b/src/smallestai/speech/types/word.py similarity index 100% rename from src/smallestai/waves/types/word.py rename to src/smallestai/speech/types/word.py diff --git a/tests/custom/test_6_0_rename_compat.py b/tests/custom/test_6_0_rename_compat.py new file mode 100644 index 000000000..009bd61d2 --- /dev/null +++ b/tests/custom/test_6_0_rename_compat.py @@ -0,0 +1,77 @@ +"""6.0 rename (atoms->agents, waves->speech): new names work, old names still +work as deprecated aliases (client attribute + deep imports), and the observability +header is intact. +""" +import sys +import warnings + +import pytest + +from smallestai import SmallestAI + + +def _client(): + return SmallestAI(api_key="test-key") + + +def test_new_namespaces(): + c = _client() + assert type(c.agents).__name__ == "AgentsClient" + assert type(c.speech).__name__ == "SpeechClient" + + +def test_client_atoms_waves_aliases_are_deprecated(): + c = _client() + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + assert c.atoms is c.agents + assert c.waves is c.speech + cats = [x.category for x in w] + assert DeprecationWarning in cats + + +def test_deep_import_backcompat_same_objects(): + from smallestai.agents.crew.nodes import OutputCrewNode as New + from smallestai.speech.helpers import synthesize_to_file as new_helper + + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + from smallestai.atoms.crew.nodes import OutputCrewNode as Old # type: ignore[import-not-found] + from smallestai.waves.helpers import synthesize_to_file as old_helper # type: ignore[import-not-found] + + assert Old is New + assert old_helper is new_helper + + +def test_deep_import_emits_deprecation_warning(): + # The finder warns once per top-level name; reset so this test sees it + # regardless of what earlier tests imported. + import smallestai._compat as compat + + compat._warned.clear() + sys.modules.pop("smallestai.atoms.calls", None) + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + import smallestai.atoms.calls # type: ignore[import-not-found] # noqa: F401 + assert any(issubclass(x.category, DeprecationWarning) for x in w) + + +def test_plan_not_entitled_error_still_exported(): + from smallestai import PlanNotEntitledError + from smallestai.errors import PlanNotEntitledError as FromErrors + + assert PlanNotEntitledError is FromErrors + + +def test_observability_header_survives_rename(): + from smallestai.core.client_wrapper import BaseClientWrapper + from smallestai.environment import SmallestAIEnvironment + + headers = BaseClientWrapper( + api_key="k", environment=SmallestAIEnvironment.PRODUCTION + ).get_headers() + assert headers["X-Source"] == "smallest-python-sdk" + + +if __name__ == "__main__": + pytest.main([__file__, "-v"]) diff --git a/tests/custom/test_agent_tools_helper.py b/tests/custom/test_agent_tools_helper.py index f7cb42e8f..aca3ef8dd 100644 --- a/tests/custom/test_agent_tools_helper.py +++ b/tests/custom/test_agent_tools_helper.py @@ -12,7 +12,7 @@ import pytest -from smallestai.atoms.helpers import ( +from smallestai.agents.helpers import ( AgentTools, AgentToolsError, SinglePromptConfig, @@ -95,9 +95,9 @@ def post(self, url, headers=None, json=None, timeout=None): def wired(monkeypatch): def _make(tools): t = FakeBranchTransport(tools) - monkeypatch.setattr("smallestai.atoms.helpers.agent_tools.requests.get", t.get) - monkeypatch.setattr("smallestai.atoms.helpers.agent_tools.requests.put", t.put) - monkeypatch.setattr("smallestai.atoms.helpers.agent_tools.requests.post", t.post) + monkeypatch.setattr("smallestai.agents.helpers.agent_tools.requests.get", t.get) + monkeypatch.setattr("smallestai.agents.helpers.agent_tools.requests.put", t.put) + monkeypatch.setattr("smallestai.agents.helpers.agent_tools.requests.post", t.post) return AgentTools(api_key="sk_test", base_url="https://api.example/atoms/v1"), t return _make @@ -182,7 +182,7 @@ def test_no_branches_raises(monkeypatch): def empty_get(url, headers=None, timeout=None): return FakeResponse({"data": {"branches": []}}) - monkeypatch.setattr("smallestai.atoms.helpers.agent_tools.requests.get", empty_get) + monkeypatch.setattr("smallestai.agents.helpers.agent_tools.requests.get", empty_get) helper = AgentTools(api_key="sk_test", base_url="https://api.example/atoms/v1") with pytest.raises(AgentToolsError, match="no branches"): helper.add_transfer_call("AG1", number="+1") @@ -195,8 +195,8 @@ def get(url, headers=None, timeout=None): def bad_put(url, headers=None, json=None, timeout=None): return FakeResponse({"status": False, "errors": ["invalid tool"]}, status_code=400) - monkeypatch.setattr("smallestai.atoms.helpers.agent_tools.requests.get", get) - monkeypatch.setattr("smallestai.atoms.helpers.agent_tools.requests.put", bad_put) + monkeypatch.setattr("smallestai.agents.helpers.agent_tools.requests.get", get) + monkeypatch.setattr("smallestai.agents.helpers.agent_tools.requests.put", bad_put) helper = AgentTools(api_key="sk_test", base_url="https://api.example/atoms/v1") with pytest.raises(AgentToolsError, match="HTTP 400.*invalid tool"): helper.add_transfer_call("AG1", number="+1") diff --git a/tests/custom/test_as_page_envelope.py b/tests/custom/test_as_page_envelope.py index 02515facd..6a69e8356 100644 --- a/tests/custom/test_as_page_envelope.py +++ b/tests/custom/test_as_page_envelope.py @@ -4,7 +4,7 @@ silently return the whole envelope as a single bogus item instead of the rows (found in pre-merge review: `retries`, and the dual telephony/custom arrays). """ -from smallestai.atoms.helpers import as_page +from smallestai.agents.helpers import as_page class _Resp: diff --git a/tests/custom/test_cli_calls.py b/tests/custom/test_cli_calls.py index f219362c2..26d0becb8 100644 --- a/tests/custom/test_cli_calls.py +++ b/tests/custom/test_cli_calls.py @@ -35,7 +35,7 @@ def get(self, id): class FakeClient: def __init__(self, calls): - self.atoms = _obj(calls=calls) + self.agents = _obj(calls=calls) @pytest.fixture diff --git a/tests/custom/test_crew_context_from_llm_request.py b/tests/custom/test_crew_context_from_llm_request.py index 91ad63811..bcf8b39ef 100644 --- a/tests/custom/test_crew_context_from_llm_request.py +++ b/tests/custom/test_crew_context_from_llm_request.py @@ -9,8 +9,8 @@ import unittest from unittest import mock -from smallestai.atoms.crew.nodes import OutputCrewNode -from smallestai.atoms.crew.events import SDKSystemLLMRequestEvent, SDKAgentTranscriptUpdateEvent +from smallestai.agents.crew.events import SDKAgentTranscriptUpdateEvent, SDKSystemLLMRequestEvent +from smallestai.agents.crew.nodes import OutputCrewNode class _Agent(OutputCrewNode): diff --git a/tests/custom/test_crew_session_ready_ordering.py b/tests/custom/test_crew_session_ready_ordering.py index bcb5c25e4..832428989 100644 --- a/tests/custom/test_crew_session_ready_ordering.py +++ b/tests/custom/test_crew_session_ready_ordering.py @@ -4,8 +4,8 @@ import unittest from unittest import mock -from smallestai.atoms.crew.session import CrewSession -from smallestai.atoms.crew.nodes import OutputCrewNode +from smallestai.agents.crew.nodes import OutputCrewNode +from smallestai.agents.crew.session import CrewSession class _OrderNode(OutputCrewNode): diff --git a/tests/custom/test_crew_terminal_handoff_guard.py b/tests/custom/test_crew_terminal_handoff_guard.py index d871e7ed1..69da3269e 100644 --- a/tests/custom/test_crew_terminal_handoff_guard.py +++ b/tests/custom/test_crew_terminal_handoff_guard.py @@ -9,15 +9,15 @@ import unittest from unittest import mock -from smallestai.atoms.crew.nodes import OutputCrewNode -from smallestai.atoms.crew.nodes.base import CrewNode -from smallestai.atoms.crew.events import ( - SDKSystemLLMRequestEvent, - SDKAgentTransferConversationEvent, +from smallestai.agents.crew.events import ( SDKAgentEndCallEvent, + SDKAgentTransferConversationEvent, + SDKSystemLLMRequestEvent, TransferOption, TransferOptionType, ) +from smallestai.agents.crew.nodes import OutputCrewNode +from smallestai.agents.crew.nodes.base import CrewNode class _Agent(OutputCrewNode): @@ -66,7 +66,7 @@ async def test_end_call_also_latches(self): async def test_non_terminal_event_does_not_latch(self): a = _Agent() a._handle_llm_request = mock.AsyncMock() - from smallestai.atoms.crew.events import SDKAgentSpeakEvent + from smallestai.agents.crew.events import SDKAgentSpeakEvent with mock.patch.object(CrewNode, "send_event", new=mock.AsyncMock()): await a.send_event(SDKAgentSpeakEvent(text="hello")) self.assertFalse(a._handoff_started) diff --git a/tests/custom/test_crew_transfer_onhold_optional.py b/tests/custom/test_crew_transfer_onhold_optional.py index 61fe97f22..6b3551cfd 100644 --- a/tests/custom/test_crew_transfer_onhold_optional.py +++ b/tests/custom/test_crew_transfer_onhold_optional.py @@ -7,7 +7,7 @@ import pytest -from smallestai.atoms.crew.events import SDKAgentTransferConversationEvent, TransferOption +from smallestai.agents.crew.events import SDKAgentTransferConversationEvent, TransferOption def _transfer_option(): diff --git a/tests/custom/test_error_devx.py b/tests/custom/test_error_devx.py index 3a2c932bf..3f270fb92 100644 --- a/tests/custom/test_error_devx.py +++ b/tests/custom/test_error_devx.py @@ -8,8 +8,8 @@ import unittest from smallestai import PlanNotEntitledError as PlanNotEntitledFromRoot -from smallestai.atoms.errors.bad_request_error import BadRequestError, PlanNotEntitledError -from smallestai.atoms.errors.unauthorized_error import UnauthorizedError +from smallestai.agents.errors.bad_request_error import BadRequestError, PlanNotEntitledError +from smallestai.agents.errors.unauthorized_error import UnauthorizedError from smallestai.core.api_error import ApiError from smallestai.errors import PlanNotEntitledError as PlanNotEntitledFromErrors diff --git a/tests/custom/test_helpers_rest.py b/tests/custom/test_helpers_rest.py index 5e709b397..daa09af2f 100644 --- a/tests/custom/test_helpers_rest.py +++ b/tests/custom/test_helpers_rest.py @@ -4,10 +4,10 @@ builds the right URL with bearer auth. Guards the helpers the verify harness flagged as untested. """ -import smallestai.atoms.helpers.audience as audience_mod -import smallestai.atoms.helpers.campaign as campaign_mod -import smallestai.atoms.helpers.kb as kb_mod -from smallestai.atoms.helpers import KB, Audience, Campaign, Page +import smallestai.agents.helpers.audience as audience_mod +import smallestai.agents.helpers.campaign as campaign_mod +import smallestai.agents.helpers.kb as kb_mod +from smallestai.agents.helpers import KB, Audience, Campaign, Page class _FakeResp: diff --git a/tests/custom/test_output_node_on_event_hook.py b/tests/custom/test_output_node_on_event_hook.py index fa077ce39..b59037bf7 100644 --- a/tests/custom/test_output_node_on_event_hook.py +++ b/tests/custom/test_output_node_on_event_hook.py @@ -5,8 +5,8 @@ import unittest from unittest import mock -from smallestai.atoms.crew.nodes import OutputCrewNode -from smallestai.atoms.crew.events import SDKSystemLLMRequestEvent +from smallestai.agents.crew.events import SDKSystemLLMRequestEvent +from smallestai.agents.crew.nodes import OutputCrewNode class _OnEventAgent(OutputCrewNode): diff --git a/tests/custom/test_sdk_fixes.py b/tests/custom/test_sdk_fixes.py index 2e5f1be81..cdbf97463 100644 --- a/tests/custom/test_sdk_fixes.py +++ b/tests/custom/test_sdk_fixes.py @@ -1,6 +1,5 @@ """Unit tests for the hand-written SDK fixes (no network). Run by CI's test job.""" import os -import warnings from types import SimpleNamespace as NS import pytest @@ -8,24 +7,24 @@ def test_openai_client_raises_without_key(): os.environ.pop("OPENAI_API_KEY", None) - from smallestai.atoms.crew.clients.openai import OpenAIClient + from smallestai.agents.crew.clients.openai import OpenAIClient with pytest.raises(ValueError): OpenAIClient(api_key=None) # #1: must raise, not silently warn def test_openai_client_ok_with_key(): - from smallestai.atoms.crew.clients.openai import OpenAIClient + from smallestai.agents.crew.clients.openai import OpenAIClient assert OpenAIClient(api_key="sk_test") is not None def test_openai_electron_factory(): - from smallestai.atoms.crew.clients.openai import OpenAIClient + from smallestai.agents.crew.clients.openai import OpenAIClient os.environ["SMALLEST_API_KEY"] = "sk_dummy" assert OpenAIClient.electron() is not None # #12 def test_call_analytics_rename_and_alias(): - from smallestai.atoms.helpers import CallAnalytics, Call + from smallestai.agents.helpers import Call, CallAnalytics assert CallAnalytics(api_key="x") is not None assert issubclass(Call, CallAnalytics) with pytest.warns(DeprecationWarning): # #15 @@ -33,11 +32,11 @@ def test_call_analytics_rename_and_alias(): def test_helpers_import_clean(): - import smallestai.atoms.helpers # noqa: F401 (#17 — requests dep present) + import smallestai.agents.helpers # noqa: F401 (#17 — requests dep present) def test_as_page_normalizes_shapes(): - from smallestai.atoms.helpers import as_page # #25 + from smallestai.agents.helpers import as_page # #25 assert as_page(NS(data=NS(agents=[1, 2], total_count=2, has_more=False))).items == [1, 2] p = as_page(NS(data=NS(logs=[1], pagination=NS(total=1, has_more=True)))) assert p.items == [1] and p.total_count == 1 and p.has_more is True @@ -46,7 +45,7 @@ def test_as_page_normalizes_shapes(): def test_require_id_guard(): - from smallestai.atoms.helpers import require_id # #18 + from smallestai.agents.helpers import require_id # #18 for bad in ["", " ", None]: with pytest.raises(ValueError): require_id(bad) diff --git a/tests/custom/test_streaming_stt_helper.py b/tests/custom/test_streaming_stt_helper.py index bb85ab7f4..685725943 100644 --- a/tests/custom/test_streaming_stt_helper.py +++ b/tests/custom/test_streaming_stt_helper.py @@ -1,10 +1,10 @@ """Unit tests for the typed streaming-STT helper (waves.helpers.stream_speech_to_text). Logic-only: a fake client captures the request_options passed to -client.waves.speech_to_text.stream(...). No network, no real SDK STT surface needed. +client.speech.speech_to_text.stream(...). No network, no real SDK STT surface needed. """ -from smallestai.waves.helpers.streaming_stt import ( +from smallestai.speech.helpers.streaming_stt import ( build_stt_stream_query, stream_speech_to_text, ) @@ -22,7 +22,7 @@ def stream(self, *, request_options=None): class _FakeClient: def __init__(self): stt = _FakeStreamNamespace() - self.waves = type("_W", (), {"speech_to_text": stt})() + self.speech = type("_W", (), {"speech_to_text": stt})() self._stt = stt diff --git a/tests/custom/test_tts_helper.py b/tests/custom/test_tts_helper.py index ca5a004ab..c42f46098 100644 --- a/tests/custom/test_tts_helper.py +++ b/tests/custom/test_tts_helper.py @@ -5,7 +5,7 @@ import unittest from unittest import mock -from smallestai.waves.helpers import ( +from smallestai.speech.helpers import ( CONTENT_EXPIRY_HEADER, DEFAULT_TTS_MODEL, EXPIRE_CONTENT_HEADER, @@ -17,7 +17,7 @@ def _client(chunks): c = mock.MagicMock() - c.waves.synthesize_tts.return_value = iter(chunks) + c.speech.synthesize_tts.return_value = iter(chunks) return c @@ -37,7 +37,7 @@ def test_synthesize_to_file_writes_and_counts(self): def test_defaults_and_kwargs_forwarded(self): c = _client([b"x"]) synthesize_bytes(c, "hi", voice_id="v", speed=1.2) - _, kw = c.waves.synthesize_tts.call_args + _, kw = c.speech.synthesize_tts.call_args self.assertEqual(kw["voice_id"], "v") self.assertEqual(kw["model"], DEFAULT_TTS_MODEL) self.assertEqual(kw["output_format"], "wav") @@ -52,7 +52,7 @@ def test_expire_content_sets_header_and_preserves_caller_headers(self): expire_content=True, request_options={"additional_headers": {"x-trace": "1"}}, ) - _, kw = c.waves.synthesize_tts.call_args + _, kw = c.speech.synthesize_tts.call_args headers = kw["request_options"]["additional_headers"] self.assertEqual(headers[EXPIRE_CONTENT_HEADER], "true") self.assertEqual(headers["x-trace"], "1") # caller header preserved @@ -60,7 +60,7 @@ def test_expire_content_sets_header_and_preserves_caller_headers(self): def test_no_header_when_expire_content_false(self): c = _client([b"x"]) synthesize_bytes(c, "hi", voice_id="v") - _, kw = c.waves.synthesize_tts.call_args + _, kw = c.speech.synthesize_tts.call_args self.assertNotIn("request_options", kw) def test_synthesize_with_expiry_returns_outcome(self): @@ -70,11 +70,11 @@ def test_synthesize_with_expiry_returns_outcome(self): raw.headers = {CONTENT_EXPIRY_HEADER: "not-entitled"} cm = mock.MagicMock() cm.__enter__.return_value = raw - c.waves.with_raw_response.synthesize_tts.return_value = cm + c.speech.with_raw_response.synthesize_tts.return_value = cm audio, outcome = synthesize_with_expiry(c, "hi", voice_id="v") self.assertEqual(audio, b"abcd") self.assertEqual(outcome, "not-entitled") - _, kw = c.waves.with_raw_response.synthesize_tts.call_args + _, kw = c.speech.with_raw_response.synthesize_tts.call_args self.assertEqual(kw["request_options"]["additional_headers"][EXPIRE_CONTENT_HEADER], "true") diff --git a/tests/custom/test_versioning_helper.py b/tests/custom/test_versioning_helper.py index 94cc3366e..e849b5a48 100644 --- a/tests/custom/test_versioning_helper.py +++ b/tests/custom/test_versioning_helper.py @@ -5,15 +5,15 @@ migration flag, and the base-revision case). Live coverage is in tests/velocity/v2_versioning_e2e.py. """ -from smallestai.atoms.helpers import ( - Versioning, - VersioningError, - MigrationRequiredError, - DraftConflictError, +from smallestai.agents.helpers import ( BaseRevisionUnavailableError, + DraftConflictError, + MigrationRequiredError, SecurityCheckFailedError, + Versioning, + VersioningError, ) -from smallestai.atoms.helpers.versioning import _discriminate_conflict +from smallestai.agents.helpers.versioning import _discriminate_conflict from smallestai.core.api_error import ApiError @@ -67,7 +67,7 @@ class _Atoms: agent_versioning_revisions = revisions class _Client: - atoms = _Atoms() + agents = _Atoms() v = Versioning(_Client()) assert v.branches is branches diff --git a/tests/custom/test_waves_shim_import.py b/tests/custom/test_waves_shim_import.py index 7bd12dd60..3a39145ff 100644 --- a/tests/custom/test_waves_shim_import.py +++ b/tests/custom/test_waves_shim_import.py @@ -1,6 +1,6 @@ """Regression test for the 4.3.1 compatibility shim. -`from smallestai.waves import WavesStreamingTTS, TTSConfig` regressed +`from smallestai.speech import WavesStreamingTTS, TTSConfig` regressed between 4.3.1 and 4.3.9 during the Fern migration. This test guards against the same break recurring if Fern regen rewrites `src/smallestai/waves/__init__.py` and drops the manual lazy-import @@ -9,14 +9,14 @@ def test_legacy_waves_imports_work() -> None: - from smallestai.waves import TTSConfig, WavesStreamingTTS + from smallestai.speech import TTSConfig, WavesStreamingTTS config = TTSConfig(voice_id="magnus", api_key="test-key") assert isinstance(WavesStreamingTTS(config), WavesStreamingTTS) def test_tts_config_accepts_pronunciation_dicts() -> None: - from smallestai.waves import TTSConfig + from smallestai.speech import TTSConfig config = TTSConfig( voice_id="magnus", @@ -29,7 +29,7 @@ def test_tts_config_accepts_pronunciation_dicts() -> None: def test_tts_config_rejects_v2_only_consistency_param() -> None: import pytest - from smallestai.waves import TTSConfig + from smallestai.speech import TTSConfig with pytest.raises(TypeError): TTSConfig(voice_id="magnus", api_key="test-key", consistency=0.5) # type: ignore[call-arg] @@ -38,13 +38,13 @@ def test_tts_config_rejects_v2_only_consistency_param() -> None: def test_streaming_url_is_current_tts_live() -> None: # The per-model `.../lightning-v3.1/get_speech/stream` URL retired 2026-07-14. # Guard against regressing back to a retired endpoint. - from smallestai.waves import WavesStreamingTTS + from smallestai.speech import WavesStreamingTTS assert WavesStreamingTTS.WS_URL == "wss://api.smallest.ai/waves/v1/tts/live" def test_tts_config_model_default() -> None: - from smallestai.waves import TTSConfig + from smallestai.speech import TTSConfig assert TTSConfig(voice_id="magnus", api_key="k").model == "lightning_v3.1" assert TTSConfig(voice_id="magnus", api_key="k", model="lightning_v3.1_pro").model == "lightning_v3.1_pro" diff --git a/tests/velocity/field_drop_audit.py b/tests/velocity/field_drop_audit.py index bf0395c8e..aedf5b2f7 100644 --- a/tests/velocity/field_drop_audit.py +++ b/tests/velocity/field_drop_audit.py @@ -12,7 +12,8 @@ SMALLEST_API_KEY=... [SMALLEST_BASE_URL=...] python tests/velocity/field_drop_audit.py """ from _env import client -from smallestai.atoms.helpers import as_page + +from smallestai.agents.helpers import as_page _NOISE = {"__v"} # mongo internals, not real SDK gaps @@ -37,16 +38,16 @@ def extras(model, path): def _first_agent(): - return c.atoms.agents.get_agent(id=as_page(c.atoms.agents.list_agents()).items[0].id).data + return c.agents.agents.get_agent(id=as_page(c.agents.agents.list_agents()).items[0].id).data CHECKS = { - "user": lambda: c.atoms.user.get_user_details().data, + "user": lambda: c.agents.user.get_user_details().data, "agent": _first_agent, - "agent_template": lambda: as_page(c.atoms.agent_templates.list_agent_templates()).items[0], - "knowledge_base": lambda: as_page(c.atoms.knowledge_base.list()).items[0], - "phone_number": lambda: as_page(c.atoms.phone_numbers.list()).items[0], - "call": lambda: as_page(c.atoms.calls.list()).items[0], + "agent_template": lambda: as_page(c.agents.agent_templates.list_agent_templates()).items[0], + "knowledge_base": lambda: as_page(c.agents.knowledge_base.list()).items[0], + "phone_number": lambda: as_page(c.agents.phone_numbers.list()).items[0], + "call": lambda: as_page(c.agents.calls.list()).items[0], } diff --git a/tests/velocity/integration.py b/tests/velocity/integration.py index ded22bd11..b572460e1 100644 --- a/tests/velocity/integration.py +++ b/tests/velocity/integration.py @@ -7,10 +7,11 @@ SMALLEST_API_KEY=... [SMALLEST_BASE_URL=...] python tests/velocity/integration.py """ from _env import client -from smallestai.atoms.helpers import as_page, require_id + +from smallestai.agents.helpers import as_page, require_id c = client() -results = [] +results: list = [] def check(name, fn): @@ -23,59 +24,59 @@ def check(name, fn): print(f" FAIL {name} {type(e).__name__}: {str(e)[:100]}") -made_agents = [] +made_agents: list = [] def _create(): - aid = c.atoms.agents.create_agent(name="sdk-itest-agent", first_message="Hi from itest").data + aid = c.agents.agents.create_agent(name="sdk-itest-agent", first_message="Hi from itest").data made_agents.append(aid) return f"id={aid}" def _get(): aid = made_agents[-1] - a = c.atoms.agents.get_agent(id=aid).data + a = c.agents.agents.get_agent(id=aid).data fm = getattr(a, "first_message", None) assert fm == "Hi from itest", f"firstMessage not persisted: {fm!r}" return f"firstMessage={fm!r}" def _list(): - pg = as_page(c.atoms.agents.list_agents()) + pg = as_page(c.agents.agents.list_agents()) return f"{len(pg.items)} agents (total={pg.total_count})" def _update(): aid = made_agents[-1] - c.atoms.agents.update_agent(id=aid, description="updated by itest") + c.agents.agents.update_agent(id=aid, description="updated by itest") return "updated" def _duplicate(): aid = made_agents[-1] - org = c.atoms.user.get_user_details().data.organization_id - dup = c.atoms.agents.duplicate_agent(id=aid, target_organization_id=org) + org = c.agents.user.get_user_details().data.organization_id + dup = c.agents.agents.duplicate_agent(id=aid, target_organization_id=org) if getattr(dup, "data", None): made_agents.append(dup.data if isinstance(dup.data, str) else getattr(dup.data, "_id", None)) return "duplicated" def _templates(): - pg = as_page(c.atoms.agent_templates.list_agent_templates()) + pg = as_page(c.agents.agent_templates.list_agent_templates()) return f"{len(pg.items)} templates" def _kb_list(): - return f"{len(as_page(c.atoms.knowledge_base.list()).items)} KBs" + return f"{len(as_page(c.agents.knowledge_base.list()).items)} KBs" def _phone_list(): - pg = as_page(c.atoms.phone_numbers.list()) + pg = as_page(c.agents.phone_numbers.list()) return f"{len(pg.items)} numbers" def _calls_list(): - pg = as_page(c.atoms.calls.list()) + pg = as_page(c.agents.calls.list()) return f"{len(pg.items)} calls" @@ -89,14 +90,14 @@ def _guard(): def _bad_id(): try: - c.atoms.agents.get_agent(id="nonexistent") + c.agents.agents.get_agent(id="nonexistent") return "WARN: no error for malformed id" except Exception as e: return f"malformed id -> {type(e).__name__} (expected)" print("== Atoms SDK integration sweep ==") -check("user.get_user_details", lambda: c.atoms.user.get_user_details().data.user_email) +check("user.get_user_details", lambda: c.agents.user.get_user_details().data.user_email) check("agents.create_agent", _create) check("agents.get_agent (#2 firstMessage)", _get) check("agents.list_agents (+as_page)", _list) @@ -113,7 +114,7 @@ def _bad_id(): for aid in made_agents: try: if aid: - c.atoms.agents.archive_agent(id=aid) + c.agents.agents.archive_agent(id=aid) except Exception: pass diff --git a/tests/velocity/smoke.py b/tests/velocity/smoke.py index da761b5c7..66b6d7de1 100644 --- a/tests/velocity/smoke.py +++ b/tests/velocity/smoke.py @@ -5,25 +5,25 @@ print("== user ==") try: - u = c.atoms.user.get_user_details() + u = c.agents.user.get_user_details() print("user ok:", getattr(u, "data", u)) except Exception as e: print("user FAILED:", type(e).__name__, str(e)[:200]) - print("user namespace methods:", [m for m in dir(c.atoms.user) if not m.startswith("_")]) + print("user namespace methods:", [m for m in dir(c.agents.user) if not m.startswith("_")]) print("== create agent with first_message ==") -r = c.atoms.agents.create_agent(name="sdk-smoke-2026-06-18", first_message="Banana phone greeting") +r = c.agents.agents.create_agent(name="sdk-smoke-2026-06-18", first_message="Banana phone greeting") aid = getattr(r, "data", None) print("created agent id:", aid) print("== get agent back -> firstMessage ==") -g = c.atoms.agents.get_agent(id=aid) +g = c.agents.agents.get_agent(id=aid) data = getattr(g, "data", None) fm = getattr(data, "first_message", None) or getattr(data, "firstMessage", None) print("firstMessage on agent:", repr(fm), "(bug #2 if empty)") print("== list agents ==") -lst = c.atoms.agents.list_agents() +lst = c.agents.agents.list_agents() ad = getattr(lst, "data", None) agents = getattr(ad, "agents", ad) count = len(agents) if agents is not None and hasattr(agents, "__len__") else "?" diff --git a/tests/velocity/triage.py b/tests/velocity/triage.py index 30f1d0405..b616a7523 100644 --- a/tests/velocity/triage.py +++ b/tests/velocity/triage.py @@ -4,14 +4,13 @@ verdict: FIXED (no longer a bug), BUG (reproduces), N/A (needs richer flow). owner: sdk / platform / spec / cli """ -import io import os import warnings -import contextlib + from _env import client c = client() -R = [] +R: list = [] def rec(id_, verdict, owner, detail): @@ -20,7 +19,7 @@ def rec(id_, verdict, owner, detail): def agent_id_helper(): - r = c.atoms.agents.create_a_new_agent(name="triage-base-2026-06-18") + r = c.agents.agents.create_a_new_agent(name="triage-base-2026-06-18") return getattr(r, "data", None) @@ -33,7 +32,7 @@ def agent_id_helper(): saved = {k: os.environ.pop(k, None) for k in ("SMALLEST_AI_TOKEN",)} os.environ["SMALLEST_API_KEY"] = os.environ["SMALLEST_API_KEY"] c2 = SmallestAI(environment=env) # no api_key arg -> must read SMALLEST_API_KEY - c2.atoms.user.get_user_details() + c2.agents.user.get_user_details() rec("#3", "FIXED", "sdk", "SmallestAI() reads SMALLEST_API_KEY (no api_key arg needed)") for k, v in saved.items(): if v is not None: @@ -43,9 +42,9 @@ def agent_id_helper(): # --- #2 first_message persisted on create --- try: - r = c.atoms.agents.create_a_new_agent(name="triage-fm-2026-06-18", first_message="Banana phone") + r = c.agents.agents.create_a_new_agent(name="triage-fm-2026-06-18", first_message="Banana phone") aid = getattr(r, "data", None) - g = c.atoms.agents.get_agent_by_id(id=aid) + g = c.agents.agents.get_agent_by_id(id=aid) d = getattr(g, "data", None) fm = getattr(d, "first_message", None) or getattr(d, "firstMessage", None) rec("#2", "FIXED" if fm == "Banana phone" else "BUG", "platform", f"firstMessage={fm!r} after create") @@ -54,7 +53,7 @@ def agent_id_helper(): # --- #7 calls namespace has get / list --- try: - methods = [m for m in dir(c.atoms.calls) if not m.startswith("_")] + methods = [m for m in dir(c.agents.calls) if not m.startswith("_")] has = [m for m in methods if "get" in m or "list" in m] rec("#7", "FIXED" if has else "BUG", "sdk", f"calls methods: {methods}") except Exception as e: @@ -62,7 +61,7 @@ def agent_id_helper(): # --- #18 get_agent_by_id("") --- try: - g = c.atoms.agents.get_agent_by_id(id="") + g = c.agents.agents.get_agent_by_id(id="") d = getattr(g, "data", None) is_list = hasattr(d, "agents") rec("#18", "BUG" if is_list else "FIXED", "sdk/platform", f"empty id -> {'list payload' if is_list else type(d).__name__}") @@ -71,7 +70,7 @@ def agent_id_helper(): # --- #19 get_agent_by_id('nonexistent') status --- try: - c.atoms.agents.get_agent_by_id(id="nonexistent") + c.agents.agents.get_agent_by_id(id="nonexistent") rec("#19", "BUG", "platform", "no error for malformed id") except Exception as e: code = getattr(e, "status_code", "?") @@ -79,9 +78,9 @@ def agent_id_helper(): # --- #21 duplicate name -> 409 --- try: - a = getattr(c.atoms.agents.create_a_new_agent(name="triage-dup-2026-06-18"), "data", None) + a = getattr(c.agents.agents.create_a_new_agent(name="triage-dup-2026-06-18"), "data", None) try: - b = getattr(c.atoms.agents.create_a_new_agent(name="triage-dup-2026-06-18"), "data", None) + b = getattr(c.agents.agents.create_a_new_agent(name="triage-dup-2026-06-18"), "data", None) rec("#21", "BUG", "platform", f"dup name allowed (a={a} b={b})") except Exception as e: rec("#21", "FIXED", "platform", f"dup rejected: {getattr(e,'status_code','?')}") @@ -89,14 +88,14 @@ def agent_id_helper(): rec("#21", "ERR", "platform", str(e)[:90]) # --- #22 update_workflow_configuration still public --- -rec("#22", "BUG" if hasattr(c.atoms.agents, "update_workflow_configuration") else "FIXED", - "sdk", "update_workflow_configuration on public surface" if hasattr(c.atoms.agents, "update_workflow_configuration") else "hidden") +rec("#22", "BUG" if hasattr(c.agents.agents, "update_workflow_configuration") else "FIXED", + "sdk", "update_workflow_configuration on public surface" if hasattr(c.agents.agents, "update_workflow_configuration") else "hidden") # --- #24 pydantic serialization warning on list --- try: with warnings.catch_warnings(record=True) as w: warnings.simplefilter("always") - c.atoms.agents.get_all_agents() + c.agents.agents.get_all_agents() ser = [str(x.message)[:60] for x in w if "Serializ" in str(x.message) or "Unexpected" in str(x.message)] rec("#24", "BUG" if ser else "FIXED", "spec", f"{len(ser)} serialization warning(s)") except Exception as e: @@ -104,16 +103,16 @@ def agent_id_helper(): # --- #25 data shape: create (str) vs get (object) --- try: - cr = c.atoms.agents.create_a_new_agent(name="triage-shape-2026-06-18") + cr = c.agents.agents.create_a_new_agent(name="triage-shape-2026-06-18") create_t = type(getattr(cr, "data", None)).__name__ - gt = type(getattr(c.atoms.agents.get_agent_by_id(id=getattr(cr, "data", None)), "data", None)).__name__ + gt = type(getattr(c.agents.agents.get_agent_by_id(id=getattr(cr, "data", None)), "data", None)).__name__ rec("#25", "BUG" if create_t != gt else "FIXED", "spec", f"create.data={create_t} vs get.data={gt}") except Exception as e: rec("#25", "ERR", "spec", str(e)[:90]) # --- #1 / #12 / #12a / #15 crew + helpers surface (import-level) --- try: - from smallestai.atoms.crew.clients.openai import OpenAIClient + from smallestai.agents.crew.clients.openai import OpenAIClient raised = False try: os.environ.pop("OPENAI_API_KEY", None) @@ -128,7 +127,7 @@ def agent_id_helper(): rec("#1", "ERR", "sdk", f"import crew openai failed: {str(e)[:80]}") try: - import smallestai.atoms.helpers as h + import smallestai.agents.helpers as h names = [n for n in dir(h) if not n.startswith("_")] rec("#15", "BUG" if "Call" in names and "CallAnalytics" not in names else "FIXED", "sdk", f"helpers: {names}") except Exception as e: diff --git a/tests/velocity/v2_versioning_api_probe.py b/tests/velocity/v2_versioning_api_probe.py index c4f1eae75..17650b692 100644 --- a/tests/velocity/v2_versioning_api_probe.py +++ b/tests/velocity/v2_versioning_api_probe.py @@ -31,7 +31,7 @@ _ok = 0 _fail = 0 -_failed = [] +_failed: list = [] def call(method, path, **kw): diff --git a/tests/velocity/v2_versioning_e2e.py b/tests/velocity/v2_versioning_e2e.py index 24e4bb896..e92b68db7 100644 --- a/tests/velocity/v2_versioning_e2e.py +++ b/tests/velocity/v2_versioning_e2e.py @@ -20,12 +20,11 @@ import sys from smallestai import SmallestAI -from smallestai.environment import SmallestAIEnvironment -from smallestai.atoms.helpers.versioning import ( - Versioning, +from smallestai.agents.helpers.versioning import ( DraftConflictError, - MigrationRequiredError, + Versioning, ) +from smallestai.environment import SmallestAIEnvironment KEY = os.environ.get("SMALLEST_API_KEY") BASE = os.environ.get("SMALLEST_BASE_URL") @@ -47,7 +46,7 @@ def make_client() -> SmallestAI: _ok = 0 _fail = 0 -_failed = [] +_failed: list = [] def check(cond: bool, label: str, detail: str = "") -> None: diff --git a/tests/wire/test_atoms_agentTemplates.py b/tests/wire/test_atoms_agentTemplates.py index 27a93a4ab..f8ef88274 100644 --- a/tests/wire/test_atoms_agentTemplates.py +++ b/tests/wire/test_atoms_agentTemplates.py @@ -5,7 +5,7 @@ def test_atoms_agentTemplates_list_agent_templates() -> None: """Test list_agent_templates endpoint with WireMock""" test_id = "atoms.agent_templates.list_agent_templates.0" client = get_client(test_id) - client.atoms.agent_templates.list_agent_templates() + client.agents.agent_templates.list_agent_templates() verify_request_count(test_id, "GET", "/agent/template", None, 1) @@ -13,7 +13,7 @@ def test_atoms_agentTemplates_create_agent_from_template() -> None: """Test createAgentFromTemplate endpoint with WireMock""" test_id = "atoms.agent_templates.create_agent_from_template.0" client = get_client(test_id) - client.atoms.agent_templates.create_agent_from_template( + client.agents.agent_templates.create_agent_from_template( agent_name="agentName", template_id="templateId", ) diff --git a/tests/wire/test_atoms_agentVersioningBranches.py b/tests/wire/test_atoms_agentVersioningBranches.py index c6c17935f..838ea373f 100644 --- a/tests/wire/test_atoms_agentVersioningBranches.py +++ b/tests/wire/test_atoms_agentVersioningBranches.py @@ -5,7 +5,7 @@ def test_atoms_agentVersioningBranches_list_() -> None: """Test list endpoint with WireMock""" test_id = "atoms.agent_versioning_branches.list_.0" client = get_client(test_id) - client.atoms.agent_versioning_branches.list( + client.agents.agent_versioning_branches.list( id="id", ) verify_request_count(test_id, "GET", "/agent/id/branches", None, 1) @@ -15,7 +15,7 @@ def test_atoms_agentVersioningBranches_create_branch() -> None: """Test create_branch endpoint with WireMock""" test_id = "atoms.agent_versioning_branches.create_branch.0" client = get_client(test_id) - client.atoms.agent_versioning_branches.create_branch( + client.agents.agent_versioning_branches.create_branch( id="id", source_branch_id="sourceBranchId", name="name", @@ -27,7 +27,7 @@ def test_atoms_agentVersioningBranches_get() -> None: """Test get endpoint with WireMock""" test_id = "atoms.agent_versioning_branches.get.0" client = get_client(test_id) - client.atoms.agent_versioning_branches.get( + client.agents.agent_versioning_branches.get( id="id", branch_id="branchId", ) @@ -38,7 +38,7 @@ def test_atoms_agentVersioningBranches_rename() -> None: """Test rename endpoint with WireMock""" test_id = "atoms.agent_versioning_branches.rename.0" client = get_client(test_id) - client.atoms.agent_versioning_branches.rename( + client.agents.agent_versioning_branches.rename( id="id", branch_id="branchId", name="name", @@ -50,7 +50,7 @@ def test_atoms_agentVersioningBranches_archive() -> None: """Test archive endpoint with WireMock""" test_id = "atoms.agent_versioning_branches.archive.0" client = get_client(test_id) - client.atoms.agent_versioning_branches.archive( + client.agents.agent_versioning_branches.archive( id="id", branch_id="branchId", ) @@ -61,7 +61,7 @@ def test_atoms_agentVersioningBranches_make_live() -> None: """Test make_live endpoint with WireMock""" test_id = "atoms.agent_versioning_branches.make_live.0" client = get_client(test_id) - client.atoms.agent_versioning_branches.make_live( + client.agents.agent_versioning_branches.make_live( id="id", branch_id="branchId", ) @@ -72,7 +72,7 @@ def test_atoms_agentVersioningBranches_get_draft() -> None: """Test get_draft endpoint with WireMock""" test_id = "atoms.agent_versioning_branches.get_draft.0" client = get_client(test_id) - client.atoms.agent_versioning_branches.get_draft( + client.agents.agent_versioning_branches.get_draft( id="id", branch_id="branchId", ) @@ -83,7 +83,7 @@ def test_atoms_agentVersioningBranches_update_draft() -> None: """Test update_draft endpoint with WireMock""" test_id = "atoms.agent_versioning_branches.update_draft.0" client = get_client(test_id) - client.atoms.agent_versioning_branches.update_draft( + client.agents.agent_versioning_branches.update_draft( id="id", branch_id="branchId", ) @@ -94,7 +94,7 @@ def test_atoms_agentVersioningBranches_discard_draft() -> None: """Test discard_draft endpoint with WireMock""" test_id = "atoms.agent_versioning_branches.discard_draft.0" client = get_client(test_id) - client.atoms.agent_versioning_branches.discard_draft( + client.agents.agent_versioning_branches.discard_draft( id="id", branch_id="branchId", ) @@ -105,7 +105,7 @@ def test_atoms_agentVersioningBranches_publish_draft() -> None: """Test publish_draft endpoint with WireMock""" test_id = "atoms.agent_versioning_branches.publish_draft.0" client = get_client(test_id) - client.atoms.agent_versioning_branches.publish_draft( + client.agents.agent_versioning_branches.publish_draft( id="id", branch_id="branchId", ) @@ -116,7 +116,7 @@ def test_atoms_agentVersioningBranches_cancel_publish() -> None: """Test cancel_publish endpoint with WireMock""" test_id = "atoms.agent_versioning_branches.cancel_publish.0" client = get_client(test_id) - client.atoms.agent_versioning_branches.cancel_publish( + client.agents.agent_versioning_branches.cancel_publish( id="id", branch_id="branchId", ) @@ -127,7 +127,7 @@ def test_atoms_agentVersioningBranches_test_call() -> None: """Test test_call endpoint with WireMock""" test_id = "atoms.agent_versioning_branches.test_call.0" client = get_client(test_id) - client.atoms.agent_versioning_branches.test_call( + client.agents.agent_versioning_branches.test_call( id="id", branch_id="branchId", ) diff --git a/tests/wire/test_atoms_agentVersioningDrafts.py b/tests/wire/test_atoms_agentVersioningDrafts.py index 73c04f83f..1dcc22118 100644 --- a/tests/wire/test_atoms_agentVersioningDrafts.py +++ b/tests/wire/test_atoms_agentVersioningDrafts.py @@ -5,7 +5,7 @@ def test_atoms_agentVersioningDrafts_list_active_drafts() -> None: """Test listActiveDrafts endpoint with WireMock""" test_id = "atoms.agent_versioning_drafts.list_active_drafts.0" client = get_client(test_id) - client.atoms.agent_versioning_drafts.list_active_drafts( + client.agents.agent_versioning_drafts.list_active_drafts( id="id", ) verify_request_count(test_id, "GET", "/agent/id/drafts", None, 1) @@ -15,7 +15,7 @@ def test_atoms_agentVersioningDrafts_create_draft() -> None: """Test create_draft endpoint with WireMock""" test_id = "atoms.agent_versioning_drafts.create_draft.0" client = get_client(test_id) - client.atoms.agent_versioning_drafts.create_draft( + client.agents.agent_versioning_drafts.create_draft( id="id", ) verify_request_count(test_id, "POST", "/agent/id/drafts", None, 1) @@ -25,7 +25,7 @@ def test_atoms_agentVersioningDrafts_get_draft_detail() -> None: """Test getDraftDetail endpoint with WireMock""" test_id = "atoms.agent_versioning_drafts.get_draft_detail.0" client = get_client(test_id) - client.atoms.agent_versioning_drafts.get_draft_detail( + client.agents.agent_versioning_drafts.get_draft_detail( id="id", draft_id="draftId", ) @@ -36,7 +36,7 @@ def test_atoms_agentVersioningDrafts_discard_draft() -> None: """Test discard_draft endpoint with WireMock""" test_id = "atoms.agent_versioning_drafts.discard_draft.0" client = get_client(test_id) - client.atoms.agent_versioning_drafts.discard_draft( + client.agents.agent_versioning_drafts.discard_draft( id="id", draft_id="draftId", ) @@ -47,7 +47,7 @@ def test_atoms_agentVersioningDrafts_rename_draft() -> None: """Test rename_draft endpoint with WireMock""" test_id = "atoms.agent_versioning_drafts.rename_draft.0" client = get_client(test_id) - client.atoms.agent_versioning_drafts.rename_draft( + client.agents.agent_versioning_drafts.rename_draft( id="id", draft_id="draftId", draft_name="draftName", @@ -59,7 +59,7 @@ def test_atoms_agentVersioningDrafts_get_draft_diff() -> None: """Test getDraftDiff endpoint with WireMock""" test_id = "atoms.agent_versioning_drafts.get_draft_diff.0" client = get_client(test_id) - client.atoms.agent_versioning_drafts.get_draft_diff( + client.agents.agent_versioning_drafts.get_draft_diff( id="id", draft_id="draftId", ) @@ -70,7 +70,7 @@ def test_atoms_agentVersioningDrafts_publish_draft() -> None: """Test publish_draft endpoint with WireMock""" test_id = "atoms.agent_versioning_drafts.publish_draft.0" client = get_client(test_id) - client.atoms.agent_versioning_drafts.publish_draft( + client.agents.agent_versioning_drafts.publish_draft( id="id", draft_id="draftId", ) @@ -81,7 +81,7 @@ def test_atoms_agentVersioningDrafts_test_call_with_draft_config() -> None: """Test testCallWithDraftConfig endpoint with WireMock""" test_id = "atoms.agent_versioning_drafts.test_call_with_draft_config.0" client = get_client(test_id) - client.atoms.agent_versioning_drafts.test_call_with_draft_config( + client.agents.agent_versioning_drafts.test_call_with_draft_config( id="id", draft_id="draftId", ) @@ -92,7 +92,7 @@ def test_atoms_agentVersioningDrafts_update_draft_config() -> None: """Test update_draft_config endpoint with WireMock""" test_id = "atoms.agent_versioning_drafts.update_draft_config.0" client = get_client(test_id) - client.atoms.agent_versioning_drafts.update_draft_config( + client.agents.agent_versioning_drafts.update_draft_config( id="id", draft_id="draftId", ) diff --git a/tests/wire/test_atoms_agentVersioningRevisions.py b/tests/wire/test_atoms_agentVersioningRevisions.py index d68bf998e..51a08f8a1 100644 --- a/tests/wire/test_atoms_agentVersioningRevisions.py +++ b/tests/wire/test_atoms_agentVersioningRevisions.py @@ -5,7 +5,7 @@ def test_atoms_agentVersioningRevisions_list_() -> None: """Test list endpoint with WireMock""" test_id = "atoms.agent_versioning_revisions.list_.0" client = get_client(test_id) - client.atoms.agent_versioning_revisions.list( + client.agents.agent_versioning_revisions.list( id="id", branch_id="branchId", ) @@ -16,7 +16,7 @@ def test_atoms_agentVersioningRevisions_get() -> None: """Test get endpoint with WireMock""" test_id = "atoms.agent_versioning_revisions.get.0" client = get_client(test_id) - client.atoms.agent_versioning_revisions.get( + client.agents.agent_versioning_revisions.get( id="id", branch_id="branchId", revision_id="revisionId", @@ -28,7 +28,7 @@ def test_atoms_agentVersioningRevisions_get_history() -> None: """Test get_history endpoint with WireMock""" test_id = "atoms.agent_versioning_revisions.get_history.0" client = get_client(test_id) - client.atoms.agent_versioning_revisions.get_history( + client.agents.agent_versioning_revisions.get_history( id="id", branch_id="branchId", revision_id="revisionId", @@ -40,7 +40,7 @@ def test_atoms_agentVersioningRevisions_restore() -> None: """Test restore endpoint with WireMock""" test_id = "atoms.agent_versioning_revisions.restore.0" client = get_client(test_id) - client.atoms.agent_versioning_revisions.restore( + client.agents.agent_versioning_revisions.restore( id="id", branch_id="branchId", revision_id="revisionId", @@ -52,7 +52,7 @@ def test_atoms_agentVersioningRevisions_diff() -> None: """Test diff endpoint with WireMock""" test_id = "atoms.agent_versioning_revisions.diff.0" client = get_client(test_id) - client.atoms.agent_versioning_revisions.diff( + client.agents.agent_versioning_revisions.diff( id="id", a="a", b="b", diff --git a/tests/wire/test_atoms_agentVersioningVersions.py b/tests/wire/test_atoms_agentVersioningVersions.py index e0f17b835..1b99d5354 100644 --- a/tests/wire/test_atoms_agentVersioningVersions.py +++ b/tests/wire/test_atoms_agentVersioningVersions.py @@ -5,7 +5,7 @@ def test_atoms_agentVersioningVersions_list_published_versions() -> None: """Test listPublishedVersions endpoint with WireMock""" test_id = "atoms.agent_versioning_versions.list_published_versions.0" client = get_client(test_id) - client.atoms.agent_versioning_versions.list_published_versions( + client.agents.agent_versioning_versions.list_published_versions( id="id", ) verify_request_count(test_id, "GET", "/agent/id/versions", None, 1) @@ -15,7 +15,7 @@ def test_atoms_agentVersioningVersions_diff_two_versions() -> None: """Test diffTwoVersions endpoint with WireMock""" test_id = "atoms.agent_versioning_versions.diff_two_versions.0" client = get_client(test_id) - client.atoms.agent_versioning_versions.diff_two_versions( + client.agents.agent_versioning_versions.diff_two_versions( id="id", version_a="versionA", version_b="versionB", @@ -27,7 +27,7 @@ def test_atoms_agentVersioningVersions_get_version_detail() -> None: """Test getVersionDetail endpoint with WireMock""" test_id = "atoms.agent_versioning_versions.get_version_detail.0" client = get_client(test_id) - client.atoms.agent_versioning_versions.get_version_detail( + client.agents.agent_versioning_versions.get_version_detail( id="id", version_id="versionId", ) @@ -38,7 +38,7 @@ def test_atoms_agentVersioningVersions_update_version_metadata() -> None: """Test update_version_metadata endpoint with WireMock""" test_id = "atoms.agent_versioning_versions.update_version_metadata.0" client = get_client(test_id) - client.atoms.agent_versioning_versions.update_version_metadata( + client.agents.agent_versioning_versions.update_version_metadata( id="id", version_id="versionId", ) @@ -49,7 +49,7 @@ def test_atoms_agentVersioningVersions_activate_version() -> None: """Test activate_version endpoint with WireMock""" test_id = "atoms.agent_versioning_versions.activate_version.0" client = get_client(test_id) - client.atoms.agent_versioning_versions.activate_version( + client.agents.agent_versioning_versions.activate_version( id="id", version_id="versionId", ) @@ -60,7 +60,7 @@ def test_atoms_agentVersioningVersions_test_call_with_version_config() -> None: """Test testCallWithVersionConfig endpoint with WireMock""" test_id = "atoms.agent_versioning_versions.test_call_with_version_config.0" client = get_client(test_id) - client.atoms.agent_versioning_versions.test_call_with_version_config( + client.agents.agent_versioning_versions.test_call_with_version_config( id="id", version_id="versionId", ) diff --git a/tests/wire/test_atoms_agents.py b/tests/wire/test_atoms_agents.py index bb6c1b0e0..0fab7287a 100644 --- a/tests/wire/test_atoms_agents.py +++ b/tests/wire/test_atoms_agents.py @@ -5,7 +5,7 @@ def test_atoms_agents_list_agents() -> None: """Test list_agents endpoint with WireMock""" test_id = "atoms.agents.list_agents.0" client = get_client(test_id) - client.atoms.agents.list_agents() + client.agents.agents.list_agents() verify_request_count(test_id, "GET", "/agent", None, 1) @@ -13,7 +13,7 @@ def test_atoms_agents_create_agent() -> None: """Test create_agent endpoint with WireMock""" test_id = "atoms.agents.create_agent.0" client = get_client(test_id) - client.atoms.agents.create_agent( + client.agents.agents.create_agent( name="name", ) verify_request_count(test_id, "POST", "/agent", None, 1) @@ -23,7 +23,7 @@ def test_atoms_agents_duplicate_agent() -> None: """Test duplicate_agent endpoint with WireMock""" test_id = "atoms.agents.duplicate_agent.0" client = get_client(test_id) - client.atoms.agents.duplicate_agent( + client.agents.agents.duplicate_agent( id="id", target_organization_id="60d0fe4f5311236168a109ca", ) @@ -34,7 +34,7 @@ def test_atoms_agents_get_agent() -> None: """Test get_agent endpoint with WireMock""" test_id = "atoms.agents.get_agent.0" client = get_client(test_id) - client.atoms.agents.get_agent( + client.agents.agents.get_agent( id="id", ) verify_request_count(test_id, "GET", "/agent/id", None, 1) @@ -44,7 +44,7 @@ def test_atoms_agents_update_agent() -> None: """Test update_agent endpoint with WireMock""" test_id = "atoms.agents.update_agent.0" client = get_client(test_id) - client.atoms.agents.update_agent( + client.agents.agents.update_agent( id="id", ) verify_request_count(test_id, "PATCH", "/agent/id", None, 1) @@ -54,7 +54,7 @@ def test_atoms_agents_get_agent_widget_config() -> None: """Test getAgentWidgetConfig endpoint with WireMock""" test_id = "atoms.agents.get_agent_widget_config.0" client = get_client(test_id) - client.atoms.agents.get_agent_widget_config( + client.agents.agents.get_agent_widget_config( id="id", ) verify_request_count(test_id, "GET", "/agent/id/widget-config", None, 1) @@ -64,7 +64,7 @@ def test_atoms_agents_update_agent_widget_config() -> None: """Test updateAgentWidgetConfig endpoint with WireMock""" test_id = "atoms.agents.update_agent_widget_config.0" client = get_client(test_id) - client.atoms.agents.update_agent_widget_config( + client.agents.agents.update_agent_widget_config( id="id", ) verify_request_count(test_id, "PATCH", "/agent/id/widget-config", None, 1) @@ -74,7 +74,7 @@ def test_atoms_agents_get_agent_avatar_presigned_url() -> None: """Test getAgentAvatarPresignedUrl endpoint with WireMock""" test_id = "atoms.agents.get_agent_avatar_presigned_url.0" client = get_client(test_id) - client.atoms.agents.get_agent_avatar_presigned_url( + client.agents.agents.get_agent_avatar_presigned_url( id="id", file_name="fileName", content_type="contentType", @@ -87,7 +87,7 @@ def test_atoms_agents_get_agent_call_logs() -> None: """Test getAgentCallLogs endpoint with WireMock""" test_id = "atoms.agents.get_agent_call_logs.0" client = get_client(test_id) - client.atoms.agents.get_agent_call_logs( + client.agents.agents.get_agent_call_logs( id="id", ) verify_request_count(test_id, "GET", "/agent/id/call-logs", None, 1) @@ -97,7 +97,7 @@ def test_atoms_agents_archive_agent() -> None: """Test archive_agent endpoint with WireMock""" test_id = "atoms.agents.archive_agent.0" client = get_client(test_id) - client.atoms.agents.archive_agent( + client.agents.agents.archive_agent( id="id", ) verify_request_count(test_id, "DELETE", "/agent/id/archive", None, 1) diff --git a/tests/wire/test_atoms_analytics.py b/tests/wire/test_atoms_analytics.py index 7b8fff8df..4b8016d62 100644 --- a/tests/wire/test_atoms_analytics.py +++ b/tests/wire/test_atoms_analytics.py @@ -7,7 +7,7 @@ def test_atoms_analytics_get_call_counts_log() -> None: """Test getCallCountsLog endpoint with WireMock""" test_id = "atoms.analytics.get_call_counts_log.0" client = get_client(test_id) - client.atoms.analytics.get_call_counts_log() + client.agents.analytics.get_call_counts_log() verify_request_count(test_id, "GET", "/analytics/call-counts-log", None, 1) @@ -15,7 +15,7 @@ def test_atoms_analytics_get_call_counts_by_day() -> None: """Test getCallCountsByDay endpoint with WireMock""" test_id = "atoms.analytics.get_call_counts_by_day.0" client = get_client(test_id) - client.atoms.analytics.get_call_counts_by_day() + client.agents.analytics.get_call_counts_by_day() verify_request_count(test_id, "GET", "/analytics/call-counts-by-day", None, 1) @@ -23,7 +23,7 @@ def test_atoms_analytics_get_conversation_details() -> None: """Test getConversationDetails endpoint with WireMock""" test_id = "atoms.analytics.get_conversation_details.0" client = get_client(test_id) - client.atoms.analytics.get_conversation_details( + client.agents.analytics.get_conversation_details( call_id="callId", ) verify_request_count(test_id, "GET", "/analytics/conversation-details/callId", None, 1) @@ -33,7 +33,7 @@ def test_atoms_analytics_get_usage_timeseries() -> None: """Test getUsageTimeseries endpoint with WireMock""" test_id = "atoms.analytics.get_usage_timeseries.0" client = get_client(test_id) - client.atoms.analytics.get_usage_timeseries() + client.agents.analytics.get_usage_timeseries() verify_request_count(test_id, "GET", "/analytics/usage/timeseries", None, 1) @@ -41,7 +41,7 @@ def test_atoms_analytics_get_dashboard() -> None: """Test getDashboard endpoint with WireMock""" test_id = "atoms.analytics.get_dashboard.0" client = get_client(test_id) - client.atoms.analytics.get_dashboard() + client.agents.analytics.get_dashboard() verify_request_count(test_id, "GET", "/analytics/dashboard", None, 1) @@ -49,7 +49,7 @@ def test_atoms_analytics_get_analytics_summary() -> None: """Test getAnalyticsSummary endpoint with WireMock""" test_id = "atoms.analytics.get_analytics_summary.0" client = get_client(test_id) - client.atoms.analytics.get_analytics_summary() + client.agents.analytics.get_analytics_summary() verify_request_count(test_id, "GET", "/analytics/summary", None, 1) @@ -57,7 +57,7 @@ def test_atoms_analytics_get_call_volume_timeseries() -> None: """Test getCallVolumeTimeseries endpoint with WireMock""" test_id = "atoms.analytics.get_call_volume_timeseries.0" client = get_client(test_id) - client.atoms.analytics.get_call_volume_timeseries() + client.agents.analytics.get_call_volume_timeseries() verify_request_count(test_id, "GET", "/analytics/call-volume-timeseries", None, 1) @@ -65,7 +65,7 @@ def test_atoms_analytics_get_pickup_rate_by_number() -> None: """Test getPickupRateByNumber endpoint with WireMock""" test_id = "atoms.analytics.get_pickup_rate_by_number.0" client = get_client(test_id) - client.atoms.analytics.get_pickup_rate_by_number() + client.agents.analytics.get_pickup_rate_by_number() verify_request_count(test_id, "GET", "/analytics/pickup-rate-by-number", None, 1) @@ -73,7 +73,7 @@ def test_atoms_analytics_get_phone_number_trends() -> None: """Test getPhoneNumberTrends endpoint with WireMock""" test_id = "atoms.analytics.get_phone_number_trends.0" client = get_client(test_id) - client.atoms.analytics.get_phone_number_trends() + client.agents.analytics.get_phone_number_trends() verify_request_count(test_id, "GET", "/analytics/phone-number-trends", None, 1) @@ -81,7 +81,7 @@ def test_atoms_analytics_get_hourly_performance() -> None: """Test getHourlyPerformance endpoint with WireMock""" test_id = "atoms.analytics.get_hourly_performance.0" client = get_client(test_id) - client.atoms.analytics.get_hourly_performance() + client.agents.analytics.get_hourly_performance() verify_request_count(test_id, "GET", "/analytics/hourly-performance", None, 1) @@ -89,7 +89,7 @@ def test_atoms_analytics_get_call_outcomes_timeseries() -> None: """Test getCallOutcomesTimeseries endpoint with WireMock""" test_id = "atoms.analytics.get_call_outcomes_timeseries.0" client = get_client(test_id) - client.atoms.analytics.get_call_outcomes_timeseries() + client.agents.analytics.get_call_outcomes_timeseries() verify_request_count(test_id, "GET", "/analytics/call-outcomes-timeseries", None, 1) @@ -97,7 +97,7 @@ def test_atoms_analytics_get_duration_stats() -> None: """Test getDurationStats endpoint with WireMock""" test_id = "atoms.analytics.get_duration_stats.0" client = get_client(test_id) - client.atoms.analytics.get_duration_stats() + client.agents.analytics.get_duration_stats() verify_request_count(test_id, "GET", "/analytics/duration-stats", None, 1) @@ -105,7 +105,7 @@ def test_atoms_analytics_get_weekly_trends() -> None: """Test getWeeklyTrends endpoint with WireMock""" test_id = "atoms.analytics.get_weekly_trends.0" client = get_client(test_id) - client.atoms.analytics.get_weekly_trends() + client.agents.analytics.get_weekly_trends() verify_request_count(test_id, "GET", "/analytics/weekly-trends", None, 1) @@ -113,7 +113,7 @@ def test_atoms_analytics_get_agent_performance() -> None: """Test getAgentPerformance endpoint with WireMock""" test_id = "atoms.analytics.get_agent_performance.0" client = get_client(test_id) - client.atoms.analytics.get_agent_performance() + client.agents.analytics.get_agent_performance() verify_request_count(test_id, "GET", "/analytics/agent-performance", None, 1) @@ -121,7 +121,7 @@ def test_atoms_analytics_get_analytics_concurrency() -> None: """Test getAnalyticsConcurrency endpoint with WireMock""" test_id = "atoms.analytics.get_analytics_concurrency.0" client = get_client(test_id) - client.atoms.analytics.get_analytics_concurrency( + client.agents.analytics.get_analytics_concurrency( date=datetime.date.fromisoformat("2023-01-15"), ) verify_request_count(test_id, "GET", "/analytics/concurrency", {"date": "2023-01-15"}, 1) @@ -131,7 +131,7 @@ def test_atoms_analytics_get_call_start_distribution() -> None: """Test getCallStartDistribution endpoint with WireMock""" test_id = "atoms.analytics.get_call_start_distribution.0" client = get_client(test_id) - client.atoms.analytics.get_call_start_distribution( + client.agents.analytics.get_call_start_distribution( date=datetime.date.fromisoformat("2023-01-15"), ) verify_request_count(test_id, "GET", "/analytics/call-start-distribution", {"date": "2023-01-15"}, 1) @@ -141,7 +141,7 @@ def test_atoms_analytics_get_daily_call_summary() -> None: """Test getDailyCallSummary endpoint with WireMock""" test_id = "atoms.analytics.get_daily_call_summary.0" client = get_client(test_id) - client.atoms.analytics.get_daily_call_summary( + client.agents.analytics.get_daily_call_summary( date=datetime.date.fromisoformat("2023-01-15"), ) verify_request_count(test_id, "GET", "/analytics/daily-call-summary", {"date": "2023-01-15"}, 1) @@ -151,5 +151,5 @@ def test_atoms_analytics_get_attempt_cohort() -> None: """Test getAttemptCohort endpoint with WireMock""" test_id = "atoms.analytics.get_attempt_cohort.0" client = get_client(test_id) - client.atoms.analytics.get_attempt_cohort() + client.agents.analytics.get_attempt_cohort() verify_request_count(test_id, "GET", "/analytics/attempt-cohort", None, 1) diff --git a/tests/wire/test_atoms_audience.py b/tests/wire/test_atoms_audience.py index 85de442a5..dc3046e3a 100644 --- a/tests/wire/test_atoms_audience.py +++ b/tests/wire/test_atoms_audience.py @@ -5,7 +5,7 @@ def test_atoms_audience_list_() -> None: """Test list endpoint with WireMock""" test_id = "atoms.audience.list_.0" client = get_client(test_id) - client.atoms.audience.list() + client.agents.audience.list() verify_request_count(test_id, "GET", "/audience", None, 1) @@ -13,7 +13,7 @@ def test_atoms_audience_create_audience_with_csv_upload() -> None: """Test createAudienceWithCsvUpload endpoint with WireMock""" test_id = "atoms.audience.create_audience_with_csv_upload.0" client = get_client(test_id) - client.atoms.audience.create_audience_with_csv_upload( + client.agents.audience.create_audience_with_csv_upload( file="example_file", name="name", phone_number_column_name="phoneNumberColumnName", @@ -25,7 +25,7 @@ def test_atoms_audience_get() -> None: """Test get endpoint with WireMock""" test_id = "atoms.audience.get.0" client = get_client(test_id) - client.atoms.audience.get( + client.agents.audience.get( id="60d0fe4f5311236168a109ca", ) verify_request_count(test_id, "GET", "/audience/60d0fe4f5311236168a109ca", None, 1) @@ -35,7 +35,7 @@ def test_atoms_audience_delete_audience() -> None: """Test deleteAudience endpoint with WireMock""" test_id = "atoms.audience.delete_audience.0" client = get_client(test_id) - client.atoms.audience.delete_audience( + client.agents.audience.delete_audience( id="60d0fe4f5311236168a109ca", ) verify_request_count(test_id, "DELETE", "/audience/60d0fe4f5311236168a109ca", None, 1) @@ -45,7 +45,7 @@ def test_atoms_audience_get_audience_members() -> None: """Test getAudienceMembers endpoint with WireMock""" test_id = "atoms.audience.get_audience_members.0" client = get_client(test_id) - client.atoms.audience.get_audience_members( + client.agents.audience.get_audience_members( id="60d0fe4f5311236168a109ca", page=1, offset=10, @@ -57,7 +57,7 @@ def test_atoms_audience_add_audience_members() -> None: """Test addAudienceMembers endpoint with WireMock""" test_id = "atoms.audience.add_audience_members.0" client = get_client(test_id) - client.atoms.audience.add_audience_members( + client.agents.audience.add_audience_members( id="60d0fe4f5311236168a109ca", members=[{"phoneNumber": "+1234567890", "name": "John Doe", "email": "john@example.com"}], ) @@ -68,7 +68,7 @@ def test_atoms_audience_delete_audience_members() -> None: """Test deleteAudienceMembers endpoint with WireMock""" test_id = "atoms.audience.delete_audience_members.0" client = get_client(test_id) - client.atoms.audience.delete_audience_members( + client.agents.audience.delete_audience_members( id="60d0fe4f5311236168a109ca", member_ids=["60d0fe4f5311236168a109cd"], ) @@ -79,7 +79,7 @@ def test_atoms_audience_search_audience_members() -> None: """Test searchAudienceMembers endpoint with WireMock""" test_id = "atoms.audience.search_audience_members.0" client = get_client(test_id) - client.atoms.audience.search_audience_members( + client.agents.audience.search_audience_members( id="60d0fe4f5311236168a109ca", query="john", ) diff --git a/tests/wire/test_atoms_billing.py b/tests/wire/test_atoms_billing.py index 11fe0e3d5..c879bfcef 100644 --- a/tests/wire/test_atoms_billing.py +++ b/tests/wire/test_atoms_billing.py @@ -7,7 +7,7 @@ def test_atoms_billing_get_balance() -> None: """Test get_balance endpoint with WireMock""" test_id = "atoms.billing.get_balance.0" client = get_client(test_id) - client.atoms.billing.get_balance() + client.agents.billing.get_balance() verify_request_count(test_id, "GET", "/payment/v1/credits/balance", None, 1) @@ -15,7 +15,7 @@ def test_atoms_billing_get_ledger() -> None: """Test get_ledger endpoint with WireMock""" test_id = "atoms.billing.get_ledger.0" client = get_client(test_id) - client.atoms.billing.get_ledger( + client.agents.billing.get_ledger( from_=datetime.datetime.fromisoformat("2026-07-01T00:00:00+00:00"), to=datetime.datetime.fromisoformat("2026-07-28T00:00:00+00:00"), ) @@ -28,7 +28,7 @@ def test_atoms_billing_get_usage_breakdown() -> None: """Test get_usage_breakdown endpoint with WireMock""" test_id = "atoms.billing.get_usage_breakdown.0" client = get_client(test_id) - client.atoms.billing.get_usage_breakdown() + client.agents.billing.get_usage_breakdown() verify_request_count(test_id, "GET", "/payment/v1/credits/usage/breakdown", None, 1) @@ -36,7 +36,7 @@ def test_atoms_billing_list_invoices() -> None: """Test list_invoices endpoint with WireMock""" test_id = "atoms.billing.list_invoices.0" client = get_client(test_id) - client.atoms.billing.list_invoices() + client.agents.billing.list_invoices() verify_request_count(test_id, "GET", "/payment/v1/invoices", None, 1) @@ -44,7 +44,7 @@ def test_atoms_billing_get_invoice_pdf() -> None: """Test get_invoice_pdf endpoint with WireMock""" test_id = "atoms.billing.get_invoice_pdf.0" client = get_client(test_id) - client.atoms.billing.get_invoice_pdf( + client.agents.billing.get_invoice_pdf( invoice_id="invoiceId", ) verify_request_count(test_id, "GET", "/payment/v1/invoices/invoiceId/pdf", None, 1) diff --git a/tests/wire/test_atoms_callActions.py b/tests/wire/test_atoms_callActions.py index fce6bff37..308eee2b1 100644 --- a/tests/wire/test_atoms_callActions.py +++ b/tests/wire/test_atoms_callActions.py @@ -1,13 +1,13 @@ from .conftest import get_client, verify_request_count -from smallestai.atoms.call_actions import CreateCallActionRequestConfig +from smallestai.agents.call_actions import CreateCallActionRequestConfig def test_atoms_callActions_list_call_actions() -> None: """Test listCallActions endpoint with WireMock""" test_id = "atoms.call_actions.list_call_actions.0" client = get_client(test_id) - client.atoms.call_actions.list_call_actions( + client.agents.call_actions.list_call_actions( agent_id="agentId", ) verify_request_count(test_id, "GET", "/call-actions", {"agentId": "agentId"}, 1) @@ -17,7 +17,7 @@ def test_atoms_callActions_create_call_action() -> None: """Test createCallAction endpoint with WireMock""" test_id = "atoms.call_actions.create_call_action.0" client = get_client(test_id) - client.atoms.call_actions.create_call_action( + client.agents.call_actions.create_call_action( agent_id="agentId", category="trigger", provider="provider", @@ -30,7 +30,7 @@ def test_atoms_callActions_get_call_action() -> None: """Test getCallAction endpoint with WireMock""" test_id = "atoms.call_actions.get_call_action.0" client = get_client(test_id) - client.atoms.call_actions.get_call_action( + client.agents.call_actions.get_call_action( id="id", ) verify_request_count(test_id, "GET", "/call-actions/id", None, 1) @@ -40,7 +40,7 @@ def test_atoms_callActions_update_call_action() -> None: """Test updateCallAction endpoint with WireMock""" test_id = "atoms.call_actions.update_call_action.0" client = get_client(test_id) - client.atoms.call_actions.update_call_action( + client.agents.call_actions.update_call_action( id="id", ) verify_request_count(test_id, "PUT", "/call-actions/id", None, 1) @@ -50,7 +50,7 @@ def test_atoms_callActions_delete_call_action() -> None: """Test deleteCallAction endpoint with WireMock""" test_id = "atoms.call_actions.delete_call_action.0" client = get_client(test_id) - client.atoms.call_actions.delete_call_action( + client.agents.call_actions.delete_call_action( id="id", ) verify_request_count(test_id, "DELETE", "/call-actions/id", None, 1) diff --git a/tests/wire/test_atoms_calls.py b/tests/wire/test_atoms_calls.py index 27e45f1d6..d7a8b080d 100644 --- a/tests/wire/test_atoms_calls.py +++ b/tests/wire/test_atoms_calls.py @@ -7,7 +7,7 @@ def test_atoms_calls_list_() -> None: """Test list endpoint with WireMock""" test_id = "atoms.calls.list_.0" client = get_client(test_id) - client.atoms.calls.list( + client.agents.calls.list( agent_ids="60d0fe4f5311236168a109ca,60d0fe4f5311236168a109cb", campaign_ids="60d0fe4f5311236168a109ca,60d0fe4f5311236168a109cb", search="+1234567890", @@ -41,7 +41,7 @@ def test_atoms_calls_search() -> None: """Test search endpoint with WireMock""" test_id = "atoms.calls.search.0" client = get_client(test_id) - client.atoms.calls.search( + client.agents.calls.search( call_ids=["CALL-1737000000000-abc123", "CALL-1737000000001-def456"], ) verify_request_count(test_id, "POST", "/conversation/search", None, 1) @@ -51,7 +51,7 @@ def test_atoms_calls_get() -> None: """Test get endpoint with WireMock""" test_id = "atoms.calls.get.0" client = get_client(test_id) - client.atoms.calls.get( + client.agents.calls.get( id="CALL-1737000000000-abc123", ) verify_request_count(test_id, "GET", "/conversation/CALL-1737000000000-abc123", None, 1) @@ -61,7 +61,7 @@ def test_atoms_calls_start_outbound_call() -> None: """Test start_outbound_call endpoint with WireMock""" test_id = "atoms.calls.start_outbound_call.0" client = get_client(test_id) - client.atoms.calls.start_outbound_call( + client.agents.calls.start_outbound_call( agent_id="60d0fe4f5311236168a109ca", phone_number="+1234567890", ) diff --git a/tests/wire/test_atoms_campaigns.py b/tests/wire/test_atoms_campaigns.py index abf61846a..c51313d28 100644 --- a/tests/wire/test_atoms_campaigns.py +++ b/tests/wire/test_atoms_campaigns.py @@ -5,7 +5,7 @@ def test_atoms_campaigns_list_() -> None: """Test list endpoint with WireMock""" test_id = "atoms.campaigns.list_.0" client = get_client(test_id) - client.atoms.campaigns.list() + client.agents.campaigns.list() verify_request_count(test_id, "GET", "/campaign", None, 1) @@ -13,7 +13,7 @@ def test_atoms_campaigns_create() -> None: """Test create endpoint with WireMock""" test_id = "atoms.campaigns.create.0" client = get_client(test_id) - client.atoms.campaigns.create( + client.agents.campaigns.create( name="My Campaign", audience_id="60d0fe4f5311236168a109ca", agent_id="60d0fe4f5311236168a109ca", @@ -25,7 +25,7 @@ def test_atoms_campaigns_get() -> None: """Test get endpoint with WireMock""" test_id = "atoms.campaigns.get.0" client = get_client(test_id) - client.atoms.campaigns.get( + client.agents.campaigns.get( id="id", ) verify_request_count(test_id, "GET", "/campaign/id", None, 1) @@ -35,7 +35,7 @@ def test_atoms_campaigns_delete() -> None: """Test delete endpoint with WireMock""" test_id = "atoms.campaigns.delete.0" client = get_client(test_id) - client.atoms.campaigns.delete( + client.agents.campaigns.delete( id="id", ) verify_request_count(test_id, "DELETE", "/campaign/id", None, 1) @@ -45,7 +45,7 @@ def test_atoms_campaigns_start_or_resume() -> None: """Test start_or_resume endpoint with WireMock""" test_id = "atoms.campaigns.start_or_resume.0" client = get_client(test_id) - client.atoms.campaigns.start_or_resume( + client.agents.campaigns.start_or_resume( id="id", ) verify_request_count(test_id, "POST", "/campaign/id/start", None, 1) @@ -55,7 +55,7 @@ def test_atoms_campaigns_pause() -> None: """Test pause endpoint with WireMock""" test_id = "atoms.campaigns.pause.0" client = get_client(test_id) - client.atoms.campaigns.pause( + client.agents.campaigns.pause( id="id", ) verify_request_count(test_id, "POST", "/campaign/id/pause", None, 1) diff --git a/tests/wire/test_atoms_compliance.py b/tests/wire/test_atoms_compliance.py index 9ab110e05..2d3c7740b 100644 --- a/tests/wire/test_atoms_compliance.py +++ b/tests/wire/test_atoms_compliance.py @@ -5,7 +5,7 @@ def test_atoms_compliance_get_compliance_status() -> None: """Test getComplianceStatus endpoint with WireMock""" test_id = "atoms.compliance.get_compliance_status.0" client = get_client(test_id) - client.atoms.compliance.get_compliance_status( + client.agents.compliance.get_compliance_status( country_iso="IN", number_type="local", user_type="individual", @@ -19,7 +19,7 @@ def test_atoms_compliance_get_compliance_requirements() -> None: """Test getComplianceRequirements endpoint with WireMock""" test_id = "atoms.compliance.get_compliance_requirements.0" client = get_client(test_id) - client.atoms.compliance.get_compliance_requirements( + client.agents.compliance.get_compliance_requirements( country_iso="IN", number_type="local", user_type="individual", @@ -37,7 +37,7 @@ def test_atoms_compliance_submit() -> None: """Test submit endpoint with WireMock""" test_id = "atoms.compliance.submit.0" client = get_client(test_id) - client.atoms.compliance.submit( + client.agents.compliance.submit( files=["example_files"], country_iso="countryIso", number_type="local", @@ -52,7 +52,7 @@ def test_atoms_compliance_resubmit() -> None: """Test resubmit endpoint with WireMock""" test_id = "atoms.compliance.resubmit.0" client = get_client(test_id) - client.atoms.compliance.resubmit( + client.agents.compliance.resubmit( id="id", files=["example_files"], documents="documents", @@ -64,7 +64,7 @@ def test_atoms_compliance_refresh_compliance_application_status() -> None: """Test refreshComplianceApplicationStatus endpoint with WireMock""" test_id = "atoms.compliance.refresh_compliance_application_status.0" client = get_client(test_id) - client.atoms.compliance.refresh_compliance_application_status( + client.agents.compliance.refresh_compliance_application_status( id="id", ) verify_request_count(test_id, "POST", "/compliance/applications/id/refresh", None, 1) diff --git a/tests/wire/test_atoms_concurrency.py b/tests/wire/test_atoms_concurrency.py index 2a00cd83d..55bd9687d 100644 --- a/tests/wire/test_atoms_concurrency.py +++ b/tests/wire/test_atoms_concurrency.py @@ -1,13 +1,13 @@ from .conftest import get_client, verify_request_count -from smallestai.atoms.concurrency import UpdateConcurrencyReservationsRequestReservationsItem +from smallestai.agents.concurrency import UpdateConcurrencyReservationsRequestReservationsItem def test_atoms_concurrency_get_concurrency() -> None: """Test getConcurrency endpoint with WireMock""" test_id = "atoms.concurrency.get_concurrency.0" client = get_client(test_id) - client.atoms.concurrency.get_concurrency() + client.agents.concurrency.get_concurrency() verify_request_count(test_id, "GET", "/concurrency", None, 1) @@ -15,7 +15,7 @@ def test_atoms_concurrency_update_concurrency_reservations() -> None: """Test updateConcurrencyReservations endpoint with WireMock""" test_id = "atoms.concurrency.update_concurrency_reservations.0" client = get_client(test_id) - client.atoms.concurrency.update_concurrency_reservations( + client.agents.concurrency.update_concurrency_reservations( reservations=[ UpdateConcurrencyReservationsRequestReservationsItem( agent_id="agentId", diff --git a/tests/wire/test_atoms_conversations.py b/tests/wire/test_atoms_conversations.py index f97f89938..fd4d52abf 100644 --- a/tests/wire/test_atoms_conversations.py +++ b/tests/wire/test_atoms_conversations.py @@ -5,7 +5,7 @@ def test_atoms_conversations_get_a_time_limited_recording_download_url() -> None """Test getATimeLimitedRecordingDownloadUrl endpoint with WireMock""" test_id = "atoms.conversations.get_a_time_limited_recording_download_url.0" client = get_client(test_id) - client.atoms.conversations.get_a_time_limited_recording_download_url( + client.agents.conversations.get_a_time_limited_recording_download_url( call_id="CALL-1781127346211-e765f7", ) verify_request_count(test_id, "GET", "/conversation/CALL-1781127346211-e765f7/recording/download-url", None, 1) @@ -15,7 +15,7 @@ def test_atoms_conversations_list_retry_attempts() -> None: """Test list_retry_attempts endpoint with WireMock""" test_id = "atoms.conversations.list_retry_attempts.0" client = get_client(test_id) - client.atoms.conversations.list_retry_attempts( + client.agents.conversations.list_retry_attempts( call_id="callId", ) verify_request_count(test_id, "GET", "/conversation/callId/retries", None, 1) @@ -25,7 +25,7 @@ def test_atoms_conversations_cancel() -> None: """Test cancel endpoint with WireMock""" test_id = "atoms.conversations.cancel.0" client = get_client(test_id) - client.atoms.conversations.cancel( + client.agents.conversations.cancel( call_id="CALL-1778226705739-7e4c17", ) verify_request_count(test_id, "POST", "/conversation/cancel", None, 1) @@ -35,7 +35,7 @@ def test_atoms_conversations_cancel_queued() -> None: """Test cancel_queued endpoint with WireMock""" test_id = "atoms.conversations.cancel_queued.0" client = get_client(test_id) - client.atoms.conversations.cancel_queued( + client.agents.conversations.cancel_queued( call_id="CALL-1781127346211-e765f7", ) verify_request_count(test_id, "POST", "/conversation/CALL-1781127346211-e765f7/cancel", None, 1) diff --git a/tests/wire/test_atoms_dispositionMetricTemplates.py b/tests/wire/test_atoms_dispositionMetricTemplates.py index 21cd86a54..3d447e42b 100644 --- a/tests/wire/test_atoms_dispositionMetricTemplates.py +++ b/tests/wire/test_atoms_dispositionMetricTemplates.py @@ -5,5 +5,5 @@ def test_atoms_dispositionMetricTemplates_list_disposition_metric_templates() -> """Test listDispositionMetricTemplates endpoint with WireMock""" test_id = "atoms.disposition_metric_templates.list_disposition_metric_templates.0" client = get_client(test_id) - client.atoms.disposition_metric_templates.list_disposition_metric_templates() + client.agents.disposition_metric_templates.list_disposition_metric_templates() verify_request_count(test_id, "GET", "/disposition-metric-templates", None, 1) diff --git a/tests/wire/test_atoms_dnc.py b/tests/wire/test_atoms_dnc.py index ea1f339a5..724eb1756 100644 --- a/tests/wire/test_atoms_dnc.py +++ b/tests/wire/test_atoms_dnc.py @@ -5,5 +5,5 @@ def test_atoms_dnc_list_() -> None: """Test list endpoint with WireMock""" test_id = "atoms.dnc.list_.0" client = get_client(test_id) - client.atoms.dnc.list() + client.agents.dnc.list() verify_request_count(test_id, "GET", "/dnc", None, 1) diff --git a/tests/wire/test_atoms_integrations.py b/tests/wire/test_atoms_integrations.py index e2dbc0a9a..37fbc5f7a 100644 --- a/tests/wire/test_atoms_integrations.py +++ b/tests/wire/test_atoms_integrations.py @@ -1,13 +1,13 @@ from .conftest import get_client, verify_request_count -from smallestai.atoms import WebEngageIntegrationSet +from smallestai.agents import WebEngageIntegrationSet def test_atoms_integrations_modify_web_engage_integration() -> None: """Test modifyWebEngageIntegration endpoint with WireMock""" test_id = "atoms.integrations.modify_web_engage_integration.0" client = get_client(test_id) - client.atoms.integrations.modify_web_engage_integration( + client.agents.integrations.modify_web_engage_integration( integration_sets=[ WebEngageIntegrationSet( license_code="licenseCode", @@ -23,5 +23,5 @@ def test_atoms_integrations_get_web_engage_details() -> None: """Test getWebEngageDetails endpoint with WireMock""" test_id = "atoms.integrations.get_web_engage_details.0" client = get_client(test_id) - client.atoms.integrations.get_web_engage_details() + client.agents.integrations.get_web_engage_details() verify_request_count(test_id, "GET", "/integration/get-webengage-details", None, 1) diff --git a/tests/wire/test_atoms_knowledgeBase.py b/tests/wire/test_atoms_knowledgeBase.py index 63b35b15e..77b3be6dd 100644 --- a/tests/wire/test_atoms_knowledgeBase.py +++ b/tests/wire/test_atoms_knowledgeBase.py @@ -5,7 +5,7 @@ def test_atoms_knowledgeBase_list_() -> None: """Test list endpoint with WireMock""" test_id = "atoms.knowledge_base.list_.0" client = get_client(test_id) - client.atoms.knowledge_base.list() + client.agents.knowledge_base.list() verify_request_count(test_id, "GET", "/knowledgebase", None, 1) @@ -13,7 +13,7 @@ def test_atoms_knowledgeBase_create() -> None: """Test create endpoint with WireMock""" test_id = "atoms.knowledge_base.create.0" client = get_client(test_id) - client.atoms.knowledge_base.create( + client.agents.knowledge_base.create( name="name", ) verify_request_count(test_id, "POST", "/knowledgebase", None, 1) @@ -23,7 +23,7 @@ def test_atoms_knowledgeBase_get() -> None: """Test get endpoint with WireMock""" test_id = "atoms.knowledge_base.get.0" client = get_client(test_id) - client.atoms.knowledge_base.get( + client.agents.knowledge_base.get( id="id", ) verify_request_count(test_id, "GET", "/knowledgebase/id", None, 1) @@ -33,7 +33,7 @@ def test_atoms_knowledgeBase_update_a_knowledge_base_name_description() -> None: """Test updateAKnowledgeBaseNameDescription endpoint with WireMock""" test_id = "atoms.knowledge_base.update_a_knowledge_base_name_description.0" client = get_client(test_id) - client.atoms.knowledge_base.update_a_knowledge_base_name_description( + client.agents.knowledge_base.update_a_knowledge_base_name_description( id="id", name="Q4 Pricing Updates", ) @@ -44,7 +44,7 @@ def test_atoms_knowledgeBase_delete() -> None: """Test delete endpoint with WireMock""" test_id = "atoms.knowledge_base.delete.0" client = get_client(test_id) - client.atoms.knowledge_base.delete( + client.agents.knowledge_base.delete( id="id", ) verify_request_count(test_id, "DELETE", "/knowledgebase/id", None, 1) @@ -54,7 +54,7 @@ def test_atoms_knowledgeBase_get_all_knowledge_base_items() -> None: """Test getAllKnowledgeBaseItems endpoint with WireMock""" test_id = "atoms.knowledge_base.get_all_knowledge_base_items.0" client = get_client(test_id) - client.atoms.knowledge_base.get_all_knowledge_base_items( + client.agents.knowledge_base.get_all_knowledge_base_items( id="id", ) verify_request_count(test_id, "GET", "/knowledgebase/id/items", None, 1) @@ -64,7 +64,7 @@ def test_atoms_knowledgeBase_delete_a_knowledge_base_item() -> None: """Test deleteAKnowledgeBaseItem endpoint with WireMock""" test_id = "atoms.knowledge_base.delete_a_knowledge_base_item.0" client = get_client(test_id) - client.atoms.knowledge_base.delete_a_knowledge_base_item( + client.agents.knowledge_base.delete_a_knowledge_base_item( knowledge_base_id="knowledgeBaseId", knowledge_base_item_id="knowledgeBaseItemId", ) @@ -75,7 +75,7 @@ def test_atoms_knowledgeBase_upload_a_pdf_file_to_a_knowledge_base() -> None: """Test uploadAPdfFileToAKnowledgeBase endpoint with WireMock""" test_id = "atoms.knowledge_base.upload_a_pdf_file_to_a_knowledge_base.0" client = get_client(test_id) - client.atoms.knowledge_base.upload_a_pdf_file_to_a_knowledge_base( + client.agents.knowledge_base.upload_a_pdf_file_to_a_knowledge_base( id="id", media="example_media", ) @@ -86,7 +86,7 @@ def test_atoms_knowledgeBase_get_a_presigned_s3url_for_direct_file_upload() -> N """Test getAPresignedS3UrlForDirectFileUpload endpoint with WireMock""" test_id = "atoms.knowledge_base.get_a_presigned_s3url_for_direct_file_upload.0" client = get_client(test_id) - client.atoms.knowledge_base.get_a_presigned_s3url_for_direct_file_upload( + client.agents.knowledge_base.get_a_presigned_s3url_for_direct_file_upload( file_name="company-handbook.pdf", file_size=2457600, content_type="application/pdf", @@ -99,7 +99,7 @@ def test_atoms_knowledgeBase_complete_a_presigned_url_upload_and_start_processin """Test completeAPresignedUrlUploadAndStartProcessing endpoint with WireMock""" test_id = "atoms.knowledge_base.complete_a_presigned_url_upload_and_start_processing.0" client = get_client(test_id) - client.atoms.knowledge_base.complete_a_presigned_url_upload_and_start_processing( + client.agents.knowledge_base.complete_a_presigned_url_upload_and_start_processing( file_name="company-handbook.pdf", content_type="application/pdf", knowledge_base_id="6867ca76d0f8f2e0f4201281", @@ -113,7 +113,7 @@ def test_atoms_knowledgeBase_extract_sitemap_urls() -> None: """Test extract_sitemap_urls endpoint with WireMock""" test_id = "atoms.knowledge_base.extract_sitemap_urls.0" client = get_client(test_id) - client.atoms.knowledge_base.extract_sitemap_urls( + client.agents.knowledge_base.extract_sitemap_urls( site_url="https://example.com/sitemap.xml", knowledge_base_id="6867ca76d0f8f2e0f4201281", ) @@ -124,7 +124,7 @@ def test_atoms_knowledgeBase_scrape_urls() -> None: """Test scrape_urls endpoint with WireMock""" test_id = "atoms.knowledge_base.scrape_urls.0" client = get_client(test_id) - client.atoms.knowledge_base.scrape_urls( + client.agents.knowledge_base.scrape_urls( id="id", urls=["https://example.com/pricing", "https://example.com/faq"], ) @@ -135,7 +135,7 @@ def test_atoms_knowledgeBase_list_scraped_ur_ls_in_a_knowledge_base_their_status """Test listScrapedUrLsInAKnowledgeBaseTheirStatus endpoint with WireMock""" test_id = "atoms.knowledge_base.list_scraped_ur_ls_in_a_knowledge_base_their_status.0" client = get_client(test_id) - client.atoms.knowledge_base.list_scraped_ur_ls_in_a_knowledge_base_their_status( + client.agents.knowledge_base.list_scraped_ur_ls_in_a_knowledge_base_their_status( id="id", ) verify_request_count(test_id, "GET", "/knowledgebase/id/scraped-urls", None, 1) @@ -145,7 +145,7 @@ def test_atoms_knowledgeBase_delete_a_scraped_url_from_a_knowledge_base() -> Non """Test deleteAScrapedUrlFromAKnowledgeBase endpoint with WireMock""" test_id = "atoms.knowledge_base.delete_a_scraped_url_from_a_knowledge_base.0" client = get_client(test_id) - client.atoms.knowledge_base.delete_a_scraped_url_from_a_knowledge_base( + client.agents.knowledge_base.delete_a_scraped_url_from_a_knowledge_base( knowledge_base_id="knowledgeBaseId", knowledge_base_scraped_urls_id="knowledgeBaseScrapedUrlsId", ) diff --git a/tests/wire/test_atoms_liveTranscripts.py b/tests/wire/test_atoms_liveTranscripts.py index 5bec6cd56..68f68438d 100644 --- a/tests/wire/test_atoms_liveTranscripts.py +++ b/tests/wire/test_atoms_liveTranscripts.py @@ -5,7 +5,7 @@ def test_atoms_liveTranscripts_subscribe_to_live_events() -> None: """Test subscribe_to_live_events endpoint with WireMock""" test_id = "atoms.live_transcripts.subscribe_to_live_events.0" client = get_client(test_id) - for _ in client.atoms.live_transcripts.subscribe_to_live_events( + for _ in client.agents.live_transcripts.subscribe_to_live_events( call_id="CALL-1758124225863-80752e", ): pass diff --git a/tests/wire/test_atoms_organization.py b/tests/wire/test_atoms_organization.py index b00e73d24..9535fc1b8 100644 --- a/tests/wire/test_atoms_organization.py +++ b/tests/wire/test_atoms_organization.py @@ -5,5 +5,5 @@ def test_atoms_organization_get_organization_details() -> None: """Test getOrganizationDetails endpoint with WireMock""" test_id = "atoms.organization.get_organization_details.0" client = get_client(test_id) - client.atoms.organization.get_organization_details() + client.agents.organization.get_organization_details() verify_request_count(test_id, "GET", "/organization", None, 1) diff --git a/tests/wire/test_atoms_phoneNumbers.py b/tests/wire/test_atoms_phoneNumbers.py index 5e15c55cc..e665993b2 100644 --- a/tests/wire/test_atoms_phoneNumbers.py +++ b/tests/wire/test_atoms_phoneNumbers.py @@ -5,7 +5,7 @@ def test_atoms_phoneNumbers_list_() -> None: """Test list endpoint with WireMock""" test_id = "atoms.phone_numbers.list_.0" client = get_client(test_id) - client.atoms.phone_numbers.list() + client.agents.phone_numbers.list() verify_request_count(test_id, "GET", "/product/phone-numbers", None, 1) @@ -13,7 +13,7 @@ def test_atoms_phoneNumbers_list_all_phone_numbers_platform_sip() -> None: """Test listAllPhoneNumbersPlatformSip endpoint with WireMock""" test_id = "atoms.phone_numbers.list_all_phone_numbers_platform_sip.0" client = get_client(test_id) - client.atoms.phone_numbers.list_all_phone_numbers_platform_sip() + client.agents.phone_numbers.list_all_phone_numbers_platform_sip() verify_request_count(test_id, "GET", "/product/all-numbers", None, 1) @@ -21,7 +21,7 @@ def test_atoms_phoneNumbers_search_rentable() -> None: """Test search_rentable endpoint with WireMock""" test_id = "atoms.phone_numbers.search_rentable.0" client = get_client(test_id) - client.atoms.phone_numbers.search_rentable( + client.agents.phone_numbers.search_rentable( country_code="US", provider="plivo", ) @@ -34,7 +34,7 @@ def test_atoms_phoneNumbers_preview_prorated_rental_cost_for_renting_a_phone_num """Test previewProratedRentalCostForRentingAPhoneNumberToday endpoint with WireMock""" test_id = "atoms.phone_numbers.preview_prorated_rental_cost_for_renting_a_phone_number_today.0" client = get_client(test_id) - client.atoms.phone_numbers.preview_prorated_rental_cost_for_renting_a_phone_number_today() + client.agents.phone_numbers.preview_prorated_rental_cost_for_renting_a_phone_number_today() verify_request_count(test_id, "GET", "/product/proration-amount", None, 1) @@ -42,7 +42,7 @@ def test_atoms_phoneNumbers_rent() -> None: """Test rent endpoint with WireMock""" test_id = "atoms.phone_numbers.rent.0" client = get_client(test_id) - client.atoms.phone_numbers.rent( + client.agents.phone_numbers.rent( phone_number="13183747513", provider="plivo", ) @@ -53,7 +53,7 @@ def test_atoms_phoneNumbers_release() -> None: """Test release endpoint with WireMock""" test_id = "atoms.phone_numbers.release.0" client = get_client(test_id) - client.atoms.phone_numbers.release( + client.agents.phone_numbers.release( product_id="6969109c84c74bed175f02a7", ) verify_request_count(test_id, "POST", "/product/release-number", None, 1) @@ -63,7 +63,7 @@ def test_atoms_phoneNumbers_get_stripe_customer_portal_url() -> None: """Test getStripeCustomerPortalUrl endpoint with WireMock""" test_id = "atoms.phone_numbers.get_stripe_customer_portal_url.0" client = get_client(test_id) - client.atoms.phone_numbers.get_stripe_customer_portal_url() + client.agents.phone_numbers.get_stripe_customer_portal_url() verify_request_count(test_id, "GET", "/product/manage-subscription", None, 1) @@ -71,7 +71,7 @@ def test_atoms_phoneNumbers_check_whether_the_organization_has_unpaid_invoices() """Test checkWhetherTheOrganizationHasUnpaidInvoices endpoint with WireMock""" test_id = "atoms.phone_numbers.check_whether_the_organization_has_unpaid_invoices.0" client = get_client(test_id) - client.atoms.phone_numbers.check_whether_the_organization_has_unpaid_invoices() + client.agents.phone_numbers.check_whether_the_organization_has_unpaid_invoices() verify_request_count(test_id, "GET", "/product/unpaid-invoices", None, 1) @@ -79,7 +79,7 @@ def test_atoms_phoneNumbers_import_sip() -> None: """Test import_sip endpoint with WireMock""" test_id = "atoms.phone_numbers.import_sip.0" client = get_client(test_id) - client.atoms.phone_numbers.import_sip( + client.agents.phone_numbers.import_sip( phone_number="+14155551234", sip_termination_url="trunk.your-provider.com", name="Main Support Line", diff --git a/tests/wire/test_atoms_promptScoring.py b/tests/wire/test_atoms_promptScoring.py index d6e2ce3eb..e7ba46848 100644 --- a/tests/wire/test_atoms_promptScoring.py +++ b/tests/wire/test_atoms_promptScoring.py @@ -1,13 +1,13 @@ from .conftest import get_client, verify_request_count -from smallestai.atoms.prompt_scoring import PostPromptScoringScoreRequestVersionId +from smallestai.agents.prompt_scoring import PostPromptScoringScoreRequestVersionId def test_atoms_promptScoring_score_a_prompt() -> None: """Test scoreAPrompt endpoint with WireMock""" test_id = "atoms.prompt_scoring.score_a_prompt.0" client = get_client(test_id) - client.atoms.prompt_scoring.score_a_prompt( + client.agents.prompt_scoring.score_a_prompt( request=PostPromptScoringScoreRequestVersionId( version_id="6a1589b75e048394eb37bc47", ), diff --git a/tests/wire/test_atoms_realtime.py b/tests/wire/test_atoms_realtime.py index 1320a2127..9398cb71a 100644 --- a/tests/wire/test_atoms_realtime.py +++ b/tests/wire/test_atoms_realtime.py @@ -5,7 +5,7 @@ def test_atoms_realtime_register_call() -> None: """Test register_call endpoint with WireMock""" test_id = "atoms.realtime.register_call.0" client = get_client(test_id) - client.atoms.realtime.register_call( + client.agents.realtime.register_call( agent_id="69da0b4c20c0e03cfa4ee258", ) verify_request_count(test_id, "POST", "/conversation/register-call", None, 1) diff --git a/tests/wire/test_atoms_user.py b/tests/wire/test_atoms_user.py index aa8eac3de..59864c7de 100644 --- a/tests/wire/test_atoms_user.py +++ b/tests/wire/test_atoms_user.py @@ -5,5 +5,5 @@ def test_atoms_user_get_user_details() -> None: """Test getUserDetails endpoint with WireMock""" test_id = "atoms.user.get_user_details.0" client = get_client(test_id) - client.atoms.user.get_user_details() + client.agents.user.get_user_details() verify_request_count(test_id, "GET", "/user", None, 1) diff --git a/tests/wire/test_atoms_webhooks.py b/tests/wire/test_atoms_webhooks.py index 3aad0fb41..121e38e3b 100644 --- a/tests/wire/test_atoms_webhooks.py +++ b/tests/wire/test_atoms_webhooks.py @@ -1,13 +1,13 @@ from .conftest import get_client, verify_request_count -from smallestai.atoms.webhooks import CreateWebhooksRequestEventsItem +from smallestai.agents.webhooks import CreateWebhooksRequestEventsItem def test_atoms_webhooks_get_webhooks() -> None: """Test getWebhooks endpoint with WireMock""" test_id = "atoms.webhooks.get_webhooks.0" client = get_client(test_id) - client.atoms.webhooks.get_webhooks() + client.agents.webhooks.get_webhooks() verify_request_count(test_id, "GET", "/webhook", None, 1) @@ -15,7 +15,7 @@ def test_atoms_webhooks_create() -> None: """Test create endpoint with WireMock""" test_id = "atoms.webhooks.create.0" client = get_client(test_id) - client.atoms.webhooks.create( + client.agents.webhooks.create( endpoint="https://example.com/webhook", description="Webhook for conversation events", events=[ @@ -32,7 +32,7 @@ def test_atoms_webhooks_delete() -> None: """Test delete endpoint with WireMock""" test_id = "atoms.webhooks.delete.0" client = get_client(test_id) - client.atoms.webhooks.delete( + client.agents.webhooks.delete( id="id", ) verify_request_count(test_id, "DELETE", "/webhook/id", None, 1) @@ -42,7 +42,7 @@ def test_atoms_webhooks_update() -> None: """Test update endpoint with WireMock""" test_id = "atoms.webhooks.update.0" client = get_client(test_id) - client.atoms.webhooks.update( + client.agents.webhooks.update( id="id", ) verify_request_count(test_id, "PATCH", "/webhook/id", None, 1) @@ -52,7 +52,7 @@ def test_atoms_webhooks_get_webhook_subscriptions_for_an_agent() -> None: """Test getWebhookSubscriptionsForAnAgent endpoint with WireMock""" test_id = "atoms.webhooks.get_webhook_subscriptions_for_an_agent.0" client = get_client(test_id) - client.atoms.webhooks.get_webhook_subscriptions_for_an_agent( + client.agents.webhooks.get_webhook_subscriptions_for_an_agent( agent_id="agentId", ) verify_request_count(test_id, "GET", "/agent/agentId/webhook-subscriptions", None, 1) @@ -62,7 +62,7 @@ def test_atoms_webhooks_replace_webhook_subscriptions_for_an_agent() -> None: """Test replaceWebhookSubscriptionsForAnAgent endpoint with WireMock""" test_id = "atoms.webhooks.replace_webhook_subscriptions_for_an_agent.0" client = get_client(test_id) - client.atoms.webhooks.replace_webhook_subscriptions_for_an_agent( + client.agents.webhooks.replace_webhook_subscriptions_for_an_agent( agent_id="agentId", event_types=["pre-conversation"], webhook_id="60d0fe4f5311236168a109ca", @@ -74,7 +74,7 @@ def test_atoms_webhooks_delete_webhook_subscriptions_for_an_agent() -> None: """Test deleteWebhookSubscriptionsForAnAgent endpoint with WireMock""" test_id = "atoms.webhooks.delete_webhook_subscriptions_for_an_agent.0" client = get_client(test_id) - client.atoms.webhooks.delete_webhook_subscriptions_for_an_agent( + client.agents.webhooks.delete_webhook_subscriptions_for_an_agent( agent_id="agentId", ) verify_request_count(test_id, "DELETE", "/agent/agentId/webhook-subscriptions", None, 1) diff --git a/tests/wire/test_waves.py b/tests/wire/test_waves.py index 2add360e3..aeb7a6809 100644 --- a/tests/wire/test_waves.py +++ b/tests/wire/test_waves.py @@ -1,13 +1,13 @@ from .conftest import get_client, verify_request_count -from smallestai.waves import PronunciationItem +from smallestai.speech import PronunciationItem def test_waves_get_pronunciation_dicts() -> None: """Test get_pronunciation_dicts endpoint with WireMock""" test_id = "waves.get_pronunciation_dicts.0" client = get_client(test_id) - client.waves.get_pronunciation_dicts() + client.speech.get_pronunciation_dicts() verify_request_count(test_id, "GET", "/waves/v1/pronunciation-dicts", None, 1) @@ -15,7 +15,7 @@ def test_waves_create_pronunciation_dict() -> None: """Test create_pronunciation_dict endpoint with WireMock""" test_id = "waves.create_pronunciation_dict.0" client = get_client(test_id) - client.waves.create_pronunciation_dict( + client.speech.create_pronunciation_dict( items=[ PronunciationItem( word="mysql", @@ -30,7 +30,7 @@ def test_waves_update_pronunciation_dict() -> None: """Test update_pronunciation_dict endpoint with WireMock""" test_id = "waves.update_pronunciation_dict.0" client = get_client(test_id) - client.waves.update_pronunciation_dict( + client.speech.update_pronunciation_dict( id="64f1234567890abcdef12345", items=[ PronunciationItem( @@ -46,7 +46,7 @@ def test_waves_delete_pronunciation_dict() -> None: """Test delete_pronunciation_dict endpoint with WireMock""" test_id = "waves.delete_pronunciation_dict.0" client = get_client(test_id) - client.waves.delete_pronunciation_dict( + client.speech.delete_pronunciation_dict( id="64f1234567890abcdef12345", ) verify_request_count(test_id, "DELETE", "/waves/v1/pronunciation-dicts", None, 1) @@ -56,7 +56,7 @@ def test_waves_synthesize_lightning() -> None: """Test synthesize_lightning endpoint with WireMock""" test_id = "waves.synthesize_lightning.0" client = get_client(test_id) - client.waves.synthesize_lightning() + client.speech.synthesize_lightning() verify_request_count(test_id, "POST", "/waves/v1/lightning/get_speech", None, 1) @@ -64,7 +64,7 @@ def test_waves_synthesize_lightning_large() -> None: """Test synthesize_lightning_large endpoint with WireMock""" test_id = "waves.synthesize_lightning_large.0" client = get_client(test_id) - client.waves.synthesize_lightning_large() + client.speech.synthesize_lightning_large() verify_request_count(test_id, "POST", "/waves/v1/lightning-large/get_speech", None, 1) @@ -72,7 +72,7 @@ def test_waves_synthesize_sse_lightning_large() -> None: """Test synthesize_sse_lightning_large endpoint with WireMock""" test_id = "waves.synthesize_sse_lightning_large.0" client = get_client(test_id) - client.waves.synthesize_sse_lightning_large() + client.speech.synthesize_sse_lightning_large() verify_request_count(test_id, "POST", "/waves/v1/lightning-large/stream", None, 1) @@ -80,7 +80,7 @@ def test_waves_synthesize_lightning_v2() -> None: """Test synthesize_lightning_v2 endpoint with WireMock""" test_id = "waves.synthesize_lightning_v2.0" client = get_client(test_id) - client.waves.synthesize_lightning_v2() + client.speech.synthesize_lightning_v2() verify_request_count(test_id, "POST", "/waves/v1/lightning-v2/get_speech", None, 1) @@ -88,7 +88,7 @@ def test_waves_synthesize_sse_lightning_v2() -> None: """Test synthesize_sse_lightning_v2 endpoint with WireMock""" test_id = "waves.synthesize_sse_lightning_v2.0" client = get_client(test_id) - client.waves.synthesize_sse_lightning_v2() + client.speech.synthesize_sse_lightning_v2() verify_request_count(test_id, "POST", "/waves/v1/lightning-v2/stream", None, 1) @@ -96,7 +96,7 @@ def test_waves_get_voices() -> None: """Test get_voices endpoint with WireMock""" test_id = "waves.get_voices.0" client = get_client(test_id) - client.waves.get_voices( + client.speech.get_voices( model="lightning-v3.1", ) verify_request_count(test_id, "GET", "/waves/v1/lightning-v3.1/get_voices", None, 1) @@ -106,7 +106,7 @@ def test_waves_synthesize_tts() -> None: """Test synthesize_tts endpoint with WireMock""" test_id = "waves.synthesize_tts.0" client = get_client(test_id) - for _ in client.waves.synthesize_tts( + for _ in client.speech.synthesize_tts( text="Hello from Waves TTS.", voice_id="magnus", ): @@ -118,7 +118,7 @@ def test_waves_synthesize_sse_tts() -> None: """Test synthesize_sse_tts endpoint with WireMock""" test_id = "waves.synthesize_sse_tts.0" client = get_client(test_id) - for _ in client.waves.synthesize_sse_tts( + for _ in client.speech.synthesize_sse_tts( text="text", voice_id="voice_id", ): @@ -130,7 +130,7 @@ def test_waves_list_voice_clones() -> None: """Test list_voice_clones endpoint with WireMock""" test_id = "waves.list_voice_clones.0" client = get_client(test_id) - client.waves.list_voice_clones() + client.speech.list_voice_clones() verify_request_count(test_id, "GET", "/waves/v1/voice-cloning", None, 1) @@ -138,7 +138,7 @@ def test_waves_create_voice_clone() -> None: """Test create_voice_clone endpoint with WireMock""" test_id = "waves.create_voice_clone.0" client = get_client(test_id) - client.waves.create_voice_clone( + client.speech.create_voice_clone( file="example_file", display_name="displayName", ) diff --git a/tests/wire/test_waves_electron.py b/tests/wire/test_waves_electron.py index 1a24592ff..57f36600c 100644 --- a/tests/wire/test_waves_electron.py +++ b/tests/wire/test_waves_electron.py @@ -1,13 +1,13 @@ from .conftest import get_client, verify_request_count -from smallestai.waves import ElectronMessage +from smallestai.speech import ElectronMessage def test_waves_electron_complete() -> None: """Test complete endpoint with WireMock""" test_id = "waves.electron.complete.0" client = get_client(test_id) - client.waves.electron.complete( + client.speech.electron.complete( model="electron", messages=[ ElectronMessage( From d0338644627f40a7332140a302ed9633e5bfb702 Mon Sep 17 00:00:00 2001 From: Abhishek Mishra Date: Thu, 6 Aug 2026 22:12:48 +0530 Subject: [PATCH 2/2] feat(speech): allow lightning-v3.1-pro for voice cloning The cloning endpoint accepts model=lightning-v3.1-pro (premium Pro pool), confirmed against the live API. Add it to the CreateVoiceCloneSpeechRequestModel literal so it surfaces in type hints / autocomplete. Matches the regen output from the updated voice-cloning spec; the union's Any fallback already accepted it at runtime. --- .../speech/types/create_voice_clone_speech_request_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/smallestai/speech/types/create_voice_clone_speech_request_model.py b/src/smallestai/speech/types/create_voice_clone_speech_request_model.py index 421901df8..fbca6b3f0 100644 --- a/src/smallestai/speech/types/create_voice_clone_speech_request_model.py +++ b/src/smallestai/speech/types/create_voice_clone_speech_request_model.py @@ -2,4 +2,4 @@ import typing -CreateVoiceCloneSpeechRequestModel = typing.Union[typing.Literal["lightning-v3.1"], typing.Any] +CreateVoiceCloneSpeechRequestModel = typing.Union[typing.Literal["lightning-v3.1", "lightning-v3.1-pro"], typing.Any]