@inkeep/agents-core 0.0.0-dev-20250910233133

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 (263) hide show
  1. package/LICENSE.md +56 -0
  2. package/README.md +464 -0
  3. package/dist/__tests__/integration/helpers.d.ts +5 -0
  4. package/dist/__tests__/integration/helpers.d.ts.map +1 -0
  5. package/dist/__tests__/integration/helpers.js +37 -0
  6. package/dist/__tests__/integration/helpers.js.map +1 -0
  7. package/dist/__tests__/setup.d.ts +3 -0
  8. package/dist/__tests__/setup.d.ts.map +1 -0
  9. package/dist/__tests__/setup.js +29 -0
  10. package/dist/__tests__/setup.js.map +1 -0
  11. package/dist/client-exports.d.ts +299 -0
  12. package/dist/client-exports.d.ts.map +1 -0
  13. package/dist/client-exports.js +252 -0
  14. package/dist/client-exports.js.map +1 -0
  15. package/dist/context/ContextConfig.d.ts +54 -0
  16. package/dist/context/ContextConfig.d.ts.map +1 -0
  17. package/dist/context/ContextConfig.js +302 -0
  18. package/dist/context/ContextConfig.js.map +1 -0
  19. package/dist/context/ContextFetcher.d.ts +64 -0
  20. package/dist/context/ContextFetcher.d.ts.map +1 -0
  21. package/dist/context/ContextFetcher.js +325 -0
  22. package/dist/context/ContextFetcher.js.map +1 -0
  23. package/dist/context/ContextResolver.d.ts +52 -0
  24. package/dist/context/ContextResolver.d.ts.map +1 -0
  25. package/dist/context/ContextResolver.js +298 -0
  26. package/dist/context/ContextResolver.js.map +1 -0
  27. package/dist/context/TemplateEngine.d.ts +46 -0
  28. package/dist/context/TemplateEngine.d.ts.map +1 -0
  29. package/dist/context/TemplateEngine.js +175 -0
  30. package/dist/context/TemplateEngine.js.map +1 -0
  31. package/dist/context/context.d.ts +8 -0
  32. package/dist/context/context.d.ts.map +1 -0
  33. package/dist/context/context.js +157 -0
  34. package/dist/context/context.js.map +1 -0
  35. package/dist/context/contextCache.d.ts +50 -0
  36. package/dist/context/contextCache.d.ts.map +1 -0
  37. package/dist/context/contextCache.js +175 -0
  38. package/dist/context/contextCache.js.map +1 -0
  39. package/dist/context/index.d.ts +11 -0
  40. package/dist/context/index.d.ts.map +1 -0
  41. package/dist/context/index.js +8 -0
  42. package/dist/context/index.js.map +1 -0
  43. package/dist/credential-stores/CredentialStoreRegistry.d.ts +39 -0
  44. package/dist/credential-stores/CredentialStoreRegistry.d.ts.map +1 -0
  45. package/dist/credential-stores/CredentialStoreRegistry.js +65 -0
  46. package/dist/credential-stores/CredentialStoreRegistry.js.map +1 -0
  47. package/dist/credential-stores/defaults.d.ts +6 -0
  48. package/dist/credential-stores/defaults.d.ts.map +1 -0
  49. package/dist/credential-stores/defaults.js +22 -0
  50. package/dist/credential-stores/defaults.js.map +1 -0
  51. package/dist/credential-stores/index.d.ts +6 -0
  52. package/dist/credential-stores/index.d.ts.map +1 -0
  53. package/dist/credential-stores/index.js +6 -0
  54. package/dist/credential-stores/index.js.map +1 -0
  55. package/dist/credential-stores/keychain-store.d.ts +100 -0
  56. package/dist/credential-stores/keychain-store.d.ts.map +1 -0
  57. package/dist/credential-stores/keychain-store.js +225 -0
  58. package/dist/credential-stores/keychain-store.js.map +1 -0
  59. package/dist/credential-stores/memory-store.d.ts +39 -0
  60. package/dist/credential-stores/memory-store.d.ts.map +1 -0
  61. package/dist/credential-stores/memory-store.js +58 -0
  62. package/dist/credential-stores/memory-store.js.map +1 -0
  63. package/dist/credential-stores/nango-store.d.ts +59 -0
  64. package/dist/credential-stores/nango-store.d.ts.map +1 -0
  65. package/dist/credential-stores/nango-store.js +264 -0
  66. package/dist/credential-stores/nango-store.js.map +1 -0
  67. package/dist/credential-stuffer/CredentialStuffer.d.ts +80 -0
  68. package/dist/credential-stuffer/CredentialStuffer.d.ts.map +1 -0
  69. package/dist/credential-stuffer/CredentialStuffer.js +186 -0
  70. package/dist/credential-stuffer/CredentialStuffer.js.map +1 -0
  71. package/dist/credential-stuffer/index.d.ts +2 -0
  72. package/dist/credential-stuffer/index.d.ts.map +1 -0
  73. package/dist/credential-stuffer/index.js +2 -0
  74. package/dist/credential-stuffer/index.js.map +1 -0
  75. package/dist/data-access/agentDataComponents.d.ts +1 -0
  76. package/dist/data-access/agentDataComponents.d.ts.map +1 -0
  77. package/dist/data-access/agentDataComponents.js +2 -0
  78. package/dist/data-access/agentDataComponents.js.map +1 -0
  79. package/dist/data-access/agentGraphs.d.ts +399 -0
  80. package/dist/data-access/agentGraphs.d.ts.map +1 -0
  81. package/dist/data-access/agentGraphs.js +551 -0
  82. package/dist/data-access/agentGraphs.js.map +1 -0
  83. package/dist/data-access/agentRelations.d.ts +456 -0
  84. package/dist/data-access/agentRelations.d.ts.map +1 -0
  85. package/dist/data-access/agentRelations.js +471 -0
  86. package/dist/data-access/agentRelations.js.map +1 -0
  87. package/dist/data-access/agents.d.ts +218 -0
  88. package/dist/data-access/agents.d.ts.map +1 -0
  89. package/dist/data-access/agents.js +130 -0
  90. package/dist/data-access/agents.js.map +1 -0
  91. package/dist/data-access/apiKeys.d.ts +114 -0
  92. package/dist/data-access/apiKeys.d.ts.map +1 -0
  93. package/dist/data-access/apiKeys.js +185 -0
  94. package/dist/data-access/apiKeys.js.map +1 -0
  95. package/dist/data-access/artifactComponents.d.ts +152 -0
  96. package/dist/data-access/artifactComponents.d.ts.map +1 -0
  97. package/dist/data-access/artifactComponents.js +214 -0
  98. package/dist/data-access/artifactComponents.js.map +1 -0
  99. package/dist/data-access/contextCache.d.ts +68 -0
  100. package/dist/data-access/contextCache.d.ts.map +1 -0
  101. package/dist/data-access/contextCache.js +135 -0
  102. package/dist/data-access/contextCache.js.map +1 -0
  103. package/dist/data-access/contextConfigs.d.ts +110 -0
  104. package/dist/data-access/contextConfigs.d.ts.map +1 -0
  105. package/dist/data-access/contextConfigs.js +156 -0
  106. package/dist/data-access/contextConfigs.js.map +1 -0
  107. package/dist/data-access/conversations.d.ts +125 -0
  108. package/dist/data-access/conversations.d.ts.map +1 -0
  109. package/dist/data-access/conversations.js +244 -0
  110. package/dist/data-access/conversations.js.map +1 -0
  111. package/dist/data-access/credentialReferences.d.ts +86 -0
  112. package/dist/data-access/credentialReferences.d.ts.map +1 -0
  113. package/dist/data-access/credentialReferences.js +175 -0
  114. package/dist/data-access/credentialReferences.js.map +1 -0
  115. package/dist/data-access/dataComponents.d.ts +129 -0
  116. package/dist/data-access/dataComponents.d.ts.map +1 -0
  117. package/dist/data-access/dataComponents.js +213 -0
  118. package/dist/data-access/dataComponents.js.map +1 -0
  119. package/dist/data-access/externalAgents.d.ts +83 -0
  120. package/dist/data-access/externalAgents.d.ts.map +1 -0
  121. package/dist/data-access/externalAgents.js +163 -0
  122. package/dist/data-access/externalAgents.js.map +1 -0
  123. package/dist/data-access/graphFull.d.ts +32 -0
  124. package/dist/data-access/graphFull.d.ts.map +1 -0
  125. package/dist/data-access/graphFull.js +996 -0
  126. package/dist/data-access/graphFull.js.map +1 -0
  127. package/dist/data-access/index.d.ts +21 -0
  128. package/dist/data-access/index.d.ts.map +1 -0
  129. package/dist/data-access/index.js +22 -0
  130. package/dist/data-access/index.js.map +1 -0
  131. package/dist/data-access/ledgerArtifacts.d.ts +49 -0
  132. package/dist/data-access/ledgerArtifacts.d.ts.map +1 -0
  133. package/dist/data-access/ledgerArtifacts.js +112 -0
  134. package/dist/data-access/ledgerArtifacts.js.map +1 -0
  135. package/dist/data-access/messages.d.ts +209 -0
  136. package/dist/data-access/messages.d.ts.map +1 -0
  137. package/dist/data-access/messages.js +100 -0
  138. package/dist/data-access/messages.js.map +1 -0
  139. package/dist/data-access/projects.d.ts +67 -0
  140. package/dist/data-access/projects.d.ts.map +1 -0
  141. package/dist/data-access/projects.js +337 -0
  142. package/dist/data-access/projects.js.map +1 -0
  143. package/dist/data-access/tasks.d.ts +37 -0
  144. package/dist/data-access/tasks.d.ts.map +1 -0
  145. package/dist/data-access/tasks.js +40 -0
  146. package/dist/data-access/tasks.js.map +1 -0
  147. package/dist/data-access/tools.d.ts +277 -0
  148. package/dist/data-access/tools.d.ts.map +1 -0
  149. package/dist/data-access/tools.js +183 -0
  150. package/dist/data-access/tools.js.map +1 -0
  151. package/dist/data-access/validation.d.ts +17 -0
  152. package/dist/data-access/validation.d.ts.map +1 -0
  153. package/dist/data-access/validation.js +52 -0
  154. package/dist/data-access/validation.js.map +1 -0
  155. package/dist/db/clean.d.ts +6 -0
  156. package/dist/db/clean.d.ts.map +1 -0
  157. package/dist/db/clean.js +81 -0
  158. package/dist/db/clean.js.map +1 -0
  159. package/dist/db/client.d.ts +19 -0
  160. package/dist/db/client.d.ts.map +1 -0
  161. package/dist/db/client.js +24 -0
  162. package/dist/db/client.js.map +1 -0
  163. package/dist/db/schema.d.ts +4335 -0
  164. package/dist/db/schema.d.ts.map +1 -0
  165. package/dist/db/schema.js +696 -0
  166. package/dist/db/schema.js.map +1 -0
  167. package/dist/db/test-client.d.ts +25 -0
  168. package/dist/db/test-client.d.ts.map +1 -0
  169. package/dist/db/test-client.js +136 -0
  170. package/dist/db/test-client.js.map +1 -0
  171. package/dist/env.d.ts +19 -0
  172. package/dist/env.d.ts.map +1 -0
  173. package/dist/env.js +49 -0
  174. package/dist/env.js.map +1 -0
  175. package/dist/index.d.ts +12 -0
  176. package/dist/index.d.ts.map +1 -0
  177. package/dist/index.js +13 -0
  178. package/dist/index.js.map +1 -0
  179. package/dist/middleware/contextValidation.d.ts +49 -0
  180. package/dist/middleware/contextValidation.d.ts.map +1 -0
  181. package/dist/middleware/contextValidation.js +473 -0
  182. package/dist/middleware/contextValidation.js.map +1 -0
  183. package/dist/middleware/index.d.ts +2 -0
  184. package/dist/middleware/index.d.ts.map +1 -0
  185. package/dist/middleware/index.js +2 -0
  186. package/dist/middleware/index.js.map +1 -0
  187. package/dist/types/a2a.d.ts +373 -0
  188. package/dist/types/a2a.d.ts.map +1 -0
  189. package/dist/types/a2a.js +14 -0
  190. package/dist/types/a2a.js.map +1 -0
  191. package/dist/types/entities.d.ts +147 -0
  192. package/dist/types/entities.d.ts.map +1 -0
  193. package/dist/types/entities.js +2 -0
  194. package/dist/types/entities.js.map +1 -0
  195. package/dist/types/index.d.ts +5 -0
  196. package/dist/types/index.d.ts.map +1 -0
  197. package/dist/types/index.js +6 -0
  198. package/dist/types/index.js.map +1 -0
  199. package/dist/types/server.d.ts +116 -0
  200. package/dist/types/server.d.ts.map +1 -0
  201. package/dist/types/server.js +2 -0
  202. package/dist/types/server.js.map +1 -0
  203. package/dist/types/utility.d.ts +213 -0
  204. package/dist/types/utility.d.ts.map +1 -0
  205. package/dist/types/utility.js +9 -0
  206. package/dist/types/utility.js.map +1 -0
  207. package/dist/utils/apiKeys.d.ts +32 -0
  208. package/dist/utils/apiKeys.d.ts.map +1 -0
  209. package/dist/utils/apiKeys.js +117 -0
  210. package/dist/utils/apiKeys.js.map +1 -0
  211. package/dist/utils/auth-detection.d.ts +23 -0
  212. package/dist/utils/auth-detection.d.ts.map +1 -0
  213. package/dist/utils/auth-detection.js +148 -0
  214. package/dist/utils/auth-detection.js.map +1 -0
  215. package/dist/utils/credential-store-utils.d.ts +11 -0
  216. package/dist/utils/credential-store-utils.d.ts.map +1 -0
  217. package/dist/utils/credential-store-utils.js +19 -0
  218. package/dist/utils/credential-store-utils.js.map +1 -0
  219. package/dist/utils/error.d.ts +526 -0
  220. package/dist/utils/error.d.ts.map +1 -0
  221. package/dist/utils/error.js +282 -0
  222. package/dist/utils/error.js.map +1 -0
  223. package/dist/utils/execution.d.ts +18 -0
  224. package/dist/utils/execution.d.ts.map +1 -0
  225. package/dist/utils/execution.js +25 -0
  226. package/dist/utils/execution.js.map +1 -0
  227. package/dist/utils/index.d.ts +9 -0
  228. package/dist/utils/index.d.ts.map +1 -0
  229. package/dist/utils/index.js +9 -0
  230. package/dist/utils/index.js.map +1 -0
  231. package/dist/utils/logger.d.ts +79 -0
  232. package/dist/utils/logger.d.ts.map +1 -0
  233. package/dist/utils/logger.js +102 -0
  234. package/dist/utils/logger.js.map +1 -0
  235. package/dist/utils/logging.d.ts +11 -0
  236. package/dist/utils/logging.d.ts.map +1 -0
  237. package/dist/utils/logging.js +6 -0
  238. package/dist/utils/logging.js.map +1 -0
  239. package/dist/utils/mcp-client.d.ts +48 -0
  240. package/dist/utils/mcp-client.d.ts.map +1 -0
  241. package/dist/utils/mcp-client.js +174 -0
  242. package/dist/utils/mcp-client.js.map +1 -0
  243. package/dist/utils/tracer.d.ts +24 -0
  244. package/dist/utils/tracer.d.ts.map +1 -0
  245. package/dist/utils/tracer.js +110 -0
  246. package/dist/utils/tracer.js.map +1 -0
  247. package/dist/validation/graphFull.d.ts +36 -0
  248. package/dist/validation/graphFull.d.ts.map +1 -0
  249. package/dist/validation/graphFull.js +128 -0
  250. package/dist/validation/graphFull.js.map +1 -0
  251. package/dist/validation/id-validation.d.ts +38 -0
  252. package/dist/validation/id-validation.d.ts.map +1 -0
  253. package/dist/validation/id-validation.js +60 -0
  254. package/dist/validation/id-validation.js.map +1 -0
  255. package/dist/validation/index.d.ts +4 -0
  256. package/dist/validation/index.d.ts.map +1 -0
  257. package/dist/validation/index.js +5 -0
  258. package/dist/validation/index.js.map +1 -0
  259. package/dist/validation/schemas.d.ts +7213 -0
  260. package/dist/validation/schemas.d.ts.map +1 -0
  261. package/dist/validation/schemas.js +576 -0
  262. package/dist/validation/schemas.js.map +1 -0
  263. package/package.json +95 -0
