ltcai 8.0.0 → 8.1.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 (103) hide show
  1. package/README.md +32 -50
  2. package/docs/CHANGELOG.md +14 -0
  3. package/docs/V3_FRONTEND.md +11 -5
  4. package/lattice_brain/__init__.py +1 -1
  5. package/lattice_brain/embeddings.py +9 -1
  6. package/lattice_brain/runtime/multi_agent.py +1 -1
  7. package/latticeai/__init__.py +1 -1
  8. package/latticeai/app_factory.py +13 -134
  9. package/latticeai/core/local_embeddings.py +8 -0
  10. package/latticeai/core/marketplace.py +1 -1
  11. package/latticeai/core/mcp_registry.py +140 -1
  12. package/latticeai/core/workspace_os.py +1 -1
  13. package/latticeai/services/architecture_readiness.py +6 -5
  14. package/latticeai/services/model_runtime.py +36 -2
  15. package/latticeai/services/product_readiness.py +18 -18
  16. package/package.json +2 -2
  17. package/scripts/build_frontend_assets.mjs +11 -2
  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 +11 -102
  22. package/static/app/assets/Act-BOO66G-c.js +1 -0
  23. package/static/app/assets/Brain-C6lEYiD7.js +321 -0
  24. package/static/app/assets/{Capture-B9Tlhzqr.js → Capture-TATXBRDw.js} +1 -2
  25. package/static/app/assets/Library-DK4FIp8a.js +1 -0
  26. package/static/app/assets/System-Bgs6Ql7x.js +1 -0
  27. package/static/app/assets/core-CwxXejkd.js +1 -2
  28. package/static/app/assets/index-Bvv79nre.js +16 -0
  29. package/static/app/assets/index-Dslqglia.css +2 -0
  30. package/static/app/assets/primitives-B70WOra0.js +1 -0
  31. package/static/app/assets/{textarea-BZk6ybp5.js → textarea-Czrd9gwM.js} +1 -2
  32. package/static/app/index.html +3 -10
  33. package/static/app/theme-boot.js +8 -0
  34. package/static/sw.js +1 -1
  35. package/frontend/index.html +0 -24
  36. package/frontend/openapi.json +0 -15425
  37. package/frontend/src/App.tsx +0 -243
  38. package/frontend/src/api/client.ts +0 -580
  39. package/frontend/src/api/openapi.ts +0 -17892
  40. package/frontend/src/components/AdminAccessGate.tsx +0 -70
  41. package/frontend/src/components/FeedbackState.tsx +0 -45
  42. package/frontend/src/components/LanguageSwitcher.tsx +0 -23
  43. package/frontend/src/components/LivingBrain.tsx +0 -220
  44. package/frontend/src/components/ProductFlow.tsx +0 -171
  45. package/frontend/src/components/WorkspaceProfileSwitcher.tsx +0 -176
  46. package/frontend/src/components/onboarding/AnalysisScreen.tsx +0 -135
  47. package/frontend/src/components/onboarding/DownloadConsentPanel.tsx +0 -29
  48. package/frontend/src/components/onboarding/InstallScreen.tsx +0 -263
  49. package/frontend/src/components/onboarding/LanguageChooser.tsx +0 -23
  50. package/frontend/src/components/onboarding/LoginScreen.tsx +0 -131
  51. package/frontend/src/components/onboarding/ProductFlowScreens.tsx +0 -13
  52. package/frontend/src/components/onboarding/RecommendationScreen.tsx +0 -116
  53. package/frontend/src/components/onboarding/recommendationModel.ts +0 -189
  54. package/frontend/src/components/primitives.tsx +0 -392
  55. package/frontend/src/components/ui/badge.tsx +0 -27
  56. package/frontend/src/components/ui/button.tsx +0 -37
  57. package/frontend/src/components/ui/card.tsx +0 -22
  58. package/frontend/src/components/ui/input.tsx +0 -16
  59. package/frontend/src/components/ui/textarea.tsx +0 -16
  60. package/frontend/src/features/admin/AdminConsole.tsx +0 -334
  61. package/frontend/src/features/brain/BrainCarePanel.tsx +0 -254
  62. package/frontend/src/features/brain/BrainComposer.tsx +0 -85
  63. package/frontend/src/features/brain/BrainConversation.tsx +0 -688
  64. package/frontend/src/features/brain/BrainGraphLayer.tsx +0 -365
  65. package/frontend/src/features/brain/BrainHome.tsx +0 -624
  66. package/frontend/src/features/brain/BrainMemoryLayer.tsx +0 -45
  67. package/frontend/src/features/brain/BrainOverviewPanel.tsx +0 -149
  68. package/frontend/src/features/brain/BrainRelationshipLayer.tsx +0 -43
  69. package/frontend/src/features/brain/DepthEmergence.tsx +0 -53
  70. package/frontend/src/features/brain/brainData.ts +0 -246
  71. package/frontend/src/features/brain/graphLayout.ts +0 -37
  72. package/frontend/src/features/brain/types.ts +0 -150
  73. package/frontend/src/features/review/ReviewCard.tsx +0 -100
  74. package/frontend/src/features/review/ReviewInbox.tsx +0 -127
  75. package/frontend/src/features/review/reviewHelpers.ts +0 -69
  76. package/frontend/src/i18n.ts +0 -1303
  77. package/frontend/src/lib/utils.ts +0 -33
  78. package/frontend/src/main.tsx +0 -23
  79. package/frontend/src/pages/Act.tsx +0 -458
  80. package/frontend/src/pages/Ask.tsx +0 -14
  81. package/frontend/src/pages/Brain.tsx +0 -914
  82. package/frontend/src/pages/Capture.tsx +0 -258
  83. package/frontend/src/pages/Library.tsx +0 -486
  84. package/frontend/src/pages/System.tsx +0 -621
  85. package/frontend/src/routes.ts +0 -92
  86. package/frontend/src/store/appStore.ts +0 -94
  87. package/frontend/src/styles.css +0 -6579
  88. package/static/app/assets/Act-DOvf59ru.js +0 -2
  89. package/static/app/assets/Act-DOvf59ru.js.map +0 -1
  90. package/static/app/assets/Brain-C7_0mEiI.js +0 -322
  91. package/static/app/assets/Brain-C7_0mEiI.js.map +0 -1
  92. package/static/app/assets/Capture-B9Tlhzqr.js.map +0 -1
  93. package/static/app/assets/Library-BJPEEm5O.js +0 -2
  94. package/static/app/assets/Library-BJPEEm5O.js.map +0 -1
  95. package/static/app/assets/System-D6t9jo9V.js +0 -2
  96. package/static/app/assets/System-D6t9jo9V.js.map +0 -1
  97. package/static/app/assets/core-CwxXejkd.js.map +0 -1
  98. package/static/app/assets/index-C7g26IF6.css +0 -2
  99. package/static/app/assets/index-DbcEYJQ2.js +0 -17
  100. package/static/app/assets/index-DbcEYJQ2.js.map +0 -1
  101. package/static/app/assets/primitives-CD38lt4n.js +0 -2
  102. package/static/app/assets/primitives-CD38lt4n.js.map +0 -1
  103. package/static/app/assets/textarea-BZk6ybp5.js.map +0 -1
