gnosys 5.2.7 → 5.2.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.
@@ -1,39 +1,85 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Postinstall hook — prompts the user to run `gnosys setup` after installation.
4
- * Only runs in interactive terminals (TTY). Silently exits in CI/Docker/scripts.
3
+ * Postinstall hook — detects fresh install vs upgrade and always prints
4
+ * the next steps. If the terminal is interactive, offers to run
5
+ * gnosys upgrade (or setup) automatically.
5
6
  */
7
+ import { existsSync } from "fs";
8
+ import { join } from "path";
6
9
  import { createInterface } from "readline/promises";
7
10
  import { stdin, stdout } from "process";
8
11
  import { execSync } from "child_process";
9
12
  async function main() {
10
- // Skip in non-interactive environments (CI, Docker, piped installs)
11
- if (!stdout.isTTY || !stdin.isTTY) {
12
- process.exit(0);
13
- }
14
13
  // Skip if GNOSYS_SKIP_POSTINSTALL is set (for testing or automation)
15
14
  if (process.env.GNOSYS_SKIP_POSTINSTALL) {
16
15
  process.exit(0);
17
16
  }
18
- const rl = createInterface({ input: stdin, output: stdout });
17
+ // Detect if this is an upgrade (central DB exists) or fresh install
18
+ const home = process.env.HOME || process.env.USERPROFILE || "/tmp";
19
+ const centralDbPath = join(home, ".gnosys", "gnosys.db");
20
+ const isUpgrade = existsSync(centralDbPath);
21
+ // Read package version
22
+ let version = "unknown";
19
23
  try {
20
- const answer = await rl.question("\n Gnosys installed. Run setup wizard? [Y/n] ");
21
- rl.close();
22
- const shouldSetup = !answer || answer.trim().toLowerCase() !== "n";
23
- if (shouldSetup) {
24
- console.log("");
25
- // Spawn gnosys setup with inherited stdio so the wizard is fully interactive
26
- execSync("gnosys setup", { stdio: "inherit" });
27
- }
28
- else {
29
- console.log(" Run 'gnosys setup' anytime to configure.\n");
30
- }
24
+ const pkgPath = join(__dirname, "..", "package.json");
25
+ const pkg = JSON.parse(require("fs").readFileSync(pkgPath, "utf-8"));
26
+ version = pkg.version;
31
27
  }
32
28
  catch {
33
- // Ctrl+C or readline error — exit silently
34
- rl.close();
29
+ // non-critical
30
+ }
31
+ const isInteractive = stdout.isTTY && stdin.isTTY;
32
+ if (isUpgrade) {
33
+ // ── Upgrade flow ──
35
34
  console.log("");
36
- process.exit(0);
35
+ const title = `Gnosys v${version} installed`;
36
+ console.log(`\n ${title}\n`);
37
+ console.log(" Next steps:");
38
+ console.log(" 1. gnosys upgrade sync all projects + regenerate dashboard");
39
+ console.log(" 2. Restart IDE MCP server Cursor: Cmd+Shift+P > MCP: Restart All Servers");
40
+ console.log(" 3. gnosys status --web open the portfolio dashboard");
41
+ console.log("");
42
+ // If interactive, offer to run upgrade automatically
43
+ if (isInteractive) {
44
+ const rl = createInterface({ input: stdin, output: stdout });
45
+ try {
46
+ const answer = await rl.question(" Run gnosys upgrade now? [Y/n] ");
47
+ rl.close();
48
+ if (!answer || answer.trim().toLowerCase() !== "n") {
49
+ console.log("");
50
+ execSync("gnosys upgrade", { stdio: "inherit" });
51
+ }
52
+ }
53
+ catch {
54
+ rl.close();
55
+ }
56
+ }
57
+ }
58
+ else {
59
+ // ── Fresh install flow ──
60
+ console.log("");
61
+ const title = `Gnosys v${version} installed`;
62
+ console.log(`\n ${title}\n`);
63
+ console.log(" Get started:");
64
+ console.log(" 1. gnosys setup configure LLM providers and preferences");
65
+ console.log(" 2. gnosys init initialize gnosys in a project directory");
66
+ console.log(" 3. gnosys status check project status");
67
+ console.log("");
68
+ // If interactive, offer to run setup automatically
69
+ if (isInteractive) {
70
+ const rl = createInterface({ input: stdin, output: stdout });
71
+ try {
72
+ const answer = await rl.question(" Run setup wizard? [Y/n] ");
73
+ rl.close();
74
+ if (!answer || answer.trim().toLowerCase() !== "n") {
75
+ console.log("");
76
+ execSync("gnosys setup", { stdio: "inherit" });
77
+ }
78
+ }
79
+ catch {
80
+ rl.close();
81
+ }
82
+ }
37
83
  }
38
84
  }
39
85
  main();
@@ -1 +1 @@
1
- {"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,KAAK,UAAU,IAAI;IACjB,oEAAoE;IACpE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qEAAqE;IACrE,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAE7D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC9B,gDAAgD,CACjD,CAAC;QAEF,EAAE,CAAC,KAAK,EAAE,CAAC;QAEX,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;QAEnE,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,6EAA6E;YAC7E,QAAQ,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;QAC3C,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gnosys",
3
- "version": "5.2.7",
3
+ "version": "5.2.10",
4
4
  "description": "Gnosys — Persistent Memory for AI Agents. Sandbox-first runtime, central SQLite brain, federated search, Dream Mode, Web Knowledge Base, Obsidian export.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",