@memberjunction/templates 6.2.0-edge.4 → 6.2.0-edge.6
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 +23 -1
- package/dist/NunjucksSandbox.js +39 -14
- package/dist/NunjucksSandbox.js.map +1 -1
- package/dist/TemplateEngine.d.ts +53 -10
- package/dist/TemplateEngine.d.ts.map +1 -1
- package/dist/TemplateEngine.js +142 -27
- package/dist/TemplateEngine.js.map +1 -1
- package/dist/TemplateRenderUser.d.ts +8 -0
- package/dist/TemplateRenderUser.d.ts.map +1 -0
- package/dist/TemplateRenderUser.js +15 -0
- package/dist/TemplateRenderUser.js.map +1 -0
- package/dist/TemplateVariableAnalysis.d.ts +27 -0
- package/dist/TemplateVariableAnalysis.d.ts.map +1 -0
- package/dist/TemplateVariableAnalysis.js +140 -0
- package/dist/TemplateVariableAnalysis.js.map +1 -0
- package/dist/extensions/AIPrompt.extension.d.ts +15 -0
- package/dist/extensions/AIPrompt.extension.d.ts.map +1 -1
- package/dist/extensions/AIPrompt.extension.js +100 -70
- package/dist/extensions/AIPrompt.extension.js.map +1 -1
- package/dist/extensions/TemplateEmbed.extension.d.ts +13 -1
- package/dist/extensions/TemplateEmbed.extension.d.ts.map +1 -1
- package/dist/extensions/TemplateEmbed.extension.js +16 -8
- package/dist/extensions/TemplateEmbed.extension.js.map +1 -1
- package/dist/extensions/TemplateExtensionBase.d.ts +12 -1
- package/dist/extensions/TemplateExtensionBase.d.ts.map +1 -1
- package/dist/extensions/TemplateExtensionBase.js +13 -1
- package/dist/extensions/TemplateExtensionBase.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/operations/TemplateRunOperation.d.ts.map +1 -1
- package/dist/operations/TemplateRunOperation.js +1 -1
- package/dist/operations/TemplateRunOperation.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateEngine.js","sourceRoot":"","sources":["../src/TemplateEngine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TemplateEngine.js","sourceRoot":"","sources":["../src/TemplateEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { UserInfo } from '@memberjunction/core';
|
|
2
|
+
/** Runs `work` with `user` as the template render user for everything it does, sync or async. */
|
|
3
|
+
export declare function RunAsTemplateRenderUser<T>(user: UserInfo | undefined, work: () => T): T;
|
|
4
|
+
/** The user of the template render in progress, or undefined outside a render or for a render with no user. */
|
|
5
|
+
export declare function CurrentTemplateRenderUser(): UserInfo | undefined;
|
|
6
|
+
/** Whether a template render is in progress, whether or not it has a user. */
|
|
7
|
+
export declare function IsInsideTemplateRender(): boolean;
|
|
8
|
+
//# sourceMappingURL=TemplateRenderUser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateRenderUser.d.ts","sourceRoot":"","sources":["../src/TemplateRenderUser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAkBrD,iGAAiG;AACjG,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAEvF;AAED,+GAA+G;AAC/G,wBAAgB,yBAAyB,IAAI,QAAQ,GAAG,SAAS,CAEhE;AAED,8EAA8E;AAC9E,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
const renderScope = new AsyncLocalStorage();
|
|
3
|
+
/** Runs `work` with `user` as the template render user for everything it does, sync or async. */
|
|
4
|
+
export function RunAsTemplateRenderUser(user, work) {
|
|
5
|
+
return renderScope.run({ User: user }, work);
|
|
6
|
+
}
|
|
7
|
+
/** The user of the template render in progress, or undefined outside a render or for a render with no user. */
|
|
8
|
+
export function CurrentTemplateRenderUser() {
|
|
9
|
+
return renderScope.getStore()?.User;
|
|
10
|
+
}
|
|
11
|
+
/** Whether a template render is in progress, whether or not it has a user. */
|
|
12
|
+
export function IsInsideTemplateRender() {
|
|
13
|
+
return renderScope.getStore() !== undefined;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=TemplateRenderUser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateRenderUser.js","sourceRoot":"","sources":["../src/TemplateRenderUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAiBrD,MAAM,WAAW,GAAG,IAAI,iBAAiB,EAAuB,CAAC;AAEjE,iGAAiG;AACjG,MAAM,UAAU,uBAAuB,CAAI,IAA0B,EAAE,IAAa;IAChF,OAAO,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,yBAAyB;IACrC,OAAO,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC;AACxC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,sBAAsB;IAClC,OAAO,WAAW,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import nunjucks from 'nunjucks';
|
|
2
|
+
/** Variables a template reads. */
|
|
3
|
+
export interface ReferencedVariablesResult {
|
|
4
|
+
/** Top-level names the template and the templates it pulls in read. Also holds loop, `set`, filter and keyword names. */
|
|
5
|
+
readonly Names: ReadonlySet<string>;
|
|
6
|
+
/** False when part of the template could not be analyzed, so `Names` may miss entries. */
|
|
7
|
+
readonly Complete: boolean;
|
|
8
|
+
/** Why `Complete` is false. */
|
|
9
|
+
readonly Reason?: string;
|
|
10
|
+
/** True when the text, or a template it pulls in, does not parse. Registering an extension can change such a result. */
|
|
11
|
+
readonly ParseFailed?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/** Inputs for {@link CollectReferencedVariables}. */
|
|
14
|
+
export interface ReferencedVariablesOptions {
|
|
15
|
+
/** Extensions whose custom tags the parser must understand. */
|
|
16
|
+
Extensions: nunjucks.Extension[];
|
|
17
|
+
/** Texts of every content of the stored template with this name, or null when there is no such template. */
|
|
18
|
+
ResolveTemplateTexts: (templateName: string) => string[] | null;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Parses a Nunjucks template and returns the top-level variable names it reads, following stored
|
|
22
|
+
* templates it pulls in by literal name. The result is incomplete when a template is named by an
|
|
23
|
+
* expression, a named template is missing or cannot be loaded, the text does not parse, or a tag
|
|
24
|
+
* comes from an extension the analysis does not know.
|
|
25
|
+
*/
|
|
26
|
+
export declare function CollectReferencedVariables(templateText: string, options: ReferencedVariablesOptions): ReferencedVariablesResult;
|
|
27
|
+
//# sourceMappingURL=TemplateVariableAnalysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateVariableAnalysis.d.ts","sourceRoot":"","sources":["../src/TemplateVariableAnalysis.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AA0BhC,kCAAkC;AAClC,MAAM,WAAW,yBAAyB;IACtC,yHAAyH;IACzH,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,0FAA0F;IAC1F,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,wHAAwH;IACxH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,qDAAqD;AACrD,MAAM,WAAW,0BAA0B;IACvC,+DAA+D;IAC/D,UAAU,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;IACjC,4GAA4G;IAC5G,oBAAoB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC;CACnE;AAyBD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,GAAG,yBAAyB,CAQ/H"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import nunjucks from 'nunjucks';
|
|
2
|
+
/** The parser nunjucks compiles templates with. */
|
|
3
|
+
const templateParser = nunjucks.parser;
|
|
4
|
+
/** Tags that pull in another template, by AST node type. The node keeps the template name in its `template` field. */
|
|
5
|
+
const TEMPLATE_REFERENCE_TAGS = new Map([
|
|
6
|
+
['Include', 'include'],
|
|
7
|
+
['Import', 'import'],
|
|
8
|
+
['FromImport', 'from'],
|
|
9
|
+
['Extends', 'extends'],
|
|
10
|
+
]);
|
|
11
|
+
/** AST node types of custom extension tags. */
|
|
12
|
+
const EXTENSION_CALL_NODES = new Set(['CallExtension', 'CallExtensionAsync']);
|
|
13
|
+
/** Registration key of the `{% template %}` embed extension. The analysis follows the template it names. */
|
|
14
|
+
const TEMPLATE_EMBED_EXTENSION = 'TemplateEmbed';
|
|
15
|
+
/** Registration keys of extensions that read only the arguments and body the walk visits. */
|
|
16
|
+
const ARGUMENT_ONLY_EXTENSIONS = new Set(['AIPrompt']);
|
|
17
|
+
/**
|
|
18
|
+
* Parses a Nunjucks template and returns the top-level variable names it reads, following stored
|
|
19
|
+
* templates it pulls in by literal name. The result is incomplete when a template is named by an
|
|
20
|
+
* expression, a named template is missing or cannot be loaded, the text does not parse, or a tag
|
|
21
|
+
* comes from an extension the analysis does not know.
|
|
22
|
+
*/
|
|
23
|
+
export function CollectReferencedVariables(templateText, options) {
|
|
24
|
+
const state = { names: new Set(), problems: new Set(), parseFailed: false, visitedTemplates: new Set(), visitedObjects: new Set(), options };
|
|
25
|
+
collectFromText(templateText, state);
|
|
26
|
+
if (state.problems.size === 0) {
|
|
27
|
+
return { Names: state.names, Complete: true };
|
|
28
|
+
}
|
|
29
|
+
const incomplete = { Names: state.names, Complete: false, Reason: [...state.problems].join('; ') };
|
|
30
|
+
return state.parseFailed ? { ...incomplete, ParseFailed: true } : incomplete;
|
|
31
|
+
}
|
|
32
|
+
function collectFromText(text, state) {
|
|
33
|
+
let root;
|
|
34
|
+
try {
|
|
35
|
+
root = templateParser.parse(text, state.options.Extensions);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
state.parseFailed = true;
|
|
39
|
+
state.problems.add(`template could not be parsed: ${error instanceof Error ? error.message : String(error)}`);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
walk(root, state);
|
|
43
|
+
}
|
|
44
|
+
function isAstNode(value) {
|
|
45
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value) && typeof value.typename === 'string';
|
|
46
|
+
}
|
|
47
|
+
/** Visits each node and list reachable from `value` once. */
|
|
48
|
+
function walk(value, state) {
|
|
49
|
+
if (typeof value !== 'object' || value === null || state.visitedObjects.has(value))
|
|
50
|
+
return;
|
|
51
|
+
state.visitedObjects.add(value);
|
|
52
|
+
if (Array.isArray(value)) {
|
|
53
|
+
for (const item of value)
|
|
54
|
+
walk(item, state);
|
|
55
|
+
}
|
|
56
|
+
else if (isAstNode(value)) {
|
|
57
|
+
visitNode(value, state);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function visitNode(node, state) {
|
|
61
|
+
if (node.typename === 'Symbol' && typeof node.value === 'string') {
|
|
62
|
+
state.names.add(node.value);
|
|
63
|
+
}
|
|
64
|
+
const referenceTag = TEMPLATE_REFERENCE_TAGS.get(node.typename);
|
|
65
|
+
if (referenceTag) {
|
|
66
|
+
followTemplate(node.template, referenceTag, state);
|
|
67
|
+
}
|
|
68
|
+
if (EXTENSION_CALL_NODES.has(node.typename)) {
|
|
69
|
+
checkExtensionCall(node, state);
|
|
70
|
+
}
|
|
71
|
+
for (const property of childProperties(node)) {
|
|
72
|
+
walk(node[property], state);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Names of the node's properties that can hold child nodes: its declared `fields` and every own property.
|
|
77
|
+
* The block form of `{% set %}` keeps its body in `body`, which is not a declared field.
|
|
78
|
+
*/
|
|
79
|
+
function childProperties(node) {
|
|
80
|
+
return new Set([...node.fields, ...Object.keys(node)]);
|
|
81
|
+
}
|
|
82
|
+
/** Follows a `{% template %}` embed, accepts argument-only extensions, and records a problem for any other extension. */
|
|
83
|
+
function checkExtensionCall(node, state) {
|
|
84
|
+
const extensionName = node.extName;
|
|
85
|
+
if (extensionName === TEMPLATE_EMBED_EXTENSION) {
|
|
86
|
+
followTemplate(firstArgument(node), 'template', state);
|
|
87
|
+
}
|
|
88
|
+
else if (typeof extensionName !== 'string') {
|
|
89
|
+
state.problems.add(`${describeTag(extensionName, state)} comes from an extension with no registered name`);
|
|
90
|
+
}
|
|
91
|
+
else if (!ARGUMENT_ONLY_EXTENSIONS.has(extensionName)) {
|
|
92
|
+
state.problems.add(`${describeTag(extensionName, state)} comes from extension "${extensionName}", which the analysis does not know`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function firstArgument(node) {
|
|
96
|
+
const args = node.args;
|
|
97
|
+
return isAstNode(args) && Array.isArray(args.children) ? args.children[0] : undefined;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Names the tag of an extension call from its extension's tag list, such as `the {% custom %} tag`.
|
|
101
|
+
* A call node holds the extension's registration name, or the extension itself when it has none.
|
|
102
|
+
*/
|
|
103
|
+
function describeTag(extensionName, state) {
|
|
104
|
+
const extensions = state.options.Extensions;
|
|
105
|
+
const extension = typeof extensionName === 'string'
|
|
106
|
+
? extensions.find((candidate) => candidate.__name === extensionName)
|
|
107
|
+
: extensions.find((candidate) => Object.is(candidate, extensionName));
|
|
108
|
+
const tags = extension?.tags ?? [];
|
|
109
|
+
return tags.length > 0 ? `the ${tags.map((tag) => `{% ${tag} %}`).join(' or ')} tag` : 'a custom tag';
|
|
110
|
+
}
|
|
111
|
+
function followTemplate(nameNode, tag, state) {
|
|
112
|
+
if (!isAstNode(nameNode) || nameNode.typename !== 'Literal' || typeof nameNode.value !== 'string') {
|
|
113
|
+
state.problems.add(`a {% ${tag} %} tag names its template with an expression`);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const name = nameNode.value;
|
|
117
|
+
const key = name.trim().toLowerCase();
|
|
118
|
+
if (state.visitedTemplates.has(key))
|
|
119
|
+
return;
|
|
120
|
+
state.visitedTemplates.add(key);
|
|
121
|
+
for (const text of resolveTemplateTexts(name, state))
|
|
122
|
+
collectFromText(text, state);
|
|
123
|
+
}
|
|
124
|
+
/** Texts of every content of the named template. A missing template, or one that cannot be loaded, records a problem and gives none. */
|
|
125
|
+
function resolveTemplateTexts(name, state) {
|
|
126
|
+
let texts;
|
|
127
|
+
try {
|
|
128
|
+
texts = state.options.ResolveTemplateTexts(name);
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
state.problems.add(`template "${name}" could not be loaded: ${error instanceof Error ? error.message : String(error)}`);
|
|
132
|
+
return [];
|
|
133
|
+
}
|
|
134
|
+
if (!texts) {
|
|
135
|
+
state.problems.add(`template "${name}" was not found`);
|
|
136
|
+
return [];
|
|
137
|
+
}
|
|
138
|
+
return texts;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=TemplateVariableAnalysis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateVariableAnalysis.js","sourceRoot":"","sources":["../src/TemplateVariableAnalysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,21 @@ export declare class AIPromptExtension extends TemplateExtensionBase {
|
|
|
37
37
|
* ```
|
|
38
38
|
*/
|
|
39
39
|
run(context: Context, params: any, body: any, callBack: NunjucksCallback): void;
|
|
40
|
+
/** Logs `e` and ends the render with it as the error. */
|
|
41
|
+
private static failRender;
|
|
42
|
+
/** Why an `{% AIPrompt %}` tag fails in a render that has no user. */
|
|
43
|
+
static readonly NoRenderUserMessage: string;
|
|
44
|
+
/** Maps the tag's parameters onto an {@link AIPromptConfig}, matching names case- and space-insensitively. */
|
|
45
|
+
protected parseConfig(params: Record<string, unknown>): AIPromptConfig;
|
|
46
|
+
/** The tag's `AIModel` value as a model name; unset when it is null or undefined. Throws for any other non-string. */
|
|
47
|
+
private static aiModelName;
|
|
48
|
+
/**
|
|
49
|
+
* Runs the prompt as `contextUser` and returns the model's reply. Rejects when the AI engine cannot be
|
|
50
|
+
* configured, no model is found, or the model call does not succeed.
|
|
51
|
+
*/
|
|
52
|
+
protected runPrompt(prompt: string, config: AIPromptConfig, contextUser: UserInfo): Promise<string>;
|
|
53
|
+
/** The model the tag names, or the highest-power Groq LLM when it names none. */
|
|
54
|
+
protected resolveModel(config: AIPromptConfig, contextUser: UserInfo): Promise<MJAIModelEntityExtended>;
|
|
40
55
|
/**
|
|
41
56
|
* Default implementation simply returns 'OpenAI' - override this in your subclass if you are using a different AI vendor.
|
|
42
57
|
* @returns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIPrompt.extension.d.ts","sourceRoot":"","sources":["../../src/extensions/AIPrompt.extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGlF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,KAAK,MAAM,GAAG,GAAG,CAAC;AAClB,KAAK,KAAK,GAAG,GAAG,CAAC;AACjB,KAAK,KAAK,GAAG,GAAG,CAAC;AACjB,KAAK,OAAO,GAAG,GAAG,CAAC;AAEnB;;GAEG;AACH,qBACa,iBAAkB,SAAQ,qBAAqB;IAExD,mBAAmB,EAAE,MAAM,CAAgE;gBAE/E,WAAW,EAAE,QAAQ;IAK1B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IAkCvD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"AIPrompt.extension.d.ts","sourceRoot":"","sources":["../../src/extensions/AIPrompt.extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGlF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,KAAK,MAAM,GAAG,GAAG,CAAC;AAClB,KAAK,KAAK,GAAG,GAAG,CAAC;AACjB,KAAK,KAAK,GAAG,GAAG,CAAC;AACjB,KAAK,OAAO,GAAG,GAAG,CAAC;AAEnB;;GAEG;AACH,qBACa,iBAAkB,SAAQ,qBAAqB;IAExD,mBAAmB,EAAE,MAAM,CAAgE;gBAE/E,WAAW,EAAE,QAAQ;IAK1B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IAkCvD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB;IAsB/E,yDAAyD;IACzD,OAAO,CAAC,MAAM,CAAC,UAAU;IAKzB,sEAAsE;IACtE,gBAAuB,mBAAmB,SAEI;IAE9C,8GAA8G;IAC9G,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc;IAmBtE,sHAAsH;IACtH,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B;;;OAGG;cACa,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BzG,iFAAiF;cACjE,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAiB7G;;;OAGG;IACH,SAAS,KAAK,mBAAmB,IAAI,MAAM,CAE1C;IAED;;;OAGG;cACa,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAQ1G;AAED,MAAM,MAAM,cAAc,GAAG;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC"}
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
var AIPromptExtension_1;
|
|
10
11
|
import { LogError, UserInfo } from "@memberjunction/core";
|
|
11
12
|
import { MJGlobal, RegisterClass } from "@memberjunction/global";
|
|
12
13
|
import { TemplateExtensionBase } from "./TemplateExtensionBase.js";
|
|
@@ -16,6 +17,7 @@ import { BaseLLM, GetAIAPIKey } from "@memberjunction/ai";
|
|
|
16
17
|
* This class is an extension for the Nunjucks template engine that allows for the use of an AI prompt in a template.
|
|
17
18
|
*/
|
|
18
19
|
let AIPromptExtension = class AIPromptExtension extends TemplateExtensionBase {
|
|
20
|
+
static { AIPromptExtension_1 = this; }
|
|
19
21
|
constructor(contextUser) {
|
|
20
22
|
super(contextUser);
|
|
21
23
|
this.AllowFormattingText = "Do not use markdown, HTML, or any other special formatting.";
|
|
@@ -71,81 +73,109 @@ let AIPromptExtension = class AIPromptExtension extends TemplateExtensionBase {
|
|
|
71
73
|
* ```
|
|
72
74
|
*/
|
|
73
75
|
run(context, params, body, callBack) {
|
|
74
|
-
|
|
76
|
+
// Captured once: the prompt runs as the user of the render that reached this tag.
|
|
77
|
+
const contextUser = this.ContextUser;
|
|
78
|
+
if (!contextUser) {
|
|
79
|
+
callBack(new Error(AIPromptExtension_1.NoRenderUserMessage));
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
// Nunjucks calls this synchronously and waits on the callback, so every path below must reach the
|
|
83
|
+
// callback. Nunjucks renders the rest of the template inside `callBack(null, response)`, so an
|
|
84
|
+
// error there (a later `{{ undefinedFn() }}`) is caught by the `.catch` and fails the render too;
|
|
85
|
+
// a rejection that skipped the callback would leave the render waiting forever.
|
|
86
|
+
try {
|
|
87
|
+
const prompt = body();
|
|
88
|
+
const config = this.parseConfig(params);
|
|
89
|
+
this.runPrompt(prompt, config, contextUser)
|
|
90
|
+
.then((response) => callBack(null, response))
|
|
91
|
+
.catch((e) => AIPromptExtension_1.failRender(callBack, e));
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
AIPromptExtension_1.failRender(callBack, e);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** Logs `e` and ends the render with it as the error. */
|
|
98
|
+
static failRender(callBack, e) {
|
|
99
|
+
LogError(e);
|
|
100
|
+
callBack(e instanceof Error ? e : new Error(String(e)));
|
|
101
|
+
}
|
|
102
|
+
/** Why an `{% AIPrompt %}` tag fails in a render that has no user. */
|
|
103
|
+
static { this.NoRenderUserMessage = 'The AIPrompt template tag needs the user the render runs as, and this render has no user. ' +
|
|
104
|
+
'Pass ContextUser in the render options.'; }
|
|
105
|
+
/** Maps the tag's parameters onto an {@link AIPromptConfig}, matching names case- and space-insensitively. */
|
|
106
|
+
parseConfig(params) {
|
|
75
107
|
const config = {};
|
|
76
|
-
// now map each value from params to the config object, and be case INsensitive
|
|
77
108
|
for (const key in params) {
|
|
78
|
-
if (params.hasOwnProperty(key)) {
|
|
79
|
-
|
|
80
|
-
// convert the key to lower case and remove any spaces
|
|
81
|
-
const lowerKey = key.toLowerCase().replace(/\s+/g, '');
|
|
82
|
-
// now set the value in the config object
|
|
83
|
-
if (lowerKey === 'aimodel') {
|
|
84
|
-
config.AIModel = value;
|
|
85
|
-
}
|
|
86
|
-
else if (lowerKey === 'allowformatting') {
|
|
87
|
-
// convert the value to a boolean
|
|
88
|
-
if (typeof value === 'string') {
|
|
89
|
-
config.AllowFormatting = value.toLowerCase() === 'true' || value.toLowerCase() === 'yes';
|
|
90
|
-
}
|
|
91
|
-
else if (typeof value === 'boolean') {
|
|
92
|
-
config.AllowFormatting = value;
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
// if the value is not a string or boolean, we will just set it to false
|
|
96
|
-
config.AllowFormatting = false;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
109
|
+
if (!params.hasOwnProperty(key)) {
|
|
110
|
+
continue;
|
|
99
111
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
// we will get the highest power model from the AI Engine
|
|
105
|
-
// then we will create an instance of the LLM class
|
|
106
|
-
AIEngine.Instance.Config(false, this.ContextUser).then(async () => {
|
|
107
|
-
try {
|
|
108
|
-
let model = null;
|
|
109
|
-
if (config.AIModel) {
|
|
110
|
-
model = AIEngine.Instance.Models.find(m => m.Name.toLowerCase() === config.AIModel.toLowerCase() ||
|
|
111
|
-
m.APIName?.toLowerCase() === config.AIModel.toLowerCase());
|
|
112
|
-
if (!model) {
|
|
113
|
-
throw new Error(`AI model '${config.AIModel}' not found.`);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
model = await AIEngine.Instance.GetHighestPowerModel('Groq', 'llm', this.ContextUser);
|
|
118
|
-
if (!model) {
|
|
119
|
-
throw new Error(`No AI model found for the vendor 'Groq' and type 'llm'.`);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
const llm = MJGlobal.Instance.ClassFactory.CreateInstance(BaseLLM, model.DriverClass, GetAIAPIKey(model.DriverClass));
|
|
123
|
-
const llmResult = await llm.ChatCompletion({
|
|
124
|
-
messages: [
|
|
125
|
-
{
|
|
126
|
-
role: 'system',
|
|
127
|
-
content: `Background: The output from this will be DIRECTLY inserted into a messaging template going to a recipient. For this reason whenever
|
|
128
|
-
you are prompted to provide a result, do not preface it with any text, just provide the result itself. ${config.AllowFormatting ? "" : this.AllowFormattingText} Assume that the text you are generating will go directly into a message.
|
|
129
|
-
<IMPORTANT>ONLY PROVIDE THE RESPONSE REQUESTED FOR THE MESSAGE - **** DO NOT ADD ANYTHING ELSE ****</IMPORTANT>`,
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
role: 'user',
|
|
133
|
-
content: `${prompt}`,
|
|
134
|
-
}
|
|
135
|
-
],
|
|
136
|
-
model: model.APINameOrName
|
|
137
|
-
});
|
|
138
|
-
if (llmResult && llmResult.success) {
|
|
139
|
-
let response = llmResult.data.choices[0].message.content;
|
|
140
|
-
response = response.replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&");
|
|
141
|
-
callBack(null, response);
|
|
142
|
-
}
|
|
112
|
+
const value = params[key];
|
|
113
|
+
const lowerKey = key.toLowerCase().replace(/\s+/g, '');
|
|
114
|
+
if (lowerKey === 'aimodel') {
|
|
115
|
+
config.AIModel = AIPromptExtension_1.aiModelName(value);
|
|
143
116
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
117
|
+
else if (lowerKey === 'allowformatting') {
|
|
118
|
+
config.AllowFormatting = typeof value === 'string'
|
|
119
|
+
? value.toLowerCase() === 'true' || value.toLowerCase() === 'yes'
|
|
120
|
+
: value === true; // any other non-boolean value means no formatting
|
|
147
121
|
}
|
|
122
|
+
}
|
|
123
|
+
return config;
|
|
124
|
+
}
|
|
125
|
+
/** The tag's `AIModel` value as a model name; unset when it is null or undefined. Throws for any other non-string. */
|
|
126
|
+
static aiModelName(value) {
|
|
127
|
+
if (typeof value === 'string') {
|
|
128
|
+
return value;
|
|
129
|
+
}
|
|
130
|
+
if (value === undefined || value === null) {
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
throw new Error(`AIPrompt: the AIModel parameter must be a string naming a model, but it is a ${typeof value}.`);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Runs the prompt as `contextUser` and returns the model's reply. Rejects when the AI engine cannot be
|
|
137
|
+
* configured, no model is found, or the model call does not succeed.
|
|
138
|
+
*/
|
|
139
|
+
async runPrompt(prompt, config, contextUser) {
|
|
140
|
+
await AIEngine.Instance.Config(false, contextUser);
|
|
141
|
+
const model = await this.resolveModel(config, contextUser);
|
|
142
|
+
const llm = MJGlobal.Instance.ClassFactory.CreateInstance(BaseLLM, model.DriverClass, GetAIAPIKey(model.DriverClass));
|
|
143
|
+
const llmResult = await llm.ChatCompletion({
|
|
144
|
+
messages: [
|
|
145
|
+
{
|
|
146
|
+
role: 'system',
|
|
147
|
+
content: `Background: The output from this will be DIRECTLY inserted into a messaging template going to a recipient. For this reason whenever
|
|
148
|
+
you are prompted to provide a result, do not preface it with any text, just provide the result itself. ${config.AllowFormatting ? "" : this.AllowFormattingText} Assume that the text you are generating will go directly into a message.
|
|
149
|
+
<IMPORTANT>ONLY PROVIDE THE RESPONSE REQUESTED FOR THE MESSAGE - **** DO NOT ADD ANYTHING ELSE ****</IMPORTANT>`,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
role: 'user',
|
|
153
|
+
content: `${prompt}`,
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
model: model.APINameOrName
|
|
148
157
|
});
|
|
158
|
+
if (!llmResult?.success) {
|
|
159
|
+
throw new Error(`AIPrompt: the model call did not succeed: ${llmResult?.errorMessage || 'the model returned no result'}`);
|
|
160
|
+
}
|
|
161
|
+
const response = llmResult.data.choices[0].message.content;
|
|
162
|
+
return response.replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&");
|
|
163
|
+
}
|
|
164
|
+
/** The model the tag names, or the highest-power Groq LLM when it names none. */
|
|
165
|
+
async resolveModel(config, contextUser) {
|
|
166
|
+
if (config.AIModel) {
|
|
167
|
+
const wanted = config.AIModel.toLowerCase();
|
|
168
|
+
const model = AIEngine.Instance.Models.find(m => m.Name.toLowerCase() === wanted || m.APIName?.toLowerCase() === wanted);
|
|
169
|
+
if (!model) {
|
|
170
|
+
throw new Error(`AI model '${config.AIModel}' not found.`);
|
|
171
|
+
}
|
|
172
|
+
return model;
|
|
173
|
+
}
|
|
174
|
+
const model = await AIEngine.Instance.GetHighestPowerModel('Groq', 'llm', contextUser);
|
|
175
|
+
if (!model) {
|
|
176
|
+
throw new Error(`No AI model found for the vendor 'Groq' and type 'llm'.`);
|
|
177
|
+
}
|
|
178
|
+
return model;
|
|
149
179
|
}
|
|
150
180
|
/**
|
|
151
181
|
* Default implementation simply returns 'OpenAI' - override this in your subclass if you are using a different AI vendor.
|
|
@@ -167,7 +197,7 @@ let AIPromptExtension = class AIPromptExtension extends TemplateExtensionBase {
|
|
|
167
197
|
return models[0];
|
|
168
198
|
}
|
|
169
199
|
};
|
|
170
|
-
AIPromptExtension = __decorate([
|
|
200
|
+
AIPromptExtension = AIPromptExtension_1 = __decorate([
|
|
171
201
|
RegisterClass(TemplateExtensionBase, 'AIPrompt'),
|
|
172
202
|
__metadata("design:paramtypes", [UserInfo])
|
|
173
203
|
], AIPromptExtension);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIPrompt.extension.js","sourceRoot":"","sources":["../../src/extensions/AIPrompt.extension.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AIPrompt.extension.js","sourceRoot":"","sources":["../../src/extensions/AIPrompt.extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,14 @@ export type TemplateEmbedConfig = {
|
|
|
19
19
|
*/
|
|
20
20
|
data?: any;
|
|
21
21
|
};
|
|
22
|
+
/** The render context's escape mode; nunjucks keeps it at `env.opts` at runtime (`@types/nunjucks` says `options`). */
|
|
23
|
+
type RenderEnvironmentView = {
|
|
24
|
+
env?: {
|
|
25
|
+
opts?: {
|
|
26
|
+
autoescape?: boolean;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
};
|
|
22
30
|
/**
|
|
23
31
|
* Extension that enables recursive template embedding using {% template "TemplateName" %} syntax.
|
|
24
32
|
*
|
|
@@ -76,8 +84,12 @@ export declare class TemplateEmbedExtension extends TemplateExtensionBase {
|
|
|
76
84
|
* Prepares the data context for the embedded template by merging current context with additional data.
|
|
77
85
|
*/
|
|
78
86
|
private prepareDataContext;
|
|
87
|
+
/** Whether the render that reached this tag escapes its output; an embed inside a raw render renders raw too. */
|
|
88
|
+
protected static RendersEscaped(context: RenderEnvironmentView): boolean;
|
|
79
89
|
/**
|
|
80
|
-
* Renders the embedded template content with the provided data context.
|
|
90
|
+
* Renders the embedded template content with the provided data context. A raw render goes through
|
|
91
|
+
* {@link TemplateEngineServer.RenderTemplate}, whose raw environment carries the extensions.
|
|
92
|
+
* The raw path renders through RenderTemplate so the registered extensions (nested embeds) stay available; unlike the escaped RenderTemplateSimple path it also merges the template's parameter defaults.
|
|
81
93
|
*/
|
|
82
94
|
private renderEmbeddedTemplate;
|
|
83
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateEmbed.extension.d.ts","sourceRoot":"","sources":["../../src/extensions/TemplateEmbed.extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAKlF,KAAK,MAAM,GAAG,GAAG,CAAC;AAClB,KAAK,KAAK,GAAG,GAAG,CAAC;AACjB,KAAK,KAAK,GAAG,GAAG,CAAC;AACjB,KAAK,OAAO,GAAG,GAAG,CAAC;AAEnB;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC;CACd,CAAC;
|
|
1
|
+
{"version":3,"file":"TemplateEmbed.extension.d.ts","sourceRoot":"","sources":["../../src/extensions/TemplateEmbed.extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAKlF,KAAK,MAAM,GAAG,GAAG,CAAC;AAClB,KAAK,KAAK,GAAG,GAAG,CAAC;AACjB,KAAK,KAAK,GAAG,GAAG,CAAC;AACjB,KAAK,OAAO,GAAG,GAAG,CAAC;AAEnB;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,uHAAuH;AACvH,KAAK,qBAAqB,GAAG;IAAE,GAAG,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE;YAAE,UAAU,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,CAAC;AAiB3E;;;;;;;;;;;;;;GAcG;AACH,qBACa,sBAAuB,SAAQ,qBAAqB;gBAEjD,WAAW,EAAE,QAAQ;IAK1B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IAavD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB;IAyHlE;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B,iHAAiH;IACjH,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO;IAIxE;;;;OAIG;YACW,sBAAsB;CAiBvC"}
|