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