emdash-emit 0.1.11 → 0.1.13
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/CHANGELOG.md +71 -0
- package/README.md +6 -0
- package/dist/cli/commands/conflicts.d.ts.map +1 -1
- package/dist/cli/commands/conflicts.js +50 -4
- package/dist/cli/commands/conflicts.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +2 -0
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/pull.d.ts.map +1 -1
- package/dist/cli/commands/pull.js +14 -5
- package/dist/cli/commands/pull.js.map +1 -1
- package/dist/cli/commands/push.d.ts.map +1 -1
- package/dist/cli/commands/push.js +36 -2
- package/dist/cli/commands/push.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +25 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/context.d.ts.map +1 -1
- package/dist/cli/context.js +12 -1
- package/dist/cli/context.js.map +1 -1
- package/dist/client/api.d.ts +6 -0
- package/dist/client/api.d.ts.map +1 -1
- package/dist/client/api.js +36 -0
- package/dist/client/api.js.map +1 -1
- package/dist/db/cache.d.ts +15 -0
- package/dist/db/cache.d.ts.map +1 -1
- package/dist/db/cache.js +157 -43
- package/dist/db/cache.js.map +1 -1
- package/dist/mcp/heartbeat.d.ts +35 -0
- package/dist/mcp/heartbeat.d.ts.map +1 -0
- package/dist/mcp/heartbeat.js +135 -0
- package/dist/mcp/heartbeat.js.map +1 -0
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +7 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/sync-conflicts.d.ts.map +1 -1
- package/dist/mcp/tools/sync-conflicts.js +28 -5
- package/dist/mcp/tools/sync-conflicts.js.map +1 -1
- package/dist/mcp/tools/sync-doctor.d.ts.map +1 -1
- package/dist/mcp/tools/sync-doctor.js +5 -0
- package/dist/mcp/tools/sync-doctor.js.map +1 -1
- package/dist/mcp/tools/sync-pull.d.ts.map +1 -1
- package/dist/mcp/tools/sync-pull.js +8 -0
- package/dist/mcp/tools/sync-pull.js.map +1 -1
- package/dist/mcp/tools/sync-push.d.ts.map +1 -1
- package/dist/mcp/tools/sync-push.js +48 -5
- package/dist/mcp/tools/sync-push.js.map +1 -1
- package/dist/mcp/tools/sync-status.d.ts.map +1 -1
- package/dist/mcp/tools/sync-status.js +7 -1
- package/dist/mcp/tools/sync-status.js.map +1 -1
- package/dist/sync/conflicts.d.ts +25 -1
- package/dist/sync/conflicts.d.ts.map +1 -1
- package/dist/sync/conflicts.js +121 -4
- package/dist/sync/conflicts.js.map +1 -1
- package/dist/sync/delete.d.ts.map +1 -1
- package/dist/sync/delete.js +66 -3
- package/dist/sync/delete.js.map +1 -1
- package/dist/sync/doctor.d.ts +10 -0
- package/dist/sync/doctor.d.ts.map +1 -1
- package/dist/sync/doctor.js +153 -11
- package/dist/sync/doctor.js.map +1 -1
- package/dist/sync/merge.d.ts +48 -8
- package/dist/sync/merge.d.ts.map +1 -1
- package/dist/sync/merge.js +89 -24
- package/dist/sync/merge.js.map +1 -1
- package/dist/sync/orchestrator.d.ts +6 -1
- package/dist/sync/orchestrator.d.ts.map +1 -1
- package/dist/sync/orchestrator.js +19 -2
- package/dist/sync/orchestrator.js.map +1 -1
- package/dist/sync/pull.d.ts +14 -1
- package/dist/sync/pull.d.ts.map +1 -1
- package/dist/sync/pull.js +71 -23
- package/dist/sync/pull.js.map +1 -1
- package/dist/sync/push.d.ts +8 -0
- package/dist/sync/push.d.ts.map +1 -1
- package/dist/sync/push.js +262 -31
- package/dist/sync/push.js.map +1 -1
- package/dist/sync/status.d.ts +11 -0
- package/dist/sync/status.d.ts.map +1 -1
- package/dist/sync/status.js +13 -1
- package/dist/sync/status.js.map +1 -1
- package/dist/sync/taxonomies.d.ts +7 -0
- package/dist/sync/taxonomies.d.ts.map +1 -1
- package/dist/sync/taxonomies.js +28 -1
- package/dist/sync/taxonomies.js.map +1 -1
- package/dist/sync/terms.d.ts +5 -0
- package/dist/sync/terms.d.ts.map +1 -1
- package/dist/sync/terms.js +20 -3
- package/dist/sync/terms.js.map +1 -1
- package/package.json +1 -1
package/dist/client/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/client/api.ts"],"names":[],"mappings":"AAiCA,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5D,IAAI,EAAE,CAAC,CAAC;IACR,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC,CAiB3E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC,CA6BvE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,SAAM,GAAG,MAAM,CAmB/D"}
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/client/api.ts"],"names":[],"mappings":"AAiCA,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5D,IAAI,EAAE,CAAC,CAAC;IACR,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC,CAiB3E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC,CA6BvE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,SAAM,GAAG,MAAM,CAmB/D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CA+BjD"}
|
package/dist/client/api.js
CHANGED
|
@@ -93,4 +93,40 @@ export function extractRev(raw, fallback = '1') {
|
|
|
93
93
|
const rev = item._rev || envelopeRev || root._rev || item.rev || root.rev || item.version || root.version;
|
|
94
94
|
return rev ? String(rev) : fallback;
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Normalizes revision representation (pure number, base64-encoded token, or colon-delimited)
|
|
98
|
+
* to its canonical numeric string when possible, allowing reliable parity comparisons.
|
|
99
|
+
* e.g. "1", "1:2026-10-31...", "MToyMDI2LTEwLTMxVDAwOjE2OjI4Ljk1MFo=" all normalize to "1".
|
|
100
|
+
*/
|
|
101
|
+
export function normalizeRev(rev) {
|
|
102
|
+
if (rev === null || rev === undefined)
|
|
103
|
+
return '1';
|
|
104
|
+
const s = String(rev).trim();
|
|
105
|
+
if (!s)
|
|
106
|
+
return '1';
|
|
107
|
+
// If already pure digits
|
|
108
|
+
if (/^\d+$/.test(s)) {
|
|
109
|
+
return s;
|
|
110
|
+
}
|
|
111
|
+
// Check if string contains colon directly (e.g. "1:2026-10-31...")
|
|
112
|
+
const colonMatch = s.match(/^(\d+):/);
|
|
113
|
+
if (colonMatch) {
|
|
114
|
+
return colonMatch[1];
|
|
115
|
+
}
|
|
116
|
+
// Check if Base64 encoded (e.g. "MToyMDI2...")
|
|
117
|
+
try {
|
|
118
|
+
const decoded = Buffer.from(s, 'base64').toString('utf8');
|
|
119
|
+
const decodedColon = decoded.match(/^(\d+):/);
|
|
120
|
+
if (decodedColon) {
|
|
121
|
+
return decodedColon[1];
|
|
122
|
+
}
|
|
123
|
+
if (/^\d+$/.test(decoded)) {
|
|
124
|
+
return decoded;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
// Ignore decode failure
|
|
129
|
+
}
|
|
130
|
+
return s;
|
|
131
|
+
}
|
|
96
132
|
//# sourceMappingURL=api.js.map
|
package/dist/client/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/client/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/client/api.ts"],"names":[],"mappings":"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"}
|
package/dist/db/cache.d.ts
CHANGED
|
@@ -25,6 +25,13 @@ export interface SyncState {
|
|
|
25
25
|
status: string;
|
|
26
26
|
slug: string;
|
|
27
27
|
lastSyncedAt: number;
|
|
28
|
+
conflictPending?: number;
|
|
29
|
+
deletePending?: number;
|
|
30
|
+
conflictCopyHash?: string | null;
|
|
31
|
+
conflictCopyPath?: string | null;
|
|
32
|
+
conflictAt?: number | null;
|
|
33
|
+
remoteTaxonomyHash?: string | null;
|
|
34
|
+
taxonomyApplyPending?: number;
|
|
28
35
|
}
|
|
29
36
|
export interface BylineRecord {
|
|
30
37
|
id: string;
|
|
@@ -44,10 +51,14 @@ export interface MediaStateRecord {
|
|
|
44
51
|
status: MediaStateStatus;
|
|
45
52
|
uploadedAt?: number | null;
|
|
46
53
|
}
|
|
54
|
+
export declare const CURRENT_CACHE_SCHEMA_VERSION = 2;
|
|
47
55
|
export declare class CacheDatabase {
|
|
48
56
|
private db;
|
|
57
|
+
private dbPath;
|
|
49
58
|
constructor(dbPath: string);
|
|
50
59
|
private init;
|
|
60
|
+
private runMigrations;
|
|
61
|
+
getSchemaVersion(): number;
|
|
51
62
|
saveEntry(entry: CachedEntry): void;
|
|
52
63
|
getEntry(id: string): CachedEntry | null;
|
|
53
64
|
getEntryBySlug(slug: string, collection?: string): CachedEntry | null;
|
|
@@ -55,7 +66,11 @@ export declare class CacheDatabase {
|
|
|
55
66
|
saveBaseSnapshot(snapshot: BaseSnapshot): void;
|
|
56
67
|
getBaseSnapshot(id: string): BaseSnapshot | null;
|
|
57
68
|
deleteBaseSnapshot(id: string): void;
|
|
69
|
+
private rowToSyncState;
|
|
58
70
|
saveSyncState(state: SyncState): void;
|
|
71
|
+
setConflictPending(id: string, pending: boolean, copyHash?: string | null, copyPath?: string | null): void;
|
|
72
|
+
setDeletePending(id: string, pending: boolean): void;
|
|
73
|
+
setTaxonomyApplyPending(id: string, pending: boolean): void;
|
|
59
74
|
getSyncState(id: string): SyncState | null;
|
|
60
75
|
getSyncStateByPath(filePath: string): SyncState | null;
|
|
61
76
|
getSyncStateBySlug(slug: string): SyncState | null;
|
package/dist/db/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/db/cache.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/db/cache.ts"],"names":[],"mappings":"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"}
|
package/dist/db/cache.js
CHANGED
|
@@ -22,11 +22,14 @@
|
|
|
22
22
|
import { DatabaseSync } from 'node:sqlite';
|
|
23
23
|
import fs from 'node:fs';
|
|
24
24
|
import path from 'node:path';
|
|
25
|
+
export const CURRENT_CACHE_SCHEMA_VERSION = 2;
|
|
25
26
|
export class CacheDatabase {
|
|
26
27
|
db;
|
|
28
|
+
dbPath;
|
|
27
29
|
constructor(dbPath) {
|
|
30
|
+
this.dbPath = dbPath;
|
|
28
31
|
const parentDir = path.dirname(dbPath);
|
|
29
|
-
if (!fs.existsSync(parentDir)) {
|
|
32
|
+
if (dbPath !== ':memory:' && !fs.existsSync(parentDir)) {
|
|
30
33
|
fs.mkdirSync(parentDir, { recursive: true });
|
|
31
34
|
}
|
|
32
35
|
this.db = new DatabaseSync(dbPath);
|
|
@@ -71,7 +74,14 @@ export class CacheDatabase {
|
|
|
71
74
|
remote_rev TEXT NOT NULL,
|
|
72
75
|
status TEXT NOT NULL,
|
|
73
76
|
slug TEXT NOT NULL,
|
|
74
|
-
last_synced_at INTEGER NOT NULL
|
|
77
|
+
last_synced_at INTEGER NOT NULL,
|
|
78
|
+
conflict_pending INTEGER NOT NULL DEFAULT 0,
|
|
79
|
+
delete_pending INTEGER NOT NULL DEFAULT 0,
|
|
80
|
+
conflict_copy_hash TEXT,
|
|
81
|
+
conflict_copy_path TEXT,
|
|
82
|
+
conflict_at INTEGER,
|
|
83
|
+
remote_taxonomy_hash TEXT,
|
|
84
|
+
taxonomy_apply_pending INTEGER NOT NULL DEFAULT 0
|
|
75
85
|
);
|
|
76
86
|
CREATE INDEX IF NOT EXISTS idx_sync_state_file_path ON sync_state (local_file_path);
|
|
77
87
|
`);
|
|
@@ -101,6 +111,90 @@ export class CacheDatabase {
|
|
|
101
111
|
CREATE INDEX IF NOT EXISTS idx_media_state_media_id ON media_state (media_id);
|
|
102
112
|
CREATE INDEX IF NOT EXISTS idx_media_state_status ON media_state (status);
|
|
103
113
|
`);
|
|
114
|
+
// Run schema migrations for existing databases
|
|
115
|
+
this.runMigrations();
|
|
116
|
+
// Create indexes that depend on migrated columns
|
|
117
|
+
this.db.exec(`
|
|
118
|
+
CREATE INDEX IF NOT EXISTS idx_sync_state_conflict ON sync_state (conflict_pending);
|
|
119
|
+
`);
|
|
120
|
+
}
|
|
121
|
+
runMigrations() {
|
|
122
|
+
const versionRow = this.db.prepare('PRAGMA user_version;').get();
|
|
123
|
+
const currentVersion = Number(versionRow?.user_version || 0);
|
|
124
|
+
// Guard against opening a database created by a newer version of emdash-emit
|
|
125
|
+
if (currentVersion > CURRENT_CACHE_SCHEMA_VERSION) {
|
|
126
|
+
throw new Error(`[CACHE_SCHEMA_MISMATCH] Cache database at ${this.dbPath} was created with schema version ${currentVersion}, but current emit supports up to ${CURRENT_CACHE_SCHEMA_VERSION}. Please upgrade emdash-emit.`);
|
|
127
|
+
}
|
|
128
|
+
if (currentVersion < CURRENT_CACHE_SCHEMA_VERSION) {
|
|
129
|
+
// 1. Flush WAL completely to main database file before backing up
|
|
130
|
+
try {
|
|
131
|
+
this.db.exec('PRAGMA wal_checkpoint(TRUNCATE);');
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// Ignore checkpoint failure in in-memory or constrained environments
|
|
135
|
+
}
|
|
136
|
+
// 2. Backup database before running migration if physical file exists (keep up to 3 recent backups)
|
|
137
|
+
if (this.dbPath !== ':memory:' && fs.existsSync(this.dbPath)) {
|
|
138
|
+
try {
|
|
139
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
140
|
+
const bakPath = `${this.dbPath}.bak-0.1.12-${timestamp}`;
|
|
141
|
+
fs.copyFileSync(this.dbPath, bakPath);
|
|
142
|
+
// Prune backups: retain only 3 newest .bak-* files
|
|
143
|
+
const dbDir = path.dirname(this.dbPath);
|
|
144
|
+
const dbBase = path.basename(this.dbPath);
|
|
145
|
+
const backupFiles = fs
|
|
146
|
+
.readdirSync(dbDir)
|
|
147
|
+
.filter((f) => f.startsWith(`${dbBase}.bak-`))
|
|
148
|
+
.map((f) => path.join(dbDir, f))
|
|
149
|
+
.sort((a, b) => fs.statSync(b).mtimeMs - fs.statSync(a).mtimeMs);
|
|
150
|
+
if (backupFiles.length > 3) {
|
|
151
|
+
for (const oldBak of backupFiles.slice(3)) {
|
|
152
|
+
try {
|
|
153
|
+
fs.unlinkSync(oldBak);
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
// Ignore unlink errors
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
// Ignore backup copy failure in constrained test environments
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// Migration 1: add conflict_pending, delete_pending, conflict_copy_hash, conflict_copy_path, conflict_at to sync_state if missing
|
|
166
|
+
const columns = this.db.prepare("PRAGMA table_info('sync_state');").all();
|
|
167
|
+
const columnNames = new Set(columns.map((c) => String(c.name)));
|
|
168
|
+
if (!columnNames.has('conflict_pending')) {
|
|
169
|
+
this.db.exec('ALTER TABLE sync_state ADD COLUMN conflict_pending INTEGER NOT NULL DEFAULT 0;');
|
|
170
|
+
}
|
|
171
|
+
if (!columnNames.has('delete_pending')) {
|
|
172
|
+
this.db.exec('ALTER TABLE sync_state ADD COLUMN delete_pending INTEGER NOT NULL DEFAULT 0;');
|
|
173
|
+
}
|
|
174
|
+
if (!columnNames.has('conflict_copy_hash')) {
|
|
175
|
+
this.db.exec('ALTER TABLE sync_state ADD COLUMN conflict_copy_hash TEXT;');
|
|
176
|
+
}
|
|
177
|
+
if (!columnNames.has('conflict_copy_path')) {
|
|
178
|
+
this.db.exec('ALTER TABLE sync_state ADD COLUMN conflict_copy_path TEXT;');
|
|
179
|
+
}
|
|
180
|
+
if (!columnNames.has('conflict_at')) {
|
|
181
|
+
this.db.exec('ALTER TABLE sync_state ADD COLUMN conflict_at INTEGER;');
|
|
182
|
+
}
|
|
183
|
+
if (!columnNames.has('remote_taxonomy_hash')) {
|
|
184
|
+
this.db.exec('ALTER TABLE sync_state ADD COLUMN remote_taxonomy_hash TEXT;');
|
|
185
|
+
}
|
|
186
|
+
if (!columnNames.has('taxonomy_apply_pending')) {
|
|
187
|
+
this.db.exec('ALTER TABLE sync_state ADD COLUMN taxonomy_apply_pending INTEGER NOT NULL DEFAULT 0;');
|
|
188
|
+
}
|
|
189
|
+
this.db.exec('CREATE INDEX IF NOT EXISTS idx_sync_state_conflict ON sync_state (conflict_pending);');
|
|
190
|
+
this.db.exec('CREATE INDEX IF NOT EXISTS idx_sync_state_delete ON sync_state (delete_pending);');
|
|
191
|
+
this.db.exec('CREATE INDEX IF NOT EXISTS idx_sync_state_tax_apply ON sync_state (taxonomy_apply_pending);');
|
|
192
|
+
this.db.exec(`PRAGMA user_version = ${CURRENT_CACHE_SCHEMA_VERSION};`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
getSchemaVersion() {
|
|
196
|
+
const row = this.db.prepare('PRAGMA user_version;').get();
|
|
197
|
+
return Number(row?.user_version || 0);
|
|
104
198
|
}
|
|
105
199
|
// --- entries operations ---
|
|
106
200
|
saveEntry(entry) {
|
|
@@ -207,64 +301,87 @@ export class CacheDatabase {
|
|
|
207
301
|
stmt.run(id);
|
|
208
302
|
}
|
|
209
303
|
// --- sync_state operations ---
|
|
304
|
+
rowToSyncState(row) {
|
|
305
|
+
return {
|
|
306
|
+
id: String(row.id),
|
|
307
|
+
localFilePath: String(row.local_file_path),
|
|
308
|
+
localHash: String(row.local_hash),
|
|
309
|
+
remoteRev: String(row.remote_rev),
|
|
310
|
+
status: String(row.status),
|
|
311
|
+
slug: String(row.slug),
|
|
312
|
+
lastSyncedAt: Number(row.last_synced_at),
|
|
313
|
+
conflictPending: Number(row.conflict_pending || 0),
|
|
314
|
+
deletePending: Number(row.delete_pending || 0),
|
|
315
|
+
conflictCopyHash: row.conflict_copy_hash ? String(row.conflict_copy_hash) : null,
|
|
316
|
+
conflictCopyPath: row.conflict_copy_path ? String(row.conflict_copy_path) : null,
|
|
317
|
+
conflictAt: row.conflict_at ? Number(row.conflict_at) : null,
|
|
318
|
+
remoteTaxonomyHash: row.remote_taxonomy_hash ? String(row.remote_taxonomy_hash) : null,
|
|
319
|
+
taxonomyApplyPending: Number(row.taxonomy_apply_pending || 0),
|
|
320
|
+
};
|
|
321
|
+
}
|
|
210
322
|
saveSyncState(state) {
|
|
211
323
|
const stmt = this.db.prepare(`
|
|
212
|
-
INSERT INTO sync_state (
|
|
213
|
-
|
|
324
|
+
INSERT INTO sync_state (
|
|
325
|
+
id, local_file_path, local_hash, remote_rev, status, slug, last_synced_at,
|
|
326
|
+
conflict_pending, delete_pending, conflict_copy_hash, conflict_copy_path, conflict_at,
|
|
327
|
+
remote_taxonomy_hash, taxonomy_apply_pending
|
|
328
|
+
)
|
|
329
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
214
330
|
ON CONFLICT(id) DO UPDATE SET
|
|
215
331
|
local_file_path = excluded.local_file_path,
|
|
216
332
|
local_hash = excluded.local_hash,
|
|
217
333
|
remote_rev = excluded.remote_rev,
|
|
218
334
|
status = excluded.status,
|
|
219
335
|
slug = excluded.slug,
|
|
220
|
-
last_synced_at = excluded.last_synced_at
|
|
336
|
+
last_synced_at = excluded.last_synced_at,
|
|
337
|
+
conflict_pending = excluded.conflict_pending,
|
|
338
|
+
delete_pending = excluded.delete_pending,
|
|
339
|
+
conflict_copy_hash = CASE WHEN excluded.conflict_copy_hash IS NOT NULL THEN excluded.conflict_copy_hash ELSE sync_state.conflict_copy_hash END,
|
|
340
|
+
conflict_copy_path = CASE WHEN excluded.conflict_copy_path IS NOT NULL THEN excluded.conflict_copy_path ELSE sync_state.conflict_copy_path END,
|
|
341
|
+
conflict_at = CASE WHEN excluded.conflict_at IS NOT NULL THEN excluded.conflict_at ELSE sync_state.conflict_at END,
|
|
342
|
+
remote_taxonomy_hash = CASE WHEN excluded.remote_taxonomy_hash IS NOT NULL THEN excluded.remote_taxonomy_hash ELSE sync_state.remote_taxonomy_hash END,
|
|
343
|
+
taxonomy_apply_pending = excluded.taxonomy_apply_pending
|
|
221
344
|
`);
|
|
222
|
-
stmt.run(state.id, state.localFilePath, state.localHash, state.remoteRev, state.status, state.slug, state.lastSyncedAt);
|
|
345
|
+
stmt.run(state.id, state.localFilePath, state.localHash, state.remoteRev, state.status, state.slug, state.lastSyncedAt, state.conflictPending ?? 0, state.deletePending ?? 0, state.conflictCopyHash ?? null, state.conflictCopyPath ?? null, state.conflictAt ?? null, state.remoteTaxonomyHash ?? null, state.taxonomyApplyPending ?? 0);
|
|
346
|
+
}
|
|
347
|
+
setConflictPending(id, pending, copyHash, copyPath) {
|
|
348
|
+
if (pending) {
|
|
349
|
+
const stmt = this.db.prepare('UPDATE sync_state SET conflict_pending = 1, conflict_copy_hash = ?, conflict_copy_path = ?, conflict_at = ? WHERE id = ?');
|
|
350
|
+
stmt.run(copyHash ?? null, copyPath ?? null, Math.floor(Date.now() / 1000), id);
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
const stmt = this.db.prepare('UPDATE sync_state SET conflict_pending = 0, conflict_copy_hash = NULL, conflict_copy_path = NULL, conflict_at = NULL WHERE id = ?');
|
|
354
|
+
stmt.run(id);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
setDeletePending(id, pending) {
|
|
358
|
+
const stmt = this.db.prepare('UPDATE sync_state SET delete_pending = ? WHERE id = ?');
|
|
359
|
+
stmt.run(pending ? 1 : 0, id);
|
|
360
|
+
}
|
|
361
|
+
setTaxonomyApplyPending(id, pending) {
|
|
362
|
+
const stmt = this.db.prepare('UPDATE sync_state SET taxonomy_apply_pending = ? WHERE id = ?');
|
|
363
|
+
stmt.run(pending ? 1 : 0, id);
|
|
223
364
|
}
|
|
224
365
|
getSyncState(id) {
|
|
225
366
|
const stmt = this.db.prepare('SELECT * FROM sync_state WHERE id = ?');
|
|
226
367
|
const row = stmt.get(id);
|
|
227
368
|
if (!row)
|
|
228
369
|
return null;
|
|
229
|
-
return
|
|
230
|
-
id: String(row.id),
|
|
231
|
-
localFilePath: String(row.local_file_path),
|
|
232
|
-
localHash: String(row.local_hash),
|
|
233
|
-
remoteRev: String(row.remote_rev),
|
|
234
|
-
status: String(row.status),
|
|
235
|
-
slug: String(row.slug),
|
|
236
|
-
lastSyncedAt: Number(row.last_synced_at),
|
|
237
|
-
};
|
|
370
|
+
return this.rowToSyncState(row);
|
|
238
371
|
}
|
|
239
372
|
getSyncStateByPath(filePath) {
|
|
240
373
|
const stmt = this.db.prepare('SELECT * FROM sync_state WHERE local_file_path = ?');
|
|
241
374
|
const row = stmt.get(filePath);
|
|
242
375
|
if (!row)
|
|
243
376
|
return null;
|
|
244
|
-
return
|
|
245
|
-
id: String(row.id),
|
|
246
|
-
localFilePath: String(row.local_file_path),
|
|
247
|
-
localHash: String(row.local_hash),
|
|
248
|
-
remoteRev: String(row.remote_rev),
|
|
249
|
-
status: String(row.status),
|
|
250
|
-
slug: String(row.slug),
|
|
251
|
-
lastSyncedAt: Number(row.last_synced_at),
|
|
252
|
-
};
|
|
377
|
+
return this.rowToSyncState(row);
|
|
253
378
|
}
|
|
254
379
|
getSyncStateBySlug(slug) {
|
|
255
380
|
const stmt = this.db.prepare('SELECT * FROM sync_state WHERE slug = ? LIMIT 1');
|
|
256
381
|
const row = stmt.get(slug);
|
|
257
382
|
if (!row)
|
|
258
383
|
return null;
|
|
259
|
-
return
|
|
260
|
-
id: String(row.id),
|
|
261
|
-
localFilePath: String(row.local_file_path),
|
|
262
|
-
localHash: String(row.local_hash),
|
|
263
|
-
remoteRev: String(row.remote_rev),
|
|
264
|
-
status: String(row.status),
|
|
265
|
-
slug: String(row.slug),
|
|
266
|
-
lastSyncedAt: Number(row.last_synced_at),
|
|
267
|
-
};
|
|
384
|
+
return this.rowToSyncState(row);
|
|
268
385
|
}
|
|
269
386
|
deleteSyncState(id) {
|
|
270
387
|
const stmt = this.db.prepare('DELETE FROM sync_state WHERE id = ?');
|
|
@@ -273,15 +390,7 @@ export class CacheDatabase {
|
|
|
273
390
|
getAllSyncStates() {
|
|
274
391
|
const stmt = this.db.prepare('SELECT * FROM sync_state');
|
|
275
392
|
const rows = stmt.all();
|
|
276
|
-
return rows.map((
|
|
277
|
-
id: String(row.id),
|
|
278
|
-
localFilePath: String(row.local_file_path),
|
|
279
|
-
localHash: String(row.local_hash),
|
|
280
|
-
remoteRev: String(row.remote_rev),
|
|
281
|
-
status: String(row.status),
|
|
282
|
-
slug: String(row.slug),
|
|
283
|
-
lastSyncedAt: Number(row.last_synced_at),
|
|
284
|
-
}));
|
|
393
|
+
return rows.map((r) => this.rowToSyncState(r));
|
|
285
394
|
}
|
|
286
395
|
deleteEntry(id) {
|
|
287
396
|
this.db.prepare('DELETE FROM entries WHERE id = ?').run(id);
|
|
@@ -403,7 +512,12 @@ export class CacheDatabase {
|
|
|
403
512
|
};
|
|
404
513
|
}
|
|
405
514
|
close() {
|
|
406
|
-
|
|
515
|
+
try {
|
|
516
|
+
this.db.close();
|
|
517
|
+
}
|
|
518
|
+
catch {
|
|
519
|
+
// Ignore if already closed
|
|
520
|
+
}
|
|
407
521
|
}
|
|
408
522
|
}
|
|
409
523
|
//# sourceMappingURL=cache.js.map
|
package/dist/db/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/db/cache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/db/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface McpHeartbeatState {
|
|
2
|
+
pid: number;
|
|
3
|
+
version: string;
|
|
4
|
+
startedAt: string;
|
|
5
|
+
origin?: string;
|
|
6
|
+
profile?: string;
|
|
7
|
+
workspaceRoot?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface McpProcessCheckResult {
|
|
10
|
+
status: 'alive' | 'stale' | 'unknown' | 'none';
|
|
11
|
+
state?: McpHeartbeatState;
|
|
12
|
+
isOutdated?: boolean;
|
|
13
|
+
message?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function getMcpStateFilePath(): string;
|
|
16
|
+
export declare function getPackageVersion(): string;
|
|
17
|
+
/**
|
|
18
|
+
* Records heartbeat metadata to ~/.config/emit/mcp_state.json with restricted 0600 permissions.
|
|
19
|
+
*/
|
|
20
|
+
export declare function recordMcpHeartbeat(metadata?: string | {
|
|
21
|
+
origin?: string;
|
|
22
|
+
profile?: string;
|
|
23
|
+
workspaceRoot?: string;
|
|
24
|
+
}): void;
|
|
25
|
+
/**
|
|
26
|
+
* Checks the status of the recorded MCP process in ~/.config/emit/mcp_state.json.
|
|
27
|
+
* Handles process vitality via process.kill(pid, 0):
|
|
28
|
+
* - ESRCH: Process has terminated -> cleanly remove stale state file.
|
|
29
|
+
* - EPERM: Process belongs to another user on shared host -> mark unknown.
|
|
30
|
+
* - Alive: Compares start time against package.json mtime to detect outdated processes.
|
|
31
|
+
*
|
|
32
|
+
* Note: mtime-based comparison can yield false negatives if package is downgraded.
|
|
33
|
+
*/
|
|
34
|
+
export declare function checkMcpProcess(customPackageJsonPath?: string): McpProcessCheckResult;
|
|
35
|
+
//# sourceMappingURL=heartbeat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/mcp/heartbeat.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/C,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAS1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,CAAC,EACL,MAAM,GACN;IACE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACJ,IAAI,CAiBN;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAkErF"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2026 SPORT-SERVICE RS★R
|
|
3
|
+
*
|
|
4
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
6
|
+
* in the Software without restriction, including without limitation the rights
|
|
7
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
9
|
+
* furnished to do so, subject to the following conditions:
|
|
10
|
+
*
|
|
11
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
12
|
+
* copies or substantial portions of the Software.
|
|
13
|
+
*
|
|
14
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
20
|
+
* SOFTWARE.
|
|
21
|
+
*/
|
|
22
|
+
import fs from 'node:fs';
|
|
23
|
+
import os from 'node:os';
|
|
24
|
+
import path from 'node:path';
|
|
25
|
+
import { fileURLToPath } from 'node:url';
|
|
26
|
+
export function getMcpStateFilePath() {
|
|
27
|
+
const home = process.env.HOME || process.env.USERPROFILE || os.homedir();
|
|
28
|
+
return path.join(home, '.config', 'emit', 'mcp_state.json');
|
|
29
|
+
}
|
|
30
|
+
export function getPackageVersion() {
|
|
31
|
+
try {
|
|
32
|
+
const pkgPath = fileURLToPath(new URL('../../package.json', import.meta.url));
|
|
33
|
+
const content = fs.readFileSync(pkgPath, 'utf8');
|
|
34
|
+
const parsed = JSON.parse(content);
|
|
35
|
+
return parsed.version || 'unknown';
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return 'unknown';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Records heartbeat metadata to ~/.config/emit/mcp_state.json with restricted 0600 permissions.
|
|
43
|
+
*/
|
|
44
|
+
export function recordMcpHeartbeat(metadata) {
|
|
45
|
+
try {
|
|
46
|
+
const filePath = getMcpStateFilePath();
|
|
47
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true, mode: 0o700 });
|
|
48
|
+
const metaObj = typeof metadata === 'string' ? { origin: metadata } : metadata || {};
|
|
49
|
+
const payload = {
|
|
50
|
+
pid: process.pid,
|
|
51
|
+
version: getPackageVersion(),
|
|
52
|
+
startedAt: new Date().toISOString(),
|
|
53
|
+
...(metaObj.origin ? { origin: metaObj.origin } : {}),
|
|
54
|
+
...(metaObj.profile ? { profile: metaObj.profile } : {}),
|
|
55
|
+
...(metaObj.workspaceRoot ? { workspaceRoot: metaObj.workspaceRoot } : {}),
|
|
56
|
+
};
|
|
57
|
+
fs.writeFileSync(filePath, JSON.stringify(payload, null, 2), { mode: 0o600 });
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// Non-fatal if filesystem is restricted or read-only
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Checks the status of the recorded MCP process in ~/.config/emit/mcp_state.json.
|
|
65
|
+
* Handles process vitality via process.kill(pid, 0):
|
|
66
|
+
* - ESRCH: Process has terminated -> cleanly remove stale state file.
|
|
67
|
+
* - EPERM: Process belongs to another user on shared host -> mark unknown.
|
|
68
|
+
* - Alive: Compares start time against package.json mtime to detect outdated processes.
|
|
69
|
+
*
|
|
70
|
+
* Note: mtime-based comparison can yield false negatives if package is downgraded.
|
|
71
|
+
*/
|
|
72
|
+
export function checkMcpProcess(customPackageJsonPath) {
|
|
73
|
+
const filePath = getMcpStateFilePath();
|
|
74
|
+
if (!fs.existsSync(filePath)) {
|
|
75
|
+
return { status: 'none' };
|
|
76
|
+
}
|
|
77
|
+
let state;
|
|
78
|
+
try {
|
|
79
|
+
const content = fs.readFileSync(filePath, 'utf8');
|
|
80
|
+
state = JSON.parse(content);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return { status: 'none' };
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
// Probe process vitality
|
|
87
|
+
process.kill(state.pid, 0);
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
const code = err.code;
|
|
91
|
+
if (code === 'ESRCH') {
|
|
92
|
+
// Process is dead: clean up stale heartbeat file
|
|
93
|
+
try {
|
|
94
|
+
fs.unlinkSync(filePath);
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
// Ignore unlink error
|
|
98
|
+
}
|
|
99
|
+
return { status: 'stale', state };
|
|
100
|
+
}
|
|
101
|
+
if (code === 'EPERM') {
|
|
102
|
+
// Process belongs to another user
|
|
103
|
+
return { status: 'unknown', state };
|
|
104
|
+
}
|
|
105
|
+
return { status: 'unknown', state };
|
|
106
|
+
}
|
|
107
|
+
// Process is alive: check if outdated
|
|
108
|
+
let isOutdated = false;
|
|
109
|
+
let message;
|
|
110
|
+
try {
|
|
111
|
+
const pkgPath = customPackageJsonPath || fileURLToPath(new URL('../../package.json', import.meta.url));
|
|
112
|
+
if (fs.existsSync(pkgPath)) {
|
|
113
|
+
const pkgStat = fs.statSync(pkgPath);
|
|
114
|
+
const pkgContent = fs.readFileSync(pkgPath, 'utf8');
|
|
115
|
+
const pkgJson = JSON.parse(pkgContent);
|
|
116
|
+
const currentPkgVersion = pkgJson.version || '';
|
|
117
|
+
const startedMs = new Date(state.startedAt).getTime();
|
|
118
|
+
const mtimeMs = pkgStat.mtimeMs;
|
|
119
|
+
if (state.version !== currentPkgVersion || startedMs < mtimeMs) {
|
|
120
|
+
isOutdated = true;
|
|
121
|
+
message = `An MCP server process (PID ${state.pid}, version ${state.version}) is currently running from a previous installation. Restart your IDE or MCP client to activate version ${currentPkgVersion}.`;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
// Ignore version check errors
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
status: 'alive',
|
|
130
|
+
state,
|
|
131
|
+
isOutdated,
|
|
132
|
+
message,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=heartbeat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../src/mcp/heartbeat.ts"],"names":[],"mappings":"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"}
|