skybridge 0.0.0-dev.97df11c → 0.0.0-dev.9876d9e

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 (146) hide show
  1. package/bin/run.js +4 -0
  2. package/dist/cli/header.d.ts +4 -0
  3. package/dist/cli/header.js +6 -0
  4. package/dist/cli/header.js.map +1 -0
  5. package/dist/cli/run-command.d.ts +2 -0
  6. package/dist/cli/run-command.js +43 -0
  7. package/dist/cli/run-command.js.map +1 -0
  8. package/dist/cli/use-execute-steps.d.ts +10 -0
  9. package/dist/cli/use-execute-steps.js +31 -0
  10. package/dist/cli/use-execute-steps.js.map +1 -0
  11. package/dist/commands/build.d.ts +9 -0
  12. package/dist/commands/build.js +44 -0
  13. package/dist/commands/build.js.map +1 -0
  14. package/dist/commands/dev.d.ts +7 -0
  15. package/dist/commands/dev.js +20 -0
  16. package/dist/commands/dev.js.map +1 -0
  17. package/dist/commands/start.d.ts +7 -0
  18. package/dist/commands/start.js +33 -0
  19. package/dist/commands/start.js.map +1 -0
  20. package/dist/server/server.d.ts +2 -4
  21. package/dist/server/server.js +69 -61
  22. package/dist/server/server.js.map +1 -1
  23. package/dist/test/widget.test.js +28 -23
  24. package/dist/test/widget.test.js.map +1 -1
  25. package/dist/web/bridges/{adaptors/apps-sdk-adaptor.d.ts → apps-sdk/adaptor.d.ts} +3 -2
  26. package/dist/web/bridges/{adaptors/apps-sdk-adaptor.js → apps-sdk/adaptor.js} +9 -3
  27. package/dist/web/bridges/apps-sdk/adaptor.js.map +1 -0
  28. package/dist/web/bridges/apps-sdk/bridge.d.ts +10 -0
  29. package/dist/web/bridges/{apps-sdk-bridge.js → apps-sdk/bridge.js} +2 -2
  30. package/dist/web/bridges/apps-sdk/bridge.js.map +1 -0
  31. package/dist/web/bridges/apps-sdk/index.d.ts +5 -0
  32. package/dist/web/bridges/apps-sdk/index.js +5 -0
  33. package/dist/web/bridges/apps-sdk/index.js.map +1 -0
  34. package/dist/web/bridges/apps-sdk/types.d.ts +121 -0
  35. package/dist/web/bridges/apps-sdk/types.js +10 -0
  36. package/dist/web/bridges/apps-sdk/types.js.map +1 -0
  37. package/dist/web/bridges/apps-sdk/use-apps-sdk-context.d.ts +2 -0
  38. package/dist/web/bridges/{hooks/use-apps-sdk-bridge.js → apps-sdk/use-apps-sdk-context.js} +3 -3
  39. package/dist/web/bridges/apps-sdk/use-apps-sdk-context.js.map +1 -0
  40. package/dist/web/bridges/get-adaptor.d.ts +2 -0
  41. package/dist/web/bridges/get-adaptor.js +8 -0
  42. package/dist/web/bridges/get-adaptor.js.map +1 -0
  43. package/dist/web/bridges/index.d.ts +5 -4
  44. package/dist/web/bridges/index.js +5 -4
  45. package/dist/web/bridges/index.js.map +1 -1
  46. package/dist/web/bridges/{adaptors/mcp-app-adaptor.d.ts → mcp-app/adaptor.d.ts} +6 -3
  47. package/dist/web/bridges/{adaptors/mcp-app-adaptor.js → mcp-app/adaptor.js} +44 -14
  48. package/dist/web/bridges/mcp-app/adaptor.js.map +1 -0
  49. package/dist/web/bridges/mcp-app/bridge.d.ts +43 -0
  50. package/dist/web/bridges/mcp-app/bridge.js +256 -0
  51. package/dist/web/bridges/mcp-app/bridge.js.map +1 -0
  52. package/dist/web/bridges/mcp-app/index.d.ts +4 -0
  53. package/dist/web/bridges/mcp-app/index.js +4 -0
  54. package/dist/web/bridges/mcp-app/index.js.map +1 -0
  55. package/dist/web/bridges/mcp-app/types.d.ts +8 -0
  56. package/dist/web/bridges/mcp-app/types.js +2 -0
  57. package/dist/web/bridges/mcp-app/types.js.map +1 -0
  58. package/dist/web/bridges/mcp-app/use-mcp-app-context.d.ts +5 -0
  59. package/dist/web/bridges/{hooks/use-mcp-app-bridge.js → mcp-app/use-mcp-app-context.js} +3 -3
  60. package/dist/web/bridges/mcp-app/use-mcp-app-context.js.map +1 -0
  61. package/dist/web/bridges/{hooks/use-mcp-app-bridge.test.js → mcp-app/use-mcp-app-context.test.js} +23 -7
  62. package/dist/web/bridges/mcp-app/use-mcp-app-context.test.js.map +1 -0
  63. package/dist/web/bridges/types.d.ts +40 -23
  64. package/dist/web/bridges/use-host-context.d.ts +2 -0
  65. package/dist/web/bridges/use-host-context.js +8 -0
  66. package/dist/web/bridges/use-host-context.js.map +1 -0
  67. package/dist/web/create-store.js +6 -7
  68. package/dist/web/create-store.js.map +1 -1
  69. package/dist/web/create-store.test.js +107 -52
  70. package/dist/web/create-store.test.js.map +1 -1
  71. package/dist/web/data-llm.js +5 -3
  72. package/dist/web/data-llm.js.map +1 -1
  73. package/dist/web/data-llm.test.js +128 -65
  74. package/dist/web/data-llm.test.js.map +1 -1
  75. package/dist/web/generate-helpers.d.ts +2 -1
  76. package/dist/web/generate-helpers.js.map +1 -1
  77. package/dist/web/helpers/state.js +13 -8
  78. package/dist/web/helpers/state.js.map +1 -1
  79. package/dist/web/hooks/index.d.ts +0 -1
  80. package/dist/web/hooks/index.js +0 -1
  81. package/dist/web/hooks/index.js.map +1 -1
  82. package/dist/web/hooks/test/utils.d.ts +8 -2
  83. package/dist/web/hooks/test/utils.js +33 -13
  84. package/dist/web/hooks/test/utils.js.map +1 -1
  85. package/dist/web/hooks/use-call-tool.d.ts +3 -2
  86. package/dist/web/hooks/use-call-tool.js +2 -2
  87. package/dist/web/hooks/use-call-tool.js.map +1 -1
  88. package/dist/web/hooks/use-call-tool.test-d.js +1 -1
  89. package/dist/web/hooks/use-call-tool.test-d.js.map +1 -1
  90. package/dist/web/hooks/use-call-tool.test.js +3 -3
  91. package/dist/web/hooks/use-call-tool.test.js.map +1 -1
  92. package/dist/web/hooks/use-display-mode.js +3 -4
  93. package/dist/web/hooks/use-display-mode.js.map +1 -1
  94. package/dist/web/hooks/use-files.d.ts +1 -1
  95. package/dist/web/hooks/use-files.js +1 -1
  96. package/dist/web/hooks/use-files.js.map +1 -1
  97. package/dist/web/hooks/use-files.test.js +4 -4
  98. package/dist/web/hooks/use-files.test.js.map +1 -1
  99. package/dist/web/hooks/use-layout.d.ts +1 -1
  100. package/dist/web/hooks/use-layout.js +4 -4
  101. package/dist/web/hooks/use-layout.js.map +1 -1
  102. package/dist/web/hooks/use-layout.test.js +4 -4
  103. package/dist/web/hooks/use-layout.test.js.map +1 -1
  104. package/dist/web/hooks/use-open-external.js +2 -2
  105. package/dist/web/hooks/use-open-external.test.js +1 -1
  106. package/dist/web/hooks/use-request-modal.d.ts +1 -1
  107. package/dist/web/hooks/use-request-modal.js +2 -2
  108. package/dist/web/hooks/use-request-modal.js.map +1 -1
  109. package/dist/web/hooks/use-send-follow-up-message.js +2 -2
  110. package/dist/web/hooks/use-tool-info.js +4 -4
  111. package/dist/web/hooks/use-tool-info.js.map +1 -1
  112. package/dist/web/hooks/use-tool-info.test.js +2 -3
  113. package/dist/web/hooks/use-tool-info.test.js.map +1 -1
  114. package/dist/web/hooks/use-user.d.ts +1 -1
  115. package/dist/web/hooks/use-user.js +3 -3
  116. package/dist/web/hooks/use-user.js.map +1 -1
  117. package/dist/web/hooks/use-user.test.js +2 -2
  118. package/dist/web/hooks/use-user.test.js.map +1 -1
  119. package/dist/web/hooks/use-widget-state.js +10 -10
  120. package/dist/web/hooks/use-widget-state.js.map +1 -1
  121. package/dist/web/types.d.ts +0 -133
  122. package/dist/web/types.js +0 -9
  123. package/dist/web/types.js.map +1 -1
  124. package/package.json +9 -8
  125. package/dist/web/bridges/adaptors/apps-sdk-adaptor.js.map +0 -1
  126. package/dist/web/bridges/adaptors/mcp-app-adaptor.js.map +0 -1
  127. package/dist/web/bridges/apps-sdk-bridge.d.ts +0 -10
  128. package/dist/web/bridges/apps-sdk-bridge.js.map +0 -1
  129. package/dist/web/bridges/hooks/use-adaptor.d.ts +0 -2
  130. package/dist/web/bridges/hooks/use-adaptor.js +0 -8
  131. package/dist/web/bridges/hooks/use-adaptor.js.map +0 -1
  132. package/dist/web/bridges/hooks/use-apps-sdk-bridge.d.ts +0 -2
  133. package/dist/web/bridges/hooks/use-apps-sdk-bridge.js.map +0 -1
  134. package/dist/web/bridges/hooks/use-bridge.d.ts +0 -2
  135. package/dist/web/bridges/hooks/use-bridge.js +0 -8
  136. package/dist/web/bridges/hooks/use-bridge.js.map +0 -1
  137. package/dist/web/bridges/hooks/use-mcp-app-bridge.d.ts +0 -5
  138. package/dist/web/bridges/hooks/use-mcp-app-bridge.js.map +0 -1
  139. package/dist/web/bridges/hooks/use-mcp-app-bridge.test.js.map +0 -1
  140. package/dist/web/bridges/mcp-app-bridge.d.ts +0 -38
  141. package/dist/web/bridges/mcp-app-bridge.js +0 -162
  142. package/dist/web/bridges/mcp-app-bridge.js.map +0 -1
  143. package/dist/web/hooks/use-openai-global.d.ts +0 -3
  144. package/dist/web/hooks/use-openai-global.js +0 -6
  145. package/dist/web/hooks/use-openai-global.js.map +0 -1
  146. /package/dist/web/bridges/{hooks/use-mcp-app-bridge.test.d.ts → mcp-app/use-mcp-app-context.test.d.ts} +0 -0
