@possumtech/rummy 0.2.5 → 0.2.7
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/.env.example +1 -1
- package/README.md +1 -1
- package/bin/postinstall.js +22 -0
- package/bin/rummy.js +11 -21
- package/package.json +2 -1
- package/service.js +1 -1
package/.env.example
CHANGED
package/README.md
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, copyFileSync } from "node:fs";
|
|
2
|
+
import { join, dirname } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
|
|
6
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
7
|
+
const packageRoot = join(__dirname, "..");
|
|
8
|
+
const envExample = join(packageRoot, ".env.example");
|
|
9
|
+
|
|
10
|
+
const rummyHome = process.env.RUMMY_HOME || join(homedir(), ".rummy");
|
|
11
|
+
|
|
12
|
+
if (!existsSync(rummyHome)) {
|
|
13
|
+
mkdirSync(rummyHome, { recursive: true });
|
|
14
|
+
}
|
|
15
|
+
for (const dir of ["plugins", "skills", "personas"]) {
|
|
16
|
+
const path = join(rummyHome, dir);
|
|
17
|
+
if (!existsSync(path)) mkdirSync(path, { recursive: true });
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
copyFileSync(envExample, join(rummyHome, ".env.example"));
|
|
21
|
+
console.log(`[RUMMY] Configuration: ${rummyHome}/.env.example`);
|
|
22
|
+
console.log(`[RUMMY] Copy to ${rummyHome}/.env and add your API keys.`);
|
package/bin/rummy.js
CHANGED
|
@@ -1,35 +1,25 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { existsSync
|
|
4
|
-
import { join, dirname } from "node:path";
|
|
3
|
+
import { existsSync } from "node:fs";
|
|
4
|
+
import { isAbsolute, join, dirname } from "node:path";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
6
|
import { homedir } from "node:os";
|
|
7
7
|
|
|
8
8
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
9
|
const packageRoot = join(__dirname, "..");
|
|
10
|
-
const envExample = join(packageRoot, ".env.example");
|
|
11
10
|
|
|
12
|
-
// Resolve RUMMY_HOME
|
|
13
11
|
const rummyHome = process.env.RUMMY_HOME || join(homedir(), ".rummy");
|
|
14
|
-
process.env.RUMMY_HOME = rummyHome;
|
|
15
|
-
|
|
16
|
-
// Bootstrap ~/.rummy if needed
|
|
17
|
-
if (!existsSync(rummyHome)) {
|
|
18
|
-
mkdirSync(rummyHome, { recursive: true });
|
|
19
|
-
console.log(`[RUMMY] Created ${rummyHome}`);
|
|
20
|
-
}
|
|
21
|
-
for (const dir of ["plugins", "skills", "personas"]) {
|
|
22
|
-
const path = join(rummyHome, dir);
|
|
23
|
-
if (!existsSync(path)) mkdirSync(path, { recursive: true });
|
|
24
|
-
}
|
|
25
12
|
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
// Load defaults from .env.example, then user overrides from ~/.rummy/.env
|
|
30
|
-
process.loadEnvFile(envExample);
|
|
13
|
+
// Load defaults, then user overrides
|
|
14
|
+
process.loadEnvFile(join(packageRoot, ".env.example"));
|
|
31
15
|
const userEnv = join(rummyHome, ".env");
|
|
32
16
|
if (existsSync(userEnv)) process.loadEnvFile(userEnv);
|
|
33
17
|
|
|
34
|
-
//
|
|
18
|
+
// Resolve RUMMY_HOME and make DB path absolute relative to it
|
|
19
|
+
process.env.RUMMY_HOME = rummyHome;
|
|
20
|
+
const dbPath = process.env.RUMMY_DB_PATH;
|
|
21
|
+
if (dbPath && !isAbsolute(dbPath)) {
|
|
22
|
+
process.env.RUMMY_DB_PATH = join(rummyHome, dbPath);
|
|
23
|
+
}
|
|
24
|
+
|
|
35
25
|
await import(join(packageRoot, "service.js"));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@possumtech/rummy",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7",
|
|
4
4
|
"description": "Relational Unknowns Memory Management Yoke",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"llm"
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"type": "module",
|
|
29
29
|
"main": "service.js",
|
|
30
30
|
"scripts": {
|
|
31
|
+
"postinstall": "node ./bin/postinstall.js",
|
|
31
32
|
"start": "node --env-file-if-exists=.env.example --env-file-if-exists=.env service.js",
|
|
32
33
|
"dev": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.dev --watch service.js",
|
|
33
34
|
"debug": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.debug --inspect service.js",
|
package/service.js
CHANGED
|
@@ -53,7 +53,7 @@ async function main() {
|
|
|
53
53
|
await registerPlugins([pluginsDir, userPluginsDir], hooks);
|
|
54
54
|
|
|
55
55
|
// 5. Bootstrap Persistence
|
|
56
|
-
const dbPath = process.env.RUMMY_DB_PATH
|
|
56
|
+
const dbPath = process.env.RUMMY_DB_PATH;
|
|
57
57
|
const functionsDir = fileURLToPath(new URL("./src/sql/functions", import.meta.url));
|
|
58
58
|
const sqlFunctions = readdirSync(functionsDir)
|
|
59
59
|
.filter((f) => f.endsWith(".js") && !f.endsWith(".test.js"))
|