pi-harness-runtime 1.1.327 → 1.1.328
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/package.json +1 -1
- package/packages/a2a-adapter/package.json +1 -1
- package/packages/agent-policy/package.json +1 -1
- package/packages/architecture-generator/package.json +1 -1
- package/packages/auth/package.json +1 -1
- package/packages/autonomous-refactor/package.json +1 -1
- package/packages/autonomous-runtime/package.json +1 -1
- package/packages/cache-strategy/package.json +1 -1
- package/packages/capability-registry/package.json +1 -1
- package/packages/checkpoint/package.json +1 -1
- package/packages/cli-plugin-sdk/package.json +1 -1
- package/packages/clipboard/package.json +1 -1
- package/packages/clipboard-plugin/package.json +1 -1
- package/packages/code-generation/package.json +1 -1
- package/packages/code-review/package.json +1 -1
- package/packages/codex-adapter/package.json +1 -1
- package/packages/codex-watcher/package.json +1 -1
- package/packages/config-capture/package.json +1 -1
- package/packages/context-compiler/package.json +1 -1
- package/packages/context-discovery/package.json +1 -1
- package/packages/context-manager/package.json +1 -1
- package/packages/cookie-sanitizer/package.json +1 -1
- package/packages/cost-optimizer/package.json +1 -1
- package/packages/dependency-analyzer/package.json +1 -1
- package/packages/django-plugin/package.json +1 -1
- package/packages/doc-generator/package.json +1 -1
- package/packages/durable-review/package.json +1 -1
- package/packages/e2e-tester/package.json +1 -1
- package/packages/evaluation-engine/package.json +1 -1
- package/packages/evaluation-runner/package.json +1 -1
- package/packages/event-bus/package.json +1 -1
- package/packages/event-store/package.json +1 -1
- package/packages/experience-replay/package.json +1 -1
- package/packages/feedback-collector/package.json +1 -1
- package/packages/file-copy-helper/package.json +1 -1
- package/packages/framework-detector/package.json +1 -1
- package/packages/framework-plugin-sdk/package.json +1 -1
- package/packages/frappe-plugin/package.json +1 -1
- package/packages/generic-web-plugin/package.json +1 -1
- package/packages/health-monitor/package.json +1 -1
- package/packages/intent-analyzer/package.json +1 -1
- package/packages/jev-judge/package.json +1 -1
- package/packages/knowledge-graph/package.json +1 -1
- package/packages/knowledge-retrieval/package.json +1 -1
- package/packages/laravel-plugin/package.json +1 -1
- package/packages/learning-engine/package.json +1 -1
- package/packages/mcp-adapter/package.json +1 -1
- package/packages/memory-engine/package.json +1 -1
- package/packages/milestone-manager/package.json +1 -1
- package/packages/model-registry/package.json +1 -1
- package/packages/nextjs-plugin/package.json +1 -1
- package/packages/notification/package.json +1 -1
- package/packages/observability/package.json +1 -1
- package/packages/okf-indexer/package.json +1 -1
- package/packages/paperclip-integration/package.json +1 -1
- package/packages/performance-optimizer/package.json +1 -1
- package/packages/privilege-broker/package.json +1 -1
- package/packages/project-analyzer/package.json +1 -1
- package/packages/project-bootstrap/package.json +1 -1
- package/packages/projection-engine/package.json +1 -1
- package/packages/prompt-compiler/package.json +1 -1
- package/packages/prompt-versioning/package.json +1 -1
- package/packages/provider-adapter-sdk/package.json +1 -1
- package/packages/provider-router/package.json +1 -1
- package/packages/provider-selector/package.json +1 -1
- package/packages/providers/package.json +1 -1
- package/packages/qdrant-skills/package.json +1 -1
- package/packages/quota-manager/package.json +1 -1
- package/packages/rate-limiter/package.json +1 -1
- package/packages/react-vite-plugin/package.json +1 -1
- package/packages/release-manager/package.json +1 -1
- package/packages/requirement-compiler/package.json +1 -1
- package/packages/runtime/package.json +1 -1
- package/packages/scheduler/package.json +1 -1
- package/packages/scheduler-adapter/package.json +1 -1
- package/packages/session/package.json +1 -1
- package/packages/session-api/package.json +1 -1
- package/packages/session-export/package.json +1 -1
- package/packages/shared-context/package.json +1 -1
- package/packages/skill-mcp-client/package.json +1 -1
- package/packages/skill-registry/package.json +1 -1
- package/packages/skills/package.json +1 -1
- package/packages/sprint-planner/package.json +1 -1
- package/packages/subscription-engine/package.json +1 -1
- package/packages/task-compiler/package.json +1 -1
- package/packages/telegram/package.json +1 -1
- package/packages/tencentdb-memory/package.json +1 -1
- package/packages/tencentdb-sync/package.json +1 -1
- package/packages/test-data-generator/package.json +1 -1
- package/packages/test-generator/package.json +1 -1
- package/packages/todo-bd-sync/package.json +1 -1
- package/packages/token-estimation/package.json +1 -1
- package/packages/token-optimizer/package.json +1 -1
- package/packages/trajectory/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/packages/webmcp-tester/package.json +1 -1
- package/packages/wiki/dist/index.d.ts.map +1 -1
- package/packages/wiki/dist/index.js +35 -20
- package/packages/wiki/dist/index.js.map +1 -1
- package/packages/wiki/dist/storage.d.ts +27 -5
- package/packages/wiki/dist/storage.d.ts.map +1 -1
- package/packages/wiki/dist/storage.js +149 -39
- package/packages/wiki/dist/storage.js.map +1 -1
- package/packages/wiki/package.json +1 -1
- package/packages/wiki/src/index.ts +41 -23
- package/packages/wiki/src/storage.ts +164 -36
- package/packages/workflow-events/package.json +1 -1
- package/packages/workspace-scanner/package.json +1 -1
- package/packages/worktree/package.json +1 -1
- package/packages/write-review/package.json +1 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Handles atomic writes, transactions, and consistency.
|
|
5
5
|
*/
|
|
6
6
|
import { existsSync, mkdirSync, readFileSync, writeFileSync, unlinkSync, renameSync, readdirSync, statSync, } from "node:fs";
|
|
7
|
-
import { join } from "node:path";
|
|
7
|
+
import { join, resolve } from "node:path";
|
|
8
8
|
import { createHash, randomUUID } from "node:crypto";
|
|
9
9
|
// ============================================================================
|
|
10
10
|
// Utilities
|
|
@@ -41,55 +41,101 @@ export function parseFrontmatter(content) {
|
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* Simple YAML parser for frontmatter
|
|
44
|
-
* Handles: strings, booleans, numbers, arrays, nested objects
|
|
44
|
+
* Handles: strings, booleans, numbers, arrays, nested objects, YAML list items
|
|
45
45
|
*/
|
|
46
46
|
function parseYaml(yamlStr) {
|
|
47
47
|
const result = {};
|
|
48
48
|
const lines = yamlStr.split("\n");
|
|
49
49
|
const stack = [];
|
|
50
|
-
for (
|
|
50
|
+
for (let i = 0; i < lines.length; i++) {
|
|
51
|
+
const line = lines[i];
|
|
51
52
|
const trimmed = line.trim();
|
|
52
53
|
if (!trimmed || trimmed.startsWith("#"))
|
|
53
54
|
continue;
|
|
54
55
|
const indent = line.search(/\S/);
|
|
56
|
+
// Handle YAML list items (lines starting with '-')
|
|
57
|
+
if (trimmed.startsWith("-")) {
|
|
58
|
+
const itemContent = trimmed.slice(1).trim();
|
|
59
|
+
const colonIdx = itemContent.indexOf(":");
|
|
60
|
+
if (colonIdx !== -1) {
|
|
61
|
+
// This is a list item with key-value pairs on same line or next lines
|
|
62
|
+
const key = itemContent.slice(0, colonIdx).trim();
|
|
63
|
+
const value = itemContent.slice(colonIdx + 1).trim();
|
|
64
|
+
// Pop stack while indent decreases
|
|
65
|
+
while (stack.length > 0 && indent < stack[stack.length - 1].indent) {
|
|
66
|
+
stack.pop();
|
|
67
|
+
}
|
|
68
|
+
// Find or create the array
|
|
69
|
+
const parent = stack.length > 0 ? stack[stack.length - 1].obj : result;
|
|
70
|
+
const arrayKey = parent ? Object.keys(parent).slice(-1)[0] : undefined;
|
|
71
|
+
let array;
|
|
72
|
+
if (arrayKey && Array.isArray(parent[arrayKey])) {
|
|
73
|
+
array = parent[arrayKey];
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// Start a new array
|
|
77
|
+
const newArray = [];
|
|
78
|
+
if (parent) {
|
|
79
|
+
parent[arrayKey || key] = newArray;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
result[key] = newArray;
|
|
83
|
+
}
|
|
84
|
+
array = newArray;
|
|
85
|
+
}
|
|
86
|
+
// Create new object for this list item
|
|
87
|
+
const item = {};
|
|
88
|
+
array.push(item);
|
|
89
|
+
// Parse the key-value on this line
|
|
90
|
+
const parsedValue = parseValue(value);
|
|
91
|
+
if (parsedValue !== undefined) {
|
|
92
|
+
item[key] = parsedValue;
|
|
93
|
+
}
|
|
94
|
+
// Push this item to stack for nested properties
|
|
95
|
+
stack.push({ obj: item, indent });
|
|
96
|
+
}
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
// Regular key-value line
|
|
55
100
|
const colonIdx = trimmed.indexOf(":");
|
|
56
101
|
if (colonIdx === -1)
|
|
57
102
|
continue;
|
|
58
103
|
const key = trimmed.slice(0, colonIdx).trim();
|
|
59
|
-
|
|
104
|
+
const rawValue = trimmed.slice(colonIdx + 1).trim();
|
|
60
105
|
// Pop stack while indent decreases
|
|
61
106
|
while (stack.length > 0 && indent <= stack[stack.length - 1].indent) {
|
|
62
107
|
stack.pop();
|
|
63
108
|
}
|
|
64
109
|
const parent = stack.length > 0 ? stack[stack.length - 1].obj : result;
|
|
65
|
-
//
|
|
66
|
-
if (
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
else if (value === "false") {
|
|
73
|
-
value = false;
|
|
74
|
-
}
|
|
75
|
-
else if (/^-?\d+(\.\d+)?$/.test(value)) {
|
|
76
|
-
value = parseFloat(value);
|
|
77
|
-
}
|
|
78
|
-
else if (value.startsWith("[") && value.endsWith("]")) {
|
|
79
|
-
// Array
|
|
80
|
-
const arrContent = value.slice(1, -1);
|
|
81
|
-
value = arrContent
|
|
82
|
-
? arrContent.split(",").map((s) => s.trim().replace(/^["']|["']$/g, ""))
|
|
83
|
-
: [];
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
// String - remove quotes
|
|
87
|
-
value = value.replace(/^["']|["']$/g, "");
|
|
110
|
+
// Check if value is empty (nested content follows)
|
|
111
|
+
if (rawValue === "" || rawValue === "~" || rawValue === "null") {
|
|
112
|
+
// Nested content follows - create placeholder
|
|
113
|
+
const nested = {};
|
|
114
|
+
parent[key] = nested;
|
|
115
|
+
stack.push({ obj: nested, indent });
|
|
116
|
+
continue;
|
|
88
117
|
}
|
|
89
|
-
parent[key] =
|
|
118
|
+
parent[key] = parseValue(rawValue);
|
|
90
119
|
}
|
|
91
120
|
return result;
|
|
92
121
|
}
|
|
122
|
+
function parseValue(value) {
|
|
123
|
+
if (value === "" || value === "null" || value === "~") {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
if (value === "true")
|
|
127
|
+
return true;
|
|
128
|
+
if (value === "false")
|
|
129
|
+
return false;
|
|
130
|
+
if (/^-?\d+(\.\d+)?$/.test(value)) {
|
|
131
|
+
return parseFloat(value);
|
|
132
|
+
}
|
|
133
|
+
if (value.startsWith("[") && value.endsWith("]")) {
|
|
134
|
+
const content = value.slice(1, -1);
|
|
135
|
+
return content ? content.split(",").map((s) => s.trim().replace(/^["']|["']$/g, "")) : [];
|
|
136
|
+
}
|
|
137
|
+
return value.replace(/^["']|["']$/g, "");
|
|
138
|
+
}
|
|
93
139
|
/**
|
|
94
140
|
* Serialize frontmatter to YAML string
|
|
95
141
|
*/
|
|
@@ -158,12 +204,33 @@ export class WikiStorage {
|
|
|
158
204
|
indexMtime = 0; // Track when index was last loaded
|
|
159
205
|
operations = [];
|
|
160
206
|
stagedChanges = new Map();
|
|
207
|
+
initialized = false;
|
|
161
208
|
constructor(config) {
|
|
162
209
|
this.config = config;
|
|
163
|
-
|
|
210
|
+
// Don't create directories until explicitly initialized
|
|
211
|
+
// This prevents writes when the feature is disabled
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Initialize storage (call before any read/write operations)
|
|
215
|
+
* This is called automatically by WikiManager when feature is enabled
|
|
216
|
+
*/
|
|
217
|
+
/**
|
|
218
|
+
* Prepare storage for use (load indexes and operations)
|
|
219
|
+
* Called after directories are ensured by initialize()
|
|
220
|
+
*/
|
|
221
|
+
prepareStorage() {
|
|
222
|
+
if (this.initialized)
|
|
223
|
+
return;
|
|
164
224
|
this.loadIndex();
|
|
165
225
|
this.loadOperations();
|
|
166
226
|
this.loadStaged();
|
|
227
|
+
this.initialized = true;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Check if storage is initialized
|
|
231
|
+
*/
|
|
232
|
+
isInitialized() {
|
|
233
|
+
return this.initialized;
|
|
167
234
|
}
|
|
168
235
|
/**
|
|
169
236
|
* Get wiki configuration
|
|
@@ -250,14 +317,6 @@ verification:
|
|
|
250
317
|
config: this.config,
|
|
251
318
|
};
|
|
252
319
|
}
|
|
253
|
-
/**
|
|
254
|
-
* Ensure directory structure exists
|
|
255
|
-
*/
|
|
256
|
-
ensureStructure() {
|
|
257
|
-
if (!existsSync(this.config.wikiRoot)) {
|
|
258
|
-
mkdirSync(this.config.wikiRoot, { recursive: true });
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
320
|
/**
|
|
262
321
|
* Load page index from disk (if changed since last load)
|
|
263
322
|
*/
|
|
@@ -294,15 +353,41 @@ verification:
|
|
|
294
353
|
}
|
|
295
354
|
}
|
|
296
355
|
/**
|
|
297
|
-
* Save page index to disk (atomic)
|
|
356
|
+
* Save page index to disk (atomic, merges with existing entries)
|
|
298
357
|
*/
|
|
299
358
|
saveIndex() {
|
|
300
|
-
|
|
359
|
+
// Reload from disk to merge (handles concurrent writes)
|
|
360
|
+
const diskEntries = this.loadIndexFromDisk();
|
|
361
|
+
const merged = new Map(diskEntries);
|
|
362
|
+
// Apply in-memory changes
|
|
363
|
+
for (const [id, entry] of this.index) {
|
|
364
|
+
merged.set(id, entry);
|
|
365
|
+
}
|
|
366
|
+
const entries = Array.from(merged.values());
|
|
301
367
|
const content = JSON.stringify(entries, null, 2);
|
|
302
368
|
const tmpFile = this.config.indexFile + ".tmp";
|
|
303
369
|
writeFileSync(tmpFile, content, "utf8");
|
|
304
370
|
renameSync(tmpFile, this.config.indexFile);
|
|
305
371
|
}
|
|
372
|
+
/**
|
|
373
|
+
* Load index from disk only (no cache)
|
|
374
|
+
*/
|
|
375
|
+
loadIndexFromDisk() {
|
|
376
|
+
const result = new Map();
|
|
377
|
+
if (!existsSync(this.config.indexFile))
|
|
378
|
+
return result;
|
|
379
|
+
try {
|
|
380
|
+
const content = readFileSync(this.config.indexFile, "utf8");
|
|
381
|
+
const entries = JSON.parse(content);
|
|
382
|
+
for (const entry of entries) {
|
|
383
|
+
result.set(entry.id, entry);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
catch {
|
|
387
|
+
// Invalid index, return empty
|
|
388
|
+
}
|
|
389
|
+
return result;
|
|
390
|
+
}
|
|
306
391
|
/**
|
|
307
392
|
* Load operations from log
|
|
308
393
|
*/
|
|
@@ -390,7 +475,9 @@ verification:
|
|
|
390
475
|
* Get source snapshot by ID
|
|
391
476
|
*/
|
|
392
477
|
getSnapshot(snapshotId) {
|
|
478
|
+
this.validateSnapshotId(snapshotId);
|
|
393
479
|
const snapFile = join(this.config.rawDir, `${snapshotId}.json`);
|
|
480
|
+
this.ensureWithinDirectory(snapFile, this.config.rawDir);
|
|
394
481
|
if (!existsSync(snapFile))
|
|
395
482
|
return null;
|
|
396
483
|
try {
|
|
@@ -408,8 +495,10 @@ verification:
|
|
|
408
495
|
* Save a wiki page
|
|
409
496
|
*/
|
|
410
497
|
savePage(page) {
|
|
498
|
+
this.validatePageId(page.frontmatter.id);
|
|
411
499
|
const content = combinePage(page.frontmatter, page.body);
|
|
412
500
|
const pageFile = join(this.config.knowledgeDir, `${page.frontmatter.id}.md`);
|
|
501
|
+
this.ensureWithinDirectory(pageFile, this.config.knowledgeDir);
|
|
413
502
|
const tmpFile = pageFile + ".tmp";
|
|
414
503
|
writeFileSync(tmpFile, content, "utf8");
|
|
415
504
|
renameSync(tmpFile, pageFile);
|
|
@@ -431,7 +520,9 @@ verification:
|
|
|
431
520
|
* Load a wiki page
|
|
432
521
|
*/
|
|
433
522
|
loadPage(pageId) {
|
|
523
|
+
this.validatePageId(pageId);
|
|
434
524
|
const pageFile = join(this.config.knowledgeDir, `${pageId}.md`);
|
|
525
|
+
this.ensureWithinDirectory(pageFile, this.config.knowledgeDir);
|
|
435
526
|
if (!existsSync(pageFile))
|
|
436
527
|
return null;
|
|
437
528
|
const content = readFileSync(pageFile, "utf8");
|
|
@@ -449,6 +540,25 @@ verification:
|
|
|
449
540
|
throw new Error(`Invalid page ID: ${pageId}`);
|
|
450
541
|
}
|
|
451
542
|
}
|
|
543
|
+
/**
|
|
544
|
+
* Validate snapshot ID to prevent path traversal attacks
|
|
545
|
+
*/
|
|
546
|
+
validateSnapshotId(snapshotId) {
|
|
547
|
+
// Reject paths with directory separators or parent references
|
|
548
|
+
if (snapshotId.includes("/") || snapshotId.includes("\\") || snapshotId.includes("..")) {
|
|
549
|
+
throw new Error(`Invalid snapshot ID: ${snapshotId}`);
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* Ensure a path is within the expected directory (defense in depth)
|
|
554
|
+
*/
|
|
555
|
+
ensureWithinDirectory(filePath, expectedDir) {
|
|
556
|
+
const resolved = resolve(filePath);
|
|
557
|
+
const expected = resolve(expectedDir);
|
|
558
|
+
if (!resolved.startsWith(expected + "/") && resolved !== expected) {
|
|
559
|
+
throw new Error(`Path ${filePath} is outside expected directory ${expectedDir}`);
|
|
560
|
+
}
|
|
561
|
+
}
|
|
452
562
|
/**
|
|
453
563
|
* Delete a wiki page
|
|
454
564
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAqB,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAiBrD,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG;IACjB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAe;IAEf,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAElE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;IAChC,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAEvC,OAAO;QACL,wFAAwF;QACxF,8DAA8D;QAC9D,WAAW,EAAE,WAAkB;QAC/B,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QACjB,GAAG,EAAE,OAAO;KACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,KAAK,GAA4D,EAAE,CAAC;IAE1E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAElD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEtC,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,SAAS;QAE9B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,KAAK,GAAY,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAExD,mCAAmC;QACnC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACpE,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAEvE,cAAc;QACd,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACtD,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC5B,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAC7B,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;aAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAe,CAAC,EAAE,CAAC;YACnD,KAAK,GAAG,UAAU,CAAC,KAAe,CAAC,CAAC;QACtC,CAAC;aAAM,IAAK,KAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,IAAK,KAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChF,QAAQ;YACR,MAAM,UAAU,GAAI,KAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClD,KAAK,GAAG,UAAU;gBAChB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBACxE,CAAC,CAAC,EAAE,CAAC;QACT,CAAC;aAAM,CAAC;YACN,yBAAyB;YACzB,KAAK,GAAI,KAAgB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAAgC;IAEhC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAEpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBACnE,8CAA8C;gBAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;gBACtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,KAAK,CAAC,IAAI,CAAC,iBAAkB,IAAgC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC1E,KAAK,CAAC,IAAI,CAAC,aAAc,IAAgC,CAAC,IAAI,EAAE,CAAC,CAAC;oBAClE,KAAK,CAAC,IAAI,CAAC,oBAAqB,IAAgC,CAAC,WAAW,EAAE,CAAC,CAAC;oBAChF,KAAK,CAAC,IAAI,CAAC,mBAAoB,IAAgC,CAAC,UAAU,EAAE,CAAC,CAAC;oBAC9E,KAAK,CAAC,IAAI,CAAC,iBAAkB,IAAgC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,gBAAgB;YAChB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YACtB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;gBACtE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,2BAA2B;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,WAAgC,EAChC,IAAY;IAEZ,OAAO,QAAQ,oBAAoB,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;AACrE,CAAC;AAED,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,WAAW;IACd,MAAM,CAAa;IACnB,KAAK,GAAgC,IAAI,GAAG,EAAE,CAAC;IAC/C,UAAU,GAAG,CAAC,CAAC,CAAC,mCAAmC;IACnD,UAAU,GAAoB,EAAE,CAAC;IACjC,aAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;IAE7D,YAAY,MAAkB;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,wBAAwB;QACxB,KAAK,MAAM,GAAG,IAAI;YAChB,IAAI,CAAC,MAAM,CAAC,MAAM;YAClB,IAAI,CAAC,MAAM,CAAC,YAAY;YACxB,IAAI,CAAC,MAAM,CAAC,UAAU;SACvB,EAAE,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,aAAa,CACX,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDP,EACO,MAAM,CACP,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,QAAQ;YAClB,QAAQ;YACR,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,KAAK,GAAG,KAAK;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC7C,mDAAmD;gBACnD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpC,OAAO;gBACT,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,wCAAwC;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAqB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;YACzB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,SAAS;QACf,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;QAC/C,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACxC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,OAAO;QAE7C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzC,CAAC;gBAAC,MAAM,CAAC;oBACP,qBAAqB;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,aAAa;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,EAAiB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACvC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO;QAEpC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,OAAO,GAAmB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;QACpC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACxC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,2EAA2E;IAC3E,6BAA6B;IAC7B,2EAA2E;IAE3E;;OAEG;IACH,cAAc,CACZ,YAAoB,EACpB,OAAe,EACf,WAAmB;QAEnB,MAAM,EAAE,GAAG,QAAQ,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAmB;YAC/B,EAAE;YACF,YAAY;YACZ,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC;YACjC,UAAU,EAAE,GAAG,EAAE;YACjB,OAAO;YACP,QAAQ,EAAE,KAAK;YACf,WAAW;SACZ,CAAC;QAEF,qBAAqB;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACxD,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAEnE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,UAAkB;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAEvC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,kBAAkB;IAClB,2EAA2E;IAE3E;;OAEG;IACH,QAAQ,CAAC,IAAc;QACrB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;QAClC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACxC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE9B,eAAe;QACf,MAAM,KAAK,GAAmB;YAC5B,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;YACvB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;YAC7B,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YAC3B,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;YAC/B,IAAI,EAAE,EAAE,EAAE,sBAAsB;YAChC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YAChC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS;YACrC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;SAC1C,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,MAAc;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAEvC,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE7D,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAE9B,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC;IACpD,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,MAAc;QACnC,8DAA8D;QAC9D,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAc;QACvB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC;QAChE,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,0DAA0D;QAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YAAE,OAAO,KAAK,CAAC;QAExD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2EAA2E;IAC3E,4BAA4B;IAC5B,2EAA2E;IAE3E;;OAEG;IACH,WAAW,CAAC,MAAoB;QAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAAc;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAc;QAC9B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,2DAA2D;QAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,2EAA2E;IAC3E,oBAAoB;IACpB,2EAA2E;IAE3E;;OAEG;IACH,YAAY,CACV,IAAuB,EACvB,OAAgC,EAChC,SAAkB;QAElB,MAAM,EAAE,GAAkB;YACxB,EAAE,EAAE,MAAM,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACpC,IAAI;YACJ,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,GAAG,EAAE;YAChB,SAAS;YACT,OAAO;SACR,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,IAAY,EAAE,MAA+B,EAAE,KAAc;QAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAChE,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,OAAO;QAE3B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG;YACzB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC3B,MAAM;YACN,WAAW,EAAE,GAAG,EAAE;YAClB,KAAK;SACN,CAAC;QAEF,qCAAqC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAChF,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACxC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,IAAY,EAAE,OAAgC;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAChE,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,OAAO;QAE3B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG;YACzB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC3B,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE;SAC7D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,KAAK,GAAG,EAAE;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,2EAA2E;IAC3E,SAAS;IACT,2EAA2E;IAE3E;;OAEG;IACH,MAAM,CAAC,KAAa,EAAE,OAA2B,EAAE,KAAK,GAAG,EAAE;QAC3D,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,gBAAgB;YAChB,IAAI,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC5E,IAAI,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,SAAS;YACpF,IAAI,OAAO,EAAE,YAAY,IAAI,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY;gBAAE,SAAS;YAC9E,IAAI,OAAO,EAAE,aAAa,IAAI,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,aAAa;gBAAE,SAAS;YAEhF,sBAAsB;YACtB,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,MAAM,SAAS,GAAkC,EAAE,CAAC;YAEpD,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnD,SAAS,IAAI,GAAG,CAAC;gBACjB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrD,SAAS,IAAI,GAAG,CAAC;gBACjB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBACjE,SAAS,IAAI,GAAG,CAAC;gBACjB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAED,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,KAAK;oBACX,SAAS;oBACT,SAAS;oBACT,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;CACF;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,aAAqB,EACrB,SAAiB;IAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAe;QACzB,QAAQ;QACR,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;QAC7B,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;QACzC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;QACtC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC;QACnD,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC;QAChD,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;QACvC,SAAS;KACV,CAAC;IAEF,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { existsSync, readFileSync } from "node:fs";
|
|
8
|
-
import { join, resolve
|
|
8
|
+
import { join, resolve } from "node:path";
|
|
9
9
|
import { randomUUID } from "node:crypto";
|
|
10
10
|
import {
|
|
11
11
|
WikiStorage,
|
|
@@ -13,7 +13,6 @@ import {
|
|
|
13
13
|
computeHash,
|
|
14
14
|
now,
|
|
15
15
|
parseFrontmatter,
|
|
16
|
-
combinePage,
|
|
17
16
|
} from "./storage.js";
|
|
18
17
|
import type {
|
|
19
18
|
WikiConfig,
|
|
@@ -43,12 +42,16 @@ export function isWikiEnabled(): boolean {
|
|
|
43
42
|
}
|
|
44
43
|
|
|
45
44
|
/**
|
|
46
|
-
* Require wiki to be enabled
|
|
45
|
+
* Require wiki to be enabled and ensure storage is initialized
|
|
47
46
|
*/
|
|
48
|
-
function requireWiki(): void {
|
|
47
|
+
function requireWiki(storage: WikiStorage): void {
|
|
49
48
|
if (!isWikiEnabled()) {
|
|
50
49
|
throw new Error("Wiki feature is disabled. Set HARNESS_KNOWLEDGE_WIKI=1 to enable.");
|
|
51
50
|
}
|
|
51
|
+
// Lazy initialization: ensure storage is ready on first use
|
|
52
|
+
if (!storage.isInitialized()) {
|
|
53
|
+
storage.initialize();
|
|
54
|
+
}
|
|
52
55
|
}
|
|
53
56
|
|
|
54
57
|
// ============================================================================
|
|
@@ -82,7 +85,9 @@ export class WikiManager {
|
|
|
82
85
|
* Initialize wiki structure
|
|
83
86
|
*/
|
|
84
87
|
initialize(): WikiInitResult {
|
|
85
|
-
|
|
88
|
+
// Initialize storage before checking readiness
|
|
89
|
+
this.storage.initialize();
|
|
90
|
+
requireWiki(this.storage);
|
|
86
91
|
return this.storage.initialize();
|
|
87
92
|
}
|
|
88
93
|
|
|
@@ -105,7 +110,7 @@ export class WikiManager {
|
|
|
105
110
|
sourcePath: string,
|
|
106
111
|
requestId?: string
|
|
107
112
|
): { snapshot: SourceSnapshot; operation: WikiOperation; existing: boolean } {
|
|
108
|
-
requireWiki();
|
|
113
|
+
requireWiki(this.storage);
|
|
109
114
|
|
|
110
115
|
// Validate source path
|
|
111
116
|
const resolvedPath = resolve(sourcePath);
|
|
@@ -120,8 +125,14 @@ export class WikiManager {
|
|
|
120
125
|
(op) => op.requestId === requestId && op.status === "success"
|
|
121
126
|
);
|
|
122
127
|
if (existingOp) {
|
|
123
|
-
|
|
124
|
-
|
|
128
|
+
const details = existingOp.details as { snapshotId?: string; sourcePath?: string };
|
|
129
|
+
// Check if the source path matches (same requestId for different source = conflict)
|
|
130
|
+
if (details.sourcePath && details.sourcePath !== resolvedPath) {
|
|
131
|
+
throw new Error(
|
|
132
|
+
`Request ID ${requestId} was already used for a different source path. ` +
|
|
133
|
+
`Original: ${details.sourcePath}, Requested: ${sourcePath}`
|
|
134
|
+
);
|
|
135
|
+
}
|
|
125
136
|
if (details.snapshotId) {
|
|
126
137
|
const snapshot = this.storage.getSnapshot(details.snapshotId);
|
|
127
138
|
if (snapshot) {
|
|
@@ -159,7 +170,7 @@ export class WikiManager {
|
|
|
159
170
|
* Get source snapshot
|
|
160
171
|
*/
|
|
161
172
|
getSnapshot(snapshotId: string): SourceSnapshot | null {
|
|
162
|
-
requireWiki();
|
|
173
|
+
requireWiki(this.storage);
|
|
163
174
|
return this.storage.getSnapshot(snapshotId);
|
|
164
175
|
}
|
|
165
176
|
|
|
@@ -178,7 +189,7 @@ export class WikiManager {
|
|
|
178
189
|
relatedPages?: string[];
|
|
179
190
|
codeVersion?: string;
|
|
180
191
|
}): WikiPage {
|
|
181
|
-
requireWiki();
|
|
192
|
+
requireWiki(this.storage);
|
|
182
193
|
|
|
183
194
|
const id = `page-${randomUUID().slice(0, 8)}`;
|
|
184
195
|
const timestamp = now();
|
|
@@ -221,7 +232,7 @@ export class WikiManager {
|
|
|
221
232
|
verification: WikiPageFrontmatter["verification"];
|
|
222
233
|
}>
|
|
223
234
|
): WikiPage {
|
|
224
|
-
requireWiki();
|
|
235
|
+
requireWiki(this.storage);
|
|
225
236
|
|
|
226
237
|
const existing = this.storage.loadPage(pageId);
|
|
227
238
|
if (!existing) {
|
|
@@ -249,7 +260,7 @@ export class WikiManager {
|
|
|
249
260
|
* Load a wiki page
|
|
250
261
|
*/
|
|
251
262
|
loadPage(pageId: string): WikiPage | null {
|
|
252
|
-
requireWiki();
|
|
263
|
+
requireWiki(this.storage);
|
|
253
264
|
return this.storage.loadPage(pageId);
|
|
254
265
|
}
|
|
255
266
|
|
|
@@ -257,7 +268,7 @@ export class WikiManager {
|
|
|
257
268
|
* Delete a wiki page
|
|
258
269
|
*/
|
|
259
270
|
deletePage(pageId: string): void {
|
|
260
|
-
requireWiki();
|
|
271
|
+
requireWiki(this.storage);
|
|
261
272
|
this.storage.deletePage(pageId);
|
|
262
273
|
}
|
|
263
274
|
|
|
@@ -265,7 +276,7 @@ export class WikiManager {
|
|
|
265
276
|
* Get all pages
|
|
266
277
|
*/
|
|
267
278
|
getAllPages(): WikiPage[] {
|
|
268
|
-
requireWiki();
|
|
279
|
+
requireWiki(this.storage);
|
|
269
280
|
return this.storage.getAllPages();
|
|
270
281
|
}
|
|
271
282
|
|
|
@@ -277,7 +288,7 @@ export class WikiManager {
|
|
|
277
288
|
* Search wiki pages
|
|
278
289
|
*/
|
|
279
290
|
search(query: string, filters?: WikiSearchFilters, limit = 10): WikiSearchResult[] {
|
|
280
|
-
requireWiki();
|
|
291
|
+
requireWiki(this.storage);
|
|
281
292
|
return this.storage.search(query, filters, limit);
|
|
282
293
|
}
|
|
283
294
|
|
|
@@ -285,7 +296,7 @@ export class WikiManager {
|
|
|
285
296
|
* Get page index
|
|
286
297
|
*/
|
|
287
298
|
getIndex() {
|
|
288
|
-
requireWiki();
|
|
299
|
+
requireWiki(this.storage);
|
|
289
300
|
return this.storage.getIndex();
|
|
290
301
|
}
|
|
291
302
|
|
|
@@ -297,7 +308,7 @@ export class WikiManager {
|
|
|
297
308
|
* Stage a change for later application
|
|
298
309
|
*/
|
|
299
310
|
stageChange(pageId: string, expectedRevision: string, newContent: string): StagedChange {
|
|
300
|
-
requireWiki();
|
|
311
|
+
requireWiki(this.storage);
|
|
301
312
|
|
|
302
313
|
const existing = this.storage.loadPage(pageId);
|
|
303
314
|
if (!existing) {
|
|
@@ -319,7 +330,7 @@ export class WikiManager {
|
|
|
319
330
|
* Get staged change for a page
|
|
320
331
|
*/
|
|
321
332
|
getStagedChange(pageId: string): StagedChange | undefined {
|
|
322
|
-
requireWiki();
|
|
333
|
+
requireWiki(this.storage);
|
|
323
334
|
return this.storage.getStagedChange(pageId);
|
|
324
335
|
}
|
|
325
336
|
|
|
@@ -327,7 +338,7 @@ export class WikiManager {
|
|
|
327
338
|
* Clear staged change
|
|
328
339
|
*/
|
|
329
340
|
clearStagedChange(pageId: string): void {
|
|
330
|
-
requireWiki();
|
|
341
|
+
requireWiki(this.storage);
|
|
331
342
|
this.storage.clearStagedChange(pageId);
|
|
332
343
|
}
|
|
333
344
|
|
|
@@ -339,7 +350,7 @@ export class WikiManager {
|
|
|
339
350
|
* Apply staged change with conflict detection
|
|
340
351
|
*/
|
|
341
352
|
applyChange(pageId: string, _requestId?: string): WikiPage {
|
|
342
|
-
requireWiki();
|
|
353
|
+
requireWiki(this.storage);
|
|
343
354
|
|
|
344
355
|
const staged = this.storage.getStagedChange(pageId);
|
|
345
356
|
if (!staged) {
|
|
@@ -392,7 +403,7 @@ export class WikiManager {
|
|
|
392
403
|
* Run lint checks on wiki
|
|
393
404
|
*/
|
|
394
405
|
lint(scope?: "all" | "pages" | "links" | "freshness"): LintFinding[] {
|
|
395
|
-
requireWiki();
|
|
406
|
+
requireWiki(this.storage);
|
|
396
407
|
|
|
397
408
|
const findings: LintFinding[] = [];
|
|
398
409
|
|
|
@@ -567,7 +578,7 @@ export class WikiManager {
|
|
|
567
578
|
* Get recent operations
|
|
568
579
|
*/
|
|
569
580
|
getRecentOperations(limit = 50): WikiOperation[] {
|
|
570
|
-
requireWiki();
|
|
581
|
+
requireWiki(this.storage);
|
|
571
582
|
return this.storage.getRecentOperations(limit);
|
|
572
583
|
}
|
|
573
584
|
}
|
|
@@ -581,7 +592,14 @@ export class WikiManager {
|
|
|
581
592
|
*/
|
|
582
593
|
export function createWikiManager(workspaceRoot: string, projectId: string): WikiManager {
|
|
583
594
|
const storage = createWikiStorage(workspaceRoot, projectId);
|
|
584
|
-
|
|
595
|
+
const manager = new WikiManager(storage);
|
|
596
|
+
|
|
597
|
+
// Initialize storage if feature is enabled (may be called lazily later)
|
|
598
|
+
if (process.env.HARNESS_KNOWLEDGE_WIKI === "1") {
|
|
599
|
+
storage.initialize();
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
return manager;
|
|
585
603
|
}
|
|
586
604
|
|
|
587
605
|
// Re-export storage class
|