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.
Files changed (513) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +146 -0
  3. package/cli/build.ts +147 -0
  4. package/cli/codegen.ts +40 -0
  5. package/cli/generateModule.ts +187 -0
  6. package/cli/generateProject.ts +183 -0
  7. package/cli/main.ts +125 -0
  8. package/cli/moduleRegistration.ts +127 -0
  9. package/cli/naming.ts +124 -0
  10. package/cli/parseCli.ts +151 -0
  11. package/cli/templates/module.ts +497 -0
  12. package/cli/templates/pack.ts +76 -0
  13. package/cli/templates/passport.ts +178 -0
  14. package/core/agent/AgentContextBuilder.ts +567 -0
  15. package/core/agent/AgentDataDefinition.ts +8 -0
  16. package/core/agent/AgentRegistry.ts +539 -0
  17. package/core/agent/AgentRuntime.ts +47 -0
  18. package/core/agent/AgentToolExecutor.ts +2130 -0
  19. package/core/agent/AgentToolHooks.ts +39 -0
  20. package/core/agent/ModelProvider.ts +21 -0
  21. package/core/agent/README.md +229 -0
  22. package/core/agent/Tool.contract.ts +20 -0
  23. package/core/agent/decorators/Agent.ts +11 -0
  24. package/core/agent/decorators/Prompt.ts +11 -0
  25. package/core/agent/decorators/Task.ts +29 -0
  26. package/core/agent/decorators/Tool.ts +12 -0
  27. package/core/agent/errors.ts +43 -0
  28. package/core/agent/generated/catalog.ts +26 -0
  29. package/core/agent/index.ts +170 -0
  30. package/core/agent/internal/AgentExecutionDriver.ts +1497 -0
  31. package/core/agent/internal/AgentExecutionState.ts +775 -0
  32. package/core/agent/internal/AgentJsonSchema.ts +150 -0
  33. package/core/agent/internal/AgentModelBinding.ts +57 -0
  34. package/core/agent/internal/Schema.contract.ts +36 -0
  35. package/core/agent/internal/ToolAudit.projector.ts +163 -0
  36. package/core/agent/internal/ToolContract.validator.ts +102 -0
  37. package/core/agent/metadata.ts +398 -0
  38. package/core/agent/moduleContributions-v1.ts +113 -0
  39. package/core/agent/semantic.ts +903 -0
  40. package/core/agent/session/codec.ts +33 -0
  41. package/core/agent/session/contracts.ts +96 -0
  42. package/core/agent/session/entities.ts +84 -0
  43. package/core/agent/session/protector.ts +92 -0
  44. package/core/app/index.ts +5 -0
  45. package/core/app/runApp.ts +293 -0
  46. package/core/app/ui/index.ts +29 -0
  47. package/core/app/ui/uiProfileResolver.ts +966 -0
  48. package/core/app/ui/uiSurfaceHosting.ts +38 -0
  49. package/core/app/ui/uiSurfaceHttp.ts +476 -0
  50. package/core/background/BackgroundService.ts +223 -0
  51. package/core/background/backgroundModule.ts +42 -0
  52. package/core/background/decorator.ts +43 -0
  53. package/core/background/delay.ts +27 -0
  54. package/core/background/index.ts +15 -0
  55. package/core/cache/COMPATIBILITY.md +13 -0
  56. package/core/cache/ICache.ts +71 -0
  57. package/core/cache/MemoryCache.ts +394 -0
  58. package/core/cache/README.md +83 -0
  59. package/core/cache/SPEC.md +1355 -0
  60. package/core/cache/cacheModule.ts +21 -0
  61. package/core/cache/decorators/Cacheable.ts +38 -0
  62. package/core/cache/decorators/CacheableRedis.ts +39 -0
  63. package/core/cache/decorators/OutputCache.ts +33 -0
  64. package/core/cache/decorators/OutputRedisCache.ts +33 -0
  65. package/core/cache/decorators/cacheableMetadata.ts +78 -0
  66. package/core/cache/decorators/cacheableRedisMetadata.ts +81 -0
  67. package/core/cache/decorators/outputCacheMetadata.ts +71 -0
  68. package/core/cache/decorators/outputRedisCacheMetadata.ts +77 -0
  69. package/core/cache/di/classProviderHook.ts +26 -0
  70. package/core/cache/distributed/CacheCodec.ts +5 -0
  71. package/core/cache/distributed/DistributedCache.ts +403 -0
  72. package/core/cache/distributed/DistributedCacheDriver.ts +83 -0
  73. package/core/cache/distributed/DistributedCacheStores.ts +28 -0
  74. package/core/cache/distributed/IDistributedCache.ts +40 -0
  75. package/core/cache/distributed/NamedCacheRegistry.ts +23 -0
  76. package/core/cache/distributed/codecs.ts +32 -0
  77. package/core/cache/distributed/index.ts +19 -0
  78. package/core/cache/errors/CacheError.ts +16 -0
  79. package/core/cache/http/CachedHttpPayload.ts +213 -0
  80. package/core/cache/http/applyClientCacheHeaders.ts +61 -0
  81. package/core/cache/http/buildOutputCacheKey.ts +154 -0
  82. package/core/cache/http/buildRedisOutputCacheKey.ts +16 -0
  83. package/core/cache/http/composeOutputCache.ts +130 -0
  84. package/core/cache/http/outputCacheMiddleware.ts +111 -0
  85. package/core/cache/http/outputCacheSecurityWarning.ts +58 -0
  86. package/core/cache/http/outputRedisCacheMiddleware.ts +118 -0
  87. package/core/cache/index.ts +97 -0
  88. package/core/cache/internal/AutomaticCacheKey.ts +106 -0
  89. package/core/cache/internal/CacheKeyGuard.ts +56 -0
  90. package/core/cache/internal/buildCacheProviders.ts +146 -0
  91. package/core/cache/internal/normalizeCacheKey.ts +9 -0
  92. package/core/cache/internal/resolveCachePolicy.ts +32 -0
  93. package/core/cache/internal/resolveCacheableRedisPolicy.ts +17 -0
  94. package/core/cache/internal/resolveOutputRedisCachePolicy.ts +17 -0
  95. package/core/cache/providers/cachedProviders.ts +68 -0
  96. package/core/cache/services/cacheProxy.ts +243 -0
  97. package/core/cache/tokens/CACHE_POLICIES.ts +5 -0
  98. package/core/cache/tokens/DISTRIBUTED_CACHE.ts +30 -0
  99. package/core/cache/types/CacheEntry.ts +7 -0
  100. package/core/cache/types/CacheOptions.ts +60 -0
  101. package/core/cache/types/CachePolicy.ts +74 -0
  102. package/core/cache/types/CacheableRedisOptions.ts +23 -0
  103. package/core/cache/types/OutputRedisCacheOptions.ts +25 -0
  104. package/core/di/README.md +104 -0
  105. package/core/di/ServiceCollection.ts +185 -0
  106. package/core/di/ServiceProvider.ts +689 -0
  107. package/core/di/ServiceScope.ts +61 -0
  108. package/core/di/container.ts +38 -0
  109. package/core/di/errors/AmbiguousNamedDependencyError.ts +10 -0
  110. package/core/di/errors/AsyncResolutionRequiredError.ts +12 -0
  111. package/core/di/errors/CircularDependencyError.ts +10 -0
  112. package/core/di/errors/ClassDependenciesMismatchError.ts +15 -0
  113. package/core/di/errors/DiError.ts +6 -0
  114. package/core/di/errors/InvalidProviderError.ts +9 -0
  115. package/core/di/errors/ModuleEncapsulationError.ts +7 -0
  116. package/core/di/errors/ModuleOwnedProviderConflictError.ts +8 -0
  117. package/core/di/errors/NamedDependencyNotFoundError.ts +7 -0
  118. package/core/di/errors/OptionsValidationError.ts +7 -0
  119. package/core/di/errors/ProviderNotFoundError.ts +10 -0
  120. package/core/di/errors/ScopeDisposedError.ts +7 -0
  121. package/core/di/errors/ScopedServiceFromRootError.ts +9 -0
  122. package/core/di/errors/ServiceValidationError.ts +7 -0
  123. package/core/di/errors/index.ts +14 -0
  124. package/core/di/extensions/activator.ts +39 -0
  125. package/core/di/extensions/application.ts +117 -0
  126. package/core/di/extensions/hosted-service.ts +124 -0
  127. package/core/di/extensions/index.ts +23 -0
  128. package/core/di/extensions/options-reloadable.ts +137 -0
  129. package/core/di/extensions/options.ts +91 -0
  130. package/core/di/extensions/service-provider-token.ts +21 -0
  131. package/core/di/index.ts +97 -0
  132. package/core/di/internal/GraphValidator.ts +119 -0
  133. package/core/di/internal/HostedServicePlan.ts +158 -0
  134. package/core/di/internal/NamedTokenIndex.ts +55 -0
  135. package/core/di/internal/OpenGenericRegistration.ts +14 -0
  136. package/core/di/internal/ResolutionPlan.ts +18 -0
  137. package/core/di/internal/ResolutionScopeState.ts +19 -0
  138. package/core/di/internal/ResolutionTracker.ts +153 -0
  139. package/core/di/internal/ScopeLifecycle.ts +159 -0
  140. package/core/di/internal/ServiceRegistration.ts +14 -0
  141. package/core/di/internal/ServiceRegistry.ts +252 -0
  142. package/core/di/internal/classDeps.ts +38 -0
  143. package/core/di/internal/disposal.ts +58 -0
  144. package/core/di/internal/providerDeps.ts +26 -0
  145. package/core/di/module/DI.ts +146 -0
  146. package/core/di/module/Global.ts +25 -0
  147. package/core/di/module/Module.ts +44 -0
  148. package/core/di/module/ModuleRegistrar.ts +69 -0
  149. package/core/di/module/autoDeps.ts +39 -0
  150. package/core/di/module/classProviderHooks.ts +66 -0
  151. package/core/di/module/collectModuleConfigs.ts +57 -0
  152. package/core/di/module/collectModuleControllers.ts +53 -0
  153. package/core/di/module/collectModuleUiProfiles.ts +53 -0
  154. package/core/di/module/createContainer.ts +261 -0
  155. package/core/di/module/encapsulation.ts +416 -0
  156. package/core/di/module/encapsulationHooks.ts +36 -0
  157. package/core/di/module/generatedProviderAttachments.ts +102 -0
  158. package/core/di/module/index.ts +41 -0
  159. package/core/di/module/moduleExtensions.ts +35 -0
  160. package/core/di/module/moduleNameBinding.ts +136 -0
  161. package/core/di/module/moduleOwnedProviderContributors.ts +409 -0
  162. package/core/di/module/providerSelection.ts +90 -0
  163. package/core/di/module/shortcuts.ts +111 -0
  164. package/core/di/module/types/BazisModule.ts +71 -0
  165. package/core/di/module/types/DiRegistrar.ts +24 -0
  166. package/core/di/module/types/index.ts +2 -0
  167. package/core/di/provider/index.ts +26 -0
  168. package/core/di/provider/providerGuards.ts +17 -0
  169. package/core/di/provider/types/AsyncFactoryProvider.ts +15 -0
  170. package/core/di/provider/types/ClassProvider.ts +18 -0
  171. package/core/di/provider/types/FactoryProvider.ts +20 -0
  172. package/core/di/provider/types/KeyedDependency.ts +20 -0
  173. package/core/di/provider/types/LazyDependency.ts +31 -0
  174. package/core/di/provider/types/NamedDependency.ts +16 -0
  175. package/core/di/provider/types/Provider.ts +10 -0
  176. package/core/di/provider/types/ProviderDefinition.ts +11 -0
  177. package/core/di/provider/types/ProviderDependencyList.ts +11 -0
  178. package/core/di/provider/types/ProviderLifetime.ts +1 -0
  179. package/core/di/provider/types/ProviderOwnership.ts +7 -0
  180. package/core/di/provider/types/ResolvedDeps.ts +18 -0
  181. package/core/di/provider/types/ValueProvider.ts +6 -0
  182. package/core/di/provider/types/index.ts +13 -0
  183. package/core/di/token.ts +84 -0
  184. package/core/di/types/BuildServiceProviderOptions.ts +4 -0
  185. package/core/di/types/ServiceKey.ts +1 -0
  186. package/core/di/types/ServiceResolver.ts +16 -0
  187. package/core/di/types/index.ts +3 -0
  188. package/core/generatedFingerprint.ts +60 -0
  189. package/core/generatedRuntime.ts +187 -0
  190. package/core/grpc/Grpc.module.ts +23 -0
  191. package/core/grpc/GrpcBinding.contract.ts +35 -0
  192. package/core/grpc/GrpcCall.ts +73 -0
  193. package/core/grpc/GrpcClient.ts +172 -0
  194. package/core/grpc/GrpcClientCall.ts +267 -0
  195. package/core/grpc/GrpcError.ts +19 -0
  196. package/core/grpc/GrpcRequest.binding.ts +45 -0
  197. package/core/grpc/GrpcServer.ts +204 -0
  198. package/core/grpc/GrpcStatus.ts +8 -0
  199. package/core/grpc/GrpcTransport.ts +174 -0
  200. package/core/grpc/Metadata.ts +73 -0
  201. package/core/grpc/ProtoCodec.ts +225 -0
  202. package/core/grpc/ProtoParser.ts +192 -0
  203. package/core/grpc/ProtoReader.ts +34 -0
  204. package/core/grpc/ProtoSchema.ts +52 -0
  205. package/core/grpc/ServerCredentials.ts +30 -0
  206. package/core/grpc/clientContracts.ts +39 -0
  207. package/core/grpc/contracts.ts +45 -0
  208. package/core/grpc/decorators.ts +82 -0
  209. package/core/grpc/grpcClientProvider.ts +9 -0
  210. package/core/grpc/index.ts +17 -0
  211. package/core/grpc/moduleControllers.ts +38 -0
  212. package/core/grpc/protobuf.ts +80 -0
  213. package/core/grpc/serviceDefinition.ts +20 -0
  214. package/core/http/Authorization/Authorize.ts +52 -0
  215. package/core/http/Authorization/authorizeComposer.ts +31 -0
  216. package/core/http/Authorization/metadata.ts +158 -0
  217. package/core/http/Binding/ParameterBinder.ts +109 -0
  218. package/core/http/Binding/RequestModel.ts +27 -0
  219. package/core/http/Binding/autoBindings.ts +125 -0
  220. package/core/http/Binding/bindings.ts +19 -0
  221. package/core/http/Binding/convert.ts +48 -0
  222. package/core/http/Binding/generatedSpec.ts +18 -0
  223. package/core/http/Binding/listModelRegistry.ts +47 -0
  224. package/core/http/Binding/modelBinder.ts +345 -0
  225. package/core/http/Binding/modelValidator.ts +30 -0
  226. package/core/http/Binding/requestModelRegistry.ts +117 -0
  227. package/core/http/Decorators/attributes.ts +92 -0
  228. package/core/http/Decorators/controller.ts +24 -0
  229. package/core/http/Decorators/metadata.ts +107 -0
  230. package/core/http/Decorators/routes.ts +131 -0
  231. package/core/http/Errors/HttpError.ts +92 -0
  232. package/core/http/HttpContext/HttpContext.ts +148 -0
  233. package/core/http/HttpContext/ResponseBuilder.ts +37 -0
  234. package/core/http/HttpContext/inspectableRedirects.ts +47 -0
  235. package/core/http/HttpContext/principal.ts +24 -0
  236. package/core/http/HttpContext/responseLifetime.ts +45 -0
  237. package/core/http/HttpServer.ts +627 -0
  238. package/core/http/Middleware/accessLog.ts +90 -0
  239. package/core/http/Middleware/cors.ts +160 -0
  240. package/core/http/Middleware/errorHandler.ts +100 -0
  241. package/core/http/Middleware/pipeline.ts +21 -0
  242. package/core/http/Middleware/rateLimit.ts +104 -0
  243. package/core/http/Middleware/securityHeaders.ts +118 -0
  244. package/core/http/Middleware/types.ts +19 -0
  245. package/core/http/OpenApi/generatedOpenApiRegistry.ts +102 -0
  246. package/core/http/OpenApi/openApiDocs.ts +75 -0
  247. package/core/http/OpenApi/openApiDocument.ts +356 -0
  248. package/core/http/README.md +139 -0
  249. package/core/http/Results/HttpResult.ts +19 -0
  250. package/core/http/Results/normalize.ts +93 -0
  251. package/core/http/Results/results.ts +70 -0
  252. package/core/http/Routing/Router.ts +201 -0
  253. package/core/http/Routing/RouterBuilder.ts +184 -0
  254. package/core/http/Routing/template.ts +112 -0
  255. package/core/http/SPEC.md +981 -0
  256. package/core/http/Versioning/VersionReader.ts +20 -0
  257. package/core/http/WebSocketUpgrade.ts +29 -0
  258. package/core/http/composeRouteMiddlewareComposers.ts +21 -0
  259. package/core/http/correlation/createCorrelationIdMiddleware.ts +79 -0
  260. package/core/http/httpModule.ts +48 -0
  261. package/core/http/index.ts +140 -0
  262. package/core/http/middlewareTokens.ts +48 -0
  263. package/core/http/options.ts +134 -0
  264. package/core/http-client/index.ts +105 -0
  265. package/core/infra/Infra.ts +158 -0
  266. package/core/infra/InfraConnector.ts +86 -0
  267. package/core/infra/InfraLifecycle.ts +86 -0
  268. package/core/infra/cache/RedisDistributedCacheBackend.ts +88 -0
  269. package/core/infra/cache/RedisDistributedCacheDriver.ts +186 -0
  270. package/core/infra/cache/index.ts +7 -0
  271. package/core/infra/connectorConfig.ts +29 -0
  272. package/core/infra/connectorIdentity.ts +39 -0
  273. package/core/infra/connectors/codex/CodexAppServer.ts +146 -0
  274. package/core/infra/connectors/codex/CodexAppServerClient.ts +258 -0
  275. package/core/infra/connectors/codex/CodexPolicy.ts +114 -0
  276. package/core/infra/connectors/codex/CodexTurn.ts +133 -0
  277. package/core/infra/connectors/codex/contracts.ts +82 -0
  278. package/core/infra/connectors/codex.ts +26 -0
  279. package/core/infra/connectors/llm.ts +78 -0
  280. package/core/infra/connectors/llmRouter.ts +443 -0
  281. package/core/infra/connectors/openaiCompatible.ts +590 -0
  282. package/core/infra/connectors/openaiTextStream.ts +134 -0
  283. package/core/infra/connectors/opensearch.ts +307 -0
  284. package/core/infra/connectors/postgres.ts +105 -0
  285. package/core/infra/connectors/redis.ts +132 -0
  286. package/core/infra/index.ts +58 -0
  287. package/core/kernel/ApplicationLifetime.ts +91 -0
  288. package/core/kernel/Bazis.ts +73 -0
  289. package/core/kernel/Environment.ts +53 -0
  290. package/core/kernel/Kernel.ts +391 -0
  291. package/core/kernel/KernelBuilder.ts +172 -0
  292. package/core/kernel/LifecycleCoordinator.ts +204 -0
  293. package/core/kernel/README.md +66 -0
  294. package/core/kernel/SupervisedHostedService.ts +147 -0
  295. package/core/kernel/config/ConfigRegistry.ts +48 -0
  296. package/core/kernel/config/Configuration.ts +110 -0
  297. package/core/kernel/config/README.md +62 -0
  298. package/core/kernel/config/Secret.ts +29 -0
  299. package/core/kernel/config/addConfigOptions.ts +63 -0
  300. package/core/kernel/config/defineConfig.ts +211 -0
  301. package/core/kernel/config/sources.ts +123 -0
  302. package/core/kernel/correlation/requestContext.ts +57 -0
  303. package/core/kernel/errors/ConfigKeyMissingError.ts +7 -0
  304. package/core/kernel/errors/KernelError.ts +7 -0
  305. package/core/kernel/errors/ShutdownTimeoutError.ts +7 -0
  306. package/core/kernel/errors/StartupAbortedError.ts +7 -0
  307. package/core/kernel/errors/StartupTimeoutError.ts +7 -0
  308. package/core/kernel/errors/index.ts +5 -0
  309. package/core/kernel/events/EventBus.ts +140 -0
  310. package/core/kernel/events/EventToken.ts +17 -0
  311. package/core/kernel/events/eventSubscribers.ts +126 -0
  312. package/core/kernel/events/kernelEvents.ts +16 -0
  313. package/core/kernel/events/onEvent.ts +32 -0
  314. package/core/kernel/health/HealthCheckContracts.ts +42 -0
  315. package/core/kernel/health/HealthService.ts +93 -0
  316. package/core/kernel/index.ts +96 -0
  317. package/core/kernel/internal/awaitAbortable.ts +18 -0
  318. package/core/kernel/internal/awaitShutdown.ts +21 -0
  319. package/core/kernel/internal/reportDiagnosticFailure.ts +8 -0
  320. package/core/kernel/internal/validateTimeout.ts +8 -0
  321. package/core/kernel/lifecycleHooks.ts +18 -0
  322. package/core/kernel/logging/ConsoleLogger.ts +68 -0
  323. package/core/kernel/logging/Logger.ts +22 -0
  324. package/core/kernel/types/ConfigSource.ts +9 -0
  325. package/core/kernel/types/EnvironmentName.ts +1 -0
  326. package/core/kernel/types/KernelOptions.ts +23 -0
  327. package/core/kernel/types/LifecycleHook.ts +18 -0
  328. package/core/kernel/types/index.ts +4 -0
  329. package/core/orm/DATABASE_PROVIDER.ts +5 -0
  330. package/core/orm/OrmHostedPlan.validator.ts +55 -0
  331. package/core/orm/OrmLifecycle.ts +146 -0
  332. package/core/orm/OrmOwnedStoreLifecycle.ts +96 -0
  333. package/core/orm/buildOrmProviders.ts +152 -0
  334. package/core/orm/databaseConnector.ts +108 -0
  335. package/core/orm/encapsulationHook.ts +19 -0
  336. package/core/orm/index.ts +95 -0
  337. package/core/orm/listQuery.ts +198 -0
  338. package/core/orm/ormModule.ts +173 -0
  339. package/core/orm/ownedStoreContributions.ts +195 -0
  340. package/core/orm/registerRepositories.ts +27 -0
  341. package/core/orm/repository.ts +45 -0
  342. package/core/orm/strictSchemaHostedIdentity.ts +17 -0
  343. package/core/scripts/agent-codegen.ts +1166 -0
  344. package/core/scripts/di-generate-target.ts +90 -0
  345. package/core/scripts/di-generate.ts +1837 -0
  346. package/core/scripts/orm-predicate-codegen.ts +33 -0
  347. package/core/scripts/request-model-codegen.ts +326 -0
  348. package/core/websocket/DESIGN.md +297 -0
  349. package/core/websocket/WsRateLimiter.ts +101 -0
  350. package/core/websocket/adapter/adapter.interface.ts +45 -0
  351. package/core/websocket/adapter/in-memory.adapter.ts +190 -0
  352. package/core/websocket/adapter/redis-delivery-scripts.ts +135 -0
  353. package/core/websocket/adapter/redis-delivery-store.ts +86 -0
  354. package/core/websocket/adapter/redis-operations.ts +33 -0
  355. package/core/websocket/adapter/redis.adapter.ts +218 -0
  356. package/core/websocket/codec/binary.codec.ts +87 -0
  357. package/core/websocket/codec/json.codec.ts +34 -0
  358. package/core/websocket/codec/packet-codec.interface.ts +17 -0
  359. package/core/websocket/decorators.ts +165 -0
  360. package/core/websocket/explorer.ts +126 -0
  361. package/core/websocket/index.ts +78 -0
  362. package/core/websocket/middleware.ts +146 -0
  363. package/core/websocket/packet-codec.ts +75 -0
  364. package/core/websocket/reliable-delivery.ts +56 -0
  365. package/core/websocket/session-creation.ts +16 -0
  366. package/core/websocket/session-manager.ts +856 -0
  367. package/core/websocket/socket-wrapper.ts +314 -0
  368. package/core/websocket/topic-cache.ts +59 -0
  369. package/core/websocket/types.ts +122 -0
  370. package/core/websocket/websocketModule.ts +96 -0
  371. package/core/websocket/ws-dispatch.ts +123 -0
  372. package/core/websocket/ws-server.ts +1707 -0
  373. package/index.ts +281 -0
  374. package/library/boundary/diagnostics-v1.ts +136 -0
  375. package/library/boundary/index.ts +73 -0
  376. package/library/boundary/json/decodeBoundedJsonV1.ts +518 -0
  377. package/library/boundary/json/limits-v1.ts +46 -0
  378. package/library/boundary/json/normalizeBoundedJsonV1.ts +256 -0
  379. package/library/boundary/json/types-v1.ts +11 -0
  380. package/library/boundary/schema/boundarySchemaHashV1.ts +6 -0
  381. package/library/boundary/schema/collectBoundaryValueDiagnosticsV1.ts +325 -0
  382. package/library/boundary/schema/decodeBoundarySchemaV1.ts +646 -0
  383. package/library/boundary/schema/index.ts +8 -0
  384. package/library/boundary/schema/types-v1.ts +99 -0
  385. package/library/boundary/schema/validateBoundaryValueV1.ts +58 -0
  386. package/library/boundary/serialization/canonicalJsonV1.ts +66 -0
  387. package/library/http-client/HttpClient.ts +969 -0
  388. package/library/http-client/HttpClientFactory.ts +45 -0
  389. package/library/http-client/errors.ts +68 -0
  390. package/library/http-client/index.ts +43 -0
  391. package/library/http-client/interceptors.ts +40 -0
  392. package/library/http-client/progress.ts +62 -0
  393. package/library/http-client/redirectProtocol.ts +6 -0
  394. package/library/http-client/serialize.ts +133 -0
  395. package/library/http-client/types.ts +174 -0
  396. package/library/jsonapi/ListQueryError.ts +25 -0
  397. package/library/jsonapi/ListRequest.ts +37 -0
  398. package/library/jsonapi/decorators.ts +161 -0
  399. package/library/jsonapi/document.ts +124 -0
  400. package/library/jsonapi/index.ts +40 -0
  401. package/library/jsonapi/parseListQuery.ts +291 -0
  402. package/library/jsonapi/types.ts +125 -0
  403. package/library/jwt/JwtEncoder.ts +40 -0
  404. package/library/jwt/JwtKeyRing.ts +164 -0
  405. package/library/jwt/JwtValidator.ts +210 -0
  406. package/library/jwt/TokenIssuer.ts +149 -0
  407. package/library/jwt/TokenService.ts +51 -0
  408. package/library/jwt/base64url.ts +61 -0
  409. package/library/jwt/claims.ts +36 -0
  410. package/library/jwt/errors.ts +44 -0
  411. package/library/jwt/index.ts +59 -0
  412. package/library/jwt/limits.ts +8 -0
  413. package/library/jwt/signing/Hs256Algorithm.ts +62 -0
  414. package/library/jwt/signing/Rs256Algorithm.ts +133 -0
  415. package/library/jwt/signing/SigningAlgorithm.ts +18 -0
  416. package/library/jwt/signing/pem.ts +30 -0
  417. package/library/openapi/codegen.ts +875 -0
  418. package/library/openapi/document.ts +326 -0
  419. package/library/openapi/index.ts +13 -0
  420. package/library/openapi/types.ts +69 -0
  421. package/library/openapi/ui.ts +182 -0
  422. package/library/orm/DatabaseFacade.ts +209 -0
  423. package/library/orm/DbContext.ts +107 -0
  424. package/library/orm/DbContextFactory.ts +25 -0
  425. package/library/orm/DbContextOptions.ts +33 -0
  426. package/library/orm/Metadata/DynamicModelBuilder.ts +497 -0
  427. package/library/orm/Metadata/KeyTuple.ts +36 -0
  428. package/library/orm/Metadata/ModelBuilder.ts +299 -0
  429. package/library/orm/Metadata/OrmModel.ts +80 -0
  430. package/library/orm/Metadata/ValueConverter.ts +57 -0
  431. package/library/orm/Metadata/conventions.ts +54 -0
  432. package/library/orm/Metadata/decorators.ts +396 -0
  433. package/library/orm/Metadata/types.ts +140 -0
  434. package/library/orm/Providers/OwnedStoreCatalog.reader.ts +1802 -0
  435. package/library/orm/Providers/PostgresDialect.ts +234 -0
  436. package/library/orm/Providers/PostgresProvider.ts +1494 -0
  437. package/library/orm/Providers/PostgresSchema.decoder.ts +107 -0
  438. package/library/orm/Providers/limits.ts +29 -0
  439. package/library/orm/Providers/operationDeadline.ts +43 -0
  440. package/library/orm/Providers/ormOwnedStoreRuntime.ts +19 -0
  441. package/library/orm/Providers/ormTransactionRuntime.ts +117 -0
  442. package/library/orm/Providers/propertyConversion.ts +14 -0
  443. package/library/orm/Providers/resolvedForeignKey.ts +16 -0
  444. package/library/orm/Providers/transactionCallbacks.ts +45 -0
  445. package/library/orm/Providers/transactionOutcome.ts +82 -0
  446. package/library/orm/Providers/transactionScopes.ts +78 -0
  447. package/library/orm/Providers/types.ts +207 -0
  448. package/library/orm/Query/DbSet.ts +78 -0
  449. package/library/orm/Query/EntityQuery.ts +247 -0
  450. package/library/orm/Query/ImmediateMutations.ts +226 -0
  451. package/library/orm/Query/IncludeLoader.ts +200 -0
  452. package/library/orm/Query/QueryPlan.ts +55 -0
  453. package/library/orm/Query/SqlTranslator.ts +195 -0
  454. package/library/orm/Query/conditions.ts +127 -0
  455. package/library/orm/Query/materialize.ts +39 -0
  456. package/library/orm/README.md +256 -0
  457. package/library/orm/Repository/README.md +684 -0
  458. package/library/orm/Repository/Repository.ts +68 -0
  459. package/library/orm/Saving/CommandBuilder.ts +139 -0
  460. package/library/orm/Saving/ExecutionStrategy.ts +128 -0
  461. package/library/orm/Saving/SaveExecutor.ts +413 -0
  462. package/library/orm/Saving/applyConventions.ts +64 -0
  463. package/library/orm/Schema/CheckExpression.ts +327 -0
  464. package/library/orm/Schema/ExactSchemaVerifier.ts +168 -0
  465. package/library/orm/Schema/ExpectedSchema.ts +43 -0
  466. package/library/orm/Schema/MigrationRunner.ts +146 -0
  467. package/library/orm/Schema/Migrator.ts +73 -0
  468. package/library/orm/Schema/OrmOwnedStore.ts +123 -0
  469. package/library/orm/Schema/OwnedStoreAdmission.ts +752 -0
  470. package/library/orm/Schema/OwnedStoreCanonical.ts +273 -0
  471. package/library/orm/Schema/OwnedStoreCatalog.ts +1325 -0
  472. package/library/orm/Schema/SafeAdditiveSchema.ts +100 -0
  473. package/library/orm/Schema/SchemaAdmission.ts +62 -0
  474. package/library/orm/Schema/SchemaDiffer.ts +78 -0
  475. package/library/orm/Schema/formatSchemaDifferences.ts +62 -0
  476. package/library/orm/Schema/introspection.ts +52 -0
  477. package/library/orm/Schema/physicalColumnTypes.ts +37 -0
  478. package/library/orm/Schema/tableKey.ts +26 -0
  479. package/library/orm/Tracking/ChangeTracker.ts +448 -0
  480. package/library/orm/Tracking/EntityState.ts +13 -0
  481. package/library/orm/Transactions/OrmTransaction.ts +30 -0
  482. package/library/orm/Transactions/TransactionScopeCoordinator.ts +377 -0
  483. package/library/orm/errors.ts +190 -0
  484. package/library/orm/index.ts +162 -0
  485. package/library/orm/runtime.ts +14 -0
  486. package/library/redaction/index.ts +166 -0
  487. package/library/ui/UiProfile.ts +77 -0
  488. package/library/ui/compiled-v1.ts +131 -0
  489. package/library/ui/compiler/compileUiSurfaceV1.ts +717 -0
  490. package/library/ui/compiler/contracts-v1.ts +25 -0
  491. package/library/ui/compiler/index.ts +12 -0
  492. package/library/ui/compiler/openApiIndex.ts +246 -0
  493. package/library/ui/defineUiProfile.ts +340 -0
  494. package/library/ui/diagnostics-v1.ts +33 -0
  495. package/library/ui/index.ts +129 -0
  496. package/library/ui/profile-v1.ts +191 -0
  497. package/library/ui/serialization.ts +130 -0
  498. package/library/ui/uiProfileAuthoring.ts +289 -0
  499. package/library/ui/uiProfileAuthoringMetadata.ts +78 -0
  500. package/library/validation/MessageRegistry.ts +144 -0
  501. package/library/validation/README.md +62 -0
  502. package/library/validation/RuleCompiler.ts +183 -0
  503. package/library/validation/RuleEngine.ts +401 -0
  504. package/library/validation/SPEC.md +579 -0
  505. package/library/validation/ValidationError.ts +37 -0
  506. package/library/validation/ValidationResult.ts +63 -0
  507. package/library/validation/Validator.ts +101 -0
  508. package/library/validation/index.ts +16 -0
  509. package/library/validation/metadata.ts +69 -0
  510. package/library/validation/modelValidatorAdapter.ts +119 -0
  511. package/library/validation/types/ValidationCode.ts +69 -0
  512. package/library/validation/types/ValidatorOptions.ts +153 -0
  513. package/package.json +80 -0
