mirascope 2.0.0__py3-none-any.whl → 2.0.0a0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mirascope/__init__.py +2 -11
- mirascope/graphs/__init__.py +22 -0
- mirascope/graphs/finite_state_machine.py +625 -0
- mirascope/llm/__init__.py +16 -101
- mirascope/llm/agents/__init__.py +15 -0
- mirascope/llm/agents/agent.py +97 -0
- mirascope/llm/agents/agent_template.py +45 -0
- mirascope/llm/agents/decorator.py +176 -0
- mirascope/llm/calls/__init__.py +1 -2
- mirascope/llm/calls/base_call.py +33 -0
- mirascope/llm/calls/calls.py +58 -84
- mirascope/llm/calls/decorator.py +120 -140
- mirascope/llm/clients/__init__.py +34 -0
- mirascope/llm/clients/anthropic/__init__.py +11 -0
- mirascope/llm/{providers/openai/completions → clients/anthropic}/_utils/__init__.py +0 -2
- mirascope/llm/{providers → clients}/anthropic/_utils/decode.py +22 -66
- mirascope/llm/clients/anthropic/_utils/encode.py +243 -0
- mirascope/llm/clients/anthropic/clients.py +819 -0
- mirascope/llm/clients/anthropic/model_ids.py +8 -0
- mirascope/llm/{providers → clients}/base/__init__.py +5 -4
- mirascope/llm/{providers → clients}/base/_utils.py +17 -78
- mirascope/llm/{providers/base/base_provider.py → clients/base/client.py} +145 -468
- mirascope/llm/{models → clients/base}/params.py +37 -16
- mirascope/llm/clients/google/__init__.py +6 -0
- mirascope/llm/{providers/openai/responses → clients/google}/_utils/__init__.py +0 -2
- mirascope/llm/{providers → clients}/google/_utils/decode.py +22 -98
- mirascope/llm/{providers → clients}/google/_utils/encode.py +46 -168
- mirascope/llm/clients/google/clients.py +853 -0
- mirascope/llm/clients/google/model_ids.py +15 -0
- mirascope/llm/clients/openai/__init__.py +25 -0
- mirascope/llm/clients/openai/completions/__init__.py +9 -0
- mirascope/llm/{providers/google → clients/openai/completions}/_utils/__init__.py +0 -4
- mirascope/llm/{providers → clients}/openai/completions/_utils/decode.py +9 -74
- mirascope/llm/{providers → clients}/openai/completions/_utils/encode.py +52 -70
- mirascope/llm/clients/openai/completions/_utils/model_features.py +81 -0
- mirascope/llm/clients/openai/completions/clients.py +833 -0
- mirascope/llm/clients/openai/completions/model_ids.py +8 -0
- mirascope/llm/clients/openai/responses/__init__.py +9 -0
- mirascope/llm/clients/openai/responses/_utils/__init__.py +13 -0
- mirascope/llm/{providers → clients}/openai/responses/_utils/decode.py +14 -80
- mirascope/llm/{providers → clients}/openai/responses/_utils/encode.py +41 -92
- mirascope/llm/clients/openai/responses/_utils/model_features.py +87 -0
- mirascope/llm/clients/openai/responses/clients.py +832 -0
- mirascope/llm/clients/openai/responses/model_ids.py +8 -0
- mirascope/llm/clients/openai/shared/__init__.py +7 -0
- mirascope/llm/clients/openai/shared/_utils.py +55 -0
- mirascope/llm/clients/providers.py +175 -0
- mirascope/llm/content/__init__.py +2 -3
- mirascope/llm/content/tool_call.py +0 -6
- mirascope/llm/content/tool_output.py +5 -22
- mirascope/llm/context/_utils.py +6 -19
- mirascope/llm/exceptions.py +43 -298
- mirascope/llm/formatting/__init__.py +2 -19
- mirascope/llm/formatting/_utils.py +74 -0
- mirascope/llm/formatting/format.py +30 -219
- mirascope/llm/formatting/from_call_args.py +2 -2
- mirascope/llm/formatting/partial.py +7 -80
- mirascope/llm/formatting/types.py +64 -21
- mirascope/llm/mcp/__init__.py +2 -2
- mirascope/llm/mcp/client.py +118 -0
- mirascope/llm/messages/__init__.py +0 -3
- mirascope/llm/messages/message.py +5 -13
- mirascope/llm/models/__init__.py +2 -7
- mirascope/llm/models/models.py +139 -315
- mirascope/llm/prompts/__init__.py +12 -13
- mirascope/llm/prompts/_utils.py +43 -14
- mirascope/llm/prompts/decorator.py +204 -144
- mirascope/llm/prompts/protocols.py +59 -25
- mirascope/llm/responses/__init__.py +1 -9
- mirascope/llm/responses/_utils.py +12 -102
- mirascope/llm/responses/base_response.py +6 -18
- mirascope/llm/responses/base_stream_response.py +50 -173
- mirascope/llm/responses/finish_reason.py +0 -1
- mirascope/llm/responses/response.py +13 -34
- mirascope/llm/responses/root_response.py +29 -100
- mirascope/llm/responses/stream_response.py +31 -40
- mirascope/llm/tools/__init__.py +2 -9
- mirascope/llm/tools/_utils.py +3 -12
- mirascope/llm/tools/decorator.py +16 -25
- mirascope/llm/tools/protocols.py +4 -4
- mirascope/llm/tools/tool_schema.py +19 -87
- mirascope/llm/tools/toolkit.py +27 -35
- mirascope/llm/tools/tools.py +41 -135
- {mirascope-2.0.0.dist-info → mirascope-2.0.0a0.dist-info}/METADATA +9 -95
- mirascope-2.0.0a0.dist-info/RECORD +101 -0
- {mirascope-2.0.0.dist-info → mirascope-2.0.0a0.dist-info}/WHEEL +1 -1
- {mirascope-2.0.0.dist-info → mirascope-2.0.0a0.dist-info}/licenses/LICENSE +1 -1
- mirascope/_stubs.py +0 -363
- mirascope/api/__init__.py +0 -14
- mirascope/api/_generated/README.md +0 -207
- mirascope/api/_generated/__init__.py +0 -440
- mirascope/api/_generated/annotations/__init__.py +0 -33
- mirascope/api/_generated/annotations/client.py +0 -506
- mirascope/api/_generated/annotations/raw_client.py +0 -1414
- mirascope/api/_generated/annotations/types/__init__.py +0 -31
- mirascope/api/_generated/annotations/types/annotations_create_request_label.py +0 -5
- mirascope/api/_generated/annotations/types/annotations_create_response.py +0 -48
- mirascope/api/_generated/annotations/types/annotations_create_response_label.py +0 -5
- mirascope/api/_generated/annotations/types/annotations_get_response.py +0 -48
- mirascope/api/_generated/annotations/types/annotations_get_response_label.py +0 -5
- mirascope/api/_generated/annotations/types/annotations_list_request_label.py +0 -5
- mirascope/api/_generated/annotations/types/annotations_list_response.py +0 -21
- mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item.py +0 -50
- mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item_label.py +0 -5
- mirascope/api/_generated/annotations/types/annotations_update_request_label.py +0 -5
- mirascope/api/_generated/annotations/types/annotations_update_response.py +0 -48
- mirascope/api/_generated/annotations/types/annotations_update_response_label.py +0 -5
- mirascope/api/_generated/api_keys/__init__.py +0 -17
- mirascope/api/_generated/api_keys/client.py +0 -530
- mirascope/api/_generated/api_keys/raw_client.py +0 -1236
- mirascope/api/_generated/api_keys/types/__init__.py +0 -15
- mirascope/api/_generated/api_keys/types/api_keys_create_response.py +0 -28
- mirascope/api/_generated/api_keys/types/api_keys_get_response.py +0 -27
- mirascope/api/_generated/api_keys/types/api_keys_list_all_for_org_response_item.py +0 -40
- mirascope/api/_generated/api_keys/types/api_keys_list_response_item.py +0 -27
- mirascope/api/_generated/client.py +0 -211
- mirascope/api/_generated/core/__init__.py +0 -52
- mirascope/api/_generated/core/api_error.py +0 -23
- mirascope/api/_generated/core/client_wrapper.py +0 -46
- mirascope/api/_generated/core/datetime_utils.py +0 -28
- mirascope/api/_generated/core/file.py +0 -67
- mirascope/api/_generated/core/force_multipart.py +0 -16
- mirascope/api/_generated/core/http_client.py +0 -543
- mirascope/api/_generated/core/http_response.py +0 -55
- mirascope/api/_generated/core/jsonable_encoder.py +0 -100
- mirascope/api/_generated/core/pydantic_utilities.py +0 -255
- mirascope/api/_generated/core/query_encoder.py +0 -58
- mirascope/api/_generated/core/remove_none_from_dict.py +0 -11
- mirascope/api/_generated/core/request_options.py +0 -35
- mirascope/api/_generated/core/serialization.py +0 -276
- mirascope/api/_generated/docs/__init__.py +0 -4
- mirascope/api/_generated/docs/client.py +0 -91
- mirascope/api/_generated/docs/raw_client.py +0 -178
- mirascope/api/_generated/environment.py +0 -9
- mirascope/api/_generated/environments/__init__.py +0 -23
- mirascope/api/_generated/environments/client.py +0 -649
- mirascope/api/_generated/environments/raw_client.py +0 -1567
- mirascope/api/_generated/environments/types/__init__.py +0 -25
- mirascope/api/_generated/environments/types/environments_create_response.py +0 -24
- mirascope/api/_generated/environments/types/environments_get_analytics_response.py +0 -60
- mirascope/api/_generated/environments/types/environments_get_analytics_response_top_functions_item.py +0 -24
- mirascope/api/_generated/environments/types/environments_get_analytics_response_top_models_item.py +0 -22
- mirascope/api/_generated/environments/types/environments_get_response.py +0 -24
- mirascope/api/_generated/environments/types/environments_list_response_item.py +0 -24
- mirascope/api/_generated/environments/types/environments_update_response.py +0 -24
- mirascope/api/_generated/errors/__init__.py +0 -25
- mirascope/api/_generated/errors/bad_request_error.py +0 -14
- mirascope/api/_generated/errors/conflict_error.py +0 -14
- mirascope/api/_generated/errors/forbidden_error.py +0 -11
- mirascope/api/_generated/errors/internal_server_error.py +0 -10
- mirascope/api/_generated/errors/not_found_error.py +0 -11
- mirascope/api/_generated/errors/payment_required_error.py +0 -15
- mirascope/api/_generated/errors/service_unavailable_error.py +0 -14
- mirascope/api/_generated/errors/too_many_requests_error.py +0 -15
- mirascope/api/_generated/errors/unauthorized_error.py +0 -11
- mirascope/api/_generated/functions/__init__.py +0 -39
- mirascope/api/_generated/functions/client.py +0 -647
- mirascope/api/_generated/functions/raw_client.py +0 -1890
- mirascope/api/_generated/functions/types/__init__.py +0 -53
- mirascope/api/_generated/functions/types/functions_create_request_dependencies_value.py +0 -20
- mirascope/api/_generated/functions/types/functions_create_response.py +0 -37
- mirascope/api/_generated/functions/types/functions_create_response_dependencies_value.py +0 -20
- mirascope/api/_generated/functions/types/functions_find_by_hash_response.py +0 -39
- mirascope/api/_generated/functions/types/functions_find_by_hash_response_dependencies_value.py +0 -20
- mirascope/api/_generated/functions/types/functions_get_by_env_response.py +0 -53
- mirascope/api/_generated/functions/types/functions_get_by_env_response_dependencies_value.py +0 -22
- mirascope/api/_generated/functions/types/functions_get_response.py +0 -37
- mirascope/api/_generated/functions/types/functions_get_response_dependencies_value.py +0 -20
- mirascope/api/_generated/functions/types/functions_list_by_env_response.py +0 -25
- mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item.py +0 -56
- mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item_dependencies_value.py +0 -22
- mirascope/api/_generated/functions/types/functions_list_response.py +0 -21
- mirascope/api/_generated/functions/types/functions_list_response_functions_item.py +0 -41
- mirascope/api/_generated/functions/types/functions_list_response_functions_item_dependencies_value.py +0 -20
- mirascope/api/_generated/health/__init__.py +0 -7
- mirascope/api/_generated/health/client.py +0 -92
- mirascope/api/_generated/health/raw_client.py +0 -175
- mirascope/api/_generated/health/types/__init__.py +0 -8
- mirascope/api/_generated/health/types/health_check_response.py +0 -22
- mirascope/api/_generated/health/types/health_check_response_status.py +0 -5
- mirascope/api/_generated/organization_invitations/__init__.py +0 -33
- mirascope/api/_generated/organization_invitations/client.py +0 -546
- mirascope/api/_generated/organization_invitations/raw_client.py +0 -1519
- mirascope/api/_generated/organization_invitations/types/__init__.py +0 -53
- mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response.py +0 -34
- mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response_role.py +0 -7
- mirascope/api/_generated/organization_invitations/types/organization_invitations_create_request_role.py +0 -7
- mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response.py +0 -48
- mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_role.py +0 -7
- mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_status.py +0 -7
- mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response.py +0 -48
- mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_role.py +0 -7
- mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_status.py +0 -7
- mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item.py +0 -48
- mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_role.py +0 -7
- mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_status.py +0 -7
- mirascope/api/_generated/organization_memberships/__init__.py +0 -19
- mirascope/api/_generated/organization_memberships/client.py +0 -302
- mirascope/api/_generated/organization_memberships/raw_client.py +0 -736
- mirascope/api/_generated/organization_memberships/types/__init__.py +0 -27
- mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item.py +0 -33
- mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item_role.py +0 -7
- mirascope/api/_generated/organization_memberships/types/organization_memberships_update_request_role.py +0 -7
- mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response.py +0 -31
- mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response_role.py +0 -7
- mirascope/api/_generated/organizations/__init__.py +0 -51
- mirascope/api/_generated/organizations/client.py +0 -869
- mirascope/api/_generated/organizations/raw_client.py +0 -2593
- mirascope/api/_generated/organizations/types/__init__.py +0 -71
- mirascope/api/_generated/organizations/types/organizations_create_payment_intent_response.py +0 -24
- mirascope/api/_generated/organizations/types/organizations_create_response.py +0 -26
- mirascope/api/_generated/organizations/types/organizations_create_response_role.py +0 -5
- mirascope/api/_generated/organizations/types/organizations_get_response.py +0 -26
- mirascope/api/_generated/organizations/types/organizations_get_response_role.py +0 -5
- mirascope/api/_generated/organizations/types/organizations_list_response_item.py +0 -26
- mirascope/api/_generated/organizations/types/organizations_list_response_item_role.py +0 -5
- mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_request_target_plan.py +0 -7
- mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response.py +0 -47
- mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item.py +0 -33
- mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item_resource.py +0 -7
- mirascope/api/_generated/organizations/types/organizations_router_balance_response.py +0 -24
- mirascope/api/_generated/organizations/types/organizations_subscription_response.py +0 -53
- mirascope/api/_generated/organizations/types/organizations_subscription_response_current_plan.py +0 -7
- mirascope/api/_generated/organizations/types/organizations_subscription_response_payment_method.py +0 -26
- mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change.py +0 -34
- mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change_target_plan.py +0 -7
- mirascope/api/_generated/organizations/types/organizations_update_response.py +0 -26
- mirascope/api/_generated/organizations/types/organizations_update_response_role.py +0 -5
- mirascope/api/_generated/organizations/types/organizations_update_subscription_request_target_plan.py +0 -7
- mirascope/api/_generated/organizations/types/organizations_update_subscription_response.py +0 -35
- mirascope/api/_generated/project_memberships/__init__.py +0 -25
- mirascope/api/_generated/project_memberships/client.py +0 -437
- mirascope/api/_generated/project_memberships/raw_client.py +0 -1039
- mirascope/api/_generated/project_memberships/types/__init__.py +0 -29
- mirascope/api/_generated/project_memberships/types/project_memberships_create_request_role.py +0 -7
- mirascope/api/_generated/project_memberships/types/project_memberships_create_response.py +0 -35
- mirascope/api/_generated/project_memberships/types/project_memberships_create_response_role.py +0 -7
- mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item.py +0 -33
- mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item_role.py +0 -7
- mirascope/api/_generated/project_memberships/types/project_memberships_update_request_role.py +0 -7
- mirascope/api/_generated/project_memberships/types/project_memberships_update_response.py +0 -35
- mirascope/api/_generated/project_memberships/types/project_memberships_update_response_role.py +0 -7
- mirascope/api/_generated/projects/__init__.py +0 -7
- mirascope/api/_generated/projects/client.py +0 -428
- mirascope/api/_generated/projects/raw_client.py +0 -1302
- mirascope/api/_generated/projects/types/__init__.py +0 -10
- mirascope/api/_generated/projects/types/projects_create_response.py +0 -25
- mirascope/api/_generated/projects/types/projects_get_response.py +0 -25
- mirascope/api/_generated/projects/types/projects_list_response_item.py +0 -25
- mirascope/api/_generated/projects/types/projects_update_response.py +0 -25
- mirascope/api/_generated/reference.md +0 -4915
- mirascope/api/_generated/tags/__init__.py +0 -19
- mirascope/api/_generated/tags/client.py +0 -504
- mirascope/api/_generated/tags/raw_client.py +0 -1288
- mirascope/api/_generated/tags/types/__init__.py +0 -17
- mirascope/api/_generated/tags/types/tags_create_response.py +0 -41
- mirascope/api/_generated/tags/types/tags_get_response.py +0 -41
- mirascope/api/_generated/tags/types/tags_list_response.py +0 -23
- mirascope/api/_generated/tags/types/tags_list_response_tags_item.py +0 -41
- mirascope/api/_generated/tags/types/tags_update_response.py +0 -41
- mirascope/api/_generated/token_cost/__init__.py +0 -7
- mirascope/api/_generated/token_cost/client.py +0 -160
- mirascope/api/_generated/token_cost/raw_client.py +0 -264
- mirascope/api/_generated/token_cost/types/__init__.py +0 -8
- mirascope/api/_generated/token_cost/types/token_cost_calculate_request_usage.py +0 -54
- mirascope/api/_generated/token_cost/types/token_cost_calculate_response.py +0 -52
- mirascope/api/_generated/traces/__init__.py +0 -97
- mirascope/api/_generated/traces/client.py +0 -1103
- mirascope/api/_generated/traces/raw_client.py +0 -2322
- mirascope/api/_generated/traces/types/__init__.py +0 -155
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item.py +0 -29
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource.py +0 -27
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item.py +0 -23
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value.py +0 -38
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_array_value.py +0 -19
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value.py +0 -22
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value_values_item.py +0 -20
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item.py +0 -29
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope.py +0 -31
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item.py +0 -23
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value.py +0 -38
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_array_value.py +0 -19
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value.py +0 -22
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value_values_item.py +0 -22
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item.py +0 -48
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item.py +0 -23
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value.py +0 -38
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_array_value.py +0 -19
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value.py +0 -24
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value_values_item.py +0 -22
- mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_status.py +0 -20
- mirascope/api/_generated/traces/types/traces_create_response.py +0 -24
- mirascope/api/_generated/traces/types/traces_create_response_partial_success.py +0 -22
- mirascope/api/_generated/traces/types/traces_get_analytics_summary_response.py +0 -60
- mirascope/api/_generated/traces/types/traces_get_analytics_summary_response_top_functions_item.py +0 -24
- mirascope/api/_generated/traces/types/traces_get_analytics_summary_response_top_models_item.py +0 -22
- mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response.py +0 -33
- mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response_spans_item.py +0 -88
- mirascope/api/_generated/traces/types/traces_get_trace_detail_response.py +0 -33
- mirascope/api/_generated/traces/types/traces_get_trace_detail_response_spans_item.py +0 -88
- mirascope/api/_generated/traces/types/traces_list_by_function_hash_response.py +0 -25
- mirascope/api/_generated/traces/types/traces_list_by_function_hash_response_traces_item.py +0 -44
- mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item.py +0 -26
- mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item_operator.py +0 -7
- mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_by.py +0 -7
- mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_order.py +0 -7
- mirascope/api/_generated/traces/types/traces_search_by_env_response.py +0 -26
- mirascope/api/_generated/traces/types/traces_search_by_env_response_spans_item.py +0 -50
- mirascope/api/_generated/traces/types/traces_search_request_attribute_filters_item.py +0 -26
- mirascope/api/_generated/traces/types/traces_search_request_attribute_filters_item_operator.py +0 -7
- mirascope/api/_generated/traces/types/traces_search_request_sort_by.py +0 -7
- mirascope/api/_generated/traces/types/traces_search_request_sort_order.py +0 -5
- mirascope/api/_generated/traces/types/traces_search_response.py +0 -26
- mirascope/api/_generated/traces/types/traces_search_response_spans_item.py +0 -50
- mirascope/api/_generated/types/__init__.py +0 -85
- mirascope/api/_generated/types/already_exists_error.py +0 -22
- mirascope/api/_generated/types/already_exists_error_tag.py +0 -5
- mirascope/api/_generated/types/bad_request_error_body.py +0 -50
- mirascope/api/_generated/types/click_house_error.py +0 -22
- mirascope/api/_generated/types/database_error.py +0 -22
- mirascope/api/_generated/types/database_error_tag.py +0 -5
- mirascope/api/_generated/types/date.py +0 -3
- mirascope/api/_generated/types/http_api_decode_error.py +0 -27
- mirascope/api/_generated/types/http_api_decode_error_tag.py +0 -5
- mirascope/api/_generated/types/immutable_resource_error.py +0 -22
- mirascope/api/_generated/types/internal_server_error_body.py +0 -49
- mirascope/api/_generated/types/issue.py +0 -38
- mirascope/api/_generated/types/issue_tag.py +0 -10
- mirascope/api/_generated/types/not_found_error_body.py +0 -22
- mirascope/api/_generated/types/not_found_error_tag.py +0 -5
- mirascope/api/_generated/types/number_from_string.py +0 -3
- mirascope/api/_generated/types/permission_denied_error.py +0 -22
- mirascope/api/_generated/types/permission_denied_error_tag.py +0 -5
- mirascope/api/_generated/types/plan_limit_exceeded_error.py +0 -32
- mirascope/api/_generated/types/plan_limit_exceeded_error_tag.py +0 -7
- mirascope/api/_generated/types/pricing_unavailable_error.py +0 -23
- mirascope/api/_generated/types/property_key.py +0 -7
- mirascope/api/_generated/types/property_key_key.py +0 -25
- mirascope/api/_generated/types/property_key_key_tag.py +0 -5
- mirascope/api/_generated/types/rate_limit_error.py +0 -31
- mirascope/api/_generated/types/rate_limit_error_tag.py +0 -5
- mirascope/api/_generated/types/service_unavailable_error_body.py +0 -24
- mirascope/api/_generated/types/service_unavailable_error_tag.py +0 -7
- mirascope/api/_generated/types/stripe_error.py +0 -20
- mirascope/api/_generated/types/subscription_past_due_error.py +0 -31
- mirascope/api/_generated/types/subscription_past_due_error_tag.py +0 -7
- mirascope/api/_generated/types/unauthorized_error_body.py +0 -21
- mirascope/api/_generated/types/unauthorized_error_tag.py +0 -5
- mirascope/api/client.py +0 -255
- mirascope/api/settings.py +0 -99
- mirascope/llm/formatting/output_parser.py +0 -178
- mirascope/llm/formatting/primitives.py +0 -192
- mirascope/llm/mcp/mcp_client.py +0 -130
- mirascope/llm/messages/_utils.py +0 -34
- mirascope/llm/models/thinking_config.py +0 -61
- mirascope/llm/prompts/prompts.py +0 -487
- mirascope/llm/providers/__init__.py +0 -62
- mirascope/llm/providers/anthropic/__init__.py +0 -11
- mirascope/llm/providers/anthropic/_utils/__init__.py +0 -27
- mirascope/llm/providers/anthropic/_utils/beta_decode.py +0 -282
- mirascope/llm/providers/anthropic/_utils/beta_encode.py +0 -266
- mirascope/llm/providers/anthropic/_utils/encode.py +0 -418
- mirascope/llm/providers/anthropic/_utils/errors.py +0 -46
- mirascope/llm/providers/anthropic/beta_provider.py +0 -374
- mirascope/llm/providers/anthropic/model_id.py +0 -23
- mirascope/llm/providers/anthropic/model_info.py +0 -87
- mirascope/llm/providers/anthropic/provider.py +0 -479
- mirascope/llm/providers/google/__init__.py +0 -6
- mirascope/llm/providers/google/_utils/errors.py +0 -50
- mirascope/llm/providers/google/model_id.py +0 -22
- mirascope/llm/providers/google/model_info.py +0 -63
- mirascope/llm/providers/google/provider.py +0 -492
- mirascope/llm/providers/mirascope/__init__.py +0 -5
- mirascope/llm/providers/mirascope/_utils.py +0 -73
- mirascope/llm/providers/mirascope/provider.py +0 -349
- mirascope/llm/providers/mlx/__init__.py +0 -9
- mirascope/llm/providers/mlx/_utils.py +0 -141
- mirascope/llm/providers/mlx/encoding/__init__.py +0 -8
- mirascope/llm/providers/mlx/encoding/base.py +0 -72
- mirascope/llm/providers/mlx/encoding/transformers.py +0 -150
- mirascope/llm/providers/mlx/mlx.py +0 -254
- mirascope/llm/providers/mlx/model_id.py +0 -17
- mirascope/llm/providers/mlx/provider.py +0 -452
- mirascope/llm/providers/model_id.py +0 -16
- mirascope/llm/providers/ollama/__init__.py +0 -7
- mirascope/llm/providers/ollama/provider.py +0 -71
- mirascope/llm/providers/openai/__init__.py +0 -15
- mirascope/llm/providers/openai/_utils/__init__.py +0 -5
- mirascope/llm/providers/openai/_utils/errors.py +0 -46
- mirascope/llm/providers/openai/completions/__init__.py +0 -7
- mirascope/llm/providers/openai/completions/base_provider.py +0 -542
- mirascope/llm/providers/openai/completions/provider.py +0 -22
- mirascope/llm/providers/openai/model_id.py +0 -31
- mirascope/llm/providers/openai/model_info.py +0 -303
- mirascope/llm/providers/openai/provider.py +0 -441
- mirascope/llm/providers/openai/responses/__init__.py +0 -5
- mirascope/llm/providers/openai/responses/provider.py +0 -513
- mirascope/llm/providers/provider_id.py +0 -24
- mirascope/llm/providers/provider_registry.py +0 -299
- mirascope/llm/providers/together/__init__.py +0 -7
- mirascope/llm/providers/together/provider.py +0 -40
- mirascope/llm/responses/usage.py +0 -95
- mirascope/ops/__init__.py +0 -111
- mirascope/ops/_internal/__init__.py +0 -5
- mirascope/ops/_internal/closure.py +0 -1169
- mirascope/ops/_internal/configuration.py +0 -177
- mirascope/ops/_internal/context.py +0 -76
- mirascope/ops/_internal/exporters/__init__.py +0 -26
- mirascope/ops/_internal/exporters/exporters.py +0 -395
- mirascope/ops/_internal/exporters/processors.py +0 -104
- mirascope/ops/_internal/exporters/types.py +0 -165
- mirascope/ops/_internal/exporters/utils.py +0 -29
- mirascope/ops/_internal/instrumentation/__init__.py +0 -8
- mirascope/ops/_internal/instrumentation/llm/__init__.py +0 -8
- mirascope/ops/_internal/instrumentation/llm/common.py +0 -530
- mirascope/ops/_internal/instrumentation/llm/cost.py +0 -190
- mirascope/ops/_internal/instrumentation/llm/encode.py +0 -238
- mirascope/ops/_internal/instrumentation/llm/gen_ai_types/__init__.py +0 -38
- mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_input_messages.py +0 -31
- mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_output_messages.py +0 -38
- mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_system_instructions.py +0 -18
- mirascope/ops/_internal/instrumentation/llm/gen_ai_types/shared.py +0 -100
- mirascope/ops/_internal/instrumentation/llm/llm.py +0 -161
- mirascope/ops/_internal/instrumentation/llm/model.py +0 -1798
- mirascope/ops/_internal/instrumentation/llm/response.py +0 -521
- mirascope/ops/_internal/instrumentation/llm/serialize.py +0 -300
- mirascope/ops/_internal/propagation.py +0 -198
- mirascope/ops/_internal/protocols.py +0 -133
- mirascope/ops/_internal/session.py +0 -139
- mirascope/ops/_internal/spans.py +0 -232
- mirascope/ops/_internal/traced_calls.py +0 -375
- mirascope/ops/_internal/traced_functions.py +0 -523
- mirascope/ops/_internal/tracing.py +0 -353
- mirascope/ops/_internal/types.py +0 -13
- mirascope/ops/_internal/utils.py +0 -123
- mirascope/ops/_internal/versioned_calls.py +0 -512
- mirascope/ops/_internal/versioned_functions.py +0 -357
- mirascope/ops/_internal/versioning.py +0 -303
- mirascope/ops/exceptions.py +0 -21
- mirascope-2.0.0.dist-info/RECORD +0 -423
- /mirascope/llm/{providers → clients}/base/kwargs.py +0 -0
- /mirascope/llm/{providers → clients}/google/message.py +0 -0
mirascope/llm/tools/tools.py
CHANGED
|
@@ -4,22 +4,20 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
import json
|
|
6
6
|
from collections.abc import Awaitable
|
|
7
|
-
from typing import Any, Generic, cast
|
|
8
|
-
from typing_extensions import TypeVar
|
|
7
|
+
from typing import Any, Generic, TypeVar, cast
|
|
9
8
|
|
|
10
9
|
from ..content import ToolCall, ToolOutput
|
|
11
10
|
from ..context import Context, DepsT
|
|
12
|
-
from ..exceptions import ToolError, ToolExecutionError
|
|
13
11
|
from ..types import AnyP, JsonableCovariantT
|
|
14
12
|
from .protocols import (
|
|
15
13
|
AsyncContextToolFn,
|
|
16
|
-
AsyncJsonKwargsCallable,
|
|
17
|
-
AsyncKwargsCallable,
|
|
18
14
|
AsyncToolFn,
|
|
19
|
-
ContextKwargsCallable,
|
|
20
15
|
ContextToolFn,
|
|
21
|
-
KwargsCallable,
|
|
22
16
|
ToolFn,
|
|
17
|
+
_AsyncJsonKwargsCallable,
|
|
18
|
+
_AsyncKwargsCallable,
|
|
19
|
+
_ContextKwargsCallable,
|
|
20
|
+
_KwargsCallable,
|
|
23
21
|
)
|
|
24
22
|
from .tool_schema import ToolSchema
|
|
25
23
|
|
|
@@ -41,28 +39,10 @@ class Tool(
|
|
|
41
39
|
This class is not instantiated directly but created by the `@tool()` decorator.
|
|
42
40
|
"""
|
|
43
41
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"""Create a `Tool` by inspecting a function and its docstring.
|
|
49
|
-
|
|
50
|
-
Args:
|
|
51
|
-
fn: The function to extract schema from
|
|
52
|
-
strict: Whether the tool should use strict mode when supported.
|
|
53
|
-
If None, uses provider's default (usually as strict as possible).
|
|
54
|
-
|
|
55
|
-
Returns:
|
|
56
|
-
a `Tool` representing the function
|
|
57
|
-
"""
|
|
58
|
-
schema = ToolSchema.from_function(fn, strict=strict, is_context_tool=False)
|
|
59
|
-
return cls(
|
|
60
|
-
fn=cast(ToolFn[AnyP, JsonableCovariantT], schema.fn),
|
|
61
|
-
name=schema.name,
|
|
62
|
-
description=schema.description,
|
|
63
|
-
parameters=schema.parameters,
|
|
64
|
-
strict=schema.strict,
|
|
65
|
-
)
|
|
42
|
+
def __init__(
|
|
43
|
+
self, fn: ToolFn[AnyP, JsonableCovariantT], *, strict: bool = False
|
|
44
|
+
) -> None:
|
|
45
|
+
super().__init__(fn, strict=strict, is_context_tool=False)
|
|
66
46
|
|
|
67
47
|
def __call__(self, *args: AnyP.args, **kwargs: AnyP.kwargs) -> JsonableCovariantT:
|
|
68
48
|
"""Call the underlying function directly."""
|
|
@@ -70,15 +50,10 @@ class Tool(
|
|
|
70
50
|
|
|
71
51
|
def execute(self, tool_call: ToolCall) -> ToolOutput[JsonableCovariantT]:
|
|
72
52
|
"""Execute the tool using an LLM-provided `ToolCall`."""
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
result = kwargs_callable(**kwargs_from_json)
|
|
78
|
-
except Exception as e:
|
|
79
|
-
result = str(e)
|
|
80
|
-
error = ToolExecutionError(e)
|
|
81
|
-
return ToolOutput(id=tool_call.id, result=result, error=error, name=self.name)
|
|
53
|
+
kwargs_from_json = json.loads(tool_call.args)
|
|
54
|
+
kwargs_callable = cast(_KwargsCallable[JsonableCovariantT], self.fn)
|
|
55
|
+
result = kwargs_callable(**kwargs_from_json)
|
|
56
|
+
return ToolOutput(id=tool_call.id, value=result, name=self.name)
|
|
82
57
|
|
|
83
58
|
|
|
84
59
|
class AsyncTool(
|
|
@@ -93,28 +68,10 @@ class AsyncTool(
|
|
|
93
68
|
This class is not instantiated directly but created by the `@tool()` decorator.
|
|
94
69
|
"""
|
|
95
70
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
"""Create an `AsyncTool` by inspecting a function and its docstring.
|
|
101
|
-
|
|
102
|
-
Args:
|
|
103
|
-
fn: The function to extract schema from
|
|
104
|
-
strict: Whether the tool should use strict mode when supported.
|
|
105
|
-
If None, uses provider's default (usually as strict as possible).
|
|
106
|
-
|
|
107
|
-
Returns:
|
|
108
|
-
an `AsyncTool` representing the function
|
|
109
|
-
"""
|
|
110
|
-
schema = ToolSchema.from_function(fn, strict=strict, is_context_tool=False)
|
|
111
|
-
return cls(
|
|
112
|
-
fn=cast(AsyncToolFn[AnyP, JsonableCovariantT], schema.fn),
|
|
113
|
-
name=schema.name,
|
|
114
|
-
description=schema.description,
|
|
115
|
-
parameters=schema.parameters,
|
|
116
|
-
strict=schema.strict,
|
|
117
|
-
)
|
|
71
|
+
def __init__(
|
|
72
|
+
self, fn: AsyncToolFn[AnyP, JsonableCovariantT], *, strict: bool = False
|
|
73
|
+
) -> None:
|
|
74
|
+
super().__init__(fn, strict=strict, is_context_tool=False)
|
|
118
75
|
|
|
119
76
|
def __call__(
|
|
120
77
|
self, *args: AnyP.args, **kwargs: AnyP.kwargs
|
|
@@ -124,20 +81,15 @@ class AsyncTool(
|
|
|
124
81
|
|
|
125
82
|
async def execute(self, tool_call: ToolCall) -> ToolOutput[JsonableCovariantT]:
|
|
126
83
|
"""Execute the async tool using an LLM-provided `ToolCall`."""
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
result = await kwargs_callable(**kwargs_from_json)
|
|
132
|
-
except Exception as e:
|
|
133
|
-
result = str(e)
|
|
134
|
-
error = ToolExecutionError(e)
|
|
135
|
-
return ToolOutput(id=tool_call.id, result=result, error=error, name=self.name)
|
|
84
|
+
kwargs_from_json = json.loads(tool_call.args)
|
|
85
|
+
kwargs_callable = cast(_AsyncKwargsCallable[JsonableCovariantT], self.fn)
|
|
86
|
+
result = await kwargs_callable(**kwargs_from_json)
|
|
87
|
+
return ToolOutput(id=tool_call.id, value=result, name=self.name)
|
|
136
88
|
|
|
137
89
|
|
|
138
90
|
class ContextTool(
|
|
139
91
|
ToolSchema[ContextToolFn[DepsT, AnyP, JsonableCovariantT]],
|
|
140
|
-
Generic[DepsT,
|
|
92
|
+
Generic[DepsT, AnyP, JsonableCovariantT],
|
|
141
93
|
):
|
|
142
94
|
"""Protocol defining a tool that can be used by LLMs.
|
|
143
95
|
|
|
@@ -147,31 +99,13 @@ class ContextTool(
|
|
|
147
99
|
This class is not instantiated directly but created by the `@tool()` decorator.
|
|
148
100
|
"""
|
|
149
101
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
cls,
|
|
102
|
+
def __init__(
|
|
103
|
+
self,
|
|
153
104
|
fn: ContextToolFn[DepsT, AnyP, JsonableCovariantT],
|
|
154
105
|
*,
|
|
155
|
-
strict: bool
|
|
156
|
-
) ->
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
Args:
|
|
160
|
-
fn: The function to extract schema from
|
|
161
|
-
strict: Whether the tool should use strict mode when supported.
|
|
162
|
-
If None, uses provider's default (usually as strict as possible).
|
|
163
|
-
|
|
164
|
-
Returns:
|
|
165
|
-
a `ContextTool` representing the function
|
|
166
|
-
"""
|
|
167
|
-
schema = ToolSchema.from_function(fn, strict=strict, is_context_tool=True)
|
|
168
|
-
return cls(
|
|
169
|
-
fn=cast(ContextToolFn[DepsT, AnyP, JsonableCovariantT], schema.fn),
|
|
170
|
-
name=schema.name,
|
|
171
|
-
description=schema.description,
|
|
172
|
-
parameters=schema.parameters,
|
|
173
|
-
strict=schema.strict,
|
|
174
|
-
)
|
|
106
|
+
strict: bool = False,
|
|
107
|
+
) -> None:
|
|
108
|
+
super().__init__(fn, strict=strict, is_context_tool=True)
|
|
175
109
|
|
|
176
110
|
def __call__(
|
|
177
111
|
self,
|
|
@@ -186,22 +120,17 @@ class ContextTool(
|
|
|
186
120
|
self, ctx: Context[DepsT], tool_call: ToolCall
|
|
187
121
|
) -> ToolOutput[JsonableCovariantT]:
|
|
188
122
|
"""Execute the context tool using an LLM-provided `ToolCall`."""
|
|
123
|
+
kwargs_from_json = json.loads(tool_call.args)
|
|
189
124
|
kwargs_callable = cast(
|
|
190
|
-
|
|
125
|
+
_ContextKwargsCallable[DepsT, JsonableCovariantT], self.fn
|
|
191
126
|
)
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
kwargs_from_json = json.loads(tool_call.args)
|
|
195
|
-
result = kwargs_callable(ctx, **kwargs_from_json)
|
|
196
|
-
except Exception as e:
|
|
197
|
-
result = str(e)
|
|
198
|
-
error = ToolExecutionError(e)
|
|
199
|
-
return ToolOutput(id=tool_call.id, result=result, error=error, name=self.name)
|
|
127
|
+
result = kwargs_callable(ctx, **kwargs_from_json)
|
|
128
|
+
return ToolOutput(id=tool_call.id, value=result, name=self.name)
|
|
200
129
|
|
|
201
130
|
|
|
202
131
|
class AsyncContextTool(
|
|
203
132
|
ToolSchema[AsyncContextToolFn[DepsT, AnyP, JsonableCovariantT]],
|
|
204
|
-
Generic[DepsT,
|
|
133
|
+
Generic[DepsT, AnyP, JsonableCovariantT],
|
|
205
134
|
):
|
|
206
135
|
"""Protocol defining an async tool that can be used by LLMs with context.
|
|
207
136
|
|
|
@@ -211,31 +140,13 @@ class AsyncContextTool(
|
|
|
211
140
|
This class is not instantiated directly but created by the `@tool()` decorator.
|
|
212
141
|
"""
|
|
213
142
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
cls,
|
|
143
|
+
def __init__(
|
|
144
|
+
self,
|
|
217
145
|
fn: AsyncContextToolFn[DepsT, AnyP, JsonableCovariantT],
|
|
218
146
|
*,
|
|
219
|
-
strict: bool
|
|
220
|
-
) ->
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
Args:
|
|
224
|
-
fn: The function to extract schema from
|
|
225
|
-
strict: Whether the tool should use strict mode when supported.
|
|
226
|
-
If None, uses provider's default (usually as strict as possible).
|
|
227
|
-
|
|
228
|
-
Returns:
|
|
229
|
-
an `AsyncContextTool` representing the function
|
|
230
|
-
"""
|
|
231
|
-
schema = ToolSchema.from_function(fn, strict=strict, is_context_tool=True)
|
|
232
|
-
return cls(
|
|
233
|
-
fn=cast(AsyncContextToolFn[DepsT, AnyP, JsonableCovariantT], schema.fn),
|
|
234
|
-
name=schema.name,
|
|
235
|
-
description=schema.description,
|
|
236
|
-
parameters=schema.parameters,
|
|
237
|
-
strict=schema.strict,
|
|
238
|
-
)
|
|
147
|
+
strict: bool = False,
|
|
148
|
+
) -> None:
|
|
149
|
+
super().__init__(fn, strict=strict, is_context_tool=True)
|
|
239
150
|
|
|
240
151
|
def __call__(
|
|
241
152
|
self,
|
|
@@ -250,14 +161,9 @@ class AsyncContextTool(
|
|
|
250
161
|
self, ctx: Context[DepsT], tool_call: ToolCall
|
|
251
162
|
) -> ToolOutput[JsonableCovariantT]:
|
|
252
163
|
"""Execute the async context tool using an LLM-provided `ToolCall`."""
|
|
164
|
+
kwargs_from_json = json.loads(tool_call.args)
|
|
253
165
|
kwargs_callable = cast(
|
|
254
|
-
|
|
166
|
+
_AsyncJsonKwargsCallable[DepsT, JsonableCovariantT], self.fn
|
|
255
167
|
)
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
kwargs_from_json = json.loads(tool_call.args)
|
|
259
|
-
result = await kwargs_callable(ctx, **kwargs_from_json)
|
|
260
|
-
except Exception as e:
|
|
261
|
-
result = str(e)
|
|
262
|
-
error = ToolExecutionError(e)
|
|
263
|
-
return ToolOutput(id=tool_call.id, result=result, error=error, name=self.name)
|
|
168
|
+
result = await kwargs_callable(ctx, **kwargs_from_json)
|
|
169
|
+
return ToolOutput(id=tool_call.id, value=result, name=self.name)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mirascope
|
|
3
|
-
Version: 2.0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 2.0.0a0
|
|
4
|
+
Summary: LLM abstractions that aren't obstructions
|
|
5
5
|
Project-URL: Homepage, https://mirascope.com
|
|
6
6
|
Project-URL: Documentation, https://mirascope.com/docs/mirascope/v2
|
|
7
7
|
Project-URL: Repository, https://github.com/Mirascope/mirascope/tree/v2
|
|
@@ -11,7 +11,7 @@ Author-email: William Bakst <william@mirascope.com>, Dandelion Mané <dandelion@
|
|
|
11
11
|
Maintainer-email: William Bakst <william@mirascope.com>, Dandelion Mané <dandelion@mirascope.com>
|
|
12
12
|
License: MIT License
|
|
13
13
|
|
|
14
|
-
Copyright (c)
|
|
14
|
+
Copyright (c) 2023 Mirascope, Inc.
|
|
15
15
|
|
|
16
16
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
17
17
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -31,8 +31,8 @@ License: MIT License
|
|
|
31
31
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
32
32
|
SOFTWARE.
|
|
33
33
|
License-File: LICENSE
|
|
34
|
-
Keywords: agents,
|
|
35
|
-
Classifier: Development Status ::
|
|
34
|
+
Keywords: agents,artificial intelligence,developer tools,llm,llm tools,prompt engineering
|
|
35
|
+
Classifier: Development Status :: 3 - Alpha
|
|
36
36
|
Classifier: Intended Audience :: Developers
|
|
37
37
|
Classifier: License :: OSI Approved :: MIT License
|
|
38
38
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -40,61 +40,23 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
40
40
|
Classifier: Programming Language :: Python :: 3.11
|
|
41
41
|
Classifier: Programming Language :: Python :: 3.12
|
|
42
42
|
Classifier: Programming Language :: Python :: 3.13
|
|
43
|
-
Classifier: Programming Language :: Python :: 3.14
|
|
44
43
|
Classifier: Topic :: File Formats :: JSON
|
|
45
44
|
Classifier: Topic :: File Formats :: JSON :: JSON Schema
|
|
46
45
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
47
46
|
Classifier: Topic :: Software Development :: Libraries
|
|
48
47
|
Requires-Python: >=3.10
|
|
49
48
|
Requires-Dist: docstring-parser>=0.17.0
|
|
50
|
-
Requires-Dist: httpx>=0.27.0
|
|
51
|
-
Requires-Dist: jiter>=0.7.0
|
|
52
|
-
Requires-Dist: pydantic>=2.0.0
|
|
53
49
|
Requires-Dist: typing-extensions>=4.10.0
|
|
54
|
-
Provides-Extra: all
|
|
55
|
-
Requires-Dist: anthropic<1.0,>=0.76.0; extra == 'all'
|
|
56
|
-
Requires-Dist: google-genai<2,>=1.58.0; extra == 'all'
|
|
57
|
-
Requires-Dist: libcst>=1.8.6; extra == 'all'
|
|
58
|
-
Requires-Dist: mcp<2,>=1.25.0; extra == 'all'
|
|
59
|
-
Requires-Dist: mlx-lm<1,>=0.28.4; extra == 'all'
|
|
60
|
-
Requires-Dist: openai<3,>=2.15.0; extra == 'all'
|
|
61
|
-
Requires-Dist: opentelemetry-api<2,>=1.38.0; extra == 'all'
|
|
62
|
-
Requires-Dist: opentelemetry-exporter-otlp<2,>=1.38.0; extra == 'all'
|
|
63
|
-
Requires-Dist: opentelemetry-instrumentation<1,>=0.59b0; extra == 'all'
|
|
64
|
-
Requires-Dist: opentelemetry-propagator-b3<2,>=1.38.0; extra == 'all'
|
|
65
|
-
Requires-Dist: opentelemetry-propagator-b3>=1.38.0; extra == 'all'
|
|
66
|
-
Requires-Dist: opentelemetry-propagator-jaeger>=1.38.0; extra == 'all'
|
|
67
|
-
Requires-Dist: opentelemetry-sdk<2,>=1.38.0; extra == 'all'
|
|
68
|
-
Requires-Dist: orjson>=3.11.4; extra == 'all'
|
|
69
|
-
Requires-Dist: packaging>=25.0; extra == 'all'
|
|
70
|
-
Requires-Dist: pillow<11,>=10.4.0; extra == 'all'
|
|
71
|
-
Requires-Dist: proto-plus>=1.24.0; extra == 'all'
|
|
72
|
-
Requires-Dist: pydantic-settings>=2.12.0; extra == 'all'
|
|
73
50
|
Provides-Extra: anthropic
|
|
74
|
-
Requires-Dist: anthropic<1.0,>=0.
|
|
75
|
-
Provides-Extra: api
|
|
76
|
-
Requires-Dist: pydantic-settings>=2.12.0; extra == 'api'
|
|
51
|
+
Requires-Dist: anthropic<1.0,>=0.72.0; extra == 'anthropic'
|
|
77
52
|
Provides-Extra: google
|
|
78
|
-
Requires-Dist: google-genai<2,>=1.
|
|
53
|
+
Requires-Dist: google-genai<2,>=1.48.0; extra == 'google'
|
|
79
54
|
Requires-Dist: pillow<11,>=10.4.0; extra == 'google'
|
|
80
55
|
Requires-Dist: proto-plus>=1.24.0; extra == 'google'
|
|
81
56
|
Provides-Extra: mcp
|
|
82
|
-
Requires-Dist: mcp<2,>=1.
|
|
83
|
-
Provides-Extra: mlx
|
|
84
|
-
Requires-Dist: mlx-lm<1,>=0.28.4; extra == 'mlx'
|
|
57
|
+
Requires-Dist: mcp<2,>=1.0.0; extra == 'mcp'
|
|
85
58
|
Provides-Extra: openai
|
|
86
|
-
Requires-Dist: openai<3,>=2.
|
|
87
|
-
Provides-Extra: ops
|
|
88
|
-
Requires-Dist: libcst>=1.8.6; extra == 'ops'
|
|
89
|
-
Requires-Dist: opentelemetry-api<2,>=1.38.0; extra == 'ops'
|
|
90
|
-
Requires-Dist: opentelemetry-exporter-otlp<2,>=1.38.0; extra == 'ops'
|
|
91
|
-
Requires-Dist: opentelemetry-instrumentation<1,>=0.59b0; extra == 'ops'
|
|
92
|
-
Requires-Dist: opentelemetry-propagator-b3<2,>=1.38.0; extra == 'ops'
|
|
93
|
-
Requires-Dist: opentelemetry-propagator-b3>=1.38.0; extra == 'ops'
|
|
94
|
-
Requires-Dist: opentelemetry-propagator-jaeger>=1.38.0; extra == 'ops'
|
|
95
|
-
Requires-Dist: opentelemetry-sdk<2,>=1.38.0; extra == 'ops'
|
|
96
|
-
Requires-Dist: orjson>=3.11.4; extra == 'ops'
|
|
97
|
-
Requires-Dist: packaging>=25.0; extra == 'ops'
|
|
59
|
+
Requires-Dist: openai<3,>=2.7.1; extra == 'openai'
|
|
98
60
|
Description-Content-Type: text/markdown
|
|
99
61
|
|
|
100
62
|
## Mirascope v2 Python
|
|
@@ -120,54 +82,6 @@ This directory contains the Python implementation of Mirascope.
|
|
|
120
82
|
uv run pytest
|
|
121
83
|
```
|
|
122
84
|
|
|
123
|
-
## `ops.span` and Session Tracing
|
|
124
|
-
|
|
125
|
-
`mirascope.ops` provides tracing helpers to trace any Python function, not just
|
|
126
|
-
`llm.Model` calls.
|
|
127
|
-
|
|
128
|
-
1. Install the OTEL extra and set up a tracer provider exactly as shown above.
|
|
129
|
-
`ops.span` automatically reuses the active provider, so spans from manual
|
|
130
|
-
instrumentation and GenAI instrumentation end up in the same trace tree.
|
|
131
|
-
2. Use `ops.session` to group related spans and attach metadata:
|
|
132
|
-
```python
|
|
133
|
-
from mirascope import ops
|
|
134
|
-
|
|
135
|
-
with ops.session(id="req-42", attributes={"team": "core"}):
|
|
136
|
-
with ops.span("load-data") as span:
|
|
137
|
-
span.set(stage="ingest")
|
|
138
|
-
# expensive work here
|
|
139
|
-
```
|
|
140
|
-
3. The span exposes `span_id`/`trace_id`, logging helpers, and graceful no-op
|
|
141
|
-
behavior when OTEL is not configured. When OTEL is active, session metadata is
|
|
142
|
-
attached to every span, and additional tools like `ops.trace`/`ops.version`
|
|
143
|
-
(planned) can build on the same context.
|
|
144
|
-
|
|
145
|
-
## `ops.trace` Decorator
|
|
146
|
-
|
|
147
|
-
`@ops.trace` adds span instrumentation to any Python callable (including
|
|
148
|
-
`llm.Model` helpers) so you can capture argument/return metadata alongside the
|
|
149
|
-
GenAI spans emitted by `llm.instrument_opentelemetry`.
|
|
150
|
-
|
|
151
|
-
```python
|
|
152
|
-
from mirascope import ops
|
|
153
|
-
|
|
154
|
-
@ops.trace(tags=["ingest"])
|
|
155
|
-
def normalize(record: dict[str, str]) -> dict[str, str]:
|
|
156
|
-
return {k: v.strip() for k, v in record.items()}
|
|
157
|
-
|
|
158
|
-
result = normalize({"foo": " bar "})
|
|
159
|
-
wrapped = normalize.wrapped({"foo": " bar "})
|
|
160
|
-
print(wrapped.span_id, wrapped.trace_id)
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
- The decorator automatically handles sync/async functions and reuses `ops.span`
|
|
164
|
-
serialization logic for arguments/results.
|
|
165
|
-
- Combine with `ops.session` to tag spans with contextual metadata, and with
|
|
166
|
-
`ops.instrument_opentelemetry` to obtain both model-level GenAI spans
|
|
167
|
-
and method-level spans like `recommend_book.__call__`.
|
|
168
|
-
- For now we focus on Mirascope-layer entry points (e.g., decorated functions or
|
|
169
|
-
`llm.Model` wrappers) and do not auto-instrument underlying provider SDK calls.
|
|
170
|
-
|
|
171
85
|
## Testing
|
|
172
86
|
|
|
173
87
|
### VCR Cassettes
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
mirascope/__init__.py,sha256=wKvhFqB-FAf_Fxi1_pEenLRUK-QGMbhlsY5aPGc0lug,98
|
|
2
|
+
mirascope/graphs/__init__.py,sha256=fkZHjSt6DvJAX-V3OCnDO7B1zJx5gv1Qp2G6P32wI7I,1086
|
|
3
|
+
mirascope/graphs/finite_state_machine.py,sha256=9j8kwQ6Ne3o-auP0KVdoA0hzW2txfM1wH3GSSnbZOyg,23261
|
|
4
|
+
mirascope/llm/__init__.py,sha256=qHerzIANTngmc1aXg_ga9S7dEY7rRj83e5Z61ObAdN4,4420
|
|
5
|
+
mirascope/llm/exceptions.py,sha256=30yPPCIr8Uwibqpt2Y0cDMsimVlQubAmjqbeO5kVpSA,3090
|
|
6
|
+
mirascope/llm/agents/__init__.py,sha256=aG5ymnBfa4ZFLfGPZjdXybwjC3lrlkkeLjKfx2Zzr0Q,363
|
|
7
|
+
mirascope/llm/agents/agent.py,sha256=obACeIZuD8FIUaZL_NF0u5GNeaxRpbyNb9PNipyYIZE,2959
|
|
8
|
+
mirascope/llm/agents/agent_template.py,sha256=7zm5piQrmClHFr7zw0EOMfWp009EGDfnGAaTtrw0twY,1478
|
|
9
|
+
mirascope/llm/agents/decorator.py,sha256=IrVQMQNd9VGUnngjM-2LqVccZCwQMT9oXsYvf4MMyvI,5025
|
|
10
|
+
mirascope/llm/calls/__init__.py,sha256=rnQ29w8x_EAEecZhP2i6N6u_qE-TO3sBZGAztF3o2QQ,273
|
|
11
|
+
mirascope/llm/calls/base_call.py,sha256=ghD8__Uw-RpL-TWI1zShThWugXmZCiEA2tLsZ-XHU0I,1021
|
|
12
|
+
mirascope/llm/calls/calls.py,sha256=R2hEGVsOHkZlBKcp4CvfssXABoLiIj9aKu80qrx6Ta4,9867
|
|
13
|
+
mirascope/llm/calls/decorator.py,sha256=77JLc1xIotl7dWxzyz5xYeKIRu8ykMxZ40yj9MNd79c,7472
|
|
14
|
+
mirascope/llm/clients/__init__.py,sha256=L00p7Kfk1gu8hSLXz3dvn3y0ku0rG6vPxq2vxRoukJI,770
|
|
15
|
+
mirascope/llm/clients/providers.py,sha256=GwZldKYXGaTPbkbAbGlCYyl2-CuR1dnz4smZGblyfqc,5095
|
|
16
|
+
mirascope/llm/clients/anthropic/__init__.py,sha256=wSYwKLkASUQHEsIjvuMSQHIZ6mhdyOymmzb3clL8SlU,231
|
|
17
|
+
mirascope/llm/clients/anthropic/clients.py,sha256=8Z1Ol8V-JwCxefT2mQYUrfduliES2Yvk88hyM4GCNvc,27460
|
|
18
|
+
mirascope/llm/clients/anthropic/model_ids.py,sha256=0vp-nhDCYMw_3sKFD_tQO2FRlW8QzKiwXKBQ_lEv0yo,197
|
|
19
|
+
mirascope/llm/clients/anthropic/_utils/__init__.py,sha256=U2VNfEJCaqorAJBZDV7p3rFEp1fyk7vSitYFv_5G5Cs,232
|
|
20
|
+
mirascope/llm/clients/anthropic/_utils/decode.py,sha256=zD5__20USLa4YuTMeZo-4oi2-whckP85Ez_ch_Mross,8992
|
|
21
|
+
mirascope/llm/clients/anthropic/_utils/encode.py,sha256=Bul-WPrb7XJ7LW5gIsU2dm1Xvi5TG2lhiotvzZiNcL4,8760
|
|
22
|
+
mirascope/llm/clients/base/__init__.py,sha256=Am1Hbe7iNnVKjcR8PT52NqHgVwFnQaMojEHVrdGHAWo,278
|
|
23
|
+
mirascope/llm/clients/base/_utils.py,sha256=JyVXkbsHgOD_CnCNkq-aVdSmD4me0M40NPsdCt0pKwg,6880
|
|
24
|
+
mirascope/llm/clients/base/client.py,sha256=ffgxwMJ2vmbUB-KKzPwpgumzmGT2IhIr1yGqxYt9oBk,42258
|
|
25
|
+
mirascope/llm/clients/base/kwargs.py,sha256=pjaHVqtlmScUBqG8ZAllVaLoepdKE-KYl2eTqzOBXm0,406
|
|
26
|
+
mirascope/llm/clients/base/params.py,sha256=x2WLz0s5rMZ3u3GBGQmRlYGjecePtsLglHSJBLh35YE,3670
|
|
27
|
+
mirascope/llm/clients/google/__init__.py,sha256=nrUGqVqbUmhi1Y3MNfbmp5ItooNHEV2D3cUNhyeRH_U,197
|
|
28
|
+
mirascope/llm/clients/google/clients.py,sha256=rsWJV5kfwh93RSRE6x45wnBhnP122mLCCuOdy1cD2u4,28073
|
|
29
|
+
mirascope/llm/clients/google/message.py,sha256=ryNsMKPSyBSVXl_H0MQEaSiWC3FFybjxIUuORNSiKTk,179
|
|
30
|
+
mirascope/llm/clients/google/model_ids.py,sha256=zJe9IAX4DIO6JXeTksAx77nwtlz1k2aO0YcJHsNpRx4,338
|
|
31
|
+
mirascope/llm/clients/google/_utils/__init__.py,sha256=U2VNfEJCaqorAJBZDV7p3rFEp1fyk7vSitYFv_5G5Cs,232
|
|
32
|
+
mirascope/llm/clients/google/_utils/decode.py,sha256=z__aZLIL130nCVV5CdAJPTiaCSw61mCrItTHVDffkQQ,9007
|
|
33
|
+
mirascope/llm/clients/google/_utils/encode.py,sha256=XFaRCzMQlUW3sm949pc-rPTavDgxSIjrxOllJ8KgR3k,10482
|
|
34
|
+
mirascope/llm/clients/openai/__init__.py,sha256=LkD4Kkxc-dnpR_K5f539xSfqEaXE1vioDcW7suOJhJE,600
|
|
35
|
+
mirascope/llm/clients/openai/completions/__init__.py,sha256=mdDQfZ0WI0tOH4OUrbnNBIe1kyqdj3y0r4q3LIwr4Os,223
|
|
36
|
+
mirascope/llm/clients/openai/completions/clients.py,sha256=GjfNV1ewRi1ADgsP0t5cxPdQUWyN65gRSPzDJFMhApg,28086
|
|
37
|
+
mirascope/llm/clients/openai/completions/model_ids.py,sha256=bno8SND8YbzoQE3Tjh9dxYo04luDILD3ndzQvgL5pAg,243
|
|
38
|
+
mirascope/llm/clients/openai/completions/_utils/__init__.py,sha256=U2VNfEJCaqorAJBZDV7p3rFEp1fyk7vSitYFv_5G5Cs,232
|
|
39
|
+
mirascope/llm/clients/openai/completions/_utils/decode.py,sha256=yiXPQwL33YNVxIZAABohqSO3ElEtiShVSki8fPQWf0A,6539
|
|
40
|
+
mirascope/llm/clients/openai/completions/_utils/encode.py,sha256=q2jP8By9TUiv66-oJpWZddn709ZRIGkXniSPTxLR2Co,13227
|
|
41
|
+
mirascope/llm/clients/openai/completions/_utils/model_features.py,sha256=iIm0uxNNfYOJ4qn1wmZjNrkCXNJK5czOPmn5UVBIjz4,3397
|
|
42
|
+
mirascope/llm/clients/openai/responses/__init__.py,sha256=PofDWzyxz__hD1AaHn2hQkIPs7xxyiBcgDoCl39Tlq4,215
|
|
43
|
+
mirascope/llm/clients/openai/responses/clients.py,sha256=dMIdp-Ua_stFAtT99gDp89woUyLyWShO4aAz8G_2nog,27627
|
|
44
|
+
mirascope/llm/clients/openai/responses/model_ids.py,sha256=30OQ8wnIVp6A3I4NsTPBLqfi-SB5dhzyB7ic5p_XXhg,239
|
|
45
|
+
mirascope/llm/clients/openai/responses/_utils/__init__.py,sha256=U2VNfEJCaqorAJBZDV7p3rFEp1fyk7vSitYFv_5G5Cs,232
|
|
46
|
+
mirascope/llm/clients/openai/responses/_utils/decode.py,sha256=4D0clsSEhdF3d_z1dF1D54PmNEDm-88YBFwLldAWKfg,7583
|
|
47
|
+
mirascope/llm/clients/openai/responses/_utils/encode.py,sha256=K4Dod2Hs2ncTKTr26kbFRwmVmKqixRL1nLR51nJ9R20,12374
|
|
48
|
+
mirascope/llm/clients/openai/responses/_utils/model_features.py,sha256=nZdT7Wp38o7-u5-zUK2Oqe8KaxLbULad2DWKZDkXALQ,2295
|
|
49
|
+
mirascope/llm/clients/openai/shared/__init__.py,sha256=x4koHwL1YsrZ-vzJ-RZks9xEVUUwGuMmthxRXlmQUqc,104
|
|
50
|
+
mirascope/llm/clients/openai/shared/_utils.py,sha256=iWlQmkQXIk4J65zosjW0KiShZPEUpqgB9axrJIUfnJ4,1678
|
|
51
|
+
mirascope/llm/content/__init__.py,sha256=jgAxB-QvtT6vZduv1ADIc5yFlhTyyk1PtUuBirRXxRI,1877
|
|
52
|
+
mirascope/llm/content/audio.py,sha256=W6liY1PuQ0pF91eDBnNKW52dr-G7-vnd-rhlSqebx9Y,5311
|
|
53
|
+
mirascope/llm/content/document.py,sha256=oz3LSUEhJh-lEUDCss5p_xkPBDYQhAu9m9SGFr64_pI,2369
|
|
54
|
+
mirascope/llm/content/image.py,sha256=lG0nPvObNEva1XjqUJcZI2T7jZ1xhHaSjqsCncg0XEU,6155
|
|
55
|
+
mirascope/llm/content/text.py,sha256=4lDzXXpDy601RAkv9m85InP_CklvLccFATPThBcY1Ho,1099
|
|
56
|
+
mirascope/llm/content/thought.py,sha256=jWtlVWoS-fDjByD-m2SPdPNNxvQhfwfOio0B95j10qU,1729
|
|
57
|
+
mirascope/llm/content/tool_call.py,sha256=Ogs-_ya50dc4Zb-bfNYFaMVdO5ZHpz4caGmr6ExGrVc,1613
|
|
58
|
+
mirascope/llm/content/tool_output.py,sha256=cCaRvfoR8QFQwnI90rfZjIEkK1GVBia3YJ5BjlOoojs,661
|
|
59
|
+
mirascope/llm/context/__init__.py,sha256=2Bx8CQhTXWbtwMirZ8ppmFKPXjuYezyi10XfmRpAE5I,179
|
|
60
|
+
mirascope/llm/context/_utils.py,sha256=lZ2aoAfT7XuIZvQdqGBzOMarAFZNMW0M2HAfD25flkU,907
|
|
61
|
+
mirascope/llm/context/context.py,sha256=qvmRXsyea34wXP-_0CCe6RwkT3H57dojCw6HHnv8LVc,629
|
|
62
|
+
mirascope/llm/formatting/__init__.py,sha256=N7cvwRFqNC1udcPSZPMLMX-1eNhEtqoZzH1uuAtEX7w,592
|
|
63
|
+
mirascope/llm/formatting/_utils.py,sha256=lb7UbFXuubkeuptZ_E2w-FEokGg1SEXOH5wUP1VXMT8,2292
|
|
64
|
+
mirascope/llm/formatting/format.py,sha256=KraFe0mh6b9J7bkY6yJgM_4nthGVfKXYbpVv-WPe3Ic,3621
|
|
65
|
+
mirascope/llm/formatting/from_call_args.py,sha256=OmCzqWn47W_IXOsl1-F2Um-w4E3q71kFLA9I6L093GI,920
|
|
66
|
+
mirascope/llm/formatting/partial.py,sha256=_7WlcHvjNJIVrYGVCGphu5Y6UyZQlKyENp05QAtyJ0Q,1785
|
|
67
|
+
mirascope/llm/formatting/types.py,sha256=GSoY82khvf53lwh8qEVIoeslVvoinx8cwLhh_NygB9k,4086
|
|
68
|
+
mirascope/llm/mcp/__init__.py,sha256=qVMSydtTuNezpxv91w5JoV9b3-1s743X-bxh012JmjQ,192
|
|
69
|
+
mirascope/llm/mcp/client.py,sha256=jbOn0QohgEu40JXvjENM7VE7pws8em3Jyx-Yn1YWZ_s,3613
|
|
70
|
+
mirascope/llm/messages/__init__.py,sha256=YJ4D-s_vQd76GTRmRstI2i9Yx561plmURf-zrydKjSo,708
|
|
71
|
+
mirascope/llm/messages/message.py,sha256=7pXiNqJkO3_DhkJPVwmI88bfDLf-31lo6Y_LIp3lcP8,6114
|
|
72
|
+
mirascope/llm/models/__init__.py,sha256=5Mo-hH-wqiBnCGcs-WG17JR2zBrAGgjMtZNNN4MRDkU,513
|
|
73
|
+
mirascope/llm/models/models.py,sha256=vi3dTml08J0dc74-9ALY8DorhfJKKwqEfCsecX44Wwk,41577
|
|
74
|
+
mirascope/llm/prompts/__init__.py,sha256=OoNJX1vlhpSUoKsig_RwbcOcNS43CNcAioUsht5KVUg,650
|
|
75
|
+
mirascope/llm/prompts/_utils.py,sha256=dTLeB6YjLniev_R93N0FH9J7zaVXnrej3crRZonRuBA,1760
|
|
76
|
+
mirascope/llm/prompts/decorator.py,sha256=hWqGIW5xdYGo-H_bNIP0zzY-HdwATozfDi8ZU_SUZIQ,8589
|
|
77
|
+
mirascope/llm/prompts/protocols.py,sha256=a5k0_WCGMmNo2exgK-2eBBhDg19olCbM2b002LZPlDg,2690
|
|
78
|
+
mirascope/llm/responses/__init__.py,sha256=bWEY1_AkJxBTtq3ML3cJM2arU1XOoDFCv2QvukFz73c,1308
|
|
79
|
+
mirascope/llm/responses/_utils.py,sha256=JkKXzG6-WqAbbmWLKOmbe7gDpp9xwg7xNHXryFbt6ME,1662
|
|
80
|
+
mirascope/llm/responses/base_response.py,sha256=nReMXPSXqo42KJD9SClyggjkYnEfZn_t1u9RHOonrl4,3684
|
|
81
|
+
mirascope/llm/responses/base_stream_response.py,sha256=x-HBW7_mSm4TiRrvBY60cFkp-qQrJlZjt_VcLeI91d4,27787
|
|
82
|
+
mirascope/llm/responses/finish_reason.py,sha256=1iSVaTZP8zlTwc9Pr4r10AzGkMz0iy0om8vKsHJ0OUY,742
|
|
83
|
+
mirascope/llm/responses/response.py,sha256=nsZr2vygDBBEQAIWwrfjL-YOWJ1MbrUOkwhhY1YU0CU,11774
|
|
84
|
+
mirascope/llm/responses/root_response.py,sha256=pATfCrvwsLE4dgx3CA9ZONqcltqg9yHk9uHPQcFxYsM,6128
|
|
85
|
+
mirascope/llm/responses/stream_response.py,sha256=g8hGoKL94intm5w5mOpAh2QAH1eiCbNIJYYgknIOcM0,23656
|
|
86
|
+
mirascope/llm/responses/streams.py,sha256=TmEFvLVEWHfVYplik61yUWisxe8JGbaZdh7yC7e-axI,10789
|
|
87
|
+
mirascope/llm/tools/__init__.py,sha256=3xIhEzpLlTkuDuvkfwVy3gLPRTTJCJH5GKkqCGjgo3A,772
|
|
88
|
+
mirascope/llm/tools/_utils.py,sha256=bBVsZs8SywWspVGBGR7GGuhSmGa5-wCzeXGV6Woof9Q,872
|
|
89
|
+
mirascope/llm/tools/decorator.py,sha256=kZ90qrE7jZHcW5fg3O-SOh6xiI6yjT4fz548e4AxvQc,5326
|
|
90
|
+
mirascope/llm/tools/protocols.py,sha256=VubSZm-N2QEnBzFTsnj4pRtIgJOx2GQWM4IyqZjDk1Q,3054
|
|
91
|
+
mirascope/llm/tools/tool_schema.py,sha256=vFGVNOa8ZrE6gnwelBcPKYK7-0ULqVtlr1oXZsbVxKY,8358
|
|
92
|
+
mirascope/llm/tools/toolkit.py,sha256=pGXchFSO2H7PxFM2sPQYEMDAYHNaX9bhGEyyou_4vsg,4900
|
|
93
|
+
mirascope/llm/tools/tools.py,sha256=AEgTEZoRTxictYxPDxdX18_Ho2sD8SIa-LUTngNHPiM,5972
|
|
94
|
+
mirascope/llm/types/__init__.py,sha256=lqzi1FkZ-s-D9-KQzVkAHuQQ1zp6B6yM3r9UNo46teE,357
|
|
95
|
+
mirascope/llm/types/dataclass.py,sha256=y4_9M3Yqw_4I-H0V4TwvgGIp6JvRdtpW11NxqufnsJk,247
|
|
96
|
+
mirascope/llm/types/jsonable.py,sha256=KY6l21_RBhlHQRXQ_xy6pUqqbTVb_jVFSU4ykRy_OLU,1104
|
|
97
|
+
mirascope/llm/types/type_vars.py,sha256=OsAcQAZh5T_X8ZTLlP4GC1x3qgVY9rfYSnME8aMTDxw,642
|
|
98
|
+
mirascope-2.0.0a0.dist-info/METADATA,sha256=FySDVeLpjaHcLhgRrb12tjVMSLxojbv7AFcnJObI0XU,5035
|
|
99
|
+
mirascope-2.0.0a0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
100
|
+
mirascope-2.0.0a0.dist-info/licenses/LICENSE,sha256=LAs5Q8mdawTsVdONpDGukwsoc4KEUBmmonDEL39b23Y,1072
|
|
101
|
+
mirascope-2.0.0a0.dist-info/RECORD,,
|