skybridge 0.0.0-dev.f338429 → 0.0.0-dev.f381d90

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 (134) hide show
  1. package/README.md +17 -9
  2. package/dist/cli/detect-port.d.ts +18 -0
  3. package/dist/cli/detect-port.js +61 -0
  4. package/dist/cli/detect-port.js.map +1 -0
  5. package/dist/cli/types.d.ts +5 -0
  6. package/dist/cli/types.js +2 -0
  7. package/dist/cli/types.js.map +1 -0
  8. package/dist/cli/use-messages.d.ts +3 -0
  9. package/dist/cli/use-messages.js +11 -0
  10. package/dist/cli/use-messages.js.map +1 -0
  11. package/dist/cli/use-nodemon.d.ts +2 -6
  12. package/dist/cli/use-nodemon.js +6 -11
  13. package/dist/cli/use-nodemon.js.map +1 -1
  14. package/dist/cli/use-tunnel.d.ts +7 -0
  15. package/dist/cli/use-tunnel.js +92 -0
  16. package/dist/cli/use-tunnel.js.map +1 -0
  17. package/dist/commands/build.js +1 -1
  18. package/dist/commands/build.js.map +1 -1
  19. package/dist/commands/dev.d.ts +2 -1
  20. package/dist/commands/dev.js +20 -7
  21. package/dist/commands/dev.js.map +1 -1
  22. package/dist/commands/start.d.ts +3 -1
  23. package/dist/commands/start.js +32 -8
  24. package/dist/commands/start.js.map +1 -1
  25. package/dist/server/asset-base-url-transform-plugin.d.ts +5 -6
  26. package/dist/server/asset-base-url-transform-plugin.js +8 -9
  27. package/dist/server/asset-base-url-transform-plugin.js.map +1 -1
  28. package/dist/server/asset-base-url-transform-plugin.test.js +12 -13
  29. package/dist/server/asset-base-url-transform-plugin.test.js.map +1 -1
  30. package/dist/server/express.d.ts +13 -3
  31. package/dist/server/express.js +31 -15
  32. package/dist/server/express.js.map +1 -1
  33. package/dist/server/express.test.d.ts +1 -0
  34. package/dist/server/express.test.js +252 -0
  35. package/dist/server/express.test.js.map +1 -0
  36. package/dist/server/index.d.ts +1 -0
  37. package/dist/server/index.js.map +1 -1
  38. package/dist/server/metric.d.ts +14 -0
  39. package/dist/server/metric.js +62 -0
  40. package/dist/server/metric.js.map +1 -0
  41. package/dist/server/middleware.d.ts +124 -0
  42. package/dist/server/middleware.js +93 -0
  43. package/dist/server/middleware.js.map +1 -0
  44. package/dist/server/middleware.test-d.d.ts +1 -0
  45. package/dist/server/middleware.test-d.js +75 -0
  46. package/dist/server/middleware.test-d.js.map +1 -0
  47. package/dist/server/middleware.test.d.ts +1 -0
  48. package/dist/server/middleware.test.js +490 -0
  49. package/dist/server/middleware.test.js.map +1 -0
  50. package/dist/server/server.d.ts +48 -7
  51. package/dist/server/server.js +140 -39
  52. package/dist/server/server.js.map +1 -1
  53. package/dist/server/templateHelper.d.ts +0 -1
  54. package/dist/server/templateHelper.js.map +1 -1
  55. package/dist/server/templates/development.hbs +0 -55
  56. package/dist/server/widgetsDevServer.d.ts +2 -1
  57. package/dist/server/widgetsDevServer.js +3 -8
  58. package/dist/server/widgetsDevServer.js.map +1 -1
  59. package/dist/test/utils.d.ts +3 -223
  60. package/dist/test/widget.test.js +61 -19
  61. package/dist/test/widget.test.js.map +1 -1
  62. package/dist/version.d.ts +1 -0
  63. package/dist/version.js +5 -0
  64. package/dist/version.js.map +1 -0
  65. package/dist/web/bridges/apps-sdk/adaptor.d.ts +4 -4
  66. package/dist/web/bridges/apps-sdk/adaptor.js +18 -13
  67. package/dist/web/bridges/apps-sdk/adaptor.js.map +1 -1
  68. package/dist/web/bridges/apps-sdk/bridge.d.ts +1 -5
  69. package/dist/web/bridges/apps-sdk/index.d.ts +1 -1
  70. package/dist/web/bridges/apps-sdk/index.js.map +1 -1
  71. package/dist/web/bridges/apps-sdk/types.d.ts +9 -5
  72. package/dist/web/bridges/apps-sdk/types.js.map +1 -1
  73. package/dist/web/bridges/mcp-app/adaptor.d.ts +10 -4
  74. package/dist/web/bridges/mcp-app/adaptor.js +115 -41
  75. package/dist/web/bridges/mcp-app/adaptor.js.map +1 -1
  76. package/dist/web/bridges/mcp-app/bridge.d.ts +13 -30
  77. package/dist/web/bridges/mcp-app/bridge.js +43 -196
  78. package/dist/web/bridges/mcp-app/bridge.js.map +1 -1
  79. package/dist/web/bridges/mcp-app/use-mcp-app-context.d.ts +5 -3
  80. package/dist/web/bridges/mcp-app/use-mcp-app-context.js +2 -2
  81. package/dist/web/bridges/mcp-app/use-mcp-app-context.js.map +1 -1
  82. package/dist/web/bridges/mcp-app/use-mcp-app-context.test.js +1 -41
  83. package/dist/web/bridges/mcp-app/use-mcp-app-context.test.js.map +1 -1
  84. package/dist/web/bridges/types.d.ts +8 -3
  85. package/dist/web/components/modal-provider.js +2 -4
  86. package/dist/web/components/modal-provider.js.map +1 -1
  87. package/dist/web/create-store.js +15 -1
  88. package/dist/web/create-store.js.map +1 -1
  89. package/dist/web/create-store.test.js +7 -2
  90. package/dist/web/create-store.test.js.map +1 -1
  91. package/dist/web/data-llm.test.js +2 -1
  92. package/dist/web/data-llm.test.js.map +1 -1
  93. package/dist/web/hooks/index.d.ts +1 -1
  94. package/dist/web/hooks/index.js.map +1 -1
  95. package/dist/web/hooks/test/utils.js +4 -0
  96. package/dist/web/hooks/test/utils.js.map +1 -1
  97. package/dist/web/hooks/use-display-mode.d.ts +3 -3
  98. package/dist/web/hooks/use-display-mode.js.map +1 -1
  99. package/dist/web/hooks/use-display-mode.test-d.d.ts +1 -0
  100. package/dist/web/hooks/use-display-mode.test-d.js +8 -0
  101. package/dist/web/hooks/use-display-mode.test-d.js.map +1 -0
  102. package/dist/web/hooks/use-files.test.js +5 -1
  103. package/dist/web/hooks/use-files.test.js.map +1 -1
  104. package/dist/web/hooks/use-layout.test.js +3 -3
  105. package/dist/web/hooks/use-layout.test.js.map +1 -1
  106. package/dist/web/hooks/use-open-external.d.ts +3 -1
  107. package/dist/web/hooks/use-open-external.js +1 -1
  108. package/dist/web/hooks/use-open-external.js.map +1 -1
  109. package/dist/web/hooks/use-open-external.test.js +26 -11
  110. package/dist/web/hooks/use-open-external.test.js.map +1 -1
  111. package/dist/web/hooks/use-request-modal.test.js +5 -1
  112. package/dist/web/hooks/use-request-modal.test.js.map +1 -1
  113. package/dist/web/hooks/use-set-open-in-app-url.test.js +5 -11
  114. package/dist/web/hooks/use-set-open-in-app-url.test.js.map +1 -1
  115. package/dist/web/hooks/use-tool-info.test.js +1 -1
  116. package/dist/web/hooks/use-tool-info.test.js.map +1 -1
  117. package/dist/web/hooks/use-user.js +18 -2
  118. package/dist/web/hooks/use-user.js.map +1 -1
  119. package/dist/web/hooks/use-user.test.js +29 -1
  120. package/dist/web/hooks/use-user.test.js.map +1 -1
  121. package/dist/web/hooks/use-widget-state.test.js +116 -1
  122. package/dist/web/hooks/use-widget-state.test.js.map +1 -1
  123. package/dist/web/plugin/plugin.js +8 -0
  124. package/dist/web/plugin/plugin.js.map +1 -1
  125. package/dist/web/plugin/transform-data-llm.js +1 -1
  126. package/dist/web/plugin/transform-data-llm.js.map +1 -1
  127. package/dist/web/plugin/validate-widget.d.ts +5 -0
  128. package/dist/web/plugin/validate-widget.js +27 -0
  129. package/dist/web/plugin/validate-widget.js.map +1 -0
  130. package/dist/web/plugin/validate-widget.test.d.ts +1 -0
  131. package/dist/web/plugin/validate-widget.test.js +42 -0
  132. package/dist/web/plugin/validate-widget.test.js.map +1 -0
  133. package/package.json +23 -19
  134. package/tsconfig.base.json +31 -0
