@noir-ai/cli 1.7.2 → 1.7.3-beta.1

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 (46) hide show
  1. package/dist/bin.js +19 -10
  2. package/dist/bin.js.map +1 -1
  3. package/dist/{chunk-6BCKFJ5Z.js → chunk-3NT7RW6K.js} +65 -1
  4. package/dist/{chunk-6BCKFJ5Z.js.map → chunk-3NT7RW6K.js.map} +1 -1
  5. package/dist/{chunk-RYY2FEIQ.js → chunk-6NRDGRCF.js} +8 -3
  6. package/dist/chunk-6NRDGRCF.js.map +1 -0
  7. package/dist/{chunk-YZGQDUJZ.js → chunk-B7OKXQKF.js} +2 -2
  8. package/dist/{chunk-7WMO6THL.js → chunk-KQYVVGOH.js} +3 -3
  9. package/dist/{chunk-ZA2URQAP.js → chunk-VW6KKJV4.js} +29 -9
  10. package/dist/chunk-VW6KKJV4.js.map +1 -0
  11. package/dist/{create-5D5BTGQ7.js → create-RHFPB5Q2.js} +4 -4
  12. package/dist/index.js +3 -3
  13. package/dist/{install-RB2M4VUA.js → install-M54KESYS.js} +3 -3
  14. package/dist/{sync-MAQAT33P.js → sync-ZGCGL3OU.js} +3 -3
  15. package/dist/tui/{chunk-A27BSG6W.js → chunk-A2Q74DOV.js} +65 -1
  16. package/dist/tui/{chunk-A27BSG6W.js.map → chunk-A2Q74DOV.js.map} +1 -1
  17. package/dist/tui/{chunk-OCKOVYUK.js → chunk-A2YMK3HL.js} +8 -3
  18. package/dist/tui/chunk-A2YMK3HL.js.map +1 -0
  19. package/dist/tui/{chunk-AYJJCWTI.js → chunk-KBM2UXAC.js} +3 -3
  20. package/dist/tui/{chunk-EH3XT7OC.js → chunk-KQXGWFXJ.js} +29 -9
  21. package/dist/tui/chunk-KQXGWFXJ.js.map +1 -0
  22. package/dist/tui/{chunk-X2VUST7G.js → chunk-MGRKJMHG.js} +2 -2
  23. package/dist/tui/{create-KNHRFLW5.js → create-DH2VPDVS.js} +4 -4
  24. package/dist/tui/index.js +19 -10
  25. package/dist/tui/index.js.map +1 -1
  26. package/dist/tui/{install-MPHQ65JD.js → install-BHXP6LG5.js} +3 -3
  27. package/dist/tui/{sync-RUHBKBMB.js → sync-DT4JKXZK.js} +3 -3
  28. package/dist/tui/{update-QPRYOSQN.js → update-FEYBGMVO.js} +4 -4
  29. package/dist/{update-6GUYY2OQ.js → update-M74XT6CS.js} +4 -4
  30. package/package.json +9 -9
  31. package/dist/chunk-RYY2FEIQ.js.map +0 -1
  32. package/dist/chunk-ZA2URQAP.js.map +0 -1
  33. package/dist/tui/chunk-EH3XT7OC.js.map +0 -1
  34. package/dist/tui/chunk-OCKOVYUK.js.map +0 -1
  35. /package/dist/{chunk-YZGQDUJZ.js.map → chunk-B7OKXQKF.js.map} +0 -0
  36. /package/dist/{chunk-7WMO6THL.js.map → chunk-KQYVVGOH.js.map} +0 -0
  37. /package/dist/{create-5D5BTGQ7.js.map → create-RHFPB5Q2.js.map} +0 -0
  38. /package/dist/{install-RB2M4VUA.js.map → install-M54KESYS.js.map} +0 -0
  39. /package/dist/{sync-MAQAT33P.js.map → sync-ZGCGL3OU.js.map} +0 -0
  40. /package/dist/tui/{chunk-AYJJCWTI.js.map → chunk-KBM2UXAC.js.map} +0 -0
  41. /package/dist/tui/{chunk-X2VUST7G.js.map → chunk-MGRKJMHG.js.map} +0 -0
  42. /package/dist/tui/{create-KNHRFLW5.js.map → create-DH2VPDVS.js.map} +0 -0
  43. /package/dist/tui/{install-MPHQ65JD.js.map → install-BHXP6LG5.js.map} +0 -0
  44. /package/dist/tui/{sync-RUHBKBMB.js.map → sync-DT4JKXZK.js.map} +0 -0
  45. /package/dist/tui/{update-QPRYOSQN.js.map → update-FEYBGMVO.js.map} +0 -0
  46. /package/dist/{update-6GUYY2OQ.js.map → update-M74XT6CS.js.map} +0 -0
