В этом руководстве описаны основные пользовательские процессы Screph: разметка элементов и признаков, инспекция изображения, аннотации, граф связей, подготовка автоматизации, сохранение/загрузка, экспорт данных и интеграция с IDE.
Набор панелей, типов задач и допустимой разметки зависит от выбранного режима программы. Перед предметной работой выберите режим в шапке Selector или в Общие настройки → Платформа разработки и ознакомьтесь со страницей Режимы программы.
1. Выделение и редактирование элементов
Screph предоставляет инструменты для точного выделения и редактирования элементов интерфейса.
Режимы работы
Выбрать (S): выбор существующего элемента или признака для просмотра свойств и дальнейшего действия.
Создать + форма: сначала выберите назначение — элемент изображения, Область-контейнер, пиксельный/региональный признак, шаблон, сетку или целевую точку, — затем допустимую форму: прямоугольник, эллипс, полигон или лассо. Доступные назначения зависят от режима программы.
Переместить (M): перемещение выбранного объекта без изменения формы.
Размер (R): уточнение размеров, вершин или контура существующего прямоугольника, эллипса, полигона или лассо.
Иерархия (H): создание parent → child только между двумя elements. Association, flow и logical relation создаются отдельно через Relation Graph или действие Создать связь.
Создание формы и навигация
Единый выбор intent/shape:
C, E, P и L выбирают rectangle, ellipse, polygon и lasso для текущего назначения. Shift+A сразу включает прямоугольную selection area. Для feature доступны X pixel, A region, T pattern, Y target, G region grid, Shift+P polygon и Shift+L lasso; mode profile может скрывать недопустимый kind.
Жесты: rectangle и ellipse создаются протягиванием; lasso — свободным контуром с удержанием кнопки; polygon — отдельными вершинами и завершается двойным кликом либо кликом по стартовой точке. Незавершённая форма не создаёт canonical object.
Pan/zoom: средняя кнопка либо Space+перетаскивание левой кнопкой перемещают viewport даже поверх активного инструмента. Колесо меняет zoom; Ctrl+колесо прокручивает. Также доступны Ctrl+=, Ctrl+- и Ctrl+0.
Взаимодействие
Выбор: Клик на элемент в режиме выделения.
Набор для области на холсте:
Ctrl+клик добавляет или убирает элемент/признак из набора, вокруг которого InfoPanel может создать selection area.
Множественный выбор в дереве:
Ctrl выбирает отдельные строки, Shift — диапазон.
Контекстное меню: Правый клик по строке дерева элементов открывает действия: выбрать, скрыть/показать дерево, открыть подменю Модуль, удалить элемент, удалить связи, сделать областью, развернуть или свернуть поддерево.
Видимость дерева: Глазик справа от имени элемента временно скрывает или показывает элемент, его потомков и связи на холсте. Скрытые элементы не удаляются из проекта, не выбираются кликом, не становятся родителями новых областей и не принимают новые связи.
Модуль поддерева: Меню Модуль создает компактный module.json для выбранной ветки дерева в папке <project>_artifacts/modules/ и generated helper-класс рядом с ним. Основной проект остается источником правды, а модуль используется как малый контекст для агента или codegen. Маленький badge M в строке дерева показывает, что у ветки есть модуль и в каком он состоянии. В том же меню можно скопировать готовый контекст для агента или обновить устаревшие модули. При создании можно оставить ссылки на общие assets или собрать self-contained папку модуля. Agent task создается рядом с модулем, а Отправить в Codex пишет request через существующий Codex VS Code bridge. Открытие выбранного IDE/code-tool и отправка в Codex выполняются на уровне корня проекта, чтобы агент видел зависимости и мог менять другие части проекта.
Удаление: Выберите element или feature и нажмите Delete. Screph запрашивает подтверждение; object lock, а для element также lock связанных удаляемых объектов, блокирует операцию.
Перемещение, вершины и подтверждение geometry
Move/Resize изменяют существующую canonical запись, а не создают копию. Object lock и lock соответствующего canvas layer блокируют жест. Для polygon/path element в режиме R можно перетаскивать вершины; Tab/Shift+Tab меняют активную вершину, стрелки сдвигают её на 1 px, Shift+стрелка — на 5 px, Ctrl+стрелка — на 10 px. Enter вставляет вершину на ближайшее ребро под курсором. Двойной клик по вершине удаляет её, по ребру — вставляет новую.
Element geometry проходит commit boundary. После Move/Resize изменение остаётся draft до смены selection/tool/source или другого finalize trigger. Если к старой geometry привязаны CV contexts, policy prompt показывает диалог: сохранить либо откатить geometry и отдельно выбрать refresh обычного CV, Video CV и mode workspaces. Без выбранного refresh старые results остаются видимыми как stale; тяжёлые методы автоматически не запускаются. Policies mark_stale и refresh_current выполняют соответствующий выбор без диалога. Feature geometry сохраняется своим project-history action при завершении жеста и этот element-dialog не использует.
Жизненный цикл признака
Признак — канонический объект проекта, а не только рамка на canvas. В зависимости от активного профиля Selector проект может хранить pixel (точка и sampled color), region (геометрия и summary), pattern, region_grid и static_diff. Все эти записи входят в один project history и сохраняются в image_features. Инструмент Y не создаёт отдельный тип: он назначает выбранному geometry-feature target point и сохраняет offset относительно геометрии.
Дублировать: контекстное меню создаёт новый ID/display ID и имя с суффиксом copy, сохраняя geometry/summary/параметры, но очищая crop, mask, preview и их asset metadata. Это новый объект, а не ещё одна ссылка на исходный asset.
Сделать шаблоном: создаёт отдельный pattern из geometry исходного признака, берёт summary из текущего изображения, ставит target в центр и использует начальные параметры similarity 0.8, exact=false, resize 1.0. Нужен реальный источник изображения.
Сетка и производная область:
Создать сетку из области создаёт новый region_grid с сеткой 3×3 по умолчанию; в свойствах строки и столбцы можно изменить в диапазоне 1…64. Подменю Производная область предлагает расширить, сжать, взять область слева/справа/выше/ниже; размер вводится в пикселях (для grow/inset по умолчанию 16, для соседней области 32), результат ограничивается границами source image.
Static diff: пункт появляется, если до открытия контекстного меню был выбран другой feature. Оба признака должны иметь geometry и доступный source image; результат хранит base/compare IDs, combined bbox, changed pixels и diff percent. Порог по умолчанию — 16.
В инспекторе признака доступны имя, canonical description, режим создания, owner, source, geometry/color/target, pattern settings, grid settings, relations, issues, read-only JSON projection и отдельные matches. Owner можно вручную назначить на выбранный element или снять; автоматическая membership selection area остаётся отдельным механизмом. Изменение target, geometry, source или grid помечает уже сохранённые bitmap assets stale, когда они существуют. Object lock и capability активного профиля могут отклонить любую такую мутацию.
Артефакты признака — отдельный слой. В свойствах и на вкладке Capture → Признаки видны crop, mask и preview, их ref, source hash, bbox-at-capture и статус (сохранён, live preview, устарел или требует исправления). Live preview не означает, что файл уже записан. Пересохранение требует сохранённого проекта с artifact store; можно исправить один признак или batch проблемных. Сначала восстанавливают отсутствующие source snapshots, затем пересохраняют assets; неудачное обновление откатывает изменённые файлы.
Selection area: состав и границы
Selection area — geometry-only контейнер: она может иметь rectangle, ellipse, polygon или lasso geometry и хранит состав элементов/признаков, но не пиксели, crop или image series. Важно: текущая membership-проверка использует bounding rectangle области, а не точное заполнение ellipse/polygon/path. По умолчанию автоматически попадают объекты, чей bounding box полностью находится в этом rectangle. При вложенных областях объект направляется в ближайшую, то есть наименьшую подходящую область.
Создать: нарисуйте назначение Область-контейнер, выберите Сделать областью для обычного элемента без изображений либо соберите элементы/признаки через Ctrl+клик и нажмите Создать область в InfoPanel. Кнопка Область вокруг строит контейнер вокруг выбранного элемента, его потомков и признаков с отступом 8 px.
Управлять составом: Обновить состав повторяет автоматический сбор; Привязать... выбирает один содержащийся объект, Привязать все — всех кандидатов, а Отвязать... удаляет объект из текущей области.
Membership lock: фиксирует для конкретного элемента или признака его текущее состояние и запрещает автоматическую перепривязку. Ручное отвязывание включает эту блокировку, ручная привязка снимает её. Это каноническое свойство объекта, отдельное от сохраняемого object lock и session-only блокировки слоя.
Перемещение и преобразование:
при стандартных настройках перемещение области сдвигает её дочерние элементы и признаки. В обычный удаляет семантику контейнера. Image payload блокирует обратное преобразование; имеющиеся frame bindings сначала снимаются через capture controller, и при ошибке операция отменяется.
Selection area не равна markup group. Область — видимый geometry-driven контейнер с GUI для состава. markup_groups — отдельные именованные канонические агрегаты существующих elements/features с roles и sequence indexes. Они загружаются, сохраняются и защищают участников от удаления. Typed TRACK_GROUP может создаваться или обновляться через подтверждённый UAV candidate-to-markup apply, но отдельного свободного visual CRUD-редактора в Selector нет; остальные producers используют canonical API.
Свойства элемента
Имя: Уникальное имя (авто или пользовательское).
Тип: тип из активного каталога разметки выбранного режима программы.
Координаты и размеры: Положение (X, Y) и размеры.
Иерархия: Информация о связях с другими элементами.
Аннотация: Текстовое описание элемента.
2. Инспекция изображения и измерения
Инструменты проверки пикселей находятся во вкладке Изображение InfoPanel, а гистограмма, профиль линии и evidence-сравнение — во вкладке Анализ изображения нижней панели Capture/Images. Они работают с активной canvas presentation и не изменяют исходные пиксели.
Представления A/B/C/D
Кнопка раскладки в панели меню создаёт до четырёх областей одного Canvas: A; A/B слева–справа или сверху–снизу; A слева и B/C справа; либо сетку A/B/C/D 2×2. Это не копии проекта: канонические elements, features, relations, selection и project history у всех областей общие. Различаются выбранный visual material и локальные параметры его показа.
Выбор и активация:
через шестерёнку области можно переименовать её, выбрать Source, рабочий CV-result или diagnostic presentation, режим показа и источник вырезки. Кнопка активации передаёт этой области canvas tools; stale, unmapped и read-only presentation не может стать владельцем редактирования. Такой запрос отклоняется, а если уже активная область стала несовместимой, owner возвращается к A.
Связанная навигация:
linked panes синхронизируют масштаб, центр viewport и canvas-курсор. Область A всегда входит в связанную группу; B/C/D можно отвязать для независимого zoom/pan. Навигация из совместимой read-only области всё ещё может двигать связанную группу, не передавая ей право менять разметку.
Закрытие и Reset: A закрыть нельзя; B/C/D закрываются явно, и это не удаляет выбранное presentation. Выбор меньшей раскладки не удаляет существующие области автоматически. Общий Reset — более сильное действие: он назначает Source области A, активирует её, закрывает B/C/D и возвращает layout к одной области.
Что сохраняется. Layout, размеры splitters, порядок и названия областей, assignments, linked/display/crop-source settings и безопасные presentation descriptors сохраняются в локальном ScrephData/local_state/selector_layout.json, а не в каноническом project package. Snapshot не содержит pixels и не сохраняет текущий zoom/center. Для рабочего processed_raster восстанавливается recipe/descriptor; после запуска с тем же Source результат помечается требующим явного пересчёта.
Пиксель, лупа и навигация
Пиксельный probe: показывает координаты, RGB, HEX, HSV и источник сразу под курсором и отдельно фиксирует стабильное значение после 0,5 секунды. Стабильные поля или весь набор можно скопировать.
Что измеряется: probe и профиль линии читают точный material-слой активной presentation. Если материал недоступен или его координаты не сопоставлены с canvas, Screph показывает diagnostic и не подменяет его незаметно raw-изображением.
Лупа: режимы Контекст 31×31, Детали 15×15 и Значения 9×9, с отдельными переключателями сетки, перекрестия и рамок.
Вид: Fit, масштаб 100%, pixel grid и изменяемый navigator/minimap. Navigator можно включать, менять его размер и использовать для перемещения viewport.
Слои canvas
Панель слоёв управляет шестью фиксированными группами: исходное изображение, CV-наложения, элементы и связи, признаки, preview ассистента и измерения. Для каждой группы доступны видимость, прозрачность, блокировка редактирования и перемещение выше/ниже.
Граница сохранения. Видимость, прозрачность и порядок слоёв входят в canonical project state. Блокировка — только состояние текущей сессии и после восстановления проекта сбрасывается.
Tone & Profile
Гистограмма: RGB, отдельные каналы или gray/LUT и уровни служат только для отображения. Это non-destructive display transform, а не изменение material или project image.
Профиль линии: нарисуйте линию на активной presentation, чтобы получить расстояние, координаты, R/G/B и яркость вдоль неё. Можно держать несколько измерений, выбирать и удалять их, использовать локальные Undo/Redo, копировать текущий профиль как TSV или явно экспортировать CSV.
Измерения временные. Линии и их локальная история не записываются в project package; при смене source они очищаются. CSV — отдельный пользовательский export, а не часть общего сохранения проекта.
Compare & Evidence
Read-only панель сопоставляет presentation A с выбранной B, включает Fit all и мерцающее сравнение с шагом 400 мс, а затем показывает Summary, Diagnostics и Provenance. Отчёт привязан к revision source/context: несовпадение помечает evidence как stale. Для registration, stabilization и industrial components используются специализированные inspectors; component-отчёт дополнительно даёт фильтр Accepted/Rejected, таблицу метрик и read-only overlay выбранного компонента.
3. Аннотации (текст/голос)
Аннотация — каноническое человекочитаемое описание объекта, а не отдельный prompt-файл. Текстовый и голосовой ввод изменяют одно и то же поле цели и проходят через project history.
Что можно описывать
Element / feature / feature match: поле description_human в карточке InfoPanel. Голосовая панель записывает transcript сюда же; отдельный параллельный «voice transcript» текущий UI не создаёт.
Relation edge: описание в edge inspector или диалоге Описание связи. Встроенный voice widget добавляет распознанный текст в draft; canonical edge меняется только после OK.
Image Series entry: поле annotation отдельной записи. Текст/голос в диалоге коммитятся по OK; Cancel оставляет запись без изменений. Заметка ко всему CV run редактируется отдельно и сейчас является text-only.
Голосовая аннотация
Выбранный recognizer — локальный Vosk либо явно настроенный Yandex, Google или OpenAI path — используется общим voice widget. Недоступный provider не заменяется другим автоматически.
Выберите element, feature или feature match. После создания этих объектов Screph сам запрашивает аннотацию; для feature target change это происходит, только если описания ещё нет. Image-series entry, CV save, edge и CV-run note автоматически voice widget не запускают.
Для ручного запуска нажмите Голос. аннот.. Виджет открывается с текущим описанием и делает несколько коротких попыток автозапуска записи.
Говорите чётко в микрофон; кнопка записи переключает запись и остановку.
Проверьте и при необходимости отредактируйте распознанный текст, затем нажмите Готово или Ctrl+Enter.
Escape или крестик закрывает widget без отправки результата. Потеря фокуса во время активной записи/recognition, переход к другой selection operation или запуск следующей voice-сессии могут финализировать текущую; для явной отмены используйте крестик или Escape. В Общие настройки → Режим работы режимы Копировать и скрыть и Копировать, очистить и скрыть пишут transcript только в clipboard и не обновляют объект.
Аннотация и semantic-команда
Оба пути могут вызвать semantic action.Голос. аннот. сначала сохраняет transcript у выбранной цели, затем при включённом process_voice_annotations передаёт его router с target context. Голос. команда (V) передаёт текст без сохранения аннотации. Поддерживаемые typed actions включают смену element/feature/edge type, hierarchy к предыдущему element, переключение инструмента, selection area вокруг набора и confirm/reject pending review; это не произвольная команда автоматизации.
По умолчанию semantics включена, для voice annotations действует fast_skip_non_commands, а high-confidence rule с confidence не ниже 0.72 может примениться сразу. Кнопки ✓/× активируются только для intent, реально поставленного в review queue. Настройка require_confirmation_for_llm подтверждает intent, уже помеченный requires_review; она сама не делает review обязательным для каждого LLM result. Для гарантированно чистой диктовки снимите Обрабатывать voice annotations или выберите Не запускать семантику для аннотаций.
4. Сохранение и загрузка проектов
Текущий проект — это каталог с каноническим <имя>.json, source images и связанными artifacts. Формат .sgaip больше не используется текущим load/save flow.
Сохранение
Файл → Сохранить проект:
Перезаписывает существующий файл или создаёт новый. Горячая клавиша: Ctrl+S.
Файл → Настройки сохранения... (Ctrl+Shift+S): выбор среды проекта, code tool, post-save действия, места сохранения и профиля feature projection. Кнопки диалога позволяют применить профиль без записи проекта или применить его и сразу сохранить.
Не путайте этот диалог с legacy-вкладкой Выбор элементов → Файлы и форматы в главном окне Settings: её видимые timestamp, PNG/JPG и JPEG-quality поля сохраняются, но текущий writer проекта их не использует.
Среда проекта
Доступные результаты сохранения зависят от режима программы. В режиме «Автоматизация GUI» можно выбрать Screph Automate или PyAutoGUI. В режимах «Общий», «Промышленное зрение» и «Автономные беспилотники» доступны соответствующий встроенный Screph CV (OpenCV / NumPy) и вариант «Без инструментов — только проект Screph». IDE и code tool выбираются отдельно и не переключают режим программы.
В текущий проект перезаписывает существующий current path; если его ещё нет, Screph спрашивает имя и создаёт каталог под default project root.
В подпроект всегда спрашивает имя и создаёт каталог внутри текущего project directory; если current project отсутствует, используется default root. Code-tool workspace при этом остаётся корнем родительского проекта.
Всегда спрашивать показывает имя и, только при существующем current project, выбор подпроекта.
Список «Будет создано» в диалоге — краткое описание target, а не полный manifest package: он не перечисляет автоматический for_ai_agent, каталог _artifacts и условные timeline/frame-bound sidecars.
elements, features, geometry, annotations, typed relations и markup groups;
registry entries tree modules, CV result references и выбранный save profile;
save/load diagnostics и artifact integrity report.
После успешного сохранения Screph автоматически создаёт рядом <name>.for_ai_agent.json. Это производная проекция для Screph Code/IDE, а не файл для повторного открытия в Selector. Timeline и frame-bound captures при наличии сохраняются в собственные sidecars; полный состав package описан в справке по данным и экспорту.
Загрузка и восстановление
Файл → Загрузить проект (Ctrl+O) открывает Менеджер проектов, а не простой file picker. Он рекурсивно рассматривает до 2000 подходящих JSON в выбранном каталоге, пропускает известные служебные файлы/artifact folders и разделяет записи на Проекты, Автосейвы и Проблемные.
Для выбранного проекта доступны history, graph/tree minimap, counts, tags, notes и diagnostics.
Менеджер умеет открыть, дублировать, переименовать, сохранить текущий проект в выбранную запись, восстановить autosave под новым именем и экспортировать карту в GraphML/HTML/JSON.
Выбрать файл... позволяет явно указать JSON. Canonical/autosave открывается из Manager только после schema checks и при наличии хотя бы одного element, edge, feature или feature match. Agent export не становится редактируемым проектом: если его ссылка на canonical существует, действие Открыть ведёт к этому canonical-файлу; tree module и произвольный JSON не открываются.
До открытия diagnostics Manager отражают роль JSON, ошибки чтения/schema, missing path и пустой domain; это не свежая полная artifact-integrity проверка. После фактической загрузки InfoPanel показывает текущий domain load report вместе с сохранёнными save reports.
При запуске Selector отдельно пытается восстановить autosave_session.json. Этот startup flow принимает elements/edges или один загруженный base image, поэтому autosave только со скриншотом может восстановиться при старте, хотя Manager помечает domain без объектов как неоткрываемый. Capture timeline восстанавливается своим отдельным механизмом.
Ошибка selector/capture autosave при закрытии требует отдельного решения пользователя. Selector autosave пишется перед закрытием только для dirty project; Capture может сохранить recording frames отдельно.
Duplicate/rename применяются только к обычному canonical project, а restore — к autosave. Они работают с каталогом целиком и согласуют primary JSON, timeline и frame-bound sidecar, но не пересобирают agent export и не переносят локальные tags/notes Manager. После операции сохраните проект ещё раз перед handoff.
Убрать из истории и Очистить пропавшие меняют только список recent paths; Project Manager не удаляет project files. Tags/notes хранятся отдельно по абсолютному пути и не входят в переносимый package. При создании нового проекта Screph предлагает сохранить текущий, продолжить без сохранения или отменить операцию; существующий timeline можно явно перенести в новый проект.
5. Работа с сериями изображений
Image Series элемента — набор его сохранённых визуальных состояний и прикреплённых CV outputs. Это не сам Capture timeline: timeline предоставляет source frames, а записи серии входят в canonical element и при сохранении переносят нужные изображения/artifacts в project package.
Серия выбранного элемента в InfoPanel
Начальный вид: для обычного нового элемента Screph старается создать запись 0 из выбранного crop source — material активной canvas presentation либо явно выбранного canonical source. Если нужный source недоступен, скрытого fallback нет.
Добавить текущий вид в серию: не делает простой screenshot. Кнопка запускает текущий метод CV через принудительный Apply/Save для выбранного элемента и назначает следующую числовую аннотацию. Поэтому она требует доступной CV-панели и может создать несколько output tiles одного run.
Карточка run: outputs одного cv_run_id группируются вместе. Двойной клик открывает файл; контекстное меню output позволяет открыть его, сделать mask/grayscale/cutout основным или убрать конкретный output. Если удалён последний output, удаляется и запись серии.
Описание и review:
контекстное меню карточки редактирует аннотацию текстом или голосом, заметку всего CV run, открывает Assistant с контекстом записи или удаляет запись. Числовые и автоматически созданные подписи помечаются ! до ручной проверки.
Geometry-only selection area не является изображением. К ней нельзя прикрепить initial/current view или frame crop: добавляйте изображения к дочерним элементам. Для кадрированной временной серии используйте отдельный тип рамки изображения.
Серия из рамки и Capture timeline
Контекстное меню рамки изображения даёт действия Захватить текущий кадр, Записать серию из рамки/Остановить запись серии и Показать захваченные кадры на таймлайне. Во время записи переход к новому кадру автоматически сохраняет crop рамки; одна рамка не получает повторный capture того же frame index. Рамка должна быть разблокирована, иметь корректную геометрию внутри кадра, а параллельно записывать другую рамку нельзя.
Изменение geometry активной рамки останавливает запись или перезапускает её согласно настройке. Удаление диапазона timeline remap-ит surviving frame bindings, а удаление записи серии сначала очищает её frame-bound binding. Индекс хранится рядом с проектом в <name>.frame-bound-image-series-index.json; сами entry и изображения сохраняются через canonical project и artifacts.
Навигация и монтаж source timeline
Timeline поддерживает first/previous/next/last, playback, speed и loop.
Для удаления выделите диапазон и выберите Удалить выделенное с таймлайна или нажмите Ctrl+Del. Контекстное меню также убирает клип или очищает timeline; исходные media files не изменяются.
Relation Graph визуализирует типизированные связи между canonical elements/features. Ребро описывает семантическое отношение и его properties; оно не становится кликом, переходом или шагом исполнения автоматически.
Что показывает вкладка Graph
Узлы: elements, selection areas, features и roots tree modules. Status отражает выбранный/скрытый объект, freshness модуля и issues признака.
Иерархия: связи parent → child строятся из canonical parent state и показываются отдельно от произвольных relations.
Владение:
переключает системные owner → feature edges; это визуальная проекция owner_element_id, а не ещё одна редактируемая пользовательская связь.
Связи:
показывает или скрывает пользовательские edges. Клик по узлу выбирает element/feature, клик по ребру открывает его свойства; control видимости у узла скрывает feature или целое element subtree.
Создание и редактирование связи
Откройте контекстное меню element или feature и выберите Создать связь..., затем вторую конечную точку.
Выберите Ассоциация, Поток или Логическая связь; для пары element → element также доступна Иерархия. Опция Поменять направление меняет source и target до создания.
Выберите edge на canvas или в Graph. Inspector показывает ID/source/target/type, редактируемое описание, read-only JSON properties и позволяет переназначить source либо target на существующий element/feature.
Контекстное меню edge также меняет тип, редактирует описание с voice input, открывает Assistant по связи или удаляет её.
Screph отклоняет self/missing endpoints, duplicate directed pair, hierarchy для feature и hierarchy cycle. Назначение нового parent переносит child из прежнего parent. Feature relations дополнительно зависят от capability FEATURE_RELATE активного режима.
Locks объектов и слоя — разные вещи. Lock конкретного element, feature или edge входит в canonical canvas_object_state, блокирует связанные mutations и поддерживает project Undo/Redo. Lock всего canvas layer остаётся только в текущей сессии.
Feature matches — не edges
Блок Совпадения в свойствах feature создаёт match по другому признаку или element, хранит kind, score 0…1, source, bbox/target и описание. Эти записи сохраняются отдельно в canonical feature_matches, но Relation Graph их сейчас не рисует как пользовательские edges.
Последовательность записанных действий хранится в Action Trace, а исполняемая логика — в automation script/runtime. CV Method Graph — третий отдельный граф вычислений.
7. Подготовка данных и эмуляция
В режиме «Автоматизация GUI» Screph подготавливает структурированный automation-контекст: изображения, выделения, аннотации, граф связей, состояния экрана и экспортируемый project.json. Эти данные можно использовать для эмуляции действий, для встроенного Screph Code и для внешних IDE или агентных инструментов.
В остальных режимах сохранение ведёт к каноническому проекту и встроенной CV-среде режима; GUI automation consumers там не предлагаются.
Фактические выходы GUI Automation
Screph Automate:project.json, main.py и runtime guide; явная кнопка Открыть результат открывает Automation Manager.
PyAutoGUI:project.json, main.py и отдельный guide. Для запуска нужен доступный script.runtime.
После canonical save Screph валидирует coordinate contract, затем подготавливает target-файлы. Ошибка блокирует безопасный automation handoff, но не удаляет уже записанные canonical/agent files.
Code tool после сохранения — best-effort downstream action: при выключенном/недоступном backend или ошибке launch/send уже сохранённый проект не откатывается. Контекстом служит for_ai_agent, если он доступен, иначе canonical JSON; совместимый backend может дополнительно получить generation request.
Подробный GUI-сценарий для встроенного Screph Code описан ниже в разделах 8-15: запуск, автозапуск при сохранении, передаваемый контекст, Builder, preview правок и восстановление.
8. Интеграция с IDE
Screph интегрируется с IDE и code tools в двух режимах. Первый режим — встроенный Screph Code, который можно открыть вручную или запускать автоматически при сохранении проекта. Второй режим — экспорт проекта, JSON и связанных артефактов во внешние IDE и агентные пайплайны.
Способы интеграции
Экспорт данных: Сохранение в формате для импорта в другие инструменты.
Копирование кода: Буфер обмена → IDE.
Файловая система: Сохранение в виде файлов.
Если вы работаете именно со встроенным Screph Code, переходите к разделам 8-15 ниже: там описаны окно Screph Code, вкладки Проект и Builder, горячие клавиши, diff preview, Откат, Чекпоинты и настройки.
9. Screph Code GUI: общий контекст и предварительные условия
Ниже начинается подробное руководство по встроенному Screph Code. Эти разделы раскрывают короткий обзор из предыдущих глав и описывают уже реализованный GUI-поток: выбор backend-а, запуск из Screph, передачу контекста, работу с Builder, preview правок, валидацию и восстановление.
Важно: этот guide относится только к встроенному редактору Screph Code. В настройках интеграции с кодом нужно выбрать Редактор кода: Screph Code [Встроенный]. Если выбран другой backend (Trae, PearAI и т.д.), кнопки на панели проекта будут открывать уже другой инструмент.
Screph Code работает с сохранённым проектом Screph, его project.json, рабочей папкой и guide-файлом выбранной стратегии сохранения.
Внутри Screph Code есть собственное окно с редактором кода, вкладкой Артефакты, панелью Проект и панелью Builder.
Для генерации и внесения правок используются те же настройки LLM, что выбраны для Screph Code в основном приложении.
Окно работает через отдельный процесс Pro Agent и требует доступных codegen.runtime и LLM-профиля роли codegen. Их отсутствие показывается явно.
Отдельный процесс — не sandbox и не универсальный approval gate
Pro Agent и окно Screph Code запускаются от имени текущего пользователя и наследуют environment процесса. Builder работает в agent-mode: его screph_file tools могут создавать и изменять файлы внутри выбранного workspace сразу во время запроса. В текущем основном GUI нет обязательного per-file diff/Apply перед каждой такой записью; вкладка Changes и кнопки Откат/Чекпоинты нельзя считать универсальной защитой. Используйте отдельную рабочую ветку или резервную копию. Embedded Monaco загружает статические assets с временного сервера на 127.0.0.1; это локальный HTTP origin, а не отправка к облачному редактору.
10. Как открыть Screph Code и как работает автозапуск
Ручной запуск
Откройте настройки интеграции с кодом и выберите Редактор кода: Screph Code [Встроенный].
При необходимости задайте базовые параметры Интеграция Screph Code: Папка проектов, Выходная папка, Шаблон промпта.
На панели проекта выберите редактор в выпадающем списке и используйте кнопку Screph Code.
Автозапуск при сохранении проекта
Чекбокс Автостарт: Screph Code сохраняет флаг post-save handoff. Если он включён, Screph после успешной подготовки target пытается запустить выбранный code tool и передать ему контекст проекта. Недоступный backend или ошибка launch/send не откатывает уже сохранённый проект.
В текущей реализации main save flow сначала создаёт canonical/agent package, затем проверяет и готовит target и только после этого выполняет best-effort code-tool handoff. Контекстом служит agent export, если он доступен, иначе canonical JSON.
Это правило относится к основному save flow. Save из Project Manager и некоторые legacy save entrypoints передают canonical project path напрямую, даже если рядом существует for_ai_agent sidecar. Кнопка Открыть редактор только запускает выбранный tool; без post-save handoff она сама не отправляет project context.
11. Что Screph передаёт в Screph Code
Запуск из Screph — это не просто открытие папки проекта. При сохранении формируется отдельный контекстный файл для Screph Code, из которого окно заполняет поля и при необходимости сразу стартует build-flow.
project_json:
путь к сохранённому JSON проекта.
output_dir:
рабочая директория проекта для generated files.
guide_path:
guide-файл выбранной стратегии сохранения, если он найден.
auto_generate — историческое имя поля: текущий consumer помещает стартовое сообщение в Builder и программно вызывает обычное действие Отправить. Отдельной команды Ctrl+B или изолированного generate-only pipeline в текущем окне нет.
12. Карта окна Screph Code и роль Builder
Левая колонка содержит пути JSON/Выход, ручные действия Open/Save/Save As, запуск/стоп/повтор текущего файла, runtime log/diagnostics/export и проводник workspace.
Центральная область содержит Monaco и вкладки Код, План, Изменения, Задачи, Исполнение и Материалы. Plan/Tasks отображают agent events, Execution — child-process run, Materials — сохранённые ответы и вспомогательные результаты.
Правая колонка Builder показывает LLM status/model, transcript, поле запроса, drag-and-drop attachments, голосовой ввод и кнопку Отправить. Enter отправляет запрос; Shift/Ctrl+Enter оставляют редактирование поля стандартному widget behavior.
Через context menu поля запроса можно вставить ссылку на текущий файл/selection или прикрепить текущий/выбранный project file. Active document, unsaved buffer, selection и attachments передаются как structured context; большие части могут быть усечены по budget и отражены в context chips.
13. Builder-запрос, запись workspace и запуск файла
Отправка задачи Builder
Сохраните проект или откройте Screph Code вручную.
Проверьте пути JSON и Выход, выбранную модель и workspace. При post-save handoff они заполняются из context payload.
Введите конкретную задачу, при необходимости приложите файлы или ссылку на current file/selection, затем нажмите Отправить или Enter.
Следите за Plan/Tasks и transcript. Stop просит текущую OpenHands conversation остановиться, но уже выполненные workspace writes автоматически не откатывает.
После ответа обновите/проверьте затронутые файлы в explorer и diff через Git или другой внешний инструмент. Финальный текст агента сам по себе не является доказательством того, какие файлы изменены.
Что означает ответ Builder
Текущий Builder всегда создаёт request с mode=agent. Он может только ответить текстом, но также может вызвать write-capable workspace tools. Поэтому Отправить — не read-only chat action. Write tools ограничивают путь выбранным workspace, однако отдельного confirmation на каждую операцию нет.
Ручное редактирование и выполнение
Monaco buffer сохраняется только кнопками Save/Save As. Кнопка Run — отдельное явное действие: она выполняет выбранный script в child process после доступного preflight, а Stop/Repeat управляют этим запуском. Это не Automation Runtime и не автоматическое исполнение сразу после ответа Builder.
14. Настройки, вкладки и история
Builder settings dialog сейчас содержит назначение LLM/model, default project/output paths и dependency actions для Python/PyAutoGUI. Старые prompt-template, validation/style и Gather/Chat/Agent controls в текущей surface отсутствуют.
Plan и Tasks — проекция OpenHands events, а не список подтверждений. Changes показывает только записи, которые были явно добавлены соответствующим producer; он не перехватывает автоматически каждую workspace write.
Кнопки Откат/Чекпоинты зависят от in-memory EditHistory. Текущий основной Builder Send path не регистрирует в ней прямые screph_file edits, поэтому эти кнопки не заменяют Git, backup или проверку файлов на диске.
Materials хранит большие Builder responses и вспомогательные artifacts локального workspace state. Открытие материала в Code загружает текст в editor buffer; для записи всё равно нужен Save/Save As.
15. Ошибки, предупреждения и восстановление
До запуска возможны типовые проблемы: не выбран JSON, не выбрана папка вывода, пустое поле Builder, недоступный LLM.
Если context budget сокращает history/retrieval, Builder показывает context/prompt chips с dropped/truncated state. Это означает неполный контекст, а не ошибку модели.
Если OpenHands завершил текстовый ответ, это не гарантирует создание нужного файла. Проверьте workspace и ожидаемый target вручную.
Stop переводит request в cancelled state, но не является rollback уже выполненных tool calls. При нежелательной записи восстанавливайте файл через Git/backup или screph_file undo_edit только пока соответствующий tool-session ещё хранит свой in-memory undo stack.
Run preflight и child-process execution имеют собственные diagnostics/log/export. Ошибка запущенного script не откатывает code files и не означает crash основного Screph process.
16. Практические советы по Screph Code
До отправки запроса создайте Git commit/branch или backup workspace, особенно при post-save autostart.
Формулируйте scope явно: целевой файл, допустимые соседние файлы, нужная проверка и запрет на запуск, если он не требуется.
Используйте attachment или current-file/selection reference для точного контекста; не полагайтесь на то, что агент сам выберет нужный файл из большого workspace.
После Builder проверяйте git diff, новые/удалённые files и содержимое ожидаемого target, затем запускайте script отдельной кнопкой Run или в Automation Runtime.
Сохраняйте canonical project перед handoff: так primary save flow сможет передать актуальный for_ai_agent projection и CV recipe references.