ai 1.1.0 → 2.0.1
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.
- package/LICENSE +10 -24
- package/dist/ai-stream.d.ts +18 -0
- package/dist/ai-stream.js +132 -0
- package/dist/ai-stream.mjs +13 -0
- package/dist/anthropic-stream.d.ts +5 -0
- package/dist/anthropic-stream.js +133 -0
- package/dist/anthropic-stream.mjs +8 -0
- package/dist/chunk-265FSSO4.mjs +91 -0
- package/dist/chunk-2L3ZO4UM.mjs +45 -0
- package/dist/chunk-GT4HKF2X.mjs +33 -0
- package/dist/chunk-JGDC3BXD.mjs +22 -0
- package/dist/chunk-NK2CVBLI.mjs +38 -0
- package/dist/chunk-PEYAHBDF.mjs +43 -0
- package/dist/chunk-TJMME6CL.mjs +24 -0
- package/dist/huggingface-stream.d.ts +5 -0
- package/dist/huggingface-stream.js +121 -0
- package/dist/huggingface-stream.mjs +8 -0
- package/dist/index.d.ts +131 -0
- package/dist/index.js +278 -0
- package/dist/index.mjs +35 -0
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.js +12 -0
- package/dist/index.test.mjs +10 -0
- package/dist/langchain-stream.d.ts +12 -0
- package/dist/langchain-stream.js +102 -0
- package/dist/langchain-stream.mjs +8 -0
- package/dist/openai-stream.d.ts +5 -0
- package/dist/openai-stream.js +144 -0
- package/dist/openai-stream.mjs +8 -0
- package/dist/streaming-text-response.d.ts +17 -0
- package/dist/streaming-text-response.js +75 -0
- package/dist/streaming-text-response.mjs +9 -0
- package/package.json +78 -29
- package/react/dist/chunk-5PP6W52J.mjs +202 -0
- package/react/dist/chunk-6EH3SWMP.mjs +55 -0
- package/react/dist/chunk-PW6HSU2N.mjs +154 -0
- package/react/dist/index.d.ts +3 -0
- package/react/dist/index.js +424 -0
- package/react/dist/index.mjs +12 -0
- package/react/dist/types-f862f74a.d.ts +123 -0
- package/react/dist/use-chat.d.ts +42 -0
- package/react/dist/use-chat.js +276 -0
- package/react/dist/use-chat.mjs +8 -0
- package/react/dist/use-completion.d.ts +47 -0
- package/react/dist/use-completion.js +229 -0
- package/react/dist/use-completion.mjs +8 -0
- package/svelte/dist/chunk-6USBQIV6.mjs +177 -0
- package/svelte/dist/chunk-BQ64GHZ3.mjs +136 -0
- package/svelte/dist/chunk-CENOSGDG.mjs +493 -0
- package/svelte/dist/index.d.ts +4 -0
- package/svelte/dist/index.js +808 -0
- package/svelte/dist/index.mjs +11 -0
- package/svelte/dist/types-f862f74a.d.ts +123 -0
- package/svelte/dist/use-chat.d.ts +39 -0
- package/svelte/dist/use-chat.js +680 -0
- package/svelte/dist/use-chat.mjs +7 -0
- package/svelte/dist/use-completion.d.ts +38 -0
- package/svelte/dist/use-completion.js +640 -0
- package/svelte/dist/use-completion.mjs +7 -0
- package/.npmignore +0 -15
- package/.travis.yml +0 -4
- package/README.md +0 -21
- package/bin/ai.js +0 -22
- package/index.js +0 -37
- package/node_modules/request/.npmignore +0 -2
- package/node_modules/request/.travis.yml +0 -12
- package/node_modules/request/CHANGELOG.md +0 -954
- package/node_modules/request/LICENSE +0 -55
- package/node_modules/request/README.md +0 -421
- package/node_modules/request/index.js +0 -166
- package/node_modules/request/lib/cookies.js +0 -40
- package/node_modules/request/lib/copy.js +0 -8
- package/node_modules/request/lib/debug.js +0 -7
- package/node_modules/request/lib/getSafe.js +0 -34
- package/node_modules/request/lib/optional.js +0 -5
- package/node_modules/request/node_modules/aws-sign2/LICENSE +0 -55
- package/node_modules/request/node_modules/aws-sign2/README.md +0 -4
- package/node_modules/request/node_modules/aws-sign2/index.js +0 -202
- package/node_modules/request/node_modules/aws-sign2/package.json +0 -47
- package/node_modules/request/node_modules/forever-agent/LICENSE +0 -55
- package/node_modules/request/node_modules/forever-agent/README.md +0 -4
- package/node_modules/request/node_modules/forever-agent/index.js +0 -119
- package/node_modules/request/node_modules/forever-agent/package.json +0 -46
- package/node_modules/request/node_modules/form-data/License +0 -19
- package/node_modules/request/node_modules/form-data/Readme.md +0 -175
- package/node_modules/request/node_modules/form-data/lib/form_data.js +0 -351
- package/node_modules/request/node_modules/form-data/node_modules/async/.travis.yml +0 -3
- package/node_modules/request/node_modules/form-data/node_modules/async/LICENSE +0 -19
- package/node_modules/request/node_modules/form-data/node_modules/async/README.md +0 -1646
- package/node_modules/request/node_modules/form-data/node_modules/async/component.json +0 -11
- package/node_modules/request/node_modules/form-data/node_modules/async/lib/async.js +0 -1123
- package/node_modules/request/node_modules/form-data/node_modules/async/package.json +0 -60
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/License +0 -19
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/Readme.md +0 -132
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/lib/combined_stream.js +0 -186
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/.npmignore +0 -2
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/License +0 -19
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Makefile +0 -7
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Readme.md +0 -154
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js +0 -99
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/package.json +0 -42
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/common.js +0 -6
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-http-upload.js +0 -38
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-auto-pause.js +0 -21
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-pause.js +0 -14
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream.js +0 -48
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-handle-source-errors.js +0 -15
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-max-data-size.js +0 -18
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-pipe-resumes.js +0 -13
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-proxy-readable.js +0 -13
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/run.js +0 -7
- package/node_modules/request/node_modules/form-data/node_modules/combined-stream/package.json +0 -61
- package/node_modules/request/node_modules/form-data/node_modules/mime/LICENSE +0 -19
- package/node_modules/request/node_modules/form-data/node_modules/mime/README.md +0 -66
- package/node_modules/request/node_modules/form-data/node_modules/mime/mime.js +0 -114
- package/node_modules/request/node_modules/form-data/node_modules/mime/package.json +0 -59
- package/node_modules/request/node_modules/form-data/node_modules/mime/test.js +0 -84
- package/node_modules/request/node_modules/form-data/node_modules/mime/types/mime.types +0 -1588
- package/node_modules/request/node_modules/form-data/node_modules/mime/types/node.types +0 -77
- package/node_modules/request/node_modules/form-data/package.json +0 -80
- package/node_modules/request/node_modules/hawk/.npmignore +0 -18
- package/node_modules/request/node_modules/hawk/.travis.yml +0 -5
- package/node_modules/request/node_modules/hawk/LICENSE +0 -24
- package/node_modules/request/node_modules/hawk/Makefile +0 -10
- package/node_modules/request/node_modules/hawk/README.md +0 -625
- package/node_modules/request/node_modules/hawk/example/usage.js +0 -78
- package/node_modules/request/node_modules/hawk/images/hawk.png +0 -0
- package/node_modules/request/node_modules/hawk/images/logo.png +0 -0
- package/node_modules/request/node_modules/hawk/index.js +0 -1
- package/node_modules/request/node_modules/hawk/lib/browser.js +0 -507
- package/node_modules/request/node_modules/hawk/lib/client.js +0 -371
- package/node_modules/request/node_modules/hawk/lib/crypto.js +0 -118
- package/node_modules/request/node_modules/hawk/lib/index.js +0 -15
- package/node_modules/request/node_modules/hawk/lib/server.js +0 -523
- package/node_modules/request/node_modules/hawk/lib/utils.js +0 -183
- package/node_modules/request/node_modules/hawk/node_modules/boom/.npmignore +0 -18
- package/node_modules/request/node_modules/hawk/node_modules/boom/.travis.yml +0 -5
- package/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE +0 -24
- package/node_modules/request/node_modules/hawk/node_modules/boom/Makefile +0 -11
- package/node_modules/request/node_modules/hawk/node_modules/boom/README.md +0 -6
- package/node_modules/request/node_modules/hawk/node_modules/boom/images/boom.png +0 -0
- package/node_modules/request/node_modules/hawk/node_modules/boom/index.js +0 -1
- package/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js +0 -207
- package/node_modules/request/node_modules/hawk/node_modules/boom/package.json +0 -64
- package/node_modules/request/node_modules/hawk/node_modules/boom/test/index.js +0 -245
- package/node_modules/request/node_modules/hawk/node_modules/cryptiles/.npmignore +0 -18
- package/node_modules/request/node_modules/hawk/node_modules/cryptiles/.travis.yml +0 -5
- package/node_modules/request/node_modules/hawk/node_modules/cryptiles/LICENSE +0 -24
- package/node_modules/request/node_modules/hawk/node_modules/cryptiles/Makefile +0 -11
- package/node_modules/request/node_modules/hawk/node_modules/cryptiles/README.md +0 -6
- package/node_modules/request/node_modules/hawk/node_modules/cryptiles/index.js +0 -1
- package/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js +0 -68
- package/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json +0 -65
- package/node_modules/request/node_modules/hawk/node_modules/cryptiles/test/index.js +0 -101
- package/node_modules/request/node_modules/hawk/node_modules/hoek/.npmignore +0 -18
- package/node_modules/request/node_modules/hawk/node_modules/hoek/.travis.yml +0 -5
- package/node_modules/request/node_modules/hawk/node_modules/hoek/LICENSE +0 -33
- package/node_modules/request/node_modules/hawk/node_modules/hoek/Makefile +0 -10
- package/node_modules/request/node_modules/hawk/node_modules/hoek/README.md +0 -436
- package/node_modules/request/node_modules/hawk/node_modules/hoek/images/hoek.png +0 -0
- package/node_modules/request/node_modules/hawk/node_modules/hoek/index.js +0 -1
- package/node_modules/request/node_modules/hawk/node_modules/hoek/lib/escape.js +0 -132
- package/node_modules/request/node_modules/hawk/node_modules/hoek/lib/index.js +0 -585
- package/node_modules/request/node_modules/hawk/node_modules/hoek/package.json +0 -70
- package/node_modules/request/node_modules/hawk/node_modules/hoek/test/escaper.js +0 -86
- package/node_modules/request/node_modules/hawk/node_modules/hoek/test/index.js +0 -1078
- package/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test1.js +0 -1
- package/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test2.js +0 -1
- package/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test3.js +0 -1
- package/node_modules/request/node_modules/hawk/node_modules/sntp/.npmignore +0 -18
- package/node_modules/request/node_modules/hawk/node_modules/sntp/.travis.yml +0 -5
- package/node_modules/request/node_modules/hawk/node_modules/sntp/LICENSE +0 -24
- package/node_modules/request/node_modules/hawk/node_modules/sntp/Makefile +0 -11
- package/node_modules/request/node_modules/hawk/node_modules/sntp/README.md +0 -68
- package/node_modules/request/node_modules/hawk/node_modules/sntp/examples/offset.js +0 -16
- package/node_modules/request/node_modules/hawk/node_modules/sntp/examples/time.js +0 -25
- package/node_modules/request/node_modules/hawk/node_modules/sntp/index.js +0 -1
- package/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js +0 -409
- package/node_modules/request/node_modules/hawk/node_modules/sntp/package.json +0 -65
- package/node_modules/request/node_modules/hawk/node_modules/sntp/test/index.js +0 -359
- package/node_modules/request/node_modules/hawk/package.json +0 -70
- package/node_modules/request/node_modules/hawk/test/browser.js +0 -817
- package/node_modules/request/node_modules/hawk/test/client.js +0 -206
- package/node_modules/request/node_modules/hawk/test/crypto.js +0 -86
- package/node_modules/request/node_modules/hawk/test/index.js +0 -316
- package/node_modules/request/node_modules/hawk/test/message.js +0 -246
- package/node_modules/request/node_modules/hawk/test/readme.js +0 -98
- package/node_modules/request/node_modules/hawk/test/server.js +0 -686
- package/node_modules/request/node_modules/hawk/test/uri.js +0 -456
- package/node_modules/request/node_modules/hawk/test/utils.js +0 -120
- package/node_modules/request/node_modules/http-signature/.dir-locals.el +0 -6
- package/node_modules/request/node_modules/http-signature/.npmignore +0 -7
- package/node_modules/request/node_modules/http-signature/LICENSE +0 -18
- package/node_modules/request/node_modules/http-signature/README.md +0 -75
- package/node_modules/request/node_modules/http-signature/http_signing.md +0 -296
- package/node_modules/request/node_modules/http-signature/lib/index.js +0 -25
- package/node_modules/request/node_modules/http-signature/lib/parser.js +0 -304
- package/node_modules/request/node_modules/http-signature/lib/signer.js +0 -179
- package/node_modules/request/node_modules/http-signature/lib/util.js +0 -249
- package/node_modules/request/node_modules/http-signature/lib/verify.js +0 -42
- package/node_modules/request/node_modules/http-signature/node_modules/asn1/.npmignore +0 -2
- package/node_modules/request/node_modules/http-signature/node_modules/asn1/LICENSE +0 -19
- package/node_modules/request/node_modules/http-signature/node_modules/asn1/README.md +0 -50
- package/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/errors.js +0 -13
- package/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/index.js +0 -27
- package/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/reader.js +0 -267
- package/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/types.js +0 -36
- package/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/writer.js +0 -317
- package/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/index.js +0 -20
- package/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json +0 -63
- package/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/reader.test.js +0 -172
- package/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/writer.test.js +0 -296
- package/node_modules/request/node_modules/http-signature/node_modules/assert-plus/README.md +0 -126
- package/node_modules/request/node_modules/http-signature/node_modules/assert-plus/assert.js +0 -196
- package/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json +0 -38
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/CHANGELOG +0 -71
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/LICENSE +0 -24
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/README +0 -82
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/README.old +0 -298
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/ctf.js +0 -245
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/ctio.js +0 -1485
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/ctype.js +0 -944
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/man/man3ctype/ctio.3ctype +0 -241
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/package.json +0 -36
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsl.conf +0 -129
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsstyle +0 -839
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/float.json +0 -13
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/int.json +0 -13
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/psinfo.json +0 -104
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/struct.json +0 -19
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.fail.js +0 -39
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.float.js +0 -14
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.int.js +0 -14
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.psinfo.js +0 -17
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.struct.js +0 -18
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.typedef.js +0 -15
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/typedef.json +0 -14
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/float/tst.rfloat.js +0 -767
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/float/tst.wfloat.js +0 -753
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.64.js +0 -638
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.rint.js +0 -101
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.wbounds.js +0 -53
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.wint.js +0 -92
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.64.js +0 -451
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.roundtrip.js +0 -81
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.ruint.js +0 -95
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.wuint.js +0 -156
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.basicr.js +0 -50
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.basicw.js +0 -44
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.char.js +0 -42
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.endian.js +0 -45
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.oldwrite.js +0 -28
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.readSize.js +0 -128
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.structw.js +0 -28
- package/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.writeStruct.js +0 -31
- package/node_modules/request/node_modules/http-signature/package.json +0 -54
- package/node_modules/request/node_modules/json-stringify-safe/LICENSE +0 -27
- package/node_modules/request/node_modules/json-stringify-safe/README.md +0 -49
- package/node_modules/request/node_modules/json-stringify-safe/package.json +0 -51
- package/node_modules/request/node_modules/json-stringify-safe/stringify.js +0 -39
- package/node_modules/request/node_modules/json-stringify-safe/test.js +0 -128
- package/node_modules/request/node_modules/mime-types/.npmignore +0 -14
- package/node_modules/request/node_modules/mime-types/.travis.yml +0 -12
- package/node_modules/request/node_modules/mime-types/LICENSE +0 -22
- package/node_modules/request/node_modules/mime-types/Makefile +0 -9
- package/node_modules/request/node_modules/mime-types/README.md +0 -101
- package/node_modules/request/node_modules/mime-types/SOURCES.md +0 -17
- package/node_modules/request/node_modules/mime-types/component.json +0 -16
- package/node_modules/request/node_modules/mime-types/lib/custom.json +0 -27
- package/node_modules/request/node_modules/mime-types/lib/index.js +0 -75
- package/node_modules/request/node_modules/mime-types/lib/mime.json +0 -3317
- package/node_modules/request/node_modules/mime-types/lib/node.json +0 -55
- package/node_modules/request/node_modules/mime-types/package.json +0 -69
- package/node_modules/request/node_modules/node-uuid/.npmignore +0 -2
- package/node_modules/request/node_modules/node-uuid/LICENSE.md +0 -2
- package/node_modules/request/node_modules/node-uuid/README.md +0 -207
- package/node_modules/request/node_modules/node-uuid/benchmark/README.md +0 -53
- package/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu +0 -174
- package/node_modules/request/node_modules/node-uuid/benchmark/bench.sh +0 -34
- package/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c +0 -34
- package/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js +0 -84
- package/node_modules/request/node_modules/node-uuid/component.json +0 -18
- package/node_modules/request/node_modules/node-uuid/package.json +0 -54
- package/node_modules/request/node_modules/node-uuid/test/compare_v1.js +0 -63
- package/node_modules/request/node_modules/node-uuid/test/test.html +0 -17
- package/node_modules/request/node_modules/node-uuid/test/test.js +0 -228
- package/node_modules/request/node_modules/node-uuid/uuid.js +0 -245
- package/node_modules/request/node_modules/oauth-sign/LICENSE +0 -55
- package/node_modules/request/node_modules/oauth-sign/README.md +0 -4
- package/node_modules/request/node_modules/oauth-sign/index.js +0 -43
- package/node_modules/request/node_modules/oauth-sign/package.json +0 -49
- package/node_modules/request/node_modules/oauth-sign/test.js +0 -49
- package/node_modules/request/node_modules/qs/.jshintignore +0 -1
- package/node_modules/request/node_modules/qs/.jshintrc +0 -10
- package/node_modules/request/node_modules/qs/.npmignore +0 -18
- package/node_modules/request/node_modules/qs/.travis.yml +0 -4
- package/node_modules/request/node_modules/qs/LICENSE +0 -28
- package/node_modules/request/node_modules/qs/Makefile +0 -8
- package/node_modules/request/node_modules/qs/Readme.md +0 -120
- package/node_modules/request/node_modules/qs/index.js +0 -1
- package/node_modules/request/node_modules/qs/lib/index.js +0 -15
- package/node_modules/request/node_modules/qs/lib/parse.js +0 -151
- package/node_modules/request/node_modules/qs/lib/stringify.js +0 -52
- package/node_modules/request/node_modules/qs/lib/utils.js +0 -131
- package/node_modules/request/node_modules/qs/package.json +0 -61
- package/node_modules/request/node_modules/qs/test/parse.js +0 -236
- package/node_modules/request/node_modules/qs/test/stringify.js +0 -123
- package/node_modules/request/node_modules/stringstream/.npmignore +0 -15
- package/node_modules/request/node_modules/stringstream/.travis.yml +0 -4
- package/node_modules/request/node_modules/stringstream/LICENSE.txt +0 -4
- package/node_modules/request/node_modules/stringstream/README.md +0 -38
- package/node_modules/request/node_modules/stringstream/example.js +0 -27
- package/node_modules/request/node_modules/stringstream/package.json +0 -48
- package/node_modules/request/node_modules/stringstream/stringstream.js +0 -102
- package/node_modules/request/node_modules/tough-cookie/.jshintrc +0 -70
- package/node_modules/request/node_modules/tough-cookie/.npmignore +0 -3
- package/node_modules/request/node_modules/tough-cookie/.travis.yml +0 -8
- package/node_modules/request/node_modules/tough-cookie/LICENSE +0 -78
- package/node_modules/request/node_modules/tough-cookie/README.md +0 -412
- package/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js +0 -239
- package/node_modules/request/node_modules/tough-cookie/lib/cookie.js +0 -1107
- package/node_modules/request/node_modules/tough-cookie/lib/memstore.js +0 -123
- package/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js +0 -69
- package/node_modules/request/node_modules/tough-cookie/lib/store.js +0 -37
- package/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt +0 -20
- package/node_modules/request/node_modules/tough-cookie/node_modules/punycode/README.md +0 -176
- package/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json +0 -87
- package/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js +0 -528
- package/node_modules/request/node_modules/tough-cookie/package.json +0 -67
- package/node_modules/request/node_modules/tough-cookie/public-suffix.txt +0 -5229
- package/node_modules/request/node_modules/tough-cookie/test.js +0 -1625
- package/node_modules/request/node_modules/tunnel-agent/.jshintrc +0 -5
- package/node_modules/request/node_modules/tunnel-agent/LICENSE +0 -55
- package/node_modules/request/node_modules/tunnel-agent/README.md +0 -4
- package/node_modules/request/node_modules/tunnel-agent/index.js +0 -236
- package/node_modules/request/node_modules/tunnel-agent/package.json +0 -46
- package/node_modules/request/package.json +0 -77
- package/node_modules/request/request.js +0 -1428
- package/test/fixtures/github-response.json +0 -1367
- package/test/index.js +0 -55
@@ -0,0 +1,102 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
+
var __export = (target, all) => {
|
7
|
+
for (var name in all)
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
+
};
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
+
for (let key of __getOwnPropNames(from))
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
+
}
|
16
|
+
return to;
|
17
|
+
};
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
+
var __async = (__this, __arguments, generator) => {
|
20
|
+
return new Promise((resolve, reject) => {
|
21
|
+
var fulfilled = (value) => {
|
22
|
+
try {
|
23
|
+
step(generator.next(value));
|
24
|
+
} catch (e) {
|
25
|
+
reject(e);
|
26
|
+
}
|
27
|
+
};
|
28
|
+
var rejected = (value) => {
|
29
|
+
try {
|
30
|
+
step(generator.throw(value));
|
31
|
+
} catch (e) {
|
32
|
+
reject(e);
|
33
|
+
}
|
34
|
+
};
|
35
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
36
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
37
|
+
});
|
38
|
+
};
|
39
|
+
|
40
|
+
// streams/langchain-stream.ts
|
41
|
+
var langchain_stream_exports = {};
|
42
|
+
__export(langchain_stream_exports, {
|
43
|
+
LangChainStream: () => LangChainStream
|
44
|
+
});
|
45
|
+
module.exports = __toCommonJS(langchain_stream_exports);
|
46
|
+
|
47
|
+
// streams/ai-stream.ts
|
48
|
+
var import_eventsource_parser = require("eventsource-parser");
|
49
|
+
function createCallbacksTransformer(callbacks) {
|
50
|
+
const encoder = new TextEncoder();
|
51
|
+
let fullResponse = "";
|
52
|
+
const { onStart, onToken, onCompletion } = callbacks || {};
|
53
|
+
return new TransformStream({
|
54
|
+
start() {
|
55
|
+
return __async(this, null, function* () {
|
56
|
+
if (onStart)
|
57
|
+
yield onStart();
|
58
|
+
});
|
59
|
+
},
|
60
|
+
transform(message, controller) {
|
61
|
+
return __async(this, null, function* () {
|
62
|
+
controller.enqueue(encoder.encode(message));
|
63
|
+
if (onToken)
|
64
|
+
yield onToken(message);
|
65
|
+
if (onCompletion)
|
66
|
+
fullResponse += message;
|
67
|
+
});
|
68
|
+
},
|
69
|
+
flush() {
|
70
|
+
return __async(this, null, function* () {
|
71
|
+
yield onCompletion == null ? void 0 : onCompletion(fullResponse);
|
72
|
+
});
|
73
|
+
}
|
74
|
+
});
|
75
|
+
}
|
76
|
+
|
77
|
+
// streams/langchain-stream.ts
|
78
|
+
function LangChainStream(callbacks) {
|
79
|
+
const stream = new TransformStream();
|
80
|
+
const writer = stream.writable.getWriter();
|
81
|
+
return {
|
82
|
+
stream: stream.readable.pipeThrough(createCallbacksTransformer(callbacks)),
|
83
|
+
handlers: {
|
84
|
+
handleLLMNewToken: (token) => __async(this, null, function* () {
|
85
|
+
yield writer.ready;
|
86
|
+
yield writer.write(token);
|
87
|
+
}),
|
88
|
+
handleChainEnd: () => __async(this, null, function* () {
|
89
|
+
yield writer.ready;
|
90
|
+
yield writer.close();
|
91
|
+
}),
|
92
|
+
handleLLMError: (e) => __async(this, null, function* () {
|
93
|
+
yield writer.ready;
|
94
|
+
yield writer.abort(e);
|
95
|
+
})
|
96
|
+
}
|
97
|
+
};
|
98
|
+
}
|
99
|
+
// Annotate the CommonJS export names for ESM import in node:
|
100
|
+
0 && (module.exports = {
|
101
|
+
LangChainStream
|
102
|
+
});
|
@@ -0,0 +1,144 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
+
var __export = (target, all) => {
|
7
|
+
for (var name in all)
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
+
};
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
+
for (let key of __getOwnPropNames(from))
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
+
}
|
16
|
+
return to;
|
17
|
+
};
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
+
var __async = (__this, __arguments, generator) => {
|
20
|
+
return new Promise((resolve, reject) => {
|
21
|
+
var fulfilled = (value) => {
|
22
|
+
try {
|
23
|
+
step(generator.next(value));
|
24
|
+
} catch (e) {
|
25
|
+
reject(e);
|
26
|
+
}
|
27
|
+
};
|
28
|
+
var rejected = (value) => {
|
29
|
+
try {
|
30
|
+
step(generator.throw(value));
|
31
|
+
} catch (e) {
|
32
|
+
reject(e);
|
33
|
+
}
|
34
|
+
};
|
35
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
36
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
37
|
+
});
|
38
|
+
};
|
39
|
+
|
40
|
+
// streams/openai-stream.ts
|
41
|
+
var openai_stream_exports = {};
|
42
|
+
__export(openai_stream_exports, {
|
43
|
+
OpenAIStream: () => OpenAIStream
|
44
|
+
});
|
45
|
+
module.exports = __toCommonJS(openai_stream_exports);
|
46
|
+
|
47
|
+
// streams/ai-stream.ts
|
48
|
+
var import_eventsource_parser = require("eventsource-parser");
|
49
|
+
function createEventStreamTransformer(customParser) {
|
50
|
+
const decoder = new TextDecoder();
|
51
|
+
let parser;
|
52
|
+
return new TransformStream({
|
53
|
+
start(controller) {
|
54
|
+
return __async(this, null, function* () {
|
55
|
+
function onParse(event) {
|
56
|
+
if (event.type === "event") {
|
57
|
+
const data = event.data;
|
58
|
+
if (data === "[DONE]") {
|
59
|
+
controller.terminate();
|
60
|
+
return;
|
61
|
+
}
|
62
|
+
const message = customParser(data);
|
63
|
+
if (message)
|
64
|
+
controller.enqueue(message);
|
65
|
+
}
|
66
|
+
}
|
67
|
+
parser = (0, import_eventsource_parser.createParser)(onParse);
|
68
|
+
});
|
69
|
+
},
|
70
|
+
transform(chunk) {
|
71
|
+
parser.feed(decoder.decode(chunk));
|
72
|
+
}
|
73
|
+
});
|
74
|
+
}
|
75
|
+
function createCallbacksTransformer(callbacks) {
|
76
|
+
const encoder = new TextEncoder();
|
77
|
+
let fullResponse = "";
|
78
|
+
const { onStart, onToken, onCompletion } = callbacks || {};
|
79
|
+
return new TransformStream({
|
80
|
+
start() {
|
81
|
+
return __async(this, null, function* () {
|
82
|
+
if (onStart)
|
83
|
+
yield onStart();
|
84
|
+
});
|
85
|
+
},
|
86
|
+
transform(message, controller) {
|
87
|
+
return __async(this, null, function* () {
|
88
|
+
controller.enqueue(encoder.encode(message));
|
89
|
+
if (onToken)
|
90
|
+
yield onToken(message);
|
91
|
+
if (onCompletion)
|
92
|
+
fullResponse += message;
|
93
|
+
});
|
94
|
+
},
|
95
|
+
flush() {
|
96
|
+
return __async(this, null, function* () {
|
97
|
+
yield onCompletion == null ? void 0 : onCompletion(fullResponse);
|
98
|
+
});
|
99
|
+
}
|
100
|
+
});
|
101
|
+
}
|
102
|
+
function trimStartOfStreamHelper() {
|
103
|
+
let start = true;
|
104
|
+
return (text) => {
|
105
|
+
if (start)
|
106
|
+
text = text.trimStart();
|
107
|
+
if (text)
|
108
|
+
start = false;
|
109
|
+
return text;
|
110
|
+
};
|
111
|
+
}
|
112
|
+
function AIStream(res, customParser, callbacks) {
|
113
|
+
if (!res.ok) {
|
114
|
+
throw new Error(
|
115
|
+
`Failed to convert the response to stream. Received status code: ${res.status}.`
|
116
|
+
);
|
117
|
+
}
|
118
|
+
const stream = res.body || new ReadableStream({
|
119
|
+
start(controller) {
|
120
|
+
controller.close();
|
121
|
+
}
|
122
|
+
});
|
123
|
+
return stream.pipeThrough(createEventStreamTransformer(customParser)).pipeThrough(createCallbacksTransformer(callbacks));
|
124
|
+
}
|
125
|
+
|
126
|
+
// streams/openai-stream.ts
|
127
|
+
function parseOpenAIStream() {
|
128
|
+
const trimStartOfStream = trimStartOfStreamHelper();
|
129
|
+
return (data) => {
|
130
|
+
var _a, _b, _c, _d, _e;
|
131
|
+
const json = JSON.parse(data);
|
132
|
+
const text = trimStartOfStream(
|
133
|
+
(_e = (_d = (_b = (_a = json.choices[0]) == null ? void 0 : _a.delta) == null ? void 0 : _b.content) != null ? _d : (_c = json.choices[0]) == null ? void 0 : _c.text) != null ? _e : ""
|
134
|
+
);
|
135
|
+
return text;
|
136
|
+
};
|
137
|
+
}
|
138
|
+
function OpenAIStream(res, cb) {
|
139
|
+
return AIStream(res, parseOpenAIStream(), cb);
|
140
|
+
}
|
141
|
+
// Annotate the CommonJS export names for ESM import in node:
|
142
|
+
0 && (module.exports = {
|
143
|
+
OpenAIStream
|
144
|
+
});
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { ServerResponse } from 'node:http';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* A utility class for streaming text responses.
|
5
|
+
*/
|
6
|
+
declare class StreamingTextResponse extends Response {
|
7
|
+
constructor(res: ReadableStream, init?: ResponseInit);
|
8
|
+
}
|
9
|
+
/**
|
10
|
+
* A utility function to stream a ReadableStream to a Node.js response-like object.
|
11
|
+
*/
|
12
|
+
declare function streamToResponse(res: ReadableStream, response: ServerResponse, init?: {
|
13
|
+
headers?: Record<string, string>;
|
14
|
+
status?: number;
|
15
|
+
}): void;
|
16
|
+
|
17
|
+
export { StreamingTextResponse, streamToResponse };
|
@@ -0,0 +1,75 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __defProps = Object.defineProperties;
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
9
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
10
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
11
|
+
var __spreadValues = (a, b) => {
|
12
|
+
for (var prop in b || (b = {}))
|
13
|
+
if (__hasOwnProp.call(b, prop))
|
14
|
+
__defNormalProp(a, prop, b[prop]);
|
15
|
+
if (__getOwnPropSymbols)
|
16
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
17
|
+
if (__propIsEnum.call(b, prop))
|
18
|
+
__defNormalProp(a, prop, b[prop]);
|
19
|
+
}
|
20
|
+
return a;
|
21
|
+
};
|
22
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
23
|
+
var __export = (target, all) => {
|
24
|
+
for (var name in all)
|
25
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
26
|
+
};
|
27
|
+
var __copyProps = (to, from, except, desc) => {
|
28
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
29
|
+
for (let key of __getOwnPropNames(from))
|
30
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
31
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
32
|
+
}
|
33
|
+
return to;
|
34
|
+
};
|
35
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
36
|
+
|
37
|
+
// streams/streaming-text-response.ts
|
38
|
+
var streaming_text_response_exports = {};
|
39
|
+
__export(streaming_text_response_exports, {
|
40
|
+
StreamingTextResponse: () => StreamingTextResponse,
|
41
|
+
streamToResponse: () => streamToResponse
|
42
|
+
});
|
43
|
+
module.exports = __toCommonJS(streaming_text_response_exports);
|
44
|
+
var StreamingTextResponse = class extends Response {
|
45
|
+
constructor(res, init) {
|
46
|
+
super(res, __spreadProps(__spreadValues({}, init), {
|
47
|
+
status: 200,
|
48
|
+
headers: __spreadValues({
|
49
|
+
"Content-Type": "text/plain; charset=utf-8"
|
50
|
+
}, init == null ? void 0 : init.headers)
|
51
|
+
}));
|
52
|
+
}
|
53
|
+
};
|
54
|
+
function streamToResponse(res, response, init) {
|
55
|
+
response.writeHead((init == null ? void 0 : init.status) || 200, __spreadValues({
|
56
|
+
"Content-Type": "text/plain; charset=utf-8"
|
57
|
+
}, init == null ? void 0 : init.headers));
|
58
|
+
const reader = res.getReader();
|
59
|
+
function read() {
|
60
|
+
reader.read().then(({ done, value }) => {
|
61
|
+
if (done) {
|
62
|
+
response.end();
|
63
|
+
return;
|
64
|
+
}
|
65
|
+
response.write(value);
|
66
|
+
read();
|
67
|
+
});
|
68
|
+
}
|
69
|
+
read();
|
70
|
+
}
|
71
|
+
// Annotate the CommonJS export names for ESM import in node:
|
72
|
+
0 && (module.exports = {
|
73
|
+
StreamingTextResponse,
|
74
|
+
streamToResponse
|
75
|
+
});
|
package/package.json
CHANGED
@@ -1,37 +1,86 @@
|
|
1
1
|
{
|
2
2
|
"name": "ai",
|
3
|
-
"version": "
|
4
|
-
"
|
5
|
-
"
|
6
|
-
"
|
7
|
-
"
|
3
|
+
"version": "2.0.1",
|
4
|
+
"license": "Apache-2.0",
|
5
|
+
"sideEffects": false,
|
6
|
+
"main": "./dist/index.js",
|
7
|
+
"module": "./dist/index.mjs",
|
8
|
+
"types": "./dist/index.d.ts",
|
9
|
+
"files": [
|
10
|
+
"dist/**/*",
|
11
|
+
"react/dist/**/*",
|
12
|
+
"svelte/dist/**/*"
|
13
|
+
],
|
14
|
+
"exports": {
|
15
|
+
"./package.json": "./package.json",
|
16
|
+
".": {
|
17
|
+
"types": "./dist/index.d.ts",
|
18
|
+
"import": "./dist/index.mjs",
|
19
|
+
"module": "./dist/index.mjs",
|
20
|
+
"require": "./dist/index.js"
|
21
|
+
},
|
22
|
+
"./react": {
|
23
|
+
"types": "./react/dist/index.d.ts",
|
24
|
+
"import": "./react/dist/index.mjs",
|
25
|
+
"module": "./react/dist/index.mjs",
|
26
|
+
"require": "./react/dist/index.js"
|
27
|
+
},
|
28
|
+
"./svelte": {
|
29
|
+
"types": "./svelte/dist/index.d.ts",
|
30
|
+
"import": "./svelte/dist/index.mjs",
|
31
|
+
"module": "./svelte/dist/index.mjs",
|
32
|
+
"require": "./svelte/dist/index.js"
|
33
|
+
}
|
34
|
+
},
|
35
|
+
"jest": {
|
36
|
+
"preset": "ts-jest",
|
37
|
+
"testEnvironment": "node"
|
38
|
+
},
|
8
39
|
"dependencies": {
|
9
|
-
"
|
40
|
+
"eventsource-parser": "1.0.0",
|
41
|
+
"nanoid": "^3.3.6",
|
42
|
+
"sswr": "^1.10.0",
|
43
|
+
"swr": "2.1.5"
|
10
44
|
},
|
11
45
|
"devDependencies": {
|
12
|
-
"
|
13
|
-
"
|
46
|
+
"@edge-runtime/jest-environment": "1.1.0-beta.31",
|
47
|
+
"@types/jest": "29.2.0",
|
48
|
+
"@types/node": "^17.0.12",
|
49
|
+
"@types/react": "^18.2.0",
|
50
|
+
"@types/react-dom": "^18.2.0",
|
51
|
+
"eslint": "^7.32.0",
|
52
|
+
"jest": "29.2.1",
|
53
|
+
"ts-jest": "29.0.3",
|
54
|
+
"tsup": "^6.7.0",
|
55
|
+
"typescript": "^4.5.3",
|
56
|
+
"@vercel/ai-tsconfig": "0.0.0",
|
57
|
+
"eslint-config-vercel-ai": "0.0.0"
|
58
|
+
},
|
59
|
+
"peerDependencies": {
|
60
|
+
"react": "^18.0.0",
|
61
|
+
"svelte": "^3.29.0"
|
62
|
+
},
|
63
|
+
"peerDependenciesMeta": {
|
64
|
+
"react": {
|
65
|
+
"optional": true
|
66
|
+
},
|
67
|
+
"svelte": {
|
68
|
+
"optional": true
|
69
|
+
}
|
70
|
+
},
|
71
|
+
"engines": {
|
72
|
+
"node": ">=14.6"
|
73
|
+
},
|
74
|
+
"publishConfig": {
|
75
|
+
"access": "public"
|
14
76
|
},
|
15
|
-
"bundleDependencies": [
|
16
|
-
"request"
|
17
|
-
],
|
18
77
|
"scripts": {
|
19
|
-
"
|
20
|
-
|
21
|
-
|
22
|
-
"
|
23
|
-
"
|
24
|
-
|
25
|
-
|
26
|
-
"keywords": [
|
27
|
-
"support,",
|
28
|
-
"github,",
|
29
|
-
"issues,",
|
30
|
-
"abandoned"
|
31
|
-
],
|
32
|
-
"author": "Robert Kowalski <rok@kowalski.gd>",
|
33
|
-
"license": "BSD-2-Clause",
|
34
|
-
"bugs": {
|
35
|
-
"url": "https://github.com/robertkowalski/ai/issues"
|
78
|
+
"build": "tsup",
|
79
|
+
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist && rm -rf react/dist && rm -rf svelte/dist",
|
80
|
+
"dev": "tsup --watch",
|
81
|
+
"lint": "eslint \"./**/*.ts*\"",
|
82
|
+
"type-check": "tsc --noEmit",
|
83
|
+
"prettier-check": "prettier --check \"./**/*.ts*\"",
|
84
|
+
"test": "jest --env @edge-runtime/jest-environment .test.ts && jest --env node .test.ts"
|
36
85
|
}
|
37
|
-
}
|
86
|
+
}
|
@@ -0,0 +1,202 @@
|
|
1
|
+
'use client'
|
2
|
+
import {
|
3
|
+
__async,
|
4
|
+
__spreadValues,
|
5
|
+
decodeAIStreamChunk,
|
6
|
+
nanoid
|
7
|
+
} from "./chunk-6EH3SWMP.mjs";
|
8
|
+
|
9
|
+
// react/use-chat.ts
|
10
|
+
import { useCallback, useId, useRef, useEffect, useState } from "react";
|
11
|
+
import useSWRMutation from "swr/mutation";
|
12
|
+
import useSWR from "swr";
|
13
|
+
function useChat({
|
14
|
+
api = "/api/chat",
|
15
|
+
id,
|
16
|
+
initialMessages = [],
|
17
|
+
initialInput = "",
|
18
|
+
sendExtraMessageFields,
|
19
|
+
onResponse,
|
20
|
+
onFinish,
|
21
|
+
onError,
|
22
|
+
headers,
|
23
|
+
body
|
24
|
+
} = {}) {
|
25
|
+
const hookId = useId();
|
26
|
+
const chatId = id || hookId;
|
27
|
+
const { data, mutate } = useSWR([api, chatId], null, {
|
28
|
+
fallbackData: initialMessages
|
29
|
+
});
|
30
|
+
const messages = data;
|
31
|
+
const messagesRef = useRef(messages);
|
32
|
+
useEffect(() => {
|
33
|
+
messagesRef.current = messages;
|
34
|
+
}, [messages]);
|
35
|
+
const abortControllerRef = useRef(null);
|
36
|
+
const extraMetadataRef = useRef({
|
37
|
+
headers,
|
38
|
+
body
|
39
|
+
});
|
40
|
+
useEffect(() => {
|
41
|
+
extraMetadataRef.current = {
|
42
|
+
headers,
|
43
|
+
body
|
44
|
+
};
|
45
|
+
}, [headers, body]);
|
46
|
+
const { error, trigger, isMutating } = useSWRMutation(
|
47
|
+
[api, chatId],
|
48
|
+
(_0, _1) => __async(this, [_0, _1], function* (_, { arg: messagesSnapshot }) {
|
49
|
+
try {
|
50
|
+
const abortController = new AbortController();
|
51
|
+
abortControllerRef.current = abortController;
|
52
|
+
const previousMessages = messagesRef.current;
|
53
|
+
mutate(messagesSnapshot, false);
|
54
|
+
const res = yield fetch(api, {
|
55
|
+
method: "POST",
|
56
|
+
body: JSON.stringify(__spreadValues({
|
57
|
+
messages: sendExtraMessageFields ? messagesSnapshot : messagesSnapshot.map(({ role, content }) => ({
|
58
|
+
role,
|
59
|
+
content
|
60
|
+
}))
|
61
|
+
}, extraMetadataRef.current.body)),
|
62
|
+
headers: extraMetadataRef.current.headers || {},
|
63
|
+
signal: abortController.signal
|
64
|
+
}).catch((err) => {
|
65
|
+
mutate(previousMessages, false);
|
66
|
+
throw err;
|
67
|
+
});
|
68
|
+
if (onResponse) {
|
69
|
+
try {
|
70
|
+
yield onResponse(res);
|
71
|
+
} catch (err) {
|
72
|
+
throw err;
|
73
|
+
}
|
74
|
+
}
|
75
|
+
if (!res.ok) {
|
76
|
+
mutate(previousMessages, false);
|
77
|
+
throw new Error(
|
78
|
+
(yield res.text()) || "Failed to fetch the chat response."
|
79
|
+
);
|
80
|
+
}
|
81
|
+
if (!res.body) {
|
82
|
+
throw new Error("The response body is empty.");
|
83
|
+
}
|
84
|
+
let result = "";
|
85
|
+
const createdAt = /* @__PURE__ */ new Date();
|
86
|
+
const replyId = nanoid();
|
87
|
+
const reader = res.body.getReader();
|
88
|
+
while (true) {
|
89
|
+
const { done, value } = yield reader.read();
|
90
|
+
if (done) {
|
91
|
+
break;
|
92
|
+
}
|
93
|
+
result += decodeAIStreamChunk(value);
|
94
|
+
mutate(
|
95
|
+
[
|
96
|
+
...messagesSnapshot,
|
97
|
+
{
|
98
|
+
id: replyId,
|
99
|
+
createdAt,
|
100
|
+
content: result,
|
101
|
+
role: "assistant"
|
102
|
+
}
|
103
|
+
],
|
104
|
+
false
|
105
|
+
);
|
106
|
+
if (abortControllerRef.current === null) {
|
107
|
+
reader.cancel();
|
108
|
+
break;
|
109
|
+
}
|
110
|
+
}
|
111
|
+
if (onFinish) {
|
112
|
+
onFinish({
|
113
|
+
id: replyId,
|
114
|
+
createdAt,
|
115
|
+
content: result,
|
116
|
+
role: "assistant"
|
117
|
+
});
|
118
|
+
}
|
119
|
+
abortControllerRef.current = null;
|
120
|
+
return result;
|
121
|
+
} catch (err) {
|
122
|
+
if (err.name === "AbortError") {
|
123
|
+
abortControllerRef.current = null;
|
124
|
+
return null;
|
125
|
+
}
|
126
|
+
if (onError && err instanceof Error) {
|
127
|
+
onError(err);
|
128
|
+
}
|
129
|
+
throw err;
|
130
|
+
}
|
131
|
+
}),
|
132
|
+
{
|
133
|
+
populateCache: false,
|
134
|
+
revalidate: false
|
135
|
+
}
|
136
|
+
);
|
137
|
+
const append = useCallback(
|
138
|
+
(message) => __async(this, null, function* () {
|
139
|
+
if (!message.id) {
|
140
|
+
message.id = nanoid();
|
141
|
+
}
|
142
|
+
return trigger(messagesRef.current.concat(message));
|
143
|
+
}),
|
144
|
+
[trigger]
|
145
|
+
);
|
146
|
+
const reload = useCallback(() => __async(this, null, function* () {
|
147
|
+
if (messagesRef.current.length === 0)
|
148
|
+
return null;
|
149
|
+
const lastMessage = messagesRef.current[messagesRef.current.length - 1];
|
150
|
+
if (lastMessage.role === "assistant") {
|
151
|
+
return trigger(messagesRef.current.slice(0, -1));
|
152
|
+
}
|
153
|
+
return trigger(messagesRef.current);
|
154
|
+
}), [trigger]);
|
155
|
+
const stop = useCallback(() => {
|
156
|
+
if (abortControllerRef.current) {
|
157
|
+
abortControllerRef.current.abort();
|
158
|
+
abortControllerRef.current = null;
|
159
|
+
}
|
160
|
+
}, []);
|
161
|
+
const setMessages = useCallback(
|
162
|
+
(messages2) => {
|
163
|
+
mutate(messages2, false);
|
164
|
+
messagesRef.current = messages2;
|
165
|
+
},
|
166
|
+
[mutate]
|
167
|
+
);
|
168
|
+
const [input, setInput] = useState(initialInput);
|
169
|
+
const handleSubmit = useCallback(
|
170
|
+
(e) => {
|
171
|
+
e.preventDefault();
|
172
|
+
if (!input)
|
173
|
+
return;
|
174
|
+
append({
|
175
|
+
content: input,
|
176
|
+
role: "user"
|
177
|
+
});
|
178
|
+
setInput("");
|
179
|
+
},
|
180
|
+
[input, append]
|
181
|
+
);
|
182
|
+
const handleInputChange = (e) => {
|
183
|
+
setInput(e.target.value);
|
184
|
+
};
|
185
|
+
return {
|
186
|
+
messages,
|
187
|
+
error,
|
188
|
+
append,
|
189
|
+
reload,
|
190
|
+
stop,
|
191
|
+
setMessages,
|
192
|
+
input,
|
193
|
+
setInput,
|
194
|
+
handleInputChange,
|
195
|
+
handleSubmit,
|
196
|
+
isLoading: isMutating
|
197
|
+
};
|
198
|
+
}
|
199
|
+
|
200
|
+
export {
|
201
|
+
useChat
|
202
|
+
};
|