@mcp-b/react-components 0.26.1 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/{AgentChat-B6sgfQ_q.d.ts → AgentChat-CHEz8ts_.d.ts} +5 -5
  2. package/dist/{AgentChatStartScreen-DDZ25aax.d.ts → AgentChatStartScreen-DXZ0hAX0.d.ts} +23 -5
  3. package/dist/{PromptInput-CES0WO4u.d.ts → PromptInput-B75Np5VB.d.ts} +7 -1
  4. package/dist/SessionCompaction-DMa1vv6Y.d.ts +59 -0
  5. package/dist/{ThinkChat-DVhCEjq-.js → ThinkChat-Bp-nAnoW.js} +14 -2
  6. package/dist/{ThinkChatActivity-DawPYgga.d.ts → ThinkChatActivity-C2uaL3el.d.ts} +3 -3
  7. package/dist/{ThinkChatActivitySummary-kr5fE0wg.d.ts → ThinkChatActivitySummary-F062wneC.d.ts} +1 -1
  8. package/dist/{ThinkChatToolParts-CSzVwMXf.d.ts → ThinkChatToolParts-BfroXQ4F.d.ts} +19 -1
  9. package/dist/{Workspace-CIycQ4xE.d.ts → Workspace-Bn6In4wi.d.ts} +5 -1
  10. package/dist/{WorkspaceExplorer-BCipn7Vd.d.ts → WorkspaceExplorer-D0aiscG6.d.ts} +1 -1
  11. package/dist/components/ActionGuide.d.ts +23 -5
  12. package/dist/components/ActionGuide.js +18 -4
  13. package/dist/components/AgentChat.d.ts +1 -1
  14. package/dist/components/AgentChat.js +1 -1
  15. package/dist/components/AgentChatStartScreen.d.ts +2 -2
  16. package/dist/components/AgentChatStartScreen.js +16 -5
  17. package/dist/components/AgentConnection.d.ts +1 -1
  18. package/dist/components/AgentToolDetail.js +1 -1
  19. package/dist/components/ChatGptSignInScreen.d.ts +9 -1
  20. package/dist/components/ChatGptSignInScreen.js +15 -4
  21. package/dist/components/ConversationTabPicker.d.ts +31 -0
  22. package/dist/components/ConversationTabPicker.js +117 -0
  23. package/dist/components/Goal.d.ts +29 -2
  24. package/dist/components/Goal.js +78 -4
  25. package/dist/components/McpConnectionRequest.d.ts +11 -5
  26. package/dist/components/McpConnectionRequest.js +22 -16
  27. package/dist/components/McpPluginCatalog.d.ts +1 -1
  28. package/dist/components/McpServerPicker.d.ts +18 -3
  29. package/dist/components/McpServerPicker.js +38 -23
  30. package/dist/components/Plan.d.ts +18 -1
  31. package/dist/components/Plan.js +17 -1
  32. package/dist/components/PromptInput.d.ts +2 -2
  33. package/dist/components/PromptInput.js +43 -5
  34. package/dist/components/SessionCompaction.d.ts +1 -58
  35. package/dist/components/SettingsFormDialog.d.ts +43 -0
  36. package/dist/components/SettingsFormDialog.js +110 -0
  37. package/dist/components/ThinkChat.d.ts +11 -7
  38. package/dist/components/ThinkChat.js +3 -3
  39. package/dist/components/ThinkChatActivity.d.ts +3 -3
  40. package/dist/components/ThinkChatActivitySummary.d.ts +1 -1
  41. package/dist/components/ThinkChatToolPanels.d.ts +1 -1
  42. package/dist/components/ThinkChatToolPanels.js +1 -1
  43. package/dist/components/ThinkChatToolParts.d.ts +1 -1
  44. package/dist/components/ThinkFullApp.d.ts +6 -12
  45. package/dist/components/ThinkFullApp.js +4 -4
  46. package/dist/components/ThinkThreadPicker.d.ts +4 -1
  47. package/dist/components/ThinkThreadPicker.js +6 -1
  48. package/dist/components/Workspace.d.ts +2 -2
  49. package/dist/components/Workspace.js +10 -6
  50. package/dist/components/WorkspaceBrowser.d.ts +1 -1
  51. package/dist/components/WorkspaceExplorer.d.ts +3 -3
  52. package/dist/components/WorkspaceExplorer.js +2 -2
  53. package/dist/components/WorkspaceMountManager.d.ts +32 -0
  54. package/dist/components/WorkspaceMountManager.js +89 -0
  55. package/dist/{mcp-server-catalog-BewjV7Eq.d.ts → mcp-server-catalog-CO7GAl1f.d.ts} +1 -1
  56. package/dist/styles/chatgpt-sign-in-screen.css +10 -1
  57. package/dist/styles/conversation-tab-picker.css +24 -0
  58. package/dist/styles/index.css +2 -0
  59. package/dist/styles/workspace-mount-manager.css +24 -0
  60. package/dist/utils/codex-model-catalog.d.ts +4 -4
  61. package/dist/utils/mcp-server-catalog.d.ts +1 -1
  62. package/dist/utils/mcp-server-catalog.js +1 -1
  63. package/package.json +13 -13
