@loopstack/loopstack-studio 0.29.5 → 0.31.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 (122) hide show
  1. package/dist/_virtual/rolldown_runtime.js +3 -1
  2. package/dist/api/config.js +5 -4
  3. package/dist/api/environments.js +5 -1
  4. package/dist/api/processor.js +4 -1
  5. package/dist/app/EnvironmentEmbedRoot.js +22 -30
  6. package/dist/components/ai-elements/code-block.js +4 -4
  7. package/dist/components/dynamic-form/CodeContent.js +1 -1
  8. package/dist/components/dynamic-form/FormBody.js +1 -1
  9. package/dist/components/layout/StudioSidebar.js +116 -131
  10. package/dist/components/lists/ListView.js +46 -46
  11. package/dist/components/motion/FadeIn.js +72 -0
  12. package/dist/components/motion/StreamingText.js +49 -0
  13. package/dist/components/ui/accordion.js +2 -2
  14. package/dist/components/ui-widgets/UiWidget.js +11 -10
  15. package/dist/components/ui-widgets/widgets/AiPromptInput.js +31 -28
  16. package/dist/events/sse-client-events.js +7 -1
  17. package/dist/features/code-explorer/components/FileContentViewer.js +2 -2
  18. package/dist/features/dashboard/AppLauncher.js +84 -0
  19. package/dist/features/debug/components/WorkflowFlowViewer.js +49 -51
  20. package/dist/features/documents/DocumentRenderer.js +18 -17
  21. package/dist/features/documents/components/DocumentItem.js +42 -20
  22. package/dist/features/documents/components/DocumentList.js +34 -36
  23. package/dist/features/documents/components/DocumentMetadataPills.js +102 -49
  24. package/dist/features/documents/document-details/DocumentDetails.js +577 -377
  25. package/dist/features/documents/document-details/PromptDetails.js +118 -130
  26. package/dist/features/documents/document-details/document-debug-utils.js +100 -0
  27. package/dist/features/documents/renderers/ChoicesRenderer.js +41 -38
  28. package/dist/features/documents/renderers/ConfirmPromptRenderer.js +31 -28
  29. package/dist/features/documents/renderers/DocumentFormRenderer.js +62 -70
  30. package/dist/features/documents/renderers/LlmMessage.js +52 -47
  31. package/dist/features/documents/renderers/TextPromptRenderer.js +32 -29
  32. package/dist/features/documents/renderers/useDocumentTransition.js +4 -4
  33. package/dist/features/feature-registry/FeatureRegistryProvider.js +32 -10
  34. package/dist/features/feature-registry/available-features.js +12 -0
  35. package/dist/features/feature-registry/index.js +2 -1
  36. package/dist/features/file-explorer/components/FileExplorerPanel.js +55 -51
  37. package/dist/features/git/components/GitBranchBadge.js +31 -0
  38. package/dist/features/git/components/GitCommitList.js +46 -0
  39. package/dist/features/git/components/GitRemoteStatus.js +84 -0
  40. package/dist/features/git/components/WorkbenchGitPanel.js +81 -0
  41. package/dist/features/git/git-feature.js +12 -0
  42. package/dist/features/git/hooks/useGit.js +78 -0
  43. package/dist/features/git/index.js +1 -0
  44. package/dist/features/oauth/OAuthPromptRenderer.js +137 -142
  45. package/dist/features/runs/Runs.js +73 -73
  46. package/dist/features/secrets/components/WorkbenchSecretsPanel.js +1 -1
  47. package/dist/features/secrets/renderers/SecretInputRenderer.js +30 -29
  48. package/dist/features/workbench/Workbench.js +25 -33
  49. package/dist/features/workbench/WorkflowItem.js +9 -9
  50. package/dist/features/workbench/WorkflowList.js +61 -62
  51. package/dist/features/workbench/components/NewRunDialog.js +237 -209
  52. package/dist/features/workbench/components/RecentRunItem.js +3 -3
  53. package/dist/features/workbench/components/WorkbenchEnvironmentPanel.js +8 -8
  54. package/dist/features/workbench/components/WorkbenchIconSidebar.js +74 -109
  55. package/dist/features/workbench/components/WorkbenchSidebarShell.js +3 -3
  56. package/dist/features/workbench/components/WorkflowForms.js +11 -10
  57. package/dist/features/workbench/components/WorkflowHistoryItem.js +16 -36
  58. package/dist/features/workbench/components/WorkflowHistoryList.js +19 -17
  59. package/dist/features/workbench/components/buttons/WorkflowButtons.js +3 -3
  60. package/dist/features/workbench/hooks/useLlmStreamingDocuments.js +159 -0
  61. package/dist/features/workbench/hooks/useWorkflowData.js +58 -31
  62. package/dist/features/workbench/index.js +2 -2
  63. package/dist/features/workbench/providers/WorkbenchLayoutProvider.js +53 -53
  64. package/dist/features/workspaces/Workspaces.js +166 -136
  65. package/dist/features/workspaces/components/CreateWorkspace.js +115 -107
  66. package/dist/features/workspaces/components/ExecutionTimeline.js +2 -2
  67. package/dist/features/workspaces/components/WorkflowRunForm.js +127 -104
  68. package/dist/features/workspaces/components/WorkspaceHomePage.js +6 -89
  69. package/dist/features/workspaces/components/workflow-form/ArgumentsView.js +1 -1
  70. package/dist/features/workspaces/components/workflow-form/SelectionView.js +15 -15
  71. package/dist/hooks/index.js +3 -2
  72. package/dist/hooks/query-keys.js +43 -30
  73. package/dist/hooks/useConfig.js +28 -22
  74. package/dist/hooks/useEnvironments.js +27 -2
  75. package/dist/hooks/useProcessor.js +14 -1
  76. package/dist/hooks/useWorkflows.js +4 -4
  77. package/dist/index.d.ts +119 -18
  78. package/dist/index.js +10 -9
  79. package/dist/node_modules/d3/src/index.js +13 -13
  80. package/dist/node_modules/d3-scale/src/continuous.js +16 -16
  81. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/architectureDiagram-3BPJPVTR.js +43 -43
  82. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/blockDiagram-GPEHLZMM.js +270 -270
  83. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-AAUBKEIU.js +90 -90
  84. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-3OPIFGDE.js +458 -458
  85. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-55IACEB6.js +3 -3
  86. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-5ZQYHXKU.js +37 -37
  87. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-727SXJPM.js +208 -208
  88. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-KSCS5N6A.js +145 -145
  89. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ND2GUHAM.js +7 -7
  90. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-O5CBEL6O.js +41 -41
  91. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-WU5MYG2G.js +3 -3
  92. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/cose-bilkent-S5V4N54A.js +6 -6
  93. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/diagram-KO2AKTUF.js +30 -30
  94. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/diagram-OG6HWLK6.js +82 -82
  95. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/erDiagram-TEJ5UH35.js +65 -65
  96. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/flowDiagram-I6XJVG4X.js +227 -227
  97. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-6RSMTGT7.js +104 -104
  98. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/gitGraphDiagram-PVQCEYII.js +104 -104
  99. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/journeyDiagram-JHISSGLW.js +49 -49
  100. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/quadrantDiagram-W4KKPZXB.js +101 -101
  101. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/sankeyDiagram-5OEKKPKP.js +20 -20
  102. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-3UESZ5HK.js +354 -354
  103. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-AJRCARHV.js +53 -53
  104. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-PNZ67QCA.js +113 -113
  105. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/vennDiagram-CIIHVFJN.js +90 -90
  106. package/dist/node_modules/mermaid/dist/mermaid.core.js +156 -156
  107. package/dist/node_modules/motion/dist/es/react.js +9 -2
  108. package/dist/pages/DashboardPage.js +20 -74
  109. package/dist/pages/DebugWorkflowDetailsPage.js +2 -2
  110. package/dist/pages/DebugWorkflowsPage.js +76 -106
  111. package/dist/pages/EmbedWorkbenchPage.js +1 -1
  112. package/dist/pages/PreviewWorkbenchPage.js +6 -6
  113. package/dist/pages/WorkbenchPage.js +43 -47
  114. package/dist/pages/WorkflowDebugPage.js +6 -12
  115. package/dist/pages/WorkspacePage.js +40 -66
  116. package/dist/pages/WorkspaceRunsPage.js +24 -31
  117. package/dist/routing/LocalRouter.js +1 -1
  118. package/package.json +2 -2
  119. package/dist/features/dashboard/Dashboard.js +0 -125
  120. package/dist/features/dashboard/RunItem.js +0 -78
  121. package/dist/features/dashboard/RunList.js +0 -32
  122. package/dist/hooks/useDashboard.js +0 -16
