@loopstack/loopstack-studio 0.34.0 → 0.35.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 (133) hide show
  1. package/dist/app/EnvironmentEmbedRoot.js +18 -24
  2. package/dist/components/layout/StudioSidebar.js +34 -34
  3. package/dist/events/api-client-events.js +13 -1
  4. package/dist/events/index.js +1 -0
  5. package/dist/features/code-explorer/components/FileTabsBarBase.js +1 -1
  6. package/dist/features/code-explorer/index.js +0 -3
  7. package/dist/features/dashboard/AppLauncher.js +1 -1
  8. package/dist/features/debug/components/WorkflowFlowViewer.js +2 -1
  9. package/dist/features/debug/components/workflow-flow/WorkflowGraph.js +2 -1
  10. package/dist/features/documents/components/DocumentList.js +1 -1
  11. package/dist/features/documents/document-details/DocumentDetails.js +0 -5
  12. package/dist/features/documents/renderers/DocumentFormRenderer.js +13 -12
  13. package/dist/features/documents/renderers/LinkMessageRenderer.js +2 -1
  14. package/dist/features/documents/renderers/useDocumentTransition.js +3 -2
  15. package/dist/features/feature-registry/FeatureRegistryProvider.js +2 -1
  16. package/dist/features/file-explorer/components/FileTabsBar.js +1 -1
  17. package/dist/features/file-explorer/components/FileTree.js +1 -1
  18. package/dist/features/file-explorer/hooks/useFileExplorer.js +36 -31
  19. package/dist/features/file-explorer/providers/FileExplorerProvider.js +94 -92
  20. package/dist/features/git/components/WorkbenchGitPanel.js +6 -9
  21. package/dist/features/git/hooks/useGit.js +55 -57
  22. package/dist/features/health/LocalHealthCheck.js +46 -47
  23. package/dist/features/oauth/OAuthPromptRenderer.js +6 -5
  24. package/dist/features/runs/Runs.js +3 -2
  25. package/dist/features/secrets/renderers/SecretInputRenderer.js +3 -2
  26. package/dist/features/workbench/WorkflowItem.js +5 -8
  27. package/dist/features/workbench/components/NewRunDialog.js +172 -170
  28. package/dist/features/workbench/components/PreviewEmptyState.js +1 -1
  29. package/dist/features/workbench/components/WorkbenchRunsPanel.js +2 -1
  30. package/dist/features/workbench/components/WorkflowForms.js +1 -1
  31. package/dist/features/workbench/components/WorkflowHistoryItem.js +2 -1
  32. package/dist/features/workbench/components/buttons/WorkflowButtons.js +8 -14
  33. package/dist/features/workbench/hooks/useLlmStreamingDocuments.js +65 -132
  34. package/dist/features/workbench/hooks/useWorkflowData.js +8 -6
  35. package/dist/features/workspaces/Workspaces.js +4 -2
  36. package/dist/features/workspaces/components/CreateWorkspace.js +7 -5
  37. package/dist/features/workspaces/components/ExecutionTimeline.js +69 -65
  38. package/dist/features/workspaces/components/WorkflowRunForm.js +6 -4
  39. package/dist/features/workspaces/components/WorkspaceHomePage.js +1 -1
  40. package/dist/hooks/index.js +5 -5
  41. package/dist/hooks/useAuth.js +14 -53
  42. package/dist/hooks/useConfig.js +13 -37
  43. package/dist/hooks/useDocuments.js +5 -30
  44. package/dist/hooks/useEnvironments.js +34 -24
  45. package/dist/hooks/useProcessor.js +2 -31
  46. package/dist/hooks/useSecrets.js +78 -24
  47. package/dist/hooks/useWorkflows.js +43 -172
  48. package/dist/hooks/useWorkspaces.js +24 -130
  49. package/dist/index.d.ts +130 -488
  50. package/dist/index.js +10 -12
  51. package/dist/packages/client/dist/client.js +35 -0
  52. package/dist/packages/client/dist/http.js +47 -0
  53. package/dist/packages/client/dist/index.js +15 -0
  54. package/dist/packages/client/dist/queries/query-keys.js +94 -0
  55. package/dist/packages/client/dist/queries/query-options.js +97 -0
  56. package/dist/packages/client/dist/resources/auth.js +10 -0
  57. package/dist/packages/client/dist/resources/config.js +11 -0
  58. package/dist/packages/client/dist/resources/dashboard.js +4 -0
  59. package/dist/packages/client/dist/resources/documents.js +7 -0
  60. package/dist/packages/client/dist/resources/processor.js +7 -0
  61. package/dist/packages/client/dist/resources/workflows.js +13 -0
  62. package/dist/packages/client/dist/resources/workspaces.js +12 -0
  63. package/dist/packages/client/dist/stream/invalidations.js +20 -0
  64. package/dist/packages/client/dist/stream/llm-reducer.js +65 -0
  65. package/dist/packages/client/dist/stream/sse-parser.js +40 -0
  66. package/dist/packages/client/dist/stream/stream.js +147 -0
  67. package/dist/packages/contracts/dist/events/client-message-base.schema.js +6 -0
  68. package/dist/packages/contracts/dist/events/client-message.schema.js +24 -0
  69. package/dist/packages/contracts/dist/events/index.js +6 -0
  70. package/dist/packages/contracts/dist/events/llm-events.schema.js +44 -0
  71. package/dist/packages/contracts/dist/events/stream-events.schema.js +4 -0
  72. package/dist/packages/contracts/dist/events/workflow-events.schema.js +20 -0
  73. package/dist/packages/contracts/dist/events/workspace-events.schema.js +5 -0
  74. package/dist/packages/contracts/dist/types/types/ui-message.type.js +39 -0
  75. package/dist/packages/react/dist/hooks/mutations.js +175 -0
  76. package/dist/packages/react/dist/hooks/queries.js +139 -0
  77. package/dist/packages/react/dist/hooks/use-live-invalidation.js +39 -0
  78. package/dist/packages/react/dist/hooks/use-llm-stream.js +18 -0
  79. package/dist/packages/react/dist/index.js +5 -0
  80. package/dist/packages/react/dist/provider.js +15 -0
  81. package/dist/pages/DashboardPage.js +2 -1
  82. package/dist/pages/DebugWorkflowDetailsPage.js +2 -1
  83. package/dist/pages/DebugWorkflowsPage.js +2 -1
  84. package/dist/pages/EmbedWorkbenchPage.js +5 -4
  85. package/dist/pages/PreviewWorkbenchPage.js +60 -59
  86. package/dist/pages/StudioLandingPage.js +1 -1
  87. package/dist/pages/WorkbenchPage.js +3 -2
  88. package/dist/pages/WorkflowDebugPage.js +3 -2
  89. package/dist/pages/WorkspacePage.js +3 -2
  90. package/dist/pages/WorkspaceRunsPage.js +2 -1
  91. package/dist/providers/LoopstackClientProvider.js +31 -0
  92. package/dist/services/createApiClient.js +9 -3
  93. package/dist/services/index.js +0 -1
  94. package/dist/services/reporting-fetch.js +13 -0
  95. package/package.json +4 -3
  96. package/dist/api/auth.js +0 -10
  97. package/dist/api/client.js +0 -13
  98. package/dist/api/config.js +0 -11
  99. package/dist/api/dashboard.js +0 -4
  100. package/dist/api/documents.js +0 -7
  101. package/dist/api/environments.js +0 -8
  102. package/dist/api/index.js +0 -31
  103. package/dist/api/processor.js +0 -7
  104. package/dist/api/secrets.js +0 -16
  105. package/dist/api/workflows.js +0 -15
  106. package/dist/api/workspaces.js +0 -12
  107. package/dist/events/sse-client-events.js +0 -15
  108. package/dist/features/code-explorer/CodeExplorer.js +0 -6
  109. package/dist/features/code-explorer/components/CodeExplorerTree.js +0 -6
  110. package/dist/features/code-explorer/components/FileTabsBar.js +0 -4
  111. package/dist/features/code-explorer/providers/CodeExplorerProvider.js +0 -5
  112. package/dist/features/file-explorer/api/files.js +0 -12
  113. package/dist/features/git/api/git.js +0 -9
  114. package/dist/hooks/query-keys.js +0 -145
  115. package/dist/hooks/useApi.js +0 -15
  116. package/dist/hooks/useFiles.js +0 -3
  117. package/dist/node_modules/lodash/_Symbol.js +0 -7
  118. package/dist/node_modules/lodash/_baseGetTag.js +0 -13
  119. package/dist/node_modules/lodash/_baseTrim.js +0 -11
  120. package/dist/node_modules/lodash/_freeGlobal.js +0 -6
  121. package/dist/node_modules/lodash/_getRawTag.js +0 -17
  122. package/dist/node_modules/lodash/_objectToString.js +0 -10
  123. package/dist/node_modules/lodash/_root.js +0 -8
  124. package/dist/node_modules/lodash/_trimmedEndIndex.js +0 -11
  125. package/dist/node_modules/lodash/debounce.js +0 -53
  126. package/dist/node_modules/lodash/isObject.js +0 -10
  127. package/dist/node_modules/lodash/isObjectLike.js +0 -9
  128. package/dist/node_modules/lodash/isSymbol.js +0 -12
  129. package/dist/node_modules/lodash/now.js +0 -10
  130. package/dist/node_modules/lodash/toNumber.js +0 -22
  131. package/dist/providers/InvalidationEventsProvider.js +0 -43
  132. package/dist/providers/SseProvider.js +0 -37
  133. package/dist/services/eventEmitter.js +0 -12
