skybridge 0.0.0-dev.76a95bd → 0.0.0-dev.780c01d
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/src/web/bridges/apps-sdk-bridge.d.ts +2 -8
- package/dist/src/web/bridges/apps-sdk-bridge.js +0 -3
- package/dist/src/web/bridges/apps-sdk-bridge.js.map +1 -1
- package/dist/src/web/bridges/hooks/use-bridge.d.ts +1 -6
- package/dist/src/web/bridges/hooks/use-bridge.js +1 -31
- package/dist/src/web/bridges/hooks/use-bridge.js.map +1 -1
- package/dist/src/web/bridges/mcp-app-bridge.d.ts +2 -6
- package/dist/src/web/bridges/mcp-app-bridge.js +0 -6
- package/dist/src/web/bridges/mcp-app-bridge.js.map +1 -1
- package/dist/src/web/hooks/use-display-mode.d.ts +2 -2
- package/dist/src/web/hooks/use-display-mode.js +3 -6
- package/dist/src/web/hooks/use-display-mode.js.map +1 -1
- package/dist/src/web/hooks/use-layout.js +3 -3
- package/dist/src/web/hooks/use-layout.js.map +1 -1
- package/dist/src/web/hooks/use-request-modal.d.ts +6 -3
- package/dist/src/web/hooks/use-request-modal.js +6 -1
- package/dist/src/web/hooks/use-request-modal.js.map +1 -1
- package/dist/src/web/hooks/use-request-modal.test.js +35 -2
- package/dist/src/web/hooks/use-request-modal.test.js.map +1 -1
- package/dist/src/web/types.d.ts +17 -4
- package/dist/src/web/types.js.map +1 -1
- package/package.json +1 -1
- package/dist/src/web/bridges/get-bridge.d.ts +0 -2
- package/dist/src/web/bridges/get-bridge.js +0 -8
- package/dist/src/web/bridges/get-bridge.js.map +0 -1
- package/dist/src/web/bridges/types.d.ts +0 -8
- package/dist/src/web/bridges/types.js +0 -2
- package/dist/src/web/bridges/types.js.map +0 -1
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
3
|
-
export declare class AppsSdkBridge implements IBridge {
|
|
1
|
+
import { type OpenAiProperties } from "../types.js";
|
|
2
|
+
export declare class AppsSdkBridge {
|
|
4
3
|
private static instance;
|
|
5
4
|
static getInstance(): AppsSdkBridge;
|
|
6
5
|
static resetInstance(): void;
|
|
7
6
|
subscribe: (key: keyof OpenAiProperties) => (onChange: () => void) => () => void;
|
|
8
7
|
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];
|
|
9
|
-
requestDisplayMode: ({ mode }: {
|
|
10
|
-
mode: DisplayMode;
|
|
11
|
-
}) => Promise<{
|
|
12
|
-
mode: DisplayMode;
|
|
13
|
-
}>;
|
|
14
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apps-sdk-bridge.js","sourceRoot":"","sources":["../../../../src/web/bridges/apps-sdk-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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;AAErB,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;IAED,SAAS,GAAG,CAAC,GAA2B,EAAE,EAAE,CAAC,CAAC,QAAoB,EAAE,EAAE;QACpE,MAAM,eAAe,GAAG,CAAC,KAAsB,EAAE,EAAE;YACjD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,eAAe,EAAE;YAC/D,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;QACtE,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,WAAW,GAAG,CAAmC,GAAM,EAAE,EAAE;QACzD,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,8 +1,3 @@
|
|
|
1
1
|
import type { McpUiHostContext } from "@modelcontextprotocol/ext-apps";
|
|
2
|
-
export type BridgeInterface = Required<Pick<McpUiHostContext, "theme" | "locale"
|
|
3
|
-
safeArea: {
|
|
4
|
-
insets: NonNullable<McpUiHostContext["safeAreaInsets"]>;
|
|
5
|
-
};
|
|
6
|
-
maxHeight: NonNullable<NonNullable<McpUiHostContext["viewport"]>["maxHeight"]>;
|
|
7
|
-
};
|
|
2
|
+
export type BridgeInterface = Required<Pick<McpUiHostContext, "theme" | "locale">>;
|
|
8
3
|
export declare const useBridge: <K extends keyof BridgeInterface>(key: K, defaultValue?: BridgeInterface[K]) => BridgeInterface[K];
|
|
@@ -4,16 +4,6 @@ import { McpAppBridge } from "../mcp-app-bridge";
|
|
|
4
4
|
const DEFAULT_VALUE_FOR_MCP_APP_BRIDGE = {
|
|
5
5
|
theme: "light",
|
|
6
6
|
locale: "en-US",
|
|
7
|
-
displayMode: "inline",
|
|
8
|
-
safeArea: {
|
|
9
|
-
insets: {
|
|
10
|
-
top: 0,
|
|
11
|
-
right: 0,
|
|
12
|
-
bottom: 0,
|
|
13
|
-
left: 0,
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
maxHeight: window.innerHeight,
|
|
17
7
|
};
|
|
18
8
|
const getExternalStore = (key, defaultValue = DEFAULT_VALUE_FOR_MCP_APP_BRIDGE[key]) => {
|
|
19
9
|
const hostType = window.skybridge.hostType;
|
|
@@ -25,26 +15,6 @@ const getExternalStore = (key, defaultValue = DEFAULT_VALUE_FOR_MCP_APP_BRIDGE[k
|
|
|
25
15
|
};
|
|
26
16
|
}
|
|
27
17
|
const bridge = McpAppBridge.getInstance();
|
|
28
|
-
if (key === "safeArea") {
|
|
29
|
-
return {
|
|
30
|
-
subscribe: bridge.subscribe("safeAreaInsets"),
|
|
31
|
-
getSnapshot: () => {
|
|
32
|
-
const safeArea = bridge.getSnapshot("safeAreaInsets");
|
|
33
|
-
return safeArea
|
|
34
|
-
? { insets: safeArea }
|
|
35
|
-
: defaultValue;
|
|
36
|
-
},
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
if (key === "maxHeight") {
|
|
40
|
-
return {
|
|
41
|
-
subscribe: bridge.subscribe("viewport"),
|
|
42
|
-
getSnapshot: () => {
|
|
43
|
-
const viewport = bridge.getSnapshot("viewport");
|
|
44
|
-
return (viewport?.maxHeight ?? defaultValue);
|
|
45
|
-
},
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
18
|
return {
|
|
49
19
|
subscribe: bridge.subscribe(key),
|
|
50
20
|
getSnapshot: () => (bridge.getSnapshot(key) ?? defaultValue),
|
|
@@ -52,6 +22,6 @@ const getExternalStore = (key, defaultValue = DEFAULT_VALUE_FOR_MCP_APP_BRIDGE[k
|
|
|
52
22
|
};
|
|
53
23
|
export const useBridge = (key, defaultValue = DEFAULT_VALUE_FOR_MCP_APP_BRIDGE[key]) => {
|
|
54
24
|
const externalStore = getExternalStore(key, defaultValue);
|
|
55
|
-
return useSyncExternalStore(externalStore.subscribe, externalStore.getSnapshot);
|
|
25
|
+
return useSyncExternalStore(externalStore.subscribe, externalStore.getSnapshot, () => DEFAULT_VALUE_FOR_MCP_APP_BRIDGE[key]);
|
|
56
26
|
};
|
|
57
27
|
//# sourceMappingURL=use-bridge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-bridge.js","sourceRoot":"","sources":["../../../../../src/web/bridges/hooks/use-bridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-bridge.js","sourceRoot":"","sources":["../../../../../src/web/bridges/hooks/use-bridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAWjD,MAAM,gCAAgC,GAAoB;IACxD,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,OAAO;CAChB,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,GAAM,EACN,eAAmC,gCAAgC,CAAC,GAAG,CAAC,EAChD,EAAE;IAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC3C,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,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,CAAuB;SACjE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAC1C,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;QAChC,WAAW,EAAE,GAAG,EAAE,CAChB,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,YAAY,CAAuB;KAClE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,GAAM,EACN,eAAmC,gCAAgC,CAAC,GAAG,CAAC,EACpD,EAAE;IACtB,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAE1D,OAAO,oBAAoB,CACzB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,WAAW,EACzB,GAAG,EAAE,CAAC,gCAAgC,CAAC,GAAG,CAAC,CAC5C,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { IBridge } from "./types";
|
|
1
|
+
import type { McpUiHostContext, McpUiInitializeRequest } from "@modelcontextprotocol/ext-apps";
|
|
3
2
|
type McpAppInitializationOptions = Pick<McpUiInitializeRequest["params"], "appInfo">;
|
|
4
|
-
export declare class McpAppBridge
|
|
3
|
+
export declare class McpAppBridge {
|
|
5
4
|
private static instance;
|
|
6
5
|
context: McpUiHostContext | null;
|
|
7
6
|
private listeners;
|
|
@@ -14,9 +13,6 @@ export declare class McpAppBridge implements IBridge {
|
|
|
14
13
|
static getInstance(options?: Partial<McpAppInitializationOptions>, requestTimeout?: number): McpAppBridge;
|
|
15
14
|
subscribe: (key: keyof McpUiHostContext) => (onChange: () => void) => () => boolean | undefined;
|
|
16
15
|
getSnapshot: <K extends keyof McpUiHostContext>(key: K) => McpUiHostContext[K] | undefined;
|
|
17
|
-
requestDisplayMode: ({ mode }: {
|
|
18
|
-
mode: McpUiDisplayMode;
|
|
19
|
-
}) => Promise<McpUiRequestDisplayModeResult>;
|
|
20
16
|
cleanup: () => void;
|
|
21
17
|
static resetInstance(): void;
|
|
22
18
|
private request;
|
|
@@ -40,12 +40,6 @@ export class McpAppBridge {
|
|
|
40
40
|
getSnapshot = (key) => {
|
|
41
41
|
return this.context?.[key];
|
|
42
42
|
};
|
|
43
|
-
requestDisplayMode = async ({ mode }) => {
|
|
44
|
-
return this.request({
|
|
45
|
-
method: "ui/request-display-mode",
|
|
46
|
-
params: { mode },
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
43
|
cleanup = () => {
|
|
50
44
|
window.removeEventListener("message", this.handleMessage);
|
|
51
45
|
this.pendingRequests.forEach((request) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-app-bridge.js","sourceRoot":"","sources":["../../../../src/web/bridges/mcp-app-bridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-app-bridge.js","sourceRoot":"","sources":["../../../../src/web/bridges/mcp-app-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { DisplayMode } from "../types.js";
|
|
2
|
-
export declare function useDisplayMode(): readonly [
|
|
3
|
-
mode:
|
|
2
|
+
export declare function useDisplayMode(): readonly [DisplayMode, (mode: DisplayMode) => Promise<{
|
|
3
|
+
mode: DisplayMode;
|
|
4
4
|
}>];
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { getBridge } from "../bridges/get-bridge.js";
|
|
3
|
-
import { useBridge } from "../bridges/index.js";
|
|
1
|
+
import { useAppsSdkBridge } from "../bridges/index.js";
|
|
4
2
|
export function useDisplayMode() {
|
|
5
|
-
const displayMode =
|
|
6
|
-
const
|
|
7
|
-
const setDisplayMode = useCallback((mode) => bridge.requestDisplayMode({ mode }), [bridge]);
|
|
3
|
+
const displayMode = useAppsSdkBridge("displayMode");
|
|
4
|
+
const setDisplayMode = (mode) => window.openai.requestDisplayMode({ mode });
|
|
8
5
|
return [displayMode, setDisplayMode];
|
|
9
6
|
}
|
|
10
7
|
//# sourceMappingURL=use-display-mode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-display-mode.js","sourceRoot":"","sources":["../../../../src/web/hooks/use-display-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"use-display-mode.js","sourceRoot":"","sources":["../../../../src/web/hooks/use-display-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,MAAM,UAAU,cAAc;IAC5B,MAAM,WAAW,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,CAAC,IAAiB,EAAE,EAAE,CAC3C,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,OAAO,CAAC,WAAW,EAAE,cAAc,CAAU,CAAC;AAChD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useBridge } from "../bridges/index.js";
|
|
1
|
+
import { useAppsSdkBridge, useBridge } from "../bridges/index.js";
|
|
2
2
|
/**
|
|
3
3
|
* Hook for accessing layout and visual environment information.
|
|
4
4
|
* These values may change on resize or theme toggle.
|
|
@@ -16,8 +16,8 @@ import { useBridge } from "../bridges/index.js";
|
|
|
16
16
|
*/
|
|
17
17
|
export function useLayout() {
|
|
18
18
|
const theme = useBridge("theme");
|
|
19
|
-
const maxHeight =
|
|
20
|
-
const safeArea =
|
|
19
|
+
const maxHeight = useAppsSdkBridge("maxHeight");
|
|
20
|
+
const safeArea = useAppsSdkBridge("safeArea");
|
|
21
21
|
return { theme, maxHeight, safeArea };
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=use-layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-layout.js","sourceRoot":"","sources":["../../../../src/web/hooks/use-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-layout.js","sourceRoot":"","sources":["../../../../src/web/hooks/use-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AASlE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAE9C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACxC,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import type { RequestModalOptions } from "../types.js";
|
|
1
2
|
/**
|
|
2
3
|
* Triggers a modal containing the widget rendered in display mode "modal"
|
|
3
4
|
*/
|
|
4
|
-
export declare function useRequestModal():
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
export declare function useRequestModal(): {
|
|
6
|
+
isOpen: boolean;
|
|
7
|
+
open: (options: RequestModalOptions) => void;
|
|
8
|
+
params: Record<string, unknown> | undefined;
|
|
9
|
+
};
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import { useAppsSdkBridge } from "../bridges/hooks/use-apps-sdk-bridge.js";
|
|
1
2
|
/**
|
|
2
3
|
* Triggers a modal containing the widget rendered in display mode "modal"
|
|
3
4
|
*/
|
|
4
5
|
export function useRequestModal() {
|
|
5
|
-
|
|
6
|
+
const view = useAppsSdkBridge("view");
|
|
7
|
+
const isOpen = view?.mode === "modal";
|
|
8
|
+
const params = view?.params;
|
|
9
|
+
const open = (options) => {
|
|
6
10
|
window.openai.requestModal(options);
|
|
7
11
|
};
|
|
12
|
+
return { isOpen, open, params };
|
|
8
13
|
}
|
|
9
14
|
//# sourceMappingURL=use-request-modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-request-modal.js","sourceRoot":"","sources":["../../../../src/web/hooks/use-request-modal.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"use-request-modal.js","sourceRoot":"","sources":["../../../../src/web/hooks/use-request-modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAG3E;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC;IAE5B,MAAM,IAAI,GAAG,CAAC,OAA4B,EAAE,EAAE;QAC5C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -5,18 +5,51 @@ describe("useRequestModal", () => {
|
|
|
5
5
|
let requestModalMock;
|
|
6
6
|
beforeEach(() => {
|
|
7
7
|
requestModalMock = vi.fn();
|
|
8
|
+
vi.stubGlobal("skybridge", { hostType: "apps-sdk" });
|
|
8
9
|
vi.stubGlobal("openai", {
|
|
9
10
|
requestModal: requestModalMock,
|
|
11
|
+
view: { mode: "inline" },
|
|
10
12
|
});
|
|
11
13
|
});
|
|
12
14
|
afterEach(() => {
|
|
13
15
|
vi.unstubAllGlobals();
|
|
14
16
|
vi.resetAllMocks();
|
|
15
17
|
});
|
|
16
|
-
it("should return
|
|
18
|
+
it("should return an object with open, isOpen, and params properties where isOpen is false when mode is not modal", () => {
|
|
17
19
|
const { result } = renderHook(() => useRequestModal());
|
|
20
|
+
expect(typeof result.current).toBe("object");
|
|
21
|
+
expect(result.current).toHaveProperty("open");
|
|
22
|
+
expect(result.current).toHaveProperty("isOpen");
|
|
23
|
+
expect(result.current).toHaveProperty("params");
|
|
24
|
+
const { open, isOpen, params } = result.current;
|
|
25
|
+
expect(typeof open).toBe("function");
|
|
26
|
+
expect(isOpen).toBe(false);
|
|
27
|
+
expect(params).toBeUndefined();
|
|
28
|
+
});
|
|
29
|
+
it("should return isOpen as true when mode is modal", () => {
|
|
30
|
+
vi.stubGlobal("openai", {
|
|
31
|
+
requestModal: requestModalMock,
|
|
32
|
+
view: { mode: "modal" },
|
|
33
|
+
});
|
|
34
|
+
const { result } = renderHook(() => useRequestModal());
|
|
35
|
+
const { isOpen } = result.current;
|
|
36
|
+
expect(isOpen).toBe(true);
|
|
37
|
+
});
|
|
38
|
+
it("should return params from view when available", () => {
|
|
39
|
+
const testParams = { foo: "bar", baz: 42 };
|
|
40
|
+
vi.stubGlobal("openai", {
|
|
41
|
+
requestModal: requestModalMock,
|
|
42
|
+
view: { mode: "modal", params: testParams },
|
|
43
|
+
});
|
|
44
|
+
const { result } = renderHook(() => useRequestModal());
|
|
45
|
+
const { params } = result.current;
|
|
46
|
+
expect(params).toEqual(testParams);
|
|
47
|
+
});
|
|
48
|
+
it("should call window.openai.requestModal with the options when open is called", () => {
|
|
49
|
+
const { result } = renderHook(() => useRequestModal());
|
|
50
|
+
const { open } = result.current;
|
|
18
51
|
const options = { title: "Test Modal" };
|
|
19
|
-
|
|
52
|
+
open(options);
|
|
20
53
|
expect(requestModalMock).toHaveBeenCalledTimes(1);
|
|
21
54
|
expect(requestModalMock).toHaveBeenCalledWith(options);
|
|
22
55
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-request-modal.test.js","sourceRoot":"","sources":["../../../../src/web/hooks/use-request-modal.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,gBAA0C,CAAC;IAE/C,UAAU,CAAC,GAAG,EAAE;QACd,gBAAgB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE;YACtB,YAAY,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"use-request-modal.test.js","sourceRoot":"","sources":["../../../../src/web/hooks/use-request-modal.test.ts"],"names":[],"mappings":"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"}
|
package/dist/src/web/types.d.ts
CHANGED
|
@@ -46,6 +46,7 @@ export type OpenAiProperties<ToolInput extends UnknownObject = Record<never, unk
|
|
|
46
46
|
maxHeight: number;
|
|
47
47
|
displayMode: DisplayMode;
|
|
48
48
|
safeArea: SafeArea;
|
|
49
|
+
view: View;
|
|
49
50
|
toolInput: ToolInput;
|
|
50
51
|
toolOutput: ToolOutput | {
|
|
51
52
|
text: string;
|
|
@@ -64,6 +65,16 @@ export type CallToolResponse = {
|
|
|
64
65
|
result: string;
|
|
65
66
|
meta: Record<string, unknown>;
|
|
66
67
|
};
|
|
68
|
+
export type RequestModalOptions = {
|
|
69
|
+
title?: string;
|
|
70
|
+
params?: Record<string, unknown>;
|
|
71
|
+
anchor?: {
|
|
72
|
+
top?: number;
|
|
73
|
+
left?: number;
|
|
74
|
+
width?: number;
|
|
75
|
+
height?: number;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
67
78
|
export type OpenAiMethods<WidgetState extends UnknownObject = UnknownObject> = {
|
|
68
79
|
/** Calls a tool on your MCP. Returns the full response. */
|
|
69
80
|
callTool: <ToolArgs extends CallToolArgs = null, ToolResponse extends CallToolResponse = CallToolResponse>(name: string, args: ToolArgs) => Promise<ToolResponse>;
|
|
@@ -94,9 +105,7 @@ export type OpenAiMethods<WidgetState extends UnknownObject = UnknownObject> = {
|
|
|
94
105
|
* Opens a modal portaled outside of the widget iFrame.
|
|
95
106
|
* This ensures the modal is correctly displayed and not limited to the widget's area.
|
|
96
107
|
*/
|
|
97
|
-
requestModal: (args:
|
|
98
|
-
title: string;
|
|
99
|
-
}) => Promise<void>;
|
|
108
|
+
requestModal: (args: RequestModalOptions) => Promise<void>;
|
|
100
109
|
/** Uploads a new file to the host */
|
|
101
110
|
uploadFile: (file: File) => Promise<FileMetadata>;
|
|
102
111
|
/**
|
|
@@ -114,7 +123,11 @@ export declare class SetGlobalsEvent extends CustomEvent<{
|
|
|
114
123
|
readonly type = "openai:set_globals";
|
|
115
124
|
}
|
|
116
125
|
export type CallTool = (name: string, args: Record<string, unknown>) => Promise<CallToolResponse>;
|
|
117
|
-
export type DisplayMode = "pip" | "inline" | "fullscreen";
|
|
126
|
+
export type DisplayMode = "pip" | "inline" | "fullscreen" | "modal";
|
|
127
|
+
export type View = {
|
|
128
|
+
mode: DisplayMode;
|
|
129
|
+
params?: Record<string, unknown>;
|
|
130
|
+
};
|
|
118
131
|
export type Theme = "light" | "dark";
|
|
119
132
|
export type SafeAreaInsets = {
|
|
120
133
|
top: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/web/types.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,CAAC;AAwBf,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAC/D,MAAM,OAAO,iBAAkB,SAAQ,WAErC;IACkB,IAAI,GAAG,wBAAwB,CAAC;CACnD;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/web/types.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,CAAC;AAwBf,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAC/D,MAAM,OAAO,iBAAkB,SAAQ,WAErC;IACkB,IAAI,GAAG,wBAAwB,CAAC;CACnD;AA0GD,sDAAsD;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAC3D,MAAM,OAAO,eAAgB,SAAQ,WAEnC;IACkB,IAAI,GAAG,sBAAsB,CAAC;CACjD"}
|
package/package.json
CHANGED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { AppsSdkBridge } from "./apps-sdk-bridge";
|
|
2
|
-
import { McpAppBridge } from "./mcp-app-bridge";
|
|
3
|
-
export const getBridge = () => {
|
|
4
|
-
return window.skybridge.hostType === "apps-sdk"
|
|
5
|
-
? AppsSdkBridge.getInstance()
|
|
6
|
-
: McpAppBridge.getInstance();
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=get-bridge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-bridge.js","sourceRoot":"","sources":["../../../../src/web/bridges/get-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAY,EAAE;IACrC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,KAAK,UAAU;QAC7C,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE;QAC7B,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AACjC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/web/bridges/types.ts"],"names":[],"mappings":""}
|