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.
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/PKG-INFO +1 -1
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/__init__.py +1 -1
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/hosted.py +71 -2
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve_sdk.egg-info/PKG-INFO +1 -1
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/pyproject.toml +1 -1
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/LICENSE +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/MANIFEST.in +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/README.md +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/bridge/__init__.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/bridge/dist/bridge.bundle.cjs +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/_http.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/agent.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/bridge.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/browser_credentials.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/browser_profiles.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/config.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/integrations.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/managed_secrets.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/pipeline/__init__.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/pipeline/pipeline.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/pipeline/types.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/__init__.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/agent_md/judge.md +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/agent_md/reduce.md +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/agent_md/verify.md +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/user/judge.md +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/user/retry_feedback.md +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/user/verify.md +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/py.typed +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/results.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/retry.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/schema.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/sessions_client.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/storage_client.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/swarm/__init__.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/swarm/results.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/swarm/swarm.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/swarm/types.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/utils.py +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve_sdk.egg-info/SOURCES.txt +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve_sdk.egg-info/dependency_links.txt +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve_sdk.egg-info/requires.txt +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve_sdk.egg-info/top_level.txt +0 -0
- {evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/setup.cfg +0 -0
|
@@ -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
|
|
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
|
)
|
|
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
|
{evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve/prompts/user/retry_feedback.md
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
|
{evolve_sdk-0.0.55.dev1156 → evolve_sdk-0.0.55.dev1159}/evolve_sdk.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|