ultravisor 1.0.3 → 1.0.8
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/.claude/launch.json +11 -0
- package/.claude/ultravisor-dev-config.json +3 -0
- package/card-audit.json +1545 -0
- package/docs/_sidebar.md +17 -0
- package/docs/css/docuserve.css +73 -0
- package/docs/features/beacon-authentication.md +209 -0
- package/docs/features/beacon-providers.md +1299 -0
- package/docs/features/beacons.md +530 -0
- package/docs/features/capabilities.md +193 -0
- package/docs/features/llm-model-setup.md +505 -0
- package/docs/features/llm.md +262 -0
- package/docs/features/tasks-content-system.md +110 -0
- package/docs/features/tasks-data-transform.md +233 -0
- package/docs/features/tasks-extension.md +36 -0
- package/docs/features/tasks-file-system.md +203 -0
- package/docs/features/tasks-flow-control.md +125 -0
- package/docs/features/tasks-http-client.md +119 -0
- package/docs/features/tasks-llm.md +118 -0
- package/docs/features/tasks-meadow-api.md +163 -0
- package/docs/features/tasks-user-interaction.md +49 -0
- package/docs/features/tasks.md +14 -0
- package/docs/index.html +1 -1
- package/docs/retold-catalog.json +1 -1
- package/docs/retold-keyword-index.json +17374 -5
- package/operation-library/api-data-pipeline.json +143 -0
- package/operation-library/beacon-remote-command.json +72 -0
- package/operation-library/conditional-file-backup.json +143 -0
- package/operation-library/config-processor.json +136 -0
- package/operation-library/csv-data-analysis.json +228 -0
- package/operation-library/csv-to-json.json +160 -0
- package/operation-library/directory-inventory.json +128 -0
- package/operation-library/expression-calculator.json +114 -0
- package/operation-library/file-search-replace.json +175 -0
- package/operation-library/git-status-report.json +368 -0
- package/operation-library/health-check-ping.json +329 -0
- package/operation-library/json-config-merge.json +313 -0
- package/operation-library/llm-embedding-tool-use.json +314 -0
- package/operation-library/llm-multi-turn-analysis.json +322 -0
- package/operation-library/llm-summarize.json +264 -0
- package/operation-library/log-line-counter.json +185 -0
- package/operation-library/meadow-crud-lifecycle.json +264 -0
- package/operation-library/npm-project-validator.json +193 -0
- package/operation-library/rest-api-orchestrator.json +218 -0
- package/operation-library/shell-system-info.json +137 -0
- package/operation-library/simple-echo.json +95 -0
- package/operation-library/template-processor.json +299 -0
- package/operation-library/text-sanitizer.json +176 -0
- package/package.json +12 -8
- package/source/Ultravisor.cjs +30 -3
- package/source/beacon/Ultravisor-Beacon-CLI.cjs +143 -0
- package/source/beacon/Ultravisor-Beacon-CapabilityProvider.cjs +129 -0
- package/source/beacon/Ultravisor-Beacon-Client.cjs +568 -0
- package/source/beacon/Ultravisor-Beacon-Executor.cjs +500 -0
- package/source/beacon/Ultravisor-Beacon-ProviderRegistry.cjs +330 -0
- package/source/beacon/providers/Ultravisor-Beacon-Provider-FileSystem.cjs +331 -0
- package/source/beacon/providers/Ultravisor-Beacon-Provider-LLM.cjs +966 -0
- package/source/beacon/providers/Ultravisor-Beacon-Provider-Shell.cjs +95 -0
- package/source/cli/Ultravisor-CLIProgram.cjs +44 -22
- package/source/cli/commands/Ultravisor-Command-SingleOperation.cjs +29 -18
- package/source/cli/commands/Ultravisor-Command-SingleTask.cjs +62 -19
- package/source/cli/commands/Ultravisor-Command-UpdateTask.cjs +27 -15
- package/source/config/Ultravisor-Default-Command-Configuration.cjs +12 -3
- package/source/services/Ultravisor-Beacon-Coordinator.cjs +966 -0
- package/source/services/Ultravisor-ExecutionEngine.cjs +1093 -0
- package/source/services/Ultravisor-ExecutionManifest.cjs +629 -0
- package/source/services/Ultravisor-Hypervisor-State.cjs +270 -97
- package/source/services/Ultravisor-Hypervisor.cjs +185 -75
- package/source/services/Ultravisor-Schedule-Persistence-Base.cjs +45 -0
- package/source/services/Ultravisor-StateManager.cjs +253 -0
- package/source/services/Ultravisor-TaskTypeRegistry.cjs +213 -0
- package/source/services/persistence/Ultravisor-Schedule-Persistence-JSONFile.cjs +140 -0
- package/source/services/tasks/Ultravisor-BuiltIn-TaskConfigs.cjs +19 -0
- package/source/services/tasks/Ultravisor-TaskHelper-BeaconDispatch.cjs +107 -0
- package/source/services/tasks/Ultravisor-TaskType-Base.cjs +125 -0
- package/source/services/tasks/content-system/Ultravisor-TaskConfigs-ContentSystem.cjs +90 -0
- package/source/services/tasks/content-system/definitions/content-create-folder.json +24 -0
- package/source/services/tasks/content-system/definitions/content-list-files.json +27 -0
- package/source/services/tasks/content-system/definitions/content-read-file.json +26 -0
- package/source/services/tasks/content-system/definitions/content-save-file.json +26 -0
- package/source/services/tasks/data-transform/Ultravisor-TaskConfigs-DataTransform.cjs +577 -0
- package/source/services/tasks/data-transform/Ultravisor-TaskType-ReplaceString.cjs +80 -0
- package/source/services/tasks/data-transform/Ultravisor-TaskType-SetValues.cjs +74 -0
- package/source/services/tasks/data-transform/Ultravisor-TaskType-StringAppender.cjs +90 -0
- package/source/services/tasks/data-transform/definitions/comprehension-intersect.json +24 -0
- package/source/services/tasks/data-transform/definitions/csv-transform.json +24 -0
- package/source/services/tasks/data-transform/definitions/expression-solver.json +20 -0
- package/source/services/tasks/data-transform/definitions/histogram.json +23 -0
- package/source/services/tasks/data-transform/definitions/parse-csv.json +27 -0
- package/source/services/tasks/data-transform/definitions/replace-string.json +27 -0
- package/source/services/tasks/data-transform/definitions/set-values.json +17 -0
- package/source/services/tasks/data-transform/definitions/string-appender.json +22 -0
- package/source/services/tasks/data-transform/definitions/template-string.json +20 -0
- package/source/services/tasks/extension/Ultravisor-TaskConfigs-Extension.cjs +87 -0
- package/source/services/tasks/extension/definitions/beacon-dispatch.json +32 -0
- package/source/services/tasks/file-system/Ultravisor-TaskConfigs-FileSystem.cjs +509 -0
- package/source/services/tasks/file-system/Ultravisor-TaskType-ReadFile.cjs +96 -0
- package/source/services/tasks/file-system/Ultravisor-TaskType-ReadFileBuffered.cjs +123 -0
- package/source/services/tasks/file-system/Ultravisor-TaskType-WriteFile.cjs +106 -0
- package/source/services/tasks/file-system/definitions/copy-file.json +27 -0
- package/source/services/tasks/file-system/definitions/list-files.json +27 -0
- package/source/services/tasks/file-system/definitions/read-file-buffered.json +31 -0
- package/source/services/tasks/file-system/definitions/read-file.json +26 -0
- package/source/services/tasks/file-system/definitions/read-json.json +23 -0
- package/source/services/tasks/file-system/definitions/write-file.json +29 -0
- package/source/services/tasks/file-system/definitions/write-json.json +30 -0
- package/source/services/tasks/flow-control/Ultravisor-TaskConfigs-FlowControl.cjs +353 -0
- package/source/services/tasks/flow-control/Ultravisor-TaskType-IfConditional.cjs +125 -0
- package/source/services/tasks/flow-control/Ultravisor-TaskType-LaunchOperation.cjs +186 -0
- package/source/services/tasks/flow-control/Ultravisor-TaskType-SplitExecute.cjs +164 -0
- package/source/services/tasks/flow-control/definitions/if-conditional.json +25 -0
- package/source/services/tasks/flow-control/definitions/launch-operation.json +27 -0
- package/source/services/tasks/flow-control/definitions/split-execute.json +32 -0
- package/source/services/tasks/http-client/Ultravisor-TaskConfigs-HttpClient.cjs +281 -0
- package/source/services/tasks/http-client/definitions/get-json.json +26 -0
- package/source/services/tasks/http-client/definitions/get-text.json +26 -0
- package/source/services/tasks/http-client/definitions/rest-request.json +32 -0
- package/source/services/tasks/http-client/definitions/send-json.json +28 -0
- package/source/services/tasks/llm/Ultravisor-TaskConfigs-LLM.cjs +605 -0
- package/source/services/tasks/llm/definitions/llm-chat-completion.json +46 -0
- package/source/services/tasks/llm/definitions/llm-embedding.json +31 -0
- package/source/services/tasks/llm/definitions/llm-tool-use.json +42 -0
- package/source/services/tasks/meadow-api/Ultravisor-TaskConfigs-MeadowApi.cjs +341 -0
- package/source/services/tasks/meadow-api/definitions/meadow-count.json +26 -0
- package/source/services/tasks/meadow-api/definitions/meadow-create.json +26 -0
- package/source/services/tasks/meadow-api/definitions/meadow-delete.json +23 -0
- package/source/services/tasks/meadow-api/definitions/meadow-read.json +26 -0
- package/source/services/tasks/meadow-api/definitions/meadow-reads.json +29 -0
- package/source/services/tasks/meadow-api/definitions/meadow-update.json +26 -0
- package/source/services/tasks/shell/Ultravisor-TaskConfigs-Shell.cjs +63 -0
- package/source/services/tasks/shell/definitions/command.json +29 -0
- package/source/services/tasks/user-interaction/Ultravisor-TaskConfigs-UserInteraction.cjs +64 -0
- package/source/services/tasks/user-interaction/Ultravisor-TaskType-ErrorMessage.cjs +55 -0
- package/source/services/tasks/user-interaction/Ultravisor-TaskType-ValueInput.cjs +47 -0
- package/source/services/tasks/user-interaction/definitions/error-message.json +18 -0
- package/source/services/tasks/user-interaction/definitions/value-input.json +23 -0
- package/source/web_server/Ultravisor-API-Server.cjs +849 -124
- package/test/Ultravisor_browser_tests.js +2226 -0
- package/test/Ultravisor_operation_library_tests.js +894 -0
- package/test/Ultravisor_tests.js +4946 -5044
- package/test/workflows/test-content-concatenate-all.json +339 -0
- package/test/workflows/test-content-full-pipeline.json +159 -0
- package/test/workflows/test-content-list-files.json +76 -0
- package/test/workflows/test-content-save-and-read.json +106 -0
- package/webinterface/css/ultravisor-themes.css +668 -0
- package/webinterface/css/ultravisor.css +37 -14
- package/webinterface/docs/card-help/beacon-dispatch.md +30 -0
- package/webinterface/docs/card-help/command.md +27 -0
- package/webinterface/docs/card-help/comprehension-intersect.md +24 -0
- package/webinterface/docs/card-help/content-create-folder.md +22 -0
- package/webinterface/docs/card-help/content-list-files.md +25 -0
- package/webinterface/docs/card-help/content-read-file.md +24 -0
- package/webinterface/docs/card-help/content-save-file.md +24 -0
- package/webinterface/docs/card-help/copy-file.md +25 -0
- package/webinterface/docs/card-help/csv-transform.md +24 -0
- package/webinterface/docs/card-help/end.md +11 -0
- package/webinterface/docs/card-help/error-message.md +16 -0
- package/webinterface/docs/card-help/expression-solver.md +21 -0
- package/webinterface/docs/card-help/get-json.md +24 -0
- package/webinterface/docs/card-help/get-text.md +24 -0
- package/webinterface/docs/card-help/histogram.md +23 -0
- package/webinterface/docs/card-help/if-conditional.md +23 -0
- package/webinterface/docs/card-help/launch-operation.md +25 -0
- package/webinterface/docs/card-help/list-files.md +25 -0
- package/webinterface/docs/card-help/llm-chat-completion.md +43 -0
- package/webinterface/docs/card-help/llm-embedding.md +24 -0
- package/webinterface/docs/card-help/llm-tool-use.md +39 -0
- package/webinterface/docs/card-help/meadow-count.md +24 -0
- package/webinterface/docs/card-help/meadow-create.md +24 -0
- package/webinterface/docs/card-help/meadow-delete.md +19 -0
- package/webinterface/docs/card-help/meadow-read.md +24 -0
- package/webinterface/docs/card-help/meadow-reads.md +27 -0
- package/webinterface/docs/card-help/meadow-update.md +24 -0
- package/webinterface/docs/card-help/parse-csv.md +27 -0
- package/webinterface/docs/card-help/read-file-buffered.md +29 -0
- package/webinterface/docs/card-help/read-file.md +24 -0
- package/webinterface/docs/card-help/read-json.md +21 -0
- package/webinterface/docs/card-help/replace-string.md +25 -0
- package/webinterface/docs/card-help/rest-request.md +30 -0
- package/webinterface/docs/card-help/send-json.md +26 -0
- package/webinterface/docs/card-help/set-values.md +16 -0
- package/webinterface/docs/card-help/split-execute.md +35 -0
- package/webinterface/docs/card-help/start.md +11 -0
- package/webinterface/docs/card-help/string-appender.md +22 -0
- package/webinterface/docs/card-help/template-string.md +21 -0
- package/webinterface/docs/card-help/value-input.md +24 -0
- package/webinterface/docs/card-help/write-file.md +27 -0
- package/webinterface/docs/card-help/write-json.md +28 -0
- package/webinterface/html/index.html +5 -0
- package/webinterface/package.json +13 -4
- package/webinterface/source/Pict-Application-Ultravisor.js +564 -70
- package/webinterface/source/Ultravisor-TimingUtils.js +99 -0
- package/webinterface/source/card-help-content.js +46 -0
- package/webinterface/source/cards/Ultravisor-BuiltIn-CardConfigs.js +174 -0
- package/webinterface/source/cards/Ultravisor-CardConfigGenerator.js +431 -0
- package/webinterface/source/data/ExampleFlow-CSVPipeline.js +231 -0
- package/webinterface/source/data/ExampleFlow-FileProcessor.js +315 -0
- package/webinterface/source/data/ExampleFlow-MeadowPipeline.js +328 -0
- package/webinterface/source/panels/Ultravisor-CardSettingsPanel.js +902 -0
- package/webinterface/source/providers/PictRouter-Ultravisor-Configuration.json +20 -8
- package/webinterface/source/views/PictView-Ultravisor-BeaconList.js +817 -0
- package/webinterface/source/views/PictView-Ultravisor-BottomBar.js +5 -5
- package/webinterface/source/views/PictView-Ultravisor-Dashboard.js +25 -25
- package/webinterface/source/views/PictView-Ultravisor-Documentation.js +856 -0
- package/webinterface/source/views/PictView-Ultravisor-FlowEditor.js +777 -0
- package/webinterface/source/views/PictView-Ultravisor-ManifestList.js +321 -58
- package/webinterface/source/views/PictView-Ultravisor-OperationEdit.js +36 -91
- package/webinterface/source/views/PictView-Ultravisor-OperationList.js +388 -16
- package/webinterface/source/views/PictView-Ultravisor-PendingInput.js +314 -0
- package/webinterface/source/views/PictView-Ultravisor-Schedule.js +521 -65
- package/webinterface/source/views/PictView-Ultravisor-TimingView.js +333 -71
- package/webinterface/source/views/PictView-Ultravisor-TopBar.js +257 -21
- package/webinterface/theme-sampler.html +645 -0
- package/debug/Harness.js +0 -6
- package/source/services/Ultravisor-Operation-Manifest.cjs +0 -160
- package/source/services/Ultravisor-Operation.cjs +0 -200
- package/source/services/Ultravisor-Task.cjs +0 -349
- package/source/services/events/Ultravisor-Hypervisor-Event-Solver.cjs +0 -11
- package/source/services/tasks/Ultravisor-Task-Base.cjs +0 -264
- package/source/services/tasks/Ultravisor-Task-CollectValues.cjs +0 -188
- package/source/services/tasks/Ultravisor-Task-Command.cjs +0 -65
- package/source/services/tasks/Ultravisor-Task-CommandEach.cjs +0 -190
- package/source/services/tasks/Ultravisor-Task-Conditional.cjs +0 -104
- package/source/services/tasks/Ultravisor-Task-DateWindow.cjs +0 -72
- package/source/services/tasks/Ultravisor-Task-GeneratePagedOperation.cjs +0 -336
- package/source/services/tasks/Ultravisor-Task-LaunchOperation.cjs +0 -143
- package/source/services/tasks/Ultravisor-Task-LaunchTask.cjs +0 -146
- package/source/services/tasks/Ultravisor-Task-LineMatch.cjs +0 -158
- package/source/services/tasks/Ultravisor-Task-Request.cjs +0 -56
- package/source/services/tasks/Ultravisor-Task-Solver.cjs +0 -89
- package/source/services/tasks/Ultravisor-Task-TemplateString.cjs +0 -93
- package/source/services/tasks/rest/Ultravisor-Task-GetBinary.cjs +0 -127
- package/source/services/tasks/rest/Ultravisor-Task-GetJSON.cjs +0 -119
- package/source/services/tasks/rest/Ultravisor-Task-GetText.cjs +0 -109
- package/source/services/tasks/rest/Ultravisor-Task-GetXML.cjs +0 -112
- package/source/services/tasks/rest/Ultravisor-Task-RestRequest.cjs +0 -499
- package/source/services/tasks/rest/Ultravisor-Task-SendJSON.cjs +0 -150
- package/source/services/tasks/stagingfiles/Ultravisor-Task-CopyFile.cjs +0 -110
- package/source/services/tasks/stagingfiles/Ultravisor-Task-ListFiles.cjs +0 -89
- package/source/services/tasks/stagingfiles/Ultravisor-Task-ReadBinary.cjs +0 -87
- package/source/services/tasks/stagingfiles/Ultravisor-Task-ReadJSON.cjs +0 -67
- package/source/services/tasks/stagingfiles/Ultravisor-Task-ReadText.cjs +0 -66
- package/source/services/tasks/stagingfiles/Ultravisor-Task-ReadXML.cjs +0 -69
- package/source/services/tasks/stagingfiles/Ultravisor-Task-WriteBinary.cjs +0 -95
- package/source/services/tasks/stagingfiles/Ultravisor-Task-WriteJSON.cjs +0 -96
- package/source/services/tasks/stagingfiles/Ultravisor-Task-WriteText.cjs +0 -99
- package/source/services/tasks/stagingfiles/Ultravisor-Task-WriteXML.cjs +0 -102
- package/webinterface/source/views/PictView-Ultravisor-TaskEdit.js +0 -220
- package/webinterface/source/views/PictView-Ultravisor-TaskList.js +0 -248
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# File System Tasks
|
|
2
|
+
|
|
3
|
+
Tasks for reading, writing, copying, and listing files on the local file system.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Read File
|
|
8
|
+
|
|
9
|
+
Reads a file from the local file system into operation state.
|
|
10
|
+
|
|
11
|
+
### Settings
|
|
12
|
+
|
|
13
|
+
- **FilePath** — Path to the file to read. Supports Pict template expressions for dynamic paths.
|
|
14
|
+
- **Encoding** — Character encoding (default `utf8`). Use `binary` for non-text files.
|
|
15
|
+
- **MaxBytes** — Maximum bytes to read. Set to `0` for unlimited.
|
|
16
|
+
|
|
17
|
+
### Outputs
|
|
18
|
+
|
|
19
|
+
- **FileContent** — The full text content of the file.
|
|
20
|
+
- **BytesRead** — Number of bytes that were read.
|
|
21
|
+
- **FileName** — The base name of the file (no directory).
|
|
22
|
+
|
|
23
|
+
### Events
|
|
24
|
+
|
|
25
|
+
- **ReadComplete** — Fires after a successful read.
|
|
26
|
+
- **Error** — Fires if the file cannot be found or read.
|
|
27
|
+
|
|
28
|
+
### Tips
|
|
29
|
+
|
|
30
|
+
For very large files, use **Read File Buffered** instead to process content in chunks. Use MaxBytes as a safety limit to avoid loading unexpectedly large files into memory.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Read File Buffered
|
|
35
|
+
|
|
36
|
+
Reads a file in chunks up to a maximum buffer size, splitting on a preferred character boundary. Ideal for processing large files that should not be loaded entirely into memory.
|
|
37
|
+
|
|
38
|
+
### Settings
|
|
39
|
+
|
|
40
|
+
- **FilePath** — Path to the file to read.
|
|
41
|
+
- **Encoding** — Character encoding (default `utf8`).
|
|
42
|
+
- **MaxBufferSize** — Maximum bytes per chunk (default `65536`).
|
|
43
|
+
- **SplitCharacter** — Preferred character to split on (default newline). The chunk is trimmed to the last occurrence of this character within the buffer so records are not broken mid-line.
|
|
44
|
+
- **ByteOffset** — Byte offset to start reading from. Use `0` for the first chunk and feed the output ByteOffset back for continuation.
|
|
45
|
+
|
|
46
|
+
### Outputs
|
|
47
|
+
|
|
48
|
+
- **FileContent** — Content of the current chunk.
|
|
49
|
+
- **BytesRead** — Bytes in this chunk.
|
|
50
|
+
- **ByteOffset** — Updated byte offset for the next read.
|
|
51
|
+
- **IsComplete** — `true` when the entire file has been read.
|
|
52
|
+
- **FileName** — Base name of the file.
|
|
53
|
+
- **TotalFileSize** — Total size of the file in bytes.
|
|
54
|
+
|
|
55
|
+
### Events
|
|
56
|
+
|
|
57
|
+
- **ReadComplete** — Fires when a chunk is read successfully.
|
|
58
|
+
- **Error** — Fires on read failure.
|
|
59
|
+
|
|
60
|
+
### Tips
|
|
61
|
+
|
|
62
|
+
Wire the ByteOffset output back to the ByteOffset setting input and use an **If Conditional** on IsComplete to create a read loop. This pattern lets you process files of any size line-by-line or paragraph-by-paragraph.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Read JSON
|
|
67
|
+
|
|
68
|
+
Reads a JSON file from disk, parses it, and stores the resulting object in operation state.
|
|
69
|
+
|
|
70
|
+
### Settings
|
|
71
|
+
|
|
72
|
+
- **FilePath** — Path to the JSON file.
|
|
73
|
+
- **Destination** — State address to store the parsed data. If empty, data is stored at the default output address.
|
|
74
|
+
|
|
75
|
+
### Outputs
|
|
76
|
+
|
|
77
|
+
- **Data** — The parsed JSON object or array.
|
|
78
|
+
|
|
79
|
+
### Events
|
|
80
|
+
|
|
81
|
+
- **Complete** — Fires after successful read and parse.
|
|
82
|
+
- **Error** — Fires if the file is missing or contains invalid JSON.
|
|
83
|
+
|
|
84
|
+
### Tips
|
|
85
|
+
|
|
86
|
+
Pair with **Write JSON** to round-trip configuration or intermediate data. Use the Destination setting to place the parsed data at a specific location in your operation state for downstream tasks.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Write File
|
|
91
|
+
|
|
92
|
+
Writes text content to a file on disk.
|
|
93
|
+
|
|
94
|
+
### Settings
|
|
95
|
+
|
|
96
|
+
- **FilePath** — Path to the output file. Intermediate directories are created automatically.
|
|
97
|
+
- **Content** — The text content to write. Supports Pict template expressions.
|
|
98
|
+
- **Encoding** — Character encoding (default `utf8`).
|
|
99
|
+
- **Append** — When `true`, appends to an existing file instead of overwriting it.
|
|
100
|
+
- **LineEnding** — Force a line ending style: `lf`, `crlf`, or leave empty for no conversion.
|
|
101
|
+
|
|
102
|
+
### Outputs
|
|
103
|
+
|
|
104
|
+
- **FileLocation** — The path as specified (may be relative).
|
|
105
|
+
- **FileName** — The base file name only.
|
|
106
|
+
- **FilePath** — The fully resolved absolute path.
|
|
107
|
+
- **BytesWritten** — Number of bytes written.
|
|
108
|
+
|
|
109
|
+
### Events
|
|
110
|
+
|
|
111
|
+
- **WriteComplete** — Fires on success.
|
|
112
|
+
- **Error** — Fires on write failure.
|
|
113
|
+
|
|
114
|
+
### Tips
|
|
115
|
+
|
|
116
|
+
Use Append mode with a **String Appender** to build log files or accumulate output across loop iterations.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Write JSON
|
|
121
|
+
|
|
122
|
+
Serializes a state object to JSON and writes it to a file on disk.
|
|
123
|
+
|
|
124
|
+
### Settings
|
|
125
|
+
|
|
126
|
+
- **FilePath** — Path to the output JSON file.
|
|
127
|
+
- **DataAddress** — State address of the data to serialize. If empty, uses the full operation state.
|
|
128
|
+
- **PrettyFormat** — Pretty-print with indentation (default `true`).
|
|
129
|
+
- **IndentType** — Indent character: `tab` or `space` (default `tab`).
|
|
130
|
+
- **IndentCount** — Number of indent characters per level (default `1`).
|
|
131
|
+
- **SortKeys** — Alphabetically sort object keys for deterministic output.
|
|
132
|
+
|
|
133
|
+
### Outputs
|
|
134
|
+
|
|
135
|
+
- **FileLocation** — The path as specified.
|
|
136
|
+
- **FileName** — The base file name only.
|
|
137
|
+
- **FilePath** — The fully resolved absolute path.
|
|
138
|
+
- **BytesWritten** — Number of bytes written.
|
|
139
|
+
|
|
140
|
+
### Events
|
|
141
|
+
|
|
142
|
+
- **Done** — Fires on success.
|
|
143
|
+
- **Error** — Fires on write failure.
|
|
144
|
+
|
|
145
|
+
### Tips
|
|
146
|
+
|
|
147
|
+
Enable SortKeys for config files that will be compared across versions or stored in version control.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Copy File
|
|
152
|
+
|
|
153
|
+
Copies a file from a source path to a target path.
|
|
154
|
+
|
|
155
|
+
### Settings
|
|
156
|
+
|
|
157
|
+
- **Source** — Source file path.
|
|
158
|
+
- **TargetFile** — Destination file path.
|
|
159
|
+
- **Overwrite** — Allow overwriting an existing target file (default `true`).
|
|
160
|
+
|
|
161
|
+
### Outputs
|
|
162
|
+
|
|
163
|
+
- **FileLocation** — The target path as specified.
|
|
164
|
+
- **FileName** — The target file name only.
|
|
165
|
+
- **FilePath** — The fully resolved absolute target path.
|
|
166
|
+
- **BytesCopied** — Size of the copied file in bytes.
|
|
167
|
+
|
|
168
|
+
### Events
|
|
169
|
+
|
|
170
|
+
- **Done** — Fires on successful copy.
|
|
171
|
+
- **Error** — Fires if the source is missing or the target cannot be written.
|
|
172
|
+
|
|
173
|
+
### Tips
|
|
174
|
+
|
|
175
|
+
Set Overwrite to `false` to protect existing files from accidental replacement. Both Source and TargetFile support Pict template expressions for dynamic paths.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## List Files
|
|
180
|
+
|
|
181
|
+
Lists files in a directory with optional glob pattern filtering.
|
|
182
|
+
|
|
183
|
+
### Settings
|
|
184
|
+
|
|
185
|
+
- **Folder** — Directory path to list.
|
|
186
|
+
- **Pattern** — Glob pattern filter (e.g. `*.txt`, `*.json`). Default `*` matches all files.
|
|
187
|
+
- **Destination** — State address to store the resulting file list.
|
|
188
|
+
- **Recursive** — When `true`, includes files in subdirectories.
|
|
189
|
+
- **IncludeDirectories** — When `true`, includes directory entries in the results.
|
|
190
|
+
|
|
191
|
+
### Outputs
|
|
192
|
+
|
|
193
|
+
- **Files** — Array of file name strings matching the pattern.
|
|
194
|
+
- **FileCount** — Number of entries found.
|
|
195
|
+
|
|
196
|
+
### Events
|
|
197
|
+
|
|
198
|
+
- **Complete** — Fires after listing is complete.
|
|
199
|
+
- **Error** — Fires if the directory cannot be read.
|
|
200
|
+
|
|
201
|
+
### Tips
|
|
202
|
+
|
|
203
|
+
Use with **Split Execute** to iterate over the file list and process each file individually. Combine Recursive mode with a specific Pattern to find files deep in a directory tree.
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Flow Control Tasks
|
|
2
|
+
|
|
3
|
+
Tasks for branching, looping, launching sub-operations, and executing shell commands to control the flow of execution.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## If Conditional
|
|
8
|
+
|
|
9
|
+
Evaluates a condition and branches execution to the True or False output. This is the primary decision-making card in a flow.
|
|
10
|
+
|
|
11
|
+
### Settings
|
|
12
|
+
|
|
13
|
+
- **DataAddress** — State address of the value to test.
|
|
14
|
+
- **CompareValue** — Value to compare against.
|
|
15
|
+
- **Operator** — Comparison operator: `==`, `!=`, `>`, `<`, `>=`, `<=`, `contains`, `startsWith`, `endsWith`. Default `==`.
|
|
16
|
+
- **Expression** — A full expression string. When set, DataAddress/CompareValue/Operator are ignored and the expression is evaluated directly.
|
|
17
|
+
|
|
18
|
+
### Outputs
|
|
19
|
+
|
|
20
|
+
- **Result** — Boolean result of the evaluation.
|
|
21
|
+
|
|
22
|
+
### Events
|
|
23
|
+
|
|
24
|
+
- **True** — Fires when the condition is true.
|
|
25
|
+
- **False** — Fires when the condition is false.
|
|
26
|
+
|
|
27
|
+
### Tips
|
|
28
|
+
|
|
29
|
+
Use Expression for complex conditions that combine multiple state values. For simple equality checks, DataAddress + CompareValue + Operator is more readable. The False output is positioned at the bottom of the card for visual clarity in flow diagrams.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Split Execute
|
|
34
|
+
|
|
35
|
+
Splits a string by a delimiter and processes each token through a sub-graph, acting as a loop iterator within the flow.
|
|
36
|
+
|
|
37
|
+
### Settings
|
|
38
|
+
|
|
39
|
+
- **InputString** — The string to split. Supports Pict template expressions.
|
|
40
|
+
- **SplitDelimiter** — Delimiter to split on (default newline `\n`).
|
|
41
|
+
- **SkipEmpty** — When `true`, skips empty tokens after splitting.
|
|
42
|
+
- **TrimTokens** — When `true`, trims whitespace from each token.
|
|
43
|
+
|
|
44
|
+
### Outputs
|
|
45
|
+
|
|
46
|
+
- **CurrentToken** — The current token being processed.
|
|
47
|
+
- **TokenIndex** — Zero-based index of the current token.
|
|
48
|
+
- **TokenCount** — Total number of tokens.
|
|
49
|
+
- **CompletedCount** — Number of tokens processed so far.
|
|
50
|
+
|
|
51
|
+
### Events
|
|
52
|
+
|
|
53
|
+
- **TokenDataSent** — Fires for each token, sending it through the sub-graph.
|
|
54
|
+
- **CompletedAllSubtasks** — Fires after all tokens have been processed.
|
|
55
|
+
- **Error** — Fires on failure.
|
|
56
|
+
|
|
57
|
+
### How It Works
|
|
58
|
+
|
|
59
|
+
1. The input string is split into tokens by the delimiter.
|
|
60
|
+
2. For each token, **TokenDataSent** fires with the token data in state.
|
|
61
|
+
3. Connect the downstream processing graph to TokenDataSent.
|
|
62
|
+
4. Wire the end of your processing graph back to the **StepComplete** event input to advance to the next token.
|
|
63
|
+
5. After all tokens are processed, **CompletedAllSubtasks** fires.
|
|
64
|
+
|
|
65
|
+
### Tips
|
|
66
|
+
|
|
67
|
+
Split Execute is the primary looping mechanism in Ultravisor flows. Use it with **List Files** output to process each file, or with newline-delimited text to process line-by-line.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Launch Operation
|
|
72
|
+
|
|
73
|
+
Executes a child operation by its hash, with isolated operation state. This enables modular flow composition by calling one operation from within another.
|
|
74
|
+
|
|
75
|
+
### Settings
|
|
76
|
+
|
|
77
|
+
- **OperationHash** — The hash identifier of the operation to launch.
|
|
78
|
+
- **InputData** — JSON data to pass as input to the child operation.
|
|
79
|
+
- **TimeoutMs** — Maximum execution time in milliseconds. Set to `0` for unlimited.
|
|
80
|
+
- **InheritGlobalState** — When `true` (default), copies the parent's GlobalState into the child operation.
|
|
81
|
+
|
|
82
|
+
### Outputs
|
|
83
|
+
|
|
84
|
+
- **Result** — The result data returned by the child operation.
|
|
85
|
+
- **Status** — Final status of the child operation.
|
|
86
|
+
- **ElapsedMs** — Execution time of the child operation in milliseconds.
|
|
87
|
+
|
|
88
|
+
### Events
|
|
89
|
+
|
|
90
|
+
- **Completed** — Fires when the child operation finishes.
|
|
91
|
+
- **Error** — Fires if the child operation fails or times out.
|
|
92
|
+
|
|
93
|
+
### Tips
|
|
94
|
+
|
|
95
|
+
Use Launch Operation to break complex workflows into reusable sub-operations. The child operation runs with its own isolated state, so it cannot accidentally modify the parent's local state. Use InheritGlobalState to share configuration and credentials.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Command
|
|
100
|
+
|
|
101
|
+
Executes a shell command on the server and captures its output.
|
|
102
|
+
|
|
103
|
+
### Settings
|
|
104
|
+
|
|
105
|
+
- **Command** — The shell command to execute (e.g. `ls`, `git`, `python3`).
|
|
106
|
+
- **Parameters** — Command-line arguments as a single string.
|
|
107
|
+
- **Description** — Human-readable description of what this command does (for documentation only).
|
|
108
|
+
- **WorkingDirectory** — Working directory for the command.
|
|
109
|
+
- **TimeoutMs** — Command timeout in milliseconds (default `300000` — 5 minutes).
|
|
110
|
+
- **Environment** — JSON object of environment variables to set for the command.
|
|
111
|
+
|
|
112
|
+
### Outputs
|
|
113
|
+
|
|
114
|
+
- **StdOut** — Standard output from the command.
|
|
115
|
+
- **StdErr** — Standard error output from the command.
|
|
116
|
+
- **ExitCode** — Exit code (0 typically indicates success).
|
|
117
|
+
|
|
118
|
+
### Events
|
|
119
|
+
|
|
120
|
+
- **Complete** — Fires when the command finishes.
|
|
121
|
+
- **Error** — Fires if the command fails to start or times out.
|
|
122
|
+
|
|
123
|
+
### Tips
|
|
124
|
+
|
|
125
|
+
Use an **If Conditional** on ExitCode to handle success vs failure. Both Command and Parameters support Pict template expressions, so you can build dynamic commands from state values. Set Environment to inject secrets or configuration without hardcoding them.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# HTTP Client Tasks
|
|
2
|
+
|
|
3
|
+
Tasks for making HTTP requests to external APIs and web services, from simple GET operations to fully configurable REST calls.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Get JSON
|
|
8
|
+
|
|
9
|
+
Performs an HTTP GET request and parses the response body as JSON.
|
|
10
|
+
|
|
11
|
+
### Settings
|
|
12
|
+
|
|
13
|
+
- **URL** — The URL to request. Supports Pict template expressions for dynamic URLs.
|
|
14
|
+
- **Headers** — JSON string of additional request headers (e.g. `{"Authorization": "Bearer ..."}`).
|
|
15
|
+
- **Destination** — State address to store the parsed response data.
|
|
16
|
+
- **TimeoutMs** — Request timeout in milliseconds (default `30000`).
|
|
17
|
+
|
|
18
|
+
### Outputs
|
|
19
|
+
|
|
20
|
+
- **Data** — The parsed JSON response object.
|
|
21
|
+
- **StatusCode** — HTTP response status code.
|
|
22
|
+
|
|
23
|
+
### Events
|
|
24
|
+
|
|
25
|
+
- **Complete** — Fires on a successful response.
|
|
26
|
+
- **Error** — Fires on network failure, timeout, or non-2xx status.
|
|
27
|
+
|
|
28
|
+
### Tips
|
|
29
|
+
|
|
30
|
+
For APIs requiring authentication, use **Set Values** to build the Headers JSON from stored credentials before connecting to the Headers setting input. Use the StatusCode output with an **If Conditional** to handle different HTTP response codes.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Get Text
|
|
35
|
+
|
|
36
|
+
Performs an HTTP GET request and returns the response body as plain text.
|
|
37
|
+
|
|
38
|
+
### Settings
|
|
39
|
+
|
|
40
|
+
- **URL** — The URL to request.
|
|
41
|
+
- **Destination** — State address to store the response text.
|
|
42
|
+
- **Headers** — JSON string of additional request headers.
|
|
43
|
+
- **TimeoutMs** — Request timeout in milliseconds (default `30000`).
|
|
44
|
+
|
|
45
|
+
### Outputs
|
|
46
|
+
|
|
47
|
+
- **Data** — The response body as a string.
|
|
48
|
+
- **StatusCode** — HTTP response status code.
|
|
49
|
+
|
|
50
|
+
### Events
|
|
51
|
+
|
|
52
|
+
- **Complete** — Fires on a successful response.
|
|
53
|
+
- **Error** — Fires on network failure or timeout.
|
|
54
|
+
|
|
55
|
+
### Tips
|
|
56
|
+
|
|
57
|
+
Use Get Text for non-JSON responses: HTML pages, CSV downloads, plain text APIs, or XML feeds. Pipe the output into **Parse CSV** for CSV data or **Replace String** for text processing.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Send JSON
|
|
62
|
+
|
|
63
|
+
Sends JSON data to a URL via HTTP POST or PUT.
|
|
64
|
+
|
|
65
|
+
### Settings
|
|
66
|
+
|
|
67
|
+
- **URL** — The URL to send data to.
|
|
68
|
+
- **Method** — HTTP method: `POST` or `PUT` (default `POST`).
|
|
69
|
+
- **DataAddress** — State address of the object to send as the request body.
|
|
70
|
+
- **Headers** — JSON string of additional request headers.
|
|
71
|
+
- **Destination** — State address to store the response data.
|
|
72
|
+
- **TimeoutMs** — Request timeout in milliseconds (default `30000`).
|
|
73
|
+
|
|
74
|
+
### Outputs
|
|
75
|
+
|
|
76
|
+
- **Response** — The parsed response data.
|
|
77
|
+
- **StatusCode** — HTTP response status code.
|
|
78
|
+
|
|
79
|
+
### Events
|
|
80
|
+
|
|
81
|
+
- **Complete** — Fires on success.
|
|
82
|
+
- **Error** — Fires on failure.
|
|
83
|
+
|
|
84
|
+
### Tips
|
|
85
|
+
|
|
86
|
+
Use Send JSON for creating or updating resources via REST APIs. For more control over the request (custom Content-Type, DELETE method, retries), use **REST Request** instead.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## REST Request
|
|
91
|
+
|
|
92
|
+
Performs a fully configurable HTTP request with support for any method, custom content types, request bodies, retries, and timeout control.
|
|
93
|
+
|
|
94
|
+
### Settings
|
|
95
|
+
|
|
96
|
+
- **URL** — The URL to request.
|
|
97
|
+
- **Method** — HTTP method: `GET`, `POST`, `PUT`, `DELETE`, `PATCH`, etc. (default `GET`).
|
|
98
|
+
- **ContentType** — Content-Type header value (default `application/json`).
|
|
99
|
+
- **Headers** — JSON string of additional request headers.
|
|
100
|
+
- **Body** — Request body as a JSON string or raw text.
|
|
101
|
+
- **Destination** — State address to store the response.
|
|
102
|
+
- **Retries** — Number of retries on failure (default `0`).
|
|
103
|
+
- **TimeoutMs** — Request timeout in milliseconds (default `30000`).
|
|
104
|
+
- **RetryDelayMs** — Delay between retry attempts in milliseconds (default `1000`).
|
|
105
|
+
|
|
106
|
+
### Outputs
|
|
107
|
+
|
|
108
|
+
- **Response** — The response data.
|
|
109
|
+
- **StatusCode** — HTTP response status code.
|
|
110
|
+
- **ResponseHeaders** — JSON string of response headers.
|
|
111
|
+
|
|
112
|
+
### Events
|
|
113
|
+
|
|
114
|
+
- **Complete** — Fires on success.
|
|
115
|
+
- **Error** — Fires on failure after all retries are exhausted.
|
|
116
|
+
|
|
117
|
+
### Tips
|
|
118
|
+
|
|
119
|
+
REST Request is the most flexible HTTP card. Use it for DELETE operations, form-encoded POST bodies, XML APIs, or any case where Get JSON / Send JSON are too restrictive. The Retries setting with RetryDelayMs provides built-in resilience for flaky endpoints.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# LLM Tasks
|
|
2
|
+
|
|
3
|
+
Tasks for integrating with large language models, including chat completions, embeddings, and tool use. These tasks dispatch work to Beacon workers with LLM capability.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## LLM Chat Completion
|
|
8
|
+
|
|
9
|
+
Sends messages to a large language model and returns the completion. Supports multi-turn conversation history with persistence across operation runs.
|
|
10
|
+
|
|
11
|
+
### Settings
|
|
12
|
+
|
|
13
|
+
- **SystemPrompt** — System prompt text that sets the LLM's behavior and context.
|
|
14
|
+
- **UserPrompt** — User prompt text for the current turn.
|
|
15
|
+
- **Messages** — JSON array of message objects `[{role, content}]` for direct control over the conversation. Overrides SystemPrompt/UserPrompt when set.
|
|
16
|
+
- **Model** — Override the default model name.
|
|
17
|
+
- **Temperature** — Sampling temperature (0–2). Lower values are more deterministic.
|
|
18
|
+
- **MaxTokens** — Maximum tokens to generate (default `4096`).
|
|
19
|
+
- **TopP** — Nucleus sampling parameter.
|
|
20
|
+
- **StopSequences** — JSON array of sequences that stop generation.
|
|
21
|
+
- **ResponseFormat** — Set to `json_object` to force JSON output.
|
|
22
|
+
- **InputAddress** — State address to read additional context data from (appended to UserPrompt).
|
|
23
|
+
- **Destination** — State address to write the completion text to.
|
|
24
|
+
|
|
25
|
+
### Conversation History
|
|
26
|
+
|
|
27
|
+
- **ConversationAddress** — State address to store message history for multi-turn conversations.
|
|
28
|
+
- **AppendToConversation** — Append this exchange to history (default `true` when ConversationAddress is set).
|
|
29
|
+
- **ConversationMaxMessages** — Sliding window: maximum non-system messages to keep.
|
|
30
|
+
- **ConversationMaxTokens** — Token budget for history (approximate, trims oldest messages).
|
|
31
|
+
- **PersistConversation** — Copy conversation history to GlobalState for cross-operation persistence.
|
|
32
|
+
- **ConversationPersistAddress** — GlobalState address for persistence.
|
|
33
|
+
|
|
34
|
+
### Dispatch
|
|
35
|
+
|
|
36
|
+
- **AffinityKey** — Route to a specific Beacon worker for consistent model access.
|
|
37
|
+
- **TimeoutMs** — Timeout in milliseconds (default `120000`).
|
|
38
|
+
|
|
39
|
+
### Outputs
|
|
40
|
+
|
|
41
|
+
- **Content** — The LLM's response text.
|
|
42
|
+
- **Model** — Model that generated the response.
|
|
43
|
+
- **PromptTokens** / **CompletionTokens** / **TotalTokens** — Token usage statistics.
|
|
44
|
+
- **FinishReason** — Why the completion ended (`stop`, `length`, etc.).
|
|
45
|
+
- **BeaconID** — ID of the Beacon worker that executed the request.
|
|
46
|
+
|
|
47
|
+
### Tips
|
|
48
|
+
|
|
49
|
+
Use ConversationAddress with PersistConversation to build chatbots that maintain context across multiple operation runs. Set ResponseFormat to `json_object` when you need structured output that downstream cards can parse. Use Temperature `0` for deterministic, reproducible results.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## LLM Embedding
|
|
54
|
+
|
|
55
|
+
Generates vector embeddings for text input using an LLM provider. Dispatches the work to a Beacon with LLM capability.
|
|
56
|
+
|
|
57
|
+
### Settings
|
|
58
|
+
|
|
59
|
+
- **Text** — The text to embed. Supports Pict template expressions.
|
|
60
|
+
- **Model** — Override the default embedding model.
|
|
61
|
+
- **Dimensions** — Requested embedding dimensions (model-dependent).
|
|
62
|
+
- **InputAddress** — State address to read text from (alternative to Text setting).
|
|
63
|
+
- **Destination** — State address to write the embedding vector to.
|
|
64
|
+
- **AffinityKey** — Route to a specific Beacon worker.
|
|
65
|
+
- **TimeoutMs** — Timeout in milliseconds (default `60000`).
|
|
66
|
+
|
|
67
|
+
### Outputs
|
|
68
|
+
|
|
69
|
+
- **Embedding** — JSON array of floating-point numbers representing the embedding vector.
|
|
70
|
+
- **Dimensions** — Number of dimensions in the embedding.
|
|
71
|
+
- **Model** — Model used for embedding.
|
|
72
|
+
- **BeaconID** — ID of the Beacon that executed the work.
|
|
73
|
+
|
|
74
|
+
### Tips
|
|
75
|
+
|
|
76
|
+
Use embeddings for semantic search, clustering, or similarity comparisons. Store embeddings in a database via **Meadow Create** for later retrieval. Combine with **Expression Solver** or downstream processing to compute cosine similarity between vectors.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## LLM Tool Use
|
|
81
|
+
|
|
82
|
+
Sends messages to a large language model with tool (function) definitions, enabling the LLM to request tool calls that your flow can execute.
|
|
83
|
+
|
|
84
|
+
### Settings
|
|
85
|
+
|
|
86
|
+
- **SystemPrompt** — System prompt text.
|
|
87
|
+
- **UserPrompt** — User prompt text.
|
|
88
|
+
- **Messages** — JSON array of messages for direct conversation control.
|
|
89
|
+
- **Tools** — JSON array of tool definitions describing available functions the LLM can call.
|
|
90
|
+
- **Model** — Override model name.
|
|
91
|
+
- **ToolChoice** — `auto` (LLM decides), `none` (no tools), or a specific tool name (default `auto`).
|
|
92
|
+
- **Temperature** — Sampling temperature.
|
|
93
|
+
- **MaxTokens** — Maximum tokens to generate.
|
|
94
|
+
- **ConversationAddress** — State address for multi-turn history.
|
|
95
|
+
- **AppendToConversation** — Append this exchange to history.
|
|
96
|
+
- **InputAddress** — State address to read context data from.
|
|
97
|
+
- **Destination** — State address to write completion content.
|
|
98
|
+
- **AffinityKey** — Route to a specific Beacon worker.
|
|
99
|
+
- **TimeoutMs** — Timeout in milliseconds (default `120000`).
|
|
100
|
+
|
|
101
|
+
### Outputs
|
|
102
|
+
|
|
103
|
+
- **Content** — The LLM's text response (may be empty if tool calls were made).
|
|
104
|
+
- **ToolCalls** — JSON array of tool call objects with function names and arguments.
|
|
105
|
+
- **Model** — Model that generated the response.
|
|
106
|
+
- **FinishReason** — `stop` for normal completion, `tool_calls` when tools were invoked.
|
|
107
|
+
- **PromptTokens** / **CompletionTokens** — Token usage.
|
|
108
|
+
- **BeaconID** — Beacon worker ID.
|
|
109
|
+
|
|
110
|
+
### Events
|
|
111
|
+
|
|
112
|
+
- **Complete** — Fires when the LLM responds.
|
|
113
|
+
- **ToolCall** — Fires when the LLM requests a tool call.
|
|
114
|
+
- **Error** — Fires on failure.
|
|
115
|
+
|
|
116
|
+
### Tips
|
|
117
|
+
|
|
118
|
+
Use the ToolCall event to route tool invocations to the appropriate processing cards, then feed results back for another LLM turn. This enables agent-style workflows where the LLM can gather information and take actions through your defined tools.
|