@tanstack/ai-bedrock 0.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/README.md +95 -0
- package/dist/esm/adapters/converse-text.d.ts +93 -0
- package/dist/esm/adapters/converse-text.js +430 -0
- package/dist/esm/adapters/converse-text.js.map +1 -0
- package/dist/esm/adapters/responses-text.d.ts +23 -0
- package/dist/esm/adapters/responses-text.js +22 -0
- package/dist/esm/adapters/responses-text.js.map +1 -0
- package/dist/esm/adapters/text.d.ts +30 -0
- package/dist/esm/adapters/text.js +38 -0
- package/dist/esm/adapters/text.js.map +1 -0
- package/dist/esm/converse/message-converter.d.ts +14 -0
- package/dist/esm/converse/message-converter.js +181 -0
- package/dist/esm/converse/message-converter.js.map +1 -0
- package/dist/esm/converse/provider-options.d.ts +19 -0
- package/dist/esm/converse/stream-processor.d.ts +46 -0
- package/dist/esm/converse/stream-processor.js +203 -0
- package/dist/esm/converse/stream-processor.js.map +1 -0
- package/dist/esm/converse/structured-output.d.ts +8 -0
- package/dist/esm/converse/structured-output.js +20 -0
- package/dist/esm/converse/structured-output.js.map +1 -0
- package/dist/esm/converse/tool-converter.d.ts +11 -0
- package/dist/esm/converse/tool-converter.js +21 -0
- package/dist/esm/converse/tool-converter.js.map +1 -0
- package/dist/esm/index.d.ts +29 -0
- package/dist/esm/index.js +62 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/message-types.d.ts +25 -0
- package/dist/esm/model-catalog.generated.d.ts +127 -0
- package/dist/esm/model-catalog.generated.js +90 -0
- package/dist/esm/model-catalog.generated.js.map +1 -0
- package/dist/esm/model-meta.d.ts +38 -0
- package/dist/esm/model-meta.js +14 -0
- package/dist/esm/model-meta.js.map +1 -0
- package/dist/esm/text/responses-provider-options.d.ts +29 -0
- package/dist/esm/text/text-provider-options.d.ts +36 -0
- package/dist/esm/utils/auth.d.ts +20 -0
- package/dist/esm/utils/auth.js +49 -0
- package/dist/esm/utils/auth.js.map +1 -0
- package/dist/esm/utils/client.d.ts +19 -0
- package/dist/esm/utils/client.js +35 -0
- package/dist/esm/utils/client.js.map +1 -0
- package/dist/esm/utils/index.d.ts +1 -0
- package/dist/esm/utils/openai-sigv4-fetch.d.ts +10 -0
- package/dist/esm/utils/openai-sigv4-fetch.js +35 -0
- package/dist/esm/utils/openai-sigv4-fetch.js.map +1 -0
- package/package.json +67 -0
- package/src/adapters/converse-text.ts +603 -0
- package/src/adapters/responses-text.ts +73 -0
- package/src/adapters/text.ts +97 -0
- package/src/converse/message-converter.ts +268 -0
- package/src/converse/provider-options.ts +19 -0
- package/src/converse/stream-processor.ts +309 -0
- package/src/converse/structured-output.ts +24 -0
- package/src/converse/tool-converter.ts +49 -0
- package/src/index.ts +190 -0
- package/src/message-types.ts +24 -0
- package/src/model-catalog.generated.ts +88 -0
- package/src/model-meta.ts +69 -0
- package/src/text/responses-provider-options.ts +28 -0
- package/src/text/text-provider-options.ts +33 -0
- package/src/utils/auth.ts +80 -0
- package/src/utils/client.ts +62 -0
- package/src/utils/index.ts +7 -0
- package/src/utils/openai-sigv4-fetch.ts +55 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { SignatureV4 } from '@smithy/signature-v4'
|
|
2
|
+
import { Sha256 } from '@aws-crypto/sha256-js'
|
|
3
|
+
import type { HttpRequest } from '@smithy/types'
|
|
4
|
+
import type { ResolvedBedrockAuth } from './auth'
|
|
5
|
+
|
|
6
|
+
type FetchLike = typeof fetch
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Wraps a fetch so each request is SigV4-signed via the AWS signer that ships
|
|
10
|
+
* with `@aws-sdk/client-bedrock-runtime`. Replaces the old aws-sigv4-fetch peer.
|
|
11
|
+
*/
|
|
12
|
+
export function createSigV4Fetch(
|
|
13
|
+
auth: Extract<ResolvedBedrockAuth, { kind: 'sigv4' }>,
|
|
14
|
+
baseFetch: FetchLike = fetch,
|
|
15
|
+
): FetchLike {
|
|
16
|
+
const signer = new SignatureV4({
|
|
17
|
+
service: auth.service,
|
|
18
|
+
region: auth.region,
|
|
19
|
+
credentials: auth.credentials,
|
|
20
|
+
sha256: Sha256,
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
return async (input, init) => {
|
|
24
|
+
// Request.toString() returns '[object Request]', not the URL — use .url instead.
|
|
25
|
+
const href =
|
|
26
|
+
typeof input === 'string'
|
|
27
|
+
? input
|
|
28
|
+
: input instanceof Request
|
|
29
|
+
? input.url
|
|
30
|
+
: input.toString()
|
|
31
|
+
const url = new URL(href)
|
|
32
|
+
const headers: Record<string, string> = {}
|
|
33
|
+
new Headers(init?.headers).forEach((v, k) => (headers[k] = v))
|
|
34
|
+
headers['host'] = url.host
|
|
35
|
+
|
|
36
|
+
const body = init?.body ?? undefined
|
|
37
|
+
|
|
38
|
+
// Construct a plain object satisfying the @smithy/types HttpRequest interface —
|
|
39
|
+
// no @smithy/protocol-http needed.
|
|
40
|
+
const request: HttpRequest = {
|
|
41
|
+
method: init?.method ?? 'GET',
|
|
42
|
+
protocol: url.protocol,
|
|
43
|
+
hostname: url.hostname,
|
|
44
|
+
path: url.pathname + url.search,
|
|
45
|
+
headers,
|
|
46
|
+
body,
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const signed = await signer.sign(request)
|
|
50
|
+
return baseFetch(url.toString(), {
|
|
51
|
+
...init,
|
|
52
|
+
headers: signed.headers as Record<string, string>,
|
|
53
|
+
})
|
|
54
|
+
}
|
|
55
|
+
}
|