@burdenoff/fluidgrids-fe-sdk 2026.1113.2 → 2026.1113.3

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 (57) hide show
  1. package/dist/{AiStudioPage-5KYZ8r8-.js → AiStudioPage-kQnqKTLK.js} +3 -3
  2. package/dist/{ExecutionDetailPage-BXDF2eoT.js → ExecutionDetailPage-2zr-EHVq.js} +8 -8
  3. package/dist/{ExecutionsListPage--4BthM8L.js → ExecutionsListPage-ASTpHWjv.js} +5 -5
  4. package/dist/{FailureTriagePanel-B5WCSRFo.js → FailureTriagePanel-CM-vmvbA.js} +1 -1
  5. package/dist/{HistoryPage-BvFk2m1m.js → HistoryPage-D2QBZ6Oc.js} +1 -1
  6. package/dist/{InsightsPage-Dwmb02F6.js → InsightsPage-BqbRbyc4.js} +4 -4
  7. package/dist/{OpenTemplateAsCodeButton-8MZHih6I.js → OpenTemplateAsCodeButton-BdcTxemq.js} +1 -1
  8. package/dist/{PaidTemplateConfirm-0G-gv29n.js → PaidTemplateConfirm-CSf_Wl1x.js} +1 -1
  9. package/dist/{SettingsPage-CfjXiGpb.js → SettingsPage-JwcsjXkM.js} +106 -2
  10. package/dist/{TaskQueuesPage--Mmn36b-.js → TaskQueuesPage-BwnNad_J.js} +1 -1
  11. package/dist/{TemplateCard-BA_9em22.js → TemplateCard-HSRLZw7S.js} +2 -2
  12. package/dist/{TemplateConfigurationModal-BT3PaR0O.js → TemplateConfigurationModal-CxUEsjbr.js} +1 -1
  13. package/dist/{TemplatePreview-Bagja6WN.js → TemplatePreview-xCpg2M_J.js} +4 -4
  14. package/dist/{TemplatesPage-CAajpJ5w.js → TemplatesPage-AAAJ2T7C.js} +4 -4
  15. package/dist/{WorkflowBuilder-v8h8skwG.js → WorkflowBuilder-DAeOmBhD.js} +2 -2
  16. package/dist/{WorkflowBuilder-DMpSPElu.js → WorkflowBuilder-rndStRRC.js} +4 -4
  17. package/dist/{WorkflowSearchRedirect-G78lINAE.js → WorkflowSearchRedirect-CVFby4w5.js} +1 -1
  18. package/dist/{WorkflowShareDialog-B7VOgr4-.js → WorkflowShareDialog-BcfzZDOj.js} +1 -1
  19. package/dist/{WorkflowVersionsDocument-CfPMloRW.js → WorkflowVersionsDocument-DRVOp8Uj.js} +18 -0
  20. package/dist/{WorkflowsList-CPYzfE4K.js → WorkflowsList-DuMF4-P0.js} +127 -14
  21. package/dist/{ai-usage-bmUn-gJP.js → ai-usage-D7SjIkUZ.js} +1 -1
  22. package/dist/{assert-rules-CPNrO44K.js → assert-rules-C5739QR0.js} +1 -1
  23. package/dist/executions.js +2 -2
  24. package/dist/{flow-builder-Dv5fWJ6F.js → flow-builder-Cf3mxhiN.js} +11 -11
  25. package/dist/{graphql-types-v6CTGwA0.js → graphql-types-C5Tr6508.js} +35 -1
  26. package/dist/history.js +1 -1
  27. package/dist/{index-DtMUtXNq.d.ts → index-BC0bLtnH.d.ts} +18 -2
  28. package/dist/{index-f_Nl7Ons.d.ts → index-CJGq3QbH.d.ts} +1 -0
  29. package/dist/index.d.ts +3 -3
  30. package/dist/index.js +31 -31
  31. package/dist/{node-detail-view-BKI_2kM6.js → node-detail-view-LaFhKUoA.js} +4 -4
  32. package/dist/{node-editor-tab-body-Cc1MWEFR.js → node-editor-tab-body-BL6QrLVL.js} +1 -1
  33. package/dist/observability.d.ts +1 -1
  34. package/dist/observability.js +1 -1
  35. package/dist/{popover-DDv7J1Kl.js → popover-PFfxvM9g.js} +1 -1
  36. package/dist/{quick-config-panel-BPCRfqWI.js → quick-config-panel-hrOn1WJp.js} +2 -2
  37. package/dist/{run-list-links-eUhZB1ju.js → run-list-links-DZ8Q5l35.js} +1 -1
  38. package/dist/run-mode-BMxym0mD.js +82 -0
  39. package/dist/{schedule-panel-C1KwfLCE.js → schedule-panel-BBI5V5AX.js} +4 -4
  40. package/dist/settings.js +1 -1
  41. package/dist/{sidebar-node-editor-d9Rlq5pU.js → sidebar-node-editor-CZ2hHqwr.js} +2 -2
  42. package/dist/{template-code-dqRunGOv.js → template-code-CobAYaeH.js} +1 -1
  43. package/dist/templates.js +2 -2
  44. package/dist/{useAgentDefinitions-ZKX2N9aP.js → useAgentDefinitions-B4EL7HU3.js} +1 -1
  45. package/dist/{useDurableParity-BgLH_SCF.js → useDurableParity-CoX24dE8.js} +1 -1
  46. package/dist/{useExecutions-Bm7q_UwN.js → useExecutions-CB1Rva2V.js} +1 -1
  47. package/dist/{useRunHistory-CGfjCsJ3.js → useRunHistory-dFVv-1Tn.js} +1 -1
  48. package/dist/{useWorkflowCodeExport-D_mCuhKP.js → useWorkflowCodeExport-Dej_LUk7.js} +2 -2
  49. package/dist/{useWorkflowProposal-Bh2_qjmM.js → useWorkflowProposal-UtJYycLv.js} +2 -2
  50. package/dist/{useWorkflows-aqVD7kGa.js → useWorkflows-DEWdntS_.js} +1 -1
  51. package/dist/workflow-builder.d.ts +1 -1
  52. package/dist/workflow-builder.js +3 -3
  53. package/dist/{workflow-code-transfer-5C0HUzae.js → workflow-code-transfer-Dbnvw5fc.js} +1 -1
  54. package/dist/workflow-pages.d.ts +2 -2
  55. package/dist/workflow-pages.js +13 -13
  56. package/dist/workflows-list.js +1 -1
  57. package/package.json +1 -1
