buildhive-agent 1.0.0-beta.1

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 (170) hide show
  1. package/README.md +166 -0
  2. package/dist/__tests__/fakes/FakeDockerManager.d.ts +115 -0
  3. package/dist/__tests__/fakes/FakeDockerManager.d.ts.map +1 -0
  4. package/dist/__tests__/fakes/FakeDockerManager.js +203 -0
  5. package/dist/__tests__/fakes/FakeDockerManager.js.map +1 -0
  6. package/dist/acceptanceChecker.d.ts +26 -0
  7. package/dist/acceptanceChecker.d.ts.map +1 -0
  8. package/dist/acceptanceChecker.js +64 -0
  9. package/dist/acceptanceChecker.js.map +1 -0
  10. package/dist/advancedAgent.d.ts +161 -0
  11. package/dist/advancedAgent.d.ts.map +1 -0
  12. package/dist/advancedAgent.js +604 -0
  13. package/dist/advancedAgent.js.map +1 -0
  14. package/dist/agent.d.ts +101 -0
  15. package/dist/agent.d.ts.map +1 -0
  16. package/dist/agent.js +490 -0
  17. package/dist/agent.js.map +1 -0
  18. package/dist/api/jobStatusApi.d.ts +88 -0
  19. package/dist/api/jobStatusApi.d.ts.map +1 -0
  20. package/dist/api/jobStatusApi.js +240 -0
  21. package/dist/api/jobStatusApi.js.map +1 -0
  22. package/dist/autoUpdater.d.ts +135 -0
  23. package/dist/autoUpdater.d.ts.map +1 -0
  24. package/dist/autoUpdater.js +494 -0
  25. package/dist/autoUpdater.js.map +1 -0
  26. package/dist/cacheManager.d.ts +108 -0
  27. package/dist/cacheManager.d.ts.map +1 -0
  28. package/dist/cacheManager.js +300 -0
  29. package/dist/cacheManager.js.map +1 -0
  30. package/dist/cli.d.ts +11 -0
  31. package/dist/cli.d.ts.map +1 -0
  32. package/dist/cli.js +749 -0
  33. package/dist/cli.js.map +1 -0
  34. package/dist/config/index.d.ts +30 -0
  35. package/dist/config/index.d.ts.map +1 -0
  36. package/dist/config/index.js +35 -0
  37. package/dist/config/index.js.map +1 -0
  38. package/dist/config/loader.d.ts +45 -0
  39. package/dist/config/loader.d.ts.map +1 -0
  40. package/dist/config/loader.js +269 -0
  41. package/dist/config/loader.js.map +1 -0
  42. package/dist/config/types.d.ts +193 -0
  43. package/dist/config/types.d.ts.map +1 -0
  44. package/dist/config/types.js +90 -0
  45. package/dist/config/types.js.map +1 -0
  46. package/dist/config/validation.d.ts +28 -0
  47. package/dist/config/validation.d.ts.map +1 -0
  48. package/dist/config/validation.js +397 -0
  49. package/dist/config/validation.js.map +1 -0
  50. package/dist/docker.d.ts +96 -0
  51. package/dist/docker.d.ts.map +1 -0
  52. package/dist/docker.js +411 -0
  53. package/dist/docker.js.map +1 -0
  54. package/dist/enhancedJobExecutor.d.ts +81 -0
  55. package/dist/enhancedJobExecutor.d.ts.map +1 -0
  56. package/dist/enhancedJobExecutor.js +223 -0
  57. package/dist/enhancedJobExecutor.js.map +1 -0
  58. package/dist/executors/executorFactory.d.ts +46 -0
  59. package/dist/executors/executorFactory.d.ts.map +1 -0
  60. package/dist/executors/executorFactory.js +80 -0
  61. package/dist/executors/executorFactory.js.map +1 -0
  62. package/dist/executors/index.d.ts +7 -0
  63. package/dist/executors/index.d.ts.map +1 -0
  64. package/dist/executors/index.js +6 -0
  65. package/dist/executors/index.js.map +1 -0
  66. package/dist/executors/nativeExecutor.d.ts +60 -0
  67. package/dist/executors/nativeExecutor.d.ts.map +1 -0
  68. package/dist/executors/nativeExecutor.js +311 -0
  69. package/dist/executors/nativeExecutor.js.map +1 -0
  70. package/dist/executors/types.d.ts +38 -0
  71. package/dist/executors/types.d.ts.map +1 -0
  72. package/dist/executors/types.js +9 -0
  73. package/dist/executors/types.js.map +1 -0
  74. package/dist/healthMonitor.d.ts +213 -0
  75. package/dist/healthMonitor.d.ts.map +1 -0
  76. package/dist/healthMonitor.js +547 -0
  77. package/dist/healthMonitor.js.map +1 -0
  78. package/dist/index.d.ts +16 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +16 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/jobExecutor.d.ts +117 -0
  83. package/dist/jobExecutor.d.ts.map +1 -0
  84. package/dist/jobExecutor.js +458 -0
  85. package/dist/jobExecutor.js.map +1 -0
  86. package/dist/lifecycleExecutor.d.ts +54 -0
  87. package/dist/lifecycleExecutor.d.ts.map +1 -0
  88. package/dist/lifecycleExecutor.js +230 -0
  89. package/dist/lifecycleExecutor.js.map +1 -0
  90. package/dist/main.d.ts +15 -0
  91. package/dist/main.d.ts.map +1 -0
  92. package/dist/main.js +77 -0
  93. package/dist/main.js.map +1 -0
  94. package/dist/metrics.d.ts +103 -0
  95. package/dist/metrics.d.ts.map +1 -0
  96. package/dist/metrics.js +360 -0
  97. package/dist/metrics.js.map +1 -0
  98. package/dist/recipes/builtinRecipes.d.ts +11 -0
  99. package/dist/recipes/builtinRecipes.d.ts.map +1 -0
  100. package/dist/recipes/builtinRecipes.js +688 -0
  101. package/dist/recipes/builtinRecipes.js.map +1 -0
  102. package/dist/recipes/index.d.ts +18 -0
  103. package/dist/recipes/index.d.ts.map +1 -0
  104. package/dist/recipes/index.js +17 -0
  105. package/dist/recipes/index.js.map +1 -0
  106. package/dist/recipes/recipeRegistry.d.ts +49 -0
  107. package/dist/recipes/recipeRegistry.d.ts.map +1 -0
  108. package/dist/recipes/recipeRegistry.js +264 -0
  109. package/dist/recipes/recipeRegistry.js.map +1 -0
  110. package/dist/recipes/types.d.ts +116 -0
  111. package/dist/recipes/types.d.ts.map +1 -0
  112. package/dist/recipes/types.js +10 -0
  113. package/dist/recipes/types.js.map +1 -0
  114. package/dist/recovery.d.ts +133 -0
  115. package/dist/recovery.d.ts.map +1 -0
  116. package/dist/recovery.js +299 -0
  117. package/dist/recovery.js.map +1 -0
  118. package/dist/registration/apiClient.d.ts +44 -0
  119. package/dist/registration/apiClient.d.ts.map +1 -0
  120. package/dist/registration/apiClient.js +149 -0
  121. package/dist/registration/apiClient.js.map +1 -0
  122. package/dist/registration/index.d.ts +41 -0
  123. package/dist/registration/index.d.ts.map +1 -0
  124. package/dist/registration/index.js +141 -0
  125. package/dist/registration/index.js.map +1 -0
  126. package/dist/registration/machineId.d.ts +30 -0
  127. package/dist/registration/machineId.d.ts.map +1 -0
  128. package/dist/registration/machineId.js +89 -0
  129. package/dist/registration/machineId.js.map +1 -0
  130. package/dist/registration/types.d.ts +32 -0
  131. package/dist/registration/types.d.ts.map +1 -0
  132. package/dist/registration/types.js +9 -0
  133. package/dist/registration/types.js.map +1 -0
  134. package/dist/resourceGovernor.d.ts +57 -0
  135. package/dist/resourceGovernor.d.ts.map +1 -0
  136. package/dist/resourceGovernor.js +125 -0
  137. package/dist/resourceGovernor.js.map +1 -0
  138. package/dist/security/secretManager.d.ts +107 -0
  139. package/dist/security/secretManager.d.ts.map +1 -0
  140. package/dist/security/secretManager.js +361 -0
  141. package/dist/security/secretManager.js.map +1 -0
  142. package/dist/security.d.ts +134 -0
  143. package/dist/security.d.ts.map +1 -0
  144. package/dist/security.js +470 -0
  145. package/dist/security.js.map +1 -0
  146. package/dist/storage/artifactUploader.d.ts +155 -0
  147. package/dist/storage/artifactUploader.d.ts.map +1 -0
  148. package/dist/storage/artifactUploader.js +554 -0
  149. package/dist/storage/artifactUploader.js.map +1 -0
  150. package/dist/types.d.ts +49 -0
  151. package/dist/types.d.ts.map +1 -0
  152. package/dist/types.js +7 -0
  153. package/dist/types.js.map +1 -0
  154. package/dist/utils/capabilities.d.ts +23 -0
  155. package/dist/utils/capabilities.d.ts.map +1 -0
  156. package/dist/utils/capabilities.js +200 -0
  157. package/dist/utils/capabilities.js.map +1 -0
  158. package/dist/utils/logger.d.ts +20 -0
  159. package/dist/utils/logger.d.ts.map +1 -0
  160. package/dist/utils/logger.js +188 -0
  161. package/dist/utils/logger.js.map +1 -0
  162. package/dist/utils/sdkScanner.d.ts +105 -0
  163. package/dist/utils/sdkScanner.d.ts.map +1 -0
  164. package/dist/utils/sdkScanner.js +459 -0
  165. package/dist/utils/sdkScanner.js.map +1 -0
  166. package/dist/websocketClient.d.ts +154 -0
  167. package/dist/websocketClient.d.ts.map +1 -0
  168. package/dist/websocketClient.js +422 -0
  169. package/dist/websocketClient.js.map +1 -0
  170. package/package.json +64 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtinRecipes.js","sourceRoot":"","sources":["../../src/recipes/builtinRecipes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Recipe System
