omniwire 2.0.0 → 2.2.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 (68) hide show
  1. package/.mcp.json.disabled +8 -0
  2. package/LICENSE +21 -21
  3. package/README.md +438 -316
  4. package/clawhub-skill/SKILL.md +354 -0
  5. package/dist/claude/integration.js +15 -18
  6. package/dist/claude/integration.js.map +1 -1
  7. package/dist/commands/browser.js +1 -1
  8. package/dist/commands/browser.js.map +1 -1
  9. package/dist/commands/builtins.js +6 -6
  10. package/dist/commands/builtins.js.map +1 -1
  11. package/dist/mcp/index.js +10 -3
  12. package/dist/mcp/index.js.map +1 -1
  13. package/dist/mcp/rest.js +9 -1
  14. package/dist/mcp/rest.js.map +1 -1
  15. package/dist/mcp/server.js +133 -32
  16. package/dist/mcp/server.js.map +1 -1
  17. package/dist/mcp/sync-tools.d.ts +3 -1
  18. package/dist/mcp/sync-tools.js +134 -1
  19. package/dist/mcp/sync-tools.js.map +1 -1
  20. package/dist/nodes/manager.d.ts +4 -0
  21. package/dist/nodes/manager.js +55 -18
  22. package/dist/nodes/manager.js.map +1 -1
  23. package/dist/nodes/transfer.js +8 -3
  24. package/dist/nodes/transfer.js.map +1 -1
  25. package/dist/protocol/config.d.ts +7 -1
  26. package/dist/protocol/config.js +73 -102
  27. package/dist/protocol/config.js.map +1 -1
  28. package/dist/sync/cookies.d.ts +52 -0
  29. package/dist/sync/cookies.js +259 -0
  30. package/dist/sync/cookies.js.map +1 -0
  31. package/dist/sync/crypto.d.ts +11 -0
  32. package/dist/sync/crypto.js +95 -0
  33. package/dist/sync/crypto.js.map +1 -0
  34. package/dist/sync/db.d.ts +3 -0
  35. package/dist/sync/db.js +21 -4
  36. package/dist/sync/db.js.map +1 -1
  37. package/dist/sync/engine.d.ts +3 -1
  38. package/dist/sync/engine.js +59 -8
  39. package/dist/sync/engine.js.map +1 -1
  40. package/dist/sync/index.d.ts +2 -0
  41. package/dist/sync/index.js +44 -9
  42. package/dist/sync/index.js.map +1 -1
  43. package/dist/sync/manifest.js +5 -5
  44. package/dist/sync/manifest.js.map +1 -1
  45. package/dist/sync/openclaw-bridge.d.ts +9 -0
  46. package/dist/sync/openclaw-bridge.js +206 -0
  47. package/dist/sync/openclaw-bridge.js.map +1 -0
  48. package/dist/sync/paths.js +6 -7
  49. package/dist/sync/paths.js.map +1 -1
  50. package/dist/sync/schema.js +2 -0
  51. package/dist/sync/schema.js.map +1 -1
  52. package/dist/sync/secrets.d.ts +32 -0
  53. package/dist/sync/secrets.js +221 -0
  54. package/dist/sync/secrets.js.map +1 -0
  55. package/dist/sync/types.d.ts +2 -0
  56. package/dist/sync/types.js +7 -7
  57. package/dist/sync/types.js.map +1 -1
  58. package/dist/sync/vault-bridge.d.ts +12 -0
  59. package/dist/sync/vault-bridge.js +152 -0
  60. package/dist/sync/vault-bridge.js.map +1 -0
  61. package/dist/ui/format.js +15 -14
  62. package/dist/ui/format.js.map +1 -1
  63. package/dist/update.d.ts +17 -0
  64. package/dist/update.js +108 -0
  65. package/dist/update.js.map +1 -0
  66. package/mesh.example.json +39 -0
  67. package/motd/00-cybernord +410 -0
  68. package/package.json +3 -36
@@ -7,36 +7,51 @@ import { readFile, writeFile, mkdir, access, readdir } from 'node:fs/promises';
7
7
  import { dirname, join } from 'node:path';
8
8
  import picomatch from 'picomatch';
9
9
  import { hashBuffer, hashFile } from './hasher.js';
10
+ import { VaultBridge } from './vault-bridge.js';
10
11
  import { categorizeFile } from './manifest.js';