package/dist/bin.js CHANGED
@@ -5,14 +5,14 @@ import {
5
5
  import {
6
6
  DEFAULT_UPDATE_CONFIG,
7
7
  runAsyncUpdateCheck
8
- } from "./chunk-ZA2URQAP.js";
9
- import "./chunk-RYY2FEIQ.js";
8
+ } from "./chunk-VW6KKJV4.js";
9
+ import "./chunk-6NRDGRCF.js";
10
10
  import {
11
11
  init
12
- } from "./chunk-7WMO6THL.js";
12
+ } from "./chunk-KQYVVGOH.js";
13
13
  import {
14
14
  doctor
15
- } from "./chunk-YZGQDUJZ.js";
15
+ } from "./chunk-B7OKXQKF.js";
16
16
  import {
17
17
  EXIT,
18
18
  NoirCliError,
@@ -28,11 +28,12 @@ import {
28
28
  json,
29
29
  log,
30
30
  requireInteractive,
31
+ spinner,
31
32
  table,
32
33
  tip,
33
34
  useColor,
34
35
  warn
35
- } from "./chunk-6BCKFJ5Z.js";
36
+ } from "./chunk-3NT7RW6K.js";
36
37
 
37
38
  // src/bin.ts
38
39
  import { realpathSync } from "fs";
