@rsconcept/rstool 1.2.2 → 1.4.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.
Files changed (111) hide show
  1. package/README.md +4 -4
  2. package/dist/{agent-workflow-Gk0Vfnv1.d.ts → agent-workflow-D22FeODL.d.ts} +6 -6
  3. package/dist/{analysis-LLnPhmGa.d.ts → analysis-DA44pfgA.d.ts} +4 -3
  4. package/dist/common-D6TFl6l_.d.ts +11 -0
  5. package/dist/{constituenta-DnGR6bnM.d.ts → constituenta-QY5w1x91.d.ts} +7 -7
  6. package/dist/diagnostic-C6TRoBgt.d.ts +38 -0
  7. package/dist/diagnostic-assembly-DRunIcKQ.js +54 -0
  8. package/dist/diagnostic-assembly-DRunIcKQ.js.map +1 -0
  9. package/dist/{evaluation-Cns8BFm4.d.ts → evaluation-Cd4S7-3t.d.ts} +4 -3
  10. package/dist/index.d.ts +12 -12
  11. package/dist/index.js +4 -3
  12. package/dist/mappers/model-adapter.d.ts +3 -3
  13. package/dist/mappers/model-adapter.js +1 -199
  14. package/dist/mappers/schema-adapter.d.ts +5 -5
  15. package/dist/mappers/schema-adapter.js +8 -8
  16. package/dist/mappers/schema-adapter.js.map +1 -1
  17. package/dist/mappers/types.d.ts +6 -6
  18. package/dist/mappers/types.js +6 -10
  19. package/dist/mappers/types.js.map +1 -1
  20. package/dist/model-adapter-D-YmIvQW.js +225 -0
  21. package/dist/model-adapter-D-YmIvQW.js.map +1 -0
  22. package/dist/{model-value-BbonPzMz.d.ts → model-value-BUhr2IjA.d.ts} +2 -2
  23. package/dist/models/agent-workflow.d.ts +1 -1
  24. package/dist/models/analysis.d.ts +1 -1
  25. package/dist/models/common.d.ts +2 -2
  26. package/dist/models/common.js +1 -1
  27. package/dist/models/constituenta.d.ts +1 -1
  28. package/dist/models/diagnostic.d.ts +2 -2
  29. package/dist/models/diagnostic.js +3 -1
  30. package/dist/models/evaluation.d.ts +1 -1
  31. package/dist/models/index.d.ts +11 -11
  32. package/dist/models/index.js +3 -2
  33. package/dist/models/model-value.d.ts +1 -1
  34. package/dist/models/rstool-agent.d.ts +1 -1
  35. package/dist/models/rstool-agent.js +1 -1
  36. package/dist/models/session.d.ts +1 -1
  37. package/dist/models/tool-contract.d.ts +1 -1
  38. package/dist/models/tool-contract.js +1 -1
  39. package/dist/models/tool-contract.js.map +1 -1
  40. package/dist/{models-9G6ur_pg.js → models-DTLctDmB.js} +72 -15
  41. package/dist/models-DTLctDmB.js.map +1 -0
  42. package/dist/{rstool-agent-D2cQze_b.d.ts → rstool-agent-BMVAyMAG.d.ts} +11 -10
  43. package/dist/session/session-store.d.ts +6 -6
  44. package/dist/session/session-store.js +1 -1
  45. package/dist/{session-ChexW8i7.d.ts → session-CI4rLYby.d.ts} +3 -3
  46. package/dist/{tool-contract-0uRGhEfW.d.ts → tool-contract-sQfr-DYD.d.ts} +12 -12
  47. package/dist/wrapper/stdio-wrapper.js +1 -1
  48. package/docs/BASE-SELECTION.md +92 -0
  49. package/docs/CONCEPTUAL-SCHEMA.md +20 -15
  50. package/docs/CONSTITUENTA.md +3 -3
  51. package/docs/DIAGNOSTICS.md +63 -20
  52. package/docs/DOMAIN.md +27 -21
  53. package/docs/README.md +1 -0
  54. package/docs/SYNTAX.md +3 -2
  55. package/docs/TYPIFICATION.md +3 -9
  56. package/examples/README.md +2 -0
  57. package/examples/agent-client.ts +15 -3
  58. package/examples/audit-diagnostics.ts +40 -0
  59. package/examples/chocolate-nim/build-rsform.ts +15 -0
  60. package/examples/chocolate-nim/build-rsmodel.ts +15 -22
  61. package/examples/chocolate-nim/model-demo.ts +11 -0
  62. package/examples/chocolate-nim/rsform-session.json +329 -310
  63. package/examples/chocolate-nim/rsmodel-session.json +311 -311
  64. package/examples/diagnostics-utils.ts +25 -0
  65. package/examples/expression-bank/bank-constituents.ts +10 -10
  66. package/examples/expression-bank/build-rsform.ts +8 -0
  67. package/examples/expression-bank/rsform-session.json +1501 -1501
  68. package/examples/kinship/build-rsform.ts +16 -1
  69. package/examples/kinship/build-rsmodel.ts +15 -56
  70. package/examples/kinship/model-demo.ts +35 -0
  71. package/examples/kinship/rsform-session.json +300 -215
  72. package/examples/kinship/rsmodel-session.json +216 -216
  73. package/examples/movd/build-rsform.ts +15 -0
  74. package/examples/movd/build-rsmodel.ts +15 -46
  75. package/examples/movd/model-demo.ts +31 -0
  76. package/examples/movd/rsform-session.json +359 -270
  77. package/examples/movd/rsmodel-session.json +263 -263
  78. package/examples/sample/build-rsform.ts +43 -3
  79. package/examples/sample/build-rsmodel.ts +26 -2
  80. package/examples/sample/rsform-session.json +41 -12
  81. package/examples/sample/rsmodel-session.json +37 -37
  82. package/examples/template-apply/build-rsform.ts +26 -9
  83. package/examples/template-apply/rsform-session.json +100 -45
  84. package/package.json +3 -2
  85. package/skills/rstool-helper/EXAMPLES.md +22 -1
  86. package/skills/rstool-helper/GUIDE.md +23 -28
  87. package/skills/rstool-helper/REFERENCE.md +28 -23
  88. package/src/index.ts +7 -4
  89. package/src/mappers/diagnostic-assembly.ts +96 -0
  90. package/src/mappers/diagnostics-collector.test.ts +63 -0
  91. package/src/mappers/diagnostics-collector.ts +73 -0
  92. package/src/mappers/model-adapter.ts +28 -99
  93. package/src/mappers/rsform-builder.ts +127 -0
  94. package/src/mappers/schema-adapter.ts +19 -15
  95. package/src/mappers/types.ts +12 -12
  96. package/src/models/agent-workflow.ts +2 -2
  97. package/src/models/analysis.ts +3 -2
  98. package/src/models/common.ts +0 -12
  99. package/src/models/constituenta.ts +4 -4
  100. package/src/models/diagnostic.ts +15 -10
  101. package/src/models/evaluation.ts +3 -8
  102. package/src/models/index.ts +8 -2
  103. package/src/models/rstool-agent.test.ts +66 -5
  104. package/src/models/rstool-agent.ts +22 -10
  105. package/src/models/tool-contract.ts +4 -4
  106. package/src/session/persistence.ts +2 -2
  107. package/src/session/session-store.ts +14 -7
  108. package/dist/common-DHJalS-Q.d.ts +0 -22
  109. package/dist/diagnostic-D9yl_mEL.d.ts +0 -19
  110. package/dist/mappers/model-adapter.js.map +0 -1
  111. package/dist/models-9G6ur_pg.js.map +0 -1
