@rsconcept/rstool 0.10.3 → 1.0.1
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 +61 -33
- package/dist/agent-workflow-Gk0Vfnv1.d.ts +64 -0
- package/dist/analysis-LLnPhmGa.d.ts +23 -0
- package/dist/{common-DxLg3eXX.d.ts → common-DHJalS-Q.d.ts} +6 -1
- package/dist/constituenta-DnGR6bnM.d.ts +54 -0
- package/dist/diagnostic-D9yl_mEL.d.ts +19 -0
- package/dist/evaluation-Cns8BFm4.d.ts +31 -0
- package/dist/index.d.ts +11 -11
- package/dist/index.js +1 -2
- package/dist/mappers/model-adapter.d.ts +3 -3
- package/dist/mappers/schema-adapter.d.ts +4 -4
- package/dist/mappers/types.d.ts +6 -2
- package/dist/mappers/types.js +2 -0
- package/dist/mappers/types.js.map +1 -1
- package/dist/{model-value-SFAVj0dw.d.ts → model-value-BbonPzMz.d.ts} +14 -3
- package/dist/models/agent-workflow.d.ts +2 -0
- package/dist/models/agent-workflow.js +1 -0
- package/dist/models/analysis.d.ts +1 -1
- package/dist/models/common.d.ts +1 -1
- package/dist/models/constituenta.d.ts +2 -2
- package/dist/models/diagnostic.d.ts +1 -1
- package/dist/models/evaluation.d.ts +2 -2
- package/dist/models/index.d.ts +11 -11
- package/dist/models/index.js +2 -2
- package/dist/models/model-value.d.ts +2 -2
- package/dist/models/rstool-agent.d.ts +1 -1
- package/dist/models/rstool-agent.js +1 -1
- package/dist/models/session.d.ts +1 -1
- package/dist/models/tool-contract.d.ts +2 -2
- package/dist/models/tool-contract.js +2 -1
- package/dist/models/tool-contract.js.map +1 -1
- package/dist/models-Bw6Uum8i.js +685 -0
- package/dist/models-Bw6Uum8i.js.map +1 -0
- package/dist/rstool-agent-D2cQze_b.d.ts +71 -0
- package/dist/session/session-store.d.ts +18 -5
- package/dist/session/session-store.js +1 -64
- package/dist/{session-BPgsE80c.d.ts → session-ChexW8i7.d.ts} +11 -8
- package/dist/tool-contract-0uRGhEfW.d.ts +164 -0
- package/dist/wrapper/client.d.ts +23 -0
- package/dist/wrapper/client.js +17 -0
- package/dist/wrapper/client.js.map +1 -1
- package/dist/wrapper/stdio-wrapper.js +75 -63
- package/dist/wrapper/stdio-wrapper.js.map +1 -1
- package/docs/CONSTITUENTA.md +2 -2
- package/docs/DIAGNOSTICS.md +6 -5
- package/docs/MODEL-TESTING.md +3 -3
- package/docs/PORTAL-API.md +24 -18
- package/examples/README.md +1 -1
- package/examples/agent-client.ts +11 -41
- package/examples/build-chocolate-nim-rsform.ts +21 -70
- package/examples/chocolate-nim/build-rsform.ts +23 -18
- package/examples/chocolate-nim/build-rsmodel.ts +10 -12
- package/examples/chocolate-nim/rsform-session.json +290 -290
- package/examples/chocolate-nim/rsmodel-session.json +291 -291
- package/examples/expression-bank/bank-constituents.ts +304 -53
- package/examples/expression-bank/build-rsform.ts +19 -16
- package/examples/expression-bank/rsform-session.json +1551 -1551
- package/examples/kinship/build-rsform.ts +23 -18
- package/examples/kinship/build-rsmodel.ts +16 -16
- package/examples/kinship/rsform-session.json +219 -219
- package/examples/kinship/rsmodel-session.json +221 -221
- package/examples/kinship/session.ts +19 -21
- package/examples/movd/build-rsform.ts +23 -18
- package/examples/movd/build-rsmodel.ts +18 -20
- package/examples/movd/rsform-session.json +262 -262
- package/examples/movd/rsmodel-session.json +264 -264
- package/examples/sample/build-rsform.ts +18 -51
- package/examples/sample/build-rsmodel.ts +25 -44
- package/examples/sample/rsform-session.json +10 -7
- package/examples/sample/rsmodel-session.json +36 -33
- package/examples/template-apply/build-rsform.ts +27 -24
- package/examples/template-apply/rsform-session.json +48 -48
- package/package.json +4 -2
- package/skills/rstool-helper/EXAMPLES.md +44 -116
- package/skills/rstool-helper/GUIDE.md +40 -25
- package/skills/rstool-helper/REFERENCE.md +40 -177
- package/src/index.ts +24 -17
- package/src/mappers/portal-adapter.ts +49 -0
- package/src/mappers/types.ts +4 -0
- package/src/models/agent-workflow.ts +66 -0
- package/src/models/analysis.ts +7 -0
- package/src/models/common.ts +7 -0
- package/src/models/constituenta.ts +24 -6
- package/src/models/diagnostic.ts +4 -0
- package/src/models/evaluation.ts +11 -0
- package/src/models/import-detect.test.ts +66 -0
- package/src/models/import-detect.ts +42 -0
- package/src/models/import-export.ts +24 -0
- package/src/models/index.ts +22 -14
- package/src/models/model-value.ts +12 -0
- package/src/models/portal-json.test.ts +38 -0
- package/src/models/portal-json.ts +54 -1
- package/src/models/rstool-agent.test.ts +698 -146
- package/src/models/rstool-agent.ts +392 -92
- package/src/models/session.ts +8 -5
- package/src/models/tool-contract.ts +81 -42
- package/src/session/batch-apply.test.ts +123 -0
- package/src/session/batch-apply.ts +82 -0
- package/src/session/persistence.test.ts +63 -0
- package/src/session/persistence.ts +69 -0
- package/src/session/session-store.ts +76 -6
- package/src/wrapper/client.test.ts +58 -0
- package/src/wrapper/client.ts +23 -0
- package/src/wrapper/stdio-handler.test.ts +101 -0
- package/src/wrapper/stdio-handler.ts +195 -0
- package/src/wrapper/stdio-wrapper.ts +4 -187
- package/dist/analysis-JiwOYDKx.d.ts +0 -16
- package/dist/constituenta-Dnd6iToB.d.ts +0 -36
- package/dist/diagnostic-BMYvciz8.d.ts +0 -15
- package/dist/evaluation-CCVYH0wA.d.ts +0 -21
- package/dist/index-uhkmwruf.d.ts +0 -46
- package/dist/rstool-agent-BZi5jO1y.js +0 -158
- package/dist/rstool-agent-BZi5jO1y.js.map +0 -1
- package/dist/rstool-agent-pRaPnZay.d.ts +0 -35
- package/dist/session/session-store.js.map +0 -1
- package/dist/tool-contract-n1ghUOrK.d.ts +0 -32
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { writeFile } from 'node:fs/promises';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
3
|
|
|
4
|
-
import { CstType, RSToolWrapperClient, type
|
|
4
|
+
import { CstType, RSToolWrapperClient, type AgentConstituentaPatch } from '../src';
|
|
5
5
|
|
|
6
6
|
import { DEFAULT_RSFORM_SESSION_PATH } from './chocolate-nim/constants';
|
|
7
7
|
|
|
@@ -18,248 +18,197 @@ async function run() {
|
|
|
18
18
|
await client.waitUntilReady();
|
|
19
19
|
const session = await client.call<{ sessionId: string; contractVersion: string }>('createSession');
|
|
20
20
|
|
|
21
|
-
const
|
|
21
|
+
const items: AgentConstituentaPatch[] = [
|
|
22
22
|
{
|
|
23
|
-
draft: {
|
|
24
23
|
id: 1,
|
|
25
24
|
alias: 'S1',
|
|
26
25
|
cstType: CstType.STRUCTURED,
|
|
27
26
|
definitionFormal: 'Z×Z',
|
|
28
27
|
term: 'шоколадка',
|
|
29
28
|
convention: 'Первая проекция — ширина, вторая — длина'
|
|
30
|
-
}
|
|
31
29
|
},
|
|
32
30
|
{
|
|
33
|
-
draft: {
|
|
34
31
|
id: 2,
|
|
35
32
|
alias: 'D1',
|
|
36
33
|
cstType: CstType.TERM,
|
|
37
34
|
definitionFormal: 'pr1(S1)',
|
|
38
35
|
term: 'ширина шоколадки'
|
|
39
|
-
}
|
|
40
36
|
},
|
|
41
37
|
{
|
|
42
|
-
draft: {
|
|
43
38
|
id: 3,
|
|
44
39
|
alias: 'D2',
|
|
45
40
|
cstType: CstType.TERM,
|
|
46
41
|
definitionFormal: 'pr2(S1)',
|
|
47
42
|
term: 'длина шоколадки'
|
|
48
|
-
}
|
|
49
43
|
},
|
|
50
44
|
{
|
|
51
|
-
draft: {
|
|
52
45
|
id: 4,
|
|
53
46
|
alias: 'S2',
|
|
54
47
|
cstType: CstType.STRUCTURED,
|
|
55
48
|
definitionFormal: 'Z×Z',
|
|
56
49
|
term: 'отравленная долька',
|
|
57
50
|
convention: 'Координаты отравленной дольки: первая проекция по ширине, вторая — по длине'
|
|
58
|
-
}
|
|
59
51
|
},
|
|
60
52
|
{
|
|
61
|
-
draft: {
|
|
62
53
|
id: 5,
|
|
63
54
|
alias: 'D3',
|
|
64
55
|
cstType: CstType.TERM,
|
|
65
56
|
definitionFormal: 'pr1(S2)',
|
|
66
57
|
term: 'расположение отравленной дольки по ширине'
|
|
67
|
-
}
|
|
68
58
|
},
|
|
69
59
|
{
|
|
70
|
-
draft: {
|
|
71
60
|
id: 6,
|
|
72
61
|
alias: 'D4',
|
|
73
62
|
cstType: CstType.TERM,
|
|
74
63
|
definitionFormal: 'pr2(S2)',
|
|
75
64
|
term: 'расположение отравленной дольки по длине'
|
|
76
|
-
}
|
|
77
65
|
},
|
|
78
66
|
{
|
|
79
|
-
draft: {
|
|
80
67
|
id: 7,
|
|
81
68
|
alias: 'A1',
|
|
82
69
|
cstType: CstType.AXIOM,
|
|
83
70
|
definitionFormal: '(1≤D3)&(D3≤D1)&(1≤D4)&(D4≤D2)',
|
|
84
71
|
term: 'отравленная долька в шоколадке',
|
|
85
72
|
definitionText: 'Координаты отравленной дольки лежат в пределах шоколадки'
|
|
86
|
-
}
|
|
87
73
|
},
|
|
88
74
|
{
|
|
89
|
-
draft: {
|
|
90
75
|
id: 8,
|
|
91
76
|
alias: 'P1',
|
|
92
77
|
cstType: CstType.PREDICATE,
|
|
93
78
|
definitionFormal: '[α∈Z] R{ξ:=α | ξ≥2 | ξ-2}=0',
|
|
94
79
|
term: 'чётное?',
|
|
95
80
|
convention: 'Для малых аргументов — прямое вычитание двойки; для больших нужно двоичное представление'
|
|
96
|
-
}
|
|
97
81
|
},
|
|
98
82
|
{
|
|
99
|
-
draft: {
|
|
100
83
|
id: 9,
|
|
101
84
|
alias: 'F1',
|
|
102
85
|
cstType: CstType.FUNCTION,
|
|
103
86
|
definitionFormal: '[α∈Z, σ∈ℬ(Z×R1)] debool(Pr2(Fi1[{α}](σ)))',
|
|
104
87
|
term: 'значение элемента последовательности с данным номером',
|
|
105
88
|
definitionText: 'Значение пары с заданным номером в последовательности пар'
|
|
106
|
-
}
|
|
107
89
|
},
|
|
108
90
|
{
|
|
109
|
-
draft: {
|
|
110
91
|
id: 10,
|
|
111
92
|
alias: 'F2',
|
|
112
93
|
cstType: CstType.FUNCTION,
|
|
113
94
|
definitionFormal: '[σ∈ℬ(Z)] debool(D{ξ∈σ | ∀α∈σ α≤ξ})',
|
|
114
95
|
term: 'максимум набора чисел'
|
|
115
|
-
}
|
|
116
96
|
},
|
|
117
97
|
{
|
|
118
|
-
draft: {
|
|
119
98
|
id: 11,
|
|
120
99
|
alias: 'F4',
|
|
121
100
|
cstType: CstType.FUNCTION,
|
|
122
101
|
definitionFormal: '[σ∈ℬ(Z)] D{ξ∈σ | ∀α∈σ α≤ξ}',
|
|
123
102
|
term: 'верхние границы набора чисел',
|
|
124
103
|
definitionText: 'Множество элементов набора, не меньших всех остальных'
|
|
125
|
-
}
|
|
126
104
|
},
|
|
127
105
|
{
|
|
128
|
-
draft: {
|
|
129
106
|
id: 12,
|
|
130
107
|
alias: 'F5',
|
|
131
108
|
cstType: CstType.FUNCTION,
|
|
132
109
|
definitionFormal: '[α∈Z, β∈Z] debool(I{(α,0) | α<β} ∪ I{(α-β,1) | α≥β})',
|
|
133
110
|
term: 'деление с остатком на степень двойки',
|
|
134
111
|
convention: 'Предполагается, что удвоенный делитель больше делимого'
|
|
135
|
-
}
|
|
136
112
|
},
|
|
137
113
|
{
|
|
138
|
-
draft: {
|
|
139
114
|
id: 13,
|
|
140
115
|
alias: 'F6',
|
|
141
116
|
cstType: CstType.FUNCTION,
|
|
142
117
|
definitionFormal: '[α∈Z, β∈Z] pr1(F5[α, β])',
|
|
143
118
|
term: 'остаток'
|
|
144
|
-
}
|
|
145
119
|
},
|
|
146
120
|
{
|
|
147
|
-
draft: {
|
|
148
121
|
id: 14,
|
|
149
122
|
alias: 'F7',
|
|
150
123
|
cstType: CstType.FUNCTION,
|
|
151
124
|
definitionFormal: '[α∈Z, β∈Z] pr2(F5[α, β])',
|
|
152
125
|
term: 'целая часть'
|
|
153
|
-
}
|
|
154
126
|
},
|
|
155
127
|
{
|
|
156
|
-
draft: {
|
|
157
128
|
id: 15,
|
|
158
129
|
alias: 'D5',
|
|
159
130
|
cstType: CstType.TERM,
|
|
160
131
|
definitionFormal: '{(0, D3-1), (1, D4-1), (2, D1-D3), (3, D2-D4)}',
|
|
161
132
|
term: 'шоколадка как кучки Ним',
|
|
162
133
|
definitionText: 'Четыре кучки камней после разреза по отравленной дольке: слева, сверху, справа и снизу'
|
|
163
|
-
}
|
|
164
134
|
},
|
|
165
135
|
{
|
|
166
|
-
draft: {
|
|
167
136
|
id: 16,
|
|
168
137
|
alias: 'D6',
|
|
169
138
|
cstType: CstType.TERM,
|
|
170
139
|
definitionFormal: 'card(D5)',
|
|
171
140
|
term: 'количество кучек'
|
|
172
|
-
}
|
|
173
141
|
},
|
|
174
142
|
{
|
|
175
|
-
draft: {
|
|
176
143
|
id: 17,
|
|
177
144
|
alias: 'D7',
|
|
178
145
|
cstType: CstType.TERM,
|
|
179
146
|
definitionFormal: 'Pr1(D5)',
|
|
180
147
|
term: 'номера кучек'
|
|
181
|
-
}
|
|
182
148
|
},
|
|
183
149
|
{
|
|
184
|
-
draft: {
|
|
185
150
|
id: 18,
|
|
186
151
|
alias: 'D8',
|
|
187
152
|
cstType: CstType.TERM,
|
|
188
153
|
definitionFormal: 'Pr2(D5)',
|
|
189
154
|
term: 'размеры кучек'
|
|
190
|
-
}
|
|
191
155
|
},
|
|
192
156
|
{
|
|
193
|
-
draft: {
|
|
194
157
|
id: 19,
|
|
195
158
|
alias: 'A2',
|
|
196
159
|
cstType: CstType.AXIOM,
|
|
197
160
|
definitionFormal: 'card(D5)=card(D7)',
|
|
198
161
|
term: 'однозначность количества камней в кучках',
|
|
199
162
|
definitionText: 'У каждой кучки ровно один номер'
|
|
200
|
-
}
|
|
201
163
|
},
|
|
202
164
|
{
|
|
203
|
-
draft: {
|
|
204
165
|
id: 20,
|
|
205
166
|
alias: 'A3',
|
|
206
167
|
cstType: CstType.AXIOM,
|
|
207
168
|
definitionFormal: '∀α∈D5 (pr1(α)<D6 & pr1(α)≥0)',
|
|
208
169
|
term: 'последовательная нумерация кучек',
|
|
209
170
|
definitionText: 'Номера кучек — целые от нуля до количества кучек минус один'
|
|
210
|
-
}
|
|
211
171
|
},
|
|
212
172
|
{
|
|
213
|
-
draft: {
|
|
214
173
|
id: 21,
|
|
215
174
|
alias: 'F8',
|
|
216
175
|
cstType: CstType.FUNCTION,
|
|
217
176
|
definitionFormal: '[α∈Z] F1[α,D5]',
|
|
218
177
|
term: 'количество камней в данной кучке'
|
|
219
|
-
}
|
|
220
178
|
},
|
|
221
179
|
{
|
|
222
|
-
draft: {
|
|
223
180
|
id: 22,
|
|
224
181
|
alias: 'D9',
|
|
225
182
|
cstType: CstType.TERM,
|
|
226
183
|
definitionFormal: 'Pr1(Fi2[{0}](D5))',
|
|
227
184
|
term: 'пустые кучки',
|
|
228
185
|
definitionText: 'Номера кучек с нулевым размером'
|
|
229
|
-
}
|
|
230
186
|
},
|
|
231
187
|
{
|
|
232
|
-
draft: {
|
|
233
188
|
id: 23,
|
|
234
189
|
alias: 'D10',
|
|
235
190
|
cstType: CstType.TERM,
|
|
236
191
|
definitionFormal: 'D7\\D9',
|
|
237
192
|
term: 'непустые кучки',
|
|
238
193
|
definitionText: 'Номера кучек с положительным размером'
|
|
239
|
-
}
|
|
240
194
|
},
|
|
241
195
|
{
|
|
242
|
-
draft: {
|
|
243
196
|
id: 24,
|
|
244
197
|
alias: 'T1',
|
|
245
198
|
cstType: CstType.STATEMENT,
|
|
246
199
|
definitionFormal: 'D8={0}',
|
|
247
200
|
term: 'игра закончена',
|
|
248
201
|
definitionText: 'Во всех кучках не осталось камней'
|
|
249
|
-
}
|
|
250
202
|
},
|
|
251
203
|
{
|
|
252
|
-
draft: {
|
|
253
204
|
id: 25,
|
|
254
205
|
alias: 'T2',
|
|
255
206
|
cstType: CstType.STATEMENT,
|
|
256
207
|
definitionFormal: 'card(D10)=1',
|
|
257
208
|
term: 'существует выигрышный ход',
|
|
258
209
|
definitionText: 'Осталась ровно одна непустая кучка'
|
|
259
|
-
}
|
|
260
210
|
},
|
|
261
211
|
{
|
|
262
|
-
draft: {
|
|
263
212
|
id: 26,
|
|
264
213
|
alias: 'F10',
|
|
265
214
|
cstType: CstType.FUNCTION,
|
|
@@ -267,26 +216,28 @@ async function run() {
|
|
|
267
216
|
term: 'оценка хода Ним',
|
|
268
217
|
definitionText:
|
|
269
218
|
'Стоимость хода в дольках шоколадки: для чётного номера кучки — размер, умноженный на длину, иначе — на ширину'
|
|
270
|
-
}
|
|
271
219
|
}
|
|
272
220
|
];
|
|
273
221
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
}>
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
}
|
|
222
|
+
const patch = await client.call<{
|
|
223
|
+
success: boolean;
|
|
224
|
+
diagnostics: unknown[];
|
|
225
|
+
failed: Array<{ draft: { alias: string }; diagnostics: unknown[] }>;
|
|
226
|
+
summary: { items: Array<{ alias: string; analysisSuccess: boolean }> };
|
|
227
|
+
}>('applySchemaPatch', {
|
|
228
|
+
sessionId: session.sessionId,
|
|
229
|
+
mode: 'atomic',
|
|
230
|
+
items
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
for (const item of patch.summary.items) {
|
|
234
|
+
console.log(`${item.alias}: ${item.analysisSuccess ? 'OK' : 'FAIL'}`);
|
|
235
|
+
}
|
|
236
|
+
if (!patch.success) {
|
|
237
|
+
const diags = await client.call('listDiagnostics', { sessionId: session.sessionId });
|
|
238
|
+
console.log(JSON.stringify(diags, null, 2));
|
|
239
|
+
const failedAlias = patch.failed[0]?.draft.alias ?? 'unknown';
|
|
240
|
+
throw new Error(`${failedAlias}: analysis failed`);
|
|
290
241
|
}
|
|
291
242
|
|
|
292
243
|
await client.call('commitStep', {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { writeFile } from 'node:fs/promises';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
3
|
|
|
4
|
-
import { CstType, RSToolWrapperClient, type
|
|
4
|
+
import { CstType, RSToolWrapperClient, type AgentConstituentaPatch } from '../../src';
|
|
5
|
+
|
|
6
|
+
type DraftBatch = { draft: AgentConstituentaPatch };
|
|
5
7
|
|
|
6
8
|
import { DEFAULT_RSFORM_SESSION_PATH } from './constants';
|
|
7
9
|
|
|
@@ -18,7 +20,7 @@ async function run() {
|
|
|
18
20
|
await client.waitUntilReady();
|
|
19
21
|
const session = await client.call<{ sessionId: string; contractVersion: string }>('createSession');
|
|
20
22
|
|
|
21
|
-
const drafts:
|
|
23
|
+
const drafts: DraftBatch[] = [
|
|
22
24
|
{
|
|
23
25
|
draft: {
|
|
24
26
|
id: 1,
|
|
@@ -271,22 +273,25 @@ async function run() {
|
|
|
271
273
|
}
|
|
272
274
|
];
|
|
273
275
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
}>
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
}
|
|
276
|
+
const patch = await client.call<{
|
|
277
|
+
success: boolean;
|
|
278
|
+
diagnostics: unknown[];
|
|
279
|
+
failed: Array<{ draft: { alias: string }; diagnostics: unknown[] }>;
|
|
280
|
+
summary: { items: Array<{ alias: string; analysisSuccess: boolean }> };
|
|
281
|
+
}>('applySchemaPatch', {
|
|
282
|
+
sessionId: session.sessionId,
|
|
283
|
+
mode: 'atomic',
|
|
284
|
+
items: drafts.map(entry => entry.draft)
|
|
285
|
+
});
|
|
286
|
+
|
|
287
|
+
for (const item of patch.summary.items) {
|
|
288
|
+
console.log(`${item.alias}: ${item.analysisSuccess ? 'OK' : 'FAIL'}`);
|
|
289
|
+
}
|
|
290
|
+
if (!patch.success) {
|
|
291
|
+
const diags = await client.call('listDiagnostics', { sessionId: session.sessionId });
|
|
292
|
+
console.log(JSON.stringify(diags, null, 2));
|
|
293
|
+
const failedAlias = patch.failed[0]?.draft.alias ?? 'unknown';
|
|
294
|
+
throw new Error(`${failedAlias}: analysis failed`);
|
|
290
295
|
}
|
|
291
296
|
|
|
292
297
|
await client.call('commitStep', {
|
|
@@ -32,18 +32,16 @@ async function run() {
|
|
|
32
32
|
const schemaPath = resolve(process.cwd(), DEFAULT_RSFORM_SESSION_PATH);
|
|
33
33
|
const schemaJson = await readFile(schemaPath, 'utf8');
|
|
34
34
|
|
|
35
|
-
const imported = await client.call<{ sessionId: string }>('
|
|
35
|
+
const imported = await client.call<{ sessionId: string }>('importData', {
|
|
36
36
|
payload: schemaJson
|
|
37
37
|
});
|
|
38
38
|
|
|
39
|
-
await client.call('
|
|
39
|
+
await client.call('setModelValues', {
|
|
40
40
|
sessionId: imported.sessionId,
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
]
|
|
46
|
-
}
|
|
41
|
+
set: [
|
|
42
|
+
{ target: S1_ID, value: S1_VALUE },
|
|
43
|
+
{ target: S2_ID, value: S2_VALUE }
|
|
44
|
+
]
|
|
47
45
|
});
|
|
48
46
|
|
|
49
47
|
const recalculated = await client.call<{
|
|
@@ -53,13 +51,13 @@ async function run() {
|
|
|
53
51
|
});
|
|
54
52
|
|
|
55
53
|
const d6 = recalculated.items.find(item => item.id === D6_ID);
|
|
56
|
-
const a1Eval = await client.call<{ success: boolean; value: unknown; status: number }>('
|
|
54
|
+
const a1Eval = await client.call<{ success: boolean; value: unknown; status: number }>('evaluate', {
|
|
57
55
|
sessionId: imported.sessionId,
|
|
58
|
-
|
|
56
|
+
constituentId: A1_ID
|
|
59
57
|
});
|
|
60
|
-
const t1Eval = await client.call<{ success: boolean; value: unknown; status: number }>('
|
|
58
|
+
const t1Eval = await client.call<{ success: boolean; value: unknown; status: number }>('evaluate', {
|
|
61
59
|
sessionId: imported.sessionId,
|
|
62
|
-
|
|
60
|
+
constituentId: T1_ID
|
|
63
61
|
});
|
|
64
62
|
|
|
65
63
|
console.log('D6 recalculate:', d6);
|