ltcai 8.0.0 → 8.2.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 (183) hide show
  1. package/README.md +33 -72
  2. package/docs/CHANGELOG.md +52 -874
  3. package/docs/DEVELOPMENT.md +26 -3
  4. package/docs/LEGACY_COMPATIBILITY.md +3 -1
  5. package/docs/TRUST_MODEL.md +26 -26
  6. package/docs/WHY_LATTICE.md +28 -25
  7. package/docs/kg-schema.md +6 -4
  8. package/lattice_brain/__init__.py +1 -1
  9. package/lattice_brain/embeddings.py +9 -1
  10. package/lattice_brain/graph/schema.py +6 -0
  11. package/lattice_brain/runtime/multi_agent.py +1 -1
  12. package/latticeai/__init__.py +1 -1
  13. package/latticeai/api/computer_use.py +2 -0
  14. package/latticeai/api/memory.py +13 -0
  15. package/latticeai/app_factory.py +43 -162
  16. package/latticeai/brain/__init__.py +1 -1
  17. package/latticeai/core/config.py +10 -0
  18. package/latticeai/core/local_embeddings.py +8 -0
  19. package/latticeai/core/marketplace.py +1 -1
  20. package/latticeai/core/mcp_registry.py +140 -1
  21. package/latticeai/core/tool_registry.py +10 -0
  22. package/latticeai/core/workspace_graph_trace.py +132 -0
  23. package/latticeai/core/workspace_memory.py +75 -0
  24. package/latticeai/core/workspace_os.py +135 -1283
  25. package/latticeai/core/workspace_os_utils.py +132 -0
  26. package/latticeai/core/workspace_permissions.py +99 -0
  27. package/latticeai/core/workspace_plugins.py +97 -0
  28. package/latticeai/core/workspace_runs.py +612 -0
  29. package/latticeai/core/workspace_skills.py +114 -0
  30. package/latticeai/core/workspace_snapshots.py +195 -0
  31. package/latticeai/core/workspace_timeline.py +107 -0
  32. package/latticeai/runtime/audit_runtime.py +64 -0
  33. package/latticeai/runtime/config_runtime.py +4 -0
  34. package/latticeai/runtime/sso_runtime.py +52 -0
  35. package/latticeai/services/architecture_readiness.py +6 -5
  36. package/latticeai/services/memory_service.py +215 -7
  37. package/latticeai/services/model_capability_registry.py +68 -0
  38. package/latticeai/services/model_engines.py +603 -0
  39. package/latticeai/services/model_loading.py +482 -0
  40. package/latticeai/services/model_recommendation.py +5 -0
  41. package/latticeai/services/model_runtime.py +146 -837
  42. package/latticeai/services/product_readiness.py +19 -18
  43. package/package.json +2 -2
  44. package/scripts/build_frontend_assets.mjs +11 -2
  45. package/src-tauri/Cargo.lock +1 -1
  46. package/src-tauri/Cargo.toml +1 -1
  47. package/src-tauri/tauri.conf.json +1 -1
  48. package/static/app/asset-manifest.json +11 -102
  49. package/static/app/assets/Act-D9jIknFd.js +1 -0
  50. package/static/app/assets/Brain-CFOtWbPN.js +321 -0
  51. package/static/app/assets/{Capture-B9Tlhzqr.js → Capture-Q4WYzwr5.js} +1 -2
  52. package/static/app/assets/Library-C5Q2yWee.js +1 -0
  53. package/static/app/assets/System-BLbjdr1_.js +1 -0
  54. package/static/app/assets/core-CwxXejkd.js +1 -2
  55. package/static/app/assets/index-BqammyNu.js +16 -0
  56. package/static/app/assets/index-ty1iGgZu.css +2 -0
  57. package/static/app/assets/primitives-Br8uSfZ4.js +1 -0
  58. package/static/app/assets/{textarea-BZk6ybp5.js → textarea-BnhNs1_X.js} +1 -2
  59. package/static/app/index.html +3 -10
  60. package/static/app/theme-boot.js +8 -0
  61. package/static/sw.js +1 -1
  62. package/tools/__init__.py +2 -1
  63. package/tools/computer.py +21 -0
  64. package/docs/CARRYOVER_AUDIT_v3.6.0.md +0 -61
  65. package/docs/HANDOVER_v3.6.0.md +0 -46
  66. package/docs/RUNTIME_HOOK_COVERAGE_v3.5.0.md +0 -56
  67. package/docs/RUNTIME_HOOK_COVERAGE_v3.6.0.md +0 -49
  68. package/docs/V2_ARCHITECTURE.md +0 -561
  69. package/docs/V3_2_AUDIT.md +0 -82
  70. package/docs/V3_BACKEND_ARCHITECTURE.md +0 -138
  71. package/docs/V3_FRONTEND.md +0 -140
  72. package/docs/V4_1_FRONTEND_ARCHITECTURE_REVIEW.md +0 -65
  73. package/docs/V4_1_FRONTEND_MIGRATION_REPORT.md +0 -70
  74. package/docs/V4_1_VALIDATION_REPORT.md +0 -47
  75. package/docs/V4_2_BRAIN_CORE_ARCHITECTURE.md +0 -97
  76. package/docs/V4_2_STORAGE_MIGRATION_REPORT.md +0 -91
  77. package/docs/V4_2_VALIDATION_REPORT.md +0 -89
  78. package/docs/V4_3_2_DEADCODE_AUDIT_REPORT.md +0 -174
  79. package/docs/V4_3_2_DOCUMENTATION_CLEANUP_REPORT.md +0 -81
  80. package/docs/V4_3_2_GITHUB_VERCEL_CHECK_REPORT.md +0 -75
  81. package/docs/V4_3_2_GRAPH_UX_REPORT.md +0 -48
  82. package/docs/V4_3_2_INDEPENDENT_AUDIT_PACKAGE.md +0 -209
  83. package/docs/V4_3_2_PRODUCT_POLISH_REPORT.md +0 -57
  84. package/docs/V4_3_2_SELF_AUDIT_REPORT.md +0 -63
  85. package/docs/V4_3_2_VALIDATION_REPORT.md +0 -97
  86. package/docs/V4_3_3_VALIDATION_REPORT.md +0 -46
  87. package/docs/V4_3_PORTABILITY_ARCHITECTURE.md +0 -69
  88. package/docs/V4_3_PRIVACY_AUDIT.md +0 -60
  89. package/docs/V4_3_PRODUCT_HARDENING_REPORT.md +0 -53
  90. package/docs/V4_3_VALIDATION_REPORT.md +0 -58
  91. package/docs/V4_4_0_EXTRACTION_REPORT.md +0 -239
  92. package/docs/V4_5_0_GEMMA_RUNTIME_COMPATIBILITY_REPORT.md +0 -49
  93. package/docs/V4_5_0_GRAPH_UX_REPORT.md +0 -34
  94. package/docs/V4_5_0_MODEL_RUNTIME_UX_REPORT.md +0 -40
  95. package/docs/V4_5_0_ONBOARDING_REPORT.md +0 -31
  96. package/docs/V4_5_0_PRODUCT_EXPERIENCE_RECOVERY_REPORT.md +0 -49
  97. package/docs/V4_5_0_VALIDATION_REPORT.md +0 -60
  98. package/docs/V4_5_1_GRAPH_EXPERIENCE_REPORT.md +0 -33
  99. package/docs/V4_5_1_MODEL_EXPERIENCE_REPORT.md +0 -37
  100. package/docs/V4_5_1_NAVIGATION_REPORT.md +0 -37
  101. package/docs/V4_5_1_ONBOARDING_REPORT.md +0 -29
  102. package/docs/V4_5_1_PRODUCT_REIMAGINING_REPORT.md +0 -61
  103. package/docs/V4_5_1_RC_ARTIFACTS.md +0 -44
  104. package/docs/V4_5_1_UX_REPORT.md +0 -45
  105. package/docs/V4_5_1_VALIDATION_REPORT.md +0 -55
  106. package/docs/V4_5_1_VISUAL_DESIGN_REPORT.md +0 -30
  107. package/docs/V4_6_0_LIVING_BRAIN_EXPERIENCE_REPORT.md +0 -72
  108. package/docs/V4_6_1_RELEASE_REFRESH_REPORT.md +0 -42
  109. package/docs/V4_7_0_ADMIN_SEPARATION_REPORT.md +0 -42
  110. package/docs/V4_7_1_ADMIN_OPERATIONS_REPORT.md +0 -49
  111. package/docs/V4_7_2_INTUITIVE_BRAIN_UX_REPORT.md +0 -62
  112. package/docs/V4_BRAIN_ARCHITECTURE.md +0 -322
  113. package/docs/V4_DIGITAL_BRAIN_RECOVERY.md +0 -555
  114. package/docs/V4_IMPLEMENTATION_PLAN.md +0 -470
  115. package/frontend/index.html +0 -24
  116. package/frontend/openapi.json +0 -15425
  117. package/frontend/src/App.tsx +0 -243
  118. package/frontend/src/api/client.ts +0 -580
  119. package/frontend/src/api/openapi.ts +0 -17892
  120. package/frontend/src/components/AdminAccessGate.tsx +0 -70
  121. package/frontend/src/components/FeedbackState.tsx +0 -45
  122. package/frontend/src/components/LanguageSwitcher.tsx +0 -23
  123. package/frontend/src/components/LivingBrain.tsx +0 -220
  124. package/frontend/src/components/ProductFlow.tsx +0 -171
  125. package/frontend/src/components/WorkspaceProfileSwitcher.tsx +0 -176
  126. package/frontend/src/components/onboarding/AnalysisScreen.tsx +0 -135
  127. package/frontend/src/components/onboarding/DownloadConsentPanel.tsx +0 -29
  128. package/frontend/src/components/onboarding/InstallScreen.tsx +0 -263
  129. package/frontend/src/components/onboarding/LanguageChooser.tsx +0 -23
  130. package/frontend/src/components/onboarding/LoginScreen.tsx +0 -131
  131. package/frontend/src/components/onboarding/ProductFlowScreens.tsx +0 -13
  132. package/frontend/src/components/onboarding/RecommendationScreen.tsx +0 -116
  133. package/frontend/src/components/onboarding/recommendationModel.ts +0 -189
  134. package/frontend/src/components/primitives.tsx +0 -392
  135. package/frontend/src/components/ui/badge.tsx +0 -27
  136. package/frontend/src/components/ui/button.tsx +0 -37
  137. package/frontend/src/components/ui/card.tsx +0 -22
  138. package/frontend/src/components/ui/input.tsx +0 -16
  139. package/frontend/src/components/ui/textarea.tsx +0 -16
  140. package/frontend/src/features/admin/AdminConsole.tsx +0 -334
  141. package/frontend/src/features/brain/BrainCarePanel.tsx +0 -254
  142. package/frontend/src/features/brain/BrainComposer.tsx +0 -85
  143. package/frontend/src/features/brain/BrainConversation.tsx +0 -688
  144. package/frontend/src/features/brain/BrainGraphLayer.tsx +0 -365
  145. package/frontend/src/features/brain/BrainHome.tsx +0 -624
  146. package/frontend/src/features/brain/BrainMemoryLayer.tsx +0 -45
  147. package/frontend/src/features/brain/BrainOverviewPanel.tsx +0 -149
  148. package/frontend/src/features/brain/BrainRelationshipLayer.tsx +0 -43
  149. package/frontend/src/features/brain/DepthEmergence.tsx +0 -53
  150. package/frontend/src/features/brain/brainData.ts +0 -246
  151. package/frontend/src/features/brain/graphLayout.ts +0 -37
  152. package/frontend/src/features/brain/types.ts +0 -150
  153. package/frontend/src/features/review/ReviewCard.tsx +0 -100
  154. package/frontend/src/features/review/ReviewInbox.tsx +0 -127
  155. package/frontend/src/features/review/reviewHelpers.ts +0 -69
  156. package/frontend/src/i18n.ts +0 -1303
  157. package/frontend/src/lib/utils.ts +0 -33
  158. package/frontend/src/main.tsx +0 -23
  159. package/frontend/src/pages/Act.tsx +0 -458
  160. package/frontend/src/pages/Ask.tsx +0 -14
  161. package/frontend/src/pages/Brain.tsx +0 -914
  162. package/frontend/src/pages/Capture.tsx +0 -258
  163. package/frontend/src/pages/Library.tsx +0 -486
  164. package/frontend/src/pages/System.tsx +0 -621
  165. package/frontend/src/routes.ts +0 -92
  166. package/frontend/src/store/appStore.ts +0 -94
  167. package/frontend/src/styles.css +0 -6579
  168. package/static/app/assets/Act-DOvf59ru.js +0 -2
  169. package/static/app/assets/Act-DOvf59ru.js.map +0 -1
  170. package/static/app/assets/Brain-C7_0mEiI.js +0 -322
  171. package/static/app/assets/Brain-C7_0mEiI.js.map +0 -1
  172. package/static/app/assets/Capture-B9Tlhzqr.js.map +0 -1
  173. package/static/app/assets/Library-BJPEEm5O.js +0 -2
  174. package/static/app/assets/Library-BJPEEm5O.js.map +0 -1
  175. package/static/app/assets/System-D6t9jo9V.js +0 -2
  176. package/static/app/assets/System-D6t9jo9V.js.map +0 -1
  177. package/static/app/assets/core-CwxXejkd.js.map +0 -1
  178. package/static/app/assets/index-C7g26IF6.css +0 -2
  179. package/static/app/assets/index-DbcEYJQ2.js +0 -17
  180. package/static/app/assets/index-DbcEYJQ2.js.map +0 -1
  181. package/static/app/assets/primitives-CD38lt4n.js +0 -2
  182. package/static/app/assets/primitives-CD38lt4n.js.map +0 -1
  183. 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
- }));