pari-cli 0.1.6__tar.gz → 0.1.7__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.
- {pari_cli-0.1.6 → pari_cli-0.1.7}/PKG-INFO +1 -1
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/__init__.py +1 -1
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/sandbox/base.py +7 -2
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari_cli.egg-info/PKG-INFO +1 -1
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pyproject.toml +1 -1
- {pari_cli-0.1.6 → pari_cli-0.1.7}/LICENSE +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/README.md +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/__main__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/agent/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/agent/guards.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/agent/lint.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/agent/loop.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/agent/reflection.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/agent/runtime.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/agent/subagent.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/auth/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/auth/account.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/auth/credential.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/auth/interactive.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/auth/login.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/auth/menu.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/auth/providers.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/auth/secret_field.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/auth/store.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/auth/verify.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/cli.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/config.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/context/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/context/cache.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/context/chunks.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/context/compaction.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/context/epoch.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/context/warmer.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/edit/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/edit/cascade.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/edit/diff.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/edit/dmp.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/edit/exact.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/edit/git_osr.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/edit/indenter.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/eval/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/eval/judge.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/eval/logging.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/eval/metrics.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/eval/runner.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/fs/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/fs/atomic.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/fs/path.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/fs/queue.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/intelligence/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/intelligence/ast.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/intelligence/cache.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/intelligence/ppr.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/intelligence/repomap.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/intelligence/search.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/output/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/output/parser.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/output/spooler.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/output/truncation.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/anthropic.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/base.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/deepseek.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/exceptions/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/exceptions/classifier.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/exceptions/mapping.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/exceptions/types.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/grok.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/http.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/message.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/mock.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/ollama.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/openai.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/openai_compat.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/openrouter.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/response.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/schemas/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/schemas/anthropic.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/schemas/openai.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/schemas/types.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/providers/stream.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/routing/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/routing/anti_verbosity.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/routing/classifier.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/routing/router.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/sandbox/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/sandbox/bwrap.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/sandbox/dispatcher.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/sandbox/e2b.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/sandbox/process.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/sandbox/seatbelt.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/session/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/session/checkpoint.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/session/dag.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/session/events.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/session/logger.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/session/undo.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tools/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tools/base.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tools/bash.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tools/fs.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tools/output_reader.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tools/registry.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tools/search.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tui/__init__.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tui/activity.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tui/app.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tui/commands.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tui/completer.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tui/diff_view.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tui/errors.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tui/keys.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tui/prompt.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tui/slash.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tui/status.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tui/style.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari/tui/transcript.py +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari_cli.egg-info/SOURCES.txt +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari_cli.egg-info/dependency_links.txt +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari_cli.egg-info/entry_points.txt +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari_cli.egg-info/requires.txt +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/pari_cli.egg-info/top_level.txt +0 -0
- {pari_cli-0.1.6 → pari_cli-0.1.7}/setup.cfg +0 -0
|
@@ -14,7 +14,6 @@ from __future__ import annotations
|
|
|
14
14
|
import codecs
|
|
15
15
|
import ctypes
|
|
16
16
|
import os
|
|
17
|
-
import pty
|
|
18
17
|
import shlex
|
|
19
18
|
import signal
|
|
20
19
|
import subprocess
|
|
@@ -27,6 +26,12 @@ from dataclasses import dataclass, field
|
|
|
27
26
|
from pathlib import Path
|
|
28
27
|
|
|
29
28
|
|
|
29
|
+
try:
|
|
30
|
+
import pty
|
|
31
|
+
except ImportError:
|
|
32
|
+
pty = None # Windows has no pty module.
|
|
33
|
+
|
|
34
|
+
|
|
30
35
|
_SECRET_ENV_MARKERS = (
|
|
31
36
|
"KEY",
|
|
32
37
|
"TOKEN",
|
|
@@ -230,7 +235,7 @@ class SandboxRunner(ABC):
|
|
|
230
235
|
# A tty flushes each line. A pipe holds the output until the process exits.
|
|
231
236
|
# Layer 4 runs commands on a PTY. Fall back to pipes when the host has none.
|
|
232
237
|
master, slave = (None, None)
|
|
233
|
-
if on_output is not None:
|
|
238
|
+
if on_output is not None and pty is not None:
|
|
234
239
|
try:
|
|
235
240
|
master, slave = pty.openpty()
|
|
236
241
|
except OSError:
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pari-cli"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.7"
|
|
8
8
|
description = "A resilient, sandbox-first terminal coding agent engineered for high pass rates and low token burn."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|