Skip to content

Commit 1bdd0af

Browse files
authored
Merge pull request #126 from ssdeanx/develop
Big Update.
2 parents dee9344 + 775f77b commit 1bdd0af

40 files changed

Lines changed: 5011 additions & 1441 deletions

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,3 +180,6 @@ src/mastra/tracing.ts
180180
src/mastra/public/storage/key_value_stores/default/SDK_CRAWLER_STATISTICS_0.json
181181
src/mastra/public/storage/key_value_stores/default/SDK_SESSION_POOL_STATE.json
182182
src/mastra/public/workspace/workspace/iran-war-report.md
183+
.env.local.bak
184+
thoughts/ledgers/CONTINUITY_ses_303c.md
185+
thoughts/ledgers/CONTINUITY_ses_303d.md

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!-- AGENTS-META {"title":"AgentStack README","version":"1.2.1","applies_to":"/","last_updated":"2026-02-27","status":"stable"} -->
1+
<!-- AGENTS-META {"title":"AgentStack README","version":"1.3.1","applies_to":"/","last_updated":"2026-03-17","status":"stable"} -->
22

33
<div align="center">
44

@@ -1232,10 +1232,10 @@ export function AgentsList() {
12321232

12331233
- `lib/mastra-client.ts` - MastraClient configuration for frontend
12341234
- `lib/hooks/` - TanStack Query hooks for data fetching (15+ hooks)
1235-
- `use-dashboard-queries.ts` - Agents, workflows, tools, traces, threads, messages, vectors
1236-
- `use-mastra.ts` - Generic fetch hook with loading/error states
1235+
- `use-dashboard-queries.ts` - Agents, workflows, tools, traces, threads, messages, vectors
1236+
- `use-mastra.ts` - Generic fetch hook with loading/error states
12371237
- `lib/types/` - Zod schemas and TypeScript types
1238-
- `mastra-api.ts` - Agent, Workflow, Tool, Trace, Message, Vector types
1238+
- `mastra-api.ts` - Agent, Workflow, Tool, Trace, Message, Vector types
12391239
- `lib/utils.ts` - Shared utilities (cn, formatDate, etc.)
12401240
- `lib/a2a.ts` - Agent-to-agent coordination utilities
12411241
- `lib/auth.ts` - Authentication utilities
@@ -2319,10 +2319,10 @@ We are committed to providing a welcoming and inclusive experience for everyone:
23192319
**Shared Libraries:**
23202320

23212321
- **[lib/hooks](lib/hooks/)**: TanStack Query hooks for data fetching (15+ hooks)
2322-
- `use-dashboard-queries.ts` - Agents, workflows, tools, traces, threads, messages, vectors
2323-
- `use-mastra.ts` - Generic fetch hook with loading/error states
2322+
- `use-dashboard-queries.ts` - Agents, workflows, tools, traces, threads, messages, vectors
2323+
- `use-mastra.ts` - Generic fetch hook with loading/error states
23242324
- **[lib/types](lib/types/)**: Zod schemas and TypeScript types
2325-
- `mastra-api.ts` - Agent, Workflow, Tool, Trace, Message, Vector types
2325+
- `mastra-api.ts` - Agent, Workflow, Tool, Trace, Message, Vector types
23262326
- **[lib/](lib/)**: Client SDK, utilities, auth, A2A coordination
23272327

23282328
**Core Components:**
@@ -2362,7 +2362,7 @@ We are committed to providing a welcoming and inclusive experience for everyone:
23622362
🐦 **Follow [@ssdeanx](https://x.com/ssdeanx)**
23632363
📘 **[Docs](https://agentstack.ai)** (Coming Q1 2026)
23642364

2365-
_Last updated: 2026-02-16 | v3.4.0_
2365+
_Last updated: 2026-03-17 | v1.3.1_
23662366

23672367
## 🧠 **Chat**
23682368

app/AGENTS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ From `components.json`:
6464

6565
## Recent Updates
6666

67+
- 2026-03-18: Landing motion/runtime fix:
68+
- `app/components/network-background.tsx` must import `gsap` explicitly before calling it inside `useGSAP` callbacks.
69+
- For SVG groups in React/Next (`<g>`), avoid JSX props like `transform-origin` / `transformOrigin`; prefer GSAP runtime `transformOrigin` settings or `style` when needed.
70+
6771
- 2026-02-16: Public subpages upgraded for premium consistency:
6872
- Migrated major subpage content components to shared `PublicPageHero` with GSAP SVG accents (`blog`, `changelog`, `examples`, `api-reference`, `pricing`, `contact`).
6973
- Added focus-visible accessibility polish and explicit empty-state handling for list/search-heavy pages.

app/chat/components/AGENTS.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
<!-- AGENTS-META {"title":"Chat Components","version":"3.0.0","applies_to":"app/chat/components/","last_updated":"2026-02-17T00:00:00Z","status":"stable"} -->
22

3+
## Recent Update (2026-03-17)
4+
5+
- `agent-tools.tsx` now explicitly routes browser-family backend tool ids to custom UI cards instead of relying on generic fallback rendering.
6+
- For new tool integrations, prefer direct file-level imports for the card implementation when barrel/index resolution becomes unstable during refactors.
7+
38
# Chat Components
49

510
## Overview

app/chat/components/agent-tools.tsx

Lines changed: 140 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,37 +12,63 @@ import type { DynamicToolUIPart } from 'ai'
1212
import { cn } from '@/lib/utils'
1313
import { useMemo } from 'react'
1414
import type { AgentToolsProps } from './chat.types'
15+
import {
16+
BrowserToolCard,
17+
ScreenshotCard,
18+
PdfGeneratorCard,
19+
ClickAndExtractCard,
20+
FillFormCard,
21+
GoogleSearchCard,
22+
MonitorPageCard,
23+
} from '@/src/components/ai-elements/tools/browser-tool'
1524

1625
// Import custom tool components
1726
import {
1827
WebScraperTool,
19-
BatchWebScraperTool,
20-
SiteMapExtractorTool,
21-
LinkExtractorTool,
28+
} from '@/src/components/ai-elements/tools/web-scraper-tool'
29+
import { BatchWebScraperTool } from '@/src/components/ai-elements/tools/batch-web-scraper-tool'
30+
import { SiteMapExtractorTool } from '@/src/components/ai-elements/tools/site-map-extractor-tool'
31+
import { LinkExtractorTool } from '@/src/components/ai-elements/tools/link-extractor-tool'
32+
import {
2233
FinancialQuoteCard,
2334
FinancialChart,
2435
CompanyProfileCard,
36+
} from '@/src/components/ai-elements/tools/financial-tools'
37+
import {
2538
RepositoryCard,
2639
PullRequestList,
2740
IssueCard,
2841
CommitHistoryList,
29-
WeatherCard,
30-
ForecastView,
31-
ArxivPaperCard,
32-
type WebScraperUITool,
33-
type BatchWebScraperUITool,
34-
type SiteMapExtractorUITool,
35-
type LinkExtractorUITool,
36-
type FinnhubQuotesUITool,
37-
type PolygonStockQuotesUITool,
38-
type ChartSupervisorUITool,
39-
type ListRepositoriesUITool,
40-
type ListPullRequestsUITool,
41-
type GetIssueUITool,
42-
type ListCommitsUITool,
43-
type WeatherUITool, // Assuming this exists for WeatherCard and ForecastView
44-
type ArxivUITool,
45-
} from '@/src/components/ai-elements/tools'
42+
} from '@/src/components/ai-elements/tools/github-tools'
43+
import { WeatherCard, ForecastView } from '@/src/components/ai-elements/tools/weather-tool'
44+
import { ArxivPaperCard } from '@/src/components/ai-elements/tools/research-tools'
45+
import type {
46+
WebScraperUITool,
47+
BatchWebScraperUITool,
48+
SiteMapExtractorUITool,
49+
LinkExtractorUITool,
50+
FinnhubQuotesUITool,
51+
PolygonStockQuotesUITool,
52+
ChartSupervisorUITool,
53+
ListRepositoriesUITool,
54+
ListPullRequestsUITool,
55+
GetIssueUITool,
56+
ListCommitsUITool,
57+
WeatherUITool,
58+
ArxivUITool,
59+
} from '@/src/components/ai-elements/tools/types'
60+
61+
interface BrowserToolInput {
62+
url: string
63+
}
64+
65+
interface BrowserClickAndExtractInput extends BrowserToolInput {
66+
clickSelector?: string
67+
}
68+
69+
interface BrowserSearchInput {
70+
query: string
71+
}
4672

4773
function getProgressMessage(
4874
tool: ToolInvocationState | DynamicToolUIPart
@@ -195,6 +221,100 @@ export function AgentTools({ tools, className }: AgentToolsProps) {
195221
)
196222
}
197223

224+
if (
225+
(toolName === 'browserTool' || toolName === 'browser') &&
226+
hasOutput
227+
) {
228+
return (
229+
<BrowserToolCard
230+
key={`${id}-${toolName}-${toolState}-${groupIdx}`}
231+
toolCallId={id}
232+
input={latest.input as BrowserToolInput}
233+
output={latest.output}
234+
errorText={errorText}
235+
/>
236+
)
237+
}
238+
239+
if (
240+
(toolName === 'screenshotTool' ||
241+
toolName === 'screenshot') &&
242+
hasOutput
243+
) {
244+
return (
245+
<ScreenshotCard
246+
key={`${id}-${toolName}-${toolState}-${groupIdx}`}
247+
toolCallId={id}
248+
input={latest.input as BrowserToolInput}
249+
output={latest.output}
250+
errorText={errorText}
251+
/>
252+
)
253+
}
254+
255+
if (
256+
(toolName === 'pdfGeneratorTool' || toolName === 'pdf') &&
257+
hasOutput
258+
) {
259+
return (
260+
<PdfGeneratorCard
261+
key={`${id}-${toolName}-${toolState}-${groupIdx}`}
262+
toolCallId={id}
263+
input={latest.input as BrowserToolInput}
264+
output={latest.output}
265+
errorText={errorText}
266+
/>
267+
)
268+
}
269+
270+
if (toolName === 'clickAndExtractTool' && hasOutput) {
271+
return (
272+
<ClickAndExtractCard
273+
key={`${id}-${toolName}-${toolState}-${groupIdx}`}
274+
toolCallId={id}
275+
input={latest.input as BrowserClickAndExtractInput}
276+
output={latest.output}
277+
errorText={errorText}
278+
/>
279+
)
280+
}
281+
282+
if (toolName === 'fillFormTool' && hasOutput) {
283+
return (
284+
<FillFormCard
285+
key={`${id}-${toolName}-${toolState}-${groupIdx}`}
286+
toolCallId={id}
287+
input={latest.input as BrowserToolInput}
288+
output={latest.output}
289+
errorText={errorText}
290+
/>
291+
)
292+
}
293+
294+
if (toolName === 'googleSearch' && hasOutput) {
295+
return (
296+
<GoogleSearchCard
297+
key={`${id}-${toolName}-${toolState}-${groupIdx}`}
298+
toolCallId={id}
299+
input={latest.input as BrowserSearchInput}
300+
output={latest.output}
301+
errorText={errorText}
302+
/>
303+
)
304+
}
305+
306+
if (toolName === 'monitorPageTool' && hasOutput) {
307+
return (
308+
<MonitorPageCard
309+
key={`${id}-${toolName}-${toolState}-${groupIdx}`}
310+
toolCallId={id}
311+
input={latest.input as BrowserToolInput}
312+
output={latest.output}
313+
errorText={errorText}
314+
/>
315+
)
316+
}
317+
198318
if (
199319
(toolName === 'finnhub-quotes' ||
200320
toolName === 'polygon-stock-quotes') &&

0 commit comments

Comments
 (0)