@uipath/maestro-builder-sdk 6.41.2 → 6.43.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 (73) hide show
  1. package/dist/api-index.md +99 -99
  2. package/dist/api-members.md +307 -307
  3. package/dist/check.d.ts +0 -19
  4. package/dist/check.js +40 -1036
  5. package/dist/cli/commands/registry.js +15 -0
  6. package/dist/compile-cli.js +2 -1
  7. package/dist/core/actions.d.ts +1 -713
  8. package/dist/core/actions.js +0 -193
  9. package/dist/core/agent-sidecar.d.ts +186 -0
  10. package/dist/core/agent-sidecar.js +409 -0
  11. package/dist/core/agent-tool-resources.d.ts +62 -0
  12. package/dist/core/agent-tool-resources.js +81 -0
  13. package/dist/core/cli-spelling.d.ts +9 -0
  14. package/dist/core/cli-spelling.js +9 -0
  15. package/dist/{config.js → core/connector-configuration.js} +2 -2
  16. package/dist/core/library-cache.d.ts +0 -9
  17. package/dist/core/library-cache.js +0 -9
  18. package/dist/core/library.d.ts +47 -0
  19. package/dist/core/library.js +135 -34
  20. package/dist/core/list-envelope.d.ts +36 -1
  21. package/dist/core/list-envelope.js +24 -19
  22. package/dist/core/lookup-store.d.ts +4 -3
  23. package/dist/core/lookup-store.js +46 -38
  24. package/dist/core/node-id-placeholder.d.ts +8 -0
  25. package/dist/core/node-id-placeholder.js +10 -0
  26. package/dist/core/read-text.d.ts +26 -0
  27. package/dist/core/read-text.js +43 -0
  28. package/dist/core/ts-literal.d.ts +6 -0
  29. package/dist/core/ts-literal.js +15 -0
  30. package/dist/core/typed-raw-node.js +0 -5
  31. package/dist/decompile.js +34 -822
  32. package/dist/flow-node-registry.js +2 -1
  33. package/dist/flow-node-type.d.ts +130 -6
  34. package/dist/flow-sdk.d.ts +1 -0
  35. package/dist/flow-sdk.js +1 -0
  36. package/dist/nodes/agent/flow/check.d.ts +88 -0
  37. package/dist/nodes/agent/flow/check.js +873 -0
  38. package/dist/nodes/agent/flow/factories.d.ts +134 -0
  39. package/dist/nodes/agent/flow/factories.js +143 -0
  40. package/dist/nodes/agent/flow/family.d.ts +3 -0
  41. package/dist/nodes/agent/flow/family.js +8 -0
  42. package/dist/nodes/agent/flow/index.d.ts +3 -0
  43. package/dist/nodes/agent/flow/index.js +3 -0
  44. package/dist/nodes/agent/flow/inline-agent-lift.d.ts +44 -0
  45. package/dist/nodes/agent/flow/inline-agent-lift.js +572 -0
  46. package/dist/nodes/agent/flow/inline-agent.d.ts +15 -0
  47. package/dist/nodes/agent/flow/inline-agent.js +526 -0
  48. package/dist/nodes/agent/flow/node-type.d.ts +20 -0
  49. package/dist/nodes/agent/flow/node-type.js +422 -0
  50. package/dist/nodes/agent/flow/resources.d.ts +502 -0
  51. package/dist/nodes/agent/flow/resources.js +1409 -0
  52. package/dist/nodes/agent/flow/spec.d.ts +448 -0
  53. package/dist/nodes/agent/flow/spec.js +1 -0
  54. package/dist/nodes/process/flow/check.d.ts +40 -2
  55. package/dist/nodes/process/flow/check.js +156 -0
  56. package/dist/nodes/process/flow/factories.d.ts +58 -3
  57. package/dist/nodes/process/flow/factories.js +59 -2
  58. package/dist/nodes/process/flow/node-type.d.ts +4 -1
  59. package/dist/nodes/process/flow/node-type.js +181 -10
  60. package/dist/nodes/process/flow/spec.d.ts +112 -5
  61. package/dist/registry/describe-cli.d.ts +10 -0
  62. package/dist/registry/describe-cli.js +41 -0
  63. package/dist/registry/library-reader.d.ts +12 -2
  64. package/dist/registry/library-reader.js +17 -16
  65. package/dist/registry/lookup-specs.d.ts +17 -1
  66. package/dist/registry/lookup-specs.js +3 -7
  67. package/dist/registry/path-cli.js +2 -1
  68. package/dist/registry/search-cli.js +2 -1
  69. package/dist/serialize.d.ts +9 -54
  70. package/dist/serialize.js +47 -2763
  71. package/package.json +2 -2
  72. /package/dist/{config.d.ts → core/connector-configuration.d.ts} +0 -0
  73. /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 {};
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Print one connector operation's page: its inputs, outputs, lookups and the code to
3
+ * write.
4
+ *
5
+ * The page comes from where `check` and `compile` read: the flow's prepared
6
+ * `connectors-local` overlay first, then the library. So after `registry prepare`
7
+ * it shows the connection's real fields. It is rendered from the entry on each call,
8
+ * so it needs no `library-md` tree and no file the agent must keep a path to.
9
+ */
10
+ export declare function run(argv: string[]): Promise<number>;
@@ -0,0 +1,41 @@
1
+ import { printResult, reportResult } from '../cli-result.js';
2
+ import { flagValue } from '../cli-run.js';
3
+ import { openCliLibrary } from '../core/cli-library.js';
4
+ import { PULL_COMMAND } from '../core/cli-spelling.js';
5
+ import { renderMarkdownPage } from './generators/markdown/index.js';
6
+ import { symbolIndex } from './naming.js';
7
+ /**
8
+ * Print one connector operation's page: its inputs, outputs, lookups and the code to
9
+ * write.
10
+ *
11
+ * The page comes from where `check` and `compile` read: the flow's prepared
12
+ * `connectors-local` overlay first, then the library. So after `registry prepare`
13
+ * it shows the connection's real fields. It is rendered from the entry on each call,
14
+ * so it needs no `library-md` tree and no file the agent must keep a path to.
15
+ */
16
+ export async function run(argv) {
17
+ const nodeType = argv[0];
18
+ const library = openCliLibrary(argv);
19
+ if (!library) {
20
+ console.error(`No connector library is cached. Run \`${PULL_COMMAND}\`, or pass --library <dir>.`);
21
+ return 2;
22
+ }
23
+ let source;
24
+ try {
25
+ source = library.pageSource(nodeType, flagValue(argv, '--connector-version'), flagValue(argv, '--object'));
26
+ }
27
+ catch (error) {
28
+ console.error(error instanceof Error ? error.message : String(error));
29
+ return 1;
30
+ }
31
+ // The symbol names `prepare`'s module exports: it counts GenericExpanded entries only when the overlay has one.
32
+ const expanded = source.prepared && source.rows.some((e) => e?.activityType === 'GenericExpanded');
33
+ const body = renderMarkdownPage(source.entry, source.v1def, { symbols: symbolIndex(source.rows, expanded), invariant: source.invariant });
34
+ // No path: on a browser host it names a store the agent cannot open.
35
+ const origin = source.prepared ? 'the prepared copy from `registry prepare`' : 'the connector library';
36
+ const page = `> Source: ${origin}\n\n${body.replace(/\n$/, '')}`;
37
+ // The page alone, so `uip … --output plain` prints just the Markdown.
38
+ reportResult({ page });
39
+ printResult(page);
40
+ return 0;
41
+ }
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Reading an extracted `library-json/` tree.
3
+ *
4
+ * Every generator walks the same index and opens the same two files per
5
+ * operation. This is that walk, once, with the path rules the Python spelled in
6
+ * three places: the entry is `index.json`'s `path`, the sidecar is the same path
7
+ * with `.json` swapped for `.v1def.json`, and a sidecar that is a one-element
8
+ * list is unwrapped.
9
+ */
10
+ import { type ReadText } from "../core/read-text.js";
1
11
  import type { IndexRow, LibraryEntry, LibraryIndex, V1Definition } from "./model/library.js";
