@bassfish/cli 0.1.0
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/LICENSE +21 -0
- package/README.md +153 -0
- package/dist/api.d.ts +365 -0
- package/dist/api.js +113 -0
- package/dist/api.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +217 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +20 -0
- package/dist/config.js +68 -0
- package/dist/config.js.map +1 -0
- package/dist/daemon.d.ts +4 -0
- package/dist/daemon.js +220 -0
- package/dist/daemon.js.map +1 -0
- package/dist/domain.d.ts +393 -0
- package/dist/domain.js +75 -0
- package/dist/domain.js.map +1 -0
- package/dist/export.d.ts +7 -0
- package/dist/export.js +37 -0
- package/dist/export.js.map +1 -0
- package/dist/ipc.d.ts +14 -0
- package/dist/ipc.js +125 -0
- package/dist/ipc.js.map +1 -0
- package/dist/lock.d.ts +2 -0
- package/dist/lock.js +18 -0
- package/dist/lock.js.map +1 -0
- package/dist/mcp.d.ts +16 -0
- package/dist/mcp.js +200 -0
- package/dist/mcp.js.map +1 -0
- package/dist/note-cli.d.ts +28 -0
- package/dist/note-cli.js +204 -0
- package/dist/note-cli.js.map +1 -0
- package/dist/note.d.ts +12 -0
- package/dist/note.js +181 -0
- package/dist/note.js.map +1 -0
- package/dist/repository.d.ts +1 -0
- package/dist/repository.js +21 -0
- package/dist/repository.js.map +1 -0
- package/dist/runtime.d.ts +12 -0
- package/dist/runtime.js +32 -0
- package/dist/runtime.js.map +1 -0
- package/dist/service.d.ts +106 -0
- package/dist/service.js +1185 -0
- package/dist/service.js.map +1 -0
- package/dist/setup.d.ts +21 -0
- package/dist/setup.js +108 -0
- package/dist/setup.js.map +1 -0
- package/dist/sql-worker.d.ts +6 -0
- package/dist/sql-worker.js +76 -0
- package/dist/sql-worker.js.map +1 -0
- package/dist/storage/control.d.ts +10 -0
- package/dist/storage/control.js +160 -0
- package/dist/storage/control.js.map +1 -0
- package/dist/storage/dolt.d.ts +32 -0
- package/dist/storage/dolt.js +494 -0
- package/dist/storage/dolt.js.map +1 -0
- package/dist/storage/search.d.ts +22 -0
- package/dist/storage/search.js +75 -0
- package/dist/storage/search.js.map +1 -0
- package/dist/supervisor.d.ts +11 -0
- package/dist/supervisor.js +97 -0
- package/dist/supervisor.js.map +1 -0
- package/dist/tasks.d.ts +52 -0
- package/dist/tasks.js +33 -0
- package/dist/tasks.js.map +1 -0
- package/dist/thread-cli.d.ts +2 -0
- package/dist/thread-cli.js +64 -0
- package/dist/thread-cli.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const DOLT_VERSION = "2.3.2";
|
|
2
|
+
export declare function normalizedArchitecture(arch?: string): string;
|
|
3
|
+
export declare function managedDoltBinary(dataDir: string, platform?: NodeJS.Platform, arch?: NodeJS.Architecture): string;
|
|
4
|
+
export declare function readDoltVersion(binary: string): Promise<string | undefined>;
|
|
5
|
+
export declare function verifyDoltArchive(name: string, bytes: Uint8Array): void;
|
|
6
|
+
type Fetcher = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
|
|
7
|
+
export interface SetupDoltOptions {
|
|
8
|
+
platform?: string;
|
|
9
|
+
arch?: string;
|
|
10
|
+
/** null explicitly ignores the process environment, which is useful for isolated verification. */
|
|
11
|
+
overrideBinary?: string | null;
|
|
12
|
+
fetcher?: Fetcher;
|
|
13
|
+
}
|
|
14
|
+
export interface SetupDoltResult {
|
|
15
|
+
version: string;
|
|
16
|
+
path: string;
|
|
17
|
+
source: 'managed' | 'override';
|
|
18
|
+
installed: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare function setupDolt(dataDir: string, options?: SetupDoltOptions): Promise<SetupDoltResult>;
|
|
21
|
+
export {};
|
package/dist/setup.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { execFile } from 'node:child_process';
|
|
3
|
+
import { access, chmod, mkdir, mkdtemp, rename, rm, writeFile } from 'node:fs/promises';
|
|
4
|
+
import { join, resolve } from 'node:path';
|
|
5
|
+
import { promisify } from 'node:util';
|
|
6
|
+
import { BassfishError } from './domain.js';
|
|
7
|
+
export const DOLT_VERSION = '2.3.2';
|
|
8
|
+
const checksums = {
|
|
9
|
+
'dolt-darwin-amd64.tar.gz': '6e438bcb2ffa1e4d0fcf06c0add56c0e87d7c9d2fc95de55a3eed2d5346e9f2b',
|
|
10
|
+
'dolt-darwin-arm64.tar.gz': 'b576072541393579980161e86ac8ff83a447eb3eb47a17d92968bf72be098cad',
|
|
11
|
+
'dolt-linux-amd64.tar.gz': '7a2949fa2b2b3799ee1e57e6d64519a8d65d675fd832f6469d4e07e5a1c72b14',
|
|
12
|
+
'dolt-linux-arm64.tar.gz': 'b2231e84e06adf95ea81c6e889409ee7a72de5a96cb03bbf1bf3433ac763cf9c',
|
|
13
|
+
};
|
|
14
|
+
export function normalizedArchitecture(arch = process.arch) {
|
|
15
|
+
return arch === 'x64' ? 'amd64' : arch;
|
|
16
|
+
}
|
|
17
|
+
export function managedDoltBinary(dataDir, platform = process.platform, arch = process.arch) {
|
|
18
|
+
return join(dataDir, 'tools', 'dolt', DOLT_VERSION, `${platform}-${normalizedArchitecture(arch)}`, 'bin', 'dolt');
|
|
19
|
+
}
|
|
20
|
+
export async function readDoltVersion(binary) {
|
|
21
|
+
try {
|
|
22
|
+
const result = await promisify(execFile)(binary, ['version'], { timeout: 5_000 });
|
|
23
|
+
const match = result.stdout.match(/(?:^|\s)(\d+\.\d+\.\d+)(?:\s|$)/);
|
|
24
|
+
return match?.[1];
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export function verifyDoltArchive(name, bytes) {
|
|
31
|
+
const expected = checksums[name];
|
|
32
|
+
if (!expected)
|
|
33
|
+
throw new BassfishError('UNSUPPORTED_PLATFORM', `No verified Dolt ${DOLT_VERSION} archive exists for this platform.`);
|
|
34
|
+
const actual = createHash('sha256').update(bytes).digest('hex');
|
|
35
|
+
if (actual !== expected)
|
|
36
|
+
throw new BassfishError('DOLT_CHECKSUM', 'Dolt checksum mismatch. Nothing was installed.');
|
|
37
|
+
}
|
|
38
|
+
export async function setupDolt(dataDir, options = {}) {
|
|
39
|
+
const override = options.overrideBinary === undefined ? process.env.BASSFISH_DOLT_BIN : options.overrideBinary ?? undefined;
|
|
40
|
+
if (override) {
|
|
41
|
+
const path = resolve(override);
|
|
42
|
+
const version = await readDoltVersion(path);
|
|
43
|
+
if (version !== DOLT_VERSION)
|
|
44
|
+
throw new BassfishError('DOLT_VERSION', `BASSFISH_DOLT_BIN must point to Dolt ${DOLT_VERSION}.`);
|
|
45
|
+
return { version, path, source: 'override', installed: false };
|
|
46
|
+
}
|
|
47
|
+
const platform = options.platform ?? process.platform;
|
|
48
|
+
const arch = normalizedArchitecture(options.arch ?? process.arch);
|
|
49
|
+
if (!['darwin', 'linux'].includes(platform) || !['amd64', 'arm64'].includes(arch)) {
|
|
50
|
+
throw new BassfishError('UNSUPPORTED_PLATFORM', `Bassfish setup supports macOS and Linux on arm64 or x64. Set BASSFISH_DOLT_BIN to Dolt ${DOLT_VERSION} on other platforms.`);
|
|
51
|
+
}
|
|
52
|
+
const archiveBase = `dolt-${platform}-${arch}`;
|
|
53
|
+
const archiveName = `${archiveBase}.tar.gz`;
|
|
54
|
+
const target = join(dataDir, 'tools', 'dolt', DOLT_VERSION, `${platform}-${arch}`);
|
|
55
|
+
const binary = join(target, 'bin', 'dolt');
|
|
56
|
+
if (await readDoltVersion(binary) === DOLT_VERSION)
|
|
57
|
+
return { version: DOLT_VERSION, path: binary, source: 'managed', installed: false };
|
|
58
|
+
const parent = join(dataDir, 'tools', 'dolt', DOLT_VERSION);
|
|
59
|
+
await mkdir(parent, { recursive: true, mode: 0o700 });
|
|
60
|
+
const temporary = await mkdtemp(join(parent, '.install-'));
|
|
61
|
+
let backup;
|
|
62
|
+
try {
|
|
63
|
+
const response = await (options.fetcher ?? fetch)(`https://github.com/dolthub/dolt/releases/download/v${DOLT_VERSION}/${archiveName}`, { signal: AbortSignal.timeout(120_000) });
|
|
64
|
+
if (!response.ok)
|
|
65
|
+
throw new BassfishError('DOLT_DOWNLOAD', `Dolt download returned HTTP ${response.status}. Nothing was installed.`);
|
|
66
|
+
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
67
|
+
verifyDoltArchive(archiveName, bytes);
|
|
68
|
+
const archivePath = join(temporary, archiveName);
|
|
69
|
+
await writeFile(archivePath, bytes, { mode: 0o600 });
|
|
70
|
+
await promisify(execFile)('tar', ['-xzf', archivePath, '-C', temporary]);
|
|
71
|
+
const extracted = join(temporary, archiveBase);
|
|
72
|
+
const extractedBinary = join(extracted, 'bin', 'dolt');
|
|
73
|
+
await chmod(extractedBinary, 0o755);
|
|
74
|
+
if (await readDoltVersion(extractedBinary) !== DOLT_VERSION)
|
|
75
|
+
throw new BassfishError('DOLT_VERSION', `Downloaded archive did not contain Dolt ${DOLT_VERSION}. Nothing was installed.`);
|
|
76
|
+
// Another setup process may have completed while this archive was downloading.
|
|
77
|
+
if (await readDoltVersion(binary) === DOLT_VERSION)
|
|
78
|
+
return { version: DOLT_VERSION, path: binary, source: 'managed', installed: false };
|
|
79
|
+
try {
|
|
80
|
+
await access(target);
|
|
81
|
+
backup = join(parent, `.replaced-${platform}-${arch}-${process.pid}-${Date.now()}`);
|
|
82
|
+
await rename(target, backup);
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
if (error.code !== 'ENOENT')
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
await rename(extracted, target);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
if (backup)
|
|
93
|
+
await rename(backup, target).catch(() => { });
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
if (backup) {
|
|
97
|
+
await rm(backup, { recursive: true, force: true });
|
|
98
|
+
backup = undefined;
|
|
99
|
+
}
|
|
100
|
+
return { version: DOLT_VERSION, path: binary, source: 'managed', installed: true };
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
if (backup)
|
|
104
|
+
await rename(backup, target).catch(() => { });
|
|
105
|
+
await rm(temporary, { recursive: true, force: true });
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { mkdir, readFile, writeFile, chmod } from 'node:fs/promises';
|
|
3
|
+
import { createServer } from 'node:net';
|
|
4
|
+
import { randomBytes } from 'node:crypto';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
import { exclusiveLock } from './lock.js';
|
|
7
|
+
import { requireThat } from './domain.js';
|
|
8
|
+
/** Separate guardian: daemon pipe closure kills/reaps SQL before releasing its lifetime lock. */
|
|
9
|
+
export async function runSqlWorker(dataDir, binary) {
|
|
10
|
+
process.umask(0o077);
|
|
11
|
+
const run = join(dataDir, 'run');
|
|
12
|
+
await mkdir(run, { recursive: true, mode: 0o700 });
|
|
13
|
+
const unlock = exclusiveLock(join(run, 'sql-owner.lock'), 10_000);
|
|
14
|
+
const passwordPath = join(run, 'sql-password');
|
|
15
|
+
let password;
|
|
16
|
+
try {
|
|
17
|
+
password = (await readFile(passwordPath, 'utf8')).trim();
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
if (error.code !== 'ENOENT')
|
|
21
|
+
throw error;
|
|
22
|
+
password = randomBytes(32).toString('hex');
|
|
23
|
+
await writeFile(passwordPath, password, { mode: 0o600, flag: 'wx' });
|
|
24
|
+
}
|
|
25
|
+
requireThat(/^[a-f0-9]{64}$/.test(password), 'SQL_CREDENTIALS', 'The SQL credential file is incomplete or invalid; no listener was started.');
|
|
26
|
+
const projects = join(dataDir, 'projects');
|
|
27
|
+
const configRoot = join(dataDir, 'dolt-config');
|
|
28
|
+
await mkdir(projects, { recursive: true, mode: 0o700 });
|
|
29
|
+
await mkdir(configRoot, { recursive: true, mode: 0o700 });
|
|
30
|
+
// Dolt 2.3.2 initializes and persists these credentials before accepting connections.
|
|
31
|
+
// Existing privileges are never reset on restart; a mismatch fails readiness closed.
|
|
32
|
+
const doltEnv = { ...process.env, DOLT_ROOT_PATH: configRoot, DOLT_CLI_PASSWORD: undefined,
|
|
33
|
+
DOLT_ROOT_PASSWORD: password, DOLT_ROOT_HOST: 'localhost' };
|
|
34
|
+
const privileges = join(configRoot, 'privileges.db');
|
|
35
|
+
const port = await new Promise((resolve, reject) => {
|
|
36
|
+
const server = createServer();
|
|
37
|
+
server.once('error', reject);
|
|
38
|
+
server.listen(0, '127.0.0.1', () => { const address = server.address(); const port = typeof address === 'object' && address ? address.port : 0; server.close(() => resolve(port)); });
|
|
39
|
+
});
|
|
40
|
+
const socketPath = join(run, `sql-${randomBytes(3).toString('hex')}.sock`);
|
|
41
|
+
const yamlString = (s) => JSON.stringify(s).replaceAll('$', '$$');
|
|
42
|
+
const config = [
|
|
43
|
+
`data_dir: ${yamlString(projects)}`, `cfg_dir: ${yamlString(configRoot)}`,
|
|
44
|
+
`privilege_file: ${yamlString(privileges)}`, `branch_control_file: ${yamlString(join(configRoot, 'branch-control.db'))}`,
|
|
45
|
+
'log_level: error', 'behavior:', ' autocommit: true', ' dolt_transaction_commit: false', ' event_scheduler: "OFF"',
|
|
46
|
+
' auto_gc_behavior:', ' enable: false', 'listener:', ' host: "127.0.0.1"', ` port: ${port}`,
|
|
47
|
+
` socket: ${yamlString(socketPath)}`, ' read_timeout_millis: 60000', ' write_timeout_millis: 60000',
|
|
48
|
+
'system_variables:', ` secure_file_priv: ${yamlString(join(run, 'disabled-file-access'))}`, '',
|
|
49
|
+
].join('\n');
|
|
50
|
+
const configPath = join(run, 'sql.yaml');
|
|
51
|
+
await writeFile(configPath, config, { mode: 0o600 });
|
|
52
|
+
const child = spawn(binary, ['sql-server', '--config', configPath], { cwd: dataDir,
|
|
53
|
+
env: doltEnv, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
54
|
+
let stopping = false;
|
|
55
|
+
const stop = () => {
|
|
56
|
+
if (stopping)
|
|
57
|
+
return;
|
|
58
|
+
stopping = true;
|
|
59
|
+
child.kill('SIGTERM');
|
|
60
|
+
const hard = setTimeout(() => child.kill('SIGKILL'), 5000);
|
|
61
|
+
hard.unref();
|
|
62
|
+
};
|
|
63
|
+
process.stdin.resume();
|
|
64
|
+
process.stdin.once('end', stop);
|
|
65
|
+
process.once('SIGTERM', stop);
|
|
66
|
+
process.once('SIGINT', stop);
|
|
67
|
+
// The parent connects only to this incarnation's unique socket, never a surviving old server.
|
|
68
|
+
process.stdout.write(JSON.stringify({ socketPath, password }) + '\n');
|
|
69
|
+
child.stdout.on('data', () => { });
|
|
70
|
+
child.stderr.on('data', data => process.stderr.write(data));
|
|
71
|
+
child.once('error', error => { process.stderr.write(`Dolt could not start: ${error.message}\n`); unlock(); process.exit(1); });
|
|
72
|
+
child.once('exit', code => { unlock(); process.exit(stopping ? 0 : code || 1); });
|
|
73
|
+
const socketMode = setInterval(() => { void chmod(socketPath, 0o600).catch(() => { }); }, 1000);
|
|
74
|
+
socketMode.unref();
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=sql-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-worker.js","sourceRoot":"","sources":["../src/sql-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ControlState, ControlStore } from '../domain.js';
|
|
2
|
+
/** Durable current coordination state. Content and semantic history never live here. */
|
|
3
|
+
export declare class SqliteControl implements ControlStore {
|
|
4
|
+
private readonly db;
|
|
5
|
+
constructor(path: string);
|
|
6
|
+
private load;
|
|
7
|
+
view<T>(fn: (state: ControlState) => T): T;
|
|
8
|
+
update<T>(fn: (state: ControlState) => T): T;
|
|
9
|
+
close(): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { DatabaseSync } from 'node:sqlite';
|
|
2
|
+
import { mkdirSync } from 'node:fs';
|
|
3
|
+
import { dirname } from 'node:path';
|
|
4
|
+
import { BassfishError } from '../domain.js';
|
|
5
|
+
const schemaVersion = 3;
|
|
6
|
+
/** Durable current coordination state. Content and semantic history never live here. */
|
|
7
|
+
export class SqliteControl {
|
|
8
|
+
db;
|
|
9
|
+
constructor(path) {
|
|
10
|
+
mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
|
|
11
|
+
this.db = new DatabaseSync(path);
|
|
12
|
+
const version = Number(this.db.prepare('PRAGMA user_version').get().user_version);
|
|
13
|
+
if (version !== 0 && version !== schemaVersion) {
|
|
14
|
+
this.db.close();
|
|
15
|
+
throw new BassfishError('SCHEMA_MISMATCH', `Control schema ${version} is incompatible with v0 schema ${schemaVersion}; reset the preview data.`);
|
|
16
|
+
}
|
|
17
|
+
this.db.exec(`
|
|
18
|
+
PRAGMA journal_mode=WAL;
|
|
19
|
+
PRAGMA synchronous=FULL;
|
|
20
|
+
PRAGMA busy_timeout=5000;
|
|
21
|
+
PRAGMA foreign_keys=ON;
|
|
22
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
23
|
+
id TEXT PRIMARY KEY, commonDir TEXT NOT NULL UNIQUE, recovering INTEGER NOT NULL CHECK(recovering IN (0,1))
|
|
24
|
+
);
|
|
25
|
+
CREATE TABLE IF NOT EXISTS identities (
|
|
26
|
+
id TEXT PRIMARY KEY, projectId TEXT NOT NULL, name TEXT NOT NULL,
|
|
27
|
+
FOREIGN KEY(projectId) REFERENCES projects(id), UNIQUE(projectId,name COLLATE NOCASE)
|
|
28
|
+
);
|
|
29
|
+
CREATE TABLE IF NOT EXISTS instances (
|
|
30
|
+
id TEXT PRIMARY KEY, projectId TEXT NOT NULL, identityId TEXT NOT NULL, handle TEXT NOT NULL UNIQUE,
|
|
31
|
+
epoch TEXT NOT NULL, active INTEGER NOT NULL CHECK(active IN (0,1)), lastSeen INTEGER NOT NULL,
|
|
32
|
+
FOREIGN KEY(projectId) REFERENCES projects(id), FOREIGN KEY(identityId) REFERENCES identities(id)
|
|
33
|
+
);
|
|
34
|
+
CREATE UNIQUE INDEX IF NOT EXISTS one_active_instance ON instances(identityId) WHERE active=1;
|
|
35
|
+
CREATE TABLE IF NOT EXISTS resources (
|
|
36
|
+
id TEXT PRIMARY KEY, projectId TEXT NOT NULL, type TEXT NOT NULL CHECK(type IN ('thread','note','project')),
|
|
37
|
+
fence TEXT NOT NULL, queueSequence TEXT NOT NULL, present INTEGER NOT NULL CHECK(present IN (0,1)), FOREIGN KEY(projectId) REFERENCES projects(id)
|
|
38
|
+
);
|
|
39
|
+
CREATE TABLE IF NOT EXISTS floorRequests (
|
|
40
|
+
id TEXT PRIMARY KEY, projectId TEXT NOT NULL, resourceId TEXT NOT NULL,
|
|
41
|
+
resourceType TEXT NOT NULL CHECK(resourceType IN ('thread','note','project')),
|
|
42
|
+
identityId TEXT NOT NULL, instanceId TEXT NOT NULL, sequence TEXT NOT NULL,
|
|
43
|
+
state TEXT NOT NULL CHECK(state IN ('QUEUED','READY','OFFERED','HELD','COMMITTING','COMMITTED','RELEASED','EXPIRED','CANCELLED','FAILED')),
|
|
44
|
+
createdAt INTEGER NOT NULL, updatedAt INTEGER NOT NULL, queueUntil INTEGER NOT NULL, reconnectUntil INTEGER,
|
|
45
|
+
offerId TEXT UNIQUE, claimBy INTEGER, floorId TEXT UNIQUE, fence TEXT, baseRevision TEXT,
|
|
46
|
+
snapshotCommit TEXT, expiresAt INTEGER, finishedAt INTEGER, resultJson TEXT CHECK(resultJson IS NULL OR json_valid(resultJson)),
|
|
47
|
+
purpose TEXT CHECK(purpose IS NULL OR purpose IN ('snapshot','export','search','restore')),
|
|
48
|
+
deliveryMode TEXT NOT NULL CHECK(deliveryMode IN ('ticket','task')),
|
|
49
|
+
FOREIGN KEY(projectId) REFERENCES projects(id), FOREIGN KEY(resourceId) REFERENCES resources(id),
|
|
50
|
+
FOREIGN KEY(identityId) REFERENCES identities(id), FOREIGN KEY(instanceId) REFERENCES instances(id)
|
|
51
|
+
);
|
|
52
|
+
CREATE UNIQUE INDEX IF NOT EXISTS reserved_resource ON floorRequests(projectId,resourceId)
|
|
53
|
+
WHERE state IN ('READY','OFFERED','HELD','COMMITTING');
|
|
54
|
+
CREATE UNIQUE INDEX IF NOT EXISTS one_request_per_instance ON floorRequests(instanceId)
|
|
55
|
+
WHERE state IN ('QUEUED','READY','OFFERED','HELD','COMMITTING');
|
|
56
|
+
CREATE TABLE IF NOT EXISTS pendingCommits (
|
|
57
|
+
id TEXT PRIMARY KEY, projectId TEXT NOT NULL, resourceId TEXT NOT NULL,
|
|
58
|
+
resourceType TEXT NOT NULL CHECK(resourceType IN ('thread','note','project')), floorRequestId TEXT,
|
|
59
|
+
startingHead TEXT NOT NULL, kind TEXT NOT NULL, actorJson TEXT NOT NULL CHECK(json_valid(actorJson)),
|
|
60
|
+
FOREIGN KEY(projectId) REFERENCES projects(id), FOREIGN KEY(floorRequestId) REFERENCES floorRequests(id)
|
|
61
|
+
);
|
|
62
|
+
CREATE TABLE IF NOT EXISTS tasks (
|
|
63
|
+
id TEXT PRIMARY KEY, projectId TEXT NOT NULL, identityId TEXT NOT NULL, requestId TEXT NOT NULL UNIQUE,
|
|
64
|
+
status TEXT NOT NULL CHECK(status IN ('working','completed','failed','cancelled')),
|
|
65
|
+
statusMessage TEXT, createdAt INTEGER NOT NULL, updatedAt INTEGER NOT NULL, discardAt INTEGER NOT NULL,
|
|
66
|
+
resultJson TEXT CHECK(resultJson IS NULL OR json_valid(resultJson)),
|
|
67
|
+
errorJson TEXT CHECK(errorJson IS NULL OR json_valid(errorJson)),
|
|
68
|
+
FOREIGN KEY(projectId) REFERENCES projects(id), FOREIGN KEY(identityId) REFERENCES identities(id), FOREIGN KEY(requestId) REFERENCES floorRequests(id)
|
|
69
|
+
);
|
|
70
|
+
CREATE TABLE IF NOT EXISTS controlMeta (key TEXT PRIMARY KEY, value TEXT NOT NULL);
|
|
71
|
+
INSERT OR IGNORE INTO controlMeta(key,value) VALUES('wallClockHighWaterMs','0');
|
|
72
|
+
PRAGMA user_version=${schemaVersion};
|
|
73
|
+
`);
|
|
74
|
+
}
|
|
75
|
+
load() {
|
|
76
|
+
const watermark = this.db.prepare("SELECT value FROM controlMeta WHERE key='wallClockHighWaterMs'").get();
|
|
77
|
+
const state = { projects: {}, identities: {}, instances: {}, resources: {}, requests: {}, pending: {}, tasks: {}, wallClockHighWaterMs: Number(watermark?.value ?? 0) };
|
|
78
|
+
for (const row of this.db.prepare('SELECT * FROM projects').all()) {
|
|
79
|
+
state.projects[row.id] = { ...row, recovering: row.recovering === 1 };
|
|
80
|
+
}
|
|
81
|
+
for (const row of this.db.prepare('SELECT * FROM identities').all())
|
|
82
|
+
state.identities[row.id] = row;
|
|
83
|
+
for (const row of this.db.prepare('SELECT * FROM instances').all()) {
|
|
84
|
+
state.instances[row.id] = { ...row, active: row.active === 1 };
|
|
85
|
+
}
|
|
86
|
+
for (const row of this.db.prepare('SELECT * FROM resources').all())
|
|
87
|
+
state.resources[row.id] = { ...row, present: row.present === 1 };
|
|
88
|
+
for (const row of this.db.prepare('SELECT * FROM floorRequests').all()) {
|
|
89
|
+
const request = { ...row };
|
|
90
|
+
if (request.resultJson)
|
|
91
|
+
request.result = JSON.parse(request.resultJson);
|
|
92
|
+
delete request.resultJson;
|
|
93
|
+
for (const key of Object.keys(request))
|
|
94
|
+
if (request[key] === null)
|
|
95
|
+
delete request[key];
|
|
96
|
+
state.requests[request.id] = request;
|
|
97
|
+
}
|
|
98
|
+
for (const row of this.db.prepare('SELECT * FROM pendingCommits').all()) {
|
|
99
|
+
const pending = { ...row, actor: JSON.parse(String(row.actorJson)) };
|
|
100
|
+
delete pending.actorJson;
|
|
101
|
+
if (pending.floorRequestId === null)
|
|
102
|
+
delete pending.floorRequestId;
|
|
103
|
+
state.pending[pending.id] = pending;
|
|
104
|
+
}
|
|
105
|
+
for (const row of this.db.prepare('SELECT * FROM tasks').all()) {
|
|
106
|
+
const task = { ...row };
|
|
107
|
+
if (task.resultJson)
|
|
108
|
+
task.result = JSON.parse(task.resultJson);
|
|
109
|
+
if (task.errorJson)
|
|
110
|
+
task.error = JSON.parse(task.errorJson);
|
|
111
|
+
delete task.resultJson;
|
|
112
|
+
delete task.errorJson;
|
|
113
|
+
for (const key of Object.keys(task))
|
|
114
|
+
if (task[key] === null)
|
|
115
|
+
delete task[key];
|
|
116
|
+
state.tasks[task.id] = task;
|
|
117
|
+
}
|
|
118
|
+
return state;
|
|
119
|
+
}
|
|
120
|
+
view(fn) { return fn(this.load()); }
|
|
121
|
+
update(fn) {
|
|
122
|
+
this.db.exec('BEGIN IMMEDIATE');
|
|
123
|
+
try {
|
|
124
|
+
const state = this.load();
|
|
125
|
+
const result = fn(state);
|
|
126
|
+
this.db.exec('DELETE FROM tasks; DELETE FROM pendingCommits; DELETE FROM floorRequests; DELETE FROM resources; DELETE FROM instances; DELETE FROM identities; DELETE FROM projects;');
|
|
127
|
+
const project = this.db.prepare('INSERT INTO projects(id,commonDir,recovering) VALUES(?,?,?)');
|
|
128
|
+
for (const value of Object.values(state.projects))
|
|
129
|
+
project.run(value.id, value.commonDir, value.recovering ? 1 : 0);
|
|
130
|
+
const identity = this.db.prepare('INSERT INTO identities(id,projectId,name) VALUES(?,?,?)');
|
|
131
|
+
for (const value of Object.values(state.identities))
|
|
132
|
+
identity.run(value.id, value.projectId, value.name);
|
|
133
|
+
const instance = this.db.prepare('INSERT INTO instances(id,projectId,identityId,handle,epoch,active,lastSeen) VALUES(?,?,?,?,?,?,?)');
|
|
134
|
+
for (const value of Object.values(state.instances))
|
|
135
|
+
instance.run(value.id, value.projectId, value.identityId, value.handle, value.epoch, value.active ? 1 : 0, value.lastSeen);
|
|
136
|
+
const resource = this.db.prepare('INSERT INTO resources(id,projectId,type,fence,queueSequence,present) VALUES(?,?,?,?,?,?)');
|
|
137
|
+
for (const value of Object.values(state.resources))
|
|
138
|
+
resource.run(value.id, value.projectId, value.type, value.fence, value.queueSequence, value.present ? 1 : 0);
|
|
139
|
+
const request = this.db.prepare(`INSERT INTO floorRequests(id,projectId,resourceId,resourceType,identityId,instanceId,sequence,state,createdAt,updatedAt,queueUntil,
|
|
140
|
+
reconnectUntil,offerId,claimBy,floorId,fence,baseRevision,snapshotCommit,expiresAt,finishedAt,resultJson,purpose,deliveryMode) VALUES(${Array(23).fill('?').join(',')})`);
|
|
141
|
+
for (const value of Object.values(state.requests))
|
|
142
|
+
request.run(value.id, value.projectId, value.resourceId, value.resourceType, value.identityId, value.instanceId, value.sequence, value.state, value.createdAt, value.updatedAt, value.queueUntil, value.reconnectUntil ?? null, value.offerId ?? null, value.claimBy ?? null, value.floorId ?? null, value.fence ?? null, value.baseRevision ?? null, value.snapshotCommit ?? null, value.expiresAt ?? null, value.finishedAt ?? null, value.result ? JSON.stringify(value.result) : null, value.purpose ?? null, value.deliveryMode);
|
|
143
|
+
const pending = this.db.prepare('INSERT INTO pendingCommits(id,projectId,resourceId,resourceType,floorRequestId,startingHead,kind,actorJson) VALUES(?,?,?,?,?,?,?,?)');
|
|
144
|
+
for (const value of Object.values(state.pending))
|
|
145
|
+
pending.run(value.id, value.projectId, value.resourceId, value.resourceType, value.floorRequestId ?? null, value.startingHead, value.kind, JSON.stringify(value.actor));
|
|
146
|
+
const task = this.db.prepare('INSERT INTO tasks(id,projectId,identityId,requestId,status,statusMessage,createdAt,updatedAt,discardAt,resultJson,errorJson) VALUES(?,?,?,?,?,?,?,?,?,?,?)');
|
|
147
|
+
for (const value of Object.values(state.tasks))
|
|
148
|
+
task.run(value.id, value.projectId, value.identityId, value.requestId, value.status, value.statusMessage ?? null, value.createdAt, value.updatedAt, value.discardAt, value.result ? JSON.stringify(value.result) : null, value.error ? JSON.stringify(value.error) : null);
|
|
149
|
+
this.db.prepare("UPDATE controlMeta SET value=? WHERE key='wallClockHighWaterMs'").run(String(state.wallClockHighWaterMs));
|
|
150
|
+
this.db.exec('COMMIT');
|
|
151
|
+
return result;
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
this.db.exec('ROLLBACK');
|
|
155
|
+
throw error;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
close() { this.db.close(); }
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=control.js.map
|