@inkeep/agents-api 0.0.0-dev-20260121145510
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/LICENSE.md +56 -0
- package/SUPPLEMENTAL_TERMS.md +40 -0
- package/dist/.well-known/workflow/v1/flow.cjs +46383 -0
- package/dist/.well-known/workflow/v1/flow.cjs.debug.json +6 -0
- package/dist/.well-known/workflow/v1/manifest.debug.json +55 -0
- package/dist/.well-known/workflow/v1/step.cjs +218683 -0
- package/dist/.well-known/workflow/v1/step.cjs.debug.json +6 -0
- package/dist/.well-known/workflow/v1/webhook.mjs +29 -0
- package/dist/createApp.d.ts +10 -0
- package/dist/createApp.js +170 -0
- package/dist/data/db/index.d.ts +4 -0
- package/dist/data/db/index.js +5 -0
- package/dist/data/db/manageDbClient.d.ts +6 -0
- package/dist/data/db/manageDbClient.js +9 -0
- package/dist/data/db/manageDbPool.d.ts +6 -0
- package/dist/data/db/manageDbPool.js +9 -0
- package/dist/data/db/runDbClient.d.ts +6 -0
- package/dist/data/db/runDbClient.js +9 -0
- package/dist/domains/evals/index.d.ts +13 -0
- package/dist/domains/evals/index.js +13 -0
- package/dist/domains/evals/routes/datasetTriggers.d.ts +7 -0
- package/dist/domains/evals/routes/datasetTriggers.js +65 -0
- package/dist/domains/evals/routes/evaluationTriggers.d.ts +11 -0
- package/dist/domains/evals/routes/evaluationTriggers.js +311 -0
- package/dist/domains/evals/routes/index.d.ts +7 -0
- package/dist/domains/evals/routes/index.js +12 -0
- package/dist/domains/evals/scripts/build-workflow.d.ts +1 -0
- package/dist/domains/evals/scripts/build-workflow.js +31 -0
- package/dist/domains/evals/services/EvaluationService.d.ts +96 -0
- package/dist/domains/evals/services/EvaluationService.js +863 -0
- package/dist/domains/evals/services/conversationEvaluation.d.ts +15 -0
- package/dist/domains/evals/services/conversationEvaluation.js +102 -0
- package/dist/domains/evals/services/datasetRun.d.ts +16 -0
- package/dist/domains/evals/services/datasetRun.js +43 -0
- package/dist/domains/evals/services/evaluationJob.d.ts +17 -0
- package/dist/domains/evals/services/evaluationJob.js +65 -0
- package/dist/domains/evals/services/startEvaluation.d.ts +19 -0
- package/dist/domains/evals/services/startEvaluation.js +18 -0
- package/dist/domains/evals/workflow/functions/evaluateConversation.d.ts +31 -0
- package/dist/domains/evals/workflow/functions/evaluateConversation.js +135 -0
- package/dist/domains/evals/workflow/functions/runDatasetItem.d.ts +39 -0
- package/dist/domains/evals/workflow/functions/runDatasetItem.js +205 -0
- package/dist/domains/evals/workflow/index.d.ts +4 -0
- package/dist/domains/evals/workflow/index.js +5 -0
- package/dist/domains/evals/workflow/routes.d.ts +7 -0
- package/dist/domains/evals/workflow/routes.js +106 -0
- package/dist/domains/evals/workflow/world.d.ts +4 -0
- package/dist/domains/evals/workflow/world.js +36 -0
- package/dist/domains/index.d.ts +4 -0
- package/dist/domains/index.js +5 -0
- package/dist/domains/manage/index.d.ts +12 -0
- package/dist/domains/manage/index.js +31 -0
- package/dist/domains/manage/routes/agent.d.ts +9 -0
- package/dist/domains/manage/routes/agent.js +266 -0
- package/dist/domains/manage/routes/agentFull.d.ts +9 -0
- package/dist/domains/manage/routes/agentFull.js +207 -0
- package/dist/domains/manage/routes/agentToolRelations.d.ts +9 -0
- package/dist/domains/manage/routes/agentToolRelations.js +289 -0
- package/dist/domains/manage/routes/apiKeys.d.ts +9 -0
- package/dist/domains/manage/routes/apiKeys.js +217 -0
- package/dist/domains/manage/routes/artifactComponents.d.ts +9 -0
- package/dist/domains/manage/routes/artifactComponents.js +210 -0
- package/dist/domains/manage/routes/branches.d.ts +9 -0
- package/dist/domains/manage/routes/branches.js +182 -0
- package/dist/domains/manage/routes/cliAuth.d.ts +9 -0
- package/dist/domains/manage/routes/cliAuth.js +60 -0
- package/dist/domains/manage/routes/contextConfigs.d.ts +9 -0
- package/dist/domains/manage/routes/contextConfigs.js +189 -0
- package/dist/domains/manage/routes/conversations.d.ts +7 -0
- package/dist/domains/manage/routes/conversations.js +59 -0
- package/dist/domains/manage/routes/credentialStores.d.ts +9 -0
- package/dist/domains/manage/routes/credentialStores.js +86 -0
- package/dist/domains/manage/routes/credentials.d.ts +9 -0
- package/dist/domains/manage/routes/credentials.js +207 -0
- package/dist/domains/manage/routes/dataComponents.d.ts +9 -0
- package/dist/domains/manage/routes/dataComponents.js +192 -0
- package/dist/domains/manage/routes/evals/datasetItems.d.ts +9 -0
- package/dist/domains/manage/routes/evals/datasetItems.js +310 -0
- package/dist/domains/manage/routes/evals/datasetRunConfigs.d.ts +9 -0
- package/dist/domains/manage/routes/evals/datasetRunConfigs.js +402 -0
- package/dist/domains/manage/routes/evals/datasetRuns.d.ts +9 -0
- package/dist/domains/manage/routes/evals/datasetRuns.js +256 -0
- package/dist/domains/manage/routes/evals/datasets.d.ts +9 -0
- package/dist/domains/manage/routes/evals/datasets.js +238 -0
- package/dist/domains/manage/routes/evals/evaluationJobConfigEvaluatorRelations.d.ts +9 -0
- package/dist/domains/manage/routes/evals/evaluationJobConfigEvaluatorRelations.js +146 -0
- package/dist/domains/manage/routes/evals/evaluationJobConfigs.d.ts +9 -0
- package/dist/domains/manage/routes/evals/evaluationJobConfigs.js +364 -0
- package/dist/domains/manage/routes/evals/evaluationResults.d.ts +7 -0
- package/dist/domains/manage/routes/evals/evaluationResults.js +192 -0
- package/dist/domains/manage/routes/evals/evaluationRunConfigs.d.ts +9 -0
- package/dist/domains/manage/routes/evals/evaluationRunConfigs.js +403 -0
- package/dist/domains/manage/routes/evals/evaluationSuiteConfigEvaluatorRelations.d.ts +9 -0
- package/dist/domains/manage/routes/evals/evaluationSuiteConfigEvaluatorRelations.js +146 -0
- package/dist/domains/manage/routes/evals/evaluationSuiteConfigs.d.ts +9 -0
- package/dist/domains/manage/routes/evals/evaluationSuiteConfigs.js +246 -0
- package/dist/domains/manage/routes/evals/evaluators.d.ts +9 -0
- package/dist/domains/manage/routes/evals/evaluators.js +281 -0
- package/dist/domains/manage/routes/evals/index.d.ts +9 -0
- package/dist/domains/manage/routes/evals/index.js +26 -0
- package/dist/domains/manage/routes/externalAgents.d.ts +9 -0
- package/dist/domains/manage/routes/externalAgents.js +199 -0
- package/dist/domains/manage/routes/functionTools.d.ts +9 -0
- package/dist/domains/manage/routes/functionTools.js +256 -0
- package/dist/domains/manage/routes/functions.d.ts +9 -0
- package/dist/domains/manage/routes/functions.js +285 -0
- package/dist/domains/manage/routes/index.d.ts +7 -0
- package/dist/domains/manage/routes/index.js +68 -0
- package/dist/domains/manage/routes/invitations.d.ts +9 -0
- package/dist/domains/manage/routes/invitations.js +41 -0
- package/dist/domains/manage/routes/mcp.d.ts +7 -0
- package/dist/domains/manage/routes/mcp.js +45 -0
- package/dist/domains/manage/routes/mcpCatalog.d.ts +9 -0
- package/dist/domains/manage/routes/mcpCatalog.js +454 -0
- package/dist/domains/manage/routes/oauth.d.ts +10 -0
- package/dist/domains/manage/routes/oauth.js +327 -0
- package/dist/domains/manage/routes/playgroundToken.d.ts +9 -0
- package/dist/domains/manage/routes/playgroundToken.js +127 -0
- package/dist/domains/manage/routes/projectFull.d.ts +9 -0
- package/dist/domains/manage/routes/projectFull.js +304 -0
- package/dist/domains/manage/routes/projectMembers.d.ts +9 -0
- package/dist/domains/manage/routes/projectMembers.js +201 -0
- package/dist/domains/manage/routes/projectPermissions.d.ts +9 -0
- package/dist/domains/manage/routes/projectPermissions.js +68 -0
- package/dist/domains/manage/routes/projects.d.ts +9 -0
- package/dist/domains/manage/routes/projects.js +279 -0
- package/dist/domains/manage/routes/ref.d.ts +9 -0
- package/dist/domains/manage/routes/ref.js +33 -0
- package/dist/domains/manage/routes/signoz.d.ts +10 -0
- package/dist/domains/manage/routes/signoz.js +159 -0
- package/dist/domains/manage/routes/subAgentArtifactComponents.d.ts +9 -0
- package/dist/domains/manage/routes/subAgentArtifactComponents.js +202 -0
- package/dist/domains/manage/routes/subAgentDataComponents.d.ts +9 -0
- package/dist/domains/manage/routes/subAgentDataComponents.js +201 -0
- package/dist/domains/manage/routes/subAgentExternalAgentRelations.d.ts +9 -0
- package/dist/domains/manage/routes/subAgentExternalAgentRelations.js +216 -0
- package/dist/domains/manage/routes/subAgentFunctionTools.d.ts +9 -0
- package/dist/domains/manage/routes/subAgentFunctionTools.js +205 -0
- package/dist/domains/manage/routes/subAgentRelations.d.ts +9 -0
- package/dist/domains/manage/routes/subAgentRelations.js +263 -0
- package/dist/domains/manage/routes/subAgentTeamAgentRelations.d.ts +9 -0
- package/dist/domains/manage/routes/subAgentTeamAgentRelations.js +216 -0
- package/dist/domains/manage/routes/subAgentToolRelations.d.ts +9 -0
- package/dist/domains/manage/routes/subAgentToolRelations.js +289 -0
- package/dist/domains/manage/routes/subAgents.d.ts +9 -0
- package/dist/domains/manage/routes/subAgents.js +220 -0
- package/dist/domains/manage/routes/thirdPartyMCPServers.d.ts +9 -0
- package/dist/domains/manage/routes/thirdPartyMCPServers.js +72 -0
- package/dist/domains/manage/routes/tools.d.ts +9 -0
- package/dist/domains/manage/routes/tools.js +261 -0
- package/dist/domains/manage/routes/triggers.d.ts +9 -0
- package/dist/domains/manage/routes/triggers.js +455 -0
- package/dist/domains/manage/routes/userOrganizations.d.ts +9 -0
- package/dist/domains/manage/routes/userOrganizations.js +58 -0
- package/dist/domains/run/a2a/client.d.ts +186 -0
- package/dist/domains/run/a2a/client.js +524 -0
- package/dist/domains/run/a2a/handlers.d.ts +7 -0
- package/dist/domains/run/a2a/handlers.js +574 -0
- package/dist/domains/run/a2a/transfer.d.ts +27 -0
- package/dist/domains/run/a2a/transfer.js +50 -0
- package/dist/domains/run/a2a/types.d.ts +75 -0
- package/dist/domains/run/a2a/types.js +22 -0
- package/dist/domains/run/agents/Agent.d.ts +273 -0
- package/dist/domains/run/agents/Agent.js +2104 -0
- package/dist/domains/run/agents/ModelFactory.d.ts +63 -0
- package/dist/domains/run/agents/ModelFactory.js +194 -0
- package/dist/domains/run/agents/SystemPromptBuilder.d.ts +21 -0
- package/dist/domains/run/agents/SystemPromptBuilder.js +48 -0
- package/dist/domains/run/agents/ToolSessionManager.d.ts +63 -0
- package/dist/domains/run/agents/ToolSessionManager.js +146 -0
- package/dist/domains/run/agents/generateTaskHandler.d.ts +44 -0
- package/dist/domains/run/agents/generateTaskHandler.js +396 -0
- package/dist/domains/run/agents/relationTools.d.ts +64 -0
- package/dist/domains/run/agents/relationTools.js +365 -0
- package/dist/domains/run/agents/types.d.ts +31 -0
- package/dist/domains/run/agents/types.js +1 -0
- package/dist/domains/run/agents/versions/v1/Phase1Config.d.ts +29 -0
- package/dist/domains/run/agents/versions/v1/Phase1Config.js +458 -0
- package/dist/domains/run/agents/versions/v1/Phase2Config.d.ts +33 -0
- package/dist/domains/run/agents/versions/v1/Phase2Config.js +341 -0
- package/dist/domains/run/constants/execution-limits/defaults.d.ts +51 -0
- package/dist/domains/run/constants/execution-limits/defaults.js +52 -0
- package/dist/domains/run/constants/execution-limits/index.d.ts +6 -0
- package/dist/domains/run/constants/execution-limits/index.js +21 -0
- package/dist/domains/run/context/ContextFetcher.d.ts +68 -0
- package/dist/domains/run/context/ContextFetcher.js +276 -0
- package/dist/domains/run/context/ContextResolver.d.ts +56 -0
- package/dist/domains/run/context/ContextResolver.js +273 -0
- package/dist/domains/run/context/context.d.ts +19 -0
- package/dist/domains/run/context/context.js +108 -0
- package/dist/domains/run/context/contextCache.d.ts +56 -0
- package/dist/domains/run/context/contextCache.js +174 -0
- package/dist/domains/run/context/index.d.ts +6 -0
- package/dist/domains/run/context/index.js +7 -0
- package/dist/domains/run/context/validation.d.ts +39 -0
- package/dist/domains/run/context/validation.js +255 -0
- package/dist/domains/run/data/agent.d.ts +7 -0
- package/dist/domains/run/data/agent.js +67 -0
- package/dist/domains/run/data/agents.d.ts +34 -0
- package/dist/domains/run/data/agents.js +131 -0
- package/dist/domains/run/data/conversations.d.ts +129 -0
- package/dist/domains/run/data/conversations.js +517 -0
- package/dist/domains/run/handlers/executionHandler.d.ts +44 -0
- package/dist/domains/run/handlers/executionHandler.js +485 -0
- package/dist/domains/run/index.d.ts +13 -0
- package/dist/domains/run/index.js +21 -0
- package/dist/domains/run/routes/agents.d.ts +13 -0
- package/dist/domains/run/routes/agents.js +141 -0
- package/dist/domains/run/routes/chat.d.ts +14 -0
- package/dist/domains/run/routes/chat.js +300 -0
- package/dist/domains/run/routes/chatDataStream.d.ts +14 -0
- package/dist/domains/run/routes/chatDataStream.js +381 -0
- package/dist/domains/run/routes/mcp.d.ts +14 -0
- package/dist/domains/run/routes/mcp.js +483 -0
- package/dist/domains/run/routes/webhooks.d.ts +15 -0
- package/dist/domains/run/routes/webhooks.js +416 -0
- package/dist/domains/run/services/AgentSession.d.ts +354 -0
- package/dist/domains/run/services/AgentSession.js +1203 -0
- package/dist/domains/run/services/ArtifactParser.d.ts +105 -0
- package/dist/domains/run/services/ArtifactParser.js +338 -0
- package/dist/domains/run/services/ArtifactService.d.ts +122 -0
- package/dist/domains/run/services/ArtifactService.js +629 -0
- package/dist/domains/run/services/BaseCompressor.d.ts +183 -0
- package/dist/domains/run/services/BaseCompressor.js +500 -0
- package/dist/domains/run/services/ConversationCompressor.d.ts +32 -0
- package/dist/domains/run/services/ConversationCompressor.js +91 -0
- package/dist/domains/run/services/IncrementalStreamParser.d.ts +98 -0
- package/dist/domains/run/services/IncrementalStreamParser.js +327 -0
- package/dist/domains/run/services/MidGenerationCompressor.d.ts +63 -0
- package/dist/domains/run/services/MidGenerationCompressor.js +104 -0
- package/dist/domains/run/services/PendingToolApprovalManager.d.ts +62 -0
- package/dist/domains/run/services/PendingToolApprovalManager.js +133 -0
- package/dist/domains/run/services/ResponseFormatter.d.ts +39 -0
- package/dist/domains/run/services/ResponseFormatter.js +152 -0
- package/dist/domains/run/services/evaluationRunConfigMatcher.d.ts +4 -0
- package/dist/domains/run/services/evaluationRunConfigMatcher.js +7 -0
- package/dist/domains/run/tools/NativeSandboxExecutor.d.ts +38 -0
- package/dist/domains/run/tools/NativeSandboxExecutor.js +432 -0
- package/dist/domains/run/tools/SandboxExecutorFactory.d.ts +36 -0
- package/dist/domains/run/tools/SandboxExecutorFactory.js +80 -0
- package/dist/domains/run/tools/VercelSandboxExecutor.d.ts +71 -0
- package/dist/domains/run/tools/VercelSandboxExecutor.js +340 -0
- package/dist/domains/run/tools/distill-conversation-history-tool.d.ts +62 -0
- package/dist/domains/run/tools/distill-conversation-history-tool.js +206 -0
- package/dist/domains/run/tools/distill-conversation-tool.d.ts +41 -0
- package/dist/domains/run/tools/distill-conversation-tool.js +141 -0
- package/dist/domains/run/tools/sandbox-utils.d.ts +18 -0
- package/dist/domains/run/tools/sandbox-utils.js +53 -0
- package/dist/domains/run/types/chat.d.ts +27 -0
- package/dist/domains/run/types/chat.js +1 -0
- package/dist/domains/run/types/executionContext.d.ts +40 -0
- package/dist/domains/run/types/executionContext.js +28 -0
- package/dist/domains/run/types/xml.d.ts +5 -0
- package/dist/domains/run/utils/SchemaProcessor.d.ts +52 -0
- package/dist/domains/run/utils/SchemaProcessor.js +182 -0
- package/dist/domains/run/utils/agent-operations.d.ts +62 -0
- package/dist/domains/run/utils/agent-operations.js +53 -0
- package/dist/domains/run/utils/artifact-component-schema.d.ts +42 -0
- package/dist/domains/run/utils/artifact-component-schema.js +186 -0
- package/dist/domains/run/utils/cleanup.d.ts +21 -0
- package/dist/domains/run/utils/cleanup.js +59 -0
- package/dist/domains/run/utils/data-component-schema.d.ts +2 -0
- package/dist/domains/run/utils/data-component-schema.js +3 -0
- package/dist/domains/run/utils/default-status-schemas.d.ts +20 -0
- package/dist/domains/run/utils/default-status-schemas.js +24 -0
- package/dist/domains/run/utils/json-postprocessor.d.ts +13 -0
- package/dist/domains/run/utils/json-postprocessor.js +19 -0
- package/dist/domains/run/utils/model-context-utils.d.ts +39 -0
- package/dist/domains/run/utils/model-context-utils.js +181 -0
- package/dist/domains/run/utils/model-resolver.d.ts +6 -0
- package/dist/domains/run/utils/model-resolver.js +24 -0
- package/dist/domains/run/utils/project.d.ts +207 -0
- package/dist/domains/run/utils/project.js +315 -0
- package/dist/domains/run/utils/schema-validation.d.ts +44 -0
- package/dist/domains/run/utils/schema-validation.js +97 -0
- package/dist/domains/run/utils/stream-helpers.d.ts +193 -0
- package/dist/domains/run/utils/stream-helpers.js +510 -0
- package/dist/domains/run/utils/stream-registry.d.ts +22 -0
- package/dist/domains/run/utils/stream-registry.js +33 -0
- package/dist/domains/run/utils/token-estimator.d.ts +23 -0
- package/dist/domains/run/utils/token-estimator.js +17 -0
- package/dist/domains/run/utils/tracer.d.ts +7 -0
- package/dist/domains/run/utils/tracer.js +7 -0
- package/dist/env.d.ts +89 -0
- package/dist/env.js +69 -0
- package/dist/factory.d.ts +1535 -0
- package/dist/factory.js +42 -0
- package/dist/index.d.ts +1530 -0
- package/dist/index.js +59 -0
- package/dist/initialization.d.ts +6 -0
- package/dist/initialization.js +65 -0
- package/dist/instrumentation.d.ts +17 -0
- package/dist/instrumentation.js +68 -0
- package/dist/logger.d.ts +2 -0
- package/dist/logger.js +3 -0
- package/dist/middleware/branchScopedDb.d.ts +31 -0
- package/dist/middleware/branchScopedDb.js +137 -0
- package/dist/middleware/cors.d.ts +36 -0
- package/dist/middleware/cors.js +131 -0
- package/dist/middleware/errorHandler.d.ts +12 -0
- package/dist/middleware/errorHandler.js +88 -0
- package/dist/middleware/evalsAuth.d.ts +16 -0
- package/dist/middleware/evalsAuth.js +52 -0
- package/dist/middleware/index.d.ts +8 -0
- package/dist/middleware/index.js +9 -0
- package/dist/middleware/manageAuth.d.ts +25 -0
- package/dist/middleware/manageAuth.js +80 -0
- package/dist/middleware/projectAccess.d.ts +31 -0
- package/dist/middleware/projectAccess.js +118 -0
- package/dist/middleware/projectConfig.d.ts +25 -0
- package/dist/middleware/projectConfig.js +89 -0
- package/dist/middleware/ref.d.ts +61 -0
- package/dist/middleware/ref.js +239 -0
- package/dist/middleware/requirePermission.d.ts +14 -0
- package/dist/middleware/requirePermission.js +80 -0
- package/dist/middleware/runAuth.d.ts +29 -0
- package/dist/middleware/runAuth.js +253 -0
- package/dist/middleware/sessionAuth.d.ts +17 -0
- package/dist/middleware/sessionAuth.js +58 -0
- package/dist/middleware/tenantAccess.d.ts +22 -0
- package/dist/middleware/tenantAccess.js +63 -0
- package/dist/middleware/tracing.d.ts +7 -0
- package/dist/middleware/tracing.js +50 -0
- package/dist/openapi.d.ts +7 -0
- package/dist/openapi.js +156 -0
- package/dist/ssoHelpers.d.ts +20 -0
- package/dist/ssoHelpers.js +51 -0
- package/dist/templates/v1/phase1/system-prompt.js +5 -0
- package/dist/templates/v1/phase1/thinking-preparation.js +5 -0
- package/dist/templates/v1/phase1/tool.js +5 -0
- package/dist/templates/v1/phase2/data-component.js +5 -0
- package/dist/templates/v1/phase2/data-components.js +5 -0
- package/dist/templates/v1/phase2/system-prompt.js +5 -0
- package/dist/templates/v1/shared/artifact-retrieval-guidance.js +5 -0
- package/dist/templates/v1/shared/artifact.js +5 -0
- package/dist/types/app.d.ts +64 -0
- package/dist/types/app.js +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +1 -0
- package/dist/types/runExecutionContext.d.ts +25 -0
- package/dist/types/runExecutionContext.js +28 -0
- package/dist/utils/oauthService.d.ts +71 -0
- package/dist/utils/oauthService.js +106 -0
- package/dist/utils/signozHelpers.d.ts +9 -0
- package/dist/utils/signozHelpers.js +33 -0
- package/dist/utils/speakeasy.d.ts +93 -0
- package/dist/utils/speakeasy.js +44 -0
- package/dist/utils/tempApiKeys.d.ts +17 -0
- package/dist/utils/tempApiKeys.js +26 -0
- package/dist/utils/workflowApiHelpers.d.ts +1 -0
- package/dist/utils/workflowApiHelpers.js +1 -0
- package/package.json +125 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import { getLogger as getLogger$1 } from "../../../logger.js";
|
|
2
|
+
import manageDbClient_default from "../../../data/db/manageDbClient.js";
|
|
3
|
+
import manageDbPool_default from "../../../data/db/manageDbPool.js";
|
|
4
|
+
import { oauthService, retrievePKCEVerifier } from "../../../utils/oauthService.js";
|
|
5
|
+
import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
|
|
6
|
+
import { CredentialReferenceApiSelectSchema, CredentialStoreType, OAuthCallbackQuerySchema, OAuthLoginQuerySchema, createCredentialReference, generateId, getCredentialReferenceWithResources, getProjectMainResolvedRef, getToolById, updateTool, withRef } from "@inkeep/agents-core";
|
|
7
|
+
|
|
8
|
+
//#region src/domains/manage/routes/oauth.ts
|
|
9
|
+
/**
|
|
10
|
+
* OAuth Callback Handler
|
|
11
|
+
*
|
|
12
|
+
* Handles OAuth 2.1 authorization code flows for MCP tools:
|
|
13
|
+
* - Processes authorization codes from OAuth providers
|
|
14
|
+
* - Exchanges codes for access tokens using PKCE
|
|
15
|
+
* - Stores credentials in Keychain
|
|
16
|
+
* - Updates MCP tool status
|
|
17
|
+
* - Redirects users back to frontend
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Find existing credential or create a new one (idempotent operation)
|
|
21
|
+
*/
|
|
22
|
+
async function findOrCreateCredential(db, tenantId, projectId, credentialData) {
|
|
23
|
+
try {
|
|
24
|
+
const existingCredential = await getCredentialReferenceWithResources(db)({
|
|
25
|
+
scopes: {
|
|
26
|
+
tenantId,
|
|
27
|
+
projectId
|
|
28
|
+
},
|
|
29
|
+
id: credentialData.id
|
|
30
|
+
});
|
|
31
|
+
if (existingCredential) return CredentialReferenceApiSelectSchema.parse(existingCredential);
|
|
32
|
+
} catch {}
|
|
33
|
+
try {
|
|
34
|
+
const credential = await createCredentialReference(db)({
|
|
35
|
+
...credentialData,
|
|
36
|
+
tenantId,
|
|
37
|
+
projectId
|
|
38
|
+
});
|
|
39
|
+
return CredentialReferenceApiSelectSchema.parse(credential);
|
|
40
|
+
} catch (error) {
|
|
41
|
+
console.error("Failed to save credential to database:", error);
|
|
42
|
+
throw new Error(`Failed to save credential '${credentialData.id}' to database`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const app = new OpenAPIHono();
|
|
46
|
+
const logger = getLogger$1("oauth-callback");
|
|
47
|
+
/**
|
|
48
|
+
* Extract base URL from request context
|
|
49
|
+
*/
|
|
50
|
+
function getBaseUrlFromRequest(c) {
|
|
51
|
+
const url = new URL(c.req.url);
|
|
52
|
+
return `${url.protocol}//${url.host}`;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Generate OAuth callback HTML page
|
|
56
|
+
*/
|
|
57
|
+
function generateOAuthCallbackPage(params) {
|
|
58
|
+
const { title, message, isSuccess } = params;
|
|
59
|
+
return `
|
|
60
|
+
<!DOCTYPE html>
|
|
61
|
+
<html>
|
|
62
|
+
<head>
|
|
63
|
+
<title>${title}</title>
|
|
64
|
+
<meta charset="utf-8">
|
|
65
|
+
<style>
|
|
66
|
+
body {
|
|
67
|
+
background-color: #000;
|
|
68
|
+
color: #fff;
|
|
69
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
70
|
+
display: flex;
|
|
71
|
+
align-items: center;
|
|
72
|
+
justify-content: center;
|
|
73
|
+
height: 100vh;
|
|
74
|
+
margin: 0;
|
|
75
|
+
text-align: center;
|
|
76
|
+
}
|
|
77
|
+
.container {
|
|
78
|
+
max-width: 400px;
|
|
79
|
+
padding: 2rem;
|
|
80
|
+
}
|
|
81
|
+
.title {
|
|
82
|
+
font-size: 1.2rem;
|
|
83
|
+
margin-bottom: 1rem;
|
|
84
|
+
}
|
|
85
|
+
.message {
|
|
86
|
+
color: #ccc;
|
|
87
|
+
line-height: 1.5;
|
|
88
|
+
}
|
|
89
|
+
.countdown {
|
|
90
|
+
margin-top: 1rem;
|
|
91
|
+
font-size: 0.9rem;
|
|
92
|
+
}
|
|
93
|
+
</style>
|
|
94
|
+
</head>
|
|
95
|
+
<body>
|
|
96
|
+
<div class="container">
|
|
97
|
+
<div class="title">${title}</div>
|
|
98
|
+
<div class="message">${message}</div>
|
|
99
|
+
<div class="message countdown">
|
|
100
|
+
${isSuccess ? "Closing automatically..." : ""}
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
<script>
|
|
104
|
+
${isSuccess && `
|
|
105
|
+
// Success: Send PostMessage then auto-close
|
|
106
|
+
if (window.opener) {
|
|
107
|
+
try {
|
|
108
|
+
window.opener.postMessage({
|
|
109
|
+
type: 'oauth-success',
|
|
110
|
+
timestamp: Date.now()
|
|
111
|
+
}, '*');
|
|
112
|
+
} catch (error) {
|
|
113
|
+
console.error('PostMessage failed:', error);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// Auto-close after brief delay
|
|
118
|
+
setTimeout(() => {
|
|
119
|
+
window.close();
|
|
120
|
+
}, 1000);
|
|
121
|
+
`}
|
|
122
|
+
<\/script>
|
|
123
|
+
</body>
|
|
124
|
+
</html>
|
|
125
|
+
`;
|
|
126
|
+
}
|
|
127
|
+
app.openapi(createRoute({
|
|
128
|
+
method: "get",
|
|
129
|
+
path: "/login",
|
|
130
|
+
summary: "Initiate OAuth login for MCP tool",
|
|
131
|
+
description: "Detects OAuth requirements and redirects to authorization server (public endpoint)",
|
|
132
|
+
operationId: "initiate-oauth-login-public",
|
|
133
|
+
tags: ["OAuth"],
|
|
134
|
+
request: { query: OAuthLoginQuerySchema },
|
|
135
|
+
responses: {
|
|
136
|
+
302: { description: "Redirect to OAuth authorization server" },
|
|
137
|
+
400: {
|
|
138
|
+
description: "OAuth not supported or configuration error",
|
|
139
|
+
content: { "text/html": { schema: z.string() } }
|
|
140
|
+
},
|
|
141
|
+
404: {
|
|
142
|
+
description: "Tool not found",
|
|
143
|
+
content: { "text/html": { schema: z.string() } }
|
|
144
|
+
},
|
|
145
|
+
500: {
|
|
146
|
+
description: "Internal server error",
|
|
147
|
+
content: { "text/html": { schema: z.string() } }
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}), async (c) => {
|
|
151
|
+
const { tenantId, projectId, toolId } = c.req.valid("query");
|
|
152
|
+
const db = c.get("db");
|
|
153
|
+
try {
|
|
154
|
+
const tool = await getToolById(db)({
|
|
155
|
+
scopes: {
|
|
156
|
+
tenantId,
|
|
157
|
+
projectId
|
|
158
|
+
},
|
|
159
|
+
toolId
|
|
160
|
+
});
|
|
161
|
+
if (!tool) {
|
|
162
|
+
logger.error({
|
|
163
|
+
toolId,
|
|
164
|
+
tenantId,
|
|
165
|
+
projectId
|
|
166
|
+
}, "Tool not found for OAuth login");
|
|
167
|
+
return c.text("Tool not found", 404);
|
|
168
|
+
}
|
|
169
|
+
const baseUrl = getBaseUrlFromRequest(c);
|
|
170
|
+
const { redirectUrl } = await oauthService.initiateOAuthFlow({
|
|
171
|
+
tenantId,
|
|
172
|
+
projectId,
|
|
173
|
+
toolId,
|
|
174
|
+
mcpServerUrl: tool.config.mcp.server.url,
|
|
175
|
+
baseUrl
|
|
176
|
+
});
|
|
177
|
+
return c.redirect(redirectUrl, 302);
|
|
178
|
+
} catch (error) {
|
|
179
|
+
logger.error({
|
|
180
|
+
toolId,
|
|
181
|
+
tenantId,
|
|
182
|
+
projectId,
|
|
183
|
+
error
|
|
184
|
+
}, "OAuth login failed");
|
|
185
|
+
const errorMessage = error instanceof Error ? error.message : "Failed to initiate OAuth login";
|
|
186
|
+
return c.text(`OAuth Error: ${errorMessage}`, 500);
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
app.openapi(createRoute({
|
|
190
|
+
method: "get",
|
|
191
|
+
path: "/callback",
|
|
192
|
+
summary: "MCP OAuth authorization callback",
|
|
193
|
+
description: "Handles OAuth authorization codes for MCP tools and completes the authentication flow",
|
|
194
|
+
operationId: "mcp-oauth-callback",
|
|
195
|
+
tags: ["OAuth"],
|
|
196
|
+
request: { query: OAuthCallbackQuerySchema },
|
|
197
|
+
responses: {
|
|
198
|
+
302: { description: "Redirect to frontend after successful OAuth" },
|
|
199
|
+
400: {
|
|
200
|
+
description: "OAuth error or invalid request",
|
|
201
|
+
content: { "text/html": { schema: z.string() } }
|
|
202
|
+
},
|
|
203
|
+
500: {
|
|
204
|
+
description: "Internal server error",
|
|
205
|
+
content: { "text/html": { schema: z.string() } }
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}), async (c) => {
|
|
209
|
+
try {
|
|
210
|
+
const { code, state, error, error_description } = c.req.valid("query");
|
|
211
|
+
logger.info({
|
|
212
|
+
state,
|
|
213
|
+
hasCode: !!code
|
|
214
|
+
}, "OAuth callback received");
|
|
215
|
+
if (error) {
|
|
216
|
+
logger.error({
|
|
217
|
+
error,
|
|
218
|
+
error_description
|
|
219
|
+
}, "OAuth authorization failed");
|
|
220
|
+
const errorPage = generateOAuthCallbackPage({
|
|
221
|
+
title: "Authentication Failed",
|
|
222
|
+
message: error_description || error || "OAuth Authorization Failed. Please try again.",
|
|
223
|
+
isSuccess: false
|
|
224
|
+
});
|
|
225
|
+
return c.html(errorPage);
|
|
226
|
+
}
|
|
227
|
+
const pkceData = retrievePKCEVerifier(state);
|
|
228
|
+
if (!pkceData) {
|
|
229
|
+
logger.error({ state }, "Invalid or expired OAuth state");
|
|
230
|
+
const expiredPage = generateOAuthCallbackPage({
|
|
231
|
+
title: "Session Expired",
|
|
232
|
+
message: "OAuth Session Expired: The OAuth session has expired or is invalid. Please try again.",
|
|
233
|
+
isSuccess: false
|
|
234
|
+
});
|
|
235
|
+
return c.html(expiredPage);
|
|
236
|
+
}
|
|
237
|
+
const { codeVerifier, toolId, tenantId, projectId, clientInformation, metadata, resourceUrl } = pkceData;
|
|
238
|
+
const resolvedRef = await getProjectMainResolvedRef(manageDbClient_default)(tenantId, projectId);
|
|
239
|
+
const tool = await withRef(manageDbPool_default, resolvedRef, (db) => getToolById(db)({
|
|
240
|
+
scopes: {
|
|
241
|
+
tenantId,
|
|
242
|
+
projectId
|
|
243
|
+
},
|
|
244
|
+
toolId
|
|
245
|
+
}));
|
|
246
|
+
if (!tool) throw new Error(`Tool ${toolId} not found`);
|
|
247
|
+
logger.info({
|
|
248
|
+
toolId,
|
|
249
|
+
tenantId,
|
|
250
|
+
projectId
|
|
251
|
+
}, "Processing OAuth callback");
|
|
252
|
+
logger.info({ toolId }, "Exchanging authorization code for access token");
|
|
253
|
+
const credentialStores = c.get("credentialStores");
|
|
254
|
+
const baseUrl = getBaseUrlFromRequest(c);
|
|
255
|
+
const { tokens } = await oauthService.exchangeCodeForTokens({
|
|
256
|
+
code,
|
|
257
|
+
codeVerifier,
|
|
258
|
+
clientInformation,
|
|
259
|
+
metadata,
|
|
260
|
+
resourceUrl,
|
|
261
|
+
mcpServerUrl: tool.config.mcp.server.url,
|
|
262
|
+
baseUrl
|
|
263
|
+
});
|
|
264
|
+
logger.info({
|
|
265
|
+
toolId,
|
|
266
|
+
tokenType: tokens.token_type,
|
|
267
|
+
hasRefresh: !!tokens.refresh_token
|
|
268
|
+
}, "Token exchange successful");
|
|
269
|
+
const credentialTokenKey = `oauth_token_${toolId}`;
|
|
270
|
+
let newCredentialData;
|
|
271
|
+
const keychainStore = credentialStores.get("keychain-default");
|
|
272
|
+
if (keychainStore) try {
|
|
273
|
+
await keychainStore.set(credentialTokenKey, JSON.stringify(tokens));
|
|
274
|
+
newCredentialData = {
|
|
275
|
+
id: generateId(),
|
|
276
|
+
name: tool.name,
|
|
277
|
+
type: CredentialStoreType.keychain,
|
|
278
|
+
credentialStoreId: "keychain-default",
|
|
279
|
+
retrievalParams: { key: credentialTokenKey }
|
|
280
|
+
};
|
|
281
|
+
} catch (error$1) {
|
|
282
|
+
logger.info({ error: error$1 instanceof Error ? error$1.message : error$1 }, "Keychain store not available.");
|
|
283
|
+
}
|
|
284
|
+
if (!newCredentialData) throw new Error("No credential store found");
|
|
285
|
+
const newCredential = await withRef(manageDbPool_default, resolvedRef, async (db) => {
|
|
286
|
+
const credential = await findOrCreateCredential(db, tenantId, projectId, newCredentialData);
|
|
287
|
+
await updateTool(db)({
|
|
288
|
+
scopes: {
|
|
289
|
+
tenantId,
|
|
290
|
+
projectId
|
|
291
|
+
},
|
|
292
|
+
toolId,
|
|
293
|
+
data: { credentialReferenceId: credential.id }
|
|
294
|
+
});
|
|
295
|
+
return credential;
|
|
296
|
+
}, {
|
|
297
|
+
commit: true,
|
|
298
|
+
commitMessage: `OAuth: Link credential to tool ${toolId}`,
|
|
299
|
+
author: {
|
|
300
|
+
name: "oauth-callback",
|
|
301
|
+
email: "api@inkeep.com"
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
logger.info({
|
|
305
|
+
toolId,
|
|
306
|
+
credentialId: newCredential.id
|
|
307
|
+
}, "OAuth flow completed successfully");
|
|
308
|
+
const successPage = generateOAuthCallbackPage({
|
|
309
|
+
title: "Authentication Complete",
|
|
310
|
+
message: "You have been successfully authenticated.",
|
|
311
|
+
isSuccess: true
|
|
312
|
+
});
|
|
313
|
+
return c.html(successPage);
|
|
314
|
+
} catch (error) {
|
|
315
|
+
logger.error({ error }, "OAuth callback processing failed");
|
|
316
|
+
const errorPage = generateOAuthCallbackPage({
|
|
317
|
+
title: "Processing Failed",
|
|
318
|
+
message: "OAuth Processing Failed. Please try again.",
|
|
319
|
+
isSuccess: false
|
|
320
|
+
});
|
|
321
|
+
return c.html(errorPage);
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
var oauth_default = app;
|
|
325
|
+
|
|
326
|
+
//#endregion
|
|
327
|
+
export { oauth_default as default };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ManageAppVariables } from "../../../types/app.js";
|
|
2
|
+
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
3
|
+
|
|
4
|
+
//#region src/domains/manage/routes/playgroundToken.d.ts
|
|
5
|
+
declare const app: OpenAPIHono<{
|
|
6
|
+
Variables: ManageAppVariables;
|
|
7
|
+
}, {}, "/">;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { app as default };
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { getLogger as getLogger$1 } from "../../../logger.js";
|
|
2
|
+
import { env } from "../../../env.js";
|
|
3
|
+
import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
|
|
4
|
+
import { ErrorResponseSchema, TenantParamsSchema, canUseProject, createApiError, getAgentById, projectExists, signTempToken } from "@inkeep/agents-core";
|
|
5
|
+
|
|
6
|
+
//#region src/domains/manage/routes/playgroundToken.ts
|
|
7
|
+
const logger = getLogger$1("playgroundToken");
|
|
8
|
+
const app = new OpenAPIHono();
|
|
9
|
+
const PlaygroundTokenRequestSchema = z.object({
|
|
10
|
+
projectId: z.string(),
|
|
11
|
+
agentId: z.string()
|
|
12
|
+
});
|
|
13
|
+
const PlaygroundTokenResponseSchema = z.object({
|
|
14
|
+
apiKey: z.string().describe("Temporary API key for playground use"),
|
|
15
|
+
expiresAt: z.string().describe("ISO 8601 timestamp when the key expires")
|
|
16
|
+
});
|
|
17
|
+
app.openapi(createRoute({
|
|
18
|
+
method: "post",
|
|
19
|
+
path: "/",
|
|
20
|
+
summary: "Generate temporary API key for playground",
|
|
21
|
+
operationId: "create-playground-token",
|
|
22
|
+
tags: ["Playground"],
|
|
23
|
+
description: "Generates a short-lived API key (1 hour expiry) for authenticated users to access the run-api from the playground",
|
|
24
|
+
security: [{ cookieAuth: [] }],
|
|
25
|
+
request: {
|
|
26
|
+
params: TenantParamsSchema,
|
|
27
|
+
body: { content: { "application/json": { schema: PlaygroundTokenRequestSchema } } }
|
|
28
|
+
},
|
|
29
|
+
responses: {
|
|
30
|
+
200: {
|
|
31
|
+
description: "Temporary API key generated successfully",
|
|
32
|
+
content: { "application/json": { schema: PlaygroundTokenResponseSchema } }
|
|
33
|
+
},
|
|
34
|
+
401: {
|
|
35
|
+
description: "Unauthorized - session required",
|
|
36
|
+
content: { "application/json": { schema: ErrorResponseSchema } }
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}), async (c) => {
|
|
40
|
+
const db = c.get("db");
|
|
41
|
+
const userId = c.get("userId");
|
|
42
|
+
const tenantId = c.get("tenantId");
|
|
43
|
+
const tenantRole = c.get("tenantRole") || "member";
|
|
44
|
+
const { projectId, agentId } = c.req.valid("json");
|
|
45
|
+
if (!userId || !tenantId || !projectId || !agentId) throw createApiError({
|
|
46
|
+
code: "unauthorized",
|
|
47
|
+
message: "User, tenant, project, or agent ID not found"
|
|
48
|
+
});
|
|
49
|
+
logger.info({
|
|
50
|
+
userId,
|
|
51
|
+
tenantId,
|
|
52
|
+
projectId,
|
|
53
|
+
agentId
|
|
54
|
+
}, "Generating temporary JWT token for playground");
|
|
55
|
+
if (!await canUseProject({
|
|
56
|
+
tenantId,
|
|
57
|
+
userId,
|
|
58
|
+
projectId,
|
|
59
|
+
orgRole: tenantRole
|
|
60
|
+
})) {
|
|
61
|
+
logger.warn({
|
|
62
|
+
userId,
|
|
63
|
+
tenantId,
|
|
64
|
+
projectId
|
|
65
|
+
}, "User does not have use permission on project");
|
|
66
|
+
throw createApiError({
|
|
67
|
+
code: "not_found",
|
|
68
|
+
message: "Project not found"
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
if (!await projectExists(db)({
|
|
72
|
+
tenantId,
|
|
73
|
+
projectId
|
|
74
|
+
})) {
|
|
75
|
+
logger.warn({
|
|
76
|
+
userId,
|
|
77
|
+
tenantId,
|
|
78
|
+
projectId
|
|
79
|
+
}, "Project not found or access denied");
|
|
80
|
+
throw createApiError({
|
|
81
|
+
code: "not_found",
|
|
82
|
+
message: "Project not found"
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
if (!await getAgentById(db)({ scopes: {
|
|
86
|
+
tenantId,
|
|
87
|
+
projectId,
|
|
88
|
+
agentId
|
|
89
|
+
} })) {
|
|
90
|
+
logger.warn({
|
|
91
|
+
userId,
|
|
92
|
+
tenantId,
|
|
93
|
+
projectId,
|
|
94
|
+
agentId
|
|
95
|
+
}, "Agent not found or access denied");
|
|
96
|
+
throw createApiError({
|
|
97
|
+
code: "not_found",
|
|
98
|
+
message: "Agent not found"
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
if (!env.INKEEP_AGENTS_TEMP_JWT_PRIVATE_KEY) throw createApiError({
|
|
102
|
+
code: "internal_server_error",
|
|
103
|
+
message: "Temporary token signing not configured"
|
|
104
|
+
});
|
|
105
|
+
const result = await signTempToken(Buffer.from(env.INKEEP_AGENTS_TEMP_JWT_PRIVATE_KEY, "base64").toString("utf-8"), {
|
|
106
|
+
tenantId,
|
|
107
|
+
projectId,
|
|
108
|
+
agentId,
|
|
109
|
+
type: "temporary",
|
|
110
|
+
initiatedBy: {
|
|
111
|
+
type: "user",
|
|
112
|
+
id: userId
|
|
113
|
+
}
|
|
114
|
+
}, userId);
|
|
115
|
+
logger.info({
|
|
116
|
+
userId,
|
|
117
|
+
expiresAt: result.expiresAt
|
|
118
|
+
}, "Temporary JWT token generated");
|
|
119
|
+
return c.json({
|
|
120
|
+
apiKey: result.token,
|
|
121
|
+
expiresAt: result.expiresAt
|
|
122
|
+
}, 200);
|
|
123
|
+
});
|
|
124
|
+
var playgroundToken_default = app;
|
|
125
|
+
|
|
126
|
+
//#endregion
|
|
127
|
+
export { playgroundToken_default as default };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ManageAppVariables } from "../../../types/app.js";
|
|
2
|
+
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
3
|
+
|
|
4
|
+
//#region src/domains/manage/routes/projectFull.d.ts
|
|
5
|
+
declare const app: OpenAPIHono<{
|
|
6
|
+
Variables: ManageAppVariables;
|
|
7
|
+
}, {}, "/">;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { app as default };
|