fivocell 6.3.0 → 7.1.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 (154) hide show
  1. package/README.md +194 -197
  2. package/dist/__tests__/cli-regression.test.js +1 -1
  3. package/dist/__tests__/cli-regression.test.js.map +1 -1
  4. package/dist/__tests__/teach-context.test.d.ts +2 -0
  5. package/dist/__tests__/teach-context.test.d.ts.map +1 -0
  6. package/dist/__tests__/teach-context.test.js +44 -0
  7. package/dist/__tests__/teach-context.test.js.map +1 -0
  8. package/dist/__tests__/teach-parser.test.d.ts +2 -0
  9. package/dist/__tests__/teach-parser.test.d.ts.map +1 -0
  10. package/dist/__tests__/teach-parser.test.js +56 -0
  11. package/dist/__tests__/teach-parser.test.js.map +1 -0
  12. package/dist/__tests__/teach-store.test.d.ts +2 -0
  13. package/dist/__tests__/teach-store.test.d.ts.map +1 -0
  14. package/dist/__tests__/teach-store.test.js +68 -0
  15. package/dist/__tests__/teach-store.test.js.map +1 -0
  16. package/dist/__tests__/vibe-engine.test.d.ts +2 -0
  17. package/dist/__tests__/vibe-engine.test.d.ts.map +1 -0
  18. package/dist/__tests__/vibe-engine.test.js +132 -0
  19. package/dist/__tests__/vibe-engine.test.js.map +1 -0
  20. package/dist/walls/01-context/context/agents-md.d.ts +1 -1
  21. package/dist/walls/01-context/context/agents-md.d.ts.map +1 -1
  22. package/dist/walls/01-context/context/agents-md.js +33 -1
  23. package/dist/walls/01-context/context/agents-md.js.map +1 -1
  24. package/dist/walls/01-context/context/context-bridge.d.ts +39 -0
  25. package/dist/walls/01-context/context/context-bridge.d.ts.map +1 -0
  26. package/dist/walls/01-context/context/context-bridge.js +224 -0
  27. package/dist/walls/01-context/context/context-bridge.js.map +1 -0
  28. package/dist/walls/01-context/context/context-continuity.d.ts +54 -0
  29. package/dist/walls/01-context/context/context-continuity.d.ts.map +1 -0
  30. package/dist/walls/01-context/context/context-continuity.js +350 -0
  31. package/dist/walls/01-context/context/context-continuity.js.map +1 -0
  32. package/dist/walls/01-context/context/context-predictor.d.ts +24 -0
  33. package/dist/walls/01-context/context/context-predictor.d.ts.map +1 -0
  34. package/dist/walls/01-context/context/context-predictor.js +322 -0
  35. package/dist/walls/01-context/context/context-predictor.js.map +1 -0
  36. package/dist/walls/01-context/context/prompt-builder.d.ts +1 -0
  37. package/dist/walls/01-context/context/prompt-builder.d.ts.map +1 -1
  38. package/dist/walls/01-context/context/prompt-builder.js +68 -1
  39. package/dist/walls/01-context/context/prompt-builder.js.map +1 -1
  40. package/dist/walls/01-context/sessions/session-memory.d.ts.map +1 -1
  41. package/dist/walls/01-context/sessions/session-memory.js +47 -1
  42. package/dist/walls/01-context/sessions/session-memory.js.map +1 -1
  43. package/dist/walls/04-team/collab/team-supreme.d.ts +70 -0
  44. package/dist/walls/04-team/collab/team-supreme.d.ts.map +1 -0
  45. package/dist/walls/04-team/collab/team-supreme.js +357 -0
  46. package/dist/walls/04-team/collab/team-supreme.js.map +1 -0
  47. package/dist/walls/05-community/share/cloud-connector.d.ts +83 -0
  48. package/dist/walls/05-community/share/cloud-connector.d.ts.map +1 -0
  49. package/dist/walls/05-community/share/cloud-connector.js +385 -0
  50. package/dist/walls/05-community/share/cloud-connector.js.map +1 -0
  51. package/dist/walls/05-community/stats/community-supreme.d.ts +83 -0
  52. package/dist/walls/05-community/stats/community-supreme.d.ts.map +1 -0
  53. package/dist/walls/05-community/stats/community-supreme.js +221 -0
  54. package/dist/walls/05-community/stats/community-supreme.js.map +1 -0
  55. package/dist/walls/06-memory/archive/blob-vault.d.ts.map +1 -1
  56. package/dist/walls/06-memory/archive/blob-vault.js +8 -9
  57. package/dist/walls/06-memory/archive/blob-vault.js.map +1 -1
  58. package/dist/walls/06-memory/archive/memory-archive.d.ts.map +1 -1
  59. package/dist/walls/06-memory/archive/memory-archive.js +32 -22
  60. package/dist/walls/06-memory/archive/memory-archive.js.map +1 -1
  61. package/dist/walls/06-memory/privacy/key-provider.d.ts +19 -0
  62. package/dist/walls/06-memory/privacy/key-provider.d.ts.map +1 -1
  63. package/dist/walls/06-memory/privacy/key-provider.js +52 -0
  64. package/dist/walls/06-memory/privacy/key-provider.js.map +1 -1
  65. package/dist/walls/06-memory/retrieval/context-pipeline.d.ts.map +1 -1
  66. package/dist/walls/06-memory/retrieval/context-pipeline.js +9 -0
  67. package/dist/walls/06-memory/retrieval/context-pipeline.js.map +1 -1
  68. package/dist/walls/06-memory/stores/sync-engine.d.ts.map +1 -1
  69. package/dist/walls/06-memory/stores/sync-engine.js +56 -49
  70. package/dist/walls/06-memory/stores/sync-engine.js.map +1 -1
  71. package/dist/walls/06-memory/teach/teach-context.d.ts +8 -0
  72. package/dist/walls/06-memory/teach/teach-context.d.ts.map +1 -0
  73. package/dist/walls/06-memory/teach/teach-context.js +25 -0
  74. package/dist/walls/06-memory/teach/teach-context.js.map +1 -0
  75. package/dist/walls/06-memory/teach/teach-parser.d.ts +6 -0
  76. package/dist/walls/06-memory/teach/teach-parser.d.ts.map +1 -0
  77. package/dist/walls/06-memory/teach/teach-parser.js +42 -0
  78. package/dist/walls/06-memory/teach/teach-parser.js.map +1 -0
  79. package/dist/walls/06-memory/teach/teach-sections.d.ts +10 -0
  80. package/dist/walls/06-memory/teach/teach-sections.d.ts.map +1 -0
  81. package/dist/walls/06-memory/teach/teach-sections.js +67 -0
  82. package/dist/walls/06-memory/teach/teach-sections.js.map +1 -0
  83. package/dist/walls/06-memory/teach/teach-store.d.ts +25 -0
  84. package/dist/walls/06-memory/teach/teach-store.d.ts.map +1 -0
  85. package/dist/walls/06-memory/teach/teach-store.js +95 -0
  86. package/dist/walls/06-memory/teach/teach-store.js.map +1 -0
  87. package/dist/walls/06-memory/vibe/vibe-cli.d.ts +2 -0
  88. package/dist/walls/06-memory/vibe/vibe-cli.d.ts.map +1 -0
  89. package/dist/walls/06-memory/vibe/vibe-cli.js +217 -0
  90. package/dist/walls/06-memory/vibe/vibe-cli.js.map +1 -0
  91. package/dist/walls/06-memory/vibe/vibe-confidence.d.ts +24 -0
  92. package/dist/walls/06-memory/vibe/vibe-confidence.d.ts.map +1 -0
  93. package/dist/walls/06-memory/vibe/vibe-confidence.js +91 -0
  94. package/dist/walls/06-memory/vibe/vibe-confidence.js.map +1 -0
  95. package/dist/walls/06-memory/vibe/vibe-context.d.ts +8 -0
  96. package/dist/walls/06-memory/vibe/vibe-context.d.ts.map +1 -0
  97. package/dist/walls/06-memory/vibe/vibe-context.js +88 -0
  98. package/dist/walls/06-memory/vibe/vibe-context.js.map +1 -0
  99. package/dist/walls/06-memory/vibe/vibe-engine.d.ts +45 -0
  100. package/dist/walls/06-memory/vibe/vibe-engine.d.ts.map +1 -0
  101. package/dist/walls/06-memory/vibe/vibe-engine.js +670 -0
  102. package/dist/walls/06-memory/vibe/vibe-engine.js.map +1 -0
  103. package/dist/walls/06-memory/vibe/vibe-intelligence.d.ts +19 -0
  104. package/dist/walls/06-memory/vibe/vibe-intelligence.d.ts.map +1 -0
  105. package/dist/walls/06-memory/vibe/vibe-intelligence.js +264 -0
  106. package/dist/walls/06-memory/vibe/vibe-intelligence.js.map +1 -0
  107. package/dist/walls/06-memory/vibe/vibe-signals.d.ts +27 -0
  108. package/dist/walls/06-memory/vibe/vibe-signals.d.ts.map +1 -0
  109. package/dist/walls/06-memory/vibe/vibe-signals.js +251 -0
  110. package/dist/walls/06-memory/vibe/vibe-signals.js.map +1 -0
  111. package/dist/walls/07-runtime/cli/cli.js +25 -0
  112. package/dist/walls/07-runtime/cli/cli.js.map +1 -1
  113. package/dist/walls/07-runtime/cli/commands/branch.js +6 -6
  114. package/dist/walls/07-runtime/cli/commands/branch.js.map +1 -1
  115. package/dist/walls/07-runtime/cli/commands/cloud.d.ts +3 -0
  116. package/dist/walls/07-runtime/cli/commands/cloud.d.ts.map +1 -0
  117. package/dist/walls/07-runtime/cli/commands/cloud.js +219 -0
  118. package/dist/walls/07-runtime/cli/commands/cloud.js.map +1 -0
  119. package/dist/walls/07-runtime/cli/commands/community.d.ts.map +1 -1
  120. package/dist/walls/07-runtime/cli/commands/community.js +6 -0
  121. package/dist/walls/07-runtime/cli/commands/community.js.map +1 -1
  122. package/dist/walls/07-runtime/cli/commands/help.d.ts.map +1 -1
  123. package/dist/walls/07-runtime/cli/commands/help.js +87 -77
  124. package/dist/walls/07-runtime/cli/commands/help.js.map +1 -1
  125. package/dist/walls/07-runtime/cli/commands/memory.js +5 -5
  126. package/dist/walls/07-runtime/cli/commands/memory.js.map +1 -1
  127. package/dist/walls/07-runtime/cli/commands/scan.d.ts.map +1 -1
  128. package/dist/walls/07-runtime/cli/commands/scan.js +39 -20
  129. package/dist/walls/07-runtime/cli/commands/scan.js.map +1 -1
  130. package/dist/walls/07-runtime/cli/commands/session.d.ts.map +1 -1
  131. package/dist/walls/07-runtime/cli/commands/session.js +2 -1
  132. package/dist/walls/07-runtime/cli/commands/session.js.map +1 -1
  133. package/dist/walls/07-runtime/cli/commands/setup.js +2 -2
  134. package/dist/walls/07-runtime/cli/commands/setup.js.map +1 -1
  135. package/dist/walls/07-runtime/cli/commands/status.js +7 -7
  136. package/dist/walls/07-runtime/cli/commands/status.js.map +1 -1
  137. package/dist/walls/07-runtime/cli/commands/sync.js +1 -1
  138. package/dist/walls/07-runtime/cli/commands/sync.js.map +1 -1
  139. package/dist/walls/07-runtime/cli/commands/teach.d.ts +3 -0
  140. package/dist/walls/07-runtime/cli/commands/teach.d.ts.map +1 -0
  141. package/dist/walls/07-runtime/cli/commands/teach.js +203 -0
  142. package/dist/walls/07-runtime/cli/commands/teach.js.map +1 -0
  143. package/dist/walls/07-runtime/cli/utils.js +2 -2
  144. package/dist/walls/07-runtime/daemon/lifecycle.d.ts.map +1 -1
  145. package/dist/walls/07-runtime/daemon/lifecycle.js +13 -1
  146. package/dist/walls/07-runtime/daemon/lifecycle.js.map +1 -1
  147. package/dist/walls/07-runtime/daemon/routes/session.d.ts.map +1 -1
  148. package/dist/walls/07-runtime/daemon/routes/session.js +4 -3
  149. package/dist/walls/07-runtime/daemon/routes/session.js.map +1 -1
  150. package/dist/walls/07-runtime/daemon/server.d.ts.map +1 -1
  151. package/dist/walls/07-runtime/daemon/server.js +3 -0
  152. package/dist/walls/07-runtime/daemon/server.js.map +1 -1
  153. package/package.json +1 -1
  154. package/scripts/deep-audit.js +103 -0
