@jcode.labs/ragmir 4.2.2 → 5.0.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.
Files changed (197) hide show
  1. package/README.md +71 -160
  2. package/dist/chunking.d.ts +1 -1
  3. package/dist/chunking.d.ts.map +1 -1
  4. package/dist/chunking.js +17 -1
  5. package/dist/chunking.js.map +1 -1
  6. package/dist/cli-entry.js +1 -1
  7. package/dist/cli-entry.js.map +1 -1
  8. package/dist/cli-fast.d.ts +1 -3
  9. package/dist/cli-fast.d.ts.map +1 -1
  10. package/dist/cli-fast.js +2 -104
  11. package/dist/cli-fast.js.map +1 -1
  12. package/dist/cli-options.d.ts +0 -37
  13. package/dist/cli-options.d.ts.map +1 -1
  14. package/dist/cli-options.js +0 -53
  15. package/dist/cli-options.js.map +1 -1
  16. package/dist/cli.js +9 -701
  17. package/dist/cli.js.map +1 -1
  18. package/dist/client.d.ts +1 -3
  19. package/dist/client.d.ts.map +1 -1
  20. package/dist/client.js +7 -36
  21. package/dist/client.js.map +1 -1
  22. package/dist/config-migration.d.ts +6 -0
  23. package/dist/config-migration.d.ts.map +1 -0
  24. package/dist/config-migration.js +31 -0
  25. package/dist/config-migration.js.map +1 -0
  26. package/dist/config.d.ts +2 -0
  27. package/dist/config.d.ts.map +1 -1
  28. package/dist/config.js +17 -65
  29. package/dist/config.js.map +1 -1
  30. package/dist/context-resources.d.ts.map +1 -1
  31. package/dist/context-resources.js +2 -14
  32. package/dist/context-resources.js.map +1 -1
  33. package/dist/defaults.d.ts +0 -3
  34. package/dist/defaults.d.ts.map +1 -1
  35. package/dist/defaults.js +0 -13
  36. package/dist/defaults.js.map +1 -1
  37. package/dist/destroy.d.ts.map +1 -1
  38. package/dist/destroy.js +0 -2
  39. package/dist/destroy.js.map +1 -1
  40. package/dist/doctor.d.ts.map +1 -1
  41. package/dist/doctor.js +1 -9
  42. package/dist/doctor.js.map +1 -1
  43. package/dist/document-structure.js.map +1 -1
  44. package/dist/embeddings.d.ts.map +1 -1
  45. package/dist/embeddings.js +9 -1
  46. package/dist/embeddings.js.map +1 -1
  47. package/dist/errors.d.ts +1 -1
  48. package/dist/errors.d.ts.map +1 -1
  49. package/dist/errors.js.map +1 -1
  50. package/dist/evaluate.d.ts.map +1 -1
  51. package/dist/evaluate.js +0 -7
  52. package/dist/evaluate.js.map +1 -1
  53. package/dist/files.js.map +1 -1
  54. package/dist/generation-retention.js.map +1 -1
  55. package/dist/gitignore.js.map +1 -1
  56. package/dist/index-diagnostics.js +1 -1
  57. package/dist/index-diagnostics.js.map +1 -1
  58. package/dist/index-policy.d.ts.map +1 -1
  59. package/dist/index-policy.js +3 -4
  60. package/dist/index-policy.js.map +1 -1
  61. package/dist/index-write-lock.js.map +1 -1
  62. package/dist/index.d.ts +4 -15
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +2 -8
  65. package/dist/index.js.map +1 -1
  66. package/dist/ingest.d.ts.map +1 -1
  67. package/dist/ingest.js +3 -18
  68. package/dist/ingest.js.map +1 -1
  69. package/dist/ingestion-metrics.d.ts +1 -1
  70. package/dist/ingestion-metrics.d.ts.map +1 -1
  71. package/dist/ingestion-metrics.js +0 -1
  72. package/dist/ingestion-metrics.js.map +1 -1
  73. package/dist/ingestion-state.d.ts +1 -2
  74. package/dist/ingestion-state.d.ts.map +1 -1
  75. package/dist/ingestion-state.js +0 -2
  76. package/dist/ingestion-state.js.map +1 -1
  77. package/dist/lexical-scoring.d.ts +13 -0
  78. package/dist/lexical-scoring.d.ts.map +1 -0
  79. package/dist/lexical-scoring.js +35 -0
  80. package/dist/lexical-scoring.js.map +1 -0
  81. package/dist/mcp-output.d.ts +4 -31
  82. package/dist/mcp-output.d.ts.map +1 -1
  83. package/dist/mcp-output.js +4 -123
  84. package/dist/mcp-output.js.map +1 -1
  85. package/dist/mcp-summaries.d.ts +1 -12
  86. package/dist/mcp-summaries.d.ts.map +1 -1
  87. package/dist/mcp-summaries.js +0 -112
  88. package/dist/mcp-summaries.js.map +1 -1
  89. package/dist/mcp.d.ts +1 -5
  90. package/dist/mcp.d.ts.map +1 -1
  91. package/dist/mcp.js +22 -329
  92. package/dist/mcp.js.map +1 -1
  93. package/dist/ocr.d.ts +0 -1
  94. package/dist/ocr.d.ts.map +1 -1
  95. package/dist/ocr.js +0 -4
  96. package/dist/ocr.js.map +1 -1
  97. package/dist/parsing.js +13 -0
  98. package/dist/parsing.js.map +1 -1
  99. package/dist/preview.d.ts.map +1 -1
  100. package/dist/preview.js +2 -5
  101. package/dist/preview.js.map +1 -1
  102. package/dist/query-sanitizer.d.ts +2 -1
  103. package/dist/query-sanitizer.d.ts.map +1 -1
  104. package/dist/query-sanitizer.js +9 -127
  105. package/dist/query-sanitizer.js.map +1 -1
  106. package/dist/query.d.ts +1 -3
  107. package/dist/query.d.ts.map +1 -1
  108. package/dist/query.js +95 -71
  109. package/dist/query.js.map +1 -1
  110. package/dist/ranking.d.ts +1 -1
  111. package/dist/ranking.d.ts.map +1 -1
  112. package/dist/ranking.js +52 -41
  113. package/dist/ranking.js.map +1 -1
  114. package/dist/runtime-info.js.map +1 -1
  115. package/dist/search-output.d.ts +3 -0
  116. package/dist/search-output.d.ts.map +1 -0
  117. package/dist/search-output.js +26 -0
  118. package/dist/search-output.js.map +1 -0
  119. package/dist/security.d.ts.map +1 -1
  120. package/dist/security.js +5 -37
  121. package/dist/security.js.map +1 -1
  122. package/dist/setup-prompt.d.ts +1 -1
  123. package/dist/setup-prompt.d.ts.map +1 -1
  124. package/dist/setup-prompt.js +22 -25
  125. package/dist/setup-prompt.js.map +1 -1
  126. package/dist/setup.js +1 -1
  127. package/dist/setup.js.map +1 -1
  128. package/dist/skill.d.ts +1 -4
  129. package/dist/skill.d.ts.map +1 -1
  130. package/dist/skill.js +3 -71
  131. package/dist/skill.js.map +1 -1
  132. package/dist/storage-maintenance.js.map +1 -1
  133. package/dist/store.js +9 -1
  134. package/dist/store.js.map +1 -1
  135. package/dist/types.d.ts +19 -156
  136. package/dist/types.d.ts.map +1 -1
  137. package/dist/upgrade.d.ts +3 -2
  138. package/dist/upgrade.d.ts.map +1 -1
  139. package/dist/upgrade.js +20 -2
  140. package/dist/upgrade.js.map +1 -1
  141. package/dist/vector-index.js.map +1 -1
  142. package/dist/version.d.ts +1 -1
  143. package/dist/version.js +1 -1
  144. package/dist/workload.js.map +1 -1
  145. package/examples/document-evidence-benchmark/.ragmir/config.json +0 -9
  146. package/examples/document-evidence-benchmark/README.md +5 -3
  147. package/examples/document-evidence-benchmark/raw/rfp/security-questionnaire.md +1 -1
  148. package/examples/library-api-demo/README.md +17 -8
  149. package/examples/library-api-demo/run.mjs +6 -6
  150. package/examples/sovereign-rag-demo/.ragmir/config.json +3 -10
  151. package/examples/sovereign-rag-demo/README.md +21 -12
  152. package/package.json +21 -30
  153. package/skills/ragmir/SKILL.md +67 -199
  154. package/dist/access-log.d.ts +0 -30
  155. package/dist/access-log.d.ts.map +0 -1
  156. package/dist/access-log.js +0 -415
  157. package/dist/access-log.js.map +0 -1
  158. package/dist/cli-stdin.d.ts +0 -3
  159. package/dist/cli-stdin.d.ts.map +0 -1
  160. package/dist/cli-stdin.js +0 -15
  161. package/dist/cli-stdin.js.map +0 -1
  162. package/dist/portable-entry.d.ts +0 -5
  163. package/dist/portable-entry.d.ts.map +0 -1
  164. package/dist/portable-entry.js +0 -337
  165. package/dist/portable-entry.js.map +0 -1
  166. package/dist/portable.d.ts +0 -89
  167. package/dist/portable.d.ts.map +0 -1
  168. package/dist/portable.js +0 -1290
  169. package/dist/portable.js.map +0 -1
  170. package/dist/prompt-routing.d.ts +0 -12
  171. package/dist/prompt-routing.d.ts.map +0 -1
  172. package/dist/prompt-routing.js +0 -150
  173. package/dist/prompt-routing.js.map +0 -1
  174. package/dist/redaction.d.ts +0 -12
  175. package/dist/redaction.d.ts.map +0 -1
  176. package/dist/redaction.js +0 -253
  177. package/dist/redaction.js.map +0 -1
  178. package/dist/research.d.ts +0 -21
  179. package/dist/research.d.ts.map +0 -1
  180. package/dist/research.js +0 -667
  181. package/dist/research.js.map +0 -1
  182. package/dist/team-diagnostics.d.ts +0 -119
  183. package/dist/team-diagnostics.d.ts.map +0 -1
  184. package/dist/team-diagnostics.js +0 -515
  185. package/dist/team-diagnostics.js.map +0 -1
  186. package/dist/team-sync.d.ts +0 -49
  187. package/dist/team-sync.d.ts.map +0 -1
  188. package/dist/team-sync.js +0 -436
  189. package/dist/team-sync.js.map +0 -1
  190. package/skills/ragmir-audio-summary/SKILL.md +0 -80
  191. package/skills/ragmir-audio-summary/forge-voice.sh +0 -150
  192. package/skills/ragmir-audio-summary/listening-style.md +0 -92
  193. package/skills/ragmir-audio-summary/narration-templates.md +0 -162
  194. package/skills/ragmir-audio-summary/split-lines.py +0 -14
  195. package/skills/ragmir-audio-summary/xtts-voice.py +0 -46
  196. package/skills/ragmir-legal-dossier/SKILL.md +0 -143
  197. package/skills/ragmir-markdown-report/SKILL.md +0 -110
