@opentiny/next-sdk 0.2.6-beta.0 → 0.2.6-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.dev.js +60 -6
- package/dist/index.es.js +3930 -3887
- package/dist/index.js +1500 -1457
- package/dist/index.umd.dev.js +60 -6
- package/dist/index.umd.js +39 -39
- package/dist/page-tool-bridge.d.ts +30 -3
- package/package.json +1 -1
- package/page-tool-bridge.ts +108 -16
package/dist/index.umd.dev.js
CHANGED
|
@@ -50551,7 +50551,52 @@ ${observationText}
|
|
|
50551
50551
|
const MSG_TOOL_CALL = "next-sdk:tool-call";
|
|
50552
50552
|
const MSG_TOOL_RESPONSE = "next-sdk:tool-response";
|
|
50553
50553
|
const MSG_PAGE_READY = "next-sdk:page-ready";
|
|
50554
|
+
const MSG_PAGE_LEAVE = "next-sdk:page-leave";
|
|
50555
|
+
const MSG_REMOTER_READY = "next-sdk:remoter-ready";
|
|
50556
|
+
const MSG_ROUTE_STATE_INITIAL = "next-sdk:route-state-initial";
|
|
50554
50557
|
const activePages = /* @__PURE__ */ new Map();
|
|
50558
|
+
const broadcastTargets = /* @__PURE__ */ new Set();
|
|
50559
|
+
function initBroadcastTargets() {
|
|
50560
|
+
if (typeof window !== "undefined") {
|
|
50561
|
+
broadcastTargets.add(window);
|
|
50562
|
+
}
|
|
50563
|
+
}
|
|
50564
|
+
initBroadcastTargets();
|
|
50565
|
+
function broadcastRouteChange(type2, route) {
|
|
50566
|
+
const msg = { type: type2, route };
|
|
50567
|
+
const origin = window.location.origin || "*";
|
|
50568
|
+
broadcastTargets.forEach((target) => {
|
|
50569
|
+
try {
|
|
50570
|
+
target.postMessage(msg, origin);
|
|
50571
|
+
} catch {
|
|
50572
|
+
}
|
|
50573
|
+
});
|
|
50574
|
+
}
|
|
50575
|
+
function setupIframeRemoterBridge() {
|
|
50576
|
+
if (typeof window === "undefined") return;
|
|
50577
|
+
window.addEventListener("message", (event) => {
|
|
50578
|
+
if (event.data?.type !== MSG_REMOTER_READY || !event.source) return;
|
|
50579
|
+
const target = event.source;
|
|
50580
|
+
broadcastTargets.add(target);
|
|
50581
|
+
const payload = {
|
|
50582
|
+
type: MSG_ROUTE_STATE_INITIAL,
|
|
50583
|
+
toolRouteMap: Array.from(toolRouteMap.entries()),
|
|
50584
|
+
activeRoutes: Array.from(activePages.keys())
|
|
50585
|
+
};
|
|
50586
|
+
try {
|
|
50587
|
+
target.postMessage(payload, window.location.origin || "*");
|
|
50588
|
+
} catch {
|
|
50589
|
+
}
|
|
50590
|
+
});
|
|
50591
|
+
}
|
|
50592
|
+
setupIframeRemoterBridge();
|
|
50593
|
+
const toolRouteMap = /* @__PURE__ */ new Map();
|
|
50594
|
+
function getToolRouteMap() {
|
|
50595
|
+
return toolRouteMap;
|
|
50596
|
+
}
|
|
50597
|
+
function getActiveRoutes() {
|
|
50598
|
+
return new Set(activePages.keys());
|
|
50599
|
+
}
|
|
50555
50600
|
let _navigator = null;
|
|
50556
50601
|
function setNavigator(fn) {
|
|
50557
50602
|
_navigator = fn;
|
|
@@ -50623,11 +50668,13 @@ ${observationText}
|
|
|
50623
50668
|
get(target, prop, receiver) {
|
|
50624
50669
|
if (prop === "registerTool") {
|
|
50625
50670
|
return (name16, config2, handlerOrRoute) => {
|
|
50671
|
+
const rawRegister = target.registerTool.bind(target);
|
|
50626
50672
|
if (typeof handlerOrRoute === "function") {
|
|
50627
|
-
return
|
|
50673
|
+
return rawRegister(name16, config2, handlerOrRoute);
|
|
50628
50674
|
}
|
|
50629
50675
|
const { route, timeout } = handlerOrRoute;
|
|
50630
|
-
|
|
50676
|
+
toolRouteMap.set(name16, route);
|
|
50677
|
+
return rawRegister(name16, config2, buildPageHandler(name16, route, timeout));
|
|
50631
50678
|
};
|
|
50632
50679
|
}
|
|
50633
50680
|
return Reflect.get(target, prop, receiver);
|
|
@@ -50635,10 +50682,11 @@ ${observationText}
|
|
|
50635
50682
|
});
|
|
50636
50683
|
}
|
|
50637
50684
|
function registerPageTool(options) {
|
|
50638
|
-
const { handlers } = options;
|
|
50639
|
-
const
|
|
50685
|
+
const { route: routeOption, handlers } = options;
|
|
50686
|
+
const normalizeRoute = (value) => value.replace(/\/+$/, "") || "/";
|
|
50687
|
+
const route = normalizeRoute(routeOption ?? window.location.pathname);
|
|
50640
50688
|
const handleMessage = async (event) => {
|
|
50641
|
-
if (event.source !== window || event.data?.type !== MSG_TOOL_CALL || event.data?.route !== route || !(event.data.toolName in handlers)) {
|
|
50689
|
+
if (event.source !== window || event.data?.type !== MSG_TOOL_CALL || normalizeRoute(String(event.data?.route ?? "")) !== route || !(event.data.toolName in handlers)) {
|
|
50642
50690
|
return;
|
|
50643
50691
|
}
|
|
50644
50692
|
const { callId, toolName, input } = event.data;
|
|
@@ -50658,10 +50706,11 @@ ${observationText}
|
|
|
50658
50706
|
};
|
|
50659
50707
|
activePages.set(route, true);
|
|
50660
50708
|
window.addEventListener("message", handleMessage);
|
|
50661
|
-
|
|
50709
|
+
broadcastRouteChange(MSG_PAGE_READY, route);
|
|
50662
50710
|
return () => {
|
|
50663
50711
|
activePages.delete(route);
|
|
50664
50712
|
window.removeEventListener("message", handleMessage);
|
|
50713
|
+
broadcastRouteChange(MSG_PAGE_LEAVE, route);
|
|
50665
50714
|
};
|
|
50666
50715
|
}
|
|
50667
50716
|
const MAIN_SKILL_PATH_REG = /^\.\/[^/]+\/SKILL\.md$/;
|
|
@@ -50763,6 +50812,9 @@ ${lines.join("\n")}
|
|
|
50763
50812
|
exports2.ExtensionClientTransport = ExtensionClientTransport;
|
|
50764
50813
|
exports2.ExtensionPageServerTransport = ExtensionPageServerTransport;
|
|
50765
50814
|
exports2.InMemoryTransport = InMemoryTransport;
|
|
50815
|
+
exports2.MSG_PAGE_LEAVE = MSG_PAGE_LEAVE;
|
|
50816
|
+
exports2.MSG_REMOTER_READY = MSG_REMOTER_READY;
|
|
50817
|
+
exports2.MSG_ROUTE_STATE_INITIAL = MSG_ROUTE_STATE_INITIAL;
|
|
50766
50818
|
exports2.QrCode = QrCode;
|
|
50767
50819
|
exports2.ResourceTemplate = ResourceTemplate;
|
|
50768
50820
|
exports2.UriTemplate = UriTemplate;
|
|
@@ -50778,12 +50830,14 @@ ${lines.join("\n")}
|
|
|
50778
50830
|
exports2.createStreamableHTTPClientTransport = createStreamableHTTPClientTransport;
|
|
50779
50831
|
exports2.formatSkillsForSystemPrompt = formatSkillsForSystemPrompt;
|
|
50780
50832
|
exports2.getAISDKTools = getAISDKTools;
|
|
50833
|
+
exports2.getActiveRoutes = getActiveRoutes;
|
|
50781
50834
|
exports2.getDisplayName = getDisplayName;
|
|
50782
50835
|
exports2.getMainSkillPathByName = getMainSkillPathByName;
|
|
50783
50836
|
exports2.getMainSkillPaths = getMainSkillPaths;
|
|
50784
50837
|
exports2.getSkillMdContent = getSkillMdContent;
|
|
50785
50838
|
exports2.getSkillMdPaths = getSkillMdPaths;
|
|
50786
50839
|
exports2.getSkillOverviews = getSkillOverviews;
|
|
50840
|
+
exports2.getToolRouteMap = getToolRouteMap;
|
|
50787
50841
|
exports2.isMcpClient = isMcpClient;
|
|
50788
50842
|
exports2.isMcpServer = isMcpServer;
|
|
50789
50843
|
exports2.isMessageChannelClientTransport = isMessageChannelClientTransport;
|