mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-28 22:19:41 +03:00
Неверный входной JSON ронял скрипты необработанным исключением: PS1 отдавал дамп
ConvertFrom-Json с CategoryInfo, py-порт — traceback с внутренностями json/decoder.py.
Имя файла в сообщении не фигурировало, а для полиморфного -Value не было видно, какую
форму ждёт операция.
Общий хелпер ConvertFrom-JsonInput / parse_json_input в 12 навыках × 2 порта (24 места),
зарегистрирован семьёй в check-inline-drift.mjs — копии держит гард. Сообщение в одну
строку: ожидаемая форма, полученное значение, текст парсера в скобках.
Эхо полученного значения нужно потому, что съеденные оболочкой кавычки дают почти тот же
JSON ({group:X} вместо {"group":"X"}), и без него агент считает свой вызов верным. PS 5.1
печатает лишь огрызок и локализованно, Python — только номер колонки.
Возврат в PS1 через Write-Output -NoEnumerate: вынос разбора в функцию добавляет второй
анруллинг, и одноэлементный JSON-массив стал бы скаляром. Импорты внутри тела py-хелпера —
skd-decompile импортирует json локально как _json, а тело семьи обязано быть одинаковым.
В раннер добавлен inputRaw (запись входного файла дословно): через case.input битый JSON
невыразим, JSON.stringify всегда даёт валидный документ.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
28 lines
643 B
JSON
28 lines
643 B
JSON
{
|
|
"name": "group-order из одного элемента: массив не разворачивается в скаляр",
|
|
"preRun": [
|
|
{
|
|
"script": "subsystem-compile/scripts/subsystem-compile",
|
|
"input": {
|
|
"name": "Продажи"
|
|
},
|
|
"args": {
|
|
"-DefinitionFile": "{inputFile}",
|
|
"-OutputDir": "{workDir}"
|
|
}
|
|
}
|
|
],
|
|
"params": {
|
|
"ciPath": "Subsystems/Продажи/CommandInterface"
|
|
},
|
|
"input": [
|
|
{
|
|
"operation": "group-order",
|
|
"value": "[\"NavigationPanel.Important\"]"
|
|
}
|
|
],
|
|
"expect": {
|
|
"stdoutContains": "Set group order: 1 entries"
|
|
}
|
|
}
|