autocontext 0.3.3__tar.gz → 0.3.4__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 (781) hide show
  1. {autocontext-0.3.3 → autocontext-0.3.4}/PKG-INFO +2 -2
  2. {autocontext-0.3.3 → autocontext-0.3.4}/README.md +1 -1
  3. {autocontext-0.3.3 → autocontext-0.3.4}/pyproject.toml +1 -1
  4. autocontext-0.3.4/src/autocontext/session/action_labels.py +112 -0
  5. autocontext-0.3.4/src/autocontext/session/living_docs.py +136 -0
  6. autocontext-0.3.4/tests/test_action_labels.py +111 -0
  7. autocontext-0.3.4/tests/test_living_docs.py +87 -0
  8. {autocontext-0.3.3 → autocontext-0.3.4}/uv.lock +1 -1
  9. {autocontext-0.3.3 → autocontext-0.3.4}/.gitignore +0 -0
  10. {autocontext-0.3.3 → autocontext-0.3.4}/assets/banner.svg +0 -0
  11. {autocontext-0.3.3 → autocontext-0.3.4}/assets/banner.txt +0 -0
  12. {autocontext-0.3.3 → autocontext-0.3.4}/assets/whats_new.txt +0 -0
  13. {autocontext-0.3.3 → autocontext-0.3.4}/demo_data/README.md +0 -0
  14. {autocontext-0.3.3 → autocontext-0.3.4}/docs/agent-integration.md +0 -0
  15. {autocontext-0.3.3 → autocontext-0.3.4}/docs/mlx-training.md +0 -0
  16. {autocontext-0.3.3 → autocontext-0.3.4}/docs/sandbox.md +0 -0
  17. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/001_initial.sql +0 -0
  18. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/002_phase3_phase7.sql +0 -0
  19. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/003_agent_subagent_metadata.sql +0 -0
  20. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/004_knowledge_inheritance.sql +0 -0
  21. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/005_ecosystem_provider_tracking.sql +0 -0
  22. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/006_human_feedback.sql +0 -0
  23. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/007_task_queue.sql +0 -0
  24. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/008_staged_validation.sql +0 -0
  25. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/009_generation_timing.sql +0 -0
  26. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/010_consultation_log.sql +0 -0
  27. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/010_session_notebook.sql +0 -0
  28. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/011_monitors.sql +0 -0
  29. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/012_research_hub.sql +0 -0
  30. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/013_generation_dimension_summary.sql +0 -0
  31. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/014_scoring_backend_metadata.sql +0 -0
  32. {autocontext-0.3.3 → autocontext-0.3.4}/migrations/015_match_replay.sql +0 -0
  33. {autocontext-0.3.3 → autocontext-0.3.4}/pyrightconfig.json +0 -0
  34. {autocontext-0.3.3 → autocontext-0.3.4}/smoke_test.py +0 -0
  35. {autocontext-0.3.3 → autocontext-0.3.4}/smoke_test_loop.py +0 -0
  36. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/__init__.py +0 -0
  37. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agentos/__init__.py +0 -0
  38. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agentos/types.py +0 -0
  39. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/__init__.py +0 -0
  40. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/agent_sdk_client.py +0 -0
  41. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/analyst.py +0 -0
  42. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/architect.py +0 -0
  43. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/coach.py +0 -0
  44. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/competitor.py +0 -0
  45. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/contracts.py +0 -0
  46. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/curator.py +0 -0
  47. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/feedback_loops.py +0 -0
  48. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/hint_feedback.py +0 -0
  49. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/llm_client.py +0 -0
  50. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/model_router.py +0 -0
  51. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/orchestrator.py +0 -0
  52. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/parsers.py +0 -0
  53. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/pipeline_adapter.py +0 -0
  54. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/provider_bridge.py +0 -0
  55. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/role_router.py +0 -0
  56. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/skeptic.py +0 -0
  57. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/subagent_runtime.py +0 -0
  58. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/translator.py +0 -0
  59. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/translator_simplification.py +0 -0
  60. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/agents/types.py +0 -0
  61. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/__init__.py +0 -0
  62. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/aggregate_runner.py +0 -0
  63. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/calibration.py +0 -0
  64. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/clustering.py +0 -0
  65. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/correlation.py +0 -0
  66. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/credit_assignment.py +0 -0
  67. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/extractor.py +0 -0
  68. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/facets.py +0 -0
  69. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/issue_generator.py +0 -0
  70. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/issue_store.py +0 -0
  71. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/regression_fixtures.py +0 -0
  72. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/rubric_drift.py +0 -0
  73. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/run_trace.py +0 -0
  74. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/store.py +0 -0
  75. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/taxonomy.py +0 -0
  76. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/timeline_inspector.py +0 -0
  77. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/analytics/trace_reporter.py +0 -0
  78. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/artifacts/__init__.py +0 -0
  79. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/artifacts/models.py +0 -0
  80. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/banner.py +0 -0
  81. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/cli.py +0 -0
  82. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/concepts.py +0 -0
  83. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/config/__init__.py +0 -0
  84. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/config/presets.py +0 -0
  85. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/config/settings.py +0 -0
  86. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/config/tuning_bounds.py +0 -0
  87. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/consultation/__init__.py +0 -0
  88. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/consultation/runner.py +0 -0
  89. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/consultation/stage.py +0 -0
  90. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/consultation/triggers.py +0 -0
  91. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/consultation/types.py +0 -0
  92. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/evaluation/__init__.py +0 -0
  93. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/evaluation/ab_runner.py +0 -0
  94. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/evaluation/ab_stats.py +0 -0
  95. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/__init__.py +0 -0
  96. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/action_filter.py +0 -0
  97. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/agent_task_evolution.py +0 -0
  98. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/ast_safety.py +0 -0
  99. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/bias_probes.py +0 -0
  100. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/evaluator_guardrail.py +0 -0
  101. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/executors/__init__.py +0 -0
  102. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/executors/base.py +0 -0
  103. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/executors/local.py +0 -0
  104. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/executors/monty.py +0 -0
  105. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/executors/primeintellect.py +0 -0
  106. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/executors/ssh.py +0 -0
  107. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/harness_coverage.py +0 -0
  108. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/harness_loader.py +0 -0
  109. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/harness_synthesizer.py +0 -0
  110. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/harness_tester.py +0 -0
  111. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/improvement_loop.py +0 -0
  112. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/judge.py +0 -0
  113. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/judge_executor.py +0 -0
  114. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/objective_verification.py +0 -0
  115. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/output_cleaner.py +0 -0
  116. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/phased_execution.py +0 -0
  117. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/policy_executor.py +0 -0
  118. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/policy_refinement.py +0 -0
  119. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/rubric_calibration.py +0 -0
  120. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/rubric_coherence.py +0 -0
  121. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/sample_states.py +0 -0
  122. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/strategy_validator.py +0 -0
  123. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/supervisor.py +0 -0
  124. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/task_runner.py +0 -0
  125. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/trajectory_harness.py +0 -0
  126. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/execution/verification_dataset.py +0 -0
  127. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/__init__.py +0 -0
  128. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/adapt/__init__.py +0 -0
  129. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/adapt/applicator.py +0 -0
  130. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/adapt/types.py +0 -0
  131. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/audit/__init__.py +0 -0
  132. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/audit/types.py +0 -0
  133. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/audit/writer.py +0 -0
  134. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/core/__init__.py +0 -0
  135. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/core/controller.py +0 -0
  136. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/core/events.py +0 -0
  137. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/core/llm_client.py +0 -0
  138. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/core/output_parser.py +0 -0
  139. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/core/subagent.py +0 -0
  140. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/core/types.py +0 -0
  141. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/cost/__init__.py +0 -0
  142. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/cost/calculator.py +0 -0
  143. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/cost/tracker.py +0 -0
  144. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/cost/types.py +0 -0
  145. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/evaluation/__init__.py +0 -0
  146. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/evaluation/dimensional.py +0 -0
  147. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/evaluation/failure_report.py +0 -0
  148. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/evaluation/protocol.py +0 -0
  149. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/evaluation/runner.py +0 -0
  150. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/evaluation/scenario_evaluator.py +0 -0
  151. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/evaluation/self_play.py +0 -0
  152. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/evaluation/types.py +0 -0
  153. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/meta/__init__.py +0 -0
  154. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/meta/advisor.py +0 -0
  155. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/meta/collector.py +0 -0
  156. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/meta/profiler.py +0 -0
  157. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/meta/types.py +0 -0
  158. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/meta_optimizer.py +0 -0
  159. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/optimizer/__init__.py +0 -0
  160. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/optimizer/pareto.py +0 -0
  161. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/orchestration/__init__.py +0 -0
  162. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/orchestration/dag.py +0 -0
  163. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/orchestration/engine.py +0 -0
  164. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/orchestration/types.py +0 -0
  165. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/pipeline/__init__.py +0 -0
  166. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/pipeline/advancement.py +0 -0
  167. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/pipeline/gate.py +0 -0
  168. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/pipeline/holdout.py +0 -0
  169. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/pipeline/objective_guardrail.py +0 -0
  170. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/pipeline/retry_context.py +0 -0
  171. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/pipeline/trend_gate.py +0 -0
  172. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/pipeline/validity_gate.py +0 -0
  173. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/repl/__init__.py +0 -0
  174. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/repl/monty_worker.py +0 -0
  175. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/repl/session.py +0 -0
  176. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/repl/types.py +0 -0
  177. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/repl/worker.py +0 -0
  178. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/scoring/__init__.py +0 -0
  179. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/scoring/backends.py +0 -0
  180. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/scoring/elo.py +0 -0
  181. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/storage/__init__.py +0 -0
  182. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/storage/versioned_store.py +0 -0
  183. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/validation/__init__.py +0 -0
  184. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/validation/staged.py +0 -0
  185. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/harness/validation/stages.py +0 -0
  186. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/integrations/__init__.py +0 -0
  187. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/integrations/primeintellect/__init__.py +0 -0
  188. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/integrations/primeintellect/client.py +0 -0
  189. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/integrations/ssh/__init__.py +0 -0
  190. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/integrations/ssh/client.py +0 -0
  191. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/integrations/ssh/config.py +0 -0
  192. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/__init__.py +0 -0
  193. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/coherence.py +0 -0
  194. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/dead_end_manager.py +0 -0
  195. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/evidence_freshness.py +0 -0
  196. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/export.py +0 -0
  197. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/fresh_start.py +0 -0
  198. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/harness_quality.py +0 -0
  199. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/hint_volume.py +0 -0
  200. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/lessons.py +0 -0
  201. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/mutation_log.py +0 -0
  202. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/normalized_metrics.py +0 -0
  203. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/package.py +0 -0
  204. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/progress.py +0 -0
  205. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/protocol.py +0 -0
  206. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/rapid_gate.py +0 -0
  207. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/report.py +0 -0
  208. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/research_hub.py +0 -0
  209. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/search.py +0 -0
  210. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/solver.py +0 -0
  211. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/stagnation.py +0 -0
  212. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/trajectory.py +0 -0
  213. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/tuning.py +0 -0
  214. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/knowledge/weakness.py +0 -0
  215. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/__init__.py +0 -0
  216. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/controller.py +0 -0
  217. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/cost_control.py +0 -0
  218. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/ecosystem_runner.py +0 -0
  219. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/events.py +0 -0
  220. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/exploration.py +0 -0
  221. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/generation_pipeline.py +0 -0
  222. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/generation_runner.py +0 -0
  223. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/hypothesis_tree.py +0 -0
  224. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/presets.py +0 -0
  225. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/refinement_prompt.py +0 -0
  226. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/stage_helpers/__init__.py +0 -0
  227. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/stage_helpers/context_loaders.py +0 -0
  228. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/stage_helpers/dimensions.py +0 -0
  229. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/stage_helpers/exploration.py +0 -0
  230. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/stage_helpers/freshness.py +0 -0
  231. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/stage_helpers/persistence_helpers.py +0 -0
  232. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/stage_helpers/tournament_prep.py +0 -0
  233. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/stage_preflight.py +0 -0
  234. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/stage_prevalidation.py +0 -0
  235. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/stage_probe.py +0 -0
  236. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/stage_staged_validation.py +0 -0
  237. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/stage_tree_search.py +0 -0
  238. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/stage_types.py +0 -0
  239. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/stages.py +0 -0
  240. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/startup_verification.py +0 -0
  241. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/loop/tournament_helpers.py +0 -0
  242. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/mcp/__init__.py +0 -0
  243. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/mcp/_base.py +0 -0
  244. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/mcp/agent_task_tools.py +0 -0
  245. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/mcp/artifact_tools.py +0 -0
  246. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/mcp/distill_tools.py +0 -0
  247. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/mcp/knowledge_tools.py +0 -0
  248. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/mcp/monitor_tools.py +0 -0
  249. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/mcp/sandbox.py +0 -0
  250. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/mcp/server.py +0 -0
  251. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/mcp/tools.py +0 -0
  252. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/monitor/__init__.py +0 -0
  253. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/monitor/engine.py +0 -0
  254. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/monitor/evaluators.py +0 -0
  255. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/monitor/types.py +0 -0
  256. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/notebook/__init__.py +0 -0
  257. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/notebook/context_provider.py +0 -0
  258. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/notebook/injection.py +0 -0
  259. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/notebook/types.py +0 -0
  260. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/notifications/__init__.py +0 -0
  261. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/notifications/base.py +0 -0
  262. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/notifications/callback.py +0 -0
  263. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/notifications/composite.py +0 -0
  264. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/notifications/http.py +0 -0
  265. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/notifications/slack.py +0 -0
  266. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/notifications/stdout.py +0 -0
  267. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/openclaw/__init__.py +0 -0
  268. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/openclaw/adapters.py +0 -0
  269. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/openclaw/agent_adapter.py +0 -0
  270. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/openclaw/discovery.py +0 -0
  271. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/openclaw/distill.py +0 -0
  272. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/openclaw/models.py +0 -0
  273. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/openclaw/skill.py +0 -0
  274. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/preflight.py +0 -0
  275. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/prompts/__init__.py +0 -0
  276. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/prompts/context_budget.py +0 -0
  277. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/prompts/templates.py +0 -0
  278. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/providers/__init__.py +0 -0
  279. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/providers/anthropic.py +0 -0
  280. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/providers/base.py +0 -0
  281. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/providers/callable_wrapper.py +0 -0
  282. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/providers/mlx_provider.py +0 -0
  283. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/providers/openai_compat.py +0 -0
  284. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/providers/registry.py +0 -0
  285. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/providers/retry.py +0 -0
  286. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/providers/scenario_routing.py +0 -0
  287. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/research/__init__.py +0 -0
  288. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/research/consultation.py +0 -0
  289. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/research/evaluation.py +0 -0
  290. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/research/persistence.py +0 -0
  291. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/research/prompt_wiring.py +0 -0
  292. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/research/runtime.py +0 -0
  293. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/research/types.py +0 -0
  294. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/rlm/__init__.py +0 -0
  295. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/rlm/context_loader.py +0 -0
  296. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/rlm/prompts.py +0 -0
  297. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/rlm/repl_worker.py +0 -0
  298. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/rlm/session.py +0 -0
  299. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/rlm/types.py +0 -0
  300. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/runtimes/__init__.py +0 -0
  301. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/runtimes/base.py +0 -0
  302. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/runtimes/claude_cli.py +0 -0
  303. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/runtimes/codex_cli.py +0 -0
  304. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/runtimes/direct_api.py +0 -0
  305. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/runtimes/hermes_cli.py +0 -0
  306. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/runtimes/pi_artifacts.py +0 -0
  307. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/runtimes/pi_cli.py +0 -0
  308. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/runtimes/pi_rpc.py +0 -0
  309. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/__init__.py +0 -0
  310. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/agent_task.py +0 -0
  311. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/artifact_editing.py +0 -0
  312. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/base.py +0 -0
  313. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/capabilities.py +0 -0
  314. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/coordination.py +0 -0
  315. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/__init__.py +0 -0
  316. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/_family_creator_shim.py +0 -0
  317. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/agent_task_codegen.py +0 -0
  318. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/agent_task_creator.py +0 -0
  319. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/agent_task_designer.py +0 -0
  320. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/agent_task_revision.py +0 -0
  321. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/agent_task_spec.py +0 -0
  322. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/agent_task_validator.py +0 -0
  323. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/artifact_editing_codegen.py +0 -0
  324. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/artifact_editing_creator.py +0 -0
  325. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/artifact_editing_designer.py +0 -0
  326. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/artifact_editing_spec.py +0 -0
  327. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/codegen.py +0 -0
  328. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/coordination_codegen.py +0 -0
  329. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/coordination_creator.py +0 -0
  330. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/coordination_designer.py +0 -0
  331. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/coordination_spec.py +0 -0
  332. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/creator.py +0 -0
  333. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/creator_registry.py +0 -0
  334. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/designer.py +0 -0
  335. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/family_classifier.py +0 -0
  336. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/family_pipeline.py +0 -0
  337. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/generic_creator.py +0 -0
  338. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/investigation_codegen.py +0 -0
  339. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/investigation_creator.py +0 -0
  340. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/investigation_designer.py +0 -0
  341. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/investigation_spec.py +0 -0
  342. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/loader.py +0 -0
  343. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/naming.py +0 -0
  344. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/negotiation_codegen.py +0 -0
  345. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/negotiation_creator.py +0 -0
  346. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/negotiation_designer.py +0 -0
  347. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/negotiation_spec.py +0 -0
  348. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/operator_loop_codegen.py +0 -0
  349. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/operator_loop_creator.py +0 -0
  350. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/operator_loop_designer.py +0 -0
  351. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/operator_loop_spec.py +0 -0
  352. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/registry.py +0 -0
  353. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/schema_evolution_codegen.py +0 -0
  354. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/schema_evolution_creator.py +0 -0
  355. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/schema_evolution_designer.py +0 -0
  356. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/schema_evolution_spec.py +0 -0
  357. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/simulation_codegen.py +0 -0
  358. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/simulation_creator.py +0 -0
  359. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/simulation_designer.py +0 -0
  360. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/simulation_spec.py +0 -0
  361. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/spec.py +0 -0
  362. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/spec_auto_heal.py +0 -0
  363. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/tool_fragility_codegen.py +0 -0
  364. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/tool_fragility_creator.py +0 -0
  365. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/tool_fragility_designer.py +0 -0
  366. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/tool_fragility_spec.py +0 -0
  367. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/validator.py +0 -0
  368. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/workflow_codegen.py +0 -0
  369. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/workflow_creator.py +0 -0
  370. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/workflow_designer.py +0 -0
  371. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/custom/workflow_spec.py +0 -0
  372. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/families.py +0 -0
  373. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/grid_ctf/__init__.py +0 -0
  374. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/grid_ctf/scenario.py +0 -0
  375. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/investigation.py +0 -0
  376. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/negotiation.py +0 -0
  377. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/operator_loop.py +0 -0
  378. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/othello.py +0 -0
  379. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/schema_evolution.py +0 -0
  380. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/simulation.py +0 -0
  381. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/templates/__init__.py +0 -0
  382. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/templates/content-generation/README.md +0 -0
  383. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/templates/content-generation/example_input.json +0 -0
  384. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/templates/content-generation/example_output.json +0 -0
  385. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/templates/content-generation/spec.yaml +0 -0
  386. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/templates/prompt-optimization/README.md +0 -0
  387. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/templates/prompt-optimization/example_input.json +0 -0
  388. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/templates/prompt-optimization/example_output.json +0 -0
  389. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/templates/prompt-optimization/spec.yaml +0 -0
  390. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/templates/rag-accuracy/README.md +0 -0
  391. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/templates/rag-accuracy/example_input.json +0 -0
  392. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/templates/rag-accuracy/example_output.json +0 -0
  393. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/templates/rag-accuracy/spec.yaml +0 -0
  394. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/tool_fragility.py +0 -0
  395. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/type_registry.py +0 -0
  396. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/workflow.py +0 -0
  397. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/scenarios/world_state.py +0 -0
  398. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/sdk.py +0 -0
  399. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/sdk_models.py +0 -0
  400. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/server/__init__.py +0 -0
  401. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/server/app.py +0 -0
  402. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/server/changelog.py +0 -0
  403. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/server/cockpit_api.py +0 -0
  404. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/server/hub_api.py +0 -0
  405. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/server/knowledge_api.py +0 -0
  406. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/server/monitor_api.py +0 -0
  407. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/server/notebook_api.py +0 -0
  408. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/server/openclaw_api.py +0 -0
  409. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/server/protocol.py +0 -0
  410. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/server/run_manager.py +0 -0
  411. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/server/writeup.py +0 -0
  412. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/session/__init__.py +0 -0
  413. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/session/context_pressure.py +0 -0
  414. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/session/coordinator.py +0 -0
  415. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/session/memory_consolidation.py +0 -0
  416. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/session/progress_digest.py +0 -0
  417. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/session/remote_bridge.py +0 -0
  418. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/session/skill_registry.py +0 -0
  419. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/session/store.py +0 -0
  420. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/session/supervisor.py +0 -0
  421. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/session/types.py +0 -0
  422. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/simulation/__init__.py +0 -0
  423. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/simulation/engine.py +0 -0
  424. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/simulation/export.py +0 -0
  425. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/storage/__init__.py +0 -0
  426. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/storage/artifacts.py +0 -0
  427. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/storage/bootstrap_schema.py +0 -0
  428. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/storage/buffered_writer.py +0 -0
  429. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/storage/row_types.py +0 -0
  430. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/storage/sqlite_store.py +0 -0
  431. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/training/__init__.py +0 -0
  432. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/training/autoresearch/__init__.py +0 -0
  433. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/training/autoresearch/prepare.py +0 -0
  434. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/training/autoresearch/program.md +0 -0
  435. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/training/autoresearch/program.py +0 -0
  436. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/training/autoresearch/train.py +0 -0
  437. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/training/backends.py +0 -0
  438. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/training/export.py +0 -0
  439. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/training/model_registry.py +0 -0
  440. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/training/runner.py +0 -0
  441. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/training/types.py +0 -0
  442. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/util/__init__.py +0 -0
  443. {autocontext-0.3.3 → autocontext-0.3.4}/src/autocontext/util/json_io.py +0 -0
  444. {autocontext-0.3.3 → autocontext-0.3.4}/tests/conftest.py +0 -0
  445. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_ab_runner.py +0 -0
  446. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_ab_stats.py +0 -0
  447. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_action_filter.py +0 -0
  448. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_action_filter_integration.py +0 -0
  449. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_advancement_contract.py +0 -0
  450. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_agent_e2e.py +0 -0
  451. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_agent_live_e2e.py +0 -0
  452. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_agent_sdk_client.py +0 -0
  453. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_agent_sdk_integration.py +0 -0
  454. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_agent_task.py +0 -0
  455. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_agent_task_export.py +0 -0
  456. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_agent_task_multi_gen.py +0 -0
  457. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_agent_task_pipeline.py +0 -0
  458. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_agentos_adapter.py +0 -0
  459. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_aggregate_facets.py +0 -0
  460. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_analysis_injection.py +0 -0
  461. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_anthropic_client_retry.py +0 -0
  462. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_api_key_fallback.py +0 -0
  463. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_architect_dag_changes.py +0 -0
  464. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_architect_tool_updates.py +0 -0
  465. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_architect_tools.py +0 -0
  466. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_artifact_contracts.py +0 -0
  467. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_artifact_editing.py +0 -0
  468. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_artifact_harness.py +0 -0
  469. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_ast_safety.py +0 -0
  470. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_auto_sample_input.py +0 -0
  471. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_backpressure.py +0 -0
  472. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_backpressure_trend.py +0 -0
  473. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_banner_sync.py +0 -0
  474. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_buffered_artifacts.py +0 -0
  475. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_buffered_writer.py +0 -0
  476. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_cli_ab_test.py +0 -0
  477. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_cli_agent_task.py +0 -0
  478. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_cli_backport.py +0 -0
  479. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_cli_error_output.py +0 -0
  480. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_cli_json.py +0 -0
  481. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_cli_preset.py +0 -0
  482. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_coach_competitor_hints.py +0 -0
  483. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_cockpit.py +0 -0
  484. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_cockpit_consultation_integration.py +0 -0
  485. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_cockpit_notebook_integration.py +0 -0
  486. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_code_strategies.py +0 -0
  487. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_code_strategies_e2e.py +0 -0
  488. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_codex_cli_runtime.py +0 -0
  489. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_config_adaptive.py +0 -0
  490. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_constraint_prompts.py +0 -0
  491. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_consultation.py +0 -0
  492. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_context_budget.py +0 -0
  493. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_context_preparation.py +0 -0
  494. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_context_pressure.py +0 -0
  495. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_coordinator.py +0 -0
  496. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_correlation_issues.py +0 -0
  497. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_cost_control_and_presets.py +0 -0
  498. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_credit_assignment.py +0 -0
  499. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_cross_run_inheritance.py +0 -0
  500. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_curator.py +0 -0
  501. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_curator_integration.py +0 -0
  502. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_custom_scenario_spec.py +0 -0
  503. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_dag_apply.py +0 -0
  504. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_dag_mutation.py +0 -0
  505. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_dead_end_registry.py +0 -0
  506. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_dead_end_wiring.py +0 -0
  507. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_derive_name.py +0 -0
  508. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_designer_calibration.py +0 -0
  509. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_dict_type_consistency.py +0 -0
  510. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_dimension_pinning.py +0 -0
  511. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_dimension_threshold.py +0 -0
  512. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_dimensional_scoring.py +0 -0
  513. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_disagreement.py +0 -0
  514. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_discovery_scenario_type.py +0 -0
  515. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_distill_jobs.py +0 -0
  516. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_ecosystem_convergence.py +0 -0
  517. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_ecosystem_integration.py +0 -0
  518. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_ecosystem_runner.py +0 -0
  519. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_elo.py +0 -0
  520. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_enumerate_grid_ctf.py +0 -0
  521. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_enumerate_legal_actions.py +0 -0
  522. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_enumerate_othello.py +0 -0
  523. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_eval_provider_wiring.py +0 -0
  524. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_event_subscribers.py +0 -0
  525. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_exploration_mechanisms.py +0 -0
  526. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_export_cli.py +0 -0
  527. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_export_skill_md.py +0 -0
  528. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_factual_confidence.py +0 -0
  529. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_failure_recovery_lessons.py +0 -0
  530. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_failure_report.py +0 -0
  531. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_family_classifier.py +0 -0
  532. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_family_pipeline.py +0 -0
  533. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_feedback_loops.py +0 -0
  534. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_freshness_and_fixtures.py +0 -0
  535. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_gate_taxonomy.py +0 -0
  536. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_generation_pipeline.py +0 -0
  537. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_generation_stages.py +0 -0
  538. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_generic_creator.py +0 -0
  539. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/__init__.py +0 -0
  540. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_adapt_applicator.py +0 -0
  541. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_adapt_types.py +0 -0
  542. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_audit_types.py +0 -0
  543. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_audit_writer.py +0 -0
  544. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_controller.py +0 -0
  545. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_cost_calculator.py +0 -0
  546. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_cost_tracker.py +0 -0
  547. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_cost_types.py +0 -0
  548. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_elo.py +0 -0
  549. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_eval_runner.py +0 -0
  550. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_eval_types.py +0 -0
  551. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_evaluator.py +0 -0
  552. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_events.py +0 -0
  553. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_gate.py +0 -0
  554. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_llm_client.py +0 -0
  555. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_meta_advisor.py +0 -0
  556. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_meta_collector.py +0 -0
  557. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_meta_optimizer.py +0 -0
  558. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_meta_profiler.py +0 -0
  559. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_meta_types.py +0 -0
  560. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_output_parser.py +0 -0
  561. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_pipeline_engine.py +0 -0
  562. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_repl_session.py +0 -0
  563. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_repl_types.py +0 -0
  564. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_repl_worker.py +0 -0
  565. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_retry_context.py +0 -0
  566. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_role_dag.py +0 -0
  567. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_scenario_evaluator.py +0 -0
  568. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_subagent.py +0 -0
  569. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_trend_gate.py +0 -0
  570. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_types.py +0 -0
  571. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_harness_versioned_store.py +0 -0
  572. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness/test_output_parser_adoption.py +0 -0
  573. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness_coverage.py +0 -0
  574. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness_inheritance.py +0 -0
  575. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness_loader.py +0 -0
  576. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness_mode.py +0 -0
  577. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness_model_demotion.py +0 -0
  578. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness_quality.py +0 -0
  579. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness_synthesizer.py +0 -0
  580. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness_tester.py +0 -0
  581. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_harness_versioning.py +0 -0
  582. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_hermes_gateway.py +0 -0
  583. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_hermes_protocol_alignment.py +0 -0
  584. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_hermes_runtime.py +0 -0
  585. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_hint_feedback.py +0 -0
  586. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_hint_persistence.py +0 -0
  587. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_hint_volume_control.py +0 -0
  588. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_holdout_evaluation.py +0 -0
  589. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_hub_api.py +0 -0
  590. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_human_feedback.py +0 -0
  591. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_hypothesis_tree.py +0 -0
  592. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_improvement_loop.py +0 -0
  593. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_improvement_loop_resilience.py +0 -0
  594. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_integration_docs.py +0 -0
  595. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_integration_improvement.py +0 -0
  596. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_intent_validation.py +0 -0
  597. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_interface_conventions.py +0 -0
  598. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_investigation_actions_coerce.py +0 -0
  599. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_investigation_workflow.py +0 -0
  600. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_judge.py +0 -0
  601. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_judge_rubrics.py +0 -0
  602. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_knowledge_api.py +0 -0
  603. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_knowledge_coherence.py +0 -0
  604. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_lesson_applicability.py +0 -0
  605. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_loop_controller.py +0 -0
  606. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_match_export.py +0 -0
  607. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_mcp_agent_tasks.py +0 -0
  608. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_mcp_server.py +0 -0
  609. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_mcp_tools.py +0 -0
  610. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_memory_consolidation.py +0 -0
  611. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_mlx_provider.py +0 -0
  612. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_model_registry.py +0 -0
  613. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_model_router.py +0 -0
  614. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_model_router_integration.py +0 -0
  615. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_module_size_limits.py +0 -0
  616. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_monitor.py +0 -0
  617. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_monty_e2e.py +0 -0
  618. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_monty_executor.py +0 -0
  619. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_monty_live.py +0 -0
  620. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_monty_repl_integration.py +0 -0
  621. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_monty_repl_live.py +0 -0
  622. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_monty_repl_settings.py +0 -0
  623. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_monty_repl_wiring.py +0 -0
  624. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_monty_repl_worker.py +0 -0
  625. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_monty_settings.py +0 -0
  626. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_multi_gen_stall.py +0 -0
  627. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_mutation_log.py +0 -0
  628. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_negotiation.py +0 -0
  629. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_negotiation_verification.py +0 -0
  630. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_new_scenario_cli.py +0 -0
  631. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_normalized_metrics.py +0 -0
  632. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_notebook_wiring.py +0 -0
  633. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_notifications.py +0 -0
  634. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_objective_guardrail.py +0 -0
  635. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_objective_verification.py +0 -0
  636. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_openai_agent_provider.py +0 -0
  637. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_openclaw_adapters.py +0 -0
  638. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_openclaw_agent_adapter.py +0 -0
  639. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_openclaw_discovery.py +0 -0
  640. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_openclaw_operations.py +0 -0
  641. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_openclaw_skill.py +0 -0
  642. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_operator_loop_coordination.py +0 -0
  643. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_operator_loop_unsupported.py +0 -0
  644. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_orchestrator_feedback.py +0 -0
  645. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_output_cleaner.py +0 -0
  646. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_param_type_conventions.py +0 -0
  647. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_pareto_optimizer.py +0 -0
  648. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_per_role_provider.py +0 -0
  649. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_phased_execution.py +0 -0
  650. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_pi_artifacts.py +0 -0
  651. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_pi_cli_runtime.py +0 -0
  652. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_pi_protocol_alignment.py +0 -0
  653. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_pi_provider_surface.py +0 -0
  654. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_pi_rpc.py +0 -0
  655. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_pi_smoke.py +0 -0
  656. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_pipeline_adapter.py +0 -0
  657. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_pipeline_wiring.py +0 -0
  658. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_policy_executor.py +0 -0
  659. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_policy_refinement.py +0 -0
  660. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_policy_refinement_integration.py +0 -0
  661. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_preflight.py +0 -0
  662. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_prepare_mlx.py +0 -0
  663. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_preset_named.py +0 -0
  664. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_presets.py +0 -0
  665. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_prevalidation.py +0 -0
  666. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_primeintellect_client.py +0 -0
  667. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_probe_pipeline.py +0 -0
  668. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_program_template.py +0 -0
  669. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_progress_digests.py +0 -0
  670. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_progress_json.py +0 -0
  671. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_protocol.py +0 -0
  672. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_protocol_parity.py +0 -0
  673. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_provider_retry.py +0 -0
  674. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_providers.py +0 -0
  675. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_pydantic_migration.py +0 -0
  676. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_rapid_exploration.py +0 -0
  677. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_refinement_prompt.py +0 -0
  678. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_remote_bridge.py +0 -0
  679. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_remove_hardcoded_models.py +0 -0
  680. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_removed_backpressure_modules.py +0 -0
  681. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_removed_harness_modules.py +0 -0
  682. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_replay_narrative_flow.py +0 -0
  683. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_research_adapter.py +0 -0
  684. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_research_consultation.py +0 -0
  685. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_research_eval.py +0 -0
  686. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_research_hub.py +0 -0
  687. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_research_persistence.py +0 -0
  688. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_research_prompt_wiring.py +0 -0
  689. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_research_protocol.py +0 -0
  690. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_research_runtime.py +0 -0
  691. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_restore_versioning.py +0 -0
  692. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_retry_learning.py +0 -0
  693. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_retry_provider.py +0 -0
  694. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_revise_output_fix.py +0 -0
  695. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_rlm_competitor.py +0 -0
  696. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_rlm_context_loader.py +0 -0
  697. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_rlm_integration.py +0 -0
  698. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_rlm_repl_worker.py +0 -0
  699. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_rlm_session.py +0 -0
  700. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_role_router.py +0 -0
  701. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_rubric_calibration.py +0 -0
  702. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_rubric_coherence.py +0 -0
  703. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_rubric_drift_calibration.py +0 -0
  704. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_run_trace.py +0 -0
  705. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_runner_integration.py +0 -0
  706. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_runtimes.py +0 -0
  707. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_sample_states.py +0 -0
  708. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_sandbox.py +0 -0
  709. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_scenario_capabilities.py +0 -0
  710. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_scenario_creator.py +0 -0
  711. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_scenario_dispatch.py +0 -0
  712. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_scenario_families.py +0 -0
  713. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_scenario_routing.py +0 -0
  714. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_scenario_templates.py +0 -0
  715. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_scenario_type_completeness.py +0 -0
  716. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_scenarios.py +0 -0
  717. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_schema_evolution_tool_fragility.py +0 -0
  718. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_score_trajectory.py +0 -0
  719. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_scoring_backends.py +0 -0
  720. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_sdk.py +0 -0
  721. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_seed_tools.py +0 -0
  722. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_self_play.py +0 -0
  723. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_serde_conventions.py +0 -0
  724. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_server_health.py +0 -0
  725. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_service_layer.py +0 -0
  726. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_session_notebook.py +0 -0
  727. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_session_report_wiring.py +0 -0
  728. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_session_reports.py +0 -0
  729. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_session_runtime.py +0 -0
  730. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_session_supervisor.py +0 -0
  731. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_settings_cleanup.py +0 -0
  732. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_shared_tools.py +0 -0
  733. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_simulate_bug_fixes.py +0 -0
  734. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_simulate_command.py +0 -0
  735. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_simulation_contract.py +0 -0
  736. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_skeptic.py +0 -0
  737. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_skill_consolidation.py +0 -0
  738. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_skill_registry.py +0 -0
  739. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_smoke_judge.py +0 -0
  740. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_sqlite_store.py +0 -0
  741. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_sqlite_store_bootstrap.py +0 -0
  742. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_ssh_executor.py +0 -0
  743. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_stage_preflight.py +0 -0
  744. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_stage_probe.py +0 -0
  745. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_stage_staged_validation.py +0 -0
  746. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_stage_tree_search.py +0 -0
  747. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_staged_runner.py +0 -0
  748. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_staged_validation.py +0 -0
  749. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_staged_validation_storage.py +0 -0
  750. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_stages_enriched_retry.py +0 -0
  751. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_stagnation.py +0 -0
  752. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_startup_verification.py +0 -0
  753. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_strategy_package.py +0 -0
  754. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_strategy_package_cli.py +0 -0
  755. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_strategy_translator.py +0 -0
  756. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_task_metrics.py +0 -0
  757. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_task_queue_priority.py +0 -0
  758. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_task_runner.py +0 -0
  759. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_time_budget.py +0 -0
  760. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_timeline_inspector.py +0 -0
  761. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_tool_context_full.py +0 -0
  762. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_tool_validation.py +0 -0
  763. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_tournament_helpers.py +0 -0
  764. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_trace_reporter.py +0 -0
  765. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_train_mlx.py +0 -0
  766. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_train_summary.py +0 -0
  767. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_training_backend.py +0 -0
  768. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_training_export.py +0 -0
  769. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_training_init.py +0 -0
  770. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_training_pi_provider.py +0 -0
  771. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_training_runner.py +0 -0
  772. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_trajectory_harness.py +0 -0
  773. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_translator_simplification.py +0 -0
  774. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_trend_gate_integration.py +0 -0
  775. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_two_tier_tournament.py +0 -0
  776. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_typed_contracts.py +0 -0
  777. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_typed_dict_rows.py +0 -0
  778. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_validity_gate.py +0 -0
  779. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_verification_dataset.py +0 -0
  780. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_weakness_reports.py +0 -0
  781. {autocontext-0.3.3 → autocontext-0.3.4}/tests/test_world_state.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: autocontext
