@salesforce/sdk-chat 1.22.0 → 1.30.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.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,9 @@
1
1
  import type { ChatSDK } from "@salesforce/sdk-core";
2
- export declare const sdk: ChatSDK;
3
- export type { ChatMessage, ChatSDK, ResourceRequest, ToolCall, ToolState, } from "@salesforce/sdk-core";
2
+ /**
3
+ * Create and initialize a ChatSDK instance based on the detected surface
4
+ *
5
+ * @returns Promise resolving to an initialized ChatSDK instance
6
+ */
7
+ export declare function createChatSDK(): Promise<ChatSDK>;
8
+ export type { ChatMessage, ChatSDK, DisplayMode, ResourceRequest, ToolCall, ToolState, } from "@salesforce/sdk-core";
4
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAoBpD,eAAO,MAAM,GAAG,SAAe,CAAC;AAChC,YAAY,EACX,WAAW,EACX,OAAO,EACP,eAAe,EACf,QAAQ,EACR,SAAS,GACT,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAKpD;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAetD;AAED,YAAY,EACX,WAAW,EACX,OAAO,EACP,WAAW,EACX,eAAe,EACf,QAAQ,EACR,SAAS,GACT,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -7,18 +7,24 @@ import { getSurface, Surface } from "@salesforce/sdk-core";
7
7
  import { MCPAppsChatSDK } from "./mcpapps.js";
8
8
  import { OpenAIChatSDK } from "./openai.js";
9
9
  import { SalesforceACCChatSDK } from "./salesforce-acc.js";
