@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.
Files changed (109) hide show
  1. package/dist/.well-known/workflow/v1/manifest.json +34 -34
  2. package/dist/createApp.js +16 -90
  3. package/dist/data/db/manageDbClient.d.ts +2 -2
  4. package/dist/domains/evals/routes/datasetTriggers.d.ts +2 -2
  5. package/dist/domains/evals/routes/datasetTriggers.js +5 -2
  6. package/dist/domains/evals/routes/evaluationTriggers.js +9 -4
  7. package/dist/domains/evals/routes/index.d.ts +2 -2
  8. package/dist/domains/evals/workflow/routes.d.ts +2 -2
  9. package/dist/domains/manage/index.js +4 -0
  10. package/dist/domains/manage/routes/agent.js +16 -20
  11. package/dist/domains/manage/routes/agentFull.js +10 -17
  12. package/dist/domains/manage/routes/apiKeys.js +12 -14
  13. package/dist/domains/manage/routes/artifactComponents.js +12 -15
  14. package/dist/domains/manage/routes/availableAgents.d.ts +2 -2
  15. package/dist/domains/manage/routes/availableAgents.js +4 -2
  16. package/dist/domains/manage/routes/branches.js +12 -14
  17. package/dist/domains/manage/routes/cliAuth.js +4 -3
  18. package/dist/domains/manage/routes/contextConfigs.js +12 -15
  19. package/dist/domains/manage/routes/conversations.d.ts +2 -2
  20. package/dist/domains/manage/routes/conversations.js +5 -2
  21. package/dist/domains/manage/routes/credentialStores.js +7 -8
  22. package/dist/domains/manage/routes/credentials.js +12 -14
  23. package/dist/domains/manage/routes/dataComponents.js +12 -14
  24. package/dist/domains/manage/routes/evals/datasetItems.js +14 -19
  25. package/dist/domains/manage/routes/evals/datasetRunConfigs.js +13 -6
  26. package/dist/domains/manage/routes/evals/datasetRuns.js +7 -3
  27. package/dist/domains/manage/routes/evals/datasets.js +12 -14
  28. package/dist/domains/manage/routes/evals/evaluationJobConfigEvaluatorRelations.js +8 -8
  29. package/dist/domains/manage/routes/evals/evaluationJobConfigs.js +12 -14
  30. package/dist/domains/manage/routes/evals/evaluationResults.js +10 -13
  31. package/dist/domains/manage/routes/evals/evaluationRunConfigs.js +14 -15
  32. package/dist/domains/manage/routes/evals/evaluationSuiteConfigEvaluatorRelations.js +8 -8
  33. package/dist/domains/manage/routes/evals/evaluationSuiteConfigs.js +12 -14
  34. package/dist/domains/manage/routes/evals/evaluators.js +14 -15
  35. package/dist/domains/manage/routes/externalAgents.js +12 -14
  36. package/dist/domains/manage/routes/functionTools.js +12 -15
  37. package/dist/domains/manage/routes/functions.js +12 -15
  38. package/dist/domains/manage/routes/github.js +16 -8
  39. package/dist/domains/manage/routes/index.d.ts +2 -2
  40. package/dist/domains/manage/routes/index.js +0 -4
  41. package/dist/domains/manage/routes/invitations.d.ts +2 -2
  42. package/dist/domains/manage/routes/mcpCatalog.js +5 -2
  43. package/dist/domains/manage/routes/mcpToolGithubAccess.js +6 -4
  44. package/dist/domains/manage/routes/oauth.js +6 -66
  45. package/dist/domains/manage/routes/passwordResetLinks.d.ts +2 -2
  46. package/dist/domains/manage/routes/playgroundToken.js +4 -2
  47. package/dist/domains/manage/routes/projectFull.js +13 -26
  48. package/dist/domains/manage/routes/projectGithubAccess.js +7 -3
  49. package/dist/domains/manage/routes/projectMembers.js +14 -13
  50. package/dist/domains/manage/routes/projectPermissions.js +5 -2
  51. package/dist/domains/manage/routes/projects.js +12 -16
  52. package/dist/domains/manage/routes/ref.js +5 -2
  53. package/dist/domains/manage/routes/scheduledTriggers.js +24 -21
  54. package/dist/domains/manage/routes/signoz.d.ts +2 -2
  55. package/dist/domains/manage/routes/skills.js +12 -15
  56. package/dist/domains/manage/routes/subAgentArtifactComponents.js +12 -14
  57. package/dist/domains/manage/routes/subAgentDataComponents.js +12 -14
  58. package/dist/domains/manage/routes/subAgentExternalAgentRelations.js +12 -15
  59. package/dist/domains/manage/routes/subAgentFunctionTools.js +12 -14
  60. package/dist/domains/manage/routes/subAgentRelations.js +12 -15
  61. package/dist/domains/manage/routes/subAgentSkills.js +8 -12
  62. package/dist/domains/manage/routes/subAgentTeamAgentRelations.js +12 -15
  63. package/dist/domains/manage/routes/subAgentToolRelations.js +14 -16
  64. package/dist/domains/manage/routes/subAgents.js +12 -15
  65. package/dist/domains/manage/routes/thirdPartyMCPServers.js +7 -3
  66. package/dist/domains/manage/routes/tools.js +79 -16
  67. package/dist/domains/manage/routes/triggers.js +18 -22
  68. package/dist/domains/manage/routes/userProjectMemberships.js +5 -3
  69. package/dist/domains/manage/routes/users.d.ts +2 -2
  70. package/dist/domains/mcp/routes/mcp.d.ts +2 -2
  71. package/dist/domains/run/agents/relationTools.d.ts +2 -2
  72. package/dist/domains/run/routes/agents.js +4 -2
  73. package/dist/domains/run/routes/chat.js +4 -2
  74. package/dist/domains/run/routes/chatDataStream.js +6 -3
  75. package/dist/domains/run/routes/mcp.js +4 -2
  76. package/dist/domains/run/routes/webhooks.js +5 -3
  77. package/dist/domains/run/tools/distill-conversation-history-tool.d.ts +1 -1
  78. package/dist/domains/run/types/chat.d.ts +4 -4
  79. package/dist/domains/run/utils/token-estimator.d.ts +2 -2
  80. package/dist/domains/run/workflow/steps/scheduledTriggerSteps.d.ts +5 -5
  81. package/dist/factory.d.ts +21 -21
  82. package/dist/index.d.ts +18 -18
  83. package/dist/middleware/evalsAuth.d.ts +2 -2
  84. package/dist/middleware/evalsAuth.js +37 -32
  85. package/dist/middleware/index.d.ts +2 -3
  86. package/dist/middleware/index.js +3 -4
  87. package/dist/middleware/manageAuth.d.ts +9 -4
  88. package/dist/middleware/manageAuth.js +24 -2
  89. package/dist/middleware/projectAccess.d.ts +4 -3
  90. package/dist/middleware/projectAccess.js +78 -64
  91. package/dist/middleware/projectConfig.d.ts +3 -3
  92. package/dist/middleware/ref.d.ts +1 -5
  93. package/dist/middleware/ref.js +1 -21
  94. package/dist/middleware/requirePermission.d.ts +2 -2
  95. package/dist/middleware/requirePermission.js +64 -64
  96. package/dist/middleware/runAuth.d.ts +4 -4
  97. package/dist/middleware/sessionAuth.d.ts +3 -3
  98. package/dist/middleware/sessionAuth.js +23 -18
  99. package/dist/middleware/tenantAccess.d.ts +3 -2
  100. package/dist/middleware/tenantAccess.js +12 -1
  101. package/dist/middleware/tracing.d.ts +3 -3
  102. package/dist/middleware/tracing.js +1 -1
  103. package/dist/routes/capabilities.d.ts +10 -0
  104. package/dist/routes/capabilities.js +35 -0
  105. package/dist/routes/healthChecks.js +6 -3
  106. package/dist/routes/workflowProcess.d.ts +10 -0
  107. package/dist/routes/workflowProcess.js +23 -0
  108. package/dist/types/app.d.ts +3 -3
  109. package/package.json +4 -4
