@assistant-ui/react-devtools 0.1.11 → 0.1.13

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.
@@ -1,50 +1,46 @@
1
- // src/ExtensionHost.ts
2
1
  import { DevToolsHost } from "./DevToolsHost.js";
3
- var ExtensionHost = class {
4
- devToolsHost;
5
- messageListener;
6
- constructor() {
7
- this.devToolsHost = new DevToolsHost((message) => {
8
- console.log("[ExtensionHost] Sending message to iframe:", message);
9
- window.postMessage(
10
- {
11
- source: "assistant-ui-devtools-page",
12
- payload: message
13
- },
14
- "*"
15
- );
16
- });
17
- this.messageListener = (event) => {
18
- if (event.source !== window) return;
19
- if (event.data.source === "assistant-ui-devtools-iframe") {
20
- console.log("[ExtensionHost] Received message from iframe:", {
21
- source: event.data.source,
22
- payload: event.data.payload,
23
- fullData: event.data
2
+ export class ExtensionHost {
3
+ devToolsHost;
4
+ messageListener;
5
+ constructor() {
6
+ // Create DevToolsHost with callback to send messages through extension
7
+ this.devToolsHost = new DevToolsHost((message) => {
8
+ console.log("[ExtensionHost] Sending message to iframe:", message);
9
+ window.postMessage({
10
+ source: "assistant-ui-devtools-page",
11
+ payload: message,
12
+ }, "*");
24
13
  });
25
- this.devToolsHost.onReceiveMessage(event.data.payload);
26
- }
27
- };
28
- window.addEventListener("message", this.messageListener);
29
- setTimeout(() => {
30
- console.log("[ExtensionHost] Announcing connection to iframe");
31
- window.postMessage(
32
- {
33
- source: "assistant-ui-devtools-page",
34
- payload: {
35
- type: "host-connected"
36
- }
37
- },
38
- "*"
39
- );
40
- }, 100);
41
- }
42
- destroy() {
43
- window.removeEventListener("message", this.messageListener);
44
- this.devToolsHost.destroy();
45
- }
46
- };
47
- export {
48
- ExtensionHost
49
- };
14
+ // Setup listener to forward messages from extension to DevToolsHost
15
+ this.messageListener = (event) => {
16
+ if (event.source !== window)
17
+ return;
18
+ // Log ALL messages to see what's coming through
19
+ if (event.data.source === "assistant-ui-devtools-iframe") {
20
+ console.log("[ExtensionHost] Received message from iframe:", {
21
+ source: event.data.source,
22
+ payload: event.data.payload,
23
+ fullData: event.data,
24
+ });
25
+ this.devToolsHost.onReceiveMessage(event.data.payload);
26
+ }
27
+ };
28
+ window.addEventListener("message", this.messageListener);
29
+ // Announce that a new host has connected
30
+ // This tells the iframe to re-send its subscription
31
+ setTimeout(() => {
32
+ console.log("[ExtensionHost] Announcing connection to iframe");
33
+ window.postMessage({
34
+ source: "assistant-ui-devtools-page",
35
+ payload: {
36
+ type: "host-connected",
37
+ },
38
+ }, "*");
39
+ }, 100);
40
+ }
41
+ destroy() {
42
+ window.removeEventListener("message", this.messageListener);
43
+ this.devToolsHost.destroy();
44
+ }
45
+ }
50
46
  //# sourceMappingURL=ExtensionHost.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ExtensionHost.ts"],"sourcesContent":["import { DevToolsHost } from \"./DevToolsHost\";\n\nexport class ExtensionHost {\n private devToolsHost: DevToolsHost;\n private messageListener: (event: MessageEvent) => void;\n\n constructor() {\n // Create DevToolsHost with callback to send messages through extension\n this.devToolsHost = new DevToolsHost((message) => {\n console.log(\"[ExtensionHost] Sending message to iframe:\", message);\n window.postMessage(\n {\n source: \"assistant-ui-devtools-page\",\n payload: message,\n },\n \"*\",\n );\n });\n\n // Setup listener to forward messages from extension to DevToolsHost\n this.messageListener = (event: MessageEvent) => {\n if (event.source !== window) return;\n\n // Log ALL messages to see what's coming through\n if (event.data.source === \"assistant-ui-devtools-iframe\") {\n console.log(\"[ExtensionHost] Received message from iframe:\", {\n source: event.data.source,\n payload: event.data.payload,\n fullData: event.data,\n });\n this.devToolsHost.onReceiveMessage(event.data.payload);\n }\n };\n\n window.addEventListener(\"message\", this.messageListener);\n\n // Announce that a new host has connected\n // This tells the iframe to re-send its subscription\n setTimeout(() => {\n console.log(\"[ExtensionHost] Announcing connection to iframe\");\n window.postMessage(\n {\n source: \"assistant-ui-devtools-page\",\n payload: {\n type: \"host-connected\",\n },\n },\n \"*\",\n );\n }, 100);\n }\n\n destroy() {\n window.removeEventListener(\"message\", this.messageListener);\n this.devToolsHost.destroy();\n }\n}\n"],"mappings":";AAAA,SAAS,oBAAoB;AAEtB,IAAM,gBAAN,MAAoB;AAAA,EACjB;AAAA,EACA;AAAA,EAER,cAAc;AAEZ,SAAK,eAAe,IAAI,aAAa,CAAC,YAAY;AAChD,cAAQ,IAAI,8CAA8C,OAAO;AACjE,aAAO;AAAA,QACL;AAAA,UACE,QAAQ;AAAA,UACR,SAAS;AAAA,QACX;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAGD,SAAK,kBAAkB,CAAC,UAAwB;AAC9C,UAAI,MAAM,WAAW,OAAQ;AAG7B,UAAI,MAAM,KAAK,WAAW,gCAAgC;AACxD,gBAAQ,IAAI,iDAAiD;AAAA,UAC3D,QAAQ,MAAM,KAAK;AAAA,UACnB,SAAS,MAAM,KAAK;AAAA,UACpB,UAAU,MAAM;AAAA,QAClB,CAAC;AACD,aAAK,aAAa,iBAAiB,MAAM,KAAK,OAAO;AAAA,MACvD;AAAA,IACF;AAEA,WAAO,iBAAiB,WAAW,KAAK,eAAe;AAIvD,eAAW,MAAM;AACf,cAAQ,IAAI,iDAAiD;AAC7D,aAAO;AAAA,QACL;AAAA,UACE,QAAQ;AAAA,UACR,SAAS;AAAA,YACP,MAAM;AAAA,UACR;AAAA,QACF;AAAA,QACA;AAAA,MACF;AAAA,IACF,GAAG,GAAG;AAAA,EACR;AAAA,EAEA,UAAU;AACR,WAAO,oBAAoB,WAAW,KAAK,eAAe;AAC1D,SAAK,aAAa,QAAQ;AAAA,EAC5B;AACF;","names":[]}
1
+ {"version":3,"file":"ExtensionHost.js","sourceRoot":"","sources":["../src/ExtensionHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAE9C,MAAM,OAAO,aAAa;IAChB,YAAY,CAAe;IAC3B,eAAe,CAAgC;IAEvD;QACE,uEAAuE;QACvE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/C,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE,OAAO,CAAC,CAAC;YACnE,MAAM,CAAC,WAAW,CAChB;gBACE,MAAM,EAAE,4BAA4B;gBACpC,OAAO,EAAE,OAAO;aACjB,EACD,GAAG,CACJ,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,oEAAoE;QACpE,IAAI,CAAC,eAAe,GAAG,CAAC,KAAmB,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO;YAEpC,gDAAgD;YAChD,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,8BAA8B,EAAE,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE;oBAC3D,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;oBACzB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;oBAC3B,QAAQ,EAAE,KAAK,CAAC,IAAI;iBACrB,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzD,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAEzD,yCAAyC;QACzC,oDAAoD;QACpD,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;YAC/D,MAAM,CAAC,WAAW,CAChB;gBACE,MAAM,EAAE,4BAA4B;gBACpC,OAAO,EAAE;oBACP,IAAI,EAAE,gBAAgB;iBACvB;aACF,EACD,GAAG,CACJ,CAAC;QACJ,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED,OAAO;QACL,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;CACF"}
@@ -1,63 +1,56 @@
1
- // src/FrameClient.ts
2
- var FrameClient = class {
3
- listeners = /* @__PURE__ */ new Set();
4
- connectionListeners = /* @__PURE__ */ new Set();
5
- lastUpdate = {};
6
- constructor() {
7
- this.setupMessageListener();
8
- }
9
- setupMessageListener() {
10
- window.addEventListener("message", (event) => {
11
- const message = event.data;
12
- if (message.type === "update") {
13
- this.lastUpdate = message.data;
14
- this.notifyListeners(message.data);
15
- } else if (message.type === "host-connected") {
16
- this.connectionListeners.forEach((listener) => listener());
17
- }
18
- });
19
- }
20
- onHostConnected(listener) {
21
- this.connectionListeners.add(listener);
22
- return () => {
23
- this.connectionListeners.delete(listener);
24
- };
25
- }
26
- subscribe(listener) {
27
- this.listeners.add(listener);
28
- if (this.lastUpdate.apiList || this.lastUpdate.apis) {
29
- listener(this.lastUpdate);
30
- }
31
- return () => {
32
- this.listeners.delete(listener);
33
- };
34
- }
35
- setSubscription(options) {
36
- window.parent.postMessage(
37
- {
38
- type: "subscription",
39
- data: options
40
- },
41
- "*"
42
- );
43
- }
44
- clearEvents(apiId) {
45
- window.parent.postMessage(
46
- {
47
- type: "clearEvents",
48
- data: { apiId }
49
- },
50
- "*"
51
- );
52
- }
53
- notifyListeners(data) {
54
- this.listeners.forEach((listener) => listener(data));
55
- }
56
- getLastUpdate() {
57
- return this.lastUpdate;
58
- }
59
- };
60
- export {
61
- FrameClient
62
- };
1
+ export class FrameClient {
2
+ listeners = new Set();
3
+ connectionListeners = new Set();
4
+ lastUpdate = {};
5
+ constructor() {
6
+ this.setupMessageListener();
7
+ }
8
+ setupMessageListener() {
9
+ window.addEventListener("message", (event) => {
10
+ const message = event.data;
11
+ if (message.type === "update") {
12
+ this.lastUpdate = message.data;
13
+ this.notifyListeners(message.data);
14
+ }
15
+ else if (message.type === "host-connected") {
16
+ // Host has reconnected (page refresh), notify listeners to re-subscribe
17
+ this.connectionListeners.forEach((listener) => listener());
18
+ }
19
+ });
20
+ }
21
+ onHostConnected(listener) {
22
+ this.connectionListeners.add(listener);
23
+ return () => {
24
+ this.connectionListeners.delete(listener);
25
+ };
26
+ }
27
+ subscribe(listener) {
28
+ this.listeners.add(listener);
29
+ // Send the last update to the new listener
30
+ if (this.lastUpdate.apiList || this.lastUpdate.apis) {
31
+ listener(this.lastUpdate);
32
+ }
33
+ return () => {
34
+ this.listeners.delete(listener);
35
+ };
36
+ }
37
+ setSubscription(options) {
38
+ window.parent.postMessage({
39
+ type: "subscription",
40
+ data: options,
41
+ }, "*");
42
+ }
43
+ clearEvents(apiId) {
44
+ window.parent.postMessage({
45
+ type: "clearEvents",
46
+ data: { apiId },
47
+ }, "*");
48
+ }
49
+ notifyListeners(data) {
50
+ this.listeners.forEach((listener) => listener(data));
51
+ }
52
+ getLastUpdate() {
53
+ return this.lastUpdate;
54
+ }
55
+ }
63
56
  //# sourceMappingURL=FrameClient.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/FrameClient.ts"],"sourcesContent":["interface ApiData {\n apiId: number;\n state: any;\n events: any[];\n context?: any;\n}\n\ninterface UpdateMessage {\n type: \"update\";\n data: {\n apiList?: Array<{ apiId: number }>;\n apis?: ApiData[];\n };\n}\n\ninterface HostConnectedMessage {\n type: \"host-connected\";\n}\n\ntype UpdateListener = (data: {\n apiList?: Array<{ apiId: number }>;\n apis?: ApiData[];\n}) => void;\n\nexport class FrameClient {\n private listeners = new Set<UpdateListener>();\n private connectionListeners = new Set<() => void>();\n private lastUpdate: {\n apiList?: Array<{ apiId: number }>;\n apis?: ApiData[];\n } = {};\n\n constructor() {\n this.setupMessageListener();\n }\n\n private setupMessageListener() {\n window.addEventListener(\"message\", (event) => {\n const message = event.data as UpdateMessage | HostConnectedMessage;\n\n if (message.type === \"update\") {\n this.lastUpdate = message.data;\n this.notifyListeners(message.data);\n } else if (message.type === \"host-connected\") {\n // Host has reconnected (page refresh), notify listeners to re-subscribe\n this.connectionListeners.forEach((listener) => listener());\n }\n });\n }\n\n onHostConnected(listener: () => void): () => void {\n this.connectionListeners.add(listener);\n return () => {\n this.connectionListeners.delete(listener);\n };\n }\n\n subscribe(listener: UpdateListener): () => void {\n this.listeners.add(listener);\n\n // Send the last update to the new listener\n if (this.lastUpdate.apiList || this.lastUpdate.apis) {\n listener(this.lastUpdate);\n }\n\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n setSubscription(options: { apiList?: boolean; apis?: number[] }) {\n window.parent.postMessage(\n {\n type: \"subscription\",\n data: options,\n },\n \"*\",\n );\n }\n\n clearEvents(apiId: number) {\n window.parent.postMessage(\n {\n type: \"clearEvents\",\n data: { apiId },\n },\n \"*\",\n );\n }\n\n private notifyListeners(data: UpdateMessage[\"data\"]) {\n this.listeners.forEach((listener) => listener(data));\n }\n\n getLastUpdate() {\n return this.lastUpdate;\n }\n}\n"],"mappings":";AAwBO,IAAM,cAAN,MAAkB;AAAA,EACf,YAAY,oBAAI,IAAoB;AAAA,EACpC,sBAAsB,oBAAI,IAAgB;AAAA,EAC1C,aAGJ,CAAC;AAAA,EAEL,cAAc;AACZ,SAAK,qBAAqB;AAAA,EAC5B;AAAA,EAEQ,uBAAuB;AAC7B,WAAO,iBAAiB,WAAW,CAAC,UAAU;AAC5C,YAAM,UAAU,MAAM;AAEtB,UAAI,QAAQ,SAAS,UAAU;AAC7B,aAAK,aAAa,QAAQ;AAC1B,aAAK,gBAAgB,QAAQ,IAAI;AAAA,MACnC,WAAW,QAAQ,SAAS,kBAAkB;AAE5C,aAAK,oBAAoB,QAAQ,CAAC,aAAa,SAAS,CAAC;AAAA,MAC3D;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,gBAAgB,UAAkC;AAChD,SAAK,oBAAoB,IAAI,QAAQ;AACrC,WAAO,MAAM;AACX,WAAK,oBAAoB,OAAO,QAAQ;AAAA,IAC1C;AAAA,EACF;AAAA,EAEA,UAAU,UAAsC;AAC9C,SAAK,UAAU,IAAI,QAAQ;AAG3B,QAAI,KAAK,WAAW,WAAW,KAAK,WAAW,MAAM;AACnD,eAAS,KAAK,UAAU;AAAA,IAC1B;AAEA,WAAO,MAAM;AACX,WAAK,UAAU,OAAO,QAAQ;AAAA,IAChC;AAAA,EACF;AAAA,EAEA,gBAAgB,SAAiD;AAC/D,WAAO,OAAO;AAAA,MACZ;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,YAAY,OAAe;AACzB,WAAO,OAAO;AAAA,MACZ;AAAA,QACE,MAAM;AAAA,QACN,MAAM,EAAE,MAAM;AAAA,MAChB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,gBAAgB,MAA6B;AACnD,SAAK,UAAU,QAAQ,CAAC,aAAa,SAAS,IAAI,CAAC;AAAA,EACrD;AAAA,EAEA,gBAAgB;AACd,WAAO,KAAK;AAAA,EACd;AACF;","names":[]}
1
+ {"version":3,"file":"FrameClient.js","sourceRoot":"","sources":["../src/FrameClient.ts"],"names":[],"mappings":"AAwBA,MAAM,OAAO,WAAW;IACd,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,mBAAmB,GAAG,IAAI,GAAG,EAAc,CAAC;IAC5C,UAAU,GAGd,EAAE,CAAC;IAEP;QACE,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,oBAAoB;QAC1B,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAA4C,CAAC;YAEnE,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC/B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC7C,wEAAwE;gBACxE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,QAAoB;QAClC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,QAAwB;QAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE7B,2CAA2C;QAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACpD,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,OAA+C;QAC7D,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB;YACE,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,OAAO;SACd,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB;YACE,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,EAAE,KAAK,EAAE;SAChB,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,IAA2B;QACjD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF"}
package/dist/FrameHost.js CHANGED
@@ -1,28 +1,27 @@
1
- // src/FrameHost.ts
2
1
  import { DevToolsHost } from "./DevToolsHost.js";
3
- var FrameHost = class {
4
- frame;
5
- devToolsHost;
6
- messageListener;
7
- constructor(frame) {
8
- this.frame = frame;
9
- this.devToolsHost = new DevToolsHost((message) => {
10
- if (this.frame.contentWindow) {
11
- this.frame.contentWindow.postMessage(message, "*");
12
- }
13
- });
14
- this.messageListener = (event) => {
15
- if (event.source !== this.frame.contentWindow) return;
16
- this.devToolsHost.onReceiveMessage(event.data);
17
- };
18
- window.addEventListener("message", this.messageListener);
19
- }
20
- destroy() {
21
- window.removeEventListener("message", this.messageListener);
22
- this.devToolsHost.destroy();
23
- }
24
- };
25
- export {
26
- FrameHost
27
- };
2
+ export class FrameHost {
3
+ frame;
4
+ devToolsHost;
5
+ messageListener;
6
+ constructor(frame) {
7
+ this.frame = frame;
8
+ // Create DevToolsHost with callback to send messages to iframe
9
+ this.devToolsHost = new DevToolsHost((message) => {
10
+ if (this.frame.contentWindow) {
11
+ this.frame.contentWindow.postMessage(message, "*");
12
+ }
13
+ });
14
+ // Setup listener to forward messages from iframe to DevToolsHost
15
+ this.messageListener = (event) => {
16
+ if (event.source !== this.frame.contentWindow)
17
+ return;
18
+ this.devToolsHost.onReceiveMessage(event.data);
19
+ };
20
+ window.addEventListener("message", this.messageListener);
21
+ }
22
+ destroy() {
23
+ window.removeEventListener("message", this.messageListener);
24
+ this.devToolsHost.destroy();
25
+ }
26
+ }
28
27
  //# sourceMappingURL=FrameHost.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/FrameHost.ts"],"sourcesContent":["import { DevToolsHost } from \"./DevToolsHost\";\n\nexport class FrameHost {\n private frame: HTMLIFrameElement;\n private devToolsHost: DevToolsHost;\n private messageListener: (event: MessageEvent) => void;\n\n constructor(frame: HTMLIFrameElement) {\n this.frame = frame;\n\n // Create DevToolsHost with callback to send messages to iframe\n this.devToolsHost = new DevToolsHost((message) => {\n if (this.frame.contentWindow) {\n this.frame.contentWindow.postMessage(message, \"*\");\n }\n });\n\n // Setup listener to forward messages from iframe to DevToolsHost\n this.messageListener = (event: MessageEvent) => {\n if (event.source !== this.frame.contentWindow) return;\n this.devToolsHost.onReceiveMessage(event.data);\n };\n\n window.addEventListener(\"message\", this.messageListener);\n }\n\n destroy() {\n window.removeEventListener(\"message\", this.messageListener);\n this.devToolsHost.destroy();\n }\n}\n"],"mappings":";AAAA,SAAS,oBAAoB;AAEtB,IAAM,YAAN,MAAgB;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY,OAA0B;AACpC,SAAK,QAAQ;AAGb,SAAK,eAAe,IAAI,aAAa,CAAC,YAAY;AAChD,UAAI,KAAK,MAAM,eAAe;AAC5B,aAAK,MAAM,cAAc,YAAY,SAAS,GAAG;AAAA,MACnD;AAAA,IACF,CAAC;AAGD,SAAK,kBAAkB,CAAC,UAAwB;AAC9C,UAAI,MAAM,WAAW,KAAK,MAAM,cAAe;AAC/C,WAAK,aAAa,iBAAiB,MAAM,IAAI;AAAA,IAC/C;AAEA,WAAO,iBAAiB,WAAW,KAAK,eAAe;AAAA,EACzD;AAAA,EAEA,UAAU;AACR,WAAO,oBAAoB,WAAW,KAAK,eAAe;AAC1D,SAAK,aAAa,QAAQ;AAAA,EAC5B;AACF;","names":[]}
1
+ {"version":3,"file":"FrameHost.js","sourceRoot":"","sources":["../src/FrameHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAE9C,MAAM,OAAO,SAAS;IACZ,KAAK,CAAoB;IACzB,YAAY,CAAe;IAC3B,eAAe,CAAgC;IAEvD,YAAY,KAAwB;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,+DAA+D;QAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,iEAAiE;QACjE,IAAI,CAAC,eAAe,GAAG,CAAC,KAAmB,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa;gBAAE,OAAO;YACtD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO;QACL,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;CACF"}
package/dist/constants.js CHANGED
@@ -1,8 +1,3 @@
1
- // src/constants.ts
2
- var DEFAULT_FRAME_URL = "https://devtools-frame.assistant-ui.com";
3
- var LOCAL_FRAME_URL = "http://localhost:3010";
4
- export {
5
- DEFAULT_FRAME_URL,
6
- LOCAL_FRAME_URL
7
- };
1
+ export const DEFAULT_FRAME_URL = "https://devtools-frame.assistant-ui.com";
2
+ export const LOCAL_FRAME_URL = "http://localhost:3010";
8
3
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants.ts"],"sourcesContent":["export const DEFAULT_FRAME_URL = \"https://devtools-frame.assistant-ui.com\";\nexport const LOCAL_FRAME_URL = \"http://localhost:3010\";\n"],"mappings":";AAAO,IAAM,oBAAoB;AAC1B,IAAM,kBAAkB;","names":[]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,yCAAyC,CAAC;AAC3E,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- export { DevToolsModal } from "./DevToolsModal";
2
- export { DevToolsFrame } from "./DevToolsFrame";
3
- export { FrameHost } from "./FrameHost";
4
- export { DevToolsHost } from "./DevToolsHost";
5
- export { ExtensionHost } from "./ExtensionHost";
6
- export { FrameClient } from "./FrameClient";
7
- export { normalizeToolList, type NormalizedTool, } from "./utils/toolNormalization";
8
- export { sanitizeForMessage, serializeModelContext, } from "./utils/serialization";
9
- export type { SerializedModelContext, TabType, ViewMode } from "./types";
10
- export * from "./constants";
1
+ export { DevToolsModal } from "./DevToolsModal.js";
2
+ export { DevToolsFrame } from "./DevToolsFrame.js";
3
+ export { FrameHost } from "./FrameHost.js";
4
+ export { DevToolsHost } from "./DevToolsHost.js";
5
+ export { ExtensionHost } from "./ExtensionHost.js";
6
+ export { FrameClient } from "./FrameClient.js";
7
+ export { normalizeToolList, type NormalizedTool, } from "./utils/toolNormalization.js";
8
+ export { sanitizeForMessage, serializeModelContext, } from "./utils/serialization.js";
9
+ export type { SerializedModelContext, TabType, ViewMode } from "./types.js";
10
+ export * from "./constants.js";
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,sBAAsB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzE,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,2BAAwB;AAChD,OAAO,EAAE,aAAa,EAAE,2BAAwB;AAChD,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAC9C,OAAO,EAAE,aAAa,EAAE,2BAAwB;AAChD,OAAO,EAAE,WAAW,EAAE,yBAAsB;AAC5C,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,GACpB,qCAAkC;AACnC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,iCAA8B;AAE/B,YAAY,EAAE,sBAAsB,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAgB;AACzE,+BAA4B"}
package/dist/index.js CHANGED
@@ -1,27 +1,10 @@
1
- // src/index.ts
2
- import { DevToolsModal } from "./DevToolsModal.js";
3
- import { DevToolsFrame } from "./DevToolsFrame.js";
4
- import { FrameHost } from "./FrameHost.js";
5
- import { DevToolsHost } from "./DevToolsHost.js";
6
- import { ExtensionHost } from "./ExtensionHost.js";
7
- import { FrameClient } from "./FrameClient.js";
8
- import {
9
- normalizeToolList
10
- } from "./utils/toolNormalization.js";
11
- import {
12
- sanitizeForMessage,
13
- serializeModelContext
14
- } from "./utils/serialization.js";
1
+ export { DevToolsModal } from "./DevToolsModal.js";
2
+ export { DevToolsFrame } from "./DevToolsFrame.js";
3
+ export { FrameHost } from "./FrameHost.js";
4
+ export { DevToolsHost } from "./DevToolsHost.js";
5
+ export { ExtensionHost } from "./ExtensionHost.js";
6
+ export { FrameClient } from "./FrameClient.js";
7
+ export { normalizeToolList, } from "./utils/toolNormalization.js";
8
+ export { sanitizeForMessage, serializeModelContext, } from "./utils/serialization.js";
15
9
  export * from "./constants.js";
16
- export {
17
- DevToolsFrame,
18
- DevToolsHost,
19
- DevToolsModal,
20
- ExtensionHost,
21
- FrameClient,
22
- FrameHost,
23
- normalizeToolList,
24
- sanitizeForMessage,
25
- serializeModelContext
26
- };
27
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { DevToolsModal } from \"./DevToolsModal\";\nexport { DevToolsFrame } from \"./DevToolsFrame\";\nexport { FrameHost } from \"./FrameHost\";\nexport { DevToolsHost } from \"./DevToolsHost\";\nexport { ExtensionHost } from \"./ExtensionHost\";\nexport { FrameClient } from \"./FrameClient\";\nexport {\n normalizeToolList,\n type NormalizedTool,\n} from \"./utils/toolNormalization\";\nexport {\n sanitizeForMessage,\n serializeModelContext,\n} from \"./utils/serialization\";\n// Export types\nexport type { SerializedModelContext, TabType, ViewMode } from \"./types\";\nexport * from \"./constants\";\n"],"mappings":";AAAA,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,iBAAiB;AAC1B,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAC5B;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAGP,cAAc;","names":[]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,2BAAwB;AAChD,OAAO,EAAE,aAAa,EAAE,2BAAwB;AAChD,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAC9C,OAAO,EAAE,aAAa,EAAE,2BAAwB;AAChD,OAAO,EAAE,WAAW,EAAE,yBAAsB;AAC5C,OAAO,EACL,iBAAiB,GAElB,qCAAkC;AACnC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,iCAA8B;AAG/B,+BAA4B"}
@@ -1,104 +1,109 @@
1
- // src/styles/DevToolsModal.styles.ts
2
- var COLORS = {
3
- light: {
4
- primary: "#2563EB",
5
- background: "#f8fafc",
6
- surface: "#ffffff",
7
- text: "#111827",
8
- textLight: "#6b7280",
9
- border: "rgba(148, 163, 184, 0.35)",
10
- shadow: "rgba(37, 99, 235, 0.35)",
11
- buttonText: "#f9fafb",
12
- hoverBg: "rgba(148, 163, 184, 0.18)"
13
- },
14
- dark: {
15
- primary: "#111827",
16
- background: "#09090b",
17
- surface: "#09090b",
18
- text: "#e5e7eb",
19
- textLight: "#9ca3af",
20
- border: "rgba(63, 63, 70, 0.6)",
21
- shadow: "rgba(0, 0, 0, 0.55)",
22
- buttonText: "#e5e7eb",
23
- hoverBg: "rgba(148, 163, 184, 0.12)"
24
- }
25
- };
26
- var getStyles = (darkMode) => {
27
- const theme = darkMode ? COLORS.dark : COLORS.light;
28
- return {
29
- floatingContainer: {
30
- position: "fixed",
31
- bottom: "24px",
32
- right: "24px",
33
- zIndex: 2147483647
34
- },
35
- floatingButton: {
36
- width: "42px",
37
- height: "42px",
38
- borderRadius: "9999px",
39
- border: "none",
40
- background: theme.primary,
41
- color: theme.buttonText,
42
- cursor: "pointer",
43
- display: "flex",
44
- alignItems: "center",
45
- justifyContent: "center",
46
- boxShadow: darkMode ? `0 10px 40px ${COLORS.dark.shadow}` : `0 10px 40px ${COLORS.light.shadow}`,
47
- transition: "transform 0.2s ease, box-shadow 0.2s ease"
48
- },
49
- floatingButtonHover: {
50
- transform: "translateY(-2px)",
51
- boxShadow: darkMode ? "0 16px 50px rgba(17, 24, 39, 0.55)" : "0 16px 50px rgba(37, 99, 235, 0.45)"
52
- },
53
- backdrop: {
54
- position: "fixed",
55
- inset: 0,
56
- background: "rgba(15, 23, 42, 0.45)",
57
- backdropFilter: "blur(6px)",
58
- animation: "fadeIn 0.12s ease",
59
- zIndex: 2147483646
1
+ const COLORS = {
2
+ light: {
3
+ primary: "#2563EB",
4
+ background: "#f8fafc",
5
+ surface: "#ffffff",
6
+ text: "#111827",
7
+ textLight: "#6b7280",
8
+ border: "rgba(148, 163, 184, 0.35)",
9
+ shadow: "rgba(37, 99, 235, 0.35)",
10
+ buttonText: "#f9fafb",
11
+ hoverBg: "rgba(148, 163, 184, 0.18)",
60
12
  },
61
- modal: {
62
- position: "fixed",
63
- top: "50%",
64
- left: "50%",
65
- transform: "translate(-50%, -50%)",
66
- width: "min(960px, 90vw)",
67
- height: "min(720px, 85vh)",
68
- background: theme.background,
69
- borderRadius: "16px",
70
- border: `1px solid ${theme.border}`,
71
- boxShadow: darkMode ? "0 32px 120px rgba(0, 0, 0, 0.55)" : "0 32px 120px rgba(15, 23, 42, 0.35)",
72
- display: "flex",
73
- flexDirection: "column",
74
- overflow: "hidden",
75
- animation: "slideIn 0.16s ease",
76
- zIndex: 2147483647
13
+ dark: {
14
+ primary: "#111827",
15
+ background: "#09090b",
16
+ surface: "#09090b",
17
+ text: "#e5e7eb",
18
+ textLight: "#9ca3af",
19
+ border: "rgba(63, 63, 70, 0.6)",
20
+ shadow: "rgba(0, 0, 0, 0.55)",
21
+ buttonText: "#e5e7eb",
22
+ hoverBg: "rgba(148, 163, 184, 0.12)",
77
23
  },
78
- dismissButton: {
79
- alignSelf: "flex-end",
80
- margin: "10px 12px 0 0",
81
- background: "transparent",
82
- border: "none",
83
- color: theme.textLight,
84
- cursor: "pointer",
85
- padding: "6px",
86
- borderRadius: "6px",
87
- transition: "background 0.2s ease, color 0.2s ease"
88
- },
89
- dismissButtonHover: {
90
- background: theme.hoverBg,
91
- color: theme.text
92
- },
93
- modalContent: {
94
- flex: 1,
95
- overflow: "hidden",
96
- position: "relative",
97
- background: theme.background
98
- }
99
- };
100
24
  };
101
- var ANIMATION_STYLES = `
25
+ export const getStyles = (darkMode) => {
26
+ const theme = darkMode ? COLORS.dark : COLORS.light;
27
+ return {
28
+ floatingContainer: {
29
+ position: "fixed",
30
+ bottom: "24px",
31
+ right: "24px",
32
+ zIndex: 2147483647,
33
+ },
34
+ floatingButton: {
35
+ width: "42px",
36
+ height: "42px",
37
+ borderRadius: "9999px",
38
+ border: "none",
39
+ background: theme.primary,
40
+ color: theme.buttonText,
41
+ cursor: "pointer",
42
+ display: "flex",
43
+ alignItems: "center",
44
+ justifyContent: "center",
45
+ boxShadow: darkMode
46
+ ? `0 10px 40px ${COLORS.dark.shadow}`
47
+ : `0 10px 40px ${COLORS.light.shadow}`,
48
+ transition: "transform 0.2s ease, box-shadow 0.2s ease",
49
+ },
50
+ floatingButtonHover: {
51
+ transform: "translateY(-2px)",
52
+ boxShadow: darkMode
53
+ ? "0 16px 50px rgba(17, 24, 39, 0.55)"
54
+ : "0 16px 50px rgba(37, 99, 235, 0.45)",
55
+ },
56
+ backdrop: {
57
+ position: "fixed",
58
+ inset: 0,
59
+ background: "rgba(15, 23, 42, 0.45)",
60
+ backdropFilter: "blur(6px)",
61
+ animation: "fadeIn 0.12s ease",
62
+ zIndex: 2147483646,
63
+ },
64
+ modal: {
65
+ position: "fixed",
66
+ top: "50%",
67
+ left: "50%",
68
+ transform: "translate(-50%, -50%)",
69
+ width: "min(960px, 90vw)",
70
+ height: "min(720px, 85vh)",
71
+ background: theme.background,
72
+ borderRadius: "16px",
73
+ border: `1px solid ${theme.border}`,
74
+ boxShadow: darkMode
75
+ ? "0 32px 120px rgba(0, 0, 0, 0.55)"
76
+ : "0 32px 120px rgba(15, 23, 42, 0.35)",
77
+ display: "flex",
78
+ flexDirection: "column",
79
+ overflow: "hidden",
80
+ animation: "slideIn 0.16s ease",
81
+ zIndex: 2147483647,
82
+ },
83
+ dismissButton: {
84
+ alignSelf: "flex-end",
85
+ margin: "10px 12px 0 0",
86
+ background: "transparent",
87
+ border: "none",
88
+ color: theme.textLight,
89
+ cursor: "pointer",
90
+ padding: "6px",
91
+ borderRadius: "6px",
92
+ transition: "background 0.2s ease, color 0.2s ease",
93
+ },
94
+ dismissButtonHover: {
95
+ background: theme.hoverBg,
96
+ color: theme.text,
97
+ },
98
+ modalContent: {
99
+ flex: 1,
100
+ overflow: "hidden",
101
+ position: "relative",
102
+ background: theme.background,
103
+ },
104
+ };
105
+ };
106
+ export const ANIMATION_STYLES = `
102
107
  @keyframes fadeIn {
103
108
  from { opacity: 0; }
104
109
  to { opacity: 1; }
@@ -114,8 +119,4 @@ var ANIMATION_STYLES = `
114
119
  }
115
120
  }
116
121
  `;
117
- export {
118
- ANIMATION_STYLES,
119
- getStyles
120
- };
121
122
  //# sourceMappingURL=DevToolsModal.styles.js.map