Первая версия: инструменты и цикл для DeepSeek

DeepSeek через веб-чат видит только то, что человек положил в вопрос. Здесь
у него появляется обратное направление: он возвращает блок-запрос, программа
исполняет его и досылает результат следующим сообщением в тот же чат. Обычный
агентский цикл, только транспорт — текст.

Инструменты (только чтение, только внутри рабочей папки):
  === NEED: путь, путь ===   прислать файлы целиком
  === LIST: **/*.mjs ===     список файлов по маске
  === FIND: текст ===        где встречается, с номерами строк

Запуска команд намеренно нет: исполнять строки из ответа, пришедшего из
интернета, без белого списка и подтверждения нельзя.

Мост ollama_orchestro/ask.mjs не импортируется и не копируется — он разбирает
process.argv и исполняет команду на верхнем уровне, поэтому import немедленно
запустил бы её. Вызывается подпроцессом теми флагами, которые у него уже есть:
шаг 1 без --new (правка первого сообщения), шаги 2..N с --new, иначе DeepSeek
не помнит предыдущий шаг. Взамен orchestro не меняется ни на строку, а его
правки прилетают сюда даром.

Два урока, каждый стоил живого прогона и вписан в код:
- инструкция в начале сообщения не работает. 22 КБ файла между приставкой и
  вопросом — и блоки-запросы игнорируются. Помогает дословное напоминание
  вплотную к вопросу;
- дерево папки надо давать сразу. Без него DeepSeek угадывает имена файлов и
  тратит два круга по минуте на LIST.

Есть веб-пульт (start-deepwork.cmd, бросить папку): файлы галочками, журнал
шагов по ходу, запись правок с копией в backup/.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Alex Cube
2026-08-11 16:31:33 +03:00
co-authored by Claude Opus 5
commit 97eefb57c7
7 changed files with 1008 additions and 0 deletions
+63
View File
@@ -0,0 +1,63 @@
@echo off
setlocal
REM ============================================================
REM deepwork web console. Drag and drop a project folder onto
REM this file: DeepSeek gets tools (NEED / LIST / FIND) and can
REM read that folder himself, step by step.
REM ASCII only on purpose - cmd.exe mangles UTF-8 Cyrillic.
REM ============================================================
echo ========================================
echo deepwork - DeepSeek with tools
echo ========================================
echo.
REM %~dp0 ALWAYS ends with a backslash. A bare "%VAR%" argument built from it
REM would escape its own closing quote - that bug already ate a flag once in
REM ollama_orchestro. Keep the trimmed copy for whole-path arguments.
set "DW_DIR=%~dp0"
set "DW_ROOT=%DW_DIR:~0,-1%"
if "%~1"=="" (
echo [ERROR] No project folder specified!
echo Drag and drop a project folder onto this file.
echo.
pause
exit /b 1
)
if not exist "%~1" (
echo [ERROR] Folder "%~1" does not exist!
echo.
pause
exit /b 1
)
echo [OK] Project folder: %~1
where node >nul 2>&1
if errorlevel 1 (
echo [ERROR] Node.js not found in PATH!
echo.
pause
exit /b 1
)
echo [OK] Node.js found
powershell -NoProfile -Command "try { Invoke-RestMethod -Uri 'http://127.0.0.1:9333/json/version' -TimeoutSec 2 | Out-Null; exit 0 } catch { exit 1 }" >nul 2>&1
if errorlevel 1 (
echo [WARN] Bridge is NOT available on port 9333.
echo Run start-browser.cmd in ollama_orchestro, then log in.
echo The console will start anyway and show the same warning.
echo.
)
cd /d "%~1"
echo.
echo Open the printed address in your DEFAULT browser, not the debug one.
echo Ctrl+C here stops it.
echo.
node "%DW_DIR%deepwork.mjs" ui
echo.
pause