3
- Version: 0.3.3
3
+ Version: 0.3.4
4
4
  Summary: autocontext control plane for iterative strategy evolution.
5
5
  Project-URL: Homepage, https://github.com/greyhaven-ai/autocontext
6
6
  Project-URL: Repository, https://github.com/greyhaven-ai/autocontext
@@ -60,7 +60,7 @@ The intended use is to hand the harness a real task in plain language, let it so
60
60
  pip install autocontext
61
61
  ```
62
62
 
63
- The current PyPI release line is `autocontext==0.3.3`.
63
+ The current PyPI release line is `autocontext==0.3.4`.
64
64
  The PyPI package name is now `autocontext`. The CLI entrypoint remains `autoctx`.
65
65
 
66
66
  ## Working Directory
@@ -10,7 +10,7 @@ The intended use is to hand the harness a real task in plain language, let it so
10
10
  pip install autocontext
11
11
  ```
12
12
 
13
- The current PyPI release line is `autocontext==0.3.3`.
13
+ The current PyPI release line is `autocontext==0.3.4`.
14
14
  The PyPI package name is now `autocontext`. The CLI entrypoint remains `autoctx`.
15
15
 
16
16
  ## Working Directory
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "autocontext"
7
- version = "0.3.3"
7
+ version = "0.3.4"
8
8
  description = "autocontext control plane for iterative strategy evolution."
