@agentgazer/shared 0.2.0 → 0.3.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.
Files changed (47) hide show
  1. package/dist/__tests__/normalize.test.d.ts +2 -0
  2. package/dist/__tests__/normalize.test.d.ts.map +1 -0
  3. package/dist/__tests__/normalize.test.js +159 -0
  4. package/dist/__tests__/normalize.test.js.map +1 -0
  5. package/dist/__tests__/pricing.test.js +14 -27
  6. package/dist/__tests__/pricing.test.js.map +1 -1
  7. package/dist/__tests__/providers.test.js +59 -32
  8. package/dist/__tests__/providers.test.js.map +1 -1
  9. package/dist/__tests__/simhash.test.d.ts +2 -0
  10. package/dist/__tests__/simhash.test.d.ts.map +1 -0
  11. package/dist/__tests__/simhash.test.js +107 -0
  12. package/dist/__tests__/simhash.test.js.map +1 -0
  13. package/dist/index.d.ts +6 -3
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +19 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/logger.d.ts.map +1 -1
  18. package/dist/logger.js +3 -2
  19. package/dist/logger.js.map +1 -1
  20. package/dist/models.d.ts +4 -1
  21. package/dist/models.d.ts.map +1 -1
  22. package/dist/models.js +22 -34
  23. package/dist/models.js.map +1 -1
  24. package/dist/normalize.d.ts +35 -0
  25. package/dist/normalize.d.ts.map +1 -0
  26. package/dist/normalize.js +119 -0
  27. package/dist/normalize.js.map +1 -0
  28. package/dist/parsers.d.ts.map +1 -1
  29. package/dist/parsers.js +0 -1
  30. package/dist/parsers.js.map +1 -1
  31. package/dist/pricing.d.ts +6 -0
  32. package/dist/pricing.d.ts.map +1 -1
  33. package/dist/pricing.js +38 -8
  34. package/dist/pricing.js.map +1 -1
  35. package/dist/provider-validator.d.ts +19 -0
  36. package/dist/provider-validator.d.ts.map +1 -0
  37. package/dist/provider-validator.js +321 -0
  38. package/dist/provider-validator.js.map +1 -0
  39. package/dist/providers.d.ts +30 -2
  40. package/dist/providers.d.ts.map +1 -1
  41. package/dist/providers.js +105 -19
  42. package/dist/providers.js.map +1 -1
  43. package/dist/simhash.d.ts +28 -0
  44. package/dist/simhash.d.ts.map +1 -0
  45. package/dist/simhash.js +98 -0
  46. package/dist/simhash.js.map +1 -0
  47. package/package.json +1 -1
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const simhash_js_1 = require("../simhash.js");
5
+ (0, vitest_1.describe)("computeSimHash", () => {
6
+ (0, vitest_1.it)("returns a bigint for any text input", () => {
7
+ const hash = (0, simhash_js_1.computeSimHash)("hello world");
8
+ (0, vitest_1.expect)(typeof hash).toBe("bigint");
9
+ });
10
+ (0, vitest_1.it)("returns different hashes for different text", () => {
11
+ const hash1 = (0, simhash_js_1.computeSimHash)("hello world");
12
+ const hash2 = (0, simhash_js_1.computeSimHash)("goodbye world");
13
+ (0, vitest_1.expect)(hash1).not.toBe(hash2);
14
+ });
15
+ (0, vitest_1.it)("returns identical hash for identical text", () => {
16
+ const hash1 = (0, simhash_js_1.computeSimHash)("the quick brown fox");
17
+ const hash2 = (0, simhash_js_1.computeSimHash)("the quick brown fox");
18
+ (0, vitest_1.expect)(hash1).toBe(hash2);
19
+ });
20
+ (0, vitest_1.it)("returns similar hashes for similar text", () => {
21
+ const hash1 = (0, simhash_js_1.computeSimHash)("the quick brown fox jumps over the lazy dog");
22
+ const hash2 = (0, simhash_js_1.computeSimHash)("the quick brown fox jumps over a lazy dog");
23
+ // Similar text should have low Hamming distance
24
+ const distance = (0, simhash_js_1.hammingDistance)(hash1, hash2);
25
+ (0, vitest_1.expect)(distance).toBeLessThan(20);
26
+ });
27
+ (0, vitest_1.it)("handles empty string", () => {
28
+ const hash = (0, simhash_js_1.computeSimHash)("");
29
+ (0, vitest_1.expect)(typeof hash).toBe("bigint");
30
+ });
31
+ (0, vitest_1.it)("handles unicode text", () => {
32
+ const hash = (0, simhash_js_1.computeSimHash)("你好世界");
33
+ (0, vitest_1.expect)(typeof hash).toBe("bigint");
34
+ });
35
+ (0, vitest_1.it)("handles very long text", () => {
36
+ const longText = "word ".repeat(1000);
37
+ const hash = (0, simhash_js_1.computeSimHash)(longText);
38
+ (0, vitest_1.expect)(typeof hash).toBe("bigint");
39
+ });
40
+ });
41
+ (0, vitest_1.describe)("hammingDistance", () => {
42
+ (0, vitest_1.it)("returns 0 for identical hashes", () => {
43
+ const hash = (0, simhash_js_1.computeSimHash)("hello");
44
+ (0, vitest_1.expect)((0, simhash_js_1.hammingDistance)(hash, hash)).toBe(0);
45
+ });
46
+ (0, vitest_1.it)("returns the number of differing bits", () => {
47
+ // 0b0001 vs 0b0010 = 2 bits different
48
+ (0, vitest_1.expect)((0, simhash_js_1.hammingDistance)(1n, 2n)).toBe(2);
49
+ // 0b0001 vs 0b0011 = 1 bit different
50
+ (0, vitest_1.expect)((0, simhash_js_1.hammingDistance)(1n, 3n)).toBe(1);
51
+ // 0b0000 vs 0b1111 = 4 bits different
52
+ (0, vitest_1.expect)((0, simhash_js_1.hammingDistance)(0n, 15n)).toBe(4);
53
+ });
54
+ (0, vitest_1.it)("returns a value between 0 and 64 for any hash pair", () => {
55
+ const hash1 = (0, simhash_js_1.computeSimHash)("foo bar baz");
56
+ const hash2 = (0, simhash_js_1.computeSimHash)("completely different text here");
57
+ const distance = (0, simhash_js_1.hammingDistance)(hash1, hash2);
58
+ (0, vitest_1.expect)(distance).toBeGreaterThanOrEqual(0);
59
+ (0, vitest_1.expect)(distance).toBeLessThanOrEqual(64);
60
+ });
61
+ (0, vitest_1.it)("is symmetric", () => {
62
+ const hash1 = (0, simhash_js_1.computeSimHash)("alpha");
63
+ const hash2 = (0, simhash_js_1.computeSimHash)("beta");
64
+ (0, vitest_1.expect)((0, simhash_js_1.hammingDistance)(hash1, hash2)).toBe((0, simhash_js_1.hammingDistance)(hash2, hash1));
65
+ });
66
+ });
67
+ (0, vitest_1.describe)("isSimilar", () => {
68
+ (0, vitest_1.it)("returns true for identical text", () => {
69
+ const hash = (0, simhash_js_1.computeSimHash)("same text");
70
+ (0, vitest_1.expect)((0, simhash_js_1.isSimilar)(hash, hash)).toBe(true);
71
+ });
72
+ (0, vitest_1.it)("returns true for identical text", () => {
73
+ const hash1 = (0, simhash_js_1.computeSimHash)("the user wants to search for products");
74
+ const hash2 = (0, simhash_js_1.computeSimHash)("the user wants to search for products");
75
+ (0, vitest_1.expect)((0, simhash_js_1.isSimilar)(hash1, hash2)).toBe(true);
76
+ });
77
+ (0, vitest_1.it)("may or may not be similar for slightly different text (SimHash property)", () => {
78
+ const hash1 = (0, simhash_js_1.computeSimHash)("the user wants to search for products");
79
+ const hash2 = (0, simhash_js_1.computeSimHash)("the user wants to search for product");
80
+ // SimHash similarity depends on the specific implementation
81
+ // We just verify it returns a boolean
82
+ (0, vitest_1.expect)(typeof (0, simhash_js_1.isSimilar)(hash1, hash2)).toBe("boolean");
83
+ });
84
+ (0, vitest_1.it)("returns false for completely different text", () => {
85
+ const hash1 = (0, simhash_js_1.computeSimHash)("hello world how are you today");
86
+ const hash2 = (0, simhash_js_1.computeSimHash)("xyzzy plugh foo bar baz qux");
87
+ (0, vitest_1.expect)((0, simhash_js_1.isSimilar)(hash1, hash2)).toBe(false);
88
+ });
89
+ (0, vitest_1.it)("respects custom threshold", () => {
90
+ const hash1 = (0, simhash_js_1.computeSimHash)("example text one");
91
+ const hash2 = (0, simhash_js_1.computeSimHash)("example text two");
92
+ const distance = (0, simhash_js_1.hammingDistance)(hash1, hash2);
93
+ // Should be similar with a high threshold
94
+ (0, vitest_1.expect)((0, simhash_js_1.isSimilar)(hash1, hash2, 64)).toBe(true);
95
+ // May not be similar with a very low threshold
96
+ if (distance > 1) {
97
+ (0, vitest_1.expect)((0, simhash_js_1.isSimilar)(hash1, hash2, 1)).toBe(false);
98
+ }
99
+ });
100
+ (0, vitest_1.it)("uses default threshold of 3", () => {
101
+ // Verify the default behavior
102
+ const hash1 = (0, simhash_js_1.computeSimHash)("test input");
103
+ const hash2 = (0, simhash_js_1.computeSimHash)("test input");
104
+ (0, vitest_1.expect)((0, simhash_js_1.isSimilar)(hash1, hash2)).toBe(true);
105
+ });
106
+ });
107
+ //# sourceMappingURL=simhash.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simhash.test.js","sourceRoot":"","sources":["../../src/__tests__/simhash.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,10 @@
1
1
  export { AgentEventSchema, BatchEventsSchema, EventType, Source, type AgentEvent, type BatchEvents, } from "./types.js";
