@iola_adm/iola-cli 0.1.93 → 0.1.94
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/package.json +1 -1
- package/src/cli.js +25 -8
package/package.json
CHANGED
package/src/cli.js
CHANGED
|
@@ -628,13 +628,19 @@ async function runDefaultCli() {
|
|
|
628
628
|
|
|
629
629
|
initDatabase();
|
|
630
630
|
if (!isFirstRunCompleted()) {
|
|
631
|
-
await
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
631
|
+
const readiness = await getAiReadiness();
|
|
632
|
+
if (readiness.ready) {
|
|
633
|
+
markFirstRunCompleted();
|
|
634
|
+
} else {
|
|
635
|
+
await showBanner();
|
|
636
|
+
console.log("Первый запуск iola-cli. Сейчас откроется мастер настройки.");
|
|
637
|
+
console.log("После мастера запустится интерактивный агент.");
|
|
638
|
+
console.log("Введите 0, чтобы пропустить мастер и перейти в CLI.");
|
|
639
|
+
console.log("");
|
|
640
|
+
await onboard([]);
|
|
641
|
+
markFirstRunCompleted();
|
|
642
|
+
console.log("");
|
|
643
|
+
}
|
|
638
644
|
}
|
|
639
645
|
|
|
640
646
|
await startAgent([]);
|
|
@@ -7717,6 +7723,11 @@ async function onboard(args = []) {
|
|
|
7717
7723
|
|
|
7718
7724
|
const componentStatus = await getOnboardComponentStatus();
|
|
7719
7725
|
const components = options.yes ? defaultOnboardComponents(componentStatus) : await chooseOnboardComponents(componentStatus);
|
|
7726
|
+
if (components.length === 0) {
|
|
7727
|
+
markFirstRunCompleted();
|
|
7728
|
+
console.log("Мастер пропущен. Переход в CLI.");
|
|
7729
|
+
return;
|
|
7730
|
+
}
|
|
7720
7731
|
if (components.includes("workspace")) await handleWorkspace(["init"]);
|
|
7721
7732
|
if (components.includes("policy")) await handlePolicy(["use", "analyst"]);
|
|
7722
7733
|
if (components.includes("archive")) await ensureArchiveTool({ install: true });
|
|
@@ -7758,6 +7769,7 @@ async function chooseOnboardComponents(status = null) {
|
|
|
7758
7769
|
const componentStatus = status || await getOnboardComponentStatus();
|
|
7759
7770
|
console.log("");
|
|
7760
7771
|
console.log("Выберите компоненты через запятую:");
|
|
7772
|
+
console.log("0. выход в CLI [без настройки] - пропустить мастер");
|
|
7761
7773
|
for (const item of onboardComponentRows(componentStatus)) {
|
|
7762
7774
|
console.log(`${item.number}. ${item.title} [${item.status}] - ${item.hint}`);
|
|
7763
7775
|
}
|
|
@@ -7765,7 +7777,8 @@ async function chooseOnboardComponents(status = null) {
|
|
|
7765
7777
|
const rl = readline.createInterface({ input, output });
|
|
7766
7778
|
try {
|
|
7767
7779
|
const defaults = defaultOnboardSelection(componentStatus);
|
|
7768
|
-
const answer = (await rl.question(`Компоненты [${defaults.join(",")}]: `)).trim() || defaults.join(",");
|
|
7780
|
+
const answer = (await rl.question(`Компоненты [${defaults.join(",")}], 0 - выход в CLI: `)).trim() || defaults.join(",");
|
|
7781
|
+
if (isOnboardExitAnswer(answer)) return [];
|
|
7769
7782
|
const selected = new Set(answer.split(/[,\s]+/).filter(Boolean));
|
|
7770
7783
|
const map = {
|
|
7771
7784
|
1: "workspace",
|
|
@@ -7786,6 +7799,10 @@ async function chooseOnboardComponents(status = null) {
|
|
|
7786
7799
|
}
|
|
7787
7800
|
}
|
|
7788
7801
|
|
|
7802
|
+
function isOnboardExitAnswer(answer) {
|
|
7803
|
+
return /^(0|q|quit|exit|\/exit|skip|пропустить|выход)$/iu.test(String(answer || "").trim());
|
|
7804
|
+
}
|
|
7805
|
+
|
|
7789
7806
|
async function getOnboardComponentStatus() {
|
|
7790
7807
|
const [config, readiness, browser, archive, codexVersion, ollamaVersion] = await Promise.all([
|
|
7791
7808
|
loadConfig(),
|