chatgpt-api/packages/openapi-to-ts
Travis Fischer fa79dbe146 chore: release v7.6.2 2025-03-25 23:27:20 +08:00
..
bin feat: improvements to openai-to-ts 2025-03-25 21:50:43 +08:00
fixtures 🏦 2025-03-25 23:08:25 +08:00
src feat: add open-meteo.yaml to openapi-to-ts fixtures 2025-03-25 22:56:59 +08:00
package.json chore: release v7.6.2 2025-03-25 23:27:20 +08:00
readme.md fix: openapi-to-ts fixes for github openapi spec 2025-03-25 19:16:30 +08:00
tsconfig.json feat: add open-meteo.yaml to openapi-to-ts fixtures 2025-03-25 22:56:59 +08:00
tsup.config.ts feat: improve openapi-to-ts cli and docs 2025-03-24 22:39:15 +08:00

readme.md

Agentic

Generate an Agentic TypeScript client from an OpenAPI spec.

Build Status NPM MIT License Prettier Code Formatting

Agentic

See the github repo or docs for more info.

Intro

@agentic/openapi-to-ts is a tool for converting OpenAPI specs into minimal, self-contained Agentic TypeScript clients. API operations are converted to AIFunction-compatible methods and all types are converted to Zod schemas.

The resulting tools are compatible with all leading TS AI SDKs.

Example Usage

# local development
tsx bin/openapi-to-ts.ts fixtures/openapi/3.0/notion.json -o fixtures/generated

# published version
npx @agentic/openapi-to-ts fixtures/openapi/3.0/notion.json -o fixtures/generated

# npm install -g version
npm install -g @agentic/openapi-to-ts
openapi-to-ts fixtures/openapi/3.0/notion.json -o fixtures/generated

Most OpenAPI specs should be supported, but I've made no attempt to maximize robustness. This tool is meant to generate Agentic TS clients which are 99% of the way there, but some tweaking may be necessary post-generation.

Some things you may want to tweak:

  • simplifying the zod parameters accepted by @aiFunction input schemas since LLMs tend to do better with a few, key parameters
  • removing unused API endpoints & associated types that you don't want to expose to LLMs

TODO

  • convert openapi parsing & utils to https://github.com/readmeio/oas
  • support filters
  • Convert HTML in descriptions to markdown
  • Properly format multiline function comments
  • Debug stripe schema issue
  • Fix json-schema-to-zod withJsdocs issue (github example) where jsdocs aren't escaped for JS block comments
  • Fix github example issue with nullable() zod schema parameter
  • Fix github json-schema-to-zod example issue with string enum given default value true as a non-string boolean
  • Fix github gists/get-revision missing path parameter because of ref
  • Fix github activity_star_repo_for_authenticated_user path seems incorrect

License

MIT © Travis Fischer