@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,24 +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 { DataComponentApiInsertSchema, DataComponentApiUpdateSchema, DataComponentListResponse, DataComponentResponse, ErrorResponseSchema, PaginationQueryParamsSchema, TenantProjectIdParamsSchema, TenantProjectParamsSchema, commonGetErrorResponses, createApiError, createDataComponent, deleteDataComponent, getDataComponent, listDataComponentsPaginated, updateDataComponent, validatePropsAsJsonSchema } from "@inkeep/agents-core";
5
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
5
6
 
6
7
  //#region src/domains/manage/routes/dataComponents.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" || c.req.method === "DELETE") return requireProjectPermission("edit")(c, next);
14
- return next();
15
- });
16
- app.openapi(createRoute({
9
+ app.openapi(createProtectedRoute({
17
10
  method: "get",
18
11
  path: "/",
19
12
  summary: "List Data Components",
20
13
  operationId: "list-data-components",
21
14
  tags: ["Data Components"],
15
+ permission: requireProjectPermission("view"),
22
16
  request: {
23
17
  params: TenantProjectParamsSchema,
24
18
  query: PaginationQueryParamsSchema
@@ -48,12 +42,13 @@ app.openapi(createRoute({
48
42
  });
49
43
  return c.json(result);
50
44
  });
51
- app.openapi(createRoute({
45
+ app.openapi(createProtectedRoute({
52
46
  method: "get",
53
47
  path: "/{id}",
54
48
  summary: "Get Data Component",
55
49
  operationId: "get-data-component-by-id",
56
50
  tags: ["Data Components"],
51
+ permission: requireProjectPermission("view"),
57
52
  request: { params: TenantProjectIdParamsSchema },
58
53
  responses: {
59
54
  200: {
@@ -78,12 +73,13 @@ app.openapi(createRoute({
78
73
  });
79
74
  return c.json({ data: dataComponent });
80
75
  });
81
- app.openapi(createRoute({
76
+ app.openapi(createProtectedRoute({
82
77
  method: "post",
83
78
  path: "/",
84
79
  summary: "Create Data Component",
85
80
  operationId: "create-data-component",
86
81
  tags: ["Data Components"],
82
+ permission: requireProjectPermission("edit"),
87
83
  request: {
88
84
  params: TenantProjectParamsSchema,
89
85
  body: { content: { "application/json": { schema: DataComponentApiInsertSchema } } }
@@ -114,12 +110,13 @@ app.openapi(createRoute({
114
110
  const dataComponent = await createDataComponent(db)(dataComponentData);
115
111
  return c.json({ data: dataComponent }, 201);
116
112
  });
117
- app.openapi(createRoute({
113
+ app.openapi(createProtectedRoute({
118
114
  method: "put",
119
115
  path: "/{id}",
120
116
  summary: "Update Data Component",
121
117
  operationId: "update-data-component",
122
118
  tags: ["Data Components"],
119
+ permission: requireProjectPermission("edit"),
123
120
  request: {
124
121
  params: TenantProjectIdParamsSchema,
125
122
  body: { content: { "application/json": { schema: DataComponentApiUpdateSchema } } }
@@ -156,12 +153,13 @@ app.openapi(createRoute({
156
153
  });
157
154
  return c.json({ data: updatedDataComponent });
158
155
  });
159
- app.openapi(createRoute({
156
+ app.openapi(createProtectedRoute({
160
157
  method: "delete",
161
158
  path: "/{id}",
162
159
  summary: "Delete Data Component",
163
160
  operationId: "delete-data-component",
164
161
  tags: ["Data Components"],
162
+ permission: requireProjectPermission("edit"),
165
163
  request: { params: TenantProjectIdParamsSchema },
166
164
  responses: {
167
165
  204: { description: "Data component deleted successfully" },
@@ -1,29 +1,19 @@
1
1
  import { getLogger as getLogger$1 } from "../../../../logger.js";
2
2
  import { requireProjectPermission } from "../../../../middleware/projectAccess.js";
3
- import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
3
+ import { OpenAPIHono, z } from "@hono/zod-openapi";
4
4
  import { DatasetItemApiInsertSchema, DatasetItemApiSelectSchema, DatasetItemApiUpdateSchema, ListResponseSchema, SingleResponseSchema, TenantProjectParamsSchema, commonGetErrorResponses, createApiError, createDatasetItem, createDatasetItems, deleteDatasetItem, generateId, getDatasetItemById, listDatasetItems, updateDatasetItem } from "@inkeep/agents-core";
5
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
5
6
 
6
7
  //#region src/domains/manage/routes/evals/datasetItems.ts
7
8
  const app = new OpenAPIHono();
8
9
  const logger = getLogger$1("datasetItems");
9
- app.use("/:datasetId/items", async (c, next) => {
10
- if (c.req.method === "POST") return requireProjectPermission("edit")(c, next);
11
- return next();
12
- });
13
- app.use("/:datasetId/items/bulk", async (c, next) => {
14
- if (c.req.method === "POST") return requireProjectPermission("edit")(c, next);
15
- return next();
16
- });
17
- app.use("/:datasetId/items/:itemId", async (c, next) => {
18
- if (["PATCH", "DELETE"].includes(c.req.method)) return requireProjectPermission("edit")(c, next);
19
- return next();
20
- });
21
- app.openapi(createRoute({
10
+ app.openapi(createProtectedRoute({
22
11
  method: "get",
23
12
  path: "/{datasetId}",
24
13
  summary: "List Dataset Items by Dataset ID",
25
14
  operationId: "list-dataset-items",
26
15
  tags: ["Evaluations"],
16
+ permission: requireProjectPermission("view"),
27
17
  request: { params: TenantProjectParamsSchema.extend({ datasetId: z.string() }) },
28
18
  responses: {
29
19
  200: {
@@ -63,12 +53,13 @@ app.openapi(createRoute({
63
53
  }), 500);
64
54
  }
65
55
  });
66
- app.openapi(createRoute({
56
+ app.openapi(createProtectedRoute({
67
57
  method: "get",
68
58
  path: "/{datasetId}/items/{itemId}",
69
59
  summary: "Get Dataset Item by ID",
70
60
  operationId: "get-dataset-item",
71
61
  tags: ["Evaluations"],
62
+ permission: requireProjectPermission("view"),
72
63
  request: { params: TenantProjectParamsSchema.extend({
73
64
  datasetId: z.string(),
74
65
  itemId: z.string()
@@ -107,12 +98,13 @@ app.openapi(createRoute({
107
98
  }), 500);
108
99
  }
109
100
  });
110
- app.openapi(createRoute({
101
+ app.openapi(createProtectedRoute({
111
102
  method: "post",
112
103
  path: "/{datasetId}/items",
113
104
  summary: "Create Dataset Item",
114
105
  operationId: "create-dataset-item",
115
106
  tags: ["Evaluations"],
107
+ permission: requireProjectPermission("edit"),
116
108
  request: {
117
109
  params: TenantProjectParamsSchema.extend({ datasetId: z.string() }),
118
110
  body: { content: { "application/json": { schema: DatasetItemApiInsertSchema } } }
@@ -158,12 +150,13 @@ app.openapi(createRoute({
158
150
  }), 500);
159
151
  }
160
152
  });
161
- app.openapi(createRoute({
153
+ app.openapi(createProtectedRoute({
162
154
  method: "post",
163
155
  path: "/{datasetId}/items/bulk",
164
156
  summary: "Create Multiple Dataset Items",
165
157
  operationId: "create-dataset-items-bulk",
166
158
  tags: ["Evaluations"],
159
+ permission: requireProjectPermission("edit"),
167
160
  request: {
168
161
  params: TenantProjectParamsSchema.extend({ datasetId: z.string() }),
169
162
  body: { content: { "application/json": { schema: z.array(DatasetItemApiInsertSchema) } } }
@@ -216,12 +209,13 @@ app.openapi(createRoute({
216
209
  }), 500);
217
210
  }
218
211
  });
219
- app.openapi(createRoute({
212
+ app.openapi(createProtectedRoute({
220
213
  method: "patch",
221
214
  path: "/{datasetId}/items/{itemId}",
222
215
  summary: "Update Dataset Item",
223
216
  operationId: "update-dataset-item",
224
217
  tags: ["Evaluations"],
218
+ permission: requireProjectPermission("edit"),
225
219
  request: {
226
220
  params: TenantProjectParamsSchema.extend({
227
221
  datasetId: z.string(),
@@ -272,12 +266,13 @@ app.openapi(createRoute({
272
266
  }), 500);
273
267
  }
274
268
  });
275
- app.openapi(createRoute({
269
+ app.openapi(createProtectedRoute({
276
270
  method: "delete",
277
271
  path: "/{datasetId}/items/{itemId}",
278
272
  summary: "Delete Dataset Item by ID",
279
273
  operationId: "delete-dataset-item",
280
274
  tags: ["Evaluations"],
275
+ permission: requireProjectPermission("edit"),
281
276
  request: { params: TenantProjectParamsSchema.extend({
282
277
  datasetId: z.string(),
283
278
  itemId: z.string()
@@ -1,18 +1,21 @@
1
1
  import { getLogger as getLogger$1 } from "../../../../logger.js";
2
2
  import runDbClient_default from "../../../../data/db/runDbClient.js";
3
3
  import { queueDatasetRunItems } from "../../../evals/services/datasetRun.js";
4
- import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
4
+ import { requireProjectPermission } from "../../../../middleware/projectAccess.js";
5
+ import { OpenAPIHono, z } from "@hono/zod-openapi";
5
6
  import { DatasetRunConfigApiInsertSchema, DatasetRunConfigApiSelectSchema, DatasetRunConfigApiUpdateSchema, ListResponseSchema, SingleResponseSchema, TenantProjectParamsSchema, commonGetErrorResponses, createApiError, createDatasetRun, createDatasetRunConfig, createDatasetRunConfigAgentRelation, createEvaluationJobConfig, createEvaluationJobConfigEvaluatorRelation, createEvaluationRun, deleteDatasetRunConfig, deleteDatasetRunConfigAgentRelation, generateId, getDatasetRunConfigAgentRelations, getDatasetRunConfigById, linkDatasetRunToEvaluationJobConfig, listDatasetItems, listDatasetRunConfigs, updateDatasetRunConfig } from "@inkeep/agents-core";
7
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
6
8
 
7
9
  //#region src/domains/manage/routes/evals/datasetRunConfigs.ts
8
10
  const app = new OpenAPIHono();
9
11
  const logger = getLogger$1("datasetRunConfigs");
10
- app.openapi(createRoute({
12
+ app.openapi(createProtectedRoute({
11
13
  method: "get",
12
14
  path: "/by-dataset/{datasetId}",
13
15
  summary: "List Dataset Run Configs by Dataset ID",
14
16
  operationId: "list-dataset-run-configs",
15
17
  tags: ["Evaluations"],
18
+ permission: requireProjectPermission("view"),
16
19
  request: { params: TenantProjectParamsSchema.extend({ datasetId: z.string() }) },
17
20
  responses: {
18
21
  200: {
@@ -50,12 +53,13 @@ app.openapi(createRoute({
50
53
  }), 500);
51
54
  }
52
55
  });
53
- app.openapi(createRoute({
56
+ app.openapi(createProtectedRoute({
54
57
  method: "get",
55
58
  path: "/{runConfigId}",
56
59
  summary: "Get Dataset Run Config by ID",
57
60
  operationId: "get-dataset-run-config",
58
61
  tags: ["Evaluations"],
62
+ permission: requireProjectPermission("view"),
59
63
  request: { params: TenantProjectParamsSchema.extend({ runConfigId: z.string() }) },
60
64
  responses: {
61
65
  200: {
@@ -91,12 +95,13 @@ app.openapi(createRoute({
91
95
  }), 500);
92
96
  }
93
97
  });
94
- app.openapi(createRoute({
98
+ app.openapi(createProtectedRoute({
95
99
  method: "post",
96
100
  path: "/",
97
101
  summary: "Create Dataset Run Config",
98
102
  operationId: "create-dataset-run-config",
99
103
  tags: ["Evaluations"],
104
+ permission: requireProjectPermission("edit"),
100
105
  request: {
101
106
  params: TenantProjectParamsSchema,
102
107
  body: { content: { "application/json": { schema: DatasetRunConfigApiInsertSchema.extend({
@@ -269,12 +274,13 @@ app.openapi(createRoute({
269
274
  }), 500);
270
275
  }
271
276
  });
272
- app.openapi(createRoute({
277
+ app.openapi(createProtectedRoute({
273
278
  method: "patch",
274
279
  path: "/{runConfigId}",
275
280
  summary: "Update Dataset Run Config",
276
281
  operationId: "update-dataset-run-config",
277
282
  tags: ["Evaluations"],
283
+ permission: requireProjectPermission("edit"),
278
284
  request: {
279
285
  params: TenantProjectParamsSchema.extend({ runConfigId: z.string() }),
280
286
  body: { content: { "application/json": { schema: DatasetRunConfigApiUpdateSchema.extend({
@@ -350,12 +356,13 @@ app.openapi(createRoute({
350
356
  }), 500);
351
357
  }
352
358
  });
353
- app.openapi(createRoute({
359
+ app.openapi(createProtectedRoute({
354
360
  method: "delete",
355
361
  path: "/{runConfigId}",
356
362
  summary: "Delete Dataset Run Config",
357
363
  operationId: "delete-dataset-run-config",
358
364
  tags: ["Evaluations"],
365
+ permission: requireProjectPermission("edit"),
359
366
  request: { params: TenantProjectParamsSchema.extend({ runConfigId: z.string() }) },
360
367
  responses: {
361
368
  204: { description: "Dataset run config deleted" },
@@ -1,17 +1,20 @@
1
1
  import { getLogger as getLogger$1 } from "../../../../logger.js";
2
2
  import runDbClient_default from "../../../../data/db/runDbClient.js";
3
- import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
3
+ import { requireProjectPermission } from "../../../../middleware/projectAccess.js";
4
+ import { OpenAPIHono, z } from "@hono/zod-openapi";
4
5
  import { DatasetRunApiSelectSchema, ListResponseSchema, SingleResponseSchema, TenantProjectParamsSchema, commonGetErrorResponses, createApiError, getConversation, getDatasetRunById, getDatasetRunConfigById, getDatasetRunConversationRelations, getMessagesByConversation, listDatasetItems, listDatasetRuns } from "@inkeep/agents-core";
6
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
5
7
 
6
8
  //#region src/domains/manage/routes/evals/datasetRuns.ts
7
9
  const app = new OpenAPIHono();
8
10
  const logger = getLogger$1("datasetRuns");
9
- app.openapi(createRoute({
11
+ app.openapi(createProtectedRoute({
10
12
  method: "get",
11
13
  path: "/by-dataset/{datasetId}",
12
14
  summary: "List Dataset Runs by Dataset ID",
13
15
  operationId: "list-dataset-runs",
14
16
  tags: ["Evaluations"],
17
+ permission: requireProjectPermission("view"),
15
18
  request: { params: TenantProjectParamsSchema.extend({ datasetId: z.string() }) },
16
19
  responses: {
17
20
  200: {
@@ -67,12 +70,13 @@ app.openapi(createRoute({
67
70
  }), 500);
68
71
  }
69
72
  });
70
- app.openapi(createRoute({
73
+ app.openapi(createProtectedRoute({
71
74
  method: "get",
72
75
  path: "/{runId}",
73
76
  summary: "Get Dataset Run by ID",
74
77
  operationId: "get-dataset-run",
75
78
  tags: ["Evaluations"],
79
+ permission: requireProjectPermission("view"),
76
80
  request: { params: TenantProjectParamsSchema.extend({ runId: z.string() }) },
77
81
  responses: {
78
82
  200: {
@@ -1,25 +1,19 @@
1
1
  import { getLogger as getLogger$1 } from "../../../../logger.js";
2
2
  import { requireProjectPermission } from "../../../../middleware/projectAccess.js";
3
- import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
3
+ import { OpenAPIHono, z } from "@hono/zod-openapi";
4
4
  import { DatasetApiInsertSchema, DatasetApiSelectSchema, DatasetApiUpdateSchema, ListResponseSchema, SingleResponseSchema, TenantProjectParamsSchema, commonGetErrorResponses, createApiError, createDataset, deleteDataset, generateId, getDatasetById, listDatasets, updateDataset } from "@inkeep/agents-core";
5
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
5
6
 
6
7
  //#region src/domains/manage/routes/evals/datasets.ts
7
8
  const app = new OpenAPIHono();
8
9
  const logger = getLogger$1("datasets");
9
- app.use("/", async (c, next) => {
10
- if (c.req.method === "POST") return requireProjectPermission("edit")(c, next);
11
- return next();
12
- });
13
- app.use("/:datasetId", async (c, next) => {
14
- if (["PATCH", "DELETE"].includes(c.req.method)) return requireProjectPermission("edit")(c, next);
15
- return next();
16
- });
17
- app.openapi(createRoute({
10
+ app.openapi(createProtectedRoute({
18
11
  method: "get",
19
12
  path: "/",
20
13
  summary: "List all Datasets",
21
14
  operationId: "list-datasets",
22
15
  tags: ["Evaluations"],
16
+ permission: requireProjectPermission("view"),
23
17
  request: { params: TenantProjectParamsSchema },
24
18
  responses: {
25
19
  200: {
@@ -57,12 +51,13 @@ app.openapi(createRoute({
57
51
  }), 500);
58
52
  }
59
53
  });
60
- app.openapi(createRoute({
54
+ app.openapi(createProtectedRoute({
61
55
  method: "get",
62
56
  path: "/{datasetId}",
63
57
  summary: "Get Dataset by ID",
64
58
  operationId: "get-dataset",
65
59
  tags: ["Evaluations"],
60
+ permission: requireProjectPermission("view"),
66
61
  request: { params: TenantProjectParamsSchema.extend({ datasetId: z.string() }) },
67
62
  responses: {
68
63
  200: {
@@ -98,12 +93,13 @@ app.openapi(createRoute({
98
93
  }), 500);
99
94
  }
100
95
  });
101
- app.openapi(createRoute({
96
+ app.openapi(createProtectedRoute({
102
97
  method: "post",
103
98
  path: "/",
104
99
  summary: "Create Dataset",
105
100
  operationId: "create-dataset",
106
101
  tags: ["Evaluations"],
102
+ permission: requireProjectPermission("edit"),
107
103
  request: {
108
104
  params: TenantProjectParamsSchema,
109
105
  body: { content: { "application/json": { schema: DatasetApiInsertSchema } } }
@@ -146,12 +142,13 @@ app.openapi(createRoute({
146
142
  }), 500);
147
143
  }
148
144
  });
149
- app.openapi(createRoute({
145
+ app.openapi(createProtectedRoute({
150
146
  method: "patch",
151
147
  path: "/{datasetId}",
152
148
  summary: "Update Dataset by ID",
153
149
  operationId: "update-dataset",
154
150
  tags: ["Evaluations"],
151
+ permission: requireProjectPermission("edit"),
155
152
  request: {
156
153
  params: TenantProjectParamsSchema.extend({ datasetId: z.string() }),
157
154
  body: { content: { "application/json": { schema: DatasetApiUpdateSchema } } }
@@ -199,12 +196,13 @@ app.openapi(createRoute({
199
196
  }), 500);
200
197
  }
201
198
  });
202
- app.openapi(createRoute({
199
+ app.openapi(createProtectedRoute({
203
200
  method: "delete",
204
201
  path: "/{datasetId}",
205
202
  summary: "Delete Dataset by ID",
206
203
  operationId: "delete-dataset",
207
204
  tags: ["Evaluations"],
205
+ permission: requireProjectPermission("edit"),
208
206
  request: { params: TenantProjectParamsSchema.extend({ datasetId: z.string() }) },
209
207
  responses: {
210
208
  204: { description: "Dataset deleted" },
@@ -1,21 +1,19 @@
1
1
  import { getLogger as getLogger$1 } from "../../../../logger.js";
2
2
  import { requireProjectPermission } from "../../../../middleware/projectAccess.js";
3
- import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
3
+ import { OpenAPIHono, z } from "@hono/zod-openapi";
4
4
  import { TenantProjectParamsSchema, commonGetErrorResponses, createApiError, createEvaluationJobConfigEvaluatorRelation, deleteEvaluationJobConfigEvaluatorRelation, generateId, getEvaluationJobConfigEvaluatorRelations } from "@inkeep/agents-core";
5
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
5
6
 
6
7
  //#region src/domains/manage/routes/evals/evaluationJobConfigEvaluatorRelations.ts
7
8
  const app = new OpenAPIHono();
8
9
  const logger = getLogger$1("evaluationJobConfigEvaluatorRelations");
9
- app.use("/:configId/evaluators/:evaluatorId", async (c, next) => {
10
- if (["POST", "DELETE"].includes(c.req.method)) return requireProjectPermission("edit")(c, next);
11
- return next();
12
- });
13
- app.openapi(createRoute({
10
+ app.openapi(createProtectedRoute({
14
11
  method: "get",
15
12
  path: "/{configId}/evaluators",
16
13
  summary: "List Evaluators for Evaluation Job Config",
17
14
  operationId: "list-evaluation-job-config-evaluators",
18
15
  tags: ["Evaluations"],
16
+ permission: requireProjectPermission("view"),
19
17
  request: { params: TenantProjectParamsSchema.extend({ configId: z.string() }) },
20
18
  responses: {
21
19
  200: {
@@ -47,12 +45,13 @@ app.openapi(createRoute({
47
45
  }), 500);
48
46
  }
49
47
  });
50
- app.openapi(createRoute({
48
+ app.openapi(createProtectedRoute({
51
49
  method: "post",
52
50
  path: "/{configId}/evaluators/{evaluatorId}",
53
51
  summary: "Add Evaluator to Evaluation Job Config",
54
52
  operationId: "add-evaluator-to-job-config",
55
53
  tags: ["Evaluations"],
54
+ permission: requireProjectPermission("edit"),
56
55
  request: { params: TenantProjectParamsSchema.extend({
57
56
  configId: z.string(),
58
57
  evaluatorId: z.string()
@@ -97,12 +96,13 @@ app.openapi(createRoute({
97
96
  }), 500);
98
97
  }
99
98
  });
100
- app.openapi(createRoute({
99
+ app.openapi(createProtectedRoute({
101
100
  method: "delete",
102
101
  path: "/{configId}/evaluators/{evaluatorId}",
103
102
  summary: "Remove Evaluator from Evaluation Job Config",
104
103
  operationId: "remove-evaluator-from-job-config",
105
104
  tags: ["Evaluations"],
105
+ permission: requireProjectPermission("edit"),
106
106
  request: { params: TenantProjectParamsSchema.extend({
107
107
  configId: z.string(),
108
108
  evaluatorId: z.string()
@@ -2,20 +2,13 @@ import { getLogger as getLogger$1 } from "../../../../logger.js";
2
2
  import runDbClient_default from "../../../../data/db/runDbClient.js";
3
3
  import { queueEvaluationJobConversations } from "../../../evals/services/evaluationJob.js";
4
4
  import { requireProjectPermission } from "../../../../middleware/projectAccess.js";
5
- import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
5
+ import { OpenAPIHono, z } from "@hono/zod-openapi";
6
6
  import { EvaluationJobConfigApiInsertSchema, EvaluationJobConfigApiSelectSchema, EvaluationResultApiSelectSchema, ListResponseSchema, SingleResponseSchema, TenantProjectParamsSchema, commonGetErrorResponses, createApiError, createEvaluationJobConfig, createEvaluationJobConfigEvaluatorRelation, deleteEvaluationJobConfig, generateId, getConversation, getEvaluationJobConfigById, getMessagesByConversation, listEvaluationJobConfigs, listEvaluationResultsByRun, listEvaluationRuns } from "@inkeep/agents-core";
7
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
7
8
 
8
9
  //#region src/domains/manage/routes/evals/evaluationJobConfigs.ts
9
10
  const app = new OpenAPIHono();
10
11
  const logger = getLogger$1("evaluationJobConfigs");
11
- app.use("/", async (c, next) => {
12
- if (c.req.method === "POST") return requireProjectPermission("edit")(c, next);
13
- return next();
14
- });
15
- app.use("/:configId", async (c, next) => {
16
- if (c.req.method === "DELETE") return requireProjectPermission("edit")(c, next);
17
- return next();
18
- });
19
12
  /**
20
13
  * Extract plain filter criteria from a potential Filter wrapper.
21
14
  * Returns null if the filter is a complex and/or combinator.
@@ -25,12 +18,13 @@ function getPlainJobFilters(filter) {
25
18
  if ("and" in filter || "or" in filter) return null;
26
19
  return filter;
27
20
  }
28
- app.openapi(createRoute({
21
+ app.openapi(createProtectedRoute({
29
22
  method: "get",
30
23
  path: "/",
31
24
  summary: "List Evaluation Job Configs",
32
25
  operationId: "list-evaluation-job-configs",
33
26
  tags: ["Evaluations"],
27
+ permission: requireProjectPermission("view"),
34
28
  request: { params: TenantProjectParamsSchema },
35
29
  responses: {
36
30
  200: {
@@ -68,12 +62,13 @@ app.openapi(createRoute({
68
62
  }), 500);
69
63
  }
70
64
  });
71
- app.openapi(createRoute({
65
+ app.openapi(createProtectedRoute({
72
66
  method: "get",
73
67
  path: "/{configId}",
74
68
  summary: "Get Evaluation Job Config by ID",
75
69
  operationId: "get-evaluation-job-config",
76
70
  tags: ["Evaluations"],
71
+ permission: requireProjectPermission("view"),
77
72
  request: { params: TenantProjectParamsSchema.extend({ configId: z.string() }) },
78
73
  responses: {
79
74
  200: {
@@ -109,12 +104,13 @@ app.openapi(createRoute({
109
104
  }), 500);
110
105
  }
111
106
  });
112
- app.openapi(createRoute({
107
+ app.openapi(createProtectedRoute({
113
108
  method: "post",
114
109
  path: "/",
115
110
  summary: "Create Evaluation Job Config",
116
111
  operationId: "create-evaluation-job-config",
117
112
  tags: ["Evaluations"],
113
+ permission: requireProjectPermission("edit"),
118
114
  request: {
119
115
  params: TenantProjectParamsSchema,
120
116
  body: { content: { "application/json": { schema: EvaluationJobConfigApiInsertSchema } } }
@@ -194,12 +190,13 @@ app.openapi(createRoute({
194
190
  }), 500);
195
191
  }
196
192
  });
197
- app.openapi(createRoute({
193
+ app.openapi(createProtectedRoute({
198
194
  method: "delete",
199
195
  path: "/{configId}",
200
196
  summary: "Delete Evaluation Job Config",
201
197
  operationId: "delete-evaluation-job-config",
202
198
  tags: ["Evaluations"],
199
+ permission: requireProjectPermission("edit"),
203
200
  request: { params: TenantProjectParamsSchema.extend({ configId: z.string() }) },
204
201
  responses: {
205
202
  204: { description: "Evaluation job config deleted" },
@@ -236,12 +233,13 @@ app.openapi(createRoute({
236
233
  }), 500);
237
234
  }
238
235
  });
239
- app.openapi(createRoute({
236
+ app.openapi(createProtectedRoute({
240
237
  method: "get",
241
238
  path: "/{configId}/results",
242
239
  summary: "Get Evaluation Results by Job Config ID",
243
240
  operationId: "get-evaluation-job-config-results",
244
241
  tags: ["Evaluations"],
242
+ permission: requireProjectPermission("view"),
245
243
  request: { params: TenantProjectParamsSchema.extend({ configId: z.string() }) },
246
244
  responses: {
247
245
  200: {
@@ -1,26 +1,20 @@
1
1
  import { getLogger as getLogger$1 } from "../../../../logger.js";
2
2
  import runDbClient_default from "../../../../data/db/runDbClient.js";
3
3
  import { requireProjectPermission } from "../../../../middleware/projectAccess.js";
4
- import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
4
+ import { OpenAPIHono, z } from "@hono/zod-openapi";
5
5
  import { EvaluationResultApiInsertSchema, EvaluationResultApiSelectSchema, EvaluationResultApiUpdateSchema, SingleResponseSchema, TenantProjectParamsSchema, commonGetErrorResponses, createApiError, createEvaluationResult, deleteEvaluationResult, generateId, getEvaluationResultById, updateEvaluationResult } from "@inkeep/agents-core";
6
+ import { createProtectedRoute } from "@inkeep/agents-core/middleware";
6
7
 
7
8
  //#region src/domains/manage/routes/evals/evaluationResults.ts
8
9
  const app = new OpenAPIHono();
9
10
  const logger = getLogger$1("evaluationResults");
10
- app.use("/", async (c, next) => {
11
- if (c.req.method === "POST") return requireProjectPermission("edit")(c, next);
12
- return next();
13
- });
14
- app.use("/:resultId", async (c, next) => {
15
- if (["PATCH", "DELETE"].includes(c.req.method)) return requireProjectPermission("edit")(c, next);
16
- return next();
17
- });
18
- app.openapi(createRoute({
11
+ app.openapi(createProtectedRoute({
19
12
  method: "get",
20
13
  path: "/{resultId}",
21
14
  summary: "Get Evaluation Result by ID",
22
15
  operationId: "get-evaluation-result",
23
16
  tags: ["Evaluations"],
17
+ permission: requireProjectPermission("view"),
24
18
  request: { params: TenantProjectParamsSchema.extend({ resultId: z.string() }) },
25
19
  responses: {
26
20
  200: {
@@ -55,12 +49,13 @@ app.openapi(createRoute({
55
49
  }), 500);
56
50
  }
57
51
  });
58
- app.openapi(createRoute({
52
+ app.openapi(createProtectedRoute({
59
53
  method: "post",
60
54
  path: "/",
61
55
  summary: "Create Evaluation Result",
62
56
  operationId: "create-evaluation-result",
63
57
  tags: ["Evaluations"],
58
+ permission: requireProjectPermission("edit"),
64
59
  request: {
65
60
  params: TenantProjectParamsSchema,
66
61
  body: { content: { "application/json": { schema: EvaluationResultApiInsertSchema } } }
@@ -102,12 +97,13 @@ app.openapi(createRoute({
102
97
  }), 500);
103
98
  }
104
99
  });
105
- app.openapi(createRoute({
100
+ app.openapi(createProtectedRoute({
106
101
  method: "patch",
107
102
  path: "/{resultId}",
108
103
  summary: "Update Evaluation Result",
109
104
  operationId: "update-evaluation-result",
110
105
  tags: ["Evaluations"],
106
+ permission: requireProjectPermission("edit"),
111
107
  request: {
112
108
  params: TenantProjectParamsSchema.extend({ resultId: z.string() }),
113
109
  body: { content: { "application/json": { schema: EvaluationResultApiUpdateSchema } } }
@@ -154,12 +150,13 @@ app.openapi(createRoute({
154
150
  }), 500);
155
151
  }
156
152
  });
157
- app.openapi(createRoute({
153
+ app.openapi(createProtectedRoute({
158
154
  method: "delete",
159
155
  path: "/{resultId}",
160
156
  summary: "Delete Evaluation Result",
161
157
  operationId: "delete-evaluation-result",
162
158
  tags: ["Evaluations"],
159
+ permission: requireProjectPermission("edit"),
163
160
  request: { params: TenantProjectParamsSchema.extend({ resultId: z.string() }) },
164
161
  responses: {
165
162
  204: { description: "Evaluation result deleted" },