@rsconcept/rstool 0.8.0 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/DIAGNOSTICS.md +13 -23
- package/docs/PORTAL-API.md +20 -0
- package/package.json +3 -3
package/docs/DIAGNOSTICS.md
CHANGED
|
@@ -22,14 +22,12 @@
|
|
|
22
22
|
## Частые parser-коды
|
|
23
23
|
|
|
24
24
|
- `0x8400 unknownSyntax` — неопределенная синтаксическая ошибка.
|
|
25
|
-
- `
|
|
26
|
-
- `0x8407 missingCurlyBrace` — не закрыты `{` `}`.
|
|
27
|
-
- `0x8408 missingSquareBracket` — не закрыты `[` `]`.
|
|
28
|
-
- `0x8409 bracketMismatch` — смешаны типы скобок.
|
|
25
|
+
- `0x8409 bracketMismatch` — неверная закрывающая скобка (`params`: ожидаемая, фактическая).
|
|
29
26
|
- `0x840A doubleParenthesis` — лишняя пара скобок.
|
|
30
|
-
- `0x840B missingOpenBracket` — закрывающая скобка
|
|
27
|
+
- `0x840B missingOpenBracket` — непарная закрывающая скобка (`params`: сама скобка).
|
|
28
|
+
- `0x840C missingCloseBracket` — непарная открывающая скобка (`params`: сама скобка).
|
|
31
29
|
- `0x8415 expectedLocal` — нужна локальная переменная.
|
|
32
|
-
- `0x8416 expectedType` —
|
|
30
|
+
- `0x8416 expectedType` — тип выражения не соответствует ожидаемому.
|
|
33
31
|
|
|
34
32
|
## Локальные переменные
|
|
35
33
|
|
|
@@ -41,21 +39,23 @@
|
|
|
41
39
|
|
|
42
40
|
## Типизации и структура
|
|
43
41
|
|
|
44
|
-
- `0x8803 typesNotEqual` / `0x8825 typesNotCompatible` — операнды
|
|
42
|
+
- `0x8803 typesNotEqual` / `0x8825 typesNotCompatible` — операнды несовместимы для оператора (`params`: тип A, тип B, оператор).
|
|
45
43
|
- `0x8804 globalNotTyped` — сначала добавь и проанализируй поставщика.
|
|
46
44
|
- `0x8805 invalidDecart`, `0x8806 invalidBoolean`, `0x8810 invalidReduce` — неверная ступень для операции.
|
|
45
|
+
- `0x8807 invalidTypeOperation` — аргумент оператора (`∪`, `∈`, `D{}`, `:∈` и т.д.) должен быть множеством (`params`: оператор, тип).
|
|
47
46
|
- `0x8808 invalidCard` — `card(...)` не над множеством.
|
|
48
47
|
- `0x8809 invalidDebool` — нет гарантии синглетона.
|
|
49
|
-
- `0x880B globalFuncWithoutArgs` —
|
|
48
|
+
- `0x880B globalFuncWithoutArgs` — терм-функция или предикат-функция вызвана без указания аргументов.
|
|
50
49
|
- `0x8811 invalidProjectionTuple`, `0x8812 invalidProjectionSet` — неверная проекция.
|
|
51
50
|
- `0x8813 invalidEnumeration` — элементы перечисления разных ступеней.
|
|
52
|
-
- `0x8816 invalidElementPredicate` — `ξ ∈ S` с несовместимыми
|
|
51
|
+
- `0x8816 invalidElementPredicate` — `ξ ∈ S` с несовместимыми ступенями (`params`: тип элемента, оператор, тип множества).
|
|
53
52
|
- `0x8818 invalidArgsArity`, `0x8819 invalidArgumentType` — неверный вызов функции.
|
|
54
53
|
- `0x8821 radicalUsage` — радикал вне домена параметра.
|
|
55
|
-
- `0x8822 invalidFilterArgumentType`, `0x8823 invalidFilterArity` — неверный `Fi
|
|
56
|
-
- `0x8824 arithmeticNotSupported`, `0x8826 orderingNotSupported` — нужна ступень `Z
|
|
54
|
+
- `0x8822 invalidFilterArgumentType`, `0x8823 invalidFilterArity`, `0x882B invalidFilterParameterType` — неверный `Fi` (`params` для параметра: тип параметра, ожидаемый тип компонента аргумента, оператор).
|
|
55
|
+
- `0x8824 arithmeticNotSupported`, `0x8826 orderingNotSupported` — тип не поддерживает оператор (`params`: тип, оператор); для арифметики/порядка нужна ступень `Z` или `C#`.
|
|
57
56
|
- `0x8827 expectedLogic` — нужна логическая формула.
|
|
58
57
|
- `0x8828 expectedSetexpr` — нужно теоретико-множественное выражение, а не логика.
|
|
58
|
+
- `0x882A invalidQuantifierDomain` — в кванторной декларации `∀`/`∃` область должна быть множеством (`params`: оператор, тип).
|
|
59
59
|
|
|
60
60
|
## Схема и вычисление
|
|
61
61
|
|
|
@@ -64,20 +64,10 @@
|
|
|
64
64
|
- `0x8840 globalNoValue` / `0x8103 calcGlobalMissing` — нет значения в модели.
|
|
65
65
|
- `0x8841 invalidPropertyUsage` — `Property` использован как вычислимое значение.
|
|
66
66
|
- `0x8101 setOverflow`, `0x8102 booleanBaseLimit`, `0x8104 iterationsLimit` — выражение слишком дорого вычислять.
|
|
67
|
-
- `0x8100 calcUnknownError` — непредвиденная ошибка
|
|
67
|
+
- `0x8100 calcUnknownError` — непредвиденная ошибка вычисления.
|
|
68
68
|
- `0x8105 calcInvalidDebool` — `debool` получил не синглетон.
|
|
69
69
|
- `0x8106 iterateInfinity`, `0x8107 calculationNotSupported` — конструкция не исполнима в конечной модели.
|
|
70
|
-
- `0x8108 calcInvalidData` — несовместимые значения в runtime (`params`:
|
|
71
|
-
|
|
72
|
-
## Типичные ошибки агентов
|
|
73
|
-
|
|
74
|
-
- Задавать значение `term`/`axiom`/`statement` напрямую.
|
|
75
|
-
- Писать формулу у `basic` или `constant`.
|
|
76
|
-
- Добавлять потребителя раньше поставщика.
|
|
77
|
-
- Давать логическое тело `term` или нелогическое тело `axiom`/`statement`.
|
|
78
|
-
- Использовать `R#` в теле результата.
|
|
79
|
-
- Вычислять производные понятия до привязки данных для базовых.
|
|
80
|
-
- Сравнивать или комбинировать значения несовместимых ступеней в модели (ожидай `0x8108 calcInvalidData`).
|
|
70
|
+
- `0x8108 calcInvalidData` — несовместимые значения в runtime (`params`: значение A, значение B, оператор).
|
|
81
71
|
|
|
82
72
|
## Цикл исправления
|
|
83
73
|
|
package/docs/PORTAL-API.md
CHANGED
|
@@ -102,6 +102,26 @@ for (const item of portal.items) {
|
|
|
102
102
|
а не alias `curl` (`Invoke-WebRequest`), если нужен CLI-синтаксис curl.
|
|
103
103
|
- Сначала бери метаданные, если нужно только название или доступность схемы.
|
|
104
104
|
|
|
105
|
+
### Windows: кодировка в скриптах пайплайна
|
|
106
|
+
|
|
107
|
+
На Windows консоль по умолчанию часто **cp1251**; Python `print` падает с `UnicodeEncodeError`
|
|
108
|
+
на символах вне этой таблицы (стрелки `→`, математика в логах и т.п.). Если `print` стоит
|
|
109
|
+
**до** следующего шага пайплайна (например вызова `npx tsx`), скрипт оборвётся и артефакт
|
|
110
|
+
не обновится.
|
|
111
|
+
|
|
112
|
+
- **Запись JSON** — всегда UTF-8; для RSLang-символов в формулах не экранируй Unicode в JSON:
|
|
113
|
+
|
|
114
|
+
```python
|
|
115
|
+
path.write_text(json.dumps(payload, ensure_ascii=False, indent=2), encoding='utf-8')
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
- **Чтение** — `encoding='utf-8'`; для fetch API предпочитай `urllib` / `requests`, не
|
|
119
|
+
`Out-File` без явной UTF-8 в PowerShell.
|
|
120
|
+
- **Логи в `print`** — ASCII (`->`, `...`) или только id/alias без математики; не полагайся
|
|
121
|
+
на то, что консоль UTF-8.
|
|
122
|
+
- При необходимости Unicode в stdout: `PYTHONIOENCODING=utf-8` или `sys.stdout.reconfigure(encoding='utf-8')`
|
|
123
|
+
(Python 3.7+), но для агентских скриптов проще держать вывод в ASCII.
|
|
124
|
+
|
|
105
125
|
## Не делай
|
|
106
126
|
|
|
107
127
|
- Не парси HTML SPA.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsconcept/rstool",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.2",
|
|
4
4
|
"description": "Agent-facing library for incremental RSForm construction, RSLang analysis, diagnostics, modeling, and evaluation. Wraps @rsconcept/domain with a deterministic session contract and stdio wrapper.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "IRBorisov",
|
|
@@ -70,10 +70,10 @@
|
|
|
70
70
|
"prepublishOnly": "npm run build"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@rsconcept/domain": "^1.4.
|
|
73
|
+
"@rsconcept/domain": "^1.4.5"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
|
-
"@types/node": "^
|
|
76
|
+
"@types/node": "^26.0.1",
|
|
77
77
|
"tsdown": "^0.22.3",
|
|
78
78
|
"tsx": "^4.22.4",
|
|
79
79
|
"typescript": "^6.0.3",
|