langfx.js 0.1.0-alpha.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 (104) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +11 -0
  3. package/README.md +107 -0
  4. package/dist/agentic.d.ts +128 -0
  5. package/dist/agentic.js +265 -0
  6. package/dist/agentic.js.map +1 -0
  7. package/dist/cache.d.ts +32 -0
  8. package/dist/cache.js +135 -0
  9. package/dist/cache.js.map +1 -0
  10. package/dist/cancellation.d.ts +9 -0
  11. package/dist/cancellation.js +70 -0
  12. package/dist/cancellation.js.map +1 -0
  13. package/dist/errors.d.ts +40 -0
  14. package/dist/errors.js +44 -0
  15. package/dist/errors.js.map +1 -0
  16. package/dist/index.d.ts +18 -0
  17. package/dist/index.js +15 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/json-stream.d.ts +73 -0
  20. package/dist/json-stream.js +222 -0
  21. package/dist/json-stream.js.map +1 -0
  22. package/dist/langfunc.d.ts +20 -0
  23. package/dist/langfunc.js +28 -0
  24. package/dist/langfunc.js.map +1 -0
  25. package/dist/language-model.d.ts +78 -0
  26. package/dist/language-model.js +218 -0
  27. package/dist/language-model.js.map +1 -0
  28. package/dist/llms/anthropic.d.ts +30 -0
  29. package/dist/llms/anthropic.js +365 -0
  30. package/dist/llms/anthropic.js.map +1 -0
  31. package/dist/llms/gemini.d.ts +34 -0
  32. package/dist/llms/gemini.js +380 -0
  33. package/dist/llms/gemini.js.map +1 -0
  34. package/dist/llms/images.d.ts +10 -0
  35. package/dist/llms/images.js +43 -0
  36. package/dist/llms/images.js.map +1 -0
  37. package/dist/llms/index.d.ts +7 -0
  38. package/dist/llms/index.js +4 -0
  39. package/dist/llms/index.js.map +1 -0
  40. package/dist/llms/openai.d.ts +30 -0
  41. package/dist/llms/openai.js +398 -0
  42. package/dist/llms/openai.js.map +1 -0
  43. package/dist/llms/transport.d.ts +4 -0
  44. package/dist/llms/transport.js +90 -0
  45. package/dist/llms/transport.js.map +1 -0
  46. package/dist/mapping.d.ts +71 -0
  47. package/dist/mapping.js +190 -0
  48. package/dist/mapping.js.map +1 -0
  49. package/dist/message.d.ts +56 -0
  50. package/dist/message.js +86 -0
  51. package/dist/message.js.map +1 -0
  52. package/dist/python-preview.d.ts +24 -0
  53. package/dist/python-preview.js +368 -0
  54. package/dist/python-preview.js.map +1 -0
  55. package/dist/python-stream.d.ts +15 -0
  56. package/dist/python-stream.js +29 -0
  57. package/dist/python-stream.js.map +1 -0
  58. package/dist/python.d.ts +85 -0
  59. package/dist/python.js +728 -0
  60. package/dist/python.js.map +1 -0
  61. package/dist/query.d.ts +31 -0
  62. package/dist/query.js +151 -0
  63. package/dist/query.js.map +1 -0
  64. package/dist/retry.d.ts +12 -0
  65. package/dist/retry.js +56 -0
  66. package/dist/retry.js.map +1 -0
  67. package/dist/schema/zod.d.ts +4 -0
  68. package/dist/schema/zod.js +7 -0
  69. package/dist/schema/zod.js.map +1 -0
  70. package/dist/schema.d.ts +10 -0
  71. package/dist/schema.js +7 -0
  72. package/dist/schema.js.map +1 -0
  73. package/dist/template.d.ts +14 -0
  74. package/dist/template.js +75 -0
  75. package/dist/template.js.map +1 -0
  76. package/dist/testing/index.d.ts +33 -0
  77. package/dist/testing/index.js +56 -0
  78. package/dist/testing/index.js.map +1 -0
  79. package/dist/tool-call.d.ts +27 -0
  80. package/dist/tool-call.js +16 -0
  81. package/dist/tool-call.js.map +1 -0
  82. package/dist/tools.d.ts +43 -0
  83. package/dist/tools.js +155 -0
  84. package/dist/tools.js.map +1 -0
  85. package/docs/ANTHROPIC.md +43 -0
  86. package/docs/API_DESIGN.md +200 -0
  87. package/docs/GEMINI.md +68 -0
  88. package/docs/IMPLEMENTATION_STATUS.md +77 -0
  89. package/docs/LIVE_TESTING.md +24 -0
  90. package/docs/MAPPING.md +54 -0
  91. package/docs/OPENAI.md +40 -0
  92. package/docs/PORTING_PLAN.md +135 -0
  93. package/docs/PROMPT_PARITY.md +379 -0
  94. package/docs/PYTHON_PROTOCOL.md +109 -0
  95. package/docs/PYTHON_PROTOCOL_PARITY.md +964 -0
  96. package/docs/PYTHON_SCHEMA_EVALUATION.md +93 -0
  97. package/docs/PYTHON_STREAMING_PARITY.md +59 -0
  98. package/docs/RELEASING.md +25 -0
  99. package/docs/RETRIES_AND_CACHE.md +56 -0
  100. package/docs/SESSION_EVENTS.md +40 -0
  101. package/docs/SOURCE_AUDIT.md +133 -0
  102. package/docs/STREAMING.md +76 -0
  103. package/docs/TOOL_STREAMING.md +31 -0
  104. package/package.json +95 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../src/python.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { MappingExample } from './mapping.js';
