@convex-dev/agent 0.0.1-alpha.0

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 (129) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +55 -0
  3. package/dist/commonjs/client/index.d.ts +198 -0
  4. package/dist/commonjs/client/index.d.ts.map +1 -0
  5. package/dist/commonjs/client/index.js +365 -0
  6. package/dist/commonjs/client/index.js.map +1 -0
  7. package/dist/commonjs/client/types.d.ts +21 -0
  8. package/dist/commonjs/client/types.d.ts.map +1 -0
  9. package/dist/commonjs/client/types.js +2 -0
  10. package/dist/commonjs/client/types.js.map +1 -0
  11. package/dist/commonjs/component/_generated/api.d.ts +12 -0
  12. package/dist/commonjs/component/_generated/api.d.ts.map +1 -0
  13. package/dist/commonjs/component/_generated/api.js +22 -0
  14. package/dist/commonjs/component/_generated/api.js.map +1 -0
  15. package/dist/commonjs/component/_generated/server.d.ts +64 -0
  16. package/dist/commonjs/component/_generated/server.d.ts.map +1 -0
  17. package/dist/commonjs/component/_generated/server.js +74 -0
  18. package/dist/commonjs/component/_generated/server.js.map +1 -0
  19. package/dist/commonjs/component/convex.config.d.ts +3 -0
  20. package/dist/commonjs/component/convex.config.d.ts.map +1 -0
  21. package/dist/commonjs/component/convex.config.js +3 -0
  22. package/dist/commonjs/component/convex.config.js.map +1 -0
  23. package/dist/commonjs/component/lib.d.ts +2 -0
  24. package/dist/commonjs/component/lib.d.ts.map +1 -0
  25. package/dist/commonjs/component/lib.js +2 -0
  26. package/dist/commonjs/component/lib.js.map +1 -0
  27. package/dist/commonjs/component/messages.d.ts +1913 -0
  28. package/dist/commonjs/component/messages.d.ts.map +1 -0
  29. package/dist/commonjs/component/messages.js +787 -0
  30. package/dist/commonjs/component/messages.js.map +1 -0
  31. package/dist/commonjs/component/schema.d.ts +5496 -0
  32. package/dist/commonjs/component/schema.d.ts.map +1 -0
  33. package/dist/commonjs/component/schema.js +97 -0
  34. package/dist/commonjs/component/schema.js.map +1 -0
  35. package/dist/commonjs/component/vector/tables.d.ts +40 -0
  36. package/dist/commonjs/component/vector/tables.d.ts.map +1 -0
  37. package/dist/commonjs/component/vector/tables.js +46 -0
  38. package/dist/commonjs/component/vector/tables.js.map +1 -0
  39. package/dist/commonjs/mapping.d.ts +26 -0
  40. package/dist/commonjs/mapping.d.ts.map +1 -0
  41. package/dist/commonjs/mapping.js +101 -0
  42. package/dist/commonjs/mapping.js.map +1 -0
  43. package/dist/commonjs/package.json +3 -0
  44. package/dist/commonjs/react/index.d.ts +2 -0
  45. package/dist/commonjs/react/index.d.ts.map +1 -0
  46. package/dist/commonjs/react/index.js +8 -0
  47. package/dist/commonjs/react/index.js.map +1 -0
  48. package/dist/commonjs/shared.d.ts +9 -0
  49. package/dist/commonjs/shared.d.ts.map +1 -0
  50. package/dist/commonjs/shared.js +29 -0
  51. package/dist/commonjs/shared.js.map +1 -0
  52. package/dist/commonjs/validators.d.ts +6177 -0
  53. package/dist/commonjs/validators.d.ts.map +1 -0
  54. package/dist/commonjs/validators.js +171 -0
  55. package/dist/commonjs/validators.js.map +1 -0
  56. package/dist/esm/client/index.d.ts +198 -0
  57. package/dist/esm/client/index.d.ts.map +1 -0
  58. package/dist/esm/client/index.js +365 -0
  59. package/dist/esm/client/index.js.map +1 -0
  60. package/dist/esm/client/types.d.ts +21 -0
  61. package/dist/esm/client/types.d.ts.map +1 -0
  62. package/dist/esm/client/types.js +2 -0
  63. package/dist/esm/client/types.js.map +1 -0
  64. package/dist/esm/component/_generated/api.d.ts +12 -0
  65. package/dist/esm/component/_generated/api.d.ts.map +1 -0
  66. package/dist/esm/component/_generated/api.js +22 -0
  67. package/dist/esm/component/_generated/api.js.map +1 -0
  68. package/dist/esm/component/_generated/server.d.ts +64 -0
  69. package/dist/esm/component/_generated/server.d.ts.map +1 -0
  70. package/dist/esm/component/_generated/server.js +74 -0
  71. package/dist/esm/component/_generated/server.js.map +1 -0
  72. package/dist/esm/component/convex.config.d.ts +3 -0
  73. package/dist/esm/component/convex.config.d.ts.map +1 -0
  74. package/dist/esm/component/convex.config.js +3 -0
  75. package/dist/esm/component/convex.config.js.map +1 -0
  76. package/dist/esm/component/lib.d.ts +2 -0
  77. package/dist/esm/component/lib.d.ts.map +1 -0
  78. package/dist/esm/component/lib.js +2 -0
  79. package/dist/esm/component/lib.js.map +1 -0
  80. package/dist/esm/component/messages.d.ts +1913 -0
  81. package/dist/esm/component/messages.d.ts.map +1 -0
  82. package/dist/esm/component/messages.js +787 -0
  83. package/dist/esm/component/messages.js.map +1 -0
  84. package/dist/esm/component/schema.d.ts +5496 -0
  85. package/dist/esm/component/schema.d.ts.map +1 -0
  86. package/dist/esm/component/schema.js +97 -0
  87. package/dist/esm/component/schema.js.map +1 -0
  88. package/dist/esm/component/vector/tables.d.ts +40 -0
  89. package/dist/esm/component/vector/tables.d.ts.map +1 -0
  90. package/dist/esm/component/vector/tables.js +46 -0
  91. package/dist/esm/component/vector/tables.js.map +1 -0
  92. package/dist/esm/mapping.d.ts +26 -0
  93. package/dist/esm/mapping.d.ts.map +1 -0
  94. package/dist/esm/mapping.js +101 -0
  95. package/dist/esm/mapping.js.map +1 -0
  96. package/dist/esm/package.json +3 -0
  97. package/dist/esm/react/index.d.ts +2 -0
  98. package/dist/esm/react/index.d.ts.map +1 -0
  99. package/dist/esm/react/index.js +8 -0
  100. package/dist/esm/react/index.js.map +1 -0
  101. package/dist/esm/shared.d.ts +9 -0
  102. package/dist/esm/shared.d.ts.map +1 -0
  103. package/dist/esm/shared.js +29 -0
  104. package/dist/esm/shared.js.map +1 -0
  105. package/dist/esm/validators.d.ts +6177 -0
  106. package/dist/esm/validators.d.ts.map +1 -0
  107. package/dist/esm/validators.js +171 -0
  108. package/dist/esm/validators.js.map +1 -0
  109. package/package.json +91 -0
  110. package/react/package.json +5 -0
  111. package/src/client/index.ts +659 -0
  112. package/src/client/types.ts +54 -0
  113. package/src/component/_generated/api.d.ts +1497 -0
  114. package/src/component/_generated/api.js +23 -0
  115. package/src/component/_generated/dataModel.d.ts +60 -0
  116. package/src/component/_generated/server.d.ts +149 -0
  117. package/src/component/_generated/server.js +90 -0
  118. package/src/component/convex.config.ts +3 -0
  119. package/src/component/lib.test.ts +13 -0
  120. package/src/component/lib.ts +2 -0
  121. package/src/component/messages.ts +959 -0
  122. package/src/component/schema.ts +101 -0
  123. package/src/component/setup.test.ts +5 -0
  124. package/src/component/vector/tables.ts +92 -0
  125. package/src/mapping.ts +160 -0
  126. package/src/react/index.ts +8 -0
  127. package/src/shared.ts +35 -0
  128. package/src/validators.test.ts +101 -0
  129. package/src/validators.ts +258 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/component/schema.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAyFjB,CAAC;AAEH,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gMAIinM,eAAgB,qEAAqE,CAAC,mJAAkJ,aAAc,+MAA+M,eAAe;;mFAA0W,GAAG,gDAAwB,WAAW,2BAA0B,WAAY;;;CAJ1+N,CAAC;AACjC,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;AAEnB,eAAe,MAAM,CAAC"}
