@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.
Files changed (2) hide show
  1. package/dist/cli.mjs +112 -130
  2. 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((resolve2) => {
15347
+ return new Promise((resolve3) => {
15348
15348
  const server = net.createServer();
15349
15349
  server.once("error", (err) => {
15350
15350
  if (err.code === "EADDRINUSE") {
15351
- resolve2(true);
15351
+ resolve3(true);
15352
15352
  } else {
15353
- resolve2(false);
15353
+ resolve3(false);
15354
15354
  }
15355
15355
  });
15356
15356
  server.once("listening", () => {
15357
15357
  server.close();
15358
- resolve2(false);
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 { SemiontApiClient, baseUrl } from "@semiont/api-client";
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((resolve2) => setTimeout(resolve2, 2e3));
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((resolve2) => setTimeout(resolve2, 2e3));
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((resolve2) => setTimeout(resolve2, 2e3));
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((resolve2) => setTimeout(resolve2, 2e3));
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((resolve2, _reject) => {
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
- resolve2({
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
- resolve2({
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
- resolve2({
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((resolve2) => setTimeout(resolve2, 1e3));
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((resolve2) => setTimeout(resolve2, 2e3));
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((resolve2) => setTimeout(resolve2, 1e3));
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((resolve2) => setTimeout(resolve2, 2e3));
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 { SemiontApiClient as SemiontApiClient2, baseUrl as baseUrl2 } from "@semiont/api-client";
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((resolve2) => setTimeout(resolve2, 1e3));
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((resolve2) => setTimeout(resolve2, 2e3));
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((resolve2) => setTimeout(resolve2, 3e3));
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((resolve2) => setTimeout(resolve2, 1e3));
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((resolve2) => setTimeout(resolve2, 3e3));
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((resolve2) => setTimeout(resolve2, 1e3));
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((resolve2) => setTimeout(resolve2, 3e3));
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((resolve2) => setTimeout(resolve2, 3e3));
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((resolve2) => setTimeout(resolve2, 1e3));
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((resolve2) => setTimeout(resolve2, 1e3));
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((resolve2) => setTimeout(resolve2, 2e3));
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((resolve2) => setTimeout(resolve2, checkInterval));
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((resolve2) => {
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
- resolve2(true);
27044
+ resolve3(true);
27043
27045
  });
27044
27046
  socket.once("error", () => {
27045
27047
  socket.destroy();
27046
- resolve2(false);
27048
+ resolve3(false);
27047
27049
  });
27048
27050
  socket.once("timeout", () => {
27049
27051
  socket.destroy();
27050
- resolve2(false);
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((resolve2) => {
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
- resolve2(true);
27127
+ resolve3(true);
27126
27128
  });
27127
27129
  socket.once("error", () => {
27128
27130
  socket.destroy();
27129
- resolve2(false);
27131
+ resolve3(false);
27130
27132
  });
27131
27133
  socket.once("timeout", () => {
27132
27134
  socket.destroy();
27133
- resolve2(false);
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((resolve2) => setTimeout(resolve2, ms));
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((resolve2) => {
28334
- resolve2(null);
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((resolve2, reject) => {
29531
- __classPrivateFieldSet(this, _BetaMessageStream_resolveConnectedPromise, resolve2, "f");
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((resolve2, reject) => {
29535
- __classPrivateFieldSet(this, _BetaMessageStream_resolveEndPromise, resolve2, "f");
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((resolve2, reject) => {
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, resolve2);
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((resolve2, reject) => readQueue.push({ resolve: resolve2, reject })).then((chunk2) => chunk2 ? { value: chunk2, done: false } : { value: void 0, done: true });
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 resolve2;
30068
+ let resolve3;
30067
30069
  let reject;
30068
30070
  const promise2 = new Promise((res, rej) => {
30069
- resolve2 = res;
30071
+ resolve3 = res;
30070
30072
  reject = rej;
30071
30073
  });
30072
- return { promise: promise2, resolve: resolve2, reject };
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((resolve2, reject) => {
30527
- __classPrivateFieldSet(this, _MessageStream_resolveConnectedPromise, resolve2, "f");
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((resolve2, reject) => {
30531
- __classPrivateFieldSet(this, _MessageStream_resolveEndPromise, resolve2, "f");
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((resolve2, reject) => {
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, resolve2);
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((resolve2, reject) => readQueue.push({ resolve: resolve2, reject })).then((chunk2) => chunk2 ? { value: chunk2, done: false } : { value: void 0, done: true });
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((resolve2) => setTimeout(resolve2, ms));
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((resolve2) => {
33239
- resolve2(null);
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((resolve2, reject) => {
33843
- __classPrivateFieldSet2(this, _EventStream_resolveConnectedPromise, resolve2, "f");
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((resolve2, reject) => {
33847
- __classPrivateFieldSet2(this, _EventStream_resolveEndPromise, resolve2, "f");
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((resolve2, reject) => {
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, resolve2);
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((resolve2, reject) => readQueue.push({ resolve: resolve2, reject })).then((chunk2) => chunk2 ? { value: chunk2, done: false } : { value: void 0, done: true });
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((resolve2, reject) => readQueue.push({ resolve: resolve2, reject })).then((chunk2) => chunk2 ? { value: chunk2, done: false } : { value: void 0, done: true });
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((resolve2, reject) => readQueue.push({ resolve: resolve2, reject })).then((event2) => event2 ? { value: event2, done: false } : { value: void 0, done: true });
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((resolve2) => setTimeout(resolve2, startupDelay));
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 { parseAndMergeConfigs, listEnvironmentNames, ConfigurationError } from "@semiont/core";
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((resolve2) => {
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
- resolve2();
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 (resolve2) => {
42096
+ return new Promise(async (resolve3) => {
42090
42097
  if (process.env.VITEST) {
42091
42098
  setTimeout(() => {
42092
- resolve2({
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
- resolve2({
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
- resolve2({
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
- resolve2({
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
- resolve2({
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(`Invalid email format: ${email3}`);
42378
+ throw new Error(`invalid email format: ${email3}`);
42372
42379
  }
42373
42380
  if (!email3.includes("@")) {
42374
- throw new Error("Invalid email: missing @ symbol");
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
- } else {
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
- const duration3 = Date.now() - startTime;
42501
- const errorMessage = error46 instanceof Error ? error46.message : "Unknown error";
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.88",
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.88",
69
- "@semiont/core": "0.2.34-build.88",
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",