ltcai 0.1.31 โ 0.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.
- package/README.md +233 -193
- package/docs/CHANGELOG.md +56 -0
- package/latticeai/__init__.py +1 -0
- package/latticeai/__pycache__/__init__.cpython-314.pyc +0 -0
- package/latticeai/api/__init__.py +1 -0
- package/latticeai/api/__pycache__/admin.cpython-314.pyc +0 -0
- package/latticeai/api/__pycache__/auth.cpython-314.pyc +0 -0
- package/latticeai/api/admin.py +187 -0
- package/latticeai/api/auth.py +233 -0
- package/latticeai/core/__init__.py +1 -0
- package/latticeai/core/__pycache__/__init__.cpython-314.pyc +0 -0
- package/latticeai/core/__pycache__/audit.cpython-314.pyc +0 -0
- package/latticeai/core/__pycache__/security.cpython-314.pyc +0 -0
- package/latticeai/core/__pycache__/sessions.cpython-314.pyc +0 -0
- package/latticeai/core/audit.py +245 -0
- package/latticeai/core/security.py +131 -0
- package/latticeai/core/sessions.py +72 -0
- package/package.json +2 -1
- package/server.py +94 -719
package/README.md
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<img src="https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/logo.svg" alt="Lattice AI" width="280"/>
|
|
3
3
|
<br/>
|
|
4
|
-
<strong>
|
|
5
|
-
<br/>
|
|
6
|
-
Local LLMs, cloud models, VS Code / Cursor, Telegram, MCP tools, files, admin controls, and a knowledge graph in one self-hosted stack.
|
|
4
|
+
<strong>Private local AI workspace that turns your files, chats, and folders into a searchable knowledge graph.</strong>
|
|
7
5
|
<br/><br/>
|
|
8
6
|
|
|
9
7
|
[](https://pypi.org/project/ltcai/)
|
|
@@ -23,59 +21,62 @@
|
|
|
23
21
|
|
|
24
22
|
---
|
|
25
23
|
|
|
26
|
-
##
|
|
24
|
+
## Why Lattice AI?
|
|
25
|
+
|
|
26
|
+
Most AI tools forget everything after each conversation. Your files sit in folders, your chats vanish, and nothing connects.
|
|
27
27
|
|
|
28
|
-
**Lattice AI
|
|
28
|
+
**Lattice AI remembers.** It reads your local files, indexes your conversations, and builds a knowledge graph that links people, projects, concepts, and documents โ all on your machine, with zero data leaving your PC.
|
|
29
29
|
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
- ๐ **MCP server** โ use Lattice tools inside Claude Desktop / Cursor
|
|
34
|
-
- ๐ **Zero telemetry** โ all data stays in `~/.ltcai/` on your machine
|
|
35
|
-
- โก **30-second start** โ `pip install ltcai` or `npm install -g ltcai`
|
|
30
|
+
- **Your data stays local** โ everything lives in `~/.ltcai/`, never sent to external servers
|
|
31
|
+
- **Your AI gets smarter over time** โ every chat and file builds your personal knowledge graph
|
|
32
|
+
- **One install, works everywhere** โ web UI, VS Code, Telegram, MCP clients, all connected to the same brain
|
|
36
33
|
|
|
37
34
|
---
|
|
38
35
|
|
|
39
|
-
##
|
|
36
|
+
## 3-Minute Workflow
|
|
40
37
|
|
|
41
|
-
|
|
38
|
+
```
|
|
39
|
+
1. Install pip install ltcai && LTCAI
|
|
40
|
+
2. Detect hardware Auto-detect CPU, GPU, RAM โ recommend the best local model
|
|
41
|
+
3. Connect folders Select local folders to index into your knowledge graph
|
|
42
|
+
4. Build knowledge Files and chats auto-analyzed โ nodes (people, concepts, files) + edges (mentions, contains, depends on)
|
|
43
|
+
5. Ask anything "What did I discuss about the auth migration last week?" โ Graph RAG retrieves context
|
|
44
|
+
6. Work from anywhere Web UI ยท VS Code ยท Telegram ยท MCP โ all connected to the same knowledge
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Product Preview
|
|
42
50
|
|
|
43
51
|
<table>
|
|
44
52
|
<tr>
|
|
45
53
|
<td align="center" width="33%">
|
|
46
|
-
<b
|
|
54
|
+
<b>Workspace Chat</b><br/>
|
|
47
55
|
<img src="https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/screenshot-chat.png" alt="Lattice AI workspace chat" width="100%"/>
|
|
48
|
-
<sub>
|
|
56
|
+
<sub>Chat with local/cloud LLM, upload files, pipeline controls</sub>
|
|
49
57
|
</td>
|
|
50
58
|
<td align="center" width="33%">
|
|
51
|
-
<b
|
|
52
|
-
<img src="https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/screenshot-
|
|
53
|
-
<sub>
|
|
59
|
+
<b>Knowledge Graph</b><br/>
|
|
60
|
+
<img src="https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/screenshot-graph.png" alt="Lattice AI knowledge graph" width="100%"/>
|
|
61
|
+
<sub>Auto-built from chats and documents โ nodes = nouns, edges = verbs</sub>
|
|
54
62
|
</td>
|
|
55
63
|
<td align="center" width="33%">
|
|
56
|
-
<b
|
|
57
|
-
<img src="https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/screenshot-
|
|
58
|
-
<sub>
|
|
64
|
+
<b>Admin Dashboard</b><br/>
|
|
65
|
+
<img src="https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/screenshot-admin.png" alt="Lattice AI admin dashboard" width="100%"/>
|
|
66
|
+
<sub>User management, audit log, security monitoring</sub>
|
|
59
67
|
</td>
|
|
60
68
|
</tr>
|
|
61
69
|
</table>
|
|
62
70
|
|
|
63
|
-
What this gives users after install:
|
|
64
|
-
|
|
65
|
-
- A single local workspace for chat, files, models, runtime setup, and tool control
|
|
66
|
-
- A graph view that turns chats and documents into searchable knowledge
|
|
67
|
-
- Admin screens for users, model status, VPC settings, SSO, audit logs, and security monitoring
|
|
68
|
-
|
|
69
71
|
---
|
|
70
72
|
|
|
71
|
-
##
|
|
73
|
+
## Quick Start
|
|
72
74
|
|
|
73
75
|
**Python / PyPI**
|
|
74
76
|
|
|
75
77
|
```bash
|
|
76
78
|
pip install ltcai
|
|
77
|
-
pip install "ltcai[local]"
|
|
78
|
-
LTCAI doctor
|
|
79
|
+
pip install "ltcai[local]" # + Apple Silicon MLX models
|
|
79
80
|
LTCAI
|
|
80
81
|
# โ http://localhost:4825
|
|
81
82
|
```
|
|
@@ -84,123 +85,166 @@ LTCAI
|
|
|
84
85
|
|
|
85
86
|
```bash
|
|
86
87
|
npm install -g ltcai
|
|
87
|
-
LTCAI doctor
|
|
88
88
|
LTCAI
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
**VS Code / Cursor**
|
|
92
92
|
|
|
93
93
|
1. Install **Lattice AI** from [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=parktaesoo.ltcai) or [Open VSX](https://open-vsx.org/extension/parktaesoo/ltcai)
|
|
94
|
-
2. Start the local server
|
|
95
|
-
3.
|
|
94
|
+
2. Start the local server: `LTCAI`
|
|
95
|
+
3. `Cmd+Shift+A` to open the chat panel
|
|
96
96
|
|
|
97
97
|
**First run:** open `http://localhost:4825` โ sign up โ first account auto-becomes admin โ pick a model โ start chatting.
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
---
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
## How the Knowledge Graph Works
|
|
102
|
+
|
|
103
|
+
Lattice AI automatically analyzes your chats and files, extracting meaningful structure:
|
|
104
|
+
|
|
105
|
+
**Nodes (nouns)** โ the things in your world:
|
|
106
|
+
| Type | Examples |
|
|
107
|
+
|------|----------|
|
|
108
|
+
| Document | PDF, PPTX, DOCX, code files, images |
|
|
109
|
+
| Person | You, mentioned colleagues |
|
|
110
|
+
| Concept | Technologies, frameworks, ideas |
|
|
111
|
+
| Chat | Conversation sessions |
|
|
112
|
+
| Task | Action items, TODOs |
|
|
113
|
+
| Decision | Choices made in discussions |
|
|
114
|
+
|
|
115
|
+
**Edges (verbs)** โ how things relate:
|
|
116
|
+
`mentions` ยท `contains` ยท `resolves` ยท `depends on` ยท `explains` ยท `uses` ยท `replaces` ยท `supports` ยท `related to`
|
|
117
|
+
|
|
118
|
+
**Local folder indexing:**
|
|
119
|
+
1. Browse your drives and folders from the UI
|
|
120
|
+
2. Preview file counts, types, and sizes before indexing
|
|
121
|
+
3. Approve which folders to connect (sensitive files auto-excluded)
|
|
122
|
+
4. Files are parsed, chunked, and linked into the graph
|
|
123
|
+
5. Optional: enable file watcher for real-time updates
|
|
124
|
+
|
|
125
|
+
All data stays in a local SQLite database. Nothing leaves your machine.
|
|
105
126
|
|
|
106
127
|
---
|
|
107
128
|
|
|
108
|
-
##
|
|
129
|
+
## Comparison
|
|
109
130
|
|
|
110
|
-
|
|
131
|
+
Based on public product behavior as of 2026-05.
|
|
111
132
|
|
|
112
133
|
| | Lattice AI | Open WebUI | Continue.dev | GitHub Copilot |
|
|
113
134
|
|---|:---:|:---:|:---:|:---:|
|
|
114
|
-
| Local model (offline, Apple Silicon) |
|
|
115
|
-
| Cloud models (OpenAI, Groq
|
|
116
|
-
|
|
|
117
|
-
|
|
|
118
|
-
|
|
|
119
|
-
|
|
|
120
|
-
|
|
|
121
|
-
|
|
|
122
|
-
|
|
|
123
|
-
|
|
|
124
|
-
|
|
125
|
-
> โ ๏ธ *Open WebUI supports MCP via manual URL configuration โ no registry browsing or one-click install.
|
|
135
|
+
| Local model (offline, Apple Silicon) | **Yes** | Yes | Yes | No |
|
|
136
|
+
| Cloud models (OpenAI, Groq...) | **Yes** | Yes | Yes | Yes |
|
|
137
|
+
| Knowledge graph (auto from files + chats) | **Yes** | No | No | No |
|
|
138
|
+
| Local folder indexing + file watcher | **Yes** | No | No | No |
|
|
139
|
+
| VS Code extension | **Yes** | No | Yes | Yes |
|
|
140
|
+
| Telegram bot | **Yes** | No | No | No |
|
|
141
|
+
| MCP registry (one-click install) | **Yes** | Partial | Yes | No |
|
|
142
|
+
| Admin + audit log | **Yes** | Yes | No | No |
|
|
143
|
+
| Zero telemetry, self-hosted | **Yes** | Yes | Yes | No |
|
|
144
|
+
| One-command public tunnel | **Yes** | No | No | No |
|
|
145
|
+
| Free | **Yes** | Yes | Yes | No |
|
|
126
146
|
|
|
127
147
|
---
|
|
128
148
|
|
|
129
|
-
##
|
|
149
|
+
## Supported Models
|
|
150
|
+
|
|
151
|
+
**Local (Apple Silicon MLX):**
|
|
130
152
|
|
|
131
|
-
|
|
153
|
+
| Model | Best for | Size | Min RAM |
|
|
154
|
+
|-------|----------|------|---------|
|
|
155
|
+
| Qwen3-VL 4B | Multimodal / low spec | ~2.7 GB | 8 GB |
|
|
156
|
+
| Qwen3-VL 8B | Multimodal / balanced | ~4.8 GB | 16 GB |
|
|
157
|
+
| Gemma 4 26B | Multimodal / large | ~15.6 GB | 32 GB |
|
|
158
|
+
| Qwen3-VL 30B A3B | Multimodal / top | ~18 GB | 48 GB |
|
|
159
|
+
| Phi 4 Mini | Coding (fast) | ~2.2 GB | 8 GB |
|
|
160
|
+
| Llama 3.1 8B | General | ~4.7 GB | 8 GB |
|
|
161
|
+
| Mistral 7B v0.3 | General / Apache | ~4.1 GB | 8 GB |
|
|
132
162
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
| `mlx-community/Qwen3-VL-4B-Instruct-4bit` | Multimodal / low spec | ~2.7 GB |
|
|
136
|
-
| `mlx-community/Qwen3-VL-8B-Instruct-4bit` | Multimodal / balanced | ~4.8 GB |
|
|
137
|
-
| `mlx-community/Qwen3-VL-30B-A3B-Instruct-4bit` | Multimodal / large | ~18 GB |
|
|
138
|
-
| `mlx-community/Llama-3.1-8B-Instruct-4bit` | General | ~4.7 GB |
|
|
139
|
-
| `mlx-community/Mistral-7B-Instruct-v0.3-4bit` | General / Apache | ~4.1 GB |
|
|
140
|
-
| `mlx-community/Phi-4-mini-instruct-4bit` | Coding (fast) | ~2.2 GB |
|
|
141
|
-
| `mlx-community/gemma-4-26b-a4b-it-4bit` | Multimodal / large | ~15.6 GB |
|
|
163
|
+
**Cross-platform (Ollama / LM Studio / vLLM / llama.cpp):**
|
|
164
|
+
Same models via Ollama pull, LM Studio download, or vLLM serve.
|
|
142
165
|
|
|
143
166
|
**Cloud (any platform):**
|
|
144
|
-
OpenAI GPT-5.5 ยท
|
|
167
|
+
OpenAI GPT-5.5 ยท Claude Opus 4.7 / Sonnet 4.6 / Haiku 4.5 via OpenRouter ยท Groq ยท Together ยท xAI ยท any OpenAI-compatible endpoint
|
|
168
|
+
|
|
169
|
+
The setup wizard auto-detects your hardware and recommends the best model for your specs.
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Data Privacy
|
|
174
|
+
|
|
175
|
+
| | |
|
|
176
|
+
|---|---|
|
|
177
|
+
| **Storage** | All data in `~/.ltcai/` on your machine |
|
|
178
|
+
| **Telemetry** | None โ no analytics, no tracking, no phoning home |
|
|
179
|
+
| **File access** | Approval-token gated โ explicit consent per folder |
|
|
180
|
+
| **Cloud models** | When using cloud APIs, prompts are sent to the provider. Local models keep everything offline. |
|
|
181
|
+
| **Sensitive files** | `.env`, credentials, keys, certificates auto-excluded from indexing |
|
|
182
|
+
| **Delete** | Clear chat history, delete graph nodes, remove indexed folders at any time |
|
|
145
183
|
|
|
146
184
|
---
|
|
147
185
|
|
|
148
|
-
|
|
186
|
+
<details>
|
|
187
|
+
<summary><b>All Features</b></summary>
|
|
149
188
|
|
|
189
|
+
### Core Experience
|
|
190
|
+
| Feature | Description |
|
|
191
|
+
|---------|-------------|
|
|
192
|
+
| **Web UI** | Responsive chat, file upload, model picker, knowledge graph |
|
|
193
|
+
| **Auto Setup Wizard** | Detect hardware โ recommend model โ install dependencies โ verify |
|
|
194
|
+
| **Graph RAG** | Chats and files auto-indexed into SQLite knowledge graph |
|
|
195
|
+
| **Local folder indexing** | Browse, audit, and index local folders with file watcher |
|
|
196
|
+
|
|
197
|
+
### Developer Tools
|
|
150
198
|
| Feature | Description |
|
|
151
199
|
|---------|-------------|
|
|
152
|
-
| **Web UI** | Responsive chat + admin panel + graph visualisation |
|
|
153
|
-
| **Auto Setup Wizard** | Detects โ downloads โ installs โ verifies โ repairs dependencies |
|
|
154
200
|
| **VS Code / Cursor** | Chat panel, Edit Selection, Explain, Generate command |
|
|
155
|
-
| **
|
|
201
|
+
| **Multi-step agent** | File edit/create, grep, todo, terminal (25 steps, human-in-the-loop) |
|
|
202
|
+
| **Multi-LLM pipeline** | Plan โ Execute โ Review with different models |
|
|
156
203
|
| **MCP server** | Use Lattice tools in Claude Desktop / Cursor |
|
|
157
204
|
| **MCP registry** | One-click install from registry.modelcontextprotocol.io |
|
|
158
|
-
| **Skills marketplace** | 77 official skills (Anthropic +
|
|
205
|
+
| **Skills marketplace** | 77 official skills (Anthropic + verified third-party) |
|
|
159
206
|
| **Plugin directory** | Browse 149 open-source plugins |
|
|
160
|
-
| **Graph RAG** | Chat & docs auto-indexed as SQLite knowledge graph |
|
|
161
|
-
| **Multi-step agent** | File edit/create, grep, todo, terminal (25 steps) |
|
|
162
|
-
| **Multi-LLM pipeline** | Plan โ Execute โ Review with different models |
|
|
163
|
-
| **Human-in-the-loop** | Approve agent plan before execution |
|
|
164
|
-
| **Admin governance** | User status, role permissions, Okta / Entra ID SSO, security monitoring |
|
|
165
|
-
| **Audit dashboard** | Per-user AI usage, sensitive data detection, event log, UTF-8 TXT/CSV/Excel exports |
|
|
166
|
-
| **PWA** | Install on iPad / Android home screen |
|
|
167
|
-
| **SSO** | Entra ID / Okta OIDC |
|
|
168
207
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
|
174
|
-
|
|
175
|
-
| Web UI + cloud models | โ
| โ
|
|
|
176
|
-
| VS Code / Cursor extension | โ
| โ
|
|
|
177
|
-
| Telegram bot | โ
| โ
|
|
|
178
|
-
| MLX local models | โ
| โ |
|
|
179
|
-
| Ollama / LM Studio / vLLM | โ
| โ
|
|
|
208
|
+
### Access & Communication
|
|
209
|
+
| Feature | Description |
|
|
210
|
+
|---------|-------------|
|
|
211
|
+
| **Telegram bot** | Chat, upload files, manage models from anywhere |
|
|
212
|
+
| **PWA** | Install on iPad / Android home screen |
|
|
213
|
+
| **Public tunnel** | `LTCAI --tunnel` โ Cloudflare HTTPS, no account needed |
|
|
180
214
|
|
|
181
|
-
|
|
215
|
+
### Administration
|
|
216
|
+
| Feature | Description |
|
|
217
|
+
|---------|-------------|
|
|
218
|
+
| **User management** | Roles, permissions, disable/enable accounts |
|
|
219
|
+
| **SSO** | Entra ID / Okta OIDC |
|
|
220
|
+
| **Audit dashboard** | Per-user AI usage, sensitive data detection, event log, TXT/CSV/Excel export |
|
|
221
|
+
| **Security monitoring** | Rate limits, file access approvals, MCP install audit trail |
|
|
182
222
|
|
|
183
|
-
|
|
223
|
+
</details>
|
|
184
224
|
|
|
185
|
-
|
|
225
|
+
<details>
|
|
226
|
+
<summary><b>Security</b></summary>
|
|
186
227
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
228
|
+
| Property | Detail |
|
|
229
|
+
|----------|--------|
|
|
230
|
+
| Binding | Default `127.0.0.1:4825` โ local only |
|
|
231
|
+
| Auth | Session required when network-exposed or public mode |
|
|
232
|
+
| Cookies | `HttpOnly + SameSite=Lax` โ no localStorage token |
|
|
233
|
+
| Local file access | Approval-token gated (path + user + action scope) |
|
|
234
|
+
| Package install | Admin-only with audit trail (MCP, skills, pip, npm) |
|
|
235
|
+
| CORS | Localhost only by default; configure via `LATTICEAI_CORS_ALLOWED_ORIGINS` |
|
|
236
|
+
| File upload | Magic-number signature check (blocks extension spoofing) |
|
|
237
|
+
| Rate limits | `/chat` 30/min ยท `/agent` 6/min ยท `/upload` 12/min per user |
|
|
238
|
+
| Telemetry | None โ all data in `~/.ltcai/` |
|
|
190
239
|
|
|
191
|
-
|
|
192
|
-
OPENAI_API_KEY=sk-... LTCAI
|
|
240
|
+
Report vulnerabilities: [SECURITY.md](SECURITY.md)
|
|
193
241
|
|
|
194
|
-
|
|
195
|
-
LATTICEAI_MODE=local \
|
|
196
|
-
LATTICEAI_LOCAL_MODEL=mlx-community/gemma-4-26b-a4b-it-4bit \
|
|
197
|
-
LTCAI
|
|
198
|
-
```
|
|
242
|
+
</details>
|
|
199
243
|
|
|
200
|
-
|
|
244
|
+
<details>
|
|
245
|
+
<summary><b>Setup & Configuration</b></summary>
|
|
201
246
|
|
|
202
|
-
|
|
203
|
-
2. `Cmd+Shift+A` โ open chat panel (auto-connects to `localhost:4825`)
|
|
247
|
+
### VS Code shortcuts
|
|
204
248
|
|
|
205
249
|
| Shortcut | Action |
|
|
206
250
|
|----------|--------|
|
|
@@ -215,7 +259,7 @@ LTCAI
|
|
|
215
259
|
LATTICEAI_TELEGRAM_BOT_TOKEN=your-token LTCAI
|
|
216
260
|
```
|
|
217
261
|
|
|
218
|
-
### Public server (Render / Fly.io
|
|
262
|
+
### Public server (Docker / Render / Fly.io)
|
|
219
263
|
|
|
220
264
|
```bash
|
|
221
265
|
LATTICEAI_MODE=public \
|
|
@@ -225,36 +269,37 @@ LATTICEAI_INVITE_CODE=my-secret \
|
|
|
225
269
|
LTCAI
|
|
226
270
|
```
|
|
227
271
|
|
|
272
|
+
### Public tunnel (Cloudflare, no account)
|
|
273
|
+
|
|
228
274
|
```bash
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
docker run --rm -p 4825:4825 \
|
|
232
|
-
-e OPENAI_API_KEY="$OPENAI_API_KEY" \
|
|
233
|
-
-e LATTICEAI_INVITE_CODE="my-secret" \
|
|
234
|
-
-v "$PWD/.data:/data" \
|
|
235
|
-
lattice-ai
|
|
275
|
+
LTCAI --tunnel
|
|
276
|
+
# โ https://xxxx.trycloudflare.com
|
|
236
277
|
```
|
|
237
278
|
|
|
238
|
-
|
|
279
|
+
### Auto-start (Mac)
|
|
239
280
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
281
|
+
```bash
|
|
282
|
+
cat > ~/Library/LaunchAgents/com.ltcai.plist << 'EOF'
|
|
283
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
284
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
285
|
+
<plist version="1.0">
|
|
286
|
+
<dict>
|
|
287
|
+
<key>Label</key><string>com.ltcai</string>
|
|
288
|
+
<key>ProgramArguments</key><array><string>/usr/local/bin/LTCAI</string></array>
|
|
289
|
+
<key>RunAtLoad</key><true/>
|
|
290
|
+
<key>KeepAlive</key><true/>
|
|
291
|
+
<key>StandardOutPath</key><string>/tmp/ltcai.log</string>
|
|
292
|
+
<key>StandardErrorPath</key><string>/tmp/ltcai.err</string>
|
|
293
|
+
</dict>
|
|
294
|
+
</plist>
|
|
295
|
+
EOF
|
|
296
|
+
launchctl load ~/Library/LaunchAgents/com.ltcai.plist
|
|
297
|
+
```
|
|
254
298
|
|
|
255
|
-
|
|
299
|
+
</details>
|
|
256
300
|
|
|
257
|
-
|
|
301
|
+
<details>
|
|
302
|
+
<summary><b>API Reference</b></summary>
|
|
258
303
|
|
|
259
304
|
| Method | Path | Description |
|
|
260
305
|
|--------|------|-------------|
|
|
@@ -263,59 +308,50 @@ Report vulnerabilities: [SECURITY.md](SECURITY.md)
|
|
|
263
308
|
| POST | `/models/load` | Load a model |
|
|
264
309
|
| POST | `/chat` | Chat (`stream=true/false`) |
|
|
265
310
|
| POST | `/agent` | Multi-step file agent |
|
|
311
|
+
| GET | `/knowledge-graph/stats` | Graph statistics |
|
|
312
|
+
| GET | `/knowledge-graph/search?q=` | Search the knowledge graph |
|
|
313
|
+
| GET | `/knowledge-graph/local/roots` | Discover local drives & folders |
|
|
314
|
+
| POST | `/knowledge-graph/local/audit` | Audit a folder before indexing |
|
|
315
|
+
| POST | `/knowledge-graph/local/index` | Index a folder into Graph RAG |
|
|
266
316
|
| GET | `/mcp/installed` | Installed MCP servers |
|
|
267
|
-
| POST | `/mcp/install` | Install MCP server |
|
|
317
|
+
| POST | `/mcp/install` | Install MCP server (admin) |
|
|
268
318
|
| GET | `/skills/marketplace` | Skills marketplace |
|
|
269
|
-
| POST | `/skills/install` | Install a skill |
|
|
270
|
-
| GET | `/
|
|
271
|
-
| GET | `/
|
|
272
|
-
| GET | `/admin/sensitivity` | Security monitoring report for risky/compliant fields |
|
|
273
|
-
| GET/PATCH | `/admin/sso` | Okta / Entra ID OIDC configuration |
|
|
274
|
-
| GET | `/permissions/pending` | Pending file-access approvals (admin) |
|
|
275
|
-
| POST | `/permissions/approve/{token}` | Approve file access (admin) |
|
|
319
|
+
| POST | `/skills/install` | Install a skill (admin) |
|
|
320
|
+
| GET | `/admin/audit` | Audit report |
|
|
321
|
+
| GET | `/permissions/pending` | Pending file-access approvals |
|
|
276
322
|
|
|
277
323
|
Full reference: [docs/mcp-tools.md](docs/mcp-tools.md)
|
|
278
324
|
|
|
279
|
-
|
|
325
|
+
</details>
|
|
280
326
|
|
|
281
|
-
|
|
327
|
+
<details>
|
|
328
|
+
<summary><b>Troubleshooting</b></summary>
|
|
329
|
+
|
|
330
|
+
| Symptom | Fix |
|
|
331
|
+
|---------|-----|
|
|
332
|
+
| Port 4825 in use | `lsof -i :4825` โ `kill <PID>` or `LTCAI --port 4826` |
|
|
333
|
+
| `ModuleNotFoundError: mlx` | `pip install "ltcai[local]"` (Apple Silicon only) |
|
|
334
|
+
| Python < 3.11 | Upgrade Python: `python3 --version` |
|
|
335
|
+
| No API key warning | `OPENAI_API_KEY=sk-... LTCAI` or set in admin panel |
|
|
336
|
+
| Can't reach from iPad | `LATTICEAI_HOST=0.0.0.0 LTCAI` or use `--tunnel` |
|
|
282
337
|
|
|
283
|
-
|
|
284
|
-
|---------|-------|-----|
|
|
285
|
-
| Port 4825 in use | Previous process | `lsof -i :4825` โ `kill <PID>` or `--port 4826` |
|
|
286
|
-
| `ModuleNotFoundError: mlx` | MLX not installed | `pip install "ltcai[local]"` (Apple Silicon only) |
|
|
287
|
-
| Python < 3.11 | Version mismatch | Upgrade: `python3 --version` |
|
|
288
|
-
| `LTCAI doctor` OPTIONAL | Optional dep missing | Safe to ignore if feature not needed |
|
|
289
|
-
| No API key warning | Cloud model not set | `OPENAI_API_KEY=sk-... LTCAI` or set in admin panel |
|
|
290
|
-
| Can't reach from iPad | Default bind 127.0.0.1 | `LATTICEAI_HOST=0.0.0.0 LTCAI` or use `--tunnel` |
|
|
338
|
+
</details>
|
|
291
339
|
|
|
292
340
|
---
|
|
293
341
|
|
|
294
|
-
##
|
|
342
|
+
## Platform Support
|
|
295
343
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
<key>ProgramArguments</key><array><string>/usr/local/bin/LTCAI</string></array>
|
|
304
|
-
<key>RunAtLoad</key><true/>
|
|
305
|
-
<key>KeepAlive</key><true/>
|
|
306
|
-
<key>StandardOutPath</key><string>/tmp/ltcai.log</string>
|
|
307
|
-
<key>StandardErrorPath</key><string>/tmp/ltcai.err</string>
|
|
308
|
-
</dict>
|
|
309
|
-
</plist>
|
|
310
|
-
EOF
|
|
311
|
-
launchctl load ~/Library/LaunchAgents/com.ltcai.plist
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
Or: `./start_ai.sh` (auto-restart + caffeinate)
|
|
344
|
+
| Feature | macOS Apple Silicon | macOS Intel / Windows / Linux |
|
|
345
|
+
|---------|:---:|:---:|
|
|
346
|
+
| Web UI + cloud models | Yes | Yes |
|
|
347
|
+
| VS Code / Cursor extension | Yes | Yes |
|
|
348
|
+
| Telegram bot | Yes | Yes |
|
|
349
|
+
| MLX local models | Yes | -- |
|
|
350
|
+
| Ollama / LM Studio / vLLM | Yes | Yes |
|
|
315
351
|
|
|
316
352
|
---
|
|
317
353
|
|
|
318
|
-
##
|
|
354
|
+
## Distribution
|
|
319
355
|
|
|
320
356
|
| Channel | Link |
|
|
321
357
|
|---------|------|
|
|
@@ -324,15 +360,15 @@ Or: `./start_ai.sh` (auto-restart + caffeinate)
|
|
|
324
360
|
| VS Code Marketplace | [marketplace.visualstudio.com](https://marketplace.visualstudio.com/items?itemName=parktaesoo.ltcai) |
|
|
325
361
|
| Open VSX | [open-vsx.org](https://open-vsx.org/extension/parktaesoo/ltcai) |
|
|
326
362
|
|
|
327
|
-
Current version: **0.1
|
|
363
|
+
Current version: **0.2.1** โ [Changelog](docs/CHANGELOG.md)
|
|
328
364
|
|
|
329
365
|
---
|
|
330
366
|
|
|
331
|
-
##
|
|
367
|
+
## Contributing
|
|
332
368
|
|
|
333
369
|
See [CONTRIBUTING.md](CONTRIBUTING.md). All PRs welcome.
|
|
334
370
|
|
|
335
|
-
##
|
|
371
|
+
## License
|
|
336
372
|
|
|
337
373
|
MIT โ [TaeSoo Park](https://github.com/TaeSooPark-PTS)
|
|
338
374
|
|
|
@@ -341,9 +377,22 @@ MIT โ [TaeSoo Park](https://github.com/TaeSooPark-PTS)
|
|
|
341
377
|
<details>
|
|
342
378
|
<summary>ํ๊ตญ์ด ์๋ด (Korean)</summary>
|
|
343
379
|
|
|
344
|
-
##
|
|
380
|
+
## Lattice AI
|
|
381
|
+
|
|
382
|
+
**๋ด PC์ ํ์ผ, ๋ํ, ํ๋ก์ ํธ๋ฅผ ๊ธฐ์ตํ๊ณ ์ฐ๊ฒฐํ๋ ๋ก์ปฌ AI ์ํฌ์คํ์ด์ค**
|
|
345
383
|
|
|
346
|
-
|
|
384
|
+
๋๋ถ๋ถ์ AI ๋๊ตฌ๋ ๋ํ๊ฐ ๋๋๋ฉด ๋ชจ๋ ๊ฒ์ ์์ต๋๋ค. Lattice AI๋ ๋ค๋ฆ
๋๋ค. ๋ก์ปฌ ํ์ผ์ ์ฝ๊ณ , ๋ํ๋ฅผ ๊ธฐ๋กํ๊ณ , ์ฌ๋ยทํ๋ก์ ํธยท๊ฐ๋
ยท๋ฌธ์๋ฅผ ์ฐ๊ฒฐํ๋ ์ง์ ๊ทธ๋ํ๋ฅผ ์๋์ผ๋ก ๋ง๋ญ๋๋ค. ๋ชจ๋ ๋ฐ์ดํฐ๋ ๋ด PC์๋ง ์ ์ฅ๋ฉ๋๋ค.
|
|
385
|
+
|
|
386
|
+
### 3๋ถ ์ฌ์ฉ ํ๋ฆ
|
|
387
|
+
|
|
388
|
+
```
|
|
389
|
+
1. ์ค์น pip install ltcai && LTCAI
|
|
390
|
+
2. ํ๋์จ์ด ๊ฐ์ง CPU, GPU, RAM ์๋ ๊ฐ์ง โ ์ต์ ๋ก์ปฌ ๋ชจ๋ธ ์ถ์ฒ
|
|
391
|
+
3. ํด๋ ์ฐ๊ฒฐ ๋ก์ปฌ ํด๋๋ฅผ ์ ํํ์ฌ ์ง์ ๊ทธ๋ํ์ ์ฐ๊ฒฐ
|
|
392
|
+
4. ์ง์ ๊ตฌ์ถ ํ์ผ๊ณผ ๋ํ ์๋ ๋ถ์ โ ์ (์ฌ๋, ๊ฐ๋
, ํ์ผ) + ์ (์ธ๊ธํจ, ํฌํจํจ, ์์กดํจ)
|
|
393
|
+
5. ์ง๋ฌธ "์ง๋์ฃผ ์ธ์ฆ ๋ง์ด๊ทธ๋ ์ด์
๋
ผ์ ๋ด์ฉ์?" โ Graph RAG๊ฐ ์ปจํ
์คํธ ๊ฒ์
|
|
394
|
+
6. ์ด๋์๋ ์์
์น UI ยท VS Code ยท Telegram ยท MCP โ ๊ฐ์ ์ง์์ ์ฐ๊ฒฐ
|
|
395
|
+
```
|
|
347
396
|
|
|
348
397
|
### ์ค์น
|
|
349
398
|
|
|
@@ -354,30 +403,21 @@ LTCAI # ์๋ฒ ์คํ โ http://localhost:4825
|
|
|
354
403
|
LTCAI --tunnel # + Cloudflare ๊ณต๊ฐ URL ์๋ ๋ฐ๊ธ
|
|
355
404
|
```
|
|
356
405
|
|
|
357
|
-
###
|
|
406
|
+
### ํต์ฌ ์ฐจ๋ณ์
|
|
358
407
|
|
|
359
|
-
-
|
|
360
|
-
-
|
|
361
|
-
-
|
|
362
|
-
-
|
|
363
|
-
- Graph RAG โ ์ฑํ
ยท๋ฌธ์๋ฅผ SQLite ์ง์ ๊ทธ๋ํ๋ก ์๋ ๊ตฌ์กฐํ
|
|
364
|
-
- ๋ฉํฐ LLM ํ์ดํ๋ผ์ธ (Plan โ Execute โ Review)
|
|
365
|
-
- Human-in-the-loop ์์ด์ ํธ ์น์ธ
|
|
366
|
-
- ๊ฐ์ฌ ๋ก๊ทธ & ๋ฐ์ดํฐ ๊ฑฐ๋ฒ๋์ค ๋์๋ณด๋, UTF-8 TXT/CSV/Excel ์ถ์ถ
|
|
367
|
-
- ์ฌ์ฉ์/๊ถํ/SSO/๋ณด์ ๋ชจ๋ํฐ๋ง์ด ๋ถ๋ฆฌ๋ ๊ด๋ฆฌ์ ํ๋ฉด
|
|
368
|
-
- ํ
๋ ๋ฉํธ๋ฆฌ ์์ โ ๋ชจ๋ ๋ฐ์ดํฐ ๋ก์ปฌ ์ ์ฅ
|
|
408
|
+
- **๋ด ๋ฐ์ดํฐ๊ฐ AI์ ๊ธฐ์ต์ด ๋๋ค** โ ์ฑํ
๊ณผ ํ์ผ์ด ์๋์ผ๋ก ์ง์ ๊ทธ๋ํ๋ก ๊ตฌ์กฐํ
|
|
409
|
+
- **๋ก์ปฌ ํด๋๋ฅผ ์ฐ๊ฒฐํ๋ฉด ํ๋ก์ ํธ ์ ์ฒด๋ฅผ ์ดํด** โ ํ์ผ ๋ณ๊ฒฝ ์ ์ค์๊ฐ ์
๋ฐ์ดํธ
|
|
410
|
+
- **๋ชจ๋ ๋ฐ์ดํฐ๋ ๋ด PC์** โ `~/.ltcai/`์ ์ ์ฅ, ํ
๋ ๋ฉํธ๋ฆฌ ์์, ์ธ๋ถ ์ ์ก ์์
|
|
411
|
+
- **์ค์น ํ ๋ฒ์ผ๋ก ์ด๋์๋ ** โ ์น ยท VS Code ยท Telegram ยท MCP ํด๋ผ์ด์ธํธ
|
|
369
412
|
|
|
370
413
|
### ์ถ์ฒ ๋ก์ปฌ ๋ชจ๋ธ (M-series Mac)
|
|
371
414
|
|
|
372
|
-
| ๋ชจ๋ธ | ์ฉ๋ | ํฌ๊ธฐ |
|
|
373
|
-
|
|
374
|
-
|
|
|
375
|
-
|
|
|
376
|
-
|
|
|
377
|
-
|
|
|
378
|
-
| `mlx-community/Mistral-7B-Instruct-v0.3-4bit` | ๋ฒ์ฉ / Apache | ~4.1GB |
|
|
379
|
-
| `mlx-community/Phi-4-mini-instruct-4bit` | ์ฝ๋ฉ | ~2.2GB |
|
|
380
|
-
| `mlx-community/gemma-4-26b-a4b-it-4bit` | ๋ฉํฐ๋ชจ๋ฌ / ๋ํ | ~15.6GB |
|
|
415
|
+
| ๋ชจ๋ธ | ์ฉ๋ | ํฌ๊ธฐ | ์ต์ RAM |
|
|
416
|
+
|------|------|------|----------|
|
|
417
|
+
| Qwen3-VL 4B | ๋ฉํฐ๋ชจ๋ฌ / ์ ์ฌ์ | ~2.7GB | 8GB |
|
|
418
|
+
| Qwen3-VL 8B | ๋ฉํฐ๋ชจ๋ฌ / ๊ท ํ ์ถ์ฒ | ~4.8GB | 16GB |
|
|
419
|
+
| Gemma 4 26B | ๋ฉํฐ๋ชจ๋ฌ / ๋ํ | ~15.6GB | 32GB |
|
|
420
|
+
| Qwen3-VL 30B A3B | ๋ฉํฐ๋ชจ๋ฌ / ์ต๊ณ ๊ธ | ~18GB | 48GB |
|
|
381
421
|
|
|
382
422
|
์์ธํ ๋ด์ฉ: [docs/CHANGELOG.md](docs/CHANGELOG.md) ยท [๋ณด์](SECURITY.md) ยท [๊ธฐ์ฌ](CONTRIBUTING.md)
|
|
383
423
|
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,61 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.2.1] - 2026-05-25
|
|
4
|
+
|
|
5
|
+
### ๋ฒ๊ทธ ์์
|
|
6
|
+
|
|
7
|
+
- **CI ํ
์คํธ import ์์ ** โ `test_security.py`์์ `_rate_buckets` import ๊ฒฝ๋ก๋ฅผ `server` โ `latticeai.core.security`๋ก ๋ณ๊ฒฝ (v0.2.0 ๋ชจ๋ ๋ถ๋ฆฌ์ ๋ฐ๋ฅธ ๊ฒฝ๋ก ๋ณ๊ฒฝ ๋ฐ์)
|
|
8
|
+
|
|
9
|
+
### Release
|
|
10
|
+
- ๋ฐฐํฌ ๋ฒ์ ์ `0.2.1`๋ก ์ํฅ
|
|
11
|
+
- ๋์ ์ฑ๋: `npm` ยท `PyPI` ยท `VS Code Marketplace` ยท `Open VSX`
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## [0.2.0] - 2026-05-25
|
|
16
|
+
|
|
17
|
+
### server.py ๋ชจ๋ ๋ถ๋ฆฌ โ latticeai/ ํจํค์ง ๋์
|
|
18
|
+
|
|
19
|
+
server.py(6,815์ค)์์ ํต์ฌ ๋ก์ง์ `latticeai/` ํจํค์ง๋ก ๋ถ๋ฆฌํ์ฌ ์ ์ง๋ณด์์ฑ์ ๊ฐ์ ํ์ต๋๋ค.
|
|
20
|
+
|
|
21
|
+
**์ ํจํค์ง ๊ตฌ์กฐ:**
|
|
22
|
+
```
|
|
23
|
+
latticeai/
|
|
24
|
+
core/
|
|
25
|
+
security.py โ ๋น๋ฐ๋ฒํธ ํด์ฑ, ๋ ์ดํธ ๋ฆฌ๋ฐ, IP ๊ฐ์ง, ํ์ผ ๋งค์ง ๊ฒ์ฆ
|
|
26
|
+
sessions.py โ ํ์ผ ๊ธฐ๋ฐ ์ธ์
์ ์ฅ์ (SessionStore ํด๋์ค)
|
|
27
|
+
audit.py โ ๊ฐ์ฌ ๋ก๊น
, ๋ฏผ๊ฐ์ ๋ณด ๋ถ์, ๊ด๋ฆฌ์ ๊ฐ์ฌ ๋ฆฌํฌํธ
|
|
28
|
+
api/
|
|
29
|
+
auth.py โ ์ธ์ฆ/SSO/ํ๋กํ API ๋ผ์ฐํฐ (register, login, logout, SSO, profile)
|
|
30
|
+
admin.py โ ๊ด๋ฆฌ์ API ๋ผ์ฐํฐ (dashboard, users, VPC, SSO, audit)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
- server.py: 6,815์ค โ 6,187์ค (628์ค ๊ฐ์, 868์ค์ด 5๊ฐ ๋ชจ๋๋ก ๋ถ์ฐ)
|
|
34
|
+
- ๊ธฐ์กด API ํธํ์ฑ 100% ์ ์ง โ ๋ชจ๋ ์๋ํฌ์ธํธ ๊ฒฝ๋ก์ ์๋ต ๋์ผ
|
|
35
|
+
- `knowledge_graph_api.py` / `local_knowledge_api.py`์ ๋์ผํ ํฉํ ๋ฆฌ ๋ผ์ฐํฐ ํจํด ์ฌ์ฉ
|
|
36
|
+
|
|
37
|
+
### README ์ ๋ฉด ๊ฐํธ โ ์ฌ์ฉ์ ๊ฒฝํ ์ค์ฌ
|
|
38
|
+
|
|
39
|
+
- ํต์ฌ ๋ฉ์์ง: "๋ด ํ์ผ๊ณผ ๋ํ๋ฅผ ๊ธฐ์ตํ๊ณ ์ฐ๊ฒฐํ๋ ๋ก์ปฌ AI ์ํฌ์คํ์ด์ค"
|
|
40
|
+
- ๊ธฐ๋ฅ ๋์ดํ โ 3๋ถ ์ํฌํ๋ก + Why ์น์
+ ์ง์ ๊ทธ๋ํ ์ค๋ช
|
|
41
|
+
- ๊ณ ๊ธ ๊ธฐ๋ฅ(์ ์ฒด ๊ธฐ๋ฅํ, ๋ณด์, ์ค์ , API, ํธ๋ฌ๋ธ์ํ
)์ ์ ๊ธฐ(details) ์น์
์ผ๋ก ์ด๋
|
|
42
|
+
- ๋น๊ตํ์ Knowledge Graph, Local Folder Indexing ํญ๋ชฉ ์ถ๊ฐ
|
|
43
|
+
- ๋ชจ๋ธ ์ถ์ฒํ์ ์ต์ RAM ์ปฌ๋ผ ์ถ๊ฐ
|
|
44
|
+
- ํ๊ตญ์ด ์น์
๋ ๊ฒฝํ ์ค์ฌ์ผ๋ก ์ฌ์์ฑ
|
|
45
|
+
|
|
46
|
+
### ๋ณด์ ๊ฐํ โ ํจํค์ง ์ค์น ๊ด๋ฆฌ์ ์ ์ฉ
|
|
47
|
+
|
|
48
|
+
- `/mcp/install`: `require_user` โ `require_admin` + ๊ฐ์ฌ ๋ก๊ทธ
|
|
49
|
+
- `/skills/install`: `require_user` โ `require_admin` + ๊ฐ์ฌ ๋ก๊ทธ
|
|
50
|
+
- `/mcp/custom` POST: `require_user` โ `require_admin` + ๊ฐ์ฌ ๋ก๊ทธ
|
|
51
|
+
- pip/npm ํจํค์ง ์ค์น๋ ๊ด๋ฆฌ์๋ง ์คํ ๊ฐ๋ฅ, ๋ชจ๋ ์๋๊ฐ `audit_log.json`์ ๊ธฐ๋ก
|
|
52
|
+
|
|
53
|
+
### Release
|
|
54
|
+
- ๋ฐฐํฌ ๋ฒ์ ์ `0.2.0`์ผ๋ก ์ํฅ (๋ฉ์ด์ ๊ตฌ์กฐ ๋ณ๊ฒฝ)
|
|
55
|
+
- ๋์ ์ฑ๋: `npm` ยท `PyPI` ยท `VS Code Marketplace` ยท `Open VSX`
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
3
59
|
## [0.1.31] - 2026-05-25
|
|
4
60
|
|
|
5
61
|
### ๋ชจ๋ธ ์ถ์ฒ ๋ณด์ โ ํ๋์จ์ด ๋๋น ๊ณผ๋ํ ๋ชจ๋ธ ๋ฐฉ์ง
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Lattice AI โ modular server package."""
|
|
Binary file
|