@a-company/paradigm 3.28.0 → 3.43.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/dist/{accept-orchestration-6EM5EHXA.js → accept-orchestration-ZUWQUHSK.js} +6 -6
- package/dist/add-VSPZ6FM4.js +81 -0
- package/dist/{aggregate-M5WMUI6B.js → aggregate-SV3VGEIL.js} +2 -2
- package/dist/assess-UHBDYIK7.js +68 -0
- package/dist/{beacon-XL2ALH5O.js → beacon-3SJV4DAP.js} +2 -2
- package/dist/calibration-WWHK73WU.js +135 -0
- package/dist/{chunk-C5ZE6WEX.js → chunk-2SKXFXIT.js} +91 -1
- package/dist/{chunk-AK5M6KJB.js → chunk-36TKPM5Z.js} +20 -2
- package/dist/{chunk-W4VFKZVF.js → chunk-7COU5S2Z.js} +3 -3
- package/dist/{chunk-3BAMPB6I.js → chunk-7WEKMZ46.js} +2 -147
- package/dist/{chunk-SCC77UUP.js → chunk-AKIMFN6I.js} +3 -3
- package/dist/{chunk-3DYYXGDC.js → chunk-CDMAMDSG.js} +33 -0
- package/dist/{chunk-7IJ5JVKT.js → chunk-CZEIK3Y2.js} +913 -40
- package/dist/{chunk-MRENOFTR.js → chunk-EDOAWN7J.js} +6 -1
- package/dist/chunk-F3BCHPYT.js +143 -0
- package/dist/chunk-GT5QGC2H.js +253 -0
- package/dist/{chunk-N6RNYCZD.js → chunk-HIKKOCXY.js} +1 -1
- package/dist/{chunk-J26YQVAK.js → chunk-J4E6K5MG.js} +1 -1
- package/dist/chunk-L27I3CPZ.js +357 -0
- package/dist/{chunk-KWDTBXP2.js → chunk-LHLIAYQ3.js} +1 -1
- package/dist/{chunk-OXG5GVDJ.js → chunk-P7XSBJE3.js} +1 -1
- package/dist/{chunk-Z7W7HNRG.js → chunk-QDXI2DHR.js} +1 -1
- package/dist/{chunk-BRILIG7Z.js → chunk-QIOCFXDQ.js} +42 -0
- package/dist/{chunk-ZOH24ZPF.js → chunk-QWA26UNO.js} +7 -7
- package/dist/{lore-server-ILPHKWLK.js → chunk-RAB5IKPR.js} +77 -112
- package/dist/{chunk-BKMNLROM.js → chunk-RGFANZ4Q.js} +448 -147
- package/dist/{chunk-R2SGQ22F.js → chunk-YW5OCVKB.js} +448 -2
- package/dist/{chunk-6P4IFIK2.js → chunk-ZGUAAVMA.js} +53 -4
- package/dist/{commands-6ZVTD74M.js → commands-LEPFD7S5.js} +452 -1
- package/dist/config-schema-3YNIFJCJ.js +152 -0
- package/dist/{constellation-NXU6Q2HM.js → constellation-FAGT45TU.js} +2 -2
- package/dist/{context-audit-RI4R2WRH.js → context-audit-557EO6PK.js} +138 -8
- package/dist/{cost-CTGSLSOC.js → cost-UD3WPEKZ.js} +1 -1
- package/dist/{cursorrules-XBWFX66V.js → cursorrules-3TKZ4E4R.js} +2 -2
- package/dist/{delete-YTASL4SM.js → delete-RRK4RL6Y.js} +1 -1
- package/dist/{diff-AH7L4PRQ.js → diff-IP5CIARP.js} +6 -6
- package/dist/{dist-AG5JNIZU-HW2FWNTZ.js → dist-5QE2BB2B-X6DYVSUL.js} +59 -5
- package/dist/{dist-KY5HGDDL.js → dist-OGTSAZ55.js} +58 -4
- package/dist/{dist-IKBGY7FQ.js → dist-RVKYUCRU.js} +3 -1
- package/dist/{dist-7U64HDSC.js → dist-UXWV4OKX.js} +8 -2
- package/dist/{dist-RMAIFRTW.js → dist-Y7I3CFY5.js} +5 -3
- package/dist/{doctor-INBOLZC7.js → doctor-GKZJU7QG.js} +1 -1
- package/dist/{edit-S7NZD7H7.js → edit-4CLNN5JG.js} +1 -1
- package/dist/{graph-ERNQQQ7C.js → graph-YYUXI3F7.js} +1 -1
- package/dist/graph-server-ZPXRSGCW.js +116 -0
- package/dist/{habits-7BORPC2F.js → habits-O37HTUKE.js} +2 -2
- package/dist/index.js +207 -89
- package/dist/integrity-MK2OP5TA.js +194 -0
- package/dist/integrity-checker-J7YXRTBT.js +11 -0
- package/dist/{lint-53GPXKKI.js → lint-HYWGS3JJ.js} +1 -1
- package/dist/{list-QTFWN35D.js → list-BTLFHSRC.js} +1 -1
- package/dist/list-IUCYPGMK.js +57 -0
- package/dist/{lore-loader-S5BXMH27.js → lore-loader-VTEEZDX3.js} +3 -1
- package/dist/lore-server-NOOAHKJX.js +118 -0
- package/dist/mcp.js +2616 -112
- package/dist/migrate-FQVGQNXZ.js +889 -0
- package/dist/{migrate-assessments-FPR6C35Z.js → migrate-assessments-JP6Q5KME.js} +1 -1
- package/dist/{orchestrate-HMSQ2CED.js → orchestrate-A226N6FC.js} +6 -6
- package/dist/platform-server-KK4OCRTV.js +891 -0
- package/dist/{probe-SN4BNXOC.js → probe-7JK7IDNI.js} +5 -5
- package/dist/{providers-YW3FG6DA.js → providers-YNFSL6HK.js} +1 -1
- package/dist/quiz-I75NU2QQ.js +99 -0
- package/dist/{record-UGN75GTB.js → record-46CLR4OG.js} +11 -2
- package/dist/{reindex-YG3KIXAK.js → reindex-NZQRGKPN.js} +3 -2
- package/dist/{remember-IEBQHXHZ.js → remember-4EUZKIIB.js} +1 -1
- package/dist/{retag-URLJLMSK.js → retag-KC4JVRLE.js} +1 -1
- package/dist/{review-725ZKA7U.js → review-Q7M4CRB5.js} +1 -1
- package/dist/{ripple-DFMXLFWI.js → ripple-RI3LOT6R.js} +2 -2
- package/dist/{sentinel-FUR3QKCJ.js → sentinel-BKYTBT7M.js} +1 -1
- package/dist/sentinel-bridge-IZTXYS5M.js +109 -0
- package/dist/sentinel-ui/assets/{index-Zh1YM0C9.css → index-CJ1Wx083.css} +1 -1
- package/dist/sentinel-ui/assets/index-S1VJ67dT.js +62 -0
- package/dist/sentinel-ui/assets/index-S1VJ67dT.js.map +1 -0
- package/dist/sentinel-ui/index.html +2 -2
- package/dist/sentinel.js +6 -6
- package/dist/{serve-DIALBCTU.js → serve-22A4XOIG.js} +1 -1
- package/dist/{university-A66BMZ4Z.js → serve-2YJ6D2Y6.js} +9 -8
- package/dist/serve-3V2WXLGM.js +33 -0
- package/dist/{server-2VICPDUR.js → server-OFEJ2HJP.js} +25 -2
- package/dist/{server-OWBK2WFS.js → server-RDLQ3DK7.js} +49 -4
- package/dist/{setup-HOI52TN3.js → setup-M2ZKLKNN.js} +4 -4
- package/dist/{shift-DRF5M3G6.js → shift-LNMKFYLR.js} +73 -14
- package/dist/{show-GEVVQWWG.js → show-P7GYO43X.js} +1 -1
- package/dist/show-PKZMYKRN.js +82 -0
- package/dist/{snapshot-XHINQBZS.js → snapshot-Y3COXK4T.js} +2 -2
- package/dist/{spawn-DIY7T4QW.js → spawn-SSXZX45U.js} +2 -2
- package/dist/status-KLHALGW4.js +71 -0
- package/dist/{summary-NV7SBV5O.js → summary-5NQNOD3F.js} +2 -2
- package/dist/{sweep-5POCF2E4.js → sweep-EZU3GU6S.js} +1 -1
- package/dist/symphony-ROEKK7VD.js +999 -0
- package/dist/{team-YOGT2Q2X.js → team-HGLJXWQG.js} +7 -7
- package/dist/{timeline-RKXNRMKF.js → timeline-ANC7LVDL.js} +1 -1
- package/dist/{triage-GJ6GK647.js → triage-POXJ2TIX.js} +2 -2
- package/dist/university-content/courses/.purpose +7 -1
- package/dist/university-content/courses/para-101.json +53 -0
- package/dist/university-content/courses/para-501.json +166 -0
- package/dist/university-content/plsat/.purpose +6 -0
- package/dist/university-content/plsat/v3.0.json +400 -1
- package/dist/university-content/reference.json +48 -0
- package/dist/university-ui/assets/{index-TcsCEBMo.js → index-tfi5xN4Q.js} +2 -2
- package/dist/university-ui/assets/{index-TcsCEBMo.js.map → index-tfi5xN4Q.js.map} +1 -1
- package/dist/university-ui/index.html +1 -1
- package/dist/{upgrade-65QOQXRC.js → upgrade-ANX3LVSA.js} +1 -0
- package/dist/validate-GD5XWILV.js +134 -0
- package/dist/{validate-TKKRGJKC.js → validate-ZVPNN4FL.js} +1 -1
- package/dist/{workspace-L27RR5MF.js → workspace-UIUTHZTD.js} +6 -6
- package/package.json +4 -2
- package/platform-ui/dist/assets/GitSection-C-GQWHcu.css +1 -0
- package/platform-ui/dist/assets/GitSection-DvyJBF_-.js +4 -0
- package/platform-ui/dist/assets/GraphSection-BiQrXqfs.js +8 -0
- package/platform-ui/dist/assets/GraphSection-BlgXTl53.css +1 -0
- package/platform-ui/dist/assets/LoreSection-BaH1FaRb.js +1 -0
- package/platform-ui/dist/assets/LoreSection-C3EixkjW.css +1 -0
- package/platform-ui/dist/assets/SentinelSection-BI-aIYKL.css +1 -0
- package/platform-ui/dist/assets/SentinelSection-DemAznjI.js +1 -0
- package/platform-ui/dist/assets/index-CfpZFjea.css +1 -0
- package/platform-ui/dist/assets/index-DDKhCt-w.js +57 -0
- package/platform-ui/dist/index.html +14 -0
- package/dist/graph-server-BZ73HTAT.js +0 -251
- package/dist/sentinel-ui/assets/index-C_Wstm64.js +0 -62
- package/dist/sentinel-ui/assets/index-C_Wstm64.js.map +0 -1
- /package/dist/{chunk-5SXMV4SP.js → chunk-FS3WTUHY.js} +0 -0
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import "./chunk-ZXMDA7VB.js";
|
|
3
|
-
|
|
4
|
-
// src/lore-server/index.ts
|
|
5
|
-
import express from "express";
|
|
6
|
-
import * as path4 from "path";
|
|
7
|
-
import * as fs4 from "fs";
|
|
8
|
-
import { fileURLToPath } from "url";
|
|
9
|
-
import chalk from "chalk";
|
|
10
2
|
|
|
11
3
|
// src/lore-server/routes/lore.ts
|
|
12
4
|
import { Router } from "express";
|
|
@@ -78,7 +70,7 @@ function createLoreRouter(projectDir) {
|
|
|
78
70
|
const router = Router();
|
|
79
71
|
router.get("/", (req, res) => {
|
|
80
72
|
let entries = loadAllEntries(projectDir);
|
|
81
|
-
const { author, authorType, hasAgent, symbol, type, tag, from, to, tags, hasReview, hasBody, limit, offset } = req.query;
|
|
73
|
+
const { author, authorType, hasAgent, symbol, type, tag, from, to, tags, hasReview, hasBody, hasConfidence, hasAssessment, limit, offset } = req.query;
|
|
82
74
|
if (author) {
|
|
83
75
|
entries = entries.filter((e) => e.author === author);
|
|
84
76
|
}
|
|
@@ -127,6 +119,16 @@ function createLoreRouter(projectDir) {
|
|
|
127
119
|
} else if (hasReview === "false") {
|
|
128
120
|
entries = entries.filter((e) => e.review == null);
|
|
129
121
|
}
|
|
122
|
+
if (hasConfidence === "true") {
|
|
123
|
+
entries = entries.filter((e) => e.confidence != null);
|
|
124
|
+
} else if (hasConfidence === "false") {
|
|
125
|
+
entries = entries.filter((e) => e.confidence == null);
|
|
126
|
+
}
|
|
127
|
+
if (hasAssessment === "true") {
|
|
128
|
+
entries = entries.filter((e) => e.assessment != null);
|
|
129
|
+
} else if (hasAssessment === "false") {
|
|
130
|
+
entries = entries.filter((e) => e.assessment == null);
|
|
131
|
+
}
|
|
130
132
|
entries.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
|
|
131
133
|
const off = parseInt(offset || "0", 10);
|
|
132
134
|
const lim = parseInt(limit || "100", 10);
|
|
@@ -195,6 +197,37 @@ function createLoreRouter(projectDir) {
|
|
|
195
197
|
const authors = Object.entries(authorMap).map(([id, info]) => ({ id, ...info })).sort((a, b) => b.count - a.count);
|
|
196
198
|
res.json({ authors });
|
|
197
199
|
});
|
|
200
|
+
router.get("/calibration", (_req, res) => {
|
|
201
|
+
const entries = loadAllEntries(projectDir).filter((e) => e.assessment != null);
|
|
202
|
+
const withConfidence = entries.filter((e) => e.confidence != null);
|
|
203
|
+
const totalAssessed = entries.length;
|
|
204
|
+
const totalWithConfidence = withConfidence.length;
|
|
205
|
+
const verdictBreakdown = { correct: 0, partial: 0, incorrect: 0 };
|
|
206
|
+
let totalImpliedScore = 0;
|
|
207
|
+
let totalConfidence = 0;
|
|
208
|
+
let totalAbsDelta = 0;
|
|
209
|
+
for (const e of entries) {
|
|
210
|
+
const v = e.assessment.verdict;
|
|
211
|
+
verdictBreakdown[v]++;
|
|
212
|
+
const implied = v === "correct" ? 1 : v === "partial" ? 0.5 : 0;
|
|
213
|
+
totalImpliedScore += implied;
|
|
214
|
+
if (e.confidence != null) {
|
|
215
|
+
totalConfidence += e.confidence;
|
|
216
|
+
totalAbsDelta += Math.abs(implied - e.confidence);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
const accuracyRate = totalAssessed > 0 ? totalImpliedScore / totalAssessed : 0;
|
|
220
|
+
const avgConfidence = totalWithConfidence > 0 ? totalConfidence / totalWithConfidence : null;
|
|
221
|
+
const calibrationScore = totalWithConfidence > 0 ? 1 - totalAbsDelta / totalWithConfidence : null;
|
|
222
|
+
res.json({
|
|
223
|
+
totalAssessed,
|
|
224
|
+
totalWithConfidence,
|
|
225
|
+
accuracyRate: Math.round(accuracyRate * 1e3) / 1e3,
|
|
226
|
+
avgConfidence: avgConfidence != null ? Math.round(avgConfidence * 1e3) / 1e3 : null,
|
|
227
|
+
calibrationScore: calibrationScore != null ? Math.round(calibrationScore * 1e3) / 1e3 : null,
|
|
228
|
+
verdictBreakdown
|
|
229
|
+
});
|
|
230
|
+
});
|
|
198
231
|
router.get("/:id", (req, res) => {
|
|
199
232
|
const entries = loadAllEntries(projectDir);
|
|
200
233
|
const entry = entries.find((e) => e.id === req.params.id);
|
|
@@ -204,6 +237,38 @@ function createLoreRouter(projectDir) {
|
|
|
204
237
|
}
|
|
205
238
|
res.json(entry);
|
|
206
239
|
});
|
|
240
|
+
router.put("/:id/assess", (req, res) => {
|
|
241
|
+
const entryId = req.params.id;
|
|
242
|
+
const entries = loadAllEntries(projectDir);
|
|
243
|
+
const entry = entries.find((e) => e.id === entryId);
|
|
244
|
+
if (!entry) {
|
|
245
|
+
res.status(404).json({ error: "Entry not found" });
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
const dateStr = entry.timestamp.slice(0, 10);
|
|
249
|
+
const entryPath = resolveEntryPath(projectDir, dateStr, entryId);
|
|
250
|
+
if (!entryPath) {
|
|
251
|
+
res.status(404).json({ error: "Entry file not found" });
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
const verdict = req.body.verdict;
|
|
255
|
+
if (!["correct", "partial", "incorrect"].includes(verdict)) {
|
|
256
|
+
res.status(400).json({ error: "Invalid verdict. Must be: correct, partial, incorrect" });
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
entry.assessment = {
|
|
260
|
+
verdict,
|
|
261
|
+
assessed_by: req.body.assessed_by || "anonymous",
|
|
262
|
+
assessed_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
263
|
+
notes: req.body.notes
|
|
264
|
+
};
|
|
265
|
+
if (entry.confidence != null) {
|
|
266
|
+
const impliedScore = verdict === "correct" ? 1 : verdict === "partial" ? 0.5 : 0;
|
|
267
|
+
entry.assessment_delta = impliedScore - entry.confidence;
|
|
268
|
+
}
|
|
269
|
+
fs.writeFileSync(entryPath, yaml.dump(entry, { lineWidth: -1, noRefs: true }));
|
|
270
|
+
res.json({ success: true, entry });
|
|
271
|
+
});
|
|
207
272
|
router.put("/:id/review", (req, res) => {
|
|
208
273
|
const entryId = req.params.id;
|
|
209
274
|
const entries = loadAllEntries(projectDir);
|
|
@@ -415,108 +480,8 @@ function createSessionsRouter(projectDir) {
|
|
|
415
480
|
return router;
|
|
416
481
|
}
|
|
417
482
|
|
|
418
|
-
// src/lore-server/index.ts
|
|
419
|
-
var __filename = fileURLToPath(import.meta.url);
|
|
420
|
-
var __dirname = path4.dirname(__filename);
|
|
421
|
-
var log = {
|
|
422
|
-
component(name) {
|
|
423
|
-
const symbol = chalk.magenta(`#${name}`);
|
|
424
|
-
return {
|
|
425
|
-
info: (msg, data) => {
|
|
426
|
-
const dataStr = data ? chalk.gray(` ${Object.entries(data).map(([k, v]) => `${k}=${v}`).join(" ")}`) : "";
|
|
427
|
-
console.log(`${chalk.blue("i")} ${symbol} ${msg}${dataStr}`);
|
|
428
|
-
},
|
|
429
|
-
success: (msg, data) => {
|
|
430
|
-
const dataStr = data ? chalk.gray(` ${Object.entries(data).map(([k, v]) => `${k}=${v}`).join(" ")}`) : "";
|
|
431
|
-
console.log(`${chalk.green("+")} ${symbol} ${msg}${dataStr}`);
|
|
432
|
-
},
|
|
433
|
-
warn: (msg, data) => {
|
|
434
|
-
const dataStr = data ? chalk.gray(` ${Object.entries(data).map(([k, v]) => `${k}=${v}`).join(" ")}`) : "";
|
|
435
|
-
console.log(`${chalk.yellow("!")} ${symbol} ${msg}${dataStr}`);
|
|
436
|
-
},
|
|
437
|
-
error: (msg, data) => {
|
|
438
|
-
const dataStr = data ? chalk.gray(` ${Object.entries(data).map(([k, v]) => `${k}=${v}`).join(" ")}`) : "";
|
|
439
|
-
console.error(`${chalk.red("x")} ${symbol} ${msg}${dataStr}`);
|
|
440
|
-
}
|
|
441
|
-
};
|
|
442
|
-
}
|
|
443
|
-
};
|
|
444
|
-
function createLoreApp(options) {
|
|
445
|
-
const app = express();
|
|
446
|
-
app.use(express.json());
|
|
447
|
-
app.use((_req, res, next) => {
|
|
448
|
-
res.header("Access-Control-Allow-Origin", "*");
|
|
449
|
-
res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
|
|
450
|
-
res.header("Access-Control-Allow-Headers", "Content-Type");
|
|
451
|
-
if (_req.method === "OPTIONS") {
|
|
452
|
-
res.sendStatus(204);
|
|
453
|
-
return;
|
|
454
|
-
}
|
|
455
|
-
next();
|
|
456
|
-
});
|
|
457
|
-
app.use("/api/lore", createLoreRouter(options.projectDir));
|
|
458
|
-
app.use("/api/info", createInfoRouter(options.projectDir));
|
|
459
|
-
app.use("/api/sessions", createSessionsRouter(options.projectDir));
|
|
460
|
-
app.get("/api/health", (_req, res) => {
|
|
461
|
-
res.json({ status: "ok", timestamp: (/* @__PURE__ */ new Date()).toISOString() });
|
|
462
|
-
});
|
|
463
|
-
let uiDistPath = path4.join(__dirname, "..", "lore-ui", "dist");
|
|
464
|
-
if (!fs4.existsSync(uiDistPath)) {
|
|
465
|
-
uiDistPath = path4.join(__dirname, "..", "..", "lore-ui", "dist");
|
|
466
|
-
}
|
|
467
|
-
if (fs4.existsSync(uiDistPath)) {
|
|
468
|
-
app.use(express.static(uiDistPath));
|
|
469
|
-
app.get("{*path}", (req, res) => {
|
|
470
|
-
if (!req.path.startsWith("/api")) {
|
|
471
|
-
res.sendFile(path4.join(uiDistPath, "index.html"));
|
|
472
|
-
}
|
|
473
|
-
});
|
|
474
|
-
} else {
|
|
475
|
-
app.get("/", (_req, res) => {
|
|
476
|
-
res.send(`
|
|
477
|
-
<html>
|
|
478
|
-
<head><title>Paradigm Lore</title></head>
|
|
479
|
-
<body style="background:#0a0a0f;color:#e2e8f0;font-family:system-ui;display:flex;align-items:center;justify-content:center;height:100vh;margin:0">
|
|
480
|
-
<div style="text-align:center">
|
|
481
|
-
<h1>Paradigm Lore</h1>
|
|
482
|
-
<p style="color:#94a3b8">UI not built yet. Run <code style="background:#1e293b;padding:4px 8px;border-radius:4px">cd lore-ui && npx vite build</code></p>
|
|
483
|
-
<p style="color:#94a3b8">API available at <a href="/api/lore" style="color:#7dd3fc">/api/lore</a></p>
|
|
484
|
-
</div>
|
|
485
|
-
</body>
|
|
486
|
-
</html>
|
|
487
|
-
`);
|
|
488
|
-
});
|
|
489
|
-
}
|
|
490
|
-
return app;
|
|
491
|
-
}
|
|
492
|
-
async function startLoreServer(options) {
|
|
493
|
-
const app = createLoreApp(options);
|
|
494
|
-
log.component("lore-server").info("Starting server", { port: options.port });
|
|
495
|
-
log.component("lore-server").info("Project directory", { path: options.projectDir });
|
|
496
|
-
return new Promise((resolve, reject) => {
|
|
497
|
-
const server = app.listen(options.port, () => {
|
|
498
|
-
log.component("lore-server").success("Server running", { url: `http://localhost:${options.port}` });
|
|
499
|
-
if (options.open) {
|
|
500
|
-
import("open").then((openModule) => {
|
|
501
|
-
openModule.default(`http://localhost:${options.port}`);
|
|
502
|
-
log.component("lore-server").info("Opened browser");
|
|
503
|
-
}).catch(() => {
|
|
504
|
-
log.component("lore-server").warn("Could not open browser automatically");
|
|
505
|
-
});
|
|
506
|
-
}
|
|
507
|
-
resolve();
|
|
508
|
-
});
|
|
509
|
-
server.on("error", (err) => {
|
|
510
|
-
if (err.code === "EADDRINUSE") {
|
|
511
|
-
log.component("lore-server").error("Port already in use", { port: options.port });
|
|
512
|
-
} else {
|
|
513
|
-
log.component("lore-server").error("Server error", { error: err.message });
|
|
514
|
-
}
|
|
515
|
-
reject(err);
|
|
516
|
-
});
|
|
517
|
-
});
|
|
518
|
-
}
|
|
519
483
|
export {
|
|
520
|
-
|
|
521
|
-
|
|
484
|
+
createLoreRouter,
|
|
485
|
+
createInfoRouter,
|
|
486
|
+
createSessionsRouter
|
|
522
487
|
};
|