Skip to content

Support for sub-agents#8574

Open
4ian wants to merge 40 commits intomasterfrom
feat/sub-agents
Open

Support for sub-agents#8574
4ian wants to merge 40 commits intomasterfrom
feat/sub-agents

Conversation

@4ian
Copy link
Copy Markdown
Owner

@4ian 4ian commented May 7, 2026

No description provided.

4ian and others added 30 commits April 6, 2026 17:04
The output of each EditorFunction is concatenated into the orchestrator's
"run_edit_agent" output, so every extra word is paid for twice. Tighten
the wording across success/failure messages and warnings, and rework the
property-listing helper used by `create_or_replace_object` and
`add_behavior` to drop redundant tags and collapse empty properties.

Highlights:
- New `formatPropertiesList` helper: omits `(boolean)` (the value implies
  it), groups empty-valued properties at the end of the listing
  ("Empty: font (resource)"), and abbreviates known measurement units to
  their short symbol when shorter ("Pixel" -> "px", "DegreeAngle" ->
  "deg") via a new `getShortMeasurementUnit`.
- `add_or_edit_variable` now reports the new value, truncated to 200
  chars with a "[...truncated - N more characters]" tag.
- Tightened phrasing in `makeMultipleChangesOutput`, `verifyPropertyChange`
  and most launcher messages (no more "Successfully done the changes.",
  "It was ignored and not changed.", verbose object-not-found messages,
  etc.).
- Updated affected inline snapshots and added focused tests for the new
  variable truncation and property-listing format.
…ray tests

The orchestrator agent does not see the function call's arguments, so
"Added variable X" alone does not tell it which X (global? scene? on
which object?). Encode the scope inline:

  Added global variable "score" (Number) = 42
  Added scene "TestScene" variable "lives" (Number) = 3
  Added scene "TestScene" object "Player" variable "health" (Number) = 100
  Added global object "GlobalEnemy" variable "speed" (Number) = 50

Also add tests for nested structure and array paths (and an array
inside a structure / structure inside an array), plus a JSON-object
value that produces a Structure variable.
…tance message

The orchestrator agent cannot see the function call's arguments, so the
existing "Created N new instance(s) of object X using <brush> brush at
X,Y on layer Z." line had to grow when explicit attributes were set.

Append the explicitly-specified attributes between parentheses (only when
provided), e.g.:
  Created 2 new instances of object "Player" using point brush at 50, 60
  on layer "base" (size 64x64, rotation 45°, opacity 128, z-order 5).

For the 3D variant: size and rotation (3-component) are surfaced.
- create_or_replace_object: encode the final scope (scene "X" vs global)
  in the create-from-scratch / create-from-asset-store / replace
  messages so the orchestrator can tell where the object actually
  landed without seeing the call args.
- change_object_property (rename branch): add a regression test
  proving that when the requested name "Foo" collides, the message
  correctly reports the FINAL name "Foo2" (not "Foo"). The launch
  path already used `newName`; this test locks the behavior in.
- change_scene_properties_layers_effects_groups: echo the new final
  values on every per-property line ("Set scene background color to
  #ff0080.", "Set game resolution width to 1920.", ...) so the
  orchestrator can verify what was applied.

Existing snapshots updated where the scope text changed (replace
path).
@4ian 4ian force-pushed the feat/sub-agents branch from 5ac6b6a to b3210ef Compare May 7, 2026 14:00
@4ian 4ian force-pushed the feat/sub-agents branch from b3210ef to a98108f Compare May 7, 2026 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants