@inkeep/agents-api 0.0.0-dev-20260219033751 → 0.0.0-dev-20260219045007
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/.well-known/workflow/v1/manifest.json +34 -34
- package/dist/createApp.js +16 -90
- package/dist/data/db/manageDbClient.d.ts +2 -2
- package/dist/domains/evals/routes/datasetTriggers.d.ts +2 -2
- package/dist/domains/evals/routes/datasetTriggers.js +5 -2
- package/dist/domains/evals/routes/evaluationTriggers.js +9 -4
- package/dist/domains/evals/routes/index.d.ts +2 -2
- package/dist/domains/evals/workflow/routes.d.ts +2 -2
- package/dist/domains/manage/index.js +4 -0
- package/dist/domains/manage/routes/agent.js +16 -20
- package/dist/domains/manage/routes/agentFull.js +10 -17
- package/dist/domains/manage/routes/apiKeys.js +12 -14
- package/dist/domains/manage/routes/artifactComponents.js +12 -15
- package/dist/domains/manage/routes/availableAgents.d.ts +2 -2
- package/dist/domains/manage/routes/availableAgents.js +4 -2
- package/dist/domains/manage/routes/branches.js +12 -14
- package/dist/domains/manage/routes/cliAuth.js +4 -3
- package/dist/domains/manage/routes/contextConfigs.js +12 -15
- package/dist/domains/manage/routes/conversations.d.ts +2 -2
- package/dist/domains/manage/routes/conversations.js +5 -2
- package/dist/domains/manage/routes/credentialStores.js +7 -8
- package/dist/domains/manage/routes/credentials.js +12 -14
- package/dist/domains/manage/routes/dataComponents.js +12 -14
- package/dist/domains/manage/routes/evals/datasetItems.js +14 -19
- package/dist/domains/manage/routes/evals/datasetRunConfigs.js +13 -6
- package/dist/domains/manage/routes/evals/datasetRuns.js +7 -3
- package/dist/domains/manage/routes/evals/datasets.js +12 -14
- package/dist/domains/manage/routes/evals/evaluationJobConfigEvaluatorRelations.js +8 -8
- package/dist/domains/manage/routes/evals/evaluationJobConfigs.js +12 -14
- package/dist/domains/manage/routes/evals/evaluationResults.js +10 -13
- package/dist/domains/manage/routes/evals/evaluationRunConfigs.js +14 -15
- package/dist/domains/manage/routes/evals/evaluationSuiteConfigEvaluatorRelations.js +8 -8
- package/dist/domains/manage/routes/evals/evaluationSuiteConfigs.js +12 -14
- package/dist/domains/manage/routes/evals/evaluators.js +14 -15
- package/dist/domains/manage/routes/externalAgents.js +12 -14
- package/dist/domains/manage/routes/functionTools.js +12 -15
- package/dist/domains/manage/routes/functions.js +12 -15
- package/dist/domains/manage/routes/github.js +16 -8
- package/dist/domains/manage/routes/index.d.ts +2 -2
- package/dist/domains/manage/routes/index.js +0 -4
- package/dist/domains/manage/routes/invitations.d.ts +2 -2
- package/dist/domains/manage/routes/mcpCatalog.js +5 -2
- package/dist/domains/manage/routes/mcpToolGithubAccess.js +6 -4
- package/dist/domains/manage/routes/oauth.js +6 -66
- package/dist/domains/manage/routes/passwordResetLinks.d.ts +2 -2
- package/dist/domains/manage/routes/playgroundToken.js +4 -2
- package/dist/domains/manage/routes/projectFull.js +13 -26
- package/dist/domains/manage/routes/projectGithubAccess.js +7 -3
- package/dist/domains/manage/routes/projectMembers.js +14 -13
- package/dist/domains/manage/routes/projectPermissions.js +5 -2
- package/dist/domains/manage/routes/projects.js +12 -16
- package/dist/domains/manage/routes/ref.js +5 -2
- package/dist/domains/manage/routes/scheduledTriggers.js +24 -21
- package/dist/domains/manage/routes/signoz.d.ts +2 -2
- package/dist/domains/manage/routes/skills.js +12 -15
- package/dist/domains/manage/routes/subAgentArtifactComponents.js +12 -14
- package/dist/domains/manage/routes/subAgentDataComponents.js +12 -14
- package/dist/domains/manage/routes/subAgentExternalAgentRelations.js +12 -15
- package/dist/domains/manage/routes/subAgentFunctionTools.js +12 -14
- package/dist/domains/manage/routes/subAgentRelations.js +12 -15
- package/dist/domains/manage/routes/subAgentSkills.js +8 -12
- package/dist/domains/manage/routes/subAgentTeamAgentRelations.js +12 -15
- package/dist/domains/manage/routes/subAgentToolRelations.js +14 -16
- package/dist/domains/manage/routes/subAgents.js +12 -15
- package/dist/domains/manage/routes/thirdPartyMCPServers.js +7 -3
- package/dist/domains/manage/routes/tools.js +79 -16
- package/dist/domains/manage/routes/triggers.js +18 -22
- package/dist/domains/manage/routes/userProjectMemberships.js +5 -3
- package/dist/domains/manage/routes/users.d.ts +2 -2
- package/dist/domains/mcp/routes/mcp.d.ts +2 -2
- package/dist/domains/run/agents/relationTools.d.ts +2 -2
- package/dist/domains/run/routes/agents.js +4 -2
- package/dist/domains/run/routes/chat.js +4 -2
- package/dist/domains/run/routes/chatDataStream.js +6 -3
- package/dist/domains/run/routes/mcp.js +4 -2
- package/dist/domains/run/routes/webhooks.js +5 -3
- package/dist/domains/run/tools/distill-conversation-history-tool.d.ts +1 -1
- package/dist/domains/run/types/chat.d.ts +4 -4
- package/dist/domains/run/utils/token-estimator.d.ts +2 -2
- package/dist/domains/run/workflow/steps/scheduledTriggerSteps.d.ts +5 -5
- package/dist/factory.d.ts +21 -21
- package/dist/index.d.ts +18 -18
- package/dist/middleware/evalsAuth.d.ts +2 -2
- package/dist/middleware/evalsAuth.js +37 -32
- package/dist/middleware/index.d.ts +2 -3
- package/dist/middleware/index.js +3 -4
- package/dist/middleware/manageAuth.d.ts +9 -4
- package/dist/middleware/manageAuth.js +24 -2
- package/dist/middleware/projectAccess.d.ts +4 -3
- package/dist/middleware/projectAccess.js +78 -64
- package/dist/middleware/projectConfig.d.ts +3 -3
- package/dist/middleware/ref.d.ts +1 -5
- package/dist/middleware/ref.js +1 -21
- package/dist/middleware/requirePermission.d.ts +2 -2
- package/dist/middleware/requirePermission.js +64 -64
- package/dist/middleware/runAuth.d.ts +4 -4
- package/dist/middleware/sessionAuth.d.ts +3 -3
- package/dist/middleware/sessionAuth.js +23 -18
- package/dist/middleware/tenantAccess.d.ts +3 -2
- package/dist/middleware/tenantAccess.js +12 -1
- package/dist/middleware/tracing.d.ts +3 -3
- package/dist/middleware/tracing.js +1 -1
- package/dist/routes/capabilities.d.ts +10 -0
- package/dist/routes/capabilities.js +35 -0
- package/dist/routes/healthChecks.js +6 -3
- package/dist/routes/workflowProcess.d.ts +10 -0
- package/dist/routes/workflowProcess.js +23 -0
- package/dist/types/app.d.ts +3 -3
- package/package.json +4 -4
|
@@ -1,28 +1,22 @@
|
|
|
1
1
|
import { getLogger as getLogger$1 } from "../../../logger.js";
|
|
2
2
|
import { requireProjectPermission } from "../../../middleware/projectAccess.js";
|
|
3
3
|
import { speakeasyOffsetLimitPagination } from "../../../utils/speakeasy.js";
|
|
4
|
-
import {
|
|
4
|
+
import { oauthService } from "../../../utils/oauthService.js";
|
|
5
|
+
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
5
6
|
import { CredentialReferenceApiSelectSchema, CredentialReferenceResponse, McpToolListResponse, McpToolResponse, PaginationQueryParamsSchema, TenantProjectIdParamsSchema, TenantProjectParamsSchema, ToolApiInsertSchema, ToolApiUpdateSchema, ToolStatusSchema, commonGetErrorResponses, createApiError, createTool, dbResultToMcpTool, dbResultToMcpToolSkeleton, deleteTool, generateId, getToolById, getUserScopedCredentialReference, listTools, updateTool } from "@inkeep/agents-core";
|
|
7
|
+
import { createProtectedRoute } from "@inkeep/agents-core/middleware";
|
|
6
8
|
import { z as z$1 } from "zod";
|
|
7
9
|
|
|
8
10
|
//#region src/domains/manage/routes/tools.ts
|
|
9
11
|
const logger = getLogger$1("tools");
|
|
10
12
|
const app = new OpenAPIHono();
|
|
11
|
-
app.
|
|
12
|
-
if (c.req.method === "POST") return requireProjectPermission("edit")(c, next);
|
|
13
|
-
return next();
|
|
14
|
-
});
|
|
15
|
-
app.use("/:id", async (c, next) => {
|
|
16
|
-
if (c.req.method === "PUT") return requireProjectPermission("edit")(c, next);
|
|
17
|
-
if (c.req.method === "DELETE") return requireProjectPermission("edit")(c, next);
|
|
18
|
-
return next();
|
|
19
|
-
});
|
|
20
|
-
app.openapi(createRoute({
|
|
13
|
+
app.openapi(createProtectedRoute({
|
|
21
14
|
method: "get",
|
|
22
15
|
path: "/",
|
|
23
16
|
summary: "List Tools",
|
|
24
17
|
operationId: "list-tools",
|
|
25
18
|
tags: ["Tools"],
|
|
19
|
+
permission: requireProjectPermission("view"),
|
|
26
20
|
request: {
|
|
27
21
|
params: TenantProjectParamsSchema,
|
|
28
22
|
query: PaginationQueryParamsSchema.extend({
|
|
@@ -95,12 +89,13 @@ app.openapi(createRoute({
|
|
|
95
89
|
}
|
|
96
90
|
return c.json(result);
|
|
97
91
|
});
|
|
98
|
-
app.openapi(
|
|
92
|
+
app.openapi(createProtectedRoute({
|
|
99
93
|
method: "get",
|
|
100
94
|
path: "/{id}",
|
|
101
95
|
summary: "Get Tool",
|
|
102
96
|
operationId: "get-tool",
|
|
103
97
|
tags: ["Tools"],
|
|
98
|
+
permission: requireProjectPermission("view"),
|
|
104
99
|
request: { params: TenantProjectIdParamsSchema },
|
|
105
100
|
responses: {
|
|
106
101
|
200: {
|
|
@@ -127,12 +122,13 @@ app.openapi(createRoute({
|
|
|
127
122
|
const userId = c.get("userId");
|
|
128
123
|
return c.json({ data: await dbResultToMcpTool(tool, db, credentialStores, void 0, userId) });
|
|
129
124
|
});
|
|
130
|
-
app.openapi(
|
|
125
|
+
app.openapi(createProtectedRoute({
|
|
131
126
|
method: "post",
|
|
132
127
|
path: "/",
|
|
133
128
|
summary: "Create Tool",
|
|
134
129
|
operationId: "create-tool",
|
|
135
130
|
tags: ["Tools"],
|
|
131
|
+
permission: requireProjectPermission("edit"),
|
|
136
132
|
request: {
|
|
137
133
|
params: TenantProjectParamsSchema,
|
|
138
134
|
body: { content: { "application/json": { schema: ToolApiInsertSchema } } }
|
|
@@ -166,12 +162,13 @@ app.openapi(createRoute({
|
|
|
166
162
|
});
|
|
167
163
|
return c.json({ data: await dbResultToMcpTool(tool, db, credentialStores, void 0, userId) }, 201);
|
|
168
164
|
});
|
|
169
|
-
app.openapi(
|
|
165
|
+
app.openapi(createProtectedRoute({
|
|
170
166
|
method: "put",
|
|
171
167
|
path: "/{id}",
|
|
172
168
|
summary: "Update Tool",
|
|
173
169
|
operationId: "update-tool",
|
|
174
170
|
tags: ["Tools"],
|
|
171
|
+
permission: requireProjectPermission("edit"),
|
|
175
172
|
request: {
|
|
176
173
|
params: TenantProjectIdParamsSchema,
|
|
177
174
|
body: { content: { "application/json": { schema: ToolApiUpdateSchema } } }
|
|
@@ -215,12 +212,13 @@ app.openapi(createRoute({
|
|
|
215
212
|
});
|
|
216
213
|
return c.json({ data: await dbResultToMcpTool(updatedTool, db, credentialStores, void 0, userId) });
|
|
217
214
|
});
|
|
218
|
-
app.openapi(
|
|
215
|
+
app.openapi(createProtectedRoute({
|
|
219
216
|
method: "get",
|
|
220
217
|
path: "/{id}/user-credential",
|
|
221
218
|
summary: "Get User Credential for Tool",
|
|
222
219
|
operationId: "get-user-credential-for-tool",
|
|
223
220
|
tags: ["Tools"],
|
|
221
|
+
permission: requireProjectPermission("view"),
|
|
224
222
|
request: { params: TenantProjectIdParamsSchema },
|
|
225
223
|
responses: {
|
|
226
224
|
200: {
|
|
@@ -252,12 +250,13 @@ app.openapi(createRoute({
|
|
|
252
250
|
const validatedCredential = CredentialReferenceApiSelectSchema.parse(credential);
|
|
253
251
|
return c.json({ data: validatedCredential });
|
|
254
252
|
});
|
|
255
|
-
app.openapi(
|
|
253
|
+
app.openapi(createProtectedRoute({
|
|
256
254
|
method: "delete",
|
|
257
255
|
path: "/{id}",
|
|
258
256
|
summary: "Delete Tool",
|
|
259
257
|
operationId: "delete-tool",
|
|
260
258
|
tags: ["Tools"],
|
|
259
|
+
permission: requireProjectPermission("edit"),
|
|
261
260
|
request: { params: TenantProjectIdParamsSchema },
|
|
262
261
|
responses: {
|
|
263
262
|
204: { description: "Tool deleted successfully" },
|
|
@@ -278,6 +277,70 @@ app.openapi(createRoute({
|
|
|
278
277
|
});
|
|
279
278
|
return c.body(null, 204);
|
|
280
279
|
});
|
|
280
|
+
app.openapi(createProtectedRoute({
|
|
281
|
+
method: "get",
|
|
282
|
+
path: "/{id}/oauth/login",
|
|
283
|
+
summary: "Initiate OAuth login for MCP tool",
|
|
284
|
+
description: "Detects OAuth requirements and redirects to the authorization server for the specified tool",
|
|
285
|
+
operationId: "initiate-tool-oauth-login",
|
|
286
|
+
tags: ["Tools"],
|
|
287
|
+
permission: requireProjectPermission("view"),
|
|
288
|
+
request: { params: TenantProjectIdParamsSchema },
|
|
289
|
+
responses: {
|
|
290
|
+
302: { description: "Redirect to OAuth authorization server" },
|
|
291
|
+
400: {
|
|
292
|
+
description: "OAuth not supported or configuration error",
|
|
293
|
+
content: { "text/html": { schema: z$1.string() } }
|
|
294
|
+
},
|
|
295
|
+
404: {
|
|
296
|
+
description: "Tool not found",
|
|
297
|
+
content: { "text/html": { schema: z$1.string() } }
|
|
298
|
+
},
|
|
299
|
+
500: {
|
|
300
|
+
description: "Internal server error",
|
|
301
|
+
content: { "text/html": { schema: z$1.string() } }
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}), async (c) => {
|
|
305
|
+
const { tenantId, projectId, id: toolId } = c.req.valid("param");
|
|
306
|
+
const db = c.get("db");
|
|
307
|
+
try {
|
|
308
|
+
const tool = await getToolById(db)({
|
|
309
|
+
scopes: {
|
|
310
|
+
tenantId,
|
|
311
|
+
projectId
|
|
312
|
+
},
|
|
313
|
+
toolId
|
|
314
|
+
});
|
|
315
|
+
if (!tool) {
|
|
316
|
+
logger.error({
|
|
317
|
+
toolId,
|
|
318
|
+
tenantId,
|
|
319
|
+
projectId
|
|
320
|
+
}, "Tool not found for OAuth login");
|
|
321
|
+
return c.text("Tool not found", 404);
|
|
322
|
+
}
|
|
323
|
+
const url = new URL(c.req.url);
|
|
324
|
+
const baseUrl = `${url.protocol}//${url.host}`;
|
|
325
|
+
const { redirectUrl } = await oauthService.initiateOAuthFlow({
|
|
326
|
+
tenantId,
|
|
327
|
+
projectId,
|
|
328
|
+
toolId,
|
|
329
|
+
mcpServerUrl: tool.config.mcp.server.url,
|
|
330
|
+
baseUrl
|
|
331
|
+
});
|
|
332
|
+
return c.redirect(redirectUrl, 302);
|
|
333
|
+
} catch (error) {
|
|
334
|
+
logger.error({
|
|
335
|
+
toolId,
|
|
336
|
+
tenantId,
|
|
337
|
+
projectId,
|
|
338
|
+
error
|
|
339
|
+
}, "OAuth login failed");
|
|
340
|
+
const errorMessage = error instanceof Error ? error.message : "Failed to initiate OAuth login";
|
|
341
|
+
return c.text(`OAuth Error: ${errorMessage}`, 500);
|
|
342
|
+
}
|
|
343
|
+
});
|
|
281
344
|
var tools_default = app;
|
|
282
345
|
|
|
283
346
|
//#endregion
|
|
@@ -4,21 +4,13 @@ import runDbClient_default from "../../../data/db/runDbClient.js";
|
|
|
4
4
|
import { requireProjectPermission } from "../../../middleware/projectAccess.js";
|
|
5
5
|
import { speakeasyOffsetLimitPagination } from "../../../utils/speakeasy.js";
|
|
6
6
|
import { dispatchExecution } from "../../run/services/TriggerService.js";
|
|
7
|
-
import { OpenAPIHono,
|
|
7
|
+
import { OpenAPIHono, z } from "@hono/zod-openapi";
|
|
8
8
|
import { DateTimeFilterQueryParamsSchema, PaginationQueryParamsSchema, PartSchema, TenantProjectAgentIdParamsSchema, TenantProjectAgentParamsSchema, TriggerApiInsertSchema, TriggerApiUpdateSchema, TriggerInvocationListResponse, TriggerInvocationResponse, TriggerInvocationStatusEnum, TriggerWithWebhookUrlListResponse, TriggerWithWebhookUrlResponse, commonGetErrorResponses, createApiError, createTrigger, deleteTrigger, errorSchemaFactory, generateId, getCredentialReference, getTriggerById, getTriggerInvocationById, hashAuthenticationHeaders, listTriggerInvocationsPaginated, listTriggersPaginated, updateTrigger } from "@inkeep/agents-core";
|
|
9
|
+
import { createProtectedRoute } from "@inkeep/agents-core/middleware";
|
|
9
10
|
|
|
10
11
|
//#region src/domains/manage/routes/triggers.ts
|
|
11
12
|
const logger = getLogger$1("triggers");
|
|
12
13
|
const app = new OpenAPIHono();
|
|
13
|
-
app.use("/", async (c, next) => {
|
|
14
|
-
if (c.req.method === "POST") return requireProjectPermission("edit")(c, next);
|
|
15
|
-
return next();
|
|
16
|
-
});
|
|
17
|
-
app.use("/:id", async (c, next) => {
|
|
18
|
-
if (c.req.method === "PATCH") return requireProjectPermission("edit")(c, next);
|
|
19
|
-
if (c.req.method === "DELETE") return requireProjectPermission("edit")(c, next);
|
|
20
|
-
return next();
|
|
21
|
-
});
|
|
22
14
|
/**
|
|
23
15
|
* Generate webhook URL for a trigger
|
|
24
16
|
*/
|
|
@@ -29,12 +21,13 @@ function generateWebhookUrl(params) {
|
|
|
29
21
|
/**
|
|
30
22
|
* List Triggers for an Agent
|
|
31
23
|
*/
|
|
32
|
-
app.openapi(
|
|
24
|
+
app.openapi(createProtectedRoute({
|
|
33
25
|
method: "get",
|
|
34
26
|
path: "/",
|
|
35
27
|
summary: "List Triggers",
|
|
36
28
|
operationId: "list-triggers",
|
|
37
29
|
tags: ["Triggers"],
|
|
30
|
+
permission: requireProjectPermission("view"),
|
|
38
31
|
request: {
|
|
39
32
|
params: TenantProjectAgentParamsSchema,
|
|
40
33
|
query: PaginationQueryParamsSchema
|
|
@@ -84,12 +77,13 @@ app.openapi(createRoute({
|
|
|
84
77
|
/**
|
|
85
78
|
* Get Trigger by ID
|
|
86
79
|
*/
|
|
87
|
-
app.openapi(
|
|
80
|
+
app.openapi(createProtectedRoute({
|
|
88
81
|
method: "get",
|
|
89
82
|
path: "/{id}",
|
|
90
83
|
summary: "Get Trigger",
|
|
91
84
|
operationId: "get-trigger-by-id",
|
|
92
85
|
tags: ["Triggers"],
|
|
86
|
+
permission: requireProjectPermission("view"),
|
|
93
87
|
request: { params: TenantProjectAgentIdParamsSchema },
|
|
94
88
|
responses: {
|
|
95
89
|
200: {
|
|
@@ -129,12 +123,13 @@ app.openapi(createRoute({
|
|
|
129
123
|
/**
|
|
130
124
|
* Create Trigger
|
|
131
125
|
*/
|
|
132
|
-
app.openapi(
|
|
126
|
+
app.openapi(createProtectedRoute({
|
|
133
127
|
method: "post",
|
|
134
128
|
path: "/",
|
|
135
129
|
summary: "Create Trigger",
|
|
136
130
|
operationId: "create-trigger",
|
|
137
131
|
tags: ["Triggers"],
|
|
132
|
+
permission: requireProjectPermission("edit"),
|
|
138
133
|
request: {
|
|
139
134
|
params: TenantProjectAgentParamsSchema,
|
|
140
135
|
body: { content: { "application/json": { schema: TriggerApiInsertSchema } } }
|
|
@@ -208,12 +203,13 @@ app.openapi(createRoute({
|
|
|
208
203
|
/**
|
|
209
204
|
* Update Trigger
|
|
210
205
|
*/
|
|
211
|
-
app.openapi(
|
|
206
|
+
app.openapi(createProtectedRoute({
|
|
212
207
|
method: "patch",
|
|
213
208
|
path: "/{id}",
|
|
214
209
|
summary: "Update Trigger",
|
|
215
210
|
operationId: "update-trigger",
|
|
216
211
|
tags: ["Triggers"],
|
|
212
|
+
permission: requireProjectPermission("edit"),
|
|
217
213
|
request: {
|
|
218
214
|
params: TenantProjectAgentIdParamsSchema,
|
|
219
215
|
body: { content: { "application/json": { schema: TriggerApiUpdateSchema } } }
|
|
@@ -323,12 +319,13 @@ app.openapi(createRoute({
|
|
|
323
319
|
/**
|
|
324
320
|
* Delete Trigger
|
|
325
321
|
*/
|
|
326
|
-
app.openapi(
|
|
322
|
+
app.openapi(createProtectedRoute({
|
|
327
323
|
method: "delete",
|
|
328
324
|
path: "/{id}",
|
|
329
325
|
summary: "Delete Trigger",
|
|
330
326
|
operationId: "delete-trigger",
|
|
331
327
|
tags: ["Triggers"],
|
|
328
|
+
permission: requireProjectPermission("edit"),
|
|
332
329
|
request: { params: TenantProjectAgentIdParamsSchema },
|
|
333
330
|
responses: {
|
|
334
331
|
204: { description: "Trigger deleted successfully" },
|
|
@@ -373,12 +370,13 @@ const TriggerInvocationQueryParamsSchema = PaginationQueryParamsSchema.merge(Dat
|
|
|
373
370
|
/**
|
|
374
371
|
* List Trigger Invocations
|
|
375
372
|
*/
|
|
376
|
-
app.openapi(
|
|
373
|
+
app.openapi(createProtectedRoute({
|
|
377
374
|
method: "get",
|
|
378
375
|
path: "/{id}/invocations",
|
|
379
376
|
summary: "List Trigger Invocations",
|
|
380
377
|
operationId: "list-trigger-invocations",
|
|
381
378
|
tags: ["Triggers"],
|
|
379
|
+
permission: requireProjectPermission("view"),
|
|
382
380
|
request: {
|
|
383
381
|
params: TenantProjectAgentIdParamsSchema,
|
|
384
382
|
query: TriggerInvocationQueryParamsSchema
|
|
@@ -432,12 +430,13 @@ app.openapi(createRoute({
|
|
|
432
430
|
/**
|
|
433
431
|
* Get Trigger Invocation by ID
|
|
434
432
|
*/
|
|
435
|
-
app.openapi(
|
|
433
|
+
app.openapi(createProtectedRoute({
|
|
436
434
|
method: "get",
|
|
437
435
|
path: "/{id}/invocations/{invocationId}",
|
|
438
436
|
summary: "Get Trigger Invocation",
|
|
439
437
|
operationId: "get-trigger-invocation-by-id",
|
|
440
438
|
tags: ["Triggers"],
|
|
439
|
+
permission: requireProjectPermission("view"),
|
|
441
440
|
request: { params: TenantProjectAgentIdParamsSchema.extend({ invocationId: z.string().describe("Trigger Invocation ID") }) },
|
|
442
441
|
responses: {
|
|
443
442
|
200: {
|
|
@@ -475,16 +474,13 @@ app.openapi(createRoute({
|
|
|
475
474
|
* Rerun Trigger
|
|
476
475
|
* Re-executes a trigger with the provided user message (from a previous trace).
|
|
477
476
|
*/
|
|
478
|
-
app.
|
|
479
|
-
if (c.req.method === "POST") return requireProjectPermission("use")(c, next);
|
|
480
|
-
return next();
|
|
481
|
-
});
|
|
482
|
-
app.openapi(createRoute({
|
|
477
|
+
app.openapi(createProtectedRoute({
|
|
483
478
|
method: "post",
|
|
484
479
|
path: "/{id}/rerun",
|
|
485
480
|
summary: "Rerun Trigger",
|
|
486
481
|
operationId: "rerun-trigger",
|
|
487
482
|
tags: ["Triggers"],
|
|
483
|
+
permission: requireProjectPermission("use"),
|
|
488
484
|
request: {
|
|
489
485
|
params: TenantProjectAgentIdParamsSchema,
|
|
490
486
|
body: { content: { "application/json": { schema: z.object({
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { OpenAPIHono,
|
|
1
|
+
import { OpenAPIHono, z } from "@hono/zod-openapi";
|
|
2
2
|
import { ProjectRoles, commonGetErrorResponses, listUserProjectMembershipsInSpiceDb } from "@inkeep/agents-core";
|
|
3
|
+
import { createProtectedRoute, inheritedManageTenantAuth } from "@inkeep/agents-core/middleware";
|
|
3
4
|
|
|
4
5
|
//#region src/domains/manage/routes/userProjectMemberships.ts
|
|
5
6
|
const app = new OpenAPIHono();
|
|
@@ -12,13 +13,14 @@ const UserProjectMembershipParamsSchema = z.object({
|
|
|
12
13
|
tenantId: z.string(),
|
|
13
14
|
userId: z.string()
|
|
14
15
|
});
|
|
15
|
-
app.openapi(
|
|
16
|
+
app.openapi(createProtectedRoute({
|
|
16
17
|
method: "get",
|
|
17
18
|
path: "/",
|
|
18
19
|
summary: "List User Project Memberships",
|
|
19
|
-
description: "List all projects a user has explicit access to and their role in each.
|
|
20
|
+
description: "List all projects a user has explicit access to and their role in each.",
|
|
20
21
|
operationId: "list-user-project-memberships",
|
|
21
22
|
tags: ["User Project Memberships"],
|
|
23
|
+
permission: inheritedManageTenantAuth(),
|
|
22
24
|
request: { params: UserProjectMembershipParamsSchema },
|
|
23
25
|
responses: {
|
|
24
26
|
200: {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ManageAppVariables } from "../../../types/app.js";
|
|
2
2
|
import { Hono } from "hono";
|
|
3
|
-
import * as
|
|
3
|
+
import * as hono_types10 from "hono/types";
|
|
4
4
|
|
|
5
5
|
//#region src/domains/manage/routes/users.d.ts
|
|
6
6
|
declare const usersRoutes: Hono<{
|
|
7
7
|
Variables: ManageAppVariables;
|
|
8
|
-
},
|
|
8
|
+
}, hono_types10.BlankSchema, "/">;
|
|
9
9
|
//#endregion
|
|
10
10
|
export { usersRoutes as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Hono } from "hono";
|
|
2
|
-
import * as
|
|
2
|
+
import * as hono_types11 from "hono/types";
|
|
3
3
|
|
|
4
4
|
//#region src/domains/mcp/routes/mcp.d.ts
|
|
5
|
-
declare const app: Hono<
|
|
5
|
+
declare const app: Hono<hono_types11.BlankEnv, hono_types11.BlankSchema, "/">;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { app as default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AgentConfig, DelegateRelation } from "./Agent.js";
|
|
2
2
|
import { InternalRelation } from "../utils/project.js";
|
|
3
|
-
import * as
|
|
3
|
+
import * as _inkeep_agents_core0 from "@inkeep/agents-core";
|
|
4
4
|
import { CredentialStoreRegistry, FullExecutionContext } from "@inkeep/agents-core";
|
|
5
5
|
import * as ai0 from "ai";
|
|
6
6
|
|
|
@@ -44,7 +44,7 @@ declare function createDelegateToAgentTool({
|
|
|
44
44
|
message: string;
|
|
45
45
|
}, {
|
|
46
46
|
toolCallId: any;
|
|
47
|
-
result:
|
|
47
|
+
result: _inkeep_agents_core0.Message | _inkeep_agents_core0.Task;
|
|
48
48
|
}>;
|
|
49
49
|
/**
|
|
50
50
|
* Parameters for building a transfer relation config
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { getLogger as getLogger$1 } from "../../../logger.js";
|
|
2
2
|
import { a2aHandler } from "../a2a/handlers.js";
|
|
3
3
|
import { getRegisteredAgent } from "../data/agents.js";
|
|
4
|
-
import { OpenAPIHono,
|
|
4
|
+
import { OpenAPIHono, z } from "@hono/zod-openapi";
|
|
5
5
|
import { HeadersScopeSchema, createApiError } from "@inkeep/agents-core";
|
|
6
|
+
import { createProtectedRoute, inheritedRunApiKeyAuth } from "@inkeep/agents-core/middleware";
|
|
6
7
|
|
|
7
8
|
//#region src/domains/run/routes/agents.ts
|
|
8
9
|
const app = new OpenAPIHono();
|
|
9
10
|
const logger = getLogger$1("agents");
|
|
10
|
-
app.openapi(
|
|
11
|
+
app.openapi(createProtectedRoute({
|
|
11
12
|
method: "get",
|
|
12
13
|
path: "/.well-known/agent.json",
|
|
13
14
|
request: { headers: HeadersScopeSchema },
|
|
14
15
|
tags: ["A2A"],
|
|
15
16
|
security: [{ bearerAuth: [] }],
|
|
17
|
+
permission: inheritedRunApiKeyAuth(),
|
|
16
18
|
responses: {
|
|
17
19
|
200: {
|
|
18
20
|
description: "Agent Card for A2A discovery",
|
|
@@ -10,21 +10,23 @@ import "../context/index.js";
|
|
|
10
10
|
import { toolApprovalUiBus } from "../services/ToolApprovalUiBus.js";
|
|
11
11
|
import { ImageContentItemSchema } from "../types/chat.js";
|
|
12
12
|
import { extractTextFromParts, getMessagePartsFromOpenAIContent } from "../utils/message-parts.js";
|
|
13
|
-
import { OpenAPIHono,
|
|
13
|
+
import { OpenAPIHono, z } from "@hono/zod-openapi";
|
|
14
14
|
import { PartSchema, createApiError, createMessage, createOrGetConversation, generateId, getActiveAgentForConversation, getConversationId, setActiveAgentForConversation } from "@inkeep/agents-core";
|
|
15
|
+
import { createProtectedRoute, inheritedRunApiKeyAuth } from "@inkeep/agents-core/middleware";
|
|
15
16
|
import { context, propagation, trace } from "@opentelemetry/api";
|
|
16
17
|
import { streamSSE } from "hono/streaming";
|
|
17
18
|
|
|
18
19
|
//#region src/domains/run/routes/chat.ts
|
|
19
20
|
const app = new OpenAPIHono();
|
|
20
21
|
const logger = getLogger$1("completionsHandler");
|
|
21
|
-
const chatCompletionsRoute =
|
|
22
|
+
const chatCompletionsRoute = createProtectedRoute({
|
|
22
23
|
method: "post",
|
|
23
24
|
path: "/completions",
|
|
24
25
|
tags: ["Chat"],
|
|
25
26
|
summary: "Create chat completion",
|
|
26
27
|
description: "Creates a new chat completion with streaming SSE response using the configured agent",
|
|
27
28
|
security: [{ bearerAuth: [] }],
|
|
29
|
+
permission: inheritedRunApiKeyAuth(),
|
|
28
30
|
request: { body: { content: { "application/json": { schema: z.object({
|
|
29
31
|
model: z.string().describe("The model to use for the completion"),
|
|
30
32
|
messages: z.array(z.object({
|
|
@@ -11,8 +11,9 @@ import { pendingToolApprovalManager } from "../services/PendingToolApprovalManag
|
|
|
11
11
|
import { toolApprovalUiBus } from "../services/ToolApprovalUiBus.js";
|
|
12
12
|
import { ImageUrlSchema } from "../types/chat.js";
|
|
13
13
|
import { extractTextFromParts, getMessagePartsFromVercelContent } from "../utils/message-parts.js";
|
|
14
|
-
import { OpenAPIHono,
|
|
14
|
+
import { OpenAPIHono, z } from "@hono/zod-openapi";
|
|
15
15
|
import { PartSchema, commonGetErrorResponses, createApiError, createMessage, generateId, getActiveAgentForConversation, getConversation, getConversationId, loggerFactory, setActiveAgentForConversation } from "@inkeep/agents-core";
|
|
16
|
+
import { createProtectedRoute, inheritedRunApiKeyAuth } from "@inkeep/agents-core/middleware";
|
|
16
17
|
import { JsonToSseTransformStream, createUIMessageStream } from "ai";
|
|
17
18
|
import { context, propagation, trace } from "@opentelemetry/api";
|
|
18
19
|
import { stream } from "hono/streaming";
|
|
@@ -20,13 +21,14 @@ import { stream } from "hono/streaming";
|
|
|
20
21
|
//#region src/domains/run/routes/chatDataStream.ts
|
|
21
22
|
const app = new OpenAPIHono();
|
|
22
23
|
const logger = getLogger$1("chatDataStream");
|
|
23
|
-
const chatDataStreamRoute =
|
|
24
|
+
const chatDataStreamRoute = createProtectedRoute({
|
|
24
25
|
method: "post",
|
|
25
26
|
path: "/chat",
|
|
26
27
|
tags: ["Chat"],
|
|
27
28
|
summary: "Chat (Vercel Streaming Protocol)",
|
|
28
29
|
description: "Chat completion endpoint streaming with Vercel data stream protocol.",
|
|
29
30
|
security: [{ bearerAuth: [] }],
|
|
31
|
+
permission: inheritedRunApiKeyAuth(),
|
|
30
32
|
request: { body: { content: { "application/json": { schema: z.object({
|
|
31
33
|
model: z.string().optional(),
|
|
32
34
|
messages: z.array(z.object({
|
|
@@ -375,13 +377,14 @@ app.openapi(chatDataStreamRoute, async (c) => {
|
|
|
375
377
|
});
|
|
376
378
|
}
|
|
377
379
|
});
|
|
378
|
-
const toolApprovalRoute =
|
|
380
|
+
const toolApprovalRoute = createProtectedRoute({
|
|
379
381
|
method: "post",
|
|
380
382
|
path: "/tool-approvals",
|
|
381
383
|
tags: ["Chat"],
|
|
382
384
|
summary: "Approve or deny tool execution",
|
|
383
385
|
description: "Handle user approval/denial of tool execution requests during conversations",
|
|
384
386
|
security: [{ bearerAuth: [] }],
|
|
387
|
+
permission: inheritedRunApiKeyAuth(),
|
|
385
388
|
request: { body: { content: { "application/json": { schema: z.object({
|
|
386
389
|
conversationId: z.string().describe("The conversation ID"),
|
|
387
390
|
toolCallId: z.string().describe("The tool call ID to respond to"),
|
|
@@ -5,8 +5,9 @@ import { ExecutionHandler } from "../handlers/executionHandler.js";
|
|
|
5
5
|
import { contextValidationMiddleware } from "../context/validation.js";
|
|
6
6
|
import { handleContextResolution } from "../context/context.js";
|
|
7
7
|
import "../context/index.js";
|
|
8
|
-
import { OpenAPIHono,
|
|
8
|
+
import { OpenAPIHono, z } from "@hono/zod-openapi";
|
|
9
9
|
import { HeadersScopeSchema, createMessage, createOrGetConversation, generateId, getConversation, getConversationId, updateConversation } from "@inkeep/agents-core";
|
|
10
|
+
import { createProtectedRoute, inheritedRunApiKeyAuth } from "@inkeep/agents-core/middleware";
|
|
10
11
|
import { context, propagation, trace } from "@opentelemetry/api";
|
|
11
12
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
12
13
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
@@ -415,13 +416,14 @@ const createErrorResponse = (code, message, id = null) => ({
|
|
|
415
416
|
},
|
|
416
417
|
id
|
|
417
418
|
});
|
|
418
|
-
app.openapi(
|
|
419
|
+
app.openapi(createProtectedRoute({
|
|
419
420
|
method: "post",
|
|
420
421
|
path: "/",
|
|
421
422
|
tags: ["MCP"],
|
|
422
423
|
summary: "MCP Protocol",
|
|
423
424
|
description: "Handles Model Context Protocol (MCP) JSON-RPC requests",
|
|
424
425
|
security: [{ bearerAuth: [] }],
|
|
426
|
+
permission: inheritedRunApiKeyAuth(),
|
|
425
427
|
request: { headers: HeadersScopeSchema },
|
|
426
428
|
responses: {
|
|
427
429
|
200: { description: "MCP response" },
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getLogger } from "../../../logger.js";
|
|
2
2
|
import { processWebhook } from "../services/TriggerService.js";
|
|
3
|
-
import { OpenAPIHono,
|
|
3
|
+
import { OpenAPIHono, z } from "@hono/zod-openapi";
|
|
4
|
+
import { createProtectedRoute, noAuth } from "@inkeep/agents-core/middleware";
|
|
4
5
|
|
|
5
6
|
//#region src/domains/run/routes/webhooks.ts
|
|
6
7
|
const app = new OpenAPIHono();
|
|
@@ -9,12 +10,13 @@ const logger = getLogger("webhooks");
|
|
|
9
10
|
* Webhook endpoint for trigger invocation
|
|
10
11
|
* POST /tenants/{tenantId}/projects/{projectId}/agents/{agentId}/triggers/{triggerId}
|
|
11
12
|
*/
|
|
12
|
-
const triggerWebhookRoute =
|
|
13
|
+
const triggerWebhookRoute = createProtectedRoute({
|
|
13
14
|
method: "post",
|
|
14
15
|
path: "/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/triggers/{triggerId}",
|
|
15
16
|
tags: ["Webhooks"],
|
|
16
17
|
summary: "Invoke agent via trigger webhook",
|
|
17
18
|
description: "Webhook endpoint for third-party services to invoke an agent via a configured trigger",
|
|
19
|
+
permission: noAuth(),
|
|
18
20
|
request: {
|
|
19
21
|
params: z.object({
|
|
20
22
|
tenantId: z.string().describe("Tenant ID"),
|
|
@@ -63,7 +65,7 @@ const triggerWebhookRoute = createRoute({
|
|
|
63
65
|
}
|
|
64
66
|
});
|
|
65
67
|
app.openapi(triggerWebhookRoute, async (c) => {
|
|
66
|
-
const { tenantId, projectId, agentId, triggerId } = c.req.param
|
|
68
|
+
const { tenantId, projectId, agentId, triggerId } = c.req.valid("param");
|
|
67
69
|
const resolvedRef = c.get("resolvedRef");
|
|
68
70
|
logger.info({
|
|
69
71
|
tenantId,
|
|
@@ -32,9 +32,9 @@ declare const ConversationHistorySummarySchema: z.ZodObject<{
|
|
|
32
32
|
tool_call_id: z.ZodString;
|
|
33
33
|
content_summary: z.ZodString;
|
|
34
34
|
relevance: z.ZodEnum<{
|
|
35
|
-
low: "low";
|
|
36
35
|
high: "high";
|
|
37
36
|
medium: "medium";
|
|
37
|
+
low: "low";
|
|
38
38
|
}>;
|
|
39
39
|
}, z.core.$strip>>>;
|
|
40
40
|
conversation_flow: z.ZodObject<{
|
|
@@ -9,9 +9,9 @@ declare const ImageUrlSchema: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
|
|
|
9
9
|
/** OpenAI-specific image detail level. Has no effect on other providers. */
|
|
10
10
|
declare const ImageDetailEnum: readonly ["auto", "low", "high"];
|
|
11
11
|
declare const ImageDetailSchema: z.ZodEnum<{
|
|
12
|
-
auto: "auto";
|
|
13
|
-
low: "low";
|
|
14
12
|
high: "high";
|
|
13
|
+
low: "low";
|
|
14
|
+
auto: "auto";
|
|
15
15
|
}>;
|
|
16
16
|
type ImageDetail = z.infer<typeof ImageDetailSchema>;
|
|
17
17
|
declare const ImageContentItemSchema: z.ZodObject<{
|
|
@@ -19,9 +19,9 @@ declare const ImageContentItemSchema: z.ZodObject<{
|
|
|
19
19
|
image_url: z.ZodObject<{
|
|
20
20
|
url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
|
|
21
21
|
detail: z.ZodOptional<z.ZodEnum<{
|
|
22
|
-
auto: "auto";
|
|
23
|
-
low: "low";
|
|
24
22
|
high: "high";
|
|
23
|
+
low: "low";
|
|
24
|
+
auto: "auto";
|
|
25
25
|
}>>;
|
|
26
26
|
}, z.core.$strip>;
|
|
27
27
|
}, z.core.$strip>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _inkeep_agents_core2 from "@inkeep/agents-core";
|
|
2
2
|
import { BreakdownComponentDef, ContextBreakdown, calculateBreakdownTotal, createEmptyBreakdown } from "@inkeep/agents-core";
|
|
3
3
|
|
|
4
4
|
//#region src/domains/run/utils/token-estimator.d.ts
|
|
@@ -17,7 +17,7 @@ interface AssembleResult {
|
|
|
17
17
|
/** The assembled prompt string */
|
|
18
18
|
prompt: string;
|
|
19
19
|
/** Token breakdown for each component */
|
|
20
|
-
breakdown:
|
|
20
|
+
breakdown: _inkeep_agents_core2.ContextBreakdown;
|
|
21
21
|
}
|
|
22
22
|
//#endregion
|
|
23
23
|
export { AssembleResult, type BreakdownComponentDef, type ContextBreakdown, calculateBreakdownTotal, createEmptyBreakdown, estimateTokens };
|
|
@@ -105,7 +105,7 @@ declare function createInvocationIdempotentStep(params: {
|
|
|
105
105
|
projectId: string;
|
|
106
106
|
tenantId: string;
|
|
107
107
|
id: string;
|
|
108
|
-
status: "pending" | "completed" | "
|
|
108
|
+
status: "pending" | "completed" | "failed" | "running" | "cancelled";
|
|
109
109
|
resolvedPayload?: Record<string, unknown> | null | undefined;
|
|
110
110
|
};
|
|
111
111
|
alreadyExists: boolean;
|
|
@@ -145,7 +145,7 @@ declare function markRunningStep(params: {
|
|
|
145
145
|
projectId: string;
|
|
146
146
|
tenantId: string;
|
|
147
147
|
id: string;
|
|
148
|
-
status: "pending" | "completed" | "
|
|
148
|
+
status: "pending" | "completed" | "failed" | "running" | "cancelled";
|
|
149
149
|
resolvedPayload?: Record<string, unknown> | null | undefined;
|
|
150
150
|
}>;
|
|
151
151
|
/**
|
|
@@ -172,7 +172,7 @@ declare function addConversationIdStep(params: {
|
|
|
172
172
|
projectId: string;
|
|
173
173
|
tenantId: string;
|
|
174
174
|
id: string;
|
|
175
|
-
status: "pending" | "completed" | "
|
|
175
|
+
status: "pending" | "completed" | "failed" | "running" | "cancelled";
|
|
176
176
|
resolvedPayload?: Record<string, unknown> | null | undefined;
|
|
177
177
|
} | undefined>;
|
|
178
178
|
/**
|
|
@@ -197,7 +197,7 @@ declare function markCompletedStep(params: {
|
|
|
197
197
|
projectId: string;
|
|
198
198
|
tenantId: string;
|
|
199
199
|
id: string;
|
|
200
|
-
status: "pending" | "completed" | "
|
|
200
|
+
status: "pending" | "completed" | "failed" | "running" | "cancelled";
|
|
201
201
|
resolvedPayload?: Record<string, unknown> | null | undefined;
|
|
202
202
|
} | undefined>;
|
|
203
203
|
/**
|
|
@@ -222,7 +222,7 @@ declare function markFailedStep(params: {
|
|
|
222
222
|
projectId: string;
|
|
223
223
|
tenantId: string;
|
|
224
224
|
id: string;
|
|
225
|
-
status: "pending" | "completed" | "
|
|
225
|
+
status: "pending" | "completed" | "failed" | "running" | "cancelled";
|
|
226
226
|
resolvedPayload?: Record<string, unknown> | null | undefined;
|
|
227
227
|
} | undefined>;
|
|
228
228
|
/**
|