ltcai 2.2.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.
- package/README.md +140 -146
- package/docs/CHANGELOG.md +38 -0
- package/docs/architecture.md +4 -4
- package/docs/spec-vs-impl.md +13 -10
- package/latticeai/__init__.py +1 -1
- package/latticeai/core/workspace_os.py +1 -1
- package/package.json +8 -3
- package/static/account.html +3 -1
- package/static/activity.html +5 -2
- package/static/admin.html +5 -1
- package/static/agents.html +5 -2
- package/static/chat.html +7 -4
- package/static/css/responsive.css +597 -0
- package/static/css/tokens.css +224 -165
- package/static/graph.html +12 -2
- package/static/lattice-reference.css +366 -739
- package/static/platform.css +45 -16
- package/static/plugins.html +5 -2
- package/static/scripts/admin.js +33 -33
- package/static/scripts/chat.js +84 -15
- package/static/scripts/graph.js +169 -11
- package/static/scripts/ux.js +167 -0
- package/static/workflows.html +5 -2
- package/static/workspace.css +55 -19
- package/static/workspace.html +5 -2
package/README.md
CHANGED
|
@@ -1,84 +1,82 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="docs/images/logo.svg" alt="Lattice AI" width="120" />
|
|
2
3
|
|
|
3
|
-
Lattice AI
|
|
4
|
-
It is not a simple chat app, local LLM launcher, or model manager.
|
|
4
|
+
# Lattice AI
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
knowledge is linked into a Knowledge Graph, and AI works on top of the graph to
|
|
9
|
-
advise, analyze, generate documents, and automate work.
|
|
6
|
+
**A local-first AI workspace** — Plan → Execute → Review with multiple LLMs,
|
|
7
|
+
on top of a durable Knowledge Graph.
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
>
|
|
14
|
-
> sources and risks, then let the user decide.
|
|
15
|
-
|
|
16
|
-
## Current release
|
|
17
|
-
|
|
18
|
-
**2.2.0 — Multimodal-First Knowledge OS Release.** Lattice AI now centers the
|
|
19
|
-
product on a multimodal Knowledge Graph, Gemma-4-first recommendations, source
|
|
20
|
-
disclosure, and equal feature access across basic and advanced modes. Admin mode
|
|
21
|
-
is the only mode with additional authority.
|
|
9
|
+
Apple Silicon (MLX) local model management · Personal & Organization workspaces ·
|
|
10
|
+
Multi-agent workflows · SSO for teams
|
|
11
|
+
</div>
|
|
22
12
|
|
|
23
13
|
---
|
|
24
14
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
notes, code, web content, conversations, and work logs without asking the user
|
|
29
|
-
to pre-convert them.
|
|
30
|
-
- Extracts entities, relationships, evidence, decisions, and artifacts into the
|
|
31
|
-
Knowledge Graph.
|
|
32
|
-
- Uses AI models as replaceable workers on top of the graph.
|
|
33
|
-
- Recommends current-generation multimodal models based on CPU, GPU, RAM,
|
|
34
|
-
storage, OS, and observed usage.
|
|
35
|
-
- Shows every model's source facts before use:
|
|
36
|
-
1. 제작 국가
|
|
37
|
-
2. 제작 회사
|
|
38
|
-
3. 실행 방식
|
|
39
|
-
4. 인터넷 사용 여부
|
|
40
|
-
5. 모델명
|
|
41
|
-
- Keeps text-only local model recommendations out of the product path.
|
|
42
|
-
|
|
43
|
-
## Core Principles
|
|
44
|
-
|
|
45
|
-
- Users should not work for AI. AI should work for users.
|
|
46
|
-
- Do not hide features, sources, limitations, or risks.
|
|
47
|
-
- Basic and advanced modes expose the same capabilities.
|
|
48
|
-
- Basic mode explains in plain language.
|
|
49
|
-
- Advanced mode shows deeper technical reasoning.
|
|
50
|
-
- Admin mode is reserved for user management, permissions, audit logs,
|
|
51
|
-
organization policy, security policy, model approval, and Private VPC.
|
|
52
|
-
- Knowledge Graph durability matters more than any single model.
|
|
53
|
-
- Old model generations are removed when a newer generation in the same family
|
|
54
|
-
is available.
|
|
55
|
-
|
|
56
|
-
## Multimodal Model Policy
|
|
57
|
-
|
|
58
|
-
Lattice AI v2.2.0 removes the old text-only recommendation path.
|
|
59
|
-
|
|
60
|
-
Current local recommendations focus on:
|
|
61
|
-
|
|
62
|
-
| Family | Default role | Example current recommendation |
|
|
63
|
-
| --- | --- | --- |
|
|
64
|
-
| Gemma 4 | Default Google multimodal family | `mlx-community/gemma-4-12b-it-4bit` |
|
|
65
|
-
| Gemma 4 large | Higher-quality local multimodal work | `mlx-community/gemma-4-31b-it-4bit` |
|
|
66
|
-
| Qwen3-VL | Smaller and balanced multimodal options | `mlx-community/Qwen3-VL-4B-Instruct-4bit` |
|
|
67
|
-
| Llama 4 | Meta multimodal option | `mlx-community/Llama-4-Scout-17B-16E-Instruct-4bit` |
|
|
68
|
-
|
|
69
|
-
Removed from current recommendation catalogs:
|
|
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.
|
|
70
18
|
|
|
71
|
-
|
|
72
|
-
- Gemma 2 and Gemma 3 recommendations
|
|
73
|
-
- Qwen2.5-VL recommendations
|
|
74
|
-
- SmolLM, Phi, Mistral, DeepSeek, GPT-OSS, and Llama 3.x local recommendation
|
|
75
|
-
entries
|
|
76
|
-
- text-only fallback logic for low-spec machines
|
|
19
|
+
It is built around a simple product rule:
|
|
77
20
|
|
|
78
|
-
|
|
79
|
-
|
|
21
|
+
> Do not control the user in the name of protection. Explain clearly, disclose
|
|
22
|
+
> sources and risks, then let the user decide.
|
|
80
23
|
|
|
81
|
-
##
|
|
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
|
|
82
80
|
|
|
83
81
|
```text
|
|
84
82
|
files / documents / images / conversations / work history
|
|
@@ -90,122 +88,118 @@ files / documents / images / conversations / work history
|
|
|
90
88
|
-> advice / analysis / document generation / automation
|
|
91
89
|
```
|
|
92
90
|
|
|
93
|
-
The graph preserves
|
|
91
|
+
The graph preserves your work memory even when the model changes.
|
|
94
92
|
|
|
95
|
-
##
|
|
93
|
+
## Local model policy
|
|
96
94
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
npm run dev
|
|
100
|
-
```
|
|
95
|
+
Lattice AI recommends current-generation **multimodal** models for local use and
|
|
96
|
+
keeps text-only recommendation paths out of the product:
|
|
101
97
|
|
|
102
|
-
|
|
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` |
|
|
103
104
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
```
|
|
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.
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
## Requirements
|
|
109
109
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
```
|
|
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)
|
|
115
114
|
|
|
116
|
-
|
|
115
|
+
## Quick start
|
|
117
116
|
|
|
118
|
-
|
|
119
|
-
cd vscode-extension
|
|
120
|
-
npm install
|
|
121
|
-
npm run build
|
|
122
|
-
npm run package:vsix
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## Python Package
|
|
117
|
+
Lattice AI is a Python + FastAPI app. The CLI entry point is `ltcai_cli.py`.
|
|
126
118
|
|
|
127
119
|
```bash
|
|
128
|
-
|
|
120
|
+
npm install # installs the npm package and dev tooling
|
|
121
|
+
npm run dev # runs: python3 ltcai_cli.py --reload
|
|
129
122
|
```
|
|
130
123
|
|
|
131
|
-
|
|
124
|
+
Then open:
|
|
132
125
|
|
|
133
126
|
```text
|
|
134
|
-
|
|
135
|
-
dist/ltcai-2.2.0.tar.gz
|
|
127
|
+
http://127.0.0.1:4825
|
|
136
128
|
```
|
|
137
129
|
|
|
138
|
-
|
|
130
|
+
Prefer Python directly?
|
|
139
131
|
|
|
140
132
|
```bash
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
npm run package:vsix
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
Expected v2.2.0 VSIX artifact:
|
|
147
|
-
|
|
148
|
-
```text
|
|
149
|
-
dist/ltcai-2.2.0.vsix
|
|
133
|
+
python3 ltcai_cli.py
|
|
134
|
+
# host/port: --host 127.0.0.1 --port 4825
|
|
150
135
|
```
|
|
151
136
|
|
|
152
|
-
|
|
137
|
+
For local model execution on Apple Silicon, install the optional extra:
|
|
153
138
|
|
|
154
139
|
```bash
|
|
155
|
-
|
|
140
|
+
pip install "ltcai[local]" # adds mlx-vlm
|
|
156
141
|
```
|
|
157
142
|
|
|
158
|
-
|
|
143
|
+
Useful commands:
|
|
159
144
|
|
|
160
|
-
```
|
|
161
|
-
|
|
145
|
+
```bash
|
|
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
|
|
162
149
|
```
|
|
163
150
|
|
|
164
|
-
##
|
|
165
|
-
|
|
166
|
-
Publishing is intentionally manual. Do not publish with globs.
|
|
151
|
+
## VS Code extension
|
|
167
152
|
|
|
168
|
-
|
|
153
|
+
A companion VS Code extension lives in [`vscode-extension/`](vscode-extension).
|
|
169
154
|
|
|
170
155
|
```bash
|
|
171
|
-
|
|
156
|
+
cd vscode-extension
|
|
157
|
+
npm install
|
|
158
|
+
npm run build
|
|
159
|
+
npm run package:vsix
|
|
172
160
|
```
|
|
173
161
|
|
|
174
|
-
|
|
162
|
+
## Build & packaging
|
|
175
163
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
Open VSX:
|
|
164
|
+
Lattice AI ships as a Python package (`ltcai`), an npm package (`ltcai`), and a
|
|
165
|
+
VS Code extension.
|
|
181
166
|
|
|
182
167
|
```bash
|
|
183
|
-
|
|
168
|
+
python3 -m build # Python wheel + sdist
|
|
169
|
+
npm pack # npm tarball
|
|
184
170
|
```
|
|
185
171
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
npm publish --access public
|
|
190
|
-
```
|
|
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.
|
|
191
175
|
|
|
192
176
|
## Documentation
|
|
193
177
|
|
|
194
|
-
- [ARCHITECTURE.md](ARCHITECTURE.md)
|
|
195
|
-
- [
|
|
196
|
-
- [
|
|
197
|
-
- [
|
|
198
|
-
- [
|
|
199
|
-
- [
|
|
200
|
-
- [docs/
|
|
201
|
-
|
|
202
|
-
|
|
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
|
|
203
193
|
|
|
204
194
|
| Version | Theme |
|
|
205
195
|
| --- | --- |
|
|
206
|
-
| **2.2.
|
|
207
|
-
| 2.
|
|
208
|
-
| 2.
|
|
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 |
|
|
209
200
|
| 1.7.0 | Graph and collaboration |
|
|
210
201
|
| 1.6.0 | Product experience deepening |
|
|
211
|
-
|
|
202
|
+
|
|
203
|
+
## License
|
|
204
|
+
|
|
205
|
+
MIT
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.2.1] - 2026-06-04
|
|
4
|
+
|
|
5
|
+
> Frontend / UX Overhaul Release — Lattice AI keeps feature behavior stable
|
|
6
|
+
> while improving responsive layout, theme handling, accessibility, graph UX,
|
|
7
|
+
> admin tables, file attachment, and release packaging readiness.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **Light/dark mode** — OS detection, manual theme toggle, and persisted theme
|
|
12
|
+
state.
|
|
13
|
+
- **File attachment UX** — drag-and-drop and screenshot paste support for
|
|
14
|
+
attachments.
|
|
15
|
+
- **Knowledge Graph controls** — zoom buttons, fullscreen, minimap,
|
|
16
|
+
relationship filter, mobile graph/card view, and theme-aware palette.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- **Responsive UI** — phone/tablet/laptop/desktop/ultrawide/4K layouts now use
|
|
21
|
+
mobile-first reflow. Content is not hidden on smaller screens.
|
|
22
|
+
- **Design tokens** — `static/css/tokens.css` is the single source of truth for
|
|
23
|
+
UI tokens, and theme styling no longer depends on `!important`.
|
|
24
|
+
- **Accessibility** — 44px touch targets, `:focus-visible` focus rings,
|
|
25
|
+
keyboard-safe chat composer behavior, iOS no-zoom inputs, and reduced-motion
|
|
26
|
+
support.
|
|
27
|
+
- **Admin UX** — wide admin tables reflow to mobile cards with larger touch
|
|
28
|
+
targets and light/dark support.
|
|
29
|
+
- **Model cards** — country, company, run mode, and internet usage are shown in
|
|
30
|
+
plain language.
|
|
31
|
+
- **Manual release scripts** — local publish scripts now build exact-version
|
|
32
|
+
artifacts before upload and validate the same artifact set used by CI.
|
|
33
|
+
|
|
34
|
+
### Validation
|
|
35
|
+
|
|
36
|
+
- Unit/integration suites, Python build, npm pack, VSIX package, and
|
|
37
|
+
exact-version release artifact validation are the release targets.
|
|
38
|
+
- Package-store publishing remains manual and must use the exact 2.2.1
|
|
39
|
+
filenames.
|
|
40
|
+
|
|
3
41
|
## [2.2.0] - 2026-06-04
|
|
4
42
|
|
|
5
43
|
> Multimodal-First Knowledge OS Release — Lattice AI is aligned around the
|
package/docs/architecture.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Lattice AI Architecture
|
|
2
2
|
|
|
3
|
-
Lattice AI
|
|
4
|
-
organized around one durable center: the Knowledge Graph.
|
|
5
|
-
agents, workflows, and UI modes are replaceable layers that
|
|
6
|
-
the graph.
|
|
3
|
+
Lattice AI is a local-first **AI Workspace and Knowledge Graph platform**. The
|
|
4
|
+
architecture is organized around one durable center: the Knowledge Graph.
|
|
5
|
+
Models, tools, agents, workflows, and UI modes are replaceable layers that
|
|
6
|
+
operate on top of the graph.
|
|
7
7
|
|
|
8
8
|
## Architecture Goals
|
|
9
9
|
|
package/docs/spec-vs-impl.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
PPT 명세는 "한 코드·다섯 화면" — Shared Core(Design Tokens, UI Components, Business Logic, AI/Graph Core) 위에서 Tauri(데스크탑) / Capacitor·RN(모바일) 렌더러가 같은 결과를 낸다.
|
|
21
21
|
|
|
22
22
|
**현재 구현**
|
|
23
|
-
- `static/chat.html`, `static/graph.html`, `static/admin.html`, `static/account.html` 4개 HTML —
|
|
23
|
+
- `static/chat.html`, `static/graph.html`, `static/admin.html`, `static/account.html` 4개 HTML — `static/css/tokens.css` 단일 토큰을 공유 (v2.2.1)
|
|
24
24
|
- `vscode-extension/` — TypeScript VSCode 통합
|
|
25
25
|
- `static/manifest.json` + `static/sw.js` — PWA 부분 지원 (iOS/Android 홈 화면 추가는 됨)
|
|
26
26
|
- `telegram_bot.py` — Telegram 미러
|
|
@@ -28,11 +28,11 @@ PPT 명세는 "한 코드·다섯 화면" — Shared Core(Design Tokens, UI Comp
|
|
|
28
28
|
**갭**
|
|
29
29
|
- 데스크탑 네이티브 셸 (Tauri) 미구현
|
|
30
30
|
- 모바일 네이티브 (Capacitor / RN) 미구현
|
|
31
|
-
- 4개 HTML이 각자 다른 색 토큰 사용 → 같은 화면이 같게 안 보임
|
|
32
31
|
- 다국어(i18n) 시스템화 안 됨 (HTML에 한글 하드코딩)
|
|
33
32
|
|
|
34
|
-
**보강
|
|
35
|
-
- `static/css/tokens.css`
|
|
33
|
+
**보강 결과물 (완료, v2.2.1)**
|
|
34
|
+
- `static/css/tokens.css` — 4개 HTML이 공유하는 단일 진실 토큰 (`:root` = 라이트, `[data-lt-theme="dark"]` = 다크)
|
|
35
|
+
- `static/css/responsive.css` + `static/scripts/ux.js` — 반응형 레이아웃 / 라이트·다크 토글 + OS 감지 + 지속화
|
|
36
36
|
- 로드맵: `apps/desktop/` (Tauri 셸) · `apps/mobile/` (Capacitor 셸) 차후 단계
|
|
37
37
|
|
|
38
38
|
---
|
|
@@ -91,7 +91,9 @@ chunks ( id, source_node, text, metadata_json, created_at )
|
|
|
91
91
|
|
|
92
92
|
## 4. 디자인 일관성
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
기존(v2.2.1 이전)에는 4개 HTML 이 각자 다른 색 토큰을 갖고 있었다:
|
|
95
|
+
|
|
96
|
+
| 파일 | 이전 --bg | 이전 --accent |
|
|
95
97
|
|------|-----------|---------------|
|
|
96
98
|
| `chat.html` | `#182332` 다크 블루그린 | `#22d3a0` 민트 |
|
|
97
99
|
| `graph.html` | `#282a36` 다크 그레이 | `#a77cff` 라일락 |
|
|
@@ -100,9 +102,10 @@ chunks ( id, source_node, text, metadata_json, created_at )
|
|
|
100
102
|
| `lattice-reference.css` | (라이트, PPT) | `#6f42e8` Lattice 보라 |
|
|
101
103
|
| **PPT 명세** | `#FFFFFF` 또는 `#0B0B16` | `#6E4AE6` Lattice 보라 |
|
|
102
104
|
|
|
103
|
-
**보강
|
|
104
|
-
- `static/css/tokens.css` — 단일
|
|
105
|
-
-
|
|
105
|
+
**보강 결과물 (완료, v2.2.1)**
|
|
106
|
+
- `static/css/tokens.css` — 단일 토큰을 모든 화면이 공유. `:root` 가 라이트 값,
|
|
107
|
+
`[data-lt-theme="dark"]` 가 다크 값을 정의하는 단일 진실 소스
|
|
108
|
+
- 라이트/다크 토글 + OS 다크모드 감지 + 지속화는 `static/scripts/ux.js` 가 담당
|
|
106
109
|
|
|
107
110
|
---
|
|
108
111
|
|
|
@@ -124,9 +127,9 @@ PPT 화면 1, 13 (login, security) 에 한국어 / Microsoft Entra ID / Okta SSO
|
|
|
124
127
|
| 순위 | 파일 | 무엇 |
|
|
125
128
|
|------|------|------|
|
|
126
129
|
| 1 | `docs/kg-schema.md`, `kg_schema.py` | KG 스키마 정식화 (10 노드 · 12 엣지 · embedding · confidence) |
|
|
127
|
-
| 2 | `static/css/tokens.css` | 디자인 토큰 통합
|
|
130
|
+
| 2 | `static/css/tokens.css` (+ `responsive.css`, `ux.js`) | 디자인 토큰 통합 + 라이트/다크 — v2.2.1 완료 |
|
|
128
131
|
| 3 | `auto_setup.py` | OS 프로빙 + 모델 추천 + 설치 어댑터 |
|
|
129
132
|
| 4 | `docs/architecture.md` 보강 | 위 변경 반영 |
|
|
130
133
|
| 5 | (차후) `apps/desktop`, `apps/mobile` 스캐폴딩 | Tauri/Capacitor |
|
|
131
134
|
|
|
132
|
-
|
|
135
|
+
1~4 는 구현/문서로 반영되었고 (디자인 토큰·라이트/다크는 v2.2.1 에서 완료), 5 는 청사진만 유지한다.
|
package/latticeai/__init__.py
CHANGED
|
@@ -18,7 +18,7 @@ from pathlib import Path
|
|
|
18
18
|
from typing import Any, Callable, Dict, Iterable, List, Optional
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
WORKSPACE_OS_VERSION = "2.2.
|
|
21
|
+
WORKSPACE_OS_VERSION = "2.2.1"
|
|
22
22
|
|
|
23
23
|
# Workspace types separate single-user Personal workspaces from shared
|
|
24
24
|
# Organization workspaces. Both keep the same local-first JSON store; the type
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ltcai",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "Lattice AI Workspace OS for local-first graph, memory, agent, workflow, and skill operations",
|
|
5
5
|
"homepage": "https://github.com/TaeSooPark-PTS/LatticeAI#readme",
|
|
6
6
|
"repository": {
|
|
@@ -29,8 +29,13 @@
|
|
|
29
29
|
"capture:skills": "node scripts/capture/capture_skills.js",
|
|
30
30
|
"capture:enterprise": "node scripts/capture/capture_enterprise.js",
|
|
31
31
|
"capture:onboarding": "node scripts/capture/capture_onboarding.js",
|
|
32
|
-
"
|
|
33
|
-
"
|
|
32
|
+
"release:artifacts": "npm run build:python && npm pack && cd vscode-extension && npm run package:vsix",
|
|
33
|
+
"release:validate": "python3 scripts/validate_release_artifacts.py $npm_package_version --require-vsix --require-tgz",
|
|
34
|
+
"publish:npm": "npm pack && npm publish ltcai-$npm_package_version.tgz --access public",
|
|
35
|
+
"publish:pypi": "npm run build:python && python3 -m twine upload --skip-existing dist/ltcai-$npm_package_version.tar.gz dist/ltcai-$npm_package_version-py3-none-any.whl",
|
|
36
|
+
"publish:vscode": "cd vscode-extension && npm run package:vsix && npm run publish:vscode",
|
|
37
|
+
"publish:openvsx": "cd vscode-extension && npm run package:vsix && npm run publish:openvsx",
|
|
38
|
+
"publish:all": "npm run release:artifacts && npm run release:validate && npm publish ltcai-$npm_package_version.tgz --access public && python3 -m twine upload --skip-existing dist/ltcai-$npm_package_version.tar.gz dist/ltcai-$npm_package_version-py3-none-any.whl && cd vscode-extension && npm run publish:vscode && npm run publish:openvsx"
|
|
34
39
|
},
|
|
35
40
|
"keywords": [
|
|
36
41
|
"ltcai",
|
package/static/account.html
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
<html lang="ko">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content">
|
|
6
6
|
<title>Lattice AI</title>
|
|
7
|
+
<script src="/static/scripts/ux.js?v=2.2.1"></script>
|
|
7
8
|
<link rel="manifest" href="/manifest.json">
|
|
8
9
|
<meta name="theme-color" content="#f3ecff">
|
|
9
10
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
@@ -14,6 +15,7 @@
|
|
|
14
15
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap">
|
|
15
16
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@latest/tabler-icons.min.css">
|
|
16
17
|
<link rel="stylesheet" href="/static/lattice-reference.css?v=0.3.3">
|
|
18
|
+
<link rel="stylesheet" href="/static/css/responsive.css?v=2.2.1">
|
|
17
19
|
</head>
|
|
18
20
|
<body class="lattice-ref-auth">
|
|
19
21
|
<div class="orb orb-1"></div>
|
package/static/activity.html
CHANGED
|
@@ -2,9 +2,12 @@
|
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content" />
|
|
6
6
|
<title>Realtime Activity — Lattice AI</title>
|
|
7
|
-
<
|
|
7
|
+
<script src="/static/scripts/ux.js?v=2.2.1"></script>
|
|
8
|
+
<link rel="stylesheet" href="/static/css/tokens.css?v=2.2.1" />
|
|
9
|
+
<link rel="stylesheet" href="/static/platform.css?v=2.2.1" />
|
|
10
|
+
<link rel="stylesheet" href="/static/css/responsive.css?v=2.2.1" />
|
|
8
11
|
</head>
|
|
9
12
|
<body>
|
|
10
13
|
<main>
|
package/static/admin.html
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="UTF-8">
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content">
|
|
7
7
|
<title>Lattice AI Admin</title>
|
|
8
|
+
<script src="/static/scripts/ux.js?v=2.2.1"></script>
|
|
8
9
|
<link rel="manifest" href="/manifest.json">
|
|
9
10
|
<meta name="theme-color" content="#f3ecff">
|
|
10
11
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
@@ -15,10 +16,13 @@
|
|
|
15
16
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap">
|
|
16
17
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@latest/tabler-icons.min.css">
|
|
17
18
|
<link rel="stylesheet" href="/static/lattice-reference.css?v=0.3.3">
|
|
19
|
+
<link rel="stylesheet" href="/static/css/responsive.css?v=2.2.1">
|
|
18
20
|
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
|
|
19
21
|
</head>
|
|
20
22
|
|
|
21
23
|
<body class="lattice-ref-admin">
|
|
24
|
+
<div class="sidebar-overlay" onclick="closeAdminRail&&closeAdminRail()"></div>
|
|
25
|
+
<button class="admin-rail-toggle graph-nav-toggle" onclick="toggleAdminRail&&toggleAdminRail()" title="메뉴" aria-label="관리자 메뉴 열기"><i class="ti ti-menu-2"></i></button>
|
|
22
26
|
<aside class="reference-rail admin-rail">
|
|
23
27
|
<div class="rail-brand"><i class="ti ti-shield-lock"></i><strong>LATTICE AI</strong><span>Administrator</span></div>
|
|
24
28
|
<nav>
|
package/static/agents.html
CHANGED
|
@@ -2,9 +2,12 @@
|
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content" />
|
|
6
6
|
<title>Multi-Agent Runtime — Lattice AI</title>
|
|
7
|
-
<
|
|
7
|
+
<script src="/static/scripts/ux.js?v=2.2.1"></script>
|
|
8
|
+
<link rel="stylesheet" href="/static/css/tokens.css?v=2.2.1" />
|
|
9
|
+
<link rel="stylesheet" href="/static/platform.css?v=2.2.1" />
|
|
10
|
+
<link rel="stylesheet" href="/static/css/responsive.css?v=2.2.1" />
|
|
8
11
|
</head>
|
|
9
12
|
<body>
|
|
10
13
|
<main>
|
package/static/chat.html
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="UTF-8">
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content">
|
|
7
7
|
<title>Lattice AI — All-in-One Multimodal Workspace</title>
|
|
8
|
+
<script src="/static/scripts/ux.js?v=2.2.1"></script>
|
|
8
9
|
|
|
9
10
|
<!-- PWA -->
|
|
10
11
|
<link rel="manifest" href="/manifest.json">
|
|
@@ -24,6 +25,7 @@
|
|
|
24
25
|
|
|
25
26
|
<!-- ── Setup Wizard Styles ──────────────────────────────────────────── -->
|
|
26
27
|
<link rel="stylesheet" href="/static/lattice-reference.css?v=0.3.3">
|
|
28
|
+
<link rel="stylesheet" href="/static/css/responsive.css?v=2.2.1">
|
|
27
29
|
</head>
|
|
28
30
|
|
|
29
31
|
<body class="lattice-ref-chat">
|
|
@@ -37,7 +39,7 @@
|
|
|
37
39
|
|
|
38
40
|
|
|
39
41
|
<div class="app-layout">
|
|
40
|
-
<div class="sidebar-overlay" onclick="closeSidebar()"></div>
|
|
42
|
+
<div class="sidebar-overlay" onclick="closeSidebar();closeGraphNav&&closeGraphNav();closeAdminRail&&closeAdminRail()"></div>
|
|
41
43
|
<!-- Sidebar -->
|
|
42
44
|
<aside class="sidebar">
|
|
43
45
|
<div class="sidebar-header">
|
|
@@ -81,6 +83,7 @@
|
|
|
81
83
|
<div class="mode-segmented" id="mode-segmented" role="tablist" aria-label="작업 모드"></div>
|
|
82
84
|
</div>
|
|
83
85
|
<div class="header-pills">
|
|
86
|
+
<button class="theme-toggle" onclick="toggleTheme()" title="테마 전환" aria-label="라이트/다크 테마 전환"><i class="ti ti-moon"></i><i class="ti ti-sun"></i></button>
|
|
84
87
|
<div class="lang-picker" id="header-lang-picker">
|
|
85
88
|
<button class="logout-btn" id="lang-btn" onclick="toggleLangMenu('header-lang-picker')" title="Language"><i class="ti ti-language"></i> Language</button>
|
|
86
89
|
<div class="lang-picker-menu" id="header-lang-picker-menu">
|
|
@@ -93,7 +96,7 @@
|
|
|
93
96
|
</div>
|
|
94
97
|
</header>
|
|
95
98
|
|
|
96
|
-
<div class="acct-modal-overlay" id="acct-modal-overlay">
|
|
99
|
+
<div class="acct-modal-overlay" id="acct-modal-overlay" onclick="if(event.target===this)closeAcctModal()">
|
|
97
100
|
<div class="acct-modal">
|
|
98
101
|
<div class="acct-tabs">
|
|
99
102
|
<button class="acct-tab active" id="tab-profile" onclick="switchAcctTab('profile')" data-i18n="tab_profile">프로필</button>
|
|
@@ -477,7 +480,7 @@
|
|
|
477
480
|
|
|
478
481
|
<!-- ── 파일 에디터 ── -->
|
|
479
482
|
<div id="file-editor-overlay" class="admin-overlay" style="display:none">
|
|
480
|
-
<section class="admin-panel" style="max-width:720px;height:
|
|
483
|
+
<section class="admin-panel" style="max-width:720px;height:min(85dvh, calc(100dvh - 24px));display:flex;flex-direction:column">
|
|
481
484
|
<div class="admin-header" style="flex-shrink:0">
|
|
482
485
|
<div style="min-width:0;flex:1">
|
|
483
486
|
<h2><i class="ti ti-file-pencil" style="color:var(--accent)"></i> 파일 편집</h2>
|