@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,136 @@
|
|
|
1
|
+
import { SpanStatusCode } from '../observability/Tracing.js';
|
|
2
|
+
/**
|
|
3
|
+
* Create a governance observer that emits debug events and/or tracing
|
|
4
|
+
* spans for governance operations.
|
|
5
|
+
*
|
|
6
|
+
* @param config - Observer configuration (debug handler and/or tracer)
|
|
7
|
+
* @returns A `GovernanceObserver` instance
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { createGovernanceObserver } from 'vurb/introspection';
|
|
12
|
+
* import { createDebugObserver } from 'vurb';
|
|
13
|
+
*
|
|
14
|
+
* const observer = createGovernanceObserver({
|
|
15
|
+
* debug: createDebugObserver(),
|
|
16
|
+
* });
|
|
17
|
+
*
|
|
18
|
+
* const contracts = observer.observe(
|
|
19
|
+
* 'contract.compile',
|
|
20
|
+
* 'Compiling 5 tool contracts',
|
|
21
|
+
* () => compileContracts(builders),
|
|
22
|
+
* );
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export function createGovernanceObserver(config) {
|
|
26
|
+
const { debug, tracer } = config;
|
|
27
|
+
function observe(operation, label, fn) {
|
|
28
|
+
const start = Date.now();
|
|
29
|
+
const span = tracer?.startSpan(`mcp.governance.${operation}`, {
|
|
30
|
+
attributes: {
|
|
31
|
+
'mcp.governance.operation': operation,
|
|
32
|
+
'mcp.governance.label': label,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
try {
|
|
36
|
+
const result = fn();
|
|
37
|
+
// Bug #50: Runtime guard — reject async callbacks passed to sync observe()
|
|
38
|
+
if (result != null && typeof result['then'] === 'function') {
|
|
39
|
+
throw new Error('[Vurb] observe() received an async callback. Use observeAsync() for async operations.');
|
|
40
|
+
}
|
|
41
|
+
const durationMs = Date.now() - start;
|
|
42
|
+
span?.setAttribute('mcp.governance.outcome', 'success');
|
|
43
|
+
span?.setAttribute('mcp.durationMs', durationMs);
|
|
44
|
+
span?.setStatus({ code: SpanStatusCode.OK });
|
|
45
|
+
debug?.({
|
|
46
|
+
type: 'governance',
|
|
47
|
+
operation,
|
|
48
|
+
label,
|
|
49
|
+
outcome: 'success',
|
|
50
|
+
durationMs,
|
|
51
|
+
timestamp: Date.now(),
|
|
52
|
+
});
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
const durationMs = Date.now() - start;
|
|
57
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
58
|
+
span?.setAttribute('mcp.governance.outcome', 'failure');
|
|
59
|
+
span?.setAttribute('mcp.durationMs', durationMs);
|
|
60
|
+
span?.setStatus({ code: SpanStatusCode.ERROR, message });
|
|
61
|
+
span?.recordException(err instanceof Error ? err : new Error(message));
|
|
62
|
+
debug?.({
|
|
63
|
+
type: 'governance',
|
|
64
|
+
operation,
|
|
65
|
+
label,
|
|
66
|
+
outcome: 'failure',
|
|
67
|
+
detail: message,
|
|
68
|
+
durationMs,
|
|
69
|
+
timestamp: Date.now(),
|
|
70
|
+
});
|
|
71
|
+
throw err;
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
span?.end();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async function observeAsync(operation, label, fn) {
|
|
78
|
+
const start = Date.now();
|
|
79
|
+
const span = tracer?.startSpan(`mcp.governance.${operation}`, {
|
|
80
|
+
attributes: {
|
|
81
|
+
'mcp.governance.operation': operation,
|
|
82
|
+
'mcp.governance.label': label,
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
try {
|
|
86
|
+
const result = await fn();
|
|
87
|
+
const durationMs = Date.now() - start;
|
|
88
|
+
span?.setAttribute('mcp.governance.outcome', 'success');
|
|
89
|
+
span?.setAttribute('mcp.durationMs', durationMs);
|
|
90
|
+
span?.setStatus({ code: SpanStatusCode.OK });
|
|
91
|
+
debug?.({
|
|
92
|
+
type: 'governance',
|
|
93
|
+
operation,
|
|
94
|
+
label,
|
|
95
|
+
outcome: 'success',
|
|
96
|
+
durationMs,
|
|
97
|
+
timestamp: Date.now(),
|
|
98
|
+
});
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
const durationMs = Date.now() - start;
|
|
103
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
104
|
+
span?.setAttribute('mcp.governance.outcome', 'failure');
|
|
105
|
+
span?.setAttribute('mcp.durationMs', durationMs);
|
|
106
|
+
span?.setStatus({ code: SpanStatusCode.ERROR, message });
|
|
107
|
+
span?.recordException(err instanceof Error ? err : new Error(message));
|
|
108
|
+
debug?.({
|
|
109
|
+
type: 'governance',
|
|
110
|
+
operation,
|
|
111
|
+
label,
|
|
112
|
+
outcome: 'failure',
|
|
113
|
+
detail: message,
|
|
114
|
+
durationMs,
|
|
115
|
+
timestamp: Date.now(),
|
|
116
|
+
});
|
|
117
|
+
throw err;
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
span?.end();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return { observe, observeAsync };
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Create a no-op governance observer.
|
|
127
|
+
*
|
|
128
|
+
* Used when observability is not configured. Zero overhead.
|
|
129
|
+
*/
|
|
130
|
+
export function createNoopObserver() {
|
|
131
|
+
return {
|
|
132
|
+
observe: (_op, _label, fn) => fn(),
|
|
133
|
+
observeAsync: (_op, _label, fn) => fn(),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=GovernanceObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GovernanceObserver.js","sourceRoot":"","sources":["../../src/introspection/GovernanceObserver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ToolBuilder } from '../core/types.js';
|
|
2
|
+
import { type IntrospectionConfig } from './types.js';
|
|
3
|
+
/** Delegate interface for accessing registered builders (subset of ToolRegistry) */
|
|
4
|
+
export interface IntrospectionRegistryDelegate<TContext> {
|
|
5
|
+
/** Iterate over all registered builders */
|
|
6
|
+
values(): Iterable<ToolBuilder<TContext>>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Register MCP Resource handlers for introspection on the low-level Server.
|
|
10
|
+
*
|
|
11
|
+
* Called by `attachToServer()` when `options.introspection.enabled` is `true`.
|
|
12
|
+
*
|
|
13
|
+
* @param server - The resolved low-level MCP Server instance
|
|
14
|
+
* @param config - Introspection configuration (from AttachOptions)
|
|
15
|
+
* @param serverName - Server name for the manifest payload
|
|
16
|
+
* @param builders - Registry delegate providing builder iteration
|
|
17
|
+
* @param contextFactory - Factory to create per-request context (from AttachOptions)
|
|
18
|
+
*/
|
|
19
|
+
export declare function registerIntrospectionResource<TContext>(server: unknown, config: IntrospectionConfig<TContext>, serverName: string, builders: IntrospectionRegistryDelegate<TContext>, contextFactory?: (extra: unknown) => TContext | Promise<TContext>): void;
|
|
20
|
+
//# sourceMappingURL=IntrospectionResource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntrospectionResource.d.ts","sourceRoot":"","sources":["../../src/introspection/IntrospectionResource.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,KAAK,mBAAmB,EAAwB,MAAM,YAAY,CAAC;AA4B5E,oFAAoF;AACpF,MAAM,WAAW,6BAA6B,CAAC,QAAQ;IACnD,2CAA2C;IAC3C,MAAM,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC7C;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAClD,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,6BAA6B,CAAC,QAAQ,CAAC,EACjD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAClE,IAAI,CA+DN"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IntrospectionResource — MCP Resource Registration for Dynamic Manifest
|
|
3
|
+
*
|
|
4
|
+
* When introspection is enabled, this module silently registers two
|
|
5
|
+
* MCP request handlers on the low-level Server:
|
|
6
|
+
*
|
|
7
|
+
* 1. `resources/list` — Advertises the manifest resource
|
|
8
|
+
* 2. `resources/read` — Returns the RBAC-filtered manifest JSON
|
|
9
|
+
*
|
|
10
|
+
* Uses the native MCP Resource protocol — no custom HTTP endpoints.
|
|
11
|
+
* Zero overhead when introspection is disabled (this module is never imported).
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
import { ListResourcesRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
16
|
+
import {} from '../core/types.js';
|
|
17
|
+
import {} from './types.js';
|
|
18
|
+
import { compileManifest, cloneManifest } from './ManifestCompiler.js';
|
|
19
|
+
// ── Types ────────────────────────────────────────────────
|
|
20
|
+
/** Default URI for the introspection resource */
|
|
21
|
+
const DEFAULT_URI = 'vurb://manifest.json';
|
|
22
|
+
/** Default resource name */
|
|
23
|
+
const RESOURCE_NAME = 'Vurb Manifest';
|
|
24
|
+
/** Default resource description */
|
|
25
|
+
const RESOURCE_DESCRIPTION = 'Dynamic introspection manifest exposing all registered tools, actions, ' +
|
|
26
|
+
'and presenters. RBAC-filtered per session context.';
|
|
27
|
+
/** Default MIME type for the manifest resource */
|
|
28
|
+
const RESOURCE_MIME_TYPE = 'application/json';
|
|
29
|
+
// ── Public API ───────────────────────────────────────────
|
|
30
|
+
/**
|
|
31
|
+
* Register MCP Resource handlers for introspection on the low-level Server.
|
|
32
|
+
*
|
|
33
|
+
* Called by `attachToServer()` when `options.introspection.enabled` is `true`.
|
|
34
|
+
*
|
|
35
|
+
* @param server - The resolved low-level MCP Server instance
|
|
36
|
+
* @param config - Introspection configuration (from AttachOptions)
|
|
37
|
+
* @param serverName - Server name for the manifest payload
|
|
38
|
+
* @param builders - Registry delegate providing builder iteration
|
|
39
|
+
* @param contextFactory - Factory to create per-request context (from AttachOptions)
|
|
40
|
+
*/
|
|
41
|
+
export function registerIntrospectionResource(server, config, serverName, builders, contextFactory) {
|
|
42
|
+
const resolved = server;
|
|
43
|
+
const uri = config.uri ?? DEFAULT_URI;
|
|
44
|
+
// ── resources/list handler ────────────────────────────
|
|
45
|
+
// Advertises the manifest resource to clients/orchestrators
|
|
46
|
+
const existingListHandler = safeGetExistingListHandler(resolved);
|
|
47
|
+
resolved.setRequestHandler(ListResourcesRequestSchema, (() => {
|
|
48
|
+
// Merge with any previously registered resources
|
|
49
|
+
const existingResources = existingListHandler ? existingListHandler() : [];
|
|
50
|
+
return {
|
|
51
|
+
resources: [
|
|
52
|
+
...existingResources,
|
|
53
|
+
{
|
|
54
|
+
uri,
|
|
55
|
+
name: RESOURCE_NAME,
|
|
56
|
+
description: RESOURCE_DESCRIPTION,
|
|
57
|
+
mimeType: RESOURCE_MIME_TYPE,
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
};
|
|
61
|
+
}));
|
|
62
|
+
// ── resources/read handler ───────────────────────────
|
|
63
|
+
// Returns the RBAC-filtered manifest when requested
|
|
64
|
+
resolved.setRequestHandler(ReadResourceRequestSchema, (async (request, extra) => {
|
|
65
|
+
const requestedUri = request.params.uri;
|
|
66
|
+
// Only handle our manifest URI
|
|
67
|
+
if (requestedUri !== uri) {
|
|
68
|
+
return {
|
|
69
|
+
contents: [],
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
// Compile the full manifest from current registry state
|
|
73
|
+
const fullManifest = compileManifest(serverName, builders.values());
|
|
74
|
+
// Apply RBAC filter if configured
|
|
75
|
+
let manifest;
|
|
76
|
+
if (config.filter && contextFactory) {
|
|
77
|
+
const ctx = await contextFactory(extra);
|
|
78
|
+
// Clone before mutation to protect the compiled tree
|
|
79
|
+
manifest = config.filter(cloneManifest(fullManifest), ctx);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
manifest = fullManifest;
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
contents: [
|
|
86
|
+
{
|
|
87
|
+
uri,
|
|
88
|
+
mimeType: RESOURCE_MIME_TYPE,
|
|
89
|
+
text: JSON.stringify(manifest, null, 2),
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
};
|
|
93
|
+
}));
|
|
94
|
+
}
|
|
95
|
+
// ── Private Helpers ──────────────────────────────────────
|
|
96
|
+
/**
|
|
97
|
+
* Attempt to preserve an existing resources/list handler.
|
|
98
|
+
*
|
|
99
|
+
* Since the low-level Server replaces handlers (not appends), we
|
|
100
|
+
* capture any existing handler before overwriting it. This allows
|
|
101
|
+
* introspection to coexist with user-registered resources.
|
|
102
|
+
*
|
|
103
|
+
* @returns A function returning existing resources, or undefined
|
|
104
|
+
*/
|
|
105
|
+
function safeGetExistingListHandler(_server) {
|
|
106
|
+
// The low-level MCP SDK doesn't expose a getter for existing handlers.
|
|
107
|
+
// For now, introspection assumes it's the first to register resources/list.
|
|
108
|
+
// If the user also registers resources, they should do so AFTER
|
|
109
|
+
// attachToServer() or use the high-level McpServer.resource() API.
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=IntrospectionResource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntrospectionResource.js","sourceRoot":"","sources":["../../src/introspection/IntrospectionResource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EACH,0BAA0B,EAC1B,yBAAyB,GAC5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAoB,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAkD,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEvE,4DAA4D;AAE5D,iDAAiD;AACjD,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAE3C,4BAA4B;AAC5B,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,mCAAmC;AACnC,MAAM,oBAAoB,GACtB,yEAAyE;IACzE,oDAAoD,CAAC;AAEzD,kDAAkD;AAClD,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAiB9C,4DAA4D;AAE5D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,6BAA6B,CACzC,MAAe,EACf,MAAqC,EACrC,UAAkB,EAClB,QAAiD,EACjD,cAAiE;IAEjE,MAAM,QAAQ,GAAG,MAAgC,CAAC;IAClD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC;IAEtC,yDAAyD;IACzD,4DAA4D;IAC5D,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAEjE,QAAQ,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,CAAC,GAAG,EAAE;QACzD,iDAAiD;QACjD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE3E,OAAO;YACH,SAAS,EAAE;gBACP,GAAG,iBAAiB;gBACpB;oBACI,GAAG;oBACH,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,oBAAoB;oBACjC,QAAQ,EAAE,kBAAkB;iBAC/B;aACJ;SACJ,CAAC;IACN,CAAC,CAAkC,CAAC,CAAC;IAErC,wDAAwD;IACxD,oDAAoD;IACpD,QAAQ,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,CAAC,KAAK,EACxD,OAAoC,EACpC,KAAc,EAChB,EAAE;QACA,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;QAExC,+BAA+B;QAC/B,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO;gBACH,QAAQ,EAAE,EAAE;aACf,CAAC;QACN,CAAC;QAED,wDAAwD;QACxD,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAEpE,kCAAkC;QAClC,IAAI,QAAyB,CAAC;QAC9B,IAAI,MAAM,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;YACxC,qDAAqD;YACrD,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACJ,QAAQ,GAAG,YAAY,CAAC;QAC5B,CAAC;QAED,OAAO;YACH,QAAQ,EAAE;gBACN;oBACI,GAAG;oBACH,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC1C;aACJ;SACJ,CAAC;IACN,CAAC,CAAkC,CAAC,CAAC;AACzC,CAAC;AAED,4DAA4D;AAE5D;;;;;;;;GAQG;AACH,SAAS,0BAA0B,CAC/B,OAA+B;IAE/B,uEAAuE;IACvE,4EAA4E;IAC5E,gEAAgE;IAChE,mEAAmE;IACnE,OAAO,SAAS,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ManifestCompiler — Compiles the Dynamic Introspection Manifest
|
|
3
|
+
*
|
|
4
|
+
* Given a registry of tool builders, extracts all metadata (names,
|
|
5
|
+
* descriptions, action metadata, Zod→JSON Schema, presenter info)
|
|
6
|
+
* and compiles a structured {@link ManifestPayload}.
|
|
7
|
+
*
|
|
8
|
+
* The compiler operates on the **public** {@link ToolBuilder} interface,
|
|
9
|
+
* never accessing internals. This guarantees compatibility with custom
|
|
10
|
+
* builder implementations.
|
|
11
|
+
*
|
|
12
|
+
* Pure-function module: no state, no side effects.
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
import { type ToolBuilder } from '../core/types.js';
|
|
17
|
+
import { type ManifestPayload } from './types.js';
|
|
18
|
+
/**
|
|
19
|
+
* Compile a full manifest payload from a set of tool builders.
|
|
20
|
+
*
|
|
21
|
+
* @param serverName - The server name (from config or fallback)
|
|
22
|
+
* @param builders - Iterable of all registered tool builders
|
|
23
|
+
* @returns A deep-cloneable manifest payload
|
|
24
|
+
*/
|
|
25
|
+
export declare function compileManifest<TContext>(serverName: string, builders: Iterable<ToolBuilder<TContext>>): ManifestPayload;
|
|
26
|
+
/**
|
|
27
|
+
* Deep-clone a manifest payload for safe mutation by the RBAC filter.
|
|
28
|
+
*
|
|
29
|
+
* Uses structured clone semantics via JSON round-trip (the manifest
|
|
30
|
+
* is a pure JSON-serializable object — no functions, no circular refs).
|
|
31
|
+
*/
|
|
32
|
+
export declare function cloneManifest(manifest: ManifestPayload): ManifestPayload;
|
|
33
|
+
//# sourceMappingURL=ManifestCompiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManifestCompiler.d.ts","sourceRoot":"","sources":["../../src/introspection/ManifestCompiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACH,KAAK,eAAe,EAKvB,MAAM,YAAY,CAAC;AAYpB;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EACpC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAC1C,eAAe,CASjB;AAkDD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,eAAe,CAExE"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ManifestCompiler — Compiles the Dynamic Introspection Manifest
|
|
3
|
+
*
|
|
4
|
+
* Given a registry of tool builders, extracts all metadata (names,
|
|
5
|
+
* descriptions, action metadata, Zod→JSON Schema, presenter info)
|
|
6
|
+
* and compiles a structured {@link ManifestPayload}.
|
|
7
|
+
*
|
|
8
|
+
* The compiler operates on the **public** {@link ToolBuilder} interface,
|
|
9
|
+
* never accessing internals. This guarantees compatibility with custom
|
|
10
|
+
* builder implementations.
|
|
11
|
+
*
|
|
12
|
+
* Pure-function module: no state, no side effects.
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
import {} from '../core/types.js';
|
|
17
|
+
import {} from './types.js';
|
|
18
|
+
// ── Package Version ──────────────────────────────────────
|
|
19
|
+
/**
|
|
20
|
+
* Framework version injected into every manifest.
|
|
21
|
+
* Imported at build time — zero runtime FS overhead.
|
|
22
|
+
*/
|
|
23
|
+
const VURB_VERSION = '1.1.0';
|
|
24
|
+
// ── Public API ───────────────────────────────────────────
|
|
25
|
+
/**
|
|
26
|
+
* Compile a full manifest payload from a set of tool builders.
|
|
27
|
+
*
|
|
28
|
+
* @param serverName - The server name (from config or fallback)
|
|
29
|
+
* @param builders - Iterable of all registered tool builders
|
|
30
|
+
* @returns A deep-cloneable manifest payload
|
|
31
|
+
*/
|
|
32
|
+
export function compileManifest(serverName, builders) {
|
|
33
|
+
const capabilities = compileCapabilities(builders);
|
|
34
|
+
return {
|
|
35
|
+
server: serverName,
|
|
36
|
+
vurb_version: VURB_VERSION,
|
|
37
|
+
architecture: 'MVA (Model-View-Agent)',
|
|
38
|
+
capabilities,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
// ── Internal Steps ───────────────────────────────────────
|
|
42
|
+
/** Compile tools and collect unique presenters across all builders. */
|
|
43
|
+
function compileCapabilities(builders) {
|
|
44
|
+
const tools = {};
|
|
45
|
+
const presenters = {};
|
|
46
|
+
for (const builder of builders) {
|
|
47
|
+
const toolDef = builder.buildToolDefinition();
|
|
48
|
+
const metadata = builder.getActionMetadata();
|
|
49
|
+
// Compile actions
|
|
50
|
+
const actions = {};
|
|
51
|
+
for (const action of metadata) {
|
|
52
|
+
const presenterName = action.presenterName;
|
|
53
|
+
actions[action.key] = {
|
|
54
|
+
description: action.description,
|
|
55
|
+
destructive: action.destructive,
|
|
56
|
+
idempotent: action.idempotent,
|
|
57
|
+
readOnly: action.readOnly,
|
|
58
|
+
required_fields: action.requiredFields,
|
|
59
|
+
returns_presenter: presenterName,
|
|
60
|
+
};
|
|
61
|
+
// Collect presenter stub (if not already registered)
|
|
62
|
+
if (presenterName && !presenters[presenterName]) {
|
|
63
|
+
presenters[presenterName] = {
|
|
64
|
+
schema_keys: action.presenterSchemaKeys ?? [],
|
|
65
|
+
ui_blocks_supported: action.presenterUiBlockTypes ?? [],
|
|
66
|
+
has_contextual_rules: action.presenterHasContextualRules ?? false,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
tools[builder.getName()] = {
|
|
71
|
+
description: toolDef.description,
|
|
72
|
+
tags: builder.getTags(),
|
|
73
|
+
actions,
|
|
74
|
+
input_schema: toolDef.inputSchema,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
return { tools, presenters };
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Deep-clone a manifest payload for safe mutation by the RBAC filter.
|
|
81
|
+
*
|
|
82
|
+
* Uses structured clone semantics via JSON round-trip (the manifest
|
|
83
|
+
* is a pure JSON-serializable object — no functions, no circular refs).
|
|
84
|
+
*/
|
|
85
|
+
export function cloneManifest(manifest) {
|
|
86
|
+
return JSON.parse(JSON.stringify(manifest));
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=ManifestCompiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManifestCompiler.js","sourceRoot":"","sources":["../../src/introspection/ManifestCompiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAoB,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAMN,MAAM,YAAY,CAAC;AAEpB,4DAA4D;AAE5D;;;GAGG;AACH,MAAM,YAAY,GAAG,OAAO,CAAC;AAE7B,4DAA4D;AAE5D;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC3B,UAAkB,EAClB,QAAyC;IAEzC,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAEnD,OAAO;QACH,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,YAAY;QAC1B,YAAY,EAAE,wBAAwB;QACtC,YAAY;KACf,CAAC;AACN,CAAC;AAED,4DAA4D;AAE5D,uEAAuE;AACvE,SAAS,mBAAmB,CACxB,QAAyC;IAEzC,MAAM,KAAK,GAAiC,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAsC,EAAE,CAAC;IAEzD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAE7C,kBAAkB;QAClB,MAAM,OAAO,GAAmC,EAAE,CAAC;QACnD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;YAE3C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;gBAClB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,eAAe,EAAE,MAAM,CAAC,cAAc;gBACtC,iBAAiB,EAAE,aAAa;aACnC,CAAC;YAEF,qDAAqD;YACrD,IAAI,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC9C,UAAU,CAAC,aAAa,CAAC,GAAG;oBACxB,WAAW,EAAE,MAAM,CAAC,mBAAmB,IAAI,EAAE;oBAC7C,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,IAAI,EAAE;oBACvD,oBAAoB,EAAE,MAAM,CAAC,2BAA2B,IAAI,KAAK;iBACpE,CAAC;YACN,CAAC;QACL,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG;YACvB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE;YACvB,OAAO;YACP,YAAY,EAAE,OAAO,CAAC,WAAW;SACpC,CAAC;IACN,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAAyB;IACnD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAoB,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SemanticProbe — LLM-as-a-Judge for Opaque Behavior Detection
|
|
3
|
+
*
|
|
4
|
+
* **Evolution 2: Semantic Probing**
|
|
5
|
+
*
|
|
6
|
+
* Provides a framework for using an LLM to evaluate whether
|
|
7
|
+
* a tool handler's actual runtime behavior matches its declared
|
|
8
|
+
* behavioral contract. This detects "semantic drift" — situations
|
|
9
|
+
* where the handler's output changes meaning even when the
|
|
10
|
+
* egress schema and system rules remain structurally identical.
|
|
11
|
+
*
|
|
12
|
+
* **Architecture**: This module defines the probe protocol,
|
|
13
|
+
* types, and evaluation pipeline. The actual LLM invocation
|
|
14
|
+
* is delegated to user-provided adapters — the module never
|
|
15
|
+
* makes LLM calls directly, maintaining the "no hidden
|
|
16
|
+
* network dependencies" principle.
|
|
17
|
+
*
|
|
18
|
+
* **Testing integration**: Designed to be integrated with
|
|
19
|
+
* `VurbTester.callAction()` for automated regression
|
|
20
|
+
* testing: "given these inputs, does the output semantically
|
|
21
|
+
* match the previous known-good output?"
|
|
22
|
+
*
|
|
23
|
+
* Pure-function module for probe construction and evaluation;
|
|
24
|
+
* LLM interaction is async via pluggable adapters.
|
|
25
|
+
*
|
|
26
|
+
* @module
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* Configuration for semantic probing.
|
|
30
|
+
*/
|
|
31
|
+
export interface SemanticProbeConfig {
|
|
32
|
+
/** The LLM adapter to use for evaluation */
|
|
33
|
+
readonly adapter: SemanticProbeAdapter;
|
|
34
|
+
/** Risk thresholds for classification */
|
|
35
|
+
readonly thresholds?: Partial<SemanticThresholds>;
|
|
36
|
+
/** Maximum number of probes to run in parallel */
|
|
37
|
+
readonly concurrency?: number;
|
|
38
|
+
/** Whether to include raw LLM responses in results */
|
|
39
|
+
readonly includeRawResponses?: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Pluggable LLM adapter for semantic evaluation.
|
|
43
|
+
*
|
|
44
|
+
* Implementations should call an LLM with the provided prompt
|
|
45
|
+
* and return the structured evaluation result.
|
|
46
|
+
*/
|
|
47
|
+
export interface SemanticProbeAdapter {
|
|
48
|
+
/** Human-readable name (e.g., 'claude-3.5', 'gpt-4o') */
|
|
49
|
+
readonly name: string;
|
|
50
|
+
/**
|
|
51
|
+
* Send a semantic evaluation prompt to the LLM.
|
|
52
|
+
*
|
|
53
|
+
* @param prompt - Complete evaluation prompt
|
|
54
|
+
* @returns Raw LLM response text
|
|
55
|
+
*/
|
|
56
|
+
evaluate(prompt: string): Promise<string>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Thresholds for semantic drift classification.
|
|
60
|
+
*/
|
|
61
|
+
export interface SemanticThresholds {
|
|
62
|
+
/** Score below which drift is considered 'high' (default: 0.5) */
|
|
63
|
+
readonly highDriftThreshold: number;
|
|
64
|
+
/** Score below which drift is considered 'medium' (default: 0.75) */
|
|
65
|
+
readonly mediumDriftThreshold: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* A semantic probe definition — a structured test case
|
|
69
|
+
* for LLM-based behavioral evaluation.
|
|
70
|
+
*/
|
|
71
|
+
export interface SemanticProbe {
|
|
72
|
+
/** Unique identifier for this probe */
|
|
73
|
+
readonly id: string;
|
|
74
|
+
/** Tool name being probed */
|
|
75
|
+
readonly toolName: string;
|
|
76
|
+
/** Action key being probed */
|
|
77
|
+
readonly actionKey: string;
|
|
78
|
+
/** Description of what this probe tests */
|
|
79
|
+
readonly description: string;
|
|
80
|
+
/** Input arguments to the tool */
|
|
81
|
+
readonly input: Record<string, unknown>;
|
|
82
|
+
/** Expected output (known-good baseline) */
|
|
83
|
+
readonly expectedOutput: unknown;
|
|
84
|
+
/** Actual output from the current handler */
|
|
85
|
+
readonly actualOutput: unknown;
|
|
86
|
+
/** Behavioral contract context for the judge */
|
|
87
|
+
readonly contractContext: ProbeContractContext;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Contract context injected into the LLM judge prompt.
|
|
91
|
+
*
|
|
92
|
+
* Provides the judge with enough information to evaluate
|
|
93
|
+
* whether the behavioral contract was violated.
|
|
94
|
+
*/
|
|
95
|
+
export interface ProbeContractContext {
|
|
96
|
+
/** Tool description */
|
|
97
|
+
readonly description: string | undefined;
|
|
98
|
+
/** Whether the action is declared readOnly */
|
|
99
|
+
readonly readOnly: boolean;
|
|
100
|
+
/** Whether the action is declared destructive */
|
|
101
|
+
readonly destructive: boolean;
|
|
102
|
+
/** System rules that should be respected */
|
|
103
|
+
readonly systemRules: readonly string[];
|
|
104
|
+
/** Schema field names (expected output shape) */
|
|
105
|
+
readonly schemaKeys: readonly string[];
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Result of a single semantic probe evaluation.
|
|
109
|
+
*/
|
|
110
|
+
export interface SemanticProbeResult {
|
|
111
|
+
/** The probe that was evaluated */
|
|
112
|
+
readonly probe: SemanticProbe;
|
|
113
|
+
/** Semantic similarity score (0.0 = completely different, 1.0 = identical) */
|
|
114
|
+
readonly similarityScore: number;
|
|
115
|
+
/** Drift classification */
|
|
116
|
+
readonly driftLevel: DriftLevel;
|
|
117
|
+
/** Whether the behavioral contract was violated */
|
|
118
|
+
readonly contractViolated: boolean;
|
|
119
|
+
/** Specific violations detected by the judge */
|
|
120
|
+
readonly violations: readonly string[];
|
|
121
|
+
/** LLM judge's reasoning */
|
|
122
|
+
readonly reasoning: string;
|
|
123
|
+
/** Raw LLM response (if configured) */
|
|
124
|
+
readonly rawResponse: string | null;
|
|
125
|
+
/** ISO-8601 timestamp of evaluation */
|
|
126
|
+
readonly evaluatedAt: string;
|
|
127
|
+
}
|
|
128
|
+
/** Drift level classification */
|
|
129
|
+
export type DriftLevel = 'none' | 'low' | 'medium' | 'high';
|
|
130
|
+
/**
|
|
131
|
+
* Aggregated result of multiple semantic probes.
|
|
132
|
+
*/
|
|
133
|
+
export interface SemanticProbeReport {
|
|
134
|
+
/** Tool name */
|
|
135
|
+
readonly toolName: string;
|
|
136
|
+
/** All individual probe results */
|
|
137
|
+
readonly results: readonly SemanticProbeResult[];
|
|
138
|
+
/** Overall drift assessment */
|
|
139
|
+
readonly overallDrift: DriftLevel;
|
|
140
|
+
/** Number of contract violations */
|
|
141
|
+
readonly violationCount: number;
|
|
142
|
+
/** Whether the tool is considered semantically stable */
|
|
143
|
+
readonly stable: boolean;
|
|
144
|
+
/** Human-readable summary */
|
|
145
|
+
readonly summary: string;
|
|
146
|
+
/** ISO-8601 timestamp */
|
|
147
|
+
readonly completedAt: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Create a semantic probe from input/output pairs.
|
|
151
|
+
*
|
|
152
|
+
* @param toolName - Tool name
|
|
153
|
+
* @param actionKey - Action key
|
|
154
|
+
* @param input - Input arguments
|
|
155
|
+
* @param expectedOutput - Known-good baseline output
|
|
156
|
+
* @param actualOutput - Current handler output
|
|
157
|
+
* @param contractContext - Behavioral contract context
|
|
158
|
+
* @returns A structured semantic probe
|
|
159
|
+
*/
|
|
160
|
+
export declare function createProbe(toolName: string, actionKey: string, input: Record<string, unknown>, expectedOutput: unknown, actualOutput: unknown, contractContext: ProbeContractContext): SemanticProbe;
|
|
161
|
+
/**
|
|
162
|
+
* Build the evaluation prompt for the LLM judge.
|
|
163
|
+
*
|
|
164
|
+
* The prompt is structured to elicit a JSON-formatted response
|
|
165
|
+
* with specific fields for programmatic parsing.
|
|
166
|
+
*
|
|
167
|
+
* @param probe - The semantic probe to evaluate
|
|
168
|
+
* @returns Complete evaluation prompt
|
|
169
|
+
*/
|
|
170
|
+
export declare function buildJudgePrompt(probe: SemanticProbe): string;
|
|
171
|
+
/**
|
|
172
|
+
* Parse the LLM judge's response into a structured result.
|
|
173
|
+
*
|
|
174
|
+
* Handles malformed responses gracefully by falling back
|
|
175
|
+
* to conservative defaults.
|
|
176
|
+
*
|
|
177
|
+
* @param probe - The probe that was evaluated
|
|
178
|
+
* @param rawResponse - Raw LLM response text
|
|
179
|
+
* @param config - Probe configuration
|
|
180
|
+
* @returns Structured probe result
|
|
181
|
+
*/
|
|
182
|
+
export declare function parseJudgeResponse(probe: SemanticProbe, rawResponse: string, config: SemanticProbeConfig): SemanticProbeResult;
|
|
183
|
+
/**
|
|
184
|
+
* Run a complete semantic probe evaluation.
|
|
185
|
+
*
|
|
186
|
+
* @param probe - The probe to evaluate
|
|
187
|
+
* @param config - Probe configuration (includes LLM adapter)
|
|
188
|
+
* @returns Evaluation result
|
|
189
|
+
*/
|
|
190
|
+
export declare function evaluateProbe(probe: SemanticProbe, config: SemanticProbeConfig): Promise<SemanticProbeResult>;
|
|
191
|
+
/**
|
|
192
|
+
* Run multiple probes and aggregate results.
|
|
193
|
+
*
|
|
194
|
+
* @param probes - Array of probes to evaluate
|
|
195
|
+
* @param config - Probe configuration
|
|
196
|
+
* @returns Aggregated report
|
|
197
|
+
*/
|
|
198
|
+
export declare function evaluateProbes(probes: readonly SemanticProbe[], config: SemanticProbeConfig): Promise<SemanticProbeReport>;
|
|
199
|
+
/**
|
|
200
|
+
* Aggregate individual probe results into a report.
|
|
201
|
+
*
|
|
202
|
+
* @param toolName - Tool name
|
|
203
|
+
* @param results - Individual probe results
|
|
204
|
+
* @returns Aggregated report
|
|
205
|
+
*/
|
|
206
|
+
export declare function aggregateResults(toolName: string, results: readonly SemanticProbeResult[]): SemanticProbeReport;
|
|
207
|
+
//# sourceMappingURL=SemanticProbe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SemanticProbe.d.ts","sourceRoot":"","sources":["../../src/introspection/SemanticProbe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,yCAAyC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClD,kDAAkD;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,sDAAsD;IACtD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACjC,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,qEAAqE;IACrE,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,4CAA4C;IAC5C,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,gDAAgD;IAChD,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC;CAClD;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACjC,uBAAuB;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,8EAA8E;IAC9E,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,2BAA2B;IAC3B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,mDAAmD;IACnD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,4BAA4B;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,uCAAuC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC;AAED,iCAAiC;AACjC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,gBAAgB;IAChB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACjD,+BAA+B;IAC/B,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,oCAAoC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,6BAA6B;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yBAAyB;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,cAAc,EAAE,OAAO,EACvB,YAAY,EAAE,OAAO,EACrB,eAAe,EAAE,oBAAoB,GACtC,aAAa,CAaf;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAqD7D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,mBAAmB,GAC5B,mBAAmB,CAoCrB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAC/B,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,mBAAmB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAI9B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAChC,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,MAAM,EAAE,mBAAmB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAgC9B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS,mBAAmB,EAAE,GACxC,mBAAmB,CA8BrB"}
|