@cisco_open/linting-orchestrator 1.0.0-rc.4

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 (197) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +5 -0
  3. package/README.md +43 -0
  4. package/build/cli/api-client.d.ts +170 -0
  5. package/build/cli/api-client.d.ts.map +1 -0
  6. package/build/cli/api-client.js +284 -0
  7. package/build/cli/api-client.js.map +1 -0
  8. package/build/cli/commands/agents.d.ts +7 -0
  9. package/build/cli/commands/agents.d.ts.map +1 -0
  10. package/build/cli/commands/agents.js +694 -0
  11. package/build/cli/commands/agents.js.map +1 -0
  12. package/build/cli/commands/completion.d.ts +9 -0
  13. package/build/cli/commands/completion.d.ts.map +1 -0
  14. package/build/cli/commands/completion.js +177 -0
  15. package/build/cli/commands/completion.js.map +1 -0
  16. package/build/cli/commands/config.d.ts +10 -0
  17. package/build/cli/commands/config.d.ts.map +1 -0
  18. package/build/cli/commands/config.js +284 -0
  19. package/build/cli/commands/config.js.map +1 -0
  20. package/build/cli/commands/health.d.ts +11 -0
  21. package/build/cli/commands/health.d.ts.map +1 -0
  22. package/build/cli/commands/health.js +38 -0
  23. package/build/cli/commands/health.js.map +1 -0
  24. package/build/cli/commands/help.d.ts +6 -0
  25. package/build/cli/commands/help.d.ts.map +1 -0
  26. package/build/cli/commands/help.js +20 -0
  27. package/build/cli/commands/help.js.map +1 -0
  28. package/build/cli/commands/history.d.ts +11 -0
  29. package/build/cli/commands/history.d.ts.map +1 -0
  30. package/build/cli/commands/history.js +50 -0
  31. package/build/cli/commands/history.js.map +1 -0
  32. package/build/cli/commands/jobs.d.ts +12 -0
  33. package/build/cli/commands/jobs.d.ts.map +1 -0
  34. package/build/cli/commands/jobs.js +84 -0
  35. package/build/cli/commands/jobs.js.map +1 -0
  36. package/build/cli/commands/lint.d.ts +15 -0
  37. package/build/cli/commands/lint.d.ts.map +1 -0
  38. package/build/cli/commands/lint.js +384 -0
  39. package/build/cli/commands/lint.js.map +1 -0
  40. package/build/cli/commands/ps.d.ts +8 -0
  41. package/build/cli/commands/ps.d.ts.map +1 -0
  42. package/build/cli/commands/ps.js +74 -0
  43. package/build/cli/commands/ps.js.map +1 -0
  44. package/build/cli/commands/reproduce.d.ts +9 -0
  45. package/build/cli/commands/reproduce.d.ts.map +1 -0
  46. package/build/cli/commands/reproduce.js +31 -0
  47. package/build/cli/commands/reproduce.js.map +1 -0
  48. package/build/cli/commands/reset.d.ts +5 -0
  49. package/build/cli/commands/reset.d.ts.map +1 -0
  50. package/build/cli/commands/reset.js +13 -0
  51. package/build/cli/commands/reset.js.map +1 -0
  52. package/build/cli/commands/results.d.ts +13 -0
  53. package/build/cli/commands/results.d.ts.map +1 -0
  54. package/build/cli/commands/results.js +129 -0
  55. package/build/cli/commands/results.js.map +1 -0
  56. package/build/cli/commands/rulesets/check.d.ts +12 -0
  57. package/build/cli/commands/rulesets/check.d.ts.map +1 -0
  58. package/build/cli/commands/rulesets/check.js +226 -0
  59. package/build/cli/commands/rulesets/check.js.map +1 -0
  60. package/build/cli/commands/rulesets/index.d.ts +5 -0
  61. package/build/cli/commands/rulesets/index.d.ts.map +1 -0
  62. package/build/cli/commands/rulesets/index.js +6 -0
  63. package/build/cli/commands/rulesets/index.js.map +1 -0
  64. package/build/cli/commands/rulesets/view.d.ts +16 -0
  65. package/build/cli/commands/rulesets/view.d.ts.map +1 -0
  66. package/build/cli/commands/rulesets/view.js +100 -0
  67. package/build/cli/commands/rulesets/view.js.map +1 -0
  68. package/build/cli/commands/start.d.ts +16 -0
  69. package/build/cli/commands/start.d.ts.map +1 -0
  70. package/build/cli/commands/start.js +167 -0
  71. package/build/cli/commands/start.js.map +1 -0
  72. package/build/cli/commands/status.d.ts +9 -0
  73. package/build/cli/commands/status.d.ts.map +1 -0
  74. package/build/cli/commands/status.js +46 -0
  75. package/build/cli/commands/status.js.map +1 -0
  76. package/build/cli/commands/stop.d.ts +11 -0
  77. package/build/cli/commands/stop.d.ts.map +1 -0
  78. package/build/cli/commands/stop.js +78 -0
  79. package/build/cli/commands/stop.js.map +1 -0
  80. package/build/cli/config-manager.d.ts +134 -0
  81. package/build/cli/config-manager.d.ts.map +1 -0
  82. package/build/cli/config-manager.js +288 -0
  83. package/build/cli/config-manager.js.map +1 -0
  84. package/build/cli/formatters.d.ts +62 -0
  85. package/build/cli/formatters.d.ts.map +1 -0
  86. package/build/cli/formatters.js +715 -0
  87. package/build/cli/formatters.js.map +1 -0
  88. package/build/cli/history-manager.d.ts +97 -0
  89. package/build/cli/history-manager.d.ts.map +1 -0
  90. package/build/cli/history-manager.js +201 -0
  91. package/build/cli/history-manager.js.map +1 -0
  92. package/build/cli/index.d.ts +16 -0
  93. package/build/cli/index.d.ts.map +1 -0
  94. package/build/cli/index.js +335 -0
  95. package/build/cli/index.js.map +1 -0
  96. package/build/cli/list-rulesets.d.ts +15 -0
  97. package/build/cli/list-rulesets.d.ts.map +1 -0
  98. package/build/cli/list-rulesets.js +193 -0
  99. package/build/cli/list-rulesets.js.map +1 -0
  100. package/build/cli/utils/connection-error.d.ts +9 -0
  101. package/build/cli/utils/connection-error.d.ts.map +1 -0
  102. package/build/cli/utils/connection-error.js +30 -0
  103. package/build/cli/utils/connection-error.js.map +1 -0
  104. package/build/cli/utils/embedded-server.d.ts +21 -0
  105. package/build/cli/utils/embedded-server.d.ts.map +1 -0
  106. package/build/cli/utils/embedded-server.js +61 -0
  107. package/build/cli/utils/embedded-server.js.map +1 -0
  108. package/build/cli/utils/mode-validator.d.ts +13 -0
  109. package/build/cli/utils/mode-validator.d.ts.map +1 -0
  110. package/build/cli/utils/mode-validator.js +31 -0
  111. package/build/cli/utils/mode-validator.js.map +1 -0
  112. package/build/cli/utils/port-checker.d.ts +20 -0
  113. package/build/cli/utils/port-checker.d.ts.map +1 -0
  114. package/build/cli/utils/port-checker.js +49 -0
  115. package/build/cli/utils/port-checker.js.map +1 -0
  116. package/build/config.d.ts +57 -0
  117. package/build/config.d.ts.map +1 -0
  118. package/build/config.js +527 -0
  119. package/build/config.js.map +1 -0
  120. package/build/document-accessor.d.ts +79 -0
  121. package/build/document-accessor.d.ts.map +1 -0
  122. package/build/document-accessor.js +148 -0
  123. package/build/document-accessor.js.map +1 -0
  124. package/build/formatters/reproduce-markdown.d.ts +14 -0
  125. package/build/formatters/reproduce-markdown.d.ts.map +1 -0
  126. package/build/formatters/reproduce-markdown.js +182 -0
  127. package/build/formatters/reproduce-markdown.js.map +1 -0
  128. package/build/formatters/sarif-builder.d.ts +86 -0
  129. package/build/formatters/sarif-builder.d.ts.map +1 -0
  130. package/build/formatters/sarif-builder.js +276 -0
  131. package/build/formatters/sarif-builder.js.map +1 -0
  132. package/build/index.d.ts +3 -0
  133. package/build/index.d.ts.map +1 -0
  134. package/build/index.js +174 -0
  135. package/build/index.js.map +1 -0
  136. package/build/logger.d.ts +38 -0
  137. package/build/logger.d.ts.map +1 -0
  138. package/build/logger.js +105 -0
  139. package/build/logger.js.map +1 -0
  140. package/build/mock-server.d.ts +2 -0
  141. package/build/mock-server.d.ts.map +1 -0
  142. package/build/mock-server.js +290 -0
  143. package/build/mock-server.js.map +1 -0
  144. package/build/orchestrator.d.ts +149 -0
  145. package/build/orchestrator.d.ts.map +1 -0
  146. package/build/orchestrator.js +874 -0
  147. package/build/orchestrator.js.map +1 -0
  148. package/build/ruleset-loader.d.ts +79 -0
  149. package/build/ruleset-loader.d.ts.map +1 -0
  150. package/build/ruleset-loader.js +514 -0
  151. package/build/ruleset-loader.js.map +1 -0
  152. package/build/schemas.d.ts +2568 -0
  153. package/build/schemas.d.ts.map +1 -0
  154. package/build/schemas.js +674 -0
  155. package/build/schemas.js.map +1 -0
  156. package/build/server.d.ts +39 -0
  157. package/build/server.d.ts.map +1 -0
  158. package/build/server.js +834 -0
  159. package/build/server.js.map +1 -0
  160. package/build/storage/memory-storage.d.ts +190 -0
  161. package/build/storage/memory-storage.d.ts.map +1 -0
  162. package/build/storage/memory-storage.js +629 -0
  163. package/build/storage/memory-storage.js.map +1 -0
  164. package/build/storage/redis-storage.d.ts +134 -0
  165. package/build/storage/redis-storage.d.ts.map +1 -0
  166. package/build/storage/redis-storage.js +236 -0
  167. package/build/storage/redis-storage.js.map +1 -0
  168. package/build/storage/storage-adapter.d.ts +189 -0
  169. package/build/storage/storage-adapter.d.ts.map +1 -0
  170. package/build/storage/storage-adapter.js +36 -0
  171. package/build/storage/storage-adapter.js.map +1 -0
  172. package/build/types.d.ts +981 -0
  173. package/build/types.d.ts.map +1 -0
  174. package/build/types.js +5 -0
  175. package/build/types.js.map +1 -0
  176. package/build/utils/version.d.ts +40 -0
  177. package/build/utils/version.d.ts.map +1 -0
  178. package/build/utils/version.js +94 -0
  179. package/build/utils/version.js.map +1 -0
  180. package/build/validation.d.ts +95 -0
  181. package/build/validation.d.ts.map +1 -0
  182. package/build/validation.js +150 -0
  183. package/build/validation.js.map +1 -0
  184. package/build/worker-pool.d.ts +137 -0
  185. package/build/worker-pool.d.ts.map +1 -0
  186. package/build/worker-pool.js +549 -0
  187. package/build/worker-pool.js.map +1 -0
  188. package/build/worker.d.ts +2 -0
  189. package/build/worker.d.ts.map +1 -0
  190. package/build/worker.js +427 -0
  191. package/build/worker.js.map +1 -0
  192. package/package.json +110 -0
  193. package/rulesets/CHANGELOG.md +25 -0
  194. package/rulesets/config/rulesets.yaml +96 -0
  195. package/rulesets/sources/README.md +47 -0
  196. package/rulesets/sources/example/oas-recommended/v1.0.0/ruleset.yaml +6 -0
  197. package/rulesets/sources/example/oas-recommended/v2.0.0/ruleset.yaml +14 -0
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Embedded Server Lifecycle Management
3
+ *
4
+ * Handles auto-start/stop of embedded server for CLI commands
5
+ */
6
+ import { startServer } from '../../server.js';
7
+ import { createEmbeddedModeConfig } from '../../config.js';
8
+ import { getConfigManager } from '../config-manager.js';
9
+ /**
10
+ * Start embedded server if needed based on CLI config
11
+ * Returns shutdown function to be called in finally block
12
+ *
13
+ * @param apiUrl Optional API URL override (if provided, don't start embedded server)
14
+ * @returns Shutdown function or null if server not started
15
+ */
16
+ export async function maybeStartEmbeddedServer(apiUrl) {
17
+ // If explicit API URL provided, assume external server
18
+ if (apiUrl) {
19
+ return null;
20
+ }
21
+ // Check CLI config for mode
22
+ const configManager = getConfigManager();
23
+ const config = await configManager.get();
24
+ // Only auto-start if in embedded mode
25
+ if (config.defaultMode !== 'embedded') {
26
+ return null;
27
+ }
28
+ // Start embedded server (TODO: add quiet flag to startServer())
29
+ const serverConfig = createEmbeddedModeConfig();
30
+ const server = await startServer(serverConfig);
31
+ // Return shutdown function
32
+ return async () => {
33
+ // Forcefully close server
34
+ try {
35
+ await server.shutdown();
36
+ }
37
+ catch (error) {
38
+ // Ignore shutdown errors in embedded mode
39
+ }
40
+ // Force exit after brief delay if still hanging
41
+ setTimeout(() => {
42
+ process.exit(0);
43
+ }, 1000).unref();
44
+ };
45
+ }
46
+ /**
47
+ * Get API URL based on current CLI configuration
48
+ *
49
+ * @param explicitUrl Optional explicit URL override
50
+ * @returns API URL to use
51
+ */
52
+ export async function getApiUrl(explicitUrl) {
53
+ if (explicitUrl) {
54
+ return explicitUrl;
55
+ }
56
+ const configManager = getConfigManager();
57
+ const config = await configManager.get();
58
+ const port = config.ports[config.defaultMode];
59
+ return `http://localhost:${port}`;
60
+ }
61
+ //# sourceMappingURL=embedded-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedded-server.js","sourceRoot":"","sources":["../../../src/cli/utils/embedded-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAe;IAEf,uDAAuD;IACvD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4BAA4B;IAC5B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC;IAEzC,sCAAsC;IACtC,IAAI,MAAM,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gEAAgE;IAChE,MAAM,YAAY,GAAG,wBAAwB,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC;IAE/C,2BAA2B;IAC3B,OAAO,KAAK,IAAI,EAAE;QAChB,0BAA0B;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,0CAA0C;QAC5C,CAAC;QAED,gDAAgD;QAChD,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,WAAoB;IAClD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAE9C,OAAO,oBAAoB,IAAI,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Mode-specific command validation
3
+ *
4
+ * Ensures commands are only used in appropriate modes
5
+ */
6
+ /**
7
+ * Check if command is allowed in current mode
8
+ * Exits with helpful error message if not allowed
9
+ *
10
+ * @param commandName Name of the command being run
11
+ */
12
+ export declare function requireServerMode(commandName: string): Promise<void>;
13
+ //# sourceMappingURL=mode-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode-validator.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/mode-validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB1E"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Mode-specific command validation
3
+ *
4
+ * Ensures commands are only used in appropriate modes
5
+ */
6
+ import chalk from 'chalk';
7
+ import { getConfigManager } from '../config-manager.js';
8
+ /**
9
+ * Check if command is allowed in current mode
10
+ * Exits with helpful error message if not allowed
11
+ *
12
+ * @param commandName Name of the command being run
13
+ */
14
+ export async function requireServerMode(commandName) {
15
+ const configManager = getConfigManager();
16
+ const config = await configManager.get();
17
+ if (config.defaultMode === 'embedded') {
18
+ console.error(chalk.red(`\n❌ Command '${commandName}' is not available in embedded mode\n`));
19
+ console.log('Embedded mode is for quick, self-contained linting without server management.');
20
+ console.log('This command is only available in standalone or companion modes.\n');
21
+ console.log(chalk.cyan('Available commands in embedded mode:'));
22
+ console.log(' • spectify lint <file> - Lint an OpenAPI document');
23
+ console.log(' • spectify health - Check service health (embedded server)');
24
+ console.log(' • spectify rulesets - List available rulesets');
25
+ console.log(' • spectify config - Manage CLI configuration\n');
26
+ console.log(chalk.cyan('To use this command, switch to standalone mode:'));
27
+ console.log(` spectify config set mode standalone\n`);
28
+ process.exit(1);
29
+ }
30
+ }
31
+ //# sourceMappingURL=mode-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode-validator.js","sourceRoot":"","sources":["../../../src/cli/utils/mode-validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IACzD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC;IAEzC,IAAI,MAAM,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,WAAW,uCAAuC,CAAC,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Port Checker - Utility to check if a port is available
3
+ */
4
+ export interface PortCheckResult {
5
+ available: boolean;
6
+ port: number;
7
+ }
8
+ /**
9
+ * Check if a port is available
10
+ */
11
+ export declare function isPortAvailable(port: number): Promise<boolean>;
12
+ /**
13
+ * Find the next available port starting from a given port
14
+ */
15
+ export declare function findAvailablePort(startPort: number, maxAttempts?: number): Promise<number | null>;
16
+ /**
17
+ * Check multiple ports and return their availability status
18
+ */
19
+ export declare function checkPorts(ports: number[]): Promise<PortCheckResult[]>;
20
+ //# sourceMappingURL=port-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"port-checker.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/port-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBpE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,WAAW,GAAE,MAAW,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASxB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAQ5E"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Port Checker - Utility to check if a port is available
3
+ */
4
+ import net from 'net';
5
+ /**
6
+ * Check if a port is available
7
+ */
8
+ export async function isPortAvailable(port) {
9
+ return new Promise((resolve) => {
10
+ const server = net.createServer();
11
+ server.once('error', (err) => {
12
+ if (err.code === 'EADDRINUSE') {
13
+ resolve(false);
14
+ }
15
+ else {
16
+ resolve(false);
17
+ }
18
+ });
19
+ server.once('listening', () => {
20
+ server.close();
21
+ resolve(true);
22
+ });
23
+ server.listen(port, '0.0.0.0');
24
+ });
25
+ }
26
+ /**
27
+ * Find the next available port starting from a given port
28
+ */
29
+ export async function findAvailablePort(startPort, maxAttempts = 10) {
30
+ for (let i = 0; i < maxAttempts; i++) {
31
+ const port = startPort + i;
32
+ const available = await isPortAvailable(port);
33
+ if (available) {
34
+ return port;
35
+ }
36
+ }
37
+ return null;
38
+ }
39
+ /**
40
+ * Check multiple ports and return their availability status
41
+ */
42
+ export async function checkPorts(ports) {
43
+ const results = await Promise.all(ports.map(async (port) => ({
44
+ port,
45
+ available: await isPortAvailable(port),
46
+ })));
47
+ return results;
48
+ }
49
+ //# sourceMappingURL=port-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"port-checker.js","sourceRoot":"","sources":["../../../src/cli/utils/port-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,GAAG,MAAM,KAAK,CAAC;AAOtB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAElC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;YAClD,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAiB,EACjB,cAAsB,EAAE;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAe;IAC9C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI;QACJ,SAAS,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC;KACvC,CAAC,CAAC,CACJ,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Configuration loader for OpenAPI Lint Orchestrator
3
+ *
4
+ * Zero-config by default with sensible defaults
5
+ * Optional YAML file for advanced configuration
6
+ * Environment variable overrides always available
7
+ */
8
+ import 'dotenv/config';
9
+ import type { OrchestratorConfig } from './types.js';
10
+ /**
11
+ * Resolve a resolver module name to its absolute file path.
12
+ * Module lives in `{packageRoot}/resolvers/{name}.js`.
13
+ * Returns `undefined` if `name` is falsy (disabled).
14
+ */
15
+ export declare function resolveResolverPath(name: string | undefined): string | undefined;
16
+ /**
17
+ * Resolve the orchestrator home directory.
18
+ * SPECTIFY_HOME env var overrides the default ~/.spectify.
19
+ * Used as the base for all runtime data (uploads, reports, config).
20
+ */
21
+ export declare function spectifyHome(): string;
22
+ /**
23
+ * Load configuration from optional file or use defaults
24
+ */
25
+ export declare function loadConfig(configPath?: string): Promise<OrchestratorConfig>;
26
+ /**
27
+ * Validate configuration
28
+ */
29
+ export declare function validateConfig(config: OrchestratorConfig): void;
30
+ /**
31
+ * Get configuration summary for logging
32
+ */
33
+ export declare function getConfigSummary(config: OrchestratorConfig): Record<string, any>;
34
+ /**
35
+ * Create lightweight configuration for embedded mode
36
+ *
37
+ * Used by CLI when starting embedded server
38
+ * Optimized for single-user, developer laptop use
39
+ */
40
+ export declare function createEmbeddedModeConfig(overrides?: Partial<OrchestratorConfig>): OrchestratorConfig;
41
+ /**
42
+ * Create production configuration for standalone server mode
43
+ *
44
+ * Used when running spectifyd as dedicated process
45
+ * Optimized for production, multi-user, always-on deployments
46
+ * Document store defaults to ~/.spectify/uploads (user home directory)
47
+ */
48
+ export declare function createStandaloneModeConfig(overrides?: Partial<OrchestratorConfig>): OrchestratorConfig;
49
+ /**
50
+ * Create configuration for MCP companion mode
51
+ *
52
+ * Used when the orchestrator is started by MCP OpenAPI Analyzer
53
+ * Shares MCP's document store, lighter resource footprint
54
+ * Document store path MUST be provided explicitly (no default)
55
+ */
56
+ export declare function createCompanionModeConfig(overrides?: Partial<OrchestratorConfig>): OrchestratorConfig;
57
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,eAAe,CAAC;AAMvB,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,YAAY,CAAC;AAOnE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAIhF;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAqDD;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAwBjF;AAuND;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAgC/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAchF;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAyDpG;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAyDtG;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAuDrG"}