fivocell 8.12.0 → 8.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +568 -194
- package/dist/__tests__/cli-regression.test.js +2 -2
- package/dist/__tests__/cli-regression.test.js.map +1 -1
- package/dist/walls/05-community/share/cloud-connector.d.ts +90 -0
- package/dist/walls/05-community/share/cloud-connector.d.ts.map +1 -1
- package/dist/walls/05-community/share/cloud-connector.js +531 -0
- package/dist/walls/05-community/share/cloud-connector.js.map +1 -1
- package/dist/walls/07-runtime/cli/cli.js +3 -0
- package/dist/walls/07-runtime/cli/cli.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/cloud.d.ts.map +1 -1
- package/dist/walls/07-runtime/cli/commands/cloud.js +102 -10
- package/dist/walls/07-runtime/cli/commands/cloud.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/help.d.ts +1 -0
- package/dist/walls/07-runtime/cli/commands/help.d.ts.map +1 -1
- package/dist/walls/07-runtime/cli/commands/help.js +111 -90
- package/dist/walls/07-runtime/cli/commands/help.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/setup.d.ts.map +1 -1
- package/dist/walls/07-runtime/cli/commands/setup.js +40 -32
- package/dist/walls/07-runtime/cli/commands/setup.js.map +1 -1
- package/package.json +10 -1
- package/scripts/check-db.js +21 -0
- package/scripts/start-mcp.js +2 -0
|
@@ -37,6 +37,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
37
37
|
};
|
|
38
38
|
})();
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.SYNC_CATEGORY_LABELS = void 0;
|
|
40
41
|
exports.loadConfig = loadConfig;
|
|
41
42
|
exports.saveConfig = saveConfig;
|
|
42
43
|
exports.deleteConfig = deleteConfig;
|
|
@@ -51,6 +52,22 @@ exports.cloudStatus = cloudStatus;
|
|
|
51
52
|
exports.getLocalPacks = getLocalPacks;
|
|
52
53
|
exports.getPackById = getPackById;
|
|
53
54
|
exports.cloudHealthCheck = cloudHealthCheck;
|
|
55
|
+
exports.loadSyncScope = loadSyncScope;
|
|
56
|
+
exports.saveSyncScope = saveSyncScope;
|
|
57
|
+
exports.getSyncScopeEntry = getSyncScopeEntry;
|
|
58
|
+
exports.setSyncScopeEntry = setSyncScopeEntry;
|
|
59
|
+
exports.canSyncPersonal = canSyncPersonal;
|
|
60
|
+
exports.canSyncTeam = canSyncTeam;
|
|
61
|
+
exports.canSyncCommunity = canSyncCommunity;
|
|
62
|
+
exports.redactSensitiveData = redactSensitiveData;
|
|
63
|
+
exports.redactObject = redactObject;
|
|
64
|
+
exports.getJwt = getJwt;
|
|
65
|
+
exports.getOrCreateDeviceRegistration = getOrCreateDeviceRegistration;
|
|
66
|
+
exports.registerDevice = registerDevice;
|
|
67
|
+
exports.cloudPushHandoff = cloudPushHandoff;
|
|
68
|
+
exports.syncHandoffs = syncHandoffs;
|
|
69
|
+
exports.cloudPushScoped = cloudPushScoped;
|
|
70
|
+
exports.cloudLoginWithRegistration = cloudLoginWithRegistration;
|
|
54
71
|
const crypto = __importStar(require("crypto"));
|
|
55
72
|
const fs = __importStar(require("fs"));
|
|
56
73
|
const path = __importStar(require("path"));
|
|
@@ -468,4 +485,518 @@ async function cloudHealthCheck(config) {
|
|
|
468
485
|
return false;
|
|
469
486
|
}
|
|
470
487
|
}
|
|
488
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
489
|
+
// PHASE 2: OPT-IN SYNC SCOPE + PRIVACY REDACTOR + JWT REFRESH + HANDOFF
|
|
490
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
491
|
+
// ── Sync Scope Config ───────────────────────────────────────────────────────
|
|
492
|
+
const SYNC_SCOPE_PATH = path.join(os.homedir(), '.fivo', 'cell', 'sync-scope.json');
|
|
493
|
+
const DEFAULT_SYNC_SCOPES = [
|
|
494
|
+
{ category: 'vibe', enabled: true, scopes: ['personal'] },
|
|
495
|
+
{ category: 'patterns', enabled: true, scopes: ['personal'] },
|
|
496
|
+
{ category: 'memory', enabled: true, scopes: ['personal'] },
|
|
497
|
+
{ category: 'sessions', enabled: true, scopes: ['personal'] },
|
|
498
|
+
{ category: 'handoffs', enabled: true, scopes: ['personal'] },
|
|
499
|
+
{ category: 'profile', enabled: true, scopes: ['personal'] },
|
|
500
|
+
];
|
|
501
|
+
/** Category labels for CLI display */
|
|
502
|
+
exports.SYNC_CATEGORY_LABELS = {
|
|
503
|
+
vibe: 'Vibe (personality, tone, style)',
|
|
504
|
+
patterns: 'Code patterns, workflow preferences',
|
|
505
|
+
memory: 'Important events, milestones',
|
|
506
|
+
sessions: 'AI session summaries',
|
|
507
|
+
handoffs: 'AI-to-AI handoff context',
|
|
508
|
+
profile: 'Profile identity (language, framework)',
|
|
509
|
+
};
|
|
510
|
+
/** Load sync scope config from ~/.fivo/cell/sync-scope.json.
|
|
511
|
+
* Returns defaults if no config exists, preserving any existing selections. */
|
|
512
|
+
function loadSyncScope() {
|
|
513
|
+
try {
|
|
514
|
+
if (fs.existsSync(SYNC_SCOPE_PATH)) {
|
|
515
|
+
const raw = JSON.parse(fs.readFileSync(SYNC_SCOPE_PATH, 'utf-8'));
|
|
516
|
+
if (raw.version === 1 && Array.isArray(raw.selections) && raw.selections.length > 0) {
|
|
517
|
+
return raw;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
catch { }
|
|
522
|
+
// Return defaults
|
|
523
|
+
return { version: 1, selections: DEFAULT_SYNC_SCOPES, updatedAt: new Date().toISOString() };
|
|
524
|
+
}
|
|
525
|
+
/** Save sync scope config */
|
|
526
|
+
function saveSyncScope(scope) {
|
|
527
|
+
try {
|
|
528
|
+
const dir = path.dirname(SYNC_SCOPE_PATH);
|
|
529
|
+
if (!fs.existsSync(dir))
|
|
530
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
531
|
+
scope.updatedAt = new Date().toISOString();
|
|
532
|
+
// Atomic write
|
|
533
|
+
const tmp = SYNC_SCOPE_PATH + '.tmp';
|
|
534
|
+
fs.writeFileSync(tmp, JSON.stringify(scope, null, 2), 'utf-8');
|
|
535
|
+
fs.renameSync(tmp, SYNC_SCOPE_PATH);
|
|
536
|
+
try {
|
|
537
|
+
fs.chmodSync(SYNC_SCOPE_PATH, 0o600);
|
|
538
|
+
}
|
|
539
|
+
catch { }
|
|
540
|
+
}
|
|
541
|
+
catch { }
|
|
542
|
+
}
|
|
543
|
+
/** Get a specific category entry from scope config */
|
|
544
|
+
function getSyncScopeEntry(category) {
|
|
545
|
+
const scope = loadSyncScope();
|
|
546
|
+
const entry = scope.selections.find(s => s.category === category);
|
|
547
|
+
return entry || { category, enabled: true, scopes: ['personal'] };
|
|
548
|
+
}
|
|
549
|
+
/** Update a specific category entry */
|
|
550
|
+
function setSyncScopeEntry(category, enabled, scopes) {
|
|
551
|
+
const scope = loadSyncScope();
|
|
552
|
+
const idx = scope.selections.findIndex(s => s.category === category);
|
|
553
|
+
if (idx >= 0) {
|
|
554
|
+
scope.selections[idx] = { category, enabled, scopes };
|
|
555
|
+
}
|
|
556
|
+
else {
|
|
557
|
+
scope.selections.push({ category, enabled, scopes });
|
|
558
|
+
}
|
|
559
|
+
saveSyncScope(scope);
|
|
560
|
+
}
|
|
561
|
+
/** Check if a category can sync to personal scope */
|
|
562
|
+
function canSyncPersonal(category) {
|
|
563
|
+
const entry = getSyncScopeEntry(category);
|
|
564
|
+
return entry.enabled && entry.scopes.includes('personal');
|
|
565
|
+
}
|
|
566
|
+
/** Check if a category can sync to team scope */
|
|
567
|
+
function canSyncTeam(category) {
|
|
568
|
+
const entry = getSyncScopeEntry(category);
|
|
569
|
+
return entry.enabled && entry.scopes.includes('team');
|
|
570
|
+
}
|
|
571
|
+
/** Check if a category can sync to community scope (only vibe + patterns) */
|
|
572
|
+
function canSyncCommunity(category) {
|
|
573
|
+
if (category !== 'vibe' && category !== 'patterns')
|
|
574
|
+
return false;
|
|
575
|
+
const entry = getSyncScopeEntry(category);
|
|
576
|
+
return entry.enabled && entry.scopes.includes('community');
|
|
577
|
+
}
|
|
578
|
+
// ── Privacy Redactor (13+ Secret Patterns) ─────────────────────────────────
|
|
579
|
+
/** 13+ forbidden pattern types caught before any cloud sync.
|
|
580
|
+
* These patterns strip anything that could expose secrets, paths, or PII. */
|
|
581
|
+
const REDACTOR_PATTERNS = [
|
|
582
|
+
// 1. API keys & tokens (sk-..., fv_..., GitHub PATs)
|
|
583
|
+
{ name: 'api_key', regex: /['"]?(?:sk|fk|pk|tk|ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9]{20,}['"]?/g },
|
|
584
|
+
// 2. AWS / cloud credentials
|
|
585
|
+
{ name: 'aws_key', regex: /(?:AKIA|ASIA)[A-Z0-9]{16}/g },
|
|
586
|
+
// 3. Private keys (RSA, EC, OPENSSH)
|
|
587
|
+
{ name: 'private_key', regex: /-----BEGIN\s+(?:RSA\s+)?(?:EC\s+)?PRIVATE\s+KEY-----[\s\S]*?-----END\s+(?:RSA\s+)?(?:EC\s+)?PRIVATE\s+KEY-----/g },
|
|
588
|
+
// 4. Connection strings (mongodb+srv://, postgres://, mysql://)
|
|
589
|
+
{ name: 'conn_string', regex: /(?:mongodb\+srv|postgres|mysql|redis):\/\/[^\s'"]+/g },
|
|
590
|
+
// 5. Environment variables with secrets
|
|
591
|
+
{ name: 'env_secret', regex: /(?:DATABASE_URL|API_KEY|SECRET_KEY|PRIVATE_KEY|ACCESS_TOKEN|SESSION_SECRET)\s*[:=]\s*['"][^'"]+['"]/gi },
|
|
592
|
+
// 6. File system paths (absolute) — Windows \path\to\file and Unix /path/to/file
|
|
593
|
+
{ name: 'abs_path', regex: new RegExp('(?:[A-Za-z]:\\\\[^\\s,;"]+|\\/[a-z][^\\s,;"]+)', 'g') },
|
|
594
|
+
// 7. Email addresses
|
|
595
|
+
{ name: 'email', regex: /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g },
|
|
596
|
+
// 8. IP addresses (private range)
|
|
597
|
+
{ name: 'ip_addr', regex: /\b(?:10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(?:1[6-9]|2\d|3[01])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3})\b/g },
|
|
598
|
+
// 9. Hostnames and server names
|
|
599
|
+
{ name: 'hostname', regex: /\b(?:localhost|staging|production|prod|dev|test)\.(?:com|io|app|local|dev|net|org)\b/g },
|
|
600
|
+
// 10. Password / secret fields in JSON
|
|
601
|
+
{ name: 'password_field', regex: /['"]password['"]\s*[:=]\s*['"][^'"]+['"]/gi },
|
|
602
|
+
// 11. Authorization headers / bearer tokens
|
|
603
|
+
{ name: 'auth_header', regex: /(?:Authorization|Bearer|Basic)\s*:\s*[A-Za-z0-9+/=._-]{20,}/g },
|
|
604
|
+
// 12. JWT tokens
|
|
605
|
+
{ name: 'jwt_token', regex: /eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}/g },
|
|
606
|
+
// 13. npm / .npmrc auth tokens
|
|
607
|
+
{ name: 'npm_token', regex: /\/\/registry\.npmjs\.org\/:_authToken=[A-Za-z0-9-]{20,}/g },
|
|
608
|
+
// 14. CommandCode config paths
|
|
609
|
+
{ name: 'config_path', regex: /~\/\.(?:commandcode|fivo|config|ssh|aws|azure|gcloud)/g },
|
|
610
|
+
// 15. Project/file names with sensitive context (e.g., "company-project", "payment-service")
|
|
611
|
+
{ name: 'project_name', regex: /(?:company|payment|billing|auth|admin|finance|customer|invoice|secret|proprietary)[-_][a-z]+/gi },
|
|
612
|
+
];
|
|
613
|
+
/** Redact any secret/confidential data from a string.
|
|
614
|
+
* Replaces matched patterns with '[REDACTED]' and returns the result. */
|
|
615
|
+
function redactSensitiveData(input) {
|
|
616
|
+
let data = input;
|
|
617
|
+
const blockedPatterns = [];
|
|
618
|
+
for (const { name, regex } of REDACTOR_PATTERNS) {
|
|
619
|
+
if (regex.test(data)) {
|
|
620
|
+
blockedPatterns.push(name);
|
|
621
|
+
data = data.replace(regex, `[REDACTED:${name}]`);
|
|
622
|
+
}
|
|
623
|
+
// Reset regex state
|
|
624
|
+
regex.lastIndex = 0;
|
|
625
|
+
}
|
|
626
|
+
return {
|
|
627
|
+
safe: blockedPatterns.length === 0,
|
|
628
|
+
redacted: blockedPatterns.length > 0,
|
|
629
|
+
blockedPatterns,
|
|
630
|
+
data,
|
|
631
|
+
};
|
|
632
|
+
}
|
|
633
|
+
/** Deep-redact an object before cloud push.
|
|
634
|
+
* Returns a new object with all sensitive fields stripped/redacted. */
|
|
635
|
+
function redactObject(obj) {
|
|
636
|
+
const serialized = JSON.stringify(obj);
|
|
637
|
+
const result = redactSensitiveData(serialized);
|
|
638
|
+
if (result.redacted) {
|
|
639
|
+
return JSON.parse(result.data);
|
|
640
|
+
}
|
|
641
|
+
return { ...obj };
|
|
642
|
+
}
|
|
643
|
+
// ── JWT Session Management ─────────────────────────────────────────────────
|
|
644
|
+
const JWT_SESSION_PATH = path.join(os.homedir(), '.fivo', 'cell', 'jwt-session.json');
|
|
645
|
+
function loadJwtSession() {
|
|
646
|
+
try {
|
|
647
|
+
if (fs.existsSync(JWT_SESSION_PATH)) {
|
|
648
|
+
return JSON.parse(fs.readFileSync(JWT_SESSION_PATH, 'utf-8'));
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
catch { }
|
|
652
|
+
return null;
|
|
653
|
+
}
|
|
654
|
+
function saveJwtSession(session) {
|
|
655
|
+
try {
|
|
656
|
+
const dir = path.dirname(JWT_SESSION_PATH);
|
|
657
|
+
if (!fs.existsSync(dir))
|
|
658
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
659
|
+
const tmp = JWT_SESSION_PATH + '.tmp';
|
|
660
|
+
fs.writeFileSync(tmp, JSON.stringify(session, null, 2), 'utf-8');
|
|
661
|
+
fs.renameSync(tmp, JWT_SESSION_PATH);
|
|
662
|
+
try {
|
|
663
|
+
fs.chmodSync(JWT_SESSION_PATH, 0o600);
|
|
664
|
+
}
|
|
665
|
+
catch { }
|
|
666
|
+
}
|
|
667
|
+
catch { }
|
|
668
|
+
}
|
|
669
|
+
function isJwtExpired(session) {
|
|
670
|
+
return Date.now() >= session.expiresAt - 300_000; // 5 min grace period
|
|
671
|
+
}
|
|
672
|
+
async function refreshJwt(config, session) {
|
|
673
|
+
try {
|
|
674
|
+
const result = await cloudPost(config, '/auth/oss/refresh', {
|
|
675
|
+
deviceId: session.deviceId,
|
|
676
|
+
refreshToken: session.refreshToken || session.token,
|
|
677
|
+
});
|
|
678
|
+
const newToken = (result.token || result.jwt);
|
|
679
|
+
const expiresIn = result.expiresIn || 3600;
|
|
680
|
+
if (newToken) {
|
|
681
|
+
const newSession = {
|
|
682
|
+
token: newToken,
|
|
683
|
+
deviceId: session.deviceId,
|
|
684
|
+
expiresAt: Date.now() + (expiresIn * 1000),
|
|
685
|
+
refreshToken: session.refreshToken,
|
|
686
|
+
};
|
|
687
|
+
saveJwtSession(newSession);
|
|
688
|
+
return newSession;
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
catch { }
|
|
692
|
+
return null;
|
|
693
|
+
}
|
|
694
|
+
/** Get a fresh JWT — auto-refreshes if expired */
|
|
695
|
+
async function getJwt(config) {
|
|
696
|
+
const session = loadJwtSession();
|
|
697
|
+
if (session && !isJwtExpired(session)) {
|
|
698
|
+
return session.token;
|
|
699
|
+
}
|
|
700
|
+
if (session && isJwtExpired(session)) {
|
|
701
|
+
const refreshed = await refreshJwt(config, session);
|
|
702
|
+
if (refreshed)
|
|
703
|
+
return refreshed.token;
|
|
704
|
+
}
|
|
705
|
+
// Fallback: try login again using API key
|
|
706
|
+
const verify = await cloudVerify(config);
|
|
707
|
+
if (verify) {
|
|
708
|
+
const newSession = {
|
|
709
|
+
token: config.apiKey,
|
|
710
|
+
deviceId: config.deviceId,
|
|
711
|
+
expiresAt: Date.now() + 3600_000, // 1 hour
|
|
712
|
+
};
|
|
713
|
+
saveJwtSession(newSession);
|
|
714
|
+
return config.apiKey;
|
|
715
|
+
}
|
|
716
|
+
throw new Error('Unable to refresh JWT. Run `cell cloud login` again.');
|
|
717
|
+
}
|
|
718
|
+
// ── Rate Limit Backoff ─────────────────────────────────────────────────────
|
|
719
|
+
const RATE_LIMIT_WAIT = 60000; // 1 minute default
|
|
720
|
+
const MAX_BACKOFF = 300_000; // 5 minutes max
|
|
721
|
+
async function fetchWithRetry(url, options, retries = 3) {
|
|
722
|
+
let attempt = 0;
|
|
723
|
+
while (attempt <= retries) {
|
|
724
|
+
try {
|
|
725
|
+
const response = await fetch(url, { ...options, signal: AbortSignal.timeout(15000) });
|
|
726
|
+
if (response.status === 429) {
|
|
727
|
+
const retryAfter = parseInt(response.headers.get('retry-after') || '60', 10) * 1000;
|
|
728
|
+
const wait = Math.min(retryAfter, MAX_BACKOFF);
|
|
729
|
+
console.error(` ⏳ Rate limited. Retrying in ${Math.round(wait / 1000)}s...`);
|
|
730
|
+
await new Promise(r => setTimeout(r, wait));
|
|
731
|
+
attempt++;
|
|
732
|
+
continue;
|
|
733
|
+
}
|
|
734
|
+
return response;
|
|
735
|
+
}
|
|
736
|
+
catch (err) {
|
|
737
|
+
if (attempt < retries) {
|
|
738
|
+
const wait = Math.min(1000 * Math.pow(2, attempt), MAX_BACKOFF);
|
|
739
|
+
await new Promise(r => setTimeout(r, wait));
|
|
740
|
+
attempt++;
|
|
741
|
+
continue;
|
|
742
|
+
}
|
|
743
|
+
throw err;
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
throw new Error(`Request failed after ${retries + 1} attempts`);
|
|
747
|
+
}
|
|
748
|
+
// Re-export fetch functions with retry
|
|
749
|
+
async function cloudPostRetry(config, endpoint, body) {
|
|
750
|
+
const url = apiUrl(config, endpoint);
|
|
751
|
+
const data = JSON.stringify(body);
|
|
752
|
+
const response = await fetchWithRetry(url, {
|
|
753
|
+
method: 'POST',
|
|
754
|
+
headers: {
|
|
755
|
+
'Authorization': `Bearer ${await getJwt(config)}`,
|
|
756
|
+
'Content-Type': 'application/json',
|
|
757
|
+
'X-Device-Id': config.deviceId,
|
|
758
|
+
},
|
|
759
|
+
body: data,
|
|
760
|
+
});
|
|
761
|
+
if (!response.ok) {
|
|
762
|
+
const text = await response.text();
|
|
763
|
+
throw new Error(`Cloud API error ${response.status}: ${text.substring(0, 100)}`);
|
|
764
|
+
}
|
|
765
|
+
return response.json();
|
|
766
|
+
}
|
|
767
|
+
async function cloudGetRetry(config, endpoint) {
|
|
768
|
+
const url = apiUrl(config, endpoint);
|
|
769
|
+
const response = await fetchWithRetry(url, {
|
|
770
|
+
method: 'GET',
|
|
771
|
+
headers: {
|
|
772
|
+
'Authorization': `Bearer ${await getJwt(config)}`,
|
|
773
|
+
'X-Device-Id': config.deviceId,
|
|
774
|
+
},
|
|
775
|
+
});
|
|
776
|
+
if (!response.ok) {
|
|
777
|
+
const text = await response.text();
|
|
778
|
+
throw new Error(`Cloud API error ${response.status}: ${text.substring(0, 100)}`);
|
|
779
|
+
}
|
|
780
|
+
return response.json();
|
|
781
|
+
}
|
|
782
|
+
// ── Device Registration ────────────────────────────────────────────────────
|
|
783
|
+
const DEVICE_REG_PATH = path.join(os.homedir(), '.fivo', 'cell', 'device.json');
|
|
784
|
+
function getOrCreateDeviceRegistration() {
|
|
785
|
+
try {
|
|
786
|
+
if (fs.existsSync(DEVICE_REG_PATH)) {
|
|
787
|
+
return JSON.parse(fs.readFileSync(DEVICE_REG_PATH, 'utf-8'));
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
catch { }
|
|
791
|
+
const reg = {
|
|
792
|
+
deviceId: getDeviceId(),
|
|
793
|
+
name: os.hostname(),
|
|
794
|
+
platform: `${os.platform()}-${os.arch()}`,
|
|
795
|
+
ossVersion: '8.12.0',
|
|
796
|
+
registeredAt: Date.now(),
|
|
797
|
+
};
|
|
798
|
+
try {
|
|
799
|
+
const dir = path.dirname(DEVICE_REG_PATH);
|
|
800
|
+
if (!fs.existsSync(dir))
|
|
801
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
802
|
+
fs.writeFileSync(DEVICE_REG_PATH, JSON.stringify(reg, null, 2), 'utf-8');
|
|
803
|
+
try {
|
|
804
|
+
fs.chmodSync(DEVICE_REG_PATH, 0o600);
|
|
805
|
+
}
|
|
806
|
+
catch { }
|
|
807
|
+
}
|
|
808
|
+
catch { }
|
|
809
|
+
return reg;
|
|
810
|
+
}
|
|
811
|
+
/** Register device with cloud server. Non-fatal — best effort. */
|
|
812
|
+
async function registerDevice(config) {
|
|
813
|
+
try {
|
|
814
|
+
const reg = getOrCreateDeviceRegistration();
|
|
815
|
+
await cloudPostRetry(config, '/auth/oss/connect', {
|
|
816
|
+
deviceId: reg.deviceId,
|
|
817
|
+
name: reg.name,
|
|
818
|
+
platform: reg.platform,
|
|
819
|
+
ossVersion: reg.ossVersion,
|
|
820
|
+
});
|
|
821
|
+
return true;
|
|
822
|
+
}
|
|
823
|
+
catch {
|
|
824
|
+
return false;
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
// ── Handoff Push ───────────────────────────────────────────────────────────
|
|
828
|
+
/** Push an AI-to-AI handoff record to cloud.
|
|
829
|
+
* Only pushes if handoffs category has personal or team scope enabled.
|
|
830
|
+
* Returns false if scope blocks it. */
|
|
831
|
+
async function cloudPushHandoff(config, handoff) {
|
|
832
|
+
const entry = getSyncScopeEntry('handoffs');
|
|
833
|
+
if (!entry.enabled || !entry.scopes.includes('personal')) {
|
|
834
|
+
return false; // Scope blocks handoff sync
|
|
835
|
+
}
|
|
836
|
+
const redacted = redactObject(handoff);
|
|
837
|
+
try {
|
|
838
|
+
await cloudPostRetry(config, '/handoffs', redacted);
|
|
839
|
+
return true;
|
|
840
|
+
}
|
|
841
|
+
catch {
|
|
842
|
+
return false;
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
/** Push all pending handoffs from local DB to cloud.
|
|
846
|
+
* Called as part of cloud sync. */
|
|
847
|
+
async function syncHandoffs(config) {
|
|
848
|
+
const entry = getSyncScopeEntry('handoffs');
|
|
849
|
+
if (!entry.enabled || !entry.scopes.includes('personal'))
|
|
850
|
+
return 0;
|
|
851
|
+
let pushed = 0;
|
|
852
|
+
try {
|
|
853
|
+
const db = (0, database_1.getDb)();
|
|
854
|
+
const pending = db.prepare(`SELECT from_ai, to_ai, context_snapshot, session_id, device_id, ts
|
|
855
|
+
FROM handoffs WHERE synced = 0 OR synced IS NULL LIMIT 50`).all();
|
|
856
|
+
for (const h of pending) {
|
|
857
|
+
const handoff = {
|
|
858
|
+
fromAI: h.from_ai || 'unknown',
|
|
859
|
+
toAI: h.to_ai || 'unknown',
|
|
860
|
+
contextSnapshot: h.context_snapshot || '',
|
|
861
|
+
sessionId: h.session_id || '',
|
|
862
|
+
deviceId: h.device_id || config.deviceId,
|
|
863
|
+
ts: h.ts || Date.now(),
|
|
864
|
+
};
|
|
865
|
+
const ok = await cloudPushHandoff(config, handoff);
|
|
866
|
+
if (ok) {
|
|
867
|
+
db.prepare('UPDATE handoffs SET synced = 1 WHERE rowid = ?').run(h.rowid || h.session_id);
|
|
868
|
+
pushed++;
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
}
|
|
872
|
+
catch { }
|
|
873
|
+
return pushed;
|
|
874
|
+
}
|
|
875
|
+
// ── Scope-Aware Sync ───────────────────────────────────────────────────────
|
|
876
|
+
/** Enhanced cloudPush that respects sync scope + redaction.
|
|
877
|
+
* Pushes only categories user has opted into.
|
|
878
|
+
* Community scope = anonymized vibe + patterns only.
|
|
879
|
+
* Team scope = full categories to team endpoint.
|
|
880
|
+
* Personal scope = full categories to personal sync. */
|
|
881
|
+
async function cloudPushScoped(config) {
|
|
882
|
+
const warnings = [];
|
|
883
|
+
const personal = [];
|
|
884
|
+
const team = [];
|
|
885
|
+
const community = [];
|
|
886
|
+
const scope = loadSyncScope();
|
|
887
|
+
// Build intelligence bundle (already privacy-checked)
|
|
888
|
+
const { bundle, warnings: bw } = buildIntelligenceBundle(config);
|
|
889
|
+
warnings.push(...bw);
|
|
890
|
+
const { language, framework } = detectStack();
|
|
891
|
+
// ── 1. PERSONAL scope ─────────────────────────────────────────────
|
|
892
|
+
const personalCats = scope.selections.filter(s => s.enabled && s.scopes.includes('personal'));
|
|
893
|
+
if (personalCats.length > 0) {
|
|
894
|
+
try {
|
|
895
|
+
const patterns = bundle.anonymousSignals.map(s => ({
|
|
896
|
+
patternId: s.signal,
|
|
897
|
+
category: s.category,
|
|
898
|
+
confidence: s.confidence,
|
|
899
|
+
description: `signal from ${bundle.deviceId}`,
|
|
900
|
+
from: s.category,
|
|
901
|
+
to: s.signal,
|
|
902
|
+
signals: { positive: s.confidence, negative: 100 - s.confidence },
|
|
903
|
+
}));
|
|
904
|
+
await cloudPostRetry(config, '/sync/push', {
|
|
905
|
+
deviceId: config.deviceId,
|
|
906
|
+
teamId: config.teamId || null,
|
|
907
|
+
patterns,
|
|
908
|
+
signalCount: patterns.length,
|
|
909
|
+
language,
|
|
910
|
+
framework,
|
|
911
|
+
compressedAt: bundle.compressedAt,
|
|
912
|
+
categories: personalCats.map(c => c.category),
|
|
913
|
+
});
|
|
914
|
+
personal.push(...personalCats.map(c => c.category));
|
|
915
|
+
}
|
|
916
|
+
catch (e) {
|
|
917
|
+
warnings.push(`Personal sync failed: ${String(e).substring(0, 60)}`);
|
|
918
|
+
}
|
|
919
|
+
}
|
|
920
|
+
// ── 2. TEAM scope (only if teamId exists) ─────────────────────────
|
|
921
|
+
if (config.teamId) {
|
|
922
|
+
const teamCats = scope.selections.filter(s => s.enabled && s.scopes.includes('team'));
|
|
923
|
+
if (teamCats.length > 0) {
|
|
924
|
+
try {
|
|
925
|
+
// Team patterns — full context (team trust)
|
|
926
|
+
const teamPayload = {
|
|
927
|
+
teamId: config.teamId,
|
|
928
|
+
deviceId: config.deviceId,
|
|
929
|
+
patterns: bundle.anonymousSignals,
|
|
930
|
+
profile: bundle.profile,
|
|
931
|
+
memory: bundle.memorySummary.slice(0, 5),
|
|
932
|
+
categories: teamCats.map(c => c.category),
|
|
933
|
+
};
|
|
934
|
+
const redacted = redactObject(teamPayload);
|
|
935
|
+
await cloudPostRetry(config, `/team/patterns`, redacted);
|
|
936
|
+
team.push(...teamCats.map(c => c.category));
|
|
937
|
+
}
|
|
938
|
+
catch (e) {
|
|
939
|
+
warnings.push(`Team sync failed: ${String(e).substring(0, 60)}`);
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
// ── 3. COMMUNITY scope (anonymized — only vibe + patterns) ──────
|
|
944
|
+
const communityCats = scope.selections.filter(s => s.enabled && s.scopes.includes('community') && (s.category === 'vibe' || s.category === 'patterns'));
|
|
945
|
+
if (communityCats.length > 0) {
|
|
946
|
+
try {
|
|
947
|
+
// Only anonymous signals — NO memory, NO sessions, NO paths
|
|
948
|
+
for (const signal of bundle.anonymousSignals) {
|
|
949
|
+
const ingestPayload = {
|
|
950
|
+
category: signal.category,
|
|
951
|
+
language,
|
|
952
|
+
framework,
|
|
953
|
+
outcome: 'success',
|
|
954
|
+
confidence: signal.confidence / 100,
|
|
955
|
+
};
|
|
956
|
+
// Redact is extra safety — but anonymous signals already have no PII
|
|
957
|
+
const safe = redactObject(ingestPayload);
|
|
958
|
+
await cloudPostRetry(config, '/community/ingest', safe);
|
|
959
|
+
}
|
|
960
|
+
community.push('vibe', 'patterns');
|
|
961
|
+
}
|
|
962
|
+
catch (e) {
|
|
963
|
+
warnings.push(`Community sync failed: ${String(e).substring(0, 60)}`);
|
|
964
|
+
}
|
|
965
|
+
}
|
|
966
|
+
// ── 4. Handoffs ──────────────────────────────────────────────────
|
|
967
|
+
let handoffCount = 0;
|
|
968
|
+
try {
|
|
969
|
+
handoffCount = await syncHandoffs(config);
|
|
970
|
+
}
|
|
971
|
+
catch { }
|
|
972
|
+
// Update last sync
|
|
973
|
+
config.lastSync = new Date().toISOString();
|
|
974
|
+
saveConfig(config);
|
|
975
|
+
return {
|
|
976
|
+
pushed: personal.length > 0 || team.length > 0 || community.length > 0 || handoffCount > 0,
|
|
977
|
+
warnings,
|
|
978
|
+
personal,
|
|
979
|
+
team,
|
|
980
|
+
community,
|
|
981
|
+
handoffs: handoffCount,
|
|
982
|
+
};
|
|
983
|
+
}
|
|
984
|
+
// ── Device Registration on Login ───────────────────────────────────────────
|
|
985
|
+
/** Extended login with device registration + JWT session setup */
|
|
986
|
+
async function cloudLoginWithRegistration(email, password, cloudUrl) {
|
|
987
|
+
const config = await cloudLogin(email, password, cloudUrl);
|
|
988
|
+
// Register device (best-effort, non-fatal)
|
|
989
|
+
const deviceRegistered = await registerDevice(config);
|
|
990
|
+
if (!deviceRegistered) {
|
|
991
|
+
console.error(' ⚠ Device registration failed (non-fatal)');
|
|
992
|
+
}
|
|
993
|
+
// Setup JWT session
|
|
994
|
+
const jwtSession = {
|
|
995
|
+
token: config.apiKey,
|
|
996
|
+
deviceId: config.deviceId,
|
|
997
|
+
expiresAt: Date.now() + 3600_000, // 1 hour estimate
|
|
998
|
+
};
|
|
999
|
+
saveJwtSession(jwtSession);
|
|
1000
|
+
return config;
|
|
1001
|
+
}
|
|
471
1002
|
//# sourceMappingURL=cloud-connector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-connector.js","sourceRoot":"","sources":["../../../../src/walls/05-community/share/cloud-connector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cloud-connector.js","sourceRoot":"","sources":["../../../../src/walls/05-community/share/cloud-connector.ts"],"names":[],"mappings":"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"}
|