vis-agent 0.3.4.dev8044__tar.gz → 0.3.4.dev8047__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 (156) hide show
  1. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/PKG-INFO +1 -1
  2. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/agents.json +57 -0
  3. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/config.json +0 -25
  4. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/gateway.json +0 -52
  5. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/pyproject.toml +1 -1
  6. vis_agent-0.3.4.dev8047/release-tag +1 -0
  7. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/_contracts.py +0 -1
  8. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/engine/_agents.py +9 -1
  9. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/engine/_client.py +0 -90
  10. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/engine/_council.py +4 -6
  11. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_client.py +0 -28
  12. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_contracts.py +4 -4
  13. vis_agent-0.3.4.dev8044/contracts/schema/improve.json +0 -276
  14. vis_agent-0.3.4.dev8044/release-tag +0 -1
  15. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/.gitignore +0 -0
  16. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/LICENSE +0 -0
  17. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/README.md +0 -0
  18. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/activity-arguments.json +0 -0
  19. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/activity-cases.json +0 -0
  20. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/activity-copy.json +0 -0
  21. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/activity-execution.json +0 -0
  22. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/activity-groups.json +0 -0
  23. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/activity-read-session.json +0 -0
  24. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/activity-reads.json +0 -0
  25. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/activity-results.json +0 -0
  26. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/activity-stream.json +0 -0
  27. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/activity-tables.json +0 -0
  28. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/activity.json +0 -0
  29. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/diff.json +0 -0
  30. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/live-primitives.json +0 -0
  31. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/session-health.json +0 -0
  32. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/fixtures/view.json +0 -0
  33. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/activity.json +0 -0
  34. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/automations.json +0 -0
  35. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/common.json +0 -0
  36. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/content.json +0 -0
  37. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/council.json +0 -0
  38. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/diff.json +0 -0
  39. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/evals.json +0 -0
  40. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/provider.json +0 -0
  41. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/rooms.json +0 -0
  42. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/symbol.json +0 -0
  43. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/toggle.json +0 -0
  44. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/contracts/schema/view.json +0 -0
  45. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/examples/greeter/tests/test_greeter.py +0 -0
  46. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/hatch_build.py +0 -0
  47. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/__init__.py +0 -0
  48. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/_outside.py +0 -0
  49. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/_wire.py +0 -0
  50. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/activity.py +0 -0
  51. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/engine/__init__.py +0 -0
  52. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/engine/_agent.py +0 -0
  53. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/engine/_extensions.py +0 -0
  54. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/engine/_host.py +0 -0
  55. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/engine/_install.py +0 -0
  56. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/engine/_local.py +0 -0
  57. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/engine/_models.py +0 -0
  58. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/__init__.py +0 -0
  59. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/_gateway.py +0 -0
  60. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/agent.py +0 -0
  61. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/bench.py +0 -0
  62. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/check.py +0 -0
  63. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/compare.py +0 -0
  64. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/environment.py +0 -0
  65. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/grade.py +0 -0
  66. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/harbor.py +0 -0
  67. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/judge-rubric.toml +0 -0
  68. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/judge.py +0 -0
  69. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/labels.py +0 -0
  70. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/leaderboard.py +0 -0
  71. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/lic.py +0 -0
  72. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/longmemeval.py +0 -0
  73. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/mrcr.py +0 -0
  74. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/repeats.py +0 -0
  75. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/report.py +0 -0
  76. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/reports.py +0 -0
  77. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/rounds.py +0 -0
  78. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/stages.py +0 -0
  79. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/stats.py +0 -0
  80. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/evals/trajectory.py +0 -0
  81. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/extension.py +0 -0
  82. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/extension_package.py +0 -0
  83. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/py.typed +0 -0
  84. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/rooms.py +0 -0
  85. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/src/blockether/vis/views.py +0 -0
  86. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/conftest.py +0 -0
  87. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/evals_atif.py +0 -0
  88. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_activity.py +0 -0
  89. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_agent.py +0 -0
  90. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_agent_extension_lifecycle.py +0 -0
  91. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_agent_extensions.py +0 -0
  92. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_agents.py +0 -0
  93. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_api_guides.py +0 -0
  94. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_attachments.py +0 -0
  95. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_authoring.py +0 -0
  96. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_catalog.py +0 -0
  97. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_catalog_recipe.py +0 -0
  98. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_ci_report_recipe.py +0 -0
  99. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_client_extensions_engine.py +0 -0
  100. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_code_quality_recipe.py +0 -0
  101. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_council.py +0 -0
  102. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_declarations.py +0 -0
  103. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_engine.py +0 -0
  104. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_engine_docstrings.py +0 -0
  105. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_agent.py +0 -0
  106. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_bench.py +0 -0
  107. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_check.py +0 -0
  108. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_compare.py +0 -0
  109. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_environment.py +0 -0
  110. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_gateway.py +0 -0
  111. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_grade.py +0 -0
  112. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_guards.py +0 -0
  113. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_harbor.py +0 -0
  114. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_judge.py +0 -0
  115. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_labels.py +0 -0
  116. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_lic.py +0 -0
  117. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_longmemeval.py +0 -0
  118. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_mrcr.py +0 -0
  119. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_repeats.py +0 -0
  120. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_report.py +0 -0
  121. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_rounds.py +0 -0
  122. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_stages.py +0 -0
  123. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_stats.py +0 -0
  124. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_tasks.py +0 -0
  125. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_evals_trajectory.py +0 -0
  126. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_extension_package.py +0 -0
  127. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_extension_reference.py +0 -0
  128. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_gateway_performance.py +0 -0
  129. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_goals.py +0 -0
  130. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_install.py +0 -0
  131. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_live_primitives.py +0 -0
  132. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_live_wait.py +0 -0
  133. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_local.py +0 -0
  134. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_method_typing.py +0 -0
  135. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_models.py +0 -0
  136. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_monitor_recipe.py +0 -0
  137. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_namespace.py +0 -0
  138. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_outside.py +0 -0
  139. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_providers.py +0 -0
  140. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_read_session.py +0 -0
  141. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_record_arguments.py +0 -0
  142. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_registration.py +0 -0
  143. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_repair_hooks.py +0 -0
  144. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_result_sequence.py +0 -0
  145. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_rooms.py +0 -0
  146. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_scoped_settings.py +0 -0
  147. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_sdk_bootstrap.py +0 -0
  148. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_sdk_guide.py +0 -0
  149. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_sdk_typing.py +0 -0
  150. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_shortcuts_live.py +0 -0
  151. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_structured_live.py +0 -0
  152. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_symbol_contract.py +0 -0
  153. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_testing.py +0 -0
  154. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_text_list_arguments.py +0 -0
  155. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_tools.py +0 -0
  156. {vis_agent-0.3.4.dev8044 → vis_agent-0.3.4.dev8047}/tests/test_views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: vis-agent
