@sprucelabs/sprucebot-llm 11.1.12 → 11.1.14

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 (193) hide show
  1. package/README.md +1 -1
  2. package/build/.spruce/errors/errors.types.js +1 -0
  3. package/build/.spruce/errors/errors.types.js.map +1 -0
  4. package/build/.spruce/errors/options.types.js +1 -0
  5. package/build/.spruce/errors/options.types.js.map +1 -0
  6. package/build/.spruce/errors/sprucebotLlm/callbackError.schema.js +1 -0
  7. package/build/.spruce/errors/sprucebotLlm/callbackError.schema.js.map +1 -0
  8. package/build/.spruce/errors/sprucebotLlm/invalidCallback.schema.js +1 -0
  9. package/build/.spruce/errors/sprucebotLlm/invalidCallback.schema.js.map +1 -0
  10. package/build/.spruce/errors/sprucebotLlm/noBotInstanceSet.schema.js +1 -0
  11. package/build/.spruce/errors/sprucebotLlm/noBotInstanceSet.schema.js.map +1 -0
  12. package/build/.spruce/event-cache.json +1 -0
  13. package/build/.spruce/schemas/fields/fieldClassMap.js +1 -0
  14. package/build/.spruce/schemas/fields/fieldClassMap.js.map +1 -0
  15. package/build/.spruce/schemas/fields/fields.types.js +1 -0
  16. package/build/.spruce/schemas/fields/fields.types.js.map +1 -0
  17. package/build/__tests__/behavioral/LlmBot.test.d.ts +55 -0
  18. package/build/__tests__/behavioral/LlmBot.test.js +607 -0
  19. package/build/__tests__/behavioral/LlmBot.test.js.map +1 -0
  20. package/build/__tests__/behavioral/SprucebotLlmFactory.test.d.ts +16 -0
  21. package/build/__tests__/behavioral/SprucebotLlmFactory.test.js +132 -0
  22. package/build/__tests__/behavioral/SprucebotLlmFactory.test.js.map +1 -0
  23. package/build/__tests__/behavioral/adapters/OpenAi.test.d.ts +52 -0
  24. package/build/__tests__/behavioral/adapters/OpenAi.test.js +699 -0
  25. package/build/__tests__/behavioral/adapters/OpenAi.test.js.map +1 -0
  26. package/build/__tests__/behavioral/prompts/PromptGenerator.test.d.ts +20 -0
  27. package/build/__tests__/behavioral/prompts/PromptGenerator.test.js +211 -0
  28. package/build/__tests__/behavioral/prompts/PromptGenerator.test.js.map +1 -0
  29. package/build/__tests__/behavioral/prompts/ResponseParser.test.d.ts +35 -0
  30. package/build/__tests__/behavioral/prompts/ResponseParser.test.js +312 -0
  31. package/build/__tests__/behavioral/prompts/ResponseParser.test.js.map +1 -0
  32. package/build/__tests__/behavioral/skills/Skill.test.d.ts +19 -0
  33. package/build/__tests__/behavioral/skills/Skill.test.js +188 -0
  34. package/build/__tests__/behavioral/skills/Skill.test.js.map +1 -0
  35. package/build/__tests__/behavioral/testing/MockLlmSkill.test.d.ts +37 -0
  36. package/build/__tests__/behavioral/testing/MockLlmSkill.test.js +340 -0
  37. package/build/__tests__/behavioral/testing/MockLlmSkill.test.js.map +1 -0
  38. package/build/__tests__/behavioral/testing/SpyLlmBot.test.d.ts +4 -0
  39. package/build/__tests__/behavioral/testing/SpyLlmBot.test.js +34 -0
  40. package/build/__tests__/behavioral/testing/SpyLlmBot.test.js.map +1 -0
  41. package/build/__tests__/support/AbstractLlmTest.d.ts +14 -0
  42. package/build/__tests__/support/AbstractLlmTest.js +67 -0
  43. package/build/__tests__/support/AbstractLlmTest.js.map +1 -0
  44. package/build/__tests__/support/schemas/carSchema.d.ts +16 -0
  45. package/build/__tests__/support/schemas/carSchema.js +19 -0
  46. package/build/__tests__/support/schemas/carSchema.js.map +1 -0
  47. package/build/__tests__/support/schemas/personSchema.d.ts +23 -0
  48. package/build/__tests__/support/schemas/personSchema.js +37 -0
  49. package/build/__tests__/support/schemas/personSchema.js.map +1 -0
  50. package/build/__tests__/support/schemas/personWithDefaultsSchema.d.ts +13 -0
  51. package/build/__tests__/support/schemas/personWithDefaultsSchema.js +18 -0
  52. package/build/__tests__/support/schemas/personWithDefaultsSchema.js.map +1 -0
  53. package/build/bots/PromptGenerator.js +1 -0
  54. package/build/bots/PromptGenerator.js.map +1 -0
  55. package/build/bots/SprucebotLlmBotImpl.js +9 -4
  56. package/build/bots/SprucebotLlmBotImpl.js.map +1 -0
  57. package/build/bots/SprucebotLlmFactory.js +1 -0
  58. package/build/bots/SprucebotLlmFactory.js.map +1 -0
  59. package/build/bots/SprucebotLlmSkillImpl.js +1 -0
  60. package/build/bots/SprucebotLlmSkillImpl.js.map +1 -0
  61. package/build/bots/adapters/OpenAi.js +1 -0
  62. package/build/bots/adapters/OpenAi.js.map +1 -0
  63. package/build/bots/adapters/OpenAiMessageBuilder.js +1 -0
  64. package/build/bots/adapters/OpenAiMessageBuilder.js.map +1 -0
  65. package/build/bots/adapters/SpyOpenAiApi.js +1 -0
  66. package/build/bots/adapters/SpyOpenAiApi.js.map +1 -0
  67. package/build/bots/templates.js +1 -0
  68. package/build/bots/templates.js.map +1 -0
  69. package/build/chat.js +1 -0
  70. package/build/chat.js.map +1 -0
  71. package/build/chatWithImages.js +1 -0
  72. package/build/chatWithImages.js.map +1 -0
  73. package/build/errors/SpruceError.js +1 -0
  74. package/build/errors/SpruceError.js.map +1 -0
  75. package/build/errors/callbackError.builder.js +1 -0
  76. package/build/errors/callbackError.builder.js.map +1 -0
  77. package/build/errors/invalidCallback.builder.js +1 -0
  78. package/build/errors/invalidCallback.builder.js.map +1 -0
  79. package/build/errors/noBotInstanceSet.builder.js +1 -0
  80. package/build/errors/noBotInstanceSet.builder.js.map +1 -0
  81. package/build/examples/buildCallbackSkill.js +1 -0
  82. package/build/examples/buildCallbackSkill.js.map +1 -0
  83. package/build/examples/buildFileTransformerSkill.js +1 -0
  84. package/build/examples/buildFileTransformerSkill.js.map +1 -0
  85. package/build/examples/buildJokeSkill.js +1 -0
  86. package/build/examples/buildJokeSkill.js.map +1 -0
  87. package/build/examples/buildProfileSkill.js +1 -0
  88. package/build/examples/buildProfileSkill.js.map +1 -0
  89. package/build/examples/buildReceptionistSkill.js +1 -0
  90. package/build/examples/buildReceptionistSkill.js.map +1 -0
  91. package/build/fineTuningSprucebot/constants/DIRECTORY_SHARES.js +1 -0
  92. package/build/fineTuningSprucebot/constants/DIRECTORY_SHARES.js.map +1 -0
  93. package/build/fineTuningSprucebot/constants/FIRST_MESSAGES.js +1 -0
  94. package/build/fineTuningSprucebot/constants/FIRST_MESSAGES.js.map +1 -0
  95. package/build/fineTuningSprucebot/constants/GREETINGS.js +1 -0
  96. package/build/fineTuningSprucebot/constants/GREETINGS.js.map +1 -0
  97. package/build/fineTuningSprucebot/constants/OFF_THE_RAILS_CONVERSATIONS.js +1 -0
  98. package/build/fineTuningSprucebot/constants/OFF_THE_RAILS_CONVERSATIONS.js.map +1 -0
  99. package/build/fineTuningSprucebot/constants/TOPICS.js +1 -0
  100. package/build/fineTuningSprucebot/constants/TOPICS.js.map +1 -0
  101. package/build/fineTuningSprucebot/generateSamples.js +1 -0
  102. package/build/fineTuningSprucebot/generateSamples.js.map +1 -0
  103. package/build/fineTuningSprucebot/support.js +1 -0
  104. package/build/fineTuningSprucebot/support.js.map +1 -0
  105. package/build/fineTuningSprucebot/types.js +1 -0
  106. package/build/fineTuningSprucebot/types.js.map +1 -0
  107. package/build/index.js +1 -0
  108. package/build/index.js.map +1 -0
  109. package/build/llm.types.js +1 -0
  110. package/build/llm.types.js.map +1 -0
  111. package/build/parsingResponses/ResponseParser.js +1 -0
  112. package/build/parsingResponses/ResponseParser.js.map +1 -0
  113. package/build/parsingResponses/renderPlaceholder.js +1 -0
  114. package/build/parsingResponses/renderPlaceholder.js.map +1 -0
  115. package/build/tests/MockLlmSkill.js +1 -0
  116. package/build/tests/MockLlmSkill.js.map +1 -0
  117. package/build/tests/SpyAdapter.js +1 -0
  118. package/build/tests/SpyAdapter.js.map +1 -0
  119. package/build/tests/SpyLlmBot.js +1 -0
  120. package/build/tests/SpyLlmBot.js.map +1 -0
  121. package/package.json +14 -14
  122. package/build/esm/.spruce/errors/errors.types.d.ts +0 -52
  123. package/build/esm/.spruce/errors/errors.types.js +0 -1
  124. package/build/esm/.spruce/errors/options.types.d.ts +0 -13
  125. package/build/esm/.spruce/errors/options.types.js +0 -1
  126. package/build/esm/bots/PromptGenerator.d.ts +0 -22
  127. package/build/esm/bots/PromptGenerator.js +0 -74
  128. package/build/esm/bots/SprucebotLlmBotImpl.d.ts +0 -26
  129. package/build/esm/bots/SprucebotLlmBotImpl.js +0 -159
  130. package/build/esm/bots/SprucebotLlmFactory.d.ts +0 -15
  131. package/build/esm/bots/SprucebotLlmFactory.js +0 -41
  132. package/build/esm/bots/SprucebotLlmSkillImpl.d.ts +0 -12
  133. package/build/esm/bots/SprucebotLlmSkillImpl.js +0 -47
  134. package/build/esm/bots/adapters/OpenAi.d.ts +0 -11
  135. package/build/esm/bots/adapters/OpenAi.js +0 -46
  136. package/build/esm/bots/adapters/OpenAiMessageBuilder.d.ts +0 -18
  137. package/build/esm/bots/adapters/OpenAiMessageBuilder.js +0 -153
  138. package/build/esm/bots/adapters/SpyOpenAiApi.d.ts +0 -19
  139. package/build/esm/bots/adapters/SpyOpenAiApi.js +0 -49
  140. package/build/esm/bots/templates.d.ts +0 -4
  141. package/build/esm/bots/templates.js +0 -68
  142. package/build/esm/chat.d.ts +0 -1
  143. package/build/esm/chat.js +0 -53
  144. package/build/esm/chatWithImages.d.ts +0 -1
  145. package/build/esm/chatWithImages.js +0 -46
  146. package/build/esm/errors/SpruceError.d.ts +0 -6
  147. package/build/esm/errors/SpruceError.js +0 -25
  148. package/build/esm/errors/callbackError.builder.d.ts +0 -6
  149. package/build/esm/errors/callbackError.builder.js +0 -6
  150. package/build/esm/errors/invalidCallback.builder.d.ts +0 -17
  151. package/build/esm/errors/invalidCallback.builder.js +0 -17
  152. package/build/esm/errors/noBotInstanceSet.builder.d.ts +0 -6
  153. package/build/esm/errors/noBotInstanceSet.builder.js +0 -6
  154. package/build/esm/examples/buildCallbackSkill.d.ts +0 -2
  155. package/build/esm/examples/buildCallbackSkill.js +0 -57
  156. package/build/esm/examples/buildFileTransformerSkill.d.ts +0 -2
  157. package/build/esm/examples/buildFileTransformerSkill.js +0 -25
  158. package/build/esm/examples/buildJokeSkill.d.ts +0 -2
  159. package/build/esm/examples/buildJokeSkill.js +0 -12
  160. package/build/esm/examples/buildProfileSkill.d.ts +0 -2
  161. package/build/esm/examples/buildProfileSkill.js +0 -30
  162. package/build/esm/examples/buildReceptionistSkill.d.ts +0 -2
  163. package/build/esm/examples/buildReceptionistSkill.js +0 -16
  164. package/build/esm/fineTuningSprucebot/constants/DIRECTORY_SHARES.d.ts +0 -1
  165. package/build/esm/fineTuningSprucebot/constants/DIRECTORY_SHARES.js +0 -7
  166. package/build/esm/fineTuningSprucebot/constants/FIRST_MESSAGES.d.ts +0 -1
  167. package/build/esm/fineTuningSprucebot/constants/FIRST_MESSAGES.js +0 -17
  168. package/build/esm/fineTuningSprucebot/constants/GREETINGS.d.ts +0 -1
  169. package/build/esm/fineTuningSprucebot/constants/GREETINGS.js +0 -22
  170. package/build/esm/fineTuningSprucebot/constants/OFF_THE_RAILS_CONVERSATIONS.d.ts +0 -2
  171. package/build/esm/fineTuningSprucebot/constants/OFF_THE_RAILS_CONVERSATIONS.js +0 -32
  172. package/build/esm/fineTuningSprucebot/constants/TOPICS.d.ts +0 -2
  173. package/build/esm/fineTuningSprucebot/constants/TOPICS.js +0 -314
  174. package/build/esm/fineTuningSprucebot/generateSamples.d.ts +0 -1
  175. package/build/esm/fineTuningSprucebot/generateSamples.js +0 -41
  176. package/build/esm/fineTuningSprucebot/support.d.ts +0 -12
  177. package/build/esm/fineTuningSprucebot/support.js +0 -60
  178. package/build/esm/fineTuningSprucebot/types.d.ts +0 -15
  179. package/build/esm/fineTuningSprucebot/types.js +0 -1
  180. package/build/esm/index.d.ts +0 -10
  181. package/build/esm/index.js +0 -10
  182. package/build/esm/llm.types.d.ts +0 -84
  183. package/build/esm/llm.types.js +0 -6
  184. package/build/esm/parsingResponses/ResponseParser.d.ts +0 -18
  185. package/build/esm/parsingResponses/ResponseParser.js +0 -115
  186. package/build/esm/parsingResponses/renderPlaceholder.d.ts +0 -1
  187. package/build/esm/parsingResponses/renderPlaceholder.js +0 -4
  188. package/build/esm/tests/MockLlmSkill.d.ts +0 -14
  189. package/build/esm/tests/MockLlmSkill.js +0 -60
  190. package/build/esm/tests/SpyAdapter.d.ts +0 -8
  191. package/build/esm/tests/SpyAdapter.js +0 -21
  192. package/build/esm/tests/SpyLlmBot.d.ts +0 -12
  193. package/build/esm/tests/SpyLlmBot.js +0 -20
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAi.test.js","sourceRoot":"","sources":["../../../../src/__tests__/behavioral/adapters/OpenAi.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { SchemaValues } from '@sprucelabs/schema';
2
+ import AbstractLlmTest from '../../support/AbstractLlmTest';
3
+ import { personSchema } from '../../support/schemas/personSchema';
4
+ export default class PromptGeneratorTest extends AbstractLlmTest {
5
+ private bot;
6
+ private prompt;
7
+ private eta;
8
+ protected beforeEach(): Promise<void>;
9
+ protected throwsWhenNotSentBot(): Promise<void>;
10
+ protected generatesPromptWithJustYouAre(): Promise<void>;
11
+ protected generatesWithStateSchema(values: SchemaValues<typeof personSchema>): Promise<void>;
12
+ protected includesPastMessages(): Promise<void>;
13
+ protected writeFullPromptToLogForReading(): Promise<void>;
14
+ protected canOverrideTemplate(): Promise<void>;
15
+ private renderMessage;
16
+ private assertMessageGeneratesPrompt;
17
+ private generate;
18
+ private SpyBot;
19
+ private reloadGenerator;
20
+ }
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ const schema_1 = require("@sprucelabs/schema");
46
+ const test_utils_1 = require("@sprucelabs/test-utils");
47
+ const eta_1 = require("eta");
48
+ const PromptGenerator_1 = __importStar(require("../../../bots/PromptGenerator"));
49
+ const templates_1 = require("../../../bots/templates");
50
+ const SpyLlmBot_1 = __importDefault(require("../../../tests/SpyLlmBot"));
51
+ const AbstractLlmTest_1 = __importDefault(require("../../support/AbstractLlmTest"));
52
+ const personSchema_1 = require("../../support/schemas/personSchema");
53
+ let PromptGeneratorTest = class PromptGeneratorTest extends AbstractLlmTest_1.default {
54
+ async beforeEach() {
55
+ await super.beforeEach();
56
+ this.bot = this.SpyBot();
57
+ this.reloadGenerator();
58
+ this.eta = new eta_1.Eta();
59
+ }
60
+ async throwsWhenNotSentBot() {
61
+ //@ts-ignore
62
+ const err = test_utils_1.assert.doesThrow(() => new PromptGenerator_1.default());
63
+ test_utils_1.errorAssert.assertError(err, 'MISSING_PARAMETERS', {
64
+ parameters: ['bot'],
65
+ });
66
+ }
67
+ async generatesPromptWithJustYouAre() {
68
+ const youAre = (0, test_utils_1.generateId)();
69
+ const message = (0, test_utils_1.generateId)();
70
+ const expected = await this.renderMessage({
71
+ youAre,
72
+ messages: [
73
+ {
74
+ from: 'Me',
75
+ message,
76
+ },
77
+ ],
78
+ });
79
+ await this.assertMessageGeneratesPrompt({
80
+ options: {
81
+ youAre,
82
+ },
83
+ message,
84
+ expected,
85
+ });
86
+ }
87
+ async generatesWithStateSchema(values) {
88
+ const state = (0, schema_1.normalizeSchemaValues)(personSchema_1.personSchema, values, {});
89
+ (0, PromptGenerator_1.setUndefinedToNull)(state);
90
+ const expected = await this.renderMessage({
91
+ stateSchemaJson: JSON.stringify(personSchema_1.personSchema),
92
+ stateJson: JSON.stringify(state),
93
+ });
94
+ await this.assertMessageGeneratesPrompt({
95
+ options: {
96
+ stateSchema: personSchema_1.personSchema,
97
+ },
98
+ expected,
99
+ state,
100
+ });
101
+ }
102
+ async includesPastMessages() {
103
+ const messages = [
104
+ {
105
+ from: 'Me',
106
+ message: 'Hey there!',
107
+ },
108
+ {
109
+ from: 'You',
110
+ message: 'What the??',
111
+ },
112
+ ];
113
+ this.bot.setMessages(messages);
114
+ const expected = await this.renderMessage({
115
+ messages,
116
+ });
117
+ const actual = await this.generate();
118
+ test_utils_1.assert.isEqual(actual, expected);
119
+ }
120
+ async writeFullPromptToLogForReading() {
121
+ const skill = this.Skill({
122
+ yourJobIfYouChooseToAcceptItIs: 'to tell the best knock knock jokes you can think of! ',
123
+ pleaseKeepInMindThat: [
124
+ 'our audience is PG, so keep it light and friendly!',
125
+ 'You should never laugh at someone who does not get the joke.',
126
+ ],
127
+ weAreDoneWhen: 'you have told 3 jokes!',
128
+ });
129
+ this.bot = this.Bot({
130
+ youAre: 'A bot that is always in a good mood. You love complementing people and making sure they are happy!',
131
+ skill,
132
+ stateSchema: personSchema_1.personSchema,
133
+ state: {},
134
+ });
135
+ this.reloadGenerator();
136
+ this.log(await this.generate());
137
+ }
138
+ async canOverrideTemplate() {
139
+ const template = (0, test_utils_1.generateId)();
140
+ this.reloadGenerator({
141
+ promptTemplate: template,
142
+ });
143
+ const actual = await this.generate();
144
+ test_utils_1.assert.isEqual(actual, template);
145
+ }
146
+ async renderMessage(context) {
147
+ return await this.eta.renderStringAsync(templates_1.PROMPT_TEMPLATE, {
148
+ youAre: this.youAre,
149
+ messages: [
150
+ {
151
+ from: 'Me',
152
+ message: 'Hey there!',
153
+ },
154
+ ],
155
+ ...context,
156
+ });
157
+ }
158
+ async assertMessageGeneratesPrompt(options) {
159
+ const { message = 'Hey there!', expected, options: botOptions, state, } = options;
160
+ this.bot = this.SpyBot(botOptions);
161
+ this.reloadGenerator();
162
+ if (state) {
163
+ await this.bot.updateState(state);
164
+ }
165
+ const prompt = await this.generate(message);
166
+ test_utils_1.assert.isEqual(prompt, expected);
167
+ }
168
+ async generate(message) {
169
+ if (message) {
170
+ this.bot.setMessages([
171
+ {
172
+ from: 'Me',
173
+ message,
174
+ },
175
+ ]);
176
+ }
177
+ return await this.prompt.generate();
178
+ }
179
+ SpyBot(options) {
180
+ return this.Bot({ ...options, Class: SpyLlmBot_1.default });
181
+ }
182
+ reloadGenerator(options) {
183
+ this.prompt = PromptGenerator_1.default.Generator(this.bot, options);
184
+ }
185
+ };
186
+ __decorate([
187
+ (0, test_utils_1.test)()
188
+ ], PromptGeneratorTest.prototype, "throwsWhenNotSentBot", null);
189
+ __decorate([
190
+ (0, test_utils_1.test)()
191
+ ], PromptGeneratorTest.prototype, "generatesPromptWithJustYouAre", null);
192
+ __decorate([
193
+ (0, test_utils_1.test)('can generate with state schema and empty state', {}),
194
+ (0, test_utils_1.test)('can generate with state schema and populated state', {
195
+ firstName: 'tay',
196
+ })
197
+ ], PromptGeneratorTest.prototype, "generatesWithStateSchema", null);
198
+ __decorate([
199
+ (0, test_utils_1.test)()
200
+ ], PromptGeneratorTest.prototype, "includesPastMessages", null);
201
+ __decorate([
202
+ (0, test_utils_1.test)()
203
+ ], PromptGeneratorTest.prototype, "writeFullPromptToLogForReading", null);
204
+ __decorate([
205
+ (0, test_utils_1.test)()
206
+ ], PromptGeneratorTest.prototype, "canOverrideTemplate", null);
207
+ PromptGeneratorTest = __decorate([
208
+ (0, test_utils_1.suite)()
209
+ ], PromptGeneratorTest);
210
+ exports.default = PromptGeneratorTest;
211
+ //# sourceMappingURL=PromptGenerator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptGenerator.test.js","sourceRoot":"","sources":["../../../../src/__tests__/behavioral/prompts/PromptGenerator.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import AbstractLlmTest from '../../support/AbstractLlmTest';
2
+ export default class ResponseParserTest extends AbstractLlmTest {
3
+ private parser;
4
+ private callbacks;
5
+ protected beforeEach(): Promise<void>;
6
+ protected canSetAndGetInstance(): Promise<void>;
7
+ protected emptyReturnedIfResponseHasNoPlaceholders(): Promise<void>;
8
+ protected knowsWhenDone(): Promise<void>;
9
+ protected gettingInstanceWithoutOneSetReturnsFresh(): Promise<void>;
10
+ protected parsesStateWithNothingElse(input: Record<string, any>): Promise<void>;
11
+ protected removesStateFromResponse(): Promise<void>;
12
+ protected callsCallbacksWhenPlaceholdersFoundInResponse(key: string): Promise<void>;
13
+ protected canCallSecondPlacehloder(): Promise<void>;
14
+ protected callbacksPopulatePlaceholders(placeholder: string): Promise<void>;
15
+ protected usesBoundariesToFindPlaceholders(): Promise<void>;
16
+ protected replacesPlaceholderInTheText(): Promise<void>;
17
+ protected clearsOutCallbackMarkupPlaceholders(): Promise<void>;
18
+ protected returnsResultsOfCallback(): Promise<void>;
19
+ protected throwsIfMoreThanOneCallbackRequested(): Promise<void>;
20
+ protected canParseWithoutSpaceInHandlebars(): Promise<void>;
21
+ protected passesParametersToCallback(): Promise<void>;
22
+ protected throwsIfBadCallbackMarkupPassed(): Promise<void>;
23
+ protected throwsWithDifferentBadCallbackMarkup(): Promise<void>;
24
+ protected throwsWithAdvancedCallbackMarkup(): Promise<void>;
25
+ protected throwsWithAdvancedCallbackMarkupThatIsWrong(): Promise<void>;
26
+ protected throwsExpectedErrorIfCallbackFails(): Promise<void>;
27
+ private assertPromptThrowsWithErrorIncludingCallbacks;
28
+ private defaultCallback;
29
+ private parse;
30
+ private generateStateSchema;
31
+ private assertDone;
32
+ private assertNotDone;
33
+ private parsingEquals;
34
+ private setCallback;
35
+ }
@@ -0,0 +1,312 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const test_utils_1 = require("@sprucelabs/test-utils");
13
+ const templates_1 = require("../../../bots/templates");
14
+ const renderPlaceholder_1 = __importDefault(require("../../../parsingResponses/renderPlaceholder"));
15
+ const ResponseParser_1 = __importDefault(require("../../../parsingResponses/ResponseParser"));
16
+ const AbstractLlmTest_1 = __importDefault(require("../../support/AbstractLlmTest"));
17
+ let ResponseParserTest = class ResponseParserTest extends AbstractLlmTest_1.default {
18
+ constructor() {
19
+ super(...arguments);
20
+ this.callbacks = {};
21
+ }
22
+ async beforeEach() {
23
+ await super.beforeEach();
24
+ this.parser = ResponseParser_1.default.getInstance();
25
+ this.callbacks = {};
26
+ }
27
+ async canSetAndGetInstance() {
28
+ ResponseParser_1.default.setInstance(this.parser);
29
+ const match = ResponseParser_1.default.getInstance();
30
+ test_utils_1.assert.isEqual(match, this.parser);
31
+ }
32
+ async emptyReturnedIfResponseHasNoPlaceholders() {
33
+ await this.assertNotDone('hello world');
34
+ await this.assertNotDone('DONE');
35
+ }
36
+ async knowsWhenDone() {
37
+ await this.assertDone(`hey there!!! ${templates_1.DONE_TOKEN}`);
38
+ }
39
+ async gettingInstanceWithoutOneSetReturnsFresh() {
40
+ const instance = ResponseParser_1.default.getInstance();
41
+ test_utils_1.assert.isInstanceOf(instance, ResponseParser_1.default);
42
+ const instance2 = ResponseParser_1.default.getInstance();
43
+ test_utils_1.assert.isEqual(instance, instance2);
44
+ }
45
+ async parsesStateWithNothingElse(input) {
46
+ const state = this.generateStateSchema(input);
47
+ await this.parsingEquals(state, {
48
+ isDone: false,
49
+ state: input,
50
+ message: '',
51
+ });
52
+ }
53
+ async removesStateFromResponse() {
54
+ const state = this.generateStateSchema({ hello: 'world' });
55
+ const message = `hello ${state} world`;
56
+ await this.parsingEquals(message, {
57
+ isDone: false,
58
+ state: { hello: 'world' },
59
+ message: 'hello world',
60
+ });
61
+ }
62
+ async callsCallbacksWhenPlaceholdersFoundInResponse(key) {
63
+ let wasHit = false;
64
+ this.setCallback(key, {
65
+ cb: () => {
66
+ wasHit = true;
67
+ return '';
68
+ },
69
+ useThisWhenever: 'you are asking for my favorite color.',
70
+ });
71
+ await this.parse((0, renderPlaceholder_1.default)(key));
72
+ test_utils_1.assert.isTrue(wasHit);
73
+ }
74
+ async canCallSecondPlacehloder() {
75
+ let wasHit = false;
76
+ this.setCallback('favoriteColors', {
77
+ cb: () => {
78
+ return '';
79
+ },
80
+ useThisWhenever: (0, test_utils_1.generateId)(),
81
+ });
82
+ this.setCallback('taco', {
83
+ cb: () => {
84
+ wasHit = true;
85
+ return '';
86
+ },
87
+ useThisWhenever: (0, test_utils_1.generateId)(),
88
+ });
89
+ await this.parse((0, renderPlaceholder_1.default)('taco'));
90
+ test_utils_1.assert.isTrue(wasHit);
91
+ }
92
+ async callbacksPopulatePlaceholders(placeholder) {
93
+ const message = (0, renderPlaceholder_1.default)(placeholder);
94
+ this.setCallback(placeholder, this.defaultCallback(placeholder));
95
+ const response = await this.parse(message);
96
+ test_utils_1.assert.isEqualDeep(response, {
97
+ isDone: false,
98
+ state: undefined,
99
+ message: placeholder,
100
+ callbackResults: undefined,
101
+ });
102
+ }
103
+ async usesBoundariesToFindPlaceholders() {
104
+ const message = `taco ${(0, renderPlaceholder_1.default)('taco')} taco`;
105
+ this.setCallback('taco', this.defaultCallback('bravo'));
106
+ const response = await this.parse(message);
107
+ test_utils_1.assert.isEqual(response.message, 'taco bravo taco');
108
+ }
109
+ async replacesPlaceholderInTheText() {
110
+ this.setCallback('personName', this.defaultCallback('Tay'));
111
+ const p = (0, renderPlaceholder_1.default)('personName');
112
+ const response = await this.parse(`hey there ${p}!`);
113
+ test_utils_1.assert.isEqual(response.message, 'hey there Tay!');
114
+ }
115
+ async clearsOutCallbackMarkupPlaceholders() {
116
+ const name = (0, test_utils_1.generateId)();
117
+ const message = (0, test_utils_1.generateId)();
118
+ this.setCallback(name, this.defaultCallback('Tay'));
119
+ const response = await this.parse(`${message} ${renderCallbackMarkup(name)}`);
120
+ test_utils_1.assert.isEqual(response.message, message);
121
+ }
122
+ async returnsResultsOfCallback() {
123
+ const results = (0, test_utils_1.generateId)();
124
+ this.setCallback('availableTimes', this.defaultCallback(results));
125
+ const response = await this.parse(`hey there ${renderCallbackMarkup('availableTimes')}`);
126
+ test_utils_1.assert.isEqual(response.callbackResults, results);
127
+ }
128
+ async throwsIfMoreThanOneCallbackRequested() {
129
+ this.setCallback('firstCallback', this.defaultCallback((0, test_utils_1.generateId)()));
130
+ this.setCallback('secondCallback', this.defaultCallback((0, test_utils_1.generateId)()));
131
+ const err = await test_utils_1.assert.doesThrowAsync(() => this.parse(`${renderCallbackMarkup('firstCallback')} ${renderCallbackMarkup('secondCallback')}`));
132
+ test_utils_1.errorAssert.assertError(err, 'CALLBACK_ERROR');
133
+ }
134
+ async canParseWithoutSpaceInHandlebars() {
135
+ const results = (0, test_utils_1.generateId)();
136
+ this.setCallback('availableTimes', this.defaultCallback(results));
137
+ const response = await this.parse(`hey there ${renderCallbackMarkup('availableTimes').replaceAll(' ', '')}`);
138
+ test_utils_1.assert.isEqual(response.callbackResults, results);
139
+ }
140
+ async passesParametersToCallback() {
141
+ let passedParams;
142
+ const data = {
143
+ time: (0, test_utils_1.generateId)(),
144
+ date: (0, test_utils_1.generateId)(),
145
+ [(0, test_utils_1.generateId)()]: (0, test_utils_1.generateId)(),
146
+ };
147
+ this.setCallback('testing', {
148
+ cb: (params) => {
149
+ passedParams = params;
150
+ return (0, test_utils_1.generateId)();
151
+ },
152
+ useThisWhenever: (0, test_utils_1.generateId)(),
153
+ });
154
+ await this.parse(renderCallbackMarkup('testing', data));
155
+ test_utils_1.assert.isEqualDeep(passedParams, data);
156
+ }
157
+ async throwsIfBadCallbackMarkupPassed() {
158
+ await this.assertPromptThrowsWithErrorIncludingCallbacks('<< taco />>', '<< taco />>', ['burrito']);
159
+ }
160
+ async throwsWithDifferentBadCallbackMarkup() {
161
+ await this.assertPromptThrowsWithErrorIncludingCallbacks('hey there <<listOrganizations/>>', '<<listOrganizations/>>', ['listLocations']);
162
+ }
163
+ async throwsWithAdvancedCallbackMarkup() {
164
+ await this.assertPromptThrowsWithErrorIncludingCallbacks('hey there <<listOrganizations>>{"hello": "world"}<</listOrganizations>>', '<<listOrganizations>>{"hello": "world"}<</listOrganizations>>', ['login']);
165
+ }
166
+ async throwsWithAdvancedCallbackMarkupThatIsWrong() {
167
+ await this.assertPromptThrowsWithErrorIncludingCallbacks('hey there <<listOrganizations{"hello": "world"} >>', '<<listOrganizations{"hello": "world"} >>', ['login']);
168
+ }
169
+ async throwsExpectedErrorIfCallbackFails() {
170
+ const err = await test_utils_1.assert.doesThrowAsync(() => this.parse('hey there <<listLocations/>>', {
171
+ listLocations: {
172
+ cb: () => {
173
+ throw new Error('I am a bad callback');
174
+ },
175
+ useThisWhenever: (0, test_utils_1.generateId)(),
176
+ },
177
+ }));
178
+ test_utils_1.errorAssert.assertError(err, 'CALLBACK_ERROR');
179
+ }
180
+ async assertPromptThrowsWithErrorIncludingCallbacks(prompt, match, callbackKeys) {
181
+ const callbacks = {};
182
+ for (const key of callbackKeys) {
183
+ callbacks[key] = {
184
+ cb: () => '',
185
+ useThisWhenever: (0, test_utils_1.generateId)(),
186
+ };
187
+ }
188
+ const err = await test_utils_1.assert.doesThrowAsync(() => this.parse(prompt, callbacks));
189
+ test_utils_1.errorAssert.assertError(err, 'INVALID_CALLBACK', {
190
+ validCallbacks: callbackKeys,
191
+ matchedCallback: match,
192
+ });
193
+ }
194
+ defaultCallback(response) {
195
+ return {
196
+ cb: () => {
197
+ return response;
198
+ },
199
+ useThisWhenever: (0, test_utils_1.generateId)(),
200
+ };
201
+ }
202
+ async parse(message, callbacks) {
203
+ return await this.parser.parse(message, callbacks ?? this.callbacks);
204
+ }
205
+ generateStateSchema(input) {
206
+ return `${templates_1.STATE_BOUNDARY} ${JSON.stringify(input)} ${templates_1.STATE_BOUNDARY}`;
207
+ }
208
+ async assertDone(message) {
209
+ await this.parsingEquals(message, {
210
+ isDone: true,
211
+ state: undefined,
212
+ message: removeTokens(message),
213
+ });
214
+ }
215
+ async assertNotDone(message) {
216
+ await this.parsingEquals(message, {
217
+ isDone: false,
218
+ state: undefined,
219
+ message: removeTokens(message),
220
+ });
221
+ }
222
+ async parsingEquals(message, expected) {
223
+ const results = await this.parse(message);
224
+ test_utils_1.assert.isEqualDeep(results, { callbackResults: undefined, ...expected });
225
+ }
226
+ setCallback(key, callback) {
227
+ this.callbacks[key] = callback;
228
+ }
229
+ };
230
+ __decorate([
231
+ (0, test_utils_1.test)()
232
+ ], ResponseParserTest.prototype, "canSetAndGetInstance", null);
233
+ __decorate([
234
+ (0, test_utils_1.test)()
235
+ ], ResponseParserTest.prototype, "emptyReturnedIfResponseHasNoPlaceholders", null);
236
+ __decorate([
237
+ (0, test_utils_1.test)()
238
+ ], ResponseParserTest.prototype, "knowsWhenDone", null);
239
+ __decorate([
240
+ (0, test_utils_1.test)()
241
+ ], ResponseParserTest.prototype, "gettingInstanceWithoutOneSetReturnsFresh", null);
242
+ __decorate([
243
+ (0, test_utils_1.test)('parses state 1', {
244
+ hello: 'world',
245
+ }),
246
+ (0, test_utils_1.test)('parses state 2', {
247
+ what: 'the??',
248
+ })
249
+ ], ResponseParserTest.prototype, "parsesStateWithNothingElse", null);
250
+ __decorate([
251
+ (0, test_utils_1.test)()
252
+ ], ResponseParserTest.prototype, "removesStateFromResponse", null);
253
+ __decorate([
254
+ (0, test_utils_1.test)('can handle single callback 1', 'favoriteColors'),
255
+ (0, test_utils_1.test)('can handle single callback 2', 'tacoBravo')
256
+ ], ResponseParserTest.prototype, "callsCallbacksWhenPlaceholdersFoundInResponse", null);
257
+ __decorate([
258
+ (0, test_utils_1.test)()
259
+ ], ResponseParserTest.prototype, "canCallSecondPlacehloder", null);
260
+ __decorate([
261
+ (0, test_utils_1.test)('callback populate placeholders 1', 'bravo'),
262
+ (0, test_utils_1.test)('callback populate placeholders 2', 'taco')
263
+ ], ResponseParserTest.prototype, "callbacksPopulatePlaceholders", null);
264
+ __decorate([
265
+ (0, test_utils_1.test)()
266
+ ], ResponseParserTest.prototype, "usesBoundariesToFindPlaceholders", null);
267
+ __decorate([
268
+ (0, test_utils_1.test)()
269
+ ], ResponseParserTest.prototype, "replacesPlaceholderInTheText", null);
270
+ __decorate([
271
+ (0, test_utils_1.test)()
272
+ ], ResponseParserTest.prototype, "clearsOutCallbackMarkupPlaceholders", null);
273
+ __decorate([
274
+ (0, test_utils_1.test)()
275
+ ], ResponseParserTest.prototype, "returnsResultsOfCallback", null);
276
+ __decorate([
277
+ (0, test_utils_1.test)()
278
+ ], ResponseParserTest.prototype, "throwsIfMoreThanOneCallbackRequested", null);
279
+ __decorate([
280
+ (0, test_utils_1.test)()
281
+ ], ResponseParserTest.prototype, "canParseWithoutSpaceInHandlebars", null);
282
+ __decorate([
283
+ (0, test_utils_1.test)()
284
+ ], ResponseParserTest.prototype, "passesParametersToCallback", null);
285
+ __decorate([
286
+ (0, test_utils_1.test)()
287
+ ], ResponseParserTest.prototype, "throwsIfBadCallbackMarkupPassed", null);
288
+ __decorate([
289
+ (0, test_utils_1.test)()
290
+ ], ResponseParserTest.prototype, "throwsWithDifferentBadCallbackMarkup", null);
291
+ __decorate([
292
+ (0, test_utils_1.test)()
293
+ ], ResponseParserTest.prototype, "throwsWithAdvancedCallbackMarkup", null);
294
+ __decorate([
295
+ (0, test_utils_1.test)()
296
+ ], ResponseParserTest.prototype, "throwsWithAdvancedCallbackMarkupThatIsWrong", null);
297
+ __decorate([
298
+ (0, test_utils_1.test)()
299
+ ], ResponseParserTest.prototype, "throwsExpectedErrorIfCallbackFails", null);
300
+ ResponseParserTest = __decorate([
301
+ (0, test_utils_1.suite)()
302
+ ], ResponseParserTest);
303
+ exports.default = ResponseParserTest;
304
+ function removeTokens(message) {
305
+ return message.replace(templates_1.DONE_TOKEN, '').trim();
306
+ }
307
+ function renderCallbackMarkup(name, data) {
308
+ return data
309
+ ? `<< ${name} >>${JSON.stringify(data)}<</ ${name} >>`
310
+ : `<< ${name} />>`;
311
+ }
312
+ //# sourceMappingURL=ResponseParser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseParser.test.js","sourceRoot":"","sources":["../../../../src/__tests__/behavioral/prompts/ResponseParser.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import AbstractLlmTest from '../../support/AbstractLlmTest';
2
+ export default class SkillTest extends AbstractLlmTest {
3
+ private skill;
4
+ private readonly emptyState;
5
+ protected beforeEach(): Promise<void>;
6
+ protected skillThrowsWhenMissing(): Promise<void>;
7
+ protected canCreateSkill(): void;
8
+ protected canSerializeSkill(): Promise<void>;
9
+ protected canAddSkillToBotAndReturnItSerializing(): Promise<void>;
10
+ protected updatingStateEmitsEvent(): Promise<void>;
11
+ protected canGetAndUpdateState(): Promise<void>;
12
+ protected canPassStateInContructor(): Promise<void>;
13
+ protected honorsDefaultValuesInState(): Promise<void>;
14
+ protected passesPlaceholdersThroughToSerializedSkill(): Promise<void>;
15
+ protected skillCanSetModel(): Promise<void>;
16
+ private serialize;
17
+ private assertStateEquals;
18
+ private updateState;
19
+ }