logicstamp-context 0.1.0 → 0.2.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 (176) hide show
  1. package/LICENSE +21 -21
  2. package/LLM_CONTEXT.md +4 -3
  3. package/README.md +140 -21
  4. package/dist/cli/commands/compare.d.ts.map +1 -1
  5. package/dist/cli/commands/compare.js +17 -8
  6. package/dist/cli/commands/compare.js.map +1 -1
  7. package/dist/cli/commands/context/bundleFormatter.d.ts +20 -0
  8. package/dist/cli/commands/context/bundleFormatter.d.ts.map +1 -0
  9. package/dist/cli/commands/context/bundleFormatter.js +55 -0
  10. package/dist/cli/commands/context/bundleFormatter.js.map +1 -0
  11. package/dist/cli/commands/context/configManager.d.ts +23 -0
  12. package/dist/cli/commands/context/configManager.d.ts.map +1 -0
  13. package/dist/cli/commands/context/configManager.js +69 -0
  14. package/dist/cli/commands/context/configManager.js.map +1 -0
  15. package/dist/cli/commands/context/contractBuilder.d.ts +18 -0
  16. package/dist/cli/commands/context/contractBuilder.d.ts.map +1 -0
  17. package/dist/cli/commands/context/contractBuilder.js +72 -0
  18. package/dist/cli/commands/context/contractBuilder.js.map +1 -0
  19. package/dist/cli/commands/context/fileWriter.d.ts +38 -0
  20. package/dist/cli/commands/context/fileWriter.d.ts.map +1 -0
  21. package/dist/cli/commands/context/fileWriter.js +165 -0
  22. package/dist/cli/commands/context/fileWriter.js.map +1 -0
  23. package/dist/cli/commands/context/statsCalculator.d.ts +44 -0
  24. package/dist/cli/commands/context/statsCalculator.d.ts.map +1 -0
  25. package/dist/cli/commands/context/statsCalculator.js +150 -0
  26. package/dist/cli/commands/context/statsCalculator.js.map +1 -0
  27. package/dist/cli/commands/context/tokenEstimator.d.ts +76 -0
  28. package/dist/cli/commands/context/tokenEstimator.d.ts.map +1 -0
  29. package/dist/cli/commands/context/tokenEstimator.js +258 -0
  30. package/dist/cli/commands/context/tokenEstimator.js.map +1 -0
  31. package/dist/cli/commands/context.d.ts +2 -0
  32. package/dist/cli/commands/context.d.ts.map +1 -1
  33. package/dist/cli/commands/context.js +75 -405
  34. package/dist/cli/commands/context.js.map +1 -1
  35. package/dist/cli/commands/init.d.ts.map +1 -1
  36. package/dist/cli/commands/init.js +113 -24
  37. package/dist/cli/commands/init.js.map +1 -1
  38. package/dist/cli/commands/style.d.ts +11 -0
  39. package/dist/cli/commands/style.d.ts.map +1 -0
  40. package/dist/cli/commands/style.js +15 -0
  41. package/dist/cli/commands/style.js.map +1 -0
  42. package/dist/cli/handlers/cleanHandler.d.ts +5 -0
  43. package/dist/cli/handlers/cleanHandler.d.ts.map +1 -0
  44. package/dist/cli/handlers/cleanHandler.js +28 -0
  45. package/dist/cli/handlers/cleanHandler.js.map +1 -0
  46. package/dist/cli/handlers/compareHandler.d.ts +5 -0
  47. package/dist/cli/handlers/compareHandler.d.ts.map +1 -0
  48. package/dist/cli/handlers/compareHandler.js +332 -0
  49. package/dist/cli/handlers/compareHandler.js.map +1 -0
  50. package/dist/cli/handlers/contextHandler.d.ts +5 -0
  51. package/dist/cli/handlers/contextHandler.d.ts.map +1 -0
  52. package/dist/cli/handlers/contextHandler.js +24 -0
  53. package/dist/cli/handlers/contextHandler.js.map +1 -0
  54. package/dist/cli/handlers/initHandler.d.ts +6 -0
  55. package/dist/cli/handlers/initHandler.d.ts.map +1 -0
  56. package/dist/cli/handlers/initHandler.js +30 -0
  57. package/dist/cli/handlers/initHandler.js.map +1 -0
  58. package/dist/cli/handlers/styleHandler.d.ts +5 -0
  59. package/dist/cli/handlers/styleHandler.d.ts.map +1 -0
  60. package/dist/cli/handlers/styleHandler.js +30 -0
  61. package/dist/cli/handlers/styleHandler.js.map +1 -0
  62. package/dist/cli/handlers/validateHandler.d.ts +5 -0
  63. package/dist/cli/handlers/validateHandler.d.ts.map +1 -0
  64. package/dist/cli/handlers/validateHandler.js +23 -0
  65. package/dist/cli/handlers/validateHandler.js.map +1 -0
  66. package/dist/cli/index.js +5 -0
  67. package/dist/cli/index.js.map +1 -1
  68. package/dist/cli/parser/argumentParser.d.ts +44 -0
  69. package/dist/cli/parser/argumentParser.d.ts.map +1 -0
  70. package/dist/cli/parser/argumentParser.js +194 -0
  71. package/dist/cli/parser/argumentParser.js.map +1 -0
  72. package/dist/cli/parser/helpText.d.ts +11 -0
  73. package/dist/cli/parser/helpText.d.ts.map +1 -0
  74. package/dist/cli/parser/helpText.js +373 -0
  75. package/dist/cli/parser/helpText.js.map +1 -0
  76. package/dist/cli/stamp.js +14 -897
  77. package/dist/cli/stamp.js.map +1 -1
  78. package/dist/core/astParser/detectors.d.ts +24 -0
  79. package/dist/core/astParser/detectors.d.ts.map +1 -0
  80. package/dist/core/astParser/detectors.js +102 -0
  81. package/dist/core/astParser/detectors.js.map +1 -0
  82. package/dist/core/astParser/extractors/componentExtractor.d.ts +13 -0
  83. package/dist/core/astParser/extractors/componentExtractor.d.ts.map +1 -0
  84. package/dist/core/astParser/extractors/componentExtractor.js +41 -0
  85. package/dist/core/astParser/extractors/componentExtractor.js.map +1 -0
  86. package/dist/core/astParser/extractors/eventExtractor.d.ts +14 -0
  87. package/dist/core/astParser/extractors/eventExtractor.d.ts.map +1 -0
  88. package/dist/core/astParser/extractors/eventExtractor.js +49 -0
  89. package/dist/core/astParser/extractors/eventExtractor.js.map +1 -0
  90. package/dist/core/astParser/extractors/propExtractor.d.ts +14 -0
  91. package/dist/core/astParser/extractors/propExtractor.d.ts.map +1 -0
  92. package/dist/core/astParser/extractors/propExtractor.js +73 -0
  93. package/dist/core/astParser/extractors/propExtractor.js.map +1 -0
  94. package/dist/core/astParser/extractors/stateExtractor.d.ts +13 -0
  95. package/dist/core/astParser/extractors/stateExtractor.d.ts.map +1 -0
  96. package/dist/core/astParser/extractors/stateExtractor.js +66 -0
  97. package/dist/core/astParser/extractors/stateExtractor.js.map +1 -0
  98. package/dist/core/astParser.d.ts.map +1 -1
  99. package/dist/core/astParser.js +5 -307
  100. package/dist/core/astParser.js.map +1 -1
  101. package/dist/core/contractBuilder.d.ts +1 -0
  102. package/dist/core/contractBuilder.d.ts.map +1 -1
  103. package/dist/core/contractBuilder.js +1 -0
  104. package/dist/core/contractBuilder.js.map +1 -1
  105. package/dist/core/pack/builder.d.ts +35 -0
  106. package/dist/core/pack/builder.d.ts.map +1 -0
  107. package/dist/core/pack/builder.js +76 -0
  108. package/dist/core/pack/builder.js.map +1 -0
  109. package/dist/core/pack/collector.d.ts +20 -0
  110. package/dist/core/pack/collector.d.ts.map +1 -0
  111. package/dist/core/pack/collector.js +71 -0
  112. package/dist/core/pack/collector.js.map +1 -0
  113. package/dist/core/pack/loader.d.ts +23 -0
  114. package/dist/core/pack/loader.d.ts.map +1 -0
  115. package/dist/core/pack/loader.js +66 -0
  116. package/dist/core/pack/loader.js.map +1 -0
  117. package/dist/core/pack/resolver.d.ts +21 -0
  118. package/dist/core/pack/resolver.d.ts.map +1 -0
  119. package/dist/core/pack/resolver.js +79 -0
  120. package/dist/core/pack/resolver.js.map +1 -0
  121. package/dist/core/pack.d.ts +17 -27
  122. package/dist/core/pack.d.ts.map +1 -1
  123. package/dist/core/pack.js +18 -225
  124. package/dist/core/pack.js.map +1 -1
  125. package/dist/core/styleExtractor/index.d.ts +11 -0
  126. package/dist/core/styleExtractor/index.d.ts.map +1 -0
  127. package/dist/core/styleExtractor/index.js +11 -0
  128. package/dist/core/styleExtractor/index.js.map +1 -0
  129. package/dist/core/styleExtractor/layout.d.ts +14 -0
  130. package/dist/core/styleExtractor/layout.d.ts.map +1 -0
  131. package/dist/core/styleExtractor/layout.js +86 -0
  132. package/dist/core/styleExtractor/layout.js.map +1 -0
  133. package/dist/core/styleExtractor/motion.d.ts +20 -0
  134. package/dist/core/styleExtractor/motion.d.ts.map +1 -0
  135. package/dist/core/styleExtractor/motion.js +74 -0
  136. package/dist/core/styleExtractor/motion.js.map +1 -0
  137. package/dist/core/styleExtractor/scss.d.ts +30 -0
  138. package/dist/core/styleExtractor/scss.d.ts.map +1 -0
  139. package/dist/core/styleExtractor/scss.js +80 -0
  140. package/dist/core/styleExtractor/scss.js.map +1 -0
  141. package/dist/core/styleExtractor/styleExtractor.d.ts +11 -0
  142. package/dist/core/styleExtractor/styleExtractor.d.ts.map +1 -0
  143. package/dist/core/styleExtractor/styleExtractor.js +115 -0
  144. package/dist/core/styleExtractor/styleExtractor.js.map +1 -0
  145. package/dist/core/styleExtractor/styled.d.ts +13 -0
  146. package/dist/core/styleExtractor/styled.d.ts.map +1 -0
  147. package/dist/core/styleExtractor/styled.js +31 -0
  148. package/dist/core/styleExtractor/styled.js.map +1 -0
  149. package/dist/core/styleExtractor/tailwind.d.ts +16 -0
  150. package/dist/core/styleExtractor/tailwind.d.ts.map +1 -0
  151. package/dist/core/styleExtractor/tailwind.js +85 -0
  152. package/dist/core/styleExtractor/tailwind.js.map +1 -0
  153. package/dist/core/styleExtractor.d.ts +8 -0
  154. package/dist/core/styleExtractor.d.ts.map +1 -0
  155. package/dist/core/styleExtractor.js +8 -0
  156. package/dist/core/styleExtractor.js.map +1 -0
  157. package/dist/index.d.ts +4 -2
  158. package/dist/index.d.ts.map +1 -1
  159. package/dist/index.js.map +1 -1
  160. package/dist/types/UIFContract.d.ts +71 -0
  161. package/dist/types/UIFContract.d.ts.map +1 -1
  162. package/dist/types/UIFContract.js.map +1 -1
  163. package/dist/utils/gitignore.d.ts +6 -5
  164. package/dist/utils/gitignore.d.ts.map +1 -1
  165. package/dist/utils/gitignore.js +11 -50
  166. package/dist/utils/gitignore.js.map +1 -1
  167. package/dist/utils/llmContext.d.ts +4 -6
  168. package/dist/utils/llmContext.d.ts.map +1 -1
  169. package/dist/utils/llmContext.js +8 -59
  170. package/dist/utils/llmContext.js.map +1 -1
  171. package/dist/utils/tokens.d.ts +18 -10
  172. package/dist/utils/tokens.d.ts.map +1 -1
  173. package/dist/utils/tokens.js +112 -10
  174. package/dist/utils/tokens.js.map +1 -1
  175. package/package.json +3 -1
  176. package/schema/logicstamp.context.schema.json +288 -0