2
- export { getModelPricing, calculateCost, listSupportedModels, type ModelPricing, } from "./pricing.js";
3
- export { detectProvider, detectProviderByHostname, getProviderBaseUrl, getProviderAuthHeader, parsePathPrefix, parseAgentPath, KNOWN_PROVIDER_NAMES, type ProviderName, } from "./providers.js";
2
+ export { getModelPricing, calculateCost, listSupportedModels, getProviderModels, type ModelPricing, type ProviderModel, } from "./pricing.js";
3
+ export { detectProvider, detectProviderByHostname, getProviderBaseUrl, getProviderRootUrl, getProviderChatEndpoint, getProviderAuthHeader, providerUsesPathRouting, parsePathPrefix, parseAgentPath, KNOWN_PROVIDER_NAMES, SELECTABLE_PROVIDER_NAMES, type ProviderName, } from "./providers.js";
4
4
  export { parseProviderResponse, type ParsedResponse, } from "./parsers.js";
5
5
  export { createLogger, type Logger, type LogLevel, } from "./logger.js";
6
- export { SELECTABLE_MODELS, getSelectableModels, } from "./models.js";
6
+ export { SELECTABLE_MODELS, PROVIDER_MODELS, getSelectableModels, } from "./models.js";
7
+ export { validateProviderKey, testProviderModel, type ValidationResult, } from "./provider-validator.js";
8
+ export { computeSimHash, hammingDistance, isSimilar, } from "./simhash.js";
9
+ export { normalizePrompt, extractUserMessage, extractToolCalls, extractAndNormalizePrompt, type ChatMessage, } from "./normalize.js";
7
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,MAAM,EACN,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,KAAK,MAAM,EACX,KAAK,QAAQ,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,MAAM,EACN,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,KAAK,MAAM,EACX,KAAK,QAAQ,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,cAAc,EACd,eAAe,EACf,SAAS,GACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSelectableModels = exports.SELECTABLE_MODELS = exports.createLogger = exports.parseProviderResponse = exports.KNOWN_PROVIDER_NAMES = exports.parseAgentPath = exports.parsePathPrefix = exports.getProviderAuthHeader = exports.getProviderBaseUrl = exports.detectProviderByHostname = exports.detectProvider = exports.listSupportedModels = exports.calculateCost = exports.getModelPricing = exports.Source = exports.EventType = exports.BatchEventsSchema = exports.AgentEventSchema = void 0;
3
+ exports.extractAndNormalizePrompt = exports.extractToolCalls = exports.extractUserMessage = exports.normalizePrompt = exports.isSimilar = exports.hammingDistance = exports.computeSimHash = exports.testProviderModel = exports.validateProviderKey = exports.getSelectableModels = exports.PROVIDER_MODELS = exports.SELECTABLE_MODELS = exports.createLogger = exports.parseProviderResponse = exports.SELECTABLE_PROVIDER_NAMES = exports.KNOWN_PROVIDER_NAMES = exports.parseAgentPath = exports.parsePathPrefix = exports.providerUsesPathRouting = exports.getProviderAuthHeader = exports.getProviderChatEndpoint = exports.getProviderRootUrl = exports.getProviderBaseUrl = exports.detectProviderByHostname = exports.detectProvider = exports.getProviderModels = exports.listSupportedModels = exports.calculateCost = exports.getModelPricing = exports.Source = exports.EventType = exports.BatchEventsSchema = exports.AgentEventSchema = void 0;
4
4
  var types_js_1 = require("./types.js");
