@cxtms/cx-schema 1.9.247 → 1.9.248

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cxtms/cx-schema",
3
- "version": "1.9.247",
3
+ "version": "1.9.248",
4
4
  "description": "Schema validation package for CXTMS YAML modules",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -200,6 +200,15 @@
200
200
  "type": "string",
201
201
  "description": "Default search term seeded once when the grid first loads this view. Supports template expressions; URL search parameters and user input take precedence."
202
202
  },
203
+ "collection": {
204
+ "type": "object",
205
+ "properties": {
206
+ "itemName": { "type": "string" },
207
+ "children": { "$ref": "#/definitions/componentChildren" },
208
+ "dragSource": { "type": "object", "required": ["type"], "properties": { "type": { "type": "string" }, "data": {}, "canDrag": {} }, "additionalProperties": false }
209
+ },
210
+ "additionalProperties": true
211
+ },
203
212
  "childViews": {
204
213
  "type": "array",
205
214
  "description": "Nested child views",
@@ -4,6 +4,9 @@
4
4
  "description": "Aggregator schema for all workflow task types. Uses anyOf to allow matching any known task type or falling back to generic task structure.",
5
5
  "type": "object",
6
6
  "anyOf": [
7
+ {
8
+ "$ref": "browser-run.json"
9
+ },
7
10
  {
8
11
  "$ref": "accounting-transaction.json"
9
12
  },
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Browser/Run Workflow Task",
4
+ "type": "object",
5
+ "required": ["task", "inputs"],
6
+ "properties": {
7
+ "task": { "type": "string", "pattern": "^Browser/Run(?:@1)?$" }, "name": { "type": "string" }, "description": { "type": "string" }, "continueOnError": { "type": "boolean" },
8
+ "inputs": { "type": "object", "required": ["actions"], "properties": {
9
+ "allowedDomains": { "type": "array", "items": { "type": "string" } }, "provider": { "type": "string" }, "session": { "enum": ["reuse", "new"] }, "timeout": { "type": "number", "exclusiveMinimum": 0 },
10
+ "actions": { "type": "array", "minItems": 1, "items": { "type": "object", "required": ["do"], "properties": {
11
+ "do": { "enum": ["goto", "click", "check", "uncheck", "hover", "waitFor", "fill", "press", "selectOption", "waitForNavigation", "extractText", "extractAttribute", "extractTable", "extractUrl", "screenshot", "uploadFile", "download", "llm/act"] },
12
+ "target": { "type": "string" }, "value": {}, "url": { "type": "string" }, "query": { "type": "object" }, "file": { "type": "object" }, "attribute": { "type": "string" }, "as": { "type": "string" }, "all": { "type": "boolean" }, "if": { "type": "string" }, "sensitive": { "type": "boolean" }, "timeout": { "type": "number", "exclusiveMinimum": 0 }, "instructions": { "type": "string" }, "model": { "type": "string" }, "maxTurns": { "type": "integer", "minimum": 1, "maximum": 20 }
13
+ }, "additionalProperties": false } }
14
+ }, "additionalProperties": false },
15
+ "outputs": { "type": "array", "items": { "type": "object", "additionalProperties": true } }
16
+ }, "additionalProperties": true
17
+ }
@@ -49,6 +49,19 @@ props:
49
49
 
50
50
  Use `options.items` for already-loaded arrays; use `options.query` for server-side search/sort/pagination.
51
51
 
52
+ ## dataGrid collection drag sources
53
+
54
+ Collection views can publish cards to planner drop targets. Configure `collection.dragSource.type`, with optional per-row `data` and `canDrag` templates. Omitted `data` sends the whole row; prefer a small JSON-safe payload. Native drag is desktop-only.
55
+
56
+ ```yaml
57
+ collection:
58
+ itemName: item
59
+ dragSource:
60
+ type: orderMove
61
+ canDrag: "{{ eval !item.assignedDriverContactId }}"
62
+ data: { orderMoveId: "{{ item.orderMoveId }}" }
63
+ ```
64
+
52
65
  ---
53
66
 
54
67
  ## dataGrid conditional filter columns
@@ -623,3 +623,6 @@ props:
623
623
  variables: { token: "{{ token }}" }
624
624
  - notification: { message: { en-US: "Connected!" }, type: success }
625
625
  ```
626
+ # Planner drop targets
627
+
628
+ Planner `props.drop` accepts DataGrid collection drag sources. Configure `accept`, `onlyEmptyCells` (default true), `canDrop`, and `autoScroll` (default true), then handle `events.onItemDrop`. The action receives `dragItem`, `dragType`, `row`, `column`, `rowIndex`, and `columnIndex`. Keep `onCellClick` as the touch and keyboard alternative.
@@ -327,6 +327,7 @@ Implicit variable: `iteration` (zero-based).
327
327
  | File Transfer | Connect, Disconnect, ListFiles, Download, Upload, Move, Delete | `!cat skills/cxtms-workflow-builder/ref-filetransfer.md` |
328
328
  | Accounting | AccountingTransaction, Payment, Number/Generate, SequenceNumber | `!cat skills/cxtms-workflow-builder/ref-accounting.md` |
329
329
  | Other | User, Auth, Caching, X12/Parse, EDIFACT, Flow/Transition, Notes, AppModule, ActionEvent | `!cat skills/cxtms-workflow-builder/ref-other.md` |
330
+ | Browser Automation | Browser/Run | `!cat skills/cxtms-workflow-builder/ref-browser.md` |
330
331
 
331
332
  ## Entity Field Reference (cxtms-developer)
332
333
 
@@ -0,0 +1,17 @@
1
+ # Browser Automation
2
+
3
+ ## Browser/Run@1
4
+
5
+ Automates a web portal through a configured remote Chromium provider. Always restrict navigation with `allowedDomains`; use `$` inputs or `fromConfig` variables for credentials and mark credential fills `sensitive: true`.
6
+
7
+ ```yaml
8
+ - task: Browser/Run@1
9
+ name: Portal
10
+ inputs:
11
+ allowedDomains: [portal.example.com]
12
+ actions:
13
+ - { do: goto, url: "https://portal.example.com" }
14
+ - { do: extractText, target: "css=.status", as: status }
15
+ ```
16
+
17
+ Inputs: required `actions`; optional `allowedDomains`, `provider`, `session` (`reuse` or `new`), and `timeout`. Actions support deterministic navigation/input/extraction, screenshots, upload/download, plus `llm/act`. Locator targets require a `css=`, `xpath=`, `text=`, `label=`, `placeholder=`, or `role=` prefix. Captures use `as`; the task also returns final `url` and an action audit list.