@inkeep/agents-api 0.0.0-dev-20260128035734 → 0.0.0-dev-20260128045356
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.well-known/workflow/v1/manifest.debug.json +5 -5
- package/dist/createApp.d.ts +2 -2
- package/dist/createApp.js +2 -10
- package/dist/domains/evals/routes/datasetTriggers.d.ts +2 -2
- package/dist/domains/evals/workflow/routes.d.ts +2 -2
- package/dist/domains/github/index.d.ts +3 -3
- package/dist/domains/github/routes/tokenExchange.d.ts +2 -2
- package/dist/domains/manage/routes/conversations.d.ts +2 -2
- package/dist/domains/manage/routes/evals/evaluationResults.d.ts +2 -2
- package/dist/domains/manage/routes/index.d.ts +2 -2
- package/dist/domains/manage/routes/mcp.d.ts +2 -2
- package/dist/domains/manage/routes/signoz.d.ts +2 -2
- package/dist/domains/mcp/routes/mcp.d.ts +2 -2
- package/dist/domains/run/services/TriggerService.js +13 -13
- package/dist/factory.d.ts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/middleware/evalsAuth.d.ts +2 -2
- package/dist/middleware/manageAuth.d.ts +2 -2
- package/dist/middleware/projectAccess.d.ts +2 -2
- package/dist/middleware/projectConfig.d.ts +3 -3
- package/dist/middleware/requirePermission.d.ts +2 -2
- package/dist/middleware/runAuth.d.ts +4 -4
- package/dist/middleware/sessionAuth.d.ts +3 -3
- package/dist/middleware/tenantAccess.d.ts +2 -2
- package/dist/middleware/tracing.d.ts +3 -3
- package/dist/routes/healthChecks.d.ts +10 -0
- package/dist/routes/healthChecks.js +75 -0
- package/dist/utils/healthChecks.d.ts +8 -0
- package/dist/utils/healthChecks.js +38 -0
- package/package.json +4 -4
|
@@ -41,15 +41,15 @@
|
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
"workflows": {
|
|
44
|
-
"src/domains/evals/workflow/functions/evaluateConversation.ts": {
|
|
45
|
-
"_evaluateConversationWorkflow": {
|
|
46
|
-
"workflowId": "workflow//src/domains/evals/workflow/functions/evaluateConversation.ts//_evaluateConversationWorkflow"
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
44
|
"src/domains/evals/workflow/functions/runDatasetItem.ts": {
|
|
50
45
|
"_runDatasetItemWorkflow": {
|
|
51
46
|
"workflowId": "workflow//src/domains/evals/workflow/functions/runDatasetItem.ts//_runDatasetItemWorkflow"
|
|
52
47
|
}
|
|
48
|
+
},
|
|
49
|
+
"src/domains/evals/workflow/functions/evaluateConversation.ts": {
|
|
50
|
+
"_evaluateConversationWorkflow": {
|
|
51
|
+
"workflowId": "workflow//src/domains/evals/workflow/functions/evaluateConversation.ts//_evaluateConversationWorkflow"
|
|
52
|
+
}
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
}
|
package/dist/createApp.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { AppConfig } from "./types/app.js";
|
|
2
2
|
import "./types/index.js";
|
|
3
3
|
import { Hono } from "hono";
|
|
4
|
-
import * as
|
|
4
|
+
import * as hono_types0 from "hono/types";
|
|
5
5
|
|
|
6
6
|
//#region src/createApp.d.ts
|
|
7
7
|
declare const isWebhookRoute: (path: string) => boolean;
|
|
8
|
-
declare function createAgentsHono(config: AppConfig): Hono<
|
|
8
|
+
declare function createAgentsHono(config: AppConfig): Hono<hono_types0.BlankEnv, hono_types0.BlankSchema, "/">;
|
|
9
9
|
//#endregion
|
|
10
10
|
export { createAgentsHono, isWebhookRoute };
|
package/dist/createApp.js
CHANGED
|
@@ -20,6 +20,7 @@ import { evalApiKeyAuth } from "./middleware/evalsAuth.js";
|
|
|
20
20
|
import { projectConfigMiddleware, projectConfigMiddlewareExcept } from "./middleware/projectConfig.js";
|
|
21
21
|
import { executionBaggageMiddleware } from "./middleware/tracing.js";
|
|
22
22
|
import { setupOpenAPIRoutes } from "./openapi.js";
|
|
23
|
+
import { healthChecksHandler } from "./routes/healthChecks.js";
|
|
23
24
|
import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
|
|
24
25
|
import { Hono } from "hono";
|
|
25
26
|
import { cors } from "hono/cors";
|
|
@@ -90,16 +91,7 @@ function createAgentsHono(config) {
|
|
|
90
91
|
}));
|
|
91
92
|
app.onError(errorHandler);
|
|
92
93
|
app.use("*", sessionContext());
|
|
93
|
-
app.
|
|
94
|
-
method: "get",
|
|
95
|
-
path: "/health",
|
|
96
|
-
operationId: "health",
|
|
97
|
-
summary: "Health check",
|
|
98
|
-
description: "Check if the management service is healthy",
|
|
99
|
-
responses: { 204: { description: "Service is healthy" } }
|
|
100
|
-
}), (c) => {
|
|
101
|
-
return c.body(null, 204);
|
|
102
|
-
});
|
|
94
|
+
app.route("/", healthChecksHandler);
|
|
103
95
|
app.openapi(createRoute({
|
|
104
96
|
method: "get",
|
|
105
97
|
path: "/api/workflow/process",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
|
-
import * as
|
|
2
|
+
import * as hono14 from "hono";
|
|
3
3
|
|
|
4
4
|
//#region src/domains/evals/routes/datasetTriggers.d.ts
|
|
5
|
-
declare const app: OpenAPIHono<
|
|
5
|
+
declare const app: OpenAPIHono<hono14.Env, {}, "/">;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { app as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Hono } from "hono";
|
|
2
|
-
import * as
|
|
2
|
+
import * as hono_types9 from "hono/types";
|
|
3
3
|
|
|
4
4
|
//#region src/domains/evals/workflow/routes.d.ts
|
|
5
|
-
declare const workflowRoutes: Hono<
|
|
5
|
+
declare const workflowRoutes: Hono<hono_types9.BlankEnv, hono_types9.BlankSchema, "/">;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { workflowRoutes };
|
|
@@ -3,10 +3,10 @@ import { GenerateInstallationAccessTokenResult, GenerateTokenError, GenerateToke
|
|
|
3
3
|
import { GetJwkResult, JwksError, JwksResult, clearJwksCache, getJwkForToken, getJwksCacheStatus } from "./jwks.js";
|
|
4
4
|
import { GitHubOidcClaims, ValidateOidcTokenResult, ValidateTokenError, ValidateTokenResult, validateOidcToken } from "./oidcToken.js";
|
|
5
5
|
import { Hono } from "hono";
|
|
6
|
-
import * as
|
|
6
|
+
import * as hono_types5 from "hono/types";
|
|
7
7
|
|
|
8
8
|
//#region src/domains/github/index.d.ts
|
|
9
|
-
declare function createGithubRoutes(): Hono<
|
|
10
|
-
declare const githubRoutes: Hono<
|
|
9
|
+
declare function createGithubRoutes(): Hono<hono_types5.BlankEnv, hono_types5.BlankSchema, "/">;
|
|
10
|
+
declare const githubRoutes: Hono<hono_types5.BlankEnv, hono_types5.BlankSchema, "/">;
|
|
11
11
|
//#endregion
|
|
12
12
|
export { type GenerateInstallationAccessTokenResult, type GenerateTokenError, type GenerateTokenResult, type GetJwkResult, type GitHubAppConfig, type GitHubOidcClaims, type InstallationAccessToken, type InstallationInfo, type JwksError, type JwksResult, type LookupInstallationError, type LookupInstallationForRepoResult, type LookupInstallationResult, type ValidateOidcTokenResult, type ValidateTokenError, type ValidateTokenResult, clearJwksCache, createGithubRoutes, generateInstallationAccessToken, getGitHubAppConfig, getJwkForToken, getJwksCacheStatus, githubRoutes, isGitHubAppConfigured, lookupInstallationForRepo, validateOidcToken };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Hono } from "hono";
|
|
2
|
-
import * as
|
|
2
|
+
import * as hono_types11 from "hono/types";
|
|
3
3
|
|
|
4
4
|
//#region src/domains/github/routes/tokenExchange.d.ts
|
|
5
|
-
declare const app: Hono<
|
|
5
|
+
declare const app: Hono<hono_types11.BlankEnv, hono_types11.BlankSchema, "/">;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { app as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
|
-
import * as
|
|
2
|
+
import * as hono17 from "hono";
|
|
3
3
|
|
|
4
4
|
//#region src/domains/manage/routes/conversations.d.ts
|
|
5
|
-
declare const app: OpenAPIHono<
|
|
5
|
+
declare const app: OpenAPIHono<hono17.Env, {}, "/">;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { app as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
|
-
import * as
|
|
2
|
+
import * as hono16 from "hono";
|
|
3
3
|
|
|
4
4
|
//#region src/domains/manage/routes/evals/evaluationResults.d.ts
|
|
5
|
-
declare const app: OpenAPIHono<
|
|
5
|
+
declare const app: OpenAPIHono<hono16.Env, {}, "/">;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { app as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
|
-
import * as
|
|
2
|
+
import * as hono18 from "hono";
|
|
3
3
|
|
|
4
4
|
//#region src/domains/manage/routes/index.d.ts
|
|
5
|
-
declare const app: OpenAPIHono<
|
|
5
|
+
declare const app: OpenAPIHono<hono18.Env, {}, "/">;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { app as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Hono } from "hono";
|
|
2
|
-
import * as
|
|
2
|
+
import * as hono_types15 from "hono/types";
|
|
3
3
|
|
|
4
4
|
//#region src/domains/manage/routes/mcp.d.ts
|
|
5
|
-
declare const app: Hono<
|
|
5
|
+
declare const app: Hono<hono_types15.BlankEnv, hono_types15.BlankSchema, "/">;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { app as default };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ManageAppVariables } from "../../../types/app.js";
|
|
2
2
|
import { Hono } from "hono";
|
|
3
|
-
import * as
|
|
3
|
+
import * as hono_types17 from "hono/types";
|
|
4
4
|
|
|
5
5
|
//#region src/domains/manage/routes/signoz.d.ts
|
|
6
6
|
declare const app: Hono<{
|
|
7
7
|
Variables: ManageAppVariables;
|
|
8
|
-
},
|
|
8
|
+
}, hono_types17.BlankSchema, "/">;
|
|
9
9
|
//#endregion
|
|
10
10
|
export { app as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Hono } from "hono";
|
|
2
|
-
import * as
|
|
2
|
+
import * as hono_types13 from "hono/types";
|
|
3
3
|
|
|
4
4
|
//#region src/domains/mcp/routes/mcp.d.ts
|
|
5
|
-
declare const app: Hono<
|
|
5
|
+
declare const app: Hono<hono_types13.BlankEnv, hono_types13.BlankSchema, "/">;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { app as default };
|
|
@@ -314,6 +314,19 @@ async function dispatchExecution(params) {
|
|
|
314
314
|
invocationId,
|
|
315
315
|
conversationId
|
|
316
316
|
}, "Trigger invocation created");
|
|
317
|
+
trace.getTracer("trigger-service").startSpan("trigger.message_received", { attributes: {
|
|
318
|
+
"tenant.id": tenantId,
|
|
319
|
+
"project.id": projectId,
|
|
320
|
+
"agent.id": agentId,
|
|
321
|
+
"trigger.id": triggerId,
|
|
322
|
+
"trigger.invocation.id": invocationId,
|
|
323
|
+
"conversation.id": conversationId,
|
|
324
|
+
"invocation.type": "trigger",
|
|
325
|
+
"message.content": userMessageText,
|
|
326
|
+
"message.timestamp": (/* @__PURE__ */ new Date()).toISOString(),
|
|
327
|
+
"message.parts": JSON.stringify(messageParts)
|
|
328
|
+
} }, ROOT_CONTEXT).end();
|
|
329
|
+
await flushBatchProcessor();
|
|
317
330
|
const executionPromise = executeAgentAsync({
|
|
318
331
|
tenantId,
|
|
319
332
|
projectId,
|
|
@@ -365,19 +378,6 @@ async function executeAgentAsync(params) {
|
|
|
365
378
|
const tracer = trace.getTracer("trigger-service");
|
|
366
379
|
const baggage = propagation.createBaggage().setEntry("conversation.id", { value: conversationId }).setEntry("tenant.id", { value: tenantId }).setEntry("project.id", { value: projectId }).setEntry("agent.id", { value: agentId });
|
|
367
380
|
const ctxWithBaggage = propagation.setBaggage(ROOT_CONTEXT, baggage);
|
|
368
|
-
tracer.startSpan("trigger.message_received", { attributes: {
|
|
369
|
-
"tenant.id": tenantId,
|
|
370
|
-
"project.id": projectId,
|
|
371
|
-
"agent.id": agentId,
|
|
372
|
-
"trigger.id": triggerId,
|
|
373
|
-
"trigger.invocation.id": invocationId,
|
|
374
|
-
"conversation.id": conversationId,
|
|
375
|
-
"invocation.type": "trigger",
|
|
376
|
-
"message.content": userMessage,
|
|
377
|
-
"message.timestamp": (/* @__PURE__ */ new Date()).toISOString(),
|
|
378
|
-
"message.parts": JSON.stringify(messageParts)
|
|
379
|
-
} }, ctxWithBaggage).end();
|
|
380
|
-
await flushBatchProcessor();
|
|
381
381
|
return tracer.startActiveSpan("trigger.execute_async", { attributes: {
|
|
382
382
|
"tenant.id": tenantId,
|
|
383
383
|
"project.id": projectId,
|
package/dist/factory.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import * as hono0 from "hono";
|
|
|
7
7
|
import { CredentialStore, ServerConfig } from "@inkeep/agents-core";
|
|
8
8
|
import * as zod0 from "zod";
|
|
9
9
|
import { SSOProviderConfig, UserAuthConfig } from "@inkeep/agents-core/auth";
|
|
10
|
-
import * as
|
|
10
|
+
import * as hono_types1 from "hono/types";
|
|
11
11
|
import * as better_auth0 from "better-auth";
|
|
12
12
|
import * as better_auth_plugins0 from "better-auth/plugins";
|
|
13
13
|
import * as _better_auth_sso0 from "@better-auth/sso";
|
|
@@ -1536,6 +1536,6 @@ declare function createAgentsApp(config?: {
|
|
|
1536
1536
|
auth?: UserAuthConfig;
|
|
1537
1537
|
sandboxConfig?: SandboxConfig;
|
|
1538
1538
|
skipInitialization?: boolean;
|
|
1539
|
-
}): hono0.Hono<
|
|
1539
|
+
}): hono0.Hono<hono_types1.BlankEnv, hono_types1.BlankSchema, "/">;
|
|
1540
1540
|
//#endregion
|
|
1541
1541
|
export { type SSOProviderConfig, type UserAuthConfig, createAgentsApp, createAgentsAuth, createAgentsHono, createAuth0Provider, createOIDCProvider, initializeDefaultUser };
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { createAuth0Provider, createOIDCProvider } from "./ssoHelpers.js";
|
|
|
8
8
|
import { SSOProviderConfig, UserAuthConfig, createAgentsApp } from "./factory.js";
|
|
9
9
|
import { Hono } from "hono";
|
|
10
10
|
import * as zod205 from "zod";
|
|
11
|
-
import * as
|
|
11
|
+
import * as hono_types3 from "hono/types";
|
|
12
12
|
import * as better_auth78 from "better-auth";
|
|
13
13
|
import * as better_auth_plugins69 from "better-auth/plugins";
|
|
14
14
|
import * as _better_auth_sso10 from "@better-auth/sso";
|
|
@@ -1531,6 +1531,6 @@ declare const auth: better_auth78.Auth<{
|
|
|
1531
1531
|
}>;
|
|
1532
1532
|
}];
|
|
1533
1533
|
}> | null;
|
|
1534
|
-
declare const app: Hono<
|
|
1534
|
+
declare const app: Hono<hono_types3.BlankEnv, hono_types3.BlankSchema, "/">;
|
|
1535
1535
|
//#endregion
|
|
1536
1536
|
export { type AppConfig, type AppVariables, Hono, type NativeSandboxConfig, type SSOProviderConfig, type SandboxConfig, type UserAuthConfig, type VercelSandboxConfig, auth, createAgentsApp, createAgentsHono, createAuth0Provider, createOIDCProvider, app as default, initializeDefaultUser };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as hono0 from "hono";
|
|
2
2
|
import { BaseExecutionContext } from "@inkeep/agents-core";
|
|
3
3
|
|
|
4
4
|
//#region src/middleware/evalsAuth.d.ts
|
|
@@ -7,7 +7,7 @@ import { BaseExecutionContext } from "@inkeep/agents-core";
|
|
|
7
7
|
* Middleware to authenticate API requests using Bearer token authentication
|
|
8
8
|
* First checks if token matches INKEEP_AGENTS_EVAL_API_BYPASS_SECRET,
|
|
9
9
|
*/
|
|
10
|
-
declare const evalApiKeyAuth: () =>
|
|
10
|
+
declare const evalApiKeyAuth: () => hono0.MiddlewareHandler<{
|
|
11
11
|
Variables: {
|
|
12
12
|
executionContext: BaseExecutionContext;
|
|
13
13
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as hono1 from "hono";
|
|
2
2
|
import { BaseExecutionContext } from "@inkeep/agents-core";
|
|
3
3
|
import { createAuth } from "@inkeep/agents-core/auth";
|
|
4
4
|
|
|
@@ -12,7 +12,7 @@ import { createAuth } from "@inkeep/agents-core/auth";
|
|
|
12
12
|
* 3. Database API key
|
|
13
13
|
* 4. Internal service token
|
|
14
14
|
*/
|
|
15
|
-
declare const manageApiKeyAuth: () =>
|
|
15
|
+
declare const manageApiKeyAuth: () => hono1.MiddlewareHandler<{
|
|
16
16
|
Variables: {
|
|
17
17
|
executionContext: BaseExecutionContext;
|
|
18
18
|
userId?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ManageAppVariables } from "../types/app.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as hono2 from "hono";
|
|
3
3
|
import { ProjectPermissionLevel } from "@inkeep/agents-core";
|
|
4
4
|
|
|
5
5
|
//#region src/middleware/projectAccess.d.ts
|
|
@@ -19,6 +19,6 @@ declare const requireProjectPermission: <Env$1 extends {
|
|
|
19
19
|
Variables: ManageAppVariables;
|
|
20
20
|
} = {
|
|
21
21
|
Variables: ManageAppVariables;
|
|
22
|
-
}>(permission?: ProjectPermissionLevel) =>
|
|
22
|
+
}>(permission?: ProjectPermissionLevel) => hono2.MiddlewareHandler<Env$1, string, {}, Response>;
|
|
23
23
|
//#endregion
|
|
24
24
|
export { requireProjectPermission };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as hono3 from "hono";
|
|
2
2
|
import { BaseExecutionContext, ResolvedRef } from "@inkeep/agents-core";
|
|
3
3
|
|
|
4
4
|
//#region src/middleware/projectConfig.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* Middleware that fetches the full project definition from the Management API
|
|
7
7
|
*/
|
|
8
|
-
declare const projectConfigMiddleware:
|
|
8
|
+
declare const projectConfigMiddleware: hono3.MiddlewareHandler<{
|
|
9
9
|
Variables: {
|
|
10
10
|
executionContext: BaseExecutionContext;
|
|
11
11
|
resolvedRef: ResolvedRef;
|
|
@@ -15,7 +15,7 @@ declare const projectConfigMiddleware: hono13.MiddlewareHandler<{
|
|
|
15
15
|
* Creates a middleware that applies project config fetching except for specified route patterns
|
|
16
16
|
* @param skipRouteCheck - Function that returns true if the route should skip the middleware
|
|
17
17
|
*/
|
|
18
|
-
declare const projectConfigMiddlewareExcept: (skipRouteCheck: (path: string) => boolean) =>
|
|
18
|
+
declare const projectConfigMiddlewareExcept: (skipRouteCheck: (path: string) => boolean) => hono3.MiddlewareHandler<{
|
|
19
19
|
Variables: {
|
|
20
20
|
executionContext: BaseExecutionContext;
|
|
21
21
|
resolvedRef: ResolvedRef;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ManageAppVariables } from "../types/app.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as hono5 from "hono";
|
|
3
3
|
|
|
4
4
|
//#region src/middleware/requirePermission.d.ts
|
|
5
5
|
type Permission = {
|
|
@@ -9,6 +9,6 @@ declare const requirePermission: <Env$1 extends {
|
|
|
9
9
|
Variables: ManageAppVariables;
|
|
10
10
|
} = {
|
|
11
11
|
Variables: ManageAppVariables;
|
|
12
|
-
}>(permissions: Permission) =>
|
|
12
|
+
}>(permissions: Permission) => hono5.MiddlewareHandler<Env$1, string, {}, Response>;
|
|
13
13
|
//#endregion
|
|
14
14
|
export { requirePermission };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as hono6 from "hono";
|
|
2
2
|
import { BaseExecutionContext } from "@inkeep/agents-core";
|
|
3
3
|
|
|
4
4
|
//#region src/middleware/runAuth.d.ts
|
|
5
|
-
declare const runApiKeyAuth: () =>
|
|
5
|
+
declare const runApiKeyAuth: () => hono6.MiddlewareHandler<{
|
|
6
6
|
Variables: {
|
|
7
7
|
executionContext: BaseExecutionContext;
|
|
8
8
|
};
|
|
@@ -11,7 +11,7 @@ declare const runApiKeyAuth: () => hono3.MiddlewareHandler<{
|
|
|
11
11
|
* Creates a middleware that applies API key authentication except for specified route patterns
|
|
12
12
|
* @param skipRouteCheck - Function that returns true if the route should skip authentication
|
|
13
13
|
*/
|
|
14
|
-
declare const runApiKeyAuthExcept: (skipRouteCheck: (path: string) => boolean) =>
|
|
14
|
+
declare const runApiKeyAuthExcept: (skipRouteCheck: (path: string) => boolean) => hono6.MiddlewareHandler<{
|
|
15
15
|
Variables: {
|
|
16
16
|
executionContext: BaseExecutionContext;
|
|
17
17
|
};
|
|
@@ -20,7 +20,7 @@ declare const runApiKeyAuthExcept: (skipRouteCheck: (path: string) => boolean) =
|
|
|
20
20
|
* Helper middleware for endpoints that optionally support API key authentication
|
|
21
21
|
* If no auth header is present, it continues without setting the executionContext
|
|
22
22
|
*/
|
|
23
|
-
declare const runOptionalAuth: () =>
|
|
23
|
+
declare const runOptionalAuth: () => hono6.MiddlewareHandler<{
|
|
24
24
|
Variables: {
|
|
25
25
|
executionContext?: BaseExecutionContext;
|
|
26
26
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as hono9 from "hono";
|
|
2
2
|
|
|
3
3
|
//#region src/middleware/sessionAuth.d.ts
|
|
4
4
|
|
|
@@ -7,11 +7,11 @@ import * as hono1 from "hono";
|
|
|
7
7
|
* Requires that a user has already been authenticated via Better Auth session.
|
|
8
8
|
* Used primarily for manage routes that require an active user session.
|
|
9
9
|
*/
|
|
10
|
-
declare const sessionAuth: () =>
|
|
10
|
+
declare const sessionAuth: () => hono9.MiddlewareHandler<any, string, {}, Response>;
|
|
11
11
|
/**
|
|
12
12
|
* Global session middleware - sets user and session in context for all routes
|
|
13
13
|
* Used for all routes that require an active user session.
|
|
14
14
|
*/
|
|
15
|
-
declare const sessionContext: () =>
|
|
15
|
+
declare const sessionContext: () => hono9.MiddlewareHandler<any, string, {}, Response>;
|
|
16
16
|
//#endregion
|
|
17
17
|
export { sessionAuth, sessionContext };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as hono11 from "hono";
|
|
2
2
|
|
|
3
3
|
//#region src/middleware/tenantAccess.d.ts
|
|
4
4
|
|
|
@@ -11,7 +11,7 @@ import * as hono6 from "hono";
|
|
|
11
11
|
* - API key user: Access only to the tenant associated with the API key
|
|
12
12
|
* - Session user: Access based on organization membership
|
|
13
13
|
*/
|
|
14
|
-
declare const requireTenantAccess: () =>
|
|
14
|
+
declare const requireTenantAccess: () => hono11.MiddlewareHandler<{
|
|
15
15
|
Variables: {
|
|
16
16
|
userId: string;
|
|
17
17
|
tenantId: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as hono12 from "hono";
|
|
2
2
|
|
|
3
3
|
//#region src/middleware/tracing.d.ts
|
|
4
|
-
declare const otelBaggageMiddleware: () =>
|
|
5
|
-
declare const executionBaggageMiddleware: () =>
|
|
4
|
+
declare const otelBaggageMiddleware: () => hono12.MiddlewareHandler<any, string, {}, Response>;
|
|
5
|
+
declare const executionBaggageMiddleware: () => hono12.MiddlewareHandler<any, string, {}, Response>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { executionBaggageMiddleware, otelBaggageMiddleware };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AppVariables } from "../types/app.js";
|
|
2
|
+
import "../types/index.js";
|
|
3
|
+
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
4
|
+
|
|
5
|
+
//#region src/routes/healthChecks.d.ts
|
|
6
|
+
declare const healthChecksHandler: OpenAPIHono<{
|
|
7
|
+
Variables: AppVariables;
|
|
8
|
+
}, {}, "/">;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { healthChecksHandler };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import manageDbPool_default from "../data/db/manageDbPool.js";
|
|
2
|
+
import runDbClient_default from "../data/db/runDbClient.js";
|
|
3
|
+
import { checkManageDb, checkRunDb } from "../utils/healthChecks.js";
|
|
4
|
+
import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
|
|
5
|
+
|
|
6
|
+
//#region src/routes/healthChecks.ts
|
|
7
|
+
const healthChecksHandler = new OpenAPIHono();
|
|
8
|
+
healthChecksHandler.openapi(createRoute({
|
|
9
|
+
method: "get",
|
|
10
|
+
path: "/health",
|
|
11
|
+
operationId: "health",
|
|
12
|
+
tags: ["Health"],
|
|
13
|
+
summary: "Health check",
|
|
14
|
+
description: "Check if the management service is healthy",
|
|
15
|
+
responses: { 204: { description: "Service is healthy" } }
|
|
16
|
+
}), (c) => {
|
|
17
|
+
return c.body(null, 204);
|
|
18
|
+
});
|
|
19
|
+
const ReadyResponseSchema = z.object({
|
|
20
|
+
status: z.literal("ok"),
|
|
21
|
+
manageDb: z.boolean().describe("Whether the manage database is reachable"),
|
|
22
|
+
runDb: z.boolean().describe("Whether the run database is reachable")
|
|
23
|
+
}).openapi("ReadyResponse");
|
|
24
|
+
const ReadyErrorChecksSchema = z.object({
|
|
25
|
+
manageDb: z.boolean().describe("Whether the manage database check passed"),
|
|
26
|
+
runDb: z.boolean().describe("Whether the run database check passed")
|
|
27
|
+
}).openapi("ReadyErrorChecks");
|
|
28
|
+
const ReadyErrorResponseSchema = z.object({
|
|
29
|
+
type: z.string().describe("A URI reference that identifies the problem type"),
|
|
30
|
+
title: z.string().describe("A short, human-readable summary of the problem type"),
|
|
31
|
+
status: z.number().describe("The HTTP status code"),
|
|
32
|
+
detail: z.string().describe("A human-readable explanation specific to this occurrence"),
|
|
33
|
+
checks: ReadyErrorChecksSchema
|
|
34
|
+
}).openapi("ReadyErrorResponse");
|
|
35
|
+
healthChecksHandler.openapi(createRoute({
|
|
36
|
+
method: "get",
|
|
37
|
+
path: "/ready",
|
|
38
|
+
operationId: "ready",
|
|
39
|
+
tags: ["Health"],
|
|
40
|
+
summary: "Readiness check",
|
|
41
|
+
description: "Check if the service is ready to serve traffic by verifying database connectivity",
|
|
42
|
+
responses: {
|
|
43
|
+
200: {
|
|
44
|
+
description: "Service is ready - all health checks passed",
|
|
45
|
+
content: { "application/json": { schema: ReadyResponseSchema } }
|
|
46
|
+
},
|
|
47
|
+
503: {
|
|
48
|
+
description: "Service is not ready - one or more health checks failed",
|
|
49
|
+
content: { "application/problem+json": { schema: ReadyErrorResponseSchema } }
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}), async (c) => {
|
|
53
|
+
const [manageDbHealthy, runDbHealthy] = await Promise.all([checkManageDb(manageDbPool_default), checkRunDb(runDbClient_default)]);
|
|
54
|
+
if (manageDbHealthy && runDbHealthy) return c.json({
|
|
55
|
+
status: "ok",
|
|
56
|
+
manageDb: true,
|
|
57
|
+
runDb: true
|
|
58
|
+
});
|
|
59
|
+
const failedChecks = [];
|
|
60
|
+
if (!manageDbHealthy) failedChecks.push("manage database");
|
|
61
|
+
if (!runDbHealthy) failedChecks.push("run database");
|
|
62
|
+
return c.json({
|
|
63
|
+
type: "https://httpstatuses.com/503",
|
|
64
|
+
title: "Service Unavailable",
|
|
65
|
+
status: 503,
|
|
66
|
+
detail: `Health checks failed: ${failedChecks.join(", ")}`,
|
|
67
|
+
checks: {
|
|
68
|
+
manageDb: manageDbHealthy,
|
|
69
|
+
runDb: runDbHealthy
|
|
70
|
+
}
|
|
71
|
+
}, 503, { "Content-Type": "application/problem+json" });
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
export { healthChecksHandler };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AgentsRunDatabaseClient } from "@inkeep/agents-core";
|
|
2
|
+
import { Pool } from "pg";
|
|
3
|
+
|
|
4
|
+
//#region src/utils/healthChecks.d.ts
|
|
5
|
+
declare function checkManageDb(pool: Pool): Promise<boolean>;
|
|
6
|
+
declare function checkRunDb(client: AgentsRunDatabaseClient): Promise<boolean>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { checkManageDb, checkRunDb };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
//#region src/utils/healthChecks.ts
|
|
2
|
+
const HEALTH_CHECK_TIMEOUT_MS = 5e3;
|
|
3
|
+
async function withTimeout(promise, timeoutMs) {
|
|
4
|
+
let timeoutId;
|
|
5
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
6
|
+
timeoutId = setTimeout(() => {
|
|
7
|
+
reject(/* @__PURE__ */ new Error(`Health check timed out after ${timeoutMs}ms`));
|
|
8
|
+
}, timeoutMs);
|
|
9
|
+
});
|
|
10
|
+
try {
|
|
11
|
+
return await Promise.race([promise, timeoutPromise]);
|
|
12
|
+
} finally {
|
|
13
|
+
if (timeoutId !== void 0) clearTimeout(timeoutId);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
async function checkManageDb(pool) {
|
|
17
|
+
try {
|
|
18
|
+
await withTimeout(pool.query("SELECT 1"), HEALTH_CHECK_TIMEOUT_MS);
|
|
19
|
+
return true;
|
|
20
|
+
} catch {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async function checkRunDb(client) {
|
|
25
|
+
try {
|
|
26
|
+
if ("$client" in client && client.$client) {
|
|
27
|
+
const pool = client.$client;
|
|
28
|
+
await withTimeout(pool.query("SELECT 1"), HEALTH_CHECK_TIMEOUT_MS);
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
} catch {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { checkManageDb, checkRunDb };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inkeep/agents-api",
|
|
3
|
-
"version": "0.0.0-dev-
|
|
3
|
+
"version": "0.0.0-dev-20260128045356",
|
|
4
4
|
"description": "Unified Inkeep Agents API - combines management, runtime, and evaluation capabilities",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"exports": {
|
|
@@ -66,9 +66,9 @@
|
|
|
66
66
|
"openid-client": "^6.8.1",
|
|
67
67
|
"pg": "^8.16.3",
|
|
68
68
|
"workflow": "4.0.1-beta.33",
|
|
69
|
-
"@inkeep/agents-core": "^0.0.0-dev-
|
|
70
|
-
"@inkeep/agents-mcp": "^0.0.0-dev-
|
|
71
|
-
"@inkeep/agents-
|
|
69
|
+
"@inkeep/agents-core": "^0.0.0-dev-20260128045356",
|
|
70
|
+
"@inkeep/agents-manage-mcp": "^0.0.0-dev-20260128045356",
|
|
71
|
+
"@inkeep/agents-mcp": "^0.0.0-dev-20260128045356"
|
|
72
72
|
},
|
|
73
73
|
"peerDependencies": {
|
|
74
74
|
"@hono/zod-openapi": "^1.1.5",
|