@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,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* defineTool() — High-Level Tool Definition (Vercel/Stripe Style)
|
|
3
|
+
*
|
|
4
|
+
* The recommended entry point for building MCP tools. Write a plain
|
|
5
|
+
* JSON-like config object — zero Zod imports, zero builder patterns.
|
|
6
|
+
* The framework converts everything to Zod schemas internally.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { defineTool, success } from 'vurb';
|
|
11
|
+
*
|
|
12
|
+
* export const projects = defineTool('projects', {
|
|
13
|
+
* description: 'Manage workspace projects',
|
|
14
|
+
* shared: { workspace_id: 'string' },
|
|
15
|
+
* actions: {
|
|
16
|
+
* list: { readOnly: true, handler: async (ctx, args) => success([]) },
|
|
17
|
+
* create: { params: { name: 'string' }, handler: async (ctx, args) => success(args.name) },
|
|
18
|
+
* },
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @see {@link createTool} for the power-user builder API
|
|
23
|
+
* @see {@link ToolRegistry} for registering tools
|
|
24
|
+
*
|
|
25
|
+
* @module
|
|
26
|
+
*/
|
|
27
|
+
import { type ZodObject, type ZodRawShape } from 'zod';
|
|
28
|
+
import { GroupedToolBuilder } from './GroupedToolBuilder.js';
|
|
29
|
+
import { type ToolResponse, type MiddlewareFn } from '../types.js';
|
|
30
|
+
import { type MiddlewareDefinition } from '../middleware/ContextDerivation.js';
|
|
31
|
+
import { type Presenter } from '../../presenter/Presenter.js';
|
|
32
|
+
import { type ParamsMap, type InferParams } from './ParamDescriptors.js';
|
|
33
|
+
/**
|
|
34
|
+
* Action definition within a `defineTool()` config.
|
|
35
|
+
*
|
|
36
|
+
* When `params` is provided as a `ParamsMap`, the handler's `args` are
|
|
37
|
+
* automatically typed as `InferParams<TParams> & TSharedArgs`.
|
|
38
|
+
* When `params` is a ZodObject, use `z.infer<typeof schema>` for manual typing.
|
|
39
|
+
*
|
|
40
|
+
* @typeParam TContext - Application context type
|
|
41
|
+
* @typeParam TSharedArgs - Shared args inherited from ToolConfig.shared
|
|
42
|
+
* @typeParam TParams - Action-specific params (inferred from the params field)
|
|
43
|
+
*/
|
|
44
|
+
export interface ActionDef<TContext, TSharedArgs = Record<string, never>, TParams extends ParamsMap = ParamsMap> {
|
|
45
|
+
/** Human-readable description for the LLM */
|
|
46
|
+
description?: string;
|
|
47
|
+
/** Parameter definitions (JSON descriptors or Zod schema) */
|
|
48
|
+
params?: TParams | ZodObject<ZodRawShape>;
|
|
49
|
+
/** Mark as read-only (no side effects) */
|
|
50
|
+
readOnly?: boolean;
|
|
51
|
+
/** Mark as destructive (irreversible) */
|
|
52
|
+
destructive?: boolean;
|
|
53
|
+
/** Mark as idempotent (safe to retry) */
|
|
54
|
+
idempotent?: boolean;
|
|
55
|
+
/** Common schema fields to omit for this action */
|
|
56
|
+
omitCommon?: string[];
|
|
57
|
+
/** MVA Presenter — when set, handler returns raw data instead of ToolResponse */
|
|
58
|
+
returns?: Presenter<unknown>;
|
|
59
|
+
/** The handler function — args are fully typed when params is specified */
|
|
60
|
+
handler: (ctx: TContext, args: TParams extends ParamsMap ? (keyof TParams extends never ? TSharedArgs & Record<string, unknown> : InferParams<TParams> & TSharedArgs) : TSharedArgs & Record<string, unknown>) => Promise<ToolResponse>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Group definition within a `defineTool()` config.
|
|
64
|
+
*
|
|
65
|
+
* @typeParam TContext - Application context type
|
|
66
|
+
* @typeParam TSharedArgs - Inferred shared args type
|
|
67
|
+
*/
|
|
68
|
+
export interface GroupDef<TContext, TSharedArgs = Record<string, never>> {
|
|
69
|
+
/** Human-readable group description */
|
|
70
|
+
description?: string;
|
|
71
|
+
/** Common schema fields to omit for all actions in this group */
|
|
72
|
+
omitCommon?: string[];
|
|
73
|
+
/** Group-scoped middleware (accepts both MiddlewareFn and MiddlewareDefinition) */
|
|
74
|
+
middleware?: (MiddlewareFn<TContext> | MiddlewareDefinition<TContext, Record<string, unknown>>)[];
|
|
75
|
+
/** Actions within this group — each action's params are inferred independently */
|
|
76
|
+
actions: {
|
|
77
|
+
[K in string]: ActionDef<TContext, TSharedArgs>;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Full `defineTool()` configuration.
|
|
82
|
+
*
|
|
83
|
+
* @typeParam TContext - Application context type
|
|
84
|
+
* @typeParam TShared - Shared params map type
|
|
85
|
+
*/
|
|
86
|
+
export interface ToolConfig<TContext, TShared extends ParamsMap = ParamsMap> {
|
|
87
|
+
/** Tool description for the LLM */
|
|
88
|
+
description?: string;
|
|
89
|
+
/** Capability tags for filtering */
|
|
90
|
+
tags?: string[];
|
|
91
|
+
/** Discriminator field name (default: 'action') */
|
|
92
|
+
discriminator?: string;
|
|
93
|
+
/** Use TOON-formatted descriptions */
|
|
94
|
+
toonDescription?: boolean;
|
|
95
|
+
/** Parameters shared across all actions */
|
|
96
|
+
shared?: TShared | ZodObject<ZodRawShape>;
|
|
97
|
+
/** Global middleware applied to all actions (accepts both MiddlewareFn and MiddlewareDefinition) */
|
|
98
|
+
middleware?: (MiddlewareFn<TContext> | MiddlewareDefinition<TContext, Record<string, unknown>>)[];
|
|
99
|
+
/** MCP tool annotations (e.g. `{ readOnlyHint: true, openWorldHint: true }`) */
|
|
100
|
+
annotations?: Record<string, unknown>;
|
|
101
|
+
/** Flat actions — each action's params are inferred independently */
|
|
102
|
+
actions?: {
|
|
103
|
+
[K in string]: ActionDef<TContext, InferParams<TShared>>;
|
|
104
|
+
};
|
|
105
|
+
/** Hierarchical groups (mutually exclusive with `actions`) */
|
|
106
|
+
groups?: {
|
|
107
|
+
[K in string]: GroupDef<TContext, InferParams<TShared>>;
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/** Expected return type for handlers */
|
|
111
|
+
export type ExpectedHandlerReturnType = Promise<ToolResponse> | AsyncGenerator<unknown, ToolResponse, unknown>;
|
|
112
|
+
/**
|
|
113
|
+
* Utility type to force a readable, localized TypeScript error if a handler
|
|
114
|
+
* does not return exactly `ToolResponse` or `AsyncGenerator<..., ToolResponse, ...>`.
|
|
115
|
+
*/
|
|
116
|
+
export type ValidateActionDef<TAction> = TAction extends {
|
|
117
|
+
handler: (...args: unknown[]) => infer R;
|
|
118
|
+
} ? [R] extends [ExpectedHandlerReturnType] ? TAction : Omit<TAction, 'handler'> & {
|
|
119
|
+
handler: "❌ Type Error: handler must return ToolResponse. Use return success(data) or return error(msg).";
|
|
120
|
+
} : TAction;
|
|
121
|
+
/**
|
|
122
|
+
* Deep validation of the tool config to intercept handler return types
|
|
123
|
+
* and provide readable errors without causing 50-line RecursiveBuilder issues.
|
|
124
|
+
*/
|
|
125
|
+
export type ValidateConfig<C> = C extends ToolConfig<infer _TContext, infer _TShared> ? {
|
|
126
|
+
[K in keyof C]: K extends 'actions' ? {
|
|
127
|
+
[A in keyof C['actions']]: ValidateActionDef<C['actions'][A]>;
|
|
128
|
+
} : K extends 'groups' ? {
|
|
129
|
+
[G in keyof C['groups']]: {
|
|
130
|
+
[GK in keyof C['groups'][G]]: GK extends 'actions' ? {
|
|
131
|
+
[A in keyof NonNullable<C['groups']>[G]['actions']]: ValidateActionDef<NonNullable<C['groups']>[G]['actions'][A]>;
|
|
132
|
+
} : NonNullable<C['groups']>[G][GK];
|
|
133
|
+
};
|
|
134
|
+
} : C[K];
|
|
135
|
+
} : C;
|
|
136
|
+
/**
|
|
137
|
+
* Define a tool using a high-level JSON-like config.
|
|
138
|
+
*
|
|
139
|
+
* This is the recommended entry point for most developers.
|
|
140
|
+
* The framework handles all Zod schema creation, validation,
|
|
141
|
+
* and MCP protocol details internally.
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```typescript
|
|
145
|
+
* const echo = defineTool('echo', {
|
|
146
|
+
* actions: {
|
|
147
|
+
* say: {
|
|
148
|
+
* params: { message: 'string' },
|
|
149
|
+
* handler: async (ctx, args) => success(args.message),
|
|
150
|
+
* },
|
|
151
|
+
* },
|
|
152
|
+
* });
|
|
153
|
+
*
|
|
154
|
+
* // Tool with shared params + groups + middleware
|
|
155
|
+
* const platform = defineTool<AppContext>('platform', {
|
|
156
|
+
* description: 'Platform management',
|
|
157
|
+
* tags: ['admin'],
|
|
158
|
+
* shared: { workspace_id: { type: 'string', description: 'Workspace ID' } },
|
|
159
|
+
* middleware: [requireAuth],
|
|
160
|
+
* groups: {
|
|
161
|
+
* users: {
|
|
162
|
+
* description: 'User management',
|
|
163
|
+
* actions: {
|
|
164
|
+
* list: { readOnly: true, handler: listUsers },
|
|
165
|
+
* ban: { destructive: true, params: { user_id: 'string' }, handler: banUser },
|
|
166
|
+
* },
|
|
167
|
+
* },
|
|
168
|
+
* },
|
|
169
|
+
* });
|
|
170
|
+
*
|
|
171
|
+
* // Register normally
|
|
172
|
+
* const registry = new ToolRegistry<AppContext>();
|
|
173
|
+
* registry.register(platform);
|
|
174
|
+
* ```
|
|
175
|
+
*
|
|
176
|
+
* @see {@link createTool} for the power-user builder API
|
|
177
|
+
* @see {@link ToolRegistry.register} for registration
|
|
178
|
+
*/
|
|
179
|
+
export declare function defineTool<TContext = void>(name: string, config: ToolConfig<TContext>): GroupedToolBuilder<TContext>;
|
|
180
|
+
//# sourceMappingURL=defineTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineTool.d.ts","sourceRoot":"","sources":["../../../src/core/builder/defineTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* defineTool() — High-Level Tool Definition (Vercel/Stripe Style)
|
|
3
|
+
*
|
|
4
|
+
* The recommended entry point for building MCP tools. Write a plain
|
|
5
|
+
* JSON-like config object — zero Zod imports, zero builder patterns.
|
|
6
|
+
* The framework converts everything to Zod schemas internally.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { defineTool, success } from 'vurb';
|
|
11
|
+
*
|
|
12
|
+
* export const projects = defineTool('projects', {
|
|
13
|
+
* description: 'Manage workspace projects',
|
|
14
|
+
* shared: { workspace_id: 'string' },
|
|
15
|
+
* actions: {
|
|
16
|
+
* list: { readOnly: true, handler: async (ctx, args) => success([]) },
|
|
17
|
+
* create: { params: { name: 'string' }, handler: async (ctx, args) => success(args.name) },
|
|
18
|
+
* },
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @see {@link createTool} for the power-user builder API
|
|
23
|
+
* @see {@link ToolRegistry} for registering tools
|
|
24
|
+
*
|
|
25
|
+
* @module
|
|
26
|
+
*/
|
|
27
|
+
import {} from 'zod';
|
|
28
|
+
import { GroupedToolBuilder } from './GroupedToolBuilder.js';
|
|
29
|
+
import {} from '../types.js';
|
|
30
|
+
import { resolveMiddleware } from '../middleware/ContextDerivation.js';
|
|
31
|
+
import {} from '../../presenter/Presenter.js';
|
|
32
|
+
import { convertParamsToZod, } from './ParamDescriptors.js';
|
|
33
|
+
import { isZodSchema } from '../schema/SchemaUtils.js';
|
|
34
|
+
// ============================================================================
|
|
35
|
+
// defineTool()
|
|
36
|
+
// ============================================================================
|
|
37
|
+
/**
|
|
38
|
+
* Resolve params: if ParamsMap → convertParamsToZod, if ZodObject → passthrough.
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
function resolveSchema(params) {
|
|
42
|
+
if (!params)
|
|
43
|
+
return undefined;
|
|
44
|
+
if (isZodSchema(params))
|
|
45
|
+
return params;
|
|
46
|
+
return convertParamsToZod(params);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Define a tool using a high-level JSON-like config.
|
|
50
|
+
*
|
|
51
|
+
* This is the recommended entry point for most developers.
|
|
52
|
+
* The framework handles all Zod schema creation, validation,
|
|
53
|
+
* and MCP protocol details internally.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* const echo = defineTool('echo', {
|
|
58
|
+
* actions: {
|
|
59
|
+
* say: {
|
|
60
|
+
* params: { message: 'string' },
|
|
61
|
+
* handler: async (ctx, args) => success(args.message),
|
|
62
|
+
* },
|
|
63
|
+
* },
|
|
64
|
+
* });
|
|
65
|
+
*
|
|
66
|
+
* // Tool with shared params + groups + middleware
|
|
67
|
+
* const platform = defineTool<AppContext>('platform', {
|
|
68
|
+
* description: 'Platform management',
|
|
69
|
+
* tags: ['admin'],
|
|
70
|
+
* shared: { workspace_id: { type: 'string', description: 'Workspace ID' } },
|
|
71
|
+
* middleware: [requireAuth],
|
|
72
|
+
* groups: {
|
|
73
|
+
* users: {
|
|
74
|
+
* description: 'User management',
|
|
75
|
+
* actions: {
|
|
76
|
+
* list: { readOnly: true, handler: listUsers },
|
|
77
|
+
* ban: { destructive: true, params: { user_id: 'string' }, handler: banUser },
|
|
78
|
+
* },
|
|
79
|
+
* },
|
|
80
|
+
* },
|
|
81
|
+
* });
|
|
82
|
+
*
|
|
83
|
+
* // Register normally
|
|
84
|
+
* const registry = new ToolRegistry<AppContext>();
|
|
85
|
+
* registry.register(platform);
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* @see {@link createTool} for the power-user builder API
|
|
89
|
+
* @see {@link ToolRegistry.register} for registration
|
|
90
|
+
*/
|
|
91
|
+
export function defineTool(name, config) {
|
|
92
|
+
const { description, tags, discriminator, toonDescription, annotations, shared, middleware, actions, groups } = config;
|
|
93
|
+
// ── Guard: actions and groups are mutually exclusive ──
|
|
94
|
+
if (actions && groups) {
|
|
95
|
+
throw new Error(`defineTool("${name}"): "actions" and "groups" are mutually exclusive. ` +
|
|
96
|
+
`Use "actions" for flat tools OR "groups" for hierarchical tools, not both.`);
|
|
97
|
+
}
|
|
98
|
+
const builder = new GroupedToolBuilder(name);
|
|
99
|
+
// ── Builder configuration (declarative) ──
|
|
100
|
+
if (description)
|
|
101
|
+
builder.description(description);
|
|
102
|
+
if (tags != null && tags.length > 0)
|
|
103
|
+
builder.tags(...tags);
|
|
104
|
+
if (discriminator)
|
|
105
|
+
builder.discriminator(discriminator);
|
|
106
|
+
if (toonDescription)
|
|
107
|
+
builder.toonDescription();
|
|
108
|
+
if (annotations)
|
|
109
|
+
builder.annotations(annotations);
|
|
110
|
+
const sharedSchema = resolveSchema(shared);
|
|
111
|
+
if (sharedSchema)
|
|
112
|
+
builder.commonSchema(sharedSchema);
|
|
113
|
+
middleware?.forEach(mw => builder.use(resolveMiddleware(mw)));
|
|
114
|
+
// ── Register actions/groups ──
|
|
115
|
+
if (actions) {
|
|
116
|
+
for (const [actionName, actionDef] of Object.entries(actions)) {
|
|
117
|
+
builder.action(buildActionConfig(actionName, actionDef));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (groups) {
|
|
121
|
+
for (const [groupName, groupDef] of Object.entries(groups)) {
|
|
122
|
+
registerGroup(builder, groupName, groupDef);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return builder;
|
|
126
|
+
}
|
|
127
|
+
// ============================================================================
|
|
128
|
+
// Internal Helpers
|
|
129
|
+
// ============================================================================
|
|
130
|
+
/**
|
|
131
|
+
* Build an ActionConfig from an ActionDef — single source of truth
|
|
132
|
+
* for translating high-level descriptors to builder config.
|
|
133
|
+
* @internal
|
|
134
|
+
*/
|
|
135
|
+
function buildActionConfig(actionName, def) {
|
|
136
|
+
const schema = resolveSchema(def.params);
|
|
137
|
+
return {
|
|
138
|
+
name: actionName,
|
|
139
|
+
handler: def.handler,
|
|
140
|
+
...(def.description && { description: def.description }),
|
|
141
|
+
...(schema && { schema }),
|
|
142
|
+
...(def.readOnly !== undefined && { readOnly: def.readOnly }),
|
|
143
|
+
...(def.destructive !== undefined && { destructive: def.destructive }),
|
|
144
|
+
...(def.idempotent !== undefined && { idempotent: def.idempotent }),
|
|
145
|
+
...((def.omitCommon?.length ?? 0) > 0 && { omitCommon: def.omitCommon }),
|
|
146
|
+
...(def.returns && { returns: def.returns }),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Register a group with its actions on a builder.
|
|
151
|
+
* @internal
|
|
152
|
+
*/
|
|
153
|
+
function registerGroup(builder, groupName, def) {
|
|
154
|
+
builder.group(groupName, def.description ?? '', g => {
|
|
155
|
+
if (def.omitCommon != null && def.omitCommon.length > 0) {
|
|
156
|
+
g.omitCommon(...def.omitCommon);
|
|
157
|
+
}
|
|
158
|
+
def.middleware?.forEach(mw => g.use(resolveMiddleware(mw)));
|
|
159
|
+
for (const [actionName, actionDef] of Object.entries(def.actions)) {
|
|
160
|
+
g.action(buildActionConfig(actionName, actionDef));
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=defineTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineTool.js","sourceRoot":"","sources":["../../../src/core/builder/defineTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Builder Bounded Context — Barrel Export */
|
|
2
|
+
export { GroupedToolBuilder, ActionGroupBuilder, createTool } from './GroupedToolBuilder.js';
|
|
3
|
+
export type { GroupConfigurator } from './ActionGroupBuilder.js';
|
|
4
|
+
export { compileToolDefinition } from './ToolDefinitionCompiler.js';
|
|
5
|
+
export { defineTool } from './defineTool.js';
|
|
6
|
+
export type { ToolConfig, ActionDef, GroupDef } from './defineTool.js';
|
|
7
|
+
export { convertParamsToZod } from './ParamDescriptors.js';
|
|
8
|
+
export type { ParamDef, ParamsMap, InferParams, StringParamDef, NumberParamDef, BooleanParamDef, EnumParamDef, ArrayParamDef, } from './ParamDescriptors.js';
|
|
9
|
+
export { FluentToolBuilder } from './FluentToolBuilder.js';
|
|
10
|
+
export type { SemanticDefaults } from './FluentToolBuilder.js';
|
|
11
|
+
export { FluentRouter } from './FluentRouter.js';
|
|
12
|
+
export { ErrorBuilder } from './ErrorBuilder.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/builder/index.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC7F,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EACR,QAAQ,EAAE,SAAS,EAAE,WAAW,EAChC,cAAc,EAAE,cAAc,EAAE,eAAe,EAC/C,YAAY,EAAE,aAAa,GAC9B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Builder Bounded Context — Barrel Export */
|
|
2
|
+
export { GroupedToolBuilder, ActionGroupBuilder, createTool } from './GroupedToolBuilder.js';
|
|
3
|
+
export { compileToolDefinition } from './ToolDefinitionCompiler.js';
|
|
4
|
+
export { defineTool } from './defineTool.js';
|
|
5
|
+
export { convertParamsToZod } from './ParamDescriptors.js';
|
|
6
|
+
// ── Fluent API ───────────────────────────────────────────
|
|
7
|
+
export { FluentToolBuilder } from './FluentToolBuilder.js';
|
|
8
|
+
export { FluentRouter } from './FluentRouter.js';
|
|
9
|
+
export { ErrorBuilder } from './ErrorBuilder.js';
|
|
10
|
+
// ── Internal Schema Helpers (not public API) ─────────────
|
|
11
|
+
// FluentSchemaHelpers remain for internal use by other modules
|
|
12
|
+
// but are NOT re-exported to consumers.
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/builder/index.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAO3D,4DAA4D;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,4DAA4D;AAC5D,+DAA+D;AAC/D,wCAAwC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* createGroup() — Functional Tool Group Compiler
|
|
3
|
+
*
|
|
4
|
+
* A lightweight, closure-based alternative to the class-heavy
|
|
5
|
+
* `GroupedToolBuilder`. Instead of maintaining internal state via `this._x`,
|
|
6
|
+
* it compiles a group config into a frozen object with pre-composed
|
|
7
|
+
* middleware and an O(1) dispatch function.
|
|
8
|
+
*
|
|
9
|
+
* **Why Functional?**
|
|
10
|
+
* - Closures minify 30-40% better than class methods (Terser can rename local vars)
|
|
11
|
+
* - No prototype chain overhead — zero `this` binding issues
|
|
12
|
+
* - Frozen return type prevents accidental mutation
|
|
13
|
+
* - Compatible with Edge Runtimes (Cloudflare Workers, Deno Deploy)
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { createGroup, success } from 'vurb';
|
|
18
|
+
*
|
|
19
|
+
* const billing = createGroup({
|
|
20
|
+
* name: 'billing',
|
|
21
|
+
* description: 'Invoice management',
|
|
22
|
+
* middleware: [requireAuth],
|
|
23
|
+
* actions: {
|
|
24
|
+
* get_invoice: {
|
|
25
|
+
* schema: z.object({ id: z.string() }),
|
|
26
|
+
* readOnly: true,
|
|
27
|
+
* handler: async (ctx, args) => success(await ctx.db.invoices.get(args.id)),
|
|
28
|
+
* },
|
|
29
|
+
* pay: {
|
|
30
|
+
* schema: z.object({ invoice_id: z.string(), amount: z.number() }),
|
|
31
|
+
* destructive: true,
|
|
32
|
+
* handler: async (ctx, args) => success(await ctx.db.payments.create(args)),
|
|
33
|
+
* },
|
|
34
|
+
* },
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* // billing.execute(ctx, 'get_invoice', { id: '123' })
|
|
38
|
+
* // billing.name === 'billing'
|
|
39
|
+
* // billing.actionNames === ['get_invoice', 'pay']
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @module
|
|
43
|
+
*/
|
|
44
|
+
import { type ZodObject, type ZodRawShape } from 'zod';
|
|
45
|
+
import { type ToolResponse } from '../core/response.js';
|
|
46
|
+
import { type MiddlewareFn } from '../core/types.js';
|
|
47
|
+
/**
|
|
48
|
+
* A single action definition within a group.
|
|
49
|
+
*/
|
|
50
|
+
export interface GroupAction<TContext> {
|
|
51
|
+
/** Human-readable description for the LLM */
|
|
52
|
+
readonly description?: string;
|
|
53
|
+
/** Zod schema for input validation */
|
|
54
|
+
readonly schema?: ZodObject<ZodRawShape>;
|
|
55
|
+
/** Mark as read-only */
|
|
56
|
+
readonly readOnly?: boolean;
|
|
57
|
+
/** Mark as destructive */
|
|
58
|
+
readonly destructive?: boolean;
|
|
59
|
+
/** Mark as idempotent */
|
|
60
|
+
readonly idempotent?: boolean;
|
|
61
|
+
/** Per-action middleware */
|
|
62
|
+
readonly middleware?: MiddlewareFn<TContext>[];
|
|
63
|
+
/** Handler function */
|
|
64
|
+
readonly handler: (ctx: TContext, args: Record<string, unknown>) => Promise<ToolResponse>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Full configuration for `createGroup()`.
|
|
68
|
+
*/
|
|
69
|
+
export interface GroupConfig<TContext> {
|
|
70
|
+
/** Group/tool name */
|
|
71
|
+
readonly name: string;
|
|
72
|
+
/** Description for the LLM */
|
|
73
|
+
readonly description?: string;
|
|
74
|
+
/** Capability tags */
|
|
75
|
+
readonly tags?: string[];
|
|
76
|
+
/** Shared middleware applied to ALL actions (outermost layer) */
|
|
77
|
+
readonly middleware?: MiddlewareFn<TContext>[];
|
|
78
|
+
/** Action definitions keyed by action name */
|
|
79
|
+
readonly actions: Record<string, GroupAction<TContext>>;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* A compiled, frozen group ready for execution.
|
|
83
|
+
*/
|
|
84
|
+
export interface CompiledGroup<TContext> {
|
|
85
|
+
/** Group/tool name */
|
|
86
|
+
readonly name: string;
|
|
87
|
+
/** Description */
|
|
88
|
+
readonly description: string | undefined;
|
|
89
|
+
/** Tags */
|
|
90
|
+
readonly tags: readonly string[];
|
|
91
|
+
/** List of action names */
|
|
92
|
+
readonly actionNames: readonly string[];
|
|
93
|
+
/**
|
|
94
|
+
* Execute an action by name.
|
|
95
|
+
*
|
|
96
|
+
* @param ctx - Application context
|
|
97
|
+
* @param action - Action name
|
|
98
|
+
* @param args - Input arguments
|
|
99
|
+
* @returns Tool response
|
|
100
|
+
* @throws If action name is unknown
|
|
101
|
+
*/
|
|
102
|
+
readonly execute: (ctx: TContext, action: string, args: Record<string, unknown>) => Promise<ToolResponse>;
|
|
103
|
+
/**
|
|
104
|
+
* Get metadata for a specific action.
|
|
105
|
+
*/
|
|
106
|
+
readonly getAction: (name: string) => Readonly<GroupAction<TContext>> | undefined;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Create a compiled, frozen tool group from a declarative config.
|
|
110
|
+
*
|
|
111
|
+
* The returned object has O(1) action dispatch via a pre-built Map.
|
|
112
|
+
* All middleware chains are pre-composed at creation time — zero
|
|
113
|
+
* runtime overhead on each call.
|
|
114
|
+
*
|
|
115
|
+
* @typeParam TContext - Application context type
|
|
116
|
+
* @param config - Group configuration with actions
|
|
117
|
+
* @returns A frozen {@link CompiledGroup} ready for execution
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```typescript
|
|
121
|
+
* const tasks = createGroup({
|
|
122
|
+
* name: 'tasks',
|
|
123
|
+
* middleware: [logMiddleware],
|
|
124
|
+
* actions: {
|
|
125
|
+
* list: {
|
|
126
|
+
* readOnly: true,
|
|
127
|
+
* handler: async (ctx) => success(await ctx.db.tasks.findMany()),
|
|
128
|
+
* },
|
|
129
|
+
* create: {
|
|
130
|
+
* schema: z.object({ title: z.string() }),
|
|
131
|
+
* handler: async (ctx, args) => success(await ctx.db.tasks.create(args)),
|
|
132
|
+
* },
|
|
133
|
+
* },
|
|
134
|
+
* });
|
|
135
|
+
*
|
|
136
|
+
* const result = await tasks.execute(ctx, 'create', { title: 'Buy milk' });
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export declare function createGroup<TContext = void>(config: GroupConfig<TContext>): CompiledGroup<TContext>;
|
|
140
|
+
//# sourceMappingURL=createGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createGroup.d.ts","sourceRoot":"","sources":["../../src/core/createGroup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AACvD,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIrD;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,QAAQ;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACzC,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,yBAAyB;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/C,uBAAuB;IACvB,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CAC7F;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,QAAQ;IACjC,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/C,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,QAAQ;IACnC,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,WAAW;IACX,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1G;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC;CACrF;AA+BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,WAAW,CAAC,QAAQ,GAAG,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAoEnG"}
|