@burdenoff/fluidgrids-fe-sdk 2026.1111.20 → 2026.1111.21
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/{AiStudioPage-CmjZwaoy.js → AiStudioPage-CJdzRL26.js} +4 -4
- package/dist/{DataSinkDashboardPage-auvILMSt.js → DataSinkDashboardPage-hrwQSvks.js} +1 -1
- package/dist/{ExecutionDetailPage-C0q5brcQ.js → ExecutionDetailPage-DKp421Fj.js} +60 -13
- package/dist/{ExecutionsListPage-Dcc6wi-8.js → ExecutionsListPage-DwJQfDPt.js} +4 -4
- package/dist/{FluidGridsProvider-CRGXDZX1.js → FluidGridsProvider-CbY91ZQq.js} +362 -97
- package/dist/{HistoryPage-B5Np7Dd_.js → HistoryPage-BLXZJDoJ.js} +1 -1
- package/dist/{InsightsPage-CQ8sB4d6.js → InsightsPage-ChnoW5U4.js} +1 -1
- package/dist/{MissingNodesInstallModal-Dm1m3Ysp.js → MissingNodesInstallModal-mYFfy9Gg.js} +1 -1
- package/dist/{QuotaExhaustedDialog-DYCpMOyQ.js → QuotaExhaustedDialog-DWm_YWL7.js} +1 -1
- package/dist/{SettingsPage-BNJV7nwG.js → SettingsPage-CXoKX0px.js} +2 -2
- package/dist/{TemplateCard-BuP6_QX8.js → TemplateCard-HIMsb47R.js} +2 -2
- package/dist/{TemplateConfigurationModal--YswnkOD.js → TemplateConfigurationModal-BNtbJ2fv.js} +1 -1
- package/dist/{TemplateDetailPanel-CtUjihCQ.js → TemplateDetailPanel-C6Zh2WRF.js} +1 -1
- package/dist/{TemplatePreview-TH3zVEtT.js → TemplatePreview-_wUMSwh_.js} +3 -3
- package/dist/{TemplatesPage-BDiIswSv.js → TemplatesPage-DBfL-ao9.js} +4 -4
- package/dist/{WorkflowBuilder-DnTqzYD5.js → WorkflowBuilder-CMZi6wQE.js} +7 -7
- package/dist/{WorkflowBuilder-KypUzhmK.js → WorkflowBuilder-CYmpQtIQ.js} +3 -3
- package/dist/{WorkflowSearchRedirect-DAA2K0Md.js → WorkflowSearchRedirect-iWzvY9Qo.js} +1 -1
- package/dist/{WorkflowsList-BWdu8wj0.js → WorkflowsList-C8aoqtRE.js} +5 -5
- package/dist/{agentTools-VQXDvw4O.js → agentTools-CrEWQ5st.js} +3 -4
- package/dist/askAboutBridge-BV8m95kk.js +65 -0
- package/dist/assistant.d.ts +30 -1
- package/dist/assistant.js +2 -1
- package/dist/{canvasNoteTools-CCQtxq7U.js → canvasNoteTools-6BQYNCee.js} +2 -2
- package/dist/{code-editor-field-4j1LiULY.js → code-editor-field-CoRq10k7.js} +1 -1
- package/dist/executions.js +2 -2
- package/dist/{flow-builder-KbM4vIW8.js → flow-builder-Dwev-C_g.js} +11 -11
- package/dist/history.js +1 -1
- package/dist/index.js +24 -24
- package/dist/{node-detail-view-CeOkSF2C.js → node-detail-view-BFBSKj5w.js} +5 -5
- package/dist/{node-editor-tab-body-CN89wDV7.js → node-editor-tab-body-Cz9kOlxu.js} +2 -2
- package/dist/observability.js +2 -2
- package/dist/{popover-CxKbvYSJ.js → popover-xPh0iIzy.js} +1 -1
- package/dist/{quick-config-panel-wfP0s4QO.js → quick-config-panel-Ym05lyGn.js} +3 -3
- package/dist/{schedule-panel-2HgyHvO8.js → schedule-panel-54D5W5Qk.js} +4 -4
- package/dist/settings.js +1 -1
- package/dist/{sidebar-node-editor-DLOVQATw.js → sidebar-node-editor-LL3ofDN7.js} +3 -3
- package/dist/templates.js +2 -2
- package/dist/{useDurableParity-CJvnfF3T.js → useDurableParity-BScby67i.js} +1 -1
- package/dist/{useExecutions-CyXkJtpk.js → useExecutions-B0VzQcY2.js} +1 -1
- package/dist/{useObservability-QZjFuXnI.js → useObservability-FfQGgW6W.js} +1 -1
- package/dist/{useRunHistory-D4gaa81A.js → useRunHistory-BZJg72kd.js} +1 -1
- package/dist/{useWorkflowCodeExport-BNGq3BJ9.js → useWorkflowCodeExport-CUWMlJbi.js} +1 -1
- package/dist/{useWorkflows-XsfD7JA-.js → useWorkflows-Czz5DlL0.js} +1 -1
- package/dist/workflow-builder.js +4 -4
- package/dist/workflow-pages.d.ts +1 -1
- package/dist/workflow-pages.js +13 -13
- package/dist/workflows-list.js +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import { n as FluidGridsTranslationProvider, r as useTr, t as ENGLISH_FALLBACK_T
|
|
|
7
7
|
import { s as useDurableFunctionNodesEnabled } from "./feature-flags-DM5myWaD.js";
|
|
8
8
|
import { A as CreateWorkflowDefinitionDocument, At as NodePaletteEntriesDocument, Er as WorkflowDefinitionDocument, L as CreateWorkflowVersionDocument, Tn as SaveWorkflowDraftDocument, _n as RunFromNodeDocument, at as ExecuteStepDocument, it as EventRegistrationsDocument, kt as NodeManifestsDocument, ot as ExecutionDetailDocument, qn as TriggerWorkflowDocument, qr as WorkflowRunDocument } from "./graphql-operation-types-kX-MMjgW.js";
|
|
9
9
|
import { _ as errorCodesOf, g as collectExtensions, i as emitRunStarted, m as RUNS_QUOTA_NAME, n as emitRunFailed, p as QUOTA_EXHAUSTED_CODE, r as emitRunLimitHit, s as emitWorkflowCreated, v as findQuotaRefusal } from "./fluidgridsEvents-CNdcrUNN.js";
|
|
10
|
+
import { n as useFgAskable } from "./askAboutBridge-BV8m95kk.js";
|
|
10
11
|
import { t as fetchAllNodeEndpointConfigs } from "./node-endpoint-configs-B5bjNMDW.js";
|
|
11
12
|
import { createContext, memo, useCallback, useContext, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
12
13
|
import { useNavigate, useParams } from "react-router";
|
|
@@ -1448,11 +1449,11 @@ function resolveNodeOperation(data, fallbackOperations) {
|
|
|
1448
1449
|
function isRecord$3(value) {
|
|
1449
1450
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1450
1451
|
}
|
|
1451
|
-
function record(value) {
|
|
1452
|
+
function record$1(value) {
|
|
1452
1453
|
return isRecord$3(value) ? value : void 0;
|
|
1453
1454
|
}
|
|
1454
1455
|
function declaredType(schema) {
|
|
1455
|
-
const type = typeof schema === "string" ? schema : record(schema)?.type;
|
|
1456
|
+
const type = typeof schema === "string" ? schema : record$1(schema)?.type;
|
|
1456
1457
|
return typeof type === "string" ? type.toLowerCase().trim() : "";
|
|
1457
1458
|
}
|
|
1458
1459
|
function structuredParameterType(schema) {
|
|
@@ -1461,19 +1462,19 @@ function structuredParameterType(schema) {
|
|
|
1461
1462
|
if (type === "object") return "object";
|
|
1462
1463
|
}
|
|
1463
1464
|
function itemSchema(schema) {
|
|
1464
|
-
return record(schema)?.items ?? declaredType(schema).match(/^array<(.+)>$/)?.[1];
|
|
1465
|
+
return record$1(schema)?.items ?? declaredType(schema).match(/^array<(.+)>$/)?.[1];
|
|
1465
1466
|
}
|
|
1466
1467
|
function matchesSchema(value, schema) {
|
|
1467
1468
|
const type = declaredType(schema);
|
|
1468
1469
|
const structured = structuredParameterType(schema);
|
|
1469
1470
|
if (structured === "array") return Array.isArray(value) && value.every((item) => matchesSchema(item, itemSchema(schema)));
|
|
1470
1471
|
if (structured === "object") {
|
|
1471
|
-
const object = record(value);
|
|
1472
|
+
const object = record$1(value);
|
|
1472
1473
|
if (!object) return false;
|
|
1473
|
-
const definition = record(schema);
|
|
1474
|
+
const definition = record$1(schema);
|
|
1474
1475
|
const required = definition?.required;
|
|
1475
1476
|
if (Array.isArray(required) && required.some((key) => typeof key === "string" && !Object.hasOwn(object, key))) return false;
|
|
1476
|
-
return Object.entries(record(definition?.properties) ?? {}).every(([key, property]) => Object.hasOwn(object, key) ? matchesSchema(object[key], property) : record(property)?.required !== true);
|
|
1477
|
+
return Object.entries(record$1(definition?.properties) ?? {}).every(([key, property]) => Object.hasOwn(object, key) ? matchesSchema(object[key], property) : record$1(property)?.required !== true);
|
|
1477
1478
|
}
|
|
1478
1479
|
if (type === "string") return typeof value === "string";
|
|
1479
1480
|
if (type === "number") return typeof value === "number" && Number.isFinite(value);
|
|
@@ -1512,7 +1513,7 @@ function parseParameterValue(schema, value) {
|
|
|
1512
1513
|
};
|
|
1513
1514
|
}
|
|
1514
1515
|
}
|
|
1515
|
-
if (type === "array" ? !Array.isArray(parsed) : !record(parsed)) return {
|
|
1516
|
+
if (type === "array" ? !Array.isArray(parsed) : !record$1(parsed)) return {
|
|
1516
1517
|
valid: false,
|
|
1517
1518
|
error: `Expected a JSON ${type}.`
|
|
1518
1519
|
};
|
|
@@ -1531,9 +1532,9 @@ function formatParameterValue(value) {
|
|
|
1531
1532
|
}
|
|
1532
1533
|
function normalizeNodeParameters(data, fallbackOperations, mappedFields = /* @__PURE__ */ new Set()) {
|
|
1533
1534
|
const operation = resolveNodeOperation(data, fallbackOperations).selected;
|
|
1534
|
-
const fields = record(operation?.input_fields);
|
|
1535
|
-
const args = record(data.args);
|
|
1536
|
-
const state = record(args?.state) ?? {};
|
|
1535
|
+
const fields = record$1(operation?.input_fields);
|
|
1536
|
+
const args = record$1(data.args);
|
|
1537
|
+
const state = record$1(args?.state) ?? {};
|
|
1537
1538
|
if (!fields) return data;
|
|
1538
1539
|
const visible = dropHiddenParameters(state, fields, mappedFields);
|
|
1539
1540
|
const structuredFields = Object.entries(fields).filter(([name, schema]) => structuredParameterType(schema) && !mappedFields.has(name));
|
|
@@ -1562,7 +1563,7 @@ function normalizeNodeParameters(data, fallbackOperations, mappedFields = /* @__
|
|
|
1562
1563
|
function normalizeWorkflowParameters(nodes, edges, fallbackOperations) {
|
|
1563
1564
|
return nodes.map((node) => {
|
|
1564
1565
|
if (node.data.disabled === true) return node;
|
|
1565
|
-
const mappedFields = new Set(edges.filter((edge) => edge.target === node.id).flatMap((edge) => Object.entries(record(record(record(edge)?.mapping)?.definition) ?? {}).filter(([, definition]) => typeof definition === "string" ? definition.trim().length > 0 : definition !== void 0).map(([name]) => name)));
|
|
1566
|
+
const mappedFields = new Set(edges.filter((edge) => edge.target === node.id).flatMap((edge) => Object.entries(record$1(record$1(record$1(edge)?.mapping)?.definition) ?? {}).filter(([, definition]) => typeof definition === "string" ? definition.trim().length > 0 : definition !== void 0).map(([name]) => name)));
|
|
1566
1567
|
try {
|
|
1567
1568
|
return {
|
|
1568
1569
|
...node,
|
|
@@ -5815,6 +5816,234 @@ function useInsertNode() {
|
|
|
5815
5816
|
]);
|
|
5816
5817
|
}
|
|
5817
5818
|
|
|
5819
|
+
// src/builder/lib/sensitive-params.ts
|
|
5820
|
+
/**
|
|
5821
|
+
* Which step settings hold a secret, so no agent tool sets them and nothing the
|
|
5822
|
+
* assistant is told about a step carries their value.
|
|
5823
|
+
*
|
|
5824
|
+
* Two signals, either is enough: the manifest marks the field `secret` (the
|
|
5825
|
+
* panel masks it), or its type or name reads like a credential. The name rule is
|
|
5826
|
+
* deliberately broad; a false positive only hides a value.
|
|
5827
|
+
*/
|
|
5828
|
+
const SENSITIVE_PARAM = /pass(word)?|secret|token|api[-_]?key|private[-_]?key|credential|connection/i;
|
|
5829
|
+
function isSensitiveParam(param) {
|
|
5830
|
+
return param.secret === true || SENSITIVE_PARAM.test(`${param.type} ${param.name}`);
|
|
5831
|
+
}
|
|
5832
|
+
|
|
5833
|
+
// src/askAbout/describeAskables.ts
|
|
5834
|
+
/**
|
|
5835
|
+
* ★ BOFF-11897 "Ask AI about this": what the assistant is told about the
|
|
5836
|
+
* FluidGrids thing a person picked. Pure functions of what the page already
|
|
5837
|
+
* shows, so they are cheap to call at the moment of the right-click, and
|
|
5838
|
+
* unit-tested on their own.
|
|
5839
|
+
*
|
|
5840
|
+
* ★★ Order matters. fe-libs keeps the note within a budget and drops facts
|
|
5841
|
+
* from the END when it is full, so the facts that answer "why is this not
|
|
5842
|
+
* working?" come first and the plain settings come last.
|
|
5843
|
+
*
|
|
5844
|
+
* ★★ Secret settings never travel. A setting the manifest marks `secret`, or
|
|
5845
|
+
* whose type or name reads like a credential (`isSensitiveParam`), is named
|
|
5846
|
+
* with its value hidden. Connections are named by their app only: the
|
|
5847
|
+
* connection itself is a reference the person picked, never a value.
|
|
5848
|
+
*/
|
|
5849
|
+
/** How a hidden value reads. */
|
|
5850
|
+
const HIDDEN_VALUE = "(hidden: secret)";
|
|
5851
|
+
/** At most this many settings are listed; they come after everything else. */
|
|
5852
|
+
const MAX_SETTINGS_LISTED = 8;
|
|
5853
|
+
const SETTING_VALUE_CHARS = 200;
|
|
5854
|
+
function valueText(value) {
|
|
5855
|
+
if (value === null || value === void 0) return "";
|
|
5856
|
+
if (typeof value === "string") return value.trim();
|
|
5857
|
+
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
5858
|
+
try {
|
|
5859
|
+
const json = JSON.stringify(value);
|
|
5860
|
+
return json === void 0 || json === "{}" || json === "[]" ? "" : json;
|
|
5861
|
+
} catch {
|
|
5862
|
+
return "";
|
|
5863
|
+
}
|
|
5864
|
+
}
|
|
5865
|
+
function cut(text, max) {
|
|
5866
|
+
return text.length > max ? `${text.slice(0, max - 1)}…` : text;
|
|
5867
|
+
}
|
|
5868
|
+
const RUN_STATUS_TEXT = {
|
|
5869
|
+
idle: "",
|
|
5870
|
+
running: "running",
|
|
5871
|
+
success: "succeeded",
|
|
5872
|
+
error: "failed"
|
|
5873
|
+
};
|
|
5874
|
+
/** A step on the workflow canvas. */
|
|
5875
|
+
function describeCanvasStep(step) {
|
|
5876
|
+
const name = step.label?.trim() || step.appName;
|
|
5877
|
+
const facts = [];
|
|
5878
|
+
facts.push({
|
|
5879
|
+
label: "Type",
|
|
5880
|
+
value: step.type && step.type !== step.appName ? `${step.appName} (${step.type})` : step.appName
|
|
5881
|
+
});
|
|
5882
|
+
if (step.operation) facts.push({
|
|
5883
|
+
label: "Operation",
|
|
5884
|
+
value: step.operation
|
|
5885
|
+
});
|
|
5886
|
+
if (step.trigger) facts.push({
|
|
5887
|
+
label: "Role",
|
|
5888
|
+
value: "trigger (starts the workflow)"
|
|
5889
|
+
});
|
|
5890
|
+
if (step.disabled) facts.push({
|
|
5891
|
+
label: "Disabled",
|
|
5892
|
+
value: "yes (skipped when the workflow runs)"
|
|
5893
|
+
});
|
|
5894
|
+
if (step.missingSettings && step.missingSettings.length > 0) facts.push({
|
|
5895
|
+
label: "Required settings still empty",
|
|
5896
|
+
value: step.missingSettings.join(", ")
|
|
5897
|
+
});
|
|
5898
|
+
if (step.missingConnection) facts.push({
|
|
5899
|
+
label: "Connection",
|
|
5900
|
+
value: "a required connection is not picked yet"
|
|
5901
|
+
});
|
|
5902
|
+
const run = step.runStatus ? RUN_STATUS_TEXT[step.runStatus] : "";
|
|
5903
|
+
if (run) facts.push({
|
|
5904
|
+
label: "Last test run on this canvas",
|
|
5905
|
+
value: run
|
|
5906
|
+
});
|
|
5907
|
+
if (step.runError?.trim()) facts.push({
|
|
5908
|
+
label: "Last run error",
|
|
5909
|
+
value: step.runError.trim()
|
|
5910
|
+
});
|
|
5911
|
+
if (step.connections && step.connections.length > 0) facts.push({
|
|
5912
|
+
label: "Connections picked",
|
|
5913
|
+
value: step.connections.join(", ")
|
|
5914
|
+
});
|
|
5915
|
+
let listed = 0;
|
|
5916
|
+
for (const setting of step.settings ?? []) {
|
|
5917
|
+
if (listed >= 8) break;
|
|
5918
|
+
const text = valueText(setting.value);
|
|
5919
|
+
if (!text) continue;
|
|
5920
|
+
facts.push({
|
|
5921
|
+
label: `Setting ${setting.label?.trim() || setting.name}`,
|
|
5922
|
+
value: isSensitiveParam(setting) ? HIDDEN_VALUE : cut(text, SETTING_VALUE_CHARS)
|
|
5923
|
+
});
|
|
5924
|
+
listed += 1;
|
|
5925
|
+
}
|
|
5926
|
+
return {
|
|
5927
|
+
kind: "workflow step",
|
|
5928
|
+
label: name,
|
|
5929
|
+
id: step.id,
|
|
5930
|
+
facts,
|
|
5931
|
+
pointBack: {
|
|
5932
|
+
tool: "fg_canvas_focus_node",
|
|
5933
|
+
args: { node: step.id }
|
|
5934
|
+
}
|
|
5935
|
+
};
|
|
5936
|
+
}
|
|
5937
|
+
function record(value) {
|
|
5938
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
5939
|
+
}
|
|
5940
|
+
/**
|
|
5941
|
+
* The facts `describeCanvasStep` reads, from the builder's own state. The name
|
|
5942
|
+
* is the registry's title, or, when the type is not in the registry (an
|
|
5943
|
+
* uninstalled store node), the node's saved manifest name, as the card shows.
|
|
5944
|
+
*/
|
|
5945
|
+
function canvasStepFactsOf(step) {
|
|
5946
|
+
const data = step.data ?? {};
|
|
5947
|
+
const savedName = record(data.nodeData)?.name;
|
|
5948
|
+
const appName = (step.registryTitle === step.type && typeof savedName === "string" ? savedName : step.registryTitle) || step.id;
|
|
5949
|
+
const connections = record(data.args)?.connections;
|
|
5950
|
+
const runError = [...step.execution.logs].reverse().find((log) => log.nodeId === step.id && log.status === "failed")?.error ?? null;
|
|
5951
|
+
return {
|
|
5952
|
+
id: step.id,
|
|
5953
|
+
...typeof data.label === "string" ? { label: data.label } : {},
|
|
5954
|
+
appName,
|
|
5955
|
+
...step.type ? { type: step.type } : {},
|
|
5956
|
+
...typeof data.operation_name === "string" ? { operation: data.operation_name } : {},
|
|
5957
|
+
disabled: data.disabled === true,
|
|
5958
|
+
trigger: step.trigger,
|
|
5959
|
+
missingSettings: step.missingSettings,
|
|
5960
|
+
missingConnection: step.missingConnection,
|
|
5961
|
+
connections: Array.isArray(connections) ? connections.flatMap((entry) => {
|
|
5962
|
+
const adapter = record(entry)?.adapter;
|
|
5963
|
+
return typeof adapter === "string" ? [adapter] : [];
|
|
5964
|
+
}) : [],
|
|
5965
|
+
settings: step.params.map((param) => ({
|
|
5966
|
+
name: param.name,
|
|
5967
|
+
type: param.type,
|
|
5968
|
+
...param.label ? { label: param.label } : {},
|
|
5969
|
+
...param.secret ? { secret: true } : {},
|
|
5970
|
+
value: step.state[param.name]
|
|
5971
|
+
})),
|
|
5972
|
+
...step.execution.nodeStatuses[step.id] ? { runStatus: step.execution.nodeStatuses[step.id] } : {},
|
|
5973
|
+
runError
|
|
5974
|
+
};
|
|
5975
|
+
}
|
|
5976
|
+
function runFacts(run) {
|
|
5977
|
+
const facts = [{
|
|
5978
|
+
label: "Run",
|
|
5979
|
+
value: run.runId
|
|
5980
|
+
}, {
|
|
5981
|
+
label: "Run status",
|
|
5982
|
+
value: run.status
|
|
5983
|
+
}];
|
|
5984
|
+
if (run.workflowKey) facts.push({
|
|
5985
|
+
label: "Workflow",
|
|
5986
|
+
value: run.version !== void 0 ? `${run.workflowKey} v${run.version}` : run.workflowKey
|
|
5987
|
+
});
|
|
5988
|
+
return facts;
|
|
5989
|
+
}
|
|
5990
|
+
/** One step of a run, on the run's page. */
|
|
5991
|
+
function describeRunStep(step) {
|
|
5992
|
+
const facts = [{
|
|
5993
|
+
label: "Step status",
|
|
5994
|
+
value: step.status
|
|
5995
|
+
}];
|
|
5996
|
+
if (step.errorType?.trim()) facts.push({
|
|
5997
|
+
label: "Error type",
|
|
5998
|
+
value: step.errorType.trim()
|
|
5999
|
+
});
|
|
6000
|
+
if (step.error?.trim()) facts.push({
|
|
6001
|
+
label: "Error",
|
|
6002
|
+
value: step.error.trim()
|
|
6003
|
+
});
|
|
6004
|
+
if (step.stepType) facts.push({
|
|
6005
|
+
label: "Step type",
|
|
6006
|
+
value: step.stepVersion ? `${step.stepType} v${step.stepVersion}` : step.stepType
|
|
6007
|
+
});
|
|
6008
|
+
facts.push(...runFacts(step.run));
|
|
6009
|
+
return {
|
|
6010
|
+
kind: "run step",
|
|
6011
|
+
label: step.stepName,
|
|
6012
|
+
id: step.stepId,
|
|
6013
|
+
facts,
|
|
6014
|
+
pointBack: {
|
|
6015
|
+
tool: "fg_ui_point_at",
|
|
6016
|
+
args: {
|
|
6017
|
+
name: step.stepName,
|
|
6018
|
+
role: "button"
|
|
6019
|
+
}
|
|
6020
|
+
}
|
|
6021
|
+
};
|
|
6022
|
+
}
|
|
6023
|
+
/** The error a whole run ended with, on the run's page. */
|
|
6024
|
+
function describeRunError(run) {
|
|
6025
|
+
const facts = [];
|
|
6026
|
+
if (run.errorType?.trim()) facts.push({
|
|
6027
|
+
label: "Error type",
|
|
6028
|
+
value: run.errorType.trim()
|
|
6029
|
+
});
|
|
6030
|
+
if (run.errorMessage?.trim()) facts.push({
|
|
6031
|
+
label: "Error",
|
|
6032
|
+
value: run.errorMessage.trim()
|
|
6033
|
+
});
|
|
6034
|
+
if (run.failedSteps !== void 0 && run.failedSteps > 0) facts.push({
|
|
6035
|
+
label: "Failed steps",
|
|
6036
|
+
value: String(run.failedSteps)
|
|
6037
|
+
});
|
|
6038
|
+
facts.push(...runFacts(run));
|
|
6039
|
+
return {
|
|
6040
|
+
kind: "run error",
|
|
6041
|
+
label: "Run error",
|
|
6042
|
+
id: run.runId,
|
|
6043
|
+
facts
|
|
6044
|
+
};
|
|
6045
|
+
}
|
|
6046
|
+
|
|
5818
6047
|
// src/builder/components/flow-builder/components/blocks/nodes/node/node.tsx
|
|
5819
6048
|
/**
|
|
5820
6049
|
* Adapters that are auto-managed by the runtime (e.g. the workspace-wide
|
|
@@ -6281,6 +6510,36 @@ const getNodeMetadata = (value) => {
|
|
|
6281
6510
|
id,
|
|
6282
6511
|
value?.type
|
|
6283
6512
|
]);
|
|
6513
|
+
const describeStep = useCallback(() => describeCanvasStep(canvasStepFactsOf({
|
|
6514
|
+
id,
|
|
6515
|
+
type: value?.type,
|
|
6516
|
+
data,
|
|
6517
|
+
registryTitle: meta.title,
|
|
6518
|
+
trigger: isNodeTrigger({
|
|
6519
|
+
type: value?.type,
|
|
6520
|
+
data
|
|
6521
|
+
}),
|
|
6522
|
+
missingSettings: missingParameters,
|
|
6523
|
+
missingConnection: missingCredentials,
|
|
6524
|
+
params: nodeParamsOf({
|
|
6525
|
+
id,
|
|
6526
|
+
type: value?.type,
|
|
6527
|
+
data
|
|
6528
|
+
}),
|
|
6529
|
+
state: nodeStateOf({
|
|
6530
|
+
id,
|
|
6531
|
+
data
|
|
6532
|
+
}),
|
|
6533
|
+
execution: useFlowStore.getState().execution
|
|
6534
|
+
})), [
|
|
6535
|
+
data,
|
|
6536
|
+
id,
|
|
6537
|
+
meta.title,
|
|
6538
|
+
missingCredentials,
|
|
6539
|
+
missingParameters
|
|
6540
|
+
]);
|
|
6541
|
+
const askable = useFgAskable(describeStep);
|
|
6542
|
+
const askableRef = useCallback((element) => askable(element?.closest(".react-flow__node") ?? element), [askable]);
|
|
6284
6543
|
if (isAdapterSubNode) return /* @__PURE__ */ jsx(SubNodeComponent, {
|
|
6285
6544
|
...props,
|
|
6286
6545
|
nodeType: value?.type
|
|
@@ -6326,105 +6585,111 @@ const getNodeMetadata = (value) => {
|
|
|
6326
6585
|
const mode = argsState?.mode;
|
|
6327
6586
|
const runControlSubtitle = runControlNodeSubtitle(tr, value?.type, argsState);
|
|
6328
6587
|
const logicSubtitle = isWaitForSignal ? readSignalName(argsState) : runControlSubtitle !== void 0 ? runControlSubtitle : Array.isArray(rules) ? `${rules.length} rule${rules.length === 1 ? "" : "s"}` : typeof mode === "string" ? mode : void 0;
|
|
6329
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
6330
|
-
|
|
6331
|
-
|
|
6332
|
-
|
|
6333
|
-
|
|
6334
|
-
|
|
6335
|
-
|
|
6336
|
-
|
|
6588
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
6589
|
+
ref: askableRef,
|
|
6590
|
+
children: [
|
|
6591
|
+
/* @__PURE__ */ jsx(LogicNodeCard, {
|
|
6592
|
+
nodeId: id,
|
|
6593
|
+
title: data?.label || meta.title,
|
|
6594
|
+
subtitle: logicSubtitle,
|
|
6595
|
+
icon: meta.icon,
|
|
6596
|
+
accent: roleAccent,
|
|
6597
|
+
selected: !!selected,
|
|
6598
|
+
executionStatus,
|
|
6599
|
+
itemCount,
|
|
6600
|
+
isTrigger,
|
|
6601
|
+
isExecuting: isThisNodeExecuting || stepGuard.preparing,
|
|
6602
|
+
inputHandles,
|
|
6603
|
+
outputHandles,
|
|
6604
|
+
isConnectable: typeof isConnectable === "boolean" ? isConnectable : void 0,
|
|
6605
|
+
onClick: handleCardClick,
|
|
6606
|
+
onDoubleClick: handleOpenNdv,
|
|
6607
|
+
onSettings: handleOpenNdv,
|
|
6608
|
+
onExecute: () => void stepGuard.requestRun(),
|
|
6609
|
+
onDelete: readOnly ? void 0 : handleDeleteNode,
|
|
6610
|
+
infoButton: /* @__PURE__ */ jsx(NodeInfoButtonWithModal, { metadata: nodeInfoMetadata }),
|
|
6611
|
+
disabled: isDisabled,
|
|
6612
|
+
onToggleDisabled: readOnly ? void 0 : handleToggleDisabled,
|
|
6613
|
+
isRenaming: isRenamingThisNode && !readOnly,
|
|
6614
|
+
onStartRename: readOnly ? void 0 : handleStartRename,
|
|
6615
|
+
onCommitRename: handleCommitRename,
|
|
6616
|
+
onCancelRename: handleCancelRename
|
|
6617
|
+
}),
|
|
6618
|
+
/* @__PURE__ */ jsx(AdapterConnectors, {
|
|
6619
|
+
nodeId: id,
|
|
6620
|
+
adapters: connections.adapters
|
|
6621
|
+
}),
|
|
6622
|
+
stepGuard.dialog
|
|
6623
|
+
]
|
|
6624
|
+
});
|
|
6625
|
+
}
|
|
6626
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
6627
|
+
ref: askableRef,
|
|
6628
|
+
children: [
|
|
6629
|
+
/* @__PURE__ */ jsxs(NodeCard, {
|
|
6630
|
+
"data-selected": selected,
|
|
6631
|
+
selected,
|
|
6632
|
+
onClick: handleCardClick,
|
|
6633
|
+
onDoubleClick: handleOpenNdv,
|
|
6337
6634
|
executionStatus,
|
|
6338
6635
|
itemCount,
|
|
6339
6636
|
isTrigger,
|
|
6637
|
+
accent: roleAccent,
|
|
6340
6638
|
isExecuting: isThisNodeExecuting || stepGuard.preparing,
|
|
6341
|
-
inputHandles,
|
|
6342
|
-
outputHandles,
|
|
6343
|
-
isConnectable: typeof isConnectable === "boolean" ? isConnectable : void 0,
|
|
6344
|
-
onClick: handleCardClick,
|
|
6345
|
-
onDoubleClick: handleOpenNdv,
|
|
6346
6639
|
onSettings: handleOpenNdv,
|
|
6347
6640
|
onExecute: () => void stepGuard.requestRun(),
|
|
6348
6641
|
onDelete: readOnly ? void 0 : handleDeleteNode,
|
|
6349
6642
|
infoButton: /* @__PURE__ */ jsx(NodeInfoButtonWithModal, { metadata: nodeInfoMetadata }),
|
|
6350
6643
|
disabled: isDisabled,
|
|
6351
6644
|
onToggleDisabled: readOnly ? void 0 : handleToggleDisabled,
|
|
6352
|
-
|
|
6353
|
-
|
|
6354
|
-
|
|
6355
|
-
|
|
6645
|
+
children: [
|
|
6646
|
+
/* @__PURE__ */ jsx(NodeCardHeader, {
|
|
6647
|
+
icon: cardIcon,
|
|
6648
|
+
appName,
|
|
6649
|
+
accentKey: value?.type || meta.title,
|
|
6650
|
+
missingCredentials,
|
|
6651
|
+
missingParameters,
|
|
6652
|
+
label: nodeLabel,
|
|
6653
|
+
isRenaming: isRenamingThisNode && !readOnly,
|
|
6654
|
+
onStartRename: readOnly ? void 0 : handleStartRename,
|
|
6655
|
+
onCommitRename: handleCommitRename,
|
|
6656
|
+
onCancelRename: handleCancelRename
|
|
6657
|
+
}),
|
|
6658
|
+
isCodeWorkflow ? /* @__PURE__ */ jsx(CodeWorkflowCardSection, {
|
|
6659
|
+
args: data?.args?.state,
|
|
6660
|
+
durableEnabled
|
|
6661
|
+
}) : operationDisplay === "execute" && (value?.type || "").startsWith("internal:") || isTrigger && !resolveOperationName(data?.operation_name, "") ? /* @__PURE__ */ jsx("div", {
|
|
6662
|
+
className: "rounded-b-xl border-t border-border/60 px-3 pb-3 pt-2.5",
|
|
6663
|
+
children: /* @__PURE__ */ jsx("p", {
|
|
6664
|
+
className: "line-clamp-2 text-xs leading-snug text-muted-foreground",
|
|
6665
|
+
children: nodeDescription
|
|
6666
|
+
})
|
|
6667
|
+
}) : /* @__PURE__ */ jsx(NodeCardBody, {
|
|
6668
|
+
operationName: operationDisplay,
|
|
6669
|
+
description: nodeDescription
|
|
6670
|
+
}),
|
|
6671
|
+
handleSpacer > 0 && /* @__PURE__ */ jsx("div", { style: { height: handleSpacer } }),
|
|
6672
|
+
!isTrigger && /* @__PURE__ */ jsx(InputHandles, {
|
|
6673
|
+
nodeId: id,
|
|
6674
|
+
handles: inputHandles,
|
|
6675
|
+
accent: roleAccent,
|
|
6676
|
+
isConnectable: typeof isConnectable === "boolean" ? isConnectable : void 0
|
|
6677
|
+
}),
|
|
6678
|
+
/* @__PURE__ */ jsx(OutputHandles, {
|
|
6679
|
+
nodeId: id,
|
|
6680
|
+
handles: outputHandles,
|
|
6681
|
+
accent: roleAccent,
|
|
6682
|
+
isConnectable: typeof isConnectable === "boolean" ? isConnectable : void 0
|
|
6683
|
+
})
|
|
6684
|
+
]
|
|
6356
6685
|
}),
|
|
6686
|
+
stepGuard.dialog,
|
|
6357
6687
|
/* @__PURE__ */ jsx(AdapterConnectors, {
|
|
6358
6688
|
nodeId: id,
|
|
6359
6689
|
adapters: connections.adapters
|
|
6360
|
-
})
|
|
6361
|
-
|
|
6362
|
-
|
|
6363
|
-
}
|
|
6364
|
-
return /* @__PURE__ */ jsxs("div", { children: [
|
|
6365
|
-
/* @__PURE__ */ jsxs(NodeCard, {
|
|
6366
|
-
"data-selected": selected,
|
|
6367
|
-
selected,
|
|
6368
|
-
onClick: handleCardClick,
|
|
6369
|
-
onDoubleClick: handleOpenNdv,
|
|
6370
|
-
executionStatus,
|
|
6371
|
-
itemCount,
|
|
6372
|
-
isTrigger,
|
|
6373
|
-
accent: roleAccent,
|
|
6374
|
-
isExecuting: isThisNodeExecuting || stepGuard.preparing,
|
|
6375
|
-
onSettings: handleOpenNdv,
|
|
6376
|
-
onExecute: () => void stepGuard.requestRun(),
|
|
6377
|
-
onDelete: readOnly ? void 0 : handleDeleteNode,
|
|
6378
|
-
infoButton: /* @__PURE__ */ jsx(NodeInfoButtonWithModal, { metadata: nodeInfoMetadata }),
|
|
6379
|
-
disabled: isDisabled,
|
|
6380
|
-
onToggleDisabled: readOnly ? void 0 : handleToggleDisabled,
|
|
6381
|
-
children: [
|
|
6382
|
-
/* @__PURE__ */ jsx(NodeCardHeader, {
|
|
6383
|
-
icon: cardIcon,
|
|
6384
|
-
appName,
|
|
6385
|
-
accentKey: value?.type || meta.title,
|
|
6386
|
-
missingCredentials,
|
|
6387
|
-
missingParameters,
|
|
6388
|
-
label: nodeLabel,
|
|
6389
|
-
isRenaming: isRenamingThisNode && !readOnly,
|
|
6390
|
-
onStartRename: readOnly ? void 0 : handleStartRename,
|
|
6391
|
-
onCommitRename: handleCommitRename,
|
|
6392
|
-
onCancelRename: handleCancelRename
|
|
6393
|
-
}),
|
|
6394
|
-
isCodeWorkflow ? /* @__PURE__ */ jsx(CodeWorkflowCardSection, {
|
|
6395
|
-
args: data?.args?.state,
|
|
6396
|
-
durableEnabled
|
|
6397
|
-
}) : operationDisplay === "execute" && (value?.type || "").startsWith("internal:") || isTrigger && !resolveOperationName(data?.operation_name, "") ? /* @__PURE__ */ jsx("div", {
|
|
6398
|
-
className: "rounded-b-xl border-t border-border/60 px-3 pb-3 pt-2.5",
|
|
6399
|
-
children: /* @__PURE__ */ jsx("p", {
|
|
6400
|
-
className: "line-clamp-2 text-xs leading-snug text-muted-foreground",
|
|
6401
|
-
children: nodeDescription
|
|
6402
|
-
})
|
|
6403
|
-
}) : /* @__PURE__ */ jsx(NodeCardBody, {
|
|
6404
|
-
operationName: operationDisplay,
|
|
6405
|
-
description: nodeDescription
|
|
6406
|
-
}),
|
|
6407
|
-
handleSpacer > 0 && /* @__PURE__ */ jsx("div", { style: { height: handleSpacer } }),
|
|
6408
|
-
!isTrigger && /* @__PURE__ */ jsx(InputHandles, {
|
|
6409
|
-
nodeId: id,
|
|
6410
|
-
handles: inputHandles,
|
|
6411
|
-
accent: roleAccent,
|
|
6412
|
-
isConnectable: typeof isConnectable === "boolean" ? isConnectable : void 0
|
|
6413
|
-
}),
|
|
6414
|
-
/* @__PURE__ */ jsx(OutputHandles, {
|
|
6415
|
-
nodeId: id,
|
|
6416
|
-
handles: outputHandles,
|
|
6417
|
-
accent: roleAccent,
|
|
6418
|
-
isConnectable: typeof isConnectable === "boolean" ? isConnectable : void 0
|
|
6419
|
-
})
|
|
6420
|
-
]
|
|
6421
|
-
}),
|
|
6422
|
-
stepGuard.dialog,
|
|
6423
|
-
/* @__PURE__ */ jsx(AdapterConnectors, {
|
|
6424
|
-
nodeId: id,
|
|
6425
|
-
adapters: connections.adapters
|
|
6426
|
-
})
|
|
6427
|
-
] });
|
|
6690
|
+
})
|
|
6691
|
+
]
|
|
6692
|
+
});
|
|
6428
6693
|
}
|
|
6429
6694
|
return {
|
|
6430
6695
|
type: value?.type,
|
|
@@ -10469,4 +10734,4 @@ function useFluidGridsContext() {
|
|
|
10469
10734
|
return context;
|
|
10470
10735
|
}
|
|
10471
10736
|
|
|
10472
|
-
export {
|
|
10737
|
+
export { useNodeConfig as $, canAutosave as $t, StoreNodeProductsByTypeDocument as A, connectionsForAdapter as An, createThenOpen as At, createConfiguredNode as B, useBuilderReadOnly as Bn, phaseAfterAcquire as Bt, GetMyNodeInstallationsDocument as C, canSignalRun as Cn, watchLeavingLosesChanges as Ct, InstallWorkflowNodeDocument as D, payloadFromCardValues as Dn, blankWorkflowCreateInput as Dt, InstallPurchasedNodeDocument as E, parseRawSignalPayload as En, useSaveWorkflow as Et, getNodeMetadata as F, getNodeDetail as Fn, useEditLeaseStore as Ft, asRecord as G, EDIT_SESSION_ID as Gt, MissingParametersDialog as H, releasesOnClose as Ht, describeRunError as I, buildStickyNode as In, bannerOf as It, nodeSubtitle as J, sessionBeforeReload as Jt, coerceNumber as K, forgetSessionForReload as Kt, describeRunStep as L, loadMarkdown as Ln, isLocked as Lt, UninstallOrganizationPrivateNodeDocument as M, matchesAdapterProvider as Mn, saveIndicatorOf as Mt, UninstallWorkflowNodeDocument as N, newConnectionProviderKey as Nn, useSaveStatusStore as Nt, MyWorkflowTemplateSubmissionsDocument as O, runSignalTargets as On, builderPathOf as Ot, WithdrawWorkflowTemplateSubmissionDocument as P, replaceAdapterConnections as Pn, useEditLeaseLocked as Pt, selectedOperationOf as Q, AUTOSAVE_RETRY_DELAYS_MS as Qt, SENSITIVE_PARAM as R, useMarkdownRenderer as Rn, leaseCallQueue as Rt, CreateStoreOrderDocument as S, useCodeWorkflowInterface as Sn, touchesSavedFields as St, InstallOrganizationPrivateNodeDocument as T, durableInterfaceOf as Tn, useFlowValidator as Tt, useRunGuard as U, shouldReleaseForIdle as Ut, useInsertNode as V, phaseAfterTakeOver as Vt, workflowParameterIssues as W, tickAction as Wt, optionText as X, rememberRevision as Xt, nodeTitle as Y, rememberOwnStatusChange as Yt, paramsFromOperation as Z, AUTOSAVE_DEBOUNCE_MS as Zt, registryNodeData as _, openRunQuotaUpgradePrompt as _n, departingSave as _t, NODES_METADATA as a, workflowFingerprint as an, resolveLoadOptionsSpec as at, BrowseWorkflowNodesDocument as b, clearCodeWorkflowDefinitionCache as bn, leavingLosesChanges as bt, ensureInstalledNodeTypesLoaded as c, nodeStateDurationMs as cn, casesFromRules as ct, ensureRegistryNodeTypesLoaded as d, parseParameterValue as dn, latestNodeLog as dt, codeBuildIdOf as en, resolveUiSpec as et, isNodeConfigsInitialized as f, structuredParameterType as fn, boundFieldsOf as ft, registerWorkflowNodeTypes as g, useFluidGridsAnalytics as gn, autosaveAllowedFor as gt, registerNodeManifests as h, isParamVisible as hn, useManualSave as ht, AVAILABLE_NODES as i, saveFailureActionOf as in, optionListValues as it, SubmitWorkflowTemplateDocument as j, isOptionalAdapter as jn, refusalOfQuota as jt, OrganizationPrivateNodesDocument as k, signalPayloadCard as kn, classifyCreateRefusal as kt, ensureNodeConfigsLoaded as l, runDurationMs as ln, FieldTree as lt, refetchStoreNodes as m, resolveNodeOperation as mn, useGuardedNavigate as mt, FluidGridsProvider as n, inAppLeaveTarget as nn, isStringOptionList as nt, NODE_CONFIGS as o, useNodeExecution as on, ConditionTreeBuilder as ot, onNodeTypesUpdate as p, fieldsFromValue as pn, missingRequiredParameters as pt, fixedParameterState as q, rememberSessionForReload as qt, useFluidGridsContext as r, resettledBaseline as rn, optionListText as rt, NODE_TYPES as s, formatElapsedMs as sn, SwitchRulesEditor as st, FluidGridsContext as t, findSaveConflict as tn, stripSubmitActions as tt, ensureNodeTypesLoaded as u, formatParameterValue as un, parseMappingValue as ut, scheduleNodePaletteLoad as v, useCanvasEdges as vn, editStateFor as vt, GetNodeInstallableVersionsDocument as w, declaredSignals as wn, isFlowComplete as wt, BrowseWorkflowTemplatesDocument as x, loadDefinitionJson as xn, savedEverythingBeforeLeaving as xt, global_operations_exports as y, useNodeRegistryRevision as yn, editingLeaseLocked as yt, buildOperationSeed as z, BuilderReadOnlyProvider as zn, leaseCallSequence as zt };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
|
-
import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-
|
|
3
|
+
import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-Czz5DlL0.js";
|
|
4
4
|
import { i as versionsOfWorkflow, t as VersionDiffDialog } from "./VersionDiffDialog-DSN0mU0f.js";
|
|
5
5
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
6
6
|
import { x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
3
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
4
|
-
import { o as useRunReplayActions, r as useInsightsData } from "./useObservability-
|
|
4
|
+
import { o as useRunReplayActions, r as useInsightsData } from "./useObservability-FfQGgW6W.js";
|
|
5
5
|
import { a as getTopFailingWorkflows, i as getTopFailingNodes, n as formatDuration, o as percentage, r as getFailureBreakdown } from "./utils-uaL5UVxb.js";
|
|
6
6
|
import { n as FailureTriagePanel } from "./FailureTriagePanel-B9hDQymi.js";
|
|
7
7
|
import { o as useContinuousOptimisationEnabled } from "./feature-flags-DM5myWaD.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { a as DialogFooter, i as DialogDescription, l as DialogTitle, o as DialogHeader, r as DialogContent, t as Dialog } from "./dialog-Cjb4lB4D.js";
|
|
3
3
|
import { t as Button } from "./button-DG7y_FVJ.js";
|
|
4
|
-
import { r as Badge } from "./TemplateCard-
|
|
4
|
+
import { r as Badge } from "./TemplateCard-HIMsb47R.js";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { AlertTriangle, CheckCircle2, Download, ExternalLink, Loader2, Puzzle, ShoppingCart } from "lucide-react";
|
|
7
7
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
3
|
-
import {
|
|
3
|
+
import { gn as useFluidGridsAnalytics } from "./FluidGridsProvider-CbY91ZQq.js";
|
|
4
4
|
import { c as emitWorkflowLimitHit, h as WORKFLOWS_QUOTA_NAME, o as emitUpgradeClicked } from "./fluidgridsEvents-CNdcrUNN.js";
|
|
5
5
|
import { useEffect, useRef } from "react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -11,8 +11,8 @@ import { M as saveCodecServerSettings, _ as fetchPauseRules, a as createPauseRul
|
|
|
11
11
|
import { i as NativeSelect, o as StatusPill, t as FieldError, u as useResource } from "./shared-CMfn30xT.js";
|
|
12
12
|
import { KF as WorkflowSearchAttributeType } from "./graphql-types-CDKVWH2R.js";
|
|
13
13
|
import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
|
|
14
|
-
import {
|
|
15
|
-
import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-
|
|
14
|
+
import { Nt as useSaveStatusStore, tn as findSaveConflict } from "./FluidGridsProvider-CbY91ZQq.js";
|
|
15
|
+
import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-FfQGgW6W.js";
|
|
16
16
|
import { n as useConnections } from "./useConnections-Cs7LCWEM.js";
|
|
17
17
|
import { Nt as useUpdateWorkflowDefinitionMutation, Rt as useWorkflowDefinitionQuery, Vt as useWorkflowDefinitionsQuery, n as useAgentDefinitions } from "./useAgentDefinitions-B0dam3_o.js";
|
|
18
18
|
import { a as formToInput$2, i as emptyAgentForm, n as agentToForm, o as grantDays, r as describeRule, t as AgentFormError } from "./agent-form-Bfvm32j1.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { _ as throwIfResultError, n as getFluidGridsClient, x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
|
|
3
3
|
import { i as getGlobalStoreClient } from "./node-registry-refresh-Dy0uRg9f.js";
|
|
4
|
-
import { A as StoreNodeProductsByTypeDocument, C as GetMyNodeInstallationsDocument, D as InstallWorkflowNodeDocument, c as ensureInstalledNodeTypesLoaded, d as ensureRegistryNodeTypesLoaded,
|
|
4
|
+
import { A as StoreNodeProductsByTypeDocument, C as GetMyNodeInstallationsDocument, D as InstallWorkflowNodeDocument, c as ensureInstalledNodeTypesLoaded, d as ensureRegistryNodeTypesLoaded, gn as useFluidGridsAnalytics, i as AVAILABLE_NODES, o as NODE_CONFIGS, t as FluidGridsContext, x as BrowseWorkflowTemplatesDocument } from "./FluidGridsProvider-CbY91ZQq.js";
|
|
5
5
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
6
6
|
import { a as emitTemplateUsed, s as emitWorkflowCreated, t as emitNodeInstalled, y as isQuotaExhaustedFailure } from "./fluidgridsEvents-CNdcrUNN.js";
|
|
7
7
|
import { t as cn } from "./cn-QqidFIgr.js";
|
|
@@ -1079,7 +1079,7 @@ async function dismissToastWhenShown(id) {
|
|
|
1079
1079
|
}
|
|
1080
1080
|
|
|
1081
1081
|
// src/hooks/store/useTemplateImportFlow.tsx
|
|
1082
|
-
const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal
|
|
1082
|
+
const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal-BNtbJ2fv.js").then((m) => ({ default: m.TemplateConfigurationModal })));
|
|
1083
1083
|
/**
|
|
1084
1084
|
* "Use this template", the same everywhere it is offered: the builder's
|
|
1085
1085
|
* template panel, the Templates page and the template preview page
|
package/dist/{TemplateConfigurationModal--YswnkOD.js → TemplateConfigurationModal-BNtbJ2fv.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { a as DialogFooter, d as Input, i as DialogDescription, l as DialogTitle, o as DialogHeader, r as DialogContent, t as Dialog } from "./dialog-Cjb4lB4D.js";
|
|
3
3
|
import { t as Button } from "./button-DG7y_FVJ.js";
|
|
4
|
-
import { r as Badge } from "./TemplateCard-
|
|
4
|
+
import { r as Badge } from "./TemplateCard-HIMsb47R.js";
|
|
5
5
|
import { t as Label } from "./label-CDy86rIZ.js";
|
|
6
6
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
7
7
|
import { useEffect, useMemo, useState } from "react";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as Button } from "./button-DG7y_FVJ.js";
|
|
3
|
-
import { n as templatePreview, r as Badge } from "./TemplateCard-
|
|
3
|
+
import { n as templatePreview, r as Badge } from "./TemplateCard-HIMsb47R.js";
|
|
4
4
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
5
5
|
import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
|
|
6
6
|
import { Icon } from "@iconify/react";
|