@inkeep/agents-api 0.0.1 → 0.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/dist/.well-known/workflow/v1/flow.cjs +43 -106
  2. package/dist/.well-known/workflow/v1/flow.cjs.debug.json +2 -4
  3. package/dist/.well-known/workflow/v1/manifest.debug.json +17 -55
  4. package/dist/.well-known/workflow/v1/step.cjs +45938 -45976
  5. package/dist/.well-known/workflow/v1/step.cjs.debug.json +2 -4
  6. package/dist/_virtual/rolldown_runtime.js +7 -0
  7. package/dist/createApp.js +40 -12
  8. package/dist/domains/evals/api/.well-known/workflow/v1/flow.d.ts +4 -0
  9. package/dist/domains/evals/api/.well-known/workflow/v1/flow.js +12 -0
  10. package/dist/domains/evals/api/.well-known/workflow/v1/step.d.ts +4 -0
  11. package/dist/domains/evals/api/.well-known/workflow/v1/step.js +12 -0
  12. package/dist/domains/evals/routes/datasetTriggers.d.ts +2 -2
  13. package/dist/domains/evals/routes/index.d.ts +2 -2
  14. package/dist/domains/evals/scripts/build-workflow.js +2 -2
  15. package/dist/domains/evals/workflow/functions/evaluateConversation.d.ts +4 -1
  16. package/dist/domains/evals/workflow/functions/evaluateConversation.js +2 -1
  17. package/dist/domains/evals/workflow/functions/runDatasetItem.d.ts +4 -1
  18. package/dist/domains/evals/workflow/functions/runDatasetItem.js +2 -1
  19. package/dist/domains/evals/workflow/routes.d.ts +2 -2
  20. package/dist/domains/evals/workflow/world.js +3 -2
  21. package/dist/domains/github/config.d.ts +14 -0
  22. package/dist/domains/github/config.js +47 -0
  23. package/dist/domains/github/index.d.ts +12 -0
  24. package/dist/domains/github/index.js +18 -0
  25. package/dist/domains/github/installation.d.ts +34 -0
  26. package/dist/domains/github/installation.js +172 -0
  27. package/dist/domains/github/jwks.d.ts +20 -0
  28. package/dist/domains/github/jwks.js +85 -0
  29. package/dist/domains/github/oidcToken.d.ts +22 -0
  30. package/dist/domains/github/oidcToken.js +140 -0
  31. package/dist/domains/github/routes/tokenExchange.d.ts +7 -0
  32. package/dist/domains/github/routes/tokenExchange.js +130 -0
  33. package/dist/domains/manage/index.js +0 -2
  34. package/dist/domains/manage/routes/agent.js +9 -4
  35. package/dist/domains/manage/routes/agentFull.js +9 -6
  36. package/dist/domains/manage/routes/apiKeys.js +1 -2
  37. package/dist/domains/manage/routes/artifactComponents.js +5 -5
  38. package/dist/domains/manage/routes/cliAuth.js +3 -3
  39. package/dist/domains/manage/routes/contextConfigs.js +5 -5
  40. package/dist/domains/manage/routes/conversations.d.ts +2 -2
  41. package/dist/domains/manage/routes/credentialStores.js +2 -2
  42. package/dist/domains/manage/routes/credentials.js +6 -7
  43. package/dist/domains/manage/routes/dataComponents.js +6 -7
  44. package/dist/domains/manage/routes/externalAgents.js +1 -2
  45. package/dist/domains/manage/routes/index.d.ts +2 -2
  46. package/dist/domains/manage/routes/index.js +4 -0
  47. package/dist/domains/manage/routes/invitations.js +1 -1
  48. package/dist/domains/manage/routes/mcp.d.ts +2 -2
  49. package/dist/domains/manage/routes/playgroundToken.js +1 -2
  50. package/dist/domains/manage/routes/projectFull.js +33 -11
  51. package/dist/domains/manage/routes/projectMembers.js +16 -35
  52. package/dist/domains/manage/routes/projectPermissions.js +17 -10
  53. package/dist/domains/manage/routes/projects.js +4 -5
  54. package/dist/domains/manage/routes/signoz.d.ts +2 -2
  55. package/dist/domains/manage/routes/signoz.js +6 -3
  56. package/dist/domains/manage/routes/subAgentArtifactComponents.js +5 -5
  57. package/dist/domains/manage/routes/subAgentDataComponents.js +5 -5
  58. package/dist/domains/manage/routes/subAgentExternalAgentRelations.js +5 -5
  59. package/dist/domains/manage/routes/subAgentFunctionTools.js +5 -5
  60. package/dist/domains/manage/routes/subAgentRelations.js +6 -6
  61. package/dist/domains/manage/routes/subAgentTeamAgentRelations.js +6 -6
  62. package/dist/domains/manage/routes/subAgentToolRelations.js +6 -6
  63. package/dist/domains/manage/routes/subAgents.js +5 -5
  64. package/dist/domains/manage/routes/tools.js +24 -3
  65. package/dist/domains/manage/routes/triggers.js +82 -25
  66. package/dist/domains/manage/routes/userOrganizations.js +4 -4
  67. package/dist/domains/manage/routes/{agentToolRelations.d.ts → userProjectMemberships.d.ts} +1 -1
  68. package/dist/domains/manage/routes/userProjectMemberships.js +45 -0
  69. package/dist/domains/mcp/routes/mcp.d.ts +7 -0
  70. package/dist/domains/mcp/routes/mcp.js +45 -0
  71. package/dist/domains/run/a2a/handlers.js +2 -10
  72. package/dist/domains/run/a2a/types.d.ts +2 -6
  73. package/dist/domains/run/agents/Agent.d.ts +1 -0
  74. package/dist/domains/run/agents/Agent.js +207 -44
  75. package/dist/domains/run/agents/generateTaskHandler.js +14 -2
  76. package/dist/domains/run/context/ContextFetcher.js +8 -7
  77. package/dist/domains/run/context/ContextResolver.js +1 -1
  78. package/dist/domains/run/handlers/executionHandler.d.ts +3 -1
  79. package/dist/domains/run/handlers/executionHandler.js +149 -84
  80. package/dist/domains/run/routes/agents.js +1 -1
  81. package/dist/domains/run/routes/chat.js +47 -1
  82. package/dist/domains/run/routes/chatDataStream.js +107 -14
  83. package/dist/domains/run/routes/webhooks.js +40 -329
  84. package/dist/domains/run/services/AgentSession.d.ts +3 -0
  85. package/dist/domains/run/services/AgentSession.js +9 -0
  86. package/dist/domains/run/services/BaseCompressor.js +1 -1
  87. package/dist/domains/run/services/ToolApprovalUiBus.d.ts +28 -0
  88. package/dist/domains/run/services/ToolApprovalUiBus.js +44 -0
  89. package/dist/domains/run/services/TriggerService.d.ts +31 -0
  90. package/dist/domains/run/services/TriggerService.js +543 -0
  91. package/dist/domains/run/tools/NativeSandboxExecutor.d.ts +3 -2
  92. package/dist/domains/run/tools/NativeSandboxExecutor.js +76 -48
  93. package/dist/domains/run/tools/SandboxExecutorFactory.d.ts +11 -1
  94. package/dist/domains/run/tools/SandboxExecutorFactory.js +27 -3
  95. package/dist/domains/run/tools/VercelSandboxExecutor.d.ts +3 -11
  96. package/dist/domains/run/tools/VercelSandboxExecutor.js +137 -127
  97. package/dist/domains/run/types/xml.d.ts +1 -5
  98. package/dist/domains/run/utils/stream-helpers.d.ts +134 -0
  99. package/dist/domains/run/utils/stream-helpers.js +182 -0
  100. package/dist/factory.d.ts +278 -272
  101. package/dist/index.d.ts +275 -269
  102. package/dist/index.js +16 -1
  103. package/dist/initialization.js +9 -2
  104. package/dist/middleware/cors.js +1 -1
  105. package/dist/middleware/evalsAuth.d.ts +2 -2
  106. package/dist/middleware/manageAuth.d.ts +2 -2
  107. package/dist/middleware/projectAccess.d.ts +4 -11
  108. package/dist/middleware/projectAccess.js +1 -17
  109. package/dist/middleware/projectConfig.d.ts +3 -3
  110. package/dist/middleware/requirePermission.d.ts +2 -2
  111. package/dist/middleware/runAuth.d.ts +4 -4
  112. package/dist/middleware/sessionAuth.d.ts +3 -3
  113. package/dist/middleware/tenantAccess.d.ts +2 -2
  114. package/dist/middleware/tenantAccess.js +4 -4
  115. package/dist/middleware/tracing.d.ts +3 -3
  116. package/dist/openapi.d.ts +35 -1
  117. package/dist/openapi.js +39 -95
  118. package/dist/routes/healthChecks.d.ts +10 -0
  119. package/dist/routes/healthChecks.js +75 -0
  120. package/dist/templates/v1/phase1/system-prompt.js +1 -1
  121. package/dist/templates/v1/phase1/thinking-preparation.js +1 -1
  122. package/dist/templates/v1/phase1/tool.js +1 -1
  123. package/dist/templates/v1/phase2/data-component.js +1 -1
  124. package/dist/templates/v1/phase2/data-components.js +1 -1
  125. package/dist/templates/v1/phase2/system-prompt.js +1 -1
  126. package/dist/templates/v1/shared/artifact-retrieval-guidance.js +1 -1
  127. package/dist/templates/v1/shared/artifact.js +1 -1
  128. package/dist/types/app.d.ts +2 -0
  129. package/dist/utils/healthChecks.d.ts +8 -0
  130. package/dist/utils/healthChecks.js +38 -0
  131. package/dist/utils/signozHelpers.d.ts +2 -2
  132. package/dist/utils/signozHelpers.js +15 -3
  133. package/package.json +25 -28
  134. package/dist/domains/evals/services/startEvaluation.d.ts +0 -19
  135. package/dist/domains/evals/services/startEvaluation.js +0 -18
  136. package/dist/domains/index.d.ts +0 -4
  137. package/dist/domains/index.js +0 -5
  138. package/dist/domains/manage/routes/agentToolRelations.js +0 -289
  139. package/dist/domains/run/agents/ModelFactory.d.ts +0 -63
  140. package/dist/domains/run/agents/ModelFactory.js +0 -194
  141. package/dist/domains/run/data/agent.d.ts +0 -7
  142. package/dist/domains/run/data/agent.js +0 -67
  143. package/dist/domains/run/services/evaluationRunConfigMatcher.d.ts +0 -4
  144. package/dist/domains/run/services/evaluationRunConfigMatcher.js +0 -7
  145. package/dist/domains/run/utils/cleanup.d.ts +0 -21
  146. package/dist/domains/run/utils/cleanup.js +0 -59
  147. package/dist/utils/tempApiKeys.d.ts +0 -17
  148. package/dist/utils/tempApiKeys.js +0 -26
  149. package/dist/utils/workflowApiHelpers.d.ts +0 -1
  150. package/dist/utils/workflowApiHelpers.js +0 -1
