prompsit-cli 26.303.1509 → 26.304.1023
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 +26 -21
- package/dist/api/models.d.ts +22 -6
- package/dist/api/models.d.ts.map +1 -1
- package/dist/api/models.js +18 -6
- package/dist/api/models.js.map +1 -1
- package/dist/api/resources/discovery.d.ts +3 -1
- package/dist/api/resources/discovery.d.ts.map +1 -1
- package/dist/api/resources/discovery.js +5 -1
- package/dist/api/resources/discovery.js.map +1 -1
- package/dist/api/resources/formats.d.ts +1 -1
- package/dist/api/resources/formats.js +2 -2
- package/dist/api/resources/formats.js.map +1 -1
- package/dist/api/verbose.d.ts +8 -2
- package/dist/api/verbose.d.ts.map +1 -1
- package/dist/api/verbose.js +8 -13
- package/dist/api/verbose.js.map +1 -1
- package/dist/cli/options.js +2 -2
- package/dist/cli/options.js.map +1 -1
- package/dist/commands/annotate.d.ts.map +1 -1
- package/dist/commands/annotate.js +20 -55
- package/dist/commands/annotate.js.map +1 -1
- package/dist/commands/batch-processor.d.ts.map +1 -1
- package/dist/commands/batch-processor.js +34 -29
- package/dist/commands/batch-processor.js.map +1 -1
- package/dist/commands/evaluate.d.ts +15 -3
- package/dist/commands/evaluate.d.ts.map +1 -1
- package/dist/commands/evaluate.js +142 -133
- package/dist/commands/evaluate.js.map +1 -1
- package/dist/commands/formats.d.ts +1 -1
- package/dist/commands/formats.d.ts.map +1 -1
- package/dist/commands/formats.js +12 -5
- package/dist/commands/formats.js.map +1 -1
- package/dist/commands/job-tracking.d.ts +2 -0
- package/dist/commands/job-tracking.d.ts.map +1 -1
- package/dist/commands/job-tracking.js +29 -3
- package/dist/commands/job-tracking.js.map +1 -1
- package/dist/commands/score.d.ts +1 -0
- package/dist/commands/score.d.ts.map +1 -1
- package/dist/commands/score.js +53 -102
- package/dist/commands/score.js.map +1 -1
- package/dist/commands/show-formats.js +15 -20
- package/dist/commands/show-formats.js.map +1 -1
- package/dist/commands/show-languages.d.ts +2 -0
- package/dist/commands/show-languages.d.ts.map +1 -1
- package/dist/commands/show-languages.js +21 -2
- package/dist/commands/show-languages.js.map +1 -1
- package/dist/commands/translate.d.ts +12 -3
- package/dist/commands/translate.d.ts.map +1 -1
- package/dist/commands/translate.js +101 -138
- package/dist/commands/translate.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +1 -7
- package/dist/commands/update.js.map +1 -1
- package/dist/config/schemas.d.ts +2 -0
- package/dist/config/schemas.d.ts.map +1 -1
- package/dist/config/schemas.js +1 -0
- package/dist/config/schemas.js.map +1 -1
- package/dist/constants.d.ts +17 -10
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +18 -10
- package/dist/constants.js.map +1 -1
- package/dist/errors/catalog.js +1 -1
- package/dist/errors/catalog.js.map +1 -1
- package/dist/i18n/catalog.d.ts +14 -7
- package/dist/i18n/catalog.d.ts.map +1 -1
- package/dist/i18n/catalog.js +14 -7
- package/dist/i18n/catalog.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/logging/console-handler.js +1 -1
- package/dist/logging/console-handler.js.map +1 -1
- package/dist/logging/file-handler.d.ts.map +1 -1
- package/dist/logging/file-handler.js +5 -4
- package/dist/logging/file-handler.js.map +1 -1
- package/dist/output/progress-display.d.ts.map +1 -1
- package/dist/output/progress-display.js +0 -9
- package/dist/output/progress-display.js.map +1 -1
- package/dist/output/tables/catalog.d.ts +1 -2
- package/dist/output/tables/catalog.d.ts.map +1 -1
- package/dist/output/tables/catalog.js +2 -3
- package/dist/output/tables/catalog.js.map +1 -1
- package/dist/program.js +8 -7
- package/dist/program.js.map +1 -1
- package/dist/repl/controller.d.ts.map +1 -1
- package/dist/repl/controller.js +11 -8
- package/dist/repl/controller.js.map +1 -1
- package/dist/repl/examples.d.ts +8 -4
- package/dist/repl/examples.d.ts.map +1 -1
- package/dist/repl/examples.js +34 -22
- package/dist/repl/examples.js.map +1 -1
- package/dist/repl/executor.d.ts.map +1 -1
- package/dist/repl/executor.js +55 -125
- package/dist/repl/executor.js.map +1 -1
- package/dist/repl/input/completer.js +1 -1
- package/dist/repl/input/completer.js.map +1 -1
- package/dist/repl/registry.d.ts +15 -10
- package/dist/repl/registry.d.ts.map +1 -1
- package/dist/repl/registry.js +84 -63
- package/dist/repl/registry.js.map +1 -1
- package/dist/repl/service.d.ts +1 -1
- package/dist/repl/service.js +1 -1
- package/dist/runtime/clipboard.d.ts.map +1 -1
- package/dist/runtime/clipboard.js +1 -3
- package/dist/runtime/clipboard.js.map +1 -1
- package/dist/runtime/file-args.d.ts.map +1 -1
- package/dist/runtime/file-args.js +1 -1
- package/dist/runtime/file-args.js.map +1 -1
- package/dist/runtime/input-detect.d.ts +0 -18
- package/dist/runtime/input-detect.d.ts.map +1 -1
- package/dist/runtime/input-detect.js +0 -75
- package/dist/runtime/input-detect.js.map +1 -1
- package/dist/runtime/progress-adapters.d.ts +1 -1
- package/dist/runtime/progress-adapters.d.ts.map +1 -1
- package/dist/runtime/progress-sink.d.ts +0 -4
- package/dist/runtime/progress-sink.d.ts.map +1 -1
- package/dist/runtime/progress-sink.js +0 -2
- package/dist/runtime/progress-sink.js.map +1 -1
- package/dist/shared/constants.d.ts +3 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +3 -0
- package/dist/shared/constants.js.map +1 -1
- package/dist/update/version.d.ts +0 -5
- package/dist/update/version.d.ts.map +1 -1
- package/dist/update/version.js +3 -19
- package/dist/update/version.js.map +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +2 -3
- package/dist/version.js.map +1 -1
- package/examples/{sample_scored.tmx → score/sample.tmx} +7 -7
- package/package.json +74 -76
- package/dist/api/http-utils.d.ts +0 -5
- package/dist/api/http-utils.d.ts.map +0 -1
- package/dist/api/http-utils.js +0 -19
- package/dist/api/http-utils.js.map +0 -1
- package/dist/commands/config.d.ts +0 -8
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -331
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/languages.d.ts +0 -12
- package/dist/commands/languages.d.ts.map +0 -1
- package/dist/commands/languages.js +0 -48
- package/dist/commands/languages.js.map +0 -1
- package/dist/i18n/translator-adapter.d.ts +0 -3
- package/dist/i18n/translator-adapter.d.ts.map +0 -1
- package/dist/i18n/translator-adapter.js +0 -12
- package/dist/i18n/translator-adapter.js.map +0 -1
- package/dist/output/console.d.ts +0 -77
- package/dist/output/console.d.ts.map +0 -1
- package/dist/output/console.js +0 -128
- package/dist/output/console.js.map +0 -1
- package/dist/output/tables.d.ts +0 -52
- package/dist/output/tables.d.ts.map +0 -1
- package/dist/output/tables.js +0 -448
- package/dist/output/tables.js.map +0 -1
- package/dist/repl/App.d.ts +0 -6
- package/dist/repl/App.d.ts.map +0 -1
- package/dist/repl/App.js +0 -216
- package/dist/repl/App.js.map +0 -1
- package/dist/repl/components/ControllableTextInput.d.ts +0 -12
- package/dist/repl/components/ControllableTextInput.d.ts.map +0 -1
- package/dist/repl/components/ControllableTextInput.js +0 -102
- package/dist/repl/components/ControllableTextInput.js.map +0 -1
- package/dist/repl/components/HistoryRow.d.ts +0 -8
- package/dist/repl/components/HistoryRow.d.ts.map +0 -1
- package/dist/repl/components/HistoryRow.js +0 -40
- package/dist/repl/components/HistoryRow.js.map +0 -1
- package/dist/repl/components/ProgressIndicator.d.ts +0 -10
- package/dist/repl/components/ProgressIndicator.d.ts.map +0 -1
- package/dist/repl/components/ProgressIndicator.js +0 -39
- package/dist/repl/components/ProgressIndicator.js.map +0 -1
- package/dist/repl/components/Separator.d.ts +0 -5
- package/dist/repl/components/Separator.d.ts.map +0 -1
- package/dist/repl/components/Separator.js +0 -9
- package/dist/repl/components/Separator.js.map +0 -1
- package/dist/repl/hooks.d.ts +0 -9
- package/dist/repl/hooks.d.ts.map +0 -1
- package/dist/repl/hooks.js +0 -29
- package/dist/repl/hooks.js.map +0 -1
- package/dist/repl/plugins/manager.d.ts +0 -22
- package/dist/repl/plugins/manager.d.ts.map +0 -1
- package/dist/repl/plugins/manager.js +0 -111
- package/dist/repl/plugins/manager.js.map +0 -1
- package/dist/repl/plugins/types.d.ts +0 -33
- package/dist/repl/plugins/types.d.ts.map +0 -1
- package/dist/repl/plugins/types.js +0 -3
- package/dist/repl/plugins/types.js.map +0 -1
- package/dist/repl/progress-context.d.ts +0 -14
- package/dist/repl/progress-context.d.ts.map +0 -1
- package/dist/repl/progress-context.js +0 -15
- package/dist/repl/progress-context.js.map +0 -1
- package/dist/repl/ui-state.d.ts +0 -9
- package/dist/repl/ui-state.d.ts.map +0 -1
- package/dist/repl/ui-state.js +0 -16
- package/dist/repl/ui-state.js.map +0 -1
- package/dist/runtime/external-transport.d.ts +0 -12
- package/dist/runtime/external-transport.d.ts.map +0 -1
- package/dist/runtime/external-transport.js +0 -59
- package/dist/runtime/external-transport.js.map +0 -1
- package/scripts/post-install.cjs +0 -23
- /package/examples/{sample.jsonl → annotate/sample.jsonl} +0 -0
- /package/examples/{sample.tmx → evaluate/sample.tmx} +0 -0
- /package/examples/{sample.csv → translate/sample.csv} +0 -0
- /package/examples/{sample.txt → translate/sample.txt} +0 -0
- /package/examples/{sample.xliff → translate/sample.xliff} +0 -0
|
@@ -19,52 +19,57 @@ export async function runBatch(opts) {
|
|
|
19
19
|
const { items, label, process: processFn, formatSuccess, command, signal } = opts;
|
|
20
20
|
const total = items.length;
|
|
21
21
|
const concurrency = getSettings().cli.file_concurrency;
|
|
22
|
-
const sink = createProgressSink(`0/${total}
|
|
22
|
+
const sink = createProgressSink(`0/${total}`);
|
|
23
23
|
const filePercents = Array.from({ length: total }, () => 0);
|
|
24
|
+
const activeLabels = new Map();
|
|
24
25
|
let completedCount = 0;
|
|
25
26
|
const updateProgress = () => {
|
|
26
27
|
const avg = filePercents.reduce((a, b) => a + b, 0) / total;
|
|
27
|
-
|
|
28
|
+
const names = [...activeLabels.values()];
|
|
29
|
+
const suffix = names.length > 0 ? `: ${names.join(", ")}` : "";
|
|
30
|
+
sink.update(Math.round(avg), `${completedCount}/${total}${suffix}`);
|
|
28
31
|
};
|
|
29
32
|
let settled;
|
|
30
33
|
let successCount = 0;
|
|
31
34
|
const results = [];
|
|
32
35
|
try {
|
|
33
36
|
settled = await poolMap(items, concurrency, async (item, index) => {
|
|
34
|
-
|
|
35
|
-
filePercents[index] = pct;
|
|
36
|
-
updateProgress();
|
|
37
|
-
});
|
|
38
|
-
// Auto-set to 100% after resolve (for sync ops that don't call onProgress)
|
|
39
|
-
filePercents[index] = 100;
|
|
40
|
-
completedCount++;
|
|
37
|
+
activeLabels.set(index, label(item));
|
|
41
38
|
updateProgress();
|
|
42
|
-
|
|
39
|
+
try {
|
|
40
|
+
const result = await processFn(item, index, (pct) => {
|
|
41
|
+
filePercents[index] = pct;
|
|
42
|
+
updateProgress();
|
|
43
|
+
});
|
|
44
|
+
filePercents[index] = 100;
|
|
45
|
+
activeLabels.delete(index);
|
|
46
|
+
completedCount++;
|
|
47
|
+
updateProgress();
|
|
48
|
+
terminal.success(formatSuccess(result));
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
if (error instanceof CancelledError)
|
|
53
|
+
throw error;
|
|
54
|
+
// Failed file is still 100% processed
|
|
55
|
+
filePercents[index] = 100;
|
|
56
|
+
activeLabels.delete(index);
|
|
57
|
+
completedCount++;
|
|
58
|
+
updateProgress();
|
|
59
|
+
handleCommandError(log, error, { command, file: label(item) });
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
43
62
|
}, signal);
|
|
44
|
-
//
|
|
63
|
+
// Count successes (results already printed in callback)
|
|
45
64
|
for (const [i, r] of settled.entries()) {
|
|
46
|
-
// Handle sparse results from abort (unstarted items are undefined)
|
|
47
65
|
if (!r)
|
|
48
66
|
continue;
|
|
49
67
|
if (r.status === "fulfilled") {
|
|
50
68
|
successCount++;
|
|
51
69
|
results.push({ index: i, value: r.value });
|
|
52
|
-
sink.suspend();
|
|
53
|
-
terminal.success(formatSuccess(r.value));
|
|
54
|
-
sink.restore();
|
|
55
|
-
updateProgress();
|
|
56
70
|
}
|
|
57
|
-
else {
|
|
58
|
-
|
|
59
|
-
if (r.reason instanceof CancelledError) {
|
|
60
|
-
throw r.reason;
|
|
61
|
-
}
|
|
62
|
-
handleCommandError(log, r.reason, {
|
|
63
|
-
command,
|
|
64
|
-
file: label(items[i]),
|
|
65
|
-
});
|
|
66
|
-
sink.restore();
|
|
67
|
-
updateProgress();
|
|
71
|
+
else if (r.reason instanceof CancelledError) {
|
|
72
|
+
throw r.reason;
|
|
68
73
|
}
|
|
69
74
|
}
|
|
70
75
|
}
|
|
@@ -72,10 +77,10 @@ export async function runBatch(opts) {
|
|
|
72
77
|
sink.stop();
|
|
73
78
|
}
|
|
74
79
|
if (successCount === total) {
|
|
75
|
-
sink.succeed(`${successCount}/${total}
|
|
80
|
+
sink.succeed(`${successCount}/${total} completed`);
|
|
76
81
|
}
|
|
77
82
|
else {
|
|
78
|
-
sink.warn(`${successCount}/${total}
|
|
83
|
+
sink.warn(`${successCount}/${total} completed`);
|
|
79
84
|
}
|
|
80
85
|
return { successCount, totalCount: total, results };
|
|
81
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-processor.js","sourceRoot":"","sources":["../../src/commands/batch-processor.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,qFAAqF;AAErF,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AA8BvC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAO,IAAwB;IAC3D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACvD,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"batch-processor.js","sourceRoot":"","sources":["../../src/commands/batch-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { Command } from "@commander-js/extra-typings";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Flat evaluate command.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Mode detection:
|
|
6
|
+
* - --formats → show QE-supported formats
|
|
7
|
+
* - No positional + -s/-h/-r → inline metrics (single segment)
|
|
8
|
+
* - Positional without @ → batch mode (TSV files)
|
|
9
|
+
* - Positional with @ → file scoring mode
|
|
6
10
|
*/
|
|
7
|
-
export declare const evaluateCommand: Command<[], {
|
|
11
|
+
export declare const evaluateCommand: Command<[string[]], {
|
|
12
|
+
source?: string | undefined;
|
|
13
|
+
hypothesis?: string | undefined;
|
|
14
|
+
reference?: string | undefined;
|
|
15
|
+
metrics: string;
|
|
16
|
+
out?: string | undefined;
|
|
17
|
+
outputFormat?: string | undefined;
|
|
18
|
+
formats: boolean;
|
|
19
|
+
}, {}>;
|
|
8
20
|
//# sourceMappingURL=evaluate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/commands/evaluate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/commands/evaluate.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAwFtD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;;;;;;;;MAoExB,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
1
|
+
// Flat evaluate command: mode determined at runtime.
|
|
2
|
+
// Inline mode (no positional, -s/-h/-r): single segment evaluation via POST /v1/evaluation/evaluate.
|
|
3
|
+
// Batch mode (positional without @): TSV file(s), segment evaluation via POST /v1/evaluation/evaluate.
|
|
4
|
+
// File mode (positional with @): file scoring via POST /v1/quality/score/file.
|
|
3
5
|
import { createReadStream } from "node:fs";
|
|
4
6
|
import { access } from "node:fs/promises";
|
|
5
7
|
import { createInterface } from "node:readline";
|
|
@@ -14,6 +16,7 @@ import { t } from "../i18n/index.js";
|
|
|
14
16
|
import { getLogger } from "../logging/index.js";
|
|
15
17
|
import { ErrorCode } from "../errors/codes.js";
|
|
16
18
|
import { failCommand, handleCommandError } from "./error-handler.js";
|
|
19
|
+
import { stripFilePrefix } from "../runtime/input-detect.js";
|
|
17
20
|
import { tryExpandFileArgs, resolveOutputPaths } from "../runtime/file-args.js";
|
|
18
21
|
const log = getLogger(import.meta.url);
|
|
19
22
|
/** Accepted metric names (case-insensitive). */
|
|
@@ -24,9 +27,7 @@ const DEFAULT_METRICS = "bleu,chrf";
|
|
|
24
27
|
* Parse and validate a comma-separated metrics string.
|
|
25
28
|
*
|
|
26
29
|
* Splits on commas, trims whitespace, normalizes to lowercase.
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* @returns Array of validated lowercase metric names
|
|
30
|
+
* Returns null on invalid metric names (error already printed).
|
|
30
31
|
*/
|
|
31
32
|
function parseAndValidateMetrics(input) {
|
|
32
33
|
const metrics = input
|
|
@@ -76,32 +77,87 @@ async function parseTsvFile(filePath) {
|
|
|
76
77
|
return segments;
|
|
77
78
|
}
|
|
78
79
|
/**
|
|
79
|
-
*
|
|
80
|
+
* Flat evaluate command.
|
|
80
81
|
*
|
|
81
|
-
*
|
|
82
|
+
* Mode detection:
|
|
83
|
+
* - --formats → show QE-supported formats
|
|
84
|
+
* - No positional + -s/-h/-r → inline metrics (single segment)
|
|
85
|
+
* - Positional without @ → batch mode (TSV files)
|
|
86
|
+
* - Positional with @ → file scoring mode
|
|
82
87
|
*/
|
|
83
88
|
export const evaluateCommand = new Command("evaluate")
|
|
84
|
-
.summary("Evaluate translation quality
|
|
85
|
-
.description("
|
|
86
|
-
.
|
|
87
|
-
|
|
88
|
-
evaluateCommand
|
|
89
|
-
.command("metrics")
|
|
90
|
-
// Use -h for hypothesis to keep command concise; help remains available as --help.
|
|
89
|
+
.summary("Evaluate translation quality")
|
|
90
|
+
.description("Evaluate single segments, batch TSV files, or score document files")
|
|
91
|
+
.argument("[inputs...]", "TSV file(s) or @file(s) for scoring")
|
|
92
|
+
// Free -h for --hypothesis: help available only as --help
|
|
91
93
|
.helpOption("--help", "display help for command")
|
|
92
|
-
.
|
|
93
|
-
.
|
|
94
|
-
.
|
|
95
|
-
.requiredOption("-r, --reference <text>", "Reference translation")
|
|
94
|
+
.option("-s, --source <text>", "Source text (inline mode)")
|
|
95
|
+
.option("-h, --hypothesis <text>", "Machine translation hypothesis (inline mode)")
|
|
96
|
+
.option("-r, --reference <text>", "Reference translation (inline mode)")
|
|
96
97
|
.option("-m, --metrics <list>", "Metrics to compute (comma-separated)", DEFAULT_METRICS)
|
|
97
|
-
.
|
|
98
|
+
.option("--out <dir>", "Output directory (file mode, default: beside input)")
|
|
99
|
+
.option("--output-format <format>", "Output format (csv/tsv/tmx/xliff)")
|
|
100
|
+
.option("--formats", "Show supported file formats", false)
|
|
101
|
+
.helpCommand(false)
|
|
102
|
+
.action(async (inputs, opts) => {
|
|
103
|
+
// Info-only early exit
|
|
104
|
+
if (opts.formats) {
|
|
105
|
+
await showFormats("qe");
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const hasInlineFlags = opts.source !== undefined || opts.hypothesis !== undefined || opts.reference !== undefined;
|
|
109
|
+
const hasPositional = inputs.length > 0;
|
|
110
|
+
// Pre-validation: strict mode matrix — reject mixed modes
|
|
111
|
+
if (hasPositional && hasInlineFlags) {
|
|
112
|
+
failCommand(ErrorCode.VALIDATION, t("validate.evaluate.mixed_modes"));
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (hasPositional) {
|
|
116
|
+
// Classify inputs: @ prefix = file scoring, else = batch TSV
|
|
117
|
+
const fileInputs = [];
|
|
118
|
+
const batchInputs = [];
|
|
119
|
+
for (const input of inputs) {
|
|
120
|
+
const stripped = stripFilePrefix(input);
|
|
121
|
+
if (stripped === null) {
|
|
122
|
+
batchInputs.push(input);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
fileInputs.push(stripped);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (fileInputs.length > 0 && batchInputs.length > 0) {
|
|
129
|
+
failCommand(ErrorCode.VALIDATION, t("validate.evaluate.mixed_inputs"));
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
await (fileInputs.length > 0
|
|
133
|
+
? evaluateFileMode(fileInputs, opts)
|
|
134
|
+
: evaluateBatchMode(batchInputs, opts));
|
|
135
|
+
}
|
|
136
|
+
else if (hasInlineFlags) {
|
|
137
|
+
// Inline mode: all three flags required
|
|
138
|
+
if (!opts.source || !opts.hypothesis || !opts.reference) {
|
|
139
|
+
failCommand(ErrorCode.VALIDATION, t("validate.evaluate.missing_inline_flags"));
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
await evaluateInlineMode({
|
|
143
|
+
source: opts.source,
|
|
144
|
+
hypothesis: opts.hypothesis,
|
|
145
|
+
reference: opts.reference,
|
|
146
|
+
metrics: opts.metrics,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// No inputs, no inline flags
|
|
151
|
+
failCommand(ErrorCode.VALIDATION, t("validate.missing_argument", { name: "inputs" }));
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
async function evaluateInlineMode(opts) {
|
|
98
155
|
const startMs = Date.now();
|
|
99
|
-
log.info("Command started", { command: "evaluate
|
|
156
|
+
log.info("Command started", { command: "evaluate", mode: "inline" });
|
|
100
157
|
try {
|
|
101
158
|
const metricList = parseAndValidateMetrics(opts.metrics);
|
|
102
|
-
if (!metricList)
|
|
159
|
+
if (!metricList)
|
|
103
160
|
return;
|
|
104
|
-
}
|
|
105
161
|
const segment = {
|
|
106
162
|
source: opts.source,
|
|
107
163
|
hypothesis: opts.hypothesis,
|
|
@@ -113,93 +169,66 @@ evaluateCommand
|
|
|
113
169
|
aggregation: "corpus",
|
|
114
170
|
});
|
|
115
171
|
log.info("Command completed", {
|
|
116
|
-
command: "evaluate
|
|
172
|
+
command: "evaluate",
|
|
173
|
+
mode: "inline",
|
|
117
174
|
duration_ms: String(Date.now() - startMs),
|
|
118
175
|
});
|
|
119
176
|
terminal.table(createEvaluationTableModel(toEvaluationResponseVM(response)));
|
|
120
177
|
}
|
|
121
178
|
catch (error) {
|
|
122
179
|
handleCommandError(log, error, {
|
|
123
|
-
command: "evaluate
|
|
180
|
+
command: "evaluate",
|
|
181
|
+
mode: "inline",
|
|
124
182
|
duration_ms: String(Date.now() - startMs),
|
|
125
183
|
});
|
|
126
184
|
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
* Batch subcommand: evaluate multiple segments from TSV file.
|
|
130
|
-
*
|
|
131
|
-
* TSV format: source<tab>hypothesis<tab>reference (one per line).
|
|
132
|
-
* Streams file with readline for memory efficiency.
|
|
133
|
-
*/
|
|
134
|
-
evaluateCommand
|
|
135
|
-
.command("batch")
|
|
136
|
-
.description("Evaluate quality from TSV file")
|
|
137
|
-
.argument("<file>", "Input TSV file (source<tab>hypothesis<tab>reference)")
|
|
138
|
-
.option("-m, --metrics <list>", "Metrics to compute (comma-separated)", DEFAULT_METRICS)
|
|
139
|
-
.action(async (file, opts) => {
|
|
185
|
+
}
|
|
186
|
+
async function evaluateBatchMode(files, opts) {
|
|
140
187
|
const startMs = Date.now();
|
|
141
|
-
log.info("Command started", {
|
|
188
|
+
log.info("Command started", {
|
|
189
|
+
command: "evaluate",
|
|
190
|
+
mode: "batch",
|
|
191
|
+
files_count: String(files.length),
|
|
192
|
+
});
|
|
142
193
|
try {
|
|
143
|
-
// Validate file exists
|
|
144
|
-
try {
|
|
145
|
-
await access(file);
|
|
146
|
-
}
|
|
147
|
-
catch {
|
|
148
|
-
failCommand(ErrorCode.CANCELLED, `${t("evaluate.file_not_found")} ${file}`);
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
194
|
const metricList = parseAndValidateMetrics(opts.metrics);
|
|
152
|
-
if (!metricList)
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
const segments = await parseTsvFile(file);
|
|
156
|
-
if (!segments) {
|
|
195
|
+
if (!metricList)
|
|
157
196
|
return;
|
|
197
|
+
for (const file of files) {
|
|
198
|
+
try {
|
|
199
|
+
await access(file);
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
failCommand(ErrorCode.CANCELLED, `${t("evaluate.file_not_found")} ${file}`);
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
const segments = await parseTsvFile(file);
|
|
206
|
+
if (!segments)
|
|
207
|
+
return;
|
|
208
|
+
const response = await getApiClient().evaluation.evaluate({
|
|
209
|
+
segments,
|
|
210
|
+
metrics: metricList,
|
|
211
|
+
aggregation: "both",
|
|
212
|
+
});
|
|
213
|
+
log.info("Command completed", {
|
|
214
|
+
command: "evaluate",
|
|
215
|
+
mode: "batch",
|
|
216
|
+
duration_ms: String(Date.now() - startMs),
|
|
217
|
+
segments: String(response.segment_count),
|
|
218
|
+
});
|
|
219
|
+
terminal.table(createEvaluationTableModel(toEvaluationResponseVM(response)));
|
|
220
|
+
terminal.info(`\n${t("evaluate.total", { count: String(response.segment_count) })}`);
|
|
158
221
|
}
|
|
159
|
-
const response = await getApiClient().evaluation.evaluate({
|
|
160
|
-
segments,
|
|
161
|
-
metrics: metricList,
|
|
162
|
-
aggregation: "both",
|
|
163
|
-
});
|
|
164
|
-
log.info("Command completed", {
|
|
165
|
-
command: "evaluate batch",
|
|
166
|
-
duration_ms: String(Date.now() - startMs),
|
|
167
|
-
segments: String(response.segment_count),
|
|
168
|
-
});
|
|
169
|
-
terminal.table(createEvaluationTableModel(toEvaluationResponseVM(response)));
|
|
170
|
-
terminal.info(`\n${t("evaluate.total", { count: String(response.segment_count) })}`);
|
|
171
222
|
}
|
|
172
223
|
catch (error) {
|
|
173
224
|
handleCommandError(log, error, {
|
|
174
|
-
command: "evaluate
|
|
225
|
+
command: "evaluate",
|
|
226
|
+
mode: "batch",
|
|
175
227
|
duration_ms: String(Date.now() - startMs),
|
|
176
228
|
});
|
|
177
229
|
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
* File subcommand: score file(s) via POST /v1/quality/score/file.
|
|
181
|
-
*
|
|
182
|
-
* Synchronous API call (no job tracking). Uploads file, receives scored file + corpus scores.
|
|
183
|
-
* Supports directories and multiple files. --formats flag shows QE-supported file formats.
|
|
184
|
-
*/
|
|
185
|
-
evaluateCommand
|
|
186
|
-
.command("file")
|
|
187
|
-
.description("Evaluate quality from file(s) or directory (CSV/TSV/TMX/XLIFF)")
|
|
188
|
-
.argument("[files...]", "Input file(s) or directory to score")
|
|
189
|
-
.option("-m, --metrics <list>", "Metrics to compute (comma-separated)", DEFAULT_METRICS)
|
|
190
|
-
.option("--out <dir>", "Output directory (default: beside input file)")
|
|
191
|
-
.option("--output-format <format>", "Output format (csv/tsv/tmx/xliff)")
|
|
192
|
-
.option("--formats", "Show supported file formats", false)
|
|
193
|
-
.action(async (files, opts) => {
|
|
194
|
-
// Early-exit: --formats shows QE-supported formats
|
|
195
|
-
if (opts.formats) {
|
|
196
|
-
await showFormats("qe");
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
if (files.length === 0) {
|
|
200
|
-
failCommand(ErrorCode.VALIDATION, t("validate.missing_argument", { name: "files" }));
|
|
201
|
-
return;
|
|
202
|
-
}
|
|
230
|
+
}
|
|
231
|
+
async function evaluateFileMode(files, opts) {
|
|
203
232
|
const metricList = parseAndValidateMetrics(opts.metrics);
|
|
204
233
|
if (!metricList)
|
|
205
234
|
return;
|
|
@@ -212,50 +241,30 @@ evaluateCommand
|
|
|
212
241
|
const outputPaths = resolveOutputPaths(resolvedFiles, "_scored", opts.out, opts.outputFormat);
|
|
213
242
|
const client = getApiClient();
|
|
214
243
|
const startMs = Date.now();
|
|
215
|
-
log.info("Command started", {
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
});
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
duration_ms: String(Date.now() - startMs),
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
// Multiple files: parallel processing, per-file score tables
|
|
239
|
-
const batchResult = await runBatch({
|
|
240
|
-
items: resolvedFiles,
|
|
241
|
-
label: (f) => basename(f),
|
|
242
|
-
process: async (filePath, index) => {
|
|
243
|
-
return client.evaluation.evaluateFile({ filePath, metrics: metricList, outputFormat: opts.outputFormat }, outputPaths[index]);
|
|
244
|
-
},
|
|
245
|
-
formatSuccess: (r) => `${t("evaluate.file.success")} ${r.filename}`,
|
|
246
|
-
command: "evaluate file",
|
|
247
|
-
});
|
|
248
|
-
// Display per-file corpus scores (no aggregate — mathematically incorrect without weights)
|
|
249
|
-
for (const { value } of batchResult.results) {
|
|
250
|
-
if (Object.keys(value.corpusScores).length > 0) {
|
|
251
|
-
terminal.dim(` ${value.filename}:`);
|
|
252
|
-
terminal.table(createEvaluationTableModel({ corpus_scores: value.corpusScores }));
|
|
253
|
-
}
|
|
244
|
+
log.info("Command started", {
|
|
245
|
+
command: "evaluate",
|
|
246
|
+
mode: "file",
|
|
247
|
+
files_count: String(resolvedFiles.length),
|
|
248
|
+
});
|
|
249
|
+
const batchResult = await runBatch({
|
|
250
|
+
items: resolvedFiles,
|
|
251
|
+
label: (f) => basename(f),
|
|
252
|
+
process: async (filePath, index) => {
|
|
253
|
+
return client.evaluation.evaluateFile({ filePath, metrics: metricList, outputFormat: opts.outputFormat }, outputPaths[index]);
|
|
254
|
+
},
|
|
255
|
+
formatSuccess: (r) => `${t("evaluate.file.success")} ${r.filename}`,
|
|
256
|
+
command: "evaluate",
|
|
257
|
+
});
|
|
258
|
+
for (const { value } of batchResult.results) {
|
|
259
|
+
if (Object.keys(value.corpusScores).length > 0) {
|
|
260
|
+
terminal.dim(` ${value.filename}:`);
|
|
261
|
+
terminal.table(createEvaluationTableModel({ corpus_scores: value.corpusScores }));
|
|
254
262
|
}
|
|
255
|
-
log.info("Command completed", {
|
|
256
|
-
command: "evaluate file",
|
|
257
|
-
duration_ms: String(Date.now() - startMs),
|
|
258
|
-
});
|
|
259
263
|
}
|
|
260
|
-
|
|
264
|
+
log.info("Command completed", {
|
|
265
|
+
command: "evaluate",
|
|
266
|
+
mode: "file",
|
|
267
|
+
duration_ms: String(Date.now() - startMs),
|
|
268
|
+
});
|
|
269
|
+
}
|
|
261
270
|
//# sourceMappingURL=evaluate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/commands/evaluate.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/commands/evaluate.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { Command } from "@commander-js/extra-typings";
|
|
|
2
2
|
/**
|
|
3
3
|
* Formats command.
|
|
4
4
|
*
|
|
5
|
-
* Calls GET /v1/
|
|
5
|
+
* Calls GET /v1/formats, displays table or JSON.
|
|
6
6
|
*/
|
|
7
7
|
export declare const formatsCommand: Command<[], {}, {}>;
|
|
8
8
|
//# sourceMappingURL=formats.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../../src/commands/formats.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../../src/commands/formats.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAWtD;;;;GAIG;AACH,eAAO,MAAM,cAAc,qBA2BvB,CAAC"}
|
package/dist/commands/formats.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// See API-486: Formats command - list supported document formats
|
|
2
|
+
// Pattern: follows healthCommand (simple GET + table/JSON output).
|
|
2
3
|
import { Command } from "@commander-js/extra-typings";
|
|
3
4
|
import { getApiClient } from "../api/client.js";
|
|
5
|
+
import { isJsonMode } from "../cli/options.js";
|
|
4
6
|
import { terminal, createFormatsTableModel } from "../output/index.js";
|
|
5
7
|
import { toFormatInfoVMList } from "./mappers.js";
|
|
6
8
|
import { t } from "../i18n/index.js";
|
|
@@ -10,7 +12,7 @@ const log = getLogger(import.meta.url);
|
|
|
10
12
|
/**
|
|
11
13
|
* Formats command.
|
|
12
14
|
*
|
|
13
|
-
* Calls GET /v1/
|
|
15
|
+
* Calls GET /v1/formats, displays table or JSON.
|
|
14
16
|
*/
|
|
15
17
|
export const formatsCommand = new Command("formats")
|
|
16
18
|
.description("List supported document formats")
|
|
@@ -23,12 +25,17 @@ export const formatsCommand = new Command("formats")
|
|
|
23
25
|
command: "formats",
|
|
24
26
|
duration_ms: String(Date.now() - startMs),
|
|
25
27
|
});
|
|
26
|
-
if (
|
|
27
|
-
terminal.
|
|
28
|
+
if (isJsonMode()) {
|
|
29
|
+
terminal.json(formats);
|
|
28
30
|
}
|
|
29
31
|
else {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
if (formats.length === 0) {
|
|
33
|
+
terminal.info(t("formats.no_formats"));
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
terminal.table(createFormatsTableModel(toFormatInfoVMList(formats)));
|
|
37
|
+
terminal.info(`\n${t("formats.total", { count: String(formats.length) })}`);
|
|
38
|
+
}
|
|
32
39
|
}
|
|
33
40
|
}
|
|
34
41
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../../src/commands/formats.ts"],"names":[],"mappings":"AAAA,iEAAiE;
|
|
1
|
+
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../../src/commands/formats.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,mEAAmE;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;SAC1C,CAAC,CAAC;QACH,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE;YAC7B,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -45,6 +45,8 @@ export interface TrackJobOptions {
|
|
|
45
45
|
silent?: boolean;
|
|
46
46
|
/** External progress callback (for aggregate display in parallel mode). */
|
|
47
47
|
onProgress?: OnProgress;
|
|
48
|
+
/** Job timeout in seconds (0 = disabled). Default: from config cli.job_timeout. */
|
|
49
|
+
timeout?: number;
|
|
48
50
|
}
|
|
49
51
|
/**
|
|
50
52
|
* Track job with SSE-first, polling fallback. Manages progress display via ProgressSink.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-tracking.d.ts","sourceRoot":"","sources":["../../src/commands/job-tracking.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAoBlD,yCAAyC;AACzC,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;CAC/F;AAID;;;GAGG;AACH,qBAAa,UAAW,YAAW,UAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;gBAEvB,MAAM,EAAE,SAAS;IAIvB,KAAK,CACT,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;CAkC7B;AAID;;;GAGG;AACH,qBAAa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,MAAM,EAAE,SAAS,EAAE,YAAY,GAAE,MAA8B;IAKrE,KAAK,CACT,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"job-tracking.d.ts","sourceRoot":"","sources":["../../src/commands/job-tracking.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAoBlD,yCAAyC;AACzC,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;CAC/F;AAID;;;GAGG;AACH,qBAAa,UAAW,YAAW,UAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;gBAEvB,MAAM,EAAE,SAAS;IAIvB,KAAK,CACT,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;CAkC7B;AAID;;;GAGG;AACH,qBAAa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,MAAM,EAAE,SAAS,EAAE,YAAY,GAAE,MAA8B;IAKrE,KAAK,CACT,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;CAgE7B;AAID,qCAAqC;AACrC,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IACtC,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAoGjB"}
|