ltcai 2.2.7 → 3.0.1
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/README.md +63 -32
- package/docs/CHANGELOG.md +82 -0
- package/docs/V3_BACKEND_ARCHITECTURE.md +138 -0
- package/docs/V3_FRONTEND.md +136 -0
- package/knowledge_graph.py +649 -21
- package/latticeai/__init__.py +1 -1
- package/latticeai/api/admin.py +47 -0
- package/latticeai/api/agents.py +54 -31
- package/latticeai/api/auth.py +1 -1
- package/latticeai/api/chat.py +10 -2
- package/latticeai/api/search.py +236 -0
- package/latticeai/api/static_routes.py +11 -2
- package/latticeai/core/config.py +16 -0
- package/latticeai/core/embedding_providers.py +502 -0
- package/latticeai/core/local_embeddings.py +86 -0
- package/latticeai/core/workspace_os.py +1 -1
- package/latticeai/server_app.py +49 -1
- package/latticeai/services/agent_runtime.py +245 -0
- package/latticeai/services/search_service.py +346 -0
- package/package.json +6 -4
- package/static/account.html +9 -9
- package/static/activity.html +4 -4
- package/static/admin.html +8 -8
- package/static/agents.html +4 -4
- package/static/chat.html +10 -10
- package/static/css/reference/account.css +137 -1
- package/static/css/reference/chat.css +31 -37
- package/static/css/responsive.css +42 -0
- package/static/css/tokens.css +125 -130
- package/static/graph.html +9 -9
- package/static/manifest.json +3 -3
- package/static/plugins.html +4 -4
- package/static/scripts/account.js +4 -4
- package/static/scripts/chat.js +40 -8
- package/static/scripts/workspace.js +78 -0
- package/static/v3/css/lattice.base.css +128 -0
- package/static/v3/css/lattice.components.css +447 -0
- package/static/v3/css/lattice.shell.css +407 -0
- package/static/v3/css/lattice.tokens.css +132 -0
- package/static/v3/css/lattice.views.css +277 -0
- package/static/v3/index.html +40 -0
- package/static/v3/js/app.js +26 -0
- package/static/v3/js/core/api.js +327 -0
- package/static/v3/js/core/components.js +215 -0
- package/static/v3/js/core/dom.js +148 -0
- package/static/v3/js/core/fixtures.js +171 -0
- package/static/v3/js/core/router.js +37 -0
- package/static/v3/js/core/routes.js +73 -0
- package/static/v3/js/core/shell.js +363 -0
- package/static/v3/js/core/store.js +113 -0
- package/static/v3/js/views/admin-audit.js +185 -0
- package/static/v3/js/views/admin-permissions.js +178 -0
- package/static/v3/js/views/admin-policies.js +103 -0
- package/static/v3/js/views/admin-private-vpc.js +138 -0
- package/static/v3/js/views/admin-security.js +181 -0
- package/static/v3/js/views/admin-users.js +168 -0
- package/static/v3/js/views/agents.js +194 -0
- package/static/v3/js/views/chat.js +450 -0
- package/static/v3/js/views/files.js +180 -0
- package/static/v3/js/views/home.js +119 -0
- package/static/v3/js/views/hybrid-search.js +195 -0
- package/static/v3/js/views/knowledge-graph.js +238 -0
- package/static/v3/js/views/models.js +247 -0
- package/static/v3/js/views/my-computer.js +237 -0
- package/static/v3/js/views/pipeline.js +161 -0
- package/static/v3/js/views/settings.js +258 -0
- package/static/workflows.html +4 -4
- package/static/workspace.css +340 -2
- package/static/workspace.html +43 -24
package/static/activity.html
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content" />
|
|
6
6
|
<title>Realtime Activity — Lattice AI</title>
|
|
7
|
-
<script src="/static/scripts/ux.js?v=
|
|
8
|
-
<link rel="stylesheet" href="/static/css/tokens.css?v=
|
|
9
|
-
<link rel="stylesheet" href="/static/platform.css?v=
|
|
10
|
-
<link rel="stylesheet" href="/static/css/responsive.css?v=
|
|
7
|
+
<script src="/static/scripts/ux.js?v=3.0.0"></script>
|
|
8
|
+
<link rel="stylesheet" href="/static/css/tokens.css?v=3.0.0" />
|
|
9
|
+
<link rel="stylesheet" href="/static/platform.css?v=3.0.0" />
|
|
10
|
+
<link rel="stylesheet" href="/static/css/responsive.css?v=3.0.0" />
|
|
11
11
|
</head>
|
|
12
12
|
<body>
|
|
13
13
|
<main>
|
package/static/admin.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta charset="UTF-8">
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content">
|
|
7
7
|
<title>Lattice AI Admin</title>
|
|
8
|
-
<script src="/static/scripts/ux.js?v=
|
|
8
|
+
<script src="/static/scripts/ux.js?v=3.0.0"></script>
|
|
9
9
|
<link rel="manifest" href="/manifest.json">
|
|
10
10
|
<meta name="theme-color" content="#f3ecff">
|
|
11
11
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
16
16
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap">
|
|
17
17
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@latest/tabler-icons.min.css">
|
|
18
|
-
<link rel="stylesheet" href="/static/css/tokens.css?v=
|
|
19
|
-
<link rel="stylesheet" href="/static/css/reference/base.css?v=
|
|
20
|
-
<link rel="stylesheet" href="/static/css/reference/account.css?v=
|
|
21
|
-
<link rel="stylesheet" href="/static/css/reference/admin.css?v=
|
|
22
|
-
<link rel="stylesheet" href="/static/css/reference/graph.css?v=
|
|
23
|
-
<link rel="stylesheet" href="/static/css/reference/chat.css?v=
|
|
24
|
-
<link rel="stylesheet" href="/static/css/responsive.css?v=
|
|
18
|
+
<link rel="stylesheet" href="/static/css/tokens.css?v=3.0.0">
|
|
19
|
+
<link rel="stylesheet" href="/static/css/reference/base.css?v=3.0.0">
|
|
20
|
+
<link rel="stylesheet" href="/static/css/reference/account.css?v=3.0.0">
|
|
21
|
+
<link rel="stylesheet" href="/static/css/reference/admin.css?v=3.0.0">
|
|
22
|
+
<link rel="stylesheet" href="/static/css/reference/graph.css?v=3.0.0">
|
|
23
|
+
<link rel="stylesheet" href="/static/css/reference/chat.css?v=3.0.0">
|
|
24
|
+
<link rel="stylesheet" href="/static/css/responsive.css?v=3.0.0">
|
|
25
25
|
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
|
|
26
26
|
</head>
|
|
27
27
|
|
package/static/agents.html
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content" />
|
|
6
6
|
<title>Multi-Agent Runtime — Lattice AI</title>
|
|
7
|
-
<script src="/static/scripts/ux.js?v=
|
|
8
|
-
<link rel="stylesheet" href="/static/css/tokens.css?v=
|
|
9
|
-
<link rel="stylesheet" href="/static/platform.css?v=
|
|
10
|
-
<link rel="stylesheet" href="/static/css/responsive.css?v=
|
|
7
|
+
<script src="/static/scripts/ux.js?v=3.0.0"></script>
|
|
8
|
+
<link rel="stylesheet" href="/static/css/tokens.css?v=3.0.0" />
|
|
9
|
+
<link rel="stylesheet" href="/static/platform.css?v=3.0.0" />
|
|
10
|
+
<link rel="stylesheet" href="/static/css/responsive.css?v=3.0.0" />
|
|
11
11
|
</head>
|
|
12
12
|
<body>
|
|
13
13
|
<main>
|
package/static/chat.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta charset="UTF-8">
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content">
|
|
7
7
|
<title>Lattice AI — All-in-One Multimodal Workspace</title>
|
|
8
|
-
<script src="/static/scripts/ux.js?v=
|
|
8
|
+
<script src="/static/scripts/ux.js?v=3.0.0"></script>
|
|
9
9
|
|
|
10
10
|
<!-- PWA -->
|
|
11
11
|
<link rel="manifest" href="/manifest.json">
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
|
|
25
25
|
|
|
26
26
|
<!-- ── Setup Wizard Styles ──────────────────────────────────────────── -->
|
|
27
|
-
<link rel="stylesheet" href="/static/css/tokens.css?v=
|
|
28
|
-
<link rel="stylesheet" href="/static/css/reference/base.css?v=
|
|
29
|
-
<link rel="stylesheet" href="/static/css/reference/account.css?v=
|
|
30
|
-
<link rel="stylesheet" href="/static/css/reference/admin.css?v=
|
|
31
|
-
<link rel="stylesheet" href="/static/css/reference/graph.css?v=
|
|
32
|
-
<link rel="stylesheet" href="/static/css/reference/chat.css?v=
|
|
33
|
-
<link rel="stylesheet" href="/static/css/responsive.css?v=
|
|
27
|
+
<link rel="stylesheet" href="/static/css/tokens.css?v=3.0.0">
|
|
28
|
+
<link rel="stylesheet" href="/static/css/reference/base.css?v=3.0.0">
|
|
29
|
+
<link rel="stylesheet" href="/static/css/reference/account.css?v=3.0.0">
|
|
30
|
+
<link rel="stylesheet" href="/static/css/reference/admin.css?v=3.0.0">
|
|
31
|
+
<link rel="stylesheet" href="/static/css/reference/graph.css?v=3.0.0">
|
|
32
|
+
<link rel="stylesheet" href="/static/css/reference/chat.css?v=3.0.0">
|
|
33
|
+
<link rel="stylesheet" href="/static/css/responsive.css?v=3.0.0">
|
|
34
34
|
</head>
|
|
35
35
|
|
|
36
36
|
<body class="lattice-ref-chat">
|
|
@@ -747,7 +747,7 @@
|
|
|
747
747
|
<div style="font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px">AI 자동 작업</div>
|
|
748
748
|
<textarea id="cu-task-input" placeholder="예: Safari 열고 apple.com 접속해줘 예: 현재 화면에서 버튼 찾아서 클릭해줘" style="width:100%;background:var(--surface-3);border:1px solid var(--border);border-radius:8px;padding:10px;color:var(--text);font-size:13px;resize:vertical;min-height:80px;font-family:inherit;outline:none"></textarea>
|
|
749
749
|
<div style="display:flex;gap:6px;margin-top:6px">
|
|
750
|
-
<button id="cu-run-btn" onclick="cuRunAgent()" style="flex:1;background:
|
|
750
|
+
<button id="cu-run-btn" onclick="cuRunAgent()" style="flex:1;background:var(--accent);border:none;color:#fff;padding:8px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px"><i class="ti ti-player-play"></i> 실행</button>
|
|
751
751
|
<button id="cu-stop-btn" onclick="cuStopAgent()" style="background:rgba(248,113,113,0.12);border:1px solid rgba(248,113,113,0.25);color:var(--danger);padding:8px 14px;border-radius:8px;font-size:13px;cursor:pointer;display:none"><i class="ti ti-player-stop"></i></button>
|
|
752
752
|
</div>
|
|
753
753
|
</div>
|
|
@@ -838,7 +838,7 @@
|
|
|
838
838
|
</div>
|
|
839
839
|
|
|
840
840
|
|
|
841
|
-
<script src="/static/scripts/chat.js?v=
|
|
841
|
+
<script src="/static/scripts/chat.js?v=3.0.0"></script>
|
|
842
842
|
</body>
|
|
843
843
|
|
|
844
844
|
</html>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* Lattice AI — account / auth page (account.html, body.lattice-ref-auth). Token-native. */
|
|
2
2
|
/* ============================================================
|
|
3
3
|
ACCOUNT / AUTH PAGE (account.html)
|
|
4
|
-
|
|
4
|
+
Token-native product entry surface — unified with chat/graph/admin pages.
|
|
5
5
|
============================================================ */
|
|
6
6
|
|
|
7
7
|
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
@@ -301,3 +301,139 @@
|
|
|
301
301
|
-webkit-text-fill-color: currentColor;
|
|
302
302
|
color: var(--text);
|
|
303
303
|
}
|
|
304
|
+
|
|
305
|
+
/* Product-grade auth surface — functional entry point, token-native. */
|
|
306
|
+
.lattice-ref-auth {
|
|
307
|
+
background: var(--app-bg);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
.lattice-ref-auth::before {
|
|
311
|
+
background:
|
|
312
|
+
linear-gradient(90deg, rgba(12, 92, 115, 0.05) 1px, transparent 1px),
|
|
313
|
+
linear-gradient(180deg, rgba(12, 92, 115, 0.05) 1px, transparent 1px);
|
|
314
|
+
background-size: 42px 42px;
|
|
315
|
+
mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.32), transparent 76%);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.lattice-ref-auth::after,
|
|
319
|
+
.lattice-ref-auth .orb,
|
|
320
|
+
.auth-wave,
|
|
321
|
+
.auth-network {
|
|
322
|
+
display: none;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
.auth-titlebar {
|
|
326
|
+
background: var(--surface-elevated);
|
|
327
|
+
border-bottom-color: var(--line);
|
|
328
|
+
color: var(--text);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
.auth-window-brand i,
|
|
332
|
+
.lattice-ref-auth .hero-logo-mark {
|
|
333
|
+
color: var(--accent);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
.auth-window-controls span::before,
|
|
337
|
+
.auth-window-controls span::after {
|
|
338
|
+
background: var(--text);
|
|
339
|
+
border-color: var(--text);
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
.lattice-ref-auth .login-shell {
|
|
343
|
+
width: min(980px, calc(100vw - 36px));
|
|
344
|
+
grid-template-columns: minmax(300px, 430px) minmax(280px, 1fr);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
.lattice-ref-auth .brand-preview {
|
|
348
|
+
display: block;
|
|
349
|
+
border-radius: 8px;
|
|
350
|
+
background:
|
|
351
|
+
linear-gradient(135deg, var(--accent-soft), transparent 58%),
|
|
352
|
+
var(--surface);
|
|
353
|
+
border-color: var(--line);
|
|
354
|
+
box-shadow: none;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
.lattice-ref-auth .preview-node {
|
|
358
|
+
border-radius: 8px;
|
|
359
|
+
background: var(--surface-2);
|
|
360
|
+
border-color: var(--line);
|
|
361
|
+
box-shadow: none;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
.lattice-ref-auth .preview-node::after {
|
|
365
|
+
background: linear-gradient(135deg, var(--accent), var(--accent-2));
|
|
366
|
+
border-radius: 8px;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
.lattice-ref-auth .preview-line {
|
|
370
|
+
background: linear-gradient(90deg, transparent, var(--accent-2), transparent);
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
.lattice-ref-auth .card {
|
|
374
|
+
border-radius: 8px;
|
|
375
|
+
background: var(--surface-elevated);
|
|
376
|
+
border-color: var(--line);
|
|
377
|
+
box-shadow: var(--shadow);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
.lattice-ref-auth .card::before {
|
|
381
|
+
background: linear-gradient(90deg, transparent, var(--accent), var(--accent-2), transparent);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
.lattice-ref-auth .title {
|
|
385
|
+
background: none;
|
|
386
|
+
color: var(--text);
|
|
387
|
+
-webkit-text-fill-color: currentColor;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
.lattice-ref-auth .subtitle {
|
|
391
|
+
color: var(--muted);
|
|
392
|
+
font-weight: 700;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
.lattice-ref-auth .input,
|
|
396
|
+
.lattice-ref-auth .auth-field,
|
|
397
|
+
.lattice-ref-auth .sso-btn {
|
|
398
|
+
background: var(--input);
|
|
399
|
+
border-color: var(--line);
|
|
400
|
+
color: var(--text);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
.lattice-ref-auth .input:focus,
|
|
404
|
+
.lattice-ref-auth .auth-field:focus-within {
|
|
405
|
+
border-color: var(--accent);
|
|
406
|
+
box-shadow: 0 0 0 3px var(--accent-soft);
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
.lattice-ref-auth .submit {
|
|
410
|
+
background: var(--accent);
|
|
411
|
+
box-shadow: none;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
.lattice-ref-auth .submit:hover {
|
|
415
|
+
background: var(--accent-deep);
|
|
416
|
+
box-shadow: none;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
.lattice-ref-auth .local-start,
|
|
420
|
+
.lattice-ref-auth .register-cta,
|
|
421
|
+
.lattice-ref-auth .switch a {
|
|
422
|
+
color: var(--accent);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
.lattice-ref-auth .lang-btn,
|
|
426
|
+
.lattice-ref-auth .lang-menu {
|
|
427
|
+
border-color: var(--line);
|
|
428
|
+
box-shadow: none;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
@media (max-width: 760px) {
|
|
432
|
+
.lattice-ref-auth .login-shell {
|
|
433
|
+
grid-template-columns: 1fr;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
.lattice-ref-auth .brand-preview {
|
|
437
|
+
display: none;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
@@ -19,10 +19,7 @@
|
|
|
19
19
|
inset: 0;
|
|
20
20
|
pointer-events: none;
|
|
21
21
|
z-index: 0;
|
|
22
|
-
background:
|
|
23
|
-
radial-gradient(circle at 82% 12%, var(--border), transparent 30%),
|
|
24
|
-
radial-gradient(circle at 10% 80%, rgba(180,160,255,0.16), transparent 35%),
|
|
25
|
-
linear-gradient(180deg, var(--bg) 0%, var(--surface-2) 52%, var(--surface) 100%);
|
|
22
|
+
background: var(--app-bg);
|
|
26
23
|
}
|
|
27
24
|
|
|
28
25
|
.bg-shapes {
|
|
@@ -2872,14 +2869,14 @@
|
|
|
2872
2869
|
color: var(--accent);
|
|
2873
2870
|
}
|
|
2874
2871
|
|
|
2875
|
-
/* Lattice AI workspace —
|
|
2872
|
+
/* Lattice AI workspace — product shell theme. */
|
|
2876
2873
|
.app-layout {
|
|
2877
2874
|
--bg: var(--bg);
|
|
2878
2875
|
--surface: var(--surface);
|
|
2879
2876
|
--surface-2: var(--surface-2);
|
|
2880
2877
|
--surface-3: var(--surface-3);
|
|
2881
2878
|
--accent: var(--accent);
|
|
2882
|
-
--accent-2: var(--accent-2);
|
|
2879
|
+
--accent-2: var(--lt-accent-2, #0f9f8f);
|
|
2883
2880
|
--accent-3: var(--accent-3);
|
|
2884
2881
|
--accent-pink: var(--accent-pink);
|
|
2885
2882
|
--accent-soft: var(--accent-soft);
|
|
@@ -4220,7 +4217,7 @@
|
|
|
4220
4217
|
}
|
|
4221
4218
|
|
|
4222
4219
|
/* =========================================================
|
|
4223
|
-
|
|
4220
|
+
Workspace product shell — full override for .app-layout
|
|
4224
4221
|
========================================================= */
|
|
4225
4222
|
body.lattice-ref-chat .app-layout {
|
|
4226
4223
|
--bg: var(--bg);
|
|
@@ -4228,7 +4225,7 @@
|
|
|
4228
4225
|
--surface-2: var(--surface-2);
|
|
4229
4226
|
--surface-3: var(--surface-3);
|
|
4230
4227
|
--accent: var(--accent);
|
|
4231
|
-
--accent-2: #
|
|
4228
|
+
--accent-2: var(--lt-accent-2, #0f9f8f);
|
|
4232
4229
|
--accent-3: var(--accent-2);
|
|
4233
4230
|
--accent-soft: var(--accent-soft);
|
|
4234
4231
|
--text: var(--text);
|
|
@@ -4238,10 +4235,7 @@
|
|
|
4238
4235
|
--border-strong: var(--border-strong);
|
|
4239
4236
|
--shadow: var(--shadow);
|
|
4240
4237
|
--shadow-sm: var(--shadow-sm);
|
|
4241
|
-
background:
|
|
4242
|
-
radial-gradient(circle at 82% 12%, var(--border), transparent 30%),
|
|
4243
|
-
radial-gradient(circle at 10% 80%, rgba(180,160,255,0.16), transparent 35%),
|
|
4244
|
-
linear-gradient(180deg, var(--bg) 0%, var(--surface-2) 52%, var(--surface) 100%);
|
|
4238
|
+
background: var(--app-bg);
|
|
4245
4239
|
}
|
|
4246
4240
|
body.lattice-ref-chat .app-layout::before,
|
|
4247
4241
|
body.lattice-ref-chat .app-layout::after {
|
|
@@ -4251,15 +4245,15 @@
|
|
|
4251
4245
|
/* Sidebar */
|
|
4252
4246
|
body.lattice-ref-chat .app-layout .sidebar {
|
|
4253
4247
|
background: var(--sidebar);
|
|
4254
|
-
border-right: 1px solid
|
|
4255
|
-
box-shadow:
|
|
4248
|
+
border-right: 1px solid var(--line);
|
|
4249
|
+
box-shadow: none;
|
|
4256
4250
|
}
|
|
4257
4251
|
|
|
4258
4252
|
/* Chat header */
|
|
4259
4253
|
body.lattice-ref-chat .app-layout .chat-header {
|
|
4260
4254
|
background: var(--sidebar);
|
|
4261
|
-
border-bottom: 1px solid
|
|
4262
|
-
box-shadow:
|
|
4255
|
+
border-bottom: 1px solid var(--line);
|
|
4256
|
+
box-shadow: none;
|
|
4263
4257
|
backdrop-filter: blur(14px);
|
|
4264
4258
|
}
|
|
4265
4259
|
|
|
@@ -4306,28 +4300,28 @@
|
|
|
4306
4300
|
/* 입력창 영역 */
|
|
4307
4301
|
body.lattice-ref-chat .app-layout .input-area {
|
|
4308
4302
|
background: linear-gradient(0deg,
|
|
4309
|
-
|
|
4310
|
-
|
|
4303
|
+
color-mix(in srgb, var(--bg) 98%, transparent) 0%,
|
|
4304
|
+
color-mix(in srgb, var(--bg) 82%, transparent) 64%,
|
|
4311
4305
|
transparent 100%);
|
|
4312
4306
|
}
|
|
4313
4307
|
body.lattice-ref-chat .app-layout .input-box {
|
|
4314
4308
|
background: var(--input);
|
|
4315
|
-
border: 1px solid
|
|
4316
|
-
box-shadow:
|
|
4309
|
+
border: 1px solid var(--line);
|
|
4310
|
+
box-shadow: var(--shadow-sm);
|
|
4317
4311
|
}
|
|
4318
4312
|
body.lattice-ref-chat .app-layout .input-box:focus-within {
|
|
4319
|
-
border-color:
|
|
4320
|
-
box-shadow:
|
|
4313
|
+
border-color: var(--accent);
|
|
4314
|
+
box-shadow: var(--shadow-sm), 0 0 0 3px var(--accent-soft);
|
|
4321
4315
|
}
|
|
4322
4316
|
|
|
4323
4317
|
/* 전송 버튼 */
|
|
4324
4318
|
body.lattice-ref-chat .app-layout .send-btn {
|
|
4325
4319
|
background: linear-gradient(135deg, var(--accent), var(--accent-2));
|
|
4326
4320
|
color: #ffffff;
|
|
4327
|
-
box-shadow: 0 8px 20px
|
|
4321
|
+
box-shadow: 0 8px 20px color-mix(in srgb, var(--accent) 24%, transparent);
|
|
4328
4322
|
}
|
|
4329
4323
|
body.lattice-ref-chat .app-layout .send-btn:hover {
|
|
4330
|
-
box-shadow: 0 10px 26px
|
|
4324
|
+
box-shadow: 0 10px 26px color-mix(in srgb, var(--accent) 34%, transparent);
|
|
4331
4325
|
opacity: 0.92;
|
|
4332
4326
|
}
|
|
4333
4327
|
|
|
@@ -4339,17 +4333,17 @@
|
|
|
4339
4333
|
box-shadow: 0 2px 10px rgba(88,72,150,0.08);
|
|
4340
4334
|
}
|
|
4341
4335
|
body.lattice-ref-chat .app-layout .empty-chip:hover {
|
|
4342
|
-
background:
|
|
4336
|
+
background: var(--accent-soft);
|
|
4343
4337
|
border-color: var(--border-strong);
|
|
4344
4338
|
}
|
|
4345
4339
|
body.lattice-ref-chat .app-layout .ops-card {
|
|
4346
4340
|
background: var(--card);
|
|
4347
|
-
border-color:
|
|
4348
|
-
box-shadow:
|
|
4341
|
+
border-color: var(--line);
|
|
4342
|
+
box-shadow: var(--shadow-sm);
|
|
4349
4343
|
}
|
|
4350
4344
|
body.lattice-ref-chat .app-layout .ops-card.primary {
|
|
4351
|
-
background: linear-gradient(135deg,
|
|
4352
|
-
border-color:
|
|
4345
|
+
background: linear-gradient(135deg, var(--accent-soft), var(--card) 58%);
|
|
4346
|
+
border-color: var(--border-strong);
|
|
4353
4347
|
}
|
|
4354
4348
|
|
|
4355
4349
|
/* 배지/버튼 */
|
|
@@ -4371,8 +4365,8 @@
|
|
|
4371
4365
|
body.lattice-ref-chat .app-layout .status-btn,
|
|
4372
4366
|
body.lattice-ref-chat .app-layout .admin-btn,
|
|
4373
4367
|
body.lattice-ref-chat .app-layout .setup-wizard-sidebar-btn {
|
|
4374
|
-
background:
|
|
4375
|
-
border-color:
|
|
4368
|
+
background: var(--accent-soft);
|
|
4369
|
+
border-color: var(--border-strong);
|
|
4376
4370
|
color: var(--accent);
|
|
4377
4371
|
box-shadow: none;
|
|
4378
4372
|
}
|
|
@@ -4388,7 +4382,7 @@
|
|
|
4388
4382
|
color: var(--text);
|
|
4389
4383
|
-webkit-text-fill-color: var(--text);
|
|
4390
4384
|
background: var(--accent-soft);
|
|
4391
|
-
border-color:
|
|
4385
|
+
border-color: var(--border-strong);
|
|
4392
4386
|
}
|
|
4393
4387
|
/* 채팅 기록 목록도 검정 */
|
|
4394
4388
|
body.lattice-ref-chat .app-layout .history-item {
|
|
@@ -4408,20 +4402,20 @@
|
|
|
4408
4402
|
/* 사이드바 검색 입력 */
|
|
4409
4403
|
body.lattice-ref-chat .app-layout .sidebar-search input {
|
|
4410
4404
|
color: var(--text);
|
|
4411
|
-
background:
|
|
4412
|
-
border-color:
|
|
4405
|
+
background: var(--input);
|
|
4406
|
+
border-color: var(--line);
|
|
4413
4407
|
}
|
|
4414
4408
|
body.lattice-ref-chat .app-layout .sidebar-search input::placeholder {
|
|
4415
4409
|
color: var(--faint);
|
|
4416
4410
|
-webkit-text-fill-color: var(--faint);
|
|
4417
4411
|
}
|
|
4418
|
-
/* 상단 모드 세그멘트
|
|
4412
|
+
/* 상단 모드 세그멘트 */
|
|
4419
4413
|
body.lattice-ref-chat .app-layout .mode-segmented {
|
|
4420
4414
|
background: var(--surface-2);
|
|
4421
|
-
border-color:
|
|
4415
|
+
border-color: var(--line);
|
|
4422
4416
|
}
|
|
4423
4417
|
body.lattice-ref-chat .app-layout .mode-segmented button:not(.active) {
|
|
4424
|
-
color:
|
|
4418
|
+
color: var(--muted);
|
|
4425
4419
|
}
|
|
4426
4420
|
|
|
4427
4421
|
/* ── 홈 뷰: 채팅 전용 사이드바 섹션 숨기기 ── */
|
|
@@ -817,3 +817,45 @@ body.lattice-ref-chat .app-layout #user-input:focus {
|
|
|
817
817
|
width: 100%;
|
|
818
818
|
}
|
|
819
819
|
}
|
|
820
|
+
|
|
821
|
+
/* Product workspace shell: this file loads last, so keep the mobile rail fluid. */
|
|
822
|
+
@media (max-width: 860px) {
|
|
823
|
+
body.workspace-page .workspace-shell {
|
|
824
|
+
grid-template-columns: 1fr;
|
|
825
|
+
min-width: 0;
|
|
826
|
+
width: 100%;
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
body.workspace-page .workspace-rail {
|
|
830
|
+
height: auto;
|
|
831
|
+
min-height: 0;
|
|
832
|
+
min-width: 0;
|
|
833
|
+
max-width: 100vw;
|
|
834
|
+
position: relative;
|
|
835
|
+
width: 100%;
|
|
836
|
+
}
|
|
837
|
+
|
|
838
|
+
body.workspace-page main {
|
|
839
|
+
min-width: 0;
|
|
840
|
+
width: 100%;
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
body.workspace-page .workspace-rail nav,
|
|
844
|
+
body.workspace-page .rail-links {
|
|
845
|
+
min-width: 0;
|
|
846
|
+
width: 100%;
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
body.workspace-page .workspace-rail a span {
|
|
850
|
+
min-width: 0;
|
|
851
|
+
overflow: hidden;
|
|
852
|
+
text-overflow: ellipsis;
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
@media (max-width: 520px) {
|
|
857
|
+
body.workspace-page .workspace-rail nav,
|
|
858
|
+
body.workspace-page .rail-links {
|
|
859
|
+
grid-template-columns: 1fr;
|
|
860
|
+
}
|
|
861
|
+
}
|