vis-agent 0.2.32.dev7350__tar.gz → 0.2.34.dev7410__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 (98) hide show
  1. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/PKG-INFO +1 -1
  2. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/config.json +11 -0
  3. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/gateway.json +14 -3
  4. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/toggle.json +4 -0
  5. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/pyproject.toml +1 -1
  6. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/extension.py +5 -0
  7. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_scoped_settings.py +11 -0
  8. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/.gitignore +0 -0
  9. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/LICENSE +0 -0
  10. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/README.md +0 -0
  11. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/fixtures/activity-arguments.json +0 -0
  12. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/fixtures/activity-cases.json +0 -0
  13. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/fixtures/activity-copy.json +0 -0
  14. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/fixtures/activity-execution.json +0 -0
  15. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/fixtures/activity-groups.json +0 -0
  16. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/fixtures/activity-read-session.json +0 -0
  17. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/fixtures/activity-reads.json +0 -0
  18. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/fixtures/activity-results.json +0 -0
  19. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/fixtures/activity-tables.json +0 -0
  20. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/fixtures/activity.json +0 -0
  21. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/fixtures/diff.json +0 -0
  22. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/fixtures/live-primitives.json +0 -0
  23. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/fixtures/session-health.json +0 -0
  24. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/fixtures/view.json +0 -0
  25. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/activity.json +0 -0
  26. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/agents.json +0 -0
  27. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/automations.json +0 -0
  28. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/common.json +0 -0
  29. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/content.json +0 -0
  30. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/council.json +0 -0
  31. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/diff.json +0 -0
  32. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/improve.json +0 -0
  33. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/provider.json +0 -0
  34. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/rooms.json +0 -0
  35. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/symbol.json +0 -0
  36. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/contracts/schema/view.json +0 -0
  37. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/examples/greeter/tests/test_greeter.py +0 -0
  38. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/hatch_build.py +0 -0
  39. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/__init__.py +0 -0
  40. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/_contracts.py +0 -0
  41. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/_outside.py +0 -0
  42. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/_wire.py +0 -0
  43. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/activity.py +0 -0
  44. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/engine/__init__.py +0 -0
  45. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/engine/_agent.py +0 -0
  46. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/engine/_agents.py +0 -0
  47. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/engine/_client.py +0 -0
  48. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/engine/_council.py +0 -0
  49. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/engine/_extensions.py +0 -0
  50. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/engine/_local.py +0 -0
  51. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/extension_package.py +0 -0
  52. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/py.typed +0 -0
  53. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/rooms.py +0 -0
  54. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/src/blockether/vis/views.py +0 -0
  55. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/conftest.py +0 -0
  56. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_activity.py +0 -0
  57. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_agent.py +0 -0
  58. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_agent_extension_lifecycle.py +0 -0
  59. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_agent_extensions.py +0 -0
  60. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_agents.py +0 -0
  61. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_api_guides.py +0 -0
  62. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_authoring.py +0 -0
  63. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_catalog.py +0 -0
  64. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_catalog_recipe.py +0 -0
  65. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_ci_report_recipe.py +0 -0
  66. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_client.py +0 -0
  67. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_client_extensions_engine.py +0 -0
  68. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_code_quality_recipe.py +0 -0
  69. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_contracts.py +0 -0
  70. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_council.py +0 -0
  71. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_declarations.py +0 -0
  72. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_engine.py +0 -0
  73. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_engine_docstrings.py +0 -0
  74. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_extension_package.py +0 -0
  75. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_extension_reference.py +0 -0
  76. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_gateway_performance.py +0 -0
  77. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_goals.py +0 -0
  78. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_live_primitives.py +0 -0
  79. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_live_wait.py +0 -0
  80. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_local.py +0 -0
  81. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_method_typing.py +0 -0
  82. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_monitor_recipe.py +0 -0
  83. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_namespace.py +0 -0
  84. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_outside.py +0 -0
  85. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_providers.py +0 -0
  86. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_record_arguments.py +0 -0
  87. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_registration.py +0 -0
  88. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_repair_hooks.py +0 -0
  89. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_result_sequence.py +0 -0
  90. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_rooms.py +0 -0
  91. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_sdk_bootstrap.py +0 -0
  92. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_sdk_guide.py +0 -0
  93. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_sdk_typing.py +0 -0
  94. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_structured_live.py +0 -0
  95. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_symbol_contract.py +0 -0
  96. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_testing.py +0 -0
  97. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_tools.py +0 -0
  98. {vis_agent-0.2.32.dev7350 → vis_agent-0.2.34.dev7410}/tests/test_views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: vis-agent
