harness-sdk-python 0.39.1__tar.gz → 0.39.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.
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/PKG-INFO +2 -2
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/pyproject.toml +2 -2
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/run_helpers.py +2 -2
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_deepagents_thread.py +2 -2
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_threads.py +3 -3
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/voice_helpers.py +2 -2
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/.gitignore +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/README.md +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/examples/__init__.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/examples/runs_app.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/__init__.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/checkpoints.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/deepagents.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/deepagents_host.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/fenced_postgres.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/interest.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/langgraph.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/linear_thread.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/messages.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/parts.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/protocol.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/providers/__init__.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/providers/gpt_live.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/run_manager.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/threads.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/voice.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/voice_thread.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/wire.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_admit_steer.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_applied_visibility.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_batches.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_branch_anchor.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_checkpoints.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_deepagents_approval.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_deepagents_files.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_deepagents_outcome.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_deepagents_voice.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_dispatching.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_durability.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_edit_dispatched.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_edit_reload.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_enqueue.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_fenced_postgres.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_gpt_live.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_imports.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_input_required.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_interest.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_langgraph.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_linear_thread.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_meta.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_mint_concurrency.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_outcomes.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_parts.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_placement.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_prepare_hooks.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_restore.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_rewind_during_run.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_run_admission.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_run_crash_sweep.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_run_eviction.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_run_id_bounds.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_run_ownership.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_run_sync.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_settle.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_steer.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_stop_continue.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_stopping_window.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_undo.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_voice.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_voice_delegation.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_voice_events.py +0 -0
- {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_wire.py +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: harness-sdk-python
|
|
3
|
-
Version: 0.39.
|
|
3
|
+
Version: 0.39.2
|
|
4
4
|
Summary: RunManager: the harness-sdk runs subsystem for Python Statewire hosts
|
|
5
5
|
Project-URL: Repository, https://github.com/assistant-ui/harness-sdk
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Requires-Python: <4.0,>=3.12
|
|
8
8
|
Requires-Dist: pinned<0.17,>=0.16.0
|
|
9
|
-
Requires-Dist: statewire<0.
|
|
9
|
+
Requires-Dist: statewire<0.24,>=0.21.2
|
|
10
10
|
Provides-Extra: deepagents
|
|
11
11
|
Requires-Dist: deepagents>=0.6.12; extra == 'deepagents'
|
|
12
12
|
Requires-Dist: langchain-core>=0.3; extra == 'deepagents'
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "harness-sdk-python"
|
|
3
|
-
version = "0.39.
|
|
3
|
+
version = "0.39.2"
|
|
4
4
|
description = "RunManager: the harness-sdk runs subsystem for Python Statewire hosts"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "MIT"
|
|
7
7
|
requires-python = ">=3.12,<4.0"
|
|
8
|
-
dependencies = ["statewire>=0.21.2,<0.
|
|
8
|
+
dependencies = ["statewire>=0.21.2,<0.24", "pinned>=0.16.0,<0.17"]
|
|
9
9
|
|
|
10
10
|
[project.optional-dependencies]
|
|
11
11
|
postgres = ["langgraph-checkpoint-postgres>=2.0.0"]
|
|
@@ -8,7 +8,7 @@ from uuid import uuid4
|
|
|
8
8
|
from pinned import PinnedWorker
|
|
9
9
|
from pinned.testing import MemoryStateStore
|
|
10
10
|
from statewire import Statewire, command
|
|
11
|
-
from statewire.protocol import Offer, Protocol, VersionRange
|
|
11
|
+
from statewire.protocol import VERSION, Offer, Protocol, VersionRange
|
|
12
12
|
from statewire.protocol import headers as protocol_headers
|
|
13
13
|
from statewire_helpers import apply_ops, attach, post_frame, statewire_client, stream_of
|
|
14
14
|
|
|
@@ -57,7 +57,7 @@ class Script:
|
|
|
57
57
|
|
|
58
58
|
def negotiating(version: str) -> dict[str, str]:
|
|
59
59
|
"""Attach headers offering only ``version`` of the test host's protocol."""
|
|
60
|
-
return protocol_headers(VersionRange(), (Offer("default", VersionRange(version)),))
|
|
60
|
+
return protocol_headers(VersionRange(VERSION), (Offer("default", VersionRange(version)),))
|
|
61
61
|
|
|
62
62
|
|
|
63
63
|
def _meta(params: Any) -> Any:
|
|
@@ -15,7 +15,7 @@ from langgraph.checkpoint.memory import InMemorySaver
|
|
|
15
15
|
from pinned import PinnedWorker
|
|
16
16
|
from pinned.testing import MemoryStateStore
|
|
17
17
|
from run_helpers import _statement, add, edit_params, msg
|
|
18
|
-
from statewire.protocol import Offer, VersionRange, headers as protocol_headers
|
|
18
|
+
from statewire.protocol import VERSION, Offer, VersionRange, headers as protocol_headers
|
|
19
19
|
from statewire_helpers import apply_ops, post_frame, statewire_client, stream_of
|
|
20
20
|
from voice_helpers import NEGOTIATION, VoiceDriver
|
|
21
21
|
|
|
@@ -346,7 +346,7 @@ async def test_host_stale_on_branch_send_appends_at_the_leaf_from_2026_11_02(ver
|
|
|
346
346
|
checkpointer = InMemorySaver()
|
|
347
347
|
index = MemoryCheckpointIndex()
|
|
348
348
|
|
|
349
|
-
headers = protocol_headers(VersionRange(), (Offer("harness-sdk", VersionRange(version)),))
|
|
349
|
+
headers = protocol_headers(VersionRange(VERSION), (Offer("harness-sdk", VersionRange(version)),))
|
|
350
350
|
async with statewire_client(Fresh, worker=PinnedWorker(state_store=MemoryStateStore())) as (app, client):
|
|
351
351
|
async with stream_of(app, client_id="c1", headers=headers) as stream:
|
|
352
352
|
snapshot = await stream.next_event()
|
|
@@ -9,7 +9,7 @@ from fastapi import FastAPI
|
|
|
9
9
|
from pinned import PinnedAPI, PinnedHost, PinnedWorker, route
|
|
10
10
|
from pinned.testing import MemoryStateStore
|
|
11
11
|
from run_helpers import RunDriver, Script, add, make_host
|
|
12
|
-
from statewire.protocol import Offer, VersionRange, headers as protocol_headers
|
|
12
|
+
from statewire.protocol import VERSION, Offer, VersionRange, headers as protocol_headers
|
|
13
13
|
from statewire_helpers import CLIENT_ID_HEADER, SSEStream, apply_ops, cmd_on, stream_of
|
|
14
14
|
|
|
15
15
|
from harness_sdk import RunManager
|
|
@@ -20,8 +20,8 @@ from harness_sdk.wire import HarnessMessages, first_user_text
|
|
|
20
20
|
|
|
21
21
|
pytestmark = pytest.mark.anyio
|
|
22
22
|
|
|
23
|
-
NEGOTIATION = protocol_headers(VersionRange(), (Offer("harness-sdk-threads", VersionRange("2026-09-13")),))
|
|
24
|
-
HOST_NEGOTIATION = protocol_headers(VersionRange(), (Offer("harness-sdk", VersionRange()),))
|
|
23
|
+
NEGOTIATION = protocol_headers(VersionRange(VERSION), (Offer("harness-sdk-threads", VersionRange("2026-09-13")),))
|
|
24
|
+
HOST_NEGOTIATION = protocol_headers(VersionRange(VERSION), (Offer("harness-sdk", VersionRange(VERSION)),))
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
class Toucher(PinnedAPI):
|
|
@@ -10,7 +10,7 @@ from pinned.testing import MemoryStateStore
|
|
|
10
10
|
from run_helpers import RunDriver, _statement
|
|
11
11
|
from statewire import Statewire, command
|
|
12
12
|
from statewire.client import apply_ops as client_apply_ops
|
|
13
|
-
from statewire.protocol import Offer, VersionRange, headers as protocol_headers
|
|
13
|
+
from statewire.protocol import VERSION, Offer, VersionRange, headers as protocol_headers
|
|
14
14
|
from statewire_helpers import apply_ops, post_frame, statewire_client, stream_of
|
|
15
15
|
|
|
16
16
|
from harness_sdk import (
|
|
@@ -26,7 +26,7 @@ from harness_sdk import (
|
|
|
26
26
|
from harness_sdk.messages import MAIN_NS
|
|
27
27
|
from harness_sdk.protocol import HARNESS_PROTOCOL
|
|
28
28
|
|
|
29
|
-
NEGOTIATION = protocol_headers(VersionRange(), (Offer("harness-sdk", VersionRange()),))
|
|
29
|
+
NEGOTIATION = protocol_headers(VersionRange(VERSION), (Offer("harness-sdk", VersionRange(VERSION)),))
|
|
30
30
|
|
|
31
31
|
OFFER = "v=0 fake-offer"
|
|
32
32
|
ANSWER = "v=0 fake-answer"
|
|
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
|
{harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/providers/__init__.py
RENAMED
|
File without changes
|
{harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/providers/gpt_live.py
RENAMED
|
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
|