ltcai 3.4.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +175 -225
  2. package/docs/RUNTIME_HOOK_COVERAGE_v3.5.0.md +56 -0
  3. package/docs/assets/v3.4.1/e2e_runtime_log.txt +42 -0
  4. package/docs/assets/v3.4.1/hooks-dispatch.png +0 -0
  5. package/docs/assets/v3.4.1/local-agent.png +0 -0
  6. package/latticeai/__init__.py +1 -1
  7. package/latticeai/api/auth.py +37 -9
  8. package/latticeai/api/chat.py +6 -1
  9. package/latticeai/api/computer_use.py +21 -8
  10. package/latticeai/api/local_files.py +76 -10
  11. package/latticeai/api/tools.py +35 -35
  12. package/latticeai/core/agent.py +13 -2
  13. package/latticeai/core/builtin_hooks.py +106 -0
  14. package/latticeai/core/config.py +3 -0
  15. package/latticeai/core/hooks.py +76 -2
  16. package/latticeai/core/marketplace.py +1 -1
  17. package/latticeai/core/multi_agent.py +1 -1
  18. package/latticeai/core/oidc.py +205 -0
  19. package/latticeai/core/security.py +59 -5
  20. package/latticeai/core/workflow_engine.py +3 -3
  21. package/latticeai/core/workspace_os.py +1 -1
  22. package/latticeai/server_app.py +22 -34
  23. package/latticeai/services/platform_runtime.py +18 -6
  24. package/latticeai/services/tool_dispatch.py +2 -0
  25. package/latticeai/services/upload_service.py +24 -4
  26. package/local_knowledge_api.py +27 -1
  27. package/package.json +3 -3
  28. package/requirements.txt +1 -0
  29. package/scripts/check_python.py +87 -0
  30. package/static/css/reference/account.css +1 -1
  31. package/static/css/reference/admin.css +1 -1
  32. package/static/css/reference/base.css +8 -5
  33. package/static/css/reference/chat.css +8 -8
  34. package/static/css/reference/graph.css +2 -2
  35. package/static/css/responsive.css +2 -2
  36. package/static/v3/asset-manifest.json +9 -9
  37. package/static/v3/css/{lattice.shell.6ceea7c8.css → lattice.shell.8fcc9d33.css} +2 -1
  38. package/static/v3/css/lattice.shell.css +2 -1
  39. package/static/v3/js/{app.c4acfdd8.js → app.d086489d.js} +1 -1
  40. package/static/v3/js/core/{components.35f02e4c.js → components.f25b3b93.js} +1 -1
  41. package/static/v3/js/core/components.js +1 -1
  42. package/static/v3/js/core/{shell.80a6ad82.js → shell.d05266f5.js} +1 -1
  43. package/static/v3/js/views/{hooks.13845954.js → hooks.37895880.js} +12 -7
  44. package/static/v3/js/views/hooks.js +12 -7
  45. package/static/v3/js/views/{my-computer.c3ef5283.js → my-computer.d9d9ae1c.js} +7 -4
  46. package/static/v3/js/views/my-computer.js +7 -4
  47. package/static/workspace.css +1 -1
  48. package/tools/__init__.py +276 -0
  49. package/tools/commands.py +188 -0
  50. package/tools/computer.py +185 -0
  51. package/tools/documents.py +243 -0
  52. package/tools/filesystem.py +560 -0
  53. package/tools/knowledge.py +97 -0
  54. package/tools/local_files.py +69 -0
  55. package/tools/network.py +66 -0
  56. package/tools.py +0 -1525
package/README.md CHANGED
@@ -3,11 +3,10 @@
3
3
 
4
4
  # Lattice AI
5
5
 
6
- **Lattice AI v3 Local-First AI Workspace Platform.**
6
+ **Local-first AI workspace for your files, chats, knowledge, models, and agents.**
7
7
 
8
- Work across Personal and Organization workspaces with Knowledge Graph,
9
- Vector Index, Hybrid Search, Native Chat, agents, files, models, and
10
- Basic / Advanced / Admin modes.
8
+ Keep your work context on your own machine. Connect documents, conversations,
9
+ local models, graph memory, and agent workflows in one self-hosted workspace.
11
10
  </div>
12
11
 
13
12
  <div align="center">
@@ -23,7 +22,96 @@
23
22
 
24
23
  </div>
25
24
 
