mcard-js 2.1.8 → 2.1.10
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 +24 -0
- package/dist/model/ContentTypeInterpreter.d.ts.map +1 -1
- package/dist/model/ContentTypeInterpreter.js +17 -9
- package/dist/model/ContentTypeInterpreter.js.map +1 -1
- package/dist/model/Handle.js +3 -3
- package/dist/model/Handle.js.map +1 -1
- package/dist/ptr/node/CLMLoader.d.ts.map +1 -1
- package/dist/ptr/node/CLMLoader.js +44 -55
- package/dist/ptr/node/CLMLoader.js.map +1 -1
- package/dist/ptr/node/CLMRunner.d.ts +47 -0
- package/dist/ptr/node/CLMRunner.d.ts.map +1 -1
- package/dist/ptr/node/CLMRunner.js +161 -109
- package/dist/ptr/node/CLMRunner.js.map +1 -1
- package/dist/ptr/node/FileSystemUtils.d.ts +40 -0
- package/dist/ptr/node/FileSystemUtils.d.ts.map +1 -0
- package/dist/ptr/node/FileSystemUtils.js +170 -0
- package/dist/ptr/node/FileSystemUtils.js.map +1 -0
- package/dist/ptr/node/NetworkRuntime.d.ts +3 -99
- package/dist/ptr/node/NetworkRuntime.d.ts.map +1 -1
- package/dist/ptr/node/NetworkRuntime.js +53 -568
- package/dist/ptr/node/NetworkRuntime.js.map +1 -1
- package/dist/ptr/node/Runtimes.d.ts +2 -15
- package/dist/ptr/node/Runtimes.d.ts.map +1 -1
- package/dist/ptr/node/Runtimes.js +146 -265
- package/dist/ptr/node/Runtimes.js.map +1 -1
- package/dist/ptr/node/cli.js +14 -64
- package/dist/ptr/node/cli.js.map +1 -1
- package/dist/ptr/node/network/HttpClient.d.ts +14 -0
- package/dist/ptr/node/network/HttpClient.d.ts.map +1 -0
- package/dist/ptr/node/network/HttpClient.js +139 -0
- package/dist/ptr/node/network/HttpClient.js.map +1 -0
- package/dist/ptr/node/network/MCardSerialization.d.ts +19 -0
- package/dist/ptr/node/network/MCardSerialization.d.ts.map +1 -0
- package/dist/ptr/node/network/MCardSerialization.js +41 -0
- package/dist/ptr/node/network/MCardSerialization.js.map +1 -0
- package/dist/ptr/node/network/NetworkInfrastructure.d.ts +37 -0
- package/dist/ptr/node/network/NetworkInfrastructure.d.ts.map +1 -0
- package/dist/ptr/node/network/NetworkInfrastructure.js +121 -0
- package/dist/ptr/node/network/NetworkInfrastructure.js.map +1 -0
- package/dist/ptr/node/network/NetworkSecurity.d.ts +24 -0
- package/dist/ptr/node/network/NetworkSecurity.d.ts.map +1 -0
- package/dist/ptr/node/network/NetworkSecurity.js +104 -0
- package/dist/ptr/node/network/NetworkSecurity.js.map +1 -0
- package/dist/util/Loader.d.ts +11 -1
- package/dist/util/Loader.d.ts.map +1 -1
- package/dist/util/Loader.js +73 -27
- package/dist/util/Loader.js.map +1 -1
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -607,6 +607,30 @@ To run integration tests against a live Ollama instance:
|
|
|
607
607
|
npx vitest tests/rag/Integration.test.ts
|
|
608
608
|
```
|
|
609
609
|
|
|
610
|
+
## Version 2.1.10 Release Notes (December 10, 2025)
|
|
611
|
+
> Handle Validation, Loader, and Python Runtime Improvements
|
|
612
|
+
|
|
613
|
+
### 🔧 Handle Validation Improvements
|
|
614
|
+
* **Relaxed Validation Rules**: Handles now support periods (`.`), spaces (` `), and forward slashes (`/`) to accommodate file paths and filenames.
|
|
615
|
+
* **Extended Maximum Length**: Increased from 63 to 255 characters for better file path compatibility.
|
|
616
|
+
* **Cross-Runtime Parity**: Synchronized validation logic with Python implementation (`mcard/model/handle.py`).
|
|
617
|
+
* **Updated Tests**: All handle validation tests (`Handle.test.ts`, `HandleParity.test.ts`) updated to reflect new rules.
|
|
618
|
+
|
|
619
|
+
### 📦 Loader Return Type Standardization
|
|
620
|
+
* **Structured Response**: `loadFileToCollection` now returns `{metrics, results}` instead of a plain array.
|
|
621
|
+
* **Metrics Object**: Includes `filesCount`, `directoriesCount`, and `directoryLevels` for better observability.
|
|
622
|
+
* **Test Updates**: Updated `Loader.test.ts` to use `response.metrics.filesCount` and `response.results` array.
|
|
623
|
+
|
|
624
|
+
### 🐍 Python Runtime Wrapper Enhancements
|
|
625
|
+
* **Smart Function Invocation**: Python wrapper now tries calling with `context` dict first, then `target`, then no args.
|
|
626
|
+
* **Error Discrimination**: Added `_is_arg_error()` helper to distinguish TypeError about function arguments from other TypeErrors (e.g., sorting errors).
|
|
627
|
+
* **Proper Scope Resolution**: Fixed entry point lookup using `dir()` and `globals()` instead of `locals()`.
|
|
628
|
+
* **Builtin Loader Support**: CLMRunner now recognizes `builtin: loader` and `builtin: load_files` for Python CLMs.
|
|
629
|
+
|
|
630
|
+
### 🐛 Bug Fixes
|
|
631
|
+
* **CLM Loader Detection**: Added support for `builtin: load_files` in addition to existing loader detection methods.
|
|
632
|
+
* **Reflection Logic**: Fixed sorting bugs in Python reflection scripts to handle mixed ID types (int, float, string).
|
|
633
|
+
|
|
610
634
|
## Version 2.1.7 Release Notes (December 2025)
|
|
611
635
|
> CLM Test Infrastructure & Runtime Fixes
|
|
612
636
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentTypeInterpreter.d.ts","sourceRoot":"","sources":["../../src/model/ContentTypeInterpreter.ts"],"names":[],"mappings":"AAEA,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CA8BjC;IAEF;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CACpB,OAAO,EAAE,MAAM,GAAG,UAAU,EAC5B,aAAa,CAAC,EAAE,MAAM,GACvB;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAyC1C,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAsBhF,MAAM,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO;IAM5D,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"ContentTypeInterpreter.d.ts","sourceRoot":"","sources":["../../src/model/ContentTypeInterpreter.ts"],"names":[],"mappings":"AAEA,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CA8BjC;IAEF;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CACpB,OAAO,EAAE,MAAM,GAAG,UAAU,EAC5B,aAAa,CAAC,EAAE,MAAM,GACvB;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAyC1C,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAsBhF,MAAM,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO;IAM5D,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IA2BxD,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO;CASjF"}
|
|
@@ -104,19 +104,27 @@ export class ContentTypeInterpreter {
|
|
|
104
104
|
return ['.min.js', '.min.css', '.map', '.svg', '.json', '.geojson'].some(e => ext.endsWith(e));
|
|
105
105
|
}
|
|
106
106
|
static isUnstructuredBinary(sample) {
|
|
107
|
-
//
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
// Match Python's heuristic:
|
|
108
|
+
// if len(sample) < 512: return False
|
|
109
|
+
if (sample.length < 512)
|
|
110
|
+
return false;
|
|
111
|
+
let nullCount = 0;
|
|
112
|
+
let controlCount = 0;
|
|
113
|
+
const len = Math.min(sample.length, 32 * 1024); // match larger sample if available
|
|
110
114
|
for (let i = 0; i < len; i++) {
|
|
111
115
|
const byte = sample[i];
|
|
112
|
-
if (byte === 0)
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
+
if (byte === 0) {
|
|
117
|
+
nullCount++;
|
|
118
|
+
}
|
|
119
|
+
// Control chars: < 32, excluding TAB (9), LF (10), CR (13)
|
|
120
|
+
if ((byte < 32 && byte !== 9 && byte !== 10 && byte !== 13)) {
|
|
121
|
+
controlCount++;
|
|
116
122
|
}
|
|
117
123
|
}
|
|
118
|
-
|
|
119
|
-
|
|
124
|
+
const nullRatio = nullCount / len;
|
|
125
|
+
const controlRatio = controlCount / len;
|
|
126
|
+
// Python Constants: _NULL_RATIO_THRESHOLD = 0.1, _CTRL_RATIO_THRESHOLD = 0.2
|
|
127
|
+
return nullRatio > 0.1 || controlRatio > 0.2;
|
|
120
128
|
}
|
|
121
129
|
static hasPathologicalLines(sample, isKnownType) {
|
|
122
130
|
if (isKnownType || sample.length < 32768)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentTypeInterpreter.js","sourceRoot":"","sources":["../../src/model/ContentTypeInterpreter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ContentTypeInterpreter.js","sourceRoot":"","sources":["../../src/model/ContentTypeInterpreter.ts"],"names":[],"mappings":"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"}
|
package/dist/model/Handle.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Supports international characters (文檔, مستند, ドキュメント, документ)
|
|
5
5
|
* Uses Unicode categories for validation
|
|
6
6
|
*/
|
|
7
|
-
const MAX_HANDLE_LENGTH =
|
|
7
|
+
const MAX_HANDLE_LENGTH = 255;
|
|
8
8
|
/**
|
|
9
9
|
* Check if character is a valid starting character (Unicode letter)
|
|
10
10
|
*/
|
|
@@ -16,8 +16,8 @@ function isValidStartChar(char) {
|
|
|
16
16
|
* Check if character is valid in handle body
|
|
17
17
|
*/
|
|
18
18
|
function isValidBodyChar(char) {
|
|
19
|
-
// Letters, numbers, underscore, hyphen
|
|
20
|
-
return /^[\p{L}\p{N}_-]$/u.test(char);
|
|
19
|
+
// Letters, numbers, underscore, hyphen, period, forward slash, space
|
|
20
|
+
return /^[\p{L}\p{N}_./ -]$/u.test(char);
|
|
21
21
|
}
|
|
22
22
|
export class HandleValidationError extends Error {
|
|
23
23
|
constructor(message) {
|
package/dist/model/Handle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handle.js","sourceRoot":"","sources":["../../src/model/Handle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"file":"Handle.js","sourceRoot":"","sources":["../../src/model/Handle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CLMLoader.d.ts","sourceRoot":"","sources":["../../../src/ptr/node/CLMLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,OAAO;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,GAAG,EAAE;QACD,QAAQ,EAAE;YACN,OAAO,EAAE,MAAM,CAAC;YAChB,WAAW,EAAE,MAAM,CAAC;YACpB,UAAU,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,QAAQ,EAAE;YACN,aAAa,EAAE,MAAM,CAAC;YACtB,WAAW,EAAE,MAAM,CAAC;YACpB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,QAAQ,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;YACrC,eAAe,CAAC,EAAE,KAAK,CAAC;gBACpB,IAAI,EAAE,MAAM,CAAC;gBACb,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,MAAM,CAAC,EAAE,MAAM,CAAC;gBAChB,MAAM,CAAC,EAAE,MAAM,CAAC;gBAChB,KAAK,CAAC,EAAE,MAAM,CAAC;aAClB,CAAC,CAAC;SACN,CAAC;QACF,QAAQ,EAAE;YACN,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,EAAE,MAAM,CAAC;SACvB,CAAC;KACL,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAC1B,CAAC,CAAC;CACN;
|
|
1
|
+
{"version":3,"file":"CLMLoader.d.ts","sourceRoot":"","sources":["../../../src/ptr/node/CLMLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,OAAO;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,GAAG,EAAE;QACD,QAAQ,EAAE;YACN,OAAO,EAAE,MAAM,CAAC;YAChB,WAAW,EAAE,MAAM,CAAC;YACpB,UAAU,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,QAAQ,EAAE;YACN,aAAa,EAAE,MAAM,CAAC;YACtB,WAAW,EAAE,MAAM,CAAC;YACpB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,QAAQ,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;YACrC,eAAe,CAAC,EAAE,KAAK,CAAC;gBACpB,IAAI,EAAE,MAAM,CAAC;gBACb,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,MAAM,CAAC,EAAE,MAAM,CAAC;gBAChB,MAAM,CAAC,EAAE,MAAM,CAAC;gBAChB,KAAK,CAAC,EAAE,MAAM,CAAC;aAClB,CAAC,CAAC;SACN,CAAC;QACF,QAAQ,EAAE;YACN,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,EAAE,MAAM,CAAC;SACvB,CAAC;KACL,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAC1B,CAAC,CAAC;CACN;AA+CD,qBAAa,SAAS;IACX,QAAQ,EAAE,MAAM,CAAC;gBAEZ,QAAQ,GAAE,MAAsB;IAI5C;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAiD9B;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAmBpD;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CA2BjE"}
|
|
@@ -6,6 +6,46 @@
|
|
|
6
6
|
import * as fs from 'fs';
|
|
7
7
|
import * as path from 'path';
|
|
8
8
|
import * as yaml from 'yaml';
|
|
9
|
+
/**
|
|
10
|
+
* Map balanced.test_cases to examples, preserving original input content.
|
|
11
|
+
*
|
|
12
|
+
* The flag `treatEmptyWhenAsGiven` controls how empty `when` blocks are
|
|
13
|
+
* interpreted:
|
|
14
|
+
* - legacy root format kept `input` as `given` when `when` was empty
|
|
15
|
+
* - standard clm.balanced format treated an empty object as a valid input
|
|
16
|
+
*/
|
|
17
|
+
function mapTestCasesToExamples(testCases, treatEmptyWhenAsGiven) {
|
|
18
|
+
return testCases.map((tc) => {
|
|
19
|
+
let input = tc.given;
|
|
20
|
+
if (tc.when) {
|
|
21
|
+
const params = tc.when.params || {};
|
|
22
|
+
const context = tc.when.context || {};
|
|
23
|
+
const hasParams = Object.keys(params).length > 0;
|
|
24
|
+
const hasContext = Object.keys(context).length > 0;
|
|
25
|
+
const hasWhenKeys = typeof tc.when === 'object' && Object.keys(tc.when).length > 0;
|
|
26
|
+
if (hasParams || hasContext) {
|
|
27
|
+
input = { ...tc.when, ...context, ...params };
|
|
28
|
+
if (input.__input_content__ === undefined) {
|
|
29
|
+
input.__input_content__ = tc.given;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else if (tc.when &&
|
|
33
|
+
typeof tc.when === 'object' &&
|
|
34
|
+
(!treatEmptyWhenAsGiven || hasWhenKeys)) {
|
|
35
|
+
input = { ...tc.when };
|
|
36
|
+
if (input.__input_content__ === undefined) {
|
|
37
|
+
input.__input_content__ = tc.given;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
name: tc.name || `Test Case: ${tc.given}`,
|
|
43
|
+
input,
|
|
44
|
+
expected_output: tc.then?.result,
|
|
45
|
+
result_contains: tc.then?.result_contains,
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
}
|
|
9
49
|
export class CLMLoader {
|
|
10
50
|
basePath;
|
|
11
51
|
constructor(basePath = process.cwd()) {
|
|
@@ -36,66 +76,15 @@ export class CLMLoader {
|
|
|
36
76
|
};
|
|
37
77
|
// Map balanced.test_cases to examples
|
|
38
78
|
if (parsed.balanced?.test_cases) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (tc.when) {
|
|
42
|
-
const params = tc.when.params || {};
|
|
43
|
-
const context = tc.when.context || {};
|
|
44
|
-
if (Object.keys(params).length > 0 || Object.keys(context).length > 0) {
|
|
45
|
-
input = { ...tc.when, ...context, ...params };
|
|
46
|
-
// Preserve original input content
|
|
47
|
-
if (input.__input_content__ === undefined) {
|
|
48
|
-
input.__input_content__ = tc.given;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
else if (tc.when && typeof tc.when === 'object' && Object.keys(tc.when).length > 0) {
|
|
52
|
-
input = { ...tc.when };
|
|
53
|
-
if (input.__input_content__ === undefined) {
|
|
54
|
-
input.__input_content__ = tc.given;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return {
|
|
59
|
-
name: `Test Case: ${tc.given}`,
|
|
60
|
-
input: input,
|
|
61
|
-
expected_output: tc.then?.result
|
|
62
|
-
};
|
|
63
|
-
});
|
|
79
|
+
// Legacy behavior: treat empty `when` as "no override", keeping input = given
|
|
80
|
+
spec.examples = mapTestCasesToExamples(parsed.balanced.test_cases, true);
|
|
64
81
|
}
|
|
65
82
|
return spec;
|
|
66
83
|
}
|
|
67
84
|
// Standard format: check clm.balanced.test_cases
|
|
68
85
|
if (parsed.clm?.balanced?.test_cases && !parsed.examples) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
// when: { params: { recursive: true }, context: { output_arguments: {...} } }
|
|
72
|
-
// -> input = { recursive: true, output_arguments: {...} }
|
|
73
|
-
let input = tc.given;
|
|
74
|
-
if (tc.when) {
|
|
75
|
-
// Merge params and context (params takes precedence for direct values)
|
|
76
|
-
const params = tc.when.params || {};
|
|
77
|
-
const context = tc.when.context || {};
|
|
78
|
-
if (Object.keys(params).length > 0 || Object.keys(context).length > 0) {
|
|
79
|
-
input = { ...tc.when, ...context, ...params };
|
|
80
|
-
// Preserve original input content
|
|
81
|
-
if (input.__input_content__ === undefined) {
|
|
82
|
-
input.__input_content__ = tc.given;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
else if (tc.when && typeof tc.when === 'object') {
|
|
86
|
-
// Maybe when IS the input directly
|
|
87
|
-
input = { ...tc.when };
|
|
88
|
-
if (input.__input_content__ === undefined) {
|
|
89
|
-
input.__input_content__ = tc.given;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return {
|
|
94
|
-
name: `Test Case: ${tc.given}`,
|
|
95
|
-
input: input,
|
|
96
|
-
expected_output: tc.then?.result
|
|
97
|
-
};
|
|
98
|
-
});
|
|
86
|
+
// Standard behavior: allow empty `when` to become an explicit (possibly empty) input object
|
|
87
|
+
parsed.examples = mapTestCasesToExamples(parsed.clm.balanced.test_cases, false);
|
|
99
88
|
}
|
|
100
89
|
// Map balanced.examples (used in advanced_comparison.yaml)
|
|
101
90
|
if (parsed.clm?.balanced?.examples && !parsed.examples) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CLMLoader.js","sourceRoot":"","sources":["../../../src/ptr/node/CLMLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AA6C7B,
|
|
1
|
+
{"version":3,"file":"CLMLoader.js","sourceRoot":"","sources":["../../../src/ptr/node/CLMLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,9 @@ export interface ExecutionResult {
|
|
|
17
17
|
boundary?: string;
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
+
export interface CLMBannerLines {
|
|
21
|
+
header: string[];
|
|
22
|
+
}
|
|
20
23
|
export interface RuntimeResult {
|
|
21
24
|
runtime: string;
|
|
22
25
|
success: boolean;
|
|
@@ -44,6 +47,41 @@ export interface VerificationResult {
|
|
|
44
47
|
actual: unknown;
|
|
45
48
|
executionResult: ExecutionResult;
|
|
46
49
|
}
|
|
50
|
+
export interface RunExamplesSummary {
|
|
51
|
+
total: number;
|
|
52
|
+
passed: number;
|
|
53
|
+
results: Array<{
|
|
54
|
+
case: number;
|
|
55
|
+
name: string;
|
|
56
|
+
input: unknown;
|
|
57
|
+
result: unknown;
|
|
58
|
+
error?: string;
|
|
59
|
+
expected: unknown;
|
|
60
|
+
match: boolean;
|
|
61
|
+
}>;
|
|
62
|
+
}
|
|
63
|
+
export interface ExecutionReport {
|
|
64
|
+
status: 'success' | 'failure';
|
|
65
|
+
result?: unknown;
|
|
66
|
+
error?: string;
|
|
67
|
+
chapter_id: number;
|
|
68
|
+
chapter_title: string;
|
|
69
|
+
}
|
|
70
|
+
export interface SummaryReport {
|
|
71
|
+
status: 'success' | 'failure';
|
|
72
|
+
result: {
|
|
73
|
+
success: boolean;
|
|
74
|
+
total: number;
|
|
75
|
+
results: Array<{
|
|
76
|
+
case: number;
|
|
77
|
+
name: string;
|
|
78
|
+
result: unknown;
|
|
79
|
+
error?: string;
|
|
80
|
+
}>;
|
|
81
|
+
};
|
|
82
|
+
chapter_id: number;
|
|
83
|
+
chapter_title: string;
|
|
84
|
+
}
|
|
47
85
|
export declare class CLMRunner {
|
|
48
86
|
private loader;
|
|
49
87
|
private timeout;
|
|
@@ -57,6 +95,8 @@ export declare class CLMRunner {
|
|
|
57
95
|
* Execute a CLM specification with given input
|
|
58
96
|
*/
|
|
59
97
|
executeCLM(clm: CLMSpec, chapterDir: string, input: unknown): Promise<ExecutionResult>;
|
|
98
|
+
private resolveCodeOrPath;
|
|
99
|
+
private buildExecutionResult;
|
|
60
100
|
/**
|
|
61
101
|
* Verify CLM output against expected result
|
|
62
102
|
*/
|
|
@@ -68,6 +108,13 @@ export declare class CLMRunner {
|
|
|
68
108
|
name: string;
|
|
69
109
|
result: ExecutionResult;
|
|
70
110
|
}>>;
|
|
111
|
+
summarizeExampleRuns(clm: CLMSpec, results: Array<{
|
|
112
|
+
name: string;
|
|
113
|
+
result: ExecutionResult;
|
|
114
|
+
}>): RunExamplesSummary;
|
|
115
|
+
buildCLMBanner(clm: CLMSpec): CLMBannerLines;
|
|
116
|
+
buildExecutionReport(clm: CLMSpec, execution: ExecutionResult): ExecutionReport;
|
|
117
|
+
buildSummaryReport(clm: CLMSpec, summary: RunExamplesSummary): SummaryReport;
|
|
71
118
|
private executeRecursive;
|
|
72
119
|
/**
|
|
73
120
|
* Execute a CLM across multiple runtimes and verify consensus
|
|
@@ -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;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,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;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,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;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,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;IACxB,OAAO,CAAC,UAAU,CAAC,CAAiB;gBAExB,QAAQ,GAAE,MAAsB,EAAE,OAAO,GAAE,MAAa,EAAE,UAAU,CAAC,EAAE,cAAc;IAMjG;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAUzE;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;
|
|
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;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,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;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;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;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,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;AAmCD,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CACN;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,KAAK,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,OAAO,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC,CAAC;KACN,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAC,CAAiB;gBAExB,QAAQ,GAAE,MAAsB,EAAE,OAAO,GAAE,MAAa,EAAE,UAAU,CAAC,EAAE,cAAc;IAMjG;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAUzE;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAoF5F,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,oBAAoB;IAc5B;;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;IAWH,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,GAAG,kBAAkB;IA0CjH,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc;IAY5C,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,GAAG,eAAe;IAU/E,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,GAAG,aAAa;YAkB9D,gBAAgB;IA0D9B;;;;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"}
|