@sprucelabs/sprucebot-llm 13.2.7 → 13.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,6 +4,7 @@ const schema_1 = require("@sprucelabs/schema");
4
4
  class InternalStateUpdater {
5
5
  static async updateState(skill, updates) {
6
6
  (0, schema_1.validateSchemaValues)(skill.getStateSchema(), updates);
7
+ await skill.emitAndFlattenResponses('will-update-state', { updates });
7
8
  const state = { ...skill.getState(), ...updates };
8
9
  const normalized = (0, schema_1.normalizeSchemaValues)(skill.getStateSchema(), state, {
9
10
  shouldIncludeNullAndUndefinedFields: false,
@@ -12,6 +12,7 @@ export default class InternalStateUpdater {
12
12
  static updateState(skill, updates) {
13
13
  return __awaiter(this, void 0, void 0, function* () {
14
14
  validateSchemaValues(skill.getStateSchema(), updates);
15
+ yield skill.emitAndFlattenResponses('will-update-state', { updates });
15
16
  const state = Object.assign(Object.assign({}, skill.getState()), updates);
16
17
  const normalized = normalizeSchemaValues(skill.getStateSchema(), state, {
17
18
  shouldIncludeNullAndUndefinedFields: false,
@@ -38,6 +38,20 @@ export interface SerializedBot<StateSchema extends Schema = Schema, State extend
38
38
  export declare const llmEventContract: {
39
39
  eventSignatures: {
40
40
  'did-update-state': {};
41
+ 'will-update-state': {
42
+ emitPayloadSchema: {
43
+ id: string;
44
+ fields: {
45
+ updates: {
46
+ type: "raw";
47
+ isRequired: true;
48
+ options: {
49
+ valueType: string;
50
+ };
51
+ };
52
+ };
53
+ };
54
+ };
41
55
  };
42
56
  };
43
57
  export type LlmEventContract = typeof llmEventContract;
@@ -1,6 +1,21 @@
1
1
  import { buildEventContract, } from '@sprucelabs/mercury-types';
2
+ import { buildSchema, } from '@sprucelabs/schema';
2
3
  export const llmEventContract = buildEventContract({
3
4
  eventSignatures: {
4
5
  'did-update-state': {},
6
+ 'will-update-state': {
7
+ emitPayloadSchema: buildSchema({
8
+ id: 'willUpdateStateEmitPayload',
9
+ fields: {
10
+ updates: {
11
+ type: 'raw',
12
+ isRequired: true,
13
+ options: {
14
+ valueType: 'Record<string, any>',
15
+ },
16
+ },
17
+ },
18
+ }),
19
+ },
5
20
  },
6
21
  });
@@ -38,6 +38,20 @@ export interface SerializedBot<StateSchema extends Schema = Schema, State extend
38
38
  export declare const llmEventContract: {
39
39
  eventSignatures: {
40
40
  'did-update-state': {};
41
+ 'will-update-state': {
42
+ emitPayloadSchema: {
43
+ id: string;
44
+ fields: {
45
+ updates: {
46
+ type: "raw";
47
+ isRequired: true;
48
+ options: {
49
+ valueType: string;
50
+ };
51
+ };
52
+ };
53
+ };
54
+ };
41
55
  };
42
56
  };
43
57
  export type LlmEventContract = typeof llmEventContract;
@@ -2,8 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.llmEventContract = void 0;
4
4
  const mercury_types_1 = require("@sprucelabs/mercury-types");
5
+ const schema_1 = require("@sprucelabs/schema");
5
6
  exports.llmEventContract = (0, mercury_types_1.buildEventContract)({
6
7
  eventSignatures: {
7
8
  'did-update-state': {},
9
+ 'will-update-state': {
10
+ emitPayloadSchema: (0, schema_1.buildSchema)({
11
+ id: 'willUpdateStateEmitPayload',
12
+ fields: {
13
+ updates: {
14
+ type: 'raw',
15
+ isRequired: true,
16
+ options: {
17
+ valueType: 'Record<string, any>',
18
+ },
19
+ },
20
+ },
21
+ }),
22
+ },
8
23
  },
9
24
  });
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "eta"
9
9
  ]
10
10
  },
11
- "version": "13.2.7",
11
+ "version": "13.3.0",
12
12
  "files": [
13
13
  "build"
14
14
  ],
@@ -67,10 +67,10 @@
67
67
  "dependencies": {
68
68
  "@anthropic-ai/sdk": "^0.76.0",
69
69
  "@sprucelabs/error": "^8.1.9",
70
- "@sprucelabs/mercury-event-emitter": "^46.1.5",
71
- "@sprucelabs/mercury-types": "^49.1.8",
72
- "@sprucelabs/schema": "^33.2.5",
73
- "@sprucelabs/spruce-skill-utils": "^34.0.12",
70
+ "@sprucelabs/mercury-event-emitter": "^46.1.6",
71
+ "@sprucelabs/mercury-types": "^49.1.9",
72
+ "@sprucelabs/schema": "^33.2.6",
73
+ "@sprucelabs/spruce-skill-utils": "^34.0.13",
74
74
  "eta": "3.5.0",
75
75
  "openai": "^6.22.0"
76
76
  },
@@ -85,7 +85,7 @@
85
85
  "@sprucelabs/resolve-path-aliases": "^4.0.17",
86
86
  "@sprucelabs/semantic-release": "^6.0.0",
87
87
  "@sprucelabs/test": "^11.1.4",
88
- "@sprucelabs/test-utils": "^7.2.11",
88
+ "@sprucelabs/test-utils": "^7.2.12",
89
89
  "@types/node": "^25.2.3",
90
90
  "chokidar-cli": "^3.0.0",
91
91
  "dotenv": "^17.3.1",