logicstamp-context 0.7.0 → 0.7.2

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 (102) hide show
  1. package/LLM_CONTEXT.md +1 -1
  2. package/README.md +34 -7
  3. package/dist/cli/commands/compare/cleanup.d.ts +8 -0
  4. package/dist/cli/commands/compare/cleanup.d.ts.map +1 -0
  5. package/dist/cli/commands/compare/cleanup.js +27 -0
  6. package/dist/cli/commands/compare/cleanup.js.map +1 -0
  7. package/dist/cli/commands/compare/core.d.ts +29 -0
  8. package/dist/cli/commands/compare/core.d.ts.map +1 -0
  9. package/dist/cli/commands/compare/core.js +293 -0
  10. package/dist/cli/commands/compare/core.js.map +1 -0
  11. package/dist/cli/commands/compare/display.d.ts +9 -0
  12. package/dist/cli/commands/compare/display.d.ts.map +1 -0
  13. package/dist/cli/commands/compare/display.js +241 -0
  14. package/dist/cli/commands/compare/display.js.map +1 -0
  15. package/dist/cli/commands/compare/index.d.ts +26 -0
  16. package/dist/cli/commands/compare/index.d.ts.map +1 -0
  17. package/dist/cli/commands/compare/index.js +33 -0
  18. package/dist/cli/commands/compare/index.js.map +1 -0
  19. package/dist/cli/commands/compare/multiFile.d.ts +16 -0
  20. package/dist/cli/commands/compare/multiFile.d.ts.map +1 -0
  21. package/dist/cli/commands/compare/multiFile.js +113 -0
  22. package/dist/cli/commands/compare/multiFile.js.map +1 -0
  23. package/dist/cli/commands/compare/singleFile.d.ts +20 -0
  24. package/dist/cli/commands/compare/singleFile.d.ts.map +1 -0
  25. package/dist/cli/commands/compare/singleFile.js +341 -0
  26. package/dist/cli/commands/compare/singleFile.js.map +1 -0
  27. package/dist/cli/commands/{compare.d.ts → compare/types.d.ts} +19 -28
  28. package/dist/cli/commands/compare/types.d.ts.map +1 -0
  29. package/dist/cli/commands/compare/types.js +5 -0
  30. package/dist/cli/commands/compare/types.js.map +1 -0
  31. package/dist/cli/commands/compare/utils.d.ts +20 -0
  32. package/dist/cli/commands/compare/utils.d.ts.map +1 -0
  33. package/dist/cli/commands/compare/utils.js +94 -0
  34. package/dist/cli/commands/compare/utils.js.map +1 -0
  35. package/dist/cli/commands/context/fileWriter.d.ts +11 -0
  36. package/dist/cli/commands/context/fileWriter.d.ts.map +1 -1
  37. package/dist/cli/commands/context/fileWriter.js +52 -4
  38. package/dist/cli/commands/context/fileWriter.js.map +1 -1
  39. package/dist/cli/commands/context/index.d.ts +1 -3
  40. package/dist/cli/commands/context/index.d.ts.map +1 -1
  41. package/dist/cli/commands/context/index.js +1 -3
  42. package/dist/cli/commands/context/index.js.map +1 -1
  43. package/dist/cli/commands/context/{incrementalWatch.d.ts → watchMode/incrementalWatch.d.ts} +4 -4
  44. package/dist/cli/commands/context/watchMode/incrementalWatch.d.ts.map +1 -0
  45. package/dist/cli/commands/context/{incrementalWatch.js → watchMode/incrementalWatch.js} +8 -8
  46. package/dist/cli/commands/context/watchMode/incrementalWatch.js.map +1 -0
  47. package/dist/cli/commands/context/watchMode/index.d.ts +12 -0
  48. package/dist/cli/commands/context/watchMode/index.d.ts.map +1 -0
  49. package/dist/cli/commands/context/watchMode/index.js +12 -0
  50. package/dist/cli/commands/context/watchMode/index.js.map +1 -0
  51. package/dist/cli/commands/context/{watchDiff.d.ts → watchMode/watchDiff.d.ts} +2 -2
  52. package/dist/cli/commands/context/watchMode/watchDiff.d.ts.map +1 -0
  53. package/dist/cli/commands/context/{watchDiff.js → watchMode/watchDiff.js} +1 -1
  54. package/dist/cli/commands/context/watchMode/watchDiff.js.map +1 -0
  55. package/dist/cli/commands/context/{watchMode.d.ts → watchMode/watchMode.d.ts} +1 -1
  56. package/dist/cli/commands/context/watchMode/watchMode.d.ts.map +1 -0
  57. package/dist/cli/commands/context/{watchMode.js → watchMode/watchMode.js} +120 -25
  58. package/dist/cli/commands/context/watchMode/watchMode.js.map +1 -0
  59. package/dist/cli/commands/context.d.ts +2 -0
  60. package/dist/cli/commands/context.d.ts.map +1 -1
  61. package/dist/cli/commands/context.js +9 -6
  62. package/dist/cli/commands/context.js.map +1 -1
  63. package/dist/cli/handlers/compareHandler.d.ts.map +1 -1
  64. package/dist/cli/handlers/compareHandler.js +221 -3
  65. package/dist/cli/handlers/compareHandler.js.map +1 -1
  66. package/dist/cli/index.js +7 -1
  67. package/dist/cli/index.js.map +1 -1
  68. package/dist/cli/parser/argumentParser.d.ts +1 -0
  69. package/dist/cli/parser/argumentParser.d.ts.map +1 -1
  70. package/dist/cli/parser/argumentParser.js +24 -2
  71. package/dist/cli/parser/argumentParser.js.map +1 -1
  72. package/dist/cli/parser/helpText.d.ts.map +1 -1
  73. package/dist/cli/parser/helpText.js +32 -8
  74. package/dist/cli/parser/helpText.js.map +1 -1
  75. package/dist/extractors/shared/propTypeNormalizer.d.ts.map +1 -1
  76. package/dist/extractors/shared/propTypeNormalizer.js +2 -1
  77. package/dist/extractors/shared/propTypeNormalizer.js.map +1 -1
  78. package/dist/index.d.ts +2 -2
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +1 -1
  81. package/dist/index.js.map +1 -1
  82. package/dist/utils/config.d.ts +6 -0
  83. package/dist/utils/config.d.ts.map +1 -1
  84. package/dist/utils/config.js +14 -1
  85. package/dist/utils/config.js.map +1 -1
  86. package/dist/utils/git.d.ts +135 -0
  87. package/dist/utils/git.d.ts.map +1 -0
  88. package/dist/utils/git.js +429 -0
  89. package/dist/utils/git.js.map +1 -0
  90. package/dist/utils/hash.d.ts.map +1 -1
  91. package/dist/utils/hash.js +20 -4
  92. package/dist/utils/hash.js.map +1 -1
  93. package/package.json +1 -1
  94. package/dist/cli/commands/compare.d.ts.map +0 -1
  95. package/dist/cli/commands/compare.js +0 -648
  96. package/dist/cli/commands/compare.js.map +0 -1
  97. package/dist/cli/commands/context/incrementalWatch.d.ts.map +0 -1
  98. package/dist/cli/commands/context/incrementalWatch.js.map +0 -1
  99. package/dist/cli/commands/context/watchDiff.d.ts.map +0 -1
  100. package/dist/cli/commands/context/watchDiff.js.map +0 -1
  101. package/dist/cli/commands/context/watchMode.d.ts.map +0 -1
  102. package/dist/cli/commands/context/watchMode.js.map +0 -1
