@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 @@
|
|
|
1
|
+
{"version":3,"file":"edge-stub.js","sourceRoot":"","sources":["../src/edge-stub.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExpositionCompiler — Topology Compiler Engine
|
|
3
|
+
*
|
|
4
|
+
* Pure-function transformation module responsible for projecting
|
|
5
|
+
* the tool registry's abstract definitions onto the MCP protocol
|
|
6
|
+
* wire format based on the configured Exposition Strategy.
|
|
7
|
+
*
|
|
8
|
+
* - **flat**: Deterministically expands each action into an independent
|
|
9
|
+
* atomic MCP tool with isolated schema, description, and annotations.
|
|
10
|
+
*
|
|
11
|
+
* - **grouped**: Passthrough — yields the grouped tool definition unmodified.
|
|
12
|
+
*
|
|
13
|
+
* Also emits an O(1) dispatch map for constant-time request proxying
|
|
14
|
+
* during execution.
|
|
15
|
+
*
|
|
16
|
+
* Pure-function module: no state, no side effects.
|
|
17
|
+
*
|
|
18
|
+
* @module
|
|
19
|
+
*/
|
|
20
|
+
import { type Tool as McpTool } from '@modelcontextprotocol/sdk/types.js';
|
|
21
|
+
import { type ToolBuilder } from '../core/types.js';
|
|
22
|
+
import { type ToolExposition } from './types.js';
|
|
23
|
+
/**
|
|
24
|
+
* Routing entry for the O(1) dispatch map.
|
|
25
|
+
*
|
|
26
|
+
* Maps a flat tool name (e.g. `projects_list`) back to its
|
|
27
|
+
* originating builder, the action key, and the discriminator field.
|
|
28
|
+
*/
|
|
29
|
+
export interface FlatRoute<TContext> {
|
|
30
|
+
/** The originating grouped builder */
|
|
31
|
+
readonly builder: ToolBuilder<TContext>;
|
|
32
|
+
/** Action key to inject as discriminator value (e.g. `"list"`) */
|
|
33
|
+
readonly actionKey: string;
|
|
34
|
+
/** Discriminator field name (e.g. `"action"`) */
|
|
35
|
+
readonly discriminator: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Result of the exposition compilation phase.
|
|
39
|
+
*
|
|
40
|
+
* Contains the protocol-facing tool definitions and the routing map
|
|
41
|
+
* for incoming flat tool calls.
|
|
42
|
+
*/
|
|
43
|
+
export interface ExpositionResult<TContext> {
|
|
44
|
+
/** MCP Tool definitions to expose in `tools/list` */
|
|
45
|
+
readonly tools: McpTool[];
|
|
46
|
+
/** O(1) dispatch map: flat tool name → route info */
|
|
47
|
+
readonly routingMap: Map<string, FlatRoute<TContext>>;
|
|
48
|
+
/** Whether flat mode is active (controls callHandler behavior) */
|
|
49
|
+
readonly isFlat: boolean;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Compile tool builders into the protocol-facing exposition format.
|
|
53
|
+
*
|
|
54
|
+
* @param builders - Iterable of registered tool builders
|
|
55
|
+
* @param exposition - Exposition strategy ('flat' or 'grouped')
|
|
56
|
+
* @param separator - Action separator for flat naming (default: '_')
|
|
57
|
+
* @returns Compiled tools and routing map
|
|
58
|
+
*/
|
|
59
|
+
/**
|
|
60
|
+
* Optional warning callback for diagnostics.
|
|
61
|
+
* Replaces console.warn to avoid polluting stdout/stderr in production.
|
|
62
|
+
* @see Bug #131
|
|
63
|
+
*/
|
|
64
|
+
export type ExpositionWarnFn = (message: string) => void;
|
|
65
|
+
export declare function compileExposition<TContext>(builders: Iterable<ToolBuilder<TContext>>, exposition?: ToolExposition, separator?: string, onWarn?: ExpositionWarnFn): ExpositionResult<TContext>;
|
|
66
|
+
//# sourceMappingURL=ExpositionCompiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpositionCompiler.d.ts","sourceRoot":"","sources":["../../src/exposition/ExpositionCompiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAG1E,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD;;;;;GAKG;AACH,MAAM,WAAW,SAAS,CAAC,QAAQ;IAC/B,sCAAsC;IACtC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IACxC,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB,CAAC,QAAQ;IACtC,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;IAC1B,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC5B;AAID;;;;;;;GAOG;AACH;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzD,wBAAgB,iBAAiB,CAAC,QAAQ,EACtC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EACzC,UAAU,GAAE,cAAuB,EACnC,SAAS,GAAE,MAAY,EACvB,MAAM,CAAC,EAAE,gBAAgB,GAC1B,gBAAgB,CAAC,QAAQ,CAAC,CAK5B"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExpositionCompiler — Topology Compiler Engine
|
|
3
|
+
*
|
|
4
|
+
* Pure-function transformation module responsible for projecting
|
|
5
|
+
* the tool registry's abstract definitions onto the MCP protocol
|
|
6
|
+
* wire format based on the configured Exposition Strategy.
|
|
7
|
+
*
|
|
8
|
+
* - **flat**: Deterministically expands each action into an independent
|
|
9
|
+
* atomic MCP tool with isolated schema, description, and annotations.
|
|
10
|
+
*
|
|
11
|
+
* - **grouped**: Passthrough — yields the grouped tool definition unmodified.
|
|
12
|
+
*
|
|
13
|
+
* Also emits an O(1) dispatch map for constant-time request proxying
|
|
14
|
+
* during execution.
|
|
15
|
+
*
|
|
16
|
+
* Pure-function module: no state, no side effects.
|
|
17
|
+
*
|
|
18
|
+
* @module
|
|
19
|
+
*/
|
|
20
|
+
import {} from '@modelcontextprotocol/sdk/types.js';
|
|
21
|
+
import {} from 'zod';
|
|
22
|
+
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
23
|
+
import {} from '../core/types.js';
|
|
24
|
+
import { isPresenter } from '../presenter/Presenter.js';
|
|
25
|
+
import {} from './types.js';
|
|
26
|
+
export function compileExposition(builders, exposition = 'flat', separator = '_', onWarn) {
|
|
27
|
+
if (exposition === 'grouped') {
|
|
28
|
+
return compileGrouped(builders);
|
|
29
|
+
}
|
|
30
|
+
return compileFlat(builders, separator, onWarn);
|
|
31
|
+
}
|
|
32
|
+
// ── Flat Strategy ────────────────────────────────────────
|
|
33
|
+
/**
|
|
34
|
+
* Flat strategy: expand each action into an independent atomic MCP tool.
|
|
35
|
+
*
|
|
36
|
+
* Iterates over each builder, extracts per-action metadata, and
|
|
37
|
+
* synthesizes one McpTool per action with:
|
|
38
|
+
* - Deterministic name: `{toolName}{separator}{actionKey}`
|
|
39
|
+
* - Isolated schema (action-specific + common, no discriminator)
|
|
40
|
+
* - Isolated annotations (readOnlyHint, destructiveHint, idempotentHint)
|
|
41
|
+
* - Per-action description
|
|
42
|
+
*/
|
|
43
|
+
function compileFlat(builders, separator, onWarn) {
|
|
44
|
+
const tools = [];
|
|
45
|
+
const routingMap = new Map();
|
|
46
|
+
for (const builder of builders) {
|
|
47
|
+
// Ensure the grouped definition is compiled (caches internally)
|
|
48
|
+
builder.buildToolDefinition();
|
|
49
|
+
// Use AST reflection interfaces to access internal structures
|
|
50
|
+
const actions = getBuilderActions(builder);
|
|
51
|
+
const discriminator = getBuilderDiscriminator(builder);
|
|
52
|
+
const commonSchema = getBuilderCommonSchema(builder);
|
|
53
|
+
const toolName = builder.getName();
|
|
54
|
+
const selectEnabled = getBuilderSelectEnabled(builder);
|
|
55
|
+
if (!actions || actions.length === 0) {
|
|
56
|
+
// Fallback: builder has no reflection — pass through as grouped
|
|
57
|
+
tools.push(builder.buildToolDefinition());
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
const isSingleAction = actions.length === 1;
|
|
61
|
+
for (const action of actions) {
|
|
62
|
+
// Single-action builders with 'default' key use bare tool name
|
|
63
|
+
// (no _default suffix). This covers standalone f.query/f.mutation/f.action
|
|
64
|
+
// tools created via the Fluent API which always use 'default' as the key.
|
|
65
|
+
// Multi-action builders and named single actions retain toolName_actionKey.
|
|
66
|
+
const flatName = (isSingleAction && action.key === 'default')
|
|
67
|
+
? toolName
|
|
68
|
+
: `${toolName}${separator}${action.key}`;
|
|
69
|
+
// ── Schema Purification ──────────────────────────
|
|
70
|
+
const inputSchema = buildAtomicSchema(action, commonSchema, selectEnabled, onWarn);
|
|
71
|
+
// ── Boundary Isolation (Annotations) ─────────────
|
|
72
|
+
const annotations = buildAtomicAnnotations(action);
|
|
73
|
+
// ── Description ──────────────────────────────────
|
|
74
|
+
const description = buildAtomicDescription(action, toolName);
|
|
75
|
+
const tool = {
|
|
76
|
+
name: flatName,
|
|
77
|
+
description,
|
|
78
|
+
inputSchema,
|
|
79
|
+
};
|
|
80
|
+
if (Object.keys(annotations).length > 0) {
|
|
81
|
+
Object.defineProperty(tool, 'annotations', {
|
|
82
|
+
value: annotations,
|
|
83
|
+
enumerable: true,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
tools.push(tool);
|
|
87
|
+
// ── O(1) Dispatch Map Entry ──────────────────────
|
|
88
|
+
// Detect flat name collisions — two builders
|
|
89
|
+
// producing the same flat name would silently overwrite
|
|
90
|
+
// the routing entry, making the first tool inaccessible.
|
|
91
|
+
if (routingMap.has(flatName)) {
|
|
92
|
+
const existing = routingMap.get(flatName);
|
|
93
|
+
const msg = `[Vurb] Flat tool name collision: "${flatName}" is produced by both ` +
|
|
94
|
+
`"${existing.builder.getName()}" (action "${existing.actionKey}") and ` +
|
|
95
|
+
`"${toolName}" (action "${action.key}"). ` +
|
|
96
|
+
`Rename one of the tools or use a different action separator.`;
|
|
97
|
+
if (onWarn) {
|
|
98
|
+
onWarn(msg);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
throw new Error(msg);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
routingMap.set(flatName, {
|
|
105
|
+
builder,
|
|
106
|
+
actionKey: action.key,
|
|
107
|
+
discriminator,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return { tools, routingMap, isFlat: true };
|
|
112
|
+
}
|
|
113
|
+
// ── Grouped Strategy ─────────────────────────────────────
|
|
114
|
+
/**
|
|
115
|
+
* Grouped strategy: passthrough — yields the grouped tool definition unmodified.
|
|
116
|
+
* This preserves byte-for-byte identical protocol schema compared to pre-exposition behavior.
|
|
117
|
+
*/
|
|
118
|
+
function compileGrouped(builders) {
|
|
119
|
+
const tools = [];
|
|
120
|
+
for (const builder of builders) {
|
|
121
|
+
tools.push(builder.buildToolDefinition());
|
|
122
|
+
}
|
|
123
|
+
return { tools, routingMap: new Map(), isFlat: false };
|
|
124
|
+
}
|
|
125
|
+
// ── Atomic Builders (Internal) ───────────────────────────
|
|
126
|
+
/**
|
|
127
|
+
* Build an isolated JSON Schema for a single action.
|
|
128
|
+
*
|
|
129
|
+
* Merges the action's specific schema with the common schema,
|
|
130
|
+
* applies omitCommon fields, and strips the discriminator.
|
|
131
|
+
* Result is a clean object schema without the union wrapper.
|
|
132
|
+
*/
|
|
133
|
+
function buildAtomicSchema(action, commonSchema, selectEnabled = false, onWarn) {
|
|
134
|
+
const properties = {};
|
|
135
|
+
const required = [];
|
|
136
|
+
// ── Merge common schema fields ───────────────────────
|
|
137
|
+
if (commonSchema) {
|
|
138
|
+
const omitSet = action.omitCommonFields
|
|
139
|
+
? new Set(action.omitCommonFields)
|
|
140
|
+
: undefined;
|
|
141
|
+
const jsonSchema = zodToJsonSchema(commonSchema, { target: 'jsonSchema7' });
|
|
142
|
+
for (const [key, value] of Object.entries(jsonSchema.properties ?? {})) {
|
|
143
|
+
if (omitSet?.has(key))
|
|
144
|
+
continue;
|
|
145
|
+
properties[key] = value;
|
|
146
|
+
}
|
|
147
|
+
for (const key of jsonSchema.required ?? []) {
|
|
148
|
+
if (omitSet?.has(key))
|
|
149
|
+
continue;
|
|
150
|
+
if (key in properties) {
|
|
151
|
+
required.push(key);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// ── Merge action-specific schema fields ──────────────
|
|
156
|
+
if (action.schema) {
|
|
157
|
+
const jsonSchema = zodToJsonSchema(action.schema, { target: 'jsonSchema7' });
|
|
158
|
+
for (const [key, value] of Object.entries(jsonSchema.properties ?? {})) {
|
|
159
|
+
// Bug #54: Warn when action schema overwrites a common schema field
|
|
160
|
+
// Bug #131: Route through onWarn callback instead of console.warn
|
|
161
|
+
if (key in properties && onWarn) {
|
|
162
|
+
onWarn(`[Vurb] Action schema field '${key}' overwrites common schema field with the same name. ` +
|
|
163
|
+
`Use omitCommonFields to exclude the common field, or rename the action field.`);
|
|
164
|
+
}
|
|
165
|
+
properties[key] = value;
|
|
166
|
+
}
|
|
167
|
+
for (const key of jsonSchema.required ?? []) {
|
|
168
|
+
if (key in properties && !required.includes(key)) {
|
|
169
|
+
required.push(key);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// ── _select Reflection (opt-in) ──────────────────────
|
|
174
|
+
if (selectEnabled && action.returns && isPresenter(action.returns)) {
|
|
175
|
+
const schemaKeys = action.returns.getSchemaKeys();
|
|
176
|
+
if (schemaKeys.length > 0) {
|
|
177
|
+
properties['_select'] = {
|
|
178
|
+
type: 'array',
|
|
179
|
+
description: '⚡ Context optimization: select only the response fields you need. Omit to receive all fields.',
|
|
180
|
+
items: {
|
|
181
|
+
type: 'string',
|
|
182
|
+
enum: [...schemaKeys].sort(),
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
type: 'object',
|
|
189
|
+
properties,
|
|
190
|
+
...(required.length > 0 ? { required } : {}),
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Build isolated annotations for a single action.
|
|
195
|
+
*
|
|
196
|
+
* Each action gets its own `readOnlyHint`, `destructiveHint`,
|
|
197
|
+
* and `idempotentHint` — no privilege bleed across actions.
|
|
198
|
+
*/
|
|
199
|
+
function buildAtomicAnnotations(action) {
|
|
200
|
+
const annotations = {};
|
|
201
|
+
if (action.readOnly === true) {
|
|
202
|
+
// Action is read-only → never destructive.
|
|
203
|
+
// readOnlyHint default is false, so we must explicitly signal true.
|
|
204
|
+
// destructiveHint default is true (MCP assumes dangerous), so we must
|
|
205
|
+
// explicitly signal false to prevent unnecessary confirmation dialogs.
|
|
206
|
+
annotations['readOnlyHint'] = true;
|
|
207
|
+
annotations['destructiveHint'] = false;
|
|
208
|
+
}
|
|
209
|
+
else if (action.destructive === true) {
|
|
210
|
+
// Action is destructive → matches MCP's conservative default.
|
|
211
|
+
// We still emit explicitly for clarity in tools/list responses.
|
|
212
|
+
annotations['destructiveHint'] = true;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
// Neither read-only nor destructive.
|
|
216
|
+
// MCP spec defaults destructiveHint to true (assume dangerous).
|
|
217
|
+
// We MUST emit false to override this — otherwise clients like
|
|
218
|
+
// Claude Desktop or Cursor will show unnecessary safety warnings.
|
|
219
|
+
annotations['destructiveHint'] = false;
|
|
220
|
+
}
|
|
221
|
+
if (action.idempotent === true) {
|
|
222
|
+
annotations['idempotentHint'] = true;
|
|
223
|
+
}
|
|
224
|
+
return annotations;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Build a human-readable description for a single atomic action.
|
|
228
|
+
*/
|
|
229
|
+
function buildAtomicDescription(action, toolName) {
|
|
230
|
+
const parts = [];
|
|
231
|
+
if (action.description) {
|
|
232
|
+
parts.push(action.description);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
// Generate a default description from the tool and action name
|
|
236
|
+
const actionLabel = action.groupName
|
|
237
|
+
? `${action.groupName}.${action.actionName}`
|
|
238
|
+
: action.actionName;
|
|
239
|
+
parts.push(`${toolName} → ${actionLabel}`);
|
|
240
|
+
}
|
|
241
|
+
// Append safety flags for LLM awareness
|
|
242
|
+
if (action.destructive) {
|
|
243
|
+
parts.push('[DESTRUCTIVE]');
|
|
244
|
+
}
|
|
245
|
+
if (action.readOnly) {
|
|
246
|
+
parts.push('[READ-ONLY]');
|
|
247
|
+
}
|
|
248
|
+
return parts.join(' ');
|
|
249
|
+
}
|
|
250
|
+
// ── AST Reflection Helpers ───────────────────────────────
|
|
251
|
+
/**
|
|
252
|
+
* Extract actions from a builder using optional AST reflection interface.
|
|
253
|
+
* Returns undefined if the builder doesn't implement `getActions()`.
|
|
254
|
+
*/
|
|
255
|
+
function getBuilderActions(builder) {
|
|
256
|
+
return builder.getActions?.();
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Extract discriminator field name from a builder.
|
|
260
|
+
* Defaults to 'action' if the builder doesn't implement `getDiscriminator()`.
|
|
261
|
+
*/
|
|
262
|
+
function getBuilderDiscriminator(builder) {
|
|
263
|
+
return builder.getDiscriminator?.() ?? 'action';
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Extract common schema from a builder.
|
|
267
|
+
* Returns undefined if the builder doesn't implement `getCommonSchema()`.
|
|
268
|
+
*/
|
|
269
|
+
function getBuilderCommonSchema(builder) {
|
|
270
|
+
return builder.getCommonSchema?.();
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Check if select reflection is enabled on a builder.
|
|
274
|
+
* Returns false if the builder doesn't implement `getSelectEnabled()`.
|
|
275
|
+
*/
|
|
276
|
+
function getBuilderSelectEnabled(builder) {
|
|
277
|
+
return builder.getSelectEnabled?.() ?? false;
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=ExpositionCompiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpositionCompiler.js","sourceRoot":"","sources":["../../src/exposition/ExpositionCompiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exposition/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exposition/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAyC,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExpositionTypes — Tool Exposition Strategy Contracts
|
|
3
|
+
*
|
|
4
|
+
* Defines the configuration interfaces for the Topology Compiler Pattern.
|
|
5
|
+
* Controls how the framework projects grouped tool definitions onto the
|
|
6
|
+
* MCP protocol wire format.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Tool exposition strategy.
|
|
12
|
+
*
|
|
13
|
+
* - `'flat'` — Each action is exposed as an independent atomic MCP tool.
|
|
14
|
+
* Guarantees privilege isolation, deterministic routing, and granular UI.
|
|
15
|
+
* **This is the default.**
|
|
16
|
+
*
|
|
17
|
+
* - `'grouped'` — All actions within a builder are merged into a single
|
|
18
|
+
* MCP tool with a discriminated-union schema. Optimizes context-window
|
|
19
|
+
* token economy at the cost of UI granularity.
|
|
20
|
+
*
|
|
21
|
+
* @see {@link ExpositionConfig} for full configuration
|
|
22
|
+
*/
|
|
23
|
+
export type ToolExposition = 'flat' | 'grouped';
|
|
24
|
+
/**
|
|
25
|
+
* Configuration for the Topology Compiler's exposition strategy.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* registry.attachToServer(server, {
|
|
30
|
+
* contextFactory: createContext,
|
|
31
|
+
* toolExposition: 'flat', // Each action = 1 MCP tool
|
|
32
|
+
* actionSeparator: '_', // projects_list, projects_create
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export interface ExpositionConfig {
|
|
37
|
+
/**
|
|
38
|
+
* Exposition strategy for projecting grouped tools onto the MCP wire format.
|
|
39
|
+
*
|
|
40
|
+
* @default 'flat'
|
|
41
|
+
*/
|
|
42
|
+
toolExposition?: ToolExposition;
|
|
43
|
+
/**
|
|
44
|
+
* Delimiter for deterministic naming interpolation in flat mode.
|
|
45
|
+
* Used to join `{toolName}{separator}{actionKey}`.
|
|
46
|
+
*
|
|
47
|
+
* @default '_'
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* // With separator '_': projects_list, projects_create
|
|
52
|
+
* // With separator '.': projects.list, projects.create
|
|
53
|
+
* // With separator '-': projects-list, projects-create
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
actionSeparator?: string;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/exposition/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExpositionTypes — Tool Exposition Strategy Contracts
|
|
3
|
+
*
|
|
4
|
+
* Defines the configuration interfaces for the Topology Compiler Pattern.
|
|
5
|
+
* Controls how the framework projects grouped tool definitions onto the
|
|
6
|
+
* MCP protocol wire format.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/exposition/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|