@inkeep/agents-core 0.41.2 → 0.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api-client/base-client.d.ts +87 -8
- package/dist/api-client/base-client.js +174 -1
- package/dist/api-client/eval-api-client.d.ts +47 -0
- package/dist/api-client/eval-api-client.js +65 -0
- package/dist/api-client/index.d.ts +4 -0
- package/dist/api-client/index.js +5 -0
- package/dist/api-client/manage-api-client.d.ts +34 -0
- package/dist/api-client/manage-api-client.js +104 -0
- package/dist/auth/auth.d.ts +86 -20
- package/dist/auth/auth.js +55 -1
- package/dist/auth/authz/client.d.ts +81 -0
- package/dist/auth/authz/client.js +189 -0
- package/dist/auth/authz/config.d.ts +76 -0
- package/dist/auth/authz/config.js +76 -0
- package/dist/auth/authz/index.d.ts +5 -0
- package/dist/auth/authz/index.js +6 -0
- package/dist/auth/authz/permissions.d.ts +57 -0
- package/dist/auth/authz/permissions.js +83 -0
- package/dist/auth/authz/sync.d.ts +85 -0
- package/dist/auth/authz/sync.js +237 -0
- package/dist/auth/permissions.d.ts +13 -13
- package/dist/auth/permissions.js +2 -181
- package/dist/client-exports.d.ts +8 -3
- package/dist/client-exports.js +3 -2
- package/dist/constants/context-breakdown.d.ts +61 -0
- package/dist/constants/context-breakdown.js +124 -0
- package/dist/constants/otel-attributes.d.ts +4 -0
- package/dist/constants/otel-attributes.js +4 -0
- package/dist/context/ContextConfig.d.ts +2 -2
- package/dist/context/ContextConfig.js +3 -3
- package/dist/context/TemplateEngine.js +0 -1
- package/dist/context/index.d.ts +1 -5
- package/dist/context/index.js +1 -5
- package/dist/credential-stuffer/CredentialStuffer.d.ts +1 -1
- package/dist/data-access/index.d.ts +34 -26
- package/dist/data-access/index.js +34 -26
- package/dist/data-access/manage/agentFull.d.ts +36 -0
- package/dist/data-access/{agentFull.js → manage/agentFull.js} +205 -7
- package/dist/data-access/{agents.d.ts → manage/agents.d.ts} +23 -22
- package/dist/data-access/{agents.js → manage/agents.js} +52 -7
- package/dist/data-access/{artifactComponents.d.ts → manage/artifactComponents.d.ts} +21 -21
- package/dist/data-access/{artifactComponents.js → manage/artifactComponents.js} +5 -5
- package/dist/data-access/{contextConfigs.d.ts → manage/contextConfigs.d.ts} +14 -14
- package/dist/data-access/{contextConfigs.js → manage/contextConfigs.js} +3 -3
- package/dist/data-access/{credentialReferences.d.ts → manage/credentialReferences.d.ts} +17 -17
- package/dist/data-access/{credentialReferences.js → manage/credentialReferences.js} +2 -2
- package/dist/data-access/{dataComponents.d.ts → manage/dataComponents.d.ts} +20 -20
- package/dist/data-access/{dataComponents.js → manage/dataComponents.js} +7 -7
- package/dist/data-access/manage/evalConfig.d.ts +221 -0
- package/dist/data-access/manage/evalConfig.js +275 -0
- package/dist/data-access/{externalAgents.d.ts → manage/externalAgents.d.ts} +16 -16
- package/dist/data-access/{externalAgents.js → manage/externalAgents.js} +2 -2
- package/dist/data-access/{functionTools.d.ts → manage/functionTools.d.ts} +65 -15
- package/dist/data-access/{functionTools.js → manage/functionTools.js} +90 -8
- package/dist/data-access/{functions.d.ts → manage/functions.d.ts} +9 -9
- package/dist/data-access/{functions.js → manage/functions.js} +3 -3
- package/dist/data-access/manage/projectFull.d.ts +38 -0
- package/dist/data-access/{projectFull.js → manage/projectFull.js} +64 -65
- package/dist/data-access/manage/projectLifecycle.d.ts +119 -0
- package/dist/data-access/manage/projectLifecycle.js +234 -0
- package/dist/data-access/manage/projects.d.ts +75 -0
- package/dist/data-access/{projects.js → manage/projects.js} +15 -16
- package/dist/data-access/{subAgentExternalAgentRelations.d.ts → manage/subAgentExternalAgentRelations.d.ts} +19 -19
- package/dist/data-access/{subAgentExternalAgentRelations.js → manage/subAgentExternalAgentRelations.js} +2 -2
- package/dist/data-access/{subAgentRelations.d.ts → manage/subAgentRelations.d.ts} +29 -29
- package/dist/data-access/{subAgentRelations.js → manage/subAgentRelations.js} +3 -3
- package/dist/data-access/{subAgentTeamAgentRelations.d.ts → manage/subAgentTeamAgentRelations.d.ts} +19 -19
- package/dist/data-access/{subAgentTeamAgentRelations.js → manage/subAgentTeamAgentRelations.js} +2 -2
- package/dist/data-access/{subAgents.d.ts → manage/subAgents.d.ts} +13 -13
- package/dist/data-access/{subAgents.js → manage/subAgents.js} +4 -4
- package/dist/data-access/{tools.d.ts → manage/tools.d.ts} +26 -19
- package/dist/data-access/{tools.js → manage/tools.js} +57 -35
- package/dist/data-access/manage/triggers.d.ts +80 -0
- package/dist/data-access/manage/triggers.js +81 -0
- package/dist/data-access/{apiKeys.d.ts → runtime/apiKeys.d.ts} +17 -17
- package/dist/data-access/{apiKeys.js → runtime/apiKeys.js} +3 -3
- package/dist/data-access/runtime/cascade-delete.d.ts +77 -0
- package/dist/data-access/runtime/cascade-delete.js +111 -0
- package/dist/data-access/{contextCache.d.ts → runtime/contextCache.d.ts} +13 -13
- package/dist/data-access/{contextCache.js → runtime/contextCache.js} +5 -5
- package/dist/data-access/{conversations.d.ts → runtime/conversations.d.ts} +68 -19
- package/dist/data-access/{conversations.js → runtime/conversations.js} +13 -7
- package/dist/data-access/runtime/evalRuns.d.ts +120 -0
- package/dist/data-access/runtime/evalRuns.js +168 -0
- package/dist/data-access/{ledgerArtifacts.d.ts → runtime/ledgerArtifacts.d.ts} +13 -13
- package/dist/data-access/{ledgerArtifacts.js → runtime/ledgerArtifacts.js} +3 -3
- package/dist/data-access/{messages.d.ts → runtime/messages.d.ts} +15 -15
- package/dist/data-access/{messages.js → runtime/messages.js} +2 -2
- package/dist/data-access/{organizations.d.ts → runtime/organizations.d.ts} +16 -7
- package/dist/data-access/{organizations.js → runtime/organizations.js} +15 -3
- package/dist/data-access/runtime/projects.d.ts +62 -0
- package/dist/data-access/runtime/projects.js +90 -0
- package/dist/data-access/runtime/tasks.d.ts +55 -0
- package/dist/data-access/{tasks.js → runtime/tasks.js} +2 -2
- package/dist/data-access/runtime/triggerInvocations.d.ts +62 -0
- package/dist/data-access/runtime/triggerInvocations.js +54 -0
- package/dist/data-access/runtime/users.d.ts +19 -0
- package/dist/data-access/{users.js → runtime/users.js} +2 -2
- package/dist/data-access/validation.d.ts +4 -4
- package/dist/data-access/validation.js +1 -1
- package/dist/db/clean.d.ts +8 -4
- package/dist/db/clean.js +14 -105
- package/dist/db/delete.d.ts +1 -1
- package/dist/db/delete.js +7 -10
- package/dist/db/manage/dolt-cleanup.d.ts +51 -0
- package/dist/db/manage/dolt-cleanup.js +132 -0
- package/dist/db/manage/manage-client.d.ts +26 -0
- package/dist/db/manage/manage-client.js +68 -0
- package/dist/db/{schema.d.ts → manage/manage-schema.d.ts} +1459 -1285
- package/dist/db/{schema.js → manage/manage-schema.js} +433 -341
- package/dist/db/manage/test-manage-client.d.ts +27 -0
- package/dist/db/manage/test-manage-client.js +68 -0
- package/dist/db/runtime/runtime-client.d.ts +20 -0
- package/dist/db/runtime/runtime-client.js +30 -0
- package/dist/db/runtime/runtime-schema.d.ts +2834 -0
- package/dist/db/runtime/runtime-schema.js +483 -0
- package/dist/db/runtime/test-runtime-client.d.ts +27 -0
- package/dist/db/{test-client.js → runtime/test-runtime-client.js} +11 -25
- package/dist/dolt/branch.d.ts +62 -0
- package/dist/dolt/branch.js +82 -0
- package/dist/dolt/branches-api.d.ts +108 -0
- package/dist/dolt/branches-api.js +162 -0
- package/dist/dolt/commit.d.ts +94 -0
- package/dist/dolt/commit.js +103 -0
- package/dist/dolt/diff.d.ts +27 -0
- package/dist/dolt/diff.js +21 -0
- package/dist/dolt/index.d.ts +10 -0
- package/dist/dolt/index.js +11 -0
- package/dist/dolt/merge.d.ts +63 -0
- package/dist/dolt/merge.js +81 -0
- package/dist/dolt/migrate-all-branches.d.ts +4 -0
- package/dist/dolt/migrate-all-branches.js +78 -0
- package/dist/dolt/migrate-dolt.d.ts +1 -0
- package/dist/dolt/migrate-dolt.js +22 -0
- package/dist/dolt/ref-helpers.d.ts +19 -0
- package/dist/dolt/ref-helpers.js +65 -0
- package/dist/dolt/ref-middleware.d.ts +82 -0
- package/dist/dolt/ref-middleware.js +217 -0
- package/dist/dolt/ref-scope.d.ts +101 -0
- package/dist/dolt/ref-scope.js +231 -0
- package/dist/dolt/schema-sync.d.ts +134 -0
- package/dist/dolt/schema-sync.js +246 -0
- package/dist/env.d.ts +6 -4
- package/dist/env.js +3 -2
- package/dist/index.d.ts +71 -44
- package/dist/index.js +74 -47
- package/dist/types/entities.d.ts +81 -2
- package/dist/types/index.d.ts +3 -3
- package/dist/types/utility.d.ts +45 -4
- package/dist/utils/JsonTransformer.d.ts +44 -0
- package/dist/utils/JsonTransformer.js +112 -0
- package/dist/utils/apiKeys.d.ts +5 -1
- package/dist/utils/apiKeys.js +11 -1
- package/dist/utils/colors.d.ts +34 -0
- package/dist/utils/colors.js +49 -0
- package/dist/utils/credential-store-utils.d.ts +1 -1
- package/dist/utils/format-messages.d.ts +1 -1
- package/dist/utils/index.d.ts +7 -3
- package/dist/utils/index.js +7 -3
- package/dist/utils/internal-service-auth.d.ts +79 -0
- package/dist/utils/internal-service-auth.js +140 -0
- package/dist/utils/jwt-helpers.d.ts +56 -0
- package/dist/utils/jwt-helpers.js +90 -0
- package/dist/utils/service-token-auth.d.ts +9 -27
- package/dist/utils/service-token-auth.js +48 -96
- package/dist/utils/template-interpolation.d.ts +22 -0
- package/dist/utils/template-interpolation.js +62 -0
- package/dist/utils/third-party-mcp-servers/composio-client.js +23 -23
- package/dist/utils/trigger-auth.d.ts +62 -0
- package/dist/utils/trigger-auth.js +125 -0
- package/dist/validation/agentFull.js +2 -4
- package/dist/validation/dolt-schemas.d.ts +49 -0
- package/dist/validation/dolt-schemas.js +44 -0
- package/dist/validation/drizzle-schema-helpers.d.ts +4 -26
- package/dist/validation/drizzle-schema-helpers.js +5 -151
- package/dist/validation/index.d.ts +4 -3
- package/dist/validation/index.js +3 -2
- package/dist/validation/schemas.d.ts +17647 -4789
- package/dist/validation/schemas.js +328 -11
- package/drizzle/manage/0000_tearful_rhodey.sql +414 -0
- package/drizzle/manage/0001_broken_wendell_vaughn.sql +19 -0
- package/drizzle/manage/0002_bent_sunfire.sql +1 -0
- package/drizzle/manage/meta/0000_snapshot.json +2987 -0
- package/drizzle/manage/meta/0001_snapshot.json +3115 -0
- package/drizzle/manage/meta/0002_snapshot.json +3115 -0
- package/drizzle/manage/meta/_journal.json +27 -0
- package/drizzle/runtime/0008_silly_preak.sql +127 -0
- package/drizzle/runtime/0009_freezing_leo.sql +17 -0
- package/drizzle/runtime/meta/0008_snapshot.json +2263 -0
- package/drizzle/runtime/meta/0009_snapshot.json +2397 -0
- package/drizzle/{meta → runtime/meta}/_journal.json +14 -0
- package/package.json +48 -15
- package/dist/context/ContextFetcher.d.ts +0 -73
- package/dist/context/ContextFetcher.js +0 -291
- package/dist/context/ContextResolver.d.ts +0 -60
- package/dist/context/ContextResolver.js +0 -278
- package/dist/context/context.d.ts +0 -27
- package/dist/context/context.js +0 -128
- package/dist/context/contextCache.d.ts +0 -58
- package/dist/context/contextCache.js +0 -177
- package/dist/data-access/agentFull.d.ts +0 -33
- package/dist/data-access/projectFull.d.ts +0 -32
- package/dist/data-access/projects.d.ts +0 -71
- package/dist/data-access/tasks.d.ts +0 -45
- package/dist/data-access/users.d.ts +0 -19
- package/dist/db/client.d.ts +0 -20
- package/dist/db/client.js +0 -28
- package/dist/db/test-client.d.ts +0 -31
- package/dist/middleware/contextValidation.d.ts +0 -46
- package/dist/middleware/contextValidation.js +0 -280
- package/dist/middleware/index.d.ts +0 -2
- package/dist/middleware/index.js +0 -3
- package/dist/utils/execution.d.ts +0 -22
- package/dist/utils/execution.js +0 -25
- /package/drizzle/{0000_exotic_mysterio.sql → runtime/0000_exotic_mysterio.sql} +0 -0
- /package/drizzle/{0001_calm_sheva_callister.sql → runtime/0001_calm_sheva_callister.sql} +0 -0
- /package/drizzle/{0002_puzzling_goblin_queen.sql → runtime/0002_puzzling_goblin_queen.sql} +0 -0
- /package/drizzle/{0003_sweet_human_robot.sql → runtime/0003_sweet_human_robot.sql} +0 -0
- /package/drizzle/{0004_cuddly_shooting_star.sql → runtime/0004_cuddly_shooting_star.sql} +0 -0
- /package/drizzle/{0005_reflective_starfox.sql → runtime/0005_reflective_starfox.sql} +0 -0
- /package/drizzle/{0006_stale_thaddeus_ross.sql → runtime/0006_stale_thaddeus_ross.sql} +0 -0
- /package/drizzle/{0007_slim_karma.sql → runtime/0007_slim_karma.sql} +0 -0
- /package/drizzle/{meta → runtime/meta}/0000_snapshot.json +0 -0
- /package/drizzle/{meta → runtime/meta}/0001_snapshot.json +0 -0
- /package/drizzle/{meta → runtime/meta}/0003_snapshot.json +0 -0
- /package/drizzle/{meta → runtime/meta}/0005_snapshot.json +0 -0
- /package/drizzle/{meta → runtime/meta}/0006_snapshot.json +0 -0
- /package/drizzle/{meta → runtime/meta}/0007_snapshot.json +0 -0
|
@@ -57,6 +57,20 @@
|
|
|
57
57
|
"when": 1767651466654,
|
|
58
58
|
"tag": "0007_slim_karma",
|
|
59
59
|
"breakpoints": true
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"idx": 8,
|
|
63
|
+
"version": "7",
|
|
64
|
+
"when": 1768240742352,
|
|
65
|
+
"tag": "0008_silly_preak",
|
|
66
|
+
"breakpoints": true
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"idx": 9,
|
|
70
|
+
"version": "7",
|
|
71
|
+
"when": 1768646273355,
|
|
72
|
+
"tag": "0009_freezing_leo",
|
|
73
|
+
"breakpoints": true
|
|
60
74
|
}
|
|
61
75
|
]
|
|
62
76
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inkeep/agents-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.42.0",
|
|
4
4
|
"description": "Agents Core contains the database schema, types, and validation schemas for Inkeep Agent Framework, along with core components.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
@@ -10,13 +10,29 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"default": "./dist/index.js"
|
|
12
12
|
},
|
|
13
|
-
"./schema": {
|
|
14
|
-
"types": "./dist/db/schema.d.ts",
|
|
15
|
-
"import": "./dist/db/schema.js"
|
|
13
|
+
"./db/manage-schema": {
|
|
14
|
+
"types": "./dist/db/manage/manage-schema.d.ts",
|
|
15
|
+
"import": "./dist/db/manage/manage-schema.js"
|
|
16
16
|
},
|
|
17
|
-
"./db/schema": {
|
|
18
|
-
"types": "./dist/db/schema.d.ts",
|
|
19
|
-
"import": "./dist/db/schema.js"
|
|
17
|
+
"./db/run-schema": {
|
|
18
|
+
"types": "./dist/db/runtime/runtime-schema.d.ts",
|
|
19
|
+
"import": "./dist/db/runtime/runtime-schema.js"
|
|
20
|
+
},
|
|
21
|
+
"./db/manage-client": {
|
|
22
|
+
"types": "./dist/db/manage/manage-client.d.ts",
|
|
23
|
+
"import": "./dist/db/manage/manage-client.js"
|
|
24
|
+
},
|
|
25
|
+
"./db/test-manage-client": {
|
|
26
|
+
"types": "./dist/db/manage/test-manage-client.d.ts",
|
|
27
|
+
"import": "./dist/db/manage/test-manage-client.js"
|
|
28
|
+
},
|
|
29
|
+
"./db/test-runtime-client": {
|
|
30
|
+
"types": "./dist/db/runtime/test-runtime-client.d.ts",
|
|
31
|
+
"import": "./dist/db/runtime/test-runtime-client.js"
|
|
32
|
+
},
|
|
33
|
+
"./db/run-client": {
|
|
34
|
+
"types": "./dist/db/runtime/runtime-client.d.ts",
|
|
35
|
+
"import": "./dist/db/runtime/runtime-client.js"
|
|
20
36
|
},
|
|
21
37
|
"./types": {
|
|
22
38
|
"types": "./dist/types/index.d.ts",
|
|
@@ -66,16 +82,21 @@
|
|
|
66
82
|
"types": "./dist/auth/permissions.d.ts",
|
|
67
83
|
"import": "./dist/auth/permissions.js"
|
|
68
84
|
},
|
|
85
|
+
"./auth/authz": {
|
|
86
|
+
"types": "./dist/auth/authz/index.d.ts",
|
|
87
|
+
"import": "./dist/auth/authz/index.js"
|
|
88
|
+
},
|
|
69
89
|
"./drizzle": "./drizzle/",
|
|
70
90
|
"./package.json": "./package.json"
|
|
71
91
|
},
|
|
72
92
|
"dependencies": {
|
|
73
|
-
"@ai-sdk/azure": "^3.0.4",
|
|
74
93
|
"@ai-sdk/anthropic": "3.0.7",
|
|
94
|
+
"@ai-sdk/azure": "^3.0.4",
|
|
75
95
|
"@ai-sdk/gateway": "3.0.9",
|
|
76
96
|
"@ai-sdk/google": "3.0.4",
|
|
77
97
|
"@ai-sdk/openai": "3.0.7",
|
|
78
98
|
"@ai-sdk/openai-compatible": "2.0.4",
|
|
99
|
+
"@authzed/authzed-node": "^1.6.1",
|
|
79
100
|
"@better-auth/sso": "~1.4.10",
|
|
80
101
|
"@composio/core": "^0.2.4",
|
|
81
102
|
"@electric-sql/pglite": "^0.3.13",
|
|
@@ -95,12 +116,14 @@
|
|
|
95
116
|
"exit-hook": "^4.0.0",
|
|
96
117
|
"find-up": "^7.0.0",
|
|
97
118
|
"hono": "^4.10.4",
|
|
119
|
+
"iwanthue": "^2.0.0",
|
|
98
120
|
"jmespath": "^0.16.0",
|
|
99
121
|
"jose": "^6.1.0",
|
|
100
122
|
"nanoid": "^5.0.9",
|
|
101
123
|
"pg": "^8.16.3",
|
|
102
124
|
"pino": "^9.11.0",
|
|
103
125
|
"pino-pretty": "^13.1.1",
|
|
126
|
+
"postgres": "^3.4.8",
|
|
104
127
|
"traverse": "^0.6.10",
|
|
105
128
|
"ts-pattern": "^5.7.1"
|
|
106
129
|
},
|
|
@@ -154,8 +177,7 @@
|
|
|
154
177
|
"build": "tsdown",
|
|
155
178
|
"dev": "pnpm build --watch",
|
|
156
179
|
"test": "vitest --run",
|
|
157
|
-
"test:
|
|
158
|
-
"test:integration": "vitest --run src/__tests__/integration/",
|
|
180
|
+
"test:integration": "vitest --run --config vitest.integration.config.ts src/__tests__/integration/",
|
|
159
181
|
"test:coverage": "vitest --run --coverage",
|
|
160
182
|
"test:watch": "vitest --watch",
|
|
161
183
|
"lint": "biome lint --error-on-warnings",
|
|
@@ -164,13 +186,24 @@
|
|
|
164
186
|
"format:check": "biome format src",
|
|
165
187
|
"typecheck": "tsc --noEmit",
|
|
166
188
|
"typecheck:watch": "tsc --noEmit --watch",
|
|
167
|
-
"db:generate": "
|
|
168
|
-
"db:migrate": "
|
|
169
|
-
"db:drop": "
|
|
189
|
+
"db:generate": "pnpm db:manage:generate && pnpm db:run:generate",
|
|
190
|
+
"db:migrate": "pnpm db:manage:migrate && pnpm db:run:migrate",
|
|
191
|
+
"db:drop": "pnpm db:manage:drop && pnpm db:run:drop",
|
|
170
192
|
"db:clean": "tsx src/db/clean.ts",
|
|
171
193
|
"db:delete": "tsx src/db/delete.ts",
|
|
172
194
|
"db:reset": "pnpm db:delete && pnpm db:migrate",
|
|
173
|
-
"db:studio": "
|
|
174
|
-
"db:check": "
|
|
195
|
+
"db:studio": "echo 'Use db:manage:studio or db:run:studio'",
|
|
196
|
+
"db:check": "pnpm db:manage:check && pnpm db:run:check",
|
|
197
|
+
"db:manage:generate": "drizzle-kit generate --config=drizzle.manage.config.ts",
|
|
198
|
+
"db:manage:migrate": "tsx src/dolt/migrate-dolt.ts",
|
|
199
|
+
"db:manage:sync-all-branches": "tsx src/dolt/migrate-all-branches.ts",
|
|
200
|
+
"db:manage:drop": "drizzle-kit drop --config=drizzle.manage.config.ts",
|
|
201
|
+
"db:manage:studio": "drizzle-kit studio --config=drizzle.manage.config.ts",
|
|
202
|
+
"db:manage:check": "drizzle-kit check --config=drizzle.manage.config.ts",
|
|
203
|
+
"db:run:generate": "drizzle-kit generate --config=drizzle.run.config.ts",
|
|
204
|
+
"db:run:migrate": "drizzle-kit migrate --config=drizzle.run.config.ts",
|
|
205
|
+
"db:run:drop": "drizzle-kit drop --config=drizzle.run.config.ts",
|
|
206
|
+
"db:run:studio": "drizzle-kit studio --config=drizzle.run.config.ts",
|
|
207
|
+
"db:run:check": "drizzle-kit check --config=drizzle.run.config.ts"
|
|
175
208
|
}
|
|
176
209
|
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { CredentialStoreRegistry } from "../credential-stores/CredentialStoreRegistry.js";
|
|
2
|
-
import { TemplateContext } from "./TemplateEngine.js";
|
|
3
|
-
import { ContextFetchDefinition } from "../types/utility.js";
|
|
4
|
-
import { DatabaseClient } from "../db/client.js";
|
|
5
|
-
|
|
6
|
-
//#region src/context/ContextFetcher.d.ts
|
|
7
|
-
declare class MissingRequiredVariableError extends Error {
|
|
8
|
-
constructor(variable: string);
|
|
9
|
-
}
|
|
10
|
-
interface FetchResult {
|
|
11
|
-
data: unknown;
|
|
12
|
-
source: string;
|
|
13
|
-
durationMs: number;
|
|
14
|
-
}
|
|
15
|
-
declare class ContextFetcher {
|
|
16
|
-
private tenantId;
|
|
17
|
-
private projectId;
|
|
18
|
-
private defaultTimeout;
|
|
19
|
-
private credentialStuffer?;
|
|
20
|
-
private dbClient;
|
|
21
|
-
constructor(tenantId: string, projectId: string, dbClient: DatabaseClient, credentialStoreRegistry?: CredentialStoreRegistry, defaultTimeout?: number);
|
|
22
|
-
/**
|
|
23
|
-
* Fetch data according to a fetch definition
|
|
24
|
-
*/
|
|
25
|
-
fetch(definition: ContextFetchDefinition, context: TemplateContext): Promise<{
|
|
26
|
-
data: unknown;
|
|
27
|
-
resolvedUrl: string;
|
|
28
|
-
}>;
|
|
29
|
-
private getCredential;
|
|
30
|
-
/**
|
|
31
|
-
* Resolve template variables in fetch configuration and inject credential headers
|
|
32
|
-
*/
|
|
33
|
-
private resolveTemplateVariables;
|
|
34
|
-
/**
|
|
35
|
-
* Interpolate template variables in a string using TemplateEngine
|
|
36
|
-
*/
|
|
37
|
-
private interpolateTemplate;
|
|
38
|
-
/**
|
|
39
|
-
* Interpolate template variables in an object recursively using TemplateEngine
|
|
40
|
-
*/
|
|
41
|
-
private interpolateObjectTemplates;
|
|
42
|
-
/**
|
|
43
|
-
* Perform HTTP request
|
|
44
|
-
*/
|
|
45
|
-
private performRequest;
|
|
46
|
-
/**
|
|
47
|
-
* Transform response data using JMESPath
|
|
48
|
-
*/
|
|
49
|
-
private transformResponse;
|
|
50
|
-
/**
|
|
51
|
-
* Validate response against JSON Schema
|
|
52
|
-
*/
|
|
53
|
-
private validateResponseWithJsonSchema;
|
|
54
|
-
/**
|
|
55
|
-
* Test a fetch definition without caching
|
|
56
|
-
*/
|
|
57
|
-
test(definition: ContextFetchDefinition, context: TemplateContext): Promise<{
|
|
58
|
-
success: boolean;
|
|
59
|
-
data?: unknown;
|
|
60
|
-
resolvedUrl?: string;
|
|
61
|
-
error?: string;
|
|
62
|
-
durationMs: number;
|
|
63
|
-
}>;
|
|
64
|
-
/**
|
|
65
|
-
* Get fetcher statistics
|
|
66
|
-
*/
|
|
67
|
-
getStats(): {
|
|
68
|
-
tenantId: string;
|
|
69
|
-
defaultTimeout: number;
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
//#endregion
|
|
73
|
-
export { ContextFetcher, FetchResult, MissingRequiredVariableError };
|
|
@@ -1,291 +0,0 @@
|
|
|
1
|
-
import { getLogger } from "../utils/logger.js";
|
|
2
|
-
import { TemplateEngine } from "./TemplateEngine.js";
|
|
3
|
-
import { CredentialStuffer } from "../credential-stuffer/CredentialStuffer.js";
|
|
4
|
-
import { getCredentialReference } from "../data-access/credentialReferences.js";
|
|
5
|
-
import "../data-access/index.js";
|
|
6
|
-
import { validateAgainstJsonSchema } from "../middleware/contextValidation.js";
|
|
7
|
-
import "../middleware/index.js";
|
|
8
|
-
import jmespath from "jmespath";
|
|
9
|
-
|
|
10
|
-
//#region src/context/ContextFetcher.ts
|
|
11
|
-
const logger = getLogger("context-fetcher");
|
|
12
|
-
var MissingRequiredVariableError = class extends Error {
|
|
13
|
-
constructor(variable) {
|
|
14
|
-
super(`Missing required variable: ${variable}`);
|
|
15
|
-
this.name = "MissingRequiredVariableError";
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* GraphQL error checker - validates response for GraphQL errors and throws if found
|
|
20
|
-
*/
|
|
21
|
-
const checkGraphQLErrors = (data) => {
|
|
22
|
-
if (data && typeof data === "object" && "errors" in data) {
|
|
23
|
-
const errorObj = data;
|
|
24
|
-
if (Array.isArray(errorObj.errors) && errorObj.errors.length > 0) {
|
|
25
|
-
const agentqlErrors = errorObj.errors;
|
|
26
|
-
const errorMessage = `GraphQL request failed with ${agentqlErrors.length} errors: ${agentqlErrors.map((e) => e.message || "Unknown error").join(", ")}`;
|
|
27
|
-
throw new Error(errorMessage);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
const responseErrorCheckers = [checkGraphQLErrors];
|
|
32
|
-
var ContextFetcher = class {
|
|
33
|
-
tenantId;
|
|
34
|
-
projectId;
|
|
35
|
-
defaultTimeout;
|
|
36
|
-
credentialStuffer;
|
|
37
|
-
dbClient;
|
|
38
|
-
constructor(tenantId, projectId, dbClient, credentialStoreRegistry, defaultTimeout = 1e4) {
|
|
39
|
-
this.tenantId = tenantId;
|
|
40
|
-
this.projectId = projectId;
|
|
41
|
-
this.defaultTimeout = defaultTimeout;
|
|
42
|
-
if (credentialStoreRegistry) this.credentialStuffer = new CredentialStuffer(credentialStoreRegistry);
|
|
43
|
-
this.dbClient = dbClient;
|
|
44
|
-
logger.info({
|
|
45
|
-
tenantId: this.tenantId,
|
|
46
|
-
defaultTimeout: this.defaultTimeout,
|
|
47
|
-
hasCredentialSupport: !!this.credentialStuffer
|
|
48
|
-
}, "ContextFetcher initialized");
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Fetch data according to a fetch definition
|
|
52
|
-
*/
|
|
53
|
-
async fetch(definition, context) {
|
|
54
|
-
const startTime = Date.now();
|
|
55
|
-
logger.info({
|
|
56
|
-
definitionId: definition.id,
|
|
57
|
-
url: definition.fetchConfig.url
|
|
58
|
-
}, "Starting context fetch");
|
|
59
|
-
try {
|
|
60
|
-
const resolvedConfig = await this.resolveTemplateVariables(definition.fetchConfig, context, definition.credentialReferenceId);
|
|
61
|
-
const response = await this.performRequest(resolvedConfig);
|
|
62
|
-
let transformedData = response.data;
|
|
63
|
-
if (definition.fetchConfig.transform) transformedData = this.transformResponse(response.data, definition.fetchConfig.transform);
|
|
64
|
-
if (definition.responseSchema) this.validateResponseWithJsonSchema(transformedData, definition.responseSchema, definition.id);
|
|
65
|
-
const durationMs = Date.now() - startTime;
|
|
66
|
-
logger.info({
|
|
67
|
-
definitionId: definition.id,
|
|
68
|
-
source: response.source,
|
|
69
|
-
durationMs
|
|
70
|
-
}, "Context fetch completed successfully");
|
|
71
|
-
return {
|
|
72
|
-
data: transformedData,
|
|
73
|
-
resolvedUrl: resolvedConfig.url
|
|
74
|
-
};
|
|
75
|
-
} catch (error) {
|
|
76
|
-
const durationMs = Date.now() - startTime;
|
|
77
|
-
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
78
|
-
if (error instanceof MissingRequiredVariableError) logger.error({
|
|
79
|
-
definitionId: definition.id,
|
|
80
|
-
error: errorMessage,
|
|
81
|
-
durationMs
|
|
82
|
-
}, "Context fetch skipped due to missing required variable");
|
|
83
|
-
logger.error({
|
|
84
|
-
definitionId: definition.id,
|
|
85
|
-
error: errorMessage,
|
|
86
|
-
durationMs
|
|
87
|
-
}, "Context fetch failed");
|
|
88
|
-
throw error;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
async getCredential(credentialReferenceId) {
|
|
92
|
-
try {
|
|
93
|
-
const credentialReference = await getCredentialReference(this.dbClient)({
|
|
94
|
-
scopes: {
|
|
95
|
-
tenantId: this.tenantId,
|
|
96
|
-
projectId: this.projectId
|
|
97
|
-
},
|
|
98
|
-
id: credentialReferenceId
|
|
99
|
-
});
|
|
100
|
-
logger.info({ credentialReference }, "Credential reference");
|
|
101
|
-
if (!credentialReference || !this.credentialStuffer) throw new Error(`Credential store not found for reference ID: ${credentialReferenceId}`);
|
|
102
|
-
const credentialContext = {
|
|
103
|
-
tenantId: this.tenantId,
|
|
104
|
-
projectId: this.projectId
|
|
105
|
-
};
|
|
106
|
-
const storeReference = {
|
|
107
|
-
credentialStoreId: credentialReference.credentialStoreId,
|
|
108
|
-
retrievalParams: credentialReference.retrievalParams || {}
|
|
109
|
-
};
|
|
110
|
-
return await this.credentialStuffer.getCredentials(credentialContext, storeReference);
|
|
111
|
-
} catch (error) {
|
|
112
|
-
logger.error({
|
|
113
|
-
credentialReferenceId,
|
|
114
|
-
error: error instanceof Error ? error.message : "Unknown error"
|
|
115
|
-
}, "Failed to resolve credentials for fetch request");
|
|
116
|
-
throw error;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Resolve template variables in fetch configuration and inject credential headers
|
|
121
|
-
*/
|
|
122
|
-
async resolveTemplateVariables(fetchConfig, context, credentialReferenceId) {
|
|
123
|
-
const resolved = { ...fetchConfig };
|
|
124
|
-
const filteredRequiredToFetch = fetchConfig.requiredToFetch?.filter((variable) => variable.startsWith("{{") && variable.endsWith("}}"));
|
|
125
|
-
if (filteredRequiredToFetch) for (const variable of filteredRequiredToFetch) {
|
|
126
|
-
let resolvedVariable;
|
|
127
|
-
try {
|
|
128
|
-
resolvedVariable = this.interpolateTemplate(variable, context);
|
|
129
|
-
} catch {
|
|
130
|
-
throw new MissingRequiredVariableError(variable);
|
|
131
|
-
}
|
|
132
|
-
if (resolvedVariable === "" || resolvedVariable === variable) throw new MissingRequiredVariableError(variable);
|
|
133
|
-
}
|
|
134
|
-
resolved.url = this.interpolateTemplate(fetchConfig.url, context);
|
|
135
|
-
logger.info({ resolvedUrl: resolved.url }, "Resolved URL");
|
|
136
|
-
if (fetchConfig.headers) {
|
|
137
|
-
resolved.headers = {};
|
|
138
|
-
for (const [key, value] of Object.entries(fetchConfig.headers)) resolved.headers[key] = this.interpolateTemplate(value, context);
|
|
139
|
-
}
|
|
140
|
-
if (fetchConfig.body) resolved.body = this.interpolateObjectTemplates(fetchConfig.body, context);
|
|
141
|
-
if (credentialReferenceId && this.credentialStuffer) try {
|
|
142
|
-
const credentialHeaders = (await this.getCredential(credentialReferenceId))?.headers;
|
|
143
|
-
if (credentialHeaders) {
|
|
144
|
-
resolved.headers = {
|
|
145
|
-
...resolved.headers,
|
|
146
|
-
...credentialHeaders
|
|
147
|
-
};
|
|
148
|
-
logger.info({ credentialReferenceId }, "Added credential headers to fetch request");
|
|
149
|
-
}
|
|
150
|
-
} catch (error) {
|
|
151
|
-
logger.error({
|
|
152
|
-
credentialReferenceId,
|
|
153
|
-
error: error instanceof Error ? error.message : "Unknown error"
|
|
154
|
-
}, "Failed to resolve credentials for fetch request");
|
|
155
|
-
throw error;
|
|
156
|
-
}
|
|
157
|
-
return resolved;
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Interpolate template variables in a string using TemplateEngine
|
|
161
|
-
*/
|
|
162
|
-
interpolateTemplate(template, context) {
|
|
163
|
-
try {
|
|
164
|
-
return TemplateEngine.render(template, context, {
|
|
165
|
-
strict: false,
|
|
166
|
-
preserveUnresolved: true
|
|
167
|
-
});
|
|
168
|
-
} catch (error) {
|
|
169
|
-
logger.error({
|
|
170
|
-
template,
|
|
171
|
-
error: error instanceof Error ? error.message : "Unknown error"
|
|
172
|
-
}, "Failed to interpolate template variable");
|
|
173
|
-
return template;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Interpolate template variables in an object recursively using TemplateEngine
|
|
178
|
-
*/
|
|
179
|
-
interpolateObjectTemplates(obj, context) {
|
|
180
|
-
const result = {};
|
|
181
|
-
for (const [key, value] of Object.entries(obj)) if (typeof value === "string") result[key] = this.interpolateTemplate(value, context);
|
|
182
|
-
else if (value && typeof value === "object" && !Array.isArray(value)) result[key] = this.interpolateObjectTemplates(value, context);
|
|
183
|
-
else result[key] = value;
|
|
184
|
-
return result;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Perform HTTP request
|
|
188
|
-
*/
|
|
189
|
-
async performRequest(config) {
|
|
190
|
-
const startTime = Date.now();
|
|
191
|
-
try {
|
|
192
|
-
logger.debug({
|
|
193
|
-
url: config.url,
|
|
194
|
-
method: config.method
|
|
195
|
-
}, "Performing HTTP request");
|
|
196
|
-
const response = await fetch(config.url, {
|
|
197
|
-
method: config.method,
|
|
198
|
-
headers: config.headers,
|
|
199
|
-
body: config.body ? JSON.stringify(config.body) : void 0,
|
|
200
|
-
signal: AbortSignal.timeout(config.timeout || this.defaultTimeout)
|
|
201
|
-
});
|
|
202
|
-
if (!response.ok) {
|
|
203
|
-
const errorText = await response.text();
|
|
204
|
-
throw /* @__PURE__ */ new Error(`HTTP ${response.status}: ${response.statusText} - ${errorText}`);
|
|
205
|
-
}
|
|
206
|
-
const contentType = response.headers.get("content-type") || "";
|
|
207
|
-
let data;
|
|
208
|
-
if (contentType.includes("application/json")) data = await response.json();
|
|
209
|
-
else data = await response.text();
|
|
210
|
-
const durationMs = Date.now() - startTime;
|
|
211
|
-
for (const checker of responseErrorCheckers) checker(data);
|
|
212
|
-
return {
|
|
213
|
-
data,
|
|
214
|
-
source: config.url,
|
|
215
|
-
durationMs
|
|
216
|
-
};
|
|
217
|
-
} catch (error) {
|
|
218
|
-
const durationMs = Date.now() - startTime;
|
|
219
|
-
const requestError = error instanceof Error ? error : /* @__PURE__ */ new Error("Unknown error");
|
|
220
|
-
logger.warn({
|
|
221
|
-
url: config.url,
|
|
222
|
-
error: requestError.message,
|
|
223
|
-
durationMs
|
|
224
|
-
}, "HTTP request failed");
|
|
225
|
-
throw requestError;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Transform response data using JMESPath
|
|
230
|
-
*/
|
|
231
|
-
transformResponse(data, transform) {
|
|
232
|
-
try {
|
|
233
|
-
return jmespath.search(data, transform);
|
|
234
|
-
} catch (error) {
|
|
235
|
-
logger.error({
|
|
236
|
-
transform,
|
|
237
|
-
error: error instanceof Error ? error.message : "Unknown error"
|
|
238
|
-
}, "Failed to transform response data");
|
|
239
|
-
return data;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Validate response against JSON Schema
|
|
244
|
-
*/
|
|
245
|
-
validateResponseWithJsonSchema(data, jsonSchema, definitionId) {
|
|
246
|
-
try {
|
|
247
|
-
if (!validateAgainstJsonSchema(jsonSchema, data)) throw new Error("Data does not match JSON Schema");
|
|
248
|
-
} catch (error) {
|
|
249
|
-
const errorMessage = error instanceof Error ? error.message : "Unknown validation error";
|
|
250
|
-
logger.error({
|
|
251
|
-
definitionId,
|
|
252
|
-
jsonSchema,
|
|
253
|
-
error: errorMessage
|
|
254
|
-
}, "JSON Schema response validation failed");
|
|
255
|
-
throw new Error(`Response validation failed: ${errorMessage}`);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* Test a fetch definition without caching
|
|
260
|
-
*/
|
|
261
|
-
async test(definition, context) {
|
|
262
|
-
const startTime = Date.now();
|
|
263
|
-
try {
|
|
264
|
-
const result = await this.fetch(definition, context);
|
|
265
|
-
return {
|
|
266
|
-
success: true,
|
|
267
|
-
data: result.data,
|
|
268
|
-
resolvedUrl: result.resolvedUrl,
|
|
269
|
-
durationMs: Date.now() - startTime
|
|
270
|
-
};
|
|
271
|
-
} catch (error) {
|
|
272
|
-
return {
|
|
273
|
-
success: false,
|
|
274
|
-
error: error instanceof Error ? error.message : "Unknown error",
|
|
275
|
-
durationMs: Date.now() - startTime
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Get fetcher statistics
|
|
281
|
-
*/
|
|
282
|
-
getStats() {
|
|
283
|
-
return {
|
|
284
|
-
tenantId: this.tenantId,
|
|
285
|
-
defaultTimeout: this.defaultTimeout
|
|
286
|
-
};
|
|
287
|
-
}
|
|
288
|
-
};
|
|
289
|
-
|
|
290
|
-
//#endregion
|
|
291
|
-
export { ContextFetcher, MissingRequiredVariableError };
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { ContextConfigSelect } from "../types/entities.js";
|
|
2
|
-
import "../types/index.js";
|
|
3
|
-
import { CredentialStoreRegistry } from "../credential-stores/CredentialStoreRegistry.js";
|
|
4
|
-
import { DatabaseClient } from "../db/client.js";
|
|
5
|
-
|
|
6
|
-
//#region src/context/ContextResolver.d.ts
|
|
7
|
-
interface ResolvedContext {
|
|
8
|
-
[templateKey: string]: unknown;
|
|
9
|
-
}
|
|
10
|
-
interface ContextResolutionOptions {
|
|
11
|
-
triggerEvent: 'initialization' | 'invocation';
|
|
12
|
-
conversationId: string;
|
|
13
|
-
headers?: Record<string, unknown>;
|
|
14
|
-
tenantId: string;
|
|
15
|
-
}
|
|
16
|
-
interface ContextResolutionResult {
|
|
17
|
-
resolvedContext: ResolvedContext;
|
|
18
|
-
headers: Record<string, unknown>;
|
|
19
|
-
fetchedDefinitions: string[];
|
|
20
|
-
cacheHits: string[];
|
|
21
|
-
cacheMisses: string[];
|
|
22
|
-
errors: Array<{
|
|
23
|
-
definitionId: string;
|
|
24
|
-
error: string;
|
|
25
|
-
}>;
|
|
26
|
-
skipped: Array<{
|
|
27
|
-
definitionId: string;
|
|
28
|
-
reason: string;
|
|
29
|
-
}>;
|
|
30
|
-
totalDurationMs: number;
|
|
31
|
-
}
|
|
32
|
-
declare class ContextResolver {
|
|
33
|
-
private fetcher;
|
|
34
|
-
private cache;
|
|
35
|
-
private tenantId;
|
|
36
|
-
private projectId;
|
|
37
|
-
constructor(tenantId: string, projectId: string, dbClient: DatabaseClient, credentialStoreRegistry?: CredentialStoreRegistry);
|
|
38
|
-
/**
|
|
39
|
-
* Resolve all contexts for a given configuration and trigger event
|
|
40
|
-
*/
|
|
41
|
-
resolve(contextConfig: ContextConfigSelect, options: ContextResolutionOptions): Promise<ContextResolutionResult>;
|
|
42
|
-
/**
|
|
43
|
-
* Resolve a single context variable
|
|
44
|
-
*/
|
|
45
|
-
private resolveSingleFetchDefinition;
|
|
46
|
-
/**
|
|
47
|
-
* Resolve the headers for a given conversation
|
|
48
|
-
*/
|
|
49
|
-
resolveHeaders(conversationId: string, contextConfigId: string): Promise<Record<string, unknown>>;
|
|
50
|
-
/**
|
|
51
|
-
* Create a hash of the headers for cache invalidation
|
|
52
|
-
*/
|
|
53
|
-
private createRequestHash;
|
|
54
|
-
/**
|
|
55
|
-
* Clear cache
|
|
56
|
-
*/
|
|
57
|
-
clearCache(tenantId: string, projectId: string, conversationId: string): Promise<void>;
|
|
58
|
-
}
|
|
59
|
-
//#endregion
|
|
60
|
-
export { ContextResolutionOptions, ContextResolutionResult, ContextResolver, ResolvedContext };
|