smart-commit-copilot-cli 0.1.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.
Files changed (110) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/LICENSE +21 -0
  3. package/README.md +392 -0
  4. package/docs/configuration.md +262 -0
  5. package/docs/contracts.md +134 -0
  6. package/docs/getting-started.md +177 -0
  7. package/docs/integrations.md +85 -0
  8. package/docs/publish.md +135 -0
  9. package/docs/release-checklist.md +39 -0
  10. package/docs/releases/0.1.0-draft.md +52 -0
  11. package/docs/roadmap.md +94 -0
  12. package/examples/agent/bridge-agent.mjs +51 -0
  13. package/examples/agent/report-agent.mjs +48 -0
  14. package/examples/config/smart-commit.json +60 -0
  15. package/examples/hooks/cursor-bridge-wrapper.sh +12 -0
  16. package/examples/hooks/husky-pre-commit.sh +6 -0
  17. package/examples/hooks/smart-commit-bridge.sh +11 -0
  18. package/out/cli.js +19 -0
  19. package/out/cli.js.map +1 -0
  20. package/out/cliApp.js +239 -0
  21. package/out/cliApp.js.map +1 -0
  22. package/out/commands/bridge.js +607 -0
  23. package/out/commands/bridge.js.map +1 -0
  24. package/out/commands/report.js +266 -0
  25. package/out/commands/report.js.map +1 -0
  26. package/out/commands/types.js +3 -0
  27. package/out/commands/types.js.map +1 -0
  28. package/out/commitMessage/index.js +110 -0
  29. package/out/commitMessage/index.js.map +1 -0
  30. package/out/commitMessage/mockProvider.js +27 -0
  31. package/out/commitMessage/mockProvider.js.map +1 -0
  32. package/out/commitMessage/openaiProvider.js +44 -0
  33. package/out/commitMessage/openaiProvider.js.map +1 -0
  34. package/out/commitMessage/prompt.js +65 -0
  35. package/out/commitMessage/prompt.js.map +1 -0
  36. package/out/commitMessage/protocol.js +126 -0
  37. package/out/commitMessage/protocol.js.map +1 -0
  38. package/out/commitMessage/provider.js +3 -0
  39. package/out/commitMessage/provider.js.map +1 -0
  40. package/out/config/cliArgs.js +249 -0
  41. package/out/config/cliArgs.js.map +1 -0
  42. package/out/config/constants.js +47 -0
  43. package/out/config/constants.js.map +1 -0
  44. package/out/config/env.js +183 -0
  45. package/out/config/env.js.map +1 -0
  46. package/out/config/file.js +245 -0
  47. package/out/config/file.js.map +1 -0
  48. package/out/config/index.js +46 -0
  49. package/out/config/index.js.map +1 -0
  50. package/out/config/legacySmartCommit.js +200 -0
  51. package/out/config/legacySmartCommit.js.map +1 -0
  52. package/out/config/merge.js +70 -0
  53. package/out/config/merge.js.map +1 -0
  54. package/out/config/runtime.js +36 -0
  55. package/out/config/runtime.js.map +1 -0
  56. package/out/config/schema.js +204 -0
  57. package/out/config/schema.js.map +1 -0
  58. package/out/contracts.js +311 -0
  59. package/out/contracts.js.map +1 -0
  60. package/out/git.js +119 -0
  61. package/out/git.js.map +1 -0
  62. package/out/logger.js +17 -0
  63. package/out/logger.js.map +1 -0
  64. package/out/openaiCompatible.js +67 -0
  65. package/out/openaiCompatible.js.map +1 -0
  66. package/out/output.js +23 -0
  67. package/out/output.js.map +1 -0
  68. package/out/passHistory/index.js +119 -0
  69. package/out/passHistory/index.js.map +1 -0
  70. package/out/passHistory/store.js +252 -0
  71. package/out/passHistory/store.js.map +1 -0
  72. package/out/passHistory/types.js +6 -0
  73. package/out/passHistory/types.js.map +1 -0
  74. package/out/promptContext.js +72 -0
  75. package/out/promptContext.js.map +1 -0
  76. package/out/renderOutput.js +89 -0
  77. package/out/renderOutput.js.map +1 -0
  78. package/out/reporting/aggregate.js +113 -0
  79. package/out/reporting/aggregate.js.map +1 -0
  80. package/out/reporting/index.js +72 -0
  81. package/out/reporting/index.js.map +1 -0
  82. package/out/reporting/mockProvider.js +25 -0
  83. package/out/reporting/mockProvider.js.map +1 -0
  84. package/out/reporting/openaiProvider.js +19 -0
  85. package/out/reporting/openaiProvider.js.map +1 -0
  86. package/out/reporting/prompt.js +28 -0
  87. package/out/reporting/prompt.js.map +1 -0
  88. package/out/reporting/provider.js +3 -0
  89. package/out/reporting/provider.js.map +1 -0
  90. package/out/reporting/render.js +151 -0
  91. package/out/reporting/render.js.map +1 -0
  92. package/out/reporting/timeWindow.js +79 -0
  93. package/out/reporting/timeWindow.js.map +1 -0
  94. package/out/reporting/types.js +11 -0
  95. package/out/reporting/types.js.map +1 -0
  96. package/out/review/index.js +64 -0
  97. package/out/review/index.js.map +1 -0
  98. package/out/review/mockProvider.js +57 -0
  99. package/out/review/mockProvider.js.map +1 -0
  100. package/out/review/openaiProvider.js +40 -0
  101. package/out/review/openaiProvider.js.map +1 -0
  102. package/out/review/parser.js +92 -0
  103. package/out/review/parser.js.map +1 -0
  104. package/out/review/prompt.js +61 -0
  105. package/out/review/prompt.js.map +1 -0
  106. package/out/review/provider.js +3 -0
  107. package/out/review/provider.js.map +1 -0
  108. package/out/review/types.js +3 -0
  109. package/out/review/types.js.map +1 -0
  110. package/package.json +44 -0
