@rsconcept/rstool 0.1.0 → 0.2.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.
- package/README.md +21 -26
- package/dist/analysis-JiwOYDKx.d.ts +16 -0
- package/dist/common-DxLg3eXX.d.ts +17 -0
- package/dist/constituenta-Dnd6iToB.d.ts +36 -0
- package/dist/diagnostic-BMYvciz8.d.ts +15 -0
- package/dist/evaluation-CCVYH0wA.d.ts +21 -0
- package/dist/index.d.ts +12 -15
- package/dist/index.js +7 -585
- package/dist/mappers/model-adapter.d.ts +18 -23
- package/dist/mappers/model-adapter.js +183 -231
- package/dist/mappers/model-adapter.js.map +1 -1
- package/dist/mappers/schema-adapter.d.ts +16 -18
- package/dist/mappers/schema-adapter.js +55 -84
- package/dist/mappers/schema-adapter.js.map +1 -1
- package/dist/mappers/types.d.ts +15 -16
- package/dist/mappers/types.js +16 -17
- package/dist/mappers/types.js.map +1 -1
- package/dist/model-value-SFAVj0dw.d.ts +35 -0
- package/dist/models/analysis.d.ts +2 -18
- package/dist/models/analysis.js +1 -1
- package/dist/models/common.d.ts +2 -15
- package/dist/models/common.js +1 -8
- package/dist/models/constituenta.d.ts +2 -38
- package/dist/models/constituenta.js +1 -1
- package/dist/models/diagnostic.d.ts +2 -17
- package/dist/models/diagnostic.js +1 -1
- package/dist/models/evaluation.d.ts +2 -23
- package/dist/models/evaluation.js +1 -1
- package/dist/models/index.d.ts +10 -13
- package/dist/models/index.js +4 -491
- package/dist/models/model-value.d.ts +2 -37
- package/dist/models/model-value.js +1 -1
- package/dist/models/rstool-agent.d.ts +2 -36
- package/dist/models/rstool-agent.js +90 -477
- package/dist/models/rstool-agent.js.map +1 -1
- package/dist/models/session.d.ts +2 -29
- package/dist/models/session.js +1 -1
- package/dist/models/tool-contract.d.ts +2 -33
- package/dist/models/tool-contract.js +5 -5
- package/dist/models/tool-contract.js.map +1 -1
- package/dist/rstool-agent-DkeH5Qml.d.ts +33 -0
- package/dist/session/session-store.d.ts +14 -21
- package/dist/session/session-store.js +59 -63
- package/dist/session/session-store.js.map +1 -1
- package/dist/session-BHGCCLfQ.d.ts +24 -0
- package/dist/tool-contract-CsGqg_0P.d.ts +30 -0
- package/dist/wrapper/client.d.ts +26 -24
- package/dist/wrapper/client.js +90 -93
- package/dist/wrapper/client.js.map +1 -1
- package/dist/wrapper/stdio-wrapper.d.ts +1 -1
- package/dist/wrapper/stdio-wrapper.js +166 -664
- package/dist/wrapper/stdio-wrapper.js.map +1 -1
- package/docs/CONSTITUENTA.md +39 -23
- package/docs/DIAGNOSTICS.md +79 -74
- package/docs/DOMAIN.md +5 -3
- package/docs/GRAMMAR-REF.md +55 -55
- package/docs/PORTAL-API.md +7 -10
- package/docs/SYNTAX.md +32 -32
- package/docs/TYPIFICATION.md +14 -9
- package/package.json +8 -7
- package/skills/INSTALL.md +35 -0
- package/skills/README.md +17 -9
- package/skills/rstool-helper/EXAMPLES.md +51 -10
- package/skills/rstool-helper/GUIDE.md +133 -0
- package/skills/rstool-helper/REFERENCE.md +5 -3
- package/skills/rstool-helper/SKILL.md +23 -134
- package/dist/index.js.map +0 -1
- package/dist/models/analysis.js.map +0 -1
- package/dist/models/common.js.map +0 -1
- package/dist/models/constituenta.js.map +0 -1
- package/dist/models/diagnostic.js.map +0 -1
- package/dist/models/evaluation.js.map +0 -1
- package/dist/models/index.js.map +0 -1
- package/dist/models/model-value.js.map +0 -1
- package/dist/models/session.js.map +0 -1
|
@@ -1,148 +1,37 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rstool-helper
|
|
3
|
-
description:
|
|
3
|
+
description: >-
|
|
4
|
+
RS language and @rsconcept/rstool for agents. After npm install, read GUIDE and
|
|
5
|
+
docs from node_modules. If the entry skill is not installed in the project yet,
|
|
6
|
+
follow skills/INSTALL.md in this package.
|
|
4
7
|
---
|
|
5
8
|
|
|
6
|
-
#
|
|
9
|
+
# rstool-helper (npm install)
|
|
7
10
|
|
|
8
|
-
|
|
11
|
+
Thin **entry** skill. Full guide and docs stay in the package — use the Read tool on the paths below (from the project root).
|
|
9
12
|
|
|
10
|
-
|
|
13
|
+
## If the entry skill is not installed yet
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
- Analyzer: `@rsconcept/domain` (installed automatically as a dependency)
|
|
14
|
-
- Language and API reference: bundled `docs/*.md` copied into this skill during installation
|
|
15
|
+
The user ran `npm install @rsconcept/rstool` but has not registered the agent skill in the project. **Run the install procedure** in:
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
`node_modules/@rsconcept/rstool/skills/INSTALL.md`
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
Then continue with the canonical files below.
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
npm install @rsconcept/rstool
|
|
22
|
-
```
|
|
21
|
+
## Canonical files (read before rstool work)
|
|
23
22
|
|
|
24
|
-
|
|
23
|
+
| What | Path |
|
|
24
|
+
| :--- | :--- |
|
|
25
|
+
| **Start here** — workflow, cstType, S# vs D# | `node_modules/@rsconcept/rstool/skills/rstool-helper/GUIDE.md` |
|
|
26
|
+
| API, stdio, contract | `node_modules/@rsconcept/rstool/skills/rstool-helper/REFERENCE.md` |
|
|
27
|
+
| Examples, pitfalls | `node_modules/@rsconcept/rstool/skills/rstool-helper/EXAMPLES.md` |
|
|
28
|
+
| Language / domain docs | `node_modules/@rsconcept/rstool/docs/*.md` |
|
|
29
|
+
| Install procedure | `node_modules/@rsconcept/rstool/skills/INSTALL.md` |
|
|
25
30
|
|
|
26
|
-
|
|
31
|
+
Always open **GUIDE.md** first when starting a rstool task, then **REFERENCE.md** / **EXAMPLES.md** / relevant `docs/*.md` as needed.
|
|
27
32
|
|
|
28
|
-
|
|
29
|
-
mkdir -p .agents/skills
|
|
30
|
-
cp -R node_modules/@rsconcept/rstool/skills/rstool-helper .agents/skills/rstool-helper
|
|
31
|
-
cp -R node_modules/@rsconcept/rstool/docs .agents/skills/rstool-helper/docs
|
|
32
|
-
```
|
|
33
|
+
## Quick facts
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
New-Item -ItemType Directory -Force .agents/skills
|
|
38
|
-
Copy-Item -Recurse -Force node_modules/@rsconcept/rstool/skills/rstool-helper .agents/skills/rstool-helper
|
|
39
|
-
Copy-Item -Recurse -Force node_modules/@rsconcept/rstool/docs .agents/skills/rstool-helper/docs
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
This makes the skill self-contained for hosts that only read files under the skill directory.
|
|
43
|
-
|
|
44
|
-
## Docs/Hints Reference
|
|
45
|
-
|
|
46
|
-
| Info | Location |
|
|
47
|
-
| :---------------------------------------- | :---------------------------------------------------------------- |
|
|
48
|
-
| rstool API, methods, error codes | [REFERENCE.md](REFERENCE.md) |
|
|
49
|
-
| Worked examples, common mistakes | [EXAMPLES.md](EXAMPLES.md) |
|
|
50
|
-
| Domain vocabulary (English) | `docs/DOMAIN.md` (bundled with the npm package) |
|
|
51
|
-
| Constituenta fields, validation, ordering | `docs/CONSTITUENTA.md` |
|
|
52
|
-
| RSLang syntax (operators, quantifiers) | `docs/SYNTAX.md` |
|
|
53
|
-
| Typification grades, radicals | `docs/TYPIFICATION.md` |
|
|
54
|
-
| Diagnostic code → fix table | `docs/DIAGNOSTICS.md` |
|
|
55
|
-
| Portal REST API (live data) | `docs/PORTAL-API.md` |
|
|
56
|
-
| Lezer grammar pointers | `docs/GRAMMAR-REF.md` (full grammar lives in `@rsconcept/domain`) |
|
|
57
|
-
| Code samples | [EXAMPLES.md](EXAMPLES.md), package README |
|
|
58
|
-
|
|
59
|
-
If you installed `@rsconcept/rstool` from npm, the source docs ship inside `node_modules/@rsconcept/rstool/docs/`; the install commands above copy them into this skill folder.
|
|
60
|
-
|
|
61
|
-
## Protocol Summary
|
|
62
|
-
|
|
63
|
-
1. **Start session**: `createSession`
|
|
64
|
-
2. **Add bases/constants**: type `basic` (`X*`), `constant` (`C*`) — `definitionFormal: ''`
|
|
65
|
-
3. **Add derived**: terms, axioms, etc.—only after dependencies present
|
|
66
|
-
4. **Analyze scratch**: `analyzeExpression`
|
|
67
|
-
5. **Process diagnostics**: check `analysis.diagnostics`/`listDiagnostics`; fix by range
|
|
68
|
-
6. **Checkpoint**: `commitStep` (message optional)
|
|
69
|
-
7. **Model values**: `setConstituentaValue` / `setConstituentaValues` for base bindings (`{0:"a",1:"b"}`) or structured values; `getModelState`
|
|
70
|
-
8. **Evaluate**: `evaluateExpression` (scratch) or `evaluateConstituenta` / `recalculateModel` (stored definitions)
|
|
71
|
-
9. **Export/import**: persist with `exportSession`/`importSession` (includes `state.model`)
|
|
72
|
-
|
|
73
|
-
**Clients**:
|
|
74
|
-
|
|
75
|
-
- Node: use `RSToolWrapperClient`
|
|
76
|
-
- Stdio process: `npx rstool-wrapper` — JSON per line
|
|
77
|
-
|
|
78
|
-
## API/REST
|
|
79
|
-
|
|
80
|
-
For full reference see `docs/PORTAL-API.md`. Short form:
|
|
81
|
-
|
|
82
|
-
- **Portal UI**: `https://portal.acconcept.ru`
|
|
83
|
-
- **API**: `https://api.portal.acconcept.ru`
|
|
84
|
-
- Endpoints: `GET /api/rsforms/{id}`, `GET /api/rsforms/{id}/details`, `GET /api/library/{id}/versions/{v}`, `GET /api/oss/{id}`, `GET /api/models/{id}`, OpenAPI at `GET /schema`.
|
|
85
|
-
- Don't scrape SPA or use UI query params (`tab=`, etc.).
|
|
86
|
-
- rstool itself never calls the REST API; bring data in via `addOrUpdateConstituenta` after fetching.
|
|
87
|
-
|
|
88
|
-
## Constituent Types (`cstType`)
|
|
89
|
-
|
|
90
|
-
| cstType | Example | Formal | Notes |
|
|
91
|
-
| :-------- | :------ | :-------- | :------------------- |
|
|
92
|
-
| basic | X1 | **empty** | Required |
|
|
93
|
-
| constant | C1 | **empty** | Required |
|
|
94
|
-
| nominal | S1 | allowed | Naming |
|
|
95
|
-
| structure | custom | allowed | Structured genus |
|
|
96
|
-
| term | D1 | allowed | Set/term |
|
|
97
|
-
| axiom | A1 | allowed | Logical (type=Logic) |
|
|
98
|
-
| statement | T1 | allowed | Logical (type=Logic) |
|
|
99
|
-
| function | F1 | allowed | Parameterized |
|
|
100
|
-
| predicate | P1 | allowed | Parameterized |
|
|
101
|
-
|
|
102
|
-
- Non-empty formal for `basic`/`constant` ⇒ error `0x8862` (`definitionNotAllowed`)
|
|
103
|
-
- Empty `basic`/`constant` always typified
|
|
104
|
-
- **Interpretable** (can set value): `basic`, `constant`, `structure`, `axiom`, `term`, `statement`
|
|
105
|
-
- **Inferrable** (computed, do not set directly): `term`, `axiom`, `statement`
|
|
106
|
-
|
|
107
|
-
## Syntax
|
|
108
|
-
|
|
109
|
-
- **Globals**: `X1`, `C1`, `D1`, `F1`, `P1`, `A1`, `R1`
|
|
110
|
-
- **Locals**: `x`, `ξ`, `μ2`
|
|
111
|
-
- **Literals**: `42`, `Z`, `∅`
|
|
112
|
-
- Full operator + precedence table: `docs/SYNTAX.md`
|
|
113
|
-
- Grammar pointers: `docs/GRAMMAR-REF.md`
|
|
114
|
-
|
|
115
|
-
## Expression Types
|
|
116
|
-
|
|
117
|
-
- **Set-theoretic**: `∪`, `∩`, `\`, `∆`, `×`, `∈`, `⊆`, `ℬ(...)`, tuples
|
|
118
|
-
- **Logical**: `¬`, `&`, `∨`, `⇒`, `⇔`, `∀`, `∃`, comparisons `=`, `≠`, `<`
|
|
119
|
-
- **Parameterized**: `[arg1∈H1, arg2∈H2] body`
|
|
120
|
-
- Detailed semantics in `docs/SYNTAX.md`; typification grades and radicals in `docs/TYPIFICATION.md`.
|
|
121
|
-
|
|
122
|
-
Always set `cstType` in upserts/analysis to true role.
|
|
123
|
-
|
|
124
|
-
## Diagnostics Loop
|
|
125
|
-
|
|
126
|
-
1. Check `analysis.success`
|
|
127
|
-
2. If not, see `analysis.diagnostics` / `listDiagnostics`
|
|
128
|
-
3. Map `code` → cause → fix via `docs/DIAGNOSTICS.md`
|
|
129
|
-
4. Use `from`, `to` to patch `definitionFormal`; re-send
|
|
130
|
-
|
|
131
|
-
Don’t infer types—always read tool output.
|
|
132
|
-
|
|
133
|
-
## Declaration Order
|
|
134
|
-
|
|
135
|
-
1. All `basic`, `constant`
|
|
136
|
-
2. Core/critical first
|
|
137
|
-
3. Topological: dependencies before dependents (e.g. `D1` before `D2` if `D2` refers to `D1`)
|
|
138
|
-
4. Derived right after their sources
|
|
139
|
-
|
|
140
|
-
## Checklist
|
|
141
|
-
|
|
142
|
-
- [ ] `sessionId` obtained & tracked
|
|
143
|
-
- [ ] Bases/constants are empty formal
|
|
144
|
-
- [ ] All dependencies exist before upsert
|
|
145
|
-
- [ ] Matching `cstType`
|
|
146
|
-
- [ ] Diagnostics handled before commit/export
|
|
147
|
-
- [ ] Base bindings set before evaluating expressions that reference base elements
|
|
148
|
-
- [ ] For other details, check help topics or [REFERENCE.md](REFERENCE.md)
|
|
35
|
+
- Package: `@rsconcept/rstool`; wrapper: `npx rstool-wrapper`
|
|
36
|
+
- `@rsconcept/domain` is installed as a dependency (analyzer, errors in `src/rslang/error.ts`)
|
|
37
|
+
- Do not copy GUIDE, REFERENCE, EXAMPLES, or `docs/` into the project skills folder — read them from `node_modules` paths above
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mappers/types.ts","../src/models/common.ts","../src/mappers/model-adapter.ts","../src/mappers/schema-adapter.ts","../src/session/session-store.ts","../src/models/tool-contract.ts","../src/models/rstool-agent.ts","../src/wrapper/client.ts"],"sourcesContent":["import { type ValueClass } from '@rsconcept/domain/rslang';\n\nimport { type AnalysisResult, type RSToolErrorDescription } from '../models';\n\nexport interface DomainErrorLike {\n code: number;\n from: number;\n to: number;\n params?: readonly string[];\n}\n\nexport interface DomainAnalysisLike {\n success: boolean;\n type: Record<string, unknown> | null;\n valueClass: ValueClass | null;\n errors: DomainErrorLike[];\n}\n\nexport function toPublicError(error: DomainErrorLike): RSToolErrorDescription {\n return {\n code: error.code,\n from: error.from,\n to: error.to,\n params: error.params\n };\n}\n\nexport function toPublicAnalysis(analysis: DomainAnalysisLike): AnalysisResult {\n return {\n success: analysis.success,\n type: analysis.type,\n valueClass: analysis.valueClass,\n diagnostics: analysis.errors.map(toPublicError)\n };\n}\n","import { CstType } from '@rsconcept/domain/library/rsform';\nimport { EvalStatus, type BasicBinding } from '@rsconcept/domain/library/rsmodel';\nimport { ValueClass } from '@rsconcept/domain/rslang';\nimport { RSErrorCode } from '@rsconcept/domain/rslang/error';\n\nexport { CstType, EvalStatus, RSErrorCode, ValueClass };\nexport type { BasicBinding };\n\n/** Runtime evaluation value: number, nested array (set/tuple), or boolean 0/1. */\nexport type RSToolValue = number | RSToolValue[];\n\nexport interface RSToolErrorDescription {\n code: number;\n from: number;\n to: number;\n params?: readonly string[];\n}\n","import { Graph } from '@rsconcept/domain/graph/graph';\nimport { extractGlobals } from '@rsconcept/domain/rslang/api';\nimport { type ExpressionType, RSLangAnalyzer, type Value, type ValueClass } from '@rsconcept/domain/rslang';\nimport { isBaseSet } from '@rsconcept/domain/library/rsform-api';\nimport { type Constituenta, CstType, type RSForm } from '@rsconcept/domain/library/rsform';\nimport { RSEngine, type RSEngineServices } from '@rsconcept/domain/library/rsengine';\nimport { type BasicBinding, EvalStatus, type RSModel } from '@rsconcept/domain/library/rsmodel';\nimport {\n isInferrable,\n isInterpretable,\n toBasicBinding,\n validateBasicBindingData,\n validateValueData\n} from '@rsconcept/domain/library/rsmodel-api';\n\nimport {\n type ConstituentaState,\n type EvaluationResult,\n type RecalculateModelResult,\n type SessionModelState,\n type SessionState,\n type SetConstituentaValueInput\n} from '../models';\nimport { toPublicError } from './types';\n\nconst SESSION_MODEL_ID = 0;\n\nexport class ModelAdapter {\n public async setConstituentaValue(\n session: SessionState,\n input: SetConstituentaValueInput\n ): Promise<SessionModelState> {\n this.validateSetInput(session, input);\n const engine = this.createEngine(session);\n const cst = session.items.find(item => item.id === input.target)!;\n const frontendType = cst.cstType;\n\n if (isBaseSet(frontendType)) {\n const binding = toBasicBinding(input.value as Record<string | number, string>);\n await engine.setBasicValue(input.target, binding);\n } else {\n await engine.setStructureValue(input.target, input.value as Value);\n }\n session.updatedAt = new Date().toISOString();\n return structuredClone(session.model);\n }\n\n public async setConstituentaValues(\n session: SessionState,\n input: { items: SetConstituentaValueInput[] }\n ): Promise<SessionModelState> {\n for (const item of input.items) {\n await this.setConstituentaValue(session, item);\n }\n return structuredClone(session.model);\n }\n\n public async clearConstituentaValues(session: SessionState, ids: number[]): Promise<SessionModelState> {\n const engine = this.createEngine(session);\n for (const id of ids) {\n await engine.resetValue(id);\n session.updatedAt = new Date().toISOString();\n }\n return structuredClone(session.model);\n }\n\n public evaluateExpression(session: SessionState, expression: string, cstType: CstType): EvaluationResult {\n const engine = this.createEngine(session);\n const result = engine.evaluateExpression(expression, cstType);\n const status =\n result.value === null\n ? result.errors.length > 0\n ? EvalStatus.EVAL_FAIL\n : EvalStatus.EMPTY\n : EvalStatus.HAS_DATA;\n return toPublicEvaluationResult(result.value, result.errors, result.iterations, result.cacheHits, status);\n }\n\n public evaluateConstituenta(session: SessionState, constituentId: number): EvaluationResult {\n const cst = session.items.find(item => item.id === constituentId);\n if (!cst) {\n throw new Error(`Unknown constituent: ${constituentId}`);\n }\n const engine = this.createEngine(session);\n const result = engine.calculateCst(constituentId);\n const status = engine.getCstStatus(constituentId);\n return toPublicEvaluationResult(result.value, result.errors, result.iterations, result.cacheHits, status);\n }\n\n public recalculateModel(session: SessionState): RecalculateModelResult {\n const engine = this.createEngine(session);\n engine.recalculateAll();\n const items = session.items.map(item => ({\n id: item.id,\n alias: item.alias,\n value: engine.getCstValue(item.id) as number | number[] | null,\n status: engine.getCstStatus(item.id)\n }));\n return { items };\n }\n\n public createEngine(session: SessionState): RSEngine {\n const schema = buildRSFormFromSession(session);\n const model = buildRSModelFromSession(session);\n const engine = new RSEngine(SESSION_MODEL_ID, createInMemoryServices(session));\n engine.loadData(schema, model);\n return engine;\n }\n\n private validateSetInput(session: SessionState, input: SetConstituentaValueInput): void {\n const cst = session.items.find(item => item.id === input.target);\n if (!cst) {\n throw new Error(`Unknown constituent: ${input.target}`);\n }\n const frontendType = cst.cstType;\n if (!isInterpretable(frontendType)) {\n throw new Error(`Constituent ${cst.alias} is not interpretable`);\n }\n if (isInferrable(frontendType)) {\n throw new Error(`Constituent ${cst.alias} is inferrable and cannot be set directly`);\n }\n if (isBaseSet(frontendType)) {\n if (!validateBasicBindingData(input.value)) {\n throw new Error(`Invalid basic binding for ${cst.alias}`);\n }\n return;\n }\n if (!validateValueData(input.value)) {\n throw new Error(`Invalid structured value for ${cst.alias}`);\n }\n }\n}\n\nfunction createInMemoryServices(session: SessionState): RSEngineServices {\n return {\n setCstValue: async ({ data }) => {\n for (const item of data) {\n const entry = {\n id: item.target,\n type: item.type,\n value: item.data as Value | BasicBinding\n };\n const index = session.model.items.findIndex(existing => existing.id === item.target);\n if (index === -1) {\n session.model.items.push(entry);\n } else {\n session.model.items[index] = entry;\n }\n }\n },\n clearValues: async ({ data }) => {\n const ids = new Set(data.items);\n session.model.items = session.model.items.filter(item => !ids.has(item.id));\n }\n };\n}\n\nfunction buildRSFormFromSession(session: SessionState): RSForm {\n const graph = new Graph<number>();\n const cstByAlias = new Map<string, Constituenta>();\n const cstByID = new Map<number, Constituenta>();\n const analyzer = new RSLangAnalyzer();\n\n const items = session.items.map(item => {\n const cst = toFrontendConstituenta(item);\n cstByAlias.set(cst.alias, cst);\n cstByID.set(cst.id, cst);\n graph.addNode(cst.id);\n if (item.cstType === CstType.BASE) {\n analyzer.addBase(cst.alias);\n }\n if (cst.effectiveType) {\n analyzer.setGlobal(cst.alias, cst.effectiveType, cst.analysis.valueClass as ValueClass | null);\n }\n return cst;\n });\n\n for (const cst of items) {\n for (const alias of extractGlobals(cst.definition_formal)) {\n const source = cstByAlias.get(alias);\n if (source) {\n graph.addEdge(source.id, cst.id);\n }\n }\n }\n\n return {\n id: 0,\n items,\n cstByAlias,\n cstByID,\n graph,\n analyzer,\n inheritance: [],\n attribution: [],\n attribution_graph: graph.clone(),\n oss: [],\n models: [],\n editors: [],\n versions: [],\n is_produced: false,\n is_attributive: false,\n version: 'latest'\n } as unknown as RSForm;\n}\n\nfunction buildRSModelFromSession(session: SessionState): RSModel {\n return {\n id: SESSION_MODEL_ID,\n schema: 0,\n editors: [],\n items: session.model.items.map(item => ({\n id: item.id,\n type: item.type,\n value: item.value as Value | BasicBinding\n }))\n } as unknown as RSModel;\n}\n\nfunction toFrontendConstituenta(item: ConstituentaState): Constituenta {\n const effectiveType = (item.analysis.type ?? null) as ExpressionType | null;\n return {\n id: item.id,\n alias: item.alias,\n cst_type: item.cstType,\n definition_formal: item.definitionFormal,\n definition_raw: item.definitionFormal,\n definition_resolved: item.definitionFormal,\n term_raw: item.term,\n term_resolved: item.term,\n term_forms: [],\n convention: item.convention,\n typification_manual: '',\n value_is_property: false,\n crucial: false,\n attributes: [],\n homonyms: [],\n formalDuplicates: [],\n analysis: {\n success: item.analysis.success,\n type: effectiveType,\n valueClass: item.analysis.valueClass\n },\n effectiveType,\n is_type_mismatch: false,\n schema: 0,\n cst_class: 'derived',\n status: item.analysis.success ? 'verified' : 'incorrect',\n is_template: false,\n is_simple_expression: true,\n parent_schema_index: 0,\n parent_schema: null,\n is_inherited: false,\n has_inherited_children: false,\n spawn: [],\n spawn_alias: []\n } as unknown as Constituenta;\n}\n\nfunction toPublicEvaluationResult(\n value: Value | null,\n errors: { code: number; from: number; to: number; params?: readonly string[] }[],\n iterations: number,\n cacheHits: number,\n status: EvalStatus\n): EvaluationResult {\n const diagnostics = errors.map(toPublicError);\n return {\n success: diagnostics.length === 0 && value !== null,\n value: value as EvaluationResult['value'],\n status,\n iterations,\n cacheHits,\n diagnostics\n };\n}\n","import { RSLangAnalyzer, type AnalysisFull, type ValueClass } from '@rsconcept/domain/rslang';\nimport { getAnalysisFor } from '@rsconcept/domain/library/rsform-api';\nimport { CstType, type RSForm } from '@rsconcept/domain/library/rsform';\n\nimport {\n type AnalysisResult,\n type ConstituentaDraft,\n type ConstituentaState,\n type DiagnosticRecord,\n type SessionState\n} from '../models';\nimport { toPublicAnalysis, toPublicError } from './types';\n\nexport class SchemaAdapter {\n public analyzeAgainstSession(\n session: SessionState,\n draft: ConstituentaDraft\n ): { result: AnalysisResult; diagnostics: DiagnosticRecord[] } {\n const analyzer = this.buildAnalyzer(session);\n const schema = this.toPseudoRSFormState(session, analyzer);\n const analysis = getAnalysisFor(draft.definitionFormal, draft.cstType, schema as unknown as RSForm, draft.alias);\n const result = toPublicAnalysis({\n success: analysis.success,\n type: analysis.type as Record<string, unknown> | null,\n valueClass: analysis.valueClass,\n errors: analysis.errors\n });\n return {\n result,\n diagnostics: analysis.errors.map(error => ({\n sessionId: session.sessionId,\n constituentId: draft.id,\n expression: draft.definitionFormal,\n error: toPublicError(error)\n }))\n };\n }\n\n public mergeStateWithDraft(\n session: SessionState,\n draft: ConstituentaDraft,\n analysis: AnalysisResult\n ): ConstituentaState {\n const state: ConstituentaState = {\n ...draft,\n term: draft.term ?? '',\n definitionText: draft.definitionText ?? '',\n convention: draft.convention ?? '',\n analysis\n };\n const index = session.items.findIndex(item => item.id === draft.id);\n if (index === -1) {\n session.items.push(state);\n } else {\n session.items[index] = state;\n }\n session.updatedAt = new Date().toISOString();\n return state;\n }\n\n public toPseudoRSFormState(\n session: SessionState,\n analyzer: RSLangAnalyzer\n ): Pick<RSForm, 'items' | 'cstByAlias' | 'analyzer'> {\n const cstByAlias = new Map(session.items.map(item => [item.alias, item]));\n return {\n items: session.items as unknown as RSForm['items'],\n cstByAlias: cstByAlias as unknown as RSForm['cstByAlias'],\n analyzer\n };\n }\n\n private buildAnalyzer(session: SessionState): RSLangAnalyzer {\n const analyzer = new RSLangAnalyzer();\n for (const item of session.items) {\n if (item.cstType === CstType.BASE) {\n analyzer.addBase(item.alias);\n }\n analyzer.setGlobal(\n item.alias,\n item.analysis.type as AnalysisFull['type'],\n item.analysis.valueClass as ValueClass | null\n );\n }\n return analyzer;\n }\n}\n","import { randomUUID } from 'node:crypto';\n\nimport {\n type DiagnosticRecord,\n type ListDiagnosticsFilters,\n type SessionHandle,\n type SessionRevision,\n type SessionState\n} from '../models';\n\ninterface SessionEnvelope {\n state: SessionState;\n diagnostics: DiagnosticRecord[];\n}\n\nexport class SessionStore {\n private sessions = new Map<string, SessionEnvelope>();\n\n public create(initial?: Partial<SessionState>, contractVersion?: string): SessionHandle {\n const now = new Date().toISOString();\n const sessionId = initial?.sessionId ?? randomUUID();\n const state: SessionState = {\n sessionId,\n createdAt: initial?.createdAt ?? now,\n updatedAt: now,\n revisions: initial?.revisions ?? [],\n items: initial?.items ?? [],\n model: initial?.model ?? { items: [] }\n };\n this.sessions.set(sessionId, {\n state,\n diagnostics: []\n });\n return {\n sessionId,\n contractVersion: contractVersion ?? '1.0.0'\n };\n }\n\n public get(sessionId: string): SessionEnvelope {\n const found = this.sessions.get(sessionId);\n if (!found) {\n throw new Error(`Unknown session: ${sessionId}`);\n }\n return found;\n }\n\n public replaceState(sessionId: string, nextState: SessionState): void {\n const found = this.get(sessionId);\n found.state = {\n ...nextState,\n updatedAt: new Date().toISOString()\n };\n }\n\n public addRevision(sessionId: string, message?: string): SessionRevision {\n const found = this.get(sessionId);\n const revision: SessionRevision = {\n revisionId: randomUUID(),\n at: new Date().toISOString(),\n message\n };\n found.state.revisions.push(revision);\n found.state.updatedAt = revision.at;\n return revision;\n }\n\n public appendDiagnostics(sessionId: string, records: DiagnosticRecord[]): void {\n const found = this.get(sessionId);\n found.diagnostics.push(...records);\n found.state.updatedAt = new Date().toISOString();\n }\n\n public listDiagnostics(sessionId: string, filters?: ListDiagnosticsFilters): DiagnosticRecord[] {\n const found = this.get(sessionId);\n if (!filters?.constituentId) {\n return [...found.diagnostics];\n }\n return found.diagnostics.filter(record => record.constituentId === filters.constituentId);\n }\n}\n","import { type AnalysisResult, type AnalyzeExpressionInput } from './analysis';\nimport {\n type AddOrUpdateConstituentaInput,\n type AddOrUpdateConstituentaResult\n} from './constituenta';\nimport {\n type DiagnosticRecord,\n type ListDiagnosticsFilters\n} from './diagnostic';\nimport {\n type EvaluateConstituentaInput,\n type EvaluateExpressionInput,\n type EvaluationResult\n} from './evaluation';\nimport {\n type ClearConstituentaValuesInput,\n type RecalculateModelResult,\n type SessionModelState,\n type SetConstituentaValueInput,\n type SetConstituentaValuesInput\n} from './model-value';\nimport {\n type SessionHandle,\n type SessionRevision,\n type SessionState\n} from './session';\n\nexport const CONTRACT_VERSION = '1.2.0';\n\nexport interface RSToolAgentContract {\n readonly contractVersion: string;\n createSession(initial?: Partial<SessionState>): SessionHandle;\n addOrUpdateConstituenta(sessionId: string, input: AddOrUpdateConstituentaInput): AddOrUpdateConstituentaResult;\n analyzeExpression(sessionId: string, input: AnalyzeExpressionInput): AnalysisResult;\n getFormState(sessionId: string): SessionState;\n listDiagnostics(sessionId: string, filters?: ListDiagnosticsFilters): DiagnosticRecord[];\n commitStep(sessionId: string, message?: string): SessionRevision;\n exportSession(sessionId: string): string;\n importSession(payload: string): SessionHandle;\n setConstituentaValue(sessionId: string, input: SetConstituentaValueInput): Promise<SessionModelState>;\n setConstituentaValues(sessionId: string, input: SetConstituentaValuesInput): Promise<SessionModelState>;\n clearConstituentaValues(sessionId: string, input: ClearConstituentaValuesInput): Promise<SessionModelState>;\n getModelState(sessionId: string): SessionModelState;\n evaluateExpression(sessionId: string, input: EvaluateExpressionInput): EvaluationResult;\n evaluateConstituenta(sessionId: string, input: EvaluateConstituentaInput): EvaluationResult;\n recalculateModel(sessionId: string): RecalculateModelResult;\n}\n","import { ModelAdapter } from '../mappers/model-adapter';\nimport { SchemaAdapter } from '../mappers/schema-adapter';\nimport { SessionStore } from '../session/session-store';\nimport { type AnalysisResult, type AnalyzeExpressionInput } from './analysis';\nimport {\n type AddOrUpdateConstituentaInput,\n type AddOrUpdateConstituentaResult\n} from './constituenta';\nimport { type ListDiagnosticsFilters } from './diagnostic';\nimport {\n type EvaluateConstituentaInput,\n type EvaluateExpressionInput,\n type EvaluationResult\n} from './evaluation';\nimport {\n type ClearConstituentaValuesInput,\n type RecalculateModelResult,\n type SessionModelState,\n type SetConstituentaValueInput,\n type SetConstituentaValuesInput\n} from './model-value';\nimport { type SessionHandle, type SessionRevision, type SessionState } from './session';\nimport { CONTRACT_VERSION, type RSToolAgentContract } from './tool-contract';\n\nexport class RSToolAgent implements RSToolAgentContract {\n public readonly contractVersion = CONTRACT_VERSION;\n private readonly sessions = new SessionStore();\n private readonly adapter = new SchemaAdapter();\n private readonly evaluation = new ModelAdapter();\n\n public createSession(initial?: Partial<SessionState>): SessionHandle {\n return this.sessions.create(initial, this.contractVersion);\n }\n\n public addOrUpdateConstituenta(\n sessionId: string,\n input: AddOrUpdateConstituentaInput\n ): AddOrUpdateConstituentaResult {\n const envelope = this.sessions.get(sessionId);\n const { result, diagnostics } = this.adapter.analyzeAgainstSession(envelope.state, input.draft);\n const state = this.adapter.mergeStateWithDraft(envelope.state, input.draft, result);\n this.sessions.appendDiagnostics(sessionId, diagnostics);\n return {\n state,\n diagnostics\n };\n }\n\n public analyzeExpression(sessionId: string, input: AnalyzeExpressionInput): AnalysisResult {\n const envelope = this.sessions.get(sessionId);\n const { result, diagnostics } = this.adapter.analyzeAgainstSession(envelope.state, {\n id: -1,\n alias: '_analysis',\n cstType: input.cstType,\n definitionFormal: input.expression\n });\n this.sessions.appendDiagnostics(\n sessionId,\n diagnostics.map(item => ({ ...item, constituentId: undefined }))\n );\n return result;\n }\n\n public getFormState(sessionId: string): SessionState {\n const envelope = this.sessions.get(sessionId);\n return structuredClone(envelope.state);\n }\n\n public listDiagnostics(sessionId: string, filters?: ListDiagnosticsFilters) {\n return this.sessions.listDiagnostics(sessionId, filters);\n }\n\n public commitStep(sessionId: string, message?: string): SessionRevision {\n return this.sessions.addRevision(sessionId, message);\n }\n\n public exportSession(sessionId: string): string {\n const envelope = this.sessions.get(sessionId);\n return JSON.stringify(\n {\n contractVersion: this.contractVersion,\n state: envelope.state,\n diagnostics: envelope.diagnostics\n },\n null,\n 2\n );\n }\n\n public importSession(payload: string): SessionHandle {\n const parsed = JSON.parse(payload) as {\n state: SessionState;\n };\n if (!parsed.state.model) {\n parsed.state.model = { items: [] };\n }\n return this.sessions.create(parsed.state, this.contractVersion);\n }\n\n public async setConstituentaValue(\n sessionId: string,\n input: SetConstituentaValueInput\n ): Promise<SessionModelState> {\n const envelope = this.sessions.get(sessionId);\n return this.evaluation.setConstituentaValue(envelope.state, input);\n }\n\n public async setConstituentaValues(\n sessionId: string,\n input: SetConstituentaValuesInput\n ): Promise<SessionModelState> {\n const envelope = this.sessions.get(sessionId);\n return this.evaluation.setConstituentaValues(envelope.state, input);\n }\n\n public async clearConstituentaValues(\n sessionId: string,\n input: ClearConstituentaValuesInput\n ): Promise<SessionModelState> {\n const envelope = this.sessions.get(sessionId);\n return this.evaluation.clearConstituentaValues(envelope.state, input.items);\n }\n\n public getModelState(sessionId: string): SessionModelState {\n const envelope = this.sessions.get(sessionId);\n return structuredClone(envelope.state.model);\n }\n\n public evaluateExpression(sessionId: string, input: EvaluateExpressionInput): EvaluationResult {\n const envelope = this.sessions.get(sessionId);\n return this.evaluation.evaluateExpression(envelope.state, input.expression, input.cstType);\n }\n\n public evaluateConstituenta(sessionId: string, input: EvaluateConstituentaInput): EvaluationResult {\n const envelope = this.sessions.get(sessionId);\n return this.evaluation.evaluateConstituenta(envelope.state, input.constituentId);\n }\n\n public recalculateModel(sessionId: string): RecalculateModelResult {\n const envelope = this.sessions.get(sessionId);\n return this.evaluation.recalculateModel(envelope.state);\n }\n}\n","import { spawn, type ChildProcessByStdio } from 'node:child_process';\nimport readline from 'node:readline';\nimport { type Readable, type Writable } from 'node:stream';\n\nexport interface WrapperResponse<T = unknown> {\n id: string | number | null;\n ok: boolean;\n result?: T;\n error?: {\n code: string;\n message: string;\n details?: unknown;\n };\n}\n\nexport interface RSToolWrapperClientOptions {\n command?: string;\n args?: string[];\n cwd?: string;\n shell?: boolean;\n}\n\nexport class RSToolWrapperClient {\n private process: ChildProcessByStdio<Writable, Readable, null>;\n private input: readline.Interface;\n private pending = new Map<string, (value: WrapperResponse) => void>();\n private requestCounter = 1;\n\n public constructor(options: RSToolWrapperClientOptions = {}) {\n this.process = spawn(options.command ?? 'npm', options.args ?? ['run', 'wrapper'], {\n cwd: options.cwd ?? process.cwd(),\n shell: options.shell ?? true,\n stdio: ['pipe', 'pipe', 'inherit']\n });\n this.input = readline.createInterface({\n input: this.process.stdout,\n crlfDelay: Infinity\n });\n this.input.on('line', line => this.handleLine(line));\n }\n\n public async waitUntilReady(): Promise<void> {\n for (;;) {\n const line = await this.readOneEvent();\n let response: WrapperResponse<{ ready: boolean }> | null = null;\n try {\n response = JSON.parse(line) as WrapperResponse<{ ready: boolean }>;\n } catch {\n continue;\n }\n if (response.ok && response.result?.ready) {\n return;\n }\n }\n }\n\n public async call<T>(method: string, params: unknown = {}): Promise<T> {\n const id = String(this.requestCounter++);\n const payload = JSON.stringify({ id, method, params });\n const responsePromise = new Promise<WrapperResponse>(resolve => {\n this.pending.set(id, resolve);\n });\n this.process.stdin.write(`${payload}\\n`);\n const response = await responsePromise;\n if (!response.ok) {\n throw new Error(`${response.error?.code ?? 'UNKNOWN'}: ${response.error?.message ?? 'Request failed'}`);\n }\n return response.result as T;\n }\n\n public async close(): Promise<void> {\n this.input.close();\n this.process.stdin.end();\n if (!this.process.killed) {\n this.process.kill();\n }\n }\n\n private async readOneEvent(): Promise<string> {\n return new Promise((resolve, reject) => {\n const onLine = (line: string) => {\n cleanup();\n resolve(line);\n };\n const onExit = () => {\n cleanup();\n reject(new Error('Wrapper exited before ready'));\n };\n const cleanup = () => {\n this.input.off('line', onLine);\n this.process.off('exit', onExit);\n };\n this.input.on('line', onLine);\n this.process.on('exit', onExit);\n });\n }\n\n private handleLine(line: string): void {\n let parsed: WrapperResponse;\n try {\n parsed = JSON.parse(line) as WrapperResponse;\n } catch {\n return;\n }\n if (parsed.id === null || parsed.id === undefined) {\n return;\n }\n const id = String(parsed.id);\n const resolver = this.pending.get(id);\n if (!resolver) {\n return;\n }\n this.pending.delete(id);\n resolver(parsed);\n }\n}\n"],"mappings":"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","names":["CstType","EvalStatus","EvalStatus","CstType","RSLangAnalyzer","CstType","RSLangAnalyzer","CstType"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/models/common.ts"],"sourcesContent":["import { CstType } from '@rsconcept/domain/library/rsform';\nimport { EvalStatus, type BasicBinding } from '@rsconcept/domain/library/rsmodel';\nimport { ValueClass } from '@rsconcept/domain/rslang';\nimport { RSErrorCode } from '@rsconcept/domain/rslang/error';\n\nexport { CstType, EvalStatus, RSErrorCode, ValueClass };\nexport type { BasicBinding };\n\n/** Runtime evaluation value: number, nested array (set/tuple), or boolean 0/1. */\nexport type RSToolValue = number | RSToolValue[];\n\nexport interface RSToolErrorDescription {\n code: number;\n from: number;\n to: number;\n params?: readonly string[];\n}\n"],"mappings":";AAAA,SAAS,eAAe;AACxB,SAAS,kBAAqC;AAC9C,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/models/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/models/common.ts","../../src/mappers/model-adapter.ts","../../src/mappers/types.ts","../../src/mappers/schema-adapter.ts","../../src/session/session-store.ts","../../src/models/tool-contract.ts","../../src/models/rstool-agent.ts"],"sourcesContent":["import { CstType } from '@rsconcept/domain/library/rsform';\nimport { EvalStatus, type BasicBinding } from '@rsconcept/domain/library/rsmodel';\nimport { ValueClass } from '@rsconcept/domain/rslang';\nimport { RSErrorCode } from '@rsconcept/domain/rslang/error';\n\nexport { CstType, EvalStatus, RSErrorCode, ValueClass };\nexport type { BasicBinding };\n\n/** Runtime evaluation value: number, nested array (set/tuple), or boolean 0/1. */\nexport type RSToolValue = number | RSToolValue[];\n\nexport interface RSToolErrorDescription {\n code: number;\n from: number;\n to: number;\n params?: readonly string[];\n}\n","import { Graph } from '@rsconcept/domain/graph/graph';\nimport { extractGlobals } from '@rsconcept/domain/rslang/api';\nimport { type ExpressionType, RSLangAnalyzer, type Value, type ValueClass } from '@rsconcept/domain/rslang';\nimport { isBaseSet } from '@rsconcept/domain/library/rsform-api';\nimport { type Constituenta, CstType, type RSForm } from '@rsconcept/domain/library/rsform';\nimport { RSEngine, type RSEngineServices } from '@rsconcept/domain/library/rsengine';\nimport { type BasicBinding, EvalStatus, type RSModel } from '@rsconcept/domain/library/rsmodel';\nimport {\n isInferrable,\n isInterpretable,\n toBasicBinding,\n validateBasicBindingData,\n validateValueData\n} from '@rsconcept/domain/library/rsmodel-api';\n\nimport {\n type ConstituentaState,\n type EvaluationResult,\n type RecalculateModelResult,\n type SessionModelState,\n type SessionState,\n type SetConstituentaValueInput\n} from '../models';\nimport { toPublicError } from './types';\n\nconst SESSION_MODEL_ID = 0;\n\nexport class ModelAdapter {\n public async setConstituentaValue(\n session: SessionState,\n input: SetConstituentaValueInput\n ): Promise<SessionModelState> {\n this.validateSetInput(session, input);\n const engine = this.createEngine(session);\n const cst = session.items.find(item => item.id === input.target)!;\n const frontendType = cst.cstType;\n\n if (isBaseSet(frontendType)) {\n const binding = toBasicBinding(input.value as Record<string | number, string>);\n await engine.setBasicValue(input.target, binding);\n } else {\n await engine.setStructureValue(input.target, input.value as Value);\n }\n session.updatedAt = new Date().toISOString();\n return structuredClone(session.model);\n }\n\n public async setConstituentaValues(\n session: SessionState,\n input: { items: SetConstituentaValueInput[] }\n ): Promise<SessionModelState> {\n for (const item of input.items) {\n await this.setConstituentaValue(session, item);\n }\n return structuredClone(session.model);\n }\n\n public async clearConstituentaValues(session: SessionState, ids: number[]): Promise<SessionModelState> {\n const engine = this.createEngine(session);\n for (const id of ids) {\n await engine.resetValue(id);\n session.updatedAt = new Date().toISOString();\n }\n return structuredClone(session.model);\n }\n\n public evaluateExpression(session: SessionState, expression: string, cstType: CstType): EvaluationResult {\n const engine = this.createEngine(session);\n const result = engine.evaluateExpression(expression, cstType);\n const status =\n result.value === null\n ? result.errors.length > 0\n ? EvalStatus.EVAL_FAIL\n : EvalStatus.EMPTY\n : EvalStatus.HAS_DATA;\n return toPublicEvaluationResult(result.value, result.errors, result.iterations, result.cacheHits, status);\n }\n\n public evaluateConstituenta(session: SessionState, constituentId: number): EvaluationResult {\n const cst = session.items.find(item => item.id === constituentId);\n if (!cst) {\n throw new Error(`Unknown constituent: ${constituentId}`);\n }\n const engine = this.createEngine(session);\n const result = engine.calculateCst(constituentId);\n const status = engine.getCstStatus(constituentId);\n return toPublicEvaluationResult(result.value, result.errors, result.iterations, result.cacheHits, status);\n }\n\n public recalculateModel(session: SessionState): RecalculateModelResult {\n const engine = this.createEngine(session);\n engine.recalculateAll();\n const items = session.items.map(item => ({\n id: item.id,\n alias: item.alias,\n value: engine.getCstValue(item.id) as number | number[] | null,\n status: engine.getCstStatus(item.id)\n }));\n return { items };\n }\n\n public createEngine(session: SessionState): RSEngine {\n const schema = buildRSFormFromSession(session);\n const model = buildRSModelFromSession(session);\n const engine = new RSEngine(SESSION_MODEL_ID, createInMemoryServices(session));\n engine.loadData(schema, model);\n return engine;\n }\n\n private validateSetInput(session: SessionState, input: SetConstituentaValueInput): void {\n const cst = session.items.find(item => item.id === input.target);\n if (!cst) {\n throw new Error(`Unknown constituent: ${input.target}`);\n }\n const frontendType = cst.cstType;\n if (!isInterpretable(frontendType)) {\n throw new Error(`Constituent ${cst.alias} is not interpretable`);\n }\n if (isInferrable(frontendType)) {\n throw new Error(`Constituent ${cst.alias} is inferrable and cannot be set directly`);\n }\n if (isBaseSet(frontendType)) {\n if (!validateBasicBindingData(input.value)) {\n throw new Error(`Invalid basic binding for ${cst.alias}`);\n }\n return;\n }\n if (!validateValueData(input.value)) {\n throw new Error(`Invalid structured value for ${cst.alias}`);\n }\n }\n}\n\nfunction createInMemoryServices(session: SessionState): RSEngineServices {\n return {\n setCstValue: async ({ data }) => {\n for (const item of data) {\n const entry = {\n id: item.target,\n type: item.type,\n value: item.data as Value | BasicBinding\n };\n const index = session.model.items.findIndex(existing => existing.id === item.target);\n if (index === -1) {\n session.model.items.push(entry);\n } else {\n session.model.items[index] = entry;\n }\n }\n },\n clearValues: async ({ data }) => {\n const ids = new Set(data.items);\n session.model.items = session.model.items.filter(item => !ids.has(item.id));\n }\n };\n}\n\nfunction buildRSFormFromSession(session: SessionState): RSForm {\n const graph = new Graph<number>();\n const cstByAlias = new Map<string, Constituenta>();\n const cstByID = new Map<number, Constituenta>();\n const analyzer = new RSLangAnalyzer();\n\n const items = session.items.map(item => {\n const cst = toFrontendConstituenta(item);\n cstByAlias.set(cst.alias, cst);\n cstByID.set(cst.id, cst);\n graph.addNode(cst.id);\n if (item.cstType === CstType.BASE) {\n analyzer.addBase(cst.alias);\n }\n if (cst.effectiveType) {\n analyzer.setGlobal(cst.alias, cst.effectiveType, cst.analysis.valueClass as ValueClass | null);\n }\n return cst;\n });\n\n for (const cst of items) {\n for (const alias of extractGlobals(cst.definition_formal)) {\n const source = cstByAlias.get(alias);\n if (source) {\n graph.addEdge(source.id, cst.id);\n }\n }\n }\n\n return {\n id: 0,\n items,\n cstByAlias,\n cstByID,\n graph,\n analyzer,\n inheritance: [],\n attribution: [],\n attribution_graph: graph.clone(),\n oss: [],\n models: [],\n editors: [],\n versions: [],\n is_produced: false,\n is_attributive: false,\n version: 'latest'\n } as unknown as RSForm;\n}\n\nfunction buildRSModelFromSession(session: SessionState): RSModel {\n return {\n id: SESSION_MODEL_ID,\n schema: 0,\n editors: [],\n items: session.model.items.map(item => ({\n id: item.id,\n type: item.type,\n value: item.value as Value | BasicBinding\n }))\n } as unknown as RSModel;\n}\n\nfunction toFrontendConstituenta(item: ConstituentaState): Constituenta {\n const effectiveType = (item.analysis.type ?? null) as ExpressionType | null;\n return {\n id: item.id,\n alias: item.alias,\n cst_type: item.cstType,\n definition_formal: item.definitionFormal,\n definition_raw: item.definitionFormal,\n definition_resolved: item.definitionFormal,\n term_raw: item.term,\n term_resolved: item.term,\n term_forms: [],\n convention: item.convention,\n typification_manual: '',\n value_is_property: false,\n crucial: false,\n attributes: [],\n homonyms: [],\n formalDuplicates: [],\n analysis: {\n success: item.analysis.success,\n type: effectiveType,\n valueClass: item.analysis.valueClass\n },\n effectiveType,\n is_type_mismatch: false,\n schema: 0,\n cst_class: 'derived',\n status: item.analysis.success ? 'verified' : 'incorrect',\n is_template: false,\n is_simple_expression: true,\n parent_schema_index: 0,\n parent_schema: null,\n is_inherited: false,\n has_inherited_children: false,\n spawn: [],\n spawn_alias: []\n } as unknown as Constituenta;\n}\n\nfunction toPublicEvaluationResult(\n value: Value | null,\n errors: { code: number; from: number; to: number; params?: readonly string[] }[],\n iterations: number,\n cacheHits: number,\n status: EvalStatus\n): EvaluationResult {\n const diagnostics = errors.map(toPublicError);\n return {\n success: diagnostics.length === 0 && value !== null,\n value: value as EvaluationResult['value'],\n status,\n iterations,\n cacheHits,\n diagnostics\n };\n}\n","import { type ValueClass } from '@rsconcept/domain/rslang';\n\nimport { type AnalysisResult, type RSToolErrorDescription } from '../models';\n\nexport interface DomainErrorLike {\n code: number;\n from: number;\n to: number;\n params?: readonly string[];\n}\n\nexport interface DomainAnalysisLike {\n success: boolean;\n type: Record<string, unknown> | null;\n valueClass: ValueClass | null;\n errors: DomainErrorLike[];\n}\n\nexport function toPublicError(error: DomainErrorLike): RSToolErrorDescription {\n return {\n code: error.code,\n from: error.from,\n to: error.to,\n params: error.params\n };\n}\n\nexport function toPublicAnalysis(analysis: DomainAnalysisLike): AnalysisResult {\n return {\n success: analysis.success,\n type: analysis.type,\n valueClass: analysis.valueClass,\n diagnostics: analysis.errors.map(toPublicError)\n };\n}\n","import { RSLangAnalyzer, type AnalysisFull, type ValueClass } from '@rsconcept/domain/rslang';\nimport { getAnalysisFor } from '@rsconcept/domain/library/rsform-api';\nimport { CstType, type RSForm } from '@rsconcept/domain/library/rsform';\n\nimport {\n type AnalysisResult,\n type ConstituentaDraft,\n type ConstituentaState,\n type DiagnosticRecord,\n type SessionState\n} from '../models';\nimport { toPublicAnalysis, toPublicError } from './types';\n\nexport class SchemaAdapter {\n public analyzeAgainstSession(\n session: SessionState,\n draft: ConstituentaDraft\n ): { result: AnalysisResult; diagnostics: DiagnosticRecord[] } {\n const analyzer = this.buildAnalyzer(session);\n const schema = this.toPseudoRSFormState(session, analyzer);\n const analysis = getAnalysisFor(draft.definitionFormal, draft.cstType, schema as unknown as RSForm, draft.alias);\n const result = toPublicAnalysis({\n success: analysis.success,\n type: analysis.type as Record<string, unknown> | null,\n valueClass: analysis.valueClass,\n errors: analysis.errors\n });\n return {\n result,\n diagnostics: analysis.errors.map(error => ({\n sessionId: session.sessionId,\n constituentId: draft.id,\n expression: draft.definitionFormal,\n error: toPublicError(error)\n }))\n };\n }\n\n public mergeStateWithDraft(\n session: SessionState,\n draft: ConstituentaDraft,\n analysis: AnalysisResult\n ): ConstituentaState {\n const state: ConstituentaState = {\n ...draft,\n term: draft.term ?? '',\n definitionText: draft.definitionText ?? '',\n convention: draft.convention ?? '',\n analysis\n };\n const index = session.items.findIndex(item => item.id === draft.id);\n if (index === -1) {\n session.items.push(state);\n } else {\n session.items[index] = state;\n }\n session.updatedAt = new Date().toISOString();\n return state;\n }\n\n public toPseudoRSFormState(\n session: SessionState,\n analyzer: RSLangAnalyzer\n ): Pick<RSForm, 'items' | 'cstByAlias' | 'analyzer'> {\n const cstByAlias = new Map(session.items.map(item => [item.alias, item]));\n return {\n items: session.items as unknown as RSForm['items'],\n cstByAlias: cstByAlias as unknown as RSForm['cstByAlias'],\n analyzer\n };\n }\n\n private buildAnalyzer(session: SessionState): RSLangAnalyzer {\n const analyzer = new RSLangAnalyzer();\n for (const item of session.items) {\n if (item.cstType === CstType.BASE) {\n analyzer.addBase(item.alias);\n }\n analyzer.setGlobal(\n item.alias,\n item.analysis.type as AnalysisFull['type'],\n item.analysis.valueClass as ValueClass | null\n );\n }\n return analyzer;\n }\n}\n","import { randomUUID } from 'node:crypto';\n\nimport {\n type DiagnosticRecord,\n type ListDiagnosticsFilters,\n type SessionHandle,\n type SessionRevision,\n type SessionState\n} from '../models';\n\ninterface SessionEnvelope {\n state: SessionState;\n diagnostics: DiagnosticRecord[];\n}\n\nexport class SessionStore {\n private sessions = new Map<string, SessionEnvelope>();\n\n public create(initial?: Partial<SessionState>, contractVersion?: string): SessionHandle {\n const now = new Date().toISOString();\n const sessionId = initial?.sessionId ?? randomUUID();\n const state: SessionState = {\n sessionId,\n createdAt: initial?.createdAt ?? now,\n updatedAt: now,\n revisions: initial?.revisions ?? [],\n items: initial?.items ?? [],\n model: initial?.model ?? { items: [] }\n };\n this.sessions.set(sessionId, {\n state,\n diagnostics: []\n });\n return {\n sessionId,\n contractVersion: contractVersion ?? '1.0.0'\n };\n }\n\n public get(sessionId: string): SessionEnvelope {\n const found = this.sessions.get(sessionId);\n if (!found) {\n throw new Error(`Unknown session: ${sessionId}`);\n }\n return found;\n }\n\n public replaceState(sessionId: string, nextState: SessionState): void {\n const found = this.get(sessionId);\n found.state = {\n ...nextState,\n updatedAt: new Date().toISOString()\n };\n }\n\n public addRevision(sessionId: string, message?: string): SessionRevision {\n const found = this.get(sessionId);\n const revision: SessionRevision = {\n revisionId: randomUUID(),\n at: new Date().toISOString(),\n message\n };\n found.state.revisions.push(revision);\n found.state.updatedAt = revision.at;\n return revision;\n }\n\n public appendDiagnostics(sessionId: string, records: DiagnosticRecord[]): void {\n const found = this.get(sessionId);\n found.diagnostics.push(...records);\n found.state.updatedAt = new Date().toISOString();\n }\n\n public listDiagnostics(sessionId: string, filters?: ListDiagnosticsFilters): DiagnosticRecord[] {\n const found = this.get(sessionId);\n if (!filters?.constituentId) {\n return [...found.diagnostics];\n }\n return found.diagnostics.filter(record => record.constituentId === filters.constituentId);\n }\n}\n","import { type AnalysisResult, type AnalyzeExpressionInput } from './analysis';\nimport {\n type AddOrUpdateConstituentaInput,\n type AddOrUpdateConstituentaResult\n} from './constituenta';\nimport {\n type DiagnosticRecord,\n type ListDiagnosticsFilters\n} from './diagnostic';\nimport {\n type EvaluateConstituentaInput,\n type EvaluateExpressionInput,\n type EvaluationResult\n} from './evaluation';\nimport {\n type ClearConstituentaValuesInput,\n type RecalculateModelResult,\n type SessionModelState,\n type SetConstituentaValueInput,\n type SetConstituentaValuesInput\n} from './model-value';\nimport {\n type SessionHandle,\n type SessionRevision,\n type SessionState\n} from './session';\n\nexport const CONTRACT_VERSION = '1.2.0';\n\nexport interface RSToolAgentContract {\n readonly contractVersion: string;\n createSession(initial?: Partial<SessionState>): SessionHandle;\n addOrUpdateConstituenta(sessionId: string, input: AddOrUpdateConstituentaInput): AddOrUpdateConstituentaResult;\n analyzeExpression(sessionId: string, input: AnalyzeExpressionInput): AnalysisResult;\n getFormState(sessionId: string): SessionState;\n listDiagnostics(sessionId: string, filters?: ListDiagnosticsFilters): DiagnosticRecord[];\n commitStep(sessionId: string, message?: string): SessionRevision;\n exportSession(sessionId: string): string;\n importSession(payload: string): SessionHandle;\n setConstituentaValue(sessionId: string, input: SetConstituentaValueInput): Promise<SessionModelState>;\n setConstituentaValues(sessionId: string, input: SetConstituentaValuesInput): Promise<SessionModelState>;\n clearConstituentaValues(sessionId: string, input: ClearConstituentaValuesInput): Promise<SessionModelState>;\n getModelState(sessionId: string): SessionModelState;\n evaluateExpression(sessionId: string, input: EvaluateExpressionInput): EvaluationResult;\n evaluateConstituenta(sessionId: string, input: EvaluateConstituentaInput): EvaluationResult;\n recalculateModel(sessionId: string): RecalculateModelResult;\n}\n","import { ModelAdapter } from '../mappers/model-adapter';\nimport { SchemaAdapter } from '../mappers/schema-adapter';\nimport { SessionStore } from '../session/session-store';\nimport { type AnalysisResult, type AnalyzeExpressionInput } from './analysis';\nimport {\n type AddOrUpdateConstituentaInput,\n type AddOrUpdateConstituentaResult\n} from './constituenta';\nimport { type ListDiagnosticsFilters } from './diagnostic';\nimport {\n type EvaluateConstituentaInput,\n type EvaluateExpressionInput,\n type EvaluationResult\n} from './evaluation';\nimport {\n type ClearConstituentaValuesInput,\n type RecalculateModelResult,\n type SessionModelState,\n type SetConstituentaValueInput,\n type SetConstituentaValuesInput\n} from './model-value';\nimport { type SessionHandle, type SessionRevision, type SessionState } from './session';\nimport { CONTRACT_VERSION, type RSToolAgentContract } from './tool-contract';\n\nexport class RSToolAgent implements RSToolAgentContract {\n public readonly contractVersion = CONTRACT_VERSION;\n private readonly sessions = new SessionStore();\n private readonly adapter = new SchemaAdapter();\n private readonly evaluation = new ModelAdapter();\n\n public createSession(initial?: Partial<SessionState>): SessionHandle {\n return this.sessions.create(initial, this.contractVersion);\n }\n\n public addOrUpdateConstituenta(\n sessionId: string,\n input: AddOrUpdateConstituentaInput\n ): AddOrUpdateConstituentaResult {\n const envelope = this.sessions.get(sessionId);\n const { result, diagnostics } = this.adapter.analyzeAgainstSession(envelope.state, input.draft);\n const state = this.adapter.mergeStateWithDraft(envelope.state, input.draft, result);\n this.sessions.appendDiagnostics(sessionId, diagnostics);\n return {\n state,\n diagnostics\n };\n }\n\n public analyzeExpression(sessionId: string, input: AnalyzeExpressionInput): AnalysisResult {\n const envelope = this.sessions.get(sessionId);\n const { result, diagnostics } = this.adapter.analyzeAgainstSession(envelope.state, {\n id: -1,\n alias: '_analysis',\n cstType: input.cstType,\n definitionFormal: input.expression\n });\n this.sessions.appendDiagnostics(\n sessionId,\n diagnostics.map(item => ({ ...item, constituentId: undefined }))\n );\n return result;\n }\n\n public getFormState(sessionId: string): SessionState {\n const envelope = this.sessions.get(sessionId);\n return structuredClone(envelope.state);\n }\n\n public listDiagnostics(sessionId: string, filters?: ListDiagnosticsFilters) {\n return this.sessions.listDiagnostics(sessionId, filters);\n }\n\n public commitStep(sessionId: string, message?: string): SessionRevision {\n return this.sessions.addRevision(sessionId, message);\n }\n\n public exportSession(sessionId: string): string {\n const envelope = this.sessions.get(sessionId);\n return JSON.stringify(\n {\n contractVersion: this.contractVersion,\n state: envelope.state,\n diagnostics: envelope.diagnostics\n },\n null,\n 2\n );\n }\n\n public importSession(payload: string): SessionHandle {\n const parsed = JSON.parse(payload) as {\n state: SessionState;\n };\n if (!parsed.state.model) {\n parsed.state.model = { items: [] };\n }\n return this.sessions.create(parsed.state, this.contractVersion);\n }\n\n public async setConstituentaValue(\n sessionId: string,\n input: SetConstituentaValueInput\n ): Promise<SessionModelState> {\n const envelope = this.sessions.get(sessionId);\n return this.evaluation.setConstituentaValue(envelope.state, input);\n }\n\n public async setConstituentaValues(\n sessionId: string,\n input: SetConstituentaValuesInput\n ): Promise<SessionModelState> {\n const envelope = this.sessions.get(sessionId);\n return this.evaluation.setConstituentaValues(envelope.state, input);\n }\n\n public async clearConstituentaValues(\n sessionId: string,\n input: ClearConstituentaValuesInput\n ): Promise<SessionModelState> {\n const envelope = this.sessions.get(sessionId);\n return this.evaluation.clearConstituentaValues(envelope.state, input.items);\n }\n\n public getModelState(sessionId: string): SessionModelState {\n const envelope = this.sessions.get(sessionId);\n return structuredClone(envelope.state.model);\n }\n\n public evaluateExpression(sessionId: string, input: EvaluateExpressionInput): EvaluationResult {\n const envelope = this.sessions.get(sessionId);\n return this.evaluation.evaluateExpression(envelope.state, input.expression, input.cstType);\n }\n\n public evaluateConstituenta(sessionId: string, input: EvaluateConstituentaInput): EvaluationResult {\n const envelope = this.sessions.get(sessionId);\n return this.evaluation.evaluateConstituenta(envelope.state, input.constituentId);\n }\n\n public recalculateModel(sessionId: string): RecalculateModelResult {\n const envelope = this.sessions.get(sessionId);\n return this.evaluation.recalculateModel(envelope.state);\n }\n}\n"],"mappings":"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","names":["CstType","EvalStatus","EvalStatus","CstType","RSLangAnalyzer","CstType","RSLangAnalyzer","CstType"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|