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.
Files changed (89) hide show
  1. {whileai-0.58/whileai.egg-info → whileai-0.59}/PKG-INFO +1 -1
  2. {whileai-0.58 → whileai-0.59}/pyproject.toml +1 -1
  3. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/judge_trust.py +26 -5
  4. {whileai-0.58 → whileai-0.59/whileai.egg-info}/PKG-INFO +1 -1
  5. {whileai-0.58 → whileai-0.59}/LICENSE +0 -0
  6. {whileai-0.58 → whileai-0.59}/MANIFEST.in +0 -0
  7. {whileai-0.58 → whileai-0.59}/README.md +0 -0
  8. {whileai-0.58 → whileai-0.59}/setup.cfg +0 -0
  9. {whileai-0.58 → whileai-0.59}/whileai/__init__.py +0 -0
  10. {whileai-0.58 → whileai-0.59}/whileai/_env.py +0 -0
  11. {whileai-0.58 → whileai-0.59}/whileai/auth.py +0 -0
  12. {whileai-0.58 → whileai-0.59}/whileai/cli.py +0 -0
  13. {whileai-0.58 → whileai-0.59}/whileai/ingest.py +0 -0
  14. {whileai-0.58 → whileai-0.59}/whileai/py.typed +0 -0
  15. {whileai-0.58 → whileai-0.59}/whileai/simulations/__init__.py +0 -0
  16. {whileai-0.58 → whileai-0.59}/whileai/simulations/__main__.py +0 -0
  17. {whileai-0.58 → whileai-0.59}/whileai/simulations/data.py +0 -0
  18. {whileai-0.58 → whileai-0.59}/whileai/simulations/environment.py +0 -0
  19. {whileai-0.58 → whileai-0.59}/whileai/simulations/export.py +0 -0
  20. {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/__init__.py +0 -0
  21. {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/actionspace.py +0 -0
  22. {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/adapters.py +0 -0
  23. {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/agents.py +0 -0
  24. {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/coverage.py +0 -0
  25. {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/diversity.py +0 -0
  26. {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/embeddings.py +0 -0
  27. {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/explore.py +0 -0
  28. {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/generator.py +0 -0
  29. {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/offline_agent.py +0 -0
  30. {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/scenarios.py +0 -0
  31. {whileai-0.58 → whileai-0.59}/whileai/simulations/generate/usage_meter.py +0 -0
  32. {whileai-0.58 → whileai-0.59}/whileai/simulations/ingest/__init__.py +0 -0
  33. {whileai-0.58 → whileai-0.59}/whileai/simulations/ingest/otel.py +0 -0
  34. {whileai-0.58 → whileai-0.59}/whileai/simulations/ingest/platform.py +0 -0
  35. {whileai-0.58 → whileai-0.59}/whileai/simulations/ingest/traces.py +0 -0
  36. {whileai-0.58 → whileai-0.59}/whileai/simulations/monitor.py +0 -0
  37. {whileai-0.58 → whileai-0.59}/whileai/simulations/py.typed +0 -0
  38. {whileai-0.58 → whileai-0.59}/whileai/simulations/run/__init__.py +0 -0
  39. {whileai-0.58 → whileai-0.59}/whileai/simulations/run/config.py +0 -0
  40. {whileai-0.58 → whileai-0.59}/whileai/simulations/run/engine.py +0 -0
  41. {whileai-0.58 → whileai-0.59}/whileai/simulations/run/rows.py +0 -0
  42. {whileai-0.58 → whileai-0.59}/whileai/simulations/run/spec.py +0 -0
  43. {whileai-0.58 → whileai-0.59}/whileai/simulations/schema.py +0 -0
  44. {whileai-0.58 → whileai-0.59}/whileai/simulations/schemas/row-v1.json +0 -0
  45. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/__init__.py +0 -0
  46. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/agreement.py +0 -0
  47. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/audit.py +0 -0
  48. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/checklist.py +0 -0
  49. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/curriculum.py +0 -0
  50. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/delta.py +0 -0
  51. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/grade_llm.py +0 -0
  52. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/grading.py +0 -0
  53. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/grounding.py +0 -0
  54. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/hack_scan.py +0 -0
  55. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/hygiene.py +0 -0
  56. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/judging.py +0 -0
  57. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/labels.py +0 -0
  58. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/llm_judge.py +0 -0
  59. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/logprobs.py +0 -0
  60. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/markers.py +0 -0
  61. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/optimize.py +0 -0
  62. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/pairwise.py +0 -0
  63. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/passat.py +0 -0
  64. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/preflight.py +0 -0
  65. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/privileged.py +0 -0
  66. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/publish_gate.py +0 -0
  67. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/quality.py +0 -0
  68. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/reference.py +0 -0
  69. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/rubric.py +0 -0
  70. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/spec.py +0 -0
  71. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/stage.py +0 -0
  72. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/stats.py +0 -0
  73. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/style.py +0 -0
  74. {whileai-0.58 → whileai-0.59}/whileai/simulations/score/trace.py +0 -0
  75. {whileai-0.58 → whileai-0.59}/whileai/simulations/simulation.py +0 -0
  76. {whileai-0.58 → whileai-0.59}/whileai/simulations/training.py +0 -0
  77. {whileai-0.58 → whileai-0.59}/whileai/simulations/verify/__init__.py +0 -0
  78. {whileai-0.58 → whileai-0.59}/whileai/simulations/verify/base.py +0 -0
  79. {whileai-0.58 → whileai-0.59}/whileai/simulations/verify/code.py +0 -0
  80. {whileai-0.58 → whileai-0.59}/whileai/simulations/verify/math.py +0 -0
  81. {whileai-0.58 → whileai-0.59}/whileai/simulations/verify/structured.py +0 -0
  82. {whileai-0.58 → whileai-0.59}/whileai/simulations/verify/text.py +0 -0
  83. {whileai-0.58 → whileai-0.59}/whileai/simulations/world/__init__.py +0 -0
  84. {whileai-0.58 → whileai-0.59}/whileai/simulations/world/sandbox.py +0 -0
  85. {whileai-0.58 → whileai-0.59}/whileai.egg-info/SOURCES.txt +0 -0
  86. {whileai-0.58 → whileai-0.59}/whileai.egg-info/dependency_links.txt +0 -0
  87. {whileai-0.58 → whileai-0.59}/whileai.egg-info/entry_points.txt +0 -0
  88. {whileai-0.58 → whileai-0.59}/whileai.egg-info/requires.txt +0 -0
  89. {whileai-0.58 → whileai-0.59}/whileai.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: whileai
3
- Version: 0.58
3
+ Version: 0.59
4
4
  Summary: While Python SDK: trace ingestion and verification client, plus agent simulations grounded in your tools and system prompt.
5
5
  Author: While
6
6
  License: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "whileai"
7
- version = "0.58"
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
- warnings.append(
530
- f"Judge agreement with human labels is {low:.2f} (lower bound), under the "
531
- f"{min_agreement:.2f} floor. Change the judge prompt or the judge model, then "
532
- "run judge_trust again."
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(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: whileai
3
- Version: 0.58
3
+ Version: 0.59
4
4
  Summary: While Python SDK: trace ingestion and verification client, plus agent simulations grounded in your tools and system prompt.
5
5
  Author: While
6
6
  License: Apache-2.0
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