codemem 0.22.0-alpha.0 → 0.22.0-alpha.3
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/commands/serve.d.ts.map +1 -1
- package/dist/index.js +23 -14
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAEN,KAAK,uBAAuB,EAG5B,MAAM,uBAAuB,CAAC;AAQ/B,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAKhE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CASjD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ9D;AAED,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,WAAW,EAAE,MAAM,GAAG,IAAI,GACxB,MAAM,GAAG,IAAI,CAGf;AAqLD,wBAAgB,yBAAyB,CACxC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,uBAAuB,EACnC,QAAQ,GAAE,MAAM,EAAqB,GACnC,MAAM,EAAE,CAgBV;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAS9D;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAUpF;
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAEN,KAAK,uBAAuB,EAG5B,MAAM,uBAAuB,CAAC;AAQ/B,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAKhE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CASjD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ9D;AAED,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,WAAW,EAAE,MAAM,GAAG,IAAI,GACxB,MAAM,GAAG,IAAI,CAGf;AAqLD,wBAAgB,yBAAyB,CACxC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,uBAAuB,EACnC,QAAQ,GAAE,MAAM,EAAqB,GACnC,MAAM,EAAE,CAgBV;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAS9D;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAUpF;AA2SD,eAAO,MAAM,YAAY,SAuBtB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { DEFAULT_COORDINATOR_DB_PATH, MemoryStore, ObserverClient, RawEventSweeper, SyncRetentionRunner, VERSION, backfillTagsText, backfillVectors, buildRawEventEnvelopeFromHook, connect, coordinatorCreateGroupAction, coordinatorCreateInviteAction, coordinatorDisableDeviceAction, coordinatorEnrollDeviceAction, coordinatorImportInviteAction, coordinatorListDevicesAction, coordinatorListGroupsAction, coordinatorListJoinRequestsAction, coordinatorRemoveDeviceAction, coordinatorRenameDeviceAction, coordinatorReviewJoinRequestAction,
|
|
2
|
+
import { DEFAULT_COORDINATOR_DB_PATH, MemoryStore, ObserverClient, RawEventSweeper, SyncRetentionRunner, VERSION, backfillTagsText, backfillVectors, buildRawEventEnvelopeFromHook, connect, coordinatorCreateGroupAction, coordinatorCreateInviteAction, coordinatorDisableDeviceAction, coordinatorEnrollDeviceAction, coordinatorImportInviteAction, coordinatorListDevicesAction, coordinatorListGroupsAction, coordinatorListJoinRequestsAction, coordinatorRemoveDeviceAction, coordinatorRenameDeviceAction, coordinatorReviewJoinRequestAction, createBetterSqliteCoordinatorApp, deactivateLowSignalMemories, deactivateLowSignalObservations, ensureDeviceIdentity, exportMemories, fingerprintPublicKey, getRawEventStatus, importMemories, initDatabase, isEmbeddingDisabled, loadPublicKey, loadSqliteVec, planReplicationOpsAgePrune, pruneReplicationOpsUntilCaughtUp, rawEventsGate, readCodememConfigFile, readCoordinatorSyncConfig, readImportPayload, resolveDbPath, resolveProject, retryRawEventFailures, runSyncDaemon, runSyncPass, schema, setPeerProjectFilter, stripJsonComments, stripPrivateObj, stripTrailingCommas, syncPassPreflight, updatePeerAddresses, vacuumDatabase, writeCodememConfigFile } from "@codemem/core";
|
|
3
3
|
import { Command } from "commander";
|
|
4
4
|
import omelette from "omelette";
|
|
5
5
|
import { existsSync, mkdirSync, readFileSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
@@ -1308,8 +1308,17 @@ async function startForegroundViewer(invocation) {
|
|
|
1308
1308
|
else p.log.error(err.message);
|
|
1309
1309
|
process.exit(1);
|
|
1310
1310
|
});
|
|
1311
|
+
const walCheckpointTimer = setInterval(() => {
|
|
1312
|
+
try {
|
|
1313
|
+
store.db.pragma("wal_checkpoint(TRUNCATE)");
|
|
1314
|
+
} catch (err) {
|
|
1315
|
+
p.log.warn(`WAL checkpoint failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
1316
|
+
}
|
|
1317
|
+
}, 300 * 1e3);
|
|
1318
|
+
walCheckpointTimer.unref();
|
|
1311
1319
|
const shutdown = async () => {
|
|
1312
1320
|
p.outro("shutting down");
|
|
1321
|
+
clearInterval(walCheckpointTimer);
|
|
1313
1322
|
syncAbort.abort();
|
|
1314
1323
|
retentionAbort.abort();
|
|
1315
1324
|
await sweeper.stop();
|
|
@@ -2235,7 +2244,7 @@ syncCommand.addCommand(new Command("connect").configureHelp(helpStyle).descripti
|
|
|
2235
2244
|
}));
|
|
2236
2245
|
var coordinatorCommand = new Command("coordinator").configureHelp(helpStyle).description("Manage coordinator invites, join requests, and relay server");
|
|
2237
2246
|
coordinatorCommand.addCommand(new Command("group-create").configureHelp(helpStyle).description("Create a coordinator group in the local store").argument("<group>", "group id").option("--name <name>", "display name override").option("--db <path>", "coordinator database path").option("--db-path <path>", "coordinator database path").option("--json", "output as JSON").action(async (groupId, opts) => {
|
|
2238
|
-
const group = coordinatorCreateGroupAction({
|
|
2247
|
+
const group = await coordinatorCreateGroupAction({
|
|
2239
2248
|
groupId,
|
|
2240
2249
|
displayName: opts.name?.trim() || null,
|
|
2241
2250
|
dbPath: opts.db ?? opts.dbPath ?? null
|
|
@@ -2248,8 +2257,8 @@ coordinatorCommand.addCommand(new Command("group-create").configureHelp(helpStyl
|
|
|
2248
2257
|
p.log.success(`Group ready: ${groupId.trim()}`);
|
|
2249
2258
|
p.outro(String(group.display_name ?? group.group_id ?? groupId.trim()));
|
|
2250
2259
|
}));
|
|
2251
|
-
coordinatorCommand.addCommand(new Command("list-groups").configureHelp(helpStyle).description("List coordinator groups from the local store").option("--db <path>", "coordinator database path").option("--db-path <path>", "coordinator database path").option("--json", "output as JSON").action((opts) => {
|
|
2252
|
-
const groups = coordinatorListGroupsAction({ dbPath: opts.db ?? opts.dbPath ?? null });
|
|
2260
|
+
coordinatorCommand.addCommand(new Command("list-groups").configureHelp(helpStyle).description("List coordinator groups from the local store").option("--db <path>", "coordinator database path").option("--db-path <path>", "coordinator database path").option("--json", "output as JSON").action(async (opts) => {
|
|
2261
|
+
const groups = await coordinatorListGroupsAction({ dbPath: opts.db ?? opts.dbPath ?? null });
|
|
2253
2262
|
if (opts.json) {
|
|
2254
2263
|
console.log(JSON.stringify(groups, null, 2));
|
|
2255
2264
|
return;
|
|
@@ -2275,7 +2284,7 @@ coordinatorCommand.addCommand(new Command("enroll-device").configureHelp(helpSty
|
|
|
2275
2284
|
process.exitCode = 1;
|
|
2276
2285
|
return;
|
|
2277
2286
|
}
|
|
2278
|
-
const enrollment = coordinatorEnrollDeviceAction({
|
|
2287
|
+
const enrollment = await coordinatorEnrollDeviceAction({
|
|
2279
2288
|
groupId,
|
|
2280
2289
|
deviceId,
|
|
2281
2290
|
fingerprint,
|
|
@@ -2291,8 +2300,8 @@ coordinatorCommand.addCommand(new Command("enroll-device").configureHelp(helpSty
|
|
|
2291
2300
|
p.log.success(`Enrolled ${deviceId.trim()} in ${groupId.trim()}`);
|
|
2292
2301
|
p.outro(String(enrollment.display_name ?? enrollment.device_id ?? deviceId.trim()));
|
|
2293
2302
|
}));
|
|
2294
|
-
coordinatorCommand.addCommand(new Command("list-devices").configureHelp(helpStyle).description("List enrolled devices in a local coordinator group").argument("<group>", "group id").option("--include-disabled", "include disabled devices").option("--db <path>", "coordinator database path").option("--db-path <path>", "coordinator database path").option("--json", "output as JSON").action((groupId, opts) => {
|
|
2295
|
-
const rows = coordinatorListDevicesAction({
|
|
2303
|
+
coordinatorCommand.addCommand(new Command("list-devices").configureHelp(helpStyle).description("List enrolled devices in a local coordinator group").argument("<group>", "group id").option("--include-disabled", "include disabled devices").option("--db <path>", "coordinator database path").option("--db-path <path>", "coordinator database path").option("--json", "output as JSON").action(async (groupId, opts) => {
|
|
2304
|
+
const rows = await coordinatorListDevicesAction({
|
|
2296
2305
|
groupId,
|
|
2297
2306
|
includeDisabled: opts.includeDisabled === true,
|
|
2298
2307
|
dbPath: opts.db ?? opts.dbPath ?? null
|
|
@@ -2313,8 +2322,8 @@ coordinatorCommand.addCommand(new Command("list-devices").configureHelp(helpStyl
|
|
|
2313
2322
|
}
|
|
2314
2323
|
p.outro(`${rows.length} device(s)`);
|
|
2315
2324
|
}));
|
|
2316
|
-
coordinatorCommand.addCommand(new Command("rename-device").configureHelp(helpStyle).description("Rename an enrolled device in the local coordinator store").argument("<group>", "group id").argument("<device-id>", "device id").requiredOption("--name <name>", "display name").option("--db <path>", "coordinator database path").option("--db-path <path>", "coordinator database path").option("--json", "output as JSON").action((groupId, deviceId, opts) => {
|
|
2317
|
-
const result = coordinatorRenameDeviceAction({
|
|
2325
|
+
coordinatorCommand.addCommand(new Command("rename-device").configureHelp(helpStyle).description("Rename an enrolled device in the local coordinator store").argument("<group>", "group id").argument("<device-id>", "device id").requiredOption("--name <name>", "display name").option("--db <path>", "coordinator database path").option("--db-path <path>", "coordinator database path").option("--json", "output as JSON").action(async (groupId, deviceId, opts) => {
|
|
2326
|
+
const result = await coordinatorRenameDeviceAction({
|
|
2318
2327
|
groupId,
|
|
2319
2328
|
deviceId,
|
|
2320
2329
|
displayName: opts.name.trim(),
|
|
@@ -2333,8 +2342,8 @@ coordinatorCommand.addCommand(new Command("rename-device").configureHelp(helpSty
|
|
|
2333
2342
|
p.log.success(`Renamed ${deviceId.trim()} in ${groupId.trim()}`);
|
|
2334
2343
|
p.outro(String(result.display_name ?? result.device_id ?? deviceId.trim()));
|
|
2335
2344
|
}));
|
|
2336
|
-
coordinatorCommand.addCommand(new Command("disable-device").configureHelp(helpStyle).description("Disable an enrolled device in the local coordinator store").argument("<group>", "group id").argument("<device-id>", "device id").option("--db <path>", "coordinator database path").option("--db-path <path>", "coordinator database path").option("--json", "output as JSON").action((groupId, deviceId, opts) => {
|
|
2337
|
-
if (!coordinatorDisableDeviceAction({
|
|
2345
|
+
coordinatorCommand.addCommand(new Command("disable-device").configureHelp(helpStyle).description("Disable an enrolled device in the local coordinator store").argument("<group>", "group id").argument("<device-id>", "device id").option("--db <path>", "coordinator database path").option("--db-path <path>", "coordinator database path").option("--json", "output as JSON").action(async (groupId, deviceId, opts) => {
|
|
2346
|
+
if (!await coordinatorDisableDeviceAction({
|
|
2338
2347
|
groupId,
|
|
2339
2348
|
deviceId,
|
|
2340
2349
|
dbPath: opts.db ?? opts.dbPath ?? null
|
|
@@ -2355,8 +2364,8 @@ coordinatorCommand.addCommand(new Command("disable-device").configureHelp(helpSt
|
|
|
2355
2364
|
p.log.success(`Disabled ${deviceId.trim()} in ${groupId.trim()}`);
|
|
2356
2365
|
p.outro("disabled");
|
|
2357
2366
|
}));
|
|
2358
|
-
coordinatorCommand.addCommand(new Command("remove-device").configureHelp(helpStyle).description("Remove an enrolled device from the local coordinator store").argument("<group>", "group id").argument("<device-id>", "device id").option("--db <path>", "coordinator database path").option("--db-path <path>", "coordinator database path").option("--json", "output as JSON").action((groupId, deviceId, opts) => {
|
|
2359
|
-
if (!coordinatorRemoveDeviceAction({
|
|
2367
|
+
coordinatorCommand.addCommand(new Command("remove-device").configureHelp(helpStyle).description("Remove an enrolled device from the local coordinator store").argument("<group>", "group id").argument("<device-id>", "device id").option("--db <path>", "coordinator database path").option("--db-path <path>", "coordinator database path").option("--json", "output as JSON").action(async (groupId, deviceId, opts) => {
|
|
2368
|
+
if (!await coordinatorRemoveDeviceAction({
|
|
2360
2369
|
groupId,
|
|
2361
2370
|
deviceId,
|
|
2362
2371
|
dbPath: opts.db ?? opts.dbPath ?? null
|
|
@@ -2381,7 +2390,7 @@ coordinatorCommand.addCommand(new Command("serve").configureHelp(helpStyle).desc
|
|
|
2381
2390
|
const host = String(opts.host ?? "127.0.0.1").trim() || "127.0.0.1";
|
|
2382
2391
|
const port = Number.parseInt(String(opts.port ?? "7347"), 10);
|
|
2383
2392
|
const dbPath = opts.db ?? opts.dbPath ?? DEFAULT_COORDINATOR_DB_PATH;
|
|
2384
|
-
const app =
|
|
2393
|
+
const app = createBetterSqliteCoordinatorApp({ dbPath });
|
|
2385
2394
|
p.intro("codemem sync coordinator serve");
|
|
2386
2395
|
p.log.success(`Coordinator listening at http://${host}:${port}`);
|
|
2387
2396
|
p.log.info(`DB: ${dbPath}`);
|