ltcai 6.6.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +32 -36
  2. package/docs/CHANGELOG.md +50 -2
  3. package/frontend/src/App.tsx +78 -3
  4. package/frontend/src/api/client.ts +5 -0
  5. package/frontend/src/features/brain/BrainConversation.tsx +182 -2
  6. package/frontend/src/features/brain/BrainHome.tsx +108 -1
  7. package/frontend/src/features/brain/types.ts +13 -0
  8. package/frontend/src/i18n.ts +80 -0
  9. package/frontend/src/routes.ts +31 -17
  10. package/frontend/src/styles.css +295 -0
  11. package/lattice_brain/__init__.py +1 -1
  12. package/lattice_brain/runtime/multi_agent.py +1 -1
  13. package/latticeai/__init__.py +1 -1
  14. package/latticeai/core/marketplace.py +1 -1
  15. package/latticeai/core/workspace_os.py +1 -1
  16. package/package.json +1 -1
  17. package/scripts/brain_quality_eval.py +118 -0
  18. package/src-tauri/Cargo.lock +1 -1
  19. package/src-tauri/Cargo.toml +1 -1
  20. package/src-tauri/tauri.conf.json +1 -1
  21. package/static/app/asset-manifest.json +84 -6
  22. package/static/app/assets/Act-DhLaHnrT.js +2 -0
  23. package/static/app/assets/Act-DhLaHnrT.js.map +1 -0
  24. package/static/app/assets/Brain-DS7NULyY.js +322 -0
  25. package/static/app/assets/Brain-DS7NULyY.js.map +1 -0
  26. package/static/app/assets/Capture-CAKouj52.js +2 -0
  27. package/static/app/assets/Capture-CAKouj52.js.map +1 -0
  28. package/static/app/assets/Library-B_hW4AwR.js +2 -0
  29. package/static/app/assets/Library-B_hW4AwR.js.map +1 -0
  30. package/static/app/assets/System-9OAoXWPz.js +2 -0
  31. package/static/app/assets/System-9OAoXWPz.js.map +1 -0
  32. package/static/app/assets/index-C-7aHabu.js +17 -0
  33. package/static/app/assets/index-C-7aHabu.js.map +1 -0
  34. package/static/app/assets/index-DKFpn5Kn.css +2 -0
  35. package/static/app/assets/primitives-DcO2H3yh.js +2 -0
  36. package/static/app/assets/primitives-DcO2H3yh.js.map +1 -0
  37. package/static/app/assets/textarea-DR2Tyy_6.js +2 -0
  38. package/static/app/assets/textarea-DR2Tyy_6.js.map +1 -0
  39. package/static/app/index.html +2 -2
  40. package/static/app/assets/index-C8toxDpv.css +0 -2
  41. package/static/app/assets/index-CbvcAQ6B.js +0 -16
  42. package/static/app/assets/index-CbvcAQ6B.js.map +0 -1
@@ -964,6 +964,69 @@ body {
964
964
  overflow: hidden;
965
965
  }
966
966
 
