@inkeep/agents-core 0.41.2 → 0.43.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 (258) hide show
  1. package/dist/api-client/base-client.d.ts +87 -8
  2. package/dist/api-client/base-client.js +174 -1
  3. package/dist/api-client/eval-api-client.d.ts +47 -0
  4. package/dist/api-client/eval-api-client.js +65 -0
  5. package/dist/api-client/index.d.ts +4 -0
  6. package/dist/api-client/index.js +5 -0
  7. package/dist/api-client/manage-api-client.d.ts +34 -0
  8. package/dist/api-client/manage-api-client.js +104 -0
  9. package/dist/auth/auth.d.ts +86 -20
  10. package/dist/auth/auth.js +60 -2
  11. package/dist/auth/authz/client.d.ts +87 -0
  12. package/dist/auth/authz/client.js +196 -0
  13. package/dist/auth/authz/config.d.ts +103 -0
  14. package/dist/auth/authz/config.js +93 -0
  15. package/dist/auth/authz/index.d.ts +5 -0
  16. package/dist/auth/authz/index.js +6 -0
  17. package/dist/auth/authz/permissions.d.ts +53 -0
  18. package/dist/auth/authz/permissions.js +83 -0
  19. package/dist/auth/authz/sync.d.ts +106 -0
  20. package/dist/auth/authz/sync.js +321 -0
  21. package/dist/auth/permissions.d.ts +13 -13
  22. package/dist/auth/permissions.js +2 -181
  23. package/dist/client-exports.d.ts +9 -3
  24. package/dist/client-exports.js +4 -2
  25. package/dist/constants/context-breakdown.d.ts +61 -0
  26. package/dist/constants/context-breakdown.js +124 -0
  27. package/dist/constants/execution-limits-shared/defaults.d.ts +1 -1
  28. package/dist/constants/execution-limits-shared/defaults.js +1 -1
  29. package/dist/constants/execution-limits-shared/index.d.ts +1 -1
  30. package/dist/constants/otel-attributes.d.ts +4 -0
  31. package/dist/constants/otel-attributes.js +4 -0
  32. package/dist/context/ContextConfig.d.ts +2 -2
  33. package/dist/context/ContextConfig.js +3 -3
  34. package/dist/context/TemplateEngine.d.ts +0 -6
  35. package/dist/context/TemplateEngine.js +4 -19
  36. package/dist/context/index.d.ts +1 -5
  37. package/dist/context/index.js +1 -5
  38. package/dist/credential-stores/keychain-store.d.ts +20 -8
  39. package/dist/credential-stores/keychain-store.js +107 -43
  40. package/dist/credential-stuffer/CredentialStuffer.d.ts +1 -1
  41. package/dist/data-access/index.d.ts +34 -26
  42. package/dist/data-access/index.js +34 -26
  43. package/dist/data-access/manage/agentFull.d.ts +36 -0
  44. package/dist/data-access/{agentFull.js → manage/agentFull.js} +209 -7
  45. package/dist/data-access/{agents.d.ts → manage/agents.d.ts} +64 -63
  46. package/dist/data-access/{agents.js → manage/agents.js} +80 -27
  47. package/dist/data-access/{artifactComponents.d.ts → manage/artifactComponents.d.ts} +33 -33
  48. package/dist/data-access/{artifactComponents.js → manage/artifactComponents.js} +5 -5
  49. package/dist/data-access/{contextConfigs.d.ts → manage/contextConfigs.d.ts} +26 -26
  50. package/dist/data-access/{contextConfigs.js → manage/contextConfigs.js} +3 -3
  51. package/dist/data-access/{credentialReferences.d.ts → manage/credentialReferences.d.ts} +17 -17
  52. package/dist/data-access/{credentialReferences.js → manage/credentialReferences.js} +2 -2
  53. package/dist/data-access/{dataComponents.d.ts → manage/dataComponents.d.ts} +26 -26
  54. package/dist/data-access/{dataComponents.js → manage/dataComponents.js} +7 -7
  55. package/dist/data-access/manage/evalConfig.d.ts +221 -0
  56. package/dist/data-access/manage/evalConfig.js +275 -0
  57. package/dist/data-access/{externalAgents.d.ts → manage/externalAgents.d.ts} +16 -16
  58. package/dist/data-access/{externalAgents.js → manage/externalAgents.js} +2 -2
  59. package/dist/data-access/manage/functionTools.d.ts +242 -0
  60. package/dist/data-access/{functionTools.js → manage/functionTools.js} +124 -30
  61. package/dist/data-access/{functions.d.ts → manage/functions.d.ts} +9 -9
  62. package/dist/data-access/{functions.js → manage/functions.js} +3 -3
  63. package/dist/data-access/manage/projectFull.d.ts +38 -0
  64. package/dist/data-access/{projectFull.js → manage/projectFull.js} +64 -65
  65. package/dist/data-access/manage/projectLifecycle.d.ts +119 -0
  66. package/dist/data-access/manage/projectLifecycle.js +234 -0
  67. package/dist/data-access/manage/projects.d.ts +75 -0
  68. package/dist/data-access/{projects.js → manage/projects.js} +15 -16
  69. package/dist/data-access/{subAgentExternalAgentRelations.d.ts → manage/subAgentExternalAgentRelations.d.ts} +43 -43
  70. package/dist/data-access/{subAgentExternalAgentRelations.js → manage/subAgentExternalAgentRelations.js} +2 -2
  71. package/dist/data-access/{subAgentRelations.d.ts → manage/subAgentRelations.d.ts} +65 -65
  72. package/dist/data-access/{subAgentRelations.js → manage/subAgentRelations.js} +3 -3
  73. package/dist/data-access/{subAgentTeamAgentRelations.d.ts → manage/subAgentTeamAgentRelations.d.ts} +43 -43
  74. package/dist/data-access/{subAgentTeamAgentRelations.js → manage/subAgentTeamAgentRelations.js} +2 -2
  75. package/dist/data-access/{subAgents.d.ts → manage/subAgents.d.ts} +28 -28
  76. package/dist/data-access/{subAgents.js → manage/subAgents.js} +4 -4
  77. package/dist/data-access/{tools.d.ts → manage/tools.d.ts} +65 -52
  78. package/dist/data-access/{tools.js → manage/tools.js} +109 -64
  79. package/dist/data-access/manage/triggers.d.ts +106 -0
  80. package/dist/data-access/manage/triggers.js +81 -0
  81. package/dist/data-access/{apiKeys.d.ts → runtime/apiKeys.d.ts} +37 -37
  82. package/dist/data-access/{apiKeys.js → runtime/apiKeys.js} +3 -3
  83. package/dist/data-access/runtime/cascade-delete.d.ts +77 -0
  84. package/dist/data-access/runtime/cascade-delete.js +111 -0
  85. package/dist/data-access/{contextCache.d.ts → runtime/contextCache.d.ts} +13 -13
  86. package/dist/data-access/{contextCache.js → runtime/contextCache.js} +5 -5
  87. package/dist/data-access/{conversations.d.ts → runtime/conversations.d.ts} +80 -31
  88. package/dist/data-access/{conversations.js → runtime/conversations.js} +13 -7
  89. package/dist/data-access/runtime/evalRuns.d.ts +120 -0
  90. package/dist/data-access/runtime/evalRuns.js +168 -0
  91. package/dist/data-access/{ledgerArtifacts.d.ts → runtime/ledgerArtifacts.d.ts} +13 -13
  92. package/dist/data-access/{ledgerArtifacts.js → runtime/ledgerArtifacts.js} +3 -3
  93. package/dist/data-access/{messages.d.ts → runtime/messages.d.ts} +24 -24
  94. package/dist/data-access/{messages.js → runtime/messages.js} +2 -2
  95. package/dist/data-access/{organizations.d.ts → runtime/organizations.d.ts} +16 -7
  96. package/dist/data-access/{organizations.js → runtime/organizations.js} +16 -4
  97. package/dist/data-access/runtime/projects.d.ts +62 -0
  98. package/dist/data-access/runtime/projects.js +90 -0
  99. package/dist/data-access/runtime/tasks.d.ts +55 -0
  100. package/dist/data-access/{tasks.js → runtime/tasks.js} +2 -2
  101. package/dist/data-access/runtime/triggerInvocations.d.ts +62 -0
  102. package/dist/data-access/runtime/triggerInvocations.js +54 -0
  103. package/dist/data-access/runtime/users.d.ts +19 -0
  104. package/dist/data-access/{users.js → runtime/users.js} +2 -2
  105. package/dist/data-access/validation.d.ts +4 -4
  106. package/dist/data-access/validation.js +1 -1
  107. package/dist/db/clean.d.ts +8 -4
  108. package/dist/db/clean.js +14 -105
  109. package/dist/db/delete.d.ts +1 -1
  110. package/dist/db/delete.js +7 -10
  111. package/dist/db/manage/dolt-cleanup.d.ts +51 -0
  112. package/dist/db/manage/dolt-cleanup.js +132 -0
  113. package/dist/db/manage/manage-client.d.ts +26 -0
  114. package/dist/db/manage/manage-client.js +68 -0
  115. package/dist/db/{schema.d.ts → manage/manage-schema.d.ts} +1257 -969
  116. package/dist/db/{schema.js → manage/manage-schema.js} +436 -334
  117. package/dist/db/manage/test-manage-client.d.ts +27 -0
  118. package/dist/db/manage/test-manage-client.js +68 -0
  119. package/dist/db/runtime/runtime-client.d.ts +20 -0
  120. package/dist/db/runtime/runtime-client.js +30 -0
  121. package/dist/db/runtime/runtime-schema.d.ts +2834 -0
  122. package/dist/db/runtime/runtime-schema.js +483 -0
  123. package/dist/db/runtime/test-runtime-client.d.ts +27 -0
  124. package/dist/db/{test-client.js → runtime/test-runtime-client.js} +11 -25
  125. package/dist/db/utils.d.ts +6 -0
  126. package/dist/db/utils.js +42 -0
  127. package/dist/dolt/branch.d.ts +62 -0
  128. package/dist/dolt/branch.js +82 -0
  129. package/dist/dolt/branches-api.d.ts +108 -0
  130. package/dist/dolt/branches-api.js +162 -0
  131. package/dist/dolt/commit.d.ts +94 -0
  132. package/dist/dolt/commit.js +103 -0
  133. package/dist/dolt/diff.d.ts +27 -0
  134. package/dist/dolt/diff.js +21 -0
  135. package/dist/dolt/index.d.ts +10 -0
  136. package/dist/dolt/index.js +11 -0
  137. package/dist/dolt/merge.d.ts +63 -0
  138. package/dist/dolt/merge.js +81 -0
  139. package/dist/dolt/migrate-all-branches.d.ts +4 -0
  140. package/dist/dolt/migrate-all-branches.js +83 -0
  141. package/dist/dolt/migrate-dolt.d.ts +1 -0
  142. package/dist/dolt/migrate-dolt.js +25 -0
  143. package/dist/dolt/ref-helpers.d.ts +19 -0
  144. package/dist/dolt/ref-helpers.js +65 -0
  145. package/dist/dolt/ref-middleware.d.ts +82 -0
  146. package/dist/dolt/ref-middleware.js +217 -0
  147. package/dist/dolt/ref-scope.d.ts +101 -0
  148. package/dist/dolt/ref-scope.js +231 -0
  149. package/dist/dolt/schema-sync.d.ts +135 -0
  150. package/dist/dolt/schema-sync.js +255 -0
  151. package/dist/env.d.ts +6 -4
  152. package/dist/env.js +3 -2
  153. package/dist/index.d.ts +73 -46
  154. package/dist/index.js +76 -49
  155. package/dist/types/@napi-rs__keyring/index.d.ts +14 -0
  156. package/dist/types/entities.d.ts +81 -2
  157. package/dist/types/index.d.ts +3 -3
  158. package/dist/types/utility.d.ts +46 -5
  159. package/dist/types/utility.js +2 -1
  160. package/dist/utils/JsonTransformer.d.ts +42 -0
  161. package/dist/utils/JsonTransformer.js +103 -0
  162. package/dist/utils/apiKeys.d.ts +5 -1
  163. package/dist/utils/apiKeys.js +11 -1
  164. package/dist/utils/colors.d.ts +34 -0
  165. package/dist/utils/colors.js +49 -0
  166. package/dist/utils/credential-store-utils.d.ts +1 -1
  167. package/dist/utils/format-messages.d.ts +1 -1
  168. package/dist/utils/index.d.ts +8 -4
  169. package/dist/utils/index.js +8 -4
  170. package/dist/utils/internal-service-auth.d.ts +79 -0
  171. package/dist/utils/internal-service-auth.js +140 -0
  172. package/dist/utils/jmespath-utils.d.ts +152 -0
  173. package/dist/utils/jmespath-utils.js +213 -0
  174. package/dist/utils/jwt-helpers.d.ts +56 -0
  175. package/dist/utils/jwt-helpers.js +90 -0
  176. package/dist/utils/mcp-client.d.ts +1 -1
  177. package/dist/utils/mcp-client.js +1 -1
  178. package/dist/utils/service-token-auth.d.ts +9 -27
  179. package/dist/utils/service-token-auth.js +48 -96
  180. package/dist/utils/signature-validation.d.ts +2 -0
  181. package/dist/utils/signature-validation.js +3 -0
  182. package/dist/utils/template-interpolation.d.ts +22 -0
  183. package/dist/utils/template-interpolation.js +62 -0
  184. package/dist/utils/third-party-mcp-servers/composio-client.d.ts +13 -1
  185. package/dist/utils/third-party-mcp-servers/composio-client.js +47 -29
  186. package/dist/utils/third-party-mcp-servers/index.d.ts +2 -2
  187. package/dist/utils/third-party-mcp-servers/index.js +2 -2
  188. package/dist/utils/trigger-auth.d.ts +85 -0
  189. package/dist/utils/trigger-auth.js +233 -0
  190. package/dist/validation/agentFull.js +2 -4
  191. package/dist/validation/dolt-schemas.d.ts +49 -0
  192. package/dist/validation/dolt-schemas.js +44 -0
  193. package/dist/validation/drizzle-schema-helpers.d.ts +4 -26
  194. package/dist/validation/drizzle-schema-helpers.js +5 -151
  195. package/dist/validation/index.d.ts +5 -4
  196. package/dist/validation/index.js +4 -3
  197. package/dist/validation/render-validation.js +19 -0
  198. package/dist/validation/schemas.d.ts +18223 -5148
  199. package/dist/validation/schemas.js +559 -12
  200. package/dist/validation/stream-event-schemas.d.ts +96 -1
  201. package/dist/validation/stream-event-schemas.js +67 -2
  202. package/drizzle/manage/0000_tearful_rhodey.sql +414 -0
  203. package/drizzle/manage/0001_broken_wendell_vaughn.sql +19 -0
  204. package/drizzle/manage/0002_bent_sunfire.sql +1 -0
  205. package/drizzle/manage/0003_tiny_captain_universe.sql +8 -0
  206. package/drizzle/manage/0004_curious_phil_sheldon.sql +2 -0
  207. package/drizzle/manage/0005_silent_shatterstar.sql +53 -0
  208. package/drizzle/manage/meta/0000_snapshot.json +2987 -0
  209. package/drizzle/manage/meta/0001_snapshot.json +3115 -0
  210. package/drizzle/manage/meta/0002_snapshot.json +3115 -0
  211. package/drizzle/manage/meta/0003_snapshot.json +3134 -0
  212. package/drizzle/manage/meta/0004_snapshot.json +3141 -0
  213. package/drizzle/manage/meta/0005_snapshot.json +3141 -0
  214. package/drizzle/manage/meta/_journal.json +48 -0
  215. package/drizzle/runtime/0008_silly_preak.sql +127 -0
  216. package/drizzle/runtime/0009_freezing_leo.sql +17 -0
  217. package/drizzle/runtime/meta/0008_snapshot.json +2263 -0
  218. package/drizzle/runtime/meta/0009_snapshot.json +2397 -0
  219. package/drizzle/{meta → runtime/meta}/_journal.json +14 -0
  220. package/package.json +56 -18
  221. package/spicedb/schema.zed +114 -0
  222. package/dist/context/ContextFetcher.d.ts +0 -73
  223. package/dist/context/ContextFetcher.js +0 -291
  224. package/dist/context/ContextResolver.d.ts +0 -60
  225. package/dist/context/ContextResolver.js +0 -278
  226. package/dist/context/context.d.ts +0 -27
  227. package/dist/context/context.js +0 -128
  228. package/dist/context/contextCache.d.ts +0 -58
  229. package/dist/context/contextCache.js +0 -177
  230. package/dist/data-access/agentFull.d.ts +0 -33
  231. package/dist/data-access/functionTools.d.ts +0 -169
  232. package/dist/data-access/projectFull.d.ts +0 -32
  233. package/dist/data-access/projects.d.ts +0 -71
  234. package/dist/data-access/tasks.d.ts +0 -45
  235. package/dist/data-access/users.d.ts +0 -19
  236. package/dist/db/client.d.ts +0 -20
  237. package/dist/db/client.js +0 -28
  238. package/dist/db/test-client.d.ts +0 -31
  239. package/dist/middleware/contextValidation.d.ts +0 -46
  240. package/dist/middleware/contextValidation.js +0 -280
  241. package/dist/middleware/index.d.ts +0 -2
  242. package/dist/middleware/index.js +0 -3
  243. package/dist/utils/execution.d.ts +0 -22
  244. package/dist/utils/execution.js +0 -25
  245. /package/drizzle/{0000_exotic_mysterio.sql → runtime/0000_exotic_mysterio.sql} +0 -0
  246. /package/drizzle/{0001_calm_sheva_callister.sql → runtime/0001_calm_sheva_callister.sql} +0 -0
  247. /package/drizzle/{0002_puzzling_goblin_queen.sql → runtime/0002_puzzling_goblin_queen.sql} +0 -0
  248. /package/drizzle/{0003_sweet_human_robot.sql → runtime/0003_sweet_human_robot.sql} +0 -0
  249. /package/drizzle/{0004_cuddly_shooting_star.sql → runtime/0004_cuddly_shooting_star.sql} +0 -0
  250. /package/drizzle/{0005_reflective_starfox.sql → runtime/0005_reflective_starfox.sql} +0 -0
  251. /package/drizzle/{0006_stale_thaddeus_ross.sql → runtime/0006_stale_thaddeus_ross.sql} +0 -0
  252. /package/drizzle/{0007_slim_karma.sql → runtime/0007_slim_karma.sql} +0 -0
  253. /package/drizzle/{meta → runtime/meta}/0000_snapshot.json +0 -0
  254. /package/drizzle/{meta → runtime/meta}/0001_snapshot.json +0 -0
  255. /package/drizzle/{meta → runtime/meta}/0003_snapshot.json +0 -0
  256. /package/drizzle/{meta → runtime/meta}/0005_snapshot.json +0 -0
  257. /package/drizzle/{meta → runtime/meta}/0006_snapshot.json +0 -0
  258. /package/drizzle/{meta → runtime/meta}/0007_snapshot.json +0 -0
