@inkeep/agents-core 0.0.0-dev-20250910233133 → 0.0.0-dev-20250910233441

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 (279) hide show
  1. package/dist/chunk-BIIFENNH.js +11 -0
  2. package/dist/chunk-H2F72PDA.js +15 -0
  3. package/dist/chunk-MKBO26DX.js +9 -0
  4. package/dist/chunk-RFWSE64N.js +665 -0
  5. package/dist/chunk-TSPWAF64.js +821 -0
  6. package/dist/client-exports.cjs +232 -0
  7. package/dist/client-exports.d.cts +302 -0
  8. package/dist/client-exports.d.ts +46 -43
  9. package/dist/client-exports.js +200 -247
  10. package/dist/db/schema.cjs +818 -0
  11. package/dist/db/schema.d.cts +7 -0
  12. package/dist/db/schema.d.ts +7 -4335
  13. package/dist/db/schema.js +1 -696
  14. package/dist/index.cjs +9809 -0
  15. package/dist/index.d.cts +3992 -0
  16. package/dist/index.d.ts +3992 -12
  17. package/dist/index.js +7807 -13
  18. package/dist/schema-B5YbTpz8.d.ts +4382 -0
  19. package/dist/schema-E0ulMd3k.d.cts +4382 -0
  20. package/dist/types/index.cjs +29 -0
  21. package/dist/types/index.d.cts +123 -0
  22. package/dist/types/index.d.ts +123 -5
  23. package/dist/types/index.js +2 -6
  24. package/dist/{validation/schemas.d.ts → utility-D2Lb-YAS.d.cts} +1350 -617
  25. package/dist/utility-D2Lb-YAS.d.ts +7946 -0
  26. package/dist/validation/index.cjs +1617 -0
  27. package/dist/validation/index.d.cts +63 -0
  28. package/dist/validation/index.d.ts +63 -4
  29. package/dist/validation/index.js +1 -5
  30. package/package.json +2 -2
  31. package/dist/__tests__/integration/helpers.d.ts +0 -5
  32. package/dist/__tests__/integration/helpers.d.ts.map +0 -1
  33. package/dist/__tests__/integration/helpers.js +0 -37
  34. package/dist/__tests__/integration/helpers.js.map +0 -1
  35. package/dist/__tests__/setup.d.ts +0 -3
  36. package/dist/__tests__/setup.d.ts.map +0 -1
  37. package/dist/__tests__/setup.js +0 -29
  38. package/dist/__tests__/setup.js.map +0 -1
  39. package/dist/client-exports.d.ts.map +0 -1
  40. package/dist/client-exports.js.map +0 -1
  41. package/dist/context/ContextConfig.d.ts +0 -54
  42. package/dist/context/ContextConfig.d.ts.map +0 -1
  43. package/dist/context/ContextConfig.js +0 -302
  44. package/dist/context/ContextConfig.js.map +0 -1
  45. package/dist/context/ContextFetcher.d.ts +0 -64
  46. package/dist/context/ContextFetcher.d.ts.map +0 -1
  47. package/dist/context/ContextFetcher.js +0 -325
  48. package/dist/context/ContextFetcher.js.map +0 -1
  49. package/dist/context/ContextResolver.d.ts +0 -52
  50. package/dist/context/ContextResolver.d.ts.map +0 -1
  51. package/dist/context/ContextResolver.js +0 -298
  52. package/dist/context/ContextResolver.js.map +0 -1
  53. package/dist/context/TemplateEngine.d.ts +0 -46
  54. package/dist/context/TemplateEngine.d.ts.map +0 -1
  55. package/dist/context/TemplateEngine.js +0 -175
  56. package/dist/context/TemplateEngine.js.map +0 -1
  57. package/dist/context/context.d.ts +0 -8
  58. package/dist/context/context.d.ts.map +0 -1
  59. package/dist/context/context.js +0 -157
  60. package/dist/context/context.js.map +0 -1
  61. package/dist/context/contextCache.d.ts +0 -50
  62. package/dist/context/contextCache.d.ts.map +0 -1
  63. package/dist/context/contextCache.js +0 -175
  64. package/dist/context/contextCache.js.map +0 -1
  65. package/dist/context/index.d.ts +0 -11
  66. package/dist/context/index.d.ts.map +0 -1
  67. package/dist/context/index.js +0 -8
  68. package/dist/context/index.js.map +0 -1
  69. package/dist/credential-stores/CredentialStoreRegistry.d.ts +0 -39
  70. package/dist/credential-stores/CredentialStoreRegistry.d.ts.map +0 -1
  71. package/dist/credential-stores/CredentialStoreRegistry.js +0 -65
  72. package/dist/credential-stores/CredentialStoreRegistry.js.map +0 -1
  73. package/dist/credential-stores/defaults.d.ts +0 -6
  74. package/dist/credential-stores/defaults.d.ts.map +0 -1
  75. package/dist/credential-stores/defaults.js +0 -22
  76. package/dist/credential-stores/defaults.js.map +0 -1
  77. package/dist/credential-stores/index.d.ts +0 -6
  78. package/dist/credential-stores/index.d.ts.map +0 -1
  79. package/dist/credential-stores/index.js +0 -6
  80. package/dist/credential-stores/index.js.map +0 -1
  81. package/dist/credential-stores/keychain-store.d.ts +0 -100
  82. package/dist/credential-stores/keychain-store.d.ts.map +0 -1
  83. package/dist/credential-stores/keychain-store.js +0 -225
  84. package/dist/credential-stores/keychain-store.js.map +0 -1
  85. package/dist/credential-stores/memory-store.d.ts +0 -39
  86. package/dist/credential-stores/memory-store.d.ts.map +0 -1
  87. package/dist/credential-stores/memory-store.js +0 -58
  88. package/dist/credential-stores/memory-store.js.map +0 -1
  89. package/dist/credential-stores/nango-store.d.ts +0 -59
  90. package/dist/credential-stores/nango-store.d.ts.map +0 -1
  91. package/dist/credential-stores/nango-store.js +0 -264
  92. package/dist/credential-stores/nango-store.js.map +0 -1
  93. package/dist/credential-stuffer/CredentialStuffer.d.ts +0 -80
  94. package/dist/credential-stuffer/CredentialStuffer.d.ts.map +0 -1
  95. package/dist/credential-stuffer/CredentialStuffer.js +0 -186
  96. package/dist/credential-stuffer/CredentialStuffer.js.map +0 -1
  97. package/dist/credential-stuffer/index.d.ts +0 -2
  98. package/dist/credential-stuffer/index.d.ts.map +0 -1
  99. package/dist/credential-stuffer/index.js +0 -2
  100. package/dist/credential-stuffer/index.js.map +0 -1
  101. package/dist/data-access/agentDataComponents.d.ts +0 -1
  102. package/dist/data-access/agentDataComponents.d.ts.map +0 -1
  103. package/dist/data-access/agentDataComponents.js +0 -2
  104. package/dist/data-access/agentDataComponents.js.map +0 -1
  105. package/dist/data-access/agentGraphs.d.ts +0 -399
  106. package/dist/data-access/agentGraphs.d.ts.map +0 -1
  107. package/dist/data-access/agentGraphs.js +0 -551
  108. package/dist/data-access/agentGraphs.js.map +0 -1
  109. package/dist/data-access/agentRelations.d.ts +0 -456
  110. package/dist/data-access/agentRelations.d.ts.map +0 -1
  111. package/dist/data-access/agentRelations.js +0 -471
  112. package/dist/data-access/agentRelations.js.map +0 -1
  113. package/dist/data-access/agents.d.ts +0 -218
  114. package/dist/data-access/agents.d.ts.map +0 -1
  115. package/dist/data-access/agents.js +0 -130
  116. package/dist/data-access/agents.js.map +0 -1
  117. package/dist/data-access/apiKeys.d.ts +0 -114
  118. package/dist/data-access/apiKeys.d.ts.map +0 -1
  119. package/dist/data-access/apiKeys.js +0 -185
  120. package/dist/data-access/apiKeys.js.map +0 -1
  121. package/dist/data-access/artifactComponents.d.ts +0 -152
  122. package/dist/data-access/artifactComponents.d.ts.map +0 -1
  123. package/dist/data-access/artifactComponents.js +0 -214
  124. package/dist/data-access/artifactComponents.js.map +0 -1
  125. package/dist/data-access/contextCache.d.ts +0 -68
  126. package/dist/data-access/contextCache.d.ts.map +0 -1
  127. package/dist/data-access/contextCache.js +0 -135
  128. package/dist/data-access/contextCache.js.map +0 -1
  129. package/dist/data-access/contextConfigs.d.ts +0 -110
  130. package/dist/data-access/contextConfigs.d.ts.map +0 -1
  131. package/dist/data-access/contextConfigs.js +0 -156
  132. package/dist/data-access/contextConfigs.js.map +0 -1
  133. package/dist/data-access/conversations.d.ts +0 -125
  134. package/dist/data-access/conversations.d.ts.map +0 -1
  135. package/dist/data-access/conversations.js +0 -244
  136. package/dist/data-access/conversations.js.map +0 -1
  137. package/dist/data-access/credentialReferences.d.ts +0 -86
  138. package/dist/data-access/credentialReferences.d.ts.map +0 -1
  139. package/dist/data-access/credentialReferences.js +0 -175
  140. package/dist/data-access/credentialReferences.js.map +0 -1
  141. package/dist/data-access/dataComponents.d.ts +0 -129
  142. package/dist/data-access/dataComponents.d.ts.map +0 -1
  143. package/dist/data-access/dataComponents.js +0 -213
  144. package/dist/data-access/dataComponents.js.map +0 -1
  145. package/dist/data-access/externalAgents.d.ts +0 -83
  146. package/dist/data-access/externalAgents.d.ts.map +0 -1
  147. package/dist/data-access/externalAgents.js +0 -163
  148. package/dist/data-access/externalAgents.js.map +0 -1
  149. package/dist/data-access/graphFull.d.ts +0 -32
  150. package/dist/data-access/graphFull.d.ts.map +0 -1
  151. package/dist/data-access/graphFull.js +0 -996
  152. package/dist/data-access/graphFull.js.map +0 -1
  153. package/dist/data-access/index.d.ts +0 -21
  154. package/dist/data-access/index.d.ts.map +0 -1
  155. package/dist/data-access/index.js +0 -22
  156. package/dist/data-access/index.js.map +0 -1
  157. package/dist/data-access/ledgerArtifacts.d.ts +0 -49
  158. package/dist/data-access/ledgerArtifacts.d.ts.map +0 -1
  159. package/dist/data-access/ledgerArtifacts.js +0 -112
  160. package/dist/data-access/ledgerArtifacts.js.map +0 -1
  161. package/dist/data-access/messages.d.ts +0 -209
  162. package/dist/data-access/messages.d.ts.map +0 -1
  163. package/dist/data-access/messages.js +0 -100
  164. package/dist/data-access/messages.js.map +0 -1
  165. package/dist/data-access/projects.d.ts +0 -67
  166. package/dist/data-access/projects.d.ts.map +0 -1
  167. package/dist/data-access/projects.js +0 -337
  168. package/dist/data-access/projects.js.map +0 -1
  169. package/dist/data-access/tasks.d.ts +0 -37
  170. package/dist/data-access/tasks.d.ts.map +0 -1
  171. package/dist/data-access/tasks.js +0 -40
  172. package/dist/data-access/tasks.js.map +0 -1
  173. package/dist/data-access/tools.d.ts +0 -277
  174. package/dist/data-access/tools.d.ts.map +0 -1
  175. package/dist/data-access/tools.js +0 -183
  176. package/dist/data-access/tools.js.map +0 -1
  177. package/dist/data-access/validation.d.ts +0 -17
  178. package/dist/data-access/validation.d.ts.map +0 -1
  179. package/dist/data-access/validation.js +0 -52
  180. package/dist/data-access/validation.js.map +0 -1
  181. package/dist/db/clean.d.ts +0 -6
  182. package/dist/db/clean.d.ts.map +0 -1
  183. package/dist/db/clean.js +0 -81
  184. package/dist/db/clean.js.map +0 -1
  185. package/dist/db/client.d.ts +0 -19
  186. package/dist/db/client.d.ts.map +0 -1
  187. package/dist/db/client.js +0 -24
  188. package/dist/db/client.js.map +0 -1
  189. package/dist/db/schema.d.ts.map +0 -1
  190. package/dist/db/schema.js.map +0 -1
  191. package/dist/db/test-client.d.ts +0 -25
  192. package/dist/db/test-client.d.ts.map +0 -1
  193. package/dist/db/test-client.js +0 -136
  194. package/dist/db/test-client.js.map +0 -1
  195. package/dist/env.d.ts +0 -19
  196. package/dist/env.d.ts.map +0 -1
  197. package/dist/env.js +0 -49
  198. package/dist/env.js.map +0 -1
  199. package/dist/index.d.ts.map +0 -1
  200. package/dist/index.js.map +0 -1
  201. package/dist/middleware/contextValidation.d.ts +0 -49
  202. package/dist/middleware/contextValidation.d.ts.map +0 -1
  203. package/dist/middleware/contextValidation.js +0 -473
  204. package/dist/middleware/contextValidation.js.map +0 -1
  205. package/dist/middleware/index.d.ts +0 -2
  206. package/dist/middleware/index.d.ts.map +0 -1
  207. package/dist/middleware/index.js +0 -2
  208. package/dist/middleware/index.js.map +0 -1
  209. package/dist/types/a2a.d.ts +0 -373
  210. package/dist/types/a2a.d.ts.map +0 -1
  211. package/dist/types/a2a.js +0 -14
  212. package/dist/types/a2a.js.map +0 -1
  213. package/dist/types/entities.d.ts +0 -147
  214. package/dist/types/entities.d.ts.map +0 -1
  215. package/dist/types/entities.js +0 -2
  216. package/dist/types/entities.js.map +0 -1
  217. package/dist/types/index.d.ts.map +0 -1
  218. package/dist/types/index.js.map +0 -1
  219. package/dist/types/server.d.ts +0 -116
  220. package/dist/types/server.d.ts.map +0 -1
  221. package/dist/types/server.js +0 -2
  222. package/dist/types/server.js.map +0 -1
  223. package/dist/types/utility.d.ts +0 -213
  224. package/dist/types/utility.d.ts.map +0 -1
  225. package/dist/types/utility.js +0 -9
  226. package/dist/types/utility.js.map +0 -1
  227. package/dist/utils/apiKeys.d.ts +0 -32
  228. package/dist/utils/apiKeys.d.ts.map +0 -1
  229. package/dist/utils/apiKeys.js +0 -117
  230. package/dist/utils/apiKeys.js.map +0 -1
  231. package/dist/utils/auth-detection.d.ts +0 -23
  232. package/dist/utils/auth-detection.d.ts.map +0 -1
  233. package/dist/utils/auth-detection.js +0 -148
  234. package/dist/utils/auth-detection.js.map +0 -1
  235. package/dist/utils/credential-store-utils.d.ts +0 -11
  236. package/dist/utils/credential-store-utils.d.ts.map +0 -1
  237. package/dist/utils/credential-store-utils.js +0 -19
  238. package/dist/utils/credential-store-utils.js.map +0 -1
  239. package/dist/utils/error.d.ts +0 -526
  240. package/dist/utils/error.d.ts.map +0 -1
  241. package/dist/utils/error.js +0 -282
  242. package/dist/utils/error.js.map +0 -1
  243. package/dist/utils/execution.d.ts +0 -18
  244. package/dist/utils/execution.d.ts.map +0 -1
  245. package/dist/utils/execution.js +0 -25
  246. package/dist/utils/execution.js.map +0 -1
  247. package/dist/utils/index.d.ts +0 -9
  248. package/dist/utils/index.d.ts.map +0 -1
  249. package/dist/utils/index.js +0 -9
  250. package/dist/utils/index.js.map +0 -1
  251. package/dist/utils/logger.d.ts +0 -79
  252. package/dist/utils/logger.d.ts.map +0 -1
  253. package/dist/utils/logger.js +0 -102
  254. package/dist/utils/logger.js.map +0 -1
  255. package/dist/utils/logging.d.ts +0 -11
  256. package/dist/utils/logging.d.ts.map +0 -1
  257. package/dist/utils/logging.js +0 -6
  258. package/dist/utils/logging.js.map +0 -1
  259. package/dist/utils/mcp-client.d.ts +0 -48
  260. package/dist/utils/mcp-client.d.ts.map +0 -1
  261. package/dist/utils/mcp-client.js +0 -174
  262. package/dist/utils/mcp-client.js.map +0 -1
  263. package/dist/utils/tracer.d.ts +0 -24
  264. package/dist/utils/tracer.d.ts.map +0 -1
  265. package/dist/utils/tracer.js +0 -110
  266. package/dist/utils/tracer.js.map +0 -1
  267. package/dist/validation/graphFull.d.ts +0 -36
  268. package/dist/validation/graphFull.d.ts.map +0 -1
  269. package/dist/validation/graphFull.js +0 -128
  270. package/dist/validation/graphFull.js.map +0 -1
  271. package/dist/validation/id-validation.d.ts +0 -38
  272. package/dist/validation/id-validation.d.ts.map +0 -1
  273. package/dist/validation/id-validation.js +0 -60
  274. package/dist/validation/id-validation.js.map +0 -1
  275. package/dist/validation/index.d.ts.map +0 -1
  276. package/dist/validation/index.js.map +0 -1
  277. package/dist/validation/schemas.d.ts.map +0 -1
  278. package/dist/validation/schemas.js +0 -576
  279. package/dist/validation/schemas.js.map +0 -1
