From b752b0f216ecd6ff75b76cfa282e8d18d783eb59 Mon Sep 17 00:00:00 2001 From: Brian Love Date: Sat, 2 May 2026 10:34:13 -0700 Subject: [PATCH] docs: align submit examples with message input --- apps/website/content/AGENTS.md.template | 2 +- apps/website/content/CLAUDE.md.template | 2 +- .../docs/agent/concepts/agent-architecture.mdx | 8 ++------ .../docs/agent/concepts/angular-signals.mdx | 14 ++++---------- .../docs/agent/concepts/langgraph-basics.mdx | 2 +- .../docs/agent/concepts/state-management.mdx | 8 +++----- .../docs/agent/getting-started/introduction.mdx | 4 +--- .../docs/agent/getting-started/quickstart.mdx | 2 +- .../content/docs/agent/guides/interrupts.mdx | 4 +--- .../website/content/docs/agent/guides/memory.mdx | 8 ++------ .../content/docs/agent/guides/persistence.mdx | 2 +- .../content/docs/agent/guides/streaming.mdx | 2 +- .../content/docs/agent/guides/subgraphs.mdx | 4 +--- .../content/docs/agent/guides/testing.mdx | 16 ++++++++-------- .../content/docs/agent/guides/time-travel.mdx | 10 +++++----- .../docs/chat/api/mock-langgraph-agent.mdx | 2 +- .../content/docs/chat/components/chat-input.mdx | 4 ++-- apps/website/content/docs/getting-started.mdx | 2 +- apps/website/content/prompts/getting-started.md | 2 +- apps/website/public/AGENTS.md | 14 +++++++------- apps/website/public/CLAUDE.md | 14 +++++++------- .../src/components/docs/ArchFlowDiagram.tsx | 2 +- .../website/src/components/landing/CodeBlock.tsx | 2 +- .../components/landing/DeepAgentsShowcase.tsx | 4 +--- .../src/components/landing/LangGraphShowcase.tsx | 8 ++++---- packages/mcp/src/tools/get-example.ts | 2 +- .../mcp/src/tools/scaffold-chat-component.ts | 2 +- 27 files changed, 61 insertions(+), 85 deletions(-) diff --git a/apps/website/content/AGENTS.md.template b/apps/website/content/AGENTS.md.template index 588ec58cc..f32de2f6f 100644 --- a/apps/website/content/AGENTS.md.template +++ b/apps/website/content/AGENTS.md.template @@ -26,7 +26,7 @@ import type { BaseMessage } from '@langchain/core/messages'; `}) export class ChatComponent { chat = agent<{ messages: BaseMessage[] }>({ assistantId: 'chat_agent' }); - send() { this.chat.submit({ messages: [{ role: 'human', content: 'Hello' }] }); } + send() { this.chat.submit({ message: 'Hello' }); } } ``` diff --git a/apps/website/content/CLAUDE.md.template b/apps/website/content/CLAUDE.md.template index 588ec58cc..f32de2f6f 100644 --- a/apps/website/content/CLAUDE.md.template +++ b/apps/website/content/CLAUDE.md.template @@ -26,7 +26,7 @@ import type { BaseMessage } from '@langchain/core/messages'; `}) export class ChatComponent { chat = agent<{ messages: BaseMessage[] }>({ assistantId: 'chat_agent' }); - send() { this.chat.submit({ messages: [{ role: 'human', content: 'Hello' }] }); } + send() { this.chat.submit({ message: 'Hello' }); } } ``` diff --git a/apps/website/content/docs/agent/concepts/agent-architecture.mdx b/apps/website/content/docs/agent/concepts/agent-architecture.mdx index 1ba680049..0f9307d11 100644 --- a/apps/website/content/docs/agent/concepts/agent-architecture.mdx +++ b/apps/website/content/docs/agent/concepts/agent-architecture.mdx @@ -186,9 +186,7 @@ export class ReactAgentComponent { completedTools = computed(() => this.agent.toolCalls()); send(text: string) { - this.agent.submit({ - messages: [{ role: 'human', content: text }], - }); + this.agent.submit({ message: text }); } } ``` @@ -450,9 +448,7 @@ export class MultiAgentComponent { completedTools = computed(() => this.orchestrator.toolCalls()); send(text: string) { - this.orchestrator.submit({ - messages: [{ role: 'human', content: text }], - }); + this.orchestrator.submit({ message: text }); } } ``` diff --git a/apps/website/content/docs/agent/concepts/angular-signals.mdx b/apps/website/content/docs/agent/concepts/angular-signals.mdx index 17b6285e5..cc49199f7 100644 --- a/apps/website/content/docs/agent/concepts/angular-signals.mdx +++ b/apps/website/content/docs/agent/concepts/angular-signals.mdx @@ -105,7 +105,7 @@ console.log(chat.isLoading()); // false After calling `submit()`, the status transitions to `'loading'`. The SSE connection is open and the agent is processing. ```typescript -chat.submit({ messages: [{ role: 'user', content: 'Explain quantum computing' }] }); +chat.submit({ message: 'Explain quantum computing' }); console.log(chat.status()); // 'loading' console.log(chat.isLoading()); // true @@ -361,16 +361,12 @@ export class ChatComponent { const content = input.value.trim(); if (!content) return; - this.chat.submit({ - messages: [{ role: 'user', content }], - }); + this.chat.submit({ message: content }); input.value = ''; } retry() { - this.chat.submit({ - messages: [{ role: 'user', content: 'Please try again.' }], - }); + this.chat.submit({ message: 'Please try again.' }); } } ``` @@ -502,9 +498,7 @@ export class ChatComponent { hasError = computed(() => this.chat.status() === 'error'); sendMessage(content: string) { - this.chat.submit({ - messages: [{ role: 'user', content }], - }); + this.chat.submit({ message: content }); } } ``` diff --git a/apps/website/content/docs/agent/concepts/langgraph-basics.mdx b/apps/website/content/docs/agent/concepts/langgraph-basics.mdx index 6b573de35..b78bc25c0 100644 --- a/apps/website/content/docs/agent/concepts/langgraph-basics.mdx +++ b/apps/website/content/docs/agent/concepts/langgraph-basics.mdx @@ -277,7 +277,7 @@ Here's why agent() is the natural Angular companion for LangGraph: -Calls `submit({ messages: [userMsg] })` to send user input +Calls `submit({ message: text })` to send user input Passes input to the transport layer diff --git a/apps/website/content/docs/agent/concepts/state-management.mdx b/apps/website/content/docs/agent/concepts/state-management.mdx index 18f6fb8c5..3bcfe4f00 100644 --- a/apps/website/content/docs/agent/concepts/state-management.mdx +++ b/apps/website/content/docs/agent/concepts/state-management.mdx @@ -14,7 +14,7 @@ This inversion is intentional. Agent state can span multiple LLM calls, tool exe -Your Angular component calls `agent.submit({ messages: [userMsg] })`. No state is stored in the component. +Your Angular component calls `agent.submit({ message: text })`. No state is stored in the component. `@ngaf/langgraph` forwards the input to `FetchStreamTransport`, which opens an HTTP POST and SSE connection to LangGraph Platform. @@ -308,7 +308,7 @@ export class ChatComponent { send() { const text = this.inputText(); if (!text.trim()) return; - this.agent.submit({ messages: [{ role: 'user', content: text }] }); + this.agent.submit({ message: text }); this.inputText.set(''); // UI state — clear the input } @@ -492,9 +492,7 @@ export class ResearchComponent { }); startResearch(query: string) { - this.agent.submit({ - messages: [{ role: 'user', content: query }], - }); + this.agent.submit({ message: query }); } } ``` diff --git a/apps/website/content/docs/agent/getting-started/introduction.mdx b/apps/website/content/docs/agent/getting-started/introduction.mdx index 738c9f797..afc1f58b0 100644 --- a/apps/website/content/docs/agent/getting-started/introduction.mdx +++ b/apps/website/content/docs/agent/getting-started/introduction.mdx @@ -181,9 +181,7 @@ export class ChatComponent { send() { const msg = this.input(); if (!msg.trim()) return; - this.chat.submit({ - messages: [{ role: 'user', content: msg }], - }); + this.chat.submit({ message: msg }); this.input.set(''); } } diff --git a/apps/website/content/docs/agent/getting-started/quickstart.mdx b/apps/website/content/docs/agent/getting-started/quickstart.mdx index eafa4ebcf..9dabdcb83 100644 --- a/apps/website/content/docs/agent/getting-started/quickstart.mdx +++ b/apps/website/content/docs/agent/getting-started/quickstart.mdx @@ -65,7 +65,7 @@ export class ChatComponent { send() { const msg = this.input(); if (!msg.trim()) return; - this.chat.submit({ messages: [{ role: 'user', content: msg }] }); + this.chat.submit({ message: msg }); this.input.set(''); } } diff --git a/apps/website/content/docs/agent/guides/interrupts.mdx b/apps/website/content/docs/agent/guides/interrupts.mdx index 39cac60ef..08309de6b 100644 --- a/apps/website/content/docs/agent/guides/interrupts.mdx +++ b/apps/website/content/docs/agent/guides/interrupts.mdx @@ -182,9 +182,7 @@ export class ApprovalComponent { }); send(input: string) { - this.agent.submit({ - messages: [{ role: 'user', content: input }], - }); + this.agent.submit({ message: input }); } approve() { diff --git a/apps/website/content/docs/agent/guides/memory.mdx b/apps/website/content/docs/agent/guides/memory.mdx index 81cb40c5c..371ed8be0 100644 --- a/apps/website/content/docs/agent/guides/memory.mdx +++ b/apps/website/content/docs/agent/guides/memory.mdx @@ -103,9 +103,7 @@ export class MemoryChatComponent { messages = computed(() => this.agent.messages()); send(input: string) { - this.agent.submit({ - messages: [{ role: 'user', content: input }], - }); + this.agent.submit({ message: input }); } } ``` @@ -285,9 +283,7 @@ export class LongTermChatComponent { messages = computed(() => this.agent.messages()); send(input: string) { - this.agent.submit({ - messages: [{ role: 'user', content: input }], - }); + this.agent.submit({ message: input }); } } ``` diff --git a/apps/website/content/docs/agent/guides/persistence.mdx b/apps/website/content/docs/agent/guides/persistence.mdx index e5f00d6fb..90773a2d3 100644 --- a/apps/website/content/docs/agent/guides/persistence.mdx +++ b/apps/website/content/docs/agent/guides/persistence.mdx @@ -128,7 +128,7 @@ export class ChatComponent { }); send(text: string) { - this.chat.submit({ messages: [{ role: 'user', content: text }] }); + this.chat.submit({ message: text }); } } ``` diff --git a/apps/website/content/docs/agent/guides/streaming.mdx b/apps/website/content/docs/agent/guides/streaming.mdx index 39017ff68..64d7e8d62 100644 --- a/apps/website/content/docs/agent/guides/streaming.mdx +++ b/apps/website/content/docs/agent/guides/streaming.mdx @@ -75,7 +75,7 @@ export class ChatComponent { readonly isStreaming = computed(() => this.chat.status() === 'loading'); send(text: string) { - this.chat.submit({ messages: [{ role: 'user', content: text }] }); + this.chat.submit({ message: text }); } } ``` diff --git a/apps/website/content/docs/agent/guides/subgraphs.mdx b/apps/website/content/docs/agent/guides/subgraphs.mdx index 9ff503eb5..50382a966 100644 --- a/apps/website/content/docs/agent/guides/subgraphs.mdx +++ b/apps/website/content/docs/agent/guides/subgraphs.mdx @@ -92,9 +92,7 @@ export class OrchestratorComponent { readonly runningCount = computed(() => this.running().length); send(text: string) { - this.orchestrator.submit({ - messages: [{ role: 'user', content: text }], - }); + this.orchestrator.submit({ message: text }); } } ``` diff --git a/apps/website/content/docs/agent/guides/testing.mdx b/apps/website/content/docs/agent/guides/testing.mdx index a30f3c496..795fb6935 100644 --- a/apps/website/content/docs/agent/guides/testing.mdx +++ b/apps/website/content/docs/agent/guides/testing.mdx @@ -94,7 +94,7 @@ export class ChatComponent { }); send(text: string) { - this.chat.submit({ messages: [{ role: 'user', content: text }] }); + this.chat.submit({ message: text }); } } ``` @@ -120,7 +120,7 @@ TestBed.runInInjectionContext(() => { transport, }); - chat.submit({ messages: [{ role: 'user', content: 'Explain signals' }] }); + chat.submit({ message: 'Explain signals' }); // Step through each batch transport.nextBatch(); @@ -160,7 +160,7 @@ describe('streaming lifecycle', () => { expect(chat.messages()).toEqual([]); // Submit triggers loading - chat.submit({ messages: [{ role: 'user', content: 'Hello' }] }); + chat.submit({ message: 'Hello' }); expect(chat.status()).toBe('loading'); expect(chat.isLoading()).toBe(true); @@ -207,7 +207,7 @@ export class ChatComponent { }); send(text: string) { - this.chat.submit({ messages: [{ role: 'user', content: text }] }); + this.chat.submit({ message: text }); } } ``` @@ -327,7 +327,7 @@ describe('error handling', () => { transport, }); - chat.submit({ messages: [{ role: 'user', content: 'Hello' }] }); + chat.submit({ message: 'Hello' }); // Simulate a connection failure transport.emitError(new Error('Connection lost')); @@ -349,12 +349,12 @@ describe('error handling', () => { }); // First attempt fails - chat.submit({ messages: [{ role: 'user', content: 'Hello' }] }); + chat.submit({ message: 'Hello' }); transport.emitError(new Error('Timeout')); expect(chat.status()).toBe('error'); // Retry succeeds - chat.submit({ messages: [{ role: 'user', content: 'Hello' }] }); + chat.submit({ message: 'Hello' }); transport.emit([ { type: 'values', @@ -396,7 +396,7 @@ export class ChatComponent { send(text: string) { this.lastMessage = text; - this.chat.submit({ messages: [{ role: 'user', content: text }] }); + this.chat.submit({ message: text }); } retry() { diff --git a/apps/website/content/docs/agent/guides/time-travel.mdx b/apps/website/content/docs/agent/guides/time-travel.mdx index 8c84a1ff6..b99d4abad 100644 --- a/apps/website/content/docs/agent/guides/time-travel.mdx +++ b/apps/website/content/docs/agent/guides/time-travel.mdx @@ -85,7 +85,7 @@ export class HistoryViewerComponent { const checkpoint = this.rawCheckpoints()[index]?.checkpoint; if (!checkpoint) return; this.agent.submit( - { messages: [{ role: 'user', content: 'Try a different approach' }] }, + { message: 'Try a different approach' }, { checkpoint } ); } @@ -134,7 +134,7 @@ forkFromCheckpoint(index: number) { const checkpoint = this.agent.langGraphHistory()[index]?.checkpoint; if (!checkpoint) return; this.agent.submit( - { messages: [{ role: 'user', content: 'Try a different approach' }] }, + { message: 'Try a different approach' }, { checkpoint } ); } @@ -144,7 +144,7 @@ retryWithAlternative(index: number, newInput: string) { const checkpoint = this.agent.langGraphHistory()[index]?.checkpoint; if (!checkpoint) return; this.agent.submit( - { messages: [{ role: 'user', content: newInput }] }, + { message: newInput }, { checkpoint } ); } @@ -197,7 +197,7 @@ export class HistoryViewerComponent { const checkpoint = this.rawCheckpoints()[index]?.checkpoint; if (!checkpoint) return; this.agent.submit( - { messages: [{ role: 'user', content: 'Try a different approach' }] }, + { message: 'Try a different approach' }, { checkpoint } ); } @@ -283,7 +283,7 @@ export class ReplayComponent { const checkpoint = this.rawHistory()[index]?.checkpoint; if (!checkpoint) return; this.agent.submit( - { messages: [{ role: 'user', content: newMessage }] }, + { message: newMessage }, { checkpoint } ); } diff --git a/apps/website/content/docs/chat/api/mock-langgraph-agent.mdx b/apps/website/content/docs/chat/api/mock-langgraph-agent.mdx index 82464961e..c349cefe4 100644 --- a/apps/website/content/docs/chat/api/mock-langgraph-agent.mdx +++ b/apps/website/content/docs/chat/api/mock-langgraph-agent.mdx @@ -233,6 +233,6 @@ agent.submit = submitSpy; // After triggering a submit in the component: expect(submitSpy).toHaveBeenCalledWith({ - messages: [{ role: 'human', content: 'Hello' }], + message: 'Hello', }); ``` diff --git a/apps/website/content/docs/chat/components/chat-input.mdx b/apps/website/content/docs/chat/components/chat-input.mdx index 80f6ff5a4..7e25f376e 100644 --- a/apps/website/content/docs/chat/components/chat-input.mdx +++ b/apps/website/content/docs/chat/components/chat-input.mdx @@ -45,7 +45,7 @@ When the user submits (via Enter key or clicking the send button): 1. The message text is trimmed 2. If empty after trimming, nothing happens -3. `ref.submit()` is called with `{ messages: [{ role: 'human', content: trimmed }] }` +3. `ref.submit()` is called with `{ message: trimmed }` 4. The `submitted` output emits the trimmed text 5. The input is cleared 6. Focus is returned to the textarea @@ -94,7 +94,7 @@ function submitMessage( **Returns:** The trimmed message string if submitted, or `null` if the trimmed text was empty. -The function calls `ref.submit({ messages: [{ role: 'human', content: trimmed }] })` under the hood. +The function calls `ref.submit({ message: trimmed })` under the hood. ## Styling diff --git a/apps/website/content/docs/getting-started.mdx b/apps/website/content/docs/getting-started.mdx index fcf86b3d0..76151a849 100644 --- a/apps/website/content/docs/getting-started.mdx +++ b/apps/website/content/docs/getting-started.mdx @@ -32,7 +32,7 @@ import { agent } from 'angular'; @for (msg of chat.messages(); track $index) {

