@rsconcept/rstool 1.4.2 → 1.4.3
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/BASE-SELECTION.md +2 -2
- package/docs/DIAGNOSTICS.md +24 -24
- package/docs/DOMAIN.md +5 -5
- package/docs/PORTAL-API.md +2 -2
- package/docs/README.md +1 -1
- package/docs/SYNTAX.md +1 -1
- package/package.json +1 -1
- package/skills/rstool-helper/EXAMPLES.md +1 -1
- package/skills/rstool-helper/GUIDE.md +4 -4
- package/skills/rstool-helper/REFERENCE.md +1 -1
- package/skills/rstool-helper/SKILL.md +1 -1
package/docs/BASE-SELECTION.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
| :---------------------------------------------------------------------- | :---- | :--------------------------------------------------------------------------- |
|
|
9
9
|
| Предметные объекты без числового смысла: люди, документы, ситуации | `X#` | Элементы задаются интерпретацией и различаются только как элементы множества |
|
|
10
10
|
| Конечный именованный набор, где в формулах нужны порядок или арифметика | `C#` | Элементы интерпретируются в КМ, но поддерживают сравнение и арифметику языка |
|
|
11
|
-
| Чистые целые: размеры, счётчики, индексы, `card`, рекурсия над числами | `Z` | Это встроенная ступень
|
|
11
|
+
| Чистые целые: размеры, счётчики, индексы, `card`, рекурсия над числами | `Z` | Это встроенная ступень ЯРЭ; отдельная конституента не нужна |
|
|
12
12
|
|
|
13
13
|
```text
|
|
14
14
|
Нужно неопределяемое понятие?
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
2. Если формула «узнаёт» конкретные элементы базисного множества по способу, не заданному в схеме (скрытый порядок, кодирование атрибута константами) — вероятное нарушение переносимости или лишняя конституента.
|
|
39
39
|
3. Перед сохранением сомнительной формулы — `analyzeExpression`.
|
|
40
40
|
|
|
41
|
-
**Иллюстрация (родство):** при `X1 = {alice, bob, carol}` биективная замена на `{p1, p2, p3}` не меняет, кто чей родитель в `S1: ℬ(X1×X1)`, если пары переименованы согласованно. Формула `∀a,b∈X1 a < b` некорректна — порядок на людях в
|
|
41
|
+
**Иллюстрация (родство):** при `X1 = {alice, bob, carol}` биективная замена на `{p1, p2, p3}` не меняет, кто чей родитель в `S1: ℬ(X1×X1)`, если пары переименованы согласованно. Формула `∀a,b∈X1 a < b` некорректна — порядок на людях в ЯРЭ не задан.
|
|
42
42
|
|
|
43
43
|
## Детали по вариантам
|
|
44
44
|
|
package/docs/DIAGNOSTICS.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Диагностика
|
|
2
2
|
|
|
3
3
|
Читай, когда `analyzeExpression`, `applySchemaPatch`, `listDiagnostics` или `evaluate`
|
|
4
|
-
вернули диагностику. Коды ошибок
|
|
4
|
+
вернули диагностику. Коды ошибок ЯРЭ — `RSErrorCode` в `@rsconcept/domain`; коды схемы
|
|
5
5
|
и модели — `RSDiagnosticCode` в том же пакете (числовой формат совпадает).
|
|
6
6
|
|
|
7
7
|
## Формы диагностики
|
|
@@ -80,29 +80,29 @@
|
|
|
80
80
|
|
|
81
81
|
## Parser
|
|
82
82
|
|
|
83
|
-
| Код | Имя | `params` | Исправление
|
|
84
|
-
| -------- | -------------------------- | ------------------------- |
|
|
85
|
-
| `0x8400` | `unknownSyntax` | — | Неопределённая синтаксическая ошибка: проверь операторы, скобки, идентификаторы.
|
|
86
|
-
| `0x8401` | `forbiddenCharacter` | `[character]` | Символ не входит в
|
|
87
|
-
| `0x8409` | `bracketMismatch` | `[expected, actual]` | Закрой ожидаемой скобкой `expected` вместо `actual`.
|
|
88
|
-
| `0x840A` | `doubleParenthesis` | — | Убери лишнюю внешнюю пару `(( … ))`.
|
|
89
|
-
| `0x840B` | `missingOpenBracket` | `[bracket]` | Непарная закрывающая `bracket`: убери её или добавь открывающую.
|
|
90
|
-
| `0x840C` | `missingCloseBracket` | `[bracket]` | Непарная открывающая `bracket`: убери её или добавь закрывающую.
|
|
91
|
-
| `0x8415` | `expectedLocal` | — | Ожидалось имя локальной переменной.
|
|
92
|
-
| `0x8416` | `expectedType` | `[expectedClass, actual]` | Несоответствие класса выражения ожидаемому.
|
|
93
|
-
| `0x8417` | `invalidFilterSyntax` | — | Синтаксис `Fi`: `Fi1[D1](S1)`, `Fi1,2[D1,D2](S1)` или `Fi1,2[D3](S1)`.
|
|
94
|
-
| `0x8418` | `expectedFunctionBody` | — | Нужно тело функции после `[параметры]`.
|
|
95
|
-
| `0x8419` | `expectedExpressionBody` | — | Нужно теоретико-множественное тело функции (ТФ).
|
|
96
|
-
| `0x841A` | `expectedLogicBody` | — | Нужно логическое тело функции.
|
|
97
|
-
| `0x841B` | `expectedQuantifierBody` | — | Нужно логическое тело после `∀(∃)…∈домен`.
|
|
98
|
-
| `0x841C` | `expectedDeclarativeBody` | — | Допиши декларативное `D{…∈… \| …}`.
|
|
99
|
-
| `0x841D` | `expectedImperativeBody` | — | Допиши императивное `I{… \| …}`.
|
|
100
|
-
| `0x841E` | `expectedRecursiveBody` | — | Допиши рекурсивное `R{…:=… \| … \| …}`.
|
|
101
|
-
| `0x841F` | `expectedQuantifierDomain` | — | После переменной квантора нужны `∈` и домен.
|
|
102
|
-
| `0x8420` | `expectedRightOperand` | — | Нужен правый операнд после оператора.
|
|
103
|
-
| `0x8421` | `expectedUnaryOperand` | — | Нужно выражение после `¬`.
|
|
104
|
-
| `0x8422` | `globalFuncParenCall` | `[name]` | Вызов `F`/`P` только через `[…]`, не `(…)`.
|
|
105
|
-
| `0x8423` | `expectedArgument` | — | Нужен аргумент в списке `[…]` у F/P.
|
|
83
|
+
| Код | Имя | `params` | Исправление |
|
|
84
|
+
| -------- | -------------------------- | ------------------------- | -------------------------------------------------------------------------------- |
|
|
85
|
+
| `0x8400` | `unknownSyntax` | — | Неопределённая синтаксическая ошибка: проверь операторы, скобки, идентификаторы. |
|
|
86
|
+
| `0x8401` | `forbiddenCharacter` | `[character]` | Символ не входит в ЯРЭ (напр. `^` для степени). Удали или замени его. |
|
|
87
|
+
| `0x8409` | `bracketMismatch` | `[expected, actual]` | Закрой ожидаемой скобкой `expected` вместо `actual`. |
|
|
88
|
+
| `0x840A` | `doubleParenthesis` | — | Убери лишнюю внешнюю пару `(( … ))`. |
|
|
89
|
+
| `0x840B` | `missingOpenBracket` | `[bracket]` | Непарная закрывающая `bracket`: убери её или добавь открывающую. |
|
|
90
|
+
| `0x840C` | `missingCloseBracket` | `[bracket]` | Непарная открывающая `bracket`: убери её или добавь закрывающую. |
|
|
91
|
+
| `0x8415` | `expectedLocal` | — | Ожидалось имя локальной переменной. |
|
|
92
|
+
| `0x8416` | `expectedType` | `[expectedClass, actual]` | Несоответствие класса выражения ожидаемому. |
|
|
93
|
+
| `0x8417` | `invalidFilterSyntax` | — | Синтаксис `Fi`: `Fi1[D1](S1)`, `Fi1,2[D1,D2](S1)` или `Fi1,2[D3](S1)`. |
|
|
94
|
+
| `0x8418` | `expectedFunctionBody` | — | Нужно тело функции после `[параметры]`. |
|
|
95
|
+
| `0x8419` | `expectedExpressionBody` | — | Нужно теоретико-множественное тело функции (ТФ). |
|
|
96
|
+
| `0x841A` | `expectedLogicBody` | — | Нужно логическое тело функции. |
|
|
97
|
+
| `0x841B` | `expectedQuantifierBody` | — | Нужно логическое тело после `∀(∃)…∈домен`. |
|
|
98
|
+
| `0x841C` | `expectedDeclarativeBody` | — | Допиши декларативное `D{…∈… \| …}`. |
|
|
99
|
+
| `0x841D` | `expectedImperativeBody` | — | Допиши императивное `I{… \| …}`. |
|
|
100
|
+
| `0x841E` | `expectedRecursiveBody` | — | Допиши рекурсивное `R{…:=… \| … \| …}`. |
|
|
101
|
+
| `0x841F` | `expectedQuantifierDomain` | — | После переменной квантора нужны `∈` и домен. |
|
|
102
|
+
| `0x8420` | `expectedRightOperand` | — | Нужен правый операнд после оператора. |
|
|
103
|
+
| `0x8421` | `expectedUnaryOperand` | — | Нужно выражение после `¬`. |
|
|
104
|
+
| `0x8422` | `globalFuncParenCall` | `[name]` | Вызов `F`/`P` только через `[…]`, не `(…)`. |
|
|
105
|
+
| `0x8423` | `expectedArgument` | — | Нужен аргумент в списке `[…]` у F/P. |
|
|
106
106
|
|
|
107
107
|
## Предупреждения
|
|
108
108
|
|
package/docs/DOMAIN.md
CHANGED
|
@@ -8,19 +8,19 @@
|
|
|
8
8
|
- **Концептуальная схема (`КС`)** — система понятий, утверждений и связей между ними.
|
|
9
9
|
- **Концептуальная модель (`КМ`)** — КС плюс интерпретация ее понятий на конечных данных.
|
|
10
10
|
- **Операционная схема синтеза (`ОСС`)** — граф загрузок и синтезов КС.
|
|
11
|
-
-
|
|
11
|
+
- **ЯРЭ** (язык родоструктурной экспликации) — формальный язык для понятий, отношений, операций и утверждений.
|
|
12
12
|
- **Типизация / ступень** — структура значений выражения: элемент, целое, кортеж, множество, `Logic`.
|
|
13
13
|
- **Граф термов** — зависимости: конституента ссылается на другую в формальном определении.
|
|
14
14
|
|
|
15
15
|
## Классификация понятий КС
|
|
16
16
|
|
|
17
17
|
- **Неопределяемое понятие** — конституента, вводимая конвенцией (и при необходимости аксиомами), а не формальным определением. В родоструктурной экспликации: `X#`, `C#`, `S#`. Смысл задают `convention`, интерпретация и аксиомы.
|
|
18
|
-
- **Производное понятие** — конституента с формальным определением на
|
|
18
|
+
- **Производное понятие** — конституента с формальным определением на ЯРЭ: `D#`, `F#`, `P#` и связанные выводимые конструкции. Значение получают из определения при заданной интерпретации неопределяемых понятий.
|
|
19
19
|
- **Ядро КС** — неопределяемые понятия, аксиомы и производные понятия, необходимые для их формулировки.
|
|
20
20
|
- **Тело КС** — остальные конституенты схемы, не входящие в ядро.
|
|
21
|
-
- **Конвенция** — текстовое соглашение о том, как неопределяемое понятие соотносится с сущностями предметной области. В данных схемы хранится в поле `convention` конституенты. Конвенция не заменяет формальное определение и не проходит формальную проверку
|
|
21
|
+
- **Конвенция** — текстовое соглашение о том, как неопределяемое понятие соотносится с сущностями предметной области. В данных схемы хранится в поле `convention` конституенты. Конвенция не заменяет формальное определение и не проходит формальную проверку ЯРЭ. Она фиксирует предметный смысл, который нельзя вывести из формулы: что именно считается элементом множества, как читать компоненты кортежа, какой порядок в паре отношения, какие константы или операции подразумеваются. В конвенции используется предметный язык и термины, которые могут быть не выражены в концептуальной схеме.
|
|
22
22
|
- **Интерпретация** — соотнесение понятий КС с сущностями предметной области. В концептуальной модели задаётся значениями неопределяемых конституент и вычислением производных.
|
|
23
|
-
- **Биективная переносимость** — независимость значения формального определения от биективной замены интерпретаций неопределяемых понятий. Для `X#` опирается на несравнимость элементов; анализатор
|
|
23
|
+
- **Биективная переносимость** — независимость значения формального определения от биективной замены интерпретаций неопределяемых понятий. Для `X#` опирается на несравнимость элементов; анализатор ЯРЭ отсекает формулы, нарушающие переносимость.
|
|
24
24
|
|
|
25
25
|
## Конституенты
|
|
26
26
|
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
| `A#` | **Аксиома**: логическое требование к модели |
|
|
39
39
|
| `T#` | **Высказывание**: логическое утверждение о модели |
|
|
40
40
|
|
|
41
|
-
`Z` — встроенная ступень целых в
|
|
41
|
+
`Z` — встроенная ступень целых в ЯРЭ, **не конституента**. Для выбора между `X#`, `C#` и `Z` — [BASE-SELECTION.md](BASE-SELECTION.md).
|
|
42
42
|
|
|
43
43
|
`R#` — **радикал**, шаблонная ступень в доменах параметров `F#` / `P#`. Это тоже **не конституента**: в схеме нет записи с `alias` `R1`, `R2`, … и добавлять её не нужно ([SYNTAX.md](SYNTAX.md), раздел «Радикалы»).
|
|
44
44
|
|
package/docs/PORTAL-API.md
CHANGED
|
@@ -202,7 +202,7 @@ curl.exe -s "https://api.portal.acconcept.ru/api/rsforms/856/details"
|
|
|
202
202
|
| `crucial` | обычно не переносить | UI/Portal-флаг |
|
|
203
203
|
| `value_is_property` | обычно не переносить | Переопределение класса интерпретируемости |
|
|
204
204
|
|
|
205
|
-
`inheritance`, `attribution`, `oss`, `models`, `versions`, `editors` полезны для контекста Portal, но не нужны для базовой проверки
|
|
205
|
+
`inheritance`, `attribution`, `oss`, `models`, `versions`, `editors` полезны для контекста Portal, но не нужны для базовой проверки ЯРЭ в `rstool`.
|
|
206
206
|
|
|
207
207
|
## Как перенести КС в rstool
|
|
208
208
|
|
|
@@ -265,7 +265,7 @@ tool.applySchemaPatch(
|
|
|
265
265
|
**до** следующего шага пайплайна (например вызова `npx tsx`), скрипт оборвётся и артефакт
|
|
266
266
|
не обновится.
|
|
267
267
|
|
|
268
|
-
- **Запись JSON** — всегда UTF-8; для
|
|
268
|
+
- **Запись JSON** — всегда UTF-8; для символов ЯРЭ в формулах не экранируй Unicode в JSON:
|
|
269
269
|
|
|
270
270
|
```python
|
|
271
271
|
path.write_text(json.dumps(payload, ensure_ascii=False, indent=2), encoding='utf-8')
|
package/docs/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
- **CONCEPTUAL-SCHEMA.md** — проектирование и ревью концептуальных схем.
|
|
11
11
|
- **CONSTITUENTA.md** — структура и правила конституент.
|
|
12
12
|
- **BASE-SELECTION.md** — выбор основания: `X#`, `C#` или `Z`.
|
|
13
|
-
- **SYNTAX.md** — синтаксис
|
|
13
|
+
- **SYNTAX.md** — синтаксис ЯРЭ: операторы, генераторы `D{}`/`I{}`/`R{}`, кванторы, `F#`/`P#`.
|
|
14
14
|
- **TYPIFICATION.md** — типизация (`AnalysisResult.type`, `valueClass`).
|
|
15
15
|
- **MODEL-TESTING.md** — проверка семантики определений на маленьких концептуальных моделях.
|
|
16
16
|
- **DIAGNOSTICS.md** — диагностики анализа и способы исправления ошибок.
|
package/docs/SYNTAX.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsconcept/rstool",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.3",
|
|
4
4
|
"description": "Agent-facing library for incremental RSForm construction, RSLang analysis, diagnostics, modeling, and evaluation. Wraps @rsconcept/domain with a deterministic session contract.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "IRBorisov",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ЯРЭ и rstool
|
|
2
2
|
|
|
3
3
|
Краткий входной гайд для агентов. Детали — в связанных документах.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**ЯРЭ** (язык родоструктурной экспликации) — формальная нотация концептуальных схем: понятия, отношения, операции, утверждения. Основа: принадлежность `x∈y`, теоретико-множественные и логические выражения, типизация.
|
|
6
6
|
|
|
7
7
|
**rstool** — API агента для сессий, редактирования схемы, анализа, диагностик, значений модели, вычисления, экспорта/импорта.
|
|
8
8
|
|
|
@@ -51,7 +51,7 @@ pnpm --filter @rsconcept/rstool exec tsx path/to/your/build-schema.ts
|
|
|
51
51
|
- **`X#` / `C#` / `Z`:** [../../docs/BASE-SELECTION.md](../../docs/BASE-SELECTION.md) — когда какое основание вводить.
|
|
52
52
|
- Концептуализация, создание схемы: [../../docs/CONCEPTUAL-SCHEMA.md](../../docs/CONCEPTUAL-SCHEMA.md).
|
|
53
53
|
- Конституенты и валидация: [../../docs/CONSTITUENTA.md](../../docs/CONSTITUENTA.md).
|
|
54
|
-
- Синтаксис
|
|
54
|
+
- Синтаксис ЯРЭ: [../../docs/SYNTAX.md](../../docs/SYNTAX.md).
|
|
55
55
|
- Типизация: [../../docs/TYPIFICATION.md](../../docs/TYPIFICATION.md).
|
|
56
56
|
- Проверка определений на КМ: [../../docs/MODEL-TESTING.md](../../docs/MODEL-TESTING.md).
|
|
57
57
|
- Диагностики: [../../docs/DIAGNOSTICS.md](../../docs/DIAGNOSTICS.md).
|
|
@@ -166,7 +166,7 @@ kind `auto` (default) определит `portal-details` или `portal-schema`
|
|
|
166
166
|
| `importData` | импорт данных |
|
|
167
167
|
| session, `sessionId` | сессия |
|
|
168
168
|
|
|
169
|
-
Имена конституент (`X1`, `S2`, `D3`) и формулы
|
|
169
|
+
Имена конституент (`X1`, `S2`, `D3`) и формулы ЯРЭ — часть схемы, их приводи как есть; лучше вместе с термином: «терм `D3` (родитель)». Названия методов упоминай, только если пользователь спрашивает про rstool как инструмент.
|
|
170
170
|
|
|
171
171
|
Словарь выше — про поля rstool. Для **понятий схемы** каноничный источник — [DOMAIN.md](../../docs/DOMAIN.md).
|
|
172
172
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rstool-helper
|
|
3
3
|
description: >-
|
|
4
|
-
|
|
4
|
+
ЯРЭ (язык родоструктурной экспликации), формальные определения и проектирование концептуальных схем для агентов. Читай GUIDE и docs из node_modules.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# rstool-helper
|