@@ -0,0 +1,429 @@
1
+ /**
2
+ * Git utilities for baseline comparison
3
+ * Handles worktree creation, ref validation, and cleanup
4
+ */
5
+ import { spawn } from 'node:child_process';
6
+ import { join } from 'node:path';
7
+ import { rm, mkdir } from 'node:fs/promises';
8
+ import { tmpdir } from 'node:os';
9
+ import { debugLog, debugError } from './debug.js';
10
+ /**
11
+ * Default timeout for regular git operations (30 seconds)
12
+ */
13
+ const DEFAULT_GIT_TIMEOUT = 30000;
14
+ /**
15
+ * Timeout for git ref resolution operations (15 seconds)
16
+ * git rev-parse is lightweight and should complete quickly
17
+ */
18
+ export const GIT_REF_RESOLVE_TIMEOUT = 15000;
19
+ /**
20
+ * Timeout for git ref description operations (15 seconds)
21
+ * git rev-parse --abbrev-ref and --short are lightweight and should complete quickly
22
+ */
23
+ export const GIT_REF_DESCRIBE_TIMEOUT = 15000;
24
+ /**
25
+ * Timeout for git worktree creation (60 seconds)
26
+ * Worktree creation can be slow on large repos due to file checkout operations
27
+ */
28
+ export const GIT_WORKTREE_TIMEOUT = 60000;
29
+ /**
30
+ * Execute a git command and return stdout
31
+ * Uses spawn instead of exec for better security (no shell interpretation)
32
+ * @throws Error if git command fails
33
+ */
34
+ async function execGit(args, options = {}) {
35
+ const cwd = options.cwd ?? process.cwd();
36
+ const timeout = options.timeout ?? DEFAULT_GIT_TIMEOUT;
37
+ const command = `git ${args.join(' ')}`;
38
+ debugLog('git', `Executing: ${command}`, { cwd });
39
+ return new Promise((resolve, reject) => {
40
+ const child = spawn('git', args, {
41
+ cwd,
42
+ timeout,
43
+ stdio: ['ignore', 'pipe', 'pipe'],
44
+ });
45
+ let stdout = '';
46
+ let stderr = '';
47
+ // TypeScript needs explicit type assertion for stdio pipes
48
+ if (child.stdout) {
49
+ child.stdout.on('data', (data) => {
50
+ stdout += data.toString();
51
+ });
52
+ }
53
+ if (child.stderr) {
54
+ child.stderr.on('data', (data) => {
55
+ stderr += data.toString();
56
+ });
57
+ }
58
+ child.on('error', (error) => {
59
+ debugError('git', 'execGit spawn error', {
60
+ command,
61
+ cwd,
62
+ message: error.message,
63
+ });
64
+ reject(new Error(`Git command failed: ${error.message}`));
65
+ });
66
+ child.on('close', (code) => {
67
+ if (code === 0) {
68
+ if (stderr && !stderr.includes('Preparing worktree')) {
69
+ // Some git commands output to stderr even on success
70
+ debugLog('git', `stderr: ${stderr.trim()}`);
71
+ }
72
+ resolve(stdout.trim());
73
+ }
74
+ else {
75
+ debugError('git', 'execGit', {
76
+ command,
77
+ cwd,
78
+ code,
79
+ stderr: stderr.trim(),
80
+ });
81
+ const errorMessage = stderr.trim() || `Command failed with exit code ${code}`;
82
+ reject(new Error(`Git command failed: ${errorMessage}`));
83
+ }
84
+ });
85
+ });
86
+ }
87
+ /**
88
+ * Check if a directory is inside a git repository
89
+ */
90
+ export async function isGitRepo(options = {}) {
91
+ try {
92
+ await execGit(['rev-parse', '--git-dir'], options);
93
+ return true;
94
+ }
95
+ catch {
96
+ return false;
97
+ }
98
+ }
99
+ /**
100
+ * Get the root directory of the git repository
101
+ */
102
+ export async function getGitRoot(options = {}) {
103
+ const root = await execGit(['rev-parse', '--show-toplevel'], options);
104
+ return root;
105
+ }
106
+ /**
107
+ * Check if git worktrees are supported (git >= 2.5)
108
+ */
109
+ export async function supportsWorktrees(options = {}) {
110
+ try {
111
+ // Try to list worktrees - will fail if not supported
112
+ await execGit(['worktree', 'list'], options);
113
+ return true;
114
+ }
115
+ catch {
116
+ return false;
117
+ }
118
+ }
119
+ /**
120
+ * Maximum length for git refs (256 characters)
121
+ * This is a defense-in-depth measure - Git itself will validate refs
122
+ */
123
+ const MAX_REF_LENGTH = 256;
124
+ /**
125
+ * Validate git ref input (lightweight validation)
126
+ * Trims whitespace and checks length, but lets Git be the source of truth for semantic validity
127
+ *
128
+ * @param ref - Git ref to validate
129
+ * @throws Error if ref is empty or exceeds length limit
130
+ */
131
+ function validateGitRef(ref) {
132
+ const trimmed = ref.trim();
133
+ if (trimmed.length === 0) {
134
+ throw new Error('Invalid baseline ref: ref is empty or exceeds 256 characters');
135
+ }
136
+ if (trimmed.length > MAX_REF_LENGTH) {
137
+ throw new Error('Invalid baseline ref: ref is empty or exceeds 256 characters');
138
+ }
139
+ }
140
+ /**
141
+ * Resolve a git ref to its commit hash
142
+ * Validates that the ref exists
143
+ *
144
+ * @param ref - Git ref (branch, tag, commit, HEAD, HEAD~1, etc.)
145
+ * @returns The resolved commit hash
146
+ * @throws Error if ref doesn't exist or is invalid
147
+ */
148
+ export async function resolveGitRef(ref, options = {}) {
149
+ // Lightweight validation: trim whitespace and check length
150
+ // Let Git be the source of truth for semantic validity
151
+ validateGitRef(ref);
152
+ const trimmedRef = ref.trim();
153
+ try {
154
+ const hash = await execGit(['rev-parse', '--verify', trimmedRef], options);
155
+ return hash;
156
+ }
157
+ catch (error) {
158
+ throw new Error(`Invalid git ref "${trimmedRef}": ref does not exist`);
159
+ }
160
+ }
161
+ /**
162
+ * Get a short description of a git ref (for display)
163
+ * Returns branch name, tag name, or short commit hash
164
+ */
165
+ export async function describeGitRef(ref, options = {}) {
166
+ // Use trimmed ref for consistency with resolveGitRef
167
+ const trimmedRef = ref.trim();
168
+ try {
169
+ // Try to get a symbolic name first
170
+ const symbolic = await execGit(['rev-parse', '--abbrev-ref', trimmedRef], options);
171
+ if (symbolic && symbolic !== 'HEAD') {
172
+ return symbolic;
173
+ }
174
+ }
175
+ catch {
176
+ // Ignore - fall through to short hash
177
+ }
178
+ try {
179
+ // Fall back to short commit hash
180
+ const shortHash = await execGit(['rev-parse', '--short', trimmedRef], options);
181
+ return shortHash;
182
+ }
183
+ catch {
184
+ return trimmedRef; // Return trimmed ref if all else fails
185
+ }
186
+ }
187
+ /**
188
+ * Create a git worktree at a specific ref
189
+ *
190
+ * @param ref - Git ref to checkout (branch, tag, commit, etc.)
191
+ * @param targetDir - Directory to create the worktree in (optional, will create temp if not provided)
192
+ * @returns GitWorktreeResult with worktree path and commit info
193
+ * @throws Error if worktree creation fails
194
+ */
195
+ export async function createWorktree(ref, targetDir, options = {}) {
196
+ // Use trimmed ref for consistency
197
+ const trimmedRef = ref.trim();
198
+ // Validate we're in a git repo
199
+ if (!(await isGitRepo(options))) {
200
+ throw new Error('Not a git repository');
201
+ }
202
+ // Check worktree support
203
+ if (!(await supportsWorktrees(options))) {
204
+ throw new Error('Git worktrees not supported (requires git >= 2.5)');
205
+ }
206
+ // Resolve the ref to a commit hash (this will also validate the ref)
207
+ const commitHash = await resolveGitRef(trimmedRef, options);
208
+ // Generate worktree path if not provided
209
+ const worktreePath = targetDir ?? join(tmpdir(), `logicstamp-worktree-${Date.now()}-${commitHash.substring(0, 8)}`);
210
+ debugLog('git', `Creating worktree at ${worktreePath} for ref ${trimmedRef}`, {
211
+ commitHash,
212
+ });
213
+ try {
214
+ // Create parent directory if needed
215
+ await mkdir(worktreePath, { recursive: true });
216
+ // Remove the directory we just created (git worktree add needs it to not exist)
217
+ await rm(worktreePath, { recursive: true, force: true });
218
+ // Create the worktree in detached HEAD mode
219
+ await execGit(['worktree', 'add', '--detach', worktreePath, commitHash], options);
220
+ debugLog('git', `Worktree created successfully at ${worktreePath}`);
221
+ return {
222
+ worktreePath,
223
+ commitHash,
224
+ ref: trimmedRef,
225
+ };
226
+ }
227
+ catch (error) {
228
+ // Clean up on failure
229
+ try {
230
+ await rm(worktreePath, { recursive: true, force: true });
231
+ }
232
+ catch {
233
+ // Ignore cleanup errors
234
+ }
235
+ const err = error;
236
+ debugError('git', 'createWorktree', {
237
+ ref: trimmedRef,
238
+ targetDir: worktreePath,
239
+ message: err.message,
240
+ });
241
+ throw new Error(`Failed to create worktree for "${trimmedRef}": ${err.message}`);
242
+ }
243
+ }
244
+ /**
245
+ * Remove a git worktree and clean up its directory
246
+ *
247
+ * @param worktreePath - Path to the worktree to remove
248
+ */
249
+ export async function removeWorktree(worktreePath, options = {}) {
250
+ debugLog('git', `Removing worktree at ${worktreePath}`);
251
+ try {
252
+ // First, try to remove via git worktree command
253
+ await execGit(['worktree', 'remove', '--force', worktreePath], options);
254
+ }
255
+ catch (error) {
256
+ // If git worktree remove fails, try manual cleanup
257
+ debugLog('git', `git worktree remove failed, trying manual cleanup`);
258
+ try {
259
+ // Remove the directory
260
+ await rm(worktreePath, { recursive: true, force: true });
261
+ // Prune stale worktree entries
262
+ await execGit(['worktree', 'prune'], options);
263
+ }
264
+ catch (cleanupError) {
265
+ debugError('git', 'removeWorktree', {
266
+ worktreePath,
267
+ message: cleanupError.message,
268
+ });
269
+ // Don't throw - best effort cleanup
270
+ }
271
+ }
272
+ debugLog('git', `Worktree removed: ${worktreePath}`);
273
+ }
274
+ /**
275
+ * Check if there are uncommitted changes in the working directory
276
+ */
277
+ export async function hasUncommittedChanges(options = {}) {
278
+ try {
279
+ const status = await execGit(['status', '--porcelain'], options);
280
+ return status.length > 0;
281
+ }
282
+ catch {
283
+ return false;
284
+ }
285
+ }
286
+ /**
287
+ * Get the current branch name (or "HEAD" if detached)
288
+ */
289
+ export async function getCurrentBranch(options = {}) {
290
+ try {
291
+ const branch = await execGit(['rev-parse', '--abbrev-ref', 'HEAD'], options);
292
+ return branch;
293
+ }
294
+ catch {
295
+ return 'HEAD';
296
+ }
297
+ }
298
+ /**
299
+ * Parse a baseline string into ref and type
300
+ *
301
+ * @param baseline - Baseline string (e.g., "git:main", "git:HEAD", "git:v1.0.0")
302
+ * @returns Parsed baseline info or null if not a git baseline
303
+ */
304
+ export function parseGitBaseline(baseline) {
305
+ if (!baseline.startsWith('git:')) {
306
+ return null;
307
+ }
308
+ const ref = baseline.substring(4); // Remove "git:" prefix
309
+ if (!ref) {
310
+ return null;
311
+ }
312
+ return { ref };
313
+ }
314
+ /**
315
+ * Create directory structure for git baseline comparison
316
+ * Uses .logicstamp/compare/ for context files
317
+ */
318
+ export async function createBaselinePaths(projectRoot, ref) {
319
+ const timestamp = Date.now();
320
+ const safeRef = ref.replace(/[^a-zA-Z0-9_-]/g, '_').substring(0, 20);
321
+ // Context files go in .logicstamp/compare/
322
+ const compareRoot = join(projectRoot, '.logicstamp', 'compare');
323
+ const baselineDir = join(compareRoot, 'baseline');
324
+ const currentDir = join(compareRoot, 'current');
325
+ // Worktree goes in system temp (it's large)
326
+ const worktreeDir = join(tmpdir(), `logicstamp-worktree-${safeRef}-${timestamp}`);
327
+ // Create directories
328
+ await mkdir(baselineDir, { recursive: true });
329
+ await mkdir(currentDir, { recursive: true });
330
+ return {
331
+ tempRoot: compareRoot,
332
+ baselineDir,
333
+ currentDir,
334
+ worktreeDir,
335
+ };
336
+ }
337
+ /**
338
+ * Check if a file is git-ignored
339
+ * @param filePath - File path relative to git root or absolute path
340
+ * @param options - Git options
341
+ * @returns true if the file is git-ignored, false otherwise
342
+ */
343
+ export async function isGitIgnored(filePath, options = {}) {
344
+ try {
345
+ // git check-ignore --quiet returns exit code 0 if file is ignored, 1 if not ignored
346
+ // execGit throws on non-zero exit codes, so if it succeeds, file is ignored
347
+ await execGit(['check-ignore', '--quiet', filePath], options);
348
+ return true; // Command succeeded, file is ignored
349
+ }
350
+ catch {
351
+ // Command failed (exit code 1), file is not ignored
352
+ return false;
353
+ }
354
+ }
355
+ /**
356
+ * Filter out git-ignored files from an array of file paths
357
+ * @param filePaths - Array of file paths to filter (may be normalized basenames in git baseline mode)
358
+ * @param projectRoot - Project root directory (for resolving relative paths)
359
+ * @param options - Git options
360
+ * @returns Array of file paths that are NOT git-ignored
361
+ */
362
+ export async function filterGitIgnoredFiles(filePaths, projectRoot, options = {}) {
363
+ const { relative } = await import('node:path');
364
+ const filtered = [];
365
+ for (const filePath of filePaths) {
366
+ let isIgnored = false;
367
+ // If the path contains a slash, it's a full relative path
368
+ if (filePath.includes('/')) {
369
+ // Convert to relative path from project root if needed
370
+ let relativePath;
371
+ if (filePath.startsWith('/') || filePath.match(/^[A-Z]:/)) {
372
+ // Absolute path - convert to relative
373
+ relativePath = relative(projectRoot, filePath).replace(/\\/g, '/');
374
+ }
375
+ else {
376
+ relativePath = filePath;
377
+ }
378
+ // Check if file is git-ignored
379
+ isIgnored = await isGitIgnored(relativePath, { ...options, cwd: projectRoot });
380
+ }
381
+ else {
382
+ // It's just a basename (normalized in git baseline mode)
383
+ // Check if the basename itself is git-ignored (works for root-level files like next-env.d.ts)
384
+ isIgnored = await isGitIgnored(filePath, { ...options, cwd: projectRoot });
385
+ // Also check common patterns that might match this basename
386
+ if (!isIgnored) {
387
+ // Check common git-ignore patterns that might match
388
+ const patternsToCheck = [
389
+ `**/${filePath}`,
390
+ `*/${filePath}`,
391
+ ];
392
+ for (const pattern of patternsToCheck) {
393
+ if (await isGitIgnored(pattern, { ...options, cwd: projectRoot })) {
394
+ isIgnored = true;
395
+ break;
396
+ }
397
+ }
398
+ }
399
+ }
400
+ if (!isIgnored) {
401
+ filtered.push(filePath);
402
+ }
403
+ }
404
+ return filtered;
405
+ }
406
+ /**
407
+ * Clean up git baseline comparison directories
408
+ */
409
+ export async function cleanupBaselinePaths(paths, options = {}) {
410
+ debugLog('git', 'Cleaning up baseline paths', { ...paths });
411
+ // Remove worktree first (via git)
412
+ try {
413
+ await removeWorktree(paths.worktreeDir, options);
414
+ }
415
+ catch {
416
+ // Best effort - worktree might already be removed
417
+ }
418
+ // Remove context directories
419
+ try {
420
+ await rm(paths.tempRoot, { recursive: true, force: true });
421
+ }
422
+ catch (error) {
423
+ debugError('git', 'cleanupBaselinePaths', {
424
+ tempRoot: paths.tempRoot,
425
+ message: error.message,
426
+ });
427
+ }
428
+ }
429
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/utils/hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhF;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAShD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC;AACvD,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC;AAYjE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,CAS/D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,GAAG,MAAM,CA6DtF;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,EACvD,KAAK,EAAE,MAAM,EACb,aAAa,SAAQ,GACpB,MAAM,CAeR;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAiBpD;AAwBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjE"}
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/utils/hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhF;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAShD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC;AACvD,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC;AAYjE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,CAS/D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,GAAG,MAAM,CA6DtF;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,EACvD,KAAK,EAAE,MAAM,EACb,aAAa,SAAQ,GACpB,MAAM,CAeR;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAqBpD;AAoCD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjE"}
@@ -153,8 +153,9 @@ export function bundleHash(nodes, depth, schemaVersion = '0.1') {
153
153
  */
154
154
  export function stableStringify(obj) {
155
155
  return JSON.stringify(obj, (k, v) => {
156
- if (v && typeof v === 'object' && !Array.isArray(v)) {
157
- // Sort object keys
156
+ // Explicitly check for null (typeof null === 'object' in JavaScript)
157
+ if (v !== null && typeof v === 'object' && !Array.isArray(v)) {
158
+ // Sort object keys recursively
158
159
  return Object.keys(v)
159
160
  .sort()
160
161
  .reduce((o, key) => {
@@ -163,7 +164,10 @@ export function stableStringify(obj) {
163
164
  }, {});
164
165
  }
165
166
  if (Array.isArray(v)) {
166
- // Sort arrays for stability
167
+ // NOTE: Arrays are expected to be normalized and deterministically ordered
168
+ // by the extraction/normalization layer before reaching stableStringify.
169
+ // We only sort primitives here to prevent accidental ordering issues.
170
+ // Arrays of objects should be pre-sorted elsewhere (e.g., via sortObject).
167
171
  return [...v].sort();
168
172
  }
169
173
  return v;
@@ -171,12 +175,24 @@ export function stableStringify(obj) {
171
175
  }
172
176
  /**
173
177
  * Sort object keys for stable hashing
178
+ * Recursively sorts nested objects and arrays to ensure complete determinism
174
179
  */
175
180
  function sortObject(obj) {
176
181
  const sorted = Object.keys(obj)
177
182
  .sort()
178
183
  .reduce((acc, key) => {
179
- acc[key] = obj[key];
184
+ const value = obj[key];
185
+ // Recursively sort nested objects
186
+ if (value && typeof value === 'object' && !Array.isArray(value) && value !== null) {
187
+ acc[key] = sortObject(value);
188
+ }
189
+ // Sort arrays for determinism (e.g., literals arrays in PropType objects)
190
+ else if (Array.isArray(value)) {
191
+ acc[key] = [...value].sort();
192
+ }
193
+ else {
194
+ acc[key] = value;
195
+ }
180
196
  return acc;
181
197
  }, {});
182
198
  return sorted;
@@ -1 +1 @@
1
- {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/utils/hash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/utils/hash.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "logicstamp-context",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "description": "The context compiler for TypeScript. Compile your codebase into deterministic architectural contracts and dependency graphs for AI coding workflows.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/compare.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,KAAK,CAAC;YACZ,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;YAChG,GAAG,EAAE,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,CAAC;SACV,CAAC,CAAC;KACJ,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;IAChD,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,OAAO,EAAE;QACP,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,sBAAsB,EAAE,MAAM,CAAC;QAC/B,sBAAsB,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA+GD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAuJpF;AAiKD;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAyGxG;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CA2InH;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBnH"}