@growthub/cli 0.13.1 → 0.13.4
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.
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/refresh-sources/route.js +24 -2
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/route.js +14 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/sandbox-agent-auth/login/route.js +74 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/sandbox-agent-auth/logout/route.js +67 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/sandbox-agent-auth/status/route.js +77 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/sandbox-run/route.js +48 -3
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/DataModelShell.jsx +123 -27
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/OrchestrationNodeConfigPanel.jsx +136 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/OrchestrationRunTracePanel.jsx +713 -92
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/SandboxAgentAuthPanel.jsx +224 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/SandboxRunPanel.jsx +32 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/globals.css +514 -9
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/page.jsx +8 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/settings/integrations/page.jsx +10 -7
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/workflows/RunSetupPanel.jsx +261 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/workflows/WorkflowSurface.jsx +72 -7
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/workspace-builder.jsx +778 -140
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/workspace-rail.jsx +91 -14
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/docs/sandbox-environment-primitive.md +35 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-graph-runner.js +15 -3
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-run-console.js +384 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-run-inputs.js +323 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-run-trace.js +32 -3
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/sandbox-agent-auth-eligibility.js +50 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/sandbox-agent-auth-redaction.js +64 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/sandbox-agent-auth.js +629 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/sandbox-agent-host-catalog.js +168 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-chart-values.js +542 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-data-model.js +164 -7
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-helper.js +11 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-schema.js +111 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/kit.json +9 -0
- package/package.json +1 -1
package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/globals.css
CHANGED
|
@@ -1039,19 +1039,48 @@ body.workspace-rail-collapsed .workspace-builder.dm-workflow-page {
|
|
|
1039
1039
|
display: flex;
|
|
1040
1040
|
align-items: center;
|
|
1041
1041
|
gap: 2px;
|
|
1042
|
-
border-bottom:
|
|
1043
|
-
|
|
1042
|
+
border-bottom: 0;
|
|
1043
|
+
background: #f5f5f6;
|
|
1044
|
+
padding: 7px 8px;
|
|
1045
|
+
min-height: 38px;
|
|
1046
|
+
overflow-x: auto;
|
|
1047
|
+
overflow-y: hidden;
|
|
1048
|
+
scrollbar-width: none;
|
|
1044
1049
|
}
|
|
1050
|
+
.workspace-tabs::-webkit-scrollbar { display: none; }
|
|
1045
1051
|
.workspace-tabs button {
|
|
1046
1052
|
display: inline-flex;
|
|
1047
1053
|
align-items: center;
|
|
1048
|
-
gap:
|
|
1049
|
-
border
|
|
1050
|
-
background:
|
|
1054
|
+
gap: 5px;
|
|
1055
|
+
border: 1px solid #ececef;
|
|
1056
|
+
background: #ffffff;
|
|
1057
|
+
min-height: 26px;
|
|
1058
|
+
max-width: 170px;
|
|
1059
|
+
flex: 0 0 auto;
|
|
1060
|
+
color: #6b6b72;
|
|
1061
|
+
font-size: 12px;
|
|
1062
|
+
box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
|
|
1051
1063
|
}
|
|
1052
1064
|
.workspace-tabs button.active {
|
|
1053
|
-
background: #
|
|
1065
|
+
background: #ffffff;
|
|
1066
|
+
border-color: #d7d7dc;
|
|
1054
1067
|
color: #222;
|
|
1068
|
+
box-shadow: 0 2px 8px rgba(15, 23, 42, 0.1);
|
|
1069
|
+
}
|
|
1070
|
+
.workspace-tabs button span:first-child {
|
|
1071
|
+
overflow: hidden;
|
|
1072
|
+
text-overflow: ellipsis;
|
|
1073
|
+
white-space: nowrap;
|
|
1074
|
+
}
|
|
1075
|
+
.workspace-tab-name-input {
|
|
1076
|
+
width: 110px;
|
|
1077
|
+
height: 22px;
|
|
1078
|
+
border: 1px solid #d7d7dc;
|
|
1079
|
+
border-radius: 4px;
|
|
1080
|
+
background: #fff;
|
|
1081
|
+
color: #303036;
|
|
1082
|
+
font-size: 12px;
|
|
1083
|
+
padding: 0 6px;
|
|
1055
1084
|
}
|
|
1056
1085
|
.workspace-tab-delete {
|
|
1057
1086
|
display: inline-flex;
|
|
@@ -1093,6 +1122,7 @@ body.workspace-rail-collapsed .workspace-builder.dm-workflow-page {
|
|
|
1093
1122
|
opacity: 0.4;
|
|
1094
1123
|
cursor: default;
|
|
1095
1124
|
}
|
|
1125
|
+
.workspace-tab-refresh { display: none; }
|
|
1096
1126
|
.workspace-tab-refresh.loading {
|
|
1097
1127
|
color: #555;
|
|
1098
1128
|
}
|
|
@@ -1807,6 +1837,17 @@ body.workspace-rail-collapsed .workspace-builder.dm-workflow-page {
|
|
|
1807
1837
|
font-size: 12px;
|
|
1808
1838
|
font-style: normal;
|
|
1809
1839
|
}
|
|
1840
|
+
.workspace-widget-panel-kind-icon {
|
|
1841
|
+
width: 24px;
|
|
1842
|
+
height: 24px;
|
|
1843
|
+
display: grid;
|
|
1844
|
+
place-items: center;
|
|
1845
|
+
border: 1px solid #e2e2e5;
|
|
1846
|
+
border-radius: 4px;
|
|
1847
|
+
background: #f5f5f6;
|
|
1848
|
+
color: #8a8a91;
|
|
1849
|
+
flex: 0 0 auto;
|
|
1850
|
+
}
|
|
1810
1851
|
.workspace-panel-label {
|
|
1811
1852
|
margin: 14px 0 7px;
|
|
1812
1853
|
color: #999;
|
|
@@ -1845,6 +1886,31 @@ body.workspace-rail-collapsed .workspace-builder.dm-workflow-page {
|
|
|
1845
1886
|
.workspace-bindings {
|
|
1846
1887
|
border-top: 1px solid #ececec;
|
|
1847
1888
|
margin-top: 16px;
|
|
1889
|
+
padding-top: 8px;
|
|
1890
|
+
}
|
|
1891
|
+
.workspace-bindings summary {
|
|
1892
|
+
cursor: pointer;
|
|
1893
|
+
color: #74747a;
|
|
1894
|
+
font-size: 11px;
|
|
1895
|
+
font-weight: 700;
|
|
1896
|
+
list-style: none;
|
|
1897
|
+
min-height: 28px;
|
|
1898
|
+
display: flex;
|
|
1899
|
+
align-items: center;
|
|
1900
|
+
justify-content: space-between;
|
|
1901
|
+
}
|
|
1902
|
+
.workspace-bindings summary::after {
|
|
1903
|
+
content: "›";
|
|
1904
|
+
color: #aaa;
|
|
1905
|
+
font-size: 15px;
|
|
1906
|
+
transform: rotate(0deg);
|
|
1907
|
+
}
|
|
1908
|
+
.workspace-bindings summary::-webkit-details-marker { display: none; }
|
|
1909
|
+
.workspace-bindings[open] summary {
|
|
1910
|
+
margin-bottom: 8px;
|
|
1911
|
+
}
|
|
1912
|
+
.workspace-bindings[open] summary::after {
|
|
1913
|
+
transform: rotate(90deg);
|
|
1848
1914
|
}
|
|
1849
1915
|
.workspace-bindings div {
|
|
1850
1916
|
display: flex;
|
|
@@ -1915,6 +1981,153 @@ body.workspace-rail-collapsed .workspace-builder.dm-workflow-page {
|
|
|
1915
1981
|
background: transparent;
|
|
1916
1982
|
}
|
|
1917
1983
|
|
|
1984
|
+
.workspace-twenty-config {
|
|
1985
|
+
display: grid;
|
|
1986
|
+
gap: 1px;
|
|
1987
|
+
}
|
|
1988
|
+
.workspace-chart-config .workspace-panel-label {
|
|
1989
|
+
margin-top: 16px;
|
|
1990
|
+
padding-top: 12px;
|
|
1991
|
+
border-top: 1px solid #eeeeef;
|
|
1992
|
+
}
|
|
1993
|
+
.workspace-chart-config .workspace-panel-label:first-child {
|
|
1994
|
+
margin-top: 0;
|
|
1995
|
+
padding-top: 0;
|
|
1996
|
+
border-top: 0;
|
|
1997
|
+
}
|
|
1998
|
+
|
|
1999
|
+
.workspace-twenty-settings-row,
|
|
2000
|
+
.workspace-twenty-select-row {
|
|
2001
|
+
min-height: 32px;
|
|
2002
|
+
width: 100%;
|
|
2003
|
+
display: grid;
|
|
2004
|
+
grid-template-columns: minmax(0, 1fr) auto 14px;
|
|
2005
|
+
align-items: center;
|
|
2006
|
+
gap: 8px;
|
|
2007
|
+
border: 0;
|
|
2008
|
+
border-radius: 4px;
|
|
2009
|
+
background: transparent;
|
|
2010
|
+
color: #5f6067;
|
|
2011
|
+
font: inherit;
|
|
2012
|
+
font-size: 13px;
|
|
2013
|
+
padding: 0 6px;
|
|
2014
|
+
text-align: left;
|
|
2015
|
+
}
|
|
2016
|
+
|
|
2017
|
+
.workspace-twenty-settings-row:not(:disabled) {
|
|
2018
|
+
cursor: pointer;
|
|
2019
|
+
}
|
|
2020
|
+
|
|
2021
|
+
.workspace-twenty-settings-row:hover:not(:disabled),
|
|
2022
|
+
.workspace-twenty-settings-row.is-active {
|
|
2023
|
+
background: #f1f1f2;
|
|
2024
|
+
}
|
|
2025
|
+
|
|
2026
|
+
.workspace-twenty-settings-row:disabled {
|
|
2027
|
+
color: #a7a7ad;
|
|
2028
|
+
}
|
|
2029
|
+
|
|
2030
|
+
.workspace-twenty-settings-row__main {
|
|
2031
|
+
min-width: 0;
|
|
2032
|
+
display: inline-flex;
|
|
2033
|
+
align-items: center;
|
|
2034
|
+
gap: 8px;
|
|
2035
|
+
}
|
|
2036
|
+
|
|
2037
|
+
.workspace-twenty-settings-row__icon {
|
|
2038
|
+
width: 22px;
|
|
2039
|
+
height: 22px;
|
|
2040
|
+
display: grid;
|
|
2041
|
+
place-items: center;
|
|
2042
|
+
border-radius: 4px;
|
|
2043
|
+
background: #f3f3f4;
|
|
2044
|
+
color: #8f9097;
|
|
2045
|
+
flex: 0 0 auto;
|
|
2046
|
+
}
|
|
2047
|
+
|
|
2048
|
+
.workspace-twenty-settings-row__value {
|
|
2049
|
+
max-width: 178px;
|
|
2050
|
+
overflow: hidden;
|
|
2051
|
+
text-overflow: ellipsis;
|
|
2052
|
+
white-space: nowrap;
|
|
2053
|
+
color: #a0a0a7;
|
|
2054
|
+
text-align: right;
|
|
2055
|
+
}
|
|
2056
|
+
|
|
2057
|
+
.workspace-twenty-settings-row__chevron {
|
|
2058
|
+
color: #b3b3b8;
|
|
2059
|
+
transform: rotate(-90deg);
|
|
2060
|
+
}
|
|
2061
|
+
|
|
2062
|
+
.workspace-twenty-select-row {
|
|
2063
|
+
grid-template-columns: minmax(0, 1fr) minmax(130px, 180px);
|
|
2064
|
+
}
|
|
2065
|
+
|
|
2066
|
+
.workspace-twenty-select-row__control {
|
|
2067
|
+
min-width: 0;
|
|
2068
|
+
}
|
|
2069
|
+
|
|
2070
|
+
.workspace-twenty-select-row select,
|
|
2071
|
+
.workspace-twenty-select-row input,
|
|
2072
|
+
.workspace-twenty-select-row .field-dropdown-trigger {
|
|
2073
|
+
width: 100%;
|
|
2074
|
+
min-height: 28px;
|
|
2075
|
+
border: 1px solid transparent;
|
|
2076
|
+
border-radius: 5px;
|
|
2077
|
+
background: #f7f7f8;
|
|
2078
|
+
color: #30323a;
|
|
2079
|
+
font-size: 12px;
|
|
2080
|
+
}
|
|
2081
|
+
|
|
2082
|
+
.workspace-twenty-select-row select:focus,
|
|
2083
|
+
.workspace-twenty-select-row input:focus,
|
|
2084
|
+
.workspace-twenty-select-row .field-dropdown-trigger:focus {
|
|
2085
|
+
outline: none;
|
|
2086
|
+
border-color: #d6d9e0;
|
|
2087
|
+
background: #fff;
|
|
2088
|
+
}
|
|
2089
|
+
|
|
2090
|
+
.workspace-twenty-toggle-row {
|
|
2091
|
+
min-height: 32px;
|
|
2092
|
+
display: flex;
|
|
2093
|
+
align-items: center;
|
|
2094
|
+
justify-content: space-between;
|
|
2095
|
+
gap: 10px;
|
|
2096
|
+
color: #5f6067;
|
|
2097
|
+
font-size: 13px;
|
|
2098
|
+
padding: 0 6px;
|
|
2099
|
+
}
|
|
2100
|
+
.workspace-twenty-toggle-row input[type="checkbox"] {
|
|
2101
|
+
appearance: none;
|
|
2102
|
+
width: 15px;
|
|
2103
|
+
height: 15px;
|
|
2104
|
+
min-width: 15px;
|
|
2105
|
+
max-width: 15px;
|
|
2106
|
+
padding: 0;
|
|
2107
|
+
margin: 0;
|
|
2108
|
+
border: 1px solid #d5d5da;
|
|
2109
|
+
border-radius: 5px;
|
|
2110
|
+
background: #f1f1f2;
|
|
2111
|
+
box-shadow: none;
|
|
2112
|
+
cursor: pointer;
|
|
2113
|
+
}
|
|
2114
|
+
.workspace-twenty-toggle-row input[type="checkbox"]:checked {
|
|
2115
|
+
background: #d7d7db;
|
|
2116
|
+
border-color: #c8c8ce;
|
|
2117
|
+
}
|
|
2118
|
+
.workspace-twenty-toggle-row input[type="checkbox"]:checked::after {
|
|
2119
|
+
content: "✓";
|
|
2120
|
+
display: block;
|
|
2121
|
+
color: #4b5563;
|
|
2122
|
+
font-size: 11px;
|
|
2123
|
+
line-height: 13px;
|
|
2124
|
+
text-align: center;
|
|
2125
|
+
}
|
|
2126
|
+
|
|
2127
|
+
.workspace-dashboard-surface .workspace-canvas-grid {
|
|
2128
|
+
transition: opacity .12s ease;
|
|
2129
|
+
}
|
|
2130
|
+
|
|
1918
2131
|
@media (max-width: 1080px) {
|
|
1919
2132
|
.workspace-builder {
|
|
1920
2133
|
grid-template-columns: 180px minmax(0, 1fr);
|
|
@@ -2498,6 +2711,43 @@ body.workspace-rail-collapsed .workspace-builder.dm-workflow-page {
|
|
|
2498
2711
|
line-height: 1.5;
|
|
2499
2712
|
}
|
|
2500
2713
|
|
|
2714
|
+
.workspace-chart-inspector-top-actions {
|
|
2715
|
+
margin: 10px 0 2px;
|
|
2716
|
+
}
|
|
2717
|
+
|
|
2718
|
+
.workspace-chart-inspector-preview {
|
|
2719
|
+
border: 1px solid #ececec;
|
|
2720
|
+
border-radius: 6px;
|
|
2721
|
+
background: #fff;
|
|
2722
|
+
}
|
|
2723
|
+
|
|
2724
|
+
.workspace-chart-inspector-preview summary {
|
|
2725
|
+
cursor: pointer;
|
|
2726
|
+
list-style: none;
|
|
2727
|
+
padding: 8px 10px;
|
|
2728
|
+
color: #555;
|
|
2729
|
+
font-size: 12px;
|
|
2730
|
+
font-weight: 600;
|
|
2731
|
+
}
|
|
2732
|
+
|
|
2733
|
+
.workspace-chart-inspector-preview summary::-webkit-details-marker {
|
|
2734
|
+
display: none;
|
|
2735
|
+
}
|
|
2736
|
+
|
|
2737
|
+
.workspace-chart-inspector-sample {
|
|
2738
|
+
max-height: 220px;
|
|
2739
|
+
overflow: auto;
|
|
2740
|
+
margin: 0;
|
|
2741
|
+
padding: 10px;
|
|
2742
|
+
border-top: 1px solid #ececec;
|
|
2743
|
+
color: #333;
|
|
2744
|
+
background: #fafafa;
|
|
2745
|
+
font-size: 11px;
|
|
2746
|
+
line-height: 1.45;
|
|
2747
|
+
white-space: pre-wrap;
|
|
2748
|
+
word-break: break-word;
|
|
2749
|
+
}
|
|
2750
|
+
|
|
2501
2751
|
/* Settings row buttons (replace bare div on the root inspector list) */
|
|
2502
2752
|
.workspace-settings-row,
|
|
2503
2753
|
.workspace-settings-list .workspace-settings-row {
|
|
@@ -4475,6 +4725,8 @@ body.workspace-rail-collapsed .workspace-builder.dm-workflow-page {
|
|
|
4475
4725
|
.dm-db-status.ok span { background: #22c55e; }
|
|
4476
4726
|
.dm-db-status.bad { border-color: #fecaca; background: #fef2f2; color: #991b1b; }
|
|
4477
4727
|
.dm-db-status.bad span { background: #ef4444; }
|
|
4728
|
+
.dm-db-status.warn { border-color: #fde68a; background: #fffbeb; color: #92400e; }
|
|
4729
|
+
.dm-db-status.warn span { background: #f59e0b; }
|
|
4478
4730
|
.dm-record-backdrop { position: fixed; inset: 0; z-index: 80; background: rgba(15,23,42,.12); }
|
|
4479
4731
|
.dm-record-drawer { position: fixed; top: 0; right: 0; bottom: 0; z-index: 81; display: flex; flex-direction: column; width: min(440px, 100vw); background: #fff; border-left: 1px solid #dfe3e8; box-shadow: -10px 0 34px rgba(15,23,42,.16); }
|
|
4480
4732
|
.dm-record-drawer-wide { width: min(780px, 100vw); }
|
|
@@ -5428,6 +5680,8 @@ body.workspace-rail-collapsed .workspace-builder.dm-workflow-page {
|
|
|
5428
5680
|
.dm-orch-modal-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 16px; border-top: 1px solid #edf0f3; }
|
|
5429
5681
|
.dm-record-drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; border-bottom: 1px solid #edf0f3; }
|
|
5430
5682
|
.dm-record-drawer-actions { display: inline-flex; align-items: center; gap: 8px; }
|
|
5683
|
+
.dm-record-head-run { min-height: 30px; padding: 0 11px; }
|
|
5684
|
+
.dm-record-drawer-actions { display: inline-flex; align-items: center; gap: 8px; }
|
|
5431
5685
|
.dm-record-drawer-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 16px; border-top: 1px solid #edf0f3; background: #fff; }
|
|
5432
5686
|
.dm-drawer-field-editor { display: grid; gap: 8px; }
|
|
5433
5687
|
.dm-drawer-field-row { display: grid; grid-template-columns: minmax(0,1fr) auto auto auto; gap: 8px; align-items: center; }
|
|
@@ -5439,6 +5693,93 @@ body.workspace-rail-collapsed .workspace-builder.dm-workflow-page {
|
|
|
5439
5693
|
.dm-record-drawer-head h2 { margin: 0; color: #111827; font-size: 16px; font-weight: 650; }
|
|
5440
5694
|
.dm-record-testbar { display: flex; align-items: center; gap: 8px; padding: 10px 18px; border-bottom: 1px solid #edf0f3; background: #fbfdff; }
|
|
5441
5695
|
.dm-record-testbar > span:last-child { min-width: 0; color: #64748b; font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
5696
|
+
.dm-record-testbar[data-panel="sandbox-agent-auth"] {
|
|
5697
|
+
display: grid;
|
|
5698
|
+
grid-template-columns: 1fr;
|
|
5699
|
+
align-items: center;
|
|
5700
|
+
gap: 8px;
|
|
5701
|
+
margin: 10px 16px;
|
|
5702
|
+
padding: 11px;
|
|
5703
|
+
border: 1px solid #e5e7eb;
|
|
5704
|
+
border-radius: 8px;
|
|
5705
|
+
background: #fff;
|
|
5706
|
+
box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
|
|
5707
|
+
}
|
|
5708
|
+
.dm-agent-auth-summary {
|
|
5709
|
+
min-width: 0;
|
|
5710
|
+
display: grid;
|
|
5711
|
+
grid-template-columns: 18px minmax(0, 1fr) auto;
|
|
5712
|
+
align-items: center;
|
|
5713
|
+
gap: 8px;
|
|
5714
|
+
}
|
|
5715
|
+
.dm-agent-auth-summary svg {
|
|
5716
|
+
color: #475569;
|
|
5717
|
+
}
|
|
5718
|
+
.dm-agent-auth-summary strong {
|
|
5719
|
+
display: block;
|
|
5720
|
+
overflow: hidden;
|
|
5721
|
+
color: #1f2937;
|
|
5722
|
+
font-size: 13px;
|
|
5723
|
+
font-weight: 650;
|
|
5724
|
+
line-height: 1.2;
|
|
5725
|
+
text-overflow: ellipsis;
|
|
5726
|
+
white-space: nowrap;
|
|
5727
|
+
}
|
|
5728
|
+
.dm-agent-auth-summary span:not(.dm-db-status) {
|
|
5729
|
+
display: block;
|
|
5730
|
+
overflow: hidden;
|
|
5731
|
+
color: #64748b;
|
|
5732
|
+
font-size: 11px;
|
|
5733
|
+
line-height: 1.2;
|
|
5734
|
+
text-overflow: ellipsis;
|
|
5735
|
+
white-space: nowrap;
|
|
5736
|
+
}
|
|
5737
|
+
.dm-agent-auth-actions {
|
|
5738
|
+
display: inline-flex;
|
|
5739
|
+
align-items: center;
|
|
5740
|
+
gap: 6px;
|
|
5741
|
+
padding-left: 26px;
|
|
5742
|
+
}
|
|
5743
|
+
.dm-agent-auth-actions button {
|
|
5744
|
+
min-height: 28px;
|
|
5745
|
+
padding: 0 9px;
|
|
5746
|
+
white-space: nowrap;
|
|
5747
|
+
}
|
|
5748
|
+
.dm-agent-auth-message {
|
|
5749
|
+
grid-column: 1 / -1;
|
|
5750
|
+
min-width: 0;
|
|
5751
|
+
padding-left: 26px;
|
|
5752
|
+
color: #64748b;
|
|
5753
|
+
font-size: 11px;
|
|
5754
|
+
line-height: 1.35;
|
|
5755
|
+
}
|
|
5756
|
+
.dm-agent-auth-message.is-warning { color: #92400e; }
|
|
5757
|
+
.dm-agent-auth-message.is-muted { color: #94a3b8; }
|
|
5758
|
+
.dm-agent-auth-output {
|
|
5759
|
+
grid-column: 1 / -1;
|
|
5760
|
+
border-top: 1px solid #f1f5f9;
|
|
5761
|
+
padding-top: 8px;
|
|
5762
|
+
}
|
|
5763
|
+
.dm-agent-auth-output summary {
|
|
5764
|
+
cursor: pointer;
|
|
5765
|
+
color: #64748b;
|
|
5766
|
+
font-size: 11px;
|
|
5767
|
+
font-weight: 650;
|
|
5768
|
+
}
|
|
5769
|
+
.dm-agent-auth-output pre {
|
|
5770
|
+
max-height: 180px;
|
|
5771
|
+
overflow: auto;
|
|
5772
|
+
margin: 8px 0 0;
|
|
5773
|
+
padding: 9px;
|
|
5774
|
+
border-radius: 6px;
|
|
5775
|
+
background: #0f172a;
|
|
5776
|
+
color: #e2e8f0;
|
|
5777
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
|
|
5778
|
+
font-size: 11px;
|
|
5779
|
+
line-height: 1.45;
|
|
5780
|
+
white-space: pre-wrap;
|
|
5781
|
+
word-break: break-word;
|
|
5782
|
+
}
|
|
5442
5783
|
.dm-record-fields { display: grid; gap: 8px; padding: 14px 16px 28px; overflow-y: auto; }
|
|
5443
5784
|
.dm-record-field { display: grid; gap: 5px; }
|
|
5444
5785
|
.dm-record-field span { color: #475569; font-size: 11px; font-weight: 650; }
|
|
@@ -6788,14 +7129,34 @@ body.workspace-rail-collapsed .workspace-builder.dm-workflow-page {
|
|
|
6788
7129
|
white-space: nowrap;
|
|
6789
7130
|
}
|
|
6790
7131
|
.workspace-rail-folders-scroll {
|
|
7132
|
+
/* Folder list owns its own scroll surface so the rail's main nav
|
|
7133
|
+
items (Builder / Management / Workspace Settings) and the status
|
|
7134
|
+
pill below remain reachable even when the user has many folders
|
|
7135
|
+
or one folder is expanded with many items. Horizontal overflow is
|
|
7136
|
+
hard-clipped — long folder/item labels truncate via ellipsis on
|
|
7137
|
+
the inner label spans, never producing a sideways scrollbar. */
|
|
6791
7138
|
flex: 0 1 auto;
|
|
6792
7139
|
min-height: 0;
|
|
6793
|
-
|
|
6794
|
-
|
|
6795
|
-
|
|
7140
|
+
max-height: min(
|
|
7141
|
+
calc(var(--nav-folder-row-h) * var(--nav-max-folders) + 12px),
|
|
7142
|
+
calc(100vh - 280px)
|
|
7143
|
+
);
|
|
6796
7144
|
overflow-y: auto;
|
|
7145
|
+
overflow-x: hidden;
|
|
7146
|
+
padding-right: 2px;
|
|
7147
|
+
overscroll-behavior: contain;
|
|
6797
7148
|
scrollbar-gutter: stable;
|
|
6798
7149
|
}
|
|
7150
|
+
.workspace-rail-folders-scroll.is-scrollable {
|
|
7151
|
+
/* Compatibility hook: existing markup adds `is-scrollable` once the
|
|
7152
|
+
visible folder count crosses the 10-row threshold. Behaviour is
|
|
7153
|
+
already covered by the base rule above; the class is kept so
|
|
7154
|
+
downstream tests / themes can target an overflowing list. */
|
|
7155
|
+
max-height: min(
|
|
7156
|
+
calc(var(--nav-folder-row-h) * var(--nav-max-folders) + 12px),
|
|
7157
|
+
calc(100vh - 280px)
|
|
7158
|
+
);
|
|
7159
|
+
}
|
|
6799
7160
|
.workspace-rail-folders-scroll-hint {
|
|
6800
7161
|
margin: 0;
|
|
6801
7162
|
padding: 4px 10px 2px;
|
|
@@ -6806,6 +7167,8 @@ body.workspace-rail-collapsed .workspace-builder.dm-workflow-page {
|
|
|
6806
7167
|
.workspace-rail-folder-items.is-scrollable {
|
|
6807
7168
|
max-height: calc(var(--nav-item-row-h) * var(--nav-max-items));
|
|
6808
7169
|
overflow-y: auto;
|
|
7170
|
+
overflow-x: hidden;
|
|
7171
|
+
overscroll-behavior: contain;
|
|
6809
7172
|
scrollbar-gutter: stable;
|
|
6810
7173
|
}
|
|
6811
7174
|
.workspace-rail-nav-menu-stack {
|
|
@@ -7137,6 +7500,10 @@ body.workspace-rail-collapsed .workspace-builder.dm-workflow-page {
|
|
|
7137
7500
|
font-size: 10.5px;
|
|
7138
7501
|
color: #9ca3af;
|
|
7139
7502
|
line-height: 1.2;
|
|
7503
|
+
min-width: 0;
|
|
7504
|
+
overflow: hidden;
|
|
7505
|
+
text-overflow: ellipsis;
|
|
7506
|
+
white-space: nowrap;
|
|
7140
7507
|
}
|
|
7141
7508
|
.workspace-rail-nav-menu-wrap {
|
|
7142
7509
|
flex-shrink: 0;
|
|
@@ -7893,3 +8260,141 @@ body.workspace-rail-collapsed .workspace-builder.dm-workflow-page {
|
|
|
7893
8260
|
}
|
|
7894
8261
|
.wfp-add-field button:hover:not(:disabled) { background: #333; }
|
|
7895
8262
|
.wfp-add-field button:disabled { opacity: .4; cursor: not-allowed; }
|
|
8263
|
+
|
|
8264
|
+
/* -------------------------------------------------------------------------
|
|
8265
|
+
* Live Runs Console (BTCA-style run observability over sandbox-run records)
|
|
8266
|
+
* Scoped class family. No global layout changes.
|
|
8267
|
+
* ------------------------------------------------------------------------- */
|
|
8268
|
+
.dm-run-console { display: flex; flex-direction: column; flex: 1; min-height: 0; background: #fff; }
|
|
8269
|
+
.dm-run-console__head { display: flex; align-items: flex-start; gap: 12px; padding: 12px 16px; border-bottom: 1px solid #edf0f3; flex-wrap: wrap; }
|
|
8270
|
+
.dm-run-console__head-titles { flex: 1; min-width: 200px; }
|
|
8271
|
+
.dm-run-console__head-titles h2 { margin: 2px 0 0; font-size: 15px; font-weight: 650; color: #111827; }
|
|
8272
|
+
.dm-run-console__head-titles p { margin: 2px 0 0; font-size: 12px; color: #6b7280; }
|
|
8273
|
+
.dm-run-console__crumbs { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; color: #6b7280; text-transform: uppercase; letter-spacing: 0.04em; }
|
|
8274
|
+
.dm-run-console__crumbs code { font-size: 11px; color: #111827; background: #f3f4f6; padding: 1px 6px; border-radius: 999px; letter-spacing: 0; text-transform: none; }
|
|
8275
|
+
.dm-run-console__head-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
|
|
8276
|
+
.dm-run-console__head-actions .dm-btn-outline { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; padding: 5px 9px; border-radius: 5px; }
|
|
8277
|
+
.dm-run-console__cancel { color: #b91c1c; border-color: #fecaca; }
|
|
8278
|
+
|
|
8279
|
+
.dm-run-console__split { display: grid; grid-template-columns: minmax(220px, 320px) minmax(0, 1fr); gap: 0; flex: 1; min-height: 0; }
|
|
8280
|
+
@media (max-width: 880px) { .dm-run-console__split { grid-template-columns: 1fr; } }
|
|
8281
|
+
|
|
8282
|
+
.dm-run-console__left { display: flex; flex-direction: column; gap: 10px; padding: 12px; border-right: 1px solid #edf0f3; min-height: 0; overflow-y: auto; background: #fafbfc; }
|
|
8283
|
+
.dm-run-console__toolbar { display: grid; grid-template-columns: 1fr auto; gap: 6px 8px; align-items: center; padding: 6px; border: 1px solid #e5e7eb; border-radius: 6px; background: #fff; }
|
|
8284
|
+
.dm-run-console__search { grid-column: 1 / -1; display: flex; align-items: center; gap: 6px; padding: 4px 8px; border: 1px solid #e5e7eb; border-radius: 5px; background: #fff; color: #6b7280; }
|
|
8285
|
+
.dm-run-console__search input { flex: 1; border: none; outline: none; font-size: 12px; color: #111827; background: transparent; }
|
|
8286
|
+
.dm-run-console__toggle { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; color: #374151; cursor: pointer; }
|
|
8287
|
+
.dm-run-console__toggle input { accent-color: #2563eb; }
|
|
8288
|
+
.dm-run-console__live { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 6px; font-size: 11px; color: #6b7280; }
|
|
8289
|
+
.dm-run-console__live-dot { width: 6px; height: 6px; border-radius: 999px; background: #d1d5db; box-shadow: 0 0 0 3px rgba(209, 213, 219, 0.4); }
|
|
8290
|
+
.dm-run-console__live.is-on { color: #1d4ed8; }
|
|
8291
|
+
.dm-run-console__live.is-on .dm-run-console__live-dot { background: #2563eb; box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18); animation: dm-run-console-pulse 1.4s ease-in-out infinite; }
|
|
8292
|
+
@keyframes dm-run-console-pulse { 0% { transform: scale(0.85); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.85); opacity: 0.8; } }
|
|
8293
|
+
|
|
8294
|
+
.dm-run-console__history,
|
|
8295
|
+
.dm-run-console__tree,
|
|
8296
|
+
.dm-run-console__timeline { display: flex; flex-direction: column; gap: 4px; }
|
|
8297
|
+
.dm-run-console__history-title { margin: 6px 0 4px; font-size: 10px; font-weight: 700; text-transform: uppercase; color: #6b7280; letter-spacing: 0.04em; }
|
|
8298
|
+
.dm-run-console__hint { margin: 0; font-size: 11px; color: #6b7280; }
|
|
8299
|
+
|
|
8300
|
+
.dm-run-console__history-row { display: grid; gap: 2px; text-align: left; padding: 6px 8px; border: 1px solid #e5e7eb; border-radius: 5px; background: #fff; cursor: pointer; font-size: 11px; }
|
|
8301
|
+
.dm-run-console__history-row:hover { border-color: #cbd5e1; }
|
|
8302
|
+
.dm-run-console__history-row.is-active { border-color: #2563eb; box-shadow: 0 0 0 1px #2563eb; background: #f8fafc; }
|
|
8303
|
+
.dm-run-console__history-label { display: inline-flex; align-items: center; gap: 6px; font-weight: 650; color: #111827; word-break: break-all; }
|
|
8304
|
+
.dm-run-console__history-meta { color: #6b7280; font-size: 10px; }
|
|
8305
|
+
|
|
8306
|
+
.dm-run-console__tree-block { display: flex; flex-direction: column; }
|
|
8307
|
+
.dm-run-console__tree-children { display: flex; flex-direction: column; }
|
|
8308
|
+
.dm-run-console__tree-row {
|
|
8309
|
+
display: grid; grid-template-columns: auto auto 1fr auto auto; align-items: center;
|
|
8310
|
+
gap: 6px; padding: 4px 6px; border: 1px solid transparent; background: transparent;
|
|
8311
|
+
cursor: pointer; font-size: 11px; color: #1f2937; border-radius: 4px;
|
|
8312
|
+
}
|
|
8313
|
+
.dm-run-console__tree-row:hover { background: #f3f4f6; }
|
|
8314
|
+
.dm-run-console__tree-row.is-active { background: #eef2ff; border-color: #c7d2fe; }
|
|
8315
|
+
.dm-run-console__tree-indent { display: block; }
|
|
8316
|
+
.dm-run-console__tree-dot { width: 6px; height: 6px; border-radius: 999px; background: #9ca3af; flex-shrink: 0; }
|
|
8317
|
+
.dm-run-console__tree-dot[data-variant="ok"] { background: #16a34a; }
|
|
8318
|
+
.dm-run-console__tree-dot[data-variant="fail"] { background: #dc2626; }
|
|
8319
|
+
.dm-run-console__tree-dot[data-variant="active"] { background: #2563eb; }
|
|
8320
|
+
.dm-run-console__tree-dot[data-variant="canceled"] { background: #9ca3af; }
|
|
8321
|
+
.dm-run-console__tree-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
8322
|
+
.dm-run-console__tree-meta { color: #6b7280; font-size: 10px; font-variant-numeric: tabular-nums; }
|
|
8323
|
+
.dm-run-console__tree-bar { display: block; width: 56px; height: 4px; background: #e5e7eb; border-radius: 999px; overflow: hidden; }
|
|
8324
|
+
.dm-run-console__tree-bar span { display: block; height: 100%; background: #94a3b8; }
|
|
8325
|
+
.dm-run-console__tree-bar span[data-variant="ok"] { background: #22c55e; }
|
|
8326
|
+
.dm-run-console__tree-bar span[data-variant="fail"] { background: #ef4444; }
|
|
8327
|
+
.dm-run-console__tree-bar span[data-variant="active"] { background: #2563eb; }
|
|
8328
|
+
|
|
8329
|
+
.dm-run-console__timeline-row { display: grid; grid-template-columns: minmax(80px, 1fr) minmax(60px, 2fr) auto; align-items: center; gap: 6px; padding: 3px 6px; font-size: 10px; color: #6b7280; }
|
|
8330
|
+
.dm-run-console__timeline-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
8331
|
+
.dm-run-console__timeline-bar { display: block; height: 6px; background: #e5e7eb; border-radius: 999px; overflow: hidden; }
|
|
8332
|
+
.dm-run-console__timeline-bar span { display: block; height: 100%; background: #94a3b8; }
|
|
8333
|
+
.dm-run-console__timeline-bar span[data-variant="ok"] { background: #22c55e; }
|
|
8334
|
+
.dm-run-console__timeline-bar span[data-variant="fail"] { background: #ef4444; }
|
|
8335
|
+
.dm-run-console__timeline-bar span[data-variant="active"] { background: #2563eb; }
|
|
8336
|
+
.dm-run-console__timeline-dur { font-variant-numeric: tabular-nums; }
|
|
8337
|
+
|
|
8338
|
+
.dm-run-console__right { display: flex; flex-direction: column; min-height: 0; overflow: hidden; background: #fff; }
|
|
8339
|
+
.dm-run-console__detail-head { display: flex; flex-direction: column; gap: 8px; padding: 12px 16px; border-bottom: 1px solid #edf0f3; }
|
|
8340
|
+
.dm-run-console__detail-title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
|
|
8341
|
+
.dm-run-console__detail-title strong { font-size: 14px; font-weight: 650; color: #111827; }
|
|
8342
|
+
.dm-run-console__detail-title small { color: #6b7280; font-size: 11px; word-break: break-all; }
|
|
8343
|
+
.dm-run-console__status-pill { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; border: 1px solid transparent; }
|
|
8344
|
+
.dm-run-console__status-pill.is-ok { background: #dcfce7; color: #166534; border-color: #bbf7d0; }
|
|
8345
|
+
.dm-run-console__status-pill.is-fail { background: #fee2e2; color: #991b1b; border-color: #fecaca; }
|
|
8346
|
+
.dm-run-console__status-pill.is-active { background: #dbeafe; color: #1d4ed8; border-color: #bfdbfe; }
|
|
8347
|
+
.dm-run-console__status-pill.is-canceled { background: #f3f4f6; color: #6b7280; border-color: #e5e7eb; }
|
|
8348
|
+
.dm-run-console__status-pill.is-neutral { background: #f3f4f6; color: #374151; border-color: #e5e7eb; }
|
|
8349
|
+
.dm-run-console__detail-tabs { display: flex; gap: 4px; }
|
|
8350
|
+
.dm-run-console__detail-tab { padding: 4px 10px; border: 1px solid #e5e7eb; background: #fff; border-radius: 5px; font-size: 11px; color: #374151; cursor: pointer; }
|
|
8351
|
+
.dm-run-console__detail-tab.is-active { background: #111827; color: #fff; border-color: #111827; }
|
|
8352
|
+
|
|
8353
|
+
.dm-run-console__detail-body { display: grid; gap: 16px; padding: 12px 16px 16px; overflow-y: auto; min-height: 0; }
|
|
8354
|
+
.dm-run-console__section { display: grid; gap: 8px; }
|
|
8355
|
+
.dm-run-console__section h3 { margin: 0; font-size: 11px; font-weight: 700; text-transform: uppercase; color: #6b7280; letter-spacing: 0.04em; }
|
|
8356
|
+
.dm-run-console__lifecycle { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
|
|
8357
|
+
.dm-run-console__lifecycle li { display: grid; grid-template-columns: 100px 1fr auto; gap: 8px; align-items: center; padding: 6px 8px; border: 1px solid #e5e7eb; border-radius: 5px; background: #fafbfc; font-size: 11px; }
|
|
8358
|
+
.dm-run-console__lifecycle-label { font-weight: 650; color: #111827; }
|
|
8359
|
+
.dm-run-console__lifecycle-at { color: #6b7280; font-variant-numeric: tabular-nums; }
|
|
8360
|
+
.dm-run-console__lifecycle-dur { color: #1d4ed8; font-size: 10px; font-variant-numeric: tabular-nums; }
|
|
8361
|
+
.dm-run-console__kv { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 6px 12px; margin: 0; font-size: 11px; }
|
|
8362
|
+
.dm-run-console__kv div { display: grid; gap: 2px; }
|
|
8363
|
+
.dm-run-console__kv dt { margin: 0; font-weight: 650; color: #6b7280; font-size: 10px; text-transform: uppercase; letter-spacing: 0.04em; }
|
|
8364
|
+
.dm-run-console__kv dd { margin: 0; color: #111827; word-break: break-word; }
|
|
8365
|
+
.dm-run-console__code { display: grid; gap: 4px; }
|
|
8366
|
+
.dm-run-console__code span { font-size: 10px; font-weight: 700; text-transform: uppercase; color: #6b7280; letter-spacing: 0.04em; }
|
|
8367
|
+
.dm-run-console__code pre { margin: 0; padding: 10px; background: #0f172a; color: #e2e8f0; border-radius: 5px; font-size: 11px; overflow: auto; max-height: 280px; white-space: pre-wrap; word-break: break-word; }
|
|
8368
|
+
|
|
8369
|
+
/* Exports (Detail tab action bar) */
|
|
8370
|
+
.dm-run-console__exports { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
|
|
8371
|
+
.dm-run-console__exports .dm-btn-outline { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; padding: 4px 8px; border-radius: 5px; }
|
|
8372
|
+
.dm-run-console__export-toast { font-size: 11px; color: #166534; background: #dcfce7; border: 1px solid #bbf7d0; padding: 2px 8px; border-radius: 999px; }
|
|
8373
|
+
|
|
8374
|
+
/* Run Setup sidecar (manual inputs before execution) */
|
|
8375
|
+
.dm-run-setup { display: flex; flex-direction: column; gap: 12px; padding: 12px 14px 14px; min-height: 0; }
|
|
8376
|
+
.dm-run-setup__instructions { margin: 0; font-size: 12px; color: #475569; line-height: 1.45; }
|
|
8377
|
+
.dm-run-setup__fields { display: grid; gap: 10px; }
|
|
8378
|
+
.dm-run-setup__fields .dm-orchestration-config__field { gap: 4px; }
|
|
8379
|
+
.dm-run-setup__fields .dm-orchestration-config__field span { font-size: 11px; font-weight: 650; color: #1f2937; }
|
|
8380
|
+
.dm-run-setup__fields input[type="text"],
|
|
8381
|
+
.dm-run-setup__fields input[type="email"],
|
|
8382
|
+
.dm-run-setup__fields input[type="url"],
|
|
8383
|
+
.dm-run-setup__fields input[type="number"],
|
|
8384
|
+
.dm-run-setup__fields textarea {
|
|
8385
|
+
width: 100%; box-sizing: border-box; border: 1px solid #d1d5db; border-radius: 5px;
|
|
8386
|
+
padding: 6px 8px; font-size: 12px; color: #111827; background: #fff; outline: none;
|
|
8387
|
+
font-family: inherit;
|
|
8388
|
+
}
|
|
8389
|
+
.dm-run-setup__fields input:focus,
|
|
8390
|
+
.dm-run-setup__fields textarea:focus { border-color: #2563eb; box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15); }
|
|
8391
|
+
.dm-run-setup__fields textarea { min-height: 60px; resize: vertical; }
|
|
8392
|
+
.dm-run-setup__checkbox { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: #1f2937; }
|
|
8393
|
+
.dm-run-setup__required { color: #b91c1c; font-style: normal; }
|
|
8394
|
+
.dm-run-setup__help { font-size: 10px; color: #6b7280; }
|
|
8395
|
+
.dm-run-setup__error { font-size: 10px; color: #b91c1c; }
|
|
8396
|
+
.dm-run-setup__hint { margin: 0; font-size: 12px; color: #6b7280; }
|
|
8397
|
+
.dm-run-setup__notice { font-size: 11px; color: #475569; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 5px; padding: 8px 10px; line-height: 1.4; }
|
|
8398
|
+
.dm-run-setup__actions { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
|
|
8399
|
+
.dm-run-setup__actions .dm-btn-outline,
|
|
8400
|
+
.dm-run-setup__actions .dm-workflow-chip-btn { display: inline-flex; align-items: center; gap: 6px; }
|
|
@@ -3,7 +3,7 @@ import workspaceConfig from "../growthub.config.json";
|
|
|
3
3
|
import { readAdapterConfig } from "@/lib/adapters/env";
|
|
4
4
|
import { describeIntegrationAdapter, listGovernedWorkspaceIntegrations } from "@/lib/adapters/integrations";
|
|
5
5
|
import { groupIntegrationsByLane } from "@/lib/domain/integrations";
|
|
6
|
-
import { describePersistenceMode } from "@/lib/workspace-config";
|
|
6
|
+
import { describePersistenceMode, readWorkspaceSourceRecords } from "@/lib/workspace-config";
|
|
7
7
|
import WorkspaceBuilder from "./workspace-builder.jsx";
|
|
8
8
|
|
|
9
9
|
async function Home() {
|
|
@@ -11,10 +11,17 @@ async function Home() {
|
|
|
11
11
|
const integrationAdapter = describeIntegrationAdapter();
|
|
12
12
|
const integrations = await listGovernedWorkspaceIntegrations();
|
|
13
13
|
const persistence = describePersistenceMode();
|
|
14
|
+
let initialSourceRecords = {};
|
|
15
|
+
try {
|
|
16
|
+
initialSourceRecords = (await readWorkspaceSourceRecords()) || {};
|
|
17
|
+
} catch {
|
|
18
|
+
initialSourceRecords = {};
|
|
19
|
+
}
|
|
14
20
|
return (
|
|
15
21
|
<Suspense fallback={null}>
|
|
16
22
|
<WorkspaceBuilder
|
|
17
23
|
initialConfig={workspaceConfig}
|
|
24
|
+
initialSourceRecords={initialSourceRecords}
|
|
18
25
|
adapterConfig={adapterConfig}
|
|
19
26
|
integrationAdapter={integrationAdapter}
|
|
20
27
|
integrationSettings={{ integrations: groupIntegrationsByLane(integrations) }}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Link from "next/link";
|
|
2
|
+
import { Suspense } from "react";
|
|
2
3
|
import { readAdapterConfig } from "@/lib/adapters/env";
|
|
3
4
|
import { describeIntegrationAdapter, listGovernedWorkspaceIntegrations } from "@/lib/adapters/integrations";
|
|
4
5
|
import { groupIntegrationsByLane } from "@/lib/domain/integrations";
|
|
@@ -58,13 +59,15 @@ async function IntegrationsSettingsPage() {
|
|
|
58
59
|
const allRows = [...grouped.dataSources, ...grouped.workspaceIntegrations];
|
|
59
60
|
|
|
60
61
|
return <main className="workspace-builder workspace-settings-page">
|
|
61
|
-
<
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
<Suspense fallback={null}>
|
|
63
|
+
<WorkspaceRail
|
|
64
|
+
workspaceConfig={workspaceConfig}
|
|
65
|
+
authority={adapter.authority}
|
|
66
|
+
managementSlot={(
|
|
67
|
+
<Link className="active" href="/settings/integrations">Integrations</Link>
|
|
68
|
+
)}
|
|
69
|
+
/>
|
|
70
|
+
</Suspense>
|
|
68
71
|
|
|
69
72
|
<section className="workspace-surface">
|
|
70
73
|
<header className="workspace-toolbar">
|