@@ -1,22 +1,23 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { c as useImportWorkflow, h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, n as useCreateWorkflow, o as useDeleteWorkflow, s as useDuplicateWorkflow, u as usePreviewN8nImport } from "./useWorkflows-aqVD7kGa.js";
3
+ import { c as useImportWorkflow, h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, n as useCreateWorkflow, o as useDeleteWorkflow, s as useDuplicateWorkflow, u as usePreviewN8nImport } from "./useWorkflows-DEWdntS_.js";
4
4
  import { gt as createThenOpen, t as FluidGridsContext } from "./FluidGridsProvider-Dc_Jhtch.js";
5
- import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft, t as useExportWorkflowAs } from "./useWorkflowCodeExport-D_mCuhKP.js";
5
+ import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft, t as useExportWorkflowAs } from "./useWorkflowCodeExport-Dej_LUk7.js";
6
6
  import { c as isQuotaExhaustedFailure, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
7
7
  import { M as useFlowStore } from "./node-operation-selection-Czeeb2D4.js";
8
8
  import { a as SdkPermissionGate, i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
9
9
  import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-wvu_-WJ-.js";
10
10
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
11
- import { YF as WorkflowAccessFilter, rI as WorkflowExportFormat } from "./graphql-types-v6CTGwA0.js";
12
- import { a as assertImportByteSize, g as readProjectArchive, h as primaryImportModule, i as MAX_IMPORT_SOURCE_BYTES, l as importAcceptAttribute, n as ImportSourceError, r as MAX_IMPORT_ARCHIVE_BYTES, s as checkTypeScriptImport, t as CODE_EXPORT_FORMATS, u as importFileKind, v as typeScriptImportSource, x as workflowNameFromFile, y as typeScriptModuleFile } from "./workflow-code-transfer-5C0HUzae.js";
13
- import { i as canShareWorkflow, r as canEditWorkflow, t as WorkflowShareDialog } from "./WorkflowShareDialog-B7VOgr4-.js";
11
+ import { a as isExecutionMode, i as isAutonomyLevel, n as EXECUTION_MODES, o as useAutonomyLevelCopy, r as EXECUTION_MODE_ICONS, s as useExecutionModeCopy } from "./run-mode-BMxym0mD.js";
12
+ import { YF as WorkflowAccessFilter, aI as WorkflowExportFormat } from "./graphql-types-C5Tr6508.js";
13
+ import { a as assertImportByteSize, g as readProjectArchive, h as primaryImportModule, i as MAX_IMPORT_SOURCE_BYTES, l as importAcceptAttribute, n as ImportSourceError, r as MAX_IMPORT_ARCHIVE_BYTES, s as checkTypeScriptImport, t as CODE_EXPORT_FORMATS, u as importFileKind, v as typeScriptImportSource, x as workflowNameFromFile, y as typeScriptModuleFile } from "./workflow-code-transfer-Dbnvw5fc.js";
14
+ import { i as canShareWorkflow, r as canEditWorkflow, t as WorkflowShareDialog } from "./WorkflowShareDialog-BcfzZDOj.js";
14
15
  import { i as useOpenRequest, n as ACTION_PARAM_VALUES, r as useActionParam } from "./useActionParam-B0ebTZmg.js";
15
16
  import { d as useFluidGridsFlag, t as FLUIDGRIDS_FLAGS } from "./feature-flags-B_b8PJ6Z.js";
16
17
  import { n as downloadWorkflowExport, r as parseWorkflowImport } from "./workflow-transfer-CQnQC-ke.js";
17
18
  import { a as useWorkflowProjects, i as useWorkflowProjectActions, n as useWorkflowFolderActions, r as useWorkflowFolders, t as useBulkWorkflowActions } from "./useWorkflowOrganization-r5FWNBs6.js";
18
19
  import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
19
- import { a as useExecutions } from "./useExecutions-Bm7q_UwN.js";
20
+ import { a as useExecutions } from "./useExecutions-CB1Rva2V.js";
20
21
  import { a as firstWorkflowProgress, i as builderPathFor, r as GUIDED_TOUR_STATE } from "./firstWorkflow-C_h0KMB2.js";
21
22
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
22
23
  import { i as workflowsListControls } from "./pageControlSpecs-DZJ9K37m.js";
@@ -110,6 +111,69 @@ function WorkflowStatusPill({ status }) {
110
111
  });
111
112
  }
112
113
 
114
+ // src/components/run-mode/WorkflowRunModeBadges.tsx
115
+ const BADGE_CLASS = "inline-flex shrink-0 items-center gap-1 rounded-full border border-border px-2 py-0.5 text-[11px] font-medium text-muted-foreground";
116
+ /**
117
+ * A workflow's run mode and, when the author chose one, its autonomy level (BOFF-9955), as two
118
+ * small badges with their explanation in a tooltip. Renders nothing for values it does not know
119
+ * (an older service that does not send them yet). Needs a TooltipProvider above it.
120
+ */
121
+ function WorkflowRunModeBadges({ executionMode, autonomyLevel, className }) {
122
+ const tr = useTr();
123
+ const modes = useExecutionModeCopy();
124
+ const levels = useAutonomyLevelCopy();
125
+ const mode = isExecutionMode(executionMode) ? executionMode : null;
126
+ const level = isAutonomyLevel(autonomyLevel) ? autonomyLevel : null;
127
+ if (!mode && !level) return null;
128
+ return /* @__PURE__ */ jsxs("div", {
129
+ className: cn("flex flex-wrap items-center gap-1", className),
130
+ children: [mode && /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
131
+ asChild: true,
132
+ children: /* @__PURE__ */ jsxs("span", {
133
+ className: BADGE_CLASS,
134
+ "data-testid": "workflow-run-mode-badge",
135
+ "data-mode": mode,
136
+ "aria-label": tr("fluidgrids.runMode.badgeAriaLabel", "Run mode: {{mode}}", { mode: modes[mode].label }),
137
+ children: [/* @__PURE__ */ jsx(Icon, {
138
+ icon: EXECUTION_MODE_ICONS[mode],
139
+ className: "size-3",
140
+ "aria-hidden": "true"
141
+ }), modes[mode].label]
142
+ })
143
+ }), /* @__PURE__ */ jsx(TooltipContent, {
144
+ side: "top",
145
+ children: /* @__PURE__ */ jsx("p", { children: modes[mode].hint })
146
+ })] }), level && /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
147
+ asChild: true,
148
+ children: /* @__PURE__ */ jsxs("span", {
149
+ className: BADGE_CLASS,
150
+ "data-testid": "workflow-autonomy-badge",
151
+ "data-level": level,
152
+ "aria-label": tr("fluidgrids.autonomy.badgeAriaLabel", "Autonomy level: {{level}}", { level: levels[level].label }),
153
+ children: [/* @__PURE__ */ jsx(Icon, {
154
+ icon: "mdi:shield-account-outline",
155
+ className: "size-3",
156
+ "aria-hidden": "true"
157
+ }), level]
158
+ })
159
+ }), /* @__PURE__ */ jsxs(TooltipContent, {
160
+ side: "top",
161
+ className: "max-w-xs",
162
+ children: [
163
+ /* @__PURE__ */ jsx("p", {
164
+ className: "font-medium",
165
+ children: levels[level].label
166
+ }),
167
+ /* @__PURE__ */ jsx("p", { children: levels[level].hint }),
168
+ /* @__PURE__ */ jsx("p", {
169
+ className: "mt-1 text-[11px] opacity-80",
170
+ children: tr("fluidgrids.autonomy.notEnforcedYet", "Recorded only for now: agent approvals do not follow this level yet.")
171
+ })
172
+ ]
173
+ })] })]
174
+ });
175
+ }
176
+
113
177
  // src/builder/components/ui/workflow-export-menu.tsx
