codesift-mcp 0.5.24 → 0.5.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +28 -0
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/help.js +1 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/hooks.d.ts +4 -0
- package/dist/cli/hooks.d.ts.map +1 -1
- package/dist/cli/hooks.js +15 -4
- package/dist/cli/hooks.js.map +1 -1
- package/dist/cli/journal-commands.d.ts +9 -0
- package/dist/cli/journal-commands.d.ts.map +1 -0
- package/dist/cli/journal-commands.js +160 -0
- package/dist/cli/journal-commands.js.map +1 -0
- package/dist/cli/wiki-commands.d.ts.map +1 -1
- package/dist/cli/wiki-commands.js +5 -0
- package/dist/cli/wiki-commands.js.map +1 -1
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +41 -47
- package/dist/instructions.js.map +1 -1
- package/dist/parser/extractors/_shared.d.ts +2 -0
- package/dist/parser/extractors/_shared.d.ts.map +1 -1
- package/dist/parser/extractors/_shared.js +4 -0
- package/dist/parser/extractors/_shared.js.map +1 -1
- package/dist/parser/extractors/typescript.d.ts.map +1 -1
- package/dist/parser/extractors/typescript.js +606 -31
- package/dist/parser/extractors/typescript.js.map +1 -1
- package/dist/parser/parse-worker.d.ts +2 -0
- package/dist/parser/parse-worker.d.ts.map +1 -0
- package/dist/parser/parse-worker.js +47 -0
- package/dist/parser/parse-worker.js.map +1 -0
- package/dist/parser/parser-manager.d.ts +10 -1
- package/dist/parser/parser-manager.d.ts.map +1 -1
- package/dist/parser/parser-manager.js +40 -2
- package/dist/parser/parser-manager.js.map +1 -1
- package/dist/parser/parser-pool.d.ts +31 -0
- package/dist/parser/parser-pool.d.ts.map +1 -0
- package/dist/parser/parser-pool.js +211 -0
- package/dist/parser/parser-pool.js.map +1 -0
- package/dist/register-tools.d.ts.map +1 -1
- package/dist/register-tools.js +382 -35
- package/dist/register-tools.js.map +1 -1
- package/dist/retrieval/codebase-retrieval.d.ts.map +1 -1
- package/dist/retrieval/codebase-retrieval.js +9 -1
- package/dist/retrieval/codebase-retrieval.js.map +1 -1
- package/dist/search/chunker.d.ts +1 -0
- package/dist/search/chunker.d.ts.map +1 -1
- package/dist/search/chunker.js +8 -1
- package/dist/search/chunker.js.map +1 -1
- package/dist/server-helpers.d.ts +27 -0
- package/dist/server-helpers.d.ts.map +1 -1
- package/dist/server-helpers.js +90 -9
- package/dist/server-helpers.js.map +1 -1
- package/dist/server.js +31 -0
- package/dist/server.js.map +1 -1
- package/dist/storage/index-store.d.ts +41 -4
- package/dist/storage/index-store.d.ts.map +1 -1
- package/dist/storage/index-store.js +89 -6
- package/dist/storage/index-store.js.map +1 -1
- package/dist/storage/watcher.d.ts +33 -6
- package/dist/storage/watcher.d.ts.map +1 -1
- package/dist/storage/watcher.js +73 -34
- package/dist/storage/watcher.js.map +1 -1
- package/dist/storage/workspace-resolver.d.ts +15 -0
- package/dist/storage/workspace-resolver.d.ts.map +1 -0
- package/dist/storage/workspace-resolver.js +130 -0
- package/dist/storage/workspace-resolver.js.map +1 -0
- package/dist/tools/_helpers.d.ts +37 -0
- package/dist/tools/_helpers.d.ts.map +1 -0
- package/dist/tools/_helpers.js +31 -0
- package/dist/tools/_helpers.js.map +1 -0
- package/dist/tools/constant-resolution-tools.d.ts +8 -0
- package/dist/tools/constant-resolution-tools.d.ts.map +1 -0
- package/dist/tools/constant-resolution-tools.js +68 -0
- package/dist/tools/constant-resolution-tools.js.map +1 -0
- package/dist/tools/graph-tools.d.ts +27 -5
- package/dist/tools/graph-tools.d.ts.map +1 -1
- package/dist/tools/graph-tools.js +141 -18
- package/dist/tools/graph-tools.js.map +1 -1
- package/dist/tools/hotspot-tools.d.ts +6 -0
- package/dist/tools/hotspot-tools.d.ts.map +1 -1
- package/dist/tools/hotspot-tools.js +48 -8
- package/dist/tools/hotspot-tools.js.map +1 -1
- package/dist/tools/impact-tools.d.ts.map +1 -1
- package/dist/tools/impact-tools.js +9 -2
- package/dist/tools/impact-tools.js.map +1 -1
- package/dist/tools/index-tools.d.ts +15 -1
- package/dist/tools/index-tools.d.ts.map +1 -1
- package/dist/tools/index-tools.js +161 -16
- package/dist/tools/index-tools.js.map +1 -1
- package/dist/tools/journal-generator-helpers.d.ts +55 -0
- package/dist/tools/journal-generator-helpers.d.ts.map +1 -0
- package/dist/tools/journal-generator-helpers.js +250 -0
- package/dist/tools/journal-generator-helpers.js.map +1 -0
- package/dist/tools/journal-generator.d.ts +48 -0
- package/dist/tools/journal-generator.d.ts.map +1 -0
- package/dist/tools/journal-generator.js +204 -0
- package/dist/tools/journal-generator.js.map +1 -0
- package/dist/tools/journal-git-client.d.ts +20 -0
- package/dist/tools/journal-git-client.d.ts.map +1 -0
- package/dist/tools/journal-git-client.js +57 -0
- package/dist/tools/journal-git-client.js.map +1 -0
- package/dist/tools/journal-llm-client.d.ts +57 -0
- package/dist/tools/journal-llm-client.d.ts.map +1 -0
- package/dist/tools/journal-llm-client.js +175 -0
- package/dist/tools/journal-llm-client.js.map +1 -0
- package/dist/tools/journal-migrator.d.ts +22 -0
- package/dist/tools/journal-migrator.d.ts.map +1 -0
- package/dist/tools/journal-migrator.js +183 -0
- package/dist/tools/journal-migrator.js.map +1 -0
- package/dist/tools/journal-phase-detector.d.ts +26 -0
- package/dist/tools/journal-phase-detector.d.ts.map +1 -0
- package/dist/tools/journal-phase-detector.js +126 -0
- package/dist/tools/journal-phase-detector.js.map +1 -0
- package/dist/tools/journal-sentinel.d.ts +15 -0
- package/dist/tools/journal-sentinel.d.ts.map +1 -0
- package/dist/tools/journal-sentinel.js +110 -0
- package/dist/tools/journal-sentinel.js.map +1 -0
- package/dist/tools/journal-templates.d.ts +28 -0
- package/dist/tools/journal-templates.d.ts.map +1 -0
- package/dist/tools/journal-templates.js +93 -0
- package/dist/tools/journal-templates.js.map +1 -0
- package/dist/tools/pattern-tools.d.ts +2 -0
- package/dist/tools/pattern-tools.d.ts.map +1 -1
- package/dist/tools/pattern-tools.js +73 -0
- package/dist/tools/pattern-tools.js.map +1 -1
- package/dist/tools/perf-tools.d.ts.map +1 -1
- package/dist/tools/perf-tools.js +6 -0
- package/dist/tools/perf-tools.js.map +1 -1
- package/dist/tools/plan-turn-tools.d.ts.map +1 -1
- package/dist/tools/plan-turn-tools.js +38 -2
- package/dist/tools/plan-turn-tools.js.map +1 -1
- package/dist/tools/project-tools.d.ts +6 -0
- package/dist/tools/project-tools.d.ts.map +1 -1
- package/dist/tools/project-tools.js +65 -25
- package/dist/tools/project-tools.js.map +1 -1
- package/dist/tools/python-constants-tools.d.ts +6 -0
- package/dist/tools/python-constants-tools.d.ts.map +1 -1
- package/dist/tools/python-constants-tools.js.map +1 -1
- package/dist/tools/react-tools.d.ts +44 -1
- package/dist/tools/react-tools.d.ts.map +1 -1
- package/dist/tools/react-tools.js +142 -9
- package/dist/tools/react-tools.js.map +1 -1
- package/dist/tools/search-tools.d.ts.map +1 -1
- package/dist/tools/search-tools.js +21 -2
- package/dist/tools/search-tools.js.map +1 -1
- package/dist/tools/status-tools.d.ts +10 -0
- package/dist/tools/status-tools.d.ts.map +1 -1
- package/dist/tools/status-tools.js +53 -2
- package/dist/tools/status-tools.js.map +1 -1
- package/dist/tools/symbol-tools.d.ts +13 -0
- package/dist/tools/symbol-tools.d.ts.map +1 -1
- package/dist/tools/symbol-tools.js +38 -0
- package/dist/tools/symbol-tools.js.map +1 -1
- package/dist/tools/typescript-constants-tools.d.ts +6 -0
- package/dist/tools/typescript-constants-tools.d.ts.map +1 -0
- package/dist/tools/typescript-constants-tools.js +687 -0
- package/dist/tools/typescript-constants-tools.js.map +1 -0
- package/dist/tools/wiki-hub-ranker.d.ts +36 -0
- package/dist/tools/wiki-hub-ranker.d.ts.map +1 -0
- package/dist/tools/wiki-hub-ranker.js +72 -0
- package/dist/tools/wiki-hub-ranker.js.map +1 -0
- package/dist/tools/wiki-lint.d.ts +7 -2
- package/dist/tools/wiki-lint.d.ts.map +1 -1
- package/dist/tools/wiki-lint.js +73 -1
- package/dist/tools/wiki-lint.js.map +1 -1
- package/dist/tools/wiki-manifest.d.ts +129 -21
- package/dist/tools/wiki-manifest.d.ts.map +1 -1
- package/dist/tools/wiki-manifest.js +16 -9
- package/dist/tools/wiki-manifest.js.map +1 -1
- package/dist/tools/wiki-module-builder.d.ts +42 -0
- package/dist/tools/wiki-module-builder.d.ts.map +1 -0
- package/dist/tools/wiki-module-builder.js +449 -0
- package/dist/tools/wiki-module-builder.js.map +1 -0
- package/dist/tools/wiki-overview-sources.d.ts +26 -0
- package/dist/tools/wiki-overview-sources.d.ts.map +1 -0
- package/dist/tools/wiki-overview-sources.js +128 -0
- package/dist/tools/wiki-overview-sources.js.map +1 -0
- package/dist/tools/wiki-page-generators.d.ts +19 -3
- package/dist/tools/wiki-page-generators.d.ts.map +1 -1
- package/dist/tools/wiki-page-generators.js +156 -22
- package/dist/tools/wiki-page-generators.js.map +1 -1
- package/dist/tools/wiki-tools.d.ts +20 -0
- package/dist/tools/wiki-tools.d.ts.map +1 -1
- package/dist/tools/wiki-tools.js +181 -29
- package/dist/tools/wiki-tools.js.map +1 -1
- package/dist/tools/workspace-scope-helper.d.ts +21 -0
- package/dist/tools/workspace-scope-helper.d.ts.map +1 -0
- package/dist/tools/workspace-scope-helper.js +50 -0
- package/dist/tools/workspace-scope-helper.js.map +1 -0
- package/dist/tools/workspace-tools.d.ts +74 -0
- package/dist/tools/workspace-tools.d.ts.map +1 -0
- package/dist/tools/workspace-tools.js +366 -0
- package/dist/tools/workspace-tools.js.map +1 -0
- package/dist/types.d.ts +65 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/import-graph.d.ts +27 -0
- package/dist/utils/import-graph.d.ts.map +1 -1
- package/dist/utils/import-graph.js +331 -8
- package/dist/utils/import-graph.js.map +1 -1
- package/dist/utils/ts-imports.d.ts +30 -0
- package/dist/utils/ts-imports.d.ts.map +1 -0
- package/dist/utils/ts-imports.js +168 -0
- package/dist/utils/ts-imports.js.map +1 -0
- package/dist/utils/tsconfig-paths.d.ts +59 -0
- package/dist/utils/tsconfig-paths.d.ts.map +1 -0
- package/dist/utils/tsconfig-paths.js +176 -0
- package/dist/utils/tsconfig-paths.js.map +1 -0
- package/dist/utils/walk.d.ts.map +1 -1
- package/dist/utils/walk.js +1 -0
- package/dist/utils/walk.js.map +1 -1
- package/package.json +13 -3
- package/rules/codesift.md +19 -2
- package/rules/codesift.mdc +2 -2
- package/rules/codex.md +13 -2
- package/rules/gemini.md +13 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-constants-tools.js","sourceRoot":"","sources":["../../src/tools/typescript-constants-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wiki hub ranker — ranks symbols by file-level PageRank with a builtin-name
|
|
3
|
+
* blocklist gate to keep JS/TS prototype methods out of the hub list when
|
|
4
|
+
* they accidentally collide with project symbols defined in low-importance
|
|
5
|
+
* files. See spec D4 (Layer 2 + Layer 3).
|
|
6
|
+
*/
|
|
7
|
+
import type { ImportEdge } from "../utils/import-graph.js";
|
|
8
|
+
import type { HubSymbol } from "./wiki-page-generators.js";
|
|
9
|
+
export interface RankedHubSymbol extends HubSymbol {
|
|
10
|
+
pagerank: number;
|
|
11
|
+
file_rank: number;
|
|
12
|
+
}
|
|
13
|
+
export interface RankHubsResult {
|
|
14
|
+
hubs: RankedHubSymbol[];
|
|
15
|
+
degraded_reason?: string;
|
|
16
|
+
}
|
|
17
|
+
interface HubCandidate {
|
|
18
|
+
name: string;
|
|
19
|
+
file: string;
|
|
20
|
+
role: string;
|
|
21
|
+
callers: number;
|
|
22
|
+
callees: number;
|
|
23
|
+
}
|
|
24
|
+
/** Rank hubs by file-level PageRank, filtering builtin method names that
|
|
25
|
+
* only survive on low-importance files. */
|
|
26
|
+
export declare function rankHubsByPageRank(edges: ImportEdge[], candidates: HubCandidate[], options?: {
|
|
27
|
+
topK?: number;
|
|
28
|
+
minFileRank?: number;
|
|
29
|
+
}): RankHubsResult;
|
|
30
|
+
/** JavaScript / TypeScript prototype method names frequently appearing as
|
|
31
|
+
* fake callers when extractCallSites misclassifies `obj.method(...)` as a
|
|
32
|
+
* call to a bare project function. Used to filter hubs whose defining file
|
|
33
|
+
* is not structurally important (PageRank file_rank > 20). */
|
|
34
|
+
export declare const JS_BUILTIN_METHOD_NAMES: ReadonlySet<string>;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=wiki-hub-ranker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wiki-hub-ranker.d.ts","sourceRoot":"","sources":["../../src/tools/wiki-hub-ranker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;4CAC4C;AAC5C,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EAAE,EACnB,UAAU,EAAE,YAAY,EAAE,EAC1B,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,cAAc,CAsChB;AAED;;;+DAG+D;AAC/D,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAsBtD,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { buildFilePageRank } from "../utils/import-graph.js";
|
|
2
|
+
/** Rank hubs by file-level PageRank, filtering builtin method names that
|
|
3
|
+
* only survive on low-importance files. */
|
|
4
|
+
export function rankHubsByPageRank(edges, candidates, options) {
|
|
5
|
+
const topK = options?.topK ?? 30;
|
|
6
|
+
if (edges.length === 0) {
|
|
7
|
+
return { hubs: [], degraded_reason: "import_graph_empty" };
|
|
8
|
+
}
|
|
9
|
+
let scores;
|
|
10
|
+
try {
|
|
11
|
+
scores = buildFilePageRank(edges);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return { hubs: [], degraded_reason: "pagerank_unavailable" };
|
|
15
|
+
}
|
|
16
|
+
if (scores.size === 0) {
|
|
17
|
+
return { hubs: [], degraded_reason: "pagerank_unavailable" };
|
|
18
|
+
}
|
|
19
|
+
const sortedFiles = [...scores.entries()].sort((a, b) => b[1] - a[1]);
|
|
20
|
+
const fileRank = new Map();
|
|
21
|
+
sortedFiles.forEach(([file], idx) => fileRank.set(file, idx + 1));
|
|
22
|
+
const hubs = [];
|
|
23
|
+
for (const c of candidates) {
|
|
24
|
+
const rank = fileRank.get(c.file);
|
|
25
|
+
if (rank === undefined)
|
|
26
|
+
continue;
|
|
27
|
+
const pr = scores.get(c.file) ?? 0;
|
|
28
|
+
// Blocklist gate (D4 Layer 3): drop builtin names whose file isn't
|
|
29
|
+
// structurally important (file_rank > 20).
|
|
30
|
+
if (JS_BUILTIN_METHOD_NAMES.has(c.name) && rank > 20)
|
|
31
|
+
continue;
|
|
32
|
+
hubs.push({
|
|
33
|
+
name: c.name,
|
|
34
|
+
file: c.file,
|
|
35
|
+
role: c.role,
|
|
36
|
+
callers: c.callers,
|
|
37
|
+
callees: c.callees,
|
|
38
|
+
pagerank: pr,
|
|
39
|
+
file_rank: rank,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
hubs.sort((a, b) => (b.pagerank - a.pagerank) || (b.callers - a.callers));
|
|
43
|
+
return { hubs: hubs.slice(0, topK) };
|
|
44
|
+
}
|
|
45
|
+
/** JavaScript / TypeScript prototype method names frequently appearing as
|
|
46
|
+
* fake callers when extractCallSites misclassifies `obj.method(...)` as a
|
|
47
|
+
* call to a bare project function. Used to filter hubs whose defining file
|
|
48
|
+
* is not structurally important (PageRank file_rank > 20). */
|
|
49
|
+
export const JS_BUILTIN_METHOD_NAMES = new Set([
|
|
50
|
+
// Array.prototype
|
|
51
|
+
"map", "filter", "reduce", "reduceRight", "forEach", "find", "findIndex",
|
|
52
|
+
"findLast", "findLastIndex", "some", "every", "includes", "indexOf",
|
|
53
|
+
"lastIndexOf", "slice", "splice", "concat", "join", "push", "pop",
|
|
54
|
+
"shift", "unshift", "sort", "reverse", "flat", "flatMap", "fill",
|
|
55
|
+
"copyWithin", "entries", "keys", "values", "at",
|
|
56
|
+
// String.prototype (subset)
|
|
57
|
+
"trim", "trimStart", "trimEnd", "split", "replace", "replaceAll",
|
|
58
|
+
"substring", "substr", "startsWith", "endsWith", "padStart", "padEnd",
|
|
59
|
+
"repeat", "normalize", "toLowerCase", "toUpperCase", "charAt", "charCodeAt",
|
|
60
|
+
"codePointAt",
|
|
61
|
+
// Object.prototype / Object methods commonly reached via .x()
|
|
62
|
+
"toString", "valueOf", "hasOwnProperty", "isPrototypeOf",
|
|
63
|
+
// Number/Date common methods
|
|
64
|
+
"now", "parse", "getTime", "getDate", "getMonth", "getFullYear",
|
|
65
|
+
"toFixed", "toPrecision", "toISOString", "toJSON",
|
|
66
|
+
// Promise / Map / Set
|
|
67
|
+
"then", "catch", "finally", "get", "set", "has", "delete", "add", "clear",
|
|
68
|
+
"size",
|
|
69
|
+
// Misc common short names that frequently appear as .x() callsites
|
|
70
|
+
"bind", "call", "apply", "flat",
|
|
71
|
+
]);
|
|
72
|
+
//# sourceMappingURL=wiki-hub-ranker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wiki-hub-ranker.js","sourceRoot":"","sources":["../../src/tools/wiki-hub-ranker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
export interface LintIssue {
|
|
2
|
-
type: "broken-link" | "orphan-page" | "stale-hash";
|
|
2
|
+
type: "broken-link" | "orphan-page" | "stale-hash" | "sentinel-integrity" | "citation-ungrounded" | "journal-hash-drift";
|
|
3
3
|
severity: "error" | "warning";
|
|
4
4
|
source?: string;
|
|
5
5
|
target?: string;
|
|
6
|
+
line?: number;
|
|
6
7
|
message: string;
|
|
7
8
|
}
|
|
8
9
|
export interface LintResult {
|
|
9
10
|
issues: LintIssue[];
|
|
10
11
|
warnings: LintIssue[];
|
|
11
12
|
}
|
|
12
|
-
export
|
|
13
|
+
export interface LintOptions {
|
|
14
|
+
strict?: boolean;
|
|
15
|
+
citationThreshold?: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function lintWiki(wikiDir: string, currentIndexHash?: string, options?: LintOptions): Promise<LintResult>;
|
|
13
18
|
//# sourceMappingURL=wiki-lint.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiki-lint.d.ts","sourceRoot":"","sources":["../../src/tools/wiki-lint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wiki-lint.d.ts","sourceRoot":"","sources":["../../src/tools/wiki-lint.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,IAAI,EACA,aAAa,GACb,aAAa,GACb,YAAY,GACZ,oBAAoB,GACpB,qBAAqB,GACrB,oBAAoB,CAAC;IACzB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAgED,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,EACzB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC,CAsFrB"}
|
package/dist/tools/wiki-lint.js
CHANGED
|
@@ -1,7 +1,64 @@
|
|
|
1
1
|
import { readFile, readdir } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
+
import { parseSentinelBlocks, SentinelIntegrityError } from "./journal-sentinel.js";
|
|
3
4
|
const LINK_RE = /\[\[([^\]]+)\]\]/g;
|
|
4
|
-
|
|
5
|
+
async function checkJournalSentinels(manifest, wikiDir) {
|
|
6
|
+
const issues = [];
|
|
7
|
+
const warnings = [];
|
|
8
|
+
for (const page of manifest.pages) {
|
|
9
|
+
if (!page.type.startsWith("journal-"))
|
|
10
|
+
continue;
|
|
11
|
+
const journalPage = page;
|
|
12
|
+
let content;
|
|
13
|
+
try {
|
|
14
|
+
content = await readFile(join(wikiDir, page.file), "utf-8");
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
continue;
|
|
18
|
+
} // missing file already reported by broken-link scan
|
|
19
|
+
let blocks;
|
|
20
|
+
try {
|
|
21
|
+
blocks = parseSentinelBlocks(content);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
if (err instanceof SentinelIntegrityError) {
|
|
25
|
+
issues.push({ type: "sentinel-integrity", severity: "error", target: page.file, line: err.line, message: err.message });
|
|
26
|
+
}
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const recorded = journalPage.journal_content_hashes;
|
|
30
|
+
if (recorded === undefined)
|
|
31
|
+
continue;
|
|
32
|
+
for (const block of blocks) {
|
|
33
|
+
const rh = recorded[block.kind];
|
|
34
|
+
if (rh !== undefined && rh !== block.hash) {
|
|
35
|
+
warnings.push({
|
|
36
|
+
type: "journal-hash-drift", severity: "warning", target: page.file,
|
|
37
|
+
message: `Block ${block.kind} hash drifted (recorded ${rh.slice(0, 8)} vs current ${block.hash.slice(0, 8)})`,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return { issues, warnings };
|
|
43
|
+
}
|
|
44
|
+
const CITATION_CHECK_MODULE = "../../scripts/journal-citation-check.js";
|
|
45
|
+
async function checkCitations(manifest, wikiDir, threshold) {
|
|
46
|
+
const mod = await import(CITATION_CHECK_MODULE);
|
|
47
|
+
const warnings = [];
|
|
48
|
+
for (const page of manifest.pages) {
|
|
49
|
+
if (page.type !== "journal-phase")
|
|
50
|
+
continue;
|
|
51
|
+
const result = await mod.runCitationCheck(join(wikiDir, page.file), threshold);
|
|
52
|
+
if (result.percentage < threshold) {
|
|
53
|
+
warnings.push({
|
|
54
|
+
type: "citation-ungrounded", severity: "warning", target: page.file,
|
|
55
|
+
message: `Only ${result.grounded}/${result.total} citations grounded (${result.percentage.toFixed(1)}%)`,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return warnings;
|
|
60
|
+
}
|
|
61
|
+
export async function lintWiki(wikiDir, currentIndexHash, options) {
|
|
5
62
|
const manifestPath = join(wikiDir, "wiki-manifest.json");
|
|
6
63
|
let raw;
|
|
7
64
|
try {
|
|
@@ -45,9 +102,24 @@ export async function lintWiki(wikiDir, currentIndexHash) {
|
|
|
45
102
|
}
|
|
46
103
|
LINK_RE.lastIndex = 0;
|
|
47
104
|
}
|
|
105
|
+
// Journal sentinel integrity + hash-drift checks
|
|
106
|
+
const journalChecks = await checkJournalSentinels(manifest, wikiDir);
|
|
107
|
+
issues.push(...journalChecks.issues);
|
|
108
|
+
warnings.push(...journalChecks.warnings);
|
|
109
|
+
// --strict: citation grounding check per journal-phase page
|
|
110
|
+
if (options?.strict === true) {
|
|
111
|
+
const threshold = options.citationThreshold ?? 95;
|
|
112
|
+
const citationWarnings = await checkCitations(manifest, wikiDir, threshold);
|
|
113
|
+
warnings.push(...citationWarnings);
|
|
114
|
+
}
|
|
48
115
|
// Check for orphan pages
|
|
49
116
|
const entries = await readdir(wikiDir);
|
|
50
117
|
for (const entry of entries) {
|
|
118
|
+
// Journal files are cleaned up by pruneStaleWikiFiles with an explicit
|
|
119
|
+
// protected prefix (see src/tools/wiki-tools.ts Task 1). The manifest
|
|
120
|
+
// tracks them as journal-* page types; do NOT flag as orphans.
|
|
121
|
+
if (entry === "journal" || entry.startsWith("journal/"))
|
|
122
|
+
continue;
|
|
51
123
|
if (entry.endsWith(".md") && !knownFiles.has(entry)) {
|
|
52
124
|
issues.push({
|
|
53
125
|
type: "orphan-page",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiki-lint.js","sourceRoot":"","sources":["../../src/tools/wiki-lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"wiki-lint.js","sourceRoot":"","sources":["../../src/tools/wiki-lint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +1,140 @@
|
|
|
1
1
|
import type { CommunityInfo } from "./wiki-surprise.js";
|
|
2
|
+
export interface LensData {
|
|
3
|
+
communities: Array<{
|
|
4
|
+
name: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
fileCount: number;
|
|
7
|
+
cohesion: number;
|
|
8
|
+
}>;
|
|
9
|
+
edges: Array<{
|
|
10
|
+
from: number;
|
|
11
|
+
to: number;
|
|
12
|
+
weight: number;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
/** Literal type-tags for the existing (pre-v2.1) page kinds. Kept aligned with
|
|
16
|
+
* the `type` enum in `schemas/wiki-manifest-v2.schema.json` → `PageEntry`. */
|
|
17
|
+
export type ExistingPageKind = "index" | "community" | "hubs" | "surprises" | "hotspots" | "framework" | "overview" | "architecture";
|
|
18
|
+
/** A standard (non-journal) page entry in the manifest's `pages` array. */
|
|
19
|
+
export interface ExistingPageEntry {
|
|
20
|
+
slug: string;
|
|
21
|
+
title: string;
|
|
22
|
+
type: ExistingPageKind;
|
|
23
|
+
file: string;
|
|
24
|
+
outbound_links: string[];
|
|
25
|
+
}
|
|
26
|
+
/** Literal type-tags for the three journal-page kinds introduced in v2.1.
|
|
27
|
+
* Each value is disjoint from `ExistingPageKind`, so `type` remains a valid
|
|
28
|
+
* discriminant across the full `PageEntry` union. */
|
|
29
|
+
export type JournalPageKind = "journal-overview" | "journal-rollup" | "journal-phase";
|
|
30
|
+
/** A journal-oriented page entry (added in manifest schema v2.1). Cohesion
|
|
31
|
+
* point: grouped with `ExistingPageEntry` above so the discriminated-union
|
|
32
|
+
* shape is visible at a glance (CQ14). */
|
|
33
|
+
export interface JournalPageEntry {
|
|
34
|
+
slug: string;
|
|
35
|
+
title: string;
|
|
36
|
+
type: JournalPageKind;
|
|
37
|
+
file: string;
|
|
38
|
+
outbound_links: string[];
|
|
39
|
+
source: "generated" | "ai-authored" | "hand-written";
|
|
40
|
+
journal_content_hashes?: Record<string, string>;
|
|
41
|
+
parent_slug?: string;
|
|
42
|
+
}
|
|
43
|
+
/** Discriminated union of every page kind the manifest can emit. The `type`
|
|
44
|
+
* field is the discriminant — exhaustive switches on `type` still type-check. */
|
|
45
|
+
export type PageEntry = ExistingPageEntry | JournalPageEntry;
|
|
2
46
|
export interface WikiManifest {
|
|
47
|
+
manifest_schema_version: "2.1.0";
|
|
3
48
|
generated_at: string;
|
|
4
49
|
index_hash: string;
|
|
5
50
|
git_commit: string;
|
|
6
|
-
pages:
|
|
7
|
-
slug: string;
|
|
8
|
-
title: string;
|
|
9
|
-
type: "index" | "community" | "hubs" | "surprises" | "hotspots" | "framework";
|
|
10
|
-
file: string;
|
|
11
|
-
outbound_links: string[];
|
|
12
|
-
}>;
|
|
51
|
+
pages: PageEntry[];
|
|
13
52
|
slug_redirects: Record<string, string>;
|
|
14
53
|
token_estimates: Record<string, number>;
|
|
15
54
|
file_to_community: Record<string, string>;
|
|
16
55
|
degraded: boolean;
|
|
17
56
|
degraded_reasons?: string[];
|
|
18
|
-
lens_data?:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
57
|
+
lens_data?: LensData;
|
|
58
|
+
}
|
|
59
|
+
export type ModuleRole = "framework-tools" | "framework-routes" | "framework-components" | "core-library" | "data-access" | "utilities" | "parsers" | "storage" | "search" | "cli" | "tests" | "scripts" | "micro-module" | "unknown";
|
|
60
|
+
export interface KeyExport {
|
|
61
|
+
name: string;
|
|
62
|
+
kind: "function" | "class" | "interface" | "type" | "component" | "hook" | "default_export";
|
|
63
|
+
file: string;
|
|
64
|
+
signature?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface ModuleMetadata {
|
|
67
|
+
slug: string;
|
|
68
|
+
name: string;
|
|
69
|
+
description: string;
|
|
70
|
+
role: ModuleRole;
|
|
71
|
+
files: number;
|
|
72
|
+
cohesion: number;
|
|
73
|
+
key_exports: KeyExport[];
|
|
74
|
+
depends_on: string[];
|
|
75
|
+
depended_by: string[];
|
|
76
|
+
has_hotspot: boolean;
|
|
77
|
+
workspace?: string;
|
|
78
|
+
key_exports_approximate?: boolean;
|
|
79
|
+
}
|
|
80
|
+
export interface DependencySummary {
|
|
81
|
+
prod_total: number;
|
|
82
|
+
dev_total: number;
|
|
83
|
+
key: Array<{
|
|
84
|
+
name: string;
|
|
85
|
+
version: string;
|
|
86
|
+
kind: "prod" | "dev";
|
|
87
|
+
}>;
|
|
88
|
+
}
|
|
89
|
+
export interface ProjectOverview {
|
|
90
|
+
name: string;
|
|
91
|
+
git_remote: string | null;
|
|
92
|
+
project_type: "monorepo" | "single";
|
|
93
|
+
stack: {
|
|
94
|
+
language: string;
|
|
95
|
+
language_version: string | null;
|
|
96
|
+
framework: string | null;
|
|
97
|
+
framework_version: string | null;
|
|
98
|
+
test_runner: string | null;
|
|
99
|
+
package_manager: string | null;
|
|
100
|
+
build_tool: string | null;
|
|
101
|
+
};
|
|
102
|
+
scripts: Record<string, string>;
|
|
103
|
+
entry_points: string[];
|
|
104
|
+
workspaces: string[];
|
|
105
|
+
dependencies: DependencySummary;
|
|
106
|
+
known_gotchas: {
|
|
107
|
+
gotcha: string;
|
|
108
|
+
severity: "high" | "medium" | "low";
|
|
109
|
+
}[];
|
|
110
|
+
stats: {
|
|
111
|
+
total_files: number;
|
|
112
|
+
total_commits: number | null;
|
|
113
|
+
contributors: number | null;
|
|
30
114
|
};
|
|
31
115
|
}
|
|
116
|
+
export interface WikiManifestV2 {
|
|
117
|
+
schema_version: 2;
|
|
118
|
+
manifest_schema_version: "2.1.0";
|
|
119
|
+
generated_at: string;
|
|
120
|
+
index_hash: string;
|
|
121
|
+
git_commit: string;
|
|
122
|
+
project: ProjectOverview;
|
|
123
|
+
modules: ModuleMetadata[];
|
|
124
|
+
pages: WikiManifest["pages"];
|
|
125
|
+
slug_redirects: Record<string, string>;
|
|
126
|
+
token_estimates: Record<string, number>;
|
|
127
|
+
file_to_community: Record<string, string>;
|
|
128
|
+
lens_data?: LensData;
|
|
129
|
+
degraded: boolean;
|
|
130
|
+
degraded_reasons?: string[];
|
|
131
|
+
modules_truncated?: boolean;
|
|
132
|
+
truncation_reason?: "module_count_cap" | "token_budget";
|
|
133
|
+
}
|
|
32
134
|
export interface PageInfo {
|
|
33
135
|
slug: string;
|
|
34
136
|
title: string;
|
|
35
|
-
type:
|
|
137
|
+
type: ExistingPageKind;
|
|
36
138
|
file: string;
|
|
37
139
|
content: string;
|
|
38
140
|
}
|
|
@@ -43,9 +145,14 @@ export declare function toSlug(name: string): string;
|
|
|
43
145
|
* a numeric suffix (`-2`, `-3`, …) in iteration order. Empty-slug names fall
|
|
44
146
|
* back to the literal `community` base.
|
|
45
147
|
*/
|
|
148
|
+
export interface BuildUniqueSlugsOptions {
|
|
149
|
+
monorepo?: boolean;
|
|
150
|
+
workspaces?: string[];
|
|
151
|
+
}
|
|
46
152
|
export declare function buildUniqueSlugs(communities: readonly {
|
|
47
153
|
name: string;
|
|
48
|
-
|
|
154
|
+
files?: string[];
|
|
155
|
+
}[], options?: BuildUniqueSlugsOptions): Map<string, string>;
|
|
49
156
|
/**
|
|
50
157
|
* Maps every file from every community to the community's kebab-case slug
|
|
51
158
|
* using a collision-free slug map.
|
|
@@ -62,5 +169,6 @@ export declare function buildWikiManifest(options: {
|
|
|
62
169
|
communities: CommunityInfo[];
|
|
63
170
|
oldManifest?: WikiManifest;
|
|
64
171
|
degradedReasons?: string[];
|
|
172
|
+
journalPages?: JournalPageEntry[];
|
|
65
173
|
}): WikiManifest;
|
|
66
174
|
//# sourceMappingURL=wiki-manifest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiki-manifest.d.ts","sourceRoot":"","sources":["../../src/tools/wiki-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"wiki-manifest.d.ts","sourceRoot":"","sources":["../../src/tools/wiki-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,16 +6,18 @@ export function toSlug(name) {
|
|
|
6
6
|
.replace(/[^a-z0-9]+/g, "-")
|
|
7
7
|
.replace(/^-|-$/g, "");
|
|
8
8
|
}
|
|
9
|
-
|
|
10
|
-
* Builds a collision-free `name -> slug` map. Duplicates are disambiguated with
|
|
11
|
-
* a numeric suffix (`-2`, `-3`, …) in iteration order. Empty-slug names fall
|
|
12
|
-
* back to the literal `community` base.
|
|
13
|
-
*/
|
|
14
|
-
export function buildUniqueSlugs(communities) {
|
|
9
|
+
export function buildUniqueSlugs(communities, options) {
|
|
15
10
|
const nameToSlug = new Map();
|
|
16
11
|
const seen = new Map();
|
|
12
|
+
const useWorkspace = options?.monorepo === true && (options.workspaces?.length ?? 0) > 0;
|
|
13
|
+
const workspaces = options?.workspaces ?? [];
|
|
17
14
|
for (const c of communities) {
|
|
18
|
-
|
|
15
|
+
let base = toSlug(c.name) || "community";
|
|
16
|
+
if (useWorkspace && c.files && c.files.length > 0) {
|
|
17
|
+
const ws = workspaces.find((w) => c.files.some((f) => f.startsWith(w + "/") || f === w));
|
|
18
|
+
if (ws)
|
|
19
|
+
base = `${toSlug(ws)}-${base}`;
|
|
20
|
+
}
|
|
19
21
|
const count = seen.get(base) ?? 0;
|
|
20
22
|
const slug = count === 0 ? base : `${base}-${count + 1}`;
|
|
21
23
|
seen.set(base, count + 1);
|
|
@@ -42,7 +44,7 @@ export function buildFileToCommunityMap(communities, slugMap = buildUniqueSlugs(
|
|
|
42
44
|
* generated wiki page and its metadata.
|
|
43
45
|
*/
|
|
44
46
|
export function buildWikiManifest(options) {
|
|
45
|
-
const { index_hash, git_commit, pages, communities, oldManifest, degradedReasons } = options;
|
|
47
|
+
const { index_hash, git_commit, pages, communities, oldManifest, degradedReasons, journalPages } = options;
|
|
46
48
|
// File → community map
|
|
47
49
|
const file_to_community = buildFileToCommunityMap(communities);
|
|
48
50
|
// Token estimates: rough chars / 4 rounded up
|
|
@@ -74,12 +76,17 @@ export function buildWikiManifest(options) {
|
|
|
74
76
|
outbound_links,
|
|
75
77
|
};
|
|
76
78
|
});
|
|
79
|
+
// v2.1: concat journal pages verbatim (they are already well-formed entries)
|
|
80
|
+
const allPages = journalPages !== undefined && journalPages.length > 0
|
|
81
|
+
? [...builtPages, ...journalPages]
|
|
82
|
+
: builtPages;
|
|
77
83
|
const degraded = (degradedReasons?.length ?? 0) > 0;
|
|
78
84
|
return {
|
|
85
|
+
manifest_schema_version: "2.1.0",
|
|
79
86
|
generated_at: new Date().toISOString(),
|
|
80
87
|
index_hash,
|
|
81
88
|
git_commit,
|
|
82
|
-
pages:
|
|
89
|
+
pages: allPages,
|
|
83
90
|
slug_redirects,
|
|
84
91
|
token_estimates,
|
|
85
92
|
file_to_community,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiki-manifest.js","sourceRoot":"","sources":["../../src/tools/wiki-manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wiki-manifest.js","sourceRoot":"","sources":["../../src/tools/wiki-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { CodeIndex } from "../types.js";
|
|
2
|
+
import type { ProjectProfile } from "./project-tools.js";
|
|
3
|
+
import type { CommunityInfo } from "./wiki-surprise.js";
|
|
4
|
+
import type { ImportEdge } from "../utils/import-graph.js";
|
|
5
|
+
import type { RankedHubSymbol } from "./wiki-hub-ranker.js";
|
|
6
|
+
import type { ProjectOverview, ModuleMetadata, WikiManifestV2, WikiManifest } from "./wiki-manifest.js";
|
|
7
|
+
import { type PageInfo } from "./wiki-manifest.js";
|
|
8
|
+
import type { FileHotspot } from "./wiki-page-generators.js";
|
|
9
|
+
/**
|
|
10
|
+
* Build a ProjectOverview from the analyzeProject result and the code index.
|
|
11
|
+
* Emits `_degraded` as a side-channel when git history is shallow/missing; the
|
|
12
|
+
* orchestrator strips it and pushes to `degraded_reasons`.
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildProjectOverview(projectResult: ProjectProfile, codeIndex: CodeIndex): ProjectOverview & {
|
|
15
|
+
_degraded?: string;
|
|
16
|
+
};
|
|
17
|
+
export declare function buildModuleMetadata(communities: CommunityInfo[], projectResult: ProjectProfile, codeIndex: CodeIndex, importEdges: ImportEdge[], fileHotspots: FileHotspot[], rankedHubs: RankedHubSymbol[]): ModuleMetadata[];
|
|
18
|
+
export interface BuildWikiManifestV2Options {
|
|
19
|
+
index_hash: string;
|
|
20
|
+
git_commit: string;
|
|
21
|
+
pages: PageInfo[];
|
|
22
|
+
communities: CommunityInfo[];
|
|
23
|
+
project: ProjectOverview;
|
|
24
|
+
modules: ModuleMetadata[];
|
|
25
|
+
oldManifest?: WikiManifest | WikiManifestV2;
|
|
26
|
+
degradedReasons?: string[];
|
|
27
|
+
modules_truncated?: boolean;
|
|
28
|
+
truncation_reason?: "module_count_cap" | "token_budget";
|
|
29
|
+
}
|
|
30
|
+
export declare function buildWikiManifestV2(options: BuildWikiManifestV2Options): WikiManifestV2;
|
|
31
|
+
/** V1 writer — preserved for rollback (CODESIFT_WIKI_V1=1). Same shape as
|
|
32
|
+
* the legacy buildWikiManifest that used to live in wiki-manifest.ts. */
|
|
33
|
+
export interface BuildWikiManifestV1Options {
|
|
34
|
+
index_hash: string;
|
|
35
|
+
git_commit: string;
|
|
36
|
+
pages: PageInfo[];
|
|
37
|
+
communities: CommunityInfo[];
|
|
38
|
+
oldManifest?: WikiManifest;
|
|
39
|
+
degradedReasons?: string[];
|
|
40
|
+
}
|
|
41
|
+
export declare function buildWikiManifestV1(options: BuildWikiManifestV1Options): WikiManifest;
|
|
42
|
+
//# sourceMappingURL=wiki-module-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wiki-module-builder.d.ts","sourceRoot":"","sources":["../../src/tools/wiki-module-builder.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAQ5D,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EAGd,cAAc,EACd,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAO7D;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,cAAc,EAC7B,SAAS,EAAE,SAAS,GACnB,eAAe,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAgD1C;AAiED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,aAAa,EAAE,EAC5B,aAAa,EAAE,cAAc,EAC7B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,UAAU,EAAE,EACzB,YAAY,EAAE,WAAW,EAAE,EAC3B,UAAU,EAAE,eAAe,EAAE,GAC5B,cAAc,EAAE,CAmClB;AAoND,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC;IAC5C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,kBAAkB,GAAG,cAAc,CAAC;CACzD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,cAAc,CAwCvF;AAED;0EAC0E;AAC1E,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,YAAY,CA8BrF"}
|