+ >
)
}
diff --git a/apps/web/src/components/page-container.tsx b/apps/web/src/components/page-container.tsx
index e28c9a89..92d8054f 100644
--- a/apps/web/src/components/page-container.tsx
+++ b/apps/web/src/components/page-container.tsx
@@ -2,10 +2,12 @@ import { cn } from '@/lib/utils'
export function PageContainer({
background = true,
+ compact = false,
className,
children
}: {
background?: boolean
+ compact?: boolean
className?: string
children: React.ReactNode
}) {
@@ -18,6 +20,7 @@ export function PageContainer({
diff --git a/apps/web/src/components/ui/breadcrumb.tsx b/apps/web/src/components/ui/breadcrumb.tsx
new file mode 100644
index 00000000..d10ff194
--- /dev/null
+++ b/apps/web/src/components/ui/breadcrumb.tsx
@@ -0,0 +1,109 @@
+import { Slot } from '@radix-ui/react-slot'
+import { ChevronRight, MoreHorizontal } from 'lucide-react'
+import * as React from 'react'
+
+import { cn } from '@/lib/utils'
+
+function Breadcrumb({ ...props }: React.ComponentProps<'nav'>) {
+ return
+}
+
+function BreadcrumbList({ className, ...props }: React.ComponentProps<'ol'>) {
+ return (
+
+ )
+}
+
+function BreadcrumbItem({ className, ...props }: React.ComponentProps<'li'>) {
+ return (
+
+ )
+}
+
+function BreadcrumbLink({
+ asChild,
+ className,
+ ...props
+}: React.ComponentProps<'a'> & {
+ asChild?: boolean
+}) {
+ const Comp = asChild ? Slot : 'a'
+
+ return (
+
+ )
+}
+
+function BreadcrumbPage({ className, ...props }: React.ComponentProps<'span'>) {
+ return (
+
+ )
+}
+
+function BreadcrumbSeparator({
+ children,
+ className,
+ ...props
+}: React.ComponentProps<'li'>) {
+ return (
+
svg]:size-3.5', className)}
+ {...props}
+ >
+ {children ?? }
+
+ )
+}
+
+function BreadcrumbEllipsis({
+ className,
+ ...props
+}: React.ComponentProps<'span'>) {
+ return (
+
+
+ More
+
+ )
+}
+
+export {
+ Breadcrumb,
+ BreadcrumbEllipsis,
+ BreadcrumbItem,
+ BreadcrumbLink,
+ BreadcrumbList,
+ BreadcrumbPage,
+ BreadcrumbSeparator
+}
diff --git a/apps/web/src/lib/developer-config.ts b/apps/web/src/lib/developer-config.ts
index 80e74b36..fe40fc24 100644
--- a/apps/web/src/lib/developer-config.ts
+++ b/apps/web/src/lib/developer-config.ts
@@ -317,6 +317,7 @@ const result = await generateText({
model: openai('gpt-4o-mini'),
tools: createAISDKTools(searchTool),
toolChoice: 'required',
+ system: '${systemPrompt}',
prompt: '${prompt}'
})
@@ -416,9 +417,10 @@ const searchTool = await AgenticToolClient.fromIdentifier('${identifier}'${
: ''
})
+const tools = createLangChainTools(searchTool)
const agent = createToolCallingAgent({
llm: new ChatOpenAI({ model: 'gpt-4o-mini' }),
- tools: createLangChainTools(searchTool),
+ tools,
prompt: ChatPromptTemplate.fromMessages([
['placeholder', '{chat_history}'],
['human', '{input}'],
diff --git a/examples/ts-sdks/ai-sdk/bin/weather.ts b/examples/ts-sdks/ai-sdk/bin/weather.ts
index c4a335a9..535acc14 100644
--- a/examples/ts-sdks/ai-sdk/bin/weather.ts
+++ b/examples/ts-sdks/ai-sdk/bin/weather.ts
@@ -2,12 +2,11 @@ import 'dotenv/config'
import { createAISDKTools } from '@agentic/ai-sdk'
import { AgenticToolClient } from '@agentic/platform-tool-client'
-import { createOpenAI } from '@ai-sdk/openai'
+import { openai } from '@ai-sdk/openai'
import { generateText } from 'ai'
async function main() {
const searchTool = await AgenticToolClient.fromIdentifier('@agentic/search')
- const openai = createOpenAI({ compatibility: 'strict' })
const result = await generateText({
model: openai('gpt-4o-mini'),
diff --git a/examples/ts-sdks/mastra/bin/weather.ts b/examples/ts-sdks/mastra/bin/weather.ts
index 68ecdf60..72eef309 100644
--- a/examples/ts-sdks/mastra/bin/weather.ts
+++ b/examples/ts-sdks/mastra/bin/weather.ts
@@ -10,9 +10,9 @@ async function main() {
const weatherAgent = new Agent({
name: 'Weather Agent',
- instructions: 'You are a helpful assistant. Be as concise as possible.',
model: openai('gpt-4o-mini'),
- tools: createMastraTools(searchTool)
+ tools: createMastraTools(searchTool),
+ instructions: 'You are a helpful assistant. Be as concise as possible.'
})
const res = await weatherAgent.generate(
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6a993e38..47103ed3 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -109,7 +109,7 @@ catalogs:
specifier: ^2.1.7
version: 2.1.7
'@radix-ui/react-slot':
- specifier: ^1.2.3
+ specifier: 1.2.3
version: 1.2.3
'@radix-ui/react-tabs':
specifier: ^1.1.12
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 66f3b162..b86d25b1 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -45,7 +45,7 @@ catalog:
'@radix-ui/react-collapsible': ^1.1.11
'@radix-ui/react-dropdown-menu': 2.1.15
'@radix-ui/react-label': ^2.1.7
- '@radix-ui/react-slot': ^1.2.3
+ '@radix-ui/react-slot': 1.2.3
'@radix-ui/react-tabs': ^1.1.12
'@radix-ui/react-tooltip': ^1.2.7
'@react-email/components': ^0.1.1
diff --git a/todo.md b/todo.md
index 5f3852ee..82357312 100644
--- a/todo.md
+++ b/todo.md
@@ -10,9 +10,6 @@
- double check stripe upgrade flow and add fireworks
- improve upgrade flow UX
- should we bypass stripe for `free` plans to increase conversions?
- - example usage
- - double check example usage for all TS sdks now that real examples are working
- - fix mcp examples
- **replace json pricing plans and consumers with actual designs**
- double-check free-tier rate-limits for `@agentic/search`
- docs: add notes about constraints on mcp origin servers (static tools)