@@ -4,7 +4,7 @@ import { n as mergeRefs } from "../merge-refs-DF_7w2x_.js";
4
4
  import { inferWorkspaceLanguage, inferWorkspaceMedia, isWorkspaceMarkdownPath, isWorkspaceMediaPath, isWorkspaceSkillPath, parseWorkspaceSkill } from "./WorkspaceFile.js";
5
5
  import { WorkspaceBrowser } from "./WorkspaceBrowser.js";
6
6
  import { t as WorkspaceFileView } from "../WorkspaceFileView-CKEmUyeT.js";
7
- import { useWorkspace, workspaceBinaryFileQueryOptions, workspaceDirectoryQueryOptions, workspaceFileAssetQueryOptions, workspaceFileStatQueryOptions, workspaceInfoQueryOptions, workspaceQueryKey, workspaceTextFileQueryOptions } from "./Workspace.js";
7
+ import { useWorkspace, workspaceBinaryFileQueryOptions, workspaceDirectoryQueryKey, workspaceDirectoryQueryOptions, workspaceDirectoryQueryPrefix, workspaceFileAssetQueryOptions, workspaceFileStatQueryOptions, workspaceInfoQueryOptions, workspaceQueryKey, workspaceTextFileQueryOptions } from "./Workspace.js";
8
8
  import * as React from "react";
9
9
  import { jsx } from "react/jsx-runtime";
10
10
  //#region src/components/WorkspaceExplorer.tsx
@@ -125,4 +125,4 @@ function WorkspaceExplorerContent({ workspace, navigation, className, title = "W
125
125
  });
126
126
  }
127
127
  //#endregion
