@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.
Files changed (642) hide show
  1. package/README.md +677 -0
  2. package/dist/cli/args.d.ts +26 -0
  3. package/dist/cli/args.d.ts.map +1 -0
  4. package/dist/cli/args.js +117 -0
  5. package/dist/cli/args.js.map +1 -0
  6. package/dist/cli/commands/create.d.ts +11 -0
  7. package/dist/cli/commands/create.d.ts.map +1 -0
  8. package/dist/cli/commands/create.js +121 -0
  9. package/dist/cli/commands/create.js.map +1 -0
  10. package/dist/cli/commands/deploy.d.ts +3 -0
  11. package/dist/cli/commands/deploy.d.ts.map +1 -0
  12. package/dist/cli/commands/deploy.js +268 -0
  13. package/dist/cli/commands/deploy.js.map +1 -0
  14. package/dist/cli/commands/dev.d.ts +9 -0
  15. package/dist/cli/commands/dev.d.ts.map +1 -0
  16. package/dist/cli/commands/dev.js +58 -0
  17. package/dist/cli/commands/dev.js.map +1 -0
  18. package/dist/cli/commands/lock.d.ts +5 -0
  19. package/dist/cli/commands/lock.d.ts.map +1 -0
  20. package/dist/cli/commands/lock.js +94 -0
  21. package/dist/cli/commands/lock.js.map +1 -0
  22. package/dist/cli/commands/remote.d.ts +3 -0
  23. package/dist/cli/commands/remote.d.ts.map +1 -0
  24. package/dist/cli/commands/remote.js +37 -0
  25. package/dist/cli/commands/remote.js.map +1 -0
  26. package/dist/cli/constants.d.ts +18 -0
  27. package/dist/cli/constants.d.ts.map +1 -0
  28. package/dist/cli/constants.js +95 -0
  29. package/dist/cli/constants.js.map +1 -0
  30. package/dist/cli/progress.d.ts +34 -0
  31. package/dist/cli/progress.d.ts.map +1 -0
  32. package/dist/cli/progress.js +102 -0
  33. package/dist/cli/progress.js.map +1 -0
  34. package/dist/cli/rc.d.ts +11 -0
  35. package/dist/cli/rc.d.ts.map +1 -0
  36. package/dist/cli/rc.js +75 -0
  37. package/dist/cli/rc.js.map +1 -0
  38. package/dist/cli/registry.d.ts +25 -0
  39. package/dist/cli/registry.d.ts.map +1 -0
  40. package/dist/cli/registry.js +86 -0
  41. package/dist/cli/registry.js.map +1 -0
  42. package/dist/cli/scaffold.d.ts +10 -0
  43. package/dist/cli/scaffold.d.ts.map +1 -0
  44. package/dist/cli/scaffold.js +105 -0
  45. package/dist/cli/scaffold.js.map +1 -0
  46. package/dist/cli/templates/config.d.ts +14 -0
  47. package/dist/cli/templates/config.d.ts.map +1 -0
  48. package/dist/cli/templates/config.js +133 -0
  49. package/dist/cli/templates/config.js.map +1 -0
  50. package/dist/cli/templates/constants.d.ts +9 -0
  51. package/dist/cli/templates/constants.d.ts.map +1 -0
  52. package/dist/cli/templates/constants.js +9 -0
  53. package/dist/cli/templates/constants.js.map +1 -0
  54. package/dist/cli/templates/core.d.ts +14 -0
  55. package/dist/cli/templates/core.d.ts.map +1 -0
  56. package/dist/cli/templates/core.js +186 -0
  57. package/dist/cli/templates/core.js.map +1 -0
  58. package/dist/cli/templates/cursor.d.ts +8 -0
  59. package/dist/cli/templates/cursor.d.ts.map +1 -0
  60. package/dist/cli/templates/cursor.js +13 -0
  61. package/dist/cli/templates/cursor.js.map +1 -0
  62. package/dist/cli/templates/index.d.ts +17 -0
  63. package/dist/cli/templates/index.d.ts.map +1 -0
  64. package/dist/cli/templates/index.js +27 -0
  65. package/dist/cli/templates/index.js.map +1 -0
  66. package/dist/cli/templates/middleware.d.ts +7 -0
  67. package/dist/cli/templates/middleware.d.ts.map +1 -0
  68. package/dist/cli/templates/middleware.js +34 -0
  69. package/dist/cli/templates/middleware.js.map +1 -0
  70. package/dist/cli/templates/presenter.d.ts +7 -0
  71. package/dist/cli/templates/presenter.d.ts.map +1 -0
  72. package/dist/cli/templates/presenter.js +46 -0
  73. package/dist/cli/templates/presenter.js.map +1 -0
  74. package/dist/cli/templates/prompt.d.ts +7 -0
  75. package/dist/cli/templates/prompt.d.ts.map +1 -0
  76. package/dist/cli/templates/prompt.js +42 -0
  77. package/dist/cli/templates/prompt.js.map +1 -0
  78. package/dist/cli/templates/readme.d.ts +8 -0
  79. package/dist/cli/templates/readme.d.ts.map +1 -0
  80. package/dist/cli/templates/readme.js +173 -0
  81. package/dist/cli/templates/readme.js.map +1 -0
  82. package/dist/cli/templates/testing.d.ts +11 -0
  83. package/dist/cli/templates/testing.d.ts.map +1 -0
  84. package/dist/cli/templates/testing.js +101 -0
  85. package/dist/cli/templates/testing.js.map +1 -0
  86. package/dist/cli/templates/tools.d.ts +13 -0
  87. package/dist/cli/templates/tools.d.ts.map +1 -0
  88. package/dist/cli/templates/tools.js +63 -0
  89. package/dist/cli/templates/tools.js.map +1 -0
  90. package/dist/cli/templates/vectors/database.d.ts +9 -0
  91. package/dist/cli/templates/vectors/database.d.ts.map +1 -0
  92. package/dist/cli/templates/vectors/database.js +82 -0
  93. package/dist/cli/templates/vectors/database.js.map +1 -0
  94. package/dist/cli/templates/vectors/index.d.ts +9 -0
  95. package/dist/cli/templates/vectors/index.d.ts.map +1 -0
  96. package/dist/cli/templates/vectors/index.js +9 -0
  97. package/dist/cli/templates/vectors/index.js.map +1 -0
  98. package/dist/cli/templates/vectors/oauth.d.ts +10 -0
  99. package/dist/cli/templates/vectors/oauth.d.ts.map +1 -0
  100. package/dist/cli/templates/vectors/oauth.js +76 -0
  101. package/dist/cli/templates/vectors/oauth.js.map +1 -0
  102. package/dist/cli/templates/vectors/openapi.d.ts +10 -0
  103. package/dist/cli/templates/vectors/openapi.d.ts.map +1 -0
  104. package/dist/cli/templates/vectors/openapi.js +106 -0
  105. package/dist/cli/templates/vectors/openapi.js.map +1 -0
  106. package/dist/cli/templates/vectors/workflow.d.ts +7 -0
  107. package/dist/cli/templates/vectors/workflow.d.ts.map +1 -0
  108. package/dist/cli/templates/vectors/workflow.js +49 -0
  109. package/dist/cli/templates/vectors/workflow.js.map +1 -0
  110. package/dist/cli/types.d.ts +36 -0
  111. package/dist/cli/types.d.ts.map +1 -0
  112. package/dist/cli/types.js +10 -0
  113. package/dist/cli/types.js.map +1 -0
  114. package/dist/cli/utils.d.ts +27 -0
  115. package/dist/cli/utils.d.ts.map +1 -0
  116. package/dist/cli/utils.js +73 -0
  117. package/dist/cli/utils.js.map +1 -0
  118. package/dist/cli/vurb.d.ts +15 -0
  119. package/dist/cli/vurb.d.ts.map +1 -0
  120. package/dist/cli/vurb.js +87 -0
  121. package/dist/cli/vurb.js.map +1 -0
  122. package/dist/client/InferRouter.d.ts +92 -0
  123. package/dist/client/InferRouter.d.ts.map +1 -0
  124. package/dist/client/InferRouter.js +31 -0
  125. package/dist/client/InferRouter.js.map +1 -0
  126. package/dist/client/VurbClient.d.ts +282 -0
  127. package/dist/client/VurbClient.d.ts.map +1 -0
  128. package/dist/client/VurbClient.js +287 -0
  129. package/dist/client/VurbClient.js.map +1 -0
  130. package/dist/client/createTypedRegistry.d.ts +25 -0
  131. package/dist/client/createTypedRegistry.d.ts.map +1 -0
  132. package/dist/client/createTypedRegistry.js +74 -0
  133. package/dist/client/createTypedRegistry.js.map +1 -0
  134. package/dist/client/index.d.ts +6 -0
  135. package/dist/client/index.d.ts.map +1 -0
  136. package/dist/client/index.js +4 -0
  137. package/dist/client/index.js.map +1 -0
  138. package/dist/converters/ConverterBase.d.ts +68 -0
  139. package/dist/converters/ConverterBase.d.ts.map +1 -0
  140. package/dist/converters/ConverterBase.js +62 -0
  141. package/dist/converters/ConverterBase.js.map +1 -0
  142. package/dist/converters/GroupConverter.d.ts +33 -0
  143. package/dist/converters/GroupConverter.d.ts.map +1 -0
  144. package/dist/converters/GroupConverter.js +26 -0
  145. package/dist/converters/GroupConverter.js.map +1 -0
  146. package/dist/converters/PromptConverter.d.ts +33 -0
  147. package/dist/converters/PromptConverter.d.ts.map +1 -0
  148. package/dist/converters/PromptConverter.js +26 -0
  149. package/dist/converters/PromptConverter.js.map +1 -0
  150. package/dist/converters/ResourceConverter.d.ts +35 -0
  151. package/dist/converters/ResourceConverter.d.ts.map +1 -0
  152. package/dist/converters/ResourceConverter.js +28 -0
  153. package/dist/converters/ResourceConverter.js.map +1 -0
  154. package/dist/converters/ToolAnnotationsConverter.d.ts +33 -0
  155. package/dist/converters/ToolAnnotationsConverter.d.ts.map +1 -0
  156. package/dist/converters/ToolAnnotationsConverter.js +26 -0
  157. package/dist/converters/ToolAnnotationsConverter.js.map +1 -0
  158. package/dist/converters/ToolConverter.d.ts +35 -0
  159. package/dist/converters/ToolConverter.d.ts.map +1 -0
  160. package/dist/converters/ToolConverter.js +28 -0
  161. package/dist/converters/ToolConverter.js.map +1 -0
  162. package/dist/converters/index.d.ts +7 -0
  163. package/dist/converters/index.d.ts.map +1 -0
  164. package/dist/converters/index.js +7 -0
  165. package/dist/converters/index.js.map +1 -0
  166. package/dist/core/StandardSchema.d.ts +178 -0
  167. package/dist/core/StandardSchema.d.ts.map +1 -0
  168. package/dist/core/StandardSchema.js +174 -0
  169. package/dist/core/StandardSchema.js.map +1 -0
  170. package/dist/core/builder/ActionGroupBuilder.d.ts +208 -0
  171. package/dist/core/builder/ActionGroupBuilder.d.ts.map +1 -0
  172. package/dist/core/builder/ActionGroupBuilder.js +193 -0
  173. package/dist/core/builder/ActionGroupBuilder.js.map +1 -0
  174. package/dist/core/builder/ErrorBuilder.d.ts +59 -0
  175. package/dist/core/builder/ErrorBuilder.d.ts.map +1 -0
  176. package/dist/core/builder/ErrorBuilder.js +99 -0
  177. package/dist/core/builder/ErrorBuilder.js.map +1 -0
  178. package/dist/core/builder/FluentRouter.d.ts +96 -0
  179. package/dist/core/builder/FluentRouter.d.ts.map +1 -0
  180. package/dist/core/builder/FluentRouter.js +116 -0
  181. package/dist/core/builder/FluentRouter.js.map +1 -0
  182. package/dist/core/builder/FluentSchemaHelpers.d.ts +237 -0
  183. package/dist/core/builder/FluentSchemaHelpers.d.ts.map +1 -0
  184. package/dist/core/builder/FluentSchemaHelpers.js +227 -0
  185. package/dist/core/builder/FluentSchemaHelpers.js.map +1 -0
  186. package/dist/core/builder/FluentToolBuilder.d.ts +419 -0
  187. package/dist/core/builder/FluentToolBuilder.d.ts.map +1 -0
  188. package/dist/core/builder/FluentToolBuilder.js +643 -0
  189. package/dist/core/builder/FluentToolBuilder.js.map +1 -0
  190. package/dist/core/builder/GroupedToolBuilder.d.ts +832 -0
  191. package/dist/core/builder/GroupedToolBuilder.d.ts.map +1 -0
  192. package/dist/core/builder/GroupedToolBuilder.js +1306 -0
  193. package/dist/core/builder/GroupedToolBuilder.js.map +1 -0
  194. package/dist/core/builder/ParamDescriptors.d.ts +142 -0
  195. package/dist/core/builder/ParamDescriptors.d.ts.map +1 -0
  196. package/dist/core/builder/ParamDescriptors.js +164 -0
  197. package/dist/core/builder/ParamDescriptors.js.map +1 -0
  198. package/dist/core/builder/ToolDefinitionCompiler.d.ts +37 -0
  199. package/dist/core/builder/ToolDefinitionCompiler.d.ts.map +1 -0
  200. package/dist/core/builder/ToolDefinitionCompiler.js +72 -0
  201. package/dist/core/builder/ToolDefinitionCompiler.js.map +1 -0
  202. package/dist/core/builder/defineTool.d.ts +180 -0
  203. package/dist/core/builder/defineTool.d.ts.map +1 -0
  204. package/dist/core/builder/defineTool.js +164 -0
  205. package/dist/core/builder/defineTool.js.map +1 -0
  206. package/dist/core/builder/index.d.ts +13 -0
  207. package/dist/core/builder/index.d.ts.map +1 -0
  208. package/dist/core/builder/index.js +13 -0
  209. package/dist/core/builder/index.js.map +1 -0
  210. package/dist/core/createGroup.d.ts +140 -0
  211. package/dist/core/createGroup.d.ts.map +1 -0
  212. package/dist/core/createGroup.js +144 -0
  213. package/dist/core/createGroup.js.map +1 -0
  214. package/dist/core/execution/ConcurrencyGuard.d.ts +103 -0
  215. package/dist/core/execution/ConcurrencyGuard.d.ts.map +1 -0
  216. package/dist/core/execution/ConcurrencyGuard.js +147 -0
  217. package/dist/core/execution/ConcurrencyGuard.js.map +1 -0
  218. package/dist/core/execution/EgressGuard.d.ts +72 -0
  219. package/dist/core/execution/EgressGuard.d.ts.map +1 -0
  220. package/dist/core/execution/EgressGuard.js +163 -0
  221. package/dist/core/execution/EgressGuard.js.map +1 -0
  222. package/dist/core/execution/ExecutionPipeline.d.ts +67 -0
  223. package/dist/core/execution/ExecutionPipeline.d.ts.map +1 -0
  224. package/dist/core/execution/ExecutionPipeline.js +176 -0
  225. package/dist/core/execution/ExecutionPipeline.js.map +1 -0
  226. package/dist/core/execution/MiddlewareCompiler.d.ts +35 -0
  227. package/dist/core/execution/MiddlewareCompiler.d.ts.map +1 -0
  228. package/dist/core/execution/MiddlewareCompiler.js +111 -0
  229. package/dist/core/execution/MiddlewareCompiler.js.map +1 -0
  230. package/dist/core/execution/MutationSerializer.d.ts +78 -0
  231. package/dist/core/execution/MutationSerializer.d.ts.map +1 -0
  232. package/dist/core/execution/MutationSerializer.js +106 -0
  233. package/dist/core/execution/MutationSerializer.js.map +1 -0
  234. package/dist/core/execution/PipelineHooks.d.ts +46 -0
  235. package/dist/core/execution/PipelineHooks.d.ts.map +1 -0
  236. package/dist/core/execution/PipelineHooks.js +66 -0
  237. package/dist/core/execution/PipelineHooks.js.map +1 -0
  238. package/dist/core/execution/ProgressHelper.d.ts +67 -0
  239. package/dist/core/execution/ProgressHelper.d.ts.map +1 -0
  240. package/dist/core/execution/ProgressHelper.js +59 -0
  241. package/dist/core/execution/ProgressHelper.js.map +1 -0
  242. package/dist/core/execution/ValidationErrorFormatter.d.ts +34 -0
  243. package/dist/core/execution/ValidationErrorFormatter.d.ts.map +1 -0
  244. package/dist/core/execution/ValidationErrorFormatter.js +193 -0
  245. package/dist/core/execution/ValidationErrorFormatter.js.map +1 -0
  246. package/dist/core/execution/index.d.ts +9 -0
  247. package/dist/core/execution/index.d.ts.map +1 -0
  248. package/dist/core/execution/index.js +9 -0
  249. package/dist/core/execution/index.js.map +1 -0
  250. package/dist/core/index.d.ts +34 -0
  251. package/dist/core/index.d.ts.map +1 -0
  252. package/dist/core/index.js +29 -0
  253. package/dist/core/index.js.map +1 -0
  254. package/dist/core/initVurb.d.ts +295 -0
  255. package/dist/core/initVurb.d.ts.map +1 -0
  256. package/dist/core/initVurb.js +171 -0
  257. package/dist/core/initVurb.js.map +1 -0
  258. package/dist/core/middleware/ContextDerivation.d.ts +124 -0
  259. package/dist/core/middleware/ContextDerivation.d.ts.map +1 -0
  260. package/dist/core/middleware/ContextDerivation.js +117 -0
  261. package/dist/core/middleware/ContextDerivation.js.map +1 -0
  262. package/dist/core/middleware/index.d.ts +4 -0
  263. package/dist/core/middleware/index.d.ts.map +1 -0
  264. package/dist/core/middleware/index.js +3 -0
  265. package/dist/core/middleware/index.js.map +1 -0
  266. package/dist/core/registry/ToolFilterEngine.d.ts +27 -0
  267. package/dist/core/registry/ToolFilterEngine.d.ts.map +1 -0
  268. package/dist/core/registry/ToolFilterEngine.js +45 -0
  269. package/dist/core/registry/ToolFilterEngine.js.map +1 -0
  270. package/dist/core/registry/ToolRegistry.d.ts +259 -0
  271. package/dist/core/registry/ToolRegistry.d.ts.map +1 -0
  272. package/dist/core/registry/ToolRegistry.js +343 -0
  273. package/dist/core/registry/ToolRegistry.js.map +1 -0
  274. package/dist/core/registry/index.d.ts +4 -0
  275. package/dist/core/registry/index.d.ts.map +1 -0
  276. package/dist/core/registry/index.js +3 -0
  277. package/dist/core/registry/index.js.map +1 -0
  278. package/dist/core/response.d.ts +289 -0
  279. package/dist/core/response.d.ts.map +1 -0
  280. package/dist/core/response.js +286 -0
  281. package/dist/core/response.js.map +1 -0
  282. package/dist/core/result.d.ts +93 -0
  283. package/dist/core/result.d.ts.map +1 -0
  284. package/dist/core/result.js +66 -0
  285. package/dist/core/result.js.map +1 -0
  286. package/dist/core/schema/AnnotationAggregator.d.ts +11 -0
  287. package/dist/core/schema/AnnotationAggregator.d.ts.map +1 -0
  288. package/dist/core/schema/AnnotationAggregator.js +40 -0
  289. package/dist/core/schema/AnnotationAggregator.js.map +1 -0
  290. package/dist/core/schema/DescriptionGenerator.d.ts +12 -0
  291. package/dist/core/schema/DescriptionGenerator.d.ts.map +1 -0
  292. package/dist/core/schema/DescriptionGenerator.js +81 -0
  293. package/dist/core/schema/DescriptionGenerator.js.map +1 -0
  294. package/dist/core/schema/SchemaGenerator.d.ts +15 -0
  295. package/dist/core/schema/SchemaGenerator.d.ts.map +1 -0
  296. package/dist/core/schema/SchemaGenerator.js +192 -0
  297. package/dist/core/schema/SchemaGenerator.js.map +1 -0
  298. package/dist/core/schema/SchemaUtils.d.ts +26 -0
  299. package/dist/core/schema/SchemaUtils.d.ts.map +1 -0
  300. package/dist/core/schema/SchemaUtils.js +85 -0
  301. package/dist/core/schema/SchemaUtils.js.map +1 -0
  302. package/dist/core/schema/ToonDescriptionGenerator.d.ts +3 -0
  303. package/dist/core/schema/ToonDescriptionGenerator.d.ts.map +1 -0
  304. package/dist/core/schema/ToonDescriptionGenerator.js +65 -0
  305. package/dist/core/schema/ToonDescriptionGenerator.js.map +1 -0
  306. package/dist/core/schema/index.d.ts +7 -0
  307. package/dist/core/schema/index.d.ts.map +1 -0
  308. package/dist/core/schema/index.js +7 -0
  309. package/dist/core/schema/index.js.map +1 -0
  310. package/dist/core/serialization/JsonSerializer.d.ts +71 -0
  311. package/dist/core/serialization/JsonSerializer.d.ts.map +1 -0
  312. package/dist/core/serialization/JsonSerializer.js +192 -0
  313. package/dist/core/serialization/JsonSerializer.js.map +1 -0
  314. package/dist/core/serialization/index.d.ts +7 -0
  315. package/dist/core/serialization/index.d.ts.map +1 -0
  316. package/dist/core/serialization/index.js +7 -0
  317. package/dist/core/serialization/index.js.map +1 -0
  318. package/dist/core/types.d.ts +303 -0
  319. package/dist/core/types.d.ts.map +1 -0
  320. package/dist/core/types.js +17 -0
  321. package/dist/core/types.js.map +1 -0
  322. package/dist/domain/Annotations.d.ts +42 -0
  323. package/dist/domain/Annotations.d.ts.map +1 -0
  324. package/dist/domain/Annotations.js +16 -0
  325. package/dist/domain/Annotations.js.map +1 -0
  326. package/dist/domain/BaseModel.d.ts +50 -0
  327. package/dist/domain/BaseModel.d.ts.map +1 -0
  328. package/dist/domain/BaseModel.js +41 -0
  329. package/dist/domain/BaseModel.js.map +1 -0
  330. package/dist/domain/Group.d.ts +99 -0
  331. package/dist/domain/Group.d.ts.map +1 -0
  332. package/dist/domain/Group.js +172 -0
  333. package/dist/domain/Group.js.map +1 -0
  334. package/dist/domain/GroupItem.d.ts +46 -0
  335. package/dist/domain/GroupItem.d.ts.map +1 -0
  336. package/dist/domain/GroupItem.js +58 -0
  337. package/dist/domain/GroupItem.js.map +1 -0
  338. package/dist/domain/Icon.d.ts +41 -0
  339. package/dist/domain/Icon.d.ts.map +1 -0
  340. package/dist/domain/Icon.js +15 -0
  341. package/dist/domain/Icon.js.map +1 -0
  342. package/dist/domain/Prompt.d.ts +49 -0
  343. package/dist/domain/Prompt.d.ts.map +1 -0
  344. package/dist/domain/Prompt.js +59 -0
  345. package/dist/domain/Prompt.js.map +1 -0
  346. package/dist/domain/PromptArgument.d.ts +23 -0
  347. package/dist/domain/PromptArgument.d.ts.map +1 -0
  348. package/dist/domain/PromptArgument.js +27 -0
  349. package/dist/domain/PromptArgument.js.map +1 -0
  350. package/dist/domain/Resource.d.ts +37 -0
  351. package/dist/domain/Resource.d.ts.map +1 -0
  352. package/dist/domain/Resource.js +39 -0
  353. package/dist/domain/Resource.js.map +1 -0
  354. package/dist/domain/Role.d.ts +23 -0
  355. package/dist/domain/Role.d.ts.map +1 -0
  356. package/dist/domain/Role.js +24 -0
  357. package/dist/domain/Role.js.map +1 -0
  358. package/dist/domain/Tool.d.ts +39 -0
  359. package/dist/domain/Tool.d.ts.map +1 -0
  360. package/dist/domain/Tool.js +41 -0
  361. package/dist/domain/Tool.js.map +1 -0
  362. package/dist/domain/ToolAnnotations.d.ts +48 -0
  363. package/dist/domain/ToolAnnotations.d.ts.map +1 -0
  364. package/dist/domain/ToolAnnotations.js +15 -0
  365. package/dist/domain/ToolAnnotations.js.map +1 -0
  366. package/dist/domain/index.d.ts +16 -0
  367. package/dist/domain/index.d.ts.map +1 -0
  368. package/dist/domain/index.js +13 -0
  369. package/dist/domain/index.js.map +1 -0
  370. package/dist/domain/utils.d.ts +6 -0
  371. package/dist/domain/utils.d.ts.map +1 -0
  372. package/dist/domain/utils.js +12 -0
  373. package/dist/domain/utils.js.map +1 -0
  374. package/dist/edge-stub.d.ts +73 -0
  375. package/dist/edge-stub.d.ts.map +1 -0
  376. package/dist/edge-stub.js +83 -0
  377. package/dist/edge-stub.js.map +1 -0
  378. package/dist/exposition/ExpositionCompiler.d.ts +66 -0
  379. package/dist/exposition/ExpositionCompiler.d.ts.map +1 -0
  380. package/dist/exposition/ExpositionCompiler.js +279 -0
  381. package/dist/exposition/ExpositionCompiler.js.map +1 -0
  382. package/dist/exposition/index.d.ts +4 -0
  383. package/dist/exposition/index.d.ts.map +1 -0
  384. package/dist/exposition/index.js +2 -0
  385. package/dist/exposition/index.js.map +1 -0
  386. package/dist/exposition/types.d.ts +58 -0
  387. package/dist/exposition/types.d.ts.map +1 -0
  388. package/dist/exposition/types.js +11 -0
  389. package/dist/exposition/types.js.map +1 -0
  390. package/dist/fsm/StateMachineGate.d.ts +294 -0
  391. package/dist/fsm/StateMachineGate.d.ts.map +1 -0
  392. package/dist/fsm/StateMachineGate.js +400 -0
  393. package/dist/fsm/StateMachineGate.js.map +1 -0
  394. package/dist/index.d.ts +148 -0
  395. package/dist/index.d.ts.map +1 -0
  396. package/dist/index.js +112 -0
  397. package/dist/index.js.map +1 -0
  398. package/dist/introspection/BehaviorDigest.d.ts +112 -0
  399. package/dist/introspection/BehaviorDigest.d.ts.map +1 -0
  400. package/dist/introspection/BehaviorDigest.js +149 -0
  401. package/dist/introspection/BehaviorDigest.js.map +1 -0
  402. package/dist/introspection/CapabilityLockfile.d.ts +261 -0
  403. package/dist/introspection/CapabilityLockfile.d.ts.map +1 -0
  404. package/dist/introspection/CapabilityLockfile.js +395 -0
  405. package/dist/introspection/CapabilityLockfile.js.map +1 -0
  406. package/dist/introspection/ContractAwareSelfHealing.d.ts +90 -0
  407. package/dist/introspection/ContractAwareSelfHealing.d.ts.map +1 -0
  408. package/dist/introspection/ContractAwareSelfHealing.js +132 -0
  409. package/dist/introspection/ContractAwareSelfHealing.js.map +1 -0
  410. package/dist/introspection/ContractDiff.d.ts +91 -0
  411. package/dist/introspection/ContractDiff.d.ts.map +1 -0
  412. package/dist/introspection/ContractDiff.js +466 -0
  413. package/dist/introspection/ContractDiff.js.map +1 -0
  414. package/dist/introspection/CryptoAttestation.d.ts +143 -0
  415. package/dist/introspection/CryptoAttestation.d.ts.map +1 -0
  416. package/dist/introspection/CryptoAttestation.js +192 -0
  417. package/dist/introspection/CryptoAttestation.js.map +1 -0
  418. package/dist/introspection/EntitlementScanner.d.ts +177 -0
  419. package/dist/introspection/EntitlementScanner.d.ts.map +1 -0
  420. package/dist/introspection/EntitlementScanner.js +459 -0
  421. package/dist/introspection/EntitlementScanner.js.map +1 -0
  422. package/dist/introspection/GovernanceObserver.d.ts +88 -0
  423. package/dist/introspection/GovernanceObserver.d.ts.map +1 -0
  424. package/dist/introspection/GovernanceObserver.js +136 -0
  425. package/dist/introspection/GovernanceObserver.js.map +1 -0
  426. package/dist/introspection/IntrospectionResource.d.ts +20 -0
  427. package/dist/introspection/IntrospectionResource.d.ts.map +1 -0
  428. package/dist/introspection/IntrospectionResource.js +112 -0
  429. package/dist/introspection/IntrospectionResource.js.map +1 -0
  430. package/dist/introspection/ManifestCompiler.d.ts +33 -0
  431. package/dist/introspection/ManifestCompiler.d.ts.map +1 -0
  432. package/dist/introspection/ManifestCompiler.js +88 -0
  433. package/dist/introspection/ManifestCompiler.js.map +1 -0
  434. package/dist/introspection/SemanticProbe.d.ts +207 -0
  435. package/dist/introspection/SemanticProbe.d.ts.map +1 -0
  436. package/dist/introspection/SemanticProbe.js +274 -0
  437. package/dist/introspection/SemanticProbe.js.map +1 -0
  438. package/dist/introspection/TokenEconomics.d.ts +210 -0
  439. package/dist/introspection/TokenEconomics.d.ts.map +1 -0
  440. package/dist/introspection/TokenEconomics.js +292 -0
  441. package/dist/introspection/TokenEconomics.js.map +1 -0
  442. package/dist/introspection/ToolContract.d.ts +161 -0
  443. package/dist/introspection/ToolContract.d.ts.map +1 -0
  444. package/dist/introspection/ToolContract.js +218 -0
  445. package/dist/introspection/ToolContract.js.map +1 -0
  446. package/dist/introspection/canonicalize.d.ts +35 -0
  447. package/dist/introspection/canonicalize.d.ts.map +1 -0
  448. package/dist/introspection/canonicalize.js +72 -0
  449. package/dist/introspection/canonicalize.js.map +1 -0
  450. package/dist/introspection/index.d.ts +26 -0
  451. package/dist/introspection/index.d.ts.map +1 -0
  452. package/dist/introspection/index.js +24 -0
  453. package/dist/introspection/index.js.map +1 -0
  454. package/dist/introspection/types.d.ts +120 -0
  455. package/dist/introspection/types.d.ts.map +1 -0
  456. package/dist/introspection/types.js +13 -0
  457. package/dist/introspection/types.js.map +1 -0
  458. package/dist/observability/DebugObserver.d.ts +185 -0
  459. package/dist/observability/DebugObserver.d.ts.map +1 -0
  460. package/dist/observability/DebugObserver.js +102 -0
  461. package/dist/observability/DebugObserver.js.map +1 -0
  462. package/dist/observability/TelemetryBus.d.ts +88 -0
  463. package/dist/observability/TelemetryBus.d.ts.map +1 -0
  464. package/dist/observability/TelemetryBus.js +463 -0
  465. package/dist/observability/TelemetryBus.js.map +1 -0
  466. package/dist/observability/TelemetryEvent.d.ts +177 -0
  467. package/dist/observability/TelemetryEvent.d.ts.map +1 -0
  468. package/dist/observability/TelemetryEvent.js +2 -0
  469. package/dist/observability/TelemetryEvent.js.map +1 -0
  470. package/dist/observability/Tracing.d.ts +155 -0
  471. package/dist/observability/Tracing.d.ts.map +1 -0
  472. package/dist/observability/Tracing.js +67 -0
  473. package/dist/observability/Tracing.js.map +1 -0
  474. package/dist/observability/index.d.ts +13 -0
  475. package/dist/observability/index.d.ts.map +1 -0
  476. package/dist/observability/index.js +12 -0
  477. package/dist/observability/index.js.map +1 -0
  478. package/dist/presenter/PostProcessor.d.ts +52 -0
  479. package/dist/presenter/PostProcessor.d.ts.map +1 -0
  480. package/dist/presenter/PostProcessor.js +148 -0
  481. package/dist/presenter/PostProcessor.js.map +1 -0
  482. package/dist/presenter/Presenter.d.ts +575 -0
  483. package/dist/presenter/Presenter.d.ts.map +1 -0
  484. package/dist/presenter/Presenter.js +768 -0
  485. package/dist/presenter/Presenter.js.map +1 -0
  486. package/dist/presenter/PresenterValidationError.d.ts +42 -0
  487. package/dist/presenter/PresenterValidationError.d.ts.map +1 -0
  488. package/dist/presenter/PresenterValidationError.js +55 -0
  489. package/dist/presenter/PresenterValidationError.js.map +1 -0
  490. package/dist/presenter/RedactEngine.d.ts +110 -0
  491. package/dist/presenter/RedactEngine.d.ts.map +1 -0
  492. package/dist/presenter/RedactEngine.js +128 -0
  493. package/dist/presenter/RedactEngine.js.map +1 -0
  494. package/dist/presenter/ResponseBuilder.d.ts +262 -0
  495. package/dist/presenter/ResponseBuilder.d.ts.map +1 -0
  496. package/dist/presenter/ResponseBuilder.js +374 -0
  497. package/dist/presenter/ResponseBuilder.js.map +1 -0
  498. package/dist/presenter/SelectUtils.d.ts +78 -0
  499. package/dist/presenter/SelectUtils.d.ts.map +1 -0
  500. package/dist/presenter/SelectUtils.js +141 -0
  501. package/dist/presenter/SelectUtils.js.map +1 -0
  502. package/dist/presenter/ZodDescriptionExtractor.d.ts +54 -0
  503. package/dist/presenter/ZodDescriptionExtractor.d.ts.map +1 -0
  504. package/dist/presenter/ZodDescriptionExtractor.js +131 -0
  505. package/dist/presenter/ZodDescriptionExtractor.js.map +1 -0
  506. package/dist/presenter/definePresenter.d.ts +193 -0
  507. package/dist/presenter/definePresenter.d.ts.map +1 -0
  508. package/dist/presenter/definePresenter.js +99 -0
  509. package/dist/presenter/definePresenter.js.map +1 -0
  510. package/dist/presenter/index.d.ts +21 -0
  511. package/dist/presenter/index.d.ts.map +1 -0
  512. package/dist/presenter/index.js +28 -0
  513. package/dist/presenter/index.js.map +1 -0
  514. package/dist/presenter/suggest.d.ts +39 -0
  515. package/dist/presenter/suggest.d.ts.map +1 -0
  516. package/dist/presenter/suggest.js +41 -0
  517. package/dist/presenter/suggest.js.map +1 -0
  518. package/dist/presenter/typeHelpers.d.ts +147 -0
  519. package/dist/presenter/typeHelpers.d.ts.map +1 -0
  520. package/dist/presenter/typeHelpers.js +152 -0
  521. package/dist/presenter/typeHelpers.js.map +1 -0
  522. package/dist/presenter/ui.d.ts +205 -0
  523. package/dist/presenter/ui.d.ts.map +1 -0
  524. package/dist/presenter/ui.js +222 -0
  525. package/dist/presenter/ui.js.map +1 -0
  526. package/dist/prompt/CursorCodec.d.ts +43 -0
  527. package/dist/prompt/CursorCodec.d.ts.map +1 -0
  528. package/dist/prompt/CursorCodec.js +171 -0
  529. package/dist/prompt/CursorCodec.js.map +1 -0
  530. package/dist/prompt/FluentPromptBuilder.d.ts +155 -0
  531. package/dist/prompt/FluentPromptBuilder.d.ts.map +1 -0
  532. package/dist/prompt/FluentPromptBuilder.js +195 -0
  533. package/dist/prompt/FluentPromptBuilder.js.map +1 -0
  534. package/dist/prompt/HydrationSandbox.d.ts +55 -0
  535. package/dist/prompt/HydrationSandbox.d.ts.map +1 -0
  536. package/dist/prompt/HydrationSandbox.js +122 -0
  537. package/dist/prompt/HydrationSandbox.js.map +1 -0
  538. package/dist/prompt/PromptExecutionPipeline.d.ts +61 -0
  539. package/dist/prompt/PromptExecutionPipeline.d.ts.map +1 -0
  540. package/dist/prompt/PromptExecutionPipeline.js +177 -0
  541. package/dist/prompt/PromptExecutionPipeline.js.map +1 -0
  542. package/dist/prompt/PromptMessage.d.ts +133 -0
  543. package/dist/prompt/PromptMessage.d.ts.map +1 -0
  544. package/dist/prompt/PromptMessage.js +182 -0
  545. package/dist/prompt/PromptMessage.js.map +1 -0
  546. package/dist/prompt/PromptRegistry.d.ts +236 -0
  547. package/dist/prompt/PromptRegistry.d.ts.map +1 -0
  548. package/dist/prompt/PromptRegistry.js +399 -0
  549. package/dist/prompt/PromptRegistry.js.map +1 -0
  550. package/dist/prompt/definePrompt.d.ts +111 -0
  551. package/dist/prompt/definePrompt.d.ts.map +1 -0
  552. package/dist/prompt/definePrompt.js +130 -0
  553. package/dist/prompt/definePrompt.js.map +1 -0
  554. package/dist/prompt/index.d.ts +12 -0
  555. package/dist/prompt/index.d.ts.map +1 -0
  556. package/dist/prompt/index.js +13 -0
  557. package/dist/prompt/index.js.map +1 -0
  558. package/dist/prompt/types.d.ts +425 -0
  559. package/dist/prompt/types.d.ts.map +1 -0
  560. package/dist/prompt/types.js +19 -0
  561. package/dist/prompt/types.js.map +1 -0
  562. package/dist/sandbox/SandboxEngine.d.ts +225 -0
  563. package/dist/sandbox/SandboxEngine.d.ts.map +1 -0
  564. package/dist/sandbox/SandboxEngine.js +437 -0
  565. package/dist/sandbox/SandboxEngine.js.map +1 -0
  566. package/dist/sandbox/SandboxGuard.d.ts +47 -0
  567. package/dist/sandbox/SandboxGuard.d.ts.map +1 -0
  568. package/dist/sandbox/SandboxGuard.js +127 -0
  569. package/dist/sandbox/SandboxGuard.js.map +1 -0
  570. package/dist/sandbox/index.d.ts +23 -0
  571. package/dist/sandbox/index.d.ts.map +1 -0
  572. package/dist/sandbox/index.js +26 -0
  573. package/dist/sandbox/index.js.map +1 -0
  574. package/dist/server/DevServer.d.ts +120 -0
  575. package/dist/server/DevServer.d.ts.map +1 -0
  576. package/dist/server/DevServer.js +252 -0
  577. package/dist/server/DevServer.js.map +1 -0
  578. package/dist/server/ServerAttachment.d.ts +354 -0
  579. package/dist/server/ServerAttachment.d.ts.map +1 -0
  580. package/dist/server/ServerAttachment.js +709 -0
  581. package/dist/server/ServerAttachment.js.map +1 -0
  582. package/dist/server/ServerResolver.d.ts +24 -0
  583. package/dist/server/ServerResolver.d.ts.map +1 -0
  584. package/dist/server/ServerResolver.js +50 -0
  585. package/dist/server/ServerResolver.js.map +1 -0
  586. package/dist/server/autoDiscover.d.ts +75 -0
  587. package/dist/server/autoDiscover.d.ts.map +1 -0
  588. package/dist/server/autoDiscover.js +164 -0
  589. package/dist/server/autoDiscover.js.map +1 -0
  590. package/dist/server/index.d.ts +12 -0
  591. package/dist/server/index.d.ts.map +1 -0
  592. package/dist/server/index.js +11 -0
  593. package/dist/server/index.js.map +1 -0
  594. package/dist/server/startServer.d.ts +81 -0
  595. package/dist/server/startServer.d.ts.map +1 -0
  596. package/dist/server/startServer.js +143 -0
  597. package/dist/server/startServer.js.map +1 -0
  598. package/dist/state-sync/CausalEngine.d.ts +28 -0
  599. package/dist/state-sync/CausalEngine.d.ts.map +1 -0
  600. package/dist/state-sync/CausalEngine.js +17 -0
  601. package/dist/state-sync/CausalEngine.js.map +1 -0
  602. package/dist/state-sync/DescriptionDecorator.d.ts +31 -0
  603. package/dist/state-sync/DescriptionDecorator.d.ts.map +1 -0
  604. package/dist/state-sync/DescriptionDecorator.js +38 -0
  605. package/dist/state-sync/DescriptionDecorator.js.map +1 -0
  606. package/dist/state-sync/GlobMatcher.d.ts +29 -0
  607. package/dist/state-sync/GlobMatcher.d.ts.map +1 -0
  608. package/dist/state-sync/GlobMatcher.js +79 -0
  609. package/dist/state-sync/GlobMatcher.js.map +1 -0
  610. package/dist/state-sync/PolicyEngine.d.ts +75 -0
  611. package/dist/state-sync/PolicyEngine.d.ts.map +1 -0
  612. package/dist/state-sync/PolicyEngine.js +107 -0
  613. package/dist/state-sync/PolicyEngine.js.map +1 -0
  614. package/dist/state-sync/PolicyValidator.d.ts +67 -0
  615. package/dist/state-sync/PolicyValidator.d.ts.map +1 -0
  616. package/dist/state-sync/PolicyValidator.js +122 -0
  617. package/dist/state-sync/PolicyValidator.js.map +1 -0
  618. package/dist/state-sync/ResponseDecorator.d.ts +33 -0
  619. package/dist/state-sync/ResponseDecorator.d.ts.map +1 -0
  620. package/dist/state-sync/ResponseDecorator.js +20 -0
  621. package/dist/state-sync/ResponseDecorator.js.map +1 -0
  622. package/dist/state-sync/StateSyncBuilder.d.ts +77 -0
  623. package/dist/state-sync/StateSyncBuilder.d.ts.map +1 -0
  624. package/dist/state-sync/StateSyncBuilder.js +129 -0
  625. package/dist/state-sync/StateSyncBuilder.js.map +1 -0
  626. package/dist/state-sync/StateSyncLayer.d.ts +107 -0
  627. package/dist/state-sync/StateSyncLayer.d.ts.map +1 -0
  628. package/dist/state-sync/StateSyncLayer.js +158 -0
  629. package/dist/state-sync/StateSyncLayer.js.map +1 -0
  630. package/dist/state-sync/index.d.ts +27 -0
  631. package/dist/state-sync/index.d.ts.map +1 -0
  632. package/dist/state-sync/index.js +27 -0
  633. package/dist/state-sync/index.js.map +1 -0
  634. package/dist/state-sync/types.d.ts +174 -0
  635. package/dist/state-sync/types.d.ts.map +1 -0
  636. package/dist/state-sync/types.js +17 -0
  637. package/dist/state-sync/types.js.map +1 -0
  638. package/dist/testing/MvaMetaSymbol.d.ts +45 -0
  639. package/dist/testing/MvaMetaSymbol.d.ts.map +1 -0
  640. package/dist/testing/MvaMetaSymbol.js +34 -0
  641. package/dist/testing/MvaMetaSymbol.js.map +1 -0
  642. package/package.json +153 -0
