typia 14.0.6 → 15.0.0

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 (72) hide show
  1. package/README.md +3 -0
  2. package/lib/internal/_createLlmEvaluation.d.ts +1 -0
  3. package/lib/internal/_createLlmEvaluation.js +486 -0
  4. package/lib/internal/_createLlmEvaluation.js.map +1 -0
  5. package/lib/internal/_createLlmEvaluation.mjs +382 -0
  6. package/lib/internal/_createLlmEvaluation.mjs.map +1 -0
  7. package/lib/internal/_stringLengthGte.d.ts +1 -0
  8. package/lib/internal/_stringLengthGte.js +14 -0
  9. package/lib/internal/_stringLengthGte.js.map +1 -0
  10. package/lib/internal/_stringLengthGte.mjs +11 -0
  11. package/lib/internal/_stringLengthGte.mjs.map +1 -0
  12. package/lib/internal/_stringLengthLte.d.ts +1 -0
  13. package/lib/internal/_stringLengthLte.js +14 -0
  14. package/lib/internal/_stringLengthLte.js.map +1 -0
  15. package/lib/internal/_stringLengthLte.mjs +11 -0
  16. package/lib/internal/_stringLengthLte.mjs.map +1 -0
  17. package/lib/llm.d.ts +54 -1
  18. package/lib/llm.js +5 -0
  19. package/lib/llm.js.map +1 -1
  20. package/lib/llm.mjs +6 -1
  21. package/lib/llm.mjs.map +1 -1
  22. package/lib/re-exports.d.ts +1 -1
  23. package/lib/re-exports.js.map +1 -1
  24. package/native/cmd/ttsc-typia/build.go +2 -0
  25. package/native/cmd/ttsc-typia/dynamic_key_tags_transform_test.go +1 -1
  26. package/native/cmd/ttsc-typia/llm_evaluation_accepts_property_probability_test.go +27 -0
  27. package/native/cmd/ttsc-typia/llm_evaluation_accepts_unselected_source_probability_test.go +26 -0
  28. package/native/cmd/ttsc-typia/llm_evaluation_complete_object_shape_test.go +96 -0
  29. package/native/cmd/ttsc-typia/llm_evaluation_ignores_declaration_probability_without_call_test.go +18 -0
  30. package/native/cmd/ttsc-typia/llm_evaluation_plan_emission_transform_test.go +90 -0
  31. package/native/cmd/ttsc-typia/llm_evaluation_program_scan_dependencies_test.go +69 -0
  32. package/native/cmd/ttsc-typia/llm_evaluation_rejects_alias_comment_test.go +44 -0
  33. package/native/cmd/ttsc-typia/llm_evaluation_rejects_alias_refinement_test.go +45 -0
  34. package/native/cmd/ttsc-typia/llm_evaluation_rejects_computed_method_probability_test.go +30 -0
  35. package/native/cmd/ttsc-typia/llm_evaluation_rejects_imported_declaration_probability_test.go +48 -0
  36. package/native/cmd/ttsc-typia/llm_evaluation_rejects_invalid_probability_test.go +199 -0
  37. package/native/cmd/ttsc-typia/llm_evaluation_rejects_refinements_test.go +94 -0
  38. package/native/cmd/ttsc-typia/llm_evaluation_rejects_undecidable_types_test.go +232 -0
  39. package/native/cmd/ttsc-typia/metadata_type_tag_sole_malformed_diagnostic_test.go +94 -0
  40. package/native/cmd/ttsc-typia/template_literal_type_tags_transform_test.go +3 -2
  41. package/native/cmd/ttsc-typia/transform.go +2 -0
  42. package/native/cmd/ttsc-typia/transform_helpers_test.go +17 -3
  43. package/native/core/context/ITypiaContext.go +4 -0
  44. package/native/core/factories/IdentifierFactory.go +10 -0
  45. package/native/core/factories/LiteralFactory.go +16 -0
  46. package/native/core/factories/MetadataCommentTagFactory.go +12 -10
  47. package/native/core/factories/MetadataTypeTagFactory.go +97 -24
  48. package/native/core/factories/MetadataTypeTagSchemaFactory.go +5 -0
  49. package/native/core/factories/internal/metadata/IMetadataIteratorProps.go +6 -2
  50. package/native/core/factories/internal/metadata/emplace_metadata_object.go +49 -15
  51. package/native/core/factories/literal_factory_null_survives_objects_test.go +43 -0
  52. package/native/core/factories/metadata_comment_tag_factory_string_length_helpers_test.go +55 -0
  53. package/native/core/factories/metadata_type_tag_factory_reports_all_invalid_candidates_test.go +73 -0
  54. package/native/core/programmers/llm/LlmApplicationProgrammer.go +1 -0
  55. package/native/core/programmers/llm/LlmEvaluationProgrammer.go +555 -0
  56. package/native/core/programmers/llm/LlmParametersProgrammer.go +6 -5
  57. package/native/core/programmers/llm/LlmReferenceDescription.go +113 -0
  58. package/native/core/programmers/llm/llm_reference_description_test.go +134 -0
  59. package/native/core/schemas/metadata/MetadataDependency.go +9 -0
  60. package/native/transform/CallExpressionTransformer.go +1 -0
  61. package/native/transform/FileTransformer.go +5 -0
  62. package/native/transform/features/llm/LlmEvaluationProbabilityDeclarations.go +94 -0
  63. package/native/transform/features/llm/LlmEvaluationProbabilityDeclarations_test.go +50 -0
  64. package/native/transform/features/llm/LlmEvaluationTransformer.go +59 -0
  65. package/native/transform/features/llm/LlmSchemaTransformer.go +14 -11
  66. package/native/transform/features/llm/llm_transformer_entry_coverage_test.go +29 -27
  67. package/package.json +3 -3
  68. package/src/internal/_createLlmEvaluation.ts +678 -0
  69. package/src/internal/_stringLengthGte.ts +6 -0
  70. package/src/internal/_stringLengthLte.ts +6 -0
  71. package/src/llm.ts +64 -0
  72. package/src/re-exports.ts +1 -0