@@ -0,0 +1,818 @@
1
+ 'use strict';
2
+
3
+ var drizzleOrm = require('drizzle-orm');
4
+ var sqliteCore = require('drizzle-orm/sqlite-core');
5
+
6
+ // src/db/schema.ts
7
+ var projects = sqliteCore.sqliteTable(
8
+ "projects",
9
+ {
10
+ tenantId: sqliteCore.text("tenant_id").notNull(),
11
+ id: sqliteCore.text("id").notNull(),
12
+ // This IS the project ID
13
+ name: sqliteCore.text("name").notNull(),
14
+ description: sqliteCore.text("description").notNull(),
15
+ // Project-level default model settingsuration that can be inherited by graphs and agents
16
+ models: sqliteCore.text("models", { mode: "json" }).$type(),
17
+ // Project-level stopWhen configuration that can be inherited by graphs and agents
18
+ stopWhen: sqliteCore.text("stop_when", { mode: "json" }).$type(),
19
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
20
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
21
+ },
22
+ (table) => [sqliteCore.primaryKey({ columns: [table.tenantId, table.id] })]
23
+ );
24
+ var contextConfigs = sqliteCore.sqliteTable(
25
+ "context_configs",
26
+ {
27
+ tenantId: sqliteCore.text("tenant_id").notNull(),
28
+ projectId: sqliteCore.text("project_id").notNull(),
29
+ id: sqliteCore.text("id").notNull(),
30
+ name: sqliteCore.text("name").notNull(),
31
+ description: sqliteCore.text("description").notNull(),
32
+ // Developer-defined Zod schema for validating incoming request context
33
+ requestContextSchema: sqliteCore.blob("request_context_schema", { mode: "json" }).$type(),
34
+ // Stores serialized Zod schema
35
+ // Object mapping template keys to fetch definitions that use request context data
36
+ contextVariables: sqliteCore.blob("context_variables", { mode: "json" }).$type(),
37
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
38
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
39
+ },
40
+ (table) => [sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] })]
41
+ );
42
+ var contextCache = sqliteCore.sqliteTable(
43
+ "context_cache",
44
+ {
45
+ tenantId: sqliteCore.text("tenant_id").notNull(),
46
+ projectId: sqliteCore.text("project_id").notNull(),
47
+ id: sqliteCore.text("id").notNull(),
48
+ // Always scoped to conversation for complete data isolation
49
+ conversationId: sqliteCore.text("conversation_id").notNull(),
50
+ // Reference to the context config and specific fetch definition
51
+ contextConfigId: sqliteCore.text("context_config_id").notNull(),
52
+ contextVariableKey: sqliteCore.text("context_variable_key").notNull(),
53
+ // Key from contextVariables object
54
+ // The actual cached context data
55
+ value: sqliteCore.blob("value", { mode: "json" }).$type().notNull(),
56
+ // Request hash for cache invalidation based on context changes
57
+ requestHash: sqliteCore.text("request_hash"),
58
+ // Hash of request context that triggered this cache
59
+ // Metadata for monitoring and debugging
60
+ fetchedAt: sqliteCore.text("fetched_at").notNull(),
61
+ fetchSource: sqliteCore.text("fetch_source"),
62
+ // URL or source identifier
63
+ fetchDurationMs: sqliteCore.integer("fetch_duration_ms"),
64
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
65
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
66
+ },
67
+ (table) => [
68
+ sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] }),
69
+ sqliteCore.index("context_cache_lookup_idx").on(
70
+ table.conversationId,
71
+ table.contextConfigId,
72
+ table.contextVariableKey
73
+ )
74
+ ]
75
+ );
76
+ var agents = sqliteCore.sqliteTable(
77
+ "agents",
78
+ {
79
+ tenantId: sqliteCore.text("tenant_id").notNull(),
80
+ projectId: sqliteCore.text("project_id").notNull(),
81
+ id: sqliteCore.text("id").notNull(),
82
+ name: sqliteCore.text("name").notNull(),
83
+ description: sqliteCore.text("description").notNull(),
84
+ prompt: sqliteCore.text("prompt").notNull(),
85
+ conversationHistoryConfig: sqliteCore.text("conversation_history_config", {
86
+ mode: "json"
87
+ }).$type(),
88
+ models: sqliteCore.text("models", { mode: "json" }).$type(),
89
+ // Agent-level stopWhen configuration (inherited from project)
90
+ stopWhen: sqliteCore.text("stop_when", { mode: "json" }).$type(),
91
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
92
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
93
+ },
94
+ (table) => [
95
+ sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] }),
96
+ sqliteCore.foreignKey({
97
+ columns: [table.tenantId, table.projectId],
98
+ foreignColumns: [projects.tenantId, projects.id],
99
+ name: "agents_project_fk"
100
+ })
101
+ ]
102
+ );
103
+ var agentRelations = sqliteCore.sqliteTable(
104
+ "agent_relations",
105
+ {
106
+ tenantId: sqliteCore.text("tenant_id").notNull(),
107
+ projectId: sqliteCore.text("project_id").notNull(),
108
+ id: sqliteCore.text("id").notNull(),
109
+ graphId: sqliteCore.text("graph_id").notNull(),
110
+ sourceAgentId: sqliteCore.text("source_agent_id").notNull(),
111
+ // For internal relationships
112
+ targetAgentId: sqliteCore.text("target_agent_id"),
113
+ // For external relationships
114
+ externalAgentId: sqliteCore.text("external_agent_id"),
115
+ relationType: sqliteCore.text("relation_type"),
116
+ // 'transfer' | 'delegate'
117
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
118
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
119
+ },
120
+ (table) => [
121
+ sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] }),
122
+ sqliteCore.foreignKey({
123
+ columns: [table.tenantId, table.projectId],
124
+ foreignColumns: [projects.tenantId, projects.id],
125
+ name: "agent_relations_project_fk"
126
+ })
127
+ ]
128
+ );
129
+ var externalAgents = sqliteCore.sqliteTable(
130
+ "external_agents",
131
+ {
132
+ tenantId: sqliteCore.text("tenant_id").notNull(),
133
+ projectId: sqliteCore.text("project_id").notNull(),
134
+ id: sqliteCore.text("id").notNull(),
135
+ name: sqliteCore.text("name").notNull(),
136
+ description: sqliteCore.text("description").notNull(),
137
+ baseUrl: sqliteCore.text("base_url").notNull(),
138
+ // A2A endpoint URL
139
+ credentialReferenceId: sqliteCore.text("credential_reference_id"),
140
+ headers: sqliteCore.blob("headers", { mode: "json" }).$type(),
141
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
142
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
143
+ },
144
+ (table) => [
145
+ sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] }),
146
+ sqliteCore.foreignKey({
147
+ columns: [table.tenantId, table.projectId, table.credentialReferenceId],
148
+ foreignColumns: [
149
+ credentialReferences.tenantId,
150
+ credentialReferences.projectId,
151
+ credentialReferences.id
152
+ ],
153
+ name: "external_agents_credential_reference_fk"
154
+ }).onDelete("set null")
155
+ ]
156
+ );
157
+ var agentGraph = sqliteCore.sqliteTable(
158
+ "agent_graph",
159
+ {
160
+ tenantId: sqliteCore.text("tenant_id").notNull(),
161
+ projectId: sqliteCore.text("project_id").notNull(),
162
+ id: sqliteCore.text("id").notNull(),
163
+ name: sqliteCore.text("name").notNull(),
164
+ description: sqliteCore.text("description"),
165
+ defaultAgentId: sqliteCore.text("default_agent_id").notNull(),
166
+ // Reference to shared context configuration for all agents in this graph
167
+ contextConfigId: sqliteCore.text("context_config_id"),
168
+ // Graph-level model settingsuration that can be inherited by agents
169
+ models: sqliteCore.text("models", { mode: "json" }).$type(),
170
+ // Status updates configuration for intelligent progress summaries
171
+ statusUpdates: sqliteCore.text("status_updates", { mode: "json" }).$type(),
172
+ // Graph-level prompt that can be used as additional context for agents
173
+ graphPrompt: sqliteCore.text("graph_prompt"),
174
+ // Graph-level stopWhen configuration that can be inherited by agents
175
+ stopWhen: sqliteCore.text("stop_when", { mode: "json" }).$type(),
176
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
177
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
178
+ },
179
+ (table) => [
180
+ sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] }),
181
+ sqliteCore.foreignKey({
182
+ columns: [table.tenantId, table.projectId],
183
+ foreignColumns: [projects.tenantId, projects.id],
184
+ name: "agent_graph_project_fk"
185
+ })
186
+ ]
187
+ );
188
+ var tasks = sqliteCore.sqliteTable(
189
+ "tasks",
190
+ {
191
+ tenantId: sqliteCore.text("tenant_id").notNull(),
192
+ projectId: sqliteCore.text("project_id").notNull(),
193
+ id: sqliteCore.text("id").notNull(),
194
+ contextId: sqliteCore.text("context_id").notNull(),
195
+ status: sqliteCore.text("status").notNull(),
196
+ metadata: sqliteCore.blob("metadata", { mode: "json" }).$type(),
197
+ agentId: sqliteCore.text("agent_id").notNull(),
198
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
199
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
200
+ },
201
+ (table) => [sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] })]
202
+ );
203
+ var taskRelations = sqliteCore.sqliteTable(
204
+ "task_relations",
205
+ {
206
+ tenantId: sqliteCore.text("tenant_id").notNull(),
207
+ projectId: sqliteCore.text("project_id").notNull(),
208
+ id: sqliteCore.text("id").notNull(),
209
+ parentTaskId: sqliteCore.text("parent_task_id").notNull(),
210
+ childTaskId: sqliteCore.text("child_task_id").notNull(),
211
+ relationType: sqliteCore.text("relation_type").default("parent_child"),
212
+ // Could be extended for other relation types
213
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
214
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
215
+ },
216
+ (table) => [sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] })]
217
+ );
218
+ var dataComponents = sqliteCore.sqliteTable(
219
+ "data_components",
220
+ {
221
+ tenantId: sqliteCore.text("tenant_id").notNull(),
222
+ projectId: sqliteCore.text("project_id").notNull(),
223
+ id: sqliteCore.text("id").notNull(),
224
+ name: sqliteCore.text("name").notNull(),
225
+ description: sqliteCore.text("description").notNull(),
226
+ props: sqliteCore.blob("props", { mode: "json" }).$type(),
227
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
228
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
229
+ },
230
+ (table) => [sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] })]
231
+ );
232
+ var agentDataComponents = sqliteCore.sqliteTable(
233
+ "agent_data_components",
234
+ {
235
+ tenantId: sqliteCore.text("tenant_id").notNull(),
236
+ projectId: sqliteCore.text("project_id").notNull(),
237
+ id: sqliteCore.text("id").notNull(),
238
+ agentId: sqliteCore.text("agent_id").notNull(),
239
+ dataComponentId: sqliteCore.text("data_component_id").notNull(),
240
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
241
+ },
242
+ (table) => [
243
+ sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] }),
244
+ // Foreign key constraint to agents table
245
+ sqliteCore.foreignKey({
246
+ columns: [table.tenantId, table.projectId, table.agentId],
247
+ foreignColumns: [agents.tenantId, agents.projectId, agents.id],
248
+ name: "agent_data_components_agent_fk"
249
+ }).onDelete("cascade"),
250
+ // Foreign key constraint to data_components table
251
+ sqliteCore.foreignKey({
252
+ columns: [table.tenantId, table.projectId, table.dataComponentId],
253
+ foreignColumns: [dataComponents.tenantId, dataComponents.projectId, dataComponents.id],
254
+ name: "agent_data_components_data_component_fk"
255
+ }).onDelete("cascade")
256
+ ]
257
+ );
258
+ var artifactComponents = sqliteCore.sqliteTable(
259
+ "artifact_components",
260
+ {
261
+ tenantId: sqliteCore.text("tenant_id").notNull(),
262
+ projectId: sqliteCore.text("project_id").notNull(),
263
+ id: sqliteCore.text("id").notNull(),
264
+ name: sqliteCore.text("name").notNull(),
265
+ description: sqliteCore.text("description").notNull(),
266
+ summaryProps: sqliteCore.blob("summary_props", { mode: "json" }).$type(),
267
+ fullProps: sqliteCore.blob("full_props", { mode: "json" }).$type(),
268
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
269
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
270
+ },
271
+ (table) => [sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] })]
272
+ );
273
+ var agentArtifactComponents = sqliteCore.sqliteTable(
274
+ "agent_artifact_components",
275
+ {
276
+ tenantId: sqliteCore.text("tenant_id").notNull(),
277
+ projectId: sqliteCore.text("project_id").notNull(),
278
+ id: sqliteCore.text("id").notNull(),
279
+ agentId: sqliteCore.text("agent_id").notNull(),
280
+ artifactComponentId: sqliteCore.text("artifact_component_id").notNull(),
281
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
282
+ },
283
+ (table) => [
284
+ sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] }),
285
+ // Foreign key constraint to agents table
286
+ sqliteCore.foreignKey({
287
+ columns: [table.tenantId, table.projectId, table.agentId],
288
+ foreignColumns: [agents.tenantId, agents.projectId, agents.id],
289
+ name: "agent_artifact_components_agent_fk"
290
+ }).onDelete("cascade"),
291
+ // Foreign key constraint to artifact_components table
292
+ sqliteCore.foreignKey({
293
+ columns: [table.tenantId, table.projectId, table.artifactComponentId],
294
+ foreignColumns: [
295
+ artifactComponents.tenantId,
296
+ artifactComponents.projectId,
297
+ artifactComponents.id
298
+ ],
299
+ name: "agent_artifact_components_artifact_component_fk"
300
+ }).onDelete("cascade")
301
+ ]
302
+ );
303
+ var tools = sqliteCore.sqliteTable(
304
+ "tools",
305
+ {
306
+ tenantId: sqliteCore.text("tenant_id").notNull(),
307
+ projectId: sqliteCore.text("project_id").notNull(),
308
+ id: sqliteCore.text("id").notNull(),
309
+ name: sqliteCore.text("name").notNull(),
310
+ // Enhanced MCP configuration
311
+ config: sqliteCore.blob("config", { mode: "json" }).$type().notNull(),
312
+ credentialReferenceId: sqliteCore.text("credential_reference_id"),
313
+ headers: sqliteCore.blob("headers", { mode: "json" }).$type(),
314
+ // Image URL for custom tool icon (supports regular URLs and base64 encoded images)
315
+ imageUrl: sqliteCore.text("image_url"),
316
+ // Server capabilities and status
317
+ capabilities: sqliteCore.blob("capabilities", { mode: "json" }).$type(),
318
+ // Connection health and monitoring
319
+ status: sqliteCore.text("status").notNull().default("unknown"),
320
+ lastHealthCheck: sqliteCore.text("last_health_check"),
321
+ lastError: sqliteCore.text("last_error"),
322
+ // Tool discovery cache
323
+ availableTools: sqliteCore.blob("available_tools", { mode: "json" }).$type(),
324
+ lastToolsSync: sqliteCore.text("last_tools_sync"),
325
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
326
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
327
+ },
328
+ (table) => [sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] })]
329
+ );
330
+ var agentToolRelations = sqliteCore.sqliteTable(
331
+ "agent_tool_relations",
332
+ {
333
+ tenantId: sqliteCore.text("tenant_id").notNull(),
334
+ projectId: sqliteCore.text("project_id").notNull(),
335
+ id: sqliteCore.text("id").notNull(),
336
+ agentId: sqliteCore.text("agent_id").notNull(),
337
+ toolId: sqliteCore.text("tool_id").notNull(),
338
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
339
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
340
+ },
341
+ (table) => [
342
+ sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] }),
343
+ // Foreign key constraint to agents table
344
+ sqliteCore.foreignKey({
345
+ columns: [table.tenantId, table.projectId, table.agentId],
346
+ foreignColumns: [agents.tenantId, agents.projectId, agents.id],
347
+ name: "agent_tool_relations_agent_fk"
348
+ }).onDelete("cascade"),
349
+ // Foreign key constraint to tools table
350
+ sqliteCore.foreignKey({
351
+ columns: [table.tenantId, table.projectId, table.toolId],
352
+ foreignColumns: [tools.tenantId, tools.projectId, tools.id],
353
+ name: "agent_tool_relations_tool_fk"
354
+ }).onDelete("cascade")
355
+ ]
356
+ );
357
+ var conversations = sqliteCore.sqliteTable(
358
+ "conversations",
359
+ {
360
+ tenantId: sqliteCore.text("tenant_id").notNull(),
361
+ projectId: sqliteCore.text("project_id").notNull(),
362
+ id: sqliteCore.text("id").notNull(),
363
+ userId: sqliteCore.text("user_id"),
364
+ activeAgentId: sqliteCore.text("active_agent_id").notNull(),
365
+ title: sqliteCore.text("title"),
366
+ lastContextResolution: sqliteCore.text("last_context_resolution"),
367
+ metadata: sqliteCore.blob("metadata", { mode: "json" }).$type(),
368
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
369
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
370
+ },
371
+ (table) => [sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] })]
372
+ );
373
+ var messages = sqliteCore.sqliteTable(
374
+ "messages",
375
+ {
376
+ tenantId: sqliteCore.text("tenant_id").notNull(),
377
+ projectId: sqliteCore.text("project_id").notNull(),
378
+ id: sqliteCore.text("id").notNull(),
379
+ conversationId: sqliteCore.text("conversation_id").notNull(),
380
+ // Role mapping: user, agent, system (unified for both formats)
381
+ role: sqliteCore.text("role").notNull(),
382
+ // 'user' | 'agent' | 'system'
383
+ // Agent sender/recipient tracking (nullable - only populated when relevant)
384
+ fromAgentId: sqliteCore.text("from_agent_id"),
385
+ // Populated when message is from an agent
386
+ toAgentId: sqliteCore.text("to_agent_id"),
387
+ // Populated when message is directed to a specific agent (e.g., transfers/delegations)
388
+ // External agent sender tracking
389
+ fromExternalAgentId: sqliteCore.text("from_external_agent_id"),
390
+ // Populated when message is directed from an external agent
391
+ // External agent recipient tracking
392
+ toExternalAgentId: sqliteCore.text("to_external_agent_id"),
393
+ // Populated when message is directed to an external agent
394
+ // Message content stored as JSON to support both formats
395
+ content: sqliteCore.blob("content", { mode: "json" }).$type().notNull(),
396
+ // Message classification and filtering
397
+ visibility: sqliteCore.text("visibility").notNull().default("user-facing"),
398
+ // 'user-facing' | 'internal' | 'system' | 'external'
399
+ messageType: sqliteCore.text("message_type").notNull().default("chat"),
400
+ // 'chat' | 'a2a-request' | 'a2a-response' | 'task-update' | 'tool-call'
401
+ // Legacy agent association (consider deprecating in favor of fromAgentId/toAgentId)
402
+ agentId: sqliteCore.text("agent_id"),
403
+ taskId: sqliteCore.text("task_id"),
404
+ parentMessageId: sqliteCore.text("parent_message_id"),
405
+ // Remove self-reference constraint here
406
+ // A2A specific fields
407
+ a2aTaskId: sqliteCore.text("a2a_task_id"),
408
+ // Links to A2A task when relevant
409
+ a2aSessionId: sqliteCore.text("a2a_session_id"),
410
+ // A2A session identifier
411
+ // Metadata for extensions
412
+ metadata: sqliteCore.blob("metadata", { mode: "json" }).$type(),
413
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
414
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
415
+ },
416
+ (table) => [sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] })]
417
+ );
418
+ var ledgerArtifacts = sqliteCore.sqliteTable(
419
+ "ledger_artifacts",
420
+ {
421
+ // Primary identifier (maps to `artifactId`)
422
+ tenantId: sqliteCore.text("tenant_id").notNull(),
423
+ projectId: sqliteCore.text("project_id").notNull(),
424
+ id: sqliteCore.text("id").notNull(),
425
+ // Links
426
+ taskId: sqliteCore.text("task_id"),
427
+ contextId: sqliteCore.text("context_id").notNull(),
428
+ // Core Artifact fields
429
+ type: sqliteCore.text("type").notNull().default("source"),
430
+ name: sqliteCore.text("name"),
431
+ description: sqliteCore.text("description"),
432
+ parts: sqliteCore.blob("parts", { mode: "json" }).$type(),
433
+ metadata: sqliteCore.blob("metadata", { mode: "json" }).$type(),
434
+ // Extra ledger information (not part of the Artifact spec – kept optional)
435
+ summary: sqliteCore.text("summary"),
436
+ mime: sqliteCore.blob("mime", { mode: "json" }).$type(),
437
+ visibility: sqliteCore.text("visibility").default("context"),
438
+ allowedAgents: sqliteCore.blob("allowed_agents", { mode: "json" }).$type(),
439
+ derivedFrom: sqliteCore.text("derived_from"),
440
+ // Timestamps
441
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
442
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
443
+ },
444
+ (table) => [sqliteCore.primaryKey({ columns: [table.tenantId, table.projectId, table.id] })]
445
+ );
446
+ var apiKeys = sqliteCore.sqliteTable(
447
+ "api_keys",
448
+ {
449
+ id: sqliteCore.text("id").primaryKey(),
450
+ tenantId: sqliteCore.text("tenant_id").notNull(),
451
+ projectId: sqliteCore.text("project_id").notNull(),
452
+ graphId: sqliteCore.text("graph_id").notNull(),
453
+ publicId: sqliteCore.text("public_id").notNull().unique(),
454
+ // Public ID for O(1) lookup (e.g., "abc123def456")
455
+ keyHash: sqliteCore.text("key_hash").notNull(),
456
+ // Hashed API key (never store plaintext)
457
+ keyPrefix: sqliteCore.text("key_prefix").notNull(),
458
+ // First 8 chars for identification (e.g., "sk_live_abc...")
459
+ lastUsedAt: sqliteCore.text("last_used_at"),
460
+ expiresAt: sqliteCore.text("expires_at"),
461
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
462
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
463
+ },
464
+ (t) => [
465
+ sqliteCore.foreignKey({
466
+ columns: [t.tenantId, t.projectId, t.graphId],
467
+ foreignColumns: [agentGraph.tenantId, agentGraph.projectId, agentGraph.id],
468
+ name: "api_keys_graph_fk"
469
+ }).onDelete("cascade"),
470
+ sqliteCore.index("api_keys_tenant_graph_idx").on(t.tenantId, t.graphId),
471
+ sqliteCore.index("api_keys_prefix_idx").on(t.keyPrefix),
472
+ sqliteCore.index("api_keys_public_id_idx").on(t.publicId)
473
+ ]
474
+ );
475
+ var credentialReferences = sqliteCore.sqliteTable(
476
+ "credential_references",
477
+ {
478
+ tenantId: sqliteCore.text("tenant_id").notNull(),
479
+ projectId: sqliteCore.text("project_id").notNull(),
480
+ id: sqliteCore.text("id").notNull(),
481
+ type: sqliteCore.text("type").notNull(),
482
+ // Implementation type: 'vault', 'nango', 'inmemory', etc.
483
+ credentialStoreId: sqliteCore.text("credential_store_id").notNull(),
484
+ // Maps to framework.getCredentialStore(id)
485
+ retrievalParams: sqliteCore.blob("retrieval_params", { mode: "json" }).$type(),
486
+ createdAt: sqliteCore.text("created_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`),
487
+ updatedAt: sqliteCore.text("updated_at").notNull().default(drizzleOrm.sql`CURRENT_TIMESTAMP`)
488
+ },
489
+ (t) => [sqliteCore.primaryKey({ columns: [t.tenantId, t.projectId, t.id] })]
490
+ );
491
+ var ledgerArtifactsTaskIdIdx = sqliteCore.index("ledger_artifacts_task_id_idx").on(
492
+ ledgerArtifacts.taskId
493
+ );
494
+ var ledgerArtifactsContextIdIdx = sqliteCore.index("ledger_artifacts_context_id_idx").on(
495
+ ledgerArtifacts.contextId
496
+ );
497
+ var ledgerArtifactsTaskContextNameUnique = sqliteCore.unique(
498
+ "ledger_artifacts_task_context_name_unique"
499
+ ).on(ledgerArtifacts.taskId, ledgerArtifacts.contextId, ledgerArtifacts.name);
500
+ var tasksRelations = drizzleOrm.relations(tasks, ({ one, many }) => ({
501
+ // A task belongs to one project
502
+ project: one(projects, {
503
+ fields: [tasks.tenantId, tasks.projectId],
504
+ references: [projects.tenantId, projects.id]
505
+ }),
506
+ // A task can have many parent relationships (where it's the child)
507
+ parentRelations: many(taskRelations, {
508
+ relationName: "childTask"
509
+ }),
510
+ // A task can have many child relationships (where it's the parent)
511
+ childRelations: many(taskRelations, {
512
+ relationName: "parentTask"
513
+ }),
514
+ // A task belongs to one agent
515
+ agent: one(agents, {
516
+ fields: [tasks.agentId],
517
+ references: [agents.id]
518
+ }),
519
+ // A task can have many messages associated with it
520
+ messages: many(messages)
521
+ }));
522
+ var projectsRelations = drizzleOrm.relations(projects, ({ many }) => ({
523
+ // A project can have many agents
524
+ agents: many(agents),
525
+ // A project can have many agent graphs
526
+ agentGraphs: many(agentGraph),
527
+ // A project can have many tools
528
+ tools: many(tools),
529
+ // A project can have many context configs
530
+ contextConfigs: many(contextConfigs),
531
+ // A project can have many external agents
532
+ externalAgents: many(externalAgents),
533
+ // A project can have many conversations
534
+ conversations: many(conversations),
535
+ // A project can have many tasks
536
+ tasks: many(tasks)
537
+ }));
538
+ var taskRelationsRelations = drizzleOrm.relations(taskRelations, ({ one }) => ({
539
+ // Each relation has one parent task
540
+ parentTask: one(tasks, {
541
+ fields: [taskRelations.parentTaskId],
542
+ references: [tasks.id],
543
+ relationName: "parentTask"
544
+ }),
545
+ // Each relation has one child task
546
+ childTask: one(tasks, {
547
+ fields: [taskRelations.childTaskId],
548
+ references: [tasks.id],
549
+ relationName: "childTask"
550
+ })
551
+ }));
552
+ var contextConfigsRelations = drizzleOrm.relations(contextConfigs, ({ many, one }) => ({
553
+ // A context config belongs to one project
554
+ project: one(projects, {
555
+ fields: [contextConfigs.tenantId, contextConfigs.projectId],
556
+ references: [projects.tenantId, projects.id]
557
+ }),
558
+ // A context config can be used by many agent graphs
559
+ graphs: many(agentGraph),
560
+ // A context config can have many cached entries
561
+ cache: many(contextCache)
562
+ }));
563
+ var contextCacheRelations = drizzleOrm.relations(contextCache, ({ one }) => ({
564
+ // Each cache entry belongs to one context config
565
+ contextConfig: one(contextConfigs, {
566
+ fields: [contextCache.contextConfigId],
567
+ references: [contextConfigs.id]
568
+ })
569
+ }));
570
+ var agentsRelations = drizzleOrm.relations(agents, ({ many, one }) => ({
571
+ // A context config belongs to one project
572
+ project: one(projects, {
573
+ fields: [agents.tenantId, agents.projectId],
574
+ references: [projects.tenantId, projects.id]
575
+ }),
576
+ // An agent can have many tasks
577
+ tasks: many(tasks),
578
+ // An agent can be the default agent for many graphs
579
+ defaultForGraphs: many(agentGraph),
580
+ // Agent relation tracking
581
+ sourceRelations: many(agentRelations, {
582
+ relationName: "sourceRelations"
583
+ }),
584
+ targetRelations: many(agentRelations, {
585
+ relationName: "targetRelations"
586
+ }),
587
+ // Message tracking relations
588
+ sentMessages: many(messages, {
589
+ relationName: "sentMessages"
590
+ }),
591
+ receivedMessages: many(messages, {
592
+ relationName: "receivedMessages"
593
+ }),
594
+ // Legacy message association (consider deprecating)
595
+ associatedMessages: many(messages, {
596
+ relationName: "associatedAgent"
597
+ }),
598
+ toolRelations: many(agentToolRelations)
599
+ }));
600
+ var agentGraphRelations = drizzleOrm.relations(agentGraph, ({ one }) => ({
601
+ // An agent graph belongs to one project
602
+ project: one(projects, {
603
+ fields: [agentGraph.tenantId, agentGraph.projectId],
604
+ references: [projects.tenantId, projects.id]
605
+ }),
606
+ // An agent graph belongs to one default agent
607
+ defaultAgent: one(agents, {
608
+ fields: [agentGraph.defaultAgentId],
609
+ references: [agents.id]
610
+ }),
611
+ // An agent graph can reference one context config
612
+ contextConfig: one(contextConfigs, {
613
+ fields: [agentGraph.contextConfigId],
614
+ references: [contextConfigs.id]
615
+ })
616
+ }));
617
+ var externalAgentsRelations = drizzleOrm.relations(externalAgents, ({ one, many }) => ({
618
+ // An external agent belongs to one project
619
+ project: one(projects, {
620
+ fields: [externalAgents.tenantId, externalAgents.projectId],
621
+ references: [projects.tenantId, projects.id]
622
+ }),
623
+ // An external agent can be referenced by many agent relations
624
+ agentRelations: many(agentRelations),
625
+ // An external agent may have one credential reference
626
+ credentialReference: one(credentialReferences, {
627
+ fields: [externalAgents.credentialReferenceId],
628
+ references: [credentialReferences.id]
629
+ })
630
+ }));
631
+ var apiKeysRelations = drizzleOrm.relations(apiKeys, ({ one }) => ({
632
+ // An API key belongs to one project
633
+ project: one(projects, {
634
+ fields: [apiKeys.tenantId, apiKeys.projectId],
635
+ references: [projects.tenantId, projects.id]
636
+ }),
637
+ // An API key belongs to one tenant and graph
638
+ graph: one(agentGraph, {
639
+ fields: [apiKeys.graphId],
640
+ references: [agentGraph.id]
641
+ })
642
+ }));
643
+ var agentToolRelationsRelations = drizzleOrm.relations(agentToolRelations, ({ one }) => ({
644
+ // An agent-tool relation belongs to one agent
645
+ agent: one(agents, {
646
+ fields: [agentToolRelations.agentId],
647
+ references: [agents.id]
648
+ }),
649
+ // An agent-tool relation belongs to one tool
650
+ tool: one(tools, {
651
+ fields: [agentToolRelations.toolId],
652
+ references: [tools.id]
653
+ })
654
+ }));
655
+ var credentialReferencesRelations = drizzleOrm.relations(credentialReferences, ({ many }) => ({
656
+ tools: many(tools)
657
+ }));
658
+ var toolsRelations = drizzleOrm.relations(tools, ({ one, many }) => ({
659
+ // A tool belongs to one project
660
+ project: one(projects, {
661
+ fields: [tools.tenantId, tools.projectId],
662
+ references: [projects.tenantId, projects.id]
663
+ }),
664
+ // A tool can be used by many agents through agent-tool relations
665
+ agentRelations: many(agentToolRelations),
666
+ // A tool may have one credential reference
667
+ credentialReference: one(credentialReferences, {
668
+ fields: [tools.credentialReferenceId],
669
+ references: [credentialReferences.id]
670
+ })
671
+ }));
672
+ var conversationsRelations = drizzleOrm.relations(conversations, ({ one, many }) => ({
673
+ // A conversation belongs to one project
674
+ project: one(projects, {
675
+ fields: [conversations.tenantId, conversations.projectId],
676
+ references: [projects.tenantId, projects.id]
677
+ }),
678
+ // A conversation has many messages
679
+ messages: many(messages),
680
+ // A conversation has one active agent
681
+ activeAgent: one(agents, {
682
+ fields: [conversations.activeAgentId],
683
+ references: [agents.id]
684
+ })
685
+ }));
686
+ var messagesRelations = drizzleOrm.relations(messages, ({ one, many }) => ({
687
+ // A message belongs to one conversation
688
+ conversation: one(conversations, {
689
+ fields: [messages.conversationId],
690
+ references: [conversations.id]
691
+ }),
692
+ // Legacy agent association (consider deprecating)
693
+ agent: one(agents, {
694
+ fields: [messages.agentId],
695
+ references: [agents.id],
696
+ relationName: "associatedAgent"
697
+ }),
698
+ // Sender tracking relations
699
+ fromAgent: one(agents, {
700
+ fields: [messages.fromAgentId],
701
+ references: [agents.id],
702
+ relationName: "sentMessages"
703
+ }),
704
+ // Recipient tracking relations
705
+ toAgent: one(agents, {
706
+ fields: [messages.toAgentId],
707
+ references: [agents.id],
708
+ relationName: "receivedMessages"
709
+ }),
710
+ // External agent sender tracking relations
711
+ fromExternalAgent: one(externalAgents, {
712
+ fields: [messages.fromExternalAgentId],
713
+ references: [externalAgents.id],
714
+ relationName: "receivedExternalMessages"
715
+ }),
716
+ // External agent recipient tracking relations
717
+ toExternalAgent: one(externalAgents, {
718
+ fields: [messages.toExternalAgentId],
719
+ references: [externalAgents.id],
720
+ relationName: "sentExternalMessages"
721
+ }),
722
+ // A message may be associated with a task
723
+ task: one(tasks, {
724
+ fields: [messages.taskId],
725
+ references: [tasks.id]
726
+ }),
727
+ // A message may have a parent message (for threading)
728
+ parentMessage: one(messages, {
729
+ fields: [messages.parentMessageId],
730
+ references: [messages.id],
731
+ relationName: "parentChild"
732
+ }),
733
+ // A message may have child messages
734
+ childMessages: many(messages, {
735
+ relationName: "parentChild"
736
+ })
737
+ }));
738
+ var artifactComponentsRelations = drizzleOrm.relations(artifactComponents, ({ many }) => ({
739
+ // An artifact component can be associated with many agents
740
+ agentRelations: many(agentArtifactComponents)
741
+ }));
742
+ var agentArtifactComponentsRelations = drizzleOrm.relations(agentArtifactComponents, ({ one }) => ({
743
+ // An agent-artifact component relation belongs to one agent
744
+ agent: one(agents, {
745
+ fields: [agentArtifactComponents.agentId],
746
+ references: [agents.id]
747
+ }),
748
+ // An agent-artifact component relation belongs to one artifact component
749
+ artifactComponent: one(artifactComponents, {
750
+ fields: [agentArtifactComponents.artifactComponentId],
751
+ references: [artifactComponents.id]
752
+ })
753
+ }));
754
+ var agentRelationsRelations = drizzleOrm.relations(agentRelations, ({ one }) => ({
755
+ // An agent relation belongs to one graph
756
+ graph: one(agentGraph, {
757
+ fields: [agentRelations.graphId],
758
+ references: [agentGraph.id]
759
+ }),
760
+ // An agent relation has one source agent
761
+ sourceAgent: one(agents, {
762
+ fields: [agentRelations.sourceAgentId],
763
+ references: [agents.id],
764
+ relationName: "sourceRelations"
765
+ }),
766
+ // An agent relation may have one target agent (for internal relations)
767
+ targetAgent: one(agents, {
768
+ fields: [agentRelations.targetAgentId],
769
+ references: [agents.id],
770
+ relationName: "targetRelations"
771
+ }),
772
+ // An agent relation may have one external agent (for external relations)
773
+ externalAgent: one(externalAgents, {
774
+ fields: [agentRelations.externalAgentId],
775
+ references: [externalAgents.id]
776
+ })
777
+ }));
778
+
779
+ exports.agentArtifactComponents = agentArtifactComponents;
780
+ exports.agentArtifactComponentsRelations = agentArtifactComponentsRelations;
781
+ exports.agentDataComponents = agentDataComponents;
782
+ exports.agentGraph = agentGraph;
783
+ exports.agentGraphRelations = agentGraphRelations;
784
+ exports.agentRelations = agentRelations;
785
+ exports.agentRelationsRelations = agentRelationsRelations;
786
+ exports.agentToolRelations = agentToolRelations;
787
+ exports.agentToolRelationsRelations = agentToolRelationsRelations;
788
+ exports.agents = agents;
789
+ exports.agentsRelations = agentsRelations;
790
+ exports.apiKeys = apiKeys;
791
+ exports.apiKeysRelations = apiKeysRelations;
792
+ exports.artifactComponents = artifactComponents;
793
+ exports.artifactComponentsRelations = artifactComponentsRelations;
794
+ exports.contextCache = contextCache;
795
+ exports.contextCacheRelations = contextCacheRelations;
796
+ exports.contextConfigs = contextConfigs;
797
+ exports.contextConfigsRelations = contextConfigsRelations;
798
+ exports.conversations = conversations;
799
+ exports.conversationsRelations = conversationsRelations;
800
+ exports.credentialReferences = credentialReferences;
801
+ exports.credentialReferencesRelations = credentialReferencesRelations;
802
+ exports.dataComponents = dataComponents;
803
+ exports.externalAgents = externalAgents;
804
+ exports.externalAgentsRelations = externalAgentsRelations;
805
+ exports.ledgerArtifacts = ledgerArtifacts;
806
+ exports.ledgerArtifactsContextIdIdx = ledgerArtifactsContextIdIdx;
807
+ exports.ledgerArtifactsTaskContextNameUnique = ledgerArtifactsTaskContextNameUnique;
808
+ exports.ledgerArtifactsTaskIdIdx = ledgerArtifactsTaskIdIdx;
809
+ exports.messages = messages;
810
+ exports.messagesRelations = messagesRelations;
811
+ exports.projects = projects;
812
+ exports.projectsRelations = projectsRelations;
813
+ exports.taskRelations = taskRelations;
814
+ exports.taskRelationsRelations = taskRelationsRelations;
815
+ exports.tasks = tasks;
816
+ exports.tasksRelations = tasksRelations;
817
+ exports.tools = tools;
818
+ exports.toolsRelations = toolsRelations;