IWE WP Panel
VS Code-расширение для работы с рабочими продуктами IWE.
Что делает
- Показывает боковую панель «Рабочие продукты» со списком всех РП из
WP-REGISTRY.md.
- Даёт поиск по номеру WP или названию.
- Фильтрует РП по статусу.
- Клик по РП открывает файл
inbox/WP-NNN/WP-NNN.md.
- В дашборде показывает те же тайлы табло пользователя, что и Day Open / личная страница (через
WP-417 / panel.db).
- В дашборде три независимых слоя: все РП, сессии агентов (группа «РП → площадка») и процессы закрытия. Для сессии явно показано состояние: открыта, в закрытии, быстро закрыта или полностью закрыта; последние хранятся 7 дней.
- Для каждой удалённой площадки панель читает компактный JSON-снимок по SSH с таймаутом 5 секунд. При недоступности связи прошлый снимок остаётся на экране с пометкой «устарел», а если снимка не было — площадка видна как недоступная.
- Список РП читает отдельное зеркало ветки
main, поэтому не зависит от рабочей ветки агента в основной папке DS-my-strategy.
Установка
npm install
npm run compile
npm run package
Затем в VS Code: Extensions → ... → Install from VSIX → выбрать собранный файл iwe-wp-panel-0.1.14.vsix.
Для постоянной синхронизации установите локальный таймер из launchd/com.iwe.wp-dashboard-main-sync.plist. Он создаёт DS-my-strategy-dashboard, обновляет его только быстрым переходом по origin/main и отказывается работать, если кто-то изменил зеркало вручную.
Настройки
| Параметр |
Описание |
По умолчанию |
iweWpPanel.registryPath |
Путь к WP-REGISTRY.md относительно workspace |
DS-my-strategy/docs/WP-REGISTRY.md |
iweWpPanel.inboxPath |
Папка с карточками РП |
DS-my-strategy/inbox |
iweWpPanel.sourceRoot |
Зеркало main для списка РП |
DS-my-strategy-dashboard |
В таблицу всегда загружается весь реестр. По умолчанию показаны только незакрытые РП; флажок «Показывать все статусы» раскрывает и закрытые.
| iweWpPanel.panelAccountId | account_id для чтения табло WP-417 | "" → env.PANEL_ACCOUNT_ID → "local" |
| iweWpPanel.sites | Удалённые площадки: id, видимое имя, SSH-хост, путь к JSON-снимку | [] |
| iweWpPanel.dashboardApiUrl | HTTPS-адрес общего защищённого реестра сессий | https://iwe-llm-proxy-production.up.railway.app |
| iweWpPanel.browserSiteId | Идентификатор площадки VS Code Web | vscode-web |
Команда «IWE WP Panel: Войти в общий реестр сессий» открывает обычный вход Ory. После подтверждения расширение само сохраняет короткоживущий токен в защищённом хранилище VS Code, а не в settings.json. В vscode.dev и github.dev расширение использует веб-точку и показывает общий реестр без доступа к файловой системе вашей машины.
Подключить цех-1
На цехе в репозитории DS-my-strategy нужно периодически строить только снимок состояния — без доступа панели к рабочему дереву:
python3 scripts/build-process-board.py \
--snapshot-out ~/.iwe/active-state-snapshot.json \
--site-id tsekh-1
Это же безопасно добавить в уже существующий таймер пересборки борда процессов. Затем в пользовательские настройки VS Code добавить:
"iweWpPanel.sites": [
{
"id": "tsekh-1",
"label": "Цех-1",
"sshHost": "tsekh-1",
"snapshotPath": "~/.iwe/active-state-snapshot.json"
}
]
Связь процесса закрытия с сессией точна только при совпадении owner_session_id; старые карточки получают отдельную метку «вероятная», если совпадают по названию. При равенстве кандидатов панель не угадывает связь.
Зависимости
- WP-417 «Табло пользователя» — источник тайлов табло. Тайлы дашборда читаются через
python3 и DS-my-strategy/scripts/lib/panel_render_cli.py (обёртка над read_panel()), а не напрямую из panel.db.
DS-my-strategy/docs/WP-REGISTRY.md — источник списка РП.
- Раскладка репозиториев. Тайлы табло требуют, чтобы репозиторий
DS-my-strategy был клонирован рядом с DS-iwe-wp-panel (например, ~/IWE/DS-my-strategy) — расширение ищет его среди папок workspace и по пути <домашняя папка>/IWE/DS-my-strategy. Если репозиторий или python3 не найдены — вместо тайлов показывается текст причины.