padwan-cli 0.6.0__tar.gz → 0.6.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- padwan_cli-0.6.2/LICENSE +21 -0
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/PKG-INFO +22 -12
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/README.md +3 -3
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/padwan_cli/__init__.py +0 -2
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/padwan_cli/batch/__init__.py +0 -2
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/padwan_cli/batch/format.py +1 -3
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/padwan_cli/batch/run.py +2 -4
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/padwan_cli/batch/utils.py +1 -3
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/padwan_cli/chat.py +6 -6
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/padwan_cli/run.py +4 -6
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/padwan_cli/talk.py +3 -5
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/padwan_cli/trace.py +3 -5
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/padwan_cli/utils.py +1 -1
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/padwan_cli/widgets.py +1 -3
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/pyproject.toml +25 -11
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/pyproject.toml.orig +25 -11
- {padwan_cli-0.6.0 → padwan_cli-0.6.2}/padwan_cli/__main__.py +0 -0
padwan_cli-0.6.2/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 polarsen-io
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -1,17 +1,27 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: padwan-cli
|
|
3
|
-
Version: 0.6.
|
|
4
|
-
Summary: CLI and TUI for padwan-
|
|
5
|
-
Author-email: julien.brayere@polarsen.
|
|
6
|
-
|
|
3
|
+
Version: 0.6.2
|
|
4
|
+
Summary: CLI and TUI for padwan-ai
|
|
5
|
+
Author-email: julien.brayere@polarsen.io
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Classifier: Environment :: Console
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
13
|
+
Requires-Dist: padwan-ai[realtime]>=0.11.1
|
|
7
14
|
Requires-Dist: piou[tui]>=0.36.0
|
|
8
15
|
Requires-Dist: tracktolib>=0.74.0
|
|
9
|
-
Requires-Dist: padwan-
|
|
10
|
-
Requires-Dist: padwan-
|
|
16
|
+
Requires-Dist: padwan-ai[langfuse]>=0.11.1 ; extra == 'langfuse'
|
|
17
|
+
Requires-Dist: padwan-ai[otel]>=0.11.1 ; extra == 'otel'
|
|
11
18
|
Requires-Dist: opentelemetry-sdk>=1.44 ; extra == 'otel'
|
|
12
19
|
Requires-Dist: opentelemetry-exporter-otlp>=1.44 ; extra == 'otel'
|
|
13
|
-
Requires-Dist: sounddevice>=0.5 ; extra == 'voice'
|
|
14
|
-
Requires-Python: >=3.
|
|
20
|
+
Requires-Dist: sounddevice>=0.5.6 ; extra == 'voice'
|
|
21
|
+
Requires-Python: >=3.15
|
|
22
|
+
Project-URL: Homepage, https://polarsen-io.github.io/padwan-cli
|
|
23
|
+
Project-URL: Source, https://github.com/polarsen-io/padwan-cli
|
|
24
|
+
Project-URL: Changelog, https://github.com/polarsen-io/padwan-cli/blob/master/CHANGELOG.md
|
|
15
25
|
Provides-Extra: langfuse
|
|
16
26
|
Provides-Extra: otel
|
|
17
27
|
Provides-Extra: voice
|
|
@@ -19,10 +29,10 @@ Description-Content-Type: text/markdown
|
|
|
19
29
|
|
|
20
30
|
# Padwan CLI
|
|
21
31
|
|
|
22
|
-
Interactive CLI/TUI for [`padwan-
|
|
32
|
+
Interactive CLI/TUI for [`padwan-ai`](https://github.com/polarsen-io/padwan-ai).
|
|
23
33
|
|
|
24
34
|
> [!NOTE]
|
|
25
|
-
> This is a playground for experimenting with `padwan-
|
|
35
|
+
> This is a playground for experimenting with `padwan-ai` features (streaming, agents, MCP, thinking tokens, batch jobs, realtime voice) — not a production-grade tool. Expect rough edges and breaking changes.
|
|
26
36
|
|
|
27
37
|
<img alt="Chat demo" src="https://github.com/polarsen-io/padwan-cli/raw/master/docs/static/chat.gif" width="800"/>
|
|
28
38
|
|
|
@@ -67,7 +77,7 @@ uvx --from "padwan-cli[voice]" padwan-talk
|
|
|
67
77
|
|
|
68
78
|
## Tracing
|
|
69
79
|
|
|
70
|
-
Pass `--trace <backend>` (on the one-shot, `chat send`, and `talk` commands) to instrument all LLM calls with [padwan-
|
|
80
|
+
Pass `--trace <backend>` (on the one-shot, `chat send`, and `talk` commands) to instrument all LLM calls with [padwan-ai's OTel GenAI telemetry](https://github.com/polarsen-io/padwan-ai/blob/master/docs/observability.md):
|
|
71
81
|
|
|
72
82
|
```bash
|
|
73
83
|
# Langfuse, using the standard LANGFUSE_* env vars
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Padwan CLI
|
|
2
2
|
|
|
3
|
-
Interactive CLI/TUI for [`padwan-
|
|
3
|
+
Interactive CLI/TUI for [`padwan-ai`](https://github.com/polarsen-io/padwan-ai).
|
|
4
4
|
|
|
5
5
|
> [!NOTE]
|
|
6
|
-
> This is a playground for experimenting with `padwan-
|
|
6
|
+
> This is a playground for experimenting with `padwan-ai` features (streaming, agents, MCP, thinking tokens, batch jobs, realtime voice) — not a production-grade tool. Expect rough edges and breaking changes.
|
|
7
7
|
|
|
8
8
|
<img alt="Chat demo" src="https://github.com/polarsen-io/padwan-cli/raw/master/docs/static/chat.gif" width="800"/>
|
|
9
9
|
|
|
@@ -48,7 +48,7 @@ uvx --from "padwan-cli[voice]" padwan-talk
|
|
|
48
48
|
|
|
49
49
|
## Tracing
|
|
50
50
|
|
|
51
|
-
Pass `--trace <backend>` (on the one-shot, `chat send`, and `talk` commands) to instrument all LLM calls with [padwan-
|
|
51
|
+
Pass `--trace <backend>` (on the one-shot, `chat send`, and `talk` commands) to instrument all LLM calls with [padwan-ai's OTel GenAI telemetry](https://github.com/polarsen-io/padwan-ai/blob/master/docs/observability.md):
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
54
|
# Langfuse, using the standard LANGFUSE_* env vars
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
1
|
from typing import TYPE_CHECKING
|
|
4
2
|
|
|
5
3
|
from rich.table import Table
|
|
@@ -7,7 +5,7 @@ from rich.table import Table
|
|
|
7
5
|
from ..utils import console
|
|
8
6
|
|
|
9
7
|
if TYPE_CHECKING:
|
|
10
|
-
from
|
|
8
|
+
from padwan_ai.gemini import BatchJob
|
|
11
9
|
|
|
12
10
|
|
|
13
11
|
def format_job(job: BatchJob) -> None:
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
1
|
import asyncio
|
|
4
2
|
from pathlib import Path
|
|
5
3
|
|
|
6
4
|
from piou import CommandGroup, Option
|
|
7
5
|
from piou.tui import TuiContext, TuiOption
|
|
8
6
|
|
|
9
|
-
from
|
|
10
|
-
from
|
|
7
|
+
from padwan_ai import GEMINI_MODELS
|
|
8
|
+
from padwan_ai.gemini import BatchRequest, BatchResult, GeminiClient
|
|
11
9
|
from ..widgets import BatchProgressWidget, BatchResultWidget
|
|
12
10
|
from .format import console, format_job, format_job_table
|
|
13
11
|
from .utils import load_prompts_from_file, save_results_to_file
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
1
|
import csv
|
|
4
2
|
import json
|
|
5
3
|
from pathlib import Path
|
|
6
4
|
from typing import TYPE_CHECKING
|
|
7
5
|
|
|
8
|
-
from
|
|
6
|
+
from padwan_ai.gemini import BatchRequest, BatchResult
|
|
9
7
|
|
|
10
8
|
if TYPE_CHECKING:
|
|
11
9
|
from typing import Any
|
|
@@ -10,7 +10,7 @@ from piou import Option, CommandGroup
|
|
|
10
10
|
from piou.tui import PromptStyle, TuiContext, TuiOption
|
|
11
11
|
from textual.css.query import NoMatches
|
|
12
12
|
|
|
13
|
-
from
|
|
13
|
+
from padwan_ai import (
|
|
14
14
|
AgentSession,
|
|
15
15
|
ContentPart,
|
|
16
16
|
ConversationSnapshot,
|
|
@@ -26,9 +26,9 @@ from padwan_llm import (
|
|
|
26
26
|
text_file_part,
|
|
27
27
|
text_part,
|
|
28
28
|
)
|
|
29
|
-
from
|
|
30
|
-
from
|
|
31
|
-
from
|
|
29
|
+
from padwan_ai.content import AudioFormat
|
|
30
|
+
from padwan_ai.gemini import GeminiClient
|
|
31
|
+
from padwan_ai.gemini.models import ThinkingConfig
|
|
32
32
|
from .trace import TRACE_BACKENDS, TraceBackend, enable_tracing
|
|
33
33
|
from .utils import ALL_MODELS, console
|
|
34
34
|
from .widgets import (
|
|
@@ -52,7 +52,7 @@ DATAGOUV_MCP_URL = "https://mcp.data.gouv.fr/mcp"
|
|
|
52
52
|
class _InMemoryStore:
|
|
53
53
|
"""ConversationStore keeping snapshots in memory across /chat:send calls.
|
|
54
54
|
|
|
55
|
-
Implements the `
|
|
55
|
+
Implements the `padwan_ai.ConversationStore` protocol so that
|
|
56
56
|
`AgentSession.load` / `AgentSession.save` transparently preserve chat
|
|
57
57
|
history across successive command invocations within the same TUI run.
|
|
58
58
|
"""
|
|
@@ -369,7 +369,7 @@ async def chat_send_fn(
|
|
|
369
369
|
except Exception as e:
|
|
370
370
|
# Surface the error inline: the outer handler is
|
|
371
371
|
# only reached after session teardown, which can
|
|
372
|
-
# hang on the MCP listener (see padwan-
|
|
372
|
+
# hang on the MCP listener (see padwan-ai mcp.py).
|
|
373
373
|
ctx.mount_widget(ErrorMessage(str(e)))
|
|
374
374
|
needs_new_text_widget = True
|
|
375
375
|
ctx.set_silent_queue(False)
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
1
|
import json
|
|
4
2
|
import sys
|
|
5
3
|
from pathlib import Path
|
|
@@ -10,7 +8,7 @@ from piou.tui import get_tui_context
|
|
|
10
8
|
|
|
11
9
|
from rich.table import Table
|
|
12
10
|
|
|
13
|
-
from
|
|
11
|
+
from padwan_ai import (
|
|
14
12
|
ANTHROPIC_MODELS,
|
|
15
13
|
GEMINI_MODELS,
|
|
16
14
|
GROK_MODELS,
|
|
@@ -20,9 +18,9 @@ from padwan_llm import (
|
|
|
20
18
|
LLMClient,
|
|
21
19
|
content_parts,
|
|
22
20
|
)
|
|
23
|
-
from
|
|
24
|
-
from
|
|
25
|
-
from
|
|
21
|
+
from padwan_ai._base import OnThought
|
|
22
|
+
from padwan_ai.conversation import Message
|
|
23
|
+
from padwan_ai.errors import Provider
|
|
26
24
|
|
|
27
25
|
from .utils import console
|
|
28
26
|
from .batch import batch_group
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
1
|
import asyncio
|
|
4
2
|
import contextlib
|
|
5
3
|
import functools
|
|
@@ -15,9 +13,9 @@ from piou import Option
|
|
|
15
13
|
from piou.tui import get_tui_context
|
|
16
14
|
from tracktolib.utils import BytesBuffer
|
|
17
15
|
|
|
18
|
-
from
|
|
19
|
-
from
|
|
20
|
-
from
|
|
16
|
+
from padwan_ai import RealtimeClient, RealtimeConnection, RealtimeServerEvent
|
|
17
|
+
from padwan_ai.errors import LLMError
|
|
18
|
+
from padwan_ai.openai.realtime import NO_TURN_DETECTION, REALTIME_SAMPLE_RATE
|
|
21
19
|
|
|
22
20
|
from .trace import TRACE_BACKENDS, TraceBackend, enable_tracing
|
|
23
21
|
from .utils import console
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
1
|
import atexit
|
|
4
2
|
import os
|
|
5
3
|
from typing import Literal, get_args
|
|
@@ -21,7 +19,7 @@ def _missing_extra(backend: TraceBackend) -> SystemExit:
|
|
|
21
19
|
|
|
22
20
|
|
|
23
21
|
def _enable_langfuse() -> None:
|
|
24
|
-
from
|
|
22
|
+
from padwan_ai.langfuse import instrument
|
|
25
23
|
|
|
26
24
|
integration = instrument()
|
|
27
25
|
atexit.register(integration.shutdown)
|
|
@@ -39,7 +37,7 @@ def _enable_otlp() -> None:
|
|
|
39
37
|
from opentelemetry.sdk.trace import TracerProvider
|
|
40
38
|
from opentelemetry.sdk.trace.export import BatchSpanProcessor
|
|
41
39
|
|
|
42
|
-
from
|
|
40
|
+
from padwan_ai import otel
|
|
43
41
|
|
|
44
42
|
resource = Resource.create({"service.name": "padwan-cli"})
|
|
45
43
|
tracer_provider = TracerProvider(resource=resource)
|
|
@@ -56,7 +54,7 @@ def _enable_otlp() -> None:
|
|
|
56
54
|
|
|
57
55
|
|
|
58
56
|
def enable_tracing(backend: TraceBackend) -> None:
|
|
59
|
-
"""Instrument padwan-
|
|
57
|
+
"""Instrument padwan-ai clients for this process, exporting to `backend`.
|
|
60
58
|
|
|
61
59
|
`langfuse` reads the standard `LANGFUSE_*` env vars; `otlp` uses the
|
|
62
60
|
standard `OTEL_EXPORTER_OTLP_*` env vars. Exporters are flushed at exit.
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
1
|
import json
|
|
4
2
|
from dataclasses import dataclass
|
|
5
3
|
from pathlib import Path
|
|
@@ -15,7 +13,7 @@ from textual.widgets import Static
|
|
|
15
13
|
from piou.tui import StreamingMessage as _StreamingMessage
|
|
16
14
|
|
|
17
15
|
if TYPE_CHECKING:
|
|
18
|
-
from
|
|
16
|
+
from padwan_ai.gemini import BatchJob, BatchResult
|
|
19
17
|
|
|
20
18
|
# Colors for chat messages
|
|
21
19
|
USER_COLOR = "#87ceeb"
|
|
@@ -1,26 +1,40 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "padwan-cli"
|
|
3
|
-
version = "0.6.
|
|
4
|
-
description = "CLI and TUI for padwan-
|
|
3
|
+
version = "0.6.2"
|
|
4
|
+
description = "CLI and TUI for padwan-ai"
|
|
5
5
|
readme = "README.md"
|
|
6
|
-
|
|
6
|
+
license = "MIT"
|
|
7
|
+
license-files = ["LICENSE"]
|
|
8
|
+
requires-python = ">=3.15"
|
|
9
|
+
classifiers = [
|
|
10
|
+
"Environment :: Console",
|
|
11
|
+
"License :: OSI Approved :: MIT License",
|
|
12
|
+
"Operating System :: OS Independent",
|
|
13
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
14
|
+
"Programming Language :: Python :: 3.15",
|
|
15
|
+
]
|
|
7
16
|
dependencies = [
|
|
8
|
-
"padwan-
|
|
17
|
+
"padwan-ai[realtime]>=0.11.1",
|
|
9
18
|
"piou[tui]>=0.36.0",
|
|
10
19
|
"tracktolib>=0.74.0",
|
|
11
20
|
]
|
|
12
21
|
|
|
13
22
|
[[project.authors]]
|
|
14
|
-
email = "julien.brayere@polarsen.
|
|
23
|
+
email = "julien.brayere@polarsen.io"
|
|
24
|
+
|
|
25
|
+
[project.urls]
|
|
26
|
+
Homepage = "https://polarsen-io.github.io/padwan-cli"
|
|
27
|
+
Source = "https://github.com/polarsen-io/padwan-cli"
|
|
28
|
+
Changelog = "https://github.com/polarsen-io/padwan-cli/blob/master/CHANGELOG.md"
|
|
15
29
|
|
|
16
30
|
[project.optional-dependencies]
|
|
17
|
-
voice = ["sounddevice>=0.5"]
|
|
31
|
+
voice = ["sounddevice>=0.5.6"]
|
|
18
32
|
otel = [
|
|
19
|
-
"padwan-
|
|
33
|
+
"padwan-ai[otel]>=0.11.1",
|
|
20
34
|
"opentelemetry-sdk>=1.44",
|
|
21
35
|
"opentelemetry-exporter-otlp>=1.44",
|
|
22
36
|
]
|
|
23
|
-
langfuse = ["padwan-
|
|
37
|
+
langfuse = ["padwan-ai[langfuse]>=0.11.1"]
|
|
24
38
|
|
|
25
39
|
[project.scripts]
|
|
26
40
|
padwan-cli = "padwan_cli:main_tui"
|
|
@@ -46,12 +60,12 @@ asyncio_mode = "auto"
|
|
|
46
60
|
[dependency-groups]
|
|
47
61
|
dev = [
|
|
48
62
|
"piou[tui-reload]>=0.36.0",
|
|
49
|
-
"pyright>=1.1.
|
|
63
|
+
"pyright>=1.1.414",
|
|
50
64
|
"pytest>=8.0.0",
|
|
51
65
|
"pytest-asyncio>=1.3.0",
|
|
52
|
-
"pytest-cov>=7.
|
|
66
|
+
"pytest-cov>=7.1.0",
|
|
53
67
|
"ruff>=0.11.0",
|
|
54
|
-
"padwan-
|
|
68
|
+
"padwan-ai[langfuse]>=0.11.1",
|
|
55
69
|
"opentelemetry-sdk>=1.44",
|
|
56
70
|
"opentelemetry-exporter-otlp>=1.44",
|
|
57
71
|
]
|
|
@@ -1,29 +1,43 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "padwan-cli"
|
|
3
|
-
version = "0.6.
|
|
4
|
-
description = "CLI and TUI for padwan-
|
|
3
|
+
version = "0.6.2"
|
|
4
|
+
description = "CLI and TUI for padwan-ai"
|
|
5
5
|
readme = "README.md"
|
|
6
|
+
license = "MIT"
|
|
7
|
+
license-files = ["LICENSE"]
|
|
6
8
|
authors = [
|
|
7
|
-
{ email = "julien.brayere@polarsen.
|
|
9
|
+
{ email = "julien.brayere@polarsen.io" }
|
|
10
|
+
]
|
|
11
|
+
requires-python = ">=3.15"
|
|
12
|
+
classifiers = [
|
|
13
|
+
"Environment :: Console",
|
|
14
|
+
"License :: OSI Approved :: MIT License",
|
|
15
|
+
"Operating System :: OS Independent",
|
|
16
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
17
|
+
"Programming Language :: Python :: 3.15",
|
|
8
18
|
]
|
|
9
|
-
requires-python = ">=3.14"
|
|
10
19
|
dependencies = [
|
|
11
|
-
"padwan-
|
|
20
|
+
"padwan-ai[realtime]>=0.11.1",
|
|
12
21
|
"piou[tui]>=0.36.0",
|
|
13
22
|
"tracktolib>=0.74.0",
|
|
14
23
|
]
|
|
15
24
|
|
|
25
|
+
[project.urls]
|
|
26
|
+
Homepage = "https://polarsen-io.github.io/padwan-cli"
|
|
27
|
+
Source = "https://github.com/polarsen-io/padwan-cli"
|
|
28
|
+
Changelog = "https://github.com/polarsen-io/padwan-cli/blob/master/CHANGELOG.md"
|
|
29
|
+
|
|
16
30
|
[project.optional-dependencies]
|
|
17
31
|
# `talk` command audio I/O; also needs the PortAudio system lib (libportaudio2).
|
|
18
|
-
voice = ["sounddevice>=0.5"]
|
|
32
|
+
voice = ["sounddevice>=0.5.6"]
|
|
19
33
|
# `--trace otlp`: OTel instrumentation with an OTLP exporter.
|
|
20
34
|
otel = [
|
|
21
|
-
"padwan-
|
|
35
|
+
"padwan-ai[otel]>=0.11.1",
|
|
22
36
|
"opentelemetry-sdk>=1.44",
|
|
23
37
|
"opentelemetry-exporter-otlp>=1.44",
|
|
24
38
|
]
|
|
25
39
|
# `--trace langfuse`: OTel instrumentation with the Langfuse adapter.
|
|
26
|
-
langfuse = ["padwan-
|
|
40
|
+
langfuse = ["padwan-ai[langfuse]>=0.11.1"]
|
|
27
41
|
|
|
28
42
|
[project.scripts]
|
|
29
43
|
padwan-cli = "padwan_cli:main_tui"
|
|
@@ -39,13 +53,13 @@ module-root = ""
|
|
|
39
53
|
[dependency-groups]
|
|
40
54
|
dev = [
|
|
41
55
|
"piou[tui-reload]>=0.36.0",
|
|
42
|
-
"pyright>=1.1.
|
|
56
|
+
"pyright>=1.1.414",
|
|
43
57
|
"pytest>=8.0.0",
|
|
44
58
|
"pytest-asyncio>=1.3.0",
|
|
45
|
-
"pytest-cov>=7.
|
|
59
|
+
"pytest-cov>=7.1.0",
|
|
46
60
|
"ruff>=0.11.0",
|
|
47
61
|
# keep the otel and langfuse extras type-checkable/testable in dev
|
|
48
|
-
"padwan-
|
|
62
|
+
"padwan-ai[langfuse]>=0.11.1",
|
|
49
63
|
"opentelemetry-sdk>=1.44",
|
|
50
64
|
"opentelemetry-exporter-otlp>=1.44",
|
|
51
65
|
]
|
|
File without changes
|