paracosm 0.7.409 → 0.7.443
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 +79 -14
- package/dist/cli/compile.d.ts +1 -1
- package/dist/cli/compile.js +4 -4
- package/dist/cli/fetch-seed-url.d.ts +48 -0
- package/dist/cli/fetch-seed-url.d.ts.map +1 -0
- package/dist/cli/fetch-seed-url.js +109 -0
- package/dist/cli/fetch-seed-url.js.map +1 -0
- package/dist/cli/fork-preconditions.d.ts +17 -0
- package/dist/cli/fork-preconditions.d.ts.map +1 -0
- package/dist/cli/fork-preconditions.js +51 -0
- package/dist/cli/fork-preconditions.js.map +1 -0
- package/dist/cli/init-templates.d.ts +43 -0
- package/dist/cli/init-templates.d.ts.map +1 -0
- package/dist/cli/init-templates.js +141 -0
- package/dist/cli/init-templates.js.map +1 -0
- package/dist/cli/init.d.ts +46 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +207 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/pair-runner.d.ts +25 -2
- package/dist/cli/pair-runner.d.ts.map +1 -1
- package/dist/cli/pair-runner.js +141 -5
- package/dist/cli/pair-runner.js.map +1 -1
- package/dist/cli/quickstart-routes.d.ts +35 -0
- package/dist/cli/quickstart-routes.d.ts.map +1 -0
- package/dist/cli/quickstart-routes.js +100 -0
- package/dist/cli/quickstart-routes.js.map +1 -0
- package/dist/cli/run.js +8 -0
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/server/enrich-run-record.d.ts +22 -0
- package/dist/cli/server/enrich-run-record.d.ts.map +1 -0
- package/dist/cli/server/enrich-run-record.js +27 -0
- package/dist/cli/server/enrich-run-record.js.map +1 -0
- package/dist/cli/server/routes/platform-api.d.ts +19 -3
- package/dist/cli/server/routes/platform-api.d.ts.map +1 -1
- package/dist/cli/server/routes/platform-api.js +174 -5
- package/dist/cli/server/routes/platform-api.js.map +1 -1
- package/dist/cli/server/run-history-store.d.ts +27 -1
- package/dist/cli/server/run-history-store.d.ts.map +1 -1
- package/dist/cli/server/run-history-store.js +5 -0
- package/dist/cli/server/run-history-store.js.map +1 -1
- package/dist/cli/server/run-record.d.ts +13 -0
- package/dist/cli/server/run-record.d.ts.map +1 -1
- package/dist/cli/server/run-record.js.map +1 -1
- package/dist/cli/server/sqlite-run-history-store.d.ts +6 -0
- package/dist/cli/server/sqlite-run-history-store.d.ts.map +1 -0
- package/dist/cli/server/sqlite-run-history-store.js +226 -0
- package/dist/cli/server/sqlite-run-history-store.js.map +1 -0
- package/dist/cli/server-app.d.ts +73 -2
- package/dist/cli/server-app.d.ts.map +1 -1
- package/dist/cli/server-app.js +409 -159
- package/dist/cli/server-app.js.map +1 -1
- package/dist/cli/session-title.js +1 -1
- package/dist/cli/sim-config.d.ts +13 -0
- package/dist/cli/sim-config.d.ts.map +1 -1
- package/dist/cli/sim-config.js +16 -3
- package/dist/cli/sim-config.js.map +1 -1
- package/dist/cli/simulate-route.d.ts +103 -0
- package/dist/cli/simulate-route.d.ts.map +1 -0
- package/dist/cli/simulate-route.js +95 -0
- package/dist/cli/simulate-route.js.map +1 -0
- package/dist/engine/compiler/cache.d.ts +2 -2
- package/dist/engine/compiler/cache.js +2 -2
- package/dist/engine/compiler/compile-from-seed.d.ts +78 -0
- package/dist/engine/compiler/compile-from-seed.d.ts.map +1 -0
- package/dist/engine/compiler/compile-from-seed.js +93 -0
- package/dist/engine/compiler/compile-from-seed.js.map +1 -0
- package/dist/engine/compiler/generate-fingerprint.d.ts.map +1 -1
- package/dist/engine/compiler/generate-fingerprint.js +3 -6
- package/dist/engine/compiler/generate-fingerprint.js.map +1 -1
- package/dist/engine/compiler/generate-politics.d.ts.map +1 -1
- package/dist/engine/compiler/generate-politics.js +3 -6
- package/dist/engine/compiler/generate-politics.js.map +1 -1
- package/dist/engine/compiler/generate-progression.d.ts +10 -1
- package/dist/engine/compiler/generate-progression.d.ts.map +1 -1
- package/dist/engine/compiler/generate-progression.js +15 -15
- package/dist/engine/compiler/generate-progression.js.map +1 -1
- package/dist/engine/compiler/generate-prompts.d.ts.map +1 -1
- package/dist/engine/compiler/generate-prompts.js +4 -7
- package/dist/engine/compiler/generate-prompts.js.map +1 -1
- package/dist/engine/compiler/generate-reactions.d.ts.map +1 -1
- package/dist/engine/compiler/generate-reactions.js +3 -6
- package/dist/engine/compiler/generate-reactions.js.map +1 -1
- package/dist/engine/compiler/index.d.ts +9 -6
- package/dist/engine/compiler/index.d.ts.map +1 -1
- package/dist/engine/compiler/index.js +9 -6
- package/dist/engine/compiler/index.js.map +1 -1
- package/dist/engine/compiler/sandbox-runner.d.ts +40 -0
- package/dist/engine/compiler/sandbox-runner.d.ts.map +1 -0
- package/dist/engine/compiler/sandbox-runner.js +278 -0
- package/dist/engine/compiler/sandbox-runner.js.map +1 -0
- package/dist/engine/compiler/scenario-fixture.d.ts +4 -4
- package/dist/engine/compiler/scenario-fixture.js +4 -4
- package/dist/engine/compiler/seed-ingestion.d.ts +2 -2
- package/dist/engine/compiler/seed-ingestion.js +2 -2
- package/dist/engine/compiler/state-shape-block.d.ts +1 -1
- package/dist/engine/compiler/state-shape-block.js +5 -5
- package/dist/engine/compiler/types.d.ts +2 -2
- package/dist/engine/compiler/types.d.ts.map +1 -1
- package/dist/engine/compiler/validate.js +1 -1
- package/dist/engine/core/kernel.d.ts +4 -4
- package/dist/engine/core/kernel.js +6 -6
- package/dist/engine/core/progression.d.ts +3 -3
- package/dist/engine/core/progression.js +21 -21
- package/dist/engine/core/state.d.ts +7 -5
- package/dist/engine/core/state.d.ts.map +1 -1
- package/dist/engine/digital-twin/index.d.ts +41 -0
- package/dist/engine/digital-twin/index.d.ts.map +1 -0
- package/dist/engine/digital-twin/index.js +40 -0
- package/dist/engine/digital-twin/index.js.map +1 -0
- package/dist/engine/index.d.ts +1 -1
- package/dist/engine/leader-presets.d.ts +39 -0
- package/dist/engine/leader-presets.d.ts.map +1 -0
- package/dist/engine/leader-presets.js +118 -0
- package/dist/engine/leader-presets.js.map +1 -0
- package/dist/engine/lunar/fingerprint.js +2 -2
- package/dist/engine/lunar/prompts.js +2 -2
- package/dist/engine/mars/fingerprint.js +1 -1
- package/dist/engine/mars/metrics.d.ts +2 -2
- package/dist/engine/mars/metrics.js +2 -2
- package/dist/engine/mars/prompts.js +3 -3
- package/dist/runtime/build-artifact.d.ts +2 -1
- package/dist/runtime/build-artifact.d.ts.map +1 -1
- package/dist/runtime/build-artifact.js +2 -1
- package/dist/runtime/build-artifact.js.map +1 -1
- package/dist/runtime/canonical-json.d.ts +25 -0
- package/dist/runtime/canonical-json.d.ts.map +1 -0
- package/dist/runtime/canonical-json.js +46 -0
- package/dist/runtime/canonical-json.js.map +1 -0
- package/dist/runtime/contracts.d.ts +1 -1
- package/dist/runtime/departments.js +1 -1
- package/dist/runtime/orchestrator.d.ts +44 -4
- package/dist/runtime/orchestrator.d.ts.map +1 -1
- package/dist/runtime/orchestrator.js +125 -33
- package/dist/runtime/orchestrator.js.map +1 -1
- package/dist/runtime/parsers.js +5 -5
- package/dist/runtime/reaction-step.js +2 -2
- package/dist/runtime/world-model/index.d.ts +172 -18
- package/dist/runtime/world-model/index.d.ts.map +1 -1
- package/dist/runtime/world-model/index.js +242 -4
- package/dist/runtime/world-model/index.js.map +1 -1
- package/dist/runtime/world-snapshot.d.ts +13 -0
- package/dist/runtime/world-snapshot.d.ts.map +1 -0
- package/dist/runtime/world-snapshot.js +19 -0
- package/dist/runtime/world-snapshot.js.map +1 -0
- package/package.json +19 -4
|
@@ -3,6 +3,11 @@ export function createNoopRunHistoryStore() {
|
|
|
3
3
|
async insertRun() { },
|
|
4
4
|
async listRuns() { return []; },
|
|
5
5
|
async getRun() { return null; },
|
|
6
|
+
async countRuns() { return 0; },
|
|
7
|
+
async aggregateStats() {
|
|
8
|
+
return { totalRuns: 0, totalCostUSD: 0, totalDurationMs: 0, replaysAttempted: 0, replaysMatched: 0 };
|
|
9
|
+
},
|
|
10
|
+
async recordReplayResult() { },
|
|
6
11
|
};
|
|
7
12
|
}
|
|
8
13
|
//# sourceMappingURL=run-history-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-history-store.js","sourceRoot":"","sources":["../../../src/cli/server/run-history-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-history-store.js","sourceRoot":"","sources":["../../../src/cli/server/run-history-store.ts"],"names":[],"mappings":"AAoCA,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,KAAK,CAAC,SAAS,KAAI,CAAC;QACpB,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/B,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;QAC/B,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAK,CAAC,cAAc;YAClB,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;QACvG,CAAC;QACD,KAAK,CAAC,kBAAkB,KAAI,CAAC;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -8,6 +8,19 @@ export interface RunRecord {
|
|
|
8
8
|
economicsProfile: string;
|
|
9
9
|
sourceMode: ParacosmServerMode;
|
|
10
10
|
createdBy: 'anonymous' | 'user' | 'service';
|
|
11
|
+
/** Absolute path to the on-disk RunArtifact JSON. Undefined for legacy
|
|
12
|
+
* runs whose path was not preserved. New runs always populate this. */
|
|
13
|
+
artifactPath?: string;
|
|
14
|
+
/** Total cost in USD captured from artifact.cost.totalUSD at insert time. */
|
|
15
|
+
costUSD?: number;
|
|
16
|
+
/** Wall-clock duration of the run in milliseconds. */
|
|
17
|
+
durationMs?: number;
|
|
18
|
+
/** Simulation mode captured from artifact.metadata.mode. */
|
|
19
|
+
mode?: 'turn-loop' | 'batch-trajectory' | 'batch-point';
|
|
20
|
+
/** Captured leader display name for the gallery card. */
|
|
21
|
+
leaderName?: string;
|
|
22
|
+
/** Captured leader archetype for the gallery card. */
|
|
23
|
+
leaderArchetype?: string;
|
|
11
24
|
}
|
|
12
25
|
export declare function createRunRecord(input: Omit<RunRecord, 'runId' | 'createdAt'>): RunRecord;
|
|
13
26
|
export declare function hashLeaderConfig(input: unknown): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-record.d.ts","sourceRoot":"","sources":["../../../src/cli/server/run-record.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,SAAS,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"run-record.d.ts","sourceRoot":"","sources":["../../../src/cli/server/run-record.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,SAAS,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C;4EACwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,WAAW,GAAG,kBAAkB,GAAG,aAAa,CAAC;IACxD,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,WAAW,CAAC,GAAG,SAAS,CAMxF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-record.js","sourceRoot":"","sources":["../../../src/cli/server/run-record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"run-record.js","sourceRoot":"","sources":["../../../src/cli/server/run-record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA2BrD,MAAM,UAAU,eAAe,CAAC,KAA6C;IAC3E,OAAO;QACL,KAAK,EAAE,OAAO,UAAU,EAAE,EAAE;QAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,GAAG,KAAK;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,WAAW,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACpG,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { RunHistoryStore } from './run-history-store.js';
|
|
2
|
+
export interface SqliteRunHistoryStoreOptions {
|
|
3
|
+
dbPath: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function createSqliteRunHistoryStore(options: SqliteRunHistoryStoreOptions): RunHistoryStore;
|
|
6
|
+
//# sourceMappingURL=sqlite-run-history-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-run-history-store.d.ts","sourceRoot":"","sources":["../../../src/cli/server/sqlite-run-history-store.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAmB,eAAe,EAAiB,MAAM,wBAAwB,CAAC;AAE9F,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;CAChB;AAmFD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,4BAA4B,GAAG,eAAe,CA6JlG"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite-backed implementation of {@link RunHistoryStore}. Mirrors the
|
|
3
|
+
* session-store pattern: better-sqlite3, WAL mode, prepared statements,
|
|
4
|
+
* `:memory:` path support for clean test isolation.
|
|
5
|
+
*
|
|
6
|
+
* Single `runs` table with composite per-filter indexes. Run records are
|
|
7
|
+
* tiny (~200 bytes); 100K rows fits in 20 MB. No retention cap; add
|
|
8
|
+
* `PARACOSM_RUN_HISTORY_MAX_ROWS` env var if traffic ever warrants it.
|
|
9
|
+
*
|
|
10
|
+
* @module paracosm/cli/server/sqlite-run-history-store
|
|
11
|
+
*/
|
|
12
|
+
import Database from 'better-sqlite3';
|
|
13
|
+
import { mkdirSync } from 'node:fs';
|
|
14
|
+
import { dirname } from 'node:path';
|
|
15
|
+
const DEFAULT_LIMIT = 50;
|
|
16
|
+
const MAX_LIMIT = 500;
|
|
17
|
+
function clampLimit(raw) {
|
|
18
|
+
if (raw === undefined || !Number.isFinite(raw) || raw <= 0)
|
|
19
|
+
return DEFAULT_LIMIT;
|
|
20
|
+
return Math.min(MAX_LIMIT, Math.floor(raw));
|
|
21
|
+
}
|
|
22
|
+
function clampOffset(raw) {
|
|
23
|
+
if (raw === undefined || !Number.isFinite(raw) || raw < 0)
|
|
24
|
+
return 0;
|
|
25
|
+
return Math.floor(raw);
|
|
26
|
+
}
|
|
27
|
+
function rowToRecord(row) {
|
|
28
|
+
// Omit undefined optional fields so deepEqual against records constructed
|
|
29
|
+
// without those fields succeeds. Spread only when value is non-null.
|
|
30
|
+
const record = {
|
|
31
|
+
runId: row.run_id,
|
|
32
|
+
createdAt: row.created_at,
|
|
33
|
+
scenarioId: row.scenario_id,
|
|
34
|
+
scenarioVersion: row.scenario_version,
|
|
35
|
+
leaderConfigHash: row.leader_config_hash,
|
|
36
|
+
economicsProfile: row.economics_profile,
|
|
37
|
+
sourceMode: row.source_mode,
|
|
38
|
+
createdBy: row.created_by,
|
|
39
|
+
};
|
|
40
|
+
if (row.artifact_path !== null)
|
|
41
|
+
record.artifactPath = row.artifact_path;
|
|
42
|
+
if (row.cost_usd !== null)
|
|
43
|
+
record.costUSD = row.cost_usd;
|
|
44
|
+
if (row.duration_ms !== null)
|
|
45
|
+
record.durationMs = row.duration_ms;
|
|
46
|
+
if (row.mode !== null)
|
|
47
|
+
record.mode = row.mode;
|
|
48
|
+
if (row.leader_name !== null)
|
|
49
|
+
record.leaderName = row.leader_name;
|
|
50
|
+
if (row.leader_archetype !== null)
|
|
51
|
+
record.leaderArchetype = row.leader_archetype;
|
|
52
|
+
return record;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Idempotent column-add migration. SQLite raises "duplicate column name"
|
|
56
|
+
* when the column already exists; we swallow that and propagate any other
|
|
57
|
+
* error. Called from the schema bootstrap on every store creation; safe
|
|
58
|
+
* to run repeatedly.
|
|
59
|
+
*/
|
|
60
|
+
function ensureRunsColumns(db) {
|
|
61
|
+
const newCols = [
|
|
62
|
+
['artifact_path', 'TEXT'],
|
|
63
|
+
['cost_usd', 'REAL'],
|
|
64
|
+
['duration_ms', 'INTEGER'],
|
|
65
|
+
['mode', 'TEXT'],
|
|
66
|
+
['leader_name', 'TEXT'],
|
|
67
|
+
['leader_archetype', 'TEXT'],
|
|
68
|
+
['replay_attempts', 'INTEGER DEFAULT 0'],
|
|
69
|
+
['replay_matches', 'INTEGER DEFAULT 0'],
|
|
70
|
+
];
|
|
71
|
+
for (const [name, type] of newCols) {
|
|
72
|
+
try {
|
|
73
|
+
db.exec(`ALTER TABLE runs ADD COLUMN ${name} ${type};`);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
const msg = String(err.message ?? err);
|
|
77
|
+
if (!msg.includes('duplicate column name'))
|
|
78
|
+
throw err;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
export function createSqliteRunHistoryStore(options) {
|
|
83
|
+
const { dbPath } = options;
|
|
84
|
+
if (dbPath !== ':memory:')
|
|
85
|
+
mkdirSync(dirname(dbPath), { recursive: true });
|
|
86
|
+
const db = new Database(dbPath);
|
|
87
|
+
db.pragma('journal_mode = WAL');
|
|
88
|
+
db.exec(`
|
|
89
|
+
CREATE TABLE IF NOT EXISTS runs (
|
|
90
|
+
run_id TEXT PRIMARY KEY NOT NULL,
|
|
91
|
+
created_at TEXT NOT NULL,
|
|
92
|
+
scenario_id TEXT NOT NULL,
|
|
93
|
+
scenario_version TEXT NOT NULL,
|
|
94
|
+
leader_config_hash TEXT NOT NULL,
|
|
95
|
+
economics_profile TEXT NOT NULL,
|
|
96
|
+
source_mode TEXT NOT NULL,
|
|
97
|
+
created_by TEXT NOT NULL
|
|
98
|
+
);
|
|
99
|
+
CREATE INDEX IF NOT EXISTS idx_runs_created_at ON runs (created_at DESC);
|
|
100
|
+
CREATE INDEX IF NOT EXISTS idx_runs_scenario_created ON runs (scenario_id, created_at DESC);
|
|
101
|
+
CREATE INDEX IF NOT EXISTS idx_runs_leader_created ON runs (leader_config_hash, created_at DESC);
|
|
102
|
+
CREATE INDEX IF NOT EXISTS idx_runs_mode_created ON runs (source_mode, created_at DESC);
|
|
103
|
+
`);
|
|
104
|
+
ensureRunsColumns(db);
|
|
105
|
+
// Index for filtering by simulation mode (Library tab).
|
|
106
|
+
try {
|
|
107
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_runs_sim_mode_created ON runs (mode, created_at DESC);`);
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
// Index creation may fail if mode column was just added; ignore.
|
|
111
|
+
void err;
|
|
112
|
+
}
|
|
113
|
+
const insertStmt = db.prepare(`
|
|
114
|
+
INSERT OR IGNORE INTO runs
|
|
115
|
+
(run_id, created_at, scenario_id, scenario_version, leader_config_hash,
|
|
116
|
+
economics_profile, source_mode, created_by,
|
|
117
|
+
artifact_path, cost_usd, duration_ms, mode, leader_name, leader_archetype)
|
|
118
|
+
VALUES
|
|
119
|
+
(@runId, @createdAt, @scenarioId, @scenarioVersion, @leaderConfigHash,
|
|
120
|
+
@economicsProfile, @sourceMode, @createdBy,
|
|
121
|
+
@artifactPath, @costUSD, @durationMs, @mode, @leaderName, @leaderArchetype)
|
|
122
|
+
`);
|
|
123
|
+
function insertRowParams(run) {
|
|
124
|
+
return {
|
|
125
|
+
runId: run.runId,
|
|
126
|
+
createdAt: run.createdAt,
|
|
127
|
+
scenarioId: run.scenarioId,
|
|
128
|
+
scenarioVersion: run.scenarioVersion,
|
|
129
|
+
leaderConfigHash: run.leaderConfigHash,
|
|
130
|
+
economicsProfile: run.economicsProfile,
|
|
131
|
+
sourceMode: run.sourceMode,
|
|
132
|
+
createdBy: run.createdBy,
|
|
133
|
+
artifactPath: run.artifactPath ?? null,
|
|
134
|
+
costUSD: run.costUSD ?? null,
|
|
135
|
+
durationMs: run.durationMs ?? null,
|
|
136
|
+
mode: run.mode ?? null,
|
|
137
|
+
leaderName: run.leaderName ?? null,
|
|
138
|
+
leaderArchetype: run.leaderArchetype ?? null,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
const getStmt = db.prepare(`SELECT * FROM runs WHERE run_id = ?`);
|
|
142
|
+
function buildWhere(filters) {
|
|
143
|
+
const clauses = [];
|
|
144
|
+
const params = {};
|
|
145
|
+
// Simulation mode filter (artifact.metadata.mode column).
|
|
146
|
+
if (filters?.mode) {
|
|
147
|
+
clauses.push('mode = @mode');
|
|
148
|
+
params.mode = filters.mode;
|
|
149
|
+
}
|
|
150
|
+
// Server source mode filter (source_mode column). Distinct from above.
|
|
151
|
+
if (filters?.sourceMode) {
|
|
152
|
+
clauses.push('source_mode = @sourceMode');
|
|
153
|
+
params.sourceMode = filters.sourceMode;
|
|
154
|
+
}
|
|
155
|
+
if (filters?.scenarioId) {
|
|
156
|
+
clauses.push('scenario_id = @scenarioId');
|
|
157
|
+
params.scenarioId = filters.scenarioId;
|
|
158
|
+
}
|
|
159
|
+
if (filters?.leaderConfigHash) {
|
|
160
|
+
clauses.push('leader_config_hash = @leaderConfigHash');
|
|
161
|
+
params.leaderConfigHash = filters.leaderConfigHash;
|
|
162
|
+
}
|
|
163
|
+
if (filters?.q) {
|
|
164
|
+
clauses.push('(scenario_id LIKE @q OR leader_name LIKE @q OR leader_archetype LIKE @q)');
|
|
165
|
+
params.q = `%${filters.q}%`;
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
where: clauses.length > 0 ? `WHERE ${clauses.join(' AND ')}` : '',
|
|
169
|
+
params,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
async insertRun(run) {
|
|
174
|
+
insertStmt.run(insertRowParams(run));
|
|
175
|
+
},
|
|
176
|
+
async listRuns(filters) {
|
|
177
|
+
const { where, params } = buildWhere(filters);
|
|
178
|
+
const limit = clampLimit(filters?.limit);
|
|
179
|
+
const offset = clampOffset(filters?.offset);
|
|
180
|
+
const sql = `SELECT * FROM runs ${where} ORDER BY created_at DESC LIMIT @__limit OFFSET @__offset`;
|
|
181
|
+
const rows = db
|
|
182
|
+
.prepare(sql)
|
|
183
|
+
.all({ ...params, __limit: limit, __offset: offset });
|
|
184
|
+
return rows.map(rowToRecord);
|
|
185
|
+
},
|
|
186
|
+
async getRun(runId) {
|
|
187
|
+
const row = getStmt.get(runId);
|
|
188
|
+
return row ? rowToRecord(row) : null;
|
|
189
|
+
},
|
|
190
|
+
async countRuns(filters) {
|
|
191
|
+
const { where, params } = buildWhere(filters);
|
|
192
|
+
const sql = `SELECT COUNT(*) AS n FROM runs ${where}`;
|
|
193
|
+
const row = db.prepare(sql).get(params);
|
|
194
|
+
return row?.n ?? 0;
|
|
195
|
+
},
|
|
196
|
+
async aggregateStats(filters) {
|
|
197
|
+
const { where, params } = buildWhere(filters);
|
|
198
|
+
const sql = `
|
|
199
|
+
SELECT
|
|
200
|
+
COUNT(*) AS total_runs,
|
|
201
|
+
COALESCE(SUM(cost_usd), 0) AS total_cost_usd,
|
|
202
|
+
COALESCE(SUM(duration_ms), 0) AS total_duration_ms,
|
|
203
|
+
COALESCE(SUM(replay_attempts), 0) AS replays_attempted,
|
|
204
|
+
COALESCE(SUM(replay_matches), 0) AS replays_matched
|
|
205
|
+
FROM runs ${where}
|
|
206
|
+
`;
|
|
207
|
+
const row = db.prepare(sql).get(params);
|
|
208
|
+
return {
|
|
209
|
+
totalRuns: Number(row?.total_runs ?? 0),
|
|
210
|
+
totalCostUSD: Number(row?.total_cost_usd ?? 0),
|
|
211
|
+
totalDurationMs: Number(row?.total_duration_ms ?? 0),
|
|
212
|
+
replaysAttempted: Number(row?.replays_attempted ?? 0),
|
|
213
|
+
replaysMatched: Number(row?.replays_matched ?? 0),
|
|
214
|
+
};
|
|
215
|
+
},
|
|
216
|
+
async recordReplayResult(runId, matches) {
|
|
217
|
+
db.prepare(`
|
|
218
|
+
UPDATE runs
|
|
219
|
+
SET replay_attempts = COALESCE(replay_attempts, 0) + 1,
|
|
220
|
+
replay_matches = COALESCE(replay_matches, 0) + ?
|
|
221
|
+
WHERE run_id = ?
|
|
222
|
+
`).run(matches ? 1 : 0, runId);
|
|
223
|
+
},
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=sqlite-run-history-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-run-history-store.js","sourceRoot":"","sources":["../../../src/cli/server/sqlite-run-history-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,SAAS,UAAU,CAAC,GAAuB;IACzC,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC;IACjF,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,WAAW,CAAC,GAAuB;IAC1C,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAqBD,SAAS,WAAW,CAAC,GAAW;IAC9B,0EAA0E;IAC1E,qEAAqE;IACrE,MAAM,MAAM,GAAc;QACxB,KAAK,EAAE,GAAG,CAAC,MAAM;QACjB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,gBAAgB,EAAE,GAAG,CAAC,kBAAkB;QACxC,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;QACvC,UAAU,EAAE,GAAG,CAAC,WAAsC;QACtD,SAAS,EAAE,GAAG,CAAC,UAAoC;KACpD,CAAC;IACF,IAAI,GAAG,CAAC,aAAa,KAAK,IAAI;QAAE,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,aAAa,CAAC;IACxE,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI;QAAE,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC;IACzD,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC;IAClE,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI;QAAE,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,IAAyB,CAAC;IACnE,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC;IAClE,IAAI,GAAG,CAAC,gBAAgB,KAAK,IAAI;QAAE,MAAM,CAAC,eAAe,GAAG,GAAG,CAAC,gBAAgB,CAAC;IACjF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,EAAqB;IAC9C,MAAM,OAAO,GAA6C;QACxD,CAAC,eAAe,EAAE,MAAM,CAAC;QACzB,CAAC,UAAU,EAAE,MAAM,CAAC;QACpB,CAAC,aAAa,EAAE,SAAS,CAAC;QAC1B,CAAC,MAAM,EAAE,MAAM,CAAC;QAChB,CAAC,aAAa,EAAE,MAAM,CAAC;QACvB,CAAC,kBAAkB,EAAE,MAAM,CAAC;QAC5B,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;QACxC,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;KACxC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,+BAA+B,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,MAAM,CAAE,GAAa,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC;gBAAE,MAAM,GAAG,CAAC;QACxD,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAqC;IAC/E,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,IAAI,MAAM,KAAK,UAAU;QAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;GAeP,CAAC,CAAC;IACH,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACtB,wDAAwD;IACxD,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,uFAAuF,CAAC,CAAC;IACnG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,iEAAiE;QACjE,KAAK,GAAG,CAAC;IACX,CAAC;IAED,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;;GAS7B,CAAC,CAAC;IAEH,SAAS,eAAe,CAAC,GAAc;QACrC,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,eAAe,EAAE,GAAG,CAAC,eAAe;YACpC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;YACtC,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;YAC5B,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;YAClC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;YACtB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;YAClC,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,IAAI;SAC7C,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAoB,qCAAqC,CAAC,CAAC;IAErF,SAAS,UAAU,CAAC,OAAoC;QACtD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,0DAA0D;QAC1D,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC7B,CAAC;QACD,uEAAuE;QACvE,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC1C,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC1C,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACvD,MAAM,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACrD,CAAC;QACD,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;YACzF,MAAM,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC;QAC9B,CAAC;QACD,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACjE,MAAM;SACP,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,CAAC,SAAS,CAAC,GAAc;YAC5B,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,OAAyB;YACtC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5C,MAAM,GAAG,GAAG,sBAAsB,KAAK,2DAA2D,CAAC;YACnG,MAAM,IAAI,GAAG,EAAE;iBACZ,OAAO,CAAoB,GAAG,CAAC;iBAC/B,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAa;YACxB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,OAAgG;YAC9G,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,kCAAkC,KAAK,EAAE,CAAC;YACtD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAA2B,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,OAA0F;YAC7G,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG;;;;;;;oBAOE,KAAK;OAClB,CAAC;YACF,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAMnB,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO;gBACL,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,UAAU,IAAI,CAAC,CAAC;gBACvC,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE,cAAc,IAAI,CAAC,CAAC;gBAC9C,eAAe,EAAE,MAAM,CAAC,GAAG,EAAE,iBAAiB,IAAI,CAAC,CAAC;gBACpD,gBAAgB,EAAE,MAAM,CAAC,GAAG,EAAE,iBAAiB,IAAI,CAAC,CAAC;gBACrD,cAAc,EAAE,MAAM,CAAC,GAAG,EAAE,eAAe,IAAI,CAAC,CAAC;aAClD,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,kBAAkB,CAAC,KAAa,EAAE,OAAgB;YACtD,EAAE,CAAC,OAAO,CAAC;;;;;OAKV,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/cli/server-app.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { type SessionStore } from './session-store.js';
|
|
|
6
6
|
import { type RunHistoryStore } from './server/run-history-store.js';
|
|
7
7
|
export interface CreateMarsServerOptions {
|
|
8
8
|
env?: NodeJS.ProcessEnv;
|
|
9
|
-
runPairSimulations?: (config: NormalizedSimulationConfig, broadcast: BroadcastFn, signal?: AbortSignal, scenario?: ScenarioPackage) => Promise<void>;
|
|
9
|
+
runPairSimulations?: (config: NormalizedSimulationConfig, broadcast: BroadcastFn, signal?: AbortSignal, scenario?: ScenarioPackage, onArtifact?: (artifact: import('../engine/schema/index.js').RunArtifact, leader: import('../runtime/orchestrator.js').LeaderConfig) => void | Promise<void>) => Promise<void>;
|
|
10
10
|
generateText?: (args: {
|
|
11
11
|
provider: string;
|
|
12
12
|
model: string;
|
|
@@ -38,9 +38,80 @@ export interface CreateMarsServerOptions {
|
|
|
38
38
|
*/
|
|
39
39
|
sessionStore?: SessionStore;
|
|
40
40
|
runHistoryStore?: RunHistoryStore;
|
|
41
|
+
/** Maximum accepted HTTP request body size. Defaults to 5 MiB. */
|
|
42
|
+
maxRequestBodyBytes?: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Optional hooks the /setup handler can pass to startWithConfig so that
|
|
46
|
+
* per-artifact post-flight work (Library-tab record persistence, future
|
|
47
|
+
* webhook notifications, etc.) can run with /setup-handler scope (which
|
|
48
|
+
* is where hasUserKeys, the runRecord base, and the active scenario
|
|
49
|
+
* already live).
|
|
50
|
+
*/
|
|
51
|
+
export interface StartConfigHooks {
|
|
52
|
+
/**
|
|
53
|
+
* Fired once per completed leader artifact. Failures inside the hook
|
|
54
|
+
* are caught and logged by the runner; they do not abort the run.
|
|
55
|
+
*/
|
|
56
|
+
onArtifact?: (artifact: import('../engine/schema/index.js').RunArtifact, leader: import('../runtime/orchestrator.js').LeaderConfig) => void | Promise<void>;
|
|
41
57
|
}
|
|
42
58
|
export interface MarsServer extends Server {
|
|
43
|
-
startWithConfig: (config: NormalizedSimulationConfig) => Promise<void>;
|
|
59
|
+
startWithConfig: (config: NormalizedSimulationConfig, hooks?: StartConfigHooks) => Promise<void>;
|
|
44
60
|
}
|
|
61
|
+
export declare function buildResultsPayloadFromEventBuffer(eventBuffer: readonly string[]): {
|
|
62
|
+
results: any[];
|
|
63
|
+
verdict: any;
|
|
64
|
+
isComplete: boolean;
|
|
65
|
+
turnsCompleted: number;
|
|
66
|
+
totalEvents: number;
|
|
67
|
+
leaders: {
|
|
68
|
+
events: Array<{
|
|
69
|
+
turn?: number;
|
|
70
|
+
time?: number;
|
|
71
|
+
eventIndex?: number;
|
|
72
|
+
title?: string;
|
|
73
|
+
category?: string;
|
|
74
|
+
description?: string;
|
|
75
|
+
emergent?: boolean;
|
|
76
|
+
}>;
|
|
77
|
+
decisions: Array<{
|
|
78
|
+
turn?: number;
|
|
79
|
+
time?: number;
|
|
80
|
+
eventIndex?: number;
|
|
81
|
+
decision?: string;
|
|
82
|
+
rationale?: string;
|
|
83
|
+
selectedPolicies?: unknown[];
|
|
84
|
+
outcome?: string;
|
|
85
|
+
}>;
|
|
86
|
+
forges: Array<Record<string, unknown>>;
|
|
87
|
+
citations: Array<{
|
|
88
|
+
text?: string;
|
|
89
|
+
url?: string;
|
|
90
|
+
doi?: string;
|
|
91
|
+
department?: string;
|
|
92
|
+
turn?: number;
|
|
93
|
+
}>;
|
|
94
|
+
deptReports: Array<{
|
|
95
|
+
turn?: number;
|
|
96
|
+
time?: number;
|
|
97
|
+
eventIndex?: number;
|
|
98
|
+
department?: string;
|
|
99
|
+
summary?: string;
|
|
100
|
+
risks?: unknown[];
|
|
101
|
+
recommendedActions?: unknown[];
|
|
102
|
+
citations?: number;
|
|
103
|
+
toolCount?: number;
|
|
104
|
+
}>;
|
|
105
|
+
agentReactions: Array<{
|
|
106
|
+
turn?: number;
|
|
107
|
+
time?: number;
|
|
108
|
+
reactions?: unknown[];
|
|
109
|
+
totalReactions?: number;
|
|
110
|
+
}>;
|
|
111
|
+
promotions: Array<Record<string, unknown>>;
|
|
112
|
+
systemsSnapshots: Array<Record<string, unknown>>;
|
|
113
|
+
name: string;
|
|
114
|
+
}[];
|
|
115
|
+
};
|
|
45
116
|
export declare function createMarsServer(options?: CreateMarsServerOptions): MarsServer;
|
|
46
117
|
//# sourceMappingURL=server-app.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-app.d.ts","sourceRoot":"","sources":["../../src/cli/server-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,MAAM,EAAuB,MAAM,WAAW,CAAC;AAIjG,OAAO,EAA4C,KAAK,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC5G,OAAO,
|
|
1
|
+
{"version":3,"file":"server-app.d.ts","sourceRoot":"","sources":["../../src/cli/server-app.ts"],"names":[],"mappings":"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"}
|