@nanocollective/get-md 1.0.2 → 1.1.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.
- package/LICENSE +1 -1
- package/README.md +155 -1
- package/dist/cli.js +388 -4
- package/dist/cli.js.map +1 -1
- package/dist/cli.spec.js +187 -0
- package/dist/cli.spec.js.map +1 -1
- package/dist/converters/llm-converter.d.ts +71 -0
- package/dist/converters/llm-converter.d.ts.map +1 -0
- package/dist/converters/llm-converter.js +191 -0
- package/dist/converters/llm-converter.js.map +1 -0
- package/dist/converters/llm-converter.spec.d.ts +2 -0
- package/dist/converters/llm-converter.spec.d.ts.map +1 -0
- package/dist/converters/llm-converter.spec.js +281 -0
- package/dist/converters/llm-converter.spec.js.map +1 -0
- package/dist/converters/llm-manager.d.ts +88 -0
- package/dist/converters/llm-manager.d.ts.map +1 -0
- package/dist/converters/llm-manager.js +277 -0
- package/dist/converters/llm-manager.js.map +1 -0
- package/dist/converters/llm-manager.spec.d.ts +2 -0
- package/dist/converters/llm-manager.spec.d.ts.map +1 -0
- package/dist/converters/llm-manager.spec.js +280 -0
- package/dist/converters/llm-manager.spec.js.map +1 -0
- package/dist/extractors/metadata-extractor.js +1 -1
- package/dist/extractors/metadata-extractor.js.map +1 -1
- package/dist/index.d.ts +14 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -10
- package/dist/index.js.map +1 -1
- package/dist/index.spec.js +172 -1
- package/dist/index.spec.js.map +1 -1
- package/dist/optimizers/html-cleaner.js +1 -1
- package/dist/optimizers/html-cleaner.js.map +1 -1
- package/dist/optimizers/html-cleaner.spec.js +1 -0
- package/dist/optimizers/html-cleaner.spec.js.map +1 -1
- package/dist/optimizers/llm-formatter.js +2 -2
- package/dist/optimizers/llm-formatter.js.map +1 -1
- package/dist/optimizers/structure-enhancer.js +3 -3
- package/dist/optimizers/structure-enhancer.js.map +1 -1
- package/dist/optimizers/structure-enhancer.spec.js +1 -1
- package/dist/optimizers/structure-enhancer.spec.js.map +1 -1
- package/dist/parsers/markdown-parser.d.ts +36 -0
- package/dist/parsers/markdown-parser.d.ts.map +1 -1
- package/dist/parsers/markdown-parser.js +267 -45
- package/dist/parsers/markdown-parser.js.map +1 -1
- package/dist/parsers/markdown-parser.spec.js +106 -98
- package/dist/parsers/markdown-parser.spec.js.map +1 -1
- package/dist/types.d.ts +149 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/config-loader.d.ts +62 -0
- package/dist/utils/config-loader.d.ts.map +1 -0
- package/dist/utils/config-loader.js +167 -0
- package/dist/utils/config-loader.js.map +1 -0
- package/dist/utils/config-loader.spec.d.ts +2 -0
- package/dist/utils/config-loader.spec.d.ts.map +1 -0
- package/dist/utils/config-loader.spec.js +355 -0
- package/dist/utils/config-loader.spec.js.map +1 -0
- package/dist/utils/url-fetcher.d.ts.map +1 -1
- package/dist/utils/url-fetcher.js +1 -1
- package/dist/utils/url-fetcher.js.map +1 -1
- package/dist/utils/validators.js +1 -1
- package/dist/utils/validators.js.map +1 -1
- package/package.json +25 -17
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,131 @@
|
|
|
1
|
+
/** Event emitted when checking for model availability */
|
|
2
|
+
export interface LLMModelCheckEvent {
|
|
3
|
+
type: "model-check";
|
|
4
|
+
status: "checking" | "found" | "not-found";
|
|
5
|
+
path?: string;
|
|
6
|
+
}
|
|
7
|
+
/** Event emitted when model download starts */
|
|
8
|
+
export interface LLMDownloadStartEvent {
|
|
9
|
+
type: "download-start";
|
|
10
|
+
modelName: string;
|
|
11
|
+
totalSize: number;
|
|
12
|
+
}
|
|
13
|
+
/** Event emitted during model download progress */
|
|
14
|
+
export interface LLMDownloadProgressEvent {
|
|
15
|
+
type: "download-progress";
|
|
16
|
+
downloaded: number;
|
|
17
|
+
total: number;
|
|
18
|
+
percentage: number;
|
|
19
|
+
speed?: string;
|
|
20
|
+
}
|
|
21
|
+
/** Event emitted when model download completes */
|
|
22
|
+
export interface LLMDownloadCompleteEvent {
|
|
23
|
+
type: "download-complete";
|
|
24
|
+
path: string;
|
|
25
|
+
size: number;
|
|
26
|
+
}
|
|
27
|
+
/** Event emitted when model download fails */
|
|
28
|
+
export interface LLMDownloadErrorEvent {
|
|
29
|
+
type: "download-error";
|
|
30
|
+
error: Error;
|
|
31
|
+
}
|
|
32
|
+
/** Event emitted when model is loading */
|
|
33
|
+
export interface LLMModelLoadingEvent {
|
|
34
|
+
type: "model-loading";
|
|
35
|
+
modelName: string;
|
|
36
|
+
}
|
|
37
|
+
/** Event emitted when llama.cpp initialization starts */
|
|
38
|
+
export interface LLMInitStartEvent {
|
|
39
|
+
type: "llama-init-start";
|
|
40
|
+
}
|
|
41
|
+
/** Event emitted when llama.cpp initialization completes */
|
|
42
|
+
export interface LLMInitCompleteEvent {
|
|
43
|
+
type: "llama-init-complete";
|
|
44
|
+
}
|
|
45
|
+
/** Event emitted when model file is being loaded */
|
|
46
|
+
export interface LLMModelFileLoadingEvent {
|
|
47
|
+
type: "model-file-loading";
|
|
48
|
+
path: string;
|
|
49
|
+
}
|
|
50
|
+
/** Event emitted when model has loaded */
|
|
51
|
+
export interface LLMModelLoadedEvent {
|
|
52
|
+
type: "model-loaded";
|
|
53
|
+
loadTime: number;
|
|
54
|
+
}
|
|
55
|
+
/** Event emitted when conversion starts */
|
|
56
|
+
export interface LLMConversionStartEvent {
|
|
57
|
+
type: "conversion-start";
|
|
58
|
+
inputSize: number;
|
|
59
|
+
}
|
|
60
|
+
/** Event emitted during conversion progress */
|
|
61
|
+
export interface LLMConversionProgressEvent {
|
|
62
|
+
type: "conversion-progress";
|
|
63
|
+
tokensProcessed?: number;
|
|
64
|
+
}
|
|
65
|
+
/** Event emitted when conversion completes */
|
|
66
|
+
export interface LLMConversionCompleteEvent {
|
|
67
|
+
type: "conversion-complete";
|
|
68
|
+
outputSize: number;
|
|
69
|
+
duration: number;
|
|
70
|
+
}
|
|
71
|
+
/** Event emitted when conversion fails */
|
|
72
|
+
export interface LLMConversionErrorEvent {
|
|
73
|
+
type: "conversion-error";
|
|
74
|
+
error: Error;
|
|
75
|
+
}
|
|
76
|
+
/** Event emitted when falling back to Turndown */
|
|
77
|
+
export interface LLMFallbackStartEvent {
|
|
78
|
+
type: "fallback-start";
|
|
79
|
+
reason: string;
|
|
80
|
+
}
|
|
81
|
+
/** Union of all LLM events */
|
|
82
|
+
export type LLMEvent = LLMModelCheckEvent | LLMDownloadStartEvent | LLMDownloadProgressEvent | LLMDownloadCompleteEvent | LLMDownloadErrorEvent | LLMModelLoadingEvent | LLMInitStartEvent | LLMInitCompleteEvent | LLMModelFileLoadingEvent | LLMModelLoadedEvent | LLMConversionStartEvent | LLMConversionProgressEvent | LLMConversionCompleteEvent | LLMConversionErrorEvent | LLMFallbackStartEvent;
|
|
83
|
+
/** Callback for LLM events */
|
|
84
|
+
export type LLMEventCallback = (event: LLMEvent) => void | Promise<void>;
|
|
85
|
+
/** Result from checking LLM model availability */
|
|
86
|
+
export interface LLMModelStatus {
|
|
87
|
+
/** Whether the model is available locally */
|
|
88
|
+
available: boolean;
|
|
89
|
+
/** Path to the model file */
|
|
90
|
+
path?: string;
|
|
91
|
+
/** Size of the model file in bytes */
|
|
92
|
+
size?: number;
|
|
93
|
+
/** Human-readable size (e.g., "986MB") */
|
|
94
|
+
sizeFormatted?: string;
|
|
95
|
+
/** Model version identifier */
|
|
96
|
+
version?: string;
|
|
97
|
+
}
|
|
98
|
+
/** Options for downloading the LLM model */
|
|
99
|
+
export interface LLMDownloadOptions {
|
|
100
|
+
/** Custom path to save the model */
|
|
101
|
+
modelPath?: string;
|
|
102
|
+
/** Progress callback */
|
|
103
|
+
onProgress?: (downloaded: number, total: number, percentage: number) => void;
|
|
104
|
+
/** Completion callback */
|
|
105
|
+
onComplete?: (path: string) => void;
|
|
106
|
+
/** Error callback */
|
|
107
|
+
onError?: (error: Error) => void;
|
|
108
|
+
}
|
|
109
|
+
/** Information about available LLM models */
|
|
110
|
+
export interface LLMModelInfo {
|
|
111
|
+
/** Default storage path */
|
|
112
|
+
defaultPath: string;
|
|
113
|
+
/** Recommended model name */
|
|
114
|
+
recommendedModel: string;
|
|
115
|
+
/** List of available model variants */
|
|
116
|
+
availableModels: LLMModelVariant[];
|
|
117
|
+
}
|
|
118
|
+
/** Information about a specific model variant */
|
|
119
|
+
export interface LLMModelVariant {
|
|
120
|
+
/** Model name */
|
|
121
|
+
name: string;
|
|
122
|
+
/** Size in bytes */
|
|
123
|
+
size: number;
|
|
124
|
+
/** Quantization type (e.g., "Q4_K_M") */
|
|
125
|
+
quantization: string;
|
|
126
|
+
/** Estimated RAM required */
|
|
127
|
+
ramRequired: string;
|
|
128
|
+
}
|
|
1
129
|
/** Options for HTML to Markdown conversion */
|
|
2
130
|
export interface MarkdownOptions {
|
|
3
131
|
/** Extract only main content using Readability (default: true) */
|
|
@@ -32,6 +160,27 @@ export interface MarkdownOptions {
|
|
|
32
160
|
headers?: Record<string, string>;
|
|
33
161
|
/** User agent string for URL fetching */
|
|
34
162
|
userAgent?: string;
|
|
163
|
+
/** Use LLM for HTML to Markdown conversion (default: false) */
|
|
164
|
+
useLLM?: boolean;
|
|
165
|
+
/** Custom path to the LLM model file */
|
|
166
|
+
llmModelPath?: string;
|
|
167
|
+
/** LLM temperature for generation (default: 0.1) */
|
|
168
|
+
llmTemperature?: number;
|
|
169
|
+
/** Maximum tokens for LLM generation (default: 512000) */
|
|
170
|
+
llmMaxTokens?: number;
|
|
171
|
+
/** Fall back to Turndown if LLM fails (default: true) */
|
|
172
|
+
llmFallback?: boolean;
|
|
173
|
+
/** Callback for all LLM events */
|
|
174
|
+
onLLMEvent?: LLMEventCallback;
|
|
175
|
+
/** Simplified callback for download progress */
|
|
176
|
+
onDownloadProgress?: (downloaded: number, total: number, percentage: number) => void;
|
|
177
|
+
/** Simplified callback for model status changes */
|
|
178
|
+
onModelStatus?: (status: "checking" | "loading" | "loaded" | "not-found") => void;
|
|
179
|
+
/** Simplified callback for conversion progress */
|
|
180
|
+
onConversionProgress?: (progress: {
|
|
181
|
+
stage: string;
|
|
182
|
+
percentage?: number;
|
|
183
|
+
}) => void;
|
|
35
184
|
}
|
|
36
185
|
/** Result from markdown conversion */
|
|
37
186
|
export interface MarkdownResult {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { MarkdownOptions } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration schema for .getmdrc or get-md.config.json
|
|
4
|
+
*/
|
|
5
|
+
export interface GetMdConfig {
|
|
6
|
+
/** Use LLM for HTML to Markdown conversion */
|
|
7
|
+
useLLM?: boolean;
|
|
8
|
+
/** Custom path to the LLM model file */
|
|
9
|
+
llmModelPath?: string;
|
|
10
|
+
/** LLM temperature for generation */
|
|
11
|
+
llmTemperature?: number;
|
|
12
|
+
/** Fall back to Turndown if LLM fails */
|
|
13
|
+
llmFallback?: boolean;
|
|
14
|
+
/** Extract main content using Readability */
|
|
15
|
+
extractContent?: boolean;
|
|
16
|
+
/** Include metadata as YAML frontmatter */
|
|
17
|
+
includeMeta?: boolean;
|
|
18
|
+
/** Include images in output */
|
|
19
|
+
includeImages?: boolean;
|
|
20
|
+
/** Include links in output */
|
|
21
|
+
includeLinks?: boolean;
|
|
22
|
+
/** Include tables in output */
|
|
23
|
+
includeTables?: boolean;
|
|
24
|
+
/** Aggressive noise removal */
|
|
25
|
+
aggressiveCleanup?: boolean;
|
|
26
|
+
/** Maximum output length */
|
|
27
|
+
maxLength?: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Load configuration from file(s)
|
|
31
|
+
*
|
|
32
|
+
* Searches for config files in the following order:
|
|
33
|
+
* 1. Current working directory
|
|
34
|
+
* 2. Home directory (~/.getmdrc)
|
|
35
|
+
*
|
|
36
|
+
* Config from CWD takes precedence over home directory config.
|
|
37
|
+
*
|
|
38
|
+
* @returns Merged config from all found config files, or empty object if none found
|
|
39
|
+
*/
|
|
40
|
+
export declare function loadConfig(): GetMdConfig;
|
|
41
|
+
/**
|
|
42
|
+
* Load configuration from a specific file path
|
|
43
|
+
*
|
|
44
|
+
* @param filePath Path to the config file
|
|
45
|
+
* @returns Parsed config object
|
|
46
|
+
*/
|
|
47
|
+
export declare function loadConfigFromFile(filePath: string): GetMdConfig;
|
|
48
|
+
/**
|
|
49
|
+
* Find the config file path that would be loaded
|
|
50
|
+
*
|
|
51
|
+
* @returns Path to the config file, or null if none found
|
|
52
|
+
*/
|
|
53
|
+
export declare function findConfigPath(): string | null;
|
|
54
|
+
/**
|
|
55
|
+
* Merge loaded config with options, with options taking precedence
|
|
56
|
+
*
|
|
57
|
+
* @param config Loaded config
|
|
58
|
+
* @param options User-provided options (CLI flags or SDK options)
|
|
59
|
+
* @returns Merged options
|
|
60
|
+
*/
|
|
61
|
+
export declare function mergeConfigWithOptions(config: GetMdConfig, options: MarkdownOptions): MarkdownOptions;
|
|
62
|
+
//# sourceMappingURL=config-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,8CAA8C;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+BAA+B;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwGD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,IAAI,WAAW,CAgBxC;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAc9C;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,eAAe,GACvB,eAAe,CAYjB"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
// src/utils/config-loader.ts
|
|
2
|
+
import * as fs from "node:fs";
|
|
3
|
+
import * as os from "node:os";
|
|
4
|
+
import * as path from "node:path";
|
|
5
|
+
/**
|
|
6
|
+
* Supported config file names in order of priority
|
|
7
|
+
*/
|
|
8
|
+
const CONFIG_FILE_NAMES = [
|
|
9
|
+
".getmdrc",
|
|
10
|
+
".getmdrc.json",
|
|
11
|
+
"get-md.config.json",
|
|
12
|
+
"getmd.config.json",
|
|
13
|
+
];
|
|
14
|
+
/**
|
|
15
|
+
* Search for a config file in the given directory
|
|
16
|
+
*/
|
|
17
|
+
function findConfigInDir(dir) {
|
|
18
|
+
for (const fileName of CONFIG_FILE_NAMES) {
|
|
19
|
+
const filePath = path.join(dir, fileName);
|
|
20
|
+
if (fs.existsSync(filePath)) {
|
|
21
|
+
return filePath;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Load and parse a config file
|
|
28
|
+
*/
|
|
29
|
+
function loadConfigFile(filePath) {
|
|
30
|
+
try {
|
|
31
|
+
const content = fs.readFileSync(filePath, "utf-8");
|
|
32
|
+
const config = JSON.parse(content);
|
|
33
|
+
return validateConfig(config);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
37
|
+
throw new Error(`Failed to load config from ${filePath}: ${message}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Validate config values and return a clean config object
|
|
42
|
+
*/
|
|
43
|
+
function validateConfig(config) {
|
|
44
|
+
if (typeof config !== "object" || config === null) {
|
|
45
|
+
throw new Error("Config must be a JSON object");
|
|
46
|
+
}
|
|
47
|
+
const result = {};
|
|
48
|
+
const cfg = config;
|
|
49
|
+
// Validate boolean options
|
|
50
|
+
const booleanKeys = [
|
|
51
|
+
"useLLM",
|
|
52
|
+
"llmFallback",
|
|
53
|
+
"extractContent",
|
|
54
|
+
"includeMeta",
|
|
55
|
+
"includeImages",
|
|
56
|
+
"includeLinks",
|
|
57
|
+
"includeTables",
|
|
58
|
+
"aggressiveCleanup",
|
|
59
|
+
];
|
|
60
|
+
for (const key of booleanKeys) {
|
|
61
|
+
if (key in cfg) {
|
|
62
|
+
const value = cfg[key];
|
|
63
|
+
if (typeof value !== "boolean") {
|
|
64
|
+
throw new Error(`Config option "${key}" must be a boolean`);
|
|
65
|
+
}
|
|
66
|
+
result[key] = value;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Validate string options
|
|
70
|
+
if ("llmModelPath" in cfg) {
|
|
71
|
+
if (typeof cfg.llmModelPath !== "string") {
|
|
72
|
+
throw new Error('Config option "llmModelPath" must be a string');
|
|
73
|
+
}
|
|
74
|
+
result.llmModelPath = cfg.llmModelPath;
|
|
75
|
+
}
|
|
76
|
+
// Validate number options
|
|
77
|
+
if ("llmTemperature" in cfg) {
|
|
78
|
+
if (typeof cfg.llmTemperature !== "number") {
|
|
79
|
+
throw new Error('Config option "llmTemperature" must be a number');
|
|
80
|
+
}
|
|
81
|
+
if (cfg.llmTemperature < 0 || cfg.llmTemperature > 2) {
|
|
82
|
+
throw new Error('Config option "llmTemperature" must be between 0 and 2');
|
|
83
|
+
}
|
|
84
|
+
result.llmTemperature = cfg.llmTemperature;
|
|
85
|
+
}
|
|
86
|
+
if ("maxLength" in cfg) {
|
|
87
|
+
if (typeof cfg.maxLength !== "number" || !Number.isInteger(cfg.maxLength)) {
|
|
88
|
+
throw new Error('Config option "maxLength" must be an integer');
|
|
89
|
+
}
|
|
90
|
+
if (cfg.maxLength < 0) {
|
|
91
|
+
throw new Error('Config option "maxLength" must be positive');
|
|
92
|
+
}
|
|
93
|
+
result.maxLength = cfg.maxLength;
|
|
94
|
+
}
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Load configuration from file(s)
|
|
99
|
+
*
|
|
100
|
+
* Searches for config files in the following order:
|
|
101
|
+
* 1. Current working directory
|
|
102
|
+
* 2. Home directory (~/.getmdrc)
|
|
103
|
+
*
|
|
104
|
+
* Config from CWD takes precedence over home directory config.
|
|
105
|
+
*
|
|
106
|
+
* @returns Merged config from all found config files, or empty object if none found
|
|
107
|
+
*/
|
|
108
|
+
export function loadConfig() {
|
|
109
|
+
let config = {};
|
|
110
|
+
// 1. Load from home directory (lowest priority)
|
|
111
|
+
const homeConfig = findConfigInDir(os.homedir());
|
|
112
|
+
if (homeConfig) {
|
|
113
|
+
config = { ...config, ...loadConfigFile(homeConfig) };
|
|
114
|
+
}
|
|
115
|
+
// 2. Load from current working directory (highest priority)
|
|
116
|
+
const cwdConfig = findConfigInDir(process.cwd());
|
|
117
|
+
if (cwdConfig) {
|
|
118
|
+
config = { ...config, ...loadConfigFile(cwdConfig) };
|
|
119
|
+
}
|
|
120
|
+
return config;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Load configuration from a specific file path
|
|
124
|
+
*
|
|
125
|
+
* @param filePath Path to the config file
|
|
126
|
+
* @returns Parsed config object
|
|
127
|
+
*/
|
|
128
|
+
export function loadConfigFromFile(filePath) {
|
|
129
|
+
return loadConfigFile(filePath);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Find the config file path that would be loaded
|
|
133
|
+
*
|
|
134
|
+
* @returns Path to the config file, or null if none found
|
|
135
|
+
*/
|
|
136
|
+
export function findConfigPath() {
|
|
137
|
+
// Check CWD first (takes precedence)
|
|
138
|
+
const cwdConfig = findConfigInDir(process.cwd());
|
|
139
|
+
if (cwdConfig) {
|
|
140
|
+
return cwdConfig;
|
|
141
|
+
}
|
|
142
|
+
// Then check home directory
|
|
143
|
+
const homeConfig = findConfigInDir(os.homedir());
|
|
144
|
+
if (homeConfig) {
|
|
145
|
+
return homeConfig;
|
|
146
|
+
}
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Merge loaded config with options, with options taking precedence
|
|
151
|
+
*
|
|
152
|
+
* @param config Loaded config
|
|
153
|
+
* @param options User-provided options (CLI flags or SDK options)
|
|
154
|
+
* @returns Merged options
|
|
155
|
+
*/
|
|
156
|
+
export function mergeConfigWithOptions(config, options) {
|
|
157
|
+
// Start with config as base, then override with explicit options
|
|
158
|
+
const merged = { ...config };
|
|
159
|
+
// Only override with options that are explicitly set (not undefined)
|
|
160
|
+
for (const [key, value] of Object.entries(options)) {
|
|
161
|
+
if (value !== undefined) {
|
|
162
|
+
merged[key] = value;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return merged;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=config-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.spec.d.ts","sourceRoot":"","sources":["../../src/utils/config-loader.spec.ts"],"names":[],"mappings":""}
|