@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
package/README.md CHANGED
@@ -249,4 +249,4 @@ const bookingBot = bots.Bot({
249
249
  youAre: "a bot named Sprucebot that is in test mode. At the start of every conversation, you introduce yourself and announce that you are in test mode so I don't get confused! You are both hip and adorable. You say things like, 'Jeepers' and 'Golly' or even 'Jeezey peezy'!",
250
250
  })
251
251
 
252
- ```
252
+ ```
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=errors.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.types.js","sourceRoot":"","sources":["../../../src/.spruce/errors/errors.types.ts"],"names":[],"mappings":""}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=options.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.types.js","sourceRoot":"","sources":["../../../src/.spruce/errors/options.types.ts"],"names":[],"mappings":""}
@@ -9,3 +9,4 @@ const callbackErrorSchema = {
9
9
  };
10
10
  schema_1.SchemaRegistry.getInstance().trackSchema(callbackErrorSchema);
11
11
  exports.default = callbackErrorSchema;
12
+ //# sourceMappingURL=callbackError.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callbackError.schema.js","sourceRoot":"","sources":["../../../../src/.spruce/errors/sprucebotLlm/callbackError.schema.ts"],"names":[],"mappings":";;AAAA,+CAAmD;AAKnD,MAAM,mBAAmB,GAAmD;IAC3E,EAAE,EAAE,eAAe;IACnB,SAAS,EAAE,cAAc;IACzB,IAAI,EAAE,gBAAgB;IAClB,MAAM,EAAE,EACP;CACL,CAAA;AAED,uBAAc,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAA;AAE7D,kBAAe,mBAAmB,CAAA"}
@@ -24,3 +24,4 @@ const invalidCallbackSchema = {
24
24
  };
25
25
  schema_1.SchemaRegistry.getInstance().trackSchema(invalidCallbackSchema);
26
26
  exports.default = invalidCallbackSchema;
27
+ //# sourceMappingURL=invalidCallback.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invalidCallback.schema.js","sourceRoot":"","sources":["../../../../src/.spruce/errors/sprucebotLlm/invalidCallback.schema.ts"],"names":[],"mappings":";;AAAA,+CAAmD;AAKnD,MAAM,qBAAqB,GAAqD;IAC/E,EAAE,EAAE,iBAAiB;IACrB,SAAS,EAAE,cAAc;IACzB,IAAI,EAAE,kBAAkB;IACpB,MAAM,EAAE;QACA,QAAQ;QACR,gBAAgB,EAAE;YACd,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,CAAC;YACjB,OAAO,EAAE,SAAS;SACrB;QACD,QAAQ;QACR,iBAAiB,EAAE;YACf,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,SAAS;SACrB;KACR;CACL,CAAA;AAED,uBAAc,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAA;AAE/D,kBAAe,qBAAqB,CAAA"}
@@ -9,3 +9,4 @@ const noBotInstanceSetSchema = {
9
9
  };
10
10
  schema_1.SchemaRegistry.getInstance().trackSchema(noBotInstanceSetSchema);
11
11
  exports.default = noBotInstanceSetSchema;
12
+ //# sourceMappingURL=noBotInstanceSet.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noBotInstanceSet.schema.js","sourceRoot":"","sources":["../../../../src/.spruce/errors/sprucebotLlm/noBotInstanceSet.schema.ts"],"names":[],"mappings":";;AAAA,+CAAmD;AAKnD,MAAM,sBAAsB,GAAsD;IACjF,EAAE,EAAE,kBAAkB;IACtB,SAAS,EAAE,cAAc;IACzB,IAAI,EAAE,qBAAqB;IACvB,MAAM,EAAE,EACP;CACL,CAAA;AAED,uBAAc,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAA;AAEhE,kBAAe,sBAAsB,CAAA"}
@@ -0,0 +1 @@
1
+ {}
@@ -2,3 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const schema_1 = require("@sprucelabs/schema");
4
4
  exports.default = schema_1.fieldClassMap;
