@jamesaphoenix/tx-cli 0.4.3
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/dist/cli-exit.d.ts +15 -0
- package/dist/cli-exit.d.ts.map +1 -0
- package/dist/cli-exit.js +18 -0
- package/dist/cli-exit.js.map +1 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +349 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/attempt.d.ts +9 -0
- package/dist/commands/attempt.d.ts.map +1 -0
- package/dist/commands/attempt.js +93 -0
- package/dist/commands/attempt.js.map +1 -0
- package/dist/commands/bulk.d.ts +8 -0
- package/dist/commands/bulk.d.ts.map +1 -0
- package/dist/commands/bulk.js +168 -0
- package/dist/commands/bulk.js.map +1 -0
- package/dist/commands/claim.d.ts +39 -0
- package/dist/commands/claim.d.ts.map +1 -0
- package/dist/commands/claim.js +96 -0
- package/dist/commands/claim.js.map +1 -0
- package/dist/commands/compact.d.ts +17 -0
- package/dist/commands/compact.d.ts.map +1 -0
- package/dist/commands/compact.js +167 -0
- package/dist/commands/compact.js.map +1 -0
- package/dist/commands/coordinator.d.ts +12 -0
- package/dist/commands/coordinator.d.ts.map +1 -0
- package/dist/commands/coordinator.js +124 -0
- package/dist/commands/coordinator.js.map +1 -0
- package/dist/commands/cycle.d.ts +12 -0
- package/dist/commands/cycle.d.ts.map +1 -0
- package/dist/commands/cycle.js +109 -0
- package/dist/commands/cycle.js.map +1 -0
- package/dist/commands/daemon.d.ts +16 -0
- package/dist/commands/daemon.d.ts.map +1 -0
- package/dist/commands/daemon.js +635 -0
- package/dist/commands/daemon.js.map +1 -0
- package/dist/commands/dashboard.d.ts +12 -0
- package/dist/commands/dashboard.d.ts.map +1 -0
- package/dist/commands/dashboard.js +105 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/dashboard.test.d.ts +2 -0
- package/dist/commands/dashboard.test.d.ts.map +1 -0
- package/dist/commands/dashboard.test.js +99 -0
- package/dist/commands/dashboard.test.js.map +1 -0
- package/dist/commands/dep.d.ts +9 -0
- package/dist/commands/dep.d.ts.map +1 -0
- package/dist/commands/dep.js +50 -0
- package/dist/commands/dep.js.map +1 -0
- package/dist/commands/doc.d.ts +10 -0
- package/dist/commands/doc.d.ts.map +1 -0
- package/dist/commands/doc.js +397 -0
- package/dist/commands/doc.js.map +1 -0
- package/dist/commands/doctor.d.ts +9 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +168 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/graph.d.ts +58 -0
- package/dist/commands/graph.d.ts.map +1 -0
- package/dist/commands/graph.js +441 -0
- package/dist/commands/graph.js.map +1 -0
- package/dist/commands/hierarchy.d.ts +9 -0
- package/dist/commands/hierarchy.d.ts.map +1 -0
- package/dist/commands/hierarchy.js +68 -0
- package/dist/commands/hierarchy.js.map +1 -0
- package/dist/commands/hooks.d.ts +56 -0
- package/dist/commands/hooks.d.ts.map +1 -0
- package/dist/commands/hooks.js +365 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/invariant.d.ts +9 -0
- package/dist/commands/invariant.d.ts.map +1 -0
- package/dist/commands/invariant.js +126 -0
- package/dist/commands/invariant.js.map +1 -0
- package/dist/commands/learning.d.ts +16 -0
- package/dist/commands/learning.d.ts.map +1 -0
- package/dist/commands/learning.js +362 -0
- package/dist/commands/learning.js.map +1 -0
- package/dist/commands/migrate.d.ts +9 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +56 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/orchestrator.d.ts +11 -0
- package/dist/commands/orchestrator.d.ts.map +1 -0
- package/dist/commands/orchestrator.js +129 -0
- package/dist/commands/orchestrator.js.map +1 -0
- package/dist/commands/stats.d.ts +8 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +128 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/sync-platform.d.ts +12 -0
- package/dist/commands/sync-platform.d.ts.map +1 -0
- package/dist/commands/sync-platform.js +74 -0
- package/dist/commands/sync-platform.js.map +1 -0
- package/dist/commands/sync.d.ts +8 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +128 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/task.d.ts +15 -0
- package/dist/commands/task.d.ts.map +1 -0
- package/dist/commands/task.js +233 -0
- package/dist/commands/task.js.map +1 -0
- package/dist/commands/test.d.ts +16 -0
- package/dist/commands/test.d.ts.map +1 -0
- package/dist/commands/test.js +112 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/commands/trace.d.ts +39 -0
- package/dist/commands/trace.d.ts.map +1 -0
- package/dist/commands/trace.js +620 -0
- package/dist/commands/trace.js.map +1 -0
- package/dist/commands/validate.d.ts +9 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +94 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/worker.d.ts +10 -0
- package/dist/commands/worker.d.ts.map +1 -0
- package/dist/commands/worker.js +204 -0
- package/dist/commands/worker.js.map +1 -0
- package/dist/help.d.ts +3 -0
- package/dist/help.d.ts.map +1 -0
- package/dist/help.js +1366 -0
- package/dist/help.js.map +1 -0
- package/dist/output.d.ts +12 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +76 -0
- package/dist/output.js.map +1 -0
- package/dist/tx +0 -0
- package/dist/utils/parse.d.ts +45 -0
- package/dist/utils/parse.d.ts.map +1 -0
- package/dist/utils/parse.js +79 -0
- package/dist/utils/parse.js.map +1 -0
- package/dist/utils/parse.test.d.ts +2 -0
- package/dist/utils/parse.test.d.ts.map +1 -0
- package/dist/utils/parse.test.js +140 -0
- package/dist/utils/parse.test.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +10 -0
- package/dist/version.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate command: Pre-flight database health checks
|
|
3
|
+
*/
|
|
4
|
+
import { Effect } from "effect";
|
|
5
|
+
import { ValidationService } from "@jamesaphoenix/tx-core";
|
|
6
|
+
import { toJson } from "../output.js";
|
|
7
|
+
function flag(flags, ...names) {
|
|
8
|
+
return names.some(n => flags[n] === true);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Format a severity level with appropriate styling.
|
|
12
|
+
*/
|
|
13
|
+
function formatSeverity(severity) {
|
|
14
|
+
switch (severity) {
|
|
15
|
+
case "error":
|
|
16
|
+
return "\u274c ERROR";
|
|
17
|
+
case "warning":
|
|
18
|
+
return "\u26a0 WARN";
|
|
19
|
+
case "info":
|
|
20
|
+
return "\u2139 INFO";
|
|
21
|
+
default:
|
|
22
|
+
return severity.toUpperCase();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Format a check result for display.
|
|
27
|
+
*/
|
|
28
|
+
function formatCheck(check) {
|
|
29
|
+
const status = check.passed ? "\u2713" : "\u2717";
|
|
30
|
+
const lines = [];
|
|
31
|
+
let summary = `${status} ${check.name}`;
|
|
32
|
+
if (check.fixed !== undefined && check.fixed > 0) {
|
|
33
|
+
summary += ` (${check.fixed} fixed)`;
|
|
34
|
+
}
|
|
35
|
+
lines.push(summary);
|
|
36
|
+
for (const issue of check.issues) {
|
|
37
|
+
lines.push(` ${formatSeverity(issue.severity)}: ${issue.message}`);
|
|
38
|
+
}
|
|
39
|
+
return lines.join("\n");
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Format the overall validation result.
|
|
43
|
+
*/
|
|
44
|
+
function formatResult(result) {
|
|
45
|
+
const lines = [];
|
|
46
|
+
// Header
|
|
47
|
+
lines.push("tx validate - Database Health Check");
|
|
48
|
+
lines.push("=".repeat(40));
|
|
49
|
+
lines.push("");
|
|
50
|
+
// Individual checks
|
|
51
|
+
for (const check of result.checks) {
|
|
52
|
+
lines.push(formatCheck(check));
|
|
53
|
+
lines.push("");
|
|
54
|
+
}
|
|
55
|
+
// Summary
|
|
56
|
+
lines.push("-".repeat(40));
|
|
57
|
+
if (result.valid) {
|
|
58
|
+
lines.push("\u2705 Database is valid");
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
lines.push("\u274c Validation failed");
|
|
62
|
+
}
|
|
63
|
+
const { error, warning, info } = result.issueCount;
|
|
64
|
+
const parts = [];
|
|
65
|
+
if (error > 0)
|
|
66
|
+
parts.push(`${error} error(s)`);
|
|
67
|
+
if (warning > 0)
|
|
68
|
+
parts.push(`${warning} warning(s)`);
|
|
69
|
+
if (info > 0)
|
|
70
|
+
parts.push(`${info} info`);
|
|
71
|
+
if (parts.length > 0) {
|
|
72
|
+
lines.push(` Issues: ${parts.join(", ")}`);
|
|
73
|
+
}
|
|
74
|
+
if (result.fixedCount > 0) {
|
|
75
|
+
lines.push(` Fixed: ${result.fixedCount} issue(s)`);
|
|
76
|
+
}
|
|
77
|
+
return lines.join("\n");
|
|
78
|
+
}
|
|
79
|
+
export const validate = (_pos, flags) => Effect.gen(function* () {
|
|
80
|
+
const svc = yield* ValidationService;
|
|
81
|
+
const fix = flag(flags, "fix");
|
|
82
|
+
const result = yield* svc.validate({ fix });
|
|
83
|
+
if (flag(flags, "json")) {
|
|
84
|
+
console.log(toJson(result));
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
console.log(formatResult(result));
|
|
88
|
+
}
|
|
89
|
+
// Exit with code 1 if validation failed (errors found)
|
|
90
|
+
if (!result.valid) {
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker commands: start, stop, status, list
|
|
3
|
+
*
|
|
4
|
+
* CLI commands for managing worker processes (PRD-018).
|
|
5
|
+
*/
|
|
6
|
+
import { Effect } from "effect";
|
|
7
|
+
import { WorkerService } from "@jamesaphoenix/tx-core";
|
|
8
|
+
import { type Flags } from "../utils/parse.js";
|
|
9
|
+
export declare const worker: (pos: string[], flags: Flags) => Effect.Effect<void, import("@jamesaphoenix/tx-core").ValidationError | import("@jamesaphoenix/tx-core").DatabaseError | import("@jamesaphoenix/tx-core").TaskNotFoundError | import("@jamesaphoenix/tx-core").StaleDataError | import("@jamesaphoenix/tx-core").RegistrationError | import("@jamesaphoenix/tx-core").WorkerNotFoundError, import("@jamesaphoenix/tx-core").TaskService | import("@jamesaphoenix/tx-core").ReadyService | import("@jamesaphoenix/tx-core").AttemptService | WorkerService | import("@jamesaphoenix/tx-core").ClaimService>;
|
|
10
|
+
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/commands/worker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,aAAa,EAA+D,MAAM,wBAAwB,CAAA;AAGnH,OAAO,EAAE,KAAK,KAAK,EAA0B,MAAM,mBAAmB,CAAA;AA8BtE,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,EAAE,OAAO,KAAK,8hBA6K9C,CAAA"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker commands: start, stop, status, list
|
|
3
|
+
*
|
|
4
|
+
* CLI commands for managing worker processes (PRD-018).
|
|
5
|
+
*/
|
|
6
|
+
import { Effect } from "effect";
|
|
7
|
+
import { WorkerService, runWorkerProcess } from "@jamesaphoenix/tx-core";
|
|
8
|
+
import { toJson } from "../output.js";
|
|
9
|
+
import { commandHelp } from "../help.js";
|
|
10
|
+
import { flag, opt, parseIntOpt } from "../utils/parse.js";
|
|
11
|
+
/**
|
|
12
|
+
* Format a worker for display.
|
|
13
|
+
*/
|
|
14
|
+
function formatWorker(w) {
|
|
15
|
+
const lines = [
|
|
16
|
+
`Worker: ${w.id}`,
|
|
17
|
+
` Name: ${w.name}`,
|
|
18
|
+
` Status: ${w.status}`,
|
|
19
|
+
` Hostname: ${w.hostname}`,
|
|
20
|
+
` PID: ${w.pid}`,
|
|
21
|
+
` Capabilities: ${w.capabilities.join(", ") || "(none)"}`,
|
|
22
|
+
];
|
|
23
|
+
if (w.currentTaskId) {
|
|
24
|
+
lines.push(` Current Task: ${w.currentTaskId}`);
|
|
25
|
+
}
|
|
26
|
+
lines.push(` Registered: ${w.registeredAt.toISOString()}`);
|
|
27
|
+
lines.push(` Last Heartbeat: ${w.lastHeartbeatAt.toISOString()}`);
|
|
28
|
+
return lines.join("\n");
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Format a worker as a single line for list display.
|
|
32
|
+
*/
|
|
33
|
+
function formatWorkerLine(w) {
|
|
34
|
+
const taskInfo = w.currentTaskId ? ` → ${w.currentTaskId}` : "";
|
|
35
|
+
return ` ${w.id} [${w.status}] ${w.name}${taskInfo}`;
|
|
36
|
+
}
|
|
37
|
+
export const worker = (pos, flags) => Effect.gen(function* () {
|
|
38
|
+
const subcommand = pos[0];
|
|
39
|
+
if (!subcommand || subcommand === "help") {
|
|
40
|
+
console.log(commandHelp["worker"]);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
// Check for --help on subcommand
|
|
44
|
+
if (flag(flags, "help", "h")) {
|
|
45
|
+
const helpKey = `worker ${subcommand}`;
|
|
46
|
+
if (commandHelp[helpKey]) {
|
|
47
|
+
console.log(commandHelp[helpKey]);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const svc = yield* WorkerService;
|
|
52
|
+
if (subcommand === "start") {
|
|
53
|
+
// Parse options
|
|
54
|
+
const name = opt(flags, "name", "n");
|
|
55
|
+
const capabilitiesOpt = opt(flags, "capabilities", "c");
|
|
56
|
+
const capabilities = capabilitiesOpt
|
|
57
|
+
? capabilitiesOpt.split(",").map(c => c.trim())
|
|
58
|
+
: ["tx-implementer"];
|
|
59
|
+
const heartbeatParsed = parseIntOpt(flags, "heartbeat", "heartbeat");
|
|
60
|
+
let heartbeatIntervalSeconds = 30;
|
|
61
|
+
if (heartbeatParsed !== undefined) {
|
|
62
|
+
if (heartbeatParsed < 1) {
|
|
63
|
+
console.error(`Invalid heartbeat value: '${heartbeatParsed}'. Must be a positive integer.`);
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
heartbeatIntervalSeconds = heartbeatParsed;
|
|
67
|
+
}
|
|
68
|
+
// Build config
|
|
69
|
+
const config = {
|
|
70
|
+
name,
|
|
71
|
+
capabilities,
|
|
72
|
+
heartbeatIntervalSeconds
|
|
73
|
+
};
|
|
74
|
+
if (flag(flags, "json")) {
|
|
75
|
+
console.log(toJson({
|
|
76
|
+
action: "starting",
|
|
77
|
+
name: name ?? "worker-<auto>",
|
|
78
|
+
capabilities,
|
|
79
|
+
heartbeatIntervalSeconds
|
|
80
|
+
}));
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
console.log("Starting worker...");
|
|
84
|
+
console.log(` Name: ${name ?? "worker-<auto>"}`);
|
|
85
|
+
console.log(` Capabilities: ${capabilities.join(", ")}`);
|
|
86
|
+
console.log(` Heartbeat interval: ${heartbeatIntervalSeconds}s`);
|
|
87
|
+
console.log("");
|
|
88
|
+
console.log("Worker will run until SIGTERM or SIGINT is received.");
|
|
89
|
+
}
|
|
90
|
+
// Run the worker process - this blocks until shutdown
|
|
91
|
+
yield* runWorkerProcess(config);
|
|
92
|
+
if (flag(flags, "json")) {
|
|
93
|
+
console.log(toJson({ action: "stopped" }));
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
console.log("Worker stopped.");
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else if (subcommand === "stop") {
|
|
100
|
+
// Worker stop is typically handled by sending SIGTERM to the worker process.
|
|
101
|
+
// Since each worker is a separate process, this command shows guidance.
|
|
102
|
+
// In a more advanced setup, we'd store worker PIDs and send signals.
|
|
103
|
+
const graceful = flag(flags, "graceful", "g");
|
|
104
|
+
if (flag(flags, "json")) {
|
|
105
|
+
console.log(toJson({
|
|
106
|
+
message: "Worker stop is signal-based",
|
|
107
|
+
instruction: "Send SIGTERM to the worker process for graceful shutdown",
|
|
108
|
+
graceful
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
console.log("Worker stop:");
|
|
113
|
+
console.log("");
|
|
114
|
+
console.log(" Workers are stopped by sending SIGTERM to the worker process.");
|
|
115
|
+
console.log(" The worker will finish its current task before exiting.");
|
|
116
|
+
console.log("");
|
|
117
|
+
console.log(" To stop a worker:");
|
|
118
|
+
console.log(" kill -SIGTERM <worker-pid>");
|
|
119
|
+
console.log("");
|
|
120
|
+
console.log(" To find worker PIDs, run:");
|
|
121
|
+
console.log(" tx worker list --json");
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else if (subcommand === "status") {
|
|
125
|
+
// Show status of a specific worker or all workers
|
|
126
|
+
const workerId = pos[1];
|
|
127
|
+
if (workerId) {
|
|
128
|
+
// Show status of a specific worker
|
|
129
|
+
const workers = yield* svc.list();
|
|
130
|
+
const worker = workers.find(w => w.id === workerId);
|
|
131
|
+
if (!worker) {
|
|
132
|
+
console.error(`Worker not found: ${workerId}`);
|
|
133
|
+
process.exit(1);
|
|
134
|
+
}
|
|
135
|
+
if (flag(flags, "json")) {
|
|
136
|
+
console.log(toJson(worker));
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
console.log(formatWorker(worker));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
// Show summary of all workers
|
|
144
|
+
const workers = yield* svc.list();
|
|
145
|
+
const byStatus = {
|
|
146
|
+
starting: workers.filter(w => w.status === "starting").length,
|
|
147
|
+
idle: workers.filter(w => w.status === "idle").length,
|
|
148
|
+
busy: workers.filter(w => w.status === "busy").length,
|
|
149
|
+
stopping: workers.filter(w => w.status === "stopping").length,
|
|
150
|
+
dead: workers.filter(w => w.status === "dead").length
|
|
151
|
+
};
|
|
152
|
+
if (flag(flags, "json")) {
|
|
153
|
+
console.log(toJson({
|
|
154
|
+
totalWorkers: workers.length,
|
|
155
|
+
byStatus
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
console.log("Worker Status Summary:");
|
|
160
|
+
console.log(` Total workers: ${workers.length}`);
|
|
161
|
+
console.log("");
|
|
162
|
+
console.log(" By status:");
|
|
163
|
+
console.log(` Starting: ${byStatus.starting}`);
|
|
164
|
+
console.log(` Idle: ${byStatus.idle}`);
|
|
165
|
+
console.log(` Busy: ${byStatus.busy}`);
|
|
166
|
+
console.log(` Stopping: ${byStatus.stopping}`);
|
|
167
|
+
console.log(` Dead: ${byStatus.dead}`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
else if (subcommand === "list") {
|
|
172
|
+
// List all workers with optional status filter
|
|
173
|
+
const statusOpt = opt(flags, "status", "s");
|
|
174
|
+
const statusFilter = statusOpt
|
|
175
|
+
? statusOpt.split(",").map(s => s.trim())
|
|
176
|
+
: undefined;
|
|
177
|
+
const allWorkers = yield* svc.list();
|
|
178
|
+
const workers = statusFilter
|
|
179
|
+
? allWorkers.filter(w => statusFilter.includes(w.status))
|
|
180
|
+
: allWorkers;
|
|
181
|
+
if (flag(flags, "json")) {
|
|
182
|
+
console.log(toJson(workers));
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
if (workers.length === 0) {
|
|
186
|
+
console.log("No workers found.");
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
console.log("Workers:");
|
|
190
|
+
for (const w of workers) {
|
|
191
|
+
console.log(formatWorkerLine(w));
|
|
192
|
+
}
|
|
193
|
+
console.log("");
|
|
194
|
+
console.log(`Total: ${workers.length} worker(s)`);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
console.error(`Unknown worker subcommand: ${subcommand}`);
|
|
200
|
+
console.error(`Run 'tx worker --help' for usage information`);
|
|
201
|
+
process.exit(1);
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/commands/worker.ts"],"names":[],"mappings":"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"}
|
package/dist/help.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS,QAoGF,CAAA;AAEpB,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4yC9C,CAAA"}
|