114
178
  /**
115
179
  * The workflow card's Export menu with code-first on (BOFF-9904, spec 07 §8):
@@ -301,6 +365,11 @@ const CardWorkflow = ({ workflow, onUpdateSuccess, onExport, onExportAs, exporti
301
365
  title: description || void 0,
302
366
  children: description || tr("fluidgrids.builder.cardWorkflow.noDescription", "No description")
303
367
  }),
368
+ /* @__PURE__ */ jsx(WorkflowRunModeBadges, {
369
+ executionMode: workflow.execution_mode,
370
+ autonomyLevel: workflow.autonomy_level,
371
+ className: "mt-2"
372
+ }),
304
373
  workflow.tags && workflow.tags.length > 0 && /* @__PURE__ */ jsxs("div", {
305
374
  className: "mt-2 flex flex-wrap items-center gap-1",
306
375
  children: [workflow.tags.slice(0, 3).map((tag) => /* @__PURE__ */ jsx(TagBadge, {
@@ -1836,6 +1905,7 @@ function DescriptionForm({ workflow, onClose, onSaved }) {
1836
1905
  * ?access=mine | shared (absent or "all" = every visible workflow)
1837
1906
  * ?status=active | draft | archived | deprecated (absent = any status)
1838
1907
  * ?folder=<folder id> (absent = all folders)
1908
+ * ?mode=deterministic | agentic | hybrid (absent = any run mode, BOFF-9955)
1839
1909
  *
1840
1910
  * Unknown values fall back to the default rather than erroring. Writes use
1841
1911
  * history replace, so toggling chips does not flood the back stack, and a
@@ -1844,7 +1914,8 @@ function DescriptionForm({ workflow, onClose, onSaved }) {
1844
1914
  const WORKFLOWS_LIST_PARAMS = {
1845
1915
  access: "access",
1846
1916
  status: "status",
1847
- folder: "folder"
1917
+ folder: "folder",
1918
+ mode: "mode"
1848
1919
  };
1849
1920
  /** The workflow statuses the list's status chips offer. */
1850
1921
  const WORKFLOW_LIST_STATUSES = [
@@ -1888,6 +1959,15 @@ function folderFromParam(value) {
1888
1959
  const trimmed = value?.trim();
1889
1960
  return trimmed ? trimmed : null;
1890
1961
  }
1962
+ /** `agentic` / `AGENTIC` → AGENTIC (BOFF-9955); anything unknown → no filter. */
1963
+ function modeFromParam(value) {
1964
+ if (!value) return null;
1965
+ const upper = value.trim().toUpperCase();
1966
+ return isExecutionMode(upper) ? upper : null;
1967
+ }
1968
+ function modeToParam(mode) {
1969
+ return mode ? mode.toLowerCase() : null;
1970
+ }
1891
1971
  /**
1892
1972
  * Applies a filter patch to a copy of `params`. Keys missing from the patch
1893
1973
  * are left untouched; default values delete their parameter. Unrelated
@@ -1902,6 +1982,7 @@ function applyFilterPatch(params, patch) {
1902
1982
  if (patch.access !== void 0) write(WORKFLOWS_LIST_PARAMS.access, accessToParam(patch.access));
1903
1983
  if (patch.status !== void 0) write(WORKFLOWS_LIST_PARAMS.status, statusToParam(patch.status));
1904
1984
  if (patch.folder !== void 0) write(WORKFLOWS_LIST_PARAMS.folder, folderFromParam(patch.folder));
1985
+ if (patch.mode !== void 0) write(WORKFLOWS_LIST_PARAMS.mode, modeToParam(patch.mode));
1905
1986
  return next;
1906
1987
  }
1907
1988
  function useWorkflowsListUrlState() {
@@ -1909,6 +1990,7 @@ function useWorkflowsListUrlState() {
1909
1990
  const access = accessFromParam(searchParams.get(WORKFLOWS_LIST_PARAMS.access));
1910
1991
  const status = statusFromParam(searchParams.get(WORKFLOWS_LIST_PARAMS.status));
1911
1992
  const folder = folderFromParam(searchParams.get(WORKFLOWS_LIST_PARAMS.folder));
1993
+ const mode = modeFromParam(searchParams.get(WORKFLOWS_LIST_PARAMS.mode));
1912
1994
  const update = useCallback((patch) => {
1913
1995
  setSearchParams((prev) => applyFilterPatch(prev, patch), { replace: true });
1914
1996
  }, [setSearchParams]);
@@ -1916,14 +1998,17 @@ function useWorkflowsListUrlState() {
1916
1998
  access,
1917
1999
  status,
1918
2000
  folder,
2001
+ mode,
1919
2002
  update,
1920
2003
  setAccess: (next) => update({ access: next }),
1921
2004
  setStatus: (next) => update({ status: next }),
1922
- setFolder: (next) => update({ folder: next })
2005
+ setFolder: (next) => update({ folder: next }),
2006
+ setMode: (next) => update({ mode: next })
1923
2007
  }), [
1924
2008
  access,
1925
2009
  status,
1926
2010
  folder,
2011
+ mode,
1927
2012
  update
1928
2013
  ]);
1929
2014
  }
@@ -1991,16 +2076,18 @@ function WorkflowsList() {
1991
2076
  const ACCESS_FILTERS = useAccessFilters();
1992
2077
  const workspaceId = useContext(FluidGridsContext)?.workspaceId ?? "";
1993
2078
  const urlFilters = useWorkflowsListUrlState();
1994
- const { access: accessFilter, status: statusFilter, folder: folderFilter, setAccess: setAccessFilter, setStatus: setStatusFilter, setFolder: setFolderFilter } = urlFilters;
2079
+ const { access: accessFilter, status: statusFilter, folder: folderFilter, mode: modeFilter, setAccess: setAccessFilter, setStatus: setStatusFilter, setFolder: setFolderFilter, setMode: setModeFilter } = urlFilters;
2080
+ const modeCopy = useExecutionModeCopy();
1995
2081
  const { workflows, loading, error, tagsByKey, refetch } = useWorkflowDefinitions({
1996
2082
  limit: 100,
1997
2083
  latestOnly: true,
1998
- ...accessFilter === "ALL" ? {} : { access: accessFilter }
2084
+ ...accessFilter === "ALL" ? {} : { access: accessFilter },
2085
+ ...modeFilter ? { executionMode: modeFilter } : {}
1999
2086
  });
2000
2087
  const [sharing, setSharing] = useState(null);
2001
2088
  const [moving, setMoving] = useState(null);
2002
2089
  const [describing, setDescribing] = useState(null);
2003
- const filteredByAccess = accessFilter !== "ALL";
2090
+ const filteredOnServer = accessFilter !== "ALL" || modeFilter !== null;
2004
2091
  const { getWorkflow } = useLazyWorkflowDefinition();
2005
2092
  const createPermission = useFluidGridsPermission(FLUIDGRIDS_PERMISSIONS.WORKFLOW_CREATE);
2006
2093
  const canCreate = createPermission.allowed;
@@ -2197,7 +2284,7 @@ function WorkflowsList() {
2197
2284
  workflows,
2198
2285
  canCreate
2199
2286
  }),
2200
- !loading && !error && (workflows.length > 0 || filteredByAccess) && /* @__PURE__ */ jsxs("div", {
2287
+ !loading && !error && (workflows.length > 0 || filteredOnServer) && /* @__PURE__ */ jsxs("div", {
2201
2288
  className: "flex flex-wrap items-center gap-3",
2202
2289
  "data-tour": "fluidgrids-list-toolbar",
2203
2290
  children: [
@@ -2231,6 +2318,30 @@ function WorkflowsList() {
2231
2318
  children: option.label
2232
2319
  }, option.value))
2233
2320
  }),
2321
+ /* @__PURE__ */ jsxs("div", {
2322
+ className: "flex flex-wrap items-center gap-1.5",
2323
+ role: "group",
2324
+ "aria-label": tr("fluidgrids.workflowsList.mode.label", "Run mode"),
2325
+ "data-testid": "workflow-mode-filter",
2326
+ children: [/* @__PURE__ */ jsx("button", {
2327
+ type: "button",
2328
+ "aria-pressed": modeFilter === null,
2329
+ onClick: () => setModeFilter(null),
2330
+ className: cn("rounded-full border px-3 py-1 text-xs font-medium transition-colors", modeFilter === null ? "border-transparent bg-primary text-primary-foreground" : "border-border bg-card text-muted-foreground hover:text-foreground"),
2331
+ children: tr("fluidgrids.workflowsList.mode.all", "Any mode")
2332
+ }), EXECUTION_MODES.map((mode) => /* @__PURE__ */ jsxs("button", {
2333
+ type: "button",
2334
+ "aria-pressed": modeFilter === mode,
2335
+ title: modeCopy[mode].hint,
2336
+ onClick: () => setModeFilter(modeFilter === mode ? null : mode),
2337
+ className: cn("inline-flex items-center gap-1 rounded-full border px-3 py-1 text-xs font-medium transition-colors", modeFilter === mode ? "border-transparent bg-primary text-primary-foreground" : "border-border bg-card text-muted-foreground hover:text-foreground"),
2338
+ children: [/* @__PURE__ */ jsx(Icon, {
2339
+ icon: EXECUTION_MODE_ICONS[mode],
2340
+ className: "size-3.5",
2341
+ "aria-hidden": "true"
2342
+ }), modeCopy[mode].label]
2343
+ }, mode))]
2344
+ }),
2234
2345
  /* @__PURE__ */ jsxs(Button, {
2235
2346
  variant: selectMode ? "secondary" : "outline",
2236
2347
  size: "sm",
@@ -2306,7 +2417,7 @@ function WorkflowsList() {
2306
2417
  })
2307
2418
  ]
2308
2419
  })
2309
- }) : workflows.length === 0 && !filteredByAccess ? /* @__PURE__ */ jsx("div", {
2420
+ }) : workflows.length === 0 && !filteredOnServer ? /* @__PURE__ */ jsx("div", {
2310
2421
  className: "grid flex-1 place-items-center",
2311
2422
  children: /* @__PURE__ */ jsx(IllustratedEmptyState, {
2312
2423
  illustration: "onboarding",
@@ -2370,7 +2481,9 @@ function WorkflowsList() {
2370
2481
  color: a.tagInfo?.color ?? void 0
2371
2482
  })),
2372
2483
  visibility: workflow.visibility ?? void 0,
2373
- my_access: workflow.myAccess ?? null
2484
+ my_access: workflow.myAccess ?? null,
2485
+ execution_mode: workflow.executionMode ?? null,
2486
+ autonomy_level: workflow.autonomyLevel ?? null
2374
2487
  },
2375
2488
  onUpdateSuccess: () => refetch(),
2376
2489
  onShare: () => setSharing({
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { Sw as OptimisationKind, xw as OptimisationDismissReason } from "./graphql-types-v6CTGwA0.js";
2
+ import { Sw as OptimisationKind, xw as OptimisationDismissReason } from "./graphql-types-C5Tr6508.js";
3
3
 
4
4
  // src/modules/observability/optimisation.ts
5
5
  /** The look-back window the detectors use when the evidence does not say. */
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { jI as WorkflowTestAssertionOperator } from "./graphql-types-v6CTGwA0.js";
2
+ import { NI as WorkflowTestAssertionOperator } from "./graphql-types-C5Tr6508.js";
3
3
 
4
4
  // src/builder/lib/assert-rules.ts
5
5
  /** Every operator, in the order the editors offer them. */
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as ExecutionsListPage } from "./ExecutionsListPage--4BthM8L.js";
3
- import { t as ExecutionDetailPage } from "./ExecutionDetailPage-BXDF2eoT.js";
2
+ import { t as ExecutionsListPage } from "./ExecutionsListPage-ASTpHWjv.js";
3
+ import { t as ExecutionDetailPage } from "./ExecutionDetailPage-2zr-EHVq.js";
4
4
 
5
5
  export { ExecutionDetailPage, ExecutionsListPage };
@@ -6,7 +6,7 @@ import { n as preloadableLazy } from "./preloadable-lazy-Pp47mqQ9.js";
6
6
  import { t as Input$1 } from "./input-ChT6Q-Pr.js";
7
7
  import { t as useGlobalStoreClient } from "./useGlobalStoreClient-DMTrywdX.js";
8
8
  import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
9
- import { _ as useInstalledNodes, d as getStoreNodeAvailability, f as getStoreNodeIcon, g as storeNodeInstallVersion, h as storeNodeDisplayVersion, i as useTemplateImportFlow, l as useWorkflowTemplates, m as isStoreNodeUpdateAvailable, p as getStoreNodeType, t as TemplateCard, u as filterStoreNodesForPalette } from "./TemplateCard-BA_9em22.js";
9
+ import { _ as useInstalledNodes, d as getStoreNodeAvailability, f as getStoreNodeIcon, g as storeNodeInstallVersion, h as storeNodeDisplayVersion, i as useTemplateImportFlow, l as useWorkflowTemplates, m as isStoreNodeUpdateAvailable, p as getStoreNodeType, t as TemplateCard, u as filterStoreNodesForPalette } from "./TemplateCard-HSRLZw7S.js";
10
10
  import { _ as useWorkflowTestsEnabled, d as useFluidGridsFlag, h as usePhaseDFlags, l as useDurableFunctionNodesEnabled, p as usePaletteGates, t as FLUIDGRIDS_FLAGS, u as useDurableParityEnabled } from "./feature-flags-B_b8PJ6Z.js";
11
11
  import { i as filterPaletteNodes } from "./durable-nodes-DXCCQYWD.js";
12
12
  import { c as NODE_TYPE_DRAG_DATA_FORMAT, l as STICKY_NOTE_TYPE, s as NODE_OPERATION_DRAG_DATA_FORMAT } from "./sticky-notes-23j-wL6Q.js";
@@ -24,25 +24,25 @@ import { i as emitFluidGridsEvent } from "./token-refresh-link-BjN7H4qA.js";
24
24
  import { n as useBuilderReadOnly, t as BuilderReadOnlyProvider } from "./read-only-context-Dt9N9SIG.js";
25
25
  import { r as MAPPING_TYPE_COLORS, t as MAPPING_COMPATIBILITY_COLORS } from "./mapping-colors-BIX_YeCQ.js";
26
26
  import { n as LogsPanel } from "./logs-panel-DtG93ocy.js";
27
- import { c as emptyTestCaseDraft, d as nextSortOrder, f as pinnedOutputsFromCanvas, g as useAgentTokenStream, h as testStatusTone, i as TEST_STATUS_TONE_CLASS, l as enabledCaseIds, m as testStatusLabel, o as draftFromTestCase, p as testRunSummaryText, r as useWorkflowTests, s as draftToInput, t as useWorkflowProposal, u as isTestRunOpen, y as latestAgentTokenStream } from "./useWorkflowProposal-Bh2_qjmM.js";
28
- import { r as useExecutionActions } from "./useExecutions-Bm7q_UwN.js";
27
+ import { c as emptyTestCaseDraft, d as nextSortOrder, f as pinnedOutputsFromCanvas, g as useAgentTokenStream, h as testStatusTone, i as TEST_STATUS_TONE_CLASS, l as enabledCaseIds, m as testStatusLabel, o as draftFromTestCase, p as testRunSummaryText, r as useWorkflowTests, s as draftToInput, t as useWorkflowProposal, u as isTestRunOpen, y as latestAgentTokenStream } from "./useWorkflowProposal-UtJYycLv.js";
28
+ import { r as useExecutionActions } from "./useExecutions-CB1Rva2V.js";
29
29
  import { n as useAgentMarksStore } from "./marksStore-DGCXjTmZ.js";
30
30
  import { t as notesKeyOf } from "./notesKey-5EaREBGA.js";
31
- import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, i as normalizeWorkflowDescription, n as useWorkflowCodeExport, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft } from "./useWorkflowCodeExport-D_mCuhKP.js";
31
+ import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, i as normalizeWorkflowDescription, n as useWorkflowCodeExport, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft } from "./useWorkflowCodeExport-Dej_LUk7.js";
32
32
  import { r as RUNS_QUOTA_NAME, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
33
33
  import { t as EntityTagPicker } from "./EntityTagPicker-BppBSEJk.js";
34
34
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
35
35
  import { n as runsQuotaLevel, t as readRunsQuota } from "./runsQuota-DvXR6mRN.js";
36
36
  import { a as SdkPermissionGate, i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
37
- import { a as useDeactivateWorkflow, d as useRestoreWorkflowVersion, o as useDeleteWorkflow, t as useActivateWorkflow, v as useWorkflowVersions } from "./useWorkflows-aqVD7kGa.js";
37
+ import { a as useDeactivateWorkflow, d as useRestoreWorkflowVersion, o as useDeleteWorkflow, t as useActivateWorkflow, v as useWorkflowVersions } from "./useWorkflows-DEWdntS_.js";
38
38
  import { t as WorkflowDefinitionDocument } from "./WorkflowDefinitionDocument-DZLbTPUZ.js";
39
39
  import { o as countLifecycle, t as VersionLifecycleBar } from "./VersionLifecycleBar-DuphLOT0.js";
40
- import { $P as VersioningBehavior, Eu as DrainageStatus, MI as WorkflowTestExpectedStatus, jo as CodeReplaceStatus, nI as WorkflowEnvironment, rI as WorkflowExportFormat } from "./graphql-types-v6CTGwA0.js";
40
+ import { $P as VersioningBehavior, Eu as DrainageStatus, PI as WorkflowTestExpectedStatus, aI as WorkflowExportFormat, jo as CodeReplaceStatus, rI as WorkflowEnvironment } from "./graphql-types-C5Tr6508.js";
41
41
  import { t as buildNodeDisplayMap } from "./run-display-BycKYSU0.js";
42
42
  import { n as useRequestedProposal } from "./useRequestedProposal-B7uPXfZB.js";
43
43
  import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
44
44
  import { t as downloadBlob } from "./workflow-transfer-CQnQC-ke.js";
45
- import { _ as sortFidelityItems, c as fileBaseName, d as isLosslessReport, f as isLossyFidelityItem, m as orderedExportFiles, o as buildExportDownload, p as lineOfNode } from "./workflow-code-transfer-5C0HUzae.js";
45
+ import { _ as sortFidelityItems, c as fileBaseName, d as isLosslessReport, f as isLossyFidelityItem, m as orderedExportFiles, o as buildExportDownload, p as lineOfNode } from "./workflow-code-transfer-Dbnvw5fc.js";
46
46
  import { Suspense, lazy, useCallback, useContext, useDeferredValue, useEffect, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
47
47
  import { Link, useNavigate, useParams } from "react-router";
48
48
  import { useMutation, useQuery } from "@apollo/client/react";
@@ -6683,10 +6683,10 @@ function IntroductionPropertyPanel() {
6683
6683
  * waiting for its chunk and React's Suspense throttle (about 0.5 s on first
6684
6684
  * open even with the chunk cached).
6685
6685
  */
6686
- const NodeDetailViewOverlay = preloadableLazy(() => import("./node-detail-view-BKI_2kM6.js").then((m) => m.NodeDetailView), "NodeDetailView");
6687
- const QuickConfigPanelOverlay = preloadableLazy(() => import("./quick-config-panel-BPCRfqWI.js").then((m) => m.QuickConfigPanel), "QuickConfigPanel");
6688
- const SidebarNodeEditorOverlay = preloadableLazy(() => import("./sidebar-node-editor-d9Rlq5pU.js").then((m) => m.SidebarNodeEditor), "SidebarNodeEditor");
6689
- const WorkflowShareDialogOverlay = preloadableLazy(() => import("./WorkflowShareDialog-B7VOgr4-.js").then((n) => n.n).then((m) => m.WorkflowShareDialog), "WorkflowShareDialog");
6686
+ const NodeDetailViewOverlay = preloadableLazy(() => import("./node-detail-view-LaFhKUoA.js").then((m) => m.NodeDetailView), "NodeDetailView");
6687
+ const QuickConfigPanelOverlay = preloadableLazy(() => import("./quick-config-panel-hrOn1WJp.js").then((m) => m.QuickConfigPanel), "QuickConfigPanel");
6688
+ const SidebarNodeEditorOverlay = preloadableLazy(() => import("./sidebar-node-editor-CZ2hHqwr.js").then((m) => m.SidebarNodeEditor), "SidebarNodeEditor");
6689
+ const WorkflowShareDialogOverlay = preloadableLazy(() => import("./WorkflowShareDialog-BcfzZDOj.js").then((n) => n.n).then((m) => m.WorkflowShareDialog), "WorkflowShareDialog");
6690
6690
  const ConnectionFormDialogOverlay = preloadableLazy(() => import("./ConnectionFormDialog-Dr1-CTan.js").then((n) => n.n).then((m) => m.ConnectionFormDialog), "ConnectionFormDialog");
6691
6691
  const EdgeMapperOverlay = preloadableLazy(() => import("./app-BJUvugPM.js").then((m) => m.default), "EdgeMapper");
6692
6692
  const EdgeConditionBuilderOverlay = preloadableLazy(() => import("./conditionBuilder-D8aLGL1w.js").then((m) => m.default), "EdgeConditionBuilder");