@uipath/maestro-builder-sdk 6.42.0 → 6.44.0

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.
Files changed (61) hide show
  1. package/dist/api-index.md +104 -103
  2. package/dist/api-members.md +319 -317
  3. package/dist/check.d.ts +0 -19
  4. package/dist/check.js +140 -1042
  5. package/dist/compile-cli.js +2 -1
  6. package/dist/core/actions.d.ts +10 -713
  7. package/dist/core/actions.js +0 -193
  8. package/dist/core/agent-sidecar.d.ts +186 -0
  9. package/dist/core/agent-sidecar.js +409 -0
  10. package/dist/core/agent-tool-resources.d.ts +62 -0
  11. package/dist/core/agent-tool-resources.js +81 -0
  12. package/dist/{config.js → core/connector-configuration.js} +2 -2
  13. package/dist/core/form-field-type.d.ts +7 -0
  14. package/dist/core/form-field-type.js +12 -2
  15. package/dist/core/node-id-placeholder.d.ts +8 -0
  16. package/dist/core/node-id-placeholder.js +10 -0
  17. package/dist/core/ts-literal.d.ts +6 -0
  18. package/dist/core/ts-literal.js +15 -0
  19. package/dist/core/typed-raw-node.js +0 -5
  20. package/dist/decompile.js +239 -857
  21. package/dist/flow-expr-check.js +5 -0
  22. package/dist/flow-node-registry.js +2 -1
  23. package/dist/flow-node-type.d.ts +139 -6
  24. package/dist/flow-sdk.d.ts +41 -5
  25. package/dist/flow-sdk.js +15 -1
  26. package/dist/flow-step-variables.d.ts +4 -0
  27. package/dist/flow-step-variables.js +22 -0
  28. package/dist/loop-version.d.ts +23 -6
  29. package/dist/loop-version.js +37 -15
  30. package/dist/nodes/agent/flow/check.d.ts +88 -0
  31. package/dist/nodes/agent/flow/check.js +873 -0
  32. package/dist/nodes/agent/flow/factories.d.ts +134 -0
  33. package/dist/nodes/agent/flow/factories.js +143 -0
  34. package/dist/nodes/agent/flow/family.d.ts +3 -0
  35. package/dist/nodes/agent/flow/family.js +8 -0
  36. package/dist/nodes/agent/flow/index.d.ts +3 -0
  37. package/dist/nodes/agent/flow/index.js +3 -0
  38. package/dist/nodes/agent/flow/inline-agent-lift.d.ts +44 -0
  39. package/dist/nodes/agent/flow/inline-agent-lift.js +572 -0
  40. package/dist/nodes/agent/flow/inline-agent.d.ts +15 -0
  41. package/dist/nodes/agent/flow/inline-agent.js +526 -0
  42. package/dist/nodes/agent/flow/node-type.d.ts +20 -0
  43. package/dist/nodes/agent/flow/node-type.js +422 -0
  44. package/dist/nodes/agent/flow/resources.d.ts +502 -0
  45. package/dist/nodes/agent/flow/resources.js +1409 -0
  46. package/dist/nodes/agent/flow/spec.d.ts +448 -0
  47. package/dist/nodes/agent/flow/spec.js +1 -0
  48. package/dist/nodes/hitl/flow/check.js +15 -0
  49. package/dist/nodes/hitl/flow/node-type.js +18 -3
  50. package/dist/nodes/process/flow/check.d.ts +40 -2
  51. package/dist/nodes/process/flow/check.js +156 -0
  52. package/dist/nodes/process/flow/factories.d.ts +58 -3
  53. package/dist/nodes/process/flow/factories.js +59 -2
  54. package/dist/nodes/process/flow/node-type.d.ts +4 -1
  55. package/dist/nodes/process/flow/node-type.js +198 -12
  56. package/dist/nodes/process/flow/spec.d.ts +112 -5
  57. package/dist/serialize.d.ts +9 -54
  58. package/dist/serialize.js +102 -2777
  59. package/package.json +2 -2
  60. /package/dist/{config.d.ts → core/connector-configuration.d.ts} +0 -0
  61. /package/dist/{ixp-definition.json → core/ixp-definition.json} +0 -0
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * The process family's authoring types — an RPA process (`uipath.core.rpa-workflow.<key>`),
3
3
  * an API workflow (`uipath.core.api-workflow.<key>`), a published function
