@rsconcept/rstool 1.7.1 → 2.0.0
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/README.md +7 -7
- package/dist/index.js +1 -1
- package/dist/mappers/model-adapter.d.ts +6 -2
- package/dist/mappers/model-adapter.js +28 -3
- package/dist/mappers/model-adapter.js.map +1 -1
- package/dist/mappers/schema-adapter.d.ts +1 -2
- package/dist/mappers/schema-adapter.js +1 -1
- package/dist/mappers/types.d.ts +4 -5
- package/dist/models/index.js +1 -1
- package/dist/models/rstool-agent.js +1 -2
- package/dist/{models-DG2uTaV_.js → models-D06g8LId.js} +6 -5
- package/dist/{models-DG2uTaV_.js.map → models-D06g8LId.js.map} +1 -1
- package/dist/{rsform-builder-DKwZfJvN.js → rsform-builder-BlXEe5Ow.js} +2 -2
- package/dist/{rsform-builder-DKwZfJvN.js.map → rsform-builder-BlXEe5Ow.js.map} +1 -1
- package/dist/session/session-store.d.ts +3 -3
- package/dist/session/session-store.js +1 -2
- package/dist/wrapper/client.d.ts +15 -9
- package/dist/wrapper/client.js +79 -12
- package/dist/wrapper/client.js.map +1 -1
- package/dist/wrapper/stdio-wrapper.d.ts +1 -1
- package/dist/wrapper/stdio-wrapper.js +18 -10
- package/dist/wrapper/stdio-wrapper.js.map +1 -1
- package/docs/BRIEF.md +93 -0
- package/docs/CONCEPTUAL-SCHEMA.md +17 -2
- package/docs/CONSTRUCTIONS.md +384 -0
- package/docs/DIAGNOSTICS.md +9 -8
- package/docs/DOMAIN.md +12 -0
- package/docs/METHOD.md +208 -0
- package/docs/MODEL-TESTING.md +48 -0
- package/docs/PORTAL-API.md +38 -285
- package/docs/PORTAL-MODELS.md +24 -0
- package/docs/PORTAL-OSS.md +56 -0
- package/docs/PORTAL-PUBLISH.md +39 -0
- package/docs/PORTAL-READ.md +301 -0
- package/docs/README.md +8 -4
- package/docs/REQUIREMENTS.md +61 -0
- package/docs/SYNTAX.md +5 -4
- package/docs/TYPIFICATION.md +12 -3
- package/docs/brief.schema.json +173 -0
- package/examples/README.md +16 -2
- package/examples/access-control/NOTES.md +23 -0
- package/examples/access-control/anti/collapsed.json +439 -0
- package/examples/access-control/anti/weakened.json +439 -0
- package/examples/access-control/brief-v1.json +231 -0
- package/examples/access-control/brief.json +310 -0
- package/examples/access-control/build-rsform.ts +151 -0
- package/examples/access-control/requirements-v1.md +9 -0
- package/examples/access-control/requirements-v2.md +4 -0
- package/examples/access-control/rsform-session-v1.json +439 -0
- package/examples/access-control/rsform-session.json +523 -0
- package/examples/audit-diagnostics.ts +9 -1
- package/examples/briefs.test.ts +126 -0
- package/examples/clinic-booking/NOTES.md +24 -0
- package/examples/clinic-booking/anti/collapsed.json +615 -0
- package/examples/clinic-booking/anti/species-as-genus.json +568 -0
- package/examples/clinic-booking/brief-v1.json +332 -0
- package/examples/clinic-booking/brief.json +405 -0
- package/examples/clinic-booking/build-rsform.ts +174 -0
- package/examples/clinic-booking/requirements-v1.md +9 -0
- package/examples/clinic-booking/requirements-v2.md +4 -0
- package/examples/clinic-booking/rsform-session-v1.json +615 -0
- package/examples/clinic-booking/rsform-session.json +700 -0
- package/examples/diagnostics-utils.ts +26 -0
- package/examples/kinship/brief.json +337 -0
- package/examples/kinship/build-rsform.ts +7 -4
- package/examples/kinship/rsform-session.json +20 -63
- package/examples/kinship/rsmodel-session.json +14 -14
- package/examples/kinship-subordination/NOTES.md +49 -0
- package/examples/kinship-subordination/brief.json +161 -0
- package/examples/kinship-subordination/build-rsform.ts +100 -0
- package/examples/kinship-subordination/rsform-session.json +795 -0
- package/examples/library-loans/NOTES.md +46 -0
- package/examples/library-loans/anti/collapsed.json +481 -0
- package/examples/library-loans/anti/species-as-genus.json +334 -0
- package/examples/library-loans/anti/uncovered.json +406 -0
- package/examples/library-loans/anti/weakened.json +464 -0
- package/examples/library-loans/brief-v1.json +340 -0
- package/examples/library-loans/brief.json +502 -0
- package/examples/library-loans/build-rsform.ts +239 -0
- package/examples/library-loans/requirements-v1.md +11 -0
- package/examples/library-loans/requirements-v2.md +5 -0
- package/examples/library-loans/rsform-session-v1.json +481 -0
- package/examples/library-loans/rsform-session.json +652 -0
- package/examples/library-loans/source-markup.md +18 -0
- package/examples/movd/brief.json +220 -0
- package/examples/movd/build-rsform.ts +5 -2
- package/examples/movd/rsform-session.json +14 -46
- package/examples/subordination/NOTES.md +59 -0
- package/examples/subordination/anti/collapsed.json +556 -0
- package/examples/subordination/anti/single-relation.json +125 -0
- package/examples/subordination/anti/transitive.json +573 -0
- package/examples/subordination/anti/weakened.json +539 -0
- package/examples/subordination/brief.json +386 -0
- package/examples/subordination/build-rsform.ts +63 -0
- package/examples/subordination/constants.ts +115 -0
- package/examples/subordination/rsform-session.json +556 -0
- package/examples/subordination/source-markup.md +19 -0
- package/examples/subordination/source.md +40 -0
- package/package.json +29 -20
- package/skills/INSTALL.md +28 -29
- package/skills/README.md +25 -10
- package/skills/rs-core/SKILL.md +56 -0
- package/skills/rs-explain/SKILL.md +28 -0
- package/skills/rs-explicate/SKILL.md +71 -0
- package/skills/rs-interpret/SKILL.md +67 -0
- package/skills/rs-portal/SKILL.md +51 -0
- package/skills/rs-review/SKILL.md +79 -0
- package/skills/rs-scope/SKILL.md +67 -0
- package/skills/rs-synthesis/SKILL.md +52 -0
- package/skills/rstool/SKILL.md +70 -0
- package/skills/rstool-helper/GUIDE.md +18 -272
- package/skills/rstool-helper/SKILL.md +8 -55
- package/skills/{rstool-helper → rstool-runtime}/EXAMPLES.md +40 -12
- package/skills/{rstool-helper → rstool-runtime}/REFERENCE.md +28 -7
- package/skills/rstool-runtime/SKILL.md +96 -0
- package/skills/scripts/brief-check.test.ts +165 -0
- package/skills/scripts/brief-check.ts +826 -0
- package/skills/scripts/check-brief.ts +94 -0
- package/skills/scripts/rstool-skills.mjs +119 -0
- package/skills/scripts/skill-stubs.test.ts +48 -0
- package/src/mappers/model-adapter.ts +34 -1
- package/src/models/rstool-agent.test.ts +95 -0
- package/src/wrapper/client.test.ts +43 -4
- package/src/wrapper/client.ts +95 -16
- package/src/wrapper/stdio-handler.test.ts +43 -0
- package/src/wrapper/stdio-handler.ts +19 -5
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contractVersion": "3.3.0",
|
|
3
|
+
"state": {
|
|
4
|
+
"sessionId": "33693e34-bcd1-4d9d-91da-9260a1c77f27",
|
|
5
|
+
"alias": "LIB",
|
|
6
|
+
"title": "Антипример: species-as-genus",
|
|
7
|
+
"comment": "Выдача книг в библиотеке. Эксплицировать понятия выдачи и доступности для проектирования ИС: модель данных и проверки при сохранении.\nL1. Исключено: штрафы и оплата (п. 8); невыразимо: сумма штрафа, долг читателя в рублях.\nL2. Исключено: история выдач — только текущее состояние (п. 7); невыразимо: бывшие выдачи, сколько раз читатель брал издание, дата возврата.\nL3. Исключено: каталог и поиск (п. 9) — интерфейс, не предметная область; невыразимо: автор издания, название.\nDC1. основное отношение «выдача» S2: S2: читатель × экземпляр × день выдачи — просрочка требует дня, доступность — экземпляра; «один читатель у экземпляра» — аксиома A1, а не тип.\nDC2. срок выдачи: константа 14 в формуле D4 — п. 2: срок одинаков для всех.\nDC3. текущий день: S3: Z — просрочка — производное понятие, не неопределяемое.\nDC4. однозначность выдачи по экземпляру: аксиома A1 — п. 3.\nDC5. издание экземпляра: отношение S1 и аксиома A3 (однозначность и всюду определённость) — п. 1.\nDC6. запрет новой выдачи должнику: без аксиомы — это правило процедуры выдачи, а схема описывает состояние (L2).",
|
|
8
|
+
"createdAt": "2026-10-25T18:34:34.430Z",
|
|
9
|
+
"updatedAt": "2026-10-25T18:34:34.432Z",
|
|
10
|
+
"revisions": [
|
|
11
|
+
{
|
|
12
|
+
"revisionId": "7ea65eb6-86b0-4908-92fb-54d0a63e9cb2",
|
|
13
|
+
"at": "2026-10-25T18:34:34.432Z",
|
|
14
|
+
"message": "Антипример: species-as-genus"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"items": [
|
|
18
|
+
{
|
|
19
|
+
"id": 1,
|
|
20
|
+
"alias": "X1",
|
|
21
|
+
"cstType": "basic",
|
|
22
|
+
"definitionFormal": "",
|
|
23
|
+
"term": "читатели",
|
|
24
|
+
"definitionText": "",
|
|
25
|
+
"convention": "Записанные читатели библиотеки.",
|
|
26
|
+
"analysis": {
|
|
27
|
+
"success": true,
|
|
28
|
+
"type": {
|
|
29
|
+
"typeID": 5,
|
|
30
|
+
"base": {
|
|
31
|
+
"typeID": 3,
|
|
32
|
+
"baseID": "X1"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"valueClass": "value",
|
|
36
|
+
"diagnostics": []
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": 2,
|
|
41
|
+
"alias": "X2",
|
|
42
|
+
"cstType": "basic",
|
|
43
|
+
"definitionFormal": "",
|
|
44
|
+
"term": "экземпляры",
|
|
45
|
+
"definitionText": "",
|
|
46
|
+
"convention": "Физические экземпляры книг фонда (ТЗ 1).",
|
|
47
|
+
"analysis": {
|
|
48
|
+
"success": true,
|
|
49
|
+
"type": {
|
|
50
|
+
"typeID": 5,
|
|
51
|
+
"base": {
|
|
52
|
+
"typeID": 3,
|
|
53
|
+
"baseID": "X2"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"valueClass": "value",
|
|
57
|
+
"diagnostics": []
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": 3,
|
|
62
|
+
"alias": "X3",
|
|
63
|
+
"cstType": "basic",
|
|
64
|
+
"definitionFormal": "",
|
|
65
|
+
"term": "издания",
|
|
66
|
+
"definitionText": "",
|
|
67
|
+
"convention": "Издания: книга в конкретном издании; у издания может быть много экземпляров.",
|
|
68
|
+
"analysis": {
|
|
69
|
+
"success": true,
|
|
70
|
+
"type": {
|
|
71
|
+
"typeID": 5,
|
|
72
|
+
"base": {
|
|
73
|
+
"typeID": 3,
|
|
74
|
+
"baseID": "X3"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"valueClass": "value",
|
|
78
|
+
"diagnostics": []
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": 4,
|
|
83
|
+
"alias": "S1",
|
|
84
|
+
"cstType": "structure",
|
|
85
|
+
"definitionFormal": "ℬ(X2×X3)",
|
|
86
|
+
"term": "издание экземпляра",
|
|
87
|
+
"definitionText": "",
|
|
88
|
+
"convention": "Пара (экземпляр, издание): экземпляр — копия издания (ТЗ 1).",
|
|
89
|
+
"analysis": {
|
|
90
|
+
"success": true,
|
|
91
|
+
"type": {
|
|
92
|
+
"typeID": 5,
|
|
93
|
+
"base": {
|
|
94
|
+
"typeID": 4,
|
|
95
|
+
"factors": [
|
|
96
|
+
{
|
|
97
|
+
"typeID": 3,
|
|
98
|
+
"baseID": "X2"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"typeID": 3,
|
|
102
|
+
"baseID": "X3"
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"valueClass": "value",
|
|
108
|
+
"diagnostics": []
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"id": 5,
|
|
113
|
+
"alias": "S3",
|
|
114
|
+
"cstType": "structure",
|
|
115
|
+
"definitionFormal": "Z",
|
|
116
|
+
"term": "текущий день",
|
|
117
|
+
"definitionText": "",
|
|
118
|
+
"convention": "Номер текущего дня в той же нумерации, что и дни выдачи.",
|
|
119
|
+
"analysis": {
|
|
120
|
+
"success": true,
|
|
121
|
+
"type": {
|
|
122
|
+
"typeID": 2,
|
|
123
|
+
"isOrdered": true,
|
|
124
|
+
"isArithmetic": true,
|
|
125
|
+
"isIntegerCompatible": true
|
|
126
|
+
},
|
|
127
|
+
"valueClass": "value",
|
|
128
|
+
"diagnostics": []
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"id": 6,
|
|
133
|
+
"alias": "D2",
|
|
134
|
+
"cstType": "term",
|
|
135
|
+
"definitionFormal": "X2\\D1",
|
|
136
|
+
"term": "доступные экземпляры",
|
|
137
|
+
"definitionText": "Экземпляры, которые сейчас не выданы.",
|
|
138
|
+
"convention": "",
|
|
139
|
+
"analysis": {
|
|
140
|
+
"success": true,
|
|
141
|
+
"type": {
|
|
142
|
+
"typeID": 5,
|
|
143
|
+
"base": {
|
|
144
|
+
"typeID": 3,
|
|
145
|
+
"baseID": "X2"
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"valueClass": "value",
|
|
149
|
+
"diagnostics": []
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"id": 7,
|
|
154
|
+
"alias": "F1",
|
|
155
|
+
"cstType": "function",
|
|
156
|
+
"definitionFormal": "[ε∈X3] Pr1(Fi2[{ε}](S1))",
|
|
157
|
+
"term": "экземпляры издания",
|
|
158
|
+
"definitionText": "Все экземпляры данного издания.",
|
|
159
|
+
"convention": "",
|
|
160
|
+
"analysis": {
|
|
161
|
+
"success": true,
|
|
162
|
+
"type": {
|
|
163
|
+
"typeID": 7,
|
|
164
|
+
"result": {
|
|
165
|
+
"typeID": 5,
|
|
166
|
+
"base": {
|
|
167
|
+
"typeID": 3,
|
|
168
|
+
"baseID": "X2"
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"args": [
|
|
172
|
+
{
|
|
173
|
+
"alias": "ε",
|
|
174
|
+
"type": {
|
|
175
|
+
"typeID": 3,
|
|
176
|
+
"baseID": "X3"
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
]
|
|
180
|
+
},
|
|
181
|
+
"valueClass": "value",
|
|
182
|
+
"diagnostics": []
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"id": 8,
|
|
187
|
+
"alias": "F2",
|
|
188
|
+
"cstType": "function",
|
|
189
|
+
"definitionFormal": "[ε∈X3] F1[ε]\\D1",
|
|
190
|
+
"term": "доступные экземпляры издания",
|
|
191
|
+
"definitionText": "Невыданные экземпляры данного издания.",
|
|
192
|
+
"convention": "",
|
|
193
|
+
"analysis": {
|
|
194
|
+
"success": true,
|
|
195
|
+
"type": {
|
|
196
|
+
"typeID": 7,
|
|
197
|
+
"result": {
|
|
198
|
+
"typeID": 5,
|
|
199
|
+
"base": {
|
|
200
|
+
"typeID": 3,
|
|
201
|
+
"baseID": "X2"
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
"args": [
|
|
205
|
+
{
|
|
206
|
+
"alias": "ε",
|
|
207
|
+
"type": {
|
|
208
|
+
"typeID": 3,
|
|
209
|
+
"baseID": "X3"
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
"valueClass": "value",
|
|
215
|
+
"diagnostics": []
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"id": 9,
|
|
220
|
+
"alias": "D3",
|
|
221
|
+
"cstType": "term",
|
|
222
|
+
"definitionFormal": "D{ε∈X3 | F2[ε]≠∅}",
|
|
223
|
+
"term": "доступные издания",
|
|
224
|
+
"definitionText": "Издания, у которых есть хотя бы один доступный экземпляр.",
|
|
225
|
+
"convention": "",
|
|
226
|
+
"analysis": {
|
|
227
|
+
"success": true,
|
|
228
|
+
"type": {
|
|
229
|
+
"typeID": 5,
|
|
230
|
+
"base": {
|
|
231
|
+
"typeID": 3,
|
|
232
|
+
"baseID": "X3"
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
"valueClass": "value",
|
|
236
|
+
"diagnostics": []
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"id": 10,
|
|
241
|
+
"alias": "A3",
|
|
242
|
+
"cstType": "axiom",
|
|
243
|
+
"definitionFormal": "card(S1)=card(Pr1(S1)) & Pr1(S1)=X2",
|
|
244
|
+
"term": "у экземпляра одно издание",
|
|
245
|
+
"definitionText": "Каждый экземпляр — копия ровно одного издания (ТЗ 1).",
|
|
246
|
+
"convention": "",
|
|
247
|
+
"analysis": {
|
|
248
|
+
"success": true,
|
|
249
|
+
"type": {
|
|
250
|
+
"typeID": 6
|
|
251
|
+
},
|
|
252
|
+
"valueClass": "value",
|
|
253
|
+
"diagnostics": []
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"id": 11,
|
|
258
|
+
"alias": "S2",
|
|
259
|
+
"cstType": "structure",
|
|
260
|
+
"definitionFormal": "ℬ(X2×X1)",
|
|
261
|
+
"term": "читатель экземпляра",
|
|
262
|
+
"definitionText": "",
|
|
263
|
+
"convention": "Пара (экземпляр, читатель): у кого экземпляр сейчас.",
|
|
264
|
+
"analysis": {
|
|
265
|
+
"success": true,
|
|
266
|
+
"type": {
|
|
267
|
+
"typeID": 5,
|
|
268
|
+
"base": {
|
|
269
|
+
"typeID": 4,
|
|
270
|
+
"factors": [
|
|
271
|
+
{
|
|
272
|
+
"typeID": 3,
|
|
273
|
+
"baseID": "X2"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"typeID": 3,
|
|
277
|
+
"baseID": "X1"
|
|
278
|
+
}
|
|
279
|
+
]
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
"valueClass": "value",
|
|
283
|
+
"diagnostics": []
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"id": 12,
|
|
288
|
+
"alias": "D1",
|
|
289
|
+
"cstType": "term",
|
|
290
|
+
"definitionFormal": "Pr1(S2)",
|
|
291
|
+
"term": "выданные экземпляры",
|
|
292
|
+
"definitionText": "",
|
|
293
|
+
"convention": "",
|
|
294
|
+
"analysis": {
|
|
295
|
+
"success": true,
|
|
296
|
+
"type": {
|
|
297
|
+
"typeID": 5,
|
|
298
|
+
"base": {
|
|
299
|
+
"typeID": 3,
|
|
300
|
+
"baseID": "X2"
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"valueClass": "value",
|
|
304
|
+
"diagnostics": []
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"id": 13,
|
|
309
|
+
"alias": "D5",
|
|
310
|
+
"cstType": "term",
|
|
311
|
+
"definitionFormal": "Pr2(S2)",
|
|
312
|
+
"term": "читатели с выдачами",
|
|
313
|
+
"definitionText": "",
|
|
314
|
+
"convention": "",
|
|
315
|
+
"analysis": {
|
|
316
|
+
"success": true,
|
|
317
|
+
"type": {
|
|
318
|
+
"typeID": 5,
|
|
319
|
+
"base": {
|
|
320
|
+
"typeID": 3,
|
|
321
|
+
"baseID": "X1"
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
"valueClass": "value",
|
|
325
|
+
"diagnostics": []
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
],
|
|
329
|
+
"model": {
|
|
330
|
+
"items": []
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
"diagnostics": []
|
|
334
|
+
}
|