3
- Version: 0.3.4.dev8044
3
+ Version: 0.3.4.dev8047
4
4
  Summary: The Vis Python SDK — author extensions and control local or remote engines.
5
5
  Project-URL: Homepage, https://vis.blockether.com
6
6
  Project-URL: Documentation, https://vis.blockether.com
@@ -575,6 +575,63 @@
575
575
  "type": "integer",
576
576
  "minimum": 0
577
577
  },
578
+ "activity": {
579
+ "description": "The latest Activity line of a running child.",
580
+ "type": "string"
581
+ },
582
+ "notes": {
583
+ "description": "The new progress notes of a running child since the last wait.",
584
+ "type": "array",
585
+ "items": {
586
+ "type": "string"
587
+ }
588
+ },
589
+ "messages": {
590
+ "description": "The new Council messages of a running child since the last wait.",
591
+ "type": "array",
592
+ "items": {
593
+ "type": "object",
594
+ "properties": {
595
+ "entry_id": {
596
+ "type": "integer",
597
+ "minimum": 1
598
+ },
599
+ "kind": {
600
+ "type": "string"
601
+ },
602
+ "content": {
603
+ "type": "string"
604
+ }
605
+ },
606
+ "required": [
607
+ "entry_id",
608
+ "kind",
609
+ "content"
610
+ ],
611
+ "additionalProperties": false
612
+ }
613
+ },
614
+ "step_secs": {
615
+ "description": "The seconds that a running child is in its current step.",
616
+ "type": "integer",
617
+ "minimum": 0
618
+ },
619
+ "elapsed_secs": {
620
+ "description": "The seconds since a running child started its current task.",
621
+ "type": "integer",
622
+ "minimum": 0
623
+ },
624
+ "alerts": {
625
+ "description": "For a running child: slow_step after 300 s in one step, errors for three failed steps of the last five, budget at 80% of the iteration budget.",
626
+ "type": "array",
627
+ "items": {
628
+ "enum": [
629
+ "slow_step",
630
+ "errors",
631
+ "budget"
632
+ ]
633
+ }
634
+ },
578
635
  "warning": {
579
636
  "type": "string"
580
637
  },
