@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.
Files changed (116) hide show
  1. package/README.md +61 -33
  2. package/dist/agent-workflow-Gk0Vfnv1.d.ts +64 -0
  3. package/dist/analysis-LLnPhmGa.d.ts +23 -0
  4. package/dist/{common-DxLg3eXX.d.ts → common-DHJalS-Q.d.ts} +6 -1
  5. package/dist/constituenta-DnGR6bnM.d.ts +54 -0
  6. package/dist/diagnostic-D9yl_mEL.d.ts +19 -0
  7. package/dist/evaluation-Cns8BFm4.d.ts +31 -0
  8. package/dist/index.d.ts +11 -11
  9. package/dist/index.js +1 -2
  10. package/dist/mappers/model-adapter.d.ts +3 -3
  11. package/dist/mappers/schema-adapter.d.ts +4 -4
  12. package/dist/mappers/types.d.ts +6 -2
  13. package/dist/mappers/types.js +2 -0
  14. package/dist/mappers/types.js.map +1 -1
  15. package/dist/{model-value-SFAVj0dw.d.ts → model-value-BbonPzMz.d.ts} +14 -3
  16. package/dist/models/agent-workflow.d.ts +2 -0
  17. package/dist/models/agent-workflow.js +1 -0
  18. package/dist/models/analysis.d.ts +1 -1
  19. package/dist/models/common.d.ts +1 -1
  20. package/dist/models/constituenta.d.ts +2 -2
  21. package/dist/models/diagnostic.d.ts +1 -1
  22. package/dist/models/evaluation.d.ts +2 -2
  23. package/dist/models/index.d.ts +11 -11
  24. package/dist/models/index.js +2 -2
  25. package/dist/models/model-value.d.ts +2 -2
  26. package/dist/models/rstool-agent.d.ts +1 -1
  27. package/dist/models/rstool-agent.js +1 -1
  28. package/dist/models/session.d.ts +1 -1
  29. package/dist/models/tool-contract.d.ts +2 -2
  30. package/dist/models/tool-contract.js +2 -1
  31. package/dist/models/tool-contract.js.map +1 -1
  32. package/dist/models-Bw6Uum8i.js +685 -0
  33. package/dist/models-Bw6Uum8i.js.map +1 -0
  34. package/dist/rstool-agent-D2cQze_b.d.ts +71 -0
  35. package/dist/session/session-store.d.ts +18 -5
  36. package/dist/session/session-store.js +1 -64
  37. package/dist/{session-BPgsE80c.d.ts → session-ChexW8i7.d.ts} +11 -8
  38. package/dist/tool-contract-0uRGhEfW.d.ts +164 -0
  39. package/dist/wrapper/client.d.ts +23 -0
  40. package/dist/wrapper/client.js +17 -0
  41. package/dist/wrapper/client.js.map +1 -1
  42. package/dist/wrapper/stdio-wrapper.js +75 -63
  43. package/dist/wrapper/stdio-wrapper.js.map +1 -1
  44. package/docs/CONSTITUENTA.md +2 -2
  45. package/docs/DIAGNOSTICS.md +6 -5
  46. package/docs/MODEL-TESTING.md +3 -3
  47. package/docs/PORTAL-API.md +24 -18
  48. package/examples/README.md +1 -1
  49. package/examples/agent-client.ts +11 -41
  50. package/examples/build-chocolate-nim-rsform.ts +21 -70
  51. package/examples/chocolate-nim/build-rsform.ts +23 -18
  52. package/examples/chocolate-nim/build-rsmodel.ts +10 -12
  53. package/examples/chocolate-nim/rsform-session.json +290 -290
  54. package/examples/chocolate-nim/rsmodel-session.json +291 -291
  55. package/examples/expression-bank/bank-constituents.ts +304 -53
  56. package/examples/expression-bank/build-rsform.ts +19 -16
  57. package/examples/expression-bank/rsform-session.json +1551 -1551
  58. package/examples/kinship/build-rsform.ts +23 -18
  59. package/examples/kinship/build-rsmodel.ts +16 -16
  60. package/examples/kinship/rsform-session.json +219 -219
  61. package/examples/kinship/rsmodel-session.json +221 -221
  62. package/examples/kinship/session.ts +19 -21
  63. package/examples/movd/build-rsform.ts +23 -18
  64. package/examples/movd/build-rsmodel.ts +18 -20
  65. package/examples/movd/rsform-session.json +262 -262
  66. package/examples/movd/rsmodel-session.json +264 -264
  67. package/examples/sample/build-rsform.ts +18 -51
  68. package/examples/sample/build-rsmodel.ts +25 -44
  69. package/examples/sample/rsform-session.json +10 -7
  70. package/examples/sample/rsmodel-session.json +36 -33
  71. package/examples/template-apply/build-rsform.ts +27 -24
  72. package/examples/template-apply/rsform-session.json +48 -48
  73. package/package.json +4 -2
  74. package/skills/rstool-helper/EXAMPLES.md +44 -116
  75. package/skills/rstool-helper/GUIDE.md +40 -25
  76. package/skills/rstool-helper/REFERENCE.md +40 -177
  77. package/src/index.ts +24 -17
  78. package/src/mappers/portal-adapter.ts +49 -0
  79. package/src/mappers/types.ts +4 -0
  80. package/src/models/agent-workflow.ts +66 -0
  81. package/src/models/analysis.ts +7 -0
  82. package/src/models/common.ts +7 -0
  83. package/src/models/constituenta.ts +24 -6
  84. package/src/models/diagnostic.ts +4 -0
  85. package/src/models/evaluation.ts +11 -0
  86. package/src/models/import-detect.test.ts +66 -0
  87. package/src/models/import-detect.ts +42 -0
  88. package/src/models/import-export.ts +24 -0
  89. package/src/models/index.ts +22 -14
  90. package/src/models/model-value.ts +12 -0
  91. package/src/models/portal-json.test.ts +38 -0
  92. package/src/models/portal-json.ts +54 -1
  93. package/src/models/rstool-agent.test.ts +698 -146
  94. package/src/models/rstool-agent.ts +392 -92
  95. package/src/models/session.ts +8 -5
  96. package/src/models/tool-contract.ts +81 -42
  97. package/src/session/batch-apply.test.ts +123 -0
  98. package/src/session/batch-apply.ts +82 -0
  99. package/src/session/persistence.test.ts +63 -0
  100. package/src/session/persistence.ts +69 -0
  101. package/src/session/session-store.ts +76 -6
  102. package/src/wrapper/client.test.ts +58 -0
  103. package/src/wrapper/client.ts +23 -0
  104. package/src/wrapper/stdio-handler.test.ts +101 -0
  105. package/src/wrapper/stdio-handler.ts +195 -0
  106. package/src/wrapper/stdio-wrapper.ts +4 -187
  107. package/dist/analysis-JiwOYDKx.d.ts +0 -16
  108. package/dist/constituenta-Dnd6iToB.d.ts +0 -36
  109. package/dist/diagnostic-BMYvciz8.d.ts +0 -15
  110. package/dist/evaluation-CCVYH0wA.d.ts +0 -21
  111. package/dist/index-uhkmwruf.d.ts +0 -46
  112. package/dist/rstool-agent-BZi5jO1y.js +0 -158
  113. package/dist/rstool-agent-BZi5jO1y.js.map +0 -1
  114. package/dist/rstool-agent-pRaPnZay.d.ts +0 -35
  115. package/dist/session/session-store.js.map +0 -1
  116. package/dist/tool-contract-n1ghUOrK.d.ts +0 -32
