Introduction
This document lists and describes all available HTTP actions.
Document Actions
ComposerCloseAllDocumentsAction
- Purpose: Close every open document in Composer.
- Effect: Forces all open documents to close, without prompting for unsaved changes.
- Return value: null .
Request XML format:
<action type="ComposerCloseAllDocumentsAction" />
ComposerOpenAndRunDocumentAction / ComposerOpenAndRunDocument
- Purpose: Open a compound document and start running it.
- Parameters:
- Path – required; path of the compound to open.
- CloseAll – optional; if true , closes all open documents before opening the new one.
- Effect: Opens the specified document, checks that it is runnable, and starts it.
- Return value:
- Document short info object ( title , filePath , type ) for the opened/running document.
Request XML format:
<action type="ComposerOpenAndRunDocumentAction"
Path="path_of_xcomp_file"
CloseAll="True/False" />
Response XML format:
<response Code="0" Message="OK">
<ReturnValue title="running_doc_title" filePath="running_doc_path" type="Compound" />
</response>
ComposerBeginCompositeAction
- Purpose: Start a composite undo scope for one document.
- Parameters:
- Document - optional; see Document selector.
- DisplayText - text shown as the Undo History item name for this composite.
- Effect: Opens a composite command scope for the selected document. Subsequent graph-modifying actions become part of the same undo item until the composite is finished.
- Usage note:
- Before the first graph-modifying action for each user prompt, issue this action once per affected document.
- Set DisplayText to a concise 5-7 word summary of the intended changes.
- Return value: null .
Request XML format:
<action type="ComposerBeginCompositeAction"
Document="doc_selector"
DisplayText="short_undo_summary" />
ComposerFinishCompositeAction
- Purpose: Finish an open composite undo scope for one document.
- Parameters:
- Document - optional; see Document selector.
- Effect: Closes the selected document's currently open composite scope.
- Return value: null .
- Usage note: Call on the same document after the last graph-modifying action in a batch that started with ComposerBeginCompositeAction for that prompt.
Request XML format:
<action type="ComposerFinishCompositeAction"
Document="doc_selector" />
ComposerFinishAllCompositesAction
- Purpose: Finish all currently open composite undo scopes.
- Effect: Closes every open composite scope across documents.
- Return value: null .
- Usage note: Use when several documents still have open composite scopes after a multi-document edit.
Request XML format:
<action type="ComposerFinishAllCompositesAction" />
Module Actions
ComposerFindModulesAction
- Purpose: Find modules under a given compound whose names match a pattern.
- Parameters:
- Document – optional; see Document selector.
- Module – path of the root compound to search under.
- NamePattern – wildcard pattern for module names.
- Recursive – true to search recursively in sub-compounds, false for direct children only.
- Effect: Searches the compound hierarchy for matching modules.
- Return value:
- A list of strings, each the resolved relative path of a matching module.
Request XML format:
<action type="ComposerFindModulesAction"
Document="doc_selector"
Module="root_module_path"
NamePattern="wildcard_pattern"
Recursive="True/False" />
Response XML format:
<response Code="0" Message="OK">
<ReturnValue>
<item value="module_1_path" />
<item value="module_2_path" />
<!-- ... -->
</ReturnValue>
</response>
Pin Actions
ComposerEnumPinsAction
- Purpose: List input pins of a module that are externally controllable.
- Parameters:
- Document – optional; see Document selector.
- Module – path of the module.
- Effect: Filters input pins to those that are not connected, not non-editable, exposed to root, and not reference pins.
- Return value:
- A list of items with:
- name – pin name.
- type – pin value type name.
- A list of items with:
Request XML format:
<action type="ComposerEnumPinsAction"
Document="doc_selector"
Module="module_path" />
Response XML format:
<response Code="0" Message="OK">
<ReturnValue>
<item name="pin_1_name" type="pin_1_type" />
<item name="pin_2_name" type="pin_2_type" />
<!-- ... -->
</ReturnValue>
</response>
ComposerSetPinValueAction
- Purpose: Set an input pin’s value from a string.
- Parameters:
- Document – optional; see Document selector.
- Module – path of the module.
- Pin – required; pin name (or friendly name).
- Value – new value as string.
- Undoable – optional; default is false . When true , the change is executed as an undoable command and appears in Undo History.
- SuppressDocChange – optional; if true , applies the change without recording it as a document change.
- Usage note: Set Undoable="true" when the call is part of a graph edit that should appear in Undo History (see ActionElements.md ).
- Enumeration values: When setting an enum input pin, Value must be the element’s internal name ( name from ComposerGetEnumInfoAction ), not its displayName . Example: for a pin typed with BlendingMode , use bmOverlay , not Overlay .
- Effect: Converts the string to the pin’s type, writes it to the pin, and raises the controller-executed notification.
- Return value: null (errors are signaled for invalid pins or values).
Request XML format:
<action type="ComposerSetPinValueAction"
Document="doc_selector"
Module="module_path"
Pin="pin_name"
Value="pin_value"
Undoable="True"
SuppressDocChange="True/False" />
ComposerGetPinValueAction
- Purpose: Query the current stored value of an input pin.
- Parameters:
- Document – optional; see Document selector.
- Module – path of the module.
- Pin – required; pin name (or friendly name).
- Effect: Reads the pin’s stored value.
- Return value:
- An object containing:
- type – pin value type name.
- value – string representation of the current value.
- An object containing:
Request XML format:
<action type="ComposerGetPinValueAction"
Document="doc_selector"
Module="module_path"
Pin="pin_name" />
Response XML format:
<response Code="0" Message="OK">
<ReturnValue type="value_Type" value="pin_value" />
</response>
ComposerGetPinLiveValueAction
- Purpose: Query the live runtime value of a pin, if supported.
- Parameters:
- Document – optional; see Document selector.
- Module – path of the module.
- Pin – required; pin name (or friendly name).
- Output – true to query an output pin’s live value, false for input pin.
- Effect: Extracts the current live value from the module. Fails if the pin type does not support live values.
- Return value:
- String representation of the live value.
Request XML format:
<action type="ComposerGetPinLiveValueAction"
Document="doc_selector"
Module="module_path"
Pin="pin_name"
Output="True/False" />
Response XML format:
<response Code="0" Message="OK">
<ReturnValue><!-- live value as string --></ReturnValue>
</response>
Control Board Actions
ComposerEnumCtrBoardsAction
- Purpose: Enumerate control boards under a compound.
- Parameters:
- Document – optional; see Document selector.
- Module – path of the root compound.
- Recursive – true to include nested control boards, false for direct ones only.
- Effect: Finds control boards attached under the compound.
- Return value:
- A list of items with:
- name – control board name.
- path – control board owner module path.
- A list of items with:
Request XML format:
<action type="ComposerEnumCtrBoardsAction"
Document="doc_selector"
Module="root_module_path"
Recursive="True/False" />
Response XML format:
<response Code="0" Message="OK">
<ReturnValue>
<item name="control_board_1_name" path="control_board_1_path" />
<item name="control_board_2_name" path="control_board_2_path" />
<!-- ... -->
</ReturnValue>
</response>
ComposerEnumCtrBoardPanelsAction
- Purpose: Enumerate control board panels under a control board.
- Parameters:
- Document – optional; see Document selector.
- Module – control board path.
- Effect: Resolves the control board and lists its panel modules.
- Return value:
- A list of items with:
- name – panel name.
- path – full panel path.
- A list of items with:
Request XML format:
<action type="ComposerEnumCtrBoardPanelsAction"
Document="doc_selector"
Module="control_board_path" />
Response XML format:
<response Code="0" Message="OK">
<ReturnValue>
<item name="panel_1_name" path="panel_1_path" />
<item name="panel_2_name" path="panel_2_path" />
<!-- ... -->
</ReturnValue>
</response>
ComposerCtrBoardPressButtonAction
- Purpose: Simulate pressing a button on a control board panel.
- Parameters:
- Document – optional; see Document selector.
- Module – panel path or module path.
- Button – required; button name.
- Effect: Performs a momentary press on the specified button and raises the controller-executed notification.
- Return value: null .
Request XML format:
<action type="ComposerCtrBoardPressButtonAction"
Document="doc_selector"
Module="panel_path"
Button="button_name" />
ComposerCtrBoardSetButtonAction
- Purpose: Explicitly set a logical button’s state.
- Parameters:
- Document – optional; see Document selector.
- Module – panel path or module path.
- Button – required; button name.
- State – true or false .
- Effect: Sets the button’s on/off state and raises the controller-executed notification.
- Return value: null .
Request XML format:
<action type="ComposerCtrBoardSetButtonAction"
Document="doc_selector"
Module="panel_path"
Button="button_name"
State="True/False" />
ComposerCtrBoardGetButtonAction
- Purpose: Query a button’s current state.
- Parameters:
- Document – optional; see Document selector.
- Module – panel path or module path.
- Button – required; button name.
- Effect: Reads the current state of the specified button.
- Return value:
- Boolean indicating the current on/off state.
Request XML format:
<action type="ComposerCtrBoardGetButtonAction"
Document="doc_selector"
Module="panel_path"
Button="button_name" />
Response XML format:
<response Code="0" Message="OK">
<ReturnValue><!-- true or false --></ReturnValue>
</response>
ComposerEnumCtrBoardButtonsAction
- Purpose: Enumerate buttons on a control board panel.
- Parameters:
- Document – optional; see Document selector.
- Module – panel path or module path.
- Effect: Collects all visible buttons on the panel and groups them by their underlying pin.
- Return value:
- A list of items with:
- name – button label.
- type – button type ( Enum , Flags , Switch , Trigger , etc.).
- group – integer group identifier for buttons sharing the same backing pin.
- index – numeric index used by the group (e.g., enum value or flag bit index).
- gap – number of gap spaces before the button in the UI layout.
- A list of items with:
Request XML format:
<action type="ComposerEnumCtrBoardButtonsAction"
Document="doc_selector"
Module="panel_path" />
Response XML format:
<response Code="0" Message="OK">
<ReturnValue>
<item name="button_1_name" type="button_1_type" group="1" index="0" gap="0" />
<item name="button_2_name" type="button_2_type" group="1" index="1" gap="0" />
<!-- ... -->
</ReturnValue>
</response>
ComposerEnumCtrBoardPropertiesAction
- Purpose: Enumerate editable properties of a control board panel.
- Parameters:
- Document – optional; see Document selector.
- Module – panel path or module path.
- Effect: Collects input pins on the panel that qualify as external properties (not connected, editable, exposed, and not reference pins), and recursively includes all additional pins coming from subcompounds that are currently associated according to the current values of the panel’s $SelSub and $SelSubSeq pins (see Special pin descriptors).
- Return value:
- A list of items with:
- name – property display name (user-facing label).
- type – property value type name.
- descriptorName – full descriptor string of the pin. For a normal pin this matches name . For special exposer behaviours it is the complete descriptor (for example $Enum,... , $SelSub,... ), which encodes semantics as described under Special pin descriptors.
- A list of items with:
Special pin descriptors on control board properties
Exposer pins on control board panels may use descriptor prefixes parsed by SpecialPinInfo in the model:
| Prefix | Meaning (short) |
|---|---|
| $Enum | Integer pin whose value selects one of a fixed list of named choices. The descriptor lists the display name and the comma-separated item names after it. |
| $SelSub | Integer pin that lets the user pick one of several named child subcompounds (via a list of choices). Extra panel properties can come from input pins on that selected subcompound. |
| $SelSubSeq | Integer pin that controls a sequence of child subcompounds: it combines a name prefix (children named "Prefix 1" , "Prefix 2" , …) with amount options (count or per-option submodule selection). Associated properties come from the subcompounds implied by the current value. |
| $Redir | Redirects editing to another input pin (path in the descriptor). The visible property corresponds to the target pin’s value and type. |
These are reflected in descriptorName on each enumerated item. Normal pins have no such prefix and descriptorName equals their display name.
Request XML format:
<action type="ComposerEnumCtrBoardPropertiesAction"
Document="doc_selector"
Module="panel_path" />
Response XML format:
<response Code="0" Message="OK">
<ReturnValue>
<item name="property_1_name" type="property_1_type" descriptorName="property_1_descriptor_or_same_as_name" />
<item name="property_2_name" type="property_2_type" descriptorName="property_2_descriptor_or_same_as_name" />
<!-- ... -->
</ReturnValue>
</response>
ComposerSetCtrBoardPropertyValueAction
- Purpose: Set a property value on a control board panel (same idea as ComposerSetPinValueAction , but scoped to panel properties and naming).
- Parameters:
- Document – optional; see Document selector.
- Module – panel path or module path.
- Property – required; property display name to set (matched like the panel UI; partial case-insensitive match is resolved in favour of the shortest matching display name).
- Value – new value as string.
- Undoable – optional; default false . When true , the change runs through the undoable command and appears in Undo History.
- Usage note: Set Undoable="true" when the call is part of a graph edit that should appear in Undo History (see ActionElements.md ).
- Effect: Resolves the property among the same recursive pin set as ComposerEnumCtrBoardPropertiesAction , converts the string to the pin’s type, and writes it. Properties exposed from subcompounds selected by the current $SelSub / $SelSubSeq values can be addressed by their property names without separate module paths. If the resolved pin is a $Redir exposer, the target pin is updated (recursively if needed).
- Return value: null .
Request XML format:
<action type="ComposerSetCtrBoardPropertyValueAction"
Document="doc_selector"
Module="panel_path"
Property="property_display_name"
Value="property_value"
Undoable="True" />
ComposerGetCtrBoardPropertyValueAction
- Purpose: Read the current stored property value from a control board panel (same idea as ComposerGetPinValueAction , but scoped to panel properties).
- Parameters:
- Document – optional; see Document selector.
- Module – panel path or module path.
- Property – required; property display name (same matching rules as ComposerSetCtrBoardPropertyValueAction ).
- Effect: Resolves the property including $SelSub / $SelSubSeq associated pins and $Redir (reads the target pin when redirected).
- Return value:
- Object with:
- type – value type name.
- value – string form of the stored value.
- Object with:
Request XML format:
<action type="ComposerGetCtrBoardPropertyValueAction"
Document="doc_selector"
Module="panel_path"
Property="property_display_name" />
Response XML format:
<response Code="0" Message="OK">
<ReturnValue type="value_type_name" value="property_value_as_string" />
</response>
Sequence Actions
ComposerSetSequencePartPropertyAction
- Purpose: Set a property on a specific sequence part.
- Parameters:
- Document – optional; see Document selector.
- Module – path of the module that contains the sequence track.
- Part – 1-based index of the part within the track.
- Property – required; name of the property to set.
- Value – value as string.
- Effect: Locates the part and sets the specified property from its string representation.
- Return value: null (errors are returned for invalid part indices or properties).
Request XML format:
<action type="ComposerSetSequencePartPropertyAction"
Document="doc_selector"
Module="module_path"
Part="1"
Property="property_name"
Value="property_value" />
ComposerGetSequencePartPropertyAction
- Purpose: Get a property value from a specific sequence part.
- Parameters:
- Document – optional; see Document selector.
- Module – path of the module that contains the sequence track.
- Part – 1-based index of the part within the track.
- Property – required; name of the property to read.
- Effect: Locates the part and reads the specified property.
- Return value:
- String representation of the property value.
Request XML format:
<action type="ComposerGetSequencePartPropertyAction"
Document="doc_selector"
Module="module_path"
Part="1"
Property="property_name" />
Response XML format:
<response Code="0" Message="OK">
<ReturnValue><!-- property_value --></ReturnValue>
</response>
System Actions
ComposerNopAction
- Purpose: No-operation action; can be used to test connectivity or as a placeholder.
- Effect: Does nothing.
- Return value: null .
Request XML format:
<action type="ComposerNopAction" />
ComposerActiveSensingAction
- Purpose: Check that the engine is still responsive.
- Effect: Sends an “active sensing” signal to the engine; if the engine has stopped, an error is returned.
- Return value: null on success.
Request XML format:
<action type="ComposerActiveSensingAction" />
ComposerRestartApplicationAction
- Purpose: Restart the Composer application and optionally open a compound after restart.
- Parameters:
- ReopenCurrentlyRunningDocument – if true , restart and reopen the currently running compound document (its saved file path is used).
- OpenDocument – path of the document to open after restart when ReopenCurrentlyRunningDocument is false (required in that case); ignored when ReopenCurrentlyRunningDocument is true .
- Effect: Schedules a full application restart, then opens the resolved document on startup. Execution is deferred so the HTTP response can complete before the process exits.
- Return value: null .
- Errors (non-zero response Code ): no running document when ReopenCurrentlyRunningDocument is true ; running document has no saved path yet; or the resolved file path does not exist on disk.
Request XML format:
<action type="ComposerRestartApplicationAction"
ReopenCurrentlyRunningDocument="True/False"
OpenDocument="path_of_xcomp_file" />