knowledge2 0.4.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.
Files changed (139) hide show
  1. knowledge2-0.4.0.dist-info/METADATA +556 -0
  2. knowledge2-0.4.0.dist-info/RECORD +139 -0
  3. knowledge2-0.4.0.dist-info/WHEEL +5 -0
  4. knowledge2-0.4.0.dist-info/top_level.txt +1 -0
  5. sdk/__init__.py +70 -0
  6. sdk/_async_base.py +525 -0
  7. sdk/_async_paging.py +57 -0
  8. sdk/_base.py +541 -0
  9. sdk/_logging.py +41 -0
  10. sdk/_paging.py +73 -0
  11. sdk/_preview.py +70 -0
  12. sdk/_raw_response.py +25 -0
  13. sdk/_request_options.py +51 -0
  14. sdk/_transport.py +144 -0
  15. sdk/_validation.py +25 -0
  16. sdk/_validation_response.py +36 -0
  17. sdk/_version.py +3 -0
  18. sdk/async_client.py +320 -0
  19. sdk/async_resources/__init__.py +45 -0
  20. sdk/async_resources/_mixin_base.py +42 -0
  21. sdk/async_resources/a2a.py +230 -0
  22. sdk/async_resources/agents.py +489 -0
  23. sdk/async_resources/audit.py +145 -0
  24. sdk/async_resources/auth.py +133 -0
  25. sdk/async_resources/console.py +409 -0
  26. sdk/async_resources/corpora.py +276 -0
  27. sdk/async_resources/deployments.py +106 -0
  28. sdk/async_resources/documents.py +592 -0
  29. sdk/async_resources/feeds.py +248 -0
  30. sdk/async_resources/indexes.py +208 -0
  31. sdk/async_resources/jobs.py +165 -0
  32. sdk/async_resources/metadata.py +48 -0
  33. sdk/async_resources/models.py +102 -0
  34. sdk/async_resources/onboarding.py +538 -0
  35. sdk/async_resources/orgs.py +37 -0
  36. sdk/async_resources/pipelines.py +523 -0
  37. sdk/async_resources/projects.py +90 -0
  38. sdk/async_resources/search.py +262 -0
  39. sdk/async_resources/training.py +357 -0
  40. sdk/async_resources/usage.py +91 -0
  41. sdk/client.py +417 -0
  42. sdk/config.py +182 -0
  43. sdk/errors.py +178 -0
  44. sdk/examples/auth_factory.py +34 -0
  45. sdk/examples/batch_operations.py +57 -0
  46. sdk/examples/document_upload.py +56 -0
  47. sdk/examples/e2e_lifecycle.py +213 -0
  48. sdk/examples/error_handling.py +61 -0
  49. sdk/examples/pagination.py +64 -0
  50. sdk/examples/quickstart.py +36 -0
  51. sdk/examples/request_options.py +44 -0
  52. sdk/examples/search.py +64 -0
  53. sdk/integrations/__init__.py +57 -0
  54. sdk/integrations/_client.py +101 -0
  55. sdk/integrations/langchain/__init__.py +6 -0
  56. sdk/integrations/langchain/retriever.py +166 -0
  57. sdk/integrations/langchain/tools.py +108 -0
  58. sdk/integrations/llamaindex/__init__.py +11 -0
  59. sdk/integrations/llamaindex/filters.py +78 -0
  60. sdk/integrations/llamaindex/retriever.py +162 -0
  61. sdk/integrations/llamaindex/tools.py +109 -0
  62. sdk/integrations/llamaindex/vector_store.py +320 -0
  63. sdk/models/__init__.py +18 -0
  64. sdk/models/_base.py +24 -0
  65. sdk/models/_registry.py +457 -0
  66. sdk/models/a2a.py +92 -0
  67. sdk/models/agents.py +109 -0
  68. sdk/models/audit.py +28 -0
  69. sdk/models/auth.py +49 -0
  70. sdk/models/chunks.py +20 -0
  71. sdk/models/common.py +14 -0
  72. sdk/models/console.py +103 -0
  73. sdk/models/corpora.py +48 -0
  74. sdk/models/deployments.py +13 -0
  75. sdk/models/documents.py +126 -0
  76. sdk/models/embeddings.py +24 -0
  77. sdk/models/evaluation.py +17 -0
  78. sdk/models/feedback.py +9 -0
  79. sdk/models/feeds.py +57 -0
  80. sdk/models/indexes.py +36 -0
  81. sdk/models/jobs.py +52 -0
  82. sdk/models/models.py +26 -0
  83. sdk/models/onboarding.py +323 -0
  84. sdk/models/orgs.py +11 -0
  85. sdk/models/pipelines.py +147 -0
  86. sdk/models/projects.py +19 -0
  87. sdk/models/search.py +149 -0
  88. sdk/models/training.py +57 -0
  89. sdk/models/usage.py +39 -0
  90. sdk/namespaces.py +386 -0
  91. sdk/py.typed +0 -0
  92. sdk/resources/__init__.py +45 -0
  93. sdk/resources/_mixin_base.py +40 -0
  94. sdk/resources/a2a.py +230 -0
  95. sdk/resources/agents.py +487 -0
  96. sdk/resources/audit.py +144 -0
  97. sdk/resources/auth.py +138 -0
  98. sdk/resources/console.py +411 -0
  99. sdk/resources/corpora.py +269 -0
  100. sdk/resources/deployments.py +105 -0
  101. sdk/resources/documents.py +597 -0
  102. sdk/resources/feeds.py +246 -0
  103. sdk/resources/indexes.py +210 -0
  104. sdk/resources/jobs.py +164 -0
  105. sdk/resources/metadata.py +53 -0
  106. sdk/resources/models.py +99 -0
  107. sdk/resources/onboarding.py +542 -0
  108. sdk/resources/orgs.py +35 -0
  109. sdk/resources/pipeline_builder.py +257 -0
  110. sdk/resources/pipelines.py +520 -0
  111. sdk/resources/projects.py +87 -0
  112. sdk/resources/search.py +277 -0
  113. sdk/resources/training.py +358 -0
  114. sdk/resources/usage.py +92 -0
  115. sdk/types/__init__.py +366 -0
  116. sdk/types/a2a.py +88 -0
  117. sdk/types/agents.py +133 -0
  118. sdk/types/audit.py +26 -0
  119. sdk/types/auth.py +45 -0
  120. sdk/types/chunks.py +18 -0
  121. sdk/types/common.py +10 -0
  122. sdk/types/console.py +99 -0
  123. sdk/types/corpora.py +42 -0
  124. sdk/types/deployments.py +11 -0
  125. sdk/types/documents.py +104 -0
  126. sdk/types/embeddings.py +22 -0
  127. sdk/types/evaluation.py +15 -0
  128. sdk/types/feedback.py +7 -0
  129. sdk/types/feeds.py +61 -0
  130. sdk/types/indexes.py +30 -0
  131. sdk/types/jobs.py +50 -0
  132. sdk/types/models.py +22 -0
  133. sdk/types/onboarding.py +395 -0
  134. sdk/types/orgs.py +9 -0
  135. sdk/types/pipelines.py +177 -0
  136. sdk/types/projects.py +14 -0
  137. sdk/types/search.py +116 -0
  138. sdk/types/training.py +55 -0
  139. sdk/types/usage.py +37 -0
