Skip to content
| Marketplace
Sign in
Visual Studio Code>AI>viway — Project Knowledge Base SecretaryNew to Visual Studio Code? Get it now.
viway — Project Knowledge Base Secretary

viway — Project Knowledge Base Secretary

viway

| (0) | Free
Watches Claude Code & Codex transcripts and maintains a structured 8-folder wiki under .viway/ — captures decisions, plans, open questions, architecture. Multi-provider LLM secretary with per-turn agent loop.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

viway — Project Knowledge Base Secretary

VSCode-расширение, которое автоматически ведёт структурированную базу знаний проекта в .viway/ (8 папок: 00_archive / 01_intent / 02_inputs / 03_process / 04_relations / 05_plans / 06_open / 07_visualization). Читает транскрипты Claude Code и Codex CLI, пишет структурированные ops через OpenRouter или Anthropic API.

Текущая версия: 0.6.2

Что делает расширение

Возможность Как работает
Per-turn агент (▶ Запустить) На каждый turn запускается agent loop с workspace-tools (read_file, search_workspace, list_directory, read_git_log, read_viway, read_processed_history, check_existing, read_open_questions). Применяет 1-5 ops/папку.
Harvest агент (✨ Собрать) Полный re-synthesis выбранной папки: 30 итераций recon → write.
Stop hook auto-process После каждого ответа Claude Code автоматически запускает per-turn агента (5s debounce + 90s settle window).
Snapshot + restore Снимок .viway/ перед каждой обработкой, откат через QuickPick.
Live timeline Горизонтальная лента турнов в сайдбаре. Auto-scroll к последнему, edge-fade indicators, цветовая кодировка статусов.
Turn detail Кликабельные блоки → отдельный webview с tool calls log + applied ops + errors.
Settings webview 12 секций, ~40 настроек: провайдер / модель / depth / tools whitelist / промпты / sampling / routing.
🆕 Audit / Аудит работы (0.6.2) viway: Аудит работы секретаря или кнопка «Аудит» в дашборде. Markdown-отчёт: cumulative cost, status histogram, аномалии (failed / partial / auto-journal / high-reproc), последние 20 turn'ов, Stop hook boundaries, last-call inline.
Bundled fonts PT Sans (Latin + Cyrillic) + JetBrains Mono в VSIX (~191 KB) — работает offline / в corporate proxy.

Что нового в 0.6.2

  • T121 — окончательный фикс дробления турнов: убран SUB_END_TURNS_PER_CHUNK=3 (count-based split). Один user-message теперь = один agent loop, без искусственного раздробления. Расход −20-30% на сессиях с длинными tool loops.
  • Stop hook → ~/.viway/turn-boundaries.jsonl: authoritative END-маркер каждого turn'а. База для аналитики и future parser integration.
  • Log Analyzer / «Аудит работы секретаря»: новая VSCode команда + кнопка в дашборде.
  • UI: chips Src/Vol/Depth перенесены в «Состояние» как status-row'ы. «Действия» переехали в самый низ дашборда.

Подробнее в CHANGELOG.md.

Что нового в 0.6.1

  • T120 — parser thinking-only fix: Opus 4.x extended-thinking режим записывает каждый ответ как 2 entries (thinking + text), парсер раньше считал оба как sub-end_turn → дробил turn. Фикс пропускает thinking-only entries.
  • Speed/cost оптимизации OpenRouter: parallel_tool_calls: true (−15-25s/turn), transforms: ['middle-out'] (−30% input на длинных loops), provider: { sort: 'throughput' } (автовыбор быстрейшего backend).
  • UI редизайн «Обработка диалога»: auto-process → лампа без текста, timeline auto-scroll к последнему turn'у, session selector превратился в полноценный <select> dropdown, Запустить/Остановить — single toggle button.

Установка

Из marketplace

code --install-extension viway.viway-v3

После установки:

  1. Cmd+Shift+P → viway: Создать .viway/ → выбери workspace.
  2. Cmd+Shift+P → viway: Settings → задай OpenRouter или Anthropic ключ.
  3. Cmd+Shift+P → viway: Установить Stop hook → авто-обработка после каждого ответа.

Из VSIX вручную

code --install-extension viway-v3-0.6.2.vsix --force

Требования

  • Node.js 18+ (только для сборки)
  • VSCode 1.90+ (или Antigravity)
  • API ключ: OpenRouter (есть free tier) или Anthropic
  • code в PATH

Сборка из исходников

cd <repo>/v3/extension
npm install
npx tsc --noEmit       # type check
npm test               # 63 теста vitest
npm run package        # собирает viway-v3-<version>.vsix

Структура исходников