3
+ *
4
+ * Pre-packaged build configurations for common CI ecosystems.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { RecipeRegistry } from './recipes/index.js';
9
+ *
10
+ * const registry = new RecipeRegistry();
11
+ * const matches = await registry.detectRecipe('/path/to/project');
12
+ * console.log(matches[0]?.recipe.name); // e.g. "android-gradle"
13
+ * ```
14
+ */
15
+ export { RecipeRegistry } from './recipeRegistry.js';
16
+ export { BUILTIN_RECIPES } from './builtinRecipes.js';
17
+ export type { Recipe, RecipeArtifactConfig, RecipeCacheConfig, RecipeDetectionRule, RecipeLifecycleStep, RecipeMatch, RecipeOverride, } from './types.js';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recipes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EACV,MAAM,EACN,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Recipe System
3
+ *
4
+ * Pre-packaged build configurations for common CI ecosystems.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { RecipeRegistry } from './recipes/index.js';
9
+ *
10
+ * const registry = new RecipeRegistry();
11
+ * const matches = await registry.detectRecipe('/path/to/project');
12
+ * console.log(matches[0]?.recipe.name); // e.g. "android-gradle"
13
+ * ```
14
+ */
15
+ export { RecipeRegistry } from './recipeRegistry.js';
16
+ export { BUILTIN_RECIPES } from './builtinRecipes.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recipes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Recipe Registry
3
+ *
4
+ * Central registry that holds all known recipes, performs auto-detection
5
+ * against a project directory, and applies user overrides.
6
+ */
7
+ import { Recipe, RecipeMatch, RecipeOverride } from './types.js';
8
+ /** Central recipe registry with detection, override, and validation logic. */
9
+ export declare class RecipeRegistry {
10
+ private recipes;
11
+ constructor();
12
+ /**
13
+ * Register a recipe. Overwrites any existing recipe with the same name.
14
+ */
15
+ register(recipe: Recipe): void;
16
+ /** Retrieve a recipe by name. */
17
+ get(name: string): Recipe | undefined;
18
+ /** Return all registered recipes. */
19
+ list(): Recipe[];
20
+ /**
21
+ * Auto-detect which recipes match a project directory.
22
+ *
23
+ * 1. Lists the top-level entries of `projectDir`.
24
+ * 2. For each recipe, checks whether any detection file exists.
25
+ * 3. Optionally reads file content to confirm patterns.
26
+ * 4. Returns matches sorted by confidence (descending).
27
+ */
28
+ detectRecipe(projectDir: string): Promise<RecipeMatch[]>;
29
+ /**
30
+ * Apply user overrides on top of a base recipe, returning a new Recipe.
31
+ * The original recipe is not mutated.
32
+ */
33
+ applyRecipe(recipe: Recipe, overrides?: RecipeOverride): Recipe;
34
+ /**
35
+ * Validate a recipe configuration, returning a list of errors (if any).
36
+ */
37
+ validate(recipe: Recipe): {
38
+ valid: boolean;
39
+ errors: string[];
40
+ };
41
+ /** Load all built-in recipes into the registry. */
42
+ private loadBuiltinRecipes;
43
+ /**
44
+ * Evaluate a single recipe's detection rules against a project directory.
45
+ * Returns a RecipeMatch if the recipe matches, or null otherwise.
46
+ */
47
+ private evaluateDetection;
48
+ }
49
+ //# sourceMappingURL=recipeRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipeRegistry.d.ts","sourceRoot":"","sources":["../../src/recipes/recipeRegistry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,MAAM,EAAuB,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA6CtF,8EAA8E;AAC9E,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAkC;;IAUjD;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI9B,iCAAiC;IACjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIrC,qCAAqC;IACrC,IAAI,IAAI,MAAM,EAAE;IAQhB;;;;;;;OAOG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA8B9D;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,cAAc,GAAG,MAAM;IAmD/D;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAoC9D,mDAAmD;IACnD,OAAO,CAAC,kBAAkB;IAM1B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CAkE1B"}
@@ -0,0 +1,264 @@
1
+ /**
2
+ * Recipe Registry
3
+ *
4
+ * Central registry that holds all known recipes, performs auto-detection
5
+ * against a project directory, and applies user overrides.
6
+ */
7
+ import * as fs from 'node:fs';
8
+ import * as path from 'node:path';
9
+ import { BUILTIN_RECIPES } from './builtinRecipes.js';
10
+ // ---------------------------------------------------------------------------
11
+ // Helpers
12
+ // ---------------------------------------------------------------------------
13
+ /**
14
+ * Check whether a file pattern (which may contain simple globs like `*.tf`)
15
+ * matches any entry in a directory listing.
16
+ */
17
+ function matchesFilePattern(pattern, entries) {
18
+ if (pattern.includes('*')) {
19
+ const re = new RegExp('^' + pattern.replace(/\./g, '\\.').replace(/\*/g, '.*') + '$');
20
+ return entries.some((e) => re.test(e));
21
+ }
22
+ return entries.includes(pattern);
23
+ }
24
+ /**
25
+ * Recursively check whether *any* file in `dir` matches `pattern`.
26
+ * Only descends one level for content-pattern files that reference a
27
+ * sub-path (e.g. `config/routes.rb`).
28
+ */
29
+ function fileExistsRelative(dir, filePath) {
30
+ try {
31
+ const resolved = path.resolve(dir, filePath);
32
+ return fs.existsSync(resolved);
33
+ }
34
+ catch {
35
+ return false;
36
+ }
37
+ }
38
+ function readFileSafe(filePath) {
39
+ try {
40
+ return fs.readFileSync(filePath, 'utf-8');
41
+ }
42
+ catch {
43
+ return '';
44
+ }
45
+ }
46
+ // ---------------------------------------------------------------------------
47
+ // Registry
48
+ // ---------------------------------------------------------------------------
49
+ /** Central recipe registry with detection, override, and validation logic. */
50
+ export class RecipeRegistry {
51
+ recipes = new Map();
52
+ constructor() {
53
+ this.loadBuiltinRecipes();
54
+ }
55
+ // -----------------------------------------------------------------------
56
+ // CRUD
57
+ // -----------------------------------------------------------------------
58
+ /**
59
+ * Register a recipe. Overwrites any existing recipe with the same name.
60
+ */
61
+ register(recipe) {
62
+ this.recipes.set(recipe.name, recipe);
63
+ }
64
+ /** Retrieve a recipe by name. */
65
+ get(name) {
66
+ return this.recipes.get(name);
67
+ }
68
+ /** Return all registered recipes. */
69
+ list() {
70
+ return Array.from(this.recipes.values());
71
+ }
72
+ // -----------------------------------------------------------------------
73
+ // Detection
74
+ // -----------------------------------------------------------------------
75
+ /**
76
+ * Auto-detect which recipes match a project directory.
77
+ *
78
+ * 1. Lists the top-level entries of `projectDir`.
79
+ * 2. For each recipe, checks whether any detection file exists.
80
+ * 3. Optionally reads file content to confirm patterns.
81
+ * 4. Returns matches sorted by confidence (descending).
82
+ */
83
+ async detectRecipe(projectDir) {
84
+ let entries;
85
+ try {
86
+ entries = fs.readdirSync(projectDir);
87
+ }
88
+ catch {
89
+ return [];
90
+ }
91
+ const matches = [];
92
+ for (const recipe of this.recipes.values()) {
93
+ const result = this.evaluateDetection(recipe, projectDir, entries);
94
+ if (result) {
95
+ matches.push(result);
96
+ }
97
+ }
98
+ // Sort descending by confidence, then by priority
99
+ matches.sort((a, b) => {
100
+ if (b.confidence !== a.confidence)
101
+ return b.confidence - a.confidence;
102
+ return b.recipe.detection.priority - a.recipe.detection.priority;
103
+ });
104
+ return matches;
105
+ }
106
+ // -----------------------------------------------------------------------
107
+ // Override application
108
+ // -----------------------------------------------------------------------
109
+ /**
110
+ * Apply user overrides on top of a base recipe, returning a new Recipe.
111
+ * The original recipe is not mutated.
112
+ */
113
+ applyRecipe(recipe, overrides) {
114
+ if (!overrides)
115
+ return { ...recipe };
116
+ // Deep-clone so the original recipe is never mutated
117
+ const merged = JSON.parse(JSON.stringify(recipe));
118
+ if (overrides.overrides) {
119
+ const o = overrides.overrides;
120
+ if (o.dockerImage !== undefined)
121
+ merged.dockerImage = o.dockerImage;
122
+ if (o.defaultBuildCommand !== undefined)
123
+ merged.defaultBuildCommand = o.defaultBuildCommand;
124
+ if (o.timeoutMinutes !== undefined)
125
+ merged.timeoutMinutes = o.timeoutMinutes;
126
+ if (o.requiredTags !== undefined)
127
+ merged.requiredTags = o.requiredTags;
128
+ if (o.cache !== undefined)
129
+ merged.cache = o.cache;
130
+ if (o.artifacts !== undefined)
131
+ merged.artifacts = o.artifacts;
132
+ // Merge environment variables (override wins)
133
+ if (o.environment) {
134
+ merged.environment = { ...(merged.environment || {}), ...o.environment };
135
+ }
136
+ // Prepend override setup steps, append override teardown steps
137
+ if (o.setup) {
138
+ merged.setup = [...o.setup, ...(merged.setup || [])];
139
+ }
140
+ if (o.teardown) {
141
+ merged.teardown = [...(merged.teardown || []), ...o.teardown];
142
+ }
143
+ }
144
+ // Apply variable values – substitute into the recipe's declared variables
145
+ if (overrides.variables && merged.variables) {
146
+ for (const [key, value] of Object.entries(overrides.variables)) {
147
+ if (merged.variables[key]) {
148
+ merged.variables[key] = { ...merged.variables[key], default: value };
149
+ }
150
+ }
151
+ }
152
+ // Merge agent tags
153
+ if (overrides.agentTags) {
154
+ merged.requiredTags = [...(merged.requiredTags || []), ...overrides.agentTags];
155
+ }
156
+ return merged;
157
+ }
158
+ // -----------------------------------------------------------------------
159
+ // Validation
160
+ // -----------------------------------------------------------------------
161
+ /**
162
+ * Validate a recipe configuration, returning a list of errors (if any).
163
+ */
164
+ validate(recipe) {
165
+ const errors = [];
166
+ if (!recipe.name || recipe.name.trim().length === 0) {
167
+ errors.push('Recipe must have a non-empty name');
168
+ }
169
+ if (!recipe.detection) {
170
+ errors.push('Recipe must have detection rules');
171
+ }
172
+ else if (!recipe.detection.files || recipe.detection.files.length === 0) {
173
+ errors.push('Recipe detection must specify at least one file');
174
+ }
175
+ if (!recipe.defaultBuildCommand || recipe.defaultBuildCommand.trim().length === 0) {
176
+ errors.push('Recipe must have a defaultBuildCommand');
177
+ }
178
+ // Docker recipes need an image; native recipes need an OS
179
+ if (recipe.executionMode === 'docker' && !recipe.dockerImage) {
180
+ errors.push('Docker recipe must specify a dockerImage');
181
+ }
182
+ if (recipe.executionMode === 'native' && !recipe.requiredOS) {
183
+ errors.push('Native recipe must specify requiredOS');
184
+ }
185
+ if (recipe.cache) {
186
+ if (!recipe.cache.paths || recipe.cache.paths.length === 0) {
187
+ errors.push('Cache config must have at least one path');
188
+ }
189
+ }
190
+ return { valid: errors.length === 0, errors };
191
+ }
192
+ // -----------------------------------------------------------------------
193
+ // Internals
194
+ // -----------------------------------------------------------------------
195
+ /** Load all built-in recipes into the registry. */
196
+ loadBuiltinRecipes() {
197
+ for (const recipe of BUILTIN_RECIPES) {
198
+ this.recipes.set(recipe.name, recipe);
199
+ }
200
+ }
201
+ /**
202
+ * Evaluate a single recipe's detection rules against a project directory.
203
+ * Returns a RecipeMatch if the recipe matches, or null otherwise.
204
+ */
205
+ evaluateDetection(recipe, projectDir, entries) {
206
+ const detection = recipe.detection;
207
+ // Phase 1: Check for matching files
208
+ const matchedFiles = [];
209
+ for (const pattern of detection.files) {
210
+ // Handle sub-paths like "config/routes.rb"
211
+ if (pattern.includes('/')) {
212
+ if (fileExistsRelative(projectDir, pattern)) {
213
+ matchedFiles.push(pattern);
214
+ }
215
+ }
216
+ else if (matchesFilePattern(pattern, entries)) {
217
+ matchedFiles.push(pattern);
218
+ }
219
+ }
220
+ if (matchedFiles.length === 0) {
221
+ return null;
222
+ }
223
+ // Phase 2: Check content patterns (boosts confidence)
224
+ const matchedPatterns = [];
225
+ if (detection.contentPatterns && detection.contentPatterns.length > 0) {
226
+ for (const cp of detection.contentPatterns) {
227
+ // Empty pattern means "file existence only"
228
+ if (cp.pattern === '') {
229
+ if (fileExistsRelative(projectDir, cp.file)) {
230
+ matchedPatterns.push(`${cp.file} (exists)`);
231
+ }
232
+ continue;
233
+ }
234
+ const filePath = path.resolve(projectDir, cp.file);
235
+ const content = readFileSafe(filePath);
236
+ if (content && content.includes(cp.pattern)) {
237
+ matchedPatterns.push(`${cp.file}: "${cp.pattern}"`);
238
+ }
239
+ }
240
+ }
241
+ // Calculate confidence
242
+ const hasContentPatterns = detection.contentPatterns && detection.contentPatterns.length > 0;
243
+ let confidence;
244
+ if (!hasContentPatterns) {
245
+ // No content patterns defined – file match alone yields moderate confidence
246
+ confidence = 60 + Math.min(matchedFiles.length * 10, 30);
247
+ }
248
+ else if (matchedPatterns.length > 0) {
249
+ // File + content pattern match yields high confidence
250
+ confidence = 80 + Math.min(matchedPatterns.length * 5, 20);
251
+ }
252
+ else {
253
+ // Files matched but content patterns did not – low confidence
254
+ confidence = 40 + Math.min(matchedFiles.length * 5, 15);
255
+ }
256
+ return {
257
+ recipe,
258
+ confidence,
259
+ matchedFiles,
260
+ matchedPatterns: matchedPatterns.length > 0 ? matchedPatterns : undefined,
261
+ };
262
+ }
263
+ }
264
+ //# sourceMappingURL=recipeRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipeRegistry.js","sourceRoot":"","sources":["../../src/recipes/recipeRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Recipe System Type Definitions
3
+ *
4
+ * A Recipe is a pre-packaged build configuration for a specific ecosystem
5
+ * (e.g., Android/Gradle, iOS/Xcode, Node.js). Recipes provide sensible
6
+ * defaults for Docker images, build commands, caching, artifacts, and
7
+ * lifecycle hooks so that users don't need to configure everything manually.
8
+ */
9
+ /** Rule that determines whether a recipe matches a given project directory. */
10
+ export interface RecipeDetectionRule {
11
+ /** Files whose presence triggers detection (ANY match is sufficient). */
12
+ files: string[];
13
+ /**
14
+ * Optional content patterns that further confirm the match.
15
+ * For example, checking that `build.gradle` contains `com.android.application`.
16
+ */
17
+ contentPatterns?: {
18
+ file: string;
19
+ pattern: string;
20
+ }[];
21
+ /** Higher priority wins when multiple recipes match the same project. */
22
+ priority: number;
23
+ }
24
+ /** Describes which paths should be cached between builds. */
25
+ export interface RecipeCacheConfig {
26
+ /** Cache key template. May contain `${hashFiles('...')}` placeholders. */
27
+ key: string;
28
+ /** Absolute or relative paths to cache. */
29
+ paths: string[];
30
+ /** Fallback keys used when the primary key misses. */
31
+ restoreKeys?: string[];
32
+ /** Optional upper bound on cache size in megabytes. */
33
+ maxSizeMB?: number;
34
+ }
35
+ /** A single step executed during setup or teardown. */
36
+ export interface RecipeLifecycleStep {
37
+ /** Human-readable name shown in logs. */
38
+ name: string;
39
+ /** Shell command to execute. */
40
+ command: string;
41
+ /** Timeout in seconds (default: 300). */
42
+ timeout?: number;
43
+ /** When true the build continues even if this step fails. */
44
+ continueOnError?: boolean;
45
+ }
46
+ /** Defines which build outputs should be collected as artifacts. */
47
+ export interface RecipeArtifactConfig {
48
+ /** Glob or directory paths to collect. */
49
+ paths: string[];
50
+ /** Number of days after which artifacts may be purged. */
51
+ expireAfterDays?: number;
52
+ }
53
+ /** A complete, self-contained build recipe for a given ecosystem. */
54
+ export interface Recipe {
55
+ /** Unique machine-readable identifier, e.g. `"android-gradle"`. */
56
+ name: string;
57
+ /** Short human-readable description. */
58
+ description: string;
59
+ /** Semantic version of this recipe definition. */
60
+ version: string;
61
+ detection: RecipeDetectionRule;
62
+ /** How the build should be executed. */
63
+ executionMode: 'docker' | 'native' | 'auto';
64
+ /** Docker image to use (may contain template variables). */
65
+ dockerImage?: string;
66
+ /** Required host operating system (e.g. `"darwin"` for macOS). */
67
+ requiredOS?: string;
68
+ /** Required CPU architecture (e.g. `"arm64"`). */
69
+ requiredArch?: string;
70
+ /** Minimum RAM in gigabytes. */
71
+ requiredMemoryGB?: number;
72
+ /** Tags the agent must have to run this recipe. */
73
+ requiredTags?: string[];
74
+ /** Overall build timeout in minutes. */
75
+ timeoutMinutes?: number;
76
+ /** Default shell command to build the project. */
77
+ defaultBuildCommand: string;
78
+ /** Steps executed before the main build command. */
79
+ setup?: RecipeLifecycleStep[];
80
+ /** Steps executed after the build completes (success or failure). */
81
+ teardown?: RecipeLifecycleStep[];
82
+ cache?: RecipeCacheConfig;
83
+ artifacts?: RecipeArtifactConfig;
84
+ /** Extra environment variables injected into the build. */
85
+ environment?: Record<string, string>;
86
+ /** User-overridable variables with defaults and descriptions. */
87
+ variables?: Record<string, {
88
+ default: string;
89
+ description: string;
90
+ }>;
91
+ }
92
+ /** User-supplied overrides applied on top of a detected recipe. */
93
+ export interface RecipeOverride {
94
+ /** Name of the recipe to override. */
95
+ recipe: string;
96
+ /** Optional version constraint. */
97
+ version?: string;
98
+ /** Partial recipe fields to merge on top of the base recipe. */
99
+ overrides?: Partial<Pick<Recipe, 'dockerImage' | 'defaultBuildCommand' | 'environment' | 'requiredTags' | 'timeoutMinutes' | 'cache' | 'artifacts' | 'setup' | 'teardown'>>;
100
+ /** Values for the recipe's declared variables. */
101
+ variables?: Record<string, string>;
102
+ /** Additional agent tags required for this override. */
103
+ agentTags?: string[];
104
+ }
105
+ /** Represents a recipe that matched a project, with confidence metadata. */
106
+ export interface RecipeMatch {
107
+ /** The matched recipe. */
108
+ recipe: Recipe;
109
+ /** Confidence score from 0 (no match) to 100 (perfect match). */
110
+ confidence: number;
111
+ /** File paths that triggered the detection. */
112
+ matchedFiles: string[];
113
+ /** Content patterns that were confirmed (if any). */
114
+ matchedPatterns?: string[];
115
+ }
116
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/recipes/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Recipe System Type Definitions
3
+ *
4
+ * A Recipe is a pre-packaged build configuration for a specific ecosystem
5
+ * (e.g., Android/Gradle, iOS/Xcode, Node.js). Recipes provide sensible
6
+ * defaults for Docker images, build commands, caching, artifacts, and
7
+ * lifecycle hooks so that users don't need to configure everything manually.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/recipes/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}