@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,50 @@
|
|
|
1
|
+
import { type Icon } from './Icon.js';
|
|
2
|
+
/**
|
|
3
|
+
* Base class for all MCP domain model entities.
|
|
4
|
+
*
|
|
5
|
+
* Provides common metadata properties shared by all MCP domain objects
|
|
6
|
+
* (tools, resources, prompts, groups). Every entity has a `name`,
|
|
7
|
+
* optional `title`, `description`, `meta`, and `icons`.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // BaseModel is abstract — use concrete subclasses:
|
|
12
|
+
* const tool = new Tool('read_file');
|
|
13
|
+
* tool.title = 'Read File';
|
|
14
|
+
* tool.description = 'Read a file from the filesystem';
|
|
15
|
+
* tool.meta = new Map([['version', '1.0']]);
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @see {@link Group} for tree nodes
|
|
19
|
+
* @see {@link GroupItem} for leaf nodes (Tool, Prompt, Resource)
|
|
20
|
+
*/
|
|
21
|
+
export declare abstract class BaseModel {
|
|
22
|
+
/** Default separator used in fully qualified names */
|
|
23
|
+
static readonly DEFAULT_SEPARATOR: string;
|
|
24
|
+
/** Separator character for constructing fully qualified names */
|
|
25
|
+
readonly nameSeparator: string;
|
|
26
|
+
/** Unique identifier within the parent scope */
|
|
27
|
+
readonly name: string;
|
|
28
|
+
/** Human-readable display title */
|
|
29
|
+
title: string | undefined;
|
|
30
|
+
/** Detailed description of this entity's purpose */
|
|
31
|
+
description: string | undefined;
|
|
32
|
+
/** Arbitrary key-value metadata for extensibility */
|
|
33
|
+
meta: Map<string, unknown> | undefined;
|
|
34
|
+
/** Visual icons associated with this entity */
|
|
35
|
+
icons: Icon[] | undefined;
|
|
36
|
+
protected constructor(name: string, nameSeparator?: string);
|
|
37
|
+
/**
|
|
38
|
+
* Returns the fully qualified name including all ancestor paths.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const parent = new Group('api');
|
|
43
|
+
* const child = new Group('v2');
|
|
44
|
+
* parent.addChildGroup(child);
|
|
45
|
+
* child.getFullyQualifiedName(); // "api.v2"
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
abstract getFullyQualifiedName(): string;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=BaseModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseModel.d.ts","sourceRoot":"","sources":["../../src/domain/BaseModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC;;;;;;;;;;;;;;;;;;GAkBG;AACH,8BAAsB,SAAS;IAC3B,sDAAsD;IACtD,gBAAuB,iBAAiB,EAAE,MAAM,CAAO;IAEvD,iEAAiE;IACjE,SAAgB,aAAa,EAAE,MAAM,CAAC;IACtC,gDAAgD;IAChD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,mCAAmC;IAC5B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,oDAAoD;IAC7C,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,qDAAqD;IAC9C,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC9C,+CAA+C;IACxC,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;IAEjC,SAAS,aAAa,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAK1D;;;;;;;;;;OAUG;aACa,qBAAqB,IAAI,MAAM;CAClD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import {} from './Icon.js';
|
|
2
|
+
/**
|
|
3
|
+
* Base class for all MCP domain model entities.
|
|
4
|
+
*
|
|
5
|
+
* Provides common metadata properties shared by all MCP domain objects
|
|
6
|
+
* (tools, resources, prompts, groups). Every entity has a `name`,
|
|
7
|
+
* optional `title`, `description`, `meta`, and `icons`.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // BaseModel is abstract — use concrete subclasses:
|
|
12
|
+
* const tool = new Tool('read_file');
|
|
13
|
+
* tool.title = 'Read File';
|
|
14
|
+
* tool.description = 'Read a file from the filesystem';
|
|
15
|
+
* tool.meta = new Map([['version', '1.0']]);
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @see {@link Group} for tree nodes
|
|
19
|
+
* @see {@link GroupItem} for leaf nodes (Tool, Prompt, Resource)
|
|
20
|
+
*/
|
|
21
|
+
export class BaseModel {
|
|
22
|
+
/** Default separator used in fully qualified names */
|
|
23
|
+
static DEFAULT_SEPARATOR = ".";
|
|
24
|
+
/** Separator character for constructing fully qualified names */
|
|
25
|
+
nameSeparator;
|
|
26
|
+
/** Unique identifier within the parent scope */
|
|
27
|
+
name;
|
|
28
|
+
/** Human-readable display title */
|
|
29
|
+
title;
|
|
30
|
+
/** Detailed description of this entity's purpose */
|
|
31
|
+
description;
|
|
32
|
+
/** Arbitrary key-value metadata for extensibility */
|
|
33
|
+
meta;
|
|
34
|
+
/** Visual icons associated with this entity */
|
|
35
|
+
icons;
|
|
36
|
+
constructor(name, nameSeparator) {
|
|
37
|
+
this.name = name;
|
|
38
|
+
this.nameSeparator = nameSeparator ?? BaseModel.DEFAULT_SEPARATOR;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=BaseModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseModel.js","sourceRoot":"","sources":["../../src/domain/BaseModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,WAAW,CAAC;AAEtC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAgB,SAAS;IAC3B,sDAAsD;IAC/C,MAAM,CAAU,iBAAiB,GAAW,GAAG,CAAC;IAEvD,iEAAiE;IACjD,aAAa,CAAS;IACtC,gDAAgD;IAChC,IAAI,CAAS;IAC7B,mCAAmC;IAC5B,KAAK,CAAqB;IACjC,oDAAoD;IAC7C,WAAW,CAAqB;IACvC,qDAAqD;IAC9C,IAAI,CAAmC;IAC9C,+CAA+C;IACxC,KAAK,CAAqB;IAEjC,YAAsB,IAAY,EAAE,aAAsB;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,SAAS,CAAC,iBAAiB,CAAC;IACtE,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { BaseModel } from './BaseModel.js';
|
|
2
|
+
import { type Tool } from './Tool.js';
|
|
3
|
+
import { type Prompt } from './Prompt.js';
|
|
4
|
+
import { type Resource } from './Resource.js';
|
|
5
|
+
/**
|
|
6
|
+
* Represents a hierarchical group (tree node) in the MCP domain model.
|
|
7
|
+
*
|
|
8
|
+
* Groups can contain child groups, tools, prompts, and resources.
|
|
9
|
+
* Supports fully qualified names via recursive parent traversal.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // Build a hierarchy
|
|
14
|
+
* const api = new Group('api');
|
|
15
|
+
* const v2 = new Group('v2');
|
|
16
|
+
* api.addChildGroup(v2);
|
|
17
|
+
*
|
|
18
|
+
* const readFile = new Tool('read_file');
|
|
19
|
+
* v2.addChildTool(readFile);
|
|
20
|
+
*
|
|
21
|
+
* v2.getFullyQualifiedName(); // "api.v2"
|
|
22
|
+
* api.isRoot(); // true
|
|
23
|
+
* v2.getRoot(); // api
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @see {@link GroupItem} for leaf nodes (Tool, Prompt, Resource)
|
|
27
|
+
* @see {@link BaseModel} for shared properties
|
|
28
|
+
*/
|
|
29
|
+
export declare class Group extends BaseModel {
|
|
30
|
+
/** Parent group (null if this is a root node) */
|
|
31
|
+
parent: Group | null;
|
|
32
|
+
/** Direct child groups in this container */
|
|
33
|
+
readonly childGroups: Group[];
|
|
34
|
+
/** Tools contained in this group */
|
|
35
|
+
readonly childTools: Tool[];
|
|
36
|
+
/** Prompts contained in this group */
|
|
37
|
+
readonly childPrompts: Prompt[];
|
|
38
|
+
/** Resources contained in this group */
|
|
39
|
+
readonly childResources: Resource[];
|
|
40
|
+
constructor(name: string, nameSeparator?: string);
|
|
41
|
+
private addChild;
|
|
42
|
+
private removeChild;
|
|
43
|
+
/**
|
|
44
|
+
* Traverse to the root of the tree.
|
|
45
|
+
*
|
|
46
|
+
* @returns The topmost ancestor group
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const root = new Group('api');
|
|
51
|
+
* const child = new Group('users');
|
|
52
|
+
* root.addChildGroup(child);
|
|
53
|
+
* child.getRoot(); // root
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
getRoot(): Group;
|
|
57
|
+
/** Returns `true` if this group has no parent (is a root node). */
|
|
58
|
+
isRoot(): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Add a child group to this container.
|
|
61
|
+
*
|
|
62
|
+
* @param childGroup - The group to nest under this one
|
|
63
|
+
* @returns `false` if already a child, `true` if added
|
|
64
|
+
*/
|
|
65
|
+
addChildGroup(childGroup: Group): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Remove a child group from this container.
|
|
68
|
+
*
|
|
69
|
+
* @param childGroup - The group to remove
|
|
70
|
+
* @returns `false` if not found, `true` if removed
|
|
71
|
+
*/
|
|
72
|
+
removeChildGroup(childGroup: Group): boolean;
|
|
73
|
+
/** Add a tool to this group. Returns `false` if already present. */
|
|
74
|
+
addChildTool(childTool: Tool): boolean;
|
|
75
|
+
/** Remove a tool from this group. Returns `false` if not found. */
|
|
76
|
+
removeChildTool(childTool: Tool): boolean;
|
|
77
|
+
/** Add a prompt to this group. Returns `false` if already present. */
|
|
78
|
+
addChildPrompt(childPrompt: Prompt): boolean;
|
|
79
|
+
/** Remove a prompt from this group. Returns `false` if not found. */
|
|
80
|
+
removeChildPrompt(childPrompt: Prompt): boolean;
|
|
81
|
+
/** Add a resource to this group. Returns `false` if already present. */
|
|
82
|
+
addChildResource(childResource: Resource): boolean;
|
|
83
|
+
/** Remove a resource from this group. Returns `false` if not found. */
|
|
84
|
+
removeChildResource(childResource: Resource): boolean;
|
|
85
|
+
protected getFullyQualifiedNameRecursive(tg: Group): string;
|
|
86
|
+
/**
|
|
87
|
+
* Returns the dot-separated fully qualified name.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const root = new Group('api');
|
|
92
|
+
* const v2 = new Group('v2');
|
|
93
|
+
* root.addChildGroup(v2);
|
|
94
|
+
* v2.getFullyQualifiedName(); // "api.v2"
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
getFullyQualifiedName(): string;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=Group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../src/domain/Group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,KAAM,SAAQ,SAAS;IAChC,iDAAiD;IAC1C,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACnC,4CAA4C;IAC5C,SAAgB,WAAW,EAAE,KAAK,EAAE,CAAC;IACrC,oCAAoC;IACpC,SAAgB,UAAU,EAAE,IAAI,EAAE,CAAC;IACnC,sCAAsC;IACtC,SAAgB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvC,wCAAwC;IACxC,SAAgB,cAAc,EAAE,QAAQ,EAAE,CAAC;gBAExB,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAUvD,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,WAAW;IAQnB;;;;;;;;;;;;OAYG;IACI,OAAO,IAAI,KAAK;IAIvB,mEAAmE;IAC5D,MAAM,IAAI,OAAO;IAMxB;;;;;OAKG;IACI,aAAa,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO;IAyBhD;;;;;OAKG;IACI,gBAAgB,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO;IAQnD,oEAAoE;IAC7D,YAAY,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO;IAI7C,mEAAmE;IAC5D,eAAe,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO;IAIhD,sEAAsE;IAC/D,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAInD,qEAAqE;IAC9D,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAItD,wEAAwE;IACjE,gBAAgB,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO;IAIzD,uEAAuE;IAChE,mBAAmB,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO;IAM5D,SAAS,CAAC,8BAA8B,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM;IAS3D;;;;;;;;;;OAUG;IACI,qBAAqB,IAAI,MAAM;CAGzC"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { BaseModel } from './BaseModel.js';
|
|
2
|
+
import {} from './GroupItem.js';
|
|
3
|
+
import {} from './Tool.js';
|
|
4
|
+
import {} from './Prompt.js';
|
|
5
|
+
import {} from './Resource.js';
|
|
6
|
+
import { removeFromArray } from './utils.js';
|
|
7
|
+
/**
|
|
8
|
+
* Represents a hierarchical group (tree node) in the MCP domain model.
|
|
9
|
+
*
|
|
10
|
+
* Groups can contain child groups, tools, prompts, and resources.
|
|
11
|
+
* Supports fully qualified names via recursive parent traversal.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // Build a hierarchy
|
|
16
|
+
* const api = new Group('api');
|
|
17
|
+
* const v2 = new Group('v2');
|
|
18
|
+
* api.addChildGroup(v2);
|
|
19
|
+
*
|
|
20
|
+
* const readFile = new Tool('read_file');
|
|
21
|
+
* v2.addChildTool(readFile);
|
|
22
|
+
*
|
|
23
|
+
* v2.getFullyQualifiedName(); // "api.v2"
|
|
24
|
+
* api.isRoot(); // true
|
|
25
|
+
* v2.getRoot(); // api
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @see {@link GroupItem} for leaf nodes (Tool, Prompt, Resource)
|
|
29
|
+
* @see {@link BaseModel} for shared properties
|
|
30
|
+
*/
|
|
31
|
+
export class Group extends BaseModel {
|
|
32
|
+
/** Parent group (null if this is a root node) */
|
|
33
|
+
parent = null;
|
|
34
|
+
/** Direct child groups in this container */
|
|
35
|
+
childGroups;
|
|
36
|
+
/** Tools contained in this group */
|
|
37
|
+
childTools;
|
|
38
|
+
/** Prompts contained in this group */
|
|
39
|
+
childPrompts;
|
|
40
|
+
/** Resources contained in this group */
|
|
41
|
+
childResources;
|
|
42
|
+
constructor(name, nameSeparator) {
|
|
43
|
+
super(name, nameSeparator !== undefined ? nameSeparator : BaseModel.DEFAULT_SEPARATOR);
|
|
44
|
+
this.childGroups = [];
|
|
45
|
+
this.childTools = [];
|
|
46
|
+
this.childPrompts = [];
|
|
47
|
+
this.childResources = [];
|
|
48
|
+
}
|
|
49
|
+
// ── Private helpers to eliminate add/remove repetition ──
|
|
50
|
+
addChild(list, child) {
|
|
51
|
+
if (list.includes(child))
|
|
52
|
+
return false;
|
|
53
|
+
list.push(child);
|
|
54
|
+
child.addParentGroup(this);
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
removeChild(list, child) {
|
|
58
|
+
if (!removeFromArray(list, child))
|
|
59
|
+
return false;
|
|
60
|
+
child.removeParentGroup(this);
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
// ── Tree navigation ──
|
|
64
|
+
/**
|
|
65
|
+
* Traverse to the root of the tree.
|
|
66
|
+
*
|
|
67
|
+
* @returns The topmost ancestor group
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* const root = new Group('api');
|
|
72
|
+
* const child = new Group('users');
|
|
73
|
+
* root.addChildGroup(child);
|
|
74
|
+
* child.getRoot(); // root
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
getRoot() {
|
|
78
|
+
return this.parent === null ? this : this.parent.getRoot();
|
|
79
|
+
}
|
|
80
|
+
/** Returns `true` if this group has no parent (is a root node). */
|
|
81
|
+
isRoot() {
|
|
82
|
+
return this.parent === null;
|
|
83
|
+
}
|
|
84
|
+
// ── Child groups (special: sets parent, not parentGroup) ──
|
|
85
|
+
/**
|
|
86
|
+
* Add a child group to this container.
|
|
87
|
+
*
|
|
88
|
+
* @param childGroup - The group to nest under this one
|
|
89
|
+
* @returns `false` if already a child, `true` if added
|
|
90
|
+
*/
|
|
91
|
+
addChildGroup(childGroup) {
|
|
92
|
+
if (this.childGroups.includes(childGroup))
|
|
93
|
+
return false;
|
|
94
|
+
// Bug #52: Cycle detection — walk the parent chain to prevent infinite recursion
|
|
95
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
96
|
+
let ancestor = this;
|
|
97
|
+
while (ancestor !== null) {
|
|
98
|
+
if (ancestor === childGroup) {
|
|
99
|
+
throw new Error(`[Vurb] Cycle detected: adding '${childGroup.name}' as a child of '${this.name}' would create a circular reference.`);
|
|
100
|
+
}
|
|
101
|
+
ancestor = ancestor.parent;
|
|
102
|
+
}
|
|
103
|
+
// Remove from previous parent to avoid ghost references (Bug #7 fix)
|
|
104
|
+
if (childGroup.parent !== null) {
|
|
105
|
+
childGroup.parent.removeChildGroup(childGroup);
|
|
106
|
+
}
|
|
107
|
+
this.childGroups.push(childGroup);
|
|
108
|
+
childGroup.parent = this;
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Remove a child group from this container.
|
|
113
|
+
*
|
|
114
|
+
* @param childGroup - The group to remove
|
|
115
|
+
* @returns `false` if not found, `true` if removed
|
|
116
|
+
*/
|
|
117
|
+
removeChildGroup(childGroup) {
|
|
118
|
+
if (!removeFromArray(this.childGroups, childGroup))
|
|
119
|
+
return false;
|
|
120
|
+
childGroup.parent = null;
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
// ── Child items (delegated to helpers) ──
|
|
124
|
+
/** Add a tool to this group. Returns `false` if already present. */
|
|
125
|
+
addChildTool(childTool) {
|
|
126
|
+
return this.addChild(this.childTools, childTool);
|
|
127
|
+
}
|
|
128
|
+
/** Remove a tool from this group. Returns `false` if not found. */
|
|
129
|
+
removeChildTool(childTool) {
|
|
130
|
+
return this.removeChild(this.childTools, childTool);
|
|
131
|
+
}
|
|
132
|
+
/** Add a prompt to this group. Returns `false` if already present. */
|
|
133
|
+
addChildPrompt(childPrompt) {
|
|
134
|
+
return this.addChild(this.childPrompts, childPrompt);
|
|
135
|
+
}
|
|
136
|
+
/** Remove a prompt from this group. Returns `false` if not found. */
|
|
137
|
+
removeChildPrompt(childPrompt) {
|
|
138
|
+
return this.removeChild(this.childPrompts, childPrompt);
|
|
139
|
+
}
|
|
140
|
+
/** Add a resource to this group. Returns `false` if already present. */
|
|
141
|
+
addChildResource(childResource) {
|
|
142
|
+
return this.addChild(this.childResources, childResource);
|
|
143
|
+
}
|
|
144
|
+
/** Remove a resource from this group. Returns `false` if not found. */
|
|
145
|
+
removeChildResource(childResource) {
|
|
146
|
+
return this.removeChild(this.childResources, childResource);
|
|
147
|
+
}
|
|
148
|
+
// ── FQN ──
|
|
149
|
+
getFullyQualifiedNameRecursive(tg) {
|
|
150
|
+
const parent = tg.parent;
|
|
151
|
+
if (parent !== null) {
|
|
152
|
+
const parentName = this.getFullyQualifiedNameRecursive(parent);
|
|
153
|
+
return parentName + this.nameSeparator + tg.name;
|
|
154
|
+
}
|
|
155
|
+
return tg.name;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Returns the dot-separated fully qualified name.
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```typescript
|
|
162
|
+
* const root = new Group('api');
|
|
163
|
+
* const v2 = new Group('v2');
|
|
164
|
+
* root.addChildGroup(v2);
|
|
165
|
+
* v2.getFullyQualifiedName(); // "api.v2"
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
getFullyQualifiedName() {
|
|
169
|
+
return this.getFullyQualifiedNameRecursive(this);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=Group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Group.js","sourceRoot":"","sources":["../../src/domain/Group.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { BaseModel } from './BaseModel.js';
|
|
2
|
+
import type { Group } from './Group.js';
|
|
3
|
+
/**
|
|
4
|
+
* Base class for leaf entities that can belong to one or more Groups.
|
|
5
|
+
*
|
|
6
|
+
* {@link Tool}, {@link Prompt}, and {@link Resource} all extend this
|
|
7
|
+
* class to inherit group membership management. Supports many-to-many
|
|
8
|
+
* relationships with parent groups.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const tool = new Tool('read_file');
|
|
13
|
+
* const group = new Group('filesystem');
|
|
14
|
+
*
|
|
15
|
+
* group.addChildTool(tool);
|
|
16
|
+
* tool.parentGroups; // [group]
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @see {@link Group} for parent containers
|
|
20
|
+
* @see {@link Tool} for tool leaf nodes
|
|
21
|
+
* @see {@link Prompt} for prompt leaf nodes
|
|
22
|
+
* @see {@link Resource} for resource leaf nodes
|
|
23
|
+
*/
|
|
24
|
+
export declare class GroupItem extends BaseModel {
|
|
25
|
+
/** Groups that contain this item (many-to-many relationship) */
|
|
26
|
+
readonly parentGroups: Group[];
|
|
27
|
+
protected constructor(name: string, nameSeparator?: string);
|
|
28
|
+
/**
|
|
29
|
+
* Add this item to a parent group.
|
|
30
|
+
*
|
|
31
|
+
* @param parentGroup - The group to join
|
|
32
|
+
* @returns `false` if already a member, `true` if added
|
|
33
|
+
* @internal Use {@link Group.addChildTool} / {@link Group.addChildPrompt} / {@link Group.addChildResource} instead.
|
|
34
|
+
*/
|
|
35
|
+
addParentGroup(parentGroup: Group): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Remove this item from a parent group.
|
|
38
|
+
*
|
|
39
|
+
* @param parentGroup - The group to leave
|
|
40
|
+
* @returns `false` if not found, `true` if removed
|
|
41
|
+
*/
|
|
42
|
+
removeParentGroup(parentGroup: Group): boolean;
|
|
43
|
+
/** Returns the simple name (leaf items have no hierarchy prefix) */
|
|
44
|
+
getFullyQualifiedName(): string;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=GroupItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupItem.d.ts","sourceRoot":"","sources":["../../src/domain/GroupItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,SAAU,SAAQ,SAAS;IACpC,gEAAgE;IAChE,SAAgB,YAAY,EAAE,KAAK,EAAE,CAAC;IAEtC,SAAS,aAAa,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAK1D;;;;;;OAMG;IACI,cAAc,CAAC,WAAW,EAAE,KAAK,GAAG,OAAO;IAMlD;;;;;OAKG;IACI,iBAAiB,CAAC,WAAW,EAAE,KAAK,GAAG,OAAO;IAIrD,oEAAoE;IAC7D,qBAAqB,IAAI,MAAM;CAGzC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { BaseModel } from './BaseModel.js';
|
|
2
|
+
import { removeFromArray } from './utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* Base class for leaf entities that can belong to one or more Groups.
|
|
5
|
+
*
|
|
6
|
+
* {@link Tool}, {@link Prompt}, and {@link Resource} all extend this
|
|
7
|
+
* class to inherit group membership management. Supports many-to-many
|
|
8
|
+
* relationships with parent groups.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const tool = new Tool('read_file');
|
|
13
|
+
* const group = new Group('filesystem');
|
|
14
|
+
*
|
|
15
|
+
* group.addChildTool(tool);
|
|
16
|
+
* tool.parentGroups; // [group]
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @see {@link Group} for parent containers
|
|
20
|
+
* @see {@link Tool} for tool leaf nodes
|
|
21
|
+
* @see {@link Prompt} for prompt leaf nodes
|
|
22
|
+
* @see {@link Resource} for resource leaf nodes
|
|
23
|
+
*/
|
|
24
|
+
export class GroupItem extends BaseModel {
|
|
25
|
+
/** Groups that contain this item (many-to-many relationship) */
|
|
26
|
+
parentGroups;
|
|
27
|
+
constructor(name, nameSeparator) {
|
|
28
|
+
super(name, nameSeparator);
|
|
29
|
+
this.parentGroups = [];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Add this item to a parent group.
|
|
33
|
+
*
|
|
34
|
+
* @param parentGroup - The group to join
|
|
35
|
+
* @returns `false` if already a member, `true` if added
|
|
36
|
+
* @internal Use {@link Group.addChildTool} / {@link Group.addChildPrompt} / {@link Group.addChildResource} instead.
|
|
37
|
+
*/
|
|
38
|
+
addParentGroup(parentGroup) {
|
|
39
|
+
if (this.parentGroups.includes(parentGroup))
|
|
40
|
+
return false;
|
|
41
|
+
this.parentGroups.push(parentGroup);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Remove this item from a parent group.
|
|
46
|
+
*
|
|
47
|
+
* @param parentGroup - The group to leave
|
|
48
|
+
* @returns `false` if not found, `true` if removed
|
|
49
|
+
*/
|
|
50
|
+
removeParentGroup(parentGroup) {
|
|
51
|
+
return removeFromArray(this.parentGroups, parentGroup);
|
|
52
|
+
}
|
|
53
|
+
/** Returns the simple name (leaf items have no hierarchy prefix) */
|
|
54
|
+
getFullyQualifiedName() {
|
|
55
|
+
return this.name;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=GroupItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupItem.js","sourceRoot":"","sources":["../../src/domain/GroupItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,SAAU,SAAQ,SAAS;IACpC,gEAAgE;IAChD,YAAY,CAAU;IAEtC,YAAsB,IAAY,EAAE,aAAsB;QACtD,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,WAAkB;QACpC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACI,iBAAiB,CAAC,WAAkB;QACvC,OAAO,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED,oEAAoE;IAC7D,qBAAqB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icon definition for entity metadata.
|
|
3
|
+
*
|
|
4
|
+
* Icons can be associated with {@link Group}, {@link Tool},
|
|
5
|
+
* or any {@link BaseModel} entity.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createIcon } from 'vurb';
|
|
10
|
+
*
|
|
11
|
+
* const icon = createIcon({
|
|
12
|
+
* src: 'https://example.com/icon.png',
|
|
13
|
+
* mimeType: 'image/png',
|
|
14
|
+
* sizes: ['32x32', '64x64'],
|
|
15
|
+
* theme: 'dark',
|
|
16
|
+
* });
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export interface Icon {
|
|
20
|
+
/** URL or path to the icon image */
|
|
21
|
+
readonly src?: string;
|
|
22
|
+
/** MIME type of the icon (e.g. `"image/png"`, `"image/svg+xml"`) */
|
|
23
|
+
readonly mimeType?: string;
|
|
24
|
+
/** Available sizes (e.g. `["32x32", "64x64"]`) */
|
|
25
|
+
readonly sizes?: readonly string[];
|
|
26
|
+
/** Theme variant (e.g. `"dark"`, `"light"`) */
|
|
27
|
+
readonly theme?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Create an Icon from partial properties.
|
|
31
|
+
*
|
|
32
|
+
* @param props - Icon properties (all optional)
|
|
33
|
+
* @returns A frozen Icon instance
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const icon = createIcon({ src: '/icons/tool.svg', mimeType: 'image/svg+xml' });
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare function createIcon(props?: Icon): Icon;
|
|
41
|
+
//# sourceMappingURL=Icon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/domain/Icon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,IAAI;IACjB,oCAAoC;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,GAAE,IAAS,GAAG,IAAI,CAEjD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create an Icon from partial properties.
|
|
3
|
+
*
|
|
4
|
+
* @param props - Icon properties (all optional)
|
|
5
|
+
* @returns A frozen Icon instance
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const icon = createIcon({ src: '/icons/tool.svg', mimeType: 'image/svg+xml' });
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export function createIcon(props = {}) {
|
|
13
|
+
return { ...props };
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=Icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../src/domain/Icon.ts"],"names":[],"mappings":"AA6BA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,QAAc,EAAE;IACvC,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { GroupItem } from './GroupItem.js';
|
|
2
|
+
import { type PromptArgument } from './PromptArgument.js';
|
|
3
|
+
/**
|
|
4
|
+
* Represents an MCP Prompt — a reusable template for LLM interactions.
|
|
5
|
+
*
|
|
6
|
+
* Prompts are leaf nodes that define structured input templates
|
|
7
|
+
* with named arguments. They enable consistent, parameterized
|
|
8
|
+
* LLM interactions.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { Prompt, PromptArgument } from 'vurb';
|
|
13
|
+
*
|
|
14
|
+
* const prompt = new Prompt('generate_summary');
|
|
15
|
+
* prompt.description = 'Generate a summary of the given text';
|
|
16
|
+
*
|
|
17
|
+
* const textArg = new PromptArgument('text');
|
|
18
|
+
* textArg.required = true;
|
|
19
|
+
* textArg.description = 'The text to summarize';
|
|
20
|
+
* prompt.addPromptArgument(textArg);
|
|
21
|
+
*
|
|
22
|
+
* const styleArg = new PromptArgument('style');
|
|
23
|
+
* styleArg.description = 'Summary style (brief, detailed)';
|
|
24
|
+
* prompt.addPromptArgument(styleArg);
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @see {@link PromptArgument} for argument definitions
|
|
28
|
+
* @see {@link GroupItem} for group membership
|
|
29
|
+
*/
|
|
30
|
+
export declare class Prompt extends GroupItem {
|
|
31
|
+
/** Ordered list of arguments accepted by this prompt */
|
|
32
|
+
readonly promptArguments: PromptArgument[];
|
|
33
|
+
constructor(name: string);
|
|
34
|
+
/**
|
|
35
|
+
* Add an argument to this prompt.
|
|
36
|
+
*
|
|
37
|
+
* @param promptArgument - The argument to add
|
|
38
|
+
* @returns `false` if already present, `true` if added
|
|
39
|
+
*/
|
|
40
|
+
addPromptArgument(promptArgument: PromptArgument): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Remove an argument from this prompt.
|
|
43
|
+
*
|
|
44
|
+
* @param promptArgument - The argument to remove
|
|
45
|
+
* @returns `false` if not found, `true` if removed
|
|
46
|
+
*/
|
|
47
|
+
removePromptArgument(promptArgument: PromptArgument): boolean;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=Prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Prompt.d.ts","sourceRoot":"","sources":["../../src/domain/Prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,MAAO,SAAQ,SAAS;IACjC,wDAAwD;IACxD,SAAgB,eAAe,EAAE,cAAc,EAAE,CAAM;gBAEpC,IAAI,EAAE,MAAM;IAI/B;;;;;OAKG;IACI,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO;IAMjE;;;;;OAKG;IACI,oBAAoB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO;CAGvE"}
|