@@ -1,32 +1,32 @@
1
1
  import { useCallback, useEffect, useState } from "react";
2
- import { useAppsSdkBridge } from "../bridges/index.js";
2
+ import { getAdaptor, useHostContext } from "../bridges/index.js";
3
3
  import { filterWidgetContext, injectWidgetContext } from "../helpers/state.js";
4
4
  export function useWidgetState(defaultState) {
5
- const widgetStateFromWindow = useAppsSdkBridge("widgetState");
5
+ const adaptor = getAdaptor();
6
+ const widgetStateFromBridge = useHostContext("widgetState");
6
7
  const [widgetState, _setWidgetState] = useState(() => {
7
- if (widgetStateFromWindow !== null) {
8
- return filterWidgetContext(widgetStateFromWindow);
8
+ if (widgetStateFromBridge !== null) {
9
+ return filterWidgetContext(widgetStateFromBridge);
9
10
  }
10
11
  return typeof defaultState === "function"
11
12
  ? defaultState()
12
13
  : (defaultState ?? null);
13
14
  });
14
15
  useEffect(() => {
15
- // Fixes openai implementation bug
16
- if (widgetStateFromWindow !== null) {
17
- _setWidgetState(filterWidgetContext(widgetStateFromWindow));
16
+ if (widgetStateFromBridge !== null) {
17
+ _setWidgetState(filterWidgetContext(widgetStateFromBridge));
18
18
  }
19
- }, [widgetStateFromWindow]);
19
+ }, [widgetStateFromBridge]);
20
20
  const setWidgetState = useCallback((state) => {
21
21
  _setWidgetState((prevState) => {
22
22
  const newState = typeof state === "function" ? state(prevState) : state;
23
23
  const stateToSet = injectWidgetContext(newState);
24
24
  if (stateToSet !== null) {
25
- window.openai.setWidgetState(stateToSet);
25
+ adaptor.setWidgetState(stateToSet);
26
26
  }
27
27
  return filterWidgetContext(stateToSet);
28
28
  });
29
- }, []);
29
+ }, [adaptor]);
30
30
  return [widgetState, setWidgetState];
