whileai 0.58__tar.gz → 0.59__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.
- {whileai-0.58/whileai.egg-info → whileai-0.59}/PKG-INFO +1 -1
- {whileai-0.58 → whileai-0.59}/pyproject.toml +1 -1
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/judge_trust.py +26 -5
- {whileai-0.58 → whileai-0.59/whileai.egg-info}/PKG-INFO +1 -1
- {whileai-0.58 → whileai-0.59}/LICENSE +0 -0
- {whileai-0.58 → whileai-0.59}/MANIFEST.in +0 -0
- {whileai-0.58 → whileai-0.59}/README.md +0 -0
- {whileai-0.58 → whileai-0.59}/setup.cfg +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/__init__.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/_env.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/auth.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/cli.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/ingest.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/py.typed +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/__init__.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/__main__.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/data.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/environment.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/export.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/__init__.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/actionspace.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/adapters.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/agents.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/coverage.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/diversity.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/embeddings.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/explore.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/generator.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/offline_agent.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/scenarios.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/usage_meter.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/ingest/__init__.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/ingest/otel.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/ingest/platform.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/ingest/traces.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/monitor.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/py.typed +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/run/__init__.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/run/config.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/run/engine.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/run/rows.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/run/spec.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/schema.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/schemas/row-v1.json +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/__init__.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/agreement.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/audit.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/checklist.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/curriculum.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/delta.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/grade_llm.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/grading.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/grounding.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/hack_scan.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/hygiene.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/judging.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/labels.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/llm_judge.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/logprobs.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/markers.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/optimize.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/pairwise.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/passat.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/preflight.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/privileged.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/publish_gate.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/quality.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/reference.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/rubric.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/spec.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/stage.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/stats.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/style.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/score/trace.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/simulation.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/training.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/verify/__init__.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/verify/base.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/verify/code.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/verify/math.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/verify/structured.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/verify/text.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/world/__init__.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai/simulations/world/sandbox.py +0 -0
- {whileai-0.58 → whileai-0.59}/whileai.egg-info/SOURCES.txt +0 -0
- {whileai-0.58 → whileai-0.59}/whileai.egg-info/dependency_links.txt +0 -0
- {whileai-0.58 → whileai-0.59}/whileai.egg-info/entry_points.txt +0 -0
- {whileai-0.58 → whileai-0.59}/whileai.egg-info/requires.txt +0 -0
- {whileai-0.58 → whileai-0.59}/whileai.egg-info/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "whileai"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.59"
|
|
8
8
|
description = "While Python SDK: trace ingestion and verification client, plus agent simulations grounded in your tools and system prompt."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {text = "Apache-2.0"}
|
|
@@ -526,11 +526,32 @@ def judge_trust(
|
|
|
526
526
|
if trusted and agree["n"]:
|
|
527
527
|
low = agree["ci95"][0]
|
|
528
528
|
if low < min_agreement:
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
529
|
+
point = float(agree.get("agreement") or 0.0)
|
|
530
|
+
need = int(agree["n"])
|
|
531
|
+
if point > min_agreement:
|
|
532
|
+
while need < 1000:
|
|
533
|
+
ci = wilson_interval(round(point * need), need)
|
|
534
|
+
if ci is not None and ci[0] >= min_agreement:
|
|
535
|
+
break
|
|
536
|
+
need += 1
|
|
537
|
+
if point > min_agreement and need <= 200:
|
|
538
|
+
# The judge agrees often enough; the sample is what is short.
|
|
539
|
+
# Say how many labels the bound needs at this agreement rate,
|
|
540
|
+
# or a perfect judge on 14 labels reads as "change the judge". At
|
|
541
|
+
# the floor exactly, or when the count is out of reach, the old
|
|
542
|
+
# advice stands: the judge is what to change.
|
|
543
|
+
warnings.append(
|
|
544
|
+
f"Judge agreement with human labels is {point:.2f} on {agree['n']} labels, "
|
|
545
|
+
f"but the lower bound is {low:.2f}, under the {min_agreement:.2f} floor. "
|
|
546
|
+
f"The judge is not the problem; the sample is. Label about "
|
|
547
|
+
f'{need} rows (attach_labels(kind="human")) and run judge_trust again.'
|
|
548
|
+
)
|
|
549
|
+
else:
|
|
550
|
+
warnings.append(
|
|
551
|
+
f"Judge agreement with human labels is {low:.2f} (lower bound), under the "
|
|
552
|
+
f"{min_agreement:.2f} floor. Change the judge prompt or the judge model, then "
|
|
553
|
+
"run judge_trust again."
|
|
554
|
+
)
|
|
534
555
|
kappa = agree["kappa"]
|
|
535
556
|
if not degenerate_gold and kappa is not None and kappa < min_kappa:
|
|
536
557
|
warnings.append(
|
|
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
|