ltcai 2.1.0 → 2.2.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.
Files changed (51) hide show
  1. package/README.md +153 -609
  2. package/auto_setup.py +17 -17
  3. package/docs/CHANGELOG.md +83 -0
  4. package/docs/MULTI_AGENT_RUNTIME.md +4 -4
  5. package/docs/PLUGIN_SDK.md +7 -7
  6. package/docs/REALTIME_COLLABORATION.md +6 -6
  7. package/docs/V2_ARCHITECTURE.md +45 -25
  8. package/docs/WORKFLOW_DESIGNER.md +4 -4
  9. package/docs/architecture.md +127 -135
  10. package/docs/kg-schema.md +3 -3
  11. package/docs/public-deploy.md +2 -3
  12. package/docs/spec-vs-impl.md +13 -10
  13. package/knowledge_graph.py +2 -2
  14. package/latticeai/__init__.py +1 -1
  15. package/latticeai/api/models.py +8 -0
  16. package/latticeai/core/config.py +1 -1
  17. package/latticeai/core/graph_curator.py +2 -2
  18. package/latticeai/core/marketplace.py +2 -2
  19. package/latticeai/core/model_compat.py +7 -63
  20. package/latticeai/core/model_resolution.py +1 -1
  21. package/latticeai/core/multi_agent.py +1 -1
  22. package/latticeai/core/plugins.py +1 -1
  23. package/latticeai/core/realtime.py +1 -1
  24. package/latticeai/core/workflow_engine.py +1 -1
  25. package/latticeai/core/workspace_os.py +1 -1
  26. package/latticeai/server_app.py +1 -1
  27. package/latticeai/services/model_catalog.py +105 -153
  28. package/latticeai/services/model_recommendation.py +28 -17
  29. package/latticeai/services/model_runtime.py +2 -2
  30. package/llm_router.py +80 -92
  31. package/ltcai_cli.py +2 -3
  32. package/package.json +8 -3
  33. package/static/account.html +3 -1
  34. package/static/activity.html +5 -2
  35. package/static/admin.html +5 -1
  36. package/static/agents.html +5 -2
  37. package/static/chat.html +12 -10
  38. package/static/css/responsive.css +597 -0
  39. package/static/css/tokens.css +224 -165
  40. package/static/graph.html +12 -2
  41. package/static/lattice-reference.css +366 -739
  42. package/static/platform.css +45 -16
  43. package/static/plugins.html +5 -2
  44. package/static/scripts/admin.js +33 -33
  45. package/static/scripts/chat.js +109 -42
  46. package/static/scripts/graph.js +169 -11
  47. package/static/scripts/ux.js +167 -0
  48. package/static/workflows.html +5 -2
  49. package/static/workspace.css +55 -19
  50. package/static/workspace.html +5 -2
  51. package/telegram_bot.py +1 -1
package/README.md CHANGED
@@ -1,661 +1,205 @@
1
1
  <div align="center">
