logicstamp-context 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/LICENSE +21 -0
  2. package/LLM_CONTEXT.md +260 -0
  3. package/README.md +949 -0
  4. package/dist/cli/commands/clean.d.ts +15 -0
  5. package/dist/cli/commands/clean.d.ts.map +1 -0
  6. package/dist/cli/commands/clean.js +142 -0
  7. package/dist/cli/commands/clean.js.map +1 -0
  8. package/dist/cli/commands/compare.d.ts +88 -0
  9. package/dist/cli/commands/compare.d.ts.map +1 -0
  10. package/dist/cli/commands/compare.js +519 -0
  11. package/dist/cli/commands/compare.js.map +1 -0
  12. package/dist/cli/commands/context.d.ts +24 -0
  13. package/dist/cli/commands/context.d.ts.map +1 -0
  14. package/dist/cli/commands/context.js +576 -0
  15. package/dist/cli/commands/context.js.map +1 -0
  16. package/dist/cli/commands/init.d.ts +14 -0
  17. package/dist/cli/commands/init.d.ts.map +1 -0
  18. package/dist/cli/commands/init.js +71 -0
  19. package/dist/cli/commands/init.js.map +1 -0
  20. package/dist/cli/commands/validate.d.ts +52 -0
  21. package/dist/cli/commands/validate.d.ts.map +1 -0
  22. package/dist/cli/commands/validate.js +368 -0
  23. package/dist/cli/commands/validate.js.map +1 -0
  24. package/dist/cli/index.d.ts +7 -0
  25. package/dist/cli/index.d.ts.map +1 -0
  26. package/dist/cli/index.js +223 -0
  27. package/dist/cli/index.js.map +1 -0
  28. package/dist/cli/stamp.d.ts +7 -0
  29. package/dist/cli/stamp.d.ts.map +1 -0
  30. package/dist/cli/stamp.js +961 -0
  31. package/dist/cli/stamp.js.map +1 -0
  32. package/dist/cli/validate-index.d.ts +7 -0
  33. package/dist/cli/validate-index.d.ts.map +1 -0
  34. package/dist/cli/validate-index.js +55 -0
  35. package/dist/cli/validate-index.js.map +1 -0
  36. package/dist/core/astParser.d.ts +47 -0
  37. package/dist/core/astParser.d.ts.map +1 -0
  38. package/dist/core/astParser.js +417 -0
  39. package/dist/core/astParser.js.map +1 -0
  40. package/dist/core/contractBuilder.d.ts +48 -0
  41. package/dist/core/contractBuilder.d.ts.map +1 -0
  42. package/dist/core/contractBuilder.js +120 -0
  43. package/dist/core/contractBuilder.js.map +1 -0
  44. package/dist/core/manifest.d.ts +75 -0
  45. package/dist/core/manifest.d.ts.map +1 -0
  46. package/dist/core/manifest.js +173 -0
  47. package/dist/core/manifest.js.map +1 -0
  48. package/dist/core/pack.d.ts +190 -0
  49. package/dist/core/pack.d.ts.map +1 -0
  50. package/dist/core/pack.js +438 -0
  51. package/dist/core/pack.js.map +1 -0
  52. package/dist/core/signature.d.ts +47 -0
  53. package/dist/core/signature.d.ts.map +1 -0
  54. package/dist/core/signature.js +208 -0
  55. package/dist/core/signature.js.map +1 -0
  56. package/dist/index.d.ts +27 -0
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +23 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/types/UIFContract.d.ts +112 -0
  61. package/dist/types/UIFContract.d.ts.map +1 -0
  62. package/dist/types/UIFContract.js +36 -0
  63. package/dist/types/UIFContract.js.map +1 -0
  64. package/dist/utils/config.d.ts +34 -0
  65. package/dist/utils/config.d.ts.map +1 -0
  66. package/dist/utils/config.js +62 -0
  67. package/dist/utils/config.js.map +1 -0
  68. package/dist/utils/fsx.d.ts +85 -0
  69. package/dist/utils/fsx.d.ts.map +1 -0
  70. package/dist/utils/fsx.js +181 -0
  71. package/dist/utils/fsx.js.map +1 -0
  72. package/dist/utils/gitignore.d.ts +62 -0
  73. package/dist/utils/gitignore.d.ts.map +1 -0
  74. package/dist/utils/gitignore.js +183 -0
  75. package/dist/utils/gitignore.js.map +1 -0
  76. package/dist/utils/hash.d.ts +73 -0
  77. package/dist/utils/hash.d.ts.map +1 -0
  78. package/dist/utils/hash.js +159 -0
  79. package/dist/utils/hash.js.map +1 -0
  80. package/dist/utils/llmContext.d.ts +34 -0
  81. package/dist/utils/llmContext.d.ts.map +1 -0
  82. package/dist/utils/llmContext.js +136 -0
  83. package/dist/utils/llmContext.js.map +1 -0
  84. package/dist/utils/tokens.d.ts +23 -0
  85. package/dist/utils/tokens.d.ts.map +1 -0
  86. package/dist/utils/tokens.js +29 -0
  87. package/dist/utils/tokens.js.map +1 -0
  88. package/package.json +69 -0
  89. package/schema/logicstamp.context.schema.json +430 -0