@@ -1,58 +1,18 @@
1
1
  /**
2
2
  * Context command - Generates context bundles from React/TypeScript codebases
3
3
  */
4
- import { writeFile, mkdir } from 'node:fs/promises';
5
- import { resolve, dirname, join } from 'node:path';
6
- import { globFiles, readFileWithText, getFolderPath, normalizeEntryId } from '../../utils/fsx.js';
7
- import { buildContract } from '../../core/contractBuilder.js';
8
- import { extractFromFile } from '../../core/astParser.js';
4
+ import { resolve, dirname } from 'node:path';
5
+ import { globFiles } from '../../utils/fsx.js';
9
6
  import { buildDependencyGraph } from '../../core/manifest.js';
10
7
  import { pack, } from '../../core/pack.js';
11
- import { estimateGPT4Tokens, estimateClaudeTokens, formatTokenCount } from '../../utils/tokens.js';
8
+ import { estimateGPT4Tokens, estimateClaudeTokens } from '../../utils/tokens.js';
12
9
  import { validateBundles } from './validate.js';
13
- import { smartGitignoreSetup } from '../../utils/gitignore.js';
14
- import { smartLLMContextSetup } from '../../utils/llmContext.js';
15
- /**
16
- * Normalize path for display (convert backslashes to forward slashes)
17
- */
18
- function displayPath(path) {
19
- return path.replace(/\\/g, '/');
20
- }
21
- /**
22
- * Detect if a folder is a root (application entry point) and assign a label
23
- */
24
- function detectRootFolder(relativePath, components) {
25
- // Project root is always a root
26
- if (relativePath === '.') {
27
- return { isRoot: true, rootLabel: 'Project Root' };
28
- }
29
- // Detect common application entry points
30
- const pathLower = relativePath.toLowerCase();
31
- // Next.js app router
32
- if (pathLower.includes('/app') && components.some(c => c === 'page.tsx' || c === 'layout.tsx')) {
33
- return { isRoot: true, rootLabel: 'Next.js App' };
34
- }
35
- // Examples folder
36
- if (pathLower.startsWith('examples/') && pathLower.endsWith('/src')) {
37
- const exampleName = relativePath.split('/')[1];
38
- return { isRoot: true, rootLabel: `Example: ${exampleName}` };
39
- }
40
- // Test fixtures
41
- if (pathLower.includes('tests/fixtures/') && pathLower.endsWith('/src')) {
42
- return { isRoot: true, rootLabel: 'Test Fixture' };
43
- }
44
- // Root src folder
45
- if (relativePath === 'src') {
46
- return { isRoot: true, rootLabel: 'Main Source' };
47
- }
48
- // Apps folder (monorepo pattern)
49
- if (pathLower.startsWith('apps/')) {
50
- const appName = relativePath.split('/')[1];
51
- return { isRoot: true, rootLabel: `App: ${appName}` };
52
- }
53
- // Default: not a root
54
- return { isRoot: false };
55
- }
10
+ import { buildContractsFromFiles } from './context/contractBuilder.js';
11
+ import { formatBundles } from './context/bundleFormatter.js';
12
+ import { calculateTokenEstimates, generateModeComparison, displayModeComparison } from './context/tokenEstimator.js';
13
+ import { calculateStats, generateStatsOutput, generateSummary } from './context/statsCalculator.js';
14
+ import { writeContextFiles, writeMainIndex, groupBundlesByFolder, displayPath } from './context/fileWriter.js';
15
+ import { ensureConfigExists, setupGitignore, setupLLMContext } from './context/configManager.js';
56
16
  export async function contextCommand(options) {
57
17
  const startTime = Date.now();
58
18
  // Determine the target directory
@@ -75,33 +35,11 @@ export async function contextCommand(options) {
75
35
  if (!options.quiet) {
76
36
  console.log(`šŸ”Ø Analyzing components...`);
77
37
  }
78
- const contracts = [];
79
- let analyzed = 0;
80
- let totalSourceSize = 0; // Track total source code size for savings calculation
81
- for (const file of files) {
82
- try {
83
- // Extract AST from file
84
- const ast = await extractFromFile(file);
85
- // Build contract from AST
86
- const { text } = await readFileWithText(file);
87
- totalSourceSize += text.length; // Accumulate source size
88
- const result = buildContract(file, ast, {
89
- preset: 'none',
90
- sourceText: text,
91
- enablePredictions: options.predictBehavior,
92
- });
93
- if (result.contract) {
94
- contracts.push(result.contract);
95
- analyzed++;
96
- }
97
- }
98
- catch (error) {
99
- // Skip files that can't be analyzed
100
- if (!options.quiet) {
101
- console.warn(` āš ļø Skipped ${file}: ${error.message}`);
102
- }
103
- }
104
- }
38
+ const { contracts, analyzed, totalSourceSize } = await buildContractsFromFiles(files, {
39
+ includeStyle: options.includeStyle,
40
+ predictBehavior: options.predictBehavior,
41
+ quiet: options.quiet,
42
+ });
105
43
  if (!options.quiet) {
106
44
  console.log(` Analyzed ${analyzed} components`);
107
45
  }
@@ -163,13 +101,11 @@ export async function contextCommand(options) {
163
101
  maxNodes: options.maxNodes,
164
102
  contractsMap, // Pass in-memory contracts
165
103
  };
166
- let bundles;
167
- let output;
168
104
  // Generate context for all root components
169
105
  if (!options.quiet) {
170
106
  console.log(`šŸ“¦ Generating context for ${manifest.graph.roots.length} root components (depth=${depth})...`);
171
107
  }
172
- bundles = [];
108
+ const bundles = [];
173
109
  for (const rootId of manifest.graph.roots) {
174
110
  try {
175
111
  const bundle = await pack(rootId, manifest, packOptions, projectRoot);
@@ -188,130 +124,36 @@ export async function contextCommand(options) {
188
124
  // Sort bundles by entryId for deterministic output
189
125
  bundles.sort((a, b) => a.entryId.localeCompare(b.entryId));
190
126
  // Combine all bundles into output
191
- if (options.format === 'ndjson') {
192
- output = bundles.map((b, idx) => {
193
- const bundleWithSchema = {
194
- $schema: 'https://logicstamp.dev/schemas/context/v0.1.json',
195
- position: `${idx + 1}/${bundles.length}`,
196
- ...b,
197
- };
198
- return JSON.stringify(bundleWithSchema);
199
- }).join('\n');
200
- }
201
- else if (options.format === 'json') {
202
- const bundlesWithPosition = bundles.map((b, idx) => ({
203
- $schema: 'https://logicstamp.dev/schemas/context/v0.1.json',
204
- position: `${idx + 1}/${bundles.length}`,
205
- ...b,
206
- }));
207
- output = JSON.stringify(bundlesWithPosition, null, 2);
208
- }
209
- else {
210
- // pretty format
211
- output = bundles.map((b, idx) => {
212
- const bundleWithSchema = {
213
- $schema: 'https://logicstamp.dev/schemas/context/v0.1.json',
214
- position: `${idx + 1}/${bundles.length}`,
215
- ...b,
216
- };
217
- const header = `\n# Bundle ${idx + 1}/${bundles.length}: ${b.entryId}`;
218
- return header + '\n' + JSON.stringify(bundleWithSchema, null, 2);
219
- }).join('\n\n');
220
- }
127
+ const output = formatBundles(bundles, options.format);
221
128
  const elapsed = Date.now() - startTime;
222
129
  // Calculate stats
223
- const totalNodes = bundles.reduce((sum, b) => sum + b.graph.nodes.length, 0);
224
- const totalEdges = bundles.reduce((sum, b) => sum + b.graph.edges.length, 0);
225
- const totalMissing = bundles.reduce((sum, b) => sum + b.meta.missing.length, 0);
130
+ const stats = calculateStats(bundles);
226
131
  // Calculate token counts for actual output (current mode)
227
- const currentGPT4 = estimateGPT4Tokens(output);
228
- const currentClaude = estimateClaudeTokens(output);
229
- // Estimate tokens for all three modes
230
- // Mode comparison helps users understand cost tradeoffs
231
- const sourceTokensGPT4 = Math.ceil(totalSourceSize / 4);
232
- const sourceTokensClaude = Math.ceil(totalSourceSize / 4.5);
233
- // Estimate based on typical ratios observed in practice:
234
- // - none mode: ~60% of header mode (contracts only, no code snippets)
235
- // - header mode: baseline (contracts + JSDoc headers)
236
- // - full mode: header mode + all source code
237
- const modeEstimates = {
238
- none: {
239
- gpt4: Math.ceil(currentGPT4 * 0.6),
240
- claude: Math.ceil(currentClaude * 0.6),
241
- },
242
- header: {
243
- gpt4: currentGPT4,
244
- claude: currentClaude,
245
- },
246
- full: {
247
- gpt4: currentGPT4 + sourceTokensGPT4,
248
- claude: currentClaude + sourceTokensClaude,
249
- },
250
- };
251
- // Calculate savings percentage for current mode vs full
252
- const savingsGPT4 = modeEstimates.full.gpt4 > 0
253
- ? ((modeEstimates.full.gpt4 - currentGPT4) / modeEstimates.full.gpt4 * 100).toFixed(0)
254
- : '0';
255
- const savingsClaude = modeEstimates.full.claude > 0
256
- ? ((modeEstimates.full.claude - currentClaude) / modeEstimates.full.claude * 100).toFixed(0)
257
- : '0';
132
+ const currentGPT4 = await estimateGPT4Tokens(output);
133
+ const currentClaude = await estimateClaudeTokens(output);
134
+ // Calculate token estimates
135
+ const tokenEstimates = await calculateTokenEstimates(output, totalSourceSize, currentGPT4, currentClaude);
258
136
  // If --compare-modes flag is set, output detailed mode comparison and exit
259
137
  if (options.compareModes) {
260
- console.log('\nšŸ“Š Mode Comparison\n');
261
- console.log('Mode | Tokens GPT-4o | Tokens Claude | Savings vs Full');
262
- console.log('---------|---------------|---------------|------------------');
263
- const modes = [
264
- { name: 'none', gpt4: modeEstimates.none.gpt4, claude: modeEstimates.none.claude },
265
- { name: 'header', gpt4: modeEstimates.header.gpt4, claude: modeEstimates.header.claude },
266
- { name: 'full', gpt4: modeEstimates.full.gpt4, claude: modeEstimates.full.claude },
267
- ];
268
- modes.forEach(mode => {
269
- const savings = modeEstimates.full.gpt4 > 0
270
- ? ((modeEstimates.full.gpt4 - mode.gpt4) / modeEstimates.full.gpt4 * 100).toFixed(0)
271
- : '0';
272
- console.log(`${mode.name.padEnd(8)} | ${formatTokenCount(mode.gpt4).padStart(13)} | ${formatTokenCount(mode.claude).padStart(13)} | ${savings}%`);
138
+ const comparison = await generateModeComparison(files, manifest, projectRoot, currentGPT4, currentClaude, totalSourceSize, {
139
+ includeCode: options.includeCode,
140
+ includeStyle: options.includeStyle,
141
+ depth: options.depth,
142
+ maxNodes: options.maxNodes,
143
+ format: options.format,
144
+ hashLock: options.hashLock,
145
+ strict: options.strict,
146
+ allowMissing: options.allowMissing,
147
+ predictBehavior: options.predictBehavior,
148
+ quiet: options.quiet,
273
149
  });
274
- console.log(`\nā± Completed in ${elapsed}ms`);
150
+ await displayModeComparison(comparison, elapsed);
275
151
  return;
276
152
  }
277
153
  // If --stats flag is set, output one-line JSON and exit
278
- // Stats Output Contract (for CI parsing):
279
- // {
280
- // totalComponents: number, // Total .ts/.tsx files analyzed
281
- // rootComponents: number, // Components with no dependencies (entry points)
282
- // leafComponents: number, // Components that are only dependencies (no imports)
283
- // bundlesGenerated: number, // Number of bundles created (one per root)
284
- // totalNodes: number, // Sum of all nodes across all bundles
285
- // totalEdges: number, // Sum of all edges across all bundles
286
- // missingDependencies: number, // Count of unresolved dependencies (third-party/external)
287
- // tokensGPT4: number, // Estimated GPT-4 tokens (current mode)
288
- // tokensClaude: number, // Estimated Claude tokens (current mode)
289
- // modeEstimates: object, // Token estimates for all modes (none/header/full)
290
- // savingsGPT4: string, // Savings percentage for GPT-4 (current vs full)
291
- // savingsClaude: string, // Savings percentage for Claude (current vs full)
292
- // elapsedMs: number // Time taken in milliseconds
293
- // }
294
154
  if (options.stats) {
295
- const stats = {
296
- totalComponents: contracts.length,
297
- rootComponents: manifest.graph.roots.length,
298
- leafComponents: manifest.graph.leaves.length,
299
- bundlesGenerated: bundles.length,
300
- totalNodes,
301
- totalEdges,
302
- missingDependencies: totalMissing,
303
- tokensGPT4: currentGPT4,
304
- tokensClaude: currentClaude,
305
- modeEstimates: {
306
- none: { gpt4: modeEstimates.none.gpt4, claude: modeEstimates.none.claude },
307
- header: { gpt4: modeEstimates.header.gpt4, claude: modeEstimates.header.claude },
308
- full: { gpt4: modeEstimates.full.gpt4, claude: modeEstimates.full.claude },
309
- },
310
- savingsGPT4,
311
- savingsClaude,
312
- elapsedMs: elapsed,
313
- };
314
- console.log(JSON.stringify(stats));
155
+ const statsOutput = generateStatsOutput(contracts, manifest, bundles, stats, tokenEstimates, elapsed);
156
+ console.log(JSON.stringify(statsOutput));
315
157
  return;
316
158
  }
317
159
  // Validate bundles before writing
@@ -344,193 +186,28 @@ export async function contextCommand(options) {
344
186
  // If --out points to a .json file, use its directory; otherwise use it as the directory
345
187
  const outPath = resolve(options.out);
346
188
  const outputDir = outPath.endsWith('.json') ? dirname(outPath) : outPath;
347
- // Group bundles by folder
348
- const bundlesByFolder = new Map();
349
- for (const bundle of bundles) {
350
- const folderPath = getFolderPath(bundle.entryId);
351
- if (!bundlesByFolder.has(folderPath)) {
352
- bundlesByFolder.set(folderPath, []);
353
- }
354
- bundlesByFolder.get(folderPath).push(bundle);
355
- }
356
- // Prepare folder metadata and write files
357
- if (!options.quiet) {
358
- console.log(`šŸ“ Writing context files for ${bundlesByFolder.size} folders...`);
359
- }
360
- let filesWritten = 0;
361
- const normalizedRoot = normalizeEntryId(projectRoot);
362
- const folderInfos = [];
363
- let totalTokenEstimate = 0;
364
- for (const [folderPath, folderBundles] of bundlesByFolder) {
365
- // Sort bundles for deterministic output
366
- folderBundles.sort((a, b) => a.entryId.localeCompare(b.entryId));
367
- // Calculate relative path from project root
368
- let relativePath;
369
- if (folderPath === normalizedRoot) {
370
- relativePath = '.';
371
- }
372
- else if (folderPath.startsWith(normalizedRoot + '/')) {
373
- relativePath = folderPath.substring(normalizedRoot.length + 1);
374
- }
375
- else {
376
- relativePath = folderPath;
377
- }
378
- // Extract component file names from bundle entryIds
379
- const components = folderBundles.map(b => {
380
- const normalized = normalizeEntryId(b.entryId);
381
- const lastSlash = normalized.lastIndexOf('/');
382
- return lastSlash !== -1 ? normalized.substring(lastSlash + 1) : normalized;
383
- });
384
- // Detect if this is a root folder
385
- const { isRoot, rootLabel } = detectRootFolder(relativePath, components);
386
- // Format bundles for this folder
387
- let folderOutput;
388
- if (options.format === 'ndjson') {
389
- folderOutput = folderBundles.map((b, idx) => {
390
- const bundleWithSchema = {
391
- $schema: 'https://logicstamp.dev/schemas/context/v0.1.json',
392
- position: `${idx + 1}/${folderBundles.length}`,
393
- ...b,
394
- };
395
- return JSON.stringify(bundleWithSchema);
396
- }).join('\n');
397
- }
398
- else if (options.format === 'json') {
399
- const bundlesWithPosition = folderBundles.map((b, idx) => ({
400
- $schema: 'https://logicstamp.dev/schemas/context/v0.1.json',
401
- position: `${idx + 1}/${folderBundles.length}`,
402
- ...b,
403
- }));
404
- folderOutput = JSON.stringify(bundlesWithPosition, null, 2);
405
- }
406
- else {
407
- // pretty format
408
- folderOutput = folderBundles.map((b, idx) => {
409
- const bundleWithSchema = {
410
- $schema: 'https://logicstamp.dev/schemas/context/v0.1.json',
411
- position: `${idx + 1}/${folderBundles.length}`,
412
- ...b,
413
- };
414
- const header = `\n# Bundle ${idx + 1}/${folderBundles.length}: ${b.entryId}`;
415
- return header + '\n' + JSON.stringify(bundleWithSchema, null, 2);
416
- }).join('\n\n');
417
- }
418
- // Estimate tokens for this folder's context file
419
- const folderTokenEstimate = estimateGPT4Tokens(folderOutput);
420
- totalTokenEstimate += folderTokenEstimate;
421
- // Write folder's context.json to output directory maintaining relative structure
422
- const contextFileName = relativePath === '.' ? 'context.json' : join(relativePath, 'context.json');
423
- const contextFilePath = relativePath === '.' ? 'context.json' : `${relativePath}/context.json`;
424
- const folderContextPath = join(outputDir, contextFileName);
425
- await mkdir(dirname(folderContextPath), { recursive: true });
426
- await writeFile(folderContextPath, folderOutput, 'utf8');
427
- filesWritten++;
428
- if (!options.quiet) {
429
- console.log(` āœ“ ${displayPath(folderContextPath)} (${folderBundles.length} bundles)`);
430
- }
431
- // Add to folder info array
432
- folderInfos.push({
433
- path: relativePath === '.' ? '.' : relativePath,
434
- contextFile: contextFilePath,
435
- bundles: folderBundles.length,
436
- components: components.sort(),
437
- isRoot,
438
- rootLabel,
439
- tokenEstimate: folderTokenEstimate,
440
- });
441
- }
442
- // Write context_main.json as metadata index
443
- const mainContextPath = join(outputDir, 'context_main.json');
189
+ // Write context files
190
+ const { filesWritten, folderInfos, totalTokenEstimate } = await writeContextFiles(bundles, outputDir, projectRoot, {
191
+ format: options.format,
192
+ quiet: options.quiet,
193
+ });
194
+ // Write main index
195
+ await writeMainIndex(outputDir, folderInfos, contracts, bundles, groupBundlesByFolder(bundles).size, totalTokenEstimate, projectRoot, {
196
+ quiet: options.quiet,
197
+ suppressSuccessIndicator: options.suppressSuccessIndicator,
198
+ });
444
199
  if (!options.quiet) {
445
- console.log(`šŸ“ Writing main context index...`);
446
- }
447
- // Sort folders by path for deterministic output
448
- folderInfos.sort((a, b) => a.path.localeCompare(b.path));
449
- // Create index structure
450
- const index = {
451
- type: 'LogicStampIndex',
452
- schemaVersion: '0.1',
453
- projectRoot: '.',
454
- projectRootResolved: normalizedRoot,
455
- createdAt: new Date().toISOString(),
456
- summary: {
457
- totalComponents: contracts.length,
458
- totalBundles: bundles.length,
459
- totalFolders: bundlesByFolder.size,
460
- totalTokenEstimate,
461
- },
462
- folders: folderInfos,
463
- meta: {
464
- source: 'logicstamp-context@0.1.0',
465
- },
466
- };
467
- const indexOutput = JSON.stringify(index, null, 2);
468
- await writeFile(mainContextPath, indexOutput, 'utf8');
469
- if (options.quiet) {
470
- // Minimal output in quiet mode
471
- process.stdout.write('āœ“\n');
472
- }
473
- else {
474
- console.log(` āœ“ ${displayPath(mainContextPath)} (index of ${bundlesByFolder.size} folders)`);
475
200
  console.log(`āœ… ${filesWritten + 1} context files written successfully`);
476
201
  }
477
- // Smart .gitignore setup with prompt and config persistence
478
- try {
479
- const { added, created, prompted, skipped } = await smartGitignoreSetup(projectRoot, {
480
- skipGitignore: options.skipGitignore,
481
- });
482
- // Show results if prompted (first-time config) even in quiet mode, or if not quiet
483
- if (prompted || !options.quiet) {
484
- if (prompted) {
485
- if (added) {
486
- if (created) {
487
- console.log('\nāœ… Created .gitignore with LogicStamp patterns');
488
- }
489
- else {
490
- console.log('\nāœ… Added LogicStamp patterns to .gitignore');
491
- }
492
- }
493
- else if (skipped) {
494
- console.log('\nšŸ“ Skipping .gitignore setup (you can run `stamp init` later if needed)');
495
- }
496
- }
497
- else if (!prompted && added) {
498
- // Auto-added based on saved preference
499
- if (created) {
500
- console.log('\nšŸ“ Created .gitignore with LogicStamp patterns');
501
- }
502
- else {
503
- console.log('\nšŸ“ Added LogicStamp patterns to .gitignore');
504
- }
505
- }
506
- }
507
- }
508
- catch (error) {
509
- // Silently ignore gitignore errors - not critical to context generation
510
- // Users can run `stamp init` manually if needed
511
- }
512
- // Smart LLM_CONTEXT.md setup with prompt and config persistence
513
- try {
514
- const { added, prompted, skipped } = await smartLLMContextSetup(projectRoot);
515
- // Show results if prompted (first-time config) even in quiet mode, or if not quiet
516
- if (prompted || !options.quiet) {
517
- if (prompted) {
518
- if (added) {
519
- console.log('\nāœ… Created LLM_CONTEXT.md');
520
- }
521
- else if (skipped) {
522
- console.log('\nšŸ“ Skipping LLM_CONTEXT.md generation (you can run `stamp init` later if needed)');
523
- }
524
- }
525
- else if (!prompted && added) {
526
- // Auto-added based on saved preference
527
- console.log('\nšŸ“ Created LLM_CONTEXT.md');
528
- }
529
- }
530
- }
531
- catch (error) {
532
- // Silently ignore LLM_CONTEXT.md errors - not critical to context generation
533
- }
202
+ // Auto-create config with safe defaults if it doesn't exist (first run)
203
+ await ensureConfigExists(projectRoot, { quiet: options.quiet });
204
+ // Smart .gitignore setup (no prompting - only init prompts)
205
+ await setupGitignore(projectRoot, {
206
+ skipGitignore: options.skipGitignore,
207
+ quiet: options.quiet,
208
+ });
209
+ // Smart LLM_CONTEXT.md setup (no prompting - only init prompts)
210
+ await setupLLMContext(projectRoot, { quiet: options.quiet });
534
211
  }
535
212
  else {
536
213
  if (!options.quiet) {
@@ -539,37 +216,30 @@ export async function contextCommand(options) {
539
216
  }
540
217
  // Print summary (skip in quiet mode)
541
218
  if (!options.quiet) {
542
- console.log('\nšŸ“Š Summary:');
543
- console.log(` Total components: ${contracts.length}`);
544
- console.log(` Root components: ${manifest.graph.roots.length}`);
545
- console.log(` Leaf components: ${manifest.graph.leaves.length}`);
546
- console.log(` Bundles generated: ${bundles.length}`);
547
- console.log(` Total nodes in context: ${totalNodes}`);
548
- console.log(` Total edges: ${totalEdges}`);
549
- console.log(` Missing dependencies: ${totalMissing}`);
550
- console.log(`\nšŸ“ Token Estimates (${options.includeCode} mode):`);
551
- console.log(` GPT-4o-mini: ${formatTokenCount(currentGPT4)} | Full code: ~${formatTokenCount(modeEstimates.full.gpt4)} (~${savingsGPT4}% savings)`);
552
- console.log(` Claude: ${formatTokenCount(currentClaude)} | Full code: ~${formatTokenCount(modeEstimates.full.claude)} (~${savingsClaude}% savings)`);
553
- console.log(`\nšŸ“Š Mode Comparison:`);
554
- console.log(` none: ~${formatTokenCount(modeEstimates.none.gpt4)} tokens`);
555
- console.log(` header: ~${formatTokenCount(modeEstimates.header.gpt4)} tokens`);
556
- console.log(` full: ~${formatTokenCount(modeEstimates.full.gpt4)} tokens`);
557
- if (totalMissing > 0) {
558
- console.log('\nāš ļø Missing dependencies (external/third-party):');
559
- const allMissing = new Set();
560
- bundles.forEach(b => {
561
- b.meta.missing.forEach(dep => allMissing.add(dep.name));
562
- });
563
- Array.from(allMissing).slice(0, 10).forEach(name => console.log(` - ${name}`));
564
- if (allMissing.size > 10) {
565
- console.log(` ... and ${allMissing.size - 10} more`);
566
- }
567
- }
219
+ await generateSummary(contracts, manifest, bundles, stats, tokenEstimates, {
220
+ includeCode: options.includeCode,
221
+ includeStyle: options.includeStyle,
222
+ files,
223
+ projectRoot,
224
+ currentGPT4,
225
+ currentClaude,
226
+ totalSourceSize,
227
+ packOptions: {
228
+ depth,
229
+ maxNodes: options.maxNodes,
230
+ format: options.format,
231
+ hashLock,
232
+ strict,
233
+ allowMissing: options.allowMissing,
234
+ predictBehavior: options.predictBehavior,
235
+ },
236
+ quiet: options.quiet,
237
+ });
568
238
  console.log(`\nā± Completed in ${elapsed}ms`);
569
239
  }
570
240
  // Exit with non-zero code if --strict-missing is enabled and there are missing dependencies
571
- if (options.strictMissing && totalMissing > 0) {
572
- console.error(`\nāŒ Strict missing mode: ${totalMissing} missing dependencies found`);
241
+ if (options.strictMissing && stats.totalMissing > 0) {
242
+ console.error(`\nāŒ Strict missing mode: ${stats.totalMissing} missing dependencies found`);
573
243
  process.exit(1);
574
244
  }
575
245
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/cli/commands/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/cli/commands/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DnE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA2BD;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgInE"}