package/README.md CHANGED
@@ -28,6 +28,8 @@ export namespace llm {
28
28
  // collection of function calling schemas + validators/parsers
29
29
  export function application<Class>(): ILlmApplication<Class>;
30
30
  export function structuredOutput<P>(): ILlmStructuredOutput;
31
+ // typed questions for evaluation models + checked answer decoder
32
+ export function evaluation<T>(): ILlmEvaluation<T>;
31
33
  // lenient json parser + type coercion
32
34
  export function parse<T>(str: string): T;
33
35
  }
@@ -146,6 +148,7 @@ Check out the document in the [website](https://typia.io/docs/):
146
148
  - LLM Function Calling Harness
147
149
  - [`application()` function](https://typia.io/docs/llm/application/)
148
150
  - [`structuredOutput()` function](https://typia.io/docs/llm/structuredOutput/)
151
+ - [`evaluation()` function](https://typia.io/docs/llm/evaluation/)
149
152
  - [`HttpLlm` module](https://typia.io/docs/llm/http/)
150
153
  - [`LlmJson` module](https://typia.io/docs/llm/json/)
151
154
  - Protocol Buffer
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,486 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._createLlmEvaluation = void 0;
4
+ const _accessExpressionAsString_1 = require("./_accessExpressionAsString");
5
+ /**
6
+ * Creates the `ILlmEvaluation` of `typia.llm.evaluation<T>()` from its plan.
7
+ *
8
+ * Both the question map and the decoder derive their keys from here, so the
9
+ * readable path encoding has a single owner.
10
+ *
11
+ * @internal
12
+ */
13
+ const _createLlmEvaluation = (plan) => {
14
+ const questions = {};
15
+ for (const leaf of plan) {
16
+ if (leaf.kind === "set")
17
+ for (const member of leaf.members)
18
+ assign(questions, key([...leaf.path, member.value]), {
19
+ type: "boolean",
20
+ instructions: setInstructions(leaf, member),
21
+ });
22
+ else
23
+ assign(questions, key(leaf.path), question(leaf));
24
+ }
25
+ return {
26
+ questions,
27
+ decode: (answers, rounding) => decode(plan, answers, rounding),
28
+ };
29
+ };
30
+ exports._createLlmEvaluation = _createLlmEvaluation;
31
+ /* -----------------------------------------------------------
32
+ QUESTIONS
33
+ ----------------------------------------------------------- */
34
+ /**
35
+ * Encodes a property path as a question key, like `refund.requested`.
36
+ *
37
+ * Every segment after the first uses typia's accessor notation, so the key is
38
+ * the validation path without its `$input` root. The first segment is quoted
39
+ * when it is not an identifier, and always when it is `__proto__`, so no key
40
+ * can collide with another or reach an object's prototype.
41
+ */
42
+ const key = (path) => {
43
+ const head = path[0];
44
+ const postfix = (0, _accessExpressionAsString_1._accessExpressionAsString)(head);
45
+ const first = head === "__proto__"
46
+ ? `[${JSON.stringify(head)}]`
47
+ : postfix.startsWith(".")
48
+ ? head
49
+ : postfix;
50
+ return first + path.slice(1).map(_accessExpressionAsString_1._accessExpressionAsString).join("");
51
+ };
52
+ const question = (leaf) => {
53
+ var _a;
54
+ if (leaf.kind === "boolean")
55
+ return { type: "boolean", instructions: leaf.instructions };
56
+ else if (leaf.kind === "choice") {
57
+ const criteria = {};
58
+ for (const option of leaf.options)
59
+ assign(criteria, option.value, (_a = option.description) !== null && _a !== void 0 ? _a : null);
60
+ return { type: "choice", instructions: leaf.instructions, criteria };
61
+ }
62
+ return {
63
+ type: "score",
64
+ instructions: leaf.instructions,
65
+ // the transform rejects fewer than two levels
66
+ criteria: leaf.levels.map((level) => { var _a; return (_a = level.description) !== null && _a !== void 0 ? _a : String(level.value); }),
67
+ };
68
+ };
69
+ const setInstructions = (leaf, member) => [
70
+ leaf.instructions,
71
+ "",
72
+ `Does the option ${JSON.stringify(member.value)} apply?`,
73
+ ...(member.description !== undefined ? [member.description] : []),
74
+ ].join("\n");
75
+ /* -----------------------------------------------------------
76
+ VALIDATION
77
+ ----------------------------------------------------------- */
78
+ const decode = (plan, answers, rounding) => {
79
+ const precision = (() => {
80
+ try {
81
+ return readPrecision(rounding);
82
+ }
83
+ catch (_a) {
84
+ // A trapping rounding object is an invalid declaration.
85
+ return null;
86
+ }
87
+ })();
88
+ if (precision === null)
89
+ return {
90
+ success: false,
91
+ data: answers,
92
+ errors: [
93
+ {
94
+ path: "$input",
95
+ expected: "rounding decimals in [0, 15]",
96
+ value: rounding,
97
+ description: "Evaluation rounding decimals must be integers between 0 and 15.",
98
+ },
99
+ ],
100
+ };
101
+ const map = object(answers);
102
+ if (map === null)
103
+ return {
104
+ success: false,
105
+ data: answers,
106
+ errors: [
107
+ {
108
+ path: "$input",
109
+ expected: "Record<string, ILlmEvaluation answer>",
110
+ value: answers,
111
+ },
112
+ ],
113
+ };
114
+ const errors = [];
115
+ const expected = new Set();
116
+ const output = {};
117
+ const read = (id) => {
118
+ expected.add(id);
119
+ try {
120
+ return Object.prototype.hasOwnProperty.call(map, id)
121
+ ? map[id]
122
+ : undefined;
123
+ }
124
+ catch (_a) {
125
+ // The decision reader reports the inaccessible answer on its own path.
126
+ return undefined;
127
+ }
128
+ };
129
+ for (const leaf of plan) {
130
+ const path = accessor(leaf.path);
131
+ if (leaf.kind === "set") {
132
+ const values = [];
133
+ for (const member of leaf.members) {
134
+ const memberPath = [
135
+ path,
136
+ (0, _accessExpressionAsString_1._accessExpressionAsString)(member.value),
137
+ ].join("");
138
+ const answer = read(key([...leaf.path, member.value]));
139
+ const probability = inspect(memberPath, answer, errors, () => booleanProbability(answer, memberPath, errors));
140
+ if (probability !== null && probability >= member.threshold)
141
+ values.push(member.value);
142
+ }
143
+ place(output, leaf.path, values);
144
+ continue;
145
+ }
146
+ const answer = read(key(leaf.path));
147
+ if (leaf.kind === "boolean") {
148
+ const probability = inspect(path, answer, errors, () => booleanProbability(answer, path, errors));
149
+ if (probability !== null)
150
+ place(output, leaf.path, probability >= leaf.threshold);
151
+ }
152
+ else if (leaf.kind === "choice") {
153
+ const value = inspect(path, answer, errors, () => choice(leaf, answer, path, errors, precision));
154
+ if (value !== null)
155
+ place(output, leaf.path, value);
156
+ }
157
+ else {
158
+ const value = inspect(path, answer, errors, () => score(leaf, answer, path, errors, precision));
159
+ if (value !== null)
160
+ place(output, leaf.path, value);
161
+ }
162
+ }
163
+ let received;
164
+ try {
165
+ received = Object.keys(map);
166
+ }
167
+ catch (_a) {
168
+ errors.push({
169
+ path: "$input",
170
+ expected: "readable evaluation answer map",
171
+ value: answers,
172
+ description: "Evaluation answer keys could not be inspected.",
173
+ });
174
+ received = [];
175
+ }
176
+ for (const id of received)
177
+ if (expected.has(id) === false)
178
+ try {
179
+ errors.push({
180
+ path: `$input${(0, _accessExpressionAsString_1._accessExpressionAsString)(id)}`,
181
+ expected: "undefined",
182
+ value: map[id],
183
+ description: "The answer does not belong to any question.",
184
+ });
185
+ }
186
+ catch (_b) {
187
+ errors.push({
188
+ path: `$input${(0, _accessExpressionAsString_1._accessExpressionAsString)(id)}`,
189
+ expected: "readable evaluation answer",
190
+ value: undefined,
191
+ description: "The extra answer could not be inspected.",
192
+ });
193
+ }
194
+ return errors.length === 0
195
+ ? { success: true, data: output }
196
+ : { success: false, data: answers, errors };
197
+ };
198
+ /** Contain exceptions from getters and proxies at the decision path. */
199
+ const inspect = (path, answer, errors, read) => {
200
+ try {
201
+ return read();
202
+ }
203
+ catch (_a) {
204
+ errors.push({
205
+ path,
206
+ expected: "readable evaluation answer",
207
+ value: answer,
208
+ description: "The answer could not be inspected.",
209
+ });
210
+ return null;
211
+ }
212
+ };
213
+ const booleanProbability = (answer, path, errors) => {
214
+ const record = object(answer);
215
+ const type = record === null || record === void 0 ? void 0 : record.type;
216
+ const probability = record === null
217
+ ? undefined
218
+ : type === "boolean"
219
+ ? record.probability
220
+ : type === "noul"
221
+ ? record.noul
222
+ : undefined;
223
+ if (isProbability(probability))
224
+ return probability;
225
+ errors.push({
226
+ path,
227
+ expected: '{ type: "boolean"; probability: number } | { type: "noul"; noul: number }',
228
+ value: answer,
229
+ description: record === null
230
+ ? "Missing boolean answer."
231
+ : type !== "boolean" && type !== "noul"
232
+ ? `Answer type must be "boolean" or "noul", but got ${label(type)}.`
233
+ : "Boolean answer needs a probability in [0, 1].",
234
+ });
235
+ return null;
236
+ };
237
+ const choice = (leaf, answer, path, errors, precision) => {
238
+ const expected = `{ type: "choice"; choice: ${leaf.options
239
+ .map((option) => JSON.stringify(option.value))
240
+ .join(" | ")}; probabilities?: Record<string, number> }`;
241
+ const record = object(answer);
242
+ const type = record === null || record === void 0 ? void 0 : record.type;
243
+ const selected = type === "choice" ? record === null || record === void 0 ? void 0 : record.choice : undefined;
244
+ const option = record !== null && type === "choice"
245
+ ? leaf.options.find((o) => o.value === selected)
246
+ : undefined;
247
+ if (record === null || option === undefined) {
248
+ errors.push({
249
+ path,
250
+ expected,
251
+ value: answer,
252
+ description: record === null
253
+ ? "Missing choice answer."
254
+ : type !== "choice"
255
+ ? `Answer type must be "choice", but got ${label(type)}.`
256
+ : "Choice answer must select one of the declared options.",
257
+ });
258
+ return null;
259
+ }
260
+ const probabilities = distribution(record.probabilities, leaf.options.map((o) => o.value), precision.probability);
261
+ if (probabilities === null) {
262
+ errors.push({
263
+ path,
264
+ expected,
265
+ value: answer,
266
+ description: "Choice probabilities must contain every declared option exactly once, use numbers in [0, 1], and sum to 1.",
267
+ });
268
+ return null;
269
+ }
270
+ if (probabilities !== undefined) {
271
+ const selected = own(probabilities, option.value);
272
+ if (Object.values(probabilities).some((probability) => probability > selected + PROBABILITY_TOLERANCE)) {
273
+ errors.push({
274
+ path,
275
+ expected,
276
+ value: answer,
277
+ description: "Choice answer must select an option with maximum probability.",
278
+ });
279
+ return null;
280
+ }
281
+ }
282
+ return accept(option, option.value, own(probabilities, option.value), path, answer, expected, errors)
283
+ ? option.value
284
+ : null;
285
+ };
286
+ const score = (leaf, answer, path, errors, precision) => {
287
+ const last = leaf.levels.length - 1;
288
+ const expected = `{ type: "score"; score: number; probabilities?: Record<string, number> }`;
289
+ const record = object(answer);
290
+ const type = record === null || record === void 0 ? void 0 : record.type;
291
+ const scored = type === "score" ? record === null || record === void 0 ? void 0 : record.score : undefined;
292
+ if (record === null ||
293
+ type !== "score" ||
294
+ typeof scored !== "number" ||
295
+ Number.isFinite(scored) === false ||
296
+ scored < 0 ||
297
+ scored > last) {
298
+ errors.push({
299
+ path,
300
+ expected,
301
+ value: answer,
302
+ description: record === null
303
+ ? "Missing score answer."
304
+ : type !== "score"
305
+ ? `Answer type must be "score", but got ${label(type)}.`
306
+ : `Score answer needs a score in [0, ${last}].`,
307
+ });
308
+ return null;
309
+ }
310
+ const probabilities = distribution(record.probabilities, leaf.levels.map((_, i) => String(i)), precision.probability);
311
+ if (probabilities === null) {
312
+ errors.push({
313
+ path,
314
+ expected,
315
+ value: answer,
316
+ description: "Score probabilities must contain every level index exactly once, use numbers in [0, 1], and sum to 1.",
317
+ });
318
+ return null;
319
+ }
320
+ if (probabilities !== undefined) {
321
+ const mean = leaf.levels.reduce((total, _, index) => total + index * own(probabilities, String(index)), 0);
322
+ const meanRoundingError = leaf.levels.reduce((total, _, index) => total + index * precision.probability, 0);
323
+ if (Math.abs(mean - scored) >
324
+ PROBABILITY_TOLERANCE + meanRoundingError + precision.score) {
325
+ errors.push({
326
+ path,
327
+ expected,
328
+ value: answer,
329
+ description: "Score must equal the probability-weighted mean of its distribution.",
330
+ });
331
+ return null;
332
+ }
333
+ }
334
+ // the most probable level when a distribution exists, where a tie resolves
335
+ // to the lower level; otherwise the level nearest to the fractional score,
336
+ // where a half rounds up
337
+ let index = Math.round(scored);
338
+ if (probabilities !== undefined && Object.keys(probabilities).length !== 0) {
339
+ index = -1;
340
+ leaf.levels.forEach((_, i) => {
341
+ const p = own(probabilities, String(i));
342
+ if (p !== undefined &&
343
+ (index === -1 || p > own(probabilities, String(index))))
344
+ index = i;
345
+ });
346
+ }
347
+ const level = leaf.levels[index];
348
+ return accept(level, level.value, own(probabilities, String(index)), path, answer, expected, errors)
349
+ ? level.value
350
+ : null;
351
+ };
352
+ /** Enforces the acceptance minimum of the selected member, if any. */
353
+ const accept = (member, value, probability, path, answer, expected, errors) => {
354
+ if (member.minimum === undefined)
355
+ return true;
356
+ if (probability === undefined) {
357
+ errors.push({
358
+ path,
359
+ expected,
360
+ value: answer,
361
+ description: `${JSON.stringify(value)} requires probability >= ${member.minimum}, but the answer has no probability for it.`,
362
+ });
363
+ return false;
364
+ }
365
+ if (probability < member.minimum) {
366
+ errors.push({
367
+ path,
368
+ expected,
369
+ value: answer,
370
+ description: `${JSON.stringify(value)} has probability ${probability} < ${member.minimum}.`,
371
+ });
372
+ return false;
373
+ }
374
+ return true;
375
+ };
376
+ /**
377
+ * Reads optional `probabilities`: `undefined` when absent, `null` when
378
+ * malformed.
379
+ */
380
+ const distribution = (input, keys, roundingError) => {
381
+ if (input === undefined)
382
+ return undefined;
383
+ const record = object(input);
384
+ if (record === null)
385
+ return null;
386
+ if (Object.keys(record).length !== keys.length)
387
+ return null;
388
+ const output = {};
389
+ for (const key of keys) {
390
+ if (Object.prototype.hasOwnProperty.call(record, key) === false)
391
+ return null;
392
+ const probability = record[key];
393
+ if (isProbability(probability) === false)
394
+ return null;
395
+ assign(output, key, probability);
396
+ }
397
+ if (Math.abs(Object.values(output).reduce((sum, probability) => sum + probability, 0) -
398
+ 1) >
399
+ PROBABILITY_TOLERANCE + keys.length * roundingError)
400
+ return null;
401
+ return output;
402
+ };
403
+ /** AI SDK's absolute tolerance for probability sums and derived values. */
404
+ const PROBABILITY_TOLERANCE = 1e-6;
405
+ /** AI SDK's declared decimal-precision rule, without an AI SDK dependency. */
406
+ const readPrecision = (rounding) => {
407
+ if (rounding === undefined)
408
+ return { probability: 0, score: 0 };
409
+ if (typeof rounding !== "object" ||
410
+ rounding === null ||
411
+ Array.isArray(rounding))
412
+ return null;
413
+ const record = rounding;
414
+ const decimalError = (value) => value === undefined
415
+ ? 0
416
+ : typeof value === "number" &&
417
+ Number.isInteger(value) &&
418
+ value >= 0 &&
419
+ value <= 15
420
+ ? 0.5 * 10 ** -value
421
+ : null;
422
+ const probability = decimalError(record.probabilityDecimals);
423
+ const score = decimalError(record.scoreDecimals);
424
+ return probability === null || score === null ? null : { probability, score };
425
+ };
426
+ /* -----------------------------------------------------------
427
+ HELPERS
428
+ ----------------------------------------------------------- */
429
+ /**
430
+ * Renders an untrusted answer `type` for a message; unlike `JSON.stringify`, it
431
+ * never throws on a bigint or circular value.
432
+ */
433
+ const label = (value) => typeof value === "string" ? JSON.stringify(value) : typeof value;
434
+ const accessor = (path) => "$input" + path.map(_accessExpressionAsString_1._accessExpressionAsString).join("");
435
+ /** Match AI SDK's JSON-record boundary, including null-prototype dictionaries. */
436
+ const object = (input) => {
437
+ if (typeof input !== "object" || input === null)
438
+ return null;
439
+ try {
440
+ if (Array.isArray(input))
441
+ return null;
442
+ const prototype = Object.getPrototypeOf(input);
443
+ return prototype === Object.prototype || prototype === null
444
+ ? input
445
+ : null;
446
+ }
447
+ catch (_a) {
448
+ // A revoked or trapping proxy is not a usable answer record.
449
+ return null;
450
+ }
451
+ };
452
+ /**
453
+ * Reads an own probability, so an option named like an `Object.prototype`
454
+ * member (`constructor`, `toString`, ...) never inherits a value.
455
+ */
456
+ const own = (probabilities, key) => probabilities !== undefined &&
457
+ Object.prototype.hasOwnProperty.call(probabilities, key)
458
+ ? probabilities[key]
459
+ : undefined;
460
+ const isProbability = (value) => typeof value === "number" &&
461
+ Number.isFinite(value) &&
462
+ value >= 0 &&
463
+ value <= 1;
464
+ /** Writes the leaf value, creating the intermediate objects of its path. */
465
+ const place = (output, path, value) => {
466
+ let target = output;
467
+ path.slice(0, -1).forEach((name) => {
468
+ if (Object.prototype.hasOwnProperty.call(target, name) === false)
469
+ assign(target, name, {});
470
+ target = target[name];
471
+ });
472
+ assign(target, path[path.length - 1], value);
473
+ };
474
+ /** Own-property assignment that cannot reach the prototype via `__proto__`. */
475
+ const assign = (target, name, value) => {
476
+ if (name === "__proto__")
477
+ Object.defineProperty(target, name, {
478
+ value,
479
+ enumerable: true,
480
+ writable: true,
481
+ configurable: true,
482
+ });
483
+ else
484
+ target[name] = value;
485
+ };
486
+ //# sourceMappingURL=_createLlmEvaluation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_createLlmEvaluation.js","sourceRoot":"","sources":["../../src/internal/_createLlmEvaluation.ts"],"names":[],"mappings":"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"}