bazis 0.96.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 +21 -0
- package/README.md +146 -0
- package/cli/build.ts +147 -0
- package/cli/codegen.ts +40 -0
- package/cli/generateModule.ts +187 -0
- package/cli/generateProject.ts +183 -0
- package/cli/main.ts +125 -0
- package/cli/moduleRegistration.ts +127 -0
- package/cli/naming.ts +124 -0
- package/cli/parseCli.ts +151 -0
- package/cli/templates/module.ts +497 -0
- package/cli/templates/pack.ts +76 -0
- package/cli/templates/passport.ts +178 -0
- package/core/agent/AgentContextBuilder.ts +567 -0
- package/core/agent/AgentDataDefinition.ts +8 -0
- package/core/agent/AgentRegistry.ts +539 -0
- package/core/agent/AgentRuntime.ts +47 -0
- package/core/agent/AgentToolExecutor.ts +2130 -0
- package/core/agent/AgentToolHooks.ts +39 -0
- package/core/agent/ModelProvider.ts +21 -0
- package/core/agent/README.md +229 -0
- package/core/agent/Tool.contract.ts +20 -0
- package/core/agent/decorators/Agent.ts +11 -0
- package/core/agent/decorators/Prompt.ts +11 -0
- package/core/agent/decorators/Task.ts +29 -0
- package/core/agent/decorators/Tool.ts +12 -0
- package/core/agent/errors.ts +43 -0
- package/core/agent/generated/catalog.ts +26 -0
- package/core/agent/index.ts +170 -0
- package/core/agent/internal/AgentExecutionDriver.ts +1497 -0
- package/core/agent/internal/AgentExecutionState.ts +775 -0
- package/core/agent/internal/AgentJsonSchema.ts +150 -0
- package/core/agent/internal/AgentModelBinding.ts +57 -0
- package/core/agent/internal/Schema.contract.ts +36 -0
- package/core/agent/internal/ToolAudit.projector.ts +163 -0
- package/core/agent/internal/ToolContract.validator.ts +102 -0
- package/core/agent/metadata.ts +398 -0
- package/core/agent/moduleContributions-v1.ts +113 -0
- package/core/agent/semantic.ts +903 -0
- package/core/agent/session/codec.ts +33 -0
- package/core/agent/session/contracts.ts +96 -0
- package/core/agent/session/entities.ts +84 -0
- package/core/agent/session/protector.ts +92 -0
- package/core/app/index.ts +5 -0
- package/core/app/runApp.ts +293 -0
- package/core/app/ui/index.ts +29 -0
- package/core/app/ui/uiProfileResolver.ts +966 -0
- package/core/app/ui/uiSurfaceHosting.ts +38 -0
- package/core/app/ui/uiSurfaceHttp.ts +476 -0
- package/core/background/BackgroundService.ts +223 -0
- package/core/background/backgroundModule.ts +42 -0
- package/core/background/decorator.ts +43 -0
- package/core/background/delay.ts +27 -0
- package/core/background/index.ts +15 -0
- package/core/cache/COMPATIBILITY.md +13 -0
- package/core/cache/ICache.ts +71 -0
- package/core/cache/MemoryCache.ts +394 -0
- package/core/cache/README.md +83 -0
- package/core/cache/SPEC.md +1355 -0
- package/core/cache/cacheModule.ts +21 -0
- package/core/cache/decorators/Cacheable.ts +38 -0
- package/core/cache/decorators/CacheableRedis.ts +39 -0
- package/core/cache/decorators/OutputCache.ts +33 -0
- package/core/cache/decorators/OutputRedisCache.ts +33 -0
- package/core/cache/decorators/cacheableMetadata.ts +78 -0
- package/core/cache/decorators/cacheableRedisMetadata.ts +81 -0
- package/core/cache/decorators/outputCacheMetadata.ts +71 -0
- package/core/cache/decorators/outputRedisCacheMetadata.ts +77 -0
- package/core/cache/di/classProviderHook.ts +26 -0
- package/core/cache/distributed/CacheCodec.ts +5 -0
- package/core/cache/distributed/DistributedCache.ts +403 -0
- package/core/cache/distributed/DistributedCacheDriver.ts +83 -0
- package/core/cache/distributed/DistributedCacheStores.ts +28 -0
- package/core/cache/distributed/IDistributedCache.ts +40 -0
- package/core/cache/distributed/NamedCacheRegistry.ts +23 -0
- package/core/cache/distributed/codecs.ts +32 -0
- package/core/cache/distributed/index.ts +19 -0
- package/core/cache/errors/CacheError.ts +16 -0
- package/core/cache/http/CachedHttpPayload.ts +213 -0
- package/core/cache/http/applyClientCacheHeaders.ts +61 -0
- package/core/cache/http/buildOutputCacheKey.ts +154 -0
- package/core/cache/http/buildRedisOutputCacheKey.ts +16 -0
- package/core/cache/http/composeOutputCache.ts +130 -0
- package/core/cache/http/outputCacheMiddleware.ts +111 -0
- package/core/cache/http/outputCacheSecurityWarning.ts +58 -0
- package/core/cache/http/outputRedisCacheMiddleware.ts +118 -0
- package/core/cache/index.ts +97 -0
- package/core/cache/internal/AutomaticCacheKey.ts +106 -0
- package/core/cache/internal/CacheKeyGuard.ts +56 -0
- package/core/cache/internal/buildCacheProviders.ts +146 -0
- package/core/cache/internal/normalizeCacheKey.ts +9 -0
- package/core/cache/internal/resolveCachePolicy.ts +32 -0
- package/core/cache/internal/resolveCacheableRedisPolicy.ts +17 -0
- package/core/cache/internal/resolveOutputRedisCachePolicy.ts +17 -0
- package/core/cache/providers/cachedProviders.ts +68 -0
- package/core/cache/services/cacheProxy.ts +243 -0
- package/core/cache/tokens/CACHE_POLICIES.ts +5 -0
- package/core/cache/tokens/DISTRIBUTED_CACHE.ts +30 -0
- package/core/cache/types/CacheEntry.ts +7 -0
- package/core/cache/types/CacheOptions.ts +60 -0
- package/core/cache/types/CachePolicy.ts +74 -0
- package/core/cache/types/CacheableRedisOptions.ts +23 -0
- package/core/cache/types/OutputRedisCacheOptions.ts +25 -0
- package/core/di/README.md +104 -0
- package/core/di/ServiceCollection.ts +185 -0
- package/core/di/ServiceProvider.ts +689 -0
- package/core/di/ServiceScope.ts +61 -0
- package/core/di/container.ts +38 -0
- package/core/di/errors/AmbiguousNamedDependencyError.ts +10 -0
- package/core/di/errors/AsyncResolutionRequiredError.ts +12 -0
- package/core/di/errors/CircularDependencyError.ts +10 -0
- package/core/di/errors/ClassDependenciesMismatchError.ts +15 -0
- package/core/di/errors/DiError.ts +6 -0
- package/core/di/errors/InvalidProviderError.ts +9 -0
- package/core/di/errors/ModuleEncapsulationError.ts +7 -0
- package/core/di/errors/ModuleOwnedProviderConflictError.ts +8 -0
- package/core/di/errors/NamedDependencyNotFoundError.ts +7 -0
- package/core/di/errors/OptionsValidationError.ts +7 -0
- package/core/di/errors/ProviderNotFoundError.ts +10 -0
- package/core/di/errors/ScopeDisposedError.ts +7 -0
- package/core/di/errors/ScopedServiceFromRootError.ts +9 -0
- package/core/di/errors/ServiceValidationError.ts +7 -0
- package/core/di/errors/index.ts +14 -0
- package/core/di/extensions/activator.ts +39 -0
- package/core/di/extensions/application.ts +117 -0
- package/core/di/extensions/hosted-service.ts +124 -0
- package/core/di/extensions/index.ts +23 -0
- package/core/di/extensions/options-reloadable.ts +137 -0
- package/core/di/extensions/options.ts +91 -0
- package/core/di/extensions/service-provider-token.ts +21 -0
- package/core/di/index.ts +97 -0
- package/core/di/internal/GraphValidator.ts +119 -0
- package/core/di/internal/HostedServicePlan.ts +158 -0
- package/core/di/internal/NamedTokenIndex.ts +55 -0
- package/core/di/internal/OpenGenericRegistration.ts +14 -0
- package/core/di/internal/ResolutionPlan.ts +18 -0
- package/core/di/internal/ResolutionScopeState.ts +19 -0
- package/core/di/internal/ResolutionTracker.ts +153 -0
- package/core/di/internal/ScopeLifecycle.ts +159 -0
- package/core/di/internal/ServiceRegistration.ts +14 -0
- package/core/di/internal/ServiceRegistry.ts +252 -0
- package/core/di/internal/classDeps.ts +38 -0
- package/core/di/internal/disposal.ts +58 -0
- package/core/di/internal/providerDeps.ts +26 -0
- package/core/di/module/DI.ts +146 -0
- package/core/di/module/Global.ts +25 -0
- package/core/di/module/Module.ts +44 -0
- package/core/di/module/ModuleRegistrar.ts +69 -0
- package/core/di/module/autoDeps.ts +39 -0
- package/core/di/module/classProviderHooks.ts +66 -0
- package/core/di/module/collectModuleConfigs.ts +57 -0
- package/core/di/module/collectModuleControllers.ts +53 -0
- package/core/di/module/collectModuleUiProfiles.ts +53 -0
- package/core/di/module/createContainer.ts +261 -0
- package/core/di/module/encapsulation.ts +416 -0
- package/core/di/module/encapsulationHooks.ts +36 -0
- package/core/di/module/generatedProviderAttachments.ts +102 -0
- package/core/di/module/index.ts +41 -0
- package/core/di/module/moduleExtensions.ts +35 -0
- package/core/di/module/moduleNameBinding.ts +136 -0
- package/core/di/module/moduleOwnedProviderContributors.ts +409 -0
- package/core/di/module/providerSelection.ts +90 -0
- package/core/di/module/shortcuts.ts +111 -0
- package/core/di/module/types/BazisModule.ts +71 -0
- package/core/di/module/types/DiRegistrar.ts +24 -0
- package/core/di/module/types/index.ts +2 -0
- package/core/di/provider/index.ts +26 -0
- package/core/di/provider/providerGuards.ts +17 -0
- package/core/di/provider/types/AsyncFactoryProvider.ts +15 -0
- package/core/di/provider/types/ClassProvider.ts +18 -0
- package/core/di/provider/types/FactoryProvider.ts +20 -0
- package/core/di/provider/types/KeyedDependency.ts +20 -0
- package/core/di/provider/types/LazyDependency.ts +31 -0
- package/core/di/provider/types/NamedDependency.ts +16 -0
- package/core/di/provider/types/Provider.ts +10 -0
- package/core/di/provider/types/ProviderDefinition.ts +11 -0
- package/core/di/provider/types/ProviderDependencyList.ts +11 -0
- package/core/di/provider/types/ProviderLifetime.ts +1 -0
- package/core/di/provider/types/ProviderOwnership.ts +7 -0
- package/core/di/provider/types/ResolvedDeps.ts +18 -0
- package/core/di/provider/types/ValueProvider.ts +6 -0
- package/core/di/provider/types/index.ts +13 -0
- package/core/di/token.ts +84 -0
- package/core/di/types/BuildServiceProviderOptions.ts +4 -0
- package/core/di/types/ServiceKey.ts +1 -0
- package/core/di/types/ServiceResolver.ts +16 -0
- package/core/di/types/index.ts +3 -0
- package/core/generatedFingerprint.ts +60 -0
- package/core/generatedRuntime.ts +187 -0
- package/core/grpc/Grpc.module.ts +23 -0
- package/core/grpc/GrpcBinding.contract.ts +35 -0
- package/core/grpc/GrpcCall.ts +73 -0
- package/core/grpc/GrpcClient.ts +172 -0
- package/core/grpc/GrpcClientCall.ts +267 -0
- package/core/grpc/GrpcError.ts +19 -0
- package/core/grpc/GrpcRequest.binding.ts +45 -0
- package/core/grpc/GrpcServer.ts +204 -0
- package/core/grpc/GrpcStatus.ts +8 -0
- package/core/grpc/GrpcTransport.ts +174 -0
- package/core/grpc/Metadata.ts +73 -0
- package/core/grpc/ProtoCodec.ts +225 -0
- package/core/grpc/ProtoParser.ts +192 -0
- package/core/grpc/ProtoReader.ts +34 -0
- package/core/grpc/ProtoSchema.ts +52 -0
- package/core/grpc/ServerCredentials.ts +30 -0
- package/core/grpc/clientContracts.ts +39 -0
- package/core/grpc/contracts.ts +45 -0
- package/core/grpc/decorators.ts +82 -0
- package/core/grpc/grpcClientProvider.ts +9 -0
- package/core/grpc/index.ts +17 -0
- package/core/grpc/moduleControllers.ts +38 -0
- package/core/grpc/protobuf.ts +80 -0
- package/core/grpc/serviceDefinition.ts +20 -0
- package/core/http/Authorization/Authorize.ts +52 -0
- package/core/http/Authorization/authorizeComposer.ts +31 -0
- package/core/http/Authorization/metadata.ts +158 -0
- package/core/http/Binding/ParameterBinder.ts +109 -0
- package/core/http/Binding/RequestModel.ts +27 -0
- package/core/http/Binding/autoBindings.ts +125 -0
- package/core/http/Binding/bindings.ts +19 -0
- package/core/http/Binding/convert.ts +48 -0
- package/core/http/Binding/generatedSpec.ts +18 -0
- package/core/http/Binding/listModelRegistry.ts +47 -0
- package/core/http/Binding/modelBinder.ts +345 -0
- package/core/http/Binding/modelValidator.ts +30 -0
- package/core/http/Binding/requestModelRegistry.ts +117 -0
- package/core/http/Decorators/attributes.ts +92 -0
- package/core/http/Decorators/controller.ts +24 -0
- package/core/http/Decorators/metadata.ts +107 -0
- package/core/http/Decorators/routes.ts +131 -0
- package/core/http/Errors/HttpError.ts +92 -0
- package/core/http/HttpContext/HttpContext.ts +148 -0
- package/core/http/HttpContext/ResponseBuilder.ts +37 -0
- package/core/http/HttpContext/inspectableRedirects.ts +47 -0
- package/core/http/HttpContext/principal.ts +24 -0
- package/core/http/HttpContext/responseLifetime.ts +45 -0
- package/core/http/HttpServer.ts +627 -0
- package/core/http/Middleware/accessLog.ts +90 -0
- package/core/http/Middleware/cors.ts +160 -0
- package/core/http/Middleware/errorHandler.ts +100 -0
- package/core/http/Middleware/pipeline.ts +21 -0
- package/core/http/Middleware/rateLimit.ts +104 -0
- package/core/http/Middleware/securityHeaders.ts +118 -0
- package/core/http/Middleware/types.ts +19 -0
- package/core/http/OpenApi/generatedOpenApiRegistry.ts +102 -0
- package/core/http/OpenApi/openApiDocs.ts +75 -0
- package/core/http/OpenApi/openApiDocument.ts +356 -0
- package/core/http/README.md +139 -0
- package/core/http/Results/HttpResult.ts +19 -0
- package/core/http/Results/normalize.ts +93 -0
- package/core/http/Results/results.ts +70 -0
- package/core/http/Routing/Router.ts +201 -0
- package/core/http/Routing/RouterBuilder.ts +184 -0
- package/core/http/Routing/template.ts +112 -0
- package/core/http/SPEC.md +981 -0
- package/core/http/Versioning/VersionReader.ts +20 -0
- package/core/http/WebSocketUpgrade.ts +29 -0
- package/core/http/composeRouteMiddlewareComposers.ts +21 -0
- package/core/http/correlation/createCorrelationIdMiddleware.ts +79 -0
- package/core/http/httpModule.ts +48 -0
- package/core/http/index.ts +140 -0
- package/core/http/middlewareTokens.ts +48 -0
- package/core/http/options.ts +134 -0
- package/core/http-client/index.ts +105 -0
- package/core/infra/Infra.ts +158 -0
- package/core/infra/InfraConnector.ts +86 -0
- package/core/infra/InfraLifecycle.ts +86 -0
- package/core/infra/cache/RedisDistributedCacheBackend.ts +88 -0
- package/core/infra/cache/RedisDistributedCacheDriver.ts +186 -0
- package/core/infra/cache/index.ts +7 -0
- package/core/infra/connectorConfig.ts +29 -0
- package/core/infra/connectorIdentity.ts +39 -0
- package/core/infra/connectors/codex/CodexAppServer.ts +146 -0
- package/core/infra/connectors/codex/CodexAppServerClient.ts +258 -0
- package/core/infra/connectors/codex/CodexPolicy.ts +114 -0
- package/core/infra/connectors/codex/CodexTurn.ts +133 -0
- package/core/infra/connectors/codex/contracts.ts +82 -0
- package/core/infra/connectors/codex.ts +26 -0
- package/core/infra/connectors/llm.ts +78 -0
- package/core/infra/connectors/llmRouter.ts +443 -0
- package/core/infra/connectors/openaiCompatible.ts +590 -0
- package/core/infra/connectors/openaiTextStream.ts +134 -0
- package/core/infra/connectors/opensearch.ts +307 -0
- package/core/infra/connectors/postgres.ts +105 -0
- package/core/infra/connectors/redis.ts +132 -0
- package/core/infra/index.ts +58 -0
- package/core/kernel/ApplicationLifetime.ts +91 -0
- package/core/kernel/Bazis.ts +73 -0
- package/core/kernel/Environment.ts +53 -0
- package/core/kernel/Kernel.ts +391 -0
- package/core/kernel/KernelBuilder.ts +172 -0
- package/core/kernel/LifecycleCoordinator.ts +204 -0
- package/core/kernel/README.md +66 -0
- package/core/kernel/SupervisedHostedService.ts +147 -0
- package/core/kernel/config/ConfigRegistry.ts +48 -0
- package/core/kernel/config/Configuration.ts +110 -0
- package/core/kernel/config/README.md +62 -0
- package/core/kernel/config/Secret.ts +29 -0
- package/core/kernel/config/addConfigOptions.ts +63 -0
- package/core/kernel/config/defineConfig.ts +211 -0
- package/core/kernel/config/sources.ts +123 -0
- package/core/kernel/correlation/requestContext.ts +57 -0
- package/core/kernel/errors/ConfigKeyMissingError.ts +7 -0
- package/core/kernel/errors/KernelError.ts +7 -0
- package/core/kernel/errors/ShutdownTimeoutError.ts +7 -0
- package/core/kernel/errors/StartupAbortedError.ts +7 -0
- package/core/kernel/errors/StartupTimeoutError.ts +7 -0
- package/core/kernel/errors/index.ts +5 -0
- package/core/kernel/events/EventBus.ts +140 -0
- package/core/kernel/events/EventToken.ts +17 -0
- package/core/kernel/events/eventSubscribers.ts +126 -0
- package/core/kernel/events/kernelEvents.ts +16 -0
- package/core/kernel/events/onEvent.ts +32 -0
- package/core/kernel/health/HealthCheckContracts.ts +42 -0
- package/core/kernel/health/HealthService.ts +93 -0
- package/core/kernel/index.ts +96 -0
- package/core/kernel/internal/awaitAbortable.ts +18 -0
- package/core/kernel/internal/awaitShutdown.ts +21 -0
- package/core/kernel/internal/reportDiagnosticFailure.ts +8 -0
- package/core/kernel/internal/validateTimeout.ts +8 -0
- package/core/kernel/lifecycleHooks.ts +18 -0
- package/core/kernel/logging/ConsoleLogger.ts +68 -0
- package/core/kernel/logging/Logger.ts +22 -0
- package/core/kernel/types/ConfigSource.ts +9 -0
- package/core/kernel/types/EnvironmentName.ts +1 -0
- package/core/kernel/types/KernelOptions.ts +23 -0
- package/core/kernel/types/LifecycleHook.ts +18 -0
- package/core/kernel/types/index.ts +4 -0
- package/core/orm/DATABASE_PROVIDER.ts +5 -0
- package/core/orm/OrmHostedPlan.validator.ts +55 -0
- package/core/orm/OrmLifecycle.ts +146 -0
- package/core/orm/OrmOwnedStoreLifecycle.ts +96 -0
- package/core/orm/buildOrmProviders.ts +152 -0
- package/core/orm/databaseConnector.ts +108 -0
- package/core/orm/encapsulationHook.ts +19 -0
- package/core/orm/index.ts +95 -0
- package/core/orm/listQuery.ts +198 -0
- package/core/orm/ormModule.ts +173 -0
- package/core/orm/ownedStoreContributions.ts +195 -0
- package/core/orm/registerRepositories.ts +27 -0
- package/core/orm/repository.ts +45 -0
- package/core/orm/strictSchemaHostedIdentity.ts +17 -0
- package/core/scripts/agent-codegen.ts +1166 -0
- package/core/scripts/di-generate-target.ts +90 -0
- package/core/scripts/di-generate.ts +1837 -0
- package/core/scripts/orm-predicate-codegen.ts +33 -0
- package/core/scripts/request-model-codegen.ts +326 -0
- package/core/websocket/DESIGN.md +297 -0
- package/core/websocket/WsRateLimiter.ts +101 -0
- package/core/websocket/adapter/adapter.interface.ts +45 -0
- package/core/websocket/adapter/in-memory.adapter.ts +190 -0
- package/core/websocket/adapter/redis-delivery-scripts.ts +135 -0
- package/core/websocket/adapter/redis-delivery-store.ts +86 -0
- package/core/websocket/adapter/redis-operations.ts +33 -0
- package/core/websocket/adapter/redis.adapter.ts +218 -0
- package/core/websocket/codec/binary.codec.ts +87 -0
- package/core/websocket/codec/json.codec.ts +34 -0
- package/core/websocket/codec/packet-codec.interface.ts +17 -0
- package/core/websocket/decorators.ts +165 -0
- package/core/websocket/explorer.ts +126 -0
- package/core/websocket/index.ts +78 -0
- package/core/websocket/middleware.ts +146 -0
- package/core/websocket/packet-codec.ts +75 -0
- package/core/websocket/reliable-delivery.ts +56 -0
- package/core/websocket/session-creation.ts +16 -0
- package/core/websocket/session-manager.ts +856 -0
- package/core/websocket/socket-wrapper.ts +314 -0
- package/core/websocket/topic-cache.ts +59 -0
- package/core/websocket/types.ts +122 -0
- package/core/websocket/websocketModule.ts +96 -0
- package/core/websocket/ws-dispatch.ts +123 -0
- package/core/websocket/ws-server.ts +1707 -0
- package/index.ts +281 -0
- package/library/boundary/diagnostics-v1.ts +136 -0
- package/library/boundary/index.ts +73 -0
- package/library/boundary/json/decodeBoundedJsonV1.ts +518 -0
- package/library/boundary/json/limits-v1.ts +46 -0
- package/library/boundary/json/normalizeBoundedJsonV1.ts +256 -0
- package/library/boundary/json/types-v1.ts +11 -0
- package/library/boundary/schema/boundarySchemaHashV1.ts +6 -0
- package/library/boundary/schema/collectBoundaryValueDiagnosticsV1.ts +325 -0
- package/library/boundary/schema/decodeBoundarySchemaV1.ts +646 -0
- package/library/boundary/schema/index.ts +8 -0
- package/library/boundary/schema/types-v1.ts +99 -0
- package/library/boundary/schema/validateBoundaryValueV1.ts +58 -0
- package/library/boundary/serialization/canonicalJsonV1.ts +66 -0
- package/library/http-client/HttpClient.ts +969 -0
- package/library/http-client/HttpClientFactory.ts +45 -0
- package/library/http-client/errors.ts +68 -0
- package/library/http-client/index.ts +43 -0
- package/library/http-client/interceptors.ts +40 -0
- package/library/http-client/progress.ts +62 -0
- package/library/http-client/redirectProtocol.ts +6 -0
- package/library/http-client/serialize.ts +133 -0
- package/library/http-client/types.ts +174 -0
- package/library/jsonapi/ListQueryError.ts +25 -0
- package/library/jsonapi/ListRequest.ts +37 -0
- package/library/jsonapi/decorators.ts +161 -0
- package/library/jsonapi/document.ts +124 -0
- package/library/jsonapi/index.ts +40 -0
- package/library/jsonapi/parseListQuery.ts +291 -0
- package/library/jsonapi/types.ts +125 -0
- package/library/jwt/JwtEncoder.ts +40 -0
- package/library/jwt/JwtKeyRing.ts +164 -0
- package/library/jwt/JwtValidator.ts +210 -0
- package/library/jwt/TokenIssuer.ts +149 -0
- package/library/jwt/TokenService.ts +51 -0
- package/library/jwt/base64url.ts +61 -0
- package/library/jwt/claims.ts +36 -0
- package/library/jwt/errors.ts +44 -0
- package/library/jwt/index.ts +59 -0
- package/library/jwt/limits.ts +8 -0
- package/library/jwt/signing/Hs256Algorithm.ts +62 -0
- package/library/jwt/signing/Rs256Algorithm.ts +133 -0
- package/library/jwt/signing/SigningAlgorithm.ts +18 -0
- package/library/jwt/signing/pem.ts +30 -0
- package/library/openapi/codegen.ts +875 -0
- package/library/openapi/document.ts +326 -0
- package/library/openapi/index.ts +13 -0
- package/library/openapi/types.ts +69 -0
- package/library/openapi/ui.ts +182 -0
- package/library/orm/DatabaseFacade.ts +209 -0
- package/library/orm/DbContext.ts +107 -0
- package/library/orm/DbContextFactory.ts +25 -0
- package/library/orm/DbContextOptions.ts +33 -0
- package/library/orm/Metadata/DynamicModelBuilder.ts +497 -0
- package/library/orm/Metadata/KeyTuple.ts +36 -0
- package/library/orm/Metadata/ModelBuilder.ts +299 -0
- package/library/orm/Metadata/OrmModel.ts +80 -0
- package/library/orm/Metadata/ValueConverter.ts +57 -0
- package/library/orm/Metadata/conventions.ts +54 -0
- package/library/orm/Metadata/decorators.ts +396 -0
- package/library/orm/Metadata/types.ts +140 -0
- package/library/orm/Providers/OwnedStoreCatalog.reader.ts +1802 -0
- package/library/orm/Providers/PostgresDialect.ts +234 -0
- package/library/orm/Providers/PostgresProvider.ts +1494 -0
- package/library/orm/Providers/PostgresSchema.decoder.ts +107 -0
- package/library/orm/Providers/limits.ts +29 -0
- package/library/orm/Providers/operationDeadline.ts +43 -0
- package/library/orm/Providers/ormOwnedStoreRuntime.ts +19 -0
- package/library/orm/Providers/ormTransactionRuntime.ts +117 -0
- package/library/orm/Providers/propertyConversion.ts +14 -0
- package/library/orm/Providers/resolvedForeignKey.ts +16 -0
- package/library/orm/Providers/transactionCallbacks.ts +45 -0
- package/library/orm/Providers/transactionOutcome.ts +82 -0
- package/library/orm/Providers/transactionScopes.ts +78 -0
- package/library/orm/Providers/types.ts +207 -0
- package/library/orm/Query/DbSet.ts +78 -0
- package/library/orm/Query/EntityQuery.ts +247 -0
- package/library/orm/Query/ImmediateMutations.ts +226 -0
- package/library/orm/Query/IncludeLoader.ts +200 -0
- package/library/orm/Query/QueryPlan.ts +55 -0
- package/library/orm/Query/SqlTranslator.ts +195 -0
- package/library/orm/Query/conditions.ts +127 -0
- package/library/orm/Query/materialize.ts +39 -0
- package/library/orm/README.md +256 -0
- package/library/orm/Repository/README.md +684 -0
- package/library/orm/Repository/Repository.ts +68 -0
- package/library/orm/Saving/CommandBuilder.ts +139 -0
- package/library/orm/Saving/ExecutionStrategy.ts +128 -0
- package/library/orm/Saving/SaveExecutor.ts +413 -0
- package/library/orm/Saving/applyConventions.ts +64 -0
- package/library/orm/Schema/CheckExpression.ts +327 -0
- package/library/orm/Schema/ExactSchemaVerifier.ts +168 -0
- package/library/orm/Schema/ExpectedSchema.ts +43 -0
- package/library/orm/Schema/MigrationRunner.ts +146 -0
- package/library/orm/Schema/Migrator.ts +73 -0
- package/library/orm/Schema/OrmOwnedStore.ts +123 -0
- package/library/orm/Schema/OwnedStoreAdmission.ts +752 -0
- package/library/orm/Schema/OwnedStoreCanonical.ts +273 -0
- package/library/orm/Schema/OwnedStoreCatalog.ts +1325 -0
- package/library/orm/Schema/SafeAdditiveSchema.ts +100 -0
- package/library/orm/Schema/SchemaAdmission.ts +62 -0
- package/library/orm/Schema/SchemaDiffer.ts +78 -0
- package/library/orm/Schema/formatSchemaDifferences.ts +62 -0
- package/library/orm/Schema/introspection.ts +52 -0
- package/library/orm/Schema/physicalColumnTypes.ts +37 -0
- package/library/orm/Schema/tableKey.ts +26 -0
- package/library/orm/Tracking/ChangeTracker.ts +448 -0
- package/library/orm/Tracking/EntityState.ts +13 -0
- package/library/orm/Transactions/OrmTransaction.ts +30 -0
- package/library/orm/Transactions/TransactionScopeCoordinator.ts +377 -0
- package/library/orm/errors.ts +190 -0
- package/library/orm/index.ts +162 -0
- package/library/orm/runtime.ts +14 -0
- package/library/redaction/index.ts +166 -0
- package/library/ui/UiProfile.ts +77 -0
- package/library/ui/compiled-v1.ts +131 -0
- package/library/ui/compiler/compileUiSurfaceV1.ts +717 -0
- package/library/ui/compiler/contracts-v1.ts +25 -0
- package/library/ui/compiler/index.ts +12 -0
- package/library/ui/compiler/openApiIndex.ts +246 -0
- package/library/ui/defineUiProfile.ts +340 -0
- package/library/ui/diagnostics-v1.ts +33 -0
- package/library/ui/index.ts +129 -0
- package/library/ui/profile-v1.ts +191 -0
- package/library/ui/serialization.ts +130 -0
- package/library/ui/uiProfileAuthoring.ts +289 -0
- package/library/ui/uiProfileAuthoringMetadata.ts +78 -0
- package/library/validation/MessageRegistry.ts +144 -0
- package/library/validation/README.md +62 -0
- package/library/validation/RuleCompiler.ts +183 -0
- package/library/validation/RuleEngine.ts +401 -0
- package/library/validation/SPEC.md +579 -0
- package/library/validation/ValidationError.ts +37 -0
- package/library/validation/ValidationResult.ts +63 -0
- package/library/validation/Validator.ts +101 -0
- package/library/validation/index.ts +16 -0
- package/library/validation/metadata.ts +69 -0
- package/library/validation/modelValidatorAdapter.ts +119 -0
- package/library/validation/types/ValidationCode.ts +69 -0
- package/library/validation/types/ValidatorOptions.ts +153 -0
- package/package.json +80 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { parseModuleName, type ModuleNaming } from "../naming";
|
|
2
|
+
import { validatePackParts } from "../parseCli";
|
|
3
|
+
import { buildModuleTemplates, type ModuleTemplateFiles } from "./module";
|
|
4
|
+
|
|
5
|
+
export function buildPackTemplates(naming: ModuleNaming, partNames: readonly string[]): readonly ModuleTemplateFiles[] {
|
|
6
|
+
validatePackParts(partNames);
|
|
7
|
+
const parts = partNames.map((name) => {
|
|
8
|
+
const part = parseModuleName(name);
|
|
9
|
+
// A part names a responsibility (Tables), not a CRUD entity (Table).
|
|
10
|
+
return { ...part, entity: part.module, folder: `${part.folder}_module` };
|
|
11
|
+
});
|
|
12
|
+
if (parts.some((part) => part.moduleClass === naming.moduleClass)) {
|
|
13
|
+
throw new Error("A pack and its parts must have distinct module class names.");
|
|
14
|
+
}
|
|
15
|
+
return [
|
|
16
|
+
{
|
|
17
|
+
relativePath: `${naming.module}.module.ts`,
|
|
18
|
+
content: `import { Module } from "bazis/core/di";
|
|
19
|
+
${parts.map((part) => `import { ${part.moduleClass} } from "./${part.folder}/${part.module}.module";`).join("\n")}
|
|
20
|
+
|
|
21
|
+
@Module({
|
|
22
|
+
imports: [${parts.map((part) => part.moduleClass).join(", ")}],
|
|
23
|
+
exports: [],
|
|
24
|
+
})
|
|
25
|
+
export class ${naming.moduleClass} {}
|
|
26
|
+
`,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
relativePath: "MODULE.md",
|
|
30
|
+
content: `# ${naming.moduleClass}
|
|
31
|
+
|
|
32
|
+
Passport version: 1.0. Type: composite.
|
|
33
|
+
Status: composition scaffold generated; the parts are not implemented yet.
|
|
34
|
+
Entry: [${naming.module}.module.ts](${naming.module}.module.ts).
|
|
35
|
+
Before changing it, read AGENTS.md and docs/architecture/MODULE_ARCHITECTURE.md.
|
|
36
|
+
|
|
37
|
+
## Responsibility and parts
|
|
38
|
+
|
|
39
|
+
The root combines self-contained responsibilities; the author fixes the exact
|
|
40
|
+
data boundaries and invariants of each part in its passport before implementing
|
|
41
|
+
it. If the responsibilities are not self-contained, use one atomic module.
|
|
42
|
+
|
|
43
|
+
| Part | Responsibility and data | Public entries | Depends on | Passport |
|
|
44
|
+
| --- | --- | --- | --- | --- |
|
|
45
|
+
${parts.map((part) => `| ${part.moduleClass} | Not defined yet: ${part.input} | Module class, no arguments | imports: [] | [MODULE.md](${part.folder}/MODULE.md) |`).join("\n")}
|
|
46
|
+
|
|
47
|
+
## Layout and wiring
|
|
48
|
+
|
|
49
|
+
Root files: this passport, ${naming.module}.module.ts.
|
|
50
|
+
${parts.map((part) => `Directory ${part.folder}: ${part.module}.module.ts and MODULE.md.`).join("\n")}
|
|
51
|
+
imports: [${parts.map((part) => part.moduleClass).join(", ")}]. exports: [].
|
|
52
|
+
TypeScript entry: ${naming.moduleClass}; no factory or input fields.
|
|
53
|
+
Public tokens of the parts are re-exported by the root explicitly when needed.
|
|
54
|
+
Domain providers, ORM, HTTP, config, background, UI, AI and events do not
|
|
55
|
+
belong to the root; the atomic parts own them. Consumers import the root.
|
|
56
|
+
Orchestration across parts also gets its own atomic owner.
|
|
57
|
+
|
|
58
|
+
## Inputs, outputs, errors and lifecycle
|
|
59
|
+
|
|
60
|
+
The root only wires classes; it has no public operations or effects of its own.
|
|
61
|
+
Arguments, data, required/null/default, validation, results, errors, scopes and
|
|
62
|
+
effects of future operations are described in the parts' passports.
|
|
63
|
+
Links between parts, shared infrastructure and needed exports are not defined yet.
|
|
64
|
+
|
|
65
|
+
## Checks
|
|
66
|
+
|
|
67
|
+
None run for the new pack. After implementation: codegen, the composition,
|
|
68
|
+
exports, no cycles or duplicate registrations, the parts' tests.
|
|
69
|
+
A generated scaffold does not prove the pack is ready.
|
|
70
|
+
`,
|
|
71
|
+
},
|
|
72
|
+
...parts.flatMap((part) => buildModuleTemplates(part, "empty").map((file) => ({
|
|
73
|
+
relativePath: `${part.folder}/${file.relativePath}`, content: file.content,
|
|
74
|
+
}))),
|
|
75
|
+
];
|
|
76
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { ModuleNaming } from "../naming";
|
|
2
|
+
import type { ModuleTemplateProfile } from "./module";
|
|
3
|
+
|
|
4
|
+
export function modulePassport(n: ModuleNaming, profile: ModuleTemplateProfile): string {
|
|
5
|
+
const header = `# ${n.moduleClass}
|
|
6
|
+
|
|
7
|
+
Passport version: 1.0. Type: atomic. CLI profile: ${profile}.
|
|
8
|
+
Status: scaffold generated; the domain implementation and checks are not done.
|
|
9
|
+
Entry: [${n.module}.module.ts](${n.module}.module.ts), class ${n.moduleClass}, no arguments.
|
|
10
|
+
|
|
11
|
+
Before changing it, read AGENTS.md and docs/architecture/MODULE_ARCHITECTURE.md.
|
|
12
|
+
This passport covers the scaffold files. The author defines the responsibility
|
|
13
|
+
and fields before implementing the domain function and updates this passport
|
|
14
|
+
together with the code.
|
|
15
|
+
`;
|
|
16
|
+
if (profile === "empty") return `${header}
|
|
17
|
+
## Responsibility and contents
|
|
18
|
+
|
|
19
|
+
The domain responsibility is not defined yet. The scaffold is meant for one
|
|
20
|
+
self-contained function; the owner of its data and invariants is decided when
|
|
21
|
+
it is implemented. Contents: this passport and ${n.module}.module.ts.
|
|
22
|
+
imports: []; exports: []. Public TypeScript entry: class ${n.moduleClass};
|
|
23
|
+
no factory or arguments. DI providers, ORM, HTTP, config, background, UI, AI and
|
|
24
|
+
events are not used yet. Do not create directories in advance.
|
|
25
|
+
|
|
26
|
+
## Inputs, outputs and effects
|
|
27
|
+
|
|
28
|
+
Connected through the imports of the host module. There are no input fields,
|
|
29
|
+
public operations, domain errors or external effects yet. When an operation is
|
|
30
|
+
added, describe its signature, every input (type, source, required, null,
|
|
31
|
+
default, validation, example), the output and the errors.
|
|
32
|
+
|
|
33
|
+
## Checks
|
|
34
|
+
|
|
35
|
+
None run for the new module. Generated files do not prove the domain function
|
|
36
|
+
works; check the contents, run codegen and the relevant tests.
|
|
37
|
+
`;
|
|
38
|
+
|
|
39
|
+
const e = n.entity;
|
|
40
|
+
const m = n.module;
|
|
41
|
+
return `${header}
|
|
42
|
+
## Responsibility and components
|
|
43
|
+
|
|
44
|
+
A sample ${e} CRUD with name/email fields. It is a schema example, not the
|
|
45
|
+
requirements of the ${n.input} domain; replace the fields before using it for a
|
|
46
|
+
real function. One module owns the entity, the service invariants and the
|
|
47
|
+
adapters that access it.
|
|
48
|
+
|
|
49
|
+
| Component | File | Input / dependency | Output / effect |
|
|
50
|
+
| --- | --- | --- | --- |
|
|
51
|
+
| ${n.moduleClass} | [${n.module}.module.ts](${n.module}.module.ts) | host imports | ORM, DI, HTTP${profile === "full" ? ", background, AI" : ""} |
|
|
52
|
+
| ${e} | [model/${m}.model.ts](model/${m}.model.ts) | Fields below | Table ${n.route} |
|
|
53
|
+
| ${m}DbContext | [model/${m}.dbContext.ts](model/${m}.dbContext.ts) | Shared host ORM provider | DbSet ${n.collection} |
|
|
54
|
+
| I${m}Service / ${m}Service | [services/${m}.service.ts](services/${m}.service.ts), [token](services/I${m}.service.ts) | ${m}DbContext${profile === "full" ? ", ICache" : ""} | CRUD, count, summary |
|
|
55
|
+
| ${m}Controller | [http/${m}.controller.ts](http/${m}.controller.ts) | I${m}Service, HTTP request | HTTP operations below |
|
|
56
|
+
| Create${e}Request / Update${e}Request | [requests](http/contracts/${m}.requests.ts) | JSON body | RequestModel + Validator |
|
|
57
|
+
| ${e}Response / ${m}Summary / to${e}Response | [responses](http/contracts/${m}.responses.ts) | ORM entity | Public data projection |
|
|
58
|
+
| ${m}ListQuery | [list](http/contracts/${m}List.query.ts) | Query string | ListQuery, filters/sorting/pages |
|
|
59
|
+
${profile === "full" ? `| ${m}Reporter | [background](background/${m}.reporter.ts) | ServiceProvider, Logger, AbortSignal | Runs count and logs it |
|
|
60
|
+
| ${m}SummaryTool | [tool](ai/tools/${m}Summary.tool.ts) | I${m}Service, input, context | Summary for the agent |
|
|
61
|
+
| ${m}AnalystAgent | [agent](ai/agents/${m}Analyst.agent.ts) | Prepare${m}BriefRequest | ${m}BriefDocument via AgentRuntime |
|
|
62
|
+
| AI DTO | [contracts](ai/contracts/${m}.brief.ts) | topic, audience | title, bullets |
|
|
63
|
+
` : ""}
|
|
64
|
+
|
|
65
|
+
## Wiring, DI and data
|
|
66
|
+
|
|
67
|
+
No imports: the host provides the scaffold's functional dependencies.
|
|
68
|
+
exports: [I${m}Service]. TypeScript contract: services/I${e}.service.ts;
|
|
69
|
+
HTTP access is defined by the controller and the host policy, separately from DI exports.
|
|
70
|
+
I${m}Service → ${m}Service, scoped lifetime. The context and DbSet belong to the ORM.
|
|
71
|
+
${profile === "full" ? `${m}SummaryTool is listed in tools: [${m}SummaryTool]; the framework registers it as scoped, the tool is not exported.
|
|
72
|
+
The service uses cachedScoped; ICache comes from the host cacheModule.
|
|
73
|
+
The background service gets its own scope per tick and disposes it in finally.
|
|
74
|
+
The host also provides auth from src/app/modules/auth (TokenKind.Admin/Client),
|
|
75
|
+
AgentRuntime and the reasoning modelProfile. The CLI does not create them.
|
|
76
|
+
` : ""}Constructor dependencies, including ${m}DbContext, are wired by codegen.
|
|
77
|
+
No manual deps arrays. UI, events and own configuration are not used.
|
|
78
|
+
|
|
79
|
+
ORM: context ${m}DbContext, entities [${e}], shared host provider.
|
|
80
|
+
Table ${n.route}${profile === "full" ? `, schema ${n.dbSchema}` : ""}.
|
|
81
|
+
Only the module decides how tables are created: \`ensureCreated: true\` or
|
|
82
|
+
\`migrateOnStart: true\` in \`ormBazis\`. The scaffold sets neither, so the host
|
|
83
|
+
must provide the schema before requests. The CLI and codegen do not create the database.
|
|
84
|
+
|
|
85
|
+
| Model / response field | Type | null | Initial value / owner |
|
|
86
|
+
| --- | --- | --- | --- |
|
|
87
|
+
| id | string UUID | no | Empty string before saving; the ORM assigns the value |
|
|
88
|
+
| name | string | no | Empty string in the model; comes from the body on create |
|
|
89
|
+
| email | string | no | Empty string in the model; from the body on create; unique DB index |
|
|
90
|
+
| createdAt | Date / ISO string in JSON | no | Date(0) before saving; ORM createdAt |
|
|
91
|
+
| updatedAt | Date / ISO string in JSON | no | Date(0) before saving; ORM updatedAt |
|
|
92
|
+
|
|
93
|
+
## Public entries and fields
|
|
94
|
+
|
|
95
|
+
The host sets the HTTP prefix; local route /${n.route}.
|
|
96
|
+
${profile === "full" ? "Read: Admin or Client. Write: Admin. Checked by HTTP Authorize.\n" : "No local Authorize checks; access is decided by the host policy.\n"}
|
|
97
|
+
| HTTP / service operation | Input | Result / effect |
|
|
98
|
+
| --- | --- | --- |
|
|
99
|
+
| GET /${n.route}, controller list(query, ctx) → service getAll(query) | ListQuery | Service: PageResult<${e}Response> (items, total); controller: ListDocument<${e}Response>, HTTP 200 |
|
|
100
|
+
| GET /${n.route}/:id, getById(id) | id | ${e}Response or null; HTTP 200 / 404 |
|
|
101
|
+
| POST /${n.route}, create(body) | Create${e}Request | ${e}Response; HTTP 201, Location from the current path and id; INSERT |
|
|
102
|
+
| PUT /${n.route}/:id, update(id, body) | id, Update${e}Request | ${e}Response or null; HTTP 200 / 404; only the fields sent are changed |
|
|
103
|
+
| DELETE /${n.route}/:id, delete(id) | id | boolean; HTTP 204 / 404; physical delete |
|
|
104
|
+
| count() | None | Promise<number>; SELECT count |
|
|
105
|
+
| summary() | None | Promise<${m}Summary>: count — total; names — up to 20 names ordered by id; SELECT count and a bounded projection |
|
|
106
|
+
|
|
107
|
+
| Field | Type / source | Required | null | Default | Validation | Example |
|
|
108
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
109
|
+
| id | string / route or DI argument | To read/change/delete one record | no | none | UUID in the HTTP route; the service does not validate it | 123e4567-e89b-42d3-a456-426614174000 |
|
|
110
|
+
| body.name | string / JSON body | create: yes; update: no | no | none; a missing field leaves the record unchanged on update | Validator, 2–100 characters | Example |
|
|
111
|
+
| body.email | string / JSON body | create: yes; update: no | no | none; a missing field leaves the record unchanged on update | Validator, email, 3–120 characters; unique in the DB | guest@example.com |
|
|
112
|
+
| ctx | HttpContext / server | For controller create and list | no | HTTP pipeline | Not from JSON, holds the actual path; not passed to the service | /v1/${n.route} |
|
|
113
|
+
| query | ListQuery / query string or DI argument of getAll | Yes | no | ListRequest defaults | name: eq/contains/startsWith, email: eq/contains; sorting name/email/createdAt; HTTP page size 20, at most 100 | page[size]=20&sort=name |
|
|
114
|
+
|
|
115
|
+
The controller sets basePath for JSON:API links from ctx.path. The service
|
|
116
|
+
returns only items and total, without links or HTTP formatting. getAll reads
|
|
117
|
+
without tracking and runs count plus SELECT with LIMIT/OFFSET. A direct DI call
|
|
118
|
+
passes a parsed ListQuery; the shared ORM paginate caps limit at 1000.
|
|
119
|
+
|
|
120
|
+
Example create body: {"name":"Example","email":"guest@example.com"}.
|
|
121
|
+
Example update body: {"name":"Updated"}. The service does not copy unknown
|
|
122
|
+
fields into the entity; hydration and unknown fields follow the host
|
|
123
|
+
RequestModel rules. HTTP validates the DTO, including JSON types of
|
|
124
|
+
string/number/boolean fields. Direct DI calls must pass correct values: the
|
|
125
|
+
service does not repeat the Validator. An invalid HTTP body gets 400; a
|
|
126
|
+
malformed UUID does not match the route; a missing record is 404. A duplicate
|
|
127
|
+
email makes saveChanges() reject with UniqueViolationError (bazis/core/orm); the
|
|
128
|
+
scaffold does not catch it, so it reaches the shared error handler as 500 —
|
|
129
|
+
catch it to answer 409.
|
|
130
|
+
${m}DbContext.saveChanges() saves every change collected in the context, not
|
|
131
|
+
only the current entity. IRepository.saveChanges() saves the same scope and
|
|
132
|
+
stays a compatible API. The CRUD has no outer transaction, retries or separate
|
|
133
|
+
cancellation protocol. Data changes and later effects are not in one
|
|
134
|
+
transaction. Before production the author defines the required invariants.
|
|
135
|
+
${profile === "full" ? fullPassport(n) : ""}
|
|
136
|
+
## Checks and readiness
|
|
137
|
+
|
|
138
|
+
For a new module, codegen, DI/HTTP/ORM and business scenarios are not qualified
|
|
139
|
+
yet. Fill in results after adapting the scaffold: PASS / FAIL / SKIP with
|
|
140
|
+
commands. Check input errors, the exports contract, schema readiness and
|
|
141
|
+
${profile === "full" ? "cache invalidation, auth, the background scope, AI metadata and " : ""}CRUD separately.
|
|
142
|
+
Existing files do not prove that the host infrastructure works.
|
|
143
|
+
`;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function fullPassport(n: ModuleNaming): string {
|
|
147
|
+
return `
|
|
148
|
+
## Cache, background and AI
|
|
149
|
+
|
|
150
|
+
GET list is cached for 30 seconds with query and user in the key. Service
|
|
151
|
+
getById — 60 seconds, key ${n.route}:id. The shared tag ${n.route} is evicted
|
|
152
|
+
with ICache.evictByTag after a successful saveChanges in create/update/delete.
|
|
153
|
+
The cache lives in process memory; consistency across processes needs a
|
|
154
|
+
separate application decision.
|
|
155
|
+
|
|
156
|
+
Background: intervalMs 60000, runImmediately false. Each tick gets an
|
|
157
|
+
AbortSignal from the runtime, creates a scope, runs count and logs it unless
|
|
158
|
+
the signal is aborted; dispose always runs. The SQL itself is not cancelled by
|
|
159
|
+
this signal.
|
|
160
|
+
|
|
161
|
+
Tool ${n.route}.summary: execute(input, context), sideEffect read.
|
|
162
|
+
Agent ${n.route}-analyst: prepareBrief(input), task prepare-${n.route}-brief;
|
|
163
|
+
modelProfile reasoning, maxSteps 3. The agentOutput method is a declaration
|
|
164
|
+
for the runtime. Calling prepareBrief directly does not run the LLM.
|
|
165
|
+
|
|
166
|
+
| AI input field | Type / source | Required | null | Default | Check | Example |
|
|
167
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
168
|
+
| topic | string / tool input or Prepare${n.module}BriefRequest | Yes | no | none | Validator required, minLength 3 | Daily summary |
|
|
169
|
+
| audience | string / Prepare${n.module}BriefRequest | Yes by Validator | no | operators when the DTO is created | Validator required, minLength 3 | operators |
|
|
170
|
+
| context | AgentToolExecutionContext / runtime | For the tool | no | runtime | agentName comes from the server context | agentName: ${n.route}-analyst |
|
|
171
|
+
|
|
172
|
+
Tool output: topic string, count number, names string[], agentName string
|
|
173
|
+
(empty when the context has no name). Agent output: title string, bullets
|
|
174
|
+
string[]. AgentRuntime validates AI inputs and reports their errors; the
|
|
175
|
+
scaffold adds no own permission checks for direct DI/tool calls. The host
|
|
176
|
+
decides which tools are allowed. The scaffold does not retry the tool.
|
|
177
|
+
`;
|
|
178
|
+
}
|