@docyrus/docyrus 0.0.27 → 0.0.29

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/agent-loader.js CHANGED
@@ -1135,7 +1135,7 @@ ${J2}${i.trimStart()}`), r2 = 3 + (0, import_node_util.stripVTControlCharacters)
1135
1135
  var import_node_fs = require("node:fs");
1136
1136
  var import_node_url = require("node:url");
1137
1137
  var import_node_path3 = require("node:path");
1138
- var import_picocolors3 = __toESM(require_picocolors());
1138
+ var import_picocolors4 = __toESM(require_picocolors());
1139
1139
 
1140
1140
  // src/agent/envStore.ts
1141
1141
  var import_promises = require("node:fs/promises");
@@ -2553,6 +2553,31 @@ async function runOnboarding(dependencies) {
2553
2553
  }
2554
2554
  }
2555
2555
 
2556
+ // src/services/spinner.ts
2557
+ var import_picocolors3 = __toESM(require_picocolors());
2558
+ var SPINNER_FRAMES = ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827", "\u2807", "\u280F"];
2559
+ var SPINNER_INTERVAL_MS = 80;
2560
+ function createSpinner(message) {
2561
+ let frameIndex = 0;
2562
+ let currentMessage = message;
2563
+ const render = () => {
2564
+ const frame = import_picocolors3.default.cyan(SPINNER_FRAMES[frameIndex]);
2565
+ process.stderr.write(`\r ${frame} ${import_picocolors3.default.dim(currentMessage)}`);
2566
+ frameIndex = (frameIndex + 1) % SPINNER_FRAMES.length;
2567
+ };
2568
+ render();
2569
+ const interval = setInterval(render, SPINNER_INTERVAL_MS);
2570
+ return {
2571
+ update(newMessage) {
2572
+ currentMessage = newMessage;
2573
+ },
2574
+ stop() {
2575
+ clearInterval(interval);
2576
+ process.stderr.write(`\r${" ".repeat(currentMessage.length + 10)}\r`);
2577
+ }
2578
+ };
2579
+ }
2580
+
2556
2581
  // src/agent/loader.ts
2557
2582
  function readRequiredEnv(name) {
2558
2583
  const value = process.env[name];
@@ -2714,8 +2739,8 @@ async function createSessionManager(params) {
2714
2739
  function renderStartupSplash(version) {
2715
2740
  process.stderr.write(
2716
2741
  renderDocyrusLogoPrimary() + `
2717
- ${import_picocolors3.default.bold("DOCYRUS")} ${import_picocolors3.default.dim(`v${version}`)}
2718
- ${import_picocolors3.default.green("Welcome.")} Preparing your agent workspace...
2742
+ ${import_picocolors4.default.bold("DOCYRUS")} ${import_picocolors4.default.dim(`v${version}`)}
2743
+ ${import_picocolors4.default.green("Welcome.")} Preparing your agent workspace...
2719
2744
 
2720
2745
  `
2721
2746
  );
@@ -2753,6 +2778,7 @@ async function main() {
2753
2778
  const modelIdsByProvider = buildModelIdsByProvider(initialModelRegistry);
2754
2779
  let usedClack = false;
2755
2780
  renderStartupSplash(version);
2781
+ const spinner = createSpinner("Loading agent...");
2756
2782
  if (await shouldRunOnboarding({
2757
2783
  authStorage,
2758
2784
  envStore,
@@ -2763,6 +2789,7 @@ async function main() {
2763
2789
  apiKeyProviderIds,
2764
2790
  modelIdsByProvider
2765
2791
  })) {
2792
+ spinner.stop();
2766
2793
  usedClack = true;
2767
2794
  await runOnboarding({
2768
2795
  authStorage,
@@ -2793,6 +2820,7 @@ async function main() {
2793
2820
  cwd,
2794
2821
  isInteractive
2795
2822
  });
2823
+ spinner.update("Loading resources...");
2796
2824
  const resourceLoader = new pi.DefaultResourceLoader({
2797
2825
  cwd,
2798
2826
  agentDir,
@@ -2805,6 +2833,7 @@ async function main() {
2805
2833
  )
2806
2834
  });
2807
2835
  await resourceLoader.reload();
2836
+ spinner.update("Creating session...");
2808
2837
  const { session, modelFallbackMessage, extensionsResult } = await pi.createAgentSession({
2809
2838
  cwd,
2810
2839
  agentDir,
@@ -2820,6 +2849,7 @@ async function main() {
2820
2849
  if (hasPackagedMcpAdapter) {
2821
2850
  extensionsResult.runtime.flagValues.set("mcp-config", mcpConfigPath);
2822
2851
  }
2852
+ spinner.stop();
2823
2853
  if (usedClack) {
2824
2854
  cleanupOnboardingStdinState();
2825
2855
  }