@convex-dev/agent 0.0.6 → 0.0.8

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.
package/README.md CHANGED
@@ -10,11 +10,11 @@ AI Agent framework built on Convex.
10
10
  - RAG for chat context, via hybrid text & vector search, with configuration options.
11
11
  Or use the API to query the history yourself and do it your way.
12
12
  - Opt-in search for messages from other threads (for the same specified user).
13
- - Support for generating and storing objects in messages (as JSON).
13
+ - Support for generating / streaming objects and storing them in messages (as JSON).
14
14
  - Tool calls via the AI SDK, along with Convex-specific helpers.
15
15
  - Easy workflow integration with the [Workflow component](https://convex.dev/components/workflow).
16
16
  - Reactive & realtime updates to asynchronous threads.
17
- - Support for streaming text and storing the result in the database.
17
+ - Support for streaming text and storing the final result.
18
18
  - Optionally filter tool calls out of the thread history.
19
19
 
20
20
  [Read the associated Stack post here](https://stack.convex.dev/ai-agents).
@@ -73,11 +73,6 @@ export const supportAgentWorkflow = workflow.define({
73
73
 
74
74
  Also see the [Stack article](https://stack.convex.dev/ai-agents).
75
75
 
76
- Coming soon:
77
-
78
- - Generate and stream objects
79
- - Nested agent configuration, with agents as tools to other agents.
80
-
81
76
  Found a bug? Feature request? [File it here](https://github.com/get-convex/agent/issues).
82
77
 
83
78
  ## Pre-requisite: Convex
@@ -114,8 +109,11 @@ export default app;
114
109
  ### Configuring the agent
115
110
 
116
111
  ```ts
112
+ import { v } from "convex/values";
117
113
  import { components } from "./_generated/api";
118
- import { Agent } from "@convex-dev/agent";
114
+ import { Agent, createTool } from "@convex-dev/agent";
115
+ import { openai } from "@ai-sdk/openai";
116
+ import { tool } from "ai";
119
117
 
120
118
  // Define an agent similarly to the AI SDK
121
119
  const supportAgent = new Agent(components.agent, {
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAEhB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,OAAO,IAAI,SAAS,EACzB,KAAK,WAAW,EACjB,MAAM,IAAI,CAAC;AAEZ,OAAO,EACL,oBAAoB,EACpB,IAAI,EACJ,6BAA6B,EAC9B,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAEvD,MAAM,MAAM,2BAA2B,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,GACtD,MAAM,GACN,CAAC,SAAS,UAAU,GAAG,eAAe,GACpC,WAAW,GACX,CAAC,SAAS,KAAK,CAAC,MAAM,KAAK,CAAC,GAC1B,KAAK,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,GAEzC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACrD,CAAC,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,gBAAgB,GAAG,WAAW,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;AAEzE,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,WAAW,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,iBAAiB,CAOnB;AAED,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,WAAW,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,OAAO,EAAE,iBAAiB,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAExD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB,CAepE;AAED,wBAAgB,aAAa,CAAC,KAAK,SAAS,OAAO,EACjD,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACtB,IAAI,CAeN;AAED,wBAAgB,0BAA0B,CAAC,KAAK,SAAS,OAAO,EAC9D,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACtB,oBAAoB,EAAE,CAiBxB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,GACpC,6BAA6B,CA+B/B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CActE;AAkCD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,kBAAkB,EAAE,CAAC;CACjD,GAAG,WAAW,EAAE,CA4BhB"}
1
+ {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAEhB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,OAAO,IAAI,SAAS,EACzB,KAAK,WAAW,EACjB,MAAM,IAAI,CAAC;AAEZ,OAAO,EACL,oBAAoB,EACpB,IAAI,EACJ,6BAA6B,EAC9B,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAEvD,MAAM,MAAM,2BAA2B,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,GACtD,MAAM,GACN,CAAC,SAAS,UAAU,GAAG,eAAe,GACpC,WAAW,GACX,CAAC,SAAS,KAAK,CAAC,MAAM,KAAK,CAAC,GAC1B,KAAK,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,GAEzC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACrD,CAAC,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,gBAAgB,GAAG,WAAW,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;AAEzE,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,WAAW,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,iBAAiB,CAOnB;AAED,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,WAAW,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,OAAO,EAAE,iBAAiB,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAExD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB,CAepE;AAED,wBAAgB,aAAa,CAAC,KAAK,SAAS,OAAO,EACjD,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACtB,IAAI,CAeN;AAED,wBAAgB,0BAA0B,CAAC,KAAK,SAAS,OAAO,EAC9D,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACtB,oBAAoB,EAAE,CASxB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,GACpC,6BAA6B,CA+B/B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CActE;AAkCD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,kBAAkB,EAAE,CAAC;CACjD,GAAG,WAAW,EAAE,CA4BhB"}
@@ -44,16 +44,11 @@ export function serializeStep(step) {
44
44
  };
45
45
  }
46
46
  export function serializeNewMessagesInStep(step) {
47
- const messages = [];
48
- if (step.text) {
49
- messages.push(serializeMessageWithId(step.response.messages.at(-1)));
50
- }
51
- // TODO: get ID from regular messages
52
- if (step.toolCalls || step.toolResults) {
53
- messages.push(...step.response.messages
54
- .slice(0, -((step.toolCalls?.length ?? 0) + (step.toolResults?.length ?? 0)))
55
- .map((m) => serializeMessageWithId(m)));
56
- }
47
+ // If there are tool results, there's another message with the tool results
48
+ // ref: https://github.com/vercel/ai/blob/main/packages/ai/core/generate-text/to-response-messages.ts
49
+ const messages = (step.toolResults.length > 0
50
+ ? step.response.messages.slice(0, -2)
51
+ : step.response.messages.slice(0, -1)).map(serializeMessageWithId);
57
52
  return messages;
58
53
  }
59
54
  export function serializeObjectResult(result) {
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAUlB,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAyBxC,MAAM,UAAU,gBAAgB,CAC9B,aAA4C;IAE5C,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,aAAa,CAAC;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC;KACd,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,aAA4C;IAE5C,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACtC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,KAAK,MAAM;gBACT,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,UAA+B,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,IAAuB;IAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACtD,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;IACrD,MAAM,QAAQ,GAAG;QACf,GAAG,IAAI,CAAC,QAAQ;QAChB,QAAQ,EAAE,OAAO;QACjB,SAAS;QACT,OAAO,EAAE,EAAE,EAAE,gCAAgC;KAC9C,CAAC;IACF,OAAO;QACL,GAAG,IAAI;QACP,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAAuB;IAEvB,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,qCAAqC;IACrC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CACX,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ;aACtB,KAAK,CACJ,CAAC,EACD,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CACnE;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CACzC,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAqC;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;QAC/C,IAAI,EAAE,WAAoB;QAC1B,OAAO,EAAE,IAAI;QACb,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;KACvB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAErC,OAAO;QACL,QAAQ;QACR,IAAI,EAAE;YACJ,IAAI;YACJ,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,EAAE;YACf,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE;gBACR,GAAG,MAAM,CAAC,QAAQ;gBAClB,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE;gBAC9C,QAAQ;aACT;YACD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,6BAA6B,EAAE,MAAM,CAAC,6BAA6B;SACpE;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA0B;IAC3D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,KAAK,MAAM;gBACT,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAY,CAAC;AAChB,CAAC;AAED,0CAA0C;AAC1C,SAAS,kBAAkB,CACzB,SAA4B;IAE5B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,SAAS,YAAY,WAAW,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC,CAAC,yBAAyB;IAC7C,CAAC;IACD,IAAI,SAAS,YAAY,GAAG,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAC3B,SAAS,CAAC,UAAU,EACpB,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAC7B,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,WAAiC;IACvD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,IACE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC;YACjC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,EAClC,CAAC;YACD,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,IAI9C;IACC,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,gCAAgC,CAAC,CAAC;IACvE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,KAAK,QAAQ;YACrB,CAAC,KAAK,IAAI;YACV,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,eAAe;gBACnC,iBAAiB,IAAI,CAAC,IAAI,oBAAoB;gBAC9C,OAAO,IAAI,CAAC,IAAI,oBAAoB;gBACpC,0BAA0B,IAAI,CAAC,CAAC,CACrC,EACD,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAuB,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,4CAA4C,CAAC,CAAC;IAC1E,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,6 @@
1
- export declare function subtract(a: number, b: number): number;
1
+ export declare function useStreamingText(url: string, threadId: string | null, token?: string): readonly [{
2
+ readonly text: string;
3
+ readonly loading: boolean;
4
+ readonly error: Error | null;
5
+ }, (prompt: string) => Promise<void>];
2
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAKA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAErD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAMA,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,KAAK,CAAC,EAAE,MAAM;;;;YAOS,MAAM,oBA2C9B"}
@@ -1,8 +1,53 @@
1
- // This is where React components go.
1
+ import { useState, useMemo } from "react";
2
2
  if (typeof window === "undefined") {
3
3
  throw new Error("this is frontend code, but it's running somewhere else!");
4
4
  }
5
- export function subtract(a, b) {
6
- return a - b;
5
+ export function useStreamingText(url, threadId, token) {
6
+ const [text, setText] = useState("");
7
+ const [loading, setLoading] = useState(false);
8
+ const [error, setError] = useState(null);
9
+ const readStream = useMemo(() => async (prompt) => {
10
+ if (!threadId)
11
+ return;
12
+ try {
13
+ setText("");
14
+ setLoading(true);
15
+ setError(null);
16
+ const response = await fetch(url, {
17
+ method: "POST",
18
+ headers: {
19
+ "Content-Type": "application/json",
20
+ ...(token ? { Authorization: `Bearer ${token}` } : {}),
21
+ },
22
+ body: JSON.stringify({ prompt, threadId }),
23
+ });
24
+ if (!response.ok) {
25
+ throw new Error(`HTTP error! status: ${response.status}`);
26
+ }
27
+ if (!response.body) {
28
+ throw new Error("No body");
29
+ }
30
+ const reader = response.body.getReader();
31
+ const decoder = new TextDecoder();
32
+ let accumulatedText = "";
33
+ while (true) {
34
+ const { done, value } = await reader.read();
35
+ if (done) {
36
+ break;
37
+ }
38
+ accumulatedText += decoder.decode(value);
39
+ setText(accumulatedText);
40
+ }
41
+ }
42
+ catch (e) {
43
+ if (e instanceof Error && e.name !== "AbortError") {
44
+ setError(e);
45
+ }
46
+ }
47
+ finally {
48
+ setLoading(false);
49
+ }
50
+ }, [threadId, token]);
51
+ return [{ text, loading, error }, readStream];
7
52
  }
8
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,CAAS;IAC3C,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE1C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,GAAW,EACX,QAAuB,EACvB,KAAc;IAEd,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QAC7B,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,CAAC;YACH,OAAO,CAAC,EAAE,CAAC,CAAC;YACZ,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvD;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;aAC3C,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,IAAI,eAAe,GAAG,EAAE,CAAC;YAEzB,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM;gBACR,CAAC;gBACD,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAClD,QAAQ,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,CAClB,CAAC;IACF,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,CAAU,CAAC;AACzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAEhB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,OAAO,IAAI,SAAS,EACzB,KAAK,WAAW,EACjB,MAAM,IAAI,CAAC;AAEZ,OAAO,EACL,oBAAoB,EACpB,IAAI,EACJ,6BAA6B,EAC9B,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAEvD,MAAM,MAAM,2BAA2B,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,GACtD,MAAM,GACN,CAAC,SAAS,UAAU,GAAG,eAAe,GACpC,WAAW,GACX,CAAC,SAAS,KAAK,CAAC,MAAM,KAAK,CAAC,GAC1B,KAAK,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,GAEzC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACrD,CAAC,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,gBAAgB,GAAG,WAAW,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;AAEzE,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,WAAW,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,iBAAiB,CAOnB;AAED,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,WAAW,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,OAAO,EAAE,iBAAiB,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAExD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB,CAepE;AAED,wBAAgB,aAAa,CAAC,KAAK,SAAS,OAAO,EACjD,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACtB,IAAI,CAeN;AAED,wBAAgB,0BAA0B,CAAC,KAAK,SAAS,OAAO,EAC9D,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACtB,oBAAoB,EAAE,CAiBxB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,GACpC,6BAA6B,CA+B/B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CActE;AAkCD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,kBAAkB,EAAE,CAAC;CACjD,GAAG,WAAW,EAAE,CA4BhB"}
1
+ {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAEhB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,OAAO,IAAI,SAAS,EACzB,KAAK,WAAW,EACjB,MAAM,IAAI,CAAC;AAEZ,OAAO,EACL,oBAAoB,EACpB,IAAI,EACJ,6BAA6B,EAC9B,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAEvD,MAAM,MAAM,2BAA2B,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,GACtD,MAAM,GACN,CAAC,SAAS,UAAU,GAAG,eAAe,GACpC,WAAW,GACX,CAAC,SAAS,KAAK,CAAC,MAAM,KAAK,CAAC,GAC1B,KAAK,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,GAEzC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACrD,CAAC,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,gBAAgB,GAAG,WAAW,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;AAEzE,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,WAAW,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,iBAAiB,CAOnB;AAED,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,WAAW,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,OAAO,EAAE,iBAAiB,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAExD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB,CAepE;AAED,wBAAgB,aAAa,CAAC,KAAK,SAAS,OAAO,EACjD,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACtB,IAAI,CAeN;AAED,wBAAgB,0BAA0B,CAAC,KAAK,SAAS,OAAO,EAC9D,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACtB,oBAAoB,EAAE,CASxB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,GACpC,6BAA6B,CA+B/B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CActE;AAkCD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,kBAAkB,EAAE,CAAC;CACjD,GAAG,WAAW,EAAE,CA4BhB"}
@@ -44,16 +44,11 @@ export function serializeStep(step) {
44
44
  };
45
45
  }
46
46
  export function serializeNewMessagesInStep(step) {
47
- const messages = [];
48
- if (step.text) {
49
- messages.push(serializeMessageWithId(step.response.messages.at(-1)));
50
- }
51
- // TODO: get ID from regular messages
52
- if (step.toolCalls || step.toolResults) {
53
- messages.push(...step.response.messages
54
- .slice(0, -((step.toolCalls?.length ?? 0) + (step.toolResults?.length ?? 0)))
55
- .map((m) => serializeMessageWithId(m)));
56
- }
47
+ // If there are tool results, there's another message with the tool results
48
+ // ref: https://github.com/vercel/ai/blob/main/packages/ai/core/generate-text/to-response-messages.ts
49
+ const messages = (step.toolResults.length > 0
50
+ ? step.response.messages.slice(0, -2)
51
+ : step.response.messages.slice(0, -1)).map(serializeMessageWithId);
57
52
  return messages;
58
53
  }
59
54
  export function serializeObjectResult(result) {
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,6 @@
1
- export declare function subtract(a: number, b: number): number;
1
+ export declare function useStreamingText(url: string, threadId: string | null, token?: string): readonly [{
2
+ readonly text: string;
3
+ readonly loading: boolean;
4
+ readonly error: Error | null;
5
+ }, (prompt: string) => Promise<void>];
2
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAKA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAErD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAMA,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,KAAK,CAAC,EAAE,MAAM;;;;YAOS,MAAM,oBA2C9B"}
@@ -1,8 +1,53 @@
1
- // This is where React components go.
1
+ import { useState, useMemo } from "react";
2
2
  if (typeof window === "undefined") {
3
3
  throw new Error("this is frontend code, but it's running somewhere else!");
4
4
  }
5
- export function subtract(a, b) {
6
- return a - b;
5
+ export function useStreamingText(url, threadId, token) {
6
+ const [text, setText] = useState("");
7
+ const [loading, setLoading] = useState(false);
8
+ const [error, setError] = useState(null);
9
+ const readStream = useMemo(() => async (prompt) => {
10
+ if (!threadId)
11
+ return;
12
+ try {
13
+ setText("");
14
+ setLoading(true);
15
+ setError(null);
16
+ const response = await fetch(url, {
17
+ method: "POST",
18
+ headers: {
19
+ "Content-Type": "application/json",
20
+ ...(token ? { Authorization: `Bearer ${token}` } : {}),
21
+ },
22
+ body: JSON.stringify({ prompt, threadId }),
23
+ });
24
+ if (!response.ok) {
25
+ throw new Error(`HTTP error! status: ${response.status}`);
26
+ }
27
+ if (!response.body) {
28
+ throw new Error("No body");
29
+ }
30
+ const reader = response.body.getReader();
31
+ const decoder = new TextDecoder();
32
+ let accumulatedText = "";
33
+ while (true) {
34
+ const { done, value } = await reader.read();
35
+ if (done) {
36
+ break;
37
+ }
38
+ accumulatedText += decoder.decode(value);
39
+ setText(accumulatedText);
40
+ }
41
+ }
42
+ catch (e) {
43
+ if (e instanceof Error && e.name !== "AbortError") {
44
+ setError(e);
45
+ }
46
+ }
47
+ finally {
48
+ setLoading(false);
49
+ }
50
+ }, [threadId, token]);
51
+ return [{ text, loading, error }, readStream];
7
52
  }
8
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,CAAS;IAC3C,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE1C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,GAAW,EACX,QAAuB,EACvB,KAAc;IAEd,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QAC7B,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,CAAC;YACH,OAAO,CAAC,EAAE,CAAC,CAAC;YACZ,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvD;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;aAC3C,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,IAAI,eAAe,GAAG,EAAE,CAAC;YAEzB,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM;gBACR,CAAC;gBACD,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAClD,QAAQ,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,CAClB,CAAC;IACF,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,CAAU,CAAC;AACzD,CAAC"}
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "email": "support@convex.dev",
8
8
  "url": "https://github.com/get-convex/agent/issues"
9
9
  },
10
- "version": "0.0.6",
10
+ "version": "0.0.8",
11
11
  "license": "Apache-2.0",
12
12
  "keywords": [
13
13
  "convex",
@@ -84,11 +84,18 @@
84
84
  "peerDependencies": {
85
85
  "ai": "^4.3.4",
86
86
  "convex": "^1.23.0",
87
- "convex-helpers": "^0.1.78"
87
+ "convex-helpers": "^0.1.78",
88
+ "react": "^18.3.1 || ^19.0.0"
89
+ },
90
+ "peerDependenciesMeta": {
91
+ "react": {
92
+ "optional": true
93
+ }
88
94
  },
89
95
  "devDependencies": {
90
96
  "@eslint/js": "^9.9.1",
91
97
  "@types/node": "^18.19.86",
98
+ "@types/react": "^19.1.1",
92
99
  "convex-test": "^0.0.33",
93
100
  "eslint": "^9.24.0",
94
101
  "globals": "^15.15.0",
package/src/mapping.ts CHANGED
@@ -92,21 +92,13 @@ export function serializeStep<TOOLS extends ToolSet>(
92
92
  export function serializeNewMessagesInStep<TOOLS extends ToolSet>(
93
93
  step: StepResult<TOOLS>
94
94
  ): MessageWithFileAndId[] {
95
- const messages: MessageWithFileAndId[] = [];
96
- if (step.text) {
97
- messages.push(serializeMessageWithId(step.response.messages.at(-1)!));
98
- }
99
- // TODO: get ID from regular messages
100
- if (step.toolCalls || step.toolResults) {
101
- messages.push(
102
- ...step.response.messages
103
- .slice(
104
- 0,
105
- -((step.toolCalls?.length ?? 0) + (step.toolResults?.length ?? 0))
106
- )
107
- .map((m) => serializeMessageWithId(m))
108
- );
109
- }
95
+ // If there are tool results, there's another message with the tool results
96
+ // ref: https://github.com/vercel/ai/blob/main/packages/ai/core/generate-text/to-response-messages.ts
97
+ const messages: MessageWithFileAndId[] = (
98
+ step.toolResults.length > 0
99
+ ? step.response.messages.slice(0, -2)
100
+ : step.response.messages.slice(0, -1)
101
+ ).map(serializeMessageWithId);
110
102
  return messages;
111
103
  }
112
104
 
@@ -1,8 +1,60 @@
1
- // This is where React components go.
1
+ import { useState, useMemo } from "react";
2
+
2
3
  if (typeof window === "undefined") {
3
4
  throw new Error("this is frontend code, but it's running somewhere else!");
4
5
  }
5
6
 
6
- export function subtract(a: number, b: number): number {
7
- return a - b;
7
+ export function useStreamingText(
8
+ url: string,
9
+ threadId: string | null,
10
+ token?: string
11
+ ) {
12
+ const [text, setText] = useState("");
13
+ const [loading, setLoading] = useState(false);
14
+ const [error, setError] = useState<Error | null>(null);
15
+
16
+ const readStream = useMemo(
17
+ () => async (prompt: string) => {
18
+ if (!threadId) return;
19
+ try {
20
+ setText("");
21
+ setLoading(true);
22
+ setError(null);
23
+ const response = await fetch(url, {
24
+ method: "POST",
25
+ headers: {
26
+ "Content-Type": "application/json",
27
+ ...(token ? { Authorization: `Bearer ${token}` } : {}),
28
+ },
29
+ body: JSON.stringify({ prompt, threadId }),
30
+ });
31
+ if (!response.ok) {
32
+ throw new Error(`HTTP error! status: ${response.status}`);
33
+ }
34
+ if (!response.body) {
35
+ throw new Error("No body");
36
+ }
37
+ const reader = response.body.getReader();
38
+ const decoder = new TextDecoder();
39
+ let accumulatedText = "";
40
+
41
+ while (true) {
42
+ const { done, value } = await reader.read();
43
+ if (done) {
44
+ break;
45
+ }
46
+ accumulatedText += decoder.decode(value);
47
+ setText(accumulatedText);
48
+ }
49
+ } catch (e) {
50
+ if (e instanceof Error && e.name !== "AbortError") {
51
+ setError(e);
52
+ }
53
+ } finally {
54
+ setLoading(false);
55
+ }
56
+ },
57
+ [threadId, token]
58
+ );
59
+ return [{ text, loading, error }, readStream] as const;
8
60
  }