@rsconcept/rstool 0.10.2 → 1.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.
Files changed (112) hide show
  1. package/README.md +41 -31
  2. package/dist/agent-workflow-D-PSIb-m.d.ts +70 -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 -1
  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/rstool-agent-_8bplZnb.d.ts +71 -0
  33. package/dist/rstool-agent-kijHA9ML.js +476 -0
  34. package/dist/rstool-agent-kijHA9ML.js.map +1 -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/session-store-C3jyOSqI.js +142 -0
  39. package/dist/session-store-C3jyOSqI.js.map +1 -0
  40. package/dist/tool-contract-5_Q44DGE.d.ts +164 -0
  41. package/dist/wrapper/client.d.ts +23 -0
  42. package/dist/wrapper/client.js +17 -0
  43. package/dist/wrapper/client.js.map +1 -1
  44. package/dist/wrapper/stdio-wrapper.js +62 -52
  45. package/dist/wrapper/stdio-wrapper.js.map +1 -1
  46. package/docs/CONSTITUENTA.md +2 -2
  47. package/docs/DIAGNOSTICS.md +20 -18
  48. package/docs/MODEL-TESTING.md +3 -3
  49. package/docs/PORTAL-API.md +24 -18
  50. package/examples/README.md +1 -1
  51. package/examples/agent-client.ts +11 -41
  52. package/examples/build-chocolate-nim-rsform.ts +23 -18
  53. package/examples/chocolate-nim/build-rsform.ts +23 -18
  54. package/examples/chocolate-nim/build-rsmodel.ts +10 -12
  55. package/examples/chocolate-nim/rsform-session.json +290 -290
  56. package/examples/chocolate-nim/rsmodel-session.json +291 -291
  57. package/examples/expression-bank/bank-constituents.ts +304 -53
  58. package/examples/expression-bank/build-rsform.ts +19 -16
  59. package/examples/expression-bank/rsform-session.json +1551 -1551
  60. package/examples/kinship/build-rsform.ts +23 -18
  61. package/examples/kinship/build-rsmodel.ts +13 -15
  62. package/examples/kinship/rsform-session.json +219 -219
  63. package/examples/kinship/rsmodel-session.json +221 -221
  64. package/examples/kinship/session.ts +19 -21
  65. package/examples/movd/build-rsform.ts +23 -18
  66. package/examples/movd/build-rsmodel.ts +18 -20
  67. package/examples/movd/rsform-session.json +262 -262
  68. package/examples/movd/rsmodel-session.json +264 -264
  69. package/examples/sample/build-rsform.ts +19 -50
  70. package/examples/sample/build-rsmodel.ts +25 -44
  71. package/examples/sample/rsform-session.json +36 -33
  72. package/examples/sample/rsmodel-session.json +36 -33
  73. package/examples/template-apply/build-rsform.ts +27 -24
  74. package/examples/template-apply/rsform-session.json +48 -48
  75. package/package.json +3 -3
  76. package/skills/rstool-helper/EXAMPLES.md +44 -116
  77. package/skills/rstool-helper/GUIDE.md +40 -25
  78. package/skills/rstool-helper/REFERENCE.md +40 -177
  79. package/src/index.ts +24 -17
  80. package/src/mappers/portal-adapter.ts +43 -0
  81. package/src/mappers/types.ts +4 -0
  82. package/src/models/agent-workflow.ts +78 -0
  83. package/src/models/analysis.ts +7 -0
  84. package/src/models/common.ts +7 -0
  85. package/src/models/constituenta.ts +24 -6
  86. package/src/models/diagnostic.ts +4 -0
  87. package/src/models/evaluation.ts +11 -0
  88. package/src/models/import-detect.ts +39 -0
  89. package/src/models/import-export.ts +24 -0
  90. package/src/models/index.ts +22 -14
  91. package/src/models/model-value.ts +12 -0
  92. package/src/models/portal-json.ts +44 -0
  93. package/src/models/rstool-agent.test.ts +300 -147
  94. package/src/models/rstool-agent.ts +350 -93
  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 +28 -0
  98. package/src/session/batch-apply.ts +47 -0
  99. package/src/session/persistence.ts +56 -0
  100. package/src/session/session-store.ts +67 -4
  101. package/src/wrapper/client.ts +23 -0
  102. package/src/wrapper/stdio-wrapper.ts +59 -49
  103. package/dist/analysis-JiwOYDKx.d.ts +0 -16
  104. package/dist/constituenta-Dnd6iToB.d.ts +0 -36
  105. package/dist/diagnostic-BMYvciz8.d.ts +0 -15
  106. package/dist/evaluation-CCVYH0wA.d.ts +0 -21
  107. package/dist/index-uhkmwruf.d.ts +0 -46
  108. package/dist/rstool-agent-BZi5jO1y.js +0 -158
  109. package/dist/rstool-agent-BZi5jO1y.js.map +0 -1
  110. package/dist/rstool-agent-pRaPnZay.d.ts +0 -35
  111. package/dist/session/session-store.js.map +0 -1
  112. 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
 
