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.
Files changed (72) hide show
  1. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/PKG-INFO +2 -2
  2. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/pyproject.toml +2 -2
  3. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/run_helpers.py +2 -2
  4. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_deepagents_thread.py +2 -2
  5. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_threads.py +3 -3
  6. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/voice_helpers.py +2 -2
  7. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/.gitignore +0 -0
  8. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/README.md +0 -0
  9. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/examples/__init__.py +0 -0
  10. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/examples/runs_app.py +0 -0
  11. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/__init__.py +0 -0
  12. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/checkpoints.py +0 -0
  13. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/deepagents.py +0 -0
  14. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/deepagents_host.py +0 -0
  15. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/fenced_postgres.py +0 -0
  16. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/interest.py +0 -0
  17. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/langgraph.py +0 -0
  18. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/linear_thread.py +0 -0
  19. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/messages.py +0 -0
  20. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/parts.py +0 -0
  21. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/protocol.py +0 -0
  22. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/providers/__init__.py +0 -0
  23. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/providers/gpt_live.py +0 -0
  24. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/run_manager.py +0 -0
  25. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/threads.py +0 -0
  26. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/voice.py +0 -0
  27. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/voice_thread.py +0 -0
  28. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/src/harness_sdk/wire.py +0 -0
  29. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_admit_steer.py +0 -0
  30. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_applied_visibility.py +0 -0
  31. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_batches.py +0 -0
  32. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_branch_anchor.py +0 -0
  33. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_checkpoints.py +0 -0
  34. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_deepagents_approval.py +0 -0
  35. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_deepagents_files.py +0 -0
  36. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_deepagents_outcome.py +0 -0
  37. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_deepagents_voice.py +0 -0
  38. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_dispatching.py +0 -0
  39. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_durability.py +0 -0
  40. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_edit_dispatched.py +0 -0
  41. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_edit_reload.py +0 -0
  42. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_enqueue.py +0 -0
  43. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_fenced_postgres.py +0 -0
  44. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_gpt_live.py +0 -0
  45. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_imports.py +0 -0
  46. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_input_required.py +0 -0
  47. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_interest.py +0 -0
  48. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_langgraph.py +0 -0
  49. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_linear_thread.py +0 -0
  50. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_meta.py +0 -0
  51. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_mint_concurrency.py +0 -0
  52. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_outcomes.py +0 -0
  53. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_parts.py +0 -0
  54. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_placement.py +0 -0
  55. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_prepare_hooks.py +0 -0
  56. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_restore.py +0 -0
  57. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_rewind_during_run.py +0 -0
  58. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_run_admission.py +0 -0
  59. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_run_crash_sweep.py +0 -0
  60. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_run_eviction.py +0 -0
  61. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_run_id_bounds.py +0 -0
  62. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_run_ownership.py +0 -0
  63. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_run_sync.py +0 -0
  64. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_settle.py +0 -0
  65. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_steer.py +0 -0
  66. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_stop_continue.py +0 -0
  67. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_stopping_window.py +0 -0
  68. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_undo.py +0 -0
  69. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_voice.py +0 -0
  70. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_voice_delegation.py +0 -0
  71. {harness_sdk_python-0.39.1 → harness_sdk_python-0.39.2}/tests/test_voice_events.py +0 -0
  72. {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.1
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.23,>=0.21.2
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.1"
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.23", "pinned>=0.16.0,<0.17"]
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"