26
- ![Lattice AI — local-first AI workspace](docs/assets/v3.4.0/home.png)
25
+ ![Lattice AI — local-first AI workspace home](docs/assets/v3.4.0/home.png)
26
+
27
+ > **Lattice AI is a self-hosted AI workspace that keeps your files, chats, knowledge, local models, and agents together on your own machine.**
28
+
29
+ It isn't another chat window. It's a workspace built around your work — local-first
30
+ by default, cloud only when you choose.
31
+
32
+ ## Why install Lattice AI?
33
+
34
+ Most AI tools only answer questions in a chat window. Lattice AI gives you a
35
+ workspace around the work itself:
36
+
37
+ - **Keep everything in one place** — files, notes, chats, and decisions live
38
+ together instead of scattered across tabs and apps.
39
+ - **Turn documents into knowledge** — uploads and connected folders become
40
+ searchable, linked context you can reuse.
41
+ - **Search the way you think** — fuse keyword, vector, and knowledge-graph
42
+ signals in a single query.
43
+ - **Stay private and offline-capable** — run local models through MLX, Ollama, or
44
+ LM Studio; nothing leaves your machine unless you opt in.
45
+ - **Use cloud models only when you choose** — bring an API key for cloud LLMs
46
+ when you want them, not by default.
47
+ - **Automate with agents you can inspect** — workflows leave behind plans,
48
+ reviews, retries, and results you can replay.
49
+
50
+ Lattice AI is not a clone of ChatGPT, Claude, Cursor, Obsidian, or Notion. It
51
+ sits in a different place: a **workspace** that ties local/self-hosted AI, your
52
+ files, project knowledge, hybrid search, local and optional cloud models, agents,
53
+ and workflows together — and runs on your own hardware.
54
+
55
+ ## What can you do with it?
56
+
57
+ - Build a private AI workspace for a project, scoped to your machine.
58
+ - Chat with your local files, images, and workspace memory.
59
+ - Upload documents — or connect a folder — and turn them into searchable knowledge.
60
+ - Explore how files, decisions, conversations, and entities connect in a
61
+ Knowledge Graph.
62
+ - Run local models through MLX, Ollama, or LM Studio, and use cloud LLMs only when
63
+ you want to.
64
+ - Create repeatable agent workflows for research, coding, analysis, and
65
+ documentation.
66
+ - Separate personal work from organization work.
67
+ - Switch between Basic, Advanced, and Admin modes depending on your role.
68
+
69
+ ## Product Tour
70
+
71
+ ### Start from the workspace home
72
+
73
+ ![Lattice AI workspace home — readiness, model state, and retrieval status](docs/assets/v3.4.0/home.png)
74
+
75
+ The home view shows workspace readiness, model state, retrieval status, and the
76
+ main entry points — derived from real local state, never placeholder counters.
77
+
78
+ ### Chat with files, images, and workspace context
79
+
80
+ ![Lattice AI chat connected to files, graph context, and vision input](docs/assets/v3.4.0/chat.png)
81
+
82
+ Chat is wired to your files, graph context, memory, and model routing — including
83
+ vision-capable image input by attach, drag-and-drop, or paste.
84
+
85
+ ### Bring documents into the workspace
86
+
87
+ ![Lattice AI files view — uploaded documents and connected folders](docs/assets/v3.4.0/files.png)
88
+
89
+ Uploads and connected folders become indexed workspace context, searchable from
90
+ chat and hybrid search.
91
+
92
+ ### Understand knowledge visually
93
+
94
+ ![Lattice AI knowledge graph of files, decisions, conversations, and entities](docs/assets/v3.4.0/knowledge-graph.png)
95
+
96
+ The Knowledge Graph shows how files, decisions, conversations, and entities
97
+ connect — context that stays useful even when you switch models.
98
+
99
+ ### Run agent workflows
100
+
101
+ ![Lattice AI agent run with roles, logs, review, and retry](docs/assets/v3.4.0/agent-run.png)
102
+
103
+ Agents turn a goal into an inspectable run — roles, logs, review, and retry — that
104
+ you can read back step by step.
105
+
106
+ ### Extend with hooks and the local runtime
107
+
108
+ ![Lattice AI hooks dispatch with a recent-execution log](docs/assets/v3.4.0/hooks-dispatch.png)
109
+
110
+ ![Lattice AI local agent status, handshake, and folder watching](docs/assets/v3.4.0/local-agent.png)
111
+
112
+ Advanced users wire lifecycle hooks into runs, tools, workflows, uploads, and
113
+ indexing — and see the on-device local runtime's real status, handshake, and
114
+ folder-watch activity.
27
115
 
28
116
  ## Install
29
117
 
@@ -65,254 +153,116 @@ Then open:
65
153
  http://127.0.0.1:4825/app
66
154
  ```
67
155
 
68
- Development checkout:
156
+ Working from a development checkout:
69
157
 
70
158
  ```bash
71
159
  npm install
72
160
  npm run dev
