@rsconcept/rstool 1.3.0 → 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 (104) 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/DIAGNOSTICS.md +63 -20
  49. package/examples/README.md +2 -0
  50. package/examples/agent-client.ts +15 -3
  51. package/examples/audit-diagnostics.ts +40 -0
  52. package/examples/chocolate-nim/build-rsform.ts +15 -0
  53. package/examples/chocolate-nim/build-rsmodel.ts +15 -22
  54. package/examples/chocolate-nim/model-demo.ts +11 -0
  55. package/examples/chocolate-nim/rsform-session.json +329 -310
  56. package/examples/chocolate-nim/rsmodel-session.json +311 -311
  57. package/examples/diagnostics-utils.ts +25 -0
  58. package/examples/expression-bank/bank-constituents.ts +10 -10
  59. package/examples/expression-bank/build-rsform.ts +8 -0
  60. package/examples/expression-bank/rsform-session.json +1501 -1501
  61. package/examples/kinship/build-rsform.ts +16 -1
  62. package/examples/kinship/build-rsmodel.ts +15 -56
  63. package/examples/kinship/model-demo.ts +35 -0
  64. package/examples/kinship/rsform-session.json +300 -215
  65. package/examples/kinship/rsmodel-session.json +216 -216
  66. package/examples/movd/build-rsform.ts +15 -0
  67. package/examples/movd/build-rsmodel.ts +15 -46
  68. package/examples/movd/model-demo.ts +31 -0
  69. package/examples/movd/rsform-session.json +359 -270
  70. package/examples/movd/rsmodel-session.json +263 -263
  71. package/examples/sample/build-rsform.ts +43 -3
  72. package/examples/sample/build-rsmodel.ts +26 -2
  73. package/examples/sample/rsform-session.json +41 -12
  74. package/examples/sample/rsmodel-session.json +37 -37
  75. package/examples/template-apply/build-rsform.ts +26 -9
  76. package/examples/template-apply/rsform-session.json +100 -45
  77. package/package.json +3 -2
  78. package/skills/rstool-helper/EXAMPLES.md +3 -1
  79. package/skills/rstool-helper/GUIDE.md +7 -6
  80. package/skills/rstool-helper/REFERENCE.md +19 -19
  81. package/src/index.ts +7 -4
  82. package/src/mappers/diagnostic-assembly.ts +96 -0
  83. package/src/mappers/diagnostics-collector.test.ts +63 -0
  84. package/src/mappers/diagnostics-collector.ts +73 -0
  85. package/src/mappers/model-adapter.ts +28 -99
  86. package/src/mappers/rsform-builder.ts +127 -0
  87. package/src/mappers/schema-adapter.ts +19 -15
  88. package/src/mappers/types.ts +12 -12
  89. package/src/models/agent-workflow.ts +2 -2
  90. package/src/models/analysis.ts +3 -2
  91. package/src/models/common.ts +0 -12
  92. package/src/models/constituenta.ts +4 -4
  93. package/src/models/diagnostic.ts +15 -10
  94. package/src/models/evaluation.ts +3 -8
  95. package/src/models/index.ts +8 -2
  96. package/src/models/rstool-agent.test.ts +66 -5
  97. package/src/models/rstool-agent.ts +22 -10
  98. package/src/models/tool-contract.ts +4 -4
  99. package/src/session/persistence.ts +2 -2
  100. package/src/session/session-store.ts +14 -7
  101. package/dist/common-DHJalS-Q.d.ts +0 -22
  102. package/dist/diagnostic-D9yl_mEL.d.ts +0 -19
  103. package/dist/mappers/model-adapter.js.map +0 -1
  104. package/dist/models-9G6ur_pg.js.map +0 -1
@@ -0,0 +1,25 @@
1
+ import { type Diagnostic, type RSToolWrapperClient } from '../src';
2
+
3
+ export type ExampleDiagnostic = Diagnostic;
4
+
5
+ export function formatDiagnostics(diags: ExampleDiagnostic[]): string {
6
+ return diags
7
+ .map(d => {
8
+ const alias = d.alias ?? (d.constituentId !== undefined ? '?' : '(scratch)');
9
+ return `[${d.kind}] ${alias} ${d.name} ${JSON.stringify(d.params ?? [])}`;
10
+ })
11
+ .join('\n');
12
+ }
13
+
14
+ export async function assertCleanDiagnostics(
15
+ client: RSToolWrapperClient,
16
+ sessionId: string,
17
+ _aliasById: Map<number, string>,
18
+ context: string
19
+ ): Promise<void> {
20
+ const diags = await client.call<ExampleDiagnostic[]>('listDiagnostics', { sessionId });
21
+ if (diags.length === 0) {
22
+ return;
23
+ }
24
+ throw new Error(`${context}: ${diags.length} diagnostic(s)\n${formatDiagnostics(diags)}`);
25
+ }
@@ -54,7 +54,7 @@ const rows: BankRow[] = [
54
54
  },
55
55
 
56
56
  // T2 — бинарные отношения двух множеств
