prompture 0.0.38.dev2__py3-none-any.whl → 0.0.42__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.
- prompture/__init__.py +12 -1
- prompture/_version.py +2 -2
- prompture/agent.py +11 -11
- prompture/async_agent.py +11 -11
- prompture/async_conversation.py +9 -0
- prompture/async_core.py +16 -0
- prompture/async_driver.py +39 -0
- prompture/async_groups.py +63 -0
- prompture/conversation.py +9 -0
- prompture/core.py +16 -0
- prompture/cost_mixin.py +62 -0
- prompture/discovery.py +108 -43
- prompture/driver.py +39 -0
- prompture/drivers/__init__.py +39 -0
- prompture/drivers/async_azure_driver.py +7 -6
- prompture/drivers/async_claude_driver.py +177 -8
- prompture/drivers/async_google_driver.py +10 -0
- prompture/drivers/async_grok_driver.py +4 -4
- prompture/drivers/async_groq_driver.py +4 -4
- prompture/drivers/async_modelscope_driver.py +286 -0
- prompture/drivers/async_moonshot_driver.py +312 -0
- prompture/drivers/async_openai_driver.py +158 -6
- prompture/drivers/async_openrouter_driver.py +196 -7
- prompture/drivers/async_registry.py +30 -0
- prompture/drivers/async_zai_driver.py +303 -0
- prompture/drivers/azure_driver.py +6 -5
- prompture/drivers/claude_driver.py +10 -0
- prompture/drivers/google_driver.py +10 -0
- prompture/drivers/grok_driver.py +4 -4
- prompture/drivers/groq_driver.py +4 -4
- prompture/drivers/modelscope_driver.py +303 -0
- prompture/drivers/moonshot_driver.py +342 -0
- prompture/drivers/openai_driver.py +22 -12
- prompture/drivers/openrouter_driver.py +248 -44
- prompture/drivers/zai_driver.py +318 -0
- prompture/groups.py +42 -0
- prompture/ledger.py +252 -0
- prompture/model_rates.py +114 -2
- prompture/settings.py +16 -1
- {prompture-0.0.38.dev2.dist-info → prompture-0.0.42.dist-info}/METADATA +1 -1
- prompture-0.0.42.dist-info/RECORD +84 -0
- prompture-0.0.38.dev2.dist-info/RECORD +0 -77
- {prompture-0.0.38.dev2.dist-info → prompture-0.0.42.dist-info}/WHEEL +0 -0
- {prompture-0.0.38.dev2.dist-info → prompture-0.0.42.dist-info}/entry_points.txt +0 -0
- {prompture-0.0.38.dev2.dist-info → prompture-0.0.42.dist-info}/licenses/LICENSE +0 -0
- {prompture-0.0.38.dev2.dist-info → prompture-0.0.42.dist-info}/top_level.txt +0 -0
prompture/model_rates.py
CHANGED
|
@@ -9,6 +9,7 @@ import contextlib
|
|
|
9
9
|
import json
|
|
10
10
|
import logging
|
|
11
11
|
import threading
|
|
12
|
+
from dataclasses import dataclass
|
|
12
13
|
from datetime import datetime, timezone
|
|
13
14
|
from pathlib import Path
|
|
14
15
|
from typing import Any, Optional
|
|
@@ -24,6 +25,8 @@ PROVIDER_MAP: dict[str, str] = {
|
|
|
24
25
|
"grok": "xai",
|
|
25
26
|
"azure": "azure",
|
|
26
27
|
"openrouter": "openrouter",
|
|
28
|
+
"moonshot": "moonshotai",
|
|
29
|
+
"zai": "zai",
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
_API_URL = "https://models.dev/api.json"
|
|
@@ -139,7 +142,12 @@ def _lookup_model(provider: str, model_id: str) -> Optional[dict[str, Any]]:
|
|
|
139
142
|
if not isinstance(provider_data, dict):
|
|
140
143
|
return None
|
|
141
144
|
|
|
142
|
-
|
|
145
|
+
# models.dev nests actual models under a "models" key
|
|
146
|
+
models = provider_data.get("models", provider_data)
|
|
147
|
+
if not isinstance(models, dict):
|
|
148
|
+
return None
|
|
149
|
+
|
|
150
|
+
return models.get(model_id)
|
|
143
151
|
|
|
144
152
|
|
|
145
153
|
# ── Public API ──────────────────────────────────────────────────────────────
|
|
@@ -189,7 +197,12 @@ def get_all_provider_models(provider: str) -> list[str]:
|
|
|
189
197
|
if not isinstance(provider_data, dict):
|
|
190
198
|
return []
|
|
191
199
|
|
|
192
|
-
|
|
200
|
+
# models.dev nests actual models under a "models" key
|
|
201
|
+
models = provider_data.get("models", provider_data)
|
|
202
|
+
if not isinstance(models, dict):
|
|
203
|
+
return []
|
|
204
|
+
|
|
205
|
+
return list(models.keys())
|
|
193
206
|
|
|
194
207
|
|
|
195
208
|
def refresh_rates_cache(force: bool = False) -> bool:
|
|
@@ -215,3 +228,102 @@ def refresh_rates_cache(force: bool = False) -> bool:
|
|
|
215
228
|
return True
|
|
216
229
|
|
|
217
230
|
return False
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
# ── Model Capabilities ─────────────────────────────────────────────────────
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
@dataclass(frozen=True)
|
|
237
|
+
class ModelCapabilities:
|
|
238
|
+
"""Normalized capability metadata for an LLM model from models.dev.
|
|
239
|
+
|
|
240
|
+
All fields default to ``None`` (unknown) so callers can distinguish
|
|
241
|
+
"the model doesn't support X" from "we have no data about X".
|
|
242
|
+
"""
|
|
243
|
+
|
|
244
|
+
supports_temperature: Optional[bool] = None
|
|
245
|
+
supports_tool_use: Optional[bool] = None
|
|
246
|
+
supports_structured_output: Optional[bool] = None
|
|
247
|
+
supports_vision: Optional[bool] = None
|
|
248
|
+
is_reasoning: Optional[bool] = None
|
|
249
|
+
context_window: Optional[int] = None
|
|
250
|
+
max_output_tokens: Optional[int] = None
|
|
251
|
+
modalities_input: tuple[str, ...] = ()
|
|
252
|
+
modalities_output: tuple[str, ...] = ()
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
def get_model_capabilities(provider: str, model_id: str) -> Optional[ModelCapabilities]:
|
|
256
|
+
"""Return capability metadata for a model, or ``None`` if unavailable.
|
|
257
|
+
|
|
258
|
+
Maps models.dev fields to a :class:`ModelCapabilities` instance:
|
|
259
|
+
|
|
260
|
+
- ``temperature`` → ``supports_temperature``
|
|
261
|
+
- ``tool_call`` → ``supports_tool_use``
|
|
262
|
+
- ``structured_output`` → ``supports_structured_output``
|
|
263
|
+
- ``"image" in modalities.input`` → ``supports_vision``
|
|
264
|
+
- ``reasoning`` → ``is_reasoning``
|
|
265
|
+
- ``limit.context`` → ``context_window``
|
|
266
|
+
- ``limit.output`` → ``max_output_tokens``
|
|
267
|
+
"""
|
|
268
|
+
entry = _lookup_model(provider, model_id)
|
|
269
|
+
if entry is None:
|
|
270
|
+
return None
|
|
271
|
+
|
|
272
|
+
# Boolean capabilities (True/False/None)
|
|
273
|
+
supports_temperature: Optional[bool] = None
|
|
274
|
+
if "temperature" in entry:
|
|
275
|
+
supports_temperature = bool(entry["temperature"])
|
|
276
|
+
|
|
277
|
+
supports_tool_use: Optional[bool] = None
|
|
278
|
+
if "tool_call" in entry:
|
|
279
|
+
supports_tool_use = bool(entry["tool_call"])
|
|
280
|
+
|
|
281
|
+
supports_structured_output: Optional[bool] = None
|
|
282
|
+
if "structured_output" in entry:
|
|
283
|
+
supports_structured_output = bool(entry["structured_output"])
|
|
284
|
+
|
|
285
|
+
is_reasoning: Optional[bool] = None
|
|
286
|
+
if "reasoning" in entry:
|
|
287
|
+
is_reasoning = bool(entry["reasoning"])
|
|
288
|
+
|
|
289
|
+
# Modalities
|
|
290
|
+
modalities = entry.get("modalities", {})
|
|
291
|
+
modalities_input: tuple[str, ...] = ()
|
|
292
|
+
modalities_output: tuple[str, ...] = ()
|
|
293
|
+
if isinstance(modalities, dict):
|
|
294
|
+
raw_in = modalities.get("input")
|
|
295
|
+
if isinstance(raw_in, (list, tuple)):
|
|
296
|
+
modalities_input = tuple(str(m) for m in raw_in)
|
|
297
|
+
raw_out = modalities.get("output")
|
|
298
|
+
if isinstance(raw_out, (list, tuple)):
|
|
299
|
+
modalities_output = tuple(str(m) for m in raw_out)
|
|
300
|
+
|
|
301
|
+
supports_vision: Optional[bool] = None
|
|
302
|
+
if modalities_input:
|
|
303
|
+
supports_vision = "image" in modalities_input
|
|
304
|
+
|
|
305
|
+
# Limits
|
|
306
|
+
context_window: Optional[int] = None
|
|
307
|
+
max_output_tokens: Optional[int] = None
|
|
308
|
+
limits = entry.get("limit", {})
|
|
309
|
+
if isinstance(limits, dict):
|
|
310
|
+
ctx = limits.get("context")
|
|
311
|
+
if ctx is not None:
|
|
312
|
+
with contextlib.suppress(TypeError, ValueError):
|
|
313
|
+
context_window = int(ctx)
|
|
314
|
+
out = limits.get("output")
|
|
315
|
+
if out is not None:
|
|
316
|
+
with contextlib.suppress(TypeError, ValueError):
|
|
317
|
+
max_output_tokens = int(out)
|
|
318
|
+
|
|
319
|
+
return ModelCapabilities(
|
|
320
|
+
supports_temperature=supports_temperature,
|
|
321
|
+
supports_tool_use=supports_tool_use,
|
|
322
|
+
supports_structured_output=supports_structured_output,
|
|
323
|
+
supports_vision=supports_vision,
|
|
324
|
+
is_reasoning=is_reasoning,
|
|
325
|
+
context_window=context_window,
|
|
326
|
+
max_output_tokens=max_output_tokens,
|
|
327
|
+
modalities_input=modalities_input,
|
|
328
|
+
modalities_output=modalities_output,
|
|
329
|
+
)
|
prompture/settings.py
CHANGED
|
@@ -45,12 +45,27 @@ class Settings(BaseSettings):
|
|
|
45
45
|
|
|
46
46
|
# OpenRouter
|
|
47
47
|
openrouter_api_key: Optional[str] = None
|
|
48
|
-
openrouter_model: str = "openai/gpt-
|
|
48
|
+
openrouter_model: str = "openai/gpt-4o-mini"
|
|
49
49
|
|
|
50
50
|
# Grok
|
|
51
51
|
grok_api_key: Optional[str] = None
|
|
52
52
|
grok_model: str = "grok-4-fast-reasoning"
|
|
53
53
|
|
|
54
|
+
# Moonshot AI (Kimi)
|
|
55
|
+
moonshot_api_key: Optional[str] = None
|
|
56
|
+
moonshot_model: str = "kimi-k2-0905-preview"
|
|
57
|
+
moonshot_endpoint: str = "https://api.moonshot.ai/v1"
|
|
58
|
+
|
|
59
|
+
# Z.ai (Zhipu AI)
|
|
60
|
+
zhipu_api_key: Optional[str] = None
|
|
61
|
+
zhipu_model: str = "glm-4.7"
|
|
62
|
+
zhipu_endpoint: str = "https://api.z.ai/api/paas/v4"
|
|
63
|
+
|
|
64
|
+
# ModelScope (Alibaba Cloud)
|
|
65
|
+
modelscope_api_key: Optional[str] = None
|
|
66
|
+
modelscope_model: str = "Qwen/Qwen3-235B-A22B-Instruct-2507"
|
|
67
|
+
modelscope_endpoint: str = "https://api-inference.modelscope.cn/v1"
|
|
68
|
+
|
|
54
69
|
# AirLLM
|
|
55
70
|
airllm_model: str = "meta-llama/Llama-2-7b-hf"
|
|
56
71
|
airllm_compression: Optional[str] = None # "4bit" or "8bit"
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
prompture/__init__.py,sha256=cJnkefDpiyFbU77juw4tXPdKJQWoJ-c6XBFt2v-e5Q4,7455
|
|
2
|
+
prompture/_version.py,sha256=f7OCYKa3JxU7ivIZuRhrUjsUfgAkieENmQhgCn-5SzY,706
|
|
3
|
+
prompture/agent.py,sha256=-8qdo_Lz20GGssCe5B_QPxb5Kct71YtKHh5vZgrSYik,34748
|
|
4
|
+
prompture/agent_types.py,sha256=Icl16PQI-ThGLMFCU43adtQA6cqETbsPn4KssKBI4xc,4664
|
|
5
|
+
prompture/async_agent.py,sha256=_6_IRb-LGzZxGxfPVy43SIWByUoQfN-5XnUWahVP6r8,33110
|
|
6
|
+
prompture/async_conversation.py,sha256=m9sdKBu1wxo5veGwO6g6Zvf1sBzpuxP-mSIEeNKlBjQ,31155
|
|
7
|
+
prompture/async_core.py,sha256=hbRXLvsBJv3JAnUwGZbazsL6x022FrsJU6swmZolgxY,29745
|
|
8
|
+
prompture/async_driver.py,sha256=4VQ9Q_tI6Ufw6W1CYJ5j8hVtgVdqFGuk6e2tLaSceWE,8581
|
|
9
|
+
prompture/async_groups.py,sha256=G7d9mM2A-glD6Qd7GjA1YOzxrMty3eX8EaWzFsaS39s,22261
|
|
10
|
+
prompture/cache.py,sha256=4dfQDMsEZ9JMQDXLOkiugPmmMJQIfKVE8rTAKDH4oL8,14401
|
|
11
|
+
prompture/callbacks.py,sha256=JPDqWGzPIzv44l54ocmezlYVBnbKPDEEXRrLdluWGAo,1731
|
|
12
|
+
prompture/cli.py,sha256=tNiIddRmgC1BomjY5O1VVVAwvqHVzF8IHmQrM-cG2wQ,2902
|
|
13
|
+
prompture/conversation.py,sha256=kBflwh7Qmw1I_jcUGyV36oskdVz4SYDSw_dCjemRRRc,32756
|
|
14
|
+
prompture/core.py,sha256=5FHwX7fNPwFHMbFCMvV-RH7LpPpTToLAmcyDnKbrN0E,57202
|
|
15
|
+
prompture/cost_mixin.py,sha256=Qx7gPgPsWgTHiaFeI7q_p9cfe95ccjgN8Mi56d_AVX0,4563
|
|
16
|
+
prompture/discovery.py,sha256=EWx2d-LJHmlDpm8dlpOicey6XZdDx70ZEetIlOOIlxw,9464
|
|
17
|
+
prompture/driver.py,sha256=wE7K3vnqeCVT5pEEBP-3uZ6e-YyU6TXtnEKRSB25eOc,10410
|
|
18
|
+
prompture/field_definitions.py,sha256=PLvxq2ot-ngJ8JbWkkZ-XLtM1wvjUQ3TL01vSEo-a6E,21368
|
|
19
|
+
prompture/group_types.py,sha256=BxeFV1tI4PTH3xPOie7q3-35ivkTdB9lJUPLH0kPH7A,4731
|
|
20
|
+
prompture/groups.py,sha256=9lMJBNOmlzRm2qmmwQLXAySsR4NF_oIUCBA6gbxr9cU,19927
|
|
21
|
+
prompture/image.py,sha256=3uBxC6blXRNyY5KAJ5MkG6ow8KGAslX8WxM8Is8S8cw,5620
|
|
22
|
+
prompture/ledger.py,sha256=2iXkd9PWiM9WpRCxvnHG1-nwh_IM4mCbxjF4LE92Gzs,8576
|
|
23
|
+
prompture/logging.py,sha256=SkFO26_56Zai05vW8kTq3jvJudfLG2ipI5qNHaXKH3g,2574
|
|
24
|
+
prompture/model_rates.py,sha256=4BgITASw9XX_kRHH420H3TRAZ6Ol-IiQnA12vAaoNOE,10530
|
|
25
|
+
prompture/persistence.py,sha256=stcsH9Onth3BlK0QTWDKtXFp3FBmwUS5PI5R1glsIQc,9293
|
|
26
|
+
prompture/persona.py,sha256=SpLW-XPdG0avvJx8uGqJvMRZy65OjzfmJck7qbd28gc,17526
|
|
27
|
+
prompture/runner.py,sha256=lHe2L2jqY1pDXoKNPJALN9lAm-Q8QOY8C8gw-vM9VrM,4213
|
|
28
|
+
prompture/serialization.py,sha256=m4cdAQJspitMcfwRgecElkY2SBt3BjEwubbhS3W-0s0,7433
|
|
29
|
+
prompture/server.py,sha256=W6Kn6Et8nG5twXjD2wKn_N9yplGjz5Z-2naeI_UPd1Y,6198
|
|
30
|
+
prompture/session.py,sha256=FldK3cKq_jO0-beukVOhIiwsYWb6U_lLBlAERx95aaM,3821
|
|
31
|
+
prompture/settings.py,sha256=2cTuko8PLhq0SbBMtqmjBgzl9jv6SgoXeaUEhmm4G4Y,2562
|
|
32
|
+
prompture/tools.py,sha256=PmFbGHTWYWahpJOG6BLlM0Y-EG6S37IFW57C-8GdsXo,36449
|
|
33
|
+
prompture/tools_schema.py,sha256=JVc0dxC4aIHIUlgE8yFCcn1gPzJ3unTMVmZ8Ec04aD0,7764
|
|
34
|
+
prompture/validator.py,sha256=FY_VjIVEbjG2nwzh-r6l23Kt3UzaLyCis8_pZMNGHBA,993
|
|
35
|
+
prompture/aio/__init__.py,sha256=bKqTu4Jxld16aP_7SP9wU5au45UBIb041ORo4E4HzVo,1810
|
|
36
|
+
prompture/drivers/__init__.py,sha256=r8wBYGKD7C7v4CqcyRNoaITzGVyxasoiAU6jBYsPZio,8178
|
|
37
|
+
prompture/drivers/airllm_driver.py,sha256=SaTh7e7Plvuct_TfRqQvsJsKHvvM_3iVqhBtlciM-Kw,3858
|
|
38
|
+
prompture/drivers/async_airllm_driver.py,sha256=1hIWLXfyyIg9tXaOE22tLJvFyNwHnOi1M5BIKnV8ysk,908
|
|
39
|
+
prompture/drivers/async_azure_driver.py,sha256=uXPMStCn5jMnLFpiLYBvTheZm2dNlwKmSLWL3J2s8es,4544
|
|
40
|
+
prompture/drivers/async_claude_driver.py,sha256=oawbFVVMtRlikQOmu3jRjbdpoeu95JqTF1YHLKO3ybE,10576
|
|
41
|
+
prompture/drivers/async_google_driver.py,sha256=LTUgCXJjzuTDGzsCsmY2-xH2KdTLJD7htwO49ZNFOdE,13711
|
|
42
|
+
prompture/drivers/async_grok_driver.py,sha256=s3bXEGhVrMyw10CowkBhs5522mhipWJyWWu-xVixzyg,3538
|
|
43
|
+
prompture/drivers/async_groq_driver.py,sha256=pjAh_bgZWSWaNSm5XrU-u3gRV6YSGwNG5NfAbkYeJ84,3067
|
|
44
|
+
prompture/drivers/async_hugging_driver.py,sha256=IblxqU6TpNUiigZ0BCgNkAgzpUr2FtPHJOZnOZMnHF0,2152
|
|
45
|
+
prompture/drivers/async_lmstudio_driver.py,sha256=rPn2qVPm6UE2APzAn7ZHYTELUwr0dQMi8XHv6gAhyH8,5782
|
|
46
|
+
prompture/drivers/async_local_http_driver.py,sha256=qoigIf-w3_c2dbVdM6m1e2RMAWP4Gk4VzVs5hM3lPvQ,1609
|
|
47
|
+
prompture/drivers/async_modelscope_driver.py,sha256=wzHYGLf9qE9KXRFZYtN1hZS10Bw1m1Wy6HcmyUD67HM,10170
|
|
48
|
+
prompture/drivers/async_moonshot_driver.py,sha256=ru6w64qz_w5o7edxtNLL7s0mqb95ahBfbCHgUIwHKtk,11186
|
|
49
|
+
prompture/drivers/async_ollama_driver.py,sha256=FaSXtFXrgeVHIe0b90Vg6rGeSTWLpPnjaThh9Ai7qQo,5042
|
|
50
|
+
prompture/drivers/async_openai_driver.py,sha256=COa_JE-AgKowKJpmRnfDJp4RSQKZel_7WswxOzvLksM,9044
|
|
51
|
+
prompture/drivers/async_openrouter_driver.py,sha256=GnOMY67CCV3HV83lCC-CxcngwrUnuc7G-AX7fb1DYpg,10698
|
|
52
|
+
prompture/drivers/async_registry.py,sha256=JFEnXNPm-8AAUCiNLoKuYBSCYEK-4BmAen5t55QrMvg,5223
|
|
53
|
+
prompture/drivers/async_zai_driver.py,sha256=zXHxske1CtK8dDTGY-D_kiyZZ_NfceNTJlyTpKn0R4c,10727
|
|
54
|
+
prompture/drivers/azure_driver.py,sha256=zwCRNJRm18XEfYeqpFCDLMEEyY0vIGdqrwKk9ng6s4s,5798
|
|
55
|
+
prompture/drivers/claude_driver.py,sha256=C8Av3DXP2x3f35jEv8BRwEM_4vh0cfmLsy3t5dsR6aM,11837
|
|
56
|
+
prompture/drivers/google_driver.py,sha256=Zck5VUsW37kDgohXz3cUWRmZ88OfhmTpVD-qzAVMp-8,16318
|
|
57
|
+
prompture/drivers/grok_driver.py,sha256=CzAXKAbbWmbE8qLFZxxoEhf4Qzbtc9YqDX7kkCsE4dk,5320
|
|
58
|
+
prompture/drivers/groq_driver.py,sha256=61LKHhYyRiFkHKbLKFYX10fqjpL_INtPY_Zeb55AV0o,4221
|
|
59
|
+
prompture/drivers/hugging_driver.py,sha256=gZir3XnM77VfYIdnu3S1pRftlZJM6G3L8bgGn5esg-Q,2346
|
|
60
|
+
prompture/drivers/lmstudio_driver.py,sha256=9ZnJ1l5LuWAjkH2WKfFjZprNMVIXoSC7qXDNDTxm-tA,6748
|
|
61
|
+
prompture/drivers/local_http_driver.py,sha256=QJgEf9kAmy8YZ5fb8FHnWuhoDoZYNd8at4jegzNVJH0,1658
|
|
62
|
+
prompture/drivers/modelscope_driver.py,sha256=yTxTG7j5f7zz4CjbrV8J0VKeoBmxv69F40bfp8nq6AE,10651
|
|
63
|
+
prompture/drivers/moonshot_driver.py,sha256=444Ie14OKN4sIo9XGNoaK-K1AQKGIb2un74uLi2v3f4,12171
|
|
64
|
+
prompture/drivers/ollama_driver.py,sha256=k9xeUwFp91OrDbjkbYI-F8CDFy5ew-zQ0btXqwbXXWM,10220
|
|
65
|
+
prompture/drivers/openai_driver.py,sha256=DqdMhxF8M2HdOY5vfsFrz0h23lqBoQlbxV3xUdHvZho,10548
|
|
66
|
+
prompture/drivers/openrouter_driver.py,sha256=DaG1H99s8GaOgJXZK4TP28HM7U4wiLu9wHXzWZleW_U,12589
|
|
67
|
+
prompture/drivers/registry.py,sha256=Dg_5w9alnIPKhOnsR9Xspuf5T7roBGu0r_L2Cf-UhXs,9926
|
|
68
|
+
prompture/drivers/vision_helpers.py,sha256=l5iYXHJLR_vLFvqDPPPK1QqK7YPKh5GwocpbSyt0R04,5403
|
|
69
|
+
prompture/drivers/zai_driver.py,sha256=Wkur0HfwKJt8ugYErpvz1Gy6e9an8vt4R7U3i6HWV_s,11038
|
|
70
|
+
prompture/scaffold/__init__.py,sha256=aitUxBV0MpjC7Od3iG8WUzcC7tGPXSt3oMzUBX8UDwQ,60
|
|
71
|
+
prompture/scaffold/generator.py,sha256=5QTHdWEXB7ADqOttfU7NgoxuaofNQnObzzI7NIPWFgo,2387
|
|
72
|
+
prompture/scaffold/templates/Dockerfile.j2,sha256=ukox6eVzQMVw-hAaFmNRL5HTrXw2Z0RB6g-vvbMVeu8,207
|
|
73
|
+
prompture/scaffold/templates/README.md.j2,sha256=xFgKnEP_JmLiiwD1QahNWdyKC85smyhOiIBCmN2U3y0,935
|
|
74
|
+
prompture/scaffold/templates/config.py.j2,sha256=q1LOnLlGzgJHPQz5geZ2AvrB-DskkLzay_CSj26hthE,529
|
|
75
|
+
prompture/scaffold/templates/env.example.j2,sha256=eESKr1KWgyrczO6d-nwAhQwSpf_G-T6P9gmHMhR9Sqc,246
|
|
76
|
+
prompture/scaffold/templates/main.py.j2,sha256=TEgc5OvsZOEX0JthkSW1NI_yLwgoeVN_x97Ibg-vyWY,2632
|
|
77
|
+
prompture/scaffold/templates/models.py.j2,sha256=JrZ99GCVK6TKWapskVRSwCssGrTu5cGZ_r46fOhY2GE,858
|
|
78
|
+
prompture/scaffold/templates/requirements.txt.j2,sha256=m3S5fi1hq9KG9l_9j317rjwWww0a43WMKd8VnUWv2A4,102
|
|
79
|
+
prompture-0.0.42.dist-info/licenses/LICENSE,sha256=0HgDepH7aaHNFhHF-iXuW6_GqDfYPnVkjtiCAZ4yS8I,1060
|
|
80
|
+
prompture-0.0.42.dist-info/METADATA,sha256=KCf2bnowZrWHiLsek-_kCkzO71vAqGZPQIjxAFaUef4,10837
|
|
81
|
+
prompture-0.0.42.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
82
|
+
prompture-0.0.42.dist-info/entry_points.txt,sha256=AFPG3lJR86g4IJMoWQUW5Ph7G6MLNWG3A2u2Tp9zkp8,48
|
|
83
|
+
prompture-0.0.42.dist-info/top_level.txt,sha256=to86zq_kjfdoLeAxQNr420UWqT0WzkKoZ509J7Qr2t4,10
|
|
84
|
+
prompture-0.0.42.dist-info/RECORD,,
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
prompture/__init__.py,sha256=RrpHZlLPpzntUOp2tL2II2DdVxQRoCxY6JBF_b4k3s0,7213
|
|
2
|
-
prompture/_version.py,sha256=bWLaHigPR3CFjLRNxPpiOJ7bfcPJjU-AII8xRG2CiZQ,719
|
|
3
|
-
prompture/agent.py,sha256=xe_yFHGDzTxaU4tmaLt5AQnzrN0I72hBGwGVrCxg2D0,34704
|
|
4
|
-
prompture/agent_types.py,sha256=Icl16PQI-ThGLMFCU43adtQA6cqETbsPn4KssKBI4xc,4664
|
|
5
|
-
prompture/async_agent.py,sha256=nOLOQCNkg0sKKTpryIiidmIcAAlA3FR2NfnZwrNBuCg,33066
|
|
6
|
-
prompture/async_conversation.py,sha256=7NOkXdT5LnUNPVzTammtHeiOV2vB6IfZGuysbtNfcHQ,30861
|
|
7
|
-
prompture/async_core.py,sha256=s8G0nGUGR1Bf_BQG9_FcQRpveSnJKkEwcWNfbAJaSkg,29208
|
|
8
|
-
prompture/async_driver.py,sha256=99WZNlfEpPH9kVykRH6Qa2ZooeVw6pXa23_UUQj0Tag,7179
|
|
9
|
-
prompture/async_groups.py,sha256=8B383EF_qI9NzcG9zljLKjIZ_37bpNivvsmfJQoOGRk,19894
|
|
10
|
-
prompture/cache.py,sha256=4dfQDMsEZ9JMQDXLOkiugPmmMJQIfKVE8rTAKDH4oL8,14401
|
|
11
|
-
prompture/callbacks.py,sha256=JPDqWGzPIzv44l54ocmezlYVBnbKPDEEXRrLdluWGAo,1731
|
|
12
|
-
prompture/cli.py,sha256=tNiIddRmgC1BomjY5O1VVVAwvqHVzF8IHmQrM-cG2wQ,2902
|
|
13
|
-
prompture/conversation.py,sha256=jPwp5m5ZYqLHvD3zYVWJEnegnGPgexVZanZeGVOWrjE,32462
|
|
14
|
-
prompture/core.py,sha256=ZCKhqXI7msI-r4zy_Y_Lx8Sz--OJ6qb4b6jchdb5Boo,56671
|
|
15
|
-
prompture/cost_mixin.py,sha256=_spz84i8Qsplh6V3GkWyXXSUE4EwGy2IsbcsU2LEBxs,1918
|
|
16
|
-
prompture/discovery.py,sha256=T0GbiTSrCnvAEMzQiLj6ZI-sYBOQgcnLtwtlLSkIb3Q,8228
|
|
17
|
-
prompture/driver.py,sha256=2yVGw8vE5xko7HQlP6HfJKFyJLfc8cffdXwmdp5o3Uo,9008
|
|
18
|
-
prompture/field_definitions.py,sha256=PLvxq2ot-ngJ8JbWkkZ-XLtM1wvjUQ3TL01vSEo-a6E,21368
|
|
19
|
-
prompture/group_types.py,sha256=BxeFV1tI4PTH3xPOie7q3-35ivkTdB9lJUPLH0kPH7A,4731
|
|
20
|
-
prompture/groups.py,sha256=q9lpD57VWw6iQgK9S0nLVidItJZmusJkmpblM4EX9Sc,18349
|
|
21
|
-
prompture/image.py,sha256=3uBxC6blXRNyY5KAJ5MkG6ow8KGAslX8WxM8Is8S8cw,5620
|
|
22
|
-
prompture/logging.py,sha256=SkFO26_56Zai05vW8kTq3jvJudfLG2ipI5qNHaXKH3g,2574
|
|
23
|
-
prompture/model_rates.py,sha256=qtZUjsCVskA9LyG73JklG_kjKJHABA6ldBmBX0UzlSQ,6415
|
|
24
|
-
prompture/persistence.py,sha256=stcsH9Onth3BlK0QTWDKtXFp3FBmwUS5PI5R1glsIQc,9293
|
|
25
|
-
prompture/persona.py,sha256=SpLW-XPdG0avvJx8uGqJvMRZy65OjzfmJck7qbd28gc,17526
|
|
26
|
-
prompture/runner.py,sha256=lHe2L2jqY1pDXoKNPJALN9lAm-Q8QOY8C8gw-vM9VrM,4213
|
|
27
|
-
prompture/serialization.py,sha256=m4cdAQJspitMcfwRgecElkY2SBt3BjEwubbhS3W-0s0,7433
|
|
28
|
-
prompture/server.py,sha256=W6Kn6Et8nG5twXjD2wKn_N9yplGjz5Z-2naeI_UPd1Y,6198
|
|
29
|
-
prompture/session.py,sha256=FldK3cKq_jO0-beukVOhIiwsYWb6U_lLBlAERx95aaM,3821
|
|
30
|
-
prompture/settings.py,sha256=ADtYS8N5XYILI4TXrYTDOQo3pkDNSEVgn9ab4oMHkO4,2019
|
|
31
|
-
prompture/tools.py,sha256=PmFbGHTWYWahpJOG6BLlM0Y-EG6S37IFW57C-8GdsXo,36449
|
|
32
|
-
prompture/tools_schema.py,sha256=JVc0dxC4aIHIUlgE8yFCcn1gPzJ3unTMVmZ8Ec04aD0,7764
|
|
33
|
-
prompture/validator.py,sha256=FY_VjIVEbjG2nwzh-r6l23Kt3UzaLyCis8_pZMNGHBA,993
|
|
34
|
-
prompture/aio/__init__.py,sha256=bKqTu4Jxld16aP_7SP9wU5au45UBIb041ORo4E4HzVo,1810
|
|
35
|
-
prompture/drivers/__init__.py,sha256=VuEBZPqaQzXLl_Lvn_c5mRlJJrrlObZCLeHaR8n2eJ4,7050
|
|
36
|
-
prompture/drivers/airllm_driver.py,sha256=SaTh7e7Plvuct_TfRqQvsJsKHvvM_3iVqhBtlciM-Kw,3858
|
|
37
|
-
prompture/drivers/async_airllm_driver.py,sha256=1hIWLXfyyIg9tXaOE22tLJvFyNwHnOi1M5BIKnV8ysk,908
|
|
38
|
-
prompture/drivers/async_azure_driver.py,sha256=Rqq_5Utgr-lvxMHwlU0B5lwCTtqDhuUW212G9k8P0fQ,4463
|
|
39
|
-
prompture/drivers/async_claude_driver.py,sha256=yB5QLbXD7Uqs4j45yulj73QSJJx1-IyIo84YGA1xjkw,4092
|
|
40
|
-
prompture/drivers/async_google_driver.py,sha256=MIemYcE0ppSWfvVaxv4V-Tqjmy6BKO7sRG6UfZqtdV8,13349
|
|
41
|
-
prompture/drivers/async_grok_driver.py,sha256=bblcUY5c5NJ_IeuFQ-jHRapGi_WywVgH6SSWWWbUMzo,3546
|
|
42
|
-
prompture/drivers/async_groq_driver.py,sha256=gHvVe4M5VaRcyvonK9FQMLmCuL7i7HV9hwWcRgASUSg,3075
|
|
43
|
-
prompture/drivers/async_hugging_driver.py,sha256=IblxqU6TpNUiigZ0BCgNkAgzpUr2FtPHJOZnOZMnHF0,2152
|
|
44
|
-
prompture/drivers/async_lmstudio_driver.py,sha256=rPn2qVPm6UE2APzAn7ZHYTELUwr0dQMi8XHv6gAhyH8,5782
|
|
45
|
-
prompture/drivers/async_local_http_driver.py,sha256=qoigIf-w3_c2dbVdM6m1e2RMAWP4Gk4VzVs5hM3lPvQ,1609
|
|
46
|
-
prompture/drivers/async_ollama_driver.py,sha256=FaSXtFXrgeVHIe0b90Vg6rGeSTWLpPnjaThh9Ai7qQo,5042
|
|
47
|
-
prompture/drivers/async_openai_driver.py,sha256=eLdVYQ8BUErQzVr4Ek1BZ75riMbHMz3ZPm6VQSTNFxk,3572
|
|
48
|
-
prompture/drivers/async_openrouter_driver.py,sha256=VcSYOeBhbzRbzorYh_7K58yWCXB4UO0d6MmpBLf-7lQ,3783
|
|
49
|
-
prompture/drivers/async_registry.py,sha256=syervbb7THneJ-NUVSuxy4cnxGW6VuNzKv-Aqqn2ysU,4329
|
|
50
|
-
prompture/drivers/azure_driver.py,sha256=QZr7HEvgSKT9LOTCtCjuBdHl57yvrnWmeTHtmewuJQY,5727
|
|
51
|
-
prompture/drivers/claude_driver.py,sha256=8XnCBHtk6N_PzHStwxIUlcvekdPN896BqOLShmgxU9k,11536
|
|
52
|
-
prompture/drivers/google_driver.py,sha256=8bnAcve1xtgpUXrCdVzWpU_yAqwaeuiBWk8-PbG1cmM,15956
|
|
53
|
-
prompture/drivers/grok_driver.py,sha256=AIwuzNAQyOhmVDA07ISWt2e-rsv5aYk3I5AM4HkLM7o,5294
|
|
54
|
-
prompture/drivers/groq_driver.py,sha256=9cZI21RsgYJTjnrtX2fVA0AadDL-VklhY4ugjDCutwM,4195
|
|
55
|
-
prompture/drivers/hugging_driver.py,sha256=gZir3XnM77VfYIdnu3S1pRftlZJM6G3L8bgGn5esg-Q,2346
|
|
56
|
-
prompture/drivers/lmstudio_driver.py,sha256=9ZnJ1l5LuWAjkH2WKfFjZprNMVIXoSC7qXDNDTxm-tA,6748
|
|
57
|
-
prompture/drivers/local_http_driver.py,sha256=QJgEf9kAmy8YZ5fb8FHnWuhoDoZYNd8at4jegzNVJH0,1658
|
|
58
|
-
prompture/drivers/ollama_driver.py,sha256=k9xeUwFp91OrDbjkbYI-F8CDFy5ew-zQ0btXqwbXXWM,10220
|
|
59
|
-
prompture/drivers/openai_driver.py,sha256=BykJ3Z16BaWREVnAGaTYFwK2ZCI2aGOjo2YdsR8m_6w,10164
|
|
60
|
-
prompture/drivers/openrouter_driver.py,sha256=OAVmvCQ1ZW1ApJHsXJa8i1Dst9EUsZAt6uEDqF9aIQw,5408
|
|
61
|
-
prompture/drivers/registry.py,sha256=Dg_5w9alnIPKhOnsR9Xspuf5T7roBGu0r_L2Cf-UhXs,9926
|
|
62
|
-
prompture/drivers/vision_helpers.py,sha256=l5iYXHJLR_vLFvqDPPPK1QqK7YPKh5GwocpbSyt0R04,5403
|
|
63
|
-
prompture/scaffold/__init__.py,sha256=aitUxBV0MpjC7Od3iG8WUzcC7tGPXSt3oMzUBX8UDwQ,60
|
|
64
|
-
prompture/scaffold/generator.py,sha256=5QTHdWEXB7ADqOttfU7NgoxuaofNQnObzzI7NIPWFgo,2387
|
|
65
|
-
prompture/scaffold/templates/Dockerfile.j2,sha256=ukox6eVzQMVw-hAaFmNRL5HTrXw2Z0RB6g-vvbMVeu8,207
|
|
66
|
-
prompture/scaffold/templates/README.md.j2,sha256=xFgKnEP_JmLiiwD1QahNWdyKC85smyhOiIBCmN2U3y0,935
|
|
67
|
-
prompture/scaffold/templates/config.py.j2,sha256=q1LOnLlGzgJHPQz5geZ2AvrB-DskkLzay_CSj26hthE,529
|
|
68
|
-
prompture/scaffold/templates/env.example.j2,sha256=eESKr1KWgyrczO6d-nwAhQwSpf_G-T6P9gmHMhR9Sqc,246
|
|
69
|
-
prompture/scaffold/templates/main.py.j2,sha256=TEgc5OvsZOEX0JthkSW1NI_yLwgoeVN_x97Ibg-vyWY,2632
|
|
70
|
-
prompture/scaffold/templates/models.py.j2,sha256=JrZ99GCVK6TKWapskVRSwCssGrTu5cGZ_r46fOhY2GE,858
|
|
71
|
-
prompture/scaffold/templates/requirements.txt.j2,sha256=m3S5fi1hq9KG9l_9j317rjwWww0a43WMKd8VnUWv2A4,102
|
|
72
|
-
prompture-0.0.38.dev2.dist-info/licenses/LICENSE,sha256=0HgDepH7aaHNFhHF-iXuW6_GqDfYPnVkjtiCAZ4yS8I,1060
|
|
73
|
-
prompture-0.0.38.dev2.dist-info/METADATA,sha256=i1eCc1nlA9if0421sJ044TcnFKcmOi3GAcBb2HuKZMc,10842
|
|
74
|
-
prompture-0.0.38.dev2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
75
|
-
prompture-0.0.38.dev2.dist-info/entry_points.txt,sha256=AFPG3lJR86g4IJMoWQUW5Ph7G6MLNWG3A2u2Tp9zkp8,48
|
|
76
|
-
prompture-0.0.38.dev2.dist-info/top_level.txt,sha256=to86zq_kjfdoLeAxQNr420UWqT0WzkKoZ509J7Qr2t4,10
|
|
77
|
-
prompture-0.0.38.dev2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|