sdk/types/auth.py ADDED
@@ -0,0 +1,45 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import List, NotRequired, Optional, TypedDict
4
+
5
+
6
+ class ApiKeyCreateResponse(TypedDict):
7
+ id: str
8
+ org_id: str
9
+ name: str
10
+ api_key: str
11
+
12
+
13
+ class ApiKeyRotateResponse(TypedDict):
14
+ id: str
15
+ org_id: str
16
+ name: str
17
+ api_key: str
18
+
19
+
20
+ class ApiKeyRevokeResponse(TypedDict):
21
+ id: str
22
+ revoked: bool
23
+
24
+
25
+ class ApiKeyListItem(TypedDict, total=False):
26
+ id: str
27
+ org_id: str
28
+ org_name: str | None
29
+ name: str
30
+ scopes: dict
31
+ project_names: list[str]
32
+ revoked: bool
33
+ created_at: str | None
34
+ last_used_at: str | None
35
+
36
+
37
+ class ApiKeyListResponse(TypedDict):
38
+ keys: list[ApiKeyListItem]
39
+
40
+
41
+ class WhoAmIResponse(TypedDict):
42
+ org_id: str
43
+ api_key_id: str
44
+ name: str
45
+ features: NotRequired[dict[str, bool]]
sdk/types/chunks.py ADDED
@@ -0,0 +1,18 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import List, Optional, TypedDict
4
+
5
+
6
+ class ChunkListItem(TypedDict, total=False):
7
+ id: str
8
+ text: str
9
+ custom_metadata: dict
10
+ system_metadata: dict
11
+ offset_start: int | None
12
+ offset_end: int | None
13
+ page_start: int | None
14
+ page_end: int | None
15
+
16
+
17
+ class ChunkListResponse(TypedDict):
18
+ chunks: list[ChunkListItem]
sdk/types/common.py ADDED
@@ -0,0 +1,10 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Any, TypedDict
4
+
5
+
6
+ class ApiErrorDetail(TypedDict, total=False):
7
+ code: str
8
+ message: str
9
+ details: Any
10
+ request_id: str
sdk/types/console.py ADDED
@@ -0,0 +1,99 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Any, TypedDict
4
+
5
+ from .jobs import JobListItem
6
+
7
+
8
+ class ConsoleMeResponse(TypedDict, total=False):
9
+ provisioned: bool
10
+ org_id: str | None
11
+ org_name: str | None
12
+ project_id: str | None
13
+ project_name: str | None
14
+ role: str | None
15
+ is_org_admin: bool
16
+ auth_subject: str | None
17
+ user_id: str | None
18
+ email: str | None
19
+ name: str | None
20
+
21
+
22
+ class ConsoleBootstrapResponse(ConsoleMeResponse, total=False):
23
+ created: bool
24
+
25
+
26
+ class ConsoleSummaryResponse(TypedDict):
27
+ corpora_total: int
28
+ documents_total: int
29
+ documents_failed: int
30
+ recent_jobs: list[JobListItem]
31
+
32
+
33
+ class ConsoleProjectItem(TypedDict, total=False):
34
+ id: str
35
+ name: str
36
+ org_id: str
37
+ role: str
38
+
39
+
40
+ class ConsoleProjectListResponse(TypedDict):
41
+ projects: list[ConsoleProjectItem]
42
+
43
+
44
+ class ConsoleOrgResponse(TypedDict, total=False):
45
+ id: str
46
+ name: str
47
+ contact_email: str | None
48
+
49
+
50
+ class TeamMember(TypedDict, total=False):
51
+ membership_id: str
52
+ user_id: str
53
+ email: str | None
54
+ name: str | None
55
+ role: str
56
+ created_at: str | None
57
+ is_current_user: bool
58
+
59
+
60
+ class TeamListResponse(TypedDict):
61
+ members: list[TeamMember]
62
+
63
+
64
+ class InviteListItem(TypedDict, total=False):
65
+ id: str
66
+ email: str
67
+ role: str
68
+ created_at: str | None
69
+ expires_at: str | None
70
+ accepted_at: str | None
71
+
72
+
73
+ class InviteListResponse(TypedDict):
74
+ invites: list[InviteListItem]
75
+
76
+
77
+ class InviteCreateResponse(TypedDict, total=False):
78
+ id: str
79
+ email: str
80
+ role: str
81
+ token: str
82
+ expires_at: str | None
83
+
84
+
85
+ class InviteAcceptResponse(TypedDict, total=False):
86
+ org_id: str
87
+ org_name: str | None
88
+ project_id: str
89
+ project_name: str | None
90
+ role: str
91
+
92
+
93
+ class MemberUpdateResponse(TypedDict):
94
+ updated: bool
95
+ role: str
96
+
97
+
98
+ class MemberRemoveResponse(TypedDict):
99
+ removed: bool
sdk/types/corpora.py ADDED
@@ -0,0 +1,42 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Any, Dict, List, Optional, TypedDict
4
+
5
+
6
+ class CorpusResponse(TypedDict, total=False):
7
+ id: str
8
+ project_id: str
9
+ name: str
10
+ description: str | None
11
+ is_tutorial: bool
12
+ is_demo: bool
13
+ current_model_id: str | None
14
+ created_at: str | None
15
+ org_name: str | None
16
+ project_name: str | None
17
+ chunking_config: dict[str, Any] | None
18
+
19
+
20
+ class CorpusListResponse(TypedDict):
21
+ corpora: list[CorpusResponse]
22
+ total: int
23
+
24
+
25
+ class CorpusDeleteResponse(TypedDict, total=False):
26
+ message: str
27
+ counts: dict[str, int]
28
+
29
+
30
+ class CorpusStatusResponse(TypedDict, total=False):
31
+ status: str
32
+ search_status: str
33
+ retrieval_ready: bool
34
+ retrieval_status: str | None
35
+ ingesting: bool
36
+ indexing: bool
37
+ document_count: int
38
+ documents_processing: int
39
+ documents_failed: int
40
+ documents_failed_ratio: float
41
+ dense_status: str | None
42
+ sparse_status: str | None
@@ -0,0 +1,11 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Optional, TypedDict
4
+
5
+
6
+ class DeploymentResponse(TypedDict, total=False):
7
+ id: str
8
+ corpus_id: str
9
+ model_id: str
10
+ traffic_pct: int
11
+ reindex_job_id: str | None
sdk/types/documents.py ADDED
@@ -0,0 +1,104 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Literal, TypedDict
4
+
5
+
6
+ class ChunkingConfig(TypedDict, total=False):
7
+ """Chunking configuration for document ingestion.
8
+
9
+ All fields are optional. Unset fields inherit from corpus defaults or
10
+ application-owned defaults in the worker.
11
+ """
12
+
13
+ # Top-level chunking strategy
14
+ strategy: Literal["fixed", "paragraph", "semantic", "semchunk", "unstructured", "docling"]
15
+ # Unstructured sub-strategy (only used when strategy="unstructured")
16
+ chunking_strategy: Literal["basic", "by_title", "by_page", "by_similarity"]
17
+ # Max characters per chunk
18
+ chunk_size: int
19
+ # Overlap between chunks (characters)
20
+ overlap: int
21
+ # Combine small sections under N chars (by_title specific)
22
+ combine_text_under_n_chars: int
23
+ # Allow sections to span pages
24
+ multipage_sections: bool
25
+ # Soft limit before hard max (new_after_n_chars)
26
+ new_after_n_chars: int
27
+ # Concurrent Unstructured API requests
28
+ max_concurrent_requests: int
29
+ # API timeout in milliseconds
30
+ timeout: int
31
+ # Near-duplicate handling for chunk insertion
32
+ dedup_mode: Literal["off", "minhash"]
33
+ dedup_partition_keys: list[str]
34
+
35
+ # Docling-specific fields (only used when strategy="docling")
36
+ docling_chunker_type: Literal["hybrid", "hierarchical"]
37
+ docling_tokenizer_model: str
38
+ docling_max_tokens: int
39
+ docling_merge_peers: bool
40
+ docling_merge_list_items: bool
41
+ docling_processing_mode: Literal["auto", "sequential", "batch"]
42
+ docling_accelerator: Literal["auto", "cuda", "cpu"]
43
+
44
+
45
+ class DocumentCreateResponse(TypedDict):
46
+ id: str
47
+ job_id: str
48
+
49
+
50
+ class DocumentBatchItem(TypedDict, total=False):
51
+ source_uri: str | None
52
+ raw_text: str
53
+ metadata: dict | None
54
+
55
+
56
+ class DocumentUrlItem(TypedDict, total=False):
57
+ url: str
58
+ title: str | None
59
+ tags: list[str] | None
60
+ metadata: dict | None
61
+
62
+
63
+ class DocumentUrlIngestResponse(TypedDict):
64
+ job_id: str
65
+ submitted: int
66
+
67
+
68
+ class DocumentManifestIngestResponse(TypedDict):
69
+ job_id: str
70
+
71
+
72
+ class DocumentListItem(TypedDict, total=False):
73
+ id: str
74
+ corpus_id: str
75
+ source_uri: str
76
+ custom_metadata: dict
77
+ system_metadata: dict
78
+ created_at: str | None
79
+ status: str | None
80
+ size_bytes: int | None
81
+ content_type: str | None
82
+ preview: str | None
83
+
84
+
85
+ class DocumentListResponse(TypedDict):
86
+ documents: list[DocumentListItem]
87
+ total: int
88
+
89
+
90
+ class DocumentDetailResponse(DocumentListItem):
91
+ pass
92
+
93
+
94
+ class DocumentDeleteResponse(TypedDict, total=False):
95
+ message: str
96
+ reindex_job_id: str | None
97
+
98
+
99
+ class DocumentBatchUploadResponse(TypedDict):
100
+ """Response for multipart batch file upload."""
101
+
102
+ job_id: str
103
+ doc_ids: list[str]
104
+ count: int
@@ -0,0 +1,22 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import List, TypedDict
4
+
5
+
6
+ class EmbeddingItem(TypedDict):
7
+ embedding: list[float]
8
+ index: int
9
+
10
+
11
+ class EmbeddingsResponse(TypedDict):
12
+ data: list[EmbeddingItem]
13
+ model: str
14
+
15
+
16
+ class EmbeddingModelInfo(TypedDict):
17
+ model_name: str
18
+ is_default: bool
19
+
20
+
21
+ class EmbeddingModelListResponse(TypedDict):
22
+ models: list[EmbeddingModelInfo]
@@ -0,0 +1,15 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TypedDict
4
+
5
+
6
+ class EvalRunResponse(TypedDict):
7
+ eval_id: str
8
+ status: str
9
+ job_id: str
10
+
11
+
12
+ class EvalRunDetailResponse(TypedDict, total=False):
13
+ eval_id: str
14
+ status: str
15
+ metrics: dict
sdk/types/feedback.py ADDED
@@ -0,0 +1,7 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TypedDict
4
+
5
+
6
+ class FeedbackResponse(TypedDict):
7
+ message: str
sdk/types/feeds.py ADDED
@@ -0,0 +1,61 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Any, TypedDict
4
+
5
+
6
+ class FeedSubscriptionResponse(TypedDict, total=False):
7
+ """A subscription entry within a feed response."""
8
+
9
+ id: str | None
10
+ agent_id: str
11
+ agent_name: str | None
12
+ role: str
13
+
14
+
15
+ class FeedResponse(TypedDict, total=False):
16
+ """A single knowledge feed record."""
17
+
18
+ id: str
19
+ project_id: str
20
+ agent_id: str | None
21
+ name: str
22
+ query: str
23
+ persistent: bool
24
+ reactive: bool
25
+ target_corpus_id: str | None
26
+ schedule_interval: str | None
27
+ schedule_hour: int | None
28
+ start_from: str | None
29
+ top_k: int | None
30
+ metadata_filters: dict[str, Any] | None
31
+ activation_status: str
32
+ last_checked_seq: int
33
+ last_run_at: str | None
34
+ last_run_result_count: int | None
35
+ subscriptions: list[FeedSubscriptionResponse]
36
+ parent_feed_id: str | None
37
+ has_draft: bool
38
+ created_at: str | None
39
+ updated_at: str | None
40
+
41
+
42
+ class FeedListResponse(TypedDict):
43
+ """Paginated list of feeds."""
44
+
45
+ feeds: list[FeedResponse]
46
+ total: int
47
+ limit: int
48
+ offset: int
49
+
50
+
51
+ class FeedRunResponse(TypedDict, total=False):
52
+ """Response from triggering a feed run."""
53
+
54
+ new_content: bool
55
+ results: list[dict[str, Any]] | None
56
+ result_count: int
57
+ truncated: bool
58
+ ingestion_job_id: str | None
59
+ dry_run: bool
60
+ would_ingest_count: int | None
61
+ feed_run_id: str | None
sdk/types/indexes.py ADDED
@@ -0,0 +1,30 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Any, List, Optional, TypedDict
4
+
5
+
6
+ class IndexBuildResponse(TypedDict):
7
+ job_id: str
8
+ index_ids: list[str]
9
+
10
+
11
+ class IndexStatusResponse(TypedDict, total=False):
12
+ build_set_id: str | None
13
+ requested_mode: str | None
14
+ effective_mode: str | None
15
+ start_change_seq_exclusive: int | None
16
+ end_change_seq_inclusive: int | None
17
+ retrieval_status: str | None
18
+ retrieval_reason: str | None
19
+ document_count: int | None
20
+ dense_status: str | None
21
+ sparse_status: str | None
22
+ sparse_metadata_status: str | None
23
+ dense_reason: str | None
24
+ sparse_reason: str | None
25
+ sparse_metadata_reason: str | None
26
+
27
+
28
+ class IndexCompactResponse(TypedDict, total=False):
29
+ archived: Any
30
+ keep: int
sdk/types/jobs.py ADDED
@@ -0,0 +1,50 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import List, Optional, TypedDict
4
+
5
+
6
+ class JobActions(TypedDict, total=False):
7
+ can_cancel: bool
8
+ can_retry: bool
9
+
10
+
11
+ class JobResponse(TypedDict, total=False):
12
+ id: str
13
+ job_type: str
14
+ status: str
15
+ actions: JobActions
16
+ payload: dict
17
+ result: dict
18
+ error_message: str | None
19
+ created_at: str | None
20
+ updated_at: str | None
21
+ heartbeat_at: str | None
22
+ requeue_count: int | None
23
+ run_after: str | None
24
+
25
+
26
+ class JobListItem(TypedDict, total=False):
27
+ id: str
28
+ job_type: str
29
+ status: str
30
+ actions: JobActions
31
+ payload: dict
32
+ result: dict
33
+ error_message: str | None
34
+ created_at: str | None
35
+ updated_at: str | None
36
+ heartbeat_at: str | None
37
+ requeue_count: int | None
38
+ run_after: str | None
39
+
40
+
41
+ class JobListResponse(TypedDict):
42
+ jobs: list[JobListItem]
43
+
44
+
45
+ class JobStatusResponse(TypedDict):
46
+ status: str
47
+
48
+
49
+ class ReconcileJobsResponse(TypedDict):
50
+ reconciled: int
sdk/types/models.py ADDED
@@ -0,0 +1,22 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Any, Dict, List, TypedDict
4
+
5
+
6
+ class ModelResponse(TypedDict, total=False):
7
+ id: str
8
+ corpus_id: str
9
+ base_model: str
10
+ embedding_dim: int
11
+ max_seq_length: int
12
+ version: int
13
+ created_at: str
14
+
15
+
16
+ class ModelListResponse(TypedDict):
17
+ models: list[ModelResponse]
18
+
19
+
20
+ class ModelDeleteResponse(TypedDict, total=False):
21
+ message: str
22
+ counts: dict[str, Any]