@assistant-ui/react-devtools 1.2.19 → 1.2.21
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/DevToolsModal.d.ts +10 -13
- package/dist/DevToolsModal.d.ts.map +1 -1
- package/dist/DevToolsModalImpl.d.ts +3 -5
- package/dist/DevToolsModalImpl.d.ts.map +1 -1
- package/dist/data/createInProcessClient.d.ts +3 -6
- package/dist/data/createInProcessClient.d.ts.map +1 -1
- package/dist/data/projectApi.d.ts +6 -8
- package/dist/data/projectApi.d.ts.map +1 -1
- package/dist/data/projectApi.js +2 -2
- package/dist/data/projectApi.js.map +1 -1
- package/dist/data/types.d.ts +33 -35
- package/dist/data/types.d.ts.map +1 -1
- package/dist/data/useDevToolsClient.d.ts +7 -10
- package/dist/data/useDevToolsClient.d.ts.map +1 -1
- package/dist/index.d.ts +10 -10
- package/dist/index.d.ts.map +1 -0
- package/dist/shell/DevToolsOverlay.d.ts +7 -10
- package/dist/shell/DevToolsOverlay.d.ts.map +1 -1
- package/dist/shell/DevToolsPanel.d.ts +12 -15
- package/dist/shell/DevToolsPanel.d.ts.map +1 -1
- package/dist/shell/ShadowRoot.d.ts +7 -10
- package/dist/shell/ShadowRoot.d.ts.map +1 -1
- package/dist/shell/SplitLayout.d.ts +13 -16
- package/dist/shell/SplitLayout.d.ts.map +1 -1
- package/dist/shell/registry.d.ts +34 -37
- package/dist/shell/registry.d.ts.map +1 -1
- package/dist/shell/tabs/ActivityTab.d.ts +2 -5
- package/dist/shell/tabs/ActivityTab.d.ts.map +1 -1
- package/dist/shell/tabs/ContextTab.d.ts +2 -5
- package/dist/shell/tabs/ContextTab.d.ts.map +1 -1
- package/dist/shell/tabs/RawTab.d.ts +2 -5
- package/dist/shell/tabs/RawTab.d.ts.map +1 -1
- package/dist/shell/tabs/ThreadTab.d.ts +2 -5
- package/dist/shell/tabs/ThreadTab.d.ts.map +1 -1
- package/dist/shell/tabs/navSelection.d.ts +1 -4
- package/dist/shell/tabs/navSelection.d.ts.map +1 -1
- package/dist/styles/panel.generated.d.ts +1 -4
- package/dist/styles/panel.generated.d.ts.map +1 -1
- package/dist/types.d.ts +6 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/common.d.ts +13 -16
- package/dist/utils/common.d.ts.map +1 -1
- package/dist/utils/diff.d.ts +6 -9
- package/dist/utils/diff.d.ts.map +1 -1
- package/dist/utils/serialization.d.ts +7 -10
- package/dist/utils/serialization.d.ts.map +1 -1
- package/dist/utils/serialization.js +17 -0
- package/dist/utils/serialization.js.map +1 -1
- package/dist/utils/toolNormalization.d.ts +14 -17
- package/dist/utils/toolNormalization.d.ts.map +1 -1
- package/dist/utils/unserializable.d.ts +2 -5
- package/dist/utils/unserializable.d.ts.map +1 -1
- package/dist/views/activity/EventLogRow.d.ts +12 -15
- package/dist/views/activity/EventLogRow.d.ts.map +1 -1
- package/dist/views/activity/EventStreamPane.d.ts +3 -6
- package/dist/views/activity/EventStreamPane.d.ts.map +1 -1
- package/dist/views/activity/OrphansPane.d.ts +3 -6
- package/dist/views/activity/OrphansPane.d.ts.map +1 -1
- package/dist/views/activity/RunDetailPane.d.ts +3 -6
- package/dist/views/activity/RunDetailPane.d.ts.map +1 -1
- package/dist/views/activity/activityNodes.d.ts +29 -32
- package/dist/views/activity/activityNodes.d.ts.map +1 -1
- package/dist/views/activity/index.d.ts +7 -6
- package/dist/views/activity/index.d.ts.map +1 -0
- package/dist/views/attachments/AttachmentList.d.ts +5 -8
- package/dist/views/attachments/AttachmentList.d.ts.map +1 -1
- package/dist/views/attachments/MediaPartView.d.ts +10 -13
- package/dist/views/attachments/MediaPartView.d.ts.map +1 -1
- package/dist/views/attachments/formatBytes.d.ts +3 -6
- package/dist/views/attachments/formatBytes.d.ts.map +1 -1
- package/dist/views/attachments/index.d.ts +5 -5
- package/dist/views/attachments/index.d.ts.map +1 -0
- package/dist/views/attachments/parseAttachment.d.ts +3 -6
- package/dist/views/attachments/parseAttachment.d.ts.map +1 -1
- package/dist/views/attachments/types.d.ts +12 -15
- package/dist/views/attachments/types.d.ts.map +1 -1
- package/dist/views/context/ContextDetail.d.ts +5 -8
- package/dist/views/context/ContextDetail.d.ts.map +1 -1
- package/dist/views/context/ToolUIsView.d.ts +2 -5
- package/dist/views/context/ToolUIsView.d.ts.map +1 -1
- package/dist/views/context/contextNodes.d.ts +21 -24
- package/dist/views/context/contextNodes.d.ts.map +1 -1
- package/dist/views/context/index.d.ts +5 -4
- package/dist/views/context/index.d.ts.map +1 -0
- package/dist/views/mcp/McpView.d.ts +3 -6
- package/dist/views/mcp/McpView.d.ts.map +1 -1
- package/dist/views/mcp/index.d.ts +2 -2
- package/dist/views/mcp/index.d.ts.map +1 -0
- package/dist/views/mcp/parse.d.ts +2 -5
- package/dist/views/mcp/parse.d.ts.map +1 -1
- package/dist/views/mcp/types.d.ts +15 -18
- package/dist/views/mcp/types.d.ts.map +1 -1
- package/dist/views/message/ChainOfThought.d.ts +3 -6
- package/dist/views/message/ChainOfThought.d.ts.map +1 -1
- package/dist/views/message/MessageDetailPane.d.ts +4 -7
- package/dist/views/message/MessageDetailPane.d.ts.map +1 -1
- package/dist/views/message/MessageItem.d.ts +5 -8
- package/dist/views/message/MessageItem.d.ts.map +1 -1
- package/dist/views/message/MessageList.d.ts +4 -7
- package/dist/views/message/MessageList.d.ts.map +1 -1
- package/dist/views/message/MessageMetrics.d.ts +3 -6
- package/dist/views/message/MessageMetrics.d.ts.map +1 -1
- package/dist/views/message/MessageTimeline.d.ts +7 -10
- package/dist/views/message/MessageTimeline.d.ts.map +1 -1
- package/dist/views/message/PartDisclosure.d.ts +6 -9
- package/dist/views/message/PartDisclosure.d.ts.map +1 -1
- package/dist/views/message/PartView.d.ts +4 -7
- package/dist/views/message/PartView.d.ts.map +1 -1
- package/dist/views/message/RoleLabel.d.ts +3 -6
- package/dist/views/message/RoleLabel.d.ts.map +1 -1
- package/dist/views/message/StatusBadge.d.ts +7 -10
- package/dist/views/message/StatusBadge.d.ts.map +1 -1
- package/dist/views/message/ToolCallView.d.ts +4 -7
- package/dist/views/message/ToolCallView.d.ts.map +1 -1
- package/dist/views/message/TtftBar.d.ts +3 -6
- package/dist/views/message/TtftBar.d.ts.map +1 -1
- package/dist/views/message/index.d.ts +6 -6
- package/dist/views/message/index.d.ts.map +1 -0
- package/dist/views/message/messagePlainText.d.ts +2 -5
- package/dist/views/message/messagePlainText.d.ts.map +1 -1
- package/dist/views/message/parse.d.ts +5 -8
- package/dist/views/message/parse.d.ts.map +1 -1
- package/dist/views/message/types.d.ts +108 -110
- package/dist/views/message/types.d.ts.map +1 -1
- package/dist/views/model-context/ModelContextView.d.ts +9 -12
- package/dist/views/model-context/ModelContextView.d.ts.map +1 -1
- package/dist/views/nav.d.ts +10 -13
- package/dist/views/nav.d.ts.map +1 -1
- package/dist/views/raw/RawDetail.d.ts +5 -8
- package/dist/views/raw/RawDetail.d.ts.map +1 -1
- package/dist/views/raw/index.d.ts +4 -3
- package/dist/views/raw/index.d.ts.map +1 -0
- package/dist/views/raw/rawNodes.d.ts +13 -16
- package/dist/views/raw/rawNodes.d.ts.map +1 -1
- package/dist/views/raw/statePreview.d.ts +1 -4
- package/dist/views/raw/statePreview.d.ts.map +1 -1
- package/dist/views/runs/PayloadDiff.d.ts +3 -6
- package/dist/views/runs/PayloadDiff.d.ts.map +1 -1
- package/dist/views/runs/parse.d.ts +3 -6
- package/dist/views/runs/parse.d.ts.map +1 -1
- package/dist/views/runs/types.d.ts +18 -21
- package/dist/views/runs/types.d.ts.map +1 -1
- package/dist/views/scopes/ScopesView.d.ts +2 -5
- package/dist/views/scopes/ScopesView.d.ts.map +1 -1
- package/dist/views/scopes/index.d.ts +2 -2
- package/dist/views/scopes/index.d.ts.map +1 -0
- package/dist/views/scopes/parse.d.ts +2 -5
- package/dist/views/scopes/parse.d.ts.map +1 -1
- package/dist/views/scopes/types.d.ts +5 -8
- package/dist/views/scopes/types.d.ts.map +1 -1
- package/dist/views/thread/ComposerAttachments.d.ts +3 -6
- package/dist/views/thread/ComposerAttachments.d.ts.map +1 -1
- package/dist/views/thread/ComposerFlags.d.ts +3 -6
- package/dist/views/thread/ComposerFlags.d.ts.map +1 -1
- package/dist/views/thread/ComposerQueue.d.ts +3 -6
- package/dist/views/thread/ComposerQueue.d.ts.map +1 -1
- package/dist/views/thread/ConversationList.d.ts +7 -10
- package/dist/views/thread/ConversationList.d.ts.map +1 -1
- package/dist/views/thread/ConversationStatusDot.d.ts +12 -15
- package/dist/views/thread/ConversationStatusDot.d.ts.map +1 -1
- package/dist/views/thread/ThreadDetails.d.ts +4 -7
- package/dist/views/thread/ThreadDetails.d.ts.map +1 -1
- package/dist/views/thread/Transcript.d.ts +8 -11
- package/dist/views/thread/Transcript.d.ts.map +1 -1
- package/dist/views/thread/index.d.ts +10 -10
- package/dist/views/thread/index.d.ts.map +1 -0
- package/dist/views/thread/resolve.d.ts +3 -6
- package/dist/views/thread/resolve.d.ts.map +1 -1
- package/dist/views/thread/types.d.ts +40 -42
- package/dist/views/thread/types.d.ts.map +1 -1
- package/dist/views/thread/utils.d.ts +5 -8
- package/dist/views/thread/utils.d.ts.map +1 -1
- package/dist/views/ui/CenteredMessage.d.ts +3 -6
- package/dist/views/ui/CenteredMessage.d.ts.map +1 -1
- package/dist/views/ui/Chip.d.ts +4 -7
- package/dist/views/ui/Chip.d.ts.map +1 -1
- package/dist/views/ui/ControlButton.d.ts +2 -5
- package/dist/views/ui/ControlButton.d.ts.map +1 -1
- package/dist/views/ui/CopyButton.d.ts +7 -10
- package/dist/views/ui/CopyButton.d.ts.map +1 -1
- package/dist/views/ui/EmptyState.d.ts +3 -6
- package/dist/views/ui/EmptyState.d.ts.map +1 -1
- package/dist/views/ui/InfoCard.d.ts +6 -9
- package/dist/views/ui/InfoCard.d.ts.map +1 -1
- package/dist/views/ui/JSONTree.d.ts +4 -7
- package/dist/views/ui/JSONTree.d.ts.map +1 -1
- package/dist/views/ui/PaneHeader.d.ts +8 -11
- package/dist/views/ui/PaneHeader.d.ts.map +1 -1
- package/dist/views/ui/RailTime.d.ts +3 -6
- package/dist/views/ui/RailTime.d.ts.map +1 -1
- package/dist/views/ui/SectionLabel.d.ts +3 -6
- package/dist/views/ui/SectionLabel.d.ts.map +1 -1
- package/dist/views/ui/SelectableRow.d.ts +8 -11
- package/dist/views/ui/SelectableRow.d.ts.map +1 -1
- package/dist/views/ui/Sparkline.d.ts +3 -6
- package/dist/views/ui/Sparkline.d.ts.map +1 -1
- package/dist/views/ui/SummaryItem.d.ts +6 -9
- package/dist/views/ui/SummaryItem.d.ts.map +1 -1
- package/dist/views/ui/ToneBadge.d.ts +7 -10
- package/dist/views/ui/ToneBadge.d.ts.map +1 -1
- package/dist/views/ui/badgeTone.d.ts +13 -16
- package/dist/views/ui/badgeTone.d.ts.map +1 -1
- package/dist/views/ui/getInlineJson.d.ts +1 -4
- package/dist/views/ui/getInlineJson.d.ts.map +1 -1
- package/dist/views/ui/index.d.ts +17 -16
- package/dist/views/ui/index.d.ts.map +1 -0
- package/dist/views/ui/useCopyToClipboard.d.ts +4 -7
- package/dist/views/ui/useCopyToClipboard.d.ts.map +1 -1
- package/package.json +14 -13
- package/src/data/projectApi.test.ts +41 -0
- package/src/data/projectApi.ts +2 -2
- package/src/utils/serialization.test.ts +81 -0
- package/src/utils/serialization.ts +36 -0
package/dist/DevToolsModal.d.ts
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
client?: DevToolsClient;
|
|
1
|
+
import type { DevToolsPanelPlugin } from "./shell/registry.js";
|
|
2
|
+
import type { DevToolsClient } from "./data/types.js";
|
|
3
|
+
export interface DevToolsModalProps {
|
|
4
|
+
/** Extra inspector tabs appended after the builtins. */
|
|
5
|
+
plugins?: DevToolsPanelPlugin[];
|
|
6
|
+
/** Force a theme. Defaults to "system", which follows the host `.dark` class. */
|
|
7
|
+
theme?: "light" | "dark" | "system";
|
|
8
|
+
/** Data source. Defaults to the in-process DevToolsHooks client. */
|
|
9
|
+
client?: DevToolsClient;
|
|
11
10
|
}
|
|
12
11
|
/**
|
|
13
12
|
* Dev-only. In production the body returns null before the lazy panel chunk is
|
|
14
13
|
* ever requested, so the panel and its compiled styles stay out of the
|
|
15
14
|
* production bundle (the dynamic import is also code-split).
|
|
16
15
|
*/
|
|
17
|
-
declare const DevToolsModal: (props?: DevToolsModalProps) => import("react").JSX.Element | null;
|
|
18
|
-
//#endregion
|
|
19
|
-
export { DevToolsModal, DevToolsModalProps };
|
|
16
|
+
export declare const DevToolsModal: (props?: DevToolsModalProps) => import("react").JSX.Element | null;
|
|
20
17
|
//# sourceMappingURL=DevToolsModal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsModal.d.ts","
|
|
1
|
+
{"version":3,"file":"DevToolsModal.d.ts","sourceRoot":"","sources":["../src/DevToolsModal.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,4BAAyB;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAqB;AAEnD,MAAM,WAAW,kBAAkB;IACjC,wDAAwD;IACxD,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC,iFAAiF;IACjF,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACpC,oEAAoE;IACpE,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAID;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,QAAO,kBAAuB,uCAa3D,CAAC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { DevToolsModalProps } from "./DevToolsModal.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
//#endregion
|
|
5
|
-
export { DevToolsModalImpl as default };
|
|
1
|
+
import type { DevToolsModalProps } from "./DevToolsModal.js";
|
|
2
|
+
declare const DevToolsModalImpl: ({ plugins, theme, client, }: DevToolsModalProps) => import("react").JSX.Element;
|
|
3
|
+
export default DevToolsModalImpl;
|
|
6
4
|
//# sourceMappingURL=DevToolsModalImpl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsModalImpl.d.ts","
|
|
1
|
+
{"version":3,"file":"DevToolsModalImpl.d.ts","sourceRoot":"","sources":["../src/DevToolsModalImpl.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,2BAAwB;AA8B1D,QAAA,MAAM,iBAAiB,GAAI,6BAIxB,kBAAkB,gCAkBpB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import { DevToolsClient } from "./types.js";
|
|
2
|
-
//#region src/data/createInProcessClient.d.ts
|
|
1
|
+
import { type DevToolsClient } from "./types.js";
|
|
3
2
|
/**
|
|
4
3
|
* The default transport: reads the in-process DevToolsHooks registry and
|
|
5
4
|
* re-projects it on every change.
|
|
6
5
|
*
|
|
7
6
|
* Projection runs inside the subscribe/change callbacks and getSnapshot returns the cached result, because useSyncExternalStore requires a referentially stable snapshot and rebuilding it per call would loop.
|
|
8
7
|
*/
|
|
9
|
-
declare const createInProcessClient: () => DevToolsClient;
|
|
8
|
+
export declare const createInProcessClient: () => DevToolsClient;
|
|
10
9
|
/** Shared default client used by DevToolsModal and DevToolsPanel. */
|
|
11
|
-
declare const inProcessClient: DevToolsClient;
|
|
12
|
-
//#endregion
|
|
13
|
-
export { createInProcessClient, inProcessClient };
|
|
10
|
+
export declare const inProcessClient: DevToolsClient;
|
|
14
11
|
//# sourceMappingURL=createInProcessClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createInProcessClient.d.ts","
|
|
1
|
+
{"version":3,"file":"createInProcessClient.d.ts","sourceRoot":"","sources":["../../src/data/createInProcessClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,cAAc,EAEpB,mBAAgB;AAEjB;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAO,cA6CxC,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,eAAe,gBAA0B,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
//#region src/data/projectApi.d.ts
|
|
1
|
+
import type { AssistantClient } from "@assistant-ui/react";
|
|
2
|
+
import type { ApiInfo, EventLogEntry } from "./types.js";
|
|
4
3
|
interface DevToolsApiEntry {
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
api: Partial<AssistantClient>;
|
|
5
|
+
logs: ReadonlyArray<EventLogEntry>;
|
|
7
6
|
}
|
|
8
7
|
/**
|
|
9
8
|
* Projects a live DevToolsHooks api entry into the plain, render-ready shape the
|
|
@@ -15,7 +14,6 @@ interface DevToolsApiEntry {
|
|
|
15
14
|
* renderers cannot crash on circular references or non-serializable values;
|
|
16
15
|
* `log.time` is kept as a Date for the clock formatter.
|
|
17
16
|
*/
|
|
18
|
-
declare const projectApi: (apiId: number, entry: DevToolsApiEntry) => ApiInfo;
|
|
19
|
-
|
|
20
|
-
export { projectApi };
|
|
17
|
+
export declare const projectApi: (apiId: number, entry: DevToolsApiEntry) => ApiInfo;
|
|
18
|
+
export {};
|
|
21
19
|
//# sourceMappingURL=projectApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectApi.d.ts","
|
|
1
|
+
{"version":3,"file":"projectApi.d.ts","sourceRoot":"","sources":["../../src/data/projectApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO3D,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAgB;AAEtD,UAAU,gBAAgB;IACxB,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9B,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CACpC;AA8FD;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,OAAO,gBAAgB,KAAG,OA0DnE,CAAC"}
|
package/dist/data/projectApi.js
CHANGED
|
@@ -34,7 +34,7 @@ const collectThreadSnapshots = (entry, state) => {
|
|
|
34
34
|
if (!assistantRuntime) return void 0;
|
|
35
35
|
const threadIds = [...isStringArray(threadsState.threadIds), ...isStringArray(threadsState.archivedThreadIds)];
|
|
36
36
|
if (threadIds.length === 0) return void 0;
|
|
37
|
-
const snapshots =
|
|
37
|
+
const snapshots = Object.create(null);
|
|
38
38
|
for (const threadId of threadIds) try {
|
|
39
39
|
const threadRuntime = assistantRuntime.threads.getById(threadId);
|
|
40
40
|
const threadState = threadRuntime.getState();
|
|
@@ -48,7 +48,7 @@ const collectThreadSnapshots = (entry, state) => {
|
|
|
48
48
|
composer: threadRuntime.composer.getState()
|
|
49
49
|
});
|
|
50
50
|
} catch {}
|
|
51
|
-
return Object.keys(snapshots).length > 0 ? snapshots : void 0;
|
|
51
|
+
return Object.keys(snapshots).length > 0 ? { ...snapshots } : void 0;
|
|
52
52
|
};
|
|
53
53
|
/**
|
|
54
54
|
* Projects a live DevToolsHooks api entry into the plain, render-ready shape the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectApi.js","names":["AssistantClient","isRecord","isStringArray","sanitizeAndRedact","sanitizeForMessage","serializeModelContext","ApiInfo","EventLogEntry","DevToolsApiEntry","api","Partial","logs","ReadonlyArray","readMethods","scopeValue","Object","keys","filter","key","Record","ThreadsClientMethods","__internal_getAssistantRuntime","threads","getById","threadId","getState","messages","isRunning","isLoading","isDisabled","suggestions","capabilities","composer","collectThreadSnapshots","entry","state","threadsState","undefined","threadsScope","threadsClient","assistantRuntime","threadIds","archivedThreadIds","length","snapshots","threadRuntime","threadState","projectApi","apiId","scopes","Array","name","source","query","methods","scope","entries","push","modelContext","thread","getModelContext","sanitizedState","threadSnapshots","id","map","log","time","event","data"],"sources":["../../src/data/projectApi.ts"],"sourcesContent":["import type { AssistantClient } from \"@assistant-ui/react\";\nimport { isRecord, isStringArray } from \"../utils/common\";\nimport {\n sanitizeAndRedact,\n sanitizeForMessage,\n serializeModelContext,\n} from \"../utils/serialization\";\nimport type { ApiInfo, EventLogEntry } from \"./types\";\n\ninterface DevToolsApiEntry {\n api: Partial<AssistantClient>;\n logs: ReadonlyArray<EventLogEntry>;\n}\n\n/**\n * Lists the method names of a client proxy. The client proxy throws from its\n * `getOwnPropertyDescriptor` trap, so `Object.keys` is best-effort and isolated\n * from state extraction.\n */\nconst readMethods = (scopeValue: unknown): string[] => {\n if (\n !scopeValue ||\n (typeof scopeValue !== \"object\" && typeof scopeValue !== \"function\")\n )\n return [];\n try {\n return Object.keys(scopeValue).filter(\n (key) =>\n typeof (scopeValue as Record<string, unknown>)[key] === \"function\",\n );\n } catch {\n return [];\n }\n};\n\ntype ThreadsClientMethods = {\n __internal_getAssistantRuntime?: () => {\n threads: {\n getById: (threadId: string) => {\n getState: () => {\n messages: unknown;\n isRunning?: boolean;\n isLoading?: boolean;\n isDisabled?: boolean;\n suggestions: unknown;\n capabilities: unknown;\n };\n composer: { getState: () => unknown };\n };\n };\n };\n};\n\n/**\n * Reads cached thread states for every id in the thread list. Only threads whose\n * runtime has been mounted (visited in the app) return data; unvisited threads\n * are omitted so DevTools can still list them from `state.threads.threadItems`.\n */\nconst collectThreadSnapshots = (\n entry: DevToolsApiEntry,\n state: Record<string, unknown>,\n): Record<string, unknown> | undefined => {\n const threadsState = state.threads;\n if (!isRecord(threadsState)) return undefined;\n\n const threadsScope = entry.api.threads;\n if (typeof threadsScope !== \"function\") return undefined;\n\n let threadsClient: ThreadsClientMethods;\n try {\n threadsClient = threadsScope() as ThreadsClientMethods;\n } catch {\n return undefined;\n }\n\n const assistantRuntime = threadsClient.__internal_getAssistantRuntime?.();\n if (!assistantRuntime) return undefined;\n\n const threadIds = [\n ...isStringArray(threadsState.threadIds),\n ...isStringArray(threadsState.archivedThreadIds),\n ];\n if (threadIds.length === 0) return undefined;\n\n const snapshots: Record<string, unknown> =
|
|
1
|
+
{"version":3,"file":"projectApi.js","names":["AssistantClient","isRecord","isStringArray","sanitizeAndRedact","sanitizeForMessage","serializeModelContext","ApiInfo","EventLogEntry","DevToolsApiEntry","api","Partial","logs","ReadonlyArray","readMethods","scopeValue","Object","keys","filter","key","Record","ThreadsClientMethods","__internal_getAssistantRuntime","threads","getById","threadId","getState","messages","isRunning","isLoading","isDisabled","suggestions","capabilities","composer","collectThreadSnapshots","entry","state","threadsState","undefined","threadsScope","threadsClient","assistantRuntime","threadIds","archivedThreadIds","length","snapshots","create","threadRuntime","threadState","projectApi","apiId","scopes","Array","name","source","query","methods","scope","entries","push","modelContext","thread","getModelContext","sanitizedState","threadSnapshots","id","map","log","time","event","data"],"sources":["../../src/data/projectApi.ts"],"sourcesContent":["import type { AssistantClient } from \"@assistant-ui/react\";\nimport { isRecord, isStringArray } from \"../utils/common\";\nimport {\n sanitizeAndRedact,\n sanitizeForMessage,\n serializeModelContext,\n} from \"../utils/serialization\";\nimport type { ApiInfo, EventLogEntry } from \"./types\";\n\ninterface DevToolsApiEntry {\n api: Partial<AssistantClient>;\n logs: ReadonlyArray<EventLogEntry>;\n}\n\n/**\n * Lists the method names of a client proxy. The client proxy throws from its\n * `getOwnPropertyDescriptor` trap, so `Object.keys` is best-effort and isolated\n * from state extraction.\n */\nconst readMethods = (scopeValue: unknown): string[] => {\n if (\n !scopeValue ||\n (typeof scopeValue !== \"object\" && typeof scopeValue !== \"function\")\n )\n return [];\n try {\n return Object.keys(scopeValue).filter(\n (key) =>\n typeof (scopeValue as Record<string, unknown>)[key] === \"function\",\n );\n } catch {\n return [];\n }\n};\n\ntype ThreadsClientMethods = {\n __internal_getAssistantRuntime?: () => {\n threads: {\n getById: (threadId: string) => {\n getState: () => {\n messages: unknown;\n isRunning?: boolean;\n isLoading?: boolean;\n isDisabled?: boolean;\n suggestions: unknown;\n capabilities: unknown;\n };\n composer: { getState: () => unknown };\n };\n };\n };\n};\n\n/**\n * Reads cached thread states for every id in the thread list. Only threads whose\n * runtime has been mounted (visited in the app) return data; unvisited threads\n * are omitted so DevTools can still list them from `state.threads.threadItems`.\n */\nconst collectThreadSnapshots = (\n entry: DevToolsApiEntry,\n state: Record<string, unknown>,\n): Record<string, unknown> | undefined => {\n const threadsState = state.threads;\n if (!isRecord(threadsState)) return undefined;\n\n const threadsScope = entry.api.threads;\n if (typeof threadsScope !== \"function\") return undefined;\n\n let threadsClient: ThreadsClientMethods;\n try {\n threadsClient = threadsScope() as ThreadsClientMethods;\n } catch {\n return undefined;\n }\n\n const assistantRuntime = threadsClient.__internal_getAssistantRuntime?.();\n if (!assistantRuntime) return undefined;\n\n const threadIds = [\n ...isStringArray(threadsState.threadIds),\n ...isStringArray(threadsState.archivedThreadIds),\n ];\n if (threadIds.length === 0) return undefined;\n\n const snapshots: Record<string, unknown> = Object.create(null);\n for (const threadId of threadIds) {\n try {\n const threadRuntime = assistantRuntime.threads.getById(threadId);\n const threadState = threadRuntime.getState();\n snapshots[threadId] = sanitizeForMessage({\n messages: threadState.messages,\n isRunning: threadState.isRunning,\n isLoading: threadState.isLoading,\n isDisabled: threadState.isDisabled,\n suggestions: threadState.suggestions,\n capabilities: threadState.capabilities,\n composer: threadRuntime.composer.getState(),\n });\n } catch {\n // Thread runtime not mounted yet (never opened in the app).\n }\n }\n\n return Object.keys(snapshots).length > 0 ? { ...snapshots } : undefined;\n};\n\n/**\n * Projects a live DevToolsHooks api entry into the plain, render-ready shape the\n * views consume. This is the in-process equivalent of the old\n * DevToolsHost.sendUpdate(): it walks the scope accessors for root-scope state\n * and the scope graph, normalizes the model context, and redacts credentials.\n *\n * `state` and each `log.data` are passed through sanitizeForMessage so the JSON\n * renderers cannot crash on circular references or non-serializable values;\n * `log.time` is kept as a Date for the clock formatter.\n */\nexport const projectApi = (apiId: number, entry: DevToolsApiEntry): ApiInfo => {\n const state: Record<string, unknown> = {};\n const scopes: Array<{\n name: string;\n source: string | null;\n query: Record<string, unknown> | null;\n methods: string[];\n }> = [];\n\n for (const [name, scope] of Object.entries(entry.api)) {\n if (typeof scope !== \"function\" || !(\"source\" in scope)) continue;\n\n let methods: string[] = [];\n try {\n const scopeValue = scope();\n if (scope.source === \"root\") {\n state[name] =\n (scopeValue as { getState?: () => unknown })?.getState?.() ??\n scopeValue;\n }\n methods = readMethods(scopeValue);\n } catch {\n // scope() may throw for derived scopes before the client is mounted.\n }\n\n scopes.push({\n name,\n source: scope.source,\n query: scope.query,\n methods,\n });\n }\n\n let modelContext: ApiInfo[\"modelContext\"];\n try {\n modelContext = serializeModelContext(\n entry.api.thread?.().getModelContext(),\n );\n } catch {\n // A throwing thread()/getModelContext() should not drop the whole api;\n // show partial data (state, scopes, logs) without the model context.\n }\n\n const sanitizedState = sanitizeForMessage(state) as Record<string, unknown>;\n const threadSnapshots = collectThreadSnapshots(entry, sanitizedState);\n\n return {\n id: apiId,\n state: sanitizedState,\n logs: entry.logs.map((log) => ({\n time: log.time,\n event: log.event,\n data: sanitizeForMessage(log.data),\n })),\n modelContext,\n scopes: sanitizeAndRedact(scopes),\n ...(threadSnapshots ? { threadSnapshots } : {}),\n };\n};\n"],"mappings":";;;;;;;;AAmBA,MAAMa,eAAeC,eAAkC;CACrD,IACE,CAACA,cACA,OAAOA,eAAe,YAAY,OAAOA,eAAe,YAEzD,OAAO,CAAA;CACT,IAAI;EACF,OAAOC,OAAOC,KAAKF,UAAU,CAAC,CAACG,QAC5BC,QACC,OAAQJ,WAAuCI,SAAS,UAC5D;CACF,QAAQ;EACN,OAAO,CAAA;CACT;AACF;;;;;;AAyBA,MAAMe,0BACJC,OACAC,UACwC;CACxC,MAAMC,eAAeD,MAAMb;CAC3B,IAAI,CAACrB,SAASmC,YAAY,GAAG,OAAOC,KAAAA;CAEpC,MAAMC,eAAeJ,MAAMzB,IAAIa;CAC/B,IAAI,OAAOgB,iBAAiB,YAAY,OAAOD,KAAAA;CAE/C,IAAIE;CACJ,IAAI;EACFA,gBAAgBD,aAAa;CAC/B,QAAQ;EACN;CACF;CAEA,MAAME,mBAAmBD,cAAclB,iCAAiC;CACxE,IAAI,CAACmB,kBAAkB,OAAOH,KAAAA;CAE9B,MAAMI,YAAY,CAChB,GAAGvC,cAAckC,aAAaK,SAAS,GACvC,GAAGvC,cAAckC,aAAaM,iBAAiB,CAAC;CAElD,IAAID,UAAUE,WAAW,GAAG,OAAON,KAAAA;CAEnC,MAAMO,YAAqC7B,OAAO8B,OAAO,IAAI;CAC7D,KAAK,MAAMrB,YAAYiB,WACrB,IAAI;EACF,MAAMK,gBAAgBN,iBAAiBlB,QAAQC,QAAQC,QAAQ;EAC/D,MAAMuB,cAAcD,cAAcrB,SAAS;EAC3CmB,UAAUpB,YAAYpB,mBAAmB;GACvCsB,UAAUqB,YAAYrB;GACtBC,WAAWoB,YAAYpB;GACvBC,WAAWmB,YAAYnB;GACvBC,YAAYkB,YAAYlB;GACxBC,aAAaiB,YAAYjB;GACzBC,cAAcgB,YAAYhB;GAC1BC,UAAUc,cAAcd,SAASP,SAAS;EAC5C,CAAC;CACH,QAAQ,CACN;CAIJ,OAAOV,OAAOC,KAAK4B,SAAS,CAAC,CAACD,SAAS,IAAI,EAAE,GAAGC,UAAU,IAAIP,KAAAA;AAChE;;;;;;;;;;;AAYA,MAAaW,cAAcC,OAAef,UAAqC;CAC7E,MAAMC,QAAiC,CAAC;CACxC,MAAMe,SAKD,CAAA;CAEL,KAAK,MAAM,CAACE,MAAMI,UAAUzC,OAAO0C,QAAQvB,MAAMzB,GAAG,GAAG;EACrD,IAAI,OAAO+C,UAAU,cAAc,EAAE,YAAYA,QAAQ;EAEzD,IAAID,UAAoB,CAAA;EACxB,IAAI;GACF,MAAMzC,aAAa0C,MAAM;GACzB,IAAIA,MAAMH,WAAW,QACnBlB,MAAMiB,QACHtC,YAA6CW,WAAW,KACzDX;GAEJyC,UAAU1C,YAAYC,UAAU;EAClC,QAAQ,CACN;EAGFoC,OAAOQ,KAAK;GACVN;GACAC,QAAQG,MAAMH;GACdC,OAAOE,MAAMF;GACbC;EACF,CAAC;CACH;CAEA,IAAII;CACJ,IAAI;EACFA,eAAetD,sBACb6B,MAAMzB,IAAImD,SAAS,CAAC,CAACC,gBAAgB,CACvC;CACF,QAAQ,CAEN;CAGF,MAAMC,iBAAiB1D,mBAAmB+B,KAAK;CAC/C,MAAM4B,kBAAkB9B,uBAAuBC,OAAO4B,cAAc;CAEpE,OAAO;EACLE,IAAIf;EACJd,OAAO2B;EACPnD,MAAMuB,MAAMvB,KAAKsD,KAAKC,SAAS;GAC7BC,MAAMD,IAAIC;GACVC,OAAOF,IAAIE;GACXC,MAAMjE,mBAAmB8D,IAAIG,IAAI;EACnC,EAAE;EACFV;EACAT,QAAQ/C,kBAAkB+C,MAAM;EAChC,GAAIa,kBAAkB,EAAEA,gBAAgB,IAAI,CAAC;CAC/C;AACF"}
|
package/dist/data/types.d.ts
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import { SerializedModelContext } from "../types.js";
|
|
2
|
-
|
|
3
|
-
interface EventLogEntry {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import type { SerializedModelContext } from "../types.js";
|
|
2
|
+
export type { SerializedModelContext } from "../types.js";
|
|
3
|
+
export interface EventLogEntry {
|
|
4
|
+
readonly time: Date;
|
|
5
|
+
readonly event: string;
|
|
6
|
+
readonly data: unknown;
|
|
7
7
|
}
|
|
8
|
-
interface ApiInfo {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
8
|
+
export interface ApiInfo {
|
|
9
|
+
id: number;
|
|
10
|
+
state: Record<string, unknown>;
|
|
11
|
+
logs: EventLogEntry[];
|
|
12
|
+
modelContext?: SerializedModelContext | undefined;
|
|
13
|
+
scopes?: unknown;
|
|
14
|
+
/**
|
|
15
|
+
* Cached thread states keyed by thread id. Populated for threads whose runtime
|
|
16
|
+
* has been mounted (visited in the app). Unvisited threads only appear in
|
|
17
|
+
* `state.threads.threadItems`.
|
|
18
|
+
*/
|
|
19
|
+
threadSnapshots?: Readonly<Record<string, unknown>>;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* A JSON-safe view of every inspected instance. The map values are stable until
|
|
23
23
|
* the next change so it can be returned directly from useSyncExternalStore.
|
|
24
24
|
*/
|
|
25
|
-
interface DevToolsSnapshot {
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
export interface DevToolsSnapshot {
|
|
26
|
+
apiIds: number[];
|
|
27
|
+
byId: ReadonlyMap<number, ApiInfo>;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* The transport between the data source and the panel UI. The default
|
|
@@ -32,20 +32,18 @@ interface DevToolsSnapshot {
|
|
|
32
32
|
* depends on this interface, so the same UI can be driven by a postMessage
|
|
33
33
|
* bridge, a browser-extension relay, a remote socket, or a fixture for tests.
|
|
34
34
|
*/
|
|
35
|
-
interface DevToolsClient {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
35
|
+
export interface DevToolsClient {
|
|
36
|
+
/** Subscribe to snapshot changes; returns an unsubscribe. */
|
|
37
|
+
subscribe(listener: () => void): () => void;
|
|
38
|
+
/** The current snapshot. Must return a stable reference until it changes. */
|
|
39
|
+
getSnapshot(): DevToolsSnapshot;
|
|
40
|
+
/** Snapshot used during SSR/hydration. Defaults to an empty snapshot. */
|
|
41
|
+
getServerSnapshot?(): DevToolsSnapshot;
|
|
42
|
+
/** Clears the buffered event log for an instance. */
|
|
43
|
+
clearEvents(apiId: number): void;
|
|
44
|
+
/** Switches the inspected instance to a thread by id, when supported. */
|
|
45
|
+
switchToThread?(apiId: number, threadId: string): void | Promise<void>;
|
|
46
46
|
}
|
|
47
47
|
/** Shared stable empty snapshot identity for the empty/server state. */
|
|
48
|
-
declare const EMPTY_SNAPSHOT: DevToolsSnapshot;
|
|
49
|
-
//#endregion
|
|
50
|
-
export { ApiInfo, DevToolsClient, DevToolsSnapshot, EMPTY_SNAPSHOT, EventLogEntry, type SerializedModelContext };
|
|
48
|
+
export declare const EMPTY_SNAPSHOT: DevToolsSnapshot;
|
|
51
49
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/data/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAiB;AAEvD,YAAY,EAAE,sBAAsB,EAAE,oBAAiB;AAEvD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,6EAA6E;IAC7E,WAAW,IAAI,gBAAgB,CAAC;IAChC,yEAAyE;IACzE,iBAAiB,CAAC,IAAI,gBAAgB,CAAC;IACvC,qDAAqD;IACrD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yEAAyE;IACzE,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AAED,wEAAwE;AACxE,eAAO,MAAM,cAAc,EAAE,gBAAkD,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { ApiInfo, DevToolsClient } from "./types.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
switchToThread: (apiId: number, threadId: string) => void | Promise<void>;
|
|
1
|
+
import { type ApiInfo, type DevToolsClient } from "./types.js";
|
|
2
|
+
export interface DevToolsClientResult {
|
|
3
|
+
apiIds: number[];
|
|
4
|
+
selected: ApiInfo | undefined;
|
|
5
|
+
clearEvents: (apiId: number) => void;
|
|
6
|
+
switchToThread: (apiId: number, threadId: string) => void | Promise<void>;
|
|
8
7
|
}
|
|
9
8
|
/**
|
|
10
9
|
* Reads a DevToolsClient snapshot and resolves the selected instance. The panel
|
|
@@ -12,7 +11,5 @@ interface DevToolsClientResult {
|
|
|
12
11
|
* touching the UI. Pass a stable client reference (the default in-process client
|
|
13
12
|
* is a module singleton; memoize custom clients).
|
|
14
13
|
*/
|
|
15
|
-
declare const useDevToolsClient: (selectedApiId: number | null, client?: DevToolsClient) => DevToolsClientResult;
|
|
16
|
-
//#endregion
|
|
17
|
-
export { DevToolsClientResult, useDevToolsClient };
|
|
14
|
+
export declare const useDevToolsClient: (selectedApiId: number | null, client?: DevToolsClient) => DevToolsClientResult;
|
|
18
15
|
//# sourceMappingURL=useDevToolsClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDevToolsClient.d.ts","
|
|
1
|
+
{"version":3,"file":"useDevToolsClient.d.ts","sourceRoot":"","sources":["../../src/data/useDevToolsClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,mBAAgB;AAE5E,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,eAAe,MAAM,GAAG,IAAI,EAC5B,SAAQ,cAAgC,KACvC,oBA2CF,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
export { DevToolsModal, type DevToolsModalProps } from "./DevToolsModal.js";
|
|
2
|
+
export { DevToolsPanel, type DevToolsPanelProps } from "./shell/DevToolsPanel.js";
|
|
3
|
+
export { ShadowRoot } from "./shell/ShadowRoot.js";
|
|
4
|
+
export { builtinPlugins, createDevToolsPlugin, type DevToolsPanelPlugin, type DevToolsTabContext, } from "./shell/registry.js";
|
|
5
|
+
export type { ApiInfo, DevToolsClient, DevToolsSnapshot } from "./data/types.js";
|
|
6
|
+
export { createInProcessClient, inProcessClient, } from "./data/createInProcessClient.js";
|
|
7
|
+
export { normalizeToolList, type NormalizedTool, } from "./utils/toolNormalization.js";
|
|
8
|
+
export { serializeModelContext } from "./utils/serialization.js";
|
|
9
|
+
export type { SerializedModelContext } from "./types.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,2BAAwB;AACzE,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,iCAA8B;AAC/E,OAAO,EAAE,UAAU,EAAE,8BAA2B;AAChD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,4BAAyB;AAC1B,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,wBAAqB;AAC9E,OAAO,EACL,qBAAqB,EACrB,eAAe,GAChB,wCAAqC;AACtC,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,GACpB,qCAAkC;AACnC,OAAO,EAAE,qBAAqB,EAAE,iCAA8B;AAC9D,YAAY,EAAE,sBAAsB,EAAE,mBAAgB"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
client?: DevToolsClient | undefined;
|
|
1
|
+
import type { DevToolsPanelPlugin } from "./registry.js";
|
|
2
|
+
import type { DevToolsClient } from "../data/types.js";
|
|
3
|
+
export interface DevToolsOverlayProps {
|
|
4
|
+
plugins?: DevToolsPanelPlugin[] | undefined;
|
|
5
|
+
theme: "light" | "dark";
|
|
6
|
+
client?: DevToolsClient | undefined;
|
|
8
7
|
}
|
|
9
8
|
/**
|
|
10
9
|
* The full devtools surface (floating launcher + window), rendered inside the
|
|
@@ -12,7 +11,5 @@ interface DevToolsOverlayProps {
|
|
|
12
11
|
* and isolated from the host page. The window floats over the live app with no
|
|
13
12
|
* backdrop; close with the × or Escape.
|
|
14
13
|
*/
|
|
15
|
-
declare const DevToolsOverlay: ({ plugins, theme, client }: DevToolsOverlayProps) => import("react").JSX.Element;
|
|
16
|
-
//#endregion
|
|
17
|
-
export { DevToolsOverlay, DevToolsOverlayProps };
|
|
14
|
+
export declare const DevToolsOverlay: ({ plugins, theme, client, }: DevToolsOverlayProps) => import("react").JSX.Element;
|
|
18
15
|
//# sourceMappingURL=DevToolsOverlay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsOverlay.d.ts","
|
|
1
|
+
{"version":3,"file":"DevToolsOverlay.d.ts","sourceRoot":"","sources":["../../src/shell/DevToolsOverlay.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAmB;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAsB;AAEpD,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,mBAAmB,EAAE,GAAG,SAAS,CAAC;IAC5C,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CACrC;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,6BAI7B,oBAAoB,gCA4DtB,CAAC"}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import { DevToolsClient } from "../data/types.js";
|
|
2
|
-
import { DevToolsPanelPlugin } from "./registry.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
client?: DevToolsClient | undefined;
|
|
1
|
+
import type { DevToolsClient } from "../data/types.js";
|
|
2
|
+
import { type DevToolsPanelPlugin } from "./registry.js";
|
|
3
|
+
export interface DevToolsPanelProps {
|
|
4
|
+
/** Additional inspector tabs appended after the builtins. */
|
|
5
|
+
plugins?: DevToolsPanelPlugin[] | undefined;
|
|
6
|
+
/** Resolved theme, used to style plugin content and the dark variant. */
|
|
7
|
+
theme?: "light" | "dark";
|
|
8
|
+
/** When provided, a close control is rendered at the end of the tab bar. */
|
|
9
|
+
onClose?: (() => void) | undefined;
|
|
10
|
+
/** Data source. Defaults to the in-process DevToolsHooks client. */
|
|
11
|
+
client?: DevToolsClient | undefined;
|
|
13
12
|
}
|
|
14
|
-
declare const DevToolsPanel: ({ plugins, theme, onClose, client }: DevToolsPanelProps) => import("react").JSX.Element;
|
|
15
|
-
//#endregion
|
|
16
|
-
export { DevToolsPanel, DevToolsPanelProps };
|
|
13
|
+
export declare const DevToolsPanel: ({ plugins, theme, onClose, client, }: DevToolsPanelProps) => import("react").JSX.Element;
|
|
17
14
|
//# sourceMappingURL=DevToolsPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsPanel.d.ts","
|
|
1
|
+
{"version":3,"file":"DevToolsPanel.d.ts","sourceRoot":"","sources":["../../src/shell/DevToolsPanel.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAsB;AAEpD,OAAO,EAEL,KAAK,mBAAmB,EAEzB,sBAAmB;AAEpB,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,mBAAmB,EAAE,GAAG,SAAS,CAAC;IAC5C,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,oEAAoE;IACpE,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CACrC;AAED,eAAO,MAAM,aAAa,GAAI,sCAK3B,kBAAkB,gCAmKpB,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { CSSProperties, ReactNode } from "react";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
children: ReactNode;
|
|
1
|
+
import { type CSSProperties, type ReactNode } from "react";
|
|
2
|
+
export interface ShadowRootProps {
|
|
3
|
+
theme: "light" | "dark";
|
|
4
|
+
className?: string;
|
|
5
|
+
style?: CSSProperties;
|
|
6
|
+
children: ReactNode;
|
|
8
7
|
}
|
|
9
8
|
/**
|
|
10
9
|
* Renders its children into an isolated shadow root with the compiled panel
|
|
@@ -12,7 +11,5 @@ interface ShadowRootProps {
|
|
|
12
11
|
* React's event delegation works (a portal from the outer root would leave the
|
|
13
12
|
* listeners in the light DOM, where shadow retargeting breaks them).
|
|
14
13
|
*/
|
|
15
|
-
declare const ShadowRoot: ({ theme, className, style, children }: ShadowRootProps) => import("react").JSX.Element;
|
|
16
|
-
//#endregion
|
|
17
|
-
export { ShadowRoot, ShadowRootProps };
|
|
14
|
+
export declare const ShadowRoot: ({ theme, className, style, children, }: ShadowRootProps) => import("react").JSX.Element;
|
|
18
15
|
//# sourceMappingURL=ShadowRoot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShadowRoot.d.ts","
|
|
1
|
+
{"version":3,"file":"ShadowRoot.d.ts","sourceRoot":"","sources":["../../src/shell/ShadowRoot.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAsB9E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,wCAKxB,eAAe,gCA0CjB,CAAC"}
|
|
@@ -1,24 +1,21 @@
|
|
|
1
|
-
import { ReactNode } from "react";
|
|
2
|
-
//#region src/shell/SplitLayout.d.ts
|
|
1
|
+
import type { ReactNode } from "react";
|
|
3
2
|
/** Shared nav rail + detail track sizing for the master/detail tabs. */
|
|
4
|
-
declare const NAV_COL = "clamp(14rem,28%,18rem)_minmax(0,1fr)";
|
|
5
|
-
interface SplitColumn {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
export declare const NAV_COL = "clamp(14rem,28%,18rem)_minmax(0,1fr)";
|
|
4
|
+
export interface SplitColumn {
|
|
5
|
+
key: string;
|
|
6
|
+
/** Fixed rail header; stays aligned across columns. */
|
|
7
|
+
header?: ReactNode | undefined;
|
|
8
|
+
/** Scrollable pane body. */
|
|
9
|
+
children: ReactNode;
|
|
11
10
|
}
|
|
12
11
|
/**
|
|
13
12
|
* Multi-column split surface. Each column keeps its header fixed and only the
|
|
14
13
|
* body scrolls, so rail titles and divider lines stay aligned across columns.
|
|
15
14
|
*/
|
|
16
|
-
declare const SplitLayout: ({ sizes, columns, className }: {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
export declare const SplitLayout: ({ sizes, columns, className, }: {
|
|
16
|
+
/** Underscore-separated CSS grid track list, e.g. `12rem_minmax(0,1fr)`. */
|
|
17
|
+
sizes: string;
|
|
18
|
+
columns: SplitColumn[];
|
|
19
|
+
className?: string | undefined;
|
|
21
20
|
}) => import("react").JSX.Element;
|
|
22
|
-
//#endregion
|
|
23
|
-
export { NAV_COL, SplitColumn, SplitLayout };
|
|
24
21
|
//# sourceMappingURL=SplitLayout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitLayout.d.ts","
|
|
1
|
+
{"version":3,"file":"SplitLayout.d.ts","sourceRoot":"","sources":["../../src/shell/SplitLayout.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,wEAAwE;AACxE,eAAO,MAAM,OAAO,yCAAyC,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,4BAA4B;IAC5B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,gCAIzB;IACD,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,gCAkBA,CAAC"}
|
package/dist/shell/registry.d.ts
CHANGED
|
@@ -1,40 +1,37 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
switchToThread?: ((threadId: string) => void | Promise<void>) | undefined;
|
|
1
|
+
import type { ComponentType } from "react";
|
|
2
|
+
import type { ApiInfo } from "../data/types.js";
|
|
3
|
+
export interface DevToolsTabContext {
|
|
4
|
+
/** The id of the assistant instance the panel is currently inspecting. */
|
|
5
|
+
apiId: number;
|
|
6
|
+
/** Projected, render-ready data for the inspected instance. */
|
|
7
|
+
data: ApiInfo;
|
|
8
|
+
/** Clears the buffered event log for an instance. */
|
|
9
|
+
clearEvents: (apiId: number) => void;
|
|
10
|
+
/** The resolved theme of the panel. */
|
|
11
|
+
theme: "light" | "dark";
|
|
12
|
+
/**
|
|
13
|
+
* The selected node id for this tab and instance, or null. Always a stable id
|
|
14
|
+
* (message id, run id, slice key, …), never an array index, so the detail
|
|
15
|
+
* pane does not jump as data streams in.
|
|
16
|
+
*/
|
|
17
|
+
selection: string | null;
|
|
18
|
+
/** Selects a node in this tab. Pass null to clear. Persisted per instance. */
|
|
19
|
+
setSelection: (nodeId: string | null) => void;
|
|
20
|
+
/** Switches the live app to a thread, when the runtime supports thread lists. */
|
|
21
|
+
switchToThread?: ((threadId: string) => void | Promise<void>) | undefined;
|
|
23
22
|
}
|
|
24
|
-
interface DevToolsPanelPlugin {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
23
|
+
export interface DevToolsPanelPlugin {
|
|
24
|
+
/** Stable identifier used as the tab key. */
|
|
25
|
+
id: string;
|
|
26
|
+
/** Tab label shown in the navigation bar. */
|
|
27
|
+
label: string;
|
|
28
|
+
/** Lower numbers sort earlier; builtins occupy 10, 20, 30, 40. */
|
|
29
|
+
order?: number;
|
|
30
|
+
/** When provided and it returns false, the tab is hidden for the current instance. */
|
|
31
|
+
isAvailable?: (ctx: DevToolsTabContext) => boolean;
|
|
32
|
+
/** The tab body. Receives the tab context as props. */
|
|
33
|
+
Component: ComponentType<DevToolsTabContext>;
|
|
35
34
|
}
|
|
36
|
-
declare const createDevToolsPlugin: (plugin: DevToolsPanelPlugin) => DevToolsPanelPlugin;
|
|
37
|
-
declare const builtinPlugins: DevToolsPanelPlugin[];
|
|
38
|
-
//#endregion
|
|
39
|
-
export { DevToolsPanelPlugin, DevToolsTabContext, builtinPlugins, createDevToolsPlugin };
|
|
35
|
+
export declare const createDevToolsPlugin: (plugin: DevToolsPanelPlugin) => DevToolsPanelPlugin;
|
|
36
|
+
export declare const builtinPlugins: DevToolsPanelPlugin[];
|
|
40
37
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/shell/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,yBAAsB;AAM7C,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,IAAI,EAAE,OAAO,CAAC;IACd,qDAAqD;IACrD,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,uCAAuC;IACvC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB;;;;OAIG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,8EAA8E;IAC9E,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,iFAAiF;IACjF,cAAc,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CAC3E;AAED,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC;IACnD,uDAAuD;IACvD,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;CAC9C;AAED,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,mBAAmB,KAC1B,mBAA6B,CAAC;AAEjC,eAAO,MAAM,cAAc,EAAE,mBAAmB,EAK/C,CAAC"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { DevToolsTabContext } from "../registry.js";
|
|
2
|
-
|
|
3
|
-
declare const ActivityTab: ({ apiId, data, clearEvents, selection, setSelection }: DevToolsTabContext) => import("react").JSX.Element;
|
|
4
|
-
//#endregion
|
|
5
|
-
export { ActivityTab };
|
|
1
|
+
import type { DevToolsTabContext } from "../registry.js";
|
|
2
|
+
export declare const ActivityTab: ({ apiId, data, clearEvents, selection, setSelection, }: DevToolsTabContext) => import("react").JSX.Element;
|
|
6
3
|
//# sourceMappingURL=ActivityTab.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityTab.d.ts","
|
|
1
|
+
{"version":3,"file":"ActivityTab.d.ts","sourceRoot":"","sources":["../../../src/shell/tabs/ActivityTab.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAoB;AAgBtD,eAAO,MAAM,WAAW,GAAI,wDAMzB,kBAAkB,gCA6HpB,CAAC"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { DevToolsTabContext } from "../registry.js";
|
|
2
|
-
|
|
3
|
-
declare const ContextTab: ({ data, selection, setSelection }: DevToolsTabContext) => import("react").JSX.Element;
|
|
4
|
-
//#endregion
|
|
5
|
-
export { ContextTab };
|
|
1
|
+
import type { DevToolsTabContext } from "../registry.js";
|
|
2
|
+
export declare const ContextTab: ({ data, selection, setSelection, }: DevToolsTabContext) => import("react").JSX.Element;
|
|
6
3
|
//# sourceMappingURL=ContextTab.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextTab.d.ts","
|
|
1
|
+
{"version":3,"file":"ContextTab.d.ts","sourceRoot":"","sources":["../../../src/shell/tabs/ContextTab.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAoB;AA2BtD,eAAO,MAAM,UAAU,GAAI,oCAIxB,kBAAkB,gCAiHpB,CAAC"}
|