@@ -1,85 +1,31 @@
1
- import { Button } from "../components/ui/button.js";
2
- import { Alert, AlertDescription, AlertTitle } from "../components/ui/alert.js";
1
+ import { useAppsConfig } from "../hooks/useConfig.js";
3
2
  import MainLayout_default from "../components/layout/MainLayout.js";
4
3
  import LoadingCentered_default from "../components/feedback/LoadingCentered.js";
5
- import Dashboard from "../features/dashboard/Dashboard.js";
6
- import { useDashboardStats } from "../hooks/useDashboard.js";
4
+ import AppLauncher from "../features/dashboard/AppLauncher.js";
7
5
  import { c } from "react/compiler-runtime";
8
6
  import { jsx, jsxs } from "react/jsx-runtime";
9
- import { TriangleAlert } from "lucide-react";
10
7
  function DashboardPage() {
11
- let p = c(22), { data: m, isLoading: h, error: g, refetch: _, isRefetching: v } = useDashboardStats();
12
- if (h) {
8
+ let s = c(8), { data: l, isLoading: u } = useAppsConfig();
9
+ if (u) {
13
10
  let e;
14
- return p[0] === h ? e = p[1] : (e = /* @__PURE__ */ jsx(LoadingCentered_default, { loading: h }), p[0] = h, p[1] = e), e;
11
+ return s[0] === u ? e = s[1] : (e = /* @__PURE__ */ jsx(LoadingCentered_default, { loading: u }), s[0] = u, s[1] = e), e;
15
12
  }
16
- if (g) {
17
- let l;
18
- p[2] === Symbol.for("react.memo_cache_sentinel") ? (l = [{
19
- label: "Dashboard",
20
- current: !0
21
- }], p[2] = l) : l = p[2];
22
- let u = l, d;
23
- p[3] === Symbol.for("react.memo_cache_sentinel") ? (d = /* @__PURE__ */ jsx("h1", {
24
- className: "mb-4 text-3xl font-bold tracking-tight",
25
- children: "Dashboard"
26
- }), p[3] = d) : d = p[3];
27
- let f, m;
28
- p[4] === Symbol.for("react.memo_cache_sentinel") ? (f = /* @__PURE__ */ jsx(TriangleAlert, {}), m = /* @__PURE__ */ jsx(AlertTitle, { children: "Failed to load dashboard" }), p[4] = f, p[5] = m) : (f = p[4], m = p[5]);
29
- let h;
30
- p[6] === g.message ? h = p[7] : (h = /* @__PURE__ */ jsxs("p", {
31
- className: "wrap-break-word",
32
- children: ["Please try again. ", g.message]
33
- }), p[6] = g.message, p[7] = h);
34
- let y;
35
- p[8] === _ ? y = p[9] : (y = () => void _(), p[8] = _, p[9] = y);
36
- let b = v ? "Reloading…" : "Retry", x;
37
- p[10] !== v || p[11] !== y || p[12] !== b ? (x = /* @__PURE__ */ jsx("div", {
38
- className: "mt-3 flex flex-wrap gap-2",
39
- children: /* @__PURE__ */ jsx(Button, {
40
- variant: "destructive",
41
- onClick: y,
42
- disabled: v,
43
- children: b
44
- })
45
- }), p[10] = v, p[11] = y, p[12] = b, p[13] = x) : x = p[13];
46
- let S;
47
- return p[14] !== h || p[15] !== x ? (S = /* @__PURE__ */ jsxs(MainLayout_default, {
48
- breadcrumbsData: u,
49
- children: [d, /* @__PURE__ */ jsx("div", {
50
- className: "mx-auto w-full max-w-2xl",
51
- children: /* @__PURE__ */ jsxs(Alert, {
52
- variant: "destructive",
53
- children: [
54
- f,
55
- m,
56
- /* @__PURE__ */ jsxs(AlertDescription, { children: [h, x] })
57
- ]
58
- })
59
- })]
60
- }), p[14] = h, p[15] = x, p[16] = S) : S = p[16], S;
61
- }
62
- if (!m) {
63
- let e;
64
- return p[17] === Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ jsx("div", {
65
- className: "p-4",
66
- children: "No data available"
67
- }), p[17] = e) : e = p[17], e;
68
- }
69
- let y;
70
- p[18] === Symbol.for("react.memo_cache_sentinel") ? (y = [{
71
- label: "Dashboard",
13
+ let d;
14
+ s[2] === Symbol.for("react.memo_cache_sentinel") ? (d = [{
15
+ label: "Applications",
72
16
  current: !0
73
- }], p[18] = y) : y = p[18];
74
- let b = y, x;
75
- p[19] === Symbol.for("react.memo_cache_sentinel") ? (x = /* @__PURE__ */ jsx("h1", {
17
+ }], s[2] = d) : d = s[2];
18
+ let f = d, p;
19
+ s[3] === Symbol.for("react.memo_cache_sentinel") ? (p = /* @__PURE__ */ jsx("h1", {
76
20
  className: "mb-4 text-3xl font-bold tracking-tight",
77
- children: "Dashboard"
78
- }), p[19] = x) : x = p[19];
79
- let S;
80
- return p[20] === m ? S = p[21] : (S = /* @__PURE__ */ jsxs(MainLayout_default, {
81
- breadcrumbsData: b,
82
- children: [x, /* @__PURE__ */ jsx(Dashboard, { dashboardStats: m })]
83
- }), p[20] = m, p[21] = S), S;
21
+ children: "Applications"
22
+ }), s[3] = p) : p = s[3];
23
+ let m;
24
+ s[4] === l ? m = s[5] : (m = l && l.length > 0 && /* @__PURE__ */ jsx(AppLauncher, { apps: l }), s[4] = l, s[5] = m);
25
+ let h;
26
+ return s[6] === m ? h = s[7] : (h = /* @__PURE__ */ jsxs(MainLayout_default, {
27
+ breadcrumbsData: f,
28
+ children: [p, m]
29
+ }), s[6] = m, s[7] = h), h;
84
30
  }
