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.
Files changed (45) hide show
  1. package/README.md +82 -2
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +3 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/ptr/lambda/AlphaConversion.d.ts +42 -0
  7. package/dist/ptr/lambda/AlphaConversion.d.ts.map +1 -0
  8. package/dist/ptr/lambda/AlphaConversion.js +244 -0
  9. package/dist/ptr/lambda/AlphaConversion.js.map +1 -0
  10. package/dist/ptr/lambda/BetaReduction.d.ts +73 -0
  11. package/dist/ptr/lambda/BetaReduction.d.ts.map +1 -0
  12. package/dist/ptr/lambda/BetaReduction.js +322 -0
  13. package/dist/ptr/lambda/BetaReduction.js.map +1 -0
  14. package/dist/ptr/lambda/EtaConversion.d.ts +65 -0
  15. package/dist/ptr/lambda/EtaConversion.d.ts.map +1 -0
  16. package/dist/ptr/lambda/EtaConversion.js +228 -0
  17. package/dist/ptr/lambda/EtaConversion.js.map +1 -0
  18. package/dist/ptr/lambda/FreeVariables.d.ts +44 -0
  19. package/dist/ptr/lambda/FreeVariables.d.ts.map +1 -0
  20. package/dist/ptr/lambda/FreeVariables.js +207 -0
  21. package/dist/ptr/lambda/FreeVariables.js.map +1 -0
  22. package/dist/ptr/lambda/LambdaRuntime.d.ts +80 -0
  23. package/dist/ptr/lambda/LambdaRuntime.d.ts.map +1 -0
  24. package/dist/ptr/lambda/LambdaRuntime.js +417 -0
  25. package/dist/ptr/lambda/LambdaRuntime.js.map +1 -0
  26. package/dist/ptr/lambda/LambdaTerm.d.ts +95 -0
  27. package/dist/ptr/lambda/LambdaTerm.d.ts.map +1 -0
  28. package/dist/ptr/lambda/LambdaTerm.js +159 -0
  29. package/dist/ptr/lambda/LambdaTerm.js.map +1 -0
  30. package/dist/ptr/lambda/index.d.ts +24 -0
  31. package/dist/ptr/lambda/index.d.ts.map +1 -0
  32. package/dist/ptr/lambda/index.js +34 -0
  33. package/dist/ptr/lambda/index.js.map +1 -0
  34. package/dist/ptr/node/CLMRunner.d.ts +30 -0
  35. package/dist/ptr/node/CLMRunner.d.ts.map +1 -1
  36. package/dist/ptr/node/CLMRunner.js +167 -0
  37. package/dist/ptr/node/CLMRunner.js.map +1 -1
  38. package/dist/ptr/node/Runtimes.d.ts +8 -1
  39. package/dist/ptr/node/Runtimes.d.ts.map +1 -1
  40. package/dist/ptr/node/Runtimes.js +8 -1
  41. package/dist/ptr/node/Runtimes.js.map +1 -1
  42. package/dist/storage/schema.d.ts.map +1 -1
  43. package/dist/storage/schema.js +5 -1
  44. package/dist/storage/schema.js.map +1 -1
  45. 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"}
@@ -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;CA0CjC"}
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;AAWhD,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,GAAG,OAAO;CAelD"}
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
  }