@iola_adm/iola-cli 0.1.79 → 0.1.80

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 (3) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/src/cli.js +2 -10
package/README.md CHANGED
@@ -151,6 +151,7 @@ iola version --check
151
151
 
152
152
  ## Возможности
153
153
 
154
+ - интеграция с публичным MCP-сервером Йошкар-Олы;
154
155
  - поиск и выгрузка открытых данных;
155
156
  - локальная SQLite-БД, история, сессии и FTS-поиск;
156
157
  - AI-профили для Ollama, OpenAI, OpenRouter и Codex CLI;
@@ -171,4 +172,3 @@ iola version --check
171
172
  - расширенный `iola onboard` с установкой 7-Zip, браузерного runtime, Ollama, Codex CLI и настройкой выбранных компонентов;
172
173
  - cron-задачи, локальный daemon, web dashboard и RPC для автоматизаций;
173
174
  - контекстные файлы `IOLA.md` и `.iola/context.md`;
174
- - интеграция с публичным MCP-сервером Йошкар-Олы.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iola_adm/iola-cli",
3
- "version": "0.1.79",
3
+ "version": "0.1.80",
4
4
  "description": "CLI и AI-агент городского округа Йошкар-Ола.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/adm-iola/iola-cli#readme",
package/src/cli.js CHANGED
@@ -774,7 +774,7 @@ async function startAgentReadline() {
774
774
  }
775
775
 
776
776
  async function startAgentRawInput() {
777
- const state = { history: [], buffer: "", selected: 0, slashOffset: 0, slashOpen: false, running: false, renderedInputLines: 0, renderedLines: 0, cursorRowsBelow: 0, rawMode: true, pendingOutput: "", aiStatus: null };
777
+ const state = { history: [], buffer: "", selected: 0, slashOffset: 0, slashOpen: false, running: false, renderedInputLines: 0, renderedLines: 0, rawMode: true, pendingOutput: "", aiStatus: null };
778
778
  const wasRaw = input.isRaw;
779
779
  activateRawInput(input);
780
780
 
@@ -1328,32 +1328,24 @@ function renderAgentInput(state) {
1328
1328
  }
1329
1329
  }
1330
1330
 
1331
- const renderedLines = [...inputLines, "", ...menuLines, cwdLine];
1331
+ const renderedLines = [cwdLine, ...menuLines, ...inputLines];
1332
1332
  output.write(renderedLines.join("\n"));
1333
- if (output.isTTY) {
1334
- state.cursorRowsBelow = 2 + menuLines.length;
1335
- output.write(`\x1b[${state.cursorRowsBelow}A`);
1336
- }
1337
1333
  if (output.isTTY) {
1338
1334
  const cursorColumn = visibleLength(inputLines[inputLines.length - 1]);
1339
1335
  output.write(`\x1b[${cursorColumn + 1}G`);
1340
1336
  }
1341
1337
  state.renderedInputLines = inputLines.length;
1342
1338
  state.renderedLines = renderedLines.length;
1343
- if (!output.isTTY) state.cursorRowsBelow = 0;
1344
1339
  }
1345
1340
 
1346
1341
  function clearAgentInputArea(state = null) {
1347
1342
  if (!output.isTTY) return;
1348
1343
  const renderedLines = Math.max(1, Number(state?.renderedLines || state?.renderedInputLines || 1));
1349
- const cursorRowsBelow = Math.max(0, Number(state?.cursorRowsBelow || 0));
1350
- if (cursorRowsBelow > 0) output.write(`\x1b[${cursorRowsBelow}B`);
1351
1344
  if (renderedLines > 1) output.write(`\x1b[${renderedLines - 1}A`);
1352
1345
  output.write("\r\x1b[0J");
1353
1346
  if (state) {
1354
1347
  state.renderedInputLines = 0;
1355
1348
  state.renderedLines = 0;
1356
- state.cursorRowsBelow = 0;
1357
1349
  }
1358
1350
  }
1359
1351