@@ -0,0 +1,152 @@
1
+ import type { DatabaseClient } from '../db/client';
2
+ import type { ArtifactComponentInsert, ArtifactComponentSelect, ArtifactComponentUpdate } from '../types/entities';
3
+ import type { PaginationConfig, ScopeConfig } from '../types/utility';
4
+ export declare const getArtifactComponentById: (db: DatabaseClient) => (params: {
5
+ scopes: ScopeConfig;
6
+ id: string;
7
+ }) => Promise<{
8
+ tenantId: string;
9
+ projectId: string;
10
+ id: string;
11
+ name: string;
12
+ description: string;
13
+ createdAt: string;
14
+ updatedAt: string;
15
+ summaryProps: Record<string, unknown> | null;
16
+ fullProps: Record<string, unknown> | null;
17
+ } | undefined>;
18
+ export declare const listArtifactComponents: (db: DatabaseClient) => (params: {
19
+ scopes: ScopeConfig;
20
+ }) => Promise<{
21
+ tenantId: string;
22
+ projectId: string;
23
+ id: string;
24
+ name: string;
25
+ description: string;
26
+ summaryProps: Record<string, unknown> | null;
27
+ fullProps: Record<string, unknown> | null;
28
+ createdAt: string;
29
+ updatedAt: string;
30
+ }[]>;
31
+ export declare const listArtifactComponentsPaginated: (db: DatabaseClient) => (params: {
32
+ scopes: ScopeConfig;
33
+ pagination?: PaginationConfig;
34
+ }) => Promise<{
35
+ data: ArtifactComponentSelect[];
36
+ pagination: {
37
+ page: number;
38
+ limit: number;
39
+ total: number;
40
+ pages: number;
41
+ };
42
+ }>;
43
+ export declare const createArtifactComponent: (db: DatabaseClient) => (params: ArtifactComponentInsert) => Promise<{
44
+ tenantId: string;
45
+ projectId: string;
46
+ id: string;
47
+ name: string;
48
+ description: string;
49
+ createdAt: string;
50
+ updatedAt: string;
51
+ summaryProps: Record<string, unknown> | null;
52
+ fullProps: Record<string, unknown> | null;
53
+ }>;
54
+ export declare const updateArtifactComponent: (db: DatabaseClient) => (params: {
55
+ scopes: ScopeConfig;
56
+ id: string;
57
+ data: ArtifactComponentUpdate;
58
+ }) => Promise<{
59
+ tenantId: string;
60
+ projectId: string;
61
+ id: string;
62
+ name: string;
63
+ description: string;
64
+ createdAt: string;
65
+ updatedAt: string;
66
+ summaryProps: Record<string, unknown> | null;
67
+ fullProps: Record<string, unknown> | null;
68
+ }>;
69
+ export declare const deleteArtifactComponent: (db: DatabaseClient) => (params: {
70
+ scopes: ScopeConfig;
71
+ id: string;
72
+ }) => Promise<boolean>;
73
+ export declare const getArtifactComponentsForAgent: (db: DatabaseClient) => (params: {
74
+ scopes: ScopeConfig;
75
+ agentId: string;
76
+ }) => Promise<{
77
+ id: string;
78
+ tenantId: string;
79
+ projectId: string;
80
+ name: string;
81
+ description: string;
82
+ summaryProps: Record<string, unknown> | null;
83
+ fullProps: Record<string, unknown> | null;
84
+ createdAt: string;
85
+ updatedAt: string;
86
+ }[]>;
87
+ export declare const associateArtifactComponentWithAgent: (db: DatabaseClient) => (params: {
88
+ scopes: ScopeConfig;
89
+ agentId: string;
90
+ artifactComponentId: string;
91
+ }) => Promise<{
92
+ tenantId: string;
93
+ projectId: string;
94
+ id: string;
95
+ createdAt: string;
96
+ agentId: string;
97
+ artifactComponentId: string;
98
+ }>;
99
+ export declare const removeArtifactComponentFromAgent: (db: DatabaseClient) => (params: {
100
+ scopes: ScopeConfig;
101
+ agentId: string;
102
+ artifactComponentId: string;
103
+ }) => Promise<boolean>;
104
+ export declare const deleteAgentArtifactComponentRelationByAgent: (db: DatabaseClient) => (params: {
105
+ scopes: ScopeConfig;
106
+ agentId: string;
107
+ }) => Promise<boolean>;
108
+ export declare const getAgentsUsingArtifactComponent: (db: DatabaseClient) => (params: {
109
+ scopes: ScopeConfig;
110
+ artifactComponentId: string;
111
+ }) => Promise<{
112
+ agentId: string;
113
+ createdAt: string;
114
+ }[]>;
115
+ export declare const isArtifactComponentAssociatedWithAgent: (db: DatabaseClient) => (params: {
116
+ scopes: ScopeConfig;
117
+ agentId: string;
118
+ artifactComponentId: string;
119
+ }) => Promise<boolean>;
120
+ export declare const graphHasArtifactComponents: (db: DatabaseClient) => (params: {
121
+ scopes: ScopeConfig;
122
+ graphId: string;
123
+ }) => Promise<boolean>;
124
+ export declare const countArtifactComponents: (db: DatabaseClient) => (params: {
125
+ scopes: ScopeConfig;
126
+ }) => Promise<number>;
127
+ export declare const countArtifactComponentsForAgent: (db: DatabaseClient) => (params: {
128
+ scopes: ScopeConfig;
129
+ agentId: string;
130
+ }) => Promise<number>;
131
+ /**
132
+ * Upsert agent-artifact component relation (create if it doesn't exist, no-op if it does)
133
+ */
134
+ export declare const upsertAgentArtifactComponentRelation: (db: DatabaseClient) => (params: {
135
+ scopes: ScopeConfig;
136
+ agentId: string;
137
+ artifactComponentId: string;
138
+ }) => Promise<{
139
+ tenantId: string;
140
+ projectId: string;
141
+ id: string;
142
+ createdAt: string;
143
+ agentId: string;
144
+ artifactComponentId: string;
145
+ } | null>;
146
+ /**
147
+ * Upsert an artifact component (create if it doesn't exist, update if it does)
148
+ */
149
+ export declare const upsertArtifactComponent: (db: DatabaseClient) => (params: {
150
+ data: ArtifactComponentInsert;
151
+ }) => Promise<ArtifactComponentSelect>;
152
+ //# sourceMappingURL=artifactComponents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifactComponents.d.ts","sourceRoot":"","sources":["../../src/data-access/artifactComponents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,214 @@
1
+ import { and, count, desc, eq } from 'drizzle-orm';
2
+ import { nanoid } from 'nanoid';
3
+ import { agentArtifactComponents, agentRelations, agents, artifactComponents } from '../db/schema';
4
+ export const getArtifactComponentById = (db) => async (params) => {
5
+ return await db.query.artifactComponents.findFirst({
6
+ where: and(eq(artifactComponents.tenantId, params.scopes.tenantId), eq(artifactComponents.projectId, params.scopes.projectId), eq(artifactComponents.id, params.id)),
7
+ });
8
+ };
9
+ export const listArtifactComponents = (db) => async (params) => {
10
+ return await db
11
+ .select()
12
+ .from(artifactComponents)
13
+ .where(and(eq(artifactComponents.tenantId, params.scopes.tenantId), eq(artifactComponents.projectId, params.scopes.projectId)))
14
+ .orderBy(desc(artifactComponents.createdAt));
15
+ };
16
+ export const listArtifactComponentsPaginated = (db) => async (params) => {
17
+ const page = params.pagination?.page || 1;
18
+ const limit = Math.min(params.pagination?.limit || 10, 100);
19
+ const offset = (page - 1) * limit;
20
+ const whereClause = and(eq(artifactComponents.tenantId, params.scopes.tenantId), eq(artifactComponents.projectId, params.scopes.projectId));
21
+ const [data, totalResult] = await Promise.all([
22
+ db
23
+ .select()
24
+ .from(artifactComponents)
25
+ .where(whereClause)
26
+ .limit(limit)
27
+ .offset(offset)
28
+ .orderBy(desc(artifactComponents.createdAt)),
29
+ db.select({ count: count() }).from(artifactComponents).where(whereClause),
30
+ ]);
31
+ const total = totalResult[0]?.count || 0;
32
+ const totalNumber = typeof total === 'string' ? Number.parseInt(total, 10) : total;
33
+ const pages = Math.ceil(totalNumber / limit);
34
+ return {
35
+ data,
36
+ pagination: { page, limit, total: totalNumber, pages },
37
+ };
38
+ };
39
+ export const createArtifactComponent = (db) => async (params) => {
40
+ const now = new Date().toISOString();
41
+ const [artifactComponent] = await db
42
+ .insert(artifactComponents)
43
+ .values({
44
+ ...params,
45
+ createdAt: now,
46
+ updatedAt: now,
47
+ })
48
+ .returning();
49
+ return artifactComponent;
50
+ };
51
+ export const updateArtifactComponent = (db) => async (params) => {
52
+ const now = new Date().toISOString();
53
+ const [updated] = await db
54
+ .update(artifactComponents)
55
+ .set({
56
+ ...params.data,
57
+ updatedAt: now,
58
+ })
59
+ .where(and(eq(artifactComponents.tenantId, params.scopes.tenantId), eq(artifactComponents.projectId, params.scopes.projectId), eq(artifactComponents.id, params.id)))
60
+ .returning();
61
+ return updated;
62
+ };
63
+ export const deleteArtifactComponent = (db) => async (params) => {
64
+ try {
65
+ const result = await db
66
+ .delete(artifactComponents)
67
+ .where(and(eq(artifactComponents.tenantId, params.scopes.tenantId), eq(artifactComponents.projectId, params.scopes.projectId), eq(artifactComponents.id, params.id)))
68
+ .returning();
69
+ return result.length > 0;
70
+ }
71
+ catch (error) {
72
+ console.error('Error deleting artifact component:', error);
73
+ return false;
74
+ }
75
+ };
76
+ export const getArtifactComponentsForAgent = (db) => async (params) => {
77
+ return await db
78
+ .select({
79
+ id: artifactComponents.id,
80
+ tenantId: artifactComponents.tenantId,
81
+ projectId: artifactComponents.projectId,
82
+ name: artifactComponents.name,
83
+ description: artifactComponents.description,
84
+ summaryProps: artifactComponents.summaryProps,
85
+ fullProps: artifactComponents.fullProps,
86
+ createdAt: artifactComponents.createdAt,
87
+ updatedAt: artifactComponents.updatedAt,
88
+ })
89
+ .from(artifactComponents)
90
+ .innerJoin(agentArtifactComponents, eq(artifactComponents.id, agentArtifactComponents.artifactComponentId))
91
+ .where(and(eq(artifactComponents.tenantId, params.scopes.tenantId), eq(artifactComponents.projectId, params.scopes.projectId), eq(agentArtifactComponents.agentId, params.agentId)))
92
+ .orderBy(desc(artifactComponents.createdAt));
93
+ };
94
+ export const associateArtifactComponentWithAgent = (db) => async (params) => {
95
+ const [association] = await db
96
+ .insert(agentArtifactComponents)
97
+ .values({
98
+ id: nanoid(),
99
+ tenantId: params.scopes.tenantId,
100
+ projectId: params.scopes.projectId,
101
+ agentId: params.agentId,
102
+ artifactComponentId: params.artifactComponentId,
103
+ createdAt: new Date().toISOString(),
104
+ })
105
+ .returning();
106
+ return association;
107
+ };
108
+ export const removeArtifactComponentFromAgent = (db) => async (params) => {
109
+ try {
110
+ const result = await db
111
+ .delete(agentArtifactComponents)
112
+ .where(and(eq(agentArtifactComponents.tenantId, params.scopes.tenantId), eq(agentArtifactComponents.projectId, params.scopes.projectId), eq(agentArtifactComponents.agentId, params.agentId), eq(agentArtifactComponents.artifactComponentId, params.artifactComponentId)))
113
+ .returning();
114
+ return result.length > 0;
115
+ }
116
+ catch (error) {
117
+ console.error('Error removing artifact component from agent:', error);
118
+ return false;
119
+ }
120
+ };
121
+ export const deleteAgentArtifactComponentRelationByAgent = (db) => async (params) => {
122
+ const result = await db
123
+ .delete(agentArtifactComponents)
124
+ .where(and(eq(agentArtifactComponents.tenantId, params.scopes.tenantId), eq(agentArtifactComponents.agentId, params.agentId)));
125
+ return (result.rowsAffected || 0) > 0;
126
+ };
127
+ export const getAgentsUsingArtifactComponent = (db) => async (params) => {
128
+ return await db
129
+ .select({
130
+ agentId: agentArtifactComponents.agentId,
131
+ createdAt: agentArtifactComponents.createdAt,
132
+ })
133
+ .from(agentArtifactComponents)
134
+ .where(and(eq(agentArtifactComponents.tenantId, params.scopes.tenantId), eq(agentArtifactComponents.projectId, params.scopes.projectId), eq(agentArtifactComponents.artifactComponentId, params.artifactComponentId)))
135
+ .orderBy(desc(agentArtifactComponents.createdAt));
136
+ };
137
+ export const isArtifactComponentAssociatedWithAgent = (db) => async (params) => {
138
+ const result = await db
139
+ .select({ id: agentArtifactComponents.id })
140
+ .from(agentArtifactComponents)
141
+ .where(and(eq(agentArtifactComponents.tenantId, params.scopes.tenantId), eq(agentArtifactComponents.projectId, params.scopes.projectId), eq(agentArtifactComponents.agentId, params.agentId), eq(agentArtifactComponents.artifactComponentId, params.artifactComponentId)))
142
+ .limit(1);
143
+ return result.length > 0;
144
+ };
145
+ export const graphHasArtifactComponents = (db) => async (params) => {
146
+ const result = await db
147
+ .select({ count: count() })
148
+ .from(agentArtifactComponents)
149
+ .innerJoin(agents, eq(agentArtifactComponents.agentId, agents.id))
150
+ .innerJoin(agentRelations, eq(agents.id, agentRelations.sourceAgentId))
151
+ .where(and(eq(agentArtifactComponents.tenantId, params.scopes.tenantId), eq(agentArtifactComponents.projectId, params.scopes.projectId), eq(agentRelations.graphId, params.graphId)))
152
+ .limit(1);
153
+ const total = result[0]?.count || 0;
154
+ const totalNumber = typeof total === 'string' ? Number.parseInt(total, 10) : total;
155
+ return totalNumber > 0;
156
+ };
157
+ export const countArtifactComponents = (db) => async (params) => {
158
+ const result = await db
159
+ .select({ count: count() })
160
+ .from(artifactComponents)
161
+ .where(and(eq(artifactComponents.tenantId, params.scopes.tenantId), eq(artifactComponents.projectId, params.scopes.projectId)));
162
+ const total = result[0]?.count || 0;
163
+ return typeof total === 'string' ? Number.parseInt(total, 10) : total;
164
+ };
165
+ export const countArtifactComponentsForAgent = (db) => async (params) => {
166
+ const result = await db
167
+ .select({ count: count() })
168
+ .from(agentArtifactComponents)
169
+ .where(and(eq(agentArtifactComponents.tenantId, params.scopes.tenantId), eq(agentArtifactComponents.projectId, params.scopes.projectId), eq(agentArtifactComponents.agentId, params.agentId)));
170
+ const total = result[0]?.count || 0;
171
+ return typeof total === 'string' ? Number.parseInt(total, 10) : total;
172
+ };
173
+ /**
174
+ * Upsert agent-artifact component relation (create if it doesn't exist, no-op if it does)
175
+ */
176
+ export const upsertAgentArtifactComponentRelation = (db) => async (params) => {
177
+ // Check if relation already exists
178
+ const exists = await isArtifactComponentAssociatedWithAgent(db)(params);
179
+ if (!exists) {
180
+ // Create the relation if it doesn't exist
181
+ return await associateArtifactComponentWithAgent(db)(params);
182
+ }
183
+ // If it exists, we could optionally return the existing relation
184
+ // For now, just return success indication
185
+ return null;
186
+ };
187
+ /**
188
+ * Upsert an artifact component (create if it doesn't exist, update if it does)
189
+ */
190
+ export const upsertArtifactComponent = (db) => async (params) => {
191
+ const scopes = { tenantId: params.data.tenantId, projectId: params.data.projectId };
192
+ const existing = await getArtifactComponentById(db)({
193
+ scopes,
194
+ id: params.data.id,
195
+ });
196
+ if (existing) {
197
+ // Update existing artifact component
198
+ return await updateArtifactComponent(db)({
199
+ scopes,
200
+ id: params.data.id,
201
+ data: {
202
+ name: params.data.name,
203
+ description: params.data.description,
204
+ summaryProps: params.data.summaryProps,
205
+ fullProps: params.data.fullProps,
206
+ },
207
+ });
208
+ }
209
+ else {
210
+ // Create new artifact component
211
+ return await createArtifactComponent(db)(params.data);
212
+ }
213
+ };
214
+ //# sourceMappingURL=artifactComponents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifactComponents.js","sourceRoot":"","sources":["../../src/data-access/artifactComponents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import type { DatabaseClient } from '../db/client';
2
+ import type { ContextCacheInsert, ContextCacheSelect } from '../types/entities';
3
+ import type { ScopeConfig } from '../types/utility';
4
+ /**
5
+ * Get cached context data for a conversation with optional request hash validation
6
+ */
7
+ export declare const getCacheEntry: (db: DatabaseClient) => (params: {
8
+ conversationId: string;
9
+ contextConfigId: string;
10
+ contextVariableKey: string;
11
+ requestHash?: string;
12
+ }) => Promise<ContextCacheSelect | null>;
13
+ /**
14
+ * Set cached context data for a conversation
15
+ */
16
+ export declare const setCacheEntry: (db: DatabaseClient) => (entry: ContextCacheInsert) => Promise<ContextCacheSelect | null>;
17
+ /**
18
+ * Clear cache entries for a specific conversation
19
+ */
20
+ export declare const clearConversationCache: (db: DatabaseClient) => (params: {
21
+ scopes: ScopeConfig;
22
+ conversationId: string;
23
+ }) => Promise<number>;
24
+ /**
25
+ * Clear all cache entries for a specific context configuration
26
+ */
27
+ export declare const clearContextConfigCache: (db: DatabaseClient) => (params: {
28
+ scopes: ScopeConfig;
29
+ contextConfigId: string;
30
+ }) => Promise<number>;
31
+ /**
32
+ * Clean up all cache entries for a tenant
33
+ */
34
+ export declare const cleanupTenantCache: (db: DatabaseClient) => (params: {
35
+ scopes: ScopeConfig;
36
+ }) => Promise<number>;
37
+ /**
38
+ * Invalidate the request context cache for a conversation
39
+ */
40
+ export declare const invalidateRequestContextCache: (db: DatabaseClient) => (params: {
41
+ scopes: ScopeConfig;
42
+ conversationId: string;
43
+ contextConfigId: string;
44
+ }) => Promise<number>;
45
+ /**
46
+ * Invalidate specific cache entries for invocation-trigger definitions
47
+ */
48
+ export declare const invalidateInvocationDefinitionsCache: (db: DatabaseClient) => (params: {
49
+ scopes: ScopeConfig;
50
+ conversationId: string;
51
+ contextConfigId: string;
52
+ invocationDefinitionIds: string[];
53
+ }) => Promise<number>;
54
+ /**
55
+ * Get all cache entries for a conversation
56
+ */
57
+ export declare const getConversationCacheEntries: (db: DatabaseClient) => (params: {
58
+ scopes: ScopeConfig;
59
+ conversationId: string;
60
+ }) => Promise<ContextCacheSelect[]>;
61
+ /**
62
+ * Get all cache entries for a context configuration
63
+ */
64
+ export declare const getContextConfigCacheEntries: (db: DatabaseClient) => (params: {
65
+ scopes: ScopeConfig;
66
+ contextConfigId: string;
67
+ }) => Promise<ContextCacheSelect[]>;
68
+ //# sourceMappingURL=contextCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextCache.d.ts","sourceRoot":"","sources":["../../src/data-access/contextCache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,aAAa,GACvB,IAAI,cAAc,MACZ,QAAQ;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,KAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CA+BpC,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,aAAa,GACvB,IAAI,cAAc,MACZ,OAAO,kBAAkB,KAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CA2BnE,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAChC,IAAI,cAAc,MACZ,QAAQ;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,KAAG,OAAO,CAAC,MAAM,CAY9E,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,uBAAuB,GACjC,IAAI,cAAc,MACZ,QAAQ;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,KAAG,OAAO,CAAC,MAAM,CAY/E,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC5B,IAAI,cAAc,MACZ,QAAQ;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,KAAG,OAAO,CAAC,MAAM,CAWtD,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,6BAA6B,GACvC,IAAI,cAAc,MACZ,QAAQ;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB,KAAG,OAAO,CAAC,MAAM,CAcjB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,oCAAoC,GAC9C,IAAI,cAAc,MACZ,QAAQ;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,EAAE,CAAC;CACnC,KAAG,OAAO,CAAC,MAAM,CAoBjB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,2BAA2B,GACrC,IAAI,cAAc,MACZ,QAAQ;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB,KAAG,OAAO,CAAC,kBAAkB,EAAE,CAa/B,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,4BAA4B,GACtC,IAAI,cAAc,MACZ,QAAQ;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB,KAAG,OAAO,CAAC,kBAAkB,EAAE,CAa/B,CAAC"}
@@ -0,0 +1,135 @@
1
+ import { and, eq } from 'drizzle-orm';
2
+ import { nanoid } from 'nanoid';
3
+ import { contextCache } from '../db/schema';
4
+ /**
5
+ * Get cached context data for a conversation with optional request hash validation
6
+ */
7
+ export const getCacheEntry = (db) => async (params) => {
8
+ try {
9
+ const cacheEntry = await db.query.contextCache.findFirst({
10
+ where: and(eq(contextCache.conversationId, params.conversationId), eq(contextCache.contextConfigId, params.contextConfigId), eq(contextCache.contextVariableKey, params.contextVariableKey)),
11
+ });
12
+ if (!cacheEntry) {
13
+ return null;
14
+ }
15
+ // Check if request hash matches (for cache invalidation based on request changes)
16
+ if (params.requestHash &&
17
+ cacheEntry.requestHash &&
18
+ cacheEntry.requestHash !== params.requestHash) {
19
+ return null; // Cache entry request hash mismatch, treating as miss
20
+ }
21
+ return {
22
+ ...cacheEntry,
23
+ value: cacheEntry.value,
24
+ };
25
+ }
26
+ catch {
27
+ // Graceful degradation: treat cache errors as cache misses
28
+ return null;
29
+ }
30
+ };
31
+ /**
32
+ * Set cached context data for a conversation
33
+ */
34
+ export const setCacheEntry = (db) => async (entry) => {
35
+ try {
36
+ const cacheData = {
37
+ id: nanoid(),
38
+ tenantId: entry.tenantId,
39
+ projectId: entry.projectId,
40
+ conversationId: entry.conversationId,
41
+ contextConfigId: entry.contextConfigId,
42
+ contextVariableKey: entry.contextVariableKey,
43
+ value: entry.value,
44
+ requestHash: entry.requestHash || null,
45
+ fetchedAt: new Date().toISOString(),
46
+ fetchSource: `${entry.contextConfigId}:${entry.contextVariableKey}`,
47
+ fetchDurationMs: 0,
48
+ createdAt: new Date().toISOString(),
49
+ updatedAt: new Date().toISOString(),
50
+ };
51
+ const [result] = await db.insert(contextCache).values(cacheData).returning();
52
+ return {
53
+ ...result,
54
+ value: result.value,
55
+ };
56
+ }
57
+ catch {
58
+ // Don't throw - caching failures shouldn't break context resolution
59
+ return null;
60
+ }
61
+ };
62
+ /**
63
+ * Clear cache entries for a specific conversation
64
+ */
65
+ export const clearConversationCache = (db) => async (params) => {
66
+ const result = await db
67
+ .delete(contextCache)
68
+ .where(and(eq(contextCache.tenantId, params.scopes.tenantId), eq(contextCache.projectId, params.scopes.projectId), eq(contextCache.conversationId, params.conversationId)));
69
+ return result.rowsAffected || 0;
70
+ };
71
+ /**
72
+ * Clear all cache entries for a specific context configuration
73
+ */
74
+ export const clearContextConfigCache = (db) => async (params) => {
75
+ const result = await db
76
+ .delete(contextCache)
77
+ .where(and(eq(contextCache.tenantId, params.scopes.tenantId), eq(contextCache.projectId, params.scopes.projectId), eq(contextCache.contextConfigId, params.contextConfigId)));
78
+ return result.rowsAffected || 0;
79
+ };
80
+ /**
81
+ * Clean up all cache entries for a tenant
82
+ */
83
+ export const cleanupTenantCache = (db) => async (params) => {
84
+ const result = await db
85
+ .delete(contextCache)
86
+ .where(and(eq(contextCache.tenantId, params.scopes.tenantId), eq(contextCache.projectId, params.scopes.projectId)));
87
+ return result.rowsAffected || 0;
88
+ };
89
+ /**
90
+ * Invalidate the request context cache for a conversation
91
+ */
92
+ export const invalidateRequestContextCache = (db) => async (params) => {
93
+ const result = await db
94
+ .delete(contextCache)
95
+ .where(and(eq(contextCache.tenantId, params.scopes.tenantId), eq(contextCache.projectId, params.scopes.projectId), eq(contextCache.conversationId, params.conversationId), eq(contextCache.contextConfigId, params.contextConfigId), eq(contextCache.contextVariableKey, 'requestContext')));
96
+ return result.rowsAffected || 0;
97
+ };
98
+ /**
99
+ * Invalidate specific cache entries for invocation-trigger definitions
100
+ */
101
+ export const invalidateInvocationDefinitionsCache = (db) => async (params) => {
102
+ let totalRowsAffected = 0;
103
+ for (const definitionId of params.invocationDefinitionIds) {
104
+ const result = await db
105
+ .delete(contextCache)
106
+ .where(and(eq(contextCache.tenantId, params.scopes.tenantId), eq(contextCache.projectId, params.scopes.projectId), eq(contextCache.conversationId, params.conversationId), eq(contextCache.contextConfigId, params.contextConfigId), eq(contextCache.contextVariableKey, definitionId)));
107
+ totalRowsAffected += result.rowsAffected || 0;
108
+ }
109
+ return totalRowsAffected;
110
+ };
111
+ /**
112
+ * Get all cache entries for a conversation
113
+ */
114
+ export const getConversationCacheEntries = (db) => async (params) => {
115
+ const result = await db.query.contextCache.findMany({
116
+ where: and(eq(contextCache.tenantId, params.scopes.tenantId), eq(contextCache.projectId, params.scopes.projectId), eq(contextCache.conversationId, params.conversationId)),
117
+ });
118
+ return result.map((entry) => ({
119
+ ...entry,
120
+ value: entry.value,
121
+ }));
122
+ };
123
+ /**
124
+ * Get all cache entries for a context configuration
125
+ */
126
+ export const getContextConfigCacheEntries = (db) => async (params) => {
127
+ const result = await db.query.contextCache.findMany({
128
+ where: and(eq(contextCache.tenantId, params.scopes.tenantId), eq(contextCache.projectId, params.scopes.projectId), eq(contextCache.contextConfigId, params.contextConfigId)),
129
+ });
130
+ return result.map((entry) => ({
131
+ ...entry,
132
+ value: entry.value,
133
+ }));
134
+ };
135
+ //# sourceMappingURL=contextCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextCache.js","sourceRoot":"","sources":["../../src/data-access/contextCache.ts"],"names":[],"mappings":"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"}