@precisionutilityguild/liquid-shadow 1.0.7 → 1.0.10
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 +3 -3
- package/dist/data/migrations/000_baseline.sql +27 -0
- package/dist/data/migrations/013_file_claims.sql +18 -0
- package/dist/data/migrations/014_tribunal_state.sql +24 -0
- package/dist/data/migrations/015_repo_level_handoffs_nullable.sql +52 -0
- package/dist/data/migrations/016_repair_tribunal_artifact_fk.sql +58 -0
- package/dist/entry/cli/index.js +597 -495
- package/dist/entry/ember/index.js +109 -32
- package/dist/entry/mcp/server.js +443 -347
- package/dist/entry/tribunal/index.js +650 -0
- package/dist/index.js +441 -345
- package/dist/logic/parser/index.js +16 -14
- package/dist/skills/shadow_audit/SKILL.md +22 -30
- package/dist/skills/shadow_chronicle/SKILL.md +16 -29
- package/dist/skills/shadow_continue/SKILL.md +37 -53
- package/dist/skills/shadow_coordinate/SKILL.md +46 -0
- package/dist/skills/shadow_crystallize/SKILL.md +13 -27
- package/dist/skills/shadow_mission/SKILL.md +27 -41
- package/dist/skills/shadow_onboard/SKILL.md +26 -35
- package/dist/skills/shadow_research/SKILL.md +15 -23
- package/dist/skills/shadow_sync/SKILL.md +18 -9
- package/dist/skills/shadow_synthesize/SKILL.md +14 -36
- package/dist/skills/shadow_trace_impact/SKILL.md +30 -50
- package/dist/skills/shadow_understand/SKILL.md +37 -52
- package/dist/skills/shadow_workspace/SKILL.md +17 -17
- package/dist/web-manifest.json +16 -6
- package/package.json +1 -1
- package/skills/shadow_audit/SKILL.md +22 -30
- package/skills/shadow_chronicle/SKILL.md +16 -29
- package/skills/shadow_continue/SKILL.md +37 -53
- package/skills/shadow_coordinate/SKILL.md +46 -0
- package/skills/shadow_crystallize/SKILL.md +13 -27
- package/skills/shadow_mission/SKILL.md +27 -41
- package/skills/shadow_onboard/SKILL.md +26 -35
- package/skills/shadow_research/SKILL.md +15 -23
- package/skills/shadow_sync/SKILL.md +18 -9
- package/skills/shadow_synthesize/SKILL.md +14 -36
- package/skills/shadow_trace_impact/SKILL.md +30 -50
- package/skills/shadow_understand/SKILL.md +37 -52
- package/skills/shadow_workspace/SKILL.md +17 -17
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
-
<img src="https://img.shields.io/badge/version-1.0.
|
|
9
|
+
<img src="https://img.shields.io/badge/version-1.0.10-blue.svg" alt="Version">
|
|
10
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">
|
|
@@ -42,7 +42,7 @@ 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 (45 Atomic Tools)
|
|
46
46
|
|
|
47
47
|
Organized into specialized intelligence suites for the modern agent:
|
|
48
48
|
|
|
@@ -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 45 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
|
|
|
@@ -195,6 +195,14 @@ CREATE TABLE IF NOT EXISTS working_set (
|
|
|
195
195
|
FOREIGN KEY(symbol_id) REFERENCES exports(id) ON DELETE CASCADE
|
|
196
196
|
);
|
|
197
197
|
|
|
198
|
+
CREATE TABLE IF NOT EXISTS file_claims (
|
|
199
|
+
file_path TEXT PRIMARY KEY,
|
|
200
|
+
mission_id INTEGER NOT NULL,
|
|
201
|
+
claimed_at REAL DEFAULT (unixepoch()),
|
|
202
|
+
updated_at REAL DEFAULT (unixepoch()),
|
|
203
|
+
FOREIGN KEY(mission_id) REFERENCES missions(id) ON DELETE CASCADE
|
|
204
|
+
);
|
|
205
|
+
|
|
198
206
|
CREATE TABLE IF NOT EXISTS cross_repo_links (
|
|
199
207
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
200
208
|
mission_id INTEGER NOT NULL,
|
|
@@ -249,6 +257,23 @@ INSERT OR IGNORE INTO ember_state (key, value) VALUES ('started_at', NULL);
|
|
|
249
257
|
INSERT OR IGNORE INTO ember_state (key, value) VALUES ('pid', NULL);
|
|
250
258
|
INSERT OR IGNORE INTO ember_state (key, value) VALUES ('repo_path', NULL);
|
|
251
259
|
|
|
260
|
+
CREATE TABLE IF NOT EXISTS tribunal_state (
|
|
261
|
+
session_id TEXT PRIMARY KEY,
|
|
262
|
+
mission_id INTEGER,
|
|
263
|
+
repo_path TEXT NOT NULL,
|
|
264
|
+
status TEXT DEFAULT 'running',
|
|
265
|
+
phase TEXT DEFAULT 'initializing',
|
|
266
|
+
pid INTEGER,
|
|
267
|
+
artifact_id INTEGER,
|
|
268
|
+
started_at REAL DEFAULT (unixepoch()),
|
|
269
|
+
completed_at REAL,
|
|
270
|
+
FOREIGN KEY(mission_id) REFERENCES missions(id) ON DELETE SET NULL,
|
|
271
|
+
FOREIGN KEY(artifact_id) REFERENCES mission_artifacts(id) ON DELETE SET NULL
|
|
272
|
+
);
|
|
273
|
+
|
|
274
|
+
CREATE INDEX IF NOT EXISTS idx_tribunal_mission_id ON tribunal_state(mission_id);
|
|
275
|
+
CREATE INDEX IF NOT EXISTS idx_tribunal_status ON tribunal_state(status);
|
|
276
|
+
|
|
252
277
|
-- ── Metadata / caches ────────────────────────────────────────
|
|
253
278
|
|
|
254
279
|
CREATE TABLE IF NOT EXISTS index_metadata (
|
|
@@ -295,6 +320,8 @@ CREATE INDEX IF NOT EXISTS idx_intent_crystal ON intent_logs(crystal_i
|
|
|
295
320
|
CREATE INDEX IF NOT EXISTS idx_intent_crystallized ON intent_logs(is_crystallized);
|
|
296
321
|
CREATE INDEX IF NOT EXISTS idx_intent_embedding ON intent_logs(id) WHERE embedding IS NOT NULL;
|
|
297
322
|
CREATE INDEX IF NOT EXISTS idx_working_set_mission ON working_set(mission_id);
|
|
323
|
+
CREATE INDEX IF NOT EXISTS idx_file_claims_mission_id ON file_claims(mission_id);
|
|
324
|
+
CREATE INDEX IF NOT EXISTS idx_file_claims_updated_at ON file_claims(updated_at DESC);
|
|
298
325
|
CREATE INDEX IF NOT EXISTS idx_cross_repo_mission ON cross_repo_links(mission_id);
|
|
299
326
|
CREATE INDEX IF NOT EXISTS idx_mission_artifacts_mission ON mission_artifacts(mission_id);
|
|
300
327
|
CREATE INDEX IF NOT EXISTS idx_mission_artifacts_embedding ON mission_artifacts(id) WHERE embedding IS NOT NULL;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
-- File-level mission claims for atomic coordination.
|
|
2
|
+
-- SQLite UNIQUE(file_path) provides lock semantics without external lock files.
|
|
3
|
+
|
|
4
|
+
CREATE TABLE IF NOT EXISTS file_claims (
|
|
5
|
+
file_path TEXT PRIMARY KEY,
|
|
6
|
+
mission_id INTEGER NOT NULL,
|
|
7
|
+
claimed_at REAL DEFAULT (unixepoch()),
|
|
8
|
+
updated_at REAL DEFAULT (unixepoch()),
|
|
9
|
+
FOREIGN KEY(mission_id) REFERENCES missions(id) ON DELETE CASCADE
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
CREATE INDEX IF NOT EXISTS idx_file_claims_mission_id ON file_claims(mission_id);
|
|
13
|
+
CREATE INDEX IF NOT EXISTS idx_file_claims_updated_at ON file_claims(updated_at DESC);
|
|
14
|
+
|
|
15
|
+
-- DOWN
|
|
16
|
+
DROP INDEX IF EXISTS idx_file_claims_updated_at;
|
|
17
|
+
DROP INDEX IF EXISTS idx_file_claims_mission_id;
|
|
18
|
+
DROP TABLE IF EXISTS file_claims;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
-- Tribunal daemon session state for asynchronous mission peer-review runs.
|
|
2
|
+
-- Session UUID is the primary key; pid is advisory-only for debugging.
|
|
3
|
+
|
|
4
|
+
CREATE TABLE IF NOT EXISTS tribunal_state (
|
|
5
|
+
session_id TEXT PRIMARY KEY,
|
|
6
|
+
mission_id INTEGER,
|
|
7
|
+
repo_path TEXT NOT NULL,
|
|
8
|
+
status TEXT DEFAULT 'running',
|
|
9
|
+
phase TEXT DEFAULT 'initializing',
|
|
10
|
+
pid INTEGER,
|
|
11
|
+
artifact_id INTEGER,
|
|
12
|
+
started_at REAL DEFAULT (unixepoch()),
|
|
13
|
+
completed_at REAL,
|
|
14
|
+
FOREIGN KEY(mission_id) REFERENCES missions(id) ON DELETE SET NULL,
|
|
15
|
+
FOREIGN KEY(artifact_id) REFERENCES mission_artifacts(id) ON DELETE SET NULL
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
CREATE INDEX IF NOT EXISTS idx_tribunal_mission_id ON tribunal_state(mission_id);
|
|
19
|
+
CREATE INDEX IF NOT EXISTS idx_tribunal_status ON tribunal_state(status);
|
|
20
|
+
|
|
21
|
+
-- DOWN
|
|
22
|
+
DROP INDEX IF EXISTS idx_tribunal_status;
|
|
23
|
+
DROP INDEX IF EXISTS idx_tribunal_mission_id;
|
|
24
|
+
DROP TABLE IF EXISTS tribunal_state;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
PRAGMA foreign_keys = OFF;
|
|
2
|
+
|
|
3
|
+
ALTER TABLE mission_artifacts RENAME TO mission_artifacts_old;
|
|
4
|
+
|
|
5
|
+
CREATE TABLE IF NOT EXISTS mission_artifacts (
|
|
6
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
7
|
+
mission_id INTEGER,
|
|
8
|
+
type TEXT NOT NULL,
|
|
9
|
+
identifier TEXT NOT NULL,
|
|
10
|
+
metadata TEXT,
|
|
11
|
+
embedding TEXT DEFAULT NULL,
|
|
12
|
+
created_at INTEGER DEFAULT (unixepoch()),
|
|
13
|
+
FOREIGN KEY(mission_id) REFERENCES missions(id) ON DELETE CASCADE
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
INSERT INTO mission_artifacts (id, mission_id, type, identifier, metadata, embedding, created_at)
|
|
17
|
+
SELECT id, NULLIF(mission_id, 0), type, identifier, metadata, embedding, created_at
|
|
18
|
+
FROM mission_artifacts_old;
|
|
19
|
+
|
|
20
|
+
DROP TABLE mission_artifacts_old;
|
|
21
|
+
|
|
22
|
+
CREATE INDEX IF NOT EXISTS idx_mission_artifacts_mission ON mission_artifacts(mission_id);
|
|
23
|
+
CREATE INDEX IF NOT EXISTS idx_mission_artifacts_embedding ON mission_artifacts(id) WHERE embedding IS NOT NULL;
|
|
24
|
+
|
|
25
|
+
PRAGMA foreign_keys = ON;
|
|
26
|
+
|
|
27
|
+
-- DOWN
|
|
28
|
+
PRAGMA foreign_keys = OFF;
|
|
29
|
+
|
|
30
|
+
ALTER TABLE mission_artifacts RENAME TO mission_artifacts_new;
|
|
31
|
+
|
|
32
|
+
CREATE TABLE IF NOT EXISTS mission_artifacts (
|
|
33
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
34
|
+
mission_id INTEGER NOT NULL,
|
|
35
|
+
type TEXT NOT NULL,
|
|
36
|
+
identifier TEXT NOT NULL,
|
|
37
|
+
metadata TEXT,
|
|
38
|
+
embedding TEXT DEFAULT NULL,
|
|
39
|
+
created_at INTEGER DEFAULT (unixepoch()),
|
|
40
|
+
FOREIGN KEY(mission_id) REFERENCES missions(id) ON DELETE CASCADE
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
INSERT INTO mission_artifacts (id, mission_id, type, identifier, metadata, embedding, created_at)
|
|
44
|
+
SELECT id, COALESCE(mission_id, 0), type, identifier, metadata, embedding, created_at
|
|
45
|
+
FROM mission_artifacts_new;
|
|
46
|
+
|
|
47
|
+
DROP TABLE mission_artifacts_new;
|
|
48
|
+
|
|
49
|
+
CREATE INDEX IF NOT EXISTS idx_mission_artifacts_mission ON mission_artifacts(mission_id);
|
|
50
|
+
CREATE INDEX IF NOT EXISTS idx_mission_artifacts_embedding ON mission_artifacts(id) WHERE embedding IS NOT NULL;
|
|
51
|
+
|
|
52
|
+
PRAGMA foreign_keys = ON;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
PRAGMA foreign_keys = OFF;
|
|
2
|
+
|
|
3
|
+
ALTER TABLE tribunal_state RENAME TO tribunal_state_old;
|
|
4
|
+
|
|
5
|
+
CREATE TABLE IF NOT EXISTS tribunal_state (
|
|
6
|
+
session_id TEXT PRIMARY KEY,
|
|
7
|
+
mission_id INTEGER,
|
|
8
|
+
repo_path TEXT NOT NULL,
|
|
9
|
+
status TEXT DEFAULT 'running',
|
|
10
|
+
phase TEXT DEFAULT 'initializing',
|
|
11
|
+
pid INTEGER,
|
|
12
|
+
artifact_id INTEGER,
|
|
13
|
+
started_at REAL DEFAULT (unixepoch()),
|
|
14
|
+
completed_at REAL,
|
|
15
|
+
FOREIGN KEY(mission_id) REFERENCES missions(id) ON DELETE SET NULL,
|
|
16
|
+
FOREIGN KEY(artifact_id) REFERENCES mission_artifacts(id) ON DELETE SET NULL
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
INSERT INTO tribunal_state (session_id, mission_id, repo_path, status, phase, pid, artifact_id, started_at, completed_at)
|
|
20
|
+
SELECT session_id, mission_id, repo_path, status, phase, pid, artifact_id, started_at, completed_at
|
|
21
|
+
FROM tribunal_state_old;
|
|
22
|
+
|
|
23
|
+
DROP TABLE tribunal_state_old;
|
|
24
|
+
|
|
25
|
+
CREATE INDEX IF NOT EXISTS idx_tribunal_mission_id ON tribunal_state(mission_id);
|
|
26
|
+
CREATE INDEX IF NOT EXISTS idx_tribunal_status ON tribunal_state(status);
|
|
27
|
+
|
|
28
|
+
PRAGMA foreign_keys = ON;
|
|
29
|
+
|
|
30
|
+
-- DOWN
|
|
31
|
+
PRAGMA foreign_keys = OFF;
|
|
32
|
+
|
|
33
|
+
ALTER TABLE tribunal_state RENAME TO tribunal_state_new;
|
|
34
|
+
|
|
35
|
+
CREATE TABLE IF NOT EXISTS tribunal_state (
|
|
36
|
+
session_id TEXT PRIMARY KEY,
|
|
37
|
+
mission_id INTEGER,
|
|
38
|
+
repo_path TEXT NOT NULL,
|
|
39
|
+
status TEXT DEFAULT 'running',
|
|
40
|
+
phase TEXT DEFAULT 'initializing',
|
|
41
|
+
pid INTEGER,
|
|
42
|
+
artifact_id INTEGER,
|
|
43
|
+
started_at REAL DEFAULT (unixepoch()),
|
|
44
|
+
completed_at REAL,
|
|
45
|
+
FOREIGN KEY(mission_id) REFERENCES missions(id) ON DELETE SET NULL,
|
|
46
|
+
FOREIGN KEY(artifact_id) REFERENCES mission_artifacts_old(id) ON DELETE SET NULL
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
INSERT INTO tribunal_state (session_id, mission_id, repo_path, status, phase, pid, artifact_id, started_at, completed_at)
|
|
50
|
+
SELECT session_id, mission_id, repo_path, status, phase, pid, artifact_id, started_at, completed_at
|
|
51
|
+
FROM tribunal_state_new;
|
|
52
|
+
|
|
53
|
+
DROP TABLE tribunal_state_new;
|
|
54
|
+
|
|
55
|
+
CREATE INDEX IF NOT EXISTS idx_tribunal_mission_id ON tribunal_state(mission_id);
|
|
56
|
+
CREATE INDEX IF NOT EXISTS idx_tribunal_status ON tribunal_state(status);
|
|
57
|
+
|
|
58
|
+
PRAGMA foreign_keys = ON;
|