evolve-sdk 0.0.55.dev1156__tar.gz → 0.0.55.dev1159__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 (44) hide show
  1. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/PKG-INFO +1 -1
  2. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/__init__.py +1 -1
  3. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/hosted.py +71 -2
  4. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve_sdk.egg-info/PKG-INFO +1 -1
  5. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/pyproject.toml +1 -1
  6. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/LICENSE +0 -0
  7. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/MANIFEST.in +0 -0
  8. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/README.md +0 -0
  9. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/bridge/__init__.py +0 -0
  10. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/bridge/dist/bridge.bundle.cjs +0 -0
  11. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/_http.py +0 -0
  12. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/agent.py +0 -0
  13. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/bridge.py +0 -0
  14. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/browser_credentials.py +0 -0
  15. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/browser_profiles.py +0 -0
  16. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/config.py +0 -0
  17. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/integrations.py +0 -0
  18. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/managed_secrets.py +0 -0
  19. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/pipeline/__init__.py +0 -0
  20. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/pipeline/pipeline.py +0 -0
  21. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/pipeline/types.py +0 -0
  22. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/__init__.py +0 -0
  23. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/agent_md/judge.md +0 -0
  24. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/agent_md/reduce.md +0 -0
  25. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/agent_md/verify.md +0 -0
  26. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/user/judge.md +0 -0
  27. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/user/retry_feedback.md +0 -0
  28. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/user/verify.md +0 -0
  29. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/py.typed +0 -0
  30. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/results.py +0 -0
  31. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/retry.py +0 -0
  32. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/schema.py +0 -0
  33. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/sessions_client.py +0 -0
  34. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/storage_client.py +0 -0
  35. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/swarm/__init__.py +0 -0
  36. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/swarm/results.py +0 -0
  37. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/swarm/swarm.py +0 -0
  38. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/swarm/types.py +0 -0
  39. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/utils.py +0 -0
  40. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve_sdk.egg-info/SOURCES.txt +0 -0
  41. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve_sdk.egg-info/dependency_links.txt +0 -0
  42. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve_sdk.egg-info/requires.txt +0 -0
  43. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve_sdk.egg-info/top_level.txt +0 -0
  44. {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolve-sdk
3
- Version: 0.0.55.dev1156
3
+ Version: 0.0.55.dev1159
4
4
  Summary: Pythonic SDK for multi-agent orchestration in E2B sandboxes
5
5
  Author-email: "Swarmlink, Inc." <brandomagnani@evolvingmachines.ai>
6
6
  License: Apache-2.0
@@ -472,7 +472,7 @@ async def list_checkpoints(
472
472
  await store.close()
473
473
 
474
474
 
475
- __version__ = '0.0.55.dev1156'
475
+ __version__ = '0.0.55.dev1159'
476
476
 
477
477
  __all__ = [
478
478
  # Main classes
@@ -1520,7 +1520,9 @@ class Rubric(TypedDict):
1520
1520
  class AnalyzeConfigInput(TypedDict, total=False):
1521
1521
  """Trace-analysis configuration INPUT — Harbor's ``harbor analyze``
1522
1522
  vocabulary (their cli/analyze.py: ``--model``, ``--rubric``,
1523
- ``--prompt``), the spec's ``AnalyzeConfigInput`` schema.
1523
+ ``--prompt``, and the selection and width options ``-n/--n-concurrent``,
1524
+ ``--passing`` / ``--failing``, ``-l/--n-trials``), the spec's
1525
+ ``AnalyzeConfigInput`` schema.
1524
1526
 
1525
1527
  PRESENCE of this object is the switch: on ``jobs().start(analyze=...)``
1526
1528
  it arms the embedded trigger (each trial is analyzed server-side right
@@ -1583,6 +1585,36 @@ class AnalyzeConfigInput(TypedDict, total=False):
1583
1585
  #: enqueue (daytona unless the operator retuned the fleet) — the value
1584
1586
  #: the resolved ``AnalyzeConfig['sandbox_provider']`` echo reports.
1585
1587
  sandbox_provider: EvalSandboxProvider
1588
+ #: How many of this wave's analyses run at once — Harbor's
1589
+ #: ``-n/--n-concurrent`` ("Max concurrent trial analyses", their
1590
+ #: cli/analyze.py:278-280). Bounded by the organization's
1591
+ #: ``max_concurrent_analyses`` at every claim: the job never holds more
1592
+ #: than the smaller of the two RUNNING fleet-wide. Omitted, the
1593
+ #: organization's ceiling alone bounds the wave (its fleet default is 4,
1594
+ #: Harbor's own default) and the resolved echo reads ``None``. An
1595
+ #: integer in ``[1, 150]``; anything else is refused ``invalid_input``
1596
+ #: naming ``analyze.n_concurrent``.
1597
+ n_concurrent: int
1598
+ #: Analyze only the passing trials — Harbor's ``--passing`` ("Only
1599
+ #: analyze passing trials (reward=1.0)", their cli/analyze.py:282-284):
1600
+ #: a trial passes when it is SCORED with a primary reward of exactly 1.
1601
+ #: Mutually exclusive with ``failing``: both true is refused
1602
+ #: ``invalid_input`` — Harbor's own "Cannot use both --passing and
1603
+ #: --failing".
1604
+ passing: bool
1605
+ #: Analyze only the failing trials — Harbor's ``--failing`` ("Only
1606
+ #: analyze failing trials (reward<1.0 or exception)", their
1607
+ #: cli/analyze.py:285-287): every analyzable trial that is not passing —
1608
+ #: a reward below 1 or none, and every error status. CANCELLED trials
1609
+ #: are never analyzed under either filter.
1610
+ failing: bool
1611
+ #: At most this many trials get an analysis — Harbor's ``-l/--n-trials``
1612
+ #: ("Max trials to analyze", their cli/analyze.py:288-290), applied AFTER
1613
+ #: the reward filter: on the manual wave the first ``n_trials`` matching
1614
+ #: trials in the job's trial order; on the embedded trigger the first
1615
+ #: ``n_trials`` matching trials to settle. An integer of at least 1;
1616
+ #: anything else is refused ``invalid_input`` naming ``analyze.n_trials``.
1617
+ n_trials: int
1586
1618
 
1587
1619
 
1588
1620
  class AnalyzeConfig(TypedDict):
@@ -1613,6 +1645,18 @@ class AnalyzeConfig(TypedDict):
1613
1645
  #: resolved-at-accept law above, stated so the echo is never read as
1614
1646
  #: history).
1615
1647
  sandbox_provider: EvalSandboxProvider
1648
+ #: The per-job width this policy's analyses are claimed under
1649
+ #: (``AnalyzeConfigInput['n_concurrent']``, as stored); None = none
1650
+ #: named, the organization's ``max_concurrent_analyses`` alone bounds
1651
+ #: the wave.
1652
+ n_concurrent: Optional[int]
1653
+ #: The reward filter as stored; both ``passing`` and ``failing`` False =
1654
+ #: every analyzable trial.
1655
+ passing: bool
1656
+ failing: bool
1657
+ #: The trial cap as stored (``AnalyzeConfigInput['n_trials']``); None =
1658
+ #: no cap.
1659
+ n_trials: Optional[int]
1616
1660
 
1617
1661
 
1618
1662
  class AnalysisCheck(TypedDict):
@@ -7072,6 +7116,10 @@ class JobsClient:
7072
7116
  prompt: Optional[str] = None,
7073
7117
  sandbox_provider: Optional[EvalSandboxProvider] = None,
7074
7118
  reasoning_effort: Optional[str] = None,
7119
+ n_concurrent: Optional[int] = None,
7120
+ passing: Optional[bool] = None,
7121
+ failing: Optional[bool] = None,
7122
+ n_trials: Optional[int] = None,
7075
7123
  ) -> Job:
7076
7124
  """Analyze a terminal job's trial traces (rubric-driven, Harbor's
7077
7125
  ``harbor analyze``), server-side.
@@ -7102,6 +7150,18 @@ class JobsClient:
7102
7150
  at high over Harbor's default rubric (reward_hacking,
7103
7151
  task_specification), on the platform's analysis default provider.
7104
7152
  CANCELLED trials are never analyzed.
7153
+ Which trials, and how wide, are Harbor's own analyze options with
7154
+ their exact names (their cli/analyze.py:278-290): ``passing`` /
7155
+ ``failing`` analyze only the trials on that side of the reward
7156
+ line (passing = SCORED with reward exactly 1; failing = everything
7157
+ else analyzable — reward below 1 or none, and every error status);
7158
+ ``n_trials`` caps the wave at the first N matching trials in the
7159
+ job's trial order, after the filter (Harbor's ``-l/--n-trials``);
7160
+ ``n_concurrent`` is how many of the wave's analyses run at once,
7161
+ beneath the organization's ``max_concurrent_analyses`` (Harbor's
7162
+ ``-n/--n-concurrent``; omitted = the ceiling alone). ``passing`` and
7163
+ ``failing`` together are refused ``invalid_input`` — Harbor's own
7164
+ "Cannot use both --passing and --failing".
7105
7165
 
