arbi 0.18.0__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.
- arbi/__init__.py +92 -0
- arbi/_base_client.py +2124 -0
- arbi/_client.py +442 -0
- arbi/_compat.py +219 -0
- arbi/_constants.py +14 -0
- arbi/_exceptions.py +108 -0
- arbi/_files.py +123 -0
- arbi/_models.py +872 -0
- arbi/_qs.py +150 -0
- arbi/_resource.py +43 -0
- arbi/_response.py +830 -0
- arbi/_streaming.py +333 -0
- arbi/_types.py +270 -0
- arbi/_utils/__init__.py +64 -0
- arbi/_utils/_compat.py +45 -0
- arbi/_utils/_datetime_parse.py +136 -0
- arbi/_utils/_logs.py +25 -0
- arbi/_utils/_proxy.py +65 -0
- arbi/_utils/_reflection.py +42 -0
- arbi/_utils/_resources_proxy.py +24 -0
- arbi/_utils/_streams.py +12 -0
- arbi/_utils/_sync.py +58 -0
- arbi/_utils/_transform.py +457 -0
- arbi/_utils/_typing.py +156 -0
- arbi/_utils/_utils.py +421 -0
- arbi/_version.py +4 -0
- arbi/lib/.keep +4 -0
- arbi/py.typed +0 -0
- arbi/resources/__init__.py +19 -0
- arbi/resources/api/__init__.py +145 -0
- arbi/resources/api/api.py +422 -0
- arbi/resources/api/assistant.py +312 -0
- arbi/resources/api/configs.py +533 -0
- arbi/resources/api/conversation/__init__.py +33 -0
- arbi/resources/api/conversation/conversation.py +648 -0
- arbi/resources/api/conversation/user.py +270 -0
- arbi/resources/api/document/__init__.py +33 -0
- arbi/resources/api/document/doctag.py +516 -0
- arbi/resources/api/document/document.py +929 -0
- arbi/resources/api/health.py +253 -0
- arbi/resources/api/notifications.py +478 -0
- arbi/resources/api/tag.py +409 -0
- arbi/resources/api/user/__init__.py +61 -0
- arbi/resources/api/user/contacts.py +322 -0
- arbi/resources/api/user/settings.py +283 -0
- arbi/resources/api/user/subscription.py +230 -0
- arbi/resources/api/user/user.py +943 -0
- arbi/resources/api/workspace.py +1198 -0
- arbi/types/__init__.py +8 -0
- arbi/types/api/__init__.py +94 -0
- arbi/types/api/assistant_query_params.py +95 -0
- arbi/types/api/assistant_retrieve_params.py +95 -0
- arbi/types/api/chunker_config_param.py +9 -0
- arbi/types/api/config_create_params.py +227 -0
- arbi/types/api/config_create_response.py +17 -0
- arbi/types/api/config_delete_response.py +11 -0
- arbi/types/api/config_get_versions_response.py +19 -0
- arbi/types/api/config_retrieve_response.py +234 -0
- arbi/types/api/conversation/__init__.py +8 -0
- arbi/types/api/conversation/user_add_params.py +11 -0
- arbi/types/api/conversation/user_add_response.py +11 -0
- arbi/types/api/conversation/user_remove_params.py +11 -0
- arbi/types/api/conversation/user_remove_response.py +11 -0
- arbi/types/api/conversation_delete_message_response.py +11 -0
- arbi/types/api/conversation_delete_response.py +11 -0
- arbi/types/api/conversation_retrieve_message_response.py +105 -0
- arbi/types/api/conversation_retrieve_threads_response.py +124 -0
- arbi/types/api/conversation_share_response.py +11 -0
- arbi/types/api/conversation_update_title_params.py +16 -0
- arbi/types/api/conversation_update_title_response.py +13 -0
- arbi/types/api/doc_response.py +66 -0
- arbi/types/api/document/__init__.py +11 -0
- arbi/types/api/document/doc_tag_response.py +40 -0
- arbi/types/api/document/doctag_create_params.py +35 -0
- arbi/types/api/document/doctag_create_response.py +10 -0
- arbi/types/api/document/doctag_delete_params.py +15 -0
- arbi/types/api/document/doctag_generate_params.py +22 -0
- arbi/types/api/document/doctag_generate_response.py +20 -0
- arbi/types/api/document/doctag_update_params.py +35 -0
- arbi/types/api/document_date_extractor_llm_config.py +29 -0
- arbi/types/api/document_date_extractor_llm_config_param.py +28 -0
- arbi/types/api/document_delete_params.py +13 -0
- arbi/types/api/document_get_parsed_response.py +26 -0
- arbi/types/api/document_retrieve_params.py +16 -0
- arbi/types/api/document_retrieve_response.py +10 -0
- arbi/types/api/document_update_params.py +42 -0
- arbi/types/api/document_update_response.py +10 -0
- arbi/types/api/document_upload_from_url_params.py +26 -0
- arbi/types/api/document_upload_from_url_response.py +16 -0
- arbi/types/api/document_upload_params.py +26 -0
- arbi/types/api/document_upload_response.py +16 -0
- arbi/types/api/embedder_config.py +30 -0
- arbi/types/api/embedder_config_param.py +29 -0
- arbi/types/api/health_check_models_response.py +21 -0
- arbi/types/api/health_get_models_response.py +19 -0
- arbi/types/api/health_retrieve_status_response.py +49 -0
- arbi/types/api/model_citation_config.py +20 -0
- arbi/types/api/model_citation_config_param.py +20 -0
- arbi/types/api/notification_create_params.py +20 -0
- arbi/types/api/notification_create_response.py +47 -0
- arbi/types/api/notification_delete_params.py +13 -0
- arbi/types/api/notification_get_schemas_response.py +197 -0
- arbi/types/api/notification_list_response.py +47 -0
- arbi/types/api/notification_update_params.py +27 -0
- arbi/types/api/notification_update_response.py +47 -0
- arbi/types/api/parser_config_param.py +9 -0
- arbi/types/api/query_llm_config.py +30 -0
- arbi/types/api/query_llm_config_param.py +29 -0
- arbi/types/api/reranker_config.py +21 -0
- arbi/types/api/reranker_config_param.py +20 -0
- arbi/types/api/retriever_config.py +39 -0
- arbi/types/api/retriever_config_param.py +38 -0
- arbi/types/api/tag_create_params.py +49 -0
- arbi/types/api/tag_create_response.py +57 -0
- arbi/types/api/tag_delete_response.py +9 -0
- arbi/types/api/tag_update_params.py +22 -0
- arbi/types/api/tag_update_response.py +57 -0
- arbi/types/api/title_llm_config.py +29 -0
- arbi/types/api/title_llm_config_param.py +28 -0
- arbi/types/api/user/__init__.py +13 -0
- arbi/types/api/user/contact_create_params.py +13 -0
- arbi/types/api/user/contact_create_response.py +30 -0
- arbi/types/api/user/contact_delete_params.py +13 -0
- arbi/types/api/user/contact_list_response.py +30 -0
- arbi/types/api/user/setting_retrieve_response.py +89 -0
- arbi/types/api/user/setting_update_params.py +60 -0
- arbi/types/api/user/subscription_create_params.py +13 -0
- arbi/types/api/user/subscription_create_response.py +11 -0
- arbi/types/api/user/subscription_retrieve_response.py +48 -0
- arbi/types/api/user_change_password_params.py +18 -0
- arbi/types/api/user_change_password_response.py +11 -0
- arbi/types/api/user_check_sso_status_params.py +20 -0
- arbi/types/api/user_check_sso_status_response.py +25 -0
- arbi/types/api/user_list_products_response.py +37 -0
- arbi/types/api/user_list_workspaces_response.py +10 -0
- arbi/types/api/user_login_params.py +18 -0
- arbi/types/api/user_login_response.py +23 -0
- arbi/types/api/user_logout_response.py +9 -0
- arbi/types/api/user_register_params.py +22 -0
- arbi/types/api/user_response.py +26 -0
- arbi/types/api/user_verify_email_params.py +11 -0
- arbi/types/api/user_verify_email_response.py +9 -0
- arbi/types/api/workspace_copy_params.py +21 -0
- arbi/types/api/workspace_copy_response.py +25 -0
- arbi/types/api/workspace_create_protected_params.py +16 -0
- arbi/types/api/workspace_delete_response.py +9 -0
- arbi/types/api/workspace_get_conversations_response.py +30 -0
- arbi/types/api/workspace_get_documents_response.py +10 -0
- arbi/types/api/workspace_get_stats_response.py +17 -0
- arbi/types/api/workspace_get_tags_response.py +60 -0
- arbi/types/api/workspace_get_users_response.py +10 -0
- arbi/types/api/workspace_remove_user_params.py +11 -0
- arbi/types/api/workspace_remove_user_response.py +11 -0
- arbi/types/api/workspace_response.py +41 -0
- arbi/types/api/workspace_share_params.py +15 -0
- arbi/types/api/workspace_share_response.py +13 -0
- arbi/types/api/workspace_update_params.py +20 -0
- arbi/types/chunk.py +12 -0
- arbi/types/chunk_metadata.py +31 -0
- arbi/types/chunk_metadata_param.py +32 -0
- arbi/types/chunk_param.py +15 -0
- arbi-0.18.0.dist-info/METADATA +410 -0
- arbi-0.18.0.dist-info/RECORD +165 -0
- arbi-0.18.0.dist-info/WHEEL +4 -0
- arbi-0.18.0.dist-info/licenses/LICENSE +201 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from typing_extensions import Annotated, TypedDict
|
|
7
|
+
|
|
8
|
+
from ..._utils import PropertyInfo
|
|
9
|
+
|
|
10
|
+
__all__ = ["TagUpdateParams"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class TagUpdateParams(TypedDict, total=False):
|
|
14
|
+
instruction: Optional[str]
|
|
15
|
+
|
|
16
|
+
name: Optional[str]
|
|
17
|
+
|
|
18
|
+
parent_ext_id: Optional[str]
|
|
19
|
+
|
|
20
|
+
shared: Optional[bool]
|
|
21
|
+
|
|
22
|
+
workspace_key: Annotated[str, PropertyInfo(alias="workspace-key")]
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from typing_extensions import Literal
|
|
6
|
+
|
|
7
|
+
from ..._models import BaseModel
|
|
8
|
+
|
|
9
|
+
__all__ = ["TagUpdateResponse", "TagType"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class TagType(BaseModel):
|
|
13
|
+
"""Tag format configuration stored as JSONB.
|
|
14
|
+
|
|
15
|
+
Type-specific fields:
|
|
16
|
+
- select: options (list of choices, can be single or multi-select)
|
|
17
|
+
- search: tag name is the query, chunks include relevance scores
|
|
18
|
+
- checkbox, text, number, folder: type only
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
options: Optional[List[str]] = None
|
|
22
|
+
|
|
23
|
+
type: Optional[Literal["checkbox", "text", "number", "select", "folder", "search"]] = None
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class TagUpdateResponse(BaseModel):
|
|
27
|
+
created_at: datetime
|
|
28
|
+
|
|
29
|
+
created_by_ext_id: str
|
|
30
|
+
|
|
31
|
+
doctag_count: int
|
|
32
|
+
|
|
33
|
+
external_id: str
|
|
34
|
+
|
|
35
|
+
name: str
|
|
36
|
+
|
|
37
|
+
shared: bool
|
|
38
|
+
|
|
39
|
+
tag_type: TagType
|
|
40
|
+
"""Tag format configuration stored as JSONB.
|
|
41
|
+
|
|
42
|
+
Type-specific fields:
|
|
43
|
+
|
|
44
|
+
- select: options (list of choices, can be single or multi-select)
|
|
45
|
+
- search: tag name is the query, chunks include relevance scores
|
|
46
|
+
- checkbox, text, number, folder: type only
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
updated_at: datetime
|
|
50
|
+
|
|
51
|
+
workspace_ext_id: str
|
|
52
|
+
|
|
53
|
+
instruction: Optional[str] = None
|
|
54
|
+
|
|
55
|
+
parent_ext_id: Optional[str] = None
|
|
56
|
+
|
|
57
|
+
updated_by_ext_id: Optional[str] = None
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from pydantic import Field as FieldInfo
|
|
7
|
+
|
|
8
|
+
from ..._models import BaseModel
|
|
9
|
+
|
|
10
|
+
__all__ = ["TitleLlmConfig"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class TitleLlmConfig(BaseModel):
|
|
14
|
+
api_type: Optional[Literal["local", "remote"]] = FieldInfo(alias="API_TYPE", default=None)
|
|
15
|
+
"""The inference type (local or remote)."""
|
|
16
|
+
|
|
17
|
+
max_char_size_to_answer: Optional[int] = FieldInfo(alias="MAX_CHAR_SIZE_TO_ANSWER", default=None)
|
|
18
|
+
"""Maximum character size to answer."""
|
|
19
|
+
|
|
20
|
+
max_tokens: Optional[int] = FieldInfo(alias="MAX_TOKENS", default=None)
|
|
21
|
+
"""Maximum number of tokens allowed."""
|
|
22
|
+
|
|
23
|
+
api_model_name: Optional[str] = FieldInfo(alias="MODEL_NAME", default=None)
|
|
24
|
+
"""The name of the non-reasoning model to be used."""
|
|
25
|
+
|
|
26
|
+
system_instruction: Optional[str] = FieldInfo(alias="SYSTEM_INSTRUCTION", default=None)
|
|
27
|
+
|
|
28
|
+
temperature: Optional[float] = FieldInfo(alias="TEMPERATURE", default=None)
|
|
29
|
+
"""Temperature value for randomness."""
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Literal, Annotated, TypedDict
|
|
6
|
+
|
|
7
|
+
from ..._utils import PropertyInfo
|
|
8
|
+
|
|
9
|
+
__all__ = ["TitleLlmConfigParam"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class TitleLlmConfigParam(TypedDict, total=False):
|
|
13
|
+
api_type: Annotated[Literal["local", "remote"], PropertyInfo(alias="API_TYPE")]
|
|
14
|
+
"""The inference type (local or remote)."""
|
|
15
|
+
|
|
16
|
+
max_char_size_to_answer: Annotated[int, PropertyInfo(alias="MAX_CHAR_SIZE_TO_ANSWER")]
|
|
17
|
+
"""Maximum character size to answer."""
|
|
18
|
+
|
|
19
|
+
max_tokens: Annotated[int, PropertyInfo(alias="MAX_TOKENS")]
|
|
20
|
+
"""Maximum number of tokens allowed."""
|
|
21
|
+
|
|
22
|
+
model_name: Annotated[str, PropertyInfo(alias="MODEL_NAME")]
|
|
23
|
+
"""The name of the non-reasoning model to be used."""
|
|
24
|
+
|
|
25
|
+
system_instruction: Annotated[str, PropertyInfo(alias="SYSTEM_INSTRUCTION")]
|
|
26
|
+
|
|
27
|
+
temperature: Annotated[float, PropertyInfo(alias="TEMPERATURE")]
|
|
28
|
+
"""Temperature value for randomness."""
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from .contact_create_params import ContactCreateParams as ContactCreateParams
|
|
6
|
+
from .contact_delete_params import ContactDeleteParams as ContactDeleteParams
|
|
7
|
+
from .contact_list_response import ContactListResponse as ContactListResponse
|
|
8
|
+
from .setting_update_params import SettingUpdateParams as SettingUpdateParams
|
|
9
|
+
from .contact_create_response import ContactCreateResponse as ContactCreateResponse
|
|
10
|
+
from .setting_retrieve_response import SettingRetrieveResponse as SettingRetrieveResponse
|
|
11
|
+
from .subscription_create_params import SubscriptionCreateParams as SubscriptionCreateParams
|
|
12
|
+
from .subscription_create_response import SubscriptionCreateResponse as SubscriptionCreateResponse
|
|
13
|
+
from .subscription_retrieve_response import SubscriptionRetrieveResponse as SubscriptionRetrieveResponse
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Required, TypedDict
|
|
6
|
+
|
|
7
|
+
from ...._types import SequenceNotStr
|
|
8
|
+
|
|
9
|
+
__all__ = ["ContactCreateParams"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ContactCreateParams(TypedDict, total=False):
|
|
13
|
+
emails: Required[SequenceNotStr[str]]
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from typing_extensions import Literal, TypeAlias
|
|
5
|
+
|
|
6
|
+
from ...._models import BaseModel
|
|
7
|
+
from ..user_response import UserResponse
|
|
8
|
+
|
|
9
|
+
__all__ = ["ContactCreateResponse", "ContactCreateResponseItem"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ContactCreateResponseItem(BaseModel):
|
|
13
|
+
"""Contact record - may or may not be a registered user."""
|
|
14
|
+
|
|
15
|
+
created_at: str
|
|
16
|
+
|
|
17
|
+
email: str
|
|
18
|
+
|
|
19
|
+
external_id: str
|
|
20
|
+
|
|
21
|
+
status: Literal["invitation_pending", "invitation_expired", "registered"]
|
|
22
|
+
|
|
23
|
+
user: Optional[UserResponse] = None
|
|
24
|
+
"""Standard user representation used across all endpoints.
|
|
25
|
+
|
|
26
|
+
Used for: login response, workspace users, contacts (when registered).
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
ContactCreateResponse: TypeAlias = List[ContactCreateResponseItem]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Required, TypedDict
|
|
6
|
+
|
|
7
|
+
from ...._types import SequenceNotStr
|
|
8
|
+
|
|
9
|
+
__all__ = ["ContactDeleteParams"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ContactDeleteParams(TypedDict, total=False):
|
|
13
|
+
contact_ids: Required[SequenceNotStr[str]]
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from typing_extensions import Literal, TypeAlias
|
|
5
|
+
|
|
6
|
+
from ...._models import BaseModel
|
|
7
|
+
from ..user_response import UserResponse
|
|
8
|
+
|
|
9
|
+
__all__ = ["ContactListResponse", "ContactListResponseItem"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ContactListResponseItem(BaseModel):
|
|
13
|
+
"""Contact record - may or may not be a registered user."""
|
|
14
|
+
|
|
15
|
+
created_at: str
|
|
16
|
+
|
|
17
|
+
email: str
|
|
18
|
+
|
|
19
|
+
external_id: str
|
|
20
|
+
|
|
21
|
+
status: Literal["invitation_pending", "invitation_expired", "registered"]
|
|
22
|
+
|
|
23
|
+
user: Optional[UserResponse] = None
|
|
24
|
+
"""Standard user representation used across all endpoints.
|
|
25
|
+
|
|
26
|
+
Used for: login response, workspace users, contacts (when registered).
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
ContactListResponse: TypeAlias = List[ContactListResponseItem]
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING, Dict, List, Optional
|
|
4
|
+
|
|
5
|
+
from pydantic import Field as FieldInfo
|
|
6
|
+
|
|
7
|
+
from ...._models import BaseModel
|
|
8
|
+
|
|
9
|
+
__all__ = ["SettingRetrieveResponse", "Subscription", "Tableview"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Subscription(BaseModel):
|
|
13
|
+
"""Subscription info exposed to frontend in user settings.
|
|
14
|
+
|
|
15
|
+
Note: stripe_customer_id is deliberately excluded for security.
|
|
16
|
+
This is a minimal model used in UserSettingsResponse.
|
|
17
|
+
For full subscription details, use GET /subscription endpoint.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
status: Optional[str] = None
|
|
21
|
+
|
|
22
|
+
trial_expires: Optional[int] = None
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Tableview(BaseModel):
|
|
26
|
+
"""Saved column configuration for the document table.
|
|
27
|
+
|
|
28
|
+
Column ID formats:
|
|
29
|
+
- Standard columns: "doc_date", "title", "file_name", "status", "n_pages", "created_at"
|
|
30
|
+
- Tags: tag external ID (e.g., "tag-a1b2c3d4")
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
columns: List[str]
|
|
34
|
+
|
|
35
|
+
name: str
|
|
36
|
+
|
|
37
|
+
workspace: str
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class SettingRetrieveResponse(BaseModel):
|
|
41
|
+
"""User settings response."""
|
|
42
|
+
|
|
43
|
+
ai_mode: Optional[str] = None
|
|
44
|
+
|
|
45
|
+
developer: Optional[bool] = None
|
|
46
|
+
|
|
47
|
+
hide_online_status: Optional[bool] = None
|
|
48
|
+
|
|
49
|
+
last_workspace: Optional[str] = None
|
|
50
|
+
|
|
51
|
+
muted_users: Optional[List[str]] = None
|
|
52
|
+
|
|
53
|
+
pinned_workspaces: Optional[List[str]] = None
|
|
54
|
+
|
|
55
|
+
show_document_navigator: Optional[bool] = None
|
|
56
|
+
|
|
57
|
+
show_help_page: Optional[bool] = None
|
|
58
|
+
|
|
59
|
+
show_invite_tab: Optional[bool] = None
|
|
60
|
+
|
|
61
|
+
show_security_settings: Optional[bool] = None
|
|
62
|
+
|
|
63
|
+
show_smart_search: Optional[bool] = None
|
|
64
|
+
|
|
65
|
+
show_templates: Optional[bool] = None
|
|
66
|
+
|
|
67
|
+
show_thread_visualization: Optional[bool] = None
|
|
68
|
+
|
|
69
|
+
subscription: Optional[Subscription] = None
|
|
70
|
+
"""Subscription info exposed to frontend in user settings.
|
|
71
|
+
|
|
72
|
+
Note: stripe_customer_id is deliberately excluded for security. This is a
|
|
73
|
+
minimal model used in UserSettingsResponse. For full subscription details, use
|
|
74
|
+
GET /subscription endpoint.
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
tableviews: Optional[List[Tableview]] = None
|
|
78
|
+
|
|
79
|
+
if TYPE_CHECKING:
|
|
80
|
+
# Some versions of Pydantic <2.8.0 have a bug and don’t allow assigning a
|
|
81
|
+
# value to this field, so for compatibility we avoid doing it at runtime.
|
|
82
|
+
__pydantic_extra__: Dict[str, object] = FieldInfo(init=False) # pyright: ignore[reportIncompatibleVariableOverride]
|
|
83
|
+
|
|
84
|
+
# Stub to indicate that arbitrary properties are accepted.
|
|
85
|
+
# To access properties that are not valid identifiers you can use `getattr`, e.g.
|
|
86
|
+
# `getattr(obj, '$type')`
|
|
87
|
+
def __getattr__(self, attr: str) -> object: ...
|
|
88
|
+
else:
|
|
89
|
+
__pydantic_extra__: Dict[str, object]
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Iterable, Optional
|
|
6
|
+
from typing_extensions import Required, TypedDict
|
|
7
|
+
|
|
8
|
+
from ...._types import SequenceNotStr
|
|
9
|
+
|
|
10
|
+
__all__ = ["SettingUpdateParams", "Subscription", "Tableview"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class SettingUpdateParams(TypedDict, total=False):
|
|
14
|
+
ai_mode: Optional[str]
|
|
15
|
+
|
|
16
|
+
hide_online_status: Optional[bool]
|
|
17
|
+
|
|
18
|
+
muted_users: Optional[SequenceNotStr[str]]
|
|
19
|
+
|
|
20
|
+
pinned_workspaces: Optional[SequenceNotStr[str]]
|
|
21
|
+
|
|
22
|
+
show_document_navigator: Optional[bool]
|
|
23
|
+
|
|
24
|
+
show_help_page: Optional[bool]
|
|
25
|
+
|
|
26
|
+
show_invite_tab: Optional[bool]
|
|
27
|
+
|
|
28
|
+
show_security_settings: Optional[bool]
|
|
29
|
+
|
|
30
|
+
show_smart_search: Optional[bool]
|
|
31
|
+
|
|
32
|
+
show_templates: Optional[bool]
|
|
33
|
+
|
|
34
|
+
show_thread_visualization: Optional[bool]
|
|
35
|
+
|
|
36
|
+
subscription: Optional[Subscription]
|
|
37
|
+
"""Trial update - only trial_expires can be set, and only if currently null."""
|
|
38
|
+
|
|
39
|
+
tableviews: Optional[Iterable[Tableview]]
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class Subscription(TypedDict, total=False):
|
|
43
|
+
"""Trial update - only trial_expires can be set, and only if currently null."""
|
|
44
|
+
|
|
45
|
+
trial_expires: Optional[int]
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class Tableview(TypedDict, total=False):
|
|
49
|
+
"""Saved column configuration for the document table.
|
|
50
|
+
|
|
51
|
+
Column ID formats:
|
|
52
|
+
- Standard columns: "doc_date", "title", "file_name", "status", "n_pages", "created_at"
|
|
53
|
+
- Tags: tag external ID (e.g., "tag-a1b2c3d4")
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
columns: Required[SequenceNotStr[str]]
|
|
57
|
+
|
|
58
|
+
name: Required[str]
|
|
59
|
+
|
|
60
|
+
workspace: Required[str]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Required, TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["SubscriptionCreateParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SubscriptionCreateParams(TypedDict, total=False):
|
|
11
|
+
price_id: Required[str]
|
|
12
|
+
|
|
13
|
+
origin: str
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from ...._models import BaseModel
|
|
4
|
+
|
|
5
|
+
__all__ = ["SubscriptionCreateResponse"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class SubscriptionCreateResponse(BaseModel):
|
|
9
|
+
"""Response containing Stripe checkout session client secret."""
|
|
10
|
+
|
|
11
|
+
client_secret: str
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from ...._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["SubscriptionRetrieveResponse"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SubscriptionRetrieveResponse(BaseModel):
|
|
11
|
+
"""Subscription status response - unified model for all subscription states.
|
|
12
|
+
|
|
13
|
+
Status can be:
|
|
14
|
+
- "trialing": User is on trial (has trial_expires, days_remaining)
|
|
15
|
+
- "active": Active Stripe subscription (has plan, amount, currency, etc.)
|
|
16
|
+
- "canceled": Had subscription but canceled (has portal_url)
|
|
17
|
+
- "none": No subscription or trial
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
status: str
|
|
21
|
+
|
|
22
|
+
amount: Optional[int] = None
|
|
23
|
+
|
|
24
|
+
budget_reset_at: Optional[int] = None
|
|
25
|
+
|
|
26
|
+
cancel_at_period_end: Optional[bool] = None
|
|
27
|
+
|
|
28
|
+
currency: Optional[str] = None
|
|
29
|
+
|
|
30
|
+
current_period_end: Optional[int] = None
|
|
31
|
+
|
|
32
|
+
days_remaining: Optional[int] = None
|
|
33
|
+
|
|
34
|
+
max_budget: Optional[float] = None
|
|
35
|
+
|
|
36
|
+
plan: Optional[str] = None
|
|
37
|
+
|
|
38
|
+
portal_url: Optional[str] = None
|
|
39
|
+
|
|
40
|
+
price_id: Optional[str] = None
|
|
41
|
+
|
|
42
|
+
spend: Optional[float] = None
|
|
43
|
+
|
|
44
|
+
storage_quota_mb: Optional[int] = None
|
|
45
|
+
|
|
46
|
+
total_files_mb: Optional[float] = None
|
|
47
|
+
|
|
48
|
+
trial_expires: Optional[int] = None
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Dict
|
|
6
|
+
from typing_extensions import Required, TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["UserChangePasswordParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class UserChangePasswordParams(TypedDict, total=False):
|
|
12
|
+
new_signing_key: Required[str]
|
|
13
|
+
|
|
14
|
+
rewrapped_workspace_keys: Required[Dict[str, str]]
|
|
15
|
+
|
|
16
|
+
signature: Required[str]
|
|
17
|
+
|
|
18
|
+
timestamp: Required[int]
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from ..._models import BaseModel
|
|
4
|
+
|
|
5
|
+
__all__ = ["UserChangePasswordResponse"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class UserChangePasswordResponse(BaseModel):
|
|
9
|
+
detail: str
|
|
10
|
+
|
|
11
|
+
workspaces_updated: int
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from typing_extensions import Required, TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["UserCheckSSOStatusParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class UserCheckSSOStatusParams(TypedDict, total=False):
|
|
12
|
+
email: Required[str]
|
|
13
|
+
|
|
14
|
+
sso_token: Required[str]
|
|
15
|
+
|
|
16
|
+
family_name: Optional[str]
|
|
17
|
+
|
|
18
|
+
given_name: Optional[str]
|
|
19
|
+
|
|
20
|
+
picture: Optional[str]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["UserCheckSSOStatusResponse"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class UserCheckSSOStatusResponse(BaseModel):
|
|
11
|
+
"""SSO status response - indicates user registration state.
|
|
12
|
+
|
|
13
|
+
States:
|
|
14
|
+
- new_user: No user exists, show "Set Master Password"
|
|
15
|
+
- local_exists: Local user exists, show "Link SSO Account? Enter your master password"
|
|
16
|
+
- sso_exists: SSO user exists, show "Enter Master Password"
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
email: str
|
|
20
|
+
|
|
21
|
+
status: str
|
|
22
|
+
|
|
23
|
+
family_name: Optional[str] = None
|
|
24
|
+
|
|
25
|
+
given_name: Optional[str] = None
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from typing_extensions import TypeAlias
|
|
5
|
+
|
|
6
|
+
from ..._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = ["UserListProductsResponse", "UserListProductsResponseItem", "UserListProductsResponseItemPrice"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class UserListProductsResponseItemPrice(BaseModel):
|
|
12
|
+
"""Stripe product price information."""
|
|
13
|
+
|
|
14
|
+
amount: int
|
|
15
|
+
|
|
16
|
+
currency: str
|
|
17
|
+
|
|
18
|
+
interval: str
|
|
19
|
+
|
|
20
|
+
interval_count: int
|
|
21
|
+
|
|
22
|
+
price_id: str
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class UserListProductsResponseItem(BaseModel):
|
|
26
|
+
"""Stripe product with pricing information."""
|
|
27
|
+
|
|
28
|
+
name: str
|
|
29
|
+
|
|
30
|
+
prices: List[UserListProductsResponseItemPrice]
|
|
31
|
+
|
|
32
|
+
product_id: str
|
|
33
|
+
|
|
34
|
+
description: Optional[str] = None
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
UserListProductsResponse: TypeAlias = List[UserListProductsResponseItem]
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List
|
|
4
|
+
from typing_extensions import TypeAlias
|
|
5
|
+
|
|
6
|
+
from .workspace_response import WorkspaceResponse
|
|
7
|
+
|
|
8
|
+
__all__ = ["UserListWorkspacesResponse"]
|
|
9
|
+
|
|
10
|
+
UserListWorkspacesResponse: TypeAlias = List[WorkspaceResponse]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from typing_extensions import Required, TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["UserLoginParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class UserLoginParams(TypedDict, total=False):
|
|
12
|
+
email: Required[str]
|
|
13
|
+
|
|
14
|
+
signature: Required[str]
|
|
15
|
+
|
|
16
|
+
timestamp: Required[int]
|
|
17
|
+
|
|
18
|
+
sso_token: Optional[str]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from ..._models import BaseModel
|
|
4
|
+
from .user_response import UserResponse
|
|
5
|
+
|
|
6
|
+
__all__ = ["UserLoginResponse"]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class UserLoginResponse(BaseModel):
|
|
10
|
+
"""Login response with access token, session key, and user info.
|
|
11
|
+
|
|
12
|
+
Used by: /user/login
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
access_token: str
|
|
16
|
+
|
|
17
|
+
session_key: str
|
|
18
|
+
|
|
19
|
+
user: UserResponse
|
|
20
|
+
"""Standard user representation used across all endpoints.
|
|
21
|
+
|
|
22
|
+
Used for: login response, workspace users, contacts (when registered).
|
|
23
|
+
"""
|