@holokai/holo-provider-bedrock 1.5.3 → 1.9.0
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/dist/bedrock.auditor.d.ts +2 -0
- package/dist/bedrock.auditor.d.ts.map +1 -1
- package/dist/bedrock.auditor.js +24 -0
- package/dist/bedrock.auditor.js.map +1 -1
- package/dist/bedrock.provider.d.ts +4 -1
- package/dist/bedrock.provider.d.ts.map +1 -1
- package/dist/bedrock.provider.js +38 -1
- package/dist/bedrock.provider.js.map +1 -1
- package/dist/plugin.d.ts +7 -15
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +38 -13
- package/dist/plugin.js.map +1 -1
- package/dist/translators/bedrock.message.translator.d.ts.map +1 -1
- package/dist/translators/bedrock.message.translator.js +115 -0
- package/dist/translators/bedrock.message.translator.js.map +1 -1
- package/dist/translators/bedrock.request.translator.d.ts +8 -1
- package/dist/translators/bedrock.request.translator.d.ts.map +1 -1
- package/dist/translators/bedrock.request.translator.js +98 -11
- package/dist/translators/bedrock.request.translator.js.map +1 -1
- package/dist/translators/streaming/bedrock.content.delta.translator.d.ts.map +1 -1
- package/dist/translators/streaming/bedrock.content.delta.translator.js +35 -0
- package/dist/translators/streaming/bedrock.content.delta.translator.js.map +1 -1
- package/dist/translators/streaming/bedrock.stream.translator.d.ts.map +1 -1
- package/dist/translators/streaming/bedrock.stream.translator.js +1 -0
- package/dist/translators/streaming/bedrock.stream.translator.js.map +1 -1
- package/dist/types/request.types.d.ts +6 -1
- package/dist/types/request.types.d.ts.map +1 -1
- package/dist/types/request.types.js +6 -0
- package/dist/types/request.types.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BaseAuditor } from '@holokai/holo-sdk/provider';
|
|
2
|
+
import type { TokenBreakdown } from '@holokai/holo-types/entities';
|
|
2
3
|
import type { HoloWorkerRequest, WorkerResponseEnvelope } from '@holokai/holo-types/worker';
|
|
3
4
|
import type { ProviderDoneEvent, ProviderEvent } from '@holokai/holo-types/provider';
|
|
4
5
|
import type { ProviderEnvelope, ProviderResponseMetrics } from '@holokai/holo-types/entities';
|
|
@@ -8,6 +9,7 @@ export declare class BedrockAuditor extends BaseAuditor {
|
|
|
8
9
|
readonly provider = "bedrock";
|
|
9
10
|
mapFinishReason(nativeResponse: any, _protocolName?: string): HoloFinishReason;
|
|
10
11
|
mapUsage(nativeResponse: any, _protocolName?: string): HoloUsage;
|
|
12
|
+
mapTokenBreakdown(usage: Record<string, any>): TokenBreakdown;
|
|
11
13
|
protected mapProviderResponseMetrics(providerEvent: ProviderDoneEvent, _protocolName: string): Promise<Partial<ProviderResponseMetrics>>;
|
|
12
14
|
protected extractRequestOptions(workerRequest: HoloWorkerRequest): Promise<Record<string, any>>;
|
|
13
15
|
protected extractFinishReason(providerEvent: ProviderEvent, _envelope: WorkerResponseEnvelope): Promise<FinishReason | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.auditor.d.ts","sourceRoot":"","sources":["../src/bedrock.auditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAiE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"bedrock.auditor.d.ts","sourceRoot":"","sources":["../src/bedrock.auditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAiE,MAAM,4BAA4B,CAAC;AACvH,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAEjE,OAAO,KAAK,EAAC,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,EAAC,iBAAiB,EAAE,aAAa,EAAC,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAC,gBAAgB,EAAE,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,KAAK,EAAC,gBAAgB,EAAE,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAK1E,qBAAa,cAAe,SAAQ,WAAW;IAC3C,QAAQ,CAAC,QAAQ,aAAa;IAErB,eAAe,CAAC,cAAc,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAK9E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS;IAMzE,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,cAAc;cAS7C,0BAA0B,CACtC,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;cAa5B,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;cAcrF,mBAAmB,CAC/B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,sBAAsB,GAClC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;cAMpB,sBAAsB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAyBtG"}
|
package/dist/bedrock.auditor.js
CHANGED
|
@@ -15,6 +15,14 @@ export class BedrockAuditor extends BaseAuditor {
|
|
|
15
15
|
return {};
|
|
16
16
|
return bedrockToHoloUsage(usage);
|
|
17
17
|
}
|
|
18
|
+
mapTokenBreakdown(usage) {
|
|
19
|
+
return {
|
|
20
|
+
input: usage.inputTokens ?? 0,
|
|
21
|
+
output: usage.outputTokens ?? 0,
|
|
22
|
+
cache_read: usage.cacheReadInputTokens ?? 0,
|
|
23
|
+
cache_write: usage.cacheWriteInputTokens ?? 0,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
18
26
|
async mapProviderResponseMetrics(providerEvent, _protocolName) {
|
|
19
27
|
const response = providerEvent.message;
|
|
20
28
|
if (!response?.usage)
|
|
@@ -28,6 +36,13 @@ export class BedrockAuditor extends BaseAuditor {
|
|
|
28
36
|
});
|
|
29
37
|
}
|
|
30
38
|
async extractRequestOptions(workerRequest) {
|
|
39
|
+
if (workerRequest.protocol.name === 'bedrock.images') {
|
|
40
|
+
const body = workerRequest.payload?.body ?? {};
|
|
41
|
+
return pickDefined({
|
|
42
|
+
taskType: body.taskType,
|
|
43
|
+
...(body.imageGenerationConfig ?? {}),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
31
46
|
const payload = workerRequest.payload;
|
|
32
47
|
return pickDefined({
|
|
33
48
|
...payload?.inferenceConfig,
|
|
@@ -41,6 +56,15 @@ export class BedrockAuditor extends BaseAuditor {
|
|
|
41
56
|
return this.mapFinishReason(providerEvent.message);
|
|
42
57
|
}
|
|
43
58
|
async createProviderEnvelope(workerRequest) {
|
|
59
|
+
if (workerRequest.protocol.name === 'bedrock.images') {
|
|
60
|
+
const imagesPayload = workerRequest.payload;
|
|
61
|
+
const body = imagesPayload?.body ?? {};
|
|
62
|
+
const prompt = body.textToImageParams?.text ?? body.prompt ?? body.text_prompts?.[0]?.text;
|
|
63
|
+
return pickDefined({
|
|
64
|
+
access_model: imagesPayload?.modelId,
|
|
65
|
+
last_user_prompt: typeof prompt === 'string' ? prompt : null,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
44
68
|
const payload = workerRequest.payload;
|
|
45
69
|
const system_prompt = extractTopLevelPrompt(payload?.system);
|
|
46
70
|
const last_user_prompt = extractPromptByRole(payload?.messages, 'user', 'last', msg => extractTextContent(msg.content));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.auditor.js","sourceRoot":"","sources":["../src/bedrock.auditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"bedrock.auditor.js","sourceRoot":"","sources":["../src/bedrock.auditor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { BedrockRuntimeClient } from '@aws-sdk/client-bedrock-runtime';
|
|
2
2
|
import { BaseProvider } from '@holokai/holo-sdk/provider';
|
|
3
3
|
import type { DiscoveredModel, IAuditor, IProviderTranslator, IResponseFactory, ProviderContext, RunHandle } from '@holokai/holo-types/provider';
|
|
4
|
-
import type
|
|
4
|
+
import { type BedrockRequest } from './types/index.js';
|
|
5
|
+
import { ProtocolCapability } from '@holokai/holo-types/entities';
|
|
5
6
|
export declare class BedrockProvider extends BaseProvider<BedrockRuntimeClient, BedrockRequest> {
|
|
6
7
|
private bedrockClient?;
|
|
7
8
|
discoverModels(): Promise<DiscoveredModel[]>;
|
|
@@ -13,10 +14,12 @@ export declare class BedrockProvider extends BaseProvider<BedrockRuntimeClient,
|
|
|
13
14
|
protected createTranslator(): IProviderTranslator;
|
|
14
15
|
protected createResponseFactory(): IResponseFactory;
|
|
15
16
|
protected handleError(error: any): Promise<any>;
|
|
17
|
+
protected translatePayload(capability: ProtocolCapability | undefined, payload: any, protocolName?: string): Promise<any>;
|
|
16
18
|
protected createRequestRunner(payload: BedrockRequest, ctx: ProviderContext): Promise<RunHandle<any>>;
|
|
17
19
|
private bedrockConverse;
|
|
18
20
|
private bedrockConverseStream;
|
|
19
21
|
private bedrockEmbed;
|
|
22
|
+
private bedrockImages;
|
|
20
23
|
private getBedrockClient;
|
|
21
24
|
private buildAwsConfig;
|
|
22
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.provider.d.ts","sourceRoot":"","sources":["../src/bedrock.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EAIvB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,EACR,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,SAAS,EAEZ,MAAM,8BAA8B,CAAC;AAKtC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"bedrock.provider.d.ts","sourceRoot":"","sources":["../src/bedrock.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EAIvB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,EACR,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,SAAS,EAEZ,MAAM,8BAA8B,CAAC;AAKtC,OAAO,EAKH,KAAK,cAAc,EAEtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAEhE,qBAAa,eAAgB,SAAQ,YAAY,CAAC,oBAAoB,EAAE,cAAc,CAAC;IACnF,OAAO,CAAC,aAAa,CAAC,CAAgB;IAEhC,cAAc,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAoB5C,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC;QAAC,MAAM,EAAE,eAAe,EAAE,CAAA;KAAC,CAAC;IAMrF,SAAS,CAAC,YAAY,IAAI,oBAAoB;IAI9C,SAAS,CAAC,aAAa,IAAI,QAAQ;IAInC,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAIjD,SAAS,CAAC,qBAAqB,IAAI,gBAAgB;cAInC,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;cAIrC,gBAAgB,CAC5B,UAAU,EAAE,kBAAkB,GAAG,SAAS,EAC1C,OAAO,EAAE,GAAG,EACZ,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,GAAG,CAAC;cAQC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAe7F,eAAe;YA8Bf,qBAAqB;YAuDrB,YAAY;YAoBZ,aAAa;IA2B3B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,cAAc;CAgBzB"}
|
package/dist/bedrock.provider.js
CHANGED
|
@@ -2,11 +2,13 @@ import { BedrockRuntimeClient, ConverseCommand, ConverseStreamCommand, InvokeMod
|
|
|
2
2
|
import { BedrockClient, ListFoundationModelsCommand } from '@aws-sdk/client-bedrock';
|
|
3
3
|
import { NodeHttpHandler } from '@smithy/node-http-handler';
|
|
4
4
|
import { BaseProvider } from '@holokai/holo-sdk/provider';
|
|
5
|
-
import { pickDefined } from '@holokai/holo-sdk';
|
|
5
|
+
import { HoloError, pickDefined } from '@holokai/holo-sdk';
|
|
6
6
|
import { BedrockAuditor } from './bedrock.auditor.js';
|
|
7
7
|
import { BedrockTranslator } from './bedrock.translator.js';
|
|
8
8
|
import { BedrockResponseFactory } from './bedrock.response.factory.js';
|
|
9
9
|
import { BedrockProtocols } from './plugin.js';
|
|
10
|
+
import { isImageGenerationModel, } from './types/index.js';
|
|
11
|
+
import { ProtocolCapability } from '@holokai/holo-types/entities';
|
|
10
12
|
export class BedrockProvider extends BaseProvider {
|
|
11
13
|
bedrockClient;
|
|
12
14
|
async discoverModels() {
|
|
@@ -49,6 +51,13 @@ export class BedrockProvider extends BaseProvider {
|
|
|
49
51
|
async handleError(error) {
|
|
50
52
|
return this.responseFactory.createError(error.message ?? 'Unknown Bedrock error', error.name ?? error.Code);
|
|
51
53
|
}
|
|
54
|
+
async translatePayload(capability, payload, protocolName) {
|
|
55
|
+
// Images have no Holo canonical shape yet — the payload is already native.
|
|
56
|
+
if (protocolName === BedrockProtocols.IMAGES || capability === ProtocolCapability.IMAGE) {
|
|
57
|
+
return payload;
|
|
58
|
+
}
|
|
59
|
+
return super.translatePayload(capability, payload, protocolName);
|
|
60
|
+
}
|
|
52
61
|
async createRequestRunner(payload, ctx) {
|
|
53
62
|
switch (ctx.protocol.name) {
|
|
54
63
|
case BedrockProtocols.CONVERSE:
|
|
@@ -57,6 +66,8 @@ export class BedrockProvider extends BaseProvider {
|
|
|
57
66
|
: this.bedrockConverse(payload, ctx);
|
|
58
67
|
case BedrockProtocols.EMBED:
|
|
59
68
|
return this.bedrockEmbed(payload, ctx);
|
|
69
|
+
case BedrockProtocols.IMAGES:
|
|
70
|
+
return this.bedrockImages(payload, ctx);
|
|
60
71
|
default:
|
|
61
72
|
throw new Error(`Unsupported protocol: ${ctx.protocol.name}`);
|
|
62
73
|
}
|
|
@@ -102,6 +113,12 @@ export class BedrockProvider extends BaseProvider {
|
|
|
102
113
|
if (delta?.text) {
|
|
103
114
|
ctx.emitTextDelta(delta.text);
|
|
104
115
|
}
|
|
116
|
+
// Reasoning rides the same delta union as text. Only the `text` member
|
|
117
|
+
// carries readable content; `signature` and `redactedContent` arrive on
|
|
118
|
+
// the same block and have nothing to stream.
|
|
119
|
+
if (delta?.reasoningContent?.text) {
|
|
120
|
+
ctx.emitReasoningDelta(delta.reasoningContent.text);
|
|
121
|
+
}
|
|
105
122
|
if (delta?.toolUse) {
|
|
106
123
|
ctx.emitToolCallDelta(activeToolIndex, { arguments_delta: delta.toolUse.input ?? '' });
|
|
107
124
|
}
|
|
@@ -151,6 +168,26 @@ export class BedrockProvider extends BaseProvider {
|
|
|
151
168
|
},
|
|
152
169
|
};
|
|
153
170
|
}
|
|
171
|
+
async bedrockImages(params, ctx) {
|
|
172
|
+
// InvokeModel is scoped to image-generation model families so it cannot become
|
|
173
|
+
// a generic bypass around the protocol-appropriate audit paths.
|
|
174
|
+
if (!params.modelId || !isImageGenerationModel(params.modelId)) {
|
|
175
|
+
throw HoloError.badRequest('bedrock.images only accepts image-generation models (amazon.nova-canvas, amazon.titan-image-generator, stability.*).');
|
|
176
|
+
}
|
|
177
|
+
return {
|
|
178
|
+
start: async () => {
|
|
179
|
+
const response = await this.client.send(new InvokeModelCommand({
|
|
180
|
+
modelId: params.modelId,
|
|
181
|
+
body: JSON.stringify(params.body),
|
|
182
|
+
contentType: 'application/json',
|
|
183
|
+
accept: 'application/json',
|
|
184
|
+
}), ctx.signal ? { abortSignal: ctx.signal } : undefined);
|
|
185
|
+
const bodyStr = new TextDecoder().decode(response.body);
|
|
186
|
+
const parsed = JSON.parse(bodyStr);
|
|
187
|
+
return { modelId: params.modelId, body: parsed };
|
|
188
|
+
},
|
|
189
|
+
};
|
|
190
|
+
}
|
|
154
191
|
getBedrockClient() {
|
|
155
192
|
if (!this.bedrockClient) {
|
|
156
193
|
this.bedrockClient = new BedrockClient(this.buildAwsConfig());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.provider.js","sourceRoot":"","sources":["../src/bedrock.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,GACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,aAAa,EAAE,2BAA2B,EAAC,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"bedrock.provider.js","sourceRoot":"","sources":["../src/bedrock.provider.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { BasePlugin } from '@holokai/holo-sdk/plugin';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
2
|
+
import type { HoloResponseFormat } from '@holokai/holo-types/holo';
|
|
3
|
+
import type { IProviderPlugin, OutputTextRewriter, PluginContext, PluginPricingSheet, PluginSchema } from '@holokai/holo-types/plugin';
|
|
4
4
|
import type { DiscoveredModel, IProvider, IWireAdapter, ProviderCapabilities, WireAdapterParams } from '@holokai/holo-types/provider';
|
|
5
5
|
import type { RouteDefinition } from '@holokai/holo-types/routing';
|
|
6
6
|
export declare const BedrockProtocols: {
|
|
7
7
|
readonly CONVERSE: "bedrock.converse";
|
|
8
8
|
readonly EMBED: "bedrock.embed";
|
|
9
9
|
readonly MODELS: "bedrock.models";
|
|
10
|
+
readonly IMAGES: "bedrock.images";
|
|
10
11
|
};
|
|
11
12
|
export type BedrockProtocols = (typeof BedrockProtocols)[keyof typeof BedrockProtocols];
|
|
12
13
|
export declare class BedrockProviderPlugin extends BasePlugin implements IProviderPlugin {
|
|
@@ -17,6 +18,7 @@ export declare class BedrockProviderPlugin extends BasePlugin implements IProvid
|
|
|
17
18
|
readonly CONVERSE: "bedrock.converse";
|
|
18
19
|
readonly EMBED: "bedrock.embed";
|
|
19
20
|
readonly MODELS: "bedrock.models";
|
|
21
|
+
readonly IMAGES: "bedrock.images";
|
|
20
22
|
};
|
|
21
23
|
defaultProtocol: "bedrock.converse";
|
|
22
24
|
createProvider(id: string, name: string, config: any): Promise<IProvider>;
|
|
@@ -25,6 +27,9 @@ export declare class BedrockProviderPlugin extends BasePlugin implements IProvid
|
|
|
25
27
|
setModelNameInRequest(payload: any, model: string): void;
|
|
26
28
|
mergeParametersIntoRequest(payload: any, parameters: Record<string, any>): void;
|
|
27
29
|
setSystemPromptInRequest(payload: any, systemPrompt: string): void;
|
|
30
|
+
getResponseFormatFromRequest(payload: any): HoloResponseFormat | undefined;
|
|
31
|
+
rewriteResponseText(message: any, rewrite: (text: string) => string): any;
|
|
32
|
+
rewriteStreamEventText(event: any, rewrite: OutputTextRewriter): any;
|
|
28
33
|
formatModelsResponse(models: DiscoveredModel[]): unknown;
|
|
29
34
|
getSchema(): PluginSchema;
|
|
30
35
|
getTestModels(): {
|
|
@@ -36,19 +41,6 @@ export declare class BedrockProviderPlugin extends BasePlugin implements IProvid
|
|
|
36
41
|
getPricingSheets(): Map<string, PluginPricingSheet>;
|
|
37
42
|
getPricingModelIds(): import("@holokai/holo-types").PricingModelId[];
|
|
38
43
|
getDefaultPricing(): PluginPricingSheet;
|
|
39
|
-
protected calculateExtraCosts(tokens: Record<string, number>, pricing: PricingSheetModel): {
|
|
40
|
-
total: number;
|
|
41
|
-
detail: {
|
|
42
|
-
cache_read: {
|
|
43
|
-
tokens: number;
|
|
44
|
-
cost: number;
|
|
45
|
-
};
|
|
46
|
-
cache_write: {
|
|
47
|
-
tokens: number;
|
|
48
|
-
cost: number;
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
44
|
protected onInitialize(_context: PluginContext): Promise<void>;
|
|
53
45
|
protected onDestroy(): Promise<void>;
|
|
54
46
|
}
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAA0B,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAA0B,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EACR,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACf,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EACR,eAAe,EACf,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACpB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAMjE,eAAO,MAAM,gBAAgB;;;;;CAKnB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAExF,qBAAa,qBAAsB,SAAQ,UAAW,YAAW,eAAe;IAC5E,QAAQ,+CAAY;IACpB,UAAU,oDAAgC;IAC1C,mBAAmB,YAAwB;IAC3C,SAAS;;;;;MAAoB;IAC7B,eAAe,qBAA6B;IAEtC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IAIzE,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzE,uBAAuB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAIzD,qBAAqB,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxD,0BAA0B,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI/E,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAKlE,4BAA4B,CAAC,OAAO,EAAE,GAAG,GAAG,kBAAkB,GAAG,SAAS;IAI1E,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,GAAG;IAiBzE,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB,GAAG,GAAG;IASpE,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO;IAWxD,SAAS,IAAI,YAAY;IAsCzB,aAAa;;;;IAIb,eAAe,IAAI,oBAAoB;IAUvC,SAAS,IAAI,eAAe,EAAE;IA6C9B,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAInD,kBAAkB;IAIlB,iBAAiB,IAAI,kBAAkB;IAMvC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC"}
|
package/dist/plugin.js
CHANGED
|
@@ -5,11 +5,13 @@ import { BedrockProvider } from './bedrock.provider.js';
|
|
|
5
5
|
import { BedrockWireAdapter } from './bedrock.wire.adapter.js';
|
|
6
6
|
import { RouteHandler } from '@holokai/holo-types/routing';
|
|
7
7
|
import { BedrockTranslator } from './bedrock.translator.js';
|
|
8
|
+
import { responseFormatFromRequest } from './translators/bedrock.request.translator.js';
|
|
8
9
|
import { BEDROCK_PRICING_DATASET } from './bedrock.pricing.js';
|
|
9
10
|
export const BedrockProtocols = {
|
|
10
11
|
CONVERSE: 'bedrock.converse',
|
|
11
12
|
EMBED: 'bedrock.embed',
|
|
12
13
|
MODELS: 'bedrock.models',
|
|
14
|
+
IMAGES: 'bedrock.images',
|
|
13
15
|
};
|
|
14
16
|
export class BedrockProviderPlugin extends BasePlugin {
|
|
15
17
|
manifest = manifest;
|
|
@@ -37,6 +39,33 @@ export class BedrockProviderPlugin extends BasePlugin {
|
|
|
37
39
|
return;
|
|
38
40
|
payload.system = [{ text: systemPrompt }];
|
|
39
41
|
}
|
|
42
|
+
getResponseFormatFromRequest(payload) {
|
|
43
|
+
return responseFormatFromRequest(payload);
|
|
44
|
+
}
|
|
45
|
+
rewriteResponseText(message, rewrite) {
|
|
46
|
+
const content = message?.output?.message?.content;
|
|
47
|
+
if (!Array.isArray(content))
|
|
48
|
+
return message;
|
|
49
|
+
return {
|
|
50
|
+
...message,
|
|
51
|
+
output: {
|
|
52
|
+
...message.output,
|
|
53
|
+
message: {
|
|
54
|
+
...message.output.message,
|
|
55
|
+
content: content.map((block) => typeof block?.text === 'string' ? { ...block, text: rewrite(block.text) } : block),
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
rewriteStreamEventText(event, rewrite) {
|
|
61
|
+
const delta = event?.contentBlockDelta?.delta;
|
|
62
|
+
if (typeof delta?.text !== 'string')
|
|
63
|
+
return event;
|
|
64
|
+
return {
|
|
65
|
+
...event,
|
|
66
|
+
contentBlockDelta: { ...event.contentBlockDelta, delta: { ...delta, text: rewrite.delta(delta.text) } },
|
|
67
|
+
};
|
|
68
|
+
}
|
|
40
69
|
formatModelsResponse(models) {
|
|
41
70
|
return {
|
|
42
71
|
modelSummaries: models.map(m => ({
|
|
@@ -129,6 +158,15 @@ export class BedrockProviderPlugin extends BasePlugin {
|
|
|
129
158
|
capability: ProtocolCapability.MODELS,
|
|
130
159
|
},
|
|
131
160
|
},
|
|
161
|
+
{
|
|
162
|
+
paths: ['/images'],
|
|
163
|
+
method: 'POST',
|
|
164
|
+
handler: RouteHandler.REQUEST,
|
|
165
|
+
protocol: {
|
|
166
|
+
name: BedrockProtocols.IMAGES,
|
|
167
|
+
capability: ProtocolCapability.IMAGE,
|
|
168
|
+
},
|
|
169
|
+
},
|
|
132
170
|
];
|
|
133
171
|
}
|
|
134
172
|
getPricingSheets() {
|
|
@@ -142,19 +180,6 @@ export class BedrockProviderPlugin extends BasePlugin {
|
|
|
142
180
|
const sorted = Array.from(sheets.values()).sort((a, b) => b.effective_from.localeCompare(a.effective_from));
|
|
143
181
|
return sorted[0];
|
|
144
182
|
}
|
|
145
|
-
calculateExtraCosts(tokens, pricing) {
|
|
146
|
-
const cacheReadRate = pricing.token_costs?.cache_read ?? Number(pricing.cache_read_cost ?? 0);
|
|
147
|
-
const cacheWriteRate = pricing.token_costs?.cache_write ?? Number(pricing.cache_write_cost ?? 0);
|
|
148
|
-
const cacheReadCost = (tokens.cache_read ?? 0) * cacheReadRate;
|
|
149
|
-
const cacheWriteCost = (tokens.cache_write ?? 0) * cacheWriteRate;
|
|
150
|
-
return {
|
|
151
|
-
total: cacheReadCost + cacheWriteCost,
|
|
152
|
-
detail: {
|
|
153
|
-
cache_read: { tokens: tokens.cache_read ?? 0, cost: cacheReadCost },
|
|
154
|
-
cache_write: { tokens: tokens.cache_write ?? 0, cost: cacheWriteCost },
|
|
155
|
-
},
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
183
|
onInitialize(_context) {
|
|
159
184
|
return Promise.resolve();
|
|
160
185
|
}
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,uBAAuB,EAAC,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.message.translator.d.ts","sourceRoot":"","sources":["../../src/translators/bedrock.message.translator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"bedrock.message.translator.d.ts","sourceRoot":"","sources":["../../src/translators/bedrock.message.translator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsD,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAC/G,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAe,OAAO,EAAwB,MAAM,iCAAiC,CAAC;AAsBlG,qBAAa,wBAAyB,SAAQ,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9E,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAM;IAClD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAM;cAElC,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;cA+G5D,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;CA6E7E"}
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
import { HoloError, pickDefined } from '@holokai/holo-sdk';
|
|
2
2
|
import { BaseTranslator } from '@holokai/holo-sdk/provider';
|
|
3
|
+
/**
|
|
4
|
+
* Converse reasoning block → Holo reasoning content.
|
|
5
|
+
*
|
|
6
|
+
* `signature` matters: Bedrock requires the text and its signature to come back unmodified on
|
|
7
|
+
* later turns of the same conversation, which is exactly what `HoloContentReasoning.signature`
|
|
8
|
+
* exists to carry. `redactedContent` has no readable text, so only the marker survives.
|
|
9
|
+
*/
|
|
10
|
+
function reasoningToHolo(block) {
|
|
11
|
+
const reasoningText = block.reasoningText;
|
|
12
|
+
if (!reasoningText) {
|
|
13
|
+
return block.redactedContent ? { type: 'reasoning' } : undefined;
|
|
14
|
+
}
|
|
15
|
+
return pickDefined({
|
|
16
|
+
type: 'reasoning',
|
|
17
|
+
text: reasoningText.text,
|
|
18
|
+
signature: reasoningText.signature,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
3
21
|
// Content-block handling is intentionally folded here. See docs/FIELD_MAPPING.md § 4 for the rationale.
|
|
4
22
|
export class BedrockMessageTranslator extends BaseTranslator {
|
|
5
23
|
holoDefaults = {};
|
|
6
24
|
providerDefaults = {};
|
|
7
25
|
async fromHoloImpl(source) {
|
|
8
26
|
const content = [];
|
|
27
|
+
// Converse requires document names to be unique within a request.
|
|
28
|
+
const usedDocNames = new Set();
|
|
9
29
|
if (typeof source.content === 'string' && source.content !== '') {
|
|
10
30
|
content.push({ text: source.content });
|
|
11
31
|
}
|
|
@@ -15,6 +35,18 @@ export class BedrockMessageTranslator extends BaseTranslator {
|
|
|
15
35
|
case 'text':
|
|
16
36
|
content.push({ text: block.text });
|
|
17
37
|
break;
|
|
38
|
+
case 'reasoning':
|
|
39
|
+
// Replayed unchanged on later turns: Converse validates the signature
|
|
40
|
+
// against the text, so a reasoning block without one is dropped rather
|
|
41
|
+
// than sent and rejected.
|
|
42
|
+
if (block.text && block.signature) {
|
|
43
|
+
content.push({
|
|
44
|
+
reasoningContent: {
|
|
45
|
+
reasoningText: { text: block.text, signature: block.signature },
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
18
50
|
case 'image':
|
|
19
51
|
if (block.data) {
|
|
20
52
|
content.push({
|
|
@@ -28,6 +60,27 @@ export class BedrockMessageTranslator extends BaseTranslator {
|
|
|
28
60
|
throw HoloError.badRequest('Bedrock Converse requires base64 image data; received URL-only image. Pre-fetch the image before routing to Bedrock.');
|
|
29
61
|
}
|
|
30
62
|
break;
|
|
63
|
+
case 'file': {
|
|
64
|
+
const parsed = block.url ? parseFileDataUrl(block.url) : undefined;
|
|
65
|
+
const data = block.data ?? parsed?.data;
|
|
66
|
+
if (!data) {
|
|
67
|
+
throw HoloError.badRequest('Bedrock Converse requires base64 document data; received URL-only file. Pre-fetch the document before routing to Bedrock.');
|
|
68
|
+
}
|
|
69
|
+
const mime = (block.mime ?? parsed?.mime)?.toLowerCase();
|
|
70
|
+
let name = sanitizeDocName(block.filename) ?? 'document';
|
|
71
|
+
for (let i = 2; usedDocNames.has(name); i++) {
|
|
72
|
+
name = `${sanitizeDocName(block.filename) ?? 'document'} (${i})`;
|
|
73
|
+
}
|
|
74
|
+
usedDocNames.add(name);
|
|
75
|
+
content.push({
|
|
76
|
+
document: {
|
|
77
|
+
format: mimeToDocFormat(mime, block.filename),
|
|
78
|
+
name,
|
|
79
|
+
source: { bytes: Buffer.from(data, 'base64') },
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
31
84
|
case 'tool_call':
|
|
32
85
|
if (block.kind === 'custom')
|
|
33
86
|
break; // Bedrock has no custom-tool wire shape
|
|
@@ -82,6 +135,11 @@ export class BedrockMessageTranslator extends BaseTranslator {
|
|
|
82
135
|
if (block.text) {
|
|
83
136
|
holoContent.push({ type: 'text', text: block.text });
|
|
84
137
|
}
|
|
138
|
+
else if (block.reasoningContent) {
|
|
139
|
+
const reasoning = reasoningToHolo(block.reasoningContent);
|
|
140
|
+
if (reasoning)
|
|
141
|
+
holoContent.push(reasoning);
|
|
142
|
+
}
|
|
85
143
|
else if (block.toolUse) {
|
|
86
144
|
const id = block.toolUse.toolUseId;
|
|
87
145
|
const name = block.toolUse.name;
|
|
@@ -116,6 +174,17 @@ export class BedrockMessageTranslator extends BaseTranslator {
|
|
|
116
174
|
imgBlock.mime = mime;
|
|
117
175
|
holoContent.push(imgBlock);
|
|
118
176
|
}
|
|
177
|
+
else if (block.document) {
|
|
178
|
+
const doc = block.document;
|
|
179
|
+
holoContent.push(pickDefined({
|
|
180
|
+
type: 'file',
|
|
181
|
+
data: doc.source && 'bytes' in doc.source && doc.source.bytes
|
|
182
|
+
? Buffer.from(doc.source.bytes).toString('base64')
|
|
183
|
+
: undefined,
|
|
184
|
+
mime: docFormatToMime(doc.format),
|
|
185
|
+
filename: doc.name,
|
|
186
|
+
}));
|
|
187
|
+
}
|
|
119
188
|
}
|
|
120
189
|
let content;
|
|
121
190
|
if (holoContent.length === 1 && holoContent[0].type === 'text') {
|
|
@@ -150,4 +219,50 @@ function formatToMime(format) {
|
|
|
150
219
|
return undefined;
|
|
151
220
|
return `image/${format}`;
|
|
152
221
|
}
|
|
222
|
+
const MIME_TO_DOC_FORMAT = {
|
|
223
|
+
'application/pdf': 'pdf',
|
|
224
|
+
'text/csv': 'csv',
|
|
225
|
+
'application/msword': 'doc',
|
|
226
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document': 'docx',
|
|
227
|
+
'application/vnd.ms-excel': 'xls',
|
|
228
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'xlsx',
|
|
229
|
+
'text/html': 'html',
|
|
230
|
+
'text/plain': 'txt',
|
|
231
|
+
'text/markdown': 'md',
|
|
232
|
+
};
|
|
233
|
+
const DOC_FORMAT_TO_MIME = Object.fromEntries(Object.entries(MIME_TO_DOC_FORMAT).map(([mime, format]) => [format, mime]));
|
|
234
|
+
function mimeToDocFormat(mime, filename) {
|
|
235
|
+
if (mime && MIME_TO_DOC_FORMAT[mime])
|
|
236
|
+
return MIME_TO_DOC_FORMAT[mime];
|
|
237
|
+
const ext = filename?.match(/\.([a-z0-9]+)$/i)?.[1]?.toLowerCase();
|
|
238
|
+
if (ext && ext in DOC_FORMAT_TO_MIME)
|
|
239
|
+
return ext;
|
|
240
|
+
throw HoloError.badRequest(`Bedrock Converse documents support pdf/csv/doc/docx/xls/xlsx/html/txt/md; received ${mime ?? 'no mime and no recognizable filename extension'}.`);
|
|
241
|
+
}
|
|
242
|
+
// Bedrock's DocumentBlock.name only allows alphanumerics, single spaces, hyphens,
|
|
243
|
+
// parentheses, and square brackets — a dotted filename is rejected by the live API.
|
|
244
|
+
function sanitizeDocName(filename) {
|
|
245
|
+
if (!filename)
|
|
246
|
+
return undefined;
|
|
247
|
+
const cleaned = filename
|
|
248
|
+
.replace(/\.[a-z0-9]+$/i, '')
|
|
249
|
+
.replace(/[^a-zA-Z0-9\s\-()[\]]/g, '-')
|
|
250
|
+
.replace(/\s+/g, ' ')
|
|
251
|
+
.trim();
|
|
252
|
+
return cleaned || undefined;
|
|
253
|
+
}
|
|
254
|
+
function docFormatToMime(format) {
|
|
255
|
+
if (!format)
|
|
256
|
+
return undefined;
|
|
257
|
+
return DOC_FORMAT_TO_MIME[format] ?? undefined;
|
|
258
|
+
}
|
|
259
|
+
function parseFileDataUrl(u) {
|
|
260
|
+
if (!u.startsWith('data:'))
|
|
261
|
+
return undefined;
|
|
262
|
+
const comma = u.indexOf(',');
|
|
263
|
+
if (comma < 0)
|
|
264
|
+
return undefined;
|
|
265
|
+
const mime = u.slice('data:'.length, comma).split(';', 1)[0].toLowerCase();
|
|
266
|
+
return { mime: mime || undefined, data: u.slice(comma + 1) };
|
|
267
|
+
}
|
|
153
268
|
//# sourceMappingURL=bedrock.message.translator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.message.translator.js","sourceRoot":"","sources":["../../src/translators/bedrock.message.translator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAG1D,wGAAwG;AACxG,MAAM,OAAO,wBAAyB,SAAQ,cAAoC;IACpE,YAAY,GAAyB,EAAE,CAAC;IACxC,gBAAgB,GAAqB,EAAE,CAAC;IAExC,KAAK,CAAC,YAAY,CAAC,MAAmB;QAC5C,MAAM,OAAO,GAAmB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"bedrock.message.translator.js","sourceRoot":"","sources":["../../src/translators/bedrock.message.translator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { HoloRequest } from '@holokai/holo-types/holo';
|
|
1
|
+
import type { HoloRequest, HoloResponseFormat } from '@holokai/holo-types/holo';
|
|
2
2
|
import { BaseTranslator } from '@holokai/holo-sdk/provider';
|
|
3
3
|
import type { BedrockConverseRequest } from '../types/index.js';
|
|
4
4
|
import { BedrockMessageTranslator } from './bedrock.message.translator.js';
|
|
5
5
|
import { BedrockToolTranslator } from './bedrock.tool.translator.js';
|
|
6
|
+
import type { SystemContentBlock } from '@aws-sdk/client-bedrock-runtime';
|
|
6
7
|
export declare class BedrockRequestTranslator extends BaseTranslator<HoloRequest, BedrockConverseRequest> {
|
|
7
8
|
private readonly messageTranslator;
|
|
8
9
|
private readonly toolTranslator;
|
|
@@ -12,4 +13,10 @@ export declare class BedrockRequestTranslator extends BaseTranslator<HoloRequest
|
|
|
12
13
|
protected fromHoloImpl(source: HoloRequest): Promise<Partial<BedrockConverseRequest>>;
|
|
13
14
|
protected toHoloImpl(source: BedrockConverseRequest): Promise<Partial<HoloRequest>>;
|
|
14
15
|
}
|
|
16
|
+
export declare function extractResponseFormat(system: SystemContentBlock[] | undefined): {
|
|
17
|
+
systemText: string | undefined;
|
|
18
|
+
response_format: HoloResponseFormat | undefined;
|
|
19
|
+
};
|
|
20
|
+
/** The output format a native request asks for: `outputConfig.textFormat`, else the marker block Holo carries `json_object` through. */
|
|
21
|
+
export declare function responseFormatFromRequest(request: Pick<BedrockConverseRequest, 'outputConfig' | 'system'> | undefined): HoloResponseFormat | undefined;
|
|
15
22
|
//# sourceMappingURL=bedrock.request.translator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.request.translator.d.ts","sourceRoot":"","sources":["../../src/translators/bedrock.request.translator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,WAAW,
|
|
1
|
+
{"version":3,"file":"bedrock.request.translator.d.ts","sourceRoot":"","sources":["../../src/translators/bedrock.request.translator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,WAAW,EAAE,kBAAkB,EAAa,MAAM,0BAA0B,CAAC;AACvG,OAAO,EACH,cAAc,EAKjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,UAAU,CAAC;AACrD,OAAO,EAAC,wBAAwB,EAAC,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAC,qBAAqB,EAAuC,MAAM,2BAA2B,CAAC;AACtG,OAAO,KAAK,EAAwB,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AAmB/F,qBAAa,wBAAyB,SAAQ,cAAc,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAKzF,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IALnC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAM;IAClD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAM;gBAG5C,iBAAiB,EAAE,wBAAwB,EAC3C,cAAc,EAAE,qBAAqB;cAK1C,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;cA6C3E,UAAU,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;CA2B5F;AAwED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,SAAS,GAAG;IAC7E,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,eAAe,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACnD,CAoBA;AAgCD,wIAAwI;AACxI,wBAAgB,yBAAyB,CACrC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,cAAc,GAAG,QAAQ,CAAC,GAAG,SAAS,GAC7E,kBAAkB,GAAG,SAAS,CAIhC"}
|
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import { pickDefined } from '@holokai/holo-sdk';
|
|
2
|
-
import { BaseTranslator } from '@holokai/holo-sdk/provider';
|
|
2
|
+
import { BaseTranslator, isThinkingOff, MIN_THINKING_BUDGET, resolveBudget, toHoloThinking, } from '@holokai/holo-sdk/provider';
|
|
3
3
|
import { BedrockMessageTranslator } from './bedrock.message.translator.js';
|
|
4
4
|
import { BedrockToolTranslator, fromHoloToolChoice, toHoloToolChoice } from './bedrock.tool.translator.js';
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
5
|
+
// `json_schema` rides Converse's native `outputConfig.textFormat`. `json_object` has no
|
|
6
|
+
// native slot, so it becomes a prose instruction on the system prompt wrapped in this
|
|
7
|
+
// sentinel: the encoded body is the original HoloResponseFormat as base64url JSON, and
|
|
8
|
+
// toHolo recognizes the marker, restores response_format, and strips the synthesized
|
|
9
|
+
// block so canonical Holo doesn't leak the boilerplate.
|
|
9
10
|
const HOLO_RF_MARKER_RE = /<!--holo:rf:([A-Za-z0-9_-]+)-->/;
|
|
11
|
+
const JSON_SCHEMA_NAME = 'holo';
|
|
12
|
+
/**
|
|
13
|
+
* Output ceiling Holo supplies when reasoning is on and the caller named none.
|
|
14
|
+
*
|
|
15
|
+
* Converse requires the thinking budget to sit below `maxTokens`, and its own default is well
|
|
16
|
+
* under any useful budget. 8192 is the smallest max-output among the Claude models Bedrock
|
|
17
|
+
* serves, so it is valid everywhere; a caller wanting a deeper budget raises `max_tokens`.
|
|
18
|
+
*/
|
|
19
|
+
const BEDROCK_DEFAULT_MAX_TOKENS = 8192;
|
|
10
20
|
export class BedrockRequestTranslator extends BaseTranslator {
|
|
11
21
|
messageTranslator;
|
|
12
22
|
toolTranslator;
|
|
@@ -20,20 +30,31 @@ export class BedrockRequestTranslator extends BaseTranslator {
|
|
|
20
30
|
async fromHoloImpl(source) {
|
|
21
31
|
const { systemMessages, otherMessages } = extractSystemMessages(source.messages);
|
|
22
32
|
const baseSystem = buildSystemBlocks(systemMessages, source.system);
|
|
23
|
-
const
|
|
33
|
+
const outputConfig = outputConfigFromResponseFormat(source.response_format);
|
|
34
|
+
const system = appendResponseFormatBlock(baseSystem, outputConfig ? undefined : source.response_format);
|
|
24
35
|
const messages = (await this.messageTranslator.fromHoloArray(otherMessages));
|
|
25
36
|
const tools = source.tools?.length ? await this.toolTranslator.fromHoloArray(source.tools) : undefined;
|
|
37
|
+
// Converse needs an explicit output ceiling above the thinking budget, and its own
|
|
38
|
+
// default is far too small — so when reasoning is on and the caller named none, Holo
|
|
39
|
+
// supplies a conservative one rather than sending a request the service will reject.
|
|
40
|
+
const effectiveMaxTokens = source.max_tokens ?? BEDROCK_DEFAULT_MAX_TOKENS;
|
|
41
|
+
const additionalModelRequestFields = reasoningFields(source.thinking, effectiveMaxTokens);
|
|
42
|
+
const reasoningOn = isReasoningEnabled(additionalModelRequestFields);
|
|
26
43
|
const inferenceConfig = pickDefined({
|
|
27
|
-
maxTokens: source.max_tokens,
|
|
28
|
-
|
|
29
|
-
|
|
44
|
+
maxTokens: reasoningOn ? effectiveMaxTokens : source.max_tokens,
|
|
45
|
+
// Anthropic-on-Bedrock rejects sampling controls alongside enabled reasoning, the
|
|
46
|
+
// same way the first-party API does.
|
|
47
|
+
temperature: reasoningOn ? undefined : source.temperature,
|
|
48
|
+
topP: reasoningOn ? undefined : source.top_p,
|
|
30
49
|
stopSequences: source.stop_sequences,
|
|
31
50
|
});
|
|
32
51
|
return pickDefined({
|
|
33
52
|
modelId: source.model,
|
|
34
53
|
messages,
|
|
35
54
|
system,
|
|
55
|
+
outputConfig,
|
|
36
56
|
inferenceConfig: Object.keys(inferenceConfig).length ? inferenceConfig : undefined,
|
|
57
|
+
additionalModelRequestFields,
|
|
37
58
|
toolConfig: tools?.length
|
|
38
59
|
? pickDefined({
|
|
39
60
|
tools,
|
|
@@ -46,7 +67,9 @@ export class BedrockRequestTranslator extends BaseTranslator {
|
|
|
46
67
|
const messages = source.messages
|
|
47
68
|
? await this.messageTranslator.toHoloArray(source.messages)
|
|
48
69
|
: undefined;
|
|
49
|
-
const
|
|
70
|
+
const extracted = extractResponseFormat(source.system);
|
|
71
|
+
const systemText = extracted.systemText;
|
|
72
|
+
const response_format = responseFormatFromOutputConfig(source.outputConfig) ?? extracted.response_format;
|
|
50
73
|
const tools = source.toolConfig?.tools
|
|
51
74
|
? await this.toolTranslator.toHoloArray(source.toolConfig.tools)
|
|
52
75
|
: undefined;
|
|
@@ -61,9 +84,48 @@ export class BedrockRequestTranslator extends BaseTranslator {
|
|
|
61
84
|
response_format,
|
|
62
85
|
tools,
|
|
63
86
|
tool_choice: toHoloToolChoice(source.toolConfig?.toolChoice),
|
|
87
|
+
thinking: reasoningFieldsToHolo(source.additionalModelRequestFields),
|
|
64
88
|
});
|
|
65
89
|
}
|
|
66
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Converse has no first-class reasoning field — depth is passed through to the underlying
|
|
93
|
+
* model via `additionalModelRequestFields`, using that model family's own spelling.
|
|
94
|
+
* `reasoning_config` is the Anthropic-on-Bedrock shape, which is the only reasoning-capable
|
|
95
|
+
* family Holo routes here today.
|
|
96
|
+
*
|
|
97
|
+
* Bedrock, like the Anthropic API, requires the budget to sit below the output ceiling.
|
|
98
|
+
*/
|
|
99
|
+
function reasoningFields(thinking, effectiveMaxTokens) {
|
|
100
|
+
if (!thinking)
|
|
101
|
+
return undefined;
|
|
102
|
+
if (isThinkingOff(thinking))
|
|
103
|
+
return { reasoning_config: { type: 'disabled' } };
|
|
104
|
+
const ceiling = effectiveMaxTokens - 1;
|
|
105
|
+
if (ceiling < MIN_THINKING_BUDGET)
|
|
106
|
+
return undefined;
|
|
107
|
+
const budget = resolveBudget(thinking, { min: MIN_THINKING_BUDGET, max: ceiling });
|
|
108
|
+
return budget === undefined ? undefined : { reasoning_config: { type: 'enabled', budget_tokens: budget } };
|
|
109
|
+
}
|
|
110
|
+
/** True once the emitted fields actually turn reasoning on. */
|
|
111
|
+
function isReasoningEnabled(fields) {
|
|
112
|
+
const config = fields?.reasoning_config;
|
|
113
|
+
return config?.type === 'enabled';
|
|
114
|
+
}
|
|
115
|
+
/** Read `additionalModelRequestFields.reasoning_config` back into canonical form. */
|
|
116
|
+
function reasoningFieldsToHolo(fields) {
|
|
117
|
+
if (!fields || typeof fields !== 'object')
|
|
118
|
+
return undefined;
|
|
119
|
+
const config = fields.reasoning_config;
|
|
120
|
+
if (!config || typeof config !== 'object')
|
|
121
|
+
return undefined;
|
|
122
|
+
const { type, budget_tokens } = config;
|
|
123
|
+
if (type === 'disabled')
|
|
124
|
+
return toHoloThinking({ type: 'disabled' });
|
|
125
|
+
if (type === 'enabled')
|
|
126
|
+
return toHoloThinking({ type: 'enabled', budget_tokens });
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
67
129
|
function appendResponseFormatBlock(system, rf) {
|
|
68
130
|
const text = responseFormatInstruction(rf);
|
|
69
131
|
if (!text)
|
|
@@ -87,7 +149,7 @@ function responseFormatInstruction(rf) {
|
|
|
87
149
|
}
|
|
88
150
|
return parts.join(' ');
|
|
89
151
|
}
|
|
90
|
-
function extractResponseFormat(system) {
|
|
152
|
+
export function extractResponseFormat(system) {
|
|
91
153
|
if (!system?.length)
|
|
92
154
|
return { systemText: undefined, response_format: undefined };
|
|
93
155
|
let response_format;
|
|
@@ -119,6 +181,31 @@ function parseRfMarker(text) {
|
|
|
119
181
|
return undefined;
|
|
120
182
|
}
|
|
121
183
|
}
|
|
184
|
+
function outputConfigFromResponseFormat(rf) {
|
|
185
|
+
if (rf?.type !== 'json_schema')
|
|
186
|
+
return undefined;
|
|
187
|
+
return {
|
|
188
|
+
textFormat: {
|
|
189
|
+
type: 'json_schema',
|
|
190
|
+
structure: { jsonSchema: { name: JSON_SCHEMA_NAME, schema: JSON.stringify(rf.schema) } },
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
function responseFormatFromOutputConfig(outputConfig) {
|
|
195
|
+
const format = outputConfig?.textFormat;
|
|
196
|
+
if (format?.type !== 'json_schema' || !format.structure?.jsonSchema?.schema)
|
|
197
|
+
return undefined;
|
|
198
|
+
try {
|
|
199
|
+
return { type: 'json_schema', schema: JSON.parse(format.structure.jsonSchema.schema) };
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
return undefined;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/** The output format a native request asks for: `outputConfig.textFormat`, else the marker block Holo carries `json_object` through. */
|
|
206
|
+
export function responseFormatFromRequest(request) {
|
|
207
|
+
return (responseFormatFromOutputConfig(request?.outputConfig) ?? extractResponseFormat(request?.system).response_format);
|
|
208
|
+
}
|
|
122
209
|
function extractSystemMessages(messages) {
|
|
123
210
|
if (!messages?.length)
|
|
124
211
|
return { systemMessages: [], otherMessages: [] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.request.translator.js","sourceRoot":"","sources":["../../src/translators/bedrock.request.translator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAE9C,OAAO,
|
|
1
|
+
{"version":3,"file":"bedrock.request.translator.js","sourceRoot":"","sources":["../../src/translators/bedrock.request.translator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.content.delta.translator.d.ts","sourceRoot":"","sources":["../../../src/translators/streaming/bedrock.content.delta.translator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,iCAAiC,CAAC;AAE1E,qBAAa,6BAA8B,SAAQ,gBAAgB,CAAC,eAAe,EAAE,oBAAoB,CAAC;IACtG,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAM;IACtD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAM;cAE/C,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"bedrock.content.delta.translator.d.ts","sourceRoot":"","sources":["../../../src/translators/streaming/bedrock.content.delta.translator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,iCAAiC,CAAC;AAE1E,qBAAa,6BAA8B,SAAQ,gBAAgB,CAAC,eAAe,EAAE,oBAAoB,CAAC;IACtG,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAM;IACtD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAM;cAE/C,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;cA0DjF,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;CA0DtG"}
|
|
@@ -20,6 +20,21 @@ export class BedrockContentDeltaTranslator extends StreamTranslator {
|
|
|
20
20
|
}),
|
|
21
21
|
];
|
|
22
22
|
}
|
|
23
|
+
// Reasoning shares the delta union with text. Only `text` is streamable; the `signature`
|
|
24
|
+
// and `redactedContent` members of the same block carry nothing renderable.
|
|
25
|
+
if (typeof evt.delta.reasoningContent?.text === 'string') {
|
|
26
|
+
return [
|
|
27
|
+
pickDefined({
|
|
28
|
+
delta: {
|
|
29
|
+
provider: 'bedrock',
|
|
30
|
+
type: 'reasoning_delta',
|
|
31
|
+
index: evt.contentBlockIndex,
|
|
32
|
+
delta: { content: [{ type: 'reasoning', text: evt.delta.reasoningContent.text }] },
|
|
33
|
+
provider_delta: source,
|
|
34
|
+
},
|
|
35
|
+
}),
|
|
36
|
+
];
|
|
37
|
+
}
|
|
23
38
|
if (evt.delta.toolUse?.input !== undefined) {
|
|
24
39
|
return [
|
|
25
40
|
pickDefined({
|
|
@@ -62,6 +77,26 @@ export class BedrockContentDeltaTranslator extends StreamTranslator {
|
|
|
62
77
|
},
|
|
63
78
|
];
|
|
64
79
|
}
|
|
80
|
+
if (d.type === 'reasoning_delta') {
|
|
81
|
+
const blocks = Array.isArray(d.delta?.content) ? d.delta.content : [];
|
|
82
|
+
const text = blocks
|
|
83
|
+
.filter((b) => {
|
|
84
|
+
const block = b;
|
|
85
|
+
return block?.type === 'reasoning' && typeof block.text === 'string';
|
|
86
|
+
})
|
|
87
|
+
.map(b => b.text)
|
|
88
|
+
.join('');
|
|
89
|
+
if (!text.length)
|
|
90
|
+
return [];
|
|
91
|
+
return [
|
|
92
|
+
{
|
|
93
|
+
contentBlockDelta: {
|
|
94
|
+
contentBlockIndex: d.index ?? 0,
|
|
95
|
+
delta: { reasoningContent: { text } },
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
];
|
|
99
|
+
}
|
|
65
100
|
if (d.type === 'tool_arg_delta') {
|
|
66
101
|
const tc = d.delta?.tool_calls?.[0];
|
|
67
102
|
if (!tc || tc.type !== 'function')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.content.delta.translator.js","sourceRoot":"","sources":["../../../src/translators/streaming/bedrock.content.delta.translator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAG5D,MAAM,OAAO,6BAA8B,SAAQ,gBAAuD;IAC5F,YAAY,GAA6B,EAAE,CAAC;IAC5C,gBAAgB,GAAkC,EAAE,CAAC;IAErD,KAAK,CAAC,cAAc,CAAC,MAA4B;QACvD,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK;YAAE,OAAO,EAAE,CAAC;QAE3B,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO;gBACH,WAAW,CAAC;oBACR,KAAK,EAAE;wBACH,QAAQ,EAAE,SAAS;wBACnB,IAAI,EAAE,eAAwB;wBAC9B,KAAK,EAAE,GAAG,CAAC,iBAAiB;wBAC5B,KAAK,EAAE,EAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAC;wBAChC,cAAc,EAAE,MAAM;qBACzB;iBACJ,CAA6B;aACjC,CAAC;QACN,CAAC;QAED,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO;gBACH,WAAW,CAAC;oBACR,KAAK,EAAE;wBACH,QAAQ,EAAE,SAAS;wBACnB,IAAI,EAAE,gBAAyB;wBAC/B,KAAK,EAAE,GAAG,CAAC,iBAAiB;wBAC5B,KAAK,EAAE;4BACH,UAAU,EAAE;gCACR;oCACI,IAAI,EAAE,UAAmB;oCACzB,QAAQ,EAAE,EAAC,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAC;iCACpE;6BACJ;yBACJ;wBACD,cAAc,EAAE,MAAM;qBACzB;iBACJ,CAA6B;aACjC,CAAC;QACN,CAAC;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,MAAuB;QACpD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAElB,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;YAC/C,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC;YAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,CAAC;YACxD,OAAO;gBACH;oBACI,iBAAiB,EAAE;wBACf,iBAAiB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;wBAC/B,KAAK,EAAE,EAAC,IAAI,EAAC;qBAChB;iBACJ;aACJ,CAAC;QACN,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;YAC5C,IAAI,OAAO,QAAQ,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAC5C,OAAO;gBACH;oBACI,iBAAiB,EAAE;wBACf,iBAAiB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;wBAC/B,KAAK,EAAE,EAAC,OAAO,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAC,EAAC;qBACtC;iBACJ;aACJ,CAAC;QACN,CAAC;QAED,OAAO,EAAE,CAAC;IACd,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"bedrock.content.delta.translator.js","sourceRoot":"","sources":["../../../src/translators/streaming/bedrock.content.delta.translator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.stream.translator.d.ts","sourceRoot":"","sources":["../../../src/translators/streaming/bedrock.stream.translator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAC,kCAAkC,EAAC,MAAM,0CAA0C,CAAC;AAC5F,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAE/E,qBAAa,uBAAwB,SAAQ,gBAAgB,CAAC,eAAe,EAAE,oBAAoB,CAAC;IAK5F,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,2BAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IAP1C,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAM;IACtD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAM;gBAG1C,sBAAsB,EAAE,6BAA6B,EACrD,2BAA2B,EAAE,kCAAkC,EAC/D,sBAAsB,EAAE,6BAA6B,EACrD,qBAAqB,EAAE,4BAA4B;cAKxD,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;cAsBjF,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"bedrock.stream.translator.d.ts","sourceRoot":"","sources":["../../../src/translators/streaming/bedrock.stream.translator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAC,kCAAkC,EAAC,MAAM,0CAA0C,CAAC;AAC5F,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAE/E,qBAAa,uBAAwB,SAAQ,gBAAgB,CAAC,eAAe,EAAE,oBAAoB,CAAC;IAK5F,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,2BAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IAP1C,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAM;IACtD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAM;gBAG1C,sBAAsB,EAAE,6BAA6B,EACrD,2BAA2B,EAAE,kCAAkC,EAC/D,sBAAsB,EAAE,6BAA6B,EACrD,qBAAqB,EAAE,4BAA4B;cAKxD,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;cAsBjF,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;CAuBtG"}
|
|
@@ -46,6 +46,7 @@ export class BedrockStreamTranslator extends StreamTranslator {
|
|
|
46
46
|
case 'message_delta':
|
|
47
47
|
return this.contentBlockStartTranslator.fromHoloMany(source);
|
|
48
48
|
case 'content_delta':
|
|
49
|
+
case 'reasoning_delta':
|
|
49
50
|
case 'tool_arg_delta':
|
|
50
51
|
return this.contentDeltaTranslator.fromHoloMany(source);
|
|
51
52
|
case 'message_stop':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.stream.translator.js","sourceRoot":"","sources":["../../../src/translators/streaming/bedrock.stream.translator.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAC,kCAAkC,EAAC,MAAM,0CAA0C,CAAC;AAC5F,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAE/E,MAAM,OAAO,uBAAwB,SAAQ,gBAAuD;IAK3E;IACA;IACA;IACA;IAPX,YAAY,GAA6B,EAAE,CAAC;IAC5C,gBAAgB,GAAkC,EAAE,CAAC;IAE/D,YACqB,sBAAqD,EACrD,2BAA+D,EAC/D,sBAAqD,EACrD,qBAAmD;QAEpE,KAAK,EAAE,CAAC;QALS,2BAAsB,GAAtB,sBAAsB,CAA+B;QACrD,gCAA2B,GAA3B,2BAA2B,CAAoC;QAC/D,2BAAsB,GAAtB,sBAAsB,CAA+B;QACrD,0BAAqB,GAArB,qBAAqB,CAA8B;IAGxE,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,MAA4B;QACvD,MAAM,OAAO,GAA+B,EAAE,CAAC;QAE/C,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,MAAuB;QACpD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAElB,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;YAC/C,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;QAED,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACb,KAAK,eAAe;gBAChB,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC5D,KAAK,eAAe;gBAChB,OAAO,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACjE,KAAK,eAAe,CAAC;YACrB,KAAK,gBAAgB;gBACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC5D,KAAK,cAAc;gBACf,OAAO,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC3D;gBACI,OAAO,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"bedrock.stream.translator.js","sourceRoot":"","sources":["../../../src/translators/streaming/bedrock.stream.translator.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAC,kCAAkC,EAAC,MAAM,0CAA0C,CAAC;AAC5F,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAE/E,MAAM,OAAO,uBAAwB,SAAQ,gBAAuD;IAK3E;IACA;IACA;IACA;IAPX,YAAY,GAA6B,EAAE,CAAC;IAC5C,gBAAgB,GAAkC,EAAE,CAAC;IAE/D,YACqB,sBAAqD,EACrD,2BAA+D,EAC/D,sBAAqD,EACrD,qBAAmD;QAEpE,KAAK,EAAE,CAAC;QALS,2BAAsB,GAAtB,sBAAsB,CAA+B;QACrD,gCAA2B,GAA3B,2BAA2B,CAAoC;QAC/D,2BAAsB,GAAtB,sBAAsB,CAA+B;QACrD,0BAAqB,GAArB,qBAAqB,CAA8B;IAGxE,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,MAA4B;QACvD,MAAM,OAAO,GAA+B,EAAE,CAAC;QAE/C,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,MAAuB;QACpD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAElB,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;YAC/C,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;QAED,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACb,KAAK,eAAe;gBAChB,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC5D,KAAK,eAAe;gBAChB,OAAO,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACjE,KAAK,eAAe,CAAC;YACrB,KAAK,iBAAiB,CAAC;YACvB,KAAK,gBAAgB;gBACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC5D,KAAK,cAAc;gBACf,OAAO,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC3D;gBACI,OAAO,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -4,7 +4,12 @@ export interface BedrockEmbedRequest {
|
|
|
4
4
|
modelId: string;
|
|
5
5
|
body: Record<string, unknown>;
|
|
6
6
|
}
|
|
7
|
-
export
|
|
7
|
+
export interface BedrockImagesRequest {
|
|
8
|
+
modelId: string;
|
|
9
|
+
body: Record<string, unknown>;
|
|
10
|
+
}
|
|
11
|
+
export type BedrockRequest = BedrockConverseRequest | BedrockEmbedRequest | BedrockImagesRequest;
|
|
12
|
+
export declare function isImageGenerationModel(modelId: string): boolean;
|
|
8
13
|
export declare function isTitanEmbed(modelId: string): boolean;
|
|
9
14
|
export declare function isCohereEmbed(modelId: string): boolean;
|
|
10
15
|
//# sourceMappingURL=request.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.types.d.ts","sourceRoot":"","sources":["../../src/types/request.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,iCAAiC,CAAC;AAE1E,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,cAAc,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"request.types.d.ts","sourceRoot":"","sources":["../../src/types/request.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,iCAAiC,CAAC;AAE1E,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,cAAc,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,oBAAoB,CAAC;AAIjG,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAI/D;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
const IMAGE_MODEL_PREFIXES = ['amazon.nova-canvas', 'amazon.titan-image-generator', 'stability.'];
|
|
2
|
+
export function isImageGenerationModel(modelId) {
|
|
3
|
+
// Cross-region inference profiles prefix the bare model id (us.amazon.nova-canvas-v1:0).
|
|
4
|
+
const bare = modelId.replace(/^[a-z]{2,5}\./, '');
|
|
5
|
+
return IMAGE_MODEL_PREFIXES.some(p => modelId.startsWith(p) || bare.startsWith(p));
|
|
6
|
+
}
|
|
1
7
|
export function isTitanEmbed(modelId) {
|
|
2
8
|
return modelId.startsWith('amazon.titan-embed');
|
|
3
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.types.js","sourceRoot":"","sources":["../../src/types/request.types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request.types.js","sourceRoot":"","sources":["../../src/types/request.types.ts"],"names":[],"mappings":"AAgBA,MAAM,oBAAoB,GAAG,CAAC,oBAAoB,EAAE,8BAA8B,EAAE,YAAY,CAAC,CAAC;AAElG,MAAM,UAAU,sBAAsB,CAAC,OAAe;IAClD,yFAAyF;IACzF,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAClD,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IACxC,OAAO,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IACzC,OAAO,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAC9C,CAAC"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "1.
|
|
1
|
+
export declare const VERSION = "1.9.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@holokai/holo-provider-bedrock",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Amazon Bedrock provider plugin for Holo LLM Gateway",
|
|
6
6
|
"author": "Holokai",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
],
|
|
49
49
|
"sideEffects": false,
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"@holokai/holo-sdk": "^1.
|
|
51
|
+
"@holokai/holo-sdk": "^1.9.0"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@aws-sdk/client-bedrock": "^3.1088.0",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@types/node": "^26.1.1",
|
|
60
60
|
"typescript": "^6.0.3",
|
|
61
|
-
"@holokai/holo-test": "1.
|
|
61
|
+
"@holokai/holo-test": "1.9.0"
|
|
62
62
|
},
|
|
63
63
|
"holoPlugin": {
|
|
64
64
|
"type": "PROVIDER"
|