@@ -6,6 +6,8 @@ import { CstType, RSToolWrapperClient, type AgentConstituentaPatch } from '../..
6
6
  type DraftBatch = { draft: AgentConstituentaPatch };
7
7
 
8
8
  import { DEFAULT_RSFORM_SESSION_PATH } from './constants';
9
+ import { KINSHIP_MODEL_SET } from './model-demo';
10
+ import { assertCleanDiagnostics } from '../diagnostics-utils';
9
11
 
10
12
  async function run() {
11
13
  const client = new RSToolWrapperClient({
@@ -573,7 +575,7 @@ async function run() {
573
575
  alias: 'D12',
574
576
  cstType: CstType.TERM,
575
577
  definitionFormal: 'S2∆S3',
576
- term: 'люди',
578
+ term: 'мужчины и женщины',
577
579
  definitionText: 'Совокупность мужчин и женщин как симметрическая разность разбиения по полу'
578
580
  }
579
581
  },
@@ -670,6 +672,19 @@ async function run() {
670
672
  throw new Error(`${failedAlias}: analysis failed: ${JSON.stringify(diags)}`);
671
673
  }
672
674
 
675
+ await client.call('setModelValues', {
676
+ sessionId: session.sessionId,
677
+ set: [...KINSHIP_MODEL_SET]
678
+ });
679
+ await client.call('recalculateModel', { sessionId: session.sessionId });
680
+
681
+ await assertCleanDiagnostics(
682
+ client,
683
+ session.sessionId,
684
+ new Map(drafts.map(entry => [entry.draft.id!, entry.draft.alias])),
685
+ 'kinship RSForm'
686
+ );
687
+
673
688
  await client.call('commitStep', {
674
689
  sessionId: session.sessionId,
675
690
  message:
@@ -1,57 +1,11 @@
1
1
  import { readFile, writeFile } from 'node:fs/promises';
2
2
  import { resolve } from 'node:path';
3
3
 
4
- import { TUPLE_ID } from '@rsconcept/domain';
5
-
6
4
  import { EvalStatus, RSToolWrapperClient } from '../../src';
7
5
 
8
- import {
9
- A1_ID,
10
- D3_ID,
11
- DEFAULT_RSFORM_SESSION_PATH,
12
- DEFAULT_RSMODEL_SESSION_PATH,
13
- S1_ID,
14
- S2_ID,
15
- S3_ID,
16
- S4_ID,
17
- X1_ID
18
- } from './constants';
19
-
20
- /**
21
- * Minimal family so D3 (внучатые племянники) is non-empty:
22
- * - 0,1 Иван/Мария — общие родители 2,3
23
- * - 2 Пётр, 3 Анна — сиблинги
24
- * - 4 Олег — сын Петра
25
- * - 5 Дарья — дочь Анны (племянница Петра)
26
- * - 6 Семён — сын Дарьи (внучатый племянник Петра)
27
- */
28
- const X1_BINDING = {
29
- 0: 'Иван',
30
- 1: 'Мария',
31
- 2: 'Пётр',
32
- 3: 'Анна',
33
- 4: 'Олег',
34
- 5: 'Дарья',
35
- 6: 'Семён'
36
- } as const;
37
-
38
- /** S1: (parent, child) pairs — numeric indices into X1. */
39
- const S1_VALUE = [
40
- [TUPLE_ID, 0, 2],
41
- [TUPLE_ID, 1, 2],
42
- [TUPLE_ID, 0, 3],
43
- [TUPLE_ID, 1, 3],
44
- [TUPLE_ID, 2, 4],
45
- [TUPLE_ID, 3, 5],
46
- [TUPLE_ID, 5, 6]
47
- ] as const;
48
-
49
- /** S4: браки (муж, жена) — Иван (0) и Мария (1). */
50
- const S4_VALUE = [[TUPLE_ID, 0, 1]] as const;
51
-
52
- /** Indices of men and women in the sample family (Иван, Пётр, Олег, Семён — м; остальные — ж). */
53
- const S2_VALUE = [0, 2, 4, 6] as const;
54
- const S3_VALUE = [1, 3, 5] as const;
6
+ import { A1_ID, D3_ID, DEFAULT_RSFORM_SESSION_PATH, DEFAULT_RSMODEL_SESSION_PATH } from './constants';
7
+ import { KINSHIP_MODEL_SET } from './model-demo';
8
+ import { assertCleanDiagnostics } from '../diagnostics-utils';
55
9
 
56
10
  async function run() {
57
11
  const client = new RSToolWrapperClient({
@@ -69,13 +23,7 @@ async function run() {
69
23
 
70
24
  await client.call('setModelValues', {
71
25
  sessionId: imported.sessionId,
72
- set: [
73
- { target: X1_ID, value: X1_BINDING },
74
- { target: S1_ID, value: S1_VALUE },
75
- { target: S2_ID, value: S2_VALUE },
76
- { target: S3_ID, value: S3_VALUE },
77
- { target: S4_ID, value: S4_VALUE }
78
- ]
26
+ set: [...KINSHIP_MODEL_SET]
79
27
  });
80
28
 
81
29
  const recalculated = await client.call<{
@@ -114,6 +62,17 @@ async function run() {
114
62
  throw new Error(`Expected A1 card(X1)≤10 to hold; got ${JSON.stringify(a1Eval)}`);
115
63
  }
116
64
 
65
+ const state = await client.call<{ items: Array<{ id: number; alias: string }> }>('getSessionState', {
66
+ sessionId: imported.sessionId,
67
+ detail: 'full'
68
+ });
69
+ await assertCleanDiagnostics(
70
+ client,
71
+ imported.sessionId,
72
+ new Map(state.items.map(item => [item.id, item.alias])),
73
+ 'kinship RSModel'
74
+ );
75
+
117
76
  await client.call('commitStep', {
118
77
  sessionId: imported.sessionId,
119
78
  message: 'Модель kinship: D3 непуст; A1 card(X1)≤10 выполняется'
@@ -0,0 +1,35 @@
1
+ import { TUPLE_ID } from '@rsconcept/domain';
2
+
3
+ import { S1_ID, S2_ID, S3_ID, S4_ID, X1_ID } from './constants';
4
+
5
+ export const KINSHIP_X1_BINDING = {
6
+ 0: 'Иван',
7
+ 1: 'Мария',
8
+ 2: 'Пётр',
9
+ 3: 'Анна',
10
+ 4: 'Олег',
11
+ 5: 'Дарья',
12
+ 6: 'Семён'
13
+ } as const;
14
+
15
+ export const KINSHIP_S1_VALUE = [
16
+ [TUPLE_ID, 0, 2],
17
+ [TUPLE_ID, 1, 2],
18
+ [TUPLE_ID, 0, 3],
19
+ [TUPLE_ID, 1, 3],
20
+ [TUPLE_ID, 2, 4],
21
+ [TUPLE_ID, 3, 5],
22
+ [TUPLE_ID, 5, 6]
23
+ ] as const;
24
+
25
+ export const KINSHIP_S4_VALUE = [[TUPLE_ID, 0, 1]] as const;
26
+ export const KINSHIP_S2_VALUE = [0, 2, 4, 6] as const;
27
+ export const KINSHIP_S3_VALUE = [1, 3, 5] as const;
28
+
29
+ export const KINSHIP_MODEL_SET = [
30
+ { target: X1_ID, value: KINSHIP_X1_BINDING },
31
+ { target: S1_ID, value: KINSHIP_S1_VALUE },
32
+ { target: S2_ID, value: KINSHIP_S2_VALUE },
33
+ { target: S3_ID, value: KINSHIP_S3_VALUE },
34
+ { target: S4_ID, value: KINSHIP_S4_VALUE }
35
+ ] as const;