{{ msg.content }}

} - `, diff --git a/apps/website/content/prompts/getting-started.md b/apps/website/content/prompts/getting-started.md index 140482e54..54ee943ea 100644 --- a/apps/website/content/prompts/getting-started.md +++ b/apps/website/content/prompts/getting-started.md @@ -6,7 +6,7 @@ Install: npm install @ngaf/langgraph@latest 2. Create a ChatComponent that calls agent<{ messages: BaseMessage[] }>({ assistantId: 'chat_agent' }) in the constructor or as a field initializer. agent() MUST be called inside an Angular injection context — constructor or field initializer is correct; ngOnInit is not. -3. The component template should loop over chat.messages() using @for and render each message's content. Add an input field and a button that calls chat.submit({ messages: [{ role: 'human', content: inputValue }] }). +3. The component template should loop over chat.messages() using @for and render each message's content. Add an input field and a button that calls chat.submit({ message: inputValue }). 4. In app.config.ts provideAgent call, the apiUrl should point to the LangGraph server. For local dev this is http://localhost:2024. For production use the LangGraph Platform URL from environment.ts. diff --git a/apps/website/public/AGENTS.md b/apps/website/public/AGENTS.md index 1ed806f13..cdd8dccbc 100644 --- a/apps/website/public/AGENTS.md +++ b/apps/website/public/AGENTS.md @@ -1,9 +1,9 @@ -# Angular Agent Framework v0.0.1 +# Angular Agent Framework v0.1.0 -Angular streaming library for LangChain/LangGraph. Provides `agent()` — full parity with React's `useStream()`. +Angular agent framework for LangChain/LangGraph. Provides `agent()` — Signal-native streaming for Angular agents, built for LangGraph. ## Install -npm install angular +npm install @ngaf/langgraph ## Key requirement `agent()` MUST be called within an Angular injection context (component constructor or field initializer). Calling it in ngOnInit or any async context throws "NG0203: inject() must be called from an injection context". @@ -11,13 +11,13 @@ npm install angular ## Basic usage ```typescript // app.config.ts -import { provideAgent } from 'angular'; +import { provideAgent } from '@ngaf/langgraph'; export const appConfig: ApplicationConfig = { providers: [provideAgent({ apiUrl: 'http://localhost:2024' })] }; // chat.component.ts -import { agent } from 'angular'; +import { agent } from '@ngaf/langgraph'; import type { BaseMessage } from '@langchain/core/messages'; @Component({ template: ` @@ -26,7 +26,7 @@ import type { BaseMessage } from '@langchain/core/messages'; `}) export class ChatComponent { chat = agent<{ messages: BaseMessage[] }>({ assistantId: 'chat_agent' }); - send() { this.chat.submit({ messages: [{ role: 'human', content: 'Hello' }] }); } + send() { this.chat.submit({ message: 'Hello' }); } } ``` @@ -38,7 +38,7 @@ export class ChatComponent { ## MCP server (for tool access) Add to ~/.claude/settings.json: -{"mcpServers":{"angular":{"command":"npx","args":["@angular/mcp"]}}} +{"mcpServers":{"angular-agent":{"command":"npx","args":["@ngaf/langgraph-mcp"]}}} ## Version check If this file is stale, fetch the latest: https://cacheplane.ai/llms-full.txt diff --git a/apps/website/public/CLAUDE.md b/apps/website/public/CLAUDE.md index 1ed806f13..cdd8dccbc 100644 --- a/apps/website/public/CLAUDE.md +++ b/apps/website/public/CLAUDE.md @@ -1,9 +1,9 @@ -# Angular Agent Framework v0.0.1 +# Angular Agent Framework v0.1.0 -Angular streaming library for LangChain/LangGraph. Provides `agent()` — full parity with React's `useStream()`. +Angular agent framework for LangChain/LangGraph. Provides `agent()` — Signal-native streaming for Angular agents, built for LangGraph. ## Install -npm install angular +npm install @ngaf/langgraph ## Key requirement `agent()` MUST be called within an Angular injection context (component constructor or field initializer). Calling it in ngOnInit or any async context throws "NG0203: inject() must be called from an injection context". @@ -11,13 +11,13 @@ npm install angular ## Basic usage ```typescript // app.config.ts -import { provideAgent } from 'angular'; +import { provideAgent } from '@ngaf/langgraph'; export const appConfig: ApplicationConfig = { providers: [provideAgent({ apiUrl: 'http://localhost:2024' })] }; // chat.component.ts -import { agent } from 'angular'; +import { agent } from '@ngaf/langgraph'; import type { BaseMessage } from '@langchain/core/messages'; @Component({ template: ` @@ -26,7 +26,7 @@ import type { BaseMessage } from '@langchain/core/messages'; `}) export class ChatComponent { chat = agent<{ messages: BaseMessage[] }>({ assistantId: 'chat_agent' }); - send() { this.chat.submit({ messages: [{ role: 'human', content: 'Hello' }] }); } + send() { this.chat.submit({ message: 'Hello' }); } } ``` @@ -38,7 +38,7 @@ export class ChatComponent { ## MCP server (for tool access) Add to ~/.claude/settings.json: -{"mcpServers":{"angular":{"command":"npx","args":["@angular/mcp"]}}} +{"mcpServers":{"angular-agent":{"command":"npx","args":["@ngaf/langgraph-mcp"]}}} ## Version check If this file is stale, fetch the latest: https://cacheplane.ai/llms-full.txt diff --git a/apps/website/src/components/docs/ArchFlowDiagram.tsx b/apps/website/src/components/docs/ArchFlowDiagram.tsx index 5c90ecd27..a665887c2 100644 --- a/apps/website/src/components/docs/ArchFlowDiagram.tsx +++ b/apps/website/src/components/docs/ArchFlowDiagram.tsx @@ -9,7 +9,7 @@ interface LogEntry { } const SCENARIO: { delay: number; chatBubble?: { role: 'user' | 'assistant'; text: string; streaming?: boolean }; log: LogEntry }[] = [ - { delay: 0, chatBubble: { role: 'user', text: 'How do Angular Signals work with streaming?' }, log: { time: '0.00s', source: 'angular', message: 'chat.submit({ messages: [userMsg] })' } }, + { delay: 0, chatBubble: { role: 'user', text: 'How do Angular Signals work with streaming?' }, log: { time: '0.00s', source: 'angular', message: 'chat.submit({ message: userText })' } }, { delay: 800, log: { time: '0.02s', source: 'transport', message: 'POST /threads/t_8f3a/runs/stream → 200' } }, { delay: 1200, log: { time: '0.04s', source: 'langgraph', message: 'Executing node: call_model (gpt-5-mini)' } }, { delay: 2200, log: { time: '0.82s', source: 'langgraph', message: 'SSE event: { type: "values", messages: [...] }' } }, diff --git a/apps/website/src/components/landing/CodeBlock.tsx b/apps/website/src/components/landing/CodeBlock.tsx index 64857f74b..95ff070b7 100644 --- a/apps/website/src/components/landing/CodeBlock.tsx +++ b/apps/website/src/components/landing/CodeBlock.tsx @@ -15,7 +15,7 @@ const TEMPLATE_EXAMPLE = ` @for (msg of chat.messages(); track $index) {

