agents 0.1.3 → 0.1.5

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 (49) hide show
  1. package/README.md +103 -5
  2. package/dist/_esm-LV5FJ3HK.js +3922 -0
  3. package/dist/_esm-LV5FJ3HK.js.map +1 -0
  4. package/dist/ai-chat-agent.js +12 -3
  5. package/dist/ai-chat-agent.js.map +1 -1
  6. package/dist/ai-chat-v5-migration.js +1 -0
  7. package/dist/ai-react.d.ts +6 -0
  8. package/dist/ai-react.js +43 -9
  9. package/dist/ai-react.js.map +1 -1
  10. package/dist/ai-types.d.ts +1 -0
  11. package/dist/ai-types.js +2 -1
  12. package/dist/ccip-CMBYN64O.js +15 -0
  13. package/dist/ccip-CMBYN64O.js.map +1 -0
  14. package/dist/chunk-5Y6BEZDY.js +276 -0
  15. package/dist/chunk-5Y6BEZDY.js.map +1 -0
  16. package/dist/{chunk-AVYJQSLW.js → chunk-BER7KXUJ.js} +2 -1
  17. package/dist/chunk-BER7KXUJ.js.map +1 -0
  18. package/dist/{chunk-YDUDMOL6.js → chunk-HS7VEROK.js} +7 -3
  19. package/dist/chunk-HS7VEROK.js.map +1 -0
  20. package/dist/chunk-JJBFIGUC.js +5202 -0
  21. package/dist/chunk-JJBFIGUC.js.map +1 -0
  22. package/dist/chunk-PR4QN5HX.js +43 -0
  23. package/dist/chunk-PR4QN5HX.js.map +1 -0
  24. package/dist/{chunk-MH46VMM4.js → chunk-SKACXF37.js} +2 -2
  25. package/dist/chunk-SKACXF37.js.map +1 -0
  26. package/dist/chunk-TYAY6AU6.js +159 -0
  27. package/dist/chunk-TYAY6AU6.js.map +1 -0
  28. package/dist/client.js +2 -1
  29. package/dist/index.js +4 -3
  30. package/dist/mcp/client.js +2 -1
  31. package/dist/mcp/do-oauth-client-provider.js +1 -0
  32. package/dist/mcp/index.d.ts +12 -17
  33. package/dist/mcp/index.js +252 -182
  34. package/dist/mcp/index.js.map +1 -1
  35. package/dist/mcp/x402.d.ts +31 -0
  36. package/dist/mcp/x402.js +3195 -0
  37. package/dist/mcp/x402.js.map +1 -0
  38. package/dist/observability/index.js +4 -3
  39. package/dist/react.js +2 -1
  40. package/dist/react.js.map +1 -1
  41. package/dist/schedule.js +2 -0
  42. package/dist/schedule.js.map +1 -1
  43. package/dist/secp256k1-M22GZP2U.js +2193 -0
  44. package/dist/secp256k1-M22GZP2U.js.map +1 -0
  45. package/package.json +10 -5
  46. package/src/index.ts +8 -2
  47. package/dist/chunk-AVYJQSLW.js.map +0 -1
  48. package/dist/chunk-MH46VMM4.js.map +0 -1
  49. package/dist/chunk-YDUDMOL6.js.map +0 -1
package/README.md CHANGED
@@ -342,16 +342,114 @@ export class DialogueAgent extends AIChatAgent {
342
342
  // messages: this.messages,
343
343
  // });
344
344
  //
345
- // // Optional: you can call onFinish here for custom side effects. Message
346
- // // persistence is still handled automatically by AIChatAgent.
347
- // await onFinish?.(result);
348
- // return new Response(result.text, {
349
- // headers: { 'Content-Type': 'text/plain' }
345
+ // // For non-streaming with metadata, use toUIMessage:
346
+ // const message = result.toUIMessage({
347
+ // metadata: {
348
+ // model: 'gpt-4o',
349
+ // totalTokens: result.usage?.totalTokens,
350
+ // }
351
+ // });
352
+ //
353
+ // return new Response(JSON.stringify(message), {
354
+ // headers: { 'Content-Type': 'application/json' }
350
355
  // });
351
356
  }
352
357
  }
353
358
  ```
354
359
 
360
+ #### Metadata Support
361
+
362
+ The AI SDK provides native support for message metadata through the `messageMetadata` callback. This allows you to attach custom information to messages at the message level.
363
+
364
+ ##### AIChatAgent Integration
365
+
366
+ In the context of `AIChatAgent`, you can use metadata like this:
367
+
368
+ ```typescript
369
+ import { AIChatAgent } from "agents/ai-chat-agent";
370
+ import { streamText } from "ai";
371
+ import { openai } from "@ai-sdk/openai";
372
+
373
+ export class MyAgent extends AIChatAgent<Env> {
374
+ async onChatMessage(onFinish) {
375
+ const startTime = Date.now();
376
+
377
+ const result = streamText({
378
+ model: openai("gpt-4o"),
379
+ messages: this.messages,
380
+ onFinish
381
+ });
382
+
383
+ return result.toUIMessageStreamResponse({
384
+ messageMetadata: ({ part }) => {
385
+ if (part.type === "start") {
386
+ return {
387
+ model: "gpt-4o",
388
+ createdAt: Date.now(),
389
+ messageCount: this.messages.length
390
+ };
391
+ }
392
+ if (part.type === "finish") {
393
+ return {
394
+ responseTime: Date.now() - startTime,
395
+ totalTokens: part.totalUsage?.totalTokens
396
+ };
397
+ }
398
+ }
399
+ });
400
+ }
401
+ }
402
+ ```
403
+
404
+ ##### Accessing Metadata on the Client
405
+
406
+ Access metadata through the `message.metadata` property:
407
+
408
+ ```typescript
409
+ 'use client';
410
+
411
+ import { useChat } from '@ai-sdk/react';
412
+ import { DefaultChatTransport } from 'ai';
413
+ import type { MyUIMessage } from '@/types';
414
+
415
+ export default function Chat() {
416
+ const { messages } = useChat<MyUIMessage>({
417
+ transport: new DefaultChatTransport({
418
+ api: '/api/chat',
419
+ }),
420
+ });
421
+
422
+ return (
423
+ <div>
424
+ {messages.map(message => (
425
+ <div key={message.id}>
426
+ <div>
427
+ {message.role === 'user' ? 'User: ' : 'AI: '}
428
+ {message.metadata?.createdAt && (
429
+ <span className="text-sm text-gray-500">
430
+ {new Date(message.metadata.createdAt).toLocaleTimeString()}
431
+ </span>
432
+ )}
433
+ </div>
434
+ {/* Render message content */}
435
+ {message.parts.map((part, index) =>
436
+ part.type === 'text' ? <div key={index}>{part.text}</div> : null,
437
+ )}
438
+ {/* Display additional metadata */}
439
+ {message.metadata?.totalTokens && (
440
+ <div className="text-xs text-gray-400">
441
+ {message.metadata.totalTokens} tokens
442
+ </div>
443
+ )}
444
+ </div>
445
+ ))}
446
+ </div>
447
+ );
448
+ }
449
+ ```
450
+
451
+ For more details, see the [AI SDK Message Metadata documentation](https://ai-sdk.dev/docs/ai-sdk-ui/message-metadata).
452
+
355
453
  #### Creating the Interface
356
454
 
357
455
  Connect with your agent through a React interface: