@burdenoff/fluidgrids-fe-sdk 2026.1114.6 → 2026.1115.1

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 (64) hide show
  1. package/dist/{AiStudioPage-C2SBRqab.js → AiStudioPage-CtHmZ3Lw.js} +4 -4
  2. package/dist/{DataSinkDashboardPage-Dnp1yRYQ.js → DataSinkDashboardPage-DFtWv2nD.js} +1 -1
  3. package/dist/{ExecutionDetailPage-B-8s_Sqw.js → ExecutionDetailPage-D5iWwMnk.js} +8 -8
  4. package/dist/{ExecutionsListPage-Ky3TAL9U.js → ExecutionsListPage-BYW5WiX7.js} +6 -6
  5. package/dist/FileDownloadUrlDocument-CVOYKcL5.js +92 -0
  6. package/dist/{FluidGridsProvider-C-WGQwuT.js → FluidGridsProvider-CDjkq3Zj.js} +281 -59
  7. package/dist/{HistoryPage-D4rkw4zu.js → HistoryPage-fMZlXsIY.js} +1 -1
  8. package/dist/{InsightsPage-CVzNu4F7.js → InsightsPage-DozSYGVD.js} +1 -1
  9. package/dist/NodeUsageStatusDocument-B-XguSjm.js +531 -0
  10. package/dist/{OpenTemplateAsCodeButton-pepQUqje.js → OpenTemplateAsCodeButton-Cjnagq9H.js} +2 -2
  11. package/dist/{PaidTemplateConfirm-BJCcJh5t.js → PaidTemplateConfirm-Crs0CXXl.js} +1 -1
  12. package/dist/{SettingsPage-BSucNHrq.js → SettingsPage-qSvV7r0y.js} +6 -6
  13. package/dist/{TaskQueuesPage-WMJz9imi.js → TaskQueuesPage-BuWQwT5I.js} +2 -2
  14. package/dist/{TemplateCard-Cx_eZr9q.js → TemplateCard-BsrXJ1Su.js} +21 -5
  15. package/dist/{TemplateConfigurationModal-D2i7ZXOM.js → TemplateConfigurationModal-B_ME8M-1.js} +1 -1
  16. package/dist/{TemplatePreview-DwdGa8bH.js → TemplatePreview-BOIhJSBD.js} +5 -5
  17. package/dist/{TemplatesPage-DF5PK7CB.js → TemplatesPage-dj7NseMt.js} +358 -16
  18. package/dist/{WorkflowBuilder-DkzzbrNn.js → WorkflowBuilder-ByG9twmu.js} +5 -5
  19. package/dist/{WorkflowBuilder-CjsO7i-D.js → WorkflowBuilder-DjpAoBVO.js} +3 -3
  20. package/dist/{WorkflowSearchRedirect-0MLrCjDn.js → WorkflowSearchRedirect-DRidTx1L.js} +1 -1
  21. package/dist/{WorkflowsList-4VADoiz_.js → WorkflowsList-BQ_5hkWi.js} +6 -7
  22. package/dist/{agentTools-DuCukaUX.js → agentTools-Cx5yPBe7.js} +3 -2
  23. package/dist/{api-DKfMt0IX.js → api-CEzqoN5H.js} +1 -1
  24. package/dist/{api-CEnNq15C.js → api-o5UUDbr8.js} +1 -1
  25. package/dist/{canvasNoteTools-DnsO-gHe.js → canvasNoteTools-BxknF5rX.js} +1 -1
  26. package/dist/executions.js +2 -2
  27. package/dist/{flow-builder-CIV6u8y-.js → flow-builder-D8f31DFR.js} +25 -36
  28. package/dist/history.js +1 -1
  29. package/dist/{index-BY0V255h.d.ts → index-BprVea6e.d.ts} +5 -2
  30. package/dist/index.d.ts +1 -1
  31. package/dist/index.js +100 -97
  32. package/dist/{node-detail-view-DkajTGfb.js → node-detail-view-C__INEVF.js} +9 -219
  33. package/dist/{node-editor-tab-body-ChLrBfKp.js → node-editor-tab-body-BintGoSp.js} +2 -2
  34. package/dist/observability.d.ts +1 -1
  35. package/dist/observability.js +2 -2
  36. package/dist/{popover-CCJlf41J.js → popover-2-6xmS1q.js} +3 -3
  37. package/dist/{quick-config-panel-Bq_uF9XF.js → quick-config-panel-Bxi9TwCG.js} +3 -3
  38. package/dist/{schedule-panel-7TtPt1t_.js → schedule-panel-BbRtGDEt.js} +6 -6
  39. package/dist/settings.js +1 -1
  40. package/dist/{shared-C0LCTtyh.js → shared-mbyvDPde.js} +2 -24
  41. package/dist/{sidebar-node-editor-n-7ux5IN.js → sidebar-node-editor-DG-34YEW.js} +3 -3
  42. package/dist/{template-code-B3cMigJS.js → template-code-B7x-XMAm.js} +9 -2
  43. package/dist/templates.js +2 -2
  44. package/dist/typed-calls-BqokR321.js +26 -0
  45. package/dist/{WorkflowEditLeaseStatusDocument-Dp62med3.js → use-workflow-code-editor-CBOkjntt.js} +216 -90
  46. package/dist/{useAgentDefinitions-Daa3fGVg.js → useAgentDefinitions-YUDx_OW2.js} +2 -2
  47. package/dist/useConnections-CmnwGk09.js +439 -0
  48. package/dist/{useDurableParity-gigqyXDq.js → useDurableParity-X_zfFzQv.js} +1 -1
  49. package/dist/{useExecutions-wka2Z5w3.js → useExecutions-BWbMt16D.js} +1 -1
  50. package/dist/{useGlobalStoreClient-BcwWGtm7.js → useGlobalStoreClient-CwBAeiXV.js} +1 -1
  51. package/dist/{useObservability-CjZTYldC.js → useObservability-mXM7lCop.js} +1 -1
  52. package/dist/{useRunHistory-Be-GggNA.js → useRunHistory-DYDriBz1.js} +1 -1
  53. package/dist/{useWorkflowCodeExport-lRmbjY49.js → useWorkflowCodeExport-uKBDVvnA.js} +78 -114
  54. package/dist/{useWorkflows-BrqrVT8h.js → useWorkflows-Dg7q_Tzf.js} +1 -1
  55. package/dist/workflow-builder.js +4 -4
  56. package/dist/workflow-description-CeXdyWX8.js +123 -0
  57. package/dist/workflow-pages.d.ts +1 -1
  58. package/dist/workflow-pages.js +14 -14
  59. package/dist/{workflow-code-transfer-BsLPUrKP.js → workflow-transfer-CktP7o1c.js} +103 -1
  60. package/dist/workflows-list.js +1 -1
  61. package/package.json +1 -1
  62. package/dist/QuotaExhaustedDialog-YjKgRTmu.js +0 -55
  63. package/dist/useConnections-BlB0gbOB.js +0 -931
  64. package/dist/workflow-transfer-CQnQC-ke.js +0 -104
