@essentialai/cogent-server 3.1.6 → 3.3.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/CHANGELOG.md +24 -0
- package/README.md +1 -0
- package/dist/__tests__/helpers.d.ts.map +1 -1
- package/dist/__tests__/helpers.js +7 -4
- package/dist/__tests__/helpers.js.map +1 -1
- package/dist/app.js +2 -2
- package/dist/app.js.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/routes/messages.d.ts +2 -1
- package/dist/routes/messages.d.ts.map +1 -1
- package/dist/routes/messages.js +83 -3
- package/dist/routes/messages.js.map +1 -1
- package/dist/routes/peers.d.ts +20 -3
- package/dist/routes/peers.d.ts.map +1 -1
- package/dist/routes/peers.js +27 -5
- package/dist/routes/peers.js.map +1 -1
- package/dist/routes/ui.d.ts.map +1 -1
- package/dist/routes/ui.js +3 -1
- package/dist/routes/ui.js.map +1 -1
- package/dist/services/stats-service.d.ts +47 -2
- package/dist/services/stats-service.d.ts.map +1 -1
- package/dist/services/stats-service.js +126 -4
- package/dist/services/stats-service.js.map +1 -1
- package/dist/ui/components/PlatformBadge.d.ts +8 -0
- package/dist/ui/components/PlatformBadge.d.ts.map +1 -0
- package/dist/ui/components/PlatformBadge.js +47 -0
- package/dist/ui/components/PlatformBadge.js.map +1 -0
- package/dist/ui/pages/AdminDashboard.d.ts +2 -1
- package/dist/ui/pages/AdminDashboard.d.ts.map +1 -1
- package/dist/ui/pages/AdminDashboard.js +15 -2
- package/dist/ui/pages/AdminDashboard.js.map +1 -1
- package/dist/ui/pages/FaqPage.d.ts.map +1 -1
- package/dist/ui/pages/FaqPage.js +10 -2
- package/dist/ui/pages/FaqPage.js.map +1 -1
- package/dist/ui/pages/HowToPage.js +2 -2
- package/dist/ui/pages/HowToPage.js.map +1 -1
- package/dist/ui/pages/LandingPage.d.ts.map +1 -1
- package/dist/ui/pages/LandingPage.js +33 -1
- package/dist/ui/pages/LandingPage.js.map +1 -1
- package/dist/ui/pages/SessionDetail.d.ts.map +1 -1
- package/dist/ui/pages/SessionDetail.js +3 -2
- package/dist/ui/pages/SessionDetail.js.map +1 -1
- package/dist/ui/pages/SessionList.d.ts +2 -0
- package/dist/ui/pages/SessionList.d.ts.map +1 -1
- package/dist/ui/pages/SessionList.js +16 -2
- package/dist/ui/pages/SessionList.js.map +1 -1
- package/dist/ui/styles/theme.d.ts +7 -0
- package/dist/ui/styles/theme.d.ts.map +1 -1
- package/dist/ui/styles/theme.js +8 -0
- package/dist/ui/styles/theme.js.map +1 -1
- package/package.json +1 -1
package/dist/routes/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/routes/ui.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAUvD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAiB;IAC9C,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAC9E,MAAM,EAAE,GAAG,IAAI,IAAI,EAAa,CAAC;IAEjC,mDAAmD;IACnD,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;QAChB,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAC,WAAW,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;QACtB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAC,SAAS,KAAG,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,yCAAyC;IACzC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;QACnB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAC,OAAO,KAAG,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,kDAAkD;IAClD,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;QACtB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAC,eAAe,KAAG,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,qEAAqE;IACrE,EAAE,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE;QAC/B,OAAO,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACnC,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,MAAM,CAAC,QAAQ,CAAC;oBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;oBAC3B,KAAK,EAAE,OAAO;oBACd,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;iBACvB,CAAC,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,0DAA0D;IAC1D,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,IAAI,EAAa,CAAC;QAEpC,6CAA6C;QAC7C,KAAK,CAAC,GAAG,CACP,GAAG,EACH,SAAS,CAAC;YACR,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;gBACjC,OAAO,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,aAAa,CAAC;YAC5D,CAAC;YACD,KAAK,EAAE,cAAc;SACtB,CAAC,CACH,CAAC;QAEF,8CAA8C;QAC9C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/routes/ui.tsx"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,18 @@ export interface ServerStats {
|
|
|
9
9
|
totalMessagesRelayed: number;
|
|
10
10
|
/** Server uptime in seconds. */
|
|
11
11
|
uptime: number;
|
|
12
|
+
/** Live count of connected agents grouped by platform. */
|
|
13
|
+
agentsByPlatform: Record<string, number>;
|
|
14
|
+
/** Live count of sessions containing at least one peer of each platform. */
|
|
15
|
+
sessionsByPlatform: Record<string, number>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Cumulative counters persisted to disk. Survive server restarts.
|
|
19
|
+
*/
|
|
20
|
+
export interface CumulativeStats {
|
|
21
|
+
totalPeerRegistrations: Record<string, number>;
|
|
22
|
+
totalMessagesSent: Record<string, number>;
|
|
23
|
+
lastUpdated: string;
|
|
12
24
|
}
|
|
13
25
|
/**
|
|
14
26
|
* Cached stats aggregation service.
|
|
@@ -16,16 +28,42 @@ export interface ServerStats {
|
|
|
16
28
|
* Periodically refreshes aggregated counts from SessionStore (disk) and
|
|
17
29
|
* ConnectionManager (in-memory) so that SSE endpoints and UI pages can
|
|
18
30
|
* read stats without per-request disk I/O.
|
|
31
|
+
*
|
|
32
|
+
* Cumulative stats (peer registrations + messages sent, by platform) are
|
|
33
|
+
* persisted to <dataDir>/platform-stats.json via atomic writes so they
|
|
34
|
+
* survive server restarts.
|
|
19
35
|
*/
|
|
20
36
|
export declare class StatsService {
|
|
21
37
|
private cachedStats;
|
|
38
|
+
private cumulativeStats;
|
|
22
39
|
private readonly sessionStore;
|
|
23
40
|
private readonly connectionManager;
|
|
24
41
|
private readonly startTime;
|
|
42
|
+
private readonly dataDir;
|
|
25
43
|
private refreshHandle;
|
|
26
|
-
constructor(sessionStore: SessionStore, connectionManager: ConnectionManager, startTime: number);
|
|
44
|
+
constructor(sessionStore: SessionStore, connectionManager: ConnectionManager, startTime: number, dataDir: string);
|
|
45
|
+
/**
|
|
46
|
+
* Load cumulative stats from disk. Called once at startup.
|
|
47
|
+
* Creates the file with zero counters if it does not exist.
|
|
48
|
+
*/
|
|
49
|
+
loadCumulativeStats(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Increment the cumulative registration counter for the given platform
|
|
52
|
+
* and atomically persist to disk.
|
|
53
|
+
*/
|
|
54
|
+
incrementPeerRegistration(platform: string): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Increment the cumulative messages-sent counter for the originating
|
|
57
|
+
* platform and atomically persist to disk.
|
|
58
|
+
*/
|
|
59
|
+
incrementMessageSent(originPlatform: string): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Return a shallow copy of the current cumulative stats.
|
|
62
|
+
*/
|
|
63
|
+
getCumulativeStats(): CumulativeStats;
|
|
27
64
|
/**
|
|
28
65
|
* Refresh cached stats from disk (sessions, messages) and memory (connections).
|
|
66
|
+
* Also derives live platform breakdown by iterating all sessions and their peers.
|
|
29
67
|
* Called periodically by start() and can be called manually.
|
|
30
68
|
*/
|
|
31
69
|
refresh(): Promise<void>;
|
|
@@ -36,7 +74,8 @@ export declare class StatsService {
|
|
|
36
74
|
getStats(): ServerStats;
|
|
37
75
|
/**
|
|
38
76
|
* Start periodic stats refresh.
|
|
39
|
-
*
|
|
77
|
+
* Loads cumulative stats from disk, calls refresh() immediately,
|
|
78
|
+
* then sets up an interval.
|
|
40
79
|
* The interval handle is unref'd so it does not block process exit.
|
|
41
80
|
*/
|
|
42
81
|
start(intervalMs?: number): void;
|
|
@@ -44,5 +83,11 @@ export declare class StatsService {
|
|
|
44
83
|
* Stop periodic stats refresh.
|
|
45
84
|
*/
|
|
46
85
|
stop(): void;
|
|
86
|
+
private _platformStatsPath;
|
|
87
|
+
/**
|
|
88
|
+
* Atomically write cumulative stats to disk.
|
|
89
|
+
* Writes a temp file then renames so readers never see a partial write.
|
|
90
|
+
*/
|
|
91
|
+
private _saveCumulativeStats;
|
|
47
92
|
}
|
|
48
93
|
//# sourceMappingURL=stats-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats-service.d.ts","sourceRoot":"","sources":["../../src/services/stats-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stats-service.d.ts","sourceRoot":"","sources":["../../src/services/stats-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,4EAA4E;IAC5E,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,aAAa,CAA+C;gBAGlE,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM;IAqBjB;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB1C;;;OAGG;IACG,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhE;;;OAGG;IACG,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjE;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAQrC;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC9B;;;OAGG;IACH,QAAQ,IAAI,WAAW;IASvB;;;;;OAKG;IACH,KAAK,CAAC,UAAU,GAAE,MAAa,GAAG,IAAI;IAYtC;;OAEG;IACH,IAAI,IAAI,IAAI;IAWZ,OAAO,CAAC,kBAAkB;IAI1B;;;OAGG;YACW,oBAAoB;CAanC"}
|
|
@@ -1,39 +1,129 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
1
3
|
/**
|
|
2
4
|
* Cached stats aggregation service.
|
|
3
5
|
*
|
|
4
6
|
* Periodically refreshes aggregated counts from SessionStore (disk) and
|
|
5
7
|
* ConnectionManager (in-memory) so that SSE endpoints and UI pages can
|
|
6
8
|
* read stats without per-request disk I/O.
|
|
9
|
+
*
|
|
10
|
+
* Cumulative stats (peer registrations + messages sent, by platform) are
|
|
11
|
+
* persisted to <dataDir>/platform-stats.json via atomic writes so they
|
|
12
|
+
* survive server restarts.
|
|
7
13
|
*/
|
|
8
14
|
export class StatsService {
|
|
9
15
|
cachedStats;
|
|
16
|
+
cumulativeStats;
|
|
10
17
|
sessionStore;
|
|
11
18
|
connectionManager;
|
|
12
19
|
startTime;
|
|
20
|
+
dataDir;
|
|
13
21
|
refreshHandle = null;
|
|
14
|
-
constructor(sessionStore, connectionManager, startTime) {
|
|
22
|
+
constructor(sessionStore, connectionManager, startTime, dataDir) {
|
|
15
23
|
this.sessionStore = sessionStore;
|
|
16
24
|
this.connectionManager = connectionManager;
|
|
17
25
|
this.startTime = startTime;
|
|
26
|
+
this.dataDir = dataDir;
|
|
18
27
|
this.cachedStats = {
|
|
19
28
|
activeSessions: 0,
|
|
20
29
|
connectedAgents: 0,
|
|
21
30
|
totalMessagesRelayed: 0,
|
|
22
31
|
uptime: 0,
|
|
32
|
+
agentsByPlatform: {},
|
|
33
|
+
sessionsByPlatform: {},
|
|
34
|
+
};
|
|
35
|
+
this.cumulativeStats = {
|
|
36
|
+
totalPeerRegistrations: {},
|
|
37
|
+
totalMessagesSent: {},
|
|
38
|
+
lastUpdated: new Date().toISOString(),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Load cumulative stats from disk. Called once at startup.
|
|
43
|
+
* Creates the file with zero counters if it does not exist.
|
|
44
|
+
*/
|
|
45
|
+
async loadCumulativeStats() {
|
|
46
|
+
const filePath = this._platformStatsPath();
|
|
47
|
+
try {
|
|
48
|
+
const raw = await fs.readFile(filePath, "utf-8");
|
|
49
|
+
this.cumulativeStats = JSON.parse(raw);
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
const code = err.code;
|
|
53
|
+
if (code === "ENOENT") {
|
|
54
|
+
// First run — persist the zero-state file
|
|
55
|
+
await this._saveCumulativeStats();
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// Corrupt file — log and continue with zero state
|
|
59
|
+
console.error("StatsService: failed to read platform-stats.json:", err);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Increment the cumulative registration counter for the given platform
|
|
65
|
+
* and atomically persist to disk.
|
|
66
|
+
*/
|
|
67
|
+
async incrementPeerRegistration(platform) {
|
|
68
|
+
const p = platform || "cc";
|
|
69
|
+
this.cumulativeStats.totalPeerRegistrations[p] =
|
|
70
|
+
(this.cumulativeStats.totalPeerRegistrations[p] ?? 0) + 1;
|
|
71
|
+
this.cumulativeStats.lastUpdated = new Date().toISOString();
|
|
72
|
+
await this._saveCumulativeStats();
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Increment the cumulative messages-sent counter for the originating
|
|
76
|
+
* platform and atomically persist to disk.
|
|
77
|
+
*/
|
|
78
|
+
async incrementMessageSent(originPlatform) {
|
|
79
|
+
const p = originPlatform || "cc";
|
|
80
|
+
this.cumulativeStats.totalMessagesSent[p] =
|
|
81
|
+
(this.cumulativeStats.totalMessagesSent[p] ?? 0) + 1;
|
|
82
|
+
this.cumulativeStats.lastUpdated = new Date().toISOString();
|
|
83
|
+
await this._saveCumulativeStats();
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Return a shallow copy of the current cumulative stats.
|
|
87
|
+
*/
|
|
88
|
+
getCumulativeStats() {
|
|
89
|
+
return {
|
|
90
|
+
totalPeerRegistrations: { ...this.cumulativeStats.totalPeerRegistrations },
|
|
91
|
+
totalMessagesSent: { ...this.cumulativeStats.totalMessagesSent },
|
|
92
|
+
lastUpdated: this.cumulativeStats.lastUpdated,
|
|
23
93
|
};
|
|
24
94
|
}
|
|
25
95
|
/**
|
|
26
96
|
* Refresh cached stats from disk (sessions, messages) and memory (connections).
|
|
97
|
+
* Also derives live platform breakdown by iterating all sessions and their peers.
|
|
27
98
|
* Called periodically by start() and can be called manually.
|
|
28
99
|
*/
|
|
29
100
|
async refresh() {
|
|
30
101
|
const sessionIds = await this.sessionStore.listSessions();
|
|
31
102
|
const totalMessages = await this.sessionStore.getGlobalMessageCount();
|
|
103
|
+
// Derive live platform breakdown from session peers
|
|
104
|
+
const agentsByPlatform = {};
|
|
105
|
+
const sessionsByPlatform = {};
|
|
106
|
+
for (const sid of sessionIds) {
|
|
107
|
+
const session = await this.sessionStore.getSession(sid);
|
|
108
|
+
if (!session)
|
|
109
|
+
continue;
|
|
110
|
+
const seen = new Set();
|
|
111
|
+
for (const peer of Object.values(session.peers)) {
|
|
112
|
+
const p = peer.platform ?? "cc";
|
|
113
|
+
agentsByPlatform[p] = (agentsByPlatform[p] ?? 0) + 1;
|
|
114
|
+
seen.add(p);
|
|
115
|
+
}
|
|
116
|
+
for (const p of seen) {
|
|
117
|
+
sessionsByPlatform[p] = (sessionsByPlatform[p] ?? 0) + 1;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
32
120
|
this.cachedStats = {
|
|
33
121
|
activeSessions: sessionIds.length,
|
|
34
122
|
connectedAgents: this.connectionManager.getTotalConnectedPeers(),
|
|
35
123
|
totalMessagesRelayed: totalMessages,
|
|
36
124
|
uptime: (Date.now() - this.startTime) / 1000,
|
|
125
|
+
agentsByPlatform,
|
|
126
|
+
sessionsByPlatform,
|
|
37
127
|
};
|
|
38
128
|
}
|
|
39
129
|
/**
|
|
@@ -43,17 +133,22 @@ export class StatsService {
|
|
|
43
133
|
getStats() {
|
|
44
134
|
return {
|
|
45
135
|
...this.cachedStats,
|
|
136
|
+
agentsByPlatform: { ...this.cachedStats.agentsByPlatform },
|
|
137
|
+
sessionsByPlatform: { ...this.cachedStats.sessionsByPlatform },
|
|
46
138
|
uptime: (Date.now() - this.startTime) / 1000,
|
|
47
139
|
};
|
|
48
140
|
}
|
|
49
141
|
/**
|
|
50
142
|
* Start periodic stats refresh.
|
|
51
|
-
*
|
|
143
|
+
* Loads cumulative stats from disk, calls refresh() immediately,
|
|
144
|
+
* then sets up an interval.
|
|
52
145
|
* The interval handle is unref'd so it does not block process exit.
|
|
53
146
|
*/
|
|
54
147
|
start(intervalMs = 5000) {
|
|
55
|
-
//
|
|
56
|
-
this.
|
|
148
|
+
// Load cumulative stats from disk, then do initial refresh
|
|
149
|
+
this.loadCumulativeStats()
|
|
150
|
+
.then(() => this.refresh())
|
|
151
|
+
.catch(console.error);
|
|
57
152
|
this.refreshHandle = setInterval(() => {
|
|
58
153
|
this.refresh().catch(console.error);
|
|
59
154
|
}, intervalMs);
|
|
@@ -68,5 +163,32 @@ export class StatsService {
|
|
|
68
163
|
this.refreshHandle = null;
|
|
69
164
|
}
|
|
70
165
|
}
|
|
166
|
+
// ---------------------------------------------------------------------------
|
|
167
|
+
// Private helpers
|
|
168
|
+
// ---------------------------------------------------------------------------
|
|
169
|
+
_platformStatsPath() {
|
|
170
|
+
return path.join(this.dataDir, "platform-stats.json");
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Atomically write cumulative stats to disk.
|
|
174
|
+
* Writes a temp file then renames so readers never see a partial write.
|
|
175
|
+
*/
|
|
176
|
+
async _saveCumulativeStats() {
|
|
177
|
+
const filePath = this._platformStatsPath();
|
|
178
|
+
const tmpPath = `${filePath}.tmp`;
|
|
179
|
+
try {
|
|
180
|
+
await fs.mkdir(this.dataDir, { recursive: true });
|
|
181
|
+
await fs.writeFile(tmpPath, JSON.stringify(this.cumulativeStats, null, 2), "utf-8");
|
|
182
|
+
await fs.rename(tmpPath, filePath);
|
|
183
|
+
}
|
|
184
|
+
catch (err) {
|
|
185
|
+
console.error("StatsService: failed to persist platform-stats.json:", err);
|
|
186
|
+
// Best-effort — don't crash the server over a stats write failure
|
|
187
|
+
try {
|
|
188
|
+
await fs.unlink(tmpPath);
|
|
189
|
+
}
|
|
190
|
+
catch { /* ignore */ }
|
|
191
|
+
}
|
|
192
|
+
}
|
|
71
193
|
}
|
|
72
194
|
//# sourceMappingURL=stats-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats-service.js","sourceRoot":"","sources":["../../src/services/stats-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stats-service.js","sourceRoot":"","sources":["../../src/services/stats-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AA4B7B;;;;;;;;;;GAUG;AACH,MAAM,OAAO,YAAY;IACf,WAAW,CAAc;IACzB,eAAe,CAAkB;IACxB,YAAY,CAAe;IAC3B,iBAAiB,CAAoB;IACrC,SAAS,CAAS;IAClB,OAAO,CAAS;IACzB,aAAa,GAA0C,IAAI,CAAC;IAEpE,YACE,YAA0B,EAC1B,iBAAoC,EACpC,SAAiB,EACjB,OAAe;QAEf,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG;YACjB,cAAc,EAAE,CAAC;YACjB,eAAe,EAAE,CAAC;YAClB,oBAAoB,EAAE,CAAC;YACvB,MAAM,EAAE,CAAC;YACT,gBAAgB,EAAE,EAAE;YACpB,kBAAkB,EAAE,EAAE;SACvB,CAAC;QACF,IAAI,CAAC,eAAe,GAAG;YACrB,sBAAsB,EAAE,EAAE;YAC1B,iBAAiB,EAAE,EAAE;YACrB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;YACjD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,0CAA0C;gBAC1C,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,kDAAkD;gBAClD,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,GAAG,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,yBAAyB,CAAC,QAAgB;QAC9C,MAAM,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC5C,CAAC,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5D,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,oBAAoB,CAAC,cAAsB;QAC/C,MAAM,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACvC,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5D,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO;YACL,sBAAsB,EAAE,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE;YAC1E,iBAAiB,EAAE,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE;YAChE,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW;SAC9C,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;QAC1D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;QAEtE,oDAAoD;QACpD,MAAM,gBAAgB,GAA2B,EAAE,CAAC;QACpD,MAAM,kBAAkB,GAA2B,EAAE,CAAC;QAEtD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACxD,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,GAAI,IAA8B,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAC3D,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,GAAG;YACjB,cAAc,EAAE,UAAU,CAAC,MAAM;YACjC,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE;YAChE,oBAAoB,EAAE,aAAa;YACnC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI;YAC5C,gBAAgB;YAChB,kBAAkB;SACnB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO;YACL,GAAG,IAAI,CAAC,WAAW;YACnB,gBAAgB,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;YAC1D,kBAAkB,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE;YAC9D,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI;SAC7C,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAqB,IAAI;QAC7B,2DAA2D;QAC3D,IAAI,CAAC,mBAAmB,EAAE;aACvB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;aAC1B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,EAAE,UAAU,CAAC,CAAC;QACf,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,kBAAkB;IAClB,8EAA8E;IAEtE,kBAAkB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACxD,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,oBAAoB;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,GAAG,QAAQ,MAAM,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACpF,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAE,GAAG,CAAC,CAAC;YAC3E,kEAAkE;YAClE,IAAI,CAAC;gBAAC,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const platformLabels: Record<string, string>;
|
|
2
|
+
export declare function PlatformBadge({ platform }: {
|
|
3
|
+
platform?: string;
|
|
4
|
+
}): import("hono/jsx/jsx-dev-runtime").JSX.Element;
|
|
5
|
+
export declare function ModeBadge({ mode }: {
|
|
6
|
+
mode?: string;
|
|
7
|
+
}): import("hono/jsx/jsx-dev-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=PlatformBadge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlatformBadge.d.ts","sourceRoot":"","sources":["../../../src/ui/components/PlatformBadge.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMjD,CAAC;AAsBF,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,kDAKhE;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,kDAIpD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx } from "hono/jsx/jsx-runtime";
|
|
2
|
+
import { css } from "hono/css";
|
|
3
|
+
import { colors, fonts } from "../styles/theme.js";
|
|
4
|
+
const platformColors = {
|
|
5
|
+
cc: colors.platformCc,
|
|
6
|
+
codex: colors.platformCodex,
|
|
7
|
+
slack: colors.platformSlack,
|
|
8
|
+
gchat: colors.platformGchat,
|
|
9
|
+
web: colors.platformWeb,
|
|
10
|
+
};
|
|
11
|
+
export const platformLabels = {
|
|
12
|
+
cc: "Claude Code",
|
|
13
|
+
codex: "Codex",
|
|
14
|
+
slack: "Slack",
|
|
15
|
+
gchat: "GChat",
|
|
16
|
+
web: "Web",
|
|
17
|
+
};
|
|
18
|
+
const modeColors = {
|
|
19
|
+
agent: colors.modeAgent,
|
|
20
|
+
observer: colors.modeObserver,
|
|
21
|
+
};
|
|
22
|
+
function badgeStyle(color) {
|
|
23
|
+
return css `
|
|
24
|
+
display: inline-block;
|
|
25
|
+
padding: 2px 8px;
|
|
26
|
+
border-radius: 3px;
|
|
27
|
+
font-size: 0.75rem;
|
|
28
|
+
font-family: ${fonts.mono};
|
|
29
|
+
font-weight: 600;
|
|
30
|
+
color: ${colors.bg};
|
|
31
|
+
background: ${color};
|
|
32
|
+
text-transform: uppercase;
|
|
33
|
+
letter-spacing: 0.5px;
|
|
34
|
+
`;
|
|
35
|
+
}
|
|
36
|
+
export function PlatformBadge({ platform }) {
|
|
37
|
+
const p = platform ?? "cc";
|
|
38
|
+
const color = platformColors[p] ?? colors.textMuted;
|
|
39
|
+
const label = platformLabels[p] ?? p;
|
|
40
|
+
return _jsx("span", { class: badgeStyle(color), children: label });
|
|
41
|
+
}
|
|
42
|
+
export function ModeBadge({ mode }) {
|
|
43
|
+
const m = mode ?? "agent";
|
|
44
|
+
const color = modeColors[m] ?? colors.textMuted;
|
|
45
|
+
return _jsx("span", { class: badgeStyle(color), children: m });
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=PlatformBadge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlatformBadge.js","sourceRoot":"","sources":["../../../src/ui/components/PlatformBadge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,cAAc,GAA2B;IAC7C,EAAE,EAAE,MAAM,CAAC,UAAU;IACrB,KAAK,EAAE,MAAM,CAAC,aAAa;IAC3B,KAAK,EAAE,MAAM,CAAC,aAAa;IAC3B,KAAK,EAAE,MAAM,CAAC,aAAa;IAC3B,GAAG,EAAE,MAAM,CAAC,WAAW;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA2B;IACpD,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;CACX,CAAC;AAEF,MAAM,UAAU,GAA2B;IACzC,KAAK,EAAE,MAAM,CAAC,SAAS;IACvB,QAAQ,EAAE,MAAM,CAAC,YAAY;CAC9B,CAAC;AAEF,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,GAAG,CAAA;;;;;mBAKO,KAAK,CAAC,IAAI;;aAEhB,MAAM,CAAC,EAAE;kBACJ,KAAK;;;GAGpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAyB;IAC/D,MAAM,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC;IAC3B,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC;IACpD,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,eAAM,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,YAAG,KAAK,GAAQ,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAqB;IACnD,MAAM,CAAC,GAAG,IAAI,IAAI,OAAO,CAAC;IAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC;IAChD,OAAO,eAAM,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,YAAG,CAAC,GAAQ,CAAC;AACpD,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { FC } from "hono/jsx";
|
|
2
|
-
import type { ServerStats } from "../../services/stats-service.js";
|
|
2
|
+
import type { ServerStats, CumulativeStats } from "../../services/stats-service.js";
|
|
3
3
|
/** Props for the AdminDashboard page. */
|
|
4
4
|
interface AdminDashboardProps {
|
|
5
5
|
stats: ServerStats;
|
|
6
|
+
cumulative: CumulativeStats;
|
|
6
7
|
}
|
|
7
8
|
/**
|
|
8
9
|
* Admin overview page with summary stats and quick-action links.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminDashboard.d.ts","sourceRoot":"","sources":["../../../src/ui/pages/AdminDashboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"AdminDashboard.d.ts","sourceRoot":"","sources":["../../../src/ui/pages/AdminDashboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAQnC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEpF,yCAAyC;AACzC,UAAU,mBAAmB;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,eAAe,CAAC;CAC7B;AAqED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAqElD,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "hono/jsx/jsx-runtime";
|
|
2
2
|
import { css } from "hono/css";
|
|
3
3
|
import { Layout } from "../components/Layout.js";
|
|
4
4
|
import { NavBar } from "../components/NavBar.js";
|
|
5
5
|
import { StatCard } from "../components/StatCard.js";
|
|
6
|
+
import { PlatformBadge, platformLabels } from "../components/PlatformBadge.js";
|
|
6
7
|
import { Footer } from "../components/Footer.js";
|
|
7
8
|
import { colors } from "../styles/theme.js";
|
|
8
9
|
const container = css `
|
|
@@ -22,6 +23,18 @@ const statsRow = css `
|
|
|
22
23
|
flex-wrap: wrap;
|
|
23
24
|
margin-bottom: 3rem;
|
|
24
25
|
`;
|
|
26
|
+
const sectionTitle = css `
|
|
27
|
+
font-size: 1rem;
|
|
28
|
+
font-weight: 700;
|
|
29
|
+
color: ${colors.text};
|
|
30
|
+
margin: 0 0 1rem 0;
|
|
31
|
+
`;
|
|
32
|
+
const statsGrid = css `
|
|
33
|
+
display: flex;
|
|
34
|
+
gap: 1.5rem;
|
|
35
|
+
flex-wrap: wrap;
|
|
36
|
+
margin-bottom: 3rem;
|
|
37
|
+
`;
|
|
25
38
|
const quickLinksSection = css `
|
|
26
39
|
margin-top: 1rem;
|
|
27
40
|
`;
|
|
@@ -55,5 +68,5 @@ const actionLink = css `
|
|
|
55
68
|
* Admin overview page with summary stats and quick-action links.
|
|
56
69
|
* Renders Layout with NavBar, three stat cards, and navigation buttons.
|
|
57
70
|
*/
|
|
58
|
-
export const AdminDashboard = ({ stats }) => (_jsxs(Layout, { title: "Admin Dashboard", children: [_jsx(NavBar, { active: "dashboard" }), _jsxs("div", { class: container, children: [_jsx("h1", { class: pageTitle, children: "Dashboard" }), _jsxs("div", { class: statsRow, children: [_jsx(StatCard, { id: "admin-sessions", value: stats.activeSessions, label: "Active Sessions" }), _jsx(StatCard, { id: "admin-agents", value: stats.connectedAgents, label: "Connected Agents" }), _jsx(StatCard, { id: "admin-messages", value: stats.totalMessagesRelayed, label: "Total Messages" })] }), _jsxs("div", { class: quickLinksSection, children: [_jsx("h2", { class: quickLinksTitle, children: "Quick Actions" }), _jsxs("div", { class: linkRow, children: [_jsx("a", { href: "/admin/sessions", class: actionLink, children: "Manage Sessions" }), _jsx("a", { href: "/admin/messages", class: actionLink, children: "View Messages" })] })] }), _jsx(Footer, {})] })] }));
|
|
71
|
+
export const AdminDashboard = ({ stats, cumulative }) => (_jsxs(Layout, { title: "Admin Dashboard", children: [_jsx(NavBar, { active: "dashboard" }), _jsxs("div", { class: container, children: [_jsx("h1", { class: pageTitle, children: "Dashboard" }), _jsxs("div", { class: statsRow, children: [_jsx(StatCard, { id: "admin-sessions", value: stats.activeSessions, label: "Active Sessions" }), _jsx(StatCard, { id: "admin-agents", value: stats.connectedAgents, label: "Connected Agents" }), _jsx(StatCard, { id: "admin-messages", value: stats.totalMessagesRelayed, label: "Total Messages" })] }), Object.keys(stats.agentsByPlatform).length > 0 && (_jsxs(_Fragment, { children: [_jsx("h2", { class: sectionTitle, children: "Agents by Platform" }), _jsx("div", { class: statsGrid, children: Object.entries(stats.agentsByPlatform).map(([platform, count]) => (_jsx(StatCard, { id: `platform-live-${platform}`, value: count, label: platformLabels[platform] ?? platform }))) })] })), Object.keys(cumulative.totalPeerRegistrations).length > 0 && (_jsxs(_Fragment, { children: [_jsx("h2", { class: sectionTitle, children: "Cumulative Totals" }), _jsx("div", { class: statsGrid, children: Object.entries(cumulative.totalPeerRegistrations).map(([platform, count]) => (_jsx(StatCard, { id: `platform-cumulative-${platform}`, value: count, label: `Total ${platformLabels[platform] ?? platform} sessions` }))) })] })), _jsxs("div", { class: quickLinksSection, children: [_jsx("h2", { class: quickLinksTitle, children: "Quick Actions" }), _jsxs("div", { class: linkRow, children: [_jsx("a", { href: "/admin/sessions", class: actionLink, children: "Manage Sessions" }), _jsx("a", { href: "/admin/messages", class: actionLink, children: "View Messages" })] })] }), _jsx(Footer, {})] })] }));
|
|
59
72
|
//# sourceMappingURL=AdminDashboard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminDashboard.js","sourceRoot":"","sources":["../../../src/ui/pages/AdminDashboard.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"AdminDashboard.js","sourceRoot":"","sources":["../../../src/ui/pages/AdminDashboard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FaqPage.d.ts","sourceRoot":"","sources":["../../../src/ui/pages/FaqPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AA2KnC,eAAO,MAAM,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"FaqPage.d.ts","sourceRoot":"","sources":["../../../src/ui/pages/FaqPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AA2KnC,eAAO,MAAM,OAAO,EAAE,EAydrB,CAAC"}
|
package/dist/ui/pages/FaqPage.js
CHANGED
|
@@ -149,7 +149,11 @@ const footer = css `
|
|
|
149
149
|
margin-top: 2rem;
|
|
150
150
|
`;
|
|
151
151
|
// --- Component ---
|
|
152
|
-
export const FaqPage = () => (_jsx(Layout, { title: "FAQ", children: _jsxs("div", { class: container, children: [_jsx("a", { href: "/", class: backLink, children: "\u2190 Back to Home" }), _jsxs("div", { class: heroSection, children: [_jsx("h1", { class: heroTitle, children: "Frequently Asked Questions" }), _jsx("p", { class: heroSubtitle, children: "Slack bridge setup, message flow troubleshooting, peer identity, server deployment, and version compatibility." })] }), _jsxs("div", { class: section, children: [_jsx("h2", { class: sectionTitle, children: "
|
|
152
|
+
export const FaqPage = () => (_jsx(Layout, { title: "FAQ", children: _jsxs("div", { class: container, children: [_jsx("a", { href: "/", class: backLink, children: "\u2190 Back to Home" }), _jsxs("div", { class: heroSection, children: [_jsx("h1", { class: heroTitle, children: "Frequently Asked Questions" }), _jsx("p", { class: heroSubtitle, children: "Slack bridge setup, message flow troubleshooting, peer identity, server deployment, and version compatibility." })] }), _jsxs("div", { class: section, children: [_jsx("h2", { class: sectionTitle, children: "Installation" }), _jsxs("details", { class: detailsStyle, children: [_jsxs("summary", { class: summaryStyle, children: [_jsx("code", { class: inlineCode, children: "claude plugin marketplace add" }), " fails with \"Host key verification failed\" / \"No ED25519 host key is known for github.com\""] }), _jsxs("div", { class: answerBody, children: [_jsxs("p", { class: paragraph, children: ["The bare ", _jsx("code", { class: inlineCode, children: "eaisdevelopment/cogent" }), " shorthand resolves to", _jsx("code", { class: inlineCode, children: " git@github.com:" }), ", which requires a known_hosts entry for github.com that fresh machines don't have. The landing page now uses the HTTPS URL form directly \u2014 if you copied the command from older docs or a chat transcript, switch to:"] }), _jsx("div", { class: codeBlock, children: "claude plugin marketplace add https://github.com/eaisdevelopment/cogent.git" }), _jsx("p", { class: paragraph, children: "Alternatively, accept GitHub's host key once and the shorthand will then work:" }), _jsx("div", { class: codeBlock, children: `ssh -T git@github.com
|
|
153
|
+
# Type "yes" at the host-key prompt, then re-run the shorthand command.` })] })] }), _jsxs("details", { class: detailsStyle, children: [_jsxs("summary", { class: summaryStyle, children: [_jsx("code", { class: inlineCode, children: "claude plugin install cogent@cogent" }), " fails with \"Plugin 'cogent' not found in marketplace 'cogent'\""] }), _jsxs("div", { class: answerBody, children: [_jsxs("p", { class: paragraph, children: ["Your local marketplace cache is stale \u2014 usually from a previous failed", _jsx("code", { class: inlineCode, children: " marketplace add" }), " attempt that registered the marketplace without populating it. Refresh the cache:"] }), _jsx("div", { class: codeBlock, children: `claude plugin marketplace update cogent
|
|
154
|
+
claude plugin install cogent@cogent` }), _jsxs("p", { class: paragraph, children: ["If ", _jsx("code", { class: inlineCode, children: "update" }), " still reports the plugin missing, full reset:"] }), _jsx("div", { class: codeBlock, children: `claude plugin marketplace remove cogent
|
|
155
|
+
claude plugin marketplace add https://github.com/eaisdevelopment/cogent.git
|
|
156
|
+
claude plugin install cogent@cogent` }), _jsxs("p", { class: paragraph, children: ["After install, verify with ", _jsx("code", { class: inlineCode, children: "claude plugin list" }), " \u2014 you should see ", _jsx("code", { class: inlineCode, children: "cogent@cogent" }), " with the current version."] })] })] }), _jsxs("details", { class: detailsStyle, children: [_jsxs("summary", { class: summaryStyle, children: ["Slash commands like ", _jsx("code", { class: inlineCode, children: "/cogent:register" }), " don't appear after install"] }), _jsxs("div", { class: answerBody, children: [_jsx("p", { class: paragraph, children: "Restart Claude Code after installing the plugin \u2014 commands are registered at startup. If they still don't appear:" }), _jsxs("ul", { class: bulletList, children: [_jsxs("li", { children: ["Confirm the install: ", _jsx("code", { class: inlineCode, children: "claude plugin list" }), " should show ", _jsx("code", { class: inlineCode, children: "cogent@cogent" })] }), _jsxs("li", { children: ["If the version is older than the latest on npm, pull the newest marketplace copy: ", _jsx("code", { class: inlineCode, children: "claude plugin marketplace update cogent" }), " then reinstall"] }), _jsxs("li", { children: ["Check ", _jsx("code", { class: inlineCode, children: "~/.claude/plugins/installed/" }), " for the plugin directory; if absent, the install only registered metadata \u2014 re-run install"] })] })] })] })] }), _jsxs("div", { class: section, children: [_jsx("h2", { class: sectionTitle, children: "Setup Issues" }), _jsxs("details", { class: detailsStyle, children: [_jsxs("summary", { class: summaryStyle, children: [_jsx("code", { class: inlineCode, children: "/cogent map" }), " shows as plain text instead of a slash command"] }), _jsxs("div", { class: answerBody, children: [_jsxs("p", { class: paragraph, children: ["Slack must recognize ", _jsx("code", { class: inlineCode, children: "/cogent" }), " as a registered slash command. When you type ", _jsx("code", { class: inlineCode, children: "/cogent" }), " in the message box, you should see an autocomplete popup showing \"Cogent Bridge\". If not:"] }), _jsxs("ul", { class: bulletList, children: [_jsx("li", { children: "Verify the Slack App has a slash command configured: go to api.slack.com/apps > your app > Slash Commands" }), _jsxs("li", { children: ["The command name must be exactly ", _jsx("code", { class: inlineCode, children: "/cogent" })] }), _jsx("li", { children: "The Cogent Bridge app must be installed in your workspace" }), _jsx("li", { children: "Try restarting your Slack client" })] })] })] }), _jsxs("details", { class: detailsStyle, children: [_jsxs("summary", { class: summaryStyle, children: [_jsx("code", { class: inlineCode, children: "/cogent map" }), " returns \"invalid session or secret\""] }), _jsxs("div", { class: answerBody, children: [_jsx("p", { class: paragraph, children: "This means either:" }), _jsxs("ul", { class: bulletList, children: [_jsxs("li", { children: ["The session ID doesn't exist on the relay \u2014 create it first with ", _jsx("code", { class: inlineCode, children: "cogent_create_session" }), " in Claude Code"] }), _jsx("li", { children: "The secret doesn't match \u2014 double-check the exact secret you used when creating the session" }), _jsx("li", { children: "The relay server is unreachable \u2014 check with:" })] }), _jsx("div", { class: codeBlock, children: "curl https://cogent.tools/api/health" })] })] }), _jsxs("details", { class: detailsStyle, children: [_jsxs("summary", { class: summaryStyle, children: [_jsx("code", { class: inlineCode, children: "cogent_register_peer" }), " fails with \"Unrecognized keys: platform, type, transport\""] }), _jsxs("div", { class: answerBody, children: [_jsxs("p", { class: paragraph, children: ["The relay server has an old version of ", _jsx("code", { class: inlineCode, children: "@essentialai/cogent" }), " that doesn't recognize the new platform fields. SSH to the server and update:"] }), _jsx("div", { class: codeBlock, children: `cd /path/to/cogent/server && npm install @essentialai/cogent@3.0.0
|
|
153
157
|
sudo systemctl restart cogent-bridge` })] })] }), _jsxs("details", { class: detailsStyle, children: [_jsx("summary", { class: summaryStyle, children: "Channel mapping is lost after adapter restart" }), _jsx("div", { class: answerBody, children: _jsxs("p", { class: paragraph, children: ["Channel mappings are stored in-memory on the adapter. After a restart, you need to re-run ", _jsx("code", { class: inlineCode, children: "/cogent map" }), " in Slack. Pre-configured sessions via the ", _jsx("code", { class: inlineCode, children: "COGENT_SESSIONS" }), " env var survive restarts \u2014 add your sessions there for persistence."] }) })] })] }), _jsxs("div", { class: section, children: [_jsx("h2", { class: sectionTitle, children: "Message Flow" }), _jsxs("details", { class: detailsStyle, children: [_jsx("summary", { class: summaryStyle, children: "Messages from Slack don't appear in CC agent's history" }), _jsxs("div", { class: answerBody, children: [_jsx("p", { class: paragraph, children: "Check the adapter logs:" }), _jsx("div", { class: codeBlock, children: "journalctl -u cogent-slack-adapter --no-pager -n 30" }), _jsx("p", { class: paragraph, children: "Common causes:" }), _jsxs("ul", { class: bulletList, children: [_jsxs("li", { children: [_jsx("strong", { children: "\"Sender peer not registered\"" }), ": The Slack user's auto-registration failed. Restart the adapter to clear stale state, then re-map the channel."] }), _jsxs("li", { children: [_jsx("strong", { children: "No log entries for the message" }), ": The adapter didn't receive the Slack event. Verify the app has ", _jsx("code", { class: inlineCode, children: "message.channels" }), " event subscription enabled."] }), _jsxs("li", { children: [_jsx("strong", { children: "Channel not mapped" }), ": Run ", _jsx("code", { class: inlineCode, children: "/cogent map" }), " first."] })] })] })] }), _jsxs("details", { class: detailsStyle, children: [_jsx("summary", { class: summaryStyle, children: "CC agent messages don't appear in Slack" }), _jsxs("div", { class: answerBody, children: [_jsx("p", { class: paragraph, children: "The adapter needs an active WebSocket connection to the relay. Check:" }), _jsx("div", { class: codeBlock, children: `journalctl -u cogent-slack-adapter --no-pager -n 10 | grep "Relay WS"` }), _jsx("p", { class: paragraph, children: "You should see \"Relay WS connected\". If not, the adapter may have lost its WS connection \u2014 restart it." })] })] }), _jsxs("details", { class: detailsStyle, children: [_jsx("summary", { class: summaryStyle, children: "CC agent doesn't auto-respond to Slack messages" }), _jsxs("div", { class: answerBody, children: [_jsx("p", { class: paragraph, children: "The CC agent needs instructions to respond autonomously. Two approaches:" }), _jsxs("ul", { class: bulletList, children: [_jsxs("li", { children: [_jsx("strong", { children: "Plugin skill (automatic):" }), " If using the Cogent plugin, the ", _jsx("code", { class: inlineCode, children: "communication-protocol" }), " skill loads automatically and instructs the agent to respond without asking permission."] }), _jsxs("li", { children: [_jsx("strong", { children: "CLAUDE.md (manual):" }), " Add the Cogent Bridge Protocol section to your project's CLAUDE.md. See the template at ", _jsx("a", { href: "/how-to#slack-bridge", children: "cogent.tools/how-to#slack-bridge" }), "."] })] }), _jsxs("p", { class: noteText, children: ["Auto-relay (spawning ", _jsx("code", { class: inlineCode, children: "claude --resume" }), " for incoming messages) works for CC-to-CC communication. For Slack-to-CC, the message appears in history and the agent responds on its next check. Real-time interrupt-based auto-reply is planned for a future release."] })] })] }), _jsxs("details", { class: detailsStyle, children: [_jsxs("summary", { class: summaryStyle, children: [_jsx("code", { class: inlineCode, children: "cogent_send_message" }), " with toPeerId=\"broadcast\" fails with \"PEER_NOT_FOUND\""] }), _jsxs("div", { class: answerBody, children: [_jsxs("p", { class: paragraph, children: ["The MCP tool uses ", _jsx("code", { class: inlineCode, children: "broadcast" }), " as the peer name, but the relay API expects ", _jsx("code", { class: inlineCode, children: "*" }), " for broadcast messages. Use ", _jsx("code", { class: inlineCode, children: "toPeerId: \"*\"" }), " instead, or send the broadcast via the API directly:"] }), _jsx("div", { class: codeBlock, children: `curl -X POST "https://cogent.tools/api/sessions/<sessionId>/messages" \\
|
|
154
158
|
-H "Authorization: Bearer <token>" \\
|
|
155
159
|
-H "Content-Type: application/json" \\
|
|
@@ -167,5 +171,9 @@ sudo systemctl restart cogent-bridge
|
|
|
167
171
|
|
|
168
172
|
# Adapter (on cogent.tools):
|
|
169
173
|
# Deploy from repo, then:
|
|
170
|
-
sudo systemctl restart cogent-slack-adapter` }) })] })] }), _jsxs("div", { class:
|
|
174
|
+
sudo systemctl restart cogent-slack-adapter` }) })] })] }), _jsxs("div", { class: section, children: [_jsx("h2", { class: sectionTitle, children: "Multi-Provider (Codex)" }), _jsxs("details", { class: detailsStyle, children: [_jsx("summary", { class: summaryStyle, children: "How do I set up OpenAI Codex with Cogent?" }), _jsxs("div", { class: answerBody, children: [_jsxs("p", { class: paragraph, children: ["Run the Codex MCP add command, passing the ", _jsx("code", { class: inlineCode, children: "COGENT_PLATFORM=codex" }), " env var so the bridge identifies the peer correctly:"] }), _jsx("div", { class: codeBlock, children: `codex mcp add --name cogent-bridge \\
|
|
175
|
+
--env COGENT_PLATFORM=codex \\
|
|
176
|
+
-- npx -y @essentialai/cogent-bridge@latest` }), _jsxs("p", { class: paragraph, children: ["For ChatGPT-tier OpenAI accounts, set the model in ", _jsx("code", { class: inlineCode, children: "~/.codex/config.toml" }), ":"] }), _jsx("div", { class: codeBlock, children: `[model]
|
|
177
|
+
name = "gpt-5.4"` }), _jsxs("p", { class: noteText, children: ["If ", _jsx("code", { class: inlineCode, children: "npx" }), " can't find ", _jsx("code", { class: inlineCode, children: "cogent-bridge" }), ", see the troubleshooting entry below."] })] })] }), _jsxs("details", { class: detailsStyle, children: [_jsx("summary", { class: summaryStyle, children: "Can Claude Code and Codex talk in the same channel?" }), _jsxs("div", { class: answerBody, children: [_jsxs("p", { class: paragraph, children: ["Yes \u2014 proven 2026-05-25. Register both agents on the same Cogent session and channel using their respective MCP tools (", _jsx("code", { class: inlineCode, children: "cogent_register_peer" }), "). Communication works as follows:"] }), _jsxs("ul", { class: bulletList, children: [_jsxs("li", { children: [_jsx("strong", { children: "Codex \u2192 CC:" }), " Auto-reply via ", _jsx("code", { class: inlineCode, children: "execClaude" }), " (~18 s round-trip). The CC agent receives the message and replies automatically."] }), _jsxs("li", { children: [_jsx("strong", { children: "CC \u2192 Codex:" }), " Operator- or agent-driven. Read inbound messages via ", _jsx("code", { class: inlineCode, children: "cogent_get_history" }), " and reply via ", _jsx("code", { class: inlineCode, children: "cogent_send_message" }), "."] })] })] })] }), _jsxs("details", { class: detailsStyle, children: [_jsx("summary", { class: summaryStyle, children: "Which Codex models work?" }), _jsxs("div", { class: answerBody, children: [_jsxs("p", { class: paragraph, children: ["Any model your OpenAI account supports. ChatGPT-tier accounts default to ", _jsx("code", { class: inlineCode, children: "gpt-5.4" }), ". Set the active model in ", _jsx("code", { class: inlineCode, children: "~/.codex/config.toml" }), ":"] }), _jsx("div", { class: codeBlock, children: `[model]
|
|
178
|
+
name = "gpt-5.4" # or any other model available on your plan` })] })] }), _jsxs("details", { class: detailsStyle, children: [_jsx("summary", { class: summaryStyle, children: "Does Codex auto-reply to inbound messages?" }), _jsxs("div", { class: answerBody, children: [_jsx("p", { class: paragraph, children: "Not yet. Codex currently operates as an observer or an actively-driven agent \u2014 it does not automatically resume and reply when a new message arrives on the channel." }), _jsxs("p", { class: paragraph, children: ["An auto-relay adapter based on ", _jsx("code", { class: inlineCode, children: "codex exec resume" }), " is planned for v3.4. Until then:"] }), _jsxs("ul", { class: bulletList, children: [_jsxs("li", { children: ["Read inbound messages with ", _jsx("code", { class: inlineCode, children: "cogent_get_history" })] }), _jsxs("li", { children: ["Reply with ", _jsx("code", { class: inlineCode, children: "cogent_send_message" })] })] })] })] }), _jsxs("details", { class: detailsStyle, children: [_jsxs("summary", { class: summaryStyle, children: [_jsx("code", { class: inlineCode, children: "cogent-bridge: not found" }), " when Codex launches the MCP"] }), _jsxs("div", { class: answerBody, children: [_jsxs("p", { class: paragraph, children: ["This happens when Codex is launched from inside the cogent dev repository. ", _jsx("code", { class: inlineCode, children: "npx" }), " walks up the directory tree and finds the repo's local ", _jsx("code", { class: inlineCode, children: "node_modules" }), " instead of the global npm cache, causing bin-resolution to fail."] }), _jsx("p", { class: paragraph, children: "Two fixes:" }), _jsxs("ul", { class: bulletList, children: [_jsxs("li", { children: [_jsx("strong", { children: "Point at the local build:" }), " replace ", _jsx("code", { class: inlineCode, children: "npx -y @essentialai/cogent-bridge@latest" }), " with ", _jsx("code", { class: inlineCode, children: "node /absolute/path/to/cogent-bridge/dist/index.js" })] }), _jsxs("li", { children: [_jsx("strong", { children: "Run from outside the repo:" }), " launch Codex from any directory that is not inside the cogent-bridge project tree"] })] })] })] })] }), _jsxs("div", { class: footer, children: ["COGENT \u2014 Powered by ", _jsx("a", { href: "https://essentialai.uk", style: "color: inherit;", children: "Essential AI Solutions Ltd." }), " \u2014 ", _jsx("a", { href: "/", style: "color: inherit;", children: "cogent.tools" })] })] }) }));
|
|
171
179
|
//# sourceMappingURL=FaqPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FaqPage.js","sourceRoot":"","sources":["../../../src/ui/pages/FaqPage.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FaqPage.js","sourceRoot":"","sources":["../../../src/ui/pages/FaqPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,iBAAiB;AAEjB,MAAM,SAAS,GAA2B,GAAG,CAAA;;;;CAI5C,CAAC;AAEF,MAAM,WAAW,GAA2B,GAAG,CAAA;;;CAG9C,CAAC;AAEF,MAAM,SAAS,GAA2B,GAAG,CAAA;;;WAGlC,MAAM,CAAC,KAAK;;CAEtB,CAAC;AAEF,MAAM,YAAY,GAA2B,GAAG,CAAA;;WAErC,MAAM,CAAC,SAAS;;;;;;CAM1B,CAAC;AAEF,MAAM,QAAQ,GAA2B,GAAG,CAAA;;WAEjC,MAAM,CAAC,IAAI;;;;;;CAMrB,CAAC;AAEF,MAAM,OAAO,GAA2B,GAAG,CAAA;;CAE1C,CAAC;AAEF,MAAM,YAAY,GAA2B,GAAG,CAAA;;WAErC,MAAM,CAAC,KAAK;;;CAGtB,CAAC;AAEF,MAAM,SAAS,GAA2B,GAAG,CAAA;WAClC,MAAM,CAAC,IAAI;;;;CAIrB,CAAC;AAEF,MAAM,SAAS,GAA2B,GAAG,CAAA;gBAC7B,MAAM,CAAC,EAAE;sBACH,MAAM,CAAC,MAAM;;;WAGxB,MAAM,CAAC,KAAK;;;;;;CAMtB,CAAC;AAEF,MAAM,QAAQ,GAA2B,GAAG,CAAA;WACjC,MAAM,CAAC,SAAS;;;;CAI1B,CAAC;AAEF,MAAM,UAAU,GAA2B,GAAG,CAAA;;;;aAIjC,MAAM,CAAC,IAAI;;;;;CAKvB,CAAC;AAEF,MAAM,UAAU,GAA2B,GAAG,CAAA;gBAC9B,MAAM,CAAC,EAAE;sBACH,MAAM,CAAC,MAAM;;;WAGxB,MAAM,CAAC,KAAK;;CAEtB,CAAC;AAEF,MAAM,YAAY,GAA2B,GAAG,CAAA;gBAChC,MAAM,CAAC,MAAM;sBACP,MAAM,CAAC,MAAM;;;;;;oBAMf,MAAM,CAAC,KAAK;;CAE/B,CAAC;AAEF,MAAM,YAAY,GAA2B,GAAG,CAAA;;;WAGrC,MAAM,CAAC,IAAI;;;;;;;;;aAST,MAAM,CAAC,KAAK;;;;;aAKZ,MAAM,CAAC,KAAK;;CAExB,CAAC;AAEF,MAAM,UAAU,GAA2B,GAAG,CAAA;;0BAEpB,MAAM,CAAC,MAAM;CACtC,CAAC;AAEF,MAAM,YAAY,GAA2B,GAAG,CAAA;;;;;;;aAOnC,MAAM,CAAC,KAAK;;+BAEM,MAAM,CAAC,MAAM;;;;;+BAKb,MAAM,CAAC,MAAM;aAC/B,MAAM,CAAC,IAAI;;CAEvB,CAAC;AAEF,MAAM,MAAM,GAA2B,GAAG,CAAA;;;WAG/B,MAAM,CAAC,SAAS;;0BAED,MAAM,CAAC,MAAM;;CAEtC,CAAC;AAEF,oBAAoB;AAEpB,MAAM,CAAC,MAAM,OAAO,GAAO,GAAG,EAAE,CAAC,CAC/B,KAAC,MAAM,IAAC,KAAK,EAAC,KAAK,YACjB,eAAK,KAAK,EAAE,SAAS,aACnB,YAAG,IAAI,EAAC,GAAG,EAAC,KAAK,EAAE,QAAQ,oCAAyB,EAGpD,eAAK,KAAK,EAAE,WAAW,aACrB,aAAI,KAAK,EAAE,SAAS,2CAAiC,EACrD,YAAG,KAAK,EAAE,YAAY,+HAGlB,IACA,EAGN,eAAK,KAAK,EAAE,OAAO,aACjB,aAAI,KAAK,EAAE,YAAY,6BAAmB,EAE1C,mBAAS,KAAK,EAAE,YAAY,aAC1B,mBAAS,KAAK,EAAE,YAAY,aAC1B,eAAM,KAAK,EAAE,UAAU,8CAAsC,sGACrD,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,aAAG,KAAK,EAAE,SAAS,0BACR,eAAM,KAAK,EAAE,UAAU,uCAA+B,4BAC/D,eAAM,KAAK,EAAE,UAAU,iCAAyB,mOAG9C,EACJ,cAAK,KAAK,EAAE,SAAS,4FAAmF,EACxG,YAAG,KAAK,EAAE,SAAS,+FAEf,EACJ,cAAK,KAAK,EAAE,SAAS,YAAG;wEACoC,GAAO,IAC/D,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,mBAAS,KAAK,EAAE,YAAY,aAC1B,eAAM,KAAK,EAAE,UAAU,oDAA4C,yEAC3D,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,aAAG,KAAK,EAAE,SAAS,4FAEjB,eAAM,KAAK,EAAE,UAAU,iCAAyB,0FAE9C,EACJ,cAAK,KAAK,EAAE,SAAS,YAAG;oCACA,GAAO,EAC/B,aAAG,KAAK,EAAE,SAAS,oBACd,eAAM,KAAK,EAAE,UAAU,uBAAe,sDACvC,EACJ,cAAK,KAAK,EAAE,SAAS,YAAG;;oCAEA,GAAO,EAC/B,aAAG,KAAK,EAAE,SAAS,4CACU,eAAM,KAAK,EAAE,UAAU,mCAA2B,6BAClE,eAAM,KAAK,EAAE,UAAU,8BAAsB,kCACtD,IACA,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,mBAAS,KAAK,EAAE,YAAY,qCACN,eAAM,KAAK,EAAE,UAAU,iCAAyB,mCAC5D,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,YAAG,KAAK,EAAE,SAAS,uIAGf,EACJ,cAAI,KAAK,EAAE,UAAU,aACnB,kDAAyB,eAAM,KAAK,EAAE,UAAU,mCAA2B,mBAAa,eAAM,KAAK,EAAE,UAAU,8BAAsB,IAAK,EAC1I,+GAAsF,eAAM,KAAK,EAAE,UAAU,wDAAgD,uBAAoB,EACjL,mCAAU,eAAM,KAAK,EAAE,UAAU,6CAAqC,wGAAsG,IACzK,IACD,IACE,IACN,EAGN,eAAK,KAAK,EAAE,OAAO,aACjB,aAAI,KAAK,EAAE,YAAY,6BAAmB,EAE1C,mBAAS,KAAK,EAAE,YAAY,aAC1B,mBAAS,KAAK,EAAE,YAAY,aAC1B,eAAM,KAAK,EAAE,UAAU,4BAAoB,uDACnC,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,aAAG,KAAK,EAAE,SAAS,sCACI,eAAM,KAAK,EAAE,UAAU,wBAAgB,oDAC9C,eAAM,KAAK,EAAE,UAAU,wBAAgB,oGAEnD,EACJ,cAAI,KAAK,EAAE,UAAU,aACnB,qIAAwH,EACxH,8DAAqC,eAAM,KAAK,EAAE,UAAU,wBAAgB,IAAK,EACjF,qFAAkE,EAClE,4DAAyC,IACtC,IACD,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,mBAAS,KAAK,EAAE,YAAY,aAC1B,eAAM,KAAK,EAAE,UAAU,4BAAoB,8CACnC,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,YAAG,KAAK,EAAE,SAAS,mCAAwB,EAC3C,cAAI,KAAK,EAAE,UAAU,aACnB,mGAA2E,eAAM,KAAK,EAAE,UAAU,sCAA8B,uBAAoB,EACpJ,4HAA0G,EAC1G,8EAA4D,IACzD,EACL,cAAK,KAAK,EAAE,SAAS,qDAA4C,IAC7D,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,mBAAS,KAAK,EAAE,YAAY,aAC1B,eAAM,KAAK,EAAE,UAAU,qCAA6B,oEAC5C,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,aAAG,KAAK,EAAE,SAAS,wDACsB,eAAM,KAAK,EAAE,UAAU,oCAA4B,sFAExF,EACJ,cAAK,KAAK,EAAE,SAAS,YAAG;qCACC,GAAO,IAC5B,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,8DAElB,EACV,cAAK,KAAK,EAAE,UAAU,YACpB,aAAG,KAAK,EAAE,SAAS,2GAEV,eAAM,KAAK,EAAE,UAAU,4BAAoB,iDAC9C,eAAM,KAAK,EAAE,UAAU,gCAAwB,iFAEjD,GACA,IACE,IACN,EAGN,eAAK,KAAK,EAAE,OAAO,aACjB,aAAI,KAAK,EAAE,YAAY,6BAAmB,EAE1C,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,uEAElB,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,YAAG,KAAK,EAAE,SAAS,wCAA6B,EAChD,cAAK,KAAK,EAAE,SAAS,oEAA2D,EAChF,YAAG,KAAK,EAAE,SAAS,+BAAoB,EACvC,cAAI,KAAK,EAAE,UAAU,aACnB,yBAAI,8DAA6C,uHAAoH,EACrK,yBAAI,8DAA+C,uEAAiE,eAAM,KAAK,EAAE,UAAU,iCAAyB,oCAAiC,EACrM,yBAAI,kDAAmC,YAAM,eAAM,KAAK,EAAE,UAAU,4BAAoB,eAAY,IACjG,IACD,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,wDAElB,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,YAAG,KAAK,EAAE,SAAS,sFAEf,EACJ,cAAK,KAAK,EAAE,SAAS,YAAG,uEAAuE,GAAO,EACtG,YAAG,KAAK,EAAE,SAAS,8HAGf,IACA,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,gEAElB,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,YAAG,KAAK,EAAE,SAAS,yFAEf,EACJ,cAAI,KAAK,EAAE,UAAU,aACnB,yBAAI,yDAA0C,uCAAiC,eAAM,KAAK,EAAE,UAAU,uCAA+B,gGAA6F,EAClO,yBAAI,mDAAoC,+FAAyF,YAAG,IAAI,EAAC,sBAAsB,iDAAqC,SAAM,IACvM,EACL,aAAG,KAAK,EAAE,QAAQ,sCACK,eAAM,KAAK,EAAE,UAAU,gCAAwB,iOAIlE,IACA,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,mBAAS,KAAK,EAAE,YAAY,aAC1B,eAAM,KAAK,EAAE,UAAU,oCAA4B,kEAC3C,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,aAAG,KAAK,EAAE,SAAS,mCACC,eAAM,KAAK,EAAE,UAAU,0BAAkB,mDAC/C,eAAM,KAAK,EAAE,UAAU,kBAAU,mCACzC,eAAM,KAAK,EAAE,UAAU,gCAAsB,6DAE/C,EACJ,cAAK,KAAK,EAAE,SAAS,YAAG;;;4EAGwC,GAAO,EACvE,YAAG,KAAK,EAAE,QAAQ,uEAA4D,IAC1E,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,qFAElB,EACV,cAAK,KAAK,EAAE,UAAU,YACpB,aAAG,KAAK,EAAE,SAAS,yCACO,eAAM,KAAK,EAAE,UAAU,qCAA6B,wMAI1E,GACA,IACE,IACN,EAGN,eAAK,KAAK,EAAE,OAAO,aACjB,aAAI,KAAK,EAAE,YAAY,8BAAoB,EAE3C,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,6EAElB,EACV,cAAK,KAAK,EAAE,UAAU,YACpB,YAAG,KAAK,EAAE,SAAS,4MAIf,GACA,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,mBAAS,KAAK,EAAE,YAAY,uDACY,eAAM,KAAK,EAAE,UAAU,kCAA0B,IAC/E,EACV,cAAK,KAAK,EAAE,UAAU,YACpB,aAAG,KAAK,EAAE,SAAS,qCACG,eAAM,KAAK,EAAE,UAAU,iDAAyC,qBACzE,eAAM,KAAK,EAAE,UAAU,8BAAsB,0BAClD,eAAM,KAAK,EAAE,UAAU,iCAAuB,QAAE,eAAM,KAAK,EAAE,UAAU,gCAAsB,OACnG,eAAM,KAAK,EAAE,UAAU,kCAAwB,uBAC7C,GACA,IACE,IACN,EAGN,eAAK,KAAK,EAAE,OAAO,aACjB,aAAI,KAAK,EAAE,YAAY,oCAA8B,EAErD,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,8DAElB,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,YAAG,KAAK,EAAE,SAAS,4KAGf,EACJ,cAAK,KAAK,EAAE,SAAS,YAAG;mCACD,GAAO,IAC1B,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,6DAElB,EACV,cAAK,KAAK,EAAE,UAAU,YACpB,cAAK,KAAK,EAAE,SAAS,YAAG;;8DAE0B,GAAO,GACrD,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,qEAElB,EACV,cAAK,KAAK,EAAE,UAAU,YACpB,aAAG,KAAK,EAAE,SAAS,0BACR,eAAM,KAAK,EAAE,UAAU,iCAAyB,wBAAkB,eAAM,KAAK,EAAE,UAAU,qBAAa,4CAC7E,eAAM,KAAK,EAAE,UAAU,sCAA8B,kDAErF,GACA,IACE,IACN,EAGN,eAAK,KAAK,EAAE,OAAO,aACjB,aAAI,KAAK,EAAE,YAAY,sCAA4B,EAEnD,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,yCAElB,EACV,cAAK,KAAK,EAAE,UAAU,YACpB,iBAAO,KAAK,EAAE,YAAY,aACxB,0BACE,yBACE,mCAAgB,EAChB,2CAAwB,EACxB,mCAAgB,IACb,GACC,EACR,4BACE,yBACE,uBAAI,eAAM,KAAK,EAAE,UAAU,oCAA4B,GAAK,EAC5D,iCAAc,EACd,oDAAiC,IAC9B,EACL,yBACE,uBAAI,eAAM,KAAK,EAAE,UAAU,2CAAmC,GAAK,EACnE,iCAAc,EACd,yCAAsB,IACnB,EACL,yBACE,uBAAI,eAAM,KAAK,EAAE,UAAU,2CAAmC,GAAK,EACnE,iCAAc,EACd,wCAAqB,IAClB,EACL,yBACE,mCAAgB,EAChB,sDAAmC,EACnC,mCAAgB,IACb,IACC,IACF,GACJ,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,8CAElB,EACV,cAAK,KAAK,EAAE,UAAU,YACpB,cAAK,KAAK,EAAE,SAAS,YAAG;;;;;;;;;;;4CAWQ,GAAO,GACnC,IACE,IACN,EAGN,eAAK,KAAK,EAAE,OAAO,aACjB,aAAI,KAAK,EAAE,YAAY,uCAA6B,EAEpD,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,0DAElB,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,aAAG,KAAK,EAAE,SAAS,4DAC0B,eAAM,KAAK,EAAE,UAAU,sCAA8B,6DAC9F,EACJ,cAAK,KAAK,EAAE,SAAS,YAAG;;8CAEU,GAAO,EACzC,aAAG,KAAK,EAAE,SAAS,oEACkC,eAAM,KAAK,EAAE,UAAU,qCAA6B,SACrG,EACJ,cAAK,KAAK,EAAE,SAAS,YAAG;iBACnB,GAAO,EACZ,aAAG,KAAK,EAAE,QAAQ,oBACb,eAAM,KAAK,EAAE,UAAU,oBAAY,kBAAY,eAAM,KAAK,EAAE,UAAU,8BAAsB,8CAC7F,IACA,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,oEAElB,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,aAAG,KAAK,EAAE,SAAS,6IACsG,eAAM,KAAK,EAAE,UAAU,qCAA6B,0CACzK,EACJ,cAAI,KAAK,EAAE,UAAU,aACnB,yBAAI,gDAAiC,sBAAgB,eAAM,KAAK,EAAE,UAAU,2BAAmB,yFAAsF,EACrL,yBAAI,gDAAiC,4DAAsD,eAAM,KAAK,EAAE,UAAU,mCAA2B,qBAAe,eAAM,KAAK,EAAE,UAAU,oCAA4B,SAAM,IAClN,IACD,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,yCAElB,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,aAAG,KAAK,EAAE,SAAS,0FACwD,eAAM,KAAK,EAAE,UAAU,wBAAgB,gCAA0B,eAAM,KAAK,EAAE,UAAU,qCAA6B,SAC5L,EACJ,cAAK,KAAK,EAAE,SAAS,YAAG;+DAC2B,GAAO,IACtD,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,kBAAS,KAAK,EAAE,YAAY,2DAElB,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,YAAG,KAAK,EAAE,SAAS,0LAEf,EACJ,aAAG,KAAK,EAAE,SAAS,gDACc,eAAM,KAAK,EAAE,UAAU,kCAA0B,yCAC9E,EACJ,cAAI,KAAK,EAAE,UAAU,aACnB,wDAA+B,eAAM,KAAK,EAAE,UAAU,mCAA2B,IAAK,EACtF,wCAAe,eAAM,KAAK,EAAE,UAAU,oCAA4B,IAAK,IACpE,IACD,IACE,EAEV,mBAAS,KAAK,EAAE,YAAY,aAC1B,mBAAS,KAAK,EAAE,YAAY,aAC1B,eAAM,KAAK,EAAE,UAAU,yCAAiC,oCAChD,EACV,eAAK,KAAK,EAAE,UAAU,aACpB,aAAG,KAAK,EAAE,SAAS,4FAC0D,eAAM,KAAK,EAAE,UAAU,oBAAY,8DAAwD,eAAM,KAAK,EAAE,UAAU,6BAAqB,yEAChN,EACJ,YAAG,KAAK,EAAE,SAAS,2BAAgB,EACnC,cAAI,KAAK,EAAE,UAAU,aACnB,yBAAI,yDAA0C,eAAS,eAAM,KAAK,EAAE,UAAU,yDAAiD,YAAM,eAAM,KAAK,EAAE,UAAU,mEAA2D,IAAK,EAC5N,yBAAI,0DAA2C,0FAAuF,IACnI,IACD,IACE,IACN,EAGN,eAAK,KAAK,EAAE,MAAM,0CACU,YAAG,IAAI,EAAC,wBAAwB,EAAC,KAAK,EAAC,iBAAiB,4CAAgC,cAAS,YAAG,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,iBAAiB,6BAAiB,IAC3K,IACF,GACC,CACV,CAAC"}
|