2
- <img src="https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/logo.svg" alt="Lattice AI" width="280"/>
3
- <br/>
4
- <strong>Lattice AI — Local-first Agentic Workspace Platform: plugins, visual workflows, multi-agent runs, and realtime activity over your graph, memory, skills, and timeline.</strong>
5
- <br/><br/>
6
-
7
- [![PyPI](https://img.shields.io/pypi/v/ltcai?label=PyPI&color=blue)](https://pypi.org/project/ltcai/)
8
- [![PyPI Downloads](https://img.shields.io/pypi/dm/ltcai?label=PyPI%20downloads)](https://pypi.org/project/ltcai/)
9
- [![npm](https://img.shields.io/npm/v/ltcai?label=npm)](https://www.npmjs.com/package/ltcai)
10
- [![VS Code](https://vsmarketplacebadges.dev/version-short/parktaesoo.ltcai.svg)](https://marketplace.visualstudio.com/items?itemName=parktaesoo.ltcai)
11
- [![Open VSX](https://img.shields.io/open-vsx/v/parktaesoo/ltcai?label=Open%20VSX)](https://open-vsx.org/extension/parktaesoo/ltcai)
12
- [![CI](https://github.com/TaeSooPark-PTS/LatticeAI/actions/workflows/ci.yml/badge.svg)](https://github.com/TaeSooPark-PTS/LatticeAI/actions/workflows/ci.yml)
13
- [![License: MIT](https://img.shields.io/badge/License-MIT-green)](./LICENSE)
14
- [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue)](https://www.python.org/)
15
-
16
- <br/>
17
-
18
- <img src="docs/images/hero.gif" alt="Lattice AI — AI Workspace OS for local-first graph, memory, and agents" width="100%"/>
19
- </div>
2
+ <img src="docs/images/logo.svg" alt="Lattice AI" width="120" />
20
3
 
21
- ---
4
+ # Lattice AI
22
5
 
23
- ## What is Lattice AI?
6
+ **A local-first AI workspace** — Plan → Execute → Review with multiple LLMs,
7
+ on top of a durable Knowledge Graph.
24
8
 
25
- Most AI tools answer one chat at a time. They do not remember your folders, your project history, your previous decisions, or how your files relate to each other.
9
+ Apple Silicon (MLX) local model management · Personal & Organization workspaces ·
10
+ Multi-agent workflows · SSO for teams
11
+ </div>
26
12
 
27
- **Lattice AI turns your local workspace into a Local-first Agentic Workspace Platform.**
13
+ ---
28
14
 
29
- It reads approved local folders, indexes chats and documents, builds a searchable knowledge graph, and connects the graph to snapshots, personal memory, agent runs, workflow history, skills, and an auditable timeline.
15
+ Lattice AI turns your files, documents, images, screenshots, conversations,
16
+ decisions, notes, and work history into linked knowledge. AI then works on top of
17
+ that Knowledge Graph to advise, analyze, generate documents, and automate work.
18
+
19
+ It is built around a simple product rule:
20
+
21
+ > Do not control the user in the name of protection. Explain clearly, disclose
22
+ > sources and risks, then let the user decide.
23
+
24
+ ## What Lattice AI is
25
+
26
+ Lattice AI is four things working together, not an operating system and not a
27
+ simple chat front-end:
28
+
29
+ - **Local-first AI Workspace** — runs on your machine first; your data and graph
30
+ stay local by default.
31
+ - **AI Pipeline Platform** — a Plan → Execute → Review loop that can route across
32
+ multiple LLMs for each stage.
33
+ - **Knowledge Graph Platform** — multimodal inputs become entities,
34
+ relationships, evidence, and artifacts that outlive any single model.
35
+ - **Workspace Platform** — Personal and Organization workspaces, role-based
36
+ access, and SSO for teams.
37
+
38
+ ## Highlights
39
+
40
+ - **Multimodal ingestion** — accepts PDFs, Word, spreadsheets, slide decks,
41
+ images, screenshots, notes, code, web content, conversations, and work logs
42
+ without asking you to pre-convert them.
43
+ - **Knowledge Graph core** — extracts entities, relationships, evidence,
44
+ decisions, and artifacts so your work memory survives model changes.
45
+ - **Multi-agent workflow** — agents hand off work with structured context
46
+ packets, review/retry loops, and replayable timelines.
47
+ - **Local model management** — MLX-VLM on Apple Silicon, with current-generation
48
+ multimodal model recommendations based on your CPU, GPU, RAM, storage, and OS.
49
+ - **Source disclosure** — every recommended model shows its facts in plain
50
+ language before use: maker country, maker company, run mode (local/cloud),
51
+ internet requirement, and model name.
52
+ - **Basic / Advanced / Admin modes** — the same features everywhere; the modes
53
+ differ only in how much is explained. Admin mode adds authority
54
+ (user management, permissions, audit logs, org/security policy, model approval).
55
+
56
+ ## v2.2.1 — Frontend & UX overhaul
57
+
58
+ v2.2.1 is a UX-focused release. No features were removed; the interface was
59
+ re-laid out and re-themed.
60
+
61
+ - **Responsive, mobile-first UI** — phone, tablet, laptop, desktop, ultrawide,
62
+ and 4K. Content is re-laid out for each size, never hidden.
63
+ - **Light / Dark themes via design tokens** — a single source of truth in
64
+ [`static/css/tokens.css`](static/css/tokens.css). `:root` holds light values,
65
+ `[data-lt-theme="dark"]` holds dark values. The theme toggle, OS preference
66
+ detection, and persistence live in
67
+ [`static/scripts/ux.js`](static/scripts/ux.js).
68
+ - **Accessibility** — 44px touch targets, `:focus-visible` rings, a
69
+ keyboard-safe chat composer (uses `visualViewport` insets), iOS no-zoom inputs,
70
+ and reduced-motion support.
71
+ - **Knowledge Graph UX** — responsive canvas that re-fits on resize, zoom
72
+ buttons, fullscreen, minimap, relationship filtering, a mobile graph↔card
73
+ view, and a theme-aware palette.
74
+ - **Admin UX** — wide tables reflow to cards on mobile, with larger touch targets
75
+ and full dark/light support.
76
+ - **File UX** — drag & drop and screenshot paste to attach. Model cards explain
77
+ country, company, run mode, and internet use in plain language.
78
+
79
+ ## Knowledge Graph flow
30
80
 
31
81
  ```text
32
- Local files + chats + folders
33
-
34
- Automatic knowledge graph
35
-
36
- Graph-aware chat, snapshots, memory, agents, workflows, skills, and timeline
82
+ files / documents / images / conversations / work history
83
+ -> multimodal understanding
84
+ -> entity extraction
85
+ -> relationship extraction
86
+ -> evidence storage
87
+ -> Knowledge Graph update
88
+ -> advice / analysis / document generation / automation
37
89
  ```
38
90
 
39
- ## Why Lattice AI?
91
+ The graph preserves your work memory even when the model changes.
40
92
 
41
- - **Local-first by default** — models, data, and your knowledge graph stay on your machine (`~/.ltcai/`); cloud is strictly opt-in.
42
- - **Memory that compounds** — every chat, file, and folder you approve becomes durable, searchable context instead of being forgotten.
43
- - **A graph, not a pile of files** — people, projects, documents, decisions, and tasks are linked automatically and explored visually.
44
- - **One workspace, everywhere** — the same local knowledge powers the web UI, VS Code / Cursor, Telegram, and MCP clients.
45
- - **Built-in governance** — Personal and Organization workspaces, roles, an audit timeline, and sensitive-data monitoring for teams.
93
+ ## Local model policy
46
94
 
47
- ## Core Capabilities
95
+ Lattice AI recommends current-generation **multimodal** models for local use and
96
+ keeps text-only recommendation paths out of the product:
48
97
 
49
- | Capability | What it does |
50
- |---|---|
51
- | 🧠 Automatic knowledge graph | Turns chats, files, and folders into linked nodes and edges, curated automatically |
52
- | 💬 Graph-aware chat & agents | Answers and multi-step agents grounded in your indexed local memory |
53
- | 🖥️ Local model recommendation | Scans your hardware and rates each model **Recommended / Compatible / Not Recommended** |
54
- | 🗂️ Workspaces & roles | Personal and Organization workspaces with owner / admin / member / viewer permissions |
55
- | 🧩 Skills & MCP | Install skills and connect MCP tools from the in-product marketplace |
56
- | 🔒 Admin & security | Audit timeline, permission approvals, sensitive-data detection, exportable reports |
98
+ | Family | Default role | Example current recommendation |
99
+ | --- | --- | --- |
100
+ | Gemma 4 | Default Google multimodal family | `mlx-community/gemma-4-12b-it-4bit` |
101
+ | Gemma 4 large | Higher-quality local multimodal work | `mlx-community/gemma-4-31b-it-4bit` |
102
+ | Qwen3-VL | Smaller, balanced multimodal options | `mlx-community/Qwen3-VL-4B-Instruct-4bit` |
103
+ | Llama 4 | Meta multimodal option | `mlx-community/Llama-4-Scout-17B-16E-Instruct-4bit` |
57
104
 
58
- <div align="center">
59
- <img src="docs/images/onboarding.png" alt="Onboarding flow: install, system scan, model recommendation, workspace, indexing, knowledge graph, first chat" width="100%"/>
60
- </div>
105
+ Low-spec machines use smaller or quantized multimodal models rather than older
106
+ text-only models. See [MODEL_POLICY.md](MODEL_POLICY.md) for the full policy.
61
107
 
62
- ---
108
+ ## Requirements
63
109
 
64
- ## Quick Start
110
+ - Python **3.11+**
111
+ - macOS, Windows, or Linux for the workspace server
112
+ - Apple Silicon for local MLX-VLM model execution (optional; cloud models work
113
+ without it)
65
114
 
66
- ### Python / PyPI
115
+ ## Quick start
67
116
 
68
- ```bash
69
- pip install ltcai
70
- LTCAI
71
- # open http://localhost:4825
72
- ```
73
-
74
- ### Apple Silicon local models
117
+ Lattice AI is a Python + FastAPI app. The CLI entry point is `ltcai_cli.py`.
75
118
 
76
119
  ```bash
77
- pip install "ltcai[local]"
78
- LTCAI
120
+ npm install # installs the npm package and dev tooling
121
+ npm run dev # runs: python3 ltcai_cli.py --reload
79
122
  ```
80
123
 
81
- ### Node / npm
82
-
83
- ```bash
84
- npm install -g ltcai
85
- LTCAI
86
- ```
87
-
88
- ### VS Code / Cursor
89
-
90
- 1. Install **Lattice AI** from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=parktaesoo.ltcai) or [Open VSX](https://open-vsx.org/extension/parktaesoo/ltcai)
91
- 2. Start the local server with `LTCAI`
92
- 3. Press `Cmd+Shift+A` to open the chat panel
93
-
94
- **First run:** create an account -> the first account becomes admin -> open `/workspace` -> complete onboarding -> choose a model -> connect folders -> start asking questions.
95
-
96
- ---
97
-
98
- ## The 3-minute workflow
124
+ Then open:
99
125
 
100
126
  ```text
101
- 1. Install
102
- pip install ltcai && LTCAI
103
-
104
- 2. Detect hardware
105
- CPU, GPU, RAM are detected and a suitable local model is recommended.
106
-
107
- 3. Connect folders
108
- Pick the local folders you want Lattice AI to index.
109
-
110
- 4. Build knowledge
111
- Files and chats become nodes and edges in a local knowledge graph.
112
-
113
- 5. Ask questions
114
- “What did I decide about the auth migration last week?”
115
-
116
- 6. Keep working
117
- Use the same local knowledge from the web UI, VS Code, Telegram, or MCP clients.
127
+ http://127.0.0.1:4825
118
128
  ```
119
129
 
120
- ---
121
-
122
- ## Architecture
123
-
124
- `server:app` stays a thin compatibility entrypoint; the FastAPI app is assembled in
125
- `latticeai/server_app.py`, and the work lives in focused API routers, a service
126
- layer, and core modules — so the app shell never grows monolithic again.
127
-
128
- <div align="center">
129
- <img src="docs/images/architecture.png" alt="Lattice AI architecture — entrypoint, API routers, services, core, local engines and knowledge graph" width="100%"/>
130
- </div>
131
-
132
- See [docs/architecture.md](docs/architecture.md) for request and data-flow detail.
133
-
134
- ---
135
-
136
- ## Product Preview
137
-
138
- <table>
139
- <tr>
140
- <td align="center" width="33%">
141
- <b>Workspace Chat</b><br/>
142
- <img src="https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/screenshot-chat.png" alt="Lattice AI workspace chat" width="100%"/>
143
- <sub>Chat with local/cloud models, upload files, and control pipelines.</sub>
144
- </td>
145
- <td align="center" width="33%">
146
- <b>Knowledge Graph</b><br/>
147
- <img src="https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/screenshot-graph.png" alt="Lattice AI knowledge graph" width="100%"/>
148
- <sub>Automatically built from chats, files, folders, and project context.</sub>
149
- </td>
150
- <td align="center" width="33%">
151
- <b>Admin Dashboard</b><br/>
152
- <img src="https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/screenshot-admin.png" alt="Lattice AI admin dashboard" width="100%"/>
153
- <sub>User management, audit logs, permissions, and security monitoring.</sub>
154
- </td>
155
- </tr>
156
- </table>
157
-
158
- > Every image in this section is a **real screenshot** of the running app
159
- > (Lattice AI v2.0.0), captured with a headless browser.
160
-
161
- ---
162
-
163
- ## Product Experience
164
-
165
- ### Onboard in minutes
166
-
167
- A first run detects your OS, CPU, GPU, RAM, and disk, then recommends a local
168
- model and rates every option **Recommended**, **Compatible**, or **Not
169
- Recommended** for your machine — grouped by family (Gemma, Qwen, Llama, Phi,
170
- DeepSeek, and more), with estimated RAM and a clear next step.
171
-
172
- <div align="center">
173
- <img src="docs/images/onboarding.png" alt="Onboarding hardware scan: OS, CPU, GPU, RAM, disk, runtime" width="49%"/>
174
- <img src="docs/images/model-recommendation.png" alt="Local model recommendation with best-pick callout and per-family status" width="49%"/>
175
- </div>
176
-
177
- ### Workspaces & organization
178
-
179
- A **Current Workspace** card shows exactly where you are; switch instantly
180
- between a **Personal** workspace and shared **Organization** workspaces. Org data
181
- is scoped by `workspace_id`, and `owner / admin / member / viewer` roles map to a
182
- transparent permission matrix with member management. A Workspace Health panel
183
- summarizes indexed files, graph size, installed skills, memories, agent runs,
184
- current model, last sync time, and status at a glance.
185
-
186
- <div align="center">
187
- <img src="docs/images/workspace.png" alt="Current Workspace summary card with scoped counts" width="100%"/>
188
- <img src="docs/images/organization.png" alt="Organization workspace with members and roles" width="100%"/>
189
- </div>
190
-
191
- ### Knowledge graph explorer
192
-
193
- Your work becomes a typed knowledge graph automatically. The Entity Explorer
194
- surfaces the most important entities and, on selection, their inbound/outbound
195
- relationships, related entities, and a path back to you.
196
-
197
- <div align="center">
198
- <img src="docs/images/graph.png" alt="Knowledge graph entity explorer with relationship detail" width="100%"/>
199
- </div>
200
-
201
- The Graph Canvas also supports node expand/collapse, focused subgraphs,
202
- relationship highlighting, shortest-path visualization, and direct navigation
203
- back into source conversations or files.
204
-
205
- ### Skills & editions
206
-
207
- Browse and install skills from an in-product marketplace; an honest editions
208
- panel shows that every Enterprise capability is an opt-in extension point,
209
- disabled in the open-source Community build.
210
-
211
- <div align="center">
212
- <img src="docs/images/skills.png" alt="Skill marketplace tabs: recommended, popular, installed, updates" width="49%"/>
213
- <img src="docs/images/enterprise.png" alt="Enterprise capability status panel — all disabled in Community" width="49%"/>
214
- </div>
215
-
216
- ---
217
-
218
- ## Why it is different
219
-
220
- | Problem | Lattice AI approach |
221
- |---|---|
222
- | AI forgets every conversation | Chats and files are indexed into persistent local memory |
223
- | Files are scattered across folders | Approved folders become searchable graph context |
224
- | Local model setup is confusing | Hardware detection recommends and loads a suitable model |
225
- | Graph tools require manual node editing | Nodes and edges are created automatically from real work |
226
- | Cloud AI may expose private data | Local models keep data on your machine; cloud is opt-in |
227
- | Teams need visibility | Admin dashboard, audit logs, role controls, and sensitive-data monitoring |
228
-
229
- ---
230
-
231
- ## Core Features
232
-
233
- ### Local-first AI workspace
234
-
235
- - Web UI running from a local server
236
- - Local SQLite storage under `~/.ltcai/`
237
- - Local folder indexing with explicit approval
238
- - File upload, chat history, graph search, and document generation
239
- - Optional cloud providers when you choose to use them
240
-
241
- ### Automatic knowledge graph
242
-
243
- Lattice AI turns your work into structure automatically.
244
-
245
- **Nodes** can represent:
246
-
247
- | Node type | Examples |
248
- |---|---|
249
- | Document | PDF, DOCX, PPTX, XLSX, Markdown, code files |
250
- | Concept | technologies, project names, ideas, architecture topics |
251
- | Person | you, teammates, mentioned people |
252
- | Chat | previous conversations and sessions |
253
- | Task | TODOs, action items, follow-ups |
254
- | Decision | choices made during discussions |
255
-
256
- **Edges** describe relationships such as:
257
-
258
- `mentions` · `contains` · `depends on` · `explains` · `uses` · `replaces` · `supports` · `related to`
259
-
260
- The graph is curated automatically: noisy tokens, file extensions, generic words, and hard secrets are filtered before promotion.
261
-
262
- ### Model loading that users can trust
263
-
264
- Lattice AI keeps model identity consistent across recommendation, download, load, backend router state, and frontend display.
265
-
266
- - unified model resolution
267
- - local model smoke test after load
268
- - `ok` / `degraded` / `failed` compatibility status
269
- - per-family compatibility profiles for GPT-OSS, Gemma, Qwen, Llama, Mistral, Phi, Deepseek, and more
270
- - fast post-processing path during normal chat
271
- - recovery path only when output looks broken
272
-
273
- ### Admin and security command center
274
-
275
- For team or organization usage, Lattice AI includes admin-facing controls:
276
-
277
- - user management and roles
278
- - permission approvals for local file access
279
- - audit event timeline
280
- - sensitive chat/file detection
281
- - risk overview by user
282
- - raw data explorer with hard-secret redaction
283
- - export to JSON, CSV, XLSX, TXT, or PDF
284
-
285
- Hard secrets such as API keys, tokens, passwords, private keys, and common cloud credentials are redacted from security responses.
286
-
287
- ---
288
-
289
- ## Supported Models
290
-
291
- ### Local on Apple Silicon MLX
292
-
293
- | Model | Best for | Approx. size | Suggested RAM |
294
- |---|---|---:|---:|
295
- | Qwen3-VL 4B | Multimodal / low spec | ~2.7 GB | 8 GB |
296
- | Qwen3-VL 8B | Multimodal / balanced | ~4.8 GB | 16 GB |
297
- | GPT-OSS 20B | Reasoning / open-weight | ~12.1 GB | 32 GB |
298
- | Gemma 4 26B | Multimodal / large | ~15.6 GB | 32 GB |
299
- | Gemma 4 31B | Multimodal / latest Gemma 4 | ~18.4 GB | 48 GB |
300
- | Qwen3-VL 30B A3B | Multimodal / top local | ~18 GB | 48 GB |
301
- | GPT-OSS 120B | Large reasoning model | ~62.3 GB | 128 GB |
302
- | Phi 4 Mini | Fast coding/general chat | ~2.2 GB | 8 GB |
303
- | Llama 3.1 8B | General chat | ~4.7 GB | 8 GB |
304
- | Mistral 7B v0.3 | General / Apache | ~4.1 GB | 8 GB |
305
-
306
- ### Cross-platform engines
307
-
308
- Lattice AI can also work with models served by:
309
-
310
- - Ollama
311
- - LM Studio
312
- - llama.cpp
313
- - vLLM
314
- - OpenAI-compatible local or remote endpoints
315
-
316
- ### Cloud providers
317
-
318
- Cloud models are optional. When enabled, prompts are sent to the selected provider.
319
-
320
- Supported routes include OpenAI-compatible APIs, OpenRouter, Groq, Together, xAI, and other compatible endpoints.
321
-
322
- ---
323
-
324
- ## Privacy and data storage
325
-
326
- | Area | Default behavior |
327
- |---|---|
328
- | Storage | Data is stored locally under `~/.ltcai/` |
329
- | Default binding | `127.0.0.1:4825` local server |
330
- | Telemetry | No built-in product telemetry by default |
331
- | Folder access | Explicit approval per folder/action scope |
332
- | Sensitive files | `.env`, credentials, keys, certificates, and similar files are auto-excluded |
333
- | Cloud models | Off unless configured; cloud prompts go to the selected provider |
334
- | Delete controls | Remove chats, graph nodes, indexed folders, and local data |
335
-
336
- ---
337
-
338
- ## Comparison
339
-
340
- | Capability | Lattice AI | Open WebUI | Continue.dev | GitHub Copilot |
341
- |---|:---:|:---:|:---:|:---:|
342
- | Local model workflow | Yes | Yes | Yes | No |
343
- | Local folder indexing | Yes | Limited | Workspace-focused | Limited |
344
- | Automatic knowledge graph | Yes | No | No | No |
345
- | Chat + file memory | Yes | Partial | Partial | Partial |
346
- | VS Code / Cursor extension | Yes | No | Yes | Yes |
347
- | Admin dashboard | Yes | Yes | No | No |
348
- | Security audit exports | Yes | Limited | No | No |
349
- | Optional cloud models | Yes | Yes | Yes | Yes |
350
- | Local-first by default | Yes | Self-hosted | Local/dev focused | No |
351
-
352
- ---
353
-
354
- ## Current release
355
-
356
- **2.1.0 — Agent Platform Maturity Release.** Lattice AI operationalizes the
357
- v2.0 platform without replacing it: agent handoff, context packets, review/retry,
358
- planning, memory, replay, marketplace templates, and realtime execution
359
- observability are now first-class and still additive.
360
-
361
- - **Agent handoff + context packets** — handoffs now carry `handoff_id`,
362
- source/target agent ids, reason, status, timestamps, and safe structured
363
- context packets for replayable role transfer.
364
- - **Review / retry loops** — Planner -> Executor -> Reviewer records plan
365
- review, reviewer notes, retry history, retry limits, and failure propagation.
366
- - **Timeline / replay** — agent and workflow runs expose replay frames showing
367
- who acted, when, why, input, output, and decisions.
368
- - **Agent memory + planning** — short-term, workspace, and long-term memory
369
- kinds are supported with workspace-scoped snapshots; plans are persisted with
370
- run history and plan-review metadata.
371
- - **Workflow / agent / plugin hardening** — plugin outputs enter agent context,
372
- agent outputs enter workflow outputs, and plugin/workflow/agent failures emit
373
- observable execution events.
374
- - **Marketplace foundation** — local Plugin, Workflow, and Agent templates have
375
- metadata, export/import, install hooks, and a registry. No cloud marketplace
376
- service is introduced.
377
- - **Realtime execution observability** — existing SSE feed now emits agent,
378
- handoff, review, retry, workflow, plugin, and execution failure events.
379
- - **Compatibility preserved** — API schemas, `server:app`,
380
- `latticeai.server_app.app`, CLI, MCP, model, workspace, chat, KG, existing
381
- skills/snapshots/memories/agent history, and the VS Code extension remain
382
- backward compatible. Changes are additive; no destructive migrations.
383
-
384
- | Version | Theme |
385
- |---|---|
386
- | **2.1.0** | Agent Platform Maturity Release (handoff, context packets, review/retry, replay, memory, planning, marketplace foundation) |
387
- | 2.0.0 | Agentic Workspace Platform (Plugin SDK, Workflow Designer, Multi-Agent Runtime, Realtime) |
388
- | 1.7.0 | Graph & Collaboration Release |
389
- | 1.6.0 | Product Experience Deepening (UX + real screenshots) |
390
- | 1.5.0 | Unified Product Release (CI/VSIX recovery, model recommendation, Enterprise PoC) |
391
- | 1.4.0 | Server App final decomposition |
392
- | 1.1.0–1.3.0 | Organization workspaces, modularization, route safety net |
393
-
394
- See the full [changelog](docs/CHANGELOG.md) and [RELEASE.md](RELEASE.md).
395
-
396
- ---
397
-
398
- <details>
399
- <summary><b>All Features</b></summary>
400
-
401
- ### Core experience
402
-
403
- | Feature | Description |
404
- |---|---|
405
- | Web UI | Chat, file upload, model picker, graph view, admin pages |
406
- | Auto setup wizard | Detect hardware, recommend model, install dependencies, verify load |
407
- | Graph RAG | Retrieve context from indexed chats, files, and graph relationships |
408
- | Local folder indexing | Browse, audit, approve, index, and optionally watch folders |
409
- | Document generation | Use graph context to generate reports, summaries, and structured drafts |
410
-
411
- ### Developer tools
412
-
413
- | Feature | Description |
414
- |---|---|
415
- | VS Code / Cursor | Chat panel, edit selection, explain code, generate code |
416
- | Multi-step agent | File edit/create, grep, todo, and terminal workflow with human-in-the-loop |
417
- | Multi-LLM pipeline | Plan, execute, and review with different models |
418
- | MCP server | Expose Lattice tools to MCP-compatible clients |
419
- | MCP registry | Install MCP servers from supported registries |
420
- | Skills browser | Browse and install optional skills |
421
- | Plugin browser | Browse compatible open-source plugins |
422
-
423
- ### Access and communication
424
-
425
- | Feature | Description |
426
- |---|---|
427
- | Telegram bot | Chat, upload files, and manage models remotely |
428
- | PWA | Install the web UI on mobile/tablet home screens |
429
- | Public tunnel | `LTCAI --tunnel` for a temporary Cloudflare HTTPS URL |
430
-
431
- ### Administration
432
-
433
- | Feature | Description |
434
- |---|---|
435
- | User management | Roles, permissions, account enable/disable |
436
- | SSO | Entra ID / Okta OIDC configuration |
437
- | Audit dashboard | AI usage, sensitive-data events, file access, exports |
438
- | Security monitoring | Rate limits, approval logs, raw explorer, redaction |
439
-
440
- </details>
441
-
442
- <details>
443
- <summary><b>Security</b></summary>
444
-
445
- | Property | Detail |
446
- |---|---|
447
- | Binding | Default `127.0.0.1:4825` local only |
448
- | Auth | Session required when network-exposed or public mode |
449
- | Cookies | `HttpOnly + SameSite=Lax`; no localStorage token |
450
- | Local file access | Approval-token gated by path, user, and action scope |
451
- | Package install | Admin-only with audit trail for MCP, skills, pip, npm |
452
- | CORS | Localhost only by default; configurable via `LATTICEAI_CORS_ALLOWED_ORIGINS` |
453
- | File upload | Magic-number signature checks for extension spoofing defense |
454
- | Rate limits | `/chat` 30/min · `/agent` 6/min · `/upload` 12/min per user |
455
- | Telemetry | No built-in product telemetry by default |
456
-
457
- Report vulnerabilities in [SECURITY.md](SECURITY.md).
458
-
459
- </details>
460
-
461
- <details>
462
- <summary><b>Setup & Configuration</b></summary>
463
-
464
- ### VS Code shortcuts
465
-
466
- | Shortcut | Action |
467
- |---|---|
468
- | `Cmd+Shift+A` | Open chat |
469
- | `Cmd+Shift+E` | Edit selected code |
470
- | `Cmd+Shift+M` | Load or switch model |
471
- | Right-click | Explain / Save to Knowledge Garden |
472
-
473
- ### Telegram bot
474
-
475
- ```bash
476
- LATTICEAI_TELEGRAM_BOT_TOKEN=your-token LTCAI
477
- ```
478
-
479
- ### Public server
130
+ Prefer Python directly?
480
131
 
481
132
  ```bash
482
- LATTICEAI_MODE=public \
483
- LATTICEAI_PUBLIC_MODEL=openai:gpt-4o-mini \
484
- OPENAI_API_KEY=sk-... \
485
- LATTICEAI_INVITE_CODE=my-secret \
486
- LTCAI
133
+ python3 ltcai_cli.py
134
+ # host/port: --host 127.0.0.1 --port 4825
487
135
  ```
488
136
 
489
- ### Public tunnel
137
+ For local model execution on Apple Silicon, install the optional extra:
490
138
 
491
139
  ```bash
492
- LTCAI --tunnel
493
- # → https://xxxx.trycloudflare.com
140
+ pip install "ltcai[local]" # adds mlx-vlm
494
141
  ```
495
142
 
496
- ### Auto-start on macOS
143
+ Useful commands:
497
144
 
498
145
  ```bash
499
- cat > ~/Library/LaunchAgents/com.ltcai.plist << 'EOF'
500
- <?xml version="1.0" encoding="UTF-8"?>
501
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
502
- <plist version="1.0">
503
- <dict>
504
- <key>Label</key><string>com.ltcai</string>
505
- <key>ProgramArguments</key><array><string>/usr/local/bin/LTCAI</string></array>
506
- <key>RunAtLoad</key><true/>
507
- <key>KeepAlive</key><true/>
508
- <key>StandardOutPath</key><string>/tmp/ltcai.log</string>
509
- <key>StandardErrorPath</key><string>/tmp/ltcai.err</string>
510
- </dict>
511
- </plist>
512
- EOF
513
- launchctl load ~/Library/LaunchAgents/com.ltcai.plist
146
+ npm test # python3 -m pytest tests/ -v
147
+ npm run check:python # py_compile across core modules
148
+ npm run build # python3 -m build
514
149
  ```
515
150
 
516
- </details>
517
-
518
- <details>
519
- <summary><b>API Reference</b></summary>
520
-
521
- | Method | Path | Description |
522
- |---|---|---|
523
- | GET | `/health` | Server status and current model |
524
- | GET | `/models` | Model list and load state |
525
- | POST | `/models/load` | Load a model |
526
- | POST | `/chat` | Chat with streaming or non-streaming output |
527
- | POST | `/agent` | Multi-step file agent |
528
- | GET | `/knowledge-graph/stats` | Graph statistics |
529
- | GET | `/knowledge-graph/search?q=` | Search the knowledge graph |
530
- | GET | `/knowledge-graph/local/roots` | Discover local drives and folders |
531
- | POST | `/knowledge-graph/local/audit` | Audit a folder before indexing |
532
- | POST | `/knowledge-graph/local/index` | Index a folder into Graph RAG |
533
- | GET | `/mcp/installed` | Installed MCP servers |
534
- | POST | `/mcp/install` | Install MCP server as admin |
535
- | GET | `/skills/marketplace` | Skills marketplace |
536
- | POST | `/skills/install` | Install a skill as admin |
537
- | GET | `/admin/audit` | Audit report |
538
- | GET | `/permissions/pending` | Pending file-access approvals |
539
-
540
- Full reference: [docs/mcp-tools.md](docs/mcp-tools.md)
541
-
542
- </details>
543
-
544
- <details>
545
- <summary><b>Troubleshooting</b></summary>
546
-
547
- | Symptom | Fix |
548
- |---|---|
549
- | Port 4825 is already in use | `lsof -i :4825` then `kill <PID>`, or run `LTCAI --port 4826` |
550
- | `ModuleNotFoundError: mlx` | Install local extras with `pip install "ltcai[local]"` on Apple Silicon |
551
- | Python version is too old | Use Python 3.11 or newer |
552
- | No API key warning | Set a provider key or use a local model |
553
- | Cannot reach from iPad | Use `LATTICEAI_HOST=0.0.0.0 LTCAI` or `LTCAI --tunnel` |
554
- | Model loads but chat looks broken | Check compatibility status; try another engine or model family |
555
-
556
- </details>
557
-
558
- ---
559
-
560
- ## Platform Support
561
-
562
- | Feature | macOS Apple Silicon | macOS Intel / Windows / Linux |
563
- |---|:---:|:---:|
564
- | Web UI + cloud models | Yes | Yes |
565
- | VS Code / Cursor extension | Yes | Yes |
566
- | Telegram bot | Yes | Yes |
567
- | MLX local models | Yes | No |
568
- | Ollama / LM Studio / vLLM / llama.cpp | Yes | Yes |
569
-
570
- ---
571
-
572
- ## Distribution
573
-
574
- | Channel | Link |
575
- |---|---|
576
- | PyPI | [pypi.org/project/ltcai](https://pypi.org/project/ltcai/) |
577
- | npm | [npmjs.com/package/ltcai](https://www.npmjs.com/package/ltcai) |
578
- | VS Code Marketplace | [marketplace.visualstudio.com](https://marketplace.visualstudio.com/items?itemName=parktaesoo.ltcai) |
579
- | Open VSX | [open-vsx.org](https://open-vsx.org/extension/parktaesoo/ltcai) |
580
-
581
- ---
582
-
583
- ## Documentation
584
-
585
- | Doc | What's inside |
586
- |---|---|
587
- | [docs/architecture.md](docs/architecture.md) | App structure, request and data flow |
588
- | [docs/CHANGELOG.md](docs/CHANGELOG.md) | Full version history |
589
- | [RELEASE.md](RELEASE.md) | Release notes and the build/publish checklist |
590
- | [SECURITY.md](SECURITY.md) | Security model and vulnerability reporting |
591
- | [docs/ENTERPRISE.md](docs/ENTERPRISE.md) · [docs/EDITION_STRATEGY.md](docs/EDITION_STRATEGY.md) | Open-core boundary and edition strategy |
592
- | [docs/kg-schema.md](docs/kg-schema.md) · [docs/mcp-tools.md](docs/mcp-tools.md) | Knowledge graph schema and MCP tool catalog |
593
- | [docs/privacy.md](docs/privacy.md) · [docs/public-deploy.md](docs/public-deploy.md) · [docs/OPERATIONS.md](docs/OPERATIONS.md) | Privacy, public deployment, operations |
594
-
595
- ---
151
+ ## VS Code extension
596
152
 
597
- ## Contributing
598
-
599
- See [CONTRIBUTING.md](CONTRIBUTING.md). Issues and pull requests are welcome.
600
-
601
- ## License
602
-
603
- MIT — [TaeSoo Park](https://github.com/TaeSooPark-PTS)
604
-
605
- ---
606
-
607
- <details>
608
- <summary>한국어 안내 (Korean)</summary>
609
-
610
- ## Lattice AI
611
-
612
- **내 PC의 파일, 대화, 폴더를 기억하고 연결하는 로컬 우선 AI 워크스페이스**
613
-
614
- 대부분의 AI 도구는 대화가 끝나면 맥락을 잊습니다. Lattice AI는 승인한 로컬 폴더와 대화를 인덱싱하고, 사람·프로젝트·개념·문서를 자동으로 지식 그래프로 연결합니다.
615
-
616
- ```text
617
- 로컬 파일 + 대화 + 폴더
618
-
619
- 자동 지식 그래프
620
-
621
- 그래프 기반 AI 검색, 채팅, 문서 생성, 관리자 감사
622
- ```
623
-
624
- ### 설치
153
+ A companion VS Code extension lives in [`vscode-extension/`](vscode-extension).
625
154
 
626
155
  ```bash
627
- pip install ltcai
628
- LTCAI
629
- # http://localhost:4825
156
+ cd vscode-extension
157
+ npm install
158
+ npm run build
159
+ npm run package:vsix
630
160
  ```
631
161
 
632
- Apple Silicon에서 로컬 모델까지 쓰려면:
162
+ ## Build & packaging
163
+
164
+ Lattice AI ships as a Python package (`ltcai`), an npm package (`ltcai`), and a
165
+ VS Code extension.
633
166
 
634
167
  ```bash
635
- pip install "ltcai[local]"
636
- LTCAI
168
+ python3 -m build # Python wheel + sdist
169
+ npm pack # npm tarball
637
170
  ```
638
171
 
639
- ### 사용 흐름
172
+ Publishing is intentionally manual — no glob uploads. See [RELEASE.md](RELEASE.md)
173
+ for the exact, version-scoped publish steps for PyPI, npm, the VS Code
174
+ Marketplace, and Open VSX.
640
175
 
641
- ```text
642
- 1. 설치한다.
643
- 2. CPU, GPU, RAM을 감지해서 적합한 로컬 모델을 추천받는다.
644
- 3. 연결할 로컬 폴더를 선택한다.
645
- 4. 파일과 대화가 자동으로 지식 그래프가 된다.
646
- 5. “지난주 인증 마이그레이션에서 결정한 게 뭐였지?”처럼 질문한다.
647
- 6. 같은 지식을 웹 UI, VS Code, Telegram, MCP에서 사용한다.
648
- ```
176
+ ## Documentation
649
177
 
650
- ### 핵심 차별점
178
+ - [ARCHITECTURE.md](ARCHITECTURE.md) — system shape and runtime policy
179
+ - [docs/architecture.md](docs/architecture.md) — full architecture reference
180
+ - [PROJECT_PRINCIPLES.md](PROJECT_PRINCIPLES.md) — product principles
181
+ - [AI_PHILOSOPHY.md](AI_PHILOSOPHY.md) — how AI is used here
182
+ - [MODEL_POLICY.md](MODEL_POLICY.md) — local model recommendation policy
183
+ - [KNOWLEDGE_GRAPH.md](KNOWLEDGE_GRAPH.md) — graph model and behavior
184
+ - [docs/MULTI_AGENT_RUNTIME.md](docs/MULTI_AGENT_RUNTIME.md) — multi-agent runtime
185
+ - [docs/WORKFLOW_DESIGNER.md](docs/WORKFLOW_DESIGNER.md) — workflow designer
186
+ - [docs/REALTIME_COLLABORATION.md](docs/REALTIME_COLLABORATION.md) — realtime collaboration
187
+ - [docs/ENTERPRISE.md](docs/ENTERPRISE.md) — Organization workspaces & SSO (Okta / Microsoft Entra ID)
188
+ - [docs/security-model.md](docs/security-model.md) — security model
189
+ - [docs/PLUGIN_SDK.md](docs/PLUGIN_SDK.md) — plugin SDK
190
+ - [RELEASE_NOTES.md](RELEASE_NOTES.md) · [docs/CHANGELOG.md](docs/CHANGELOG.md)
191
+
192
+ ## Release history
651
193
 
652
- - **내 데이터가 AI의 기억이 됨** — 채팅과 파일을 자동으로 구조화
653
- - **로컬 우선** 기본 데이터는 `~/.ltcai/`에 저장
654
- - **자동 그래프**사용자가 노드와 엣지를 직접 만들 필요 없음
655
- - **모델 추천/로드 흐름** 하드웨어 감지 적합한 모델 추천
656
- - **선택형 클라우드** 클라우드 모델은 사용자가 설정한 경우에만 사용
657
- - **관리자/보안 기능** 권한, 감사 로그, 민감정보 감지, export 지원
194
+ | Version | Theme |
195
+ | --- | --- |
196
+ | **2.2.1** | Frontend & UX overhaul responsive, design-token theming, accessibility, graph/admin UX |
197
+ | 2.2.0 | Multimodal-first Knowledge Graph, source disclosure, Gemma-4 recommendation policy |
198
+ | 2.1.0 | Agent platform maturity |
199
+ | 2.0.0 | Agentic workspace platform |
200
+ | 1.7.0 | Graph and collaboration |
201
+ | 1.6.0 | Product experience deepening |
658
202
 
659
- 자세한 내용은 [docs/CHANGELOG.md](docs/CHANGELOG.md), [SECURITY.md](SECURITY.md), [CONTRIBUTING.md](CONTRIBUTING.md)를 참고하세요.
203
+ ## License
660
204
 
661
- </details>
205
+ MIT