31
31
  }
32
32
  //# sourceMappingURL=use-widget-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-widget-state.js","sourceRoot":"","sources":["../../../src/web/hooks/use-widget-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAS/E,MAAM,UAAU,cAAc,CAC5B,YAA0C;IAE1C,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,aAAa,CAAa,CAAC;IAE1E,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAW,GAAG,EAAE;QAC7D,IAAI,qBAAqB,KAAK,IAAI,EAAE,CAAC;YACnC,OAAO,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,OAAO,YAAY,KAAK,UAAU;YACvC,CAAC,CAAC,YAAY,EAAE;YAChB,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,kCAAkC;QAClC,IAAI,qBAAqB,KAAK,IAAI,EAAE,CAAC;YACnC,eAAe,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE5B,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,KAA+B,EAAE,EAAE;QACrE,eAAe,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5B,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxE,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAEjD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC3C,CAAC;YAED,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,WAAW,EAAE,cAAc,CAAU,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"use-widget-state.js","sourceRoot":"","sources":["../../../src/web/hooks/use-widget-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAS/E,MAAM,UAAU,cAAc,CAC5B,YAA0C;IAE1C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,qBAAqB,GAAG,cAAc,CAAC,aAAa,CAAa,CAAC;IAExE,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAW,GAAG,EAAE;QAC7D,IAAI,qBAAqB,KAAK,IAAI,EAAE,CAAC;YACnC,OAAO,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,OAAO,YAAY,KAAK,UAAU;YACvC,CAAC,CAAC,YAAY,EAAE;YAChB,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,qBAAqB,KAAK,IAAI,EAAE,CAAC;YACnC,eAAe,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE5B,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,KAA+B,EAAE,EAAE;QAClC,eAAe,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5B,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxE,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAEjD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;YAED,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,CAAC,WAAW,EAAE,cAAc,CAAU,CAAC;AAChD,CAAC"}
@@ -1,6 +1,4 @@
1
1
  import "react";
