mcard-js 2.1.0 → 2.1.2
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 +124 -6
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/model/CardCollection.d.ts +10 -0
- package/dist/model/CardCollection.d.ts.map +1 -1
- package/dist/model/CardCollection.js +53 -0
- package/dist/model/CardCollection.js.map +1 -1
- package/dist/model/ContentTypeInterpreter.d.ts +7 -0
- package/dist/model/ContentTypeInterpreter.d.ts.map +1 -1
- package/dist/model/ContentTypeInterpreter.js +54 -0
- package/dist/model/ContentTypeInterpreter.js.map +1 -1
- package/dist/ptr/lambda/AlphaConversion.d.ts +42 -0
- package/dist/ptr/lambda/AlphaConversion.d.ts.map +1 -0
- package/dist/ptr/lambda/AlphaConversion.js +244 -0
- package/dist/ptr/lambda/AlphaConversion.js.map +1 -0
- package/dist/ptr/lambda/BetaReduction.d.ts +73 -0
- package/dist/ptr/lambda/BetaReduction.d.ts.map +1 -0
- package/dist/ptr/lambda/BetaReduction.js +322 -0
- package/dist/ptr/lambda/BetaReduction.js.map +1 -0
- package/dist/ptr/lambda/EtaConversion.d.ts +65 -0
- package/dist/ptr/lambda/EtaConversion.d.ts.map +1 -0
- package/dist/ptr/lambda/EtaConversion.js +228 -0
- package/dist/ptr/lambda/EtaConversion.js.map +1 -0
- package/dist/ptr/lambda/FreeVariables.d.ts +44 -0
- package/dist/ptr/lambda/FreeVariables.d.ts.map +1 -0
- package/dist/ptr/lambda/FreeVariables.js +207 -0
- package/dist/ptr/lambda/FreeVariables.js.map +1 -0
- package/dist/ptr/lambda/LambdaRuntime.d.ts +80 -0
- package/dist/ptr/lambda/LambdaRuntime.d.ts.map +1 -0
- package/dist/ptr/lambda/LambdaRuntime.js +417 -0
- package/dist/ptr/lambda/LambdaRuntime.js.map +1 -0
- package/dist/ptr/lambda/LambdaTerm.d.ts +95 -0
- package/dist/ptr/lambda/LambdaTerm.d.ts.map +1 -0
- package/dist/ptr/lambda/LambdaTerm.js +159 -0
- package/dist/ptr/lambda/LambdaTerm.js.map +1 -0
- package/dist/ptr/lambda/index.d.ts +24 -0
- package/dist/ptr/lambda/index.d.ts.map +1 -0
- package/dist/ptr/lambda/index.js +34 -0
- package/dist/ptr/lambda/index.js.map +1 -0
- package/dist/ptr/llm/LLMRuntime.d.ts +15 -0
- package/dist/ptr/llm/LLMRuntime.d.ts.map +1 -1
- package/dist/ptr/llm/LLMRuntime.js +62 -0
- package/dist/ptr/llm/LLMRuntime.js.map +1 -1
- package/dist/ptr/node/CLMRunner.d.ts +30 -0
- package/dist/ptr/node/CLMRunner.d.ts.map +1 -1
- package/dist/ptr/node/CLMRunner.js +167 -0
- package/dist/ptr/node/CLMRunner.js.map +1 -1
- package/dist/ptr/node/Runtimes.d.ts +8 -1
- package/dist/ptr/node/Runtimes.d.ts.map +1 -1
- package/dist/ptr/node/Runtimes.js +8 -1
- package/dist/ptr/node/Runtimes.js.map +1 -1
- package/dist/rag/GraphRAGEngine.d.ts +26 -0
- package/dist/rag/GraphRAGEngine.d.ts.map +1 -0
- package/dist/rag/GraphRAGEngine.js +166 -0
- package/dist/rag/GraphRAGEngine.js.map +1 -0
- package/dist/rag/index.d.ts +1 -0
- package/dist/rag/index.d.ts.map +1 -1
- package/dist/rag/index.js +2 -0
- package/dist/rag/index.js.map +1 -1
- package/dist/storage/IndexedDBEngine.d.ts +3 -0
- package/dist/storage/IndexedDBEngine.d.ts.map +1 -1
- package/dist/storage/IndexedDBEngine.js +46 -1
- package/dist/storage/IndexedDBEngine.js.map +1 -1
- package/dist/storage/SqliteNodeEngine.d.ts +3 -0
- package/dist/storage/SqliteNodeEngine.d.ts.map +1 -1
- package/dist/storage/SqliteNodeEngine.js +27 -0
- package/dist/storage/SqliteNodeEngine.js.map +1 -1
- package/dist/storage/SqliteWasmEngine.d.ts +3 -0
- package/dist/storage/SqliteWasmEngine.d.ts.map +1 -1
- package/dist/storage/SqliteWasmEngine.js +46 -0
- package/dist/storage/SqliteWasmEngine.js.map +1 -1
- package/dist/storage/StorageAdapter.d.ts +3 -0
- package/dist/storage/StorageAdapter.d.ts.map +1 -1
- package/dist/storage/schema.d.ts.map +1 -1
- package/dist/storage/schema.js +5 -1
- package/dist/storage/schema.js.map +1 -1
- package/dist/util/FileIO.d.ts +44 -0
- package/dist/util/FileIO.d.ts.map +1 -0
- package/dist/util/FileIO.js +203 -0
- package/dist/util/FileIO.js.map +1 -0
- package/dist/util/Loader.d.ts +24 -0
- package/dist/util/Loader.d.ts.map +1 -0
- package/dist/util/Loader.js +122 -0
- package/dist/util/Loader.js.map +1 -0
- package/package.json +6 -2
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lambda Term - Algebraic Data Type for Lambda Calculus
|
|
3
|
+
*
|
|
4
|
+
* Represents Lambda Calculus terms as content-addressable MCards.
|
|
5
|
+
* Each term variant is stored as JSON in MCard content, with sub-terms
|
|
6
|
+
* referenced by their SHA-256 hashes for structural sharing.
|
|
7
|
+
*
|
|
8
|
+
* The three term constructors mirror the BNF grammar:
|
|
9
|
+
* M, N ::= x | λx.M | M N
|
|
10
|
+
*
|
|
11
|
+
* @module mcard-js/ptr/lambda/LambdaTerm
|
|
12
|
+
*/
|
|
13
|
+
import { MCard } from '../../model/MCard';
|
|
14
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
15
|
+
// Constructors (Smart Constructors)
|
|
16
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
17
|
+
/**
|
|
18
|
+
* Create a variable term
|
|
19
|
+
*/
|
|
20
|
+
export function mkVar(name) {
|
|
21
|
+
return { tag: 'Var', name };
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create an abstraction term
|
|
25
|
+
*/
|
|
26
|
+
export function mkAbs(param, bodyHash) {
|
|
27
|
+
return { tag: 'Abs', param, body: bodyHash };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Create an application term
|
|
31
|
+
*/
|
|
32
|
+
export function mkApp(funcHash, argHash) {
|
|
33
|
+
return { tag: 'App', func: funcHash, arg: argHash };
|
|
34
|
+
}
|
|
35
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
36
|
+
// MCard Serialization
|
|
37
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
38
|
+
/**
|
|
39
|
+
* Serialize a Lambda term to MCard content (JSON string)
|
|
40
|
+
*/
|
|
41
|
+
export function serializeTerm(term) {
|
|
42
|
+
return JSON.stringify(term);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Deserialize MCard content to Lambda term
|
|
46
|
+
*/
|
|
47
|
+
export function deserializeTerm(content) {
|
|
48
|
+
const parsed = JSON.parse(content);
|
|
49
|
+
// Validate structure
|
|
50
|
+
if (!parsed.tag) {
|
|
51
|
+
throw new Error('Invalid Lambda term: missing tag');
|
|
52
|
+
}
|
|
53
|
+
switch (parsed.tag) {
|
|
54
|
+
case 'Var':
|
|
55
|
+
if (typeof parsed.name !== 'string') {
|
|
56
|
+
throw new Error('Invalid Var term: name must be string');
|
|
57
|
+
}
|
|
58
|
+
return mkVar(parsed.name);
|
|
59
|
+
case 'Abs':
|
|
60
|
+
if (typeof parsed.param !== 'string' || typeof parsed.body !== 'string') {
|
|
61
|
+
throw new Error('Invalid Abs term: param and body must be strings');
|
|
62
|
+
}
|
|
63
|
+
return mkAbs(parsed.param, parsed.body);
|
|
64
|
+
case 'App':
|
|
65
|
+
if (typeof parsed.func !== 'string' || typeof parsed.arg !== 'string') {
|
|
66
|
+
throw new Error('Invalid App term: func and arg must be strings');
|
|
67
|
+
}
|
|
68
|
+
return mkApp(parsed.func, parsed.arg);
|
|
69
|
+
default:
|
|
70
|
+
throw new Error(`Unknown Lambda term tag: ${parsed.tag}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create an MCard from a Lambda term
|
|
75
|
+
*/
|
|
76
|
+
export async function termToMCard(term) {
|
|
77
|
+
return MCard.create(serializeTerm(term));
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Extract Lambda term from MCard
|
|
81
|
+
*/
|
|
82
|
+
export function mcardToTerm(mcard) {
|
|
83
|
+
return deserializeTerm(mcard.getContentAsText());
|
|
84
|
+
}
|
|
85
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
86
|
+
// Collection Operations
|
|
87
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
88
|
+
/**
|
|
89
|
+
* Store a Lambda term in the collection and return its hash
|
|
90
|
+
*/
|
|
91
|
+
export async function storeTerm(collection, term) {
|
|
92
|
+
const mcard = await termToMCard(term);
|
|
93
|
+
await collection.add(mcard);
|
|
94
|
+
return mcard.hash;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Retrieve a Lambda term from the collection by hash
|
|
98
|
+
*/
|
|
99
|
+
export async function loadTerm(collection, hash) {
|
|
100
|
+
const mcard = await collection.get(hash);
|
|
101
|
+
if (!mcard)
|
|
102
|
+
return null;
|
|
103
|
+
return mcardToTerm(mcard);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Check if a term exists in the collection
|
|
107
|
+
*/
|
|
108
|
+
export async function termExists(collection, hash) {
|
|
109
|
+
const mcard = await collection.get(hash);
|
|
110
|
+
return mcard !== null;
|
|
111
|
+
}
|
|
112
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
113
|
+
// Pretty Printing
|
|
114
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
115
|
+
/**
|
|
116
|
+
* Pretty-print a Lambda term (shallow - shows hashes for subterms)
|
|
117
|
+
*/
|
|
118
|
+
export function prettyPrintShallow(term) {
|
|
119
|
+
switch (term.tag) {
|
|
120
|
+
case 'Var':
|
|
121
|
+
return term.name;
|
|
122
|
+
case 'Abs':
|
|
123
|
+
return `λ${term.param}.〈${term.body.substring(0, 8)}…〉`;
|
|
124
|
+
case 'App':
|
|
125
|
+
return `(〈${term.func.substring(0, 8)}…〉 〈${term.arg.substring(0, 8)}…〉)`;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Pretty-print a Lambda term (deep - resolves all subterms from collection)
|
|
130
|
+
*/
|
|
131
|
+
export async function prettyPrintDeep(collection, hash) {
|
|
132
|
+
const term = await loadTerm(collection, hash);
|
|
133
|
+
if (!term)
|
|
134
|
+
return `〈missing:${hash.substring(0, 8)}…〉`;
|
|
135
|
+
switch (term.tag) {
|
|
136
|
+
case 'Var':
|
|
137
|
+
return term.name;
|
|
138
|
+
case 'Abs':
|
|
139
|
+
const body = await prettyPrintDeep(collection, term.body);
|
|
140
|
+
return `(λ${term.param}.${body})`;
|
|
141
|
+
case 'App':
|
|
142
|
+
const func = await prettyPrintDeep(collection, term.func);
|
|
143
|
+
const arg = await prettyPrintDeep(collection, term.arg);
|
|
144
|
+
return `(${func} ${arg})`;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
148
|
+
// Type Guards
|
|
149
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
150
|
+
export function isVar(term) {
|
|
151
|
+
return term.tag === 'Var';
|
|
152
|
+
}
|
|
153
|
+
export function isAbs(term) {
|
|
154
|
+
return term.tag === 'Abs';
|
|
155
|
+
}
|
|
156
|
+
export function isApp(term) {
|
|
157
|
+
return term.tag === 'App';
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=LambdaTerm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LambdaTerm.js","sourceRoot":"","sources":["../../../src/ptr/lambda/LambdaTerm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lambda Calculus Module for PTR
|
|
3
|
+
*
|
|
4
|
+
* Implements α-β-η conversions on MCard-stored Lambda terms.
|
|
5
|
+
*
|
|
6
|
+
* This module provides:
|
|
7
|
+
* - LambdaTerm ADT: Var, Abs, App stored as MCard content
|
|
8
|
+
* - Alpha Conversion: Variable renaming
|
|
9
|
+
* - Beta Reduction: Function application
|
|
10
|
+
* - Eta Conversion: Extensional equivalence
|
|
11
|
+
* - LambdaRuntime: PTR-compatible runtime for CLM execution
|
|
12
|
+
*
|
|
13
|
+
* @module mcard-js/ptr/lambda
|
|
14
|
+
*/
|
|
15
|
+
export type { LambdaTerm, VarTerm, AbsTerm, AppTerm, } from './LambdaTerm';
|
|
16
|
+
export { mkVar, mkAbs, mkApp, serializeTerm, deserializeTerm, termToMCard, mcardToTerm, storeTerm, loadTerm, termExists, prettyPrintShallow, prettyPrintDeep, isVar, isAbs, isApp } from './LambdaTerm';
|
|
17
|
+
export { freeVariables, boundVariables, isFreeIn, isClosed, generateFresh, generateFreshFor, difference, intersection } from './FreeVariables';
|
|
18
|
+
export { alphaRename, alphaEquivalent, alphaNormalize } from './AlphaConversion';
|
|
19
|
+
export type { ReductionStrategy, NormalizationResult } from './BetaReduction';
|
|
20
|
+
export { isRedex, findLeftmostRedex, findInnermostRedex, betaReduce, reduceStep, normalize, isNormalForm, hasNormalForm } from './BetaReduction';
|
|
21
|
+
export { isEtaRedex, etaReduce, etaReduceE, etaExpand, etaEquivalent, etaNormalize, findEtaRedexes } from './EtaConversion';
|
|
22
|
+
export type { LambdaOperation, LambdaConfig, LambdaRuntimeResult } from './LambdaRuntime';
|
|
23
|
+
export { LambdaRuntime, parseLambdaExpression } from './LambdaRuntime';
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ptr/lambda/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,YAAY,EAER,UAAU,EACV,OAAO,EACP,OAAO,EACP,OAAO,GACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAEH,KAAK,EACL,KAAK,EACL,KAAK,EAGL,aAAa,EACb,eAAe,EACf,WAAW,EACX,WAAW,EAGX,SAAS,EACT,QAAQ,EACR,UAAU,EAGV,kBAAkB,EAClB,eAAe,EAGf,KAAK,EACL,KAAK,EACL,KAAK,EACR,MAAM,cAAc,CAAC;AAGtB,OAAO,EACH,aAAa,EACb,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,YAAY,EACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACH,WAAW,EACX,eAAe,EACf,cAAc,EACjB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACR,iBAAiB,EACjB,mBAAmB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,OAAO,EACP,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACH,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,cAAc,EACjB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACR,eAAe,EACf,YAAY,EACZ,mBAAmB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,aAAa,EACb,qBAAqB,EACxB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lambda Calculus Module for PTR
|
|
3
|
+
*
|
|
4
|
+
* Implements α-β-η conversions on MCard-stored Lambda terms.
|
|
5
|
+
*
|
|
6
|
+
* This module provides:
|
|
7
|
+
* - LambdaTerm ADT: Var, Abs, App stored as MCard content
|
|
8
|
+
* - Alpha Conversion: Variable renaming
|
|
9
|
+
* - Beta Reduction: Function application
|
|
10
|
+
* - Eta Conversion: Extensional equivalence
|
|
11
|
+
* - LambdaRuntime: PTR-compatible runtime for CLM execution
|
|
12
|
+
*
|
|
13
|
+
* @module mcard-js/ptr/lambda
|
|
14
|
+
*/
|
|
15
|
+
export {
|
|
16
|
+
// Smart Constructors
|
|
17
|
+
mkVar, mkAbs, mkApp,
|
|
18
|
+
// Serialization
|
|
19
|
+
serializeTerm, deserializeTerm, termToMCard, mcardToTerm,
|
|
20
|
+
// Storage
|
|
21
|
+
storeTerm, loadTerm, termExists,
|
|
22
|
+
// Pretty Printing
|
|
23
|
+
prettyPrintShallow, prettyPrintDeep,
|
|
24
|
+
// Type Guards
|
|
25
|
+
isVar, isAbs, isApp } from './LambdaTerm';
|
|
26
|
+
// Free Variables
|
|
27
|
+
export { freeVariables, boundVariables, isFreeIn, isClosed, generateFresh, generateFreshFor, difference, intersection } from './FreeVariables';
|
|
28
|
+
// Alpha Conversion
|
|
29
|
+
export { alphaRename, alphaEquivalent, alphaNormalize } from './AlphaConversion';
|
|
30
|
+
export { isRedex, findLeftmostRedex, findInnermostRedex, betaReduce, reduceStep, normalize, isNormalForm, hasNormalForm } from './BetaReduction';
|
|
31
|
+
// Eta Conversion
|
|
32
|
+
export { isEtaRedex, etaReduce, etaReduceE, etaExpand, etaEquivalent, etaNormalize, findEtaRedexes } from './EtaConversion';
|
|
33
|
+
export { LambdaRuntime, parseLambdaExpression } from './LambdaRuntime';
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ptr/lambda/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,OAAO;AACH,qBAAqB;AACrB,KAAK,EACL,KAAK,EACL,KAAK;AAEL,gBAAgB;AAChB,aAAa,EACb,eAAe,EACf,WAAW,EACX,WAAW;AAEX,UAAU;AACV,SAAS,EACT,QAAQ,EACR,UAAU;AAEV,kBAAkB;AAClB,kBAAkB,EAClB,eAAe;AAEf,cAAc;AACd,KAAK,EACL,KAAK,EACL,KAAK,EACR,MAAM,cAAc,CAAC;AAEtB,iBAAiB;AACjB,OAAO,EACH,aAAa,EACb,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,YAAY,EACf,MAAM,iBAAiB,CAAC;AAEzB,mBAAmB;AACnB,OAAO,EACH,WAAW,EACX,eAAe,EACf,cAAc,EACjB,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EACH,OAAO,EACP,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EAChB,MAAM,iBAAiB,CAAC;AAEzB,iBAAiB;AACjB,OAAO,EACH,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,cAAc,EACjB,MAAM,iBAAiB,CAAC;AASzB,OAAO,EACH,aAAa,EACb,qBAAqB,EACxB,MAAM,iBAAiB,CAAC"}
|
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
* Replicates mcard.ptr.core.llm.runtime.LLMRuntime
|
|
6
6
|
*/
|
|
7
7
|
import { Runtime } from '../node/RuntimeInterface.js';
|
|
8
|
+
import { LLMConfig } from './Config.js';
|
|
8
9
|
import { LLMProvider } from './providers/LLMProvider.js';
|
|
10
|
+
import { IO } from '../../monads/IO.js';
|
|
11
|
+
import { Either } from '../../monads/Either.js';
|
|
9
12
|
export declare function get_provider(provider_name?: string, base_url?: string | null, timeout?: number): LLMProvider;
|
|
10
13
|
export declare class LLMRuntime implements Runtime {
|
|
11
14
|
provider_name: string;
|
|
@@ -17,4 +20,16 @@ export declare class LLMRuntime implements Runtime {
|
|
|
17
20
|
private _execute_chat;
|
|
18
21
|
private _format_response;
|
|
19
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Create a monadic LLM completion execution.
|
|
25
|
+
*
|
|
26
|
+
* Returns IO<Either<string, any>> for functional composition.
|
|
27
|
+
*/
|
|
28
|
+
export declare function promptMonad(prompt: string, config?: Partial<LLMConfig>): IO<Either<string, any>>;
|
|
29
|
+
/**
|
|
30
|
+
* Create a monadic LLM chat execution.
|
|
31
|
+
*
|
|
32
|
+
* Returns IO<Either<string, any>> for functional composition.
|
|
33
|
+
*/
|
|
34
|
+
export declare function chatMonad(messages?: any[] | null, prompt?: string | null, system_prompt?: string, config?: Partial<LLMConfig>): IO<Either<string, any>>;
|
|
20
35
|
//# sourceMappingURL=LLMRuntime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMRuntime.d.ts","sourceRoot":"","sources":["../../../src/ptr/llm/LLMRuntime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"LLMRuntime.d.ts","sourceRoot":"","sources":["../../../src/ptr/llm/LLMRuntime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,wBAAgB,YAAY,CACxB,aAAa,GAAE,MAAyB,EACxC,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,OAAO,GAAE,MAAY,GACtB,WAAW,CAMb;AAED,qBAAa,UAAW,YAAW,OAAO;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,SAAS,CAA4B;gBAEjC,aAAa,GAAE,MAAyB;IAIpD,IAAI,QAAQ,IAAI,WAAW,CAK1B;IAEK,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YA8CxF,mBAAmB;YAKnB,aAAa;IAiB3B,OAAO,CAAC,gBAAgB;CAsB3B;AAMD;;;;GAIG;AACH,wBAAgB,WAAW,CACvB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAO,CAAC,SAAS,CAAM,GAChC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAkBzB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACrB,QAAQ,GAAE,GAAG,EAAE,GAAG,IAAW,EAC7B,MAAM,GAAE,MAAM,GAAG,IAAW,EAC5B,aAAa,GAAE,MAAW,EAC1B,MAAM,GAAE,OAAO,CAAC,SAAS,CAAM,GAChC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAgCzB"}
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { LLMConfig, DEFAULT_PROVIDER } from './Config.js';
|
|
8
8
|
import { OllamaProvider } from './providers/OllamaProvider.js';
|
|
9
|
+
import { IO } from '../../monads/IO.js';
|
|
10
|
+
import { Either } from '../../monads/Either.js';
|
|
9
11
|
export function get_provider(provider_name = DEFAULT_PROVIDER, base_url = null, timeout = 120) {
|
|
10
12
|
if (provider_name === 'ollama') {
|
|
11
13
|
return new OllamaProvider(base_url, timeout);
|
|
@@ -103,4 +105,64 @@ export class LLMRuntime {
|
|
|
103
105
|
return content;
|
|
104
106
|
}
|
|
105
107
|
}
|
|
108
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
109
|
+
// Monadic Interface Functions
|
|
110
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
111
|
+
/**
|
|
112
|
+
* Create a monadic LLM completion execution.
|
|
113
|
+
*
|
|
114
|
+
* Returns IO<Either<string, any>> for functional composition.
|
|
115
|
+
*/
|
|
116
|
+
export function promptMonad(prompt, config = {}) {
|
|
117
|
+
return IO.of(async () => {
|
|
118
|
+
try {
|
|
119
|
+
// Instantiate config to get provider and defaults
|
|
120
|
+
// We cast config to any because LLMConfig constructor expects Partial<LLMConfig>
|
|
121
|
+
// but our partial might miss some index signature stuff if any.
|
|
122
|
+
// Actually config is Partial<LLMConfig> so it's fine.
|
|
123
|
+
const llmConfig = new LLMConfig(config);
|
|
124
|
+
const runtime = new LLMRuntime(llmConfig.provider);
|
|
125
|
+
const params = llmConfig.to_provider_params();
|
|
126
|
+
return runtime.provider.complete(prompt, params);
|
|
127
|
+
}
|
|
128
|
+
catch (e) {
|
|
129
|
+
return Either.left(`LLM execution failed: ${e}`);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Create a monadic LLM chat execution.
|
|
135
|
+
*
|
|
136
|
+
* Returns IO<Either<string, any>> for functional composition.
|
|
137
|
+
*/
|
|
138
|
+
export function chatMonad(messages = null, prompt = null, system_prompt = "", config = {}) {
|
|
139
|
+
return IO.of(async () => {
|
|
140
|
+
try {
|
|
141
|
+
// Merge system prompt into config if provided
|
|
142
|
+
const configData = { ...config };
|
|
143
|
+
if (system_prompt)
|
|
144
|
+
configData.system_prompt = system_prompt;
|
|
145
|
+
const llmConfig = new LLMConfig(configData);
|
|
146
|
+
const runtime = new LLMRuntime(llmConfig.provider);
|
|
147
|
+
// Build messages if not provided
|
|
148
|
+
const msgs = messages ? [...messages] : [];
|
|
149
|
+
if (msgs.length === 0) {
|
|
150
|
+
if (llmConfig.system_prompt) {
|
|
151
|
+
msgs.push({ role: 'system', content: llmConfig.system_prompt });
|
|
152
|
+
}
|
|
153
|
+
if (prompt) {
|
|
154
|
+
msgs.push({ role: 'user', content: prompt });
|
|
155
|
+
}
|
|
156
|
+
if (llmConfig.assistant_instruction) {
|
|
157
|
+
msgs.push({ role: 'assistant', content: llmConfig.assistant_instruction });
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const params = llmConfig.to_provider_params();
|
|
161
|
+
return runtime.provider.chat(msgs, params);
|
|
162
|
+
}
|
|
163
|
+
catch (e) {
|
|
164
|
+
return Either.left(`LLM chat failed: ${e}`);
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
}
|
|
106
168
|
//# sourceMappingURL=LLMRuntime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMRuntime.js","sourceRoot":"","sources":["../../../src/ptr/llm/LLMRuntime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"LLMRuntime.js","sourceRoot":"","sources":["../../../src/ptr/llm/LLMRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,26 @@ export interface ExecutionResult {
|
|
|
15
15
|
manifestation: string;
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
+
export interface RuntimeResult {
|
|
19
|
+
runtime: string;
|
|
20
|
+
success: boolean;
|
|
21
|
+
result?: unknown;
|
|
22
|
+
error?: string;
|
|
23
|
+
executionTime: number;
|
|
24
|
+
}
|
|
25
|
+
export interface MultiRuntimeResult {
|
|
26
|
+
success: boolean;
|
|
27
|
+
consensus: boolean;
|
|
28
|
+
results: RuntimeResult[];
|
|
29
|
+
consensusValue?: unknown;
|
|
30
|
+
error?: string;
|
|
31
|
+
executionTime: number;
|
|
32
|
+
clm: {
|
|
33
|
+
chapter: string;
|
|
34
|
+
concept: string;
|
|
35
|
+
manifestation: string;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
18
38
|
export interface VerificationResult {
|
|
19
39
|
verified: boolean;
|
|
20
40
|
expected: unknown;
|
|
@@ -41,5 +61,15 @@ export declare class CLMRunner {
|
|
|
41
61
|
result: ExecutionResult;
|
|
42
62
|
}>>;
|
|
43
63
|
private executeRecursive;
|
|
64
|
+
/**
|
|
65
|
+
* Execute a CLM across multiple runtimes and verify consensus
|
|
66
|
+
*
|
|
67
|
+
* All runtimes must produce the same result for consensus to be achieved.
|
|
68
|
+
*/
|
|
69
|
+
executeMultiRuntime(clm: CLMSpec, chapterDir: string, input: unknown): Promise<MultiRuntimeResult>;
|
|
70
|
+
/**
|
|
71
|
+
* Check if a CLM is a multi-runtime CLM
|
|
72
|
+
*/
|
|
73
|
+
isMultiRuntime(clm: CLMSpec): boolean;
|
|
44
74
|
}
|
|
45
75
|
//# sourceMappingURL=CLMRunner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CLMRunner.d.ts","sourceRoot":"","sources":["../../../src/ptr/node/CLMRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAC;AAGjD,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;KACzB,CAAC;CACL;AAED,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,eAAe,CAAC;CACpC;AAED,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAS;gBAEZ,QAAQ,GAAE,MAAsB,EAAE,OAAO,GAAE,MAAa;IAKpE;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAiG5F;;OAEG;IACG,SAAS,CACX,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,OAAO,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAY9B;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC/D,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,eAAe,CAAC;KAC3B,CAAC,CAAC;YAWW,gBAAgB;
|
|
1
|
+
{"version":3,"file":"CLMRunner.d.ts","sourceRoot":"","sources":["../../../src/ptr/node/CLMRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAC;AAGjD,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;KACzB,CAAC;CACL;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;KACzB,CAAC;CACL;AAsCD,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,eAAe,CAAC;CACpC;AAED,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAS;gBAEZ,QAAQ,GAAE,MAAsB,EAAE,OAAO,GAAE,MAAa;IAKpE;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAiG5F;;OAEG;IACG,SAAS,CACX,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,OAAO,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAY9B;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC/D,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,eAAe,CAAC;KAC3B,CAAC,CAAC;YAWW,gBAAgB;IA2C9B;;;;OAIG;IACG,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyIxG;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;CAIxC"}
|
|
@@ -6,6 +6,41 @@
|
|
|
6
6
|
import * as path from 'path';
|
|
7
7
|
import { CLMLoader } from './CLMLoader';
|
|
8
8
|
import { RuntimeFactory } from './Runtimes';
|
|
9
|
+
/**
|
|
10
|
+
* Compare two values with floating-point tolerance for numeric types
|
|
11
|
+
*/
|
|
12
|
+
function resultsEqual(a, b, tolerance = 1e-9) {
|
|
13
|
+
// Both null or undefined
|
|
14
|
+
if (a === b)
|
|
15
|
+
return true;
|
|
16
|
+
if (a == null || b == null)
|
|
17
|
+
return false;
|
|
18
|
+
// Numbers - use tolerance
|
|
19
|
+
if (typeof a === 'number' && typeof b === 'number') {
|
|
20
|
+
if (Number.isNaN(a) && Number.isNaN(b))
|
|
21
|
+
return true;
|
|
22
|
+
if (!Number.isFinite(a) || !Number.isFinite(b))
|
|
23
|
+
return a === b;
|
|
24
|
+
return Math.abs(a - b) <= tolerance * Math.max(1, Math.abs(a), Math.abs(b));
|
|
25
|
+
}
|
|
26
|
+
// Arrays - compare element by element
|
|
27
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
28
|
+
if (a.length !== b.length)
|
|
29
|
+
return false;
|
|
30
|
+
return a.every((val, i) => resultsEqual(val, b[i], tolerance));
|
|
31
|
+
}
|
|
32
|
+
// Objects - compare properties
|
|
33
|
+
if (typeof a === 'object' && typeof b === 'object') {
|
|
34
|
+
const keysA = Object.keys(a);
|
|
35
|
+
const keysB = Object.keys(b);
|
|
36
|
+
if (keysA.length !== keysB.length)
|
|
37
|
+
return false;
|
|
38
|
+
return keysA.every(key => keysB.includes(key) &&
|
|
39
|
+
resultsEqual(a[key], b[key], tolerance));
|
|
40
|
+
}
|
|
41
|
+
// Strings and other types - strict equality
|
|
42
|
+
return a === b;
|
|
43
|
+
}
|
|
9
44
|
export class CLMRunner {
|
|
10
45
|
loader;
|
|
11
46
|
timeout;
|
|
@@ -171,5 +206,137 @@ export class CLMRunner {
|
|
|
171
206
|
};
|
|
172
207
|
}
|
|
173
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Execute a CLM across multiple runtimes and verify consensus
|
|
211
|
+
*
|
|
212
|
+
* All runtimes must produce the same result for consensus to be achieved.
|
|
213
|
+
*/
|
|
214
|
+
async executeMultiRuntime(clm, chapterDir, input) {
|
|
215
|
+
const startTime = Date.now();
|
|
216
|
+
const config = clm.clm.concrete;
|
|
217
|
+
const runtimesConfig = config.runtimes_config || [];
|
|
218
|
+
if (runtimesConfig.length === 0) {
|
|
219
|
+
return {
|
|
220
|
+
success: false,
|
|
221
|
+
consensus: false,
|
|
222
|
+
results: [],
|
|
223
|
+
error: 'No runtimes_config defined',
|
|
224
|
+
executionTime: Date.now() - startTime,
|
|
225
|
+
clm: {
|
|
226
|
+
chapter: clm.chapter.title,
|
|
227
|
+
concept: clm.clm.abstract.concept,
|
|
228
|
+
manifestation: clm.clm.concrete.manifestation,
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
const results = [];
|
|
233
|
+
// Execute on each runtime
|
|
234
|
+
for (const rtConfig of runtimesConfig) {
|
|
235
|
+
const runtimeName = rtConfig.name;
|
|
236
|
+
const rtStartTime = Date.now();
|
|
237
|
+
try {
|
|
238
|
+
const runtime = RuntimeFactory.getRuntime(runtimeName);
|
|
239
|
+
let codeOrPath = null;
|
|
240
|
+
// Determine source based on runtime type
|
|
241
|
+
if (['rust', 'c'].includes(runtimeName)) {
|
|
242
|
+
codeOrPath = rtConfig.binary || null;
|
|
243
|
+
}
|
|
244
|
+
else if (runtimeName === 'wasm') {
|
|
245
|
+
codeOrPath = rtConfig.module || null;
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
// Source-based runtimes (JS, Python, Lean, etc.)
|
|
249
|
+
const file = rtConfig.file;
|
|
250
|
+
if (file) {
|
|
251
|
+
codeOrPath = path.resolve(chapterDir, file);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
if (!codeOrPath) {
|
|
255
|
+
results.push({
|
|
256
|
+
runtime: runtimeName,
|
|
257
|
+
success: false,
|
|
258
|
+
error: `No source file/binary specified for ${runtimeName}`,
|
|
259
|
+
executionTime: Date.now() - rtStartTime
|
|
260
|
+
});
|
|
261
|
+
continue;
|
|
262
|
+
}
|
|
263
|
+
// For source file runtimes, read the file content
|
|
264
|
+
let codeContent = codeOrPath;
|
|
265
|
+
if (!['rust', 'c', 'wasm'].includes(runtimeName)) {
|
|
266
|
+
try {
|
|
267
|
+
const fs = await import('fs');
|
|
268
|
+
codeContent = fs.readFileSync(codeOrPath, 'utf-8');
|
|
269
|
+
}
|
|
270
|
+
catch (e) {
|
|
271
|
+
results.push({
|
|
272
|
+
runtime: runtimeName,
|
|
273
|
+
success: false,
|
|
274
|
+
error: `Cannot read source file: ${codeOrPath}`,
|
|
275
|
+
executionTime: Date.now() - rtStartTime
|
|
276
|
+
});
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
const result = await runtime.execute(codeContent, input, {
|
|
281
|
+
...config,
|
|
282
|
+
entry_point: rtConfig.entry
|
|
283
|
+
}, chapterDir);
|
|
284
|
+
results.push({
|
|
285
|
+
runtime: runtimeName,
|
|
286
|
+
success: true,
|
|
287
|
+
result,
|
|
288
|
+
executionTime: Date.now() - rtStartTime
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
catch (e) {
|
|
292
|
+
const errorMsg = e instanceof Error ? e.message : String(e);
|
|
293
|
+
const isUnavailable = errorMsg.includes('Unknown runtime');
|
|
294
|
+
results.push({
|
|
295
|
+
runtime: runtimeName,
|
|
296
|
+
success: false,
|
|
297
|
+
error: isUnavailable ? `Runtime not available: ${runtimeName}` : errorMsg,
|
|
298
|
+
executionTime: Date.now() - rtStartTime
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
// Check consensus - all successful results must be equal
|
|
303
|
+
// We only require consensus among AVAILABLE runtimes
|
|
304
|
+
const successfulResults = results.filter(r => r.success);
|
|
305
|
+
const availableResults = results.filter(r => r.success || !r.error?.includes('Runtime not available'));
|
|
306
|
+
let consensus = false;
|
|
307
|
+
let consensusValue = undefined;
|
|
308
|
+
if (successfulResults.length > 0) {
|
|
309
|
+
const firstResult = successfulResults[0].result;
|
|
310
|
+
// Use tolerance-based comparison for numeric values
|
|
311
|
+
consensus = successfulResults.every(r => resultsEqual(firstResult, r.result, 1e-9));
|
|
312
|
+
if (consensus) {
|
|
313
|
+
consensusValue = firstResult;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
// Success if at least 2 runtimes succeeded and achieved consensus
|
|
317
|
+
const availableSuccess = successfulResults.length >= 2 && consensus;
|
|
318
|
+
// Also check if all AVAILABLE runtimes succeeded
|
|
319
|
+
const allAvailableSuccess = availableResults.length > 0 &&
|
|
320
|
+
availableResults.every(r => r.success);
|
|
321
|
+
return {
|
|
322
|
+
success: availableSuccess || (allAvailableSuccess && consensus),
|
|
323
|
+
consensus,
|
|
324
|
+
results,
|
|
325
|
+
consensusValue,
|
|
326
|
+
executionTime: Date.now() - startTime,
|
|
327
|
+
clm: {
|
|
328
|
+
chapter: clm.chapter.title,
|
|
329
|
+
concept: clm.clm.abstract.concept,
|
|
330
|
+
manifestation: clm.clm.concrete.manifestation,
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Check if a CLM is a multi-runtime CLM
|
|
336
|
+
*/
|
|
337
|
+
isMultiRuntime(clm) {
|
|
338
|
+
const runtimesConfig = clm.clm?.concrete?.runtimes_config;
|
|
339
|
+
return Array.isArray(runtimesConfig) && runtimesConfig.length > 0;
|
|
340
|
+
}
|
|
174
341
|
}
|
|
175
342
|
//# sourceMappingURL=CLMRunner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CLMRunner.js","sourceRoot":"","sources":["../../../src/ptr/node/CLMRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAW,SAAS,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAqB5C,MAAM,OAAO,SAAS;IACV,MAAM,CAAY;IAClB,OAAO,CAAS;IAExB,YAAY,WAAmB,OAAO,CAAC,GAAG,EAAE,EAAE,UAAkB,IAAI;QAChE,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,GAAY,EAAE,UAAkB,EAAE,KAAc;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,IAAI,YAAY,CAAC;QAEnD,wBAAwB;QACxB,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChG,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,CAAC;YACD,sCAAsC;YACtC,MAAM,SAAS,GAAI,MAAc,CAAC,SAAS,CAAC;YAC5C,IAAI,SAAS,KAAK,QAAQ,IAAI,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,mBAAmB,EAAE,CAAC;gBAC5F,6DAA6D;gBAC7D,MAAM,aAAa,GAAG,CAAC,WAAW,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7F,MAAM,aAAa,GAAG,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAE/D,kEAAkE;gBAClE,MAAM,QAAQ,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAEvG,qDAAqD;gBACrD,MAAM,aAAa,GAAG;oBAClB,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ;oBAC1B,sCAAsC;oBACtC,MAAM,EAAE,QAAQ;oBAChB,0DAA0D;oBAC1D,GAAG,QAAQ;iBACd,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;gBAElF,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,MAAM;oBACN,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBACrC,GAAG,EAAE;wBACD,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK;wBAC1B,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO;wBACjC,aAAa,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa;qBAChD;iBACJ,CAAC;YACN,CAAC;YAED,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACvD,IAAI,UAAU,GAAkB,IAAI,CAAC;YAErC,yCAAyC;YACzC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtC,UAAU,GAAI,MAAc,CAAC,WAAW,CAAC;gBACzC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;oBACxC,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;oBACpE,UAAU,GAAG,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC;gBACpC,CAAC;YACL,CAAC;iBAAM,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;gBAChC,UAAU,GAAI,MAAc,CAAC,WAAW,CAAC;gBACzC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;oBACxC,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;oBACpE,UAAU,GAAG,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC;gBACpC,CAAC;YACL,CAAC;iBAAM,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;gBAC/B,8EAA8E;gBAC9E,UAAU,GAAG,YAAY,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACJ,4BAA4B;gBAC5B,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,0CAA0C,WAAW,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAE5E,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,MAAM;gBACN,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACrC,GAAG,EAAE;oBACD,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK;oBAC1B,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO;oBACjC,aAAa,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa;iBAChD;aACJ,CAAC;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvD,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACrC,GAAG,EAAE;oBACD,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK;oBAC1B,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO;oBACjC,aAAa,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa;iBAChD;aACJ,CAAC;QACN,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACX,GAAY,EACZ,UAAkB,EAClB,KAAc,EACd,QAAiB;QAEjB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAEtE,OAAO;YACH,QAAQ,EAAE,eAAe,CAAC,OAAO;gBAC7B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACvE,QAAQ;YACR,MAAM,EAAE,eAAe,CAAC,MAAM;YAC9B,eAAe;SAClB,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,GAAY,EAAE,UAAkB;QAI9C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,MAAW,EAAE,UAAkB,EAAE,KAAc,EAAE,WAAoB;QACrH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAE1C,2DAA2D;YAC3D,MAAM,WAAW,GAAG;gBAChB,GAAG,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK;gBAC7C,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ;gBAClC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ;gBAClC,iBAAiB,EAAE,KAAK;aAC3B,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YAExE,OAAO;gBACH,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,UAAU,CAAC,aAAa;gBAChE,GAAG,EAAE;oBACD,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK;oBAClC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO;oBACzC,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa;iBACxD;aACJ,CAAC;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjD,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACrC,GAAG,EAAE;oBACD,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK;oBAClC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO;oBACzC,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa;iBACxD;aACJ,CAAC;QACN,CAAC;IACL,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"CLMRunner.js","sourceRoot":"","sources":["../../../src/ptr/node/CLMRunner.ts"],"names":[],"mappings":"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"}
|