@convex-dev/agent 0.1.9-alpha.3 → 0.1.9-alpha.4

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 (62) hide show
  1. package/README.md +3 -3
  2. package/dist/commonjs/client/index.d.ts.map +1 -1
  3. package/dist/commonjs/client/index.js +1 -1
  4. package/dist/commonjs/client/index.js.map +1 -1
  5. package/dist/commonjs/client/streaming.d.ts.map +1 -1
  6. package/dist/commonjs/client/streaming.js +7 -1
  7. package/dist/commonjs/client/streaming.js.map +1 -1
  8. package/dist/commonjs/client/types.d.ts +0 -2
  9. package/dist/commonjs/client/types.d.ts.map +1 -1
  10. package/dist/commonjs/component/_generated/api.d.ts +7 -1
  11. package/dist/commonjs/component/schema.d.ts +36 -6
  12. package/dist/commonjs/component/schema.d.ts.map +1 -1
  13. package/dist/commonjs/component/schema.js +3 -0
  14. package/dist/commonjs/component/schema.js.map +1 -1
  15. package/dist/commonjs/component/streams.d.ts +5 -0
  16. package/dist/commonjs/component/streams.d.ts.map +1 -1
  17. package/dist/commonjs/component/streams.js +35 -7
  18. package/dist/commonjs/component/streams.js.map +1 -1
  19. package/dist/commonjs/react/index.d.ts +3 -1
  20. package/dist/commonjs/react/index.d.ts.map +1 -1
  21. package/dist/commonjs/react/index.js +14 -3
  22. package/dist/commonjs/react/index.js.map +1 -1
  23. package/dist/commonjs/validators.d.ts +5 -2
  24. package/dist/commonjs/validators.d.ts.map +1 -1
  25. package/dist/commonjs/validators.js +1 -0
  26. package/dist/commonjs/validators.js.map +1 -1
  27. package/dist/commonjs.tsbuildinfo +1 -1
  28. package/dist/esm/client/index.d.ts.map +1 -1
  29. package/dist/esm/client/index.js +1 -1
  30. package/dist/esm/client/index.js.map +1 -1
  31. package/dist/esm/client/streaming.d.ts.map +1 -1
  32. package/dist/esm/client/streaming.js +7 -1
  33. package/dist/esm/client/streaming.js.map +1 -1
  34. package/dist/esm/client/types.d.ts +0 -2
  35. package/dist/esm/client/types.d.ts.map +1 -1
  36. package/dist/esm/component/_generated/api.d.ts +7 -1
  37. package/dist/esm/component/schema.d.ts +36 -6
  38. package/dist/esm/component/schema.d.ts.map +1 -1
  39. package/dist/esm/component/schema.js +3 -0
  40. package/dist/esm/component/schema.js.map +1 -1
  41. package/dist/esm/component/streams.d.ts +5 -0
  42. package/dist/esm/component/streams.d.ts.map +1 -1
  43. package/dist/esm/component/streams.js +35 -7
  44. package/dist/esm/component/streams.js.map +1 -1
  45. package/dist/esm/react/index.d.ts +3 -1
  46. package/dist/esm/react/index.d.ts.map +1 -1
  47. package/dist/esm/react/index.js +14 -3
  48. package/dist/esm/react/index.js.map +1 -1
  49. package/dist/esm/validators.d.ts +5 -2
  50. package/dist/esm/validators.d.ts.map +1 -1
  51. package/dist/esm/validators.js +1 -0
  52. package/dist/esm/validators.js.map +1 -1
  53. package/dist/esm.tsbuildinfo +1 -1
  54. package/package.json +1 -1
  55. package/src/client/index.ts +1 -2
  56. package/src/client/streaming.ts +7 -1
  57. package/src/client/types.ts +0 -2
  58. package/src/component/_generated/api.d.ts +7 -1
  59. package/src/component/schema.ts +4 -0
  60. package/src/component/streams.ts +43 -8
  61. package/src/react/index.ts +15 -4
  62. package/src/validators.ts +1 -0
@@ -7,7 +7,7 @@ import {
7
7
  } from "convex/react";
8
8
  import { usePaginatedQuery } from "convex-helpers/react";
9
9
  import type { FunctionArgs } from "convex/server";
10
- import { useMemo, useState } from "react";
10
+ import { useMemo, useRef, useState } from "react";
11
11
  import type { MessageDoc } from "../client/index.js";
12
12
  import type { SyncStreamsReturnValue } from "../client/types.js";
13
13
  import type { StreamArgs } from "../validators.js";
@@ -103,7 +103,11 @@ export function useThreadMessages<
103
103
  ThreadMessagesArgs<Query>,
104
104
  ThreadMessagesResult<Query>
105
105
  >,
106
- !options.stream ? "skip" : args
106
+ !options.stream ||
107
+ args === "skip" ||
108
+ paginated.status === "LoadingFirstPage"
109
+ ? "skip"
110
+ : { ...args, startOrder: paginated.results.at(0)?.order }
107
111
  );
108
112
 
109
113
  const merged = useMemo(() => {
@@ -150,7 +154,7 @@ export function useStreamingThreadMessages<
150
154
  Query extends ThreadStreamQuery<any, any>,
151
155
  >(
152
156
  query: Query,
153
- args: ThreadMessagesArgs<Query> | "skip"
157
+ args: (ThreadMessagesArgs<Query> & { startOrder?: number }) | "skip"
154
158
  ): Array<ThreadMessagesResult<Query>> | undefined {
155
159
  // Invariant: streamMessages[streamId] is comprised of all deltas up to the
156
160
  // cursor. There can be multiple messages in the same stream, e.g. for tool
@@ -158,6 +162,10 @@ export function useStreamingThreadMessages<
158
162
  const [streams, setStreams] = useState<
159
163
  Array<{ streamId: string; cursor: number; messages: MessageDoc[] }>
160
164
  >([]);
165
+ const startOrderRef = useRef<number>(0);
166
+ if (args !== "skip" && !startOrderRef.current && args.startOrder) {
167
+ startOrderRef.current = args.startOrder;
168
+ }
161
169
  // Get all the active streams
162
170
  const streamList = useQuery(
163
171
  query,
@@ -166,7 +174,10 @@ export function useStreamingThreadMessages<
166
174
  : ({
167
175
  ...args,
168
176
  paginationOpts: { cursor: null, numItems: 0 },
169
- streamArgs: { kind: "list" } as StreamArgs,
177
+ streamArgs: {
178
+ kind: "list",
179
+ startOrder: startOrderRef.current,
180
+ } as StreamArgs,
170
181
  } as FunctionArgs<Query>)
171
182
  ) as
172
183
  | { streams: Extract<SyncStreamsReturnValue, { kind: "list" }> }
package/src/validators.ts CHANGED
@@ -460,6 +460,7 @@ export const vStreamArgs = v.optional(
460
460
  v.union(
461
461
  v.object({
462
462
  kind: v.literal("list"),
463
+ startOrder: v.optional(v.number()),
463
464
  }),
464
465
  v.object({
465
466
  kind: v.literal("deltas"),