mewkit 1.11.2 → 1.12.1
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/commands/index-command.d.ts.map +1 -1
- package/dist/commands/index-command.js +2 -1
- package/dist/commands/index-command.js.map +1 -1
- package/dist/core/derived-index.d.ts +12 -3
- package/dist/core/derived-index.d.ts.map +1 -1
- package/dist/core/derived-index.js +42 -13
- package/dist/core/derived-index.js.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/wiki/application/ports.d.ts +111 -0
- package/dist/wiki/application/ports.d.ts.map +1 -0
- package/dist/wiki/application/ports.js +33 -0
- package/dist/wiki/application/ports.js.map +1 -0
- package/dist/wiki/application/queries.d.ts +5 -0
- package/dist/wiki/application/queries.d.ts.map +1 -0
- package/dist/wiki/application/queries.js +10 -0
- package/dist/wiki/application/queries.js.map +1 -0
- package/dist/wiki/application/research.d.ts +16 -0
- package/dist/wiki/application/research.d.ts.map +1 -0
- package/dist/wiki/application/research.js +48 -0
- package/dist/wiki/application/research.js.map +1 -0
- package/dist/wiki/application/service.d.ts +27 -0
- package/dist/wiki/application/service.d.ts.map +1 -0
- package/dist/wiki/application/service.js +153 -0
- package/dist/wiki/application/service.js.map +1 -0
- package/dist/wiki/domain/index.d.ts +5 -0
- package/dist/wiki/domain/index.d.ts.map +1 -0
- package/dist/wiki/domain/index.js +6 -0
- package/dist/wiki/domain/index.js.map +1 -0
- package/dist/wiki/domain/invariants.d.ts +28 -0
- package/dist/wiki/domain/invariants.d.ts.map +1 -0
- package/dist/wiki/domain/invariants.js +84 -0
- package/dist/wiki/domain/invariants.js.map +1 -0
- package/dist/wiki/domain/salience.d.ts +11 -0
- package/dist/wiki/domain/salience.d.ts.map +1 -0
- package/dist/wiki/domain/salience.js +40 -0
- package/dist/wiki/domain/salience.js.map +1 -0
- package/dist/wiki/domain/types.d.ts +151 -0
- package/dist/wiki/domain/types.d.ts.map +1 -0
- package/dist/wiki/domain/types.js +27 -0
- package/dist/wiki/domain/types.js.map +1 -0
- package/dist/wiki/domain/write-decision.d.ts +25 -0
- package/dist/wiki/domain/write-decision.d.ts.map +1 -0
- package/dist/wiki/domain/write-decision.js +71 -0
- package/dist/wiki/domain/write-decision.js.map +1 -0
- package/dist/wiki/infrastructure/fetcher-adapter.d.ts +45 -0
- package/dist/wiki/infrastructure/fetcher-adapter.d.ts.map +1 -0
- package/dist/wiki/infrastructure/fetcher-adapter.js +99 -0
- package/dist/wiki/infrastructure/fetcher-adapter.js.map +1 -0
- package/dist/wiki/infrastructure/inventory-adapter.d.ts +13 -0
- package/dist/wiki/infrastructure/inventory-adapter.d.ts.map +1 -0
- package/dist/wiki/infrastructure/inventory-adapter.js +46 -0
- package/dist/wiki/infrastructure/inventory-adapter.js.map +1 -0
- package/dist/wiki/infrastructure/markdown-repository.d.ts +23 -0
- package/dist/wiki/infrastructure/markdown-repository.d.ts.map +1 -0
- package/dist/wiki/infrastructure/markdown-repository.js +168 -0
- package/dist/wiki/infrastructure/markdown-repository.js.map +1 -0
- package/dist/wiki/infrastructure/scan-patterns.d.ts +20 -0
- package/dist/wiki/infrastructure/scan-patterns.d.ts.map +1 -0
- package/dist/wiki/infrastructure/scan-patterns.js +106 -0
- package/dist/wiki/infrastructure/scan-patterns.js.map +1 -0
- package/dist/wiki/infrastructure/scanner-adapter.d.ts +10 -0
- package/dist/wiki/infrastructure/scanner-adapter.d.ts.map +1 -0
- package/dist/wiki/infrastructure/scanner-adapter.js +147 -0
- package/dist/wiki/infrastructure/scanner-adapter.js.map +1 -0
- package/dist/wiki/infrastructure/sqlite-index.d.ts +9 -0
- package/dist/wiki/infrastructure/sqlite-index.d.ts.map +1 -0
- package/dist/wiki/infrastructure/sqlite-index.js +43 -0
- package/dist/wiki/infrastructure/sqlite-index.js.map +1 -0
- package/dist/wiki/infrastructure/trace-adapter.d.ts +7 -0
- package/dist/wiki/infrastructure/trace-adapter.d.ts.map +1 -0
- package/dist/wiki/infrastructure/trace-adapter.js +42 -0
- package/dist/wiki/infrastructure/trace-adapter.js.map +1 -0
- package/dist/wiki/infrastructure/wiki-ingest.d.ts +14 -0
- package/dist/wiki/infrastructure/wiki-ingest.d.ts.map +1 -0
- package/dist/wiki/infrastructure/wiki-ingest.js +138 -0
- package/dist/wiki/infrastructure/wiki-ingest.js.map +1 -0
- package/dist/wiki/infrastructure/wiki-query.d.ts +15 -0
- package/dist/wiki/infrastructure/wiki-query.d.ts.map +1 -0
- package/dist/wiki/infrastructure/wiki-query.js +58 -0
- package/dist/wiki/infrastructure/wiki-query.js.map +1 -0
- package/dist/wiki/infrastructure/wiki-schema.d.ts +3 -0
- package/dist/wiki/infrastructure/wiki-schema.d.ts.map +1 -0
- package/dist/wiki/infrastructure/wiki-schema.js +43 -0
- package/dist/wiki/infrastructure/wiki-schema.js.map +1 -0
- package/dist/wiki/interface/cli.d.ts +7 -0
- package/dist/wiki/interface/cli.d.ts.map +1 -0
- package/dist/wiki/interface/cli.js +160 -0
- package/dist/wiki/interface/cli.js.map +1 -0
- package/dist/wiki/render.d.ts +3 -0
- package/dist/wiki/render.d.ts.map +1 -0
- package/dist/wiki/render.js +58 -0
- package/dist/wiki/render.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-command.d.ts","sourceRoot":"","sources":["../../src/commands/index-command.ts"],"names":[],"mappings":"AASA,UAAU,YAAY;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAaD,wBAAgB,YAAY,CAAC,IAAI,GAAE,YAAiB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index-command.d.ts","sourceRoot":"","sources":["../../src/commands/index-command.ts"],"names":[],"mappings":"AASA,UAAU,YAAY;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAaD,wBAAgB,YAAY,CAAC,IAAI,GAAE,YAAiB,GAAG,IAAI,CAe1D;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,YAAiB,GAAG,IAAI,CA6B1D"}
|
|
@@ -25,9 +25,10 @@ export function indexCommand(opts = {}) {
|
|
|
25
25
|
console.log(JSON.stringify(result, null, 2));
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
|
-
console.log(pc.bold(pc.cyan("Derived index rebuilt")) + pc.dim(" (logs unchanged — canonical)"));
|
|
28
|
+
console.log(pc.bold(pc.cyan("Derived index rebuilt")) + pc.dim(" (logs + wiki tree unchanged — canonical)"));
|
|
29
29
|
console.log(` ${pc.dim(result.dbPath)}`);
|
|
30
30
|
console.log(` schema v${result.schemaVersion} · ${result.traceRows} trace row(s) · ${result.costRows} cost row(s)`);
|
|
31
|
+
console.log(` wiki: ${result.wiki.pages} page(s) · ${result.wiki.candidates} candidate(s) · ${result.wiki.sources} source(s)`);
|
|
31
32
|
}
|
|
32
33
|
export function queryCommand(opts = {}) {
|
|
33
34
|
const claudeDir = findClaudeDir();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-command.js","sourceRoot":"","sources":["../../src/commands/index-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAUlE,SAAS,aAAa;IACrB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,SAAS,CAAC;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YAAE,OAAO,SAAS,CAAC;QACvF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAChC,GAAG,GAAG,MAAM,CAAC;IACd,CAAC;AACF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAqB,EAAE;IACnD,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACR,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"index-command.js","sourceRoot":"","sources":["../../src/commands/index-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
import { DatabaseSync } from "node:sqlite";
|
|
2
|
+
import { type WikiIngestCounts } from "../wiki/infrastructure/wiki-ingest.js";
|
|
3
|
+
export declare const SCHEMA_VERSION = 2;
|
|
2
4
|
export declare function dbPath(claudeDir: string): string;
|
|
5
|
+
/** Apply any pending forward migrations and stamp the schema version. Exported so the live
|
|
6
|
+
* write adapter (`SqliteWikiIndex.upsertPage`) can self-heal a never-built index DB: the
|
|
7
|
+
* wiki schema is otherwise created only by `buildIndex` (`mewkit index` / `wiki reindex`),
|
|
8
|
+
* so a first `approve` on a fresh wiki would hit `no such table: wiki_page`. Idempotent —
|
|
9
|
+
* a no-op once `user_version` is current. */
|
|
10
|
+
export declare function ensureIndexSchema(db: DatabaseSync): void;
|
|
3
11
|
export interface IndexResult {
|
|
4
12
|
dbPath: string;
|
|
5
13
|
schemaVersion: number;
|
|
6
14
|
traceRows: number;
|
|
7
15
|
costRows: number;
|
|
16
|
+
wiki: WikiIngestCounts;
|
|
8
17
|
}
|
|
9
|
-
/** Build/refresh the derived index from the canonical logs. Full re-ingest =
|
|
10
|
-
* rebuild-able. Creates the DB (WAL) if absent. Never mutates the
|
|
18
|
+
/** Build/refresh the derived index from the canonical logs + wiki tree. Full re-ingest =
|
|
19
|
+
* deterministic and rebuild-able. Creates the DB (WAL) if absent. Never mutates the sources. */
|
|
11
20
|
export declare function buildIndex(claudeDir: string): IndexResult;
|
|
12
21
|
export interface QueryResult {
|
|
13
22
|
schemaVersion: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derived-index.d.ts","sourceRoot":"","sources":["../../src/core/derived-index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"derived-index.d.ts","sourceRoot":"","sources":["../../src/core/derived-index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAS1F,eAAO,MAAM,cAAc,IAAI,CAAC;AA0BhC,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhD;AAQD;;;;6CAI6C;AAC7C,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CASxD;AAwDD,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,gBAAgB,CAAC;CACvB;AAmBD;iGACiG;AACjG,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAkBzD;AAED,MAAM,WAAW,WAAW;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,wBAAwB,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClE,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClE;AAED,yFAAyF;AACzF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAyBzD"}
|
|
@@ -2,13 +2,18 @@ import fs from "node:fs";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { DatabaseSync } from "node:sqlite";
|
|
4
4
|
import { parseTraceLog } from "./trace-analysis.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
//
|
|
8
|
-
// (
|
|
9
|
-
//
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
import { WIKI_MIGRATION_SQL } from "../wiki/infrastructure/wiki-schema.js";
|
|
6
|
+
import { ingestWiki } from "../wiki/infrastructure/wiki-ingest.js";
|
|
7
|
+
// The consolidated DERIVED, disposable SQLite index. Canonical data stays in the append
|
|
8
|
+
// logs (.claude/memory/*) and the wiki tree (tasks/wikis/<slug>/); this DB is a rebuild-able
|
|
9
|
+
// read index (delete → reindex → identical). Opt-in: nothing builds it automatically and no
|
|
10
|
+
// hook writes to it. All inserts are parameterized (prepared statements); queries are static
|
|
11
|
+
// aggregates with no user-supplied SQL — no injection surface. v2 folds in the wiki tables +
|
|
12
|
+
// FTS5 (was a separate index.db, now unified as wiki-index.db per the consolidation decision).
|
|
13
|
+
export const SCHEMA_VERSION = 2;
|
|
14
|
+
const DB_REL = path.join("memory", "wiki-index.db");
|
|
15
|
+
/** The pre-consolidation DB, removed once on the first unified build. */
|
|
16
|
+
const LEGACY_DB_REL = path.join("memory", "index.db");
|
|
12
17
|
/** Forward migrations, applied in order when the DB's PRAGMA user_version is behind. */
|
|
13
18
|
const MIGRATIONS = [
|
|
14
19
|
{
|
|
@@ -27,6 +32,7 @@ const MIGRATIONS = [
|
|
|
27
32
|
tokens INTEGER, task TEXT, raw TEXT
|
|
28
33
|
);`,
|
|
29
34
|
},
|
|
35
|
+
{ version: 2, sql: WIKI_MIGRATION_SQL },
|
|
30
36
|
];
|
|
31
37
|
export function dbPath(claudeDir) {
|
|
32
38
|
return path.join(claudeDir, DB_REL);
|
|
@@ -36,8 +42,12 @@ function userVersion(db) {
|
|
|
36
42
|
const v = row?.["user_version"];
|
|
37
43
|
return typeof v === "number" ? v : 0;
|
|
38
44
|
}
|
|
39
|
-
/** Apply any pending forward migrations and stamp the schema version.
|
|
40
|
-
|
|
45
|
+
/** Apply any pending forward migrations and stamp the schema version. Exported so the live
|
|
46
|
+
* write adapter (`SqliteWikiIndex.upsertPage`) can self-heal a never-built index DB: the
|
|
47
|
+
* wiki schema is otherwise created only by `buildIndex` (`mewkit index` / `wiki reindex`),
|
|
48
|
+
* so a first `approve` on a fresh wiki would hit `no such table: wiki_page`. Idempotent —
|
|
49
|
+
* a no-op once `user_version` is current. */
|
|
50
|
+
export function ensureIndexSchema(db) {
|
|
41
51
|
let current = userVersion(db);
|
|
42
52
|
for (const m of MIGRATIONS) {
|
|
43
53
|
if (m.version > current) {
|
|
@@ -90,20 +100,39 @@ function ingestCost(db, claudeDir) {
|
|
|
90
100
|
}
|
|
91
101
|
return arr.length;
|
|
92
102
|
}
|
|
93
|
-
/**
|
|
94
|
-
*
|
|
103
|
+
/** Remove the pre-consolidation index.db (and its WAL/SHM sidecars) once. The new
|
|
104
|
+
* unified wiki-index.db supersedes it; the logs remain canonical so nothing is lost. */
|
|
105
|
+
function removeLegacyDb(claudeDir) {
|
|
106
|
+
const legacy = path.join(claudeDir, LEGACY_DB_REL);
|
|
107
|
+
let removed = false;
|
|
108
|
+
for (const suffix of ["", "-wal", "-shm"]) {
|
|
109
|
+
const f = legacy + suffix;
|
|
110
|
+
if (fs.existsSync(f)) {
|
|
111
|
+
fs.rmSync(f);
|
|
112
|
+
removed = true;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (removed) {
|
|
116
|
+
console.error(`[mewkit] removed legacy ${LEGACY_DB_REL} — superseded by ${DB_REL}`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/** Build/refresh the derived index from the canonical logs + wiki tree. Full re-ingest =
|
|
120
|
+
* deterministic and rebuild-able. Creates the DB (WAL) if absent. Never mutates the sources. */
|
|
95
121
|
export function buildIndex(claudeDir) {
|
|
122
|
+
removeLegacyDb(claudeDir);
|
|
96
123
|
const target = dbPath(claudeDir);
|
|
124
|
+
const projectRoot = path.dirname(claudeDir);
|
|
97
125
|
fs.mkdirSync(path.dirname(target), { recursive: true });
|
|
98
126
|
const db = new DatabaseSync(target);
|
|
99
127
|
try {
|
|
100
128
|
db.exec("PRAGMA journal_mode = WAL");
|
|
101
|
-
|
|
129
|
+
ensureIndexSchema(db);
|
|
102
130
|
db.exec("DELETE FROM trace_events");
|
|
103
131
|
db.exec("DELETE FROM cost_entries");
|
|
104
132
|
const traceRows = ingestTrace(db, claudeDir);
|
|
105
133
|
const costRows = ingestCost(db, claudeDir);
|
|
106
|
-
|
|
134
|
+
const wiki = ingestWiki(db, projectRoot);
|
|
135
|
+
return { dbPath: target, schemaVersion: userVersion(db), traceRows, costRows, wiki };
|
|
107
136
|
}
|
|
108
137
|
finally {
|
|
109
138
|
db.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derived-index.js","sourceRoot":"","sources":["../../src/core/derived-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"derived-index.js","sourceRoot":"","sources":["../../src/core/derived-index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -278,6 +278,15 @@ async function main() {
|
|
|
278
278
|
queryCommand({ json: args.json });
|
|
279
279
|
break;
|
|
280
280
|
}
|
|
281
|
+
case "wiki": {
|
|
282
|
+
const { wikiCommand } = await import("./wiki/interface/cli.js");
|
|
283
|
+
await wikiCommand({
|
|
284
|
+
subcommand: args._[1],
|
|
285
|
+
rest: args._.slice(2).map(String),
|
|
286
|
+
flags: args,
|
|
287
|
+
});
|
|
288
|
+
break;
|
|
289
|
+
}
|
|
281
290
|
case "budget": {
|
|
282
291
|
// `budget context` routes to the per-profile context estimator (positional,
|
|
283
292
|
// not a flag — minimist parses it as args._[1]).
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type { DupCheck, InjectionVerdict, SalienceComponents, VerificationState, WikiCandidate, WikiIntervention, WikiOrigin, WikiPage, WikiSeed, WikiSlug, WikiSource, WikiWriteDecision } from "../domain/index.js";
|
|
2
|
+
export interface ScanInput {
|
|
3
|
+
content: string;
|
|
4
|
+
origin: WikiOrigin;
|
|
5
|
+
/** Present when the draft came from a fetched source; the scanner URL-guards it. */
|
|
6
|
+
sourceUrl?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ScanOutput {
|
|
9
|
+
verdict: InjectionVerdict;
|
|
10
|
+
/** Content with secrets scrubbed — the only form that may ever be persisted. */
|
|
11
|
+
scrubbed: string;
|
|
12
|
+
secretsFound: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The write-authorization token. Its constructor is private, so the ONLY way to obtain
|
|
16
|
+
* an instance is `ApprovedWrite.issue(...)`, which throws unless the verdict is clean and
|
|
17
|
+
* adequately scanned. `WikiRepository.writePage` accepts ONLY this type — a raw string or
|
|
18
|
+
* a plain object will not type-check — so the canonical-write chokepoint is enforced by
|
|
19
|
+
* the type system, not by lint.
|
|
20
|
+
*/
|
|
21
|
+
export declare class ApprovedWrite {
|
|
22
|
+
readonly page: WikiPage;
|
|
23
|
+
readonly verdict: InjectionVerdict;
|
|
24
|
+
private constructor();
|
|
25
|
+
/** Mint a token from a scan result. Throws unless the verdict is clean AND meets the
|
|
26
|
+
* multi-pass floor. The token is bound to the scanner's SCRUBBED content —
|
|
27
|
+
* the page that gets persisted always carries `scan.scrubbed`, never caller-supplied
|
|
28
|
+
* raw content — so a secret/injection cannot ride into a canonical page via a valid
|
|
29
|
+
* token. This is the single gate between scanning and canonical writing. */
|
|
30
|
+
static issue(page: WikiPage, scan: ScanOutput): ApprovedWrite;
|
|
31
|
+
}
|
|
32
|
+
export interface Scanner {
|
|
33
|
+
/** Run the full gate (URL-guard → size cap → normalize → multi-pass injection scan →
|
|
34
|
+
* secret scrub) and return a verdict plus the scrubbed content. */
|
|
35
|
+
scan(input: ScanInput): ScanOutput;
|
|
36
|
+
}
|
|
37
|
+
export interface WikiRepository {
|
|
38
|
+
createWiki(slug: WikiSlug, title: string): void;
|
|
39
|
+
/** Canonical page write — accepts ONLY a scanner-issued token. */
|
|
40
|
+
writePage(token: ApprovedWrite): void;
|
|
41
|
+
readPage(slug: WikiSlug, file: string): WikiPage | null;
|
|
42
|
+
listPages(slug: WikiSlug): string[];
|
|
43
|
+
/** Park rejected/injected content in a read-blocked .quarantined file; returns its path. */
|
|
44
|
+
quarantine(slug: WikiSlug, content: string, verdict: InjectionVerdict): string;
|
|
45
|
+
appendCandidate(candidate: WikiCandidate): void;
|
|
46
|
+
appendIntervention(slug: WikiSlug, intervention: WikiIntervention): void;
|
|
47
|
+
appendSeed(slug: WikiSlug, seed: WikiSeed): void;
|
|
48
|
+
appendSource(slug: WikiSlug, source: WikiSource): void;
|
|
49
|
+
listCandidates(slug: WikiSlug): WikiCandidate[];
|
|
50
|
+
getCandidate(slug: WikiSlug, id: string): WikiCandidate | null;
|
|
51
|
+
}
|
|
52
|
+
/** A document returned by the fetcher. Stubbed here so this layer type-checks
|
|
53
|
+
* standalone; the concrete FetcherAdapter and runResearchStep wiring land with the research loop. */
|
|
54
|
+
export interface FetchedDoc {
|
|
55
|
+
content: string;
|
|
56
|
+
sourceUrl: string;
|
|
57
|
+
source: WikiSource;
|
|
58
|
+
}
|
|
59
|
+
export interface Fetcher {
|
|
60
|
+
fetch(seed: WikiSeed): Promise<FetchedDoc>;
|
|
61
|
+
}
|
|
62
|
+
export interface WikiSearchHit {
|
|
63
|
+
pageId: string;
|
|
64
|
+
slug: string;
|
|
65
|
+
title: string;
|
|
66
|
+
snippet: string;
|
|
67
|
+
tokenEstimate: number;
|
|
68
|
+
}
|
|
69
|
+
export interface WikiIndex {
|
|
70
|
+
upsertPage(page: WikiPage): void;
|
|
71
|
+
searchFts(query: string, limit?: number): WikiSearchHit[];
|
|
72
|
+
}
|
|
73
|
+
export interface Tracer {
|
|
74
|
+
recordWikiTrace(event: string, data: Record<string, unknown>): void;
|
|
75
|
+
}
|
|
76
|
+
export interface InventoryRegistrar {
|
|
77
|
+
register(artifactPath: string, meta?: {
|
|
78
|
+
criticality?: string;
|
|
79
|
+
status?: string;
|
|
80
|
+
}): void;
|
|
81
|
+
}
|
|
82
|
+
export interface WikiServiceDeps {
|
|
83
|
+
repo: WikiRepository;
|
|
84
|
+
scanner: Scanner;
|
|
85
|
+
index: WikiIndex;
|
|
86
|
+
tracer: Tracer;
|
|
87
|
+
/** Optional — present only when the research loop is enabled. */
|
|
88
|
+
fetcher?: Fetcher;
|
|
89
|
+
}
|
|
90
|
+
export interface ProposeInput {
|
|
91
|
+
slug: WikiSlug;
|
|
92
|
+
title: string;
|
|
93
|
+
content: string;
|
|
94
|
+
origin: WikiOrigin;
|
|
95
|
+
whySave: string;
|
|
96
|
+
evidence: string;
|
|
97
|
+
sourceIds: string[];
|
|
98
|
+
salience: SalienceComponents;
|
|
99
|
+
noveltyDelta?: number;
|
|
100
|
+
reuseScope?: string;
|
|
101
|
+
verificationState?: VerificationState;
|
|
102
|
+
riskScore?: number;
|
|
103
|
+
reviewAfter?: string;
|
|
104
|
+
sourceUrl?: string;
|
|
105
|
+
dup?: DupCheck;
|
|
106
|
+
}
|
|
107
|
+
export interface ProposeResult {
|
|
108
|
+
decision: WikiWriteDecision;
|
|
109
|
+
candidate?: WikiCandidate;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=ports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../src/wiki/application/ports.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Hexagonal ports: domain-facing interfaces the infrastructure adapters
|
|
2
|
+
// implement and the application service depends on. No concrete IO here.
|
|
3
|
+
import { MIN_SCAN_PASSES } from "../domain/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* The write-authorization token. Its constructor is private, so the ONLY way to obtain
|
|
6
|
+
* an instance is `ApprovedWrite.issue(...)`, which throws unless the verdict is clean and
|
|
7
|
+
* adequately scanned. `WikiRepository.writePage` accepts ONLY this type — a raw string or
|
|
8
|
+
* a plain object will not type-check — so the canonical-write chokepoint is enforced by
|
|
9
|
+
* the type system, not by lint.
|
|
10
|
+
*/
|
|
11
|
+
export class ApprovedWrite {
|
|
12
|
+
page;
|
|
13
|
+
verdict;
|
|
14
|
+
constructor(page, verdict) {
|
|
15
|
+
this.page = page;
|
|
16
|
+
this.verdict = verdict;
|
|
17
|
+
}
|
|
18
|
+
/** Mint a token from a scan result. Throws unless the verdict is clean AND meets the
|
|
19
|
+
* multi-pass floor. The token is bound to the scanner's SCRUBBED content —
|
|
20
|
+
* the page that gets persisted always carries `scan.scrubbed`, never caller-supplied
|
|
21
|
+
* raw content — so a secret/injection cannot ride into a canonical page via a valid
|
|
22
|
+
* token. This is the single gate between scanning and canonical writing. */
|
|
23
|
+
static issue(page, scan) {
|
|
24
|
+
if (scan.verdict.status !== "clean") {
|
|
25
|
+
throw new Error(`cannot authorize write: scan verdict is ${scan.verdict.status}`);
|
|
26
|
+
}
|
|
27
|
+
if (scan.verdict.passes < MIN_SCAN_PASSES) {
|
|
28
|
+
throw new Error(`cannot authorize write: only ${scan.verdict.passes} scan pass(es) (< ${MIN_SCAN_PASSES})`);
|
|
29
|
+
}
|
|
30
|
+
return new ApprovedWrite({ ...page, content: scan.scrubbed }, scan.verdict);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.js","sourceRoot":"","sources":["../../../src/wiki/application/ports.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,yEAAyE;AAgBzE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAgBrD;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IAEf;IACA;IAFV,YACU,IAAc,EACd,OAAyB;QADzB,SAAI,GAAJ,IAAI,CAAU;QACd,YAAO,GAAP,OAAO,CAAkB;IAChC,CAAC;IAEJ;;;;gFAI4E;IAC5E,MAAM,CAAC,KAAK,CAAC,IAAc,EAAE,IAAgB;QAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,OAAO,CAAC,MAAM,qBAAqB,eAAe,GAAG,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,IAAI,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;CACD"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { WikiSlug } from "../domain/index.js";
|
|
2
|
+
import type { WikiIndex, WikiRepository, WikiSearchHit } from "./ports.js";
|
|
3
|
+
export declare function searchWiki(index: Pick<WikiIndex, "searchFts">, query: string, limit?: number): WikiSearchHit[];
|
|
4
|
+
export declare function listWikiPages(repo: Pick<WikiRepository, "listPages">, slug: WikiSlug): string[];
|
|
5
|
+
//# sourceMappingURL=queries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/wiki/application/queries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAM3E,wBAAgB,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,aAAa,EAAE,CAE1G;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAE/F"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Query side (CQS). These take ONLY the read-capable slice of each port via Pick<>, so a
|
|
2
|
+
// query physically cannot reach a write method (searchFts only, listPages only). searchWiki
|
|
3
|
+
// is side-effect-free — the FTS match string is bound, never interpolated (see wiki-query.ts).
|
|
4
|
+
export function searchWiki(index, query, limit = 10) {
|
|
5
|
+
return index.searchFts(query, limit);
|
|
6
|
+
}
|
|
7
|
+
export function listWikiPages(repo, slug) {
|
|
8
|
+
return repo.listPages(slug);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/wiki/application/queries.ts"],"names":[],"mappings":"AAGA,yFAAyF;AACzF,4FAA4F;AAC5F,+FAA+F;AAE/F,MAAM,UAAU,UAAU,CAAC,KAAmC,EAAE,KAAa,EAAE,KAAK,GAAG,EAAE;IACxF,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAuC,EAAE,IAAc;IACpF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { WikiSeed, WikiSlug, WikiSource, WikiWriteDecision } from "../domain/index.js";
|
|
2
|
+
import type { Fetcher, ProposeInput, ProposeResult, WikiIndex } from "./ports.js";
|
|
3
|
+
export interface ResearchContext {
|
|
4
|
+
fetcher: Fetcher;
|
|
5
|
+
index: Pick<WikiIndex, "searchFts">;
|
|
6
|
+
propose: (input: ProposeInput) => ProposeResult;
|
|
7
|
+
appendSource: (slug: WikiSlug, source: WikiSource) => void;
|
|
8
|
+
trace: (event: string, data: Record<string, unknown>) => void;
|
|
9
|
+
}
|
|
10
|
+
export interface ResearchOutcome {
|
|
11
|
+
decision: WikiWriteDecision["kind"];
|
|
12
|
+
candidateId?: string;
|
|
13
|
+
sourceUrl: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function runResearchStep(ctx: ResearchContext, slug: WikiSlug, seed: WikiSeed): Promise<ResearchOutcome>;
|
|
16
|
+
//# sourceMappingURL=research.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../../src/wiki/application/research.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1H,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQlF,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACpC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,aAAa,CAAC;IAChD,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3D,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CAClB;AA+BD,wBAAsB,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,CAmBpH"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { makeWikiPageId } from "../domain/index.js";
|
|
2
|
+
function titleFor(seed, content) {
|
|
3
|
+
const firstLine = content
|
|
4
|
+
.split("\n")
|
|
5
|
+
.map((l) => l.replace(/^#+\s*/, "").trim())
|
|
6
|
+
.find((l) => l.length > 0);
|
|
7
|
+
return (firstLine ?? seed.query).slice(0, 80);
|
|
8
|
+
}
|
|
9
|
+
function salienceFor(seed, novel) {
|
|
10
|
+
const sourceQuality = seed.kind === "arxiv" || seed.kind === "github" ? 2 : 1;
|
|
11
|
+
return {
|
|
12
|
+
explicit_user_intent: 2, // the seed was enqueued — explicit intent to research this
|
|
13
|
+
verified_outcome: 0, // fetched content is unverified until a human approves
|
|
14
|
+
recurrence_or_friction: 0,
|
|
15
|
+
novelty_vs_existing_wiki: novel ? 2 : 0,
|
|
16
|
+
future_reuse_likelihood: 2,
|
|
17
|
+
source_quality: sourceQuality,
|
|
18
|
+
blast_radius: 1,
|
|
19
|
+
security_risk_penalty: 0,
|
|
20
|
+
staleness_penalty: 0,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function computeDup(index, title) {
|
|
24
|
+
const hits = index.searchFts(title, 3);
|
|
25
|
+
const match = hits.find((h) => h.title.toLowerCase() === title.toLowerCase());
|
|
26
|
+
return match ? { isHighDuplicate: true, existingPageId: makeWikiPageId(match.pageId) } : { isHighDuplicate: false };
|
|
27
|
+
}
|
|
28
|
+
export async function runResearchStep(ctx, slug, seed) {
|
|
29
|
+
const doc = await ctx.fetcher.fetch(seed); // url-guard + size-cap + redirect re-validation enforced in the fetcher
|
|
30
|
+
ctx.appendSource(slug, doc.source);
|
|
31
|
+
const title = titleFor(seed, doc.content);
|
|
32
|
+
const dup = computeDup(ctx.index, title);
|
|
33
|
+
const result = ctx.propose({
|
|
34
|
+
slug,
|
|
35
|
+
title,
|
|
36
|
+
content: doc.content,
|
|
37
|
+
origin: "agent",
|
|
38
|
+
whySave: "research:" + seed.kind,
|
|
39
|
+
evidence: doc.sourceUrl,
|
|
40
|
+
sourceIds: [doc.source.id],
|
|
41
|
+
salience: salienceFor(seed, !dup.isHighDuplicate),
|
|
42
|
+
sourceUrl: doc.sourceUrl,
|
|
43
|
+
dup,
|
|
44
|
+
});
|
|
45
|
+
ctx.trace("wiki_research_step", { slug, kind: seed.kind, url: doc.sourceUrl, decision: result.decision.kind });
|
|
46
|
+
return { decision: result.decision.kind, candidateId: result.candidate?.id, sourceUrl: doc.sourceUrl };
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=research.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research.js","sourceRoot":"","sources":["../../../src/wiki/application/research.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { SalienceComponents, SalienceScore, WikiPage, WikiSeed, WikiSlug } from "../domain/index.js";
|
|
2
|
+
import { type IndexResult } from "../../core/derived-index.js";
|
|
3
|
+
import type { ProposeInput, ProposeResult, WikiServiceDeps } from "./ports.js";
|
|
4
|
+
import { type ResearchOutcome } from "./research.js";
|
|
5
|
+
export type { ProposeInput, ProposeResult, WikiServiceDeps } from "./ports.js";
|
|
6
|
+
export declare class WikiService {
|
|
7
|
+
private readonly deps;
|
|
8
|
+
constructor(deps: WikiServiceDeps);
|
|
9
|
+
createWiki(slug: WikiSlug, title: string): void;
|
|
10
|
+
scoreCandidate(components: SalienceComponents): SalienceScore;
|
|
11
|
+
/** Agent/system entry point. NEVER writes a canonical page — at most a candidate. */
|
|
12
|
+
proposeCandidate(input: ProposeInput): ProposeResult;
|
|
13
|
+
/** The ONLY canonical-page minting path. Human approval confirms intent but the scanner
|
|
14
|
+
* ALWAYS re-runs — approval can never bypass it. */
|
|
15
|
+
approveCandidate(slug: WikiSlug, candidateId: string, approvedBy: string): WikiPage;
|
|
16
|
+
rejectCandidate(slug: WikiSlug, candidateId: string, reason: string): void;
|
|
17
|
+
enqueueSeed(slug: WikiSlug, seed: WikiSeed): void;
|
|
18
|
+
reindexWiki(claudeDir: string): IndexResult;
|
|
19
|
+
recordWikiTrace(event: string, data: Record<string, unknown>): void;
|
|
20
|
+
/** Fetched content → candidate ONLY (never a canonical page). Requires a Fetcher dep. */
|
|
21
|
+
runResearchStep(slug: WikiSlug, seed: WikiSeed): Promise<ResearchOutcome>;
|
|
22
|
+
private recordIntervention;
|
|
23
|
+
/** The "writePage" step and the SOLE caller of repo.writePage. Write order: the caller
|
|
24
|
+
* has already scrubbed+scanned; here we mint the token (gate), write, index, then trace. */
|
|
25
|
+
private commitWrite;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/wiki/application/service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACX,kBAAkB,EAClB,aAAa,EAGb,QAAQ,EACR,QAAQ,EACR,QAAQ,EAER,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAc,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAkC,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrF,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAa/E,qBAAa,WAAW;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,eAAe;IAElD,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/C,cAAc,CAAC,UAAU,EAAE,kBAAkB,GAAG,aAAa;IAI7D,qFAAqF;IACrF,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa;IA8CpD;wDACoD;IACpD,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,QAAQ;IAiCnF,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAK1E,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI;IAKjD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW;IAM3C,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAInE,yFAAyF;IACnF,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC;IAe/E,OAAO,CAAC,kBAAkB;IAa1B;gGAC4F;IAC5F,OAAO,CAAC,WAAW;CAMnB"}
|