forktex-intelligence 0.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,45 @@
1
+ forktex-intelligence -- Dual License
2
+
3
+ Copyright (C) 2026 FORKTEX S.R.L.
4
+
5
+ This software is licensed under a dual-license model:
6
+
7
+ ============================================================================
8
+
9
+ 1. OPEN-SOURCE LICENSE -- GNU Affero General Public License v3.0 (AGPL-3.0)
10
+
11
+ You may use, modify, and redistribute this software under the terms of the
12
+ GNU Affero General Public License v3.0 or later, as published by the Free
13
+ Software Foundation. The full license text is available at:
14
+ https://www.gnu.org/licenses/agpl-3.0.html
15
+
16
+ Key obligations under AGPL-3.0:
17
+ - Any modified version MUST be released under the same AGPL-3.0 license.
18
+ - If you run a modified version on a server and let users interact with it
19
+ over a network, you MUST make the complete source code available to those
20
+ users under AGPL-3.0.
21
+ - You MUST preserve all copyright notices and attribution to FORKTEX S.R.L.
22
+
23
+ ============================================================================
24
+
25
+ 2. COMMERCIAL LICENSE
26
+
27
+ If you wish to use this software without the obligations of AGPL-3.0 --
28
+ for example, to keep your modifications proprietary, to embed this software
29
+ in a closed-source product, or to operate it as part of a commercial service
30
+ without releasing your source code -- you MUST obtain a commercial license
31
+ from FORKTEX S.R.L.
32
+
33
+ Commercial licensing includes, but is not limited to:
34
+ - SaaS / hosted deployments generating revenue
35
+ - Embedding in proprietary products or platforms
36
+ - Redistribution in closed-source form
37
+ - Use by organizations exceeding the AGPL-3.0 compliance scope
38
+
39
+ For commercial licensing inquiries, contact:
40
+ info@forktex.com
41
+
42
+ ============================================================================
43
+
44
+ Unless you have obtained a separate commercial license from FORKTEX S.R.L.,
45
+ your use of this software is governed exclusively by the AGPL-3.0 license.
@@ -0,0 +1,22 @@
1
+ forktex-intelligence
2
+ Copyright (C) 2026 FORKTEX S.R.L.
3
+
4
+ forktex-intelligence is the standalone Python SDK for the ForkTex Intelligence
5
+ API. It provides the typed httpx-based client (sync + streaming over SSE),
6
+ generated Pydantic models for the Intelligence OpenAPI surface, and helpers
7
+ for chat, agent runs, embeddings, retrieval, and ecosystem indexing.
8
+
9
+ This program is free software: you can redistribute it and/or modify
10
+ it under the terms of the GNU Affero General Public License as published by
11
+ the Free Software Foundation, either version 3 of the License, or
12
+ (at your option) any later version.
13
+
14
+ This program is distributed in the hope that it will be useful,
15
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ GNU Affero General Public License for more details.
18
+
19
+ You should have received a copy of the GNU Affero General Public License
20
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
21
+
22
+ For commercial licensing inquiries, contact: info@forktex.com
@@ -0,0 +1,178 @@
1
+ Metadata-Version: 2.4
2
+ Name: forktex-intelligence
3
+ Version: 0.2.3
4
+ Summary: Standalone Python SDK for the ForkTex Intelligence API — chat, agent runs, embeddings, retrieval, ecosystem indexing
5
+ License-Expression: AGPL-3.0-only
6
+ License-File: LICENSE
7
+ License-File: NOTICE
8
+ Author: FORKTEX
9
+ Author-email: info@forktex.com
10
+ Requires-Python: >=3.12
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3 :: Only
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Classifier: Typing :: Typed
22
+ Requires-Dist: httpx (>=0.27.0,<1.0.0)
23
+ Requires-Dist: httpx-sse (>=0.4.0,<1.0.0)
24
+ Requires-Dist: pydantic (>=2.11.10,<3.0.0)
25
+ Project-URL: Bug Tracker, https://github.com/forktex/intelligence/issues
26
+ Project-URL: Homepage, https://intelligence.forktex.com
27
+ Project-URL: Repository, https://github.com/forktex/intelligence
28
+ Description-Content-Type: text/markdown
29
+
30
+ # forktex-intelligence
31
+
32
+ [![PyPI](https://img.shields.io/pypi/v/forktex-intelligence.svg)](https://pypi.org/project/forktex-intelligence/)
33
+ [![Python](https://img.shields.io/pypi/pyversions/forktex-intelligence.svg)](https://pypi.org/project/forktex-intelligence/)
34
+ [![License](https://img.shields.io/pypi/l/forktex-intelligence.svg)](https://github.com/forktex/intelligence/blob/master/sdk-py/LICENSE)
35
+
36
+ Standalone Python SDK for the [ForkTex Intelligence](https://intelligence.forktex.com) API.
37
+
38
+ `forktex-intelligence` is the high-level Python client for the ForkTex Intelligence platform: multi-provider LLM chat (streaming + structured), embeddings, vector search, content extraction (PDF / DOCX / HTML), and image / audio generation. It backs the `forktex intelligence ask / run / scrape` CLI commands and is also usable directly from any Python application.
39
+
40
+ ## Install
41
+
42
+ ```bash
43
+ pip install forktex-intelligence
44
+ ```
45
+
46
+ **Requires Python 3.12+.** Tested on 3.12, 3.13, 3.14.
47
+
48
+ ## Quick Start
49
+
50
+ ### Single-shot prompt
51
+
52
+ ```python
53
+ from forktex_intelligence import Intelligence
54
+
55
+ async with Intelligence(endpoint="https://intelligence.forktex.com/api", api_key="sk-...") as ai:
56
+ response = await ai.chat("Summarize the ForkTex stack in one sentence.")
57
+ print(response.text)
58
+ ```
59
+
60
+ ### Structured response (Pydantic schema)
61
+
62
+ ```python
63
+ from pydantic import BaseModel
64
+ from forktex_intelligence import Intelligence
65
+
66
+ class Summary(BaseModel):
67
+ title: str
68
+ bullets: list[str]
69
+
70
+ async with Intelligence(endpoint="...", api_key="...") as ai:
71
+ result = await ai.extract_structured(
72
+ prompt="Summarize the ForkTex stack.",
73
+ schema=Summary,
74
+ )
75
+ print(result.parsed.title, result.parsed.bullets)
76
+ ```
77
+
78
+ ### Streaming
79
+
80
+ ```python
81
+ from forktex_intelligence import Intelligence
82
+
83
+ async with Intelligence(endpoint="...", api_key="...") as ai:
84
+ async for chunk in ai.stream("Tell me a story."):
85
+ print(chunk, end="", flush=True)
86
+ ```
87
+
88
+ ## Configuration
89
+
90
+ Pass endpoint and API key explicitly:
91
+
92
+ ```python
93
+ Intelligence(endpoint="https://intelligence.forktex.com/api", api_key="sk-...")
94
+ ```
95
+
96
+ Or via an `IntelligenceSettings` object:
97
+
98
+ ```python
99
+ from forktex_intelligence import IntelligenceSettings, Intelligence
100
+
101
+ settings = IntelligenceSettings(endpoint="...", api_key="...")
102
+ async with Intelligence(settings=settings) as ai:
103
+ ...
104
+ ```
105
+
106
+ When used via the `forktex` CLI, settings are loaded from environment variables and `.forktex/` config files automatically.
107
+
108
+ | Variable | Description | Default |
109
+ |----------|-------------|---------|
110
+ | `FORKTEX_INTELLIGENCE_ENDPOINT` | Intelligence API endpoint | `https://intelligence.forktex.com/api` |
111
+ | `FORKTEX_INTELLIGENCE_API_KEY` | Intelligence API key | *(required)* |
112
+
113
+ ### Local dev (point at your `make local` stack)
114
+
115
+ ```bash
116
+ export FORKTEX_INTELLIGENCE_ENDPOINT=http://localhost:8001/api
117
+ export FORKTEX_INTELLIGENCE_API_KEY=dev-key
118
+ ```
119
+
120
+ Or programmatically:
121
+
122
+ ```python
123
+ from forktex_intelligence import Intelligence
124
+ intel = Intelligence(endpoint="http://localhost:8001/api", api_key="dev-key")
125
+ ```
126
+
127
+ ## What's in the package
128
+
129
+ | Module | Purpose |
130
+ |--------|---------|
131
+ | `forktex_intelligence.api` | High-level `Intelligence` client (chat, structured, stream) |
132
+ | `forktex_intelligence.client` | Low-level `ForktexIntelligenceClient` (raw HTTP, advanced use) |
133
+ | `forktex_intelligence.client.generated` | Wire-level Pydantic models (`ChatMessage`, `ChatResponse`, …) generated from the OpenAPI spec |
134
+ | `forktex_intelligence.streams` | SSE event types and parser |
135
+ | `forktex_intelligence.config` | `IntelligenceSettings` — endpoint, API key |
136
+
137
+ All response models come from the OpenAPI codegen pipeline — one source of truth shared between the server and every consumer.
138
+
139
+ ## Repository
140
+
141
+ This SDK lives inside the [`forktex/intelligence`](https://github.com/forktex/intelligence) monorepo alongside the API server (`api/`). The SDK package is independently versioned and published to PyPI.
142
+
143
+ ## Development
144
+
145
+ The [`Makefile`](Makefile) is generated by `forktex fsd makefile sync` from [`forktex.json`](forktex.json) — do not hand-edit.
146
+
147
+ ```bash
148
+ make help # list every available target
149
+ make deps # editable install with the dev group
150
+ make format # ruff format
151
+ make lint # ruff check
152
+ make test # pytest tests/
153
+ make codegen-check # verify the generated client imports cleanly
154
+ make build # python3 -m build → dist/
155
+ make ci # format-check + lint + license-check + audit + test + build
156
+ make clean # remove caches and dist/
157
+ ```
158
+
159
+ `make ci` is the single command that gates a publish: format-check, lint, dual-license header check, dependency CVE audit, full test suite, and `python -m build` + `twine check`.
160
+
161
+ ### License headers
162
+
163
+ Every source file carries the AGPL-3.0 + Commercial dual-license SPDX header, applied idempotently via:
164
+
165
+ ```bash
166
+ make license-check # CI gate — fails if any source file is missing the header
167
+ make license-fix # add or refresh headers across src/, tests/, scripts/
168
+ make license-strip # remove headers (used before license-model changes)
169
+ ```
170
+
171
+ ## License
172
+
173
+ Dual-licensed — **AGPL-3.0-or-later** for open-source use, **commercial** for everything else (proprietary products, SaaS without source release, redistribution in closed-source form). See [`LICENSE`](LICENSE) and [`NOTICE`](NOTICE) for the full terms.
174
+
175
+ Commercial licensing inquiries: info@forktex.com.
176
+
177
+ The 1.0.0 release on PyPI remains under MIT; from **0.2.3** onwards the package ships AGPL-3.0+Commercial.
178
+
@@ -0,0 +1,148 @@
1
+ # forktex-intelligence
2
+
3
+ [![PyPI](https://img.shields.io/pypi/v/forktex-intelligence.svg)](https://pypi.org/project/forktex-intelligence/)
4
+ [![Python](https://img.shields.io/pypi/pyversions/forktex-intelligence.svg)](https://pypi.org/project/forktex-intelligence/)
5
+ [![License](https://img.shields.io/pypi/l/forktex-intelligence.svg)](https://github.com/forktex/intelligence/blob/master/sdk-py/LICENSE)
6
+
7
+ Standalone Python SDK for the [ForkTex Intelligence](https://intelligence.forktex.com) API.
8
+
9
+ `forktex-intelligence` is the high-level Python client for the ForkTex Intelligence platform: multi-provider LLM chat (streaming + structured), embeddings, vector search, content extraction (PDF / DOCX / HTML), and image / audio generation. It backs the `forktex intelligence ask / run / scrape` CLI commands and is also usable directly from any Python application.
10
+
11
+ ## Install
12
+
13
+ ```bash
14
+ pip install forktex-intelligence
15
+ ```
16
+
17
+ **Requires Python 3.12+.** Tested on 3.12, 3.13, 3.14.
18
+
19
+ ## Quick Start
20
+
21
+ ### Single-shot prompt
22
+
23
+ ```python
24
+ from forktex_intelligence import Intelligence
25
+
26
+ async with Intelligence(endpoint="https://intelligence.forktex.com/api", api_key="sk-...") as ai:
27
+ response = await ai.chat("Summarize the ForkTex stack in one sentence.")
28
+ print(response.text)
29
+ ```
30
+
31
+ ### Structured response (Pydantic schema)
32
+
33
+ ```python
34
+ from pydantic import BaseModel
35
+ from forktex_intelligence import Intelligence
36
+
37
+ class Summary(BaseModel):
38
+ title: str
39
+ bullets: list[str]
40
+
41
+ async with Intelligence(endpoint="...", api_key="...") as ai:
42
+ result = await ai.extract_structured(
43
+ prompt="Summarize the ForkTex stack.",
44
+ schema=Summary,
45
+ )
46
+ print(result.parsed.title, result.parsed.bullets)
47
+ ```
48
+
49
+ ### Streaming
50
+
51
+ ```python
52
+ from forktex_intelligence import Intelligence
53
+
54
+ async with Intelligence(endpoint="...", api_key="...") as ai:
55
+ async for chunk in ai.stream("Tell me a story."):
56
+ print(chunk, end="", flush=True)
57
+ ```
58
+
59
+ ## Configuration
60
+
61
+ Pass endpoint and API key explicitly:
62
+
63
+ ```python
64
+ Intelligence(endpoint="https://intelligence.forktex.com/api", api_key="sk-...")
65
+ ```
66
+
67
+ Or via an `IntelligenceSettings` object:
68
+
69
+ ```python
70
+ from forktex_intelligence import IntelligenceSettings, Intelligence
71
+
72
+ settings = IntelligenceSettings(endpoint="...", api_key="...")
73
+ async with Intelligence(settings=settings) as ai:
74
+ ...
75
+ ```
76
+
77
+ When used via the `forktex` CLI, settings are loaded from environment variables and `.forktex/` config files automatically.
78
+
79
+ | Variable | Description | Default |
80
+ |----------|-------------|---------|
81
+ | `FORKTEX_INTELLIGENCE_ENDPOINT` | Intelligence API endpoint | `https://intelligence.forktex.com/api` |
82
+ | `FORKTEX_INTELLIGENCE_API_KEY` | Intelligence API key | *(required)* |
83
+
84
+ ### Local dev (point at your `make local` stack)
85
+
86
+ ```bash
87
+ export FORKTEX_INTELLIGENCE_ENDPOINT=http://localhost:8001/api
88
+ export FORKTEX_INTELLIGENCE_API_KEY=dev-key
89
+ ```
90
+
91
+ Or programmatically:
92
+
93
+ ```python
94
+ from forktex_intelligence import Intelligence
95
+ intel = Intelligence(endpoint="http://localhost:8001/api", api_key="dev-key")
96
+ ```
97
+
98
+ ## What's in the package
99
+
100
+ | Module | Purpose |
101
+ |--------|---------|
102
+ | `forktex_intelligence.api` | High-level `Intelligence` client (chat, structured, stream) |
103
+ | `forktex_intelligence.client` | Low-level `ForktexIntelligenceClient` (raw HTTP, advanced use) |
104
+ | `forktex_intelligence.client.generated` | Wire-level Pydantic models (`ChatMessage`, `ChatResponse`, …) generated from the OpenAPI spec |
105
+ | `forktex_intelligence.streams` | SSE event types and parser |
106
+ | `forktex_intelligence.config` | `IntelligenceSettings` — endpoint, API key |
107
+
108
+ All response models come from the OpenAPI codegen pipeline — one source of truth shared between the server and every consumer.
109
+
110
+ ## Repository
111
+
112
+ This SDK lives inside the [`forktex/intelligence`](https://github.com/forktex/intelligence) monorepo alongside the API server (`api/`). The SDK package is independently versioned and published to PyPI.
113
+
114
+ ## Development
115
+
116
+ The [`Makefile`](Makefile) is generated by `forktex fsd makefile sync` from [`forktex.json`](forktex.json) — do not hand-edit.
117
+
118
+ ```bash
119
+ make help # list every available target
120
+ make deps # editable install with the dev group
121
+ make format # ruff format
122
+ make lint # ruff check
123
+ make test # pytest tests/
124
+ make codegen-check # verify the generated client imports cleanly
125
+ make build # python3 -m build → dist/
126
+ make ci # format-check + lint + license-check + audit + test + build
127
+ make clean # remove caches and dist/
128
+ ```
129
+
130
+ `make ci` is the single command that gates a publish: format-check, lint, dual-license header check, dependency CVE audit, full test suite, and `python -m build` + `twine check`.
131
+
132
+ ### License headers
133
+
134
+ Every source file carries the AGPL-3.0 + Commercial dual-license SPDX header, applied idempotently via:
135
+
136
+ ```bash
137
+ make license-check # CI gate — fails if any source file is missing the header
138
+ make license-fix # add or refresh headers across src/, tests/, scripts/
139
+ make license-strip # remove headers (used before license-model changes)
140
+ ```
141
+
142
+ ## License
143
+
144
+ Dual-licensed — **AGPL-3.0-or-later** for open-source use, **commercial** for everything else (proprietary products, SaaS without source release, redistribution in closed-source form). See [`LICENSE`](LICENSE) and [`NOTICE`](NOTICE) for the full terms.
145
+
146
+ Commercial licensing inquiries: info@forktex.com.
147
+
148
+ The 1.0.0 release on PyPI remains under MIT; from **0.2.3** onwards the package ships AGPL-3.0+Commercial.
@@ -0,0 +1,84 @@
1
+ # Copyright (C) 2026 FORKTEX S.R.L.
2
+ #
3
+ # SPDX-License-Identifier: AGPL-3.0-or-later OR LicenseRef-ForkTex-Commercial
4
+ #
5
+ # This file is part of forktex-intelligence.
6
+ #
7
+ # For commercial licensing -- including use in proprietary products, SaaS
8
+ # deployments, or any context where AGPL obligations cannot be met -- you
9
+ # MUST obtain a commercial license from FORKTEX S.R.L. (info@forktex.com).
10
+ #
11
+ # This program is free software: you can redistribute it and/or modify
12
+ # it under the terms of the GNU Affero General Public License as published by
13
+ # the Free Software Foundation, either version 3 of the License, or
14
+ # (at your option) any later version.
15
+ #
16
+ # This program is distributed in the hope that it will be useful,
17
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ # GNU Affero General Public License for more details.
20
+ #
21
+ # You should have received a copy of the GNU Affero General Public License
22
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
23
+
24
+ [project]
25
+ name = "forktex-intelligence"
26
+ version = "0.2.3"
27
+ description = "Standalone Python SDK for the ForkTex Intelligence API — chat, agent runs, embeddings, retrieval, ecosystem indexing"
28
+ authors = [
29
+ {name = "FORKTEX", email = "info@forktex.com"}
30
+ ]
31
+ readme = "README.md"
32
+ license = "AGPL-3.0-only"
33
+ license-files = ["LICENSE", "NOTICE"]
34
+ requires-python = ">=3.12"
35
+ classifiers = [
36
+ "Development Status :: 5 - Production/Stable",
37
+ "Intended Audience :: Developers",
38
+ "Operating System :: OS Independent",
39
+ "Programming Language :: Python :: 3",
40
+ "Programming Language :: Python :: 3 :: Only",
41
+ "Programming Language :: Python :: 3.12",
42
+ "Programming Language :: Python :: 3.13",
43
+ "Programming Language :: Python :: 3.14",
44
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
45
+ "Topic :: Software Development :: Libraries :: Python Modules",
46
+ "Typing :: Typed",
47
+ ]
48
+ dependencies = [
49
+ "pydantic (>=2.11.10,<3.0.0)",
50
+ "httpx (>=0.27.0,<1.0.0)",
51
+ "httpx-sse (>=0.4.0,<1.0.0)",
52
+ ]
53
+
54
+ [project.urls]
55
+ "Homepage" = "https://intelligence.forktex.com"
56
+ "Repository" = "https://github.com/forktex/intelligence"
57
+ "Bug Tracker" = "https://github.com/forktex/intelligence/issues"
58
+
59
+ [build-system]
60
+ requires = ["poetry-core>=2.0.0,<3.0.0"]
61
+ build-backend = "poetry.core.masonry.api"
62
+
63
+ [dependency-groups]
64
+ dev = [
65
+ "pytest (>=8.4.2,<9.0.0)",
66
+ "pytest-asyncio (>=1.2.0,<2.0.0)",
67
+ "ruff (>=0.8.0)",
68
+ "respx (>=0.21.0)",
69
+ "pyright>=1.1.350",
70
+ "pip-audit>=2.7.0",
71
+ "build>=1.2.0",
72
+ "twine>=5.0.0",
73
+ ]
74
+
75
+ [tool.ruff]
76
+ target-version = "py312"
77
+ line-length = 120
78
+ extend-exclude = [
79
+ "src/forktex_intelligence/client/generated/**",
80
+ ]
81
+
82
+ [tool.pytest.ini_options]
83
+ asyncio_mode = "auto"
84
+ testpaths = ["tests"]
@@ -0,0 +1,97 @@
1
+ # Copyright (C) 2026 FORKTEX S.R.L.
2
+ #
3
+ # SPDX-License-Identifier: AGPL-3.0-or-later OR LicenseRef-ForkTex-Commercial
4
+ #
5
+ # This file is part of forktex-intelligence.
6
+ #
7
+ # For commercial licensing -- including use in proprietary products, SaaS
8
+ # deployments, or any context where AGPL obligations cannot be met -- you
9
+ # MUST obtain a commercial license from FORKTEX S.R.L. (info@forktex.com).
10
+ #
11
+ # This program is free software: you can redistribute it and/or modify
12
+ # it under the terms of the GNU Affero General Public License as published by
13
+ # the Free Software Foundation, either version 3 of the License, or
14
+ # (at your option) any later version.
15
+ #
16
+ # This program is distributed in the hope that it will be useful,
17
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ # GNU Affero General Public License for more details.
20
+ #
21
+ # You should have received a copy of the GNU Affero General Public License
22
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
23
+
24
+ """forktex_intelligence — Standalone Python SDK for the ForkTex Intelligence API.
25
+
26
+ Three pillars:
27
+ 1. Smart API — LLM chat/structured output, proxied to best providers
28
+ 2. Content Extraction — Upload any file, get structured text + chunks
29
+ 3. Vector Space — Managed vector storage with semantic search
30
+
31
+ Usage::
32
+
33
+ from forktex_intelligence import Intelligence
34
+
35
+ async with Intelligence(org_id="my-org-uuid") as ai:
36
+ # Chat
37
+ response = await ai.chat("Explain Python decorators")
38
+
39
+ # Extract text from a file
40
+ result = await ai.extract_file(pdf_bytes, "paper.pdf")
41
+
42
+ # Search across collections
43
+ results = await ai.search("collection-id", "quantum computing")
44
+ """
45
+
46
+ __version__ = "0.2.3"
47
+
48
+ from forktex_intelligence.api import (
49
+ AvailableModel,
50
+ Intelligence,
51
+ Response,
52
+ StructuredResponse,
53
+ StreamChunks,
54
+ )
55
+ from forktex_intelligence.config import IntelligenceSettings
56
+ from forktex_intelligence.client.client import (
57
+ ForktexIntelligenceClient,
58
+ IntelligenceAPIError,
59
+ )
60
+ from forktex_intelligence.client.generated import (
61
+ SPEC_HASH,
62
+ SPEC_VERSION,
63
+ ChatMessage,
64
+ ChatResponse,
65
+ HealthResponse,
66
+ StructuredChatResponse,
67
+ ToolCallInfo,
68
+ UsageInfo,
69
+ )
70
+ from forktex_intelligence.streams import SSEEvent, SSEEventType
71
+
72
+ __all__ = [
73
+ # High-level API
74
+ "AvailableModel",
75
+ "Intelligence",
76
+ "Response",
77
+ "StructuredResponse",
78
+ "StreamChunks",
79
+ # Configuration
80
+ "IntelligenceSettings",
81
+ # Low-level client (advanced)
82
+ "ForktexIntelligenceClient",
83
+ "IntelligenceAPIError",
84
+ # Codegen contract (wire-compatibility markers)
85
+ "SPEC_VERSION",
86
+ "SPEC_HASH",
87
+ # Wire-level models (advanced — prefer high-level API)
88
+ "ChatMessage",
89
+ "ChatResponse",
90
+ "HealthResponse",
91
+ "StructuredChatResponse",
92
+ "ToolCallInfo",
93
+ "UsageInfo",
94
+ # Streaming
95
+ "SSEEvent",
96
+ "SSEEventType",
97
+ ]