@@ -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: AddOrUpdateConstituentaInput[] = [
23
+ const drafts: DraftBatch[] = [
22
24
  {
23
25
  draft: {
24
26
  id: 1,
@@ -285,22 +287,25 @@ async function run() {
285
287
  }
286
288
  ];
287
289
 
288
- for (const input of drafts) {
289
- const result = await client.call<{
290
- state: { alias: string; analysis: { success: boolean } };
291
- diagnostics: unknown[];
292
- }>('addOrUpdateConstituenta', {
293
- sessionId: session.sessionId,
294
- input
295
- });
296
- const ok = result.state.analysis.success;
297
- const diagCount = result.diagnostics?.length ?? 0;
298
- console.log(`${input.draft.alias}: ${ok ? 'OK' : 'FAIL'} (${diagCount} diagnostics)`);
299
- if (!ok) {
300
- const diags = await client.call('listDiagnostics', { sessionId: session.sessionId });
301
- console.log(JSON.stringify(diags, null, 2));
302
- throw new Error(`${input.draft.alias}: analysis failed (${diagCount} diagnostics)`);
303
- }
290
+ const patch = await client.call<{
291
+ success: boolean;
292
+ diagnostics: unknown[];
293
+ failed: Array<{ draft: { alias: string }; diagnostics: unknown[] }>;
294
+ summary: { items: Array<{ alias: string; analysisSuccess: boolean }> };
295
+ }>('applySchemaPatch', {
296
+ sessionId: session.sessionId,
297
+ mode: 'atomic',
298
+ items: drafts.map(entry => entry.draft)
299
+ });
300
+
301
+ for (const item of patch.summary.items) {
302
+ console.log(`${item.alias}: ${item.analysisSuccess ? 'OK' : 'FAIL'}`);
303
+ }
304
+ if (!patch.success) {
305
+ const diags = await client.call('listDiagnostics', { sessionId: session.sessionId });
306
+ console.log(JSON.stringify(diags, null, 2));
307
+ const failedAlias = patch.failed[0]?.draft.alias ?? 'unknown';
308
+ throw new Error(`${failedAlias}: analysis failed`);
304
309
  }
305
310
 
306
311
  await client.call('commitStep', {
@@ -61,24 +61,22 @@ async function run() {
61
61
  const schemaPath = resolve(process.cwd(), DEFAULT_RSFORM_SESSION_PATH);
62
62
  const schemaJson = await readFile(schemaPath, 'utf8');
63
63
 
64
- const imported = await client.call<{ sessionId: string }>('importSession', {
64
+ const imported = await client.call<{ sessionId: string }>('importData', {
65
65
  payload: schemaJson
66
66
  });
67
67
 
68
- await client.call('setConstituentaValues', {
68
+ await client.call('setModelValues', {
69
69
  sessionId: imported.sessionId,
70
- input: {
71
- items: [
72
- { target: X1_ID, value: X1_BINDING },
73
- { target: X2_ID, value: X2_BINDING },
74
- { target: X3_ID, value: X3_BINDING },
75
- { target: X4_ID, value: X4_BINDING },
76
- { target: S1_ID, value: S1_VALUE },
77
- { target: S2_ID, value: S2_VALUE },
78
- { target: S3_ID, value: S3_VALUE },
79
- { target: S4_ID, value: S4_VALUE }
80
- ]
81
- }
70
+ set: [
71
+ { target: X1_ID, value: X1_BINDING },
72
+ { target: X2_ID, value: X2_BINDING },
73
+ { target: X3_ID, value: X3_BINDING },
74
+ { target: X4_ID, value: X4_BINDING },
75
+ { target: S1_ID, value: S1_VALUE },
76
+ { target: S2_ID, value: S2_VALUE },
77
+ { target: S3_ID, value: S3_VALUE },
78
+ { target: S4_ID, value: S4_VALUE }
79
+ ]
82
80
  });
83
81
 
84
82
  const recalculated = await client.call<{
@@ -90,17 +88,17 @@ async function run() {
90
88
  const d5 = recalculated.items.find(item => item.id === D5_ID);
91
89
  const d6 = recalculated.items.find(item => item.id === D6_ID);
92
90
  const d10 = recalculated.items.find(item => item.id === D10_ID);
93
- const a1Eval = await client.call<{ success: boolean; value: unknown; status: number }>('evaluateConstituenta', {
91
+ const a1Eval = await client.call<{ success: boolean; value: unknown; status: number }>('evaluate', {
94
92
  sessionId: imported.sessionId,
95
- input: { constituentId: A1_ID }
93
+ constituentId: A1_ID
96
94
  });
97
- const a3Eval = await client.call<{ success: boolean; value: unknown; status: number }>('evaluateConstituenta', {
95
+ const a3Eval = await client.call<{ success: boolean; value: unknown; status: number }>('evaluate', {
98
96
  sessionId: imported.sessionId,
99
- input: { constituentId: A3_ID }
97
+ constituentId: A3_ID
100
98
  });
101
- const a4Eval = await client.call<{ success: boolean; value: unknown; status: number }>('evaluateConstituenta', {
99
+ const a4Eval = await client.call<{ success: boolean; value: unknown; status: number }>('evaluate', {
102
100
  sessionId: imported.sessionId,
103
- input: { constituentId: A4_ID }
101
+ constituentId: A4_ID
104
102
  });
105
103
 
106
104
  console.log('D5 Pr3(S2):', d5);