@kernel.chat/kbot 3.37.0 → 3.39.0

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 (38) hide show
  1. package/README.md +111 -7
  2. package/dist/agent-teams.d.ts +55 -0
  3. package/dist/agent-teams.d.ts.map +1 -0
  4. package/dist/agent-teams.js +135 -0
  5. package/dist/agent-teams.js.map +1 -0
  6. package/dist/autonomous-contributor.d.ts +88 -0
  7. package/dist/autonomous-contributor.d.ts.map +1 -0
  8. package/dist/autonomous-contributor.js +862 -0
  9. package/dist/autonomous-contributor.js.map +1 -0
  10. package/dist/collective-network.d.ts +102 -0
  11. package/dist/collective-network.d.ts.map +1 -0
  12. package/dist/collective-network.js +634 -0
  13. package/dist/collective-network.js.map +1 -0
  14. package/dist/community-autopilot.d.ts +98 -0
  15. package/dist/community-autopilot.d.ts.map +1 -0
  16. package/dist/community-autopilot.js +676 -0
  17. package/dist/community-autopilot.js.map +1 -0
  18. package/dist/cross-device-sync.d.ts +36 -0
  19. package/dist/cross-device-sync.d.ts.map +1 -0
  20. package/dist/cross-device-sync.js +532 -0
  21. package/dist/cross-device-sync.js.map +1 -0
  22. package/dist/forge-marketplace-server.d.ts +23 -0
  23. package/dist/forge-marketplace-server.d.ts.map +1 -0
  24. package/dist/forge-marketplace-server.js +457 -0
  25. package/dist/forge-marketplace-server.js.map +1 -0
  26. package/dist/hooks-integration.d.ts +89 -0
  27. package/dist/hooks-integration.d.ts.map +1 -0
  28. package/dist/hooks-integration.js +457 -0
  29. package/dist/hooks-integration.js.map +1 -0
  30. package/dist/plugin/index.d.ts +71 -0
  31. package/dist/plugin/index.d.ts.map +1 -0
  32. package/dist/plugin/index.js +133 -0
  33. package/dist/plugin/index.js.map +1 -0
  34. package/dist/voice-loop.d.ts +59 -0
  35. package/dist/voice-loop.d.ts.map +1 -0
  36. package/dist/voice-loop.js +525 -0
  37. package/dist/voice-loop.js.map +1 -0
  38. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community-autopilot.js","sourceRoot":"","sources":["../src/community-autopilot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ export interface SyncUploadResult {
2
+ uploaded_bytes: number;
3
+ patterns_synced: number;
4
+ last_sync: string;
5
+ }
6
+ export interface SyncPullResult {
7
+ downloaded_bytes: number;
8
+ new_patterns: number;
9
+ conflicts_resolved: number;
10
+ }
11
+ export interface SyncStatus {
12
+ last_push: string | null;
13
+ last_pull: string | null;
14
+ local_patterns: number;
15
+ cloud_patterns: number;
16
+ in_sync: boolean;
17
+ }
18
+ interface RunOptions {
19
+ /** Override sync URL */
20
+ url?: string;
21
+ /** Auth token (kernel.chat JWT or kn_live_* key) */
22
+ token?: string;
23
+ /** Force push even if no changes detected */
24
+ force?: boolean;
25
+ }
26
+ /** Collect all learning data, compress, and upload to sync endpoint.
27
+ * Returns upload stats. */
28
+ export declare function runCrossDeviceSync(options?: RunOptions): Promise<SyncUploadResult>;
29
+ /** Download latest snapshot from cloud and merge with local data.
30
+ * Merge strategy: prefer newer timestamps, higher confidence.
31
+ * Returns download stats. */
32
+ export declare function pullFromCloud(options?: RunOptions): Promise<SyncPullResult>;
33
+ /** Get current sync status across local and cloud. */
34
+ export declare function getSyncStatus(options?: RunOptions): Promise<SyncStatus>;
35
+ export {};
36
+ //# sourceMappingURL=cross-device-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-device-sync.d.ts","sourceRoot":"","sources":["../src/cross-device-sync.ts"],"names":[],"mappings":"AAiCA,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB;AA+BD,UAAU,UAAU;IAClB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AA2KD;4BAC4B;AAC5B,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8ExF;AAED;;8BAE8B;AAC9B,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CA8DjF;AAED,sDAAsD;AACtD,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAiB7E"}
@@ -0,0 +1,532 @@
1
+ // kbot Cross-Device Sync — Same kbot, same memory, same learning, everywhere.
2
+ //
3
+ // Syncs all learning data (patterns, solutions, profile, routing, memory, forge)
4
+ // across devices. Creates compressed snapshots, uploads/downloads via sync endpoint.
5
+ //
6
+ // Device identity: SHA-256 of hostname + username (not reversible).
7
+ // Merge strategy: prefer newer timestamps, higher confidence.
8
+ //
9
+ // Uses only Node built-ins + fetch. No external dependencies.
10
+ import { homedir, hostname, userInfo } from 'node:os';
11
+ import { join } from 'node:path';
12
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, readdirSync, } from 'node:fs';
13
+ import { createHash } from 'node:crypto';
14
+ import { gzipSync, gunzipSync } from 'node:zlib';
15
+ const KBOT_DIR = join(homedir(), '.kbot');
16
+ const MEMORY_DIR = join(KBOT_DIR, 'memory');
17
+ const FORGE_DIR = join(KBOT_DIR, 'forge');
18
+ const SYNC_DIR = join(KBOT_DIR, 'sync');
19
+ const SYNC_STATE_FILE = join(SYNC_DIR, 'cross-device-state.json');
20
+ const SYNC_URL = process.env.KBOT_SYNC_URL || 'https://kernel.chat/api/sync';
21
+ // ── Helpers ──
22
+ function ensureDir(dir) {
23
+ if (!existsSync(dir))
24
+ mkdirSync(dir, { recursive: true });
25
+ }
26
+ function loadJSON(path, fallback) {
27
+ try {
28
+ if (existsSync(path)) {
29
+ return JSON.parse(readFileSync(path, 'utf-8'));
30
+ }
31
+ }
32
+ catch {
33
+ // Corrupt file — return fallback
34
+ }
35
+ return fallback;
36
+ }
37
+ function saveJSON(path, data) {
38
+ const dir = join(path, '..');
39
+ ensureDir(dir);
40
+ writeFileSync(path, JSON.stringify(data, null, 2));
41
+ }
42
+ function loadSyncState() {
43
+ return loadJSON(SYNC_STATE_FILE, {
44
+ lastPush: null,
45
+ lastPull: null,
46
+ cloudPatternCount: 0,
47
+ localSnapshotHash: null,
48
+ cloudSnapshotHash: null,
49
+ });
50
+ }
51
+ function saveSyncState(state) {
52
+ ensureDir(SYNC_DIR);
53
+ writeFileSync(SYNC_STATE_FILE, JSON.stringify(state, null, 2));
54
+ }
55
+ // ── Device Fingerprint ──
56
+ /** SHA-256 of hostname + username — deterministic, non-reversible identity */
57
+ function getDeviceFingerprint() {
58
+ const raw = `${hostname()}:${userInfo().username}`;
59
+ return createHash('sha256').update(raw).digest('hex');
60
+ }
61
+ // ── Data Collection ──
62
+ /** Read all learning data from ~/.kbot/ into a unified structure */
63
+ function collectAllData() {
64
+ ensureDir(MEMORY_DIR);
65
+ ensureDir(FORGE_DIR);
66
+ // Patterns, solutions, routing — JSON arrays
67
+ const patterns = loadJSON(join(MEMORY_DIR, 'patterns.json'), []);
68
+ const solutions = loadJSON(join(MEMORY_DIR, 'solutions.json'), []);
69
+ const routing = loadJSON(join(MEMORY_DIR, 'routing.json'), []);
70
+ // Profile — JSON object
71
+ const profile = loadJSON(join(MEMORY_DIR, 'profile.json'), {});
72
+ // Memory — markdown text
73
+ let memory = '';
74
+ const contextPath = join(MEMORY_DIR, 'context.md');
75
+ try {
76
+ if (existsSync(contextPath)) {
77
+ memory = readFileSync(contextPath, 'utf-8');
78
+ }
79
+ }
80
+ catch {
81
+ // Not critical
82
+ }
83
+ // Forge tools — read all JSON files from forge directory
84
+ const forge = [];
85
+ try {
86
+ const files = readdirSync(FORGE_DIR).filter(f => f.endsWith('.json'));
87
+ for (const file of files) {
88
+ try {
89
+ const tool = JSON.parse(readFileSync(join(FORGE_DIR, file), 'utf-8'));
90
+ forge.push(tool);
91
+ }
92
+ catch {
93
+ // Skip corrupt tool files
94
+ }
95
+ }
96
+ }
97
+ catch {
98
+ // Forge dir might not exist yet
99
+ }
100
+ return { patterns, solutions, profile, routing, memory, forge };
101
+ }
102
+ /** Build per-entry metadata for merge decisions */
103
+ function buildMetadata(data) {
104
+ const meta = {};
105
+ const now = new Date().toISOString();
106
+ // Pattern metadata — use each pattern's own timestamps if available
107
+ for (let i = 0; i < data.patterns.length; i++) {
108
+ const p = data.patterns[i];
109
+ meta[`patterns:${i}`] = {
110
+ updatedAt: (typeof p.updatedAt === 'string' ? p.updatedAt : now),
111
+ confidence: typeof p.successRate === 'number' ? p.successRate : undefined,
112
+ };
113
+ }
114
+ // Solution metadata
115
+ for (let i = 0; i < data.solutions.length; i++) {
116
+ const s = data.solutions[i];
117
+ meta[`solutions:${i}`] = {
118
+ updatedAt: (typeof s.updatedAt === 'string' ? s.updatedAt : now),
119
+ confidence: typeof s.confidence === 'number' ? s.confidence : undefined,
120
+ };
121
+ }
122
+ // Routing metadata
123
+ for (let i = 0; i < data.routing.length; i++) {
124
+ const r = data.routing[i];
125
+ meta[`routing:${i}`] = {
126
+ updatedAt: (typeof r.updatedAt === 'string' ? r.updatedAt : now),
127
+ confidence: typeof r.confidence === 'number' ? r.confidence : undefined,
128
+ };
129
+ }
130
+ // Profile — single entry
131
+ meta['profile'] = { updatedAt: now };
132
+ // Memory — single entry
133
+ meta['memory'] = { updatedAt: now };
134
+ // Forge tools
135
+ for (let i = 0; i < data.forge.length; i++) {
136
+ const f = data.forge[i];
137
+ meta[`forge:${i}`] = {
138
+ updatedAt: (typeof f.created === 'string' ? f.created : now),
139
+ };
140
+ }
141
+ return meta;
142
+ }
143
+ /** Hash a snapshot's data for change detection */
144
+ function hashSnapshot(data) {
145
+ const content = JSON.stringify(data);
146
+ return createHash('sha256').update(content).digest('hex').slice(0, 16);
147
+ }
148
+ // ── Auth Token Resolution ──
149
+ /** Resolve auth token from options, env, or config file */
150
+ function resolveToken(options) {
151
+ if (options?.token)
152
+ return options.token;
153
+ if (process.env.KBOT_CLOUD_TOKEN)
154
+ return process.env.KBOT_CLOUD_TOKEN;
155
+ // Try loading from config
156
+ try {
157
+ const configPath = join(KBOT_DIR, 'config.json');
158
+ if (existsSync(configPath)) {
159
+ const config = JSON.parse(readFileSync(configPath, 'utf-8'));
160
+ if (config.kernel_token)
161
+ return config.kernel_token;
162
+ }
163
+ }
164
+ catch {
165
+ // Config might be encrypted or corrupt
166
+ }
167
+ return null;
168
+ }
169
+ // ── Core API ──
170
+ /** Collect all learning data, compress, and upload to sync endpoint.
171
+ * Returns upload stats. */
172
+ export async function runCrossDeviceSync(options) {
173
+ const syncUrl = options?.url || SYNC_URL;
174
+ const token = resolveToken(options);
175
+ const data = collectAllData();
176
+ const currentHash = hashSnapshot(data);
177
+ const state = loadSyncState();
178
+ // Skip if nothing changed (unless forced)
179
+ if (!options?.force && state.localSnapshotHash === currentHash) {
180
+ return {
181
+ uploaded_bytes: 0,
182
+ patterns_synced: 0,
183
+ last_sync: state.lastPush || 'never',
184
+ };
185
+ }
186
+ const snapshot = {
187
+ device_fingerprint: getDeviceFingerprint(),
188
+ timestamp: new Date().toISOString(),
189
+ version: '1.0.0',
190
+ data,
191
+ metadata: buildMetadata(data),
192
+ };
193
+ // Compress with gzip
194
+ const jsonBytes = Buffer.from(JSON.stringify(snapshot), 'utf-8');
195
+ const compressed = gzipSync(jsonBytes);
196
+ const headers = {
197
+ 'Content-Type': 'application/octet-stream',
198
+ 'X-Device-Fingerprint': snapshot.device_fingerprint,
199
+ 'X-Snapshot-Version': snapshot.version,
200
+ };
201
+ if (token) {
202
+ headers['Authorization'] = `Bearer ${token}`;
203
+ }
204
+ try {
205
+ const res = await fetch(`${syncUrl}/push`, {
206
+ method: 'POST',
207
+ headers,
208
+ body: compressed,
209
+ signal: AbortSignal.timeout(30_000),
210
+ });
211
+ if (!res.ok) {
212
+ if (process.env.KBOT_DEBUG) {
213
+ console.error(`[cross-device-sync] push failed: ${res.status}`);
214
+ }
215
+ return {
216
+ uploaded_bytes: 0,
217
+ patterns_synced: 0,
218
+ last_sync: state.lastPush || 'never',
219
+ };
220
+ }
221
+ const now = new Date().toISOString();
222
+ state.lastPush = now;
223
+ state.localSnapshotHash = currentHash;
224
+ saveSyncState(state);
225
+ return {
226
+ uploaded_bytes: compressed.byteLength,
227
+ patterns_synced: data.patterns.length,
228
+ last_sync: now,
229
+ };
230
+ }
231
+ catch (err) {
232
+ if (process.env.KBOT_DEBUG) {
233
+ console.error('[cross-device-sync] push error:', err.message);
234
+ }
235
+ return {
236
+ uploaded_bytes: 0,
237
+ patterns_synced: 0,
238
+ last_sync: state.lastPush || 'never',
239
+ };
240
+ }
241
+ }
242
+ /** Download latest snapshot from cloud and merge with local data.
243
+ * Merge strategy: prefer newer timestamps, higher confidence.
244
+ * Returns download stats. */
245
+ export async function pullFromCloud(options) {
246
+ const syncUrl = options?.url || SYNC_URL;
247
+ const token = resolveToken(options);
248
+ const fingerprint = getDeviceFingerprint();
249
+ const headers = {
250
+ 'X-Device-Fingerprint': fingerprint,
251
+ };
252
+ if (token) {
253
+ headers['Authorization'] = `Bearer ${token}`;
254
+ }
255
+ try {
256
+ const res = await fetch(`${syncUrl}/pull`, {
257
+ method: 'GET',
258
+ headers,
259
+ signal: AbortSignal.timeout(30_000),
260
+ });
261
+ if (!res.ok) {
262
+ if (process.env.KBOT_DEBUG) {
263
+ console.error(`[cross-device-sync] pull failed: ${res.status}`);
264
+ }
265
+ return { downloaded_bytes: 0, new_patterns: 0, conflicts_resolved: 0 };
266
+ }
267
+ const compressedBuffer = Buffer.from(await res.arrayBuffer());
268
+ const downloadedBytes = compressedBuffer.byteLength;
269
+ // Decompress
270
+ const jsonBuffer = gunzipSync(compressedBuffer);
271
+ const remote = JSON.parse(jsonBuffer.toString('utf-8'));
272
+ if (!remote.data) {
273
+ return { downloaded_bytes: downloadedBytes, new_patterns: 0, conflicts_resolved: 0 };
274
+ }
275
+ // Merge with local data
276
+ const local = collectAllData();
277
+ const mergeResult = mergeSnapshots(local, remote);
278
+ // Write merged data back to local files
279
+ writeLocalData(mergeResult.merged);
280
+ // Update sync state
281
+ const state = loadSyncState();
282
+ state.lastPull = new Date().toISOString();
283
+ state.cloudSnapshotHash = hashSnapshot(remote.data);
284
+ state.cloudPatternCount = remote.data.patterns.length;
285
+ saveSyncState(state);
286
+ return {
287
+ downloaded_bytes: downloadedBytes,
288
+ new_patterns: mergeResult.newPatterns,
289
+ conflicts_resolved: mergeResult.conflictsResolved,
290
+ };
291
+ }
292
+ catch (err) {
293
+ if (process.env.KBOT_DEBUG) {
294
+ console.error('[cross-device-sync] pull error:', err.message);
295
+ }
296
+ return { downloaded_bytes: 0, new_patterns: 0, conflicts_resolved: 0 };
297
+ }
298
+ }
299
+ /** Get current sync status across local and cloud. */
300
+ export async function getSyncStatus(options) {
301
+ const state = loadSyncState();
302
+ const localData = collectAllData();
303
+ const localPatternCount = localData.patterns.length;
304
+ const currentHash = hashSnapshot(localData);
305
+ const inSync = state.localSnapshotHash === currentHash
306
+ && state.cloudSnapshotHash !== null
307
+ && state.localSnapshotHash === state.cloudSnapshotHash;
308
+ return {
309
+ last_push: state.lastPush,
310
+ last_pull: state.lastPull,
311
+ local_patterns: localPatternCount,
312
+ cloud_patterns: state.cloudPatternCount,
313
+ in_sync: inSync,
314
+ };
315
+ }
316
+ /** Merge remote snapshot data into local data.
317
+ * Strategy: deduplicate by stable key, prefer newer timestamps, higher confidence. */
318
+ function mergeSnapshots(local, remote) {
319
+ let newPatterns = 0;
320
+ let conflictsResolved = 0;
321
+ // Merge arrays with dedup and conflict resolution
322
+ const mergedPatterns = mergeArrays(local.patterns, remote.data.patterns, remote.metadata, 'patterns', patternKey);
323
+ newPatterns += mergedPatterns.added;
324
+ conflictsResolved += mergedPatterns.conflicts;
325
+ const mergedSolutions = mergeArrays(local.solutions, remote.data.solutions, remote.metadata, 'solutions', solutionKey);
326
+ newPatterns += mergedSolutions.added;
327
+ conflictsResolved += mergedSolutions.conflicts;
328
+ const mergedRouting = mergeArrays(local.routing, remote.data.routing, remote.metadata, 'routing', routingKey);
329
+ conflictsResolved += mergedRouting.conflicts;
330
+ // Merge profile: deep-merge, prefer newer values
331
+ const mergedProfile = mergeProfile(local.profile, remote.data.profile);
332
+ // Merge memory: append unique sections from remote
333
+ const mergedMemory = mergeMemory(local.memory, remote.data.memory);
334
+ // Merge forge tools: deduplicate by name, prefer newer version
335
+ const mergedForge = mergeForgeTools(local.forge, remote.data.forge);
336
+ newPatterns += mergedForge.added;
337
+ return {
338
+ merged: {
339
+ patterns: mergedPatterns.result,
340
+ solutions: mergedSolutions.result,
341
+ profile: mergedProfile,
342
+ routing: mergedRouting.result,
343
+ memory: mergedMemory,
344
+ forge: mergedForge.result,
345
+ },
346
+ newPatterns,
347
+ conflictsResolved,
348
+ };
349
+ }
350
+ /** Merge two arrays with dedup, using a key function for identity. */
351
+ function mergeArrays(localArr, remoteArr, remoteMeta, prefix, keyFn) {
352
+ const localMap = new Map();
353
+ for (const item of localArr) {
354
+ localMap.set(keyFn(item), item);
355
+ }
356
+ let added = 0;
357
+ let conflicts = 0;
358
+ for (let i = 0; i < remoteArr.length; i++) {
359
+ const remoteItem = remoteArr[i];
360
+ const key = keyFn(remoteItem);
361
+ const localItem = localMap.get(key);
362
+ if (!localItem) {
363
+ // New entry from remote
364
+ localMap.set(key, remoteItem);
365
+ added++;
366
+ }
367
+ else {
368
+ // Conflict — resolve by timestamp then confidence
369
+ const meta = remoteMeta[`${prefix}:${i}`];
370
+ if (meta && shouldPreferRemote(localItem, remoteItem, meta)) {
371
+ localMap.set(key, remoteItem);
372
+ conflicts++;
373
+ }
374
+ }
375
+ }
376
+ return { result: Array.from(localMap.values()), added, conflicts };
377
+ }
378
+ /** Decide whether remote entry should replace local entry */
379
+ function shouldPreferRemote(local, _remote, remoteMeta) {
380
+ const localRecord = local;
381
+ const localTime = typeof localRecord.updatedAt === 'string'
382
+ ? new Date(localRecord.updatedAt).getTime()
383
+ : 0;
384
+ const remoteTime = new Date(remoteMeta.updatedAt).getTime();
385
+ // Prefer newer timestamp
386
+ if (remoteTime > localTime)
387
+ return true;
388
+ if (remoteTime < localTime)
389
+ return false;
390
+ // Same timestamp — prefer higher confidence
391
+ const localConf = typeof localRecord.confidence === 'number' ? localRecord.confidence : 0;
392
+ const localSuccess = typeof localRecord.successRate === 'number' ? localRecord.successRate : 0;
393
+ const remoteConf = remoteMeta.confidence ?? 0;
394
+ return remoteConf > Math.max(localConf, localSuccess);
395
+ }
396
+ /** Merge two profiles by preferring non-empty, newer values */
397
+ function mergeProfile(local, remote) {
398
+ const merged = { ...local };
399
+ for (const [key, value] of Object.entries(remote)) {
400
+ if (value === null || value === undefined)
401
+ continue;
402
+ if (!(key in merged) || merged[key] === null || merged[key] === undefined) {
403
+ // Local is empty — take remote
404
+ merged[key] = value;
405
+ }
406
+ // If both have values, keep local (local-first philosophy)
407
+ }
408
+ return merged;
409
+ }
410
+ /** Merge memory markdown: append unique date-sections from remote */
411
+ function mergeMemory(local, remote) {
412
+ if (!remote.trim())
413
+ return local;
414
+ if (!local.trim())
415
+ return remote;
416
+ // Extract date sections (## YYYY-MM-DD)
417
+ const localSections = new Set();
418
+ const dateRegex = /^## (\d{4}-\d{2}-\d{2})$/gm;
419
+ let match;
420
+ match = dateRegex.exec(local);
421
+ while (match !== null) {
422
+ localSections.add(match[1]);
423
+ match = dateRegex.exec(local);
424
+ }
425
+ // Find remote sections not in local
426
+ const remoteLines = remote.split('\n');
427
+ const newSections = [];
428
+ let inNewSection = false;
429
+ let currentSection = [];
430
+ for (const line of remoteLines) {
431
+ const dateMatch = /^## (\d{4}-\d{2}-\d{2})$/.exec(line);
432
+ if (dateMatch) {
433
+ // Flush previous section if it was new
434
+ if (inNewSection && currentSection.length > 0) {
435
+ newSections.push(currentSection.join('\n'));
436
+ }
437
+ inNewSection = !localSections.has(dateMatch[1]);
438
+ currentSection = inNewSection ? [line] : [];
439
+ }
440
+ else if (inNewSection) {
441
+ currentSection.push(line);
442
+ }
443
+ }
444
+ // Flush last section
445
+ if (inNewSection && currentSection.length > 0) {
446
+ newSections.push(currentSection.join('\n'));
447
+ }
448
+ if (newSections.length === 0)
449
+ return local;
450
+ return local.trimEnd() + '\n' + newSections.join('\n');
451
+ }
452
+ /** Merge forge tool lists: deduplicate by name, prefer newer version */
453
+ function mergeForgeTools(local, remote) {
454
+ const localMap = new Map();
455
+ for (const tool of local) {
456
+ const t = tool;
457
+ if (typeof t.name === 'string') {
458
+ localMap.set(t.name, tool);
459
+ }
460
+ }
461
+ let added = 0;
462
+ for (const tool of remote) {
463
+ const t = tool;
464
+ if (typeof t.name !== 'string')
465
+ continue;
466
+ const existing = localMap.get(t.name);
467
+ if (!existing) {
468
+ localMap.set(t.name, tool);
469
+ added++;
470
+ }
471
+ else {
472
+ // Prefer newer version or newer creation date
473
+ const localVersion = typeof existing.version === 'string' ? existing.version : '0.0.0';
474
+ const remoteVersion = typeof t.version === 'string' ? t.version : '0.0.0';
475
+ if (remoteVersion > localVersion) {
476
+ localMap.set(t.name, tool);
477
+ }
478
+ }
479
+ }
480
+ return { result: Array.from(localMap.values()), added };
481
+ }
482
+ // ── Key Functions for Dedup ──
483
+ function patternKey(item) {
484
+ const p = item;
485
+ const intent = typeof p.intent === 'string' ? p.intent : '';
486
+ const tools = Array.isArray(p.toolSequence) ? p.toolSequence.sort().join(',') : '';
487
+ const keywords = Array.isArray(p.keywords) ? p.keywords.sort().join(',') : '';
488
+ return `pattern:${intent}:${tools}:${keywords}`;
489
+ }
490
+ function solutionKey(item) {
491
+ const s = item;
492
+ const problem = typeof s.problem === 'string' ? s.problem : '';
493
+ const approach = typeof s.approach === 'string' ? s.approach : '';
494
+ return `solution:${problem}:${approach}`;
495
+ }
496
+ function routingKey(item) {
497
+ const r = item;
498
+ const pattern = typeof r.pattern === 'string' ? r.pattern : '';
499
+ const agent = typeof r.agent === 'string' ? r.agent : '';
500
+ return `routing:${pattern}:${agent}`;
501
+ }
502
+ // ── Write Back ──
503
+ /** Write merged data back to local ~/.kbot/ files */
504
+ function writeLocalData(data) {
505
+ ensureDir(MEMORY_DIR);
506
+ ensureDir(FORGE_DIR);
507
+ // Write JSON data files
508
+ if (data.patterns.length > 0) {
509
+ saveJSON(join(MEMORY_DIR, 'patterns.json'), data.patterns);
510
+ }
511
+ if (data.solutions.length > 0) {
512
+ saveJSON(join(MEMORY_DIR, 'solutions.json'), data.solutions);
513
+ }
514
+ if (Object.keys(data.profile).length > 0) {
515
+ saveJSON(join(MEMORY_DIR, 'profile.json'), data.profile);
516
+ }
517
+ if (data.routing.length > 0) {
518
+ saveJSON(join(MEMORY_DIR, 'routing.json'), data.routing);
519
+ }
520
+ // Write memory markdown
521
+ if (data.memory.trim()) {
522
+ writeFileSync(join(MEMORY_DIR, 'context.md'), data.memory);
523
+ }
524
+ // Write forge tools — one file per tool
525
+ for (const tool of data.forge) {
526
+ const t = tool;
527
+ if (typeof t.name === 'string') {
528
+ writeFileSync(join(FORGE_DIR, `${t.name}.json`), JSON.stringify(tool, null, 2));
529
+ }
530
+ }
531
+ }
532
+ //# sourceMappingURL=cross-device-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-device-sync.js","sourceRoot":"","sources":["../src/cross-device-sync.ts"],"names":[],"mappings":"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"}