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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwind.d.ts","sourceRoot":"","sources":["../../../src/core/styleExtractor/tailwind.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmBH;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBnE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CA6BxF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAY9D"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Tailwind CSS extractor - Extracts and categorizes Tailwind utility classes
3
+ */
4
+ /**
5
+ * Tailwind utility class categories for semantic grouping
6
+ */
7
+ const TAILWIND_CATEGORIES = {
8
+ layout: /^(flex|grid|block|inline|hidden|container|box-|aspect-|columns-|break-)/,
9
+ spacing: /^(p-|m-|px-|py-|mx-|my-|pt-|pb-|pl-|pr-|mt-|mb-|ml-|mr-|space-|gap-)/,
10
+ sizing: /^(w-|h-|min-w-|min-h-|max-w-|max-h-|size-)/,
11
+ typography: /^(text-|font-|leading-|tracking-|antialiased|subpixel|italic|not-italic|uppercase|lowercase|capitalize|normal-case|truncate|whitespace-)/,
12
+ colors: /^(bg-|text-|border-|ring-|outline-|shadow-|from-|via-|to-|decoration-)/,
13
+ borders: /^(border-|rounded-|ring-|divide-)/,
14
+ effects: /^(shadow-|opacity-|mix-|backdrop-|blur-|brightness-|contrast-|grayscale|hue-|invert|saturate|sepia)/,
15
+ transitions: /^(transition-|duration-|ease-|delay-|animate-)/,
16
+ transforms: /^(scale-|rotate-|translate-|skew-|origin-)/,
17
+ interactivity: /^(cursor-|select-|pointer-events-|resize-|scroll-|touch-|will-)/,
18
+ svg: /^(fill-|stroke-)/,
19
+ };
20
+ /**
21
+ * Extract Tailwind classes from className attributes in JSX
22
+ */
23
+ export function extractTailwindClasses(sourceText) {
24
+ const classNames = [];
25
+ // Match className="..." or className='...' or className={...}
26
+ const patterns = [
27
+ /className\s*=\s*"([^"]*)"/g,
28
+ /className\s*=\s*'([^']*)'/g,
29
+ /className\s*=\s*`([^`]*)`/g,
30
+ ];
31
+ for (const pattern of patterns) {
32
+ for (const match of sourceText.matchAll(pattern)) {
33
+ if (match[1]) {
34
+ // Split by whitespace and filter empty strings
35
+ const classes = match[1].split(/\s+/).filter(Boolean);
36
+ classNames.push(...classes);
37
+ }
38
+ }
39
+ }
40
+ return classNames;
41
+ }
42
+ /**
43
+ * Categorize Tailwind utility classes
44
+ */
45
+ export function categorizeTailwindClasses(classes) {
46
+ const categorized = {};
47
+ for (const className of classes) {
48
+ // Remove responsive prefixes (sm:, md:, lg:, etc.) for categorization
49
+ const baseClass = className.replace(/^(sm|md|lg|xl|2xl|max-sm|max-md|max-lg|max-xl|max-2xl|hover|focus|active|disabled|group-hover|peer-focus|dark):/, '');
50
+ let matchedCategory = false;
51
+ for (const [category, pattern] of Object.entries(TAILWIND_CATEGORIES)) {
52
+ if (pattern.test(baseClass)) {
53
+ if (!categorized[category]) {
54
+ categorized[category] = new Set();
55
+ }
56
+ categorized[category].add(className);
57
+ matchedCategory = true;
58
+ break;
59
+ }
60
+ }
61
+ // Catch-all for uncategorized utilities
62
+ if (!matchedCategory) {
63
+ if (!categorized['other']) {
64
+ categorized['other'] = new Set();
65
+ }
66
+ categorized['other'].add(className);
67
+ }
68
+ }
69
+ return categorized;
70
+ }
71
+ /**
72
+ * Extract responsive breakpoints used in the component
73
+ */
74
+ export function extractBreakpoints(classes) {
75
+ const breakpoints = new Set();
76
+ const breakpointPattern = /^(sm|md|lg|xl|2xl|max-sm|max-md|max-lg|max-xl|max-2xl):/;
77
+ for (const className of classes) {
78
+ const match = className.match(breakpointPattern);
79
+ if (match) {
80
+ breakpoints.add(match[1]);
81
+ }
82
+ }
83
+ return Array.from(breakpoints).sort();
84
+ }
85
+ //# sourceMappingURL=tailwind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwind.js","sourceRoot":"","sources":["../../../src/core/styleExtractor/tailwind.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,mBAAmB,GAAG;IAC1B,MAAM,EAAE,yEAAyE;IACjF,OAAO,EAAE,sEAAsE;IAC/E,MAAM,EAAE,4CAA4C;IACpD,UAAU,EAAE,0IAA0I;IACtJ,MAAM,EAAE,wEAAwE;IAChF,OAAO,EAAE,mCAAmC;IAC5C,OAAO,EAAE,qGAAqG;IAC9G,WAAW,EAAE,gDAAgD;IAC7D,UAAU,EAAE,4CAA4C;IACxD,aAAa,EAAE,iEAAiE;IAChF,GAAG,EAAE,kBAAkB;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,8DAA8D;IAC9D,MAAM,QAAQ,GAAG;QACf,4BAA4B;QAC5B,4BAA4B;QAC5B,4BAA4B;KAC7B,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACb,+CAA+C;gBAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACtD,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAiB;IACzD,MAAM,WAAW,GAAgC,EAAE,CAAC;IAEpD,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,sEAAsE;QACtE,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,iHAAiH,EAAE,EAAE,CAAC,CAAC;QAE3J,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACtE,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3B,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;gBACpC,CAAC;gBACD,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACrC,eAAe,GAAG,IAAI,CAAC;gBACvB,MAAM;YACR,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;YACnC,CAAC;YACD,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAiB;IAClD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,iBAAiB,GAAG,yDAAyD,CAAC;IAEpF,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjD,IAAI,KAAK,EAAE,CAAC;YACV,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Style Extractor - Re-export for backward compatibility
3
+ * Main functionality has been moved to src/core/styleExtractor/ directory
4
+ *
5
+ * @deprecated Import directly from './styleExtractor/index.js' for better tree-shaking
6
+ */
7
+ export { extractStyleMetadata } from './styleExtractor/index.js';
8
+ //# sourceMappingURL=styleExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styleExtractor.d.ts","sourceRoot":"","sources":["../../src/core/styleExtractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Style Extractor - Re-export for backward compatibility
3
+ * Main functionality has been moved to src/core/styleExtractor/ directory
4
+ *
5
+ * @deprecated Import directly from './styleExtractor/index.js' for better tree-shaking
6
+ */
7
+ export { extractStyleMetadata } from './styleExtractor/index.js';
8
+ //# sourceMappingURL=styleExtractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styleExtractor.js","sourceRoot":"","sources":["../../src/core/styleExtractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -19,8 +19,10 @@ export { extractFromFile } from './core/astParser.js';
19
19
  export { buildContract } from './core/contractBuilder.js';
20
20
  export { pack, computeBundleHash, validateHashLock } from './core/pack.js';
21
21
  export { buildLogicSignature } from './core/signature.js';
22
- export { contextCommand, type ContextOptions } from './cli/commands/context.js';
23
- export { compareCommand, type CompareOptions } from './cli/commands/compare.js';
22
+ export { contextCommand } from './cli/commands/context.js';
23
+ export type { ContextOptions } from './cli/commands/context.js';
24
+ export { compareCommand } from './cli/commands/compare.js';
25
+ export type { CompareOptions } from './cli/commands/compare.js';
24
26
  export { validateCommand } from './cli/commands/validate.js';
25
27
  export { init } from './cli/commands/init.js';
26
28
  export { cleanCommand } from './cli/commands/clean.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC7H,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACpI,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC7H,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACpI,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,iBAAiB;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,sCAAsC;AACtC,OAAO,EAAE,cAAc,EAAuB,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,cAAc,EAAuB,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,iBAAiB;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,sCAAsC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
@@ -85,6 +85,76 @@ export interface NextJSMetadata {
85
85
  export type ExportMetadata = 'default' | 'named' | {
86
86
  named: string[];
87
87
  };
88
+ /**
89
+ * Style metadata extracted from component
90
+ */
91
+ export interface StyleSources {
92
+ tailwind?: {
93
+ categories: Record<string, string[]>;
94
+ breakpoints?: string[];
95
+ classCount: number;
96
+ };
97
+ scssModule?: string;
98
+ scssDetails?: {
99
+ selectors: string[];
100
+ properties: string[];
101
+ features: {
102
+ variables?: boolean;
103
+ nesting?: boolean;
104
+ mixins?: boolean;
105
+ };
106
+ };
107
+ cssModule?: string;
108
+ cssDetails?: {
109
+ selectors: string[];
110
+ properties: string[];
111
+ };
112
+ inlineStyles?: boolean;
113
+ styledComponents?: {
114
+ components?: string[];
115
+ usesTheme?: boolean;
116
+ usesCssProp?: boolean;
117
+ };
118
+ motion?: {
119
+ components?: string[];
120
+ variants?: string[];
121
+ features: {
122
+ gestures?: boolean;
123
+ layoutAnimations?: boolean;
124
+ viewportAnimations?: boolean;
125
+ };
126
+ };
127
+ }
128
+ export interface LayoutMetadata {
129
+ type?: 'flex' | 'grid' | 'relative' | 'absolute';
130
+ cols?: string;
131
+ hasHeroPattern?: boolean;
132
+ hasFeatureCards?: boolean;
133
+ sections?: string[];
134
+ }
135
+ export interface VisualMetadata {
136
+ colors?: string[];
137
+ spacing?: string[];
138
+ radius?: string;
139
+ typography?: string[];
140
+ }
141
+ export interface AnimationMetadata {
142
+ type?: string;
143
+ library?: string;
144
+ trigger?: string;
145
+ }
146
+ export interface PageLayoutMetadata {
147
+ pageRole?: string;
148
+ sections?: string[];
149
+ ctaCount?: number;
150
+ }
151
+ export interface StyleMetadata {
152
+ styleSources?: StyleSources;
153
+ layout?: LayoutMetadata;
154
+ visual?: VisualMetadata;
155
+ animation?: AnimationMetadata;
156
+ pageLayout?: PageLayoutMetadata;
157
+ }
88
158
  export interface UIFContract {
89
159
  type: 'UIFContract';
90
160
  schemaVersion: '0.3';
@@ -102,6 +172,7 @@ export interface UIFContract {
102
172
  metrics?: ContractMetrics;
103
173
  links?: ContractLinks;
104
174
  nextjs?: NextJSMetadata;
175
+ style?: StyleMetadata;
105
176
  semanticHash: string;
106
177
  fileHash: string;
107
178
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UIFContract.d.ts","sourceRoot":"","sources":["../../src/types/UIFContract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UIFContract.d.ts","sourceRoot":"","sources":["../../src/types/UIFContract.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UIFContract.js","sourceRoot":"","sources":["../../src/types/UIFContract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AA0GH;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,MAAM,IAAI,GAAG;QACb,GAAG,CAAC,IAAI,KAAK,aAAa;QAC1B,eAAe,IAAI,GAAG;QACtB,GAAG,CAAC,aAAa,KAAK,KAAK,CAC5B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"UIFContract.js","sourceRoot":"","sources":["../../src/types/UIFContract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAkMH;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,MAAM,IAAI,GAAG;QACb,GAAG,CAAC,IAAI,KAAK,aAAa;QAC1B,eAAe,IAAI,GAAG;QACtB,GAAG,CAAC,aAAa,KAAK,KAAK,CAC5B,CAAC;AACJ,CAAC"}
@@ -38,14 +38,15 @@ export declare function ensureGitignorePatterns(targetDir: string): Promise<{
38
38
  created: boolean;
39
39
  }>;
40
40
  /**
41
- * Smart .gitignore management with user prompt and config persistence
41
+ * Smart .gitignore management with config-based behavior (no prompting)
42
42
  *
43
43
  * Behavior:
44
44
  * 1. If --skip-gitignore flag: do nothing
45
- * 2. If config has preference: respect it
46
- * 3. If patterns already exist: do nothing
47
- * 4. If TTY (interactive): prompt user once, save preference
48
- * 5. If non-TTY (CI): do nothing (don't auto-add)
45
+ * 2. If patterns already exist: do nothing (already set up)
46
+ * 3. If config has preference 'added': add patterns automatically
47
+ * 4. If config has preference 'skipped' OR no config exists: skip (safe default)
48
+ *
49
+ * Note: Prompting should only happen in `stamp init`, not in `stamp context`
49
50
  *
50
51
  * @param targetDir - Project root directory
51
52
  * @param options - Options to control behavior
@@ -1 +1 @@
1
- {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,eAAO,MAAM,6BAA6B,UAOzC,CAAC;AAEF;;GAEG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOtE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAGpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ9D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA0B7D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtF;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAY9G;AA2BD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA6CpF"}
1
+ {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,eAAO,MAAM,6BAA6B,UAOzC,CAAC;AAEF;;GAEG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOtE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAGpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ9D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA0B7D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtF;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAY9G;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAyBpF"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { readFile, writeFile, access } from 'node:fs/promises';
5
5
  import { join } from 'node:path';
6
- import { readConfig, updateConfig } from './config.js';
6
+ import { readConfig } from './config.js';
7
7
  /**
8
8
  * Patterns that should be added to .gitignore for LogicStamp context files
9
9
  */
@@ -105,36 +105,15 @@ export async function ensureGitignorePatterns(targetDir) {
105
105
  return { added: true, created: !exists };
106
106
  }
107
107
  /**
108
- * Check if running in interactive TTY
109
- */
110
- function isTTY() {
111
- return process.stdout.isTTY === true && process.stdin.isTTY === true;
112
- }
113
- /**
114
- * Prompt user for Y/N input (only in TTY mode)
115
- */
116
- async function promptYesNo(question) {
117
- const { createInterface } = await import('node:readline');
118
- const readline = createInterface({
119
- input: process.stdin,
120
- output: process.stdout,
121
- });
122
- return new Promise((resolve) => {
123
- readline.question(question, (answer) => {
124
- readline.close();
125
- resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes' || answer === '');
126
- });
127
- });
128
- }
129
- /**
130
- * Smart .gitignore management with user prompt and config persistence
108
+ * Smart .gitignore management with config-based behavior (no prompting)
131
109
  *
132
110
  * Behavior:
133
111
  * 1. If --skip-gitignore flag: do nothing
134
- * 2. If config has preference: respect it
135
- * 3. If patterns already exist: do nothing
136
- * 4. If TTY (interactive): prompt user once, save preference
137
- * 5. If non-TTY (CI): do nothing (don't auto-add)
112
+ * 2. If patterns already exist: do nothing (already set up)
113
+ * 3. If config has preference 'added': add patterns automatically
114
+ * 4. If config has preference 'skipped' OR no config exists: skip (safe default)
115
+ *
116
+ * Note: Prompting should only happen in `stamp init`, not in `stamp context`
138
117
  *
139
118
  * @param targetDir - Project root directory
140
119
  * @param options - Options to control behavior
@@ -152,32 +131,14 @@ export async function smartGitignoreSetup(targetDir, options = {}) {
152
131
  }
153
132
  // Check config for saved preference
154
133
  const config = await readConfig(targetDir);
155
- // If user previously chose to skip, respect that
156
- if (config.gitignorePreference === 'skipped') {
157
- return { added: false, created: false, prompted: false, skipped: true };
158
- }
159
- // If user previously chose to add, do it without prompting
134
+ // Default to skip unless explicitly set to 'added' in config
135
+ // This means: no config = skip, config with 'skipped' = skip
160
136
  if (config.gitignorePreference === 'added') {
137
+ // User explicitly opted in (via stamp init) - add patterns automatically
161
138
  const result = await ensureGitignorePatterns(targetDir);
162
139
  return { ...result, prompted: false, skipped: false };
163
140
  }
164
- // No preference saved yet - prompt if interactive
165
- if (isTTY()) {
166
- console.log('\nšŸ’” LogicStamp generates large context files that are usually not committed.\n');
167
- const shouldAdd = await promptYesNo('Add recommended patterns to .gitignore? [Y/n] ');
168
- if (shouldAdd) {
169
- // User said yes - add patterns and save preference
170
- await updateConfig(targetDir, { gitignorePreference: 'added' });
171
- const result = await ensureGitignorePatterns(targetDir);
172
- return { ...result, prompted: true, skipped: false };
173
- }
174
- else {
175
- // User said no - save preference to never ask again
176
- await updateConfig(targetDir, { gitignorePreference: 'skipped' });
177
- return { added: false, created: false, prompted: true, skipped: true };
178
- }
179
- }
180
- // Non-interactive (CI) - don't auto-add, don't prompt
141
+ // Default behavior: skip (safe, no .gitignore changes)
181
142
  return { added: false, created: false, prompted: false, skipped: true };
182
143
  }
183
144
  //# sourceMappingURL=gitignore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":"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"}
@@ -15,16 +15,14 @@ export declare function llmContextExists(targetDir: string): Promise<boolean>;
15
15
  */
16
16
  export declare function writeLLMContext(targetDir: string, content: string): Promise<void>;
17
17
  /**
18
- * Smart LLM_CONTEXT.md management with user prompt and config persistence
18
+ * Smart LLM_CONTEXT.md setup with config-based behavior (no prompting)
19
19
  *
20
20
  * Behavior:
21
21
  * 1. If file already exists: do nothing
22
- * 2. If config has preference: respect it
23
- * 3. If TTY (interactive): prompt user once, save preference
24
- * 4. If non-TTY (CI): do nothing (don't auto-add)
22
+ * 2. If config has preference 'added': create file automatically
23
+ * 3. If config has preference 'skipped' OR no config exists: skip (safe default)
25
24
  *
26
- * @param targetDir - Project root directory
27
- * @returns Result of the operation
25
+ * Note: Prompting should only happen in `stamp init`, not in `stamp context`
28
26
  */
29
27
  export declare function smartLLMContextSetup(targetDir: string): Promise<{
30
28
  added: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"llmContext.d.ts","sourceRoot":"","sources":["../../src/utils/llmContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyBpE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO1E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvF;AA2BD;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAkDlE"}
1
+ {"version":3,"file":"llmContext.d.ts","sourceRoot":"","sources":["../../src/utils/llmContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyBpE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO1E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvF;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAsBlE"}
@@ -4,7 +4,7 @@
4
4
  import { readFile, writeFile, access } from 'node:fs/promises';
5
5
  import { join, dirname } from 'node:path';
6
6
  import { fileURLToPath } from 'node:url';
7
- import { readConfig, updateConfig } from './config.js';
7
+ import { readConfig } from './config.js';
8
8
  /**
9
9
  * Read LLM_CONTEXT.md from the package
10
10
  * Tries multiple possible locations to handle both development and installed package scenarios
@@ -53,38 +53,14 @@ export async function writeLLMContext(targetDir, content) {
53
53
  await writeFile(llmContextPath, content, 'utf-8');
54
54
  }
55
55
  /**
56
- * Check if running in interactive TTY
57
- */
58
- function isTTY() {
59
- return process.stdout.isTTY === true && process.stdin.isTTY === true;
60
- }
61
- /**
62
- * Prompt user for Y/N input (only in TTY mode)
63
- */
64
- async function promptYesNo(question) {
65
- const { createInterface } = await import('node:readline');
66
- const readline = createInterface({
67
- input: process.stdin,
68
- output: process.stdout,
69
- });
70
- return new Promise((resolve) => {
71
- readline.question(question, (answer) => {
72
- readline.close();
73
- resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes' || answer === '');
74
- });
75
- });
76
- }
77
- /**
78
- * Smart LLM_CONTEXT.md management with user prompt and config persistence
56
+ * Smart LLM_CONTEXT.md setup with config-based behavior (no prompting)
79
57
  *
80
58
  * Behavior:
81
59
  * 1. If file already exists: do nothing
82
- * 2. If config has preference: respect it
83
- * 3. If TTY (interactive): prompt user once, save preference
84
- * 4. If non-TTY (CI): do nothing (don't auto-add)
60
+ * 2. If config has preference 'added': create file automatically
61
+ * 3. If config has preference 'skipped' OR no config exists: skip (safe default)
85
62
  *
86
- * @param targetDir - Project root directory
87
- * @returns Result of the operation
63
+ * Note: Prompting should only happen in `stamp init`, not in `stamp context`
88
64
  */
89
65
  export async function smartLLMContextSetup(targetDir) {
90
66
  // Check if file already exists
@@ -93,12 +69,9 @@ export async function smartLLMContextSetup(targetDir) {
93
69
  }
94
70
  // Check config for saved preference
95
71
  const config = await readConfig(targetDir);
96
- // If user previously chose to skip, respect that
97
- if (config.llmContextPreference === 'skipped') {
98
- return { added: false, prompted: false, skipped: true };
99
- }
100
- // If user previously chose to add, do it without prompting
72
+ // Default to skip unless explicitly set to 'added' in config
101
73
  if (config.llmContextPreference === 'added') {
74
+ // User explicitly opted in (via stamp init) - create file automatically
102
75
  const content = await readPackageLLMContext();
103
76
  if (content) {
104
77
  await writeLLMContext(targetDir, content);
@@ -106,31 +79,7 @@ export async function smartLLMContextSetup(targetDir) {
106
79
  }
107
80
  return { added: false, prompted: false, skipped: true };
108
81
  }
109
- // No preference saved yet - prompt if interactive
110
- if (isTTY()) {
111
- console.log('\nšŸ’” LogicStamp can generate LLM_CONTEXT.md to help AI assistants understand your project structure.\n');
112
- const shouldAdd = await promptYesNo('Generate LLM_CONTEXT.md in project root? [Y/n] ');
113
- if (shouldAdd) {
114
- // User said yes - write file and save preference
115
- const content = await readPackageLLMContext();
116
- if (content) {
117
- await writeLLMContext(targetDir, content);
118
- await updateConfig(targetDir, { llmContextPreference: 'added' });
119
- return { added: true, prompted: true, skipped: false };
120
- }
121
- else {
122
- console.warn('āš ļø Could not find LLM_CONTEXT.md template in package');
123
- await updateConfig(targetDir, { llmContextPreference: 'skipped' });
124
- return { added: false, prompted: true, skipped: true };
125
- }
126
- }
127
- else {
128
- // User said no - save preference to never ask again
129
- await updateConfig(targetDir, { llmContextPreference: 'skipped' });
130
- return { added: false, prompted: true, skipped: true };
131
- }
132
- }
133
- // Non-interactive (CI) - don't auto-add, don't prompt
82
+ // Default behavior: skip (safe, no file creation)
134
83
  return { added: false, prompted: false, skipped: true };
135
84
  }
136
85
  //# sourceMappingURL=llmContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"llmContext.js","sourceRoot":"","sources":["../../src/utils/llmContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llmContext.js","sourceRoot":"","sources":["../../src/utils/llmContext.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,31 @@
1
1
  /**
2
2
  * Token estimation utilities for GPT and Claude models
3
- * Uses character-based approximations
3
+ * Uses character-based approximations by default
4
4
  *
5
- * For production use, consider installing:
6
- * - @dqbd/tiktoken for GPT models
7
- * - @anthropic-ai/tokenizer for Claude
5
+ * For accurate token counts, optionally install:
6
+ * - @dqbd/tiktoken for GPT models (gpt-4o encoding)
7
+ * - @anthropic-ai/tokenizer for Claude (claude-3-5-sonnet-20241022 encoding)
8
8
  */
9
9
  /**
10
- * Estimate GPT-4 tokens using character-based approximation
11
- * GPT-4 typically uses ~4 characters per token for code/JSON
10
+ * Estimate GPT-4 tokens
11
+ * Uses @dqbd/tiktoken if available, otherwise falls back to character-based approximation
12
12
  */
13
- export declare function estimateGPT4Tokens(text: string): number;
13
+ export declare function estimateGPT4Tokens(text: string): Promise<number>;
14
14
  /**
15
- * Estimate Claude tokens using character-based approximation
16
- * Claude typically uses ~4.5 characters per token for code/JSON
15
+ * Estimate Claude tokens
16
+ * Uses @anthropic-ai/tokenizer if available, otherwise falls back to character-based approximation
17
17
  */
18
- export declare function estimateClaudeTokens(text: string): number;
18
+ export declare function estimateClaudeTokens(text: string): Promise<number>;
19
19
  /**
20
20
  * Format token count with commas for readability
21
21
  */
22
22
  export declare function formatTokenCount(count: number): string;
23
+ /**
24
+ * Check if tokenizers are available
25
+ * Returns status for both GPT-4 and Claude tokenizers
26
+ */
27
+ export declare function getTokenizerStatus(): Promise<{
28
+ gpt4: boolean;
29
+ claude: boolean;
30
+ }>;
23
31
  //# sourceMappingURL=tokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/utils/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/utils/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAqEH;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CActE;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAItF"}