@@ -1396,31 +1396,6 @@
1396
1396
  "python": {
1397
1397
  "$ref": "#/$defs/python"
1398
1398
  },
1399
- "improve": {
1400
- "type": "object",
1401
- "properties": {
1402
- "provider": {
1403
- "type": [
1404
- "string",
1405
- "null"
1406
- ],
1407
- "minLength": 1
1408
- },
1409
- "model": {
1410
- "type": [
1411
- "string",
1412
- "null"
1413
- ],
1414
- "minLength": 1
1415
- },
1416
- "interval_minutes": {
1417
- "type": "integer",
1418
- "minimum": 1,
1419
- "maximum": 1440
1420
- }
1421
- },
1422
- "additionalProperties": false
1423
- },
1424
1399
  "titling": {
1425
1400
  "$ref": "#/$defs/titling"
1426
1401
  },
@@ -1387,58 +1387,6 @@
1387
1387
  },
1388
1388
  "path": "/v1/sessions/actions/search"
1389
1389
  },
1390
- {
1391
- "audience": "sdk",
1392
- "operations": {
1393
- "get": {
1394
- "request": "none",
1395
- "response": "json"
1396
- },
1397
- "post": {
1398
- "request": "json",
1399
- "response": "json"
1400
- }
1401
- },
1402
- "path": "/v1/improve"
1403
- },
1404
- {
1405
- "audience": "sdk",
1406
- "operations": {
1407
- "get": {
1408
- "request": "none",
1409
- "response": "json"
1410
- },
1411
- "patch": {
1412
- "request": "json",
1413
- "response": "json"
1414
- }
1415
- },
1416
- "path": "/v1/improve/settings"
1417
- },
1418
- {
1419
- "audience": "sdk",
1420
- "operations": {
1421
- "post": {
1422
- "request": "none",
1423
- "response": "json"
1424
- }
1425
- },
1426
- "path": "/v1/improve/review"
1427
- },
1428
- {
1429
- "audience": "sdk",
1430
- "operations": {
1431
- "get": {
1432
- "request": "none",
1433
- "response": "json"
1434
- },
1435
- "patch": {
1436
- "request": "json",
1437
- "response": "json"
1438
- }
1439
- },
1440
- "path": "/v1/improve/:id"
1441
- },
1442
1390
  {
1443
1391
  "audience": "sdk",
1444
1392
  "operations": {
@@ -8,7 +8,7 @@ build-backend = "hatchling.build"
8
8
 
9
9
  [project]
10
10
  name = "vis-agent"
11
- version = "0.3.4.dev8044"
11
+ version = "0.3.4.dev8047"
12
12
  description = "The Vis Python SDK — author extensions and control local or remote engines."
13
13
  readme = "README.md"
14
14
  requires-python = ">=3.12"
@@ -0,0 +1 @@
1
+ beta-4f20120d53ed0d90c5b289ac14b75dbdf2b7fbbf
@@ -20,7 +20,6 @@ _SCHEMA_NAMES = (
20
20
  "diff",
21
21
  "evals",
22
22
  "gateway",
23
- "improve",
24
23
  "provider",
25
24
  "rooms",
26
25
  "symbol",
@@ -48,7 +48,9 @@ class SubagentRecord:
48
48
  human holds the queue of the child; only a person can release it. ``unknown`` names a
49
49
  session that is not a subagent of the caller. ``warning`` reports a file overlap. A child
50
50
  that a 429 stopped is ``failed`` with ``error`` (code ``rate_limited``) and ``alternatives``:
51
- the working provider and model routes for a new child.
51
+ the working provider and model routes for a new child. A running child also has
52
+ ``activity``, ``notes``, ``messages``, ``step_secs``, ``elapsed_secs`` and ``alerts``: its
53
+ progress since the last wait.
52
54
  """
53
55
 
54
56
  session_id: str
@@ -64,6 +66,12 @@ class SubagentRecord:
64
66
  warning: str | None = None
65
67
  error: dict[str, Any] | None = None
66
68
  alternatives: list[dict[str, str]] | None = None
69
+ activity: str | None = None
70
+ notes: list[str] | None = None
71
+ messages: list[dict[str, Any]] | None = None
72
+ step_secs: int | None = None
73
+ elapsed_secs: int | None = None
74
+ alerts: list[str] | None = None
67
75
 
68
76
  @classmethod
69
77
  def from_wire(cls, value: dict[str, Any]) -> SubagentRecord:
@@ -650,96 +650,6 @@ class ExecutionLayer(ABC):
650
650
  )
651
651
  return response.json()
652
652
 
653
- def get_improve(
654
- self, *, query: Query | None = None, timeout: float | None = None
655
- ) -> JSONValue:
656
- """GET /v1/improve — json response."""
657
- response = self._request(
658
- "GET", "/v1/improve", path={}, query=query, timeout=timeout
659
- )
660
- return response.json()
661
-
662
- def post_improve(
663
- self,
664
- *,
665
- query: Query | None = None,
666
- timeout: float | None = None,
667
- body: JSONValue = None,
668
- ) -> JSONValue:
669
- """POST /v1/improve — json response."""
670
- response = self._request(
671
- "POST", "/v1/improve", path={}, query=query, timeout=timeout, body=body
672
- )
673
- return response.json()
674
-
675
- def get_improve_settings(
676
- self, *, query: Query | None = None, timeout: float | None = None
677
- ) -> JSONValue:
678
- """GET /v1/improve/settings — json response."""
679
- response = self._request(
680
- "GET", "/v1/improve/settings", path={}, query=query, timeout=timeout
681
- )
682
- return response.json()
683
-
684
- def patch_improve_settings(
685
- self,
686
- *,
687
- query: Query | None = None,
688
- timeout: float | None = None,
689
- body: JSONValue = None,
690
- ) -> JSONValue:
691
- """PATCH /v1/improve/settings — json response."""
692
- response = self._request(
693
- "PATCH",
694
- "/v1/improve/settings",
695
- path={},
696
- query=query,
697
- timeout=timeout,
698
- body=body,
699
- )
700
- return response.json()
701
-
702
- def post_improve_review(
703
- self, *, query: Query | None = None, timeout: float | None = None
704
- ) -> JSONValue:
705
- """POST /v1/improve/review — json response."""
706
- response = self._request(
707
- "POST", "/v1/improve/review", path={}, query=query, timeout=timeout
708
- )
709
- return response.json()
710
-
711
- def get_improve_entry(
712
- self, entry_id: int, *, query: Query | None = None, timeout: float | None = None
713
- ) -> JSONValue:
714
- """GET /v1/improve/:id — json response."""
715
- response = self._request(
716
- "GET",
717
- "/v1/improve/:id",
718
- path={"id": entry_id},
719
- query=query,
720
- timeout=timeout,
721
- )
722
- return response.json()
723
-
724
- def patch_improve_entry(
725
- self,
726
- entry_id: int,
727
- *,
728
- query: Query | None = None,
729
- timeout: float | None = None,
730
- body: JSONValue = None,
731
- ) -> JSONValue:
732
- """PATCH /v1/improve/:id — json response."""
733
- response = self._request(
734
- "PATCH",
735
- "/v1/improve/:id",
736
- path={"id": entry_id},
737
- query=query,
738
- timeout=timeout,
739
- body=body,
740
- )
741
- return response.json()
742
-
743
653
  def get_mcp_servers(
744
654
  self, *, query: Query | None = None, timeout: float | None = None
745
655
  ) -> JSONValue:
@@ -174,9 +174,8 @@ class Council:
174
174
  content: Message text. Keep secrets and private data out of messages.
175
175
  kind: `coordination` for work and questions, `informational` for
176
176
  findings, or `complain` for failures and concrete improvements.
177
- Complaints enter the persistent improve register, not an external
178
- issue tracker. Include sanitized evidence, expected versus actual
179
- behavior, impact and a workaround. Keep facts apart from guesses.
177
+ Include sanitized evidence, expected versus actual behavior, impact
178
+ and a workaround. Keep facts apart from guesses.
180
179
  thread_id: Existing thread to continue. Omit it to start a new thread.
181
180
  title: Optional readable title for the message.
182
181
  ping: Session IDs, `"all"` for active peers, or no recipients. Explicit
@@ -196,9 +195,8 @@ class Council:
196
195
 
197
196
  Each message owns its kind and host-generated `source_ref`. That reference
198
197
  identifies this publication, not a reported incident. When you report an
199
- incident, include the original session and turn/iteration/form. Failed Python
200
- tool executions already have an autocomplain entry. Add to its thread instead of
201
- duplicating it. Follow-ups and acknowledgements do not grant wake rights.
198
+ incident, include the original session and turn/iteration/form. Follow-ups and
199
+ acknowledgements do not grant wake rights.
202
200
  """
203
201
  body = {
204
202
  "content": content,
@@ -757,34 +757,6 @@ def test_dedicated_methods_cover_every_public_nonstreaming_operation():
757
757
  assert "out.txt" in str(resume[3])
758
758
 
759
759
 
760
- @pytest.mark.parametrize(
761
- "operation,args,method,route,has_body",
762
- [
763
- ("get_improve", (), "GET", "/v1/improve", False),
764
- ("post_improve", (), "POST", "/v1/improve", True),
765
- ("get_improve_settings", (), "GET", "/v1/improve/settings", False),
766
- ("patch_improve_settings", (), "PATCH", "/v1/improve/settings", True),
767
- ("post_improve_review", (), "POST", "/v1/improve/review", False),
768
- ("get_improve_entry", (42,), "GET", "/v1/improve/42", False),
769
- ("patch_improve_entry", (42,), "PATCH", "/v1/improve/42", True),
770
- ],
771
- )
772
- def test_improve_operations_preserve_path_query_and_payload(
773
- operation, args, method, route, has_body
774
- ):
775
- payload = {"content": "A reproducible report"}
776
- with endpoint(lambda *_: (200, {"accepted": True})) as (url, calls):
777
- options = {"query": {"limit": 5}, "timeout": 7}
778
- if has_body:
779
- options["body"] = payload
780
- result = getattr(GatewayClient(url), operation)(*args, **options)
781
- assert result == {"accepted": True}
782
- assert calls[-1][:2] == (method, route + "?limit=5")
783
- assert (json.loads(calls[-1][3]) if has_body else calls[-1][3]) == (
784
- payload if has_body else b""
785
- )
786
-
787
-
788
760
  @pytest.mark.parametrize(
789
761
  "operation,args,method,route,has_body",
790
762
  [
@@ -55,11 +55,11 @@ def test_gateway_routes_and_lease_policy_are_shared():
55
55
  lease = gateway["x-vis-client-lease"]
56
56
  assert 0 < lease["touch_ms"] < lease["keepalive_ms"] < lease["ttl_ms"]
57
57
  assert 0 < lease["keepalive_timeout_ms"] < lease["keepalive_ms"]
58
- assert len(routes) == 173
59
- assert len(operations) == 212
58
+ assert len(routes) == 169
59
+ assert len(operations) == 205
60
60
  assert Counter(operation["request"] for operation in operations) == {
61
- "none": 127,
62
- "json": 79,
61
+ "none": 123,
62
+ "json": 76,
63
63
  "binary": 6,
64
64
  }
65
65
  assert by_path["/v1/decisions/models"]["operations"]["get"] == {
@@ -1,276 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://vis.blockether.com/schema/improve.json",
4
- "$ref": "#/$defs/record",
5
- "$defs": {
6
- "review-output": {
7
- "type": "object",
8
- "properties": {
9
- "analyses": {
10
- "type": "array",
11
- "maxItems": 10,
12
- "items": {
13
- "type": "object",
14
- "properties": {
15
- "id": {
16
- "type": "integer",
17
- "minimum": 1
18
- },
19
- "markdown": {
20
- "type": "string",
21
- "minLength": 1,
22
- "maxLength": 6000,
23
- "pattern": "\\S"
24
- }
25
- },
26
- "required": [
27
- "id",
28
- "markdown"
29
- ],
30
- "additionalProperties": false
31
- }
32
- },
33
- "groups": {
34
- "type": "array",
35
- "maxItems": 5,
36
- "items": {
37
- "type": "object",
38
- "properties": {
39
- "title": {
40
- "type": "string",
41
- "minLength": 1,
42
- "maxLength": 200,
43
- "pattern": "\\S"
44
- },
45
- "markdown": {
46
- "type": "string",
47
- "minLength": 1,
48
- "maxLength": 6000,
49
- "pattern": "\\S"
50
- },
51
- "children": {
52
- "type": "array",
53
- "minItems": 2,
54
- "maxItems": 10,
55
- "uniqueItems": true,
56
- "items": {
57
- "type": "integer",
58
- "minimum": 1
59
- }
60
- }
61
- },
62
- "required": [
63
- "title",
64
- "markdown",
65
- "children"
66
- ],
67
- "additionalProperties": false
68
- }
69
- }
70
- },
71
- "required": [
72
- "analyses",
73
- "groups"
74
- ],
75
- "additionalProperties": false
76
- },
77
- "create": {
78
- "type": "object",
79
- "properties": {
80
- "project_id": {
81
- "type": [
82
- "string",
83
- "null"
84
- ],
85
- "format": "uuid"
86
- },
87
- "title": {
88
- "type": "string",
89
- "minLength": 1,
90
- "maxLength": 256,
91
- "pattern": "\\S"
92
- },
93
- "content": {
94
- "type": "string",
95
- "maxLength": 262144
96
- },
97
- "status": {
98
- "enum": [
99
- "open",
100
- "closed"
101
- ]
102
- },
103
- "parent_id": {
104
- "type": [
105
- "integer",
106
- "null"
107
- ],
108
- "minimum": 1
109
- }
110
- },
111
- "required": [
112
- "title"
113
- ],
114
- "additionalProperties": false
115
- },
116
- "update": {
117
- "type": "object",
118
- "properties": {
119
- "project_id": {
120
- "type": [
121
- "string",
122
- "null"
123
- ],
124
- "format": "uuid"
125
- },
126
- "title": {
127
- "type": "string",
128
- "minLength": 1,
129
- "maxLength": 256,
130
- "pattern": "\\S"
131
- },
132
- "content": {
133
- "type": "string",
134
- "maxLength": 262144
135
- },
136
- "status": {
137
- "enum": [
138
- "open",
139
- "closed"
140
- ]
141
- },
142
- "parent_id": {
143
- "type": [
144
- "integer",
145
- "null"
146
- ],
147
- "minimum": 1
148
- },
149
- "expected_version": {
150
- "type": "integer",
151
- "minimum": 1
152
- }
153
- },
154
- "minProperties": 1,
155
- "additionalProperties": false
156
- },
157
- "list": {
158
- "type": "object",
159
- "properties": {
160
- "project_id": {
161
- "type": [
162
- "string",
163
- "null"
164
- ],
165
- "format": "uuid"
166
- },
167
- "status": {
168
- "enum": [
169
- "open",
170
- "closed"
171
- ]
172
- },
173
- "after": {
174
- "type": "integer",
175
- "minimum": 0
176
- },
177
- "limit": {
178
- "type": "integer",
179
- "minimum": 1,
180
- "maximum": 200
181
- }
182
- },
183
- "additionalProperties": false
184
- },
185
- "record": {
186
- "type": "object",
187
- "properties": {
188
- "project_id": {
189
- "type": [
190
- "string",
191
- "null"
192
- ],
193
- "format": "uuid"
194
- },
195
- "title": {
196
- "type": "string",
197
- "minLength": 1,
198
- "maxLength": 256,
199
- "pattern": "\\S"
200
- },
201
- "content": {
202
- "type": "string",
203
- "maxLength": 262144
204
- },
205
- "status": {
206
- "enum": [
207
- "open",
208
- "closed"
209
- ]
210
- },
211
- "parent_id": {
212
- "type": [
213
- "integer",
214
- "null"
215
- ],
216
- "minimum": 1
217
- },
218
- "id": {
219
- "type": "integer",
220
- "minimum": 1
221
- },
222
- "entry_id": {
223
- "type": [
224
- "integer",
225
- "null"
226
- ],
227
- "minimum": 1
228
- },
229
- "version": {
230
- "type": "integer",
231
- "minimum": 1
232
- },
233
- "created_at": {
234
- "type": "integer"
235
- },
236
- "updated_at": {
237
- "type": "integer"
238
- },
239
- "source_content": {
240
- "type": [
241
- "string",
242
- "null"
243
- ]
244
- },
245
- "source_ref": {
246
- "type": [
247
- "object",
248
- "null"
249
- ]
250
- },
251
- "session_id": {
252
- "type": [
253
- "string",
254
- "null"
255
- ]
256
- }
257
- },
258
- "additionalProperties": false,
259
- "required": [
260
- "project_id",
261
- "title",
262
- "content",
263
- "status",
264
- "parent_id",
265
- "id",
266
- "entry_id",
267
- "version",
268
- "created_at",
269
- "updated_at",
270
- "source_content",
271
- "source_ref",
272
- "session_id"
273
- ]
274
- }
275
- }
276
- }
@@ -1 +0,0 @@
1
- beta-6a74ef1e04c038089b46a5f45249ddbdb5029358