128
- export { WorkspaceExplorer, WorkspaceFileLink, WorkspaceNavigationProvider, inferWorkspaceLanguage, inferWorkspaceMedia, isWorkspaceMarkdownPath, isWorkspaceMediaPath, isWorkspaceSkillPath, parseWorkspaceSkill, resolveWorkspaceLink, useWorkspace, workspaceBinaryFileQueryOptions, workspaceDirectoryQueryOptions, workspaceFileAssetQueryOptions, workspaceFileStatQueryOptions, workspaceInfoQueryOptions, workspaceQueryKey, workspaceTextFileQueryOptions };
128
+ export { WorkspaceExplorer, WorkspaceFileLink, WorkspaceNavigationProvider, inferWorkspaceLanguage, inferWorkspaceMedia, isWorkspaceMarkdownPath, isWorkspaceMediaPath, isWorkspaceSkillPath, parseWorkspaceSkill, resolveWorkspaceLink, useWorkspace, workspaceBinaryFileQueryOptions, workspaceDirectoryQueryKey, workspaceDirectoryQueryOptions, workspaceDirectoryQueryPrefix, workspaceFileAssetQueryOptions, workspaceFileStatQueryOptions, workspaceInfoQueryOptions, workspaceQueryKey, workspaceTextFileQueryOptions };
@@ -0,0 +1,32 @@
1
+ import * as React from "react";
2
+
3
+ //#region src/components/WorkspaceMountManager.d.ts
4
+ type WorkspaceMountPermission = "granted" | "prompt" | "denied" | "unavailable";
5
+ interface WorkspaceMountItem {
6
+ id: string;
7
+ path: string;
8
+ permission: WorkspaceMountPermission;
9
+ }
10
+ interface WorkspaceMountManagerProps {
11
+ mounts: readonly WorkspaceMountItem[];
12
+ adding?: boolean;
13
+ busyMountId?: string | null;
14
+ error?: React.ReactNode;
15
+ onAdd: () => void;
16
+ onReconnect: (mount: WorkspaceMountItem) => void;
17
+ onRemove: (mount: WorkspaceMountItem) => void;
18
+ triggerLabel?: string;
19
+ }
20
+ /** Controlled local-mount presentation; native handles and persistence stay in the host. */
21
+ declare function WorkspaceMountManager({
22
+ mounts,
23
+ adding,
24
+ busyMountId,
25
+ error,
26
+ onAdd,
27
+ onReconnect,
28
+ onRemove,
29
+ triggerLabel
30
+ }: WorkspaceMountManagerProps): React.JSX.Element;
31
+ //#endregion
32
+ export { WorkspaceMountItem, WorkspaceMountManager, WorkspaceMountManagerProps, WorkspaceMountPermission };
@@ -0,0 +1,89 @@
1
+ import { Button } from "./Button.js";
2
+ import { w as FolderIcon } from "../icons-B4mGvCvc.js";
3
+ import { Popover } from "./Popover.js";
4
+ import { EmptyState } from "./EmptyState.js";
5
+ import { AppTopBar } from "./AppTopBar.js";
6
+ import { StatusPill } from "./StatusPill.js";
7
+ import { Card, CardAction, CardFooter, CardHeader, CardTitle } from "./Card.js";
8
+ import "react";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ //#region src/components/WorkspaceMountManager.tsx
11
+ function permissionLabel(permission) {
12
+ if (permission === "granted") return "Read/write connected";
13
+ if (permission === "prompt") return "Permission needed";
14
+ if (permission === "denied") return "Access denied";
15
+ return "Unavailable";
16
+ }
17
+ function permissionColor(permission) {
18
+ if (permission === "granted") return "success";
19
+ if (permission === "prompt") return "warning";
20
+ if (permission === "denied") return "destructive";
21
+ return "neutral";
22
+ }
23
+ /** Controlled local-mount presentation; native handles and persistence stay in the host. */
24
+ function WorkspaceMountManager({ mounts, adding = false, busyMountId = null, error, onAdd, onReconnect, onRemove, triggerLabel = "Attach local folders" }) {
25
+ const busy = adding || busyMountId !== null;
26
+ return /* @__PURE__ */ jsxs(Popover.Root, { children: [/* @__PURE__ */ jsx(AppTopBar.Button, {
27
+ label: triggerLabel,
28
+ render: /* @__PURE__ */ jsx(Popover.Trigger, { unstyled: true }),
29
+ children: /* @__PURE__ */ jsx(FolderIcon, {})
30
+ }), /* @__PURE__ */ jsx(Popover.Portal, { children: /* @__PURE__ */ jsx(Popover.Positioner, {
31
+ side: "bottom",
32
+ align: "end",
33
+ sideOffset: 8,
34
+ children: /* @__PURE__ */ jsxs(Popover.Popup, { children: [/* @__PURE__ */ jsxs(Popover.Header, { children: [/* @__PURE__ */ jsx(Popover.Title, { children: "Local folders" }), /* @__PURE__ */ jsx(Popover.Description, { children: "Attach folders to the workspace so the model can work on their contents." })] }), /* @__PURE__ */ jsxs("div", {
35
+ className: "workspace-mount-manager__content",
36
+ children: [
37
+ /* @__PURE__ */ jsx(Button, {
38
+ type: "button",
39
+ size: "sm",
40
+ disabled: busy,
41
+ onClick: onAdd,
42
+ children: adding ? "Opening…" : "Attach local folder"
43
+ }),
44
+ error ? /* @__PURE__ */ jsx("p", {
45
+ className: "workspace-mount-manager__error",
46
+ role: "alert",
47
+ children: error
48
+ }) : null,
49
+ mounts.length === 0 ? /* @__PURE__ */ jsx(EmptyState, { description: "No local folders attached." }) : /* @__PURE__ */ jsx("ul", {
50
+ className: "workspace-mount-manager__list sigvelo-stack-list",
51
+ children: mounts.map((mount) => {
52
+ return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(Card, {
53
+ size: "sm",
54
+ "aria-busy": busyMountId === mount.id || void 0,
55
+ children: [/* @__PURE__ */ jsxs(CardHeader, { children: [/* @__PURE__ */ jsx(CardTitle, {
56
+ className: "workspace-mount-manager__path",
57
+ children: /* @__PURE__ */ jsx("code", { children: mount.path })
58
+ }), /* @__PURE__ */ jsx(CardAction, { children: /* @__PURE__ */ jsx(StatusPill, {
59
+ color: permissionColor(mount.permission),
60
+ size: "sm",
61
+ children: permissionLabel(mount.permission)
62
+ }) })] }), /* @__PURE__ */ jsxs(CardFooter, { children: [mount.permission !== "granted" ? /* @__PURE__ */ jsx(Button, {
63
+ type: "button",
64
+ size: "sm",
65
+ disabled: busy,
66
+ onClick: () => onReconnect(mount),
67
+ children: "Reconnect"
68
+ }) : null, /* @__PURE__ */ jsx(Button, {
69
+ type: "button",
70
+ size: "sm",
71
+ variant: "ghost",
72
+ color: "destructive",
73
+ disabled: busy,
74
+ onClick: () => onRemove(mount),
75
+ children: "Remove"
76
+ })] })]
77
+ }) }, mount.id);
78
+ })
79
+ }),
80
+ /* @__PURE__ */ jsx("p", {
81
+ className: "workspace-mount-manager__footnote",
82
+ children: "Removing an attachment only forgets the folder reference; it never deletes files."
83
+ })
84
+ ]
85
+ })] })
86
+ }) })] });
87
+ }
88
+ //#endregion
89
+ export { WorkspaceMountManager };
@@ -46,7 +46,7 @@ interface McpServerCard {
46
46
  /**
47
47
  * Read the complete state emitted by the pinned Agents runtime.
48
48
  *
49
- * Agents 0.17.4 can return `not-connected` from `getMcpServers()` even though
49
+ * Agents 0.19.0 can return `not-connected` from `getMcpServers()` even though
50
50
  * that value is missing from its exported `MCPServer["state"]` declaration.
51
51
  * Keep the unavoidable compatibility assertion at this one SDK boundary.
52
52
  */
@@ -4,10 +4,12 @@
4
4
 
5
5
  position: relative;
6
6
  isolation: isolate;
7
- overflow: hidden;
7
+ overflow-x: hidden;
8
+ overflow-y: auto;
8
9
  block-size: 100%;
9
10
  min-inline-size: 17.5rem;
10
11
  display: grid;
12
+ grid-template-rows: minmax(min-content, 1fr) auto;
11
13
  place-items: center;
12
14
  padding: clamp(var(--sigvelo-spacing-5), 5vw, var(--sigvelo-spacing-12));
13
15
  background-color: var(--sigvelo-color-canvas);
@@ -61,6 +63,13 @@
61
63
  text-align: center;
62
64
  }