57
- { id: 5, alias: 'T2', cstType: CstType.STATEMENT, term: 'Бинарные отношения двух множеств', definitionFormal: '1=1' },
57
+ { id: 5, alias: 'T2', cstType: CstType.STATEMENT, term: 'Бинарные отношения двух множеств', definitionFormal: '2=2' },
58
58
  {
59
59
  id: 6,
60
60
  alias: 'F4',
@@ -148,7 +148,7 @@ const rows: BankRow[] = [
148
148
  },
149
149
 
150
150
  // T3 — бинарные отношения на множестве
151
- { id: 19, alias: 'T3', cstType: CstType.STATEMENT, term: 'Бинарные отношения на множестве', definitionFormal: '1=1' },
151
+ { id: 19, alias: 'T3', cstType: CstType.STATEMENT, term: 'Бинарные отношения на множестве', definitionFormal: '3=3' },
152
152
  {
153
153
  id: 20,
154
154
  alias: 'F12',
@@ -252,7 +252,7 @@ const rows: BankRow[] = [
252
252
  },
253
253
 
254
254
  // T4 — цепочки
255
- { id: 34, alias: 'T4', cstType: CstType.STATEMENT, term: 'Цепочки', definitionFormal: '1=1' },
255
+ { id: 34, alias: 'T4', cstType: CstType.STATEMENT, term: 'Цепочки', definitionFormal: '4=4' },
256
256
  {
257
257
  id: 35,
258
258
  alias: 'P19',
@@ -291,7 +291,7 @@ const rows: BankRow[] = [
291
291
  },
292
292
 
293
293
  // T5 — графы
294
- { id: 40, alias: 'T5', cstType: CstType.STATEMENT, term: 'Графы', definitionFormal: '1=1' },
294
+ { id: 40, alias: 'T5', cstType: CstType.STATEMENT, term: 'Графы', definitionFormal: '5=5' },
295
295
  {
296
296
  id: 41,
297
297
  alias: 'P20',
@@ -319,7 +319,7 @@ const rows: BankRow[] = [
319
319
  alias: 'F23',
320
320
  cstType: CstType.FUNCTION,
321
321
  term: 'потребители',
322
- definitionFormal: '[α∈R1, σ∈ℬ(R1×R1)] Pr2(Fi1[{α}](σ))'
322
+ definitionFormal: '[α∈R1, σ∈ℬ(R1×R1)] F15[α, σ]'
323
323
  },
324
324
  {
325
325
  id: 46,
@@ -367,7 +367,7 @@ const rows: BankRow[] = [
367
367
  },
368
368
 
369
369
  // T6 — целые числа
370
- { id: 52, alias: 'T6', cstType: CstType.STATEMENT, term: 'Целые числа', definitionFormal: '1=1' },
370
+ { id: 52, alias: 'T6', cstType: CstType.STATEMENT, term: 'Целые числа', definitionFormal: '6=6' },
371
371
  {
372
372
  id: 53,
373
373
  alias: 'F31',
@@ -405,7 +405,7 @@ const rows: BankRow[] = [
405
405
  },
406
406
 
407
407
  // T7 — последовательности
408
- { id: 58, alias: 'T7', cstType: CstType.STATEMENT, term: 'Последовательности', definitionFormal: '1=1' },
408
+ { id: 58, alias: 'T7', cstType: CstType.STATEMENT, term: 'Последовательности', definitionFormal: '7=7' },
409
409
  {
410
410
  id: 59,
411
411
  alias: 'P26',
@@ -448,7 +448,7 @@ const rows: BankRow[] = [
448
448
  alias: 'T8',
449
449
  cstType: CstType.STATEMENT,
450
450
  term: 'Групповые операции',
451
- definitionFormal: '1=1',
451
+ definitionFormal: '8=8',
452
452
  convention: 'Условия для левых и правых свойств через конкатенацию'
453
453
  },
454
454
  {
@@ -545,7 +545,7 @@ const rows: BankRow[] = [
545
545
  alias: 'T9',
546
546
  cstType: CstType.STATEMENT,
547
547
  term: 'Кольца',
548
- definitionFormal: '1=1',
548
+ definitionFormal: '9=9',
549
549
  convention: 'Операции по умолчанию — группоиды'
550
550
  },
551
551
  {
@@ -566,7 +566,7 @@ const rows: BankRow[] = [
566
566
  },
567
567
 
568
568
  // T10 — множества подмножеств
569
- { id: 80, alias: 'T10', cstType: CstType.STATEMENT, term: 'Множества подмножеств', definitionFormal: '1=1' },
569
+ { id: 80, alias: 'T10', cstType: CstType.STATEMENT, term: 'Множества подмножеств', definitionFormal: '10=10' },
570
570
  {
571
571
  id: 81,
572
572
  alias: 'P46',
@@ -5,6 +5,7 @@ import { RSToolWrapperClient } from '../../src';
5
5
 
6
6
  import { BANK_DRAFTS } from './bank-constituents';
7
7
  import { DEFAULT_RSFORM_SESSION_PATH } from './constants';
8
+ import { assertCleanDiagnostics } from '../diagnostics-utils';
8
9
 
9
10
  /**
10
11
  * Банк шаблонов выражений (Portal rsforms/42, alias БВ).
@@ -40,6 +41,13 @@ async function run() {
40
41
  throw new Error(`${failedAlias}: analysis failed`);
41
42
  }
42
43
 
44
+ await assertCleanDiagnostics(
45
+ client,
46
+ session.sessionId,
47
+ new Map(BANK_DRAFTS.map(entry => [entry.draft.id!, entry.draft.alias])),
48
+ 'expression bank'
49
+ );
50
+
43
51
  await client.call('commitStep', {
44
52
  sessionId: session.sessionId,
45
53
  message: 'Банк выражений (rsforms/42): шаблоны T1–T10 на радикалах R1–R3'