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.
Files changed (48) hide show
  1. package/README.md +24 -0
  2. package/dist/model/ContentTypeInterpreter.d.ts.map +1 -1
  3. package/dist/model/ContentTypeInterpreter.js +17 -9
  4. package/dist/model/ContentTypeInterpreter.js.map +1 -1
  5. package/dist/model/Handle.js +3 -3
  6. package/dist/model/Handle.js.map +1 -1
  7. package/dist/ptr/node/CLMLoader.d.ts.map +1 -1
  8. package/dist/ptr/node/CLMLoader.js +44 -55
  9. package/dist/ptr/node/CLMLoader.js.map +1 -1
  10. package/dist/ptr/node/CLMRunner.d.ts +47 -0
  11. package/dist/ptr/node/CLMRunner.d.ts.map +1 -1
  12. package/dist/ptr/node/CLMRunner.js +161 -109
  13. package/dist/ptr/node/CLMRunner.js.map +1 -1
  14. package/dist/ptr/node/FileSystemUtils.d.ts +40 -0
  15. package/dist/ptr/node/FileSystemUtils.d.ts.map +1 -0
  16. package/dist/ptr/node/FileSystemUtils.js +170 -0
  17. package/dist/ptr/node/FileSystemUtils.js.map +1 -0
  18. package/dist/ptr/node/NetworkRuntime.d.ts +3 -99
  19. package/dist/ptr/node/NetworkRuntime.d.ts.map +1 -1
  20. package/dist/ptr/node/NetworkRuntime.js +53 -568
  21. package/dist/ptr/node/NetworkRuntime.js.map +1 -1
  22. package/dist/ptr/node/Runtimes.d.ts +2 -15
  23. package/dist/ptr/node/Runtimes.d.ts.map +1 -1
  24. package/dist/ptr/node/Runtimes.js +146 -265
  25. package/dist/ptr/node/Runtimes.js.map +1 -1
  26. package/dist/ptr/node/cli.js +14 -64
  27. package/dist/ptr/node/cli.js.map +1 -1
  28. package/dist/ptr/node/network/HttpClient.d.ts +14 -0
  29. package/dist/ptr/node/network/HttpClient.d.ts.map +1 -0
  30. package/dist/ptr/node/network/HttpClient.js +139 -0
  31. package/dist/ptr/node/network/HttpClient.js.map +1 -0
  32. package/dist/ptr/node/network/MCardSerialization.d.ts +19 -0
  33. package/dist/ptr/node/network/MCardSerialization.d.ts.map +1 -0
  34. package/dist/ptr/node/network/MCardSerialization.js +41 -0
  35. package/dist/ptr/node/network/MCardSerialization.js.map +1 -0
  36. package/dist/ptr/node/network/NetworkInfrastructure.d.ts +37 -0
  37. package/dist/ptr/node/network/NetworkInfrastructure.d.ts.map +1 -0
  38. package/dist/ptr/node/network/NetworkInfrastructure.js +121 -0
  39. package/dist/ptr/node/network/NetworkInfrastructure.js.map +1 -0
  40. package/dist/ptr/node/network/NetworkSecurity.d.ts +24 -0
  41. package/dist/ptr/node/network/NetworkSecurity.d.ts.map +1 -0
  42. package/dist/ptr/node/network/NetworkSecurity.js +104 -0
  43. package/dist/ptr/node/network/NetworkSecurity.js.map +1 -0
  44. package/dist/util/Loader.d.ts +11 -1
  45. package/dist/util/Loader.d.ts.map +1 -1
  46. package/dist/util/Loader.js +73 -27
  47. package/dist/util/Loader.js.map +1 -1
  48. 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;IAexD,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO;CASjF"}
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
- // Check for null bytes or high ratio of non-printable characters
108
- let nonPrintable = 0;
109
- const len = Math.min(sample.length, 1024);
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
- return true; // Null byte is strong indicator
114
- if ((byte < 32 && byte !== 9 && byte !== 10 && byte !== 13) || byte === 127) {
115
- nonPrintable++;
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
- // > 30% non-printable
119
- return (nonPrintable / len) > 0.3;
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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"}
@@ -4,7 +4,7 @@
4
4
  * Supports international characters (文檔, مستند, ドキュメント, документ)
5
5
  * Uses Unicode categories for validation
6
6
  */
7
- const MAX_HANDLE_LENGTH = 63;
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"Handle.js","sourceRoot":"","sources":["../../src/model/Handle.ts"],"names":[],"mappings":"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"}
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;AAED,qBAAa,SAAS;IACX,QAAQ,EAAE,MAAM,CAAC;gBAEZ,QAAQ,GAAE,MAAsB;IAI5C;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAwG9B;;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"}
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
- spec.examples = parsed.balanced.test_cases.map((tc) => {
40
- let input = tc.given;
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
- parsed.examples = parsed.clm.balanced.test_cases.map((tc) => {
70
- // Construct input: merge 'when.params' and 'when.context' if available
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":"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"}
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;IAmL5F;;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;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"}
1
+ {"version":3,"file":"CLMRunner.d.ts","sourceRoot":"","sources":["../../../src/ptr/node/CLMRunner.ts"],"names":[],"mappings":"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"}