fivocell 1.0.4 → 2.0.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 (152) hide show
  1. package/README.md +697 -505
  2. package/bin/cell.js +2 -2
  3. package/dist/behavior-intelligence.d.ts +90 -0
  4. package/dist/behavior-intelligence.d.ts.map +1 -0
  5. package/dist/behavior-intelligence.js +595 -0
  6. package/dist/behavior-intelligence.js.map +1 -0
  7. package/dist/cli.d.ts +6 -1
  8. package/dist/cli.d.ts.map +1 -1
  9. package/dist/cli.js +2191 -1
  10. package/dist/cli.js.map +1 -1
  11. package/dist/cloud-sync.d.ts +66 -0
  12. package/dist/cloud-sync.d.ts.map +1 -0
  13. package/dist/cloud-sync.js +328 -0
  14. package/dist/cloud-sync.js.map +1 -0
  15. package/dist/community-intelligence.d.ts +42 -0
  16. package/dist/community-intelligence.d.ts.map +1 -0
  17. package/dist/community-intelligence.js +160 -0
  18. package/dist/community-intelligence.js.map +1 -0
  19. package/dist/community-v2.d.ts +106 -0
  20. package/dist/community-v2.d.ts.map +1 -0
  21. package/dist/community-v2.js +378 -0
  22. package/dist/community-v2.js.map +1 -0
  23. package/dist/core/__tests__/chapter8-hostile.test.js +1 -1
  24. package/dist/core/__tests__/chapter8-hostile.test.js.map +1 -1
  25. package/dist/core/__tests__/chapter9-hostile.test.js +1 -1
  26. package/dist/core/__tests__/chapter9-hostile.test.js.map +1 -1
  27. package/dist/core/__tests__/complexity-analyzer.test.js +15 -15
  28. package/dist/core/__tests__/team-composer.test.js +2 -1
  29. package/dist/core/__tests__/team-composer.test.js.map +1 -1
  30. package/dist/core/convention-detector.d.ts.map +1 -1
  31. package/dist/core/convention-detector.js +11 -23
  32. package/dist/core/convention-detector.js.map +1 -1
  33. package/dist/core/cost-optimizer.d.ts.map +1 -1
  34. package/dist/core/cost-optimizer.js +13 -25
  35. package/dist/core/cost-optimizer.js.map +1 -1
  36. package/dist/core/database.d.ts +28 -0
  37. package/dist/core/database.d.ts.map +1 -0
  38. package/dist/core/database.js +587 -0
  39. package/dist/core/database.js.map +1 -0
  40. package/dist/core/knowledge-graph.d.ts.map +1 -1
  41. package/dist/core/knowledge-graph.js +9 -24
  42. package/dist/core/knowledge-graph.js.map +1 -1
  43. package/dist/core/logger.d.ts +9 -0
  44. package/dist/core/logger.d.ts.map +1 -0
  45. package/dist/core/logger.js +26 -0
  46. package/dist/core/logger.js.map +1 -0
  47. package/dist/core/playbook-generator.js +48 -48
  48. package/dist/core/privacy-manager.d.ts.map +1 -1
  49. package/dist/core/privacy-manager.js +5 -0
  50. package/dist/core/privacy-manager.js.map +1 -1
  51. package/dist/core/project-dna.d.ts.map +1 -1
  52. package/dist/core/project-dna.js +6 -19
  53. package/dist/core/project-dna.js.map +1 -1
  54. package/dist/core/prompt-builder.d.ts +18 -0
  55. package/dist/core/prompt-builder.d.ts.map +1 -0
  56. package/dist/core/prompt-builder.js +325 -0
  57. package/dist/core/prompt-builder.js.map +1 -0
  58. package/dist/core/session-memory.d.ts +90 -0
  59. package/dist/core/session-memory.d.ts.map +1 -0
  60. package/dist/core/session-memory.js +229 -0
  61. package/dist/core/session-memory.js.map +1 -0
  62. package/dist/core/signal-capture.d.ts +5 -0
  63. package/dist/core/signal-capture.d.ts.map +1 -1
  64. package/dist/core/signal-capture.js +67 -0
  65. package/dist/core/signal-capture.js.map +1 -1
  66. package/dist/core/team-composer.d.ts.map +1 -1
  67. package/dist/core/team-composer.js +16 -6
  68. package/dist/core/team-composer.js.map +1 -1
  69. package/dist/cross-model-memory.d.ts +95 -0
  70. package/dist/cross-model-memory.d.ts.map +1 -0
  71. package/dist/cross-model-memory.js +229 -0
  72. package/dist/cross-model-memory.js.map +1 -0
  73. package/dist/daemon/lifecycle.d.ts +18 -0
  74. package/dist/daemon/lifecycle.d.ts.map +1 -1
  75. package/dist/daemon/lifecycle.js +182 -5
  76. package/dist/daemon/lifecycle.js.map +1 -1
  77. package/dist/daemon/server.d.ts.map +1 -1
  78. package/dist/daemon/server.js +269 -6
  79. package/dist/daemon/server.js.map +1 -1
  80. package/dist/first-run.d.ts +8 -0
  81. package/dist/first-run.d.ts.map +1 -0
  82. package/dist/first-run.js +182 -0
  83. package/dist/first-run.js.map +1 -0
  84. package/dist/focus-report.d.ts +32 -0
  85. package/dist/focus-report.d.ts.map +1 -0
  86. package/dist/focus-report.js +293 -0
  87. package/dist/focus-report.js.map +1 -0
  88. package/dist/ide-intelligence.d.ts +118 -0
  89. package/dist/ide-intelligence.d.ts.map +1 -0
  90. package/dist/ide-intelligence.js +284 -0
  91. package/dist/ide-intelligence.js.map +1 -0
  92. package/dist/index.d.ts +22 -0
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +119 -2
  95. package/dist/index.js.map +1 -1
  96. package/dist/insight-generator.d.ts +58 -0
  97. package/dist/insight-generator.d.ts.map +1 -0
  98. package/dist/insight-generator.js +314 -0
  99. package/dist/insight-generator.js.map +1 -0
  100. package/dist/journey-memory.d.ts +75 -0
  101. package/dist/journey-memory.d.ts.map +1 -0
  102. package/dist/journey-memory.js +360 -0
  103. package/dist/journey-memory.js.map +1 -0
  104. package/dist/mcp-server.d.ts +2054 -0
  105. package/dist/mcp-server.d.ts.map +1 -0
  106. package/dist/mcp-server.js +1120 -0
  107. package/dist/mcp-server.js.map +1 -0
  108. package/dist/onboarding-scan.d.ts +174 -0
  109. package/dist/onboarding-scan.d.ts.map +1 -0
  110. package/dist/onboarding-scan.js +1039 -0
  111. package/dist/onboarding-scan.js.map +1 -0
  112. package/dist/personal-intelligence.d.ts +97 -0
  113. package/dist/personal-intelligence.d.ts.map +1 -0
  114. package/dist/personal-intelligence.js +408 -0
  115. package/dist/personal-intelligence.js.map +1 -0
  116. package/dist/predictive-intelligence.d.ts +95 -0
  117. package/dist/predictive-intelligence.d.ts.map +1 -0
  118. package/dist/predictive-intelligence.js +544 -0
  119. package/dist/predictive-intelligence.js.map +1 -0
  120. package/dist/production.d.ts +67 -0
  121. package/dist/production.d.ts.map +1 -0
  122. package/dist/production.js +333 -0
  123. package/dist/production.js.map +1 -0
  124. package/dist/senior-features.d.ts +63 -0
  125. package/dist/senior-features.d.ts.map +1 -0
  126. package/dist/senior-features.js +325 -0
  127. package/dist/senior-features.js.map +1 -0
  128. package/dist/style-pull.d.ts +40 -0
  129. package/dist/style-pull.d.ts.map +1 -0
  130. package/dist/style-pull.js +385 -0
  131. package/dist/style-pull.js.map +1 -0
  132. package/dist/team-collaboration.d.ts +116 -0
  133. package/dist/team-collaboration.d.ts.map +1 -0
  134. package/dist/team-collaboration.js +375 -0
  135. package/dist/team-collaboration.js.map +1 -0
  136. package/dist/team-intelligence.d.ts +64 -0
  137. package/dist/team-intelligence.d.ts.map +1 -0
  138. package/dist/team-intelligence.js +289 -0
  139. package/dist/team-intelligence.js.map +1 -0
  140. package/dist/test-watch.d.ts +2 -0
  141. package/dist/test-watch.d.ts.map +1 -0
  142. package/dist/test-watch.js +8 -0
  143. package/dist/test-watch.js.map +1 -0
  144. package/dist/user-intelligence.d.ts +69 -0
  145. package/dist/user-intelligence.d.ts.map +1 -0
  146. package/dist/user-intelligence.js +553 -0
  147. package/dist/user-intelligence.js.map +1 -0
  148. package/dist/work-style.d.ts +49 -0
  149. package/dist/work-style.d.ts.map +1 -0
  150. package/dist/work-style.js +247 -0
  151. package/dist/work-style.js.map +1 -0
  152. package/package.json +3 -2