@@ -0,0 +1,385 @@
1
+ "use strict";
2
+ // cloud-connector.ts — Secure Cloud Bridge for Cell OSS
3
+ // Handles: auth, push/pull sync, community packs, privacy validation
4
+ // Additive layer — reads from existing DB & files, writes config only.
5
+ // Zero core modification. Cloud is optional — everything works without it.
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.loadConfig = loadConfig;
41
+ exports.saveConfig = saveConfig;
42
+ exports.deleteConfig = deleteConfig;
43
+ exports.getDeviceId = getDeviceId;
44
+ exports.cloudLogin = cloudLogin;
45
+ exports.cloudVerify = cloudVerify;
46
+ exports.buildIntelligenceBundle = buildIntelligenceBundle;
47
+ exports.compressBundle = compressBundle;
48
+ exports.cloudPush = cloudPush;
49
+ exports.cloudPull = cloudPull;
50
+ exports.cloudStatus = cloudStatus;
51
+ exports.getLocalPacks = getLocalPacks;
52
+ exports.getPackById = getPackById;
53
+ exports.cloudHealthCheck = cloudHealthCheck;
54
+ const crypto = __importStar(require("crypto"));
55
+ const fs = __importStar(require("fs"));
56
+ const path = __importStar(require("path"));
57
+ const os = __importStar(require("os"));
58
+ const database_1 = require("../../06-memory/database/database");
59
+ // ─── Config Management ──────────────────────────────────────────────────────
60
+ const CONFIG_PATH = path.join(os.homedir(), '.fivo', 'cell-cloud.json');
61
+ const COMMUNITY_PACKS_DIR = path.join(process.cwd(), '.cell', 'community', 'packs');
62
+ function ensureDir(p) {
63
+ if (!fs.existsSync(p))
64
+ fs.mkdirSync(p, { recursive: true });
65
+ }
66
+ function loadConfig() {
67
+ try {
68
+ if (!fs.existsSync(CONFIG_PATH))
69
+ return null;
70
+ const raw = fs.readFileSync(CONFIG_PATH, 'utf-8');
71
+ return JSON.parse(raw);
72
+ }
73
+ catch {
74
+ return null;
75
+ }
76
+ }
77
+ function saveConfig(config) {
78
+ ensureDir(path.dirname(CONFIG_PATH));
79
+ fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2), 'utf-8');
80
+ // Set restrictive permissions (Windows ignored, Unix respected)
81
+ try {
82
+ fs.chmodSync(CONFIG_PATH, 0o600);
83
+ }
84
+ catch { }
85
+ }
86
+ function deleteConfig() {
87
+ if (fs.existsSync(CONFIG_PATH))
88
+ fs.unlinkSync(CONFIG_PATH);
89
+ }
90
+ function getDeviceId() {
91
+ try {
92
+ return crypto.createHash('sha256')
93
+ .update(os.hostname() + os.userInfo().username)
94
+ .digest('hex').substring(0, 12);
95
+ }
96
+ catch {
97
+ return crypto.randomBytes(6).toString('hex');
98
+ }
99
+ }
100
+ // ─── HTTP Client ────────────────────────────────────────────────────────────
101
+ function apiUrl(config, endpoint) {
102
+ const base = (config.cloudUrl || 'https://cell.fivo.live').replace(/\/$/, '');
103
+ return `${base}${endpoint}`;
104
+ }
105
+ async function cloudPost(config, endpoint, body) {
106
+ const url = apiUrl(config, endpoint);
107
+ const data = JSON.stringify(body);
108
+ const response = await fetch(url, {
109
+ method: 'POST',
110
+ headers: {
111
+ 'Authorization': `Bearer ${config.apiKey}`,
112
+ 'Content-Type': 'application/json',
113
+ 'X-Device-Id': config.deviceId,
114
+ },
115
+ body: data,
116
+ signal: AbortSignal.timeout(15000),
117
+ });
118
+ if (!response.ok) {
119
+ const text = await response.text();
120
+ throw new Error(`Cloud API error ${response.status}: ${text.substring(0, 100)}`);
121
+ }
122
+ return response.json();
123
+ }
124
+ async function cloudGet(config, endpoint) {
125
+ const url = apiUrl(config, endpoint);
126
+ const response = await fetch(url, {
127
+ method: 'GET',
128
+ headers: {
129
+ 'Authorization': `Bearer ${config.apiKey}`,
130
+ 'X-Device-Id': config.deviceId,
131
+ },
132
+ signal: AbortSignal.timeout(15000),
133
+ });
134
+ if (!response.ok) {
135
+ const text = await response.text();
136
+ throw new Error(`Cloud API error ${response.status}: ${text.substring(0, 100)}`);
137
+ }
138
+ return response.json();
139
+ }
140
+ // ─── Auth ───────────────────────────────────────────────────────────────────
141
+ async function cloudLogin(email, password, cloudUrl) {
142
+ const deviceId = getDeviceId();
143
+ const base = (cloudUrl || 'https://cell.fivo.live').replace(/\/$/, '');
144
+ const url = `${base}/auth/login`;
145
+ const response = await fetch(url, {
146
+ method: 'POST',
147
+ headers: { 'Content-Type': 'application/json' },
148
+ body: JSON.stringify({ email, password, deviceId }),
149
+ signal: AbortSignal.timeout(15000),
150
+ });
151
+ if (!response.ok) {
152
+ const text = await response.text();
153
+ throw new Error(`Login failed: ${response.status} — ${text.substring(0, 100)}`);
154
+ }
155
+ const result = await response.json();
156
+ const apiKey = result.apiKey || result.api_key;
157
+ if (!apiKey)
158
+ throw new Error('No API key in response');
159
+ const config = {
160
+ apiKey,
161
+ deviceId,
162
+ email,
163
+ lastSync: '',
164
+ syncEnabled: true,
165
+ cloudUrl: base,
166
+ };
167
+ saveConfig(config);
168
+ return config;
169
+ }
170
+ async function cloudVerify(config) {
171
+ try {
172
+ const result = await cloudPost(config, '/auth/verify', { deviceId: config.deviceId });
173
+ return result.valid === true || result.status === 'active';
174
+ }
175
+ catch {
176
+ return false;
177
+ }
178
+ }
179
+ // ─── Privacy Validation ─────────────────────────────────────────────────────
180
+ const FORBIDDEN_PATTERNS = [
181
+ /['"]password['"]\s*[:=]/i,
182
+ /['"](?:sk-|fv_)?[A-Za-z0-9+/]{30,}['"]/,
183
+ /-----BEGIN (?:RSA |EC )?PRIVATE KEY-----/,
184
+ /mongodb\+srv:\/\/[^/\s]+/,
185
+ /postgres:\/\/[^:@]+:[^@]+@/,
186
+ /DATABASE_URL\s*=\s*['"][^'"]+['"]/i,
187
+ /API[_-]?KEY\s*=\s*['"][A-Za-z0-9]{20,}['"]/i,
188
+ ];
189
+ function validatePrivacy(data) {
190
+ const issues = [];
191
+ for (const pattern of FORBIDDEN_PATTERNS) {
192
+ if (pattern.test(data)) {
193
+ issues.push(`Forbidden pattern detected: ${pattern.source.substring(0, 40)}`);
194
+ }
195
+ }
196
+ return { valid: issues.length === 0, issues };
197
+ }
198
+ // ─── Intelligence Builder ───────────────────────────────────────────────────
199
+ function buildIntelligenceBundle(config) {
200
+ const db = (0, database_1.getDb)();
201
+ const warnings = [];
202
+ // Profile
203
+ let profile = {};
204
+ try {
205
+ const rows = db.prepare('SELECT * FROM developer_profile ORDER BY updated_at DESC LIMIT 1').all();
206
+ if (rows.length > 0) {
207
+ profile = {
208
+ sections: rows.map((r) => ({ key: r.section_key || r.key, value: r.raw_text || r.value, scanned_at: r.scanned_at })),
209
+ };
210
+ }
211
+ }
212
+ catch { }
213
+ // Vibe signals (numbers only, no raw text)
214
+ let vibe = {};
215
+ try {
216
+ const vibePath = path.join(process.cwd(), '.cell', 'vibe', 'signals.json');
217
+ if (fs.existsSync(vibePath)) {
218
+ const raw = JSON.parse(fs.readFileSync(vibePath, 'utf-8'));
219
+ if (raw.signals && Array.isArray(raw.signals)) {
220
+ for (const s of raw.signals) {
221
+ if (s.vibe >= 60)
222
+ vibe[s.id] = s.vibe;
223
+ }
224
+ }
225
+ }
226
+ }
227
+ catch { }
228
+ // Memory summary (top events only, importance >= 7, no details)
229
+ let memorySummary = [];
230
+ try {
231
+ const events = db.prepare(`SELECT type, topic, summary, importance FROM memory_events
232
+ WHERE importance >= 7 AND project IS NOT NULL
233
+ ORDER BY importance DESC, created_at DESC LIMIT 20`).all();
234
+ memorySummary = events.map((e) => ({
235
+ type: e.type,
236
+ topic: e.topic || '',
237
+ summary: e.summary || '',
238
+ importance: e.importance || 7,
239
+ }));
240
+ }
241
+ catch { }
242
+ // Project summary
243
+ let projectSummary = { name: 'unknown', status: 'active', fileCount: 0, recentDecisions: [] };
244
+ try {
245
+ const projects = db.prepare('SELECT name, file_count, status FROM projects LIMIT 1').all();
246
+ if (projects.length > 0) {
247
+ const p = projects[0];
248
+ const decisions = db.prepare('SELECT technology, reason FROM decisions ORDER BY created_at DESC LIMIT 5').all();
249
+ projectSummary = {
250
+ name: p.name || 'unknown',
251
+ status: p.status || 'active',
252
+ fileCount: p.file_count || 0,
253
+ recentDecisions: decisions.map((d) => `${d.technology}: ${(d.reason || '').substring(0, 60)}`),
254
+ };
255
+ }
256
+ }
257
+ catch { }
258
+ // Anonymous signals (no identity data)
259
+ let anonymousSignals = [];
260
+ try {
261
+ const vibePath = path.join(process.cwd(), '.cell', 'vibe', 'signals.json');
262
+ if (fs.existsSync(vibePath)) {
263
+ const raw = JSON.parse(fs.readFileSync(vibePath, 'utf-8'));
264
+ if (raw.signals && Array.isArray(raw.signals)) {
265
+ anonymousSignals = raw.signals
266
+ .filter((s) => s.vibe >= 60 && s.count >= 2)
267
+ .map((s) => ({ category: s.group || 'unknown', signal: s.id, confidence: s.vibe }));
268
+ }
269
+ }
270
+ }
271
+ catch { }
272
+ // Privacy check
273
+ const bundleStr = JSON.stringify({ profile, vibe, memorySummary, projectSummary, anonymousSignals });
274
+ const privacyCheck = validatePrivacy(bundleStr);
275
+ if (!privacyCheck.valid) {
276
+ warnings.push(...privacyCheck.issues);
277
+ }
278
+ const bundle = {
279
+ version: 1,
280
+ deviceId: config.deviceId,
281
+ compressedAt: new Date().toISOString(),
282
+ profile,
283
+ vibe,
284
+ memorySummary,
285
+ projectSummary,
286
+ anonymousSignals,
287
+ };
288
+ return { bundle, warnings };
289
+ }
290
+ function compressBundle(bundle) {
291
+ const json = JSON.stringify(bundle);
292
+ const compressed = Buffer.from(json).toString('base64');
293
+ const checksum = crypto.createHash('sha256').update(json).digest('hex').substring(0, 16);
294
+ return { compressed, checksum };
295
+ }
296
+ // ─── Sync Operations ────────────────────────────────────────────────────────
297
+ async function cloudPush(config) {
298
+ const { bundle, warnings } = buildIntelligenceBundle(config);
299
+ const { compressed, checksum } = compressBundle(bundle);
300
+ if (warnings.length > 0 && warnings.some(w => w.includes('Forbidden'))) {
301
+ return { pushed: false, warnings };
302
+ }
303
+ await cloudPost(config, '/sync/push', {
304
+ deviceId: config.deviceId,
305
+ bundle: compressed,
306
+ checksum,
307
+ signalCount: bundle.anonymousSignals.length,
308
+ compressedAt: bundle.compressedAt,
309
+ });
310
+ // Update last sync
311
+ config.lastSync = new Date().toISOString();
312
+ saveConfig(config);
313
+ return { pushed: true, warnings };
314
+ }
315
+ async function cloudPull(config) {
316
+ const result = await cloudGet(config, '/community/packs');
317
+ const rawPacks = (result.packs || result.data || []);
318
+ const packs = rawPacks.map((p) => ({
319
+ id: p.id || p.pack_id || crypto.randomUUID(),
320
+ title: p.title || p.name || 'Unnamed Pack',
321
+ category: p.category || 'general',
322
+ description: p.description || '',
323
+ authorScore: p.author_score || p.authorScore || 50,
324
+ trustScore: p.trust_score || p.trustScore || 50,
325
+ downloadCount: p.download_count || p.downloadCount || 0,
326
+ signals: p.signals || {},
327
+ rules: p.rules || [],
328
+ version: p.version || 1,
329
+ }));
330
+ // Save to local community directory
331
+ ensureDir(COMMUNITY_PACKS_DIR);
332
+ for (const pack of packs) {
333
+ const packFile = path.join(COMMUNITY_PACKS_DIR, `${pack.id}.json`);
334
+ fs.writeFileSync(packFile, JSON.stringify(pack, null, 2), 'utf-8');
335
+ }
336
+ // Update last sync
337
+ config.lastSync = new Date().toISOString();
338
+ saveConfig(config);
339
+ return { packs, count: packs.length };
340
+ }
341
+ async function cloudStatus(config) {
342
+ const isValid = await cloudVerify(config);
343
+ return {
344
+ connected: isValid,
345
+ email: config.email,
346
+ deviceId: config.deviceId,
347
+ lastSync: config.lastSync || 'never',
348
+ pendingUpload: 0,
349
+ pendingDownload: 0,
350
+ serverHealthy: isValid,
351
+ };
352
+ }
353
+ // ─── Community Pack Management ──────────────────────────────────────────────
354
+ function getLocalPacks() {
355
+ if (!fs.existsSync(COMMUNITY_PACKS_DIR))
356
+ return [];
357
+ return fs.readdirSync(COMMUNITY_PACKS_DIR)
358
+ .filter(f => f.endsWith('.json'))
359
+ .map(f => {
360
+ try {
361
+ return JSON.parse(fs.readFileSync(path.join(COMMUNITY_PACKS_DIR, f), 'utf-8'));
362
+ }
363
+ catch {
364
+ return null;
365
+ }
366
+ })
367
+ .filter(Boolean);
368
+ }
369
+ function getPackById(id) {
370
+ const packFile = path.join(COMMUNITY_PACKS_DIR, `${id}.json`);
371
+ if (!fs.existsSync(packFile))
372
+ return null;
373
+ return JSON.parse(fs.readFileSync(packFile, 'utf-8'));
374
+ }
375
+ // ─── Health ─────────────────────────────────────────────────────────────────
376
+ async function cloudHealthCheck(config) {
377
+ try {
378
+ const result = await cloudGet(config, '/health');
379
+ return result.status === 'ok' || result.healthy === true;
380
+ }
381
+ catch {
382
+ return false;
383
+ }
384
+ }
385
+ //# sourceMappingURL=cloud-connector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-connector.js","sourceRoot":"","sources":["../../../../src/walls/05-community/share/cloud-connector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ export interface SharedPattern {
2
+ id: string;
3
+ title: string;
4
+ category: string;
5
+ description: string;
6
+ language: string;
7
+ framework: string;
8
+ qualityScore: number;
9
+ usefulnessScore: number;
10
+ adoptionCount: number;
11
+ upvotes: number;
12
+ downvotes: number;
13
+ sharedBy: string;
14
+ sharedAt: string;
15
+ tags: string[];
16
+ }
17
+ export interface ReputationScore {
18
+ contributorId: string;
19
+ totalPatterns: number;
20
+ averageQuality: number;
21
+ totalUpvotes: number;
22
+ totalDownvotes: number;
23
+ trustLevel: 'emerging' | 'established' | 'expert';
24
+ badges: string[];
25
+ score: number;
26
+ }
27
+ export interface CommunityTrend {
28
+ topic: string;
29
+ category: string;
30
+ growthRate: string;
31
+ patternCount: number;
32
+ recentAdoptions: number;
33
+ firstSeenWeeksAgo: number;
34
+ description: string;
35
+ }
36
+ export interface SmartRecommendation {
37
+ forPattern: string;
38
+ suggestedPattern: string;
39
+ category: string;
40
+ confidence: number;
41
+ reason: string;
42
+ adoptionRate: string;
43
+ }
44
+ export interface Playbook {
45
+ title: string;
46
+ category: string;
47
+ generatedFor: string;
48
+ generateAt: string;
49
+ sections: PlaybookSection[];
50
+ summary: string;
51
+ }
52
+ export interface PlaybookSection {
53
+ heading: string;
54
+ content: string;
55
+ patterns: string[];
56
+ tips: string[];
57
+ }
58
+ export interface PrivacyEnvelope {
59
+ canShare: boolean;
60
+ risks: string[];
61
+ sensitiveDataDetected: string[];
62
+ anonymizationApplied: boolean;
63
+ consentRequired: boolean;
64
+ safeToShareFields: string[];
65
+ }
66
+ export interface CommunitySupremeContext {
67
+ trendingPatterns: CommunityTrend[];
68
+ recommendedPatterns: SmartRecommendation[];
69
+ topSharedPatterns: SharedPattern[];
70
+ playbook: Playbook | null;
71
+ privacyCheck: PrivacyEnvelope;
72
+ communityHealth: CommunityHealth;
73
+ }
74
+ export interface CommunityHealth {
75
+ totalPatterns: number;
76
+ activeContributors: number;
77
+ averageQuality: number;
78
+ trendingCategories: string[];
79
+ growth: string;
80
+ }
81
+ export declare function buildCommunitySupremeContext(): CommunitySupremeContext;
82
+ export declare function formatCommunityContext(ctx: CommunitySupremeContext): string;
83
+ //# sourceMappingURL=community-supreme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community-supreme.d.ts","sourceRoot":"","sources":["../../../../src/walls/05-community/stats/community-supreme.ts"],"names":[],"mappings":"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"}