3
- Version: 0.2.32.dev7350
3
+ Version: 0.2.34.dev7410
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
@@ -257,6 +257,17 @@
257
257
  },
258
258
  "is_image_input": {
259
259
  "type": "boolean"
260
+ },
261
+ "reasoning_level": {
262
+ "enum": [
263
+ "quick",
264
+ "balanced",
265
+ "deep"
266
+ ]
267
+ },
268
+ "reasoning_effort": {
269
+ "type": "string",
270
+ "pattern": ".*\\S.*"
260
271
  }
261
272
  },
262
273
  "additionalProperties": false,
@@ -2144,15 +2144,15 @@
2144
2144
  "properties": {
2145
2145
  "protocol": {
2146
2146
  "type": "integer",
2147
- "const": 16
2147
+ "const": 17
2148
2148
  },
2149
2149
  "min_client": {
2150
2150
  "type": "integer",
2151
- "const": 16
2151
+ "const": 17
2152
2152
  },
2153
2153
  "min_gateway": {
2154
2154
  "type": "integer",
2155
- "const": 16
2155
+ "const": 17
2156
2156
  },
2157
2157
  "version": {
2158
2158
  "type": [
@@ -2731,6 +2731,17 @@
2731
2731
  "additionalProperties": {
2732
2732
  "type": "string"
2733
2733
  }
2734
+ },
2735
+ "parent": {
2736
+ "type": "string",
2737
+ "description": "Id of the setting that this row belongs under."
2738
+ },
2739
+ "children": {
2740
+ "type": "array",
2741
+ "description": "Settings that belong under this row, in display order. Children can have children.",
2742
+ "items": {
2743
+ "$ref": "#/$defs/setting"
2744
+ }
2734
2745
  }
2735
2746
  }
2736
2747
  },
@@ -76,6 +76,10 @@
76
76
  "group": {
77
77
  "$ref": "common.json#/$defs/non_blank_string"
78
78
  },
79
+ "parent": {
80
+ "$ref": "common.json#/$defs/non_blank_string",
81
+ "description": "Id of the setting that this setting belongs under in settings. Settings can nest at any depth."
82
+ },
79
83
  "type": {
80
84
  "enum": [
81
85
  "boolean",
@@ -8,7 +8,7 @@ build-backend = "hatchling.build"
8
8
 
9
9
  [project]
10
10
  name = "vis-agent"
11
- version = "0.2.32.dev7350"
11
+ version = "0.2.34.dev7410"
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.11"
@@ -833,6 +833,8 @@ class Setting(Generic[_SettingValue]):
833
833
  in its extension's own settings section. `value()` reads the current callback's
834
834
  response snapshot. Its type follows `default`: `bool` for a boolean setting, `str`
835
835
  for a choice setting. Outside Vis, it returns the declared default.
836
+ `parent` names another setting of the same section. Settings shows this setting
837
+ under that setting. Settings can nest at any depth.
836
838
  """
837
839
 
838
840
  id: str
@@ -842,6 +844,7 @@ class Setting(Generic[_SettingValue]):
842
844
  choices: Sequence[str] = ()
843
845
  scopes: Sequence[str] | None = None
844
846
  description: str | None = None
847
+ parent: str | None = None
845
848
 
846
849
  def __post_init__(self):
847
850
  for name, value in (("scopes", self.scopes), ("choices", self.choices)):
@@ -877,6 +880,8 @@ class Setting(Generic[_SettingValue]):
877
880
  spec["choices"] = list(self.choices)
878
881
  if self.description is not None:
879
882
  spec["description"] = self.description
883
+ if self.parent is not None:
884
+ spec["parent"] = self.parent
880
885
  return spec
881
886
 
882
887
  def value(self) -> _SettingValue:
@@ -57,6 +57,17 @@ def test_enum_and_semantics():
57
57
  vis.Setting(id="test_mode", label="Test mode", default="on")
58
58
 
59
59
 
60
+ def test_parent_nests_a_setting():
61
+ parent = vis.Setting(id="test_feature", label="Test feature", default=True)
62
+ child = vis.Setting(
63
+ id="test_detail", label="Test detail", default=False, parent="test_feature"
64
+ )
65
+ assert "parent" not in parent._spec()
66
+ assert child._spec()["parent"] == "test_feature"
67
+ with pytest.raises(ValueError):
68
+ vis.Setting(id="test_detail", label="Test detail", default=False, parent=" ")
69
+
70
+
60
71
  def test_application_bridge_rejects_host_only_settings_before_connecting():
61
72
  declaration = vis.Extension(
62
73
  name="Settings test",