5
+ //# sourceMappingURL=fieldClassMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldClassMap.js","sourceRoot":"","sources":["../../../../src/.spruce/schemas/fields/fieldClassMap.ts"],"names":[],"mappings":";;AAAA,+CAAkD;AAKlD,kBAAe,sBAAa,CAAA"}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=fields.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.types.js","sourceRoot":"","sources":["../../../../src/.spruce/schemas/fields/fields.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ import AbstractLlmTest from '../support/AbstractLlmTest';
2
+ export default class LlmBotTest extends AbstractLlmTest {
3
+ private bot;
4
+ private parser;
5
+ protected beforeEach(): Promise<void>;
6
+ protected throwsWhenSendingBadMessage(): Promise<void>;
7
+ protected sendsItselfToTheLlmAdapter(): Promise<void>;
8
+ protected serializesAsExpected(): Promise<void>;
9
+ protected canUpdateState(): Promise<void>;
10
+ protected updatingStateMixesIn(): Promise<void>;
11
+ protected stateHonorsDefaultValues(): Promise<void>;
12
+ protected updatingStateEmitsDidUpdateState(): Promise<void>;
13
+ protected knowsWhenDone(): Promise<void>;
14
+ protected sendMessageReturnsResponseFromAdapter(): Promise<void>;
15
+ protected tracksMessageHistory(): Promise<void>;
16
+ protected trackedMessageUsesResponseFromAdapterNotParser(): Promise<void>;
17
+ protected isDoneWhenParsesSaysSo(): Promise<void>;
18
+ protected notDoneUntilDone(): Promise<void>;
19
+ protected botActuallySendsResponseToParser(): Promise<void>;
20
+ protected enheritesStateSchemaFromSkillWhenSerializing(): Promise<void>;
21
+ protected inheritsStateFromSkillWhenSerializing(skillState: Record<string, any>): Promise<void>;
22
+ protected stateIsSentBackToBotWhenParsing(state: Record<string, any>): Promise<void>;
23
+ protected emitsDidUpdateStateWhenStateIsUpdated(): Promise<void>;
24
+ protected shouldNotEmitUpdateItNoStatePassed(): Promise<void>;
25
+ protected setsStateInResponseToSkillIfSkillHasState(state: Record<string, any>): Promise<void>;
26
+ protected doesntEmitDidChangeOnSkillIfStateIsNotOnSkill(): Promise<void>;
27
+ protected passesCallbacksToParserOnResponse(): Promise<void>;
28
+ protected canSwapSkillMidWayThrough(): Promise<void>;
29
+ protected defaultLimitsMessagesTo10(): Promise<void>;
30
+ protected canSetMemory(): Promise<void>;
31
+ protected settingSkillToBotSetsToNotDone(): Promise<void>;
32
+ protected canClearMessageHistory(): Promise<void>;
33
+ protected botRespondingCallsMessageCallback(): Promise<void>;
34
+ protected messageCallbackFiredAfterAllMessagesTracked(): Promise<void>;
35
+ protected ifParserRespondsWithCallbackResultsTheyAreSentImmediately(): Promise<void>;
36
+ protected handleParserRespondingWithImage(): Promise<void>;
37
+ protected sendsMessageBackToBotIfParserThrows(): Promise<void>;
38
+ protected sendsMessageBackToBotIfCallbackThrows(): Promise<void>;
39
+ protected responseThatThrowsIsStillTracked(): Promise<void>;
40
+ protected canSendImage(): Promise<void>;
41
+ private setParserResponseCallbackResults;
42
+ private get parserResponse();
43
+ private setParserResponseMessage;
44
+ private setParserResponseIsDone;
45
+ private assertTotalMessagesTracked;
46
+ private get messages();
47
+ private setupBotWithSkill;
48
+ private sendMessageWithResponseState;
49
+ private sendRandomMessage;
50
+ private setStateInResponse;
51
+ private sendMessage;
52
+ private serialize;
53
+ private updateState;
54
+ private assertSerializedStateEquals;
55
+ }