skybridge 0.0.0-dev.908f6e0 → 0.0.0-dev.91b4f23
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/README.md +145 -0
- package/bin/run.js +0 -4
- package/dist/cli/telemetry.d.ts +3 -35
- package/dist/cli/telemetry.js +17 -78
- package/dist/cli/telemetry.js.map +1 -1
- package/dist/cli/use-execute-steps.d.ts +2 -1
- package/dist/cli/use-execute-steps.js +6 -1
- package/dist/cli/use-execute-steps.js.map +1 -1
- package/dist/cli/use-nodemon.d.ts +6 -0
- package/dist/cli/use-nodemon.js +69 -0
- package/dist/cli/use-nodemon.js.map +1 -0
- package/dist/cli/use-typescript-check.d.ts +8 -0
- package/dist/cli/use-typescript-check.js +59 -0
- package/dist/cli/use-typescript-check.js.map +1 -0
- package/dist/commands/build.js +5 -16
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/dev.d.ts +3 -1
- package/dist/commands/dev.js +20 -9
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/start.js +4 -9
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/telemetry/disable.d.ts +5 -0
- package/dist/commands/telemetry/disable.js +14 -0
- package/dist/commands/telemetry/disable.js.map +1 -0
- package/dist/commands/telemetry/enable.d.ts +5 -0
- package/dist/commands/telemetry/enable.js +14 -0
- package/dist/commands/telemetry/enable.js.map +1 -0
- package/dist/commands/telemetry/status.d.ts +5 -0
- package/dist/commands/telemetry/status.js +14 -0
- package/dist/commands/telemetry/status.js.map +1 -0
- package/dist/server/asset-base-url-transform-plugin.d.ts +11 -0
- package/dist/server/asset-base-url-transform-plugin.js +34 -0
- package/dist/server/asset-base-url-transform-plugin.js.map +1 -0
- package/dist/server/asset-base-url-transform-plugin.test.d.ts +1 -0
- package/dist/server/asset-base-url-transform-plugin.test.js +56 -0
- package/dist/server/asset-base-url-transform-plugin.test.js.map +1 -0
- package/dist/server/express.d.ts +9 -0
- package/dist/server/express.js +72 -0
- package/dist/server/express.js.map +1 -0
- package/dist/server/express.test.d.ts +1 -0
- package/dist/server/express.test.js +74 -0
- package/dist/server/express.test.js.map +1 -0
- package/dist/server/server.d.ts +11 -1
- package/dist/server/server.js +63 -6
- package/dist/server/server.js.map +1 -1
- package/dist/server/templateHelper.d.ts +1 -0
- package/dist/server/templateHelper.js.map +1 -1
- package/dist/server/templates/development.hbs +3 -2
- package/dist/server/templates/production.hbs +1 -2
- package/dist/server/widgetsDevServer.js +11 -1
- package/dist/server/widgetsDevServer.js.map +1 -1
- package/dist/test/utils.d.ts +223 -3
- package/dist/test/widget.test.js +22 -16
- package/dist/test/widget.test.js.map +1 -1
- package/dist/web/bridges/apps-sdk/adaptor.d.ts +9 -1
- package/dist/web/bridges/apps-sdk/adaptor.js +44 -3
- package/dist/web/bridges/apps-sdk/adaptor.js.map +1 -1
- package/dist/web/bridges/apps-sdk/bridge.d.ts +1 -1
- package/dist/web/bridges/apps-sdk/index.d.ts +1 -1
- package/dist/web/bridges/apps-sdk/index.js.map +1 -1
- package/dist/web/bridges/apps-sdk/types.d.ts +16 -19
- package/dist/web/bridges/apps-sdk/types.js.map +1 -1
- package/dist/web/bridges/mcp-app/adaptor.d.ts +18 -1
- package/dist/web/bridges/mcp-app/adaptor.js +49 -4
- package/dist/web/bridges/mcp-app/adaptor.js.map +1 -1
- package/dist/web/bridges/types.d.ts +24 -0
- package/dist/web/components/modal-provider.d.ts +4 -0
- package/dist/web/components/modal-provider.js +47 -0
- package/dist/web/components/modal-provider.js.map +1 -0
- package/dist/web/create-store.test.js +3 -3
- package/dist/web/create-store.test.js.map +1 -1
- package/dist/web/data-llm.test.js +10 -8
- package/dist/web/data-llm.test.js.map +1 -1
- package/dist/web/hooks/index.d.ts +1 -0
- package/dist/web/hooks/index.js +1 -0
- package/dist/web/hooks/index.js.map +1 -1
- package/dist/web/hooks/use-files.d.ts +2 -6
- package/dist/web/hooks/use-files.js +4 -2
- package/dist/web/hooks/use-files.js.map +1 -1
- package/dist/web/hooks/use-files.test.js +6 -1
- package/dist/web/hooks/use-files.test.js.map +1 -1
- package/dist/web/hooks/use-request-modal.d.ts +2 -2
- package/dist/web/hooks/use-request-modal.js +9 -7
- package/dist/web/hooks/use-request-modal.js.map +1 -1
- package/dist/web/hooks/use-set-open-in-app-url.d.ts +1 -0
- package/dist/web/hooks/use-set-open-in-app-url.js +8 -0
- package/dist/web/hooks/use-set-open-in-app-url.js.map +1 -0
- package/dist/web/hooks/use-set-open-in-app-url.test.d.ts +1 -0
- package/dist/web/hooks/use-set-open-in-app-url.test.js +49 -0
- package/dist/web/hooks/use-set-open-in-app-url.test.js.map +1 -0
- package/dist/web/hooks/use-widget-state.test.js +7 -6
- package/dist/web/hooks/use-widget-state.test.js.map +1 -1
- package/dist/web/mount-widget.js +9 -1
- package/dist/web/mount-widget.js.map +1 -1
- package/dist/web/plugin/plugin.js +16 -9
- package/dist/web/plugin/plugin.js.map +1 -1
- package/dist/web/proxy.js +0 -1
- package/dist/web/proxy.js.map +1 -1
- package/package.json +24 -21
- package/dist/commands/telemetry.d.ts +0 -9
- package/dist/commands/telemetry.js +0 -40
- package/dist/commands/telemetry.js.map +0 -1
- package/dist/hooks/prerun.d.ts +0 -11
- package/dist/hooks/prerun.js +0 -21
- package/dist/hooks/prerun.js.map +0 -1
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
export declare function useFiles(): {
|
|
2
|
-
upload: (file: File) => Promise<
|
|
3
|
-
|
|
4
|
-
}>;
|
|
5
|
-
getDownloadUrl: (file: {
|
|
6
|
-
fileId: string;
|
|
7
|
-
}) => Promise<{
|
|
2
|
+
upload: (file: File) => Promise<import("../index.js").FileMetadata>;
|
|
3
|
+
getDownloadUrl: (file: import("../index.js").FileMetadata) => Promise<{
|
|
8
4
|
downloadUrl: string;
|
|
9
5
|
}>;
|
|
10
6
|
};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { getAdaptor } from "../bridges/index.js";
|
|
1
2
|
export function useFiles() {
|
|
3
|
+
const adaptor = getAdaptor();
|
|
2
4
|
return {
|
|
3
|
-
upload:
|
|
4
|
-
getDownloadUrl:
|
|
5
|
+
upload: adaptor.uploadFile,
|
|
6
|
+
getDownloadUrl: adaptor.getFileDownloadUrl,
|
|
5
7
|
};
|
|
6
8
|
}
|
|
7
9
|
//# sourceMappingURL=use-files.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-files.js","sourceRoot":"","sources":["../../../src/web/hooks/use-files.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ;IACtB,OAAO;QACL,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"use-files.js","sourceRoot":"","sources":["../../../src/web/hooks/use-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,UAAU,QAAQ;IACtB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,UAAU;QAC1B,cAAc,EAAE,OAAO,CAAC,kBAAkB;KAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -3,10 +3,15 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
3
3
|
import { useFiles } from "./use-files.js";
|
|
4
4
|
describe("useFiles", () => {
|
|
5
5
|
const OpenaiMock = {
|
|
6
|
-
uploadFile: vi.fn()
|
|
6
|
+
uploadFile: vi.fn().mockResolvedValue({
|
|
7
|
+
fileId: `sediment://file_abc123`,
|
|
8
|
+
}),
|
|
7
9
|
getFileDownloadUrl: vi.fn(),
|
|
10
|
+
widgetState: null,
|
|
11
|
+
setWidgetState: vi.fn(),
|
|
8
12
|
};
|
|
9
13
|
beforeEach(() => {
|
|
14
|
+
vi.stubGlobal("skybridge", { hostType: "apps-sdk" });
|
|
10
15
|
vi.stubGlobal("openai", OpenaiMock);
|
|
11
16
|
});
|
|
12
17
|
afterEach(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-files.test.js","sourceRoot":"","sources":["../../../src/web/hooks/use-files.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,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,MAAM,UAAU,GAAG;QACjB,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"use-files.test.js","sourceRoot":"","sources":["../../../src/web/hooks/use-files.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,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,MAAM,UAAU,GAAG;QACjB,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YACpC,MAAM,EAAE,wBAAwB;SACjC,CAAC;QACF,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE;QAC3B,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;KACxB,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QACrD,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtC,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,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAE3C,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEhD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,KAAK,CAAC;QACrB,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEhD,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { type RequestModalOptions } from "../bridges/
|
|
1
|
+
import { type RequestModalOptions } from "../bridges/index.js";
|
|
2
2
|
/**
|
|
3
3
|
* Triggers a modal containing the widget rendered in display mode "modal"
|
|
4
4
|
*/
|
|
5
5
|
export declare function useRequestModal(): {
|
|
6
6
|
isOpen: boolean;
|
|
7
|
-
open: (options: RequestModalOptions) => void;
|
|
8
7
|
params: Record<string, unknown> | undefined;
|
|
8
|
+
open: (opts: RequestModalOptions) => void;
|
|
9
9
|
};
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import { getAdaptor, useHostContext, } from "../bridges/index.js";
|
|
2
3
|
/**
|
|
3
4
|
* Triggers a modal containing the widget rendered in display mode "modal"
|
|
4
5
|
*/
|
|
5
6
|
export function useRequestModal() {
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const adaptor = getAdaptor();
|
|
8
|
+
const view = useHostContext("view");
|
|
9
|
+
const open = useCallback((opts) => adaptor.openModal(opts), [adaptor]);
|
|
10
|
+
return {
|
|
11
|
+
isOpen: view.mode === "modal",
|
|
12
|
+
params: view.params,
|
|
13
|
+
open,
|
|
11
14
|
};
|
|
12
|
-
return { isOpen, open, params };
|
|
13
15
|
}
|
|
14
16
|
//# 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,OAAO,
|
|
1
|
+
{"version":3,"file":"use-request-modal.js","sourceRoot":"","sources":["../../../src/web/hooks/use-request-modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EACL,UAAU,EAEV,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,WAAW,CACtB,CAAC,IAAyB,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EACtD,CAAC,OAAO,CAAC,CACV,CAAC;IACF,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI;KACL,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useSetOpenInAppUrl(): (href: string) => Promise<void>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import { getAdaptor } from "../bridges/index.js";
|
|
3
|
+
export function useSetOpenInAppUrl() {
|
|
4
|
+
const adaptor = getAdaptor();
|
|
5
|
+
const setOpenInAppUrl = useCallback((href) => adaptor.setOpenInAppUrl(href), [adaptor]);
|
|
6
|
+
return setOpenInAppUrl;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=use-set-open-in-app-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-set-open-in-app-url.js","sourceRoot":"","sources":["../../../src/web/hooks/use-set-open-in-app-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,UAAU,kBAAkB;IAChC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAC/C,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { renderHook } from "@testing-library/react";
|
|
2
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
3
|
+
import { AppsSdkAdaptor } from "../bridges/apps-sdk/adaptor.js";
|
|
4
|
+
import { useSetOpenInAppUrl } from "./use-set-open-in-app-url.js";
|
|
5
|
+
describe("useSetOpenInAppUrl", () => {
|
|
6
|
+
describe("apps-sdk host", () => {
|
|
7
|
+
let setOpenInAppUrlMock;
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
setOpenInAppUrlMock = vi.fn().mockResolvedValue(undefined);
|
|
10
|
+
vi.stubGlobal("openai", {
|
|
11
|
+
setOpenInAppUrl: setOpenInAppUrlMock,
|
|
12
|
+
});
|
|
13
|
+
vi.stubGlobal("skybridge", {
|
|
14
|
+
hostType: "apps-sdk",
|
|
15
|
+
serverUrl: "https://example.com",
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
afterEach(() => {
|
|
19
|
+
vi.unstubAllGlobals();
|
|
20
|
+
vi.resetAllMocks();
|
|
21
|
+
AppsSdkAdaptor.resetInstance();
|
|
22
|
+
});
|
|
23
|
+
it("should return a function that calls window.openai.setOpenInAppUrl with the href", async () => {
|
|
24
|
+
const { result } = renderHook(() => useSetOpenInAppUrl());
|
|
25
|
+
const href = "https://example.com/path";
|
|
26
|
+
await result.current(href);
|
|
27
|
+
expect(setOpenInAppUrlMock).toHaveBeenCalledTimes(1);
|
|
28
|
+
expect(setOpenInAppUrlMock).toHaveBeenCalledWith({ href });
|
|
29
|
+
});
|
|
30
|
+
it("should throw an error when href is empty", () => {
|
|
31
|
+
const { result } = renderHook(() => useSetOpenInAppUrl());
|
|
32
|
+
expect(() => result.current("")).toThrow("The href parameter is required.");
|
|
33
|
+
});
|
|
34
|
+
it("should throw an error when serverUrl is not set", () => {
|
|
35
|
+
vi.stubGlobal("skybridge", {
|
|
36
|
+
hostType: "apps-sdk",
|
|
37
|
+
serverUrl: undefined,
|
|
38
|
+
});
|
|
39
|
+
AppsSdkAdaptor.resetInstance();
|
|
40
|
+
const { result } = renderHook(() => useSetOpenInAppUrl());
|
|
41
|
+
expect(() => result.current("https://example.com/path")).toThrow("The widgetDomain property has not been set on the widget resource meta object.");
|
|
42
|
+
});
|
|
43
|
+
it("should throw an error when href origin differs from serverUrl origin", () => {
|
|
44
|
+
const { result } = renderHook(() => useSetOpenInAppUrl());
|
|
45
|
+
expect(() => result.current("https://different-domain.com/path")).toThrow("Provided href is not compatible with widget domain: origin differs");
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=use-set-open-in-app-url.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-set-open-in-app-url.test.js","sourceRoot":"","sources":["../../../src/web/hooks/use-set-open-in-app-url.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,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,IAAI,mBAA6C,CAAC;QAElD,UAAU,CAAC,GAAG,EAAE;YACd,mBAAmB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC3D,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE;gBACtB,eAAe,EAAE,mBAAmB;aACrC,CAAC,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE;gBACzB,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,qBAAqB;aACjC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,EAAE,CAAC,gBAAgB,EAAE,CAAC;YACtB,EAAE,CAAC,aAAa,EAAE,CAAC;YACnB,cAAc,CAAC,aAAa,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;YAC/F,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAE1D,MAAM,IAAI,GAAG,0BAA0B,CAAC;YACxC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE3B,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAE1D,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CACtC,iCAAiC,CAClC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE;gBACzB,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;YACH,cAAc,CAAC,aAAa,EAAE,CAAC;YAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAE1D,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAC9D,gFAAgF,CACjF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAC9E,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAE1D,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,CAAC,OAAO,CACvE,oEAAoE,CACrE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -23,7 +23,7 @@ describe("useWidgetState", () => {
|
|
|
23
23
|
expect(result.current[0]).toEqual(defaultState);
|
|
24
24
|
});
|
|
25
25
|
it("should initialize with window.openai.widgetState when available", () => {
|
|
26
|
-
OpenaiMock.widgetState = windowState;
|
|
26
|
+
OpenaiMock.widgetState = { modelContent: windowState };
|
|
27
27
|
const { result } = renderHook(() => useWidgetState(defaultState));
|
|
28
28
|
expect(result.current[0]).toEqual(windowState);
|
|
29
29
|
});
|
|
@@ -33,7 +33,9 @@ describe("useWidgetState", () => {
|
|
|
33
33
|
act(() => {
|
|
34
34
|
result.current[1](newState);
|
|
35
35
|
});
|
|
36
|
-
expect(OpenaiMock.setWidgetState).toHaveBeenCalledWith(
|
|
36
|
+
expect(OpenaiMock.setWidgetState).toHaveBeenCalledWith({
|
|
37
|
+
modelContent: newState,
|
|
38
|
+
});
|
|
37
39
|
expect(result.current[0]).toEqual(newState);
|
|
38
40
|
});
|
|
39
41
|
it("should call window.openai.setWidgetState when setWidgetState is called with a function updater", async () => {
|
|
@@ -42,17 +44,16 @@ describe("useWidgetState", () => {
|
|
|
42
44
|
result.current[1]((prev) => ({ ...prev, count: prev.count + 1 }));
|
|
43
45
|
});
|
|
44
46
|
expect(OpenaiMock.setWidgetState).toHaveBeenCalledWith({
|
|
45
|
-
count: 1,
|
|
46
|
-
name: "test",
|
|
47
|
+
modelContent: { count: 1, name: "test" },
|
|
47
48
|
});
|
|
48
49
|
expect(result.current[0]).toEqual({ count: 1, name: "test" });
|
|
49
50
|
});
|
|
50
51
|
it("should update state when window.openai.widgetState changes", () => {
|
|
51
|
-
OpenaiMock.widgetState = defaultState;
|
|
52
|
+
OpenaiMock.widgetState = { modelContent: defaultState };
|
|
52
53
|
const { result, rerender } = renderHook(() => useWidgetState(defaultState));
|
|
53
54
|
expect(result.current[0]).toEqual(defaultState);
|
|
54
55
|
// Simulate window.openai.widgetState changing
|
|
55
|
-
OpenaiMock.widgetState = windowState;
|
|
56
|
+
OpenaiMock.widgetState = { modelContent: windowState };
|
|
56
57
|
// Trigger re-render to simulate the useEffect running
|
|
57
58
|
rerender();
|
|
58
59
|
expect(result.current[0]).toEqual(windowState);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-widget-state.test.js","sourceRoot":"","sources":["../../../src/web/hooks/use-widget-state.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,EACN,EAAE,EAEF,EAAE,GACH,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAI,UAA0D,CAAC;IAE/D,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG;YACX,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;SACrD,CAAC;QACF,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IACvD,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,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAEjD,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;QAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;QAElE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"use-widget-state.test.js","sourceRoot":"","sources":["../../../src/web/hooks/use-widget-state.test.ts"],"names":[],"mappings":"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"}
|
package/dist/web/mount-widget.js
CHANGED
|
@@ -14,6 +14,14 @@ export const mountWidget = (component) => {
|
|
|
14
14
|
if (import.meta.env.DEV) {
|
|
15
15
|
installOpenAILoggingProxy();
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
const hostType = window.skybridge?.hostType;
|
|
18
|
+
(async () => {
|
|
19
|
+
let app = component;
|
|
20
|
+
if (hostType === "mcp-app") {
|
|
21
|
+
const { ModalProvider } = await import("./components/modal-provider.js");
|
|
22
|
+
app = createElement(ModalProvider, null, component);
|
|
23
|
+
}
|
|
24
|
+
rootInstance.render(createElement(StrictMode, null, app));
|
|
25
|
+
})();
|
|
18
26
|
};
|
|
19
27
|
//# sourceMappingURL=mount-widget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount-widget.js","sourceRoot":"","sources":["../../src/web/mount-widget.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,IAAI,YAAY,GAAgB,IAAI,CAAC;AAErC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAA0B,EAAE,EAAE;IACxD,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACxB,yBAAyB,EAAE,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"mount-widget.js","sourceRoot":"","sources":["../../src/web/mount-widget.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,IAAI,YAAY,GAAgB,IAAI,CAAC;AAErC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAA0B,EAAE,EAAE;IACxD,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACxB,yBAAyB,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC;IAE5C,CAAC,KAAK,IAAI,EAAE;QACV,IAAI,GAAG,GAAG,SAAS,CAAC;QACpB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;YACzE,GAAG,GAAG,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACtD,CAAC;QACD,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,EAAE,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -5,18 +5,18 @@ export function skybridge() {
|
|
|
5
5
|
async config(config) {
|
|
6
6
|
// Dynamic imports to ensure Node modules are only loaded in Node.js context
|
|
7
7
|
const { globSync } = await import("node:fs");
|
|
8
|
-
const { resolve } = await import("node:path");
|
|
8
|
+
const { basename, dirname, parse, resolve } = await import("node:path");
|
|
9
9
|
const projectRoot = config.root || process.cwd();
|
|
10
10
|
const flatWidgetPattern = resolve(projectRoot, "src/widgets/*.{js,ts,jsx,tsx,html}");
|
|
11
11
|
const dirWidgetPattern = resolve(projectRoot, "src/widgets/*/index.tsx");
|
|
12
|
-
const flatWidgets = globSync(flatWidgetPattern).map((file) =>
|
|
13
|
-
file.
|
|
14
|
-
file
|
|
15
|
-
|
|
16
|
-
const dirWidgets = globSync(dirWidgetPattern).map((file) =>
|
|
17
|
-
|
|
18
|
-
file
|
|
19
|
-
|
|
12
|
+
const flatWidgets = globSync(flatWidgetPattern).map((file) => {
|
|
13
|
+
const name = parse(file).name;
|
|
14
|
+
return [name, file];
|
|
15
|
+
});
|
|
16
|
+
const dirWidgets = globSync(dirWidgetPattern).map((file) => {
|
|
17
|
+
const name = basename(dirname(file));
|
|
18
|
+
return [name, file];
|
|
19
|
+
});
|
|
20
20
|
const input = Object.fromEntries([...flatWidgets, ...dirWidgets]);
|
|
21
21
|
return {
|
|
22
22
|
base: "/assets",
|
|
@@ -28,6 +28,13 @@ export function skybridge() {
|
|
|
28
28
|
input,
|
|
29
29
|
},
|
|
30
30
|
},
|
|
31
|
+
experimental: {
|
|
32
|
+
renderBuiltUrl: (filename) => {
|
|
33
|
+
return {
|
|
34
|
+
runtime: `window.skybridge.serverUrl + "/assets/${filename}"`,
|
|
35
|
+
};
|
|
36
|
+
},
|
|
37
|
+
},
|
|
31
38
|
};
|
|
32
39
|
},
|
|
33
40
|
enforce: "pre",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/web/plugin/plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAExE,MAAM,UAAU,SAAS;IACvB,OAAO;QACL,IAAI,EAAE,WAAW;QAEjB,KAAK,CAAC,MAAM,CAAC,MAAM;YACjB,4EAA4E;YAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/web/plugin/plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAExE,MAAM,UAAU,SAAS;IACvB,OAAO;QACL,IAAI,EAAE,WAAW;QAEjB,KAAK,CAAC,MAAM,CAAC,MAAM;YACjB,4EAA4E;YAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YAExE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACjD,MAAM,iBAAiB,GAAG,OAAO,CAC/B,WAAW,EACX,oCAAoC,CACrC,CAAC;YACF,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;YAEzE,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;gBAC9B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;YAElE,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE;oBACL,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;oBACZ,YAAY,EAAE,KAAK;oBACnB,aAAa,EAAE;wBACb,KAAK;qBACN;iBACF;gBACD,YAAY,EAAE;oBACZ,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE;wBAC3B,OAAO;4BACL,OAAO,EAAE,yCAAyC,QAAQ,GAAG;yBAC9D,CAAC;oBACJ,CAAC;iBACF;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,KAAK;QACd,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;YACtB,OAAO,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/web/proxy.js
CHANGED
|
@@ -6,7 +6,6 @@ const colors = {
|
|
|
6
6
|
};
|
|
7
7
|
export function installOpenAILoggingProxy() {
|
|
8
8
|
if (typeof window === "undefined" || !window.openai) {
|
|
9
|
-
console.warn("[openai-proxy] window.openai not found, skipping proxy installation");
|
|
10
9
|
return;
|
|
11
10
|
}
|
|
12
11
|
const descriptor = Object.getOwnPropertyDescriptor(window, "openai");
|
package/dist/web/proxy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/web/proxy.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;CACR,CAAC;AAEX,MAAM,UAAU,yBAAyB;IACvC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpD,OAAO
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/web/proxy.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skybridge",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
4
|
-
"description": "Skybridge is a framework for building ChatGPT
|
|
3
|
+
"version": "0.0.0-dev.91b4f23",
|
|
4
|
+
"description": "Skybridge is a framework for building ChatGPT and MCP Apps",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/alpic-ai/skybridge.git"
|
|
8
8
|
},
|
|
9
9
|
"type": "module",
|
|
10
10
|
"files": [
|
|
11
|
-
"dist"
|
|
11
|
+
"dist",
|
|
12
|
+
"README.md"
|
|
12
13
|
],
|
|
13
14
|
"exports": {
|
|
14
15
|
"./server": {
|
|
@@ -30,44 +31,46 @@
|
|
|
30
31
|
"license": "ISC",
|
|
31
32
|
"peerDependencies": {
|
|
32
33
|
"@modelcontextprotocol/sdk": ">=1.0.0",
|
|
34
|
+
"@skybridge/devtools": ">=0.26.1",
|
|
35
|
+
"nodemon": ">=3.0.0",
|
|
33
36
|
"react": ">=18.0.0",
|
|
34
|
-
"react-dom": ">=18.0.0"
|
|
37
|
+
"react-dom": ">=18.0.0",
|
|
38
|
+
"vite": "^7.3.1"
|
|
35
39
|
},
|
|
36
40
|
"dependencies": {
|
|
37
|
-
"@babel/core": "^7.
|
|
41
|
+
"@babel/core": "^7.29.0",
|
|
38
42
|
"@oclif/core": "^4.8.0",
|
|
39
|
-
"ci-info": "^4.
|
|
40
|
-
"cors": "^2.8.
|
|
43
|
+
"ci-info": "^4.4.0",
|
|
44
|
+
"cors": "^2.8.6",
|
|
41
45
|
"dequal": "^2.0.3",
|
|
42
|
-
"es-toolkit": "^1.
|
|
46
|
+
"es-toolkit": "^1.44.0",
|
|
43
47
|
"express": "^5.2.1",
|
|
44
48
|
"handlebars": "^4.7.8",
|
|
45
49
|
"ink": "^6.6.0",
|
|
46
|
-
"posthog-node": "^5.
|
|
50
|
+
"posthog-node": "^5.24.14",
|
|
47
51
|
"superjson": "^2.2.6",
|
|
48
|
-
"
|
|
49
|
-
"zustand": "^5.0.10"
|
|
52
|
+
"zustand": "^5.0.11"
|
|
50
53
|
},
|
|
51
54
|
"devDependencies": {
|
|
52
|
-
"@modelcontextprotocol/ext-apps": "^0.
|
|
53
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
55
|
+
"@modelcontextprotocol/ext-apps": "^1.0.1",
|
|
56
|
+
"@modelcontextprotocol/sdk": "^1.27.0",
|
|
54
57
|
"@testing-library/dom": "^10.4.1",
|
|
55
|
-
"@testing-library/react": "^16.3.
|
|
58
|
+
"@testing-library/react": "^16.3.2",
|
|
56
59
|
"@total-typescript/tsconfig": "^1.0.4",
|
|
57
60
|
"@types/babel__core": "^7.20.5",
|
|
58
61
|
"@types/cors": "^2.8.19",
|
|
59
62
|
"@types/express": "^5.0.6",
|
|
60
63
|
"@types/jsdom": "^27.0.0",
|
|
61
|
-
"@types/node": "^24.10.
|
|
62
|
-
"@types/react": "^19.2.
|
|
64
|
+
"@types/node": "^24.10.12",
|
|
65
|
+
"@types/react": "^19.2.13",
|
|
63
66
|
"@types/react-dom": "^19.2.3",
|
|
64
|
-
"@vitest/ui": "^4.0.
|
|
65
|
-
"jsdom": "^
|
|
67
|
+
"@vitest/ui": "^4.0.18",
|
|
68
|
+
"jsdom": "^28.0.0",
|
|
66
69
|
"shx": "^0.4.0",
|
|
67
70
|
"ts-node": "^10.9.2",
|
|
68
71
|
"typescript": "^5.9.3",
|
|
69
|
-
"vitest": "^4.0.
|
|
70
|
-
"zod": "^4.3.
|
|
72
|
+
"vitest": "^4.0.18",
|
|
73
|
+
"zod": "^4.3.6"
|
|
71
74
|
},
|
|
72
75
|
"bin": {
|
|
73
76
|
"sb": "./bin/run.js",
|
|
@@ -79,7 +82,7 @@
|
|
|
79
82
|
"dirname": "skybridge",
|
|
80
83
|
"topicSeparator": " ",
|
|
81
84
|
"hooks": {
|
|
82
|
-
"
|
|
85
|
+
"finally": "./dist/cli/telemetry"
|
|
83
86
|
}
|
|
84
87
|
},
|
|
85
88
|
"scripts": {
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Command } from "@oclif/core";
|
|
2
|
-
export default class Telemetry extends Command {
|
|
3
|
-
static args: {
|
|
4
|
-
action: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
5
|
-
};
|
|
6
|
-
static description: string;
|
|
7
|
-
static examples: string[];
|
|
8
|
-
run(): Promise<void>;
|
|
9
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Args, Command } from "@oclif/core";
|
|
3
|
-
import { Box, render, Text } from "ink";
|
|
4
|
-
import { getCI, getGlobalConfigPath, getMachineId, getProjectId, isEnabled, setEnabled, } from "../cli/telemetry.js";
|
|
5
|
-
export default class Telemetry extends Command {
|
|
6
|
-
static args = {
|
|
7
|
-
action: Args.string({
|
|
8
|
-
description: "Action to perform: status, enable, or disable",
|
|
9
|
-
options: ["status", "enable", "disable"],
|
|
10
|
-
}),
|
|
11
|
-
};
|
|
12
|
-
static description = "Manage Skybridge telemetry settings";
|
|
13
|
-
static examples = [
|
|
14
|
-
"skybridge telemetry status",
|
|
15
|
-
"skybridge telemetry enable",
|
|
16
|
-
"skybridge telemetry disable",
|
|
17
|
-
];
|
|
18
|
-
async run() {
|
|
19
|
-
const { args } = await this.parse(Telemetry);
|
|
20
|
-
const action = args.action || "status";
|
|
21
|
-
if (action === "enable") {
|
|
22
|
-
setEnabled(true);
|
|
23
|
-
const App = () => (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: "green", children: "\u2713" }), _jsx(Text, { children: " Telemetry has been " }), _jsx(Text, { color: "green", bold: true, children: "enabled" })] }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: "gray", children: ["Config saved to: ", getGlobalConfigPath()] }) })] }));
|
|
24
|
-
render(_jsx(App, {}));
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
if (action === "disable") {
|
|
28
|
-
setEnabled(false);
|
|
29
|
-
const App = () => (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: "yellow", children: "\u2713" }), _jsx(Text, { children: " Telemetry has been " }), _jsx(Text, { color: "yellow", bold: true, children: "disabled" })] }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: "gray", children: ["Config saved to: ", getGlobalConfigPath()] }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", children: "You can also set SKYBRIDGE_TELEMETRY_DISABLED=1 to disable telemetry via environment variable." }) })] }));
|
|
30
|
-
render(_jsx(App, {}));
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
// Status (default)
|
|
34
|
-
const enabled = isEnabled();
|
|
35
|
-
const ciInfo = getCI();
|
|
36
|
-
const App = () => (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsx(Text, { bold: true, underline: true, children: "Skybridge Telemetry" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { children: "Status: " }), enabled ? (_jsx(Text, { color: "green", bold: true, children: "Enabled" })) : (_jsx(Text, { color: "yellow", bold: true, children: "Disabled" }))] }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: "gray", children: "Machine ID: " }), _jsx(Text, { children: getMachineId() })] }), _jsxs(Box, { children: [_jsx(Text, { color: "gray", children: "Project ID: " }), _jsx(Text, { children: getProjectId() })] }), _jsxs(Box, { children: [_jsx(Text, { color: "gray", children: "CI Environment: " }), _jsx(Text, { children: ciInfo.isCI ? ciInfo.name || "Yes" : "No" })] }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: "gray", children: "Config file: " }), _jsx(Text, { children: getGlobalConfigPath() })] })] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: "gray", children: "To opt out, run: skybridge telemetry disable" }), _jsx(Text, { color: "gray", children: "Or set: SKYBRIDGE_TELEMETRY_DISABLED=1" }), _jsx(Text, { color: "gray", children: "Debug mode: SKYBRIDGE_TELEMETRY_DEBUG=1" })] })] }));
|
|
37
|
-
render(_jsx(App, {}));
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=telemetry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/commands/telemetry.tsx"],"names":[],"mappings":"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"}
|
package/dist/hooks/prerun.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { Hook } from "@oclif/core";
|
|
2
|
-
/**
|
|
3
|
-
* Oclif prerun hook that automatically tracks telemetry for all commands.
|
|
4
|
-
* This hook runs before any command executes, ensuring telemetry is captured
|
|
5
|
-
* even for long-running commands (dev, start) or commands that exit early.
|
|
6
|
-
*
|
|
7
|
-
* Note: For commands like 'build' that have distinct success/failure outcomes,
|
|
8
|
-
* additional outcome tracking may be done within the command itself.
|
|
9
|
-
*/
|
|
10
|
-
declare const hook: Hook<"prerun">;
|
|
11
|
-
export default hook;
|
package/dist/hooks/prerun.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { trackCommand } from "../cli/telemetry.js";
|
|
2
|
-
/**
|
|
3
|
-
* Oclif prerun hook that automatically tracks telemetry for all commands.
|
|
4
|
-
* This hook runs before any command executes, ensuring telemetry is captured
|
|
5
|
-
* even for long-running commands (dev, start) or commands that exit early.
|
|
6
|
-
*
|
|
7
|
-
* Note: For commands like 'build' that have distinct success/failure outcomes,
|
|
8
|
-
* additional outcome tracking may be done within the command itself.
|
|
9
|
-
*/
|
|
10
|
-
const hook = async (options) => {
|
|
11
|
-
// Skip tracking the telemetry command itself to avoid noise
|
|
12
|
-
if (options.Command?.id === "telemetry") {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
const commandId = options.Command?.id ?? "unknown";
|
|
16
|
-
const version = options.config.version;
|
|
17
|
-
// Track the command invocation (fire and forget - don't block command execution)
|
|
18
|
-
trackCommand(commandId, version);
|
|
19
|
-
};
|
|
20
|
-
export default hook;
|
|
21
|
-
//# sourceMappingURL=prerun.js.map
|
package/dist/hooks/prerun.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prerun.js","sourceRoot":"","sources":["../../src/hooks/prerun.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,IAAI,GAAmB,KAAK,EAAE,OAAO,EAAE,EAAE;IAC7C,4DAA4D;IAC5D,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,WAAW,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,SAAS,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IAEvC,iFAAiF;IACjF,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
|