{{ msg.content }}

} -`; +`; export async function CodeBlock() { const tsHtml = await codeToHtml(EXAMPLE, { diff --git a/apps/website/src/components/landing/DeepAgentsShowcase.tsx b/apps/website/src/components/landing/DeepAgentsShowcase.tsx index 6452c364a..912089bdb 100644 --- a/apps/website/src/components/landing/DeepAgentsShowcase.tsx +++ b/apps/website/src/components/landing/DeepAgentsShowcase.tsx @@ -68,9 +68,7 @@ const agent = agent({ // Memory persists across conversations // Agent recalls user preferences, // past decisions, and project context -agent.submit({ - messages: [{ role: 'user', content: query }], -});`, +agent.submit({ message: query });`, lang: 'typescript' as const, }, ]; diff --git a/apps/website/src/components/landing/LangGraphShowcase.tsx b/apps/website/src/components/landing/LangGraphShowcase.tsx index e41311422..32ac8e40c 100644 --- a/apps/website/src/components/landing/LangGraphShowcase.tsx +++ b/apps/website/src/components/landing/LangGraphShowcase.tsx @@ -58,10 +58,10 @@ agent.submit({ resume: { approved: true } });`, const history = agent.history(); // Fork from a previous state -agent.submit({ - checkpoint: history[2].checkpoint, - messages: [{ role: 'user', content: 'Try again' }], -});`, +agent.submit( + { message: 'Try again' }, + { checkpoint: history[2].checkpoint }, +);`, lang: 'typescript' as const, }, ]; diff --git a/packages/mcp/src/tools/get-example.ts b/packages/mcp/src/tools/get-example.ts index cd9874dcc..18aebe4b4 100644 --- a/packages/mcp/src/tools/get-example.ts +++ b/packages/mcp/src/tools/get-example.ts @@ -20,7 +20,7 @@ export class ChatComponent { chat = agent<{ messages: BaseMessage[] }>({ assistantId: 'chat_agent' }); send(content: string) { if (!content.trim()) return; - this.chat.submit({ messages: [{ role: 'human', content }] } as any); + this.chat.submit({ message: content }); } }`, diff --git a/packages/mcp/src/tools/scaffold-chat-component.ts b/packages/mcp/src/tools/scaffold-chat-component.ts index 33b54e0ff..e4b30e6f4 100644 --- a/packages/mcp/src/tools/scaffold-chat-component.ts +++ b/packages/mcp/src/tools/scaffold-chat-component.ts @@ -65,7 +65,7 @@ export class ${componentName} {${persistenceFields} const content = input.value.trim(); if (!content) return; input.value = ''; - this.chat.submit({ messages: [{ role: 'human', content }] } as any); + this.chat.submit({ message: content }); } }`;