@@ -1,22 +1,22 @@
1
1
  "use client";
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
- import { A as useFlowStore, a as changedSourceFiles, c as diagnosticsByPath, d as isEditableSourcePath, f as projectLanguage, h as sourceLanguageOf, l as interfaceFields, o as childRunIdOf, p as readCodeWorkflowState, r as CODE_WORKFLOW_NODE_TYPE, s as defaultSourcePath, u as interfaceHandlers } from "./node-operation-selection-DHbtGNrG.js";
4
- import { B as nodeSubtitle, G as useNodeConfig, Un as getNodeDetail, V as nodeTitle, en as useNodeExecution, gn as useCodeWorkflowInterface, mn as clearCodeWorkflowDefinitionCache, ot as useGuardedNavigate, rt as latestNodeLog, sn as fieldsFromValue, tt as FieldTree, vn as declaredSignals } from "./FluidGridsProvider-C-WGQwuT.js";
5
- import { a as TabButton, c as NDV_Z_INDEX, i as ReadOnlyFieldset, n as SchedulePanel, o as NodeSettingsPanel, r as NodeExecutionActions, s as NodeParamsForm, t as SCHEDULE_NODE_TYPE } from "./schedule-panel-7TtPt1t_.js";
3
+ import { A as useFlowStore, c as diagnosticsByPath, h as sourceLanguageOf, l as interfaceFields, o as childRunIdOf, p as readCodeWorkflowState, r as CODE_WORKFLOW_NODE_TYPE, u as interfaceHandlers } from "./node-operation-selection-DHbtGNrG.js";
4
+ import { Gn as getNodeDetail, H as nodeSubtitle, U as nodeTitle, at as latestNodeLog, bn as declaredSignals, ct as useGuardedNavigate, gn as clearCodeWorkflowDefinitionCache, ln as fieldsFromValue, nn as useNodeExecution, q as useNodeConfig, rt as FieldTree, vn as useCodeWorkflowInterface } from "./FluidGridsProvider-CDjkq3Zj.js";
5
+ import { a as TabButton, c as NDV_Z_INDEX, i as ReadOnlyFieldset, n as SchedulePanel, o as NodeSettingsPanel, r as NodeExecutionActions, s as NodeParamsForm, t as SCHEDULE_NODE_TYPE } from "./schedule-panel-BbRtGDEt.js";
6
6
  import { n as getFluidGridsClient, r as getFluidGridsClientSafe } from "./client-Ctl4jmY3.js";