@@ -0,0 +1,223 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * LogicStamp Context CLI - Standalone context generator
4
+ * Scans React/TypeScript files and generates AI-friendly context bundles
5
+ */
6
+ import { contextCommand } from './commands/context.js';
7
+ import { compareCommand } from './commands/compare.js';
8
+ async function main() {
9
+ const args = process.argv.slice(2);
10
+ // Check for compare subcommand
11
+ if (args[0] === 'compare') {
12
+ // Handle compare command
13
+ if (args.length < 3 || args[1] === '--help' || args[1] === '-h') {
14
+ printCompareHelp();
15
+ process.exit(args[1] === '--help' || args[1] === '-h' ? 0 : 1);
16
+ }
17
+ const compareOptions = {
18
+ oldFile: args[1],
19
+ newFile: args[2],
20
+ stats: args.includes('--stats'),
21
+ quiet: args.includes('--quiet') || args.includes('-q'),
22
+ };
23
+ try {
24
+ await compareCommand(compareOptions);
25
+ }
26
+ catch (error) {
27
+ console.error('❌ Compare failed:', error.message);
28
+ process.exit(1);
29
+ }
30
+ return;
31
+ }
32
+ // Parse arguments for context command
33
+ const options = {
34
+ depth: 1,
35
+ includeCode: 'header',
36
+ format: 'json',
37
+ out: 'context.json',
38
+ hashLock: false, // No hash lock for standalone (no sidecars)
39
+ strict: false,
40
+ allowMissing: true,
41
+ maxNodes: 100,
42
+ profile: 'llm-chat',
43
+ predictBehavior: false,
44
+ dryRun: false,
45
+ stats: false,
46
+ strictMissing: false,
47
+ compareModes: false,
48
+ quiet: false,
49
+ };
50
+ // Parse command line arguments
51
+ for (let i = 0; i < args.length; i++) {
52
+ const arg = args[i];
53
+ if (arg === '--help' || arg === '-h') {
54
+ printHelp();
55
+ process.exit(0);
56
+ }
57
+ if (arg.startsWith('--') || arg.startsWith('-')) {
58
+ const key = arg.replace(/^--?/, '');
59
+ const value = args[i + 1];
60
+ switch (key) {
61
+ case 'depth':
62
+ case 'd':
63
+ options.depth = parseInt(value, 10);
64
+ i++;
65
+ break;
66
+ case 'include-code':
67
+ case 'c':
68
+ options.includeCode = value;
69
+ i++;
70
+ break;
71
+ case 'format':
72
+ case 'f':
73
+ options.format = value;
74
+ i++;
75
+ break;
76
+ case 'out':
77
+ case 'o':
78
+ options.out = value;
79
+ i++;
80
+ break;
81
+ case 'max-nodes':
82
+ case 'm':
83
+ options.maxNodes = parseInt(value, 10);
84
+ i++;
85
+ break;
86
+ case 'profile':
87
+ options.profile = value;
88
+ i++;
89
+ break;
90
+ case 'strict':
91
+ case 's':
92
+ options.strict = true;
93
+ break;
94
+ case 'predict-behavior':
95
+ case 'predict':
96
+ options.predictBehavior = true;
97
+ break;
98
+ case 'dry-run':
99
+ options.dryRun = true;
100
+ break;
101
+ case 'stats':
102
+ options.stats = true;
103
+ break;
104
+ case 'strict-missing':
105
+ options.strictMissing = true;
106
+ break;
107
+ case 'compare-modes':
108
+ options.compareModes = true;
109
+ break;
110
+ case 'quiet':
111
+ case 'q':
112
+ options.quiet = true;
113
+ break;
114
+ }
115
+ }
116
+ else if (!arg.startsWith('-') && !options.entry) {
117
+ options.entry = arg;
118
+ }
119
+ }
120
+ try {
121
+ await contextCommand(options);
122
+ }
123
+ catch (error) {
124
+ console.error('❌ Context generation failed:', error.message);
125
+ console.error(error.stack);
126
+ process.exit(1);
127
+ }
128
+ }
129
+ function printHelp() {
130
+ console.log(`
131
+ ╭─────────────────────────────────────────────────╮
132
+ │ LogicStamp Context - AI-Ready Documentation │
133
+ │ Generate context bundles from React codebases │
134
+ ╰─────────────────────────────────────────────────╯
135
+
136
+ USAGE:
137
+ logicstamp-context [path] [options]
138
+ logicstamp-context compare <old.json> <new.json> [--stats]
139
+
140
+ ARGUMENTS:
141
+ [path] Directory to scan (default: current directory)
142
+
143
+ OPTIONS:
144
+ -d, --depth <n> Dependency depth (default: 1)
145
+ -c, --include-code <mode> Code: none|header|full (default: header)
146
+ -f, --format <format> Format: json|pretty|ndjson (default: json)
147
+ -o, --out <file> Output file (default: context.json)
148
+ -m, --max-nodes <n> Max nodes per bundle (default: 100)
149
+ --profile <profile> Profile: llm-safe|llm-chat|ci-strict
150
+ -s, --strict Fail on missing dependencies
151
+ --predict-behavior Enable behavioral predictions
152
+ --dry-run Show stats without writing file
153
+ --stats Output one-line JSON stats for CI
154
+ --strict-missing Exit with error if missing dependencies found
155
+ --compare-modes Show detailed token comparison table
156
+ --quiet, -q Suppress verbose output (show only errors)
157
+ -h, --help Show this help
158
+
159
+ PROFILES:
160
+ llm-safe Conservative (depth=1, header, max 30 nodes)
161
+ llm-chat Balanced (depth=1, header, max 100 nodes) [default]
162
+ ci-strict Strict validation (no code, strict deps)
163
+
164
+ EXAMPLES:
165
+ logicstamp-context
166
+ Generate context for entire project
167
+
168
+ logicstamp-context ./src
169
+ Generate context for src directory
170
+
171
+ logicstamp-context --profile llm-safe --out ai-context.json
172
+ Use conservative profile with custom output
173
+
174
+ logicstamp-context --depth 2 --include-code full
175
+ Include full source code with deeper traversal
176
+
177
+ VALIDATION:
178
+ Use logicstamp-validate to check generated bundles:
179
+ logicstamp-validate context.json
180
+
181
+ NOTES:
182
+ • Scans for .ts/.tsx files automatically
183
+ • Generates context on-the-fly (no pre-compilation needed)
184
+ • Output is ready for Claude, ChatGPT, or other AI tools
185
+ `);
186
+ }
187
+ function printCompareHelp() {
188
+ console.log(`
189
+ ╭─────────────────────────────────────────────────╮
190
+ │ LogicStamp Context Compare │
191
+ │ Diff two context.json files │
192
+ ╰─────────────────────────────────────────────────╯
193
+
194
+ USAGE:
195
+ logicstamp-context compare <old.json> <new.json> [options]
196
+
197
+ ARGUMENTS:
198
+ <old.json> Path to old context file
199
+ <new.json> Path to new context file
200
+
201
+ OPTIONS:
202
+ --stats Show token count statistics
203
+ --quiet, -q Suppress verbose output (show only errors)
204
+ -h, --help Show this help
205
+
206
+ OUTPUT:
207
+ PASS No changes detected
208
+ DRIFT Components added/removed/changed
209
+
210
+ EXIT CODES:
211
+ 0 No drift (PASS)
212
+ 1 Drift detected or error
213
+
214
+ EXAMPLES:
215
+ logicstamp-context compare old.json new.json
216
+ Compare two context files
217
+
218
+ logicstamp-context compare old.json new.json --stats
219
+ Compare with token statistics
220
+ `);
221
+ }
222
+ main();
223
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Stamp CLI - Main entry point for LogicStamp Context tools
4
+ * Routes to context operations: generate, validate, compare
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=stamp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stamp.d.ts","sourceRoot":"","sources":["../../src/cli/stamp.ts"],"names":[],"mappings":";AAEA;;;GAGG"}