pull/704/head
Travis Fischer 2025-03-25 14:37:49 +08:00
rodzic 0133cc9447
commit a4b959d663
4 zmienionych plików z 101 dodań i 42 usunięć

Wyświetl plik

@ -34,7 +34,7 @@
"devDependencies": {
"@fisch0920/eslint-config": "^1.4.0",
"@total-typescript/ts-reset": "^0.6.1",
"@types/node": "^22.13.10",
"@types/node": "^22.13.13",
"bumpp": "^10.1.0",
"del-cli": "^6.0.0",
"dotenv": "^16.4.7",

Wyświetl plik

@ -19,6 +19,12 @@
**See the [github repo](https://github.com/transitive-bullshit/agentic) or [docs](https://agentic.so) 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
```sh

Wyświetl plik

@ -126,8 +126,8 @@ importers:
specifier: ^0.6.1
version: 0.6.1
'@types/node':
specifier: ^22.13.10
version: 22.13.10
specifier: ^22.13.13
version: 22.13.13
bumpp:
specifier: ^10.1.0
version: 10.1.0
@ -172,7 +172,7 @@ importers:
version: 5.8.2
vitest:
specifier: 3.0.9
version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.10)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.13)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
zod:
specifier: 'catalog:'
version: 3.24.2
@ -2023,6 +2023,10 @@ packages:
resolution: {integrity: sha512-JXUj6PI0oqqzTGvKtzOkxtpsyPRNsrmhh41TtIz/zEB6J+AUiZZ0dxWzcMwO9Ns5rmSPuMdghlTbUuqIM48d3Q==}
engines: {node: '>=12.10.0'}
'@grpc/grpc-js@1.13.1':
resolution: {integrity: sha512-z5nNuIs75S73ZULjPDe5QCNTiCv7FyBZXEVWOyAHtcebnuJf0g1SuueI3U1/z/KK39XyAQRUC+C9ZQJOtgHynA==}
engines: {node: '>=12.10.0'}
'@grpc/proto-loader@0.7.13':
resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==}
engines: {node: '>=6'}
@ -3387,15 +3391,18 @@ packages:
'@types/node-fetch@2.6.12':
resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==}
'@types/node@18.19.80':
resolution: {integrity: sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==}
'@types/node@18.19.83':
resolution: {integrity: sha512-D69JeR5SfFS5H6FLbUaS0vE4r1dGhmMBbG4Ed6BNS4wkDK8GZjsdCShT5LCN59vOHEUHnFCY9J4aclXlIphMkA==}
'@types/node@20.17.24':
resolution: {integrity: sha512-d7fGCyB96w9BnWQrOsJtpyiSaBcAYYr75bnK6ZRjDbql2cGLj/3GsL5OYmLPNq76l7Gf2q4Rv9J2o6h5CrD9sA==}
'@types/node@20.17.27':
resolution: {integrity: sha512-U58sbKhDrthHlxHRJw7ZLiLDZGmAUOZUbpw0S6nL27sYUdhvgBLCRu/keSd6qcTsfArd1sRFCCBxzWATGr/0UA==}
'@types/node@22.13.10':
resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==}
'@types/node@22.13.13':
resolution: {integrity: sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==}
'@types/normalize-package-data@2.4.4':
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
@ -3582,6 +3589,11 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
acorn@8.14.1:
resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
engines: {node: '>=0.4.0'}
hasBin: true
agent-base@7.1.3:
resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==}
engines: {node: '>= 14'}
@ -4914,6 +4926,9 @@ packages:
import-in-the-middle@1.13.0:
resolution: {integrity: sha512-YG86SYDtrL/Yu8JgfWb7kjQ0myLeT1whw6fs/ZHFkXFcbk9zJU9lOCsSJHpvaPumU11nN3US7NW6x1YTk+HrUA==}
import-in-the-middle@1.13.1:
resolution: {integrity: sha512-k2V9wNm9B+ysuelDTHjI9d5KPc4l8zAZTGqj+pcynvWkypZd857ryzN8jNC7Pg2YZXNMJcHRPpaDyCBbNyVRpA==}
imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
@ -5306,7 +5321,6 @@ packages:
libsql@0.4.7:
resolution: {integrity: sha512-T9eIRCs6b0J1SHKYIvD8+KCJMcWZ900iZyxdnSCdqxN12Z1ijzT+jY5nrk72Jw4B0HGzms2NgpryArlJqvc3Lw==}
cpu: [x64, arm64, wasm32]
os: [darwin, linux, win32]
lilconfig@3.1.3:
@ -5512,8 +5526,8 @@ packages:
mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
nanoid@3.3.10:
resolution: {integrity: sha512-vSJJTG+t/dIKAUhUDw/dLdZ9s//5OxcHqLaDWWrW4Cdq7o6tdLIczUkMXt2MBNmk6sJRZBZRXVixs7URY1CmIg==}
nanoid@3.3.11:
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
@ -6094,6 +6108,10 @@ packages:
resolution: {integrity: sha512-fgZEz/t3FDrU9o7EhI+iNNq1pNNpJImOvX72HUd6RoFiw8MaKd8/gR5tLuc8A0G0e55LMbP6ImjnmXY6zrTmjw==}
engines: {node: '>=8.6.0'}
require-in-the-middle@7.5.2:
resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==}
engines: {node: '>=8.6.0'}
requireindex@1.2.0:
resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==}
engines: {node: '>=0.10.5'}
@ -7041,7 +7059,7 @@ snapshots:
dependencies:
'@ai-sdk/provider': 1.0.11
eventsource-parser: 3.0.0
nanoid: 3.3.10
nanoid: 3.3.11
secure-json-parse: 2.7.0
optionalDependencies:
zod: 3.24.2
@ -7822,7 +7840,7 @@ snapshots:
dependencies:
'@genkit-ai/core': 1.2.0
'@opentelemetry/api': 1.9.0
'@types/node': 20.17.24
'@types/node': 20.17.27
colorette: 2.0.20
dotprompt: 1.0.1
json5: 2.2.3
@ -7860,6 +7878,11 @@ snapshots:
'@grpc/proto-loader': 0.7.13
'@js-sdsl/ordered-map': 4.4.2
'@grpc/grpc-js@1.13.1':
dependencies:
'@grpc/proto-loader': 0.7.13
'@js-sdsl/ordered-map': 4.4.2
'@grpc/proto-loader@0.7.13':
dependencies:
lodash.camelcase: 4.3.0
@ -8420,7 +8443,7 @@ snapshots:
'@opentelemetry/exporter-trace-otlp-grpc@0.52.1(@opentelemetry/api@1.9.0)':
dependencies:
'@grpc/grpc-js': 1.12.6
'@grpc/grpc-js': 1.13.1
'@opentelemetry/api': 1.9.0
'@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
'@opentelemetry/otlp-grpc-exporter-base': 0.52.1(@opentelemetry/api@1.9.0)
@ -8831,8 +8854,8 @@ snapshots:
'@opentelemetry/api': 1.9.0
'@opentelemetry/api-logs': 0.52.1
'@types/shimmer': 1.2.0
import-in-the-middle: 1.13.0
require-in-the-middle: 7.5.1
import-in-the-middle: 1.13.1
require-in-the-middle: 7.5.2
semver: 7.7.1
shimmer: 1.2.1
transitivePeerDependencies:
@ -8864,7 +8887,7 @@ snapshots:
'@opentelemetry/otlp-grpc-exporter-base@0.52.1(@opentelemetry/api@1.9.0)':
dependencies:
'@grpc/grpc-js': 1.12.6
'@grpc/grpc-js': 1.13.1
'@opentelemetry/api': 1.9.0
'@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
'@opentelemetry/otlp-exporter-base': 0.52.1(@opentelemetry/api@1.9.0)
@ -9581,11 +9604,11 @@ snapshots:
'@types/bunyan@1.8.11':
dependencies:
'@types/node': 22.13.10
'@types/node': 22.13.13
'@types/connect@3.4.38':
dependencies:
'@types/node': 22.13.10
'@types/node': 22.13.13
'@types/debug@4.1.12':
dependencies:
@ -9614,25 +9637,25 @@ snapshots:
'@types/memcached@2.2.10':
dependencies:
'@types/node': 22.13.10
'@types/node': 22.13.13
'@types/ms@2.1.0':
optional: true
'@types/mysql@2.15.26':
dependencies:
'@types/node': 22.13.10
'@types/node': 22.13.13
'@types/node-fetch@2.6.12':
dependencies:
'@types/node': 22.13.10
'@types/node': 18.19.83
form-data: 4.0.2
'@types/node@18.19.80':
'@types/node@18.19.83':
dependencies:
undici-types: 5.26.5
'@types/node@20.17.24':
'@types/node@20.17.27':
dependencies:
undici-types: 6.19.8
@ -9640,6 +9663,10 @@ snapshots:
dependencies:
undici-types: 6.20.0
'@types/node@22.13.13':
dependencies:
undici-types: 6.20.0
'@types/normalize-package-data@2.4.4': {}
'@types/pg-pool@2.0.6':
@ -9648,7 +9675,7 @@ snapshots:
'@types/pg@8.6.1':
dependencies:
'@types/node': 22.13.10
'@types/node': 22.13.13
pg-protocol: 1.8.0
pg-types: 2.2.0
@ -9658,7 +9685,7 @@ snapshots:
'@types/tedious@4.0.14':
dependencies:
'@types/node': 22.13.10
'@types/node': 22.13.13
'@types/uuid@10.0.0': {}
@ -9666,7 +9693,7 @@ snapshots:
'@types/ws@8.18.0':
dependencies:
'@types/node': 22.13.10
'@types/node': 22.13.13
'@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.2))(eslint@8.57.1)(typescript@5.8.2)':
dependencies:
@ -9758,13 +9785,13 @@ snapshots:
chai: 5.2.0
tinyrainbow: 2.0.0
'@vitest/mocker@3.0.9(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))':
'@vitest/mocker@3.0.9(vite@6.2.2(@types/node@22.13.13)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))':
dependencies:
'@vitest/spy': 3.0.9
estree-walker: 3.0.3
magic-string: 0.30.17
optionalDependencies:
vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
vite: 6.2.2(@types/node@22.13.13)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
'@vitest/pretty-format@3.0.9':
dependencies:
@ -9887,12 +9914,18 @@ snapshots:
dependencies:
acorn: 8.14.0
acorn-import-attributes@1.9.5(acorn@8.14.1):
dependencies:
acorn: 8.14.1
acorn-jsx@5.3.2(acorn@8.14.0):
dependencies:
acorn: 8.14.0
acorn@8.14.0: {}
acorn@8.14.1: {}
agent-base@7.1.3: {}
agentkeepalive@4.6.0:
@ -11555,6 +11588,13 @@ snapshots:
cjs-module-lexer: 1.4.3
module-details-from-path: 1.0.3
import-in-the-middle@1.13.1:
dependencies:
acorn: 8.14.1
acorn-import-attributes: 1.9.5(acorn@8.14.1)
cjs-module-lexer: 1.4.3
module-details-from-path: 1.0.3
imurmurhash@0.1.4: {}
indent-string@4.0.0: {}
@ -12060,7 +12100,7 @@ snapshots:
object-assign: 4.1.1
thenify-all: 1.6.0
nanoid@3.3.10: {}
nanoid@3.3.11: {}
natural-compare@1.4.0: {}
@ -12227,7 +12267,7 @@ snapshots:
openai@4.87.3(encoding@0.1.13)(ws@8.18.0)(zod@3.24.2):
dependencies:
'@types/node': 18.19.80
'@types/node': 18.19.83
'@types/node-fetch': 2.6.12
abort-controller: 3.0.0
agentkeepalive: 4.6.0
@ -12443,7 +12483,7 @@ snapshots:
postcss@8.5.3:
dependencies:
nanoid: 3.3.10
nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
@ -12491,7 +12531,7 @@ snapshots:
'@protobufjs/path': 1.1.2
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
'@types/node': 22.13.10
'@types/node': 22.13.13
long: 5.3.1
proxy-addr@2.0.7:
@ -12639,6 +12679,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
require-in-the-middle@7.5.2:
dependencies:
debug: 4.4.0
module-details-from-path: 1.0.3
resolve: 1.22.10
transitivePeerDependencies:
- supports-color
requireindex@1.2.0: {}
resolve-from@4.0.0: {}
@ -13395,13 +13443,13 @@ snapshots:
vary@1.1.2: {}
vite-node@3.0.9(@types/node@22.13.10)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0):
vite-node@3.0.9(@types/node@22.13.13)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0):
dependencies:
cac: 6.7.14
debug: 4.4.0
es-module-lexer: 1.6.0
pathe: 2.0.3
vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
vite: 6.2.2(@types/node@22.13.13)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
transitivePeerDependencies:
- '@types/node'
- jiti
@ -13416,22 +13464,22 @@ snapshots:
- tsx
- yaml
vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0):
vite@6.2.2(@types/node@22.13.13)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0):
dependencies:
esbuild: 0.25.1
postcss: 8.5.3
rollup: 4.36.0
optionalDependencies:
'@types/node': 22.13.10
'@types/node': 22.13.13
fsevents: 2.3.3
jiti: 2.4.2
tsx: 4.19.3
yaml: 2.7.0
vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.10)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0):
vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.13)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0):
dependencies:
'@vitest/expect': 3.0.9
'@vitest/mocker': 3.0.9(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))
'@vitest/mocker': 3.0.9(vite@6.2.2(@types/node@22.13.13)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))
'@vitest/pretty-format': 3.0.9
'@vitest/runner': 3.0.9
'@vitest/snapshot': 3.0.9
@ -13447,12 +13495,12 @@ snapshots:
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 2.0.0
vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
vite-node: 3.0.9(@types/node@22.13.10)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
vite: 6.2.2(@types/node@22.13.13)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
vite-node: 3.0.9(@types/node@22.13.13)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
'@types/node': 22.13.10
'@types/node': 22.13.13
transitivePeerDependencies:
- jiti
- less

Wyświetl plik

@ -56,3 +56,8 @@ catalog:
# e2b
'@e2b/code-interpreter': ^1.0.2
updateConfig:
ignoreDependencies:
- p-throttle # https://github.com/transitive-bullshit/agentic/issues/686
- eslint