@@ -0,0 +1,51 @@
1
+ import { spawnSync } from "node:child_process";
2
+
3
+ const repoPath = process.argv[2] ?? process.cwd();
4
+ const configPath = process.env.SMART_COMMIT_CONFIG_PATH ?? `${repoPath}/examples/config/smart-commit.json`;
5
+
6
+ const result = spawnSync(
7
+ "smart-commit",
8
+ [
9
+ "bridge",
10
+ "--repo",
11
+ repoPath,
12
+ "--config",
13
+ configPath,
14
+ "--no-commit",
15
+ "--no-push"
16
+ ],
17
+ {
18
+ encoding: "utf8"
19
+ }
20
+ );
21
+
22
+ if (!result.stdout.trim()) {
23
+ console.error("smart-commit did not return JSON output.");
24
+ process.exit(result.status ?? 1);
25
+ }
26
+
27
+ const payload = JSON.parse(result.stdout);
28
+
29
+ if (payload.schemaVersion !== "1.0.0") {
30
+ console.error(`Unsupported schemaVersion: ${payload.schemaVersion}`);
31
+ process.exit(1);
32
+ }
33
+
34
+ if (payload.status === "blocked") {
35
+ console.error(`Bridge blocked: ${payload.error?.code ?? "UNKNOWN"} ${payload.error?.message ?? ""}`.trim());
36
+ process.exit(2);
37
+ }
38
+
39
+ if (payload.status === "error") {
40
+ console.error(`Bridge failed: ${payload.error?.code ?? "UNKNOWN"} ${payload.error?.message ?? ""}`.trim());
41
+ process.exit(1);
42
+ }
43
+
44
+ console.log(JSON.stringify({
45
+ schemaVersion: payload.schemaVersion,
46
+ status: payload.status,
47
+ phase: payload.phase,
48
+ score: payload.score,
49
+ reviewDecision: payload.reviewDecision,
50
+ summary: payload.summary
51
+ }, null, 2));
@@ -0,0 +1,48 @@
1
+ import { spawnSync } from "node:child_process";
2
+
3
+ const repoPath = process.argv[2] ?? process.cwd();
4
+ const configPath = process.env.SMART_COMMIT_CONFIG_PATH ?? `${repoPath}/examples/config/smart-commit.json`;
5
+ const period = process.argv[3] ?? "weekly";
6
+
7
+ const result = spawnSync(
8
+ "smart-commit",
9
+ [
10
+ "report",
11
+ "generate",
12
+ "--repo",
13
+ repoPath,
14
+ "--config",
15
+ configPath,
16
+ "--period",
17
+ period
18
+ ],
19
+ {
20
+ encoding: "utf8"
21
+ }
22
+ );
23
+
24
+ if (!result.stdout.trim()) {
25
+ console.error("smart-commit did not return JSON output.");
26
+ process.exit(result.status ?? 1);
27
+ }
28
+
29
+ const payload = JSON.parse(result.stdout);
30
+
31
+ if (payload.schemaVersion !== "1.0.0") {
32
+ console.error(`Unsupported schemaVersion: ${payload.schemaVersion}`);
33
+ process.exit(1);
34
+ }
35
+
36
+ if (payload.status === "error") {
37
+ console.error(`Report generation failed: ${payload.error?.code ?? "UNKNOWN"} ${payload.error?.message ?? ""}`.trim());
38
+ process.exit(1);
39
+ }
40
+
41
+ console.log(JSON.stringify({
42
+ schemaVersion: payload.schemaVersion,
43
+ status: payload.status,
44
+ renderMode: payload.renderMode,
45
+ reportProvider: payload.reportProvider,
46
+ outputFilePath: payload.outputFilePath,
47
+ summary: payload.summary
48
+ }, null, 2));
@@ -0,0 +1,60 @@
1
+ {
2
+ "smartCommitCli": {
3
+ "connection": {
4
+ "baseUrl": "https://api.openai.com/v1",
5
+ "apiKey": "env:SMART_COMMIT_API_KEY",
6
+ "model": "gpt-5"
7
+ },
8
+ "review": {
9
+ "threshold": 6,
10
+ "language": "zh",
11
+ "maxDiffChars": 100000,
12
+ "skill": {
13
+ "id": "code-review",
14
+ "path": "",
15
+ "promptTuning": ""
16
+ }
17
+ },
18
+ "commitMessage": {
19
+ "input": "",
20
+ "language": "zh",
21
+ "autoGenerate": true,
22
+ "hybridGenerate": false,
23
+ "skill": {
24
+ "id": "conventional",
25
+ "path": "",
26
+ "promptTuning": ""
27
+ },
28
+ "validation": {
29
+ "protocol": "none",
30
+ "pattern": "",
31
+ "extractTicketIdFromBranch": true,
32
+ "requireTicketIdInMessage": false
33
+ }
34
+ },
35
+ "git": {
36
+ "autoStageWhenNothingStaged": true,
37
+ "autoCommit": true,
38
+ "autoPush": true,
39
+ "pushTimeoutMs": 90000
40
+ },
41
+ "passHistory": {
42
+ "enabled": true,
43
+ "dirPath": ".smart-commit-cli",
44
+ "maxEntries": 5000
45
+ },
46
+ "reporting": {
47
+ "language": "zh",
48
+ "weekStartsOn": "monday",
49
+ "outputDirPath": ".smart-commit-cli/reports",
50
+ "prompt": "",
51
+ "ai": {
52
+ "enabled": false
53
+ }
54
+ },
55
+ "output": {
56
+ "format": "json",
57
+ "logLevel": "info"
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env sh
2
+ set -eu
3
+
4
+ REPO_ROOT="$(git rev-parse --show-toplevel)"
5
+ CONFIG_PATH="${SMART_COMMIT_CONFIG_PATH:-$REPO_ROOT/examples/config/smart-commit.json}"
6
+
7
+ smart-commit bridge \
8
+ --repo "$REPO_ROOT" \
9
+ --config "$CONFIG_PATH" \
10
+ --no-commit \
11
+ --no-push \
12
+ --output json
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env sh
2
+ set -eu
3
+
4
+ . "$(dirname -- "$0")/_/husky.sh" 2>/dev/null || true
5
+
6
+ "$(dirname -- "$0")/smart-commit-bridge.sh"
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env sh
2
+ set -eu
3
+
4
+ REPO_ROOT="$(git rev-parse --show-toplevel)"
5
+ CONFIG_PATH="${SMART_COMMIT_CONFIG_PATH:-$REPO_ROOT/examples/config/smart-commit.json}"
6
+
7
+ smart-commit bridge \
8
+ --repo "$REPO_ROOT" \
9
+ --config "$CONFIG_PATH" \
10
+ --no-commit \
11
+ --no-push
package/out/cli.js ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const cliApp_1 = require("./cliApp");
5
+ async function main() {
6
+ const argv = process.argv.slice(2);
7
+ const command = (0, cliApp_1.parseCliCommand)(argv).kind;
8
+ const useAsync = command === "bridge" || command === "report-generate";
9
+ const result = useAsync ? await (0, cliApp_1.runCliAsync)(argv, process.env) : (0, cliApp_1.runCli)(argv, process.env);
10
+ if (result.stdout) {
11
+ process.stdout.write(result.stdout);
12
+ }
13
+ if (result.stderr) {
14
+ process.stderr.write(result.stderr);
15
+ }
16
+ process.exitCode = result.exitCode;
17
+ }
18
+ void main();
19
+ //# sourceMappingURL=cli.js.map
package/out/cli.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,qCAAgE;AAEhE,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAA,wBAAe,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAC3C,MAAM,QAAQ,GAAG,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,iBAAiB,CAAC;IACvE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAA,oBAAW,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,eAAM,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3F,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACrC,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
package/out/cliApp.js ADDED
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runCli = runCli;
4
+ exports.runCliAsync = runCliAsync;
5
+ exports.parseCliCommand = parseCliCommand;
6
+ const bridge_1 = require("./commands/bridge");
7
+ const report_1 = require("./commands/report");
8
+ const config_1 = require("./config");
9
+ const contracts_1 = require("./contracts");
10
+ const logger_1 = require("./logger");
11
+ const output_1 = require("./output");
12
+ const renderOutput_1 = require("./renderOutput");
13
+ function runCli(argv, env = process.env) {
14
+ try {
15
+ const command = parseCommand(argv);
16
+ if (command.kind === "help") {
17
+ return {
18
+ exitCode: 0,
19
+ stdout: buildHelpText(),
20
+ stderr: ""
21
+ };
22
+ }
23
+ if (command.kind === "config-resolve") {
24
+ const resolved = (0, config_1.resolveCliConfig)({
25
+ argv: command.flags,
26
+ env,
27
+ validate: true,
28
+ requireConnection: false
29
+ });
30
+ const payload = {
31
+ schemaVersion: contracts_1.SMART_COMMIT_CLI_SCHEMA_VERSION,
32
+ status: "ok",
33
+ command: "config resolve",
34
+ runtime: resolved.runtime,
35
+ config: (0, output_1.redactCliConfig)(resolved.config)
36
+ };
37
+ return {
38
+ exitCode: 0,
39
+ stdout: (0, renderOutput_1.renderConfigResolveOutput)(payload, resolved.config.output.format),
40
+ stderr: (0, logger_1.shouldLog)(resolved.config.output.logLevel, "debug")
41
+ ? (0, logger_1.formatLogLine)("debug", `Resolved config for config resolve with output=${resolved.config.output.format}.`)
42
+ : ""
43
+ };
44
+ }
45
+ if (command.kind === "bridge") {
46
+ throw new Error("bridge command must be handled asynchronously via runCliAsync.");
47
+ }
48
+ if (command.kind === "report-generate") {
49
+ throw new Error("report generate command must be handled asynchronously via runCliAsync.");
50
+ }
51
+ if (command.kind === "schema-print") {
52
+ return {
53
+ exitCode: 0,
54
+ stdout: `${JSON.stringify((0, contracts_1.getSchemaDocument)(command.target), null, 2)}\n`,
55
+ stderr: ""
56
+ };
57
+ }
58
+ return {
59
+ exitCode: bridge_1.EXIT_CODE_CONFIG_ERROR,
60
+ stdout: "",
61
+ stderr: `Unknown command: ${command.raw}\n${buildHelpText()}`
62
+ };
63
+ }
64
+ catch (error) {
65
+ const message = error instanceof Error ? error.message : String(error);
66
+ return {
67
+ exitCode: 3,
68
+ stdout: "",
69
+ stderr: `${message}\n`
70
+ };
71
+ }
72
+ }
73
+ async function runCliAsync(argv, env = process.env) {
74
+ try {
75
+ const command = parseCommand(argv);
76
+ if (command.kind !== "bridge") {
77
+ if (command.kind !== "report-generate") {
78
+ return runCli(argv, env);
79
+ }
80
+ }
81
+ if (command.kind === "report-generate") {
82
+ const result = await (0, report_1.runReportGenerateCommand)(command.flags, env);
83
+ const outputFormat = (0, renderOutput_1.resolveRequestedOutputFormat)(command.flags, env, result.payload.config.output.format);
84
+ let stderr = "";
85
+ if (result.payload.warnings.length > 0 && (0, logger_1.shouldLog)(result.payload.config.output.logLevel, "warn")) {
86
+ stderr += result.payload.warnings.map((warning) => (0, logger_1.formatLogLine)("warn", warning)).join("");
87
+ }
88
+ if ((0, logger_1.shouldLog)(result.payload.config.output.logLevel, "debug")) {
89
+ stderr += (0, logger_1.formatLogLine)("debug", `report generate completed with status=${result.payload.status}, renderMode=${result.payload.renderMode}, output=${outputFormat}.`);
90
+ }
91
+ if (result.payload.status === "error" && result.payload.error) {
92
+ stderr += `${result.payload.error.message}\n`;
93
+ }
94
+ return {
95
+ exitCode: result.exitCode,
96
+ stdout: (0, renderOutput_1.renderReportOutput)(result.payload, outputFormat),
97
+ stderr
98
+ };
99
+ }
100
+ const result = await (0, bridge_1.runBridgeCommand)(command.flags, env);
101
+ const outputFormat = (0, renderOutput_1.resolveRequestedOutputFormat)(command.flags, env, result.payload.config.output.format);
102
+ let stderr = "";
103
+ if ((0, logger_1.shouldLog)(result.payload.config.output.logLevel, "debug")) {
104
+ stderr += (0, logger_1.formatLogLine)("debug", `bridge completed with status=${result.payload.status}, phase=${result.payload.phase}, output=${outputFormat}.`);
105
+ }
106
+ if (result.payload.status !== "ready" && result.payload.error) {
107
+ stderr += `${result.payload.error.message}\n`;
108
+ }
109
+ return {
110
+ exitCode: result.exitCode,
111
+ stdout: (0, renderOutput_1.renderBridgeOutput)(result.payload, outputFormat),
112
+ stderr
113
+ };
114
+ }
115
+ catch (error) {
116
+ const message = error instanceof Error ? error.message : String(error);
117
+ return {
118
+ exitCode: 4,
119
+ stdout: "",
120
+ stderr: `${message}\n`
121
+ };
122
+ }
123
+ }
124
+ function parseCommand(argv) {
125
+ const positional = argv.filter((token) => !token.startsWith("--"));
126
+ if (argv.length === 0 || argv.includes("--help") || argv.includes("-h") || positional[0] === "help") {
127
+ return { kind: "help", raw: positional.join(" ") };
128
+ }
129
+ if (positional[0] === "config" && positional[1] === "resolve") {
130
+ return {
131
+ kind: "config-resolve",
132
+ raw: "config resolve",
133
+ flags: filterCommandTokens(argv, 2)
134
+ };
135
+ }
136
+ if (positional[0] === "bridge") {
137
+ return {
138
+ kind: "bridge",
139
+ raw: "bridge",
140
+ flags: filterCommandTokens(argv, 1)
141
+ };
142
+ }
143
+ if (positional[0] === "report" && positional[1] === "generate") {
144
+ return {
145
+ kind: "report-generate",
146
+ raw: "report generate",
147
+ flags: filterCommandTokens(argv, 2)
148
+ };
149
+ }
150
+ if (positional[0] === "schema" && positional[1] === "print") {
151
+ return {
152
+ kind: "schema-print",
153
+ raw: "schema print",
154
+ target: parseSchemaTarget(argv)
155
+ };
156
+ }
157
+ return {
158
+ kind: "unknown",
159
+ raw: positional.join(" ") || argv[0] || "(empty)"
160
+ };
161
+ }
162
+ function parseCliCommand(argv) {
163
+ return parseCommand(argv);
164
+ }
165
+ function filterCommandTokens(argv, positionalCount) {
166
+ const result = [];
167
+ let consumedPositional = 0;
168
+ for (let index = 0; index < argv.length; index += 1) {
169
+ const token = argv[index];
170
+ if (!token.startsWith("--") && consumedPositional < positionalCount) {
171
+ consumedPositional += 1;
172
+ continue;
173
+ }
174
+ result.push(token);
175
+ }
176
+ return result;
177
+ }
178
+ function buildHelpText() {
179
+ return [
180
+ "smart-commit CLI",
181
+ "",
182
+ "Usage:",
183
+ " smart-commit config resolve [flags]",
184
+ " smart-commit bridge [flags]",
185
+ " smart-commit report generate [flags]",
186
+ " smart-commit schema print --target <config-file|config-resolve|bridge|report-generate>",
187
+ " smart-commit --help",
188
+ "",
189
+ "Current commands:",
190
+ " config resolve Resolve and validate the merged CLI config",
191
+ " bridge Validate bridge inputs and emit a stable JSON contract",
192
+ " report generate Generate a Markdown work report from pass history",
193
+ " schema print Print the machine-facing JSON schema for a CLI contract",
194
+ "",
195
+ "Common flags:",
196
+ " --config <path>",
197
+ " --repo <path>",
198
+ " --base-url <url>",
199
+ " --api-key <key>",
200
+ " --model <model-id>",
201
+ " --threshold <number>",
202
+ " --review-language <lang>",
203
+ " --commit-language <lang>",
204
+ " --auto-generate-commit-message <true|false>",
205
+ " --hybrid-generate-commit-message <true|false>",
206
+ " --period <daily|weekly|monthly|quarterly|yearly>",
207
+ " --report-ai",
208
+ " --no-report-ai",
209
+ " --no-commit",
210
+ " --no-push",
211
+ " --dry-run"
212
+ ].join("\n") + "\n";
213
+ }
214
+ function parseSchemaTarget(argv) {
215
+ for (let index = 0; index < argv.length; index += 1) {
216
+ const token = argv[index];
217
+ if (token === "--target") {
218
+ return validateSchemaTarget(argv[index + 1]);
219
+ }
220
+ if (token.startsWith("--target=")) {
221
+ return validateSchemaTarget(token.slice("--target=".length));
222
+ }
223
+ }
224
+ throw new Error("--target is required for schema print.");
225
+ }
226
+ function validateSchemaTarget(value) {
227
+ if (!value) {
228
+ throw new Error("--target requires a value.");
229
+ }
230
+ const normalized = value.trim().toLowerCase();
231
+ if (normalized === "config-file" ||
232
+ normalized === "config-resolve" ||
233
+ normalized === "bridge" ||
234
+ normalized === "report-generate") {
235
+ return normalized;
236
+ }
237
+ throw new Error("--target must be one of: config-file, config-resolve, bridge, report-generate.");
238
+ }
239
+ //# sourceMappingURL=cliApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliApp.js","sourceRoot":"","sources":["../src/cliApp.ts"],"names":[],"mappings":"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"}