@@ -345,12 +346,14 @@ async function daemonStart(opts) {
345
346
  if (opts.detach === true) {
346
347
  fail(EXIT.USAGE, "not implemented (tracked: v1.x)", opts);
347
348
  }
349
+ const ds = spinner("Starting Noir daemon...", opts).start();
348
350
  const project = loadProjectInfo2(process.cwd());
349
351
  const ensured = await ensureDaemonRunning2({
350
352
  project,
351
353
  idleTimeoutSec: project.config.daemon.idleTimeoutSec
352
354
  });
353
355
  if (ensured.started) {
356
+ ds.succeed("Daemon started");
354
357
  if (opts.json === true) {
355
358
  process.stdout.write(
356
359
  `${JSON.stringify({
@@ -371,6 +374,7 @@ async function daemonStart(opts) {
371
374
  log(`Noir daemon listening at ${ensured.url}`, opts);
372
375
  return;
373
376
  }
377
+ ds.succeed("Daemon already running");
374
378
  if (opts.json === true) {
375
379
  process.stdout.write(
376
380
  `${JSON.stringify({ ok: true, data: { url: ensured.url, port: ensured.port, reused: true } })}
@@ -393,6 +397,7 @@ async function daemonStop(opts) {
393
397
  info("No Noir daemon is running.", opts);
394
398
  return;
395
399
  }
400
+ const ds = spinner(`Stopping daemon (pid ${rec.pid})...`, opts).start();
396
401
  let signalled = false;
397
402
  let errMsg;
398
403
  try {
@@ -419,8 +424,9 @@ async function daemonStop(opts) {
419
424
  return;
420
425
  }
421
426
  if (signalled) {
422
- log(`Stopped Noir daemon (pid ${rec.pid}).`, opts);
427
+ ds.succeed(`Stopped Noir daemon (pid ${rec.pid})`);
423
428
  } else {
429
+ ds.warn(`Daemon (pid ${rec.pid}) could not be signalled: ${errMsg}`);
424
430
  info(`Noir daemon (pid ${rec.pid}) could not be signalled: ${errMsg}`, opts);
425
431
  }
426
432
  }
@@ -433,6 +439,7 @@ async function daemonStatus(opts) {
433
439
  clearDaemonRecord();
434
440
  fail(EXIT.DAEMON_DOWN, "Noir daemon is not running (stale record removed).", opts);
435
441
  }
442
+ const hs = spinner("Probing daemon health...", opts).start();
436
443
  let health = null;
437
444
  try {
438
445
  const res = await fetch(`http://127.0.0.1:${rec.port}/health`);
@@ -443,6 +450,7 @@ async function daemonStatus(opts) {
443
450
  health = null;
444
451
  }
445
452
  if (health?.ok !== true) {
453
+ hs.fail("Daemon not responding");
446
454
  clearDaemonRecord();
447
455
  fail(
448
456
  EXIT.DAEMON_DOWN,
@@ -450,6 +458,7 @@ async function daemonStatus(opts) {
450
458
  opts
451
459
  );
452
460
  }
461
+ hs.succeed("Daemon healthy");
453
462
  const uptimeSec = typeof health?.uptimeSec === "number" ? health.uptimeSec : Math.max(0, Math.floor((Date.now() - rec.startedAt) / 1e3));
454
463
  const data = {
455
464
  running: true,
@@ -1624,7 +1633,7 @@ function createProgram() {
1624
1633
  const transport = opts.transport === "streamable-http" ? "streamable-http" : "stdio";
1625
1634
  const force = opts.force === true;
1626
1635
  const host = parseHost(opts.host);
1627
- const { create } = await import("./create-5D5BTGQ7.js");
1636
+ const { create } = await import("./create-RHFPB5Q2.js");
1628
1637
  const result = await create(dir, {
1629
1638
  transport,
1630
1639
  url: opts.url,
@@ -1662,7 +1671,7 @@ function createProgram() {
1662
1671
  ).choices(SUPPORTED_HOSTS)
1663
1672
  ).action(
1664
1673
  async (opts, cmd) => {
1665
- const { sync } = await import("./sync-MAQAT33P.js");
1674
+ const { sync } = await import("./sync-ZGCGL3OU.js");
1666
1675
  const host = parseHost(opts.host);
1667
1676
  const force = opts.force === true;
1668
1677
  const merge = opts.merge === true;
@@ -1860,7 +1869,7 @@ function createProgram() {
1860
1869
  "dismiss the migration banner for the current version (persists in install.json)"
1861
1870
  ).argument("[spec]", "channel ('latest'|'beta') or exact version (default: latest)").action(
1862
1871
  async (spec, opts, cmd) => {
1863
- const { install } = await import("./install-RB2M4VUA.js");
1872
+ const { install } = await import("./install-M54KESYS.js");
1864
1873
  const cli = cmd.optsWithGlobals();
1865
1874
  await install({
1866
1875
  ...cli,
@@ -1873,7 +1882,7 @@ function createProgram() {
1873
1882
  );
1874
1883
  installCmd.alias("migrate");
1875
1884
  program2.command("update").description("update Noir to the latest version via the active install method").option("--check", "check for a new version without changing anything").argument("[spec]", "channel ('latest'|'beta') or exact version (default: latest)").action(async (spec, opts, cmd) => {
1876
- const { update } = await import("./update-6GUYY2OQ.js");
1885
+ const { update } = await import("./update-M74XT6CS.js");
1877
1886
  const cli = cmd.optsWithGlobals();
1878
1887
  await update({ ...cli, spec, check: opts.check === true });
1879
1888
  });