@loopstack/loopstack-studio 0.22.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/app/EnvironmentEmbedRoot.js +20 -18
  2. package/dist/components/feedback/ErrorBoundary.js +43 -0
  3. package/dist/components/{LoadingCentered.js → feedback/LoadingCentered.js} +1 -1
  4. package/dist/components/feedback/index.js +5 -0
  5. package/dist/components/index.js +6 -3
  6. package/dist/components/layout/MainLayout.js +32 -16
  7. package/dist/components/layout/StudioSidebar.js +165 -0
  8. package/dist/components/ui-widgets/widgets/SandboxRun.js +1 -0
  9. package/dist/features/code-explorer/CodeExplorer.js +6 -0
  10. package/dist/features/code-explorer/components/CodeExplorerTree.js +5 -0
  11. package/dist/features/code-explorer/components/CodeExplorerTreeNode.js +6 -0
  12. package/dist/features/code-explorer/components/FileContentViewer.js +1 -0
  13. package/dist/features/code-explorer/components/FileTabsBar.js +1 -1
  14. package/dist/features/code-explorer/index.js +4 -0
  15. package/dist/features/debug/components/ConfigFlowViewer.js +1 -1
  16. package/dist/features/debug/components/PipelineFlowViewer.js +1 -1
  17. package/dist/features/debug/index.js +3 -0
  18. package/dist/features/documents/DocumentRenderer.js +53 -0
  19. package/dist/features/{workbench → documents}/components/DocumentItem.js +1 -1
  20. package/dist/features/{workbench → documents}/components/DocumentMetadataPills.js +2 -2
  21. package/dist/features/{workbench/components → documents}/document-details/DocumentDetails.js +3 -3
  22. package/dist/features/{workbench/components → documents}/document-details/PromptDetails.js +3 -3
  23. package/dist/features/documents/index.js +4 -0
  24. package/dist/features/{workbench/components/document-renderer → documents/renderers}/AiMessage.js +5 -5
  25. package/dist/features/{workbench/components/document-renderer → documents/renderers}/DocumentDebugRenderer.js +1 -1
  26. package/dist/features/{workbench/components/document-renderer → documents/renderers}/DocumentFormRenderer.js +3 -3
  27. package/dist/features/{workbench/components/document-renderer → documents/renderers}/DocumentMessageRenderer.js +1 -1
  28. package/dist/features/{workbench/components/document-renderer → documents/renderers}/ErrorMessageRenderer.js +1 -1
  29. package/dist/features/{workbench/components/document-renderer → documents/renderers}/LinkMessageRenderer.js +1 -1
  30. package/dist/features/{workbench/components/document-renderer → documents/renderers}/MarkdownMessageRenderer.js +2 -2
  31. package/dist/features/{workbench/components/document-renderer → documents/renderers}/PlainMessageRenderer.js +1 -1
  32. package/dist/features/health/index.js +1 -0
  33. package/dist/features/workbench/NavigationItems.js +29 -29
  34. package/dist/features/workbench/Workbench.js +57 -69
  35. package/dist/features/workbench/WorkflowItem.js +63 -55
  36. package/dist/features/workbench/WorkflowList.js +52 -81
  37. package/dist/features/workbench/components/NewRunDialog.js +2 -1
  38. package/dist/features/workbench/components/WorkbenchFlowPanel.js +5 -4
  39. package/dist/features/workbench/components/WorkflowHistoryItem.js +11 -11
  40. package/dist/features/workbench/components/buttons/WorkflowButtons.js +49 -50
  41. package/dist/features/workbench/hooks/useWorkflowData.js +49 -0
  42. package/dist/features/workbench/hooks/useWorkflowListState.js +50 -0
  43. package/dist/features/workbench/index.js +8 -0
  44. package/dist/features/workbench/providers/WorkbenchLayoutProvider.js +2 -3
  45. package/dist/features/workspaces/components/CreateWorkspace.js +1 -1
  46. package/dist/features/workspaces/components/ExecutionTimeline.js +1 -1
  47. package/dist/features/workspaces/components/PipelineForm.js +1 -1
  48. package/dist/features/workspaces/index.js +3 -0
  49. package/dist/hooks/index.js +3 -2
  50. package/dist/hooks/query-keys.js +138 -0
  51. package/dist/hooks/useAuth.js +43 -42
  52. package/dist/hooks/useConfig.js +31 -35
  53. package/dist/hooks/useDashboard.js +9 -13
  54. package/dist/hooks/useDebounce.js +8 -17
  55. package/dist/hooks/useDocuments.js +4 -9
  56. package/dist/hooks/useFiles.js +31 -39
  57. package/dist/hooks/useNamespaces.js +2 -8
  58. package/dist/hooks/usePipelines.js +132 -155
  59. package/dist/hooks/useProcessor.js +11 -14
  60. package/dist/hooks/useWorkflows.js +40 -62
  61. package/dist/hooks/useWorkspaces.js +105 -110
  62. package/dist/index.d.ts +99 -3
  63. package/dist/index.js +14 -7
  64. package/dist/pages/DashboardPage.js +1 -1
  65. package/dist/pages/DebugWorkflowDetailsPage.js +2 -2
  66. package/dist/pages/EmbedWorkbenchPage.js +4 -3
  67. package/dist/pages/PipelineDebugPage.js +6 -5
  68. package/dist/pages/PreviewWorkbenchPage.js +121 -118
  69. package/dist/pages/RunsListPage.js +52 -24
  70. package/dist/pages/StudioLandingPage.js +1 -0
  71. package/dist/pages/WorkbenchPage.js +3 -2
  72. package/dist/pages/WorkspacePage.js +1 -1
  73. package/dist/providers/InvalidationEventsProvider.js +9 -11
  74. package/dist/providers/StudioProvider.js +2 -2
  75. package/dist/routing/LocalRouter.js +12 -8
  76. package/package.json +1 -1
  77. package/dist/features/workbench/components/DocumentRenderer.js +0 -54
  78. /package/dist/components/{content → feedback}/ErrorAlert.js +0 -0
  79. /package/dist/components/{snackbars → feedback}/ErrorSnackbar.js +0 -0
  80. /package/dist/components/{snackbars → feedback}/Snackbar.js +0 -0
  81. /package/dist/features/{workbench → documents}/components/DocumentList.js +0 -0
  82. /package/dist/features/{workbench/components/document-renderer → documents/renderers}/AiMessageContent.js +0 -0
