@principal-ai/codebase-composition 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 (129) hide show
  1. package/README.md +67 -0
  2. package/dist/index.d.ts +9 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +23 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/modules/DependencyLayerModule.d.ts +44 -0
  7. package/dist/modules/DependencyLayerModule.d.ts.map +1 -0
  8. package/dist/modules/DependencyLayerModule.js +286 -0
  9. package/dist/modules/DependencyLayerModule.js.map +1 -0
  10. package/dist/modules/FileSystemModule.d.ts +30 -0
  11. package/dist/modules/FileSystemModule.d.ts.map +1 -0
  12. package/dist/modules/FileSystemModule.js +46 -0
  13. package/dist/modules/FileSystemModule.js.map +1 -0
  14. package/dist/modules/FileTypeLayerModule.d.ts +34 -0
  15. package/dist/modules/FileTypeLayerModule.d.ts.map +1 -0
  16. package/dist/modules/FileTypeLayerModule.js +169 -0
  17. package/dist/modules/FileTypeLayerModule.js.map +1 -0
  18. package/dist/modules/FrameworkLayerModule.d.ts +22 -0
  19. package/dist/modules/FrameworkLayerModule.d.ts.map +1 -0
  20. package/dist/modules/FrameworkLayerModule.js +388 -0
  21. package/dist/modules/FrameworkLayerModule.js.map +1 -0
  22. package/dist/modules/PackageLayerModule.d.ts +23 -0
  23. package/dist/modules/PackageLayerModule.d.ts.map +1 -0
  24. package/dist/modules/PackageLayerModule.js +810 -0
  25. package/dist/modules/PackageLayerModule.js.map +1 -0
  26. package/dist/modules/TypeExtractionModule.d.ts +37 -0
  27. package/dist/modules/TypeExtractionModule.d.ts.map +1 -0
  28. package/dist/modules/TypeExtractionModule.js +180 -0
  29. package/dist/modules/TypeExtractionModule.js.map +1 -0
  30. package/dist/modules/VersionControlLayerModule.d.ts +10 -0
  31. package/dist/modules/VersionControlLayerModule.d.ts.map +1 -0
  32. package/dist/modules/VersionControlLayerModule.js +32 -0
  33. package/dist/modules/VersionControlLayerModule.js.map +1 -0
  34. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/index.d.ts +4 -0
  35. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/index.d.ts.map +1 -0
  36. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/index.js +7 -0
  37. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/index.js.map +1 -0
  38. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/category.d.ts +15 -0
  39. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/category.d.ts.map +1 -0
  40. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/category.js +3 -0
  41. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/category.js.map +1 -0
  42. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/product.d.ts +34 -0
  43. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/product.d.ts.map +1 -0
  44. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/product.js +23 -0
  45. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/product.js.map +1 -0
  46. package/dist/modules/__fixtures__/typescript-packages/simple-types/index.d.ts +39 -0
  47. package/dist/modules/__fixtures__/typescript-packages/simple-types/index.d.ts.map +1 -0
  48. package/dist/modules/__fixtures__/typescript-packages/simple-types/index.js +39 -0
  49. package/dist/modules/__fixtures__/typescript-packages/simple-types/index.js.map +1 -0
  50. package/dist/modules/extractors/TypeScriptExtractor.d.ts +18 -0
  51. package/dist/modules/extractors/TypeScriptExtractor.d.ts.map +1 -0
  52. package/dist/modules/extractors/TypeScriptExtractor.js +361 -0
  53. package/dist/modules/extractors/TypeScriptExtractor.js.map +1 -0
  54. package/dist/modules/index.d.ts +13 -0
  55. package/dist/modules/index.d.ts.map +1 -0
  56. package/dist/modules/index.js +21 -0
  57. package/dist/modules/index.js.map +1 -0
  58. package/dist/providers/GitVersionControlProvider.d.ts +108 -0
  59. package/dist/providers/GitVersionControlProvider.d.ts.map +1 -0
  60. package/dist/providers/GitVersionControlProvider.js +380 -0
  61. package/dist/providers/GitVersionControlProvider.js.map +1 -0
  62. package/dist/providers/PackageManagerApiProvider.d.ts +78 -0
  63. package/dist/providers/PackageManagerApiProvider.d.ts.map +1 -0
  64. package/dist/providers/PackageManagerApiProvider.js +14 -0
  65. package/dist/providers/PackageManagerApiProvider.js.map +1 -0
  66. package/dist/providers/index.d.ts +4 -0
  67. package/dist/providers/index.d.ts.map +1 -0
  68. package/dist/providers/index.js +10 -0
  69. package/dist/providers/index.js.map +1 -0
  70. package/dist/services/FilesystemService.d.ts +59 -0
  71. package/dist/services/FilesystemService.d.ts.map +1 -0
  72. package/dist/services/FilesystemService.js +391 -0
  73. package/dist/services/FilesystemService.js.map +1 -0
  74. package/dist/services/index.d.ts +2 -0
  75. package/dist/services/index.d.ts.map +1 -0
  76. package/dist/services/index.js +7 -0
  77. package/dist/services/index.js.map +1 -0
  78. package/dist/types/file-system.d.ts +7 -0
  79. package/dist/types/file-system.d.ts.map +1 -0
  80. package/dist/types/file-system.js +7 -0
  81. package/dist/types/file-system.js.map +1 -0
  82. package/dist/types/index.d.ts +4 -0
  83. package/dist/types/index.d.ts.map +1 -0
  84. package/dist/types/index.js +3 -0
  85. package/dist/types/index.js.map +1 -0
  86. package/dist/types/layer-types.d.ts +187 -0
  87. package/dist/types/layer-types.d.ts.map +1 -0
  88. package/dist/types/layer-types.js +7 -0
  89. package/dist/types/layer-types.js.map +1 -0
  90. package/dist/types/version-control-layer.d.ts +53 -0
  91. package/dist/types/version-control-layer.d.ts.map +1 -0
  92. package/dist/types/version-control-layer.js +3 -0
  93. package/dist/types/version-control-layer.js.map +1 -0
  94. package/dist/types/workspace-boundaries.d.ts +17 -0
  95. package/dist/types/workspace-boundaries.d.ts.map +1 -0
  96. package/dist/types/workspace-boundaries.js +7 -0
  97. package/dist/types/workspace-boundaries.js.map +1 -0
  98. package/package.json +42 -0
  99. package/src/index.ts +62 -0
  100. package/src/modules/DependencyLayerModule.ts +329 -0
  101. package/src/modules/FileSystemModule.ts +65 -0
  102. package/src/modules/FileTypeLayerModule.ts +199 -0
  103. package/src/modules/FrameworkLayerModule.ts +437 -0
  104. package/src/modules/PackageLayerModule.ts +979 -0
  105. package/src/modules/TypeExtractionModule.test.ts +340 -0
  106. package/src/modules/TypeExtractionModule.ts +180 -0
  107. package/src/modules/VersionControlLayerModule.ts +31 -0
  108. package/src/modules/__fixtures__/typescript-packages/complex-types/package.json +6 -0
  109. package/src/modules/__fixtures__/typescript-packages/complex-types/src/index.ts +6 -0
  110. package/src/modules/__fixtures__/typescript-packages/complex-types/src/models/category.ts +15 -0
  111. package/src/modules/__fixtures__/typescript-packages/complex-types/src/models/product.ts +48 -0
  112. package/src/modules/__fixtures__/typescript-packages/javascript-only/index.js +18 -0
  113. package/src/modules/__fixtures__/typescript-packages/javascript-only/package.json +5 -0
  114. package/src/modules/__fixtures__/typescript-packages/simple-types/index.ts +53 -0
  115. package/src/modules/__fixtures__/typescript-packages/simple-types/package.json +6 -0
  116. package/src/modules/extractors/README.md +55 -0
  117. package/src/modules/extractors/TypeScriptExtractor.ts +409 -0
  118. package/src/modules/index.ts +13 -0
  119. package/src/providers/GitVersionControlProvider.ts +500 -0
  120. package/src/providers/PackageManagerApiProvider.ts +108 -0
  121. package/src/providers/README.md +88 -0
  122. package/src/providers/index.ts +17 -0
  123. package/src/services/FilesystemService.ts +530 -0
  124. package/src/services/index.ts +2 -0
  125. package/src/types/file-system.ts +11 -0
  126. package/src/types/index.ts +24 -0
  127. package/src/types/layer-types.ts +264 -0
  128. package/src/types/version-control-layer.ts +87 -0
  129. package/src/types/workspace-boundaries.ts +17 -0