63
65
 
66
+ .chatgpt-sign-in__secondary-action {
67
+ z-index: 1;
68
+ display: flex;
69
+ justify-content: center;
70
+ margin-block-start: var(--sigvelo-spacing-4);
71
+ }
72
+
64
73
  .chatgpt-sign-in__brand {
65
74
  display: grid;
66
75
  gap: var(--sigvelo-spacing-1-5);
@@ -0,0 +1,24 @@
1
+ .conversation-tab-picker__identity {
2
+ display: grid;
3
+ }
4
+
5
+ .conversation-tab-picker__error {
6
+ align-items: center;
7
+ color: var(--sigvelo-color-danger-text);
8
+ display: flex;
9
+ font-size: var(--sigvelo-text-sm);
10
+ gap: var(--sigvelo-spacing-2);
11
+ overflow-wrap: anywhere;
12
+ padding: var(--sigvelo-spacing-2) var(--sigvelo-spacing-3);
13
+ }
14
+
15
+ .conversation-tab-picker__error > svg {
16
+ flex: none;
17
+ }
18
+
19
+ .conversation-tab-picker__domain {
20
+ color: var(--sigvelo-color-text-muted);
21
+ font-size: var(--sigvelo-text-sm);
22
+ font-weight: var(--sigvelo-font-weight-normal);
23
+ line-height: var(--sigvelo-text-sm-leading);
24
+ }
@@ -95,6 +95,7 @@
95
95
  @import "./commit.css" layer(components);
96
96
  @import "./context.css" layer(components);
97
97
  @import "./conversation.css" layer(components);
98
+ @import "./conversation-tab-picker.css" layer(components);
98
99
  @import "./codex-model-selector.css" layer(components);
99
100
  @import "./environment-variables.css" layer(components);
100
101
  @import "./file-tree.css" layer(components);
@@ -121,6 +122,7 @@
121
122
  @import "./think-thread-picker.css" layer(components);
122
123
  @import "./web-preview.css" layer(components);
123
124
  @import "./workspace-explorer.css" layer(components);
125
+ @import "./workspace-mount-manager.css" layer(components);
124
126
  @import "./composition-motion.css" layer(components);
125
127
 
126
128
  /* Page Components */
@@ -0,0 +1,24 @@
1
+ .workspace-mount-manager__content {
2
+ display: grid;
3
+ gap: var(--sigvelo-spacing-3);
4
+ }
5
+
6
+ .workspace-mount-manager__error,
7
+ .workspace-mount-manager__footnote {
8
+ color: var(--sigvelo-color-text-muted);
9
+ font-size: var(--sigvelo-text-sm);
10
+ line-height: var(--sigvelo-text-sm-leading);
11
+ }
12
+
13
+ .workspace-mount-manager__list {
14
+ gap: var(--sigvelo-spacing-2);
15
+ }
16
+
17
+ .workspace-mount-manager__error {
18
+ color: var(--sigvelo-color-danger-text);
19
+ overflow-wrap: anywhere;
20
+ }
21
+
22
+ .workspace-mount-manager__path code {
23
+ overflow-wrap: anywhere;
24
+ }
@@ -75,7 +75,7 @@ declare const CHECKED_IN_CODEX_MODELS: readonly [{
75
75
  readonly upgradeInfo: null;
76
76
  readonly availabilityNux: null;
77
77
  readonly hidden: boolean;
78
- readonly inputModalities: ("text" | "image")[];
78
+ readonly inputModalities: ("image" | "text")[];
79
79
  readonly supportsPersonality: boolean;
80
80
  readonly additionalSpeedTiers: never[];
81
81
  readonly serviceTiers: never[];
@@ -92,7 +92,7 @@ declare const CHECKED_IN_CODEX_MODELS: readonly [{
92
92
  readonly upgradeInfo: null;
93
93
  readonly availabilityNux: null;
94
94
  readonly hidden: boolean;
95
- readonly inputModalities: ("text" | "image")[];
95
+ readonly inputModalities: ("image" | "text")[];
96
96
  readonly supportsPersonality: boolean;
97
97
  readonly additionalSpeedTiers: never[];
98
98
  readonly serviceTiers: never[];
@@ -109,7 +109,7 @@ declare const CHECKED_IN_CODEX_MODELS: readonly [{
109
109
  readonly upgradeInfo: null;
110
110
  readonly availabilityNux: null;
111
111
  readonly hidden: boolean;
112
- readonly inputModalities: ("text" | "image")[];
112
+ readonly inputModalities: ("image" | "text")[];
113
113
  readonly supportsPersonality: boolean;
114
114
  readonly additionalSpeedTiers: never[];
115
115
  readonly serviceTiers: never[];
@@ -126,7 +126,7 @@ declare const CHECKED_IN_CODEX_MODELS: readonly [{
126
126
  readonly upgradeInfo: null;
127
127
  readonly availabilityNux: null;
128
128
  readonly hidden: boolean;
129
- readonly inputModalities: ("text" | "image")[];
129
+ readonly inputModalities: ("image" | "text")[];
130
130
  readonly supportsPersonality: boolean;
131
131
  readonly additionalSpeedTiers: never[];
132
132
  readonly serviceTiers: never[];
@@ -1,2 +1,2 @@
1
- import { a as MCP_SERVER_SETUP_AUTH, c as McpServerManualSetup, d as McpServerSetupAuthFieldName, f as McpServerSetupLink, h as getMcpServerRuntimeState, i as MANUAL_MCP_SERVER_CARDS, l as McpServerSetupAuth, m as getMcpServerIconSrc, n as DCR_MCP_SERVER_CARDS, o as McpServerCard, p as getMcpServerEntry, r as DEFAULT_MCP_SERVER_CARDS, s as McpServerCardIcon, t as CUSTOM_MCP_SERVER_CARD, u as McpServerSetupAuthField } from "../mcp-server-catalog-BewjV7Eq.js";
1
+ import { a as MCP_SERVER_SETUP_AUTH, c as McpServerManualSetup, d as McpServerSetupAuthFieldName, f as McpServerSetupLink, h as getMcpServerRuntimeState, i as MANUAL_MCP_SERVER_CARDS, l as McpServerSetupAuth, m as getMcpServerIconSrc, n as DCR_MCP_SERVER_CARDS, o as McpServerCard, p as getMcpServerEntry, r as DEFAULT_MCP_SERVER_CARDS, s as McpServerCardIcon, t as CUSTOM_MCP_SERVER_CARD, u as McpServerSetupAuthField } from "../mcp-server-catalog-CO7GAl1f.js";
2
2
  export { CUSTOM_MCP_SERVER_CARD, DCR_MCP_SERVER_CARDS, DEFAULT_MCP_SERVER_CARDS, MANUAL_MCP_SERVER_CARDS, MCP_SERVER_SETUP_AUTH, McpServerCard, McpServerCardIcon, McpServerManualSetup, McpServerSetupAuth, McpServerSetupAuthField, McpServerSetupAuthFieldName, McpServerSetupLink, getMcpServerEntry, getMcpServerIconSrc, getMcpServerRuntimeState };
@@ -3,7 +3,7 @@ import { inferFaviconUrl } from "./favicon.js";
3
3
  /**
4
4
  * Read the complete state emitted by the pinned Agents runtime.
5
5
  *
6
- * Agents 0.17.4 can return `not-connected` from `getMcpServers()` even though
6
+ * Agents 0.19.0 can return `not-connected` from `getMcpServers()` even though
7
7
  * that value is missing from its exported `MCPServer["state"]` declaration.
8
8
  * Keep the unavoidable compatibility assertion at this one SDK boundary.
9
9
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-b/react-components",
3
- "version": "0.26.1",
3
+ "version": "0.28.0",
4
4
  "description": "MCP-B React components built on Base UI and shared design tokens, including Cloudflare Think chat primitives.",
5
5
  "homepage": "https://design-system.sigvelo.com",
6
6
  "bugs": {
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "@base-ui/react": "~1.6.0",
42
- "@cloudflare/codemode": "^0.4.3",
42
+ "@cloudflare/codemode": "^0.5.0",
43
43
  "@cloudflare/workers-types": "^5.20260715.1",
44
44
  "@rrweb/replay": "^2.1.0",
45
45
  "@shadcn/react": "^0.2.1",
@@ -58,12 +58,12 @@
58
58
  "streamdown": "^2.5.0",
59
59
  "unist-util-visit": "^5.1.0",
60
60
  "yet-another-react-lightbox": "^3.32.1",
61
- "@mcp-b/design-tokens": "0.26.1"
61
+ "@mcp-b/design-tokens": "0.28.0"
62
62
  },
63
63
  "devDependencies": {
64
- "@ai-sdk/react": "^3.0.222",
65
- "@cloudflare/shell": "^0.4.1",
66
- "@cloudflare/think": "^0.13.0",
64
+ "@ai-sdk/react": "^3.0.230",
65
+ "@cloudflare/shell": "^0.4.3",
66
+ "@cloudflare/think": "^0.15.0",
67
67
  "@cloudflare/voice": "^0.3.4",
68
68
  "@storybook/addon-a11y": "^10.5.2",
69
69
  "@storybook/addon-docs": "^10.5.2",
@@ -81,8 +81,8 @@
81
81
  "@vitest/browser-playwright": "^4.1.10",
82
82
  "@vitest/coverage-v8": "^4.1.10",
83
83
  "@vitest/mocker": "^4.1.10",
84
- "agents": "^0.17.4",
85
- "ai": "^6.0.220",
84
+ "agents": "^0.19.0",
85
+ "ai": "^6.0.228",
86
86
  "playwright": "^1.61.0",
87
87
  "react": "19.3.0-canary-711c445b-20260722",
88
88
  "react-dom": "19.3.0-canary-711c445b-20260722",
@@ -93,14 +93,14 @@
93
93
  "vitest": "^4.1.10"
94
94
  },
95
95
  "peerDependencies": {
96
- "@ai-sdk/react": "^3.0.204",
97
- "@cloudflare/shell": "^0.4.1",
98
- "@cloudflare/think": "^0.13.0",
96
+ "@ai-sdk/react": "^3.0.230",
97
+ "@cloudflare/shell": "^0.4.3",
98
+ "@cloudflare/think": "^0.15.0",
99
99
  "@cloudflare/voice": "^0.3.4",
100
100
  "@tanstack/react-query": "^5.101.2",
101
101
  "@tanstack/react-router": "^1.170.18",
102
- "agents": "^0.17.4",
103
- "ai": "^6.0.182",
102
+ "agents": "^0.19.0",
103
+ "ai": "^6.0.228",
104
104
  "react": "19.3.0-canary-711c445b-20260722",
105
105
  "react-dom": "19.3.0-canary-711c445b-20260722"
106
106
  },