@semiont/cli 0.2.34-build.88 → 0.2.34-build.90
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.mjs +112 -130
- package/package.json +3 -3
package/dist/cli.mjs
CHANGED
|
@@ -15344,18 +15344,18 @@ var init_state_manager = __esm({
|
|
|
15344
15344
|
// src/core/io/network-utils.ts
|
|
15345
15345
|
import * as net from "net";
|
|
15346
15346
|
async function isPortInUse(port) {
|
|
15347
|
-
return new Promise((
|
|
15347
|
+
return new Promise((resolve3) => {
|
|
15348
15348
|
const server = net.createServer();
|
|
15349
15349
|
server.once("error", (err) => {
|
|
15350
15350
|
if (err.code === "EADDRINUSE") {
|
|
15351
|
-
|
|
15351
|
+
resolve3(true);
|
|
15352
15352
|
} else {
|
|
15353
|
-
|
|
15353
|
+
resolve3(false);
|
|
15354
15354
|
}
|
|
15355
15355
|
});
|
|
15356
15356
|
server.once("listening", () => {
|
|
15357
15357
|
server.close();
|
|
15358
|
-
|
|
15358
|
+
resolve3(false);
|
|
15359
15359
|
});
|
|
15360
15360
|
server.listen(port);
|
|
15361
15361
|
});
|
|
@@ -15817,7 +15817,8 @@ var init_backend_paths = __esm({
|
|
|
15817
15817
|
|
|
15818
15818
|
// src/platforms/posix/handlers/backend-check.ts
|
|
15819
15819
|
import * as fs9 from "fs";
|
|
15820
|
-
import {
|
|
15820
|
+
import { baseUrl } from "@semiont/core";
|
|
15821
|
+
import { SemiontApiClient } from "@semiont/api-client";
|
|
15821
15822
|
var checkBackendService, backendCheckDescriptor;
|
|
15822
15823
|
var init_backend_check = __esm({
|
|
15823
15824
|
"src/platforms/posix/handlers/backend-check.ts"() {
|
|
@@ -16266,7 +16267,7 @@ var init_database_start = __esm({
|
|
|
16266
16267
|
// Use path for data directory
|
|
16267
16268
|
}
|
|
16268
16269
|
};
|
|
16269
|
-
await new Promise((
|
|
16270
|
+
await new Promise((resolve3) => setTimeout(resolve3, 2e3));
|
|
16270
16271
|
return {
|
|
16271
16272
|
success: true,
|
|
16272
16273
|
endpoint,
|
|
@@ -16583,7 +16584,7 @@ async function startJanusGraph(context) {
|
|
|
16583
16584
|
let ready = false;
|
|
16584
16585
|
const maxAttempts = 30;
|
|
16585
16586
|
for (let i = 0; i < maxAttempts; i++) {
|
|
16586
|
-
await new Promise((
|
|
16587
|
+
await new Promise((resolve3) => setTimeout(resolve3, 2e3));
|
|
16587
16588
|
try {
|
|
16588
16589
|
const { execSync: execSync38 } = await import("child_process");
|
|
16589
16590
|
execSync38(`${gremlinShellScript} -e "g.V().count()"`, {
|
|
@@ -16794,7 +16795,7 @@ var init_backend_start = __esm({
|
|
|
16794
16795
|
appLogStream.end();
|
|
16795
16796
|
errorLogStream.end();
|
|
16796
16797
|
proc.unref();
|
|
16797
|
-
await new Promise((
|
|
16798
|
+
await new Promise((resolve3) => setTimeout(resolve3, 2e3));
|
|
16798
16799
|
try {
|
|
16799
16800
|
process.kill(proc.pid, 0);
|
|
16800
16801
|
} catch {
|
|
@@ -16989,7 +16990,7 @@ var init_frontend_start = __esm({
|
|
|
16989
16990
|
appLogStream.end();
|
|
16990
16991
|
errorLogStream.end();
|
|
16991
16992
|
proc.unref();
|
|
16992
|
-
await new Promise((
|
|
16993
|
+
await new Promise((resolve3) => setTimeout(resolve3, 2e3));
|
|
16993
16994
|
try {
|
|
16994
16995
|
process.kill(proc.pid, 0);
|
|
16995
16996
|
} catch {
|
|
@@ -17107,7 +17108,7 @@ var init_mcp_provision = __esm({
|
|
|
17107
17108
|
if (!service.quiet) {
|
|
17108
17109
|
printInfo("\u{1F510} Setting up MCP authentication...");
|
|
17109
17110
|
}
|
|
17110
|
-
return new Promise((
|
|
17111
|
+
return new Promise((resolve3, _reject) => {
|
|
17111
17112
|
let timeoutId;
|
|
17112
17113
|
const connections = /* @__PURE__ */ new Set();
|
|
17113
17114
|
const server = http.createServer((req, res) => {
|
|
@@ -17154,7 +17155,7 @@ var init_mcp_provision = __esm({
|
|
|
17154
17155
|
}
|
|
17155
17156
|
}, null, 2));
|
|
17156
17157
|
}
|
|
17157
|
-
|
|
17158
|
+
resolve3({
|
|
17158
17159
|
success: true,
|
|
17159
17160
|
metadata: {
|
|
17160
17161
|
serviceType: "mcp",
|
|
@@ -17164,7 +17165,7 @@ var init_mcp_provision = __esm({
|
|
|
17164
17165
|
}
|
|
17165
17166
|
});
|
|
17166
17167
|
} else {
|
|
17167
|
-
|
|
17168
|
+
resolve3({
|
|
17168
17169
|
success: false,
|
|
17169
17170
|
error: "No token received from authentication",
|
|
17170
17171
|
metadata: {
|
|
@@ -17206,7 +17207,7 @@ var init_mcp_provision = __esm({
|
|
|
17206
17207
|
timeoutId = setTimeout(() => {
|
|
17207
17208
|
connections.forEach((conn) => conn.destroy());
|
|
17208
17209
|
server.close();
|
|
17209
|
-
|
|
17210
|
+
resolve3({
|
|
17210
17211
|
success: false,
|
|
17211
17212
|
error: "Authentication timeout - please try again",
|
|
17212
17213
|
metadata: {
|
|
@@ -18391,7 +18392,7 @@ async function stopJanusGraph(context) {
|
|
|
18391
18392
|
const startTime = Date.now();
|
|
18392
18393
|
let processRunning = true;
|
|
18393
18394
|
while (processRunning && Date.now() - startTime < timeout) {
|
|
18394
|
-
await new Promise((
|
|
18395
|
+
await new Promise((resolve3) => setTimeout(resolve3, 1e3));
|
|
18395
18396
|
try {
|
|
18396
18397
|
process.kill(pid, 0);
|
|
18397
18398
|
} catch {
|
|
@@ -18647,14 +18648,14 @@ async function killProcessGroupAndRelated(pid, serviceType, verbose = false) {
|
|
|
18647
18648
|
}
|
|
18648
18649
|
process.kill(-pid, "SIGTERM");
|
|
18649
18650
|
killed = true;
|
|
18650
|
-
await new Promise((
|
|
18651
|
+
await new Promise((resolve3) => setTimeout(resolve3, 2e3));
|
|
18651
18652
|
try {
|
|
18652
18653
|
process.kill(pid, 0);
|
|
18653
18654
|
if (verbose) {
|
|
18654
18655
|
printWarning(`Process group didn't terminate gracefully, force killing...`);
|
|
18655
18656
|
}
|
|
18656
18657
|
process.kill(-pid, "SIGKILL");
|
|
18657
|
-
await new Promise((
|
|
18658
|
+
await new Promise((resolve3) => setTimeout(resolve3, 1e3));
|
|
18658
18659
|
} catch {
|
|
18659
18660
|
}
|
|
18660
18661
|
} catch (error46) {
|
|
@@ -18663,7 +18664,7 @@ async function killProcessGroupAndRelated(pid, serviceType, verbose = false) {
|
|
|
18663
18664
|
}
|
|
18664
18665
|
try {
|
|
18665
18666
|
process.kill(pid, "SIGTERM");
|
|
18666
|
-
await new Promise((
|
|
18667
|
+
await new Promise((resolve3) => setTimeout(resolve3, 2e3));
|
|
18667
18668
|
try {
|
|
18668
18669
|
process.kill(pid, 0);
|
|
18669
18670
|
process.kill(pid, "SIGKILL");
|
|
@@ -19403,7 +19404,8 @@ var init_platform2 = __esm({
|
|
|
19403
19404
|
|
|
19404
19405
|
// src/platforms/container/handlers/web-check.ts
|
|
19405
19406
|
import { execSync as execSync16 } from "child_process";
|
|
19406
|
-
import {
|
|
19407
|
+
import { baseUrl as baseUrl2 } from "@semiont/core";
|
|
19408
|
+
import { SemiontApiClient as SemiontApiClient2 } from "@semiont/api-client";
|
|
19407
19409
|
var checkWebContainer, webCheckDescriptor;
|
|
19408
19410
|
var init_web_check = __esm({
|
|
19409
19411
|
"src/platforms/container/handlers/web-check.ts"() {
|
|
@@ -19917,7 +19919,7 @@ async function waitForContainer(runtime, containerName) {
|
|
|
19917
19919
|
}
|
|
19918
19920
|
} catch {
|
|
19919
19921
|
}
|
|
19920
|
-
await new Promise((
|
|
19922
|
+
await new Promise((resolve3) => setTimeout(resolve3, 1e3));
|
|
19921
19923
|
attempts++;
|
|
19922
19924
|
}
|
|
19923
19925
|
throw new Error(`Container ${containerName} failed to start within ${maxAttempts} seconds`);
|
|
@@ -20017,7 +20019,7 @@ import { execSync as execSync20 } from "child_process";
|
|
|
20017
20019
|
async function waitForDatabase(runtime, containerName, image, quiet, dbUser, verbose) {
|
|
20018
20020
|
const maxAttempts = 15;
|
|
20019
20021
|
let attempts = 0;
|
|
20020
|
-
await new Promise((
|
|
20022
|
+
await new Promise((resolve3) => setTimeout(resolve3, 2e3));
|
|
20021
20023
|
const skipHealthCheck = process.env.SKIP_DB_HEALTH_CHECK === "true";
|
|
20022
20024
|
if (skipHealthCheck) {
|
|
20023
20025
|
try {
|
|
@@ -20026,7 +20028,7 @@ async function waitForDatabase(runtime, containerName, image, quiet, dbUser, ver
|
|
|
20026
20028
|
{ encoding: "utf-8", timeout: 5e3 }
|
|
20027
20029
|
).trim();
|
|
20028
20030
|
if (status === "running") {
|
|
20029
|
-
await new Promise((
|
|
20031
|
+
await new Promise((resolve3) => setTimeout(resolve3, 3e3));
|
|
20030
20032
|
return;
|
|
20031
20033
|
}
|
|
20032
20034
|
} catch {
|
|
@@ -20058,7 +20060,7 @@ async function waitForDatabase(runtime, containerName, image, quiet, dbUser, ver
|
|
|
20058
20060
|
stdio: verbose ? "inherit" : "ignore",
|
|
20059
20061
|
timeout: 5e3
|
|
20060
20062
|
});
|
|
20061
|
-
await new Promise((
|
|
20063
|
+
await new Promise((resolve3) => setTimeout(resolve3, 1e3));
|
|
20062
20064
|
if (verbose) {
|
|
20063
20065
|
printInfo(`PostgreSQL is ready`);
|
|
20064
20066
|
}
|
|
@@ -20087,7 +20089,7 @@ async function waitForDatabase(runtime, containerName, image, quiet, dbUser, ver
|
|
|
20087
20089
|
} catch {
|
|
20088
20090
|
}
|
|
20089
20091
|
} else {
|
|
20090
|
-
await new Promise((
|
|
20092
|
+
await new Promise((resolve3) => setTimeout(resolve3, 3e3));
|
|
20091
20093
|
return;
|
|
20092
20094
|
}
|
|
20093
20095
|
}
|
|
@@ -20096,7 +20098,7 @@ async function waitForDatabase(runtime, containerName, image, quiet, dbUser, ver
|
|
|
20096
20098
|
printInfo(`Waiting for database to be ready... (${attempts + 1}/${maxAttempts})`);
|
|
20097
20099
|
}
|
|
20098
20100
|
}
|
|
20099
|
-
await new Promise((
|
|
20101
|
+
await new Promise((resolve3) => setTimeout(resolve3, 1e3));
|
|
20100
20102
|
attempts++;
|
|
20101
20103
|
}
|
|
20102
20104
|
printWarning(`Database container ${containerName} is taking longer than expected to start`);
|
|
@@ -20265,14 +20267,14 @@ async function startJanusGraph2(context) {
|
|
|
20265
20267
|
stdio: "pipe"
|
|
20266
20268
|
});
|
|
20267
20269
|
if (logs.includes("Channel started") || logs.includes("Started") || i >= 5) {
|
|
20268
|
-
await new Promise((
|
|
20270
|
+
await new Promise((resolve3) => setTimeout(resolve3, 3e3));
|
|
20269
20271
|
ready = true;
|
|
20270
20272
|
break;
|
|
20271
20273
|
}
|
|
20272
20274
|
}
|
|
20273
20275
|
} catch {
|
|
20274
20276
|
}
|
|
20275
|
-
await new Promise((
|
|
20277
|
+
await new Promise((resolve3) => setTimeout(resolve3, 3e3));
|
|
20276
20278
|
if (!service.quiet && i > 0 && i % 5 === 0) {
|
|
20277
20279
|
printInfo(`Still waiting... (${i * 3}s elapsed)`);
|
|
20278
20280
|
}
|
|
@@ -20474,7 +20476,7 @@ var init_database_provision = __esm({
|
|
|
20474
20476
|
break;
|
|
20475
20477
|
}
|
|
20476
20478
|
} catch {
|
|
20477
|
-
await new Promise((
|
|
20479
|
+
await new Promise((resolve3) => setTimeout(resolve3, 1e3));
|
|
20478
20480
|
attempts++;
|
|
20479
20481
|
}
|
|
20480
20482
|
}
|
|
@@ -23594,7 +23596,7 @@ var init_database_stop = __esm({
|
|
|
23594
23596
|
if (currentStatus === "exited" || currentStatus === "stopped") {
|
|
23595
23597
|
stopped = true;
|
|
23596
23598
|
} else {
|
|
23597
|
-
await new Promise((
|
|
23599
|
+
await new Promise((resolve3) => setTimeout(resolve3, 1e3));
|
|
23598
23600
|
attempts++;
|
|
23599
23601
|
}
|
|
23600
23602
|
} catch {
|
|
@@ -23957,7 +23959,7 @@ var init_proxy_start = __esm({
|
|
|
23957
23959
|
if (!service.quiet) {
|
|
23958
23960
|
printInfo("Waiting for proxy to become healthy...");
|
|
23959
23961
|
}
|
|
23960
|
-
await new Promise((
|
|
23962
|
+
await new Promise((resolve3) => setTimeout(resolve3, 2e3));
|
|
23961
23963
|
const isRunning = execSync27(`docker ps -q -f id=${containerId}`, { encoding: "utf-8" }).trim();
|
|
23962
23964
|
if (!isRunning) {
|
|
23963
23965
|
const logs = execSync27(`docker logs ${containerId} 2>&1`, { encoding: "utf-8" });
|
|
@@ -26281,7 +26283,7 @@ Waiting for ${otherActiveDeployments.length} old deployment(s) to complete drain
|
|
|
26281
26283
|
if (taskDetails.new.running > 0) {
|
|
26282
26284
|
consecutiveFailures = 0;
|
|
26283
26285
|
}
|
|
26284
|
-
await new Promise((
|
|
26286
|
+
await new Promise((resolve3) => setTimeout(resolve3, checkInterval));
|
|
26285
26287
|
} catch (error46) {
|
|
26286
26288
|
if (error46 instanceof Error && error46.message.includes("Deployment")) {
|
|
26287
26289
|
if (!verbose) {
|
|
@@ -27034,20 +27036,20 @@ var init_database_check3 = __esm({
|
|
|
27034
27036
|
const host = serviceConfig.host;
|
|
27035
27037
|
const port = serviceConfig.port;
|
|
27036
27038
|
try {
|
|
27037
|
-
const isReachable = await new Promise((
|
|
27039
|
+
const isReachable = await new Promise((resolve3) => {
|
|
27038
27040
|
const socket = new net2.Socket();
|
|
27039
27041
|
socket.setTimeout(5e3);
|
|
27040
27042
|
socket.once("connect", () => {
|
|
27041
27043
|
socket.destroy();
|
|
27042
|
-
|
|
27044
|
+
resolve3(true);
|
|
27043
27045
|
});
|
|
27044
27046
|
socket.once("error", () => {
|
|
27045
27047
|
socket.destroy();
|
|
27046
|
-
|
|
27048
|
+
resolve3(false);
|
|
27047
27049
|
});
|
|
27048
27050
|
socket.once("timeout", () => {
|
|
27049
27051
|
socket.destroy();
|
|
27050
|
-
|
|
27052
|
+
resolve3(false);
|
|
27051
27053
|
});
|
|
27052
27054
|
socket.connect(port, host);
|
|
27053
27055
|
});
|
|
@@ -27117,20 +27119,20 @@ var init_database_check3 = __esm({
|
|
|
27117
27119
|
const host = serviceConfig.host;
|
|
27118
27120
|
const port = serviceConfig.port;
|
|
27119
27121
|
try {
|
|
27120
|
-
const isReachable = await new Promise((
|
|
27122
|
+
const isReachable = await new Promise((resolve3) => {
|
|
27121
27123
|
const socket = new net2.Socket();
|
|
27122
27124
|
socket.setTimeout(5e3);
|
|
27123
27125
|
socket.once("connect", () => {
|
|
27124
27126
|
socket.destroy();
|
|
27125
|
-
|
|
27127
|
+
resolve3(true);
|
|
27126
27128
|
});
|
|
27127
27129
|
socket.once("error", () => {
|
|
27128
27130
|
socket.destroy();
|
|
27129
|
-
|
|
27131
|
+
resolve3(false);
|
|
27130
27132
|
});
|
|
27131
27133
|
socket.once("timeout", () => {
|
|
27132
27134
|
socket.destroy();
|
|
27133
|
-
|
|
27135
|
+
resolve3(false);
|
|
27134
27136
|
});
|
|
27135
27137
|
socket.connect(port, host);
|
|
27136
27138
|
});
|
|
@@ -27576,7 +27578,7 @@ var init_values = __esm({
|
|
|
27576
27578
|
var sleep;
|
|
27577
27579
|
var init_sleep = __esm({
|
|
27578
27580
|
"../../node_modules/@anthropic-ai/sdk/internal/utils/sleep.mjs"() {
|
|
27579
|
-
sleep = (ms) => new Promise((
|
|
27581
|
+
sleep = (ms) => new Promise((resolve3) => setTimeout(resolve3, ms));
|
|
27580
27582
|
}
|
|
27581
27583
|
});
|
|
27582
27584
|
|
|
@@ -28330,8 +28332,8 @@ var init_api_promise = __esm({
|
|
|
28330
28332
|
init_parse3();
|
|
28331
28333
|
APIPromise = class _APIPromise extends Promise {
|
|
28332
28334
|
constructor(client, responsePromise, parseResponse2 = defaultParseResponse) {
|
|
28333
|
-
super((
|
|
28334
|
-
|
|
28335
|
+
super((resolve3) => {
|
|
28336
|
+
resolve3(null);
|
|
28335
28337
|
});
|
|
28336
28338
|
this.responsePromise = responsePromise;
|
|
28337
28339
|
this.parseResponse = parseResponse2;
|
|
@@ -29527,12 +29529,12 @@ var init_BetaMessageStream = __esm({
|
|
|
29527
29529
|
}
|
|
29528
29530
|
return this._emit("error", new AnthropicError(String(error46)));
|
|
29529
29531
|
});
|
|
29530
|
-
__classPrivateFieldSet(this, _BetaMessageStream_connectedPromise, new Promise((
|
|
29531
|
-
__classPrivateFieldSet(this, _BetaMessageStream_resolveConnectedPromise,
|
|
29532
|
+
__classPrivateFieldSet(this, _BetaMessageStream_connectedPromise, new Promise((resolve3, reject) => {
|
|
29533
|
+
__classPrivateFieldSet(this, _BetaMessageStream_resolveConnectedPromise, resolve3, "f");
|
|
29532
29534
|
__classPrivateFieldSet(this, _BetaMessageStream_rejectConnectedPromise, reject, "f");
|
|
29533
29535
|
}), "f");
|
|
29534
|
-
__classPrivateFieldSet(this, _BetaMessageStream_endPromise, new Promise((
|
|
29535
|
-
__classPrivateFieldSet(this, _BetaMessageStream_resolveEndPromise,
|
|
29536
|
+
__classPrivateFieldSet(this, _BetaMessageStream_endPromise, new Promise((resolve3, reject) => {
|
|
29537
|
+
__classPrivateFieldSet(this, _BetaMessageStream_resolveEndPromise, resolve3, "f");
|
|
29536
29538
|
__classPrivateFieldSet(this, _BetaMessageStream_rejectEndPromise, reject, "f");
|
|
29537
29539
|
}), "f");
|
|
29538
29540
|
__classPrivateFieldGet(this, _BetaMessageStream_connectedPromise, "f").catch(() => {
|
|
@@ -29698,11 +29700,11 @@ var init_BetaMessageStream = __esm({
|
|
|
29698
29700
|
* const message = await stream.emitted('message') // rejects if the stream errors
|
|
29699
29701
|
*/
|
|
29700
29702
|
emitted(event) {
|
|
29701
|
-
return new Promise((
|
|
29703
|
+
return new Promise((resolve3, reject) => {
|
|
29702
29704
|
__classPrivateFieldSet(this, _BetaMessageStream_catchingPromiseCreated, true, "f");
|
|
29703
29705
|
if (event !== "error")
|
|
29704
29706
|
this.once("error", reject);
|
|
29705
|
-
this.once(event,
|
|
29707
|
+
this.once(event, resolve3);
|
|
29706
29708
|
});
|
|
29707
29709
|
}
|
|
29708
29710
|
async done() {
|
|
@@ -30025,7 +30027,7 @@ var init_BetaMessageStream = __esm({
|
|
|
30025
30027
|
if (done) {
|
|
30026
30028
|
return { value: void 0, done: true };
|
|
30027
30029
|
}
|
|
30028
|
-
return new Promise((
|
|
30030
|
+
return new Promise((resolve3, reject) => readQueue.push({ resolve: resolve3, reject })).then((chunk2) => chunk2 ? { value: chunk2, done: false } : { value: void 0, done: true });
|
|
30029
30031
|
}
|
|
30030
30032
|
const chunk = pushQueue.shift();
|
|
30031
30033
|
return { value: chunk, done: false };
|
|
@@ -30063,13 +30065,13 @@ var init_constants = __esm({
|
|
|
30063
30065
|
|
|
30064
30066
|
// ../../node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.mjs
|
|
30065
30067
|
function promiseWithResolvers() {
|
|
30066
|
-
let
|
|
30068
|
+
let resolve3;
|
|
30067
30069
|
let reject;
|
|
30068
30070
|
const promise2 = new Promise((res, rej) => {
|
|
30069
|
-
|
|
30071
|
+
resolve3 = res;
|
|
30070
30072
|
reject = rej;
|
|
30071
30073
|
});
|
|
30072
|
-
return { promise: promise2, resolve:
|
|
30074
|
+
return { promise: promise2, resolve: resolve3, reject };
|
|
30073
30075
|
}
|
|
30074
30076
|
async function generateToolResponse(params, lastMessage = params.messages.at(-1)) {
|
|
30075
30077
|
if (!lastMessage || lastMessage.role !== "assistant" || !lastMessage.content || typeof lastMessage.content === "string") {
|
|
@@ -30523,12 +30525,12 @@ var init_MessageStream = __esm({
|
|
|
30523
30525
|
}
|
|
30524
30526
|
return this._emit("error", new AnthropicError(String(error46)));
|
|
30525
30527
|
});
|
|
30526
|
-
__classPrivateFieldSet(this, _MessageStream_connectedPromise, new Promise((
|
|
30527
|
-
__classPrivateFieldSet(this, _MessageStream_resolveConnectedPromise,
|
|
30528
|
+
__classPrivateFieldSet(this, _MessageStream_connectedPromise, new Promise((resolve3, reject) => {
|
|
30529
|
+
__classPrivateFieldSet(this, _MessageStream_resolveConnectedPromise, resolve3, "f");
|
|
30528
30530
|
__classPrivateFieldSet(this, _MessageStream_rejectConnectedPromise, reject, "f");
|
|
30529
30531
|
}), "f");
|
|
30530
|
-
__classPrivateFieldSet(this, _MessageStream_endPromise, new Promise((
|
|
30531
|
-
__classPrivateFieldSet(this, _MessageStream_resolveEndPromise,
|
|
30532
|
+
__classPrivateFieldSet(this, _MessageStream_endPromise, new Promise((resolve3, reject) => {
|
|
30533
|
+
__classPrivateFieldSet(this, _MessageStream_resolveEndPromise, resolve3, "f");
|
|
30532
30534
|
__classPrivateFieldSet(this, _MessageStream_rejectEndPromise, reject, "f");
|
|
30533
30535
|
}), "f");
|
|
30534
30536
|
__classPrivateFieldGet(this, _MessageStream_connectedPromise, "f").catch(() => {
|
|
@@ -30694,11 +30696,11 @@ var init_MessageStream = __esm({
|
|
|
30694
30696
|
* const message = await stream.emitted('message') // rejects if the stream errors
|
|
30695
30697
|
*/
|
|
30696
30698
|
emitted(event) {
|
|
30697
|
-
return new Promise((
|
|
30699
|
+
return new Promise((resolve3, reject) => {
|
|
30698
30700
|
__classPrivateFieldSet(this, _MessageStream_catchingPromiseCreated, true, "f");
|
|
30699
30701
|
if (event !== "error")
|
|
30700
30702
|
this.once("error", reject);
|
|
30701
|
-
this.once(event,
|
|
30703
|
+
this.once(event, resolve3);
|
|
30702
30704
|
});
|
|
30703
30705
|
}
|
|
30704
30706
|
async done() {
|
|
@@ -31015,7 +31017,7 @@ var init_MessageStream = __esm({
|
|
|
31015
31017
|
if (done) {
|
|
31016
31018
|
return { value: void 0, done: true };
|
|
31017
31019
|
}
|
|
31018
|
-
return new Promise((
|
|
31020
|
+
return new Promise((resolve3, reject) => readQueue.push({ resolve: resolve3, reject })).then((chunk2) => chunk2 ? { value: chunk2, done: false } : { value: void 0, done: true });
|
|
31019
31021
|
}
|
|
31020
31022
|
const chunk = pushQueue.shift();
|
|
31021
31023
|
return { value: chunk, done: false };
|
|
@@ -32080,7 +32082,7 @@ var init_values2 = __esm({
|
|
|
32080
32082
|
var sleep2;
|
|
32081
32083
|
var init_sleep2 = __esm({
|
|
32082
32084
|
"../../node_modules/openai/internal/utils/sleep.mjs"() {
|
|
32083
|
-
sleep2 = (ms) => new Promise((
|
|
32085
|
+
sleep2 = (ms) => new Promise((resolve3) => setTimeout(resolve3, ms));
|
|
32084
32086
|
}
|
|
32085
32087
|
});
|
|
32086
32088
|
|
|
@@ -33235,8 +33237,8 @@ var init_api_promise2 = __esm({
|
|
|
33235
33237
|
init_parse4();
|
|
33236
33238
|
APIPromise2 = class _APIPromise extends Promise {
|
|
33237
33239
|
constructor(client, responsePromise, parseResponse2 = defaultParseResponse2) {
|
|
33238
|
-
super((
|
|
33239
|
-
|
|
33240
|
+
super((resolve3) => {
|
|
33241
|
+
resolve3(null);
|
|
33240
33242
|
});
|
|
33241
33243
|
this.responsePromise = responsePromise;
|
|
33242
33244
|
this.parseResponse = parseResponse2;
|
|
@@ -33839,12 +33841,12 @@ var init_EventStream = __esm({
|
|
|
33839
33841
|
_EventStream_errored.set(this, false);
|
|
33840
33842
|
_EventStream_aborted.set(this, false);
|
|
33841
33843
|
_EventStream_catchingPromiseCreated.set(this, false);
|
|
33842
|
-
__classPrivateFieldSet2(this, _EventStream_connectedPromise, new Promise((
|
|
33843
|
-
__classPrivateFieldSet2(this, _EventStream_resolveConnectedPromise,
|
|
33844
|
+
__classPrivateFieldSet2(this, _EventStream_connectedPromise, new Promise((resolve3, reject) => {
|
|
33845
|
+
__classPrivateFieldSet2(this, _EventStream_resolveConnectedPromise, resolve3, "f");
|
|
33844
33846
|
__classPrivateFieldSet2(this, _EventStream_rejectConnectedPromise, reject, "f");
|
|
33845
33847
|
}), "f");
|
|
33846
|
-
__classPrivateFieldSet2(this, _EventStream_endPromise, new Promise((
|
|
33847
|
-
__classPrivateFieldSet2(this, _EventStream_resolveEndPromise,
|
|
33848
|
+
__classPrivateFieldSet2(this, _EventStream_endPromise, new Promise((resolve3, reject) => {
|
|
33849
|
+
__classPrivateFieldSet2(this, _EventStream_resolveEndPromise, resolve3, "f");
|
|
33848
33850
|
__classPrivateFieldSet2(this, _EventStream_rejectEndPromise, reject, "f");
|
|
33849
33851
|
}), "f");
|
|
33850
33852
|
__classPrivateFieldGet2(this, _EventStream_connectedPromise, "f").catch(() => {
|
|
@@ -33928,11 +33930,11 @@ var init_EventStream = __esm({
|
|
|
33928
33930
|
* const message = await stream.emitted('message') // rejects if the stream errors
|
|
33929
33931
|
*/
|
|
33930
33932
|
emitted(event) {
|
|
33931
|
-
return new Promise((
|
|
33933
|
+
return new Promise((resolve3, reject) => {
|
|
33932
33934
|
__classPrivateFieldSet2(this, _EventStream_catchingPromiseCreated, true, "f");
|
|
33933
33935
|
if (event !== "error")
|
|
33934
33936
|
this.once("error", reject);
|
|
33935
|
-
this.once(event,
|
|
33937
|
+
this.once(event, resolve3);
|
|
33936
33938
|
});
|
|
33937
33939
|
}
|
|
33938
33940
|
async done() {
|
|
@@ -34989,7 +34991,7 @@ var init_ChatCompletionStream = __esm({
|
|
|
34989
34991
|
if (done) {
|
|
34990
34992
|
return { value: void 0, done: true };
|
|
34991
34993
|
}
|
|
34992
|
-
return new Promise((
|
|
34994
|
+
return new Promise((resolve3, reject) => readQueue.push({ resolve: resolve3, reject })).then((chunk2) => chunk2 ? { value: chunk2, done: false } : { value: void 0, done: true });
|
|
34993
34995
|
}
|
|
34994
34996
|
const chunk = pushQueue.shift();
|
|
34995
34997
|
return { value: chunk, done: false };
|
|
@@ -35797,7 +35799,7 @@ var init_AssistantStream = __esm({
|
|
|
35797
35799
|
if (done) {
|
|
35798
35800
|
return { value: void 0, done: true };
|
|
35799
35801
|
}
|
|
35800
|
-
return new Promise((
|
|
35802
|
+
return new Promise((resolve3, reject) => readQueue.push({ resolve: resolve3, reject })).then((chunk2) => chunk2 ? { value: chunk2, done: false } : { value: void 0, done: true });
|
|
35801
35803
|
}
|
|
35802
35804
|
const chunk = pushQueue.shift();
|
|
35803
35805
|
return { value: chunk, done: false };
|
|
@@ -37903,7 +37905,7 @@ var init_ResponseStream = __esm({
|
|
|
37903
37905
|
if (done) {
|
|
37904
37906
|
return { value: void 0, done: true };
|
|
37905
37907
|
}
|
|
37906
|
-
return new Promise((
|
|
37908
|
+
return new Promise((resolve3, reject) => readQueue.push({ resolve: resolve3, reject })).then((event2) => event2 ? { value: event2, done: false } : { value: void 0, done: true });
|
|
37907
37909
|
}
|
|
37908
37910
|
const event = pushQueue.shift();
|
|
37909
37911
|
return { value: event, done: false };
|
|
@@ -39561,7 +39563,7 @@ var init_default_start = __esm({
|
|
|
39561
39563
|
printInfo(`[MOCK] Starting service: ${service.name}`);
|
|
39562
39564
|
}
|
|
39563
39565
|
const startupDelay = mockData?.startupDelay || 100;
|
|
39564
|
-
await new Promise((
|
|
39566
|
+
await new Promise((resolve3) => setTimeout(resolve3, startupDelay));
|
|
39565
39567
|
if (mockData?.simulateFailure) {
|
|
39566
39568
|
return {
|
|
39567
39569
|
success: false,
|
|
@@ -39815,7 +39817,7 @@ __export(config_loader_exports, {
|
|
|
39815
39817
|
});
|
|
39816
39818
|
import * as fs35 from "fs";
|
|
39817
39819
|
import * as path33 from "path";
|
|
39818
|
-
import {
|
|
39820
|
+
import { createConfigLoader, listEnvironmentNames, ConfigurationError } from "@semiont/core";
|
|
39819
39821
|
function findProjectRoot() {
|
|
39820
39822
|
const root = process.env.SEMIONT_ROOT;
|
|
39821
39823
|
if (!root) {
|
|
@@ -39843,20 +39845,6 @@ function findProjectRoot() {
|
|
|
39843
39845
|
}
|
|
39844
39846
|
return root;
|
|
39845
39847
|
}
|
|
39846
|
-
function loadEnvironmentConfig(projectRoot, environment) {
|
|
39847
|
-
const baseConfigPath = path33.join(projectRoot, "semiont.json");
|
|
39848
|
-
const baseContent = fs35.existsSync(baseConfigPath) ? fs35.readFileSync(baseConfigPath, "utf-8") : null;
|
|
39849
|
-
const envPath = path33.join(projectRoot, "environments", `${environment}.json`);
|
|
39850
|
-
if (!fs35.existsSync(envPath)) {
|
|
39851
|
-
throw new ConfigurationError(
|
|
39852
|
-
`Environment configuration missing: ${envPath}`,
|
|
39853
|
-
environment,
|
|
39854
|
-
`Create the configuration file or use: semiont init`
|
|
39855
|
-
);
|
|
39856
|
-
}
|
|
39857
|
-
const envContent = fs35.readFileSync(envPath, "utf-8");
|
|
39858
|
-
return parseAndMergeConfigs(baseContent, envContent, process.env, environment, projectRoot);
|
|
39859
|
-
}
|
|
39860
39848
|
function getAvailableEnvironments() {
|
|
39861
39849
|
try {
|
|
39862
39850
|
const projectRoot = findProjectRoot();
|
|
@@ -39873,9 +39861,28 @@ function getAvailableEnvironments() {
|
|
|
39873
39861
|
function isValidEnvironment(environment) {
|
|
39874
39862
|
return getAvailableEnvironments().includes(environment);
|
|
39875
39863
|
}
|
|
39864
|
+
var nodeFileReader, loadEnvironmentConfig;
|
|
39876
39865
|
var init_config_loader = __esm({
|
|
39877
39866
|
"src/core/config-loader.ts"() {
|
|
39878
39867
|
"use strict";
|
|
39868
|
+
nodeFileReader = {
|
|
39869
|
+
readIfExists: (filePath) => {
|
|
39870
|
+
const absolutePath = path33.resolve(filePath);
|
|
39871
|
+
return fs35.existsSync(absolutePath) ? fs35.readFileSync(absolutePath, "utf-8") : null;
|
|
39872
|
+
},
|
|
39873
|
+
readRequired: (filePath) => {
|
|
39874
|
+
const absolutePath = path33.resolve(filePath);
|
|
39875
|
+
if (!fs35.existsSync(absolutePath)) {
|
|
39876
|
+
throw new ConfigurationError(
|
|
39877
|
+
`Configuration file not found: ${absolutePath}`,
|
|
39878
|
+
void 0,
|
|
39879
|
+
`Create the configuration file or use: semiont init`
|
|
39880
|
+
);
|
|
39881
|
+
}
|
|
39882
|
+
return fs35.readFileSync(absolutePath, "utf-8");
|
|
39883
|
+
}
|
|
39884
|
+
};
|
|
39885
|
+
loadEnvironmentConfig = createConfigLoader(nodeFileReader);
|
|
39879
39886
|
}
|
|
39880
39887
|
});
|
|
39881
39888
|
|
|
@@ -40898,7 +40905,7 @@ var init_web_dashboard_server = __esm({
|
|
|
40898
40905
|
}
|
|
40899
40906
|
}
|
|
40900
40907
|
async start() {
|
|
40901
|
-
return new Promise((
|
|
40908
|
+
return new Promise((resolve3) => {
|
|
40902
40909
|
this.server.listen(this.port, () => {
|
|
40903
40910
|
console.log(`
|
|
40904
40911
|
\u{1F310} Web dashboard running at http://localhost:${this.port}`);
|
|
@@ -40907,7 +40914,7 @@ var init_web_dashboard_server = __esm({
|
|
|
40907
40914
|
console.log(`
|
|
40908
40915
|
Press Ctrl+C to stop
|
|
40909
40916
|
`);
|
|
40910
|
-
|
|
40917
|
+
resolve3();
|
|
40911
40918
|
});
|
|
40912
40919
|
});
|
|
40913
40920
|
}
|
|
@@ -42086,10 +42093,10 @@ var WatchOptionsSchema = BaseOptionsSchema.extend({
|
|
|
42086
42093
|
}));
|
|
42087
42094
|
async function launchDashboard(environment, target, serviceDeployments, envConfig, interval, terminalMode = false, port = 3333) {
|
|
42088
42095
|
const startTime = Date.now();
|
|
42089
|
-
return new Promise(async (
|
|
42096
|
+
return new Promise(async (resolve3) => {
|
|
42090
42097
|
if (process.env.VITEST) {
|
|
42091
42098
|
setTimeout(() => {
|
|
42092
|
-
|
|
42099
|
+
resolve3({
|
|
42093
42100
|
duration: 100,
|
|
42094
42101
|
exitReason: "user-quit"
|
|
42095
42102
|
});
|
|
@@ -42116,7 +42123,7 @@ async function launchDashboard(environment, target, serviceDeployments, envConfi
|
|
|
42116
42123
|
);
|
|
42117
42124
|
await waitUntilExit();
|
|
42118
42125
|
const duration3 = Date.now() - startTime;
|
|
42119
|
-
|
|
42126
|
+
resolve3({
|
|
42120
42127
|
duration: duration3,
|
|
42121
42128
|
exitReason: "user-quit"
|
|
42122
42129
|
});
|
|
@@ -42136,7 +42143,7 @@ async function launchDashboard(environment, target, serviceDeployments, envConfi
|
|
|
42136
42143
|
process.on("SIGINT", () => {
|
|
42137
42144
|
server.stop();
|
|
42138
42145
|
const duration3 = Date.now() - startTime;
|
|
42139
|
-
|
|
42146
|
+
resolve3({
|
|
42140
42147
|
duration: duration3,
|
|
42141
42148
|
exitReason: "user-quit"
|
|
42142
42149
|
});
|
|
@@ -42144,7 +42151,7 @@ async function launchDashboard(environment, target, serviceDeployments, envConfi
|
|
|
42144
42151
|
process.on("SIGTERM", () => {
|
|
42145
42152
|
server.stop();
|
|
42146
42153
|
const duration3 = Date.now() - startTime;
|
|
42147
|
-
|
|
42154
|
+
resolve3({
|
|
42148
42155
|
duration: duration3,
|
|
42149
42156
|
exitReason: "user-quit"
|
|
42150
42157
|
});
|
|
@@ -42153,7 +42160,7 @@ async function launchDashboard(environment, target, serviceDeployments, envConfi
|
|
|
42153
42160
|
} catch (error46) {
|
|
42154
42161
|
console.error("Dashboard error:", error46);
|
|
42155
42162
|
const duration3 = Date.now() - startTime;
|
|
42156
|
-
|
|
42163
|
+
resolve3({
|
|
42157
42164
|
duration: duration3,
|
|
42158
42165
|
exitReason: "error"
|
|
42159
42166
|
});
|
|
@@ -42368,10 +42375,10 @@ var UseraddOptionsSchema = BaseOptionsSchema.extend({
|
|
|
42368
42375
|
function validateEmail(email3) {
|
|
42369
42376
|
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
42370
42377
|
if (!emailRegex.test(email3)) {
|
|
42371
|
-
throw new Error(`
|
|
42378
|
+
throw new Error(`invalid email format: ${email3}`);
|
|
42372
42379
|
}
|
|
42373
42380
|
if (!email3.includes("@")) {
|
|
42374
|
-
throw new Error("
|
|
42381
|
+
throw new Error("invalid email: missing @ symbol");
|
|
42375
42382
|
}
|
|
42376
42383
|
}
|
|
42377
42384
|
function validatePassword(password) {
|
|
@@ -42395,24 +42402,26 @@ async function useradd(options) {
|
|
|
42395
42402
|
try {
|
|
42396
42403
|
validateEmail(options.email);
|
|
42397
42404
|
const domain2 = extractDomain(options.email);
|
|
42405
|
+
const existingUser = await prisma.user.findUnique({
|
|
42406
|
+
where: { email: options.email }
|
|
42407
|
+
});
|
|
42398
42408
|
let password;
|
|
42409
|
+
let passwordHash;
|
|
42399
42410
|
let generatedPassword;
|
|
42400
42411
|
if (options.generatePassword) {
|
|
42401
42412
|
password = generatePassword();
|
|
42402
42413
|
generatedPassword = password;
|
|
42414
|
+
passwordHash = await bcrypt.hash(password, 12);
|
|
42403
42415
|
if (!options.quiet) {
|
|
42404
42416
|
printInfo(`Generated password: ${password}`);
|
|
42405
42417
|
}
|
|
42406
42418
|
} else if (options.password) {
|
|
42407
42419
|
password = options.password;
|
|
42408
42420
|
validatePassword(password);
|
|
42409
|
-
|
|
42421
|
+
passwordHash = await bcrypt.hash(password, 12);
|
|
42422
|
+
} else if (!existingUser) {
|
|
42410
42423
|
throw new Error("Password required: use --password or --generate-password");
|
|
42411
42424
|
}
|
|
42412
|
-
const passwordHash = await bcrypt.hash(password, 12);
|
|
42413
|
-
const existingUser = await prisma.user.findUnique({
|
|
42414
|
-
where: { email: options.email }
|
|
42415
|
-
});
|
|
42416
42425
|
let user;
|
|
42417
42426
|
if (existingUser) {
|
|
42418
42427
|
if (!options.update) {
|
|
@@ -42497,35 +42506,8 @@ async function useradd(options) {
|
|
|
42497
42506
|
duration: duration3
|
|
42498
42507
|
};
|
|
42499
42508
|
} catch (error46) {
|
|
42500
|
-
|
|
42501
|
-
|
|
42502
|
-
if (!options.quiet) {
|
|
42503
|
-
printError(`Failed to add user: ${errorMessage}`);
|
|
42504
|
-
}
|
|
42505
|
-
return {
|
|
42506
|
-
command: "useradd",
|
|
42507
|
-
environment: options.environment,
|
|
42508
|
-
timestamp: /* @__PURE__ */ new Date(),
|
|
42509
|
-
summary: {
|
|
42510
|
-
succeeded: 0,
|
|
42511
|
-
failed: 1,
|
|
42512
|
-
total: 1,
|
|
42513
|
-
warnings: 0
|
|
42514
|
-
},
|
|
42515
|
-
executionContext: {
|
|
42516
|
-
user: process.env.USER || "unknown",
|
|
42517
|
-
workingDirectory: process.cwd(),
|
|
42518
|
-
dryRun: options.dryRun
|
|
42519
|
-
},
|
|
42520
|
-
results: [{
|
|
42521
|
-
entity: options.email,
|
|
42522
|
-
platform: "posix",
|
|
42523
|
-
success: false,
|
|
42524
|
-
error: errorMessage,
|
|
42525
|
-
duration: duration3
|
|
42526
|
-
}],
|
|
42527
|
-
duration: duration3
|
|
42528
|
-
};
|
|
42509
|
+
await prisma.$disconnect();
|
|
42510
|
+
throw error46;
|
|
42529
42511
|
} finally {
|
|
42530
42512
|
await prisma.$disconnect();
|
|
42531
42513
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semiont/cli",
|
|
3
|
-
"version": "0.2.34-build.
|
|
3
|
+
"version": "0.2.34-build.90",
|
|
4
4
|
"description": "Semiont CLI - Unified environment management tool",
|
|
5
5
|
"_comment": "AWS SDK dependencies (@aws-sdk/*) are only used by platforms/aws",
|
|
6
6
|
"type": "module",
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
"@aws-sdk/client-sts": "^3.859.0",
|
|
66
66
|
"@aws-sdk/client-wafv2": "^3.859.0",
|
|
67
67
|
"@prisma/client": "^6.13.0",
|
|
68
|
-
"@semiont/api-client": "0.2.34-build.
|
|
69
|
-
"@semiont/core": "0.2.34-build.
|
|
68
|
+
"@semiont/api-client": "0.2.34-build.90",
|
|
69
|
+
"@semiont/core": "0.2.34-build.90",
|
|
70
70
|
"@testcontainers/postgresql": "^11.5.1",
|
|
71
71
|
"arg": "^5.0.2",
|
|
72
72
|
"bcrypt": "^5.1.1",
|