@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,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PromptMessage — Factory Helpers for Prompt Messages
|
|
3
|
+
*
|
|
4
|
+
* Provides ergonomic factory methods for creating `PromptMessagePayload`
|
|
5
|
+
* objects used in `PromptResult.messages`.
|
|
6
|
+
*
|
|
7
|
+
* These helpers encode the MCP wire format so developers never deal
|
|
8
|
+
* with `{ role: 'user', content: { type: 'text', text: '...' } }`
|
|
9
|
+
* manually.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { PromptMessage } from 'vurb';
|
|
14
|
+
*
|
|
15
|
+
* return {
|
|
16
|
+
* messages: [
|
|
17
|
+
* PromptMessage.system('You are a Senior Auditor.'),
|
|
18
|
+
* PromptMessage.user('Begin the audit.'),
|
|
19
|
+
* PromptMessage.assistant('Analyzing invoices...'),
|
|
20
|
+
* ],
|
|
21
|
+
* };
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @module
|
|
25
|
+
*/
|
|
26
|
+
import { type PromptMessagePayload } from './types.js';
|
|
27
|
+
import { type ResponseBuilder } from '../presenter/ResponseBuilder.js';
|
|
28
|
+
/**
|
|
29
|
+
* Factory for creating MCP prompt messages.
|
|
30
|
+
*
|
|
31
|
+
* **Note on `system()`:** The MCP protocol only supports `user` and
|
|
32
|
+
* `assistant` roles in `PromptMessage`. System instructions are encoded
|
|
33
|
+
* as a `user` message (the first message) by convention — the MCP client
|
|
34
|
+
* prepends it to the conversation context.
|
|
35
|
+
*/
|
|
36
|
+
export declare const PromptMessage: {
|
|
37
|
+
/**
|
|
38
|
+
* Create a system instruction message.
|
|
39
|
+
*
|
|
40
|
+
* Encoded as `role: 'user'` per MCP spec (MCP does not have
|
|
41
|
+
* a `system` role in PromptMessage — system instructions are
|
|
42
|
+
* conveyed as the first `user` message by convention).
|
|
43
|
+
*
|
|
44
|
+
* @param text - System instruction text
|
|
45
|
+
*/
|
|
46
|
+
readonly system: (text: string) => PromptMessagePayload;
|
|
47
|
+
/**
|
|
48
|
+
* Create a user message.
|
|
49
|
+
*
|
|
50
|
+
* @param text - User message text
|
|
51
|
+
*/
|
|
52
|
+
readonly user: (text: string) => PromptMessagePayload;
|
|
53
|
+
/**
|
|
54
|
+
* Create an assistant message (for multi-turn seeding).
|
|
55
|
+
*
|
|
56
|
+
* Use this to pre-seed the assistant's initial response,
|
|
57
|
+
* guiding the LLM's first reasoning step.
|
|
58
|
+
*
|
|
59
|
+
* @param text - Assistant message text
|
|
60
|
+
*/
|
|
61
|
+
readonly assistant: (text: string) => PromptMessagePayload;
|
|
62
|
+
/**
|
|
63
|
+
* Create a message with an embedded image.
|
|
64
|
+
*
|
|
65
|
+
* @param role - Message role ('user' or 'assistant')
|
|
66
|
+
* @param data - Base64-encoded image data
|
|
67
|
+
* @param mimeType - MIME type (e.g., 'image/png', 'image/jpeg')
|
|
68
|
+
*/
|
|
69
|
+
readonly image: (role: "user" | "assistant", data: string, mimeType: string) => PromptMessagePayload;
|
|
70
|
+
/**
|
|
71
|
+
* Create a message with embedded audio.
|
|
72
|
+
*
|
|
73
|
+
* @param role - Message role ('user' or 'assistant')
|
|
74
|
+
* @param data - Base64-encoded audio data
|
|
75
|
+
* @param mimeType - MIME type (e.g., 'audio/wav', 'audio/mp3')
|
|
76
|
+
*/
|
|
77
|
+
readonly audio: (role: "user" | "assistant", data: string, mimeType: string) => PromptMessagePayload;
|
|
78
|
+
/**
|
|
79
|
+
* Create a message with an embedded resource reference.
|
|
80
|
+
*
|
|
81
|
+
* @param role - Message role ('user' or 'assistant')
|
|
82
|
+
* @param uri - Resource URI
|
|
83
|
+
* @param options - Optional mime type, text, or blob data
|
|
84
|
+
*/
|
|
85
|
+
readonly resource: (role: "user" | "assistant", uri: string, options?: {
|
|
86
|
+
mimeType?: string;
|
|
87
|
+
text?: string;
|
|
88
|
+
blob?: string;
|
|
89
|
+
}) => PromptMessagePayload;
|
|
90
|
+
/**
|
|
91
|
+
* Decompose a Presenter view into prompt messages.
|
|
92
|
+
*
|
|
93
|
+
* MVA-Driven Prompts — the bridge between the Presenter layer
|
|
94
|
+
* (MVA View for Tools) and the Prompt Engine. Extracts system rules,
|
|
95
|
+
* data, UI blocks, and action suggestions from a `ResponseBuilder`
|
|
96
|
+
* into composable `PromptMessagePayload[]` messages.
|
|
97
|
+
*
|
|
98
|
+
* Uses XML-tagged semantic blocks (`<domain_rules>`, `<dataset>`,
|
|
99
|
+
* `<visual_context>`, `<system_guidance>`) optimized for frontier
|
|
100
|
+
* LLM context handling — prevents context leakage between layers.
|
|
101
|
+
*
|
|
102
|
+
* **Single Source of Truth**: If a Presenter's `systemRules()` change,
|
|
103
|
+
* both Tools and Prompts update automatically — zero duplication.
|
|
104
|
+
*
|
|
105
|
+
* @param builder - A `ResponseBuilder` from `Presenter.make()` or `response()`
|
|
106
|
+
* @returns Array of prompt messages, ready to spread into `messages: [...]`
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* import { definePrompt, PromptMessage } from 'vurb';
|
|
111
|
+
* import { InvoicePresenter } from './presenters';
|
|
112
|
+
*
|
|
113
|
+
* const AuditPrompt = definePrompt<AppContext>('audit', {
|
|
114
|
+
* args: { invoiceId: 'string' } as const,
|
|
115
|
+
* handler: async (ctx, { invoiceId }) => {
|
|
116
|
+
* const invoice = await ctx.db.getInvoice(invoiceId);
|
|
117
|
+
* return {
|
|
118
|
+
* messages: [
|
|
119
|
+
* PromptMessage.system('You are a Senior Financial Auditor.'),
|
|
120
|
+
* ...PromptMessage.fromView(InvoicePresenter.make(invoice, ctx)),
|
|
121
|
+
* PromptMessage.user('Begin the audit for this invoice.'),
|
|
122
|
+
* ],
|
|
123
|
+
* };
|
|
124
|
+
* },
|
|
125
|
+
* });
|
|
126
|
+
* ```
|
|
127
|
+
*
|
|
128
|
+
* @see {@link Presenter} for the MVA View layer
|
|
129
|
+
* @see {@link ResponseBuilder} for the data source
|
|
130
|
+
*/
|
|
131
|
+
readonly fromView: (builder: ResponseBuilder) => PromptMessagePayload[];
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=PromptMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptMessage.d.ts","sourceRoot":"","sources":["../../src/prompt/PromptMessage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;IACtB;;;;;;;;OAQG;4BACU,MAAM,KAAG,oBAAoB;IAI1C;;;;OAIG;0BACQ,MAAM,KAAG,oBAAoB;IAIxC;;;;;;;OAOG;+BACa,MAAM,KAAG,oBAAoB;IAI7C;;;;;;OAMG;2BACS,MAAM,GAAG,WAAW,QAAQ,MAAM,YAAY,MAAM,KAAG,oBAAoB;IAIvF;;;;;;OAMG;2BACS,MAAM,GAAG,WAAW,QAAQ,MAAM,YAAY,MAAM,KAAG,oBAAoB;IAIvF;;;;;;OAMG;8BAEO,MAAM,GAAG,WAAW,OACrB,MAAM,YACD;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAC9D,oBAAoB;IAUvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;iCACe,eAAe,KAAG,oBAAoB,EAAE;CA4CpD,CAAC"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PromptMessage — Factory Helpers for Prompt Messages
|
|
3
|
+
*
|
|
4
|
+
* Provides ergonomic factory methods for creating `PromptMessagePayload`
|
|
5
|
+
* objects used in `PromptResult.messages`.
|
|
6
|
+
*
|
|
7
|
+
* These helpers encode the MCP wire format so developers never deal
|
|
8
|
+
* with `{ role: 'user', content: { type: 'text', text: '...' } }`
|
|
9
|
+
* manually.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { PromptMessage } from 'vurb';
|
|
14
|
+
*
|
|
15
|
+
* return {
|
|
16
|
+
* messages: [
|
|
17
|
+
* PromptMessage.system('You are a Senior Auditor.'),
|
|
18
|
+
* PromptMessage.user('Begin the audit.'),
|
|
19
|
+
* PromptMessage.assistant('Analyzing invoices...'),
|
|
20
|
+
* ],
|
|
21
|
+
* };
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @module
|
|
25
|
+
*/
|
|
26
|
+
import {} from './types.js';
|
|
27
|
+
import {} from '../presenter/ResponseBuilder.js';
|
|
28
|
+
/**
|
|
29
|
+
* Factory for creating MCP prompt messages.
|
|
30
|
+
*
|
|
31
|
+
* **Note on `system()`:** The MCP protocol only supports `user` and
|
|
32
|
+
* `assistant` roles in `PromptMessage`. System instructions are encoded
|
|
33
|
+
* as a `user` message (the first message) by convention — the MCP client
|
|
34
|
+
* prepends it to the conversation context.
|
|
35
|
+
*/
|
|
36
|
+
export const PromptMessage = {
|
|
37
|
+
/**
|
|
38
|
+
* Create a system instruction message.
|
|
39
|
+
*
|
|
40
|
+
* Encoded as `role: 'user'` per MCP spec (MCP does not have
|
|
41
|
+
* a `system` role in PromptMessage — system instructions are
|
|
42
|
+
* conveyed as the first `user` message by convention).
|
|
43
|
+
*
|
|
44
|
+
* @param text - System instruction text
|
|
45
|
+
*/
|
|
46
|
+
system(text) {
|
|
47
|
+
return { role: 'user', content: { type: 'text', text } };
|
|
48
|
+
},
|
|
49
|
+
/**
|
|
50
|
+
* Create a user message.
|
|
51
|
+
*
|
|
52
|
+
* @param text - User message text
|
|
53
|
+
*/
|
|
54
|
+
user(text) {
|
|
55
|
+
return { role: 'user', content: { type: 'text', text } };
|
|
56
|
+
},
|
|
57
|
+
/**
|
|
58
|
+
* Create an assistant message (for multi-turn seeding).
|
|
59
|
+
*
|
|
60
|
+
* Use this to pre-seed the assistant's initial response,
|
|
61
|
+
* guiding the LLM's first reasoning step.
|
|
62
|
+
*
|
|
63
|
+
* @param text - Assistant message text
|
|
64
|
+
*/
|
|
65
|
+
assistant(text) {
|
|
66
|
+
return { role: 'assistant', content: { type: 'text', text } };
|
|
67
|
+
},
|
|
68
|
+
/**
|
|
69
|
+
* Create a message with an embedded image.
|
|
70
|
+
*
|
|
71
|
+
* @param role - Message role ('user' or 'assistant')
|
|
72
|
+
* @param data - Base64-encoded image data
|
|
73
|
+
* @param mimeType - MIME type (e.g., 'image/png', 'image/jpeg')
|
|
74
|
+
*/
|
|
75
|
+
image(role, data, mimeType) {
|
|
76
|
+
return { role, content: { type: 'image', data, mimeType } };
|
|
77
|
+
},
|
|
78
|
+
/**
|
|
79
|
+
* Create a message with embedded audio.
|
|
80
|
+
*
|
|
81
|
+
* @param role - Message role ('user' or 'assistant')
|
|
82
|
+
* @param data - Base64-encoded audio data
|
|
83
|
+
* @param mimeType - MIME type (e.g., 'audio/wav', 'audio/mp3')
|
|
84
|
+
*/
|
|
85
|
+
audio(role, data, mimeType) {
|
|
86
|
+
return { role, content: { type: 'audio', data, mimeType } };
|
|
87
|
+
},
|
|
88
|
+
/**
|
|
89
|
+
* Create a message with an embedded resource reference.
|
|
90
|
+
*
|
|
91
|
+
* @param role - Message role ('user' or 'assistant')
|
|
92
|
+
* @param uri - Resource URI
|
|
93
|
+
* @param options - Optional mime type, text, or blob data
|
|
94
|
+
*/
|
|
95
|
+
resource(role, uri, options) {
|
|
96
|
+
return {
|
|
97
|
+
role,
|
|
98
|
+
content: {
|
|
99
|
+
type: 'resource',
|
|
100
|
+
resource: { uri, ...options },
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
},
|
|
104
|
+
/**
|
|
105
|
+
* Decompose a Presenter view into prompt messages.
|
|
106
|
+
*
|
|
107
|
+
* MVA-Driven Prompts — the bridge between the Presenter layer
|
|
108
|
+
* (MVA View for Tools) and the Prompt Engine. Extracts system rules,
|
|
109
|
+
* data, UI blocks, and action suggestions from a `ResponseBuilder`
|
|
110
|
+
* into composable `PromptMessagePayload[]` messages.
|
|
111
|
+
*
|
|
112
|
+
* Uses XML-tagged semantic blocks (`<domain_rules>`, `<dataset>`,
|
|
113
|
+
* `<visual_context>`, `<system_guidance>`) optimized for frontier
|
|
114
|
+
* LLM context handling — prevents context leakage between layers.
|
|
115
|
+
*
|
|
116
|
+
* **Single Source of Truth**: If a Presenter's `systemRules()` change,
|
|
117
|
+
* both Tools and Prompts update automatically — zero duplication.
|
|
118
|
+
*
|
|
119
|
+
* @param builder - A `ResponseBuilder` from `Presenter.make()` or `response()`
|
|
120
|
+
* @returns Array of prompt messages, ready to spread into `messages: [...]`
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* import { definePrompt, PromptMessage } from 'vurb';
|
|
125
|
+
* import { InvoicePresenter } from './presenters';
|
|
126
|
+
*
|
|
127
|
+
* const AuditPrompt = definePrompt<AppContext>('audit', {
|
|
128
|
+
* args: { invoiceId: 'string' } as const,
|
|
129
|
+
* handler: async (ctx, { invoiceId }) => {
|
|
130
|
+
* const invoice = await ctx.db.getInvoice(invoiceId);
|
|
131
|
+
* return {
|
|
132
|
+
* messages: [
|
|
133
|
+
* PromptMessage.system('You are a Senior Financial Auditor.'),
|
|
134
|
+
* ...PromptMessage.fromView(InvoicePresenter.make(invoice, ctx)),
|
|
135
|
+
* PromptMessage.user('Begin the audit for this invoice.'),
|
|
136
|
+
* ],
|
|
137
|
+
* };
|
|
138
|
+
* },
|
|
139
|
+
* });
|
|
140
|
+
* ```
|
|
141
|
+
*
|
|
142
|
+
* @see {@link Presenter} for the MVA View layer
|
|
143
|
+
* @see {@link ResponseBuilder} for the data source
|
|
144
|
+
*/
|
|
145
|
+
fromView(builder) {
|
|
146
|
+
const messages = [];
|
|
147
|
+
// 1. RULES → SYSTEM ROLE (domain directives travel with the data)
|
|
148
|
+
const rules = builder.getRules();
|
|
149
|
+
if (rules.length > 0) {
|
|
150
|
+
messages.push(PromptMessage.system(`<domain_rules>\n${rules.map(r => `- ${r}`).join('\n')}\n</domain_rules>`));
|
|
151
|
+
}
|
|
152
|
+
// 2. DATA & UI BLOCKS → USER ROLE (context for the LLM)
|
|
153
|
+
const data = builder.getData();
|
|
154
|
+
const uiBlocks = builder.getUiBlocks();
|
|
155
|
+
let userContent = '';
|
|
156
|
+
if (data) {
|
|
157
|
+
userContent += `<dataset>\n\`\`\`json\n${data}\n\`\`\`\n</dataset>\n\n`;
|
|
158
|
+
}
|
|
159
|
+
if (uiBlocks.length > 0) {
|
|
160
|
+
userContent += `<visual_context>\n${uiBlocks.map(b => b.content).join('\n\n')}\n</visual_context>\n\n`;
|
|
161
|
+
}
|
|
162
|
+
if (userContent.trim()) {
|
|
163
|
+
messages.push(PromptMessage.user(userContent.trim()));
|
|
164
|
+
}
|
|
165
|
+
// 3. AFFORDANCES → SYSTEM ROLE (hints + HATEOAS suggestions)
|
|
166
|
+
const hints = builder.getHints();
|
|
167
|
+
const suggestions = builder.getSuggestions();
|
|
168
|
+
if (hints.length > 0 || suggestions.length > 0) {
|
|
169
|
+
let guidance = '<system_guidance>\n';
|
|
170
|
+
if (hints.length > 0) {
|
|
171
|
+
guidance += hints.map(h => `Hint: ${h}`).join('\n') + '\n';
|
|
172
|
+
}
|
|
173
|
+
if (suggestions.length > 0) {
|
|
174
|
+
guidance += `Suggested Next Actions: ${suggestions.map(s => `${s.tool} (${s.reason})`).join(', ')}\n`;
|
|
175
|
+
}
|
|
176
|
+
guidance += '</system_guidance>';
|
|
177
|
+
messages.push(PromptMessage.system(guidance));
|
|
178
|
+
}
|
|
179
|
+
return messages;
|
|
180
|
+
},
|
|
181
|
+
};
|
|
182
|
+
//# sourceMappingURL=PromptMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptMessage.js","sourceRoot":"","sources":["../../src/prompt/PromptMessage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PromptRegistry — Centralized Prompt Registration & Routing
|
|
3
|
+
*
|
|
4
|
+
* The single place where all prompt builders are registered and where
|
|
5
|
+
* incoming `prompts/list` and `prompts/get` requests are routed.
|
|
6
|
+
*
|
|
7
|
+
* Mirrors the design of {@link ToolRegistry} with prompt-specific features:
|
|
8
|
+
* - O(1) routing via Map lookup
|
|
9
|
+
* - Tag-based filtering for RBAC exposure
|
|
10
|
+
* - Lifecycle sync via `notifyChanged()` (→ `notifications/prompts/list_changed`)
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { PromptRegistry, definePrompt } from 'vurb';
|
|
15
|
+
*
|
|
16
|
+
* const promptRegistry = new PromptRegistry<AppContext>();
|
|
17
|
+
* promptRegistry.register(AuditPrompt);
|
|
18
|
+
* promptRegistry.register(OnboardingPrompt);
|
|
19
|
+
*
|
|
20
|
+
* // Attach alongside tools:
|
|
21
|
+
* attachToServer(server, {
|
|
22
|
+
* tools: toolRegistry,
|
|
23
|
+
* prompts: promptRegistry,
|
|
24
|
+
* contextFactory: createContext,
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Lifecycle sync (e.g., after RBAC change):
|
|
28
|
+
* promptRegistry.notifyChanged();
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @see {@link definePrompt} for creating prompt builders
|
|
32
|
+
* @see {@link PromptBuilder} for the builder contract
|
|
33
|
+
*
|
|
34
|
+
* @module
|
|
35
|
+
*/
|
|
36
|
+
import { type PromptBuilder, type PromptResult, type PromptInterceptorFn } from './types.js';
|
|
37
|
+
import { type CursorMode } from './CursorCodec.js';
|
|
38
|
+
/** MCP Prompt definition (for `prompts/list`) */
|
|
39
|
+
export interface McpPromptDef {
|
|
40
|
+
name: string;
|
|
41
|
+
description?: string;
|
|
42
|
+
arguments?: Array<{
|
|
43
|
+
name: string;
|
|
44
|
+
description?: string;
|
|
45
|
+
required?: boolean;
|
|
46
|
+
}>;
|
|
47
|
+
}
|
|
48
|
+
/** Filter options for selective prompt exposure */
|
|
49
|
+
export interface PromptFilter {
|
|
50
|
+
/** Only include prompts that have ALL these tags (AND logic) */
|
|
51
|
+
tags?: string[];
|
|
52
|
+
/** Only include prompts that have at least ONE of these tags (OR logic) */
|
|
53
|
+
anyTag?: string[];
|
|
54
|
+
/** Exclude prompts that have ANY of these tags */
|
|
55
|
+
exclude?: string[];
|
|
56
|
+
}
|
|
57
|
+
/** Options for configuring pagination in PromptRegistry */
|
|
58
|
+
export interface PromptPaginationOptions {
|
|
59
|
+
/**
|
|
60
|
+
* Maximum number of prompts to return per page.
|
|
61
|
+
* Default: 50
|
|
62
|
+
*/
|
|
63
|
+
pageSize?: number;
|
|
64
|
+
/**
|
|
65
|
+
* 'signed' (HMAC) or 'encrypted' (AES-GCM). Default: 'signed'
|
|
66
|
+
*/
|
|
67
|
+
cursorMode?: CursorMode;
|
|
68
|
+
/**
|
|
69
|
+
* 32-byte secret for the cursor codec. If omitted, uses ephemeral keys.
|
|
70
|
+
*/
|
|
71
|
+
cursorSecret?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Callback type for sending `notifications/prompts/list_changed`.
|
|
75
|
+
* Set by ServerAttachment when the registry is attached to a server.
|
|
76
|
+
*/
|
|
77
|
+
export type PromptNotificationSink = () => void;
|
|
78
|
+
export declare class PromptRegistry<TContext = void> {
|
|
79
|
+
private readonly _builders;
|
|
80
|
+
private readonly _interceptors;
|
|
81
|
+
private _notificationSink?;
|
|
82
|
+
private _notifyDebounceTimer;
|
|
83
|
+
private _defaultHydrationTimeout;
|
|
84
|
+
private _cursorCodec;
|
|
85
|
+
private _pageSize;
|
|
86
|
+
/**
|
|
87
|
+
* Configure stateless cursor-based pagination for `prompts/list`.
|
|
88
|
+
* Overrides the default page size of 50.
|
|
89
|
+
*
|
|
90
|
+
* @param options Pagination configuration (pageSize, modes, secrets)
|
|
91
|
+
*/
|
|
92
|
+
configurePagination(options: PromptPaginationOptions): void;
|
|
93
|
+
/**
|
|
94
|
+
* Set a global hydration timeout for ALL prompts in this registry.
|
|
95
|
+
*
|
|
96
|
+
* Individual prompts can override with their own `hydrationTimeout`.
|
|
97
|
+
* If neither is set, no timeout is applied (backward compatible).
|
|
98
|
+
*
|
|
99
|
+
* **Enterprise use case**: The platform team sets a 5s global deadline.
|
|
100
|
+
* Critical prompts like `morning_briefing` set their own 3s deadline.
|
|
101
|
+
* Simple prompts (no external I/O) inherit the 5s safety net.
|
|
102
|
+
*
|
|
103
|
+
* @param ms - Maximum hydration time in milliseconds (must be > 0)
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* const promptRegistry = new PromptRegistry<AppContext>();
|
|
108
|
+
* promptRegistry.setDefaultHydrationTimeout(5000); // 5s global safety net
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
setDefaultHydrationTimeout(ms: number): void;
|
|
112
|
+
/**
|
|
113
|
+
* Register a single prompt builder.
|
|
114
|
+
*
|
|
115
|
+
* Validates that the prompt name is unique and triggers
|
|
116
|
+
* `buildPromptDefinition()` to compile at registration time.
|
|
117
|
+
*
|
|
118
|
+
* @param builder - A prompt builder (from `definePrompt()`)
|
|
119
|
+
* @throws If a prompt with the same name is already registered
|
|
120
|
+
*/
|
|
121
|
+
register(builder: PromptBuilder<TContext>): void;
|
|
122
|
+
/**
|
|
123
|
+
* Register multiple prompt builders at once.
|
|
124
|
+
*/
|
|
125
|
+
registerAll(...builders: PromptBuilder<TContext>[]): void;
|
|
126
|
+
/**
|
|
127
|
+
* Register a global Prompt Interceptor.
|
|
128
|
+
*
|
|
129
|
+
* Interceptors run AFTER the handler produces its `PromptResult` and BEFORE
|
|
130
|
+
* the result is returned to the MCP client. They can prepend/append messages
|
|
131
|
+
* to inject compliance headers, tenant context, RBAC constraints, or any
|
|
132
|
+
* global state that should wrap every prompt.
|
|
133
|
+
*
|
|
134
|
+
* **Enterprise use case**: The CISO requires every LLM interaction to include
|
|
135
|
+
* tenant isolation rules. Register one interceptor — it applies to all 50 prompts.
|
|
136
|
+
*
|
|
137
|
+
* Multiple interceptors are supported. They execute in registration order.
|
|
138
|
+
*
|
|
139
|
+
* @param interceptor - Callback receiving (ctx, builder, promptMeta)
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* promptRegistry.useInterceptor(async (ctx, builder, meta) => {
|
|
144
|
+
* builder.prependSystem(
|
|
145
|
+
* `[ENTERPRISE COMPLIANCE LAYER]\n` +
|
|
146
|
+
* `User Role: ${ctx.user.role} (Tenant ID: ${ctx.tenant.id})\n` +
|
|
147
|
+
* `Server Time: ${new Date().toISOString()}`
|
|
148
|
+
* );
|
|
149
|
+
* });
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
useInterceptor(interceptor: PromptInterceptorFn<TContext>): void;
|
|
153
|
+
/**
|
|
154
|
+
* Get all registered MCP Prompt definitions.
|
|
155
|
+
*
|
|
156
|
+
* Returns the compiled prompt metadata for `prompts/list`.
|
|
157
|
+
* @deprecated Use `listPrompts({ filter })` instead for pagination support.
|
|
158
|
+
*/
|
|
159
|
+
getAllPrompts(): McpPromptDef[];
|
|
160
|
+
/**
|
|
161
|
+
* Get prompt definitions filtered by tags.
|
|
162
|
+
*
|
|
163
|
+
* Uses Set-based lookups for O(1) tag matching.
|
|
164
|
+
* @deprecated Use `listPrompts({ filter })` instead for pagination support.
|
|
165
|
+
*/
|
|
166
|
+
getPrompts(filter: PromptFilter): McpPromptDef[];
|
|
167
|
+
/**
|
|
168
|
+
* Get paginated prompt definitions for `prompts/list`.
|
|
169
|
+
*
|
|
170
|
+
* Applies tag filters and decodes stateless cursors to return
|
|
171
|
+
* the requested slice of prompts, along with a `nextCursor` if more exist.
|
|
172
|
+
* Memory consumption is strictly O(1) across connections.
|
|
173
|
+
*
|
|
174
|
+
* @param request - Configuration containing optional `filter` and `cursor`.
|
|
175
|
+
* @returns Object with the array of prompts and an optional `nextCursor`.
|
|
176
|
+
*/
|
|
177
|
+
listPrompts(request?: {
|
|
178
|
+
filter?: PromptFilter;
|
|
179
|
+
cursor?: string;
|
|
180
|
+
}): Promise<{
|
|
181
|
+
prompts: McpPromptDef[];
|
|
182
|
+
nextCursor?: string;
|
|
183
|
+
}>;
|
|
184
|
+
/**
|
|
185
|
+
* Route an incoming `prompts/get` request to the correct builder.
|
|
186
|
+
*
|
|
187
|
+
* Looks up the builder by name and delegates to its `execute()` method.
|
|
188
|
+
* Returns an error prompt result if the prompt is not found.
|
|
189
|
+
*
|
|
190
|
+
* @param ctx - Application context (from contextFactory)
|
|
191
|
+
* @param name - Prompt name from the incoming MCP request
|
|
192
|
+
* @param args - Raw string arguments from the MCP client
|
|
193
|
+
* @returns The hydrated prompt result
|
|
194
|
+
*/
|
|
195
|
+
routeGet(ctx: TContext, name: string, args: Record<string, string>): Promise<PromptResult>;
|
|
196
|
+
/**
|
|
197
|
+
* Set the notification sink for `notifications/prompts/list_changed`.
|
|
198
|
+
*
|
|
199
|
+
* Called by `ServerAttachment` when attaching the registry to a server.
|
|
200
|
+
* The sink invokes the MCP SDK's `sendPromptListChanged()` method.
|
|
201
|
+
*
|
|
202
|
+
* @internal — not part of the public API
|
|
203
|
+
*/
|
|
204
|
+
setNotificationSink(sink: PromptNotificationSink): void;
|
|
205
|
+
/**
|
|
206
|
+
* Notify all connected clients that the prompt catalog has changed.
|
|
207
|
+
*
|
|
208
|
+
* Sends `notifications/prompts/list_changed` to all connected clients,
|
|
209
|
+
* causing them to re-fetch `prompts/list` and update their UI.
|
|
210
|
+
*
|
|
211
|
+
* **Debounced:** Multiple calls within 100ms are coalesced into a single
|
|
212
|
+
* notification to prevent storms during bulk registration or RBAC updates.
|
|
213
|
+
*
|
|
214
|
+
* Use cases:
|
|
215
|
+
* - RBAC change: user promoted/demoted → visible prompts change
|
|
216
|
+
* - SOP update: compliance rules changed → prompt logic updated
|
|
217
|
+
* - Feature flag: new prompt enabled for beta users
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* ```typescript
|
|
221
|
+
* // In your RBAC webhook handler:
|
|
222
|
+
* app.post('/webhooks/role-changed', async (req) => {
|
|
223
|
+
* await db.users.updateRole(req.userId, req.newRole);
|
|
224
|
+
* promptRegistry.notifyChanged(); // All clients refresh instantly
|
|
225
|
+
* });
|
|
226
|
+
* ```
|
|
227
|
+
*/
|
|
228
|
+
notifyChanged(): void;
|
|
229
|
+
/** Check if a prompt with the given name is registered. */
|
|
230
|
+
has(name: string): boolean;
|
|
231
|
+
/** Remove all registered prompts, interceptors, and cancel pending timers. */
|
|
232
|
+
clear(): void;
|
|
233
|
+
/** Number of registered prompts. */
|
|
234
|
+
get size(): number;
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=PromptRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptRegistry.d.ts","sourceRoot":"","sources":["../../src/prompt/PromptRegistry.ts"],"names":[],"mappings":"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"}
|