ultravisor 1.0.21 → 1.0.23
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/docs/_version.json +7 -0
- package/docs/css/docuserve.css +277 -23
- package/docs/features/beacon-authentication.md +24 -31
- package/docs/features/beacon-providers.md +31 -37
- package/docs/features/beacons.md +20 -19
- package/docs/features/case-study-retold-remote.md +28 -28
- package/docs/features/llm-model-setup.md +15 -15
- package/docs/features/llm.md +29 -27
- package/docs/features/platform-cards.md +10 -10
- package/docs/features/reachability-matrix.md +12 -12
- package/docs/features/tasks-content-system.md +32 -32
- package/docs/features/tasks-data-transform.md +64 -64
- package/docs/features/tasks-extension.md +14 -14
- package/docs/features/tasks-file-system.md +94 -94
- package/docs/features/tasks-flow-control.md +38 -38
- package/docs/features/tasks-http-client.md +40 -40
- package/docs/features/tasks-llm.md +58 -58
- package/docs/features/tasks-meadow-api.md +50 -50
- package/docs/features/tasks-user-interaction.md +12 -12
- package/docs/features/tasks.md +20 -20
- package/docs/features/universal-addressing.md +12 -12
- package/docs/index.html +2 -2
- package/docs/retold-catalog.json +30 -1
- package/docs/retold-keyword-index.json +15389 -12741
- package/package.json +4 -3
- package/source/services/Ultravisor-Beacon-Coordinator.cjs +39 -0
- package/source/services/Ultravisor-ExecutionEngine.cjs +15 -2
- package/source/services/Ultravisor-OperationAuditor.cjs +471 -0
- package/source/web_server/Ultravisor-API-Server.cjs +54 -0
- package/test/Ultravisor_tests.js +132 -0
|
@@ -10,39 +10,39 @@ Sends messages to a large language model and returns the completion. Supports mu
|
|
|
10
10
|
|
|
11
11
|
### Settings
|
|
12
12
|
|
|
13
|
-
- **SystemPrompt**
|
|
14
|
-
- **UserPrompt**
|
|
15
|
-
- **Messages**
|
|
16
|
-
- **Model**
|
|
17
|
-
- **Temperature**
|
|
18
|
-
- **MaxTokens**
|
|
19
|
-
- **TopP**
|
|
20
|
-
- **StopSequences**
|
|
21
|
-
- **ResponseFormat**
|
|
22
|
-
- **InputAddress**
|
|
23
|
-
- **Destination**
|
|
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
24
|
|
|
25
25
|
### Conversation History
|
|
26
26
|
|
|
27
|
-
- **ConversationAddress**
|
|
28
|
-
- **AppendToConversation**
|
|
29
|
-
- **ConversationMaxMessages**
|
|
30
|
-
- **ConversationMaxTokens**
|
|
31
|
-
- **PersistConversation**
|
|
32
|
-
- **ConversationPersistAddress**
|
|
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
33
|
|
|
34
34
|
### Dispatch
|
|
35
35
|
|
|
36
|
-
- **AffinityKey**
|
|
37
|
-
- **TimeoutMs**
|
|
36
|
+
- **AffinityKey** -- Route to a specific Beacon worker for consistent model access.
|
|
37
|
+
- **TimeoutMs** -- Timeout in milliseconds (default `120000`).
|
|
38
38
|
|
|
39
39
|
### Outputs
|
|
40
40
|
|
|
41
|
-
- **Content**
|
|
42
|
-
- **Model**
|
|
43
|
-
- **PromptTokens** / **CompletionTokens** / **TotalTokens**
|
|
44
|
-
- **FinishReason**
|
|
45
|
-
- **BeaconID**
|
|
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
46
|
|
|
47
47
|
### Tips
|
|
48
48
|
|
|
@@ -56,20 +56,20 @@ Generates vector embeddings for text input using an LLM provider. Dispatches the
|
|
|
56
56
|
|
|
57
57
|
### Settings
|
|
58
58
|
|
|
59
|
-
- **Text**
|
|
60
|
-
- **Model**
|
|
61
|
-
- **Dimensions**
|
|
62
|
-
- **InputAddress**
|
|
63
|
-
- **Destination**
|
|
64
|
-
- **AffinityKey**
|
|
65
|
-
- **TimeoutMs**
|
|
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
66
|
|
|
67
67
|
### Outputs
|
|
68
68
|
|
|
69
|
-
- **Embedding**
|
|
70
|
-
- **Dimensions**
|
|
71
|
-
- **Model**
|
|
72
|
-
- **BeaconID**
|
|
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
73
|
|
|
74
74
|
### Tips
|
|
75
75
|
|
|
@@ -83,35 +83,35 @@ Sends messages to a large language model with tool (function) definitions, enabl
|
|
|
83
83
|
|
|
84
84
|
### Settings
|
|
85
85
|
|
|
86
|
-
- **SystemPrompt**
|
|
87
|
-
- **UserPrompt**
|
|
88
|
-
- **Messages**
|
|
89
|
-
- **Tools**
|
|
90
|
-
- **Model**
|
|
91
|
-
- **ToolChoice**
|
|
92
|
-
- **Temperature**
|
|
93
|
-
- **MaxTokens**
|
|
94
|
-
- **ConversationAddress**
|
|
95
|
-
- **AppendToConversation**
|
|
96
|
-
- **InputAddress**
|
|
97
|
-
- **Destination**
|
|
98
|
-
- **AffinityKey**
|
|
99
|
-
- **TimeoutMs**
|
|
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
100
|
|
|
101
101
|
### Outputs
|
|
102
102
|
|
|
103
|
-
- **Content**
|
|
104
|
-
- **ToolCalls**
|
|
105
|
-
- **Model**
|
|
106
|
-
- **FinishReason**
|
|
107
|
-
- **PromptTokens** / **CompletionTokens**
|
|
108
|
-
- **BeaconID**
|
|
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
109
|
|
|
110
110
|
### Events
|
|
111
111
|
|
|
112
|
-
- **Complete**
|
|
113
|
-
- **ToolCall**
|
|
114
|
-
- **Error**
|
|
112
|
+
- **Complete** -- Fires when the LLM responds.
|
|
113
|
+
- **ToolCall** -- Fires when the LLM requests a tool call.
|
|
114
|
+
- **Error** -- Fires on failure.
|
|
115
115
|
|
|
116
116
|
### Tips
|
|
117
117
|
|
|
@@ -10,20 +10,20 @@ Creates a new record via a Meadow REST API endpoint.
|
|
|
10
10
|
|
|
11
11
|
### Settings
|
|
12
12
|
|
|
13
|
-
- **Entity**
|
|
14
|
-
- **Endpoint**
|
|
15
|
-
- **DataAddress**
|
|
16
|
-
- **Headers**
|
|
17
|
-
- **Destination**
|
|
13
|
+
- **Entity** -- Entity (table) name.
|
|
14
|
+
- **Endpoint** -- Base URL of the Meadow API server.
|
|
15
|
+
- **DataAddress** -- State address of the object containing the record data to create.
|
|
16
|
+
- **Headers** -- JSON string of request headers for authentication.
|
|
17
|
+
- **Destination** -- State address to store the created record (includes server-generated fields like ID).
|
|
18
18
|
|
|
19
19
|
### Outputs
|
|
20
20
|
|
|
21
|
-
- **Created**
|
|
21
|
+
- **Created** -- The newly created record object with its assigned ID.
|
|
22
22
|
|
|
23
23
|
### Events
|
|
24
24
|
|
|
25
|
-
- **Complete**
|
|
26
|
-
- **Error**
|
|
25
|
+
- **Complete** -- Fires after the record is created.
|
|
26
|
+
- **Error** -- Fires on failure.
|
|
27
27
|
|
|
28
28
|
### Tips
|
|
29
29
|
|
|
@@ -37,20 +37,20 @@ Reads a single record by its ID from a Meadow REST API endpoint.
|
|
|
37
37
|
|
|
38
38
|
### Settings
|
|
39
39
|
|
|
40
|
-
- **Entity**
|
|
41
|
-
- **Endpoint**
|
|
42
|
-
- **RecordID**
|
|
43
|
-
- **Destination**
|
|
44
|
-
- **Headers**
|
|
40
|
+
- **Entity** -- Entity (table) name to query.
|
|
41
|
+
- **Endpoint** -- Base URL of the Meadow API server.
|
|
42
|
+
- **RecordID** -- The ID of the record to retrieve.
|
|
43
|
+
- **Destination** -- State address to store the retrieved record.
|
|
44
|
+
- **Headers** -- JSON string of additional request headers for authentication.
|
|
45
45
|
|
|
46
46
|
### Outputs
|
|
47
47
|
|
|
48
|
-
- **Record**
|
|
48
|
+
- **Record** -- The retrieved record object.
|
|
49
49
|
|
|
50
50
|
### Events
|
|
51
51
|
|
|
52
|
-
- **Complete**
|
|
53
|
-
- **Error**
|
|
52
|
+
- **Complete** -- Fires after the record is retrieved.
|
|
53
|
+
- **Error** -- Fires if the record is not found or the request fails.
|
|
54
54
|
|
|
55
55
|
### Tips
|
|
56
56
|
|
|
@@ -64,23 +64,23 @@ Reads multiple records from a Meadow REST API endpoint, with optional filtering
|
|
|
64
64
|
|
|
65
65
|
### Settings
|
|
66
66
|
|
|
67
|
-
- **Entity**
|
|
68
|
-
- **Endpoint**
|
|
69
|
-
- **Filter**
|
|
70
|
-
- **Destination**
|
|
71
|
-
- **Headers**
|
|
72
|
-
- **PageSize**
|
|
73
|
-
- **PageNumber**
|
|
67
|
+
- **Entity** -- Entity (table) name to query.
|
|
68
|
+
- **Endpoint** -- Base URL of the Meadow API server.
|
|
69
|
+
- **Filter** -- Meadow filter expression to narrow the result set (e.g. `FBV~IDUser~EQ~42~0~`).
|
|
70
|
+
- **Destination** -- State address to store the records array.
|
|
71
|
+
- **Headers** -- JSON string of request headers for authentication.
|
|
72
|
+
- **PageSize** -- Number of records per page (default `100`).
|
|
73
|
+
- **PageNumber** -- Zero-based page number (default `0`).
|
|
74
74
|
|
|
75
75
|
### Outputs
|
|
76
76
|
|
|
77
|
-
- **Records**
|
|
78
|
-
- **RecordCount**
|
|
77
|
+
- **Records** -- Array of retrieved record objects.
|
|
78
|
+
- **RecordCount** -- Number of records returned.
|
|
79
79
|
|
|
80
80
|
### Events
|
|
81
81
|
|
|
82
|
-
- **Complete**
|
|
83
|
-
- **Error**
|
|
82
|
+
- **Complete** -- Fires after records are retrieved.
|
|
83
|
+
- **Error** -- Fires on request failure.
|
|
84
84
|
|
|
85
85
|
### Tips
|
|
86
86
|
|
|
@@ -94,20 +94,20 @@ Updates an existing record via a Meadow REST API endpoint.
|
|
|
94
94
|
|
|
95
95
|
### Settings
|
|
96
96
|
|
|
97
|
-
- **Entity**
|
|
98
|
-
- **Endpoint**
|
|
99
|
-
- **DataAddress**
|
|
100
|
-
- **Headers**
|
|
101
|
-
- **Destination**
|
|
97
|
+
- **Entity** -- Entity (table) name.
|
|
98
|
+
- **Endpoint** -- Base URL of the Meadow API server.
|
|
99
|
+
- **DataAddress** -- State address of the record data to update. Must include the record's ID field.
|
|
100
|
+
- **Headers** -- JSON string of request headers for authentication.
|
|
101
|
+
- **Destination** -- State address to store the updated record.
|
|
102
102
|
|
|
103
103
|
### Outputs
|
|
104
104
|
|
|
105
|
-
- **Updated**
|
|
105
|
+
- **Updated** -- The updated record object.
|
|
106
106
|
|
|
107
107
|
### Events
|
|
108
108
|
|
|
109
|
-
- **Complete**
|
|
110
|
-
- **Error**
|
|
109
|
+
- **Complete** -- Fires after the update.
|
|
110
|
+
- **Error** -- Fires on failure.
|
|
111
111
|
|
|
112
112
|
### Tips
|
|
113
113
|
|
|
@@ -121,19 +121,19 @@ Deletes a record by its ID via a Meadow REST API endpoint.
|
|
|
121
121
|
|
|
122
122
|
### Settings
|
|
123
123
|
|
|
124
|
-
- **Entity**
|
|
125
|
-
- **Endpoint**
|
|
126
|
-
- **RecordID**
|
|
127
|
-
- **Headers**
|
|
124
|
+
- **Entity** -- Entity (table) name.
|
|
125
|
+
- **Endpoint** -- Base URL of the Meadow API server.
|
|
126
|
+
- **RecordID** -- The ID of the record to delete.
|
|
127
|
+
- **Headers** -- JSON string of request headers for authentication.
|
|
128
128
|
|
|
129
129
|
### Events
|
|
130
130
|
|
|
131
|
-
- **Done**
|
|
132
|
-
- **Error**
|
|
131
|
+
- **Done** -- Fires after the record is deleted.
|
|
132
|
+
- **Error** -- Fires on failure.
|
|
133
133
|
|
|
134
134
|
### Tips
|
|
135
135
|
|
|
136
|
-
Meadow Delete is permanent
|
|
136
|
+
Meadow Delete is permanent -- consider adding a **Value Input** confirmation step before deleting records in user-facing workflows. Build the RecordID dynamically with template expressions when deleting records identified by earlier processing steps.
|
|
137
137
|
|
|
138
138
|
---
|
|
139
139
|
|
|
@@ -143,20 +143,20 @@ Counts records for an entity via a Meadow REST API endpoint, with optional filte
|
|
|
143
143
|
|
|
144
144
|
### Settings
|
|
145
145
|
|
|
146
|
-
- **Entity**
|
|
147
|
-
- **Endpoint**
|
|
148
|
-
- **Destination**
|
|
149
|
-
- **Headers**
|
|
150
|
-
- **Filter**
|
|
146
|
+
- **Entity** -- Entity (table) name.
|
|
147
|
+
- **Endpoint** -- Base URL of the Meadow API server.
|
|
148
|
+
- **Destination** -- State address to store the count value.
|
|
149
|
+
- **Headers** -- JSON string of request headers for authentication.
|
|
150
|
+
- **Filter** -- Meadow filter expression to count only matching records.
|
|
151
151
|
|
|
152
152
|
### Outputs
|
|
153
153
|
|
|
154
|
-
- **Count**
|
|
154
|
+
- **Count** -- Number of records matching the criteria.
|
|
155
155
|
|
|
156
156
|
### Events
|
|
157
157
|
|
|
158
|
-
- **Complete**
|
|
159
|
-
- **Error**
|
|
158
|
+
- **Complete** -- Fires after the count is retrieved.
|
|
159
|
+
- **Error** -- Fires on failure.
|
|
160
160
|
|
|
161
161
|
### Tips
|
|
162
162
|
|
|
@@ -10,20 +10,20 @@ Pauses flow execution and prompts the user for input. The flow resumes when the
|
|
|
10
10
|
|
|
11
11
|
### Settings
|
|
12
12
|
|
|
13
|
-
- **PromptMessage**
|
|
14
|
-
- **OutputAddress**
|
|
15
|
-
- **InputType**
|
|
16
|
-
- **DefaultValue**
|
|
17
|
-
- **Options**
|
|
13
|
+
- **PromptMessage** -- The message displayed to the user (default: "Please provide a value:").
|
|
14
|
+
- **OutputAddress** -- State address where the user's input will be stored.
|
|
15
|
+
- **InputType** -- Type of input control: `text`, `number`, `boolean`, or `select` (default `text`).
|
|
16
|
+
- **DefaultValue** -- Pre-filled default value.
|
|
17
|
+
- **Options** -- JSON array of allowed values when InputType is `select`.
|
|
18
18
|
|
|
19
19
|
### Outputs
|
|
20
20
|
|
|
21
|
-
- **InputValue**
|
|
21
|
+
- **InputValue** -- The value provided by the user.
|
|
22
22
|
|
|
23
23
|
### Events
|
|
24
24
|
|
|
25
|
-
- **ValueInputComplete**
|
|
26
|
-
- **Cancelled**
|
|
25
|
+
- **ValueInputComplete** -- Fires when the user submits a value.
|
|
26
|
+
- **Cancelled** -- Fires if the user cancels without providing input.
|
|
27
27
|
|
|
28
28
|
### Tips
|
|
29
29
|
|
|
@@ -37,13 +37,13 @@ Logs an error, warning, info, or debug message to the execution log. Use this ca
|
|
|
37
37
|
|
|
38
38
|
### Settings
|
|
39
39
|
|
|
40
|
-
- **MessageTemplate**
|
|
41
|
-
- **Level**
|
|
40
|
+
- **MessageTemplate** -- The message text to log. Supports Pict template expressions for including state values (default: "An error occurred.").
|
|
41
|
+
- **Level** -- Log level: `error`, `warning`, `info`, or `debug` (default `error`).
|
|
42
42
|
|
|
43
43
|
### Events
|
|
44
44
|
|
|
45
|
-
- **Complete**
|
|
45
|
+
- **Complete** -- Fires after the message is logged. Execution continues normally.
|
|
46
46
|
|
|
47
47
|
### Tips
|
|
48
48
|
|
|
49
|
-
Error Message does not stop the flow
|
|
49
|
+
Error Message does not stop the flow -- it only records a log entry. Place it on error branches to capture diagnostic context when failures occur. Use the `info` level for progress markers and `debug` for development-time tracing.
|
package/docs/features/tasks.md
CHANGED
|
@@ -8,15 +8,15 @@ supported task type.
|
|
|
8
8
|
|
|
9
9
|
For detailed documentation on each built-in task type, see the per-category reference pages:
|
|
10
10
|
|
|
11
|
-
- [Data Transform](tasks-data-transform.md)
|
|
12
|
-
- [File System](tasks-file-system.md)
|
|
13
|
-
- [Flow Control](tasks-flow-control.md)
|
|
14
|
-
- [HTTP Client](tasks-http-client.md)
|
|
15
|
-
- [LLM](tasks-llm.md)
|
|
16
|
-
- [Meadow API](tasks-meadow-api.md)
|
|
17
|
-
- [Content System](tasks-content-system.md)
|
|
18
|
-
- [Extension](tasks-extension.md)
|
|
19
|
-
- [User Interaction](tasks-user-interaction.md)
|
|
11
|
+
- [Data Transform](tasks-data-transform.md) -- Set values, string manipulation, templates, expressions, CSV parsing, and dataset operations
|
|
12
|
+
- [File System](tasks-file-system.md) -- Read, write, copy, and list files on the local file system
|
|
13
|
+
- [Flow Control](tasks-flow-control.md) -- Conditionals, loops, sub-operations, and shell commands
|
|
14
|
+
- [HTTP Client](tasks-http-client.md) -- GET/POST requests, JSON APIs, and fully configurable REST calls
|
|
15
|
+
- [LLM](tasks-llm.md) -- Chat completions, embeddings, and tool use with large language models
|
|
16
|
+
- [Meadow API](tasks-meadow-api.md) -- CRUD operations against Meadow REST API endpoints
|
|
17
|
+
- [Content System](tasks-content-system.md) -- Remote file operations on Content System beacon workers
|
|
18
|
+
- [Extension](tasks-extension.md) -- Low-level Beacon dispatch for remote worker execution
|
|
19
|
+
- [User Interaction](tasks-user-interaction.md) -- User input prompts and diagnostic logging
|
|
20
20
|
|
|
21
21
|
## Task Model
|
|
22
22
|
|
|
@@ -82,8 +82,8 @@ is not set.
|
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
Default execution limits (configurable in `.ultravisor.json`):
|
|
85
|
-
- Timeout: 5 minutes (300,000 ms)
|
|
86
|
-
- Max output buffer: 10 MB
|
|
85
|
+
- Timeout: 5 minutes (300,000 ms) -- `UltravisorCommandTimeoutMilliseconds`
|
|
86
|
+
- Max output buffer: 10 MB -- `UltravisorCommandMaxBufferBytes`
|
|
87
87
|
|
|
88
88
|
### Request
|
|
89
89
|
|
|
@@ -246,7 +246,7 @@ Reads a text file from the staging folder and returns its content in
|
|
|
246
246
|
|
|
247
247
|
Writes an XML string to a file in the staging folder.
|
|
248
248
|
Creates intermediate directories automatically. No XML validation is
|
|
249
|
-
performed
|
|
249
|
+
performed -- the caller is responsible for providing well-formed XML.
|
|
250
250
|
|
|
251
251
|
| Field | Required | Description |
|
|
252
252
|
|-------|----------|-------------|
|
|
@@ -270,7 +270,7 @@ the XML content is resolved from `pContext.GlobalState`.
|
|
|
270
270
|
### ReadXML
|
|
271
271
|
|
|
272
272
|
Reads an XML file from the staging folder and returns its content as a
|
|
273
|
-
raw string in `Output`. No XML parsing is performed
|
|
273
|
+
raw string in `Output`. No XML parsing is performed -- the caller is
|
|
274
274
|
responsible for interpreting the XML structure.
|
|
275
275
|
|
|
276
276
|
| Field | Required | Description |
|
|
@@ -376,7 +376,7 @@ Use `Address` to copy a file whose path was determined by a previous task:
|
|
|
376
376
|
```
|
|
377
377
|
|
|
378
378
|
The source must be an existing regular file (not a directory). Path
|
|
379
|
-
traversal is blocked in the destination
|
|
379
|
+
traversal is blocked in the destination -- file paths containing `..`
|
|
380
380
|
are rejected.
|
|
381
381
|
|
|
382
382
|
### GetJSON
|
|
@@ -463,7 +463,7 @@ The raw response text is available in `pManifestEntry.Output`. The
|
|
|
463
463
|
|
|
464
464
|
Performs a native HTTP/HTTPS GET request and returns the response body as
|
|
465
465
|
raw XML text. Uses Node.js built-in `http`/`https` modules (no curl
|
|
466
|
-
dependency). No XML parsing is performed
|
|
466
|
+
dependency). No XML parsing is performed -- the caller is responsible
|
|
467
467
|
for interpreting the XML structure.
|
|
468
468
|
|
|
469
469
|
| Field | Required | Description |
|
|
@@ -572,7 +572,7 @@ The `JSON` field is only present when the response body is valid JSON.
|
|
|
572
572
|
When a response includes `Set-Cookie` headers, the name/value pairs are
|
|
573
573
|
automatically parsed and stored at `pContext.GlobalState.Cookies`. Every
|
|
574
574
|
subsequent `RestRequest` task running in the same operation will
|
|
575
|
-
automatically include those cookies in its request
|
|
575
|
+
automatically include those cookies in its request -- no extra
|
|
576
576
|
configuration needed.
|
|
577
577
|
|
|
578
578
|
Task-level `Cookies` merge on top of the shared jar, so explicit values
|
|
@@ -688,7 +688,7 @@ name to store the value under):
|
|
|
688
688
|
If the response body is `{"Session": {"ID": "xyz789"}}`, then
|
|
689
689
|
`GlobalState.Cookies.SessionID` is set to `"xyz789"`.
|
|
690
690
|
|
|
691
|
-
Nested paths are supported
|
|
691
|
+
Nested paths are supported -- the address walks the JSON structure
|
|
692
692
|
using dot-separated keys.
|
|
693
693
|
|
|
694
694
|
#### CaptureHeader
|
|
@@ -1267,9 +1267,9 @@ Tasks within a set execute sequentially in array order.
|
|
|
1267
1267
|
```
|
|
1268
1268
|
1. onBefore[0], onBefore[1], ... (always runs)
|
|
1269
1269
|
2. Core task execution
|
|
1270
|
-
3. If success
|
|
1271
|
-
If failure
|
|
1272
|
-
If error
|
|
1270
|
+
3. If success -> onCompletion[0], onCompletion[1], ...
|
|
1271
|
+
If failure -> onFailure[0], onFailure[1], ...
|
|
1272
|
+
If error -> onError[0], onError[1], ...
|
|
1273
1273
|
4. onSubsequent[0], onSubsequent[1], ... (always runs)
|
|
1274
1274
|
```
|
|
1275
1275
|
|
|
@@ -8,10 +8,10 @@ Ultravisor's universal addressing system provides a single, human-readable schem
|
|
|
8
8
|
>BeaconName/Context/Path/to/resource
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
- **`>`**
|
|
12
|
-
- **BeaconName**
|
|
13
|
-
- **Context**
|
|
14
|
-
- **Path**
|
|
11
|
+
- **`>`** -- Prefix indicating a universal address
|
|
12
|
+
- **BeaconName** -- Human-readable beacon name (e.g., `retold-remote`, `orator-conversion`)
|
|
13
|
+
- **Context** -- A named namespace on the beacon (e.g., `File`, `Cache`, `Staging`)
|
|
14
|
+
- **Path** -- Resource path within the context
|
|
15
15
|
|
|
16
16
|
### Examples
|
|
17
17
|
|
|
@@ -36,7 +36,7 @@ sequenceDiagram
|
|
|
36
36
|
RA->>BC: resolveUniversalAddress(address)
|
|
37
37
|
BC->>BC: Parse: beacon="retold-remote", context="File", path="photo.jpg"
|
|
38
38
|
BC->>BC: findBeaconByName("retold-remote")
|
|
39
|
-
BC->>BC: Look up Context "File"
|
|
39
|
+
BC->>BC: Look up Context "File" -> BaseURL
|
|
40
40
|
BC-->>RA: { URL, BeaconID, BeaconName, Context, Path, Filename }
|
|
41
41
|
|
|
42
42
|
alt RequestingBeaconID provided
|
|
@@ -50,11 +50,11 @@ sequenceDiagram
|
|
|
50
50
|
|
|
51
51
|
### Resolution Steps
|
|
52
52
|
|
|
53
|
-
1. **Parse**
|
|
54
|
-
2. **Beacon Lookup**
|
|
55
|
-
3. **Context Lookup**
|
|
56
|
-
4. **URL Construction**
|
|
57
|
-
5. **Strategy Resolution** (optional)
|
|
53
|
+
1. **Parse** -- Strip the `>` prefix, split into `BeaconName/Context/Path`
|
|
54
|
+
2. **Beacon Lookup** -- Find the beacon by name (or ID) in the coordinator's registry
|
|
55
|
+
3. **Context Lookup** -- Retrieve the context definition from the beacon record (contains `BaseURL`, `BasePath`, `Writable`, `Description`)
|
|
56
|
+
4. **URL Construction** -- Combine `BaseURL` with URL-encoded path segments
|
|
57
|
+
5. **Strategy Resolution** (optional) -- If `RequestingBeaconID` is provided, consult the reachability matrix to determine the best transfer strategy
|
|
58
58
|
|
|
59
59
|
## Contexts
|
|
60
60
|
|
|
@@ -79,7 +79,7 @@ beacon.registerContext('File', {
|
|
|
79
79
|
|
|
80
80
|
## Operations as Universal Data Locators
|
|
81
81
|
|
|
82
|
-
Operation pipelines use universal addresses as their primary input mechanism. When a caller triggers an operation, it passes addresses as parameters
|
|
82
|
+
Operation pipelines use universal addresses as their primary input mechanism. When a caller triggers an operation, it passes addresses as parameters -- the operation graph handles resolution, transfer, processing, and result delivery automatically.
|
|
83
83
|
|
|
84
84
|
```mermaid
|
|
85
85
|
graph LR
|
|
@@ -90,7 +90,7 @@ graph LR
|
|
|
90
90
|
E -->|Binary stream| F[Caller]
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
-
This decouples the caller from knowing where files are or how to reach them. The address `>retold-remote/File/photo.jpg` works whether the beacon is on localhost, across a LAN, or behind a proxy
|
|
93
|
+
This decouples the caller from knowing where files are or how to reach them. The address `>retold-remote/File/photo.jpg` works whether the beacon is on localhost, across a LAN, or behind a proxy -- the resolve-address card and reachability matrix handle the routing.
|
|
94
94
|
|
|
95
95
|
## resolve-address Card Reference
|
|
96
96
|
|
package/docs/index.html
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
7
|
-
<meta name="description" content="Documentation
|
|
7
|
+
<meta name="description" content="Ultravisor v1.0.21 Documentation — Cyclic process execution with ai integration.">
|
|
8
8
|
|
|
9
|
-
<title>Documentation</title>
|
|
9
|
+
<title>Ultravisor v1.0.21 Documentation</title>
|
|
10
10
|
|
|
11
11
|
<!-- Application Stylesheet -->
|
|
12
12
|
<link href="css/docuserve.css" rel="stylesheet">
|
package/docs/retold-catalog.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"Generated": "2026-
|
|
2
|
+
"Generated": "2026-04-10T17:13:49.181Z",
|
|
3
3
|
"GitHubOrg": "stevenvelozo",
|
|
4
4
|
"DefaultBranch": "master",
|
|
5
5
|
"Groups": [
|
|
@@ -263,6 +263,22 @@
|
|
|
263
263
|
"Title": "Building Beacon Providers",
|
|
264
264
|
"Path": "features/beacon-providers.md"
|
|
265
265
|
},
|
|
266
|
+
{
|
|
267
|
+
"Title": "Beacon Authentication",
|
|
268
|
+
"Path": "features/beacon-authentication.md"
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"Title": "Universal Addressing",
|
|
272
|
+
"Path": "features/universal-addressing.md"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"Title": "Reachability Matrix",
|
|
276
|
+
"Path": "features/reachability-matrix.md"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"Title": "Platform Cards",
|
|
280
|
+
"Path": "features/platform-cards.md"
|
|
281
|
+
},
|
|
266
282
|
{
|
|
267
283
|
"Title": "LLM Integration",
|
|
268
284
|
"Path": "features/llm.md"
|
|
@@ -342,6 +358,15 @@
|
|
|
342
358
|
"Path": "features/configuration.md"
|
|
343
359
|
}
|
|
344
360
|
]
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"Title": "Case Studies",
|
|
364
|
+
"Children": [
|
|
365
|
+
{
|
|
366
|
+
"Title": "retold-remote + orator-conversion",
|
|
367
|
+
"Path": "features/case-study-retold-remote.md"
|
|
368
|
+
}
|
|
369
|
+
]
|
|
345
370
|
}
|
|
346
371
|
],
|
|
347
372
|
"DocFiles": [
|
|
@@ -357,12 +382,15 @@
|
|
|
357
382
|
"features/beacon-providers.md",
|
|
358
383
|
"features/beacons.md",
|
|
359
384
|
"features/capabilities.md",
|
|
385
|
+
"features/case-study-retold-remote.md",
|
|
360
386
|
"features/cli.md",
|
|
361
387
|
"features/configuration.md",
|
|
362
388
|
"features/llm-model-setup.md",
|
|
363
389
|
"features/llm.md",
|
|
364
390
|
"features/manifests.md",
|
|
365
391
|
"features/operations.md",
|
|
392
|
+
"features/platform-cards.md",
|
|
393
|
+
"features/reachability-matrix.md",
|
|
366
394
|
"features/scheduling.md",
|
|
367
395
|
"features/tasks-content-system.md",
|
|
368
396
|
"features/tasks-data-transform.md",
|
|
@@ -374,6 +402,7 @@
|
|
|
374
402
|
"features/tasks-meadow-api.md",
|
|
375
403
|
"features/tasks-user-interaction.md",
|
|
376
404
|
"features/tasks.md",
|
|
405
|
+
"features/universal-addressing.md",
|
|
377
406
|
"index.html",
|
|
378
407
|
"overview.md",
|
|
379
408
|
"quickstart.md",
|