dominus-cli 2.1.1 → 2.2.0

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.
@@ -13,8 +13,8 @@ set of Studio inspection, mutation, documentation, and verification tools.
13
13
  text fallbacks, `isError`, and accurate tool risk annotations.
14
14
  - Keep stdio as the MCP transport. It limits the MCP server itself to the process
15
15
  that launched it and avoids exposing another localhost HTTP endpoint.
16
- - Do not depend on legacy sampling, roots, or MCP logging. They are deprecated in
17
- the 2026-07-28 release candidate.
16
+ - Use optional MCP Sampling only for the explicit parallel coordinator. Detect the
17
+ client capability first and keep every normal Studio tool independent of it.
18
18
  - Do not adopt the legacy experimental Tasks API. Long Studio calls remain normal
19
19
  cancellable tool calls until the July Tasks extension is final and broadly
20
20
  supported by clients and the TypeScript SDK.
@@ -40,6 +40,9 @@ Official references:
40
40
  Failed batches are cancelled and automatically undone.
41
41
  7. Script writes require the revision hash returned by the read operation.
42
42
  8. There is no arbitrary Luau execution tool.
43
+ 9. Broad tasks can opt into an MCP-native coordinator. It partitions immediate
44
+ child branches, sends bounded read-only evidence to concurrent Sampling workers,
45
+ validates scoped proposals, and owns the only atomic Studio write.
43
46
 
44
47
  ## MCP tool surface
45
48
 
@@ -50,6 +53,7 @@ Official references:
50
53
  - `studio_build_ui`, `studio_snapshot_ui`
51
54
  - `studio_run_test`, `studio_get_output`
52
55
  - `roblox_search_api`, `roblox_get_api`
56
+ - `run_parallel_task` for Sampling-capable MCP clients
53
57
 
54
58
  The intended agent loop is inspect, plan, apply, read back, test. Tool descriptions
55
59
  and the server prompt make that workflow explicit without embedding another LLM
@@ -62,6 +66,8 @@ inside the MCP server.
62
66
  tool arrays/depth/source lengths.
63
67
  - Dedicated mutation tools only; no `loadstring` or generic `run_code` path.
64
68
  - Explicit destructive tool for deletion.
69
+ - Parallel workers are proposal-only; stable refs must match supplied evidence,
70
+ writes must remain in owned scopes, and overlapping proposals are rejected.
65
71
  - Atomic UI replacement: build and validate off-tree before replacing the live UI.
66
72
  - Output watcher filters every Dominus-prefixed message to prevent feedback loops.
67
73
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dominus-cli",
3
- "version": "2.1.1",
3
+ "version": "2.2.0",
4
4
  "description": "Dominus 2: a secure, MCP-native Roblox Studio engineering agent bridge.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -3384,7 +3384,7 @@ function ValueCodec.encode(value)
3384
3384
  end
3385
3385
 
3386
3386
  function ValueCodec.setProperty(instance, propertyName, value)
3387
- if propertyName == "Parent" or propertyName == "ClassName" then
3387
+ if propertyName == "Parent" or propertyName == "ClassName" or propertyName == "Source" then
3388
3388
  error("Property cannot be changed through setProperties: " .. propertyName)
3389
3389
  end
3390
3390
  local readOk, current = pcall(function()
@@ -209,7 +209,7 @@ function ValueCodec.encode(value)
209
209
  end
210
210
 
211
211
  function ValueCodec.setProperty(instance, propertyName, value)
212
- if propertyName == "Parent" or propertyName == "ClassName" then
212
+ if propertyName == "Parent" or propertyName == "ClassName" or propertyName == "Source" then
213
213
  error("Property cannot be changed through setProperties: " .. propertyName)
214
214
  end
215
215
  local readOk, current = pcall(function()