967
+ .brain-shell-page {
968
+ position: relative;
969
+ z-index: 2;
970
+ height: 100vh;
971
+ overflow: auto;
972
+ padding: 0.9rem 1rem 2rem;
973
+ }
974
+
975
+ .brain-shell-nav {
976
+ position: sticky;
977
+ top: 0.65rem;
978
+ z-index: 20;
979
+ display: flex;
980
+ flex-wrap: wrap;
981
+ justify-content: center;
982
+ gap: 0.45rem;
983
+ width: min(100%, 72rem);
984
+ margin: 0 auto 1rem;
985
+ border: 1px solid hsl(var(--border) / 0.66);
986
+ border-radius: 8px;
987
+ background: hsl(var(--surface-glass));
988
+ padding: 0.35rem;
989
+ backdrop-filter: blur(18px);
990
+ }
991
+
992
+ .brain-shell-nav button {
993
+ min-height: 2.25rem;
994
+ border: 1px solid transparent;
995
+ border-radius: 6px;
996
+ background: transparent;
997
+ color: hsl(var(--fg-muted));
998
+ padding: 0 0.78rem;
999
+ font-size: 0.78rem;
1000
+ font-weight: 820;
1001
+ letter-spacing: 0;
1002
+ }
1003
+
1004
+ .brain-shell-nav button:hover,
1005
+ .brain-shell-nav button:focus-visible,
1006
+ .brain-shell-nav button.is-active {
1007
+ border-color: hsl(var(--brain-core) / 0.58);
1008
+ background: hsl(var(--brain-core) / 0.1);
1009
+ color: hsl(var(--fg));
1010
+ outline: none;
1011
+ }
1012
+
1013
+ .brain-shell-content {
1014
+ width: min(100%, 72rem);
1015
+ margin: 0 auto;
1016
+ }
1017
+
1018
+ .brain-shell-loader {
1019
+ min-height: 18rem;
1020
+ display: grid;
1021
+ place-items: center;
1022
+ border: 1px solid hsl(var(--border) / 0.58);
1023
+ border-radius: 8px;
1024
+ background: hsl(var(--surface-glass));
1025
+ color: hsl(var(--fg-muted));
1026
+ font-size: 0.82rem;
1027
+ font-weight: 760;
1028
+ }
1029
+
967
1030
  /* Subtle living field behind everything */
