opencroc 1.8.1 → 1.8.3
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/dist/cli/index.js +755 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +128 -1
- package/dist/index.js +548 -0
- package/dist/index.js.map +1 -1
- package/dist/web/dist/assets/main-Ccg3eDNK.js +1 -0
- package/dist/web/dist/assets/office-runtime-B3iNctxE.css +1 -0
- package/dist/web/dist/assets/office-runtime-BsCh82Pj.js +183 -0
- package/dist/web/dist/assets/pixel-page-3BYGm7dH.js +470 -0
- package/dist/web/dist/assets/react-vendor-C8RhVn0h.js +49 -0
- package/dist/web/dist/assets/studio-page-BInoyoV2.css +1 -0
- package/dist/web/dist/assets/studio-page-o3SCvE_v.js +351 -0
- package/dist/web/dist/assets/three-addons-BdrPp04O.js +470 -0
- package/dist/web/dist/assets/three-core-CsxM1PCY.js +4057 -0
- package/dist/web/dist/index.html +15 -0
- package/package.json +11 -2
- package/dist/web/index-studio.html +0 -1644
- package/dist/web/index-v2-pixel.html +0 -1571
- package/dist/web/index.html +0 -573
- package/dist/web/js/agents.js +0 -465
- package/dist/web/js/camera.js +0 -125
- package/dist/web/js/dataviz.js +0 -288
- package/dist/web/js/effects.js +0 -345
- package/dist/web/js/engine.js +0 -489
- package/dist/web/js/office.js +0 -816
- package/dist/web/js/state.js +0 -37
- package/dist/web/js/ui.js +0 -384
- /package/dist/web/{assets → dist}/botreview/char_0.png +0 -0
- /package/dist/web/{assets → dist}/botreview/char_1.png +0 -0
- /package/dist/web/{assets → dist}/botreview/char_2.png +0 -0
- /package/dist/web/{assets → dist}/botreview/coffee-machine.gif +0 -0
- /package/dist/web/{assets → dist}/botreview/server.gif +0 -0
- /package/dist/web/{assets → dist}/botreview/walls.png +0 -0
- /package/dist/web/{assets → dist}/star/desk-v3.webp +0 -0
- /package/dist/web/{assets → dist}/star/office_bg_small.webp +0 -0
- /package/dist/web/{assets → dist}/star/star-idle-v5.png +0 -0
- /package/dist/web/{assets → dist}/star/star-working-spritesheet-grid.webp +0 -0
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/office-runtime-BsCh82Pj.js","assets/react-vendor-C8RhVn0h.js","assets/three-core-CsxM1PCY.js","assets/three-addons-BdrPp04O.js","assets/office-runtime-B3iNctxE.css","assets/pixel-page-3BYGm7dH.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as S,j as s}from"./react-vendor-C8RhVn0h.js";const I="opencroc:route-change",kt={"/index.html":"/","/index-studio.html":"/studio","/index-v2-pixel.html":"/pixel"};function H(a){if(!a)return"/";const[n]=a.split("?"),d=n.startsWith("/")?n:`/${n}`,g=d.length>1&&d.endsWith("/")?d.slice(0,-1):d;return kt[g]||g}function it(){return H(window.location.pathname)}function ot(a,n){const d=H(a),g=it();if(d!==g){const y=n!=null&&n.replace?"replaceState":"pushState";window.history[y]({},"",d)}window.dispatchEvent(new Event(I))}function St(a){return window.addEventListener("popstate",a),window.addEventListener(I,a),()=>{window.removeEventListener("popstate",a),window.removeEventListener(I,a)}}function $t({route:a,children:n}){return S.useEffect(()=>(document.body.dataset.appRoute=a.id,document.body.dataset.routeVariant=a.variant,document.documentElement.dataset.appRoute=a.id,document.documentElement.dataset.routeVariant=a.variant,()=>{delete document.body.dataset.appRoute,delete document.body.dataset.routeVariant,delete document.documentElement.dataset.appRoute,delete document.documentElement.dataset.routeVariant}),[a.id,a.variant]),s.jsx("div",{className:"app-layout","data-route-id":a.id,"data-route-variant":a.variant,"aria-label":a.description,children:n})}const Et="modulepreload",Tt=function(a){return"/dist/"+a},et={},M=function(n,d,g){let y=Promise.resolve();if(d&&d.length>0){document.getElementsByTagName("link");const m=document.querySelector("meta[property=csp-nonce]"),x=(m==null?void 0:m.nonce)||(m==null?void 0:m.getAttribute("nonce"));y=Promise.allSettled(d.map(h=>{if(h=Tt(h),h in et)return;et[h]=!0;const f=h.endsWith(".css"),$=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${h}"]${$}`))return;const b=document.createElement("link");if(b.rel=f?"stylesheet":Et,f||(b.as="script"),b.crossOrigin="",b.href=h,x&&b.setAttribute("nonce",x),document.head.appendChild(b),f)return new Promise((w,P)=>{b.addEventListener("load",w),b.addEventListener("error",()=>P(new Error(`Unable to preload CSS for ${h}`)))})}))}function T(m){const x=new Event("vite:preloadError",{cancelable:!0});if(x.payload=m,window.dispatchEvent(x),!x.defaultPrevented)throw m}return y.then(m=>{for(const x of m||[])x.status==="rejected"&&T(x.reason);return n().catch(T)})},Lt=S.lazy(()=>M(()=>import("./office-runtime-BsCh82Pj.js"),__vite__mapDeps([0,1,2,3,4]))),Pt=S.lazy(()=>M(()=>Promise.resolve().then(()=>zt),void 0)),Rt=S.lazy(()=>M(()=>import("./pixel-page-3BYGm7dH.js"),__vite__mapDeps([5,1]))),st=[{id:"office",path:"/",title:"OpenCroc Studio",navLabel:"3D Office",description:"OpenCroc Studio office runtime view",variant:"office",component:Lt},{id:"studio",path:"/studio",title:"OpenCroc Studio Graph",navLabel:"Knowledge Graph",description:"OpenCroc Studio knowledge graph view",variant:"graph",component:Pt},{id:"pixel",path:"/pixel",title:"OpenCroc Studio Pixel",navLabel:"Pixel View",description:"OpenCroc Studio pixel operations view",variant:"pixel",component:Rt}];function _t(a){const n=H(a);return st.find(d=>d.path===n)||st[0]}function Ct(){return s.jsx("div",{style:{width:"100%",height:"100%",display:"grid",placeItems:"center",background:"#050510",color:"#f1f5f9",fontFamily:"system-ui, sans-serif"},children:"Loading OpenCroc Studio..."})}function Dt(){const a=S.useSyncExternalStore(St,it,()=>"/"),n=_t(a),d=n.component;return S.useEffect(()=>{document.title=n.title,n.path!==a&&ot(n.path,{replace:!0})},[a,n.path,n.title]),s.jsx(S.Suspense,{fallback:s.jsx(Ct,{}),children:s.jsx($t,{route:n,children:s.jsx(d,{})})})}const At=`
|
|
3
|
+
:root {
|
|
4
|
+
--studio-bg: #08101d;
|
|
5
|
+
--studio-panel: rgba(11, 19, 34, 0.84);
|
|
6
|
+
--studio-card: rgba(17, 29, 52, 0.76);
|
|
7
|
+
--studio-hover: rgba(31, 48, 79, 0.82);
|
|
8
|
+
--studio-border: rgba(148, 163, 184, 0.16);
|
|
9
|
+
--studio-accent: #34d399;
|
|
10
|
+
--studio-red: #f87171;
|
|
11
|
+
--studio-orange: #fbbf24;
|
|
12
|
+
--studio-blue: #60a5fa;
|
|
13
|
+
--studio-purple: #a78bfa;
|
|
14
|
+
--studio-text: #e2e8f0;
|
|
15
|
+
--studio-dim: #94a3b8;
|
|
16
|
+
--studio-muted: #64748b;
|
|
17
|
+
--studio-shadow: 0 18px 48px rgba(0, 0, 0, 0.32);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
[data-theme="light"] {
|
|
21
|
+
--studio-bg: #eef4fb;
|
|
22
|
+
--studio-panel: rgba(255, 255, 255, 0.88);
|
|
23
|
+
--studio-card: rgba(248, 250, 252, 0.95);
|
|
24
|
+
--studio-hover: rgba(226, 232, 240, 0.95);
|
|
25
|
+
--studio-border: rgba(100, 116, 139, 0.18);
|
|
26
|
+
--studio-accent: #059669;
|
|
27
|
+
--studio-red: #dc2626;
|
|
28
|
+
--studio-orange: #d97706;
|
|
29
|
+
--studio-blue: #2563eb;
|
|
30
|
+
--studio-purple: #7c3aed;
|
|
31
|
+
--studio-text: #0f172a;
|
|
32
|
+
--studio-dim: #475569;
|
|
33
|
+
--studio-muted: #94a3b8;
|
|
34
|
+
--studio-shadow: 0 18px 48px rgba(15, 23, 42, 0.08);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
html, body, #root { width: 100%; height: 100%; }
|
|
38
|
+
body {
|
|
39
|
+
margin: 0;
|
|
40
|
+
overflow: hidden;
|
|
41
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
42
|
+
background:
|
|
43
|
+
radial-gradient(circle at top left, rgba(52, 211, 153, 0.08), transparent 32%),
|
|
44
|
+
radial-gradient(circle at top right, rgba(96, 165, 250, 0.08), transparent 30%),
|
|
45
|
+
var(--studio-bg);
|
|
46
|
+
color: var(--studio-text);
|
|
47
|
+
}
|
|
48
|
+
.studio-app {
|
|
49
|
+
display: grid;
|
|
50
|
+
grid-template-columns: 300px 1fr 360px;
|
|
51
|
+
height: 100%;
|
|
52
|
+
gap: 10px;
|
|
53
|
+
padding: 10px;
|
|
54
|
+
}
|
|
55
|
+
.studio-shell,
|
|
56
|
+
.studio-panel,
|
|
57
|
+
.studio-main,
|
|
58
|
+
.studio-header,
|
|
59
|
+
.studio-bar {
|
|
60
|
+
border: 1px solid var(--studio-border);
|
|
61
|
+
background: var(--studio-panel);
|
|
62
|
+
backdrop-filter: blur(18px);
|
|
63
|
+
box-shadow: var(--studio-shadow);
|
|
64
|
+
}
|
|
65
|
+
.studio-shell,
|
|
66
|
+
.studio-panel,
|
|
67
|
+
.studio-main { border-radius: 20px; overflow: hidden; }
|
|
68
|
+
.studio-sidebar { display: flex; flex-direction: column; }
|
|
69
|
+
.studio-section { padding: 16px; border-bottom: 1px solid var(--studio-border); }
|
|
70
|
+
.studio-section:last-child { border-bottom: none; }
|
|
71
|
+
.studio-section h3 {
|
|
72
|
+
margin: 0 0 10px;
|
|
73
|
+
font-size: 11px;
|
|
74
|
+
letter-spacing: 0.08em;
|
|
75
|
+
text-transform: uppercase;
|
|
76
|
+
color: var(--studio-dim);
|
|
77
|
+
}
|
|
78
|
+
.studio-input-row,
|
|
79
|
+
.studio-actions,
|
|
80
|
+
.studio-chip-row,
|
|
81
|
+
.studio-header-actions,
|
|
82
|
+
.studio-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
|
|
83
|
+
.studio-input,
|
|
84
|
+
.studio-btn,
|
|
85
|
+
.studio-chip {
|
|
86
|
+
border-radius: 12px;
|
|
87
|
+
border: 1px solid var(--studio-border);
|
|
88
|
+
font: inherit;
|
|
89
|
+
}
|
|
90
|
+
.studio-input {
|
|
91
|
+
width: 100%;
|
|
92
|
+
padding: 10px 12px;
|
|
93
|
+
background: var(--studio-card);
|
|
94
|
+
color: var(--studio-text);
|
|
95
|
+
}
|
|
96
|
+
.studio-btn,
|
|
97
|
+
.studio-chip,
|
|
98
|
+
.studio-tab,
|
|
99
|
+
.snapshot-action {
|
|
100
|
+
cursor: pointer;
|
|
101
|
+
transition: 0.2s ease;
|
|
102
|
+
}
|
|
103
|
+
.studio-btn,
|
|
104
|
+
.studio-chip {
|
|
105
|
+
padding: 9px 14px;
|
|
106
|
+
background: var(--studio-card);
|
|
107
|
+
color: var(--studio-text);
|
|
108
|
+
}
|
|
109
|
+
.studio-btn:hover,
|
|
110
|
+
.studio-chip:hover,
|
|
111
|
+
.studio-list-item:hover,
|
|
112
|
+
.studio-tab:hover,
|
|
113
|
+
.snapshot-action:hover { background: var(--studio-hover); }
|
|
114
|
+
.studio-btn.primary {
|
|
115
|
+
background: color-mix(in srgb, var(--studio-accent) 22%, var(--studio-card));
|
|
116
|
+
border-color: color-mix(in srgb, var(--studio-accent) 42%, var(--studio-border));
|
|
117
|
+
}
|
|
118
|
+
.studio-stat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
|
|
119
|
+
.studio-stat {
|
|
120
|
+
padding: 12px;
|
|
121
|
+
border-radius: 14px;
|
|
122
|
+
border: 1px solid var(--studio-border);
|
|
123
|
+
background: var(--studio-card);
|
|
124
|
+
}
|
|
125
|
+
.studio-stat-label { font-size: 10px; text-transform: uppercase; color: var(--studio-muted); }
|
|
126
|
+
.studio-stat-value { margin-top: 6px; font-size: 22px; font-weight: 700; color: var(--studio-accent); }
|
|
127
|
+
.studio-main { display: flex; flex-direction: column; }
|
|
128
|
+
.studio-header {
|
|
129
|
+
display: flex;
|
|
130
|
+
align-items: center;
|
|
131
|
+
justify-content: space-between;
|
|
132
|
+
gap: 12px;
|
|
133
|
+
margin: 10px;
|
|
134
|
+
padding: 10px;
|
|
135
|
+
border-radius: 18px;
|
|
136
|
+
}
|
|
137
|
+
.studio-tab {
|
|
138
|
+
padding: 8px 12px;
|
|
139
|
+
border-radius: 999px;
|
|
140
|
+
border: 1px solid var(--studio-border);
|
|
141
|
+
background: var(--studio-card);
|
|
142
|
+
color: var(--studio-dim);
|
|
143
|
+
font-size: 12px;
|
|
144
|
+
}
|
|
145
|
+
.studio-tab.active {
|
|
146
|
+
color: var(--studio-text);
|
|
147
|
+
border-color: color-mix(in srgb, var(--studio-accent) 38%, var(--studio-border));
|
|
148
|
+
background: color-mix(in srgb, var(--studio-accent) 14%, var(--studio-card));
|
|
149
|
+
}
|
|
150
|
+
.studio-graph-wrap {
|
|
151
|
+
position: relative;
|
|
152
|
+
flex: 1;
|
|
153
|
+
margin: 0 10px 10px;
|
|
154
|
+
border-radius: 18px;
|
|
155
|
+
overflow: hidden;
|
|
156
|
+
border: 1px solid var(--studio-border);
|
|
157
|
+
background:
|
|
158
|
+
radial-gradient(circle at top, rgba(52, 211, 153, 0.08), transparent 42%),
|
|
159
|
+
linear-gradient(180deg, rgba(15, 23, 42, 0.12), transparent),
|
|
160
|
+
var(--studio-card);
|
|
161
|
+
}
|
|
162
|
+
.studio-welcome,
|
|
163
|
+
.studio-loading,
|
|
164
|
+
.studio-report-view { position: absolute; inset: 0; }
|
|
165
|
+
.studio-welcome,
|
|
166
|
+
.studio-loading {
|
|
167
|
+
display: flex;
|
|
168
|
+
flex-direction: column;
|
|
169
|
+
align-items: center;
|
|
170
|
+
justify-content: center;
|
|
171
|
+
gap: 12px;
|
|
172
|
+
text-align: center;
|
|
173
|
+
padding: 24px;
|
|
174
|
+
}
|
|
175
|
+
.studio-loading.hidden,
|
|
176
|
+
.studio-welcome.hidden,
|
|
177
|
+
.studio-report-view.hidden,
|
|
178
|
+
.studio-empty.hidden { display: none; }
|
|
179
|
+
.studio-hero { font-size: 42px; }
|
|
180
|
+
.studio-empty {
|
|
181
|
+
position: absolute;
|
|
182
|
+
left: 50%;
|
|
183
|
+
top: 50%;
|
|
184
|
+
transform: translate(-50%, -50%);
|
|
185
|
+
padding: 12px 16px;
|
|
186
|
+
border-radius: 999px;
|
|
187
|
+
border: 1px dashed var(--studio-border);
|
|
188
|
+
background: rgba(15, 23, 42, 0.24);
|
|
189
|
+
color: var(--studio-dim);
|
|
190
|
+
}
|
|
191
|
+
.studio-graph-canvas { width: 100%; height: 100%; }
|
|
192
|
+
.studio-report-view {
|
|
193
|
+
overflow: auto;
|
|
194
|
+
padding: 22px 24px 28px;
|
|
195
|
+
background: color-mix(in srgb, var(--studio-bg) 86%, transparent);
|
|
196
|
+
}
|
|
197
|
+
.studio-report-toolbar {
|
|
198
|
+
display: flex;
|
|
199
|
+
align-items: center;
|
|
200
|
+
justify-content: space-between;
|
|
201
|
+
gap: 10px;
|
|
202
|
+
margin-bottom: 18px;
|
|
203
|
+
}
|
|
204
|
+
.studio-chip.active {
|
|
205
|
+
color: var(--studio-text);
|
|
206
|
+
border-color: color-mix(in srgb, var(--studio-accent) 36%, var(--studio-border));
|
|
207
|
+
}
|
|
208
|
+
.studio-bar {
|
|
209
|
+
display: flex;
|
|
210
|
+
gap: 8px;
|
|
211
|
+
padding: 10px;
|
|
212
|
+
margin: 0 10px 10px;
|
|
213
|
+
border-radius: 18px;
|
|
214
|
+
overflow-x: auto;
|
|
215
|
+
}
|
|
216
|
+
.agent-pill {
|
|
217
|
+
display: inline-flex;
|
|
218
|
+
align-items: center;
|
|
219
|
+
gap: 8px;
|
|
220
|
+
min-width: 120px;
|
|
221
|
+
padding: 8px 12px;
|
|
222
|
+
border-radius: 999px;
|
|
223
|
+
background: var(--studio-card);
|
|
224
|
+
border: 1px solid var(--studio-border);
|
|
225
|
+
font-size: 12px;
|
|
226
|
+
}
|
|
227
|
+
.agent-status-dot {
|
|
228
|
+
width: 9px;
|
|
229
|
+
height: 9px;
|
|
230
|
+
border-radius: 50%;
|
|
231
|
+
background: var(--studio-muted);
|
|
232
|
+
}
|
|
233
|
+
.agent-status-dot.working,
|
|
234
|
+
.agent-status-dot.testing { background: var(--studio-accent); }
|
|
235
|
+
.agent-status-dot.error,
|
|
236
|
+
.agent-status-dot.failed { background: var(--studio-red); }
|
|
237
|
+
.agent-status-dot.thinking { background: var(--studio-purple); }
|
|
238
|
+
.studio-panel { display: flex; flex-direction: column; }
|
|
239
|
+
.studio-panel-head {
|
|
240
|
+
display: flex;
|
|
241
|
+
align-items: center;
|
|
242
|
+
justify-content: space-between;
|
|
243
|
+
padding: 16px;
|
|
244
|
+
border-bottom: 1px solid var(--studio-border);
|
|
245
|
+
}
|
|
246
|
+
.studio-panel-body { flex: 1; overflow: auto; padding: 16px; }
|
|
247
|
+
.studio-list,
|
|
248
|
+
.snapshot-list { display: flex; flex-direction: column; gap: 8px; }
|
|
249
|
+
.studio-list-item,
|
|
250
|
+
.snapshot-item {
|
|
251
|
+
padding: 12px;
|
|
252
|
+
border-radius: 14px;
|
|
253
|
+
border: 1px solid var(--studio-border);
|
|
254
|
+
background: var(--studio-card);
|
|
255
|
+
}
|
|
256
|
+
.studio-list-item.active {
|
|
257
|
+
border-color: color-mix(in srgb, var(--studio-accent) 40%, var(--studio-border));
|
|
258
|
+
}
|
|
259
|
+
.snapshot-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
|
|
260
|
+
.snapshot-action {
|
|
261
|
+
padding: 5px 9px;
|
|
262
|
+
border-radius: 999px;
|
|
263
|
+
border: 1px solid var(--studio-border);
|
|
264
|
+
background: transparent;
|
|
265
|
+
color: var(--studio-dim);
|
|
266
|
+
font-size: 11px;
|
|
267
|
+
}
|
|
268
|
+
.snapshot-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
|
|
269
|
+
.snapshot-tag {
|
|
270
|
+
padding: 3px 8px;
|
|
271
|
+
border-radius: 999px;
|
|
272
|
+
background: color-mix(in srgb, var(--studio-accent) 14%, transparent);
|
|
273
|
+
color: var(--studio-accent);
|
|
274
|
+
font-size: 11px;
|
|
275
|
+
}
|
|
276
|
+
.studio-tooltip {
|
|
277
|
+
position: fixed;
|
|
278
|
+
z-index: 80;
|
|
279
|
+
display: none;
|
|
280
|
+
padding: 8px 10px;
|
|
281
|
+
border-radius: 12px;
|
|
282
|
+
border: 1px solid var(--studio-border);
|
|
283
|
+
background: rgba(10, 15, 26, 0.94);
|
|
284
|
+
color: #e2e8f0;
|
|
285
|
+
font-size: 12px;
|
|
286
|
+
pointer-events: none;
|
|
287
|
+
}
|
|
288
|
+
.studio-tooltip.visible { display: block; }
|
|
289
|
+
.studio-panel-body h1,
|
|
290
|
+
.studio-panel-body h2,
|
|
291
|
+
.studio-panel-body h3 { margin: 0 0 12px; }
|
|
292
|
+
.studio-panel-body p,
|
|
293
|
+
.studio-panel-body li,
|
|
294
|
+
.studio-panel-body code,
|
|
295
|
+
.studio-panel-body pre { color: var(--studio-dim); line-height: 1.7; }
|
|
296
|
+
.studio-panel-body pre,
|
|
297
|
+
.studio-report-block {
|
|
298
|
+
border-radius: 14px;
|
|
299
|
+
border: 1px solid var(--studio-border);
|
|
300
|
+
background: var(--studio-card);
|
|
301
|
+
padding: 12px;
|
|
302
|
+
overflow: auto;
|
|
303
|
+
}
|
|
304
|
+
@media (max-width: 1280px) {
|
|
305
|
+
.studio-app { grid-template-columns: 280px 1fr 320px; }
|
|
306
|
+
}
|
|
307
|
+
@media (max-width: 1080px) {
|
|
308
|
+
.studio-app { grid-template-columns: 1fr; }
|
|
309
|
+
}
|
|
310
|
+
`;function Mt(){return S.useEffect(()=>{let a,n=!1;return M(async()=>{const{mountStudioRuntime:d}=await Promise.resolve().then(()=>It);return{mountStudioRuntime:d}},void 0).then(({mountStudioRuntime:d})=>d()).then(d=>{if(n){d();return}a=d}),()=>{n=!0,a==null||a()}},[]),s.jsxs(s.Fragment,{children:[s.jsx("style",{children:At}),s.jsxs("div",{className:"studio-app",children:[s.jsxs("aside",{className:"studio-shell studio-sidebar",children:[s.jsxs("section",{className:"studio-section",children:[s.jsx("h3",{children:"Scan Target"}),s.jsx("div",{className:"studio-input-row",children:s.jsx("input",{id:"scan-input",className:"studio-input",placeholder:"./backend or github.com/owner/repo"})}),s.jsx("div",{className:"studio-actions",style:{marginTop:10},children:s.jsx("button",{id:"scan-btn",className:"studio-btn primary",type:"button",children:"Start Scan"})})]}),s.jsxs("section",{className:"studio-section",id:"stats-section",children:[s.jsx("h3",{children:"Project Summary"}),s.jsxs("div",{className:"studio-stat-grid",children:[s.jsxs("div",{className:"studio-stat",children:[s.jsx("div",{className:"studio-stat-label",children:"Modules"}),s.jsx("div",{className:"studio-stat-value",id:"stat-modules",children:"0"})]}),s.jsxs("div",{className:"studio-stat",children:[s.jsx("div",{className:"studio-stat-label",children:"APIs"}),s.jsx("div",{className:"studio-stat-value",id:"stat-apis",children:"0"})]}),s.jsxs("div",{className:"studio-stat",children:[s.jsx("div",{className:"studio-stat-label",children:"Models"}),s.jsx("div",{className:"studio-stat-value",id:"stat-models",children:"0"})]}),s.jsxs("div",{className:"studio-stat",children:[s.jsx("div",{className:"studio-stat-label",children:"Risks"}),s.jsx("div",{className:"studio-stat-value",id:"stat-risks",children:"0"})]})]})]}),s.jsxs("section",{className:"studio-section",children:[s.jsx("h3",{children:"Node Types"}),s.jsx("div",{id:"node-type-list",className:"studio-list"})]}),s.jsxs("section",{className:"studio-section",children:[s.jsx("h3",{children:"Snapshots"}),s.jsx("input",{id:"snapshot-search",className:"studio-input",placeholder:"Search snapshots"}),s.jsx("div",{id:"snapshot-tag-filters",className:"studio-chip-row",style:{marginTop:10}}),s.jsx("div",{id:"snapshot-list",className:"snapshot-list",style:{marginTop:10}})]}),s.jsxs("section",{className:"studio-section",style:{flex:1,overflow:"auto"},children:[s.jsx("h3",{children:"Risks"}),s.jsx("div",{id:"risk-list",className:"studio-list"})]})]}),s.jsxs("main",{className:"studio-main",children:[s.jsxs("div",{className:"studio-header",children:[s.jsxs("div",{className:"studio-tabs",children:[s.jsx("button",{className:"studio-tab","data-view":"office",type:"button",children:"3D Office"}),s.jsx("button",{className:"studio-tab active","data-view":"graph",type:"button",children:"Knowledge Graph"}),s.jsx("button",{className:"studio-tab","data-perspective":"developer",type:"button",children:"Developer"}),s.jsx("button",{className:"studio-tab","data-perspective":"architect",type:"button",children:"Architect"}),s.jsx("button",{className:"studio-tab","data-perspective":"tester",type:"button",children:"Tester"}),s.jsx("button",{className:"studio-tab","data-perspective":"product",type:"button",children:"Product"}),s.jsx("button",{className:"studio-tab","data-perspective":"student",type:"button",children:"Student"}),s.jsx("button",{className:"studio-tab","data-perspective":"executive",type:"button",children:"Executive"})]}),s.jsxs("div",{className:"studio-header-actions",children:[s.jsx("button",{id:"focus-btn",className:"studio-btn",type:"button",children:"Focus Node"}),s.jsx("button",{id:"theme-btn",className:"studio-btn",type:"button",children:"Theme"}),s.jsx("button",{id:"panel-btn",className:"studio-btn",type:"button",children:"Toggle Panel"})]})]}),s.jsxs("div",{className:"studio-graph-wrap",children:[s.jsxs("div",{id:"welcome",className:"studio-welcome",children:[s.jsx("div",{className:"studio-hero",children:"OpenCroc"}),s.jsx("h1",{children:"Studio Graph Workspace"}),s.jsx("p",{children:"Scan a codebase to populate the knowledge graph, risk list, and perspective reports."}),s.jsxs("div",{className:"studio-input-row",style:{maxWidth:560},children:[s.jsx("input",{id:"welcome-input",className:"studio-input",placeholder:"./backend or github.com/owner/repo"}),s.jsx("button",{id:"welcome-scan-btn",className:"studio-btn primary",type:"button",children:"Analyze"})]})]}),s.jsxs("div",{id:"loading",className:"studio-loading hidden",children:[s.jsx("div",{className:"studio-hero",children:"Scanning"}),s.jsx("div",{id:"loading-text",children:"Preparing analysis..."}),s.jsx("div",{id:"loading-detail",style:{color:"var(--studio-dim)"}})]}),s.jsx("svg",{id:"graph-canvas",className:"studio-graph-canvas"}),s.jsx("div",{id:"graph-empty",className:"studio-empty hidden",children:"No graph yet. Run a scan to begin."}),s.jsxs("div",{id:"report-view",className:"studio-report-view hidden",children:[s.jsxs("div",{id:"report-toolbar",className:"studio-report-toolbar",children:[s.jsxs("div",{className:"studio-chip-row",children:[s.jsx("button",{className:"studio-chip active","data-mode":"markdown",type:"button",children:"Markdown"}),s.jsx("button",{className:"studio-chip","data-mode":"mermaid",type:"button",children:"Mermaid"}),s.jsx("button",{className:"studio-chip","data-mode":"raw",type:"button",children:"Raw"})]}),s.jsx("button",{id:"copy-report-btn",className:"studio-btn",type:"button",children:"Copy"})]}),s.jsx("div",{id:"report-content"})]})]}),s.jsxs("div",{className:"studio-bar",id:"agent-bar",children:[s.jsxs("div",{className:"agent-pill",children:[s.jsx("span",{className:"agent-status-dot idle",id:"agent-parser"}),s.jsx("span",{children:"Parser"})]}),s.jsxs("div",{className:"agent-pill",children:[s.jsx("span",{className:"agent-status-dot idle",id:"agent-analyzer"}),s.jsx("span",{children:"Analyzer"})]}),s.jsxs("div",{className:"agent-pill",children:[s.jsx("span",{className:"agent-status-dot idle",id:"agent-planner"}),s.jsx("span",{children:"Planner"})]}),s.jsxs("div",{className:"agent-pill",children:[s.jsx("span",{className:"agent-status-dot idle",id:"agent-tester"}),s.jsx("span",{children:"Tester"})]}),s.jsxs("div",{className:"agent-pill",children:[s.jsx("span",{className:"agent-status-dot idle",id:"agent-healer"}),s.jsx("span",{children:"Healer"})]}),s.jsxs("div",{className:"agent-pill",children:[s.jsx("span",{className:"agent-status-dot idle",id:"agent-reporter"}),s.jsx("span",{children:"Reporter"})]})]})]}),s.jsxs("aside",{className:"studio-panel",id:"panel",children:[s.jsxs("div",{className:"studio-panel-head",children:[s.jsx("h2",{id:"panel-title",style:{margin:0},children:"Details"}),s.jsx("button",{id:"panel-close-btn",className:"studio-btn",type:"button",children:"Close"})]}),s.jsx("div",{id:"panel-body",className:"studio-panel-body",children:s.jsx("p",{children:"Select a node, risk, or perspective report to inspect more details."})})]})]}),s.jsx("div",{id:"tooltip",className:"studio-tooltip"})]})}const zt=Object.freeze(Object.defineProperty({__proto__:null,default:Mt},Symbol.toStringTag,{value:"Module"}));function r(a){const n=document.getElementById(a);if(!n)throw new Error(`Missing element #${a}`);return n}function l(a){return String(a??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}async function v(a,n){const d=await fetch(a,n);if(!d.ok)throw new Error(`${d.status} ${d.statusText}`);return d.json()}async function Ot(){const a=[],n=new Map;let d={nodes:[],edges:[]},g=null,y=[],T=[],m="",x="",h=null,f="",$=null,b=0,w=null,P="markdown",D="";const G=new Map,N=r("graph-canvas"),L=r("panel"),R=r("tooltip");function u(t,e,i){t.addEventListener(e,i),a.push(()=>t.removeEventListener(e,i))}function U(t){document.documentElement.setAttribute("data-theme",t),localStorage.setItem("opencroc-studio-theme",t)}function V(t,e=""){r("loading").classList.remove("hidden"),r("loading-text").textContent=t,r("loading-detail").textContent=e}function at(){r("loading").classList.add("hidden")}function nt(){var t;r("report-view").classList.add("hidden"),N.style.display="",r("graph-empty").classList.toggle("hidden",!!((t=d.nodes)!=null&&t.length)),document.querySelectorAll(".studio-tab").forEach(e=>{e.classList.toggle("active",e.dataset.view==="graph")})}function rt(){r("report-view").classList.remove("hidden"),N.style.display="none",r("graph-empty").classList.add("hidden")}function dt(){const t=(g==null?void 0:g.stats)||{};r("stat-modules").textContent=String(t.moduleCount||0),r("stat-apis").textContent=String(t.functionCount||0),r("stat-models").textContent=String(t.classCount||0),r("stat-risks").textContent=String((g==null?void 0:g.risks)||0)}function z(){const t=r("node-type-list"),e=new Map;for(const i of d.nodes||[]){const o=String(i.type||"unknown");e.set(o,(e.get(o)||0)+1)}t.innerHTML=Array.from(e.entries()).sort((i,o)=>o[1]-i[1]).map(([i,o])=>`<button class="studio-list-item${f===i?" active":""}" data-type="${l(i)}" type="button"><strong>${l(i)}</strong><div style="margin-top:6px;color:var(--studio-dim);font-size:12px">${o} nodes</div></button>`).join("")}function lt(){const t=r("risk-list");if(!y.length){t.innerHTML='<div class="studio-list-item">No risks detected yet.</div>';return}t.innerHTML=y.map((e,i)=>{const o=String(e.severity||"info");return`<button class="studio-list-item" data-risk-index="${i}" type="button"><strong style="color:${o==="critical"||o==="high"?"var(--studio-red)":o==="medium"?"var(--studio-orange)":"var(--studio-blue)"}">${l(e.title||e.message||`Risk ${i+1}`)}</strong><div style="margin-top:6px;color:var(--studio-dim);font-size:12px">${l(e.filePath||e.module||o)}</div></button>`}).join("")}function ct(){return T.filter(t=>{var c;const e=!m||((c=t.tags)==null?void 0:c.includes(m)),i=`${t.name||""} ${t.source||""}`.toLowerCase(),o=!x||i.includes(x.toLowerCase());return e&&o})}function q(){const t=r("snapshot-tag-filters"),i=["all",...Array.from(new Set(T.flatMap(o=>o.tags||[]))).sort()];t.innerHTML=i.map(o=>`<button class="studio-chip${!m&&o==="all"||m===o?" active":""}" data-snapshot-filter="${l(o)}" type="button">${o==="all"?"All":l(o)}</button>`).join("")}function O(){const t=r("snapshot-list"),e=ct();if(!e.length){t.innerHTML='<div class="snapshot-item">No snapshots found.</div>';return}t.innerHTML=e.map(i=>{const o=i.tags||[];return`
|
|
311
|
+
<div class="snapshot-item">
|
|
312
|
+
<strong>${l(i.name||i.id)}</strong>
|
|
313
|
+
<div style="margin-top:6px;color:var(--studio-dim);font-size:12px">${l(i.createdAt||"")}</div>
|
|
314
|
+
<div style="margin-top:4px;color:var(--studio-dim);font-size:12px">${l(i.source||"")}</div>
|
|
315
|
+
<div class="snapshot-tags">${o.map(c=>`<span class="snapshot-tag">${l(c)}</span>`).join("")}</div>
|
|
316
|
+
<div class="snapshot-actions">
|
|
317
|
+
<button class="snapshot-action" data-snapshot-action="restore" data-snapshot-id="${l(i.id)}" type="button">Restore</button>
|
|
318
|
+
<button class="snapshot-action" data-snapshot-action="pin" data-snapshot-id="${l(i.id)}" data-pinned="${i.pinned?"1":"0"}" type="button">${i.pinned?"Unpin":"Pin"}</button>
|
|
319
|
+
<button class="snapshot-action" data-snapshot-action="rename" data-snapshot-id="${l(i.id)}" type="button">Rename</button>
|
|
320
|
+
<button class="snapshot-action" data-snapshot-action="delete" data-snapshot-id="${l(i.id)}" type="button">Delete</button>
|
|
321
|
+
</div>
|
|
322
|
+
</div>
|
|
323
|
+
`}).join("")}function F(t,e){r("panel-title").textContent=t,r("panel-body").innerHTML=e,L.style.display=""}async function J(t){h=t;let e=t;try{e=await v(`/api/studio/node/${encodeURIComponent(String(t.id))}`)}catch{}F(String(e.label||e.id||"Node Detail"),`
|
|
324
|
+
<h3>${l(e.label||e.id||"Node")}</h3>
|
|
325
|
+
<p><strong>Type:</strong> ${l(e.type||"unknown")}</p>
|
|
326
|
+
<p><strong>Module:</strong> ${l(e.module||"-")}</p>
|
|
327
|
+
<p><strong>Status:</strong> ${l(e.status||"-")}</p>
|
|
328
|
+
<div class="studio-report-block"><pre>${l(JSON.stringify(e,null,2))}</pre></div>
|
|
329
|
+
`)}function ut(t){const e=y[t];e&&F(String(e.title||`Risk ${t+1}`),`
|
|
330
|
+
<p><strong>Severity:</strong> ${l(e.severity||"unknown")}</p>
|
|
331
|
+
<p><strong>Location:</strong> ${l(e.filePath||e.module||"-")}</p>
|
|
332
|
+
<div class="studio-report-block"><pre>${l(JSON.stringify(e,null,2))}</pre></div>
|
|
333
|
+
`)}function pt(t,e){R.innerHTML=`<strong>${l(e.label||e.id)}</strong><div style="margin-top:4px">${l(e.type||"unknown")}</div>`,R.classList.add("visible"),R.style.left=`${t.clientX+12}px`,R.style.top=`${t.clientY+12}px`}function W(){R.classList.remove("visible")}function mt(){n.clear();const t=N.getBoundingClientRect(),e=t.width||960,i=t.height||720,o=(d.nodes||[]).filter(p=>!f||p.type===f),c=o.filter(p=>p.type==="module"),k=o.filter(p=>p.type!=="module");c.forEach((p,E)=>{const _=E/Math.max(c.length,1)*Math.PI*2,j=e/2+Math.cos(_)*Math.min(e,i)*.28,A=i/2+Math.sin(_)*Math.min(e,i)*.28;n.set(String(p.id),{x:j,y:A,node:p})}),k.forEach((p,E)=>{const _=c.find(tt=>tt.label===p.module||tt.id===p.module),j=_?n.get(String(_.id)):void 0,A=E/Math.max(k.length,1)*Math.PI*2,Z=j?84+E%5*16:Math.min(e,i)*.16,jt=((j==null?void 0:j.x)||e/2)+Math.cos(A)*Z,Nt=((j==null?void 0:j.y)||i/2)+Math.sin(A)*Z;n.set(String(p.id),{x:jt,y:Nt,node:p})})}function C(){mt();const t=(d.edges||[]).filter(e=>n.has(String(e.source))&&n.has(String(e.target)));N.setAttribute("viewBox",`0 0 ${N.clientWidth||960} ${N.clientHeight||720}`),N.innerHTML=`
|
|
334
|
+
<defs>
|
|
335
|
+
<linearGradient id="studio-edge" x1="0" y1="0" x2="1" y2="1">
|
|
336
|
+
<stop offset="0%" stop-color="rgba(96,165,250,0.45)" />
|
|
337
|
+
<stop offset="100%" stop-color="rgba(52,211,153,0.22)" />
|
|
338
|
+
</linearGradient>
|
|
339
|
+
</defs>
|
|
340
|
+
${t.map(e=>{const i=n.get(String(e.source)),o=n.get(String(e.target));return`<line x1="${i==null?void 0:i.x}" y1="${i==null?void 0:i.y}" x2="${o==null?void 0:o.x}" y2="${o==null?void 0:o.y}" stroke="url(#studio-edge)" stroke-width="1.4" opacity="0.8" />`}).join("")}
|
|
341
|
+
${Array.from(n.entries()).map(([e,i])=>{const o=i.node,c=o.type==="module"?"var(--studio-purple)":o.type==="api"?"var(--studio-orange)":o.type==="model"?"var(--studio-accent)":"var(--studio-blue)",k=o.type==="module"?16:10,p=(h==null?void 0:h.id)===o.id?"var(--studio-accent)":"rgba(255,255,255,0.16)";return`
|
|
342
|
+
<g class="studio-node" data-node-id="${l(e)}" style="cursor:pointer">
|
|
343
|
+
<circle cx="${i.x}" cy="${i.y}" r="${k}" fill="${c}" stroke="${p}" stroke-width="2" opacity="0.92" />
|
|
344
|
+
<text x="${i.x}" y="${i.y+k+16}" text-anchor="middle" font-size="${o.type==="module"?12:10}" fill="var(--studio-text)">${l(o.label||o.id)}</text>
|
|
345
|
+
</g>
|
|
346
|
+
`}).join("")}
|
|
347
|
+
`,r("graph-empty").classList.toggle("hidden",n.size>0),r("welcome").classList.toggle("hidden",n.size>0),N.querySelectorAll(".studio-node").forEach(e=>{const i=e.dataset.nodeId||"",o=n.get(i);o&&(u(e,"click",()=>void J(o.node)),u(e,"mouseenter",c=>pt(c,o.node)),u(e,"mouseleave",W))})}async function ht(){d=await v("/api/studio/graph"),z(),C()}async function gt(){y=await v("/api/studio/risks"),lt()}async function xt(){g=await v("/api/studio/summary"),dt()}async function B(){T=await v("/api/studio/snapshots"),q(),O()}async function K(){await Promise.all([ht(),gt(),xt(),B()])}async function Y(t){V("Scanning project...",t);try{await v("/api/studio/scan",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:t})}),await K()}finally{at()}}async function bt(t){const e=G.get(t);if(e)return e;const i=await v(`/api/studio/report/${t}`);return G.set(t,i),i}async function vt(){const t=window;return t.mermaid?t.mermaid:(t.__mermaidPromise||(t.__mermaidPromise=new Promise((e,i)=>{const o=document.createElement("script");o.src="https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js",o.onload=()=>e(window.mermaid),o.onerror=()=>i(new Error("Failed to load Mermaid")),document.head.appendChild(o)})),t.__mermaidPromise)}async function ft(){if(!r("report-content").querySelector(".mermaid"))return;const t=await vt();t.initialize({startOnLoad:!1,securityLevel:"loose",theme:"default"}),await t.run({querySelector:".mermaid"})}function yt(t){return l(t||"").replace(/^### (.+)$/gm,"<h3>$1</h3>").replace(/^## (.+)$/gm,"<h2>$1</h2>").replace(/^# (.+)$/gm,"<h1>$1</h1>").replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>").replace(/`([^`]+)`/g,"<code>$1</code>").replace(/^- (.+)$/gm,"<li>$1</li>").replace(/(<li>.*<\/li>)/gs,"<ul>$1</ul>").replace(/\n/g,"<br />")}async function Q(){if(!w)return;const t=r("report-content");if(P==="raw"){t.innerHTML=`<div class="studio-report-block"><pre>${l(JSON.stringify(w,null,2))}</pre></div>`;return}if(P==="mermaid"){const e=(w.sections||[]).filter(i=>{var o,c;return((o=i.visualization)==null?void 0:o.type)==="mermaid"&&((c=i.visualization)==null?void 0:c.data)}).map(i=>`<h3>${l(i.heading)}</h3><div class="studio-report-block"><pre class="mermaid">${l(i.visualization.data)}</pre></div>`).join("");t.innerHTML=e||"<p>No Mermaid sections available for this perspective.</p>",await ft();return}t.innerHTML=`
|
|
348
|
+
<h1>${l(w.title||D)}</h1>
|
|
349
|
+
<p>${l(w.summary||"")}</p>
|
|
350
|
+
${(w.sections||[]).map(e=>{var o;const i=(o=e.visualization)!=null&&o.data?`<div class="studio-report-block"><pre>${l(e.visualization.data)}</pre></div>`:"";return`<section style="margin-top:24px"><h2>${l(e.heading)}</h2><div>${yt(e.content||"")}</div>${i}</section>`}).join("")}
|
|
351
|
+
`}function X(){const t=location.protocol==="https:"?"wss:":"ws:";$=new WebSocket(`${t}//${location.host}/ws`),$.onmessage=e=>{var i,o;try{const c=JSON.parse(e.data);if(c.type==="graph:update"&&(d=c.payload,z(),C()),c.type==="agent:update"){const k={"parser-croc":"agent-parser","analyzer-croc":"agent-analyzer","planner-croc":"agent-planner","tester-croc":"agent-tester","healer-croc":"agent-healer","reporter-croc":"agent-reporter"};for(const p of c.payload||[]){const E=k[p.id]?document.getElementById(k[p.id]):null;E&&(E.className=`agent-status-dot ${p.status||"idle"}`)}}c.type==="scan:progress"&&V(((i=c.payload)==null?void 0:i.phase)||"Scanning...",((o=c.payload)==null?void 0:o.detail)||"")}catch{}},$.onclose=()=>{b=window.setTimeout(X,3e3)}}async function wt(t,e,i){if(t==="restore"&&await v(`/api/studio/snapshots/${encodeURIComponent(e)}/load`,{method:"POST"}),t==="pin"&&await v(`/api/studio/snapshots/${encodeURIComponent(e)}/pin`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:!i})}),t==="rename"){const o=window.prompt("Snapshot name");if(!o)return;await v(`/api/studio/snapshots/${encodeURIComponent(e)}/rename`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:o})})}t==="delete"&&await v(`/api/studio/snapshots/${encodeURIComponent(e)}/delete`,{method:"POST"}),await B()}u(r("scan-btn"),"click",()=>{const t=r("scan-input").value.trim();t&&Y(t)}),u(r("welcome-scan-btn"),"click",()=>{const t=r("welcome-input").value.trim();t&&Y(t)}),u(r("theme-btn"),"click",()=>{const t=document.documentElement.getAttribute("data-theme")==="light"?"dark":"light";U(t)}),u(r("panel-btn"),"click",()=>{L.style.display=L.style.display==="none"?"":"none"}),u(r("panel-close-btn"),"click",()=>{L.style.display="none"}),u(r("focus-btn"),"click",()=>{h&&J(h)}),u(r("snapshot-search"),"input",t=>{x=t.target.value,O()}),u(r("snapshot-tag-filters"),"click",t=>{const e=t.target.closest("[data-snapshot-filter]");if(!e)return;const i=e.dataset.snapshotFilter||"";m=i==="all"?"":i,q(),O()}),u(r("snapshot-list"),"click",t=>{const e=t.target.closest("[data-snapshot-action]");e&&wt(e.dataset.snapshotAction||"",e.dataset.snapshotId||"",e.dataset.pinned==="1")}),u(r("node-type-list"),"click",t=>{const e=t.target.closest("[data-type]");if(!e)return;const i=e.dataset.type||"";f=f===i?"":i,z(),C()}),u(r("risk-list"),"click",t=>{const e=t.target.closest("[data-risk-index]");e&&ut(Number(e.dataset.riskIndex))}),document.querySelectorAll(".studio-tab").forEach(t=>{u(t,"click",async()=>{if(t.dataset.view==="office"){ot("/");return}if(t.dataset.view==="graph"){nt();return}const e=t.dataset.perspective;e&&(D=e,w=await bt(e),document.querySelectorAll(".studio-tab").forEach(i=>{i.classList.toggle("active",i===t)}),rt(),await Q())})}),document.querySelectorAll("[data-mode]").forEach(t=>{u(t,"click",async()=>{P=t.dataset.mode||"markdown",document.querySelectorAll("[data-mode]").forEach(e=>{e.classList.toggle("active",e===t)}),await Q()})}),u(r("copy-report-btn"),"click",async()=>{const t=r("report-content").innerText;await navigator.clipboard.writeText(t)}),u(window,"resize",C),u(document,"keydown",t=>{t.key==="Escape"&&(W(),L.style.display="none")}),U(localStorage.getItem("opencroc-studio-theme")||"dark"),L.style.display="";try{await K()}catch{r("welcome").classList.remove("hidden"),r("graph-empty").classList.remove("hidden")}return X(),()=>{a.forEach(t=>t()),a.length=0,$&&$.close(),window.clearTimeout(b)}}const It=Object.freeze(Object.defineProperty({__proto__:null,mountStudioRuntime:Ot},Symbol.toStringTag,{value:"Module"}));export{Dt as A,M as _,ot as n};
|