9
9
  readme = "README.md"
10
10
  license = { text = "Apache-2.0" }
@@ -0,0 +1,112 @@
1
+ """Compact action labels for timelines and event feeds (AC-513).
2
+
3
+ Domain concept: ActionLabel is a value object — a short, scannable
4
+ description of what just happened. Derived from events, not stored
5
+ as primary data.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ from typing import TYPE_CHECKING
11
+
12
+ from pydantic import BaseModel
13
+
14
+ from autocontext.session.coordinator import CoordinatorEventType
15
+ from autocontext.session.types import SessionEventType
16
+
17
+ if TYPE_CHECKING:
18
+ from autocontext.session.coordinator import Coordinator, CoordinatorEvent
19
+ from autocontext.session.types import SessionEvent
20
+
21
+ _MAX_LABEL_LEN = 120
22
+
23
+ _FAILURE_EVENT_TYPES = frozenset({
24
+ CoordinatorEventType.WORKER_FAILED.value,
25
+ SessionEventType.TURN_FAILED.value,
26
+ SessionEventType.TURN_INTERRUPTED.value,
27
+ SessionEventType.SESSION_FAILED.value,
28
+ SessionEventType.SESSION_CANCELED.value,
29
+ })
30
+
31
+ _EVENT_LABEL_MAP: dict[str, str] = {
32
+ "coordinator_created": "Coordinator started",
33
+ "worker_delegated": "Worker delegated",
34
+ "worker_started": "Worker started",
35
+ "worker_completed": "Worker completed",
36
+ "worker_failed": "Worker failed",
37
+ "worker_redirected": "Worker redirected",
38
+ "fan_out": "Fan-out dispatched",
39
+ "fan_in": "Fan-in collected",
40
+ "session_created": "Session started",
41
+ "session_paused": "Session paused",
42
+ "session_resumed": "Session resumed",
43
+ "session_completed": "Session completed",
44
+ "session_failed": "Session failed",
45
+ "session_canceled": "Session canceled",
46
+ "turn_submitted": "Turn submitted",
47
+ "turn_completed": "Turn completed",
48
+ "turn_interrupted": "Turn interrupted",
49
+ "turn_failed": "Turn failed",
50
+ }
51
+
52
+
53
+ class ActionLabel(BaseModel):
54
+ """Short, scannable description for timeline/event display.
55
+
56
+ Categories: action, tool, failure, noop, info
57
+ """
58
+
59
+ text: str
60
+ category: str = "action"
61
+
62
+ @classmethod
63
+ def create(cls, text: str, category: str = "action") -> ActionLabel:
64
+ truncated = _truncate(text)
65
+ return cls(text=truncated, category=category)
66
+
67
+ @classmethod
68
+ def noop(cls, reason: str = "No changes") -> ActionLabel:
69
+ return cls(text=_truncate(reason), category="noop")
70
+
71
+ model_config = {"frozen": True}
72
+
73
+
74
+ def _truncate(text: str) -> str:
75
+ """Truncate to _MAX_LABEL_LEN with ellipsis."""
76
+ text = text.strip().replace("\n", " ")
77
+ if len(text) <= _MAX_LABEL_LEN:
78
+ return text
79
+ return text[: _MAX_LABEL_LEN - 1] + "…"
80
+
81
+
82
+ def label_from_event(event: CoordinatorEvent | SessionEvent) -> ActionLabel:
83
+ """Derive a compact label from a coordinator or session event."""
84
+ event_type = event.event_type.value
85
+ base = _EVENT_LABEL_MAP.get(event_type, event_type.replace("_", " ").title())
86
+
87
+ # Enrich with payload details
88
+ payload = event.payload
89
+ detail_parts: list[str] = []
90
+ for key in ("task", "role", "reason", "error", "worker_id", "turn_id"):
91
+ val = payload.get(key)
92
+ if val:
93
+ detail_parts.append(f"{key}={str(val)[:40]}")
94
+
95
+ if detail_parts:
96
+ # Keep labels glanceable in narrow timeline views rather than dumping every payload field.
97
+ detail = ", ".join(detail_parts[:3])
98
+ text = f"{base}: {detail}"
99
+ else:
100
+ text = base
101
+
102
+ category = "failure" if event_type in _FAILURE_EVENT_TYPES else "action"
103
+ return ActionLabel.create(text, category=category)
104
+
105
+
106
+ def labels_from_coordinator(
107
+ coordinator: Coordinator,
108
+ max_labels: int = 20,
109
+ ) -> list[ActionLabel]:
110
+ """Generate labels from the coordinator's recent events."""
111
+ events = coordinator.events[-max_labels:]
112
+ return [label_from_event(e) for e in events]
@@ -0,0 +1,136 @@
1
+ """Opt-in living docs maintenance (AC-511).
2
+
3
+ Domain concepts:
4
+ - LivingDoc: entity tracking one opted-in document
5
+ - DocMaintainer: discovers opted-in docs, runs maintenance at safe boundaries
6
+ - DocUpdateResult: structured audit of what was checked and updated
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import logging
12
+ from pathlib import Path
13
+
14
+ from pydantic import BaseModel, Field
15
+
16
+ logger = logging.getLogger(__name__)
17
+
18
+ _OPT_IN_MARKER = "<!-- living-doc: true -->"
19
+
20
+
21
+ class LivingDoc:
22
+ """Entity tracking one opted-in document.
23
+
24
+ Docs opt in via a marker comment: <!-- living-doc: true -->
25
+ """
26
+
27
+ def __init__(self, path: Path) -> None:
28
+ self.path = path
29
+ self.is_opted_in = True
30
+ self.consultation_count = 0
31
+ self._content: str | None = None
32
+
33
+ @classmethod
34
+ def from_path(cls, path: Path) -> LivingDoc | None:
35
+ """Parse a file. Returns None if not opted in."""
36
+ if not path.exists():
37
+ return None
38
+ content = path.read_text(encoding="utf-8")
39
+ if _OPT_IN_MARKER not in content:
40
+ return None
41
+ doc = cls(path)
42
+ doc._content = content
43
+ return doc
44
+
45
+ def record_consultation(self) -> None:
46
+ self.consultation_count += 1
47
+
48
+ def read_content(self) -> str:
49
+ if self._content is None:
50
+ self._content = self.path.read_text(encoding="utf-8")
51
+ return self._content
52
+
53
+
54
+ class DocUpdate(BaseModel):
55
+ """One update applied to a living doc."""
56
+
57
+ doc_path: str
58
+ summary: str
59
+ lines_changed: int = 0
60
+
61
+ model_config = {"frozen": True}
62
+
63
+
64
+ class DocUpdateResult(BaseModel):
65
+ """Structured audit of a maintenance pass."""
66
+
67
+ docs_checked: int = 0
68
+ updates: list[DocUpdate] = Field(default_factory=list)
69
+ skipped: bool = False
70
+ reason: str = ""
71
+
72
+ model_config = {"frozen": True}
73
+
74
+
75
+ class DocMaintainer:
76
+ """Discovers opted-in docs and runs maintenance.
77
+
78
+ Maintenance only runs when:
79
+ 1. Feature is enabled
80
+ 2. There are learnings to promote
81
+ 3. Opted-in docs exist
82
+ """
83
+
84
+ def __init__(
85
+ self,
86
+ roots: list[Path] | None = None,
87
+ enabled: bool = True,
88
+ ) -> None:
89
+ self._roots = roots or []
90
+ self._enabled = enabled
91
+
92
+ def discover(self) -> list[LivingDoc]:
93
+ """Scan roots for opted-in markdown files."""
94
+ docs: list[LivingDoc] = []
95
+ for root in self._roots:
96
+ if not root.is_dir():
97
+ continue
98
+ for md in sorted(root.rglob("*.md")):
99
+ doc = LivingDoc.from_path(md)
100
+ if doc is not None:
101
+ docs.append(doc)
102
+ return docs
103
+
104
+ def run(self, learnings: list[str]) -> DocUpdateResult:
105
+ """Execute a maintenance pass.
106
+
107
+ Returns structured result describing what was checked/updated.
108
+ """
109
+ if not self._enabled:
110
+ return DocUpdateResult(skipped=True, reason="disabled")
111
+
112
+ if not learnings:
113
+ return DocUpdateResult(skipped=True, reason="No learnings to promote")
114
+
115
+ docs = self.discover()
116
+ if not docs:
117
+ return DocUpdateResult(skipped=True, reason="No opted-in docs found")
118
+
119
+ updates: list[DocUpdate] = []
120
+ for doc in docs:
121
+ # In the first version, we identify docs that could benefit
122
+ # from updates based on learnings. Actual rewriting would
123
+ # use an LLM call — for now we produce the audit trail.
124
+ _content = doc.read_content() # noqa: F841 — will be used by LLM rewriter
125
+ relevant = [item for item in learnings if len(item.strip()) > 10]
126
+ if relevant:
127
+ updates.append(DocUpdate(
128
+ doc_path=str(doc.path),
129
+ summary=f"Candidate for update with {len(relevant)} learning(s)",
130
+ ))
131
+
132
+ logger.info("living docs: checked %d docs, %d candidates", len(docs), len(updates))
133
+ return DocUpdateResult(
134
+ docs_checked=len(docs),
135
+ updates=updates,
136
+ )
@@ -0,0 +1,111 @@
1
+ """Tests for compact action labels (AC-513).
2
+
3
+ DDD: ActionLabel is a value object — a short, scannable description
4
+ derived from events, tool calls, and step outcomes.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+
10
+ class TestActionLabel:
11
+ """ActionLabel value object for timeline/event display."""
12
+
13
+ def test_create_from_text(self) -> None:
14
+ from autocontext.session.action_labels import ActionLabel
15
+
16
+ label = ActionLabel.create("Wrote unit tests for auth module")
17
+ assert label.text == "Wrote unit tests for auth module"
18
+ assert label.category == "action"
19
+
20
+ def test_truncates_long_text(self) -> None:
21
+ from autocontext.session.action_labels import ActionLabel
22
+
23
+ label = ActionLabel.create("x" * 500)
24
+ assert len(label.text) <= 120
25
+ assert label.text.endswith("…")
26
+
27
+ def test_category_tagging(self) -> None:
28
+ from autocontext.session.action_labels import ActionLabel
29
+
30
+ assert ActionLabel.create("Ran tests", category="tool").category == "tool"
31
+ assert ActionLabel.create("Error: timeout", category="failure").category == "failure"
32
+
33
+ def test_noop_label(self) -> None:
34
+ from autocontext.session.action_labels import ActionLabel
35
+
36
+ label = ActionLabel.noop("No changes needed")
37
+ assert label.category == "noop"
38
+
39
+
40
+ class TestLabelFromEvent:
41
+ """Labels derived from coordinator/session events."""
42
+
43
+ def test_from_coordinator_event(self) -> None:
44
+ from autocontext.session.action_labels import label_from_event
45
+ from autocontext.session.coordinator import CoordinatorEvent, CoordinatorEventType
46
+
47
+ event = CoordinatorEvent(
48
+ event_type=CoordinatorEventType.WORKER_COMPLETED,
49
+ payload={"worker_id": "w1", "coordinator_id": "c1"},
50
+ )
51
+ label = label_from_event(event)
52
+ assert "completed" in label.text.lower()
53
+ assert label.category == "action"
54
+
55
+ def test_from_session_event(self) -> None:
56
+ from autocontext.session.action_labels import label_from_event
57
+ from autocontext.session.types import SessionEvent, SessionEventType
58
+
59
+ event = SessionEvent(
60
+ event_type=SessionEventType.TURN_COMPLETED,
61
+ payload={"session_id": "s1", "turn_id": "t1", "tokens_used": 150},
62
+ )
63
+ label = label_from_event(event)
64
+ assert label.text
65
+ assert label.category == "action"
66
+
67
+ def test_failure_event_gets_failure_category(self) -> None:
68
+ from autocontext.session.action_labels import label_from_event
69
+ from autocontext.session.coordinator import CoordinatorEvent, CoordinatorEventType
70
+
71
+ event = CoordinatorEvent(
72
+ event_type=CoordinatorEventType.WORKER_FAILED,
73
+ payload={"worker_id": "w1", "error": "timeout"},
74
+ )
75
+ label = label_from_event(event)
76
+ assert label.category == "failure"
77
+
78
+
79
+ class TestLabelBatch:
80
+ """Batch labeling for timeline display."""
81
+
82
+ def test_label_batch_from_coordinator(self) -> None:
83
+ from autocontext.session.action_labels import labels_from_coordinator
84
+ from autocontext.session.coordinator import Coordinator
85
+
86
+ coord = Coordinator.create(session_id="s1", goal="test")
87
+ w = coord.delegate(task="Research auth", role="researcher")
88
+ w.start()
89
+ coord.complete_worker(w.worker_id, result="done")
90
+
91
+ labels = labels_from_coordinator(coord, max_labels=10)
92
+ assert len(labels) == len(coord.events) == 3
93
+ assert labels[0].text == "Coordinator started"
94
+ assert labels[1].text.startswith("Worker delegated:")
95
+ assert "task=Research auth" in labels[1].text
96
+ assert "role=researcher" in labels[1].text
97
+ assert "worker_id=" in labels[1].text
98
+ assert labels[2].text.startswith("Worker completed:")
99
+ assert "worker_id=" in labels[2].text
100
+
101
+ def test_max_labels_respected(self) -> None:
102
+ from autocontext.session.action_labels import labels_from_coordinator
103
+ from autocontext.session.coordinator import Coordinator
104
+
105
+ coord = Coordinator.create(session_id="s1", goal="test")
106
+ for i in range(20):
107
+ coord.delegate(task=f"task-{i}", role="r1")
108
+
109
+ labels = labels_from_coordinator(coord, max_labels=5)
110
+ assert len(labels) == 5
111
+ assert all(label.text.startswith("Worker delegated") for label in labels)
@@ -0,0 +1,87 @@
1
+ """Tests for opt-in living docs maintenance (AC-511).
2
+
3
+ DDD: LivingDoc is an entity tracking an opted-in document.
4
+ DocMaintainer orchestrates updates at safe boundaries.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ from pathlib import Path
10
+
11
+
12
+ def _write_doc(root: Path, name: str, *, opted_in: bool = True, content: str = "") -> Path:
13
+ path = root / name
14
+ path.parent.mkdir(parents=True, exist_ok=True)
15
+ marker = "<!-- living-doc: true -->" if opted_in else ""
16
+ path.write_text(f"{marker}\n# {name}\n\n{content or 'Initial content.'}\n", encoding="utf-8")
17
+ return path
18
+
19
+
20
+ class TestLivingDoc:
21
+ """Entity tracking one opted-in document."""
22
+
23
+ def test_detect_opted_in(self, tmp_path: Path) -> None:
24
+ from autocontext.session.living_docs import LivingDoc
25
+
26
+ path = _write_doc(tmp_path, "ARCHITECTURE.md", opted_in=True)
27
+ doc = LivingDoc.from_path(path)
28
+ assert doc is not None
29
+ assert doc.is_opted_in
30
+
31
+ def test_skip_non_opted_in(self, tmp_path: Path) -> None:
32
+ from autocontext.session.living_docs import LivingDoc
33
+
34
+ path = _write_doc(tmp_path, "README.md", opted_in=False)
35
+ doc = LivingDoc.from_path(path)
36
+ assert doc is None
37
+
38
+ def test_tracks_consultation(self, tmp_path: Path) -> None:
39
+ from autocontext.session.living_docs import LivingDoc
40
+
41
+ path = _write_doc(tmp_path, "ARCH.md")
42
+ doc = LivingDoc.from_path(path)
43
+ assert doc.consultation_count == 0
44
+ doc.record_consultation()
45
+ assert doc.consultation_count == 1
46
+
47
+
48
+ class TestDocMaintainer:
49
+ """Orchestrates doc updates at safe boundaries."""
50
+
51
+ def test_discover_opted_in_docs(self, tmp_path: Path) -> None:
52
+ from autocontext.session.living_docs import DocMaintainer
53
+
54
+ _write_doc(tmp_path, "ARCHITECTURE.md", opted_in=True)
55
+ _write_doc(tmp_path, "README.md", opted_in=False)
56
+ _write_doc(tmp_path, "docs/ONBOARDING.md", opted_in=True)
57
+
58
+ maintainer = DocMaintainer(roots=[tmp_path])
59
+ docs = maintainer.discover()
60
+ assert len(docs) == 2
61
+
62
+ def test_skip_when_disabled(self, tmp_path: Path) -> None:
63
+ from autocontext.session.living_docs import DocMaintainer
64
+
65
+ _write_doc(tmp_path, "ARCH.md", opted_in=True)
66
+ maintainer = DocMaintainer(roots=[tmp_path], enabled=False)
67
+ result = maintainer.run(learnings=["new finding"])
68
+ assert result.skipped
69
+ assert "disabled" in result.reason
70
+
71
+ def test_skip_when_no_learnings(self, tmp_path: Path) -> None:
72
+ from autocontext.session.living_docs import DocMaintainer
73
+
74
+ _write_doc(tmp_path, "ARCH.md", opted_in=True)
75
+ maintainer = DocMaintainer(roots=[tmp_path])
76
+ result = maintainer.run(learnings=[])
77
+ assert result.skipped
78
+ assert "no learnings" in result.reason.lower()
79
+
80
+ def test_produces_audit_trail(self, tmp_path: Path) -> None:
81
+ from autocontext.session.living_docs import DocMaintainer
82
+
83
+ _write_doc(tmp_path, "ARCH.md", opted_in=True, content="Old architecture info.")
84
+ maintainer = DocMaintainer(roots=[tmp_path])
85
+ result = maintainer.run(learnings=["Auth now uses OAuth2"])
86
+ assert not result.skipped
87
+ assert len(result.updates) >= 0 # may or may not produce updates depending on signal
@@ -72,7 +72,7 @@ wheels = [
72
72
 
73
73
  [[package]]
74
74
  name = "autocontext"
75
- version = "0.3.3"
75
+ version = "0.3.4"
76
76
  source = { editable = "." }
77
77
  dependencies = [
78
78
  { name = "anthropic" },
File without changes
File without changes
File without changes