73
161
  ```
74
162
 
75
- Useful validation commands:
76
-
77
- ```bash
78
- npm run check:python
79
- npm run test:unit
80
- npm run build
81
- ```
82
-
83
- ## What Is Lattice AI?
84
-
85
- Lattice AI v3 is a local-first AI workspace platform for people and teams who
86
- want their files, models, graph context, retrieval, and agent workflows in one
87
- place.
88
-
89
- - **Primary app shell**: `/app` is the default product experience with Chat,
90
- Files, Hybrid Search, Knowledge Graph, Memory, Models, Settings, Advanced
91
- agent/workflow tooling, and Admin areas. Classic pages remain compatibility
92
- routes only; normal workflows stay in `/app`.
93
- - **Local-first AI Workspace**: work starts on your machine, with local data and
94
- workspace state by default.
95
- - **AI Pipeline Platform**: plan, execute, review, retry, and replay work across
96
- local models, cloud models, tools, files, and generated artifacts.
97
- - **Knowledge Graph Platform**: documents, images, screenshots, notes,
98
- conversations, and decisions become linked entities, relationships, evidence,
99
- and reusable context.
100
- - **Multi-Agent Workflow Platform**: agents hand off structured context, review
101
- work, retry with reasons, and keep timelines inspectable.
102
- - **Personal / Organization Workspace**: move between personal work and team
103
- workspaces with role-aware views and Basic / Advanced / Admin modes.
104
- - **Vector Index and Hybrid Search**: local vector rows are derived from the
105
- Knowledge Graph and fused with keyword and graph signals.
106
- - **Local Model Management**: choose current multimodal local models with source
107
- disclosure, hardware-aware recommendations, and cloud fallback options.
108
- - **Community-first workspaces**: Personal and Organization workspaces ship in
109
- the local product; enterprise SSO/SCIM/governance remain future extensions.
110
-
111
- ## Why Lattice AI?
112
-
113
- Most AI tools split your work across a chat window, a model picker, loose files,
114
- and disconnected automations. Lattice AI keeps those parts together:
115
-
116
- - files and conversations become graph context;
117
- - graph context feeds pipelines and coding actions;
118
- - model cards disclose country, company, run mode, internet usage, and model
119
- identity;
120
- - personal and organization workspaces keep team workflows separate from local
121
- work;
122
- - multi-agent workflows leave behind replayable plans, reviews, retries, and
123
- outcomes.
124
-
125
- ## v3.4.0 Highlights
126
-
127
- Lattice AI v3.4.0 is the **platform completion** release: it closes the remaining
128
- non-enterprise functionality gaps the v3.3.0 honesty audit flagged, so the
129
- local-first workspace is complete and demonstrable end-to-end. Each item below is
130
- runtime-verified on a live server, not only wired in source.
131
-
132
- - **Hooks now execute.** A real dispatch engine (`run_hook` / `run_hooks` /
133
- `fire_hook` + `HookContext` / `HookResult`) runs hooks at genuine lifecycle
134
- points — agents (pre/post-run), workflows (start/end), tools (pre/post-tool),
135
- and the upload pipeline. `pre_*` hooks can gate (block) an action; every
136
- dispatch is recorded to a persisted run log surfaced in the Hooks view.
137
- - **Uploads appear in Files.** Uploaded documents are listed with live ingest →
138
- index state (`/knowledge-graph/documents`), completing upload → Files →
139
- Knowledge Graph → Hybrid Search → Chat.
140
- - **Vision (VLM) image input.** The Chat composer accepts images by attach,
141
- drag-and-drop, or paste, with a preview and a **Vision Enabled / Disabled**
142
- badge driven by the active model's capability.
143
- - **Run agents from the Agents view.** A Run console (goal + roles → Run / Stop /
144
- Status / Queue / Logs) executes the multi-agent pipeline locally; it runs
145
- without a model and fires its pre/post-run hooks.
146
- - **On-device Local Agent + Connect Folder + Folder Watch.** My Computer reports
147
- the real local-runtime agent status and handshake; folders can be connected and
148
- watched (debounced reindex on change) through the existing on-device endpoints.
149
- - **Enterprise stays honestly disabled.** SSO, SCIM, DLP, Private VPC, SIEM, and
150
- enterprise RBAC remain off with honest "not available in this build" states.
151
-
152
- See [RELEASE_NOTES_v3.4.0.md](RELEASE_NOTES_v3.4.0.md),
153
- [PLATFORM_COMPLETION_REPORT_v3.4.0.md](PLATFORM_COMPLETION_REPORT_v3.4.0.md), and
154
- the evidence-traced [FEATURE_STATUS.md](FEATURE_STATUS.md).
155
-
156
- ## v3.3.1 Highlights
157
-
158
- Lattice AI v3.3.1 rebuilds the visible `/app` product experience while
159
- preserving the existing local-first runtime. The app now presents Chat, Files,
160
- Search, Knowledge, Memory, Models, Settings, Advanced tooling, and Admin
161
- workflows with clearer navigation and honest live/unavailable states.
162
-
163
- - **Visual product rebuild** — compact rail navigation, quieter topbar,
164
- command-palette search, retrieval readiness footer, and denser controls.
165
- - **Truthful Home dashboard** — backend, model, retrieval, memory, source, and
166
- trace readiness are derived from real endpoints instead of fabricated counts.
167
- - **Basic / Advanced / Admin navigation** — Basic focuses on core workspace
168
- workflows; Advanced exposes agents, workflows, skills, hooks, and MCP; Admin
169
- keeps organization controls separate.
170
- - **Files and Settings clarity** — manual upload is available immediately,
171
- folder watching is explicitly tied to the desktop local agent, and Settings
172
- shows backend, agent, model, telemetry, and embedding readiness.
173
- - **Design system refresh** — cooler neutral light/dark tokens, tighter 8px
174
- radius discipline, compact cards/tables/stats/buttons, and regenerated
175
- hashed v3 assets.
176
-
177
- The v3.2.0 platform remains the feature-complete foundation: multi-agent
178
- collaboration, Agent Registry, Marketplace templates, Workflow Agents,
179
- Autonomous Planning, Long-Term Memory, Skills, Hooks, Tool Registry, MCP
180
- Manager, production embedding profiles, and hash-manifested `/app` assets.
181
- Release audit: [docs/V3_2_AUDIT.md](docs/V3_2_AUDIT.md).
182
-
183
- ## Screenshots
184
-
185
- All screenshots are the v3.4.0 `/app` shell. Live model output (VLM inference,
186
- agent-generated text) requires a loaded local model and is not depicted.
187
-
188
- ### Home
189
-
190
- ![Home — local-first workspace at a glance](docs/assets/v3.4.0/home.png)
191
-
192
- ### Chat with Vision (VLM) image input
193
-
194
- ![Chat — image attach + Vision Enabled badge](docs/assets/v3.4.0/chat.png)
195
-
196
- ### Files — uploaded documents + Connect Folder
197
-
198
- ![Files — uploaded documents with index state](docs/assets/v3.4.0/files.png)
199
-
200
- ### Run agents from the Agents view
201
-
202
- ![Agent run — goal, roles, and live timeline logs](docs/assets/v3.4.0/agent-run.png)
203
-
204
- ### Hooks dispatch + run log
205
-
206
- ![Hooks — per-hook Run and recent executions](docs/assets/v3.4.0/hooks-dispatch.png)
207
-
208
- ### Local Agent (on-device runtime)
209
-
210
- ![My Computer — Local Agent status and handshake](docs/assets/v3.4.0/local-agent.png)
211
-
212
- ### Knowledge Graph
213
-
214
- ![Knowledge Graph](docs/assets/v3.4.0/knowledge-graph.png)
215
-
216
- ## Knowledge Graph Flow
163
+ ## Core Features
164
+
165
+ - **Local-first workspace** — your data, models, and workspace state live on your
166
+ machine by default; cloud is opt-in.
167
+ - **Files and connected folders** — upload documents or connect a local folder;
168
+ Lattice indexes them and watches connected folders for changes.
169
+ - **Chat with workspace context** — conversations are grounded in your files,
170
+ knowledge graph, and memory, with vision-capable image input.
171
+ - **Knowledge Graph** files, images, notes, conversations, and decisions become
172
+ linked entities and relationships you can explore.
173
+ - **Hybrid Search** keyword, vector, and graph signals are fused into one ranked
174
+ result set.
175
+ - **Local model support** — run multimodal models locally via MLX, Ollama, or LM
176
+ Studio, with hardware-aware recommendations and source disclosure.
177
+ - **Optional cloud model routing** add OpenAI-compatible or other cloud models
178
+ when you choose; model cards disclose origin, run mode, and internet use.
179
+ - **Multi-agent workflows** turn goals into runs with roles, handoffs, review,
180
+ retries, and replayable timelines.
181
+ - **Skills, hooks, tools, and MCP** extend the workspace with skills, lifecycle
182
+ hooks, a governed tool registry, and Model Context Protocol servers.
183
+ - **Personal / Organization workspaces** keep personal work separate from team
184
+ work with role-aware views.
185
+ - **Basic / Advanced / Admin modes** — show only what each role needs, from core
186
+ workflows to agent tooling to administration.
187
+
188
+ ## Latest Release
189
+
190
+ ### v3.4.1 Runtime Completion
191
+
192
+ - Full hooks lifecycle across HTTP, agent, workflow, upload, and indexing paths.
193
+ - Real Local Agent probes instead of hardcoded readiness.
194
+ - Connect Folder verified end-to-end.
195
+ - Folder Watch verified, including restore after restart.
196
+
197
+ See [RELEASE_NOTES_v3.4.1.md](RELEASE_NOTES_v3.4.1.md) and
198
+ [FEATURE_STATUS.md](FEATURE_STATUS.md).
199
+
200
+ ## How it works
217
201
 
218
202
  ```text