@@ -0,0 +1,50 @@
1
+ import { type Icon } from './Icon.js';
2
+ /**
3
+ * Base class for all MCP domain model entities.
4
+ *
5
+ * Provides common metadata properties shared by all MCP domain objects
6
+ * (tools, resources, prompts, groups). Every entity has a `name`,
7
+ * optional `title`, `description`, `meta`, and `icons`.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // BaseModel is abstract — use concrete subclasses:
12
+ * const tool = new Tool('read_file');
13
+ * tool.title = 'Read File';
14
+ * tool.description = 'Read a file from the filesystem';
15
+ * tool.meta = new Map([['version', '1.0']]);
16
+ * ```
17
+ *
18
+ * @see {@link Group} for tree nodes
19
+ * @see {@link GroupItem} for leaf nodes (Tool, Prompt, Resource)
20
+ */
21
+ export declare abstract class BaseModel {
22
+ /** Default separator used in fully qualified names */
23
+ static readonly DEFAULT_SEPARATOR: string;
24
+ /** Separator character for constructing fully qualified names */
25
+ readonly nameSeparator: string;
26
+ /** Unique identifier within the parent scope */
27
+ readonly name: string;
28
+ /** Human-readable display title */
29
+ title: string | undefined;
30
+ /** Detailed description of this entity's purpose */
31
+ description: string | undefined;
32
+ /** Arbitrary key-value metadata for extensibility */
33
+ meta: Map<string, unknown> | undefined;
34
+ /** Visual icons associated with this entity */
35
+ icons: Icon[] | undefined;
36
+ protected constructor(name: string, nameSeparator?: string);
37
+ /**
38
+ * Returns the fully qualified name including all ancestor paths.
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * const parent = new Group('api');
43
+ * const child = new Group('v2');
44
+ * parent.addChildGroup(child);
45
+ * child.getFullyQualifiedName(); // "api.v2"
46
+ * ```
47
+ */
48
+ abstract getFullyQualifiedName(): string;
49
+ }
50
+ //# sourceMappingURL=BaseModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseModel.d.ts","sourceRoot":"","sources":["../../src/domain/BaseModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC;;;;;;;;;;;;;;;;;;GAkBG;AACH,8BAAsB,SAAS;IAC3B,sDAAsD;IACtD,gBAAuB,iBAAiB,EAAE,MAAM,CAAO;IAEvD,iEAAiE;IACjE,SAAgB,aAAa,EAAE,MAAM,CAAC;IACtC,gDAAgD;IAChD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,mCAAmC;IAC5B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,oDAAoD;IAC7C,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,qDAAqD;IAC9C,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC9C,+CAA+C;IACxC,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;IAEjC,SAAS,aAAa,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAK1D;;;;;;;;;;OAUG;aACa,qBAAqB,IAAI,MAAM;CAClD"}
@@ -0,0 +1,41 @@
1
+ import {} from './Icon.js';
2
+ /**
3
+ * Base class for all MCP domain model entities.
4
+ *
5
+ * Provides common metadata properties shared by all MCP domain objects
6
+ * (tools, resources, prompts, groups). Every entity has a `name`,
7
+ * optional `title`, `description`, `meta`, and `icons`.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // BaseModel is abstract — use concrete subclasses:
12
+ * const tool = new Tool('read_file');
13
+ * tool.title = 'Read File';
14
+ * tool.description = 'Read a file from the filesystem';
15
+ * tool.meta = new Map([['version', '1.0']]);
16
+ * ```
17
+ *
18
+ * @see {@link Group} for tree nodes
19
+ * @see {@link GroupItem} for leaf nodes (Tool, Prompt, Resource)
20
+ */
21
+ export class BaseModel {
22
+ /** Default separator used in fully qualified names */
23
+ static DEFAULT_SEPARATOR = ".";
24
+ /** Separator character for constructing fully qualified names */
25
+ nameSeparator;
26
+ /** Unique identifier within the parent scope */
27
+ name;
28
+ /** Human-readable display title */
29
+ title;
30
+ /** Detailed description of this entity's purpose */
31
+ description;
32
+ /** Arbitrary key-value metadata for extensibility */
33
+ meta;
34
+ /** Visual icons associated with this entity */
35
+ icons;
36
+ constructor(name, nameSeparator) {
37
+ this.name = name;
38
+ this.nameSeparator = nameSeparator ?? BaseModel.DEFAULT_SEPARATOR;
39
+ }
40
+ }
41
+ //# sourceMappingURL=BaseModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseModel.js","sourceRoot":"","sources":["../../src/domain/BaseModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,WAAW,CAAC;AAEtC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAgB,SAAS;IAC3B,sDAAsD;IAC/C,MAAM,CAAU,iBAAiB,GAAW,GAAG,CAAC;IAEvD,iEAAiE;IACjD,aAAa,CAAS;IACtC,gDAAgD;IAChC,IAAI,CAAS;IAC7B,mCAAmC;IAC5B,KAAK,CAAqB;IACjC,oDAAoD;IAC7C,WAAW,CAAqB;IACvC,qDAAqD;IAC9C,IAAI,CAAmC;IAC9C,+CAA+C;IACxC,KAAK,CAAqB;IAEjC,YAAsB,IAAY,EAAE,aAAsB;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,SAAS,CAAC,iBAAiB,CAAC;IACtE,CAAC"}
@@ -0,0 +1,99 @@
1
+ import { BaseModel } from './BaseModel.js';
2
+ import { type Tool } from './Tool.js';
3
+ import { type Prompt } from './Prompt.js';
4
+ import { type Resource } from './Resource.js';
5
+ /**
6
+ * Represents a hierarchical group (tree node) in the MCP domain model.
7
+ *
8
+ * Groups can contain child groups, tools, prompts, and resources.
9
+ * Supports fully qualified names via recursive parent traversal.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * // Build a hierarchy
14
+ * const api = new Group('api');
15
+ * const v2 = new Group('v2');
16
+ * api.addChildGroup(v2);
17
+ *
18
+ * const readFile = new Tool('read_file');
19
+ * v2.addChildTool(readFile);
20
+ *
21
+ * v2.getFullyQualifiedName(); // "api.v2"
22
+ * api.isRoot(); // true
23
+ * v2.getRoot(); // api
24
+ * ```
25
+ *
26
+ * @see {@link GroupItem} for leaf nodes (Tool, Prompt, Resource)
27
+ * @see {@link BaseModel} for shared properties
28
+ */
29
+ export declare class Group extends BaseModel {
30
+ /** Parent group (null if this is a root node) */
31
+ parent: Group | null;
32
+ /** Direct child groups in this container */
33
+ readonly childGroups: Group[];
34
+ /** Tools contained in this group */
35
+ readonly childTools: Tool[];
36
+ /** Prompts contained in this group */
37
+ readonly childPrompts: Prompt[];
38
+ /** Resources contained in this group */
39
+ readonly childResources: Resource[];
40
+ constructor(name: string, nameSeparator?: string);
41
+ private addChild;
42
+ private removeChild;
43
+ /**
44
+ * Traverse to the root of the tree.
45
+ *
46
+ * @returns The topmost ancestor group
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * const root = new Group('api');
51
+ * const child = new Group('users');
52
+ * root.addChildGroup(child);
53
+ * child.getRoot(); // root
54
+ * ```
55
+ */
56
+ getRoot(): Group;
57
+ /** Returns `true` if this group has no parent (is a root node). */
58
+ isRoot(): boolean;
59
+ /**
60
+ * Add a child group to this container.
61
+ *
62
+ * @param childGroup - The group to nest under this one
63
+ * @returns `false` if already a child, `true` if added
64
+ */
65
+ addChildGroup(childGroup: Group): boolean;
66
+ /**
67
+ * Remove a child group from this container.
68
+ *
69
+ * @param childGroup - The group to remove
70
+ * @returns `false` if not found, `true` if removed
71
+ */
72
+ removeChildGroup(childGroup: Group): boolean;
73
+ /** Add a tool to this group. Returns `false` if already present. */
74
+ addChildTool(childTool: Tool): boolean;
75
+ /** Remove a tool from this group. Returns `false` if not found. */
76
+ removeChildTool(childTool: Tool): boolean;
77
+ /** Add a prompt to this group. Returns `false` if already present. */
78
+ addChildPrompt(childPrompt: Prompt): boolean;
79
+ /** Remove a prompt from this group. Returns `false` if not found. */
80
+ removeChildPrompt(childPrompt: Prompt): boolean;
81
+ /** Add a resource to this group. Returns `false` if already present. */
82
+ addChildResource(childResource: Resource): boolean;
83
+ /** Remove a resource from this group. Returns `false` if not found. */
84
+ removeChildResource(childResource: Resource): boolean;
85
+ protected getFullyQualifiedNameRecursive(tg: Group): string;
86
+ /**
87
+ * Returns the dot-separated fully qualified name.
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * const root = new Group('api');
92
+ * const v2 = new Group('v2');
93
+ * root.addChildGroup(v2);
94
+ * v2.getFullyQualifiedName(); // "api.v2"
95
+ * ```
96
+ */
97
+ getFullyQualifiedName(): string;
98
+ }
99
+ //# sourceMappingURL=Group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../src/domain/Group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,KAAM,SAAQ,SAAS;IAChC,iDAAiD;IAC1C,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACnC,4CAA4C;IAC5C,SAAgB,WAAW,EAAE,KAAK,EAAE,CAAC;IACrC,oCAAoC;IACpC,SAAgB,UAAU,EAAE,IAAI,EAAE,CAAC;IACnC,sCAAsC;IACtC,SAAgB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvC,wCAAwC;IACxC,SAAgB,cAAc,EAAE,QAAQ,EAAE,CAAC;gBAExB,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAUvD,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,WAAW;IAQnB;;;;;;;;;;;;OAYG;IACI,OAAO,IAAI,KAAK;IAIvB,mEAAmE;IAC5D,MAAM,IAAI,OAAO;IAMxB;;;;;OAKG;IACI,aAAa,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO;IAyBhD;;;;;OAKG;IACI,gBAAgB,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO;IAQnD,oEAAoE;IAC7D,YAAY,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO;IAI7C,mEAAmE;IAC5D,eAAe,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO;IAIhD,sEAAsE;IAC/D,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAInD,qEAAqE;IAC9D,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAItD,wEAAwE;IACjE,gBAAgB,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO;IAIzD,uEAAuE;IAChE,mBAAmB,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO;IAM5D,SAAS,CAAC,8BAA8B,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM;IAS3D;;;;;;;;;;OAUG;IACI,qBAAqB,IAAI,MAAM;CAGzC"}
@@ -0,0 +1,172 @@
1
+ import { BaseModel } from './BaseModel.js';
2
+ import {} from './GroupItem.js';
3
+ import {} from './Tool.js';
4
+ import {} from './Prompt.js';
5
+ import {} from './Resource.js';
6
+ import { removeFromArray } from './utils.js';
7
+ /**
8
+ * Represents a hierarchical group (tree node) in the MCP domain model.
9
+ *
10
+ * Groups can contain child groups, tools, prompts, and resources.
11
+ * Supports fully qualified names via recursive parent traversal.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // Build a hierarchy
16
+ * const api = new Group('api');
17
+ * const v2 = new Group('v2');
18
+ * api.addChildGroup(v2);
19
+ *
20
+ * const readFile = new Tool('read_file');
21
+ * v2.addChildTool(readFile);
22
+ *
23
+ * v2.getFullyQualifiedName(); // "api.v2"
24
+ * api.isRoot(); // true
25
+ * v2.getRoot(); // api
26
+ * ```
27
+ *
28
+ * @see {@link GroupItem} for leaf nodes (Tool, Prompt, Resource)
29
+ * @see {@link BaseModel} for shared properties
30
+ */
31
+ export class Group extends BaseModel {
32
+ /** Parent group (null if this is a root node) */
33
+ parent = null;
34
+ /** Direct child groups in this container */
35
+ childGroups;
36
+ /** Tools contained in this group */
37
+ childTools;
38
+ /** Prompts contained in this group */
39
+ childPrompts;
40
+ /** Resources contained in this group */
41
+ childResources;
42
+ constructor(name, nameSeparator) {
43
+ super(name, nameSeparator !== undefined ? nameSeparator : BaseModel.DEFAULT_SEPARATOR);
44
+ this.childGroups = [];
45
+ this.childTools = [];
46
+ this.childPrompts = [];
47
+ this.childResources = [];
48
+ }
49
+ // ── Private helpers to eliminate add/remove repetition ──
50
+ addChild(list, child) {
51
+ if (list.includes(child))
52
+ return false;
53
+ list.push(child);
54
+ child.addParentGroup(this);
55
+ return true;
56
+ }
57
+ removeChild(list, child) {
58
+ if (!removeFromArray(list, child))
59
+ return false;
60
+ child.removeParentGroup(this);
61
+ return true;
62
+ }
63
+ // ── Tree navigation ──
64
+ /**
65
+ * Traverse to the root of the tree.
66
+ *
67
+ * @returns The topmost ancestor group
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const root = new Group('api');
72
+ * const child = new Group('users');
73
+ * root.addChildGroup(child);
74
+ * child.getRoot(); // root
75
+ * ```
76
+ */
77
+ getRoot() {
78
+ return this.parent === null ? this : this.parent.getRoot();
79
+ }
80
+ /** Returns `true` if this group has no parent (is a root node). */
81
+ isRoot() {
82
+ return this.parent === null;
83
+ }
84
+ // ── Child groups (special: sets parent, not parentGroup) ──
85
+ /**
86
+ * Add a child group to this container.
87
+ *
88
+ * @param childGroup - The group to nest under this one
89
+ * @returns `false` if already a child, `true` if added
90
+ */
91
+ addChildGroup(childGroup) {
92
+ if (this.childGroups.includes(childGroup))
93
+ return false;
94
+ // Bug #52: Cycle detection — walk the parent chain to prevent infinite recursion
95
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
96
+ let ancestor = this;
97
+ while (ancestor !== null) {
98
+ if (ancestor === childGroup) {
99
+ throw new Error(`[Vurb] Cycle detected: adding '${childGroup.name}' as a child of '${this.name}' would create a circular reference.`);
100
+ }
101
+ ancestor = ancestor.parent;
102
+ }
103
+ // Remove from previous parent to avoid ghost references (Bug #7 fix)
104
+ if (childGroup.parent !== null) {
105
+ childGroup.parent.removeChildGroup(childGroup);
106
+ }
107
+ this.childGroups.push(childGroup);
108
+ childGroup.parent = this;
109
+ return true;
110
+ }
111
+ /**
112
+ * Remove a child group from this container.
113
+ *
114
+ * @param childGroup - The group to remove
115
+ * @returns `false` if not found, `true` if removed
116
+ */
117
+ removeChildGroup(childGroup) {
118
+ if (!removeFromArray(this.childGroups, childGroup))
119
+ return false;
120
+ childGroup.parent = null;
121
+ return true;
122
+ }
123
+ // ── Child items (delegated to helpers) ──
124
+ /** Add a tool to this group. Returns `false` if already present. */
125
+ addChildTool(childTool) {
126
+ return this.addChild(this.childTools, childTool);
127
+ }
128
+ /** Remove a tool from this group. Returns `false` if not found. */
129
+ removeChildTool(childTool) {
130
+ return this.removeChild(this.childTools, childTool);
131
+ }
132
+ /** Add a prompt to this group. Returns `false` if already present. */
133
+ addChildPrompt(childPrompt) {
134
+ return this.addChild(this.childPrompts, childPrompt);
135
+ }
136
+ /** Remove a prompt from this group. Returns `false` if not found. */
137
+ removeChildPrompt(childPrompt) {
138
+ return this.removeChild(this.childPrompts, childPrompt);
139
+ }
140
+ /** Add a resource to this group. Returns `false` if already present. */
141
+ addChildResource(childResource) {
142
+ return this.addChild(this.childResources, childResource);
143
+ }
144
+ /** Remove a resource from this group. Returns `false` if not found. */
145
+ removeChildResource(childResource) {
146
+ return this.removeChild(this.childResources, childResource);
147
+ }
148
+ // ── FQN ──
149
+ getFullyQualifiedNameRecursive(tg) {
150
+ const parent = tg.parent;
151
+ if (parent !== null) {
152
+ const parentName = this.getFullyQualifiedNameRecursive(parent);
153
+ return parentName + this.nameSeparator + tg.name;
154
+ }
155
+ return tg.name;
156
+ }
157
+ /**
158
+ * Returns the dot-separated fully qualified name.
159
+ *
160
+ * @example
161
+ * ```typescript
162
+ * const root = new Group('api');
163
+ * const v2 = new Group('v2');
164
+ * root.addChildGroup(v2);
165
+ * v2.getFullyQualifiedName(); // "api.v2"
166
+ * ```
167
+ */
168
+ getFullyQualifiedName() {
169
+ return this.getFullyQualifiedNameRecursive(this);
170
+ }
171
+ }
172
+ //# sourceMappingURL=Group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Group.js","sourceRoot":"","sources":["../../src/domain/Group.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { BaseModel } from './BaseModel.js';
2
+ import type { Group } from './Group.js';
3
+ /**
4
+ * Base class for leaf entities that can belong to one or more Groups.
5
+ *
6
+ * {@link Tool}, {@link Prompt}, and {@link Resource} all extend this
7
+ * class to inherit group membership management. Supports many-to-many
8
+ * relationships with parent groups.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const tool = new Tool('read_file');
13
+ * const group = new Group('filesystem');
14
+ *
15
+ * group.addChildTool(tool);
16
+ * tool.parentGroups; // [group]
17
+ * ```
18
+ *
19
+ * @see {@link Group} for parent containers
20
+ * @see {@link Tool} for tool leaf nodes
21
+ * @see {@link Prompt} for prompt leaf nodes
22
+ * @see {@link Resource} for resource leaf nodes
23
+ */
24
+ export declare class GroupItem extends BaseModel {
25
+ /** Groups that contain this item (many-to-many relationship) */
26
+ readonly parentGroups: Group[];
27
+ protected constructor(name: string, nameSeparator?: string);
28
+ /**
29
+ * Add this item to a parent group.
30
+ *
31
+ * @param parentGroup - The group to join
32
+ * @returns `false` if already a member, `true` if added
33
+ * @internal Use {@link Group.addChildTool} / {@link Group.addChildPrompt} / {@link Group.addChildResource} instead.
34
+ */
35
+ addParentGroup(parentGroup: Group): boolean;
36
+ /**
37
+ * Remove this item from a parent group.
38
+ *
39
+ * @param parentGroup - The group to leave
40
+ * @returns `false` if not found, `true` if removed
41
+ */
42
+ removeParentGroup(parentGroup: Group): boolean;
43
+ /** Returns the simple name (leaf items have no hierarchy prefix) */
44
+ getFullyQualifiedName(): string;
45
+ }
46
+ //# sourceMappingURL=GroupItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupItem.d.ts","sourceRoot":"","sources":["../../src/domain/GroupItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,SAAU,SAAQ,SAAS;IACpC,gEAAgE;IAChE,SAAgB,YAAY,EAAE,KAAK,EAAE,CAAC;IAEtC,SAAS,aAAa,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAK1D;;;;;;OAMG;IACI,cAAc,CAAC,WAAW,EAAE,KAAK,GAAG,OAAO;IAMlD;;;;;OAKG;IACI,iBAAiB,CAAC,WAAW,EAAE,KAAK,GAAG,OAAO;IAIrD,oEAAoE;IAC7D,qBAAqB,IAAI,MAAM;CAGzC"}
@@ -0,0 +1,58 @@
1
+ import { BaseModel } from './BaseModel.js';
2
+ import { removeFromArray } from './utils.js';
3
+ /**
4
+ * Base class for leaf entities that can belong to one or more Groups.
5
+ *
6
+ * {@link Tool}, {@link Prompt}, and {@link Resource} all extend this
7
+ * class to inherit group membership management. Supports many-to-many
8
+ * relationships with parent groups.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const tool = new Tool('read_file');
13
+ * const group = new Group('filesystem');
14
+ *
15
+ * group.addChildTool(tool);
16
+ * tool.parentGroups; // [group]
17
+ * ```
18
+ *
19
+ * @see {@link Group} for parent containers
20
+ * @see {@link Tool} for tool leaf nodes
21
+ * @see {@link Prompt} for prompt leaf nodes
22
+ * @see {@link Resource} for resource leaf nodes
23
+ */
24
+ export class GroupItem extends BaseModel {
25
+ /** Groups that contain this item (many-to-many relationship) */
26
+ parentGroups;
27
+ constructor(name, nameSeparator) {
28
+ super(name, nameSeparator);
29
+ this.parentGroups = [];
30
+ }
31
+ /**
32
+ * Add this item to a parent group.
33
+ *
34
+ * @param parentGroup - The group to join
35
+ * @returns `false` if already a member, `true` if added
36
+ * @internal Use {@link Group.addChildTool} / {@link Group.addChildPrompt} / {@link Group.addChildResource} instead.
37
+ */
38
+ addParentGroup(parentGroup) {
39
+ if (this.parentGroups.includes(parentGroup))
40
+ return false;
41
+ this.parentGroups.push(parentGroup);
42
+ return true;
43
+ }
44
+ /**
45
+ * Remove this item from a parent group.
46
+ *
47
+ * @param parentGroup - The group to leave
48
+ * @returns `false` if not found, `true` if removed
49
+ */
50
+ removeParentGroup(parentGroup) {
51
+ return removeFromArray(this.parentGroups, parentGroup);
52
+ }
53
+ /** Returns the simple name (leaf items have no hierarchy prefix) */
54
+ getFullyQualifiedName() {
55
+ return this.name;
56
+ }
57
+ }
58
+ //# sourceMappingURL=GroupItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupItem.js","sourceRoot":"","sources":["../../src/domain/GroupItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,SAAU,SAAQ,SAAS;IACpC,gEAAgE;IAChD,YAAY,CAAU;IAEtC,YAAsB,IAAY,EAAE,aAAsB;QACtD,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,WAAkB;QACpC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACI,iBAAiB,CAAC,WAAkB;QACvC,OAAO,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED,oEAAoE;IAC7D,qBAAqB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Icon definition for entity metadata.
3
+ *
4
+ * Icons can be associated with {@link Group}, {@link Tool},
5
+ * or any {@link BaseModel} entity.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { createIcon } from 'vurb';
10
+ *
11
+ * const icon = createIcon({
12
+ * src: 'https://example.com/icon.png',
13
+ * mimeType: 'image/png',
14
+ * sizes: ['32x32', '64x64'],
15
+ * theme: 'dark',
16
+ * });
17
+ * ```
18
+ */
19
+ export interface Icon {
20
+ /** URL or path to the icon image */
21
+ readonly src?: string;
22
+ /** MIME type of the icon (e.g. `"image/png"`, `"image/svg+xml"`) */
23
+ readonly mimeType?: string;
24
+ /** Available sizes (e.g. `["32x32", "64x64"]`) */
25
+ readonly sizes?: readonly string[];
26
+ /** Theme variant (e.g. `"dark"`, `"light"`) */
27
+ readonly theme?: string;
28
+ }
29
+ /**
30
+ * Create an Icon from partial properties.
31
+ *
32
+ * @param props - Icon properties (all optional)
33
+ * @returns A frozen Icon instance
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * const icon = createIcon({ src: '/icons/tool.svg', mimeType: 'image/svg+xml' });
38
+ * ```
39
+ */
40
+ export declare function createIcon(props?: Icon): Icon;
41
+ //# sourceMappingURL=Icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/domain/Icon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,IAAI;IACjB,oCAAoC;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,GAAE,IAAS,GAAG,IAAI,CAEjD"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Create an Icon from partial properties.
3
+ *
4
+ * @param props - Icon properties (all optional)
5
+ * @returns A frozen Icon instance
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const icon = createIcon({ src: '/icons/tool.svg', mimeType: 'image/svg+xml' });
10
+ * ```
11
+ */
12
+ export function createIcon(props = {}) {
13
+ return { ...props };
14
+ }
15
+ //# sourceMappingURL=Icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../src/domain/Icon.ts"],"names":[],"mappings":"AA6BA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,QAAc,EAAE;IACvC,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;AACxB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { GroupItem } from './GroupItem.js';
2
+ import { type PromptArgument } from './PromptArgument.js';
3
+ /**
4
+ * Represents an MCP Prompt — a reusable template for LLM interactions.
5
+ *
6
+ * Prompts are leaf nodes that define structured input templates
7
+ * with named arguments. They enable consistent, parameterized
8
+ * LLM interactions.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { Prompt, PromptArgument } from 'vurb';
13
+ *
14
+ * const prompt = new Prompt('generate_summary');
15
+ * prompt.description = 'Generate a summary of the given text';
16
+ *
17
+ * const textArg = new PromptArgument('text');
18
+ * textArg.required = true;
19
+ * textArg.description = 'The text to summarize';
20
+ * prompt.addPromptArgument(textArg);
21
+ *
22
+ * const styleArg = new PromptArgument('style');
23
+ * styleArg.description = 'Summary style (brief, detailed)';
24
+ * prompt.addPromptArgument(styleArg);
25
+ * ```
26
+ *
27
+ * @see {@link PromptArgument} for argument definitions
28
+ * @see {@link GroupItem} for group membership
29
+ */
30
+ export declare class Prompt extends GroupItem {
31
+ /** Ordered list of arguments accepted by this prompt */
32
+ readonly promptArguments: PromptArgument[];
33
+ constructor(name: string);
34
+ /**
35
+ * Add an argument to this prompt.
36
+ *
37
+ * @param promptArgument - The argument to add
38
+ * @returns `false` if already present, `true` if added
39
+ */
40
+ addPromptArgument(promptArgument: PromptArgument): boolean;
41
+ /**
42
+ * Remove an argument from this prompt.
43
+ *
44
+ * @param promptArgument - The argument to remove
45
+ * @returns `false` if not found, `true` if removed
46
+ */
47
+ removePromptArgument(promptArgument: PromptArgument): boolean;
48
+ }
49
+ //# sourceMappingURL=Prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Prompt.d.ts","sourceRoot":"","sources":["../../src/domain/Prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,MAAO,SAAQ,SAAS;IACjC,wDAAwD;IACxD,SAAgB,eAAe,EAAE,cAAc,EAAE,CAAM;gBAEpC,IAAI,EAAE,MAAM;IAI/B;;;;;OAKG;IACI,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO;IAMjE;;;;;OAKG;IACI,oBAAoB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO;CAGvE"}