@uipath/packager-tool-workflowcompiler-browser 1.199.0 → 1.200.0-preview.117

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/dist/index.js CHANGED
@@ -585,6 +585,7 @@ import {
585
585
 
586
586
  // src/project-bundle-executor.ts
587
587
  import {
588
+ PackJobTargetKind,
588
589
  ToolErrorCodes as ToolErrorCodes2,
589
590
  ToolResult as ToolResult2,
590
591
  toRelativeUrl as toRelativeUrl2,
@@ -1066,8 +1067,9 @@ class ProjectBundleExecutor {
1066
1067
  }
1067
1068
  async sendBeginSessionAsync(session, context, connection, sessionId) {
1068
1069
  const relativeBase = toRelativeUrl2(connection.cloudUrl);
1069
- const url = `${relativeBase}/orchestrator_/api/serverless/jobs`;
1070
- context.logger?.info(`[BundleExecutor] BeginSession URL: ${url}`);
1070
+ const onLocalRobot = context.jobTarget?.kind === PackJobTargetKind.LocalRobot;
1071
+ const url = onLocalRobot ? `${relativeBase}/orchestrator_/api/RobotDebug/BeginSession` : `${relativeBase}/orchestrator_/api/serverless/jobs`;
1072
+ context.logger?.info(`[BundleExecutor] BeginSession URL: ${url} (target=${context.jobTarget?.kind ?? PackJobTargetKind.Serverless})`);
1071
1073
  const firstEntry = session.projects.values().next().value;
1072
1074
  const opts = firstEntry.options;
1073
1075
  const skipAnalyze = "skipAnalyze" in opts ? opts.skipAnalyze : false;
@@ -1130,7 +1132,17 @@ class ProjectBundleExecutor {
1130
1132
  }
1131
1133
  }
1132
1134
  const inputArguments = JSON.stringify(executorInfo);
1133
- const body = {
1135
+ const body = onLocalRobot ? {
1136
+ source: "StudioWeb",
1137
+ targetFramework: context.targetFramework,
1138
+ runtimeType: "Development",
1139
+ runAsMe: true,
1140
+ jobsCount: 1,
1141
+ strategy: "ModernJobsCount",
1142
+ ...context.jobTarget?.machineSessionIds?.length ? {
1143
+ machineSessionIds: context.jobTarget.machineSessionIds
1144
+ } : {}
1145
+ } : {
1134
1146
  source: "StudioWeb",
1135
1147
  targetFramework: context.targetFramework,
1136
1148
  jobType: "PublishStudioProject"
@@ -1278,4 +1290,4 @@ export {
1278
1290
  WorkflowCompilerToolFactory
1279
1291
  };
1280
1292
 
1281
- //# debugId=3B5A7D9039EF896764756E2164756E21
1293
+ //# debugId=CCFBB308D750D06C64756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uipath/packager-tool-workflowcompiler-browser",
3
- "version": "1.199.0",
3
+ "version": "1.200.0-preview.117",
4
4
  "description": "UiPath Workflow Compiler tool - browser implementation",
5
5
  "type": "module",
6
6
  "exports": {
@@ -25,8 +25,8 @@
25
25
  "author": "",
26
26
  "license": "ISC",
27
27
  "peerDependencies": {
28
- "@uipath/solutionpackager-tool-core": "1.199.0",
28
+ "@uipath/solutionpackager-tool-core": "1.200.0",
29
29
  "@microsoft/signalr": ">=7 <11"
30
30
  },
31
- "gitHead": "723e6801b77b5926ba75e75b6a756cc38b1b7adc"
31
+ "gitHead": "5ba432ca14252784a1e20c03f5a858a5ae39746e"
32
32
  }
@@ -6,6 +6,7 @@ import {
6
6
  type IProjectToolFactory,
7
7
  type IProjectValidateOptions,
8
8
  type IToolLogger,
9
+ PackJobTargetKind,
9
10
  type ProjectOperationContext,
10
11
  ToolErrorCodes,
11
12
  ToolResult,
@@ -498,10 +499,19 @@ export class ProjectBundleExecutor implements IProjectBundleExecutor {
498
499
  sessionId: string,
499
500
  ): Promise<void> {
500
501
  const relativeBase = toRelativeUrl(connection.cloudUrl!);
501
- const url = `${relativeBase}/orchestrator_/api/serverless/jobs`;
502
- //const url = `${relativeBase}/orchestrator_/api/RobotDebug/BeginSession`;
502
+ const onLocalRobot =
503
+ context.jobTarget?.kind === PackJobTargetKind.LocalRobot;
504
+ // Two different job-creation APIs, not one endpoint with a flag: the serverless
505
+ // endpoint forces RuntimeType=Serverless and takes no machine targeting, while
506
+ // BeginSession takes the runtime/machine fields but no jobType. The agent behaves
507
+ // the same either way — it dispatches on Command in the input arguments.
508
+ const url = onLocalRobot
509
+ ? `${relativeBase}/orchestrator_/api/RobotDebug/BeginSession`
510
+ : `${relativeBase}/orchestrator_/api/serverless/jobs`;
503
511
 
504
- context.logger?.info(`[BundleExecutor] BeginSession URL: ${url}`);
512
+ context.logger?.info(
513
+ `[BundleExecutor] BeginSession URL: ${url} (target=${context.jobTarget?.kind ?? PackJobTargetKind.Serverless})`,
514
+ );
505
515
 
506
516
  const firstEntry = session.projects.values().next().value!;
507
517
  const opts = firstEntry.options;
@@ -585,13 +595,31 @@ export class ProjectBundleExecutor implements IProjectBundleExecutor {
585
595
 
586
596
  const inputArguments = JSON.stringify(executorInfo);
587
597
 
588
- const body: Record<string, unknown> = {
589
- source: "StudioWeb",
590
- targetFramework: context.targetFramework,
591
- jobType: "PublishStudioProject",
592
- };
593
-
594
- // The serverless jobs endpoint caps inline inputArguments at
598
+ const body: Record<string, unknown> = onLocalRobot
599
+ ? {
600
+ source: "StudioWeb",
601
+ targetFramework: context.targetFramework,
602
+ // Development runtime + runAsMe is what confines the job to this
603
+ // user's own machines; without both, Orchestrator is free to
604
+ // schedule it anywhere. Mirrors StudioWeb debug's payload.
605
+ runtimeType: "Development",
606
+ runAsMe: true,
607
+ jobsCount: 1,
608
+ strategy: "ModernJobsCount",
609
+ ...(context.jobTarget?.machineSessionIds?.length
610
+ ? {
611
+ machineSessionIds:
612
+ context.jobTarget.machineSessionIds,
613
+ }
614
+ : {}),
615
+ }
616
+ : {
617
+ source: "StudioWeb",
618
+ targetFramework: context.targetFramework,
619
+ jobType: "PublishStudioProject",
620
+ };
621
+
622
+ // Both job endpoints cap inline inputArguments at
595
623
  // MAX_INLINE_INPUT_ARGUMENTS_LENGTH characters. For larger payloads we
596
624
  // upload the arguments as a file attachment and reference it via
597
625
  // inputFile instead (the two are mutually exclusive on the server).