@inkeep/agents-api 0.0.1
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 +46446 -0
- package/dist/.well-known/workflow/v1/flow.cjs.debug.json +8 -0
- package/dist/.well-known/workflow/v1/manifest.debug.json +93 -0
- package/dist/.well-known/workflow/v1/step.cjs +219923 -0
- package/dist/.well-known/workflow/v1/step.cjs.debug.json +8 -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 +28 -0
- package/dist/domains/evals/workflow/functions/evaluateConversation.js +134 -0
- package/dist/domains/evals/workflow/functions/runDatasetItem.d.ts +36 -0
- package/dist/domains/evals/workflow/functions/runDatasetItem.js +204 -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 +264 -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 +423 -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 +582 -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 +79 -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 +384 -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 +42 -0
- package/dist/domains/run/handlers/executionHandler.js +484 -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 +396 -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 +9 -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 +44 -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 +126 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { AgentWithinContextOfProjectSelectWithRelationIds, ArtifactComponentApiSelect, CanDelegateToItem, CanRelateToInternalSubAgent, DataComponentApiSelect, ExternalAgentApiSelect, FullAgentSubAgentSelectWithRelationIds, FullProjectSelectWithRelationIds, ToolApiSelect } from "@inkeep/agents-core";
|
|
2
|
+
|
|
3
|
+
//#region src/domains/run/utils/project.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Get an agent from the project definition
|
|
7
|
+
* Replaces direct database calls with lookup from pre-fetched project data
|
|
8
|
+
*/
|
|
9
|
+
declare function getAgentFromProject(params: {
|
|
10
|
+
project: FullProjectSelectWithRelationIds;
|
|
11
|
+
agentId: string;
|
|
12
|
+
}): AgentWithinContextOfProjectSelectWithRelationIds | null;
|
|
13
|
+
/**
|
|
14
|
+
* Get a sub-agent from the project definition
|
|
15
|
+
* Replaces direct database calls with lookup from pre-fetched project data
|
|
16
|
+
*/
|
|
17
|
+
declare function getSubAgentFromProject(params: {
|
|
18
|
+
project: FullProjectSelectWithRelationIds;
|
|
19
|
+
agentId: string;
|
|
20
|
+
subAgentId?: string;
|
|
21
|
+
}): FullAgentSubAgentSelectWithRelationIds | null;
|
|
22
|
+
type InternalRelation = {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
description: string | null;
|
|
26
|
+
relationType: 'transfer' | 'delegate';
|
|
27
|
+
relationId: string;
|
|
28
|
+
};
|
|
29
|
+
type ExternalRelation = {
|
|
30
|
+
externalAgent: {
|
|
31
|
+
id: string;
|
|
32
|
+
name: string;
|
|
33
|
+
description: string | null;
|
|
34
|
+
baseUrl: string;
|
|
35
|
+
credentialReferenceId?: string | null;
|
|
36
|
+
};
|
|
37
|
+
headers?: Record<string, string> | null;
|
|
38
|
+
relationId: string;
|
|
39
|
+
};
|
|
40
|
+
type TeamRelation = {
|
|
41
|
+
targetAgent: {
|
|
42
|
+
id: string;
|
|
43
|
+
name: string;
|
|
44
|
+
description: string | null;
|
|
45
|
+
};
|
|
46
|
+
targetAgentId: string;
|
|
47
|
+
headers?: Record<string, string> | null;
|
|
48
|
+
relationId: string;
|
|
49
|
+
};
|
|
50
|
+
type ParsedDelegateRelations = {
|
|
51
|
+
internalDelegateRelations: InternalRelation[];
|
|
52
|
+
externalRelations: ExternalRelation[];
|
|
53
|
+
teamRelations: TeamRelation[];
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Extract transfer relations from a sub-agent's canTransferTo array
|
|
57
|
+
* Returns sub-agents that can be transferred to with their details
|
|
58
|
+
*/
|
|
59
|
+
declare function extractTransferRelations(params: {
|
|
60
|
+
agent: AgentWithinContextOfProjectSelectWithRelationIds;
|
|
61
|
+
canTransferTo: CanRelateToInternalSubAgent[];
|
|
62
|
+
}): InternalRelation[];
|
|
63
|
+
/**
|
|
64
|
+
* Parse canDelegateTo array to separate internal, external, and team relations
|
|
65
|
+
* Handles the union type of string | CanDelegateToExternalAgent | CanDelegateToTeamAgent
|
|
66
|
+
*/
|
|
67
|
+
declare function parseDelegateRelations(params: {
|
|
68
|
+
agent: AgentWithinContextOfProjectSelectWithRelationIds;
|
|
69
|
+
project: FullProjectSelectWithRelationIds;
|
|
70
|
+
canDelegateTo: CanDelegateToItem[];
|
|
71
|
+
}): ParsedDelegateRelations;
|
|
72
|
+
/**
|
|
73
|
+
* Get all relations for a sub-agent (transfers + delegates combined)
|
|
74
|
+
* Convenience function that combines extractTransferRelations and parseDelegateRelations
|
|
75
|
+
*/
|
|
76
|
+
declare function getSubAgentRelations(params: {
|
|
77
|
+
agent: AgentWithinContextOfProjectSelectWithRelationIds;
|
|
78
|
+
project: FullProjectSelectWithRelationIds;
|
|
79
|
+
subAgent: FullAgentSubAgentSelectWithRelationIds;
|
|
80
|
+
}): {
|
|
81
|
+
transferRelations: InternalRelation[];
|
|
82
|
+
internalDelegateRelations: InternalRelation[];
|
|
83
|
+
externalRelations: ExternalRelation[];
|
|
84
|
+
teamRelations: TeamRelation[];
|
|
85
|
+
};
|
|
86
|
+
type ToolForAgent = {
|
|
87
|
+
toolId: string;
|
|
88
|
+
tool: ToolApiSelect;
|
|
89
|
+
selectedTools: string[] | null | undefined;
|
|
90
|
+
headers: Record<string, string> | null | undefined;
|
|
91
|
+
toolPolicies: Record<string, {
|
|
92
|
+
needsApproval?: boolean;
|
|
93
|
+
}> | null | undefined;
|
|
94
|
+
relationshipId: string | undefined;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Get tools for a sub-agent from their canUse array
|
|
98
|
+
* Resolves tool references from both agent-level and project-level tools
|
|
99
|
+
*/
|
|
100
|
+
declare function getToolsForSubAgent(params: {
|
|
101
|
+
agent: AgentWithinContextOfProjectSelectWithRelationIds;
|
|
102
|
+
project: FullProjectSelectWithRelationIds;
|
|
103
|
+
subAgent: FullAgentSubAgentSelectWithRelationIds;
|
|
104
|
+
}): ToolForAgent[];
|
|
105
|
+
type DataComponentForAgent = DataComponentApiSelect;
|
|
106
|
+
type ArtifactComponentForAgent = ArtifactComponentApiSelect;
|
|
107
|
+
/**
|
|
108
|
+
* Get data components for a sub-agent
|
|
109
|
+
* Resolves data component references from project-level dataComponents
|
|
110
|
+
*/
|
|
111
|
+
declare function getDataComponentsForSubAgent(params: {
|
|
112
|
+
project: FullProjectSelectWithRelationIds;
|
|
113
|
+
subAgent: FullAgentSubAgentSelectWithRelationIds;
|
|
114
|
+
}): DataComponentForAgent[];
|
|
115
|
+
/**
|
|
116
|
+
* Get artifact components for a sub-agent
|
|
117
|
+
* Resolves artifact component references from project-level artifactComponents
|
|
118
|
+
*/
|
|
119
|
+
declare function getArtifactComponentsForSubAgent(params: {
|
|
120
|
+
project: FullProjectSelectWithRelationIds;
|
|
121
|
+
subAgent: FullAgentSubAgentSelectWithRelationIds;
|
|
122
|
+
}): ArtifactComponentForAgent[];
|
|
123
|
+
type TargetTransferRelation = {
|
|
124
|
+
id: string;
|
|
125
|
+
name: string;
|
|
126
|
+
description: string | null;
|
|
127
|
+
relationId: string;
|
|
128
|
+
};
|
|
129
|
+
type TargetExternalAgentRelation = {
|
|
130
|
+
externalAgent: ExternalAgentApiSelect;
|
|
131
|
+
headers?: Record<string, string> | null;
|
|
132
|
+
relationId: string;
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Get transfer relations for a target sub-agent
|
|
136
|
+
* Used when building agent configurations that need to know what the target can transfer to
|
|
137
|
+
*/
|
|
138
|
+
declare function getTransferRelationsForTargetSubAgent(params: {
|
|
139
|
+
agent: AgentWithinContextOfProjectSelectWithRelationIds;
|
|
140
|
+
subAgentId: string;
|
|
141
|
+
}): TargetTransferRelation[];
|
|
142
|
+
/**
|
|
143
|
+
* Get delegate relations (external agents) for a target sub-agent
|
|
144
|
+
* Used when building agent configurations that need to know what external agents the target can delegate to
|
|
145
|
+
*/
|
|
146
|
+
declare function getExternalAgentRelationsForTargetSubAgent(params: {
|
|
147
|
+
agent: AgentWithinContextOfProjectSelectWithRelationIds;
|
|
148
|
+
project: FullProjectSelectWithRelationIds;
|
|
149
|
+
subAgentId: string;
|
|
150
|
+
}): TargetExternalAgentRelation[];
|
|
151
|
+
type RelationForDescription = {
|
|
152
|
+
id: string;
|
|
153
|
+
name: string;
|
|
154
|
+
description: string | null;
|
|
155
|
+
relationType?: 'transfer' | 'delegate';
|
|
156
|
+
relationId: string;
|
|
157
|
+
};
|
|
158
|
+
type ExternalRelationForDescription = {
|
|
159
|
+
externalAgent: {
|
|
160
|
+
id: string;
|
|
161
|
+
name: string;
|
|
162
|
+
description: string | null;
|
|
163
|
+
};
|
|
164
|
+
relationId: string;
|
|
165
|
+
};
|
|
166
|
+
type TeamRelationForDescription = {
|
|
167
|
+
targetAgent: {
|
|
168
|
+
id: string;
|
|
169
|
+
name: string;
|
|
170
|
+
description: string | null;
|
|
171
|
+
};
|
|
172
|
+
targetAgentId: string;
|
|
173
|
+
relationId: string;
|
|
174
|
+
};
|
|
175
|
+
type RelationsForDescriptionGeneration = {
|
|
176
|
+
internalRelations: RelationForDescription[];
|
|
177
|
+
externalRelations: ExternalRelationForDescription[];
|
|
178
|
+
teamRelations: TeamRelationForDescription[];
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* Build relation arrays from a sub-agent's canTransferTo and canDelegateTo
|
|
182
|
+
* Used for generating enhanced descriptions
|
|
183
|
+
*/
|
|
184
|
+
declare function buildRelationsForDescription(params: {
|
|
185
|
+
agent: AgentWithinContextOfProjectSelectWithRelationIds;
|
|
186
|
+
project: FullProjectSelectWithRelationIds;
|
|
187
|
+
subAgent: FullAgentSubAgentSelectWithRelationIds;
|
|
188
|
+
}): RelationsForDescriptionGeneration;
|
|
189
|
+
/**
|
|
190
|
+
* Enhance an internal relation with a generated description
|
|
191
|
+
* Looks up the related sub-agent and builds relation data for description generation
|
|
192
|
+
*/
|
|
193
|
+
declare function enhanceInternalRelation(params: {
|
|
194
|
+
relation: InternalRelation;
|
|
195
|
+
agent: AgentWithinContextOfProjectSelectWithRelationIds;
|
|
196
|
+
project: FullProjectSelectWithRelationIds;
|
|
197
|
+
}): InternalRelation;
|
|
198
|
+
/**
|
|
199
|
+
* Enhance a team relation with a generated description
|
|
200
|
+
* Looks up the team agent's default sub-agent and builds relation data for description generation
|
|
201
|
+
*/
|
|
202
|
+
declare function enhanceTeamRelation(params: {
|
|
203
|
+
relation: TeamRelation;
|
|
204
|
+
project: FullProjectSelectWithRelationIds;
|
|
205
|
+
}): TeamRelation;
|
|
206
|
+
//#endregion
|
|
207
|
+
export { ArtifactComponentForAgent, DataComponentForAgent, ExternalRelation, ExternalRelationForDescription, InternalRelation, ParsedDelegateRelations, RelationForDescription, RelationsForDescriptionGeneration, TargetExternalAgentRelation, TargetTransferRelation, TeamRelation, TeamRelationForDescription, ToolForAgent, buildRelationsForDescription, enhanceInternalRelation, enhanceTeamRelation, extractTransferRelations, getAgentFromProject, getArtifactComponentsForSubAgent, getDataComponentsForSubAgent, getExternalAgentRelationsForTargetSubAgent, getSubAgentFromProject, getSubAgentRelations, getToolsForSubAgent, getTransferRelationsForTargetSubAgent, parseDelegateRelations };
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import { getLogger } from "../../../logger.js";
|
|
2
|
+
import { generateDescriptionWithRelationData } from "../data/agents.js";
|
|
3
|
+
|
|
4
|
+
//#region src/domains/run/utils/project.ts
|
|
5
|
+
const logger = getLogger("project-helper");
|
|
6
|
+
/**
|
|
7
|
+
* Get an agent from the project definition
|
|
8
|
+
* Replaces direct database calls with lookup from pre-fetched project data
|
|
9
|
+
*/
|
|
10
|
+
function getAgentFromProject(params) {
|
|
11
|
+
const { project, agentId } = params;
|
|
12
|
+
const agent = project.agents[agentId];
|
|
13
|
+
if (!agent) {
|
|
14
|
+
logger.warn({ agentId }, "Agent not found in project");
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return agent;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get a sub-agent from the project definition
|
|
21
|
+
* Replaces direct database calls with lookup from pre-fetched project data
|
|
22
|
+
*/
|
|
23
|
+
function getSubAgentFromProject(params) {
|
|
24
|
+
const { project, agentId, subAgentId } = params;
|
|
25
|
+
const agent = project.agents[agentId];
|
|
26
|
+
if (!agent) {
|
|
27
|
+
logger.warn({ agentId }, "Agent not found in project");
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const targetSubAgentId = subAgentId || agent.defaultSubAgentId;
|
|
31
|
+
if (!targetSubAgentId) {
|
|
32
|
+
logger.warn({ agentId }, "No default sub-agent ID configured for agent");
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const subAgent = agent.subAgents?.[targetSubAgentId];
|
|
36
|
+
if (!subAgent) {
|
|
37
|
+
logger.warn({
|
|
38
|
+
agentId,
|
|
39
|
+
subAgentId: targetSubAgentId
|
|
40
|
+
}, "Sub-agent not found in project");
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
return subAgent;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Extract transfer relations from a sub-agent's canTransferTo array
|
|
47
|
+
* Returns sub-agents that can be transferred to with their details
|
|
48
|
+
*/
|
|
49
|
+
function extractTransferRelations(params) {
|
|
50
|
+
const { agent, canTransferTo } = params;
|
|
51
|
+
return canTransferTo.map((relation) => {
|
|
52
|
+
const targetSubAgent = agent.subAgents?.[relation.subAgentId];
|
|
53
|
+
if (targetSubAgent) return {
|
|
54
|
+
id: relation.subAgentId,
|
|
55
|
+
name: targetSubAgent.name,
|
|
56
|
+
description: targetSubAgent.description,
|
|
57
|
+
relationType: "transfer",
|
|
58
|
+
relationId: relation.subAgentSubAgentRelationId
|
|
59
|
+
};
|
|
60
|
+
return null;
|
|
61
|
+
}).filter((r) => r !== null);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Parse canDelegateTo array to separate internal, external, and team relations
|
|
65
|
+
* Handles the union type of string | CanDelegateToExternalAgent | CanDelegateToTeamAgent
|
|
66
|
+
*/
|
|
67
|
+
function parseDelegateRelations(params) {
|
|
68
|
+
const { agent, project, canDelegateTo } = params;
|
|
69
|
+
const internalDelegateRelations = [];
|
|
70
|
+
const externalRelations = [];
|
|
71
|
+
const teamRelations = [];
|
|
72
|
+
for (const item of canDelegateTo) if ("subAgentId" in item) {
|
|
73
|
+
const targetSubAgent = agent.subAgents?.[item.subAgentId];
|
|
74
|
+
if (targetSubAgent) internalDelegateRelations.push({
|
|
75
|
+
id: item.subAgentId,
|
|
76
|
+
name: targetSubAgent.name,
|
|
77
|
+
description: targetSubAgent.description,
|
|
78
|
+
relationType: "delegate",
|
|
79
|
+
relationId: item.subAgentSubAgentRelationId
|
|
80
|
+
});
|
|
81
|
+
} else if ("externalAgentId" in item) {
|
|
82
|
+
const extAgentId = item.externalAgentId;
|
|
83
|
+
const extHeaders = item.headers;
|
|
84
|
+
const extRelationId = item.subAgentExternalAgentRelationId;
|
|
85
|
+
const externalAgent = agent.externalAgents?.[extAgentId] || project.externalAgents?.[extAgentId];
|
|
86
|
+
if (externalAgent) externalRelations.push({
|
|
87
|
+
externalAgent: {
|
|
88
|
+
id: extAgentId,
|
|
89
|
+
name: externalAgent.name,
|
|
90
|
+
description: externalAgent.description,
|
|
91
|
+
baseUrl: externalAgent.baseUrl,
|
|
92
|
+
credentialReferenceId: externalAgent.credentialReferenceId
|
|
93
|
+
},
|
|
94
|
+
headers: extHeaders,
|
|
95
|
+
relationId: extRelationId
|
|
96
|
+
});
|
|
97
|
+
} else if ("agentId" in item) {
|
|
98
|
+
const teamAgentId = item.agentId;
|
|
99
|
+
const teamHeaders = item.headers;
|
|
100
|
+
const teamRelationId = item.subAgentTeamAgentRelationId;
|
|
101
|
+
const teamAgent = agent.teamAgents?.[teamAgentId];
|
|
102
|
+
if (teamAgent) teamRelations.push({
|
|
103
|
+
targetAgent: {
|
|
104
|
+
id: teamAgentId,
|
|
105
|
+
name: teamAgent.name,
|
|
106
|
+
description: teamAgent.description
|
|
107
|
+
},
|
|
108
|
+
targetAgentId: teamAgentId,
|
|
109
|
+
headers: teamHeaders,
|
|
110
|
+
relationId: teamRelationId
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
internalDelegateRelations,
|
|
115
|
+
externalRelations,
|
|
116
|
+
teamRelations
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Get all relations for a sub-agent (transfers + delegates combined)
|
|
121
|
+
* Convenience function that combines extractTransferRelations and parseDelegateRelations
|
|
122
|
+
*/
|
|
123
|
+
function getSubAgentRelations(params) {
|
|
124
|
+
const { agent, project, subAgent } = params;
|
|
125
|
+
const canTransferTo = subAgent.canTransferTo || [];
|
|
126
|
+
const canDelegateTo = subAgent.canDelegateTo || [];
|
|
127
|
+
const transferRelations = extractTransferRelations({
|
|
128
|
+
agent,
|
|
129
|
+
canTransferTo
|
|
130
|
+
});
|
|
131
|
+
const { internalDelegateRelations, externalRelations, teamRelations } = parseDelegateRelations({
|
|
132
|
+
agent,
|
|
133
|
+
project,
|
|
134
|
+
canDelegateTo
|
|
135
|
+
});
|
|
136
|
+
return {
|
|
137
|
+
transferRelations,
|
|
138
|
+
internalDelegateRelations,
|
|
139
|
+
externalRelations,
|
|
140
|
+
teamRelations
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get tools for a sub-agent from their canUse array
|
|
145
|
+
* Resolves tool references from both agent-level and project-level tools
|
|
146
|
+
*/
|
|
147
|
+
function getToolsForSubAgent(params) {
|
|
148
|
+
const { agent, project, subAgent } = params;
|
|
149
|
+
return (subAgent.canUse || []).map((canUseItem) => {
|
|
150
|
+
const tool = agent.tools?.[canUseItem.toolId] || project.tools?.[canUseItem.toolId];
|
|
151
|
+
if (!tool) return null;
|
|
152
|
+
return {
|
|
153
|
+
toolId: canUseItem.toolId,
|
|
154
|
+
tool,
|
|
155
|
+
selectedTools: canUseItem.toolSelection,
|
|
156
|
+
headers: canUseItem.headers,
|
|
157
|
+
toolPolicies: canUseItem.toolPolicies,
|
|
158
|
+
relationshipId: canUseItem.agentToolRelationId
|
|
159
|
+
};
|
|
160
|
+
}).filter((item) => item !== null);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Get data components for a sub-agent
|
|
164
|
+
* Resolves data component references from project-level dataComponents
|
|
165
|
+
*/
|
|
166
|
+
function getDataComponentsForSubAgent(params) {
|
|
167
|
+
const { project, subAgent } = params;
|
|
168
|
+
const dataComponentIds = subAgent.dataComponents || [];
|
|
169
|
+
const dataComponentsMap = project.dataComponents || {};
|
|
170
|
+
return dataComponentIds.map((id) => dataComponentsMap[id]).filter((c) => c !== null && c !== void 0);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Get artifact components for a sub-agent
|
|
174
|
+
* Resolves artifact component references from project-level artifactComponents
|
|
175
|
+
*/
|
|
176
|
+
function getArtifactComponentsForSubAgent(params) {
|
|
177
|
+
const { project, subAgent } = params;
|
|
178
|
+
const artifactComponentIds = subAgent.artifactComponents || [];
|
|
179
|
+
const artifactComponentsMap = project.artifactComponents || {};
|
|
180
|
+
return artifactComponentIds.map((id) => artifactComponentsMap[id]).filter((c) => c !== null && c !== void 0);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Get transfer relations for a target sub-agent
|
|
184
|
+
* Used when building agent configurations that need to know what the target can transfer to
|
|
185
|
+
*/
|
|
186
|
+
function getTransferRelationsForTargetSubAgent(params) {
|
|
187
|
+
const { agent, subAgentId } = params;
|
|
188
|
+
const targetSubAgent = agent.subAgents?.[subAgentId];
|
|
189
|
+
if (!targetSubAgent) return [];
|
|
190
|
+
return (targetSubAgent.canTransferTo || []).map((relation) => {
|
|
191
|
+
const target = agent.subAgents?.[relation.subAgentId];
|
|
192
|
+
return target ? {
|
|
193
|
+
id: relation.subAgentId,
|
|
194
|
+
name: target.name,
|
|
195
|
+
description: target.description,
|
|
196
|
+
relationId: relation.subAgentSubAgentRelationId
|
|
197
|
+
} : null;
|
|
198
|
+
}).filter((r) => r !== null);
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Get delegate relations (external agents) for a target sub-agent
|
|
202
|
+
* Used when building agent configurations that need to know what external agents the target can delegate to
|
|
203
|
+
*/
|
|
204
|
+
function getExternalAgentRelationsForTargetSubAgent(params) {
|
|
205
|
+
const { agent, project, subAgentId } = params;
|
|
206
|
+
const targetSubAgent = agent.subAgents?.[subAgentId];
|
|
207
|
+
if (!targetSubAgent) return [];
|
|
208
|
+
return (targetSubAgent.canDelegateTo || []).filter((item) => typeof item === "object" && item !== null && "externalAgentId" in item).map((item) => {
|
|
209
|
+
const extAgent = agent.externalAgents?.[item.externalAgentId] || project.externalAgents?.[item.externalAgentId];
|
|
210
|
+
return extAgent ? {
|
|
211
|
+
externalAgent: {
|
|
212
|
+
...extAgent,
|
|
213
|
+
id: item.externalAgentId
|
|
214
|
+
},
|
|
215
|
+
headers: item.headers,
|
|
216
|
+
relationId: item.subAgentExternalAgentRelationId
|
|
217
|
+
} : null;
|
|
218
|
+
}).filter((r) => r !== null);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Build relation arrays from a sub-agent's canTransferTo and canDelegateTo
|
|
222
|
+
* Used for generating enhanced descriptions
|
|
223
|
+
*/
|
|
224
|
+
function buildRelationsForDescription(params) {
|
|
225
|
+
const { agent, project, subAgent } = params;
|
|
226
|
+
const canTransferTo = subAgent.canTransferTo || [];
|
|
227
|
+
const canDelegateTo = subAgent.canDelegateTo || [];
|
|
228
|
+
const internalRelations = canTransferTo.map((relation) => {
|
|
229
|
+
const target = agent.subAgents?.[relation.subAgentId];
|
|
230
|
+
return target ? {
|
|
231
|
+
id: relation.subAgentId,
|
|
232
|
+
name: target.name,
|
|
233
|
+
description: target.description,
|
|
234
|
+
relationType: "transfer",
|
|
235
|
+
relationId: relation.subAgentSubAgentRelationId
|
|
236
|
+
} : null;
|
|
237
|
+
}).filter((r) => r !== null);
|
|
238
|
+
const externalRelations = [];
|
|
239
|
+
const teamRelations = [];
|
|
240
|
+
for (const item of canDelegateTo) if ("externalAgentId" in item) {
|
|
241
|
+
const extId = item.externalAgentId;
|
|
242
|
+
const extAgent = agent.externalAgents?.[extId] || project.externalAgents?.[extId];
|
|
243
|
+
if (extAgent) externalRelations.push({
|
|
244
|
+
externalAgent: {
|
|
245
|
+
id: extId,
|
|
246
|
+
name: extAgent.name,
|
|
247
|
+
description: extAgent.description
|
|
248
|
+
},
|
|
249
|
+
relationId: item.subAgentExternalAgentRelationId
|
|
250
|
+
});
|
|
251
|
+
} else if ("agentId" in item) {
|
|
252
|
+
const tId = item.agentId;
|
|
253
|
+
const tAgent = agent.teamAgents?.[tId];
|
|
254
|
+
if (tAgent) teamRelations.push({
|
|
255
|
+
targetAgent: {
|
|
256
|
+
id: tId,
|
|
257
|
+
name: tAgent.name,
|
|
258
|
+
description: tAgent.description
|
|
259
|
+
},
|
|
260
|
+
targetAgentId: tId,
|
|
261
|
+
relationId: item.subAgentTeamAgentRelationId
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
return {
|
|
265
|
+
internalRelations,
|
|
266
|
+
externalRelations,
|
|
267
|
+
teamRelations
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Enhance an internal relation with a generated description
|
|
272
|
+
* Looks up the related sub-agent and builds relation data for description generation
|
|
273
|
+
*/
|
|
274
|
+
function enhanceInternalRelation(params) {
|
|
275
|
+
const { relation, agent, project } = params;
|
|
276
|
+
const relatedSubAgent = agent.subAgents?.[relation.id];
|
|
277
|
+
if (!relatedSubAgent) return relation;
|
|
278
|
+
const { internalRelations, externalRelations, teamRelations } = buildRelationsForDescription({
|
|
279
|
+
agent,
|
|
280
|
+
project,
|
|
281
|
+
subAgent: relatedSubAgent
|
|
282
|
+
});
|
|
283
|
+
const enhancedDescription = generateDescriptionWithRelationData(relation.description || "", internalRelations, externalRelations, teamRelations);
|
|
284
|
+
return {
|
|
285
|
+
...relation,
|
|
286
|
+
description: enhancedDescription
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Enhance a team relation with a generated description
|
|
291
|
+
* Looks up the team agent's default sub-agent and builds relation data for description generation
|
|
292
|
+
*/
|
|
293
|
+
function enhanceTeamRelation(params) {
|
|
294
|
+
const { relation, project } = params;
|
|
295
|
+
const teamAgent = project.agents[relation.targetAgentId];
|
|
296
|
+
if (!teamAgent?.defaultSubAgentId) return relation;
|
|
297
|
+
const defaultSubAgent = teamAgent.subAgents?.[teamAgent.defaultSubAgentId];
|
|
298
|
+
if (!defaultSubAgent) return relation;
|
|
299
|
+
const { internalRelations, externalRelations, teamRelations } = buildRelationsForDescription({
|
|
300
|
+
agent: teamAgent,
|
|
301
|
+
project,
|
|
302
|
+
subAgent: defaultSubAgent
|
|
303
|
+
});
|
|
304
|
+
const enhancedDescription = generateDescriptionWithRelationData(teamAgent.description || "", internalRelations, externalRelations, teamRelations);
|
|
305
|
+
return {
|
|
306
|
+
...relation,
|
|
307
|
+
targetAgent: {
|
|
308
|
+
...relation.targetAgent,
|
|
309
|
+
description: enhancedDescription
|
|
310
|
+
}
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
//#endregion
|
|
315
|
+
export { buildRelationsForDescription, enhanceInternalRelation, enhanceTeamRelation, extractTransferRelations, getAgentFromProject, getArtifactComponentsForSubAgent, getDataComponentsForSubAgent, getExternalAgentRelationsForTargetSubAgent, getSubAgentFromProject, getSubAgentRelations, getToolsForSubAgent, getTransferRelationsForTargetSubAgent, parseDelegateRelations };
|
|
@@ -0,0 +1,44 @@
|
|
|
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
|
+
/**
|
|
12
|
+
* Extended JSON Schema that includes preview field indicators
|
|
13
|
+
*/
|
|
14
|
+
interface ExtendedJsonSchema {
|
|
15
|
+
type: string;
|
|
16
|
+
properties?: Record<string, ExtendedJsonSchemaProperty>;
|
|
17
|
+
required?: string[];
|
|
18
|
+
[key: string]: any;
|
|
19
|
+
}
|
|
20
|
+
interface ExtendedJsonSchemaProperty {
|
|
21
|
+
type: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
inPreview?: boolean;
|
|
24
|
+
[key: string]: any;
|
|
25
|
+
}
|
|
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
|
+
/**
|
|
36
|
+
* Extract preview fields from a schema (fields marked with inPreview: true)
|
|
37
|
+
*/
|
|
38
|
+
declare function extractPreviewFields(schema: ExtendedJsonSchema): Record<string, any>;
|
|
39
|
+
/**
|
|
40
|
+
* Extract full fields from a schema (all fields, with inPreview flags removed)
|
|
41
|
+
*/
|
|
42
|
+
declare function extractFullFields(schema: ExtendedJsonSchema): Record<string, any>;
|
|
43
|
+
//#endregion
|
|
44
|
+
export { ExtendedJsonSchema, ExtendedJsonSchemaProperty, clearValidatorCache, extractFullFields, extractPreviewFields, getValidatorCacheSize, validateComponentSchema };
|
|
@@ -0,0 +1,97 @@
|
|
|
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
|
+
//#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
|
+
/**
|
|
62
|
+
* Extract preview fields from a schema (fields marked with inPreview: true)
|
|
63
|
+
*/
|
|
64
|
+
function extractPreviewFields(schema) {
|
|
65
|
+
const previewProperties = {};
|
|
66
|
+
if (schema.properties) {
|
|
67
|
+
for (const [key, prop] of Object.entries(schema.properties)) if (prop.inPreview === true) {
|
|
68
|
+
const cleanProp = { ...prop };
|
|
69
|
+
delete cleanProp.inPreview;
|
|
70
|
+
previewProperties[key] = cleanProp;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
type: "object",
|
|
75
|
+
properties: previewProperties,
|
|
76
|
+
required: schema.required?.filter((field) => previewProperties[field])
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Extract full fields from a schema (all fields, with inPreview flags removed)
|
|
81
|
+
*/
|
|
82
|
+
function extractFullFields(schema) {
|
|
83
|
+
const fullProperties = {};
|
|
84
|
+
if (schema.properties) for (const [key, prop] of Object.entries(schema.properties)) {
|
|
85
|
+
const cleanProp = { ...prop };
|
|
86
|
+
delete cleanProp.inPreview;
|
|
87
|
+
fullProperties[key] = cleanProp;
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
type: "object",
|
|
91
|
+
properties: fullProperties,
|
|
92
|
+
required: schema.required
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
//#endregion
|
|
97
|
+
export { clearValidatorCache, extractFullFields, extractPreviewFields, getValidatorCacheSize, validateComponentSchema };
|