agent-cli 0.72.6__py3-none-any.whl → 0.73.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.
- agent_cli/_extras.json +4 -2
- agent_cli/_requirements/memory.txt +51 -7
- agent_cli/_requirements/rag.txt +51 -7
- agent_cli/agents/memory/proxy.py +6 -1
- agent_cli/agents/rag_proxy.py +10 -5
- agent_cli/memory/api.py +2 -0
- agent_cli/memory/client.py +2 -1
- agent_cli/opts.py +8 -0
- agent_cli/rag/api.py +2 -1
- agent_cli/scripts/sync_extras.py +2 -2
- {agent_cli-0.72.6.dist-info → agent_cli-0.73.0.dist-info}/METADATA +15 -5
- {agent_cli-0.72.6.dist-info → agent_cli-0.73.0.dist-info}/RECORD +15 -15
- {agent_cli-0.72.6.dist-info → agent_cli-0.73.0.dist-info}/WHEEL +0 -0
- {agent_cli-0.72.6.dist-info → agent_cli-0.73.0.dist-info}/entry_points.txt +0 -0
- {agent_cli-0.72.6.dist-info → agent_cli-0.73.0.dist-info}/licenses/LICENSE +0 -0
agent_cli/_extras.json
CHANGED
|
@@ -29,7 +29,8 @@
|
|
|
29
29
|
"Long-term memory proxy",
|
|
30
30
|
[
|
|
31
31
|
"chromadb",
|
|
32
|
-
"yaml"
|
|
32
|
+
"yaml",
|
|
33
|
+
"pydantic_ai"
|
|
33
34
|
]
|
|
34
35
|
],
|
|
35
36
|
"mlx-whisper": [
|
|
@@ -43,7 +44,8 @@
|
|
|
43
44
|
"rag": [
|
|
44
45
|
"RAG proxy (ChromaDB, embeddings)",
|
|
45
46
|
[
|
|
46
|
-
"chromadb"
|
|
47
|
+
"chromadb",
|
|
48
|
+
"pydantic_ai"
|
|
47
49
|
]
|
|
48
50
|
],
|
|
49
51
|
"server": [
|
|
@@ -6,6 +6,7 @@ annotated-types==0.7.0
|
|
|
6
6
|
# via pydantic
|
|
7
7
|
anyio==4.12.1
|
|
8
8
|
# via
|
|
9
|
+
# google-genai
|
|
9
10
|
# httpx
|
|
10
11
|
# openai
|
|
11
12
|
# starlette
|
|
@@ -37,16 +38,18 @@ click==8.3.1
|
|
|
37
38
|
# typer
|
|
38
39
|
# typer-slim
|
|
39
40
|
# uvicorn
|
|
40
|
-
colorama==0.4.6
|
|
41
|
+
colorama==0.4.6
|
|
41
42
|
# via
|
|
42
43
|
# build
|
|
43
44
|
# click
|
|
45
|
+
# griffe
|
|
44
46
|
# tqdm
|
|
45
47
|
# uvicorn
|
|
46
48
|
coloredlogs==15.0.1
|
|
47
49
|
# via onnxruntime
|
|
48
50
|
distro==1.9.0
|
|
49
51
|
# via
|
|
52
|
+
# google-genai
|
|
50
53
|
# openai
|
|
51
54
|
# posthog
|
|
52
55
|
dnspython==2.8.0
|
|
@@ -75,10 +78,18 @@ flatbuffers==25.12.19
|
|
|
75
78
|
# via onnxruntime
|
|
76
79
|
fsspec==2026.1.0
|
|
77
80
|
# via huggingface-hub
|
|
81
|
+
genai-prices==0.0.51
|
|
82
|
+
# via pydantic-ai-slim
|
|
78
83
|
google-auth==2.47.0
|
|
79
|
-
# via
|
|
84
|
+
# via
|
|
85
|
+
# google-genai
|
|
86
|
+
# kubernetes
|
|
87
|
+
google-genai==1.58.0
|
|
88
|
+
# via pydantic-ai-slim
|
|
80
89
|
googleapis-common-protos==1.72.0
|
|
81
90
|
# via opentelemetry-exporter-otlp-proto-grpc
|
|
91
|
+
griffe==1.15.0
|
|
92
|
+
# via pydantic-ai-slim
|
|
82
93
|
grpcio==1.76.0
|
|
83
94
|
# via
|
|
84
95
|
# chromadb
|
|
@@ -99,7 +110,11 @@ httpx==0.28.1
|
|
|
99
110
|
# chromadb
|
|
100
111
|
# fastapi
|
|
101
112
|
# fastapi-cloud-cli
|
|
113
|
+
# genai-prices
|
|
114
|
+
# google-genai
|
|
102
115
|
# openai
|
|
116
|
+
# pydantic-ai-slim
|
|
117
|
+
# pydantic-graph
|
|
103
118
|
huggingface-hub==0.36.0
|
|
104
119
|
# via
|
|
105
120
|
# agent-cli
|
|
@@ -127,6 +142,8 @@ jsonschema-specifications==2025.9.1
|
|
|
127
142
|
# via jsonschema
|
|
128
143
|
kubernetes==34.1.0
|
|
129
144
|
# via chromadb
|
|
145
|
+
logfire-api==4.18.0
|
|
146
|
+
# via pydantic-graph
|
|
130
147
|
markdown-it-py==4.0.0
|
|
131
148
|
# via rich
|
|
132
149
|
markupsafe==3.0.3
|
|
@@ -149,13 +166,16 @@ onnxruntime==1.20.1
|
|
|
149
166
|
# agent-cli
|
|
150
167
|
# chromadb
|
|
151
168
|
openai==2.15.0
|
|
152
|
-
# via
|
|
169
|
+
# via
|
|
170
|
+
# agent-cli
|
|
171
|
+
# pydantic-ai-slim
|
|
153
172
|
opentelemetry-api==1.39.1
|
|
154
173
|
# via
|
|
155
174
|
# chromadb
|
|
156
175
|
# opentelemetry-exporter-otlp-proto-grpc
|
|
157
176
|
# opentelemetry-sdk
|
|
158
177
|
# opentelemetry-semantic-conventions
|
|
178
|
+
# pydantic-ai-slim
|
|
159
179
|
opentelemetry-exporter-otlp-proto-common==1.39.1
|
|
160
180
|
# via opentelemetry-exporter-otlp-proto-grpc
|
|
161
181
|
opentelemetry-exporter-otlp-proto-grpc==1.39.1
|
|
@@ -203,13 +223,21 @@ pydantic==2.12.5
|
|
|
203
223
|
# chromadb
|
|
204
224
|
# fastapi
|
|
205
225
|
# fastapi-cloud-cli
|
|
226
|
+
# genai-prices
|
|
227
|
+
# google-genai
|
|
206
228
|
# openai
|
|
229
|
+
# pydantic-ai-slim
|
|
207
230
|
# pydantic-extra-types
|
|
231
|
+
# pydantic-graph
|
|
208
232
|
# pydantic-settings
|
|
233
|
+
pydantic-ai-slim==1.42.0
|
|
234
|
+
# via agent-cli
|
|
209
235
|
pydantic-core==2.41.5
|
|
210
236
|
# via pydantic
|
|
211
237
|
pydantic-extra-types==2.11.0
|
|
212
238
|
# via fastapi
|
|
239
|
+
pydantic-graph==1.42.0
|
|
240
|
+
# via pydantic-ai-slim
|
|
213
241
|
pydantic-settings==2.12.0
|
|
214
242
|
# via fastapi
|
|
215
243
|
pygments==2.19.2
|
|
@@ -246,13 +274,18 @@ referencing==0.37.0
|
|
|
246
274
|
# jsonschema
|
|
247
275
|
# jsonschema-specifications
|
|
248
276
|
regex==2026.1.15
|
|
249
|
-
# via
|
|
277
|
+
# via
|
|
278
|
+
# tiktoken
|
|
279
|
+
# transformers
|
|
250
280
|
requests==2.32.5
|
|
251
281
|
# via
|
|
282
|
+
# google-auth
|
|
283
|
+
# google-genai
|
|
252
284
|
# huggingface-hub
|
|
253
285
|
# kubernetes
|
|
254
286
|
# posthog
|
|
255
287
|
# requests-oauthlib
|
|
288
|
+
# tiktoken
|
|
256
289
|
# transformers
|
|
257
290
|
requests-oauthlib==2.0.0
|
|
258
291
|
# via kubernetes
|
|
@@ -291,13 +324,19 @@ six==1.17.0
|
|
|
291
324
|
# posthog
|
|
292
325
|
# python-dateutil
|
|
293
326
|
sniffio==1.3.1
|
|
294
|
-
# via
|
|
327
|
+
# via
|
|
328
|
+
# google-genai
|
|
329
|
+
# openai
|
|
295
330
|
starlette==0.50.0
|
|
296
331
|
# via fastapi
|
|
297
332
|
sympy==1.14.0
|
|
298
333
|
# via onnxruntime
|
|
299
334
|
tenacity==9.1.2
|
|
300
|
-
# via
|
|
335
|
+
# via
|
|
336
|
+
# chromadb
|
|
337
|
+
# google-genai
|
|
338
|
+
tiktoken==0.12.0
|
|
339
|
+
# via pydantic-ai-slim
|
|
301
340
|
tokenizers==0.22.2
|
|
302
341
|
# via
|
|
303
342
|
# chromadb
|
|
@@ -323,6 +362,7 @@ typing-extensions==4.15.0
|
|
|
323
362
|
# anyio
|
|
324
363
|
# chromadb
|
|
325
364
|
# fastapi
|
|
365
|
+
# google-genai
|
|
326
366
|
# grpcio
|
|
327
367
|
# huggingface-hub
|
|
328
368
|
# openai
|
|
@@ -342,6 +382,8 @@ typing-extensions==4.15.0
|
|
|
342
382
|
typing-inspection==0.4.2
|
|
343
383
|
# via
|
|
344
384
|
# pydantic
|
|
385
|
+
# pydantic-ai-slim
|
|
386
|
+
# pydantic-graph
|
|
345
387
|
# pydantic-settings
|
|
346
388
|
urllib3==2.3.0
|
|
347
389
|
# via
|
|
@@ -363,6 +405,8 @@ watchfiles==1.1.1
|
|
|
363
405
|
websocket-client==1.9.0
|
|
364
406
|
# via kubernetes
|
|
365
407
|
websockets==15.0.1
|
|
366
|
-
# via
|
|
408
|
+
# via
|
|
409
|
+
# google-genai
|
|
410
|
+
# uvicorn
|
|
367
411
|
zipp==3.23.0
|
|
368
412
|
# via importlib-metadata
|
agent_cli/_requirements/rag.txt
CHANGED
|
@@ -6,6 +6,7 @@ annotated-types==0.7.0
|
|
|
6
6
|
# via pydantic
|
|
7
7
|
anyio==4.12.1
|
|
8
8
|
# via
|
|
9
|
+
# google-genai
|
|
9
10
|
# httpx
|
|
10
11
|
# openai
|
|
11
12
|
# starlette
|
|
@@ -49,10 +50,11 @@ click==8.3.1
|
|
|
49
50
|
# uvicorn
|
|
50
51
|
cobble==0.1.4
|
|
51
52
|
# via mammoth
|
|
52
|
-
colorama==0.4.6
|
|
53
|
+
colorama==0.4.6
|
|
53
54
|
# via
|
|
54
55
|
# build
|
|
55
56
|
# click
|
|
57
|
+
# griffe
|
|
56
58
|
# tqdm
|
|
57
59
|
# uvicorn
|
|
58
60
|
coloredlogs==15.0.1
|
|
@@ -63,6 +65,7 @@ defusedxml==0.7.1
|
|
|
63
65
|
# via markitdown
|
|
64
66
|
distro==1.9.0
|
|
65
67
|
# via
|
|
68
|
+
# google-genai
|
|
66
69
|
# openai
|
|
67
70
|
# posthog
|
|
68
71
|
dnspython==2.8.0
|
|
@@ -91,10 +94,18 @@ flatbuffers==25.12.19
|
|
|
91
94
|
# via onnxruntime
|
|
92
95
|
fsspec==2026.1.0
|
|
93
96
|
# via huggingface-hub
|
|
97
|
+
genai-prices==0.0.51
|
|
98
|
+
# via pydantic-ai-slim
|
|
94
99
|
google-auth==2.47.0
|
|
95
|
-
# via
|
|
100
|
+
# via
|
|
101
|
+
# google-genai
|
|
102
|
+
# kubernetes
|
|
103
|
+
google-genai==1.58.0
|
|
104
|
+
# via pydantic-ai-slim
|
|
96
105
|
googleapis-common-protos==1.72.0
|
|
97
106
|
# via opentelemetry-exporter-otlp-proto-grpc
|
|
107
|
+
griffe==1.15.0
|
|
108
|
+
# via pydantic-ai-slim
|
|
98
109
|
grpcio==1.76.0
|
|
99
110
|
# via
|
|
100
111
|
# chromadb
|
|
@@ -115,7 +126,11 @@ httpx==0.28.1
|
|
|
115
126
|
# chromadb
|
|
116
127
|
# fastapi
|
|
117
128
|
# fastapi-cloud-cli
|
|
129
|
+
# genai-prices
|
|
130
|
+
# google-genai
|
|
118
131
|
# openai
|
|
132
|
+
# pydantic-ai-slim
|
|
133
|
+
# pydantic-graph
|
|
119
134
|
huggingface-hub==0.36.0
|
|
120
135
|
# via
|
|
121
136
|
# agent-cli
|
|
@@ -143,6 +158,8 @@ jsonschema-specifications==2025.9.1
|
|
|
143
158
|
# via jsonschema
|
|
144
159
|
kubernetes==34.1.0
|
|
145
160
|
# via chromadb
|
|
161
|
+
logfire-api==4.18.0
|
|
162
|
+
# via pydantic-graph
|
|
146
163
|
lxml==6.0.2
|
|
147
164
|
# via
|
|
148
165
|
# markitdown
|
|
@@ -180,13 +197,16 @@ onnxruntime==1.20.1
|
|
|
180
197
|
# magika
|
|
181
198
|
# markitdown
|
|
182
199
|
openai==2.15.0
|
|
183
|
-
# via
|
|
200
|
+
# via
|
|
201
|
+
# agent-cli
|
|
202
|
+
# pydantic-ai-slim
|
|
184
203
|
opentelemetry-api==1.39.1
|
|
185
204
|
# via
|
|
186
205
|
# chromadb
|
|
187
206
|
# opentelemetry-exporter-otlp-proto-grpc
|
|
188
207
|
# opentelemetry-sdk
|
|
189
208
|
# opentelemetry-semantic-conventions
|
|
209
|
+
# pydantic-ai-slim
|
|
190
210
|
opentelemetry-exporter-otlp-proto-common==1.39.1
|
|
191
211
|
# via opentelemetry-exporter-otlp-proto-grpc
|
|
192
212
|
opentelemetry-exporter-otlp-proto-grpc==1.39.1
|
|
@@ -240,13 +260,21 @@ pydantic==2.12.5
|
|
|
240
260
|
# chromadb
|
|
241
261
|
# fastapi
|
|
242
262
|
# fastapi-cloud-cli
|
|
263
|
+
# genai-prices
|
|
264
|
+
# google-genai
|
|
243
265
|
# openai
|
|
266
|
+
# pydantic-ai-slim
|
|
244
267
|
# pydantic-extra-types
|
|
268
|
+
# pydantic-graph
|
|
245
269
|
# pydantic-settings
|
|
270
|
+
pydantic-ai-slim==1.42.0
|
|
271
|
+
# via agent-cli
|
|
246
272
|
pydantic-core==2.41.5
|
|
247
273
|
# via pydantic
|
|
248
274
|
pydantic-extra-types==2.11.0
|
|
249
275
|
# via fastapi
|
|
276
|
+
pydantic-graph==1.42.0
|
|
277
|
+
# via pydantic-ai-slim
|
|
250
278
|
pydantic-settings==2.12.0
|
|
251
279
|
# via fastapi
|
|
252
280
|
pygments==2.19.2
|
|
@@ -285,14 +313,19 @@ referencing==0.37.0
|
|
|
285
313
|
# jsonschema
|
|
286
314
|
# jsonschema-specifications
|
|
287
315
|
regex==2026.1.15
|
|
288
|
-
# via
|
|
316
|
+
# via
|
|
317
|
+
# tiktoken
|
|
318
|
+
# transformers
|
|
289
319
|
requests==2.32.5
|
|
290
320
|
# via
|
|
321
|
+
# google-auth
|
|
322
|
+
# google-genai
|
|
291
323
|
# huggingface-hub
|
|
292
324
|
# kubernetes
|
|
293
325
|
# markitdown
|
|
294
326
|
# posthog
|
|
295
327
|
# requests-oauthlib
|
|
328
|
+
# tiktoken
|
|
296
329
|
# transformers
|
|
297
330
|
requests-oauthlib==2.0.0
|
|
298
331
|
# via kubernetes
|
|
@@ -332,7 +365,9 @@ six==1.17.0
|
|
|
332
365
|
# posthog
|
|
333
366
|
# python-dateutil
|
|
334
367
|
sniffio==1.3.1
|
|
335
|
-
# via
|
|
368
|
+
# via
|
|
369
|
+
# google-genai
|
|
370
|
+
# openai
|
|
336
371
|
soupsieve==2.8.1
|
|
337
372
|
# via beautifulsoup4
|
|
338
373
|
starlette==0.50.0
|
|
@@ -340,7 +375,11 @@ starlette==0.50.0
|
|
|
340
375
|
sympy==1.14.0
|
|
341
376
|
# via onnxruntime
|
|
342
377
|
tenacity==9.1.2
|
|
343
|
-
# via
|
|
378
|
+
# via
|
|
379
|
+
# chromadb
|
|
380
|
+
# google-genai
|
|
381
|
+
tiktoken==0.12.0
|
|
382
|
+
# via pydantic-ai-slim
|
|
344
383
|
tokenizers==0.22.2
|
|
345
384
|
# via
|
|
346
385
|
# chromadb
|
|
@@ -367,6 +406,7 @@ typing-extensions==4.15.0
|
|
|
367
406
|
# beautifulsoup4
|
|
368
407
|
# chromadb
|
|
369
408
|
# fastapi
|
|
409
|
+
# google-genai
|
|
370
410
|
# grpcio
|
|
371
411
|
# huggingface-hub
|
|
372
412
|
# openai
|
|
@@ -387,6 +427,8 @@ typing-extensions==4.15.0
|
|
|
387
427
|
typing-inspection==0.4.2
|
|
388
428
|
# via
|
|
389
429
|
# pydantic
|
|
430
|
+
# pydantic-ai-slim
|
|
431
|
+
# pydantic-graph
|
|
390
432
|
# pydantic-settings
|
|
391
433
|
urllib3==2.3.0
|
|
392
434
|
# via
|
|
@@ -408,7 +450,9 @@ watchfiles==1.1.1
|
|
|
408
450
|
websocket-client==1.9.0
|
|
409
451
|
# via kubernetes
|
|
410
452
|
websockets==15.0.1
|
|
411
|
-
# via
|
|
453
|
+
# via
|
|
454
|
+
# google-genai
|
|
455
|
+
# uvicorn
|
|
412
456
|
xlsxwriter==3.2.9
|
|
413
457
|
# via python-pptx
|
|
414
458
|
zipp==3.23.0
|
agent_cli/agents/memory/proxy.py
CHANGED
|
@@ -23,6 +23,7 @@ def proxy(
|
|
|
23
23
|
rich_help_panel="Memory Configuration",
|
|
24
24
|
),
|
|
25
25
|
openai_base_url: str | None = opts.OPENAI_BASE_URL,
|
|
26
|
+
embedding_base_url: str | None = opts.EMBEDDING_BASE_URL,
|
|
26
27
|
embedding_model: str = opts.EMBEDDING_MODEL,
|
|
27
28
|
openai_api_key: str | None = opts.OPENAI_API_KEY,
|
|
28
29
|
default_top_k: int = typer.Option(
|
|
@@ -135,12 +136,15 @@ def proxy(
|
|
|
135
136
|
entries_dir, _ = ensure_store_dirs(memory_path)
|
|
136
137
|
if openai_base_url is None:
|
|
137
138
|
openai_base_url = constants.DEFAULT_OPENAI_BASE_URL
|
|
139
|
+
effective_embedding_url = embedding_base_url or openai_base_url
|
|
138
140
|
|
|
139
141
|
console.print(f"[bold green]Starting Memory Proxy on {host}:{port}[/bold green]")
|
|
140
142
|
console.print(f" 💾 Memory store: [blue]{memory_path}[/blue]")
|
|
141
143
|
console.print(f" 📁 Entries: [blue]{entries_dir}[/blue]")
|
|
142
144
|
console.print(f" 🤖 Backend: [blue]{openai_base_url}[/blue]")
|
|
143
|
-
console.print(
|
|
145
|
+
console.print(
|
|
146
|
+
f" 🧠 Embeddings: [blue]{embedding_model}[/blue] via [blue]{effective_embedding_url}[/blue]",
|
|
147
|
+
)
|
|
144
148
|
console.print(f" 🔍 Memory top_k: [blue]{default_top_k}[/blue] entries per query")
|
|
145
149
|
console.print(f" 🧹 Max entries per conversation: [blue]{max_entries}[/blue]")
|
|
146
150
|
console.print(
|
|
@@ -154,6 +158,7 @@ def proxy(
|
|
|
154
158
|
fastapi_app = create_app(
|
|
155
159
|
memory_path,
|
|
156
160
|
openai_base_url,
|
|
161
|
+
embedding_base_url=effective_embedding_url,
|
|
157
162
|
embedding_model=embedding_model,
|
|
158
163
|
embedding_api_key=openai_api_key,
|
|
159
164
|
chat_api_key=openai_api_key,
|
agent_cli/agents/rag_proxy.py
CHANGED
|
@@ -32,6 +32,7 @@ def rag_proxy(
|
|
|
32
32
|
rich_help_panel="RAG Configuration",
|
|
33
33
|
),
|
|
34
34
|
openai_base_url: str | None = opts.OPENAI_BASE_URL,
|
|
35
|
+
embedding_base_url: str | None = opts.EMBEDDING_BASE_URL,
|
|
35
36
|
embedding_model: str = opts.EMBEDDING_MODEL,
|
|
36
37
|
openai_api_key: str | None = opts.OPENAI_API_KEY,
|
|
37
38
|
limit: int = typer.Option(
|
|
@@ -138,22 +139,26 @@ def rag_proxy(
|
|
|
138
139
|
|
|
139
140
|
if openai_base_url is None:
|
|
140
141
|
openai_base_url = constants.DEFAULT_OPENAI_BASE_URL
|
|
142
|
+
effective_embedding_url = embedding_base_url or openai_base_url
|
|
141
143
|
|
|
142
144
|
console.print(f"[bold green]Starting RAG Proxy on {host}:{port}[/bold green]")
|
|
143
145
|
console.print(f" 📂 Docs: [blue]{docs_folder}[/blue]")
|
|
144
146
|
console.print(f" 💾 DB: [blue]{chroma_path}[/blue]")
|
|
145
147
|
console.print(f" 🤖 Backend: [blue]{openai_base_url}[/blue]")
|
|
146
|
-
console.print(
|
|
148
|
+
console.print(
|
|
149
|
+
f" 🧠 Embeddings: [blue]{embedding_model}[/blue] via [blue]{effective_embedding_url}[/blue]",
|
|
150
|
+
)
|
|
147
151
|
console.print(f" 🔍 Limit: [blue]{limit}[/blue] chunks per query")
|
|
148
152
|
|
|
149
153
|
fastapi_app = create_app(
|
|
150
154
|
docs_folder,
|
|
151
155
|
chroma_path,
|
|
152
156
|
openai_base_url,
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
openai_api_key,
|
|
156
|
-
|
|
157
|
+
embedding_base_url=effective_embedding_url,
|
|
158
|
+
embedding_model=embedding_model,
|
|
159
|
+
embedding_api_key=openai_api_key,
|
|
160
|
+
chat_api_key=openai_api_key,
|
|
161
|
+
limit=limit,
|
|
157
162
|
enable_rag_tools=enable_rag_tools,
|
|
158
163
|
)
|
|
159
164
|
|
agent_cli/memory/api.py
CHANGED
|
@@ -22,6 +22,7 @@ LOGGER = logging.getLogger(__name__)
|
|
|
22
22
|
def create_app(
|
|
23
23
|
memory_path: Path,
|
|
24
24
|
openai_base_url: str,
|
|
25
|
+
embedding_base_url: str | None = None,
|
|
25
26
|
embedding_model: str = DEFAULT_OPENAI_EMBEDDING_MODEL,
|
|
26
27
|
embedding_api_key: str | None = None,
|
|
27
28
|
chat_api_key: str | None = None,
|
|
@@ -39,6 +40,7 @@ def create_app(
|
|
|
39
40
|
client = MemoryClient(
|
|
40
41
|
memory_path=memory_path,
|
|
41
42
|
openai_base_url=openai_base_url,
|
|
43
|
+
embedding_base_url=embedding_base_url,
|
|
42
44
|
embedding_model=embedding_model,
|
|
43
45
|
embedding_api_key=embedding_api_key,
|
|
44
46
|
chat_api_key=chat_api_key,
|
agent_cli/memory/client.py
CHANGED
|
@@ -41,6 +41,7 @@ class MemoryClient:
|
|
|
41
41
|
self,
|
|
42
42
|
memory_path: Path,
|
|
43
43
|
openai_base_url: str,
|
|
44
|
+
embedding_base_url: str | None = None,
|
|
44
45
|
embedding_model: str = DEFAULT_OPENAI_EMBEDDING_MODEL,
|
|
45
46
|
embedding_api_key: str | None = None,
|
|
46
47
|
chat_api_key: str | None = None,
|
|
@@ -74,7 +75,7 @@ class MemoryClient:
|
|
|
74
75
|
self.collection: Collection = init_memory_collection(
|
|
75
76
|
self.memory_path,
|
|
76
77
|
embedding_model=embedding_model,
|
|
77
|
-
openai_base_url=self.openai_base_url,
|
|
78
|
+
openai_base_url=embedding_base_url or self.openai_base_url,
|
|
78
79
|
openai_api_key=embedding_api_key,
|
|
79
80
|
)
|
|
80
81
|
|
agent_cli/opts.py
CHANGED
|
@@ -109,6 +109,14 @@ EMBEDDING_MODEL: str = typer.Option(
|
|
|
109
109
|
help="Embedding model to use for vectorization.",
|
|
110
110
|
rich_help_panel="LLM Configuration",
|
|
111
111
|
)
|
|
112
|
+
EMBEDDING_BASE_URL: str | None = typer.Option(
|
|
113
|
+
None,
|
|
114
|
+
"--embedding-base-url",
|
|
115
|
+
envvar="EMBEDDING_BASE_URL",
|
|
116
|
+
help="Base URL for embedding API. Falls back to `--openai-base-url` if not set. "
|
|
117
|
+
"Useful when using different providers for chat vs embeddings.",
|
|
118
|
+
rich_help_panel="LLM Configuration",
|
|
119
|
+
)
|
|
112
120
|
|
|
113
121
|
# --- ASR (Audio) Configuration ---
|
|
114
122
|
# General ASR
|
agent_cli/rag/api.py
CHANGED
|
@@ -32,6 +32,7 @@ def create_app(
|
|
|
32
32
|
docs_folder: Path,
|
|
33
33
|
chroma_path: Path,
|
|
34
34
|
openai_base_url: str,
|
|
35
|
+
embedding_base_url: str | None = None,
|
|
35
36
|
embedding_model: str = DEFAULT_OPENAI_EMBEDDING_MODEL,
|
|
36
37
|
embedding_api_key: str | None = None,
|
|
37
38
|
chat_api_key: str | None = None,
|
|
@@ -47,7 +48,7 @@ def create_app(
|
|
|
47
48
|
chroma_path,
|
|
48
49
|
name="docs",
|
|
49
50
|
embedding_model=embedding_model,
|
|
50
|
-
openai_base_url=openai_base_url,
|
|
51
|
+
openai_base_url=embedding_base_url or openai_base_url,
|
|
51
52
|
openai_api_key=embedding_api_key,
|
|
52
53
|
)
|
|
53
54
|
|
agent_cli/scripts/sync_extras.py
CHANGED
|
@@ -35,8 +35,8 @@ EXTRA_METADATA: dict[str, tuple[str, list[str]]] = {
|
|
|
35
35
|
"llm": ("LLM framework (pydantic-ai)", ["pydantic_ai"]),
|
|
36
36
|
"llm-core": ("Minimal LLM support for Docker images", ["pydantic_ai"]),
|
|
37
37
|
# Feature extras
|
|
38
|
-
"rag": ("RAG proxy (ChromaDB, embeddings)", ["chromadb"]),
|
|
39
|
-
"memory": ("Long-term memory proxy", ["chromadb", "yaml"]),
|
|
38
|
+
"rag": ("RAG proxy (ChromaDB, embeddings)", ["chromadb", "pydantic_ai"]),
|
|
39
|
+
"memory": ("Long-term memory proxy", ["chromadb", "yaml", "pydantic_ai"]),
|
|
40
40
|
"vad": ("Voice Activity Detection (silero-vad)", ["silero_vad"]),
|
|
41
41
|
"whisper": ("Local Whisper ASR (faster-whisper)", ["faster_whisper"]),
|
|
42
42
|
"whisper-mlx": ("MLX Whisper for Apple Silicon", ["mlx_whisper"]),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.73.0
|
|
4
4
|
Summary: A suite of AI-powered command-line tools for text correction, audio transcription, and voice assistance.
|
|
5
5
|
Project-URL: Homepage, https://github.com/basnijholt/agent-cli
|
|
6
6
|
Author-email: Bas Nijholt <bas@nijho.lt>
|
|
@@ -54,6 +54,7 @@ Requires-Dist: fastapi[standard]; extra == 'memory'
|
|
|
54
54
|
Requires-Dist: huggingface-hub>=0.20.0; extra == 'memory'
|
|
55
55
|
Requires-Dist: onnxruntime>=1.17.0; extra == 'memory'
|
|
56
56
|
Requires-Dist: openai>=1.0.0; extra == 'memory'
|
|
57
|
+
Requires-Dist: pydantic-ai-slim[google,openai]>=0.1.1; extra == 'memory'
|
|
57
58
|
Requires-Dist: pyyaml>=6.0.0; extra == 'memory'
|
|
58
59
|
Requires-Dist: transformers>=4.30.0; extra == 'memory'
|
|
59
60
|
Requires-Dist: watchfiles>=0.21.0; extra == 'memory'
|
|
@@ -70,6 +71,7 @@ Requires-Dist: huggingface-hub>=0.20.0; extra == 'rag'
|
|
|
70
71
|
Requires-Dist: markitdown[docx,pdf,pptx]>=0.1.3; extra == 'rag'
|
|
71
72
|
Requires-Dist: onnxruntime>=1.17.0; extra == 'rag'
|
|
72
73
|
Requires-Dist: openai>=1.0.0; extra == 'rag'
|
|
74
|
+
Requires-Dist: pydantic-ai-slim[google,openai]>=0.1.1; extra == 'rag'
|
|
73
75
|
Requires-Dist: transformers>=4.30.0; extra == 'rag'
|
|
74
76
|
Requires-Dist: watchfiles>=0.21.0; extra == 'rag'
|
|
75
77
|
Provides-Extra: server
|
|
@@ -2064,8 +2066,12 @@ uv tool install "agent-cli[vad]" -p 3.13
|
|
|
2064
2066
|
│ [env var: OPENAI_API_KEY] │
|
|
2065
2067
|
╰────────────────────────────────────────────────────────────────────────────────────────╯
|
|
2066
2068
|
╭─ LLM Configuration ────────────────────────────────────────────────────────────────────╮
|
|
2067
|
-
│ --embedding-
|
|
2068
|
-
│
|
|
2069
|
+
│ --embedding-base-url TEXT Base URL for embedding API. Falls back to │
|
|
2070
|
+
│ --openai-base-url if not set. Useful when using │
|
|
2071
|
+
│ different providers for chat vs embeddings. │
|
|
2072
|
+
│ [env var: EMBEDDING_BASE_URL] │
|
|
2073
|
+
│ --embedding-model TEXT Embedding model to use for vectorization. │
|
|
2074
|
+
│ [default: text-embedding-3-small] │
|
|
2069
2075
|
╰────────────────────────────────────────────────────────────────────────────────────────╯
|
|
2070
2076
|
╭─ Server Configuration ─────────────────────────────────────────────────────────────────╮
|
|
2071
2077
|
│ --host TEXT Host/IP to bind API servers to. │
|
|
@@ -2227,8 +2233,12 @@ The `memory proxy` command is the core feature—a middleware server that gives
|
|
|
2227
2233
|
│ [env var: OPENAI_API_KEY] │
|
|
2228
2234
|
╰────────────────────────────────────────────────────────────────────────────────────────╯
|
|
2229
2235
|
╭─ LLM Configuration ────────────────────────────────────────────────────────────────────╮
|
|
2230
|
-
│ --embedding-
|
|
2231
|
-
│
|
|
2236
|
+
│ --embedding-base-url TEXT Base URL for embedding API. Falls back to │
|
|
2237
|
+
│ --openai-base-url if not set. Useful when using │
|
|
2238
|
+
│ different providers for chat vs embeddings. │
|
|
2239
|
+
│ [env var: EMBEDDING_BASE_URL] │
|
|
2240
|
+
│ --embedding-model TEXT Embedding model to use for vectorization. │
|
|
2241
|
+
│ [default: text-embedding-3-small] │
|
|
2232
2242
|
╰────────────────────────────────────────────────────────────────────────────────────────╯
|
|
2233
2243
|
╭─ Server Configuration ─────────────────────────────────────────────────────────────────╮
|
|
2234
2244
|
│ --host TEXT Host/IP to bind API servers to. │
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
agent_cli/__init__.py,sha256=-bo57j_5TsCug2tGHh7wClAGDhzN239639K40pgVh4g,187
|
|
2
2
|
agent_cli/__main__.py,sha256=2wx_SxA8KRdejM-hBFLN8JTR2rIgtwnDH03MPAbJH5U,106
|
|
3
|
-
agent_cli/_extras.json,sha256=
|
|
3
|
+
agent_cli/_extras.json,sha256=QVr8xkSPsaWRIlEOvgTcT42VZtFxZ3dT-n8InFCHA8Y,1067
|
|
4
4
|
agent_cli/_tools.py,sha256=u9Ww-k-sbwFnMTW8sreFGd71nJP6o5hKcM0Zd_D9GZk,12136
|
|
5
5
|
agent_cli/api.py,sha256=FQ_HATc7DaedbEFQ275Z18wV90tkDByD_9x_K0wdSLQ,456
|
|
6
6
|
agent_cli/cli.py,sha256=O3b5Bgv6mjzSIMKikRfeUEg1SSVXhCskLatltbx0ERg,3923
|
|
@@ -9,17 +9,17 @@ agent_cli/config_cmd.py,sha256=PkFY-U09LRIFYrHL_kG4_Ge6DjCWFe3GkO_uiIBMTgI,10359
|
|
|
9
9
|
agent_cli/constants.py,sha256=-Q17N6qKIGqPDsu3FxpIKP33G0Cs0RUJlHwYNHxVxek,843
|
|
10
10
|
agent_cli/docs_gen.py,sha256=ZX2GYHNumpLhdAEc_4Hy6xeAahAzsEVVnsXUojMYVNY,13885
|
|
11
11
|
agent_cli/example-config.toml,sha256=xd9BXeOqdYx4xFJt58VBs2I49ESy6dF4-mWF_g8sM9o,7552
|
|
12
|
-
agent_cli/opts.py,sha256=
|
|
12
|
+
agent_cli/opts.py,sha256=XgVFv-ip5lkFJNyBGHewCBQc4YaLJUSijIsP1qiqcts,13405
|
|
13
13
|
agent_cli/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
14
|
agent_cli/_requirements/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
15
|
agent_cli/_requirements/audio.txt,sha256=KAOtFaFClkj2EAesWI61LZ4N-T1WQvHtvf1sNtDxVgQ,1522
|
|
16
16
|
agent_cli/_requirements/faster-whisper.txt,sha256=V5O-Di0hA_0g3EyZaRlRlR6JVhJ2XuqXyzxMUmYDxMU,4333
|
|
17
17
|
agent_cli/_requirements/kokoro.txt,sha256=HJFVJga6O7Eiz-2oqY6GsnGB9jQu2PM_QdtEN4lKjSU,8932
|
|
18
18
|
agent_cli/_requirements/llm.txt,sha256=nApd9U7gPLTmUaCGZL_dkBN9BmHt3zOrt038XSS1NKc,3582
|
|
19
|
-
agent_cli/_requirements/memory.txt,sha256=
|
|
19
|
+
agent_cli/_requirements/memory.txt,sha256=9Ac9kYKp8HsbRKBMoNhWRpvfr06-f_RCXLiUwDn9-TE,8311
|
|
20
20
|
agent_cli/_requirements/mlx-whisper.txt,sha256=4KxYahgmWzCi3dD1R-P4kqRix0Yyewqo-tHl9QmZHj4,6749
|
|
21
21
|
agent_cli/_requirements/piper.txt,sha256=aoRGqt_7Kr9cNHk-H4q7SVoKmP4d0fhtvEXeUeIqwQI,3455
|
|
22
|
-
agent_cli/_requirements/rag.txt,sha256=
|
|
22
|
+
agent_cli/_requirements/rag.txt,sha256=_MPH-PuDSU90J9EXHTJzN9M34ogmkHhsJ2e-CimirCw,9286
|
|
23
23
|
agent_cli/_requirements/server.txt,sha256=v29ib07fYE5_lbL00ULOgS13XA5NAOnLq-lExJZ0zbw,3004
|
|
24
24
|
agent_cli/_requirements/speed.txt,sha256=KwBTrZFXWtgwJ5zrcNtm45zfqvNK0trcR1SbV-wDFp4,1464
|
|
25
25
|
agent_cli/_requirements/vad.txt,sha256=Jqw49D5xleqrFyv348GjqRmflewOOEYJklx7b9GbNpY,1359
|
|
@@ -29,14 +29,14 @@ agent_cli/agents/_voice_agent_common.py,sha256=PUAztW84Xf9U7d0C_K5cL7I8OANIE1H6M
|
|
|
29
29
|
agent_cli/agents/assistant.py,sha256=oUu6Z3mRQnO_PKzby71iB282UN-yRmKGiPa-OzkHmRg,13794
|
|
30
30
|
agent_cli/agents/autocorrect.py,sha256=nJnNC9uKBZcbQ4roiC-BiJKTomiSdfe8mNa8p3yACps,9715
|
|
31
31
|
agent_cli/agents/chat.py,sha256=DhG7qAYqlwj_UDaMREucFhvUqNuWNLFGpR_NRp7nuek,18703
|
|
32
|
-
agent_cli/agents/rag_proxy.py,sha256=
|
|
32
|
+
agent_cli/agents/rag_proxy.py,sha256=0EeCbMqnFAGuCKe1wtjaYJsfbMlUfFxN0-uekYzLWpg,6560
|
|
33
33
|
agent_cli/agents/speak.py,sha256=XcBK_y1LMdNPdgfs9V57FNSZMgtjWFogIPsUx0g4SX0,7640
|
|
34
34
|
agent_cli/agents/transcribe.py,sha256=4KrMsNty4O2sRtmhqsHzH5AYXoMeTrbFq0mPrV_qGqE,25322
|
|
35
35
|
agent_cli/agents/transcribe_daemon.py,sha256=kJhmp7143fj3mhwz-l-a-LKvxZkhcGMHHcn8Cvq-Ec4,18926
|
|
36
36
|
agent_cli/agents/voice_edit.py,sha256=OiYgBJ9GhtbeE7uLfaGHLWHXe7TKNd9Oo6kfvsROJ3M,11405
|
|
37
37
|
agent_cli/agents/memory/__init__.py,sha256=3IFV1fSD0u38E54f_0oPZoPbM0LXaH-A3bDSnBL9FJs,1470
|
|
38
38
|
agent_cli/agents/memory/add.py,sha256=i_F78rnE8ftJ1DY1yX4BpClV8H9Rz9-aFh6lzI6a_zE,6349
|
|
39
|
-
agent_cli/agents/memory/proxy.py,sha256=
|
|
39
|
+
agent_cli/agents/memory/proxy.py,sha256=rSesjHTx366Q9fEXB-DanRpFOJnua3tkQwXkJeMmRgs,7209
|
|
40
40
|
agent_cli/core/__init__.py,sha256=c_knH7u9QgjsfMIil9NP4bVizHawLUMYoQWU4H9vMlQ,46
|
|
41
41
|
agent_cli/core/audio.py,sha256=43FpYe2Wu_BYK9xJ_55V4xHjHJeFwQ5aM-CQzlTryt8,15168
|
|
42
42
|
agent_cli/core/audio_format.py,sha256=zk3qlYMAlKYPz1enrjihQQspl_C218v1Rbcm7Uktlew,8773
|
|
@@ -107,8 +107,8 @@ agent_cli/memory/_retrieval.py,sha256=K_2TUcgzfntBARPyf0K6VR3NIgHHJrqGFMP_53Nae_
|
|
|
107
107
|
agent_cli/memory/_store.py,sha256=m9mD1GxjdTXpnyL-X-MIU4cj28unqxJ_azV3kwM8blM,5086
|
|
108
108
|
agent_cli/memory/_streaming.py,sha256=P1JnkDNTJJj-lXawmXhBZnIia3ZZmKo-N6mUsLYFVgs,1400
|
|
109
109
|
agent_cli/memory/_tasks.py,sha256=XgEkN_3NCVQDWafZ_rqazpAE68yQ87x-amnQKMkfPXg,1469
|
|
110
|
-
agent_cli/memory/api.py,sha256=
|
|
111
|
-
agent_cli/memory/client.py,sha256=
|
|
110
|
+
agent_cli/memory/api.py,sha256=h7sxbNsq72ewOTnv4XcHaMBGY5NgEMAB5e_OmtMzxy0,3685
|
|
111
|
+
agent_cli/memory/client.py,sha256=szkI8G8CHfHOgH9LwDEQQmZZNsUi_a3DdHX23h_yn2U,10063
|
|
112
112
|
agent_cli/memory/engine.py,sha256=rABVC86b5wU1QxY3BM43RhvfDOxoRT7Ddm98BN_qCL4,11656
|
|
113
113
|
agent_cli/memory/entities.py,sha256=_8wyJz--tNa66CEtSpl2TUN_zeHQvMzm42htnDaOr6g,1219
|
|
114
114
|
agent_cli/memory/models.py,sha256=KK0wToEf-tXssYVL0hYaJlcADlJ3G2lcSXwo1UmA0VU,2352
|
|
@@ -119,7 +119,7 @@ agent_cli/rag/_prompt.py,sha256=d8_jOhZGafMmjO7BlCl4H125bj4m-dNFWDOLz5_OPrw,954
|
|
|
119
119
|
agent_cli/rag/_retriever.py,sha256=bzMzZR43P5cROgnWwOh_BrMFsMP5tDm21ToFVZwb0gk,4505
|
|
120
120
|
agent_cli/rag/_store.py,sha256=HksCLnbHp19dnY5ZWglm86azBjjuiWqvZvRPG-oJ8SY,1381
|
|
121
121
|
agent_cli/rag/_utils.py,sha256=OKZvn8UFb3TsB4b0eIWU6Md5xDiaG-g659zMjVUu8oI,5923
|
|
122
|
-
agent_cli/rag/api.py,sha256=
|
|
122
|
+
agent_cli/rag/api.py,sha256=s0jsCrACkuWfTiGzznlacxyTGGu9Fa6LVmrIf23JBbQ,5629
|
|
123
123
|
agent_cli/rag/client.py,sha256=mFiZ4yjI75Vsehie6alsV1My50uIsp-G07Qz6SaNrZw,8913
|
|
124
124
|
agent_cli/rag/engine.py,sha256=XySDer0fNTsEUjbUby5yf7JqB7uCE7tw2A6tYJixHnI,9800
|
|
125
125
|
agent_cli/rag/models.py,sha256=uECWoeBChlkAK7uTM-pUnPGaaMO4EYJ3pJcAf8uh1vI,1043
|
|
@@ -140,7 +140,7 @@ agent_cli/scripts/setup-macos.sh,sha256=iKWhhONLGDTqYawSDqutnl0mfQomSVPPAsx09-0E
|
|
|
140
140
|
agent_cli/scripts/setup-windows.ps1,sha256=NhyxOuwCjjSw24q2QOqggATos_n06DDbfvMQWuAB3tM,2938
|
|
141
141
|
agent_cli/scripts/start-all-services-windows.ps1,sha256=uOODaPFzniEU7asDgMyf5MEOWcEFsGg_mCLLlDgKoa8,2643
|
|
142
142
|
agent_cli/scripts/start-all-services.sh,sha256=c6pjXoyoQkeF-cYpldeMMo38XxRMmS43FHG5w3ElLxg,7756
|
|
143
|
-
agent_cli/scripts/sync_extras.py,sha256=
|
|
143
|
+
agent_cli/scripts/sync_extras.py,sha256=cCPq0aEiyKoGAPB2H9KN1M08Oy3KKW6ak8CxKAbxSjU,4843
|
|
144
144
|
agent_cli/scripts/.runtime/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
145
145
|
agent_cli/scripts/linux-hotkeys/README.md,sha256=OW48Xyv096XkUosSJkzED_nnEEncSzhl87FNgEfq8wg,2037
|
|
146
146
|
agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh,sha256=sme-dil3EU4nkdRwxSvARr-hBN9UjrU1IFabLCrvwl8,1251
|
|
@@ -189,8 +189,8 @@ agent_cli/services/asr.py,sha256=aRaCLVCygsJ15qyQEPECOZsdSrnlLPbyY4RwAqY0qIw,172
|
|
|
189
189
|
agent_cli/services/llm.py,sha256=i01utl1eYWlM13gvW2eR6ErL_ndH-g0d-BSleZra_7k,7229
|
|
190
190
|
agent_cli/services/tts.py,sha256=NX5Qnq7ddLI3mwm3nzhbR3zB1Os4Ip4sSVSjDZDTBcI,14855
|
|
191
191
|
agent_cli/services/wake_word.py,sha256=JFJ1SA22H4yko9DXiQ1t7fcoxeALLAe3iBrLs0z8rX4,4664
|
|
192
|
-
agent_cli-0.
|
|
193
|
-
agent_cli-0.
|
|
194
|
-
agent_cli-0.
|
|
195
|
-
agent_cli-0.
|
|
196
|
-
agent_cli-0.
|
|
192
|
+
agent_cli-0.73.0.dist-info/METADATA,sha256=ybJ--hEZOx6RMgWCcWysDtu-eiMsRMq5H74VsaTYrMQ,180673
|
|
193
|
+
agent_cli-0.73.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
194
|
+
agent_cli-0.73.0.dist-info/entry_points.txt,sha256=FUv-fB2atLsPUk_RT4zqnZl1coz4_XHFwRALOKOF38s,97
|
|
195
|
+
agent_cli-0.73.0.dist-info/licenses/LICENSE,sha256=majJU6S9kC8R8bW39NVBHyv32Dq50FL6TDxECG2WVts,1068
|
|
196
|
+
agent_cli-0.73.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|