@evelinka-ai/core 0.1.3

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 (130) hide show
  1. package/README.md +16 -0
  2. package/dist/agent-lib/llm-semaphore.d.ts +47 -0
  3. package/dist/agent-lib/llm-semaphore.d.ts.map +1 -0
  4. package/dist/agent-lib/llm-semaphore.js +255 -0
  5. package/dist/agent-lib/llm-semaphore.js.map +1 -0
  6. package/dist/agent-lib/managed-tool.d.ts +29 -0
  7. package/dist/agent-lib/managed-tool.d.ts.map +1 -0
  8. package/dist/agent-lib/managed-tool.js +28 -0
  9. package/dist/agent-lib/managed-tool.js.map +1 -0
  10. package/dist/channels/catalog.d.ts +3 -0
  11. package/dist/channels/catalog.d.ts.map +1 -0
  12. package/dist/channels/catalog.js +20 -0
  13. package/dist/channels/catalog.js.map +1 -0
  14. package/dist/channels/model-catalog.d.ts +3 -0
  15. package/dist/channels/model-catalog.d.ts.map +1 -0
  16. package/dist/channels/model-catalog.js +6 -0
  17. package/dist/channels/model-catalog.js.map +1 -0
  18. package/dist/channels/usage.d.ts +3 -0
  19. package/dist/channels/usage.d.ts.map +1 -0
  20. package/dist/channels/usage.js +35 -0
  21. package/dist/channels/usage.js.map +1 -0
  22. package/dist/lib/atomic-file.d.ts +2 -0
  23. package/dist/lib/atomic-file.d.ts.map +1 -0
  24. package/dist/lib/atomic-file.js +16 -0
  25. package/dist/lib/atomic-file.js.map +1 -0
  26. package/dist/lib/budgets/record-call-usage.d.ts +31 -0
  27. package/dist/lib/budgets/record-call-usage.d.ts.map +1 -0
  28. package/dist/lib/budgets/record-call-usage.js +44 -0
  29. package/dist/lib/budgets/record-call-usage.js.map +1 -0
  30. package/dist/lib/budgets/token-budget.d.ts +61 -0
  31. package/dist/lib/budgets/token-budget.d.ts.map +1 -0
  32. package/dist/lib/budgets/token-budget.js +250 -0
  33. package/dist/lib/budgets/token-budget.js.map +1 -0
  34. package/dist/lib/budgets/token-usage-pg.d.ts +96 -0
  35. package/dist/lib/budgets/token-usage-pg.d.ts.map +1 -0
  36. package/dist/lib/budgets/token-usage-pg.js +305 -0
  37. package/dist/lib/budgets/token-usage-pg.js.map +1 -0
  38. package/dist/lib/budgets/usage.d.ts +103 -0
  39. package/dist/lib/budgets/usage.d.ts.map +1 -0
  40. package/dist/lib/budgets/usage.js +151 -0
  41. package/dist/lib/budgets/usage.js.map +1 -0
  42. package/dist/lib/control-plane/call-context.d.ts +7 -0
  43. package/dist/lib/control-plane/call-context.d.ts.map +1 -0
  44. package/dist/lib/control-plane/call-context.js +9 -0
  45. package/dist/lib/control-plane/call-context.js.map +1 -0
  46. package/dist/lib/control-plane/catalog.d.ts +33 -0
  47. package/dist/lib/control-plane/catalog.d.ts.map +1 -0
  48. package/dist/lib/control-plane/catalog.js +163 -0
  49. package/dist/lib/control-plane/catalog.js.map +1 -0
  50. package/dist/lib/control-plane/flow-settings.d.ts +32 -0
  51. package/dist/lib/control-plane/flow-settings.d.ts.map +1 -0
  52. package/dist/lib/control-plane/flow-settings.js +139 -0
  53. package/dist/lib/control-plane/flow-settings.js.map +1 -0
  54. package/dist/lib/control-plane/tools-config.d.ts +30 -0
  55. package/dist/lib/control-plane/tools-config.d.ts.map +1 -0
  56. package/dist/lib/control-plane/tools-config.js +104 -0
  57. package/dist/lib/control-plane/tools-config.js.map +1 -0
  58. package/dist/lib/delivery/push-store.d.ts +20 -0
  59. package/dist/lib/delivery/push-store.d.ts.map +1 -0
  60. package/dist/lib/delivery/push-store.js +74 -0
  61. package/dist/lib/delivery/push-store.js.map +1 -0
  62. package/dist/lib/delivery/push.d.ts +15 -0
  63. package/dist/lib/delivery/push.d.ts.map +1 -0
  64. package/dist/lib/delivery/push.js +97 -0
  65. package/dist/lib/delivery/push.js.map +1 -0
  66. package/dist/lib/delivery/schedule-lock.d.ts +16 -0
  67. package/dist/lib/delivery/schedule-lock.d.ts.map +1 -0
  68. package/dist/lib/delivery/schedule-lock.js +86 -0
  69. package/dist/lib/delivery/schedule-lock.js.map +1 -0
  70. package/dist/lib/memory/memory-dream.d.ts +181 -0
  71. package/dist/lib/memory/memory-dream.d.ts.map +1 -0
  72. package/dist/lib/memory/memory-dream.js +405 -0
  73. package/dist/lib/memory/memory-dream.js.map +1 -0
  74. package/dist/lib/memory/memory-vault-git.d.ts +14 -0
  75. package/dist/lib/memory/memory-vault-git.d.ts.map +1 -0
  76. package/dist/lib/memory/memory-vault-git.js +345 -0
  77. package/dist/lib/memory/memory-vault-git.js.map +1 -0
  78. package/dist/lib/memory/memory-vault.d.ts +83 -0
  79. package/dist/lib/memory/memory-vault.d.ts.map +1 -0
  80. package/dist/lib/memory/memory-vault.js +466 -0
  81. package/dist/lib/memory/memory-vault.js.map +1 -0
  82. package/dist/lib/memory/static-instructions.d.ts +2 -0
  83. package/dist/lib/memory/static-instructions.d.ts.map +1 -0
  84. package/dist/lib/memory/static-instructions.js +48 -0
  85. package/dist/lib/memory/static-instructions.js.map +1 -0
  86. package/dist/lib/memory/vault-explorer.d.ts +37 -0
  87. package/dist/lib/memory/vault-explorer.d.ts.map +1 -0
  88. package/dist/lib/memory/vault-explorer.js +212 -0
  89. package/dist/lib/memory/vault-explorer.js.map +1 -0
  90. package/dist/lib/models/llm-concurrency.d.ts +29 -0
  91. package/dist/lib/models/llm-concurrency.d.ts.map +1 -0
  92. package/dist/lib/models/llm-concurrency.js +103 -0
  93. package/dist/lib/models/llm-concurrency.js.map +1 -0
  94. package/dist/lib/models/model-catalog.d.ts +32 -0
  95. package/dist/lib/models/model-catalog.d.ts.map +1 -0
  96. package/dist/lib/models/model-catalog.js +115 -0
  97. package/dist/lib/models/model-catalog.js.map +1 -0
  98. package/dist/lib/models/model-config.d.ts +27 -0
  99. package/dist/lib/models/model-config.d.ts.map +1 -0
  100. package/dist/lib/models/model-config.js +155 -0
  101. package/dist/lib/models/model-config.js.map +1 -0
  102. package/dist/lib/observability/console-link.d.ts +3 -0
  103. package/dist/lib/observability/console-link.d.ts.map +1 -0
  104. package/dist/lib/observability/console-link.js +15 -0
  105. package/dist/lib/observability/console-link.js.map +1 -0
  106. package/dist/lib/observability/event-bus.d.ts +11 -0
  107. package/dist/lib/observability/event-bus.d.ts.map +1 -0
  108. package/dist/lib/observability/event-bus.js +24 -0
  109. package/dist/lib/observability/event-bus.js.map +1 -0
  110. package/dist/lib/observability/logger.d.ts +5 -0
  111. package/dist/lib/observability/logger.d.ts.map +1 -0
  112. package/dist/lib/observability/logger.js +47 -0
  113. package/dist/lib/observability/logger.js.map +1 -0
  114. package/dist/lib/observability/payload-store.d.ts +8 -0
  115. package/dist/lib/observability/payload-store.d.ts.map +1 -0
  116. package/dist/lib/observability/payload-store.js +101 -0
  117. package/dist/lib/observability/payload-store.js.map +1 -0
  118. package/dist/lib/observability/recorder-hook.d.ts +22 -0
  119. package/dist/lib/observability/recorder-hook.d.ts.map +1 -0
  120. package/dist/lib/observability/recorder-hook.js +241 -0
  121. package/dist/lib/observability/recorder-hook.js.map +1 -0
  122. package/dist/lib/observability/recorder.d.ts +339 -0
  123. package/dist/lib/observability/recorder.d.ts.map +1 -0
  124. package/dist/lib/observability/recorder.js +1182 -0
  125. package/dist/lib/observability/recorder.js.map +1 -0
  126. package/dist/tenant.d.ts +59 -0
  127. package/dist/tenant.d.ts.map +1 -0
  128. package/dist/tenant.js +18 -0
  129. package/dist/tenant.js.map +1 -0
  130. package/package.json +119 -0
@@ -0,0 +1,345 @@
1
+ import { execFile } from "node:child_process";
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
+ import { promisify } from "node:util";
5
+ import { logger } from "../observability/logger.js";
6
+ import { parseRuleNote, serializeRuleNote, vaultDir } from "./memory-vault.js";
7
+ const log = logger.child({ module: "memory-vault-git" });
8
+ const execFileP = promisify(execFile);
9
+ const SYNC_REF = "refs/eve/last-sync";
10
+ export function vaultGitEnabled() {
11
+ return process.env.MEMORY_VAULT_GIT !== "off";
12
+ }
13
+ export function vaultGitPullOnly() {
14
+ return (process.env.MEMORY_VAULT_GIT_MODE ?? "").toLowerCase() === "pull";
15
+ }
16
+ export function vaultGitBranch() {
17
+ const b = (process.env.MEMORY_VAULT_GIT_BRANCH ?? "").trim();
18
+ return b || "main";
19
+ }
20
+ export function vaultGitAuthor() {
21
+ return {
22
+ name: process.env.MEMORY_VAULT_GIT_AUTHOR_NAME ?? "eve",
23
+ email: process.env.MEMORY_VAULT_GIT_AUTHOR_EMAIL ?? "eve@localhost",
24
+ };
25
+ }
26
+ const SYNC_MARKER = "eve-last-sync";
27
+ function markVaultSynced() {
28
+ try {
29
+ writeFileSync(join(vaultDir(), ".git", SYNC_MARKER), new Date().toISOString());
30
+ }
31
+ catch (err) {
32
+ log.warn({ err }, "could not record vault sync marker");
33
+ }
34
+ }
35
+ export function vaultLastSyncAt() {
36
+ try {
37
+ const marker = join(vaultDir(), ".git", SYNC_MARKER);
38
+ if (!existsSync(marker))
39
+ return null;
40
+ const ts = readFileSync(marker, "utf8").trim();
41
+ return Number.isNaN(Date.parse(ts)) ? null : ts;
42
+ }
43
+ catch {
44
+ return null;
45
+ }
46
+ }
47
+ function remoteUrl() {
48
+ return process.env.MEMORY_VAULT_GIT_REMOTE || undefined;
49
+ }
50
+ async function git(args, dir = vaultDir()) {
51
+ const { stdout } = await execFileP("git", args, { cwd: dir, maxBuffer: 10 * 1024 * 1024 });
52
+ return stdout.trim();
53
+ }
54
+ async function gitTry(args, dir = vaultDir()) {
55
+ try {
56
+ return await git(args, dir);
57
+ }
58
+ catch {
59
+ return null;
60
+ }
61
+ }
62
+ export async function ensureVaultRepo() {
63
+ const dir = vaultDir();
64
+ const branch = vaultGitBranch();
65
+ try {
66
+ if (!existsSync(join(dir, ".git"))) {
67
+ await execFileP("git", ["init", "-b", branch, dir]);
68
+ log.info({ dir, branch }, "vault git repo initialized");
69
+ }
70
+ const author = vaultGitAuthor();
71
+ await git(["config", "user.name", author.name]);
72
+ await git(["config", "user.email", author.email]);
73
+ const gitignore = join(dir, ".gitignore");
74
+ if (!existsSync(gitignore)) {
75
+ writeFileSync(gitignore, ".seeded-from-pg.json\n*.tmp-*\n");
76
+ }
77
+ const remote = remoteUrl();
78
+ if (remote) {
79
+ const current = await gitTry(["remote", "get-url", "origin"]);
80
+ if (current === null)
81
+ await git(["remote", "add", "origin", remote]);
82
+ else if (current !== remote)
83
+ await git(["remote", "set-url", "origin", remote]);
84
+ }
85
+ const current = await gitTry(["symbolic-ref", "--short", "-q", "HEAD"]);
86
+ if (current !== null && current !== branch) {
87
+ if (remote && (await gitTry(["fetch", "origin", branch])) !== null) {
88
+ await gitTry(["checkout", "-B", branch, "FETCH_HEAD"]);
89
+ }
90
+ else {
91
+ await gitTry(["checkout", "-B", branch]);
92
+ }
93
+ log.info({ from: current, branch }, "vault repo moved onto the configured branch");
94
+ }
95
+ return true;
96
+ }
97
+ catch (err) {
98
+ log.error({ err, dir }, "vault git bootstrap failed — continuing without git");
99
+ return false;
100
+ }
101
+ }
102
+ async function rebaseInProgress() {
103
+ const gitDir = await gitTry(["rev-parse", "--git-dir"]);
104
+ if (!gitDir)
105
+ return false;
106
+ const abs = gitDir.startsWith("/") ? gitDir : join(vaultDir(), gitDir);
107
+ return existsSync(join(abs, "rebase-merge")) || existsSync(join(abs, "rebase-apply"));
108
+ }
109
+ async function abortStaleRebase() {
110
+ if (!(await rebaseInProgress()))
111
+ return;
112
+ log.warn("vault repo has a stale rebase in progress — aborting it");
113
+ await gitTry(["rebase", "--abort"]);
114
+ const branch = await gitTry(["symbolic-ref", "--short", "-q", "HEAD"]);
115
+ if (!branch) {
116
+ const head = await gitTry(["rev-parse", "HEAD"]);
117
+ if (head) {
118
+ const target = vaultGitBranch();
119
+ await gitTry(["branch", "-f", target, head]);
120
+ await gitTry(["checkout", target]);
121
+ }
122
+ }
123
+ }
124
+ let pullModeCommitLogged = false;
125
+ let pullModeNoRemoteLogged = false;
126
+ let vaultWriteChain = Promise.resolve();
127
+ export function serializeVaultWrite(fn) {
128
+ const run = vaultWriteChain.then(fn);
129
+ vaultWriteChain = run.then(() => undefined, () => undefined);
130
+ return run;
131
+ }
132
+ export async function vaultGitCommit(message) {
133
+ if (!vaultGitEnabled())
134
+ return;
135
+ if (vaultGitPullOnly()) {
136
+ if (!pullModeCommitLogged) {
137
+ pullModeCommitLogged = true;
138
+ log.info({ message }, "vault git is in pull-only replica mode — commits/pushes are no-ops (logged once)");
139
+ }
140
+ return;
141
+ }
142
+ if (!(await ensureVaultRepo()))
143
+ return;
144
+ try {
145
+ await abortStaleRebase();
146
+ await git(["add", "-A"]);
147
+ const status = await git(["status", "--porcelain"]);
148
+ if (status) {
149
+ await git(["commit", "-m", message.slice(0, 200), "--no-verify"]);
150
+ }
151
+ const head = await gitTry(["rev-parse", "HEAD"]);
152
+ if (head)
153
+ await git(["update-ref", SYNC_REF, head]);
154
+ if (remoteUrl() && head) {
155
+ try {
156
+ await git(["push", "-u", "origin", vaultGitBranch()]);
157
+ }
158
+ catch (err) {
159
+ log.warn({ err }, "vault git push failed — will retry on the next write");
160
+ }
161
+ }
162
+ }
163
+ catch (err) {
164
+ log.error({ err }, "vault git commit failed — vault content is still on disk");
165
+ }
166
+ }
167
+ export async function vaultGitCommitPaths(message, paths) {
168
+ if (!vaultGitEnabled())
169
+ return;
170
+ if (vaultGitPullOnly()) {
171
+ if (!pullModeCommitLogged) {
172
+ pullModeCommitLogged = true;
173
+ log.info({ message }, "vault git is in pull-only replica mode — commits/pushes are no-ops (logged once)");
174
+ }
175
+ return;
176
+ }
177
+ if (!(await ensureVaultRepo()))
178
+ return;
179
+ if (!paths.length)
180
+ return;
181
+ try {
182
+ await abortStaleRebase();
183
+ await git(["add", "--", ...paths]);
184
+ const status = await git(["status", "--porcelain", "--", ...paths]);
185
+ if (status) {
186
+ await git(["commit", "-m", message.slice(0, 200), "--no-verify", "--", ...paths]);
187
+ }
188
+ const head = await gitTry(["rev-parse", "HEAD"]);
189
+ if (head)
190
+ await git(["update-ref", SYNC_REF, head]);
191
+ if (remoteUrl() && head) {
192
+ try {
193
+ await git(["push", "-u", "origin", vaultGitBranch()]);
194
+ }
195
+ catch (err) {
196
+ log.warn({ err }, "vault git push failed — will retry on the next write");
197
+ }
198
+ }
199
+ }
200
+ catch (err) {
201
+ log.error({ err }, "vault git commit failed — vault content is still on disk");
202
+ }
203
+ }
204
+ async function humanChangesSinceSync() {
205
+ const last = await gitTry(["rev-parse", "--verify", SYNC_REF]);
206
+ const head = await gitTry(["rev-parse", "--verify", "HEAD"]);
207
+ if (!head)
208
+ return [];
209
+ if (!last) {
210
+ await git(["update-ref", SYNC_REF, head]);
211
+ return [];
212
+ }
213
+ if (last === head)
214
+ return [];
215
+ const eveName = vaultGitAuthor().name;
216
+ const authors = (await gitTry(["log", "--format=%an", `${last}..${head}`])) ?? "";
217
+ const foreign = authors.split("\n").some((a) => a.trim() && a.trim() !== eveName);
218
+ if (!foreign) {
219
+ await git(["update-ref", SYNC_REF, head]);
220
+ return [];
221
+ }
222
+ const diff = (await gitTry(["diff", "--name-status", last, head])) ?? "";
223
+ return diff
224
+ .split("\n")
225
+ .filter(Boolean)
226
+ .map((line) => {
227
+ const [status, ...rest] = line.split("\t");
228
+ return { status: status.slice(0, 1), path: rest[rest.length - 1] };
229
+ });
230
+ }
231
+ async function adoptHumanChanges(changes) {
232
+ const dir = vaultDir();
233
+ let adopted = 0;
234
+ const deletedActive = new Map();
235
+ for (const c of changes) {
236
+ if (c.status === "D" && c.path.startsWith("rules/") && c.path.endsWith(".md")) {
237
+ deletedActive.set(c.path, c);
238
+ }
239
+ }
240
+ for (const c of changes) {
241
+ if (!c.path.endsWith(".md"))
242
+ continue;
243
+ if ((c.status === "A" || c.status === "M") && c.path.startsWith("rules/")) {
244
+ const abs = join(dir, c.path);
245
+ if (!existsSync(abs))
246
+ continue;
247
+ try {
248
+ const rule = parseRuleNote(readFileSync(abs, "utf8"));
249
+ if (rule.provenance !== "operator") {
250
+ writeFileSync(abs, serializeRuleNote({ ...rule, provenance: "operator" }));
251
+ adopted++;
252
+ log.info({ path: c.path }, "human-edited rule adopted as operator ground truth");
253
+ }
254
+ }
255
+ catch (err) {
256
+ log.warn({ err, path: c.path }, "human-edited note unparseable — left as-is");
257
+ }
258
+ }
259
+ }
260
+ for (const [path, c] of deletedActive) {
261
+ const archivePath = path.replace(/^rules\//, "archive/");
262
+ if (existsSync(join(dir, archivePath)))
263
+ continue;
264
+ const last = await gitTry(["rev-parse", "--verify", SYNC_REF]);
265
+ const content = await gitTry(["show", `${last}:${path}`]);
266
+ if (!content)
267
+ continue;
268
+ try {
269
+ const rule = parseRuleNote(content);
270
+ const invalidated = { ...rule, invalidatedAt: new Date().toISOString() };
271
+ const abs = join(dir, archivePath);
272
+ mkdirSync(dirname(abs), { recursive: true });
273
+ writeFileSync(abs, serializeRuleNote(invalidated));
274
+ adopted++;
275
+ log.info({ path: c.path }, "human-deleted rule archived (soft invalidation)");
276
+ }
277
+ catch (err) {
278
+ log.warn({ err, path }, "could not archive human-deleted rule");
279
+ }
280
+ }
281
+ return adopted;
282
+ }
283
+ async function pullReplicaSync() {
284
+ const dir = vaultDir();
285
+ const remote = remoteUrl();
286
+ if (!remote) {
287
+ if (!pullModeNoRemoteLogged) {
288
+ pullModeNoRemoteLogged = true;
289
+ log.warn("pull-only vault replica has no MEMORY_VAULT_GIT_REMOTE — vault stays empty");
290
+ }
291
+ return;
292
+ }
293
+ const branch = vaultGitBranch();
294
+ try {
295
+ if (!existsSync(join(dir, ".git"))) {
296
+ mkdirSync(dir, { recursive: true });
297
+ await execFileP("git", ["init", "-b", branch, dir]);
298
+ log.info({ dir, remote, branch }, "pull-only vault replica: fresh clone bootstrap");
299
+ }
300
+ const current = await gitTry(["remote", "get-url", "origin"]);
301
+ if (current === null)
302
+ await git(["remote", "add", "origin", remote]);
303
+ else if (current !== remote)
304
+ await git(["remote", "set-url", "origin", remote]);
305
+ await git(["fetch", "origin", branch]);
306
+ await git(["reset", "--hard", "FETCH_HEAD"]);
307
+ await git(["clean", "-fd"]);
308
+ markVaultSynced();
309
+ }
310
+ catch (err) {
311
+ log.warn({ err, dir }, "pull-only vault replica sync failed — serving the last pulled vault");
312
+ }
313
+ }
314
+ export async function vaultGitSync() {
315
+ if (!vaultGitEnabled())
316
+ return;
317
+ if (vaultGitPullOnly())
318
+ return pullReplicaSync();
319
+ if (!(await ensureVaultRepo()))
320
+ return;
321
+ try {
322
+ await abortStaleRebase();
323
+ if (remoteUrl()) {
324
+ const pulled = await gitTry(["pull", "--rebase", "origin", vaultGitBranch()]);
325
+ if (pulled === null) {
326
+ log.warn("vault git pull failed — aborting any partial rebase, syncing against local history");
327
+ await abortStaleRebase();
328
+ }
329
+ else {
330
+ markVaultSynced();
331
+ }
332
+ }
333
+ const changes = await humanChangesSinceSync();
334
+ if (changes.length > 0) {
335
+ const adopted = await adoptHumanChanges(changes);
336
+ await vaultGitCommit(adopted > 0
337
+ ? `chore(vault): adopt ${adopted} operator edit(s)`
338
+ : "chore(vault): sync operator changes");
339
+ }
340
+ }
341
+ catch (err) {
342
+ log.error({ err }, "vault git sync failed — writing against the local vault");
343
+ }
344
+ }
345
+ //# sourceMappingURL=memory-vault-git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-vault-git.js","sourceRoot":"","sources":["../../../src/lib/memory/memory-vault-git.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAkB,MAAM,mBAAmB,CAAC;AAE/F,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;AACzD,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAEtC,MAAM,QAAQ,GAAG,oBAAoB,CAAC;AAKtC,MAAM,UAAU,eAAe;IAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,KAAK,CAAC;AAChD,CAAC;AAOD,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;AAC5E,CAAC;AAOD,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,OAAO,CAAC,IAAI,MAAM,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,KAAK;QACvD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,eAAe;KACpE,CAAC;AACJ,CAAC;AAQD,MAAM,WAAW,GAAG,eAAe,CAAC;AAEpC,SAAS,eAAe;IACtB,IAAI,CAAC;QACH,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACjF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,oCAAoC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAMD,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,SAAS,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,IAAc,EAAE,GAAG,GAAG,QAAQ,EAAE;IACjD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;IAC3F,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAAc,EAAE,GAAG,GAAG,QAAQ,EAAE;IACpD,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YACnC,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,4BAA4B,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,aAAa,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC9D,IAAI,OAAO,KAAK,IAAI;gBAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;iBAChE,IAAI,OAAO,KAAK,MAAM;gBAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAClF,CAAC;QAKD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACxE,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YAC3C,IAAI,MAAM,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACnE,MAAM,MAAM,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3C,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,6CAA6C,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,qDAAqD,CAAC,CAAC;QAC/E,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAGD,KAAK,UAAU,gBAAgB;IAC7B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;IACvE,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;AACxF,CAAC;AAID,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC,CAAC,MAAM,gBAAgB,EAAE,CAAC;QAAE,OAAO;IACxC,GAAG,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACpE,MAAM,MAAM,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACvE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QACjD,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YAC7C,MAAM,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,oBAAoB,GAAG,KAAK,CAAC;AACjC,IAAI,sBAAsB,GAAG,KAAK,CAAC;AAYnC,IAAI,eAAe,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;AAE1D,MAAM,UAAU,mBAAmB,CAAI,EAAoB;IACzD,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,eAAe,GAAG,GAAG,CAAC,IAAI,CACxB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAe;IAClD,IAAI,CAAC,eAAe,EAAE;QAAE,OAAO;IAC/B,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,oBAAoB,GAAG,IAAI,CAAC;YAC5B,GAAG,CAAC,IAAI,CACN,EAAE,OAAO,EAAE,EACX,kFAAkF,CACnF,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,eAAe,EAAE,CAAC;QAAE,OAAO;IACvC,IAAI,CAAC;QAEH,MAAM,gBAAgB,EAAE,CAAC;QACzB,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;QACpD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QACjD,IAAI,IAAI;YAAE,MAAM,GAAG,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACpD,IAAI,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,sDAAsD,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,0DAA0D,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAe,EAAE,KAAe;IACxE,IAAI,CAAC,eAAe,EAAE;QAAE,OAAO;IAC/B,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,oBAAoB,GAAG,IAAI,CAAC;YAC5B,GAAG,CAAC,IAAI,CACN,EAAE,OAAO,EAAE,EACX,kFAAkF,CACnF,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,eAAe,EAAE,CAAC;QAAE,OAAO;IACvC,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO;IAC1B,IAAI,CAAC;QACH,MAAM,gBAAgB,EAAE,CAAC;QACzB,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QACpE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QACjD,IAAI,IAAI;YAAE,MAAM,GAAG,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACpD,IAAI,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,sDAAsD,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,0DAA0D,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAUD,KAAK,UAAU,qBAAqB;IAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,IAAI,CAAC,IAAI,EAAE,CAAC;QAEV,MAAM,GAAG,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC,IAAI,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClF,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,CAAC;IAClF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,GAAG,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACzE,OAAO,IAAI;SACR,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;AACP,CAAC;AAID,KAAK,UAAU,iBAAiB,CAAC,OAAsB;IACrD,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IACvB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9E,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QACtC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC/B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;gBACtD,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;oBACnC,aAAa,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAC3E,OAAO,EAAE,CAAC;oBACV,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,oDAAoD,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,4CAA4C,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;IACH,CAAC;IAID,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,aAAa,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAAE,SAAS;QACjD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,GAAc,aAAa,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACzE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YACnC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,aAAa,CAAC,GAAG,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;YACnD,OAAO,EAAE,CAAC;YACV,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,iDAAiD,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,sCAAsC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAOD,KAAK,UAAU,eAAe;IAC5B,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,sBAAsB,GAAG,IAAI,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;QACzF,CAAC;QACD,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YACnC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpC,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,gDAAgD,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9D,IAAI,OAAO,KAAK,IAAI;YAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;aAChE,IAAI,OAAO,KAAK,MAAM;YAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAChF,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;QAG7C,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5B,eAAe,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,qEAAqE,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC,eAAe,EAAE;QAAE,OAAO;IAC/B,IAAI,gBAAgB,EAAE;QAAE,OAAO,eAAe,EAAE,CAAC;IACjD,IAAI,CAAC,CAAC,MAAM,eAAe,EAAE,CAAC;QAAE,OAAO;IACvC,IAAI,CAAC;QAKH,MAAM,gBAAgB,EAAE,CAAC;QACzB,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;YAC9E,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,GAAG,CAAC,IAAI,CACN,oFAAoF,CACrF,CAAC;gBACF,MAAM,gBAAgB,EAAE,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,eAAe,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,cAAc,CAClB,OAAO,GAAG,CAAC;gBACT,CAAC,CAAC,uBAAuB,OAAO,mBAAmB;gBACnD,CAAC,CAAC,qCAAqC,CAC1C,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,yDAAyD,CAAC,CAAC;IAChF,CAAC;AACH,CAAC"}
@@ -0,0 +1,83 @@
1
+ export type VaultRuleProvenance = "operator" | "dreamed" | "migrated";
2
+ export type VaultRuleLayer = "domain" | "profile";
3
+ export interface VaultRule {
4
+ id: string;
5
+ scope: string;
6
+ layer: VaultRuleLayer;
7
+ rule: string;
8
+ why: string | null;
9
+ confidence: number;
10
+ support: number;
11
+ provenance: VaultRuleProvenance;
12
+ pinned: boolean;
13
+ sources: string[];
14
+ createdAt: string;
15
+ lastReinforcedAt: string;
16
+ invalidatedAt: string | null;
17
+ invalidatedBy: string | null;
18
+ meta: Record<string, string>;
19
+ }
20
+ export interface VaultRuleInsert {
21
+ id?: string;
22
+ scope: string;
23
+ layer?: VaultRuleLayer;
24
+ rule: string;
25
+ why?: string | null;
26
+ confidence: number;
27
+ support?: number;
28
+ provenance: VaultRuleProvenance;
29
+ pinned?: boolean;
30
+ sources?: string[];
31
+ createdAt?: string;
32
+ meta?: Record<string, string>;
33
+ }
34
+ export type VaultPlannedChange = {
35
+ type: "insert";
36
+ row: VaultRuleInsert & {
37
+ id: string;
38
+ };
39
+ } | {
40
+ type: "reinforce";
41
+ id: string;
42
+ confidence: number;
43
+ addSources: string[];
44
+ } | {
45
+ type: "invalidate";
46
+ id: string;
47
+ byId: string | null;
48
+ };
49
+ export declare function vaultDir(): string;
50
+ export declare function scopeDirName(scope: string): string;
51
+ export declare function ruleFileName(rule: string, id: string): string;
52
+ export declare function serializeRuleNote(r: VaultRule): string;
53
+ export declare function parseRuleNote(text: string, fallbackScope?: string): VaultRule;
54
+ export declare function withVaultWriteLock<T>(fn: () => T | Promise<T>): Promise<T>;
55
+ export declare function listVaultRulesSync(opts?: {
56
+ scope?: string;
57
+ includeInvalidated?: boolean;
58
+ }): VaultRule[];
59
+ export declare function listVaultRules(opts?: {
60
+ scope?: string;
61
+ includeInvalidated?: boolean;
62
+ }): Promise<VaultRule[]>;
63
+ export declare function listVaultScopes(): Promise<string[]>;
64
+ export declare function countActiveVaultRules(): Promise<number>;
65
+ export declare function insertVaultRule(input: VaultRuleInsert): Promise<string | null>;
66
+ export declare function applyVaultChanges(changes: VaultPlannedChange[]): Promise<number | null>;
67
+ export declare function decayStaleVaultRules(opts?: {
68
+ olderThanDays?: number;
69
+ step?: number;
70
+ reviewFloor?: number;
71
+ }): Promise<VaultRule[]>;
72
+ export declare function replaceVaultRulesForScope(scope: string, rows: VaultRuleInsert[]): Promise<void>;
73
+ export declare function importVaultRules(rules: VaultRule[]): Promise<number>;
74
+ export declare function writeDreamNote(input: {
75
+ kind: string;
76
+ summary: string;
77
+ ops: {
78
+ scope: string;
79
+ op: string;
80
+ detail: string;
81
+ }[];
82
+ }): Promise<void>;
83
+ //# sourceMappingURL=memory-vault.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-vault.d.ts","sourceRoot":"","sources":["../../../src/lib/memory/memory-vault.ts"],"names":[],"mappings":"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"}