5
5
  Object.defineProperty(exports, "AgentEventSchema", { enumerable: true, get: function () { return types_js_1.AgentEventSchema; } });
6
6
  Object.defineProperty(exports, "BatchEventsSchema", { enumerable: true, get: function () { return types_js_1.BatchEventsSchema; } });
@@ -10,19 +10,37 @@ var pricing_js_1 = require("./pricing.js");
10
10
  Object.defineProperty(exports, "getModelPricing", { enumerable: true, get: function () { return pricing_js_1.getModelPricing; } });
11
11
  Object.defineProperty(exports, "calculateCost", { enumerable: true, get: function () { return pricing_js_1.calculateCost; } });
12
12
  Object.defineProperty(exports, "listSupportedModels", { enumerable: true, get: function () { return pricing_js_1.listSupportedModels; } });
13
+ Object.defineProperty(exports, "getProviderModels", { enumerable: true, get: function () { return pricing_js_1.getProviderModels; } });
13
14
  var providers_js_1 = require("./providers.js");
14
15
  Object.defineProperty(exports, "detectProvider", { enumerable: true, get: function () { return providers_js_1.detectProvider; } });
15
16
  Object.defineProperty(exports, "detectProviderByHostname", { enumerable: true, get: function () { return providers_js_1.detectProviderByHostname; } });
16
17
  Object.defineProperty(exports, "getProviderBaseUrl", { enumerable: true, get: function () { return providers_js_1.getProviderBaseUrl; } });