@@ -94,183 +94,7 @@ export declare function createTestServer(): McpServer<Record<never, import("../s
94
94
  processedAt: number;
95
95
  region: string;
96
96
  }>;
97
- }> & {
98
- use(...handlers: import("express").RequestHandler[]): McpServer<Record<never, import("../server/server.js").ToolDef<unknown, unknown, unknown>> & {
99
- "search-voyage": import("../server/server.js").ToolDef<{
100
- destination: string;
101
- departureDate?: string | undefined;
102
- maxPrice?: number | undefined;
103
- }, {
104
- results: {
105
- id: string;
106
- name: string;
107
- price: number;
108
- }[];
109
- totalCount: number;
110
- }, unknown>;
111
- } & {
112
- "get-trip-details": import("../server/server.js").ToolDef<{
113
- tripId: string;
114
- }, {
115
- name: string;
116
- description: string;
117
- images: string[];
118
- }, unknown>;
119
- } & {
120
- "no-input-widget": import("../server/server.js").ToolDef<{}, {}, unknown>;
121
- } & {
122
- "inferred-output-widget": import("../server/server.js").ToolDef<{
123
- query: string;
124
- }, {
125
- inferredResults: {
126
- id: string;
127
- score: number;
128
- }[];
129
- inferredCount: number;
130
- }, unknown>;
131
- } & {
132
- "calculate-price": import("../server/server.js").ToolDef<{
133
- tripId: string;
134
- passengers: number;
135
- }, {
136
- totalPrice: number;
137
- currency: string;
138
- }, unknown>;
139
- } & {
140
- "inferred-tool": import("../server/server.js").ToolDef<{
141
- itemId: string;
142
- }, {
143
- itemDetails: {
144
- name: string;
145
- available: boolean;
146
- };
147
- fetchedAt: string;
148
- }, unknown>;
149
- } & {
150
- "widget-with-metadata": import("../server/server.js").ToolDef<{
151
- resourceId: string;
152
- }, {
153
- data: {
154
- id: string;
155
- loaded: boolean;
156
- };
157
- }, {
158
- requestId: string;
159
- timestamp: number;
160
- cached: boolean;
161
- }>;
162
- } & {
163
- "tool-with-metadata": import("../server/server.js").ToolDef<{
164
- query: string;
165
- }, {
166
- results: string[];
167
- }, {
168
- executionTime: number;
169
- source: string;
170
- }>;
171
- } & {
172
- "widget-with-mixed-returns": import("../server/server.js").ToolDef<{
173
- shouldSucceed: boolean;
174
- }, {
175
- error: string;
176
- data?: undefined;
177
- } | {
178
- data: string;
179
- error?: undefined;
180
- }, {
181
- processedAt: number;
182
- region: string;
183
- }>;
184
- }> & /*elided*/ any;
185
- use(path: string, ...handlers: import("express").RequestHandler[]): McpServer<Record<never, import("../server/server.js").ToolDef<unknown, unknown, unknown>> & {
186
- "search-voyage": import("../server/server.js").ToolDef<{
187
- destination: string;
188
- departureDate?: string | undefined;
189
- maxPrice?: number | undefined;
190
- }, {
191
- results: {
192
- id: string;
193
- name: string;
194
- price: number;
195
- }[];
196
- totalCount: number;
197
- }, unknown>;
198
- } & {
199
- "get-trip-details": import("../server/server.js").ToolDef<{
200
- tripId: string;
201
- }, {
202
- name: string;
203
- description: string;
204
- images: string[];
205
- }, unknown>;
206
- } & {
207
- "no-input-widget": import("../server/server.js").ToolDef<{}, {}, unknown>;
208
- } & {
209
- "inferred-output-widget": import("../server/server.js").ToolDef<{
210
- query: string;
211
- }, {
212
- inferredResults: {
213
- id: string;
214
- score: number;
215
- }[];
216
- inferredCount: number;
217
- }, unknown>;
218
- } & {
219
- "calculate-price": import("../server/server.js").ToolDef<{
220
- tripId: string;
221
- passengers: number;
222
- }, {
223
- totalPrice: number;
224
- currency: string;
225
- }, unknown>;
226
- } & {
227
- "inferred-tool": import("../server/server.js").ToolDef<{
228
- itemId: string;
229
- }, {
230
- itemDetails: {
231
- name: string;
232
- available: boolean;
233
- };
234
- fetchedAt: string;
235
- }, unknown>;
236
- } & {
237
- "widget-with-metadata": import("../server/server.js").ToolDef<{
238
- resourceId: string;
239
- }, {
240
- data: {
241
- id: string;
242
- loaded: boolean;
243
- };
244
- }, {
245
- requestId: string;
246
- timestamp: number;
247
- cached: boolean;
248
- }>;
249
- } & {
250
- "tool-with-metadata": import("../server/server.js").ToolDef<{
251
- query: string;
252
- }, {
253
- results: string[];
254
- }, {
255
- executionTime: number;
256
- source: string;
257
- }>;
258
- } & {
259
- "widget-with-mixed-returns": import("../server/server.js").ToolDef<{
260
- shouldSucceed: boolean;
261
- }, {
262
- error: string;
263
- data?: undefined;
264
- } | {
265
- data: string;
266
- error?: undefined;
267
- }, {
268
- processedAt: number;
269
- region: string;
270
- }>;
271
- }> & /*elided*/ any;
272
- run(): Promise<void>;
273
- };
97
+ }>;
274
98
  export declare function createMinimalTestServer(): McpServer<Record<never, import("../server/server.js").ToolDef<unknown, unknown, unknown>> & {
275
99
  "search-voyage": import("../server/server.js").ToolDef<{
276
100
  destination: string;
@@ -279,27 +103,7 @@ export declare function createMinimalTestServer(): McpServer<Record<never, impor
279
103
  id: string;
280
104
  }[];
281
105
  }, unknown>;