2
+ import type { StructuredStreamEvent } from './json-stream.js';
3
+ import { Message } from './message.js';
4
+ import type { LanguageModel, CallOptions, StreamChunk } from './language-model.js';
5
+ import type { SchemaLike } from './schema.js';
6
+ import type { Prompt, Variables } from './template.js';
7
+ export interface QueryOptions extends CallOptions {
8
+ readonly lm: LanguageModel;
9
+ readonly examples?: readonly MappingExample[];
10
+ readonly vars?: Variables;
11
+ readonly systemMessage?: Prompt;
12
+ readonly returnsMessage?: boolean;
13
+ readonly nativeStructuredOutput?: boolean;
14
+ readonly protocol?: 'json' | 'python';
15
+ }
16
+ export type QueryValue<T, O extends {
17
+ readonly returnsMessage?: boolean;
18
+ }> = 'returnsMessage' extends keyof O ? O['returnsMessage'] extends true ? Message<T> : true extends O['returnsMessage'] ? T | Message<T> : T : T;
19
+ export declare function query<T, O extends QueryOptions>(prompt: Prompt, schema: SchemaLike<T>, options: O): Promise<QueryValue<T, O>>;
20
+ export declare function query<O extends QueryOptions>(prompt: Prompt, options: O): Promise<QueryValue<string, O>>;
21
+ /** Render without calling a model. Literal Messages bypass template parsing. */
22
+ export declare function queryPrompt(prompt: Prompt, options?: Pick<QueryOptions, 'vars' | 'systemMessage'>): Message;
23
+ export interface StructuredQueryStreamOptions extends Omit<QueryOptions, 'returnsMessage'> {
24
+ readonly returnsMessage?: never;
25
+ /** UTF-16 code units across the complete output; default 1 MiB. */
26
+ readonly maxChars?: number;
27
+ /** Maximum nesting depth; default 64. Python accepts limits up to 64. */
28
+ readonly maxDepth?: number;
29
+ }
30
+ export declare function queryStream<T>(prompt: Prompt, schema: SchemaLike<T>, options: StructuredQueryStreamOptions): AsyncIterable<StructuredStreamEvent<T>>;
31
+ export declare function queryStream(prompt: Prompt, options: QueryOptions): AsyncIterable<StreamChunk>;
package/dist/query.js ADDED
@@ -0,0 +1,151 @@
1
+ import { LfQuery, failMapping } from './mapping.js';
2
+ import { checkCancelled } from './cancellation.js';
3
+ import { PythonStreamParser } from './python-stream.js';
4
+ import { parse as parsePython } from './python.js';
5
+ import { JsonStreamParser } from './json-stream.js';
6
+ import { CancelledError, OutputValidationError } from './errors.js';
7
+ import { AIMessage, ComplexMessage, Message, SystemMessage } from './message.js';
8
+ import { resolveSchema } from './schema.js';
9
+ import { renderPrompt } from './template.js';
10
+ export async function query(prompt, schemaOrOptions, options) {
11
+ const schema = options ? resolveSchema(schemaOrOptions) : undefined;
12
+ const config = options ?? schemaOrOptions;
13
+ if (config.protocol === 'python' && (!schema || config.nativeStructuredOutput))
14
+ throw new TypeError('Python protocol requires a schema and cannot use nativeStructuredOutput.');
15
+ if (!config.lm)
16
+ throw new TypeError('query requires a LanguageModel via { lm }.');
17
+ if (schema && !config.nativeStructuredOutput) {
18
+ const mapping = queryMapping(prompt, schema, config);
19
+ const response = await mapping.call(callOptions(config));
20
+ return config.returnsMessage ? response : response.result;
21
+ }
22
+ const { request, modelOptions } = prepareQuery(prompt, config, schema);
23
+ const response = await config.lm.call(request, modelOptions);
24
+ let value = response.text;
25
+ if (schema) {
26
+ try {
27
+ value = schema.parse(JSON.parse(response.text));
28
+ }
29
+ catch (cause) {
30
+ return failMapping(config.lm, response, cause);
31
+ }
32
+ }
33
+ return config.returnsMessage
34
+ ? new AIMessage(response.parts, { result: value, source: response, metadata: response.metadata })
35
+ : value;
36
+ }
37
+ /** Render without calling a model. Literal Messages bypass template parsing. */
38
+ export function queryPrompt(prompt, options = {}) {
39
+ const rendered = renderPrompt(prompt, options.vars);
40
+ if (options.systemMessage === undefined)
41
+ return rendered;
42
+ const system = renderPrompt(options.systemMessage, options.vars);
43
+ return new ComplexMessage([new SystemMessage(system.parts), ...rendered.sections]);
44
+ }
45
+ export function queryStream(prompt, schemaOrOptions, options) {
46
+ if (options) {
47
+ const python = (options.protocol ?? (options.nativeStructuredOutput ? 'json' : 'python')) === 'python';
48
+ if (options.returnsMessage !== undefined)
49
+ throw new TypeError('Structured queryStream returns events, not messages.');
50
+ const schema = resolveSchema(schemaOrOptions);
51
+ const { maxChars, maxDepth, ...config } = options;
52
+ const parser = python ? new PythonStreamParser(maxChars, maxDepth) : new JsonStreamParser(maxChars, maxDepth);
53
+ const { request, modelOptions } = prepareQuery(prompt, config, schema);
54
+ return structuredStream(config.lm.stream(request, modelOptions), parser, value => python ? parsePython(schema, value, { ...(maxChars !== undefined ? { maxChars } : {}), ...(maxDepth !== undefined ? { maxDepth } : {}) }) : schema.parse(value), config.signal);
55
+ }
56
+ const config = schemaOrOptions;
57
+ if (config.protocol === 'python')
58
+ throw new TypeError('Python protocol requires a structured query.');
59
+ if (config.examples?.length)
60
+ throw new TypeError('examples require prompt-based structured querying.');
61
+ if (config.returnsMessage || config.nativeStructuredOutput)
62
+ throw new TypeError('Text queryStream does not accept returnsMessage or nativeStructuredOutput.');
63
+ return config.lm.stream(queryPrompt(prompt, config), callOptions(config));
64
+ }
65
+ async function* structuredStream(stream, parser, validate, signal) {
66
+ const iterator = stream[Symbol.asyncIterator]();
67
+ let terminal;
68
+ let parsing = false;
69
+ try {
70
+ while (true) {
71
+ checkCancelled(signal);
72
+ const next = await iterator.next();
73
+ if (next.done)
74
+ throw new Error('Model stream ended without a final chunk.');
75
+ checkCancelled(signal);
76
+ parsing = true;
77
+ for (const event of parser.feed(next.value.delta.text)) {
78
+ checkCancelled(signal);
79
+ yield event;
80
+ }
81
+ if (next.value.isFinal) {
82
+ for (const event of parser.finish()) {
83
+ checkCancelled(signal);
84
+ yield event;
85
+ }
86
+ checkCancelled(signal);
87
+ const result = validate(parser.value);
88
+ terminal = { type: 'generationComplete', result, ...(next.value.usage ? { usage: next.value.usage } : {}), ...(next.value.finishReason !== undefined ? { finishReason: next.value.finishReason } : {}) };
89
+ break;
90
+ }
91
+ parsing = false;
92
+ }
93
+ }
94
+ catch (error) {
95
+ terminal = error instanceof CancelledError ? { type: 'cancelled', error }
96
+ : parsing ? { type: 'parsingFailed', error: new OutputValidationError('Stream output did not satisfy the response schema.', { cause: error }) }
97
+ : { type: 'generationFailed', error };
98
+ }
99
+ finally {
100
+ // Close before publishing a terminal event, even if the consumer never resumes.
101
+ try {
102
+ await iterator.return?.();
103
+ }
104
+ catch (error) {
105
+ if (!terminal || terminal.type === 'generationComplete')
106
+ terminal = { type: 'generationFailed', error };
107
+ }
108
+ }
109
+ if (terminal?.type === 'generationComplete' && signal?.aborted) {
110
+ try {
111
+ checkCancelled(signal);
112
+ }
113
+ catch (error) {
114
+ terminal = { type: 'cancelled', error };
115
+ }
116
+ }
117
+ if (terminal)
118
+ yield terminal;
119
+ }
120
+ function prepareQuery(prompt, config, schema) {
121
+ if (config.protocol === 'python' && (!schema || config.nativeStructuredOutput))
122
+ throw new TypeError('Python protocol requires a schema and cannot use nativeStructuredOutput.');
123
+ if (!config.lm)
124
+ throw new TypeError('query requires a LanguageModel via { lm }.');
125
+ if (config.examples?.length && (!schema || config.nativeStructuredOutput))
126
+ throw new TypeError('examples require prompt-based structured querying.');
127
+ const modelOptions = callOptions(config);
128
+ if (schema && !config.nativeStructuredOutput) {
129
+ const mapping = queryMapping(prompt, schema, config);
130
+ return { request: mapping.transformInput(mapping.render()), modelOptions };
131
+ }
132
+ const request = queryPrompt(prompt, config);
133
+ if (schema)
134
+ modelOptions.responseSchema = resolveSchema(schema).jsonSchema;
135
+ else if (config.nativeStructuredOutput)
136
+ throw new TypeError('nativeStructuredOutput requires a schema.');
137
+ return { request, modelOptions };
138
+ }
139
+ function callOptions(options) {
140
+ const { protocol: _protocol, lm: _lm, vars: _vars, systemMessage: _system, returnsMessage: _return, nativeStructuredOutput: _native, examples: _examples, ...rest } = options;
141
+ return { ...rest };
142
+ }
143
+ function queryMapping(prompt, schema, config) {
144
+ return new LfQuery({ input: prompt, schema, lm: config.lm,
145
+ ...(config.protocol ? { protocol: config.protocol } : {}),
146
+ ...(config.vars ? { vars: config.vars } : {}),
147
+ ...(config.systemMessage !== undefined ? { systemMessage: config.systemMessage } : {}),
148
+ ...(config.examples ? { examples: config.examples } : {}),
149
+ });
150
+ }
151
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface RetryOptions {
2
+ /** Total attempts including the initial request. Default 1 (opt in). */
3
+ readonly maxAttempts?: number;
4
+ /** Seconds, or a uniformly sampled [min, max] range. Default [1, 2]. */
5
+ readonly retryInterval?: number | readonly [number, number];
6
+ readonly exponentialBackoff?: boolean;
7
+ /** Seconds; default 30. */
8
+ readonly maxRetryInterval?: number;
9
+ }
10
+ export declare function retryPolicy(options: RetryOptions): Required<RetryOptions>;
11
+ export declare function retryable(error: unknown): boolean;
12
+ export declare function backoff(policy: Required<RetryOptions>, attempt: number, signal: AbortSignal): Promise<void>;
package/dist/retry.js ADDED
@@ -0,0 +1,56 @@
1
+ import { checkCancelled } from './cancellation.js';
2
+ import { RateLimitError, TemporaryLMError } from './errors.js';
3
+ export function retryPolicy(options) {
4
+ const maxAttempts = options.maxAttempts ?? 1;
5
+ const retryInterval = options.retryInterval ?? [1, 2];
6
+ const maxRetryInterval = options.maxRetryInterval ?? 30;
7
+ const range = typeof retryInterval === 'number' ? [retryInterval, retryInterval] : retryInterval;
8
+ if (!Number.isSafeInteger(maxAttempts) || maxAttempts < 1)
9
+ throw new RangeError('maxAttempts must be a positive safe integer.');
10
+ if (range.length !== 2 || range.some(n => !Number.isFinite(n) || n < 0) || range[0] > range[1])
11
+ throw new RangeError('retryInterval must be non-negative seconds or an ordered [min, max] range.');
12
+ if (!Number.isFinite(maxRetryInterval) || maxRetryInterval < 0)
13
+ throw new RangeError('maxRetryInterval must be finite non-negative seconds.');
14
+ return { maxAttempts, retryInterval, maxRetryInterval, exponentialBackoff: options.exponentialBackoff ?? true };
15
+ }
16
+ export function retryable(error) { return error instanceof RateLimitError || error instanceof TemporaryLMError; }
17
+ export async function backoff(policy, attempt, signal) {
18
+ checkCancelled(signal);
19
+ const range = policy.retryInterval;
20
+ const base = typeof range === 'number' ? range : range[0] + Math.random() * (range[1] - range[0]);
21
+ const seconds = base === 0 ? 0 : Math.min(policy.maxRetryInterval, base * (policy.exponentialBackoff ? 2 ** (attempt - 1) : 1));
22
+ if (seconds === 0)
23
+ return;
24
+ await new Promise((resolve, reject) => {
25
+ let remaining = seconds * 1000;
26
+ let timer;
27
+ const onAbort = () => {
28
+ clearTimeout(timer);
29
+ signal.removeEventListener('abort', onAbort);
30
+ try {
31
+ checkCancelled(signal);
32
+ }
33
+ catch (error) {
34
+ reject(error);
35
+ }
36
+ };
37
+ const tick = () => {
38
+ const delay = Math.min(remaining, 2_147_483_647);
39
+ remaining -= delay;
40
+ timer = setTimeout(() => {
41
+ if (remaining > 0)
42
+ tick();
43
+ else {
44
+ signal.removeEventListener('abort', onAbort);
45
+ resolve();
46
+ }
47
+ }, delay);
48
+ };
49
+ signal.addEventListener('abort', onAbort, { once: true });
50
+ tick();
51
+ if (signal.aborted)
52
+ onAbort();
53
+ });
54
+ checkCancelled(signal);
55
+ }
56
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import * as z from 'zod';
2
+ import type { Schema } from '../schema.js';
3
+ /** JSON Schema describes model output BEFORE the synchronous local parser. */
4
+ export declare function fromZod<S extends z.ZodType>(schema: S): Schema<z.output<S>>;
@@ -0,0 +1,7 @@
1
+ import * as z from 'zod';
2
+ /** JSON Schema describes model output BEFORE the synchronous local parser. */
3
+ export function fromZod(schema) {
4
+ const jsonSchema = z.toJSONSchema(schema, { io: 'input', unrepresentable: 'throw' });
5
+ return Object.freeze({ jsonSchema, parse: (value) => schema.parse(value) });
6
+ }
7
+ //# sourceMappingURL=zod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../src/schema/zod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAGzB,8EAA8E;AAC9E,MAAM,UAAU,OAAO,CAAsB,MAAS;IACpD,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;IACrF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,KAAc,EAAe,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACpG,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** Runtime validation is mandatory; TypeScript annotations alone are insufficient. */
2
+ export interface Schema<T> {
3
+ readonly python?: import('./python.js').PythonCodec<T>;
4
+ readonly jsonSchema: Readonly<Record<string, unknown>>;
5
+ parse(value: unknown): T;
6
+ }
7
+ export type SchemaLike<T> = Schema<T> | {
8
+ readonly schema: Schema<T>;
9
+ };
10
+ export declare function resolveSchema<T>(schema: SchemaLike<T>): Schema<T>;
package/dist/schema.js ADDED
@@ -0,0 +1,7 @@
1
+ export function resolveSchema(schema) {
2
+ const resolved = 'schema' in schema ? schema.schema : schema;
3
+ if (typeof resolved.parse !== 'function' || !resolved.jsonSchema)
4
+ throw new TypeError('Expected a runtime schema.');
5
+ return resolved;
6
+ }
7
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,aAAa,CAAI,MAAqB;IACpD,MAAM,QAAQ,GAAG,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7D,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,UAAU;QAAE,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;IACpH,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Message } from './message.js';
2
+ export type Variables = Readonly<Record<string, unknown>>;
3
+ export type Prompt = string | Message | Template;
4
+ export declare class Template {
5
+ static templateStr: string;
6
+ readonly templateStr: string;
7
+ readonly variables: Variables;
8
+ constructor(templateOrVariables?: string | Variables, variables?: Variables);
9
+ static fromRawStr(text: string): Template;
10
+ render(variables?: Variables): Message;
11
+ protected renderWith(variables: Variables, stack: Set<Template>): Message;
12
+ private checkLiteral;
13
+ }
14
+ export declare function renderPrompt(prompt: Prompt, variables?: Variables): Message;
@@ -0,0 +1,75 @@
1
+ import { Message, Modality, UserMessage } from './message.js';
2
+ import { TemplateError } from './errors.js';
3
+ const blocked = new Set(['__proto__', 'prototype', 'constructor']);
4
+ export class Template {
5
+ static templateStr = '';
6
+ templateStr;
7
+ variables;
8
+ constructor(templateOrVariables, variables = {}) {
9
+ this.templateStr = typeof templateOrVariables === 'string' ? templateOrVariables : new.target.templateStr;
10
+ this.variables = Object.freeze({ ...(typeof templateOrVariables === 'object' ? templateOrVariables : variables) });
11
+ }
12
+ static fromRawStr(text) { return new RawTemplate(text); }
13
+ render(variables = {}) {
14
+ return this.renderWith(variables, new Set());
15
+ }
16
+ renderWith(variables, stack) {
17
+ if (stack.has(this))
18
+ throw new TemplateError('Circular template composition.');
19
+ stack.add(this);
20
+ try {
21
+ const values = { ...this.variables, ...variables };
22
+ const parts = [];
23
+ let end = 0;
24
+ for (const match of this.templateStr.matchAll(/{{([\s\S]*?)}}/g)) {
25
+ const literal = this.templateStr.slice(end, match.index);
26
+ this.checkLiteral(literal);
27
+ if (literal)
28
+ parts.push(literal);
29
+ const path = match[1].trim();
30
+ if (!/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)*$/.test(path)) {
31
+ throw new TemplateError(`Unsupported template expression: ${path}`);
32
+ }
33
+ let value = values;
34
+ for (const key of path.split('.')) {
35
+ if (blocked.has(key) || value === null || typeof value !== 'object' || !Object.hasOwn(value, key)) {
36
+ throw new TemplateError(`Missing or inaccessible template variable: ${path}`);
37
+ }
38
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
39
+ if (!descriptor || !('value' in descriptor))
40
+ throw new TemplateError(`Template accessors are not supported: ${path}`);
41
+ value = descriptor.value;
42
+ }
43
+ if (value instanceof Template) {
44
+ parts.push(value instanceof RawTemplate ? value.render() : value.renderWith(values, stack));
45
+ }
46
+ else if (value instanceof Message || value instanceof Modality)
47
+ parts.push(value);
48
+ else if (value === null || ['string', 'number', 'boolean'].includes(typeof value))
49
+ parts.push(String(value));
50
+ else
51
+ throw new TemplateError(`Variable ${path} must be text, a primitive, Message, Modality, or Template.`);
52
+ end = match.index + match[0].length;
53
+ }
54
+ const tail = this.templateStr.slice(end);
55
+ this.checkLiteral(tail);
56
+ if (tail)
57
+ parts.push(tail);
58
+ return new UserMessage(parts);
59
+ }
60
+ finally {
61
+ stack.delete(this);
62
+ }
63
+ }
64
+ checkLiteral(text) {
65
+ if (/{{|}}|{%|%}|{#|#}/.test(text))
66
+ throw new TemplateError('Malformed or unsupported template syntax; use Template.fromRawStr for literal text.');
67
+ }
68
+ }
69
+ class RawTemplate extends Template {
70
+ render() { return new UserMessage(this.templateStr); }
71
+ }
72
+ export function renderPrompt(prompt, variables = {}) {
73
+ return prompt instanceof Message ? prompt : (typeof prompt === 'string' ? new Template(prompt) : prompt).render(variables);
74
+ }
75
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { LanguageModel } from '../language-model.js';
2
+ import type { ModelContext, SamplingResult, StreamChunk } from '../language-model.js';
3
+ import type { Message } from '../message.js';
4
+ /** Deterministic models report no invented token usage. */
5
+ export declare abstract class Fake extends LanguageModel {
6
+ readonly capabilities: Readonly<{
7
+ streaming: true;
8
+ nativeStructuredOutput: true;
9
+ media: true;
10
+ }>;
11
+ protected abstract response(prompt: Message): string;
12
+ protected _sample(prompts: readonly Message[], context: ModelContext): Promise<SamplingResult[]>;
13
+ protected _stream(prompt: Message, context: ModelContext): AsyncIterable<StreamChunk>;
14
+ }
15
+ export declare class Echo extends Fake {
16
+ protected response(prompt: Message): string;
17
+ }
18
+ export declare class StaticResponse extends Fake {
19
+ readonly text: string;
20
+ constructor(text: string);
21
+ protected response(): string;
22
+ }
23
+ export declare class StaticSequence extends Fake {
24
+ private index;
25
+ readonly responses: readonly string[];
26
+ constructor(responses: readonly string[]);
27
+ protected response(): string;
28
+ }
29
+ export declare class StaticMapping extends Fake {
30
+ private readonly responses;
31
+ constructor(responses: ReadonlyMap<string, string>);
32
+ protected response(prompt: Message): string;
33
+ }
@@ -0,0 +1,56 @@
1
+ import { LanguageModel } from '../language-model.js';
2
+ import { AIMessage } from '../message.js';
3
+ import { checkCancelled } from '../cancellation.js';
4
+ /** Deterministic models report no invented token usage. */
5
+ export class Fake extends LanguageModel {
6
+ capabilities = Object.freeze({ streaming: true, nativeStructuredOutput: true, media: true });
7
+ async _sample(prompts, context) {
8
+ checkCancelled(context.signal);
9
+ return prompts.map(prompt => ({ samples: [{ response: new AIMessage(this.response(prompt)) }] }));
10
+ }
11
+ async *_stream(prompt, context) {
12
+ checkCancelled(context.signal);
13
+ const response = this.response(prompt);
14
+ let aggregated = '';
15
+ for (const delta of response) {
16
+ checkCancelled(context.signal);
17
+ aggregated += delta;
18
+ yield { delta: new AIMessage(delta), aggregated: new AIMessage(aggregated), index: 0, isFinal: false };
19
+ }
20
+ checkCancelled(context.signal);
21
+ yield { delta: new AIMessage(''), aggregated: new AIMessage(aggregated), index: 0, isFinal: true, finishReason: 'stop' };
22
+ }
23
+ }
24
+ export class Echo extends Fake {
25
+ response(prompt) { return prompt.text; }
26
+ }
27
+ export class StaticResponse extends Fake {
28
+ text;
29
+ constructor(text) {
30
+ super();
31
+ this.text = text;
32
+ }
33
+ response() { return this.text; }
34
+ }
35
+ export class StaticSequence extends Fake {
36
+ index = 0;
37
+ responses;
38
+ constructor(responses) { super(); this.responses = Object.freeze([...responses]); }
39
+ response() {
40
+ const response = this.responses[this.index++];
41
+ if (response === undefined)
42
+ throw new RangeError('StaticSequence responses exhausted.');
43
+ return response;
44
+ }
45
+ }
46
+ export class StaticMapping extends Fake {
47
+ responses;
48
+ constructor(responses) { super(); this.responses = new Map(responses); }
49
+ response(prompt) {
50
+ const result = this.responses.get(prompt.text);
51
+ if (result === undefined)
52
+ throw new RangeError('StaticMapping has no response for this prompt.');
53
+ return result;
54
+ }
55
+ }
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"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"}