@@ -1,46 +1,39 @@
1
- import { __exportAll } from "../_virtual/rolldown_runtime.js";
2
- import { account, deviceCode, invitation, member, organization, session, ssoProvider, user, verification } from "../auth/auth-schema.js";
1
+ import { __exportAll } from "../../_virtual/rolldown_runtime.js";
3
2
  import { relations } from "drizzle-orm";
4
- import { foreignKey, index, integer, jsonb, pgTable, primaryKey, text, timestamp, unique, varchar } from "drizzle-orm/pg-core";
3
+ import { boolean, doublePrecision, foreignKey, jsonb, pgTable, primaryKey, text, timestamp, unique, varchar } from "drizzle-orm/pg-core";
5
4
 
6
- //#region src/db/schema.ts
7
- var schema_exports = /* @__PURE__ */ __exportAll({
8
- account: () => account,
5
+ //#region src/db/manage/manage-schema.ts
6
+ var manage_schema_exports = /* @__PURE__ */ __exportAll({
9
7
  agentRelations: () => agentRelations,
10
8
  agentToolRelationsRelations: () => agentToolRelationsRelations,
11
9
  agents: () => agents,
12
- apiKeys: () => apiKeys,
13
- apiKeysRelations: () => apiKeysRelations,
14
10
  artifactComponents: () => artifactComponents,
15
11
  artifactComponentsRelations: () => artifactComponentsRelations,
16
- contextCache: () => contextCache,
17
- contextCacheRelations: () => contextCacheRelations,
18
12
  contextConfigs: () => contextConfigs,
19
13
  contextConfigsRelations: () => contextConfigsRelations,
20
- conversations: () => conversations,
21
- conversationsRelations: () => conversationsRelations,
22
14
  credentialReferences: () => credentialReferences,
23
15
  credentialReferencesRelations: () => credentialReferencesRelations,
24
16
  dataComponents: () => dataComponents,
25
17
  dataComponentsRelations: () => dataComponentsRelations,
26
- deviceCode: () => deviceCode,
18
+ dataset: () => dataset,
19
+ datasetItem: () => datasetItem,
20
+ datasetRunConfig: () => datasetRunConfig,
21
+ datasetRunConfigAgentRelations: () => datasetRunConfigAgentRelations,
22
+ evaluationJobConfig: () => evaluationJobConfig,
23
+ evaluationJobConfigEvaluatorRelations: () => evaluationJobConfigEvaluatorRelations,
24
+ evaluationRunConfig: () => evaluationRunConfig,
25
+ evaluationRunConfigEvaluationSuiteConfigRelations: () => evaluationRunConfigEvaluationSuiteConfigRelations,
26
+ evaluationSuiteConfig: () => evaluationSuiteConfig,
27
+ evaluationSuiteConfigEvaluatorRelations: () => evaluationSuiteConfigEvaluatorRelations,
28
+ evaluator: () => evaluator,
27
29
  externalAgents: () => externalAgents,
28
30
  externalAgentsRelations: () => externalAgentsRelations,
29
31
  functionTools: () => functionTools,
30
32
  functionToolsRelations: () => functionToolsRelations,
31
33
  functions: () => functions,
32
34
  functionsRelations: () => functionsRelations,
33
- invitation: () => invitation,
34
- ledgerArtifacts: () => ledgerArtifacts,
35
- ledgerArtifactsRelations: () => ledgerArtifactsRelations,
36
- member: () => member,
37
- messages: () => messages,
38
- messagesRelations: () => messagesRelations,
39
- organization: () => organization,
40
35
  projects: () => projects,
41
36
  projectsRelations: () => projectsRelations,
42
- session: () => session,
43
- ssoProvider: () => ssoProvider,
44
37
  subAgentArtifactComponents: () => subAgentArtifactComponents,
45
38
  subAgentArtifactComponentsRelations: () => subAgentArtifactComponentsRelations,
46
39
  subAgentDataComponents: () => subAgentDataComponents,
@@ -56,14 +49,9 @@ var schema_exports = /* @__PURE__ */ __exportAll({
56
49
  subAgentToolRelations: () => subAgentToolRelations,
57
50
  subAgents: () => subAgents,
58
51
  subAgentsRelations: () => subAgentsRelations,
59
- taskRelations: () => taskRelations,
60
- taskRelationsRelations: () => taskRelationsRelations,
61
- tasks: () => tasks,
62
- tasksRelations: () => tasksRelations,
63
52
  tools: () => tools,
64
53
  toolsRelations: () => toolsRelations,
65
- user: () => user,
66
- verification: () => verification
54
+ triggers: () => triggers
67
55
  });
68
56
  const tenantScoped = {
69
57
  tenantId: varchar("tenant_id", { length: 256 }).notNull(),
@@ -95,11 +83,7 @@ const projects = pgTable("projects", {
95
83
  models: jsonb("models").$type(),
96
84
  stopWhen: jsonb("stop_when").$type(),
97
85
  ...timestamps
98
- }, (table) => [primaryKey({ columns: [table.tenantId, table.id] }), foreignKey({
99
- columns: [table.tenantId],
100
- foreignColumns: [organization.id],
101
- name: "projects_tenant_id_fk"
102
- }).onDelete("cascade")]);
86
+ }, (table) => [primaryKey({ columns: [table.tenantId, table.id] })]);
103
87
  const agents = pgTable("agent", {
104
88
  ...projectScoped,
105
89
  name: varchar("name", { length: 256 }).notNull(),
@@ -143,29 +127,42 @@ const contextConfigs = pgTable("context_configs", {
143
127
  ],
144
128
  name: "context_configs_agent_fk"
145
129
  }).onDelete("cascade")]);
146
- const contextCache = pgTable("context_cache", {
147
- ...projectScoped,
148
- conversationId: varchar("conversation_id", { length: 256 }).notNull(),
149
- contextConfigId: varchar("context_config_id", { length: 256 }).notNull(),
150
- contextVariableKey: varchar("context_variable_key", { length: 256 }).notNull(),
151
- value: jsonb("value").$type().notNull(),
152
- requestHash: varchar("request_hash", { length: 256 }),
153
- fetchedAt: timestamp("fetched_at", { mode: "string" }).notNull().defaultNow(),
154
- fetchSource: varchar("fetch_source", { length: 256 }),
155
- fetchDurationMs: integer("fetch_duration_ms"),
130
+ const triggers = pgTable("triggers", {
131
+ ...agentScoped,
132
+ ...uiProperties,
133
+ enabled: boolean("enabled").notNull().default(true),
134
+ inputSchema: jsonb("input_schema").$type(),
135
+ outputTransform: jsonb("output_transform").$type(),
136
+ messageTemplate: text("message_template"),
137
+ authentication: jsonb("authentication").$type(),
138
+ signingSecretCredentialReferenceId: varchar("signing_secret_credential_reference_id", { length: 256 }),
139
+ signatureVerification: jsonb("signature_verification").$type().default(null),
156
140
  ...timestamps
157
141
  }, (table) => [
158
142
  primaryKey({ columns: [
159
143
  table.tenantId,
160
144
  table.projectId,
145
+ table.agentId,
161
146
  table.id
162
147
  ] }),
163
148
  foreignKey({
164
- columns: [table.tenantId, table.projectId],
165
- foreignColumns: [projects.tenantId, projects.id],
166
- name: "context_cache_project_fk"
149
+ columns: [
150
+ table.tenantId,
151
+ table.projectId,
152
+ table.agentId
153
+ ],
154
+ foreignColumns: [
155
+ agents.tenantId,
156
+ agents.projectId,
157
+ agents.id
158
+ ],
159
+ name: "triggers_agent_fk"
167
160
  }).onDelete("cascade"),
168
- index("context_cache_lookup_idx").on(table.conversationId, table.contextConfigId, table.contextVariableKey)
161
+ foreignKey({
162
+ columns: [table.signingSecretCredentialReferenceId],
163
+ foreignColumns: [credentialReferences.id],
164
+ name: "triggers_credential_reference_fk"
165
+ }).onDelete("set null")
169
166
  ]);
170
167
  const subAgents = pgTable("sub_agents", {
171
168
  ...agentScoped,
@@ -246,46 +243,6 @@ const externalAgents = pgTable("external_agents", {
246
243
  name: "external_agents_credential_reference_fk"
247
244
  }).onDelete("set null")
248
245
  ]);
249
- const tasks = pgTable("tasks", {
250
- ...subAgentScoped,
251
- contextId: varchar("context_id", { length: 256 }).notNull(),
252
- status: varchar("status", { length: 256 }).notNull(),
253
- metadata: jsonb("metadata").$type(),
254
- ...timestamps
255
- }, (table) => [primaryKey({ columns: [
256
- table.tenantId,
257
- table.projectId,
258
- table.id
259
- ] }), foreignKey({
260
- columns: [
261
- table.tenantId,
262
- table.projectId,
263
- table.agentId,
264
- table.subAgentId
265
- ],
266
- foreignColumns: [
267
- subAgents.tenantId,
268
- subAgents.projectId,
269
- subAgents.agentId,
270
- subAgents.id
271
- ],
272
- name: "tasks_sub_agent_fk"
273
- }).onDelete("cascade")]);
274
- const taskRelations = pgTable("task_relations", {
275
- ...projectScoped,
276
- parentTaskId: varchar("parent_task_id", { length: 256 }).notNull(),
277
- childTaskId: varchar("child_task_id", { length: 256 }).notNull(),
278
- relationType: varchar("relation_type", { length: 256 }).default("parent_child"),
279
- ...timestamps
280
- }, (table) => [primaryKey({ columns: [
281
- table.tenantId,
282
- table.projectId,
283
- table.id
284
- ] }), foreignKey({
285
- columns: [table.tenantId, table.projectId],
286
- foreignColumns: [projects.tenantId, projects.id],
287
- name: "task_relations_project_fk"
288
- }).onDelete("cascade")]);
289
246
  const dataComponents = pgTable("data_components", {
290
247
  ...projectScoped,
291
248
  ...uiProperties,
@@ -360,13 +317,16 @@ const subAgentArtifactComponents = pgTable("sub_agent_artifact_components", {
360
317
  artifactComponentId: varchar("artifact_component_id", { length: 256 }).notNull(),
361
318
  createdAt: timestamp("created_at", { mode: "string" }).notNull().defaultNow()
362
319
  }, (table) => [
363
- primaryKey({ columns: [
364
- table.tenantId,
365
- table.projectId,
366
- table.agentId,
367
- table.subAgentId,
368
- table.id
369
- ] }),
320
+ primaryKey({
321
+ columns: [
322
+ table.tenantId,
323
+ table.projectId,
324
+ table.agentId,
325
+ table.subAgentId,
326
+ table.id
327
+ ],
328
+ name: "sub_agent_artifact_components_pk"
329
+ }),
370
330
  foreignKey({
371
331
  columns: [
372
332
  table.tenantId,
@@ -529,12 +489,15 @@ const subAgentExternalAgentRelations = pgTable("sub_agent_external_agent_relatio
529
489
  headers: jsonb("headers").$type(),
530
490
  ...timestamps
531
491
  }, (table) => [
532
- primaryKey({ columns: [
533
- table.tenantId,
534
- table.projectId,
535
- table.agentId,
536
- table.id
537
- ] }),
492
+ primaryKey({
493
+ columns: [
494
+ table.tenantId,
495
+ table.projectId,
496
+ table.agentId,
497
+ table.id
498
+ ],
499
+ name: "sub_agent_external_agent_relations_pk"
500
+ }),
538
501
  foreignKey({
539
502
  columns: [
540
503
  table.tenantId,
@@ -570,12 +533,15 @@ const subAgentTeamAgentRelations = pgTable("sub_agent_team_agent_relations", {
570
533
  headers: jsonb("headers").$type(),
571
534
  ...timestamps
572
535
  }, (table) => [
573
- primaryKey({ columns: [
574
- table.tenantId,
575
- table.projectId,
576
- table.agentId,
577
- table.id
578
- ] }),
536
+ primaryKey({
537
+ columns: [
538
+ table.tenantId,
539
+ table.projectId,
540
+ table.agentId,
541
+ table.id
542
+ ],
543
+ name: "sub_agent_team_agent_relations_pk"
544
+ }),
579
545
  foreignKey({
580
546
  columns: [
581
547
  table.tenantId,
@@ -608,14 +574,18 @@ const subAgentTeamAgentRelations = pgTable("sub_agent_team_agent_relations", {
608
574
  const subAgentFunctionToolRelations = pgTable("sub_agent_function_tool_relations", {
609
575
  ...subAgentScoped,
610
576
  functionToolId: varchar("function_tool_id", { length: 256 }).notNull(),
577
+ toolPolicies: jsonb("tool_policies").$type(),
611
578
  ...timestamps
612
579
  }, (table) => [
613
- primaryKey({ columns: [
614
- table.tenantId,
615
- table.projectId,
616
- table.agentId,
617
- table.id
618
- ] }),
580
+ primaryKey({
581
+ columns: [
582
+ table.tenantId,
583
+ table.projectId,
584
+ table.agentId,
585
+ table.id
586
+ ],
587
+ name: "sub_agent_function_tool_relations_pk"
588
+ }),
619
589
  foreignKey({
620
590
  columns: [
621
591
  table.tenantId,
@@ -647,13 +617,43 @@ const subAgentFunctionToolRelations = pgTable("sub_agent_function_tool_relations
647
617
  name: "sub_agent_function_tool_relations_function_tool_fk"
648
618
  }).onDelete("cascade")
649
619
  ]);
650
- const conversations = pgTable("conversations", {
620
+ const credentialReferences = pgTable("credential_references", {
651
621
  ...projectScoped,
622
+ name: varchar("name", { length: 256 }).notNull(),
623
+ type: varchar("type", { length: 256 }).notNull(),
624
+ credentialStoreId: varchar("credential_store_id", { length: 256 }).notNull(),
625
+ retrievalParams: jsonb("retrieval_params").$type(),
626
+ toolId: varchar("tool_id", { length: 256 }),
652
627
  userId: varchar("user_id", { length: 256 }),
653
- activeSubAgentId: varchar("active_sub_agent_id", { length: 256 }).notNull(),
654
- title: text("title"),
655
- lastContextResolution: timestamp("last_context_resolution", { mode: "string" }),
656
- metadata: jsonb("metadata").$type(),
628
+ createdBy: varchar("created_by", { length: 256 }),
629
+ ...timestamps
630
+ }, (t) => [
631
+ primaryKey({ columns: [
632
+ t.tenantId,
633
+ t.projectId,
634
+ t.id
635
+ ] }),
636
+ foreignKey({
637
+ columns: [t.tenantId, t.projectId],
638
+ foreignColumns: [projects.tenantId, projects.id],
639
+ name: "credential_references_project_fk"
640
+ }).onDelete("cascade"),
641
+ unique("credential_references_id_unique").on(t.id),
642
+ unique("credential_references_tool_user_unique").on(t.toolId, t.userId)
643
+ ]);
644
+ /**
645
+ * A collection of test cases/items used for evaluation. Contains dataset items
646
+ * that define input/output pairs for testing agents. Used for batch evaluation
647
+ * runs where conversations are created from dataset items. Each datasetRun
648
+ * specifies which agent to use when executing the dataset.
649
+ *
650
+ * one to many relationship with datasetItem
651
+ *
652
+ * Includes: name and timestamps
653
+ */
654
+ const dataset = pgTable("dataset", {
655
+ ...projectScoped,
656
+ name: varchar("name", { length: 256 }).notNull(),
657
657
  ...timestamps
658
658
  }, (table) => [primaryKey({ columns: [
659
659
  table.tenantId,
@@ -662,26 +662,50 @@ const conversations = pgTable("conversations", {
662
662
  ] }), foreignKey({
663
663
  columns: [table.tenantId, table.projectId],
664
664
  foreignColumns: [projects.tenantId, projects.id],
665
- name: "conversations_project_fk"
665
+ name: "dataset_project_fk"
666
+ }).onDelete("cascade")]);
667
+ /**
668
+ *
669
+ * Individual test case within a dataset. Contains the input messages to send
670
+ * to an agent and optionally expected output or simulation configuration.
671
+ * When a dataset run executes, it creates conversations from these items.
672
+ *
673
+ *
674
+ * Includes: input (messages array with optional headers), expected output (array of messages),
675
+ * simulation agent (stopWhen conditions, prompt/modelConfig), and timestamps
676
+ * simulationAgent is for when a user wants to create a multi-turn simulation aka a simulating agent is creating input messages based on a persona
677
+ */
678
+ const datasetItem = pgTable("dataset_item", {
679
+ ...projectScoped,
680
+ datasetId: varchar("dataset_id", { length: 256 }).notNull(),
681
+ input: jsonb("input").$type().notNull(),
682
+ expectedOutput: jsonb("expected_output").$type(),
683
+ simulationAgent: jsonb("simulation_agent").$type(),
684
+ ...timestamps
685
+ }, (table) => [primaryKey({ columns: [
686
+ table.tenantId,
687
+ table.projectId,
688
+ table.id
689
+ ] }), foreignKey({
690
+ columns: [
691
+ table.tenantId,
692
+ table.projectId,
693
+ table.datasetId
694
+ ],
695
+ foreignColumns: [
696
+ dataset.tenantId,
697
+ dataset.projectId,
698
+ dataset.id
699
+ ],
700
+ name: "dataset_item_dataset_fk"
666
701
  }).onDelete("cascade")]);
667
- const messages = pgTable("messages", {
702
+ const evaluator = pgTable("evaluator", {
668
703
  ...projectScoped,
669
- conversationId: varchar("conversation_id", { length: 256 }).notNull(),
670
- role: varchar("role", { length: 256 }).notNull(),
671
- fromSubAgentId: varchar("from_sub_agent_id", { length: 256 }),
672
- toSubAgentId: varchar("to_sub_agent_id", { length: 256 }),
673
- fromExternalAgentId: varchar("from_external_sub_agent_id", { length: 256 }),
674
- toExternalAgentId: varchar("to_external_sub_agent_id", { length: 256 }),
675
- fromTeamAgentId: varchar("from_team_agent_id", { length: 256 }),
676
- toTeamAgentId: varchar("to_team_agent_id", { length: 256 }),
677
- content: jsonb("content").$type().notNull(),
678
- visibility: varchar("visibility", { length: 256 }).notNull().default("user-facing"),
679
- messageType: varchar("message_type", { length: 256 }).notNull().default("chat"),
680
- taskId: varchar("task_id", { length: 256 }),
681
- parentMessageId: varchar("parent_message_id", { length: 256 }),
682
- a2aTaskId: varchar("a2a_task_id", { length: 256 }),
683
- a2aSessionId: varchar("a2a_session_id", { length: 256 }),
684
- metadata: jsonb("metadata").$type(),
704
+ ...uiProperties,
705
+ prompt: text("prompt").notNull(),
706
+ schema: jsonb("schema").$type().notNull(),
707
+ model: jsonb("model").$type().notNull(),
708
+ passCriteria: jsonb("pass_criteria").$type(),
685
709
  ...timestamps
686
710
  }, (table) => [primaryKey({ columns: [
687
711
  table.tenantId,
@@ -690,116 +714,265 @@ const messages = pgTable("messages", {
690
714
  ] }), foreignKey({
691
715
  columns: [table.tenantId, table.projectId],
692
716
  foreignColumns: [projects.tenantId, projects.id],
693
- name: "messages_project_fk"
717
+ name: "evaluator_project_fk"
694
718
  }).onDelete("cascade")]);
695
- const ledgerArtifacts = pgTable("ledger_artifacts", {
719
+ const datasetRunConfig = pgTable("dataset_run_config", {
696
720
  ...projectScoped,
697
- taskId: varchar("task_id", { length: 256 }).notNull(),
698
- toolCallId: varchar("tool_call_id", { length: 256 }),
699
- contextId: varchar("context_id", { length: 256 }).notNull(),
700
- type: varchar("type", { length: 256 }).notNull().default("source"),
701
- name: varchar("name", { length: 256 }),
702
- description: text("description"),
703
- parts: jsonb("parts").$type(),
704
- metadata: jsonb("metadata").$type(),
705
- summary: text("summary"),
706
- mime: jsonb("mime").$type(),
707
- visibility: varchar("visibility", { length: 256 }).default("context"),
708
- allowedAgents: jsonb("allowed_agents").$type(),
709
- derivedFrom: varchar("derived_from", { length: 256 }),
721
+ ...uiProperties,
722
+ datasetId: varchar("dataset_id", { length: 256 }).notNull(),
710
723
  ...timestamps
711
724
  }, (table) => [
712
725
  primaryKey({ columns: [
713
726
  table.tenantId,
714
727
  table.projectId,
715
- table.id,
716
- table.taskId
728
+ table.id
717
729
  ] }),
718
730
  foreignKey({
719
731
  columns: [table.tenantId, table.projectId],
720
732
  foreignColumns: [projects.tenantId, projects.id],
721
- name: "ledger_artifacts_project_fk"
733
+ name: "dataset_run_config_project_fk"
722
734
  }).onDelete("cascade"),
723
- index("ledger_artifacts_task_id_idx").on(table.taskId),
724
- index("ledger_artifacts_tool_call_id_idx").on(table.toolCallId),
725
- index("ledger_artifacts_context_id_idx").on(table.contextId),
726
- unique("ledger_artifacts_task_context_name_unique").on(table.taskId, table.contextId, table.name)
735
+ foreignKey({
736
+ columns: [
737
+ table.tenantId,
738
+ table.projectId,
739
+ table.datasetId
740
+ ],
741
+ foreignColumns: [
742
+ dataset.tenantId,
743
+ dataset.projectId,
744
+ dataset.id
745
+ ],
746
+ name: "dataset_run_config_dataset_fk"
747
+ }).onDelete("cascade")
727
748
  ]);
728
- const apiKeys = pgTable("api_keys", {
729
- ...agentScoped,
730
- publicId: varchar("public_id", { length: 256 }).notNull().unique(),
731
- keyHash: varchar("key_hash", { length: 256 }).notNull(),
732
- keyPrefix: varchar("key_prefix", { length: 256 }).notNull(),
733
- name: varchar("name", { length: 256 }),
734
- lastUsedAt: timestamp("last_used_at", { mode: "string" }),
735
- expiresAt: timestamp("expires_at", { mode: "string" }),
749
+ /**
750
+ * Configuration that defines what to evaluate. Contains filters and evaluators.
751
+ * Example: "Evaluate conversations for agentId X with filters Y"
752
+ *
753
+ * Linked to one or more evaluationRunConfigs (via join table) that define when to run.
754
+ * When triggered, creates an evaluationRun with computed filters based on the criteria.
755
+ *
756
+ * Configuration-level filters:
757
+ * - Filters stored in filters JSONB field
758
+ *
759
+ * many to many relationship with evaluationRunConfig
760
+ *
761
+ * Includes: name, description, filters (JSONB for evaluation criteria),
762
+ * sampleRate for sampling, and timestamps
763
+ */
764
+ const evaluationSuiteConfig = pgTable("evaluation_suite_config", {
765
+ ...projectScoped,
766
+ filters: jsonb("filters").$type(),
767
+ sampleRate: doublePrecision("sample_rate"),
736
768
  ...timestamps
737
- }, (t) => [
769
+ }, (table) => [primaryKey({ columns: [
770
+ table.tenantId,
771
+ table.projectId,
772
+ table.id
773
+ ] }), foreignKey({
774
+ columns: [table.tenantId, table.projectId],
775
+ foreignColumns: [projects.tenantId, projects.id],
776
+ name: "evaluation_suite_config_project_fk"
777
+ }).onDelete("cascade")]);
778
+ /**
779
+ * Links evaluators to evaluation suite configs. Many-to-many relationship that
780
+ * attaches evaluators to an evaluation suite configuration. Each evaluator must
781
+ * have its own model configuration defined.
782
+ *
783
+ * Includes: evaluationSuiteConfigId, evaluatorId, and timestamps
784
+ */
785
+ const evaluationSuiteConfigEvaluatorRelations = pgTable("evaluation_suite_config_evaluator_relations", {
786
+ ...projectScoped,
787
+ evaluationSuiteConfigId: varchar("evaluation_suite_config_id", { length: 256 }).notNull(),
788
+ evaluatorId: varchar("evaluator_id", { length: 256 }).notNull(),
789
+ ...timestamps
790
+ }, (table) => [
791
+ primaryKey({
792
+ columns: [
793
+ table.tenantId,
794
+ table.projectId,
795
+ table.id
796
+ ],
797
+ name: "eval_suite_cfg_evaluator_rel_pk"
798
+ }),
738
799
  foreignKey({
739
- columns: [t.tenantId],
740
- foreignColumns: [organization.id],
741
- name: "api_keys_organization_fk"
800
+ columns: [
801
+ table.tenantId,
802
+ table.projectId,
803
+ table.evaluationSuiteConfigId
804
+ ],
805
+ foreignColumns: [
806
+ evaluationSuiteConfig.tenantId,
807
+ evaluationSuiteConfig.projectId,
808
+ evaluationSuiteConfig.id
809
+ ],
810
+ name: "eval_suite_cfg_evaluator_rel_suite_cfg_fk"
742
811
  }).onDelete("cascade"),
743
812
  foreignKey({
744
- columns: [t.tenantId, t.projectId],
745
- foreignColumns: [projects.tenantId, projects.id],
746
- name: "api_keys_project_fk"
747
- }).onDelete("cascade"),
813
+ columns: [
814
+ table.tenantId,
815
+ table.projectId,
816
+ table.evaluatorId
817
+ ],
818
+ foreignColumns: [
819
+ evaluator.tenantId,
820
+ evaluator.projectId,
821
+ evaluator.id
822
+ ],
823
+ name: "eval_suite_cfg_evaluator_rel_evaluator_fk"
824
+ }).onDelete("cascade")
825
+ ]);
826
+ /**
827
+ * Links evaluation run configs to evaluation suite configs. Many-to-many relationship that
828
+ * allows one suite config to have multiple run schedules, and one run config to be used
829
+ * by multiple suite configs.
830
+ *
831
+ * Includes: evaluationRunConfigId, evaluationSuiteConfigId, and timestamps
832
+ */
833
+ const evaluationRunConfigEvaluationSuiteConfigRelations = pgTable("evaluation_run_config_evaluation_suite_config_relations", {
834
+ ...projectScoped,
835
+ evaluationRunConfigId: varchar("evaluation_run_config_id", { length: 256 }).notNull(),
836
+ evaluationSuiteConfigId: varchar("evaluation_suite_config_id", { length: 256 }).notNull(),
837
+ ...timestamps
838
+ }, (table) => [
839
+ primaryKey({
840
+ columns: [
841
+ table.tenantId,
842
+ table.projectId,
843
+ table.id
844
+ ],
845
+ name: "eval_run_cfg_eval_suite_cfg_rel_pk"
846
+ }),
748
847
  foreignKey({
749
848
  columns: [
750
- t.tenantId,
751
- t.projectId,
752
- t.agentId
849
+ table.tenantId,
850
+ table.projectId,
851
+ table.evaluationRunConfigId
753
852
  ],
754
853
  foreignColumns: [
755
- agents.tenantId,
756
- agents.projectId,
757
- agents.id
854
+ evaluationRunConfig.tenantId,
855
+ evaluationRunConfig.projectId,
856
+ evaluationRunConfig.id
758
857
  ],
759
- name: "api_keys_agent_fk"
858
+ name: "eval_run_cfg_eval_suite_rel_run_cfg_fk"
760
859
  }).onDelete("cascade"),
761
- index("api_keys_tenant_agent_idx").on(t.tenantId, t.agentId),
762
- index("api_keys_prefix_idx").on(t.keyPrefix),
763
- index("api_keys_public_id_idx").on(t.publicId)
860
+ foreignKey({
861
+ columns: [
862
+ table.tenantId,
863
+ table.projectId,
864
+ table.evaluationSuiteConfigId
865
+ ],
866
+ foreignColumns: [
867
+ evaluationSuiteConfig.tenantId,
868
+ evaluationSuiteConfig.projectId,
869
+ evaluationSuiteConfig.id
870
+ ],
871
+ name: "eval_run_cfg_eval_suite_rel_suite_cfg_fk"
872
+ }).onDelete("cascade")
764
873
  ]);
765
- const credentialReferences = pgTable("credential_references", {
874
+ /**
875
+ * Configuration for automated evaluation runs. Trigger policies is conversation end.
876
+ * Can be linked to multiple evaluation suite configs via join table.
877
+ * many to many relationship with evaluationSuiteConfig
878
+ *
879
+ * Evaluations are automatically triggered when regular conversations complete.
880
+ * When a conversation ends, creates an evaluationRun that evaluates that conversation.
881
+ *
882
+ * NOTE: Evaluation run configs ONLY run on regular conversations, NOT dataset run conversations.
883
+ * Dataset runs create their own evaluationJobConfig with specific evaluators at run-time.
884
+ *
885
+ * one to many relationship with evaluationRun
886
+ */
887
+ const evaluationRunConfig = pgTable("evaluation_run_config", {
766
888
  ...projectScoped,
767
- name: varchar("name", { length: 256 }).notNull(),
768
- type: varchar("type", { length: 256 }).notNull(),
769
- credentialStoreId: varchar("credential_store_id", { length: 256 }).notNull(),
770
- retrievalParams: jsonb("retrieval_params").$type(),
771
- toolId: varchar("tool_id", { length: 256 }),
772
- userId: varchar("user_id", { length: 256 }),
773
- createdBy: varchar("created_by", { length: 256 }),
889
+ ...uiProperties,
890
+ isActive: boolean("is_active").notNull().default(true),
774
891
  ...timestamps
775
- }, (t) => [
776
- primaryKey({ columns: [
777
- t.tenantId,
778
- t.projectId,
779
- t.id
780
- ] }),
892
+ }, (table) => [primaryKey({ columns: [
893
+ table.tenantId,
894
+ table.projectId,
895
+ table.id
896
+ ] }), foreignKey({
897
+ columns: [table.tenantId, table.projectId],
898
+ foreignColumns: [projects.tenantId, projects.id],
899
+ name: "evaluation_run_config_project_fk"
900
+ }).onDelete("cascade")]);
901
+ /**
902
+ * Configuration for a one-off evaluation job to be executed.
903
+ * Example: "Evaluate all conversations in datasetRunId 1234"
904
+ *
905
+ * Created manually or by external systems. Contains job-specific filters like
906
+ * datasetRunIds, conversationIds, and absolute dateRange.
907
+ *
908
+ * one to many relationship with evaluationRun
909
+ *
910
+ * When a job completes, an evaluationRun is created with evaluationJobConfigId set.
911
+ *
912
+ * Includes: jobFilters (specific filters for this job execution: datasetRunIds, conversationIds,
913
+ * dateRange with absolute dates), and timestamps
914
+ */
915
+ const evaluationJobConfig = pgTable("evaluation_job_config", {
916
+ ...projectScoped,
917
+ jobFilters: jsonb("job_filters").$type(),
918
+ ...timestamps
919
+ }, (table) => [primaryKey({ columns: [
920
+ table.tenantId,
921
+ table.projectId,
922
+ table.id
923
+ ] }), foreignKey({
924
+ columns: [table.tenantId, table.projectId],
925
+ foreignColumns: [projects.tenantId, projects.id],
926
+ name: "evaluation_job_config_project_fk"
927
+ }).onDelete("cascade")]);
928
+ /**
929
+ * Links evaluators to evaluation job configs. Many-to-many relationship that
930
+ * attaches evaluators to an evaluation job configuration. Each evaluator must
931
+ * have its own model configuration defined.
932
+ *
933
+ * Includes: evaluationJobConfigId, evaluatorId, and timestamps
934
+ */
935
+ const evaluationJobConfigEvaluatorRelations = pgTable("evaluation_job_config_evaluator_relations", {
936
+ ...projectScoped,
937
+ evaluationJobConfigId: varchar("evaluation_job_config_id", { length: 256 }).notNull(),
938
+ evaluatorId: varchar("evaluator_id", { length: 256 }).notNull(),
939
+ ...timestamps
940
+ }, (table) => [
941
+ primaryKey({
942
+ columns: [
943
+ table.tenantId,
944
+ table.projectId,
945
+ table.id
946
+ ],
947
+ name: "eval_job_cfg_evaluator_rel_pk"
948
+ }),
781
949
  foreignKey({
782
- columns: [t.tenantId, t.projectId],
783
- foreignColumns: [projects.tenantId, projects.id],
784
- name: "credential_references_project_fk"
950
+ columns: [
951
+ table.tenantId,
952
+ table.projectId,
953
+ table.evaluationJobConfigId
954
+ ],
955
+ foreignColumns: [
956
+ evaluationJobConfig.tenantId,
957
+ evaluationJobConfig.projectId,
958
+ evaluationJobConfig.id
959
+ ],
960
+ name: "eval_job_cfg_evaluator_rel_job_cfg_fk"
785
961
  }).onDelete("cascade"),
786
- unique("credential_references_id_unique").on(t.id),
787
- unique("credential_references_tool_user_unique").on(t.toolId, t.userId)
962
+ foreignKey({
963
+ columns: [
964
+ table.tenantId,
965
+ table.projectId,
966
+ table.evaluatorId
967
+ ],
968
+ foreignColumns: [
969
+ evaluator.tenantId,
970
+ evaluator.projectId,
971
+ evaluator.id
972
+ ],
973
+ name: "eval_job_cfg_evaluator_rel_evaluator_fk"
974
+ }).onDelete("cascade")
788
975
  ]);
789
- const tasksRelations = relations(tasks, ({ one, many }) => ({
790
- project: one(projects, {
791
- fields: [tasks.tenantId, tasks.projectId],
792
- references: [projects.tenantId, projects.id]
793
- }),
794
- parentRelations: many(taskRelations, { relationName: "childTask" }),
795
- childRelations: many(taskRelations, { relationName: "parentTask" }),
796
- subAgent: one(subAgents, {
797
- fields: [tasks.subAgentId],
798
- references: [subAgents.id]
799
- }),
800
- messages: many(messages),
801
- ledgerArtifacts: many(ledgerArtifacts)
802
- }));
803
976
  const projectsRelations = relations(projects, ({ many }) => ({
804
977
  subAgents: many(subAgents),
805
978
  agents: many(agents),
@@ -807,48 +980,25 @@ const projectsRelations = relations(projects, ({ many }) => ({
807
980
  functions: many(functions),
808
981
  contextConfigs: many(contextConfigs),
809
982
  externalAgents: many(externalAgents),
810
- conversations: many(conversations),
811
- tasks: many(tasks),
812
983
  dataComponents: many(dataComponents),
813
984
  artifactComponents: many(artifactComponents),
814
- ledgerArtifacts: many(ledgerArtifacts),
815
985
  credentialReferences: many(credentialReferences)
816
986
  }));
817
- const taskRelationsRelations = relations(taskRelations, ({ one }) => ({
818
- parentTask: one(tasks, {
819
- fields: [taskRelations.parentTaskId],
820
- references: [tasks.id],
821
- relationName: "parentTask"
822
- }),
823
- childTask: one(tasks, {
824
- fields: [taskRelations.childTaskId],
825
- references: [tasks.id],
826
- relationName: "childTask"
827
- })
828
- }));
829
987
  const contextConfigsRelations = relations(contextConfigs, ({ many, one }) => ({
830
988
  project: one(projects, {
831
989
  fields: [contextConfigs.tenantId, contextConfigs.projectId],
832
990
  references: [projects.tenantId, projects.id]
833
991
  }),
834
- agents: many(agents),
835
- cache: many(contextCache)
992
+ agents: many(agents)
836
993
  }));
837
- const contextCacheRelations = relations(contextCache, ({ one }) => ({ contextConfig: one(contextConfigs, {
838
- fields: [contextCache.contextConfigId],
839
- references: [contextConfigs.id]
840
- }) }));
841
994
  const subAgentsRelations = relations(subAgents, ({ many, one }) => ({
842
995
  project: one(projects, {
843
996
  fields: [subAgents.tenantId, subAgents.projectId],
844
997
  references: [projects.tenantId, projects.id]
845
998
  }),
846
- tasks: many(tasks),
847
999
  defaultForAgents: many(agents),
848
1000
  sourceRelations: many(subAgentRelations, { relationName: "sourceRelations" }),
849
1001
  targetRelations: many(subAgentRelations, { relationName: "targetRelations" }),
850
- sentMessages: many(messages, { relationName: "sentMessages" }),
851
- receivedMessages: many(messages, { relationName: "receivedMessages" }),
852
1002
  toolRelations: many(subAgentToolRelations),
853
1003
  functionToolRelations: many(subAgentFunctionToolRelations),
854
1004
  dataComponentRelations: many(subAgentDataComponents),
@@ -880,16 +1030,6 @@ const externalAgentsRelations = relations(externalAgents, ({ one, many }) => ({
880
1030
  references: [credentialReferences.id]
881
1031
  })
882
1032
  }));
883
- const apiKeysRelations = relations(apiKeys, ({ one }) => ({
884
- project: one(projects, {
885
- fields: [apiKeys.tenantId, apiKeys.projectId],
886
- references: [projects.tenantId, projects.id]
887
- }),
888
- agent: one(agents, {
889
- fields: [apiKeys.agentId],
890
- references: [agents.id]
891
- })
892
- }));
893
1033
  const agentToolRelationsRelations = relations(subAgentToolRelations, ({ one }) => ({
894
1034
  subAgent: one(subAgents, {
895
1035
  fields: [subAgentToolRelations.subAgentId],
@@ -919,79 +1059,6 @@ const toolsRelations = relations(tools, ({ one, many }) => ({
919
1059
  references: [credentialReferences.id]
920
1060
  })
921
1061
  }));
922
- const conversationsRelations = relations(conversations, ({ one, many }) => ({
923
- project: one(projects, {
924
- fields: [conversations.tenantId, conversations.projectId],
925
- references: [projects.tenantId, projects.id]
926
- }),
927
- messages: many(messages),
928
- activeSubAgent: one(subAgents, {
929
- fields: [conversations.activeSubAgentId],
930
- references: [subAgents.id]
931
- })
932
- }));
933
- const messagesRelations = relations(messages, ({ one, many }) => ({
934
- conversation: one(conversations, {
935
- fields: [messages.conversationId],
936
- references: [conversations.id]
937
- }),
938
- fromSubAgent: one(subAgents, {
939
- fields: [messages.fromSubAgentId],
940
- references: [subAgents.id],
941
- relationName: "sentMessages"
942
- }),
943
- toSubAgent: one(subAgents, {
944
- fields: [messages.toSubAgentId],
945
- references: [subAgents.id],
946
- relationName: "receivedMessages"
947
- }),
948
- fromTeamAgent: one(agents, {
949
- fields: [messages.fromTeamAgentId],
950
- references: [agents.id],
951
- relationName: "receivedTeamMessages"
952
- }),
953
- toTeamAgent: one(agents, {
954
- fields: [messages.toTeamAgentId],
955
- references: [agents.id],
956
- relationName: "sentTeamMessages"
957
- }),
958
- fromExternalAgent: one(externalAgents, {
959
- fields: [
960
- messages.tenantId,
961
- messages.projectId,
962
- messages.fromExternalAgentId
963
- ],
964
- references: [
965
- externalAgents.tenantId,
966
- externalAgents.projectId,
967
- externalAgents.id
968
- ],
969
- relationName: "receivedExternalMessages"
970
- }),
971
- toExternalAgent: one(externalAgents, {
972
- fields: [
973
- messages.tenantId,
974
- messages.projectId,
975
- messages.toExternalAgentId
976
- ],
977
- references: [
978
- externalAgents.tenantId,
979
- externalAgents.projectId,
980
- externalAgents.id
981
- ],
982
- relationName: "sentExternalMessages"
983
- }),
984
- task: one(tasks, {
985
- fields: [messages.taskId],
986
- references: [tasks.id]
987
- }),
988
- parentMessage: one(messages, {
989
- fields: [messages.parentMessageId],
990
- references: [messages.id],
991
- relationName: "parentChild"
992
- }),
993
- childMessages: many(messages, { relationName: "parentChild" })
994
- }));
995
1062
  const artifactComponentsRelations = relations(artifactComponents, ({ many, one }) => ({
996
1063
  project: one(projects, {
997
1064
  fields: [artifactComponents.tenantId, artifactComponents.projectId],
@@ -1026,16 +1093,6 @@ const subAgentDataComponentsRelations = relations(subAgentDataComponents, ({ one
1026
1093
  references: [dataComponents.id]
1027
1094
  })
1028
1095
  }));
1029
- const ledgerArtifactsRelations = relations(ledgerArtifacts, ({ one }) => ({
1030
- project: one(projects, {
1031
- fields: [ledgerArtifacts.tenantId, ledgerArtifacts.projectId],
1032
- references: [projects.tenantId, projects.id]
1033
- }),
1034
- task: one(tasks, {
1035
- fields: [ledgerArtifacts.taskId],
1036
- references: [tasks.id]
1037
- })
1038
- }));
1039
1096
  const functionsRelations = relations(functions, ({ many, one }) => ({
1040
1097
  functionTools: many(functionTools),
1041
1098
  project: one(projects, {
@@ -1156,6 +1213,51 @@ const subAgentTeamAgentRelationsRelations = relations(subAgentTeamAgentRelations
1156
1213
  ]
1157
1214
  })
1158
1215
  }));
1216
+ /**
1217
+ * Links agents to dataset run configs. Many-to-many relationship that
1218
+ * allows one dataset run config to use multiple agents, and one agent to be used
1219
+ * by multiple dataset run configs.
1220
+ *
1221
+ * Includes: datasetRunConfigId, agentId, and timestamps
1222
+ */
1223
+ const datasetRunConfigAgentRelations = pgTable("dataset_run_config_agent_relations", {
1224
+ ...projectScoped,
1225
+ datasetRunConfigId: varchar("dataset_run_config_id", { length: 256 }).notNull(),
1226
+ agentId: varchar("agent_id", { length: 256 }).notNull(),
1227
+ ...timestamps
1228
+ }, (table) => [
1229
+ primaryKey({ columns: [
1230
+ table.tenantId,
1231
+ table.projectId,
1232
+ table.id
1233
+ ] }),
1234
+ foreignKey({
1235
+ columns: [
1236
+ table.tenantId,
1237
+ table.projectId,
1238
+ table.datasetRunConfigId
1239
+ ],
1240
+ foreignColumns: [
1241
+ datasetRunConfig.tenantId,
1242
+ datasetRunConfig.projectId,
1243
+ datasetRunConfig.id
1244
+ ],
1245
+ name: "dataset_run_config_agent_relations_dataset_run_config_fk"
1246
+ }).onDelete("cascade"),
1247
+ foreignKey({
1248
+ columns: [
1249
+ table.tenantId,
1250
+ table.projectId,
1251
+ table.agentId
1252
+ ],
1253
+ foreignColumns: [
1254
+ agents.tenantId,
1255
+ agents.projectId,
1256
+ agents.id
1257
+ ],
1258
+ name: "dataset_run_config_agent_relations_agent_fk"
1259
+ }).onDelete("cascade")
1260
+ ]);
1159
1261
 
1160
1262
  //#endregion
1161
- export { account, agentRelations, agentToolRelationsRelations, agents, apiKeys, apiKeysRelations, artifactComponents, artifactComponentsRelations, contextCache, contextCacheRelations, contextConfigs, contextConfigsRelations, conversations, conversationsRelations, credentialReferences, credentialReferencesRelations, dataComponents, dataComponentsRelations, deviceCode, externalAgents, externalAgentsRelations, functionTools, functionToolsRelations, functions, functionsRelations, invitation, ledgerArtifacts, ledgerArtifactsRelations, member, messages, messagesRelations, organization, projects, projectsRelations, schema_exports, session, ssoProvider, subAgentArtifactComponents, subAgentArtifactComponentsRelations, subAgentDataComponents, subAgentDataComponentsRelations, subAgentExternalAgentRelations, subAgentExternalAgentRelationsRelations, subAgentFunctionToolRelations, subAgentFunctionToolRelationsRelations, subAgentRelations, subAgentRelationsRelations, subAgentTeamAgentRelations, subAgentTeamAgentRelationsRelations, subAgentToolRelations, subAgents, subAgentsRelations, taskRelations, taskRelationsRelations, tasks, tasksRelations, tools, toolsRelations, user, verification };
1263
+ export { agentRelations, agentToolRelationsRelations, agents, artifactComponents, artifactComponentsRelations, contextConfigs, contextConfigsRelations, credentialReferences, credentialReferencesRelations, dataComponents, dataComponentsRelations, dataset, datasetItem, datasetRunConfig, datasetRunConfigAgentRelations, evaluationJobConfig, evaluationJobConfigEvaluatorRelations, evaluationRunConfig, evaluationRunConfigEvaluationSuiteConfigRelations, evaluationSuiteConfig, evaluationSuiteConfigEvaluatorRelations, evaluator, externalAgents, externalAgentsRelations, functionTools, functionToolsRelations, functions, functionsRelations, manage_schema_exports, projects, projectsRelations, subAgentArtifactComponents, subAgentArtifactComponentsRelations, subAgentDataComponents, subAgentDataComponentsRelations, subAgentExternalAgentRelations, subAgentExternalAgentRelationsRelations, subAgentFunctionToolRelations, subAgentFunctionToolRelationsRelations, subAgentRelations, subAgentRelationsRelations, subAgentTeamAgentRelations, subAgentTeamAgentRelationsRelations, subAgentToolRelations, subAgents, subAgentsRelations, tools, toolsRelations, triggers };