pi-ai-python 1.3.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.
- pi_agent/__init__.py +127 -0
- pi_agent/agent.py +617 -0
- pi_agent/agent_loop.py +820 -0
- pi_agent/proxy.py +269 -0
- pi_agent/py.typed +0 -0
- pi_agent/stream_fn.py +27 -0
- pi_agent/tools.py +327 -0
- pi_agent/types.py +394 -0
- pi_ai/__init__.py +263 -0
- pi_ai/abort.py +315 -0
- pi_ai/api/__init__.py +1 -0
- pi_ai/api/anthropic_messages.py +1782 -0
- pi_ai/api/azure_openai_config.py +138 -0
- pi_ai/api/azure_openai_responses.py +245 -0
- pi_ai/api/bedrock_converse_stream.py +1598 -0
- pi_ai/api/classifier_shared.py +211 -0
- pi_ai/api/cloudflare.py +36 -0
- pi_ai/api/cloudflare_workers_ai_system_one.py +80 -0
- pi_ai/api/constrained_sampling.py +279 -0
- pi_ai/api/github_copilot_headers.py +30 -0
- pi_ai/api/google_generative_ai.py +138 -0
- pi_ai/api/google_shared.py +927 -0
- pi_ai/api/google_vertex.py +234 -0
- pi_ai/api/lazy.py +156 -0
- pi_ai/api/llama_cpp_classify.py +449 -0
- pi_ai/api/mistral_conversations.py +756 -0
- pi_ai/api/openai_codex_responses.py +1545 -0
- pi_ai/api/openai_completions.py +1594 -0
- pi_ai/api/openai_decisions.py +210 -0
- pi_ai/api/openai_prompt_cache.py +19 -0
- pi_ai/api/openai_responses.py +418 -0
- pi_ai/api/openai_responses_shared.py +840 -0
- pi_ai/api/openai_sdk.py +204 -0
- pi_ai/api/openrouter_images.py +153 -0
- pi_ai/api/pi_messages.py +449 -0
- pi_ai/api/registry.py +103 -0
- pi_ai/api/simple_options.py +119 -0
- pi_ai/api/system_one_shared.py +148 -0
- pi_ai/api/transform_messages.py +211 -0
- pi_ai/api/typesafe_system_one.py +43 -0
- pi_ai/auth/__init__.py +1 -0
- pi_ai/auth/context.py +47 -0
- pi_ai/auth/credential_store.py +208 -0
- pi_ai/auth/helpers.py +123 -0
- pi_ai/auth/oauth/__init__.py +5 -0
- pi_ai/auth/oauth/_common.py +454 -0
- pi_ai/auth/oauth/anthropic.py +283 -0
- pi_ai/auth/oauth/callback_server.py +339 -0
- pi_ai/auth/oauth/device_code.py +127 -0
- pi_ai/auth/oauth/github_copilot.py +508 -0
- pi_ai/auth/oauth/kimi_coding.py +283 -0
- pi_ai/auth/oauth/load.py +64 -0
- pi_ai/auth/oauth/meta.py +238 -0
- pi_ai/auth/oauth/openai_chatgpt.py +321 -0
- pi_ai/auth/oauth/openai_codex.py +391 -0
- pi_ai/auth/oauth/openrouter.py +173 -0
- pi_ai/auth/oauth/pkce.py +23 -0
- pi_ai/auth/oauth/radius.py +311 -0
- pi_ai/auth/oauth/xai.py +220 -0
- pi_ai/auth/resolve.py +190 -0
- pi_ai/auth/types.py +292 -0
- pi_ai/cli.py +265 -0
- pi_ai/compat.py +651 -0
- pi_ai/env_api_keys.py +137 -0
- pi_ai/event_stream.py +329 -0
- pi_ai/models.py +1191 -0
- pi_ai/models_store.py +121 -0
- pi_ai/oauth.py +90 -0
- pi_ai/providers/__init__.py +1 -0
- pi_ai/providers/all.py +154 -0
- pi_ai/providers/amazon_bedrock.py +116 -0
- pi_ai/providers/ant_ling.py +23 -0
- pi_ai/providers/anthropic.py +105 -0
- pi_ai/providers/azure.py +103 -0
- pi_ai/providers/baseten.py +23 -0
- pi_ai/providers/catalog.py +167 -0
- pi_ai/providers/cerebras.py +23 -0
- pi_ai/providers/cloudflare_ai_gateway.py +30 -0
- pi_ai/providers/cloudflare_auth.py +112 -0
- pi_ai/providers/cloudflare_stream.py +84 -0
- pi_ai/providers/cloudflare_workers_ai.py +26 -0
- pi_ai/providers/data/amazon-bedrock.json +1 -0
- pi_ai/providers/data/ant-ling.json +1 -0
- pi_ai/providers/data/anthropic.json +1 -0
- pi_ai/providers/data/azure.json +1 -0
- pi_ai/providers/data/baseten.json +1 -0
- pi_ai/providers/data/cerebras.json +1 -0
- pi_ai/providers/data/cloudflare-ai-gateway.json +1 -0
- pi_ai/providers/data/cloudflare-workers-ai.json +1 -0
- pi_ai/providers/data/deepseek.json +1 -0
- pi_ai/providers/data/fireworks.json +1 -0
- pi_ai/providers/data/github-copilot.json +1 -0
- pi_ai/providers/data/google-vertex.json +1 -0
- pi_ai/providers/data/google.json +1 -0
- pi_ai/providers/data/groq.json +1 -0
- pi_ai/providers/data/huggingface.json +1 -0
- pi_ai/providers/data/kimi-coding.json +1 -0
- pi_ai/providers/data/manifest.json +1 -0
- pi_ai/providers/data/meta.json +1 -0
- pi_ai/providers/data/minimax-cn.json +1 -0
- pi_ai/providers/data/minimax.json +1 -0
- pi_ai/providers/data/mistral.json +1 -0
- pi_ai/providers/data/moonshotai-cn.json +1 -0
- pi_ai/providers/data/moonshotai.json +1 -0
- pi_ai/providers/data/nvidia.json +1 -0
- pi_ai/providers/data/openai-codex.json +1 -0
- pi_ai/providers/data/openai.json +1 -0
- pi_ai/providers/data/opencode-go.json +1 -0
- pi_ai/providers/data/opencode.json +1 -0
- pi_ai/providers/data/openrouter.json +1 -0
- pi_ai/providers/data/qwen-token-plan-cn.json +1 -0
- pi_ai/providers/data/qwen-token-plan-individual.json +1 -0
- pi_ai/providers/data/qwen-token-plan.json +1 -0
- pi_ai/providers/data/radius.json +1 -0
- pi_ai/providers/data/together.json +1 -0
- pi_ai/providers/data/typesafe.json +1 -0
- pi_ai/providers/data/vercel-ai-gateway.json +1 -0
- pi_ai/providers/data/xai.json +1 -0
- pi_ai/providers/data/xiaomi-token-plan-ams.json +1 -0
- pi_ai/providers/data/xiaomi-token-plan-cn.json +1 -0
- pi_ai/providers/data/xiaomi-token-plan-sgp.json +1 -0
- pi_ai/providers/data/xiaomi.json +1 -0
- pi_ai/providers/data/zai-coding-cn.json +1 -0
- pi_ai/providers/data/zai.json +1 -0
- pi_ai/providers/deepseek.py +23 -0
- pi_ai/providers/faux.py +680 -0
- pi_ai/providers/fireworks.py +26 -0
- pi_ai/providers/github_copilot.py +46 -0
- pi_ai/providers/google.py +23 -0
- pi_ai/providers/google_vertex.py +131 -0
- pi_ai/providers/groq.py +23 -0
- pi_ai/providers/huggingface.py +23 -0
- pi_ai/providers/kimi_coding.py +32 -0
- pi_ai/providers/meta.py +32 -0
- pi_ai/providers/minimax.py +23 -0
- pi_ai/providers/minimax_cn.py +23 -0
- pi_ai/providers/mistral.py +23 -0
- pi_ai/providers/moonshotai.py +23 -0
- pi_ai/providers/moonshotai_cn.py +23 -0
- pi_ai/providers/nvidia.py +23 -0
- pi_ai/providers/openai.py +44 -0
- pi_ai/providers/openai_codex.py +26 -0
- pi_ai/providers/opencode.py +36 -0
- pi_ai/providers/opencode_go.py +33 -0
- pi_ai/providers/opencode_headers.py +60 -0
- pi_ai/providers/openrouter.py +145 -0
- pi_ai/providers/openrouter_api.py +122 -0
- pi_ai/providers/qwen_token_plan.py +23 -0
- pi_ai/providers/qwen_token_plan_cn.py +23 -0
- pi_ai/providers/qwen_token_plan_individual.py +23 -0
- pi_ai/providers/radius.py +146 -0
- pi_ai/providers/radius_config.py +136 -0
- pi_ai/providers/together.py +23 -0
- pi_ai/providers/typesafe.py +22 -0
- pi_ai/providers/vercel_ai_gateway.py +25 -0
- pi_ai/providers/xai.py +32 -0
- pi_ai/providers/xiaomi.py +23 -0
- pi_ai/providers/xiaomi_token_plan_ams.py +23 -0
- pi_ai/providers/xiaomi_token_plan_cn.py +23 -0
- pi_ai/providers/xiaomi_token_plan_sgp.py +23 -0
- pi_ai/providers/zai.py +23 -0
- pi_ai/providers/zai_coding_cn.py +23 -0
- pi_ai/py.typed +0 -0
- pi_ai/serialization.py +477 -0
- pi_ai/session_resources.py +33 -0
- pi_ai/types.py +1003 -0
- pi_ai/utils/__init__.py +1 -0
- pi_ai/utils/callbacks.py +15 -0
- pi_ai/utils/diagnostics.py +70 -0
- pi_ai/utils/error_body.py +89 -0
- pi_ai/utils/estimate.py +125 -0
- pi_ai/utils/fastjson.py +63 -0
- pi_ai/utils/http.py +409 -0
- pi_ai/utils/json_parse.py +424 -0
- pi_ai/utils/misc.py +193 -0
- pi_ai/utils/model_operations.py +73 -0
- pi_ai/utils/models_error.py +35 -0
- pi_ai/utils/oauth_page.py +121 -0
- pi_ai/utils/overflow.py +87 -0
- pi_ai/utils/retry.py +193 -0
- pi_ai/utils/schema.py +283 -0
- pi_ai/utils/text.py +65 -0
- pi_ai/utils/transcript.py +271 -0
- pi_ai/utils/validation.py +813 -0
- pi_ai_python-1.3.0.dist-info/METADATA +167 -0
- pi_ai_python-1.3.0.dist-info/RECORD +189 -0
- pi_ai_python-1.3.0.dist-info/WHEEL +4 -0
- pi_ai_python-1.3.0.dist-info/entry_points.txt +2 -0
- pi_ai_python-1.3.0.dist-info/licenses/LICENSE +22 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: pi-ai-python
|
|
3
|
+
Version: 1.3.0
|
|
4
|
+
Summary: Python port of pi's AI libraries: a unified LLM API (pi_ai) and a stateful agent runtime (pi_agent)
|
|
5
|
+
Project-URL: Homepage, https://github.com/nivalume/pi-py
|
|
6
|
+
Project-URL: Source, https://github.com/nivalume/pi-py
|
|
7
|
+
Project-URL: Upstream, https://github.com/earendil-works/pi
|
|
8
|
+
Author: nivalume
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: agent,ai,anthropic,bedrock,gemini,llm,openai,streaming,tools
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Framework :: AsyncIO
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Typing :: Typed
|
|
20
|
+
Requires-Python: >=3.11
|
|
21
|
+
Requires-Dist: anthropic>=1.15
|
|
22
|
+
Requires-Dist: google-genai>=2.31
|
|
23
|
+
Requires-Dist: httpx>=0.27
|
|
24
|
+
Requires-Dist: openai>=3.35
|
|
25
|
+
Provides-Extra: all
|
|
26
|
+
Requires-Dist: boto3>=1.43; extra == 'all'
|
|
27
|
+
Requires-Dist: orjson>=3.10; extra == 'all'
|
|
28
|
+
Requires-Dist: pydantic>=2.6; extra == 'all'
|
|
29
|
+
Requires-Dist: websockets>=13; extra == 'all'
|
|
30
|
+
Provides-Extra: bedrock
|
|
31
|
+
Requires-Dist: boto3>=1.43; extra == 'bedrock'
|
|
32
|
+
Provides-Extra: fast
|
|
33
|
+
Requires-Dist: orjson>=3.10; extra == 'fast'
|
|
34
|
+
Provides-Extra: pydantic
|
|
35
|
+
Requires-Dist: pydantic>=2.6; extra == 'pydantic'
|
|
36
|
+
Provides-Extra: websocket
|
|
37
|
+
Requires-Dist: websockets>=13; extra == 'websocket'
|
|
38
|
+
Description-Content-Type: text/markdown
|
|
39
|
+
|
|
40
|
+
# pi-py
|
|
41
|
+
|
|
42
|
+
Python port of [pi](https://github.com/earendil-works/pi)'s core libraries, published on
|
|
43
|
+
PyPI as one package, `pi-ai-python`, with two import packages:
|
|
44
|
+
|
|
45
|
+
| Import | Upstream | What it does |
|
|
46
|
+
| --- | --- | --- |
|
|
47
|
+
| [`pi_ai`](https://github.com/nivalume/pi-py/blob/main/packages/ai/README.md) | `@earendil-works/pi-ai` | Unified LLM API: provider collections, auth resolution (API keys, OAuth), streaming events, token and cost tracking, tool calling, cross-provider context hand-off, image generation, classification |
|
|
48
|
+
| [`pi_agent`](https://github.com/nivalume/pi-py/blob/main/packages/agent/README.md) | `@earendil-works/pi-agent-core` | Stateful agent: tool execution (parallel or sequential), steering and follow-up queues, lifecycle events, hooks |
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
pip install pi-ai-python # httpx + official SDKs: anthropic, openai, google-genai
|
|
52
|
+
pip install "pi-ai-python[bedrock]" # + boto3 for Amazon Bedrock
|
|
53
|
+
pip install "pi-ai-python[all]" # + orjson, websockets, pydantic, boto3
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
中文说明见 [README.zh-CN.md](https://github.com/nivalume/pi-py/blob/main/README.zh-CN.md)。
|
|
57
|
+
|
|
58
|
+
```python
|
|
59
|
+
import asyncio
|
|
60
|
+
|
|
61
|
+
from pi_ai import Context, UserMessage
|
|
62
|
+
from pi_ai.providers.all import builtin_models
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
async def main() -> None:
|
|
66
|
+
models = builtin_models() # every built-in provider; auth comes from env vars such as ANTHROPIC_API_KEY
|
|
67
|
+
model = models.get_model("anthropic", "claude-sonnet-4-5")
|
|
68
|
+
stream = models.stream(model, Context(system_prompt="Be brief.", messages=[UserMessage("Hello!")]))
|
|
69
|
+
async for event in stream:
|
|
70
|
+
if event.type == "text_delta":
|
|
71
|
+
print(event.delta, end="", flush=True)
|
|
72
|
+
message = await stream.result()
|
|
73
|
+
print(f"\n{message.usage.input} in / {message.usage.output} out, ${message.usage.cost.total:.4f}")
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
asyncio.run(main())
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
from pi_agent import Agent, AgentInitialState, agent_tool
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
@agent_tool
|
|
84
|
+
async def get_time(timezone: str = "UTC") -> str:
|
|
85
|
+
"""Get the current time.
|
|
86
|
+
|
|
87
|
+
Args:
|
|
88
|
+
timezone: IANA timezone name.
|
|
89
|
+
"""
|
|
90
|
+
...
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
agent = Agent(
|
|
94
|
+
initial_state=AgentInitialState(system_prompt="You are helpful.", model=model, tools=[get_time]),
|
|
95
|
+
stream_fn=models.stream_simple,
|
|
96
|
+
)
|
|
97
|
+
async for event in agent.events("What time is it in Tokyo?"):
|
|
98
|
+
print(event.type)
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Same API, Python conventions
|
|
102
|
+
|
|
103
|
+
The port keeps pi's architecture and semantics: the same `Models`/`Provider`
|
|
104
|
+
runtime, the same event protocol (`start` → `text_delta`… → `done`/`error`), the
|
|
105
|
+
same transcript model (system prompt and tools carried by system messages), the
|
|
106
|
+
same auth precedence rules, the same model catalog, and the same agent loop.
|
|
107
|
+
Names follow Python conventions:
|
|
108
|
+
|
|
109
|
+
| TypeScript | Python |
|
|
110
|
+
| --- | --- |
|
|
111
|
+
| `createModels()`, `models.streamSimple(...)` | `create_models()`, `models.stream_simple(...)` |
|
|
112
|
+
| `{ apiKey, sessionId, maxTokens }` options | `api_key=..., session_id=..., max_tokens=...` keyword arguments (or a dict) |
|
|
113
|
+
| `message.stopReason`, `usage.cacheRead` | `message.stop_reason`, `usage.cache_read` |
|
|
114
|
+
| `{ role: "user", content: "hi", timestamp }` | `UserMessage("hi")` (timestamp defaults to now) |
|
|
115
|
+
| `Type.Object({...})` (TypeBox) | `Type.Object({...})` (built in) or a Pydantic model |
|
|
116
|
+
| `AbortController` / `signal` | `pi_ai.AbortController` / `signal=` |
|
|
117
|
+
| `for await (const e of stream)` / `await stream.result()` | `async for e in stream` / `await stream.result()` |
|
|
118
|
+
| `agent.continue()` | `agent.continue_()` (alias `agent.resume()`) |
|
|
119
|
+
|
|
120
|
+
String values that appear on the wire or in persisted transcripts are unchanged
|
|
121
|
+
(`"toolUse"`, `"toolResult"`, `"text_delta"`, API ids, provider ids), and
|
|
122
|
+
`pi_ai.serialization` reads and writes pi's camelCase JSON, so sessions, model
|
|
123
|
+
definitions and `auth.json` credential files are interchangeable with TypeScript pi.
|
|
124
|
+
|
|
125
|
+
## Design notes
|
|
126
|
+
|
|
127
|
+
* **Official vendor SDKs.** As in pi, the Anthropic, OpenAI (Chat Completions,
|
|
128
|
+
Responses, Azure, OpenRouter images), Google (Gemini, Vertex) and Bedrock adapters use
|
|
129
|
+
the vendors' official SDKs: `anthropic`, `openai`, `google-genai` and `boto3`
|
|
130
|
+
(`pi-ai-python[bedrock]`). The SDK clients share one pooled `httpx.AsyncClient` per event loop.
|
|
131
|
+
APIs that pi calls without an SDK (Mistral, OpenAI Codex, pi-messages, classifiers)
|
|
132
|
+
use `httpx` directly.
|
|
133
|
+
* **Fast streaming path.** Slotted data classes, an allocation-light event queue,
|
|
134
|
+
zero-copy forwarding between wrapped streams, an incremental partial-JSON parser
|
|
135
|
+
for tool-call arguments (about 60x faster than re-parsing each delta on large
|
|
136
|
+
arguments), linear-time accumulation of streamed text, optional `orjson` decoding,
|
|
137
|
+
and compiled, cached tool-argument validators. On one core the anthropic-messages
|
|
138
|
+
adapter processes about 110,000 stream events per second and openai-completions about
|
|
139
|
+
70,000, where the openai SDK's SSE decoder is the limit (see `benchmarks/`).
|
|
140
|
+
* **Lazy everything.** Model catalogs load per provider on first use; API
|
|
141
|
+
implementations and OAuth flows import on first request.
|
|
142
|
+
* **Async-native cancellation.** `AbortSignal` aborts interrupt pending network reads
|
|
143
|
+
immediately (task cancellation scoped by `abort_scope`), and aborted requests end
|
|
144
|
+
their stream with `stop_reason == "aborted"` instead of raising.
|
|
145
|
+
* **Python-friendly additions.** Pydantic models as tool parameter schemas,
|
|
146
|
+
`@agent_tool` to build tools from typed functions, `Agent.events()` as an async
|
|
147
|
+
iterator, `FileCredentialStore` (pi's `auth.json` format with cross-process locking),
|
|
148
|
+
keyword-argument options, streams that can be created outside an event loop and
|
|
149
|
+
closed with `async with`.
|
|
150
|
+
|
|
151
|
+
## Development
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
uv sync # create .venv with the package (editable) and dev tools
|
|
155
|
+
uv run pytest # run all tests (offline; HTTP is mocked)
|
|
156
|
+
uv run ruff check . && uv run ruff format --check .
|
|
157
|
+
uv run pyright
|
|
158
|
+
uv run python benchmarks/bench_partial_json.py
|
|
159
|
+
uv run python benchmarks/bench_stream.py
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Model catalog data (`packages/ai/src/pi_ai/providers/data/*.json`) is the generated
|
|
163
|
+
catalog shipped with `@earendil-works/pi-ai` 1.3.0.
|
|
164
|
+
|
|
165
|
+
## License
|
|
166
|
+
|
|
167
|
+
MIT. Based on pi by Mario Zechner and contributors.
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
pi_agent/__init__.py,sha256=fUQsvYm6WjQViElKfaqA21v0zYz2MR48wwwHdvmQMmI,2984
|
|
2
|
+
pi_agent/agent.py,sha256=oYhqMkCdjtqDfgTIaWOASnEHtaenGI7ItAu5Kv2f208,24327
|
|
3
|
+
pi_agent/agent_loop.py,sha256=yOCK-shmRHUQLGXzryRmR1AfdLBLqqsCFBQGwmet8pU,31097
|
|
4
|
+
pi_agent/proxy.py,sha256=67DrfoQ1zVyOCTuHu6QoytQzcDapTSOQpJ2ayX2GXj0,10520
|
|
5
|
+
pi_agent/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
+
pi_agent/stream_fn.py,sha256=AYw4LZfnNy-Uj9rIubL4hqbYYgBAWeuLbiGOAHmVHrQ,855
|
|
7
|
+
pi_agent/tools.py,sha256=JxMrgNqH8qg52BrQoMuKUFdW0bn8UjxjUm1bjC3N7qE,13167
|
|
8
|
+
pi_agent/types.py,sha256=yrs9974UrhS1W8bT03bweIUnV9eNx603WTlSCtPqtsk,12246
|
|
9
|
+
pi_ai/__init__.py,sha256=G1GXXkFD-_AayaNeJ61TyEsthilXKAG-dzz8igW3nR8,7085
|
|
10
|
+
pi_ai/abort.py,sha256=0zSk-2WrOH7Q-gkM7Pmm6mU-QCKhT93F6EyOseZGJ_A,10872
|
|
11
|
+
pi_ai/cli.py,sha256=ujYnW3edNlJh6_GnIl-xpBY0tMohhb73JDEFl-eByys,9857
|
|
12
|
+
pi_ai/compat.py,sha256=uDA-40XzdRFz2CkEHFSw9k6kWsKFHgElg0osKXucY54,23630
|
|
13
|
+
pi_ai/env_api_keys.py,sha256=71dOGISyp6XPCU8Ki9kgRYRCFlxrAGA0PhFNq6nbJaM,5508
|
|
14
|
+
pi_ai/event_stream.py,sha256=Ouaehlr0mGio7EA2h6ZMJAc2UcaoxRr3zmrpJR3xTpw,11672
|
|
15
|
+
pi_ai/models.py,sha256=cMtL-hU4EWHbz9gseIdh7W5iekADusJqm_ICDdyAjfE,50369
|
|
16
|
+
pi_ai/models_store.py,sha256=geL0FimL7SdPH48fMldat5YiQqpogx8R6xal7cULH2k,4595
|
|
17
|
+
pi_ai/oauth.py,sha256=ZNOcWZ1tImsLZ8EnUvaH5Ja_3iWUVxSBdXJegLmJQM4,2373
|
|
18
|
+
pi_ai/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
|
+
pi_ai/serialization.py,sha256=cHbs_HpicCpLVoPlIX1NS_bQg1hvd68q-k9GlD5IZeg,15276
|
|
20
|
+
pi_ai/session_resources.py,sha256=8kHJdZPw868MqxvTGcr044rgZC8qpJDgmhj-r6SheJM,1019
|
|
21
|
+
pi_ai/types.py,sha256=uBWHmz_y5SBxeGGcf1SbI2VVJhlxLd--ei3hZDTIRTc,30106
|
|
22
|
+
pi_ai/api/__init__.py,sha256=GPyzhMCvsRqOi-0iG2mdbuDtVt5gYd1KqNjNdAp6JlM,106
|
|
23
|
+
pi_ai/api/anthropic_messages.py,sha256=n6YDxxhzWj-SIn772v2nTGDghAjsctZwsGP5e8Sr9N4,77763
|
|
24
|
+
pi_ai/api/azure_openai_config.py,sha256=rxWGNLhLCawkodkT5yyBJ5bi0nypbYlcYPRuGaiJ9Io,5195
|
|
25
|
+
pi_ai/api/azure_openai_responses.py,sha256=SKZqg1ZYWc8U0dCE55MCu3S1FNwQCm8jIBJi-7YrwQ8,10952
|
|
26
|
+
pi_ai/api/bedrock_converse_stream.py,sha256=I1UfvqMRafc6sRdk-rHgj0JlPHGIbOO4MGN46POikbE,64837
|
|
27
|
+
pi_ai/api/classifier_shared.py,sha256=OFOcl_tBo5AyXa6DhL9kXd7VyXUzdm95fNz6C8yX0xk,7748
|
|
28
|
+
pi_ai/api/cloudflare.py,sha256=taLNFHj3edndKHxK0vS0B6Gygref-sgrhfArQ8THppo,1440
|
|
29
|
+
pi_ai/api/cloudflare_workers_ai_system_one.py,sha256=E3lEHTpZc9nsUfbFatLjfM45SUcJZRs5QLpfy9pt0mk,2965
|
|
30
|
+
pi_ai/api/constrained_sampling.py,sha256=AoWhj1E6ItZChnSjrlBLojmq-ATHaBMRizEXWbVz_1g,11099
|
|
31
|
+
pi_ai/api/github_copilot_headers.py,sha256=YzejyHxIJ2mTLV7fXdKF_80IDE42lc3GI_japkvSCyM,1251
|
|
32
|
+
pi_ai/api/google_generative_ai.py,sha256=wbHp1WMQbedZBVcWW8_SHZ8nNsAHYkRf-rjUTyhW3fc,5096
|
|
33
|
+
pi_ai/api/google_shared.py,sha256=P2HQ3bnCan53DhnwdzlgS4qHoGhvWt4_FuBuxucQo-I,39881
|
|
34
|
+
pi_ai/api/google_vertex.py,sha256=6rD9SAGITHGMTuKnsfKc6Ks7bvhvmmuA6qU68bj260c,9052
|
|
35
|
+
pi_ai/api/lazy.py,sha256=cD_469HX77x2Bq8eIRN-sKyqTaTO7F9A9bcR45vI0mo,6215
|
|
36
|
+
pi_ai/api/llama_cpp_classify.py,sha256=3783IplCKV8wLkBC0fSFQCkJ-rsJFeKOtH4V85MiNuA,18939
|
|
37
|
+
pi_ai/api/mistral_conversations.py,sha256=QtVmzmOs1YN59aoIW9MdbKs3-qeTRE5F_BUSQeE-dlE,30008
|
|
38
|
+
pi_ai/api/openai_codex_responses.py,sha256=hpa38ySzf0Bn2UHSh8ghaHKNo434I2n4JoyWJ7Wv26o,61326
|
|
39
|
+
pi_ai/api/openai_completions.py,sha256=zTjVipxG6ZqYl4IR5VpPzCAIafvq4Ea6XzepQE3Gq0o,67716
|
|
40
|
+
pi_ai/api/openai_decisions.py,sha256=H87BC6aJYxY8riJnTR5Emw80cDQdDUQn7KO3Nz7h0V4,8504
|
|
41
|
+
pi_ai/api/openai_prompt_cache.py,sha256=BI5uNr1IpJe6V_F65THwIiq_OeQwnwIOCahbqC_TfRw,609
|
|
42
|
+
pi_ai/api/openai_responses.py,sha256=SlJtGueMbsDz9n6xPHaJKgYqwtvJ3Ulsg_rplP4toAU,18370
|
|
43
|
+
pi_ai/api/openai_responses_shared.py,sha256=qs7lmT7oJG_xVR4DHFl6FSOOUwqqsoDoiCHWCLkWlZs,39217
|
|
44
|
+
pi_ai/api/openai_sdk.py,sha256=9q_HQJ31jA8zCckoApFtNJbBOLZSIRFNj1-j3nvKqog,8424
|
|
45
|
+
pi_ai/api/openrouter_images.py,sha256=Tjs90hMQhqz8Mr7TimYwYYoxrnKilSoXbp5zuGldMCg,6432
|
|
46
|
+
pi_ai/api/pi_messages.py,sha256=gw8pR18etWoLg3yDJUPVhfeUFHz22snXxYLAEHG40YE,17738
|
|
47
|
+
pi_ai/api/registry.py,sha256=jIwNuhvkPappq4NSGgHeWHH4qDqkVSPgKmB0-IBP250,3108
|
|
48
|
+
pi_ai/api/simple_options.py,sha256=rtVoesN_eBdnljzbBSBuLGXR5qWY5uha-YEdCDyf1wE,4358
|
|
49
|
+
pi_ai/api/system_one_shared.py,sha256=qYfyvUc19-rDWnwo_4mwWI6yVl3YSyGAjaqa7g1yBcg,6112
|
|
50
|
+
pi_ai/api/transform_messages.py,sha256=uwbxtBWi9D-2y33wdU_xj4nqC2jzdI9Z0earVRSP-Ew,7997
|
|
51
|
+
pi_ai/api/typesafe_system_one.py,sha256=GpqCo5p7xytHIyrayEZpyaE7GoddliFA2q9tF51i4ck,1373
|
|
52
|
+
pi_ai/auth/__init__.py,sha256=-1Q5qVmKKZ4f8m1BGLFaZewVytiKbYrkpCgUCPjoTdI,71
|
|
53
|
+
pi_ai/auth/context.py,sha256=TDJGKZpUWEB4T2G2hVXiNr_b5gARStEJKDXIHZZfwuI,1430
|
|
54
|
+
pi_ai/auth/credential_store.py,sha256=9xEUVM-sjBXY3O3AsJTSM-dB9cHlWJ8tqFoEuDjEu50,7831
|
|
55
|
+
pi_ai/auth/helpers.py,sha256=Ezqv-tFDnxcG2nMZ0gehrvCbZe1DxuXhXRR-GZK78zo,4301
|
|
56
|
+
pi_ai/auth/resolve.py,sha256=qAc34KAZLBmkmQfaxpzB52jUCRvFvqK6EdfLPOgifz0,7236
|
|
57
|
+
pi_ai/auth/types.py,sha256=WEMRqjpIgwTlAZyvQ84uX0OHri9do5G_jW0y0oYO2e0,8909
|
|
58
|
+
pi_ai/auth/oauth/__init__.py,sha256=RLDdrBBdSyl4KitUT2gBa3AOMp4-U4kvUvI5Etd3uac,131
|
|
59
|
+
pi_ai/auth/oauth/_common.py,sha256=bfkRrkksClU08cqLB-8OVAl59u8jNQ3EArxTynVd_xQ,14967
|
|
60
|
+
pi_ai/auth/oauth/anthropic.py,sha256=FvYnZnd-rw5lRHOz36gVdVB5RmRJNzhDL6VEPQ-EqOM,10643
|
|
61
|
+
pi_ai/auth/oauth/callback_server.py,sha256=hJW03I7DCjXfsYqfsytdgPxTleYV-tlalejFao3wMXM,13163
|
|
62
|
+
pi_ai/auth/oauth/device_code.py,sha256=NIyflChu2bXhaxZqsYQFnrZA_Yy7AkNHK9dnXrLF2JE,4616
|
|
63
|
+
pi_ai/auth/oauth/github_copilot.py,sha256=ryJKreejMA7nkhnTJaUIieVa7gFNqAmUAQpu7bkQI_8,18673
|
|
64
|
+
pi_ai/auth/oauth/kimi_coding.py,sha256=y1PYBbTVXHchkBl06yH2ZgXaQ4NYp1caTIOTUfu4gQ8,10710
|
|
65
|
+
pi_ai/auth/oauth/load.py,sha256=RlV4NVORDo0dgLBmqqkoCw7Cr_TymygodpxA9rXltqs,1610
|
|
66
|
+
pi_ai/auth/oauth/meta.py,sha256=B9UGLbnzT2EYEl9fcjd4EwqJgOa7K52-Rx_KOYARomc,9125
|
|
67
|
+
pi_ai/auth/oauth/openai_chatgpt.py,sha256=o-i9zG9GElUcLYT1XZqaNmzQ6ISVmPTWE6a5l6E-RyA,13582
|
|
68
|
+
pi_ai/auth/oauth/openai_codex.py,sha256=z4wD_HfhqUa95tGWWykqv-Nms_Ix4uG5TCmxkEbH5ZY,14070
|
|
69
|
+
pi_ai/auth/oauth/openrouter.py,sha256=H9crbDoWTD-Cnv9R9hKsVGeYp2_qTao8omrcp3Rin3Y,6217
|
|
70
|
+
pi_ai/auth/oauth/pkce.py,sha256=iFR-f7CdwC8fpCSueO1sf0L302dP2m2npgoTMsTnRpk,597
|
|
71
|
+
pi_ai/auth/oauth/radius.py,sha256=cCWToKD9yM8jJ_h3Ikm1PnQyYGrI7XpbdpRTmPlk2ZQ,11669
|
|
72
|
+
pi_ai/auth/oauth/xai.py,sha256=Xrd39zPTq6rQ1KehTcufdZBJPddcmUts0z_p4KX3UpM,8470
|
|
73
|
+
pi_ai/providers/__init__.py,sha256=YkODkSsenKQd0a-7y51zdtOkl-lk393s8C7a-hLfzx8,86
|
|
74
|
+
pi_ai/providers/all.py,sha256=0KyE8XvI6jP76aKCfTjSKq8EN4AXl32pYTiYUJUFZlw,5268
|
|
75
|
+
pi_ai/providers/amazon_bedrock.py,sha256=6PAE9eT8D42qf0kxUbHPIZrmtL5MUb1w0wZFMnwqTVY,4505
|
|
76
|
+
pi_ai/providers/ant_ling.py,sha256=YvkIPP9Kx_zQDUOuvG2AuwS9Nlm03yRew8QcdENtZXo,761
|
|
77
|
+
pi_ai/providers/anthropic.py,sha256=yg1-wanhJ-UPG3706QLHmsUP4ZPf1cx53-53QcDKL1k,3975
|
|
78
|
+
pi_ai/providers/azure.py,sha256=9CydhBdd-i1hsGM7tuDqBIpJq-_N3ig1SMOETB3O_B8,3724
|
|
79
|
+
pi_ai/providers/baseten.py,sha256=6OkPuHAS8EyRhOTNbRmZfg4bQIUTWuhJhcmYz8P0Exg,755
|
|
80
|
+
pi_ai/providers/catalog.py,sha256=hMC9zTBF_NrkmdLbje7SAj19DOzE7HYA1Btw0Z1B84s,5140
|
|
81
|
+
pi_ai/providers/cerebras.py,sha256=4B-6EUeTNu90h027cq_D17eWCgBz1sYMJ7I0QzD_CXw,760
|
|
82
|
+
pi_ai/providers/cloudflare_ai_gateway.py,sha256=85LFf5aKKjSko9vsejPHSYJxZI0BtLRsLI6pqFq_4WA,1353
|
|
83
|
+
pi_ai/providers/cloudflare_auth.py,sha256=H1K1PDv_q3Fon8g6UNdAmh2EyWKdLWpIm8EgAk0ehW4,4534
|
|
84
|
+
pi_ai/providers/cloudflare_stream.py,sha256=TIZmOfiTnSb-3wV39t0D3QWwb5cUOkiMffvi28Ifx78,3127
|
|
85
|
+
pi_ai/providers/cloudflare_workers_ai.py,sha256=i6NBm9-2Hj-KH4PkJCsnmGnwx4c3D0ebpixgW9JfsWQ,1038
|
|
86
|
+
pi_ai/providers/deepseek.py,sha256=CZKMed8KzDZGkEzmWbz76qt5L56fsxXA7ztfPiABLy0,758
|
|
87
|
+
pi_ai/providers/faux.py,sha256=TIKSA3i-Lk-wb1c-x_OYwu8lXN_7PUNT5AB4tycaIXE,24378
|
|
88
|
+
pi_ai/providers/fireworks.py,sha256=p2qb6AOpWmerW3NtEtnf1bZaR0JALzWg3mg2JsiYpL8,914
|
|
89
|
+
pi_ai/providers/github_copilot.py,sha256=R6xk9hCzSPgS-AXR_08hR01tQwbOZwEO3g5Z-HtlFPY,1889
|
|
90
|
+
pi_ai/providers/google.py,sha256=eqd92UzbdUOB5ribgLF6tDH4HVjOZvrh18INmdNYvDk,742
|
|
91
|
+
pi_ai/providers/google_vertex.py,sha256=pSHWVVuMBv0Wax7hXATBunkhTQUFQirCAW_U8RnTkpw,5069
|
|
92
|
+
pi_ai/providers/groq.py,sha256=RNXgIZNA8lvM_oBunSAZ1nNHs2V1VVACeLVVJSA2QZg,724
|
|
93
|
+
pi_ai/providers/huggingface.py,sha256=vNKJOEJTjGwxA4zxV-NGG7h_4BmfrNbkpqL-7O5lHCA,776
|
|
94
|
+
pi_ai/providers/kimi_coding.py,sha256=-fl8HvPyIHDjZlbLs5eGWqKqqaAVgTx0oZ48R4tNj3M,1072
|
|
95
|
+
pi_ai/providers/meta.py,sha256=O9L0kK_r18TJr83t6nnU_SgmS4g2G4UPEYeyeBBBgZI,1004
|
|
96
|
+
pi_ai/providers/minimax.py,sha256=01hUMkk5YGDHOkobITBUhKw-OTuqFJLhYcEUKY4cBnw,744
|
|
97
|
+
pi_ai/providers/minimax_cn.py,sha256=rfZ53SSz2QovvVzD8XuoCcWpQodiqjZwm5Z-1Ro6PGg,776
|
|
98
|
+
pi_ai/providers/mistral.py,sha256=SHFeO6tKyLcHz2mI9uOhBKC5xBZZJo0HdxlaFhKEVRs,743
|
|
99
|
+
pi_ai/providers/moonshotai.py,sha256=ghZjZ_4b7zFF-oDDWsidponYVsSmU0y7rvF57s1Z7gs,780
|
|
100
|
+
pi_ai/providers/moonshotai_cn.py,sha256=yxp_PtoC7KbXInahjy2Vyn5epx416OYkM2SezL9H7DE,801
|
|
101
|
+
pi_ai/providers/nvidia.py,sha256=cOcYKjiIIsurZDRsKc2JV6V5B1jHxARooJs1MTn5Dls,749
|
|
102
|
+
pi_ai/providers/openai.py,sha256=U6llUqw8v5I6mC__2hTjYAMerLQE1usaaWV3O0kYCKc,1667
|
|
103
|
+
pi_ai/providers/openai_codex.py,sha256=g9F0lQwUxB-vZUJltNbhhmFObWFJLp3YX9MPVW1VobM,913
|
|
104
|
+
pi_ai/providers/opencode.py,sha256=SeCU6LIFhD4PXk5VOK9O8Fe4sLETJJ5mMr5puTFIIYk,1384
|
|
105
|
+
pi_ai/providers/opencode_go.py,sha256=1P61KjOzA6mBWu4FsMfreTZd-4AsTe4_vWL0UhkfvoY,1209
|
|
106
|
+
pi_ai/providers/opencode_headers.py,sha256=YwQicStsN69PtITszwYNINjRVUsdY5NjhgHATvk-KfM,2251
|
|
107
|
+
pi_ai/providers/openrouter.py,sha256=E2LGB9_PZLCrqOGPIP5Jt6lwo8uoYewaI4956rkmtLA,5736
|
|
108
|
+
pi_ai/providers/openrouter_api.py,sha256=qECuY9ovZ-0WSmSk0cuOv_uuK_YDuPjdc0vUhLYWd-g,4033
|
|
109
|
+
pi_ai/providers/qwen_token_plan.py,sha256=pw5TtYPCiZOc5SReGEl7ko9PVZcB-x2lIFldq9_0B0A,874
|
|
110
|
+
pi_ai/providers/qwen_token_plan_cn.py,sha256=mgv_cOZic0Nlt8GZD1sYkeNl9RZb7Tzn7AbAKQGX-jc,900
|
|
111
|
+
pi_ai/providers/qwen_token_plan_individual.py,sha256=iati1bVSosiWK42GheLTubtWpvGhARVOMznnuH637H4,962
|
|
112
|
+
pi_ai/providers/radius.py,sha256=02qoHW5Xn8lEs8mBIY5X4Qsi86rvDl9AwGYm1dFYPms,5662
|
|
113
|
+
pi_ai/providers/radius_config.py,sha256=nXOc-pwYIk-FAZCJCksgyMZWEqRpKkr-kDhczqAPobk,4614
|
|
114
|
+
pi_ai/providers/together.py,sha256=HDUg9E-Bi9F53o8rUVFxalbrG7lU967vVxnyMAyN6PI,760
|
|
115
|
+
pi_ai/providers/typesafe.py,sha256=uZOC-NN1qSaJdsoBq_30WhMqHx5-zVvwTAj_kMoX4HE,759
|
|
116
|
+
pi_ai/providers/vercel_ai_gateway.py,sha256=vjA3zg-3bsehQ_HR0QId0EnHEQQR8VeEnvYulXFSzkI,1009
|
|
117
|
+
pi_ai/providers/xai.py,sha256=3I_ZcgWWvQznrY9kvyZNtoywYFmGXfHCSoyl9Mhk2PE,1006
|
|
118
|
+
pi_ai/providers/xiaomi.py,sha256=2k1e4DbqDixgmtsyWzXTqUsuL-Bcd7wzMnVQ69nwVgI,743
|
|
119
|
+
pi_ai/providers/xiaomi_token_plan_ams.py,sha256=5UD-25sto6j4o9foVdRROwTt5S-KDsAPQysvXGI-uv4,904
|
|
120
|
+
pi_ai/providers/xiaomi_token_plan_cn.py,sha256=gkla-M-8rKz_1Bo8eEAJXk43gJEq7XTk8GpOfjo0a74,893
|
|
121
|
+
pi_ai/providers/xiaomi_token_plan_sgp.py,sha256=4esKNEitHmTMbLvs51htbi61SyfuHt6MlurOxfv06X4,904
|
|
122
|
+
pi_ai/providers/zai.py,sha256=E2zY7haDcZMJbYb52NATyM0DufD3FYHphDY1ZWJHS20,723
|
|
123
|
+
pi_ai/providers/zai_coding_cn.py,sha256=8BaYRzYPWlYCVn_f3tX-AxMtGV7Smnk4H7hmMMnrwik,831
|
|
124
|
+
pi_ai/providers/data/amazon-bedrock.json,sha256=3yJ9QmtnjkTNgt6uHPQzhV1rJ_Nv7c_z70-4Ev6IKGg,103173
|
|
125
|
+
pi_ai/providers/data/ant-ling.json,sha256=Yo_qs-9sfYDOlvdZmYBOHZ8F_sOFHlMC4w__O2nbkPY,1692
|
|
126
|
+
pi_ai/providers/data/anthropic.json,sha256=kfXaAUUsd0ZkXTQFvJHgn4SeTkaHx8f_ItiXbq_mS4c,11820
|
|
127
|
+
pi_ai/providers/data/azure.json,sha256=RsTiW4RGPGR15wbFgRltJzXDX-uWEtLvygq5MskX1yc,20346
|
|
128
|
+
pi_ai/providers/data/baseten.json,sha256=H82rja8ogb0JnrCPlBb331vzmXWTfSpjuEFUK9Ay8uY,17973
|
|
129
|
+
pi_ai/providers/data/cerebras.json,sha256=Psy1jF3j0Nx7pJ3G5He6KfAMsxUM4KNcyQ1Z5rWrNo4,1112
|
|
130
|
+
pi_ai/providers/data/cloudflare-ai-gateway.json,sha256=OIrv0vHlxbB4NnPeGs2kp-qN6FPrtb7u7elkapAVmio,38393
|
|
131
|
+
pi_ai/providers/data/cloudflare-workers-ai.json,sha256=mLnIy0EhOa4_XS9eSRNPhBLtThOaEr9ss666OKrMa7M,13511
|
|
132
|
+
pi_ai/providers/data/deepseek.json,sha256=EKKW-z6Jj3cVyAiQyK8K9PX9WPItvNZhL9xddiFXzNw,1387
|
|
133
|
+
pi_ai/providers/data/fireworks.json,sha256=jbPBH2Wl12Jg1QQKXcWp7w81uS3oUFowkHwjVcKDezY,16227
|
|
134
|
+
pi_ai/providers/data/github-copilot.json,sha256=HH13pMMgCBuwqAssjhhbNPB7c9OOZ9IPPcq89y8vj80,29075
|
|
135
|
+
pi_ai/providers/data/google-vertex.json,sha256=Vk1pKkKS7xLpjI7AVqOZSOpk4QhR9d2q68w3tYVUUjE,7794
|
|
136
|
+
pi_ai/providers/data/google.json,sha256=4T08UbEwKNglMVMWX3Q46i88PqqPIJvpUtPp3tRJS1o,14532
|
|
137
|
+
pi_ai/providers/data/groq.json,sha256=kQlSrZ2tB4Vpg0WdY_zgFI26EgPt17ENgBp3xYJPNAU,3354
|
|
138
|
+
pi_ai/providers/data/huggingface.json,sha256=Y5npWHkKnZDCH7VdHL74VpQnoc6yjehtres7RFTs-t4,37386
|
|
139
|
+
pi_ai/providers/data/kimi-coding.json,sha256=co1d22PvUhMFUgItWuL9E4_cEx_4VKyMOxDMqtNVqzk,3239
|
|
140
|
+
pi_ai/providers/data/manifest.json,sha256=iUos8c6WMzAnYVMkFlpdN3rSrUULT-BLPRgQ8Iwb5dA,3762
|
|
141
|
+
pi_ai/providers/data/meta.json,sha256=Vj9ewHlz9Sq4w-sm75GjatinnpULNxdJNWZs3LYkvzU,3358
|
|
142
|
+
pi_ai/providers/data/minimax-cn.json,sha256=G7-9EcPtvRQYQdPO8CfhIVchjxrskkd-FXchFsH6vno,1222
|
|
143
|
+
pi_ai/providers/data/minimax.json,sha256=pLaGS9l-3fV0my4Rf2Q-dR7CN0COjiS-yeL5R3gvokQ,1207
|
|
144
|
+
pi_ai/providers/data/mistral.json,sha256=J6pmxxoFBLU9yH7BlChvp-cLmXR_yN-bcJsjs1SK_lA,16484
|
|
145
|
+
pi_ai/providers/data/moonshotai-cn.json,sha256=eclYXchO5SXrrrvHizxV89Np7IhNT5Q0iPHgsU41h_U,2882
|
|
146
|
+
pi_ai/providers/data/moonshotai.json,sha256=HaLE408irvF6B8l02Fve6OG2i23HEuN2nJNbPx59rco,2870
|
|
147
|
+
pi_ai/providers/data/nvidia.json,sha256=mLR8TaJsjmSfSKh0YC_X6dyKVO4L20Dj0H_kkYmoQtI,13078
|
|
148
|
+
pi_ai/providers/data/openai-codex.json,sha256=dd_C-eSx4DmXjgadlMmDWV74_wLrZEgZAb7a5Yg7HT8,6476
|
|
149
|
+
pi_ai/providers/data/openai.json,sha256=NZjYe9OeQP5q5EsH7PP50nyy50XhFMiwwPsKOoTdjT4,29415
|
|
150
|
+
pi_ai/providers/data/opencode-go.json,sha256=OUCO5tpzAuMgLX97J9MdTVCgXDQL69faJe4jdV1QZHU,17403
|
|
151
|
+
pi_ai/providers/data/opencode.json,sha256=7PjGIlgknec47-4Jky8QaMP-r1VXedAZaqEp6oM53Sg,51667
|
|
152
|
+
pi_ai/providers/data/openrouter.json,sha256=0wPPjkrSz9Mi6l_IyeYX1Gsh022evgRUviauktkUQKo,282246
|
|
153
|
+
pi_ai/providers/data/qwen-token-plan-cn.json,sha256=JGmkCRxHTsPbCkmpli2NJybAdK2QZblrxODIeGHExsU,12210
|
|
154
|
+
pi_ai/providers/data/qwen-token-plan-individual.json,sha256=D7fPZPrznRo7CohCEKhshwhLgF7aFWRPXzkpMoe5Wd0,5782
|
|
155
|
+
pi_ai/providers/data/qwen-token-plan.json,sha256=7_EGIMtXcULeTsAmmNWWGnH9ov5PaufqlDK62daEQXY,12230
|
|
156
|
+
pi_ai/providers/data/radius.json,sha256=R8SfH_rykAyOHiPuYctMvowGauWaTi0BOTxcl3Kh2gQ,20309
|
|
157
|
+
pi_ai/providers/data/together.json,sha256=Uik99iGRyOeZrjYy-KsbP1LuYmruAoBncIZiezKGS_c,10944
|
|
158
|
+
pi_ai/providers/data/typesafe.json,sha256=pEKaL2ltXMUnOWmvYacxC9oH1r3NJ7-aycdsU0zENxY,291
|
|
159
|
+
pi_ai/providers/data/vercel-ai-gateway.json,sha256=FU3pglUt_5h0dk5ySYCq0Wfi_1i-BthHfyRWSU7x5Fg,154350
|
|
160
|
+
pi_ai/providers/data/xai.json,sha256=h5xJt4tmOlKiIKxO4BPnJrEMT1CqoDvFjuU6S1THaSg,2609
|
|
161
|
+
pi_ai/providers/data/xiaomi-token-plan-ams.json,sha256=gmbcVe9yAjQ3PU_1Q08LjUD2FDANnlAffVKTUBdTTII,2728
|
|
162
|
+
pi_ai/providers/data/xiaomi-token-plan-cn.json,sha256=B63picC9Hs9u2e3DLlYcDdKMMXlVuC9R56GHUIOQYwc,2720
|
|
163
|
+
pi_ai/providers/data/xiaomi-token-plan-sgp.json,sha256=avq1XIo3vEAYNUrWV8d08OZkrkTPeb77dDvFrj_D6bo,2728
|
|
164
|
+
pi_ai/providers/data/xiaomi.json,sha256=k_gbQOTQHwGT3QsZH2raK4UacdNRETBnmZqw-dw_c34,4002
|
|
165
|
+
pi_ai/providers/data/zai-coding-cn.json,sha256=7l7nBftuQTpgiNteNhbCf86AKo7ObDVfHbNUkNeH9hA,2672
|
|
166
|
+
pi_ai/providers/data/zai.json,sha256=WOZkL9-3NvC5pKJ3x2DFNqPOpmoDCrv7JhX3soUdXG8,4221
|
|
167
|
+
pi_ai/utils/__init__.py,sha256=1ECwZzIOxNKr8QUV7Sh1GGfrtpVM5TSzAglZUqO-Hzo,24
|
|
168
|
+
pi_ai/utils/callbacks.py,sha256=yvVaQa3b9Q_RSWMdFPQKho5kEkHjg-EbTIKULvHPNJ8,362
|
|
169
|
+
pi_ai/utils/diagnostics.py,sha256=jFzdaF3Trx4wVvpOOJLR_ZbBa7JA3tjdq2YKSOrty2I,2162
|
|
170
|
+
pi_ai/utils/error_body.py,sha256=t8GBbzggQ8y_VEbW76QA6kyRpF4Bde_be_8ssL8pwHo,2880
|
|
171
|
+
pi_ai/utils/estimate.py,sha256=MvRrwa0u1bZvWSDYmwu80V0w3o2mk6BMW_7MY2mfz3w,4181
|
|
172
|
+
pi_ai/utils/fastjson.py,sha256=zLNR1xu-lvOefVY9MvnN-FIgEmkslDftZ2WDHp_LMz8,2036
|
|
173
|
+
pi_ai/utils/http.py,sha256=XyYQdD9cL2FZnLTRrY8Aj2kOjFcWEILH4Cis9LXfHH8,14853
|
|
174
|
+
pi_ai/utils/json_parse.py,sha256=6C51vE09i4uiOd_WHLvyzWgwMRfHNTJJSCHUpAnkF1E,13944
|
|
175
|
+
pi_ai/utils/misc.py,sha256=w1njDN0eQZgJvHsXJtc4-CtUCxYn9O4YCszi3DvdW0s,6437
|
|
176
|
+
pi_ai/utils/model_operations.py,sha256=cMF3MxpF2XGk9wtE3GF6S3obdY1eFjZybLld4ujNkWw,2375
|
|
177
|
+
pi_ai/utils/models_error.py,sha256=IXrwE_4UL6_d2kZSIIacfpg24O97Qngn-mhosrh97qc,1118
|
|
178
|
+
pi_ai/utils/oauth_page.py,sha256=MHbzg0hK03vHCM2IAIQmxu5MaU5xiq_obtvolb04UHs,3332
|
|
179
|
+
pi_ai/utils/overflow.py,sha256=cKc-LSblymPsC7mkexedIZ_b_EiKKJbw0eSonPCyylM,4236
|
|
180
|
+
pi_ai/utils/retry.py,sha256=HuorzziNgb4MomDM14SVpzDnCbmOWwTVduoT0CDx0og,6790
|
|
181
|
+
pi_ai/utils/schema.py,sha256=LqzTqbY1c4R3yQ8A2FjfFDy9_nu80JU-7uorEuNisCw,10320
|
|
182
|
+
pi_ai/utils/text.py,sha256=LdNFizNF9EUnsKKKjsYbAcr9cOVB8cVEBa2wvC_7e9I,2384
|
|
183
|
+
pi_ai/utils/transcript.py,sha256=2R7RYM33Jvi30LZUfbuxfFSm19IxJQI24fITbW2-EyY,10407
|
|
184
|
+
pi_ai/utils/validation.py,sha256=rMU0SwDRYUbRHKYebyyN5F34IQWVW5RG0kHCP7PRjHU,31436
|
|
185
|
+
pi_ai_python-1.3.0.dist-info/METADATA,sha256=5PC8AjpuBRwONpbL4M-_NNCIqsDMAYwT1RDyEAbp0RE,7607
|
|
186
|
+
pi_ai_python-1.3.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
187
|
+
pi_ai_python-1.3.0.dist-info/entry_points.txt,sha256=r_ACNRaScPvBVYySO4_qxF4ww8PPfI5yTTFbrfS_uP0,41
|
|
188
|
+
pi_ai_python-1.3.0.dist-info/licenses/LICENSE,sha256=RPJB0q1HnYqFsnIyseOVq7QKC6U4BnobEd9i9y0CLFY,1161
|
|
189
|
+
pi_ai_python-1.3.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Mario Zechner (pi, https://github.com/earendil-works/pi)
|
|
4
|
+
Copyright (c) 2026 nivalume (pi-py Python port)
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
SOFTWARE.
|