@ibm/ibmi-mcp-server 0.4.5 → 0.5.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 (159) hide show
  1. package/README.md +2 -0
  2. package/dist/config/index.d.ts +20 -0
  3. package/dist/config/index.d.ts.map +1 -1
  4. package/dist/config/index.js +95 -0
  5. package/dist/config/index.js.map +1 -1
  6. package/dist/ibmi-mcp-server/schemas/config.d.ts +58 -0
  7. package/dist/ibmi-mcp-server/schemas/config.d.ts.map +1 -1
  8. package/dist/ibmi-mcp-server/schemas/config.js +35 -0
  9. package/dist/ibmi-mcp-server/schemas/config.js.map +1 -1
  10. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts +19 -1
  11. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts.map +1 -1
  12. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js +30 -2
  13. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js.map +1 -1
  14. package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts +6 -2
  15. package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts.map +1 -1
  16. package/dist/ibmi-mcp-server/services/baseConnectionPool.js +68 -8
  17. package/dist/ibmi-mcp-server/services/baseConnectionPool.js.map +1 -1
  18. package/dist/ibmi-mcp-server/services/connectionPool.d.ts +4 -2
  19. package/dist/ibmi-mcp-server/services/connectionPool.d.ts.map +1 -1
  20. package/dist/ibmi-mcp-server/services/connectionPool.js +6 -3
  21. package/dist/ibmi-mcp-server/services/connectionPool.js.map +1 -1
  22. package/dist/ibmi-mcp-server/services/sourceManager.d.ts +19 -1
  23. package/dist/ibmi-mcp-server/services/sourceManager.d.ts.map +1 -1
  24. package/dist/ibmi-mcp-server/services/sourceManager.js +31 -2
  25. package/dist/ibmi-mcp-server/services/sourceManager.js.map +1 -1
  26. package/dist/ibmi-mcp-server/tools/executeSql.tool.d.ts +1 -0
  27. package/dist/ibmi-mcp-server/tools/executeSql.tool.d.ts.map +1 -1
  28. package/dist/ibmi-mcp-server/tools/executeSql.tool.js +17 -3
  29. package/dist/ibmi-mcp-server/tools/executeSql.tool.js.map +1 -1
  30. package/dist/ibmi-mcp-server/tools/index.d.ts +1 -0
  31. package/dist/ibmi-mcp-server/tools/index.d.ts.map +1 -1
  32. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.d.ts.map +1 -1
  33. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js +1 -1
  34. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js.map +1 -1
  35. package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts +1 -1
  36. package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts.map +1 -1
  37. package/dist/ibmi-mcp-server/utils/config/toolFactory.js +42 -4
  38. package/dist/ibmi-mcp-server/utils/config/toolFactory.js.map +1 -1
  39. package/dist/public/context.d.ts +5 -0
  40. package/dist/public/context.d.ts.map +1 -0
  41. package/dist/public/context.js +5 -0
  42. package/dist/public/context.js.map +1 -0
  43. package/dist/public/formatting.d.ts +5 -0
  44. package/dist/public/formatting.d.ts.map +1 -0
  45. package/dist/public/formatting.js +5 -0
  46. package/dist/public/formatting.js.map +1 -0
  47. package/dist/public/services.d.ts +8 -0
  48. package/dist/public/services.d.ts.map +1 -0
  49. package/dist/public/services.js +8 -0
  50. package/dist/public/services.js.map +1 -0
  51. package/dist/public/tools.d.ts +16 -0
  52. package/dist/public/tools.d.ts.map +1 -0
  53. package/dist/public/tools.js +15 -0
  54. package/dist/public/tools.js.map +1 -0
  55. package/package.json +20 -17
  56. package/dist/cli/commands/columns.d.ts +0 -7
  57. package/dist/cli/commands/columns.d.ts.map +0 -1
  58. package/dist/cli/commands/columns.js +0 -29
  59. package/dist/cli/commands/columns.js.map +0 -1
  60. package/dist/cli/commands/completion.d.ts +0 -10
  61. package/dist/cli/commands/completion.d.ts.map +0 -1
  62. package/dist/cli/commands/completion.js +0 -247
  63. package/dist/cli/commands/completion.js.map +0 -1
  64. package/dist/cli/commands/config.d.ts +0 -11
  65. package/dist/cli/commands/config.d.ts.map +0 -1
  66. package/dist/cli/commands/config.js +0 -124
  67. package/dist/cli/commands/config.js.map +0 -1
  68. package/dist/cli/commands/describe.d.ts +0 -9
  69. package/dist/cli/commands/describe.d.ts.map +0 -1
  70. package/dist/cli/commands/describe.js +0 -82
  71. package/dist/cli/commands/describe.js.map +0 -1
  72. package/dist/cli/commands/related.d.ts +0 -7
  73. package/dist/cli/commands/related.d.ts.map +0 -1
  74. package/dist/cli/commands/related.js +0 -32
  75. package/dist/cli/commands/related.js.map +0 -1
  76. package/dist/cli/commands/schemas.d.ts +0 -7
  77. package/dist/cli/commands/schemas.d.ts.map +0 -1
  78. package/dist/cli/commands/schemas.js +0 -49
  79. package/dist/cli/commands/schemas.js.map +0 -1
  80. package/dist/cli/commands/sql.d.ts +0 -8
  81. package/dist/cli/commands/sql.d.ts.map +0 -1
  82. package/dist/cli/commands/sql.js +0 -187
  83. package/dist/cli/commands/sql.js.map +0 -1
  84. package/dist/cli/commands/system.d.ts +0 -11
  85. package/dist/cli/commands/system.d.ts.map +0 -1
  86. package/dist/cli/commands/system.js +0 -263
  87. package/dist/cli/commands/system.js.map +0 -1
  88. package/dist/cli/commands/tables.d.ts +0 -7
  89. package/dist/cli/commands/tables.d.ts.map +0 -1
  90. package/dist/cli/commands/tables.js +0 -48
  91. package/dist/cli/commands/tables.js.map +0 -1
  92. package/dist/cli/commands/tool.d.ts +0 -18
  93. package/dist/cli/commands/tool.d.ts.map +0 -1
  94. package/dist/cli/commands/tool.js +0 -194
  95. package/dist/cli/commands/tool.js.map +0 -1
  96. package/dist/cli/commands/tools-list.d.ts +0 -20
  97. package/dist/cli/commands/tools-list.d.ts.map +0 -1
  98. package/dist/cli/commands/tools-list.js +0 -209
  99. package/dist/cli/commands/tools-list.js.map +0 -1
  100. package/dist/cli/commands/validate.d.ts +0 -7
  101. package/dist/cli/commands/validate.d.ts.map +0 -1
  102. package/dist/cli/commands/validate.js +0 -77
  103. package/dist/cli/commands/validate.js.map +0 -1
  104. package/dist/cli/config/credentials.d.ts +0 -21
  105. package/dist/cli/config/credentials.d.ts.map +0 -1
  106. package/dist/cli/config/credentials.js +0 -96
  107. package/dist/cli/config/credentials.js.map +0 -1
  108. package/dist/cli/config/index.d.ts +0 -11
  109. package/dist/cli/config/index.d.ts.map +0 -1
  110. package/dist/cli/config/index.js +0 -9
  111. package/dist/cli/config/index.js.map +0 -1
  112. package/dist/cli/config/loader.d.ts +0 -52
  113. package/dist/cli/config/loader.d.ts.map +0 -1
  114. package/dist/cli/config/loader.js +0 -237
  115. package/dist/cli/config/loader.js.map +0 -1
  116. package/dist/cli/config/resolver.d.ts +0 -31
  117. package/dist/cli/config/resolver.d.ts.map +0 -1
  118. package/dist/cli/config/resolver.js +0 -115
  119. package/dist/cli/config/resolver.js.map +0 -1
  120. package/dist/cli/config/schema.d.ts +0 -128
  121. package/dist/cli/config/schema.d.ts.map +0 -1
  122. package/dist/cli/config/schema.js +0 -37
  123. package/dist/cli/config/schema.js.map +0 -1
  124. package/dist/cli/config/types.d.ts +0 -59
  125. package/dist/cli/config/types.d.ts.map +0 -1
  126. package/dist/cli/config/types.js +0 -6
  127. package/dist/cli/config/types.js.map +0 -1
  128. package/dist/cli/formatters/output.d.ts +0 -70
  129. package/dist/cli/formatters/output.d.ts.map +0 -1
  130. package/dist/cli/formatters/output.js +0 -279
  131. package/dist/cli/formatters/output.js.map +0 -1
  132. package/dist/cli/index.d.ts +0 -13
  133. package/dist/cli/index.d.ts.map +0 -1
  134. package/dist/cli/index.js +0 -102
  135. package/dist/cli/index.js.map +0 -1
  136. package/dist/cli/utils/command-helpers.d.ts +0 -47
  137. package/dist/cli/utils/command-helpers.d.ts.map +0 -1
  138. package/dist/cli/utils/command-helpers.js +0 -211
  139. package/dist/cli/utils/command-helpers.js.map +0 -1
  140. package/dist/cli/utils/connection.d.ts +0 -20
  141. package/dist/cli/utils/connection.d.ts.map +0 -1
  142. package/dist/cli/utils/connection.js +0 -37
  143. package/dist/cli/utils/connection.js.map +0 -1
  144. package/dist/cli/utils/exit-codes.d.ts +0 -48
  145. package/dist/cli/utils/exit-codes.d.ts.map +0 -1
  146. package/dist/cli/utils/exit-codes.js +0 -111
  147. package/dist/cli/utils/exit-codes.js.map +0 -1
  148. package/dist/cli/utils/multi-connection.d.ts +0 -26
  149. package/dist/cli/utils/multi-connection.d.ts.map +0 -1
  150. package/dist/cli/utils/multi-connection.js +0 -72
  151. package/dist/cli/utils/multi-connection.js.map +0 -1
  152. package/dist/cli/utils/yaml-loader.d.ts +0 -69
  153. package/dist/cli/utils/yaml-loader.d.ts.map +0 -1
  154. package/dist/cli/utils/yaml-loader.js +0 -135
  155. package/dist/cli/utils/yaml-loader.js.map +0 -1
  156. package/dist/cli/utils/yaml-to-commander.d.ts +0 -26
  157. package/dist/cli/utils/yaml-to-commander.d.ts.map +0 -1
  158. package/dist/cli/utils/yaml-to-commander.js +0 -156
  159. package/dist/cli/utils/yaml-to-commander.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sql.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2DpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0GzD"}
