mcard-js 2.1.1 → 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 +82 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.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/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/storage/schema.d.ts.map +1 -1
- package/dist/storage/schema.js +5 -1
- package/dist/storage/schema.js.map +1 -1
- 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":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAwC1C,gFAAgF;AAChF,oCAAoC;AACpC,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,IAAY;IAC9B,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,QAAgB;IACjD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,QAAgB,EAAE,OAAe;IACnD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACxD,CAAC;AAED,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAgB;IAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEnC,qBAAqB;IACrB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ,MAAM,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,KAAK;YACN,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE9B,KAAK,KAAK;YACN,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAE5C,KAAK,KAAK;YACN,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAE1C;YACI,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAClE,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAgB;IAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAY;IACpC,OAAO,eAAe,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,UAA0B,EAC1B,IAAgB;IAEhB,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,KAAK,CAAC,IAAI,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC1B,UAA0B,EAC1B,IAAY;IAEZ,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,UAA0B,EAC1B,IAAY;IAEZ,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,KAAK,KAAK,IAAI,CAAC;AAC1B,CAAC;AAED,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAgB;IAC/C,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;QACf,KAAK,KAAK;YACN,OAAO,IAAI,CAAC,IAAI,CAAC;QACrB,KAAK,KAAK;YACN,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;QAC5D,KAAK,KAAK;YACN,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;IAClF,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,UAA0B,EAC1B,IAAY;IAEZ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI;QAAE,OAAO,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;IAEvD,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;QACf,KAAK,KAAK;YACN,OAAO,IAAI,CAAC,IAAI,CAAC;QAErB,KAAK,KAAK;YACN,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,OAAO,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC;QAEtC,KAAK,KAAK;YACN,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACxD,OAAO,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC;IAClC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,MAAM,UAAU,KAAK,CAAC,IAAgB;IAClC,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAgB;IAClC,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAgB;IAClC,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC;AAC9B,CAAC"}
|
|
@@ -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"}
|
|
@@ -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":"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"}
|
|
1
|
+
{"version":3,"file":"CLMRunner.js","sourceRoot":"","sources":["../../../src/ptr/node/CLMRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Runtime } from './RuntimeInterface.js';
|
|
2
|
+
import { CardCollection } from '../../model/CardCollection.js';
|
|
2
3
|
export declare class JavaScriptRuntime implements Runtime {
|
|
3
4
|
execute(code: string, context: unknown, config: any): Promise<unknown>;
|
|
4
5
|
}
|
|
@@ -42,6 +43,12 @@ export declare class LoaderRuntime implements Runtime {
|
|
|
42
43
|
}
|
|
43
44
|
export declare class RuntimeFactory {
|
|
44
45
|
static getAvailableRuntimes(): Promise<Record<string, boolean>>;
|
|
45
|
-
static getRuntime(runtimeName: string): Runtime;
|
|
46
|
+
static getRuntime(runtimeName: string, options?: RuntimeOptions): Runtime;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Options for runtime creation
|
|
50
|
+
*/
|
|
51
|
+
export interface RuntimeOptions {
|
|
52
|
+
collection?: CardCollection;
|
|
46
53
|
}
|
|
47
54
|
//# sourceMappingURL=Runtimes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Runtimes.d.ts","sourceRoot":"","sources":["../../../src/ptr/node/Runtimes.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Runtimes.d.ts","sourceRoot":"","sources":["../../../src/ptr/node/Runtimes.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAIhD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAO/D,qBAAa,iBAAkB,YAAW,OAAO;IACvC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;CAqB/E;AAED,qBAAa,uBAAwB,YAAW,OAAO;IACnD;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IA4E7E,OAAO,CAAC,SAAS;CAiBpB;AAED,qBAAa,aAAc,YAAW,OAAO;IACnC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;CAsE/E;AAED,qBAAa,aAAc,YAAW,OAAO;IACnC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAazG;AAED,qBAAa,WAAY,YAAW,OAAO;IACjC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CA6DvG;AAED,qBAAa,WAAY,YAAW,OAAO;IACjC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;CAmB/E;AAED,qBAAa,aAAc,YAAW,OAAO;IACzC;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IA+E7E;;OAEG;IACH,OAAO,CAAC,SAAS;IAmBjB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAiE5B;AAED,qBAAa,cAAc;WACV,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAuDrE,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO;CAsB5E;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,UAAU,CAAC,EAAE,cAAc,CAAC;CAC/B"}
|
|
@@ -543,7 +543,7 @@ export class RuntimeFactory {
|
|
|
543
543
|
}
|
|
544
544
|
return status;
|
|
545
545
|
}
|
|
546
|
-
static getRuntime(runtimeName) {
|
|
546
|
+
static getRuntime(runtimeName, options) {
|
|
547
547
|
switch (runtimeName) {
|
|
548
548
|
case 'javascript': return new JavaScriptRuntime();
|
|
549
549
|
case 'python': return new PythonRuntime();
|
|
@@ -555,6 +555,13 @@ export class RuntimeFactory {
|
|
|
555
555
|
case 'llm': return new LLMRuntime();
|
|
556
556
|
case 'loader': return new LoaderRuntime();
|
|
557
557
|
case 'collection_loader': return new CollectionLoaderRuntime();
|
|
558
|
+
case 'lambda':
|
|
559
|
+
if (!options?.collection) {
|
|
560
|
+
throw new Error('Lambda runtime requires a CardCollection in options');
|
|
561
|
+
}
|
|
562
|
+
// Dynamic import to avoid circular dependencies
|
|
563
|
+
const { LambdaRuntime } = require('../lambda/LambdaRuntime');
|
|
564
|
+
return new LambdaRuntime(options.collection);
|
|
558
565
|
default: throw new Error(`Unknown runtime: ${runtimeName}`);
|
|
559
566
|
}
|
|
560
567
|
}
|