282
- }> & {
283
- use(...handlers: import("express").RequestHandler[]): McpServer<Record<never, import("../server/server.js").ToolDef<unknown, unknown, unknown>> & {
284
- "search-voyage": import("../server/server.js").ToolDef<{
285
- destination: string;
286
- }, {
287
- results: {
288
- id: string;
289
- }[];
290
- }, unknown>;
291
- }> & /*elided*/ any;
292
- use(path: string, ...handlers: import("express").RequestHandler[]): McpServer<Record<never, import("../server/server.js").ToolDef<unknown, unknown, unknown>> & {
293
- "search-voyage": import("../server/server.js").ToolDef<{
294
- destination: string;
295
- }, {
296
- results: {
297
- id: string;
298
- }[];
299
- }, unknown>;
300
- }> & /*elided*/ any;
301
- run(): Promise<void>;
302
- };
106
+ }>;
303
107
  export declare function createInterfaceTestServer(): McpServer<Record<never, import("../server/server.js").ToolDef<unknown, unknown, unknown>> & {
304
108
  "interface-widget": import("../server/server.js").ToolDef<{
305
109
  id: string;
@@ -310,31 +114,7 @@ export declare function createInterfaceTestServer(): McpServer<Record<never, imp
310
114
  processedBy: string;
311
115
  version: number;
312
116
  }>;
313
- }> & {
314
- use(...handlers: import("express").RequestHandler[]): McpServer<Record<never, import("../server/server.js").ToolDef<unknown, unknown, unknown>> & {
315
- "interface-widget": import("../server/server.js").ToolDef<{
316
- id: string;
317
- }, {
318
- itemName: string;
319
- quantity: number;
320
- }, {
321
- processedBy: string;
322
- version: number;
323
- }>;
324
- }> & /*elided*/ any;
325
- use(path: string, ...handlers: import("express").RequestHandler[]): McpServer<Record<never, import("../server/server.js").ToolDef<unknown, unknown, unknown>> & {
326
- "interface-widget": import("../server/server.js").ToolDef<{
327
- id: string;
328
- }, {
329
- itemName: string;
330
- quantity: number;
331
- }, {
332
- processedBy: string;
333
- version: number;
334
- }>;
335
- }> & /*elided*/ any;
336
- run(): Promise<void>;
337
- };
117
+ }>;
338
118
  /**
339
119
  * Mock extra parameter for resource callback
340
120
  */
