@ibm/ibmi-mcp-server 0.4.5 → 0.5.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.
- package/README.md +2 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +58 -0
- package/dist/config/index.js.map +1 -1
- package/dist/ibmi-mcp-server/schemas/config.d.ts +58 -0
- package/dist/ibmi-mcp-server/schemas/config.d.ts.map +1 -1
- package/dist/ibmi-mcp-server/schemas/config.js +35 -0
- package/dist/ibmi-mcp-server/schemas/config.js.map +1 -1
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts +18 -1
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts.map +1 -1
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js +30 -2
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js.map +1 -1
- package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts +5 -2
- package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts.map +1 -1
- package/dist/ibmi-mcp-server/services/baseConnectionPool.js +45 -3
- package/dist/ibmi-mcp-server/services/baseConnectionPool.js.map +1 -1
- package/dist/ibmi-mcp-server/services/connectionPool.d.ts +3 -2
- package/dist/ibmi-mcp-server/services/connectionPool.d.ts.map +1 -1
- package/dist/ibmi-mcp-server/services/connectionPool.js +5 -2
- package/dist/ibmi-mcp-server/services/connectionPool.js.map +1 -1
- package/dist/ibmi-mcp-server/services/sourceManager.d.ts +18 -1
- package/dist/ibmi-mcp-server/services/sourceManager.d.ts.map +1 -1
- package/dist/ibmi-mcp-server/services/sourceManager.js +31 -2
- package/dist/ibmi-mcp-server/services/sourceManager.js.map +1 -1
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.d.ts.map +1 -1
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js +1 -1
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js.map +1 -1
- package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts +1 -1
- package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts.map +1 -1
- package/dist/ibmi-mcp-server/utils/config/toolFactory.js +47 -4
- package/dist/ibmi-mcp-server/utils/config/toolFactory.js.map +1 -1
- package/dist/public/context.d.ts +5 -0
- package/dist/public/context.d.ts.map +1 -0
- package/dist/public/context.js +5 -0
- package/dist/public/context.js.map +1 -0
- package/dist/public/formatting.d.ts +5 -0
- package/dist/public/formatting.d.ts.map +1 -0
- package/dist/public/formatting.js +5 -0
- package/dist/public/formatting.js.map +1 -0
- package/dist/public/services.d.ts +8 -0
- package/dist/public/services.d.ts.map +1 -0
- package/dist/public/services.js +8 -0
- package/dist/public/services.js.map +1 -0
- package/dist/public/tools.d.ts +16 -0
- package/dist/public/tools.d.ts.map +1 -0
- package/dist/public/tools.js +15 -0
- package/dist/public/tools.js.map +1 -0
- package/package.json +20 -17
- package/dist/cli/commands/columns.d.ts +0 -7
- package/dist/cli/commands/columns.d.ts.map +0 -1
- package/dist/cli/commands/columns.js +0 -29
- package/dist/cli/commands/columns.js.map +0 -1
- package/dist/cli/commands/completion.d.ts +0 -10
- package/dist/cli/commands/completion.d.ts.map +0 -1
- package/dist/cli/commands/completion.js +0 -247
- package/dist/cli/commands/completion.js.map +0 -1
- package/dist/cli/commands/config.d.ts +0 -11
- package/dist/cli/commands/config.d.ts.map +0 -1
- package/dist/cli/commands/config.js +0 -124
- package/dist/cli/commands/config.js.map +0 -1
- package/dist/cli/commands/describe.d.ts +0 -9
- package/dist/cli/commands/describe.d.ts.map +0 -1
- package/dist/cli/commands/describe.js +0 -82
- package/dist/cli/commands/describe.js.map +0 -1
- package/dist/cli/commands/related.d.ts +0 -7
- package/dist/cli/commands/related.d.ts.map +0 -1
- package/dist/cli/commands/related.js +0 -32
- package/dist/cli/commands/related.js.map +0 -1
- package/dist/cli/commands/schemas.d.ts +0 -7
- package/dist/cli/commands/schemas.d.ts.map +0 -1
- package/dist/cli/commands/schemas.js +0 -49
- package/dist/cli/commands/schemas.js.map +0 -1
- package/dist/cli/commands/sql.d.ts +0 -8
- package/dist/cli/commands/sql.d.ts.map +0 -1
- package/dist/cli/commands/sql.js +0 -187
- package/dist/cli/commands/sql.js.map +0 -1
- package/dist/cli/commands/system.d.ts +0 -11
- package/dist/cli/commands/system.d.ts.map +0 -1
- package/dist/cli/commands/system.js +0 -263
- package/dist/cli/commands/system.js.map +0 -1
- package/dist/cli/commands/tables.d.ts +0 -7
- package/dist/cli/commands/tables.d.ts.map +0 -1
- package/dist/cli/commands/tables.js +0 -48
- package/dist/cli/commands/tables.js.map +0 -1
- package/dist/cli/commands/tool.d.ts +0 -18
- package/dist/cli/commands/tool.d.ts.map +0 -1
- package/dist/cli/commands/tool.js +0 -194
- package/dist/cli/commands/tool.js.map +0 -1
- package/dist/cli/commands/tools-list.d.ts +0 -20
- package/dist/cli/commands/tools-list.d.ts.map +0 -1
- package/dist/cli/commands/tools-list.js +0 -209
- package/dist/cli/commands/tools-list.js.map +0 -1
- package/dist/cli/commands/validate.d.ts +0 -7
- package/dist/cli/commands/validate.d.ts.map +0 -1
- package/dist/cli/commands/validate.js +0 -77
- package/dist/cli/commands/validate.js.map +0 -1
- package/dist/cli/config/credentials.d.ts +0 -21
- package/dist/cli/config/credentials.d.ts.map +0 -1
- package/dist/cli/config/credentials.js +0 -96
- package/dist/cli/config/credentials.js.map +0 -1
- package/dist/cli/config/index.d.ts +0 -11
- package/dist/cli/config/index.d.ts.map +0 -1
- package/dist/cli/config/index.js +0 -9
- package/dist/cli/config/index.js.map +0 -1
- package/dist/cli/config/loader.d.ts +0 -52
- package/dist/cli/config/loader.d.ts.map +0 -1
- package/dist/cli/config/loader.js +0 -237
- package/dist/cli/config/loader.js.map +0 -1
- package/dist/cli/config/resolver.d.ts +0 -31
- package/dist/cli/config/resolver.d.ts.map +0 -1
- package/dist/cli/config/resolver.js +0 -115
- package/dist/cli/config/resolver.js.map +0 -1
- package/dist/cli/config/schema.d.ts +0 -128
- package/dist/cli/config/schema.d.ts.map +0 -1
- package/dist/cli/config/schema.js +0 -37
- package/dist/cli/config/schema.js.map +0 -1
- package/dist/cli/config/types.d.ts +0 -59
- package/dist/cli/config/types.d.ts.map +0 -1
- package/dist/cli/config/types.js +0 -6
- package/dist/cli/config/types.js.map +0 -1
- package/dist/cli/formatters/output.d.ts +0 -70
- package/dist/cli/formatters/output.d.ts.map +0 -1
- package/dist/cli/formatters/output.js +0 -279
- package/dist/cli/formatters/output.js.map +0 -1
- package/dist/cli/index.d.ts +0 -13
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -102
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/utils/command-helpers.d.ts +0 -47
- package/dist/cli/utils/command-helpers.d.ts.map +0 -1
- package/dist/cli/utils/command-helpers.js +0 -211
- package/dist/cli/utils/command-helpers.js.map +0 -1
- package/dist/cli/utils/connection.d.ts +0 -20
- package/dist/cli/utils/connection.d.ts.map +0 -1
- package/dist/cli/utils/connection.js +0 -37
- package/dist/cli/utils/connection.js.map +0 -1
- package/dist/cli/utils/exit-codes.d.ts +0 -48
- package/dist/cli/utils/exit-codes.d.ts.map +0 -1
- package/dist/cli/utils/exit-codes.js +0 -111
- package/dist/cli/utils/exit-codes.js.map +0 -1
- package/dist/cli/utils/multi-connection.d.ts +0 -26
- package/dist/cli/utils/multi-connection.d.ts.map +0 -1
- package/dist/cli/utils/multi-connection.js +0 -72
- package/dist/cli/utils/multi-connection.js.map +0 -1
- package/dist/cli/utils/yaml-loader.d.ts +0 -69
- package/dist/cli/utils/yaml-loader.d.ts.map +0 -1
- package/dist/cli/utils/yaml-loader.js +0 -135
- package/dist/cli/utils/yaml-loader.js.map +0 -1
- package/dist/cli/utils/yaml-to-commander.d.ts +0 -26
- package/dist/cli/utils/yaml-to-commander.d.ts.map +0 -1
- package/dist/cli/utils/yaml-to-commander.js +0 -156
- package/dist/cli/utils/yaml-to-commander.js.map +0 -1
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Lightweight YAML tool configuration loader for CLI.
|
|
3
|
-
* Reads and parses YAML tool files without pulling in the full MCP server stack.
|
|
4
|
-
* Used by discovery commands (ibmi tools, ibmi toolsets) and tool execution.
|
|
5
|
-
* @module cli/utils/yaml-loader
|
|
6
|
-
*/
|
|
7
|
-
import { readFileSync, existsSync, statSync, readdirSync } from "fs";
|
|
8
|
-
import { resolve, join } from "path";
|
|
9
|
-
import { load as yamlLoad } from "js-yaml";
|
|
10
|
-
/**
|
|
11
|
-
* Interpolate ${ENV_VAR} references in a string.
|
|
12
|
-
*/
|
|
13
|
-
function interpolateEnvVars(content) {
|
|
14
|
-
return content.replace(/\$\{([^}]+)\}/g, (_, varName) => {
|
|
15
|
-
return process.env[varName.trim()] ?? "";
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Load and parse a single YAML tool file.
|
|
20
|
-
* Performs env var interpolation but no Zod validation (lightweight).
|
|
21
|
-
*/
|
|
22
|
-
export function loadYamlFile(filePath) {
|
|
23
|
-
const resolved = resolve(filePath);
|
|
24
|
-
if (!existsSync(resolved)) {
|
|
25
|
-
throw new Error(`YAML tool file not found: ${resolved}`);
|
|
26
|
-
}
|
|
27
|
-
const content = readFileSync(resolved, "utf-8");
|
|
28
|
-
const interpolated = interpolateEnvVars(content);
|
|
29
|
-
const parsed = yamlLoad(interpolated);
|
|
30
|
-
return {
|
|
31
|
-
tools: normalizeTools(parsed["tools"]),
|
|
32
|
-
toolsets: (parsed["toolsets"] ?? {}),
|
|
33
|
-
sources: (parsed["sources"] ?? {}),
|
|
34
|
-
metadata: parsed["metadata"],
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Normalize raw tool entries to ensure parameters is always an array.
|
|
39
|
-
*/
|
|
40
|
-
function normalizeTools(raw) {
|
|
41
|
-
if (!raw)
|
|
42
|
-
return {};
|
|
43
|
-
const result = {};
|
|
44
|
-
for (const [name, value] of Object.entries(raw)) {
|
|
45
|
-
const tool = value;
|
|
46
|
-
result[name] = {
|
|
47
|
-
source: tool["source"] ?? "",
|
|
48
|
-
description: tool["description"] ?? "",
|
|
49
|
-
statement: tool["statement"],
|
|
50
|
-
parameters: Array.isArray(tool["parameters"]) ? tool["parameters"] : [],
|
|
51
|
-
security: tool["security"],
|
|
52
|
-
responseFormat: tool["responseFormat"],
|
|
53
|
-
tableFormat: tool["tableFormat"],
|
|
54
|
-
maxDisplayRows: tool["maxDisplayRows"],
|
|
55
|
-
enabled: tool["enabled"],
|
|
56
|
-
annotations: tool["annotations"],
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
return result;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Load YAML tools from one or more paths.
|
|
63
|
-
* Accepts file paths, directories (scans for *.yaml/*.yml), or comma-separated lists.
|
|
64
|
-
* Merges all configs together, with later files overriding earlier ones.
|
|
65
|
-
*/
|
|
66
|
-
export function loadYamlTools(paths) {
|
|
67
|
-
const merged = {
|
|
68
|
-
tools: {},
|
|
69
|
-
toolsets: {},
|
|
70
|
-
sources: {},
|
|
71
|
-
};
|
|
72
|
-
for (const p of paths) {
|
|
73
|
-
const resolved = resolve(p.trim());
|
|
74
|
-
const filePaths = resolveToFiles(resolved);
|
|
75
|
-
for (const filePath of filePaths) {
|
|
76
|
-
const config = loadYamlFile(filePath);
|
|
77
|
-
Object.assign(merged.tools, config.tools);
|
|
78
|
-
Object.assign(merged.toolsets, config.toolsets);
|
|
79
|
-
Object.assign(merged.sources, config.sources);
|
|
80
|
-
if (config.metadata) {
|
|
81
|
-
merged.metadata = { ...(merged.metadata ?? {}), ...config.metadata };
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return merged;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Resolve a path to a list of YAML files.
|
|
89
|
-
* If it's a file, returns [file]. If directory, scans for *.yaml/*.yml recursively.
|
|
90
|
-
*/
|
|
91
|
-
function resolveToFiles(p) {
|
|
92
|
-
if (!existsSync(p)) {
|
|
93
|
-
throw new Error(`Path not found: ${p}`);
|
|
94
|
-
}
|
|
95
|
-
const stat = statSync(p);
|
|
96
|
-
if (stat.isFile()) {
|
|
97
|
-
return [p];
|
|
98
|
-
}
|
|
99
|
-
if (stat.isDirectory()) {
|
|
100
|
-
return scanDirectory(p);
|
|
101
|
-
}
|
|
102
|
-
return [];
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Recursively scan a directory for YAML files.
|
|
106
|
-
*/
|
|
107
|
-
function scanDirectory(dir) {
|
|
108
|
-
const results = [];
|
|
109
|
-
const entries = readdirSync(dir, { withFileTypes: true });
|
|
110
|
-
for (const entry of entries) {
|
|
111
|
-
const fullPath = join(dir, entry.name);
|
|
112
|
-
if (entry.isDirectory()) {
|
|
113
|
-
results.push(...scanDirectory(fullPath));
|
|
114
|
-
}
|
|
115
|
-
else if (entry.isFile() && /\.ya?ml$/i.test(entry.name)) {
|
|
116
|
-
results.push(fullPath);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return results;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Build a reverse map from tool name → toolset names.
|
|
123
|
-
*/
|
|
124
|
-
export function buildToolsetMap(toolsets) {
|
|
125
|
-
const map = new Map();
|
|
126
|
-
for (const [tsName, tsConfig] of Object.entries(toolsets)) {
|
|
127
|
-
for (const toolName of tsConfig.tools) {
|
|
128
|
-
const existing = map.get(toolName) ?? [];
|
|
129
|
-
existing.push(tsName);
|
|
130
|
-
map.set(toolName, existing);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
return map;
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=yaml-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"yaml-loader.js","sourceRoot":"","sources":["../../../src/cli/utils/yaml-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Maps YAML tool parameter definitions to Commander CLI options.
|
|
3
|
-
* Handles snake_case → kebab-case conversion, type coercion, and reverse mapping.
|
|
4
|
-
* @module cli/utils/yaml-to-commander
|
|
5
|
-
*/
|
|
6
|
-
import { Command } from "commander";
|
|
7
|
-
import type { YamlToolParameter } from "./yaml-loader.js";
|
|
8
|
-
/**
|
|
9
|
-
* Register YAML tool parameters as Commander options on a Command.
|
|
10
|
-
* Each parameter becomes a typed CLI option with coercion and defaults.
|
|
11
|
-
*/
|
|
12
|
-
export declare function registerToolOptions(cmd: Command, params: YamlToolParameter[]): void;
|
|
13
|
-
/**
|
|
14
|
-
* Convert Commander options (camelCase from --kebab-case) back to
|
|
15
|
-
* snake_case parameter names for YAML tool execution.
|
|
16
|
-
*
|
|
17
|
-
* Commander converts --schema-name to opts.schemaName.
|
|
18
|
-
* This maps it back to { schema_name: value }.
|
|
19
|
-
*/
|
|
20
|
-
export declare function optsToParams(opts: Record<string, unknown>, params: YamlToolParameter[]): Record<string, unknown>;
|
|
21
|
-
/**
|
|
22
|
-
* Validate required parameters are present.
|
|
23
|
-
* Returns an array of missing required parameter names.
|
|
24
|
-
*/
|
|
25
|
-
export declare function validateRequiredParams(values: Record<string, unknown>, params: YamlToolParameter[]): string[];
|
|
26
|
-
//# sourceMappingURL=yaml-to-commander.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"yaml-to-commander.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/yaml-to-commander.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AA8C1D;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,iBAAiB,EAAE,GAC1B,IAAI,CA4CN;AA+BD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,iBAAiB,EAAE,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAczB;AASD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,iBAAiB,EAAE,GAC1B,MAAM,EAAE,CAQV"}
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Maps YAML tool parameter definitions to Commander CLI options.
|
|
3
|
-
* Handles snake_case → kebab-case conversion, type coercion, and reverse mapping.
|
|
4
|
-
* @module cli/utils/yaml-to-commander
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Convert a snake_case parameter name to a --kebab-case CLI flag.
|
|
8
|
-
*
|
|
9
|
-
* Examples:
|
|
10
|
-
* schema_name → --schema-name <value>
|
|
11
|
-
* include_system → --include-system
|
|
12
|
-
* limit → --limit <n>
|
|
13
|
-
*/
|
|
14
|
-
function toOptionFlag(param) {
|
|
15
|
-
const kebab = param.name.replace(/_/g, "-");
|
|
16
|
-
if (param.type === "boolean") {
|
|
17
|
-
return `--${kebab}`;
|
|
18
|
-
}
|
|
19
|
-
return `--${kebab} <value>`;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Build a description string for a parameter, including enum/range hints.
|
|
23
|
-
*/
|
|
24
|
-
function buildDescription(param) {
|
|
25
|
-
const parts = [];
|
|
26
|
-
if (param.description) {
|
|
27
|
-
parts.push(param.description);
|
|
28
|
-
}
|
|
29
|
-
if (param.enum && param.enum.length > 0) {
|
|
30
|
-
const values = param.enum.map((v) => String(v)).join(", ");
|
|
31
|
-
parts.push(`choices: ${values}`);
|
|
32
|
-
}
|
|
33
|
-
if (param.min !== undefined || param.max !== undefined) {
|
|
34
|
-
const range = [
|
|
35
|
-
param.min !== undefined ? `min: ${param.min}` : null,
|
|
36
|
-
param.max !== undefined ? `max: ${param.max}` : null,
|
|
37
|
-
]
|
|
38
|
-
.filter(Boolean)
|
|
39
|
-
.join(", ");
|
|
40
|
-
parts.push(range);
|
|
41
|
-
}
|
|
42
|
-
return parts.join(". ") || param.name;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Register YAML tool parameters as Commander options on a Command.
|
|
46
|
-
* Each parameter becomes a typed CLI option with coercion and defaults.
|
|
47
|
-
*/
|
|
48
|
-
export function registerToolOptions(cmd, params) {
|
|
49
|
-
for (const param of params) {
|
|
50
|
-
const flag = toOptionFlag(param);
|
|
51
|
-
const desc = buildDescription(param);
|
|
52
|
-
switch (param.type) {
|
|
53
|
-
case "boolean":
|
|
54
|
-
cmd.option(flag, desc);
|
|
55
|
-
break;
|
|
56
|
-
case "integer":
|
|
57
|
-
if (param.default !== undefined) {
|
|
58
|
-
cmd.option(flag, desc, parseIntOption, param.default);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
cmd.option(flag, desc, parseIntOption);
|
|
62
|
-
}
|
|
63
|
-
break;
|
|
64
|
-
case "float":
|
|
65
|
-
if (param.default !== undefined) {
|
|
66
|
-
cmd.option(flag, desc, parseFloatOption, param.default);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
cmd.option(flag, desc, parseFloatOption);
|
|
70
|
-
}
|
|
71
|
-
break;
|
|
72
|
-
case "array":
|
|
73
|
-
if (param.default !== undefined) {
|
|
74
|
-
cmd.option(flag, desc, parseArrayOption, param.default);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
cmd.option(flag, desc, parseArrayOption);
|
|
78
|
-
}
|
|
79
|
-
break;
|
|
80
|
-
default:
|
|
81
|
-
// string
|
|
82
|
-
if (param.default !== undefined) {
|
|
83
|
-
cmd.option(flag, desc, String(param.default));
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
cmd.option(flag, desc);
|
|
87
|
-
}
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Commander parse function for integer options.
|
|
94
|
-
*/
|
|
95
|
-
function parseIntOption(value) {
|
|
96
|
-
const parsed = parseInt(value, 10);
|
|
97
|
-
if (isNaN(parsed)) {
|
|
98
|
-
throw new Error(`Expected an integer but got: ${value}`);
|
|
99
|
-
}
|
|
100
|
-
return parsed;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Commander parse function for float options.
|
|
104
|
-
*/
|
|
105
|
-
function parseFloatOption(value) {
|
|
106
|
-
const parsed = parseFloat(value);
|
|
107
|
-
if (isNaN(parsed)) {
|
|
108
|
-
throw new Error(`Expected a number but got: ${value}`);
|
|
109
|
-
}
|
|
110
|
-
return parsed;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Commander parse function for array options (comma-separated).
|
|
114
|
-
*/
|
|
115
|
-
function parseArrayOption(value) {
|
|
116
|
-
return value.split(",").map((s) => s.trim());
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Convert Commander options (camelCase from --kebab-case) back to
|
|
120
|
-
* snake_case parameter names for YAML tool execution.
|
|
121
|
-
*
|
|
122
|
-
* Commander converts --schema-name to opts.schemaName.
|
|
123
|
-
* This maps it back to { schema_name: value }.
|
|
124
|
-
*/
|
|
125
|
-
export function optsToParams(opts, params) {
|
|
126
|
-
const result = {};
|
|
127
|
-
for (const param of params) {
|
|
128
|
-
// Commander converts --kebab-case → camelCase
|
|
129
|
-
const kebab = param.name.replace(/_/g, "-");
|
|
130
|
-
const camel = kebabToCamel(kebab);
|
|
131
|
-
if (opts[camel] !== undefined) {
|
|
132
|
-
result[param.name] = opts[camel];
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return result;
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Convert kebab-case to camelCase (matching Commander's behavior).
|
|
139
|
-
*/
|
|
140
|
-
function kebabToCamel(s) {
|
|
141
|
-
return s.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Validate required parameters are present.
|
|
145
|
-
* Returns an array of missing required parameter names.
|
|
146
|
-
*/
|
|
147
|
-
export function validateRequiredParams(values, params) {
|
|
148
|
-
const missing = [];
|
|
149
|
-
for (const param of params) {
|
|
150
|
-
if (param.required && param.default === undefined && values[param.name] === undefined) {
|
|
151
|
-
missing.push(param.name);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return missing;
|
|
155
|
-
}
|
|
156
|
-
//# sourceMappingURL=yaml-to-commander.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"yaml-to-commander.js","sourceRoot":"","sources":["../../../src/cli/utils/yaml-to-commander.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,KAAwB;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,KAAK,KAAK,EAAE,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,KAAK,UAAU,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAwB;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG;YACZ,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;YACpD,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;SACrD;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAY,EACZ,MAA2B;IAE3B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAErC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,SAAS;gBACZ,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACvB,MAAM;YAER,KAAK,SAAS;gBACZ,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAChC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBACxD,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;gBACzC,CAAC;gBACD,MAAM;YAER,KAAK,OAAO;gBACV,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAChC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM;YAER,KAAK,OAAO;gBACV,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAChC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM;YAER;gBACE,SAAS;gBACT,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAChC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACzB,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,IAA6B,EAC7B,MAA2B;IAE3B,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,8CAA8C;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAA+B,EAC/B,MAA2B;IAE3B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACtF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|