@@ -0,0 +1,39 @@
1
+ import type { Class, BazisModuleRef } from "../di";
2
+ import type { JsonObject, JsonValue, AgentToolResultStatus } from "./semantic";
3
+ import type { ToolApproval, ToolSideEffect } from "./metadata";
4
+ import type { AgentToolExecutionApproval } from "./AgentToolExecutor";
5
+
6
+ export type AgentToolHookKindV1 = "enforcement" | "settlement" | "observer";
7
+
8
+ export interface AgentToolHookRefV1 { readonly kind: AgentToolHookKindV1; readonly id: string; readonly version: number; }
9
+ export interface AgentToolRequiredHookRefV1 extends AgentToolHookRefV1 { readonly owner: BazisModuleRef; }
10
+ export interface AgentToolHookRegistrationBaseV1 extends AgentToolHookRefV1 { readonly order?: number; readonly timeoutMs?: number; }
11
+ export type AgentToolHookRegistrationV1 =
12
+ | (AgentToolHookRegistrationBaseV1 & { readonly kind: "enforcement"; readonly handler: Class<AgentToolEnforcementHookV1>; })
13
+ | (AgentToolHookRegistrationBaseV1 & { readonly kind: "settlement"; readonly handler: Class<AgentToolSettlementHookV1>; })
14
+ | (AgentToolHookRegistrationBaseV1 & { readonly kind: "observer"; readonly handler: Class<AgentToolObserverHookV1>; });
15
+
16
+ export interface AgentToolHookContextV1 { readonly signal: AbortSignal; readonly deadlineUnixMs: number; }
17
+ export interface AgentToolCallProjectionV1 { readonly id: string; readonly name: string; readonly input: JsonValue; readonly metadata: JsonObject; }
18
+ export interface AgentToolDescriptorProjectionV1 { readonly name: string; readonly description: string; readonly sideEffect: ToolSideEffect; readonly approval: ToolApproval; readonly tags: readonly string[]; }
19
+ export interface AgentToolBeforeEffectEventV1 {
20
+ readonly type: "agent-tool.before-effect/v1"; readonly invocationId?: string; readonly agentName?: string;
21
+ readonly attempt: number; readonly maxAttempts: number; readonly idempotencyKey?: string;
22
+ readonly call: AgentToolCallProjectionV1; readonly tool: AgentToolDescriptorProjectionV1;
23
+ readonly executionApproval: AgentToolExecutionApproval;
24
+ }
25
+ export type AgentToolEnforcementDecisionV1 =
26
+ | { readonly decision: "allow"; readonly evidence?: JsonObject; }
27
+ | { readonly decision: "deny"; readonly reasonCode?: string; readonly message?: string; readonly evidence?: JsonObject; };
28
+ export interface AgentToolEnforcementHookV1 { enforce(event: AgentToolBeforeEffectEventV1, context: AgentToolHookContextV1): AgentToolEnforcementDecisionV1 | Promise<AgentToolEnforcementDecisionV1>; }
29
+ export interface AgentToolTerminalProjectionV1 { readonly status: AgentToolResultStatus; readonly executeStarted: boolean; readonly outcomeKnown: boolean; readonly retryable: boolean; readonly errorCode?: string; readonly output?: JsonValue; }
30
+ export interface AgentToolSettlementEventV1 {
31
+ readonly type: "agent-tool.settlement/v1"; readonly callId: string; readonly toolName: string;
32
+ readonly invocationId?: string; readonly agentName?: string; readonly attempt?: number;
33
+ readonly beforeEffect?: AgentToolBeforeEffectEventV1; readonly terminal: AgentToolTerminalProjectionV1;
34
+ }
35
+ export interface AgentToolSettlementResultV1 { readonly status: "recorded"; readonly evidence?: JsonObject; }
36
+ export interface AgentToolSettlementHookV1 { settle(event: AgentToolSettlementEventV1, context: AgentToolHookContextV1): AgentToolSettlementResultV1 | Promise<AgentToolSettlementResultV1>; }
37
+ export interface AgentToolObserverEventV1 { readonly type: "agent-tool.observer/v1"; readonly settlement: AgentToolSettlementEventV1; }
38
+ export interface AgentToolObserverHookV1 { observe(event: AgentToolObserverEventV1, context: AgentToolHookContextV1): void | Promise<void>; }
39
+ export interface AgentToolAuditHookProjectionV1 extends AgentToolHookRefV1 { readonly tier: "platform" | "application"; readonly order: number; readonly outcome: "allowed" | "denied" | "recorded" | "failed" | "timed-out" | "cancelled" | "invalid-result"; readonly reasonCode?: string; readonly evidence?: JsonObject; }
@@ -0,0 +1,21 @@
1
+ import { createToken } from "../di";
2
+ import type { AgentModelRequest, AgentModelResponse, JsonObject } from "./semantic";
3
+
4
+ export interface AgentModelProviderContext {
5
+ readonly invocationId: string;
6
+ readonly agentName: string;
7
+ readonly modelProfile?: string;
8
+ readonly metadata: JsonObject;
9
+ readonly signal: AbortSignal;
10
+ /** Optional synchronous observer of provisional text. complete() remains authoritative. */
11
+ readonly onTextDelta?: (text: string) => void;
12
+ }
13
+
14
+ export interface AgentModelProvider {
15
+ complete(
16
+ request: AgentModelRequest,
17
+ context: AgentModelProviderContext,
18
+ ): AgentModelResponse | Promise<AgentModelResponse>;
19
+ }
20
+
21
+ export const AGENT_MODEL_PROVIDER = createToken<AgentModelProvider>("AgentModelProvider");
@@ -0,0 +1,229 @@
1
+ # bazis Agent
2
+
3
+ `core/agent` is the first executable foundation for bazis AI. It contains
4
+ provider-neutral metadata, discovery and DI-backed tool execution:
5
+
6
+ - `@Agent`
7
+ - `@Task`
8
+ - `@Tool`
9
+ - `@Prompt`
10
+ - `collectAgentCatalog`
11
+ - `AgentRegistry`
12
+ - generated metadata via `bun run di:generate`
13
+ - provider-neutral semantic model (`agentMessage`, `agentToolCall`,
14
+ `agentModelRequest`, `agentModelResponse`)
15
+ - prompt/context rendering via `DefaultAgentContextBuilder`
16
+ - DI-backed `AgentToolExecutor`
17
+
18
+ Model providers live behind infra connectors. Long-term memory and streaming are
19
+ still separate layers on top of this runtime boundary.
20
+
21
+ ```ts
22
+ import { Agent, Module, Task, Tool, agentOutput } from "bazis";
23
+
24
+ class CreateRequirementsRequest {
25
+ feature!: string;
26
+ }
27
+
28
+ class ProductRequirementsDocument {
29
+ goal!: string;
30
+ acceptanceCriteria!: string[];
31
+ }
32
+
33
+ @Tool({
34
+ name: "catalog.search",
35
+ description: "Searches products in the catalog.",
36
+ sideEffect: "read",
37
+ })
38
+ class SearchCatalogTool {}
39
+
40
+ @Agent({
41
+ name: "system-analyst",
42
+ role: "System analyst",
43
+ sections: [
44
+ {
45
+ kind: "developer",
46
+ content: "Return concrete, testable requirements.",
47
+ },
48
+ {
49
+ kind: "tool-policy",
50
+ content: "Use read tools before proposing write actions.",
51
+ },
52
+ ],
53
+ tools: [SearchCatalogTool],
54
+ modelProfile: "reasoning",
55
+ })
56
+ class SystemAnalystAgent {
57
+ @Task({
58
+ name: "prepare-requirements",
59
+ description: "Prepare a requirements document for a product feature.",
60
+ })
61
+ prepareRequirements(input: CreateRequirementsRequest): ProductRequirementsDocument {
62
+ return agentOutput();
63
+ }
64
+ }
65
+
66
+ @Module({
67
+ agents: [SystemAnalystAgent],
68
+ tools: [SearchCatalogTool],
69
+ })
70
+ class ProductModule {}
71
+ ```
72
+
73
+ The DI core does not know about agent metadata. Importing `@/core/agent` or
74
+ the root `bazis` API extends `@Module` with `agents`, `tools` and `prompts`.
75
+ Each entry in `tools` creates one ordinary scoped provider owned by that module.
76
+ An existing exact scoped self-class provider is reused; incompatible lifetimes,
77
+ duplicates, and conflicting owners are rejected before activation.
78
+ `AgentRegistry.fromContainer(container)` returns the immutable host Tool catalog
79
+ from these registrations without constructing Tools. Metadata-defined agents
80
+ select their own subset through `AgentRegistry.fromDefinition(definition, catalog.listTools())`.
81
+ Internal contribution readers use an Agent-owned view of these optional fields.
82
+ This also allows an isolated HTTP host to type-check when `generatedRuntime`
83
+ references `AgentRegistry` only as a type, without loading the public Agent barrel
84
+ and its DI augmentation. Runtime validation and provider ownership are unchanged.
85
+ For simple cases, put role/instructions/sections directly on `@Agent`. Use a
86
+ separate `@Prompt` class when the prompt is reused, versioned, or owned outside
87
+ one agent.
88
+
89
+ For startup-friendly discovery, `bun run di:generate` writes
90
+ `src/generated/bazis/agentCatalog.ts`. Use
91
+ `AgentRegistry.fromGeneratedModules([AppModule])` when the runtime should prefer
92
+ the generated metadata index and still respect module ownership.
93
+
94
+ The semantic model is the provider-neutral language for future runtime/provider
95
+ adapters:
96
+
97
+ ```ts
98
+ const request = agentModelRequest({
99
+ invocationId: "inv-1",
100
+ messages: [agentMessage("user", "Prepare acceptance criteria")],
101
+ tools: [agentToolContract({
102
+ name: "catalog.search",
103
+ description: "Searches products.",
104
+ sideEffect: "read",
105
+ })],
106
+ });
107
+ ```
108
+
109
+ Tool execution stays behind bazis DI, agent visibility and approval policy:
110
+
111
+ ```ts
112
+ import { modelValidatorAdapter } from "@/library/validation";
113
+
114
+ const container = createContainer(AppModule);
115
+ const registry = AgentRegistry.fromModules([AppModule]);
116
+ const executor = new AgentToolExecutor(container, registry, {
117
+ schemaValidator: modelValidatorAdapter,
118
+ auditSink: (entry) => auditStore.write(entry),
119
+ });
120
+
121
+ const result = await executor.execute(agentToolCall({
122
+ id: "call-1",
123
+ name: "catalog.search",
124
+ input: { query: "keyboard" },
125
+ }), {
126
+ agentName: "product-designer",
127
+ });
128
+ ```
129
+
130
+ Audit entries redact `input`, `result` and execution `metadata` by default
131
+ using `bazis/library/redaction` (`password`, `secret`, `token`, `apiKey`,
132
+ `authorization`, `cookie`, etc.). Raw audit traces are an explicit local-debug
133
+ escape hatch: pass `auditRedaction: false` on the executor or one execution.
134
+
135
+ Retries are opt-in. `write` and `external` tools require an idempotency key
136
+ before the executor will repeat them:
137
+
138
+ ```ts
139
+ await executor.execute(agentToolCall({
140
+ id: "call-2",
141
+ name: "catalog.reindex",
142
+ }), {
143
+ agentName: "product-designer",
144
+ idempotencyKey: "catalog-reindex-1",
145
+ retryPolicy: { maxAttempts: 3, delayMs: 100, backoff: "exponential" },
146
+ });
147
+ ```
148
+
149
+ Runtime-generated idempotency keys include both the invocation id and the
150
+ unique model call id. Use `idempotencyKeyForCall` for a domain-specific stable
151
+ key. Tool scopes have a bounded disposal wait (`scopeDisposeTimeoutMs`, five
152
+ seconds by default). When execution settles after a timeout/abort, audit sinks
153
+ receive a terminal `settlement` entry; an unknown write outcome stops runtime
154
+ continuation.
155
+
156
+ Every tool call also has one 30-second deadline covering input validation,
157
+ approval, audit, DI resolution, execution, output processing and result audit.
158
+ Model provider calls default to 60 seconds. Set the corresponding `timeoutMs`
159
+ to `0` only when an explicit compatibility opt-out is required.
160
+
161
+ The first runtime slice invokes a model provider from infra, then routes tool
162
+ calls through the executor:
163
+
164
+ ```ts
165
+ const runtime = new AgentRuntime(
166
+ container,
167
+ AgentRegistry.fromModules([AppModule]),
168
+ container.resolve(AGENT_MODEL_PROVIDER),
169
+ );
170
+
171
+ const result = await runtime.invoke("product-designer", {
172
+ input: "Prepare acceptance criteria",
173
+ maxSteps: 4,
174
+ });
175
+ ```
176
+
177
+ For controller-style DX, prefer task methods on an agent. The task method is a
178
+ business operation contract; the method body is not called by user code:
179
+
180
+ ```ts
181
+ const result = await runtime.invokeTask("system-analyst", "prepare-requirements", {
182
+ feature: "Checkout with a promo code",
183
+ });
184
+ ```
185
+
186
+ `@Task` can declare `input` and `output` explicitly. With `bun run di:generate`,
187
+ simple method signatures are also read from code and written to generated
188
+ metadata for faster startup-friendly discovery.
189
+
190
+ Prompt metadata is rendered into provider request context, not stored in the
191
+ conversation history returned by the runtime:
192
+
193
+ ```ts
194
+ const runtime = new AgentRuntime(container, registry, provider, {
195
+ contextLimits: { maxMessages: 24, maxTokens: 8_000, maxChars: 32_000 },
196
+ });
197
+
198
+ const result = await runtime.invoke("product-designer", {
199
+ input: "Prepare acceptance criteria",
200
+ contextLimits: { maxMessages: 12, maxTokens: 4_000 },
201
+ });
202
+ ```
203
+
204
+ `DefaultAgentContextBuilder` preserves the system prompt and newest conversation
205
+ message when trimming old history. `maxTokens` uses a deterministic built-in
206
+ estimator, and provider requests include `metadata.agentContext.trace` so context
207
+ assembly is inspectable.
208
+
209
+ LLM clients are registered by infra connectors, not inside agent modules. Agents
210
+ name a model profile; infra owns provider URLs, model ids, limits and fallback:
211
+
212
+ ```ts
213
+ @Infra({
214
+ llm: llmRouter({
215
+ fast: llmProfile(llmConfig, openAiCompatibleAdapter(), {
216
+ model: "gpt-4.1-mini",
217
+ temperature: 0.1,
218
+ maxOutputTokens: 1000,
219
+ }),
220
+ reasoning: llmProfile(llmConfig, openAiCompatibleAdapter(), {
221
+ model: "gpt-4.1",
222
+ temperature: 0.2,
223
+ maxOutputTokens: 4000,
224
+ fallback: "fast",
225
+ }),
226
+ }, { defaultProfile: "fast" }),
227
+ })
228
+ class AppInfra {}
229
+ ```
@@ -0,0 +1,20 @@
1
+ import { getGeneratedOpenApiMetadata, getGeneratedOpenApiSchemaName } from "../http/OpenApi/generatedOpenApiRegistry";
2
+ import type { ToolDefinition } from "./AgentRegistry";
3
+ import { inlineGeneratedSchema } from "./internal/Schema.contract";
4
+ import { agentClassSchema, agentJsonSchema, agentToolContract } from "./semantic";
5
+
6
+ /** The same generated contract is used by the local runtime and external executors. */
7
+ export function describeTool(tool: ToolDefinition) {
8
+ const schema = (model: NonNullable<ToolDefinition["metadata"]["input"]>) => {
9
+ const schemas = getGeneratedOpenApiMetadata().schemas;
10
+ const name = getGeneratedOpenApiSchemaName(model) ?? model.name;
11
+ return schemas[name] === undefined ? agentClassSchema(name)
12
+ : agentJsonSchema(name, inlineGeneratedSchema(schemas[name], schemas));
13
+ };
14
+ return agentToolContract({
15
+ name: tool.metadata.name, description: tool.metadata.description,
16
+ input: tool.metadata.input ? schema(tool.metadata.input) : undefined,
17
+ output: tool.metadata.output ? schema(tool.metadata.output) : undefined,
18
+ sideEffect: tool.metadata.sideEffect, approval: tool.metadata.approval, timeoutMs: tool.metadata.timeoutMs,
19
+ });
20
+ }
@@ -0,0 +1,11 @@
1
+ import { defineAgentMetadata, type AgentOptions } from "../metadata";
2
+
3
+ /**
4
+ * Declares an executable agent class. The class stays a regular DI service;
5
+ * this decorator only adds framework metadata for discovery and validation.
6
+ */
7
+ export function Agent(options: AgentOptions = {}) {
8
+ return (value: abstract new (...args: never[]) => unknown, context: ClassDecoratorContext): void => {
9
+ defineAgentMetadata(value, context.metadata, options);
10
+ };
11
+ }
@@ -0,0 +1,11 @@
1
+ import { definePromptMetadata, type PromptOptions } from "../metadata";
2
+
3
+ /**
4
+ * Declares a reusable prompt contract. Prompts are metadata classes so modules
5
+ * can own and version them without exposing provider-specific APIs.
6
+ */
7
+ export function Prompt(options: PromptOptions = {}) {
8
+ return (value: abstract new (...args: never[]) => unknown, context: ClassDecoratorContext): void => {
9
+ definePromptMetadata(value, context.metadata, options);
10
+ };
11
+ }
@@ -0,0 +1,29 @@
1
+ import { defineAgentTaskMetadata, type AgentTaskOptions } from "../metadata";
2
+
3
+ type TaskDecorator = (value: (...args: never[]) => unknown, context: ClassMethodDecoratorContext) => void;
4
+
5
+ export type TaskDecoratorOptions = string | AgentTaskOptions;
6
+
7
+ function normalizeOptions(options: TaskDecoratorOptions | undefined): AgentTaskOptions {
8
+ if (options === undefined) {
9
+ return {};
10
+ }
11
+ if (typeof options === "string") {
12
+ return { name: options };
13
+ }
14
+ return options;
15
+ }
16
+
17
+ /**
18
+ * Declares an executable agent task on an @Agent class. This mirrors
19
+ * controller action decorators: the method is a business operation contract,
20
+ * while AgentRuntime performs the actual AI execution.
21
+ */
22
+ export function Task(options?: TaskDecoratorOptions): TaskDecorator {
23
+ return (_value, context) => {
24
+ if (context.static || context.private) {
25
+ throw new Error(`@Task supports public instance methods only ("${String(context.name)}").`);
26
+ }
27
+ defineAgentTaskMetadata(context.name, context.metadata, normalizeOptions(options));
28
+ };
29
+ }
@@ -0,0 +1,12 @@
1
+ import { defineToolMetadata, type ToolOptions } from "../metadata";
2
+
3
+ /**
4
+ * Declares a tool callable by an agent. Side-effect and approval metadata is
5
+ * required by the future runtime policy layer; unsafe write/external tools are
6
+ * approval-gated by default.
7
+ */
8
+ export function Tool(options: ToolOptions) {
9
+ return (value: abstract new (...args: never[]) => unknown, context: ClassDecoratorContext): void => {
10
+ defineToolMetadata(value, context.metadata, options);
11
+ };
12
+ }
@@ -0,0 +1,43 @@
1
+ /** Error thrown while declaring or discovering Bazis agent metadata. */
2
+ export class AgentSetupError extends Error {
3
+ constructor(message: string) {
4
+ super(message);
5
+ this.name = "AgentSetupError";
6
+ }
7
+ }
8
+
9
+ /** Error thrown when provider-neutral agent semantic objects are invalid. */
10
+ export class AgentSemanticError extends Error {
11
+ constructor(message: string) {
12
+ super(message);
13
+ this.name = "AgentSemanticError";
14
+ }
15
+ }
16
+
17
+ /** Error thrown when an agent tool executor is configured incorrectly. */
18
+ export class AgentToolExecutionError extends Error {
19
+ constructor(message: string) {
20
+ super(message);
21
+ this.name = "AgentToolExecutionError";
22
+ }
23
+ }
24
+
25
+ /**
26
+ * Explicit assertion by a tool that execution failed before any side effect
27
+ * could commit. Only this typed error keeps write/external failures eligible
28
+ * for an idempotency-gated retry.
29
+ */
30
+ export class AgentToolPreCommitError extends Error {
31
+ constructor(message: string) {
32
+ super(message);
33
+ this.name = "AgentToolPreCommitError";
34
+ }
35
+ }
36
+
37
+ /** Error thrown when the agent runtime is configured incorrectly. */
38
+ export class AgentRuntimeError extends Error {
39
+ constructor(message: string) {
40
+ super(message);
41
+ this.name = "AgentRuntimeError";
42
+ }
43
+ }
@@ -0,0 +1,26 @@
1
+ // This file is auto-generated by `bun run di:generate`.
2
+ // Do not edit manually.
3
+
4
+ import type { Class } from "../../di";
5
+ import type { AgentMetadataIndex } from "../AgentRegistry";
6
+ import type { AgentMetadata, PromptMetadata, ToolMetadata } from "../metadata";
7
+
8
+ function readonlyMetadataMap<K, V>(entries: readonly (readonly [K, V])[]): ReadonlyMap<K, V> {
9
+ const lookup = new Map<K, V>(entries);
10
+ const facade: ReadonlyMap<K, V> = {
11
+ get size() { return lookup.size; }, has: (key) => lookup.has(key), get: (key) => lookup.get(key),
12
+ entries: () => lookup.entries(), keys: () => lookup.keys(), values: () => lookup.values(),
13
+ forEach: (callback, thisArg) => { for (const [key, value] of lookup) callback.call(thisArg, value, key, facade); },
14
+ [Symbol.iterator]: () => lookup[Symbol.iterator](),
15
+ };
16
+ return Object.freeze(facade);
17
+ }
18
+
19
+ export const GENERATED_AGENT_METADATA: AgentMetadataIndex = Object.freeze({
20
+ agents: readonlyMetadataMap<Class<object>, AgentMetadata>([
21
+ ]),
22
+ tools: readonlyMetadataMap<Class<object>, ToolMetadata>([
23
+ ]),
24
+ prompts: readonlyMetadataMap<Class<object>, PromptMetadata>([
25
+ ]),
26
+ });
@@ -0,0 +1,170 @@
1
+ import type { Class } from "../di";
2
+
3
+ export { Agent } from "./decorators/Agent";
4
+ export { Prompt } from "./decorators/Prompt";
5
+ export { Task, type TaskDecoratorOptions } from "./decorators/Task";
6
+ export { Tool } from "./decorators/Tool";
7
+ export { describeTool } from "./Tool.contract";
8
+ export type {
9
+ AgentToolHookKindV1, AgentToolHookRefV1, AgentToolRequiredHookRefV1, AgentToolHookRegistrationBaseV1,
10
+ AgentToolHookRegistrationV1, AgentToolHookContextV1, AgentToolCallProjectionV1, AgentToolDescriptorProjectionV1,
11
+ AgentToolBeforeEffectEventV1, AgentToolEnforcementDecisionV1, AgentToolEnforcementHookV1,
12
+ AgentToolTerminalProjectionV1, AgentToolSettlementEventV1, AgentToolSettlementResultV1,
13
+ AgentToolSettlementHookV1, AgentToolObserverEventV1, AgentToolObserverHookV1, AgentToolAuditHookProjectionV1,
14
+ } from "./AgentToolHooks";
15
+ export {
16
+ AgentRuntimeError,
17
+ AgentSemanticError,
18
+ AgentSetupError,
19
+ AgentToolExecutionError,
20
+ AgentToolPreCommitError,
21
+ } from "./errors";
22
+ export {
23
+ AgentRuntime,
24
+ type AgentRuntimeInvokeOptions,
25
+ type AgentRuntimeOptions,
26
+ type AgentRuntimeResult,
27
+ type AgentRuntimeStatus,
28
+ type AgentRuntimeTaskInvokeOptions,
29
+ type AgentRuntimeToolCallContext,
30
+ type AgentRuntimeToolExecutionOptions,
31
+ } from "./AgentRuntime";
32
+ export {
33
+ ApproximateAgentContextTokenEstimator,
34
+ DefaultAgentContextBuilder,
35
+ mergeAgentContextLimits,
36
+ normalizeAgentContextLimits,
37
+ type AgentContext,
38
+ type AgentContextBuildInput,
39
+ type AgentContextBuilder,
40
+ type AgentContextLimits,
41
+ type AgentContextTokenEstimator,
42
+ type AgentContextTraceEntry,
43
+ type DefaultAgentContextBuilderOptions,
44
+ } from "./AgentContextBuilder";
45
+ export {
46
+ AgentToolExecutor,
47
+ type AgentExecutableTool,
48
+ type AgentToolAuditEntry,
49
+ type AgentToolAuditFailureMode,
50
+ type AgentToolAuditFunction,
51
+ type AgentToolAuditPhase,
52
+ type AgentToolAuditSink,
53
+ type AgentToolAuditSinkObject,
54
+ type AgentToolAuditToolInfo,
55
+ type AgentToolApprovalDecision,
56
+ type AgentToolApprovalFunction,
57
+ type AgentToolApprovalPolicy,
58
+ type AgentToolApprovalPolicyObject,
59
+ type AgentToolApprovalReason,
60
+ type AgentToolApprovalRequest,
61
+ type AgentToolExecutionApproval,
62
+ type AgentToolExecutionContext,
63
+ type AgentToolExecutionOptions,
64
+ type AgentToolExecutorOptions,
65
+ type AgentToolRetryBackoff,
66
+ type AgentToolRetryPolicy,
67
+ type AgentToolSchemaValidator,
68
+ type AgentToolValidationIssue,
69
+ type AgentToolValidationResult,
70
+ } from "./AgentToolExecutor";
71
+ export {
72
+ AGENT_MODEL_PROVIDER,
73
+ type AgentModelProvider,
74
+ type AgentModelProviderContext,
75
+ } from "./ModelProvider";
76
+ export {
77
+ AgentRegistry,
78
+ collectAgentCatalog,
79
+ type AgentCatalog,
80
+ type AgentCatalogExtras,
81
+ type AgentDefinition,
82
+ type AgentMetadataIndex,
83
+ type AgentTaskDefinition,
84
+ type PromptDefinition,
85
+ type ToolDefinition,
86
+ } from "./AgentRegistry";
87
+ export type { AgentDataDefinition } from "./AgentDataDefinition";
88
+ export {
89
+ agentMetadataOf,
90
+ agentTaskMetadataOf,
91
+ promptMetadataOf,
92
+ toolMetadataOf,
93
+ type AgentMetadata,
94
+ type AgentOptions,
95
+ type AgentTaskMetadata,
96
+ type AgentTaskOptions,
97
+ type PromptMetadata,
98
+ type PromptOptions,
99
+ type PromptSectionKind,
100
+ type PromptSectionMetadata,
101
+ type PromptSectionOptions,
102
+ type ToolApproval,
103
+ type ToolMetadata,
104
+ type ToolOptions,
105
+ type ToolSideEffect,
106
+ } from "./metadata";
107
+ export {
108
+ agentClassSchema,
109
+ agentData,
110
+ agentFile,
111
+ agentImage,
112
+ agentInvocation,
113
+ agentJsonSchema,
114
+ agentMessage,
115
+ agentModelCapabilities,
116
+ agentModelRequest,
117
+ agentModelResponse,
118
+ agentOutput,
119
+ agentOutputContract,
120
+ agentText,
121
+ agentToolCall,
122
+ agentToolCallPart,
123
+ agentToolContract,
124
+ agentToolResult,
125
+ agentToolResultPart,
126
+ normalizeJsonValue,
127
+ type AgentClassSchemaContract,
128
+ type AgentContentInput,
129
+ type AgentContentPart,
130
+ type AgentDataPart,
131
+ type AgentFilePart,
132
+ type AgentFinishReason,
133
+ type AgentImagePart,
134
+ type AgentInvocation,
135
+ type AgentInvocationOptions,
136
+ type AgentJsonSchemaContract,
137
+ type AgentMessage,
138
+ type AgentMessageOptions,
139
+ type AgentMessageRole,
140
+ type AgentModelCapabilities,
141
+ type AgentModelRequest,
142
+ type AgentModelResponse,
143
+ type AgentOutputContract,
144
+ type AgentOutputMode,
145
+ type AgentSchemaContract,
146
+ type AgentStreamEvent,
147
+ type AgentTextPart,
148
+ type AgentToolCall,
149
+ type AgentToolCallPart,
150
+ type AgentToolContract,
151
+ type AgentToolError,
152
+ type AgentToolResult,
153
+ type AgentToolResultPart,
154
+ type AgentToolResultStatus,
155
+ type AgentUsage,
156
+ type JsonObject,
157
+ type JsonPrimitive,
158
+ type JsonValue,
159
+ } from "./semantic";
160
+
161
+ // Augment the declaring file, not the "../di" re-export: re-export targets
162
+ // depend on program file order and silently stop merging in some projects.
163
+ declare module "../di/module/types/BazisModule" {
164
+ interface BazisModuleMetadata {
165
+ readonly agents?: readonly Class<object>[];
166
+ readonly tools?: readonly Class<object>[];
167
+ readonly prompts?: readonly Class<object>[];
168
+ readonly agentToolHooks?: readonly import("./AgentToolHooks").AgentToolHookRegistrationV1[];
169
+ }
170
+ }