@iola_adm/iola-cli 0.1.77 → 0.1.79

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 +3 -5
  2. package/package.json +1 -1
  3. package/src/cli.js +7 -2
package/README.md CHANGED
@@ -157,11 +157,9 @@ iola version --check
157
157
  - локальный tool-agent для слабых моделей с минимальными tools `search_data`, `get_card`, `export_report`, `file_read`, `browser_open`;
158
158
  - ленивые skills, toolsets, permissions, memory, hooks и готовые agents;
159
159
  - subagents, skill bundles, layered settings, usage/budget accounting и trajectory export;
160
- - полноценный локальный MCP server по stdio/http: tools, resources и prompts;
161
- - MCP-мост для локальной модели: встроенный `iola-local` доступен как `mcp:iola-local:TOOL`;
162
- - вопросы по открытым данным сначала идут в публичный remote MCP `https://apiiola.yasg.ru/mcp`
163
- через `layer_suggest`, `layer_query`, `layer_get` и `layer_answer_context`, а локальная БД/API
164
- остаются fallback;
160
+ - локальный MCP-сервер по stdio/http для подключения iola-cli к другим AI-клиентам;
161
+ - ответы по открытым данным берутся из публичного MCP `https://apiiola.yasg.ru/mcp`;
162
+ - локальная БД и прямой API используются как резерв, если публичный MCP временно недоступен;
165
163
  - дополнительные stdio MCP-серверы можно добавить в `~/.iola/config.json` в раздел `mcp.servers`;
166
164
  - браузерный runtime через Playwright: чтение страниц, скриншоты, PDF, клики, ввод и eval;
167
165
  - управляемые локальные файловые операции с режимами `locked`, `read-only`, `workspace-write`, `full-access`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iola_adm/iola-cli",
3
- "version": "0.1.77",
3
+ "version": "0.1.79",
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, rawMode: true, pendingOutput: "", aiStatus: null };
777
+ const state = { history: [], buffer: "", selected: 0, slashOffset: 0, slashOpen: false, running: false, renderedInputLines: 0, renderedLines: 0, cursorRowsBelow: 0, rawMode: true, pendingOutput: "", aiStatus: null };
778
778
  const wasRaw = input.isRaw;
779
779
  activateRawInput(input);
780
780
 
@@ -1331,7 +1331,8 @@ function renderAgentInput(state) {
1331
1331
  const renderedLines = [...inputLines, "", ...menuLines, cwdLine];
1332
1332
  output.write(renderedLines.join("\n"));
1333
1333
  if (output.isTTY) {
1334
- output.write(`\x1b[${2 + menuLines.length}A`);
1334
+ state.cursorRowsBelow = 2 + menuLines.length;
1335
+ output.write(`\x1b[${state.cursorRowsBelow}A`);
1335
1336
  }
1336
1337
  if (output.isTTY) {
1337
1338
  const cursorColumn = visibleLength(inputLines[inputLines.length - 1]);
@@ -1339,16 +1340,20 @@ function renderAgentInput(state) {
1339
1340
  }
1340
1341
  state.renderedInputLines = inputLines.length;
1341
1342
  state.renderedLines = renderedLines.length;
1343
+ if (!output.isTTY) state.cursorRowsBelow = 0;
1342
1344
  }
1343
1345
 
1344
1346
  function clearAgentInputArea(state = null) {
1345
1347
  if (!output.isTTY) return;
1346
1348
  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`);
1347
1351
  if (renderedLines > 1) output.write(`\x1b[${renderedLines - 1}A`);
1348
1352
  output.write("\r\x1b[0J");
1349
1353
  if (state) {
1350
1354
  state.renderedInputLines = 0;
1351
1355
  state.renderedLines = 0;
1356
+ state.cursorRowsBelow = 0;
1352
1357
  }
1353
1358
  }
1354
1359