prompture 0.0.40.dev1__py3-none-any.whl → 0.0.43.dev1__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/_version.py +2 -2
- prompture/agent.py +11 -11
- prompture/async_agent.py +11 -11
- prompture/async_groups.py +63 -0
- prompture/cost_mixin.py +25 -0
- prompture/discovery.py +20 -0
- prompture/drivers/__init__.py +39 -0
- prompture/drivers/async_azure_driver.py +3 -2
- prompture/drivers/async_modelscope_driver.py +286 -0
- prompture/drivers/async_moonshot_driver.py +312 -0
- prompture/drivers/async_openai_driver.py +3 -2
- prompture/drivers/async_openrouter_driver.py +192 -3
- prompture/drivers/async_registry.py +30 -0
- prompture/drivers/async_zai_driver.py +303 -0
- prompture/drivers/azure_driver.py +3 -2
- prompture/drivers/modelscope_driver.py +303 -0
- prompture/drivers/moonshot_driver.py +342 -0
- prompture/drivers/openai_driver.py +3 -2
- prompture/drivers/openrouter_driver.py +244 -40
- prompture/drivers/zai_driver.py +318 -0
- prompture/groups.py +42 -0
- prompture/model_rates.py +2 -0
- prompture/settings.py +16 -1
- {prompture-0.0.40.dev1.dist-info → prompture-0.0.43.dev1.dist-info}/METADATA +1 -1
- {prompture-0.0.40.dev1.dist-info → prompture-0.0.43.dev1.dist-info}/RECORD +29 -23
- {prompture-0.0.40.dev1.dist-info → prompture-0.0.43.dev1.dist-info}/WHEEL +0 -0
- {prompture-0.0.40.dev1.dist-info → prompture-0.0.43.dev1.dist-info}/entry_points.txt +0 -0
- {prompture-0.0.40.dev1.dist-info → prompture-0.0.43.dev1.dist-info}/licenses/LICENSE +0 -0
- {prompture-0.0.40.dev1.dist-info → prompture-0.0.43.dev1.dist-info}/top_level.txt +0 -0
prompture/groups.py
CHANGED
|
@@ -114,6 +114,27 @@ class SequentialGroup:
|
|
|
114
114
|
"""Request graceful shutdown after the current agent finishes."""
|
|
115
115
|
self._stop_requested = True
|
|
116
116
|
|
|
117
|
+
@property
|
|
118
|
+
def shared_state(self) -> dict[str, Any]:
|
|
119
|
+
"""Return a copy of the current shared execution state."""
|
|
120
|
+
return dict(self._state)
|
|
121
|
+
|
|
122
|
+
def inject_state(self, state: dict[str, Any], *, recursive: bool = False) -> None:
|
|
123
|
+
"""Merge external key-value pairs into this group's shared state.
|
|
124
|
+
|
|
125
|
+
Existing keys are NOT overwritten (uses setdefault semantics).
|
|
126
|
+
|
|
127
|
+
Args:
|
|
128
|
+
state: Key-value pairs to inject.
|
|
129
|
+
recursive: If True, also inject into nested sub-groups.
|
|
130
|
+
"""
|
|
131
|
+
for k, v in state.items():
|
|
132
|
+
self._state.setdefault(k, v)
|
|
133
|
+
if recursive:
|
|
134
|
+
for agent, _ in self._agents:
|
|
135
|
+
if hasattr(agent, "inject_state"):
|
|
136
|
+
agent.inject_state(state, recursive=True)
|
|
137
|
+
|
|
117
138
|
def save(self, path: str) -> None:
|
|
118
139
|
"""Run and save result to file. Convenience wrapper."""
|
|
119
140
|
result = self.run()
|
|
@@ -267,6 +288,27 @@ class LoopGroup:
|
|
|
267
288
|
"""Request graceful shutdown."""
|
|
268
289
|
self._stop_requested = True
|
|
269
290
|
|
|
291
|
+
@property
|
|
292
|
+
def shared_state(self) -> dict[str, Any]:
|
|
293
|
+
"""Return a copy of the current shared execution state."""
|
|
294
|
+
return dict(self._state)
|
|
295
|
+
|
|
296
|
+
def inject_state(self, state: dict[str, Any], *, recursive: bool = False) -> None:
|
|
297
|
+
"""Merge external key-value pairs into this group's shared state.
|
|
298
|
+
|
|
299
|
+
Existing keys are NOT overwritten (uses setdefault semantics).
|
|
300
|
+
|
|
301
|
+
Args:
|
|
302
|
+
state: Key-value pairs to inject.
|
|
303
|
+
recursive: If True, also inject into nested sub-groups.
|
|
304
|
+
"""
|
|
305
|
+
for k, v in state.items():
|
|
306
|
+
self._state.setdefault(k, v)
|
|
307
|
+
if recursive:
|
|
308
|
+
for agent, _ in self._agents:
|
|
309
|
+
if hasattr(agent, "inject_state"):
|
|
310
|
+
agent.inject_state(state, recursive=True)
|
|
311
|
+
|
|
270
312
|
def run(self, prompt: str = "") -> GroupResult:
|
|
271
313
|
"""Execute the loop."""
|
|
272
314
|
self._stop_requested = False
|
prompture/model_rates.py
CHANGED
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"
|
|
@@ -1,42 +1,42 @@
|
|
|
1
1
|
prompture/__init__.py,sha256=cJnkefDpiyFbU77juw4tXPdKJQWoJ-c6XBFt2v-e5Q4,7455
|
|
2
|
-
prompture/_version.py,sha256=
|
|
3
|
-
prompture/agent.py,sha256
|
|
2
|
+
prompture/_version.py,sha256=sIK5v7LGoGbel1heQW-Ny-li2gI9AeVYp1F5Mx7lFwM,719
|
|
3
|
+
prompture/agent.py,sha256=-8qdo_Lz20GGssCe5B_QPxb5Kct71YtKHh5vZgrSYik,34748
|
|
4
4
|
prompture/agent_types.py,sha256=Icl16PQI-ThGLMFCU43adtQA6cqETbsPn4KssKBI4xc,4664
|
|
5
|
-
prompture/async_agent.py,sha256=
|
|
5
|
+
prompture/async_agent.py,sha256=_6_IRb-LGzZxGxfPVy43SIWByUoQfN-5XnUWahVP6r8,33110
|
|
6
6
|
prompture/async_conversation.py,sha256=m9sdKBu1wxo5veGwO6g6Zvf1sBzpuxP-mSIEeNKlBjQ,31155
|
|
7
7
|
prompture/async_core.py,sha256=hbRXLvsBJv3JAnUwGZbazsL6x022FrsJU6swmZolgxY,29745
|
|
8
8
|
prompture/async_driver.py,sha256=4VQ9Q_tI6Ufw6W1CYJ5j8hVtgVdqFGuk6e2tLaSceWE,8581
|
|
9
|
-
prompture/async_groups.py,sha256=
|
|
9
|
+
prompture/async_groups.py,sha256=G7d9mM2A-glD6Qd7GjA1YOzxrMty3eX8EaWzFsaS39s,22261
|
|
10
10
|
prompture/cache.py,sha256=4dfQDMsEZ9JMQDXLOkiugPmmMJQIfKVE8rTAKDH4oL8,14401
|
|
11
11
|
prompture/callbacks.py,sha256=JPDqWGzPIzv44l54ocmezlYVBnbKPDEEXRrLdluWGAo,1731
|
|
12
12
|
prompture/cli.py,sha256=tNiIddRmgC1BomjY5O1VVVAwvqHVzF8IHmQrM-cG2wQ,2902
|
|
13
13
|
prompture/conversation.py,sha256=kBflwh7Qmw1I_jcUGyV36oskdVz4SYDSw_dCjemRRRc,32756
|
|
14
14
|
prompture/core.py,sha256=5FHwX7fNPwFHMbFCMvV-RH7LpPpTToLAmcyDnKbrN0E,57202
|
|
15
|
-
prompture/cost_mixin.py,sha256=
|
|
16
|
-
prompture/discovery.py,sha256=
|
|
15
|
+
prompture/cost_mixin.py,sha256=Qx7gPgPsWgTHiaFeI7q_p9cfe95ccjgN8Mi56d_AVX0,4563
|
|
16
|
+
prompture/discovery.py,sha256=K-svbO-qJraHinCbFVS64vEo5McWX5pURv26ZMmuL6U,10295
|
|
17
17
|
prompture/driver.py,sha256=wE7K3vnqeCVT5pEEBP-3uZ6e-YyU6TXtnEKRSB25eOc,10410
|
|
18
18
|
prompture/field_definitions.py,sha256=PLvxq2ot-ngJ8JbWkkZ-XLtM1wvjUQ3TL01vSEo-a6E,21368
|
|
19
19
|
prompture/group_types.py,sha256=BxeFV1tI4PTH3xPOie7q3-35ivkTdB9lJUPLH0kPH7A,4731
|
|
20
|
-
prompture/groups.py,sha256=
|
|
20
|
+
prompture/groups.py,sha256=9lMJBNOmlzRm2qmmwQLXAySsR4NF_oIUCBA6gbxr9cU,19927
|
|
21
21
|
prompture/image.py,sha256=3uBxC6blXRNyY5KAJ5MkG6ow8KGAslX8WxM8Is8S8cw,5620
|
|
22
22
|
prompture/ledger.py,sha256=2iXkd9PWiM9WpRCxvnHG1-nwh_IM4mCbxjF4LE92Gzs,8576
|
|
23
23
|
prompture/logging.py,sha256=SkFO26_56Zai05vW8kTq3jvJudfLG2ipI5qNHaXKH3g,2574
|
|
24
|
-
prompture/model_rates.py,sha256=
|
|
24
|
+
prompture/model_rates.py,sha256=4BgITASw9XX_kRHH420H3TRAZ6Ol-IiQnA12vAaoNOE,10530
|
|
25
25
|
prompture/persistence.py,sha256=stcsH9Onth3BlK0QTWDKtXFp3FBmwUS5PI5R1glsIQc,9293
|
|
26
26
|
prompture/persona.py,sha256=SpLW-XPdG0avvJx8uGqJvMRZy65OjzfmJck7qbd28gc,17526
|
|
27
27
|
prompture/runner.py,sha256=lHe2L2jqY1pDXoKNPJALN9lAm-Q8QOY8C8gw-vM9VrM,4213
|
|
28
28
|
prompture/serialization.py,sha256=m4cdAQJspitMcfwRgecElkY2SBt3BjEwubbhS3W-0s0,7433
|
|
29
29
|
prompture/server.py,sha256=W6Kn6Et8nG5twXjD2wKn_N9yplGjz5Z-2naeI_UPd1Y,6198
|
|
30
30
|
prompture/session.py,sha256=FldK3cKq_jO0-beukVOhIiwsYWb6U_lLBlAERx95aaM,3821
|
|
31
|
-
prompture/settings.py,sha256=
|
|
31
|
+
prompture/settings.py,sha256=2cTuko8PLhq0SbBMtqmjBgzl9jv6SgoXeaUEhmm4G4Y,2562
|
|
32
32
|
prompture/tools.py,sha256=PmFbGHTWYWahpJOG6BLlM0Y-EG6S37IFW57C-8GdsXo,36449
|
|
33
33
|
prompture/tools_schema.py,sha256=JVc0dxC4aIHIUlgE8yFCcn1gPzJ3unTMVmZ8Ec04aD0,7764
|
|
34
34
|
prompture/validator.py,sha256=FY_VjIVEbjG2nwzh-r6l23Kt3UzaLyCis8_pZMNGHBA,993
|
|
35
35
|
prompture/aio/__init__.py,sha256=bKqTu4Jxld16aP_7SP9wU5au45UBIb041ORo4E4HzVo,1810
|
|
36
|
-
prompture/drivers/__init__.py,sha256=
|
|
36
|
+
prompture/drivers/__init__.py,sha256=r8wBYGKD7C7v4CqcyRNoaITzGVyxasoiAU6jBYsPZio,8178
|
|
37
37
|
prompture/drivers/airllm_driver.py,sha256=SaTh7e7Plvuct_TfRqQvsJsKHvvM_3iVqhBtlciM-Kw,3858
|
|
38
38
|
prompture/drivers/async_airllm_driver.py,sha256=1hIWLXfyyIg9tXaOE22tLJvFyNwHnOi1M5BIKnV8ysk,908
|
|
39
|
-
prompture/drivers/async_azure_driver.py,sha256=
|
|
39
|
+
prompture/drivers/async_azure_driver.py,sha256=uXPMStCn5jMnLFpiLYBvTheZm2dNlwKmSLWL3J2s8es,4544
|
|
40
40
|
prompture/drivers/async_claude_driver.py,sha256=oawbFVVMtRlikQOmu3jRjbdpoeu95JqTF1YHLKO3ybE,10576
|
|
41
41
|
prompture/drivers/async_google_driver.py,sha256=LTUgCXJjzuTDGzsCsmY2-xH2KdTLJD7htwO49ZNFOdE,13711
|
|
42
42
|
prompture/drivers/async_grok_driver.py,sha256=s3bXEGhVrMyw10CowkBhs5522mhipWJyWWu-xVixzyg,3538
|
|
@@ -44,11 +44,14 @@ prompture/drivers/async_groq_driver.py,sha256=pjAh_bgZWSWaNSm5XrU-u3gRV6YSGwNG5N
|
|
|
44
44
|
prompture/drivers/async_hugging_driver.py,sha256=IblxqU6TpNUiigZ0BCgNkAgzpUr2FtPHJOZnOZMnHF0,2152
|
|
45
45
|
prompture/drivers/async_lmstudio_driver.py,sha256=rPn2qVPm6UE2APzAn7ZHYTELUwr0dQMi8XHv6gAhyH8,5782
|
|
46
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
|
|
47
49
|
prompture/drivers/async_ollama_driver.py,sha256=FaSXtFXrgeVHIe0b90Vg6rGeSTWLpPnjaThh9Ai7qQo,5042
|
|
48
|
-
prompture/drivers/async_openai_driver.py,sha256=
|
|
49
|
-
prompture/drivers/async_openrouter_driver.py,sha256=
|
|
50
|
-
prompture/drivers/async_registry.py,sha256=
|
|
51
|
-
prompture/drivers/
|
|
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
|
|
52
55
|
prompture/drivers/claude_driver.py,sha256=C8Av3DXP2x3f35jEv8BRwEM_4vh0cfmLsy3t5dsR6aM,11837
|
|
53
56
|
prompture/drivers/google_driver.py,sha256=Zck5VUsW37kDgohXz3cUWRmZ88OfhmTpVD-qzAVMp-8,16318
|
|
54
57
|
prompture/drivers/grok_driver.py,sha256=CzAXKAbbWmbE8qLFZxxoEhf4Qzbtc9YqDX7kkCsE4dk,5320
|
|
@@ -56,11 +59,14 @@ prompture/drivers/groq_driver.py,sha256=61LKHhYyRiFkHKbLKFYX10fqjpL_INtPY_Zeb55A
|
|
|
56
59
|
prompture/drivers/hugging_driver.py,sha256=gZir3XnM77VfYIdnu3S1pRftlZJM6G3L8bgGn5esg-Q,2346
|
|
57
60
|
prompture/drivers/lmstudio_driver.py,sha256=9ZnJ1l5LuWAjkH2WKfFjZprNMVIXoSC7qXDNDTxm-tA,6748
|
|
58
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
|
|
59
64
|
prompture/drivers/ollama_driver.py,sha256=k9xeUwFp91OrDbjkbYI-F8CDFy5ew-zQ0btXqwbXXWM,10220
|
|
60
|
-
prompture/drivers/openai_driver.py,sha256=
|
|
61
|
-
prompture/drivers/openrouter_driver.py,sha256=
|
|
65
|
+
prompture/drivers/openai_driver.py,sha256=DqdMhxF8M2HdOY5vfsFrz0h23lqBoQlbxV3xUdHvZho,10548
|
|
66
|
+
prompture/drivers/openrouter_driver.py,sha256=DaG1H99s8GaOgJXZK4TP28HM7U4wiLu9wHXzWZleW_U,12589
|
|
62
67
|
prompture/drivers/registry.py,sha256=Dg_5w9alnIPKhOnsR9Xspuf5T7roBGu0r_L2Cf-UhXs,9926
|
|
63
68
|
prompture/drivers/vision_helpers.py,sha256=l5iYXHJLR_vLFvqDPPPK1QqK7YPKh5GwocpbSyt0R04,5403
|
|
69
|
+
prompture/drivers/zai_driver.py,sha256=Wkur0HfwKJt8ugYErpvz1Gy6e9an8vt4R7U3i6HWV_s,11038
|
|
64
70
|
prompture/scaffold/__init__.py,sha256=aitUxBV0MpjC7Od3iG8WUzcC7tGPXSt3oMzUBX8UDwQ,60
|
|
65
71
|
prompture/scaffold/generator.py,sha256=5QTHdWEXB7ADqOttfU7NgoxuaofNQnObzzI7NIPWFgo,2387
|
|
66
72
|
prompture/scaffold/templates/Dockerfile.j2,sha256=ukox6eVzQMVw-hAaFmNRL5HTrXw2Z0RB6g-vvbMVeu8,207
|
|
@@ -70,9 +76,9 @@ prompture/scaffold/templates/env.example.j2,sha256=eESKr1KWgyrczO6d-nwAhQwSpf_G-
|
|
|
70
76
|
prompture/scaffold/templates/main.py.j2,sha256=TEgc5OvsZOEX0JthkSW1NI_yLwgoeVN_x97Ibg-vyWY,2632
|
|
71
77
|
prompture/scaffold/templates/models.py.j2,sha256=JrZ99GCVK6TKWapskVRSwCssGrTu5cGZ_r46fOhY2GE,858
|
|
72
78
|
prompture/scaffold/templates/requirements.txt.j2,sha256=m3S5fi1hq9KG9l_9j317rjwWww0a43WMKd8VnUWv2A4,102
|
|
73
|
-
prompture-0.0.
|
|
74
|
-
prompture-0.0.
|
|
75
|
-
prompture-0.0.
|
|
76
|
-
prompture-0.0.
|
|
77
|
-
prompture-0.0.
|
|
78
|
-
prompture-0.0.
|
|
79
|
+
prompture-0.0.43.dev1.dist-info/licenses/LICENSE,sha256=0HgDepH7aaHNFhHF-iXuW6_GqDfYPnVkjtiCAZ4yS8I,1060
|
|
80
|
+
prompture-0.0.43.dev1.dist-info/METADATA,sha256=IZFQOvGyIzqTpAN1WwXuTMQ82NNfrNT_aDccBs1aTFE,10842
|
|
81
|
+
prompture-0.0.43.dev1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
82
|
+
prompture-0.0.43.dev1.dist-info/entry_points.txt,sha256=AFPG3lJR86g4IJMoWQUW5Ph7G6MLNWG3A2u2Tp9zkp8,48
|
|
83
|
+
prompture-0.0.43.dev1.dist-info/top_level.txt,sha256=to86zq_kjfdoLeAxQNr420UWqT0WzkKoZ509J7Qr2t4,10
|
|
84
|
+
prompture-0.0.43.dev1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|