85
31
  export { DashboardPage as default };
@@ -35,7 +35,7 @@ function DebugWorkflowDetailsPage() {
35
35
  label: "Debug Workflows",
36
36
  href: T
37
37
  }, m[7] = T, m[8] = E);
38
- let D = b?.title || b?.alias || y || "Workflow Details", O;
38
+ let D = b?.title || b?.workflowName || y || "Workflow Details", O;
39
39
  m[9] === D ? O = m[10] : (O = {
40
40
  label: D,
41
41
  current: !0
@@ -51,7 +51,7 @@ function DebugWorkflowDetailsPage() {
51
51
  children: [
52
52
  /* @__PURE__ */ jsx("h1", {
53
53
  className: "text-3xl font-bold tracking-tight",
54
- children: b.title || b.alias
54
+ children: b.title || b.workflowName
55
55
  }),
56
56
  /* @__PURE__ */ jsx("p", {
57
57
  className: "text-muted-foreground",
@@ -1,168 +1,138 @@
1
1
  import { useStudio } from "../providers/StudioProvider.js";
2
- import { useApiClient } from "../hooks/useApi.js";
3
- import { useAppConfig } from "../hooks/useConfig.js";
2
+ import { useAppsConfig } from "../hooks/useConfig.js";
4
3
  import { Badge } from "../components/ui/badge.js";
5
4
  import MainLayout_default from "../components/layout/MainLayout.js";
6
5
  import { DataTable } from "../components/data-table/DataTable.js";
7
6
  import { c } from "react/compiler-runtime";
8
7
  import { useMemo, useState } from "react";
9
8
  import { jsx, jsxs } from "react/jsx-runtime";
10
- import { useQueries } from "@tanstack/react-query";
11
9
  function DebugWorkflowsPage() {
12
- let f = c(50), { router: m } = useStudio(), { envKey: h, api: g } = useApiClient(), { data: _, isLoading: v } = useAppConfig(), y;
13
- f[0] === _ ? y = f[1] : (y = _ ?? [], f[0] = _, f[1] = y);
14
- let b;
15
- if (f[2] !== g || f[3] !== _?.length || f[4] !== h || f[5] !== y) {
16
- let e;
17
- f[7] !== g || f[8] !== _?.length || f[9] !== h ? (e = (e) => ({
18
- queryKey: [
19
- "workflowTypes",
20
- e.className,
21
- h
22
- ],
23
- queryFn: async () => {
24
- let u = await g.config.getWorkflowTypesByApp({ appBlockName: e.className });
25
- return {
26
- appBlockName: e.className,
27
- types: u
28
- };
29
- },
30
- enabled: !!_?.length
31
- }), f[7] = g, f[8] = _?.length, f[9] = h, f[10] = e) : e = f[10], b = y.map(e), f[2] = g, f[3] = _?.length, f[4] = h, f[5] = y, f[6] = b;
32
- } else b = f[6];
33
- let x;
34
- f[11] === b ? x = f[12] : (x = { queries: b }, f[11] = b, f[12] = x);
35
- let S = useQueries(x), C;
36
- f[13] === S ? C = f[14] : (C = S.some(_temp), f[13] = S, f[14] = C);
37
- let w = v || C, T;
10
+ let p = c(35), { router: g } = useStudio(), { data: _, isLoading: v } = useAppsConfig(), y;
38
11
  bb0: {
39
- if (w || !S) {
12
+ if (!_) {
40
13
  let e;
41
- f[15] === Symbol.for("react.memo_cache_sentinel") ? (e = [], f[15] = e) : e = f[15], T = e;
14
+ p[0] === Symbol.for("react.memo_cache_sentinel") ? (e = [], p[0] = e) : e = p[0], y = e;
42
15
  break bb0;
43
16
  }
44
17
  let e;
45
- f[16] === S ? e = f[17] : (e = S.flatMap(_temp2), f[16] = S, f[17] = e), T = e;
18
+ p[1] === _ ? e = p[2] : (e = _.flatMap(_temp), p[1] = _, p[2] = e), y = e;
46
19
  }
47
- let E = T, [D, O] = useState(""), [k, A] = useState("alias"), [j, M] = useState("ASC"), [N, P] = useState(0), [F, I] = useState(10), L, R;
48
- if (f[18] !== E || f[19] !== D || f[20] !== k || f[21] !== j) {
49
- if (L = E, D) {
50
- let e = D.toLowerCase();
51
- L = L.filter((u) => u.alias?.toLowerCase().includes(e) || u.title?.toLowerCase().includes(e) || u.description?.toLowerCase().includes(e) || u.appBlockName.toLowerCase().includes(e));
20
+ let b = y, [x, S] = useState(""), [C, w] = useState("workflowName"), [T, E] = useState("ASC"), [D, O] = useState(0), [k, A] = useState(10), j, M;
21
+ if (p[3] !== b || p[4] !== x || p[5] !== C || p[6] !== T) {
22
+ if (j = b, x) {
23
+ let e = x.toLowerCase();
24
+ j = j.filter((f) => f.workflowName?.toLowerCase().includes(e) || f.title?.toLowerCase().includes(e) || f.description?.toLowerCase().includes(e) || f.appBlockName.toLowerCase().includes(e));
52
25
  }
53
26
  let e;
54
- f[24] !== k || f[25] !== j ? (e = (e, u) => {
55
- let d = k, f = (e[d] || "").toLowerCase(), p = (u[d] || "").toLowerCase();
56
- return f < p ? j === "ASC" ? -1 : 1 : f > p ? j === "ASC" ? 1 : -1 : 0;
57
- }, f[24] = k, f[25] = j, f[26] = e) : e = f[26], R = [...L].sort(e), f[18] = E, f[19] = D, f[20] = k, f[21] = j, f[22] = L, f[23] = R;
58
- } else L = f[22], R = f[23];
59
- L = R;
60
- let z = L, B = N * F, V;
61
- f[27] !== z || f[28] !== F || f[29] !== B ? (V = z.slice(B, B + F), f[27] = z, f[28] = F, f[29] = B, f[30] = V) : V = f[30];
62
- let H = V, U;
63
- f[31] === Symbol.for("react.memo_cache_sentinel") ? (U = [
27
+ p[9] !== C || p[10] !== T ? (e = (e, f) => {
28
+ let p = C, m = (e[p] || "").toLowerCase(), h = (f[p] || "").toLowerCase();
29
+ return m < h ? T === "ASC" ? -1 : 1 : m > h ? T === "ASC" ? 1 : -1 : 0;
30
+ }, p[9] = C, p[10] = T, p[11] = e) : e = p[11], M = [...j].sort(e), p[3] = b, p[4] = x, p[5] = C, p[6] = T, p[7] = j, p[8] = M;
31
+ } else j = p[7], M = p[8];
32
+ j = M;
33
+ let N = j, P = D * k, F;
34
+ p[12] !== N || p[13] !== k || p[14] !== P ? (F = N.slice(P, P + k), p[12] = N, p[13] = k, p[14] = P, p[15] = F) : F = p[15];
35
+ let I = F, L;
36
+ p[16] === Symbol.for("react.memo_cache_sentinel") ? (L = [
64
37
  {
65
- id: "alias",
38
+ id: "workflowName",
66
39
  label: "Type ID (Alias)",
67
40
  sortable: !0,
68
41
  minWidth: 200,
69
- format: _temp3
42
+ format: _temp2
70
43
  },
71
44
  {
72
45
  id: "title",
73
46
  label: "Title",
74
47
  sortable: !0,
75
- format: _temp4
48
+ format: _temp3
76
49
  },
77
50
  {
78
51
  id: "appBlockName",
79
52
  label: "App Type",
80
53
  sortable: !0,
81
- format: _temp5
54
+ format: _temp4
82
55
  },
83
56
  {
84
57
  id: "description",
85
58
  label: "Description",
86
59
  sortable: !0,
87
- format: _temp6
60
+ format: _temp5
88
61
  }
89
- ], f[31] = U) : U = f[31];
90
- let W = U, G;
91
- f[32] === Symbol.for("react.memo_cache_sentinel") ? (G = [{
62
+ ], p[16] = L) : L = p[16];
63
+ let R = L, z;
64
+ p[17] === Symbol.for("react.memo_cache_sentinel") ? (z = [{
92
65
  label: "Debug Workflows",
93
66
  current: !0
94
- }], f[32] = G) : G = f[32];
95
- let K = G, q;
96
- f[33] === Symbol.for("react.memo_cache_sentinel") ? (q = /* @__PURE__ */ jsx("h1", {
67
+ }], p[17] = z) : z = p[17];
68
+ let B = z, V;
69
+ p[18] === Symbol.for("react.memo_cache_sentinel") ? (V = /* @__PURE__ */ jsx("h1", {
97
70
  className: "mb-4 text-3xl font-bold tracking-tight",
98
71
  children: "Workflow Types"
99
- }), f[33] = q) : q = f[33];
100
- let J, Y;
101
- f[34] === Symbol.for("react.memo_cache_sentinel") ? (J = (e) => P(e), Y = (e) => {
102
- I(e), P(0);
103
- }, f[34] = J, f[35] = Y) : (J = f[34], Y = f[35]);
104
- let X, Z;
105
- f[36] === Symbol.for("react.memo_cache_sentinel") ? (X = (e, u) => {
106
- A(e), M(u);
107
- }, Z = {}, f[36] = X, f[37] = Z) : (X = f[36], Z = f[37]);
108
- let Q;
109
- f[38] === m ? Q = f[39] : (Q = (e) => void m.navigateToDebugWorkflow(e.id), f[38] = m, f[39] = Q);
110
- let $;
111
- return f[40] !== z.length || f[41] !== w || f[42] !== N || f[43] !== F || f[44] !== H || f[45] !== D || f[46] !== k || f[47] !== j || f[48] !== Q ? ($ = /* @__PURE__ */ jsxs(MainLayout_default, {
112
- breadcrumbsData: K,
113
- children: [q, /* @__PURE__ */ jsx(DataTable, {
114
- data: H,
115
- columns: W,
116
- loading: w,
117
- totalItems: z.length,
118
- searchTerm: D,
119
- onSearchChange: O,
120
- page: N,
121
- pageSize: F,
122
- onPageChange: J,
123
- onPageSizeChange: Y,
124
- sortBy: k,
125
- sortOrder: j,
126
- onSortChange: X,
127
- filters: Z,
128
- onFiltersChange: _temp7,
72
+ }), p[18] = V) : V = p[18];
73
+ let H, U;
74
+ p[19] === Symbol.for("react.memo_cache_sentinel") ? (H = (e) => O(e), U = (e) => {
75
+ A(e), O(0);
76
+ }, p[19] = H, p[20] = U) : (H = p[19], U = p[20]);
77
+ let W, G;
78
+ p[21] === Symbol.for("react.memo_cache_sentinel") ? (W = (e, f) => {
79
+ w(e), E(f);
80
+ }, G = {}, p[21] = W, p[22] = G) : (W = p[21], G = p[22]);
81
+ let K;
82
+ p[23] === g ? K = p[24] : (K = (e) => void g.navigateToDebugWorkflow(e.id), p[23] = g, p[24] = K);
83
+ let q;
84
+ return p[25] !== N.length || p[26] !== v || p[27] !== D || p[28] !== k || p[29] !== I || p[30] !== x || p[31] !== C || p[32] !== T || p[33] !== K ? (q = /* @__PURE__ */ jsxs(MainLayout_default, {
85
+ breadcrumbsData: B,
86
+ children: [V, /* @__PURE__ */ jsx(DataTable, {
87
+ data: I,
88
+ columns: R,
89
+ loading: v,
90
+ totalItems: N.length,
91
+ searchTerm: x,
92
+ onSearchChange: S,
93
+ page: D,
94
+ pageSize: k,
95
+ onPageChange: H,
96
+ onPageSizeChange: U,
97
+ sortBy: C,
98
+ sortOrder: T,
99
+ onSortChange: W,
100
+ filters: G,
101
+ onFiltersChange: _temp6,
129
102
  enableBatchActions: !1,
130
- onRowClick: Q
103
+ onRowClick: K
131
104
  })]
132
- }), f[40] = z.length, f[41] = w, f[42] = N, f[43] = F, f[44] = H, f[45] = D, f[46] = k, f[47] = j, f[48] = Q, f[49] = $) : $ = f[49], $;
105
+ }), p[25] = N.length, p[26] = v, p[27] = D, p[28] = k, p[29] = I, p[30] = x, p[31] = C, p[32] = T, p[33] = K, p[34] = q) : q = p[34], q;
133
106
  }
134
- function _temp7() {}
135
- function _temp6(e) {
107
+ function _temp6() {}
108
+ function _temp5(e) {
136
109
  return /* @__PURE__ */ jsx("span", {
137
110
  className: "text-muted-foreground max-w-xs truncate block",
138
111
  children: String(e || "-")
139
112
  });
140
113
  }
141
- function _temp5(e) {
114
+ function _temp4(e) {
142
115
  return /* @__PURE__ */ jsx(Badge, {
143
116
  variant: "outline",
144
117
  children: String(e)
145
118
  });
146
119
  }
147
- function _temp4(e, u) {
148
- return /* @__PURE__ */ jsx("span", { children: String(e || u.alias || "N/A") });
120
+ function _temp3(e, f) {
121
+ return /* @__PURE__ */ jsx("span", { children: String(e || f.workflowName || "N/A") });
149
122
  }
150
- function _temp3(e) {
123
+ function _temp2(e) {
151
124
  return /* @__PURE__ */ jsx("span", {
152
125
  className: "font-medium",
153
126
  children: String(e)
154
127
  });
155
128
  }
156
- function _temp2(e) {
157
- if (!e.data) return [];
158
- let { appBlockName: u, types: d } = e.data;
159
- return (d ?? []).map((e) => ({
160
- ...e,
161
- id: `${u}::${e.alias}`,
162
- appBlockName: u
163
- }));
164
- }
165
129
  function _temp(e) {
166
- return e.isLoading;
130
+ return e.workflows.map((f) => ({
131
+ id: `${e.appName}::${f.workflowName}`,
132
+ workflowName: f.workflowName,
133
+ title: f.title,
134
+ description: f.description,
135
+ appBlockName: e.appName
136
+ }));
167
137
  }
168
138
  export { DebugWorkflowsPage as default };
@@ -1,10 +1,10 @@
1
1
  import { useWorkflow } from "../hooks/useWorkflows.js";
2
2
  import LoadingCentered_default from "../components/feedback/LoadingCentered.js";
3
3
  import ErrorSnackbar_default from "../components/feedback/ErrorSnackbar.js";
4
- import { WorkbenchLayoutProvider } from "../features/workbench/providers/WorkbenchLayoutProvider.js";
5
4
  import { WorkflowState } from "../packages/contracts/dist/enums/workflow-state.enum.js";
6
5
  import "../packages/contracts/dist/enums/index.js";
7
6
  import WorkflowItem_default from "../features/workbench/WorkflowItem.js";
7
+ import { WorkbenchLayoutProvider } from "../features/workbench/providers/WorkbenchLayoutProvider.js";
8
8
  import "../features/workbench/index.js";
9
9
  import { requireParam } from "../lib/requireParam.js";
10
10
  import { c } from "react/compiler-runtime";
@@ -3,11 +3,11 @@ import { useFilterWorkflows, useWorkflow, useWorkflowConfigByName } from "../hoo
3
3
  import { Button } from "../components/ui/button.js";
4
4
  import LoadingCentered_default from "../components/feedback/LoadingCentered.js";
5
5
  import ErrorSnackbar_default from "../components/feedback/ErrorSnackbar.js";
6
- import { WorkflowState } from "../packages/contracts/dist/enums/workflow-state.enum.js";
7
- import "../packages/contracts/dist/enums/index.js";
8
6
  import { ReactFlowProvider } from "../node_modules/@xyflow/react/dist/esm/index.js";
9
7
  import WorkflowFlowViewer_default from "../features/debug/components/WorkflowFlowViewer.js";
10
8
  import "../features/debug/index.js";
9
+ import { WorkflowState } from "../packages/contracts/dist/enums/workflow-state.enum.js";
10
+ import "../packages/contracts/dist/enums/index.js";
11
11
  import WorkflowItem_default from "../features/workbench/WorkflowItem.js";
12
12
  import WorkflowHistoryList_default from "../features/workbench/components/WorkflowHistoryList.js";
13
13
  import { NewRunDialog } from "../features/workbench/components/NewRunDialog.js";
@@ -45,7 +45,7 @@ function PreviewWorkbenchPage() {
45
45
  }), e[3] = t, e[4] = o), o;
46
46
  }
47
47
  function PreviewWorkbenchContent(e) {
48
- let t = c(49), { workflowId: m, onNewRunSuccess: h } = e, _ = useRef(null), [y, b] = useState("output"), [x, S] = useState(!1), w = useWorkflow(m), T = useRef(!1), O = useWorkflowConfigByName(w.data?.className ?? void 0), A, j;
48
+ let t = c(49), { workflowId: m, onNewRunSuccess: h } = e, _ = useRef(null), [y, b] = useState("output"), [x, S] = useState(!1), w = useWorkflow(m), T = useRef(!1), O = useWorkflowConfigByName(w.data?.workflowName), A, j;
49
49
  t[0] !== w.data || t[1] !== m ? (A = () => {
50
50
  !w.data || T.current || w.data.status === WorkflowState.Completed && window.parent !== window && (T.current = !0, window.parent.postMessage({
51
51
  type: EMBED_MESSAGE_TYPE,
@@ -273,15 +273,15 @@ function RecentRunItem(e) {
273
273
  let t = c(17), { workflow: n, onClick: r } = e, i = `h-1.5 w-1.5 shrink-0 rounded-full ${STATUS_DOT_COLORS[n.status] ?? "bg-muted-foreground"}`, a;
274
274
  t[0] === i ? a = t[1] : (a = /* @__PURE__ */ jsx("span", { className: i }), t[0] = i, t[1] = a);
275
275
  let o;
276
- t[2] !== n.alias || t[3] !== n.run ? (o = /* @__PURE__ */ jsxs("span", {
276
+ t[2] !== n.run || t[3] !== n.workflowName ? (o = /* @__PURE__ */ jsxs("span", {
277
277
  className: "truncate text-sm font-medium",
278
278
  children: [
279
279
  "Run #",
280
280
  n.run,
281
281
  " · ",
282
- n.alias
282
+ n.workflowName
283
283
  ]
284
- }), t[2] = n.alias, t[3] = n.run, t[4] = o) : o = t[4];
284
+ }), t[2] = n.run, t[3] = n.workflowName, t[4] = o) : o = t[4];
285
285
  let s;
286
286
  t[5] !== a || t[6] !== o ? (s = /* @__PURE__ */ jsxs("div", {
287
287
  className: "flex items-center gap-2",
@@ -3,68 +3,64 @@ import { useWorkflow } from "../hooks/useWorkflows.js";
3
3
  import { useWorkspace } from "../hooks/useWorkspaces.js";
4
4
  import LoadingCentered_default from "../components/feedback/LoadingCentered.js";
5
5
  import ErrorSnackbar_default from "../components/feedback/ErrorSnackbar.js";
6
- import { useDefaultEnvironmentPreviewUrl } from "../hooks/useEnvironmentPreviewUrl.js";
7
6
  import Workbench from "../features/workbench/Workbench.js";
8
7
  import "../features/workbench/index.js";
8
+ import { useDefaultEnvironmentPreviewUrl } from "../hooks/useEnvironmentPreviewUrl.js";
9
9
  import { requireParam } from "../lib/requireParam.js";
10
10
  import { c } from "react/compiler-runtime";
11
- import { useMemo } from "react";
12
11
  import { jsx, jsxs } from "react/jsx-runtime";
13
12
  import { useParams } from "react-router-dom";
14
13
  function WorkbenchPage(p) {
15
- let m = c(36), h;
14
+ let m = c(35), h;
16
15
  m[0] === p ? h = m[1] : (h = p === void 0 ? {} : p, m[0] = p, m[1] = h);
17
- let { getPreviewUrl: g, getEnvironmentPreviewUrl: _, environments: v } = h, { router: y } = useStudio(), b = useParams(), x;
18
- m[2] === b ? x = m[3] : (x = requireParam(b, "workflowId"), m[2] = b, m[3] = x);
19
- let S = useWorkflow(x), C = S.data?.workspaceId, w = useWorkspace(C);
20
- w.data?.environments;
21
- let T = v ?? w.data?.environments, E = useDefaultEnvironmentPreviewUrl(), D = _ ?? E, O;
22
- m[4] === y ? O = m[5] : (O = y.getWorkspaces(), m[4] = y, m[5] = O);
23
- let k;
24
- m[6] === O ? k = m[7] : (k = {
16
+ let { getPreviewUrl: g, getEnvironmentPreviewUrl: _ } = h, { router: v } = useStudio(), y = useParams(), b;
17
+ m[2] === y ? b = m[3] : (b = requireParam(y, "workflowId"), m[2] = y, m[3] = b);
18
+ let x = useWorkflow(b), S = x.data?.workspaceId, C = useWorkspace(S), w = useDefaultEnvironmentPreviewUrl(), T = _ ?? w, E;
19
+ m[4] === v ? E = m[5] : (E = v.getWorkspaces(), m[4] = v, m[5] = E);
20
+ let D;
21
+ m[6] === E ? D = m[7] : (D = {
25
22
  label: "Workspaces",
26
- href: O
27
- }, m[6] = O, m[7] = k);
28
- let A = w.data?.title ?? "", j;
29
- m[8] !== y || m[9] !== C ? (j = C ? y.getWorkspace(C) : void 0, m[8] = y, m[9] = C, m[10] = j) : j = m[10];
30
- let M;
31
- m[11] !== A || m[12] !== j ? (M = {
32
- label: A,
33
- href: j
34
- }, m[11] = A, m[12] = j, m[13] = M) : M = m[13];
35
- let N = `Run #${S.data?.run}${S.data?.title ? ` (${S.data.title})` : ""}`, P;
36
- m[14] === N ? P = m[15] : (P = { label: N }, m[14] = N, m[15] = P);
37
- let F;
38
- m[16] !== k || m[17] !== M || m[18] !== P ? (F = [
39
- k,
40
- M,
41
- P
42
- ], m[16] = k, m[17] = M, m[18] = P, m[19] = F) : F = m[19];
43
- let I = F, L;
44
- m[20] === S.error ? L = m[21] : (L = /* @__PURE__ */ jsx(ErrorSnackbar_default, { error: S.error }), m[20] = S.error, m[21] = L);
45
- let R;
46
- m[22] !== I || m[23] !== S.data || m[24] !== S.error || m[25] !== S.isLoading || m[26] !== g || m[27] !== T || m[28] !== D ? (R = S.data ? /* @__PURE__ */ jsx(Workbench, {
47
- workflow: S.data,
48
- breadcrumbData: I,
23
+ href: E
24
+ }, m[6] = E, m[7] = D);
25
+ let O = C.data?.title ?? "", k;
26
+ m[8] !== v || m[9] !== S ? (k = S ? v.getWorkspace(S) : void 0, m[8] = v, m[9] = S, m[10] = k) : k = m[10];
27
+ let A;
28
+ m[11] !== O || m[12] !== k ? (A = {
29
+ label: O,
30
+ href: k
31
+ }, m[11] = O, m[12] = k, m[13] = A) : A = m[13];
32
+ let j = `Run #${x.data?.run}${x.data?.title ? ` (${x.data.title})` : ""}`, M;
33
+ m[14] === j ? M = m[15] : (M = { label: j }, m[14] = j, m[15] = M);
34
+ let N;
35
+ m[16] !== D || m[17] !== A || m[18] !== M ? (N = [
36
+ D,
37
+ A,
38
+ M
39
+ ], m[16] = D, m[17] = A, m[18] = M, m[19] = N) : N = m[19];
40
+ let P = N, F;
41
+ m[20] === x.error ? F = m[21] : (F = /* @__PURE__ */ jsx(ErrorSnackbar_default, { error: x.error }), m[20] = x.error, m[21] = F);
42
+ let I;
43
+ m[22] !== P || m[23] !== x.data || m[24] !== x.error || m[25] !== x.isLoading || m[26] !== g || m[27] !== T ? (I = x.data ? /* @__PURE__ */ jsx(Workbench, {
44
+ workflow: x.data,
45
+ breadcrumbData: P,
49
46
  getPreviewUrl: g,
50
- getEnvironmentPreviewUrl: D,
51
- environments: T
52
- }) : !S.isLoading && !S.error ? /* @__PURE__ */ jsx("p", {
47
+ getEnvironmentPreviewUrl: T
48
+ }) : !x.isLoading && !x.error ? /* @__PURE__ */ jsx("p", {
53
49
  className: "text-muted-foreground py-8 text-center text-sm",
54
50
  children: "Workflow not found."
55
- }) : null, m[22] = I, m[23] = S.data, m[24] = S.error, m[25] = S.isLoading, m[26] = g, m[27] = T, m[28] = D, m[29] = R) : R = m[29];
56
- let z;
57
- m[30] !== S.isLoading || m[31] !== R ? (z = /* @__PURE__ */ jsx(LoadingCentered_default, {
58
- loading: S.isLoading,
59
- children: R
60
- }), m[30] = S.isLoading, m[31] = R, m[32] = z) : z = m[32];
61
- let B;
62
- return m[33] !== L || m[34] !== z ? (B = /* @__PURE__ */ jsx("div", {
51
+ }) : null, m[22] = P, m[23] = x.data, m[24] = x.error, m[25] = x.isLoading, m[26] = g, m[27] = T, m[28] = I) : I = m[28];
52
+ let L;
53
+ m[29] !== x.isLoading || m[30] !== I ? (L = /* @__PURE__ */ jsx(LoadingCentered_default, {
54
+ loading: x.isLoading,
55
+ children: I
56
+ }), m[29] = x.isLoading, m[30] = I, m[31] = L) : L = m[31];
57
+ let R;
58
+ return m[32] !== F || m[33] !== L ? (R = /* @__PURE__ */ jsx("div", {
63
59
  className: "flex h-svh flex-col",
64
60
  children: /* @__PURE__ */ jsxs("div", {
65
61
  className: "flex-1 overflow-hidden",
66
- children: [L, z]
62
+ children: [F, L]
67
63
  })
68
- }), m[33] = L, m[34] = z, m[35] = B) : B = m[35], B;
64
+ }), m[32] = F, m[33] = L, m[34] = R) : R = m[34], R;
69
65
  }
70
66
  export { WorkbenchPage as default };
@@ -18,7 +18,7 @@ var WorkflowDebugPage_default = () => {
18
18
  _[0] === y ? b = _[1] : (b = requireParam(y, "workflowId"), _[0] = y, _[1] = b);
19
19
  let x = b, S = useWorkflow(x), C = S.data?.workspaceId, w = useWorkspace(C), T = useChildWorkflows(x), E;
20
20
  _[2] === T.data ? E = _[3] : (E = T.data ?? [], _[2] = T.data, _[3] = E);
21
- let D = E, O = useWorkflowConfigByName(S.data?.className ?? void 0), k;
21
+ let D = E, O = useWorkflowConfigByName(S.data?.workflowName), k;
22
22
  _[4] === v ? k = _[5] : (k = v.getWorkspaces(), _[4] = v, _[5] = k);
23
23
  let A;
24
24
  _[6] === k ? A = _[7] : (A = {
@@ -63,7 +63,7 @@ var WorkflowDebugPage_default = () => {
63
63
  }
64
64
  let B;
65
65
  _[28] === S.error ? B = _[29] : (B = /* @__PURE__ */ jsx(ErrorSnackbar_default, { error: S.error }), _[28] = S.error, _[29] = B);
66
- let V = S.data?.title ?? S.data?.alias ?? "Workflow", H = S.data?.run, U;
66
+ let V = S.data?.title ?? S.data?.workflowName ?? "Workflow", H = S.data?.run, U;
67
67
  _[30] !== v || _[31] !== x ? (U = () => void v.navigateToWorkflow(x), _[30] = v, _[31] = x, _[32] = U) : U = _[32];
68
68
  let W;
69
69
  _[33] !== V || _[34] !== H || _[35] !== U ? (W = /* @__PURE__ */ jsx(WorkflowDebugHeader_default, {
@@ -72,20 +72,14 @@ var WorkflowDebugPage_default = () => {
72
72
  onBack: U
73
73
  }), _[33] = V, _[34] = H, _[35] = U, _[36] = W) : W = _[36];
74
74
  let G;
75
- _[37] !== D || _[38] !== O || _[39] !== x ? (G = /* @__PURE__ */ jsx("div", {
75
+ _[37] !== D || _[38] !== O.data || _[39] !== x ? (G = /* @__PURE__ */ jsx("div", {
76
76
  className: "bg-card border-border flex-1 overflow-hidden rounded-2xl border shadow-sm",
77
- children: D.length > 0 ? /* @__PURE__ */ jsx(ReactFlowProvider, { children: /* @__PURE__ */ jsx(WorkflowFlowViewer_default, {
77
+ children: /* @__PURE__ */ jsx(ReactFlowProvider, { children: /* @__PURE__ */ jsx(WorkflowFlowViewer_default, {
78
78
  workflowId: x,
79
79
  workflows: D,
80
80
  workflowConfig: O.data
81
- }) }) : /* @__PURE__ */ jsx("div", {
82
- className: "text-muted-foreground flex h-full items-center justify-center",
83
- children: /* @__PURE__ */ jsx("p", {
84
- className: "font-medium",
85
- children: "No child workflows found for this workflow"
86
- })
87
- })
88
- }), _[37] = D, _[38] = O, _[39] = x, _[40] = G) : G = _[40];
81
+ }) })
82
+ }), _[37] = D, _[38] = O.data, _[39] = x, _[40] = G) : G = _[40];
89
83
  let K;
90
84
  _[41] !== W || _[42] !== G ? (K = /* @__PURE__ */ jsxs("div", {
91
85
  className: "flex h-[calc(100vh-8rem)] flex-col gap-6",