@uipath/packager-remote-agent-browser 0.0.0-stage → 1.205.0-preview.258
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/LICENSE.txt +3 -0
- package/README.md +32 -2
- package/dist/THIRD-PARTY-NOTICES.md +8 -0
- package/dist/bundle-operation.d.ts +9 -0
- package/dist/i18n/index.d.ts +7 -0
- package/dist/i18n/locales/en.d.ts +48 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +1523 -0
- package/dist/pack-result-processor.d.ts +17 -0
- package/dist/packager-hub-connection.d.ts +37 -0
- package/dist/remote-agent-bundle-executor.d.ts +103 -0
- package/dist/remote-agent-project-tool.d.ts +41 -0
- package/dist/remote-project-selector.d.ts +33 -0
- package/package.json +27 -5
package/LICENSE.txt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
© 2026 UiPath
|
|
2
|
+
Use of this product is subject (a) to the applicable licensing agreement available: https://www.uipath.com/legal/trust-and-security/legal-terms#content-1 and, (b) for paid products listed here https://licensing.uipath.com/: the licensing agreement agreed between you and UiPath.
|
|
3
|
+
(UiPath means UiPath SRL with headquarters at 4 Vasile Alecsandri Str. and 11 Constantin Daniel Str., Building A, floors 5 and 6, District 1, Bucharest 010639, Romania and UiPath Inc. with principal place of business: One Vanderbilt Avenue, 60th Floor, New York, NY 10017)
|
package/README.md
CHANGED
|
@@ -1,3 +1,33 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @uipath/packager-remote-agent-browser
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Sends the projects a browser packer cannot pack itself to the UiPath Remote Agent, and gets their packages back. One Orchestrator job handles every such project of a pack, whatever its type.
|
|
4
|
+
|
|
5
|
+
Browser tools use this package; consumers don't call it directly:
|
|
6
|
+
|
|
7
|
+
| Tool package | Factory | Project types |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| `@uipath/packager-tool-workflowcompiler-browser` | `WorkflowCompilerToolFactory` | Process, Library, Tests, WebApp |
|
|
10
|
+
| `@uipath/packager-tool-functions-browser` | `RemoteFunctionsToolFactory` | Function |
|
|
11
|
+
| `@uipath/packager-tool-codedapps-browser` | `RemoteCodedAppsToolFactory` | AppV2 |
|
|
12
|
+
|
|
13
|
+
## How it works
|
|
14
|
+
|
|
15
|
+
1. The solution packager calls `packAsync` on every project at once. Each remote tool hands its project to the **shared** `RemoteAgentBundleExecutor` (`getSharedRemoteAgentBundleExecutor`).
|
|
16
|
+
2. The executor waits until every remote project of the operation context has arrived. `RemoteProjectSelector` picks them from the shared tools-factory registry: a project counts when the factory that won its type is marked `delegatesToRemoteAgent`. This holds for pack, validate and cleanup alike.
|
|
17
|
+
3. It opens the `robotdebug` SignalR hub, then starts **one** job: serverless `api/serverless/jobs`, or `RobotDebug/BeginSession` for a local robot. The command goes in the job's input arguments.
|
|
18
|
+
4. The agent downloads the snapshot, packs each project into `<DesignId>/`, uploads `rpa-packages.zip` to a temporary bucket, and reports `SetExecutionCompleted { BucketId, ArchiveName }`.
|
|
19
|
+
5. The executor downloads the archive named by `ArchiveName` (`rpa-packages.zip` when an older agent does not send it), copies each project's packages into its output folder, and deletes the bucket.
|
|
20
|
+
|
|
21
|
+
## Job payload
|
|
22
|
+
|
|
23
|
+
The agent routes by payload list, not by project type. The session keeps its remote projects in solution order; Function projects go to `FunctionProjects`, coded app (AppV2) projects to `CodedAppProjects`, and the rest (the RPA types `WorkflowCompilerToolFactory` claims) to `RpaProjects`. Each list comes with the field that pins the packager the agent restores, and a list and its version field are sent only when the list has projects; the agent defaults a missing list to empty:
|
|
24
|
+
|
|
25
|
+
| Project types | List | Version field |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| Process, Library, Tests, WebApp | `RpaProjects` | `WorkflowCompilerVersion` |
|
|
28
|
+
| Function | `FunctionProjects` | `FunctionsPackagerVersion` |
|
|
29
|
+
| AppV2 (coded apps) | `CodedAppProjects` | `CodedAppsPackagerVersion` |
|
|
30
|
+
|
|
31
|
+
Every payload asks for protocol `2.0`. A new list does not bump the version: an agent that refuses a version fails before it connects to the hub, so the browser would wait with no signal. An agent that does not know a list ignores it and packs the rest. Each project it skipped then fails when the result arrives, because the zip has no `<DesignId>/` folder for it: "The remote agent returned no package for …".
|
|
32
|
+
|
|
33
|
+
The agent side lives in the Studio repo: `Robot/UiPath.RemoteDebugging.Agent/Packager`. See `REMOTE-PACK-FUNCTIONS.md` there.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Third-party notices for @uipath/packager-remote-agent-browser
|
|
2
|
+
|
|
3
|
+
This package is distributed as a bundle: the dependencies below are
|
|
4
|
+
compiled into its `dist/` output rather than installed alongside it.
|
|
5
|
+
Their licences and copyright notices are reproduced here in full, as
|
|
6
|
+
those licences require.
|
|
7
|
+
|
|
8
|
+
No third-party code is bundled into this package.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* English translations for the packager-remote-agent-browser package.
|
|
3
|
+
* These translations are registered alongside core translations via I18nManager.
|
|
4
|
+
*/
|
|
5
|
+
export declare const en: {
|
|
6
|
+
readonly remoteAgentBrowser: {
|
|
7
|
+
readonly info: {
|
|
8
|
+
readonly startingRemoteAgent: "Starting remote {operation} agent for {count} project(s): {paths}";
|
|
9
|
+
readonly connectingToHub: "Connecting to SignalR hub: {url}";
|
|
10
|
+
readonly remoteAgentStartedExecution: "Remote agent started execution";
|
|
11
|
+
readonly downloadingArchive: "Downloading pack result archive from bucket {bucketId}";
|
|
12
|
+
readonly extractingArchive: "Extracting archive ({size} bytes) to {path}";
|
|
13
|
+
readonly distributingPackages: "Distributing packages for {count} project(s)";
|
|
14
|
+
readonly skippingRemoteCompilation: "No connection info available — skipping remote compilation for workflow compiler projects";
|
|
15
|
+
readonly cleaningUpTempDir: "Cleaning up temporary directory {path}";
|
|
16
|
+
readonly deletingBucket: "Deleting temporary storage bucket {bucketId}";
|
|
17
|
+
readonly copyingFiles: "Copying {count} file(s) for project {designId} to {path}";
|
|
18
|
+
readonly offloadingInputArguments: "Input arguments are too large ({length} chars) to send inline; uploading them as a file attachment";
|
|
19
|
+
};
|
|
20
|
+
readonly errors: {
|
|
21
|
+
readonly missingConnectionInfo: "Missing connection info (cloudUrl, accessToken, or folderId)";
|
|
22
|
+
readonly signalRConnectionFailed: "Failed to connect to SignalR hub";
|
|
23
|
+
readonly hubConnectionFailed: "Failed to connect to SignalR hub at {url}: {message}";
|
|
24
|
+
readonly packSucceededNoBucket: "Pack succeeded but no BucketId was returned";
|
|
25
|
+
readonly agentFailed: "{operation} agent failed with status {status} (code {errorCode})";
|
|
26
|
+
readonly noResultForProject: "No result for project";
|
|
27
|
+
readonly beginSessionFailed: "BeginSession failed ({status}): {errorText}";
|
|
28
|
+
readonly hubConnectionClosed: "Hub connection closed unexpectedly";
|
|
29
|
+
readonly packAgentDisconnected: "Pack agent disconnected unexpectedly";
|
|
30
|
+
readonly deleteBucketFailed: "Unable to delete temporary storage bucket on Orchestrator: {statusText}";
|
|
31
|
+
readonly cleanupBucketFailed: "Unable to cleanup remote bucket {bucketId}: {message}";
|
|
32
|
+
readonly getBucketUriFailed: "Failed to get bucket read URI ({status}): {errorText}";
|
|
33
|
+
readonly downloadArchiveUnreachable: "Could not download the pack result from {host}: {message}. The agent finished; the browser could not reach the result storage, most often because it does not allow this page's origin (CORS).";
|
|
34
|
+
readonly downloadArchiveFailed: "Failed to download archive from bucket ({status}): {statusText}";
|
|
35
|
+
readonly noMatchingProject: "No matching project found for path: {projectPath}";
|
|
36
|
+
readonly noPackageFromAgent: "The remote agent returned no package for {project} ({projectType}, design {designId}). An agent that does not pack {projectType} projects skips them.";
|
|
37
|
+
readonly distributePackagesFailed: "Failed to distribute packages for {designId}: {message}";
|
|
38
|
+
readonly sessionTimeout: "Session timed out waiting for projects: received {received} of {expected} expected projects";
|
|
39
|
+
readonly jobStartTimeout: "The remote agent job {jobKey} was still pending after {minutes} minute(s): no robot picked it up, so it was stopped. Check that a robot or serverless capacity is available in the folder and retry.";
|
|
40
|
+
readonly bundleOperationMismatch: "Cannot mix {sessionOperation} and {entryOperation} in the same context";
|
|
41
|
+
readonly createAttachmentFailed: "Failed to create input arguments attachment ({status}): {errorText}";
|
|
42
|
+
readonly attachmentResponseMalformed: "Attachment creation response did not include an id and blob URI";
|
|
43
|
+
readonly uploadInputArgumentsFailed: "Failed to upload input arguments file ({status}): {statusText}";
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
/** @public */
|
|
48
|
+
export type TranslationKeys = typeof en;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import "./i18n/index.js";
|
|
2
|
+
export { BundleOperation } from "./bundle-operation.js";
|
|
3
|
+
export { getSharedRemoteAgentBundleExecutor, type IRemoteAgentBundleExecutor, } from "./remote-agent-bundle-executor.js";
|
|
4
|
+
export { RemoteAgentProjectTool, RemoteAgentProjectToolFactory, } from "./remote-agent-project-tool.js";
|
|
5
|
+
export type { IRemoteAgentToolFactory } from "./remote-project-selector.js";
|