Vovk.ts v4
Vovk.ts v4 is a breaking release with two themes: LLM tools now follow an open convention, and the composed RPC client is generated into your project.
Tools follow the standard-tool convention
- deriveTools returns an array of tools implementing the
StandardToolV0interface from standard-tool :name,title,description,inputSchema,outputSchema,meta,execute. Tools derived from RPC modules and OpenAPI mixins also carry schemas, reconstructed from the generated JSON Schemas. - Removed:
createTool(use the standard-tool package or plain objects of the same shape), theVovkTooltype, thetoolsByNamereturn value, and the legacyparameters,typeandinputSchemastool fields.
The client is generated into your project
- The composed client is emitted as TypeScript to
src/client(orclient/without asrcfolder) and imported as@/client. The vovk-client package and thenode_modules/.vovk-clientfolder are retired, which also ends the pnpm hoisting issues. - The
jstemplate family (js,jsBase,schemaJs,openapiJs) is removed; ts is the default for both client modes. prettifyClientdefaults totrueand uses the Prettier installed in your project; the CLI no longer ships its own copy and prints a warning when it’s missing.vovk initadds the generated folder to.gitignore; theprebuild: vovk generatescript regenerates it on every build.
Migrating
- Remove
vovk-clientfrom your dependencies. - Replace
from 'vovk-client'withfrom '@/client'(andvovk-client/openapi,vovk-client/schemawith@/client/openapi,@/client/schema). - Add
/src/client(or your customcomposedClient.outDir) to.gitignoreand keep theprebuild: vovk generatescript. - If your config sets
fromTemplates: ['js'], switch to['ts']. - Use the array returned by
deriveTools; a name map is one line:Object.fromEntries(tools.map((t) => [t.name, t])).
Last updated on