7106
7166
  The server owns every acceptance refusal, surfaced typed:
7107
7167
  ``job_not_terminal``, ``invalid_rubric`` (unknown keys named, empty
@@ -7110,7 +7170,8 @@ class JobsClient:
7110
7170
  provider outside the lineup — the message names the roster, the
7111
7171
  bound or the legal values),
7112
7172
  ``analysis_already_running`` (one wave at a time),
7113
- ``no_analyzable_trials`` (every trial CANCELLED).
7173
+ ``no_analyzable_trials`` (every trial CANCELLED, or no trial on the
7174
+ side of the reward filter).
7114
7175
  """
7115
7176
  body: Dict[str, Any] = {}
7116
7177
  if model_name is not None:
@@ -7123,6 +7184,14 @@ class JobsClient:
7123
7184
  body['sandbox_provider'] = sandbox_provider
7124
7185
  if reasoning_effort is not None:
7125
7186
  body['reasoning_effort'] = reasoning_effort
7187
+ if n_concurrent is not None:
7188
+ body['n_concurrent'] = n_concurrent
7189
+ if passing is not None:
7190
+ body['passing'] = passing
7191
+ if failing is not None:
7192
+ body['failing'] = failing
7193
+ if n_trials is not None:
7194
+ body['n_trials'] = n_trials
7126
7195
  raw = await self._http.request_json(
7127
7196
  f'/api/jobs/{urllib.parse.quote(id)}/analyze', method='POST', body=body
7128
7197
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolve-sdk
3
- Version: 0.0.55.dev1156
3
+ Version: 0.0.55.dev1159
4
4
  Summary: Pythonic SDK for multi-agent orchestration in E2B sandboxes
5
5
  Author-email: "Swarmlink, Inc." <brandomagnani@evolvingmachines.ai>
6
6
  License: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "evolve-sdk"
7
- version = "0.0.55.dev1156"
7
+ version = "0.0.55.dev1159"
8
8
  description = "Pythonic SDK for multi-agent orchestration in E2B sandboxes"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"