package/README.md ADDED
@@ -0,0 +1,67 @@
1
+ # @principal-ai/codebase-composition
2
+
3
+ Codebase decomposition into semantic layers for the Principal AI ecosystem.
4
+
5
+ ## Overview
6
+
7
+ This package decomposes and composes codebases into structured semantic layers, enabling sophisticated analysis through layer-by-layer examination of project architecture.
8
+
9
+ ## Key Features
10
+
11
+ - **Package Layer** - Discover and analyze package.json, requirements.txt, Cargo.toml, etc.
12
+ - **Framework Layer** - Identify React, Vue, Angular, and other frameworks
13
+ - **Type Layer** - Extract TypeScript types and interfaces
14
+ - **Version Control Layer** - Git integration for ignore patterns and file filtering
15
+ - **File Type Layer** - Categorize and analyze different file types
16
+ - **Dependency Layer** - Track and analyze project dependencies
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ bun install @principal-ai/codebase-composition
22
+ ```
23
+
24
+ ## Usage
25
+
26
+ ```typescript
27
+ import { PackageLayerModule, FrameworkLayerModule } from '@principal-ai/codebase-composition';
28
+ import { FileTree } from '@principal-ai/repository-abstraction';
29
+
30
+ // Use layer modules to analyze your codebase
31
+ const packageLayer = new PackageLayerModule();
32
+ const frameworkLayer = new FrameworkLayerModule();
33
+
34
+ // Analyze a file tree
35
+ const analysis = await packageLayer.analyze(fileTree);
36
+ ```
37
+
38
+ ## Dependencies
39
+
40
+ - `@principal-ai/repository-abstraction` - For tree abstractions
41
+ - `ignore` - Gitignore pattern matching
42
+ - `js-toml` - TOML parsing
43
+ - `pip-requirements-js` - Python requirements parsing
44
+ - `typescript` - Type extraction
45
+
46
+ ## Development
47
+
48
+ ```bash
49
+ # Install dependencies
50
+ bun install
51
+
52
+ # Build the package
53
+ bun run build
54
+
55
+ # Run tests
56
+ bun test
57
+
58
+ # Type checking
59
+ bun run typecheck
60
+
61
+ # Watch mode for development
62
+ bun run dev
63
+ ```
64
+
65
+ ## License
66
+
67
+ Private package - not for public distribution.
@@ -0,0 +1,9 @@
1
+ export type { FilePattern, FileSet, BaseLayer, PackageCommand, ConfigFile, PackageLayer, FileSystemFilterLayer, VersionControlLayer, VersionControlIgnorePattern, VersionControlProvider, FileInfo, DirectoryInfo, FileTree, FileSystemTree, // Alias for backward compatibility
2
+ ExtractedType, PackageTypes, TypeDefinitionLayer, TypeExtractor, } from './types';
3
+ export { FileTypeLayerModule, PackageLayerModule, VersionControlLayerFactory, DependencyLayerModule, FrameworkLayerModule, FileSystemModule, TypeExtractionModule, } from './modules';
4
+ export type { FileTypeInfo, FileSystemModuleConfig, FileSystemLoadResult, TypeExtractionOptions, TypeScriptExtractionOptions, } from './modules';
5
+ export { TypeScriptExtractor } from './modules';
6
+ export { FilesystemService } from './services';
7
+ export { GitVersionControlProvider, PackageManagerApiProvider } from './providers';
8
+ export type { FileSystemAdapter, GitAdapter, ShellAdapter, PackageManager, PackageVersionInfo, VersionCheckResult, VulnerabilityInfo, VulnerabilityCheckResult, LicenseInfo, LicenseCheckResult, DependencyCheckProgress, BatchCheckOptions, } from './providers';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,WAAW,EACX,OAAO,EACP,SAAS,EACT,cAAc,EACd,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,cAAc,EAAE,mCAAmC;AACnD,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,aAAa,GACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,YAAY,EACZ,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACnF,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ // Main export file for layers module
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PackageManagerApiProvider = exports.GitVersionControlProvider = exports.FilesystemService = exports.TypeScriptExtractor = exports.TypeExtractionModule = exports.FileSystemModule = exports.FrameworkLayerModule = exports.DependencyLayerModule = exports.VersionControlLayerFactory = exports.PackageLayerModule = exports.FileTypeLayerModule = void 0;
5
+ // Modules
6
+ var modules_1 = require("./modules");
7
+ Object.defineProperty(exports, "FileTypeLayerModule", { enumerable: true, get: function () { return modules_1.FileTypeLayerModule; } });
8
+ Object.defineProperty(exports, "PackageLayerModule", { enumerable: true, get: function () { return modules_1.PackageLayerModule; } });
9
+ Object.defineProperty(exports, "VersionControlLayerFactory", { enumerable: true, get: function () { return modules_1.VersionControlLayerFactory; } });
10
+ Object.defineProperty(exports, "DependencyLayerModule", { enumerable: true, get: function () { return modules_1.DependencyLayerModule; } });
11
+ Object.defineProperty(exports, "FrameworkLayerModule", { enumerable: true, get: function () { return modules_1.FrameworkLayerModule; } });
12
+ Object.defineProperty(exports, "FileSystemModule", { enumerable: true, get: function () { return modules_1.FileSystemModule; } });
13
+ Object.defineProperty(exports, "TypeExtractionModule", { enumerable: true, get: function () { return modules_1.TypeExtractionModule; } });
14
+ var modules_2 = require("./modules");
15
+ Object.defineProperty(exports, "TypeScriptExtractor", { enumerable: true, get: function () { return modules_2.TypeScriptExtractor; } });
16
+ // Services
17
+ var services_1 = require("./services");
18
+ Object.defineProperty(exports, "FilesystemService", { enumerable: true, get: function () { return services_1.FilesystemService; } });
19
+ // Providers
20
+ var providers_1 = require("./providers");
21
+ Object.defineProperty(exports, "GitVersionControlProvider", { enumerable: true, get: function () { return providers_1.GitVersionControlProvider; } });
22
+ Object.defineProperty(exports, "PackageManagerApiProvider", { enumerable: true, get: function () { return providers_1.PackageManagerApiProvider; } });
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;AAwBrC,UAAU;AACV,qCAQmB;AAPjB,8GAAA,mBAAmB,OAAA;AACnB,6GAAA,kBAAkB,OAAA;AAClB,qHAAA,0BAA0B,OAAA;AAC1B,gHAAA,qBAAqB,OAAA;AACrB,+GAAA,oBAAoB,OAAA;AACpB,2GAAA,gBAAgB,OAAA;AAChB,+GAAA,oBAAoB,OAAA;AAStB,qCAAgD;AAAvC,8GAAA,mBAAmB,OAAA;AAE5B,WAAW;AACX,uCAA+C;AAAtC,6GAAA,iBAAiB,OAAA;AAE1B,YAAY;AACZ,yCAAmF;AAA1E,sHAAA,yBAAyB,OAAA;AAAE,sHAAA,yBAAyB,OAAA"}
@@ -0,0 +1,44 @@
1
+ import { DependencyLayer, PackageLayer } from '../types/layer-types';
2
+ export declare class DependencyLayerModule {
3
+ /**
4
+ * Create dependency layers from package layers
5
+ */
6
+ createDependencyLayers(packageLayers: PackageLayer[]): DependencyLayer[];
7
+ /**
8
+ * Add a dependency to the map
9
+ */
10
+ private addDependency;
11
+ /**
12
+ * Get JSON paths for content extraction
13
+ */
14
+ private getJsonPaths;
15
+ /**
16
+ * Get color for dependency based on type and name
17
+ */
18
+ private getDependencyColor;
19
+ /**
20
+ * Get icon for dependency based on its name/type
21
+ */
22
+ private getDependencyIcon;
23
+ /**
24
+ * Analyze dependency health and conflicts
25
+ */
26
+ analyzeDependencyHealth(dependencyLayers: DependencyLayer[]): {
27
+ duplicates: Array<{
28
+ name: string;
29
+ versions: string[];
30
+ packages: Record<string, string>;
31
+ }>;
32
+ outdated: Array<{
33
+ name: string;
34
+ version: string;
35
+ latest?: string;
36
+ }>;
37
+ security: Array<{
38
+ name: string;
39
+ severity: 'low' | 'medium' | 'high';
40
+ issue: string;
41
+ }>;
42
+ };
43
+ }
44
+ //# sourceMappingURL=DependencyLayerModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependencyLayerModule.d.ts","sourceRoot":"","sources":["../../src/modules/DependencyLayerModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAW,MAAM,sBAAsB,CAAC;AAW9E,qBAAa,qBAAqB;IAChC;;OAEG;IACH,sBAAsB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE;IAuGxE;;OAEG;IACH,OAAO,CAAC,aAAa;IAwCrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAwBpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;OAEG;IACH,uBAAuB,CAAC,gBAAgB,EAAE,eAAe,EAAE,GAAG;QAC5D,UAAU,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SAAE,CAAC,CAAC;QAC1F,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACpE,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACvF;CAoEF"}
@@ -0,0 +1,286 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DependencyLayerModule = void 0;
4
+ class DependencyLayerModule {
5
+ /**
6
+ * Create dependency layers from package layers
7
+ */
8
+ createDependencyLayers(packageLayers) {
9
+ const dependencyMap = new Map();
10
+ // Collect all dependencies from all packages
11
+ packageLayers.forEach(packageLayer => {
12
+ const { dependencies, devDependencies, peerDependencies } = packageLayer.packageData;
13
+ const packageName = packageLayer.packageData.name;
14
+ const packagePath = packageLayer.packageData.path;
15
+ // Process production dependencies
16
+ Object.entries(dependencies).forEach(([depName, version]) => {
17
+ this.addDependency(dependencyMap, depName, version, packageName, packagePath, 'prod');
18
+ });
19
+ // Process dev dependencies
20
+ Object.entries(devDependencies).forEach(([depName, version]) => {
21
+ this.addDependency(dependencyMap, depName, version, packageName, packagePath, 'dev');
22
+ });
23
+ // Process peer dependencies
24
+ Object.entries(peerDependencies).forEach(([depName, version]) => {
25
+ this.addDependency(dependencyMap, depName, version, packageName, packagePath, 'peer');
26
+ });
27
+ });
28
+ // Convert to DependencyLayer array
29
+ const dependencyLayers = [];
30
+ dependencyMap.forEach((depInfo, depName) => {
31
+ // For each unique version of this dependency
32
+ depInfo.versions.forEach((packageNames, version) => {
33
+ const declaredIn = Array.from(packageNames);
34
+ const isDev = declaredIn.every(pkg => depInfo.isDev.has(pkg));
35
+ const isPeer = declaredIn.some(pkg => depInfo.isPeer.has(pkg));
36
+ // Create file patterns for all package.json files that declare this dependency
37
+ const patterns = declaredIn.map(pkgName => {
38
+ const path = depInfo.packagePaths.get(pkgName) || '.';
39
+ return {
40
+ type: 'exact',
41
+ pattern: path === '.' ? 'package.json' : `${path}/package.json`,
42
+ description: `${pkgName} package manifest`,
43
+ };
44
+ });
45
+ // Create the source file set
46
+ const sourceFileSet = {
47
+ id: `dep-source-${depName}-${version}`,
48
+ name: 'Package manifests',
49
+ patterns,
50
+ matchedFiles: patterns.map(p => p.pattern),
51
+ fileCount: patterns.length,
52
+ };
53
+ // Determine the dependency type for the ID
54
+ const depType = isPeer ? 'peer' : isDev ? 'dev' : 'prod';
55
+ const layer = {
56
+ id: `dependency-${depType}-${depName}-${version.replace(/[^a-zA-Z0-9]/g, '-')}`,
57
+ name: depName,
58
+ type: 'dependency',
59
+ enabled: false, // Dependencies are not enabled by default
60
+ derivedFrom: {
61
+ fileSets: [sourceFileSet],
62
+ derivationType: 'content',
63
+ description: `${depName}@${version} ${isPeer ? 'peer ' : ''}${isDev ? 'dev ' : ''}dependency`,
64
+ contentExtraction: {
65
+ method: 'parse',
66
+ parser: {
67
+ format: 'json',
68
+ paths: this.getJsonPaths(depName, isDev, isPeer, declaredIn, depInfo),
69
+ },
70
+ },
71
+ },
72
+ dependencyData: {
73
+ name: depName,
74
+ version,
75
+ isDev,
76
+ isPeer,
77
+ declaredIn: declaredIn.map(pkgName => {
78
+ // Find the package layer ID
79
+ const packageLayer = packageLayers.find(p => p.packageData.name === pkgName);
80
+ return packageLayer?.id || `package-${pkgName}`;
81
+ }),
82
+ sourceFile: sourceFileSet,
83
+ },
84
+ color: this.getDependencyColor(depName, isDev, isPeer),
85
+ icon: this.getDependencyIcon(depName),
86
+ pillar: 'foundationHealth',
87
+ };
88
+ dependencyLayers.push(layer);
89
+ });
90
+ });
91
+ // Sort by dependency name and version
92
+ return dependencyLayers.sort((a, b) => {
93
+ const nameCompare = a.name.localeCompare(b.name);
94
+ if (nameCompare !== 0)
95
+ return nameCompare;
96
+ return a.dependencyData.version.localeCompare(b.dependencyData.version);
97
+ });
98
+ }
99
+ /**
100
+ * Add a dependency to the map
101
+ */
102
+ addDependency(dependencyMap, depName, version, packageName, packagePath, type) {
103
+ if (!dependencyMap.has(depName)) {
104
+ dependencyMap.set(depName, {
105
+ name: depName,
106
+ versions: new Map(),
107
+ isDev: new Set(),
108
+ isPeer: new Set(),
109
+ isProd: new Set(),
110
+ packagePaths: new Map(),
111
+ });
112
+ }
113
+ const depInfo = dependencyMap.get(depName);
114
+ // Add version
115
+ if (!depInfo.versions.has(version)) {
116
+ depInfo.versions.set(version, new Set());
117
+ }
118
+ depInfo.versions.get(version).add(packageName);
119
+ // Track package path
120
+ depInfo.packagePaths.set(packageName, packagePath);
121
+ // Track dependency type
122
+ if (type === 'dev') {
123
+ depInfo.isDev.add(packageName);
124
+ }
125
+ else if (type === 'peer') {
126
+ depInfo.isPeer.add(packageName);
127
+ }
128
+ else {
129
+ depInfo.isProd.add(packageName);
130
+ }
131
+ }
132
+ /**
133
+ * Get JSON paths for content extraction
134
+ */
135
+ getJsonPaths(depName, isDev, isPeer, declaredIn, depInfo) {
136
+ const paths = [];
137
+ declaredIn.forEach(pkgName => {
138
+ if (depInfo.isProd.has(pkgName)) {
139
+ paths.push(`dependencies.${depName}`);
140
+ }
141
+ if (depInfo.isDev.has(pkgName)) {
142
+ paths.push(`devDependencies.${depName}`);
143
+ }
144
+ if (depInfo.isPeer.has(pkgName)) {
145
+ paths.push(`peerDependencies.${depName}`);
146
+ }
147
+ });
148
+ return paths;
149
+ }
150
+ /**
151
+ * Get color for dependency based on type and name
152
+ */
153
+ getDependencyColor(name, isDev, isPeer) {
154
+ // Special colors for common dependencies
155
+ const specialColors = {
156
+ react: '#61DAFB',
157
+ 'react-dom': '#61DAFB',
158
+ vue: '#4FC08D',
159
+ angular: '#DD0031',
160
+ typescript: '#3178C6',
161
+ webpack: '#8DD6F9',
162
+ vite: '#646CFF',
163
+ jest: '#C21325',
164
+ eslint: '#4B32C3',
165
+ prettier: '#F7B93E',
166
+ lodash: '#3492FF',
167
+ axios: '#5A29E4',
168
+ express: '#000000',
169
+ next: '#000000',
170
+ tailwindcss: '#06B6D4',
171
+ };
172
+ if (specialColors[name]) {
173
+ return specialColors[name];
174
+ }
175
+ // Default colors by type
176
+ if (isPeer)
177
+ return '#FF6B6B'; // Red for peer deps
178
+ if (isDev)
179
+ return '#FFA94D'; // Orange for dev deps
180
+ return '#40C057'; // Green for production deps
181
+ }
182
+ /**
183
+ * Get icon for dependency based on its name/type
184
+ */
185
+ getDependencyIcon(name) {
186
+ // Special icons for common dependency types
187
+ if (name.includes('react'))
188
+ return 'atom';
189
+ if (name.includes('vue'))
190
+ return 'triangle';
191
+ if (name.includes('angular'))
192
+ return 'hexagon';
193
+ if (name.includes('test') || name.includes('jest') || name.includes('mocha'))
194
+ return 'test-tube';
195
+ if (name.includes('lint') || name.includes('eslint'))
196
+ return 'check-circle';
197
+ if (name.includes('prettier'))
198
+ return 'palette';
199
+ if (name.includes('webpack') || name.includes('rollup') || name.includes('parcel'))
200
+ return 'package';
201
+ if (name.includes('vite') || name.includes('esbuild'))
202
+ return 'zap';
203
+ if (name.includes('typescript') || name.includes('ts-'))
204
+ return 'file-code';
205
+ if (name.includes('css') || name.includes('style'))
206
+ return 'palette';
207
+ if (name.includes('axios') || name.includes('fetch'))
208
+ return 'download';
209
+ if (name.includes('express') || name.includes('koa') || name.includes('fastify'))
210
+ return 'server';
211
+ if (name.includes('database') || name.includes('mongo') || name.includes('postgres'))
212
+ return 'database';
213
+ if (name.includes('auth') || name.includes('jwt'))
214
+ return 'lock';
215
+ if (name.includes('log') || name.includes('winston') || name.includes('pino'))
216
+ return 'file-text';
217
+ if (name.includes('cli') || name.includes('commander'))
218
+ return 'terminal';
219
+ if (name.includes('crypto') || name.includes('bcrypt'))
220
+ return 'shield';
221
+ // Default icon
222
+ return 'package-2';
223
+ }
224
+ /**
225
+ * Analyze dependency health and conflicts
226
+ */
227
+ analyzeDependencyHealth(dependencyLayers) {
228
+ const health = {
229
+ duplicates: [],
230
+ outdated: [],
231
+ security: [],
232
+ };
233
+ // Group by dependency name
234
+ const depGroups = new Map();
235
+ dependencyLayers.forEach(layer => {
236
+ const name = layer.dependencyData.name;
237
+ if (!depGroups.has(name)) {
238
+ depGroups.set(name, []);
239
+ }
240
+ depGroups.get(name).push(layer);
241
+ });
242
+ // Check for duplicates (multiple versions)
243
+ depGroups.forEach((layers, name) => {
244
+ if (layers.length > 1) {
245
+ const versions = new Set();
246
+ const packages = {};
247
+ layers.forEach(layer => {
248
+ versions.add(layer.dependencyData.version);
249
+ // Get package names from declaredIn
250
+ layer.dependencyData.declaredIn.forEach((layerId) => {
251
+ // Extract package name from layer ID (e.g., "package-node-root" -> "root")
252
+ const pkgName = layerId.replace(/^package-[^-]+-/, '');
253
+ packages[pkgName] = layer.dependencyData.version;
254
+ });
255
+ });
256
+ if (versions.size > 1) {
257
+ health.duplicates.push({
258
+ name,
259
+ versions: Array.from(versions),
260
+ packages,
261
+ });
262
+ }
263
+ }
264
+ });
265
+ // Check for known security issues (simplified)
266
+ const knownIssues = {
267
+ minimist: {
268
+ severity: 'high',
269
+ issue: 'Prototype pollution vulnerability in versions < 1.2.6',
270
+ },
271
+ lodash: { severity: 'medium', issue: 'Multiple vulnerabilities in versions < 4.17.21' },
272
+ 'node-fetch': { severity: 'high', issue: 'Denial of service in versions < 2.6.7' },
273
+ };
274
+ depGroups.forEach((layers, name) => {
275
+ if (knownIssues[name]) {
276
+ health.security.push({
277
+ name,
278
+ ...knownIssues[name],
279
+ });
280
+ }
281
+ });
282
+ return health;
283
+ }
284
+ }
285
+ exports.DependencyLayerModule = DependencyLayerModule;
286
+ //# sourceMappingURL=DependencyLayerModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependencyLayerModule.js","sourceRoot":"","sources":["../../src/modules/DependencyLayerModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { FileTree } from '@principal-ai/repository-abstraction';
2
+ import { FileSystemFilterLayer, BaseLayer } from '../types';
3
+ export interface FileSystemModuleConfig {
4
+ directoryPath: string;
5
+ buildFileSystemTree: (path: string, filters?: FileSystemFilterLayer[]) => Promise<FileTree>;
6
+ }
7
+ export interface FileSystemLoadResult {
8
+ fileSystemTree: FileTree;
9
+ filterLayers: FileSystemFilterLayer[];
10
+ warningLayers: BaseLayer[];
11
+ }
12
+ /**
13
+ * Module responsible for loading and filtering the filesystem tree
14
+ * Now simplified to use globby-based filtering
15
+ */
16
+ export declare class FileSystemModule {
17
+ private config;
18
+ constructor(config: FileSystemModuleConfig);
19
+ /**
20
+ * Load the filesystem tree using globby-based filtering
21
+ */
22
+ loadFileSystemTree(): Promise<FileSystemLoadResult>;
23
+ /**
24
+ * Get all package.json files from the filesystem tree
25
+ */
26
+ getPackageJsonFiles(fileSystemTree: FileTree): Array<{
27
+ path: string;
28
+ }>;
29
+ }
30
+ //# sourceMappingURL=FileSystemModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSystemModule.d.ts","sourceRoot":"","sources":["../../src/modules/FileSystemModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE5D,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC7F;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,QAAQ,CAAC;IACzB,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,aAAa,EAAE,SAAS,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAyB;gBAE3B,MAAM,EAAE,sBAAsB;IAI1C;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAwBzD;;OAEG;IACH,mBAAmB,CAAC,cAAc,EAAE,QAAQ,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CASvE"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileSystemModule = void 0;
4
+ /**
5
+ * Module responsible for loading and filtering the filesystem tree
6
+ * Now simplified to use globby-based filtering
7
+ */
8
+ class FileSystemModule {
9
+ constructor(config) {
10
+ this.config = config;
11
+ }
12
+ /**
13
+ * Load the filesystem tree using globby-based filtering
14
+ */
15
+ async loadFileSystemTree() {
16
+ const { directoryPath, buildFileSystemTree } = this.config;
17
+ if (!directoryPath || !buildFileSystemTree) {
18
+ throw new Error('Directory path and buildFileSystemTree function are required');
19
+ }
20
+ console.log('[FileSystemModule] Loading filesystem tree with globby...');
21
+ // Build filesystem tree (adapters handle .gitignore filtering via globby)
22
+ const fileSystemTree = await buildFileSystemTree(directoryPath, []);
23
+ console.log('[FileSystemModule] Tree loaded:', {
24
+ totalFiles: fileSystemTree?.allFiles?.length || 0,
25
+ totalDirectories: fileSystemTree?.allDirectories?.length || 0,
26
+ });
27
+ return {
28
+ fileSystemTree,
29
+ filterLayers: [], // No filter layers - globby handles everything
30
+ warningLayers: [],
31
+ };
32
+ }
33
+ /**
34
+ * Get all package.json files from the filesystem tree
35
+ */
36
+ getPackageJsonFiles(fileSystemTree) {
37
+ if (!fileSystemTree?.allFiles) {
38
+ return [];
39
+ }
40
+ return fileSystemTree.allFiles
41
+ .filter(file => file.path?.endsWith('package.json'))
42
+ .map(file => ({ path: file.path }));
43
+ }
44
+ }
45
+ exports.FileSystemModule = FileSystemModule;
46
+ //# sourceMappingURL=FileSystemModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSystemModule.js","sourceRoot":"","sources":["../../src/modules/FileSystemModule.ts"],"names":[],"mappings":";;;AAcA;;;GAGG;AACH,MAAa,gBAAgB;IAG3B,YAAY,MAA8B;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3D,IAAI,CAAC,aAAa,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QAEzE,0EAA0E;QAC1E,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAEpE,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE;YAC7C,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;YACjD,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;SAC9D,CAAC,CAAC;QAEH,OAAO;YACL,cAAc;YACd,YAAY,EAAE,EAAE,EAAE,+CAA+C;YACjE,aAAa,EAAE,EAAE;SAClB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,cAAwB;QAC1C,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,cAAc,CAAC,QAAQ;aAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;aACnD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAK,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;CACF;AA9CD,4CA8CC"}
@@ -0,0 +1,34 @@
1
+ import { FileTree } from '@principal-ai/repository-abstraction';
2
+ import { BaseLayer } from '../types/layer-types';
3
+ export interface FileTypeInfo {
4
+ extension: string;
5
+ name: string;
6
+ count: number;
7
+ files: string[];
8
+ color: string;
9
+ icon: string;
10
+ category?: string;
11
+ }
12
+ export declare class FileTypeLayerModule {
13
+ /**
14
+ * Extract file type information from the file tree
15
+ */
16
+ extractFileTypes(fileTree: FileTree): FileTypeInfo[];
17
+ /**
18
+ * Create BaseLayer objects from file type information
19
+ */
20
+ createFileTypeLayers(fileTypes: FileTypeInfo[]): BaseLayer[];
21
+ /**
22
+ * Get file extension from filename
23
+ */
24
+ private getFileExtension;
25
+ /**
26
+ * Check if a path should be ignored
27
+ */
28
+ private shouldIgnorePath;
29
+ /**
30
+ * Create file type layers from a file tree
31
+ */
32
+ processFileTree(fileTree: FileTree): Promise<BaseLayer[]>;
33
+ }
34
+ //# sourceMappingURL=FileTypeLayerModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileTypeLayerModule.d.ts","sourceRoot":"","sources":["../../src/modules/FileTypeLayerModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAW,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA8DD,qBAAa,mBAAmB;IAC9B;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,EAAE;IA2CpD;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE;IAmC5D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAIhE"}