@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":"FluentRouter.d.ts","sourceRoot":"","sources":["../../../src/core/builder/FluentRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,oBAAoB,EAAqB,MAAM,oCAAoC,CAAC;AAClG,OAAO,EACH,iBAAiB,EAIpB,MAAM,wBAAwB,CAAC;AAEhC;;;;;GAKG;AACH,qBAAa,YAAY,CAAC,QAAQ;IAC9B,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1C,gBAAgB,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IACvC,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAM;IAC7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAM;gBAE1B,MAAM,EAAE,MAAM;IAI1B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK5B;;;;;;;;OAQG;IACH,GAAG,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,EAAE,EAAE,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAC7C,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACpC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI;IAMrC;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAK7B;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC;IAIlD;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC;IAIrD;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC;IAInD;;;OAGG;IACH,OAAO,CAAC,cAAc;CAwBzB"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * FluentRouter — Prefix Grouping for Fluent Tools
3
+ *
4
+ * Eliminates repetitive `'users.'` prefixes across dozens of tools.
5
+ * A router shares a common prefix, description, and middleware chain
6
+ * across all child tools.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const f = initVurb<AppContext>();
11
+ *
12
+ * const users = f.router('users')
13
+ * .describe('User management')
14
+ * .use(requireAuth);
15
+ *
16
+ * // Tool name: "users", action: "list"
17
+ * const listUsers = users.query('list')
18
+ * .input({ limit: f.number() })
19
+ * .resolve(async ({ input }) => { ... });
20
+ *
21
+ * // Tool name: "users", action: "delete"
22
+ * const deleteUser = users.mutation('delete')
23
+ * .input({ id: f.string() })
24
+ * .resolve(async ({ input }) => { ... });
25
+ * ```
26
+ *
27
+ * @module
28
+ */
29
+ import {} from '../types.js';
30
+ import { resolveMiddleware } from '../middleware/ContextDerivation.js';
31
+ import { FluentToolBuilder, QUERY_DEFAULTS, MUTATION_DEFAULTS, ACTION_DEFAULTS, } from './FluentToolBuilder.js';
32
+ /**
33
+ * Fluent router that shares prefix, description, and middleware
34
+ * across child tools created via `.query()`, `.mutation()`, `.action()`.
35
+ *
36
+ * @typeParam TContext - Base application context
37
+ */
38
+ export class FluentRouter {
39
+ /** @internal */ _prefix;
40
+ /** @internal */ _description;
41
+ /** @internal */ _middlewares = [];
42
+ /** @internal */ _tags = [];
43
+ constructor(prefix) {
44
+ this._prefix = prefix;
45
+ }
46
+ /**
47
+ * Set the shared description for all tools in this router.
48
+ *
49
+ * @param text - Human-readable description
50
+ * @returns `this` for chaining
51
+ */
52
+ describe(text) {
53
+ this._description = text;
54
+ return this;
55
+ }
56
+ use(mw) {
57
+ this._middlewares.push(resolveMiddleware(mw));
58
+ return this;
59
+ }
60
+ /**
61
+ * Set capability tags shared by all tools in this router.
62
+ *
63
+ * @param tags - Tag strings for filtering
64
+ * @returns `this` for chaining
65
+ */
66
+ tags(...tags) {
67
+ this._tags.push(...tags);
68
+ return this;
69
+ }
70
+ /**
71
+ * Create a read-only query tool under this router's prefix.
72
+ *
73
+ * @param action - Action name (e.g. `'list'` → tool name `'prefix.list'`)
74
+ * @returns A `FluentToolBuilder` with the prefixed name and inherited config
75
+ */
76
+ query(action) {
77
+ return this._createBuilder(action, QUERY_DEFAULTS);
78
+ }
79
+ /**
80
+ * Create a destructive mutation tool under this router's prefix.
81
+ *
82
+ * @param action - Action name (e.g. `'delete'` → tool name `'prefix.delete'`)
83
+ * @returns A `FluentToolBuilder` with the prefixed name and inherited config
84
+ */
85
+ mutation(action) {
86
+ return this._createBuilder(action, MUTATION_DEFAULTS);
87
+ }
88
+ /**
89
+ * Create a neutral action tool under this router's prefix.
90
+ *
91
+ * @param action - Action name (e.g. `'update'` → tool name `'prefix.update'`)
92
+ * @returns A `FluentToolBuilder` with the prefixed name and inherited config
93
+ */
94
+ action(action) {
95
+ return this._createBuilder(action, ACTION_DEFAULTS);
96
+ }
97
+ /**
98
+ * Create a FluentToolBuilder with inherited router config.
99
+ * @internal
100
+ */
101
+ _createBuilder(action, defaults) {
102
+ const builder = new FluentToolBuilder(`${this._prefix}.${action}`, defaults);
103
+ // Inherit router middleware
104
+ builder._middlewares.push(...this._middlewares);
105
+ // Inherit router tags
106
+ if (this._tags.length > 0) {
107
+ builder._tags.push(...this._tags);
108
+ }
109
+ // Inherit router description as fallback
110
+ if (this._description) {
111
+ builder._description = this._description;
112
+ }
113
+ return builder;
114
+ }
115
+ }
116
+ //# sourceMappingURL=FluentRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FluentRouter.js","sourceRoot":"","sources":["../../../src/core/builder/FluentRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAqB,MAAM,aAAa,CAAC;AAChD,OAAO,EAA6B,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAClG,OAAO,EACH,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,eAAe,GAClB,MAAM,wBAAwB,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IACrB,gBAAgB,CAAU,OAAO,CAAS;IAC1C,gBAAgB,CAAC,YAAY,CAAU;IACvC,gBAAgB,CAAC,YAAY,GAA6B,EAAE,CAAC;IAC7D,gBAAgB,CAAC,KAAK,GAAa,EAAE,CAAC;IAEtC,YAAY,MAAc;QACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,IAAY;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAeD,GAAG,CAAC,EAAoF;QACpF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAc;QAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACvD,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,MAAc;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAc;QACjB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxD,CAAC;IAED;;;OAGG;IACK,cAAc,CAClB,MAAc,EACd,QAA6E;QAE7E,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACjC,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE,EAC3B,QAAQ,CACX,CAAC;QAEF,4BAA4B;QAC5B,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAEhD,sBAAsB;QACtB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,yCAAyC;QACzC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7C,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
@@ -0,0 +1,237 @@
1
+ /**
2
+ * FluentSchemaHelpers — Chainable Parameter Declarations
3
+ *
4
+ * Provides `f.string()`, `f.number()`, `f.boolean()`, `f.enum()`, `f.array()`
5
+ * that build ParamDescriptors via fluent method chaining.
6
+ *
7
+ * These are syntax sugar over the existing `ParamDescriptors` system.
8
+ * At build time, `.toDescriptor()` produces the same JSON descriptor
9
+ * that `convertParamsToZod()` already knows how to convert.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const f = initVurb<AppContext>();
14
+ *
15
+ * f.query('users.list')
16
+ * .input({
17
+ * limit: f.number().min(1).max(100).default(10).describe('Max results'),
18
+ * status: f.enum('active', 'inactive').optional(),
19
+ * name: f.string().min(3).example('Alice').describe('Search by name'),
20
+ * })
21
+ * .resolve(async ({ input, ctx }) => { ... });
22
+ * ```
23
+ *
24
+ * @module
25
+ */
26
+ import type { ParamDef, StringParamDef, NumberParamDef, BooleanParamDef, EnumParamDef, ArrayParamDef } from './ParamDescriptors.js';
27
+ /**
28
+ * Symbol used to detect fluent schema helpers at runtime.
29
+ * @internal
30
+ */
31
+ export declare const FLUENT_DESCRIPTOR: unique symbol;
32
+ /**
33
+ * Base interface for all fluent descriptors.
34
+ * @internal
35
+ */
36
+ export interface FluentDescriptor {
37
+ readonly [FLUENT_DESCRIPTOR]: true;
38
+ /** Convert the fluent descriptor to a plain ParamDef for ParamDescriptors. */
39
+ toDescriptor(): ParamDef;
40
+ }
41
+ /**
42
+ * Type guard: is this value a FluentDescriptor?
43
+ * @internal
44
+ */
45
+ export declare function isFluentDescriptor(value: unknown): value is FluentDescriptor;
46
+ /**
47
+ * Infer the TypeScript type from a single fluent descriptor or ParamDef.
48
+ * @internal
49
+ */
50
+ type InferSingleFluent<T> = T extends FluentString ? string : T extends FluentNumber ? number : T extends FluentBoolean ? boolean : T extends FluentEnum<infer V> ? V : T extends FluentArray ? (T extends {
51
+ _itemType: 'string';
52
+ } ? string[] : T extends {
53
+ _itemType: 'number';
54
+ } ? number[] : T extends {
55
+ _itemType: 'boolean';
56
+ } ? boolean[] : unknown[]) : T extends 'string' ? string : T extends 'number' ? number : T extends 'boolean' ? boolean : T extends {
57
+ type: 'string';
58
+ } ? string : T extends {
59
+ type: 'number';
60
+ } ? number : T extends {
61
+ type: 'boolean';
62
+ } ? boolean : T extends {
63
+ enum: readonly (infer V)[];
64
+ } ? V : T extends {
65
+ array: 'string';
66
+ } ? string[] : T extends {
67
+ array: 'number';
68
+ } ? number[] : T extends {
69
+ array: 'boolean';
70
+ } ? boolean[] : unknown;
71
+ /**
72
+ * Check if a fluent/param value is optional.
73
+ * @internal
74
+ */
75
+ type IsFieldOptional<T> = T extends {
76
+ _optional: true;
77
+ } ? true : T extends {
78
+ optional: true;
79
+ } ? true : false;
80
+ /** Required keys from a FluentParamsMap */
81
+ type FluentRequiredKeys<T extends Record<string, unknown>> = {
82
+ [K in keyof T]: IsFieldOptional<T[K]> extends true ? never : K;
83
+ }[keyof T];
84
+ /** Optional keys from a FluentParamsMap */
85
+ type FluentOptionalKeys<T extends Record<string, unknown>> = {
86
+ [K in keyof T]: IsFieldOptional<T[K]> extends true ? K : never;
87
+ }[keyof T];
88
+ /**
89
+ * Infer the full TypeScript type from a FluentParamsMap.
90
+ *
91
+ * Required params become required properties, optional params become
92
+ * optional properties with `| undefined`.
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * const schema = {
97
+ * limit: f.number().min(1).max(100), // required: number
98
+ * status: f.enum('active', 'inactive').optional(), // optional: 'active' | 'inactive'
99
+ * };
100
+ * type T = InferFluentParams<typeof schema>;
101
+ * // { limit: number; status?: 'active' | 'inactive' }
102
+ * ```
103
+ */
104
+ export type InferFluentParams<T extends Record<string, unknown>> = {
105
+ [K in FluentRequiredKeys<T>]: InferSingleFluent<T[K]>;
106
+ } & {
107
+ [K in FluentOptionalKeys<T>]?: InferSingleFluent<T[K]>;
108
+ };
109
+ export declare class FluentString implements FluentDescriptor {
110
+ readonly [FLUENT_DESCRIPTOR]: true;
111
+ private _desc?;
112
+ /** @internal */ _optional: boolean;
113
+ private _min?;
114
+ private _max?;
115
+ private _regex?;
116
+ private _default?;
117
+ private _examples?;
118
+ /** Set minimum string length */
119
+ min(n: number): this;
120
+ /** Set maximum string length */
121
+ max(n: number): this;
122
+ /** Set regex validation pattern */
123
+ regex(pattern: string): this;
124
+ /** Mark as optional */
125
+ optional(): FluentString & {
126
+ _optional: true;
127
+ };
128
+ /** Set human-readable description */
129
+ describe(text: string): this;
130
+ /** Set default value (appended to description for LLM, auto-marks as optional) */
131
+ default(value: string): this;
132
+ /** Add a single LLM few-shot example (AI-First DX) */
133
+ example(value: string): this;
134
+ /** Set multiple LLM few-shot examples */
135
+ examples(...values: string[]): this;
136
+ toDescriptor(): StringParamDef;
137
+ }
138
+ export declare class FluentNumber implements FluentDescriptor {
139
+ readonly [FLUENT_DESCRIPTOR]: true;
140
+ private _desc?;
141
+ /** @internal */ _optional: boolean;
142
+ private _min?;
143
+ private _max?;
144
+ private _int;
145
+ private _default?;
146
+ private _examples?;
147
+ /** Set minimum value */
148
+ min(n: number): this;
149
+ /** Set maximum value */
150
+ max(n: number): this;
151
+ /** Restrict to integers */
152
+ int(): this;
153
+ /** Mark as optional */
154
+ optional(): FluentNumber & {
155
+ _optional: true;
156
+ };
157
+ /** Set human-readable description */
158
+ describe(text: string): this;
159
+ /** Set default value (appended to description for LLM, auto-marks as optional) */
160
+ default(value: number): this;
161
+ /** Add a single LLM few-shot example (AI-First DX) */
162
+ example(value: number): this;
163
+ /** Set multiple LLM few-shot examples */
164
+ examples(...values: number[]): this;
165
+ toDescriptor(): NumberParamDef;
166
+ }
167
+ export declare class FluentBoolean implements FluentDescriptor {
168
+ readonly [FLUENT_DESCRIPTOR]: true;
169
+ private _desc?;
170
+ /** @internal */ _optional: boolean;
171
+ private _default?;
172
+ /** Mark as optional */
173
+ optional(): FluentBoolean & {
174
+ _optional: true;
175
+ };
176
+ /** Set human-readable description */
177
+ describe(text: string): this;
178
+ /** Set default value (appended to description for LLM, auto-marks as optional) */
179
+ default(value: boolean): this;
180
+ toDescriptor(): BooleanParamDef;
181
+ }
182
+ export declare class FluentEnum<V extends string = string> implements FluentDescriptor {
183
+ readonly [FLUENT_DESCRIPTOR]: true;
184
+ private _desc?;
185
+ /** @internal */ _optional: boolean;
186
+ private _examples?;
187
+ private _default?;
188
+ private readonly _values;
189
+ constructor(...values: [V, ...V[]]);
190
+ /** Mark as optional */
191
+ optional(): FluentEnum<V> & {
192
+ _optional: true;
193
+ };
194
+ /** Set human-readable description */
195
+ describe(text: string): this;
196
+ /** Set default value (appended to description for LLM) */
197
+ default(value: V): this;
198
+ /** Add a single LLM few-shot example (AI-First DX) */
199
+ example(value: V): this;
200
+ /** Set multiple LLM few-shot examples */
201
+ examples(...values: V[]): this;
202
+ toDescriptor(): EnumParamDef<V>;
203
+ }
204
+ type PrimitiveType = 'string' | 'number' | 'boolean';
205
+ export declare class FluentArray implements FluentDescriptor {
206
+ readonly [FLUENT_DESCRIPTOR]: true;
207
+ private _desc?;
208
+ /** @internal */ _optional: boolean;
209
+ private _min?;
210
+ private _max?;
211
+ /** @internal */ readonly _itemType: PrimitiveType;
212
+ constructor(itemType: PrimitiveType);
213
+ /** Set minimum array length */
214
+ min(n: number): this;
215
+ /** Set maximum array length */
216
+ max(n: number): this;
217
+ /** Mark as optional */
218
+ optional(): FluentArray & {
219
+ _optional: true;
220
+ };
221
+ /** Set human-readable description */
222
+ describe(text: string): this;
223
+ toDescriptor(): ArrayParamDef;
224
+ }
225
+ /**
226
+ * A map where values can be either classic ParamDef or FluentDescriptor.
227
+ * The FluentToolBuilder resolves these to ParamDef at build time.
228
+ */
229
+ export type FluentParamsMap = Record<string, ParamDef | FluentDescriptor>;
230
+ /**
231
+ * Resolve a FluentParamsMap to a plain ParamsMap by calling .toDescriptor()
232
+ * on any FluentDescriptor values.
233
+ * @internal
234
+ */
235
+ export declare function resolveFluentParams(input: FluentParamsMap): Record<string, ParamDef>;
236
+ export {};
237
+ //# sourceMappingURL=FluentSchemaHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FluentSchemaHelpers.d.ts","sourceRoot":"","sources":["../../../src/core/builder/FluentSchemaHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,227 @@
1
+ // ── Sentinel for fluent descriptor detection ──────────────
2
+ /**
3
+ * Symbol used to detect fluent schema helpers at runtime.
4
+ * @internal
5
+ */
6
+ export const FLUENT_DESCRIPTOR = Symbol.for('vurb.fluent-descriptor');
7
+ /**
8
+ * Type guard: is this value a FluentDescriptor?
9
+ * @internal
10
+ */
11
+ export function isFluentDescriptor(value) {
12
+ return (typeof value === 'object' &&
13
+ value !== null &&
14
+ FLUENT_DESCRIPTOR in value &&
15
+ value[FLUENT_DESCRIPTOR] === true);
16
+ }
17
+ // ── String Helper ────────────────────────────────────────
18
+ export class FluentString {
19
+ [FLUENT_DESCRIPTOR] = true;
20
+ _desc;
21
+ /** @internal */ _optional = false;
22
+ _min;
23
+ _max;
24
+ _regex;
25
+ _default;
26
+ _examples;
27
+ /** Set minimum string length */
28
+ min(n) { this._min = n; return this; }
29
+ /** Set maximum string length */
30
+ max(n) { this._max = n; return this; }
31
+ /** Set regex validation pattern */
32
+ regex(pattern) { this._regex = pattern; return this; }
33
+ /** Mark as optional */
34
+ optional() {
35
+ this._optional = true;
36
+ return this;
37
+ }
38
+ /** Set human-readable description */
39
+ describe(text) { this._desc = text; return this; }
40
+ /** Set default value (appended to description for LLM, auto-marks as optional) */
41
+ default(value) { this._default = value; this._optional = true; return this; }
42
+ /** Add a single LLM few-shot example (AI-First DX) */
43
+ example(value) {
44
+ if (!this._examples)
45
+ this._examples = [];
46
+ this._examples.push(value);
47
+ return this;
48
+ }
49
+ /** Set multiple LLM few-shot examples */
50
+ examples(...values) { this._examples = values; return this; }
51
+ toDescriptor() {
52
+ const desc = this._default !== undefined
53
+ ? (this._desc ? `${this._desc} (default: '${this._default}')` : `(default: '${this._default}')`)
54
+ : this._desc;
55
+ return {
56
+ type: 'string',
57
+ ...(desc && { description: desc }),
58
+ ...(this._optional && { optional: true }),
59
+ ...(this._min !== undefined && { min: this._min }),
60
+ ...(this._max !== undefined && { max: this._max }),
61
+ ...(this._regex !== undefined && { regex: this._regex }),
62
+ ...(this._examples && { examples: this._examples }),
63
+ };
64
+ }
65
+ }
66
+ // ── Number Helper ────────────────────────────────────────
67
+ export class FluentNumber {
68
+ [FLUENT_DESCRIPTOR] = true;
69
+ _desc;
70
+ /** @internal */ _optional = false;
71
+ _min;
72
+ _max;
73
+ _int = false;
74
+ _default;
75
+ _examples;
76
+ /** Set minimum value */
77
+ min(n) { this._min = n; return this; }
78
+ /** Set maximum value */
79
+ max(n) { this._max = n; return this; }
80
+ /** Restrict to integers */
81
+ int() { this._int = true; return this; }
82
+ /** Mark as optional */
83
+ optional() {
84
+ this._optional = true;
85
+ return this;
86
+ }
87
+ /** Set human-readable description */
88
+ describe(text) { this._desc = text; return this; }
89
+ /** Set default value (appended to description for LLM, auto-marks as optional) */
90
+ default(value) { this._default = value; this._optional = true; return this; }
91
+ /** Add a single LLM few-shot example (AI-First DX) */
92
+ example(value) {
93
+ if (!this._examples)
94
+ this._examples = [];
95
+ this._examples.push(value);
96
+ return this;
97
+ }
98
+ /** Set multiple LLM few-shot examples */
99
+ examples(...values) { this._examples = values; return this; }
100
+ toDescriptor() {
101
+ const desc = this._default !== undefined
102
+ ? (this._desc ? `${this._desc} (default: ${this._default})` : `(default: ${this._default})`)
103
+ : this._desc;
104
+ return {
105
+ type: 'number',
106
+ ...(desc && { description: desc }),
107
+ ...(this._optional && { optional: true }),
108
+ ...(this._min !== undefined && { min: this._min }),
109
+ ...(this._max !== undefined && { max: this._max }),
110
+ ...(this._int && { int: true }),
111
+ ...(this._examples && { examples: this._examples }),
112
+ };
113
+ }
114
+ }
115
+ // ── Boolean Helper ───────────────────────────────────────
116
+ export class FluentBoolean {
117
+ [FLUENT_DESCRIPTOR] = true;
118
+ _desc;
119
+ /** @internal */ _optional = false;
120
+ _default;
121
+ /** Mark as optional */
122
+ optional() {
123
+ this._optional = true;
124
+ return this;
125
+ }
126
+ /** Set human-readable description */
127
+ describe(text) { this._desc = text; return this; }
128
+ /** Set default value (appended to description for LLM, auto-marks as optional) */
129
+ default(value) { this._default = value; this._optional = true; return this; }
130
+ toDescriptor() {
131
+ const desc = this._default !== undefined
132
+ ? (this._desc ? `${this._desc} (default: ${this._default})` : `(default: ${this._default})`)
133
+ : this._desc;
134
+ return {
135
+ type: 'boolean',
136
+ ...(desc && { description: desc }),
137
+ ...(this._optional && { optional: true }),
138
+ };
139
+ }
140
+ }
141
+ // ── Enum Helper ──────────────────────────────────────────
142
+ export class FluentEnum {
143
+ [FLUENT_DESCRIPTOR] = true;
144
+ _desc;
145
+ /** @internal */ _optional = false;
146
+ _examples;
147
+ _default;
148
+ _values;
149
+ constructor(...values) {
150
+ this._values = values;
151
+ }
152
+ /** Mark as optional */
153
+ optional() {
154
+ this._optional = true;
155
+ return this;
156
+ }
157
+ /** Set human-readable description */
158
+ describe(text) { this._desc = text; return this; }
159
+ /** Set default value (appended to description for LLM) */
160
+ default(value) { this._default = value; this._optional = true; return this; }
161
+ /** Add a single LLM few-shot example (AI-First DX) */
162
+ example(value) {
163
+ if (!this._examples)
164
+ this._examples = [];
165
+ this._examples.push(value);
166
+ return this;
167
+ }
168
+ /** Set multiple LLM few-shot examples */
169
+ examples(...values) { this._examples = values; return this; }
170
+ toDescriptor() {
171
+ const desc = this._default !== undefined
172
+ ? (this._desc ? `${this._desc} (default: '${this._default}')` : `(default: '${this._default}')`)
173
+ : this._desc;
174
+ return {
175
+ enum: this._values,
176
+ ...(desc && { description: desc }),
177
+ ...(this._optional && { optional: true }),
178
+ ...(this._examples && { examples: this._examples }),
179
+ };
180
+ }
181
+ }
182
+ export class FluentArray {
183
+ [FLUENT_DESCRIPTOR] = true;
184
+ _desc;
185
+ /** @internal */ _optional = false;
186
+ _min;
187
+ _max;
188
+ /** @internal */ _itemType;
189
+ constructor(itemType) {
190
+ this._itemType = itemType;
191
+ }
192
+ /** Set minimum array length */
193
+ min(n) { this._min = n; return this; }
194
+ /** Set maximum array length */
195
+ max(n) { this._max = n; return this; }
196
+ /** Mark as optional */
197
+ optional() {
198
+ this._optional = true;
199
+ return this;
200
+ }
201
+ /** Set human-readable description */
202
+ describe(text) { this._desc = text; return this; }
203
+ toDescriptor() {
204
+ return {
205
+ array: this._itemType,
206
+ ...(this._desc && { description: this._desc }),
207
+ ...(this._optional && { optional: true }),
208
+ ...(this._min !== undefined && { min: this._min }),
209
+ ...(this._max !== undefined && { max: this._max }),
210
+ };
211
+ }
212
+ }
213
+ /**
214
+ * Resolve a FluentParamsMap to a plain ParamsMap by calling .toDescriptor()
215
+ * on any FluentDescriptor values.
216
+ * @internal
217
+ */
218
+ export function resolveFluentParams(input) {
219
+ const resolved = {};
220
+ for (const [key, value] of Object.entries(input)) {
221
+ resolved[key] = isFluentDescriptor(value)
222
+ ? value.toDescriptor()
223
+ : value;
224
+ }
225
+ return resolved;
226
+ }
227
+ //# sourceMappingURL=FluentSchemaHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FluentSchemaHelpers.js","sourceRoot":"","sources":["../../../src/core/builder/FluentSchemaHelpers.ts"],"names":[],"mappings":"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"}