@@ -1,92 +0,0 @@
1
- import {
2
- Brain,
3
- Database,
4
- FolderInput,
5
- Library,
6
- Settings,
7
- Workflow,
8
- } from "lucide-react";
9
-
10
- export type PrimaryRoute = "brain" | "memory" | "capture" | "act" | "library" | "system";
11
-
12
- export type RouteTarget = { primary: PrimaryRoute; tab?: string };
13
-
14
- export const productShellRoutes = [
15
- { id: "brain", path: "brain", labelKey: "shell.route.brain", icon: Brain, description: "Talk with your living Brain" },
16
- { id: "capture", path: "capture", labelKey: "shell.route.capture", icon: FolderInput, description: "Bring in files, folders, and pages" },
17
- { id: "memory", path: "knowledge-graph", labelKey: "shell.route.memory", icon: Database, description: "Search and inspect Brain knowledge" },
18
- { id: "library", path: "models", labelKey: "shell.route.library", icon: Library, description: "Choose the local model powering your Brain" },
19
- { id: "system", path: "settings", labelKey: "shell.route.system", icon: Settings, description: "Keep your Brain safe and portable" },
20
- { id: "act", path: "review", labelKey: "shell.route.act", icon: Workflow, description: "Turn goals into supervised runs" },
21
- ] as const;
22
-
23
- export const directProductRoutes: Record<string, RouteTarget> = {
24
- brain: { primary: "brain", tab: "conversation" },
25
- capture: { primary: "capture", tab: "files" },
26
- "knowledge-graph": { primary: "brain", tab: "graph" },
27
- models: { primary: "library", tab: "models" },
28
- settings: { primary: "system", tab: "settings" },
29
- review: { primary: "act", tab: "review" },
30
- };
31
-
32
- export const compatibilityRouteAliases: Record<string, RouteTarget> = {
33
- home: { primary: "brain", tab: "conversation" },
34
- onboarding: { primary: "system", tab: "account" },
35
- "hybrid-search": { primary: "brain", tab: "knowledge" },
36
- memory: { primary: "memory", tab: "memory" },
37
- ask: { primary: "brain", tab: "conversation" },
38
- chat: { primary: "brain", tab: "conversation" },
39
- files: { primary: "capture", tab: "files" },
40
- pipeline: { primary: "capture", tab: "pipeline" },
41
- "my-computer": { primary: "capture", tab: "local" },
42
- agents: { primary: "act", tab: "agents" },
43
- runs: { primary: "act", tab: "runs" },
44
- "review-center": { primary: "act", tab: "review" },
45
- workflows: { primary: "act", tab: "workflows" },
46
- planning: { primary: "act", tab: "agents" },
47
- hooks: { primary: "act", tab: "hooks" },
48
- tools: { primary: "act", tab: "tools" },
49
- skills: { primary: "library", tab: "skills" },
50
- mcp: { primary: "library", tab: "mcp" },
51
- marketplace: { primary: "library", tab: "marketplace" },
52
- account: { primary: "system", tab: "account" },
53
- "workspace-admin": { primary: "system", tab: "workspaces" },
54
- snapshots: { primary: "system", tab: "snapshots" },
55
- activity: { primary: "system", tab: "activity" },
56
- network: { primary: "system", tab: "network" },
57
- settings: { primary: "system", tab: "settings" },
58
- "admin/users": { primary: "system", tab: "admin" },
59
- "admin/permissions": { primary: "system", tab: "admin" },
60
- "admin/audit": { primary: "system", tab: "admin" },
61
- "admin/security": { primary: "system", tab: "admin" },
62
- "admin/policies": { primary: "system", tab: "admin" },
63
- "admin/private-vpc": { primary: "system", tab: "admin" },
64
- };
65
-
66
- export const primaryRoutes = productShellRoutes;
67
- export const routeAliases = compatibilityRouteAliases;
68
-
69
- export const commandRoutes = [
70
- { key: "brain", label: "Lattice Brain", icon: Brain },
71
- { key: "files", label: "Files", icon: FolderInput },
72
- { key: "knowledge-graph", label: "Graph", icon: Database },
73
- { key: "models", label: "Models", icon: Library },
74
- { key: "settings", label: "Settings", icon: Settings },
75
- { key: "review", label: "Act", icon: Workflow },
76
- ];
77
-
78
- export function parseHash() {
79
- const raw = window.location.hash.replace(/^#\/?/, "").replace(/^\/+/, "");
80
- const path = raw || "brain";
81
- const normalized = path.split("?")[0];
82
- const direct = directProductRoutes[normalized];
83
- if (direct) return { ...direct, path };
84
- const primary = productShellRoutes.find((route) => route.id === normalized);
85
- if (primary) return { primary: primary.id as PrimaryRoute, tab: undefined, path };
86
- const aliased = compatibilityRouteAliases[normalized];
87
- return { primary: aliased?.primary || "brain", tab: aliased?.tab, path };
88
- }
89
-
90
- export function go(path: string) {
91
- window.location.hash = `/${path.replace(/^\/+/, "")}`;
92
- }
@@ -1,94 +0,0 @@
1
- import { create } from "zustand";
2
- import type { Language } from "@/i18n";
3
-
4
- export type Theme = "dark" | "light";
5
- export type WorkspaceMode = "basic" | "advanced" | "admin";
6
-
7
- type AppState = {
8
- theme: Theme;
9
- mode: WorkspaceMode;
10
- workspaceId: string | null;
11
- apiBase: string | null;
12
- language: Language;
13
- externalConsent: boolean;
14
- setTheme: (theme: Theme) => void;
15
- setMode: (mode: WorkspaceMode) => void;
16
- setWorkspaceId: (workspaceId: string | null) => void;
17
- setApiBase: (apiBase: string | null) => void;
18
- setLanguage: (language: Language) => void;
19
- setExternalConsent: (externalConsent: boolean) => void;
20
- };
21
-
22
- function readTheme(): Theme {
23
- try {
24
- const saved = localStorage.getItem("lattice.theme");
25
- if (saved === "light" || saved === "dark") return saved;
26
- } catch {}
27
- return "dark";
28
- }
29
-
30
- function readMode(): WorkspaceMode {
31
- try {
32
- const saved = localStorage.getItem("lattice.mode");
33
- if (saved === "basic" || saved === "advanced" || saved === "admin") return saved;
34
- } catch {}
35
- return "basic";
36
- }
37
-
38
- function readWorkspaceId(): string | null {
39
- try {
40
- return localStorage.getItem("lattice.workspace") || null;
41
- } catch {}
42
- return null;
43
- }
44
-
45
- function readExternalConsent(): boolean {
46
- try {
47
- // Default: external access allowed (matches existing user-initiated download flow).
48
- return localStorage.getItem("lattice.externalConsent") !== "revoked";
49
- } catch {}
50
- return true;
51
- }
52
-
53
- function readLanguage(): Language {
54
- try {
55
- const saved = localStorage.getItem("lattice.language");
56
- if (saved === "ko" || saved === "en") return saved;
57
- } catch {}
58
- const browser = typeof navigator !== "undefined" ? navigator.language.toLowerCase() : "";
59
- return browser.startsWith("ko") ? "ko" : "en";
60
- }
61
-
62
- export const useAppStore = create<AppState>((set) => ({
63
- theme: readTheme(),
64
- mode: readMode(),
65
- workspaceId: readWorkspaceId(),
66
- apiBase: null,
67
- language: readLanguage(),
68
- externalConsent: readExternalConsent(),
69
- setTheme: (theme) => {
70
- document.documentElement.dataset.theme = theme;
71
- try { localStorage.setItem("lattice.theme", theme); } catch {}
72
- set({ theme });
73
- },
74
- setMode: (mode) => {
75
- try { localStorage.setItem("lattice.mode", mode); } catch {}
76
- set({ mode });
77
- },
78
- setWorkspaceId: (workspaceId) => {
79
- if (workspaceId) {
80
- try { localStorage.setItem("lattice.workspace", workspaceId); } catch {}
81
- }
82
- set({ workspaceId });
83
- },
84
- setApiBase: (apiBase) => set({ apiBase }),
85
- setExternalConsent: (externalConsent) => {
86
- try { localStorage.setItem("lattice.externalConsent", externalConsent ? "granted" : "revoked"); } catch {}
87
- set({ externalConsent });
88
- },
89
- setLanguage: (language) => {
90
- document.documentElement.lang = language === "ko" ? "ko" : "en";
91
- try { localStorage.setItem("lattice.language", language); } catch {}
92
- set({ language });
93
- },
94
- }));