@@ -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 AddOrUpdateConstituentaInput } from '../../src';
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
 
@@ -14,7 +16,7 @@ async function run() {
14
16
  await client.waitUntilReady();
15
17
  const session = await client.call<{ sessionId: string; contractVersion: string }>('createSession');
16
18
 
17
- const drafts: AddOrUpdateConstituentaInput[] = [
19
+ const drafts: DraftBatch[] = [
18
20
  {
19
21
  draft: {
20
22
  id: 1,
@@ -647,22 +649,25 @@ async function run() {
647
649
  }
648
650
  ];
649
651
 
650
- for (const input of drafts) {
651
- const result = await client.call<{
652
- state: { alias: string; analysis: { success: boolean } };
653
- diagnostics: unknown[];
654
- }>('addOrUpdateConstituenta', {
655
- sessionId: session.sessionId,
656
- input
657
- });
658
- const ok = result.state.analysis.success;
659
- const diagCount = result.diagnostics?.length ?? 0;
660
- console.log(`${input.draft.alias}: ${ok ? 'OK' : 'FAIL'} (${diagCount} diagnostics)`);
661
- if (!ok) {
662
- const diags = await client.call('listDiagnostics', { sessionId: session.sessionId });
663
- console.log(JSON.stringify(diags, null, 2));
664
- throw new Error(`${input.draft.alias}: analysis failed (${diagCount} diagnostics): ${JSON.stringify(diags)}`);
665
- }
652
+ const patch = await client.call<{
653
+ success: boolean;
654
+ diagnostics: unknown[];
655
+ failed: Array<{ draft: { alias: string }; diagnostics: unknown[] }>;
656
+ summary: { items: Array<{ alias: string; analysisSuccess: boolean }> };
657
+ }>('applySchemaPatch', {
658
+ sessionId: session.sessionId,
659
+ mode: 'atomic',
660
+ items: drafts.map(entry => entry.draft)
661
+ });
662
+
663
+ for (const item of patch.summary.items) {
664
+ console.log(`${item.alias}: ${item.analysisSuccess ? 'OK' : 'FAIL'}`);
665
+ }
666
+ if (!patch.success) {
667
+ const diags = await client.call('listDiagnostics', { sessionId: session.sessionId });
668
+ console.log(JSON.stringify(diags, null, 2));
669
+ const failedAlias = patch.failed[0]?.draft.alias ?? 'unknown';
670
+ throw new Error(`${failedAlias}: analysis failed: ${JSON.stringify(diags)}`);
666
671
  }
667
672
 
668
673
  await client.call('commitStep', {
@@ -10,9 +10,11 @@ import {
10
10
  D3_ID,
11
11
  DEFAULT_RSFORM_SESSION_PATH,
12
12
  DEFAULT_RSMODEL_SESSION_PATH,
13
+ S1_ID,
13
14
  S2_ID,
14
15
  S3_ID,
15
- S4_ID
16
+ S4_ID,
17
+ X1_ID
16
18
  } from './constants';
17
19
 
18
20
  /**
@@ -61,21 +63,19 @@ async function run() {
61
63
  const kinshipPath = resolve(process.cwd(), DEFAULT_RSFORM_SESSION_PATH);
62
64
  const kinshipJson = await readFile(kinshipPath, 'utf8');
63
65
 
64
- const imported = await client.call<{ sessionId: string }>('importSession', {
66
+ const imported = await client.call<{ sessionId: string }>('importData', {
65
67
  payload: kinshipJson
66
68
  });
67
69
 
68
- await client.call('setConstituentaValues', {
70
+ await client.call('setModelValues', {
69
71
  sessionId: imported.sessionId,
70
- input: {
71
- items: [
72
- { target: 1, value: X1_BINDING },
73
- { target: 2, value: S1_VALUE },
74
- { target: S2_ID, value: S2_VALUE },
75
- { target: S3_ID, value: S3_VALUE },
76
- { target: S4_ID, value: S4_VALUE }
77
- ]
78
- }
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
+ ]
79
79
  });
80
80
 
81
81
  const recalculated = await client.call<{
@@ -85,14 +85,14 @@ async function run() {
85
85
  });
86
86
 
87
87
  const d3 = recalculated.items.find(item => item.id === D3_ID);
88
- const d3Eval = await client.call<{ success: boolean; value: unknown; status: number }>('evaluateConstituenta', {
88
+ const d3Eval = await client.call<{ success: boolean; value: unknown; status: number }>('evaluate', {
89
89
  sessionId: imported.sessionId,
90
- input: { constituentId: D3_ID }
90
+ constituentId: D3_ID
91
91
  });
92
92
 
93
- const a1Eval = await client.call<{ success: boolean; value: unknown; status: number }>('evaluateConstituenta', {
93
+ const a1Eval = await client.call<{ success: boolean; value: unknown; status: number }>('evaluate', {
94
94
  sessionId: imported.sessionId,
95
- input: { constituentId: A1_ID }
95
+ constituentId: A1_ID
96
96
  });
97
97
 
98
98
  console.log('D3 recalculate:', d3);