@precisionutilityguild/liquid-shadow 1.0.5 → 1.0.7
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 +6 -6
- package/dist/data/migrations/000_baseline.sql +38 -0
- package/dist/data/migrations/010_type_graph_edges.sql +27 -0
- package/dist/data/migrations/011_handoff_embeddings.sql +2 -0
- package/dist/data/migrations/012_ember_state.sql +18 -0
- package/dist/entry/cli/index.js +525 -573
- package/dist/entry/ember/index.js +545 -0
- package/dist/entry/mcp/server.js +505 -350
- package/dist/index.js +490 -337
- package/dist/logic/domain/embeddings/worker.js +1 -1
- package/dist/skills/shadow_audit/SKILL.md +3 -0
- package/dist/skills/shadow_continue/SKILL.md +18 -10
- package/dist/skills/shadow_mission/SKILL.md +11 -8
- package/dist/skills/shadow_onboard/SKILL.md +15 -11
- package/dist/skills/shadow_sync/SKILL.md +1 -1
- package/dist/skills/shadow_synthesize/SKILL.md +7 -6
- package/dist/skills/shadow_understand/SKILL.md +19 -13
- package/dist/web-manifest.json +35 -28
- package/package.json +2 -2
- package/skills/shadow_audit/SKILL.md +3 -0
- package/skills/shadow_continue/SKILL.md +18 -10
- package/skills/shadow_mission/SKILL.md +11 -8
- package/skills/shadow_onboard/SKILL.md +15 -11
- package/skills/shadow_sync/SKILL.md +1 -1
- package/skills/shadow_synthesize/SKILL.md +7 -6
- package/skills/shadow_understand/SKILL.md +19 -13
package/README.md
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
-
<img src="https://img.shields.io/badge/version-1.0.
|
|
10
|
-
<img src="https://img.shields.io/badge/License-
|
|
9
|
+
<img src="https://img.shields.io/badge/version-1.0.7-blue.svg" alt="Version">
|
|
10
|
+
<img src="https://img.shields.io/badge/License-Apache--2.0-blue.svg" alt="License">
|
|
11
11
|
<img src="https://img.shields.io/badge/build-passing-brightgreen.svg" alt="Build">
|
|
12
12
|
<img src="https://img.shields.io/badge/MCP-First-6D28D9.svg" alt="MCP First">
|
|
13
13
|
</p>
|
|
@@ -42,12 +42,12 @@ Change one function, see the ripple. Trace execution flows and predict the **Bla
|
|
|
42
42
|
|
|
43
43
|
---
|
|
44
44
|
|
|
45
|
-
## The Tactical Suite (
|
|
45
|
+
## The Tactical Suite (40 Atomic Tools)
|
|
46
46
|
|
|
47
47
|
Organized into specialized intelligence suites for the modern agent:
|
|
48
48
|
|
|
49
|
-
| Suite
|
|
50
|
-
|
|
|
49
|
+
| Suite | Tactical Purpose | Key Tools |
|
|
50
|
+
| :--------------- | :------------------------------ | :------------------------------------------------- |
|
|
51
51
|
| **Ops Control** | Mission & context management | `shadow_ops_context`, `shadow_ops_briefing` |
|
|
52
52
|
| **Intelligence** | Deep architectural reasoning | `shadow_analyze_impact`, `shadow_analyze_flow` |
|
|
53
53
|
| **Discovery** | Semantic & config retrieval | `shadow_search_concept`, `shadow_search_config` |
|
|
@@ -80,7 +80,7 @@ liquid-shadow dashboard
|
|
|
80
80
|
|
|
81
81
|
### 3. The Skills-First Loop
|
|
82
82
|
|
|
83
|
-
Liquid Shadow is designed for **Autonomy**. While it provides
|
|
83
|
+
Liquid Shadow is designed for **Autonomy**. While it provides 40 atomic tools, the primary interface for an agent is the **Skills** system. Running `liquid-shadow init` automatically injects these high-level workflows into the agent's environment.
|
|
84
84
|
|
|
85
85
|
#### High-Signal Workflows
|
|
86
86
|
|
|
@@ -158,6 +158,7 @@ CREATE TABLE IF NOT EXISTS mission_artifacts (
|
|
|
158
158
|
type TEXT NOT NULL,
|
|
159
159
|
identifier TEXT NOT NULL,
|
|
160
160
|
metadata TEXT,
|
|
161
|
+
embedding TEXT DEFAULT NULL,
|
|
161
162
|
created_at INTEGER DEFAULT (unixepoch()),
|
|
162
163
|
FOREIGN KEY(mission_id) REFERENCES missions(id) ON DELETE CASCADE
|
|
163
164
|
);
|
|
@@ -218,6 +219,36 @@ CREATE TABLE IF NOT EXISTS event_synapses (
|
|
|
218
219
|
created_at REAL DEFAULT (unixepoch())
|
|
219
220
|
);
|
|
220
221
|
|
|
222
|
+
-- ── Type graph ───────────────────────────────────────────────
|
|
223
|
+
|
|
224
|
+
CREATE TABLE IF NOT EXISTS type_graph_edges (
|
|
225
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
226
|
+
file_path TEXT NOT NULL,
|
|
227
|
+
source_symbol_id INTEGER NOT NULL,
|
|
228
|
+
source_symbol_name TEXT NOT NULL,
|
|
229
|
+
target_symbol_name TEXT NOT NULL,
|
|
230
|
+
relationship TEXT NOT NULL,
|
|
231
|
+
line_number INTEGER,
|
|
232
|
+
metadata TEXT,
|
|
233
|
+
created_at REAL DEFAULT (unixepoch()),
|
|
234
|
+
FOREIGN KEY(file_path) REFERENCES files(path) ON DELETE CASCADE,
|
|
235
|
+
FOREIGN KEY(source_symbol_id) REFERENCES exports(id) ON DELETE CASCADE
|
|
236
|
+
);
|
|
237
|
+
|
|
238
|
+
-- ── Ember daemon IPC ─────────────────────────────────────────
|
|
239
|
+
|
|
240
|
+
CREATE TABLE IF NOT EXISTS ember_state (
|
|
241
|
+
key TEXT PRIMARY KEY,
|
|
242
|
+
value TEXT,
|
|
243
|
+
updated_at REAL DEFAULT (unixepoch())
|
|
244
|
+
);
|
|
245
|
+
|
|
246
|
+
INSERT OR IGNORE INTO ember_state (key, value) VALUES ('status', 'idle');
|
|
247
|
+
INSERT OR IGNORE INTO ember_state (key, value) VALUES ('progress', '0/0');
|
|
248
|
+
INSERT OR IGNORE INTO ember_state (key, value) VALUES ('started_at', NULL);
|
|
249
|
+
INSERT OR IGNORE INTO ember_state (key, value) VALUES ('pid', NULL);
|
|
250
|
+
INSERT OR IGNORE INTO ember_state (key, value) VALUES ('repo_path', NULL);
|
|
251
|
+
|
|
221
252
|
-- ── Metadata / caches ────────────────────────────────────────
|
|
222
253
|
|
|
223
254
|
CREATE TABLE IF NOT EXISTS index_metadata (
|
|
@@ -266,11 +297,18 @@ CREATE INDEX IF NOT EXISTS idx_intent_embedding ON intent_logs(id) WHERE
|
|
|
266
297
|
CREATE INDEX IF NOT EXISTS idx_working_set_mission ON working_set(mission_id);
|
|
267
298
|
CREATE INDEX IF NOT EXISTS idx_cross_repo_mission ON cross_repo_links(mission_id);
|
|
268
299
|
CREATE INDEX IF NOT EXISTS idx_mission_artifacts_mission ON mission_artifacts(mission_id);
|
|
300
|
+
CREATE INDEX IF NOT EXISTS idx_mission_artifacts_embedding ON mission_artifacts(id) WHERE embedding IS NOT NULL;
|
|
269
301
|
|
|
270
302
|
-- Event mesh
|
|
271
303
|
CREATE INDEX IF NOT EXISTS idx_events_name ON event_synapses(name);
|
|
272
304
|
CREATE INDEX IF NOT EXISTS idx_events_file ON event_synapses(file_path);
|
|
273
305
|
|
|
306
|
+
-- Type graph
|
|
307
|
+
CREATE INDEX IF NOT EXISTS idx_type_graph_file_path ON type_graph_edges(file_path);
|
|
308
|
+
CREATE INDEX IF NOT EXISTS idx_type_graph_source_symbol ON type_graph_edges(source_symbol_id);
|
|
309
|
+
CREATE INDEX IF NOT EXISTS idx_type_graph_target_symbol ON type_graph_edges(target_symbol_name);
|
|
310
|
+
CREATE INDEX IF NOT EXISTS idx_type_graph_relationship ON type_graph_edges(relationship);
|
|
311
|
+
|
|
274
312
|
-- Caches
|
|
275
313
|
CREATE INDEX IF NOT EXISTS idx_search_history_created_at ON search_history(created_at DESC);
|
|
276
314
|
CREATE INDEX IF NOT EXISTS idx_search_history_mode ON search_history(mode);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
-- Type graph relations indexed from symbol signatures (extends / implements / generic constraints)
|
|
2
|
+
|
|
3
|
+
CREATE TABLE IF NOT EXISTS type_graph_edges (
|
|
4
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
5
|
+
file_path TEXT NOT NULL,
|
|
6
|
+
source_symbol_id INTEGER NOT NULL,
|
|
7
|
+
source_symbol_name TEXT NOT NULL,
|
|
8
|
+
target_symbol_name TEXT NOT NULL,
|
|
9
|
+
relationship TEXT NOT NULL,
|
|
10
|
+
line_number INTEGER,
|
|
11
|
+
metadata TEXT,
|
|
12
|
+
created_at REAL DEFAULT (unixepoch()),
|
|
13
|
+
FOREIGN KEY(file_path) REFERENCES files(path) ON DELETE CASCADE,
|
|
14
|
+
FOREIGN KEY(source_symbol_id) REFERENCES exports(id) ON DELETE CASCADE
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
CREATE INDEX IF NOT EXISTS idx_type_graph_file_path ON type_graph_edges(file_path);
|
|
18
|
+
CREATE INDEX IF NOT EXISTS idx_type_graph_source_symbol ON type_graph_edges(source_symbol_id);
|
|
19
|
+
CREATE INDEX IF NOT EXISTS idx_type_graph_target_symbol ON type_graph_edges(target_symbol_name);
|
|
20
|
+
CREATE INDEX IF NOT EXISTS idx_type_graph_relationship ON type_graph_edges(relationship);
|
|
21
|
+
|
|
22
|
+
-- DOWN
|
|
23
|
+
DROP INDEX IF EXISTS idx_type_graph_relationship;
|
|
24
|
+
DROP INDEX IF EXISTS idx_type_graph_target_symbol;
|
|
25
|
+
DROP INDEX IF EXISTS idx_type_graph_source_symbol;
|
|
26
|
+
DROP INDEX IF EXISTS idx_type_graph_file_path;
|
|
27
|
+
DROP TABLE IF EXISTS type_graph_edges;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
-- Ember daemon IPC state table
|
|
2
|
+
-- Used as a message bus between the main MCP process and the detached Ember embedding daemon.
|
|
3
|
+
-- WAL snapshot isolation means MCP readers never see partial write state.
|
|
4
|
+
|
|
5
|
+
CREATE TABLE IF NOT EXISTS ember_state (
|
|
6
|
+
key TEXT PRIMARY KEY,
|
|
7
|
+
value TEXT,
|
|
8
|
+
updated_at REAL DEFAULT (unixepoch())
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
INSERT OR IGNORE INTO ember_state (key, value) VALUES ('status', 'idle');
|
|
12
|
+
INSERT OR IGNORE INTO ember_state (key, value) VALUES ('progress', '0/0');
|
|
13
|
+
INSERT OR IGNORE INTO ember_state (key, value) VALUES ('started_at', NULL);
|
|
14
|
+
INSERT OR IGNORE INTO ember_state (key, value) VALUES ('pid', NULL);
|
|
15
|
+
INSERT OR IGNORE INTO ember_state (key, value) VALUES ('repo_path', NULL);
|
|
16
|
+
|
|
17
|
+
-- DOWN
|
|
18
|
+
DROP TABLE IF EXISTS ember_state;
|