@vurb/core 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +677 -0
- package/dist/cli/args.d.ts +26 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +117 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/commands/create.d.ts +11 -0
- package/dist/cli/commands/create.d.ts.map +1 -0
- package/dist/cli/commands/create.js +121 -0
- package/dist/cli/commands/create.js.map +1 -0
- package/dist/cli/commands/deploy.d.ts +3 -0
- package/dist/cli/commands/deploy.d.ts.map +1 -0
- package/dist/cli/commands/deploy.js +268 -0
- package/dist/cli/commands/deploy.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +9 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +58 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/lock.d.ts +5 -0
- package/dist/cli/commands/lock.d.ts.map +1 -0
- package/dist/cli/commands/lock.js +94 -0
- package/dist/cli/commands/lock.js.map +1 -0
- package/dist/cli/commands/remote.d.ts +3 -0
- package/dist/cli/commands/remote.d.ts.map +1 -0
- package/dist/cli/commands/remote.js +37 -0
- package/dist/cli/commands/remote.js.map +1 -0
- package/dist/cli/constants.d.ts +18 -0
- package/dist/cli/constants.d.ts.map +1 -0
- package/dist/cli/constants.js +95 -0
- package/dist/cli/constants.js.map +1 -0
- package/dist/cli/progress.d.ts +34 -0
- package/dist/cli/progress.d.ts.map +1 -0
- package/dist/cli/progress.js +102 -0
- package/dist/cli/progress.js.map +1 -0
- package/dist/cli/rc.d.ts +11 -0
- package/dist/cli/rc.d.ts.map +1 -0
- package/dist/cli/rc.js +75 -0
- package/dist/cli/rc.js.map +1 -0
- package/dist/cli/registry.d.ts +25 -0
- package/dist/cli/registry.d.ts.map +1 -0
- package/dist/cli/registry.js +86 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/cli/scaffold.d.ts +10 -0
- package/dist/cli/scaffold.d.ts.map +1 -0
- package/dist/cli/scaffold.js +105 -0
- package/dist/cli/scaffold.js.map +1 -0
- package/dist/cli/templates/config.d.ts +14 -0
- package/dist/cli/templates/config.d.ts.map +1 -0
- package/dist/cli/templates/config.js +133 -0
- package/dist/cli/templates/config.js.map +1 -0
- package/dist/cli/templates/constants.d.ts +9 -0
- package/dist/cli/templates/constants.d.ts.map +1 -0
- package/dist/cli/templates/constants.js +9 -0
- package/dist/cli/templates/constants.js.map +1 -0
- package/dist/cli/templates/core.d.ts +14 -0
- package/dist/cli/templates/core.d.ts.map +1 -0
- package/dist/cli/templates/core.js +186 -0
- package/dist/cli/templates/core.js.map +1 -0
- package/dist/cli/templates/cursor.d.ts +8 -0
- package/dist/cli/templates/cursor.d.ts.map +1 -0
- package/dist/cli/templates/cursor.js +13 -0
- package/dist/cli/templates/cursor.js.map +1 -0
- package/dist/cli/templates/index.d.ts +17 -0
- package/dist/cli/templates/index.d.ts.map +1 -0
- package/dist/cli/templates/index.js +27 -0
- package/dist/cli/templates/index.js.map +1 -0
- package/dist/cli/templates/middleware.d.ts +7 -0
- package/dist/cli/templates/middleware.d.ts.map +1 -0
- package/dist/cli/templates/middleware.js +34 -0
- package/dist/cli/templates/middleware.js.map +1 -0
- package/dist/cli/templates/presenter.d.ts +7 -0
- package/dist/cli/templates/presenter.d.ts.map +1 -0
- package/dist/cli/templates/presenter.js +46 -0
- package/dist/cli/templates/presenter.js.map +1 -0
- package/dist/cli/templates/prompt.d.ts +7 -0
- package/dist/cli/templates/prompt.d.ts.map +1 -0
- package/dist/cli/templates/prompt.js +42 -0
- package/dist/cli/templates/prompt.js.map +1 -0
- package/dist/cli/templates/readme.d.ts +8 -0
- package/dist/cli/templates/readme.d.ts.map +1 -0
- package/dist/cli/templates/readme.js +173 -0
- package/dist/cli/templates/readme.js.map +1 -0
- package/dist/cli/templates/testing.d.ts +11 -0
- package/dist/cli/templates/testing.d.ts.map +1 -0
- package/dist/cli/templates/testing.js +101 -0
- package/dist/cli/templates/testing.js.map +1 -0
- package/dist/cli/templates/tools.d.ts +13 -0
- package/dist/cli/templates/tools.d.ts.map +1 -0
- package/dist/cli/templates/tools.js +63 -0
- package/dist/cli/templates/tools.js.map +1 -0
- package/dist/cli/templates/vectors/database.d.ts +9 -0
- package/dist/cli/templates/vectors/database.d.ts.map +1 -0
- package/dist/cli/templates/vectors/database.js +82 -0
- package/dist/cli/templates/vectors/database.js.map +1 -0
- package/dist/cli/templates/vectors/index.d.ts +9 -0
- package/dist/cli/templates/vectors/index.d.ts.map +1 -0
- package/dist/cli/templates/vectors/index.js +9 -0
- package/dist/cli/templates/vectors/index.js.map +1 -0
- package/dist/cli/templates/vectors/oauth.d.ts +10 -0
- package/dist/cli/templates/vectors/oauth.d.ts.map +1 -0
- package/dist/cli/templates/vectors/oauth.js +76 -0
- package/dist/cli/templates/vectors/oauth.js.map +1 -0
- package/dist/cli/templates/vectors/openapi.d.ts +10 -0
- package/dist/cli/templates/vectors/openapi.d.ts.map +1 -0
- package/dist/cli/templates/vectors/openapi.js +106 -0
- package/dist/cli/templates/vectors/openapi.js.map +1 -0
- package/dist/cli/templates/vectors/workflow.d.ts +7 -0
- package/dist/cli/templates/vectors/workflow.d.ts.map +1 -0
- package/dist/cli/templates/vectors/workflow.js +49 -0
- package/dist/cli/templates/vectors/workflow.js.map +1 -0
- package/dist/cli/types.d.ts +36 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +10 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/utils.d.ts +27 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/cli/utils.js +73 -0
- package/dist/cli/utils.js.map +1 -0
- package/dist/cli/vurb.d.ts +15 -0
- package/dist/cli/vurb.d.ts.map +1 -0
- package/dist/cli/vurb.js +87 -0
- package/dist/cli/vurb.js.map +1 -0
- package/dist/client/InferRouter.d.ts +92 -0
- package/dist/client/InferRouter.d.ts.map +1 -0
- package/dist/client/InferRouter.js +31 -0
- package/dist/client/InferRouter.js.map +1 -0
- package/dist/client/VurbClient.d.ts +282 -0
- package/dist/client/VurbClient.d.ts.map +1 -0
- package/dist/client/VurbClient.js +287 -0
- package/dist/client/VurbClient.js.map +1 -0
- package/dist/client/createTypedRegistry.d.ts +25 -0
- package/dist/client/createTypedRegistry.d.ts.map +1 -0
- package/dist/client/createTypedRegistry.js +74 -0
- package/dist/client/createTypedRegistry.js.map +1 -0
- package/dist/client/index.d.ts +6 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +4 -0
- package/dist/client/index.js.map +1 -0
- package/dist/converters/ConverterBase.d.ts +68 -0
- package/dist/converters/ConverterBase.d.ts.map +1 -0
- package/dist/converters/ConverterBase.js +62 -0
- package/dist/converters/ConverterBase.js.map +1 -0
- package/dist/converters/GroupConverter.d.ts +33 -0
- package/dist/converters/GroupConverter.d.ts.map +1 -0
- package/dist/converters/GroupConverter.js +26 -0
- package/dist/converters/GroupConverter.js.map +1 -0
- package/dist/converters/PromptConverter.d.ts +33 -0
- package/dist/converters/PromptConverter.d.ts.map +1 -0
- package/dist/converters/PromptConverter.js +26 -0
- package/dist/converters/PromptConverter.js.map +1 -0
- package/dist/converters/ResourceConverter.d.ts +35 -0
- package/dist/converters/ResourceConverter.d.ts.map +1 -0
- package/dist/converters/ResourceConverter.js +28 -0
- package/dist/converters/ResourceConverter.js.map +1 -0
- package/dist/converters/ToolAnnotationsConverter.d.ts +33 -0
- package/dist/converters/ToolAnnotationsConverter.d.ts.map +1 -0
- package/dist/converters/ToolAnnotationsConverter.js +26 -0
- package/dist/converters/ToolAnnotationsConverter.js.map +1 -0
- package/dist/converters/ToolConverter.d.ts +35 -0
- package/dist/converters/ToolConverter.d.ts.map +1 -0
- package/dist/converters/ToolConverter.js +28 -0
- package/dist/converters/ToolConverter.js.map +1 -0
- package/dist/converters/index.d.ts +7 -0
- package/dist/converters/index.d.ts.map +1 -0
- package/dist/converters/index.js +7 -0
- package/dist/converters/index.js.map +1 -0
- package/dist/core/StandardSchema.d.ts +178 -0
- package/dist/core/StandardSchema.d.ts.map +1 -0
- package/dist/core/StandardSchema.js +174 -0
- package/dist/core/StandardSchema.js.map +1 -0
- package/dist/core/builder/ActionGroupBuilder.d.ts +208 -0
- package/dist/core/builder/ActionGroupBuilder.d.ts.map +1 -0
- package/dist/core/builder/ActionGroupBuilder.js +193 -0
- package/dist/core/builder/ActionGroupBuilder.js.map +1 -0
- package/dist/core/builder/ErrorBuilder.d.ts +59 -0
- package/dist/core/builder/ErrorBuilder.d.ts.map +1 -0
- package/dist/core/builder/ErrorBuilder.js +99 -0
- package/dist/core/builder/ErrorBuilder.js.map +1 -0
- package/dist/core/builder/FluentRouter.d.ts +96 -0
- package/dist/core/builder/FluentRouter.d.ts.map +1 -0
- package/dist/core/builder/FluentRouter.js +116 -0
- package/dist/core/builder/FluentRouter.js.map +1 -0
- package/dist/core/builder/FluentSchemaHelpers.d.ts +237 -0
- package/dist/core/builder/FluentSchemaHelpers.d.ts.map +1 -0
- package/dist/core/builder/FluentSchemaHelpers.js +227 -0
- package/dist/core/builder/FluentSchemaHelpers.js.map +1 -0
- package/dist/core/builder/FluentToolBuilder.d.ts +419 -0
- package/dist/core/builder/FluentToolBuilder.d.ts.map +1 -0
- package/dist/core/builder/FluentToolBuilder.js +643 -0
- package/dist/core/builder/FluentToolBuilder.js.map +1 -0
- package/dist/core/builder/GroupedToolBuilder.d.ts +832 -0
- package/dist/core/builder/GroupedToolBuilder.d.ts.map +1 -0
- package/dist/core/builder/GroupedToolBuilder.js +1306 -0
- package/dist/core/builder/GroupedToolBuilder.js.map +1 -0
- package/dist/core/builder/ParamDescriptors.d.ts +142 -0
- package/dist/core/builder/ParamDescriptors.d.ts.map +1 -0
- package/dist/core/builder/ParamDescriptors.js +164 -0
- package/dist/core/builder/ParamDescriptors.js.map +1 -0
- package/dist/core/builder/ToolDefinitionCompiler.d.ts +37 -0
- package/dist/core/builder/ToolDefinitionCompiler.d.ts.map +1 -0
- package/dist/core/builder/ToolDefinitionCompiler.js +72 -0
- package/dist/core/builder/ToolDefinitionCompiler.js.map +1 -0
- package/dist/core/builder/defineTool.d.ts +180 -0
- package/dist/core/builder/defineTool.d.ts.map +1 -0
- package/dist/core/builder/defineTool.js +164 -0
- package/dist/core/builder/defineTool.js.map +1 -0
- package/dist/core/builder/index.d.ts +13 -0
- package/dist/core/builder/index.d.ts.map +1 -0
- package/dist/core/builder/index.js +13 -0
- package/dist/core/builder/index.js.map +1 -0
- package/dist/core/createGroup.d.ts +140 -0
- package/dist/core/createGroup.d.ts.map +1 -0
- package/dist/core/createGroup.js +144 -0
- package/dist/core/createGroup.js.map +1 -0
- package/dist/core/execution/ConcurrencyGuard.d.ts +103 -0
- package/dist/core/execution/ConcurrencyGuard.d.ts.map +1 -0
- package/dist/core/execution/ConcurrencyGuard.js +147 -0
- package/dist/core/execution/ConcurrencyGuard.js.map +1 -0
- package/dist/core/execution/EgressGuard.d.ts +72 -0
- package/dist/core/execution/EgressGuard.d.ts.map +1 -0
- package/dist/core/execution/EgressGuard.js +163 -0
- package/dist/core/execution/EgressGuard.js.map +1 -0
- package/dist/core/execution/ExecutionPipeline.d.ts +67 -0
- package/dist/core/execution/ExecutionPipeline.d.ts.map +1 -0
- package/dist/core/execution/ExecutionPipeline.js +176 -0
- package/dist/core/execution/ExecutionPipeline.js.map +1 -0
- package/dist/core/execution/MiddlewareCompiler.d.ts +35 -0
- package/dist/core/execution/MiddlewareCompiler.d.ts.map +1 -0
- package/dist/core/execution/MiddlewareCompiler.js +111 -0
- package/dist/core/execution/MiddlewareCompiler.js.map +1 -0
- package/dist/core/execution/MutationSerializer.d.ts +78 -0
- package/dist/core/execution/MutationSerializer.d.ts.map +1 -0
- package/dist/core/execution/MutationSerializer.js +106 -0
- package/dist/core/execution/MutationSerializer.js.map +1 -0
- package/dist/core/execution/PipelineHooks.d.ts +46 -0
- package/dist/core/execution/PipelineHooks.d.ts.map +1 -0
- package/dist/core/execution/PipelineHooks.js +66 -0
- package/dist/core/execution/PipelineHooks.js.map +1 -0
- package/dist/core/execution/ProgressHelper.d.ts +67 -0
- package/dist/core/execution/ProgressHelper.d.ts.map +1 -0
- package/dist/core/execution/ProgressHelper.js +59 -0
- package/dist/core/execution/ProgressHelper.js.map +1 -0
- package/dist/core/execution/ValidationErrorFormatter.d.ts +34 -0
- package/dist/core/execution/ValidationErrorFormatter.d.ts.map +1 -0
- package/dist/core/execution/ValidationErrorFormatter.js +193 -0
- package/dist/core/execution/ValidationErrorFormatter.js.map +1 -0
- package/dist/core/execution/index.d.ts +9 -0
- package/dist/core/execution/index.d.ts.map +1 -0
- package/dist/core/execution/index.js +9 -0
- package/dist/core/execution/index.js.map +1 -0
- package/dist/core/index.d.ts +34 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +29 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/initVurb.d.ts +295 -0
- package/dist/core/initVurb.d.ts.map +1 -0
- package/dist/core/initVurb.js +171 -0
- package/dist/core/initVurb.js.map +1 -0
- package/dist/core/middleware/ContextDerivation.d.ts +124 -0
- package/dist/core/middleware/ContextDerivation.d.ts.map +1 -0
- package/dist/core/middleware/ContextDerivation.js +117 -0
- package/dist/core/middleware/ContextDerivation.js.map +1 -0
- package/dist/core/middleware/index.d.ts +4 -0
- package/dist/core/middleware/index.d.ts.map +1 -0
- package/dist/core/middleware/index.js +3 -0
- package/dist/core/middleware/index.js.map +1 -0
- package/dist/core/registry/ToolFilterEngine.d.ts +27 -0
- package/dist/core/registry/ToolFilterEngine.d.ts.map +1 -0
- package/dist/core/registry/ToolFilterEngine.js +45 -0
- package/dist/core/registry/ToolFilterEngine.js.map +1 -0
- package/dist/core/registry/ToolRegistry.d.ts +259 -0
- package/dist/core/registry/ToolRegistry.d.ts.map +1 -0
- package/dist/core/registry/ToolRegistry.js +343 -0
- package/dist/core/registry/ToolRegistry.js.map +1 -0
- package/dist/core/registry/index.d.ts +4 -0
- package/dist/core/registry/index.d.ts.map +1 -0
- package/dist/core/registry/index.js +3 -0
- package/dist/core/registry/index.js.map +1 -0
- package/dist/core/response.d.ts +289 -0
- package/dist/core/response.d.ts.map +1 -0
- package/dist/core/response.js +286 -0
- package/dist/core/response.js.map +1 -0
- package/dist/core/result.d.ts +93 -0
- package/dist/core/result.d.ts.map +1 -0
- package/dist/core/result.js +66 -0
- package/dist/core/result.js.map +1 -0
- package/dist/core/schema/AnnotationAggregator.d.ts +11 -0
- package/dist/core/schema/AnnotationAggregator.d.ts.map +1 -0
- package/dist/core/schema/AnnotationAggregator.js +40 -0
- package/dist/core/schema/AnnotationAggregator.js.map +1 -0
- package/dist/core/schema/DescriptionGenerator.d.ts +12 -0
- package/dist/core/schema/DescriptionGenerator.d.ts.map +1 -0
- package/dist/core/schema/DescriptionGenerator.js +81 -0
- package/dist/core/schema/DescriptionGenerator.js.map +1 -0
- package/dist/core/schema/SchemaGenerator.d.ts +15 -0
- package/dist/core/schema/SchemaGenerator.d.ts.map +1 -0
- package/dist/core/schema/SchemaGenerator.js +192 -0
- package/dist/core/schema/SchemaGenerator.js.map +1 -0
- package/dist/core/schema/SchemaUtils.d.ts +26 -0
- package/dist/core/schema/SchemaUtils.d.ts.map +1 -0
- package/dist/core/schema/SchemaUtils.js +85 -0
- package/dist/core/schema/SchemaUtils.js.map +1 -0
- package/dist/core/schema/ToonDescriptionGenerator.d.ts +3 -0
- package/dist/core/schema/ToonDescriptionGenerator.d.ts.map +1 -0
- package/dist/core/schema/ToonDescriptionGenerator.js +65 -0
- package/dist/core/schema/ToonDescriptionGenerator.js.map +1 -0
- package/dist/core/schema/index.d.ts +7 -0
- package/dist/core/schema/index.d.ts.map +1 -0
- package/dist/core/schema/index.js +7 -0
- package/dist/core/schema/index.js.map +1 -0
- package/dist/core/serialization/JsonSerializer.d.ts +71 -0
- package/dist/core/serialization/JsonSerializer.d.ts.map +1 -0
- package/dist/core/serialization/JsonSerializer.js +192 -0
- package/dist/core/serialization/JsonSerializer.js.map +1 -0
- package/dist/core/serialization/index.d.ts +7 -0
- package/dist/core/serialization/index.d.ts.map +1 -0
- package/dist/core/serialization/index.js +7 -0
- package/dist/core/serialization/index.js.map +1 -0
- package/dist/core/types.d.ts +303 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +17 -0
- package/dist/core/types.js.map +1 -0
- package/dist/domain/Annotations.d.ts +42 -0
- package/dist/domain/Annotations.d.ts.map +1 -0
- package/dist/domain/Annotations.js +16 -0
- package/dist/domain/Annotations.js.map +1 -0
- package/dist/domain/BaseModel.d.ts +50 -0
- package/dist/domain/BaseModel.d.ts.map +1 -0
- package/dist/domain/BaseModel.js +41 -0
- package/dist/domain/BaseModel.js.map +1 -0
- package/dist/domain/Group.d.ts +99 -0
- package/dist/domain/Group.d.ts.map +1 -0
- package/dist/domain/Group.js +172 -0
- package/dist/domain/Group.js.map +1 -0
- package/dist/domain/GroupItem.d.ts +46 -0
- package/dist/domain/GroupItem.d.ts.map +1 -0
- package/dist/domain/GroupItem.js +58 -0
- package/dist/domain/GroupItem.js.map +1 -0
- package/dist/domain/Icon.d.ts +41 -0
- package/dist/domain/Icon.d.ts.map +1 -0
- package/dist/domain/Icon.js +15 -0
- package/dist/domain/Icon.js.map +1 -0
- package/dist/domain/Prompt.d.ts +49 -0
- package/dist/domain/Prompt.d.ts.map +1 -0
- package/dist/domain/Prompt.js +59 -0
- package/dist/domain/Prompt.js.map +1 -0
- package/dist/domain/PromptArgument.d.ts +23 -0
- package/dist/domain/PromptArgument.d.ts.map +1 -0
- package/dist/domain/PromptArgument.js +27 -0
- package/dist/domain/PromptArgument.js.map +1 -0
- package/dist/domain/Resource.d.ts +37 -0
- package/dist/domain/Resource.d.ts.map +1 -0
- package/dist/domain/Resource.js +39 -0
- package/dist/domain/Resource.js.map +1 -0
- package/dist/domain/Role.d.ts +23 -0
- package/dist/domain/Role.d.ts.map +1 -0
- package/dist/domain/Role.js +24 -0
- package/dist/domain/Role.js.map +1 -0
- package/dist/domain/Tool.d.ts +39 -0
- package/dist/domain/Tool.d.ts.map +1 -0
- package/dist/domain/Tool.js +41 -0
- package/dist/domain/Tool.js.map +1 -0
- package/dist/domain/ToolAnnotations.d.ts +48 -0
- package/dist/domain/ToolAnnotations.d.ts.map +1 -0
- package/dist/domain/ToolAnnotations.js +15 -0
- package/dist/domain/ToolAnnotations.js.map +1 -0
- package/dist/domain/index.d.ts +16 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +13 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/utils.d.ts +6 -0
- package/dist/domain/utils.d.ts.map +1 -0
- package/dist/domain/utils.js +12 -0
- package/dist/domain/utils.js.map +1 -0
- package/dist/edge-stub.d.ts +73 -0
- package/dist/edge-stub.d.ts.map +1 -0
- package/dist/edge-stub.js +83 -0
- package/dist/edge-stub.js.map +1 -0
- package/dist/exposition/ExpositionCompiler.d.ts +66 -0
- package/dist/exposition/ExpositionCompiler.d.ts.map +1 -0
- package/dist/exposition/ExpositionCompiler.js +279 -0
- package/dist/exposition/ExpositionCompiler.js.map +1 -0
- package/dist/exposition/index.d.ts +4 -0
- package/dist/exposition/index.d.ts.map +1 -0
- package/dist/exposition/index.js +2 -0
- package/dist/exposition/index.js.map +1 -0
- package/dist/exposition/types.d.ts +58 -0
- package/dist/exposition/types.d.ts.map +1 -0
- package/dist/exposition/types.js +11 -0
- package/dist/exposition/types.js.map +1 -0
- package/dist/fsm/StateMachineGate.d.ts +294 -0
- package/dist/fsm/StateMachineGate.d.ts.map +1 -0
- package/dist/fsm/StateMachineGate.js +400 -0
- package/dist/fsm/StateMachineGate.js.map +1 -0
- package/dist/index.d.ts +148 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +112 -0
- package/dist/index.js.map +1 -0
- package/dist/introspection/BehaviorDigest.d.ts +112 -0
- package/dist/introspection/BehaviorDigest.d.ts.map +1 -0
- package/dist/introspection/BehaviorDigest.js +149 -0
- package/dist/introspection/BehaviorDigest.js.map +1 -0
- package/dist/introspection/CapabilityLockfile.d.ts +261 -0
- package/dist/introspection/CapabilityLockfile.d.ts.map +1 -0
- package/dist/introspection/CapabilityLockfile.js +395 -0
- package/dist/introspection/CapabilityLockfile.js.map +1 -0
- package/dist/introspection/ContractAwareSelfHealing.d.ts +90 -0
- package/dist/introspection/ContractAwareSelfHealing.d.ts.map +1 -0
- package/dist/introspection/ContractAwareSelfHealing.js +132 -0
- package/dist/introspection/ContractAwareSelfHealing.js.map +1 -0
- package/dist/introspection/ContractDiff.d.ts +91 -0
- package/dist/introspection/ContractDiff.d.ts.map +1 -0
- package/dist/introspection/ContractDiff.js +466 -0
- package/dist/introspection/ContractDiff.js.map +1 -0
- package/dist/introspection/CryptoAttestation.d.ts +143 -0
- package/dist/introspection/CryptoAttestation.d.ts.map +1 -0
- package/dist/introspection/CryptoAttestation.js +192 -0
- package/dist/introspection/CryptoAttestation.js.map +1 -0
- package/dist/introspection/EntitlementScanner.d.ts +177 -0
- package/dist/introspection/EntitlementScanner.d.ts.map +1 -0
- package/dist/introspection/EntitlementScanner.js +459 -0
- package/dist/introspection/EntitlementScanner.js.map +1 -0
- package/dist/introspection/GovernanceObserver.d.ts +88 -0
- package/dist/introspection/GovernanceObserver.d.ts.map +1 -0
- package/dist/introspection/GovernanceObserver.js +136 -0
- package/dist/introspection/GovernanceObserver.js.map +1 -0
- package/dist/introspection/IntrospectionResource.d.ts +20 -0
- package/dist/introspection/IntrospectionResource.d.ts.map +1 -0
- package/dist/introspection/IntrospectionResource.js +112 -0
- package/dist/introspection/IntrospectionResource.js.map +1 -0
- package/dist/introspection/ManifestCompiler.d.ts +33 -0
- package/dist/introspection/ManifestCompiler.d.ts.map +1 -0
- package/dist/introspection/ManifestCompiler.js +88 -0
- package/dist/introspection/ManifestCompiler.js.map +1 -0
- package/dist/introspection/SemanticProbe.d.ts +207 -0
- package/dist/introspection/SemanticProbe.d.ts.map +1 -0
- package/dist/introspection/SemanticProbe.js +274 -0
- package/dist/introspection/SemanticProbe.js.map +1 -0
- package/dist/introspection/TokenEconomics.d.ts +210 -0
- package/dist/introspection/TokenEconomics.d.ts.map +1 -0
- package/dist/introspection/TokenEconomics.js +292 -0
- package/dist/introspection/TokenEconomics.js.map +1 -0
- package/dist/introspection/ToolContract.d.ts +161 -0
- package/dist/introspection/ToolContract.d.ts.map +1 -0
- package/dist/introspection/ToolContract.js +218 -0
- package/dist/introspection/ToolContract.js.map +1 -0
- package/dist/introspection/canonicalize.d.ts +35 -0
- package/dist/introspection/canonicalize.d.ts.map +1 -0
- package/dist/introspection/canonicalize.js +72 -0
- package/dist/introspection/canonicalize.js.map +1 -0
- package/dist/introspection/index.d.ts +26 -0
- package/dist/introspection/index.d.ts.map +1 -0
- package/dist/introspection/index.js +24 -0
- package/dist/introspection/index.js.map +1 -0
- package/dist/introspection/types.d.ts +120 -0
- package/dist/introspection/types.d.ts.map +1 -0
- package/dist/introspection/types.js +13 -0
- package/dist/introspection/types.js.map +1 -0
- package/dist/observability/DebugObserver.d.ts +185 -0
- package/dist/observability/DebugObserver.d.ts.map +1 -0
- package/dist/observability/DebugObserver.js +102 -0
- package/dist/observability/DebugObserver.js.map +1 -0
- package/dist/observability/TelemetryBus.d.ts +88 -0
- package/dist/observability/TelemetryBus.d.ts.map +1 -0
- package/dist/observability/TelemetryBus.js +463 -0
- package/dist/observability/TelemetryBus.js.map +1 -0
- package/dist/observability/TelemetryEvent.d.ts +177 -0
- package/dist/observability/TelemetryEvent.d.ts.map +1 -0
- package/dist/observability/TelemetryEvent.js +2 -0
- package/dist/observability/TelemetryEvent.js.map +1 -0
- package/dist/observability/Tracing.d.ts +155 -0
- package/dist/observability/Tracing.d.ts.map +1 -0
- package/dist/observability/Tracing.js +67 -0
- package/dist/observability/Tracing.js.map +1 -0
- package/dist/observability/index.d.ts +13 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +12 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/presenter/PostProcessor.d.ts +52 -0
- package/dist/presenter/PostProcessor.d.ts.map +1 -0
- package/dist/presenter/PostProcessor.js +148 -0
- package/dist/presenter/PostProcessor.js.map +1 -0
- package/dist/presenter/Presenter.d.ts +575 -0
- package/dist/presenter/Presenter.d.ts.map +1 -0
- package/dist/presenter/Presenter.js +768 -0
- package/dist/presenter/Presenter.js.map +1 -0
- package/dist/presenter/PresenterValidationError.d.ts +42 -0
- package/dist/presenter/PresenterValidationError.d.ts.map +1 -0
- package/dist/presenter/PresenterValidationError.js +55 -0
- package/dist/presenter/PresenterValidationError.js.map +1 -0
- package/dist/presenter/RedactEngine.d.ts +110 -0
- package/dist/presenter/RedactEngine.d.ts.map +1 -0
- package/dist/presenter/RedactEngine.js +128 -0
- package/dist/presenter/RedactEngine.js.map +1 -0
- package/dist/presenter/ResponseBuilder.d.ts +262 -0
- package/dist/presenter/ResponseBuilder.d.ts.map +1 -0
- package/dist/presenter/ResponseBuilder.js +374 -0
- package/dist/presenter/ResponseBuilder.js.map +1 -0
- package/dist/presenter/SelectUtils.d.ts +78 -0
- package/dist/presenter/SelectUtils.d.ts.map +1 -0
- package/dist/presenter/SelectUtils.js +141 -0
- package/dist/presenter/SelectUtils.js.map +1 -0
- package/dist/presenter/ZodDescriptionExtractor.d.ts +54 -0
- package/dist/presenter/ZodDescriptionExtractor.d.ts.map +1 -0
- package/dist/presenter/ZodDescriptionExtractor.js +131 -0
- package/dist/presenter/ZodDescriptionExtractor.js.map +1 -0
- package/dist/presenter/definePresenter.d.ts +193 -0
- package/dist/presenter/definePresenter.d.ts.map +1 -0
- package/dist/presenter/definePresenter.js +99 -0
- package/dist/presenter/definePresenter.js.map +1 -0
- package/dist/presenter/index.d.ts +21 -0
- package/dist/presenter/index.d.ts.map +1 -0
- package/dist/presenter/index.js +28 -0
- package/dist/presenter/index.js.map +1 -0
- package/dist/presenter/suggest.d.ts +39 -0
- package/dist/presenter/suggest.d.ts.map +1 -0
- package/dist/presenter/suggest.js +41 -0
- package/dist/presenter/suggest.js.map +1 -0
- package/dist/presenter/typeHelpers.d.ts +147 -0
- package/dist/presenter/typeHelpers.d.ts.map +1 -0
- package/dist/presenter/typeHelpers.js +152 -0
- package/dist/presenter/typeHelpers.js.map +1 -0
- package/dist/presenter/ui.d.ts +205 -0
- package/dist/presenter/ui.d.ts.map +1 -0
- package/dist/presenter/ui.js +222 -0
- package/dist/presenter/ui.js.map +1 -0
- package/dist/prompt/CursorCodec.d.ts +43 -0
- package/dist/prompt/CursorCodec.d.ts.map +1 -0
- package/dist/prompt/CursorCodec.js +171 -0
- package/dist/prompt/CursorCodec.js.map +1 -0
- package/dist/prompt/FluentPromptBuilder.d.ts +155 -0
- package/dist/prompt/FluentPromptBuilder.d.ts.map +1 -0
- package/dist/prompt/FluentPromptBuilder.js +195 -0
- package/dist/prompt/FluentPromptBuilder.js.map +1 -0
- package/dist/prompt/HydrationSandbox.d.ts +55 -0
- package/dist/prompt/HydrationSandbox.d.ts.map +1 -0
- package/dist/prompt/HydrationSandbox.js +122 -0
- package/dist/prompt/HydrationSandbox.js.map +1 -0
- package/dist/prompt/PromptExecutionPipeline.d.ts +61 -0
- package/dist/prompt/PromptExecutionPipeline.d.ts.map +1 -0
- package/dist/prompt/PromptExecutionPipeline.js +177 -0
- package/dist/prompt/PromptExecutionPipeline.js.map +1 -0
- package/dist/prompt/PromptMessage.d.ts +133 -0
- package/dist/prompt/PromptMessage.d.ts.map +1 -0
- package/dist/prompt/PromptMessage.js +182 -0
- package/dist/prompt/PromptMessage.js.map +1 -0
- package/dist/prompt/PromptRegistry.d.ts +236 -0
- package/dist/prompt/PromptRegistry.d.ts.map +1 -0
- package/dist/prompt/PromptRegistry.js +399 -0
- package/dist/prompt/PromptRegistry.js.map +1 -0
- package/dist/prompt/definePrompt.d.ts +111 -0
- package/dist/prompt/definePrompt.d.ts.map +1 -0
- package/dist/prompt/definePrompt.js +130 -0
- package/dist/prompt/definePrompt.js.map +1 -0
- package/dist/prompt/index.d.ts +12 -0
- package/dist/prompt/index.d.ts.map +1 -0
- package/dist/prompt/index.js +13 -0
- package/dist/prompt/index.js.map +1 -0
- package/dist/prompt/types.d.ts +425 -0
- package/dist/prompt/types.d.ts.map +1 -0
- package/dist/prompt/types.js +19 -0
- package/dist/prompt/types.js.map +1 -0
- package/dist/sandbox/SandboxEngine.d.ts +225 -0
- package/dist/sandbox/SandboxEngine.d.ts.map +1 -0
- package/dist/sandbox/SandboxEngine.js +437 -0
- package/dist/sandbox/SandboxEngine.js.map +1 -0
- package/dist/sandbox/SandboxGuard.d.ts +47 -0
- package/dist/sandbox/SandboxGuard.d.ts.map +1 -0
- package/dist/sandbox/SandboxGuard.js +127 -0
- package/dist/sandbox/SandboxGuard.js.map +1 -0
- package/dist/sandbox/index.d.ts +23 -0
- package/dist/sandbox/index.d.ts.map +1 -0
- package/dist/sandbox/index.js +26 -0
- package/dist/sandbox/index.js.map +1 -0
- package/dist/server/DevServer.d.ts +120 -0
- package/dist/server/DevServer.d.ts.map +1 -0
- package/dist/server/DevServer.js +252 -0
- package/dist/server/DevServer.js.map +1 -0
- package/dist/server/ServerAttachment.d.ts +354 -0
- package/dist/server/ServerAttachment.d.ts.map +1 -0
- package/dist/server/ServerAttachment.js +709 -0
- package/dist/server/ServerAttachment.js.map +1 -0
- package/dist/server/ServerResolver.d.ts +24 -0
- package/dist/server/ServerResolver.d.ts.map +1 -0
- package/dist/server/ServerResolver.js +50 -0
- package/dist/server/ServerResolver.js.map +1 -0
- package/dist/server/autoDiscover.d.ts +75 -0
- package/dist/server/autoDiscover.d.ts.map +1 -0
- package/dist/server/autoDiscover.js +164 -0
- package/dist/server/autoDiscover.js.map +1 -0
- package/dist/server/index.d.ts +12 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +11 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/startServer.d.ts +81 -0
- package/dist/server/startServer.d.ts.map +1 -0
- package/dist/server/startServer.js +143 -0
- package/dist/server/startServer.js.map +1 -0
- package/dist/state-sync/CausalEngine.d.ts +28 -0
- package/dist/state-sync/CausalEngine.d.ts.map +1 -0
- package/dist/state-sync/CausalEngine.js +17 -0
- package/dist/state-sync/CausalEngine.js.map +1 -0
- package/dist/state-sync/DescriptionDecorator.d.ts +31 -0
- package/dist/state-sync/DescriptionDecorator.d.ts.map +1 -0
- package/dist/state-sync/DescriptionDecorator.js +38 -0
- package/dist/state-sync/DescriptionDecorator.js.map +1 -0
- package/dist/state-sync/GlobMatcher.d.ts +29 -0
- package/dist/state-sync/GlobMatcher.d.ts.map +1 -0
- package/dist/state-sync/GlobMatcher.js +79 -0
- package/dist/state-sync/GlobMatcher.js.map +1 -0
- package/dist/state-sync/PolicyEngine.d.ts +75 -0
- package/dist/state-sync/PolicyEngine.d.ts.map +1 -0
- package/dist/state-sync/PolicyEngine.js +107 -0
- package/dist/state-sync/PolicyEngine.js.map +1 -0
- package/dist/state-sync/PolicyValidator.d.ts +67 -0
- package/dist/state-sync/PolicyValidator.d.ts.map +1 -0
- package/dist/state-sync/PolicyValidator.js +122 -0
- package/dist/state-sync/PolicyValidator.js.map +1 -0
- package/dist/state-sync/ResponseDecorator.d.ts +33 -0
- package/dist/state-sync/ResponseDecorator.d.ts.map +1 -0
- package/dist/state-sync/ResponseDecorator.js +20 -0
- package/dist/state-sync/ResponseDecorator.js.map +1 -0
- package/dist/state-sync/StateSyncBuilder.d.ts +77 -0
- package/dist/state-sync/StateSyncBuilder.d.ts.map +1 -0
- package/dist/state-sync/StateSyncBuilder.js +129 -0
- package/dist/state-sync/StateSyncBuilder.js.map +1 -0
- package/dist/state-sync/StateSyncLayer.d.ts +107 -0
- package/dist/state-sync/StateSyncLayer.d.ts.map +1 -0
- package/dist/state-sync/StateSyncLayer.js +158 -0
- package/dist/state-sync/StateSyncLayer.js.map +1 -0
- package/dist/state-sync/index.d.ts +27 -0
- package/dist/state-sync/index.d.ts.map +1 -0
- package/dist/state-sync/index.js +27 -0
- package/dist/state-sync/index.js.map +1 -0
- package/dist/state-sync/types.d.ts +174 -0
- package/dist/state-sync/types.d.ts.map +1 -0
- package/dist/state-sync/types.js +17 -0
- package/dist/state-sync/types.js.map +1 -0
- package/dist/testing/MvaMetaSymbol.d.ts +45 -0
- package/dist/testing/MvaMetaSymbol.d.ts.map +1 -0
- package/dist/testing/MvaMetaSymbol.js +34 -0
- package/dist/testing/MvaMetaSymbol.js.map +1 -0
- package/package.json +153 -0
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ToolRegistry — Centralized Tool Registration & Routing
|
|
3
|
+
*
|
|
4
|
+
* The single place where all tool builders are registered and where
|
|
5
|
+
* incoming MCP calls are routed to the correct handler.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { ToolRegistry, createTool, success } from 'vurb';
|
|
10
|
+
*
|
|
11
|
+
* const registry = new ToolRegistry<AppContext>();
|
|
12
|
+
*
|
|
13
|
+
* registry.register(
|
|
14
|
+
* createTool<AppContext>('projects').action({ name: 'list', handler: listProjects }),
|
|
15
|
+
* );
|
|
16
|
+
*
|
|
17
|
+
* // Attach to any MCP server (duck-typed):
|
|
18
|
+
* const detach = registry.attachToServer(server, {
|
|
19
|
+
* contextFactory: (extra) => createAppContext(extra),
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* // Clean teardown (e.g. in tests):
|
|
23
|
+
* detach();
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @see {@link createTool} for building tools
|
|
27
|
+
* @see {@link GroupedToolBuilder} for the builder API
|
|
28
|
+
*
|
|
29
|
+
* @module
|
|
30
|
+
*/
|
|
31
|
+
import {} from '@modelcontextprotocol/sdk/types.js';
|
|
32
|
+
import { toolError } from '../response.js';
|
|
33
|
+
import {} from '../types.js';
|
|
34
|
+
import {} from '../../observability/DebugObserver.js';
|
|
35
|
+
import {} from '../../observability/TelemetryEvent.js';
|
|
36
|
+
import { SpanStatusCode } from '../../observability/Tracing.js';
|
|
37
|
+
import { filterTools } from './ToolFilterEngine.js';
|
|
38
|
+
import { attachToServer as attachToServerStrategy, } from '../../server/ServerAttachment.js';
|
|
39
|
+
import {} from '../execution/ProgressHelper.js';
|
|
40
|
+
// ============================================================================
|
|
41
|
+
// ToolRegistry
|
|
42
|
+
// ============================================================================
|
|
43
|
+
/**
|
|
44
|
+
* Centralized registry for MCP tool builders.
|
|
45
|
+
*
|
|
46
|
+
* Manages tool registration, filtered retrieval, call routing,
|
|
47
|
+
* and MCP server attachment.
|
|
48
|
+
*
|
|
49
|
+
* @typeParam TContext - Application context type shared across all tools
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* const registry = new ToolRegistry<AppContext>();
|
|
54
|
+
*
|
|
55
|
+
* // Register individually
|
|
56
|
+
* registry.register(projectsTool);
|
|
57
|
+
*
|
|
58
|
+
* // Register multiple at once
|
|
59
|
+
* registry.registerAll(usersTool, billingTool, adminTool);
|
|
60
|
+
*
|
|
61
|
+
* // Query registered tools
|
|
62
|
+
* registry.has('projects'); // true
|
|
63
|
+
* registry.size; // 4
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export class ToolRegistry {
|
|
67
|
+
_builders = new Map();
|
|
68
|
+
_debug;
|
|
69
|
+
_tracer;
|
|
70
|
+
_telemetrySink;
|
|
71
|
+
/**
|
|
72
|
+
* Register a single tool builder.
|
|
73
|
+
*
|
|
74
|
+
* Validates that the tool name is unique and triggers
|
|
75
|
+
* {@link GroupedToolBuilder.buildToolDefinition} to compile
|
|
76
|
+
* the tool definition at registration time.
|
|
77
|
+
*
|
|
78
|
+
* @param builder - A built or unbuilt tool builder
|
|
79
|
+
* @throws If a tool with the same name is already registered
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* registry.register(
|
|
84
|
+
* createTool<AppContext>('projects')
|
|
85
|
+
* .action({ name: 'list', handler: listProjects })
|
|
86
|
+
* );
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
register(builder) {
|
|
90
|
+
const name = builder.getName();
|
|
91
|
+
if (this._builders.has(name)) {
|
|
92
|
+
throw new Error(`Tool "${name}" is already registered.`);
|
|
93
|
+
}
|
|
94
|
+
builder.buildToolDefinition();
|
|
95
|
+
this._builders.set(name, builder);
|
|
96
|
+
// Propagate active observability features to the new builder (Bug #12)
|
|
97
|
+
this._propagateObservability(builder);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Register multiple tool builders at once.
|
|
101
|
+
*
|
|
102
|
+
* @param builders - One or more tool builders
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```typescript
|
|
106
|
+
* registry.registerAll(usersTool, projectsTool, billingTool);
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
registerAll(...builders) {
|
|
110
|
+
for (const builder of builders) {
|
|
111
|
+
this.register(builder);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get all registered MCP tool definitions.
|
|
116
|
+
*
|
|
117
|
+
* Returns the compiled `McpTool` objects for all registered builders.
|
|
118
|
+
*
|
|
119
|
+
* @returns Array of MCP Tool objects
|
|
120
|
+
*/
|
|
121
|
+
getAllTools() {
|
|
122
|
+
const tools = [];
|
|
123
|
+
for (const builder of this._builders.values()) {
|
|
124
|
+
tools.push(builder.buildToolDefinition());
|
|
125
|
+
}
|
|
126
|
+
return tools;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get an iterable of all registered tool builders.
|
|
130
|
+
*
|
|
131
|
+
* Used by the introspection module to extract action
|
|
132
|
+
* metadata and presenter information from each builder.
|
|
133
|
+
*
|
|
134
|
+
* @returns Iterable of registered ToolBuilder instances
|
|
135
|
+
*/
|
|
136
|
+
getBuilders() {
|
|
137
|
+
return this._builders.values();
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Get tool definitions filtered by tags.
|
|
141
|
+
*
|
|
142
|
+
* Uses the {@link ToolFilter} to include/exclude tools
|
|
143
|
+
* based on their capability tags.
|
|
144
|
+
*
|
|
145
|
+
* @param filter - Tag-based filter configuration
|
|
146
|
+
* @returns Filtered array of MCP Tool objects
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* // Only core tools
|
|
151
|
+
* const coreTools = registry.getTools({ tags: ['core'] });
|
|
152
|
+
*
|
|
153
|
+
* // Everything except internal tools
|
|
154
|
+
* const publicTools = registry.getTools({ exclude: ['internal'] });
|
|
155
|
+
* ```
|
|
156
|
+
*
|
|
157
|
+
* @see {@link ToolFilter} for filter options
|
|
158
|
+
*/
|
|
159
|
+
getTools(filter) {
|
|
160
|
+
return filterTools(this._builders.values(), filter);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Route an incoming tool call to the correct builder.
|
|
164
|
+
*
|
|
165
|
+
* Looks up the builder by name and delegates to its `execute()` method.
|
|
166
|
+
* Returns an error response if the tool is not found.
|
|
167
|
+
*
|
|
168
|
+
* @param ctx - Application context
|
|
169
|
+
* @param name - Tool name from the incoming MCP call
|
|
170
|
+
* @param args - Raw arguments from the LLM
|
|
171
|
+
* @param progressSink - Optional callback for streaming progress notifications.
|
|
172
|
+
* When called from `attachToServer()`, this is automatically wired to
|
|
173
|
+
* MCP `notifications/progress`. When omitted, progress events are silently consumed.
|
|
174
|
+
* @returns The handler's response
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* ```typescript
|
|
178
|
+
* const response = await registry.routeCall(ctx, 'projects', {
|
|
179
|
+
* action: 'list',
|
|
180
|
+
* workspace_id: 'ws_123',
|
|
181
|
+
* });
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
async routeCall(ctx, name, args, progressSink, signal) {
|
|
185
|
+
const builder = this._builders.get(name);
|
|
186
|
+
if (!builder) {
|
|
187
|
+
if (this._tracer) {
|
|
188
|
+
const span = this._tracer.startSpan(`mcp.tool.${name}`, {
|
|
189
|
+
attributes: { 'mcp.system': 'vurb', 'mcp.tool': name, 'mcp.error_type': 'unknown_tool' },
|
|
190
|
+
});
|
|
191
|
+
span.setStatus({ code: SpanStatusCode.UNSET, message: `Unknown tool: "${name}"` });
|
|
192
|
+
span.end();
|
|
193
|
+
}
|
|
194
|
+
if (this._debug) {
|
|
195
|
+
this._debug({ type: 'error', tool: name, action: '?', error: `Unknown tool: "${name}"`, step: 'route', timestamp: Date.now() });
|
|
196
|
+
}
|
|
197
|
+
return toolError('UNKNOWN_TOOL', {
|
|
198
|
+
message: `Tool "${name}" does not exist.`,
|
|
199
|
+
suggestion: 'Check the available tools via tools/list and call a valid one.',
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
return builder.execute(ctx, args, progressSink, signal);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Attach this registry to an MCP server.
|
|
206
|
+
*
|
|
207
|
+
* Registers `tools/list` and `tools/call` handlers on the server.
|
|
208
|
+
* Supports both `McpServer` (high-level SDK) and `Server` (low-level SDK)
|
|
209
|
+
* via duck-type detection.
|
|
210
|
+
*
|
|
211
|
+
* @param server - Any MCP server instance (duck-typed)
|
|
212
|
+
* @param options - Attachment options (context factory, tag filter)
|
|
213
|
+
* @returns A detach function for clean teardown
|
|
214
|
+
*
|
|
215
|
+
* @example
|
|
216
|
+
* ```typescript
|
|
217
|
+
* // Basic attachment
|
|
218
|
+
* const detach = registry.attachToServer(server, {
|
|
219
|
+
* contextFactory: (extra) => createAppContext(extra),
|
|
220
|
+
* });
|
|
221
|
+
*
|
|
222
|
+
* // With tag filtering
|
|
223
|
+
* registry.attachToServer(server, {
|
|
224
|
+
* contextFactory: (extra) => createAppContext(extra),
|
|
225
|
+
* filter: { tags: ['core'] },
|
|
226
|
+
* });
|
|
227
|
+
*
|
|
228
|
+
* // Clean teardown (e.g. in tests)
|
|
229
|
+
* detach();
|
|
230
|
+
* ```
|
|
231
|
+
*
|
|
232
|
+
* @see {@link DetachFn} for the teardown function type
|
|
233
|
+
* @see {@link AttachOptions} for all options
|
|
234
|
+
*/
|
|
235
|
+
async attachToServer(server, options = {}) {
|
|
236
|
+
return attachToServerStrategy(server, this, options);
|
|
237
|
+
}
|
|
238
|
+
/** Check if a tool with the given name is registered. */
|
|
239
|
+
has(name) { return this._builders.has(name); }
|
|
240
|
+
/** Remove all registered tools. */
|
|
241
|
+
clear() { this._builders.clear(); }
|
|
242
|
+
/** Number of registered tools. */
|
|
243
|
+
get size() { return this._builders.size; }
|
|
244
|
+
/**
|
|
245
|
+
* Enable debug observability for ALL registered tools.
|
|
246
|
+
*
|
|
247
|
+
* Propagates the debug observer to every registered builder that
|
|
248
|
+
* supports it (duck-typed via `.debug()` method).
|
|
249
|
+
*
|
|
250
|
+
* Also enables registry-level debug events (unknown tool errors).
|
|
251
|
+
*
|
|
252
|
+
* @param observer - A {@link DebugObserverFn} created by `createDebugObserver()`
|
|
253
|
+
*
|
|
254
|
+
* @example
|
|
255
|
+
* ```typescript
|
|
256
|
+
* const debug = createDebugObserver();
|
|
257
|
+
* registry.enableDebug(debug);
|
|
258
|
+
* // Now ALL tools + registry routing emit debug events
|
|
259
|
+
* ```
|
|
260
|
+
*/
|
|
261
|
+
enableDebug(observer) {
|
|
262
|
+
if (this._tracer) {
|
|
263
|
+
console.warn('[vurb] Both tracing and debug are enabled. Tracing takes precedence; debug events will not be emitted.');
|
|
264
|
+
}
|
|
265
|
+
this._debug = observer;
|
|
266
|
+
for (const builder of this._builders.values()) {
|
|
267
|
+
// Duck-type: call .debug() if it exists on the builder
|
|
268
|
+
if ('debug' in builder && typeof builder.debug === 'function') {
|
|
269
|
+
builder.debug(observer);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Enable OpenTelemetry-compatible tracing for ALL registered tools.
|
|
275
|
+
*
|
|
276
|
+
* Propagates the tracer to every registered builder that supports
|
|
277
|
+
* it (duck-typed via `.tracing()` method).
|
|
278
|
+
*
|
|
279
|
+
* Also enables registry-level tracing for unknown tool routing errors.
|
|
280
|
+
*
|
|
281
|
+
* **Important**: When both `enableDebug()` and `enableTracing()` are active,
|
|
282
|
+
* tracing takes precedence and debug events are NOT emitted from tool builders.
|
|
283
|
+
*
|
|
284
|
+
* @param tracer - A {@link VurbTracer} (or OTel `Tracer`) instance
|
|
285
|
+
*
|
|
286
|
+
* @example
|
|
287
|
+
* ```typescript
|
|
288
|
+
* import { trace } from '@opentelemetry/api';
|
|
289
|
+
*
|
|
290
|
+
* const tracer = trace.getTracer('vurb');
|
|
291
|
+
* registry.enableTracing(tracer);
|
|
292
|
+
* // Now ALL tools + registry routing emit OTel spans
|
|
293
|
+
* ```
|
|
294
|
+
*
|
|
295
|
+
* @see {@link VurbTracer} for the tracer interface contract
|
|
296
|
+
* @see {@link SpanStatusCode} for status code semantics
|
|
297
|
+
*/
|
|
298
|
+
enableTracing(tracer) {
|
|
299
|
+
if (this._debug) {
|
|
300
|
+
console.warn('[vurb] Both tracing and debug are enabled. Tracing takes precedence; debug events will not be emitted.');
|
|
301
|
+
}
|
|
302
|
+
this._tracer = tracer;
|
|
303
|
+
for (const builder of this._builders.values()) {
|
|
304
|
+
// Duck-type: call .tracing() if it exists on the builder
|
|
305
|
+
if ('tracing' in builder && typeof builder.tracing === 'function') {
|
|
306
|
+
builder.tracing(tracer);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Enable telemetry emission for ALL registered tools.
|
|
312
|
+
*
|
|
313
|
+
* Propagates the TelemetrySink to every registered builder that supports
|
|
314
|
+
* it (duck-typed via `.telemetry()` method). This enables real-time
|
|
315
|
+
* event emission to the Inspector TUI via Shadow Socket IPC.
|
|
316
|
+
*
|
|
317
|
+
* @param sink - A {@link TelemetrySink} from `startServer()` or `TelemetryBus`
|
|
318
|
+
*/
|
|
319
|
+
enableTelemetry(sink) {
|
|
320
|
+
this._telemetrySink = sink;
|
|
321
|
+
for (const builder of this._builders.values()) {
|
|
322
|
+
if ('telemetry' in builder && typeof builder.telemetry === 'function') {
|
|
323
|
+
builder.telemetry(sink);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Propagate active debug/tracing/telemetry to a newly registered builder.
|
|
329
|
+
* @internal
|
|
330
|
+
*/
|
|
331
|
+
_propagateObservability(builder) {
|
|
332
|
+
if (this._debug && 'debug' in builder && typeof builder.debug === 'function') {
|
|
333
|
+
builder.debug(this._debug);
|
|
334
|
+
}
|
|
335
|
+
if (this._tracer && 'tracing' in builder && typeof builder.tracing === 'function') {
|
|
336
|
+
builder.tracing(this._tracer);
|
|
337
|
+
}
|
|
338
|
+
if (this._telemetrySink && 'telemetry' in builder && typeof builder.telemetry === 'function') {
|
|
339
|
+
builder.telemetry(this._telemetrySink);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
//# sourceMappingURL=ToolRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../../../src/core/registry/ToolRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/registry/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/registry/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Response Helpers
|
|
3
|
+
*
|
|
4
|
+
* Universal MCP response builders. No API coupling.
|
|
5
|
+
* These produce the standard MCP ToolResponse format.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { success, error, toonSuccess } from 'vurb';
|
|
10
|
+
*
|
|
11
|
+
* // String response
|
|
12
|
+
* return success('Project created');
|
|
13
|
+
*
|
|
14
|
+
* // Object response (auto JSON.stringify)
|
|
15
|
+
* return success({ id: '123', name: 'My Project' });
|
|
16
|
+
*
|
|
17
|
+
* // Error response
|
|
18
|
+
* return error('Project not found');
|
|
19
|
+
*
|
|
20
|
+
* // TOON-encoded response (~40% fewer tokens)
|
|
21
|
+
* return toonSuccess(users);
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @see {@link ToolResponse} for the response shape
|
|
25
|
+
* @see {@link toonSuccess} for token-optimized responses
|
|
26
|
+
*
|
|
27
|
+
* @module
|
|
28
|
+
*/
|
|
29
|
+
import { type EncodeOptions } from '@toon-format/toon';
|
|
30
|
+
import { type StringifyFn } from './serialization/JsonSerializer.js';
|
|
31
|
+
/**
|
|
32
|
+
* Non-enumerable brand symbol stamped on all helper-created ToolResponse objects.
|
|
33
|
+
* Used by FluentToolBuilder to reliably distinguish framework responses from
|
|
34
|
+
* domain data that coincidentally matches the ToolResponse shape (Bug #127).
|
|
35
|
+
*
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
export declare const TOOL_RESPONSE_BRAND: unique symbol;
|
|
39
|
+
/**
|
|
40
|
+
* Escape XML structural characters for element content.
|
|
41
|
+
*
|
|
42
|
+
* Only `&` and `<` are mandatory escapes in XML element content.
|
|
43
|
+
* `>` is preserved for LLM readability (e.g. `>= 1`, `Must be > 0`).
|
|
44
|
+
* Single and double quotes are also preserved since they have no
|
|
45
|
+
* special meaning outside attribute values.
|
|
46
|
+
*
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
export declare function escapeXml(str: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Escape XML special characters for use inside attribute values.
|
|
52
|
+
*
|
|
53
|
+
* Attribute values are delimited by `"` or `'` and must also
|
|
54
|
+
* escape `<`, `>`, and `&`. All 5 XML special characters are handled.
|
|
55
|
+
*
|
|
56
|
+
* @internal
|
|
57
|
+
*/
|
|
58
|
+
export declare function escapeXmlAttr(str: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* Standard MCP tool response.
|
|
61
|
+
*
|
|
62
|
+
* Every handler in vurb must return this shape.
|
|
63
|
+
* Use the helper functions ({@link success}, {@link error}, {@link toonSuccess})
|
|
64
|
+
* instead of constructing this manually.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* // ✅ Preferred — use helpers
|
|
69
|
+
* return success({ id: '123', name: 'Acme' });
|
|
70
|
+
*
|
|
71
|
+
* // ⚠️ Manual construction (avoid unless custom content types needed)
|
|
72
|
+
* const response: ToolResponse = {
|
|
73
|
+
* content: [{ type: 'text', text: 'Hello' }],
|
|
74
|
+
* };
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export interface ToolResponse {
|
|
78
|
+
readonly content: ReadonlyArray<{
|
|
79
|
+
readonly type: "text";
|
|
80
|
+
readonly text: string;
|
|
81
|
+
}>;
|
|
82
|
+
readonly isError?: boolean;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Create a success response from text or a JSON-serializable object.
|
|
86
|
+
*
|
|
87
|
+
* - Strings are returned verbatim (empty strings become `"OK"`)
|
|
88
|
+
* - Objects are serialized with `JSON.stringify(data, null, 2)`
|
|
89
|
+
*
|
|
90
|
+
* @param data - A string message or any JSON-serializable object
|
|
91
|
+
* @returns A {@link ToolResponse} with `isError` unset
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* // String response
|
|
96
|
+
* return success('Task completed');
|
|
97
|
+
*
|
|
98
|
+
* // Object response (pretty-printed JSON)
|
|
99
|
+
* const project = await db.projects.create({ name: 'Acme' });
|
|
100
|
+
* return success(project);
|
|
101
|
+
*
|
|
102
|
+
* // Array response
|
|
103
|
+
* const users = await db.users.findMany();
|
|
104
|
+
* return success(users);
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* @see {@link error} for error responses
|
|
108
|
+
* @see {@link toonSuccess} for token-optimized array responses
|
|
109
|
+
*/
|
|
110
|
+
export declare function success(data: string | object, compiledStringify?: StringifyFn): ToolResponse;
|
|
111
|
+
/**
|
|
112
|
+
* Create an error response.
|
|
113
|
+
*
|
|
114
|
+
* Sets `isError: true` so the MCP client and LLM recognize the failure.
|
|
115
|
+
* The LLM will typically retry or ask the user for clarification.
|
|
116
|
+
*
|
|
117
|
+
* @param message - Human-readable error description
|
|
118
|
+
* @returns A {@link ToolResponse} with `isError: true`
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* // Simple error
|
|
123
|
+
* return error('Project not found');
|
|
124
|
+
*
|
|
125
|
+
* // Contextual error
|
|
126
|
+
* return error(`User "${userId}" does not have access to workspace "${wsId}"`);
|
|
127
|
+
*
|
|
128
|
+
* // In a handler with early return
|
|
129
|
+
* handler: async (ctx, args) => {
|
|
130
|
+
* const project = await ctx.db.projects.findUnique(args.id);
|
|
131
|
+
* if (!project) return error(`Project "${args.id}" not found`);
|
|
132
|
+
* return success(project);
|
|
133
|
+
* }
|
|
134
|
+
* ```
|
|
135
|
+
*
|
|
136
|
+
* @see {@link required} for missing field errors
|
|
137
|
+
* @see {@link success} for success responses
|
|
138
|
+
*/
|
|
139
|
+
export declare function error(message: string, code?: ErrorCode): ToolResponse;
|
|
140
|
+
/**
|
|
141
|
+
* Create a validation error for a missing required field.
|
|
142
|
+
*
|
|
143
|
+
* Convenience shortcut for `error(\`Error: ${field} required\`)`.
|
|
144
|
+
* Typically used in handlers that accept dynamic or optional schemas.
|
|
145
|
+
*
|
|
146
|
+
* @param field - Name of the missing required field
|
|
147
|
+
* @returns A {@link ToolResponse} with `isError: true`
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* handler: async (ctx, args) => {
|
|
152
|
+
* if (!args.workspace_id) return required('workspace_id');
|
|
153
|
+
* // ...
|
|
154
|
+
* }
|
|
155
|
+
* ```
|
|
156
|
+
*
|
|
157
|
+
* @see {@link error} for general error responses
|
|
158
|
+
*/
|
|
159
|
+
export declare function required(field: string): ToolResponse;
|
|
160
|
+
/**
|
|
161
|
+
* Create a success response with TOON-encoded payload.
|
|
162
|
+
*
|
|
163
|
+
* Encodes structured data using TOON (Token-Oriented Object Notation)
|
|
164
|
+
* for ~40-50% token reduction compared to `JSON.stringify()`.
|
|
165
|
+
* Ideal for list/tabular responses (arrays of uniform objects).
|
|
166
|
+
*
|
|
167
|
+
* @param data - Any JSON-serializable value (objects, arrays, primitives)
|
|
168
|
+
* @param options - Optional TOON encode options (default: pipe delimiter)
|
|
169
|
+
* @returns A {@link ToolResponse} with TOON-encoded text
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```typescript
|
|
173
|
+
* // Array response — saves ~40% tokens vs JSON
|
|
174
|
+
* const users = await db.users.findMany();
|
|
175
|
+
* return toonSuccess(users);
|
|
176
|
+
* // Output: "id|name|email\n1|Alice|alice@co.io\n2|Bob|bob@co.io"
|
|
177
|
+
*
|
|
178
|
+
* // With custom delimiter
|
|
179
|
+
* return toonSuccess(data, { delimiter: ',' });
|
|
180
|
+
*
|
|
181
|
+
* // Single object (still valid, but savings are smaller)
|
|
182
|
+
* return toonSuccess({ id: 1, name: 'Alice' });
|
|
183
|
+
* ```
|
|
184
|
+
*
|
|
185
|
+
* @see {@link success} for standard JSON responses
|
|
186
|
+
*/
|
|
187
|
+
export declare function toonSuccess(data: unknown, options?: EncodeOptions): ToolResponse;
|
|
188
|
+
/**
|
|
189
|
+
* Canonical error codes for deterministic agent self-correction.
|
|
190
|
+
*
|
|
191
|
+
* Provides compile-time autocomplete while allowing custom codes
|
|
192
|
+
* via the `string` fallback. Constants cover the most common
|
|
193
|
+
* failure modes in agentic pipelines.
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ```typescript
|
|
197
|
+
* return toolError('VALIDATION_ERROR', { message: '...' });
|
|
198
|
+
* return toolError('RateLimited', { message: '...' }); // custom code — also valid
|
|
199
|
+
* ```
|
|
200
|
+
*/
|
|
201
|
+
export type ErrorCode = 'MISSING_DISCRIMINATOR' | 'UNKNOWN_ACTION' | 'VALIDATION_ERROR' | 'MISSING_REQUIRED_FIELD' | 'INTERNAL_ERROR' | 'RATE_LIMITED' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'NOT_FOUND' | 'CONFLICT' | 'TIMEOUT' | 'SERVER_BUSY' | 'DEPRECATED' | 'AUTH_REQUIRED' | (string & {});
|
|
202
|
+
/**
|
|
203
|
+
* Error severity level.
|
|
204
|
+
*
|
|
205
|
+
* - `'warning'` — Non-fatal. The operation succeeded but with caveats
|
|
206
|
+
* (e.g. deprecated tool, partial results, soft quota approaching).
|
|
207
|
+
* - `'error'` — The operation failed. Agent should attempt recovery.
|
|
208
|
+
* - `'critical'` — Unrecoverable. Agent should escalate to the user.
|
|
209
|
+
*/
|
|
210
|
+
export type ErrorSeverity = 'warning' | 'error' | 'critical';
|
|
211
|
+
/**
|
|
212
|
+
* Options for a self-healing error response.
|
|
213
|
+
*
|
|
214
|
+
* @see {@link toolError} for usage
|
|
215
|
+
*/
|
|
216
|
+
export interface ToolErrorOptions {
|
|
217
|
+
/** Human-readable error description */
|
|
218
|
+
message: string;
|
|
219
|
+
/** Recovery suggestion for the LLM agent */
|
|
220
|
+
suggestion?: string;
|
|
221
|
+
/** Action names the agent should try instead */
|
|
222
|
+
availableActions?: string[];
|
|
223
|
+
/**
|
|
224
|
+
* Error severity.
|
|
225
|
+
*
|
|
226
|
+
* Defaults to `'error'` when omitted.
|
|
227
|
+
*
|
|
228
|
+
* @example `'warning'` for deprecation notices
|
|
229
|
+
*/
|
|
230
|
+
severity?: ErrorSeverity;
|
|
231
|
+
/**
|
|
232
|
+
* Structured metadata about the error (e.g. the invalid value,
|
|
233
|
+
* the entity ID that wasn't found, or constraint violations).
|
|
234
|
+
*
|
|
235
|
+
* Rendered as `<details>` child elements in the XML envelope.
|
|
236
|
+
*
|
|
237
|
+
* @example `{ entity_id: 'inv_123', expected_type: 'string' }`
|
|
238
|
+
*/
|
|
239
|
+
details?: Record<string, string>;
|
|
240
|
+
/**
|
|
241
|
+
* Suggested retry delay in seconds for transient errors.
|
|
242
|
+
*
|
|
243
|
+
* Rendered as `<retry_after>{n} seconds</retry_after>` in the
|
|
244
|
+
* XML envelope. Useful for rate-limit and concurrency errors.
|
|
245
|
+
*/
|
|
246
|
+
retryAfter?: number;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Create a self-healing error response with recovery instructions.
|
|
250
|
+
*
|
|
251
|
+
* Unlike {@link error}, this provides structured guidance so the LLM
|
|
252
|
+
* agent can self-correct instead of hallucinating or giving up.
|
|
253
|
+
* The response includes an error code, message, suggestion, and
|
|
254
|
+
* available actions — all formatted for optimal LLM comprehension.
|
|
255
|
+
*
|
|
256
|
+
* @param code - Short error code (e.g. `'ProjectNotFound'`, `'Unauthorized'`)
|
|
257
|
+
* @param options - Error details and recovery instructions
|
|
258
|
+
* @returns A {@link ToolResponse} with `isError: true` and recovery guidance
|
|
259
|
+
*
|
|
260
|
+
* @example
|
|
261
|
+
* ```typescript
|
|
262
|
+
* handler: async (ctx, args) => {
|
|
263
|
+
* const project = await ctx.db.get(args.project_id);
|
|
264
|
+
*
|
|
265
|
+
* if (!project) {
|
|
266
|
+
* return toolError('ProjectNotFound', {
|
|
267
|
+
* message: `Project '${args.project_id}' does not exist.`,
|
|
268
|
+
* suggestion: 'Call projects.list first to get valid IDs, then retry.',
|
|
269
|
+
* availableActions: ['projects.list'],
|
|
270
|
+
* });
|
|
271
|
+
* }
|
|
272
|
+
*
|
|
273
|
+
* return success(project);
|
|
274
|
+
* }
|
|
275
|
+
* ```
|
|
276
|
+
*
|
|
277
|
+
* @example
|
|
278
|
+
* ```typescript
|
|
279
|
+
* // Minimal usage (no suggestion)
|
|
280
|
+
* return toolError('RateLimited', {
|
|
281
|
+
* message: 'Too many requests. Wait 30 seconds.',
|
|
282
|
+
* });
|
|
283
|
+
* ```
|
|
284
|
+
*
|
|
285
|
+
* @see {@link error} for simple error responses
|
|
286
|
+
* @see {@link required} for missing field errors
|
|
287
|
+
*/
|
|
288
|
+
export declare function toolError(code: ErrorCode, options: ToolErrorOptions): ToolResponse;
|
|
289
|
+
//# sourceMappingURL=response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAErE;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,MAAwC,CAAC;AAMlF;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOjD;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,iBAAiB,CAAC,EAAE,WAAW,GAAG,YAAY,CAO5F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,YAAY,CAQrE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAWpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAMhF;AAMD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,GACf,uBAAuB,GACvB,gBAAgB,GAChB,kBAAkB,GAClB,wBAAwB,GACxB,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,WAAW,GACX,WAAW,GACX,UAAU,GACV,SAAS,GACT,aAAa,GACb,YAAY,GACZ,eAAe,GACf,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEpB;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC7B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,YAAY,CAuClF"}
|