18
+ Object.defineProperty(exports, "getProviderRootUrl", { enumerable: true, get: function () { return providers_js_1.getProviderRootUrl; } });
19
+ Object.defineProperty(exports, "getProviderChatEndpoint", { enumerable: true, get: function () { return providers_js_1.getProviderChatEndpoint; } });
17
20
  Object.defineProperty(exports, "getProviderAuthHeader", { enumerable: true, get: function () { return providers_js_1.getProviderAuthHeader; } });
21
+ Object.defineProperty(exports, "providerUsesPathRouting", { enumerable: true, get: function () { return providers_js_1.providerUsesPathRouting; } });
18
22
  Object.defineProperty(exports, "parsePathPrefix", { enumerable: true, get: function () { return providers_js_1.parsePathPrefix; } });
19
23
  Object.defineProperty(exports, "parseAgentPath", { enumerable: true, get: function () { return providers_js_1.parseAgentPath; } });
20
24
  Object.defineProperty(exports, "KNOWN_PROVIDER_NAMES", { enumerable: true, get: function () { return providers_js_1.KNOWN_PROVIDER_NAMES; } });
25
+ Object.defineProperty(exports, "SELECTABLE_PROVIDER_NAMES", { enumerable: true, get: function () { return providers_js_1.SELECTABLE_PROVIDER_NAMES; } });
21
26
  var parsers_js_1 = require("./parsers.js");
22
27
  Object.defineProperty(exports, "parseProviderResponse", { enumerable: true, get: function () { return parsers_js_1.parseProviderResponse; } });
23
28
  var logger_js_1 = require("./logger.js");
24
29
  Object.defineProperty(exports, "createLogger", { enumerable: true, get: function () { return logger_js_1.createLogger; } });
25
30
  var models_js_1 = require("./models.js");
26
31
  Object.defineProperty(exports, "SELECTABLE_MODELS", { enumerable: true, get: function () { return models_js_1.SELECTABLE_MODELS; } });
32
+ Object.defineProperty(exports, "PROVIDER_MODELS", { enumerable: true, get: function () { return models_js_1.PROVIDER_MODELS; } });
27
33
  Object.defineProperty(exports, "getSelectableModels", { enumerable: true, get: function () { return models_js_1.getSelectableModels; } });
34
+ var provider_validator_js_1 = require("./provider-validator.js");
35
+ Object.defineProperty(exports, "validateProviderKey", { enumerable: true, get: function () { return provider_validator_js_1.validateProviderKey; } });
36
+ Object.defineProperty(exports, "testProviderModel", { enumerable: true, get: function () { return provider_validator_js_1.testProviderModel; } });
37
+ var simhash_js_1 = require("./simhash.js");
38
+ Object.defineProperty(exports, "computeSimHash", { enumerable: true, get: function () { return simhash_js_1.computeSimHash; } });
39
+ Object.defineProperty(exports, "hammingDistance", { enumerable: true, get: function () { return simhash_js_1.hammingDistance; } });
40
+ Object.defineProperty(exports, "isSimilar", { enumerable: true, get: function () { return simhash_js_1.isSimilar; } });
41
+ var normalize_js_1 = require("./normalize.js");
42
+ Object.defineProperty(exports, "normalizePrompt", { enumerable: true, get: function () { return normalize_js_1.normalizePrompt; } });
43
+ Object.defineProperty(exports, "extractUserMessage", { enumerable: true, get: function () { return normalize_js_1.extractUserMessage; } });
44
+ Object.defineProperty(exports, "extractToolCalls", { enumerable: true, get: function () { return normalize_js_1.extractToolCalls; } });
45
+ Object.defineProperty(exports, "extractAndNormalizePrompt", { enumerable: true, get: function () { return normalize_js_1.extractAndNormalizePrompt; } });
28
46
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAOoB;AANlB,4GAAA,gBAAgB,OAAA;AAChB,6GAAA,iBAAiB,OAAA;AACjB,qGAAA,SAAS,OAAA;AACT,kGAAA,MAAM,OAAA;AAKR,2CAKsB;AAJpB,6GAAA,eAAe,OAAA;AACf,2GAAA,aAAa,OAAA;AACb,iHAAA,mBAAmB,OAAA;AAIrB,+CASwB;AARtB,8GAAA,cAAc,OAAA;AACd,wHAAA,wBAAwB,OAAA;AACxB,kHAAA,kBAAkB,OAAA;AAClB,qHAAA,qBAAqB,OAAA;AACrB,+GAAA,eAAe,OAAA;AACf,8GAAA,cAAc,OAAA;AACd,oHAAA,oBAAoB,OAAA;AAItB,2CAGsB;AAFpB,mHAAA,qBAAqB,OAAA;AAIvB,yCAIqB;AAHnB,yGAAA,YAAY,OAAA;AAKd,yCAGqB;AAFnB,8GAAA,iBAAiB,OAAA;AACjB,gHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAOoB;AANlB,4GAAA,gBAAgB,OAAA;AAChB,6GAAA,iBAAiB,OAAA;AACjB,qGAAA,SAAS,OAAA;AACT,kGAAA,MAAM,OAAA;AAKR,2CAOsB;AANpB,6GAAA,eAAe,OAAA;AACf,2GAAA,aAAa,OAAA;AACb,iHAAA,mBAAmB,OAAA;AACnB,+GAAA,iBAAiB,OAAA;AAKnB,+CAawB;AAZtB,8GAAA,cAAc,OAAA;AACd,wHAAA,wBAAwB,OAAA;AACxB,kHAAA,kBAAkB,OAAA;AAClB,kHAAA,kBAAkB,OAAA;AAClB,uHAAA,uBAAuB,OAAA;AACvB,qHAAA,qBAAqB,OAAA;AACrB,uHAAA,uBAAuB,OAAA;AACvB,+GAAA,eAAe,OAAA;AACf,8GAAA,cAAc,OAAA;AACd,oHAAA,oBAAoB,OAAA;AACpB,yHAAA,yBAAyB,OAAA;AAI3B,2CAGsB;AAFpB,mHAAA,qBAAqB,OAAA;AAIvB,yCAIqB;AAHnB,yGAAA,YAAY,OAAA;AAKd,yCAIqB;AAHnB,8GAAA,iBAAiB,OAAA;AACjB,4GAAA,eAAe,OAAA;AACf,gHAAA,mBAAmB,OAAA;AAGrB,iEAIiC;AAH/B,4HAAA,mBAAmB,OAAA;AACnB,0HAAA,iBAAiB,OAAA;AAInB,2CAIsB;AAHpB,4GAAA,cAAc,OAAA;AACd,6GAAA,eAAe,OAAA;AACf,uGAAA,SAAS,OAAA;AAGX,+CAMwB;AALtB,+GAAA,eAAe,OAAA;AACf,kHAAA,kBAAkB,OAAA;AAClB,gHAAA,gBAAgB,OAAA;AAChB,yHAAA,yBAAyB,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAwC3D,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC/D;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAoCtD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAwC3D,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC/D;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAqCtD"}
package/dist/logger.js CHANGED
@@ -26,11 +26,12 @@ function formatPretty(entry) {
26
26
  return `${prefix} ${message}${extraStr}`;
27
27
  }