@@ -19,7 +19,7 @@ app.openapi(createRoute({
19
19
  path: "/",
20
20
  summary: "List Sub Agent External Agent Relations",
21
21
  operationId: "list-sub-agent-external-agent-relations",
22
- tags: ["Sub Agent External Agent Relations"],
22
+ tags: ["SubAgents", "External Agents"],
23
23
  request: {
24
24
  params: TenantProjectAgentSubAgentParamsSchema,
25
25
  query: PaginationQueryParamsSchema
@@ -64,7 +64,7 @@ app.openapi(createRoute({
64
64
  path: "/{id}",
65
65
  summary: "Get Sub Agent External Agent Relation",
66
66
  operationId: "get-sub-agent-external-agent-relation-by-id",
67
- tags: ["Sub Agent External Agent Relations"],
67
+ tags: ["SubAgents", "External Agents"],
68
68
  request: { params: TenantProjectAgentSubAgentIdParamsSchema },
69
69
  responses: {
70
70
  200: {
@@ -96,7 +96,7 @@ app.openapi(createRoute({
96
96
  path: "/",
97
97
  summary: "Create Sub Agent External Agent Relation",
98
98
  operationId: "create-sub-agent-external-agent-relation",
99
- tags: ["Sub Agent External Agent Relations"],
99
+ tags: ["SubAgents", "External Agents"],
100
100
  request: {
101
101
  params: TenantProjectAgentSubAgentParamsSchema,
102
102
  body: { content: { "application/json": { schema: SubAgentExternalAgentRelationApiInsertSchema } } }
@@ -147,7 +147,7 @@ app.openapi(createRoute({
147
147
  path: "/{id}",
148
148
  summary: "Update Sub Agent External Agent Relation",
149
149
  operationId: "update-sub-agent-external-agent-relation",
150
- tags: ["Sub Agent External Agent Relations"],
150
+ tags: ["SubAgents", "External Agents"],
151
151
  request: {
152
152
  params: TenantProjectAgentSubAgentIdParamsSchema,
153
153
  body: { content: { "application/json": { schema: SubAgentExternalAgentRelationApiUpdateSchema } } }
@@ -184,7 +184,7 @@ app.openapi(createRoute({
184
184
  path: "/{id}",
185
185
  summary: "Delete Sub Agent External Agent Relation",
186
186
  operationId: "delete-sub-agent-external-agent-relation",
187
- tags: ["Sub Agent External Agent Relations"],
187
+ tags: ["SubAgents", "External Agents"],
188
188
  request: { params: TenantProjectAgentSubAgentIdParamsSchema },
189
189
  responses: {
190
190
  204: { description: "Sub Agent External Agent Relation deleted successfully" },
@@ -17,7 +17,7 @@ app.openapi(createRoute({
17
17
  path: "/sub-agent/{subAgentId}",
18
18
  summary: "Get Function Tools for SubAgent",
19
19
  operationId: "get-function-tools-for-sub-agent",
20
- tags: ["SubAgent Function Tool Relations"],
20
+ tags: ["SubAgents", "Function Tools"],
21
21
  request: { params: TenantProjectAgentSubAgentParamsSchema },
22
22
  responses: {
23
23
  200: {
@@ -44,7 +44,7 @@ app.openapi(createRoute({
44
44
  path: "/function-tool/{functionToolId}/sub-agents",
45
45
  summary: "Get SubAgents Using Function Tool",
46
46
  operationId: "get-sub-agents-using-function-tool",
47
- tags: ["SubAgent Function Tool Relations"],
47
+ tags: ["SubAgents", "Function Tools"],
48
48
  request: { params: TenantProjectAgentParamsSchema.extend({ functionToolId: z.string() }) },
49
49
  responses: {
50
50
  200: {
@@ -71,7 +71,7 @@ app.openapi(createRoute({
71
71
  path: "/",
72
72
  summary: "Associate Function Tool with SubAgent",
73
73
  operationId: "associate-function-tool-with-sub-agent",
74
- tags: ["SubAgent Function Tool Relations"],
74
+ tags: ["SubAgents", "Function Tools"],
75
75
  request: {
76
76
  params: TenantProjectAgentParamsSchema,
77
77
  body: { content: { "application/json": { schema: SubAgentFunctionToolRelationApiInsertSchema } } }
@@ -142,7 +142,7 @@ app.openapi(createRoute({
142
142
  path: "/sub-agent/{subAgentId}/function-tool/{functionToolId}",
143
143
  summary: "Remove Function Tool from SubAgent",
144
144
  operationId: "remove-function-tool-from-sub-agent",
145
- tags: ["SubAgent Function Tool Relations"],
145
+ tags: ["SubAgents", "Function Tools"],
146
146
  request: { params: TenantProjectAgentSubAgentParamsSchema.extend({ functionToolId: z.string() }) },
147
147
  responses: {
148
148
  200: {
@@ -176,7 +176,7 @@ app.openapi(createRoute({
176
176
  path: "/sub-agent/{subAgentId}/function-tool/{functionToolId}/exists",
177
177
  summary: "Check if Function Tool is Associated with SubAgent",
178
178
  operationId: "check-function-tool-sub-agent-association",
179
- tags: ["SubAgent Function Tool Relations"],
179
+ tags: ["SubAgents", "Function Tools"],
180
180
  request: { params: TenantProjectAgentSubAgentParamsSchema.extend({ functionToolId: z.string() }) },
181
181
  responses: {
182
182
  200: {
@@ -19,7 +19,7 @@ app.openapi(createRoute({
19
19
  path: "/",
20
20
  summary: "List Sub Agent Relations",
21
21
  operationId: "list-sub-agent-relations",
22
- tags: ["Sub Agent Relations"],
22
+ tags: ["SubAgents"],
23
23
  request: {
24
24
  params: TenantProjectAgentParamsSchema,
25
25
  query: PaginationQueryParamsSchema.merge(SubAgentRelationQuerySchema)
@@ -92,7 +92,7 @@ app.openapi(createRoute({
92
92
  };
93
93
  }
94
94
  return c.json(result);
95
- } catch (_error) {
95
+ } catch {
96
96
  throw createApiError({
97
97
  code: "internal_server_error",
98
98
  message: "Failed to retrieve sub agent relations"
@@ -104,7 +104,7 @@ app.openapi(createRoute({
104
104
  path: "/{id}",
105
105
  summary: "Get Sub Agent Relation",
106
106
  operationId: "get-sub-agent-relation-by-id",
107
- tags: ["Sub Agent Relations"],
107
+ tags: ["SubAgents"],
108
108
  request: { params: TenantProjectAgentIdParamsSchema },
109
109
  responses: {
110
110
  200: {
@@ -135,7 +135,7 @@ app.openapi(createRoute({
135
135
  path: "/",
136
136
  summary: "Create Sub Agent Relation",
137
137
  operationId: "create-sub-agent-relation",
138
- tags: ["Sub Agent Relations"],
138
+ tags: ["SubAgents"],
139
139
  request: {
140
140
  params: TenantProjectAgentParamsSchema,
141
141
  body: { content: { "application/json": { schema: SubAgentRelationApiInsertSchema } } }
@@ -196,7 +196,7 @@ app.openapi(createRoute({
196
196
  path: "/{id}",
197
197
  summary: "Update Sub Agent Relation",
198
198
  operationId: "update-sub-agent-relation",
199
- tags: ["Sub Agent Relations"],
199
+ tags: ["SubAgents"],
200
200
  request: {
201
201
  params: TenantProjectAgentIdParamsSchema,
202
202
  body: { content: { "application/json": { schema: SubAgentRelationApiUpdateSchema } } }
@@ -232,7 +232,7 @@ app.openapi(createRoute({
232
232
  path: "/{id}",
233
233
  summary: "Delete Sub Agent Relation",
234
234
  operationId: "delete-sub-agent-relation",
235
- tags: ["Sub Agent Relations"],
235
+ tags: ["SubAgents"],
236
236
  request: { params: TenantProjectAgentIdParamsSchema },
237
237
  responses: {
238
238
  204: { description: "Sub Agent Relation deleted successfully" },
@@ -19,7 +19,7 @@ app.openapi(createRoute({
19
19
  path: "/",
20
20
  summary: "List Sub Agent Team Agent Relations",
21
21
  operationId: "list-sub-agent-team-agent-relations",
22
- tags: ["Sub Agent Team Agent Relations"],
22
+ tags: ["SubAgents"],
23
23
  request: {
24
24
  params: TenantProjectAgentSubAgentParamsSchema,
25
25
  query: PaginationQueryParamsSchema
@@ -52,7 +52,7 @@ app.openapi(createRoute({
52
52
  }
53
53
  });
54
54
  return c.json(result);
55
- } catch (_error) {
55
+ } catch {
56
56
  throw createApiError({
57
57
  code: "internal_server_error",
58
58
  message: "Failed to retrieve sub agent team agent relations"
@@ -64,7 +64,7 @@ app.openapi(createRoute({
64
64
  path: "/{id}",
65
65
  summary: "Get Sub Agent Team Agent Relation",
66
66
  operationId: "get-sub-agent-team-agent-relation-by-id",
67
- tags: ["Sub Agent Team Agent Relations"],
67
+ tags: ["SubAgents"],
68
68
  request: { params: TenantProjectAgentSubAgentIdParamsSchema },
69
69
  responses: {
70
70
  200: {
@@ -96,7 +96,7 @@ app.openapi(createRoute({
96
96
  path: "/",
97
97
  summary: "Create Sub Agent Team Agent Relation",
98
98
  operationId: "create-sub-agent-team-agent-relation",
99
- tags: ["Sub Agent Team Agent Relations"],
99
+ tags: ["SubAgents"],
100
100
  request: {
101
101
  params: TenantProjectAgentSubAgentParamsSchema,
102
102
  body: { content: { "application/json": { schema: SubAgentTeamAgentRelationApiInsertSchema } } }
@@ -147,7 +147,7 @@ app.openapi(createRoute({
147
147
  path: "/{id}",
148
148
  summary: "Update Sub Agent Team Agent Relation",
149
149
  operationId: "update-sub-agent-team-agent-relation",
150
- tags: ["Sub Agent Team Agent Relations"],
150
+ tags: ["SubAgents"],
151
151
  request: {
152
152
  params: TenantProjectAgentSubAgentIdParamsSchema,
153
153
  body: { content: { "application/json": { schema: SubAgentTeamAgentRelationApiUpdateSchema } } }
@@ -184,7 +184,7 @@ app.openapi(createRoute({
184
184
  path: "/{id}",
185
185
  summary: "Delete Sub Agent Team Agent Relation",
186
186
  operationId: "delete-sub-agent-team-agent-relation",
187
- tags: ["Sub Agent Team Agent Relations"],
187
+ tags: ["SubAgents"],
188
188
  request: { params: TenantProjectAgentSubAgentIdParamsSchema },
189
189
  responses: {
190
190
  204: { description: "Sub Agent Team Agent Relation deleted successfully" },
@@ -19,7 +19,7 @@ app.openapi(createRoute({
19
19
  path: "/",
20
20
  summary: "List SubAgent Tool Relations",
21
21
  operationId: "list-subagent-tool-relations",
22
- tags: ["SubAgent Tool Relations"],
22
+ tags: ["SubAgents", "Tools"],
23
23
  request: {
24
24
  params: TenantProjectAgentParamsSchema,
25
25
  query: PaginationQueryParamsSchema.extend({
@@ -98,7 +98,7 @@ app.openapi(createRoute({
98
98
  path: "/{id}",
99
99
  summary: "Get SubAgent Tool Relation",
100
100
  operationId: "get-subagent-tool-relation",
101
- tags: ["SubAgent Tool Relations"],
101
+ tags: ["SubAgents", "Tools"],
102
102
  request: { params: TenantProjectAgentIdParamsSchema },
103
103
  responses: {
104
104
  200: {
@@ -130,7 +130,7 @@ app.openapi(createRoute({
130
130
  path: "/tool/{toolId}/sub-agents",
131
131
  summary: "Get SubAgents for Tool",
132
132
  operationId: "get-subagents-for-tool",
133
- tags: ["SubAgent Tool Relations"],
133
+ tags: ["SubAgents", "Tools"],
134
134
  request: {
135
135
  params: TenantProjectAgentParamsSchema.extend({ toolId: z.string() }),
136
136
  query: PaginationQueryParamsSchema
@@ -165,7 +165,7 @@ app.openapi(createRoute({
165
165
  path: "/",
166
166
  summary: "Create SubAgent Tool Relation",
167
167
  operationId: "create-subagent-tool-relation",
168
- tags: ["SubAgent Tool Relations"],
168
+ tags: ["SubAgents", "Tools"],
169
169
  request: {
170
170
  params: TenantProjectAgentParamsSchema,
171
171
  body: { content: { "application/json": { schema: SubAgentToolRelationApiInsertSchema } } }
@@ -218,7 +218,7 @@ app.openapi(createRoute({
218
218
  path: "/{id}",
219
219
  summary: "Update SubAgent Tool Relation",
220
220
  operationId: "update-subagent-tool-relation",
221
- tags: ["SubAgent Tool Relations"],
221
+ tags: ["SubAgents", "Tools"],
222
222
  request: {
223
223
  params: TenantProjectAgentIdParamsSchema,
224
224
  body: { content: { "application/json": { schema: SubAgentToolRelationApiUpdateSchema } } }
@@ -258,7 +258,7 @@ app.openapi(createRoute({
258
258
  path: "/{id}",
259
259
  summary: "Delete SubAgent Tool Relation",
260
260
  operationId: "delete-subagent-tool-relation",
261
- tags: ["SubAgent Tool Relations"],
261
+ tags: ["SubAgents", "Tools"],
262
262
  request: { params: TenantProjectAgentIdParamsSchema },
263
263
  responses: {
264
264
  204: { description: "SubAgent tool relation deleted successfully" },
@@ -20,7 +20,7 @@ app.openapi(createRoute({
20
20
  path: "/",
21
21
  summary: "List SubAgents",
22
22
  operationId: "list-subagents",
23
- tags: ["SubAgent"],
23
+ tags: ["SubAgents"],
24
24
  request: {
25
25
  params: TenantProjectAgentParamsSchema,
26
26
  query: PaginationQueryParamsSchema
@@ -62,7 +62,7 @@ app.openapi(createRoute({
62
62
  path: "/{id}",
63
63
  summary: "Get SubAgent",
64
64
  operationId: "get-subagent-by-id",
65
- tags: ["SubAgent"],
65
+ tags: ["SubAgents"],
66
66
  request: { params: TenantProjectAgentIdParamsSchema },
67
67
  responses: {
68
68
  200: {
@@ -96,7 +96,7 @@ app.openapi(createRoute({
96
96
  path: "/",
97
97
  summary: "Create SubAgent",
98
98
  operationId: "create-subagent",
99
- tags: ["SubAgent"],
99
+ tags: ["SubAgents"],
100
100
  request: {
101
101
  params: TenantProjectAgentParamsSchema,
102
102
  body: { content: { "application/json": { schema: SubAgentApiInsertSchema } } }
@@ -129,7 +129,7 @@ app.openapi(createRoute({
129
129
  path: "/{id}",
130
130
  summary: "Update SubAgent",
131
131
  operationId: "update-subagent",
132
- tags: ["SubAgent"],
132
+ tags: ["SubAgents"],
133
133
  request: {
134
134
  params: TenantProjectAgentIdParamsSchema,
135
135
  body: { content: { "application/json": { schema: SubAgentApiUpdateSchema } } }
@@ -168,7 +168,7 @@ app.openapi(createRoute({
168
168
  path: "/{id}",
169
169
  summary: "Delete SubAgent",
170
170
  operationId: "delete-subagent",
171
- tags: ["SubAgent"],
171
+ tags: ["SubAgents"],
172
172
  request: { params: TenantProjectAgentIdParamsSchema },
173
173
  responses: {
174
174
  204: { description: "SubAgent deleted successfully" },
@@ -2,7 +2,8 @@ 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
4
  import { OpenAPIHono, createRoute } from "@hono/zod-openapi";
5
- import { CredentialReferenceApiSelectSchema, CredentialReferenceResponse, McpToolListResponse, McpToolResponse, PaginationQueryParamsSchema, TenantProjectIdParamsSchema, TenantProjectParamsSchema, ToolApiInsertSchema, ToolApiUpdateSchema, ToolStatusSchema, commonGetErrorResponses, createApiError, createTool, dbResultToMcpTool, deleteTool, generateId, getToolById, getUserScopedCredentialReference, listTools, updateTool } from "@inkeep/agents-core";
5
+ 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";
6
+ import { z as z$1 } from "zod";
6
7
 
7
8
  //#region src/domains/manage/routes/tools.ts
8
9
  const logger = getLogger$1("tools");
@@ -24,7 +25,10 @@ app.openapi(createRoute({
24
25
  tags: ["Tools"],
25
26
  request: {
26
27
  params: TenantProjectParamsSchema,
27
- query: PaginationQueryParamsSchema.extend({ status: ToolStatusSchema.optional() })
28
+ query: PaginationQueryParamsSchema.extend({
29
+ status: ToolStatusSchema.optional(),
30
+ skipDiscovery: z$1.enum(["true", "false"]).optional().transform((val) => val === "true").describe("Skip MCP server discovery for faster response. Status will be \"unknown\".")
31
+ })
28
32
  },
29
33
  responses: {
30
34
  200: {
@@ -37,10 +41,27 @@ app.openapi(createRoute({
37
41
  }), async (c) => {
38
42
  const db = c.get("db");
39
43
  const { tenantId, projectId } = c.req.valid("param");
40
- const { page, limit, status } = c.req.valid("query");
44
+ const { page, limit, status, skipDiscovery } = c.req.valid("query");
41
45
  let result;
42
46
  const credentialStores = c.get("credentialStores");
43
47
  const userId = c.get("userId");
48
+ if (skipDiscovery) {
49
+ const dbResult = await listTools(db)({
50
+ scopes: {
51
+ tenantId,
52
+ projectId
53
+ },
54
+ pagination: {
55
+ page,
56
+ limit
57
+ }
58
+ });
59
+ result = {
60
+ data: dbResult.data.map((tool) => dbResultToMcpToolSkeleton(tool)),
61
+ pagination: dbResult.pagination
62
+ };
63
+ return c.json(result);
64
+ }
44
65
  if (status) {
45
66
  const dbResult = await listTools(db)({
46
67
  scopes: {
@@ -4,21 +4,11 @@ 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 { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
7
- import { PaginationQueryParamsSchema, TenantProjectAgentIdParamsSchema, TenantProjectAgentParamsSchema, TriggerApiInsertSchema, TriggerApiSelectSchema, TriggerApiUpdateSchema, TriggerInvocationListResponse, TriggerInvocationResponse, TriggerInvocationStatusEnum, commonGetErrorResponses, createApiError, createTrigger, deleteTrigger, generateId, getTriggerById, getTriggerInvocationById, listTriggerInvocationsPaginated, listTriggersPaginated, updateTrigger } from "@inkeep/agents-core";
7
+ import { PaginationQueryParamsSchema, TenantProjectAgentIdParamsSchema, TenantProjectAgentParamsSchema, TriggerApiInsertSchema, TriggerApiUpdateSchema, TriggerInvocationListResponse, TriggerInvocationResponse, TriggerInvocationStatusEnum, TriggerWithWebhookUrlListResponse, TriggerWithWebhookUrlResponse, commonGetErrorResponses, createApiError, createTrigger, deleteTrigger, generateId, getCredentialReference, getTriggerById, getTriggerInvocationById, hashAuthenticationHeaders, listTriggerInvocationsPaginated, listTriggersPaginated, updateTrigger } from "@inkeep/agents-core";
8
8
 
9
9
  //#region src/domains/manage/routes/triggers.ts
10
10
  const logger = getLogger$1("triggers");
11
11
  const app = new OpenAPIHono();
12
- const TriggerResponse = z.object({ data: TriggerApiSelectSchema.extend({ webhookUrl: z.string().describe("Fully qualified webhook URL for this trigger") }) });
13
- const TriggerListResponse = z.object({
14
- data: z.array(TriggerApiSelectSchema.extend({ webhookUrl: z.string().describe("Fully qualified webhook URL for this trigger") })),
15
- pagination: z.object({
16
- page: z.number(),
17
- limit: z.number(),
18
- total: z.number(),
19
- pages: z.number()
20
- })
21
- });
22
12
  app.use("/", async (c, next) => {
23
13
  if (c.req.method === "POST") return requireProjectPermission("edit")(c, next);
24
14
  return next();
@@ -51,7 +41,7 @@ app.openapi(createRoute({
51
41
  responses: {
52
42
  200: {
53
43
  description: "List of triggers retrieved successfully",
54
- content: { "application/json": { schema: TriggerListResponse } }
44
+ content: { "application/json": { schema: TriggerWithWebhookUrlListResponse } }
55
45
  },
56
46
  ...commonGetErrorResponses
57
47
  },
@@ -103,7 +93,7 @@ app.openapi(createRoute({
103
93
  responses: {
104
94
  200: {
105
95
  description: "Trigger found",
106
- content: { "application/json": { schema: TriggerResponse } }
96
+ content: { "application/json": { schema: TriggerWithWebhookUrlResponse } }
107
97
  },
108
98
  ...commonGetErrorResponses
109
99
  }
@@ -151,7 +141,7 @@ app.openapi(createRoute({
151
141
  responses: {
152
142
  201: {
153
143
  description: "Trigger created successfully",
154
- content: { "application/json": { schema: TriggerResponse } }
144
+ content: { "application/json": { schema: TriggerWithWebhookUrlResponse } }
155
145
  },
156
146
  ...commonGetErrorResponses
157
147
  }
@@ -161,12 +151,32 @@ app.openapi(createRoute({
161
151
  const body = c.req.valid("json");
162
152
  const apiBaseUrl = env.INKEEP_AGENTS_API_URL;
163
153
  const id = body.id || generateId();
164
- logger.info({
154
+ logger.debug({
165
155
  tenantId,
166
156
  projectId,
167
157
  agentId,
168
158
  triggerId: id
169
159
  }, "Creating trigger");
160
+ if (body.signingSecretCredentialReferenceId) {
161
+ const credentialRef = await getCredentialReference(db)({
162
+ scopes: {
163
+ tenantId,
164
+ projectId
165
+ },
166
+ id: body.signingSecretCredentialReferenceId
167
+ });
168
+ if (!credentialRef) throw createApiError({
169
+ code: "bad_request",
170
+ message: `Credential reference not found: ${body.signingSecretCredentialReferenceId}`
171
+ });
172
+ if (credentialRef.userId) throw createApiError({
173
+ code: "bad_request",
174
+ message: "Only project-scoped credentials can be attached to triggers. User-scoped credentials are not allowed."
175
+ });
176
+ }
177
+ let hashedAuthentication;
178
+ const authInput = body.authentication;
179
+ if (authInput?.headers && authInput.headers.length > 0) hashedAuthentication = { headers: await hashAuthenticationHeaders(authInput.headers) };
170
180
  const trigger = await createTrigger(db)({
171
181
  id,
172
182
  tenantId,
@@ -178,8 +188,9 @@ app.openapi(createRoute({
178
188
  inputSchema: body.inputSchema,
179
189
  outputTransform: body.outputTransform,
180
190
  messageTemplate: body.messageTemplate,
181
- authentication: body.authentication,
182
- signingSecret: body.signingSecret
191
+ authentication: hashedAuthentication,
192
+ signingSecretCredentialReferenceId: body.signingSecretCredentialReferenceId,
193
+ signatureVerification: body.signatureVerification
183
194
  });
184
195
  const { tenantId: _tid, projectId: _pid, agentId: _aid, ...triggerWithoutScopes } = trigger;
185
196
  return c.json({ data: {
@@ -209,7 +220,7 @@ app.openapi(createRoute({
209
220
  responses: {
210
221
  200: {
211
222
  description: "Trigger updated successfully",
212
- content: { "application/json": { schema: TriggerResponse } }
223
+ content: { "application/json": { schema: TriggerWithWebhookUrlResponse } }
213
224
  },
214
225
  ...commonGetErrorResponses
215
226
  }
@@ -218,16 +229,61 @@ app.openapi(createRoute({
218
229
  const { tenantId, projectId, agentId, id } = c.req.valid("param");
219
230
  const body = c.req.valid("json");
220
231
  const apiBaseUrl = env.INKEEP_AGENTS_API_URL;
221
- if (!(body.name !== void 0 || body.description !== void 0 || body.enabled !== void 0 || body.inputSchema !== void 0 || body.outputTransform !== void 0 || body.messageTemplate !== void 0 || body.authentication !== void 0 || body.signingSecret !== void 0)) throw createApiError({
232
+ if (!(body.name !== void 0 || body.description !== void 0 || body.enabled !== void 0 || body.inputSchema !== void 0 || body.outputTransform !== void 0 || body.messageTemplate !== void 0 || body.authentication !== void 0 || body.signingSecretCredentialReferenceId !== void 0 || body.signatureVerification !== void 0)) throw createApiError({
222
233
  code: "bad_request",
223
234
  message: "No fields to update"
224
235
  });
225
- logger.info({
236
+ logger.debug({
226
237
  tenantId,
227
238
  projectId,
228
239
  agentId,
229
240
  triggerId: id
230
241
  }, "Updating trigger");
242
+ if (body.signingSecretCredentialReferenceId) {
243
+ const credentialRef = await getCredentialReference(db)({
244
+ scopes: {
245
+ tenantId,
246
+ projectId
247
+ },
248
+ id: body.signingSecretCredentialReferenceId
249
+ });
250
+ if (!credentialRef) throw createApiError({
251
+ code: "bad_request",
252
+ message: `Credential reference not found: ${body.signingSecretCredentialReferenceId}`
253
+ });
254
+ if (credentialRef.userId) throw createApiError({
255
+ code: "bad_request",
256
+ message: "Only project-scoped credentials can be attached to triggers. User-scoped credentials are not allowed."
257
+ });
258
+ }
259
+ let hashedAuthentication;
260
+ const authInput = body.authentication;
261
+ if (authInput?.headers && authInput.headers.length > 0) {
262
+ const existingAuth = (await getTriggerById(db)({
263
+ scopes: {
264
+ tenantId,
265
+ projectId,
266
+ agentId
267
+ },
268
+ triggerId: id
269
+ }))?.authentication;
270
+ const hashedHeaders = [];
271
+ for (const header of authInput.headers) if (header.keepExisting) {
272
+ const existingHeader = existingAuth?.headers?.find((h) => h.name === header.name);
273
+ if (existingHeader) hashedHeaders.push({
274
+ name: header.name,
275
+ valueHash: existingHeader.valueHash,
276
+ valuePrefix: existingHeader.valuePrefix
277
+ });
278
+ } else if (header.value) {
279
+ const hashed = await hashAuthenticationHeaders([{
280
+ name: header.name,
281
+ value: header.value
282
+ }]);
283
+ hashedHeaders.push(hashed[0]);
284
+ }
285
+ hashedAuthentication = hashedHeaders.length > 0 ? { headers: hashedHeaders } : void 0;
286
+ } else if (body.authentication !== void 0) hashedAuthentication = body.authentication;
231
287
  const updatedTrigger = await updateTrigger(db)({
232
288
  scopes: {
233
289
  tenantId,
@@ -242,8 +298,9 @@ app.openapi(createRoute({
242
298
  inputSchema: body.inputSchema,
243
299
  outputTransform: body.outputTransform,
244
300
  messageTemplate: body.messageTemplate,
245
- authentication: body.authentication,
246
- signingSecret: body.signingSecret
301
+ authentication: hashedAuthentication,
302
+ signingSecretCredentialReferenceId: body.signingSecretCredentialReferenceId,
303
+ signatureVerification: body.signatureVerification
247
304
  }
248
305
  });
249
306
  if (!updatedTrigger) throw createApiError({
@@ -279,7 +336,7 @@ app.openapi(createRoute({
279
336
  }), async (c) => {
280
337
  const db = c.get("db");
281
338
  const { tenantId, projectId, agentId, id } = c.req.valid("param");
282
- logger.info({
339
+ logger.debug({
283
340
  tenantId,
284
341
  projectId,
285
342
  agentId,
@@ -340,7 +397,7 @@ app.openapi(createRoute({
340
397
  }), async (c) => {
341
398
  const { tenantId, projectId, agentId, id: triggerId } = c.req.valid("param");
342
399
  const { page, limit, status, from, to } = c.req.valid("query");
343
- logger.info({
400
+ logger.debug({
344
401
  tenantId,
345
402
  projectId,
346
403
  agentId,
@@ -394,7 +451,7 @@ app.openapi(createRoute({
394
451
  }
395
452
  }), async (c) => {
396
453
  const { tenantId, projectId, agentId, id: triggerId, invocationId } = c.req.valid("param");
397
- logger.info({
454
+ logger.debug({
398
455
  tenantId,
399
456
  projectId,
400
457
  agentId,
@@ -1,6 +1,6 @@
1
1
  import runDbClient_default from "../../../data/db/runDbClient.js";
2
2
  import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
3
- import { addUserToOrganization, getUserOrganizations } from "@inkeep/agents-core";
3
+ import { addUserToOrganization, getUserOrganizationsFromDb } from "@inkeep/agents-core";
4
4
  import { AddUserToOrganizationRequestSchema, AddUserToOrganizationResponseSchema, UserOrganizationsResponseSchema } from "@inkeep/agents-core/auth/validation";
5
5
 
6
6
  //#region src/domains/manage/routes/userOrganizations.ts
@@ -8,7 +8,7 @@ const userOrganizationsRoutes = new OpenAPIHono();
8
8
  userOrganizationsRoutes.openapi(createRoute({
9
9
  method: "get",
10
10
  path: "/",
11
- tags: ["user-organizations"],
11
+ tags: ["User Organizations"],
12
12
  summary: "List user organizations",
13
13
  description: "Get all organizations associated with a user",
14
14
  request: { params: z.object({ userId: z.string().describe("User ID") }) },
@@ -18,7 +18,7 @@ userOrganizationsRoutes.openapi(createRoute({
18
18
  } }
19
19
  }), async (c) => {
20
20
  const { userId } = c.req.valid("param");
21
- const userOrganizations = (await getUserOrganizations(runDbClient_default)(userId)).map((org) => ({
21
+ const userOrganizations = (await getUserOrganizationsFromDb(runDbClient_default)(userId)).map((org) => ({
22
22
  ...org,
23
23
  createdAt: org.createdAt.toISOString()
24
24
  }));
@@ -27,7 +27,7 @@ userOrganizationsRoutes.openapi(createRoute({
27
27
  userOrganizationsRoutes.openapi(createRoute({
28
28
  method: "post",
29
29
  path: "/",
30
- tags: ["user-organizations"],
30
+ tags: ["User Organizations"],
31
31
  summary: "Add user to organization",
32
32
  description: "Associate a user with an organization",
33
33
  request: {
@@ -1,7 +1,7 @@
1
1
  import { ManageAppVariables } from "../../../types/app.js";
2
2
  import { OpenAPIHono } from "@hono/zod-openapi";
3
3
 
4
- //#region src/domains/manage/routes/agentToolRelations.d.ts
4
+ //#region src/domains/manage/routes/userProjectMemberships.d.ts
5
5
  declare const app: OpenAPIHono<{
6
6
  Variables: ManageAppVariables;
7
7
  }, {}, "/">;
@@ -0,0 +1,45 @@
1
+ import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
2
+ import { ProjectRoles, commonGetErrorResponses, isAuthzEnabled, listUserProjectMembershipsInSpiceDb } from "@inkeep/agents-core";
3
+
4
+ //#region src/domains/manage/routes/userProjectMemberships.ts
5
+ const app = new OpenAPIHono();
6
+ const projectRoleEnum = z.enum([
7
+ ProjectRoles.ADMIN,
8
+ ProjectRoles.MEMBER,
9
+ ProjectRoles.VIEWER
10
+ ]);
11
+ const UserProjectMembershipParamsSchema = z.object({
12
+ tenantId: z.string(),
13
+ userId: z.string()
14
+ });
15
+ app.openapi(createRoute({
16
+ method: "get",
17
+ path: "/",
18
+ summary: "List User Project Memberships",
19
+ description: "List all projects a user has explicit access to and their role in each. Requires authz to be enabled.",
20
+ operationId: "list-user-project-memberships",
21
+ tags: ["User Project Memberships"],
22
+ request: { params: UserProjectMembershipParamsSchema },
23
+ responses: {
24
+ 200: {
25
+ description: "List of project memberships for the user",
26
+ content: { "application/json": { schema: z.object({ data: z.array(z.object({
27
+ projectId: z.string(),
28
+ role: projectRoleEnum
29
+ })) }) } }
30
+ },
31
+ ...commonGetErrorResponses
32
+ }
33
+ }), async (c) => {
34
+ const { tenantId, userId } = c.req.valid("param");
35
+ if (!isAuthzEnabled()) return c.json({ data: [] });
36
+ const memberships = await listUserProjectMembershipsInSpiceDb({
37
+ tenantId,
38
+ userId
39
+ });
40
+ return c.json({ data: memberships });
41
+ });
42
+ var userProjectMemberships_default = app;
43
+
44
+ //#endregion
45
+ export { userProjectMemberships_default as default };
@@ -0,0 +1,7 @@
1
+ import { Hono } from "hono";
2
+ import * as hono_types11 from "hono/types";
3
+
4
+ //#region src/domains/mcp/routes/mcp.d.ts
5
+ declare const app: Hono<hono_types11.BlankEnv, hono_types11.BlankSchema, "/">;
6
+ //#endregion
7
+ export { app as default };