10
- function initialize() {
10
+ /**
11
+ * Create and initialize a ChatSDK instance based on the detected surface
12
+ *
13
+ * @returns Promise resolving to an initialized ChatSDK instance
14
+ */
15
+ export async function createChatSDK() {
11
16
  const surface = getSurface();
12
17
  switch (surface) {
13
18
  case Surface.OpenAI:
14
19
  return new OpenAIChatSDK();
15
- case Surface.Webapp:
20
+ case Surface.WebApp:
16
21
  case Surface.MicroFrontend:
17
- return new MCPAppsChatSDK();
22
+ return {};
18
23
  case Surface.SalesforceACC:
19
24
  return new SalesforceACCChatSDK();
25
+ case Surface.MCPApps:
26
+ return new MCPAppsChatSDK();
20
27
  default:
21
28
  return {};
22
29
  }
23
30
  }
24
- export const sdk = initialize();
package/dist/mcpapps.d.ts CHANGED
@@ -7,15 +7,17 @@ import type { ChatSDK, ChatMessage, ResourceRequest, ToolCall, ToolState } from
7
7
  /**
8
8
  * Chat SDK implementation for Webapp and MicroFrontend surfaces using MCP Apps protocol
9
9
  * Supports: sendMessageToHost, callTool, readResource, accessToolInput, accessToolOutput,
10
- * accessToolMetadata (stub), onToolCanceled (stub)
10
+ * accessToolMetadata (stub), onToolCanceled (stub), subscribe
11
11
  */
12
12
  export declare class MCPAppsChatSDK implements ChatSDK {
13
13
  private nextMessageId;
14
14
  private pending;
15
15
  private globals;
16
16
  private canceledCallbacks;
17
+ private subscriptions;
17
18
  constructor();
18
19
  private onMessage;
20
+ private notifySubscribers;
19
21
  private request;
20
22
  sendMessageToHost(message: ChatMessage): Promise<void>;
21
23
  callTool<T>(toolCall: ToolCall): Promise<T>;
@@ -24,5 +26,6 @@ export declare class MCPAppsChatSDK implements ChatSDK {
24
26
  accessToolOutput<T>(): ToolState<T> | null;
25
27
  accessToolMetadata<T>(): T | null;
26
28
  onToolCanceled(callback: () => void): void;
29
+ subscribe(callback: () => void): () => void;
27
30
  }
28
31
  //# sourceMappingURL=mcpapps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcpapps.d.ts","sourceRoot":"","sources":["../src/mcpapps.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACX,OAAO,EACP,WAAW,EACX,eAAe,EACf,QAAQ,EACR,SAAS,EACT,MAAM,sBAAsB,CAAC;AAqB9B;;;;GAIG;AACH,qBAAa,cAAe,YAAW,OAAO;IAC7C,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,OAAO,CAGX;IACJ,OAAO,CAAC,OAAO,CAIR;IACP,OAAO,CAAC,iBAAiB,CAAsB;;IAY/C,OAAO,CAAC,SAAS,CA+Bf;IAEF,OAAO,CAAC,OAAO;IAUT,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ3C,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC;IAK3D,eAAe,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAMzC,gBAAgB,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAM1C,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI;IAOjC,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;CAI1C"}
1
+ {"version":3,"file":"mcpapps.d.ts","sourceRoot":"","sources":["../src/mcpapps.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACX,OAAO,EACP,WAAW,EACX,eAAe,EACf,QAAQ,EACR,SAAS,EACT,MAAM,sBAAsB,CAAC;AAqB9B;;;;GAIG;AACH,qBAAa,cAAe,YAAW,OAAO;IAC7C,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,OAAO,CAGX;IACJ,OAAO,CAAC,OAAO,CAIR;IACP,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,aAAa,CAAyB;;IAY9C,OAAO,CAAC,SAAS,CAmCf;IAEF,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,OAAO;IAUT,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ3C,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC;IAK3D,eAAe,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAMzC,gBAAgB,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAM1C,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI;IAOjC,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAK1C,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;CAS3C"}
package/dist/mcpapps.js CHANGED
@@ -1,13 +1,14 @@
1
1
  /**
2
2
  * Chat SDK implementation for Webapp and MicroFrontend surfaces using MCP Apps protocol
3
3
  * Supports: sendMessageToHost, callTool, readResource, accessToolInput, accessToolOutput,
4
- * accessToolMetadata (stub), onToolCanceled (stub)
4
+ * accessToolMetadata (stub), onToolCanceled (stub), subscribe
5
5
  */
6
6
  export class MCPAppsChatSDK {
7
7
  nextMessageId = 1;
8
8
  pending = new Map();
9
9
  globals = {};
10
10
  canceledCallbacks = [];
11
+ subscriptions = new Set();
11
12
  constructor() {
12
13
  // Listen for messages from parent window
13
14
  window.addEventListener("message", this.onMessage);
@@ -29,6 +30,8 @@ export class MCPAppsChatSDK {
29
30
  this.globals.toolOutput = renderData.toolOutput;
30
31
  }
31
32
  }
33
+ // Notify subscribers of data change
34
+ this.notifySubscribers();
32
35
  }
33
36
  // Handle message responses
34
37
  if (data.type === "ui-message-response" || data.type === "ui-message-received") {
@@ -43,9 +46,14 @@ export class MCPAppsChatSDK {
43
46
  else {
44
47
  slot.resolve(response.payload?.response);
45
48
  }
49
+ // Notify subscribers of data change
50
+ this.notifySubscribers();
46
51
  }
47
52
  }
48
53
  };
54
+ notifySubscribers() {
55
+ this.subscriptions.forEach((callback) => callback());
56
+ }
49
57
  request(type, payload) {
50
58
  const id = String(this.nextMessageId++);
51
59
  const message = { type, messageId: id, payload };
@@ -91,4 +99,12 @@ export class MCPAppsChatSDK {
91
99
  // TODO: Implement once MCP Apps protocol specifies cancellation event
92
100
  this.canceledCallbacks.push(callback);
93
101
  }
102
+ subscribe(callback) {
103
+ // Add callback to subscriptions set
104
+ this.subscriptions.add(callback);
105
+ // Return cleanup function
106
+ return () => {
107
+ this.subscriptions.delete(callback);
108
+ };
109
+ }
94
110
  }
package/dist/openai.d.ts CHANGED
@@ -3,11 +3,15 @@
3
3
  * All rights reserved.
4
4
  * For full license text, see the LICENSE.txt file
5
5
  */
6
- import type { ChatSDK, ChatMessage, ToolCall, ToolState } from "@salesforce/sdk-core";
6
+ import type { ChatSDK, ChatMessage, DisplayMode, ToolCall, ToolState } from "@salesforce/sdk-core";
7
+ /**
8
+ * Event type emitted by OpenAI platform when global data changes
9
+ */
10
+ export declare const SET_GLOBALS_EVENT_TYPE = "openai:set_globals";
7
11
  /**
8
12
  * Chat SDK implementation for OpenAI surface
9
13
  * Supports: sendMessageToHost, callTool, accessToolInput, accessToolOutput,
10
- * accessToolMetadata, getWidgetState, setWidgetState
14
+ * accessToolMetadata, getWidgetState, setWidgetState, setDisplayMode, subscribe
11
15
  */
12
16
  export declare class OpenAIChatSDK implements ChatSDK {
13
17
  sendMessageToHost(message: ChatMessage): Promise<void>;
@@ -17,5 +21,9 @@ export declare class OpenAIChatSDK implements ChatSDK {
17
21
  accessToolMetadata<T>(): T | null;
18
22
  getWidgetState<T>(): T | null;
19
23
  setWidgetState<T>(state: T): void;
24
+ setDisplayMode(mode: DisplayMode): Promise<{
25
+ mode: DisplayMode;
26
+ }>;
27
+ subscribe(callback: () => void): () => void;
20
28
  }
21
29
  //# sourceMappingURL=openai.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../src/openai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtF;;;;GAIG;AACH,qBAAa,aAAc,YAAW,OAAO;IAC5C,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3C,eAAe,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAMzC,gBAAgB,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAM1C,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI;IAMjC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI;IAM7B,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;CAGjC"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../src/openai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEnG;;GAEG;AACH,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAE3D;;;;GAIG;AACH,qBAAa,aAAc,YAAW,OAAO;IAC5C,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3C,eAAe,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAMzC,gBAAgB,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAM1C,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI;IAMjC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI;IAM7B,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAI3B,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;IAIvE,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;CAW3C"}
package/dist/openai.js CHANGED
@@ -1,7 +1,11 @@
1
+ /**
2
+ * Event type emitted by OpenAI platform when global data changes
3
+ */
4
+ export const SET_GLOBALS_EVENT_TYPE = "openai:set_globals";
1
5
  /**
2
6
  * Chat SDK implementation for OpenAI surface
3
7
  * Supports: sendMessageToHost, callTool, accessToolInput, accessToolOutput,
4
- * accessToolMetadata, getWidgetState, setWidgetState
8
+ * accessToolMetadata, getWidgetState, setWidgetState, setDisplayMode, subscribe
5
9
  */
6
10
  export class OpenAIChatSDK {
7
11
  sendMessageToHost(message) {
@@ -37,4 +41,17 @@ export class OpenAIChatSDK {
37
41
  setWidgetState(state) {
38
42
  window.openai.setWidgetState(state);
39
43
  }
44
+ async setDisplayMode(mode) {
45
+ return window.openai.requestDisplayMode({ mode });
46
+ }
47
+ subscribe(callback) {
48
+ // OpenAI surface emits custom event when data changes
49
+ const handler = () => callback();
50
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
+ window.addEventListener(SET_GLOBALS_EVENT_TYPE, handler);
52
+ return () => {
53
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
+ window.removeEventListener(SET_GLOBALS_EVENT_TYPE, handler);
55
+ };
56
+ }
40
57
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/sdk-chat",
3
- "version": "1.22.0",
3
+ "version": "1.30.0",
4
4
  "license": "SEE LICENSE IN LICENSE.txt",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -26,7 +26,7 @@
26
26
  "test:coverage": "vitest run --coverage"
27
27
  },
28
28
  "dependencies": {
29
- "@salesforce/sdk-core": "^1.22.0"
29
+ "@salesforce/sdk-core": "^1.30.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "vitest": "^4.0.6"
@@ -34,5 +34,5 @@
34
34
  "publishConfig": {
35
35
  "access": "public"
36
36
  },
37
- "gitHead": "f27c2343d0181dbca3f954174e89a7fa65b04274"
37
+ "gitHead": "544598e5263d2ea42f968854afb609359f5053b4"
38
38
  }