Подключение к настроенной службе рабочего пространства

Подключитесь к настроенной службе рабочего пространства, проверьте эксперименты и сохранённые файлы и выполните проверенную замену в одном файле с восстановлением после конфликтов.

Используйте Altifigence CLI 0.1.9 в Linux для работы с существующей службой рабочего пространства Digital Design Studio. Оператор предоставляет адрес источника службы, доступ к рабочему пространству и сведения о включённых функциях. Запросы обращаются к файлам рабочего пространства и экспериментам этой службы.

Перед чтением сохранённого результата убедитесь, что код завершения равен 0. Сохраняйте стандартный поток ошибок отдельно и проверяйте поля результата, описанные ниже.

Настройка подключения

Задайте в ALTI_STUDIO_ENDPOINT адрес источника, предоставленный оператором. Удалённые службы используют HTTPS; службы на петлевом IP-адресе могут использовать HTTP. Укажите адрес источника с пустым путём и настройте предоставленный оператором ALTI_STUDIO_SERVICE_SECRET, если включена аутентификация. CLI передаёт это значение как x-service-secret. Для каждой команды также можно выбрать адрес источника с помощью --endpoint.

Проверка экспериментов и сохранённых файлов

После настройки подключения выведите список не более чем из 5 экспериментов. Пустое рабочее пространство возвращает квитанцию, пример которой приведён ниже; при HTTP 200 код завершения равен 0.

alti --json ide service evolve list --limit 5
{"schema":"altifigence.dds.service-receipt.v1","operation":"evolve.list","ok":true,"httpStatus":200,"body":{"runs":[]}}

Для сохранённого результата используйте его точный путь в рабочем пространстве службы. Замените путь из примера на файл, существующий в рабочем пространстве, к которому у вас есть доступ. Тело ответа сохраняет поля файла владельца, включая content.

alti --json ide service evolve read-file evolve/adder/results/report.md

Поиск и замена в одном проверенном файле

Для поиска текста в рабочем пространстве требуется служба в Linux. Выполните поиск в той же службе, в которой будете выполнять замену, затем проверьте найденный файл, позиции совпадений и метаданные охвата. Каждое совпадение содержит contentHash. CLI сохраняет truncated и replaceScopeComplete, чтобы вы могли оценить охват возвращённых результатов.

alti --json ide service workspace search --query old_signal --match-case --whole-word

Сохраните следующий документ как replace.json, заменив пример хеша из 64 символов на фактический contentHash выбранного совпадения в rtl/top.sv. Запрос и параметры должны соответствовать проверенным вами. Запрос направлен на один файл; если match не указан, замена применяется к совпадениям в этом файле. Ожидаемый хеш привязывает обновление к проверенной вами версии файла.

{
  "query": "old_signal",
  "replacement": "new_signal",
  "options": {
    "matchCase": true,
    "wholeWord": true
  },
  "paths": [
    "rtl/top.sv"
  ],
  "expectedHashes": {
    "rtl/top.sv": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
  }
}
alti --json ide service workspace replace --request replace.json

Восстановление после конфликтов и ошибок настройки

Если файл изменился, возвращается квитанция конфликта, пример которой показан ниже. При HTTP 409 код завершения равен 1. Повторите поиск в той же службе, проверьте текущие совпадения и версию файла, затем обновите expectedHashes новым contentHash перед отправкой нового запроса на замену.

{"schema":"altifigence.dds.service-receipt.v1","operation":"workspace.replace","ok":false,"httpStatus":409,"body":{"ok":false,"code":"search_replace_conflict","conflicts":[{"path":"rtl/top.sv","expectedHash":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","actualHash":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}],"replacements":0,"files":[]}}

При STUDIO_ENDPOINT_REQUIRED с httpStatus: null код завершения равен 2: настройте адрес источника, предоставленный оператором, и повторите запуск. При HTTP 401 получите у оператора соответствующий секрет службы. Если после замены истекло время ожидания, проверьте текущий файл и повторите поиск, прежде чем решать, нужно ли ещё одно обновление.