@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
 
@@ -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);