219
- files / documents / images / screenshots / conversations / decisions
220
- -> multimodal understanding
221
- -> entity and relationship extraction
222
- -> evidence and artifact storage
223
- -> Knowledge Graph update
224
- -> AI pipeline context
225
- -> coding actions / analysis / documents / team workflows
203
+ files / chats / notes / images / decisions
204
+ -> workspace memory
205
+ -> knowledge graph
206
+ -> hybrid search
207
+ -> chat / agents / workflows
208
+ -> reusable outputs
226
209
  ```
227
210
 
228
- The graph keeps useful workspace context available even when you change models.
229
-
230
- ## v3 Backend Retrieval
211
+ - Your content stays on your machine and becomes durable workspace memory.
212
+ - Memory is organized into a knowledge graph of entities and relationships.
213
+ - Hybrid search fuses keyword, vector, and graph signals over that context.
214
+ - Chat, agents, and workflows draw on the same grounded context.
215
+ - Outputs — documents, analysis, and decisions — feed back into the workspace.
231
216
 
232
- The v3 backend adds a local-first retrieval stack that combines the Knowledge
233
- Graph, a SQLite vector index, and hybrid result fusion. It preserves existing
234
- graph data while adding derived vector rows that can be rebuilt at any time.
217
+ For the deeper design, see [ARCHITECTURE.md](ARCHITECTURE.md) and
218
+ [docs/architecture.md](docs/architecture.md).
235
219
 
236
- Embedding status: production profiles are exposed through
237
- `GET /api/embeddings/providers`, while `lattice-local-hash-v1` remains a
238
- deterministic fallback for offline indexing and tests. It is never presented as
239
- a production semantic embedding model.
240
-
241
- Core API contracts:
220
+ ## Documentation
242
221
 
243
- - `POST /api/search/hybrid`
244
- - `GET /api/search/keyword?q=...`
245
- - `GET /api/search/vector?q=...`
246
- - `GET /api/graph`
247
- - `GET /api/graph/node?node_id=...`
248
- - `GET /api/graph/relationship`
249
- - `GET /api/index/status`
250
- - `POST /api/index/rebuild`
222
+ ### Product and principles
251
223
 
252
- See [docs/V3_BACKEND_ARCHITECTURE.md](docs/V3_BACKEND_ARCHITECTURE.md) for the
253
- storage model, search model, migration behavior, and API response shape.
224
+ - [PROJECT_PRINCIPLES.md](PROJECT_PRINCIPLES.md) product principles
225
+ - [AI_PHILOSOPHY.md](AI_PHILOSOPHY.md) how AI is used in the workspace
226
+ - [MODEL_POLICY.md](MODEL_POLICY.md) — local model recommendation policy
254
227
 
255
- ## Local Model Policy
228
+ ### Architecture
256
229
 
257
- Lattice AI recommends current-generation multimodal models for local use and
258
- keeps local model choices explicit.
230
+ - [ARCHITECTURE.md](ARCHITECTURE.md) workspace, graph, pipeline, and model overview
231
+ - [docs/architecture.md](docs/architecture.md) full architecture reference
232
+ - [docs/V3_BACKEND_ARCHITECTURE.md](docs/V3_BACKEND_ARCHITECTURE.md) — backend storage, search, and retrieval
259
233
 
260
- | Family | Default role | Example recommendation |
261
- | --- | --- | --- |
262
- | Gemma 4 | Default Google multimodal family | `mlx-community/gemma-4-12b-it-4bit` |
263
- | Gemma 4 large | Higher-quality local multimodal work | `mlx-community/gemma-4-31b-it-4bit` |
264
- | Qwen3-VL | Smaller, balanced multimodal options | `mlx-community/Qwen3-VL-4B-Instruct-4bit` |
265
- | Llama 4 | Meta multimodal option | `mlx-community/Llama-4-Scout-17B-16E-Instruct-4bit` |
234
+ ### Knowledge and retrieval
266
235
 
267
- Every recommended model card shows maker country, maker company, run mode,
268
- internet requirement, and model name. See [MODEL_POLICY.md](MODEL_POLICY.md).
236
+ - [KNOWLEDGE_GRAPH.md](KNOWLEDGE_GRAPH.md) graph model and behavior
269
237
 
270
- ## Architecture
238
+ ### Agents and workflows
271
239
 
272
- ```text
273
- Personal / Organization Workspace
274
- -> files, chats, screenshots, model choices, workflow events
275
- -> Knowledge Graph
276
- -> AI Pipeline
277
- -> Multi-Agent Workflow
278
- -> coding actions, documents, analysis, team handoffs
279
- ```
240
+ - [docs/MULTI_AGENT_RUNTIME.md](docs/MULTI_AGENT_RUNTIME.md) — multi-agent workflow runtime
241
+ - [docs/WORKFLOW_DESIGNER.md](docs/WORKFLOW_DESIGNER.md) AI pipeline designer
280
242
 
281
- Core areas:
243
+ ### Extensions
282
244
 
283
- - FastAPI local workspace app
284
- - Knowledge Graph storage and graph APIs
285
- - AI pipeline and workflow designer
286
- - Multi-agent handoff, review, retry, and replay records
287
- - Local model management and model recommendation catalog
288
- - VS Code / Cursor / VSCodium extension surface
289
- - Personal and organization workspace boundaries
245
+ - [docs/PLUGIN_SDK.md](docs/PLUGIN_SDK.md) plugin SDK
290
246
 
291
- ## Documentation
247
+ ### Releases
292
248
 
293
- - [ARCHITECTURE.md](ARCHITECTURE.md) — workspace, graph, pipeline, and model-management overview
294
- - [docs/architecture.md](docs/architecture.md) — full architecture reference
295
- - [PROJECT_PRINCIPLES.md](PROJECT_PRINCIPLES.md) — product principles
296
- - [AI_PHILOSOPHY.md](AI_PHILOSOPHY.md) — how AI is used in the workspace
297
- - [MODEL_POLICY.md](MODEL_POLICY.md) local model recommendation policy
298
- - [KNOWLEDGE_GRAPH.md](KNOWLEDGE_GRAPH.md) — graph model and behavior
299
- - [docs/MULTI_AGENT_RUNTIME.md](docs/MULTI_AGENT_RUNTIME.md) — multi-agent workflow runtime
300
- - [docs/WORKFLOW_DESIGNER.md](docs/WORKFLOW_DESIGNER.md) — AI pipeline designer
301
- - [docs/REALTIME_COLLABORATION.md](docs/REALTIME_COLLABORATION.md) — realtime workspace events
302
- - [docs/ENTERPRISE.md](docs/ENTERPRISE.md) — organization workspaces and SSO
303
- - [docs/PLUGIN_SDK.md](docs/PLUGIN_SDK.md) — plugin SDK
304
- - [RELEASE_NOTES.md](RELEASE_NOTES.md) and [docs/CHANGELOG.md](docs/CHANGELOG.md)
249
+ - [RELEASE_NOTES.md](RELEASE_NOTES.md) — current release notes
250
+ - [RELEASE_NOTES_v3.4.1.md](RELEASE_NOTES_v3.4.1.md)
251
+ - [RELEASE_NOTES_v3.4.0.md](RELEASE_NOTES_v3.4.0.md)
252
+ - [RELEASE_NOTES_v3.3.0.md](RELEASE_NOTES_v3.3.0.md)
253
+ - [CHANGELOG.md](CHANGELOG.md) and [docs/CHANGELOG.md](docs/CHANGELOG.md)
305
254
 
306
- ## Release history
255
+ ## Release History
307
256
 
308
257
  | Version | Theme |
309
258
  | --- | --- |
310
- | **3.4.0** | Platform completion — hooks execution engine, uploads visible in Files, VLM image input, agent run trigger, on-device Local Agent / Connect Folder / Folder Watch; Enterprise stays honestly disabled; refreshed v3.4.0 public assets |
311
- | 3.3.1 | Visual product rebuild rebuilt `/app` shell, Basic/Advanced/Admin navigation, cooler token palette, compact component system, Home readiness dashboard, Files local-agent truthfulness, Settings runtime status, and v3.3.1 design notes |
312
- | **3.3.0** | Product quality & honesty release evidence-based feature audit (`FEATURE_STATUS.md`), single-source version truth, working manual document upload in Files, fixed document-generation streaming, truthful Home retrieval status, documented design system (`STYLE_SYSTEM.md`) |
313
- | 3.2.0 | Feature-complete platform multi-agent collaboration, agent registry, marketplace + templates, workflow agents, autonomous planning, long-term memory + manager, skills/hooks/tool registries, MCP manager, all operable from `/app` |
314
- | 3.1.0 | Mainline platform completion native `/app` workflows, Classic retired from normal paths, production embedding profiles, AgentRuntime/registries, hashed v3 assets |
315
- | 3.0.1 | Release-blocker remediationprovider-backed embeddings (Hash/MLX/Ollama/OpenAI/Custom), unified AgentRuntime boundary, every v3 surface connected or clearly unavailable |
259
+ | **3.4.1** | Runtime completion — full hooks lifecycle, real Local Agent probes, Connect Folder and Folder Watch verified end-to-end |
260
+ | 3.4.0 | Platform completionhooks execution, uploads in Files, vision image input, agent run trigger, on-device Local Agent / Connect Folder / Folder Watch |
261
+ | 3.3.1 | Visual product rebuildrebuilt `/app` shell, Basic/Advanced/Admin navigation, refreshed design system |
262
+ | **3.3.0** | Product quality & honesty release evidence-based feature audit, single-source version truth, working document upload, documented design system |
263
+ | 3.2.0 | Feature-complete platform — multi-agent collaboration, agent registry, marketplace + templates, workflow agents, long-term memory, skills/hooks/tool registries, MCP manager |
264
+ | 3.1.0 | Mainline platform completion native `/app` workflows, production embedding profiles, AgentRuntime/registries, hashed v3 assets |
265
+ | 3.0.1 | Release-blocker remediation — provider-backed embeddings, unified AgentRuntime boundary, every v3 surface connected or clearly unavailable |
316
266
  | 3.0.0 | v3 local-first AI workspace platform — `/app`, Native Chat, Knowledge Graph, Vector Index, Hybrid Search, workspace modes |
317
267
  | 2.2.7 | Visual system stabilization — cohesive dark/light screens, crisp chat composer, dark graph canvas, Workspace OS polish |
318
268
  | 2.2.6 | Token-native CSS foundation |
@@ -0,0 +1,56 @@
1
+ # Runtime Hook Coverage — v3.5.0
2
+
3
+ Every place Lattice AI executes a real tool or agent action, and whether it runs
4
+ through the unified lifecycle. The single tool path is
5
+ `dispatch_tool(hooks, name, args, run_fn)` in `latticeai/core/hooks.py`
6
+ (`pre_tool → execute → post_tool`); the HTTP helper `_tool_response`
7
+ (`latticeai/api/tools.py`) wraps it; uploads use the parallel
8
+ `pre_upload/post_upload/pre_index/post_index` lifecycle
9
+ (`latticeai/services/upload_service.py`); agent runs use `pre_run/post_run`.
10
+
11
+ **Method.** Routers/services were enumerated by a 6-way parallel audit and then
12
+ each genuine execution path was verified by reading the call site. A path is a
13
+ *bypass* only if a real tool/agent action skips its lifecycle. Read-only metadata
14
+ endpoints (status, list-permissions, config) execute no tool and are not bypasses.
15
+
16
+ **Result.** All discovered tool/agent execution paths are covered. The four
17
+ remaining "uncovered" rows are deliberate, documented design decisions (service
18
+ maintenance ops + an action already inside the upload lifecycle), not gaps.
19
+
20
+ ## Tool / agent execution paths
21
+
22
+ | Entrypoint | Execution | Lifecycle path | pre fired | post fired | Test |
23
+ |---|---|---|---|---|---|
24
+ | `POST /tools/list_dir`, `workspace_tree`, `write_file`, `search_files`, `todo_*`, `inspect_html`, `preview_url`, `create_*`, `read_document`, `knowledge_*`, `obsidian_*`, `network_status` | tool fn | `_tool_response`→`dispatch_tool` | yes (`pre_tool`) | yes (`post_tool`) | `test_hooks_dispatch`, `test_runtime_coverage` |
25
+ | `POST /tools/read_file` | `read_file` (kwargs) | `_tool_response` (kwargs-aware) ✅v3.5.0 | yes | yes | `test_runtime_coverage` |
26
+ | `POST /tools/edit_file` | `edit_file` (kwargs) | `_tool_response` ✅v3.5.0 | yes | yes | `test_runtime_coverage` |
27
+ | `POST /tools/grep` | `grep` (kwargs) | `_tool_response` ✅v3.5.0 | yes | yes | `test_runtime_coverage` |
28
+ | `POST /tools/clear_history` | `clear_history` | `_dispatch`→`dispatch_tool` ✅v3.5.0 | yes | yes | `test_runtime_coverage` |
29
+ | `POST /tools/git_*`, `run_command`, `build_project`, `deploy_project` | tool fn | `_tool_response` | yes | yes | `test_route_compatibility` |
30
+ | `POST /local/*` (list/read/write) | `local_*` | `tool_response` | yes | yes | `test_route_compatibility` |
31
+ | `GET/POST /cu/*` (open_app/url/click/type/key/scroll/move/drag) | `computer_*` | `tool_response` | yes | yes | `test_runtime_coverage` |
32
+ | `GET /cu/status`, `/cu/screenshot` | `computer_status/screenshot` | `_dispatch` ✅v3.5.0 | yes | yes | `test_runtime_coverage` |
33
+ | `POST /cu/agent` (agent loop) | `execute_tool(name,args)` per step + Chrome shortcut | `_dispatch`→`dispatch_tool` ✅v3.5.0 | yes | yes | `test_runtime_coverage` |
34
+ | `POST /agent/eval` | `execute_tool` per eval case | `dispatch_tool` ✅v3.5.0 | yes | yes | (covered via dispatch_tool) |
35
+ | Single-agent runtime tool calls | `execute_tool` via `AgentDeps` | `core/agent.py`→`dispatch_tool` | yes | yes | `test_hooks_dispatch` |
36
+ | Agent run (start→finish) | orchestrator run | `agent_runtime` `pre_run`/`post_run` | yes (`pre_run`) | yes (`post_run`) | `test_hooks_dispatch` |
37
+ | Workflow tool node | `dispatch_tool` | `platform_runtime` | yes | yes | `test_hooks_dispatch` |
38
+ | Workflow run (start→end) | engine run | `WorkflowEngine` `pre_workflow`/`post_workflow` | yes | yes | `test_hooks_dispatch` |
39
+ | `POST /upload/document` | `process_uploaded_document` | upload lifecycle | `pre_upload` | `post_upload` | existing upload tests |
40
+ | Document indexing (upload + folder watch) | embed/graph build | `pre_index`/`post_index` | yes | yes | existing |
41
+
42
+ ## Intentionally outside the tool lifecycle (documented, not gaps)
43
+
44
+ | Entrypoint | Why not `pre_tool`/`post_tool` |
45
+ |---|---|
46
+ | `read_document` inside `process_uploaded_document` (`upload_service.py`) | Already inside the upload lifecycle (`pre_upload`→`post_upload`); wrapping it again would double-dispatch the same user action. |
47
+ | `POST /api/memory/{prune,compact,rebuild,clear}` | Knowledge/memory **service** maintenance operations, not registry tools; they have their own audit events. Not part of the agent tool vocabulary. |
48
+ | `clear_history` inside `core/agent.py` executor | Runs inside an agent run already bracketed by `pre_run`/`post_run`; not re-wrapped to avoid nested dispatch. |
49
+ | Read-only status/config endpoints (`/tools/permissions`, `/obsidian/status`, model/catalog reads) | Execute no tool — nothing to gate. |
50
+
51
+ ## Summary
52
+
53
+ - Genuine tool/agent execution paths discovered: **all enumerated routers + services**.
54
+ - Bypasses found and closed in v3.5.0: **read_file, edit_file, grep, clear_history, computer-use agent loop (+ /cu/status, /cu/screenshot), skill-eval**.
55
+ - Bypasses remaining: **none** (the four rows above are deliberate, documented design decisions).
56
+ - Coverage of discovered tool/agent execution paths: **100%**.
@@ -0,0 +1,42 @@
1
+ login: 200 session_cookie=True
2
+ ----------------------------------------------------------------------
3
+ A) LOCAL AGENT — real probe
4
+ mode=online online=True pid=31230 version=3.4.0
5
+ filesystem_access=True watcher_available=True
6
+ handshake.ok=True latency_ms=0.85 graph_reachable=True
7
+ error=None connected_folders=1 watched_folders=1
8
+ ----------------------------------------------------------------------
9
+ B) HOOKS — tool lifecycle (pre_tool + post_tool) via /tools/list_dir
10
+ post_tool e2e-observe-post_tool status=advisory out=
11
+ post_tool e2e-observe-post_tool status=advisory out=
12
+ pre_tool Sensitive-data guard status=ok out=sensitivity=none labels=none
13
+ pre_tool Tool permission gate status=ok out=policy[list_dir]: risk=low approval=False
14
+ ----------------------------------------------------------------------
15
+ C) HOOKS — agent run fires pre_run + post_run
16
+ run status=ok pre_run.ran=1 post_run.ran=1
17
+ ----------------------------------------------------------------------
18
+ D) HOOKS — upload fires pre_upload/post_upload + pre_index/post_index
19
+ graph_node=file:e9d3a2e2aa886585c05fbcc8 upload lifecycle kinds: ['post_index', 'post_upload', 'pre_index', 'pre_upload']
20
+ ----------------------------------------------------------------------
21
+ E) CONNECT FOLDER — real local folder through approval + index
22
+ token=yes approve=None indexed=None watch=True
23
+ connect index lifecycle kinds: ['post_index', 'pre_index']
24
+ ----------------------------------------------------------------------
25
+ F) FILES + RETRIEVAL + HYBRID over connected folder content
26
+ documents total=5 files=['upload_test.md', 'fresh.txt', 'readme.md', 'notes.txt', 'upload_test.md']
27
+ connected source watch_active=True indexed=None
28
+ hybrid matches=25 top=upload_test.md
29
+ ----------------------------------------------------------------------
30
+ G) FOLDER WATCH — create file -> debounced reindex -> post_index(folder.reindex)
31
+ created fresh.txt; waiting ~8s for debounced reindex...
32
+ folder.reindex hooks: before=2 after=5 watcher active=['source:f5800c5cb0681b6f19ae59e2'] available=True
33
+ ----------------------------------------------------------------------
34
+ E2E RESULTS:
35
+ PASS local_agent_probed
36
+ PASS tool_hooks_fire
37
+ PASS agent_run_hooks
38
+ PASS upload_hooks
39
+ PASS connect_folder
40
+ PASS retrieval
41
+ PASS folder_watch
42
+ RESTORE-ON-RESTART (after a prior reboot): active sources = ['source:f5800c5cb0681b6f19ae59e2'] -> PASS
@@ -1,3 +1,3 @@
1
1
  """Lattice AI - modular server package."""
2
2
 
3
- __version__ = "3.4.0"
3
+ __version__ = "3.5.0"