@@ -1,135 +1,130 @@
1
+ import { getWorkspaceCacheKey, getWorkspacesCacheKey } from "./query-keys.js";
1
2
  import { useApiClient } from "./useApi.js";
2
3
  import { c } from "react/compiler-runtime";
3
4
  import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
4
- function useWorkspace(n) {
5
- let i = c(10), { envKey: a, api: o } = useApiClient(), s;
6
- i[0] !== a || i[1] !== n ? (s = [
7
- "workspace",
8
- n,
9
- a
10
- ], i[0] = a, i[1] = n, i[2] = s) : s = i[2];
11
- let l;
12
- i[3] !== o || i[4] !== n ? (l = () => o.workspaces.getById({ id: n }), i[3] = o, i[4] = n, i[5] = l) : l = i[5];
13
- let u = !!n, d;
14
- return i[6] !== s || i[7] !== l || i[8] !== u ? (d = {
15
- queryKey: s,
16
- queryFn: l,
17
- enabled: u
18
- }, i[6] = s, i[7] = l, i[8] = u, i[9] = d) : d = i[9], useQuery(d);
5
+ function useWorkspace(t) {
6
+ let i = c(10), { envKey: o, api: s } = useApiClient(), l;
7
+ i[0] !== o || i[1] !== t ? (l = getWorkspaceCacheKey(o, t), i[0] = o, i[1] = t, i[2] = l) : l = i[2];
8
+ let u;
9
+ i[3] !== s || i[4] !== t ? (u = () => s.workspaces.getById({ id: t }), i[3] = s, i[4] = t, i[5] = u) : u = i[5];
10
+ let d = !!t, f;
11
+ return i[6] !== l || i[7] !== u || i[8] !== d ? (f = {
12
+ queryKey: l,
13
+ queryFn: u,
14
+ enabled: d
15
+ }, i[6] = l, i[7] = u, i[8] = d, i[9] = f) : f = i[9], useQuery(f);
19
16
  }
20
- function useFilterWorkspaces(n, i, a, o, s, l) {
21
- let u = c(23), d = a === void 0 ? "id" : a, f = o === void 0 ? "DESC" : o, p = s === void 0 ? 0 : s, m = l === void 0 ? 10 : l, { envKey: h, api: g } = useApiClient(), _ = Object.keys(i).length > 0, v;
22
- u[0] !== i || u[1] !== _ ? (v = _ && { filter: JSON.stringify(i) }, u[0] = i, u[1] = _, u[2] = v) : v = u[2];
23
- let y;
24
- u[3] !== f || u[4] !== d ? (y = JSON.stringify([{
25
- field: d,
26
- order: f
27
- }]), u[3] = f, u[4] = d, u[5] = y) : y = u[5];
28
- let b;
29
- u[6] === n ? b = u[7] : (b = n && {
30
- search: n,
17
+ function useFilterWorkspaces(e, i, o, s, l, u) {
18
+ let d = c(30), f = o === void 0 ? "id" : o, p = s === void 0 ? "DESC" : s, m = l === void 0 ? 0 : l, h = u === void 0 ? 10 : u, { envKey: g, api: _ } = useApiClient(), v = Object.keys(i).length > 0, y;
19
+ d[0] !== i || d[1] !== v ? (y = v ? JSON.stringify(i) : void 0, d[0] = i, d[1] = v, d[2] = y) : y = d[2];
20
+ let b = y, x;
21
+ d[3] === b ? x = d[4] : (x = b && { filter: b }, d[3] = b, d[4] = x);
22
+ let S;
23
+ d[5] !== p || d[6] !== f ? (S = JSON.stringify([{
24
+ field: f,
25
+ order: p
26
+ }]), d[5] = p, d[6] = f, d[7] = S) : S = d[7];
27
+ let C;
28
+ d[8] === e ? C = d[9] : (C = e && {
29
+ search: e,
31
30
  searchColumns: JSON.stringify(["title"])
32
- }, u[6] = n, u[7] = b);
33
- let x;
34
- u[8] !== m || u[9] !== p || u[10] !== v || u[11] !== y || u[12] !== b ? (x = {
35
- ...v,
36
- sortBy: y,
37
- page: p,
38
- limit: m,
39
- ...b
40
- }, u[8] = m, u[9] = p, u[10] = v, u[11] = y, u[12] = b, u[13] = x) : x = u[13];
41
- let S = x, C;
42
- u[14] !== h || u[15] !== S ? (C = [
43
- "workspaces",
44
- h,
45
- S
46
- ], u[14] = h, u[15] = S, u[16] = C) : C = u[16];
31
+ }, d[8] = e, d[9] = C);
47
32
  let w;
48
- u[17] !== g || u[18] !== S ? (w = () => g.workspaces.getAll(S), u[17] = g, u[18] = S, u[19] = w) : w = u[19];
49
- let T;
50
- return u[20] !== C || u[21] !== w ? (T = {
51
- queryKey: C,
52
- queryFn: w,
53
- enabled: !0
54
- }, u[20] = C, u[21] = w, u[22] = T) : T = u[22], useQuery(T);
33
+ d[10] !== h || d[11] !== m || d[12] !== x || d[13] !== S || d[14] !== C ? (w = {
34
+ ...x,
35
+ sortBy: S,
36
+ page: m,
37
+ limit: h,
38
+ ...C
39
+ }, d[10] = h, d[11] = m, d[12] = x, d[13] = S, d[14] = C, d[15] = w) : w = d[15];
40
+ let T = w, E;
41
+ d[16] !== g || d[17] !== b || d[18] !== h || d[19] !== p || d[20] !== m || d[21] !== e || d[22] !== f ? (E = [
42
+ ...getWorkspacesCacheKey(g),
43
+ "list",
44
+ e ?? "",
45
+ b ?? "",
46
+ f,
47
+ p,
48
+ m,
49
+ h
50
+ ], d[16] = g, d[17] = b, d[18] = h, d[19] = p, d[20] = m, d[21] = e, d[22] = f, d[23] = E) : E = d[23];
51
+ let D;
52
+ d[24] !== _ || d[25] !== T ? (D = () => _.workspaces.getAll(T), d[24] = _, d[25] = T, d[26] = D) : D = d[26];
53
+ let O;
54
+ return d[27] !== D || d[28] !== E ? (O = {
55
+ queryKey: E,
56
+ queryFn: D
57
+ }, d[27] = D, d[28] = E, d[29] = O) : O = d[29], useQuery(O);
55
58
  }
56
59
  function useCreateWorkspace() {
57
- let r = c(8), { envKey: a, api: o } = useApiClient(), s = useQueryClient(), l;
58
- r[0] === o ? l = r[1] : (l = (e) => o.workspaces.create(e), r[0] = o, r[1] = l);
59
- let u;
60
- r[2] !== a || r[3] !== s ? (u = () => {
61
- s.invalidateQueries({ queryKey: ["workspaces", a] });
62
- }, r[2] = a, r[3] = s, r[4] = u) : u = r[4];
60
+ let e = c(8), { envKey: a, api: s } = useApiClient(), l = useQueryClient(), u;
61
+ e[0] === s ? u = e[1] : (u = (e) => s.workspaces.create(e), e[0] = s, e[1] = u);
63
62
  let d;
64
- return r[5] !== l || r[6] !== u ? (d = {
65
- mutationFn: l,
66
- onSuccess: u
67
- }, r[5] = l, r[6] = u, r[7] = d) : d = r[7], useMutation(d);
63
+ e[2] !== a || e[3] !== l ? (d = () => {
64
+ l.invalidateQueries({ queryKey: getWorkspacesCacheKey(a) });
65
+ }, e[2] = a, e[3] = l, e[4] = d) : d = e[4];
66
+ let f;
67
+ return e[5] !== u || e[6] !== d ? (f = {
68
+ mutationFn: u,
69
+ onSuccess: d
70
+ }, e[5] = u, e[6] = d, e[7] = f) : f = e[7], useMutation(f);
68
71
  }
69
72
  function useUpdateWorkspace() {
70
- let r = c(8), { envKey: a, api: o } = useApiClient(), s = useQueryClient(), l;
71
- r[0] === o ? l = r[1] : (l = (e) => o.workspaces.update(e), r[0] = o, r[1] = l);
72
- let u;
73
- r[2] !== a || r[3] !== s ? (u = (e, t) => {
74
- s.invalidateQueries({ queryKey: [
75
- "workspace",
76
- t.id,
77
- a
78
- ] }), s.invalidateQueries({ queryKey: ["workspaces", a] });
79
- }, r[2] = a, r[3] = s, r[4] = u) : u = r[4];
80
- let d;
81
- return r[5] !== l || r[6] !== u ? (d = {
82
- mutationFn: l,
83
- onSuccess: u
84
- }, r[5] = l, r[6] = u, r[7] = d) : d = r[7], useMutation(d);
73
+ let a = c(8), { envKey: s, api: l } = useApiClient(), u = useQueryClient(), d;
74
+ a[0] === l ? d = a[1] : (d = (e) => l.workspaces.update(e), a[0] = l, a[1] = d);
75
+ let f;
76
+ a[2] !== s || a[3] !== u ? (f = (n, r) => {
77
+ u.invalidateQueries({ queryKey: getWorkspaceCacheKey(s, r.id) }), u.invalidateQueries({ queryKey: getWorkspacesCacheKey(s) });
78
+ }, a[2] = s, a[3] = u, a[4] = f) : f = a[4];
79
+ let p;
80
+ return a[5] !== d || a[6] !== f ? (p = {
81
+ mutationFn: d,
82
+ onSuccess: f
83
+ }, a[5] = d, a[6] = f, a[7] = p) : p = a[7], useMutation(p);
85
84
  }
86
85
  function useDeleteWorkspace() {
87
- let r = c(8), { envKey: a, api: o } = useApiClient(), s = useQueryClient(), l;
88
- r[0] === o ? l = r[1] : (l = (e) => o.workspaces.delete({ id: e }), r[0] = o, r[1] = l);
89
- let u;
90
- r[2] !== a || r[3] !== s ? (u = (e, t) => {
91
- s.removeQueries({ queryKey: [
92
- "workspace",
93
- t,
94
- a
95
- ] }), s.invalidateQueries({ queryKey: ["workspaces", a] });
96
- }, r[2] = a, r[3] = s, r[4] = u) : u = r[4];
97
- let d;
98
- return r[5] !== l || r[6] !== u ? (d = {
99
- mutationFn: l,
100
- onSuccess: u
101
- }, r[5] = l, r[6] = u, r[7] = d) : d = r[7], useMutation(d);
86
+ let a = c(8), { envKey: s, api: l } = useApiClient(), u = useQueryClient(), d;
87
+ a[0] === l ? d = a[1] : (d = (e) => l.workspaces.delete({ id: e }), a[0] = l, a[1] = d);
88
+ let f;
89
+ a[2] !== s || a[3] !== u ? (f = (n, r) => {
90
+ u.removeQueries({ queryKey: getWorkspaceCacheKey(s, r) }), u.invalidateQueries({ queryKey: getWorkspacesCacheKey(s) });
91
+ }, a[2] = s, a[3] = u, a[4] = f) : f = a[4];
92
+ let p;
93
+ return a[5] !== d || a[6] !== f ? (p = {
94
+ mutationFn: d,
95
+ onSuccess: f
96
+ }, a[5] = d, a[6] = f, a[7] = p) : p = a[7], useMutation(p);
102
97
  }
103
98
  function useSetFavouriteWorkspace() {
104
- let r = c(8), { envKey: a, api: o } = useApiClient(), s = useQueryClient(), l;
105
- r[0] === o ? l = r[1] : (l = (e) => {
99
+ let e = c(8), { envKey: a, api: s } = useApiClient(), l = useQueryClient(), u;
100
+ e[0] === s ? u = e[1] : (u = (e) => {
106
101
  let { id: t, isFavourite: n } = e;
107
- return o.workspaces.setFavourite({
102
+ return s.workspaces.setFavourite({
108
103
  id: t,
109
104
  workspaceFavouriteDto: { isFavourite: n }
110
105
  });
111
- }, r[0] = o, r[1] = l);
112
- let u;
113
- r[2] !== a || r[3] !== s ? (u = () => {
114
- s.invalidateQueries({ queryKey: ["workspaces", a] });
115
- }, r[2] = a, r[3] = s, r[4] = u) : u = r[4];
106
+ }, e[0] = s, e[1] = u);
116
107
  let d;
117
- return r[5] !== l || r[6] !== u ? (d = {
118
- mutationFn: l,
119
- onSuccess: u
120
- }, r[5] = l, r[6] = u, r[7] = d) : d = r[7], useMutation(d);
108
+ e[2] !== a || e[3] !== l ? (d = () => {
109
+ l.invalidateQueries({ queryKey: getWorkspacesCacheKey(a) });
110
+ }, e[2] = a, e[3] = l, e[4] = d) : d = e[4];
111
+ let f;
112
+ return e[5] !== u || e[6] !== d ? (f = {
113
+ mutationFn: u,
114
+ onSuccess: d
115
+ }, e[5] = u, e[6] = d, e[7] = f) : f = e[7], useMutation(f);
121
116
  }
122
117
  function useBatchDeleteWorkspaces() {
123
- let r = c(8), { envKey: a, api: o } = useApiClient(), s = useQueryClient(), l;
124
- r[0] === o ? l = r[1] : (l = (e) => o.workspaces.batchDelete({ ids: e }), r[0] = o, r[1] = l);
125
- let u;
126
- r[2] !== a || r[3] !== s ? (u = () => {
127
- s.invalidateQueries({ queryKey: ["workspaces", a] });
128
- }, r[2] = a, r[3] = s, r[4] = u) : u = r[4];
118
+ let e = c(8), { envKey: a, api: s } = useApiClient(), l = useQueryClient(), u;
119
+ e[0] === s ? u = e[1] : (u = (e) => s.workspaces.batchDelete({ ids: e }), e[0] = s, e[1] = u);
129
120
  let d;
130
- return r[5] !== l || r[6] !== u ? (d = {
131
- mutationFn: l,
132
- onSuccess: u
133
- }, r[5] = l, r[6] = u, r[7] = d) : d = r[7], useMutation(d);
121
+ e[2] !== a || e[3] !== l ? (d = () => {
122
+ l.invalidateQueries({ queryKey: getWorkspacesCacheKey(a) });
123
+ }, e[2] = a, e[3] = l, e[4] = d) : d = e[4];
124
+ let f;
125
+ return e[5] !== u || e[6] !== d ? (f = {
126
+ mutationFn: u,
127
+ onSuccess: d
128
+ }, e[5] = u, e[6] = d, e[7] = f) : f = e[7], useMutation(f);
134
129
  }
135
130
  export { useBatchDeleteWorkspaces, useCreateWorkspace, useDeleteWorkspace, useFilterWorkspaces, useSetFavouriteWorkspace, useUpdateWorkspace, useWorkspace };
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ import { AxiosInstance } from 'axios';
6
6
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
7
7
  import { ClassProp } from 'class-variance-authority/types';
8
8
  import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
9
+ import { Component } from 'react';
9
10
  import { ComponentType } from 'react';
10
11
  import { Context } from 'react';
11
12
  import { DashboardStatsInterface } from '@loopstack/contracts/api';
@@ -15,6 +16,7 @@ import { DocumentItemInterface } from '@loopstack/contracts/api';
15
16
  import { Drawer as Drawer_2 } from 'vaul';
16
17
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
17
18
  import { EnvironmentConfigInterface } from '@loopstack/contracts/api';
19
+ import { ErrorInfo } from 'react';
18
20
  import { ExternalToast } from 'sonner';
19
21
  import { FileContentInterface } from '@loopstack/contracts/api';
20
22
  import { FileExplorerNodeInterface } from '@loopstack/contracts/api';
@@ -124,6 +126,10 @@ declare interface BaseSnackbarProps {
124
126
  onDismiss?: () => void;
125
127
  }
126
128
 
129
+ declare interface BasicErrorComponentProps {
130
+ error?: string | null;
131
+ }
132
+
127
133
  export declare interface BatchAction {
128
134
  id: string;
129
135
  label: string;
@@ -216,6 +222,8 @@ declare interface CompletionMessagePaperProps {
216
222
  export declare interface ComponentOverrides {
217
223
  CreateWorkspace?: ComponentType<CreateWorkspaceProps>;
218
224
  EditWorkspace?: ComponentType<EditWorkspaceProps>;
225
+ SidebarHeader?: ComponentType;
226
+ SidebarFooter?: ComponentType;
219
227
  }
220
228
 
221
229
  export declare const ComponentOverridesProvider: ({ children, overrides, }: {
@@ -376,6 +384,8 @@ export declare function createApiClient(environment: Environment): {
376
384
  auth: ApiClient['auth'];
377
385
  };
378
386
 
387
+ export declare const CreateWorkspace: ({ types, workspace, onSuccess }: CreateWorkspaceProps) => JSX.Element;
388
+
379
389
  export declare interface CreateWorkspaceProps {
380
390
  types: WorkspaceConfigInterface[];
381
391
  workspace?: WorkspaceItemInterface;
@@ -631,6 +641,27 @@ declare interface EnvironmentSlotSelectorProps {
631
641
  error?: string;
632
642
  }
633
643
 
644
+ export declare const ErrorAlert: default_2.FC<BasicErrorComponentProps>;
645
+
646
+ export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
647
+ state: ErrorBoundaryState;
648
+ static getDerivedStateFromError(error: Error): ErrorBoundaryState;
649
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
650
+ handleRetry: () => void;
651
+ render(): ReactNode;
652
+ }
653
+
654
+ declare interface ErrorBoundaryProps {
655
+ children: ReactNode;
656
+ fallback?: ReactNode;
657
+ onRetry?: () => void;
658
+ }
659
+
660
+ declare interface ErrorBoundaryState {
661
+ hasError: boolean;
662
+ error: Error | null;
663
+ }
664
+
634
665
  export declare const ErrorSnackbar: default_2.FC<ErrorSnackbarProps>;
635
666
 
636
667
  declare interface ErrorSnackbarProps {
@@ -650,6 +681,62 @@ export declare type FilterOption = string | {
650
681
  value: string;
651
682
  };
652
683
 
684
+ export declare function getAllWorkflowsCacheKey(envKey: string): string[];
685
+
686
+ export declare function getAvailableEnvironmentsCacheKey(envKey: string): string[];
687
+
688
+ export declare function getDashboardStatsCacheKey(envKey: string): string[];
689
+
690
+ export declare function getDocumentCacheKey(envKey: string, documentId: string): string[];
691
+
692
+ export declare function getDocumentsCacheKey(envKey: string, workflowId: string): string[];
693
+
694
+ export declare function getFileContentCacheKey(envKey: string, pipelineId: string, filePath: string): string[];
695
+
696
+ export declare function getFileTreeCacheKey(envKey: string, pipelineId: string): string[];
697
+
698
+ export declare function getHealthCacheKey(envKey: string): string[];
699
+
700
+ /**
701
+ * Centralized cache key builders for React Query.
702
+ *
703
+ * Conventions:
704
+ * - All keys start with a domain prefix, followed by envKey for environment scoping.
705
+ * - Singular keys (e.g. 'pipeline') are for single-entity queries.
706
+ * - Plural keys (e.g. 'pipelines') are for list/filter queries.
707
+ * - Mutations should invalidate the plural key to catch all list variations.
708
+ * - Use `select` (not `.then()` in queryFn) for response transformations.
709
+ */
710
+ export declare function getMeCacheKey(envKey: string): string[];
711
+
712
+ export declare function getNamespaceCacheKey(envKey: string, namespaceId: string): string[];
713
+
714
+ export declare function getNamespacesByPipelineCacheKey(envKey: string, pipelineId: string): string[];
715
+
716
+ export declare function getPipelineCacheKey(envKey: string, id: string): string[];
717
+
718
+ export declare function getPipelineConfigCacheKey(envKey: string, workspaceBlockName: string, pipelineBlockName: string): string[];
719
+
720
+ export declare function getPipelinesCacheKey(envKey: string): string[];
721
+
722
+ export declare function getPipelinesChildrenCacheKey(envKey: string, parentId: string): string[];
723
+
724
+ export declare function getPipelineSourceCacheKey(envKey: string, workspaceBlockName: string, pipelineBlockName: string): string[];
725
+
726
+ export declare function getPipelineTypesCacheKey(envKey: string, workspaceBlockName: string): string[];
727
+
728
+ export declare function getWorkflowCacheKey(envKey: string, workflowId: string): string[];
729
+
730
+ export declare function getWorkflowsByPipelineCacheKey(envKey: string, pipelineId: string): string[];
731
+
732
+ export declare function getWorkflowsCacheKey(envKey: string, namespaceId: string): string[];
733
+
734
+ export declare function getWorkspaceCacheKey(envKey: string, id: string): string[];
735
+
736
+ export declare function getWorkspacesCacheKey(envKey: string): string[];
737
+
738
+ export declare function getWorkspaceTypesCacheKey(envKey: string): string[];
739
+
653
740
  export declare const GoogleLogo: default_2.FC<GoogleLogoProps>;
654
741
 
655
742
  declare interface GoogleLogoProps {
@@ -741,8 +828,10 @@ export declare const LocalHealthCheck: () => JSX.Element | null;
741
828
  export declare class LocalRouter implements StudioRouter {
742
829
  private navigate;
743
830
  private envId;
744
- constructor(navigate: ReturnType<typeof useNavigate>, envId: string);
831
+ private embedPrefix;
832
+ constructor(navigate: ReturnType<typeof useNavigate>, envId: string, embedPrefix?: string);
745
833
  navigateToHome(): Promise<void>;
834
+ getEnvironmentInfo(): string;
746
835
  navigateToEnvironmentInfo(): Promise<void>;
747
836
  getRuns(): string;
748
837
  getRunsActionRequired(): string;
@@ -1025,6 +1114,7 @@ export declare const StudioProvider: ({ children, router, environment, }: {
1025
1114
 
1026
1115
  export declare interface StudioRouter {
1027
1116
  navigateToHome(): Promise<void>;
1117
+ getEnvironmentInfo(): string;
1028
1118
  navigateToEnvironmentInfo(): Promise<void>;
1029
1119
  getRuns(): string;
1030
1120
  getRunsActionRequired(): string;
@@ -1049,6 +1139,8 @@ export declare interface StudioRouter {
1049
1139
  getTheme(): 'local' | 'cloud';
1050
1140
  }
1051
1141
 
1142
+ export declare const StudioSidebar: () => JSX.Element;
1143
+
1052
1144
  export declare function Switch({ className, ...props }: React_2.ComponentProps<typeof SwitchPrimitive.Root>): JSX.Element;
1053
1145
 
1054
1146
  export declare function Table({ className, ...props }: React_2.ComponentProps<'table'>): JSX.Element;
@@ -1116,11 +1208,13 @@ export declare function useIsMobile(): boolean;
1116
1208
 
1117
1209
  export declare function usePipeline(id: string | undefined): UseQueryResult<PipelineInterface, Error>;
1118
1210
 
1119
- export declare function usePipelineConfig(workspaceBlockName: string | undefined, pipelineBlockName: string | undefined): UseQueryResult<PipelineConfigInterface, Error>;
1211
+ export declare function usePipelineConfig(workspaceBlockName: string | undefined): UseQueryResult<PipelineConfigInterface[], Error>;
1212
+
1213
+ export declare function usePipelineConfigByName(workspaceBlockName: string | undefined, pipelineBlockName: string | undefined): UseQueryResult<PipelineConfigInterface, Error>;
1120
1214
 
1121
1215
  export declare function usePipelineSource(workspaceBlockName: string | undefined, pipelineBlockName: string | undefined): UseQueryResult<PipelineSourceInterface, Error>;
1122
1216
 
1123
- export declare const useRouter: (envId: string) => StudioRouter;
1217
+ export declare const useRouter: (envId: string, embedPrefix?: string) => StudioRouter;
1124
1218
 
1125
1219
  export declare function useSetFavouriteWorkspace(): UseMutationResult<void, Error, {
1126
1220
  id: string;
@@ -1131,6 +1225,8 @@ export declare function useSidebar(): SidebarContextProps;
1131
1225
 
1132
1226
  export declare const useStudio: () => StudioContext;
1133
1227
 
1228
+ export declare const useStudioOptional: () => StudioContext | null;
1229
+
1134
1230
  export declare function useUpdatePipeline(): UseMutationResult<PipelineInterface, Error, {
1135
1231
  id: string;
1136
1232
  pipelineUpdateDto: PipelineUpdateInterface;
package/dist/index.js CHANGED
@@ -1,11 +1,12 @@
1
+ import { getAllWorkflowsCacheKey, getAvailableEnvironmentsCacheKey, getDashboardStatsCacheKey, getDocumentCacheKey, getDocumentsCacheKey, getFileContentCacheKey, getFileTreeCacheKey, getHealthCacheKey, getMeCacheKey, getNamespaceCacheKey, getNamespacesByPipelineCacheKey, getPipelineCacheKey, getPipelineConfigCacheKey, getPipelineSourceCacheKey, getPipelineTypesCacheKey, getPipelinesCacheKey, getPipelinesChildrenCacheKey, getWorkflowCacheKey, getWorkflowsByPipelineCacheKey, getWorkflowsCacheKey, getWorkspaceCacheKey, getWorkspaceTypesCacheKey, getWorkspacesCacheKey } from "./hooks/query-keys.js";
1
2
  import { createApiClient } from "./services/createApiClient.js";
2
3
  import { eventBus } from "./services/eventEmitter.js";
3
4
  import "./services/index.js";
4
- import { StudioProvider, useStudio } from "./providers/StudioProvider.js";
5
+ import { StudioProvider, useStudio, useStudioOptional } from "./providers/StudioProvider.js";
5
6
  import { useApiClient } from "./hooks/useApi.js";
6
7
  import { useIsMobile } from "./hooks/use-mobile.js";
7
- import { useAvailableEnvironments, useWorkspaceConfig } from "./hooks/useConfig.js";
8
- import { useBatchDeletePipeline, useChildPipelines, useCreatePipeline, useDeletePipeline, useFilterPipelines, usePipeline, usePipelineConfig, usePipelineSource, useUpdatePipeline } from "./hooks/usePipelines.js";
8
+ import { useAvailableEnvironments, usePipelineConfig, useWorkspaceConfig } from "./hooks/useConfig.js";
9
+ import { useBatchDeletePipeline, useChildPipelines, useCreatePipeline, useDeletePipeline, useFilterPipelines, usePipeline, usePipelineConfigByName, usePipelineSource, useUpdatePipeline } from "./hooks/usePipelines.js";
9
10
  import { useBatchDeleteWorkspaces, useCreateWorkspace, useDeleteWorkspace, useFilterWorkspaces, useSetFavouriteWorkspace, useUpdateWorkspace, useWorkspace } from "./hooks/useWorkspaces.js";
10
11
  import "./hooks/index.js";
11
12
  import { ComponentOverridesProvider, useComponentOverrides } from "./providers/ComponentOverridesProvider.js";
@@ -54,15 +55,19 @@ import { DataList } from "./components/data-table/DataList.js";
54
55
  import ListView_default from "./components/lists/ListView.js";
55
56
  import CustomListView_default from "./components/lists/CustomListView.js";
56
57
  import CompletionMessagePaper_default from "./components/messages/CompletionMessagePaper.js";
57
- import Snackbar_default from "./components/snackbars/Snackbar.js";
58
- import ErrorSnackbar_default from "./components/snackbars/ErrorSnackbar.js";
59
- import LoadingCentered_default from "./components/LoadingCentered.js";
58
+ import { ErrorBoundary } from "./components/feedback/ErrorBoundary.js";
59
+ import LoadingCentered_default from "./components/feedback/LoadingCentered.js";
60
+ import Snackbar_default from "./components/feedback/Snackbar.js";
61
+ import ErrorSnackbar_default from "./components/feedback/ErrorSnackbar.js";
62
+ import ErrorAlert_default from "./components/feedback/ErrorAlert.js";
60
63
  import "./components/index.js";
61
64
  import DebugPage_default from "./pages/DebugPage.js";
62
65
  import DashboardPage from "./pages/DashboardPage.js";
63
66
  import { EnvironmentSlotSelector } from "./features/workspaces/components/EnvironmentSlotSelector.js";
67
+ import CreateWorkspace_default from "./features/workspaces/components/CreateWorkspace.js";
64
68
  import WorkspacesPage from "./pages/WorkspacesPage.js";
65
69
  import WorkspacePage_default from "./pages/WorkspacePage.js";
70
+ import "./features/workspaces/index.js";
66
71
  import WorkbenchPage from "./pages/WorkbenchPage.js";
67
72
  import PipelineDebugPage_default from "./pages/PipelineDebugPage.js";
68
73
  import DebugWorkflowsPage from "./pages/DebugWorkflowsPage.js";
@@ -74,4 +79,6 @@ import RunsListPage from "./pages/RunsListPage.js";
74
79
  import StudioLandingPage from "./pages/StudioLandingPage.js";
75
80
  import LocalHealthCheck_default from "./features/health/LocalHealthCheck.js";
76
81
  import EnvironmentEmbedRoot from "./app/EnvironmentEmbedRoot.js";
77
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, CompletionMessagePaper_default as CompletionMessagePaper, ComponentOverridesProvider, ConfirmDialog_default as ConfirmDialog, CustomListView_default as CustomItemListView, DashboardPage, DataList, DataTable, DataTableBatchAction_default as DataTableBatchActions, DataTableFilters_default as DataTableFilters, DataTablePagination_default as DataTablePagination, DataTableToolbar_default as DataTableToolbar, DebugPage_default as DebugPage, DebugWorkflowDetailsPage, DebugWorkflowsPage, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiscordLogo, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmbedWorkbenchPage, EnvironmentEmbedRoot, EnvironmentSlotSelector, ErrorSnackbar_default as ErrorSnackbar, GoogleLogo, Input, InvalidationEventsProvider, ListView_default as ItemListView, Label, LoadingCentered_default as LoadingCentered, LocalHealthCheck_default as LocalHealthCheck, LocalRouter, MainLayout_default as MainLayout, PageBreadcrumbs_default as PageBreadcrumbs, PipelineDebugPage_default as PipelineDebugPage, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PreviewWorkbenchPage, RadioGroup, RadioGroupItem, RunsListPage, RunsPage, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarInsetDiv, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuDiv, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Snackbar_default as Snackbar, SseProvider, StudioLandingPage, StudioProvider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, WorkbenchPage, WorkspacePage_default as WorkspacePage, WorkspacesPage, badgeVariants, buttonVariants, createApiClient, eventBus, useApiClient, useAvailableEnvironments, useBatchDeletePipeline, useBatchDeleteWorkspaces, useChildPipelines, useComponentOverrides, useCreatePipeline, useCreateWorkspace, useDeletePipeline, useDeleteWorkspace, useFilterPipelines, useFilterWorkspaces, useIsMobile, usePipeline, usePipelineConfig, usePipelineSource, useRouter, useSetFavouriteWorkspace, useSidebar, useStudio, useUpdatePipeline, useUpdateWorkspace, useWorkspace, useWorkspaceConfig };
82
+ import { StudioSidebar } from "./components/layout/StudioSidebar.js";
83
+ import "./features/health/index.js";
84
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, CompletionMessagePaper_default as CompletionMessagePaper, ComponentOverridesProvider, ConfirmDialog_default as ConfirmDialog, CreateWorkspace_default as CreateWorkspace, CustomListView_default as CustomItemListView, DashboardPage, DataList, DataTable, DataTableBatchAction_default as DataTableBatchActions, DataTableFilters_default as DataTableFilters, DataTablePagination_default as DataTablePagination, DataTableToolbar_default as DataTableToolbar, DebugPage_default as DebugPage, DebugWorkflowDetailsPage, DebugWorkflowsPage, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiscordLogo, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmbedWorkbenchPage, EnvironmentEmbedRoot, EnvironmentSlotSelector, ErrorAlert_default as ErrorAlert, ErrorBoundary, ErrorSnackbar_default as ErrorSnackbar, GoogleLogo, Input, InvalidationEventsProvider, ListView_default as ItemListView, Label, LoadingCentered_default as LoadingCentered, LocalHealthCheck_default as LocalHealthCheck, LocalRouter, MainLayout_default as MainLayout, PageBreadcrumbs_default as PageBreadcrumbs, PipelineDebugPage_default as PipelineDebugPage, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PreviewWorkbenchPage, RadioGroup, RadioGroupItem, RunsListPage, RunsPage, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarInsetDiv, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuDiv, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Snackbar_default as Snackbar, SseProvider, StudioLandingPage, StudioProvider, StudioSidebar, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, WorkbenchPage, WorkspacePage_default as WorkspacePage, WorkspacesPage, badgeVariants, buttonVariants, createApiClient, eventBus, getAllWorkflowsCacheKey, getAvailableEnvironmentsCacheKey, getDashboardStatsCacheKey, getDocumentCacheKey, getDocumentsCacheKey, getFileContentCacheKey, getFileTreeCacheKey, getHealthCacheKey, getMeCacheKey, getNamespaceCacheKey, getNamespacesByPipelineCacheKey, getPipelineCacheKey, getPipelineConfigCacheKey, getPipelineSourceCacheKey, getPipelineTypesCacheKey, getPipelinesCacheKey, getPipelinesChildrenCacheKey, getWorkflowCacheKey, getWorkflowsByPipelineCacheKey, getWorkflowsCacheKey, getWorkspaceCacheKey, getWorkspaceTypesCacheKey, getWorkspacesCacheKey, useApiClient, useAvailableEnvironments, useBatchDeletePipeline, useBatchDeleteWorkspaces, useChildPipelines, useComponentOverrides, useCreatePipeline, useCreateWorkspace, useDeletePipeline, useDeleteWorkspace, useFilterPipelines, useFilterWorkspaces, useIsMobile, usePipeline, usePipelineConfig, usePipelineConfigByName, usePipelineSource, useRouter, useSetFavouriteWorkspace, useSidebar, useStudio, useStudioOptional, useUpdatePipeline, useUpdateWorkspace, useWorkspace, useWorkspaceConfig };
@@ -1,7 +1,7 @@
1
1
  import { useStudio } from "../providers/StudioProvider.js";
2
2
  import { Alert } from "../components/ui/alert.js";
3
3
  import MainLayout_default from "../components/layout/MainLayout.js";
4
- import LoadingCentered_default from "../components/LoadingCentered.js";
4
+ import LoadingCentered_default from "../components/feedback/LoadingCentered.js";
5
5
  import Dashboard from "../features/dashboard/Dashboard.js";
6
6
  import { useDashboardStats } from "../hooks/useDashboard.js";
7
7
  import { c } from "react/compiler-runtime";
@@ -1,5 +1,5 @@
1
1
  import { useStudio } from "../providers/StudioProvider.js";
2
- import { usePipelineConfig, usePipelineSource } from "../hooks/usePipelines.js";
2
+ import { usePipelineConfigByName, usePipelineSource } from "../hooks/usePipelines.js";
3
3
  import MainLayout_default from "../components/layout/MainLayout.js";
4
4
  import { ReactFlowProvider } from "../node_modules/@xyflow/react/dist/esm/index.js";
5
5
  import ConfigFlowViewer_default from "../features/debug/components/ConfigFlowViewer.js";
@@ -28,7 +28,7 @@ function DebugWorkflowDetailsPage() {
28
28
  let m;
29
29
  h[3] === g ? m = h[4] : (m = ["default", g], h[3] = g, h[4] = m), v = m;
30
30
  }
31
- let [y, b] = v, { data: x, isLoading: S } = usePipelineConfig(y, b), { data: C, isLoading: w } = usePipelineSource(y, b), T = S || w, E;
31
+ let [y, b] = v, { data: x, isLoading: S } = usePipelineConfigByName(y, b), { data: C, isLoading: w } = usePipelineSource(y, b), T = S || w, E;
32
32
  h[5] === _ ? E = h[6] : (E = _.getDashboard(), h[5] = _, h[6] = E);
33
33
  let D;
34
34
  h[7] === Symbol.for("react.memo_cache_sentinel") ? (D = /* @__PURE__ */ jsx(Home, { className: "h-4 w-4" }), h[7] = D) : D = h[7];
@@ -1,9 +1,10 @@
1
1
  import { usePipeline } from "../hooks/usePipelines.js";
2
- import { useFetchWorkflowsByPipeline } from "../hooks/useWorkflows.js";
3
- import ErrorSnackbar_default from "../components/snackbars/ErrorSnackbar.js";
4
- import LoadingCentered_default from "../components/LoadingCentered.js";
2
+ import LoadingCentered_default from "../components/feedback/LoadingCentered.js";
3
+ import ErrorSnackbar_default from "../components/feedback/ErrorSnackbar.js";
5
4
  import { require_enums } from "../packages/contracts/dist/enums/index.js";
5
+ import { useFetchWorkflowsByPipeline } from "../hooks/useWorkflows.js";
6
6
  import WorkflowItem_default from "../features/workbench/WorkflowItem.js";
7
+ import "../features/workbench/index.js";
7
8
  import { requireParam } from "../lib/requireParam.js";
8
9
  import { c } from "react/compiler-runtime";
9
10
  import { useEffect, useRef } from "react";
@@ -1,13 +1,14 @@
1
1
  import { useStudio } from "../providers/StudioProvider.js";
2
- import { usePipeline, usePipelineConfig } from "../hooks/usePipelines.js";
2
+ import { usePipeline, usePipelineConfigByName } from "../hooks/usePipelines.js";
3
3
  import { useWorkspace } from "../hooks/useWorkspaces.js";
4
- import { useFetchWorkflowsByPipeline } from "../hooks/useWorkflows.js";
5
4
  import MainLayout_default from "../components/layout/MainLayout.js";
6
- import ErrorSnackbar_default from "../components/snackbars/ErrorSnackbar.js";
5
+ import ErrorSnackbar_default from "../components/feedback/ErrorSnackbar.js";
7
6
  import { ReactFlowProvider } from "../node_modules/@xyflow/react/dist/esm/index.js";
7
+ import { useFetchWorkflowsByPipeline } from "../hooks/useWorkflows.js";
8
8
  import PipelineFlowViewer_default from "../features/debug/components/PipelineFlowViewer.js";
9
- import { requireParam } from "../lib/requireParam.js";
10
9
  import PipelineDebugHeader_default from "../features/debug/components/PipelineDebugHeader.js";
10
+ import "../features/debug/index.js";
11
+ import { requireParam } from "../lib/requireParam.js";
11
12
  import { c } from "react/compiler-runtime";
12
13
  import React, { useMemo } from "react";
13
14
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -18,7 +19,7 @@ var PipelineDebugPage_default = () => {
18
19
  v[0] === b ? x = v[1] : (x = requireParam(b, "pipelineId"), v[0] = b, v[1] = x);
19
20
  let S = x, C = usePipeline(S), w = C.data?.workspaceId, T = useWorkspace(w), E = useFetchWorkflowsByPipeline(S), D;
20
21
  v[2] === E.data ? D = v[3] : (D = E.data ?? [], v[2] = E.data, v[3] = D);
21
- let O = D, k = T.data?.blockName, A = C.data?.blockName, j = usePipelineConfig(k, A), M;
22
+ let O = D, k = T.data?.blockName, A = C.data?.blockName, j = usePipelineConfigByName(k, A), M;
22
23
  v[4] === y ? M = v[5] : (M = y.getDashboard(), v[4] = y, v[5] = M);
23
24
  let N;
24
25
  v[6] === Symbol.for("react.memo_cache_sentinel") ? (N = /* @__PURE__ */ jsx(Home, { className: "h-4 w-4" }), v[6] = N) : N = v[6];