gnosys 5.3.0 → 5.3.2
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 +5 -1
- package/dist/cli.js +12 -61
- package/dist/cli.js.map +1 -1
- package/dist/lib/portfolio.js +1 -1
- package/dist/lib/portfolio.js.map +1 -1
- package/dist/lib/remote.d.ts +1 -1
- package/dist/lib/remote.d.ts.map +1 -1
- package/dist/lib/remoteWizard.d.ts +14 -0
- package/dist/lib/remoteWizard.d.ts.map +1 -0
- package/dist/lib/remoteWizard.js +344 -0
- package/dist/lib/remoteWizard.js.map +1 -0
- package/package.json +10 -3
package/README.md
CHANGED
|
@@ -12,6 +12,10 @@
|
|
|
12
12
|
<a href="https://github.com/proticom/gnosys/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/gnosys.svg" alt="license"></a>
|
|
13
13
|
</p>
|
|
14
14
|
|
|
15
|
+
<p align="center">
|
|
16
|
+
A <a href="https://proticom.com">Proticom</a> product.
|
|
17
|
+
</p>
|
|
18
|
+
|
|
15
19
|
---
|
|
16
20
|
|
|
17
21
|
### Gnosys — One Brain. Zero Context Bloat.
|
|
@@ -355,7 +359,7 @@ Gnosys v5.3.0 supports running across multiple machines with a shared database o
|
|
|
355
359
|
|
|
356
360
|
**How it works:**
|
|
357
361
|
- Local DB at `~/.gnosys/gnosys.db` is your fast working cache
|
|
358
|
-
- Remote DB on
|
|
362
|
+
- Remote DB on a network share (e.g. `/Volumes/nas/gnosys/`) is the canonical source of truth
|
|
359
363
|
- Reads always hit local for speed
|
|
360
364
|
- Writes go to local first, then sync to remote
|
|
361
365
|
- Per-memory `modified` timestamps detect conflicts
|
package/dist/cli.js
CHANGED
|
@@ -2692,9 +2692,9 @@ remoteCmd
|
|
|
2692
2692
|
});
|
|
2693
2693
|
remoteCmd
|
|
2694
2694
|
.command("configure")
|
|
2695
|
-
.description("Configure or change the remote sync location (interactive)")
|
|
2696
|
-
.option("--path <path>", "Set remote path non-interactively")
|
|
2697
|
-
.option("--migrate", "Copy current local DB to remote on first setup")
|
|
2695
|
+
.description("Configure or change the remote sync location (interactive wizard)")
|
|
2696
|
+
.option("--path <path>", "Set remote path non-interactively (skips wizard)")
|
|
2697
|
+
.option("--migrate", "Copy current local DB to remote on first setup (with --path)")
|
|
2698
2698
|
.action(async (opts) => {
|
|
2699
2699
|
let centralDb = null;
|
|
2700
2700
|
try {
|
|
@@ -2703,65 +2703,16 @@ remoteCmd
|
|
|
2703
2703
|
console.error("Central DB not available.");
|
|
2704
2704
|
process.exit(1);
|
|
2705
2705
|
}
|
|
2706
|
-
const {
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
const
|
|
2710
|
-
|
|
2711
|
-
try {
|
|
2712
|
-
const current = centralDb.getMeta("remote_path");
|
|
2713
|
-
if (current)
|
|
2714
|
-
console.log(`Current remote: ${current}`);
|
|
2715
|
-
remotePath = (await rl.question("Remote path (e.g. /Volumes/synology/gnosys): ")).trim();
|
|
2716
|
-
}
|
|
2717
|
-
finally {
|
|
2718
|
-
rl.close();
|
|
2719
|
-
}
|
|
2720
|
-
}
|
|
2721
|
-
if (!remotePath) {
|
|
2722
|
-
console.error("No path provided.");
|
|
2723
|
-
process.exit(1);
|
|
2706
|
+
const { runConfigureWizard, configureFromPath } = await import("./lib/remoteWizard.js");
|
|
2707
|
+
if (opts.path) {
|
|
2708
|
+
// Non-interactive mode
|
|
2709
|
+
const ok = await configureFromPath(centralDb, opts.path, { migrate: opts.migrate });
|
|
2710
|
+
process.exit(ok ? 0 : 1);
|
|
2724
2711
|
}
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
console.log(` SQLite compatible: ${validation.checks.sqliteCompatible ? "✓" : "✗"}`);
|
|
2730
|
-
if (validation.checks.latencyMs !== null) {
|
|
2731
|
-
console.log(` Latency: ${validation.checks.latencyMs}ms`);
|
|
2732
|
-
}
|
|
2733
|
-
if (validation.checks.existingDb.found) {
|
|
2734
|
-
const c = validation.checks.existingDb;
|
|
2735
|
-
console.log(` Existing DB found: ${c.memoryCount ?? "unknown"} memories (last modified ${c.lastModified ?? "unknown"})`);
|
|
2736
|
-
}
|
|
2737
|
-
for (const w of validation.warnings)
|
|
2738
|
-
console.log(` ⚠ ${w}`);
|
|
2739
|
-
for (const e of validation.errors)
|
|
2740
|
-
console.log(` ✗ ${e}`);
|
|
2741
|
-
if (!validation.ok) {
|
|
2742
|
-
console.error("\nValidation failed. Remote not configured.");
|
|
2743
|
-
process.exit(1);
|
|
2744
|
-
}
|
|
2745
|
-
// Save config
|
|
2746
|
-
centralDb.setMeta("remote_path", remotePath);
|
|
2747
|
-
console.log(`\nRemote configured: ${remotePath}`);
|
|
2748
|
-
// Optional initial migration
|
|
2749
|
-
if (opts.migrate && !validation.checks.existingDb.found) {
|
|
2750
|
-
console.log("\nMigrating local DB to remote...");
|
|
2751
|
-
const sync = new RemoteSync(centralDb, remotePath);
|
|
2752
|
-
const result = await sync.migrate();
|
|
2753
|
-
sync.closeRemote();
|
|
2754
|
-
if (result.ok) {
|
|
2755
|
-
console.log(` ✓ Copied ${result.copied} memories to remote.`);
|
|
2756
|
-
}
|
|
2757
|
-
else {
|
|
2758
|
-
console.error(` ✗ Migration had errors:`);
|
|
2759
|
-
for (const e of result.errors)
|
|
2760
|
-
console.error(` ${e}`);
|
|
2761
|
-
}
|
|
2762
|
-
}
|
|
2763
|
-
else if (validation.checks.existingDb.found) {
|
|
2764
|
-
console.log("\nExisting DB found at remote. Run 'gnosys remote sync' to merge.");
|
|
2712
|
+
else {
|
|
2713
|
+
// Interactive wizard
|
|
2714
|
+
const ok = await runConfigureWizard(centralDb);
|
|
2715
|
+
process.exit(ok ? 0 : 1);
|
|
2765
2716
|
}
|
|
2766
2717
|
}
|
|
2767
2718
|
catch (err) {
|