7
- import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
8
- import { i as FileDownloadUrlDocument, n as WorkflowCodeSourceDocument, r as BuildWorkflowCodeDocument, t as WorkflowEditLeaseStatusDocument } from "./WorkflowEditLeaseStatusDocument-Dp62med3.js";
7
+ import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
8
+ import { t as FileDownloadUrlDocument } from "./FileDownloadUrlDocument-CVOYKcL5.js";
9
9
  import { r as TableView, t as JsonView } from "./logs-panel-BgGt_dFm.js";
10
- import { hn as NodeStatesDocument, jt as useUnpinNodeDataMutation, qt as useWorkflowPinnedDataQuery, st as usePinNodeDataMutation } from "./useAgentDefinitions-Daa3fGVg.js";
10
+ import { hn as NodeStatesDocument, jt as useUnpinNodeDataMutation, qt as useWorkflowPinnedDataQuery, st as usePinNodeDataMutation } from "./useAgentDefinitions-YUDx_OW2.js";
11
11
  import { l as useDurableFunctionNodesEnabled, m as usePhaseCFlags } from "./feature-flags-B_b8PJ6Z.js";
12
12
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
13
13
  import { t as CodeEditorField } from "./code-editor-field-Cv907s3W.js";
14
- import { h as fetchCodeBundleSdk } from "./api-CEnNq15C.js";
15
- import { n as SignalRunDialog, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-Be-GggNA.js";
14
+ import { n as useWorkflowCodeEditor } from "./use-workflow-code-editor-CBOkjntt.js";
15
+ import { n as SignalRunDialog, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-DYDriBz1.js";
16
16
  import { s as isAgentNodeType } from "./agent-form-D0uLvzx4.js";
17
17
  import { n as agentTracePath } from "./ai-usage-Dit3U_aG.js";
18
18
  import * as React from "react";
19
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
19
+ import { useEffect, useMemo, useRef, useState } from "react";
20
20
  import { useNavigate } from "react-router";
21
21
  import { Icon } from "@iconify/react";
22
22
  import { cn } from "@burdenoff/fe-libs/utils";
@@ -444,216 +444,6 @@ function useMediaQuery(query) {
444
444
  return matches;
445
445
  }
446
446
 
447
- // src/builder/components/code-workflow/use-workflow-code-editor.ts
448
- /**
449
- * In-browser editing of tier-2 workflow source (BOFF-9905, spec code-first
450
- * 07 §5): load the version's project files, check them with the managed
451
- * build, and save them as a new version.
452
- *
453
- * - **Load.** `workflowCodeSource` (project files only; vendored files stay
454
- * on the service so a rebuild gives the CLI's `buildId`) together with the
455
- * version's `revision` (BOFF-9725) and definition.
456
- * - **Edit lease.** While another person holds the workflow's edit lease the
457
- * editor is read-only and Save is off, as the canvas is. When the lease
458
- * store is unavailable editing is not coordinated and the revision check
459
- * still protects the save.
460
- * - **Check.** `buildWorkflowCode(commit: false)`: the same toolchain as
461
- * `fluidgrids push`, type errors returned as diagnostics.
462
- * - **Save.** `buildWorkflowCode(commit: true, revision)`: the service
463
- * builds, stores the bundle and creates a new version from the loaded
464
- * revision, refusing a save made after someone else changed the version.
465
- *
466
- * Python projects are read-only (Python in-browser builds are Phase C).
467
- */
468
- function entryOf(definitionJson) {
469
- if (typeof definitionJson !== "object" || definitionJson === null || Array.isArray(definitionJson)) return void 0;
470
- const code = definitionJson.code;
471
- if (typeof code !== "object" || code === null || Array.isArray(code)) return void 0;
472
- const entry = code.entry;
473
- return typeof entry === "string" ? entry : void 0;
474
- }
475
- async function fetchWorkflowCodeSource(workflowKey, version) {
476
- const result = await getFluidGridsClient().query({
477
- query: WorkflowCodeSourceDocument,
478
- variables: {
479
- workflowKey,
480
- version
481
- },
482
- fetchPolicy: "network-only"
483
- });
484
- throwIfResultError(result);
485
- const source = result.data?.workflowCodeSource;
486
- if (!source) return null;
487
- const definition = result.data?.workflowDefinition;
488
- return {
489
- buildId: source.buildId,
490
- files: source.files.map((file) => ({
491
- path: file.path,
492
- content: file.content
493
- })),
494
- revision: definition?.revision ?? null,
495
- entry: entryOf(definition?.definitionJson)
496
- };
497
- }
498
- /** Lease of the workflow, or null when it cannot be read (not coordinated). */
499
- async function fetchEditLease(workflowKey) {
500
- try {
501
- const result = await getFluidGridsClient().query({
502
- query: WorkflowEditLeaseStatusDocument,
503
- variables: { workflowKey },
504
- fetchPolicy: "network-only"
505
- });
506
- throwIfResultError(result);
507
- return result.data?.workflowEditLease ?? null;
508
- } catch {
509
- return null;
510
- }
511
- }
512
- async function runWorkflowCodeBuild(variables) {
513
- const result = await getFluidGridsClient().mutate({
514
- mutation: BuildWorkflowCodeDocument,
515
- variables
516
- });
517
- throwIfResultError(result);
518
- const data = result.data?.buildWorkflowCode;
519
- if (!data) throw new Error("The build returned no result");
520
- return data;
521
- }
522
- /** True when someone other than the caller holds the lease. */
523
- function leaseBlocksEditing(lease) {
524
- return !!lease && lease.available && lease.held && !lease.heldByCaller;
525
- }
526
- function useWorkflowCodeEditor({ workflowKey, version, enabled, canEdit, onSaved, pythonEnabled = false }) {
527
- const [loading, setLoading] = useState(false);
528
- const [loadError, setLoadError] = useState(null);
529
- const [source, setSource] = useState(null);
530
- const [contents, setContents] = useState({});
531
- const [selectedPath, setSelectedPath] = useState();
532
- const [lease, setLease] = useState(null);
533
- const [building, setBuilding] = useState(null);
534
- const [buildError, setBuildError] = useState(null);
535
- const [lastBuild, setLastBuild] = useState(null);
536
- const request = useRef(0);
537
- const onSavedRef = useRef(onSaved);
538
- onSavedRef.current = onSaved;
539
- const reload = useCallback(async () => {
540
- if (!enabled || !workflowKey || !version) return;
541
- const id = ++request.current;
542
- setLoading(true);
543
- setLoadError(null);
544
- try {
545
- const [loaded, currentLease] = await Promise.all([fetchWorkflowCodeSource(workflowKey, version), fetchEditLease(workflowKey)]);
546
- if (id !== request.current) return;
547
- setSource(loaded);
548
- setLease(currentLease);
549
- setContents(Object.fromEntries((loaded?.files ?? []).map((file) => [file.path, file.content])));
550
- setSelectedPath(loaded ? defaultSourcePath(loaded.files, loaded.entry, { python: pythonEnabled && projectLanguage(loaded.files) === "python" }) : void 0);
551
- setLastBuild(null);
552
- setBuildError(null);
553
- } catch (err) {
554
- if (id !== request.current) return;
555
- setLoadError(describeOperationError(err));
556
- } finally {
557
- if (id === request.current) setLoading(false);
558
- }
559
- }, [
560
- enabled,
561
- workflowKey,
562
- version,
563
- pythonEnabled
564
- ]);
565
- useEffect(() => {
566
- reload();
567
- }, [reload]);
568
- const [baseSdk, setBaseSdk] = useState(null);
569
- useEffect(() => {
570
- setBaseSdk(null);
571
- if (!pythonEnabled || !enabled || !workflowKey || !version) return;
572
- let cancelled = false;
573
- fetchCodeBundleSdk(workflowKey, version).then((bundle) => {
574
- if (!cancelled) setBaseSdk(bundle?.sdkVersion ?? null);
575
- }).catch(() => void 0);
576
- return () => {
577
- cancelled = true;
578
- };
579
- }, [
580
- pythonEnabled,
581
- enabled,
582
- workflowKey,
583
- version
584
- ]);
585
- const language = useMemo(() => projectLanguage(source?.files ?? []), [source]);
586
- const pythonEditable = pythonEnabled && language === "python";
587
- const readOnlyReason = language === "python" && !pythonEnabled ? "python" : !canEdit ? "permission" : leaseBlocksEditing(lease) ? "lease" : null;
588
- const changed = useMemo(() => changedSourceFiles(source?.files ?? [], contents), [source, contents]);
589
- const build = useCallback(async (commit, description) => {
590
- if (!source || readOnlyReason) return null;
591
- setBuilding(commit ? "save" : "check");
592
- setBuildError(null);
593
- try {
594
- const result = await runWorkflowCodeBuild({ input: {
595
- workflowKey,
596
- baseVersion: version,
597
- files: changed.length ? changed : selectedPath && contents[selectedPath] !== void 0 ? [{
598
- path: selectedPath,
599
- content: contents[selectedPath]
600
- }] : [],
601
- commit,
602
- ...commit && source.revision !== null ? { revision: source.revision } : {},
603
- ...commit && description ? { description } : {}
604
- } });
605
- setLastBuild(result);
606
- if (commit && result.success && result.version) onSavedRef.current?.(result.version, result);
607
- return result;
608
- } catch (err) {
609
- setBuildError(describeOperationError(err));
610
- return null;
611
- } finally {
612
- setBuilding(null);
613
- }
614
- }, [
615
- source,
616
- readOnlyReason,
617
- changed,
618
- selectedPath,
619
- contents,
620
- workflowKey,
621
- version
622
- ]);
623
- const check = useCallback(() => build(false), [build]);
624
- const save = useCallback((description) => build(true, description), [build]);
625
- return {
626
- loading,
627
- loadError,
628
- source,
629
- contents,
630
- selectedPath,
631
- select: setSelectedPath,
632
- setContent: useCallback((path, content) => {
633
- setContents((current) => current[path] === content ? current : {
634
- ...current,
635
- [path]: content
636
- });
637
- }, []),
638
- changed,
639
- language,
640
- lease,
641
- readOnlyReason,
642
- rebuildSdk: baseSdk && lastBuild?.sdkVersion && baseSdk !== lastBuild.sdkVersion ? {
643
- from: baseSdk,
644
- to: lastBuild.sdkVersion
645
- } : null,
646
- isEditable: (path) => !readOnlyReason && isEditableSourcePath(path, { python: pythonEditable }),
647
- building,
648
- buildError,
649
- lastBuild,
650
- diagnostics: lastBuild?.diagnostics ?? [],
651
- check,
652
- save,
653
- reload
654
- };
655
- }
656
-
657
447
  // src/builder/components/code-workflow/code-workflow-source-editor.tsx
658
448
  /**
659
449
  * The code-workflow node's Source tab (BOFF-9905, spec code-first 07 §5):
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
3
- import { V as nodeTitle, tt as FieldTree } from "./FluidGridsProvider-C-WGQwuT.js";
3
+ import { U as nodeTitle, rt as FieldTree } from "./FluidGridsProvider-CDjkq3Zj.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { m as usePhaseCFlags } from "./feature-flags-B_b8PJ6Z.js";
6
6
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
7
- import { a as TabButton, i as ReadOnlyFieldset, n as SchedulePanel, o as NodeSettingsPanel, s as NodeParamsForm, t as SCHEDULE_NODE_TYPE } from "./schedule-panel-7TtPt1t_.js";
7
+ import { a as TabButton, i as ReadOnlyFieldset, n as SchedulePanel, o as NodeSettingsPanel, s as NodeParamsForm, t as SCHEDULE_NODE_TYPE } from "./schedule-panel-BbRtGDEt.js";
8
8
  import { useState } from "react";
9
9
  import { Icon } from "@iconify/react";
10
10
  import { cn } from "@burdenoff/fe-libs/utils";
@@ -1,3 +1,3 @@
1
1
 
2
- import { $Ra as DataSinkDashboardPage, Ba as LogStreamEventType, Fa as DataSinkData, Ha as NodeUsageStat, Ia as DataSinkSummary, La as FailedRun, Pa as DashboardSummary, Ra as LogStreamDestination, Va as LogStreamProvider, XRa as InsightsPage, YRa as ErrorAnalyticsPage, za as LogStreamDestinationInput } from "./index-BY0V255h.js";
2
+ import { $Ra as DataSinkDashboardPage, Ba as LogStreamEventType, Fa as DataSinkData, Ha as NodeUsageStat, Ia as DataSinkSummary, La as FailedRun, Pa as DashboardSummary, Ra as LogStreamDestination, Va as LogStreamProvider, XRa as InsightsPage, YRa as ErrorAnalyticsPage, za as LogStreamDestinationInput } from "./index-BprVea6e.js";
3
3
  export { type DashboardSummary, DataSinkDashboardPage, type DataSinkData, type DataSinkSummary, ErrorAnalyticsPage, type FailedRun, InsightsPage, type LogStreamDestination, type LogStreamDestinationInput, type LogStreamEventType, type LogStreamProvider, type NodeUsageStat };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as DataSinkDashboardPage } from "./DataSinkDashboardPage-Dnp1yRYQ.js";
3
- import { n as InsightsPage, t as ErrorAnalyticsPage } from "./InsightsPage-CVzNu4F7.js";
2
+ import { t as DataSinkDashboardPage } from "./DataSinkDashboardPage-DFtWv2nD.js";
3
+ import { n as InsightsPage, t as ErrorAnalyticsPage } from "./InsightsPage-DozSYGVD.js";
4
4
 
5
5
  export { DataSinkDashboardPage, ErrorAnalyticsPage, InsightsPage };
@@ -1,11 +1,11 @@
1
1
  "use client";
2
- import { Bn as matchesAdapterProvider, Hn as replaceAdapterConnections, Rn as connectionsForAdapter, Vn as newConnectionProviderKey, zn as isOptionalAdapter } from "./FluidGridsProvider-C-WGQwuT.js";
2
+ import { Bn as connectionsForAdapter, Hn as matchesAdapterProvider, Un as newConnectionProviderKey, Vn as isOptionalAdapter, Wn as replaceAdapterConnections } from "./FluidGridsProvider-CDjkq3Zj.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
- import { r as useAgentsUsingConnection } from "./useAgentDefinitions-Daa3fGVg.js";
5
- import { n as useConnections } from "./useConnections-BlB0gbOB.js";
4
+ import { r as useAgentsUsingConnection } from "./useAgentDefinitions-YUDx_OW2.js";
6
5
  import { t as cn } from "./cn-QqidFIgr.js";
7
6
  import { a as SdkPermissionGate, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
8
7
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
8
+ import { r as useConnections } from "./useConnections-CmnwGk09.js";
9
9
  import { t as ConnectionFormDialog } from "./ConnectionFormDialog-Dr1-CTan.js";
10
10
  import { a as useRunners, t as RunnerStatusPill } from "./RunnerStatusPill-Bh7mEsPh.js";
11
11
  import * as React from "react";
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import { t as NodeTypeIcon } from "./node-type-icon-DEAztACh.js";
3
3
  import { A as useFlowStore, k as nodeAccent } from "./node-operation-selection-DHbtGNrG.js";
4
- import { B as nodeSubtitle, G as useNodeConfig, Un as getNodeDetail, V as nodeTitle, en as useNodeExecution } from "./FluidGridsProvider-C-WGQwuT.js";
5
- import { i as NodeInputFields, n as useNodeEditorTab, r as NodeEditorTabs, t as NodeEditorTabBody } from "./node-editor-tab-body-ChLrBfKp.js";
4
+ import { Gn as getNodeDetail, H as nodeSubtitle, U as nodeTitle, nn as useNodeExecution, q as useNodeConfig } from "./FluidGridsProvider-CDjkq3Zj.js";
5
+ import { i as NodeInputFields, n as useNodeEditorTab, r as NodeEditorTabs, t as NodeEditorTabBody } from "./node-editor-tab-body-BintGoSp.js";
6
6
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
7
- import { r as NodeExecutionActions } from "./schedule-panel-7TtPt1t_.js";
7
+ import { r as NodeExecutionActions } from "./schedule-panel-BbRtGDEt.js";
8
8
  import { useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
9
9
  import { useReactFlow, useStore } from "@xyflow/react";
10
10
  import { Icon } from "@iconify/react";
@@ -3,18 +3,18 @@ import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
3
3
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
4
4
  import { n as getFluidGridsClient, r as getFluidGridsClientSafe } from "./client-Ctl4jmY3.js";
5
5
  import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
6
- import { $ as SwitchRulesEditor, F as useRunGuard, H as optionText, J as isStringOptionList, L as asRecord, Q as ConditionTreeBuilder, R as coerceNumber, Tt as useSaveStatusStore, U as paramsFromOperation, V as nodeTitle, X as optionListValues, Y as optionListText, Z as resolveLoadOptionsSpec, an as parseParameterValue, at as missingRequiredParameters, dn as openRunQuotaUpgradePrompt, et as casesFromRules, in as formatParameterValue, it as boundFieldsOf, ln as isParamVisible, nt as parseMappingValue, on as structuredParameterType, t as FluidGridsContext, un as useFluidGridsAnalytics } from "./FluidGridsProvider-C-WGQwuT.js";
6
+ import { $ as resolveLoadOptionsSpec, B as coerceNumber, Dt as useSaveStatusStore, G as paramsFromOperation, L as useRunGuard, Q as optionListValues, U as nodeTitle, W as optionText, X as isStringOptionList, Z as optionListText, cn as structuredParameterType, dn as isParamVisible, et as ConditionTreeBuilder, fn as useFluidGridsAnalytics, it as parseMappingValue, nt as casesFromRules, on as formatParameterValue, ot as boundFieldsOf, pn as openRunQuotaUpgradePrompt, sn as parseParameterValue, st as missingRequiredParameters, t as FluidGridsContext, tt as SwitchRulesEditor, z as asRecord } from "./FluidGridsProvider-CDjkq3Zj.js";
7
7
  import { n as useBuilderReadOnly } from "./read-only-context-Dt9N9SIG.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
- import { L as triggerSchedule, T as pauseSchedule, t as backfillSchedule, u as describeSchedule, z as unpauseSchedule } from "./api-CEnNq15C.js";
10
- import { on as PreviewScheduleDocument, t as useAgentDefinitionList, vt as useRunFromNodeEligibilityQuery } from "./useAgentDefinitions-Daa3fGVg.js";
9
+ import { L as triggerSchedule, T as pauseSchedule, t as backfillSchedule, u as describeSchedule, z as unpauseSchedule } from "./api-o5UUDbr8.js";
10
+ import { on as PreviewScheduleDocument, t as useAgentDefinitionList, vt as useRunFromNodeEligibilityQuery } from "./useAgentDefinitions-YUDx_OW2.js";
11
11
  import { r as describeRule, s as isAgentNodeType } from "./agent-form-D0uLvzx4.js";
12
- import { C as RegenerateEventRegistrationTokenDocument, S as StopWebhookTestListenerDocument, T as ListenForFormTestSubmissionDocument, _ as webhookDeliveriesPath, b as WorkflowCallInputsDocument, n as PopoverContent$1, r as PopoverTrigger$1, t as Popover$1, v as RunOnSection, w as ListenForWebhookTestEventDocument, x as WebhookTestListenerDocument, y as ConnectionSelector } from "./popover-CCJlf41J.js";
12
+ import { C as RegenerateEventRegistrationTokenDocument, S as StopWebhookTestListenerDocument, T as ListenForFormTestSubmissionDocument, _ as webhookDeliveriesPath, b as WorkflowCallInputsDocument, n as PopoverContent$1, r as PopoverTrigger$1, t as Popover$1, v as RunOnSection, w as ListenForWebhookTestEventDocument, x as WebhookTestListenerDocument, y as ConnectionSelector } from "./popover-2-6xmS1q.js";
13
13
  import { a as collectExtensions } from "./quota-Cdt8yz7N.js";
14
14
  import { FO as ScheduleType, KI as WorkflowScheduleOverlapPolicy } from "./graphql-types-dS3Fk9Z5.js";
15
- import { t as useGlobalStoreClient } from "./useGlobalStoreClient-BcwWGtm7.js";
15
+ import { t as useGlobalStoreClient } from "./useGlobalStoreClient-CwBAeiXV.js";
16
16
  import { a as operatorSpec, c as ruleFromRow, i as normaliseAssertRules, n as describeAssertRuleProblem, o as readAssertRulesSetting, r as emptyAssertRuleRow, s as rowsFromRules, t as ASSERT_OPERATORS } from "./assert-rules-DtQmtG1p.js";
17
- import { i as NativeSelect, o as StatusPill, t as FieldError, u as useResource } from "./shared-C0LCTtyh.js";
17
+ import { i as NativeSelect, o as StatusPill, t as FieldError, u as useResource } from "./shared-mbyvDPde.js";
18
18
  import { r as normalizeCodeLanguage, t as CodeEditorField } from "./code-editor-field-Cv907s3W.js";
19
19
  import { useCallback, useContext, useEffect, useId, useMemo, useRef, useState } from "react";
20
20
  import { Link } from "react-router";
package/dist/settings.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as SettingsPage } from "./SettingsPage-BSucNHrq.js";
2
+ import { t as SettingsPage } from "./SettingsPage-qSvV7r0y.js";
3
3
  import { t as ManagedAiPolicyAuthorityProvider } from "./ManagedAiPolicyAuthority-BxwJ3ptd.js";
4
4
 
5
5
  export { ManagedAiPolicyAuthorityProvider, SettingsPage };
@@ -1,31 +1,9 @@
1
1
  "use client";
2
- import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
3
- import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
2
+ import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
4
3
  import { useCallback, useEffect, useRef, useState } from "react";
5
4
  import { jsx, jsxs } from "react/jsx-runtime";
6
5
  import { Label, Textarea } from "@burdenoff/fe-libs/ui";
7
6
 
8
- // src/graphql/typed-calls.ts
9
- async function readTyped(query, variables) {
10
- const result = await getFluidGridsClient().query({
11
- query,
12
- variables,
13
- fetchPolicy: "network-only"
14
- });
15
- throwIfResultError(result);
16
- if (!result.data) throw new Error("The request returned no data");
17
- return result.data;
18
- }
19
- async function writeTyped(mutation, variables) {
20
- const result = await getFluidGridsClient().mutate({
21
- mutation,
22
- variables
23
- });
24
- throwIfResultError(result);
25
- if (!result.data) throw new Error("The request returned no data");
26
- return result.data;
27
- }
28
-
29
7
  // src/modules/run-control/hooks/useResource.ts
30
8
  /**
31
9
  * A read keyed by its arguments that sends nothing while `enabled` is false,
@@ -194,4 +172,4 @@ function StatusPill({ tone, children, testId }) {
194
172
  });
195
173
  }
196
174
 
197
- export { RUN_CONTROL_DIALOG_STYLE as a, parseJsonInput as c, readTyped as d, writeTyped as f, NativeSelect as i, parseJsonObjectInput as l, JsonBlock as n, StatusPill as o, JsonField as r, newRunControlId as s, FieldError as t, useResource as u };
175
+ export { RUN_CONTROL_DIALOG_STYLE as a, parseJsonInput as c, NativeSelect as i, parseJsonObjectInput as l, JsonBlock as n, StatusPill as o, JsonField as r, newRunControlId as s, FieldError as t, useResource as u };
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { A as useFlowStore, k as nodeAccent } from "./node-operation-selection-DHbtGNrG.js";
3
- import { B as nodeSubtitle, G as useNodeConfig, Un as getNodeDetail, V as nodeTitle, en as useNodeExecution } from "./FluidGridsProvider-C-WGQwuT.js";
3
+ import { Gn as getNodeDetail, H as nodeSubtitle, U as nodeTitle, nn as useNodeExecution, q as useNodeConfig } from "./FluidGridsProvider-CDjkq3Zj.js";
4
4
  import { t as NodeTypeIcon } from "./node-type-icon-DEAztACh.js";
5
- import { i as NodeInputFields, n as useNodeEditorTab, r as NodeEditorTabs, t as NodeEditorTabBody } from "./node-editor-tab-body-ChLrBfKp.js";
6
- import { r as NodeExecutionActions } from "./schedule-panel-7TtPt1t_.js";
5
+ import { i as NodeInputFields, n as useNodeEditorTab, r as NodeEditorTabs, t as NodeEditorTabBody } from "./node-editor-tab-body-BintGoSp.js";
6
+ import { r as NodeExecutionActions } from "./schedule-panel-BbRtGDEt.js";
7
7
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
8
8
  import { useEffect, useState } from "react";
9
9
  import { Icon } from "@iconify/react";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { b as utf8Length } from "./workflow-code-transfer-BsLPUrKP.js";
2
+ import { C as utf8Length } from "./workflow-transfer-CktP7o1c.js";
3
3
 
4
4
  // src/utils/template-code.ts
5
5
  /** DD3: the largest `content.sources` the store accepts, as UTF-8 JSON. */
@@ -180,5 +180,12 @@ function templateInstallSource(content, codeTemplatesDurable) {
180
180
  const code = readTemplateCode(content);
181
181
  return code?.tier === "tier2" && code.format === "TYPESCRIPT" ? templateImportSource(code) : null;
182
182
  }
183
+ /**
184
+ * Whether a definition is a tier-2 workflow function: it carries a `code`
185
+ * block (entry, build id) that names its bundle.
186
+ */
187
+ function isTier2Definition(definitionJson) {
188
+ return isRecord(definitionJson) && isRecord(definitionJson.code);
189
+ }
183
190
 
184
- export { readTemplateCode as n, templateInstallSource as r, buildTemplateCodeDownload as t };
191
+ export { contentTypeOf as a, templateInstallSource as c, buildTemplateCodeDownload as i, TemplateCodeError as n, isTier2Definition as o, assertTemplateSources as r, readTemplateCode as s, TEMPLATE_SOURCES_MAX_BYTES as t };
package/dist/templates.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as TemplatesPage } from "./TemplatesPage-DF5PK7CB.js";
3
- import { t as TemplatePreview } from "./TemplatePreview-DwdGa8bH.js";
2
+ import { t as TemplatesPage } from "./TemplatesPage-dj7NseMt.js";
3
+ import { t as TemplatePreview } from "./TemplatePreview-BOIhJSBD.js";
4
4
 
5
5
  export { TemplatePreview, TemplatesPage };
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
3
+ import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
4
+
5
+ // src/graphql/typed-calls.ts
6
+ async function readTyped(query, variables) {
7
+ const result = await getFluidGridsClient().query({
8
+ query,
9
+ variables,
10
+ fetchPolicy: "network-only"
11
+ });
12
+ throwIfResultError(result);
13
+ if (!result.data) throw new Error("The request returned no data");
14
+ return result.data;
15
+ }
16
+ async function writeTyped(mutation, variables) {
17
+ const result = await getFluidGridsClient().mutate({
18
+ mutation,
19
+ variables
20
+ });
21
+ throwIfResultError(result);
22
+ if (!result.data) throw new Error("The request returned no data");
23
+ return result.data;
24
+ }
25
+
26
+ export { writeTyped as n, readTyped as t };