28
28
  function createLogger(component) {
29
- const minLevel = getMinLevel();
30
- const json = isProduction();
31
29
  function log(level, message, extra) {
30
+ // Check level on each call so LOG_LEVEL changes take effect
31
+ const minLevel = getMinLevel();
32
32
  if (LEVEL_PRIORITY[level] < LEVEL_PRIORITY[minLevel])
33
33
  return;
34
+ const json = isProduction();
34
35
  const entry = {
35
36
  timestamp: new Date().toISOString(),
36
37
  level,
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
package/dist/models.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Selectable models per provider for dashboard dropdowns.
2
+ * Selectable models per provider for dashboard dropdowns and OpenClaw config.
3
+ * Single source of truth for all model lists.
3
4
  * Only includes commonly available models (excludes those requiring special access).
4
5
  */
5
6
  export declare const SELECTABLE_MODELS: Record<string, string[]>;
@@ -8,4 +9,6 @@ export declare const SELECTABLE_MODELS: Record<string, string[]>;
8
9
  * Returns empty array if provider is unknown.
9
10
  */
10
11
  export declare function getSelectableModels(provider: string): string[];
12
+ /** Alias for SELECTABLE_MODELS for API consistency */
13
+ export declare const PROVIDER_MODELS: Record<string, string[]>;
11
14
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAqEtD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAE9D"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAsDtD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAE9D;AAED,sDAAsD;AACtD,eAAO,MAAM,eAAe,0BAAoB,CAAC"}
package/dist/models.js CHANGED
@@ -1,19 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SELECTABLE_MODELS = void 0;
3
+ exports.PROVIDER_MODELS = exports.SELECTABLE_MODELS = void 0;
4
4
  exports.getSelectableModels = getSelectableModels;
5
5
  /**
6
- * Selectable models per provider for dashboard dropdowns.
6
+ * Selectable models per provider for dashboard dropdowns and OpenClaw config.
7
+ * Single source of truth for all model lists.
7
8
  * Only includes commonly available models (excludes those requiring special access).
8
9
  */
9
10
  exports.SELECTABLE_MODELS = {
10
11
  openai: [
11
12
  "gpt-4o",
12
13
  "gpt-4o-mini",
13
- "gpt-4-turbo",
14
14
  "o1",
15
- "o1-mini",
16
- "o1-pro",
17
15
  "o3-mini",
18
16
  ],
19
17
  anthropic: [
@@ -23,57 +21,45 @@ exports.SELECTABLE_MODELS = {
23
21
  "claude-haiku-4-5-20251001",
24
22
  ],
25
23
  google: [
24
+ "gemini-3-pro-preview",
25
+ "gemini-3-flash-preview",
26
26
  "gemini-2.5-pro",
27
27
  "gemini-2.5-flash",
28
- "gemini-2.0-flash",
29
- "gemini-2.0-flash-lite",
28
+ "gemini-2.5-flash-lite",
30
29
  ],
31
30
  mistral: [
32
31
  "mistral-large-latest",
33
- "mistral-medium-latest",
34
32
  "mistral-small-latest",
35
33
  "codestral-latest",
36
- "open-mistral-7b",
37
- "open-mixtral-8x7b",
38
- "open-mixtral-8x22b",
39
34
  ],
40
35
  cohere: [
41
- "command-r-plus",
42
- "command-r",
43
- "command",
44
- "command-light",
36
+ "command-a-03-2025",
37
+ "command-r-plus-08-2024",
38
+ "command-r-08-2024",
39
+ "command-r7b-12-2024",
45
40
  ],
46
41
  deepseek: [
47
42
  "deepseek-chat",
48
- "deepseek-coder",
49
43
  "deepseek-reasoner",
50
44
  ],
51
45
  moonshot: [
52
46
  "moonshot-v1-8k",
53
47
  "moonshot-v1-32k",
54
48
  "moonshot-v1-128k",
49
+ "kimi-k2.5",
50
+ "kimi-k2-thinking",
55
51
  ],
56
52
  zhipu: [
57
- "glm-4-plus",
58
- "glm-4",
59
- "glm-4-air",
60
- "glm-4-airx",
61
- "glm-4-flash",
53
+ "glm-4.7",
54
+ "glm-4.7-flash",
55
+ "glm-4.5",
56
+ "glm-4.5-flash",
62
57
  ],
63
58
  minimax: [
64
- "abab6.5s-chat",
65
- "abab6.5-chat",
66
- "abab5.5-chat",
67
- ],
68
- baichuan: [
69
- "Baichuan4",
70
- "Baichuan3-Turbo",
71
- "Baichuan2-Turbo",
72
- ],
73
- yi: [
74
- "yi-large",
75
- "yi-medium",
76
- "yi-spark",
59
+ "MiniMax-M2.1",
60
+ "MiniMax-M2.1-lightning",
61
+ "MiniMax-M2",
62
+ "M2-her",
77
63
  ],
78
64
  };
79
65
  /**
@@ -83,4 +69,6 @@ exports.SELECTABLE_MODELS = {
83
69
  function getSelectableModels(provider) {
84
70
  return exports.SELECTABLE_MODELS[provider.toLowerCase()] ?? [];
85
71
  }
72
+ /** Alias for SELECTABLE_MODELS for API consistency */
73
+ exports.PROVIDER_MODELS = exports.SELECTABLE_MODELS;
86
74
  //# sourceMappingURL=models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":";;;AA+EA,kDAEC;AAjFD;;;GAGG;AACU,QAAA,iBAAiB,GAA6B;IACzD,MAAM,EAAE;QACN,QAAQ;QACR,aAAa;QACb,aAAa;QACb,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,SAAS;KACV;IACD,SAAS,EAAE;QACT,0BAA0B;QAC1B,4BAA4B;QAC5B,0BAA0B;QAC1B,2BAA2B;KAC5B;IACD,MAAM,EAAE;QACN,gBAAgB;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,uBAAuB;KACxB;IACD,OAAO,EAAE;QACP,sBAAsB;QACtB,uBAAuB;QACvB,sBAAsB;QACtB,kBAAkB;QAClB,iBAAiB;QACjB,mBAAmB;QACnB,oBAAoB;KACrB;IACD,MAAM,EAAE;QACN,gBAAgB;QAChB,WAAW;QACX,SAAS;QACT,eAAe;KAChB;IACD,QAAQ,EAAE;QACR,eAAe;QACf,gBAAgB;QAChB,mBAAmB;KACpB;IACD,QAAQ,EAAE;QACR,gBAAgB;QAChB,iBAAiB;QACjB,kBAAkB;KACnB;IACD,KAAK,EAAE;QACL,YAAY;QACZ,OAAO;QACP,WAAW;QACX,YAAY;QACZ,aAAa;KACd;IACD,OAAO,EAAE;QACP,eAAe;QACf,cAAc;QACd,cAAc;KACf;IACD,QAAQ,EAAE;QACR,WAAW;QACX,iBAAiB;QACjB,iBAAiB;KAClB;IACD,EAAE,EAAE;QACF,UAAU;QACV,WAAW;QACX,UAAU;KACX;CACF,CAAC;AAEF;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,QAAgB;IAClD,OAAO,yBAAiB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":";;;AAiEA,kDAEC;AAnED;;;;GAIG;AACU,QAAA,iBAAiB,GAA6B;IACzD,MAAM,EAAE;QACN,QAAQ;QACR,aAAa;QACb,IAAI;QACJ,SAAS;KACV;IACD,SAAS,EAAE;QACT,0BAA0B;QAC1B,4BAA4B;QAC5B,0BAA0B;QAC1B,2BAA2B;KAC5B;IACD,MAAM,EAAE;QACN,sBAAsB;QACtB,wBAAwB;QACxB,gBAAgB;QAChB,kBAAkB;QAClB,uBAAuB;KACxB;IACD,OAAO,EAAE;QACP,sBAAsB;QACtB,sBAAsB;QACtB,kBAAkB;KACnB;IACD,MAAM,EAAE;QACN,mBAAmB;QACnB,wBAAwB;QACxB,mBAAmB;QACnB,qBAAqB;KACtB;IACD,QAAQ,EAAE;QACR,eAAe;QACf,mBAAmB;KACpB;IACD,QAAQ,EAAE;QACR,gBAAgB;QAChB,iBAAiB;QACjB,kBAAkB;QAClB,WAAW;QACX,kBAAkB;KACnB;IACD,KAAK,EAAE;QACL,SAAS;QACT,eAAe;QACf,SAAS;QACT,eAAe;KAChB;IACD,OAAO,EAAE;QACP,cAAc;QACd,wBAAwB;QACxB,YAAY;QACZ,QAAQ;KACT;CACF,CAAC;AAEF;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,QAAgB;IAClD,OAAO,yBAAiB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;AACzD,CAAC;AAED,sDAAsD;AACzC,QAAA,eAAe,GAAG,yBAAiB,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Prompt normalization for loop detection.
3
+ * Normalizes prompts to detect semantic repetition even when dynamic values change.
4
+ */
5
+ /**
6
+ * Normalize a prompt for SimHash comparison.
7
+ * Replaces dynamic values with placeholders to detect semantic repetition.
8
+ */
9
+ export declare function normalizePrompt(text: string): string;
10
+ /**
11
+ * Message format compatible with OpenAI/Anthropic
12
+ */
13
+ export interface ChatMessage {
14
+ role: "system" | "user" | "assistant" | "function" | "tool";
15
+ content?: string | null;
16
+ name?: string;
17
+ function_call?: unknown;
18
+ tool_calls?: unknown[];
19
+ }
20
+ /**
21
+ * Extract the last user message from a conversation.
22
+ * For loop detection, we focus on what the user/agent is asking now.
23
+ */
24
+ export declare function extractUserMessage(messages: ChatMessage[]): string;
25
+ /**
26
+ * Extract tool calls from a request body.
27
+ * Returns array of tool call signatures for comparison.
28
+ */
29
+ export declare function extractToolCalls(body: Record<string, unknown>): string[];
30
+ /**
31
+ * Extract and normalize prompt from request body.
32
+ * Handles both OpenAI messages format and simple prompt format.
33
+ */
34
+ export declare function extractAndNormalizePrompt(body: Record<string, unknown>): string;
35
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAepD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;IAC5D,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAoBlE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAiCxE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAiB/E"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ /**
3
+ * Prompt normalization for loop detection.
4
+ * Normalizes prompts to detect semantic repetition even when dynamic values change.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.normalizePrompt = normalizePrompt;
8
+ exports.extractUserMessage = extractUserMessage;
9
+ exports.extractToolCalls = extractToolCalls;
10
+ exports.extractAndNormalizePrompt = extractAndNormalizePrompt;
11
+ // Regex patterns for normalization
12
+ const PATTERNS = {
13
+ // Numbers (integers and decimals)
14
+ numbers: /\b\d+(\.\d+)?\b/g,
15
+ // UUIDs (various formats)
16
+ uuids: /\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi,
17
+ // ISO timestamps
18
+ isoTimestamps: /\b\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:?\d{2})?)?\b/g,
19
+ // Common ID patterns (e.g., user_abc123, order-12345)
20
+ idPatterns: /\b(id|user|order|session|request|msg|message|chat|thread)[_-]?[a-z0-9]+\b/gi,
21
+ // Hex strings (likely hashes or IDs)
22
+ hexStrings: /\b[0-9a-f]{16,}\b/gi,
23
+ // Multiple whitespace
24
+ whitespace: /\s+/g,
25
+ };
26
+ /**
27
+ * Normalize a prompt for SimHash comparison.
28
+ * Replaces dynamic values with placeholders to detect semantic repetition.
29
+ */
30
+ function normalizePrompt(text) {
31
+ let normalized = text;
32
+ // Order matters: more specific patterns first
33
+ normalized = normalized.replace(PATTERNS.uuids, "<ID>");
34
+ normalized = normalized.replace(PATTERNS.isoTimestamps, "<TS>");
35
+ normalized = normalized.replace(PATTERNS.hexStrings, "<ID>");
36
+ normalized = normalized.replace(PATTERNS.idPatterns, "<ID>");
37
+ normalized = normalized.replace(PATTERNS.numbers, "<NUM>");
38
+ // Normalize whitespace and case
39
+ normalized = normalized.replace(PATTERNS.whitespace, " ");
40
+ normalized = normalized.toLowerCase().trim();
41
+ return normalized;
42
+ }
43
+ /**
44
+ * Extract the last user message from a conversation.
45
+ * For loop detection, we focus on what the user/agent is asking now.
46
+ */
47
+ function extractUserMessage(messages) {
48
+ if (!Array.isArray(messages) || messages.length === 0) {
49
+ return "";
50
+ }
51
+ // Find the last user message
52
+ for (let i = messages.length - 1; i >= 0; i--) {
53
+ const msg = messages[i];
54
+ if (msg.role === "user" && typeof msg.content === "string") {
55
+ return msg.content;
56
+ }
57
+ }
58
+ // Fallback: return last message content regardless of role
59
+ const last = messages[messages.length - 1];
60
+ if (typeof last.content === "string") {
61
+ return last.content;
62
+ }
63
+ return "";
64
+ }
65
+ /**
66
+ * Extract tool calls from a request body.
67
+ * Returns array of tool call signatures for comparison.
68
+ */
69
+ function extractToolCalls(body) {
70
+ const tools = [];
71
+ // OpenAI function calling format
72
+ if (body.functions && Array.isArray(body.functions)) {
73
+ for (const fn of body.functions) {
74
+ if (typeof fn === "object" && fn !== null && "name" in fn) {
75
+ tools.push(`fn:${fn.name}`);
76
+ }
77
+ }
78
+ }
79
+ // OpenAI tools format
80
+ if (body.tools && Array.isArray(body.tools)) {
81
+ for (const tool of body.tools) {
82
+ if (typeof tool === "object" && tool !== null) {
83
+ const t = tool;
84
+ if (t.type === "function" && t.function?.name) {
85
+ tools.push(`fn:${t.function.name}`);
86
+ }
87
+ }
88
+ }
89
+ }
90
+ // Anthropic tool_use format
91
+ if (body.tool_choice && typeof body.tool_choice === "object") {
92
+ const tc = body.tool_choice;
93
+ if (tc.name) {
94
+ tools.push(`tool:${tc.name}`);
95
+ }
96
+ }
97
+ return tools;
98
+ }
99
+ /**
100
+ * Extract and normalize prompt from request body.
101
+ * Handles both OpenAI messages format and simple prompt format.
102
+ */
103
+ function extractAndNormalizePrompt(body) {
104
+ let rawPrompt = "";
105
+ // OpenAI/Anthropic messages format
106
+ if (body.messages && Array.isArray(body.messages)) {
107
+ rawPrompt = extractUserMessage(body.messages);
108
+ }
109
+ // Simple prompt format
110
+ else if (typeof body.prompt === "string") {
111
+ rawPrompt = body.prompt;
112
+ }
113
+ // Input format (some APIs)
114
+ else if (typeof body.input === "string") {
115
+ rawPrompt = body.input;
116
+ }
117
+ return normalizePrompt(rawPrompt);
118
+ }
119
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAsBH,0CAeC;AAiBD,gDAoBC;AAMD,4CAiCC;AAMD,8DAiBC;AAtID,mCAAmC;AACnC,MAAM,QAAQ,GAAG;IACf,kCAAkC;IAClC,OAAO,EAAE,kBAAkB;IAC3B,0BAA0B;IAC1B,KAAK,EAAE,oEAAoE;IAC3E,iBAAiB;IACjB,aAAa,EAAE,0EAA0E;IACzF,sDAAsD;IACtD,UAAU,EAAE,6EAA6E;IACzF,qCAAqC;IACrC,UAAU,EAAE,qBAAqB;IACjC,sBAAsB;IACtB,UAAU,EAAE,MAAM;CACnB,CAAC;AAEF;;;GAGG;AACH,SAAgB,eAAe,CAAC,IAAY;IAC1C,IAAI,UAAU,GAAG,IAAI,CAAC;IAEtB,8CAA8C;IAC9C,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxD,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAChE,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7D,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7D,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE3D,gCAAgC;IAChC,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC1D,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7C,OAAO,UAAU,CAAC;AACpB,CAAC;AAaD;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,QAAuB;IACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,6BAA6B;IAC7B,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3D,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,IAA6B;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,iCAAiC;IACjC,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,IAAI,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;gBAC1D,KAAK,CAAC,IAAI,CAAC,MAAO,EAAuB,CAAC,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC9C,MAAM,CAAC,GAAG,IAAuD,CAAC;gBAClE,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;oBAC9C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,WAAgC,CAAC;QACjD,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,IAA6B;IACrE,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,mCAAmC;IACnC,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClD,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAyB,CAAC,CAAC;IACjE,CAAC;IACD,uBAAuB;SAClB,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IACD,2BAA2B;SACtB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../src/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAiID,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,MAAM,GACjB,cAAc,GAAG,IAAI,CAIvB"}
1
+ {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../src/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAgID,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,MAAM,GACjB,cAAc,GAAG,IAAI,CAIvB"}
package/dist/parsers.js CHANGED
@@ -89,7 +89,6 @@ const PARSERS = {
89
89
  moonshot: parseOpenAI,
90
90
  zhipu: parseOpenAI,
91
91
  minimax: parseOpenAI,
92
- baichuan: parseOpenAI,
93
92
  yi: parseOpenAI,
94
93
  };
95
94
  function parseProviderResponse(provider, body, statusCode) {
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../src/parsers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../src/parsers.ts"],"names":[],"mappings":"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"}
package/dist/pricing.d.ts CHANGED
@@ -5,4 +5,10 @@ export interface ModelPricing {
5
5
  export declare function getModelPricing(model: string): ModelPricing | null;
6
6
  export declare function calculateCost(model: string, tokensIn: number, tokensOut: number): number | null;
7
7
  export declare function listSupportedModels(): string[];
8
+ export interface ProviderModel {
9
+ id: string;
10
+ inputPrice: number;
11
+ outputPrice: number;
12
+ }
13
+ export declare function getProviderModels(provider: string): ProviderModel[];
8
14
  //# sourceMappingURL=pricing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../src/pricing.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAgED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAElE;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAUf;AAED,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C"}
1
+ {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../src/pricing.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAmED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAElE;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAUf;AAED,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAeD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAYnE"}