@sprucelabs/sprucebot-llm 11.1.13 → 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 +1 -1
  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,188 @@
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 schema_1 = require("@sprucelabs/schema");
13
+ const test_utils_1 = require("@sprucelabs/test-utils");
14
+ const OpenAi_1 = __importDefault(require("../../../bots/adapters/OpenAi"));
15
+ const SpyOpenAiApi_1 = __importDefault(require("../../../bots/adapters/SpyOpenAiApi"));
16
+ const SprucebotLlmSkillImpl_1 = __importDefault(require("../../../bots/SprucebotLlmSkillImpl"));
17
+ const AbstractLlmTest_1 = __importDefault(require("../../support/AbstractLlmTest"));
18
+ const personSchema_1 = require("../../support/schemas/personSchema");
19
+ let SkillTest = class SkillTest extends AbstractLlmTest_1.default {
20
+ constructor() {
21
+ super(...arguments);
22
+ this.emptyState = {};
23
+ }
24
+ async beforeEach() {
25
+ await super.beforeEach();
26
+ this.skill = this.Skill();
27
+ }
28
+ async skillThrowsWhenMissing() {
29
+ //@ts-ignore
30
+ const err = test_utils_1.assert.doesThrow(() => this.bots.Skill());
31
+ test_utils_1.errorAssert.assertError(err, 'MISSING_PARAMETERS', {
32
+ parameters: ['yourJobIfYouChooseToAcceptItIs'],
33
+ });
34
+ }
35
+ canCreateSkill() {
36
+ test_utils_1.assert.isInstanceOf(this.skill, SprucebotLlmSkillImpl_1.default);
37
+ }
38
+ async canSerializeSkill() {
39
+ const options = {
40
+ weAreDoneWhen: (0, test_utils_1.generateId)(),
41
+ yourJobIfYouChooseToAcceptItIs: (0, test_utils_1.generateId)(),
42
+ pleaseKeepInMindThat: [(0, test_utils_1.generateId)(), (0, test_utils_1.generateId)()],
43
+ stateSchema: personSchema_1.personSchema,
44
+ state: this.emptyState,
45
+ };
46
+ this.skill = this.Skill(options);
47
+ const serialized = this.serialize();
48
+ test_utils_1.assert.isEqualDeep(serialized, options);
49
+ }
50
+ async canAddSkillToBotAndReturnItSerializing() {
51
+ const bot = this.Bot({
52
+ skill: this.skill,
53
+ });
54
+ const { skill } = bot.serialize();
55
+ test_utils_1.assert.isEqualDeep(skill, this.skill.serialize());
56
+ }
57
+ async updatingStateEmitsEvent() {
58
+ this.skill = this.Skill({
59
+ stateSchema: personSchema_1.personSchema,
60
+ });
61
+ let wasHit = false;
62
+ await this.skill.on('did-update-state', () => {
63
+ wasHit = true;
64
+ });
65
+ await this.updateState({
66
+ firstName: (0, test_utils_1.generateId)(),
67
+ });
68
+ test_utils_1.assert.isTrue(wasHit);
69
+ }
70
+ async canGetAndUpdateState() {
71
+ this.skill = this.Skill({
72
+ stateSchema: personSchema_1.personSchema,
73
+ });
74
+ const expected = {
75
+ ...this.emptyState,
76
+ };
77
+ this.assertStateEquals(expected);
78
+ expected.firstName = 'test';
79
+ await this.updateState({
80
+ firstName: expected.firstName,
81
+ });
82
+ this.assertStateEquals(expected);
83
+ expected.lastName = (0, test_utils_1.generateId)();
84
+ await this.updateState({
85
+ lastName: expected.lastName,
86
+ });
87
+ this.assertStateEquals(expected);
88
+ }
89
+ async canPassStateInContructor() {
90
+ const state = {
91
+ firstName: (0, test_utils_1.generateId)(),
92
+ };
93
+ this.skill = this.Skill({
94
+ stateSchema: personSchema_1.personSchema,
95
+ state,
96
+ });
97
+ this.assertStateEquals({ ...state });
98
+ }
99
+ async honorsDefaultValuesInState() {
100
+ const stateSchema = (0, schema_1.buildSchema)({
101
+ id: 'test',
102
+ fields: {
103
+ ...personSchema_1.personSchema.fields,
104
+ age: {
105
+ type: 'number',
106
+ isRequired: true,
107
+ defaultValue: 21,
108
+ },
109
+ },
110
+ });
111
+ this.skill = this.Skill({
112
+ stateSchema,
113
+ });
114
+ this.assertStateEquals({
115
+ age: 21,
116
+ });
117
+ }
118
+ async passesPlaceholdersThroughToSerializedSkill() {
119
+ const callbacks = {
120
+ favoriteColorOptions: {
121
+ cb: () => 'Taco, Burrito, Cheezy Crunch',
122
+ useThisWhenever: 'you are asking for a persons favorite color',
123
+ },
124
+ };
125
+ this.skill = this.Skill({
126
+ callbacks,
127
+ });
128
+ test_utils_1.assert.isEqualDeep(this.serialize().callbacks, callbacks);
129
+ }
130
+ async skillCanSetModel() {
131
+ OpenAi_1.default.OpenAI = SpyOpenAiApi_1.default;
132
+ const model = 'davinci:ft-personal:sprucebot-concierge-2023-04-28-04-42-19';
133
+ this.skill = this.Skill({
134
+ model,
135
+ });
136
+ test_utils_1.assert.isEqual(this.serialize().model, model);
137
+ const bot = this.Bot({
138
+ skill: this.skill,
139
+ });
140
+ await bot.sendMessage('what the!?');
141
+ test_utils_1.assert.isEqual(this.adapter.lastSendOptions?.model, model);
142
+ }
143
+ serialize() {
144
+ return this.skill.serialize();
145
+ }
146
+ assertStateEquals(expected) {
147
+ const state = this.skill.getState();
148
+ test_utils_1.assert.isEqualDeep(state, expected);
149
+ }
150
+ async updateState(updates) {
151
+ await this.skill.updateState(updates);
152
+ }
153
+ };
154
+ __decorate([
155
+ (0, test_utils_1.test)()
156
+ ], SkillTest.prototype, "skillThrowsWhenMissing", null);
157
+ __decorate([
158
+ (0, test_utils_1.test)()
159
+ ], SkillTest.prototype, "canCreateSkill", null);
160
+ __decorate([
161
+ (0, test_utils_1.test)()
162
+ ], SkillTest.prototype, "canSerializeSkill", null);
163
+ __decorate([
164
+ (0, test_utils_1.test)()
165
+ ], SkillTest.prototype, "canAddSkillToBotAndReturnItSerializing", null);
166
+ __decorate([
167
+ (0, test_utils_1.test)()
168
+ ], SkillTest.prototype, "updatingStateEmitsEvent", null);
169
+ __decorate([
170
+ (0, test_utils_1.test)()
171
+ ], SkillTest.prototype, "canGetAndUpdateState", null);
172
+ __decorate([
173
+ (0, test_utils_1.test)()
174
+ ], SkillTest.prototype, "canPassStateInContructor", null);
175
+ __decorate([
176
+ (0, test_utils_1.test)()
177
+ ], SkillTest.prototype, "honorsDefaultValuesInState", null);
178
+ __decorate([
179
+ (0, test_utils_1.test)()
180
+ ], SkillTest.prototype, "passesPlaceholdersThroughToSerializedSkill", null);
181
+ __decorate([
182
+ (0, test_utils_1.test)()
183
+ ], SkillTest.prototype, "skillCanSetModel", null);
184
+ SkillTest = __decorate([
185
+ (0, test_utils_1.suite)()
186
+ ], SkillTest);
187
+ exports.default = SkillTest;
188
+ //# sourceMappingURL=Skill.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skill.test.js","sourceRoot":"","sources":["../../../../src/__tests__/behavioral/skills/Skill.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import AbstractLlmTest from '../../support/AbstractLlmTest';
2
+ export default class MockLlmSkillTest extends AbstractLlmTest {
3
+ private skill;
4
+ private skillOptions;
5
+ protected beforeEach(): Promise<void>;
6
+ protected throwsWhenMissingRequired(): Promise<void>;
7
+ protected assertYourJobDoesNotThrowIfMatches(): Promise<void>;
8
+ protected assertYourJobThrowsIfNotMatching(): Promise<void>;
9
+ protected weAreDoneWhenDoesNotThrowIfMatches(): Promise<void>;
10
+ protected weAreDoneWhenThrowsIfNotMatching(): Promise<void>;
11
+ protected pleaseKeepInMindThatDoesNotThrowIfMatches(): Promise<void>;
12
+ protected pleaseKeepInMindThatThrowsIfNotMatching(): Promise<void>;
13
+ protected modelDoesNotThrowIfMatches(): Promise<void>;
14
+ protected modelThrowsIfNotMatching(): Promise<void>;
15
+ protected canUpdateState(): Promise<void>;
16
+ protected newStateUpdateWins(): Promise<void>;
17
+ protected throwsIfStateSchemaDoesNotMatch(): Promise<void>;
18
+ protected throwsIfStateSchemaDoesNotMatch2(): Promise<void>;
19
+ protected doesNotThrowIfStateSchemaMatches(): Promise<void>;
20
+ protected throwsIfDoesNotHaveCallback(): Promise<void>;
21
+ protected doesNotThrowIfHasCallback(): Promise<void>;
22
+ protected throwsIfCallbackOptionsDoNotMatch(): Promise<void>;
23
+ protected doesNotThrowIfCallbackOptionsMatch(): Promise<void>;
24
+ protected throwsIfCallbackParametersDoNotMatch(): Promise<void>;
25
+ protected doesNotThrowIfCallbackParametersMatch(): Promise<void>;
26
+ protected creatingMockLlmSetsStaticInstance(): Promise<void>;
27
+ protected canInvokeCallback(): Promise<void>;
28
+ protected invokingCallbackThrowsIfCallbackNotFound(): Promise<void>;
29
+ private invokeCallback;
30
+ private assertDoesNotHaveCallback;
31
+ private assertHasCallback;
32
+ private reloadSkillWithState1;
33
+ private assertStateEquals;
34
+ private getState;
35
+ private updateState;
36
+ private reloadSkill;
37
+ }
@@ -0,0 +1,340 @@
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 schema_1 = require("@sprucelabs/schema");
13
+ const test_utils_1 = require("@sprucelabs/test-utils");
14
+ const MockLlmSkill_1 = __importDefault(require("../../../tests/MockLlmSkill"));
15
+ const AbstractLlmTest_1 = __importDefault(require("../../support/AbstractLlmTest"));
16
+ let MockLlmSkillTest = class MockLlmSkillTest extends AbstractLlmTest_1.default {
17
+ async beforeEach() {
18
+ await super.beforeEach();
19
+ this.skillOptions = {
20
+ yourJobIfYouChooseToAcceptItIs: (0, test_utils_1.generateId)(),
21
+ weAreDoneWhen: (0, test_utils_1.generateId)(),
22
+ pleaseKeepInMindThat: [(0, test_utils_1.generateId)(), (0, test_utils_1.generateId)()],
23
+ model: (0, test_utils_1.generateId)(),
24
+ };
25
+ this.reloadSkill();
26
+ }
27
+ async throwsWhenMissingRequired() {
28
+ //@ts-ignore
29
+ const err = test_utils_1.assert.doesThrow(() => new MockLlmSkill_1.default());
30
+ test_utils_1.errorAssert.assertError(err, 'MISSING_PARAMETERS', {
31
+ parameters: ['yourJobIfYouChooseToAcceptItIs'],
32
+ });
33
+ }
34
+ async assertYourJobDoesNotThrowIfMatches() {
35
+ this.skill.assertYourJobEquals(this.skillOptions.yourJobIfYouChooseToAcceptItIs);
36
+ }
37
+ async assertYourJobThrowsIfNotMatching() {
38
+ test_utils_1.assert.doesThrow(() => this.skill.assertYourJobEquals((0, test_utils_1.generateId)()));
39
+ }
40
+ async weAreDoneWhenDoesNotThrowIfMatches() {
41
+ this.skill.assertWeAreDoneWhenEquals(this.skillOptions.weAreDoneWhen);
42
+ }
43
+ async weAreDoneWhenThrowsIfNotMatching() {
44
+ test_utils_1.assert.doesThrow(() => this.skill.assertWeAreDoneWhenEquals((0, test_utils_1.generateId)()));
45
+ }
46
+ async pleaseKeepInMindThatDoesNotThrowIfMatches() {
47
+ this.skill.assertPleaseKeepInMindEquals([
48
+ ...(this.skillOptions.pleaseKeepInMindThat ?? []),
49
+ ]);
50
+ }
51
+ async pleaseKeepInMindThatThrowsIfNotMatching() {
52
+ test_utils_1.assert.doesThrow(() => this.skill.assertPleaseKeepInMindEquals([(0, test_utils_1.generateId)()]));
53
+ }
54
+ async modelDoesNotThrowIfMatches() {
55
+ this.skill.assertModelEquals(this.skillOptions.model);
56
+ }
57
+ async modelThrowsIfNotMatching() {
58
+ test_utils_1.assert.doesThrow(() => this.skill.assertModelEquals((0, test_utils_1.generateId)()));
59
+ }
60
+ async canUpdateState() {
61
+ this.reloadSkillWithState1();
62
+ const state = {
63
+ id: (0, test_utils_1.generateId)(),
64
+ };
65
+ const firstName = (0, test_utils_1.generateId)();
66
+ await this.updateState(state);
67
+ this.assertStateEquals(state);
68
+ await this.updateState({
69
+ firstName,
70
+ });
71
+ this.assertStateEquals({
72
+ ...state,
73
+ firstName,
74
+ });
75
+ }
76
+ async newStateUpdateWins() {
77
+ this.reloadSkillWithState1();
78
+ let id = (0, test_utils_1.generateId)();
79
+ await this.updateState({ id });
80
+ id = (0, test_utils_1.generateId)();
81
+ await this.updateState({ id });
82
+ this.assertStateEquals({ id });
83
+ }
84
+ async throwsIfStateSchemaDoesNotMatch() {
85
+ this.reloadSkillWithState1();
86
+ test_utils_1.assert.doesThrow(() => this.skill.assertStateSchemaEquals({
87
+ id: (0, test_utils_1.generateId)(),
88
+ fields: {
89
+ id: {
90
+ type: 'text',
91
+ },
92
+ firstName: {
93
+ type: 'text',
94
+ isRequired: true,
95
+ },
96
+ },
97
+ }));
98
+ }
99
+ async throwsIfStateSchemaDoesNotMatch2() {
100
+ this.reloadSkillWithState1();
101
+ test_utils_1.assert.doesThrow(() => this.skill.assertStateSchemaEquals({
102
+ id: stateSchema1.id,
103
+ fields: {
104
+ id: {
105
+ type: 'text',
106
+ },
107
+ firstName: {
108
+ type: 'text',
109
+ isRequired: true,
110
+ },
111
+ },
112
+ }));
113
+ }
114
+ async doesNotThrowIfStateSchemaMatches() {
115
+ this.reloadSkillWithState1();
116
+ this.skill.assertStateSchemaEquals(stateSchema1);
117
+ }
118
+ async throwsIfDoesNotHaveCallback() {
119
+ this.assertDoesNotHaveCallback((0, test_utils_1.generateId)());
120
+ }
121
+ async doesNotThrowIfHasCallback() {
122
+ const cbName = (0, test_utils_1.generateId)();
123
+ this.skillOptions.callbacks = {
124
+ [cbName]: {
125
+ cb: () => '',
126
+ useThisWhenever: (0, test_utils_1.generateId)(),
127
+ },
128
+ };
129
+ this.reloadSkill();
130
+ this.assertHasCallback(cbName);
131
+ this.assertDoesNotHaveCallback((0, test_utils_1.generateId)());
132
+ }
133
+ async throwsIfCallbackOptionsDoNotMatch() {
134
+ const cbName = (0, test_utils_1.generateId)();
135
+ this.skillOptions.callbacks = {
136
+ [cbName]: {
137
+ cb: () => '',
138
+ useThisWhenever: (0, test_utils_1.generateId)(),
139
+ },
140
+ };
141
+ this.reloadSkill();
142
+ test_utils_1.assert.doesThrow(() => this.assertHasCallback(cbName, { useThisWhenever: (0, test_utils_1.generateId)() }));
143
+ }
144
+ async doesNotThrowIfCallbackOptionsMatch() {
145
+ const cbName = (0, test_utils_1.generateId)();
146
+ const useThisWhenever = (0, test_utils_1.generateId)();
147
+ this.skillOptions.callbacks = {
148
+ [cbName]: {
149
+ cb: () => '',
150
+ useThisWhenever,
151
+ },
152
+ };
153
+ this.reloadSkill();
154
+ this.assertHasCallback(cbName, { useThisWhenever });
155
+ }
156
+ async throwsIfCallbackParametersDoNotMatch() {
157
+ const cbName = (0, test_utils_1.generateId)();
158
+ const useThisWhenever = (0, test_utils_1.generateId)();
159
+ this.skillOptions.callbacks = {
160
+ [cbName]: {
161
+ cb: () => '',
162
+ useThisWhenever,
163
+ parameters: [
164
+ {
165
+ name: (0, test_utils_1.generateId)(),
166
+ type: 'text',
167
+ },
168
+ ],
169
+ },
170
+ };
171
+ this.reloadSkill();
172
+ test_utils_1.assert.doesThrow(() => this.assertHasCallback(cbName, { useThisWhenever }));
173
+ }
174
+ async doesNotThrowIfCallbackParametersMatch() {
175
+ const cbName = (0, test_utils_1.generateId)();
176
+ const useThisWhenever = (0, test_utils_1.generateId)();
177
+ const parameters = [
178
+ {
179
+ name: (0, test_utils_1.generateId)(),
180
+ type: (0, test_utils_1.generateId)(),
181
+ },
182
+ ];
183
+ this.skillOptions.callbacks = {
184
+ [cbName]: {
185
+ cb: () => '',
186
+ useThisWhenever,
187
+ parameters,
188
+ },
189
+ };
190
+ this.reloadSkill();
191
+ this.assertHasCallback(cbName, { useThisWhenever, parameters });
192
+ }
193
+ async creatingMockLlmSetsStaticInstance() {
194
+ const skill = new MockLlmSkill_1.default(this.skillOptions);
195
+ test_utils_1.assert.isEqual(skill, MockLlmSkill_1.default.instance);
196
+ }
197
+ async canInvokeCallback() {
198
+ const cbName = (0, test_utils_1.generateId)();
199
+ let passedOptions;
200
+ const options = {
201
+ [(0, test_utils_1.generateId)()]: (0, test_utils_1.generateId)(),
202
+ };
203
+ let wasHit = false;
204
+ this.skillOptions.callbacks = {
205
+ [cbName]: {
206
+ cb: (options) => {
207
+ passedOptions = options;
208
+ wasHit = true;
209
+ return '';
210
+ },
211
+ useThisWhenever: (0, test_utils_1.generateId)(),
212
+ },
213
+ };
214
+ this.reloadSkill();
215
+ await this.invokeCallback(cbName, options);
216
+ test_utils_1.assert.isTrue(wasHit, 'Callback was not hit');
217
+ test_utils_1.assert.isEqualDeep(passedOptions, options, 'Callback was not passed the right options');
218
+ }
219
+ async invokingCallbackThrowsIfCallbackNotFound() {
220
+ this.skillOptions.callbacks = {
221
+ [(0, test_utils_1.generateId)()]: {
222
+ cb: () => '',
223
+ useThisWhenever: (0, test_utils_1.generateId)(),
224
+ },
225
+ };
226
+ this.reloadSkill();
227
+ await test_utils_1.assert.doesThrowAsync(() => this.invokeCallback((0, test_utils_1.generateId)()), 'Could not find callback');
228
+ }
229
+ async invokeCallback(cbName, options) {
230
+ await this.skill.invokeCallback(cbName, options);
231
+ }
232
+ assertDoesNotHaveCallback(expected) {
233
+ test_utils_1.assert.doesThrow(() => this.assertHasCallback(expected));
234
+ }
235
+ assertHasCallback(expected, options) {
236
+ return this.skill.assertHasCallback(expected, options);
237
+ }
238
+ reloadSkillWithState1() {
239
+ this.skillOptions.stateSchema = stateSchema1;
240
+ this.reloadSkill();
241
+ }
242
+ assertStateEquals(state) {
243
+ const actual = this.getState();
244
+ test_utils_1.assert.isEqualDeep(actual, state, 'State was not updated');
245
+ }
246
+ getState() {
247
+ return this.skill.getState();
248
+ }
249
+ async updateState(state) {
250
+ await this.skill.updateState(state);
251
+ }
252
+ reloadSkill() {
253
+ this.skill = new MockLlmSkill_1.default(this.skillOptions);
254
+ }
255
+ };
256
+ __decorate([
257
+ (0, test_utils_1.test)()
258
+ ], MockLlmSkillTest.prototype, "throwsWhenMissingRequired", null);
259
+ __decorate([
260
+ (0, test_utils_1.test)()
261
+ ], MockLlmSkillTest.prototype, "assertYourJobDoesNotThrowIfMatches", null);
262
+ __decorate([
263
+ (0, test_utils_1.test)()
264
+ ], MockLlmSkillTest.prototype, "assertYourJobThrowsIfNotMatching", null);
265
+ __decorate([
266
+ (0, test_utils_1.test)()
267
+ ], MockLlmSkillTest.prototype, "weAreDoneWhenDoesNotThrowIfMatches", null);
268
+ __decorate([
269
+ (0, test_utils_1.test)()
270
+ ], MockLlmSkillTest.prototype, "weAreDoneWhenThrowsIfNotMatching", null);
271
+ __decorate([
272
+ (0, test_utils_1.test)()
273
+ ], MockLlmSkillTest.prototype, "pleaseKeepInMindThatDoesNotThrowIfMatches", null);
274
+ __decorate([
275
+ (0, test_utils_1.test)()
276
+ ], MockLlmSkillTest.prototype, "pleaseKeepInMindThatThrowsIfNotMatching", null);
277
+ __decorate([
278
+ (0, test_utils_1.test)()
279
+ ], MockLlmSkillTest.prototype, "modelDoesNotThrowIfMatches", null);
280
+ __decorate([
281
+ (0, test_utils_1.test)()
282
+ ], MockLlmSkillTest.prototype, "modelThrowsIfNotMatching", null);
283
+ __decorate([
284
+ (0, test_utils_1.test)()
285
+ ], MockLlmSkillTest.prototype, "canUpdateState", null);
286
+ __decorate([
287
+ (0, test_utils_1.test)()
288
+ ], MockLlmSkillTest.prototype, "newStateUpdateWins", null);
289
+ __decorate([
290
+ (0, test_utils_1.test)()
291
+ ], MockLlmSkillTest.prototype, "throwsIfStateSchemaDoesNotMatch", null);
292
+ __decorate([
293
+ (0, test_utils_1.test)()
294
+ ], MockLlmSkillTest.prototype, "throwsIfStateSchemaDoesNotMatch2", null);
295
+ __decorate([
296
+ (0, test_utils_1.test)()
297
+ ], MockLlmSkillTest.prototype, "doesNotThrowIfStateSchemaMatches", null);
298
+ __decorate([
299
+ (0, test_utils_1.test)()
300
+ ], MockLlmSkillTest.prototype, "throwsIfDoesNotHaveCallback", null);
301
+ __decorate([
302
+ (0, test_utils_1.test)()
303
+ ], MockLlmSkillTest.prototype, "doesNotThrowIfHasCallback", null);
304
+ __decorate([
305
+ (0, test_utils_1.test)()
306
+ ], MockLlmSkillTest.prototype, "throwsIfCallbackOptionsDoNotMatch", null);
307
+ __decorate([
308
+ (0, test_utils_1.test)()
309
+ ], MockLlmSkillTest.prototype, "doesNotThrowIfCallbackOptionsMatch", null);
310
+ __decorate([
311
+ (0, test_utils_1.test)()
312
+ ], MockLlmSkillTest.prototype, "throwsIfCallbackParametersDoNotMatch", null);
313
+ __decorate([
314
+ (0, test_utils_1.test)()
315
+ ], MockLlmSkillTest.prototype, "doesNotThrowIfCallbackParametersMatch", null);
316
+ __decorate([
317
+ (0, test_utils_1.test)()
318
+ ], MockLlmSkillTest.prototype, "creatingMockLlmSetsStaticInstance", null);
319
+ __decorate([
320
+ (0, test_utils_1.test)()
321
+ ], MockLlmSkillTest.prototype, "canInvokeCallback", null);
322
+ __decorate([
323
+ (0, test_utils_1.test)()
324
+ ], MockLlmSkillTest.prototype, "invokingCallbackThrowsIfCallbackNotFound", null);
325
+ MockLlmSkillTest = __decorate([
326
+ (0, test_utils_1.suite)()
327
+ ], MockLlmSkillTest);
328
+ exports.default = MockLlmSkillTest;
329
+ const stateSchema1 = (0, schema_1.buildSchema)({
330
+ id: (0, test_utils_1.generateId)(),
331
+ fields: {
332
+ id: {
333
+ type: 'id',
334
+ },
335
+ firstName: {
336
+ type: 'text',
337
+ },
338
+ },
339
+ });
340
+ //# sourceMappingURL=MockLlmSkill.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockLlmSkill.test.js","sourceRoot":"","sources":["../../../../src/__tests__/behavioral/testing/MockLlmSkill.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import AbstractLlmTest from '../../support/AbstractLlmTest';
2
+ export default class SpyLlmBotTest extends AbstractLlmTest {
3
+ protected spyBotInstanceSetToLastIntsance(): Promise<void>;
4
+ }
@@ -0,0 +1,34 @@
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 SpyAdapter_1 = __importDefault(require("../../../tests/SpyAdapter"));
14
+ const SpyLlmBot_1 = __importDefault(require("../../../tests/SpyLlmBot"));
15
+ const AbstractLlmTest_1 = __importDefault(require("../../support/AbstractLlmTest"));
16
+ let SpyLlmBotTest = class SpyLlmBotTest extends AbstractLlmTest_1.default {
17
+ async spyBotInstanceSetToLastIntsance() {
18
+ const options = {
19
+ adapter: new SpyAdapter_1.default(),
20
+ youAre: (0, test_utils_1.generateId)(),
21
+ };
22
+ const spyLlmBot = new SpyLlmBot_1.default(options);
23
+ test_utils_1.assert.isEqual(SpyLlmBot_1.default.instance, spyLlmBot);
24
+ test_utils_1.assert.isEqual(SpyLlmBot_1.default.instance.constructorOptions, options);
25
+ }
26
+ };
27
+ __decorate([
28
+ (0, test_utils_1.test)()
29
+ ], SpyLlmBotTest.prototype, "spyBotInstanceSetToLastIntsance", null);
30
+ SpyLlmBotTest = __decorate([
31
+ (0, test_utils_1.suite)()
32
+ ], SpyLlmBotTest);
33
+ exports.default = SpyLlmBotTest;
34
+ //# sourceMappingURL=SpyLlmBot.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpyLlmBot.test.js","sourceRoot":"","sources":["../../../../src/__tests__/behavioral/testing/SpyLlmBot.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uDAAwE;AACxE,2EAAqD;AACrD,yEAAgD;AAChD,oFAA2D;AAG5C,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,yBAAe;IAEtC,AAAN,KAAK,CAAC,+BAA+B;QAC3C,MAAM,OAAO,GAAG;YACZ,OAAO,EAAE,IAAI,oBAAa,EAAE;YAC5B,MAAM,EAAE,IAAA,uBAAU,GAAE;SACvB,CAAA;QACD,MAAM,SAAS,GAAG,IAAI,mBAAS,CAAC,OAAO,CAAC,CAAA;QACxC,mBAAM,CAAC,OAAO,CAAC,mBAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAC7C,mBAAM,CAAC,OAAO,CAAC,mBAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;IAClE,CAAC;CACJ,CAAA;AATmB;IADf,IAAA,iBAAI,GAAE;oEASN;AAVgB,aAAa;IADjC,IAAA,kBAAK,GAAE;GACa,aAAa,CAWjC;kBAXoB,aAAa"}
@@ -0,0 +1,14 @@
1
+ import { Schema } from '@sprucelabs/schema';
2
+ import AbstractSpruceTest from '@sprucelabs/test-utils';
3
+ import SprucebotLlmFactory from '../../bots/SprucebotLlmFactory';
4
+ import { BotOptions, SkillOptions } from '../../llm.types';
5
+ import SpyLlmAdapter from '../../tests/SpyAdapter';
6
+ import SpyLlmBot from '../../tests/SpyLlmBot';
7
+ export default abstract class AbstractLlmTest extends AbstractSpruceTest {
8
+ protected bots: SprucebotLlmFactory;
9
+ protected adapter: SpyLlmAdapter;
10
+ protected youAre: string;
11
+ protected beforeEach(): Promise<void>;
12
+ protected Bot<S extends Schema>(options?: Partial<BotOptions<S>>): SpyLlmBot;
13
+ protected Skill(options?: Partial<SkillOptions>): import("../../llm.types").SprucebotLLmSkill<Schema, Pick<import("@sprucelabs/schema").SchemaStaticValues<Schema, false, never, import("@sprucelabs/schema").StaticSchemaAllValues<Schema, false>>, never>>;
14
+ }