@rsconcept/rstool 0.10.3 → 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 +6 -5
  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 +2 -2
  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
 
@@ -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', {
@@ -61,21 +61,19 @@ async function run() {
61
61
  const kinshipPath = resolve(process.cwd(), DEFAULT_RSFORM_SESSION_PATH);
62
62
  const kinshipJson = await readFile(kinshipPath, 'utf8');
63
63
 
64
- const imported = await client.call<{ sessionId: string }>('importSession', {
64
+ const imported = await client.call<{ sessionId: string }>('importData', {
65
65
  payload: kinshipJson
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: 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
- }
70
+ set: [
71
+ { target: 1, value: X1_BINDING },
72
+ { target: 2, value: S1_VALUE },
73
+ { target: S2_ID, value: S2_VALUE },
74
+ { target: S3_ID, value: S3_VALUE },
75
+ { target: S4_ID, value: S4_VALUE }
76
+ ]
79
77
  });
80
78
 
81
79
  const recalculated = await client.call<{
@@ -85,14 +83,14 @@ async function run() {
85
83
  });
86
84
 
87
85
  const d3 = recalculated.items.find(item => item.id === D3_ID);
88
- const d3Eval = await client.call<{ success: boolean; value: unknown; status: number }>('evaluateConstituenta', {
86
+ const d3Eval = await client.call<{ success: boolean; value: unknown; status: number }>('evaluate', {
89
87
  sessionId: imported.sessionId,
90
- input: { constituentId: D3_ID }
88
+ constituentId: D3_ID
91
89
  });
92
90
 
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
95
 
98
96
  console.log('D3 recalculate:', d3);