@claudecam/server 0.1.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.
- package/dist/db/index.js +68 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/queries.js +658 -0
- package/dist/db/queries.js.map +1 -0
- package/dist/db/schema.sql +259 -0
- package/dist/index.js +128 -0
- package/dist/index.js.map +1 -0
- package/dist/routes/agents.js +68 -0
- package/dist/routes/agents.js.map +1 -0
- package/dist/routes/correlation-audit.js +31 -0
- package/dist/routes/correlation-audit.js.map +1 -0
- package/dist/routes/events.js +81 -0
- package/dist/routes/events.js.map +1 -0
- package/dist/routes/files.js +24 -0
- package/dist/routes/files.js.map +1 -0
- package/dist/routes/parse-prd.js +38 -0
- package/dist/routes/parse-prd.js.map +1 -0
- package/dist/routes/projects.js +96 -0
- package/dist/routes/projects.js.map +1 -0
- package/dist/routes/registry.js +88 -0
- package/dist/routes/registry.js.map +1 -0
- package/dist/routes/session-groups.js +182 -0
- package/dist/routes/session-groups.js.map +1 -0
- package/dist/routes/sessions.js +109 -0
- package/dist/routes/sessions.js.map +1 -0
- package/dist/routes/sprints.js +58 -0
- package/dist/routes/sprints.js.map +1 -0
- package/dist/routes/stats.js +63 -0
- package/dist/routes/stats.js.map +1 -0
- package/dist/routes/stream.js +21 -0
- package/dist/routes/stream.js.map +1 -0
- package/dist/routes/tasks.js +198 -0
- package/dist/routes/tasks.js.map +1 -0
- package/dist/services/correlation-engine.js +577 -0
- package/dist/services/correlation-engine.js.map +1 -0
- package/dist/services/event-processor.js +857 -0
- package/dist/services/event-processor.js.map +1 -0
- package/dist/services/prd-parser.js +142 -0
- package/dist/services/prd-parser.js.map +1 -0
- package/dist/services/project-manager.js +351 -0
- package/dist/services/project-manager.js.map +1 -0
- package/dist/services/project-router.js +56 -0
- package/dist/services/project-router.js.map +1 -0
- package/dist/services/session-manager.js +76 -0
- package/dist/services/session-manager.js.map +1 -0
- package/dist/services/sse-manager.js +115 -0
- package/dist/services/sse-manager.js.map +1 -0
- package/dist/services/string-similarity.js +256 -0
- package/dist/services/string-similarity.js.map +1 -0
- package/dist/services/task-completion.js +251 -0
- package/dist/services/task-completion.js.map +1 -0
- package/package.json +59 -0
package/dist/db/index.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import Database from 'better-sqlite3';
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
3
|
+
import { join, dirname } from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = dirname(__filename);
|
|
7
|
+
let db;
|
|
8
|
+
export function getDb() {
|
|
9
|
+
if (!db) {
|
|
10
|
+
throw new Error('Database not initialized. Call initDb() first.');
|
|
11
|
+
}
|
|
12
|
+
return db;
|
|
13
|
+
}
|
|
14
|
+
export function initDb(dbPath) {
|
|
15
|
+
const resolvedPath = dbPath ?? join(process.cwd(), 'cam-data.db');
|
|
16
|
+
db = new Database(resolvedPath);
|
|
17
|
+
db.pragma('journal_mode = WAL');
|
|
18
|
+
db.pragma('foreign_keys = ON');
|
|
19
|
+
db.pragma('synchronous = NORMAL');
|
|
20
|
+
db.pragma('cache_size = -64000');
|
|
21
|
+
const schemaPath = join(__dirname, 'schema.sql');
|
|
22
|
+
const schema = readFileSync(schemaPath, 'utf-8');
|
|
23
|
+
db.exec(schema);
|
|
24
|
+
// Add correlation columns to events table (safe for existing DBs)
|
|
25
|
+
try {
|
|
26
|
+
db.exec(`ALTER TABLE events ADD COLUMN correlation_id TEXT`);
|
|
27
|
+
}
|
|
28
|
+
catch { /* column already exists */ }
|
|
29
|
+
try {
|
|
30
|
+
db.exec(`ALTER TABLE events ADD COLUMN causation_id TEXT`);
|
|
31
|
+
}
|
|
32
|
+
catch { /* column already exists */ }
|
|
33
|
+
// Sprint 11: Add prd_subsection column to prd_tasks table
|
|
34
|
+
try {
|
|
35
|
+
db.exec(`ALTER TABLE prd_tasks ADD COLUMN prd_subsection TEXT`);
|
|
36
|
+
}
|
|
37
|
+
catch { /* column already exists */ }
|
|
38
|
+
// Sprint 11: Retrofit existing prd_section values that contain " > "
|
|
39
|
+
// Split "Sprint X - Name > Subsection" into prd_section="Sprint X - Name", prd_subsection="Subsection"
|
|
40
|
+
try {
|
|
41
|
+
db.exec(`
|
|
42
|
+
UPDATE prd_tasks
|
|
43
|
+
SET prd_subsection = TRIM(SUBSTR(prd_section, INSTR(prd_section, ' > ') + 3)),
|
|
44
|
+
prd_section = TRIM(SUBSTR(prd_section, 1, INSTR(prd_section, ' > ') - 1))
|
|
45
|
+
WHERE prd_section LIKE '% > %' AND (prd_subsection IS NULL OR prd_subsection = '')
|
|
46
|
+
`);
|
|
47
|
+
}
|
|
48
|
+
catch { /* migration already applied or no matching rows */ }
|
|
49
|
+
// Sprint 8: Ensure project_registry table exists
|
|
50
|
+
db.exec(`
|
|
51
|
+
CREATE TABLE IF NOT EXISTS project_registry (
|
|
52
|
+
working_directory TEXT PRIMARY KEY,
|
|
53
|
+
project_id TEXT NOT NULL,
|
|
54
|
+
registered_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
55
|
+
prd_path TEXT,
|
|
56
|
+
hooks_installed INTEGER NOT NULL DEFAULT 0,
|
|
57
|
+
FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE
|
|
58
|
+
);
|
|
59
|
+
CREATE INDEX IF NOT EXISTS idx_project_registry_project ON project_registry(project_id);
|
|
60
|
+
`);
|
|
61
|
+
return db;
|
|
62
|
+
}
|
|
63
|
+
export function closeDb() {
|
|
64
|
+
if (db) {
|
|
65
|
+
db.close();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,IAAI,EAAqB,CAAC;AAE1B,MAAM,UAAU,KAAK;IACnB,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,MAAe;IACpC,MAAM,YAAY,GAAG,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IAElE,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEhC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC/B,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAClC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjD,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,kEAAkE;IAClE,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAEvC,0DAA0D;IAC1D,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAEvC,qEAAqE;IACrE,uGAAuG;IACvG,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC;;;;;KAKP,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAC,mDAAmD,CAAC,CAAC;IAE/D,iDAAiD;IACjD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;GAUP,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
|