paracosm 0.8.489 → 0.8.492
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 +17 -0
- package/dist/cli/init.js +1 -1
- package/dist/cli/run.js +0 -0
- package/dist/cli/serve.js +0 -0
- package/dist/cli/server/sqlite-run-history-store.d.ts +33 -0
- package/dist/cli/server/sqlite-run-history-store.d.ts.map +1 -1
- package/dist/cli/server/sqlite-run-history-store.js +190 -117
- package/dist/cli/server/sqlite-run-history-store.js.map +1 -1
- package/dist/cli/server-app.d.ts.map +1 -1
- package/dist/cli/server-app.js +31 -14
- package/dist/cli/server-app.js.map +1 -1
- package/dist/cli/session-store.d.ts +49 -14
- package/dist/cli/session-store.d.ts.map +1 -1
- package/dist/cli/session-store.js +108 -69
- package/dist/cli/session-store.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -652,6 +652,23 @@ bun src/index.ts
|
|
|
652
652
|
PARACOSM_OUTPUT_DIR=./artifacts/run-001 bun src/index.ts
|
|
653
653
|
```
|
|
654
654
|
|
|
655
|
+
## Storage backend
|
|
656
|
+
|
|
657
|
+
Paracosm persists run history (the Library tab) and replayable session blobs (the Load menu) through [`@framers/sql-storage-adapter`](https://github.com/framersai/sql-storage-adapter), the open-source SQL abstraction maintained by Frame.dev. The same code paths run unchanged against SQLite (default), Postgres, sql.js, and IndexedDB; switching backends is one env var.
|
|
658
|
+
|
|
659
|
+
```bash
|
|
660
|
+
# Default: better-sqlite3 against ./data/runs.db + ./data/sessions.db
|
|
661
|
+
paracosm dashboard
|
|
662
|
+
|
|
663
|
+
# Postgres in production (Library + sessions persist to your existing cluster)
|
|
664
|
+
STORAGE_ADAPTER=postgres DATABASE_URL=postgres://user:pass@host/db paracosm dashboard
|
|
665
|
+
|
|
666
|
+
# Pure-WASM SQLite fallback when the native module isn't available
|
|
667
|
+
STORAGE_ADAPTER=sqljs paracosm dashboard
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
Run-history schema (`runs` table) and session schema (`sessions` table) are bootstrapped idempotently on first boot. Legacy v0.7 databases auto-migrate the `leader_*` columns to `actor_*` in place via `ALTER TABLE RENAME COLUMN`; no manual step needed.
|
|
671
|
+
|
|
655
672
|
## Seed Enrichment & Citation Flow
|
|
656
673
|
|
|
657
674
|
Pass real-world source material into the compiler and Paracosm grounds the scenario in citations that flow all the way through to department reports.
|
package/dist/cli/init.js
CHANGED
|
@@ -26,7 +26,7 @@ const USAGE = `paracosm init [dir] --domain <text|url> [--mode <m>] [--actors <n
|
|
|
26
26
|
dir output directory (default: ./paracosm-app)
|
|
27
27
|
--domain required: seed text describing the scenario, OR a URL
|
|
28
28
|
--mode turn-loop | batch-trajectory | batch-point (default: turn-loop)
|
|
29
|
-
--actors number of HEXACO
|
|
29
|
+
--actors number of HEXACO actors, 2-6 (default: 3)
|
|
30
30
|
--name project name, default: derived from --domain
|
|
31
31
|
--force overwrite non-empty target dir
|
|
32
32
|
|
package/dist/cli/run.js
CHANGED
|
File without changes
|
package/dist/cli/serve.js
CHANGED
|
File without changes
|
|
@@ -1,6 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQL-backed implementation of {@link RunHistoryStore}, built on
|
|
3
|
+
* `@framers/sql-storage-adapter` so the same code works on SQLite,
|
|
4
|
+
* Postgres, sql.js, and IndexedDB without touching call sites. The
|
|
5
|
+
* default adapter is better-sqlite3 (or sql.js fallback when the
|
|
6
|
+
* native module isn't installable). Set `STORAGE_ADAPTER=postgres`
|
|
7
|
+
* with `DATABASE_URL` to switch backends; the resolver inside
|
|
8
|
+
* sql-storage-adapter handles the rest.
|
|
9
|
+
*
|
|
10
|
+
* Single `runs` table with composite per-filter indexes. Run records
|
|
11
|
+
* are tiny (~200 bytes); 100K rows fits in 20 MB. No retention cap;
|
|
12
|
+
* add `PARACOSM_RUN_HISTORY_MAX_ROWS` env var if traffic ever warrants it.
|
|
13
|
+
*
|
|
14
|
+
* @module paracosm/cli/server/sqlite-run-history-store
|
|
15
|
+
*/
|
|
16
|
+
import { type DatabaseOptions } from '@framers/sql-storage-adapter';
|
|
1
17
|
import type { RunHistoryStore } from './run-history-store.js';
|
|
2
18
|
export interface SqliteRunHistoryStoreOptions {
|
|
19
|
+
/**
|
|
20
|
+
* SQLite database path. Used when the resolver picks better-sqlite3
|
|
21
|
+
* or sql.js. Ignored when STORAGE_ADAPTER selects a remote backend
|
|
22
|
+
* such as Postgres (DATABASE_URL takes precedence there).
|
|
23
|
+
*/
|
|
3
24
|
dbPath: string;
|
|
25
|
+
/**
|
|
26
|
+
* Optional override forwarded to `createDatabase`. Tests use this to
|
|
27
|
+
* pin `type: 'memory'` for hermetic isolation; production code
|
|
28
|
+
* leaves it undefined and lets the env-driven resolver pick.
|
|
29
|
+
*/
|
|
30
|
+
databaseOptions?: DatabaseOptions;
|
|
4
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Build an SQL-backed run history store. Returns a sync handle whose
|
|
34
|
+
* methods are async; the underlying adapter is opened lazily on first
|
|
35
|
+
* call so this factory plugs into the existing sync `createMarsServer`
|
|
36
|
+
* boot path without forcing every caller to become async.
|
|
37
|
+
*/
|
|
5
38
|
export declare function createSqliteRunHistoryStore(options: SqliteRunHistoryStoreOptions): RunHistoryStore;
|
|
6
39
|
//# sourceMappingURL=sqlite-run-history-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-run-history-store.d.ts","sourceRoot":"","sources":["../../../src/cli/server/sqlite-run-history-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sqlite-run-history-store.d.ts","sourceRoot":"","sources":["../../../src/cli/server/sqlite-run-history-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAuC,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAIzG,OAAO,KAAK,EAAmB,eAAe,EAAiB,MAAM,wBAAwB,CAAC;AAE9F,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAuPD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,4BAA4B,GAAG,eAAe,CAqGlG"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* SQL-backed implementation of {@link RunHistoryStore}, built on
|
|
3
|
+
* `@framers/sql-storage-adapter` so the same code works on SQLite,
|
|
4
|
+
* Postgres, sql.js, and IndexedDB without touching call sites. The
|
|
5
|
+
* default adapter is better-sqlite3 (or sql.js fallback when the
|
|
6
|
+
* native module isn't installable). Set `STORAGE_ADAPTER=postgres`
|
|
7
|
+
* with `DATABASE_URL` to switch backends; the resolver inside
|
|
8
|
+
* sql-storage-adapter handles the rest.
|
|
5
9
|
*
|
|
6
|
-
* Single `runs` table with composite per-filter indexes. Run records
|
|
7
|
-
* tiny (~200 bytes); 100K rows fits in 20 MB. No retention cap;
|
|
8
|
-
* `PARACOSM_RUN_HISTORY_MAX_ROWS` env var if traffic ever warrants it.
|
|
10
|
+
* Single `runs` table with composite per-filter indexes. Run records
|
|
11
|
+
* are tiny (~200 bytes); 100K rows fits in 20 MB. No retention cap;
|
|
12
|
+
* add `PARACOSM_RUN_HISTORY_MAX_ROWS` env var if traffic ever warrants it.
|
|
9
13
|
*
|
|
10
14
|
* @module paracosm/cli/server/sqlite-run-history-store
|
|
11
15
|
*/
|
|
12
|
-
import
|
|
16
|
+
import { createDatabase } from '@framers/sql-storage-adapter';
|
|
13
17
|
import { mkdirSync } from 'node:fs';
|
|
14
18
|
import { dirname } from 'node:path';
|
|
15
19
|
const DEFAULT_LIMIT = 50;
|
|
@@ -64,13 +68,50 @@ function rowToRecord(row) {
|
|
|
64
68
|
}
|
|
65
69
|
return record;
|
|
66
70
|
}
|
|
71
|
+
function isSqliteAdapter(adapter) {
|
|
72
|
+
return adapter.kind === 'better-sqlite3' || adapter.kind === 'sqljs';
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* v0.7 -> v0.8 in-place migration. The leader -> actor rename in 0.8.0
|
|
76
|
+
* renamed three columns; legacy production databases still have the
|
|
77
|
+
* old names and would crash boot when the adapter prepares an INSERT
|
|
78
|
+
* referencing actor_*. Rename each in place if the legacy column is
|
|
79
|
+
* present and the new column is absent. Only runs on SQLite — Postgres
|
|
80
|
+
* tenants spin up with the v0.8 schema directly.
|
|
81
|
+
*/
|
|
82
|
+
async function migrateLeaderColumnsToActor(adapter) {
|
|
83
|
+
if (!isSqliteAdapter(adapter))
|
|
84
|
+
return;
|
|
85
|
+
const cols = await adapter.all(`PRAGMA table_info(runs)`);
|
|
86
|
+
const colNames = new Set(cols.map((c) => c.name));
|
|
87
|
+
const renames = [
|
|
88
|
+
['leader_config_hash', 'actor_config_hash'],
|
|
89
|
+
['leader_name', 'actor_name'],
|
|
90
|
+
['leader_archetype', 'actor_archetype'],
|
|
91
|
+
];
|
|
92
|
+
for (const [legacy, modern] of renames) {
|
|
93
|
+
if (colNames.has(legacy) && !colNames.has(modern)) {
|
|
94
|
+
await adapter.exec(`ALTER TABLE runs RENAME COLUMN ${legacy} TO ${modern};`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Drop the legacy index name if it lingered after the rename.
|
|
98
|
+
try {
|
|
99
|
+
await adapter.exec(`DROP INDEX IF EXISTS idx_runs_leader_created;`);
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
void err;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
67
105
|
/**
|
|
68
106
|
* Idempotent column-add migration. SQLite raises "duplicate column name"
|
|
69
107
|
* when the column already exists; we swallow that and propagate any other
|
|
70
108
|
* error. Called from the schema bootstrap on every store creation; safe
|
|
71
|
-
* to run repeatedly.
|
|
109
|
+
* to run repeatedly. SQLite-only — Postgres tenants get the v0.8 columns
|
|
110
|
+
* inline in the CREATE TABLE.
|
|
72
111
|
*/
|
|
73
|
-
function ensureRunsColumns(
|
|
112
|
+
async function ensureRunsColumns(adapter) {
|
|
113
|
+
if (!isSqliteAdapter(adapter))
|
|
114
|
+
return;
|
|
74
115
|
const newCols = [
|
|
75
116
|
['artifact_path', 'TEXT'],
|
|
76
117
|
['cost_usd', 'REAL'],
|
|
@@ -85,7 +126,7 @@ function ensureRunsColumns(db) {
|
|
|
85
126
|
];
|
|
86
127
|
for (const [name, type] of newCols) {
|
|
87
128
|
try {
|
|
88
|
-
|
|
129
|
+
await adapter.exec(`ALTER TABLE runs ADD COLUMN ${name} ${type};`);
|
|
89
130
|
}
|
|
90
131
|
catch (err) {
|
|
91
132
|
const msg = String(err.message ?? err);
|
|
@@ -94,153 +135,186 @@ function ensureRunsColumns(db) {
|
|
|
94
135
|
}
|
|
95
136
|
}
|
|
96
137
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
if (dbPath !== ':memory:')
|
|
100
|
-
mkdirSync(dirname(dbPath), { recursive: true });
|
|
101
|
-
const db = new Database(dbPath);
|
|
102
|
-
db.pragma('journal_mode = WAL');
|
|
103
|
-
db.exec(`
|
|
138
|
+
async function bootstrapSchema(adapter) {
|
|
139
|
+
await adapter.exec(`
|
|
104
140
|
CREATE TABLE IF NOT EXISTS runs (
|
|
105
141
|
run_id TEXT PRIMARY KEY NOT NULL,
|
|
106
142
|
created_at TEXT NOT NULL,
|
|
107
143
|
scenario_id TEXT NOT NULL,
|
|
108
144
|
scenario_version TEXT NOT NULL,
|
|
109
|
-
actor_config_hash
|
|
145
|
+
actor_config_hash TEXT NOT NULL,
|
|
110
146
|
economics_profile TEXT NOT NULL,
|
|
111
147
|
source_mode TEXT NOT NULL,
|
|
112
|
-
created_by TEXT NOT NULL
|
|
148
|
+
created_by TEXT NOT NULL,
|
|
149
|
+
artifact_path TEXT,
|
|
150
|
+
cost_usd REAL,
|
|
151
|
+
duration_ms INTEGER,
|
|
152
|
+
mode TEXT,
|
|
153
|
+
actor_name TEXT,
|
|
154
|
+
actor_archetype TEXT,
|
|
155
|
+
replay_attempts INTEGER DEFAULT 0,
|
|
156
|
+
replay_matches INTEGER DEFAULT 0,
|
|
157
|
+
bundle_id TEXT,
|
|
158
|
+
summary_trajectory TEXT
|
|
113
159
|
);
|
|
114
|
-
CREATE INDEX IF NOT EXISTS idx_runs_created_at ON runs (created_at DESC);
|
|
115
|
-
CREATE INDEX IF NOT EXISTS idx_runs_scenario_created ON runs (scenario_id, created_at DESC);
|
|
116
|
-
CREATE INDEX IF NOT EXISTS idx_runs_actor_created ON runs (actor_config_hash, created_at DESC);
|
|
117
|
-
CREATE INDEX IF NOT EXISTS idx_runs_mode_created ON runs (source_mode, created_at DESC);
|
|
118
160
|
`);
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
161
|
+
await adapter.exec(`CREATE INDEX IF NOT EXISTS idx_runs_created_at ON runs (created_at DESC);`);
|
|
162
|
+
await adapter.exec(`CREATE INDEX IF NOT EXISTS idx_runs_scenario_created ON runs (scenario_id, created_at DESC);`);
|
|
163
|
+
await adapter.exec(`CREATE INDEX IF NOT EXISTS idx_runs_mode_created ON runs (source_mode, created_at DESC);`);
|
|
164
|
+
// Run column-rename migration (0.7 -> 0.8) before the actor_*
|
|
165
|
+
// indexes so SQLite legacy databases get their columns present
|
|
166
|
+
// when the indexes are created.
|
|
167
|
+
await migrateLeaderColumnsToActor(adapter);
|
|
168
|
+
await ensureRunsColumns(adapter);
|
|
169
|
+
for (const indexSql of [
|
|
170
|
+
`CREATE INDEX IF NOT EXISTS idx_runs_actor_created ON runs (actor_config_hash, created_at DESC);`,
|
|
171
|
+
`CREATE INDEX IF NOT EXISTS idx_runs_sim_mode_created ON runs (mode, created_at DESC);`,
|
|
172
|
+
`CREATE INDEX IF NOT EXISTS idx_runs_bundle_created ON runs (bundle_id, created_at ASC);`,
|
|
173
|
+
]) {
|
|
174
|
+
try {
|
|
175
|
+
await adapter.exec(indexSql);
|
|
176
|
+
}
|
|
177
|
+
catch (err) {
|
|
178
|
+
console.warn('[run-history-store] index skipped:', err);
|
|
179
|
+
}
|
|
123
180
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
181
|
+
}
|
|
182
|
+
function buildInsertParams(run) {
|
|
183
|
+
return {
|
|
184
|
+
runId: run.runId,
|
|
185
|
+
createdAt: run.createdAt,
|
|
186
|
+
scenarioId: run.scenarioId,
|
|
187
|
+
scenarioVersion: run.scenarioVersion,
|
|
188
|
+
actorConfigHash: run.actorConfigHash,
|
|
189
|
+
economicsProfile: run.economicsProfile,
|
|
190
|
+
sourceMode: run.sourceMode,
|
|
191
|
+
createdBy: run.createdBy,
|
|
192
|
+
artifactPath: run.artifactPath ?? null,
|
|
193
|
+
costUSD: run.costUSD ?? null,
|
|
194
|
+
durationMs: run.durationMs ?? null,
|
|
195
|
+
mode: run.mode ?? null,
|
|
196
|
+
actorName: run.actorName ?? null,
|
|
197
|
+
actorArchetype: run.actorArchetype ?? null,
|
|
198
|
+
bundleId: run.bundleId ?? null,
|
|
199
|
+
summaryTrajectory: run.summaryTrajectory ? JSON.stringify(run.summaryTrajectory) : null,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
const INSERT_RUN_SQL = `
|
|
203
|
+
INSERT OR IGNORE INTO runs
|
|
204
|
+
(run_id, created_at, scenario_id, scenario_version, actor_config_hash,
|
|
205
|
+
economics_profile, source_mode, created_by,
|
|
206
|
+
artifact_path, cost_usd, duration_ms, mode, actor_name, actor_archetype,
|
|
207
|
+
bundle_id, summary_trajectory)
|
|
208
|
+
VALUES
|
|
209
|
+
(@runId, @createdAt, @scenarioId, @scenarioVersion, @actorConfigHash,
|
|
210
|
+
@economicsProfile, @sourceMode, @createdBy,
|
|
211
|
+
@artifactPath, @costUSD, @durationMs, @mode, @actorName, @actorArchetype,
|
|
212
|
+
@bundleId, @summaryTrajectory)
|
|
213
|
+
`;
|
|
214
|
+
function buildWhere(filters) {
|
|
215
|
+
const clauses = [];
|
|
216
|
+
const params = {};
|
|
217
|
+
if (filters?.mode) {
|
|
218
|
+
clauses.push('mode = @mode');
|
|
219
|
+
params.mode = filters.mode;
|
|
127
220
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
221
|
+
if (filters?.sourceMode) {
|
|
222
|
+
clauses.push('source_mode = @sourceMode');
|
|
223
|
+
params.sourceMode = filters.sourceMode;
|
|
131
224
|
}
|
|
132
|
-
|
|
133
|
-
|
|
225
|
+
if (filters?.scenarioId) {
|
|
226
|
+
clauses.push('scenario_id = @scenarioId');
|
|
227
|
+
params.scenarioId = filters.scenarioId;
|
|
134
228
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
economics_profile, source_mode, created_by,
|
|
139
|
-
artifact_path, cost_usd, duration_ms, mode, actor_name, actor_archetype,
|
|
140
|
-
bundle_id, summary_trajectory)
|
|
141
|
-
VALUES
|
|
142
|
-
(@runId, @createdAt, @scenarioId, @scenarioVersion, @actorConfigHash,
|
|
143
|
-
@economicsProfile, @sourceMode, @createdBy,
|
|
144
|
-
@artifactPath, @costUSD, @durationMs, @mode, @actorName, @actorArchetype,
|
|
145
|
-
@bundleId, @summaryTrajectory)
|
|
146
|
-
`);
|
|
147
|
-
function insertRowParams(run) {
|
|
148
|
-
return {
|
|
149
|
-
runId: run.runId,
|
|
150
|
-
createdAt: run.createdAt,
|
|
151
|
-
scenarioId: run.scenarioId,
|
|
152
|
-
scenarioVersion: run.scenarioVersion,
|
|
153
|
-
actorConfigHash: run.actorConfigHash,
|
|
154
|
-
economicsProfile: run.economicsProfile,
|
|
155
|
-
sourceMode: run.sourceMode,
|
|
156
|
-
createdBy: run.createdBy,
|
|
157
|
-
artifactPath: run.artifactPath ?? null,
|
|
158
|
-
costUSD: run.costUSD ?? null,
|
|
159
|
-
durationMs: run.durationMs ?? null,
|
|
160
|
-
mode: run.mode ?? null,
|
|
161
|
-
actorName: run.actorName ?? null,
|
|
162
|
-
actorArchetype: run.actorArchetype ?? null,
|
|
163
|
-
bundleId: run.bundleId ?? null,
|
|
164
|
-
summaryTrajectory: run.summaryTrajectory ? JSON.stringify(run.summaryTrajectory) : null,
|
|
165
|
-
};
|
|
229
|
+
if (filters?.actorConfigHash) {
|
|
230
|
+
clauses.push('actor_config_hash = @actorConfigHash');
|
|
231
|
+
params.actorConfigHash = filters.actorConfigHash;
|
|
166
232
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
233
|
+
if (filters?.q) {
|
|
234
|
+
clauses.push('(scenario_id LIKE @q OR actor_name LIKE @q OR actor_archetype LIKE @q)');
|
|
235
|
+
params.q = `%${filters.q}%`;
|
|
236
|
+
}
|
|
237
|
+
if (filters?.bundleId) {
|
|
238
|
+
clauses.push('bundle_id = @bundleId');
|
|
239
|
+
params.bundleId = filters.bundleId;
|
|
240
|
+
}
|
|
241
|
+
return {
|
|
242
|
+
where: clauses.length > 0 ? `WHERE ${clauses.join(' AND ')}` : '',
|
|
243
|
+
params,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Build an SQL-backed run history store. Returns a sync handle whose
|
|
248
|
+
* methods are async; the underlying adapter is opened lazily on first
|
|
249
|
+
* call so this factory plugs into the existing sync `createMarsServer`
|
|
250
|
+
* boot path without forcing every caller to become async.
|
|
251
|
+
*/
|
|
252
|
+
export function createSqliteRunHistoryStore(options) {
|
|
253
|
+
const { dbPath, databaseOptions } = options;
|
|
254
|
+
if (dbPath !== ':memory:' && !databaseOptions?.type && dbPath) {
|
|
255
|
+
// Pre-create the parent directory for SQLite paths so the first
|
|
256
|
+
// adapter open doesn't crash on a missing folder.
|
|
257
|
+
try {
|
|
258
|
+
mkdirSync(dirname(dbPath), { recursive: true });
|
|
188
259
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
params.q = `%${filters.q}%`;
|
|
260
|
+
catch (err) {
|
|
261
|
+
void err;
|
|
192
262
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
263
|
+
}
|
|
264
|
+
let adapterPromise = null;
|
|
265
|
+
function getAdapter() {
|
|
266
|
+
if (!adapterPromise) {
|
|
267
|
+
adapterPromise = (async () => {
|
|
268
|
+
const adapter = await createDatabase(databaseOptions ?? { file: dbPath });
|
|
269
|
+
await bootstrapSchema(adapter);
|
|
270
|
+
return adapter;
|
|
271
|
+
})();
|
|
196
272
|
}
|
|
197
|
-
return
|
|
198
|
-
where: clauses.length > 0 ? `WHERE ${clauses.join(' AND ')}` : '',
|
|
199
|
-
params,
|
|
200
|
-
};
|
|
273
|
+
return adapterPromise;
|
|
201
274
|
}
|
|
202
275
|
return {
|
|
203
276
|
async insertRun(run) {
|
|
204
|
-
|
|
277
|
+
const adapter = await getAdapter();
|
|
278
|
+
await adapter.run(INSERT_RUN_SQL, buildInsertParams(run));
|
|
205
279
|
},
|
|
206
280
|
async listRuns(filters) {
|
|
281
|
+
const adapter = await getAdapter();
|
|
207
282
|
const { where, params } = buildWhere(filters);
|
|
208
283
|
const limit = clampLimit(filters?.limit);
|
|
209
284
|
const offset = clampOffset(filters?.offset);
|
|
210
285
|
const sql = `SELECT * FROM runs ${where} ORDER BY created_at DESC LIMIT @__limit OFFSET @__offset`;
|
|
211
|
-
const rows =
|
|
212
|
-
.prepare(sql)
|
|
213
|
-
.all({ ...params, __limit: limit, __offset: offset });
|
|
286
|
+
const rows = await adapter.all(sql, { ...params, __limit: limit, __offset: offset });
|
|
214
287
|
return rows.map(rowToRecord);
|
|
215
288
|
},
|
|
216
289
|
async getRun(runId) {
|
|
217
|
-
const
|
|
290
|
+
const adapter = await getAdapter();
|
|
291
|
+
const row = await adapter.get(`SELECT * FROM runs WHERE run_id = ?`, [runId]);
|
|
218
292
|
return row ? rowToRecord(row) : null;
|
|
219
293
|
},
|
|
220
294
|
async listRunsByBundleId(bundleId) {
|
|
221
|
-
const
|
|
222
|
-
|
|
223
|
-
.all(bundleId);
|
|
295
|
+
const adapter = await getAdapter();
|
|
296
|
+
const rows = await adapter.all(`SELECT * FROM runs WHERE bundle_id = ? ORDER BY created_at ASC`, [bundleId]);
|
|
224
297
|
return rows.map(rowToRecord);
|
|
225
298
|
},
|
|
226
299
|
async countRuns(filters) {
|
|
300
|
+
const adapter = await getAdapter();
|
|
227
301
|
const { where, params } = buildWhere(filters);
|
|
228
|
-
const
|
|
229
|
-
const row = db.prepare(sql).get(params);
|
|
302
|
+
const row = await adapter.get(`SELECT COUNT(*) AS n FROM runs ${where}`, params);
|
|
230
303
|
return row?.n ?? 0;
|
|
231
304
|
},
|
|
232
305
|
async aggregateStats(filters) {
|
|
306
|
+
const adapter = await getAdapter();
|
|
233
307
|
const { where, params } = buildWhere(filters);
|
|
234
308
|
const sql = `
|
|
235
309
|
SELECT
|
|
236
|
-
COUNT(*)
|
|
237
|
-
COALESCE(SUM(cost_usd), 0)
|
|
238
|
-
COALESCE(SUM(duration_ms), 0)
|
|
310
|
+
COUNT(*) AS total_runs,
|
|
311
|
+
COALESCE(SUM(cost_usd), 0) AS total_cost_usd,
|
|
312
|
+
COALESCE(SUM(duration_ms), 0) AS total_duration_ms,
|
|
239
313
|
COALESCE(SUM(replay_attempts), 0) AS replays_attempted,
|
|
240
314
|
COALESCE(SUM(replay_matches), 0) AS replays_matched
|
|
241
315
|
FROM runs ${where}
|
|
242
316
|
`;
|
|
243
|
-
const row =
|
|
317
|
+
const row = await adapter.get(sql, params);
|
|
244
318
|
return {
|
|
245
319
|
totalRuns: Number(row?.total_runs ?? 0),
|
|
246
320
|
totalCostUSD: Number(row?.total_cost_usd ?? 0),
|
|
@@ -250,12 +324,11 @@ export function createSqliteRunHistoryStore(options) {
|
|
|
250
324
|
};
|
|
251
325
|
},
|
|
252
326
|
async recordReplayResult(runId, matches) {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
`).run(matches ? 1 : 0, runId);
|
|
327
|
+
const adapter = await getAdapter();
|
|
328
|
+
await adapter.run(`UPDATE runs
|
|
329
|
+
SET replay_attempts = COALESCE(replay_attempts, 0) + 1,
|
|
330
|
+
replay_matches = COALESCE(replay_matches, 0) + ?
|
|
331
|
+
WHERE run_id = ?`, [matches ? 1 : 0, runId]);
|
|
259
332
|
},
|
|
260
333
|
};
|
|
261
334
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-run-history-store.js","sourceRoot":"","sources":["../../../src/cli/server/sqlite-run-history-store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sqlite-run-history-store.js","sourceRoot":"","sources":["../../../src/cli/server/sqlite-run-history-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-app.d.ts","sourceRoot":"","sources":["../../src/cli/server-app.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server-app.d.ts","sourceRoot":"","sources":["../../src/cli/server-app.ts"],"names":[],"mappings":"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"}
|