@@ -1,4 +1,6 @@
1
- import { useAppsConfig } from "../../../hooks/useConfig.js";
1
+ import { useAppsConfig } from "../../../packages/react/dist/hooks/queries.js";
2
+ import { useStartWorkflow } from "../../../packages/react/dist/hooks/mutations.js";
3
+ import "../../../hooks/useConfig.js";
2
4
  import { useFilterWorkspaces } from "../../../hooks/useWorkspaces.js";
3
5
  import { useComponentOverrides } from "../../../providers/ComponentOverridesProvider.js";
4
6
  import { Button } from "../../../components/ui/button.js";
@@ -6,7 +8,7 @@ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../../../co
6
8
  import { Dialog, DialogContent, DialogTitle } from "../../../components/ui/dialog.js";
7
9
  import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../../../components/ui/select.js";
8
10
  import ErrorSnackbar_default from "../../../components/feedback/ErrorSnackbar.js";
9
- import { useStartWorkflow } from "../../../hooks/useProcessor.js";
11
+ import "../../../hooks/useProcessor.js";
10
12
  import Form_default from "../../../components/dynamic-form/Form.js";
11
13
  import CreateWorkspace_default from "../../workspaces/components/CreateWorkspace.js";
12
14
  import "../../workspaces/index.js";
@@ -17,197 +19,197 @@ import { Check, CheckIcon, ChevronDown, Loader2, Plus } from "lucide-react";
17
19
  import * as SelectPrimitive from "@radix-ui/react-select";
18
20
  import { useForm } from "react-hook-form";