4
- * (`uipath.core.function.<key>`) and an agentic process (`uipath.core.agentic-process.<key>`,
5
- * `uipath.core.flow.<key>`, `uipath.core.case-management.<key>`) — and their kinds'
6
- * entries in `FlowActionSpecs`. Moved from core/actions.ts in Phase 4 of
7
- * docs/NODE_TYPE_ARCHITECTURE_DESIGN.md. `ProcessLocation` stays in core: the
8
- * agent shares it.
4
+ * (`uipath.core.function.<key>`), an agentic process (`uipath.core.agentic-process.<key>`,
5
+ * `uipath.core.flow.<key>`, `uipath.core.case-management.<key>`) and a published agent
6
+ * (`uipath.core.agent.<key>`) — and their kinds' entries in `FlowActionSpecs`. Moved
7
+ * from core/actions.ts in Phase 4 of docs/NODE_TYPE_ARCHITECTURE_DESIGN.md.
8
+ * `ProcessLocation` stays in core: `core/process-resource.ts` reads it.
9
9
  */
10
10
  import type { ProcessLocation, ReturnFieldType } from '../../../core/actions.js';
11
11
  export interface RpaWorkflowInputs {
@@ -232,6 +232,109 @@ export type AgenticProcessCompletion = {
232
232
  };
233
233
  /** What `agenticProcess()` takes: the shared fields plus the completion policy. */
234
234
  export type AgenticProcessInputs = AgenticProcessInputsBase & AgenticProcessCompletion;
235
+ /**
236
+ * Which KIND of agent project was published behind a `uipath.core.agent.<key>`
237
+ * resource. Display-only — see {@link AgentInputs.flavour}.
238
+ */
239
+ export type AgentFlavour = 'coded' | 'lowcode';
240
+ /** Where a published agent lives: deployed to a folder (`'published'`) or a sibling project of the same solution (`'in-solution'`). */
241
+ export type AgentLocation = ProcessLocation;
242
+ /** What `agent()` takes: the agent resource to start, its arguments, and the output fields a read may name. */
243
+ export interface AgentInputs {
244
+ /**
245
+ * The agent resource key (a GUID). It becomes the node's TYPE,
246
+ * `uipath.core.agent.<key>`. For a published agent this is the Orchestrator
247
+ * release key; for an in-solution sibling it is `resource.key` from
248
+ * `resources/solution_folder/process/agent/<project>.json`.
249
+ *
250
+ * Find it with `uip or processes list --all-folders --process-type Agent` (an agent's
251
+ * `ProcessKey` reads `<project>.agent.<name>`; the GUID you want is the row's
252
+ * **`Key`**) or `uip maestro flow registry search uipath.core.agent`.
253
+ *
254
+ * Pass `--limit`: `--all-folders` returns 50 rows and reports the truncation
255
+ * only in `Pagination.HasMore`, so an agent that exists can look absent.
256
+ */
257
+ key: string;
258
+ /** The agent project name. */
259
+ name: string;
260
+ /**
261
+ * Where the referenced agent lives. Published is the backward-compatible
262
+ * default. Use `in-solution` only after registering a sibling agent project
263
+ * with `uip solution projects add`.
264
+ */
265
+ location?: AgentLocation;
266
+ /**
267
+ * The Orchestrator folder holding it — e.g.
268
+ * `'Shared/uipath-maestro-flow/CountLetters LowCode'`.
269
+ *
270
+ * **Not optional, and not cosmetic.** Agent names are unique per FOLDER, not per
271
+ * tenant: `codereval/DefaultTenant` carries two agents called `CountLetters`,
272
+ * one in `Shared` and one in `Shared/uipath-maestro-flow/CountLetters CodedAgent`,
273
+ * with different release keys. The release is resolved by listing THIS
274
+ * folder, so the folder is what picks the agent you meant. Required for a
275
+ * published agent; omit it for an in-solution sibling.
276
+ */
277
+ folderPath?: string;
278
+ /**
279
+ * The sibling agent project's `resource.projectKey`, read from
280
+ * `resources/solution_folder/process/agent/<project>.json`. Required only
281
+ * when `location` is `in-solution`.
282
+ */
283
+ projectId?: string;
284
+ /**
285
+ * The AGENT's own input arguments, by its own argument names (e.g.
286
+ * `{ inputString: 'arrow' }`). Every agent declares its own — read them from
287
+ * `uip maestro flow registry get uipath.core.agent.<agent>` under
288
+ * `inputDefinition.properties`.
289
+ *
290
+ * **Required, unlike the other job families' `inputs`.** An agent node with
291
+ * nothing bound is one the platform REWRITES behind your back: flow-v1's
292
+ * `applyEmptyInputFloor` seeds `JobArguments: { input: <empty-for-declared-type> }`
293
+ * — a key named `input`, which is not in the agent's own schema unless the agent
294
+ * happens to declare one — because the Python agent runner validates the body
295
+ * against a schema with a required `input` field and rejects a bare `{}` with
296
+ * *"Field required: input"* (the pod then exits `0x33`). Locally the envelope
297
+ * passes straight through and the run is green, so nothing but a checker can see
298
+ * it. Pass `{}` explicitly if you really mean "no arguments" and `check` will
299
+ * tell you what the platform will do with it.
300
+ */
301
+ inputs: Record<string, unknown>;
302
+ /**
303
+ * The agent's OUTPUT fields and their types (e.g.
304
+ * `{ count: 'integer', inputString: 'string' }`). Required if anything reads the
305
+ * step's output, for the same reason as `rpaWorkflow`'s: the schema lives on the
306
+ * tenant and authoring happens offline, so an undeclared read is rejected —
307
+ * rightly, since nothing offline could tell a real field from a typo.
308
+ *
309
+ * `uip maestro flow registry get uipath.core.agent.<agent>` shows what the
310
+ * platform declares, under `outputDefinition.output.schema.properties`.
311
+ *
312
+ * **Case matters.** The agent answers with the field names its own definition
313
+ * declares (`count`, not `Count`). It used to be a live-only trap: a poller that
314
+ * read the job through `uip agent run status` got a PascalCased envelope, so a
315
+ * read of `count` was right offline and `undefined` live (flow-builder-sdk #122).
316
+ * Declare the names the definition declares.
317
+ *
318
+ * @enforcedBy AGENT_READ_WITHOUT_RETURNS Reading a field off the result requires
319
+ * declaring it here.
320
+ */
321
+ returns?: Record<string, ReturnFieldType>;
322
+ /**
323
+ * Whether the published resource is a CODED agent project (LangGraph /
324
+ * LlamaIndex / OpenAI Agents) or a low-code one built in Agent Builder.
325
+ *
326
+ * **Display-only, and it is the only thing that differs.** `registry get` on a
327
+ * coded and a low-code agent returns the same node type, the same
328
+ * `Orchestrator.StartAgentJob` service type, the same `sortOrder` and the
329
+ * same bindings shape; the single difference is `display.icon` —
330
+ * `coded-agent` vs `autonomous-agent`. Which one a given resource is cannot be
331
+ * known offline, so it is stated here rather than guessed. Check with
332
+ * `uip maestro flow registry get uipath.core.agent.<agent>` → `display.icon`.
333
+ *
334
+ * Defaults to `'lowcode'`. Nothing in the runtime keys on it.
335
+ */
336
+ flavour?: AgentFlavour;
337
+ }
235
338
  declare module '../../../core/actions.js' {
236
339
  interface FlowActionSpecs {
237
340
  /** The spec {@link rpaWorkflow} builds. */
@@ -250,6 +353,10 @@ declare module '../../../core/actions.js' {
250
353
  agenticProcess: {
251
354
  inputs: AgenticProcessInputs;
252
355
  };
356
+ /** The spec {@link agent} builds. */
357
+ agent: {
358
+ inputs: AgentInputs;
359
+ };
253
360
  }
254
361
  }
255
362
  export {};
@@ -13,31 +13,6 @@ import { connectorInputErrors as coreConnectorInputErrors } from './core/connect
13
13
  * dropping it would make `check` quietly accept what `compile` throws on.
14
14
  */
15
15
  export declare function connectorInputErrors(rc: Parameters<typeof coreConnectorInputErrors>[0], inputs: Record<string, unknown>, resolutions?: Parameters<typeof coreConnectorInputErrors>[2], lookups?: Parameters<typeof coreConnectorInputErrors>[3]): string | undefined;
16
- /**
17
- * Every tool resource identity `compile` writes, read off the tables its
18
- * writers use — so a tool kind cannot be written without being owned, or owned
19
- * without being written (#935: the #920 built-in files were written as
20
- * `internal` and never pruned, because ownership was a hand-kept list in
21
- * `compile-cli.ts` that did not have them).
22
- *
23
- * * `types` — the resource `type`s compile owns OUTRIGHT: every deployed-resource
24
- * kind's, and `integration` (connector tools, since #867).
25
- * * `internalToolTypes` — `internal` is shared with designer-only built-ins
26
- * (`load-attachments`, `create-file`, `jev-classifier`), so for it ownership
27
- * is the `properties.toolType`, and only the ones compile writes.
28
- */
29
- export declare const COMPILE_WRITTEN_TOOL_RESOURCES: {
30
- readonly types: ReadonlySet<string>;
31
- readonly internalToolTypes: ReadonlySet<string>;
32
- };
33
- /**
34
- * Does `compile` own this `resources/<id>/resource.json` — would a compile have
35
- * written it, so one this compile did not write is stale rather than someone
36
- * else's? Everything it says no to belongs to the designer or to `uip agent
37
- * refresh` (escalation, mcp, designer-only built-ins, the kinds the SDK cannot
38
- * derive), and is never deleted.
39
- */
40
- export declare function compileOwnsResource(body: Record<string, unknown> | undefined): boolean;
41
16
  /**
42
17
  * A compile-time observation that does not stop emission. `check()` has its
43
18
  * diagnostics; this is the serializer's own channel for things it can only see
@@ -129,9 +104,8 @@ export declare function serializeWithSidecars(built: BuiltFlow, opts?: Serialize
129
104
  /**
130
105
  * The node type a typed action compiles to, when that type's definition is
131
106
  * bundled in `core-definitions.json`. `undefined` for a family whose definition
132
- * is built per tenant or per call (connector, rpaWorkflow, apiWorkflow,
133
- * agenticProcess, publishedFunction, agent, ixpExtract) and for a spec this SDK
134
- * does not lower by kind.
107
+ * is built per tenant or per call (connector, ixpExtract) and for a spec this
108
+ * SDK does not lower by kind.
135
109
  *
136
110
  * A registered kind (flow-node-registry.ts) is not listed: its type is the
137
111
  * registry's.
@@ -141,17 +115,16 @@ export declare function bundledActionNodeType(spec: {
141
115
  inputs?: any;
142
116
  } | undefined): string | undefined;
143
117
  /**
144
- * The definition serialize synthesizes for a family that has no bundled one:
145
- * a published process resource (`rpaWorkflow`, `apiWorkflow`,
146
- * `agenticProcess`, `publishedFunction`, `agent`) or an `ixpExtract` step.
147
- * Their node type carries a tenant's key, so the SDK builds the definition
148
- * per call, transcribed from what `registry get` returns. `undefined` for
149
- * every other kind (a bundled family, a connector, a container).
118
+ * The definition serialize synthesizes for a kind that has no bundled one and
119
+ * is not on the node-type registry: an `ixpExtract` step. Its node type carries
120
+ * a tenant's key, so the SDK builds the definition per call, transcribed from
121
+ * what `registry get` returns. `undefined` for every other kind (a bundled
122
+ * family, a connector, a container, a registered kind — the published process
123
+ * resources and the agent build theirs in nodes/process/flow/).
150
124
  *
151
125
  * The emit path builds its definition here, and `check` asks this same
152
126
  * definition whether the node has an error port (#1040), so the two cannot
153
- * disagree. For instance `publishedFunction(...)` yields
154
- * `uipath.core.function.<key>@1.0.0` with `supportsErrorHandling: true`.
127
+ * disagree.
155
128
  *
156
129
  * Throws what the family's builder throws for an unusable spec (an
157
130
  * `ixpExtract` project that is not a node type).
@@ -160,24 +133,6 @@ export declare function perCallDefinition(spec: {
160
133
  kind?: string;
161
134
  inputs?: any;
162
135
  } | undefined): any | undefined;
163
- /**
164
- * The definition version serialize emits for a typed action step that is not
165
- * yet on the node-type registry: the author's `{ version }` when given,
166
- * otherwise the version the step's inputs select, otherwise `undefined` (the
167
- * pinned default). One such family picks a version itself: `inlineAgent`
168
- * takes the newest bundled version, not the first bundled entry.
169
- *
170
- * The emit paths read their version here, and `check` resolves the definition
171
- * it asks about with this same version (#1041), so the two cannot pick
172
- * different definitions. For instance `inlineAgent({ ... })` gives the newest
173
- * bundled version in both. A registered family (e.g. `dataFabricRead`, whose
174
- * `resultMode` selects `core.datafabric.read@1.4`) gets the same guarantee from
175
- * the registry's `resolveVersion`, which check and serialize both call.
176
- */
177
- export declare function actionVersion(spec: {
178
- kind?: string;
179
- inputs?: any;
180
- } | undefined, explicit: string | undefined): string | undefined;
181
136
  /**
182
137
  * The bundled definition of `nodeType` that `makeNode` resolves: the author's
183
138
  * exact `{ version }` when given, otherwise the pinned default (the first