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

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-ODONDMHT.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
@@ -1,264 +0,0 @@
1
- import { Nango } from '@nangohq/node';
2
- import { z } from 'zod';
3
- import { getLogger } from '../utils/logger';
4
- const logger = getLogger('nango-credential-store');
5
- // Schema for validating credential key structure
6
- const CredentialKeySchema = z.object({
7
- connectionId: z.string().min(1, 'connectionId must be a non-empty string'),
8
- providerConfigKey: z.string().min(1, 'providerConfigKey must be a non-empty string'),
9
- });
10
- const SUPPORTED_AUTH_MODES = [
11
- 'APP',
12
- 'API_KEY',
13
- 'BASIC',
14
- 'CUSTOM',
15
- 'JWT',
16
- 'NONE',
17
- 'OAUTH1',
18
- 'OAUTH2',
19
- 'OAUTH2_CC',
20
- 'TBA',
21
- ];
22
- function isSupportedAuthMode(mode) {
23
- return SUPPORTED_AUTH_MODES.includes(mode);
24
- }
25
- /**
26
- * Nango-based CredentialStore that fetches OAuth credentials from Nango API
27
- * Uses connectionId and providerConfigKey from metadata to fetch live credentials
28
- */
29
- export class NangoCredentialStore {
30
- id;
31
- type = 'nango';
32
- nangoConfig;
33
- nangoClient;
34
- constructor(id, config) {
35
- this.id = id;
36
- this.nangoConfig = config;
37
- this.nangoClient = new Nango({
38
- secretKey: this.nangoConfig.secretKey,
39
- host: this.nangoConfig.apiUrl,
40
- });
41
- }
42
- getAccessToken(credentials) {
43
- const { type } = credentials;
44
- if (!isSupportedAuthMode(type)) {
45
- return null;
46
- }
47
- switch (type) {
48
- case 'API_KEY':
49
- return {
50
- token: credentials.apiKey,
51
- };
52
- case 'APP':
53
- return {
54
- token: credentials.access_token,
55
- };
56
- case 'BASIC':
57
- return {
58
- username: credentials.username,
59
- token: credentials.password,
60
- };
61
- case 'CUSTOM':
62
- return credentials.raw;
63
- case 'JWT':
64
- return {
65
- token: credentials.token,
66
- };
67
- case 'OAUTH1':
68
- return {
69
- token: credentials.oauth_token,
70
- token_secret: credentials.oauth_token_secret,
71
- };
72
- case 'OAUTH2':
73
- return {
74
- token: credentials.access_token,
75
- refresh_token: credentials.refresh_token,
76
- };
77
- case 'OAUTH2_CC':
78
- return {
79
- token: credentials.token,
80
- client_certificate: credentials.client_certificate,
81
- client_id: credentials.client_id,
82
- client_private_key: credentials.client_private_key,
83
- client_secret: credentials.client_secret,
84
- };
85
- case 'TBA':
86
- return {
87
- token: credentials.token_id,
88
- token_secret: credentials.token_secret,
89
- };
90
- default:
91
- return null;
92
- }
93
- }
94
- sanitizeMetadata(metadata) {
95
- if (!metadata || typeof metadata !== 'object')
96
- return {};
97
- const result = {};
98
- for (const [key, value] of Object.entries(metadata)) {
99
- if (typeof key !== 'string')
100
- continue;
101
- if (typeof value === 'string') {
102
- result[key] = value;
103
- }
104
- }
105
- return result;
106
- }
107
- /**
108
- * Fetch credentials from Nango API using connection information
109
- * @param connectionId - The connection ID for the Nango connection
110
- * @param providerConfigKey - The provider config key for the Nango connection
111
- * @returns The credential data or null if the credentials are not found
112
- */
113
- async fetchCredentialsFromNango({ connectionId, providerConfigKey, }) {
114
- try {
115
- const nangoConnection = await this.nangoClient.getConnection(providerConfigKey, connectionId);
116
- const tokenAndCredentials = this.getAccessToken(nangoConnection.credentials) ?? {};
117
- // Return credential data with Nango MCP server headers
118
- const credentialData = {
119
- ...tokenAndCredentials,
120
- connectionId,
121
- providerConfigKey,
122
- provider: nangoConnection.provider || 'unknown',
123
- secretKey: this.nangoConfig.secretKey,
124
- metadata: this.sanitizeMetadata(nangoConnection.metadata ?? {}),
125
- };
126
- return credentialData;
127
- }
128
- catch (error) {
129
- logger.error({
130
- error: error instanceof Error ? error.message : 'Unknown error',
131
- connectionId,
132
- providerConfigKey,
133
- }, 'Error fetching credentials from Nango');
134
- return null;
135
- }
136
- }
137
- /**
138
- * Get credentials by key - implements CredentialStore interface
139
- * Key format: JSON string with connectionId and providerConfigKey
140
- */
141
- async get(key) {
142
- try {
143
- // Parse and validate the JSON key structure
144
- let parsedKey;
145
- try {
146
- parsedKey = JSON.parse(key);
147
- }
148
- catch (parseError) {
149
- logger.warn({
150
- storeId: this.id,
151
- key: key.substring(0, 50), // Log only first 100 chars to avoid log pollution
152
- error: parseError instanceof Error ? parseError.message : 'Unknown parsing error',
153
- }, 'Invalid JSON format in credential key');
154
- return null;
155
- }
156
- // Validate the parsed key structure using Zod
157
- const validationResult = CredentialKeySchema.safeParse(parsedKey);
158
- if (!validationResult.success) {
159
- logger.warn({
160
- storeId: this.id,
161
- key: key.substring(0, 100),
162
- validationErrors: validationResult.error.issues,
163
- }, 'Invalid credential key structure');
164
- return null;
165
- }
166
- const { connectionId, providerConfigKey } = validationResult.data;
167
- const credentials = await this.fetchCredentialsFromNango({ connectionId, providerConfigKey });
168
- if (!credentials) {
169
- return null;
170
- }
171
- const credentialString = JSON.stringify(credentials);
172
- return credentialString;
173
- }
174
- catch (error) {
175
- logger.error({
176
- storeId: this.id,
177
- key: key.substring(0, 100),
178
- error: error instanceof Error ? error.message : 'Unknown error',
179
- }, 'Error getting credentials from Nango');
180
- return null;
181
- }
182
- }
183
- /**
184
- * Set credentials - not supported for Nango (OAuth flow handles this)
185
- */
186
- async set(_key, _value) {
187
- throw new Error('Setting credentials not supported for Nango store - use OAuth flow instead');
188
- }
189
- /**
190
- * Check if credentials exist by attempting to fetch them
191
- */
192
- async has(key) {
193
- try {
194
- const credentials = await this.get(key);
195
- return credentials !== null;
196
- }
197
- catch (error) {
198
- logger.error({
199
- error: error instanceof Error ? error.message : 'Unknown error',
200
- key,
201
- }, 'Error checking credentials existence');
202
- return false;
203
- }
204
- }
205
- /**
206
- * Delete credentials - not supported for Nango (revoke through Nango dashboard)
207
- */
208
- async delete(key) {
209
- try {
210
- // Parse and validate the JSON key structure
211
- let parsedKey;
212
- try {
213
- parsedKey = JSON.parse(key);
214
- }
215
- catch (parseError) {
216
- logger.warn({
217
- storeId: this.id,
218
- key: key.substring(0, 50), // Log only first 100 chars to avoid log pollution
219
- error: parseError instanceof Error ? parseError.message : 'Unknown parsing error',
220
- }, 'Invalid JSON format in credential key');
221
- return false;
222
- }
223
- // Validate the parsed key structure using Zod
224
- const validationResult = CredentialKeySchema.safeParse(parsedKey);
225
- if (!validationResult.success) {
226
- logger.warn({
227
- storeId: this.id,
228
- key: key.substring(0, 100),
229
- validationErrors: validationResult.error.issues,
230
- }, 'Invalid credential key structure');
231
- return false;
232
- }
233
- const { connectionId, providerConfigKey } = validationResult.data;
234
- await this.nangoClient.deleteConnection(providerConfigKey, connectionId);
235
- return true;
236
- }
237
- catch (error) {
238
- logger.error({
239
- storeId: this.id,
240
- key: key.substring(0, 100),
241
- error: error instanceof Error ? error.message : 'Unknown error',
242
- }, 'Error deleting credentials from Nango');
243
- return false;
244
- }
245
- }
246
- }
247
- /**
248
- * Factory function to create NangoCredentialStore
249
- * Automatically reads NANGO_SECRET_KEY from environment and validates it
250
- */
251
- export function createNangoCredentialStore(id, config) {
252
- const nangoSecretKey = config?.secretKey || process.env.NANGO_SECRET_KEY;
253
- if (!nangoSecretKey ||
254
- nangoSecretKey === 'your_nango_secret_key' ||
255
- nangoSecretKey.includes('mock')) {
256
- throw new Error('NANGO_SECRET_KEY environment variable is required and must be a real Nango secret key (not mock/placeholder)');
257
- }
258
- return new NangoCredentialStore(id, {
259
- apiUrl: 'https://api.nango.dev',
260
- ...config,
261
- secretKey: nangoSecretKey,
262
- });
263
- }
264
- //# sourceMappingURL=nango-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nango-store.js","sourceRoot":"","sources":["../../src/credential-stores/nango-store.ts"],"names":[],"mappings":"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"}
@@ -1,80 +0,0 @@
1
- import type { CredentialStoreRegistry } from '../credential-stores/CredentialStoreRegistry';
2
- import type { MCPToolConfig } from '../types/index';
3
- import { type Logger } from '../utils/logger';
4
- import type { McpServerConfig } from '../utils/mcp-client';
5
- /**
6
- * Context object for credential operations
7
- */
8
- export interface CredentialContext {
9
- /** Tenant identifier */
10
- tenantId: string;
11
- /** Project identifier */
12
- projectId: string;
13
- /** Conversation identifier */
14
- conversationId?: string;
15
- /** Context configuration identifier */
16
- contextConfigId?: string;
17
- /** Additional context data */
18
- metadata?: Record<string, unknown>;
19
- }
20
- /**
21
- * Base credential data structure containing headers and metadata
22
- */
23
- export interface CredentialData {
24
- /** HTTP headers for authentication */
25
- headers: Record<string, string>;
26
- /** Additional metadata for the credentials */
27
- metadata?: Record<string, any>;
28
- }
29
- /**
30
- * Credential store reference for lookups
31
- */
32
- export interface CredentialStoreReference {
33
- /** Framework credential store ID */
34
- credentialStoreId: string;
35
- /** Configuration parameters for credential retrieval */
36
- retrievalParams: Record<string, unknown>;
37
- }
38
- export interface CredentialResolverInput {
39
- context: CredentialContext;
40
- mcpType?: MCPToolConfig['mcpType'];
41
- storeReference?: CredentialStoreReference;
42
- headers?: Record<string, string>;
43
- }
44
- /**
45
- * Interface for context resolver (optional)
46
- */
47
- export interface ContextResolverInterface {
48
- resolveRequestContext(conversationId: string, contextConfigId: string): Promise<Record<string, unknown>>;
49
- }
50
- /**
51
- * Manages credential retrieval and injection for MCP tools
52
- * Uses CredentialStoreRegistry for credential store management
53
- */
54
- export declare class CredentialStuffer {
55
- private credentialStoreRegistry;
56
- private contextResolver?;
57
- private readonly logger;
58
- constructor(credentialStoreRegistry: CredentialStoreRegistry, contextResolver?: ContextResolverInterface | undefined, logger?: Logger);
59
- /**
60
- * Retrieve credentials from credential store registry
61
- */
62
- getCredentials(context: CredentialContext, storeReference: CredentialStoreReference, mcpType?: MCPToolConfig['mcpType']): Promise<CredentialData | null>;
63
- /**
64
- * Generate credential lookup key based on store type
65
- */
66
- private generateCredentialKey;
67
- /**
68
- * Get credentials from request context
69
- */
70
- getCredentialsFromRequestContext(credentialContext: CredentialContext, headers: Record<string, string>): Promise<CredentialData | null>;
71
- /**
72
- * Get credential headers for MCP server configuration
73
- */
74
- getCredentialHeaders({ context, mcpType, storeReference, headers, }: CredentialResolverInput): Promise<Record<string, string>>;
75
- /**
76
- * Build MCP server configuration with credentials
77
- */
78
- buildMcpServerConfig(context: CredentialContext, tool: MCPToolConfig, storeReference?: CredentialStoreReference): Promise<McpServerConfig>;
79
- }
80
- //# sourceMappingURL=CredentialStuffer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CredentialStuffer.d.ts","sourceRoot":"","sources":["../../src/credential-stuffer/CredentialStuffer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAE5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IAEjB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAElB,8BAA8B;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,oCAAoC;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,qBAAqB,CACnB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrC;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,eAAe,CAAC;IAJ1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAGtB,uBAAuB,EAAE,uBAAuB,EAChD,eAAe,CAAC,EAAE,wBAAwB,YAAA,EAClD,MAAM,CAAC,EAAE,MAAM;IAKjB;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,iBAAiB,EAC1B,cAAc,EAAE,wBAAwB,EACxC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,GACjC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA2FjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;OAEG;IACG,gCAAgC,CACpC,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA8BjC;;OAEG;IACG,oBAAoB,CAAC,EACzB,OAAO,EACP,OAAO,EACP,cAAc,EACd,OAAO,GACR,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IA4B5D;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,aAAa,EACnB,cAAc,CAAC,EAAE,wBAAwB,GACxC,OAAO,CAAC,eAAe,CAAC;CAmC5B"}
@@ -1,186 +0,0 @@
1
- import { TemplateEngine } from '../context/TemplateEngine';
2
- import { getCredentialStoreLookupKeyFromRetrievalParams } from '../utils/credential-store-utils';
3
- import { getLogger } from '../utils/logger';
4
- /**
5
- * Manages credential retrieval and injection for MCP tools
6
- * Uses CredentialStoreRegistry for credential store management
7
- */
8
- export class CredentialStuffer {
9
- credentialStoreRegistry;
10
- contextResolver;
11
- logger;
12
- constructor(credentialStoreRegistry, contextResolver, logger) {
13
- this.credentialStoreRegistry = credentialStoreRegistry;
14
- this.contextResolver = contextResolver;
15
- this.logger = logger || getLogger('credential-stuffer');
16
- }
17
- /**
18
- * Retrieve credentials from credential store registry
19
- */
20
- async getCredentials(context, storeReference, mcpType) {
21
- // Get the credential store from registry
22
- const credentialStore = this.credentialStoreRegistry.get(storeReference.credentialStoreId);
23
- if (!credentialStore) {
24
- this.logger.warn({
25
- tenantId: context.tenantId,
26
- credentialStoreId: storeReference.credentialStoreId,
27
- availableStores: this.credentialStoreRegistry.getIds(),
28
- }, 'Credential store not found in registry');
29
- return null;
30
- }
31
- const key = this.generateCredentialKey(context, storeReference, credentialStore.type);
32
- const credentialDataString = await credentialStore.get(key);
33
- if (!credentialDataString) {
34
- this.logger.warn({
35
- tenantId: context.tenantId,
36
- credentialStoreId: storeReference.credentialStoreId,
37
- lookupKey: key,
38
- }, 'No credential data found for key');
39
- return null;
40
- }
41
- if (credentialStore.type === 'nango') {
42
- try {
43
- const nangoCredentialData = JSON.parse(credentialDataString);
44
- if (mcpType === 'nango') {
45
- return {
46
- headers: {
47
- // For Nango MCP, authenticate with the Nango secret key
48
- Authorization: `Bearer ${nangoCredentialData.secretKey}`,
49
- 'provider-config-key': nangoCredentialData.providerConfigKey,
50
- 'connection-id': nangoCredentialData.connectionId,
51
- },
52
- metadata: nangoCredentialData.metadata,
53
- };
54
- }
55
- const headers = {};
56
- if (nangoCredentialData.token) {
57
- headers.Authorization = `Bearer ${nangoCredentialData.token}`;
58
- }
59
- return {
60
- headers,
61
- metadata: nangoCredentialData.metadata,
62
- };
63
- }
64
- catch (parseError) {
65
- this.logger.error({
66
- tenantId: context.tenantId,
67
- credentialStoreId: storeReference.credentialStoreId,
68
- parseError: parseError instanceof Error ? parseError.message : 'Unknown error',
69
- }, 'Failed to parse credential data JSON');
70
- return null;
71
- }
72
- }
73
- if (credentialStore.type === 'keychain') {
74
- try {
75
- const oauthTokens = JSON.parse(credentialDataString);
76
- if (oauthTokens.access_token) {
77
- return {
78
- headers: {
79
- Authorization: `Bearer ${oauthTokens.access_token}`,
80
- },
81
- metadata: {},
82
- };
83
- }
84
- }
85
- catch {
86
- // Not JSON or invalid JSON - fall through to treat as simple token
87
- }
88
- }
89
- return {
90
- headers: {
91
- Authorization: `Bearer ${credentialDataString}`,
92
- },
93
- };
94
- }
95
- /**
96
- * Generate credential lookup key based on store type
97
- */
98
- generateCredentialKey(context, storeReference, credentialStoreType) {
99
- return (getCredentialStoreLookupKeyFromRetrievalParams({
100
- retrievalParams: storeReference.retrievalParams,
101
- credentialStoreType,
102
- }) || context.tenantId);
103
- }
104
- /**
105
- * Get credentials from request context
106
- */
107
- async getCredentialsFromRequestContext(credentialContext, headers) {
108
- const contextConfigId = credentialContext.contextConfigId;
109
- const conversationId = credentialContext.conversationId;
110
- if (!contextConfigId || !conversationId || !this.contextResolver) {
111
- return null;
112
- }
113
- // Resolve the request context
114
- const requestContext = await this.contextResolver.resolveRequestContext(conversationId, contextConfigId);
115
- // Render any template variables in dynamic header values
116
- const resolvedHeaders = {};
117
- for (const [key, value] of Object.entries(headers)) {
118
- resolvedHeaders[key] = TemplateEngine.render(value, { requestContext: requestContext }, { strict: true });
119
- }
120
- return {
121
- headers: resolvedHeaders,
122
- metadata: {},
123
- };
124
- }
125
- /**
126
- * Get credential headers for MCP server configuration
127
- */
128
- async getCredentialHeaders({ context, mcpType, storeReference, headers, }) {
129
- let credentialsFromRequestContext = null;
130
- // Resolve headers from request context if we have metadata to fetch context and headers to resolve
131
- if (context.contextConfigId && context.conversationId && headers) {
132
- credentialsFromRequestContext = await this.getCredentialsFromRequestContext(context, headers);
133
- }
134
- // Resolve headers from credential store if we have a store reference
135
- let credentialStoreHeaders = null;
136
- if (storeReference) {
137
- credentialStoreHeaders = await this.getCredentials(context, storeReference, mcpType);
138
- }
139
- // If we have no credential store headers, return the headers from the request context
140
- if (!credentialStoreHeaders) {
141
- return credentialsFromRequestContext ? credentialsFromRequestContext.headers : {};
142
- }
143
- // Combine results from both sources
144
- const combinedHeaders = {
145
- ...credentialStoreHeaders.headers,
146
- ...credentialStoreHeaders.metadata,
147
- ...credentialsFromRequestContext?.headers,
148
- };
149
- return combinedHeaders;
150
- }
151
- /**
152
- * Build MCP server configuration with credentials
153
- */
154
- async buildMcpServerConfig(context, tool, storeReference) {
155
- // Get credential headers if available
156
- let credentialHeaders = {};
157
- if (storeReference || tool.headers) {
158
- credentialHeaders = await this.getCredentialHeaders({
159
- context: context,
160
- mcpType: tool.mcpType,
161
- storeReference,
162
- headers: tool.headers || {},
163
- });
164
- }
165
- // Build base configuration
166
- const baseConfig = {
167
- type: tool.transport?.type || 'streamable_http',
168
- url: tool.serverUrl,
169
- activeTools: tool.activeTools,
170
- };
171
- // Add configuration based on transport type
172
- if (baseConfig.type === 'streamable_http' || baseConfig.type === 'sse') {
173
- const httpConfig = {
174
- ...baseConfig,
175
- url: tool.serverUrl,
176
- headers: {
177
- ...tool.headers,
178
- ...credentialHeaders,
179
- },
180
- };
181
- return httpConfig;
182
- }
183
- return baseConfig;
184
- }
185
- }
186
- //# sourceMappingURL=CredentialStuffer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CredentialStuffer.js","sourceRoot":"","sources":["../../src/credential-stuffer/CredentialStuffer.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from './CredentialStuffer';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/credential-stuffer/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './CredentialStuffer';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/credential-stuffer/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=agentDataComponents.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agentDataComponents.d.ts","sourceRoot":"","sources":["../../src/data-access/agentDataComponents.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=agentDataComponents.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agentDataComponents.js","sourceRoot":"","sources":["../../src/data-access/agentDataComponents.ts"],"names":[],"mappings":""}