@@ -1,187 +0,0 @@
1
- /**
2
- * @fileoverview `ibmi sql "<sql>"` command — execute SQL queries.
3
- * Supports inline SQL, --file, stdin piping, and multi-system parallel execution.
4
- * @module cli/commands/sql
5
- */
6
- import { readFileSync } from "fs";
7
- import { withConnection, getFormat, createCliContext } from "../utils/command-helpers.js";
8
- import { renderMessage, renderMultiSystemOutput, renderMultiSystemNdjson } from "../formatters/output.js";
9
- import { ExitCode } from "../utils/exit-codes.js";
10
- /**
11
- * Read SQL from stdin (piped input).
12
- * Returns null if stdin is a TTY (interactive).
13
- */
14
- function readStdin() {
15
- if (process.stdin.isTTY)
16
- return null;
17
- try {
18
- return readFileSync(0, "utf-8").trim();
19
- }
20
- catch {
21
- return null;
22
- }
23
- }
24
- /**
25
- * Resolve SQL from the various sources: argument, --file, or stdin.
26
- * Returns the SQL string or undefined if no source provided.
27
- */
28
- function resolveSql(statement, opts) {
29
- if (statement)
30
- return statement;
31
- if (opts["file"]) {
32
- try {
33
- return readFileSync(opts["file"], "utf-8").trim();
34
- }
35
- catch (err) {
36
- process.stderr.write(`Error reading file: ${err instanceof Error ? err.message : String(err)}\n`);
37
- process.exitCode = ExitCode.USAGE;
38
- return undefined;
39
- }
40
- }
41
- return readStdin() ?? undefined;
42
- }
43
- /**
44
- * Apply FETCH FIRST N ROWS ONLY if not already present.
45
- */
46
- function applyRowLimit(sql, maxRows) {
47
- if (maxRows &&
48
- !sql.toUpperCase().includes("FETCH FIRST") &&
49
- !sql.toUpperCase().includes("FETCH NEXT")) {
50
- return `${sql.replace(/;\s*$/, "")} FETCH FIRST ${maxRows} ROWS ONLY`;
51
- }
52
- return sql;
53
- }
54
- export function registerSqlCommand(program) {
55
- program
56
- .command("sql [statement]")
57
- .description("Execute a SQL query against the target system")
58
- .option("--file <path>", "Read SQL from a file")
59
- .option("--limit <n>", "Maximum rows to return")
60
- .option("--read-only", "Enforce read-only mode (default: true)", true)
61
- .option("--no-read-only", "Allow mutation queries")
62
- .option("--dry-run", "Print SQL without executing", false)
63
- .action(async (statement, opts, cmd) => {
64
- const sql = resolveSql(statement, opts);
65
- if (!sql) {
66
- if (!process.exitCode) {
67
- process.stderr.write("Error: No SQL provided. Pass as argument, use --file, or pipe via stdin.\n");
68
- process.exitCode = ExitCode.USAGE;
69
- }
70
- return;
71
- }
72
- // Dry run: print SQL and exit
73
- if (opts["dryRun"]) {
74
- const format = getFormat(cmd);
75
- renderMessage(sql, format);
76
- return;
77
- }
78
- // Multi-system detection
79
- const systemFlag = cmd.optsWithGlobals()["system"];
80
- if (systemFlag && systemFlag.includes(",")) {
81
- // Reject --watch + multi-system for v1
82
- if (cmd.optsWithGlobals()["watch"]) {
83
- process.stderr.write("Error: --watch is not supported with multiple systems.\n");
84
- process.exitCode = ExitCode.USAGE;
85
- return;
86
- }
87
- await handleMultiSystemSql(sql, opts, cmd, systemFlag);
88
- return;
89
- }
90
- // Existing single-system path (unchanged)
91
- await withConnection(cmd, "execute_sql", async (resolved, ctx) => {
92
- // Configure read-only mode based on CLI flag and system config
93
- const readOnly = opts["readOnly"] || resolved.config.readOnly;
94
- // Confirm execution if system requires it
95
- if (resolved.config.confirm && process.stdin.isTTY) {
96
- const { promptPassword } = await import("../config/credentials.js");
97
- const answer = await promptPassword(`Execute on [${resolved.name}]? (y/N) `);
98
- if (answer.toLowerCase() !== "y") {
99
- throw new Error("Execution cancelled by user");
100
- }
101
- }
102
- // Apply maxRows limit
103
- let execSql = sql;
104
- let maxRows = resolved.config.maxRows;
105
- if (opts["limit"]) {
106
- maxRows = parseInt(opts["limit"], 10);
107
- if (isNaN(maxRows) || maxRows <= 0) {
108
- throw new Error(`Invalid --limit value: "${opts["limit"]}". Must be a positive integer.`);
109
- }
110
- }
111
- execSql = applyRowLimit(execSql, maxRows);
112
- // Configure execute_sql tool security before importing
113
- const { configureExecuteSqlTool } = await import("../../ibmi-mcp-server/tools/executeSql.tool.js");
114
- configureExecuteSqlTool({
115
- enabled: true,
116
- security: { readOnly },
117
- });
118
- const { executeSqlTool } = await import("../../ibmi-mcp-server/tools/executeSql.tool.js");
119
- const logicFn = executeSqlTool.logic;
120
- const result = await logicFn({ sql: execSql }, ctx, {});
121
- if (!result.success) {
122
- throw new Error(result.error?.message ?? "SQL execution failed");
123
- }
124
- return {
125
- data: (result.data ?? []),
126
- meta: {
127
- rowCount: result.rowCount ?? 0,
128
- },
129
- };
130
- });
131
- });
132
- }
133
- /**
134
- * Execute SQL against multiple systems in parallel via SourceManager.
135
- * Creates a temporary SourceManager — each system gets its own pool.
136
- */
137
- async function handleMultiSystemSql(sql, opts, cmd, systemFlag) {
138
- const format = getFormat(cmd);
139
- const isStream = cmd.optsWithGlobals()["stream"] === true;
140
- try {
141
- const { resolveSystems } = await import("../config/resolver.js");
142
- const { executeMultiSystem } = await import("../utils/multi-connection.js");
143
- const systems = resolveSystems(systemFlag);
144
- // Enforce read-only: true if CLI flag is set OR any target system requires it
145
- const readOnly = opts["readOnly"] ||
146
- systems.some((s) => s.config.readOnly);
147
- if (readOnly) {
148
- const { SqlSecurityValidator } = await import("../../ibmi-mcp-server/utils/security/sqlSecurityValidator.js");
149
- const ctx = createCliContext("multi_sql_security");
150
- SqlSecurityValidator.validateQuery(sql, { readOnly: true, maxQueryLength: 10000 }, ctx);
151
- }
152
- // Respect the most restrictive system's row limit when none is explicit
153
- let maxRows;
154
- if (opts["limit"]) {
155
- maxRows = parseInt(opts["limit"], 10);
156
- if (isNaN(maxRows) || maxRows <= 0) {
157
- process.stderr.write(`Error: Invalid --limit value: "${opts["limit"]}". Must be a positive integer.\n`);
158
- process.exitCode = ExitCode.USAGE;
159
- return;
160
- }
161
- }
162
- else {
163
- maxRows = Math.min(...systems.map((s) => s.config.maxRows ?? Infinity));
164
- if (!isFinite(maxRows))
165
- maxRows = undefined;
166
- }
167
- const execSql = applyRowLimit(sql, maxRows);
168
- const results = await executeMultiSystem(systems, async (sourceName, mgr, ctx) => {
169
- const result = await mgr.executeQuery(sourceName, execSql, [], ctx);
170
- const data = (result.data ?? []);
171
- return { data, meta: { rowCount: data.length } };
172
- });
173
- if (isStream && format === "json") {
174
- renderMultiSystemNdjson(results);
175
- }
176
- else {
177
- renderMultiSystemOutput(results, format);
178
- }
179
- }
180
- catch (err) {
181
- const { renderError } = await import("../formatters/output.js");
182
- const error = err instanceof Error ? err : new Error(String(err));
183
- renderError(error, format);
184
- process.exitCode = ExitCode.GENERAL;
185
- }
186
- }
187
- //# sourceMappingURL=sql.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../../src/cli/commands/sql.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * @fileoverview `ibmi system` commands for managing IBM i system configurations.
3
- * Provides list, show, add, remove, default, and test subcommands.
4
- * @module cli/commands/system
5
- */
6
- import { Command } from "commander";
7
- /**
8
- * Register all `ibmi system` subcommands.
9
- */
10
- export declare function registerSystemCommand(program: Command): void;
11
- //# sourceMappingURL=system.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/system.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0DpC;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoQ5D"}
@@ -1,263 +0,0 @@
1
- /**
2
- * @fileoverview `ibmi system` commands for managing IBM i system configurations.
3
- * Provides list, show, add, remove, default, and test subcommands.
4
- * @module cli/commands/system
5
- */
6
- import * as readline from "readline";
7
- import { loadConfig, upsertSystem, removeSystem, setDefaultSystem, getUserConfigPath, getProjectConfigPath, } from "../config/index.js";
8
- import { renderOutput, renderError, renderMessage, } from "../formatters/output.js";
9
- import { ExitCode, classifyError } from "../utils/exit-codes.js";
10
- import { connectSystem } from "../utils/connection.js";
11
- import { getFormat } from "../utils/command-helpers.js";
12
- /**
13
- * Test connectivity to an IBM i system by establishing and closing a connection.
14
- */
15
- async function testSystemConnection(name, sys) {
16
- const base = { NAME: name, HOST: sys.host, PORT: sys.port, USER: sys.user };
17
- let cleanup;
18
- try {
19
- const resolved = {
20
- name,
21
- config: sys,
22
- source: "flag",
23
- };
24
- cleanup = await connectSystem(resolved);
25
- return { ...base, STATUS: "connected" };
26
- }
27
- catch (err) {
28
- const msg = err instanceof Error ? err.message : String(err);
29
- return { ...base, STATUS: "error", ERROR: msg };
30
- }
31
- finally {
32
- if (cleanup)
33
- await cleanup();
34
- }
35
- }
36
- /**
37
- * Register all `ibmi system` subcommands.
38
- */
39
- export function registerSystemCommand(program) {
40
- const system = program
41
- .command("system")
42
- .description("Manage IBM i system connections");
43
- // ── ibmi system list ──
44
- system
45
- .command("list")
46
- .description("List all configured systems")
47
- .action((_opts, cmd) => {
48
- const format = getFormat(cmd);
49
- try {
50
- const config = loadConfig();
51
- const systems = Object.entries(config.systems);
52
- if (systems.length === 0) {
53
- renderMessage("No systems configured. Run: ibmi system add <name>", format);
54
- return;
55
- }
56
- const data = systems.map(([name, sys]) => ({
57
- NAME: name,
58
- HOST: sys.host,
59
- USER: sys.user,
60
- PORT: sys.port,
61
- READ_ONLY: sys.readOnly ? "yes" : "no",
62
- DEFAULT: name === config.default ? "✓" : "",
63
- }));
64
- renderOutput(data, format, { rowCount: data.length });
65
- }
66
- catch (err) {
67
- renderError(err instanceof Error ? err : new Error(String(err)), format);
68
- process.exitCode = ExitCode.GENERAL;
69
- }
70
- });
71
- // ── ibmi system show <name> ──
72
- system
73
- .command("show <name>")
74
- .description("Show configuration for a system")
75
- .action((name, _opts, cmd) => {
76
- const format = getFormat(cmd);
77
- try {
78
- const config = loadConfig();
79
- const sys = config.systems[name];
80
- if (!sys) {
81
- throw new Error(`System "${name}" not found. Run: ibmi system list`);
82
- }
83
- const data = [
84
- { PROPERTY: "host", VALUE: sys.host },
85
- { PROPERTY: "port", VALUE: String(sys.port) },
86
- { PROPERTY: "user", VALUE: sys.user },
87
- { PROPERTY: "password", VALUE: sys.password ? "****" : "(not set)" },
88
- { PROPERTY: "defaultSchema", VALUE: sys.defaultSchema ?? "(none)" },
89
- { PROPERTY: "readOnly", VALUE: String(sys.readOnly) },
90
- { PROPERTY: "confirm", VALUE: String(sys.confirm) },
91
- { PROPERTY: "timeout", VALUE: `${sys.timeout}s` },
92
- { PROPERTY: "maxRows", VALUE: String(sys.maxRows) },
93
- { PROPERTY: "description", VALUE: sys.description ?? "(none)" },
94
- {
95
- PROPERTY: "default",
96
- VALUE: name === config.default ? "yes" : "no",
97
- },
98
- ];
99
- renderOutput(data, format, { rowCount: data.length });
100
- }
101
- catch (err) {
102
- renderError(err instanceof Error ? err : new Error(String(err)), format);
103
- process.exitCode = ExitCode.GENERAL;
104
- }
105
- });
106
- // ── ibmi system add <name> ──
107
- system
108
- .command("add <name>")
109
- .description("Add a new system configuration")
110
- .option("--host <host>", "IBM i hostname")
111
- .option("--port <port>", "Mapepire port", "8076")
112
- .option("--user <user>", "User profile")
113
- .option("--password <password>", "Password (or use env var reference: ${MY_PASS})")
114
- .option("--description <desc>", "Description")
115
- .option("--read-only", "Block mutation queries", false)
116
- .option("--default-schema <schema>", "Default schema/library")
117
- .action(async (name, opts, cmd) => {
118
- const format = getFormat(cmd);
119
- try {
120
- let host = opts["host"];
121
- let user = opts["user"];
122
- // Interactive prompts for required fields
123
- if (!host || !user) {
124
- if (!process.stdin.isTTY) {
125
- throw new Error("Missing required options --host and --user. In non-interactive mode, all options must be provided.");
126
- }
127
- const rl = readline.createInterface({
128
- input: process.stdin,
129
- output: process.stderr,
130
- });
131
- const ask = (question) => new Promise((resolve) => rl.question(question, resolve));
132
- if (!host)
133
- host = await ask("Host: ");
134
- if (!user)
135
- user = await ask("User: ");
136
- rl.close();
137
- }
138
- const port = parseInt(opts["port"], 10);
139
- if (isNaN(port) || port <= 0 || port > 65535) {
140
- throw new Error(`Invalid --port value: "${opts["port"]}". Must be a number between 1 and 65535.`);
141
- }
142
- const system = {
143
- host,
144
- port,
145
- user,
146
- password: opts["password"],
147
- description: opts["description"],
148
- defaultSchema: opts["defaultSchema"],
149
- readOnly: opts["readOnly"],
150
- confirm: false,
151
- timeout: 60,
152
- maxRows: 5000,
153
- ignoreUnauthorized: true,
154
- };
155
- upsertSystem(name, system);
156
- renderMessage(`System "${name}" added. Config saved to ${getUserConfigPath()}`, format);
157
- }
158
- catch (err) {
159
- renderError(err instanceof Error ? err : new Error(String(err)), format);
160
- process.exitCode = ExitCode.GENERAL;
161
- }
162
- });
163
- // ── ibmi system remove <name> ──
164
- system
165
- .command("remove <name>")
166
- .description("Remove a system configuration")
167
- .action((name, _opts, cmd) => {
168
- const format = getFormat(cmd);
169
- try {
170
- const removed = removeSystem(name);
171
- if (removed) {
172
- renderMessage(`System "${name}" removed.`, format);
173
- }
174
- else {
175
- throw new Error(`System "${name}" not found.`);
176
- }
177
- }
178
- catch (err) {
179
- renderError(err instanceof Error ? err : new Error(String(err)), format);
180
- process.exitCode = ExitCode.GENERAL;
181
- }
182
- });
183
- // ── ibmi system default <name> ──
184
- system
185
- .command("default <name>")
186
- .description("Set the default system")
187
- .action((name, _opts, cmd) => {
188
- const format = getFormat(cmd);
189
- try {
190
- setDefaultSystem(name);
191
- renderMessage(`Default system set to "${name}".`, format);
192
- }
193
- catch (err) {
194
- renderError(err instanceof Error ? err : new Error(String(err)), format);
195
- process.exitCode = ExitCode.GENERAL;
196
- }
197
- });
198
- // ── ibmi system test [name] ──
199
- system
200
- .command("test [name]")
201
- .description("Test connectivity to a system")
202
- .option("--all", "Test all configured systems")
203
- .action(async (name, opts, cmd) => {
204
- const format = getFormat(cmd);
205
- try {
206
- const config = loadConfig();
207
- if (opts["all"]) {
208
- const results = [];
209
- let hasFailure = false;
210
- for (const [sysName, sys] of Object.entries(config.systems)) {
211
- const result = await testSystemConnection(sysName, sys);
212
- results.push(result);
213
- if (result.STATUS === "error")
214
- hasFailure = true;
215
- }
216
- renderOutput(results, format, { rowCount: results.length });
217
- if (hasFailure)
218
- process.exitCode = ExitCode.GENERAL;
219
- return;
220
- }
221
- // Resolve which system to test
222
- const targetName = name ??
223
- cmd.optsWithGlobals()["system"] ??
224
- config.default;
225
- if (!targetName) {
226
- throw new Error("No system specified. Pass a name or set a default.");
227
- }
228
- const sys = config.systems[targetName];
229
- if (!sys) {
230
- throw new Error(`System "${targetName}" not found.`);
231
- }
232
- const result = await testSystemConnection(targetName, sys);
233
- renderOutput([
234
- { PROPERTY: "system", VALUE: result.NAME },
235
- { PROPERTY: "host", VALUE: `${result.HOST}:${result.PORT}` },
236
- { PROPERTY: "user", VALUE: result.USER },
237
- { PROPERTY: "status", VALUE: result.STATUS },
238
- ...(result.ERROR ? [{ PROPERTY: "error", VALUE: result.ERROR }] : []),
239
- ], format, { rowCount: 1 });
240
- if (result.STATUS === "error") {
241
- process.exitCode = ExitCode.GENERAL;
242
- }
243
- }
244
- catch (err) {
245
- const error = err instanceof Error ? err : new Error(String(err));
246
- const classified = classifyError(error);
247
- renderError(error, format, undefined, classified.errorCode);
248
- process.exitCode = classified.exitCode;
249
- }
250
- });
251
- // ── ibmi system config-path ──
252
- system
253
- .command("config-path")
254
- .description("Show config file paths")
255
- .action((_opts, cmd) => {
256
- const format = getFormat(cmd);
257
- renderOutput([
258
- { SCOPE: "user", PATH: getUserConfigPath() },
259
- { SCOPE: "project", PATH: getProjectConfigPath() },
260
- ], format, { rowCount: 2 });
261
- });
262
- }
263
- //# sourceMappingURL=system.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system.js","sourceRoot":"","sources":["../../../src/cli/commands/system.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * @fileoverview `ibmi tables <schema>` command — list tables in a schema.
3
- * @module cli/commands/tables
4
- */
5
- import { Command } from "commander";
6
- export declare function registerTablesCommand(program: Command): void;
7
- //# sourceMappingURL=tables.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/tables.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkD5D"}
@@ -1,48 +0,0 @@
1
- /**
2
- * @fileoverview `ibmi tables <schema>` command — list tables in a schema.
3
- * @module cli/commands/tables
4
- */
5
- import { withConnection } from "../utils/command-helpers.js";
6
- import { ExitCode } from "../utils/exit-codes.js";
7
- export function registerTablesCommand(program) {
8
- program
9
- .command("tables <schema>")
10
- .description("List tables, views, and physical files in a schema")
11
- .option("--filter <pattern>", "Filter by table name (SQL LIKE pattern, e.g. 'CUST%')")
12
- .option("--limit <n>", "Maximum rows to return", "50")
13
- .option("--offset <n>", "Rows to skip for pagination", "0")
14
- .action(async (schema, opts, cmd) => {
15
- const limit = parseInt(opts["limit"], 10);
16
- const offset = parseInt(opts["offset"], 10);
17
- if (isNaN(limit) || limit < 0) {
18
- process.stderr.write(`Error: Invalid --limit value: "${opts["limit"]}". Must be a positive integer.\n`);
19
- process.exitCode = ExitCode.USAGE;
20
- return;
21
- }
22
- if (isNaN(offset) || offset < 0) {
23
- process.stderr.write(`Error: Invalid --offset value: "${opts["offset"]}". Must be a non-negative integer.\n`);
24
- process.exitCode = ExitCode.USAGE;
25
- return;
26
- }
27
- await withConnection(cmd, "list_tables_in_schema", async (_resolved, ctx) => {
28
- const { listTablesLogic } = await import("../../ibmi-mcp-server/tools/listTablesInSchema.tool.js");
29
- const result = await listTablesLogic({
30
- schema_name: schema,
31
- table_filter: opts["filter"] ?? "*ALL",
32
- limit,
33
- offset,
34
- }, ctx, {});
35
- if (!result.success) {
36
- throw new Error(result.error?.message ?? "Failed to list tables");
37
- }
38
- return {
39
- data: (result.data ?? []),
40
- meta: {
41
- rowCount: result.rowCount ?? 0,
42
- hasMore: result.hasMore,
43
- },
44
- };
45
- });
46
- });
47
- }
48
- //# sourceMappingURL=tables.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/cli/commands/tables.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGlD,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,oBAAoB,EAAE,uDAAuD,CAAC;SACrF,MAAM,CAAC,aAAa,EAAE,wBAAwB,EAAE,IAAI,CAAC;SACrD,MAAM,CAAC,cAAc,EAAE,6BAA6B,EAAE,GAAG,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAI,EAAE,GAAY,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAW,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAW,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;YACxG,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;YAClC,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,IAAI,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC;YAC9G,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,cAAc,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE;YAC1E,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CACtC,wDAAwD,CACzD,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC;gBACE,WAAW,EAAE,MAAM;gBACnB,YAAY,EAAG,IAAI,CAAC,QAAQ,CAAwB,IAAI,MAAM;gBAC9D,KAAK;gBACL,MAAM;aACP,EACD,GAAG,EACH,EAAgB,CACjB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,uBAAuB,CAAC,CAAC;YACpE,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAA8B;gBACtD,IAAI,EAAE;oBACJ,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;oBAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;iBACxB;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,18 +0,0 @@
1
- /**
2
- * @fileoverview Dynamic YAML tool execution command.
3
- *
4
- * `ibmi tool <name> [options]` — run any YAML-defined tool from the CLI.
5
- *
6
- * The command uses allowUnknownOption() to accept arbitrary tool-specific
7
- * options, then resolves them against the YAML parameter definitions.
8
- *
9
- * Supports --dry-run to show the resolved SQL and parameters without executing.
10
- *
11
- * @module cli/commands/tool
12
- */
13
- import { Command } from "commander";
14
- /**
15
- * Register `ibmi tool <name>` — dynamic YAML tool execution.
16
- */
17
- export declare function registerToolCommand(program: Command): void;
18
- //# sourceMappingURL=tool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+E1D"}