chronicle-ai 0.0.1 → 0.1.1
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/package.json +2 -1
- package/packages/cli/dist/commands/start.d.ts.map +1 -1
- package/packages/cli/dist/commands/start.js +49 -4
- package/packages/cli/dist/commands/start.js.map +1 -1
- package/packages/daemon/dist/index.js +9 -3
- package/packages/daemon/dist/index.js.map +1 -1
- package/packages/ui/lib/db.ts +16 -3
- package/tsconfig.base.json +19 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chronicle-ai",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Chronicle - Living Docs: Autonomous Documentation Agent",
|
|
6
6
|
"bin": {
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"packages/ui/postcss.config.js",
|
|
23
23
|
"packages/ui/tailwind.config.ts",
|
|
24
24
|
"packages/ui/tsconfig.json",
|
|
25
|
+
"tsconfig.base.json",
|
|
25
26
|
"README.md",
|
|
26
27
|
"PROJECT_STORY.md"
|
|
27
28
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AASA,wBAAsB,KAAK,CAAC,OAAO,EAAE,GAAG,iBA6GvC"}
|
|
@@ -7,6 +7,7 @@ exports.start = start;
|
|
|
7
7
|
const child_process_1 = require("child_process");
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const os_1 = __importDefault(require("os"));
|
|
10
11
|
const chalk_1 = __importDefault(require("chalk"));
|
|
11
12
|
const ora_1 = __importDefault(require("ora"));
|
|
12
13
|
const detect_port_1 = __importDefault(require("detect-port"));
|
|
@@ -15,16 +16,18 @@ async function start(options) {
|
|
|
15
16
|
const spinner = (0, ora_1.default)('Starting Chronicle System...').start();
|
|
16
17
|
let daemonDir;
|
|
17
18
|
let uiDir;
|
|
19
|
+
const chronicleDir = path_1.default.join(os_1.default.homedir(), '.chronicle');
|
|
18
20
|
try {
|
|
19
21
|
daemonDir = (0, paths_1.getDaemonDir)();
|
|
20
22
|
uiDir = (0, paths_1.getUiDir)();
|
|
23
|
+
daemonDir = prepareRuntimePackageDir(daemonDir, 'daemon');
|
|
24
|
+
uiDir = prepareUiRuntimeDir(uiDir);
|
|
21
25
|
}
|
|
22
26
|
catch (error) {
|
|
23
27
|
spinner.fail(chalk_1.default.red(error.message));
|
|
24
28
|
return;
|
|
25
29
|
}
|
|
26
|
-
// Ensure
|
|
27
|
-
const chronicleDir = path_1.default.join(daemonDir, '.chronicle');
|
|
30
|
+
// Ensure runtime data dir exists
|
|
28
31
|
if (!fs_1.default.existsSync(chronicleDir)) {
|
|
29
32
|
fs_1.default.mkdirSync(chronicleDir, { recursive: true });
|
|
30
33
|
}
|
|
@@ -54,7 +57,11 @@ async function start(options) {
|
|
|
54
57
|
cwd: daemonDir,
|
|
55
58
|
detached: true,
|
|
56
59
|
stdio: ['ignore', out, err],
|
|
57
|
-
env: {
|
|
60
|
+
env: {
|
|
61
|
+
...process.env,
|
|
62
|
+
GOOGLE_API_KEY: geminiKey,
|
|
63
|
+
CHRONICLE_DATA_DIR: chronicleDir
|
|
64
|
+
}
|
|
58
65
|
});
|
|
59
66
|
daemon.unref();
|
|
60
67
|
if (daemon.pid) {
|
|
@@ -84,7 +91,11 @@ async function start(options) {
|
|
|
84
91
|
cwd: uiDir,
|
|
85
92
|
detached: true,
|
|
86
93
|
stdio: ['ignore', out, err],
|
|
87
|
-
env: {
|
|
94
|
+
env: {
|
|
95
|
+
...process.env,
|
|
96
|
+
PORT: String(port),
|
|
97
|
+
CHRONICLE_DATA_DIR: chronicleDir
|
|
98
|
+
}
|
|
88
99
|
});
|
|
89
100
|
ui.unref();
|
|
90
101
|
if (ui.pid) {
|
|
@@ -124,4 +135,38 @@ function readGeminiKey(filePath) {
|
|
|
124
135
|
.filter(line => line.length > 0 && !line.startsWith('#'));
|
|
125
136
|
return lines[0] || '';
|
|
126
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Next.js does not reliably transpile TS/TSX when the app itself is under node_modules
|
|
140
|
+
* (global npm install path). Copy UI to a runtime dir outside node_modules and run it there.
|
|
141
|
+
*/
|
|
142
|
+
function prepareUiRuntimeDir(originalUiDir) {
|
|
143
|
+
if (!originalUiDir.includes(`${path_1.default.sep}node_modules${path_1.default.sep}`)) {
|
|
144
|
+
return originalUiDir;
|
|
145
|
+
}
|
|
146
|
+
const runtimeRoot = path_1.default.join(os_1.default.homedir(), '.chronicle', 'runtime');
|
|
147
|
+
const runtimeUiDir = prepareRuntimePackageDir(originalUiDir, 'ui');
|
|
148
|
+
const packageRoot = path_1.default.resolve(originalUiDir, '../..');
|
|
149
|
+
const sourceTsconfigBase = path_1.default.join(packageRoot, 'tsconfig.base.json');
|
|
150
|
+
const runtimeTsconfigBase = path_1.default.join(runtimeRoot, 'tsconfig.base.json');
|
|
151
|
+
if (fs_1.default.existsSync(sourceTsconfigBase) && !fs_1.default.existsSync(runtimeTsconfigBase)) {
|
|
152
|
+
fs_1.default.copyFileSync(sourceTsconfigBase, runtimeTsconfigBase);
|
|
153
|
+
}
|
|
154
|
+
return runtimeUiDir;
|
|
155
|
+
}
|
|
156
|
+
function prepareRuntimePackageDir(originalPackageDir, packageName) {
|
|
157
|
+
if (!originalPackageDir.includes(`${path_1.default.sep}node_modules${path_1.default.sep}`)) {
|
|
158
|
+
return originalPackageDir;
|
|
159
|
+
}
|
|
160
|
+
const packageRoot = path_1.default.resolve(originalPackageDir, '../..');
|
|
161
|
+
const runtimeRoot = path_1.default.join(os_1.default.homedir(), '.chronicle', 'runtime');
|
|
162
|
+
const runtimePackageDir = path_1.default.join(runtimeRoot, 'packages', packageName);
|
|
163
|
+
const runtimeNodeModules = path_1.default.join(runtimeRoot, 'node_modules');
|
|
164
|
+
const sourceNodeModules = path_1.default.join(packageRoot, 'node_modules');
|
|
165
|
+
fs_1.default.mkdirSync(path_1.default.dirname(runtimePackageDir), { recursive: true });
|
|
166
|
+
fs_1.default.cpSync(originalPackageDir, runtimePackageDir, { recursive: true, force: true });
|
|
167
|
+
if (!fs_1.default.existsSync(runtimeNodeModules) && fs_1.default.existsSync(sourceNodeModules)) {
|
|
168
|
+
fs_1.default.symlinkSync(sourceNodeModules, runtimeNodeModules, 'dir');
|
|
169
|
+
}
|
|
170
|
+
return runtimePackageDir;
|
|
171
|
+
}
|
|
127
172
|
//# sourceMappingURL=start.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,11 +24,11 @@ async function main() {
|
|
|
24
24
|
const apiKey = loadGeminiApiKey();
|
|
25
25
|
if (!apiKey) {
|
|
26
26
|
console.error('❌ Gemini API key not found.');
|
|
27
|
-
console.error(` Add your key to: ${path_1.default.join(
|
|
27
|
+
console.error(` Add your key to: ${path_1.default.join(getDataDir(), '.gemini-key')}`);
|
|
28
28
|
process.exit(1);
|
|
29
29
|
}
|
|
30
30
|
const watcher = new WatcherService_1.WatcherService(process.cwd());
|
|
31
|
-
const db = new DatabaseService_1.DatabaseService();
|
|
31
|
+
const db = new DatabaseService_1.DatabaseService(getDataDir());
|
|
32
32
|
// Use CWD for git service default, feature per-project git service pending
|
|
33
33
|
const git = new GitService_1.GitService(process.cwd());
|
|
34
34
|
const queue = new QueueService_1.QueueService(db);
|
|
@@ -135,7 +135,7 @@ function loadGeminiApiKey() {
|
|
|
135
135
|
const keyFromEnv = (process.env.GOOGLE_API_KEY || '').trim();
|
|
136
136
|
if (keyFromEnv)
|
|
137
137
|
return keyFromEnv;
|
|
138
|
-
const keyFilePath = path_1.default.join(
|
|
138
|
+
const keyFilePath = path_1.default.join(getDataDir(), '.gemini-key');
|
|
139
139
|
if (!fs_1.default.existsSync(keyFilePath))
|
|
140
140
|
return '';
|
|
141
141
|
const lines = fs_1.default.readFileSync(keyFilePath, 'utf-8')
|
|
@@ -144,4 +144,10 @@ function loadGeminiApiKey() {
|
|
|
144
144
|
.filter(line => line.length > 0 && !line.startsWith('#'));
|
|
145
145
|
return lines[0] || '';
|
|
146
146
|
}
|
|
147
|
+
function getDataDir() {
|
|
148
|
+
const fromEnv = (process.env.CHRONICLE_DATA_DIR || '').trim();
|
|
149
|
+
if (fromEnv)
|
|
150
|
+
return fromEnv;
|
|
151
|
+
return path_1.default.join(process.cwd(), '.chronicle');
|
|
152
|
+
}
|
|
147
153
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAChB,8DAA2D;AAC3D,4CAAoB;AACpB,gDAAwB;AAExB,gEAA6D;AAC7D,sDAAmD;AACnD,0DAAuD;AACvD,wDAA2D;AAE3D,4DAA+D;AAC/D,oDAAuD;AACvD,sDAAyD;AACzD,4DAA+D;AAC/D,oDAAiD;AACjD,4DAAyD;AACzD,8DAA2D;AAE3D,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAE/C,KAAK,UAAU,IAAI;IACf,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,uBAAuB,cAAI,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/packages/ui/lib/db.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Database from 'better-sqlite3';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import fs from 'fs';
|
|
4
|
+
import os from 'os';
|
|
4
5
|
import { marked } from 'marked';
|
|
5
6
|
|
|
6
7
|
// Configure marked to render mermaid blocks as divs
|
|
@@ -19,9 +20,8 @@ renderer.code = ({ text, lang, escaped }: any) => {
|
|
|
19
20
|
|
|
20
21
|
marked.use({ renderer });
|
|
21
22
|
|
|
22
|
-
// Connect to the
|
|
23
|
-
|
|
24
|
-
const DB_PATH = path.resolve(process.cwd(), '../daemon/.chronicle/db.sqlite');
|
|
23
|
+
// Connect to the daemon DB. Prefer explicit env/runtime path for global installs.
|
|
24
|
+
const DB_PATH = resolveDbPath();
|
|
25
25
|
|
|
26
26
|
// Lazy database connection - handle build-time scenarios where DB doesn't exist
|
|
27
27
|
let _db: Database.Database | null = null;
|
|
@@ -47,6 +47,19 @@ function getDb(): Database.Database | null {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
function resolveDbPath(): string {
|
|
51
|
+
const explicitDbPath = (process.env.CHRONICLE_DAEMON_PATH || '').trim();
|
|
52
|
+
if (explicitDbPath) return path.resolve(explicitDbPath);
|
|
53
|
+
|
|
54
|
+
const dataDir = (process.env.CHRONICLE_DATA_DIR || '').trim();
|
|
55
|
+
if (dataDir) return path.join(path.resolve(dataDir), 'db.sqlite');
|
|
56
|
+
|
|
57
|
+
const monorepoDefault = path.resolve(process.cwd(), '../daemon/.chronicle/db.sqlite');
|
|
58
|
+
if (fs.existsSync(monorepoDefault)) return monorepoDefault;
|
|
59
|
+
|
|
60
|
+
return path.join(os.homedir(), '.chronicle', 'db.sqlite');
|
|
61
|
+
}
|
|
62
|
+
|
|
50
63
|
// For backward compatibility - functions will check if db is null
|
|
51
64
|
const db = {
|
|
52
65
|
prepare: (sql: string) => {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "NodeNext",
|
|
5
|
+
"moduleResolution": "NodeNext",
|
|
6
|
+
"lib": [
|
|
7
|
+
"ES2022",
|
|
8
|
+
"DOM"
|
|
9
|
+
],
|
|
10
|
+
"strict": true,
|
|
11
|
+
"esModuleInterop": true,
|
|
12
|
+
"skipLibCheck": true,
|
|
13
|
+
"forceConsistentCasingInFileNames": true,
|
|
14
|
+
"composite": true,
|
|
15
|
+
"declaration": true,
|
|
16
|
+
"declarationMap": true,
|
|
17
|
+
"sourceMap": true
|
|
18
|
+
}
|
|
19
|
+
}
|