Путь Назначение
src/extension.ts Entry point, command handlers, AppState
src/secretary/turnAgent.ts Per-turn agent loop
src/secretary/synthesizer.ts Harvest agent (✨ Собрать)
src/secretary/agentTools.ts 8 read tools (read_file, search_workspace, list_directory, read_git_log, read_viway, read_processed_history, check_existing, read_open_questions)
src/secretary/applier.ts Op application + 6 защитных слоёв
src/secretary/openRouterClient.ts OpenRouter (parallel_tool_calls + middle-out + throughput sort)
src/secretary/anthropicClient.ts Anthropic SDK
src/transcript/parser.ts Claude jsonl parser — T120/T121 fixes against splitting
src/transcript/codex.ts Codex jsonl parser
src/state/manager.ts Atomic JSON state persistence (mutex + EXDEV fallback)
src/ui/dashboard.ts Sidebar webview (timeline + session dropdown + folder cards)
src/ui/settingsView.ts Settings webview tab
src/ui/turnDetailView.ts Turn detail webview tab
src/ui/logAnalyzer.ts 🆕 Markdown audit report builder (0.6.2)
src/snapshot/snapshotter.ts .viway/ snapshots
src/hook/installer.ts Stop hook setup
hooks/stop.py Stop hook script — пишет turn-boundaries.jsonl
prompts/ System prompt + 7 per-folder overlays
template/ .viway/ skeleton (8 папок)
media/fonts/ Bundled WOFF2 (PT Sans + JetBrains Mono)
dist/ Собранный runtime — НЕ РЕДАКТИРУЙ

Ключи и настройки

API ключи хранятся в VSCode SecretStorage:

  • viway.openRouterApiKey
  • viway.anthropicApiKey

Активный провайдер: viway.provider (openrouter | anthropic)

Ключевые настройки агента (Settings webview):

  • viway.agentDepth (quick / standard / deep / unlimited) — max iterations per-turn
  • viway.maxOpsPerFolder (1-5, default 1) — лимит ops на папку за turn
  • viway.toolReadBudget (default 200_000 chars) — soft cap на tool-result контекст
  • viway.harvestUseAgentLoop (default true) — agentic harvest vs legacy single-shot
  • viway.harvestAgentMaxIterations (default 30) — max iterations для ✨ Собрать
  • viway.transcriptSource (all / claude / codex) — какой CLI читать
  • viway.processScope (lastSession / lastTurn / last5Turns) — объём для ▶ Запустить
  • viway.legacyWorkspacePaths — старые пути проекта при перемещении
  • viway.maxTokens (default 64128) — output budget per call
  • viway.reasoning (off / low / medium / high) — thinking budget
  • viway.includeThinking — передавать секретарю [thinking] блоки Claude в slice
  • viway.autoProcess (default true) — авто-обработка по Stop hook
  • viway.selfVerification (default true) — self-verify ops после applier

Workspace migration

При перемещении папки добавь старый путь в viway.legacyWorkspacePaths — тогда старые транскрипты Claude Code из ~/.claude/projects/<encoded-path>/*.jsonl найдутся. Codex сессии не восстанавливаются (cwd зашит в session_meta).

State persistence (.viway/.state/)

Файл Назначение
processed.json Курсоры обработки per-session + per-turn records
harvest-history.json История ✨ Собрать с cursors per-folder
harvest-logs/<folder>.<iso>.json Детальная trace каждого harvest run
turn-logs/<session>.<endUuid>.json Детальная trace каждого per-turn run
cumulative-metrics.json Накопительные метрики (calls / tokens / cost / conflicts)
processing-history.json Последние 50 запусков (для дашборда)
errors.json Кольцевой буфер последних 50 ошибок
snapshots.json Реестр snapshot'ов
endpoint.json Hook server endpoint
last-call.md Markdown-диагностика последнего вызова
~/.viway/turn-boundaries.jsonl 🆕 Stop hook authoritative END-маркеры (0.6.2)

Diagnostics

Если что-то идёт не так:

  1. Странный расход / много iterations → Cmd+Shift+P → viway: Аудит работы секретаря (0.6.2). Покажет аномалии и last-call inline.
  2. Per-turn ничего не пишет → открой Turn detail кликом по блоку в timeline, проверь Tool calls + Errors секции.
  3. Harvest 0 ops → cat .viway/.state/harvest-logs/<folder>.<iso>.json | python3 -m json.tool — увидишь tool calls и finalAssistantText (модель часто объясняет почему пропустила).
  4. Транскрипты не находятся после перемещения → ⚙ → Workspace alias paths → добавь старый путь.
  5. VSCode не видит новую версию VSIX → ⚙ → Обслуживание → 🔄 Обновить расширение (Reload Window).
  6. «Опять разделил диалог» → проверь версию extension'а: 0.6.0 имел count-based split (фикс в 0.6.1 для thinking, 0.6.2 убрал count полностью).

Тесты

npx vitest run    # 63 теста

Покрытие: parser (T120/T121 регрессии), applier (защитные слои), state manager, synthesizer, prompt routing, codex parser, time utils, graph viewer.

Лицензия

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft