Налаштування SDK та керування розширеннями
Під час запуску sima-cli sdk setup виберіть додаткові служби SDK, розширення браузерного VS Code та джерело встановлення Model Compiler.
Довідка команди: sima-cli sdk setup
Збирання та поширення образу контейне ра
Під час налаштування SDK 3.0 або новішої версії з DevKit sima-cli пропонує створити невеликий локальний реєстр контейнерів. Реєстр зберігає образи на хості, тому вони залишаються доступними після заміни контейнера SDK.
Реєстр запускається на порту 5050. Якщо цей порт уже зайнятий, sima-cli автоматично вибирає наступний вільний порт і виводить вибрану адресу.
Налаштування також надає дві адреси всередині оболонки SDK:
SIMA_CONTAINER_REGISTRY— адреса, яку SDK використовує для надсилання образу.SIMA_DEVKIT_CONTAINER_REGISTRY— адреса, яку DevKit використовує для завантаження того самого образу.
Визначте застосунок у Dockerfile, а потім зберіть і надішліть образ ARM64 зсередини SDK:
docker buildx build \
--platform linux/arm64 \
--tag "${SIMA_CONTAINER_REGISTRY}/hello-neat:develop" \
--push \
.
Використовуйте dk container deploy, щоб завантажити образ із того самого реєстру та запустити його на підключеному DevKit:
dk container deploy hello-neat:develop \
--detach \
--name hello-neat \
--network host
Достатньо короткої назви образу. dk використовує адресу реєстру для DevKit, налаштовану sima-cli. Використовуйте dk container run hello-neat:develop ..., щоб запустити образ без його попереднього явного оновлення.
Реєстр використовує HTTP у локальній мережі розробки. Він доступн ий лише через петльовий інтерфейс для SDK та мережевий шлях до DevKit, а не через усі інтерфейси хоста.
У macOS налаштування розрізняє маршрути фізичної локальної мережі та Cloudex або інші маршрутизовані тунелі. Для фізичного маршруту використовується мостова адреса Colima. Тунель utun, WireGuard або подібний тунель не може передавати міст Ethernet, тому налаштування залишає Colima у спільному режимі та натомість вмикає network.hostAddresses. Завдяки цьому контейнер SDK може використовувати тунельний маршрут Mac, а реєстр — публікуватися на тунельній адресі Mac, яку використовує DevKit. Оскільки Colima зазвичай копіює також префікс підмережі тунелю, налаштування видаляє широкий маршрут підмережі з локальної таблиці маршрутизації віртуальної машини, але зберігає адресу Mac як локальний маршрут /32. Інакше віртуальна машина може помилково вважати вузол DevKit локальною адресою. Це виправлення зберігається після перезапусків Colima. Якщо активний профіль раніше був налаштований у мостовому режимі для фізичного підключення, налаштування використовує захищену процедуру повторного створення профілю, щоб перейти до спільного ре жиму зі збереженням перевіреного окремого диска даних Docker. Профілі, які неможливо безпечно створити повторно, зокрема профілі з увімкненим Kubernetes, не змінюються. Якщо адреса хоста тунелю зміниться, повторно підключіть тунель і знову запустіть налаштування.
Налаштування SDK не встановлює й не налаштовує Docker на DevKit. Перша команда dk container виконує потрібне встановлення Docker і налаштовує Docker для використання локального реєстру, перезапускаючи Docker лише тоді, коли налаштування реєстру змінюється. Завдяки цьому Docker залишається повністю необов’язковим для користувачів, які не розгортають контейнери. Для встановлення Docker потрібні явне підтвердження та доступ до репозиторію Docker для Debian через Інтернет. Безпарольний sudo не є передумовою: sima-cli налаштовує його для користувача DevKit під час встановлення.
Щоб пропустити цей крок, використовуйте --no-container-registry. Це не зупиняє й не видаляє наявний реєстр. Щоб вибрати інший порт, повторіть налаштування з --container-registry-port <port>. Збережені образи залишаються доступними після зміни порту.
Edgematic Studio
На образах Neat SDK налаштування без запиту встановлює Edgematic Studio, публікує його порт і запускає його. Це також стосується -y і --noninteractive. Підсумок показує URL Studio на панелі Edgematic Studio. Studio використовує порт хоста 8088 або інший вільний порт, якщо 8088 зайнятий.
Перед першим чатом увійдіть у свого агента програмування в налаштуваннях Studio. Studio не перезапускається разом із контейнером; якщо його URL перестає відкриватися, виконайте activate-edgematic-studio в оболонці контейнера SDK.
Використовуйте --no-edgematic-studio, щоб пропустити Studio й не публікувати його порт. Використовуйте --edgematic-studio-port, щоб опублікувати лише порт для подальшого ручного встановлення. --minimal і --no-insight також пропускають Studio. Ці параметри діють під час створення контейнера, бо зіставлення портів Docker не можна змінити згодом.
Якщо встановлення Studio не вдається, налаштування продовжується й виводить команду, щоб встановити його пізніше з оболонки контейнера SDK.
Вибір розширень браузерного VS Code
Neat автоматично встановлюється для поточного користувача SDK без запиту. Нові образи SDK містять розширення, яке налаштування копіює локально; старі образи використовують наявний механізм завантаження. --minimal пропускає налаштування розширень.
Інтерактивне налаштування пропонує необов’язкові розширення Codex і Claude. Вибирайте їх клавішею Space та підтверджуйте клавішею Enter. Спочатку жодне не вибране; відсутність вибору пропускає встановлення агентів програмування, а вже встановлені невибрані розширення залишаються.
Для автоматизації встановіть агентів програмування без списку вибору:
sima-cli sdk setup --noninteractive --all-extensions
--all-extensions пропускає лише вибір розширень. Для пропуску інших запитань використовуйте --noninteractive. Він також встановлює розширення під час повторного використання наявного контейнера SDK. Без нього -y і --noninteractive пропускають додаткові розширення, якщо їх не запитує застаріле налаштування SIMA_CLI_INSTALL_CODEX_EXTENSION. --all-extensions не можна поєднувати з --minimal; він не змінює вибір Edgematic Studio чи Model Compiler.
Версії розширень браузерного VS Code
У code-server (SDK 3.0 і новіших) Codex типово встановлює найновіший доступний випуск без закріплення версії. Явно вказана версія залишається закріпленою. Старі образи OpenVSCode зберігають закріплену сумісну версію Codex. Claude й надалі використовує точну закріплену версію. Для вибраних точних версій повторне налаштування замінює іншу версію; відповідна версія зберігається та закріплюється без повторного завантаження. Образи SDK можуть оголошувати перевірені версії в /etc/sima-neat/vscode-extensions.json:
{
"schema_version": 1,
"extensions": {
"openai.chatgpt": "26.5825.51511",
"anthropic.claude-code": "2.1.266"
}
}
Маніфест сам по собі не означає згоду користувача на встановлення. Схема версії 1 вимагає точних версій для обох ID. Старі образи без маніфесту використовують Codex 26.5825.51511 і Claude 2.1.266 як резервні версії сумісності. Нечитабельний або недійсний маніфест повідомляє про помилку та пропускає встановлення агентів програмування, але решта налаштування продовжується. Невдалі команди встановлення Codex або Claude виконуються до трьох разів із вибраною ціллю та звичайною перевіркою TLS.
Перевизначення змінними середовища мають пріоритет:
| Змінна | Поведінка |
|---|---|
SDK_SKIP_CODING_AGENT_INSTALL | Значення 1, true, yes або on пропускає запити й встановлення розширень Codex та Claude, навіть із --all-extensions. Налаштування Neat виконується; наявні агенти не видаляються. |
SIMA_CLI_CODEX_EXTENSION_ID | Перевизначає Codex через publisher.extension@exact-version; порожнє значення вимикає його, якщо не використано --all-extensions. |
SIMA_CLI_CLAUDE_EXTENSION_ID | Перевизначає Claude через publisher.extension@exact-version; порожнє значення вимикає його, якщо не використано --all-extensions. |
SIMA_CLI_INSTALL_CODEX_EXTENSION | Автоматично вибирає встановлення розширень без списку вибору. |
У code-server ID Codex без версії (або openai.chatgpt@latest) використовує найновіший випуск. Інші вбудовані ID без версії використовують закріплену версію SDK або типову версію; інші ID потребують явної версії. --minimal пропускає встановлення додаткових розширень. Налаштування перевіряє встановлені версії, записує прапорець metadata.pinned для кожного вибраного розширення (false для найновішого Codex) та перезапускає браузерний VS Code; після цього перезавантажте відкриту вкладку браузера.