11
12
  import { adaptPathsForNode, getToolBaseDir, isJsonFile, normalizeRelPath } from './paths.js';
12
13
  import { allNodes } from '../protocol/config.js';
13
- const HASH_BATCH_SIZE = 50;
14
+ import { encrypt, decrypt, isSensitivePath, loadOrCreateKey, hasEncryptionKey } from './crypto.js';
15
+ const HASH_BATCH_SIZE = 100; // doubled for faster reconcile
14
16
  export class SyncEngine {
15
17
  db;
16
18
  config;
17
19
  manager;
18
20
  transfer;
19
- constructor(db, config, manager, transfer) {
21
+ vault;
22
+ constructor(db, config, manager, transfer, vault) {
20
23
  this.db = db;
21
24
  this.config = config;
22
25
  this.manager = manager;
23
26
  this.transfer = transfer;
27
+ this.vault = vault ?? new VaultBridge();
24
28
  }
25
- // Push a local file to the database
29
+ // Push a local file to the database (encrypts sensitive files at rest)
26
30
  async pushFile(tool, relPath, absPath, opts) {
27
31
  const data = await readFile(absPath);
28
32
  const hash = hashBuffer(data);
33
+ // Encrypt sensitive files before storing in DB
34
+ const sensitive = isSensitivePath(relPath) && hasEncryptionKey();
35
+ const content = sensitive ? encrypt(data, loadOrCreateKey()) : data;
29
36
  const item = await this.db.upsertItem({
30
37
  tool,
31
38
  category: categorizeFile(relPath),
32
39
  relPath,
33
40
  contentHash: hash,
34
- content: data,
41
+ content,
35
42
  contentSize: data.length,
36
43
  metadata: {},
37
44
  updatedByNode: this.config.nodeId,
45
+ encrypted: sensitive,
38
46
  });
39
47
  await this.db.upsertNodeSync(this.config.nodeId, item.id, hash);
48
+ // Mirror to Obsidian vault
49
+ try {
50
+ await this.vault.writeSyncItem(tool, relPath, data, { hash, node: this.config.nodeId });
51
+ }
52
+ catch {
53
+ // Vault write failed (non-critical)
54
+ }
40
55
  if (!opts?.skipRemotePush) {
41
56
  await this.pushToRemoteNodes(item);
42
57
  }
@@ -45,8 +60,12 @@ export class SyncEngine {
45
60
  async deleteFile(tool, relPath) {
46
61
  await this.db.markDeleted(tool, relPath, this.config.nodeId);
47
62
  await this.db.logEvent(null, this.config.nodeId, 'delete', `Deleted ${tool}:${relPath}`);
63
+ try {
64
+ await this.vault.deleteSyncItem(tool, relPath);
65
+ }
66
+ catch { }
48
67
  }
49
- // Pull pending items from DB to local filesystem
68
+ // Pull pending items from DB to local filesystem (decrypts encrypted items)
50
69
  async pullPending() {
51
70
  const pending = await this.db.getPendingItems(this.config.nodeId);
52
71
  let pulled = 0;
@@ -60,7 +79,20 @@ export class SyncEngine {
60
79
  const os = localNode?.os ?? 'windows';
61
80
  const baseDir = getToolBaseDir(item.tool, os);
62
81
  const absPath = join(baseDir, item.relPath);
63
- let content = item.content;
82
+ // Decrypt if item was stored encrypted
83
+ let content;
84
+ if (item.encrypted && hasEncryptionKey()) {
85
+ try {
86
+ content = decrypt(item.content, loadOrCreateKey());
87
+ }
88
+ catch {
89
+ // Decryption failed — key mismatch or corrupt data, skip
90
+ continue;
91
+ }
92
+ }
93
+ else {
94
+ content = item.content;
95
+ }
64
96
  if (isJsonFile(item.relPath)) {
65
97
  const text = content.toString('utf-8');
66
98
  const adapted = adaptPathsForNode(text, os);
@@ -114,7 +146,8 @@ export class SyncEngine {
114
146
  relPath: normalizeRelPath(absPath.slice(baseNormalized.length + 1)),
115
147
  }))
116
148
  .filter(({ relPath }) => isIncluded(relPath) && !isExcluded(relPath));
117
- // Parallel hashing in batches of HASH_BATCH_SIZE
149
+ // Quick mtime check: skip files whose mtime hasn't changed since last sync
150
+ // This avoids expensive hashing for unchanged files
118
151
  for (let i = 0; i < candidates.length; i += HASH_BATCH_SIZE) {
119
152
  const batch = candidates.slice(i, i + HASH_BATCH_SIZE);
120
153
  const results = await Promise.allSettled(batch.map(async ({ absPath, relPath }) => {
@@ -154,6 +187,10 @@ export class SyncEngine {
154
187
  // Prune old events periodically
155
188
  await this.db.pruneEvents(5000);
156
189
  await this.db.logEvent(null, this.config.nodeId, 'reconcile', `Reconciled: pushed=${pushed}, pulled=${pulled}, conflicts=${conflicts}`);
190
+ try {
191
+ await this.vault.logEvent('reconcile', `pushed=${pushed} pulled=${pulled} conflicts=${conflicts}`, this.config.nodeId);
192
+ }
193
+ catch { }
157
194
  return { pushed, pulled, conflicts };
158
195
  }
159
196
  // Get diff between local and DB
@@ -186,9 +223,23 @@ export class SyncEngine {
186
223
  return diffs;
187
224
  }
188
225
  // Push item content to online remote nodes in parallel via SSH2 + TransferEngine
226
+ // DB stores encrypted BYTEA; we decrypt here so remote nodes get plaintext over SSH (already encrypted transport)
189
227
  async pushToRemoteNodes(item) {
190
228
  if (!item.content)
191
229
  return;
230
+ // Decrypt if stored encrypted — remote nodes receive plaintext over SSH2 (transport-encrypted)
231
+ let rawContent;
232
+ if (item.encrypted && hasEncryptionKey()) {
233
+ try {
234
+ rawContent = decrypt(item.content, loadOrCreateKey());
235
+ }
236
+ catch {
237
+ return; // Can't decrypt, skip push
238
+ }
239
+ }
240
+ else {
241
+ rawContent = item.content;
242
+ }
192
243
  const onlineNodes = this.manager.getOnlineNodes().filter((id) => id !== this.config.nodeId);
193
244
  await Promise.allSettled(onlineNodes.map(async (nodeId) => {
194
245
  try {
@@ -197,7 +248,7 @@ export class SyncEngine {
197
248
  return;
198
249
  const baseDir = getToolBaseDir(item.tool, node.os);
199
250
  const remotePath = `${baseDir}/${item.relPath}`;
200
- let content = item.content.toString('utf-8');
251
+ let content = rawContent.toString('utf-8');
201
252
  if (isJsonFile(item.relPath)) {
202
253
  content = adaptPathsForNode(content, node.os);
203
254
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/sync/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/sync/engine.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  export { SyncDB } from './db.js';
2
2
  export { SyncEngine } from './engine.js';
3
3
  export { MemoryBridge } from './memory-bridge.js';
4
+ export { OpenClawBridge } from './openclaw-bridge.js';
4
5
  export { getManifests } from './manifest.js';
5
6
  export type { SyncConfig } from './types.js';
6
7
  export { DEFAULT_SYNC_CONFIG } from './types.js';
8
+ export { VaultBridge, createVaultBridge } from './vault-bridge.js';
@@ -9,6 +9,7 @@ import { SyncDB } from './db.js';
9
9
  import { SyncEngine } from './engine.js';
10
10
  import { SyncWatcher } from './watcher.js';
11
11
  import { MemoryBridge } from './memory-bridge.js';
12
+ import { OpenClawBridge } from './openclaw-bridge.js';
12
13
  import { getManifests } from './manifest.js';
13
14
  import { NodeManager } from '../nodes/manager.js';
14
15
  import { TransferEngine } from '../nodes/transfer.js';
@@ -22,9 +23,18 @@ function parseArgs(argv) {
22
23
  return { nodeId, once, ingestOnly };
23
24
  }
24
25
  function detectNodeId() {
25
- if (process.platform === 'win32')
26
+ const platform = process.platform;
27
+ if (platform === 'win32')
26
28
  return 'windows';
27
- return process.env.OMNIWIRE_NODE_ID ?? process.env.HOSTNAME ?? 'local';
29
+ // Check hostname-based detection
30
+ const hostname = (process.env.HOSTNAME ?? '').toLowerCase();
31
+ if (hostname.includes('contabo'))
32
+ return 'contabo';
33
+ if (hostname.includes('hostinger'))
34
+ return 'hostinger';
35
+ if (hostname.includes('thinkpad'))
36
+ return 'thinkpad';
37
+ return 'unknown';
28
38
  }
29
39
  async function main() {
30
40
  const { nodeId, once, ingestOnly } = parseArgs(process.argv.slice(2));
@@ -47,11 +57,18 @@ async function main() {
47
57
  const manifests = getManifests(os);
48
58
  // Memory bridge (SQLite -> PostgreSQL)
49
59
  const bridge = new MemoryBridge(db, nodeId);
60
+ // OpenClaw knowledge bridge (filesystem -> PostgreSQL)
61
+ const openclawBridge = new OpenClawBridge(db, nodeId);
62
+ const openclawManifest = manifests.find((m) => m.tool === 'openclaw');
50
63
  if (ingestOnly) {
51
64
  const claudeManifest = manifests.find((m) => m.tool === 'claude-code');
52
65
  if (claudeManifest?.ingestDb) {
53
66
  const count = await bridge.ingest(claudeManifest.ingestDb);
54
- process.stderr.write(`Ingested ${count} memory entries\n`);
67
+ process.stderr.write(`Ingested ${count} claude memory entries\n`);
68
+ }
69
+ if (openclawManifest) {
70
+ const count = await openclawBridge.ingest(openclawManifest.baseDir);
71
+ process.stderr.write(`Ingested ${count} openclaw knowledge entries\n`);
55
72
  }
56
73
  await db.close();
57
74
  manager.disconnect();
@@ -63,11 +80,15 @@ async function main() {
63
80
  // Single reconciliation pass
64
81
  const result = await engine.reconcile(manifests);
65
82
  process.stderr.write(`Reconcile: pushed=${result.pushed}, pulled=${result.pulled}, conflicts=${result.conflicts}\n`);
66
- // Also ingest memory.db
83
+ // Ingest memory.db + openclaw
67
84
  const claudeManifest = manifests.find((m) => m.tool === 'claude-code');
68
85
  if (claudeManifest?.ingestDb) {
69
86
  const count = await bridge.ingest(claudeManifest.ingestDb);
70
- process.stderr.write(`Ingested ${count} memory entries\n`);
87
+ process.stderr.write(`Ingested ${count} claude memory entries\n`);
88
+ }
89
+ if (openclawManifest) {
90
+ const count = await openclawBridge.ingest(openclawManifest.baseDir);
91
+ process.stderr.write(`Ingested ${count} openclaw knowledge entries\n`);
71
92
  }
72
93
  await db.close();
73
94
  manager.disconnect();
@@ -94,11 +115,15 @@ async function main() {
94
115
  // Initial reconcile
95
116
  const initial = await engine.reconcile(manifests);
96
117
  process.stderr.write(`Initial reconcile: pushed=${initial.pushed}, pulled=${initial.pulled}, conflicts=${initial.conflicts}\n`);
97
- // Ingest memory.db on startup
118
+ // Ingest on startup: claude memory.db + openclaw filesystem
98
119
  const claudeManifest = manifests.find((m) => m.tool === 'claude-code');
99
120
  if (claudeManifest?.ingestDb) {
100
121
  const count = await bridge.ingest(claudeManifest.ingestDb);
101
- process.stderr.write(`Ingested ${count} memory entries\n`);
122
+ process.stderr.write(`Ingested ${count} claude memory entries\n`);
123
+ }
124
+ if (openclawManifest) {
125
+ const count = await openclawBridge.ingest(openclawManifest.baseDir);
126
+ process.stderr.write(`Ingested ${count} openclaw knowledge entries\n`);
102
127
  }
103
128
  // Periodic reconciliation
104
129
  const reconcileInterval = setInterval(async () => {
@@ -113,14 +138,22 @@ async function main() {
113
138
  process.stderr.write(`[reconcile] error: ${err.message}\n`);
114
139
  }
115
140
  }, config.reconcileIntervalMs);
116
- // Periodic memory.db ingestion (every 15 min)
141
+ // Periodic knowledge ingestion (every 15 min): claude memory.db + openclaw filesystem
117
142
  const memoryInterval = setInterval(async () => {
118
143
  if (claudeManifest?.ingestDb) {
119
144
  try {
120
145
  await bridge.ingest(claudeManifest.ingestDb);
121
146
  }
122
147
  catch {
123
- // Silent fail for memory ingestion
148
+ // Silent fail for claude memory ingestion
149
+ }
150
+ }
151
+ if (openclawManifest) {
152
+ try {
153
+ await openclawBridge.ingest(openclawManifest.baseDir);
154
+ }
155
+ catch {
156
+ // Silent fail for openclaw ingestion
124
157
  }
125
158
  }
126
159
  }, 15 * 60 * 1000);
@@ -142,8 +175,10 @@ async function main() {
142
175
  export { SyncDB } from './db.js';
143
176
  export { SyncEngine } from './engine.js';
144
177
  export { MemoryBridge } from './memory-bridge.js';
178
+ export { OpenClawBridge } from './openclaw-bridge.js';
145
179
  export { getManifests } from './manifest.js';
146
180
  export { DEFAULT_SYNC_CONFIG } from './types.js';
181
+ export { VaultBridge, createVaultBridge } from './vault-bridge.js';
147
182
  // Run if executed directly
148
183
  const isDirectRun = process.argv[1]?.endsWith('sync/index.js') || process.argv[1]?.endsWith('sync\\index.js');
149
184
  if (isDirectRun) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,17 @@
1
1
  // CyberSync — Tool manifests defining what to sync per AI tool
2
2
  import { getToolBaseDir } from './paths.js';
3
- function manifest(tool, os, sync, exclude, ingestDb) {
3
+ function manifest(tool, os, sync, exclude, ingestDb, ingestDirs) {
4
4
  return {
5
5
  tool,
6
6
  baseDir: getToolBaseDir(tool, os),
7
7
  syncGlobs: sync,
8
8
  excludeGlobs: exclude,
9
9
  ingestDb,
10
+ ingestDirs,
10
11
  };
11
12
  }
12
13
  export function getManifests(os) {
13
- const home = os === 'windows'
14
- ? (process.env.USERPROFILE ?? process.env.HOME ?? '').replaceAll('\\', '/')
15
- : (process.env.HOME ?? '/root');
14
+ const home = os === 'windows' ? 'C:/Users/Admin' : '/root';
16
15
  return [
17
16
  manifest('claude-code', os, [
18
17
  'agents/**/*.md',
@@ -58,6 +57,7 @@ export function getManifests(os) {
58
57
  ]),
59
58
  manifest('openclaw', os, [
60
59
  'agents/**/*',
60
+ 'skills/**/*',
61
61
  'memory/**/*',
62
62
  'workspace/**/*',
63
63
  'openclaw.json',
@@ -69,7 +69,7 @@ export function getManifests(os) {
69
69
  'canvas/**',
70
70
  'telegram/**',
71
71
  'devices/**',
72
- ]),
72
+ ], undefined, ['agents', 'skills', 'memory', 'workspace', 'identity', 'cron']),
73
73
  manifest('codex', os, [
74
74
  'config.toml',
75
75
  'AGENTS.md',
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/sync/manifest.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,SAAS,QAAQ,CAAC,IAAc,EAAE,EAAuB,EAAE,IAAc,EAAE,OAAiB,EAAE,QAAiB;IAC7G,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;QACjC,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,OAAO;QACrB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAuB;IAClD,MAAM,IAAI,GAAG,EAAE,KAAK,SAAS;QAC3B,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;QAC3E,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC;IAElC,OAAO;QACL,QAAQ,CAAC,aAAa,EAAE,EAAE,EACxB;YACE,gBAAgB;YAChB,aAAa;YACb,kBAAkB;YAClB,eAAe;YACf,YAAY;YACZ,mBAAmB;YACnB,aAAa;YACb,eAAe;YACf,qBAAqB;YACrB,kBAAkB;YAClB,WAAW;YACX,cAAc;SACf,EACD;YACE,mBAAmB;YACnB,eAAe;YACf,SAAS;YACT,UAAU;YACV,aAAa;YACb,gBAAgB;YAChB,iBAAiB;YACjB,gBAAgB;YAChB,cAAc;YACd,YAAY;YACZ,cAAc;YACd,qBAAqB;YACrB,oBAAoB;YACpB,UAAU;YACV,aAAa;SACd,EACD,GAAG,IAAI,oBAAoB,CAC5B;QACD,QAAQ,CAAC,UAAU,EAAE,EAAE,EACrB;YACE,eAAe;YACf,qBAAqB;YACrB,cAAc;YACd,YAAY;YACZ,aAAa;YACb,aAAa;YACb,YAAY;SACb,EACD;YACE,iBAAiB;YACjB,UAAU;SACX,CACF;QACD,QAAQ,CAAC,UAAU,EAAE,EAAE,EACrB;YACE,aAAa;YACb,aAAa;YACb,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,WAAW;SACZ,EACD;YACE,aAAa;YACb,mBAAmB;YACnB,WAAW;YACX,aAAa;YACb,YAAY;SACb,CACF;QACD,QAAQ,CAAC,OAAO,EAAE,EAAE,EAClB;YACE,aAAa;YACb,WAAW;YACX,aAAa;YACb,eAAe;SAChB,EACD,EAAE,CACH;QACD,QAAQ,CAAC,QAAQ,EAAE,EAAE,EACnB;YACE,eAAe;YACf,eAAe;SAChB,EACD,EAAE,CACH;QACD,QAAQ,CAAC,WAAW,EAAE,EAAE,EACtB;YACE,aAAa;YACb,aAAa;SACd,EACD,EAAE,CACH;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC;IACvD,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAChC,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,QAAQ,CAAC;IACvE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAwB;IAC5C,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW;CACtE,CAAC"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/sync/manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { SyncDB } from './db.js';
2
+ export declare class OpenClawBridge {
3
+ private readonly db;
4
+ private readonly nodeId;
5
+ constructor(db: SyncDB, nodeId: string);
6
+ ingest(baseDir: string): Promise<number>;
7
+ private ingestDirectory;
8
+ private ingestConfig;
9
+ }
@@ -0,0 +1,206 @@
1
+ // CyberSync — OpenClaw filesystem -> PostgreSQL knowledge ingestion
2
+ //
3
+ // Walks ~/.openclaw/ directories (agents, skills, memory, workspace, identity, cron)
4
+ // and ingests structured entries into the shared knowledge table.
5
+ // Unlike claude-code's SQLite bridge, OpenClaw stores data as files (JSON, MD, etc).
6
+ import { readFile, readdir, stat } from 'node:fs/promises';
7
+ import { existsSync } from 'node:fs';
8
+ import { basename, extname, join } from 'node:path';
9
+ const MAX_CONTENT_BYTES = 64 * 1024; // 64KB per entry
10
+ const SOURCE_TOOL = 'openclaw';
11
+ export class OpenClawBridge {
12
+ db;
13
+ nodeId;
14
+ constructor(db, nodeId) {
15
+ this.db = db;
16
+ this.nodeId = nodeId;
17
+ }
18
+ async ingest(baseDir) {
19
+ if (!existsSync(baseDir))
20
+ return 0;
21
+ let ingested = 0;
22
+ // Ingest each category directory
23
+ ingested += await this.ingestDirectory(baseDir, 'agents', 'agent');
24
+ ingested += await this.ingestDirectory(baseDir, 'skills', 'skill');
25
+ ingested += await this.ingestDirectory(baseDir, 'memory', 'memory');
26
+ ingested += await this.ingestDirectory(baseDir, 'workspace', 'workspace');
27
+ ingested += await this.ingestDirectory(baseDir, 'identity', 'identity');
28
+ ingested += await this.ingestDirectory(baseDir, 'cron', 'cron');
29
+ // Ingest main config
30
+ ingested += await this.ingestConfig(baseDir);
31
+ return ingested;
32
+ }
33
+ async ingestDirectory(baseDir, dirName, category) {
34
+ const dirPath = join(baseDir, dirName);
35
+ if (!existsSync(dirPath))
36
+ return 0;
37
+ const files = await walkFiles(dirPath);
38
+ let ingested = 0;
39
+ for (const filePath of files) {
40
+ try {
41
+ const parsed = await parseFile(filePath);
42
+ const relPath = filePath.slice(dirPath.length + 1).replaceAll('\\', '/');
43
+ const keyName = deriveKeyName(relPath, parsed.name);
44
+ const key = `openclaw:${category}:${keyName}`;
45
+ await this.db.upsertKnowledge(SOURCE_TOOL, key, {
46
+ source: 'filesystem',
47
+ category,
48
+ name: parsed.name,
49
+ filePath: `${dirName}/${relPath}`,
50
+ node: this.nodeId,
51
+ lastIngested: new Date().toISOString(),
52
+ ...parsed.metadata,
53
+ ...(parsed.content.length > 0 ? { content: parsed.content } : {}),
54
+ });
55
+ ingested++;
56
+ }
57
+ catch {
58
+ // Skip files that fail to parse
59
+ }
60
+ }
61
+ return ingested;
62
+ }
63
+ async ingestConfig(baseDir) {
64
+ const configPath = join(baseDir, 'openclaw.json');
65
+ if (!existsSync(configPath))
66
+ return 0;
67
+ try {
68
+ const raw = await readFile(configPath, 'utf-8');
69
+ const parsed = tryParseJson(raw);
70
+ await this.db.upsertKnowledge(SOURCE_TOOL, 'openclaw:config:main', {
71
+ source: 'filesystem',
72
+ category: 'config',
73
+ node: this.nodeId,
74
+ lastIngested: new Date().toISOString(),
75
+ ...(typeof parsed === 'object' && parsed !== null ? parsed : { rawContent: raw }),
76
+ });
77
+ return 1;
78
+ }
79
+ catch {
80
+ return 0;
81
+ }
82
+ }
83
+ }
84
+ // Parse a file based on extension
85
+ async function parseFile(filePath) {
86
+ const raw = await readFile(filePath, 'utf-8');
87
+ const truncated = raw.length > MAX_CONTENT_BYTES ? raw.slice(0, MAX_CONTENT_BYTES) : raw;
88
+ const name = basename(filePath, extname(filePath));
89
+ const ext = extname(filePath).toLowerCase();
90
+ if (ext === '.json') {
91
+ const parsed = tryParseJson(truncated);
92
+ if (typeof parsed === 'object' && parsed !== null) {
93
+ const obj = parsed;
94
+ return {
95
+ name: obj.name ?? name,
96
+ content: '',
97
+ metadata: obj,
98
+ };
99
+ }
100
+ return { name, content: truncated, metadata: {} };
101
+ }
102
+ if (ext === '.md') {
103
+ const { frontmatter, body } = extractFrontmatter(truncated);
104
+ const description = extractFirstHeading(body) ?? body.slice(0, 200).trim();
105
+ return {
106
+ name: frontmatter.name ?? name,
107
+ content: body,
108
+ metadata: {
109
+ ...frontmatter,
110
+ description,
111
+ },
112
+ };
113
+ }
114
+ // All other file types — raw text
115
+ return { name, content: truncated, metadata: {} };
116
+ }
117
+ // Extract YAML-like frontmatter between --- delimiters
118
+ function extractFrontmatter(text) {
119
+ const trimmed = text.trimStart();
120
+ if (!trimmed.startsWith('---')) {
121
+ return { frontmatter: {}, body: text };
122
+ }
123
+ const endIdx = trimmed.indexOf('---', 3);
124
+ if (endIdx === -1) {
125
+ return { frontmatter: {}, body: text };
126
+ }
127
+ const fmBlock = trimmed.slice(3, endIdx).trim();
128
+ const body = trimmed.slice(endIdx + 3).trim();
129
+ // Simple key: value parsing (no nested YAML — avoids adding a dep)
130
+ const frontmatter = {};
131
+ for (const line of fmBlock.split('\n')) {
132
+ const colonIdx = line.indexOf(':');
133
+ if (colonIdx === -1)
134
+ continue;
135
+ const key = line.slice(0, colonIdx).trim();
136
+ const val = line.slice(colonIdx + 1).trim();
137
+ if (key.length === 0)
138
+ continue;
139
+ // Handle arrays: [a, b, c]
140
+ if (val.startsWith('[') && val.endsWith(']')) {
141
+ frontmatter[key] = val.slice(1, -1).split(',').map((s) => s.trim().replace(/^["']|["']$/g, ''));
142
+ }
143
+ else {
144
+ frontmatter[key] = val.replace(/^["']|["']$/g, '');
145
+ }
146
+ }
147
+ return { frontmatter, body };
148
+ }
149
+ // Extract first markdown heading as description
150
+ function extractFirstHeading(text) {
151
+ const match = text.match(/^#+\s+(.+)$/m);
152
+ return match?.[1]?.trim();
153
+ }
154
+ // Derive a clean key name from relative path
155
+ function deriveKeyName(relPath, parsedName) {
156
+ // Use parsed name if available and clean, otherwise derive from path
157
+ if (parsedName && !parsedName.includes('/') && !parsedName.includes('\\')) {
158
+ return parsedName.toLowerCase().replace(/[^a-z0-9_-]/g, '-');
159
+ }
160
+ return relPath
161
+ .replace(/\.[^.]+$/, '')
162
+ .replaceAll('/', '-')
163
+ .replaceAll('\\', '-')
164
+ .toLowerCase()
165
+ .replace(/[^a-z0-9_-]/g, '-');
166
+ }
167
+ // Recursively walk a directory, returning all file paths
168
+ async function walkFiles(dir) {
169
+ const results = [];
170
+ let entries;
171
+ try {
172
+ entries = await readdir(dir, { withFileTypes: true });
173
+ }
174
+ catch {
175
+ return results;
176
+ }
177
+ for (const entry of entries) {
178
+ const fullPath = join(dir, entry.name);
179
+ try {
180
+ if (entry.isDirectory()) {
181
+ const sub = await walkFiles(fullPath);
182
+ results.push(...sub);
183
+ }
184
+ else if (entry.isFile()) {
185
+ // Skip files larger than 1MB
186
+ const st = await stat(fullPath);
187
+ if (st.size <= 1024 * 1024) {
188
+ results.push(fullPath);
189
+ }
190
+ }
191
+ }
192
+ catch {
193
+ // Permission denied or broken symlink
194
+ }
195
+ }
196
+ return results;
197
+ }
198
+ function tryParseJson(value) {
199
+ try {
200
+ return JSON.parse(value);
201
+ }
202
+ catch {
203
+ return value;
204
+ }
205
+ }
206
+ //# sourceMappingURL=openclaw-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw-bridge.js","sourceRoot":"","sources":["../../src/sync/openclaw-bridge.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,qFAAqF;AACrF,kEAAkE;AAClE,qFAAqF;AAErF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGpD,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,iBAAiB;AACtD,MAAM,WAAW,GAAG,UAAmB,CAAC;AAQxC,MAAM,OAAO,cAAc;IAEN;IACA;IAFnB,YACmB,EAAU,EACV,MAAc;QADd,OAAE,GAAF,EAAE,CAAQ;QACV,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,CAAC;QAEnC,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,iCAAiC;QACjC,QAAQ,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnE,QAAQ,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnE,QAAQ,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpE,QAAQ,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAC1E,QAAQ,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACxE,QAAQ,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAEhE,qBAAqB;QACrB,QAAQ,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE7C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,OAAe,EAAE,QAAgB;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,CAAC;QAEnC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACzE,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpD,MAAM,GAAG,GAAG,YAAY,QAAQ,IAAI,OAAO,EAAE,CAAC;gBAE9C,MAAM,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,GAAG,EAAE;oBAC9C,MAAM,EAAE,YAAY;oBACpB,QAAQ;oBACR,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,GAAG,OAAO,IAAI,OAAO,EAAE;oBACjC,IAAI,EAAE,IAAI,CAAC,MAAM;oBACjB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACtC,GAAG,MAAM,CAAC,QAAQ;oBAClB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAClE,CAAC,CAAC;gBAEH,QAAQ,EAAE,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,gCAAgC;YAClC,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,OAAe;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,CAAC,CAAC;QAEtC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAEjC,MAAM,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,sBAAsB,EAAE;gBACjE,MAAM,EAAE,YAAY;gBACpB,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,IAAI,CAAC,MAAM;gBACjB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACtC,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAiC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;aAC7G,CAAC,CAAC;YAEH,OAAO,CAAC,CAAC;QACX,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;CACF;AAED,kCAAkC;AAClC,KAAK,UAAU,SAAS,CAAC,QAAgB;IACvC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzF,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAE5C,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClD,MAAM,GAAG,GAAG,MAAiC,CAAC;YAC9C,OAAO;gBACL,IAAI,EAAG,GAAG,CAAC,IAAe,IAAI,IAAI;gBAClC,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,GAAG;aACd,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3E,OAAO;YACL,IAAI,EAAG,WAAW,CAAC,IAAe,IAAI,IAAI;YAC1C,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE;gBACR,GAAG,WAAW;gBACd,WAAW;aACZ;SACF,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACpD,CAAC;AAED,uDAAuD;AACvD,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE9C,mEAAmE;IACnE,MAAM,WAAW,GAA4B,EAAE,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,SAAS;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAE/B,2BAA2B;QAC3B,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;QAClG,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,gDAAgD;AAChD,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACzC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,6CAA6C;AAC7C,SAAS,aAAa,CAAC,OAAe,EAAE,UAAkB;IACxD,qEAAqE;IACrE,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1E,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,OAAO;SACX,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;SACpB,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;SACrB,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,yDAAyD;AACzD,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACtC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACvB,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1B,6BAA6B;gBAC7B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}