2
12
  export interface LoadedLibrary {
3
13
  /** The `library-json` directory. */
@@ -14,7 +24,7 @@ export interface LoadedLibrary {
14
24
  }
15
25
  /** `<path minus .json>.v1def.json`, the sidecar beside an entry. */
16
26
  export declare function sidecarPath(entryRelativePath: string): string;
17
- export declare function readJsonFile(path: string): unknown;
18
27
  /** A sidecar may be `[definition]` in some snapshots; the definition is what callers want. */
19
28
  export declare function unwrapV1Def(raw: unknown): V1Definition | undefined;
20
- export declare function loadLibrary(dir: string): LoadedLibrary;
29
+ /** `read` defaults to the disk; a host without one passes its own (`core/read-text.ts`). */
30
+ export declare function loadLibrary(dir: string, read?: ReadText): LoadedLibrary;
@@ -7,16 +7,12 @@
7
7
  * with `.json` swapped for `.v1def.json`, and a sidecar that is a one-element
8
8
  * list is unwrapped.
9
9
  */
10
- import { existsSync, readFileSync } from "node:fs";
11
- import { join } from "node:path";
10
+ import { libraryPath, readTextFromDisk } from "../core/read-text.js";
12
11
  import { loadInvariantCollections } from "./lookup-specs.js";
13
12
  /** `<path minus .json>.v1def.json`, the sidecar beside an entry. */
14
13
  export function sidecarPath(entryRelativePath) {
15
14
  return `${entryRelativePath.slice(0, -".json".length)}.v1def.json`;
16
15
  }
17
- export function readJsonFile(path) {
18
- return JSON.parse(readFileSync(path, "utf8"));
19
- }
20
16
  /** A sidecar may be `[definition]` in some snapshots; the definition is what callers want. */
21
17
  export function unwrapV1Def(raw) {
22
18
  if (Array.isArray(raw))
@@ -25,26 +21,31 @@ export function unwrapV1Def(raw) {
25
21
  return raw;
26
22
  return undefined;
27
23
  }
28
- export function loadLibrary(dir) {
29
- const indexPath = join(dir, "index.json");
30
- if (!existsSync(indexPath)) {
24
+ /** `read` defaults to the disk; a host without one passes its own (`core/read-text.ts`). */
25
+ export function loadLibrary(dir, read = readTextFromDisk) {
26
+ const indexPath = libraryPath(dir, "index.json");
27
+ const indexText = read(indexPath);
28
+ if (indexText === undefined) {
31
29
  throw new Error(`library missing index.json: ${indexPath}`);
32
30
  }
33
- const index = readJsonFile(indexPath);
34
- const invariant = loadInvariantCollections(dir);
31
+ const index = JSON.parse(indexText);
32
+ const invariant = loadInvariantCollections(dir, read);
33
+ const readIfPresent = (path) => {
34
+ const text = read(path);
35
+ return text === undefined ? undefined : JSON.parse(text);
36
+ };
35
37
  return {
36
38
  dir,
37
39
  index,
38
40
  invariant,
39
- entryPath: (row) => join(dir, row.path),
40
- v1defPath: (row) => join(dir, sidecarPath(row.path)),
41
+ entryPath: (row) => libraryPath(dir, row.path),
42
+ v1defPath: (row) => libraryPath(dir, sidecarPath(row.path)),
41
43
  readEntry(row) {
42
- const path = join(dir, row.path);
43
- return existsSync(path) ? readJsonFile(path) : undefined;
44
+ return readIfPresent(libraryPath(dir, row.path));
44
45
  },
45
46
  readV1Def(row) {
46
- const path = join(dir, sidecarPath(row.path));
47
- return existsSync(path) ? unwrapV1Def(readJsonFile(path)) : undefined;
47
+ const raw = readIfPresent(libraryPath(dir, sidecarPath(row.path)));
48
+ return raw === undefined ? undefined : unwrapV1Def(raw);
48
49
  },
49
50
  };
50
51
  }
@@ -1,3 +1,19 @@
1
+ /**
2
+ * Which connector input fields earn a `.by*` helper, and what the helper needs.
3
+ *
4
+ * A `reference` with a `lookupValue` says a field's value is an opaque id to be
5
+ * resolved against a live connection. Two classes are excluded: IDENTITY
6
+ * lookups, where `lookupValue` is the only `lookupNames` entry so resolving
7
+ * returns what it was given, and INVARIANT collections, whose ids are a property
8
+ * of the connector's API rather than of a connection (a country list), read from
9
+ * the curated `invariant-collections.json` ledger. Everything else is a lookup;
10
+ * the fallback direction is the safe one.
11
+ *
12
+ * Ported from `integrations/scripts/_lookups.py` and the `lookup_specs` half of
13
+ * `generate_connectors_ts.py`. `core/lookups.ts` keeps `check` and `compile`
14
+ * agreeing with this by importing it.
15
+ */
16
+ import { type ReadText } from "../core/read-text.js";
1
17
  import type { FieldReference, LibraryField } from "./model/library.js";
2
18
  export declare const LEDGER_FILENAME = "invariant-collections.json";
3
19
  /**
@@ -5,7 +21,7 @@ export declare const LEDGER_FILENAME = "invariant-collections.json";
5
21
  * ledger reads as empty rather than raising: the permissive path is the
6
22
  * pre-ledger behaviour, so a bad edit loses exactness, never a build.
7
23
  */
8
- export declare function loadInvariantCollections(libraryDir: string | undefined): Set<string>;
24
+ export declare function loadInvariantCollections(libraryDir: string | undefined, read?: ReadText): Set<string>;
9
25
  /** The field's `reference` block when it declares a resolvable value. */
10
26
  export declare function referenceOf(field: {
11
27
  reference?: unknown;
@@ -13,8 +13,7 @@
13
13
  * `generate_connectors_ts.py`. `core/lookups.ts` keeps `check` and `compile`
14
14
  * agreeing with this by importing it.
15
15
  */
16
- import { existsSync, readFileSync } from "node:fs";
17
- import { join } from "node:path";
16
+ import { libraryPath, readTextFromDisk } from "../core/read-text.js";
18
17
  import { pyTruthy } from "./generators/type-tree.js";
19
18
  import { byAliases } from "./naming.js";
20
19
  export const LEDGER_FILENAME = "invariant-collections.json";
@@ -23,15 +22,12 @@ export const LEDGER_FILENAME = "invariant-collections.json";
23
22
  * ledger reads as empty rather than raising: the permissive path is the
24
23
  * pre-ledger behaviour, so a bad edit loses exactness, never a build.
25
24
  */
26
- export function loadInvariantCollections(libraryDir) {
25
+ export function loadInvariantCollections(libraryDir, read = readTextFromDisk) {
27
26
  if (!libraryDir)
28
27
  return new Set();
29
- const path = join(libraryDir, LEDGER_FILENAME);
30
- if (!existsSync(path))
31
- return new Set();
32
28
  let parsed;
33
29
  try {
34
- parsed = JSON.parse(readFileSync(path, "utf8"));
30
+ parsed = JSON.parse(read(libraryPath(libraryDir, LEDGER_FILENAME)) ?? "{}");
35
31
  }
36
32
  catch {
37
33
  return new Set();
@@ -1,6 +1,7 @@
1
1
  import { printResult, reportResult } from '../cli-result.js';
2
2
  import { join } from "node:path";
3
- import { CURRENT_LINK, PULL_COMMAND, currentEntrySha, libraryCacheRoot, resolveCachedLibrary, resolveCachedMarkdown, } from "../core/library-cache.js";
3
+ import { PULL_COMMAND } from "../core/cli-spelling.js";
4
+ import { CURRENT_LINK, currentEntrySha, libraryCacheRoot, resolveCachedLibrary, resolveCachedMarkdown, } from "../core/library-cache.js";
4
5
  /**
5
6
  * Say where the connector library is.
6
7
  *
@@ -1,6 +1,7 @@
1
1
  import { printResult, reportResult } from '../cli-result.js';
2
2
  import { readFile, stat } from "node:fs/promises";
3
- import { PULL_COMMAND, resolveLibraryDir } from "../core/library-cache.js";
3
+ import { PULL_COMMAND } from "../core/cli-spelling.js";
4
+ import { resolveLibraryDir } from "../core/library-cache.js";
4
5
  import { dirname, join } from "node:path";
5
6
  export const DEFAULT_SEARCH_LIMIT = 20;
6
7
  const USAGE = "Usage: flow-sdk registry search [query] [--library <dir>] [--library-md <dir>] [--connector <key>] [--limit <n>]";
@@ -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