@@ -43,8 +43,10 @@ describe("McpServer.registerWidget", () => {
43
43
  const appsSdkResourceCallback = mockRegisterResource.mock
44
44
  .calls[0]?.[3];
45
45
  expect(appsSdkResourceCallback).toBeDefined();
46
- const serverUrl = "http://localhost:3000";
47
- const mockExtra = createMockExtra("__not_used__");
46
+ const host = "localhost:3000";
47
+ const serverUrl = `http://${host}`;
48
+ const hmrUrl = `ws://${host}`;
49
+ const mockExtra = createMockExtra(host);
48
50
  const result = await appsSdkResourceCallback(new URL("ui://widgets/apps-sdk/my-widget.html"), mockExtra);
49
51
  expect(mockRegisterTool).toHaveBeenCalled();
50
52
  expect(result).toEqual({
@@ -56,10 +58,10 @@ describe("McpServer.registerWidget", () => {
56
58
  _meta: {
57
59
  "openai/widgetCSP": {
58
60
  resource_domains: [serverUrl],
59
- connect_domains: [serverUrl, "ws://localhost:24678"],
61
+ connect_domains: [serverUrl, hmrUrl],
60
62
  },
61
63
  "openai/widgetDomain": serverUrl,
62
- "openai/widgetDescription": "Test tool",
64
+ "openai/widgetDescription": "Test widget",
63
65
  },
64
66
  },
65
67
  ],
@@ -96,7 +98,7 @@ describe("McpServer.registerWidget", () => {
96
98
  connect_domains: [serverUrl],
97
99
  },
98
100
  "openai/widgetDomain": serverUrl,
99
- "openai/widgetDescription": "Test tool",
101
+ "openai/widgetDescription": "Test widget",
100
102
  },
101
103
  },
102
104
  ],
@@ -134,8 +136,10 @@ describe("McpServer.registerWidget", () => {
134
136
  expect(mockRegisterResource).toHaveBeenCalledTimes(2);
135
137
  const appsSdkCallback = mockRegisterResource.mock
136
138
  .calls[0]?.[3];
137
- const appsSdkResult = await appsSdkCallback(new URL("ui://widgets/apps-sdk/my-widget.html"), createMockExtra("__not_used__"));
138
- const serverUrl = "http://localhost:3000";
139
+ const appsSdkResult = await appsSdkCallback(new URL("ui://widgets/apps-sdk/my-widget.html"), createMockExtra("localhost:3000"));
140
+ const host = "localhost:3000";
141
+ const serverUrl = `http://${host}`;
142
+ const hmrUrl = `ws://${host}`;
139
143
  expect(appsSdkResult).toEqual({
140
144
  contents: [
141
145
  {
@@ -145,10 +149,10 @@ describe("McpServer.registerWidget", () => {
145
149
  _meta: {
146
150
  "openai/widgetCSP": {
147
151
  resource_domains: [serverUrl],
148
- connect_domains: [serverUrl, "ws://localhost:24678"],
152
+ connect_domains: [serverUrl, hmrUrl],
149
153
  },
150
154
  "openai/widgetDomain": serverUrl,
151
- "openai/widgetDescription": "Test tool",
155
+ "openai/widgetDescription": "Test widget",
152
156
  "openai/widgetPrefersBorder": true,
153
157
  },
154
158
  },
@@ -158,7 +162,7 @@ describe("McpServer.registerWidget", () => {
158
162
  const extAppsResourceCallback = mockRegisterResource.mock
159
163
  .calls[1]?.[3];
160
164
  expect(extAppsResourceCallback).toBeDefined();
161
- const extAppsResult = await extAppsResourceCallback(new URL("ui://widgets/ext-apps/my-widget.html"), createMockExtra("__not_used__"));
165
+ const extAppsResult = await extAppsResourceCallback(new URL("ui://widgets/ext-apps/my-widget.html"), createMockExtra(host));
162
166
  expect(extAppsResult).toEqual({
163
167
  contents: [
164
168
  {
@@ -169,7 +173,7 @@ describe("McpServer.registerWidget", () => {
169
173
  ui: {
170
174
  csp: {
171
175
  resourceDomains: [serverUrl],
172
- connectDomains: [serverUrl, "ws://localhost:24678"],
176
+ connectDomains: [serverUrl, hmrUrl],
173
177
  },
174
178
  domain: serverUrl,
175
179
  },
@@ -215,17 +219,15 @@ describe("McpServer.registerWidget", () => {
215
219
  server.registerWidget("override-test", mockRegisterResourceConfig, mockToolConfig, mockToolCallback);
216
220
  const appsSdkCallback = mockRegisterResource.mock
217
221
  .calls[0]?.[3];
218
- const serverUrl = "http://localhost:3000";
219
- const result = await appsSdkCallback(new URL("ui://widgets/apps-sdk/override-test.html"), createMockExtra("__not_used__"));
222
+ const host = `localhost:3000`;
223
+ const serverUrl = `http://${host}`;
224
+ const hmrUrl = `ws://${host}`;
225
+ const result = await appsSdkCallback(new URL("ui://widgets/apps-sdk/override-test.html"), createMockExtra(host));
220
226
  const meta = result.contents[0]?._meta;
221
227
  // CSP arrays are merged with union - all unique domains from defaults and user config are preserved
222
228
  expect(meta["openai/widgetCSP"]).toEqual({
223
229
  resource_domains: [serverUrl, "https://from-ui-csp.com"],
224
- connect_domains: [
225
- serverUrl,
226
- "ws://localhost:24678",
227
- "https://from-ui-csp.com",
228
- ],
230
+ connect_domains: [serverUrl, hmrUrl, "https://from-ui-csp.com"],
229
231
  frame_domains: undefined,
230
232
  redirect_domains: undefined,
231
233
  });
@@ -234,7 +236,7 @@ describe("McpServer.registerWidget", () => {
234
236
  // PrefersBorder should be overridden by direct openai/* key (highest priority)
235
237
  expect(meta["openai/widgetPrefersBorder"]).toBe(true);
236
238
  // Description should be from defaults (toolConfig.description)
237
- expect(meta["openai/widgetDescription"]).toBe("Test tool");
239
+ expect(meta["openai/widgetDescription"]).toBe("Test widget");
238
240
  });
239
241
  it("should register tool with ui.resourceUri metadata only", async () => {
240
242
  const mockToolCallback = vi.fn();
@@ -248,6 +250,46 @@ describe("McpServer.registerWidget", () => {
248
250
  });
249
251
  expect(toolConfig._meta?.["openai/outputTemplate"]).to.be.undefined;
250
252
  });
253
+ it("should inject viewUUID into _meta of tool callback results", async () => {
254
+ const mockToolCallback = vi.fn().mockResolvedValue({
255
+ content: [{ type: "text", text: "result" }],
256
+ structuredContent: { data: "test" },
257
+ });
258
+ server.registerWidget("my-widget", { description: "Test widget" }, { description: "Test tool" }, mockToolCallback);
259
+ // The registerTool should have been called with a wrapped callback
260
+ const wrappedCallback = mockRegisterTool.mock.calls[0]?.[2];
261
+ expect(wrappedCallback).toBeDefined();
262
+ const result = await wrappedCallback({}, {});
263
+ expect(result._meta).toBeDefined();
264
+ expect(result._meta?.viewUUID).toBeDefined();
265
+ expect(typeof result._meta?.viewUUID).toBe("string");
266
+ // UUID v4 format
267
+ expect(result._meta?.viewUUID).toMatch(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/);
268
+ });
269
+ it("should preserve existing _meta when injecting viewUUID", async () => {
270
+ const mockToolCallback = vi.fn().mockResolvedValue({
271
+ content: [{ type: "text", text: "result" }],
272
+ structuredContent: { data: "test" },
273
+ _meta: { requestId: "req-123", cached: true },
274
+ });
275
+ server.registerWidget("my-widget", { description: "Test widget" }, { description: "Test tool" }, mockToolCallback);
276
+ const wrappedCallback = mockRegisterTool.mock.calls[0]?.[2];
277
+ const result = await wrappedCallback({}, {});
278
+ expect(result._meta?.requestId).toBe("req-123");
279
+ expect(result._meta?.cached).toBe(true);
280
+ expect(result._meta?.viewUUID).toBeDefined();
281
+ });
282
+ it("should generate unique viewUUIDs across calls", async () => {
283
+ const mockToolCallback = vi.fn().mockResolvedValue({
284
+ content: [{ type: "text", text: "result" }],
285
+ structuredContent: {},
286
+ });
287
+ server.registerWidget("my-widget", { description: "Test widget" }, { description: "Test tool" }, mockToolCallback);
288
+ const wrappedCallback = mockRegisterTool.mock.calls[0]?.[2];
289
+ const result1 = await wrappedCallback({}, {});
290
+ const result2 = await wrappedCallback({}, {});
291
+ expect(result1._meta?.viewUUID).not.toBe(result2._meta?.viewUUID);
292
+ });
251
293
  it("should register tool with uopenai/outputTemplate metadata only", async () => {
252
294
  const mockToolCallback = vi.fn();
253
295
  server.registerWidget("my-widget", { description: "Test widget", hosts: ["apps-sdk"] }, { description: "Test tool" }, mockToolCallback);
@@ -1 +1 @@
1
- {"version":3,"file":"widget.test.js","sourceRoot":"","sources":["../../src/test/widget.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widget.test.js","sourceRoot":"","sources":["../../src/test/widget.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const VERSION: string;
@@ -0,0 +1,5 @@
1
+ import { createRequire } from "node:module";
2
+ const require = createRequire(import.meta.url);
3
+ const pkg = require("../package.json");
4
+ export const VERSION = pkg.version;
5
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,MAAM,CAAC,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAC"}
@@ -1,15 +1,15 @@
1
- import type { Adaptor, CallToolResponse, DisplayMode, HostContext, HostContextStore, RequestModalOptions, SetWidgetStateAction } from "../types.js";
1
+ import type { Adaptor, CallToolResponse, HostContext, HostContextStore, OpenExternalOptions, RequestDisplayMode, RequestModalOptions, SetWidgetStateAction } from "../types.js";
2
2
  export declare class AppsSdkAdaptor implements Adaptor {
3
3
  private static instance;
4
4
  static getInstance(): AppsSdkAdaptor;
5
5
  static resetInstance(): void;
6
6
  getHostContextStore<K extends keyof HostContext>(key: K): HostContextStore<K>;
7
7
  callTool: <ToolArgs extends Record<string, unknown> | null = null, ToolResponse extends CallToolResponse = CallToolResponse>(name: string, args: ToolArgs) => Promise<ToolResponse>;
8
- requestDisplayMode: (mode: DisplayMode) => Promise<{
9
- mode: DisplayMode;
8
+ requestDisplayMode: (mode: RequestDisplayMode) => Promise<{
9
+ mode: RequestDisplayMode;
10
10
  }>;
11
11
  sendFollowUpMessage: (prompt: string) => Promise<void>;
12
- openExternal(href: string): void;
12
+ openExternal(href: string, options?: OpenExternalOptions): void;
13
13
  setWidgetState: (stateOrUpdater: SetWidgetStateAction) => Promise<void>;
14
14
  uploadFile: (file: File) => Promise<import("../types.js").FileMetadata>;
15
15
  getFileDownloadUrl: (file: {
@@ -32,17 +32,31 @@ export class AppsSdkAdaptor {
32
32
  sendFollowUpMessage = (prompt) => {
33
33
  return window.openai.sendFollowUpMessage({ prompt });
34
34
  };
35
- openExternal(href) {
36
- window.openai.openExternal({ href });
35
+ openExternal(href, options = {}) {
36
+ window.openai.openExternal({ href, ...options });
37
37
  }
38
38
  setWidgetState = (stateOrUpdater) => {
39
39
  const modelContent = typeof stateOrUpdater === "function"
40
40
  ? stateOrUpdater(window.openai.widgetState?.modelContent ?? null)
41
41
  : stateOrUpdater;
42
- return window.openai.setWidgetState({ modelContent });
42
+ return window.openai.setWidgetState({
43
+ privateContent: {},
44
+ ...window.openai.widgetState,
45
+ modelContent,
46
+ });
43
47
  };
44
48
  uploadFile = (file) => {
45
- return window.openai.uploadFile(file);
49
+ return window.openai.uploadFile(file).then(async (metadata) => {
50
+ const state = window.openai.widgetState
51
+ ? { ...window.openai.widgetState }
52
+ : { modelContent: {}, privateContent: {} };
53
+ if (!state.imageIds) {
54
+ state.imageIds = [];
55
+ }
56
+ state.imageIds.push(metadata.fileId);
57
+ await window.openai.setWidgetState(state);
58
+ return metadata;
59
+ });
46
60
  };
47
61
  getFileDownloadUrl = (file) => {
48
62
  return window.openai.getFileDownloadUrl(file);
@@ -55,15 +69,6 @@ export class AppsSdkAdaptor {
55
69
  if (!href) {
56
70
  throw new Error("The href parameter is required.");
57
71
  }
58
- const serverUrl = window.skybridge.serverUrl;
59
- if (!serverUrl) {
60
- throw new Error("The widgetDomain property has not been set on the widget resource meta object.");
61
- }
62
- const domainUrl = new URL(serverUrl);
63
- const hrefUrl = new URL(href, serverUrl);
64
- if (domainUrl.origin !== hrefUrl.origin) {
65
- throw new Error("Provided href is not compatible with widget domain: origin differs");
66
- }
67
72
  return window.openai.setOpenInAppUrl({ href });
68
73
  }
69
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"adaptor.js","sourceRoot":"","sources":["../../../../src/web/bridges/apps-sdk/adaptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adaptor.js","sourceRoot":"","sources":["../../../../src/web/bridges/apps-sdk/adaptor.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,5 @@ export declare class AppsSdkBridge implements Bridge<AppsSdkContext> {
6
6
  static resetInstance(): void;
7
7
  subscribe(key: keyof AppsSdkContext): Subscribe;
8
8
  subscribe(keys: readonly (keyof AppsSdkContext)[]): Subscribe;
9
- getSnapshot: <K extends keyof AppsSdkContext>(key: K) => (import("./types.js").AppsSdkMethods<{
10
- modelContent: Record<string, unknown>;
11
- }> & AppsSdkContext<Record<never, unknown>, import("../../types.js").UnknownObject, import("../../types.js").UnknownObject, {
12
- modelContent: Record<string, unknown>;
13
- }>)[K];
9
+ getSnapshot: <K extends keyof AppsSdkContext>(key: K) => (import("./types.js").AppsSdkMethods<import("./types.js").AppsSdkWidgetState> & AppsSdkContext<Record<never, unknown>, import("../../types.js").UnknownObject, import("../../types.js").UnknownObject, import("./types.js").AppsSdkWidgetState>)[K];
14
10
  }
@@ -1,5 +1,5 @@
1
1
  export { AppsSdkAdaptor } from "./adaptor.js";
2
2
  export { AppsSdkBridge } from "./bridge.js";
3
- export type { AppsSdkContext, AppsSdkMethods, ToolResponseEvent, } from "./types.js";
3
+ export type { AppsSdkContext, AppsSdkMethods, AppsSdkWidgetState, ToolResponseEvent, } from "./types.js";
4
4
  export { SET_GLOBALS_EVENT_TYPE, SetGlobalsEvent, TOOL_RESPONSE_EVENT_TYPE, } from "./types.js";
5
5
  export { useAppsSdkContext } from "./use-apps-sdk-context.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/web/bridges/apps-sdk/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAM5C,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/web/bridges/apps-sdk/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAO5C,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,8 +1,11 @@
1
1
  import type { UnknownObject } from "../../types.js";
2
2
  import type { CallToolArgs, CallToolResponse, FileMetadata, RequestModalOptions } from "../types.js";
3
3
  type DisplayMode = "pip" | "inline" | "fullscreen" | "modal";
4
- type WidgetState = {
4
+ type RequestDisplayMode = Exclude<DisplayMode, "modal">;
5
+ export type AppsSdkWidgetState = {
5
6
  modelContent: Record<string, unknown>;
7
+ privateContent: Record<string, unknown>;
8
+ imageIds?: string[];
6
9
  };
7
10
  export declare const TOOL_RESPONSE_EVENT_TYPE = "openai:tool_response";
8
11
  export declare class ToolResponseEvent extends CustomEvent<{
@@ -21,7 +24,7 @@ declare global {
21
24
  [SET_GLOBALS_EVENT_TYPE]: SetGlobalsEvent;
22
25
  }
23
26
  }
24
- export type AppsSdkContext<ToolInput extends UnknownObject = Record<never, unknown>, ToolOutput extends UnknownObject = UnknownObject, ToolResponseMetadata extends UnknownObject = UnknownObject, WS extends WidgetState = WidgetState> = {
27
+ export type AppsSdkContext<ToolInput extends UnknownObject = Record<never, unknown>, ToolOutput extends UnknownObject = UnknownObject, ToolResponseMetadata extends UnknownObject = UnknownObject, WS extends AppsSdkWidgetState = AppsSdkWidgetState> = {
25
28
  theme: Theme;
26
29
  userAgent: UserAgent;
27
30
  locale: string;
@@ -36,7 +39,7 @@ export type AppsSdkContext<ToolInput extends UnknownObject = Record<never, unkno
36
39
  toolResponseMetadata: ToolResponseMetadata | null;
37
40
  widgetState: WS | null;
38
41
  };
39
- export type AppsSdkMethods<WS extends WidgetState = WidgetState> = {
42
+ export type AppsSdkMethods<WS extends AppsSdkWidgetState = AppsSdkWidgetState> = {
40
43
  /** Calls a tool on your MCP. Returns the full response. */
41
44
  callTool: <ToolArgs extends CallToolArgs = null, ToolResponse extends CallToolResponse = CallToolResponse>(name: string, args: ToolArgs) => Promise<ToolResponse>;
42
45
  /** Triggers a followup turn in the ChatGPT conversation */
@@ -46,16 +49,17 @@ export type AppsSdkMethods<WS extends WidgetState = WidgetState> = {
46
49
  /** Opens an external link, redirects web page or mobile app */
47
50
  openExternal(args: {
48
51
  href: string;
52
+ redirectUrl?: false;
49
53
  }): void;
50
54
  /** For transitioning an app from inline to fullscreen or pip */
51
55
  requestDisplayMode: (args: {
52
- mode: DisplayMode;
56
+ mode: RequestDisplayMode;
53
57
  }) => Promise<{
54
58
  /**
55
59
  * The granted display mode. The host may reject the request.
56
60
  * For mobile, PiP is always coerced to fullscreen.
57
61
  */
58
- mode: DisplayMode;
62
+ mode: RequestDisplayMode;
59
63
  }>;
60
64
  /**
61
65
  * Sets the widget state.
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/web/bridges/apps-sdk/types.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAC/D,MAAM,OAAO,iBAAkB,SAAQ,WAErC;IACkB,IAAI,GAAG,wBAAwB,CAAC;CACnD;AAwFD,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/bridges/apps-sdk/types.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAC/D,MAAM,OAAO,iBAAkB,SAAQ,WAErC;IACkB,IAAI,GAAG,wBAAwB,CAAC;CACnD;AA2FD,sDAAsD;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAC3D,MAAM,OAAO,eAAgB,SAAQ,WAEnC;IACkB,IAAI,GAAG,sBAAsB,CAAC;CACjD"}