@@ -1,515 +0,0 @@
1
- import { createHash, randomUUID } from "node:crypto";
2
- import { mkdir, readFile, rename, rm, stat, writeFile } from "node:fs/promises";
3
- import path from "node:path";
4
- import { z } from "zod";
5
- import { loadConfig } from "./config.js";
6
- import { doctorWithConfig } from "./doctor.js";
7
- import { indexPolicyFingerprint } from "./index-policy.js";
8
- import { knowledgeBaseIdentity } from "./knowledge-bases.js";
9
- import { summarizeIndexedCorpus } from "./quality-report.js";
10
- import { readIndexManifestFilePage, readIndexManifestHeader } from "./store.js";
11
- import { VERSION } from "./version.js";
12
- const TEAM_SNAPSHOT_SCHEMA_VERSION = 1;
13
- const TEAM_SNAPSHOT_PAGE_SIZE = 1_000;
14
- const MAX_TEAM_SNAPSHOT_BYTES = 64 * 1024 * 1024;
15
- const MAX_TEAM_LABEL_CHARACTERS = 80;
16
- const MAX_TEAM_PATH_CHARACTERS = 4_096;
17
- const SHA256_PATTERN = /^[0-9a-f]{64}$/u;
18
- const LEGACY_SECURITY_BLOCKING_SNAPSHOT_VERSIONS = new Set(["2.19.0", "2.19.1", "2.19.2"]);
19
- const teamSnapshotFileSchema = z
20
- .object({
21
- relativePath: z
22
- .string()
23
- .min(1)
24
- .max(MAX_TEAM_PATH_CHARACTERS)
25
- .refine(isTeamRelativePath, "must be a normalized relative source path"),
26
- checksum: z.string().regex(SHA256_PATTERN),
27
- chunkCount: z.number().int().nonnegative(),
28
- })
29
- .strict();
30
- const teamSourceContractSchema = z
31
- .string()
32
- .min(1)
33
- .max(MAX_TEAM_PATH_CHARACTERS)
34
- .refine(isTeamSourceContract, "must not expose an absolute or parent-relative source path");
35
- const teamSnapshotSchema = z
36
- .object({
37
- schemaVersion: z.literal(TEAM_SNAPSHOT_SCHEMA_VERSION),
38
- createdAt: z.iso.datetime(),
39
- label: z.string().min(1).max(MAX_TEAM_LABEL_CHARACTERS),
40
- knowledgeBaseId: z.string().min(1).max(256).nullable(),
41
- runtimeRagmirVersion: z.string().min(1).max(128),
42
- ready: z.boolean(),
43
- freshnessWarning: z.string().max(8_192).nullable(),
44
- configuration: z
45
- .object({
46
- sources: z.array(teamSourceContractSchema),
47
- privacyProfile: z.enum(["strict", "private", "trusted", "custom"]),
48
- retrievalProfile: z.enum(["fast", "balanced", "quality", "custom"]),
49
- embeddingProvider: z.enum(["local-hash", "transformers"]),
50
- embeddingModel: z.string().max(1_024),
51
- embeddingModelRevision: z.string().max(1_024),
52
- embeddingModelDigest: z.string().max(1_024).nullable(),
53
- redactionEnabled: z.boolean(),
54
- chunkSize: z.number().int().positive(),
55
- chunkOverlap: z.number().int().nonnegative(),
56
- sourceFingerprintMode: z.enum(["fast", "strict"]),
57
- incrementalFailurePolicy: z.enum(["preserve-last-good", "remove-stale"]),
58
- retrievalTopK: z.number().int().positive(),
59
- indexPolicyFingerprint: z.string().regex(SHA256_PATTERN),
60
- })
61
- .strict(),
62
- corpus: z
63
- .object({
64
- fingerprint: z.string().regex(SHA256_PATTERN).nullable(),
65
- activeIndexFingerprint: z.string().regex(SHA256_PATTERN).nullable(),
66
- indexedWithRagmirVersion: z.string().min(1).max(128).nullable(),
67
- indexSchemaVersion: z.number().int().nonnegative().nullable(),
68
- indexedFiles: z.number().int().nonnegative(),
69
- chunksIndexed: z.number().int().nonnegative(),
70
- files: z.array(teamSnapshotFileSchema),
71
- })
72
- .strict(),
73
- health: z
74
- .object({
75
- missingFromIndex: z.number().int().nonnegative(),
76
- staleInIndex: z.number().int().nonnegative(),
77
- emptyTextFiles: z.number().int().nonnegative(),
78
- oversizedFiles: z.number().int().nonnegative(),
79
- securityWarnings: z.number().int().nonnegative(),
80
- })
81
- .strict(),
82
- notice: z.string().max(1_024),
83
- })
84
- .strict();
85
- export async function createTeamSnapshot(options = {}) {
86
- const config = await loadConfig(options.cwd ?? process.cwd());
87
- const sourceContract = await createSnapshotSourceContract(config.projectRoot, config.sources);
88
- for (let attempt = 0; attempt < 3; attempt += 1) {
89
- const manifestBefore = await readIndexManifestHeader(config);
90
- const report = await doctorWithConfig(config);
91
- const files = manifestBefore
92
- ? await readAllManifestFiles(config, manifestBefore.fileCount, sourceContract.externalMappings)
93
- : [];
94
- const manifestAfter = await readIndexManifestHeader(config);
95
- if (!sameManifestGeneration(manifestBefore, manifestAfter) ||
96
- report.corpusFingerprint !== (manifestAfter?.corpusFingerprint ?? null) ||
97
- report.indexedFiles !== (manifestAfter?.fileCount ?? 0) ||
98
- report.chunksIndexed !== (manifestAfter?.chunkCount ?? 0)) {
99
- continue;
100
- }
101
- const identity = knowledgeBaseIdentity(config.projectRoot);
102
- const snapshot = {
103
- schemaVersion: TEAM_SNAPSHOT_SCHEMA_VERSION,
104
- createdAt: new Date().toISOString(),
105
- label: normalizeTeamLabel(options.label ?? "local"),
106
- knowledgeBaseId: identity?.id ?? null,
107
- runtimeRagmirVersion: VERSION,
108
- ready: report.readiness.operationalReady && report.readiness.indexPolicyCurrent,
109
- freshnessWarning: report.indexFreshness.warning,
110
- configuration: {
111
- sources: sourceContract.sources,
112
- privacyProfile: config.privacyProfile,
113
- retrievalProfile: config.retrievalProfile,
114
- embeddingProvider: config.embeddingProvider,
115
- embeddingModel: config.embeddingModel,
116
- embeddingModelRevision: config.embeddingModelRevision,
117
- embeddingModelDigest: config.embeddingModelDigest,
118
- redactionEnabled: config.redaction.enabled,
119
- chunkSize: config.chunkSize,
120
- chunkOverlap: config.chunkOverlap,
121
- sourceFingerprintMode: config.sourceFingerprintMode,
122
- incrementalFailurePolicy: config.incrementalFailurePolicy,
123
- retrievalTopK: config.topK,
124
- indexPolicyFingerprint: indexPolicyFingerprint(config),
125
- },
126
- corpus: {
127
- fingerprint: manifestAfter ? fingerprintTeamFiles(files) : null,
128
- activeIndexFingerprint: manifestAfter?.corpusFingerprint ?? null,
129
- indexedWithRagmirVersion: manifestAfter?.ragmirVersion ?? null,
130
- indexSchemaVersion: manifestAfter?.schemaVersion ?? null,
131
- indexedFiles: manifestAfter?.fileCount ?? 0,
132
- chunksIndexed: manifestAfter?.chunkCount ?? 0,
133
- files,
134
- },
135
- health: {
136
- missingFromIndex: report.missingFromIndex,
137
- staleInIndex: report.staleInIndex,
138
- emptyTextFiles: report.emptyTextFiles,
139
- oversizedFiles: report.oversizedFiles,
140
- securityWarnings: report.securityWarnings.length,
141
- },
142
- notice: "This snapshot contains relative source paths and SHA-256 checksums, never source text or absolute project paths. Share it only with authorized team members.",
143
- };
144
- assertTeamSnapshotIntegrity(snapshot);
145
- return snapshot;
146
- }
147
- throw new Error("The active index changed repeatedly while creating the team snapshot. Retry.");
148
- }
149
- export async function writeTeamSnapshot(snapshot, outputPath) {
150
- const validated = teamSnapshotSchema.parse(snapshot);
151
- assertTeamSnapshotIntegrity(validated);
152
- const resolved = path.resolve(outputPath);
153
- await mkdir(path.dirname(resolved), { recursive: true });
154
- const temporaryPath = `${resolved}.${randomUUID()}.tmp`;
155
- const serialized = `${JSON.stringify(validated, null, 2)}\n`;
156
- if (Buffer.byteLength(serialized, "utf8") > MAX_TEAM_SNAPSHOT_BYTES) {
157
- throw new Error(`Team snapshot exceeds the ${MAX_TEAM_SNAPSHOT_BYTES}-byte safety limit.`);
158
- }
159
- try {
160
- await writeFile(temporaryPath, serialized, { encoding: "utf8", mode: 0o600 });
161
- await rename(temporaryPath, resolved);
162
- }
163
- finally {
164
- await rm(temporaryPath, { force: true });
165
- }
166
- return resolved;
167
- }
168
- export async function readTeamSnapshot(snapshotPath) {
169
- const resolved = path.resolve(snapshotPath);
170
- const metadata = await stat(resolved);
171
- if (!metadata.isFile()) {
172
- throw new Error(`Team snapshot is not a file: ${resolved}`);
173
- }
174
- if (metadata.size > MAX_TEAM_SNAPSHOT_BYTES) {
175
- throw new Error(`Team snapshot exceeds the ${MAX_TEAM_SNAPSHOT_BYTES}-byte safety limit: ${resolved}`);
176
- }
177
- let raw;
178
- try {
179
- raw = JSON.parse(await readFile(resolved, "utf8"));
180
- }
181
- catch (error) {
182
- throw new Error(`Team snapshot is not valid JSON: ${resolved}`, { cause: error });
183
- }
184
- const result = teamSnapshotSchema.safeParse(raw);
185
- if (!result.success) {
186
- throw new Error(`Team snapshot does not match schema v${TEAM_SNAPSHOT_SCHEMA_VERSION}: ${resolved}`);
187
- }
188
- assertTeamSnapshotIntegrity(result.data);
189
- return result.data;
190
- }
191
- export function compareTeamSnapshots(local, peer) {
192
- const validatedLocal = teamSnapshotSchema.parse(local);
193
- const validatedPeer = teamSnapshotSchema.parse(peer);
194
- assertTeamSnapshotIntegrity(validatedLocal);
195
- assertTeamSnapshotIntegrity(validatedPeer);
196
- const configurationDifferences = compareConfiguration(validatedLocal, validatedPeer);
197
- const localFiles = new Map(validatedLocal.corpus.files.map((file) => [file.relativePath, file]));
198
- const peerFiles = new Map(validatedPeer.corpus.files.map((file) => [file.relativePath, file]));
199
- const localOnly = [...localFiles.keys()].filter((file) => !peerFiles.has(file)).sort();
200
- const peerOnly = [...peerFiles.keys()].filter((file) => !localFiles.has(file)).sort();
201
- const changed = [...localFiles.entries()]
202
- .flatMap(([relativePath, localFile]) => {
203
- const peerFile = peerFiles.get(relativePath);
204
- if (!peerFile || peerFile.checksum === localFile.checksum) {
205
- return [];
206
- }
207
- return [
208
- {
209
- relativePath,
210
- localChecksum: localFile.checksum,
211
- peerChecksum: peerFile.checksum,
212
- localChunks: localFile.chunkCount,
213
- peerChunks: peerFile.chunkCount,
214
- },
215
- ];
216
- })
217
- .sort((left, right) => left.relativePath.localeCompare(right.relativePath));
218
- const sameConfiguration = configurationDifferences.length === 0;
219
- const sameCorpus = validatedLocal.corpus.fingerprint !== null &&
220
- validatedLocal.corpus.fingerprint === validatedPeer.corpus.fingerprint &&
221
- localOnly.length === 0 &&
222
- peerOnly.length === 0 &&
223
- changed.length === 0;
224
- const localReady = isTeamSnapshotOperational(validatedLocal);
225
- const peerReady = isTeamSnapshotOperational(validatedPeer);
226
- const synchronized = localReady && peerReady && sameConfiguration && sameCorpus;
227
- const status = comparisonStatus(validatedLocal, validatedPeer, sameConfiguration, sameCorpus);
228
- const advisoryCount = validatedLocal.health.securityWarnings + validatedPeer.health.securityWarnings;
229
- return {
230
- status,
231
- synchronized,
232
- summary: comparisonSummary(status, localOnly.length, peerOnly.length, changed.length, advisoryCount),
233
- localLabel: validatedLocal.label,
234
- peerLabel: validatedPeer.label,
235
- securityAdvisories: {
236
- local: validatedLocal.health.securityWarnings,
237
- peer: validatedPeer.health.securityWarnings,
238
- },
239
- sameConfiguration,
240
- sameCorpus,
241
- authorityDecisionRequired: !sameCorpus && localOnly.length + peerOnly.length + changed.length > 0,
242
- configurationDifferences,
243
- files: { localOnly, peerOnly, changed },
244
- recommendedActions: recommendedActions(validatedLocal, validatedPeer, configurationDifferences, sameCorpus),
245
- };
246
- }
247
- function sameManifestGeneration(before, after) {
248
- if (!before || !after) {
249
- return before === after;
250
- }
251
- return (before.createdAt === after.createdAt &&
252
- before.tableName === after.tableName &&
253
- before.schemaVersion === after.schemaVersion &&
254
- before.fileCount === after.fileCount &&
255
- before.chunkCount === after.chunkCount &&
256
- before.corpusFingerprint === after.corpusFingerprint);
257
- }
258
- function isTeamRelativePath(value) {
259
- if (value.includes("\0") || path.posix.isAbsolute(value) || path.win32.isAbsolute(value)) {
260
- return false;
261
- }
262
- return !value.split(/[\\/]/u).some((segment) => segment === "..");
263
- }
264
- function isTeamSourceContract(value) {
265
- const source = value.startsWith("!") ? value.slice(1) : value;
266
- return source.length > 0 && isTeamRelativePath(source);
267
- }
268
- function assertTeamSnapshotIntegrity(snapshot) {
269
- if (snapshot.corpus.indexedFiles !== snapshot.corpus.files.length) {
270
- throw new Error("Team snapshot indexedFiles does not match its file inventory.");
271
- }
272
- const chunks = snapshot.corpus.files.reduce((total, file) => total + file.chunkCount, 0);
273
- if (chunks !== snapshot.corpus.chunksIndexed) {
274
- throw new Error("Team snapshot chunksIndexed does not match its file inventory.");
275
- }
276
- const paths = snapshot.corpus.files.map((file) => file.relativePath);
277
- if (new Set(paths).size !== paths.length) {
278
- throw new Error("Team snapshot contains duplicate relative paths.");
279
- }
280
- if (snapshot.corpus.fingerprint !== null) {
281
- const calculated = fingerprintTeamFiles(snapshot.corpus.files);
282
- if (snapshot.corpus.fingerprint !== calculated) {
283
- throw new Error("Team snapshot corpus fingerprint does not match its file inventory.");
284
- }
285
- }
286
- if (snapshot.ready &&
287
- (snapshot.corpus.fingerprint === null ||
288
- snapshot.freshnessWarning !== null ||
289
- snapshot.health.missingFromIndex > 0 ||
290
- snapshot.health.staleInIndex > 0 ||
291
- snapshot.health.emptyTextFiles > 0 ||
292
- snapshot.health.oversizedFiles > 0)) {
293
- throw new Error("Team snapshot cannot be ready while freshness or coverage fails.");
294
- }
295
- }
296
- function isTeamSnapshotOperational(snapshot) {
297
- const storedHealthIsOperational = snapshot.corpus.fingerprint !== null &&
298
- snapshot.corpus.chunksIndexed > 0 &&
299
- snapshot.freshnessWarning === null &&
300
- snapshot.health.missingFromIndex === 0 &&
301
- snapshot.health.staleInIndex === 0 &&
302
- snapshot.health.emptyTextFiles === 0 &&
303
- snapshot.health.oversizedFiles === 0;
304
- if (!storedHealthIsOperational) {
305
- return false;
306
- }
307
- if (snapshot.ready) {
308
- return true;
309
- }
310
- return (snapshot.health.securityWarnings > 0 &&
311
- LEGACY_SECURITY_BLOCKING_SNAPSHOT_VERSIONS.has(snapshot.runtimeRagmirVersion));
312
- }
313
- function fingerprintTeamFiles(files) {
314
- return summarizeIndexedCorpus([...files].sort((left, right) => compareUnicodeScalarValues(left.relativePath, right.relativePath))).corpusFingerprint;
315
- }
316
- async function readAllManifestFiles(config, expectedFiles, externalMappings) {
317
- const files = [];
318
- let offset = 0;
319
- while (offset < expectedFiles) {
320
- const page = await readIndexManifestFilePage(config, offset, TEAM_SNAPSHOT_PAGE_SIZE);
321
- if (!page) {
322
- throw new Error("The active index file inventory changed while creating the team snapshot.");
323
- }
324
- files.push(...page.files.map((file) => ({
325
- relativePath: snapshotManifestPath(config.projectRoot, file.relativePath, file.checksum, externalMappings),
326
- checksum: file.checksum,
327
- chunkCount: file.chunkCount,
328
- })));
329
- if (page.nextOffset === null) {
330
- break;
331
- }
332
- offset = page.nextOffset;
333
- }
334
- if (files.length !== expectedFiles) {
335
- throw new Error("The active index file inventory is incomplete. Retry the team snapshot.");
336
- }
337
- return files.sort((left, right) => compareUnicodeScalarValues(left.relativePath, right.relativePath));
338
- }
339
- async function createSnapshotSourceContract(projectRoot, sources) {
340
- const externalMappings = [];
341
- const snapshotSources = await Promise.all(sources.map(async (entry, index) => {
342
- const excluded = entry.startsWith("!");
343
- const source = excluded ? entry.slice(1) : entry;
344
- const firstGlobCharacter = source.search(/[[\]*?{}()+@]/u);
345
- const literalPrefix = firstGlobCharacter === -1 ? source : source.slice(0, firstGlobCharacter);
346
- const globSuffix = firstGlobCharacter === -1 ? "" : source.slice(firstGlobCharacter);
347
- const prefixWithoutTrailingSeparators = literalPrefix.replace(/[\\/]+$/u, "");
348
- const resolvedPrefix = path.resolve(projectRoot, prefixWithoutTrailingSeparators || ".");
349
- const outsideProject = isOutsideProject(projectRoot, resolvedPrefix);
350
- if (!outsideProject) {
351
- const normalizedSource = path.isAbsolute(source)
352
- ? joinSnapshotPath(path.relative(projectRoot, resolvedPrefix), globSuffix)
353
- : normalizeSnapshotPath(source);
354
- return excluded ? `!${normalizedSource}` : normalizedSource;
355
- }
356
- const alias = `<external-source-${index + 1}>`;
357
- if (!excluded) {
358
- const metadata = firstGlobCharacter === -1 ? await stat(resolvedPrefix).catch(() => null) : null;
359
- externalMappings.push({
360
- alias,
361
- rootPath: resolvedPrefix,
362
- exactFile: metadata?.isFile() ?? false,
363
- });
364
- }
365
- const sanitized = joinSnapshotPath(alias, normalizeSnapshotPath(globSuffix));
366
- return excluded ? `!${sanitized}` : sanitized;
367
- }));
368
- return {
369
- sources: snapshotSources,
370
- externalMappings: externalMappings.sort((left, right) => right.rootPath.length - left.rootPath.length),
371
- };
372
- }
373
- function snapshotManifestPath(projectRoot, relativePath, checksum, externalMappings) {
374
- const absolutePath = path.resolve(projectRoot, relativePath);
375
- if (!isOutsideProject(projectRoot, absolutePath)) {
376
- return normalizeSnapshotPath(path.relative(projectRoot, absolutePath));
377
- }
378
- for (const mapping of externalMappings) {
379
- if (mapping.exactFile && absolutePath === mapping.rootPath) {
380
- return joinSnapshotPath(mapping.alias, path.basename(absolutePath));
381
- }
382
- if (!mapping.exactFile && !isOutsideProject(mapping.rootPath, absolutePath)) {
383
- return joinSnapshotPath(mapping.alias, path.relative(mapping.rootPath, absolutePath));
384
- }
385
- }
386
- const basename = path.basename(absolutePath) || "source";
387
- const pathDigest = createHash("sha256").update(relativePath).digest("hex").slice(0, 12);
388
- return joinSnapshotPath("<external-unmapped>", `${checksum.slice(0, 12)}-${pathDigest}-${basename}`);
389
- }
390
- function isOutsideProject(projectRoot, candidatePath) {
391
- const relative = path.relative(projectRoot, candidatePath);
392
- return relative === ".." || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative);
393
- }
394
- function joinSnapshotPath(prefix, suffix) {
395
- const normalizedPrefix = normalizeSnapshotPath(prefix).replace(/\/$/u, "");
396
- const normalizedSuffix = normalizeSnapshotPath(suffix).replace(/^\/+|\/+$/gu, "");
397
- if (normalizedPrefix.length === 0) {
398
- return normalizedSuffix;
399
- }
400
- return normalizedSuffix.length > 0 ? `${normalizedPrefix}/${normalizedSuffix}` : normalizedPrefix;
401
- }
402
- function normalizeSnapshotPath(value) {
403
- return value.replaceAll("\\", "/");
404
- }
405
- function compareUnicodeScalarValues(left, right) {
406
- let leftIndex = 0;
407
- let rightIndex = 0;
408
- while (leftIndex < left.length && rightIndex < right.length) {
409
- const leftCodePoint = left.codePointAt(leftIndex);
410
- const rightCodePoint = right.codePointAt(rightIndex);
411
- if (leftCodePoint === undefined || rightCodePoint === undefined) {
412
- break;
413
- }
414
- if (leftCodePoint !== rightCodePoint) {
415
- return leftCodePoint - rightCodePoint;
416
- }
417
- leftIndex += leftCodePoint > 0xffff ? 2 : 1;
418
- rightIndex += rightCodePoint > 0xffff ? 2 : 1;
419
- }
420
- return left.length - right.length;
421
- }
422
- function normalizeTeamLabel(label) {
423
- const normalized = label.trim();
424
- if (normalized.length === 0 || normalized.length > MAX_TEAM_LABEL_CHARACTERS) {
425
- throw new Error(`Team label must contain 1 to ${MAX_TEAM_LABEL_CHARACTERS} characters.`);
426
- }
427
- return normalized;
428
- }
429
- function compareConfiguration(local, peer) {
430
- const differences = [];
431
- addDifference(differences, "runtimeRagmirVersion", "runtime", local.runtimeRagmirVersion, peer.runtimeRagmirVersion);
432
- addDifference(differences, "sources", "source-contract", local.configuration.sources, peer.configuration.sources);
433
- addDifference(differences, "privacyProfile", "privacy", local.configuration.privacyProfile, peer.configuration.privacyProfile, true);
434
- addDifference(differences, "retrievalProfile", "retrieval", local.configuration.retrievalProfile, peer.configuration.retrievalProfile);
435
- addDifference(differences, "embeddingProvider", "index", local.configuration.embeddingProvider, peer.configuration.embeddingProvider, true);
436
- addDifference(differences, "embeddingModel", "index", local.configuration.embeddingModel, peer.configuration.embeddingModel, true);
437
- addDifference(differences, "embeddingModelRevision", "index", local.configuration.embeddingModelRevision, peer.configuration.embeddingModelRevision, true);
438
- addDifference(differences, "embeddingModelDigest", "index", local.configuration.embeddingModelDigest, peer.configuration.embeddingModelDigest, true);
439
- addDifference(differences, "redactionEnabled", "privacy", local.configuration.redactionEnabled, peer.configuration.redactionEnabled, true);
440
- addDifference(differences, "chunkSize", "index", local.configuration.chunkSize, peer.configuration.chunkSize, true);
441
- addDifference(differences, "chunkOverlap", "index", local.configuration.chunkOverlap, peer.configuration.chunkOverlap, true);
442
- addDifference(differences, "sourceFingerprintMode", "index", local.configuration.sourceFingerprintMode, peer.configuration.sourceFingerprintMode, true);
443
- addDifference(differences, "incrementalFailurePolicy", "index", local.configuration.incrementalFailurePolicy, peer.configuration.incrementalFailurePolicy);
444
- addDifference(differences, "retrievalTopK", "retrieval", local.configuration.retrievalTopK, peer.configuration.retrievalTopK);
445
- addDifference(differences, "indexPolicyFingerprint", "index", local.configuration.indexPolicyFingerprint, peer.configuration.indexPolicyFingerprint, true);
446
- return differences;
447
- }
448
- function addDifference(differences, field, scope, local, peer, requiresRebuild = false) {
449
- if (JSON.stringify(local) !== JSON.stringify(peer)) {
450
- differences.push({ field, scope, local, peer, requiresRebuild });
451
- }
452
- }
453
- function comparisonStatus(local, peer, sameConfiguration, sameCorpus) {
454
- if (!isTeamSnapshotOperational(local) || !isTeamSnapshotOperational(peer)) {
455
- return "not-ready";
456
- }
457
- if (!sameConfiguration) {
458
- return "configuration-mismatch";
459
- }
460
- return sameCorpus ? "synchronized" : "corpus-mismatch";
461
- }
462
- function comparisonSummary(status, localOnly, peerOnly, changed, securityAdvisories) {
463
- if (status === "synchronized") {
464
- const advisoryNote = securityAdvisories > 0
465
- ? ` ${securityAdvisories} non-blocking security ${securityAdvisories === 1 ? "advisory remains" : "advisories remain"} for separate review.`
466
- : "";
467
- return `Both operational indexes use the same configuration and indexed source bytes.${advisoryNote}`;
468
- }
469
- if (status === "not-ready") {
470
- return "At least one index is not ready. Repair readiness before deciding whether corpora match.";
471
- }
472
- if (status === "configuration-mismatch") {
473
- return "Team configuration differs. Align it before comparing retrieval behavior.";
474
- }
475
- return `Indexed source bytes differ: ${localOnly} local-only, ${peerOnly} peer-only, ${changed} changed.`;
476
- }
477
- function recommendedActions(local, peer, configurationDifferences, sameCorpus) {
478
- const actions = [];
479
- const localReady = isTeamSnapshotOperational(local);
480
- const peerReady = isTeamSnapshotOperational(peer);
481
- if (!localReady) {
482
- actions.push(`On ${local.label}, run \`rgr doctor --fix\` and \`rgr audit\` until ready=true.`);
483
- }
484
- if (!peerReady) {
485
- actions.push(`On ${peer.label}, run \`rgr doctor --fix\` and \`rgr audit\` until ready=true.`);
486
- }
487
- if (configurationDifferences.some((difference) => difference.scope === "runtime")) {
488
- actions.push("Run `rgr upgrade` on both environments so they use the same Ragmir version.");
489
- }
490
- if (configurationDifferences.length > 0) {
491
- actions.push(`Align the reported configuration fields (${configurationDifferences.map((difference) => difference.field).join(", ")}).`);
492
- if (configurationDifferences.some((difference) => difference.requiresRebuild)) {
493
- actions.push("After alignment, run `rgr upgrade` on each affected environment.");
494
- }
495
- else {
496
- actions.push("After alignment, run `rgr ingest` on each affected environment.");
497
- }
498
- }
499
- if (!sameCorpus) {
500
- actions.push("Confirm that the shared source folder finished synchronizing, then use the declared Git, Drive, or team revision as the authority. Ragmir never guesses which copy is correct.");
501
- actions.push("Run `rgr ingest` after source synchronization.");
502
- }
503
- const advisoryLabels = new Set();
504
- for (const snapshot of [local, peer]) {
505
- if (snapshot.health.securityWarnings > 0 && !advisoryLabels.has(snapshot.label)) {
506
- advisoryLabels.add(snapshot.label);
507
- actions.push(`On ${snapshot.label}, review ${snapshot.health.securityWarnings} non-blocking security ${snapshot.health.securityWarnings === 1 ? "advisory" : "advisories"} with \`rgr security-audit\`.`);
508
- }
509
- }
510
- if (!localReady || !peerReady || configurationDifferences.length > 0 || !sameCorpus) {
511
- actions.push("Export a fresh snapshot and compare again until status=synchronized.");
512
- }
513
- return actions;
514
- }
515
- //# sourceMappingURL=team-diagnostics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"team-diagnostics.js","sourceRoot":"","sources":["../src/team-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC/E,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,4BAA4B,GAAG,CAAC,CAAA;AACtC,MAAM,uBAAuB,GAAG,KAAK,CAAA;AACrC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAChD,MAAM,yBAAyB,GAAG,EAAE,CAAA;AACpC,MAAM,wBAAwB,GAAG,KAAK,CAAA;AACtC,MAAM,cAAc,GAAG,iBAAiB,CAAA;AACxC,MAAM,0CAA0C,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AAE1F,MAAM,sBAAsB,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,wBAAwB,CAAC;SAC7B,MAAM,CAAC,kBAAkB,EAAE,2CAA2C,CAAC;IAC1E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CAC3C,CAAC;KACD,MAAM,EAAE,CAAA;AAEX,MAAM,wBAAwB,GAAG,CAAC;KAC/B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,wBAAwB,CAAC;KAC7B,MAAM,CAAC,oBAAoB,EAAE,4DAA4D,CAAC,CAAA;AAE7F,MAAM,kBAAkB,GAAG,CAAC;KACzB,MAAM,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC;IACtD,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC;IACvD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACtD,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAClD,aAAa,EAAE,CAAC;SACb,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;QAC1C,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClE,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACnE,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACzD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;QACrC,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;QAC7C,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;QACtD,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;QAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACtC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QAC5C,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACjD,wBAAwB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;QACxE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAC1C,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;KACzD,CAAC;SACD,MAAM,EAAE;IACX,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;QACxD,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;QACnE,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;QAC/D,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QAC7D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QAC5C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QAC7C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;KACvC,CAAC;SACD,MAAM,EAAE;IACX,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QAChD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QAC9C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QAC9C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;KACjD,CAAC;SACD,MAAM,EAAE;IACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;CAC9B,CAAC;KACD,MAAM,EAAE,CAAA;AAiEX,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAqC,EAAE;IAEvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC7D,MAAM,cAAc,GAAG,MAAM,4BAA4B,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAC7F,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,cAAc,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAA;QAC5D,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC7C,MAAM,KAAK,GAAG,cAAc;YAC1B,CAAC,CAAC,MAAM,oBAAoB,CACxB,MAAM,EACN,cAAc,CAAC,SAAS,EACxB,cAAc,CAAC,gBAAgB,CAChC;YACH,CAAC,CAAC,EAAE,CAAA;QACN,MAAM,aAAa,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAA;QAC3D,IACE,CAAC,sBAAsB,CAAC,cAAc,EAAE,aAAa,CAAC;YACtD,MAAM,CAAC,iBAAiB,KAAK,CAAC,aAAa,EAAE,iBAAiB,IAAI,IAAI,CAAC;YACvE,MAAM,CAAC,YAAY,KAAK,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,CAAC;YACvD,MAAM,CAAC,aAAa,KAAK,CAAC,aAAa,EAAE,UAAU,IAAI,CAAC,CAAC,EACzD,CAAC;YACD,SAAQ;QACV,CAAC;QACD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAiB;YAC7B,aAAa,EAAE,4BAA4B;YAC3C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC;YACnD,eAAe,EAAE,QAAQ,EAAE,EAAE,IAAI,IAAI;YACrC,oBAAoB,EAAE,OAAO;YAC7B,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,gBAAgB,IAAI,MAAM,CAAC,SAAS,CAAC,kBAAkB;YAC/E,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO;YAC/C,aAAa,EAAE;gBACb,OAAO,EAAE,cAAc,CAAC,OAAO;gBAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;gBACrD,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;gBACjD,gBAAgB,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO;gBAC1C,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;gBACnD,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;gBACzD,aAAa,EAAE,MAAM,CAAC,IAAI;gBAC1B,sBAAsB,EAAE,sBAAsB,CAAC,MAAM,CAAC;aACvD;YACD,MAAM,EAAE;gBACN,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC/D,sBAAsB,EAAE,aAAa,EAAE,iBAAiB,IAAI,IAAI;gBAChE,wBAAwB,EAAE,aAAa,EAAE,aAAa,IAAI,IAAI;gBAC9D,kBAAkB,EAAE,aAAa,EAAE,aAAa,IAAI,IAAI;gBACxD,YAAY,EAAE,aAAa,EAAE,SAAS,IAAI,CAAC;gBAC3C,aAAa,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC;gBAC7C,KAAK;aACN;YACD,MAAM,EAAE;gBACN,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM;aACjD;YACD,MAAM,EACJ,8JAA8J;SACjK,CAAA;QACD,2BAA2B,CAAC,QAAQ,CAAC,CAAA;QACrC,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAA;AACjG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAsB,EACtB,UAAkB;IAElB,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACpD,2BAA2B,CAAC,SAAS,CAAC,CAAA;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACzC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxD,MAAM,aAAa,GAAG,GAAG,QAAQ,IAAI,UAAU,EAAE,MAAM,CAAA;IACvD,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;IAC5D,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,uBAAuB,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,6BAA6B,uBAAuB,qBAAqB,CAAC,CAAA;IAC5F,CAAC;IACD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,aAAa,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7E,MAAM,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IACvC,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,YAAoB;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAA;IAC7D,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,GAAG,uBAAuB,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,6BAA6B,uBAAuB,uBAAuB,QAAQ,EAAE,CACtF,CAAA;IACH,CAAC;IAED,IAAI,GAAY,CAAA;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IACnF,CAAC;IACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAChD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,wCAAwC,4BAA4B,KAAK,QAAQ,EAAE,CACpF,CAAA;IACH,CAAC;IACD,2BAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxC,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAmB,EAAE,IAAkB;IAC1E,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACtD,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACpD,2BAA2B,CAAC,cAAc,CAAC,CAAA;IAC3C,2BAA2B,CAAC,aAAa,CAAC,CAAA;IAC1C,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;IACpF,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAU,CAAC,CAC9E,CAAA;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAU,CAAC,CAC7E,CAAA;IACD,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACtF,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACrF,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;SACtC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC1D,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO;YACL;gBACE,YAAY;gBACZ,aAAa,EAAE,SAAS,CAAC,QAAQ;gBACjC,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,WAAW,EAAE,SAAS,CAAC,UAAU;gBACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;aAChC;SACF,CAAA;IACH,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAA;IAC7E,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,MAAM,KAAK,CAAC,CAAA;IAC/D,MAAM,UAAU,GACd,cAAc,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI;QAC1C,cAAc,CAAC,MAAM,CAAC,WAAW,KAAK,aAAa,CAAC,MAAM,CAAC,WAAW;QACtE,SAAS,CAAC,MAAM,KAAK,CAAC;QACtB,QAAQ,CAAC,MAAM,KAAK,CAAC;QACrB,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA;IACtB,MAAM,UAAU,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAA;IAC5D,MAAM,SAAS,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC1D,MAAM,YAAY,GAAG,UAAU,IAAI,SAAS,IAAI,iBAAiB,IAAI,UAAU,CAAA;IAC/E,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAA;IAC7F,MAAM,aAAa,GACjB,cAAc,CAAC,MAAM,CAAC,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,gBAAgB,CAAA;IAEhF,OAAO;QACL,MAAM;QACN,YAAY;QACZ,OAAO,EAAE,iBAAiB,CACxB,MAAM,EACN,SAAS,CAAC,MAAM,EAChB,QAAQ,CAAC,MAAM,EACf,OAAO,CAAC,MAAM,EACd,aAAa,CACd;QACD,UAAU,EAAE,cAAc,CAAC,KAAK;QAChC,SAAS,EAAE,aAAa,CAAC,KAAK;QAC9B,kBAAkB,EAAE;YAClB,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,gBAAgB;YAC7C,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,gBAAgB;SAC5C;QACD,iBAAiB;QACjB,UAAU;QACV,yBAAyB,EACvB,CAAC,UAAU,IAAI,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;QACxE,wBAAwB;QACxB,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE;QACvC,kBAAkB,EAAE,kBAAkB,CACpC,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,UAAU,CACX;KACF,CAAA;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAA2D,EAC3D,KAA0D;IAE1D,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,MAAM,KAAK,KAAK,CAAA;IACzB,CAAC;IACD,OAAO,CACL,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;QACpC,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;QACpC,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa;QAC5C,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;QACpC,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;QACtC,MAAM,CAAC,iBAAiB,KAAK,KAAK,CAAC,iBAAiB,CACrD,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACzF,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAA;AACnE,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAC7D,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAA;AACxD,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAsB;IACzD,IAAI,QAAQ,CAAC,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;IAClF,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;IACxF,IAAI,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IACnF,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACpE,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACrE,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC9D,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;QACxF,CAAC;IACH,CAAC;IACD,IACE,QAAQ,CAAC,KAAK;QACd,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI;YACnC,QAAQ,CAAC,gBAAgB,KAAK,IAAI;YAClC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC;YACpC,QAAQ,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC;YAClC,QAAQ,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,EACrC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;IACrF,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAsB;IACvD,MAAM,yBAAyB,GAC7B,QAAQ,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI;QACpC,QAAQ,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC;QACjC,QAAQ,CAAC,gBAAgB,KAAK,IAAI;QAClC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,KAAK,CAAC;QACtC,QAAQ,CAAC,MAAM,CAAC,YAAY,KAAK,CAAC;QAClC,QAAQ,CAAC,MAAM,CAAC,cAAc,KAAK,CAAC;QACpC,QAAQ,CAAC,MAAM,CAAC,cAAc,KAAK,CAAC,CAAA;IACtC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,CACL,QAAQ,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC;QACpC,0CAA0C,CAAC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAC9E,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAyB;IACrD,OAAO,sBAAsB,CAC3B,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC9B,0BAA0B,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAClE,CACF,CAAC,iBAAiB,CAAA;AACrB,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,MAA8C,EAC9C,aAAqB,EACrB,gBAAyC;IAEzC,MAAM,KAAK,GAAuB,EAAE,CAAA;IACpC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,OAAO,MAAM,GAAG,aAAa,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAA;QACrF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAA;QAC9F,CAAC;QACD,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3B,YAAY,EAAE,oBAAoB,CAChC,MAAM,CAAC,WAAW,EAClB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,QAAQ,EACb,gBAAgB,CACjB;YACD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC,CACJ,CAAA;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAK;QACP,CAAC;QACD,MAAM,GAAG,IAAI,CAAC,UAAU,CAAA;IAC1B,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAA;IAC5F,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAChC,0BAA0B,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAClE,CAAA;AACH,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,WAAmB,EACnB,OAAiB;IAEjB,MAAM,gBAAgB,GAA4B,EAAE,CAAA;IACpD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QAChD,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;QAC1D,MAAM,aAAa,GAAG,kBAAkB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAA;QAC9F,MAAM,UAAU,GAAG,kBAAkB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACpF,MAAM,+BAA+B,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QAC7E,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,+BAA+B,IAAI,GAAG,CAAC,CAAA;QACxF,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;QACpE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC9C,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC;gBAC1E,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;YACjC,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAA;QAC7D,CAAC;QAED,MAAM,KAAK,GAAG,oBAAoB,KAAK,GAAG,CAAC,GAAG,CAAA;QAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,QAAQ,GACZ,kBAAkB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACjF,gBAAgB,CAAC,IAAI,CAAC;gBACpB,KAAK;gBACL,QAAQ,EAAE,cAAc;gBACxB,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,KAAK;aACvC,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAA;QAC5E,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAC/C,CAAC,CAAC,CACH,CAAA;IACD,OAAO;QACL,OAAO,EAAE,eAAe;QACxB,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,CACrC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAC9D;KACF,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,WAAmB,EACnB,YAAoB,EACpB,QAAgB,EAChB,gBAAyC;IAEzC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;IAC5D,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;QACjD,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;IACxE,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,SAAS,IAAI,YAAY,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC3D,OAAO,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAA;QACrE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;YAC5E,OAAO,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAA;QACvF,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAA;IACxD,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACvF,OAAO,gBAAgB,CACrB,qBAAqB,EACrB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,UAAU,IAAI,QAAQ,EAAE,CACrD,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAmB,EAAE,aAAqB;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;IAC1D,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AAC/F,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,MAAc;IACtD,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC1E,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;IACjF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,gBAAgB,CAAA;IACzB,CAAC;IACD,OAAO,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAA;AACnG,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAY,EAAE,KAAa;IAC7D,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,OAAO,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QACjD,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;QACpD,IAAI,aAAa,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAChE,MAAK;QACP,CAAC;QACD,IAAI,aAAa,KAAK,cAAc,EAAE,CAAC;YACrC,OAAO,aAAa,GAAG,cAAc,CAAA;QACvC,CAAC;QACD,SAAS,IAAI,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,UAAU,IAAI,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;AACnC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC/B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,yBAAyB,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,gCAAgC,yBAAyB,cAAc,CAAC,CAAA;IAC1F,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAmB,EACnB,IAAkB;IAElB,MAAM,WAAW,GAAkC,EAAE,CAAA;IACrD,aAAa,CACX,WAAW,EACX,sBAAsB,EACtB,SAAS,EACT,KAAK,CAAC,oBAAoB,EAC1B,IAAI,CAAC,oBAAoB,CAC1B,CAAA;IACD,aAAa,CACX,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,KAAK,CAAC,aAAa,CAAC,OAAO,EAC3B,IAAI,CAAC,aAAa,CAAC,OAAO,CAC3B,CAAA;IACD,aAAa,CACX,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,KAAK,CAAC,aAAa,CAAC,cAAc,EAClC,IAAI,CAAC,aAAa,CAAC,cAAc,EACjC,IAAI,CACL,CAAA;IACD,aAAa,CACX,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,KAAK,CAAC,aAAa,CAAC,gBAAgB,EACpC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CACpC,CAAA;IACD,aAAa,CACX,WAAW,EACX,mBAAmB,EACnB,OAAO,EACP,KAAK,CAAC,aAAa,CAAC,iBAAiB,EACrC,IAAI,CAAC,aAAa,CAAC,iBAAiB,EACpC,IAAI,CACL,CAAA;IACD,aAAa,CACX,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,KAAK,CAAC,aAAa,CAAC,cAAc,EAClC,IAAI,CAAC,aAAa,CAAC,cAAc,EACjC,IAAI,CACL,CAAA;IACD,aAAa,CACX,WAAW,EACX,wBAAwB,EACxB,OAAO,EACP,KAAK,CAAC,aAAa,CAAC,sBAAsB,EAC1C,IAAI,CAAC,aAAa,CAAC,sBAAsB,EACzC,IAAI,CACL,CAAA;IACD,aAAa,CACX,WAAW,EACX,sBAAsB,EACtB,OAAO,EACP,KAAK,CAAC,aAAa,CAAC,oBAAoB,EACxC,IAAI,CAAC,aAAa,CAAC,oBAAoB,EACvC,IAAI,CACL,CAAA;IACD,aAAa,CACX,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,KAAK,CAAC,aAAa,CAAC,gBAAgB,EACpC,IAAI,CAAC,aAAa,CAAC,gBAAgB,EACnC,IAAI,CACL,CAAA;IACD,aAAa,CACX,WAAW,EACX,WAAW,EACX,OAAO,EACP,KAAK,CAAC,aAAa,CAAC,SAAS,EAC7B,IAAI,CAAC,aAAa,CAAC,SAAS,EAC5B,IAAI,CACL,CAAA;IACD,aAAa,CACX,WAAW,EACX,cAAc,EACd,OAAO,EACP,KAAK,CAAC,aAAa,CAAC,YAAY,EAChC,IAAI,CAAC,aAAa,CAAC,YAAY,EAC/B,IAAI,CACL,CAAA;IACD,aAAa,CACX,WAAW,EACX,uBAAuB,EACvB,OAAO,EACP,KAAK,CAAC,aAAa,CAAC,qBAAqB,EACzC,IAAI,CAAC,aAAa,CAAC,qBAAqB,EACxC,IAAI,CACL,CAAA;IACD,aAAa,CACX,WAAW,EACX,0BAA0B,EAC1B,OAAO,EACP,KAAK,CAAC,aAAa,CAAC,wBAAwB,EAC5C,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAC5C,CAAA;IACD,aAAa,CACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,KAAK,CAAC,aAAa,CAAC,aAAa,EACjC,IAAI,CAAC,aAAa,CAAC,aAAa,CACjC,CAAA;IACD,aAAa,CACX,WAAW,EACX,wBAAwB,EACxB,OAAO,EACP,KAAK,CAAC,aAAa,CAAC,sBAAsB,EAC1C,IAAI,CAAC,aAAa,CAAC,sBAAsB,EACzC,IAAI,CACL,CAAA;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,SAAS,aAAa,CACpB,WAA0C,EAC1C,KAAa,EACb,KAA2C,EAC3C,KAA2C,EAC3C,IAAyC,EACzC,eAAe,GAAG,KAAK;IAEvB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAA;IAClE,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAmB,EACnB,IAAkB,EAClB,iBAA0B,EAC1B,UAAmB;IAEnB,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1E,OAAO,WAAW,CAAA;IACpB,CAAC;IACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,wBAAwB,CAAA;IACjC,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAA;AACxD,CAAC;AAED,SAAS,iBAAiB,CACxB,MAA4B,EAC5B,SAAiB,EACjB,QAAgB,EAChB,OAAe,EACf,kBAA0B;IAE1B,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9B,MAAM,YAAY,GAChB,kBAAkB,GAAG,CAAC;YACpB,CAAC,CAAC,IAAI,kBAAkB,0BAA0B,kBAAkB,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,uBAAuB;YAC5I,CAAC,CAAC,EAAE,CAAA;QACR,OAAO,gFAAgF,YAAY,EAAE,CAAA;IACvG,CAAC;IACD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,OAAO,0FAA0F,CAAA;IACnG,CAAC;IACD,IAAI,MAAM,KAAK,wBAAwB,EAAE,CAAC;QACxC,OAAO,2EAA2E,CAAA;IACpF,CAAC;IACD,OAAO,gCAAgC,SAAS,gBAAgB,QAAQ,eAAe,OAAO,WAAW,CAAA;AAC3G,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAmB,EACnB,IAAkB,EAClB,wBAAuD,EACvD,UAAmB;IAEnB,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,MAAM,UAAU,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAA;IACjD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,KAAK,gEAAgE,CAAC,CAAA;IACjG,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,gEAAgE,CAAC,CAAA;IAChG,CAAC;IACD,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAA;IAC7F,CAAC;IACD,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,CACV,4CAA4C,wBAAwB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC1H,CAAA;QACD,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9E,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;QAClF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CACV,gLAAgL,CACjL,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IAChE,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;IACxC,KAAK,MAAM,QAAQ,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,QAAQ,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAChF,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAClC,OAAO,CAAC,IAAI,CACV,MAAM,QAAQ,CAAC,KAAK,YAAY,QAAQ,CAAC,MAAM,CAAC,gBAAgB,0BAA0B,QAAQ,CAAC,MAAM,CAAC,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,+BAA+B,CAC5L,CAAA;QACH,CAAC;IACH,CAAC;IACD,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAA;IACtF,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,49 +0,0 @@
1
- import type { OperationOptions } from "./types.js";
2
- export type TeamSyncStatus = "current" | "updated" | "action-required" | "offline" | "local-only" | "setup-required" | "index-not-ready";
3
- export type TeamSyncGitState = "current" | "updated" | "update-available" | "dirty" | "ahead" | "diverged" | "detached" | "no-upstream" | "not-fetched" | "fetch-failed" | "update-failed" | "not-repository" | "inspection-failed";
4
- export interface SyncTeamKnowledgeOptions extends OperationOptions {
5
- cwd?: string;
6
- autoPull?: boolean;
7
- fetch?: boolean;
8
- check?: boolean;
9
- gitTimeoutMs?: number;
10
- }
11
- export interface TeamSyncGitReport {
12
- state: TeamSyncGitState;
13
- available: boolean;
14
- root: string | null;
15
- branch: string | null;
16
- upstream: string | null;
17
- head: string | null;
18
- upstreamHead: string | null;
19
- dirty: boolean | null;
20
- ahead: number | null;
21
- behind: number | null;
22
- fetched: boolean;
23
- freshnessVerified: boolean;
24
- autoPull: boolean;
25
- updated: boolean;
26
- }
27
- export interface TeamSyncIndexReport {
28
- attempted: boolean;
29
- operationalReady: boolean;
30
- indexPolicyCurrent: boolean;
31
- lastGoodIndexAvailable: boolean;
32
- indexedFiles: number;
33
- chunksIndexed: number;
34
- rebuiltFiles: number;
35
- reusedFiles: number;
36
- errorCount: number;
37
- securityAdvisories: number;
38
- }
39
- export interface TeamSyncReport {
40
- status: TeamSyncStatus;
41
- synchronized: boolean;
42
- summary: string;
43
- git: TeamSyncGitReport;
44
- index: TeamSyncIndexReport;
45
- warnings: string[];
46
- recommendedActions: string[];
47
- }
48
- export declare function syncTeamKnowledge(options?: SyncTeamKnowledgeOptions): Promise<TeamSyncReport>;
49
- //# sourceMappingURL=team-sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"team-sync.d.ts","sourceRoot":"","sources":["../src/team-sync.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAA6C,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAQ7F,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,SAAS,GACT,iBAAiB,GACjB,SAAS,GACT,YAAY,GACZ,gBAAgB,GAChB,iBAAiB,CAAA;AAErB,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,SAAS,GACT,kBAAkB,GAClB,OAAO,GACP,OAAO,GACP,UAAU,GACV,UAAU,GACV,aAAa,GACb,aAAa,GACb,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,mBAAmB,CAAA;AAEvB,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,gBAAgB,CAAA;IACvB,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAA;IAClB,gBAAgB,EAAE,OAAO,CAAA;IACzB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,cAAc,CAAA;IACtB,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,iBAAiB,CAAA;IACtB,KAAK,EAAE,mBAAmB,CAAA;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,kBAAkB,EAAE,MAAM,EAAE,CAAA;CAC7B;AAsBD,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,cAAc,CAAC,CAwCzB"}