@inkeep/agents-core 0.1.3 → 0.1.6

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 (285) hide show
  1. package/SUPPLEMENTAL_TERMS.md +40 -0
  2. package/dist/chunk-H2F72PDA.js +15 -0
  3. package/dist/chunk-M4JXMAG7.js +822 -0
  4. package/dist/chunk-MKBO26DX.js +9 -0
  5. package/dist/chunk-RZPLS4MU.js +676 -0
  6. package/dist/chunk-SVGQSPW4.js +24 -0
  7. package/dist/client-exports.cjs +246 -0
  8. package/dist/client-exports.d.cts +315 -0
  9. package/dist/client-exports.d.ts +64 -49
  10. package/dist/client-exports.js +201 -246
  11. package/dist/db/schema.cjs +819 -0
  12. package/dist/db/schema.d.cts +8 -0
  13. package/dist/db/schema.d.ts +8 -4337
  14. package/dist/db/schema.js +1 -696
  15. package/dist/entities-CNJaf-rG.d.cts +7849 -0
  16. package/dist/entities-CNJaf-rG.d.ts +7849 -0
  17. package/dist/index.cjs +9647 -0
  18. package/dist/index.d.cts +3991 -0
  19. package/dist/index.d.ts +3991 -12
  20. package/dist/index.js +7646 -13
  21. package/dist/schema-DFDqtBpV.d.ts +4401 -0
  22. package/dist/schema-Dbc3UMpd.d.cts +4401 -0
  23. package/dist/types/index.cjs +45 -0
  24. package/dist/types/index.d.cts +125 -0
  25. package/dist/types/index.d.ts +125 -5
  26. package/dist/types/index.js +2 -6
  27. package/dist/validation/index.cjs +1642 -0
  28. package/dist/validation/index.d.cts +64 -0
  29. package/dist/validation/index.d.ts +64 -4
  30. package/dist/validation/index.js +1 -5
  31. package/package.json +6 -4
  32. package/dist/__tests__/integration/helpers.d.ts +0 -5
  33. package/dist/__tests__/integration/helpers.d.ts.map +0 -1
  34. package/dist/__tests__/integration/helpers.js +0 -37
  35. package/dist/__tests__/integration/helpers.js.map +0 -1
  36. package/dist/__tests__/setup.d.ts +0 -3
  37. package/dist/__tests__/setup.d.ts.map +0 -1
  38. package/dist/__tests__/setup.js +0 -29
  39. package/dist/__tests__/setup.js.map +0 -1
  40. package/dist/client-exports.d.ts.map +0 -1
  41. package/dist/client-exports.js.map +0 -1
  42. package/dist/context/ContextConfig.d.ts +0 -54
  43. package/dist/context/ContextConfig.d.ts.map +0 -1
  44. package/dist/context/ContextConfig.js +0 -302
  45. package/dist/context/ContextConfig.js.map +0 -1
  46. package/dist/context/ContextFetcher.d.ts +0 -64
  47. package/dist/context/ContextFetcher.d.ts.map +0 -1
  48. package/dist/context/ContextFetcher.js +0 -325
  49. package/dist/context/ContextFetcher.js.map +0 -1
  50. package/dist/context/ContextResolver.d.ts +0 -52
  51. package/dist/context/ContextResolver.d.ts.map +0 -1
  52. package/dist/context/ContextResolver.js +0 -298
  53. package/dist/context/ContextResolver.js.map +0 -1
  54. package/dist/context/TemplateEngine.d.ts +0 -46
  55. package/dist/context/TemplateEngine.d.ts.map +0 -1
  56. package/dist/context/TemplateEngine.js +0 -175
  57. package/dist/context/TemplateEngine.js.map +0 -1
  58. package/dist/context/context.d.ts +0 -8
  59. package/dist/context/context.d.ts.map +0 -1
  60. package/dist/context/context.js +0 -157
  61. package/dist/context/context.js.map +0 -1
  62. package/dist/context/contextCache.d.ts +0 -50
  63. package/dist/context/contextCache.d.ts.map +0 -1
  64. package/dist/context/contextCache.js +0 -175
  65. package/dist/context/contextCache.js.map +0 -1
  66. package/dist/context/index.d.ts +0 -11
  67. package/dist/context/index.d.ts.map +0 -1
  68. package/dist/context/index.js +0 -8
  69. package/dist/context/index.js.map +0 -1
  70. package/dist/credential-stores/CredentialStoreRegistry.d.ts +0 -39
  71. package/dist/credential-stores/CredentialStoreRegistry.d.ts.map +0 -1
  72. package/dist/credential-stores/CredentialStoreRegistry.js +0 -65
  73. package/dist/credential-stores/CredentialStoreRegistry.js.map +0 -1
  74. package/dist/credential-stores/defaults.d.ts +0 -6
  75. package/dist/credential-stores/defaults.d.ts.map +0 -1
  76. package/dist/credential-stores/defaults.js +0 -22
  77. package/dist/credential-stores/defaults.js.map +0 -1
  78. package/dist/credential-stores/index.d.ts +0 -6
  79. package/dist/credential-stores/index.d.ts.map +0 -1
  80. package/dist/credential-stores/index.js +0 -6
  81. package/dist/credential-stores/index.js.map +0 -1
  82. package/dist/credential-stores/keychain-store.d.ts +0 -100
  83. package/dist/credential-stores/keychain-store.d.ts.map +0 -1
  84. package/dist/credential-stores/keychain-store.js +0 -225
  85. package/dist/credential-stores/keychain-store.js.map +0 -1
  86. package/dist/credential-stores/memory-store.d.ts +0 -39
  87. package/dist/credential-stores/memory-store.d.ts.map +0 -1
  88. package/dist/credential-stores/memory-store.js +0 -58
  89. package/dist/credential-stores/memory-store.js.map +0 -1
  90. package/dist/credential-stores/nango-store.d.ts +0 -59
  91. package/dist/credential-stores/nango-store.d.ts.map +0 -1
  92. package/dist/credential-stores/nango-store.js +0 -264
  93. package/dist/credential-stores/nango-store.js.map +0 -1
  94. package/dist/credential-stuffer/CredentialStuffer.d.ts +0 -80
  95. package/dist/credential-stuffer/CredentialStuffer.d.ts.map +0 -1
  96. package/dist/credential-stuffer/CredentialStuffer.js +0 -186
  97. package/dist/credential-stuffer/CredentialStuffer.js.map +0 -1
  98. package/dist/credential-stuffer/index.d.ts +0 -2
  99. package/dist/credential-stuffer/index.d.ts.map +0 -1
  100. package/dist/credential-stuffer/index.js +0 -2
  101. package/dist/credential-stuffer/index.js.map +0 -1
  102. package/dist/data-access/agentDataComponents.d.ts +0 -1
  103. package/dist/data-access/agentDataComponents.d.ts.map +0 -1
  104. package/dist/data-access/agentDataComponents.js +0 -2
  105. package/dist/data-access/agentDataComponents.js.map +0 -1
  106. package/dist/data-access/agentGraphs.d.ts +0 -406
  107. package/dist/data-access/agentGraphs.d.ts.map +0 -1
  108. package/dist/data-access/agentGraphs.js +0 -551
  109. package/dist/data-access/agentGraphs.js.map +0 -1
  110. package/dist/data-access/agentRelations.d.ts +0 -456
  111. package/dist/data-access/agentRelations.d.ts.map +0 -1
  112. package/dist/data-access/agentRelations.js +0 -471
  113. package/dist/data-access/agentRelations.js.map +0 -1
  114. package/dist/data-access/agents.d.ts +0 -218
  115. package/dist/data-access/agents.d.ts.map +0 -1
  116. package/dist/data-access/agents.js +0 -130
  117. package/dist/data-access/agents.js.map +0 -1
  118. package/dist/data-access/apiKeys.d.ts +0 -114
  119. package/dist/data-access/apiKeys.d.ts.map +0 -1
  120. package/dist/data-access/apiKeys.js +0 -185
  121. package/dist/data-access/apiKeys.js.map +0 -1
  122. package/dist/data-access/artifactComponents.d.ts +0 -152
  123. package/dist/data-access/artifactComponents.d.ts.map +0 -1
  124. package/dist/data-access/artifactComponents.js +0 -214
  125. package/dist/data-access/artifactComponents.js.map +0 -1
  126. package/dist/data-access/contextCache.d.ts +0 -68
  127. package/dist/data-access/contextCache.d.ts.map +0 -1
  128. package/dist/data-access/contextCache.js +0 -160
  129. package/dist/data-access/contextCache.js.map +0 -1
  130. package/dist/data-access/contextConfigs.d.ts +0 -110
  131. package/dist/data-access/contextConfigs.d.ts.map +0 -1
  132. package/dist/data-access/contextConfigs.js +0 -156
  133. package/dist/data-access/contextConfigs.js.map +0 -1
  134. package/dist/data-access/conversations.d.ts +0 -125
  135. package/dist/data-access/conversations.d.ts.map +0 -1
  136. package/dist/data-access/conversations.js +0 -244
  137. package/dist/data-access/conversations.js.map +0 -1
  138. package/dist/data-access/credentialReferences.d.ts +0 -86
  139. package/dist/data-access/credentialReferences.d.ts.map +0 -1
  140. package/dist/data-access/credentialReferences.js +0 -175
  141. package/dist/data-access/credentialReferences.js.map +0 -1
  142. package/dist/data-access/dataComponents.d.ts +0 -129
  143. package/dist/data-access/dataComponents.d.ts.map +0 -1
  144. package/dist/data-access/dataComponents.js +0 -213
  145. package/dist/data-access/dataComponents.js.map +0 -1
  146. package/dist/data-access/externalAgents.d.ts +0 -83
  147. package/dist/data-access/externalAgents.d.ts.map +0 -1
  148. package/dist/data-access/externalAgents.js +0 -163
  149. package/dist/data-access/externalAgents.js.map +0 -1
  150. package/dist/data-access/graphFull.d.ts +0 -32
  151. package/dist/data-access/graphFull.d.ts.map +0 -1
  152. package/dist/data-access/graphFull.js +0 -996
  153. package/dist/data-access/graphFull.js.map +0 -1
  154. package/dist/data-access/index.d.ts +0 -21
  155. package/dist/data-access/index.d.ts.map +0 -1
  156. package/dist/data-access/index.js +0 -22
  157. package/dist/data-access/index.js.map +0 -1
  158. package/dist/data-access/ledgerArtifacts.d.ts +0 -49
  159. package/dist/data-access/ledgerArtifacts.d.ts.map +0 -1
  160. package/dist/data-access/ledgerArtifacts.js +0 -112
  161. package/dist/data-access/ledgerArtifacts.js.map +0 -1
  162. package/dist/data-access/messages.d.ts +0 -209
  163. package/dist/data-access/messages.d.ts.map +0 -1
  164. package/dist/data-access/messages.js +0 -100
  165. package/dist/data-access/messages.js.map +0 -1
  166. package/dist/data-access/projects.d.ts +0 -67
  167. package/dist/data-access/projects.d.ts.map +0 -1
  168. package/dist/data-access/projects.js +0 -337
  169. package/dist/data-access/projects.js.map +0 -1
  170. package/dist/data-access/tasks.d.ts +0 -37
  171. package/dist/data-access/tasks.d.ts.map +0 -1
  172. package/dist/data-access/tasks.js +0 -40
  173. package/dist/data-access/tasks.js.map +0 -1
  174. package/dist/data-access/tools.d.ts +0 -277
  175. package/dist/data-access/tools.d.ts.map +0 -1
  176. package/dist/data-access/tools.js +0 -183
  177. package/dist/data-access/tools.js.map +0 -1
  178. package/dist/data-access/validation.d.ts +0 -17
  179. package/dist/data-access/validation.d.ts.map +0 -1
  180. package/dist/data-access/validation.js +0 -52
  181. package/dist/data-access/validation.js.map +0 -1
  182. package/dist/db/clean.d.ts +0 -6
  183. package/dist/db/clean.d.ts.map +0 -1
  184. package/dist/db/clean.js +0 -81
  185. package/dist/db/clean.js.map +0 -1
  186. package/dist/db/client.d.ts +0 -19
  187. package/dist/db/client.d.ts.map +0 -1
  188. package/dist/db/client.js +0 -24
  189. package/dist/db/client.js.map +0 -1
  190. package/dist/db/schema.d.ts.map +0 -1
  191. package/dist/db/schema.js.map +0 -1
  192. package/dist/db/test-client.d.ts +0 -25
  193. package/dist/db/test-client.d.ts.map +0 -1
  194. package/dist/db/test-client.js +0 -136
  195. package/dist/db/test-client.js.map +0 -1
  196. package/dist/env.d.ts +0 -19
  197. package/dist/env.d.ts.map +0 -1
  198. package/dist/env.js +0 -49
  199. package/dist/env.js.map +0 -1
  200. package/dist/index.d.ts.map +0 -1
  201. package/dist/index.js.map +0 -1
  202. package/dist/middleware/contextValidation.d.ts +0 -49
  203. package/dist/middleware/contextValidation.d.ts.map +0 -1
  204. package/dist/middleware/contextValidation.js +0 -473
  205. package/dist/middleware/contextValidation.js.map +0 -1
  206. package/dist/middleware/index.d.ts +0 -2
  207. package/dist/middleware/index.d.ts.map +0 -1
  208. package/dist/middleware/index.js +0 -2
  209. package/dist/middleware/index.js.map +0 -1
  210. package/dist/server/BaseServer.d.ts +0 -83
  211. package/dist/server/BaseServer.d.ts.map +0 -1
  212. package/dist/server/BaseServer.js +0 -218
  213. package/dist/server/BaseServer.js.map +0 -1
  214. package/dist/types/a2a.d.ts +0 -373
  215. package/dist/types/a2a.d.ts.map +0 -1
  216. package/dist/types/a2a.js +0 -14
  217. package/dist/types/a2a.js.map +0 -1
  218. package/dist/types/entities.d.ts +0 -147
  219. package/dist/types/entities.d.ts.map +0 -1
  220. package/dist/types/entities.js +0 -2
  221. package/dist/types/entities.js.map +0 -1
  222. package/dist/types/index.d.ts.map +0 -1
  223. package/dist/types/index.js.map +0 -1
  224. package/dist/types/server.d.ts +0 -116
  225. package/dist/types/server.d.ts.map +0 -1
  226. package/dist/types/server.js +0 -2
  227. package/dist/types/server.js.map +0 -1
  228. package/dist/types/utility.d.ts +0 -213
  229. package/dist/types/utility.d.ts.map +0 -1
  230. package/dist/types/utility.js +0 -9
  231. package/dist/types/utility.js.map +0 -1
  232. package/dist/utils/apiKeys.d.ts +0 -32
  233. package/dist/utils/apiKeys.d.ts.map +0 -1
  234. package/dist/utils/apiKeys.js +0 -117
  235. package/dist/utils/apiKeys.js.map +0 -1
  236. package/dist/utils/auth-detection.d.ts +0 -23
  237. package/dist/utils/auth-detection.d.ts.map +0 -1
  238. package/dist/utils/auth-detection.js +0 -148
  239. package/dist/utils/auth-detection.js.map +0 -1
  240. package/dist/utils/credential-store-utils.d.ts +0 -11
  241. package/dist/utils/credential-store-utils.d.ts.map +0 -1
  242. package/dist/utils/credential-store-utils.js +0 -19
  243. package/dist/utils/credential-store-utils.js.map +0 -1
  244. package/dist/utils/error.d.ts +0 -526
  245. package/dist/utils/error.d.ts.map +0 -1
  246. package/dist/utils/error.js +0 -282
  247. package/dist/utils/error.js.map +0 -1
  248. package/dist/utils/execution.d.ts +0 -18
  249. package/dist/utils/execution.d.ts.map +0 -1
  250. package/dist/utils/execution.js +0 -25
  251. package/dist/utils/execution.js.map +0 -1
  252. package/dist/utils/index.d.ts +0 -9
  253. package/dist/utils/index.d.ts.map +0 -1
  254. package/dist/utils/index.js +0 -9
  255. package/dist/utils/index.js.map +0 -1
  256. package/dist/utils/logger.d.ts +0 -79
  257. package/dist/utils/logger.d.ts.map +0 -1
  258. package/dist/utils/logger.js +0 -102
  259. package/dist/utils/logger.js.map +0 -1
  260. package/dist/utils/logging.d.ts +0 -11
  261. package/dist/utils/logging.d.ts.map +0 -1
  262. package/dist/utils/logging.js +0 -6
  263. package/dist/utils/logging.js.map +0 -1
  264. package/dist/utils/mcp-client.d.ts +0 -48
  265. package/dist/utils/mcp-client.d.ts.map +0 -1
  266. package/dist/utils/mcp-client.js +0 -171
  267. package/dist/utils/mcp-client.js.map +0 -1
  268. package/dist/utils/tracer.d.ts +0 -24
  269. package/dist/utils/tracer.d.ts.map +0 -1
  270. package/dist/utils/tracer.js +0 -110
  271. package/dist/utils/tracer.js.map +0 -1
  272. package/dist/validation/graphFull.d.ts +0 -36
  273. package/dist/validation/graphFull.d.ts.map +0 -1
  274. package/dist/validation/graphFull.js +0 -128
  275. package/dist/validation/graphFull.js.map +0 -1
  276. package/dist/validation/id-validation.d.ts +0 -38
  277. package/dist/validation/id-validation.d.ts.map +0 -1
  278. package/dist/validation/id-validation.js +0 -60
  279. package/dist/validation/id-validation.js.map +0 -1
  280. package/dist/validation/index.d.ts.map +0 -1
  281. package/dist/validation/index.js.map +0 -1
  282. package/dist/validation/schemas.d.ts +0 -7238
  283. package/dist/validation/schemas.d.ts.map +0 -1
  284. package/dist/validation/schemas.js +0 -575
  285. 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":""}