19
21
  function NewRunDialog(e) {
20
- let t = c(8), { open: n, onOpenChange: r, onSuccess: ce } = e, i;
21
- t[0] === Symbol.for("react.memo_cache_sentinel") ? (i = /* @__PURE__ */ jsx(DialogTitle, { children: "New Run" }), t[0] = i) : i = t[0];
22
- let a;
23
- t[1] !== ce || t[2] !== n ? (a = /* @__PURE__ */ jsxs(DialogContent, {
22
+ let t = c(8), { open: n, onOpenChange: r, onSuccess: i } = e, a;
23
+ t[0] === Symbol.for("react.memo_cache_sentinel") ? (a = /* @__PURE__ */ jsx(DialogTitle, { children: "New Run" }), t[0] = a) : a = t[0];
24
+ let o;
25
+ t[1] !== i || t[2] !== n ? (o = /* @__PURE__ */ jsxs(DialogContent, {
24
26
  className: "max-h-[80vh] min-h-[300px] !max-w-2xl",
25
- children: [i, /* @__PURE__ */ jsx(NewRunDialogContent, {
27
+ children: [a, /* @__PURE__ */ jsx(NewRunDialogContent, {
26
28
  open: n,
27
- onSuccess: ce
29
+ onSuccess: i
28
30
  })]
29
- }), t[1] = ce, t[2] = n, t[3] = a) : a = t[3];
30
- let u;
31
- return t[4] !== r || t[5] !== n || t[6] !== a ? (u = /* @__PURE__ */ jsx(Dialog, {
31
+ }), t[1] = i, t[2] = n, t[3] = o) : o = t[3];
32
+ let s;
33
+ return t[4] !== r || t[5] !== n || t[6] !== o ? (s = /* @__PURE__ */ jsx(Dialog, {
32
34
  open: n,
33
35
  onOpenChange: r,
34
- children: a
35
- }), t[4] = r, t[5] = n, t[6] = a, t[7] = u) : u = t[7], u;
36
+ children: o
37
+ }), t[4] = r, t[5] = n, t[6] = o, t[7] = s) : s = t[7], s;
36
38
  }
37
- function NewRunDialogContent(ce) {
38
- let i = c(116), { open: a, onSuccess: o } = ce, [s, l] = useState("workspace"), [d, h] = useState(!1), [_, v] = useState(""), [y, x] = useState(""), { CreateWorkspace: C } = useComponentOverrides(), w = C ?? CreateWorkspace_default, T = useAppsConfig(), he;
39
- i[0] === Symbol.for("react.memo_cache_sentinel") ? (he = {}, i[0] = he) : he = i[0];
40
- let E = useFilterWorkspaces(void 0, he, "title", "ASC", 0, 100), ge;
41
- i[1] === E.data?.data ? ge = i[2] : (ge = E.data?.data ?? [], i[1] = E.data?.data, i[2] = ge);
42
- let D = ge, _e;
43
- if (i[3] !== _ || i[4] !== D) {
39
+ function NewRunDialogContent(a) {
40
+ let o = c(116), { open: s, onSuccess: l } = a, [u, d] = useState("workspace"), [f, g] = useState(!1), [v, y] = useState(""), [b, S] = useState(""), { CreateWorkspace: w } = useComponentOverrides(), T = w ?? CreateWorkspace_default, E = useAppsConfig(), me;
41
+ o[0] === Symbol.for("react.memo_cache_sentinel") ? (me = {}, o[0] = me) : me = o[0];
42
+ let D = useFilterWorkspaces(void 0, me, "title", "ASC", 0, 100), he;
43
+ o[1] === D.data?.data ? he = o[2] : (he = D.data?.data ?? [], o[1] = D.data?.data, o[2] = he);
44
+ let O = he, ge;
45
+ if (o[3] !== v || o[4] !== O) {
44
46
  let e;
45
- i[6] === _ ? e = i[7] : (e = (e) => e.id === _, i[6] = _, i[7] = e), _e = D.find(e), i[3] = _, i[4] = D, i[5] = _e;
46
- } else _e = i[5];
47
- let O = _e, ve;
47
+ o[6] === v ? e = o[7] : (e = (e) => e.id === v, o[6] = v, o[7] = e), ge = O.find(e), o[3] = v, o[4] = O, o[5] = ge;
48
+ } else ge = o[5];
49
+ let k = ge, _e;
48
50
  bb0: {
49
- if (!O || !T.data) {
50
- ve = void 0;
51
+ if (!k || !E.data) {
52
+ _e = void 0;
51
53
  break bb0;
52
54
  }
53
55
  let e;
54
- if (i[8] !== T.data || i[9] !== O) {
56
+ if (o[8] !== E.data || o[9] !== k) {
55
57
  let t;
56
- i[11] === O ? t = i[12] : (t = (e) => e.appName === O.appName, i[11] = O, i[12] = t), e = T.data.find(t), i[8] = T.data, i[9] = O, i[10] = e;
57
- } else e = i[10];
58
- ve = e;
58
+ o[11] === k ? t = o[12] : (t = (e) => e.appName === k.appName, o[11] = k, o[12] = t), e = E.data.find(t), o[8] = E.data, o[9] = k, o[10] = e;
59
+ } else e = o[10];
60
+ _e = e;
59
61
  }
60
- let ye = ve, be;
62
+ let ve = _e, ye;
61
63
  bb1: {
62
- if (!ye) {
64
+ if (!ve) {
63
65
  let e;
64
- i[13] === Symbol.for("react.memo_cache_sentinel") ? (e = [], i[13] = e) : e = i[13], be = e;
66
+ o[13] === Symbol.for("react.memo_cache_sentinel") ? (e = [], o[13] = e) : e = o[13], ye = e;
65
67
  break bb1;
66
68
  }
67
- be = ye.workflows;
69
+ ye = ve.workflows;
68
70
  }
69
- let k = be, xe;
71
+ let A = ye, be;
70
72
  bb2: {
71
- if (!T.data) {
73
+ if (!E.data) {
72
74
  let e;
73
- i[14] === Symbol.for("react.memo_cache_sentinel") ? (e = [], i[14] = e) : e = i[14], xe = e;
75
+ o[14] === Symbol.for("react.memo_cache_sentinel") ? (e = [], o[14] = e) : e = o[14], be = e;
74
76
  break bb2;
75
77
  }
76
78
  let e;
77
- i[15] === T.data ? e = i[16] : (e = T.data.map(_temp), i[15] = T.data, i[16] = e), xe = e;
79
+ o[15] === E.data ? e = o[16] : (e = E.data.map(_temp), o[15] = E.data, o[16] = e), be = e;
78
80
  }
79
- let Se = xe, A = useStartWorkflow(), j = A.isPending, M;
80
- i[17] === Symbol.for("react.memo_cache_sentinel") ? (M = {
81
+ let xe = be, j = useStartWorkflow(), M = j.isPending, Se;
82
+ o[17] === Symbol.for("react.memo_cache_sentinel") ? (Se = {
81
83
  defaultValues: {},
82
84
  mode: "onChange"
83
- }, i[17] = M) : M = i[17];
84
- let N = useForm(M), Ce;
85
+ }, o[17] = Se) : Se = o[17];
86
+ let N = useForm(Se), Ce;
85
87
  bb3: {
86
- if (!y) {
88
+ if (!b) {
87
89
  Ce = void 0;
88
90
  break bb3;
89
91
  }
90
92
  let e;
91
- if (i[18] !== k || i[19] !== y) {
93
+ if (o[18] !== A || o[19] !== b) {
92
94
  let t;
93
- i[21] === y ? t = i[22] : (t = (e) => e.workflowName === y, i[21] = y, i[22] = t), e = k.find(t), i[18] = k, i[19] = y, i[20] = e;
94
- } else e = i[20];
95
+ o[21] === b ? t = o[22] : (t = (e) => e.workflowName === b, o[21] = b, o[22] = t), e = A.find(t), o[18] = A, o[19] = b, o[20] = e;
96
+ } else e = o[20];
95
97
  Ce = e;
96
98
  }
97
99
  let P = Ce, F = P?.schema, I = !!F, we;
98
- i[23] === k ? we = i[24] : (we = k.map(_temp2), i[23] = k, i[24] = we);
100
+ o[23] === A ? we = o[24] : (we = A.map(_temp2), o[23] = A, o[24] = we);
99
101
  let L = we, Te;
100
- i[25] !== _ || i[26] !== D[0] || i[27] !== D.length ? (Te = () => {
101
- !_ && D.length > 0 && v(D[0].id);
102
- }, i[25] = _, i[26] = D[0], i[27] = D.length, i[28] = Te) : Te = i[28];
102
+ o[25] !== v || o[26] !== O[0] || o[27] !== O.length ? (Te = () => {
103
+ !v && O.length > 0 && y(O[0].id);
104
+ }, o[25] = v, o[26] = O[0], o[27] = O.length, o[28] = Te) : Te = o[28];
103
105
  let Ee;
104
- i[29] !== _ || i[30] !== D ? (Ee = [D, _], i[29] = _, i[30] = D, i[31] = Ee) : Ee = i[31], useEffect(Te, Ee);
106
+ o[29] !== v || o[30] !== O ? (Ee = [O, v], o[29] = v, o[30] = O, o[31] = Ee) : Ee = o[31], useEffect(Te, Ee);
105
107
  let De, Oe;
106
- i[32] !== y || i[33] !== L ? (De = () => {
107
- L.length > 0 && !L.find((e) => e.key === y) && x(L[0].key);
108
- }, Oe = [L, y], i[32] = y, i[33] = L, i[34] = De, i[35] = Oe) : (De = i[34], Oe = i[35]), useEffect(De, Oe);
108
+ o[32] !== b || o[33] !== L ? (De = () => {
109
+ L.length > 0 && !L.find((e) => e.key === b) && S(L[0].key);
110
+ }, Oe = [L, b], o[32] = b, o[33] = L, o[34] = De, o[35] = Oe) : (De = o[34], Oe = o[35]), useEffect(De, Oe);
109
111
  let ke;
110
- i[36] !== N || i[37] !== a || i[38] !== A ? (ke = () => {
111
- a || (l("workspace"), h(!1), v(""), x(""), N.reset({}), A.reset());
112
- }, i[36] = N, i[37] = a, i[38] = A, i[39] = ke) : ke = i[39];
112
+ o[36] !== N || o[37] !== s || o[38] !== j ? (ke = () => {
113
+ s || (d("workspace"), g(!1), y(""), S(""), N.reset({}), j.reset());
114
+ }, o[36] = N, o[37] = s, o[38] = j, o[39] = ke) : ke = o[39];
113
115
  let Ae;
114
- i[40] === a ? Ae = i[41] : (Ae = [a], i[40] = a, i[41] = Ae), useEffect(ke, Ae);
116
+ o[40] === s ? Ae = o[41] : (Ae = [s], o[40] = s, o[41] = Ae), useEffect(ke, Ae);
115
117
  let je;
116
- i[42] === Symbol.for("react.memo_cache_sentinel") ? (je = (e) => {
117
- v(e), x(""), l("automation");
118
- }, i[42] = je) : je = i[42];
118
+ o[42] === Symbol.for("react.memo_cache_sentinel") ? (je = (e) => {
119
+ y(e), S(""), d("automation");
120
+ }, o[42] = je) : je = o[42];
119
121
  let Me = je, Ne;
120
- i[43] === N ? Ne = i[44] : (Ne = (e) => {
121
- x(e), N.reset({});
122
- }, i[43] = N, i[44] = Ne);
122
+ o[43] === N ? Ne = o[44] : (Ne = (e) => {
123
+ S(e), N.reset({});
124
+ }, o[43] = N, o[44] = Ne);
123
125
  let Pe = Ne, Fe, Ie;
124
- i[45] !== I || i[46] !== y ? (Fe = () => {
125
- y && I && l("config");
126
- }, Ie = [y, I], i[45] = I, i[46] = y, i[47] = Fe, i[48] = Ie) : (Fe = i[47], Ie = i[48]), useEffect(Fe, Ie);
126
+ o[45] !== I || o[46] !== b ? (Fe = () => {
127
+ b && I && d("config");
128
+ }, Ie = [b, I], o[45] = I, o[46] = b, o[47] = Fe, o[48] = Ie) : (Fe = o[47], Ie = o[48]), useEffect(Fe, Ie);
127
129
  let Le;
128
- i[49] !== N || i[50] !== I || i[51] !== o || i[52] !== P || i[53] !== _ || i[54] !== A ? (Le = () => {
130
+ o[49] !== N || o[50] !== I || o[51] !== l || o[52] !== P || o[53] !== v || o[54] !== j ? (Le = () => {
129
131
  let e = (e) => {
130
- !_ || !P || A.mutate({ payload: {
132
+ !v || !P || j.mutate({
131
133
  workflowName: P.workflowName,
132
- workspaceId: _,
134
+ workspaceId: v,
133
135
  args: e ?? {}
134
- } }, { onSuccess: (e) => o(e.workflowId) });
136
+ }, { onSuccess: (e) => l(e.workflowId) });
135
137
  };
136
138
  I ? N.handleSubmit((t) => e(t))() : e();
137
- }, i[49] = N, i[50] = I, i[51] = o, i[52] = P, i[53] = _, i[54] = A, i[55] = Le) : Le = i[55];
138
- let Re = Le, ze = !!_ && !!y, Be;
139
- i[56] === Symbol.for("react.memo_cache_sentinel") ? (Be = (e) => {
140
- l((t) => t === e ? null : e);
141
- }, i[56] = Be) : Be = i[56];
142
- let Ve = Be, He = !!_, R = !!y, z = He, Ue = R && I, B;
143
- i[57] === A.error ? B = i[58] : (B = /* @__PURE__ */ jsx(ErrorSnackbar_default, { error: A.error }), i[57] = A.error, i[58] = B);
144
- let We = O?.title, Ge = s === "workspace", Ke = He && s !== "workspace", qe;
145
- i[59] === Symbol.for("react.memo_cache_sentinel") ? (qe = () => Ve("workspace"), i[59] = qe) : qe = i[59];
139
+ }, o[49] = N, o[50] = I, o[51] = l, o[52] = P, o[53] = v, o[54] = j, o[55] = Le) : Le = o[55];
140
+ let Re = Le, ze = !!v && !!b, Be;
141
+ o[56] === Symbol.for("react.memo_cache_sentinel") ? (Be = (e) => {
142
+ d((t) => t === e ? null : e);
143
+ }, o[56] = Be) : Be = o[56];
144
+ let Ve = Be, He = !!v, R = !!b, z = He, Ue = R && I, B;
145
+ o[57] === j.error ? B = o[58] : (B = /* @__PURE__ */ jsx(ErrorSnackbar_default, { error: j.error }), o[57] = j.error, o[58] = B);
146
+ let We = k?.title, Ge = u === "workspace", Ke = He && u !== "workspace", qe;
147
+ o[59] === Symbol.for("react.memo_cache_sentinel") ? (qe = () => Ve("workspace"), o[59] = qe) : qe = o[59];
146
148
  let V;
147
- i[60] !== w || i[61] !== Se || i[62] !== _ || i[63] !== d || i[64] !== D ? (V = d ? /* @__PURE__ */ jsx("div", {
149
+ o[60] !== T || o[61] !== xe || o[62] !== v || o[63] !== f || o[64] !== O ? (V = f ? /* @__PURE__ */ jsx("div", {
148
150
  className: "pt-2",
149
- children: /* @__PURE__ */ jsx(w, {
150
- types: Se,
151
+ children: /* @__PURE__ */ jsx(T, {
152
+ types: xe,
151
153
  onSuccess: () => {
152
- h(!1);
154
+ g(!1);
153
155
  }
154
156
  })
155
157
  }) : /* @__PURE__ */ jsxs("div", {
156
158
  className: "flex gap-2 pt-2",
157
159
  children: [/* @__PURE__ */ jsxs(Select, {
158
- value: _,
160
+ value: v,
159
161
  onValueChange: Me,
160
162
  children: [/* @__PURE__ */ jsx(SelectTrigger, {
161
163
  id: "workspace",
162
164
  className: "flex-1",
163
165
  children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Select a workspace..." })
164
- }), /* @__PURE__ */ jsx(SelectContent, { children: D.map(_temp3) })]
166
+ }), /* @__PURE__ */ jsx(SelectContent, { children: O.map(_temp3) })]
165
167
  }), /* @__PURE__ */ jsx(Button, {
166
168
  variant: "outline",
167
- onClick: () => h(!0),
169
+ onClick: () => g(!0),
168
170
  className: "px-3",
169
171
  title: "Create new workspace",
170
172
  children: /* @__PURE__ */ jsx(Plus, { className: "h-4 w-4" })
171
173
  })]
172
- }), i[60] = w, i[61] = Se, i[62] = _, i[63] = d, i[64] = D, i[65] = V) : V = i[65];
174
+ }), o[60] = T, o[61] = xe, o[62] = v, o[63] = f, o[64] = O, o[65] = V) : V = o[65];
173
175
  let H;
174
- i[66] !== E.isLoading || i[67] !== We || i[68] !== Ge || i[69] !== Ke || i[70] !== V ? (H = /* @__PURE__ */ jsx(StepSection, {
176
+ o[66] !== D.isLoading || o[67] !== We || o[68] !== Ge || o[69] !== Ke || o[70] !== V ? (H = /* @__PURE__ */ jsx(StepSection, {
175
177
  step: 1,
176
178
  title: "Select Workspace",
177
179
  summary: We,
178
180
  isActive: Ge,
179
181
  isComplete: Ke,
180
182
  isEnabled: !0,
181
- isLoading: E.isLoading,
183
+ isLoading: D.isLoading,
182
184
  onToggle: qe,
183
185
  children: V
184
- }), i[66] = E.isLoading, i[67] = We, i[68] = Ge, i[69] = Ke, i[70] = V, i[71] = H) : H = i[71];
186
+ }), o[66] = D.isLoading, o[67] = We, o[68] = Ge, o[69] = Ke, o[70] = V, o[71] = H) : H = o[71];
185
187
  let U;
186
- i[72] !== R || i[73] !== y || i[74] !== L ? (U = R ? L.find((e) => e.key === y)?.title ?? y : void 0, i[72] = R, i[73] = y, i[74] = L, i[75] = U) : U = i[75];
187
- let Je = s === "automation", Ye = R && s !== "automation", Xe = T.isLoading, W;
188
- i[76] === z ? W = i[77] : (W = () => z && Ve("automation"), i[76] = z, i[77] = W);
189
- let G;
190
- i[78] === Symbol.for("react.memo_cache_sentinel") ? (G = /* @__PURE__ */ jsx(SelectTrigger, {
188
+ o[72] !== R || o[73] !== b || o[74] !== L ? (U = R ? L.find((e) => e.key === b)?.title ?? b : void 0, o[72] = R, o[73] = b, o[74] = L, o[75] = U) : U = o[75];
189
+ let Je = u === "automation", Ye = R && u !== "automation", Xe = E.isLoading, W;
190
+ o[76] === z ? W = o[77] : (W = () => z && Ve("automation"), o[76] = z, o[77] = W);
191
+ let Ze;
192
+ o[78] === Symbol.for("react.memo_cache_sentinel") ? (Ze = /* @__PURE__ */ jsx(SelectTrigger, {
191
193
  id: "automation",
192
194
  className: "w-full",
193
195
  children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Select a workflow..." })
194
- }), i[78] = G) : G = i[78];
196
+ }), o[78] = Ze) : Ze = o[78];
197
+ let G;
198
+ o[79] === L ? G = o[80] : (G = L.map(_temp4), o[79] = L, o[80] = G);
195
199
  let K;
196
- i[79] === L ? K = i[80] : (K = L.map(_temp4), i[79] = L, i[80] = K);
200
+ o[81] === G ? K = o[82] : (K = /* @__PURE__ */ jsx(SelectContent, { children: G }), o[81] = G, o[82] = K);
197
201
  let q;
198
- i[81] === K ? q = i[82] : (q = /* @__PURE__ */ jsx(SelectContent, { children: K }), i[81] = K, i[82] = q);
199
- let J;
200
- i[83] !== Pe || i[84] !== j || i[85] !== y || i[86] !== q ? (J = /* @__PURE__ */ jsx("div", {
202
+ o[83] !== Pe || o[84] !== M || o[85] !== b || o[86] !== K ? (q = /* @__PURE__ */ jsx("div", {
201
203
  className: "pt-2",
202
204
  children: /* @__PURE__ */ jsxs(Select, {
203
- value: y,
205
+ value: b,
204
206
  onValueChange: Pe,
205
- disabled: j,
206
- children: [G, q]
207
+ disabled: M,
208
+ children: [Ze, K]
207
209
  })
208
- }), i[83] = Pe, i[84] = j, i[85] = y, i[86] = q, i[87] = J) : J = i[87];
209
- let Y;
210
- i[88] !== z || i[89] !== T.isLoading || i[90] !== U || i[91] !== Je || i[92] !== Ye || i[93] !== W || i[94] !== J ? (Y = /* @__PURE__ */ jsx(StepSection, {
210
+ }), o[83] = Pe, o[84] = M, o[85] = b, o[86] = K, o[87] = q) : q = o[87];
211
+ let J;
212
+ o[88] !== z || o[89] !== E.isLoading || o[90] !== U || o[91] !== Je || o[92] !== Ye || o[93] !== W || o[94] !== q ? (J = /* @__PURE__ */ jsx(StepSection, {
211
213
  step: 2,
212
214
  title: "Select Workflow",
213
215
  summary: U,
@@ -216,13 +218,13 @@ function NewRunDialogContent(ce) {
216
218
  isEnabled: z,
217
219
  isLoading: Xe,
218
220
  onToggle: W,
219
- children: J
220
- }), i[88] = z, i[89] = T.isLoading, i[90] = U, i[91] = Je, i[92] = Ye, i[93] = W, i[94] = J, i[95] = Y) : Y = i[95];
221
- let X;
222
- i[96] !== s || i[97] !== Ue || i[98] !== N || i[99] !== I || i[100] !== F ? (X = I && /* @__PURE__ */ jsx(StepSection, {
221
+ children: q
222
+ }), o[88] = z, o[89] = E.isLoading, o[90] = U, o[91] = Je, o[92] = Ye, o[93] = W, o[94] = q, o[95] = J) : J = o[95];
223
+ let Y;
224
+ o[96] !== u || o[97] !== Ue || o[98] !== N || o[99] !== I || o[100] !== F ? (Y = I && /* @__PURE__ */ jsx(StepSection, {
223
225
  step: 3,
224
226
  title: "Configuration",
225
- isActive: s === "config",
227
+ isActive: u === "config",
226
228
  isComplete: !1,
227
229
  isEnabled: Ue,
228
230
  onToggle: () => Ue && Ve("config"),
@@ -235,39 +237,39 @@ function NewRunDialogContent(ce) {
235
237
  viewOnly: !1
236
238
  })
237
239
  })
238
- }), i[96] = s, i[97] = Ue, i[98] = N, i[99] = I, i[100] = F, i[101] = X) : X = i[101];
239
- let Z;
240
- i[102] !== H || i[103] !== Y || i[104] !== X ? (Z = /* @__PURE__ */ jsxs("div", {
240
+ }), o[96] = u, o[97] = Ue, o[98] = N, o[99] = I, o[100] = F, o[101] = Y) : Y = o[101];
241
+ let X;
242
+ o[102] !== H || o[103] !== J || o[104] !== Y ? (X = /* @__PURE__ */ jsxs("div", {
241
243
  className: "space-y-2",
242
244
  children: [
243
245
  H,
244
- Y,
245
- X
246
+ J,
247
+ Y
246
248
  ]
247
- }), i[102] = H, i[103] = Y, i[104] = X, i[105] = Z) : Z = i[105];
248
- let Ze = !ze || j, Q;
249
- i[106] === j ? Q = i[107] : (Q = j && /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin" }), i[106] = j, i[107] = Q);
250
- let $;
251
- i[108] !== Re || i[109] !== Ze || i[110] !== Q ? ($ = /* @__PURE__ */ jsx("div", {
249
+ }), o[102] = H, o[103] = J, o[104] = Y, o[105] = X) : X = o[105];
250
+ let Qe = !ze || M, Z;
251
+ o[106] === M ? Z = o[107] : (Z = M && /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin" }), o[106] = M, o[107] = Z);
252
+ let Q;
253
+ o[108] !== Re || o[109] !== Qe || o[110] !== Z ? (Q = /* @__PURE__ */ jsx("div", {
252
254
  className: "mt-4 flex justify-end border-t pt-4",
253
255
  children: /* @__PURE__ */ jsxs(Button, {
254
256
  variant: "default",
255
- disabled: Ze,
257
+ disabled: Qe,
256
258
  onClick: Re,
257
259
  size: "lg",
258
260
  className: "font-medium",
259
- children: [Q, "Run Now"]
261
+ children: [Z, "Run Now"]
260
262
  })
261
- }), i[108] = Re, i[109] = Ze, i[110] = Q, i[111] = $) : $ = i[111];
262
- let Qe;
263
- return i[112] !== B || i[113] !== Z || i[114] !== $ ? (Qe = /* @__PURE__ */ jsxs("div", {
263
+ }), o[108] = Re, o[109] = Qe, o[110] = Z, o[111] = Q) : Q = o[111];
264
+ let $;
265
+ return o[112] !== B || o[113] !== X || o[114] !== Q ? ($ = /* @__PURE__ */ jsxs("div", {
264
266
  className: "mt-2 overflow-y-auto",
265
267
  children: [
266
268
  B,
267
- Z,
268
- $
269
+ X,
270
+ Q
269
271
  ]
270
- }), i[112] = B, i[113] = Z, i[114] = $, i[115] = Qe) : Qe = i[115], Qe;
272
+ }), o[112] = B, o[113] = X, o[114] = Q, o[115] = $) : $ = o[115], $;
271
273
  }
272
274
  function _temp4(e) {
273
275
  return /* @__PURE__ */ jsxs(SelectPrimitive.Item, {
@@ -307,51 +309,51 @@ function _temp(e) {
307
309
  };
308
310
  }
309
311
  function StepSection(e) {
310
- let t = c(35), { step: n, title: r, summary: o, isActive: s, isComplete: l, isEnabled: u, isLoading: le, onToggle: d, children: ue } = e, f;
311
- t[0] === d ? f = t[1] : (f = () => d(), t[0] = d, t[1] = f);
312
- let de = `flex w-full items-center gap-3 rounded-lg px-3 py-2.5 text-left transition-colors ${u ? "hover:bg-muted/50 cursor-pointer" : "cursor-not-allowed opacity-50"}`, fe = !u, pe = `flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-full text-xs font-semibold ${l ? "bg-primary text-primary-foreground" : s ? "border-primary text-primary border-2" : "border-border text-muted-foreground border"}`, p;
313
- t[2] !== l || t[3] !== n ? (p = l ? /* @__PURE__ */ jsx(Check, { className: "h-3.5 w-3.5" }) : n, t[2] = l, t[3] = n, t[4] = p) : p = t[4];
314
- let m;
315
- t[5] !== pe || t[6] !== p ? (m = /* @__PURE__ */ jsx("div", {
316
- className: pe,
317
- children: p
318
- }), t[5] = pe, t[6] = p, t[7] = m) : m = t[7];
319
- let h = `flex-1 text-sm font-medium ${u ? "text-foreground" : "text-muted-foreground"}`, g;
320
- t[8] !== h || t[9] !== r ? (g = /* @__PURE__ */ jsx("span", {
321
- className: h,
312
+ let t = c(35), { step: n, title: r, summary: i, isActive: l, isComplete: u, isEnabled: d, isLoading: ce, onToggle: le, children: f } = e, p;
313
+ t[0] === le ? p = t[1] : (p = () => le(), t[0] = le, t[1] = p);
314
+ let ue = `flex w-full items-center gap-3 rounded-lg px-3 py-2.5 text-left transition-colors ${d ? "hover:bg-muted/50 cursor-pointer" : "cursor-not-allowed opacity-50"}`, de = !d, fe = `flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-full text-xs font-semibold ${u ? "bg-primary text-primary-foreground" : l ? "border-primary text-primary border-2" : "border-border text-muted-foreground border"}`, m;
315
+ t[2] !== u || t[3] !== n ? (m = u ? /* @__PURE__ */ jsx(Check, { className: "h-3.5 w-3.5" }) : n, t[2] = u, t[3] = n, t[4] = m) : m = t[4];
316
+ let h;
317
+ t[5] !== fe || t[6] !== m ? (h = /* @__PURE__ */ jsx("div", {
318
+ className: fe,
319
+ children: m
320
+ }), t[5] = fe, t[6] = m, t[7] = h) : h = t[7];
321
+ let g = `flex-1 text-sm font-medium ${d ? "text-foreground" : "text-muted-foreground"}`, _;
322
+ t[8] !== g || t[9] !== r ? (_ = /* @__PURE__ */ jsx("span", {
323
+ className: g,
322
324
  children: r
323
- }), t[8] = h, t[9] = r, t[10] = g) : g = t[10];
324
- let v;
325
- t[11] !== s || t[12] !== l || t[13] !== o ? (v = !s && l && o && /* @__PURE__ */ jsx("span", {
325
+ }), t[8] = g, t[9] = r, t[10] = _) : _ = t[10];
326
+ let y;
327
+ t[11] !== l || t[12] !== u || t[13] !== i ? (y = !l && u && i && /* @__PURE__ */ jsx("span", {
326
328
  className: "text-muted-foreground mr-1 max-w-48 truncate text-sm",
327
- children: o
328
- }), t[11] = s, t[12] = l, t[13] = o, t[14] = v) : v = t[14];
329
- let b;
330
- t[15] !== s || t[16] !== le ? (b = le && s && /* @__PURE__ */ jsx(Loader2, { className: "text-muted-foreground h-4 w-4 animate-spin" }), t[15] = s, t[16] = le, t[17] = b) : b = t[17];
331
- let x = `text-muted-foreground h-4 w-4 transition-transform ${s ? "rotate-180" : ""}`, S;
332
- t[18] === x ? S = t[19] : (S = /* @__PURE__ */ jsx(ChevronDown, { className: x }), t[18] = x, t[19] = S);
333
- let C;
334
- t[20] !== b || t[21] !== S || t[22] !== de || t[23] !== fe || t[24] !== m || t[25] !== g || t[26] !== v ? (C = /* @__PURE__ */ jsxs(CollapsibleTrigger, {
335
- className: de,
336
- disabled: fe,
329
+ children: i
330
+ }), t[11] = l, t[12] = u, t[13] = i, t[14] = y) : y = t[14];
331
+ let x;
332
+ t[15] !== l || t[16] !== ce ? (x = ce && l && /* @__PURE__ */ jsx(Loader2, { className: "text-muted-foreground h-4 w-4 animate-spin" }), t[15] = l, t[16] = ce, t[17] = x) : x = t[17];
333
+ let S = `text-muted-foreground h-4 w-4 transition-transform ${l ? "rotate-180" : ""}`, C;
334
+ t[18] === S ? C = t[19] : (C = /* @__PURE__ */ jsx(ChevronDown, { className: S }), t[18] = S, t[19] = C);
335
+ let w;
336
+ t[20] !== x || t[21] !== C || t[22] !== ue || t[23] !== de || t[24] !== h || t[25] !== _ || t[26] !== y ? (w = /* @__PURE__ */ jsxs(CollapsibleTrigger, {
337
+ className: ue,
338
+ disabled: de,
337
339
  children: [
338
- m,
339
- g,
340
- v,
341
- b,
342
- S
340
+ h,
341
+ _,
342
+ y,
343
+ x,
344
+ C
343
345
  ]
344
- }), t[20] = b, t[21] = S, t[22] = de, t[23] = fe, t[24] = m, t[25] = g, t[26] = v, t[27] = C) : C = t[27];
345
- let w;
346
- t[28] === ue ? w = t[29] : (w = /* @__PURE__ */ jsx(CollapsibleContent, {
346
+ }), t[20] = x, t[21] = C, t[22] = ue, t[23] = de, t[24] = h, t[25] = _, t[26] = y, t[27] = w) : w = t[27];
347
+ let T;
348
+ t[28] === f ? T = t[29] : (T = /* @__PURE__ */ jsx(CollapsibleContent, {
347
349
  className: "px-3 pb-3 pl-13",
348
- children: ue
349
- }), t[28] = ue, t[29] = w);
350
- let me;
351
- return t[30] !== s || t[31] !== f || t[32] !== C || t[33] !== w ? (me = /* @__PURE__ */ jsxs(Collapsible, {
352
- open: s,
353
- onOpenChange: f,
354
- children: [C, w]
355
- }), t[30] = s, t[31] = f, t[32] = C, t[33] = w, t[34] = me) : me = t[34], me;
350
+ children: f
351
+ }), t[28] = f, t[29] = T);
352
+ let pe;
353
+ return t[30] !== l || t[31] !== p || t[32] !== w || t[33] !== T ? (pe = /* @__PURE__ */ jsxs(Collapsible, {
354
+ open: l,
355
+ onOpenChange: p,
356
+ children: [w, T]
357
+ }), t[30] = l, t[31] = p, t[32] = w, t[33] = T, t[34] = pe) : pe = t[34], pe;
356
358
  }
357
359
  export { NewRunDialog };
@@ -1,5 +1,5 @@
1
- import "../../../providers/StudioProvider.js";
2
1
  import "../../../hooks/useWorkflows.js";
2
+ import "../../../providers/StudioProvider.js";
3
3
  import "../../../components/ui/button.js";
4
4
  import "./NewRunDialog.js";
5
5
  import "./RecentRunItem.js";
@@ -1,4 +1,5 @@
1
- import { useWorkspace } from "../../../hooks/useWorkspaces.js";
1
+ import { useWorkspace } from "../../../packages/react/dist/hooks/queries.js";
2
+ import "../../../hooks/useWorkspaces.js";
2
3
  import { useWorkbenchLayout } from "../providers/WorkbenchLayoutProvider.js";
3
4
  import { SidebarPanel } from "./SidebarPanel.js";
4
5
  import ExecutionTimeline_default from "../../workspaces/components/ExecutionTimeline.js";
@@ -1,6 +1,6 @@
1
- import { useWorkflowConfigByName } from "../../../hooks/useWorkflows.js";
2
1
  import { WorkflowState } from "../../../packages/contracts/dist/enums/workflow-state.enum.js";
3
2
  import "../../../packages/contracts/dist/enums/index.js";
3
+ import { useWorkflowConfigByName } from "../../../hooks/useWorkflows.js";
4
4
  import UiActions_default from "../../../components/ui-widgets/UiActions.js";
5
5
  import { c } from "react/compiler-runtime";
6
6
  import React from "react";
@@ -1,4 +1,5 @@
1
- import { useWorkflowCheckpoints } from "../../../hooks/useWorkflows.js";
1
+ import { useWorkflowCheckpoints } from "../../../packages/react/dist/hooks/queries.js";
2
+ import "../../../hooks/useWorkflows.js";
2
3
  import { cn } from "../../../lib/utils.js";
3
4
  import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../../../components/ui/collapsible.js";
4
5
  import { c } from "react/compiler-runtime";
@@ -1,9 +1,11 @@
1
+ import { useWorkflow } from "../../../../packages/react/dist/hooks/queries.js";
2
+ import { useCreateWorkflow, useRunWorkflow } from "../../../../packages/react/dist/hooks/mutations.js";
3
+ import "../../../../hooks/useWorkflows.js";
1
4
  import { useStudio } from "../../../../providers/StudioProvider.js";
2
- import { useCreateWorkflow, useWorkflow } from "../../../../hooks/useWorkflows.js";
3
5
  import { Button } from "../../../../components/ui/button.js";
4
6
  import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger } from "../../../../components/ui/alert-dialog.js";
5
7
  import { Tooltip, TooltipContent, TooltipTrigger } from "../../../../components/ui/tooltip.js";
6
- import { useRunWorkflow } from "../../../../hooks/useProcessor.js";
8
+ import "../../../../hooks/useProcessor.js";
7
9
  import { c } from "react/compiler-runtime";
8
10
  import React from "react";
9
11
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -11,18 +13,14 @@ import { LockOpen, Repeat } from "lucide-react";
11
13
  var WorkflowButtons_default = (T) => {
12
14
  let E = c(34), { workflow: D, workflowId: O } = T, { router: k } = useStudio(), A = useWorkflow(O).data, j = useCreateWorkflow(), M = useRunWorkflow(), N = j.isPending || M.isPending, P;
13
15
  E[0] !== j || E[1] !== k || E[2] !== M || E[3] !== D.args || E[4] !== D.workflowName || E[5] !== D.workspaceId ? (P = () => {
14
- j.mutate({ workflowCreateDto: {
16
+ j.mutate({
15
17
  workflowName: D.workflowName,
16
18
  title: null,
17
19
  workspaceId: D.workspaceId,
18
20
  transition: null,
19
21
  args: D.args ?? {}
20
- } }, { onSuccess: (t) => {
21
- M.mutate({
22
- workflowId: t.id,
23
- runWorkflowPayloadDto: {},
24
- force: !0
25
- }, { onSuccess: () => {
22
+ }, { onSuccess: (t) => {
23
+ M.mutate({ workflowId: t.id }, { onSuccess: () => {
26
24
  k.navigateToWorkflow(t.id);
27
25
  } });
28
26
  } });
@@ -31,11 +29,7 @@ var WorkflowButtons_default = (T) => {
31
29
  E[7] !== M || E[8] !== D.id || E[9] !== O ? (I = () => {
32
30
  M.mutate({
33
31
  workflowId: D.id,
34
- runWorkflowPayloadDto: { transition: {
35
- name: "unlock",
36
- workflowId: O
37
- } },
38
- force: !1
32
+ payload: { transition: { workflowId: O } }
39
33
  });
40
34
  }, E[7] = M, E[8] = D.id, E[9] = O, E[10] = I) : I = E[10];
41
35
  let L = I;