@@ -1,23 +1,17 @@
1
1
  import { requireProjectPermission } from "../../../middleware/projectAccess.js";
2
- import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
2
+ import { OpenAPIHono, z } from "@hono/zod-openapi";
3
3
  import { ComponentAssociationListResponse, ErrorResponseSchema, ExistsResponseSchema, FunctionToolListResponse, RemovedResponseSchema, SubAgentFunctionToolRelationApiInsertSchema, SubAgentFunctionToolRelationResponse, TenantProjectAgentParamsSchema, TenantProjectAgentSubAgentParamsSchema, addFunctionToolToSubAgent, commonGetErrorResponses, createApiError, getFunctionToolById, getFunctionToolsForSubAgent, getSubAgentById, getSubAgentsUsingFunctionTool, isFunctionToolAssociatedWithSubAgent, removeFunctionToolFromSubAgent } from "@inkeep/agents-core";
4
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
4
5
 
5
6
  //#region src/domains/manage/routes/subAgentFunctionTools.ts
6
7
  const app = new OpenAPIHono();
7
- app.use("/", async (c, next) => {
8
- if (c.req.method === "POST") return requireProjectPermission("edit")(c, next);
9
- return next();
10
- });
11
- app.use("/sub-agent/:subAgentId/function-tool/:functionToolId", async (c, next) => {
12
- if (c.req.method === "DELETE") return requireProjectPermission("edit")(c, next);
13
- return next();
14
- });
15
- app.openapi(createRoute({
8
+ app.openapi(createProtectedRoute({
16
9
  method: "get",
17
10
  path: "/sub-agent/{subAgentId}",
18
11
  summary: "Get Function Tools for SubAgent",
19
12
  operationId: "get-function-tools-for-sub-agent",
20
13
  tags: ["SubAgents", "Function Tools"],
14
+ permission: requireProjectPermission("view"),
21
15
  request: { params: TenantProjectAgentSubAgentParamsSchema },
22
16
  responses: {
23
17
  200: {
@@ -39,12 +33,13 @@ app.openapi(createRoute({
39
33
  });
40
34
  return c.json(result);
41
35
  });
42
- app.openapi(createRoute({
36
+ app.openapi(createProtectedRoute({
43
37
  method: "get",
44
38
  path: "/function-tool/{functionToolId}/sub-agents",
45
39
  summary: "Get SubAgents Using Function Tool",
46
40
  operationId: "get-sub-agents-using-function-tool",
47
41
  tags: ["SubAgents", "Function Tools"],
42
+ permission: requireProjectPermission("view"),
48
43
  request: { params: TenantProjectAgentParamsSchema.extend({ functionToolId: z.string() }) },
49
44
  responses: {
50
45
  200: {
@@ -66,12 +61,13 @@ app.openapi(createRoute({
66
61
  });
67
62
  return c.json({ data: agents });
68
63
  });
69
- app.openapi(createRoute({
64
+ app.openapi(createProtectedRoute({
70
65
  method: "post",
71
66
  path: "/",
72
67
  summary: "Associate Function Tool with SubAgent",
73
68
  operationId: "associate-function-tool-with-sub-agent",
74
69
  tags: ["SubAgents", "Function Tools"],
70
+ permission: requireProjectPermission("edit"),
75
71
  request: {
76
72
  params: TenantProjectAgentParamsSchema,
77
73
  body: { content: { "application/json": { schema: SubAgentFunctionToolRelationApiInsertSchema } } }
@@ -137,12 +133,13 @@ app.openapi(createRoute({
137
133
  });
138
134
  return c.json({ data: association }, 201);
139
135
  });
140
- app.openapi(createRoute({
136
+ app.openapi(createProtectedRoute({
141
137
  method: "delete",
142
138
  path: "/sub-agent/{subAgentId}/function-tool/{functionToolId}",
143
139
  summary: "Remove Function Tool from SubAgent",
144
140
  operationId: "remove-function-tool-from-sub-agent",
145
141
  tags: ["SubAgents", "Function Tools"],
142
+ permission: requireProjectPermission("edit"),
146
143
  request: { params: TenantProjectAgentSubAgentParamsSchema.extend({ functionToolId: z.string() }) },
147
144
  responses: {
148
145
  200: {
@@ -171,12 +168,13 @@ app.openapi(createRoute({
171
168
  removed: true
172
169
  });
173
170
  });
174
- app.openapi(createRoute({
171
+ app.openapi(createProtectedRoute({
175
172
  method: "get",
176
173
  path: "/sub-agent/{subAgentId}/function-tool/{functionToolId}/exists",
177
174
  summary: "Check if Function Tool is Associated with SubAgent",
178
175
  operationId: "check-function-tool-sub-agent-association",
179
176
  tags: ["SubAgents", "Function Tools"],
177
+ permission: requireProjectPermission("view"),
180
178
  request: { params: TenantProjectAgentSubAgentParamsSchema.extend({ functionToolId: z.string() }) },
181
179
  responses: {
182
180
  200: {
@@ -1,25 +1,18 @@
1
1
  import { requireProjectPermission } from "../../../middleware/projectAccess.js";
2
2
  import { speakeasyOffsetLimitPagination } from "../../../utils/speakeasy.js";
3
- import { OpenAPIHono, createRoute } from "@hono/zod-openapi";
3
+ import { OpenAPIHono } from "@hono/zod-openapi";
4
4
  import { ErrorResponseSchema, PaginationQueryParamsSchema, SubAgentRelationApiInsertSchema, SubAgentRelationApiUpdateSchema, SubAgentRelationListResponse, SubAgentRelationQuerySchema, SubAgentRelationResponse, TenantProjectAgentIdParamsSchema, TenantProjectAgentParamsSchema, commonGetErrorResponses, createApiError, createSubAgentRelation, deleteSubAgentRelation, generateId, getAgentRelationById, getAgentRelationsBySource, getSubAgentRelationsByTarget, listAgentRelations, updateAgentRelation, validateSubAgent } from "@inkeep/agents-core";
5
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
5
6
 
6
7
  //#region src/domains/manage/routes/subAgentRelations.ts
7
8
  const app = new OpenAPIHono();
8
- app.use("/", async (c, next) => {
9
- if (c.req.method === "POST") return requireProjectPermission("edit")(c, next);
10
- return next();
11
- });
12
- app.use("/:id", async (c, next) => {
13
- if (c.req.method === "PUT") return requireProjectPermission("edit")(c, next);
14
- if (c.req.method === "DELETE") return requireProjectPermission("edit")(c, next);
15
- return next();
16
- });
17
- app.openapi(createRoute({
9
+ app.openapi(createProtectedRoute({
18
10
  method: "get",
19
11
  path: "/",
20
12
  summary: "List Sub Agent Relations",
21
13
  operationId: "list-sub-agent-relations",
22
14
  tags: ["SubAgents"],
15
+ permission: requireProjectPermission("view"),
23
16
  request: {
24
17
  params: TenantProjectAgentParamsSchema,
25
18
  query: PaginationQueryParamsSchema.merge(SubAgentRelationQuerySchema)
@@ -99,12 +92,13 @@ app.openapi(createRoute({
99
92
  });
100
93
  }
101
94
  });
102
- app.openapi(createRoute({
95
+ app.openapi(createProtectedRoute({
103
96
  method: "get",
104
97
  path: "/{id}",
105
98
  summary: "Get Sub Agent Relation",
106
99
  operationId: "get-sub-agent-relation-by-id",
107
100
  tags: ["SubAgents"],
101
+ permission: requireProjectPermission("view"),
108
102
  request: { params: TenantProjectAgentIdParamsSchema },
109
103
  responses: {
110
104
  200: {
@@ -130,12 +124,13 @@ app.openapi(createRoute({
130
124
  });
131
125
  return c.json({ data: agentRelation });
132
126
  });
133
- app.openapi(createRoute({
127
+ app.openapi(createProtectedRoute({
134
128
  method: "post",
135
129
  path: "/",
136
130
  summary: "Create Sub Agent Relation",
137
131
  operationId: "create-sub-agent-relation",
138
132
  tags: ["SubAgents"],
133
+ permission: requireProjectPermission("edit"),
139
134
  request: {
140
135
  params: TenantProjectAgentParamsSchema,
141
136
  body: { content: { "application/json": { schema: SubAgentRelationApiInsertSchema } } }
@@ -191,12 +186,13 @@ app.openapi(createRoute({
191
186
  const agentRelation = await createSubAgentRelation(db)({ ...relationData });
192
187
  return c.json({ data: agentRelation }, 201);
193
188
  });
194
- app.openapi(createRoute({
189
+ app.openapi(createProtectedRoute({
195
190
  method: "put",
196
191
  path: "/{id}",
197
192
  summary: "Update Sub Agent Relation",
198
193
  operationId: "update-sub-agent-relation",
199
194
  tags: ["SubAgents"],
195
+ permission: requireProjectPermission("edit"),
200
196
  request: {
201
197
  params: TenantProjectAgentIdParamsSchema,
202
198
  body: { content: { "application/json": { schema: SubAgentRelationApiUpdateSchema } } }
@@ -227,12 +223,13 @@ app.openapi(createRoute({
227
223
  });
228
224
  return c.json({ data: updatedAgentRelation });
229
225
  });
230
- app.openapi(createRoute({
226
+ app.openapi(createProtectedRoute({
231
227
  method: "delete",
232
228
  path: "/{id}",
233
229
  summary: "Delete Sub Agent Relation",
234
230
  operationId: "delete-sub-agent-relation",
235
231
  tags: ["SubAgents"],
232
+ permission: requireProjectPermission("edit"),
236
233
  request: { params: TenantProjectAgentIdParamsSchema },
237
234
  responses: {
238
235
  204: { description: "Sub Agent Relation deleted successfully" },
@@ -1,23 +1,17 @@
1
1
  import { requireProjectPermission } from "../../../middleware/projectAccess.js";
2
- import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
2
+ import { OpenAPIHono, z } from "@hono/zod-openapi";
3
3
  import { SubAgentSkillApiInsertSchema, SubAgentSkillResponse, SubAgentSkillWithIndexArrayResponse, TenantProjectAgentParamsSchema, TenantProjectAgentSubAgentParamsSchema, commonGetErrorResponses, createApiError, deleteSubAgentSkill, getSkillById, getSkillsForSubAgents, getSubAgentById, upsertSubAgentSkill } from "@inkeep/agents-core";
4
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
4
5
 
5
6
  //#region src/domains/manage/routes/subAgentSkills.ts
6
7
  const app = new OpenAPIHono();
7
- app.use("/", async (c, next) => {
8
- if (c.req.method === "POST") return requireProjectPermission("edit")(c, next);
9
- return next();
10
- });
11
- app.use("/agent/:subAgentId/skill/:skillId", async (c, next) => {
12
- if (c.req.method === "DELETE") return requireProjectPermission("edit")(c, next);
13
- return next();
14
- });
15
- app.openapi(createRoute({
8
+ app.openapi(createProtectedRoute({
16
9
  method: "get",
17
10
  path: "/agent/{subAgentId}",
18
11
  summary: "List Skills for Sub-Agent",
19
12
  operationId: "get-skills-for-subagent",
20
13
  tags: ["Skills"],
14
+ permission: requireProjectPermission("view"),
21
15
  request: { params: TenantProjectAgentSubAgentParamsSchema },
22
16
  responses: {
23
17
  200: {
@@ -38,12 +32,13 @@ app.openapi(createRoute({
38
32
  });
39
33
  return c.json({ data: skills });
40
34
  });
41
- app.openapi(createRoute({
35
+ app.openapi(createProtectedRoute({
42
36
  method: "post",
43
37
  path: "/",
44
38
  summary: "Attach Skill to Sub-Agent",
45
39
  operationId: "create-subagent-skill",
46
40
  tags: ["Skills"],
41
+ permission: requireProjectPermission("edit"),
47
42
  request: {
48
43
  params: TenantProjectAgentParamsSchema,
49
44
  body: { content: { "application/json": { schema: SubAgentSkillApiInsertSchema } } }
@@ -94,12 +89,13 @@ app.openapi(createRoute({
94
89
  });
95
90
  return c.json({ data: relation }, 201);
96
91
  });
97
- app.openapi(createRoute({
92
+ app.openapi(createProtectedRoute({
98
93
  method: "delete",
99
94
  path: "/agent/{subAgentId}/skill/{skillId}",
100
95
  summary: "Detach Skill from Sub-Agent",
101
96
  operationId: "delete-subagent-skill",
102
97
  tags: ["Skills"],
98
+ permission: requireProjectPermission("edit"),
103
99
  request: { params: TenantProjectAgentParamsSchema.extend({
104
100
  subAgentId: z.string(),
105
101
  skillId: z.string()
@@ -1,25 +1,18 @@
1
1
  import { requireProjectPermission } from "../../../middleware/projectAccess.js";
2
2
  import { speakeasyOffsetLimitPagination } from "../../../utils/speakeasy.js";
3
- import { OpenAPIHono, createRoute } from "@hono/zod-openapi";
3
+ import { OpenAPIHono } from "@hono/zod-openapi";
4
4
  import { ErrorResponseSchema, PaginationQueryParamsSchema, SubAgentTeamAgentRelationApiInsertSchema, SubAgentTeamAgentRelationApiUpdateSchema, SubAgentTeamAgentRelationListResponse, SubAgentTeamAgentRelationResponse, TenantProjectAgentSubAgentIdParamsSchema, TenantProjectAgentSubAgentParamsSchema, commonGetErrorResponses, createApiError, createSubAgentTeamAgentRelation, deleteSubAgentTeamAgentRelation, generateId, getSubAgentTeamAgentRelationById, listSubAgentTeamAgentRelations, updateSubAgentTeamAgentRelation } from "@inkeep/agents-core";
5
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
5
6
 
6
7
  //#region src/domains/manage/routes/subAgentTeamAgentRelations.ts
7
8
  const app = new OpenAPIHono();
8
- app.use("/", async (c, next) => {
9
- if (c.req.method === "POST") return requireProjectPermission("edit")(c, next);
10
- return next();
11
- });
12
- app.use("/:id", async (c, next) => {
13
- if (c.req.method === "PUT") return requireProjectPermission("edit")(c, next);
14
- if (c.req.method === "DELETE") return requireProjectPermission("edit")(c, next);
15
- return next();
16
- });
17
- app.openapi(createRoute({
9
+ app.openapi(createProtectedRoute({
18
10
  method: "get",
19
11
  path: "/",
20
12
  summary: "List Sub Agent Team Agent Relations",
21
13
  operationId: "list-sub-agent-team-agent-relations",
22
14
  tags: ["SubAgents"],
15
+ permission: requireProjectPermission("view"),
23
16
  request: {
24
17
  params: TenantProjectAgentSubAgentParamsSchema,
25
18
  query: PaginationQueryParamsSchema
@@ -59,12 +52,13 @@ app.openapi(createRoute({
59
52
  });
60
53
  }
61
54
  });
62
- app.openapi(createRoute({
55
+ app.openapi(createProtectedRoute({
63
56
  method: "get",
64
57
  path: "/{id}",
65
58
  summary: "Get Sub Agent Team Agent Relation",
66
59
  operationId: "get-sub-agent-team-agent-relation-by-id",
67
60
  tags: ["SubAgents"],
61
+ permission: requireProjectPermission("view"),
68
62
  request: { params: TenantProjectAgentSubAgentIdParamsSchema },
69
63
  responses: {
70
64
  200: {
@@ -91,12 +85,13 @@ app.openapi(createRoute({
91
85
  });
92
86
  return c.json({ data: relation });
93
87
  });
94
- app.openapi(createRoute({
88
+ app.openapi(createProtectedRoute({
95
89
  method: "post",
96
90
  path: "/",
97
91
  summary: "Create Sub Agent Team Agent Relation",
98
92
  operationId: "create-sub-agent-team-agent-relation",
99
93
  tags: ["SubAgents"],
94
+ permission: requireProjectPermission("edit"),
100
95
  request: {
101
96
  params: TenantProjectAgentSubAgentParamsSchema,
102
97
  body: { content: { "application/json": { schema: SubAgentTeamAgentRelationApiInsertSchema } } }
@@ -142,12 +137,13 @@ app.openapi(createRoute({
142
137
  });
143
138
  return c.json({ data: relation }, 201);
144
139
  });
145
- app.openapi(createRoute({
140
+ app.openapi(createProtectedRoute({
146
141
  method: "put",
147
142
  path: "/{id}",
148
143
  summary: "Update Sub Agent Team Agent Relation",
149
144
  operationId: "update-sub-agent-team-agent-relation",
150
145
  tags: ["SubAgents"],
146
+ permission: requireProjectPermission("edit"),
151
147
  request: {
152
148
  params: TenantProjectAgentSubAgentIdParamsSchema,
153
149
  body: { content: { "application/json": { schema: SubAgentTeamAgentRelationApiUpdateSchema } } }
@@ -179,12 +175,13 @@ app.openapi(createRoute({
179
175
  });
180
176
  return c.json({ data: updatedRelation });
181
177
  });
182
- app.openapi(createRoute({
178
+ app.openapi(createProtectedRoute({
183
179
  method: "delete",
184
180
  path: "/{id}",
185
181
  summary: "Delete Sub Agent Team Agent Relation",
186
182
  operationId: "delete-sub-agent-team-agent-relation",
187
183
  tags: ["SubAgents"],
184
+ permission: requireProjectPermission("edit"),
188
185
  request: { params: TenantProjectAgentSubAgentIdParamsSchema },
189
186
  responses: {
190
187
  204: { description: "Sub Agent Team Agent Relation deleted successfully" },
@@ -1,25 +1,18 @@
1
1
  import { requireProjectPermission } from "../../../middleware/projectAccess.js";
2
2
  import { speakeasyOffsetLimitPagination } from "../../../utils/speakeasy.js";
3
- import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
3
+ import { OpenAPIHono, z } from "@hono/zod-openapi";
4
4
  import { ErrorResponseSchema, PaginationQueryParamsSchema, SubAgentToolRelationApiInsertSchema, SubAgentToolRelationApiUpdateSchema, SubAgentToolRelationListResponse, SubAgentToolRelationResponse, TenantProjectAgentIdParamsSchema, TenantProjectAgentParamsSchema, commonGetErrorResponses, createAgentToolRelation, createApiError, deleteAgentToolRelation, getAgentToolRelationByAgent, getAgentToolRelationById, getAgentToolRelationByTool, getAgentsForTool, listAgentToolRelations, updateAgentToolRelation } from "@inkeep/agents-core";
5
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
5
6
 
6
7
  //#region src/domains/manage/routes/subAgentToolRelations.ts
7
8
  const app = new OpenAPIHono();
8
- app.use("/", async (c, next) => {
9
- if (c.req.method === "POST") return requireProjectPermission("edit")(c, next);
10
- return next();
11
- });
12
- app.use("/:id", async (c, next) => {
13
- if (c.req.method === "PUT") return requireProjectPermission("edit")(c, next);
14
- if (c.req.method === "DELETE") return requireProjectPermission("edit")(c, next);
15
- return next();
16
- });
17
- app.openapi(createRoute({
9
+ app.openapi(createProtectedRoute({
18
10
  method: "get",
19
11
  path: "/",
20
12
  summary: "List SubAgent Tool Relations",
21
13
  operationId: "list-subagent-tool-relations",
22
14
  tags: ["SubAgents", "Tools"],
15
+ permission: requireProjectPermission("view"),
23
16
  request: {
24
17
  params: TenantProjectAgentParamsSchema,
25
18
  query: PaginationQueryParamsSchema.extend({
@@ -93,12 +86,13 @@ app.openapi(createRoute({
93
86
  }
94
87
  return c.json(result);
95
88
  });
96
- app.openapi(createRoute({
89
+ app.openapi(createProtectedRoute({
97
90
  method: "get",
98
91
  path: "/{id}",
99
92
  summary: "Get SubAgent Tool Relation",
100
93
  operationId: "get-subagent-tool-relation",
101
94
  tags: ["SubAgents", "Tools"],
95
+ permission: requireProjectPermission("view"),
102
96
  request: { params: TenantProjectAgentIdParamsSchema },
103
97
  responses: {
104
98
  200: {
@@ -125,12 +119,13 @@ app.openapi(createRoute({
125
119
  });
126
120
  return c.json({ data: agentToolRelation });
127
121
  });
128
- app.openapi(createRoute({
122
+ app.openapi(createProtectedRoute({
129
123
  method: "get",
130
124
  path: "/tool/{toolId}/sub-agents",
131
125
  summary: "Get SubAgents for Tool",
132
126
  operationId: "get-subagents-for-tool",
133
127
  tags: ["SubAgents", "Tools"],
128
+ permission: requireProjectPermission("view"),
134
129
  request: {
135
130
  params: TenantProjectAgentParamsSchema.extend({ toolId: z.string() }),
136
131
  query: PaginationQueryParamsSchema
@@ -160,12 +155,13 @@ app.openapi(createRoute({
160
155
  });
161
156
  return c.json(dbResult);
162
157
  });
163
- app.openapi(createRoute({
158
+ app.openapi(createProtectedRoute({
164
159
  method: "post",
165
160
  path: "/",
166
161
  summary: "Create SubAgent Tool Relation",
167
162
  operationId: "create-subagent-tool-relation",
168
163
  tags: ["SubAgents", "Tools"],
164
+ permission: requireProjectPermission("edit"),
169
165
  request: {
170
166
  params: TenantProjectAgentParamsSchema,
171
167
  body: { content: { "application/json": { schema: SubAgentToolRelationApiInsertSchema } } }
@@ -213,12 +209,13 @@ app.openapi(createRoute({
213
209
  throw error;
214
210
  }
215
211
  });
216
- app.openapi(createRoute({
212
+ app.openapi(createProtectedRoute({
217
213
  method: "put",
218
214
  path: "/{id}",
219
215
  summary: "Update SubAgent Tool Relation",
220
216
  operationId: "update-subagent-tool-relation",
221
217
  tags: ["SubAgents", "Tools"],
218
+ permission: requireProjectPermission("edit"),
222
219
  request: {
223
220
  params: TenantProjectAgentIdParamsSchema,
224
221
  body: { content: { "application/json": { schema: SubAgentToolRelationApiUpdateSchema } } }
@@ -253,12 +250,13 @@ app.openapi(createRoute({
253
250
  });
254
251
  return c.json({ data: updatedAgentToolRelation });
255
252
  });
256
- app.openapi(createRoute({
253
+ app.openapi(createProtectedRoute({
257
254
  method: "delete",
258
255
  path: "/{id}",
259
256
  summary: "Delete SubAgent Tool Relation",
260
257
  operationId: "delete-subagent-tool-relation",
261
258
  tags: ["SubAgents", "Tools"],
259
+ permission: requireProjectPermission("edit"),
262
260
  request: { params: TenantProjectAgentIdParamsSchema },
263
261
  responses: {
264
262
  204: { description: "SubAgent tool relation deleted successfully" },
@@ -1,26 +1,19 @@
1
1
  import runDbClient_default from "../../../data/db/runDbClient.js";
2
2
  import { requireProjectPermission } from "../../../middleware/projectAccess.js";
3
3
  import { speakeasyOffsetLimitPagination } from "../../../utils/speakeasy.js";
4
- import { OpenAPIHono, createRoute } from "@hono/zod-openapi";
4
+ import { OpenAPIHono } from "@hono/zod-openapi";
5
5
  import { ErrorResponseSchema, PaginationQueryParamsSchema, SubAgentApiInsertSchema, SubAgentApiUpdateSchema, SubAgentIsDefaultError, SubAgentListResponse, SubAgentResponse, TenantProjectAgentIdParamsSchema, TenantProjectAgentParamsSchema, cascadeDeleteBySubAgent, commonGetErrorResponses, createApiError, createSubAgent, deleteSubAgent, generateId, getSubAgentById, listSubAgentsPaginated, updateSubAgent } from "@inkeep/agents-core";
6
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
6
7
 
7
8
  //#region src/domains/manage/routes/subAgents.ts
8
9
  const app = new OpenAPIHono();
9
- app.use("/", async (c, next) => {
10
- if (c.req.method === "POST") return requireProjectPermission("edit")(c, next);
11
- return next();
12
- });
13
- app.use("/:id", async (c, next) => {
14
- if (c.req.method === "PUT") return requireProjectPermission("edit")(c, next);
15
- if (c.req.method === "DELETE") return requireProjectPermission("edit")(c, next);
16
- return next();
17
- });
18
- app.openapi(createRoute({
10
+ app.openapi(createProtectedRoute({
19
11
  method: "get",
20
12
  path: "/",
21
13
  summary: "List SubAgents",
22
14
  operationId: "list-subagents",
23
15
  tags: ["SubAgents"],
16
+ permission: requireProjectPermission("view"),
24
17
  request: {
25
18
  params: TenantProjectAgentParamsSchema,
26
19
  query: PaginationQueryParamsSchema
@@ -57,12 +50,13 @@ app.openapi(createRoute({
57
50
  };
58
51
  return c.json(dataWithType);
59
52
  });
60
- app.openapi(createRoute({
53
+ app.openapi(createProtectedRoute({
61
54
  method: "get",
62
55
  path: "/{id}",
63
56
  summary: "Get SubAgent",
64
57
  operationId: "get-subagent-by-id",
65
58
  tags: ["SubAgents"],
59
+ permission: requireProjectPermission("view"),
66
60
  request: { params: TenantProjectAgentIdParamsSchema },
67
61
  responses: {
68
62
  200: {
@@ -91,12 +85,13 @@ app.openapi(createRoute({
91
85
  };
92
86
  return c.json({ data: subAgentWithType });
93
87
  });
94
- app.openapi(createRoute({
88
+ app.openapi(createProtectedRoute({
95
89
  method: "post",
96
90
  path: "/",
97
91
  summary: "Create SubAgent",
98
92
  operationId: "create-subagent",
99
93
  tags: ["SubAgents"],
94
+ permission: requireProjectPermission("edit"),
100
95
  request: {
101
96
  params: TenantProjectAgentParamsSchema,
102
97
  body: { content: { "application/json": { schema: SubAgentApiInsertSchema } } }
@@ -124,12 +119,13 @@ app.openapi(createRoute({
124
119
  };
125
120
  return c.json({ data: subAgentWithType }, 201);
126
121
  });
127
- app.openapi(createRoute({
122
+ app.openapi(createProtectedRoute({
128
123
  method: "put",
129
124
  path: "/{id}",
130
125
  summary: "Update SubAgent",
131
126
  operationId: "update-subagent",
132
127
  tags: ["SubAgents"],
128
+ permission: requireProjectPermission("edit"),
133
129
  request: {
134
130
  params: TenantProjectAgentIdParamsSchema,
135
131
  body: { content: { "application/json": { schema: SubAgentApiUpdateSchema } } }
@@ -163,12 +159,13 @@ app.openapi(createRoute({
163
159
  };
164
160
  return c.json({ data: subAgentWithType });
165
161
  });
166
- app.openapi(createRoute({
162
+ app.openapi(createProtectedRoute({
167
163
  method: "delete",
168
164
  path: "/{id}",
169
165
  summary: "Delete SubAgent",
170
166
  operationId: "delete-subagent",
171
167
  tags: ["SubAgents"],
168
+ permission: requireProjectPermission("edit"),
172
169
  request: { params: TenantProjectAgentIdParamsSchema },
173
170
  responses: {
174
171
  204: { description: "SubAgent deleted successfully" },
@@ -1,5 +1,7 @@
1
- import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
1
+ import { requireProjectPermission } from "../../../middleware/projectAccess.js";
2
+ import { OpenAPIHono, z } from "@hono/zod-openapi";
2
3
  import { TenantProjectParamsSchema, ThirdPartyMCPServerResponse, commonGetErrorResponses, createApiError, fetchSingleComposioServer, getComposioOAuthRedirectUrl } from "@inkeep/agents-core";
4
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
3
5
 
4
6
  //#region src/domains/manage/routes/thirdPartyMCPServers.ts
5
7
  const app = new OpenAPIHono();
@@ -12,13 +14,14 @@ const GetOAuthRedirectBodySchema = z.object({
12
14
  credentialScope: z.enum(["project", "user"]).describe("The credential scope")
13
15
  });
14
16
  const OAuthRedirectResponse = z.object({ data: z.object({ redirectUrl: z.string().nullable() }) });
15
- app.openapi(createRoute({
17
+ app.openapi(createProtectedRoute({
16
18
  method: "post",
17
19
  path: "/",
18
20
  summary: "Get Third-Party MCP Server Details",
19
21
  operationId: "get-third-party-mcp-server",
20
22
  tags: ["Third-Party MCP Servers"],
21
23
  description: "Fetch details for a specific third-party MCP server (e.g., Composio) including authentication status and connect URL",
24
+ permission: requireProjectPermission("view"),
22
25
  request: {
23
26
  params: TenantProjectParamsSchema,
24
27
  body: { content: { "application/json": { schema: ThirdPartyMCPServerBodySchema } } }
@@ -37,13 +40,14 @@ app.openapi(createRoute({
37
40
  const server = await fetchSingleComposioServer(tenantId, projectId, url, credentialScope ?? "project", userId);
38
41
  return c.json({ data: server });
39
42
  });
40
- app.openapi(createRoute({
43
+ app.openapi(createProtectedRoute({
41
44
  method: "post",
42
45
  path: "/oauth-redirect",
43
46
  summary: "Get OAuth Redirect URL",
44
47
  operationId: "get-oauth-redirect-url",
45
48
  tags: ["Third-Party MCP Servers"],
46
49
  description: "Get the OAuth redirect URL for a third-party MCP server. Call this after scope selection to get the correct URL for the selected scope.",
50
+ permission: requireProjectPermission("edit"),
47
51
  request: {
48
52
  params: TenantProjectParamsSchema,
49
53
  body: { content: { "application/json": { schema: GetOAuthRedirectBodySchema } } }