2
- import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
3
- import type { WidgetHostType } from "../server/index.js";
4
2
  declare module "react" {
5
3
  interface HTMLAttributes<T> {
6
4
  "data-llm"?: string;
@@ -15,135 +13,4 @@ type RequiredKeys<T> = {
15
13
  [K in keyof T]-?: Record<string, never> extends Pick<T, K> ? never : K;
16
14
  }[keyof T];
17
15
  export type HasRequiredKeys<T> = RequiredKeys<T> extends never ? false : true;
18
- type WidgetState = UnknownObject;
19
- type FileMetadata = {
20
- fileId: string;
21
- };
22
- export declare const TOOL_RESPONSE_EVENT_TYPE = "openai:tool_response";
23
- export declare class ToolResponseEvent extends CustomEvent<{
24
- tool: {
25
- name: string;
26
- args: UnknownObject;
27
- };
28
- }> {
29
- readonly type = "openai:tool_response";
30
- }
31
- declare global {
32
- interface Window {
33
- skybridge: SkybridgeProperties;
34
- openai: OpenAiMethods<WidgetState> & OpenAiProperties;
35
- }
36
- interface WindowEventMap {
37
- [SET_GLOBALS_EVENT_TYPE]: SetGlobalsEvent;
38
- }
39
- }
40
- export type SkybridgeProperties = {
41
- hostType: WidgetHostType;
42
- };
43
- export type OpenAiProperties<ToolInput extends UnknownObject = Record<never, unknown>, ToolOutput extends UnknownObject = UnknownObject, ToolResponseMetadata extends UnknownObject = UnknownObject, WidgetState extends UnknownObject = UnknownObject> = {
44
- theme: Theme;
45
- userAgent: UserAgent;
46
- locale: string;
47
- maxHeight: number;
48
- displayMode: DisplayMode;
49
- safeArea: SafeArea;
50
- view: View;
51
- toolInput: ToolInput;
52
- toolOutput: ToolOutput | {
53
- text: string;
54
- } | null;
55
- toolResponseMetadata: ToolResponseMetadata | null;
56
- widgetState: WidgetState | null;
57
- };
58
- export type CallToolArgs = Record<string, unknown> | null;
59
- export type CallToolResponse = {
60
- content: CallToolResult["content"];
61
- structuredContent: Record<string, unknown>;
62
- isError: boolean;
63
- result: string;
64
- _meta?: CallToolResult["_meta"];
65
- };
66
- export type RequestModalOptions = {
67
- title?: string;
68
- params?: Record<string, unknown>;
69
- anchor?: {
70
- top?: number;
71
- left?: number;
72
- width?: number;
73
- height?: number;
74
- };
75
- };
76
- export type OpenAiMethods<WidgetState extends UnknownObject = UnknownObject> = {
77
- /** Calls a tool on your MCP. Returns the full response. */
78
- callTool: <ToolArgs extends CallToolArgs = null, ToolResponse extends CallToolResponse = CallToolResponse>(name: string, args: ToolArgs) => Promise<ToolResponse>;
79
- /** Triggers a followup turn in the ChatGPT conversation */
80
- sendFollowUpMessage: (args: {
81
- prompt: string;
82
- }) => Promise<void>;
83
- /** Opens an external link, redirects web page or mobile app */
84
- openExternal(args: {
85
- href: string;
86
- }): void;
87
- /** For transitioning an app from inline to fullscreen or pip */
88
- requestDisplayMode: (args: {
89
- mode: DisplayMode;
90
- }) => Promise<{
91
- /**
92
- * The granted display mode. The host may reject the request.
93
- * For mobile, PiP is always coerced to fullscreen.
94
- */
95
- mode: DisplayMode;
96
- }>;
97
- /**
98
- * Sets the widget state.
99
- * This state is persisted across widget renders.
100
- */
101
- setWidgetState: (state: WidgetState) => Promise<void>;
102
- /**
103
- * Opens a modal portaled outside of the widget iFrame.
104
- * This ensures the modal is correctly displayed and not limited to the widget's area.
105
- */
106
- requestModal: (args: RequestModalOptions) => Promise<void>;
107
- /** Uploads a new file to the host */
108
- uploadFile: (file: File) => Promise<FileMetadata>;
109
- /**
110
- * Downloads a file from the host that was previously uploaded.
111
- * Only files uploaded by the same connector instance can be downloaded.
112
- */
113
- downloadFile: (file: FileMetadata) => Promise<{
114
- downloadUrl: string;
115
- }>;
116
- };
117
- export declare const SET_GLOBALS_EVENT_TYPE = "openai:set_globals";
118
- export declare class SetGlobalsEvent extends CustomEvent<{
119
- globals: Partial<OpenAiProperties>;
120
- }> {
121
- readonly type = "openai:set_globals";
122
- }
123
- export type CallTool = (name: string, args: Record<string, unknown>) => Promise<CallToolResponse>;
124
- export type DisplayMode = "pip" | "inline" | "fullscreen" | "modal";
125
- export type View = {
126
- mode: DisplayMode;
127
- params?: Record<string, unknown>;
128
- };
129
- export type Theme = "light" | "dark";
130
- export type SafeAreaInsets = {
131
- top: number;
132
- bottom: number;
133
- left: number;
134
- right: number;
135
- };
136
- export type SafeArea = {
137
- insets: SafeAreaInsets;
138
- };
139
- export type DeviceType = "mobile" | "tablet" | "desktop" | "unknown";
140
- export type UserAgent = {
141
- device: {
142
- type: DeviceType;
143
- };
144
- capabilities: {
145
- hover: boolean;
146
- touch: boolean;
147
- };
148
- };
149
16
  export {};
package/dist/web/types.js CHANGED
@@ -1,11 +1,2 @@
1
1
  import "react";
2
- export const TOOL_RESPONSE_EVENT_TYPE = "openai:tool_response";
3
- export class ToolResponseEvent extends CustomEvent {
4
- type = TOOL_RESPONSE_EVENT_TYPE;
5
- }
6
- // Dispatched when any global changes in the host page
7
- export const SET_GLOBALS_EVENT_TYPE = "openai:set_globals";
8
- export class SetGlobalsEvent extends CustomEvent {
9
- type = SET_GLOBALS_EVENT_TYPE;
10
- }
11
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/web/types.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,CAAC;AAyBf,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAC/D,MAAM,OAAO,iBAAkB,SAAQ,WAErC;IACkB,IAAI,GAAG,wBAAwB,CAAC;CACnD;AAuGD,sDAAsD;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAC3D,MAAM,OAAO,eAAgB,SAAQ,WAEnC;IACkB,IAAI,GAAG,sBAAsB,CAAC;CACjD"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/web/types.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skybridge",
3
- "version": "0.0.0-dev.97df11c",
3
+ "version": "0.0.0-dev.9876d9e",
4
4
  "description": "Skybridge is a framework for building ChatGPT apps",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,19 +34,20 @@
34
34
  "react-dom": ">=18.0.0"
35
35
  },
36
36
  "dependencies": {
37
- "@babel/core": "^7.28.5",
37
+ "@babel/core": "^7.28.6",
38
38
  "@oclif/core": "^4.8.0",
39
39
  "cors": "^2.8.5",
40
40
  "dequal": "^2.0.3",
41
41
  "es-toolkit": "^1.43.0",
42
42
  "express": "^5.2.1",
43
43
  "handlebars": "^4.7.8",
44
+ "ink": "^6.6.0",
44
45
  "superjson": "^2.2.6",
45
46
  "vite": "^7.3.1",
46
- "zustand": "^5.0.9"
47
+ "zustand": "^5.0.10"
47
48
  },
48
49
  "devDependencies": {
49
- "@modelcontextprotocol/ext-apps": "^0.2.2",
50
+ "@modelcontextprotocol/ext-apps": "^0.4.0",
50
51
  "@modelcontextprotocol/sdk": "^1.25.2",
51
52
  "@testing-library/dom": "^10.4.1",
52
53
  "@testing-library/react": "^16.3.1",
@@ -55,15 +56,15 @@
55
56
  "@types/cors": "^2.8.19",
56
57
  "@types/express": "^5.0.6",
57
58
  "@types/jsdom": "^27.0.0",
58
- "@types/node": "^24.10.4",
59
- "@types/react": "^19.2.7",
59
+ "@types/node": "^24.10.8",
60
+ "@types/react": "^19.2.8",
60
61
  "@types/react-dom": "^19.2.3",
61
- "@vitest/ui": "^4.0.16",
62
+ "@vitest/ui": "^4.0.17",
62
63
  "jsdom": "^27.4.0",
63
64
  "shx": "^0.4.0",
64
65
  "ts-node": "^10.9.2",
65
66
  "typescript": "^5.9.3",
66
- "vitest": "^4.0.16",
67
+ "vitest": "^4.0.17",
67
68
  "zod": "^4.3.5"
68
69
  },
69
70
  "bin": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"apps-sdk-adaptor.js","sourceRoot":"","sources":["../../../../src/web/bridges/adaptors/apps-sdk-adaptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAStD,MAAM,OAAO,cAAc;IACjB,MAAM,CAAC,QAAQ,GAA0B,IAAI,CAAC;IAE/C,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC7B,cAAc,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,cAAc,CAAC,QAAQ,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,aAAa;QACzB,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;IACjC,CAAC;IAEM,gBAAgB,CACrB,GAAM;QAEN,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;YAChC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;SAC3C,CAAC;IACJ,CAAC;IAEM,QAAQ,GAAG,KAAK,EAIrB,IAAY,EACZ,IAAc,EACS,EAAE;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAyB,IAAI,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC,CAAC;IAEK,kBAAkB,GAAG,CAC1B,IAAiB,EACe,EAAE;QAClC,OAAO,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC;IAEK,mBAAmB,GAAG,CAAC,MAAc,EAAiB,EAAE;QAC7D,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC;IAEK,YAAY,CAAC,IAAY;QAC9B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-app-adaptor.js","sourceRoot":"","sources":["../../../../src/web/bridges/adaptors/mcp-app-adaptor.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { type OpenAiProperties } from "../types.js";
2
- import type { Bridge, Subscribe } from "./types.js";
3
- export declare class AppsSdkBridge implements Bridge<OpenAiProperties> {
4
- private static instance;
5
- static getInstance(): AppsSdkBridge;
6
- static resetInstance(): void;
7
- subscribe(key: keyof OpenAiProperties): Subscribe;
8
- subscribe(keys: readonly (keyof OpenAiProperties)[]): Subscribe;
9
- getSnapshot: <K extends keyof OpenAiProperties>(key: K) => (import("../types.js").OpenAiMethods<import("../types.js").UnknownObject> & OpenAiProperties<Record<never, unknown>, import("../types.js").UnknownObject, import("../types.js").UnknownObject, import("../types.js").UnknownObject>)[K];
10
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"apps-sdk-bridge.js","sourceRoot":"","sources":["../../../src/web/bridges/apps-sdk-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,GAEvB,MAAM,aAAa,CAAC;AAGrB,MAAM,OAAO,aAAa;IAChB,MAAM,CAAC,QAAQ,GAAyB,IAAI,CAAC;IAE9C,MAAM,CAAC,WAAW;QACvB,IACE,MAAM,CAAC,SAAS,CAAC,QAAQ,KAAK,UAAU;YACxC,MAAM,CAAC,MAAM,KAAK,SAAS,EAC3B,CAAC;YACD,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;QACJ,CAAC;QACD,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpC,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,aAAa;QACzB,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC3B,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,CAAC;IACH,CAAC;IAIM,SAAS,CACd,SAAuE;QAEvE,MAAM,IAAI,GAAwC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YACxE,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChB,OAAO,CAAC,QAAoB,EAAE,EAAE;YAC9B,MAAM,eAAe,GAAG,CAAC,KAAsB,EAAE,EAAE;gBACjD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CACjC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CACjD,CAAC;gBACF,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,OAAO;gBACT,CAAC;gBACD,QAAQ,EAAE,CAAC;YACb,CAAC,CAAC;YAEF,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,eAAe,EAAE;gBAC/D,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YAEH,OAAO,GAAG,EAAE;gBACV,MAAM,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;YACtE,CAAC,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAEM,WAAW,GAAG,CAAmC,GAAM,EAAE,EAAE;QAChE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,+EAA+E,GAAG,8CAA8C,CACjI,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Adaptor } from "../types.js";
2
- export declare const useAdaptor: () => Adaptor;
@@ -1,8 +0,0 @@
1
- import { AppsSdkAdaptor } from "../adaptors/apps-sdk-adaptor.js";
2
- import { McpAppAdaptor } from "../adaptors/mcp-app-adaptor.js";
3
- export const useAdaptor = () => {
4
- return window.skybridge.hostType === "apps-sdk"
5
- ? AppsSdkAdaptor.getInstance()
6
- : McpAppAdaptor.getInstance();
7
- };
8
- //# sourceMappingURL=use-adaptor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-adaptor.js","sourceRoot":"","sources":["../../../../src/web/bridges/hooks/use-adaptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,MAAM,CAAC,MAAM,UAAU,GAAG,GAAY,EAAE;IACtC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,KAAK,UAAU;QAC7C,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE;QAC9B,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { OpenAiProperties } from "../../types.js";
2
- export declare function useAppsSdkBridge<K extends keyof OpenAiProperties>(key: K): OpenAiProperties[K];
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-apps-sdk-bridge.js","sourceRoot":"","sources":["../../../../src/web/bridges/hooks/use-apps-sdk-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,gBAAgB,CAC9B,GAAM;IAEN,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CACtD,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CACxB,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { BridgeInterface } from "../types.js";
2
- export declare const useBridge: <K extends keyof BridgeInterface>(key: K) => BridgeInterface[K];
@@ -1,8 +0,0 @@
1
- import { useSyncExternalStore } from "react";
2
- import { useAdaptor } from "./use-adaptor.js";
3
- export const useBridge = (key) => {
4
- const adaptor = useAdaptor();
5
- const externalStore = adaptor.getExternalStore(key);
6
- return useSyncExternalStore(externalStore.subscribe, externalStore.getSnapshot);
7
- };
8
- //# sourceMappingURL=use-bridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-bridge.js","sourceRoot":"","sources":["../../../../src/web/bridges/hooks/use-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,GAAM,EACc,EAAE;IACtB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEpD,OAAO,oBAAoB,CACzB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,WAAW,CAC1B,CAAC;AACJ,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { McpUiInitializeRequest } from "@modelcontextprotocol/ext-apps";
2
- import { type McpAppBridgeContext } from "../mcp-app-bridge.js";
3
- type McpAppInitializationOptions = Pick<McpUiInitializeRequest["params"], "appInfo">;
4
- export declare function useMcpAppBridge<K extends keyof McpAppBridgeContext>(key: K, options?: Partial<McpAppInitializationOptions>, requestTimeout?: number): McpAppBridgeContext[K];
5
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-mcp-app-bridge.js","sourceRoot":"","sources":["../../../../src/web/bridges/hooks/use-mcp-app-bridge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,YAAY,EAA4B,MAAM,sBAAsB,CAAC;AAO9E,MAAM,UAAU,eAAe,CAC7B,GAAM,EACN,OAA8C,EAC9C,cAAuB;IAEvB,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACjE,OAAO,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CACtD,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CACxB,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-mcp-app-bridge.test.js","sourceRoot":"","sources":["../../../../src/web/bridges/hooks/use-mcp-app-bridge.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;QACpD,YAAY,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,gBAAgB,EAAE,CAAC;QACtB,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE;YACtB,WAAW,EAAE,4BAA4B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;SAC9D,CAAC,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QAE9D,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,eAAe,GAAG,EAAE;aACvB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;aACvB,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEhC,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAE5D,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QAE3D,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAC5C,MAAM,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,EACpD,GAAG,CACJ,CAAC;QAEF,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACnB,MAAM,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAC1C,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAC/B,CAAC;QAEF,eAAe,CAAC,WAAW,EAAE,CAAC;QAC9B,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,38 +0,0 @@
1
- import type { McpUiHostContext, McpUiInitializeRequest, McpUiToolCancelledNotification, McpUiToolInputNotification, McpUiToolResultNotification } from "@modelcontextprotocol/ext-apps";
2
- import type { Bridge, Subscribe } from "./types.js";
3
- type McpAppInitializationOptions = Pick<McpUiInitializeRequest["params"], "appInfo">;
4
- export type McpToolState = {
5
- toolInput: NonNullable<McpUiToolInputNotification["params"]["arguments"]> | null;
6
- toolResult: McpUiToolResultNotification["params"] | null;
7
- toolCancelled: McpUiToolCancelledNotification["params"] | null;
8
- };
9
- export type McpAppBridgeContext = McpUiHostContext & McpToolState;
10
- export type McpAppBridgeKey = keyof McpAppBridgeContext;
11
- export declare class McpAppBridge implements Bridge<McpUiHostContext> {
12
- private static instance;
13
- context: McpAppBridgeContext;
14
- private listeners;
15
- private pendingRequests;
16
- private nextId;
17
- private initialized;
18
- private appInitializationOptions;
19
- private requestTimeout;
20
- constructor(options: McpAppInitializationOptions, requestTimeout?: number);
21
- static getInstance(options?: Partial<McpAppInitializationOptions>, requestTimeout?: number): McpAppBridge;
22
- subscribe(key: McpAppBridgeKey): Subscribe;
23
- subscribe(keys: readonly McpAppBridgeKey[]): Subscribe;
24
- getSnapshot<K extends keyof McpAppBridgeContext>(key: K): McpAppBridgeContext[K];
25
- cleanup: () => void;
26
- static resetInstance(): void;
27
- request<R extends {
28
- method: string;
29
- params?: unknown;
30
- }, T>({ method, params, }: R): Promise<T>;
31
- private emit;
32
- private updateContext;
33
- private init;
34
- private handleMessage;
35
- private connect;
36
- private notify;
37
- }
38
- export {};
@@ -1,162 +0,0 @@
1
- const LATEST_PROTOCOL_VERSION = "2025-11-21";
2
- export class McpAppBridge {
3
- static instance = null;
4
- context = {
5
- toolInput: null,
6
- toolCancelled: null,
7
- toolResult: null,
8
- };
9
- listeners = new Map();
10
- pendingRequests = new Map();
11
- nextId = 1;
12
- initialized;
13
- appInitializationOptions;
14
- requestTimeout;
15
- constructor(options, requestTimeout = 10_000) {
16
- this.requestTimeout = requestTimeout;
17
- this.initialized = false;
18
- this.appInitializationOptions = {
19
- appInfo: options.appInfo,
20
- appCapabilities: {},
21
- protocolVersion: LATEST_PROTOCOL_VERSION,
22
- };
23
- }
24
- static getInstance(options, requestTimeout) {
25
- if (window.skybridge.hostType !== "mcp-app") {
26
- throw new Error("MCP App Bridge can only be used in the mcp-app runtime");
27
- }
28
- if (McpAppBridge.instance && (options || requestTimeout)) {
29
- console.warn("McpAppBridge.getInstance: options and requestTimeout ignored, instance already exists");
30
- }
31
- if (!McpAppBridge.instance) {
32
- const defaultOptions = {
33
- appInfo: { name: "skybridge-app", version: "0.0.1" },
34
- };
35
- McpAppBridge.instance = new McpAppBridge({ ...defaultOptions, ...options }, requestTimeout);
36
- }
37
- return McpAppBridge.instance;
38
- }
39
- subscribe(keyOrKeys) {
40
- const keys = Array.isArray(keyOrKeys) ? keyOrKeys : [keyOrKeys];
41
- return (onChange) => {
42
- for (const key of keys) {
43
- this.listeners.set(key, new Set([...(this.listeners.get(key) || []), onChange]));
44
- }
45
- this.init();
46
- return () => {
47
- for (const key of keys) {
48
- this.listeners.get(key)?.delete(onChange);
49
- }
50
- };
51
- };
52
- }
53
- getSnapshot(key) {
54
- return this.context[key];
55
- }
56
- cleanup = () => {
57
- window.removeEventListener("message", this.handleMessage);
58
- this.pendingRequests.forEach((request) => {
59
- clearTimeout(request.timeout);
60
- });
61
- this.pendingRequests.clear();
62
- this.listeners.clear();
63
- };
64
- static resetInstance() {
65
- if (McpAppBridge.instance) {
66
- McpAppBridge.instance.cleanup();
67
- McpAppBridge.instance = null;
68
- }
69
- }
70
- request({ method, params, }) {
71
- const id = this.nextId++;
72
- const { promise, resolve, reject } = Promise.withResolvers();
73
- this.pendingRequests.set(id, {
74
- resolve: resolve,
75
- reject,
76
- timeout: setTimeout(() => {
77
- reject(new Error("Request timed out"));
78
- this.pendingRequests.delete(id);
79
- }, this.requestTimeout),
80
- });
81
- window.parent.postMessage({ jsonrpc: "2.0", id, method, params }, "*");
82
- return promise;
83
- }
84
- emit(key) {
85
- this.listeners.get(key)?.forEach((listener) => {
86
- listener();
87
- });
88
- }
89
- updateContext(context) {
90
- this.context = { ...this.context, ...context };
91
- for (const key of Object.keys(context)) {
92
- this.emit(key);
93
- }
94
- }
95
- init() {
96
- if (this.initialized) {
97
- return;
98
- }
99
- this.initialized = true;
100
- if (typeof window === "undefined" || window.parent === window) {
101
- return;
102
- }
103
- window.addEventListener("message", this.handleMessage);
104
- this.connect();
105
- }
106
- handleMessage = (event) => {
107
- const data = event.data;
108
- if (data.jsonrpc !== "2.0") {
109
- return;
110
- }
111
- if ("id" in data) {
112
- const request = this.pendingRequests.get(data.id);
113
- if (request) {
114
- clearTimeout(request.timeout);
115
- this.pendingRequests.delete(data.id);
116
- if ("error" in data) {
117
- request.reject(new Error(data.error.message));
118
- return;
119
- }
120
- request.resolve(data.result);
121
- }
122
- return;
123
- }
124
- switch (data.method) {
125
- case "ui/notifications/host-context-changed":
126
- this.updateContext(data.params);
127
- return;
128
- case "ui/notifications/tool-input":
129
- this.updateContext({
130
- toolInput: data.params.arguments ?? {},
131
- });
132
- return;
133
- case "ui/notifications/tool-result":
134
- this.updateContext({
135
- toolResult: data.params,
136
- });
137
- return;
138
- case "ui/notifications/tool-cancelled":
139
- this.updateContext({
140
- toolCancelled: data.params,
141
- });
142
- return;
143
- }
144
- };
145
- async connect() {
146
- try {
147
- const result = await this.request({
148
- method: "ui/initialize",
149
- params: this.appInitializationOptions,
150
- });
151
- this.updateContext(result.hostContext);
152
- this.notify({ method: "ui/notifications/initialized" });
153
- }
154
- catch (err) {
155
- console.error(err);
156
- }
157
- }
158
- notify(notification) {
159
- window.parent.postMessage({ jsonrpc: "2.0", ...notification }, "*");
160
- }
161
- }
162
- //# sourceMappingURL=mcp-app-bridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-app-bridge.js","sourceRoot":"","sources":["../../../src/web/bridges/mcp-app-bridge.ts"],"names":[],"mappings":"AAmCA,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAqB7C,MAAM,OAAO,YAAY;IACf,MAAM,CAAC,QAAQ,GAAwB,IAAI,CAAC;IAC7C,OAAO,GAAwB;QACpC,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACjB,CAAC;IACM,SAAS,GAAG,IAAI,GAAG,EAAoC,CAAC;IACxD,eAAe,GAAG,IAAI,GAAG,EAA4C,CAAC;IACtE,MAAM,GAAG,CAAC,CAAC;IACX,WAAW,CAAU;IACrB,wBAAwB,CAAmC;IAC3D,cAAc,CAAS;IAE/B,YACE,OAAoC,EACpC,iBAAyB,MAAM;QAE/B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,wBAAwB,GAAG;YAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,eAAe,EAAE,EAAE;YACnB,eAAe,EAAE,uBAAuB;SACzC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,WAAW,CACvB,OAA8C,EAC9C,cAAuB;QAEvB,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,YAAY,CAAC,QAAQ,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC,EAAE,CAAC;YACzD,OAAO,CAAC,IAAI,CACV,uFAAuF,CACxF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,cAAc,GAAgC;gBAClD,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE;aACrD,CAAC;YACF,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,CACtC,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,EACjC,cAAc,CACf,CAAC;QACJ,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAIM,SAAS,CACd,SAAuD;QAEvD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChE,OAAO,CAAC,QAAoB,EAAE,EAAE;YAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAChB,GAAG,EACH,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CACxD,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,GAAG,EAAE;gBACV,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAEM,WAAW,CAChB,GAAM;QAEN,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEM,OAAO,GAAG,GAAG,EAAE;QACpB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACvC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC,CAAC;IAEK,MAAM,CAAC,aAAa;QACzB,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC1B,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAChC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAEM,OAAO,CAAoD,EAChE,MAAM,EACN,MAAM,GACJ;QACF,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAK,CAAC;QAChE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE;YAC3B,OAAO,EAAE,OAAmC;YAC5C,MAAM;YACN,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE;gBACvB,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC;SACxB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;QAEvE,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,IAAI,CAAC,GAAoB;QAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC5C,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,OAAqC;QACzD,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,IAAI;QACV,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEO,aAAa,GAAG,CACtB,KAAwD,EACxD,EAAE;QACF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC9B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrC,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;oBACpB,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC9C,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAED,OAAO;QACT,CAAC;QAED,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,uCAAuC;gBAC1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,OAAO;YACT,KAAK,6BAA6B;gBAChC,IAAI,CAAC,aAAa,CAAC;oBACjB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE;iBACvC,CAAC,CAAC;gBACH,OAAO;YACT,KAAK,8BAA8B;gBACjC,IAAI,CAAC,aAAa,CAAC;oBACjB,UAAU,EAAE,IAAI,CAAC,MAAM;iBACxB,CAAC,CAAC;gBACH,OAAO;YACT,KAAK,iCAAiC;gBACpC,IAAI,CAAC,aAAa,CAAC;oBACjB,aAAa,EAAE,IAAI,CAAC,MAAM;iBAC3B,CAAC,CAAC;gBACH,OAAO;QACX,CAAC;IACH,CAAC,CAAC;IAEM,KAAK,CAAC,OAAO;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAG/B;gBACA,MAAM,EAAE,eAAe;gBACvB,MAAM,EAAE,IAAI,CAAC,wBAAwB;aACtC,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,YAA0C;QACvD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;IACtE,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { OpenAiProperties } from "../types.js";
2
- /** @deprecated Use `useAppsSdkBridge` instead */
3
- export declare function useOpenAiGlobal<K extends keyof OpenAiProperties>(key: K): OpenAiProperties[K];
@@ -1,6 +0,0 @@
1
- import { useAppsSdkBridge } from "../bridges/index.js";
2
- /** @deprecated Use `useAppsSdkBridge` instead */
3
- export function useOpenAiGlobal(key) {
4
- return useAppsSdkBridge(key);
5
- }
6
- //# sourceMappingURL=use-openai-global.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-openai-global.js","sourceRoot":"","sources":["../../../src/web/hooks/use-openai-global.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,iDAAiD;AACjD,MAAM,UAAU,eAAe,CAC7B,GAAM;IAEN,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC"}