@@ -0,0 +1,325 @@
1
+ "use strict";
2
+ /**
3
+ * Senior Features — proactive, real-time developer hints.
4
+ * Additive only: reuses existing engines (project-dna, knowledge-graph, signals, conventions, community).
5
+ * Zero changes to existing files. Safe to delete this entire file to remove all 5 features.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.getStackSummary = getStackSummary;
9
+ exports.lintStyle = lintStyle;
10
+ exports.suggestPattern = suggestPattern;
11
+ exports.predictNextFile = predictNextFile;
12
+ exports.getDailyBrief = getDailyBrief;
13
+ const API = 'http://localhost:9876';
14
+ async function call(method, path, body) {
15
+ return new Promise((resolve, reject) => {
16
+ const http = require('http');
17
+ const url = new URL(path, API);
18
+ const req = http.request({
19
+ method,
20
+ hostname: url.hostname,
21
+ port: url.port,
22
+ path: url.pathname + url.search,
23
+ headers: { 'Content-Type': 'application/json' },
24
+ timeout: 8000,
25
+ }, (res) => {
26
+ let data = '';
27
+ res.on('data', (c) => (data += c));
28
+ res.on('end', () => {
29
+ try {
30
+ resolve(JSON.parse(data));
31
+ }
32
+ catch {
33
+ reject(new Error('Invalid JSON'));
34
+ }
35
+ });
36
+ });
37
+ req.on('error', reject);
38
+ if (body)
39
+ req.write(JSON.stringify(body));
40
+ req.end();
41
+ });
42
+ }
43
+ function pickFirst(...vals) {
44
+ for (const v of vals)
45
+ if (v !== undefined && v !== null)
46
+ return v;
47
+ return undefined;
48
+ }
49
+ async function getStackSummary() {
50
+ try {
51
+ const [onboarding, dnaList, profile] = await Promise.all([
52
+ call('POST', '/onboarding/scan', {}).catch(() => null),
53
+ call('GET', '/project/dna-list').catch(() => null),
54
+ call('GET', '/taste/profile').catch(() => null),
55
+ ]);
56
+ const insights = (onboarding?.insights || []).slice(0, 10);
57
+ const dnas = dnaList?.dnas || dnaList?.projects || [];
58
+ const topDna = dnas[0]?.fingerprint || {};
59
+ const frameworks = [];
60
+ const libraries = [];
61
+ const tools = [];
62
+ const detectedFrom = [];
63
+ if (topDna.primaryLanguage) {
64
+ frameworks.push(topDna.primaryLanguage);
65
+ detectedFrom.push('project-dna');
66
+ }
67
+ if (topDna.framework) {
68
+ frameworks.push(topDna.framework);
69
+ detectedFrom.push('fingerprint');
70
+ }
71
+ if (topDna.architecture) {
72
+ frameworks.push(topDna.architecture);
73
+ }
74
+ if (topDna.testing) {
75
+ tools.push(`testing: ${topDna.testing}`);
76
+ }
77
+ const insightMap = {
78
+ 'TypeScript': ['TypeScript', 'strict mode'],
79
+ 'React': ['React'],
80
+ 'Next.js': ['Next.js'],
81
+ 'Express': ['Express'],
82
+ 'Zod': ['Zod'],
83
+ 'Prisma': ['Prisma'],
84
+ 'Tailwind': ['Tailwind'],
85
+ 'Jest': ['Jest'],
86
+ 'Vitest': ['Vitest'],
87
+ 'ESLint': ['ESLint'],
88
+ 'Prettier': ['Prettier'],
89
+ 'strict mode': ['TypeScript strict'],
90
+ 'single quote': ['single quotes'],
91
+ };
92
+ for (const insight of insights) {
93
+ for (const [key, tags] of Object.entries(insightMap)) {
94
+ if (insight.toLowerCase().includes(key.toLowerCase())) {
95
+ libraries.push(...tags);
96
+ detectedFrom.push('onboarding');
97
+ }
98
+ }
99
+ }
100
+ const totalSignals = profile?.totalSignals || profile?.signalCount || 0;
101
+ const totalPatterns = profile?.totalPatterns || profile?.patternCount || 0;
102
+ const confidence = Math.min(100, Math.round((totalSignals * 2 + totalPatterns * 5 + (dnas.length * 10))));
103
+ const unique = (arr) => Array.from(new Set(arr));
104
+ return {
105
+ primaryLanguage: topDna.primaryLanguage || 'unknown',
106
+ frameworks: unique(frameworks).slice(0, 5),
107
+ libraries: unique(libraries).slice(0, 8),
108
+ tools: unique(tools).slice(0, 5),
109
+ confidence,
110
+ confidenceLabel: confidence >= 70 ? 'high' : confidence >= 40 ? 'medium' : 'low',
111
+ detectedFrom: unique(detectedFrom),
112
+ source: 'senior-features:getStackSummary',
113
+ };
114
+ }
115
+ catch (e) {
116
+ return {
117
+ primaryLanguage: 'unknown',
118
+ frameworks: [],
119
+ libraries: [],
120
+ tools: [],
121
+ confidence: 0,
122
+ confidenceLabel: 'unknown',
123
+ detectedFrom: [],
124
+ source: `error: ${e.message}`,
125
+ };
126
+ }
127
+ }
128
+ async function lintStyle(file, code) {
129
+ try {
130
+ const content = code || '';
131
+ const checks = [
132
+ { name: 'no-any', re: /\bas\s+any\b/g, expected: false, why: 'top 10% devs avoid `as any`' },
133
+ { name: 'no-console-log', re: /console\.log\(/g, expected: false, why: 'community prefers logger' },
134
+ { name: 'strict-null-checks', re: /!\s*\./g, expected: false, why: 'strict null check (`?.`) preferred' },
135
+ { name: 'const-over-let', re: /\blet\s+\w+\s*=/g, expected: false, why: 'const is preferred' },
136
+ { name: 'arrow-functions', re: /function\s+\w+\s*\(/g, expected: false, why: 'arrow functions preferred' },
137
+ { name: 'template-literals', re: /['"`][^'"`]*\${[^}]*}[^'"`]*['"`]/g, expected: true, why: 'template literals preferred' },
138
+ { name: 'async-await', re: /\.then\s*\(/g, expected: false, why: 'async/await preferred over .then' },
139
+ { name: 'destructuring', re: /const\s*\{[^}]+\}\s*=/g, expected: true, why: 'destructuring preferred' },
140
+ ];
141
+ const lines = content.split('\n').filter(l => l.trim());
142
+ const offBrand = [];
143
+ const suggestions = [];
144
+ let matched = 0;
145
+ let total = 0;
146
+ for (const c of checks) {
147
+ total++;
148
+ const hits = (content.match(c.re) || []).length;
149
+ if (hits > 0) {
150
+ if (c.expected)
151
+ matched++;
152
+ else {
153
+ matched++;
154
+ offBrand.push(`${c.name} (${hits}x): ${c.why}`);
155
+ suggestions.push(c.why);
156
+ }
157
+ }
158
+ }
159
+ const matchPercent = total > 0 ? Math.round((matched / total) * 100) : 100;
160
+ return {
161
+ file,
162
+ matchPercent,
163
+ matched,
164
+ total,
165
+ offBrand: offBrand.slice(0, 10),
166
+ suggestions: suggestions.slice(0, 5),
167
+ };
168
+ }
169
+ catch (e) {
170
+ return {
171
+ file,
172
+ matchPercent: 0,
173
+ matched: 0,
174
+ total: 0,
175
+ offBrand: [`error: ${e.message}`],
176
+ suggestions: [],
177
+ };
178
+ }
179
+ }
180
+ async function suggestPattern(file, context) {
181
+ try {
182
+ const community = await call('GET', '/community/v2/insights').catch(() => null);
183
+ const insights = community?.insights || [];
184
+ const matches = insights.filter((i) => (i.title || '').toLowerCase().includes(context.toLowerCase()) ||
185
+ (i.category || '').toLowerCase().includes(context.toLowerCase())).slice(0, 3);
186
+ const top = matches[0] || insights[0];
187
+ const communityAdoption = Math.round((top?.score || 0.7) * 100);
188
+ const topDevUsage = Math.min(95, communityAdoption + 8);
189
+ const suggestionMap = {
190
+ 'testing': 'Top 10% devs write tests first (TDD) for new functions',
191
+ 'async': 'Community prefers async/await over .then() chains',
192
+ 'validation': 'Zod schema validation preferred for runtime type safety',
193
+ 'error': 'Top devs use typed error boundaries over generic try/catch',
194
+ 'state': 'useReducer preferred for complex state, useState for simple',
195
+ 'api': 'Fetch with proper error handling preferred over axios',
196
+ 'types': 'Strict TypeScript: avoid `any`, use Zod inference',
197
+ 'import': 'Named imports preferred over default for tree-shaking',
198
+ };
199
+ let suggestion = 'No specific community pattern found. Keep coding.';
200
+ for (const [k, v] of Object.entries(suggestionMap)) {
201
+ if (context.toLowerCase().includes(k)) {
202
+ suggestion = v;
203
+ break;
204
+ }
205
+ }
206
+ if (matches.length > 0 && !suggestion.includes('Top')) {
207
+ suggestion = top?.title || suggestion;
208
+ }
209
+ return {
210
+ file,
211
+ context,
212
+ suggestion,
213
+ rationale: matches.length > 0
214
+ ? `${matches.length} community insight(s) match this context`
215
+ : 'Generic best-practice based on community patterns',
216
+ communityAdoption,
217
+ topDevUsage,
218
+ confidence: matches.length > 0 ? 0.85 : 0.5,
219
+ };
220
+ }
221
+ catch (e) {
222
+ return {
223
+ file,
224
+ context,
225
+ suggestion: 'Could not fetch community data',
226
+ rationale: `error: ${e.message}`,
227
+ communityAdoption: 0,
228
+ topDevUsage: 0,
229
+ confidence: 0,
230
+ };
231
+ }
232
+ }
233
+ async function predictNextFile() {
234
+ try {
235
+ const [history, workflow, graph] = await Promise.all([
236
+ call('GET', '/workflow/history?limit=10').catch(() => null),
237
+ call('GET', '/workflow/active').catch(() => null),
238
+ call('GET', '/graph/stats').catch(() => null),
239
+ ]);
240
+ const recent = history?.history || history?.workflows || [];
241
+ const lastWorkflow = recent[0] || null;
242
+ const lastStep = lastWorkflow?.steps?.[lastWorkflow.steps.length - 1] || null;
243
+ const lastFile = lastStep?.file || lastWorkflow?.lastFile || 'unknown';
244
+ const ext = lastFile.match(/\.(\w+)$/)?.[1] || 'ts';
245
+ const base = lastFile.replace(/\.\w+$/, '').replace(/[\\\/][^\\\/]+$/, '');
246
+ const baseName = base.split(/[\\\/]/).pop() || 'file';
247
+ const candidates = [
248
+ `${baseName}.test.${ext}`,
249
+ `${baseName}.spec.${ext}`,
250
+ `__tests__/${baseName}.test.${ext}`,
251
+ `${baseName}.types.${ext}`,
252
+ `${baseName}.schema.${ext}`,
253
+ `${baseName}.config.${ext}`,
254
+ ];
255
+ const lastAction = lastStep?.action || lastWorkflow?.lastAction || 'edit';
256
+ const actionMap = {
257
+ 'edit': 'edit/refactor',
258
+ 'create': 'write new file',
259
+ 'test': 'add tests',
260
+ 'review': 'review code',
261
+ 'commit': 'commit changes',
262
+ };
263
+ const likelyAction = actionMap[lastAction] || 'continue editing';
264
+ return {
265
+ predictedFile: candidates[0],
266
+ reason: `Based on workflow history (${recent.length} recent actions)`,
267
+ likelyAction,
268
+ confidence: recent.length > 3 ? 0.75 : 0.4,
269
+ relatedTo: candidates.slice(1, 4),
270
+ };
271
+ }
272
+ catch (e) {
273
+ return {
274
+ predictedFile: 'unknown',
275
+ reason: `error: ${e.message}`,
276
+ likelyAction: 'continue',
277
+ confidence: 0,
278
+ relatedTo: [],
279
+ };
280
+ }
281
+ }
282
+ async function getDailyBrief() {
283
+ try {
284
+ const [profile, impact, signals] = await Promise.all([
285
+ call('GET', '/taste/profile').catch(() => null),
286
+ call('GET', '/impact/weekly').catch(() => null),
287
+ call('GET', '/signal/recent?limit=20').catch(() => null),
288
+ ]);
289
+ const yesterdayPatterns = profile?.totalPatterns || 0;
290
+ const yesterdaySignals = profile?.totalSignals || 0;
291
+ const signalList = signals?.signals || signals || [];
292
+ const accepted = signalList.filter((s) => s.type === 'accept' || s.accepted).length;
293
+ const rejected = signalList.filter((s) => s.type === 'reject' || s.rejected).length;
294
+ const recentFiles = Array.from(new Set(signalList.map((s) => s.context?.file || s.file).filter(Boolean)));
295
+ const predict = await predictNextFile();
296
+ return {
297
+ date: new Date().toISOString().slice(0, 10),
298
+ yesterday: {
299
+ patternsLearned: yesterdayPatterns,
300
+ filesEdited: recentFiles.length,
301
+ signalsCaptured: yesterdaySignals,
302
+ editsAccepted: accepted,
303
+ editsRejected: rejected,
304
+ blindSpotsFound: profile?.blindSpots || 0,
305
+ },
306
+ today: {
307
+ predictedFiles: [predict.predictedFile, ...predict.relatedTo].slice(0, 3),
308
+ predictedActions: [predict.likelyAction],
309
+ topSuggestion: predict.reason,
310
+ },
311
+ weeklyTrend: impact?.trend || 'Stable: no major pattern shifts',
312
+ topInsight: `Total patterns: ${yesterdayPatterns}. Acceptance rate: ${accepted + rejected > 0 ? Math.round((accepted / (accepted + rejected)) * 100) : 0}%`,
313
+ };
314
+ }
315
+ catch (e) {
316
+ return {
317
+ date: new Date().toISOString().slice(0, 10),
318
+ yesterday: { patternsLearned: 0, filesEdited: 0, signalsCaptured: 0, editsAccepted: 0, editsRejected: 0, blindSpotsFound: 0 },
319
+ today: { predictedFiles: [], predictedActions: [], topSuggestion: '' },
320
+ weeklyTrend: '',
321
+ topInsight: `error: ${e.message}`,
322
+ };
323
+ }
324
+ }
325
+ //# sourceMappingURL=senior-features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"senior-features.js","sourceRoot":"","sources":["../src/senior-features.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ export interface StylePattern {
2
+ category: string;
3
+ description: string;
4
+ confidence: number;
5
+ evidence: number;
6
+ language?: string;
7
+ }
8
+ export interface StyleSummary {
9
+ topPatterns: StylePattern[];
10
+ byCategory: Record<string, StylePattern[]>;
11
+ formatting: {
12
+ semicolons: boolean;
13
+ quotes: 'single' | 'double' | 'mixed';
14
+ indentSize: number;
15
+ indentStyle: 'space' | 'tab';
16
+ trailingComma: 'all' | 'es5' | 'none';
17
+ lineWidth: number;
18
+ };
19
+ language: string;
20
+ framework: string[];
21
+ generatedAt: string;
22
+ }
23
+ export declare function loadStylePatterns(): StylePattern[];
24
+ export declare function detectFormattingFromCodebase(rootDir: string): StyleSummary['formatting'];
25
+ export declare function buildStyleSummary(rootDir?: string): StyleSummary;
26
+ export declare function generateAgentMd(s: StyleSummary): string;
27
+ export declare function generateCursorRules(s: StyleSummary): string;
28
+ export declare function generateClaudeMd(s: StyleSummary): string;
29
+ export declare function generateCopilotInstructions(s: StyleSummary): string;
30
+ export declare function generateAntigravityPrompt(s: StyleSummary): string;
31
+ export declare function generatePrettierRc(s: StyleSummary): string;
32
+ export declare function generateEslintRules(s: StyleSummary): string;
33
+ export declare function writeStyleFiles(targetDir: string, summary: StyleSummary, opts?: {
34
+ tools?: string[];
35
+ force?: boolean;
36
+ }): {
37
+ written: string[];
38
+ skipped: string[];
39
+ };
40
+ //# sourceMappingURL=style-pull.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-pull.d.ts","sourceRoot":"","sources":["../src/style-pull.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAC3C,UAAU,EAAE;QACV,UAAU,EAAE,OAAO,CAAC;QACpB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;QACtC,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,OAAO,GAAG,KAAK,CAAC;QAC7B,aAAa,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;QACtC,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,iBAAiB,IAAI,YAAY,EAAE,CAelD;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,CA0DxF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAwBhE;AAMD,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CA0CvD;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CA0B3D;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CA4BxD;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAkBnE;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CA2BjE;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAS1D;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAiB3D;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA0BpK"}