@@ -0,0 +1,97 @@
1
+ import { defineSchema, defineTable } from "convex/server";
2
+ import { v } from "convex/values";
3
+ import { vChatStatus, vMessage, vMessageStatus, vStep } from "../validators";
4
+ import { typedV } from "convex-helpers/validators";
5
+ import vectorTables, { vVectorId } from "./vector/tables";
6
+ export const schema = defineSchema({
7
+ chats: defineTable({
8
+ userId: v.optional(v.string()), // Unset for anonymous
9
+ order: v.optional(v.number()), // within a domain
10
+ // TODO: is this bubbling up in continue?
11
+ defaultSystemPrompt: v.optional(v.string()),
12
+ title: v.optional(v.string()),
13
+ summary: v.optional(v.string()),
14
+ status: vChatStatus,
15
+ // If this is a chat continuation, we can use this to find context from
16
+ // the parent chat(s). There are multiple if the chat is a merging of
17
+ // multiple chats.
18
+ parentChatIds: v.optional(v.array(v.id("chats"))),
19
+ }).index("status_userId_order", ["status", "userId", "order"]),
20
+ // TODO: text search on title/ summary
21
+ messages: defineTable({
22
+ id: v.optional(v.string()), // external id, e.g. from Vercel AI SDK
23
+ userId: v.optional(v.string()), // useful for future indexes (text search)
24
+ chatId: v.id("chats"),
25
+ threadId: v.optional(v.id("messages")),
26
+ stepId: v.optional(v.id("steps")),
27
+ agentName: v.optional(v.string()),
28
+ message: v.optional(vMessage),
29
+ model: v.optional(v.string()),
30
+ text: v.optional(v.string()),
31
+ embeddingId: v.optional(vVectorId),
32
+ // TODO: add sub-messages back in? or be able to skip them?
33
+ tool: v.boolean(),
34
+ // Repeats until a non-tool message.
35
+ // Set when the message is finished
36
+ order: v.optional(v.number()),
37
+ stepOrder: v.optional(v.number()),
38
+ fileId: v.optional(v.id("files")),
39
+ status: vMessageStatus,
40
+ })
41
+ // Allows finding successful visible messages in order
42
+ // Also surface pending messages separately to e.g. stream
43
+ .index("chatId_status_tool_order_stepOrder", [
44
+ "chatId",
45
+ "status",
46
+ "tool",
47
+ "order",
48
+ "stepOrder",
49
+ ])
50
+ // Allows finding all threaded messages in order
51
+ // Allows finding all failed messages to evaluate
52
+ // .index("status_threadId_order_stepOrder", [
53
+ // "status",
54
+ // "threadId",
55
+ // "order",
56
+ // "stepOrder",
57
+ // ])
58
+ // Allows text search on message content
59
+ .searchIndex("text_search", {
60
+ searchField: "text",
61
+ filterFields: ["userId", "chatId"],
62
+ })
63
+ // Allows finding messages by vector embedding id
64
+ .index("embeddingId", ["embeddingId"]),
65
+ steps: defineTable({
66
+ chatId: v.id("chats"),
67
+ // Could be different from the order if we fail.
68
+ parentMessageId: v.id("messages"),
69
+ order: v.number(), // parent message order
70
+ stepOrder: v.number(), // step order
71
+ step: vStep,
72
+ status: vMessageStatus,
73
+ })
74
+ .index("status_chatId_order_stepOrder", [
75
+ "status",
76
+ "chatId",
77
+ "order",
78
+ "stepOrder",
79
+ ])
80
+ .index("parentMessageId_order_stepOrder", [
81
+ "parentMessageId",
82
+ "order",
83
+ "stepOrder",
84
+ ]),
85
+ files: defineTable({
86
+ storageId: v.string(),
87
+ hash: v.string(),
88
+ refcount: v.number(),
89
+ })
90
+ .index("hash", ["hash"])
91
+ .index("refcount", ["refcount"]),
92
+ ...vectorTables,
93
+ });
94
+ export const vv = typedV(schema);
95
+ export { vv as v };
96
+ export default schema;
97
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/component/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { GenericTableSearchIndexes, TableDefinition } from "convex/server";
2
+ import { GenericId, ObjectType, VId, VObject, VUnion } from "convex/values";
3
+ import { QueryCtx } from "../_generated/server";
4
+ declare const embeddings: {
5
+ model: import("convex/values").VString<string, "required">;
6
+ kind: VUnion<"chat" | "memory", [import("convex/values").VLiteral<"chat", "required">, import("convex/values").VLiteral<"memory", "required">], "required", never>;
7
+ userId: import("convex/values").VString<string | undefined, "optional">;
8
+ chatId: import("convex/values").VString<string | undefined, "optional">;
9
+ model_kind_userId: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
10
+ model_kind_chatId: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
11
+ vector: import("convex/values").VArray<number[], import("convex/values").VFloat64<number, "required">, "required">;
12
+ };
13
+ export declare const VectorDimensions: readonly [128, 256, 512, 768, 1024, 1536, 2048, 3072, 4096];
14
+ export type VectorDimension = (typeof VectorDimensions)[number];
15
+ export declare const VectorTableNames: `embeddings_${(typeof VectorDimensions)[number]}`[];
16
+ export type VectorTableName = (typeof VectorTableNames)[number];
17
+ export type VectorTableId = GenericId<(typeof VectorTableNames)[number]>;
18
+ export declare const vVectorDimension: VUnion<128 | 256 | 512 | 768 | 1024 | 1536 | 2048 | 3072 | 4096, any, "required", any>;
19
+ export declare const vVectorTableName: VUnion<"embeddings_128" | "embeddings_256" | "embeddings_512" | "embeddings_768" | "embeddings_1024" | "embeddings_1536" | "embeddings_2048" | "embeddings_3072" | "embeddings_4096", any, "required", any>;
20
+ export declare const vVectorId: VUnion<GenericId<(typeof VectorTableNames)[number]>, VId<(typeof VectorTableNames)[number]>[]>;
21
+ type Table<D extends number> = TableDefinition<VObject<ObjectType<typeof embeddings>, typeof embeddings>, {
22
+ id: ["id"];
23
+ }, GenericTableSearchIndexes, VectorIndex<D>>;
24
+ type VectorIndex<D extends number> = {
25
+ vector: {
26
+ vectorField: "vector";
27
+ dimensions: D;
28
+ filterFields: string;
29
+ };
30
+ };
31
+ export declare function getVectorTableName(dimension: VectorDimension): VectorTableName;
32
+ export declare function getVectorIdInfo(ctx: QueryCtx, id: VectorTableId): {
33
+ tableName: "embeddings_128" | "embeddings_256" | "embeddings_512" | "embeddings_768" | "embeddings_1024" | "embeddings_1536" | "embeddings_2048" | "embeddings_3072" | "embeddings_4096";
34
+ dimension: 128 | 256 | 512 | 768 | 1024 | 1536 | 2048 | 3072 | 4096;
35
+ };
36
+ declare const tables: {
37
+ [K in keyof typeof VectorDimensions & number as `embeddings_${(typeof VectorDimensions)[K]}`]: Table<(typeof VectorDimensions)[K]>;
38
+ };
39
+ export default tables;
40
+ //# sourceMappingURL=tables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../../src/component/vector/tables.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,yBAAyB,EACzB,eAAe,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAK,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,QAAA,MAAM,UAAU;;;;;;;;CASf,CAAC;AAUF,eAAO,MAAM,gBAAgB,6DAEnB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAChE,eAAO,MAAM,gBAAgB,EAExB,cAAc,CAAC,OAAO,gBAAgB,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;AACzD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzE,eAAO,MAAM,gBAAgB,wFAAgC,CAAC;AAC9D,eAAO,MAAM,gBAAgB,6MAAgC,CAAC;AAC9D,eAAO,MAAM,SAAS,EAEjB,MAAM,CACT,SAAS,CAAC,CAAC,OAAO,gBAAgB,EAAE,MAAM,CAAC,CAAC,EAC5C,GAAG,CAAC,CAAC,OAAO,gBAAgB,EAAE,MAAM,CAAC,CAAC,EAAE,CACzC,CAAC;AAEF,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,IAAI,eAAe,CAC5C,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC,EACzD;IAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;CAAE,EACd,yBAAyB,EACzB,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI;IACnC,MAAM,EAAE;QACN,WAAW,EAAE,QAAQ,CAAC;QACtB,UAAU,EAAE,CAAC,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,eAAe,GACvB,eAAe,CACpD;AACD,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa;;;EAQ/D;AAED,QAAA,MAAM,MAAM,EAAE;KACX,CAAC,IAAI,MAAM,OAAO,gBAAgB,GACjC,MAAM,IAAI,cAAc,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAC9D,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAC7B;CASF,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { literals } from "convex-helpers/validators";
2
+ import { defineTable, } from "convex/server";
3
+ import { v } from "convex/values";
4
+ // We only generate embeddings for non-tool, non-system messages
5
+ const embeddings = {
6
+ model: v.string(),
7
+ kind: v.union(v.literal("chat"), v.literal("memory")),
8
+ userId: v.optional(v.string()),
9
+ chatId: v.optional(v.string()),
10
+ // not set for private chats
11
+ model_kind_userId: v.optional(v.array(v.string())),
12
+ model_kind_chatId: v.optional(v.array(v.string())),
13
+ vector: v.array(v.number()),
14
+ };
15
+ function table(dimensions) {
16
+ return defineTable(embeddings).vectorIndex("vector", {
17
+ vectorField: "vector",
18
+ dimensions,
19
+ filterFields: ["model_kind_userId", "model_kind_chatId"],
20
+ });
21
+ }
22
+ export const VectorDimensions = [
23
+ 128, 256, 512, 768, 1024, 1536, 2048, 3072, 4096,
24
+ ];
25
+ export const VectorTableNames = VectorDimensions.map((d) => `embeddings_${d}`);
26
+ export const vVectorDimension = literals(...VectorDimensions);
27
+ export const vVectorTableName = literals(...VectorTableNames);
28
+ export const vVectorId = v.union(...VectorTableNames.map((name) => v.id(name)));
29
+ export function getVectorTableName(dimension) {
30
+ return `embeddings_${dimension}`;
31
+ }
32
+ export function getVectorIdInfo(ctx, id) {
33
+ for (const dimension of VectorDimensions) {
34
+ const tableName = getVectorTableName(dimension);
35
+ if (ctx.db.normalizeId(tableName, id)) {
36
+ return { tableName, dimension };
37
+ }
38
+ }
39
+ throw new Error(`Unknown vector table id: ${id}`);
40
+ }
41
+ const tables = Object.fromEntries(VectorDimensions.map((dimensions) => [
42
+ `embeddings_${dimensions}`,
43
+ table(dimensions),
44
+ ]));
45
+ export default tables;
46
+ //# sourceMappingURL=tables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../src/component/vector/tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,WAAW,GAGZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAyB,CAAC,EAAwB,MAAM,eAAe,CAAC;AAG/E,gEAAgE;AAChE,MAAM,UAAU,GAAG;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,4BAA4B;IAC5B,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,SAAS,KAAK,CAAmB,UAAa;IAC5C,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE;QACnD,WAAW,EAAE,QAAQ;QACrB,UAAU;QACV,YAAY,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;KACzD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACxC,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAC8B,CAAC;AAIzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,gBAAgB,CAAC,CAAC;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,gBAAgB,CAAC,CAAC;AAC9D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAC9B,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAI9C,CAAC;AAiBF,MAAM,UAAU,kBAAkB,CAAC,SAA0B;IAC3D,OAAO,cAAc,SAAS,EAAqB,CAAC;AACtD,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,GAAa,EAAE,EAAiB;IAC9D,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC;YACtC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,MAAM,GAKR,MAAM,CAAC,WAAW,CACpB,gBAAgB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;IACnC,cAAc,UAAU,EAAE;IAC1B,KAAK,CAAC,UAAU,CAAC;CAClB,CAAC,CAIH,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { AssistantContent, CoreMessage, GenerateTextResult, StepResult, ToolContent, ToolSet, UserContent } from "ai";
2
+ import { MessageWithFileAndId, Step } from "./validators";
3
+ export type SerializeUrlsAndUint8Arrays<T> = T extends URL ? string : T extends Uint8Array | ArrayBufferLike ? ArrayBuffer : T extends Array<infer Inner> ? Array<SerializeUrlsAndUint8Arrays<Inner>> : T extends Record<string, any> ? {
4
+ [K in keyof T]: SerializeUrlsAndUint8Arrays<T[K]>;
5
+ } : T;
6
+ export type Content = UserContent | AssistantContent | ToolContent;
7
+ export type SerializedContent = SerializeUrlsAndUint8Arrays<Content>;
8
+ export type SerializedMessage = SerializeUrlsAndUint8Arrays<CoreMessage>;
9
+ export declare function serializeMessage(messageWithId: CoreMessage & {
10
+ id?: string;
11
+ }): SerializedMessage;
12
+ export declare function serializeMessageWithId(messageWithId: CoreMessage & {
13
+ id?: string;
14
+ }): {
15
+ message: SerializedMessage;
16
+ id: string | undefined;
17
+ };
18
+ export declare function serializeContent(content: Content): SerializedContent;
19
+ export declare function serializeResponse<TOOLS extends ToolSet, OUTPUT>(response: GenerateTextResult<TOOLS, OUTPUT>["response"]): {
20
+ message: SerializedMessage;
21
+ id?: string;
22
+ }[];
23
+ export declare function serializeStep<TOOLS extends ToolSet>(step: StepResult<TOOLS>): Step;
24
+ export declare function serializeNewMessagesInStep<TOOLS extends ToolSet>(step: StepResult<TOOLS>): MessageWithFileAndId[];
25
+ export declare function deserializeContent(content: SerializedContent): Content;
26
+ //# sourceMappingURL=mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEhB,WAAW,EAGX,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,OAAO,EACP,WAAW,EACZ,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE1D,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,iBAAiB,CAAC,KAAK,SAAS,OAAO,EAAE,MAAM,EAC7D,QAAQ,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,GACtD;IAAE,OAAO,EAAE,iBAAiB,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CAK/C;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,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CActE"}
@@ -0,0 +1,101 @@
1
+ export function serializeMessage(messageWithId) {
2
+ const { id: _, ...message } = messageWithId;
3
+ const content = message.content;
4
+ return {
5
+ ...message,
6
+ content: serializeContent(content),
7
+ };
8
+ }
9
+ export function serializeMessageWithId(messageWithId) {
10
+ return { message: serializeMessage(messageWithId), id: messageWithId.id };
11
+ }
12
+ export function serializeContent(content) {
13
+ if (typeof content === "string") {
14
+ return content;
15
+ }
16
+ const serialized = content.map((part) => {
17
+ switch (part.type) {
18
+ case "image":
19
+ return { ...part, image: serializeDataOrUrl(part.image) };
20
+ case "file":
21
+ return { ...part, file: serializeDataOrUrl(part.data) };
22
+ default:
23
+ return part;
24
+ }
25
+ });
26
+ return serialized;
27
+ }
28
+ export function serializeResponse(response) {
29
+ const { id, timestamp, modelId, headers, messages, body } = response;
30
+ // TODO: what to do about all the rest?
31
+ // Store body?
32
+ return messages.map((m) => serializeMessageWithId(m));
33
+ }
34
+ export function serializeStep(step) {
35
+ const content = step.response?.messages.map((message) => {
36
+ return serializeMessageWithId(message);
37
+ });
38
+ const timestamp = step.response?.timestamp.getTime();
39
+ const response = {
40
+ ...step.response,
41
+ messages: content,
42
+ timestamp,
43
+ headers: {},
44
+ };
45
+ return {
46
+ ...step,
47
+ response,
48
+ };
49
+ }
50
+ export function serializeNewMessagesInStep(step) {
51
+ const messages = [];
52
+ if (step.text) {
53
+ messages.push(serializeMessageWithId(step.response.messages.at(-1)));
54
+ }
55
+ // TODO: get ID from regular messages
56
+ if (step.toolCalls || step.toolResults) {
57
+ messages.push(...step.response.messages
58
+ .slice(0, -((step.toolCalls?.length ?? 0) + (step.toolResults?.length ?? 0)))
59
+ .map((m) => serializeMessageWithId(m)));
60
+ }
61
+ return messages;
62
+ }
63
+ export function deserializeContent(content) {
64
+ if (typeof content === "string") {
65
+ return content;
66
+ }
67
+ return content.map((part) => {
68
+ switch (part.type) {
69
+ case "image":
70
+ return { ...part, file: deserializeUrl(part.image) };
71
+ case "file":
72
+ return { ...part, file: deserializeUrl(part.data) };
73
+ default:
74
+ return part;
75
+ }
76
+ });
77
+ }
78
+ // TODO: store in file storage if it's big
79
+ function serializeDataOrUrl(dataOrUrl) {
80
+ if (typeof dataOrUrl === "string") {
81
+ return dataOrUrl;
82
+ }
83
+ if (dataOrUrl instanceof ArrayBuffer) {
84
+ return dataOrUrl; // Already an ArrayBuffer
85
+ }
86
+ if (dataOrUrl instanceof URL) {
87
+ return dataOrUrl.toString();
88
+ }
89
+ return dataOrUrl.buffer.slice(dataOrUrl.byteOffset, dataOrUrl.byteOffset + dataOrUrl.byteLength);
90
+ }
91
+ function deserializeUrl(urlOrString) {
92
+ if (typeof urlOrString === "string") {
93
+ if (urlOrString.startsWith("http://") ||
94
+ urlOrString.startsWith("https://")) {
95
+ return new URL(urlOrString);
96
+ }
97
+ return urlOrString;
98
+ }
99
+ return urlOrString;
100
+ }
101
+ //# sourceMappingURL=mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,2 @@
1
+ export declare function subtract(a: number, b: number): number;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,8 @@
1
+ // This is where React components go.
2
+ if (typeof window === "undefined") {
3
+ throw new Error("this is frontend code, but it's running somewhere else!");
4
+ }
5
+ export function subtract(a, b) {
6
+ return a - b;
7
+ }
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,9 @@
1
+ import { CoreMessage } from "ai";
2
+ import { Message } from "./validators";
3
+ export declare function isTool(message: Message | CoreMessage): boolean;
4
+ export declare function extractText(message: Message | CoreMessage): string | undefined;
5
+ export declare const DEFAULT_MESSAGE_RANGE: {
6
+ before: number;
7
+ after: number;
8
+ };
9
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,WAOpD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,sBAoBzD;AAED,eAAO,MAAM,qBAAqB;;;CAA0B,CAAC"}
@@ -0,0 +1,29 @@
1
+ export function isTool(message) {
2
+ return (message.role === "tool" ||
3
+ (message.role === "assistant" &&
4
+ Array.isArray(message.content) &&
5
+ message.content.some((c) => c.type === "tool-call")));
6
+ }
7
+ export function extractText(message) {
8
+ switch (message.role) {
9
+ case "user":
10
+ if (typeof message.content === "string") {
11
+ return message.content;
12
+ }
13
+ return message.content
14
+ .filter((c) => c.type === "text")
15
+ .map((c) => c.text)
16
+ .join("");
17
+ case "assistant":
18
+ if (typeof message.content === "string") {
19
+ return message.content;
20
+ }
21
+ return message.content
22
+ .filter((c) => c.type === "text")
23
+ .map((c) => c.text)
24
+ .join("");
25
+ }
26
+ return undefined;
27
+ }
28
+ export const DEFAULT_MESSAGE_RANGE = { before: 2, after: 1 };
29
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/shared.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,MAAM,CAAC,OAA8B;IACnD,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,MAAM;QACvB,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;YAC3B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CACvD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAA8B;IACxD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM;YACT,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACxC,OAAO,OAAO,CAAC,OAAO,CAAC;YACzB,CAAC;YACD,OAAO,OAAO,CAAC,OAAO;iBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;iBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBAClB,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,KAAK,WAAW;YACd,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACxC,OAAO,OAAO,CAAC,OAAO,CAAC;YACzB,CAAC;YACD,OAAO,OAAO,CAAC,OAAO;iBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;iBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBAClB,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC"}