@x12i/openrouter-runtime 1.4.0 → 2.1.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/index.cjs +25 -65
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +17 -1
- package/dist/index.d.ts +17 -1
- package/dist/index.js +28 -65
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/dist/index.cjs
CHANGED
|
@@ -29,6 +29,7 @@ __export(index_exports, {
|
|
|
29
29
|
createOpenRouterRuntime: () => createOpenRouterRuntime,
|
|
30
30
|
decodeProviderMetadata: () => decodeProviderMetadata,
|
|
31
31
|
isRuntimeLoggingEnabled: () => isRuntimeLoggingEnabled,
|
|
32
|
+
packProviderRecord: () => packProviderRecord,
|
|
32
33
|
toProviderMetadata: () => toProviderMetadata
|
|
33
34
|
});
|
|
34
35
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -929,77 +930,34 @@ function buildSubagentTool(policy, fallbackReasoning) {
|
|
|
929
930
|
}
|
|
930
931
|
|
|
931
932
|
// src/utils/provider-metadata.ts
|
|
933
|
+
var import_provider_metadata = require("@x12i/provider-metadata");
|
|
932
934
|
var OPENROUTER_METADATA_LIMITS = {
|
|
933
935
|
maxPairs: 16,
|
|
934
936
|
maxKeyLength: 64,
|
|
935
937
|
maxValueLength: 512
|
|
936
938
|
};
|
|
937
|
-
var PROVIDER_RECORD_CHUNK = 256;
|
|
938
|
-
var PROVIDER_RECORD_MAX_CHUNKS = 16;
|
|
939
939
|
function toProviderMetadata(metadata, agentId, _limits, base) {
|
|
940
|
-
return
|
|
940
|
+
return (0, import_provider_metadata.packMetadata)(base, metadata, agentLayer(agentId));
|
|
941
941
|
}
|
|
942
|
-
function
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
if (typeof chunk !== "string") break;
|
|
948
|
-
parts.push(chunk);
|
|
949
|
-
}
|
|
950
|
-
if (!parts.length) return {};
|
|
951
|
-
const parsed = JSON.parse(Buffer.from(parts.join(""), "base64").toString("utf8"));
|
|
952
|
-
if (!isRecord2(parsed)) return {};
|
|
953
|
-
const record = {};
|
|
954
|
-
for (const [key, value] of Object.entries(parsed)) {
|
|
955
|
-
if (typeof value === "string") record[key] = value;
|
|
956
|
-
}
|
|
957
|
-
return record;
|
|
958
|
-
}
|
|
959
|
-
function encodeProviderRecord(map) {
|
|
960
|
-
const keys = Object.keys(map).sort();
|
|
961
|
-
if (!keys.length) return void 0;
|
|
962
|
-
const ordered = {};
|
|
963
|
-
for (const key of keys) {
|
|
964
|
-
const value = map[key];
|
|
965
|
-
if (value !== void 0) ordered[key] = value;
|
|
966
|
-
}
|
|
967
|
-
const encoded = Buffer.from(JSON.stringify(ordered), "utf8").toString("base64");
|
|
968
|
-
const chunks = Math.ceil(encoded.length / PROVIDER_RECORD_CHUNK);
|
|
969
|
-
if (chunks > PROVIDER_RECORD_MAX_CHUNKS) {
|
|
970
|
-
throw new Error(
|
|
971
|
-
`METADATA_RECORD_TOO_LARGE: provider metadata is ${encoded.length} base64 characters; the maximum is ${PROVIDER_RECORD_CHUNK * PROVIDER_RECORD_MAX_CHUNKS}.`
|
|
972
|
-
);
|
|
973
|
-
}
|
|
974
|
-
const wire = {};
|
|
975
|
-
for (let index = 0; index < chunks; index += 1) {
|
|
976
|
-
wire[`m.${index}`] = encoded.slice(index * PROVIDER_RECORD_CHUNK, (index + 1) * PROVIDER_RECORD_CHUNK);
|
|
977
|
-
}
|
|
978
|
-
return wire;
|
|
979
|
-
}
|
|
980
|
-
function collectProviderStrings(metadata, agentId, base) {
|
|
981
|
-
const map = {};
|
|
982
|
-
appendStrings(map, base);
|
|
983
|
-
appendStrings(map, metadata);
|
|
984
|
-
const trimmedAgentId = agentId?.trim();
|
|
985
|
-
if (trimmedAgentId) map.agentId = trimmedAgentId;
|
|
986
|
-
return map;
|
|
987
|
-
}
|
|
988
|
-
function appendStrings(target, metadata) {
|
|
989
|
-
if (!metadata) return;
|
|
990
|
-
for (const [key, value] of Object.entries(metadata)) {
|
|
991
|
-
const asString = asMetadataString(value);
|
|
992
|
-
if (asString !== void 0) target[key] = asString;
|
|
942
|
+
function packProviderRecord(metadata, agentId, base, packer) {
|
|
943
|
+
const layers = [base, metadata, agentLayer(agentId)];
|
|
944
|
+
if (!packer) {
|
|
945
|
+
const wire = (0, import_provider_metadata.packMetadata)(...layers);
|
|
946
|
+
return wire ? { wire } : {};
|
|
993
947
|
}
|
|
948
|
+
const packed = packer.pack(...layers);
|
|
949
|
+
const warning = (0, import_provider_metadata.metadataTrimWarning)(packed.dropped);
|
|
950
|
+
return {
|
|
951
|
+
...packed.wire ? { wire: packed.wire } : {},
|
|
952
|
+
...warning ? { warning } : {}
|
|
953
|
+
};
|
|
994
954
|
}
|
|
995
|
-
function
|
|
996
|
-
|
|
997
|
-
if (typeof value === "boolean") return value ? "true" : "false";
|
|
998
|
-
if (typeof value === "number" && Number.isFinite(value)) return String(value);
|
|
999
|
-
return void 0;
|
|
955
|
+
function decodeProviderMetadata(wire) {
|
|
956
|
+
return (0, import_provider_metadata.openMetadata)(wire);
|
|
1000
957
|
}
|
|
1001
|
-
function
|
|
1002
|
-
|
|
958
|
+
function agentLayer(agentId) {
|
|
959
|
+
const trimmed = agentId?.trim();
|
|
960
|
+
return trimmed ? { agentId: trimmed } : void 0;
|
|
1003
961
|
}
|
|
1004
962
|
|
|
1005
963
|
// src/runtime/runtime.ts
|
|
@@ -1031,7 +989,7 @@ function compileRuntimeRequest(request, defaults, options = { apiKey: "" }, cont
|
|
|
1031
989
|
const assembled = apiMode === "chat" ? buildChatBody(request, baseBody) : buildResponsesBody(request, baseBody);
|
|
1032
990
|
let body = effectiveContext.finalizeBody ? effectiveContext.finalizeBody(assembled) : assembled;
|
|
1033
991
|
enforceStreamingPolicyForRun(body, warnings, effectiveContext);
|
|
1034
|
-
body = attachProviderMetadata(body, request);
|
|
992
|
+
body = attachProviderMetadata(body, request, options, warnings);
|
|
1035
993
|
return {
|
|
1036
994
|
apiMode,
|
|
1037
995
|
url: endpointFor(options.baseUrl ?? "https://openrouter.ai/api/v1", apiMode),
|
|
@@ -1040,10 +998,11 @@ function compileRuntimeRequest(request, defaults, options = { apiKey: "" }, cont
|
|
|
1040
998
|
warnings
|
|
1041
999
|
};
|
|
1042
1000
|
}
|
|
1043
|
-
function attachProviderMetadata(body, request) {
|
|
1001
|
+
function attachProviderMetadata(body, request, options, warnings) {
|
|
1044
1002
|
const fromBody = isRecord(body.metadata) ? body.metadata : void 0;
|
|
1045
|
-
const
|
|
1046
|
-
if (
|
|
1003
|
+
const packed = packProviderRecord(request.metadata, request.agentId, fromBody, options.metadataPacker);
|
|
1004
|
+
if (packed.warning) warnings.push(packed.warning);
|
|
1005
|
+
if (packed.wire) return { ...body, metadata: packed.wire };
|
|
1047
1006
|
if (body.metadata === void 0) return body;
|
|
1048
1007
|
const rest = { ...body };
|
|
1049
1008
|
delete rest.metadata;
|
|
@@ -1953,6 +1912,7 @@ function operatorHintFor(code) {
|
|
|
1953
1912
|
createOpenRouterRuntime,
|
|
1954
1913
|
decodeProviderMetadata,
|
|
1955
1914
|
isRuntimeLoggingEnabled,
|
|
1915
|
+
packProviderRecord,
|
|
1956
1916
|
toProviderMetadata
|
|
1957
1917
|
});
|
|
1958
1918
|
//# sourceMappingURL=index.cjs.map
|