@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,192 @@
1
+ /**
2
+ * SchemaGenerator — JSON Schema Input Schema Strategy
3
+ *
4
+ * Generates MCP-compatible inputSchema from Zod definitions:
5
+ * - Discriminator enum from action keys
6
+ * - Common + per-action schema merging (with omitCommon support)
7
+ * - Per-field annotations (required-for / optional-for)
8
+ *
9
+ * Pure-function module: no state, no side effects.
10
+ */
11
+ import {} from 'zod';
12
+ import { zodToJsonSchema } from 'zod-to-json-schema';
13
+ import {} from '@modelcontextprotocol/sdk/types.js';
14
+ import {} from '../types.js';
15
+ import { assertFieldCompatibility } from './SchemaUtils.js';
16
+ import { isPresenter } from '../../presenter/Presenter.js';
17
+ // ── Public API ───────────────────────────────────────────
18
+ export function generateInputSchema(actions, discriminator, hasGroup, commonSchema, selectEnabled = false) {
19
+ const actionKeys = actions.map(a => a.key);
20
+ const properties = {};
21
+ const topLevelRequired = [discriminator];
22
+ const fieldActions = new Map();
23
+ addDiscriminatorProperty(properties, discriminator, actionKeys, hasGroup);
24
+ const omitSets = buildOmitSets(actions);
25
+ const commonRequiredFields = collectCommonFields(commonSchema, actionKeys, omitSets, properties, topLevelRequired, fieldActions);
26
+ collectActionFields(actions, properties, fieldActions);
27
+ applyAnnotations(fieldActions, commonRequiredFields, actionKeys, properties);
28
+ // ── _select Reflection (opt-in) ──────────────────────
29
+ if (selectEnabled) {
30
+ injectSelectProperty(actions, properties);
31
+ }
32
+ return {
33
+ type: 'object',
34
+ properties,
35
+ required: topLevelRequired,
36
+ };
37
+ }
38
+ // ── Internal Steps ───────────────────────────────────────
39
+ /** Step 1: Add the discriminator enum property */
40
+ function addDiscriminatorProperty(properties, discriminator, actionKeys, hasGroup) {
41
+ properties[discriminator] = {
42
+ type: 'string',
43
+ enum: actionKeys,
44
+ description: hasGroup
45
+ ? `Module and operation (module.${discriminator} format)`
46
+ : 'Which operation to perform',
47
+ };
48
+ }
49
+ /** Build per-action omit sets for O(1) field exclusion checks */
50
+ function buildOmitSets(actions) {
51
+ const sets = new Map();
52
+ for (const action of actions) {
53
+ if ((action.omitCommonFields?.length ?? 0) > 0) {
54
+ sets.set(action.key, new Set(action.omitCommonFields));
55
+ }
56
+ }
57
+ return sets;
58
+ }
59
+ /**
60
+ * Step 2: Process commonSchema fields.
61
+ *
62
+ * Omitted fields are excluded from per-action tracking.
63
+ * Fields required by ALL actions go to topLevelRequired.
64
+ *
65
+ * @returns The set of common required field names (for annotation logic)
66
+ */
67
+ function collectCommonFields(commonSchema, actionKeys, omitSets, properties, topLevelRequired, fieldActions) {
68
+ const commonRequiredFields = new Set();
69
+ if (!commonSchema)
70
+ return commonRequiredFields;
71
+ const jsonSchema = zodToJsonSchema(commonSchema, { target: 'jsonSchema7' });
72
+ const schemaProps = jsonSchema.properties ?? {};
73
+ const schemaRequired = jsonSchema.required ?? [];
74
+ for (const field of schemaRequired) {
75
+ commonRequiredFields.add(field);
76
+ }
77
+ for (const [key, value] of Object.entries(schemaProps)) {
78
+ const actionsUsingField = actionKeys.filter(ak => {
79
+ const omitSet = omitSets.get(ak);
80
+ return !omitSet || !omitSet.has(key);
81
+ });
82
+ // If no action uses the field, skip it entirely
83
+ if (actionsUsingField.length === 0)
84
+ continue;
85
+ properties[key] = value;
86
+ // Only add to topLevelRequired if ALL actions use this field
87
+ if (commonRequiredFields.has(key) && actionsUsingField.length === actionKeys.length) {
88
+ topLevelRequired.push(key);
89
+ }
90
+ fieldActions.set(key, {
91
+ keys: [...actionsUsingField],
92
+ requiredIn: commonRequiredFields.has(key) ? [...actionsUsingField] : [],
93
+ });
94
+ }
95
+ return commonRequiredFields;
96
+ }
97
+ /** Step 3: Collect per-action schema fields with compatibility checks */
98
+ function collectActionFields(actions, properties, fieldActions) {
99
+ for (const action of actions) {
100
+ if (!action.schema)
101
+ continue;
102
+ const jsonSchema = zodToJsonSchema(action.schema, { target: 'jsonSchema7' });
103
+ const schemaProps = jsonSchema.properties ?? {};
104
+ const schemaRequired = jsonSchema.required ?? [];
105
+ const requiredSet = new Set(schemaRequired);
106
+ for (const [key, value] of Object.entries(schemaProps)) {
107
+ const existing = properties[key];
108
+ if (!existing) {
109
+ properties[key] = value;
110
+ }
111
+ else {
112
+ const merged = assertFieldCompatibility(existing, value, key, action.key);
113
+ if (merged) {
114
+ properties[key] = merged;
115
+ }
116
+ }
117
+ let tracking = fieldActions.get(key);
118
+ if (!tracking) {
119
+ tracking = { keys: [], requiredIn: [] };
120
+ fieldActions.set(key, tracking);
121
+ }
122
+ tracking.keys.push(action.key);
123
+ if (requiredSet.has(key)) {
124
+ tracking.requiredIn.push(action.key);
125
+ }
126
+ }
127
+ }
128
+ }
129
+ /** Step 4: Apply per-field annotations based on tracking data */
130
+ function applyAnnotations(fieldActions, commonRequiredFields, actionKeys, properties) {
131
+ for (const [key, tracking] of fieldActions.entries()) {
132
+ if (commonRequiredFields.has(key) && tracking.keys.length === actionKeys.length) {
133
+ annotateField(properties, key, '(always required)');
134
+ }
135
+ else if (tracking.requiredIn.length > 0 && tracking.requiredIn.length === tracking.keys.length) {
136
+ annotateField(properties, key, `Required for: ${tracking.requiredIn.join(', ')}`);
137
+ }
138
+ else if (tracking.requiredIn.length > 0) {
139
+ const optionalIn = tracking.keys.filter(k => !tracking.requiredIn.includes(k));
140
+ let annotation = `Required for: ${tracking.requiredIn.join(', ')}`;
141
+ if (optionalIn.length > 0) {
142
+ annotation += `. For: ${optionalIn.join(', ')}`;
143
+ }
144
+ annotateField(properties, key, annotation);
145
+ }
146
+ else {
147
+ annotateField(properties, key, `For: ${tracking.keys.join(', ')}`);
148
+ }
149
+ }
150
+ }
151
+ function annotateField(properties, key, annotation) {
152
+ const field = properties[key];
153
+ if (!field)
154
+ return;
155
+ const existingDesc = field.description ?? '';
156
+ field.description = existingDesc
157
+ ? `${existingDesc}. ${annotation}`
158
+ : annotation;
159
+ }
160
+ // ── _select Reflection ───────────────────────────────────
161
+ /**
162
+ * Inject `_select` property into the input schema.
163
+ *
164
+ * Collects the union of all top-level schema keys from Presenters
165
+ * across all actions. If any action has a Presenter with extractable
166
+ * keys, a `_select` optional array property is added with an enum
167
+ * constraint of those keys.
168
+ *
169
+ * **Top-level only**: The enum lists root-level keys only.
170
+ * Nested objects are returned whole when selected.
171
+ */
172
+ function injectSelectProperty(actions, properties) {
173
+ const allKeys = new Set();
174
+ for (const action of actions) {
175
+ if (action.returns && isPresenter(action.returns)) {
176
+ for (const key of action.returns.getSchemaKeys()) {
177
+ allKeys.add(key);
178
+ }
179
+ }
180
+ }
181
+ if (allKeys.size === 0)
182
+ return;
183
+ properties['_select'] = {
184
+ type: 'array',
185
+ description: '⚡ Context optimization: select only the response fields you need. Omit to receive all fields.',
186
+ items: {
187
+ type: 'string',
188
+ enum: [...allKeys].sort(),
189
+ },
190
+ };
191
+ }
192
+ //# sourceMappingURL=SchemaGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaGenerator.js","sourceRoot":"","sources":["../../../src/core/schema/SchemaGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * SchemaUtils — Shared Schema Inspection & Validation Utilities
3
+ *
4
+ * Extracted helpers for inspecting Zod schema metadata and
5
+ * asserting JSON Schema field compatibility across actions.
6
+ *
7
+ * Used by: SchemaGenerator, DescriptionGenerator, ToonDescriptionGenerator.
8
+ *
9
+ * Pure-function module: no state, no side effects.
10
+ */
11
+ import { type ZodObject, type ZodRawShape } from 'zod';
12
+ import { type InternalAction } from '../types.js';
13
+ /**
14
+ * Check if a value is a Zod schema (has `_def` property).
15
+ *
16
+ * Used by `defineTool` and `definePrompt` to distinguish
17
+ * Zod schemas from JSON descriptor objects.
18
+ */
19
+ export declare function isZodSchema(value: unknown): value is ZodObject<ZodRawShape>;
20
+ /**
21
+ * Get the list of required field names from an action's Zod schema.
22
+ * Returns an empty array if the action has no schema.
23
+ */
24
+ export declare function getActionRequiredFields<TContext>(action: InternalAction<TContext>): string[];
25
+ export declare function assertFieldCompatibility(existing: object, incoming: object, field: string, actionKey: string): object | undefined;
26
+ //# sourceMappingURL=SchemaUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaUtils.d.ts","sourceRoot":"","sources":["../../../src/core/schema/SchemaUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAmB,MAAM,KAAK,CAAC;AACxE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAAC,WAAW,CAAC,CAO3E;AAID;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,CAU5F;AAsCD,wBAAgB,wBAAwB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAwCpB"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * SchemaUtils — Shared Schema Inspection & Validation Utilities
3
+ *
4
+ * Extracted helpers for inspecting Zod schema metadata and
5
+ * asserting JSON Schema field compatibility across actions.
6
+ *
7
+ * Used by: SchemaGenerator, DescriptionGenerator, ToonDescriptionGenerator.
8
+ *
9
+ * Pure-function module: no state, no side effects.
10
+ */
11
+ import {} from 'zod';
12
+ import {} from '../types.js';
13
+ // ── Zod Type Guards ──────────────────────────────────────
14
+ /**
15
+ * Check if a value is a Zod schema (has `_def` property).
16
+ *
17
+ * Used by `defineTool` and `definePrompt` to distinguish
18
+ * Zod schemas from JSON descriptor objects.
19
+ */
20
+ export function isZodSchema(value) {
21
+ return (typeof value === 'object' &&
22
+ value !== null &&
23
+ '_def' in value &&
24
+ typeof value._def === 'object');
25
+ }
26
+ // ── Schema Inspection ────────────────────────────────────
27
+ /**
28
+ * Get the list of required field names from an action's Zod schema.
29
+ * Returns an empty array if the action has no schema.
30
+ */
31
+ export function getActionRequiredFields(action) {
32
+ if (!action.schema)
33
+ return [];
34
+ const shape = action.schema.shape;
35
+ const required = [];
36
+ for (const [key, fieldSchema] of Object.entries(shape)) {
37
+ if (!fieldSchema.isOptional()) {
38
+ required.push(key);
39
+ }
40
+ }
41
+ return required;
42
+ }
43
+ // ── Schema Compatibility ─────────────────────────────────
44
+ /**
45
+ * Normalize JSON Schema type for compatibility comparison.
46
+ * "integer" is treated as compatible with "number" (integer IS-A number).
47
+ */
48
+ const normalizeType = (t) => t === 'integer' ? 'number' : t;
49
+ /** Build a consistently-formatted conflict error. */
50
+ function conflictError(field, actionKey, detail) {
51
+ return new Error(`Schema conflict for field "${field}" in action "${actionKey}": ` +
52
+ `${detail}. All actions sharing a field name must use the same type.`);
53
+ }
54
+ export function assertFieldCompatibility(existing, incoming, field, actionKey) {
55
+ const ex = existing;
56
+ const inc = incoming;
57
+ const exType = ex.type;
58
+ const incType = inc.type;
59
+ const exEnum = ex.enum;
60
+ const incEnum = inc.enum;
61
+ // 1. Base type mismatch (with integer ≈ number normalization)
62
+ if (exType !== undefined && incType !== undefined &&
63
+ normalizeType(exType) !== normalizeType(incType)) {
64
+ throw conflictError(field, actionKey, `type "${incType}" conflicts with previously declared type "${exType}"`);
65
+ }
66
+ // 2. Enum presence mismatch → WIDEN to non-enum (drop constraint)
67
+ // Plain string is a superset of enum-constrained string.
68
+ // Essential for OpenAPI imports where the same field name has enum
69
+ // in one endpoint and plain string in another.
70
+ const exHasEnum = exEnum !== undefined;
71
+ const incHasEnum = incEnum !== undefined;
72
+ if (exHasEnum !== incHasEnum) {
73
+ // Return the non-enum version (superset)
74
+ const nonEnum = exHasEnum ? inc : ex;
75
+ return { ...nonEnum };
76
+ }
77
+ // 3. Enum value-set mismatch → MERGE (union) instead of throwing
78
+ if (exHasEnum && incHasEnum &&
79
+ JSON.stringify(exEnum) !== JSON.stringify(incEnum)) {
80
+ const merged = new Set([...exEnum, ...incEnum]);
81
+ return { ...ex, enum: [...merged] };
82
+ }
83
+ return undefined;
84
+ }
85
+ //# sourceMappingURL=SchemaUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaUtils.js","sourceRoot":"","sources":["../../../src/core/schema/SchemaUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type InternalAction } from '../types.js';
2
+ export declare function generateToonDescription<TContext>(actions: readonly InternalAction<TContext>[], name: string, description: string | undefined, hasGroup: boolean, discriminator?: string): string;
3
+ //# sourceMappingURL=ToonDescriptionGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToonDescriptionGenerator.d.ts","sourceRoot":"","sources":["../../../src/core/schema/ToonDescriptionGenerator.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD,wBAAgB,uBAAuB,CAAC,QAAQ,EAC5C,OAAO,EAAE,SAAS,cAAc,CAAC,QAAQ,CAAC,EAAE,EAC5C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,QAAQ,EAAE,OAAO,EACjB,aAAa,SAAW,GACzB,MAAM,CAeR"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * ToonDescriptionGenerator — Token-Optimized Description Strategy
3
+ *
4
+ * Generates descriptions using TOON (Token-Oriented Object Notation) format,
5
+ * achieving ~30-50% token reduction compared to the default markdown descriptions.
6
+ *
7
+ * Uses `@toon-format/toon` encode() to serialize action metadata as compact
8
+ * pipe-delimited tabular data inside the description string.
9
+ *
10
+ * Pure-function module: no state, no side effects.
11
+ */
12
+ import { encode } from '@toon-format/toon';
13
+ import {} from '../types.js';
14
+ import { getActionRequiredFields } from './SchemaUtils.js';
15
+ // ── Public API ───────────────────────────────────────────
16
+ export function generateToonDescription(actions, name, description, hasGroup, discriminator = 'action') {
17
+ const lines = [];
18
+ // Layer 1: Tool summary + dispatch instruction (always human-readable)
19
+ lines.push(`${description || name}. Select operation via the \`${discriminator}\` parameter.`);
20
+ lines.push('');
21
+ // Layer 2: Action metadata in TOON tabular format
22
+ if (hasGroup) {
23
+ lines.push(encodeGroupedActions(actions));
24
+ }
25
+ else {
26
+ lines.push(encodeFlatActions(actions));
27
+ }
28
+ return lines.join('\n');
29
+ }
30
+ function encodeFlatActions(actions) {
31
+ const rows = actions.map(a => buildActionRow(a.key, a));
32
+ return encode(rows, { delimiter: '|' });
33
+ }
34
+ function encodeGroupedActions(actions) {
35
+ // Group actions by their groupName
36
+ const groups = new Map();
37
+ for (const action of actions) {
38
+ const key = action.groupName || '_ungrouped';
39
+ let list = groups.get(key);
40
+ if (!list) {
41
+ list = [];
42
+ groups.set(key, list);
43
+ }
44
+ list.push(action);
45
+ }
46
+ // Build a structure that TOON can encode efficiently
47
+ const groupData = {};
48
+ for (const [groupName, groupActions] of groups) {
49
+ groupData[groupName] = groupActions.map(a => buildActionRow(a.actionName, a));
50
+ }
51
+ return encode(groupData, { delimiter: '|' });
52
+ }
53
+ function buildActionRow(key, action) {
54
+ const required = getActionRequiredFields(action);
55
+ const row = {
56
+ action: key,
57
+ desc: action.description || '',
58
+ required: required.join(','),
59
+ };
60
+ if (action.destructive) {
61
+ row.destructive = true;
62
+ }
63
+ return row;
64
+ }
65
+ //# sourceMappingURL=ToonDescriptionGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToonDescriptionGenerator.js","sourceRoot":"","sources":["../../../src/core/schema/ToonDescriptionGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAuB,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,4DAA4D;AAE5D,MAAM,UAAU,uBAAuB,CACnC,OAA4C,EAC5C,IAAY,EACZ,WAA+B,EAC/B,QAAiB,EACjB,aAAa,GAAG,QAAQ;IAExB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,uEAAuE;IACvE,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,IAAI,IAAI,gCAAgC,aAAa,eAAe,CAAC,CAAC;IAC/F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,kDAAkD;IAClD,IAAI,QAAQ,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAWD,SAAS,iBAAiB,CACtB,OAA4C;IAE5C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,oBAAoB,CACzB,OAA4C;IAE5C,mCAAmC;IACnC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsC,CAAC;IAC7D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC;QAC7C,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,IAAI,GAAG,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,qDAAqD;IACrD,MAAM,SAAS,GAAgC,EAAE,CAAC;IAClD,KAAK,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,MAAM,EAAE,CAAC;QAC7C,SAAS,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACxC,cAAc,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAClC,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,cAAc,CACnB,GAAW,EACX,MAAgC;IAEhC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,GAAG,GAAc;QACnB,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;QAC9B,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;KAC/B,CAAC;IAEF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACrB,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Schema Bounded Context — Barrel Export */
2
+ export { generateDescription } from './DescriptionGenerator.js';
3
+ export { generateToonDescription } from './ToonDescriptionGenerator.js';
4
+ export { generateInputSchema } from './SchemaGenerator.js';
5
+ export { getActionRequiredFields, assertFieldCompatibility, isZodSchema } from './SchemaUtils.js';
6
+ export { aggregateAnnotations } from './AnnotationAggregator.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/schema/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Schema Bounded Context — Barrel Export */
2
+ export { generateDescription } from './DescriptionGenerator.js';
3
+ export { generateToonDescription } from './ToonDescriptionGenerator.js';
4
+ export { generateInputSchema } from './SchemaGenerator.js';
5
+ export { getActionRequiredFields, assertFieldCompatibility, isZodSchema } from './SchemaUtils.js';
6
+ export { aggregateAnnotations } from './AnnotationAggregator.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/schema/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * A pre-compiled stringify function.
3
+ *
4
+ * Generated at boot or on first use from a Zod schema.
5
+ * Accepts any object and returns a JSON string (minified).
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const stringify = serializer.compile(myZodSchema);
10
+ * const json = stringify({ id: 1, name: 'Alice' });
11
+ * // '{"id":1,"name":"Alice"}'
12
+ * ```
13
+ */
14
+ export type StringifyFn = (doc: unknown) => string;
15
+ /**
16
+ * AOT JSON serialization engine.
17
+ *
18
+ * Compiles Zod schemas into fast stringify functions at boot time
19
+ * or lazily on first use. Maintains a per-schema cache to avoid
20
+ * recompilation.
21
+ */
22
+ export interface JsonSerializer {
23
+ /**
24
+ * Compile a Zod schema into a fast stringify function.
25
+ *
26
+ * Returns `undefined` if `fast-json-stringify` is not available
27
+ * or if compilation fails (defensive fallback).
28
+ *
29
+ * @param schema - Any Zod schema (ZodObject, ZodArray, etc.)
30
+ * @returns A compiled stringify function, or `undefined`
31
+ */
32
+ compile(schema: unknown): StringifyFn | undefined;
33
+ /**
34
+ * Stringify data using a compiled function or native fallback.
35
+ *
36
+ * @param data - The data to serialize
37
+ * @param compiled - Optional pre-compiled stringify function
38
+ * @returns JSON string
39
+ */
40
+ stringify(data: unknown, compiled?: StringifyFn): string;
41
+ }
42
+ /**
43
+ * Create an AOT JSON serializer.
44
+ *
45
+ * The serializer lazy-loads `fast-json-stringify` and provides
46
+ * compile/stringify methods with automatic fallback.
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * const serializer = createSerializer();
51
+ * await serializer.init(); // optional: pre-load the fjs module
52
+ *
53
+ * const stringify = serializer.compile(myZodSchema);
54
+ * if (stringify) {
55
+ * const json = stringify(data); // 2-5x faster
56
+ * }
57
+ * ```
58
+ */
59
+ export declare function createSerializer(): JsonSerializer & {
60
+ init(): Promise<void>;
61
+ };
62
+ /**
63
+ * Global singleton serializer.
64
+ *
65
+ * Shared across the engine so all Presenters and response helpers
66
+ * use the same cache and fjs module reference.
67
+ */
68
+ export declare const defaultSerializer: JsonSerializer & {
69
+ init(): Promise<void>;
70
+ };
71
+ //# sourceMappingURL=JsonSerializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonSerializer.d.ts","sourceRoot":"","sources":["../../../src/core/serialization/JsonSerializer.ts"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC3B;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;IAElD;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;CAC5D;AA4ID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,GAAG;IAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAsB7E;AAID;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;YAhCiC,OAAO,CAAC,IAAI,CAAC;CAgCzB,CAAC"}