@inkeep/agents-api 0.45.2 → 0.46.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.
- package/dist/.well-known/workflow/v1/manifest.debug.json +6 -6
- package/dist/.well-known/workflow/v1/step.cjs +28 -62
- package/dist/createApp.d.ts +2 -2
- package/dist/createApp.js +3 -1
- package/dist/domains/evals/routes/datasetTriggers.d.ts +2 -2
- package/dist/domains/evals/routes/index.d.ts +2 -2
- package/dist/domains/evals/services/EvaluationService.js +3 -42
- package/dist/domains/evals/workflow/routes.d.ts +2 -2
- package/dist/domains/manage/routes/availableAgents.d.ts +2 -2
- package/dist/domains/manage/routes/conversations.d.ts +2 -2
- package/dist/domains/manage/routes/index.d.ts +2 -2
- package/dist/domains/manage/routes/invitations.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/manage/routes/userOrganizations.d.ts +2 -2
- package/dist/domains/mcp/routes/mcp.d.ts +2 -2
- package/dist/domains/run/a2a/client.d.ts +2 -0
- package/dist/domains/run/a2a/client.js +7 -5
- package/dist/domains/run/agents/Agent.js +4 -5
- package/dist/domains/run/agents/relationTools.js +3 -1
- package/dist/domains/run/agents/versions/v1/Phase1Config.js +1 -2
- package/dist/domains/run/handlers/executionHandler.js +12 -8
- package/dist/domains/run/services/AgentSession.js +1 -1
- package/dist/domains/run/utils/artifact-component-schema.d.ts +1 -5
- package/dist/domains/run/utils/artifact-component-schema.js +3 -38
- package/dist/domains/run/utils/schema-validation.d.ts +1 -19
- package/dist/domains/run/utils/schema-validation.js +1 -60
- package/dist/env.d.ts +2 -0
- package/dist/env.js +1 -0
- package/dist/factory.d.ts +21 -21
- package/dist/factory.js +1 -0
- package/dist/index.d.ts +20 -20
- package/dist/middleware/cors.d.ts +7 -2
- package/dist/middleware/cors.js +17 -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/utils/in-process-fetch.d.ts +22 -0
- package/dist/utils/in-process-fetch.js +32 -0
- package/package.json +6 -6
- package/dist/domains/run/utils/data-component-schema.d.ts +0 -2
- package/dist/domains/run/utils/data-component-schema.js +0 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getLogger as getLogger$1 } from "../../../logger.js";
|
|
2
2
|
import runDbClient_default from "../../../data/db/runDbClient.js";
|
|
3
|
+
import { getInProcessFetch } from "../../../utils/in-process-fetch.js";
|
|
3
4
|
import { AGENT_EXECUTION_MAX_CONSECUTIVE_ERRORS } from "../constants/execution-limits/index.js";
|
|
4
5
|
import { tracer } from "../utils/tracer.js";
|
|
5
6
|
import { registerStreamHelper, unregisterStreamHelper } from "../utils/stream-registry.js";
|
|
@@ -164,14 +165,17 @@ var ExecutionHandler = class {
|
|
|
164
165
|
currentAgentId = activeAgent.activeSubAgentId;
|
|
165
166
|
logger.info({ currentAgentId }, `Updated current agent to: ${currentAgentId}`);
|
|
166
167
|
}
|
|
167
|
-
const a2aClient = new A2AClient(`${baseUrl}/run/agents`, {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
168
|
+
const a2aClient = new A2AClient(`${baseUrl}/run/agents`, {
|
|
169
|
+
headers: {
|
|
170
|
+
Authorization: `Bearer ${apiKey}`,
|
|
171
|
+
"x-inkeep-tenant-id": tenantId,
|
|
172
|
+
"x-inkeep-project-id": projectId,
|
|
173
|
+
"x-inkeep-agent-id": agentId,
|
|
174
|
+
"x-inkeep-sub-agent-id": currentAgentId,
|
|
175
|
+
...forwardedHeaders || {}
|
|
176
|
+
},
|
|
177
|
+
fetchFn: getInProcessFetch()
|
|
178
|
+
});
|
|
175
179
|
let messageResponse = null;
|
|
176
180
|
const messageMetadata = {
|
|
177
181
|
stream_request_id: requestId,
|
|
@@ -526,7 +526,7 @@ var AgentSession = class {
|
|
|
526
526
|
const previousSummaryContext = previousSummaries.length > 0 ? `\nPrevious updates sent to user:\n${previousSummaries.map((s, i) => `${i + 1}. ${s}`).join("\n")}\n` : "";
|
|
527
527
|
const selectionSchema = z.object({ updates: z.array(z.union([z.object({
|
|
528
528
|
type: z.literal("no_relevant_updates"),
|
|
529
|
-
data: z.object({ no_updates: z.boolean()
|
|
529
|
+
data: z.object({ no_updates: z.boolean() }).describe("Use when nothing substantially new to report. Should only use on its own.")
|
|
530
530
|
}), ...statusComponents.map((component) => z.object({
|
|
531
531
|
type: z.literal(component.type),
|
|
532
532
|
data: this.getComponentSchema(component).describe(component.description || component.type)
|
|
@@ -3,10 +3,6 @@ import { ArtifactComponentApiInsert, ArtifactComponentApiSelect, DataComponentIn
|
|
|
3
3
|
|
|
4
4
|
//#region src/domains/run/utils/artifact-component-schema.d.ts
|
|
5
5
|
|
|
6
|
-
/**
|
|
7
|
-
* Converts artifact component configurations to Zod schema for structured generation
|
|
8
|
-
*/
|
|
9
|
-
declare function createArtifactComponentsSchema(artifactComponents?: ArtifactComponentApiSelect[]): z.ZodObject<{}, z.core.$strip> | z.ZodUnion<any>;
|
|
10
6
|
/**
|
|
11
7
|
* Standard artifact reference component schema for tool responses
|
|
12
8
|
*/
|
|
@@ -39,4 +35,4 @@ declare class ArtifactCreateSchema {
|
|
|
39
35
|
static getDataComponents(tenantId: string, projectId: string | undefined, artifactComponents: Array<ArtifactComponentApiInsert | ArtifactComponentApiSelect>): DataComponentInsert[];
|
|
40
36
|
}
|
|
41
37
|
//#endregion
|
|
42
|
-
export { ArtifactCreateSchema, ArtifactReferenceSchema
|
|
38
|
+
export { ArtifactCreateSchema, ArtifactReferenceSchema };
|
|
@@ -1,42 +1,7 @@
|
|
|
1
|
-
import { getLogger } from "../../../logger.js";
|
|
2
|
-
import { jsonSchemaToZod } from "./data-component-schema.js";
|
|
3
1
|
import { SchemaProcessor } from "./SchemaProcessor.js";
|
|
4
2
|
import { z } from "@hono/zod-openapi";
|
|
5
3
|
|
|
6
4
|
//#region src/domains/run/utils/artifact-component-schema.ts
|
|
7
|
-
getLogger("ArtifactComponentSchema");
|
|
8
|
-
/**
|
|
9
|
-
* Converts artifact component configurations to Zod schema for structured generation
|
|
10
|
-
*/
|
|
11
|
-
function createArtifactComponentsSchema(artifactComponents) {
|
|
12
|
-
const componentSchemas = artifactComponents?.map((component) => {
|
|
13
|
-
const propsSchema = jsonSchemaToZod(component.props ? removePreviewFlags(component.props) : {});
|
|
14
|
-
return z.object({
|
|
15
|
-
id: z.string().describe(component.id),
|
|
16
|
-
name: z.literal(component.name).describe(component.name),
|
|
17
|
-
props: propsSchema
|
|
18
|
-
}).describe(`${component.name}: ${component.description}`);
|
|
19
|
-
}) || [];
|
|
20
|
-
if (componentSchemas.length === 0) return z.object({});
|
|
21
|
-
if (componentSchemas.length === 1) return componentSchemas[0];
|
|
22
|
-
return z.union(componentSchemas);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Remove inPreview flags from schema properties (for LLM consumption)
|
|
26
|
-
*/
|
|
27
|
-
function removePreviewFlags(schema) {
|
|
28
|
-
const cleanSchema = { ...schema };
|
|
29
|
-
if (cleanSchema.properties) {
|
|
30
|
-
const cleanProperties = {};
|
|
31
|
-
for (const [key, prop] of Object.entries(cleanSchema.properties)) {
|
|
32
|
-
const cleanProp = { ...prop };
|
|
33
|
-
delete cleanProp.inPreview;
|
|
34
|
-
cleanProperties[key] = cleanProp;
|
|
35
|
-
}
|
|
36
|
-
cleanSchema.properties = cleanProperties;
|
|
37
|
-
}
|
|
38
|
-
return cleanSchema;
|
|
39
|
-
}
|
|
40
5
|
/**
|
|
41
6
|
* Standard artifact reference component schema for tool responses
|
|
42
7
|
*/
|
|
@@ -62,7 +27,7 @@ var ArtifactReferenceSchema = class ArtifactReferenceSchema {
|
|
|
62
27
|
return z.object({
|
|
63
28
|
id: z.string(),
|
|
64
29
|
name: z.literal("Artifact"),
|
|
65
|
-
props:
|
|
30
|
+
props: z.fromJSONSchema(ArtifactReferenceSchema.ARTIFACT_PROPS_SCHEMA)
|
|
66
31
|
});
|
|
67
32
|
}
|
|
68
33
|
/**
|
|
@@ -126,7 +91,7 @@ var ArtifactCreateSchema = class {
|
|
|
126
91
|
return z.object({
|
|
127
92
|
id: z.string(),
|
|
128
93
|
name: z.literal(`ArtifactCreate_${component.name}`),
|
|
129
|
-
props:
|
|
94
|
+
props: z.fromJSONSchema(propsSchema)
|
|
130
95
|
});
|
|
131
96
|
});
|
|
132
97
|
}
|
|
@@ -183,4 +148,4 @@ var ArtifactCreateSchema = class {
|
|
|
183
148
|
};
|
|
184
149
|
|
|
185
150
|
//#endregion
|
|
186
|
-
export { ArtifactCreateSchema, ArtifactReferenceSchema
|
|
151
|
+
export { ArtifactCreateSchema, ArtifactReferenceSchema };
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
//#region src/domains/run/utils/schema-validation.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* Clear the validator cache to free memory
|
|
4
|
-
* Useful for testing or when memory usage becomes a concern
|
|
5
|
-
*/
|
|
6
|
-
declare function clearValidatorCache(): void;
|
|
7
|
-
/**
|
|
8
|
-
* Get the current cache size for monitoring
|
|
9
|
-
*/
|
|
10
|
-
declare function getValidatorCacheSize(): number;
|
|
11
2
|
/**
|
|
12
3
|
* Extended JSON Schema that includes preview field indicators
|
|
13
4
|
*/
|
|
@@ -23,15 +14,6 @@ interface ExtendedJsonSchemaProperty {
|
|
|
23
14
|
inPreview?: boolean;
|
|
24
15
|
[key: string]: any;
|
|
25
16
|
}
|
|
26
|
-
/**
|
|
27
|
-
* Validate that a schema is valid (either JSON Schema or Zod)
|
|
28
|
-
* Following the same pattern as context validation
|
|
29
|
-
*/
|
|
30
|
-
declare function validateComponentSchema(schema: any, componentName: string): {
|
|
31
|
-
isValid: boolean;
|
|
32
|
-
error?: string;
|
|
33
|
-
validatedSchema?: ExtendedJsonSchema;
|
|
34
|
-
};
|
|
35
17
|
/**
|
|
36
18
|
* Extract preview fields from a schema (fields marked with inPreview: true)
|
|
37
19
|
*/
|
|
@@ -41,4 +23,4 @@ declare function extractPreviewFields(schema: ExtendedJsonSchema): Record<string
|
|
|
41
23
|
*/
|
|
42
24
|
declare function extractFullFields(schema: ExtendedJsonSchema): Record<string, any>;
|
|
43
25
|
//#endregion
|
|
44
|
-
export { ExtendedJsonSchema, ExtendedJsonSchemaProperty,
|
|
26
|
+
export { ExtendedJsonSchema, ExtendedJsonSchemaProperty, extractFullFields, extractPreviewFields };
|
|
@@ -1,63 +1,4 @@
|
|
|
1
|
-
import { getLogger } from "../../../logger.js";
|
|
2
|
-
import { z } from "@hono/zod-openapi";
|
|
3
|
-
import { convertZodToJsonSchemaWithPreview } from "@inkeep/agents-core/utils/schema-conversion";
|
|
4
|
-
import Ajv from "ajv";
|
|
5
|
-
|
|
6
1
|
//#region src/domains/run/utils/schema-validation.ts
|
|
7
|
-
const logger = getLogger("SchemaValidation");
|
|
8
|
-
const ajv = new Ajv({
|
|
9
|
-
allErrors: true,
|
|
10
|
-
strict: false
|
|
11
|
-
});
|
|
12
|
-
const validatorCache = /* @__PURE__ */ new Map();
|
|
13
|
-
/**
|
|
14
|
-
* Clear the validator cache to free memory
|
|
15
|
-
* Useful for testing or when memory usage becomes a concern
|
|
16
|
-
*/
|
|
17
|
-
function clearValidatorCache() {
|
|
18
|
-
validatorCache.clear();
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Get the current cache size for monitoring
|
|
22
|
-
*/
|
|
23
|
-
function getValidatorCacheSize() {
|
|
24
|
-
return validatorCache.size;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Validate that a schema is valid (either JSON Schema or Zod)
|
|
28
|
-
* Following the same pattern as context validation
|
|
29
|
-
*/
|
|
30
|
-
function validateComponentSchema(schema, componentName) {
|
|
31
|
-
try {
|
|
32
|
-
if (schema instanceof z.ZodType) return {
|
|
33
|
-
isValid: true,
|
|
34
|
-
validatedSchema: convertZodToJsonSchemaWithPreview(schema)
|
|
35
|
-
};
|
|
36
|
-
if (!schema || typeof schema !== "object" || Array.isArray(schema)) return {
|
|
37
|
-
isValid: false,
|
|
38
|
-
error: "Schema must be a valid JSON Schema object or Zod schema"
|
|
39
|
-
};
|
|
40
|
-
const schemaKey = JSON.stringify(schema);
|
|
41
|
-
let validator = validatorCache.get(schemaKey);
|
|
42
|
-
if (!validator) {
|
|
43
|
-
validator = ajv.compile(schema);
|
|
44
|
-
validatorCache.set(schemaKey, validator);
|
|
45
|
-
}
|
|
46
|
-
return {
|
|
47
|
-
isValid: true,
|
|
48
|
-
validatedSchema: schema
|
|
49
|
-
};
|
|
50
|
-
} catch (error) {
|
|
51
|
-
logger.error({
|
|
52
|
-
componentName,
|
|
53
|
-
error: error instanceof Error ? error.message : "Unknown error"
|
|
54
|
-
}, "Invalid component schema");
|
|
55
|
-
return {
|
|
56
|
-
isValid: false,
|
|
57
|
-
error: error instanceof Error ? error.message : "Invalid JSON Schema"
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
2
|
/**
|
|
62
3
|
* Extract preview fields from a schema (fields marked with inPreview: true)
|
|
63
4
|
*/
|
|
@@ -94,4 +35,4 @@ function extractFullFields(schema) {
|
|
|
94
35
|
}
|
|
95
36
|
|
|
96
37
|
//#endregion
|
|
97
|
-
export {
|
|
38
|
+
export { extractFullFields, extractPreviewFields };
|
package/dist/env.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ declare const envSchema: z.ZodObject<{
|
|
|
24
24
|
INKEEP_AGENTS_RUN_DATABASE_URL: z.ZodString;
|
|
25
25
|
INKEEP_AGENTS_MANAGE_UI_URL: z.ZodOptional<z.ZodString>;
|
|
26
26
|
INKEEP_AGENTS_API_URL: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
27
|
+
AUTH_COOKIE_DOMAIN: z.ZodOptional<z.ZodString>;
|
|
27
28
|
BETTER_AUTH_SECRET: z.ZodOptional<z.ZodString>;
|
|
28
29
|
INKEEP_AGENTS_MANAGE_UI_USERNAME: z.ZodOptional<z.ZodString>;
|
|
29
30
|
INKEEP_AGENTS_MANAGE_UI_PASSWORD: z.ZodOptional<z.ZodString>;
|
|
@@ -68,6 +69,7 @@ declare const env: {
|
|
|
68
69
|
TENANT_ID: string;
|
|
69
70
|
ANTHROPIC_API_KEY: string;
|
|
70
71
|
INKEEP_AGENTS_MANAGE_UI_URL?: string | undefined;
|
|
72
|
+
AUTH_COOKIE_DOMAIN?: string | undefined;
|
|
71
73
|
BETTER_AUTH_SECRET?: string | undefined;
|
|
72
74
|
INKEEP_AGENTS_MANAGE_UI_USERNAME?: string | undefined;
|
|
73
75
|
INKEEP_AGENTS_MANAGE_UI_PASSWORD?: string | undefined;
|
package/dist/env.js
CHANGED
|
@@ -26,6 +26,7 @@ const envSchema = z.object({
|
|
|
26
26
|
INKEEP_AGENTS_RUN_DATABASE_URL: z.string().describe("PostgreSQL connection URL for the runtime database (Doltgres with Git version control)"),
|
|
27
27
|
INKEEP_AGENTS_MANAGE_UI_URL: z.string().optional().describe("URL where the management UI is hosted"),
|
|
28
28
|
INKEEP_AGENTS_API_URL: z.string().optional().default("http://localhost:3002").describe("URL where the agents management API is running"),
|
|
29
|
+
AUTH_COOKIE_DOMAIN: z.string().optional().describe("Explicit cookie domain for cross-subdomain auth (e.g., .inkeep.com). Required when the API and UI do not share a common 3-part parent domain."),
|
|
29
30
|
BETTER_AUTH_SECRET: z.string().optional().describe("Secret key for Better Auth session encryption (change in production)"),
|
|
30
31
|
INKEEP_AGENTS_MANAGE_UI_USERNAME: z.string().optional().refine((val) => !val || /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(val), { message: "Invalid email address" }).describe("Admin email address for management UI login"),
|
|
31
32
|
INKEEP_AGENTS_MANAGE_UI_PASSWORD: z.string().optional().refine((val) => !val || val.length >= 8, { message: "Password must be at least 8 characters" }).describe("Admin password for management UI login (min 8 characters)"),
|
package/dist/factory.d.ts
CHANGED
|
@@ -3,10 +3,10 @@ import "./types/index.js";
|
|
|
3
3
|
import { createAgentsHono } from "./createApp.js";
|
|
4
4
|
import { createAuth0Provider, createOIDCProvider } from "./ssoHelpers.js";
|
|
5
5
|
import { CredentialStore, ServerConfig } from "@inkeep/agents-core";
|
|
6
|
-
import * as
|
|
6
|
+
import * as hono4 from "hono";
|
|
7
7
|
import * as zod0 from "zod";
|
|
8
8
|
import { SSOProviderConfig, UserAuthConfig } from "@inkeep/agents-core/auth";
|
|
9
|
-
import * as
|
|
9
|
+
import * as hono_types3 from "hono/types";
|
|
10
10
|
import * as better_auth0 from "better-auth";
|
|
11
11
|
import * as better_auth_plugins0 from "better-auth/plugins";
|
|
12
12
|
import * as _better_auth_sso0 from "@better-auth/sso";
|
|
@@ -794,25 +794,25 @@ declare function createAgentsAuth(userAuthConfig?: UserAuthConfig): better_auth0
|
|
|
794
794
|
ac: better_auth_plugins0.AccessControl;
|
|
795
795
|
roles: {
|
|
796
796
|
member: {
|
|
797
|
-
authorize<K_1 extends "organization" | "member" | "invitation" | "
|
|
798
|
-
actions: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "
|
|
797
|
+
authorize<K_1 extends "organization" | "member" | "invitation" | "project" | "ac" | "team">(request: K_1 extends infer T extends K ? { [key in T]?: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>[key] | {
|
|
798
|
+
actions: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>[key];
|
|
799
799
|
connector: "OR" | "AND";
|
|
800
800
|
} | undefined } : never, connector?: "OR" | "AND"): better_auth_plugins0.AuthorizeResponse;
|
|
801
|
-
statements: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "
|
|
801
|
+
statements: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>;
|
|
802
802
|
};
|
|
803
803
|
admin: {
|
|
804
|
-
authorize<K_1 extends "organization" | "member" | "invitation" | "
|
|
805
|
-
actions: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "
|
|
804
|
+
authorize<K_1 extends "organization" | "member" | "invitation" | "project" | "ac" | "team">(request: K_1 extends infer T extends K ? { [key in T]?: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>[key] | {
|
|
805
|
+
actions: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>[key];
|
|
806
806
|
connector: "OR" | "AND";
|
|
807
807
|
} | undefined } : never, connector?: "OR" | "AND"): better_auth_plugins0.AuthorizeResponse;
|
|
808
|
-
statements: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "
|
|
808
|
+
statements: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>;
|
|
809
809
|
};
|
|
810
810
|
owner: {
|
|
811
|
-
authorize<K_1 extends "organization" | "member" | "invitation" | "
|
|
812
|
-
actions: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "
|
|
811
|
+
authorize<K_1 extends "organization" | "member" | "invitation" | "project" | "ac" | "team">(request: K_1 extends infer T extends K ? { [key in T]?: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>[key] | {
|
|
812
|
+
actions: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>[key];
|
|
813
813
|
connector: "OR" | "AND";
|
|
814
814
|
} | undefined } : never, connector?: "OR" | "AND"): better_auth_plugins0.AuthorizeResponse;
|
|
815
|
-
statements: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "
|
|
815
|
+
statements: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>;
|
|
816
816
|
};
|
|
817
817
|
};
|
|
818
818
|
creatorRole: "admin";
|
|
@@ -1104,25 +1104,25 @@ declare function createAgentsAuth(userAuthConfig?: UserAuthConfig): better_auth0
|
|
|
1104
1104
|
ac: better_auth_plugins0.AccessControl;
|
|
1105
1105
|
roles: {
|
|
1106
1106
|
member: {
|
|
1107
|
-
authorize<K_1 extends "organization" | "member" | "invitation" | "
|
|
1108
|
-
actions: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "
|
|
1107
|
+
authorize<K_1 extends "organization" | "member" | "invitation" | "project" | "ac" | "team">(request: K_1 extends infer T extends K ? { [key in T]?: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>[key] | {
|
|
1108
|
+
actions: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>[key];
|
|
1109
1109
|
connector: "OR" | "AND";
|
|
1110
1110
|
} | undefined } : never, connector?: "OR" | "AND"): better_auth_plugins0.AuthorizeResponse;
|
|
1111
|
-
statements: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "
|
|
1111
|
+
statements: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>;
|
|
1112
1112
|
};
|
|
1113
1113
|
admin: {
|
|
1114
|
-
authorize<K_1 extends "organization" | "member" | "invitation" | "
|
|
1115
|
-
actions: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "
|
|
1114
|
+
authorize<K_1 extends "organization" | "member" | "invitation" | "project" | "ac" | "team">(request: K_1 extends infer T extends K ? { [key in T]?: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>[key] | {
|
|
1115
|
+
actions: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>[key];
|
|
1116
1116
|
connector: "OR" | "AND";
|
|
1117
1117
|
} | undefined } : never, connector?: "OR" | "AND"): better_auth_plugins0.AuthorizeResponse;
|
|
1118
|
-
statements: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "
|
|
1118
|
+
statements: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>;
|
|
1119
1119
|
};
|
|
1120
1120
|
owner: {
|
|
1121
|
-
authorize<K_1 extends "organization" | "member" | "invitation" | "
|
|
1122
|
-
actions: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "
|
|
1121
|
+
authorize<K_1 extends "organization" | "member" | "invitation" | "project" | "ac" | "team">(request: K_1 extends infer T extends K ? { [key in T]?: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>[key] | {
|
|
1122
|
+
actions: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>[key];
|
|
1123
1123
|
connector: "OR" | "AND";
|
|
1124
1124
|
} | undefined } : never, connector?: "OR" | "AND"): better_auth_plugins0.AuthorizeResponse;
|
|
1125
|
-
statements: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "
|
|
1125
|
+
statements: better_auth_plugins0.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins0.Statements>;
|
|
1126
1126
|
};
|
|
1127
1127
|
};
|
|
1128
1128
|
creatorRole: "admin";
|
|
@@ -1536,6 +1536,6 @@ declare function createAgentsApp(config?: {
|
|
|
1536
1536
|
credentialStores?: CredentialStore[];
|
|
1537
1537
|
auth?: UserAuthConfig;
|
|
1538
1538
|
sandboxConfig?: SandboxConfig;
|
|
1539
|
-
}):
|
|
1539
|
+
}): hono4.Hono<hono_types3.BlankEnv, hono_types3.BlankSchema, "/">;
|
|
1540
1540
|
//#endregion
|
|
1541
1541
|
export { type SSOProviderConfig, type UserAuthConfig, createAgentsApp, createAgentsAuth, createAgentsHono, createAuth0Provider, createOIDCProvider };
|
package/dist/factory.js
CHANGED
|
@@ -19,6 +19,7 @@ function createAgentsAuth(userAuthConfig) {
|
|
|
19
19
|
baseURL: env.INKEEP_AGENTS_API_URL || `http://localhost:3002`,
|
|
20
20
|
secret: env.BETTER_AUTH_SECRET || "development-secret-change-in-production",
|
|
21
21
|
dbClient: runDbClient_default,
|
|
22
|
+
...env.AUTH_COOKIE_DOMAIN && { cookieDomain: env.AUTH_COOKIE_DOMAIN },
|
|
22
23
|
...userAuthConfig?.ssoProviders && { ssoProviders: userAuthConfig.ssoProviders },
|
|
23
24
|
...userAuthConfig?.socialProviders && { socialProviders: userAuthConfig.socialProviders }
|
|
24
25
|
});
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { createAuth0Provider, createOIDCProvider } from "./ssoHelpers.js";
|
|
|
7
7
|
import { SSOProviderConfig, UserAuthConfig, createAgentsApp } from "./factory.js";
|
|
8
8
|
import { Hono } from "hono";
|
|
9
9
|
import * as zod205 from "zod";
|
|
10
|
-
import * as
|
|
10
|
+
import * as hono_types5 from "hono/types";
|
|
11
11
|
import * as better_auth78 from "better-auth";
|
|
12
12
|
import * as better_auth_plugins69 from "better-auth/plugins";
|
|
13
13
|
import * as _better_auth_sso10 from "@better-auth/sso";
|
|
@@ -795,25 +795,25 @@ declare const auth: better_auth78.Auth<{
|
|
|
795
795
|
ac: better_auth_plugins69.AccessControl;
|
|
796
796
|
roles: {
|
|
797
797
|
member: {
|
|
798
|
-
authorize<K_1 extends "organization" | "member" | "invitation" | "
|
|
799
|
-
actions: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "
|
|
798
|
+
authorize<K_1 extends "organization" | "member" | "invitation" | "project" | "ac" | "team">(request: K_1 extends infer T extends K ? { [key in T]?: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>[key] | {
|
|
799
|
+
actions: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>[key];
|
|
800
800
|
connector: "OR" | "AND";
|
|
801
801
|
} | undefined } : never, connector?: "OR" | "AND"): better_auth_plugins69.AuthorizeResponse;
|
|
802
|
-
statements: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "
|
|
802
|
+
statements: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>;
|
|
803
803
|
};
|
|
804
804
|
admin: {
|
|
805
|
-
authorize<K_1 extends "organization" | "member" | "invitation" | "
|
|
806
|
-
actions: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "
|
|
805
|
+
authorize<K_1 extends "organization" | "member" | "invitation" | "project" | "ac" | "team">(request: K_1 extends infer T extends K ? { [key in T]?: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>[key] | {
|
|
806
|
+
actions: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>[key];
|
|
807
807
|
connector: "OR" | "AND";
|
|
808
808
|
} | undefined } : never, connector?: "OR" | "AND"): better_auth_plugins69.AuthorizeResponse;
|
|
809
|
-
statements: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "
|
|
809
|
+
statements: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>;
|
|
810
810
|
};
|
|
811
811
|
owner: {
|
|
812
|
-
authorize<K_1 extends "organization" | "member" | "invitation" | "
|
|
813
|
-
actions: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "
|
|
812
|
+
authorize<K_1 extends "organization" | "member" | "invitation" | "project" | "ac" | "team">(request: K_1 extends infer T extends K ? { [key in T]?: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>[key] | {
|
|
813
|
+
actions: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>[key];
|
|
814
814
|
connector: "OR" | "AND";
|
|
815
815
|
} | undefined } : never, connector?: "OR" | "AND"): better_auth_plugins69.AuthorizeResponse;
|
|
816
|
-
statements: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "
|
|
816
|
+
statements: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>;
|
|
817
817
|
};
|
|
818
818
|
};
|
|
819
819
|
creatorRole: "admin";
|
|
@@ -1105,25 +1105,25 @@ declare const auth: better_auth78.Auth<{
|
|
|
1105
1105
|
ac: better_auth_plugins69.AccessControl;
|
|
1106
1106
|
roles: {
|
|
1107
1107
|
member: {
|
|
1108
|
-
authorize<K_1 extends "organization" | "member" | "invitation" | "
|
|
1109
|
-
actions: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "
|
|
1108
|
+
authorize<K_1 extends "organization" | "member" | "invitation" | "project" | "ac" | "team">(request: K_1 extends infer T extends K ? { [key in T]?: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>[key] | {
|
|
1109
|
+
actions: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>[key];
|
|
1110
1110
|
connector: "OR" | "AND";
|
|
1111
1111
|
} | undefined } : never, connector?: "OR" | "AND"): better_auth_plugins69.AuthorizeResponse;
|
|
1112
|
-
statements: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "
|
|
1112
|
+
statements: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>;
|
|
1113
1113
|
};
|
|
1114
1114
|
admin: {
|
|
1115
|
-
authorize<K_1 extends "organization" | "member" | "invitation" | "
|
|
1116
|
-
actions: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "
|
|
1115
|
+
authorize<K_1 extends "organization" | "member" | "invitation" | "project" | "ac" | "team">(request: K_1 extends infer T extends K ? { [key in T]?: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>[key] | {
|
|
1116
|
+
actions: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>[key];
|
|
1117
1117
|
connector: "OR" | "AND";
|
|
1118
1118
|
} | undefined } : never, connector?: "OR" | "AND"): better_auth_plugins69.AuthorizeResponse;
|
|
1119
|
-
statements: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "
|
|
1119
|
+
statements: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>;
|
|
1120
1120
|
};
|
|
1121
1121
|
owner: {
|
|
1122
|
-
authorize<K_1 extends "organization" | "member" | "invitation" | "
|
|
1123
|
-
actions: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "
|
|
1122
|
+
authorize<K_1 extends "organization" | "member" | "invitation" | "project" | "ac" | "team">(request: K_1 extends infer T extends K ? { [key in T]?: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>[key] | {
|
|
1123
|
+
actions: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>[key];
|
|
1124
1124
|
connector: "OR" | "AND";
|
|
1125
1125
|
} | undefined } : never, connector?: "OR" | "AND"): better_auth_plugins69.AuthorizeResponse;
|
|
1126
|
-
statements: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "
|
|
1126
|
+
statements: better_auth_plugins69.Subset<"organization" | "member" | "invitation" | "project" | "ac" | "team", better_auth_plugins69.Statements>;
|
|
1127
1127
|
};
|
|
1128
1128
|
};
|
|
1129
1129
|
creatorRole: "admin";
|
|
@@ -1532,6 +1532,6 @@ declare const auth: better_auth78.Auth<{
|
|
|
1532
1532
|
}>;
|
|
1533
1533
|
}];
|
|
1534
1534
|
}>;
|
|
1535
|
-
declare const app: Hono<
|
|
1535
|
+
declare const app: Hono<hono_types5.BlankEnv, hono_types5.BlankSchema, "/">;
|
|
1536
1536
|
//#endregion
|
|
1537
1537
|
export { type AppConfig, type AppVariables, Hono, type NativeSandboxConfig, type SSOProviderConfig, type SandboxConfig, type UserAuthConfig, type VercelSandboxConfig, auth, createAgentsApp, createAgentsHono, createAuth0Provider, createOIDCProvider, app as default };
|
|
@@ -6,10 +6,15 @@ type CorsOptions = Parameters<typeof cors>[0];
|
|
|
6
6
|
* Extract the base domain from a hostname (e.g., 'app.preview.inkeep.com' -> 'preview.inkeep.com')
|
|
7
7
|
*/
|
|
8
8
|
declare function getBaseDomain(hostname: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Extract the registrable domain (eTLD+1) from a hostname.
|
|
11
|
+
* e.g., 'api.agents.inkeep.com' -> 'inkeep.com', 'app.inkeep.com' -> 'inkeep.com'
|
|
12
|
+
*/
|
|
13
|
+
declare function getRootDomain(hostname: string): string;
|
|
9
14
|
/**
|
|
10
15
|
* Check if a request origin is allowed for CORS
|
|
11
16
|
* Development: Allow any localhost origin
|
|
12
|
-
* Production: Allow same base domain or configured UI URL
|
|
17
|
+
* Production: Allow same base domain, same root domain (when UI URL is configured), or configured UI URL
|
|
13
18
|
*/
|
|
14
19
|
declare function isOriginAllowed(origin: string | undefined): origin is string;
|
|
15
20
|
/**
|
|
@@ -33,4 +38,4 @@ declare const runCorsConfig: CorsOptions;
|
|
|
33
38
|
*/
|
|
34
39
|
declare const signozCorsConfig: CorsOptions;
|
|
35
40
|
//#endregion
|
|
36
|
-
export { authCorsConfig, defaultCorsConfig, getBaseDomain, isOriginAllowed, playgroundCorsConfig, runCorsConfig, signozCorsConfig };
|
|
41
|
+
export { authCorsConfig, defaultCorsConfig, getBaseDomain, getRootDomain, isOriginAllowed, playgroundCorsConfig, runCorsConfig, signozCorsConfig };
|
package/dist/middleware/cors.js
CHANGED
|
@@ -10,9 +10,18 @@ function getBaseDomain(hostname) {
|
|
|
10
10
|
return hostname;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
+
* Extract the registrable domain (eTLD+1) from a hostname.
|
|
14
|
+
* e.g., 'api.agents.inkeep.com' -> 'inkeep.com', 'app.inkeep.com' -> 'inkeep.com'
|
|
15
|
+
*/
|
|
16
|
+
function getRootDomain(hostname) {
|
|
17
|
+
const parts = hostname.split(".");
|
|
18
|
+
if (parts.length >= 2) return parts.slice(-2).join(".");
|
|
19
|
+
return hostname;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
13
22
|
* Check if a request origin is allowed for CORS
|
|
14
23
|
* Development: Allow any localhost origin
|
|
15
|
-
* Production: Allow same base domain or configured UI URL
|
|
24
|
+
* Production: Allow same base domain, same root domain (when UI URL is configured), or configured UI URL
|
|
16
25
|
*/
|
|
17
26
|
function isOriginAllowed(origin) {
|
|
18
27
|
if (!origin) return false;
|
|
@@ -23,6 +32,12 @@ function isOriginAllowed(origin) {
|
|
|
23
32
|
if (requestUrl.hostname === "localhost" || requestUrl.hostname === "127.0.0.1") return true;
|
|
24
33
|
if (uiUrl && requestUrl.hostname === uiUrl.hostname) return true;
|
|
25
34
|
if (getBaseDomain(requestUrl.hostname) === getBaseDomain(apiUrl.hostname)) return true;
|
|
35
|
+
if (uiUrl) {
|
|
36
|
+
const requestRootDomain = getRootDomain(requestUrl.hostname);
|
|
37
|
+
const apiRootDomain = getRootDomain(apiUrl.hostname);
|
|
38
|
+
const uiRootDomain = getRootDomain(uiUrl.hostname);
|
|
39
|
+
if (requestRootDomain === apiRootDomain && apiRootDomain === uiRootDomain && requestRootDomain === uiRootDomain) return true;
|
|
40
|
+
}
|
|
26
41
|
return false;
|
|
27
42
|
} catch {
|
|
28
43
|
return false;
|
|
@@ -128,4 +143,4 @@ const signozCorsConfig = {
|
|
|
128
143
|
};
|
|
129
144
|
|
|
130
145
|
//#endregion
|
|
131
|
-
export { authCorsConfig, defaultCorsConfig, getBaseDomain, isOriginAllowed, playgroundCorsConfig, runCorsConfig, signozCorsConfig };
|
|
146
|
+
export { authCorsConfig, defaultCorsConfig, getBaseDomain, getRootDomain, isOriginAllowed, playgroundCorsConfig, runCorsConfig, signozCorsConfig };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseExecutionContext } from "@inkeep/agents-core";
|
|
2
|
-
import * as
|
|
2
|
+
import * as hono9 from "hono";
|
|
3
3
|
|
|
4
4
|
//#region src/middleware/evalsAuth.d.ts
|
|
5
5
|
|
|
@@ -7,7 +7,7 @@ import * as hono0 from "hono";
|
|
|
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: () => hono9.MiddlewareHandler<{
|
|
11
11
|
Variables: {
|
|
12
12
|
executionContext: BaseExecutionContext;
|
|
13
13
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseExecutionContext } from "@inkeep/agents-core";
|
|
2
|
-
import * as
|
|
2
|
+
import * as hono10 from "hono";
|
|
3
3
|
import { createAuth } from "@inkeep/agents-core/auth";
|
|
4
4
|
|
|
5
5
|
//#region src/middleware/manageAuth.d.ts
|
|
@@ -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: () => hono10.MiddlewareHandler<{
|
|
16
16
|
Variables: {
|
|
17
17
|
executionContext: BaseExecutionContext;
|
|
18
18
|
userId?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ManageAppVariables } from "../types/app.js";
|
|
2
2
|
import { ProjectPermissionLevel } from "@inkeep/agents-core";
|
|
3
|
-
import * as
|
|
3
|
+
import * as hono7 from "hono";
|
|
4
4
|
|
|
5
5
|
//#region src/middleware/projectAccess.d.ts
|
|
6
6
|
/**
|
|
@@ -10,6 +10,6 @@ declare const requireProjectPermission: <Env$1 extends {
|
|
|
10
10
|
Variables: ManageAppVariables;
|
|
11
11
|
} = {
|
|
12
12
|
Variables: ManageAppVariables;
|
|
13
|
-
}>(permission?: ProjectPermissionLevel) =>
|
|
13
|
+
}>(permission?: ProjectPermissionLevel) => hono7.MiddlewareHandler<Env$1, string, {}, Response>;
|
|
14
14
|
//#endregion
|
|
15
15
|
export { requireProjectPermission };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { BaseExecutionContext, ResolvedRef } from "@inkeep/agents-core";
|
|
2
|
-
import * as
|
|
2
|
+
import * as hono11 from "hono";
|
|
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: hono11.MiddlewareHandler<{
|
|
9
9
|
Variables: {
|
|
10
10
|
executionContext: BaseExecutionContext;
|
|
11
11
|
resolvedRef: ResolvedRef;
|
|
@@ -15,7 +15,7 @@ declare const projectConfigMiddleware: hono3.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) => hono11.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 hono6 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) => hono6.MiddlewareHandler<Env$1, string, {}, Response>;
|
|
13
13
|
//#endregion
|
|
14
14
|
export { requirePermission };
|