968
1031
  .brain-field {
969
1032
  position: fixed;
@@ -1238,6 +1301,7 @@ body {
1238
1301
  display: flex;
1239
1302
  align-items: center;
1240
1303
  justify-content: space-between;
1304
+ flex-wrap: wrap;
1241
1305
  gap: 0.75rem;
1242
1306
  padding-bottom: 0.65rem;
1243
1307
  color: hsl(var(--fg-muted));
@@ -1265,6 +1329,16 @@ body {
1265
1329
  white-space: nowrap;
1266
1330
  }
1267
1331
 
1332
+ .brain-flow-actions {
1333
+ display: flex;
1334
+ flex: 0 1 auto;
1335
+ flex-wrap: wrap;
1336
+ justify-content: flex-end;
1337
+ gap: 0.35rem;
1338
+ }
1339
+
1340
+ .brain-flow-actions button,
1341
+ .brain-model-pill,
1268
1342
  .brain-admin-link {
1269
1343
  display: inline-flex;
1270
1344
  min-height: 2rem;
@@ -1282,6 +1356,15 @@ body {
1282
1356
  transition: border-color 150ms ease, color 150ms ease, background 150ms ease;
1283
1357
  }
1284
1358
 
1359
+ .brain-model-pill {
1360
+ max-width: 13rem;
1361
+ overflow: hidden;
1362
+ text-overflow: ellipsis;
1363
+ white-space: nowrap;
1364
+ }
1365
+
1366
+ .brain-flow-actions button:hover,
1367
+ .brain-flow-actions button:focus-visible,
1285
1368
  .brain-admin-link:hover,
1286
1369
  .brain-admin-link:focus-visible {
1287
1370
  border-color: hsl(var(--brain-core) / 0.72);
@@ -1330,6 +1413,99 @@ body {
1330
1413
  mask-image: linear-gradient(transparent, black 6%, black 92%, transparent);
1331
1414
  }
1332
1415
 
1416
+ .brain-ingestion-panel {
1417
+ margin: 0 0 0.85rem;
1418
+ border: 1px solid hsl(var(--memory) / 0.34);
1419
+ border-radius: 8px;
1420
+ background: hsl(var(--memory) / 0.06);
1421
+ padding: 0.78rem;
1422
+ }
1423
+
1424
+ .brain-ingestion-head {
1425
+ display: flex;
1426
+ align-items: baseline;
1427
+ justify-content: space-between;
1428
+ gap: 0.75rem;
1429
+ margin-bottom: 0.62rem;
1430
+ }
1431
+
1432
+ .brain-ingestion-head span {
1433
+ color: hsl(var(--fg-muted));
1434
+ font-size: 0.64rem;
1435
+ font-weight: 840;
1436
+ text-transform: uppercase;
1437
+ }
1438
+
1439
+ .brain-ingestion-head strong {
1440
+ color: hsl(var(--fg));
1441
+ font-size: 0.9rem;
1442
+ }
1443
+
1444
+ .brain-ingestion-grid {
1445
+ display: grid;
1446
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1447
+ gap: 0.55rem;
1448
+ }
1449
+
1450
+ .brain-ingest-tile {
1451
+ display: grid;
1452
+ min-height: 5.8rem;
1453
+ cursor: pointer;
1454
+ align-content: start;
1455
+ gap: 0.28rem;
1456
+ border: 1px solid hsl(var(--border) / 0.55);
1457
+ border-radius: 8px;
1458
+ background: hsl(var(--surface) / 0.58);
1459
+ color: hsl(var(--fg));
1460
+ padding: 0.62rem;
1461
+ text-align: left;
1462
+ transition: border-color 150ms ease, background 150ms ease, transform 150ms ease;
1463
+ }
1464
+
1465
+ .brain-ingest-tile:hover,
1466
+ .brain-ingest-tile:focus-within {
1467
+ border-color: hsl(var(--memory) / 0.72);
1468
+ background: hsl(var(--memory) / 0.1);
1469
+ outline: none;
1470
+ transform: translateY(-1px);
1471
+ }
1472
+
1473
+ .brain-ingest-tile.is-primary {
1474
+ border-color: hsl(var(--memory) / 0.5);
1475
+ }
1476
+
1477
+ .brain-ingest-tile.is-disabled {
1478
+ cursor: wait;
1479
+ opacity: 0.68;
1480
+ }
1481
+
1482
+ .brain-ingest-tile svg {
1483
+ color: hsl(var(--memory));
1484
+ }
1485
+
1486
+ .brain-ingest-tile span {
1487
+ font-size: 0.78rem;
1488
+ font-weight: 820;
1489
+ line-height: 1.15;
1490
+ }
1491
+
1492
+ .brain-ingest-tile small {
1493
+ color: hsl(var(--fg-muted));
1494
+ font-size: 0.68rem;
1495
+ line-height: 1.2;
1496
+ }
1497
+
1498
+ .brain-ingest-tile input {
1499
+ width: 100%;
1500
+ min-width: 0;
1501
+ border: 1px solid hsl(var(--border) / 0.55);
1502
+ border-radius: 6px;
1503
+ background: hsl(var(--bg) / 0.45);
1504
+ color: hsl(var(--fg));
1505
+ padding: 0.38rem 0.44rem;
1506
+ font-size: 0.72rem;
1507
+ }
1508
+
1333
1509
  .brain-overview-panel {
1334
1510
  margin: 0 0 1rem;
1335
1511
  border: 1px solid hsl(var(--border) / 0.58);
@@ -1560,6 +1736,59 @@ body {
1560
1736
  font-size: 0.76rem;
1561
1737
  }
1562
1738
 
1739
+ .brain-model-demo {
1740
+ display: grid;
1741
+ grid-template-columns: minmax(0, 1fr) auto auto;
1742
+ align-items: center;
1743
+ gap: 0.58rem;
1744
+ margin: 0 0 1rem;
1745
+ border: 1px solid hsl(var(--knowledge) / 0.3);
1746
+ border-radius: 8px;
1747
+ background: hsl(var(--knowledge) / 0.06);
1748
+ padding: 0.66rem;
1749
+ }
1750
+
1751
+ .brain-model-demo span {
1752
+ display: block;
1753
+ color: hsl(var(--fg-muted));
1754
+ font-size: 0.62rem;
1755
+ font-weight: 840;
1756
+ text-transform: uppercase;
1757
+ }
1758
+
1759
+ .brain-model-demo strong,
1760
+ .brain-model-demo small {
1761
+ display: block;
1762
+ overflow: hidden;
1763
+ text-overflow: ellipsis;
1764
+ white-space: nowrap;
1765
+ }
1766
+
1767
+ .brain-model-demo strong {
1768
+ font-size: 0.82rem;
1769
+ line-height: 1.2;
1770
+ }
1771
+
1772
+ .brain-model-demo small {
1773
+ color: hsl(var(--fg-muted));
1774
+ font-size: 0.72rem;
1775
+ }
1776
+
1777
+ .brain-model-demo button {
1778
+ display: inline-flex;
1779
+ min-height: 2rem;
1780
+ align-items: center;
1781
+ gap: 0.35rem;
1782
+ border: 1px solid hsl(var(--knowledge) / 0.38);
1783
+ border-radius: 999px;
1784
+ background: hsl(var(--surface) / 0.72);
1785
+ color: hsl(var(--fg));
1786
+ padding: 0 0.64rem;
1787
+ font-size: 0.72rem;
1788
+ font-weight: 780;
1789
+ white-space: nowrap;
1790
+ }
1791
+
1563
1792
  .brain-save-feedback {
1564
1793
  display: grid;
1565
1794
  grid-template-columns: auto minmax(0, 1fr);
@@ -1611,6 +1840,72 @@ body {
1611
1840
  border-bottom-left-radius: 6px;
1612
1841
  }
1613
1842
 
1843
+ .brain-answer-proof {
1844
+ display: grid;
1845
+ gap: 0.45rem;
1846
+ margin-top: 0.45rem;
1847
+ border: 1px solid hsl(var(--memory) / 0.34);
1848
+ border-radius: 8px;
1849
+ background: hsl(var(--memory) / 0.06);
1850
+ padding: 0.58rem;
1851
+ }
1852
+
1853
+ .brain-answer-proof-head {
1854
+ display: flex;
1855
+ justify-content: space-between;
1856
+ gap: 0.6rem;
1857
+ }
1858
+
1859
+ .brain-answer-proof-head span,
1860
+ .brain-answer-proof li span {
1861
+ color: hsl(var(--fg-muted));
1862
+ font-size: 0.62rem;
1863
+ font-weight: 840;
1864
+ text-transform: uppercase;
1865
+ }
1866
+
1867
+ .brain-answer-proof-head strong {
1868
+ overflow: hidden;
1869
+ color: hsl(var(--fg));
1870
+ font-size: 0.68rem;
1871
+ text-overflow: ellipsis;
1872
+ white-space: nowrap;
1873
+ }
1874
+
1875
+ .brain-answer-proof ol {
1876
+ display: grid;
1877
+ gap: 0.35rem;
1878
+ margin: 0;
1879
+ padding: 0;
1880
+ list-style: none;
1881
+ }
1882
+
1883
+ .brain-answer-proof li {
1884
+ display: grid;
1885
+ gap: 0.1rem;
1886
+ border: 1px solid hsl(var(--border) / 0.45);
1887
+ border-radius: 6px;
1888
+ background: hsl(var(--surface) / 0.48);
1889
+ padding: 0.44rem;
1890
+ }
1891
+
1892
+ .brain-answer-proof li strong,
1893
+ .brain-answer-proof li small {
1894
+ overflow: hidden;
1895
+ text-overflow: ellipsis;
1896
+ white-space: nowrap;
1897
+ }
1898
+
1899
+ .brain-answer-proof li strong {
1900
+ font-size: 0.76rem;
1901
+ }
1902
+
1903
+ .brain-answer-proof li small,
1904
+ .brain-answer-proof > small {
1905
+ color: hsl(var(--fg-muted));
1906
+ font-size: 0.7rem;
1907
+ }
1908
+
1614
1909
  @keyframes message-enter {
1615
1910
  from { opacity: 0; transform: translateY(6px); }
1616
1911
  to { opacity: 1; transform: none; }
@@ -26,7 +26,7 @@ from .storage import (
26
26
  storage_from_env,
27
27
  )
28
28
 
29
- __version__ = "6.6.0"
29
+ __version__ = "7.0.0"
30
30
 
31
31
  __all__ = [
32
32
  "AgentRuntime",
@@ -19,7 +19,7 @@ from datetime import datetime
19
19
  from typing import Any, Callable, Dict, List, Optional
20
20
 
21
21
 
22
- MULTI_AGENT_VERSION = "6.6.0"
22
+ MULTI_AGENT_VERSION = "7.0.0"
23
23
 
24
24
  AGENT_ROLES = ("researcher", "planner", "executor", "reviewer", "release")
25
25
  CORE_PIPELINE = ("planner", "executor", "reviewer")
@@ -1,3 +1,3 @@
1
1
  """Lattice AI - modular server package."""
2
2
 
3
- __version__ = "6.6.0"
3
+ __version__ = "7.0.0"
@@ -11,7 +11,7 @@ from copy import deepcopy
11
11
  from typing import Any, Dict, List, Optional
12
12
 
13
13
 
14
- MARKETPLACE_VERSION = "6.6.0"
14
+ MARKETPLACE_VERSION = "7.0.0"
15
15
  TEMPLATE_KINDS = ("plugin", "workflow", "agent")
16
16
 
17
17
 
@@ -19,7 +19,7 @@ from pathlib import Path
19
19
  from typing import Any, Callable, Dict, Iterable, List, Optional
20
20
 
21
21
 
22
- WORKSPACE_OS_VERSION = "6.6.0"
22
+ WORKSPACE_OS_VERSION = "7.0.0"
23
23
 
24
24
  # Workspace types separate single-user Personal workspaces from shared
25
25
  # Organization workspaces. Both keep the same local-first JSON store; the type
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ltcai",
3
- "version": "6.6.0",
3
+ "version": "7.0.0",
4
4
  "description": "Lattice AI — local-first Digital Brain that keeps your knowledge durable across any AI model.",
5
5
  "homepage": "https://github.com/TaeSooPark-PTS/LatticeAI#readme",
6
6
  "repository": {
@@ -0,0 +1,118 @@
1
+ #!/usr/bin/env python3
2
+ """Deterministic Brain recall/KG quality gate for CI.
3
+
4
+ This is intentionally small and fixture-driven. It guards the product promise
5
+ that the first Brain loop can save context, recall it with source evidence, and
6
+ show model-independent proof without relying on a live model.
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import sys
12
+ import tempfile
13
+ from pathlib import Path
14
+
15
+ from latticeai.services.memory_service import MemoryService
16
+
17
+
18
+ class _EvalStore:
19
+ def __init__(self) -> None:
20
+ self.rows = [
21
+ {
22
+ "id": "decision:pricing",
23
+ "kind": "decision",
24
+ "content": "Use local-first memory as the product wedge for early access customers.",
25
+ "workspace_id": "personal",
26
+ "tags": ["strategy"],
27
+ },
28
+ {
29
+ "id": "note:first-loop",
30
+ "kind": "note",
31
+ "content": "The first five minute loop is add source, ask question, see Brain proof.",
32
+ "workspace_id": "personal",
33
+ "tags": ["onboarding"],
34
+ },
35
+ ]
36
+
37
+ def list_memories(self, user_email=None, kind=None, workspace_id=None):
38
+ rows = [row for row in self.rows if kind is None or row["kind"] == kind]
39
+ if workspace_id is not None:
40
+ rows = [row for row in rows if (row.get("workspace_id") or "personal") == workspace_id]
41
+ return {"memories": rows}
42
+
43
+ def list_memory_snapshots(self, workspace_id=None, limit=50):
44
+ return {"snapshots": [{"snapshot_id": "eval-snapshot"}]}
45
+
46
+ def search_memories(self, q, user_email=None, limit=20, workspace_id=None):
47
+ terms = {term for term in (q or "").lower().split() if len(term) > 2}
48
+ rows = [
49
+ row for row in self.rows
50
+ if (workspace_id is None or (row.get("workspace_id") or "personal") == workspace_id)
51
+ and terms.intersection(row["content"].lower().split())
52
+ ]
53
+ return {"memories": rows[:limit]}
54
+
55
+
56
+ class _EvalGraph:
57
+ def stats(self):
58
+ return {"nodes": {"Document": 1, "Decision": 1, "Topic": 1}, "edges": {"mentions": 2}}
59
+
60
+ def index_status(self):
61
+ return {"vector_counts": {"node": 3, "chunk": 2}}
62
+
63
+ def search(self, q, limit=20):
64
+ return {
65
+ "matches": [
66
+ {
67
+ "id": "doc:first-loop",
68
+ "type": "Document",
69
+ "title": "First Brain Loop",
70
+ "summary": "Users add a source, ask a question, and see proof with citations.",
71
+ "score": 0.94,
72
+ "metadata": {"source": "eval:first-loop.md", "workspace_id": "personal"},
73
+ }
74
+ ][:limit]
75
+ }
76
+
77
+
78
+ def _fail(message: str) -> int:
79
+ print(f"brain-quality-eval: FAIL: {message}", file=sys.stderr)
80
+ return 1
81
+
82
+
83
+ def main() -> int:
84
+ with tempfile.TemporaryDirectory() as tmp:
85
+ service = MemoryService(
86
+ store=_EvalStore(),
87
+ data_dir=Path(tmp),
88
+ knowledge_graph=_EvalGraph(),
89
+ enable_graph=True,
90
+ )
91
+ proof = service.brain_proof(
92
+ recall_query="first five minute Brain proof",
93
+ user_email="eval@example.com",
94
+ workspace_id="personal",
95
+ active_model="eval-model-a",
96
+ limit=4,
97
+ )
98
+
99
+ recall_items = proof.get("recall", {}).get("items", [])
100
+ if proof.get("model_continuity", {}).get("proven") is not True:
101
+ return _fail("model continuity proof must be true when durable evidence exists")
102
+ if proof.get("claims", {}).get("keeps_context_across_models") is not True:
103
+ return _fail("model-independent context claim must be backed by durable evidence")
104
+ if not recall_items:
105
+ return _fail("recall must return at least one memory or KG item")
106
+ if not any(str(item.get("source") or "").lower() in {"workspace", "graph"} for item in recall_items):
107
+ return _fail("recall items must expose a source for citation UI")
108
+ if proof.get("proofs", {}).get("graph_concepts", 0) < 1:
109
+ return _fail("KG concepts must be counted in Brain proof")
110
+ if proof.get("proofs", {}).get("vector_items", 0) < 1:
111
+ return _fail("vector items must be counted in Brain proof")
112
+
113
+ print("brain-quality-eval: OK")
114
+ return 0
115
+
116
+
117
+ if __name__ == "__main__":
118
+ raise SystemExit(main())
@@ -1654,7 +1654,7 @@ dependencies = [
1654
1654
 
1655
1655
  [[package]]
1656
1656
  name = "lattice-ai-desktop"
1657
- version = "6.6.0"
1657
+ version = "7.0.0"
1658
1658
  dependencies = [
1659
1659
  "plist",
1660
1660
  "serde",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "lattice-ai-desktop"
3
- version = "6.6.0"
3
+ version = "7.0.0"
4
4
  description = "Lattice AI Digital Brain desktop shell"
5
5
  authors = ["TaeSoo Park"]
6
6
  edition = "2021"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://schema.tauri.app/config/2",
3
3
  "productName": "Lattice AI",
4
- "version": "6.6.0",
4
+ "version": "7.0.0",
5
5
  "identifier": "ai.lattice.desktop",
6
6
  "build": {
7
7
  "beforeDevCommand": "npm run frontend:dev",
@@ -1,13 +1,20 @@
1
1
  {
2
- "version": "6.6.0",
2
+ "version": "7.0.0",
3
3
  "generated_at": "vite",
4
4
  "entrypoints": {
5
5
  "app": "/static/app/index.html"
6
6
  },
7
7
  "assets": {
8
8
  "../node_modules/@tauri-apps/api/core.js": "/static/app/assets/core-CwxXejkd.js",
9
- "index.html": "/static/app/assets/index-CbvcAQ6B.js",
10
- "assets/index-C8toxDpv.css": "/static/app/assets/index-C8toxDpv.css"
9
+ "_primitives-DcO2H3yh.js": "/static/app/assets/primitives-DcO2H3yh.js",
10
+ "_textarea-DR2Tyy_6.js": "/static/app/assets/textarea-DR2Tyy_6.js",
11
+ "index.html": "/static/app/assets/index-C-7aHabu.js",
12
+ "assets/index-DKFpn5Kn.css": "/static/app/assets/index-DKFpn5Kn.css",
13
+ "src/pages/Act.tsx": "/static/app/assets/Act-DhLaHnrT.js",
14
+ "src/pages/Brain.tsx": "/static/app/assets/Brain-DS7NULyY.js",
15
+ "src/pages/Capture.tsx": "/static/app/assets/Capture-CAKouj52.js",
16
+ "src/pages/Library.tsx": "/static/app/assets/Library-B_hW4AwR.js",
17
+ "src/pages/System.tsx": "/static/app/assets/System-9OAoXWPz.js"
11
18
  },
12
19
  "vite": {
13
20
  "../node_modules/@tauri-apps/api/core.js": {
@@ -16,16 +23,87 @@
16
23
  "src": "../node_modules/@tauri-apps/api/core.js",
17
24
  "isDynamicEntry": true
18
25
  },
26
+ "_primitives-DcO2H3yh.js": {
27
+ "file": "assets/primitives-DcO2H3yh.js",
28
+ "name": "primitives",
29
+ "imports": [
30
+ "index.html"
31
+ ]
32
+ },
33
+ "_textarea-DR2Tyy_6.js": {
34
+ "file": "assets/textarea-DR2Tyy_6.js",
35
+ "name": "textarea",
36
+ "imports": [
37
+ "index.html"
38
+ ]
39
+ },
19
40
  "index.html": {
20
- "file": "assets/index-CbvcAQ6B.js",
41
+ "file": "assets/index-C-7aHabu.js",
21
42
  "name": "index",
22
43
  "src": "index.html",
23
44
  "isEntry": true,
24
45
  "dynamicImports": [
25
- "../node_modules/@tauri-apps/api/core.js"
46
+ "../node_modules/@tauri-apps/api/core.js",
47
+ "src/pages/Act.tsx",
48
+ "src/pages/Brain.tsx",
49
+ "src/pages/Capture.tsx",
50
+ "src/pages/Library.tsx",
51
+ "src/pages/System.tsx"
26
52
  ],
27
53
  "css": [
28
- "assets/index-C8toxDpv.css"
54
+ "assets/index-DKFpn5Kn.css"
55
+ ]
56
+ },
57
+ "src/pages/Act.tsx": {
58
+ "file": "assets/Act-DhLaHnrT.js",
59
+ "name": "Act",
60
+ "src": "src/pages/Act.tsx",
61
+ "isDynamicEntry": true,
62
+ "imports": [
63
+ "index.html",
64
+ "_primitives-DcO2H3yh.js",
65
+ "_textarea-DR2Tyy_6.js"
66
+ ]
67
+ },
68
+ "src/pages/Brain.tsx": {
69
+ "file": "assets/Brain-DS7NULyY.js",
70
+ "name": "Brain",
71
+ "src": "src/pages/Brain.tsx",
72
+ "isDynamicEntry": true,
73
+ "imports": [
74
+ "index.html",
75
+ "_primitives-DcO2H3yh.js",
76
+ "_textarea-DR2Tyy_6.js"
77
+ ]
78
+ },
79
+ "src/pages/Capture.tsx": {
80
+ "file": "assets/Capture-CAKouj52.js",
81
+ "name": "Capture",
82
+ "src": "src/pages/Capture.tsx",
83
+ "isDynamicEntry": true,
84
+ "imports": [
85
+ "index.html",
86
+ "_primitives-DcO2H3yh.js"
87
+ ]
88
+ },
89
+ "src/pages/Library.tsx": {
90
+ "file": "assets/Library-B_hW4AwR.js",
91
+ "name": "Library",
92
+ "src": "src/pages/Library.tsx",
93
+ "isDynamicEntry": true,
94
+ "imports": [
95
+ "index.html",
96
+ "_primitives-DcO2H3yh.js"
97
+ ]
98
+ },
99
+ "src/pages/System.tsx": {
100
+ "file": "assets/System-9OAoXWPz.js",
101
+ "name": "System",
102
+ "src": "src/pages/System.tsx",
103
+ "isDynamicEntry": true,
104
+ "imports": [
105
+ "index.html",
106
+ "_primitives-DcO2H3yh.js"
29
107
  ]
30
108
  }
31
109
  }