@prism-d1/cli 1.7.0 → 1.8.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/src/commands/_top/dashboard.d.ts +4 -0
- package/dist/src/commands/_top/dashboard.d.ts.map +1 -1
- package/dist/src/commands/_top/dashboard.js +36 -3
- package/dist/src/commands/_top/dashboard.js.map +1 -1
- package/dist/src/commands/_top/mcp.d.ts +7 -0
- package/dist/src/commands/_top/mcp.d.ts.map +1 -0
- package/dist/src/commands/_top/mcp.js +23 -0
- package/dist/src/commands/_top/mcp.js.map +1 -0
- package/dist/src/dashboard/commits.d.ts +2 -0
- package/dist/src/dashboard/commits.d.ts.map +1 -1
- package/dist/src/dashboard/commits.js +4 -1
- package/dist/src/dashboard/commits.js.map +1 -1
- package/dist/src/dashboard/page.d.ts +1 -1
- package/dist/src/dashboard/page.d.ts.map +1 -1
- package/dist/src/dashboard/page.js +45 -14
- package/dist/src/dashboard/page.js.map +1 -1
- package/dist/src/dashboard/payload.d.ts +28 -1
- package/dist/src/dashboard/payload.d.ts.map +1 -1
- package/dist/src/dashboard/payload.js +34 -7
- package/dist/src/dashboard/payload.js.map +1 -1
- package/dist/src/dashboard/repos.d.ts +1 -0
- package/dist/src/dashboard/repos.d.ts.map +1 -1
- package/dist/src/dashboard/repos.js +2 -1
- package/dist/src/dashboard/repos.js.map +1 -1
- package/dist/src/dashboard/server.d.ts +2 -2
- package/dist/src/dashboard/server.d.ts.map +1 -1
- package/dist/src/dashboard/server.js +1 -1
- package/dist/src/dashboard/server.js.map +1 -1
- package/dist/src/dashboard/setup.d.ts +51 -1
- package/dist/src/dashboard/setup.d.ts.map +1 -1
- package/dist/src/dashboard/setup.js +125 -15
- package/dist/src/dashboard/setup.js.map +1 -1
- package/dist/src/dashboard/summary.d.ts +2 -0
- package/dist/src/dashboard/summary.d.ts.map +1 -1
- package/dist/src/dashboard/summary.js +1 -1
- package/dist/src/dashboard/summary.js.map +1 -1
- package/dist/src/dashboard/usage-cache.d.ts +44 -0
- package/dist/src/dashboard/usage-cache.d.ts.map +1 -0
- package/dist/src/dashboard/usage-cache.js +90 -0
- package/dist/src/dashboard/usage-cache.js.map +1 -0
- package/dist/src/dashboard/usage.d.ts +18 -1
- package/dist/src/dashboard/usage.d.ts.map +1 -1
- package/dist/src/dashboard/usage.js +50 -12
- package/dist/src/dashboard/usage.js.map +1 -1
- package/dist/src/mcp/server.d.ts +7 -0
- package/dist/src/mcp/server.d.ts.map +1 -0
- package/dist/src/mcp/server.js +54 -0
- package/dist/src/mcp/server.js.map +1 -0
- package/dist/src/mcp/tools.d.ts +82 -0
- package/dist/src/mcp/tools.d.ts.map +1 -0
- package/dist/src/mcp/tools.js +410 -0
- package/dist/src/mcp/tools.js.map +1 -0
- package/dist/src/utils/private-json.d.ts +5 -0
- package/dist/src/utils/private-json.d.ts.map +1 -0
- package/dist/src/utils/private-json.js +29 -0
- package/dist/src/utils/private-json.js.map +1 -0
- package/dist/src/utils/tool-check.d.ts +9 -0
- package/dist/src/utils/tool-check.d.ts.map +1 -1
- package/dist/src/utils/tool-check.js +37 -2
- package/dist/src/utils/tool-check.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { PayloadTiming } from '../../dashboard/payload.js';
|
|
1
2
|
export declare function parsePort(v: string | undefined): number;
|
|
3
|
+
export declare function formatTiming(t: PayloadTiming): string;
|
|
2
4
|
declare const _default: {
|
|
3
5
|
description: string;
|
|
4
6
|
options: {
|
|
@@ -11,6 +13,8 @@ declare const _default: {
|
|
|
11
13
|
root?: string;
|
|
12
14
|
port?: string;
|
|
13
15
|
open?: boolean;
|
|
16
|
+
fresh?: boolean;
|
|
17
|
+
timing?: boolean;
|
|
14
18
|
}): Promise<void>;
|
|
15
19
|
};
|
|
16
20
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../../src/commands/_top/dashboard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../../src/commands/_top/dashboard.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAoB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAkBlF,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMvD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAErD;;;;;;;iBAaoB;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;;AAXvI,wBAgFE"}
|
|
@@ -7,6 +7,8 @@ import { ActionRunner, cliEntry, repoId } from '../../dashboard/actions.js';
|
|
|
7
7
|
import { setupApi } from '../../dashboard/setup-api.js';
|
|
8
8
|
import { repoRootOf } from '../../aws/connection.js';
|
|
9
9
|
import { systemdUserAvailable } from '../../utils/otel-sync-schedule.js';
|
|
10
|
+
import { collectUsage, emptyUsage } from '../../dashboard/usage.js';
|
|
11
|
+
import { UsageCache, usageCachePath } from '../../dashboard/usage-cache.js';
|
|
10
12
|
/** Opens the URL in the default browser. argv only, detached; failure is non-fatal. */
|
|
11
13
|
function openBrowser(url) {
|
|
12
14
|
const [cmd, args] = process.platform === 'darwin' ? ['open', [url]]
|
|
@@ -31,6 +33,9 @@ export function parsePort(v) {
|
|
|
31
33
|
throw new Error('--port must be 0 or between 1024 and 65535');
|
|
32
34
|
return n;
|
|
33
35
|
}
|
|
36
|
+
export function formatTiming(t) {
|
|
37
|
+
return `prism dashboard timing: scan ${t.scan} ms, setup ${t.setup} ms, usage ${t.usage} ms (${t.cacheHit ? 'cache hit' : 'codeburn export'}), total ${t.total} ms`;
|
|
38
|
+
}
|
|
34
39
|
export default {
|
|
35
40
|
description: 'Local web dashboard (127.0.0.1 only): codewatch results, codeburn usage, and a Setup page that runs local setup steps. Read-only in AWS.',
|
|
36
41
|
options: [
|
|
@@ -39,16 +44,36 @@ export default {
|
|
|
39
44
|
{ flags: '--all', description: '[deprecated, no effect] every repo under --root is now shown by default' },
|
|
40
45
|
{ flags: '--port <n>', description: 'Port on 127.0.0.1 (default: a random free port)' },
|
|
41
46
|
{ flags: '--no-open', description: 'Do not open a browser' },
|
|
47
|
+
{ flags: '--fresh', description: 'With --json: run the codeburn exports now instead of using the usage cache (~/.prism/cache, 5 minutes)' },
|
|
48
|
+
{ flags: '--timing', description: 'With --json: print how long each stage took to stderr' },
|
|
42
49
|
],
|
|
43
50
|
async action(opts) {
|
|
44
51
|
// stderr, so --json output stays parseable.
|
|
45
52
|
if (opts.all)
|
|
46
53
|
console.error('prism: --all is deprecated and has no effect; the dashboard now scans your home directory (or --root) by default.');
|
|
47
|
-
const
|
|
54
|
+
const usageCache = new UsageCache({ file: usageCachePath(homedir()), collect: () => collectUsage() });
|
|
48
55
|
if (opts.json) {
|
|
49
|
-
|
|
56
|
+
let refresh = null;
|
|
57
|
+
const payload = await buildPayload({
|
|
58
|
+
cwd: process.cwd(), root: opts.root,
|
|
59
|
+
usage: async () => { const r = await usageCache.get({ fresh: opts.fresh }); refresh = r.refresh; return r; },
|
|
60
|
+
});
|
|
61
|
+
process.stdout.write(JSON.stringify(payload, null, 2) + '\n');
|
|
62
|
+
if (opts.timing)
|
|
63
|
+
console.error(formatTiming(payload.timing));
|
|
64
|
+
// A stale cache was printed; finish its background refresh so the next run gets new data.
|
|
65
|
+
if (refresh)
|
|
66
|
+
await refresh;
|
|
50
67
|
return;
|
|
51
68
|
}
|
|
69
|
+
// The page's first paint never waits for codeburn: it shows the cached usage, or "loading" until /api/usage answers.
|
|
70
|
+
const build = () => buildPayload({
|
|
71
|
+
cwd: process.cwd(), root: opts.root,
|
|
72
|
+
usage: async () => {
|
|
73
|
+
const u = usageCache.current();
|
|
74
|
+
return u ? { usage: u, cacheHit: true } : { usage: emptyUsage('loading', 'Loading usage from codeburn...'), cacheHit: false };
|
|
75
|
+
},
|
|
76
|
+
});
|
|
52
77
|
let port;
|
|
53
78
|
try {
|
|
54
79
|
port = parsePort(opts.port);
|
|
@@ -76,7 +101,15 @@ export default {
|
|
|
76
101
|
identity: { env: process.env, home: homedir(), repoRoot: repoRootOf(process.cwd()) },
|
|
77
102
|
refresh: () => { payload.invalidate(); return payload(); },
|
|
78
103
|
});
|
|
79
|
-
|
|
104
|
+
// fresh=1 (the Refresh button) waits for new exports; otherwise the cache, refreshed in the background when stale.
|
|
105
|
+
const getUsage = async (url) => {
|
|
106
|
+
const r = await usageCache.get({ fresh: url.searchParams.get('fresh') === '1' });
|
|
107
|
+
if (!r.cacheHit)
|
|
108
|
+
payload.invalidate();
|
|
109
|
+
r.refresh?.then(() => payload.invalidate(), () => { });
|
|
110
|
+
return { usage: r.usage, cacheHit: r.cacheHit };
|
|
111
|
+
};
|
|
112
|
+
srv = await startServer({ port, getPayload: payload, getReport, getApi: { ...api.getApi, '/api/usage': getUsage }, postApi: api.postApi });
|
|
80
113
|
}
|
|
81
114
|
catch (e) {
|
|
82
115
|
console.error(`Error: could not start the dashboard on ${BIND_HOST}${port ? `:${port}` : ''}: ${e.message}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../../src/commands/_top/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../../src/commands/_top/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../../src/commands/_top/mcp.ts"],"names":[],"mappings":";;;;;AAgBA,wBAME"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { findPackageDir } from './version.js';
|
|
6
|
+
import { runStdio } from '../../mcp/server.js';
|
|
7
|
+
function cliVersion() {
|
|
8
|
+
const dir = findPackageDir(dirname(fileURLToPath(import.meta.url)));
|
|
9
|
+
try {
|
|
10
|
+
return dir ? String(JSON.parse(readFileSync(join(dir, 'package.json'), 'utf8')).version) : 'unknown';
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return 'unknown';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export default {
|
|
17
|
+
description: 'MCP server on stdio for Kiro, Claude Code and other MCP clients: read-only codewatch findings and reports, cached spend and the setup checklist. No network listener; exits when stdin closes.',
|
|
18
|
+
options: [],
|
|
19
|
+
async action() {
|
|
20
|
+
await runStdio({ cwd: process.cwd(), home: homedir(), version: cliVersion() });
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../../src/commands/_top/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,SAAS,UAAU;IACjB,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,eAAe;IACb,WAAW,EAAE,gMAAgM;IAC7M,OAAO,EAAE,EAAE;IACX,KAAK,CAAC,MAAM;QACV,MAAM,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;CACF,CAAC"}
|
|
@@ -2,6 +2,8 @@ import { type Finding, type PrismResult } from '../codewatch/results.js';
|
|
|
2
2
|
export declare const MAX_COMMIT_ROWS = 50;
|
|
3
3
|
/** History read per repo; ranges reaching further are cut there. */
|
|
4
4
|
export declare const LOG_LIMIT = 5000;
|
|
5
|
+
/** Per git call (log, blame). */
|
|
6
|
+
export declare const GIT_TIMEOUT_MS = 30000;
|
|
5
7
|
export interface LogEntry {
|
|
6
8
|
sha: string;
|
|
7
9
|
parents: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commits.d.ts","sourceRoot":"","sources":["../../../src/dashboard/commits.ts"],"names":[],"mappings":"AAkBA,OAAO,EAA2B,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAElG,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,oEAAoE;AACpE,eAAO,MAAM,SAAS,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"commits.d.ts","sourceRoot":"","sources":["../../../src/dashboard/commits.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,8 +20,11 @@ import { REASON_GITLEAKS_MISSING } from '../codewatch/results.js';
|
|
|
20
20
|
export const MAX_COMMIT_ROWS = 50;
|
|
21
21
|
/** History read per repo; ranges reaching further are cut there. */
|
|
22
22
|
export const LOG_LIMIT = 5000;
|
|
23
|
+
/** Per git call (log, blame). */
|
|
24
|
+
export const GIT_TIMEOUT_MS = 30_000;
|
|
23
25
|
function git(repo, args) {
|
|
24
|
-
|
|
26
|
+
// A timed-out git (a hung filesystem or credential prompt) comes back as not ok.
|
|
27
|
+
const r = spawnSync('git', ['-C', repo, ...args], { encoding: 'utf8', maxBuffer: 64 * 1024 * 1024, stdio: ['ignore', 'pipe', 'ignore'], timeout: GIT_TIMEOUT_MS });
|
|
25
28
|
return { ok: r.status === 0, out: r.stdout || '' };
|
|
26
29
|
}
|
|
27
30
|
const SEP = '\x1f';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commits.js","sourceRoot":"","sources":["../../../src/dashboard/commits.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commits.js","sourceRoot":"","sources":["../../../src/dashboard/commits.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The dashboard's single-page app: one self-contained HTML document with
|
|
3
3
|
* inline CSS and JS (nonce-gated by the CSP), no CDN and no network fetch
|
|
4
|
-
* other than its own GET /api/data, so it works offline.
|
|
4
|
+
* other than its own GET routes (/api/data, then /api/usage), so it works offline.
|
|
5
5
|
*
|
|
6
6
|
* Every value from the payload is placed with textContent or a DOM attribute;
|
|
7
7
|
* innerHTML is never used for data.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../src/dashboard/page.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../src/dashboard/page.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAqqBH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,MAAM,CAgB3D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The dashboard's single-page app: one self-contained HTML document with
|
|
3
3
|
* inline CSS and JS (nonce-gated by the CSP), no CDN and no network fetch
|
|
4
|
-
* other than its own GET /api/data, so it works offline.
|
|
4
|
+
* other than its own GET routes (/api/data, then /api/usage), so it works offline.
|
|
5
5
|
*
|
|
6
6
|
* Every value from the payload is placed with textContent or a DOM attribute;
|
|
7
7
|
* innerHTML is never used for data.
|
|
@@ -62,6 +62,7 @@ svg.trend line { stroke:var(--line); }
|
|
|
62
62
|
.slim-line { padding:5px 0; border-top:1px solid var(--line); font-size:13px; overflow-wrap:anywhere; } .slim-line:first-of-type { border-top:none; } .slim-line code { white-space:normal; overflow-wrap:anywhere; }
|
|
63
63
|
.empty-line { color:var(--muted); margin:10px 0 4px; font-size:13px; overflow-wrap:anywhere; } .empty-line b { color:var(--text); }
|
|
64
64
|
.changed { outline:2px solid var(--accent); outline-offset:1px; border-radius:4px; }
|
|
65
|
+
.loading { color:var(--muted); }
|
|
65
66
|
@keyframes prism-flash { from { background-color:color-mix(in srgb, var(--accent) 35%, transparent); } to { background-color:transparent; } }
|
|
66
67
|
@media (prefers-reduced-motion: no-preference) { .changed { animation:prism-flash 2.5s ease-out 1; } }
|
|
67
68
|
${SETUP_STYLE}
|
|
@@ -169,9 +170,11 @@ function summaryPanel(sum) {
|
|
|
169
170
|
}
|
|
170
171
|
const sp = sum && sum.spend;
|
|
171
172
|
const ok = sp && sp.status === 'ok';
|
|
173
|
+
const loadingUsage = sp && sp.status === 'loading';
|
|
174
|
+
const updated = sp && sp.updatedAt ? ' · updated ' + when(sp.updatedAt) : '';
|
|
172
175
|
const spendCard = (label, key, n, det) => scard(label,
|
|
173
|
-
ok ? track(key, n, el('div', { class: 'v' }, money(n, sp.currency))) : el('div', { class: 'v' }, '-'),
|
|
174
|
-
detail(ok ? det : txt((sp && sp.message) || (sp && sp.status) || 'no codeburn data')));
|
|
176
|
+
ok ? track(key, n, el('div', { class: 'v' }, money(n, sp.currency))) : el('div', { class: 'v' + (loadingUsage ? ' loading' : '') }, loadingUsage ? 'loading' : '-'),
|
|
177
|
+
detail(ok ? det + updated : txt((sp && sp.message) || (sp && sp.status) || 'no codeburn data')));
|
|
175
178
|
box.append(spendCard('Spend today', 'sum:today', sp && sp.today, 'codeburn, all projects'));
|
|
176
179
|
box.append(spendCard('Spend this month', 'sum:month', sp && sp.month, 'codeburn, this calendar month'));
|
|
177
180
|
const w = (sum && sum.warnings) || { count: 0, first: null };
|
|
@@ -330,7 +333,17 @@ function codewatchPanel(data) {
|
|
|
330
333
|
return s;
|
|
331
334
|
}
|
|
332
335
|
|
|
336
|
+
/** "updated <time>", and whether a refresh is running or the last one failed. */
|
|
337
|
+
function usageUpdated(u) {
|
|
338
|
+
if (!u.updatedAt) return null;
|
|
339
|
+
return el('p', { class: 'note' }, 'updated ' + when(u.updatedAt)
|
|
340
|
+
+ (u.refreshError ? ' · refresh failed: ' + txt(u.refreshError) : u.stale ? ' · refreshing in the background' : ''));
|
|
341
|
+
}
|
|
342
|
+
|
|
333
343
|
function usagePanel(u) {
|
|
344
|
+
if (u.status === 'loading') {
|
|
345
|
+
return el('section', { class: 'card' }, el('h2', {}, 'Usage (codeburn)'), el('p', { class: 'empty loading' }, txt(u.message)));
|
|
346
|
+
}
|
|
334
347
|
if (u.status === 'not-installed' || u.status === 'no-data') {
|
|
335
348
|
return emptyLine('Usage (codeburn)', txt(u.message), u.status === 'not-installed' ? '' : el('span', {}, ' Usage appears once a coding tool records sessions; full charts: ', el('code', {}, txt(u.fullView)), '.'));
|
|
336
349
|
}
|
|
@@ -346,7 +359,7 @@ function usagePanel(u) {
|
|
|
346
359
|
s.append(el('h3', {}, 'Top projects this month'));
|
|
347
360
|
s.append(table(['Project', 'Cost', 'Sessions'], u.topProjects.map((p) => [el('span', { title: p.path }, p.name), num(money(p.cost, u.currency)), num(p.sessions)])));
|
|
348
361
|
}
|
|
349
|
-
s.append(el('p', { class: 'note' }, 'Full charts: run ', el('code', {}, txt(u.fullView)), ' in a terminal.'));
|
|
362
|
+
s.append(usageUpdated(u) || '', el('p', { class: 'note' }, 'Full charts: run ', el('code', {}, txt(u.fullView)), ' in a terminal.'));
|
|
350
363
|
return s;
|
|
351
364
|
}
|
|
352
365
|
|
|
@@ -595,10 +608,29 @@ function awsPanel(aws) {
|
|
|
595
608
|
const AUTO_REFRESH_MS = 60000;
|
|
596
609
|
let lastLoad = 0, loading = false;
|
|
597
610
|
|
|
598
|
-
|
|
611
|
+
/**
|
|
612
|
+
* Two stages: /api/data (local checks, with cached usage or "loading") paints
|
|
613
|
+
* at once; then /api/usage, and when its usage differs from what was painted,
|
|
614
|
+
* /api/data again (cheap: the server rebuilds it from the cache). fresh: the
|
|
615
|
+
* Refresh button, which runs new codeburn exports; auto-refresh uses the cache.
|
|
616
|
+
*/
|
|
617
|
+
async function load(fresh) {
|
|
599
618
|
if (loading) return;
|
|
600
619
|
loading = true;
|
|
601
|
-
try {
|
|
620
|
+
try {
|
|
621
|
+
const data = await render();
|
|
622
|
+
if (!data) return;
|
|
623
|
+
let u;
|
|
624
|
+
try { u = await getJson('/api/usage' + (fresh ? '?fresh=1' : '')); } catch (e) { return; }
|
|
625
|
+
const was = data.usage || {};
|
|
626
|
+
if (u && u.usage && (u.usage.updatedAt !== was.updatedAt || u.usage.status !== was.status)) await render();
|
|
627
|
+
} finally { loading = false; lastLoad = Date.now(); }
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
async function getJson(path) {
|
|
631
|
+
const res = await fetch(path, { credentials: 'same-origin', cache: 'no-store' });
|
|
632
|
+
if (!res.ok) throw new Error('HTTP ' + res.status);
|
|
633
|
+
return res.json();
|
|
602
634
|
}
|
|
603
635
|
|
|
604
636
|
async function render() {
|
|
@@ -607,13 +639,11 @@ async function render() {
|
|
|
607
639
|
meta.textContent = 'loading...';
|
|
608
640
|
let data;
|
|
609
641
|
try {
|
|
610
|
-
|
|
611
|
-
if (!res.ok) throw new Error('HTTP ' + res.status);
|
|
612
|
-
data = await res.json();
|
|
642
|
+
data = await getJson('/api/data');
|
|
613
643
|
} catch (e) {
|
|
614
644
|
// Keep the last good view; say the refresh failed.
|
|
615
645
|
meta.textContent = 'failed to load: ' + e.message + (before && before !== 'loading...' ? ' · showing ' + before : '');
|
|
616
|
-
return;
|
|
646
|
+
return null;
|
|
617
647
|
}
|
|
618
648
|
// Open/closed state of keyed <details> survives the redraw.
|
|
619
649
|
const openState = new Map([...main.querySelectorAll('details[data-key]')].map((d) => [d.getAttribute('data-key'), d.open]));
|
|
@@ -638,13 +668,14 @@ async function render() {
|
|
|
638
668
|
meta.textContent = c.repos + ' repos under ' + txt(data.scope.root_display) + ' · ' + c.codewatch + ' with codewatch' + (data.scope.truncated ? ' (scan capped)' : '')
|
|
639
669
|
+ ' · updated ' + when(data.generated_at) + (changed.size ? ' · ' + changed.size + ' value' + (changed.size === 1 ? '' : 's') + ' changed (outlined)' : '') + ' · refreshes every minute while visible';
|
|
640
670
|
await renderSetup(data);
|
|
671
|
+
return data;
|
|
641
672
|
}
|
|
642
673
|
${SETUP_SCRIPT}
|
|
643
674
|
${THEME_SCRIPT}
|
|
644
|
-
document.getElementById('refresh').addEventListener('click', load);
|
|
645
|
-
setInterval(() => { if (document.visibilityState === 'visible' && Date.now() - lastLoad >= AUTO_REFRESH_MS - 1000) load(); }, AUTO_REFRESH_MS / 4);
|
|
646
|
-
document.addEventListener('visibilitychange', () => { if (document.visibilityState === 'visible' && Date.now() - lastLoad >= AUTO_REFRESH_MS) load(); });
|
|
647
|
-
load();
|
|
675
|
+
document.getElementById('refresh').addEventListener('click', () => load(true));
|
|
676
|
+
setInterval(() => { if (document.visibilityState === 'visible' && Date.now() - lastLoad >= AUTO_REFRESH_MS - 1000) load(false); }, AUTO_REFRESH_MS / 4);
|
|
677
|
+
document.addEventListener('visibilitychange', () => { if (document.visibilityState === 'visible' && Date.now() - lastLoad >= AUTO_REFRESH_MS) load(false); });
|
|
678
|
+
load(false);
|
|
648
679
|
`;
|
|
649
680
|
export function renderPage(nonce, csrf = '') {
|
|
650
681
|
// The nonce and the CSRF token are base64/base64url generated server-side; nothing user-derived is interpolated here.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/dashboard/page.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEtF,oHAAoH;AACpH,MAAM,UAAU,GAAG,iNAAiN,CAAC;AACrO,MAAM,SAAS,GAAG,kNAAkN,CAAC;AAErO,MAAM,KAAK,GAAG;+BACiB,UAAU;8FACqD,SAAS;iDACtD,SAAS
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/dashboard/page.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEtF,oHAAoH;AACpH,MAAM,UAAU,GAAG,iNAAiN,CAAC;AACrO,MAAM,SAAS,GAAG,kNAAkN,CAAC;AAErO,MAAM,KAAK,GAAG;+BACiB,UAAU;8FACqD,SAAS;iDACtD,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDxD,WAAW;CACZ,CAAC;AAEF,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2lBb,YAAY;EACZ,YAAY;;;;;CAKb,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,IAAI,GAAG,EAAE;IACjD,sHAAsH;IACtH,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtE,OAAO;;mCAE0B,IAAI;iBACtB,KAAK,KAAK,UAAU;8CACS,KAAK,KAAK,KAAK;;;;;;;;iBAQ5C,KAAK,KAAK,MAAM,yBAAyB,CAAC;AAC3D,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { type CodewatchPanel, type SecretScanning } from './codewatch.js';
|
|
7
7
|
import { type DiscoverOptions } from './repos.js';
|
|
8
|
-
import { type CheckItem, type CodewatchSetup, type MachineDeps, type SecuritySetup } from './setup.js';
|
|
8
|
+
import { type GitRunner, type CheckItem, type CodewatchSetup, type MachineDeps, type SecuritySetup } from './setup.js';
|
|
9
9
|
import { type DashboardSummary } from './summary.js';
|
|
10
10
|
import { type CheckHelp, type SyncMode, type SyncModeSource } from '../utils/sync-mode.js';
|
|
11
11
|
import { type GlobalStatus } from '../codewatch/globalHooks.js';
|
|
@@ -129,10 +129,37 @@ export interface DashboardPayload {
|
|
|
129
129
|
aws: AwsPanel;
|
|
130
130
|
/** The one-glance summary shown at the top of the page (buildSummary). */
|
|
131
131
|
summary: DashboardSummary;
|
|
132
|
+
/**
|
|
133
|
+
* Milliseconds per stage, for diagnosis (`dashboard --json --timing`). scan:
|
|
134
|
+
* repo discovery. setup: checks and codewatch results for every repo and
|
|
135
|
+
* this machine. usage: codeburn (runs alongside setup). cacheHit: usage came
|
|
136
|
+
* from the cache.
|
|
137
|
+
*/
|
|
138
|
+
timing: PayloadTiming;
|
|
132
139
|
}
|
|
140
|
+
export interface PayloadTiming {
|
|
141
|
+
scan: number;
|
|
142
|
+
setup: number;
|
|
143
|
+
usage: number;
|
|
144
|
+
total: number;
|
|
145
|
+
cacheHit: boolean;
|
|
146
|
+
}
|
|
147
|
+
/** The usage panel and whether it came from the cache (usage-cache.ts). */
|
|
148
|
+
export type UsageSource = () => Promise<{
|
|
149
|
+
usage: UsagePanel;
|
|
150
|
+
cacheHit: boolean;
|
|
151
|
+
}>;
|
|
152
|
+
/** At most this many repos are checked at once (each check is one git process). */
|
|
153
|
+
export declare const GIT_CONCURRENCY = 8;
|
|
154
|
+
/** fn over items, at most `limit` running at a time; results keep the input order. */
|
|
155
|
+
export declare function mapLimit<T, R>(items: T[], limit: number, fn: (item: T) => Promise<R>): Promise<R[]>;
|
|
133
156
|
export interface PayloadOptions extends DiscoverOptions {
|
|
134
157
|
trendRuns?: number;
|
|
135
158
|
exporter?: CodeburnExport;
|
|
159
|
+
/** Default: collectUsage with `exporter`, uncached. */
|
|
160
|
+
usage?: UsageSource;
|
|
161
|
+
/** Runs the per-repo git calls; injected in tests. */
|
|
162
|
+
git?: GitRunner;
|
|
136
163
|
machineDeps?: MachineDeps;
|
|
137
164
|
pathEnv?: string;
|
|
138
165
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../src/dashboard/payload.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAA2C,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACnH,OAAO,EAA6B,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,
|
|
1
|
+
{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../src/dashboard/payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ export function tildeHome(p, home) {
|
|
|
19
19
|
return p.startsWith(home + sep) ? '~' + p.slice(home.length) : p;
|
|
20
20
|
}
|
|
21
21
|
import { collectUsage, spendByRepo } from './usage.js';
|
|
22
|
+
import { versionCachePath } from './usage-cache.js';
|
|
22
23
|
import { collectSecurity } from './security.js';
|
|
23
24
|
import { collectAws } from './aws.js';
|
|
24
25
|
export const PAYLOAD_SCHEMA = 'prism.dashboard.v2';
|
|
@@ -38,6 +39,19 @@ export function globalSuggestion(g, missing) {
|
|
|
38
39
|
reason: `${missing} repos don't have codewatch. Cover all of them at once.`,
|
|
39
40
|
};
|
|
40
41
|
}
|
|
42
|
+
/** At most this many repos are checked at once (each check is one git process). */
|
|
43
|
+
export const GIT_CONCURRENCY = 8;
|
|
44
|
+
/** fn over items, at most `limit` running at a time; results keep the input order. */
|
|
45
|
+
export async function mapLimit(items, limit, fn) {
|
|
46
|
+
const out = new Array(items.length);
|
|
47
|
+
let next = 0;
|
|
48
|
+
const worker = async () => { while (next < items.length) {
|
|
49
|
+
const i = next++;
|
|
50
|
+
out[i] = await fn(items[i]);
|
|
51
|
+
} };
|
|
52
|
+
await Promise.all(Array.from({ length: Math.min(limit, items.length) }, worker));
|
|
53
|
+
return out;
|
|
54
|
+
}
|
|
41
55
|
const byName = (a, b) => a.name.localeCompare(b.name) || a.path.localeCompare(b.path);
|
|
42
56
|
const STATUS_ORDER = { ok: 0, warn: 1, missing: 2, 'opted-out': 3 };
|
|
43
57
|
/** The current repo first, then repos with activity, then installed, bypassed (warn), missing and opted-out repos, each by name. */
|
|
@@ -49,16 +63,29 @@ export function sortCodewatchRows(rows) {
|
|
|
49
63
|
return [...rows].sort((a, b) => Number(b.active) - Number(a.active) || b.high - a.high || b.medium - a.medium || b.low - a.low || byName(a, b));
|
|
50
64
|
}
|
|
51
65
|
export async function buildPayload(opts) {
|
|
66
|
+
const t0 = Date.now();
|
|
52
67
|
const d = discoverRepos(opts);
|
|
53
|
-
const
|
|
54
|
-
|
|
68
|
+
const tScan = Date.now();
|
|
69
|
+
// Usage (codeburn) and the git checks are child processes: start both, then do the in-process work while they run.
|
|
70
|
+
let usageMs = 0;
|
|
71
|
+
const usageP = (opts.usage || (async () => ({ usage: await collectUsage({ exporter: opts.exporter, pathEnv: opts.pathEnv }), cacheHit: false })))()
|
|
72
|
+
.finally(() => { usageMs = Date.now() - tScan; });
|
|
55
73
|
const g = globalStatus(opts.home || homedir());
|
|
74
|
+
const setupsP = mapLimit(d.repos, GIT_CONCURRENCY, (r) => codewatchSetup(r.path, { pathEnv: opts.pathEnv, global: g, git: opts.git }));
|
|
75
|
+
// One turn of the event loop: a cache hit settles here, so its timing is not the sync work below.
|
|
76
|
+
await new Promise((r) => setImmediate(r));
|
|
77
|
+
const gitleaksAvailable = findOnPath('gitleaks', opts.pathEnv) !== null;
|
|
78
|
+
const machineSetup = machineChecks({ pathEnv: opts.pathEnv, global: g, versionCache: versionCachePath(opts.machineDeps?.home || opts.home || homedir()), ...opts.machineDeps });
|
|
56
79
|
const labels = repoLabels(d.repos.map((r) => r.path));
|
|
57
|
-
const spend = spendByRepo(usage.projects, d.repos.map((r) => r.path));
|
|
58
80
|
// Read each repo's results once; the Security panel below reuses them.
|
|
59
81
|
const results = new Map(d.repos.map((r) => [r.path, readResults(r.path)]));
|
|
60
|
-
const
|
|
61
|
-
|
|
82
|
+
const codewatchByRepo = new Map(d.repos.map((r) => [r.path, collectCodewatch(r.path, opts.trendRuns, gitleaksAvailable)]));
|
|
83
|
+
const setups = await setupsP;
|
|
84
|
+
const setupMs = Date.now() - tScan;
|
|
85
|
+
const { usage, cacheHit } = await usageP;
|
|
86
|
+
const spend = spendByRepo(usage.projects, d.repos.map((r) => r.path));
|
|
87
|
+
const repos = d.repos.map((r, i) => {
|
|
88
|
+
const codewatch = codewatchByRepo.get(r.path);
|
|
62
89
|
const repoResults = results.get(r.path) || [];
|
|
63
90
|
const s = spend.get(r.path) || null;
|
|
64
91
|
const securityResults = repoResults.some((x) => SECURITY_RESULT_KINDS.some(([k]) => k === x.kind));
|
|
@@ -71,7 +98,7 @@ export async function buildPayload(opts) {
|
|
|
71
98
|
current: r.current,
|
|
72
99
|
hasPrism: r.hasPrism,
|
|
73
100
|
codewatch,
|
|
74
|
-
setup:
|
|
101
|
+
setup: setups[i],
|
|
75
102
|
security: securitySetup(r.path, repoResults),
|
|
76
103
|
};
|
|
77
104
|
});
|
|
@@ -94,7 +121,6 @@ export async function buildPayload(opts) {
|
|
|
94
121
|
unscannedCommits: r.codewatch.secretScanning.unscannedCommits,
|
|
95
122
|
gitleaksWarning: r.codewatch.secretScanning.unscannedCommits > 0,
|
|
96
123
|
})));
|
|
97
|
-
const machineSetup = machineChecks({ pathEnv: opts.pathEnv, global: g, ...opts.machineDeps });
|
|
98
124
|
return {
|
|
99
125
|
schema: PAYLOAD_SCHEMA,
|
|
100
126
|
generated_at: new Date().toISOString(),
|
|
@@ -112,6 +138,7 @@ export async function buildPayload(opts) {
|
|
|
112
138
|
security: collectSecurity(repos, (p) => results.get(p) ?? readResults(p)),
|
|
113
139
|
aws: collectAws([...repos.map((r) => r.path), opts.home || homedir()]),
|
|
114
140
|
summary: buildSummary(repos, usage, machineSetup),
|
|
141
|
+
timing: { scan: tScan - t0, setup: setupMs, usage: usageMs, total: Date.now() - t0, cacheHit },
|
|
115
142
|
};
|
|
116
143
|
}
|
|
117
144
|
//# sourceMappingURL=payload.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/dashboard/payload.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAA4C,MAAM,gBAAgB,CAAC;AACnH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAwB,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/dashboard/payload.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAA4C,MAAM,gBAAgB,CAAC;AACnH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAwB,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAkB,kBAAkB,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,EAA6E,MAAM,YAAY,CAAC;AAClO,OAAO,EAAE,YAAY,EAAyB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,aAAa,EAAsD,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,IAAY;IAC/C,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IAC3B,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AACD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwD,MAAM,YAAY,CAAC;AAC7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAsB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,UAAU,EAAiB,MAAM,UAAU,CAAC;AAErD,MAAM,CAAC,MAAM,cAAc,GAAG,oBAAoB,CAAC;AA8EnD,4GAA4G;AAC5G,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAE5C,MAAM,UAAU,gBAAgB,CAAC,CAAe,EAAE,OAAe;IAC/D,IAAI,CAAC,CAAC,KAAK,KAAK,WAAW,IAAI,OAAO,GAAG,0BAA0B;QAAE,OAAO,IAAI,CAAC;IACjF,IAAI,CAAC,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QAC5B,OAAO;YACL,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC,SAAS;YACxG,MAAM,EAAE,GAAG,OAAO,qEAAqE,CAAC,CAAC,SAAS,sGAAsG;SACzM,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI;QACnG,MAAM,EAAE,GAAG,OAAO,yDAAyD;KAC5E,CAAC;AACJ,CAAC;AAoCD,mFAAmF;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAO,KAAU,EAAE,KAAa,EAAE,EAA2B;IACzF,MAAM,GAAG,GAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,GAAG,OAAO,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;QAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC;IAC9G,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACjF,OAAO,GAAG,CAAC;AACb,CAAC;AAaD,MAAM,MAAM,GAAG,CAAC,CAAiC,EAAE,CAAiC,EAAE,EAAE,CACtF,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAE/D,MAAM,YAAY,GAAuC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AAExG,oIAAoI;AACpI,MAAM,UAAU,aAAa,CAAC,IAAgB;IAC5C,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC7B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrJ,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,iBAAiB,CAAC,IAAoB;IACpD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAoB;IACrD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,mHAAmH;IACnH,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;SAChJ,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACvI,kGAAkG;IAClG,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,iBAAiB,GAAG,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACxE,MAAM,YAAY,GAAG,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAChL,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,uEAAuE;IACvE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3H,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IACnC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC;IACzC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,MAAM,KAAK,GAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAChD,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QACpC,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACnG,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI;YACnC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,SAAS,CAAC,UAAU,IAAI,eAAe,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YAC7E,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,SAAS;YACT,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAChB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC;SAC7C,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG;QAC9K,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;QACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,4EAA4E;QAC5E,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS;KAC1I,CAAC,CAAC,CAAC,CAAC;IACL,wEAAwE;IACxE,4EAA4E;IAC5E,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC7F,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAC3H,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG;QACzG,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS;QAChC,YAAY,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY;QACtC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ;QACtD,gBAAgB,EAAE,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,gBAAgB;QAC7D,eAAe,EAAE,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,gBAAgB,GAAG,CAAC;KACjE,CAAC,CAAC,CAAC,CAAC;IACL,OAAO;QACL,MAAM,EAAE,cAAc;QACtB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE;QACtL,KAAK;QACL,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE;QAChJ,OAAO,EAAE;YACP,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE;YAC/I,cAAc,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,iBAAiB,CAAC;SACvG;QACD,WAAW,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;QACrI,KAAK;QACL,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;QACzE,GAAG,EAAE,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;QACtE,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC;QACjD,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE;KAC/F,CAAC;AACJ,CAAC"}
|