@jeffreycao/copilot-api 1.8.0 → 1.9.0-beta.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 (49) hide show
  1. package/dist/GptEncoding-TiCgsNrQ.js +887 -0
  2. package/dist/GptEncoding-TiCgsNrQ.js.map +1 -0
  3. package/dist/{auth-C9jquVrb.js → auth-DCB53u05.js} +6 -6
  4. package/dist/{auth-C9jquVrb.js.map → auth-DCB53u05.js.map} +1 -1
  5. package/dist/{check-usage-Ct5MACB6.js → check-usage-iKUAIfc_.js} +6 -6
  6. package/dist/{check-usage-Ct5MACB6.js.map → check-usage-iKUAIfc_.js.map} +1 -1
  7. package/dist/chunk-BZ41Y9eH.js +39 -0
  8. package/dist/cl100k_base-kiDWemr-.js +101375 -0
  9. package/dist/cl100k_base-kiDWemr-.js.map +1 -0
  10. package/dist/{config-BQvWqYh_.js → config-D3dkAXQE.js} +3 -3
  11. package/dist/{config-BQvWqYh_.js.map → config-D3dkAXQE.js.map} +1 -1
  12. package/dist/{debug-DcC7ZPH0.js → debug-CUx-7_jF.js} +4 -4
  13. package/dist/{debug-DcC7ZPH0.js.map → debug-CUx-7_jF.js.map} +1 -1
  14. package/dist/dist-B3jIqeb6.js +961 -0
  15. package/dist/dist-B3jIqeb6.js.map +1 -0
  16. package/dist/dist-CSEoNgAt.js +334 -0
  17. package/dist/dist-CSEoNgAt.js.map +1 -0
  18. package/dist/main.js +26 -5
  19. package/dist/main.js.map +1 -1
  20. package/dist/o200k_base-BlrOP1Jc.js +204726 -0
  21. package/dist/o200k_base-BlrOP1Jc.js.map +1 -0
  22. package/dist/p50k_base-DA6KYT1Z.js +11 -0
  23. package/dist/p50k_base-DA6KYT1Z.js.map +1 -0
  24. package/dist/p50k_base-tS38LhIO.js +50483 -0
  25. package/dist/p50k_base-tS38LhIO.js.map +1 -0
  26. package/dist/p50k_edit-BlA1HcF4.js +11 -0
  27. package/dist/p50k_edit-BlA1HcF4.js.map +1 -0
  28. package/dist/{paths-Cla6y5eD.js → paths-DvrimVju.js} +2 -2
  29. package/dist/{paths-Cla6y5eD.js.map → paths-DvrimVju.js.map} +1 -1
  30. package/dist/prompt-CyV2d7YW.js +850 -0
  31. package/dist/prompt-CyV2d7YW.js.map +1 -0
  32. package/dist/r50k_base-CaCWe6-8.js +50466 -0
  33. package/dist/r50k_base-CaCWe6-8.js.map +1 -0
  34. package/dist/registry-B_2v83L7.js +797 -0
  35. package/dist/registry-B_2v83L7.js.map +1 -0
  36. package/dist/{server-CsVIHpFX.js → server-BGqhE4N_.js} +1647 -45
  37. package/dist/server-BGqhE4N_.js.map +1 -0
  38. package/dist/start-Cxl5pgll.js +27379 -0
  39. package/dist/start-Cxl5pgll.js.map +1 -0
  40. package/dist/{token-D1pIdFn1.js → token-BCdEIfN_.js} +12 -6
  41. package/dist/token-BCdEIfN_.js.map +1 -0
  42. package/dist/{utils-BOfWR1uT.js → utils-DXuuBUT_.js} +14 -6
  43. package/dist/utils-DXuuBUT_.js.map +1 -0
  44. package/package.json +1 -1
  45. package/dist/server-CsVIHpFX.js.map +0 -1
  46. package/dist/start-BpU8ZccW.js +0 -268
  47. package/dist/start-BpU8ZccW.js.map +0 -1
  48. package/dist/token-D1pIdFn1.js.map +0 -1
  49. package/dist/utils-BOfWR1uT.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GptEncoding-TiCgsNrQ.js","names":["result","o200k_base","encodingsMap"],"sources":["../node_modules/gpt-tokenizer/esm/constants.js","../node_modules/gpt-tokenizer/esm/utfUtil.js","../node_modules/gpt-tokenizer/esm/util.js","../node_modules/gpt-tokenizer/esm/BytePairEncodingCore.js","../node_modules/gpt-tokenizer/esm/modelsChatEnabled.gen.js","../node_modules/gpt-tokenizer/esm/modelsMap.js","../node_modules/gpt-tokenizer/esm/specialTokens.js","../node_modules/gpt-tokenizer/esm/mapping.js","../node_modules/gpt-tokenizer/esm/encodingParams/constants.js","../node_modules/gpt-tokenizer/esm/encodingParams/cl100k_base.js","../node_modules/gpt-tokenizer/esm/encodingParams/o200k_base.js","../node_modules/gpt-tokenizer/esm/encodingParams/p50k_base.js","../node_modules/gpt-tokenizer/esm/encodingParams/p50k_edit.js","../node_modules/gpt-tokenizer/esm/encodingParams/r50k_base.js","../node_modules/gpt-tokenizer/esm/modelParams.js","../node_modules/gpt-tokenizer/esm/GptEncoding.js"],"sourcesContent":["export const ALL_SPECIAL_TOKENS = 'all';\nexport const DEFAULT_MERGE_CACHE_SIZE = 100_000;\n//# sourceMappingURL=constants.js.map","/* eslint-disable no-bitwise */\n/* eslint-disable no-magic-numbers */\nexport const isAscii = (codePoint) => codePoint <= 0x7f;\nconst HIGH_SURROGATE_START = 55_296;\nconst HIGH_SURROGATE_END = 56_319;\nexport function endsWithIncompleteUtfPairSurrogate(string) {\n if (string.length === 0)\n return false;\n // Check if the last character is a high surrogate\n // eslint-disable-next-line unicorn/prefer-code-point\n const lastCharCode = string.charCodeAt(string.length - 1);\n return (lastCharCode >= HIGH_SURROGATE_START && lastCharCode <= HIGH_SURROGATE_END);\n}\nfunction isValidUTF8(bytes) {\n let i = 0;\n while (i < bytes.length) {\n const byte1 = bytes[i];\n let numBytes = 0;\n let codePoint = 0;\n // Determine the number of bytes in the current UTF-8 character\n if (byte1 <= 0x7f) {\n // 1-byte character (ASCII)\n numBytes = 1;\n codePoint = byte1;\n }\n else if ((byte1 & 0xe0) === 0xc0) {\n // 2-byte character\n numBytes = 2;\n codePoint = byte1 & 0x1f;\n if (byte1 <= 0xc1)\n return false; // Overlong encoding not allowed\n }\n else if ((byte1 & 0xf0) === 0xe0) {\n // 3-byte character\n numBytes = 3;\n codePoint = byte1 & 0x0f;\n }\n else if ((byte1 & 0xf8) === 0xf0) {\n // 4-byte character\n numBytes = 4;\n codePoint = byte1 & 0x07;\n if (byte1 > 0xf4)\n return false; // Code points above U+10FFFF not allowed\n }\n else {\n // Invalid first byte of UTF-8 character\n return false;\n }\n // Ensure there are enough continuation bytes\n if (i + numBytes > bytes.length)\n return false;\n // Process the continuation bytes\n for (let j = 1; j < numBytes; j++) {\n const byte = bytes[i + j];\n if (byte === undefined || (byte & 0xc0) !== 0x80)\n return false; // Continuation bytes must start with '10'\n codePoint = (codePoint << 6) | (byte & 0x3f);\n }\n // Check for overlong encodings\n if (numBytes === 2 && codePoint < 0x80)\n return false; // Overlong 2-byte sequence\n if (numBytes === 3 && codePoint < 2_048)\n return false; // Overlong 3-byte sequence\n if (numBytes === 4 && codePoint < 65_536)\n return false; // Overlong 4-byte sequence\n // Check for surrogate halves (U+D800 to U+DFFF)\n if (codePoint >= 55_296 && codePoint <= 57_343)\n return false;\n // Check for code points above U+10FFFF\n if (codePoint > 1_114_111)\n return false;\n // Move to the next character\n i += numBytes;\n }\n return true;\n}\nconst textDecoder = new TextDecoder('utf8', { fatal: false });\nexport function tryConvertToString(arr) {\n if (!isValidUTF8(arr)) {\n return undefined;\n }\n return textDecoder.decode(arr);\n}\n// Helper function to compare two Uint8Arrays lexicographically\nexport function compareUint8Arrays(a, b) {\n const len = Math.min(a.length, b.length);\n for (let i = 0; i < len; i++) {\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return a.length - b.length;\n}\n//# sourceMappingURL=utfUtil.js.map","export function getMaxValueFromMap(map) {\n let max = 0;\n map.forEach((val) => {\n max = Math.max(max, val);\n });\n return max;\n}\nexport function escapeRegExp(string) {\n return string.replace(/[$()*+.?[\\\\\\]^{|}]/g, '\\\\$&'); // $& means the whole matched string\n}\nexport function getSpecialTokenRegex(tokens) {\n const escapedTokens = [...tokens].map(escapeRegExp);\n const inner = escapedTokens.join('|');\n return new RegExp(`(${inner})`);\n}\n//# sourceMappingURL=util.js.map","/* eslint-disable no-continue */\nimport { DEFAULT_MERGE_CACHE_SIZE } from './constants.js';\nimport { compareUint8Arrays, isAscii, tryConvertToString } from './utfUtil.js';\nimport { escapeRegExp } from './util.js';\nconst emptyBuffer = new Uint8Array(0);\nexport const decoder = new TextDecoder('utf8');\nexport class BytePairEncodingCore {\n mergeableBytePairRankCount;\n /**\n * an array where the index is the BPE rank,\n * and the value is the string or the array of bytes that it decodes to\n * it may contain holes if token is unused\n */\n bytePairRankDecoder;\n bytePairNonUtfRankDecoder = new Map();\n bytePairNonUtfSortedEncoder;\n /**\n * a reverse map of the bytePairRankDecoder,\n * where the key is the string and the value is the rank\n * values that cannot be represented as a string are present in `bytePairNonUtfSortedEncoder`\n */\n bytePairStringRankEncoder;\n tokenSplitRegex;\n specialTokensEncoder;\n specialTokensDecoder;\n specialTokenPatternRegex;\n textEncoder = new TextEncoder();\n mergeCache;\n mergeCacheSize;\n constructor({ bytePairRankDecoder, specialTokensEncoder, tokenSplitRegex, mergeCacheSize = DEFAULT_MERGE_CACHE_SIZE, }) {\n this.bytePairRankDecoder = bytePairRankDecoder;\n this.bytePairStringRankEncoder = new Map();\n this.mergeCacheSize = mergeCacheSize;\n if (mergeCacheSize > 0) {\n this.mergeCache = new Map();\n }\n // size without array holes (which may be present in the encoder)\n this.mergeableBytePairRankCount = Object.keys(bytePairRankDecoder).length;\n const binaryLookup = [];\n // forEach skips array holes:\n bytePairRankDecoder.forEach((value, rank) => {\n if (typeof value === 'string') {\n this.bytePairStringRankEncoder.set(value, rank);\n return;\n }\n const byteArray = new Uint8Array(value);\n binaryLookup.push([byteArray, rank]);\n this.bytePairNonUtfRankDecoder.set(rank, byteArray);\n });\n this.bytePairNonUtfSortedEncoder = binaryLookup.sort((a, b) => compareUint8Arrays(a[0], b[0]));\n this.specialTokensEncoder =\n specialTokensEncoder ?? new Map();\n this.specialTokensDecoder = specialTokensEncoder\n ? new Map([...specialTokensEncoder].map(([key, value]) => [value, key]))\n : new Map();\n this.tokenSplitRegex = tokenSplitRegex;\n const escapedSpecialTokens = [...this.specialTokensEncoder.keys()].map(escapeRegExp);\n const allSpecialTokensRegex = escapedSpecialTokens.join('|');\n try {\n this.specialTokenPatternRegex = new RegExp(allSpecialTokensRegex, 'y');\n }\n catch {\n throw new Error('Invalid regular expression pattern.');\n }\n }\n setMergeCacheSize(newSize) {\n if (this.mergeCacheSize === 0 && newSize > 0) {\n this.mergeCache = new Map();\n }\n this.mergeCacheSize = newSize;\n if (newSize === 0) {\n this.mergeCache = undefined;\n }\n }\n clearMergeCache() {\n this.mergeCache?.clear();\n }\n *encodeNativeGenerator(text, allowedSpecial) {\n let startIndex = 0;\n let lastTokenLength = 0;\n while (true) {\n const nextSpecialMatch = this.findNextSpecialToken(text, allowedSpecial, startIndex);\n const nextSpecialStartIndex = nextSpecialMatch?.[0];\n const endIndex = nextSpecialStartIndex ?? text.length;\n const textBeforeSpecial = startIndex === 0 && endIndex === text.length\n ? text\n : text.slice(startIndex, endIndex);\n for (const [match] of textBeforeSpecial.matchAll(this.tokenSplitRegex)) {\n const token = this.getBpeRankFromString(match);\n if (token !== undefined) {\n lastTokenLength = 1;\n yield [token];\n continue;\n }\n const tokens = this.bytePairEncode(match);\n lastTokenLength = tokens.length;\n yield tokens;\n }\n if (nextSpecialStartIndex !== undefined) {\n const specialToken = nextSpecialMatch[1];\n const specialTokenValue = this.specialTokensEncoder.get(specialToken);\n if (specialTokenValue === undefined) {\n throw new Error(`Special token \"${specialToken}\" is not in the special token encoder.`);\n }\n yield [specialTokenValue];\n startIndex = nextSpecialStartIndex + specialToken.length;\n lastTokenLength = 1;\n }\n else {\n break;\n }\n }\n return lastTokenLength;\n }\n encodeNative(text, allowedSpecial) {\n let startIndex = 0;\n const tokensArray = []; // Flat list to collect the tokens\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const nextSpecialMatch = this.findNextSpecialToken(text, allowedSpecial, startIndex);\n const nextSpecialStartIndex = nextSpecialMatch?.[0];\n const endIndex = nextSpecialStartIndex ?? text.length;\n const textBeforeSpecial = startIndex === 0 && endIndex === text.length\n ? text\n : text.slice(startIndex, endIndex);\n for (const [match] of textBeforeSpecial.matchAll(this.tokenSplitRegex)) {\n const token = this.getBpeRankFromString(match);\n if (token !== undefined) {\n tokensArray.push(token);\n continue;\n }\n const tokens = this.bytePairEncode(match);\n tokensArray.push(...tokens);\n }\n if (nextSpecialStartIndex !== undefined) {\n const specialToken = nextSpecialMatch[1];\n const specialTokenValue = this.specialTokensEncoder.get(specialToken);\n if (specialTokenValue === undefined) {\n throw new Error(`Special token \"${specialToken}\" is not in the special token encoder.`);\n }\n tokensArray.push(specialTokenValue);\n startIndex = nextSpecialStartIndex + specialToken.length;\n }\n else {\n break;\n }\n }\n return tokensArray;\n }\n countNative(text, allowedSpecial) {\n let startIndex = 0;\n let tokensCount = 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const nextSpecialMatch = this.findNextSpecialToken(text, allowedSpecial, startIndex);\n const nextSpecialStartIndex = nextSpecialMatch?.[0];\n const endIndex = nextSpecialStartIndex ?? text.length;\n const textBeforeSpecial = startIndex === 0 && endIndex === text.length\n ? text\n : text.slice(startIndex, endIndex);\n for (const [match] of textBeforeSpecial.matchAll(this.tokenSplitRegex)) {\n const token = this.getBpeRankFromString(match);\n if (token !== undefined) {\n tokensCount++;\n continue;\n }\n const tokens = this.bytePairEncode(match);\n tokensCount += tokens.length;\n }\n if (nextSpecialStartIndex !== undefined) {\n const specialToken = nextSpecialMatch[1];\n const specialTokenValue = this.specialTokensEncoder.get(specialToken);\n if (specialTokenValue === undefined) {\n throw new Error(`Special token \"${specialToken}\" is not in the special token encoder.`);\n }\n tokensCount++;\n startIndex = nextSpecialStartIndex + specialToken.length;\n }\n else {\n break;\n }\n }\n return tokensCount;\n }\n *decodeNativeGenerator(tokens) {\n for (const token of tokens) {\n const tokenBytes = this.tryDecodeToken(token);\n if (tokenBytes) {\n yield tokenBytes;\n }\n }\n }\n decodeNative(tokens) {\n let decoded = '';\n let intBuffer = emptyBuffer;\n for (const token of tokens) {\n const tokenBytes = this.tryDecodeToken(token);\n if (tokenBytes === undefined) {\n throw new Error(`Token ${token} is not in the byte pair encoder.`);\n }\n if (typeof tokenBytes === 'string') {\n if (intBuffer !== emptyBuffer) {\n decoded += decoder.decode(intBuffer, { stream: true });\n intBuffer = emptyBuffer;\n }\n decoded += tokenBytes;\n }\n else {\n const newBuffer = new Uint8Array(intBuffer.length + tokenBytes.length);\n newBuffer.set(intBuffer);\n newBuffer.set(tokenBytes, intBuffer.length);\n intBuffer = newBuffer;\n }\n }\n if (intBuffer !== emptyBuffer) {\n decoded += decoder.decode(intBuffer, { stream: true });\n }\n return decoded;\n }\n async *decodeNativeAsyncIterable(tokens) {\n for await (const token of tokens) {\n const tokenBytesOrString = this.tryDecodeToken(token);\n if (tokenBytesOrString) {\n yield tokenBytesOrString;\n }\n }\n }\n getBpeRankFromString(key) {\n return this.bytePairStringRankEncoder.get(key);\n }\n getBpeRankFromStringOrThrow(key) {\n const value = this.getBpeRankFromString(key);\n if (value === undefined) {\n throw new Error(`The byte-pair encoding does not contain a value for: ${key}`);\n }\n return value;\n }\n getBpeRankFromBytes(key) {\n const keyAsString = tryConvertToString(key);\n if (keyAsString !== undefined) {\n return this.getBpeRankFromString(keyAsString);\n }\n // Perform binary search on the binary keys\n const index = this.binarySearch(key);\n if (index !== -1) {\n return this.bytePairNonUtfSortedEncoder[index][1];\n }\n return undefined;\n }\n getBpeRankFromBytesOrThrow(key) {\n const value = this.getBpeRankFromBytes(key);\n if (value === undefined) {\n throw new Error(`The byte-pair encoding does not contain a value for: ${key.toString()}`);\n }\n return value;\n }\n // Binary search on the binary keys\n binarySearch(key) {\n let low = 0;\n let high = this.bytePairNonUtfSortedEncoder.length - 1;\n while (low <= high) {\n // eslint-disable-next-line no-bitwise\n const mid = (low + high) >>> 1;\n const midKey = this.bytePairNonUtfSortedEncoder[mid][0];\n let cmp = 0;\n const maxLength = Math.min(midKey.length, key.length);\n for (let i = 0; i < maxLength; i++) {\n cmp = midKey[i] - key[i];\n if (cmp !== 0)\n break;\n }\n if (cmp === 0) {\n cmp = midKey.length - key.length;\n }\n if (cmp === 0) {\n return mid;\n }\n if (cmp < 0) {\n low = mid + 1;\n }\n else {\n high = mid - 1;\n }\n }\n return -1;\n }\n findNextSpecialToken(text, allowedSpecial, startIndex) {\n let searchIndex = startIndex;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n this.specialTokenPatternRegex.lastIndex = searchIndex;\n const nextSpecialMatch = this.specialTokenPatternRegex.exec(text);\n if (!nextSpecialMatch) {\n return undefined;\n }\n const specialToken = nextSpecialMatch[0];\n if (allowedSpecial?.has(specialToken)) {\n const specialTokenStartIndex = nextSpecialMatch.index + searchIndex;\n return [specialTokenStartIndex, specialToken];\n }\n searchIndex = nextSpecialMatch.index + searchIndex + 1;\n }\n }\n tryDecodeToken(tokenRank) {\n const value = this.bytePairRankDecoder[tokenRank];\n if (typeof value === 'string') {\n return value;\n }\n if (typeof value === 'object') {\n const fromBinary = this.bytePairNonUtfRankDecoder.get(tokenRank);\n if (fromBinary) {\n return fromBinary;\n }\n }\n return this.specialTokensDecoder.get(tokenRank);\n }\n addToMergeCache(key, value) {\n if (!this.mergeCache)\n return;\n if (this.mergeCache.size >= this.mergeCacheSize) {\n // Remove least recently used item (first item)\n const firstKey = this.mergeCache.keys().next().value;\n this.mergeCache.delete(firstKey);\n }\n this.mergeCache.set(key, value);\n }\n bytePairEncode(input) {\n if (input.length === 1 && isAscii(input.codePointAt(0))) {\n return [this.getBpeRankFromStringOrThrow(input)];\n }\n if (this.mergeCache?.has(input)) {\n const result = this.mergeCache.get(input);\n // Move to end to mark as recently used\n this.mergeCache.delete(input);\n this.mergeCache.set(input, result);\n return result;\n }\n const inputBytes = this.textEncoder.encode(input);\n const result = this.bytePairMerge(inputBytes);\n this.addToMergeCache(input, result);\n return result;\n }\n bytePairMerge(\n // Input array of bytes to process\n piece) {\n // 'starts' holds the start indices of each partition\n const starts = [];\n // 'ranks' holds the BPE ranks of each partition pair\n const ranks = [];\n // Helper function to get the rank of a byte pair starting at 'startIndex'\n const getRank = (startIndex, pairStart = starts[startIndex], pairEnd = starts[startIndex + 2]) => {\n if (pairEnd === undefined) {\n // No valid pair exists\n return Number.POSITIVE_INFINITY;\n }\n // Extract the byte pair\n const key = piece.subarray(pairStart, pairEnd);\n // Retrieve the BPE rank of this byte pair (if it exists)\n const rank = this.getBpeRankFromBytes(key);\n return rank ?? Number.POSITIVE_INFINITY;\n };\n // Initialize the 'starts' array with all possible start indices\n for (let i = 0; i <= piece.length; i++) {\n starts.push(i);\n if (i < piece.length - 1) {\n // Initialize the BPE values for all adjacent pairs\n ranks.push(getRank(i, i, i + 2));\n }\n else {\n // Initialize BPE values to infinity for the last pair\n ranks.push(Number.POSITIVE_INFINITY);\n }\n }\n // Iteratively merge byte pairs until no more useful merges can be done\n while (starts.length > 1) {\n let lowestRank = Number.POSITIVE_INFINITY;\n let lowestPartitionIndex = -1;\n // Find the partition with the minimum rank\n for (let i = 0; i < ranks.length - 1; i++) {\n const rank = ranks[i];\n if (rank < lowestRank) {\n lowestRank = rank;\n lowestPartitionIndex = i;\n }\n }\n // If no valid pair is left to merge, exit the loop\n if (lowestRank === Number.POSITIVE_INFINITY ||\n lowestPartitionIndex === -1) {\n break;\n }\n // Merge the pair at 'lowestPartitionIndex' by removing the next start index\n starts.splice(lowestPartitionIndex + 1, 1);\n // Remove the BPE value of the merged pair\n ranks.splice(lowestPartitionIndex, 1);\n // Update the current merged pair's rank\n ranks[lowestPartitionIndex] = getRank(lowestPartitionIndex);\n // Update the rank of the previous pair, if it exists\n if (lowestPartitionIndex > 0) {\n ranks[lowestPartitionIndex - 1] = getRank(lowestPartitionIndex - 1);\n }\n }\n // Create the final output by applying the transform function to each partitioned range\n const output = [];\n for (let i = 0; i < starts.length - 1; i++) {\n const pairStart = starts[i];\n const pairEnd = starts[i + 1];\n const bpeValue = this.getBpeRankFromBytesOrThrow(piece.subarray(pairStart, pairEnd));\n output.push(bpeValue);\n }\n return output;\n }\n}\n//# sourceMappingURL=BytePairEncodingCore.js.map","export const chatEnabledModels = [\"chatgpt-4o-latest\", \"codex-mini-latest\", \"computer-use-preview\", \"computer-use-preview-2025-03-11\", \"gpt-3.5\", \"gpt-3.5-0301\", \"gpt-3.5-turbo\", \"gpt-3.5-turbo-0125\", \"gpt-3.5-turbo-0613\", \"gpt-3.5-turbo-1106\", \"gpt-3.5-turbo-16k-0613\", \"gpt-3.5-turbo-instruct\", \"gpt-4\", \"gpt-4-0125-preview\", \"gpt-4-0314\", \"gpt-4-0613\", \"gpt-4-1106-preview\", \"gpt-4-1106-vision-preview\", \"gpt-4-32k\", \"gpt-4-turbo\", \"gpt-4-turbo-2024-04-09\", \"gpt-4-turbo-preview\", \"gpt-4.1\", \"gpt-4.1-2025-04-14\", \"gpt-4.1-mini\", \"gpt-4.1-mini-2025-04-14\", \"gpt-4.1-nano\", \"gpt-4.1-nano-2025-04-14\", \"gpt-4.5-preview\", \"gpt-4.5-preview-2025-02-27\", \"gpt-4o\", \"gpt-4o-2024-05-13\", \"gpt-4o-2024-08-06\", \"gpt-4o-2024-11-20\", \"gpt-4o-audio-preview\", \"gpt-4o-audio-preview-2024-10-01\", \"gpt-4o-audio-preview-2024-12-17\", \"gpt-4o-audio-preview-2025-06-03\", \"gpt-4o-mini\", \"gpt-4o-mini-2024-07-18\", \"gpt-4o-mini-audio-preview\", \"gpt-4o-mini-audio-preview-2024-12-17\", \"gpt-4o-mini-search-preview\", \"gpt-4o-mini-search-preview-2025-03-11\", \"gpt-4o-search-preview\", \"gpt-4o-search-preview-2025-03-11\", \"o1\", \"o1-2024-12-17\", \"o1-mini\", \"o1-mini-2024-09-12\", \"o1-preview\", \"o1-preview-2024-09-12\", \"o1-pro\", \"o1-pro-2025-03-19\", \"o3\", \"o3-2025-04-16\", \"o3-mini\", \"o3-mini-2025-01-31\", \"o3-pro\", \"o3-pro-2025-06-10\", \"o4-mini\", \"o4-mini-2025-04-16\"];\n//# sourceMappingURL=modelsChatEnabled.gen.js.map","/* eslint-disable camelcase */\n// reference: https://github.com/openai/tiktoken/blob/4560a8896f5fb1d35c6f8fd6eee0399f9a1a27ca/tiktoken/model.py\n// --- p50k_base models ---\nexport const p50k_base = [\n // legacy models\n 'text-davinci-002',\n 'text-davinci-003',\n 'code-davinci-001',\n 'code-davinci-002',\n 'davinci-codex',\n 'code-cushman-001',\n 'code-cushman-002',\n 'cushman-codex',\n];\n// --- r50k_base models ---\nexport const r50k_base = [\n // legacy models\n 'text-ada-001',\n 'text-babbage-001',\n 'text-curie-001',\n 'text-davinci-001',\n 'ada',\n 'babbage',\n 'curie',\n 'davinci',\n 'code-search-ada-code-001',\n 'code-search-ada-text-001',\n 'text-similarity-ada-001',\n 'text-search-ada-doc-001',\n 'text-search-ada-query-001',\n 'text-similarity-babbage-001',\n 'text-search-babbage-doc-001',\n 'text-search-babbage-query-001',\n 'code-search-babbage-code-001',\n 'code-search-babbage-text-001',\n 'text-similarity-curie-001',\n 'text-search-curie-doc-001',\n 'text-search-curie-query-001',\n 'text-similarity-davinci-001',\n 'text-search-davinci-doc-001',\n 'text-search-davinci-query-001',\n];\n// --- p50k_edit models ---\nexport const p50k_edit = [\n 'code-davinci-edit-001',\n 'text-davinci-edit-001',\n];\n// --- cl100k_base models ---\nexport const cl100k_base = [\n // all gpt-3.5 models:\n 'gpt-3.5',\n 'gpt-3.5-0301',\n 'gpt-3.5-turbo',\n 'gpt-3.5-turbo-0125',\n 'gpt-3.5-turbo-0613',\n 'gpt-3.5-turbo-1106',\n 'gpt-3.5-turbo-16k-0613',\n 'gpt-3.5-turbo-instruct',\n // all gpt-4.0 models:\n 'gpt-4',\n 'gpt-4-0125-preview',\n 'gpt-4-0314',\n 'gpt-4-0613',\n 'gpt-4-1106-preview',\n 'gpt-4-1106-vision-preview',\n 'gpt-4-32k',\n 'gpt-4-turbo',\n 'gpt-4-turbo-2024-04-09',\n 'gpt-4-turbo-preview',\n // embedding models:\n 'text-embedding-3-large',\n 'text-embedding-3-small',\n 'text-embedding-ada-002',\n // still supported models:\n 'babbage-002',\n 'davinci-002',\n];\n// all new models use o200k_base, hence we don't need to list them here\n// (e.g. chatgpt-4o-latest, gpt-4o-2024-05-13, o1, etc.)\n// --- o200k_base models ---\nexport const o200k_base = [];\n//# sourceMappingURL=modelsMap.js.map","export const EndOfText = '<|endoftext|>';\nexport const FimPrefix = '<|fim_prefix|>';\nexport const FimMiddle = '<|fim_middle|>';\nexport const FimSuffix = '<|fim_suffix|>';\nexport const ImStart = '<|im_start|>'; // 100264\nexport const ImEnd = '<|im_end|>'; // 100265\nexport const ImSep = '<|im_sep|>'; // 100266\nexport const EndOfPrompt = '<|endofprompt|>';\n//# sourceMappingURL=specialTokens.js.map","/* eslint-disable camelcase */\nimport { chatEnabledModels } from './modelsChatEnabled.gen.js';\nimport * as encodingsMap from './modelsMap.js';\nimport { ImSep } from './specialTokens.js';\nexport const cl100k_base = 'cl100k_base';\nexport const p50k_base = 'p50k_base';\nexport const p50k_edit = 'p50k_edit';\nexport const r50k_base = 'r50k_base';\nexport const o200k_base = 'o200k_base';\nexport const DEFAULT_ENCODING = o200k_base;\nexport const encodingNames = [\n p50k_base,\n r50k_base,\n p50k_edit,\n cl100k_base,\n o200k_base,\n];\n/**\n * maps model names to encoding names\n * if a model is not listed, it uses the default encoding for new models\n * which is `o200k_base`\n */\nexport const modelToEncodingMap = Object.fromEntries(Object.entries(encodingsMap).flatMap(([encodingName, models]) => models.map((modelName) => [modelName, encodingName])));\nconst gpt3params = {\n messageSeparator: '\\n',\n roleSeparator: '\\n',\n};\nconst gpt4params = {\n messageSeparator: '',\n roleSeparator: ImSep,\n};\nexport const chatModelParams = Object.fromEntries(chatEnabledModels.flatMap((modelName) => modelName.startsWith('gpt-3.5')\n ? [[modelName, gpt3params]]\n : [[modelName, gpt4params]]));\n//# sourceMappingURL=mapping.js.map","export const R50K_TOKEN_SPLIT_REGEX = /'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+/gu;\nexport const CL_AND_O_TOKEN_SPLIT_PATTERN = /(?:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}{1,3}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+/giu;\n//# sourceMappingURL=constants.js.map","import { EndOfPrompt, EndOfText, FimMiddle, FimPrefix, FimSuffix, ImEnd, ImSep, ImStart, } from '../specialTokens.js';\nimport { CL_AND_O_TOKEN_SPLIT_PATTERN } from './constants.js';\nexport function Cl100KBase(bytePairRankDecoder) {\n const specialTokenMapping = new Map([\n [EndOfText, 100_257],\n [FimPrefix, 100_258],\n [FimMiddle, 100_259],\n [FimSuffix, 100_260],\n [ImStart, 100_264],\n [ImEnd, 100_265],\n [ImSep, 100_266],\n [EndOfPrompt, 100_276],\n ]);\n return {\n tokenSplitRegex: CL_AND_O_TOKEN_SPLIT_PATTERN,\n bytePairRankDecoder,\n specialTokensEncoder: specialTokenMapping,\n };\n}\n//# sourceMappingURL=cl100k_base.js.map","import { EndOfPrompt, EndOfText, FimMiddle, FimPrefix, FimSuffix, ImEnd, ImSep, ImStart, } from '../specialTokens.js';\nimport { CL_AND_O_TOKEN_SPLIT_PATTERN } from './constants.js';\nexport function O200KBase(bytePairRankDecoder) {\n const specialTokenMapping = new Map([\n [EndOfText, 199_999],\n [FimPrefix, 200_000],\n [FimMiddle, 200_001],\n [FimSuffix, 200_002],\n [ImStart, 200_003],\n [ImEnd, 200_004],\n [ImSep, 200_005],\n [EndOfPrompt, 200_006],\n ]);\n return {\n tokenSplitRegex: CL_AND_O_TOKEN_SPLIT_PATTERN,\n bytePairRankDecoder,\n specialTokensEncoder: specialTokenMapping,\n };\n}\n//# sourceMappingURL=o200k_base.js.map","import {} from '../modelParams.js';\nimport { EndOfText } from '../specialTokens.js';\nimport { R50K_TOKEN_SPLIT_REGEX } from './constants.js';\nexport function P50KBase(bytePairRankDecoder) {\n return {\n expectedVocabularySize: 50_281,\n tokenSplitRegex: R50K_TOKEN_SPLIT_REGEX,\n bytePairRankDecoder,\n specialTokensEncoder: new Map([[EndOfText, 50_256]]),\n };\n}\n//# sourceMappingURL=p50k_base.js.map","import {} from '../modelParams.js';\nimport { EndOfText, FimMiddle, FimPrefix, FimSuffix } from '../specialTokens.js';\nimport { R50K_TOKEN_SPLIT_REGEX } from './constants.js';\nexport function P50KEdit(bytePairRankDecoder) {\n const specialTokenMapping = new Map([\n [EndOfText, 50_256],\n [FimPrefix, 50_281],\n [FimMiddle, 50_282],\n [FimSuffix, 50_283],\n ]);\n return {\n tokenSplitRegex: R50K_TOKEN_SPLIT_REGEX,\n bytePairRankDecoder,\n specialTokensEncoder: specialTokenMapping,\n };\n}\n//# sourceMappingURL=p50k_edit.js.map","import {} from '../modelParams.js';\nimport { EndOfText } from '../specialTokens.js';\nimport { R50K_TOKEN_SPLIT_REGEX } from './constants.js';\nexport function R50KBase(bytePairRankDecoder) {\n return {\n expectedVocabularySize: 50_257,\n tokenSplitRegex: R50K_TOKEN_SPLIT_REGEX,\n bytePairRankDecoder,\n specialTokensEncoder: new Map([[EndOfText, 50_256]]),\n };\n}\n//# sourceMappingURL=r50k_base.js.map","import { Cl100KBase } from './encodingParams/cl100k_base.js';\nimport { O200KBase } from './encodingParams/o200k_base.js';\nimport { P50KBase } from './encodingParams/p50k_base.js';\nimport { P50KEdit } from './encodingParams/p50k_edit.js';\nimport { R50KBase } from './encodingParams/r50k_base.js';\nexport function getEncodingParams(encodingName, getMergeableRanks) {\n const mergeableBytePairRanks = getMergeableRanks(encodingName);\n switch (encodingName.toLowerCase()) {\n case 'r50k_base':\n return R50KBase(mergeableBytePairRanks);\n case 'p50k_base':\n return P50KBase(mergeableBytePairRanks);\n case 'p50k_edit':\n return P50KEdit(mergeableBytePairRanks);\n case 'cl100k_base':\n return Cl100KBase(mergeableBytePairRanks);\n case 'o200k_base':\n return O200KBase(mergeableBytePairRanks);\n default:\n throw new Error(`Unknown encoding name: ${encodingName}`);\n }\n}\n//# sourceMappingURL=modelParams.js.map","/* eslint-disable @typescript-eslint/member-ordering */\n/* eslint-disable no-param-reassign */\nimport { BytePairEncodingCore, decoder } from './BytePairEncodingCore.js';\nimport { ALL_SPECIAL_TOKENS } from './constants.js';\nimport { chatModelParams, DEFAULT_ENCODING, modelToEncodingMap, } from './mapping.js';\nimport { getEncodingParams, } from './modelParams.js';\nimport { EndOfPrompt, EndOfText, FimMiddle, FimPrefix, FimSuffix, ImEnd, ImSep, ImStart, } from './specialTokens.js';\nimport { endsWithIncompleteUtfPairSurrogate } from './utfUtil.js';\nimport { getMaxValueFromMap, getSpecialTokenRegex } from './util.js';\nexport class GptEncoding {\n static EndOfPrompt = EndOfPrompt;\n static EndOfText = EndOfText;\n static FimMiddle = FimMiddle;\n static FimPrefix = FimPrefix;\n static FimSuffix = FimSuffix;\n modelName;\n modelSpec;\n bytePairEncodingCoreProcessor;\n specialTokensEncoder;\n specialTokensSet;\n allSpecialTokenRegex;\n defaultSpecialTokenConfig;\n vocabularySize;\n constructor({ bytePairRankDecoder: mergeableBytePairRanks, specialTokensEncoder, expectedVocabularySize, modelName, modelSpec, ...rest }) {\n this.specialTokensEncoder = specialTokensEncoder;\n this.specialTokensSet = new Set(this.specialTokensEncoder.keys());\n this.allSpecialTokenRegex = getSpecialTokenRegex(this.specialTokensSet);\n this.bytePairEncodingCoreProcessor = new BytePairEncodingCore({\n bytePairRankDecoder: mergeableBytePairRanks,\n specialTokensEncoder,\n ...rest,\n });\n this.defaultSpecialTokenConfig = this.processSpecialTokens();\n const maxTokenValue = Math.max(mergeableBytePairRanks.length - 1, getMaxValueFromMap(specialTokensEncoder));\n this.vocabularySize =\n this.bytePairEncodingCoreProcessor.mergeableBytePairRankCount +\n specialTokensEncoder.size;\n if (expectedVocabularySize !== undefined) {\n if (this.vocabularySize !== expectedVocabularySize) {\n throw new Error('The number of mergeable tokens and special tokens must be equal to expectedVocabularySize.');\n }\n if (maxTokenValue !== expectedVocabularySize - 1) {\n throw new Error(`The model encodings are invalid. The maximum token value must be equal to expectedVocabularySize - 1. Currently ${maxTokenValue}, expected ${expectedVocabularySize - 1}`);\n }\n }\n this.encode = this.encode.bind(this);\n this.decode = this.decode.bind(this);\n this.encodeGenerator = this.encodeGenerator.bind(this);\n this.decodeGenerator = this.decodeGenerator.bind(this);\n this.decodeAsyncGenerator = this.decodeAsyncGenerator.bind(this);\n this.decodeAsync = this.decodeAsync.bind(this);\n this.isWithinTokenLimit = this.isWithinTokenLimit.bind(this);\n this.encodeChat = this.encodeChat.bind(this);\n this.encodeChatGenerator = this.encodeChatGenerator.bind(this);\n this.countTokens = this.countTokens.bind(this);\n this.setMergeCacheSize = this.setMergeCacheSize.bind(this);\n this.clearMergeCache = this.clearMergeCache.bind(this);\n this.estimateCost = this.estimateCost.bind(this);\n this.modelName = modelName;\n this.modelSpec = modelSpec;\n }\n static getEncodingApi(encodingName, getMergeableRanks) {\n const modelParams = getEncodingParams(encodingName, getMergeableRanks);\n return new GptEncoding(modelParams);\n }\n static getEncodingApiForModel(modelName, getMergeableRanks, modelSpec) {\n const encodingName = modelToEncodingMap[modelName] ?? DEFAULT_ENCODING;\n const modelParams = getEncodingParams(encodingName, getMergeableRanks);\n return new GptEncoding({ ...modelParams, modelName, modelSpec });\n }\n processSpecialTokens({ allowedSpecial, disallowedSpecial, } = {}) {\n let regexPattern;\n if (allowedSpecial === ALL_SPECIAL_TOKENS ||\n allowedSpecial?.has(ALL_SPECIAL_TOKENS)) {\n allowedSpecial = new Set(this.specialTokensSet);\n const allowedSpecialSet = allowedSpecial;\n if (disallowedSpecial === ALL_SPECIAL_TOKENS) {\n throw new Error('allowedSpecial and disallowedSpecial cannot both be set to \"all\".');\n }\n if (typeof disallowedSpecial === 'object') {\n // remove any special tokens that are disallowed\n disallowedSpecial.forEach((val) => allowedSpecialSet.delete(val));\n }\n else {\n // all special tokens are allowed, and no 'disallowedSpecial' is provided\n disallowedSpecial = new Set();\n }\n }\n if (!disallowedSpecial ||\n disallowedSpecial === ALL_SPECIAL_TOKENS ||\n disallowedSpecial.has(ALL_SPECIAL_TOKENS)) {\n // by default, all special tokens are disallowed\n disallowedSpecial = new Set(this.specialTokensSet);\n const disallowedSpecialSet = disallowedSpecial;\n if (allowedSpecial?.size) {\n allowedSpecial.forEach((val) => disallowedSpecialSet.delete(val));\n // disallowed takes precedence over allowed\n disallowedSpecial.forEach((val) => allowedSpecial.delete(val));\n if (disallowedSpecial.size > 0) {\n regexPattern = getSpecialTokenRegex(disallowedSpecial);\n }\n }\n else {\n regexPattern = this.allSpecialTokenRegex;\n }\n }\n return { allowedSpecial, regexPattern };\n }\n encodeGenerator(lineToEncode, encodeOptions) {\n const specialTokenConfig = encodeOptions\n ? this.processSpecialTokens(encodeOptions)\n : this.defaultSpecialTokenConfig;\n if (specialTokenConfig.regexPattern) {\n const match = lineToEncode.match(specialTokenConfig.regexPattern);\n if (match !== null) {\n throw new Error(`Disallowed special token found: ${match[0]}`);\n }\n }\n return this.bytePairEncodingCoreProcessor.encodeNativeGenerator(lineToEncode, specialTokenConfig.allowedSpecial);\n }\n encode(lineToEncode, encodeOptions) {\n const specialTokenConfig = encodeOptions\n ? this.processSpecialTokens(encodeOptions)\n : this.defaultSpecialTokenConfig;\n if (specialTokenConfig.regexPattern) {\n const match = lineToEncode.match(specialTokenConfig.regexPattern);\n if (match !== null) {\n throw new Error(`Disallowed special token found: ${match[0]}`);\n }\n }\n return this.bytePairEncodingCoreProcessor.encodeNative(lineToEncode, specialTokenConfig.allowedSpecial);\n }\n /**\n * Progressively tokenizes an OpenAI chat.\n * Warning: gpt-3.5-turbo and gpt-4 chat format may change over time.\n * Returns tokens assuming the 'gpt-3.5-turbo-0301' / 'gpt-4-0314' format.\n * Based on OpenAI's guidelines: https://github.com/openai/openai-python/blob/main/chatml.md\n * Also mentioned in section 6 of this document: https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb\n */\n *encodeChatGenerator(chat, model = this.modelName) {\n if (!model) {\n throw new Error('Model name must be provided either during initialization or passed in to the method.');\n }\n const params = chatModelParams[model];\n const chatStartToken = this.specialTokensEncoder.get(ImStart);\n const chatEndToken = this.specialTokensEncoder.get(ImEnd);\n if (!params || chatStartToken === undefined || chatEndToken === undefined) {\n throw new Error(`Model '${model}' does not support chat.`);\n }\n const allowedSpecial = new Set([ImSep]);\n const { messageSeparator, roleSeparator } = params;\n const encodedMessageSeparator = messageSeparator.length > 0 ? this.encode(messageSeparator) : [];\n const encodedRoleSeparator = roleSeparator.length > 0\n ? this.encode(roleSeparator, { allowedSpecial })\n : [];\n const nameCache = new Map();\n for (const { role = 'system', name = role, content } of chat) {\n if (content === undefined) {\n throw new Error('Content must be defined for all messages.');\n }\n yield [chatStartToken];\n const encodedName = nameCache.get(name) ?? this.encode(name);\n nameCache.set(name, encodedName);\n yield encodedName;\n if (encodedRoleSeparator.length > 0) {\n yield encodedRoleSeparator;\n }\n yield* this.encodeGenerator(content);\n yield [chatEndToken];\n yield encodedMessageSeparator;\n }\n // every reply is primed with <|start|>assistant<|message|>\n yield [chatStartToken];\n yield* this.encodeGenerator('assistant');\n if (encodedRoleSeparator.length > 0) {\n yield encodedRoleSeparator;\n }\n }\n /**\n * Encodes a chat into a single array of tokens.\n * Warning: gpt-3.5-turbo and gpt-4 chat format may change over time.\n * Returns tokens assuming the 'gpt-3.5-turbo-0301' / 'gpt-4-0314' format.\n * Based on OpenAI's guidelines: https://github.com/openai/openai-python/blob/main/chatml.md\n * Also mentioned in section 6 of this document: https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb\n */\n encodeChat(chat, model = this.modelName) {\n return [...this.encodeChatGenerator(chat, model)].flat();\n }\n /**\n * @returns {false | number} false if token limit is exceeded, otherwise the number of tokens\n */\n isWithinTokenLimit(input, tokenLimit) {\n const tokenGenerator = typeof input === 'string'\n ? this.encodeGenerator(input)\n : this.encodeChatGenerator(input);\n let count = 0;\n for (const tokens of tokenGenerator) {\n count += tokens.length;\n if (count > tokenLimit) {\n return false;\n }\n }\n return count;\n }\n /**\n * Counts the number of tokens in the input.\n * @returns {number} The number of tokens.\n */\n countTokens(input, encodeOptions) {\n if (typeof input === 'string') {\n const specialTokenConfig = encodeOptions\n ? this.processSpecialTokens(encodeOptions)\n : this.defaultSpecialTokenConfig;\n if (specialTokenConfig.regexPattern) {\n const match = input.match(specialTokenConfig.regexPattern);\n if (match !== null) {\n throw new Error(`Disallowed special token found: ${match[0]}`);\n }\n }\n return this.bytePairEncodingCoreProcessor.countNative(input, specialTokenConfig.allowedSpecial);\n }\n const tokenGenerator = this.encodeChatGenerator(input);\n let count = 0;\n for (const tokens of tokenGenerator) {\n count += tokens.length;\n }\n return count;\n }\n setMergeCacheSize(size) {\n this.bytePairEncodingCoreProcessor.setMergeCacheSize(size);\n }\n clearMergeCache() {\n this.bytePairEncodingCoreProcessor.clearMergeCache();\n }\n decode(inputTokensToDecode) {\n return this.bytePairEncodingCoreProcessor.decodeNative(inputTokensToDecode);\n }\n *decodeGenerator(inputTokensToDecode) {\n const decodedByteGenerator = this.bytePairEncodingCoreProcessor.decodeNativeGenerator(inputTokensToDecode);\n let buffer = '';\n for (const decodedPart of decodedByteGenerator) {\n buffer +=\n typeof decodedPart === 'string'\n ? decodedPart\n : decoder.decode(decodedPart, { stream: true });\n if (buffer.length === 0 || endsWithIncompleteUtfPairSurrogate(buffer)) {\n // Keep the high surrogate in the buffer and continue with the next token\n // eslint-disable-next-line no-continue\n continue;\n }\n else {\n yield buffer;\n // reset buffer\n buffer = '';\n }\n }\n // Yield any remaining characters in the buffer\n if (buffer.length > 0) {\n yield buffer;\n }\n }\n async *decodeAsyncGenerator(inputTokensToDecode) {\n const decodedByteGenerator = this.bytePairEncodingCoreProcessor.decodeNativeAsyncIterable(inputTokensToDecode);\n let buffer = '';\n for await (const decodedPart of decodedByteGenerator) {\n buffer +=\n typeof decodedPart === 'string'\n ? decodedPart\n : decoder.decode(decodedPart, { stream: true });\n if (buffer.length === 0 || endsWithIncompleteUtfPairSurrogate(buffer)) {\n // Keep the high surrogate in the buffer and continue with the next token\n // eslint-disable-next-line no-continue\n continue;\n }\n else {\n yield buffer;\n // reset buffer\n buffer = '';\n }\n }\n // Yield any remaining characters in the buffer\n if (buffer.length > 0) {\n yield buffer;\n }\n }\n async decodeAsync(inputTokensToDecode) {\n const decodedByteGenerator = this.bytePairEncodingCoreProcessor.decodeNativeAsyncIterable(inputTokensToDecode);\n let buffer = '';\n for await (const decodedPart of decodedByteGenerator) {\n buffer +=\n typeof decodedPart === 'string'\n ? decodedPart\n : decoder.decode(decodedPart, { stream: true });\n }\n return buffer;\n }\n /**\n * Estimates the cost of processing a given token count using the model's pricing.\n *\n * @param tokenCount - The number of tokens to estimate cost for\n * @returns Cost estimate object with applicable price components (input, output, batchInput, batchOutput)\n */\n estimateCost(tokenCount, modelSpec = this.modelSpec) {\n if (!modelSpec) {\n throw new Error('Model spec must be provided either during initialization or passed in to the method.');\n }\n if (!modelSpec.price_data) {\n throw new Error(`No cost information available for model: ${modelSpec.name}`);\n }\n const priceDataPerMillion = modelSpec.price_data;\n const result = {};\n // Calculate cost per token and multiply by token count\n // eslint-disable-next-line no-magic-numbers\n const millionTokens = tokenCount / 1_000_000;\n if (priceDataPerMillion.main) {\n result.main = {\n input: priceDataPerMillion.main.input &&\n priceDataPerMillion.main.input * millionTokens,\n output: priceDataPerMillion.main.output &&\n priceDataPerMillion.main.output * millionTokens,\n cached_input: priceDataPerMillion.main.cached_input &&\n priceDataPerMillion.main.cached_input * millionTokens,\n cached_output: priceDataPerMillion.main.cached_output &&\n priceDataPerMillion.main.cached_output * millionTokens,\n };\n }\n if (priceDataPerMillion.batch) {\n result.batch = {\n input: priceDataPerMillion.batch.input &&\n priceDataPerMillion.batch.input * millionTokens,\n output: priceDataPerMillion.batch.output &&\n priceDataPerMillion.batch.output * millionTokens,\n cached_input: priceDataPerMillion.batch.cached_input &&\n priceDataPerMillion.batch.cached_input * millionTokens,\n cached_output: priceDataPerMillion.batch.cached_output &&\n priceDataPerMillion.batch.cached_output * millionTokens,\n };\n }\n return result;\n }\n}\n//# sourceMappingURL=GptEncoding.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { PATHS, ensurePaths } from "./paths-Cla6y5eD.js";
2
- import { state } from "./utils-BOfWR1uT.js";
3
- import { setupGitHubToken } from "./token-D1pIdFn1.js";
4
- import { defineCommand } from "citty";
5
- import consola from "consola";
1
+ import { consola } from "./dist-B3jIqeb6.js";
2
+ import { defineCommand } from "./dist-CSEoNgAt.js";
3
+ import { PATHS, ensurePaths } from "./paths-DvrimVju.js";
4
+ import { state } from "./utils-DXuuBUT_.js";
5
+ import { setupGitHubToken } from "./token-BCdEIfN_.js";
6
6
 
7
7
  //#region src/auth.ts
8
8
  async function runAuth(options) {
@@ -43,4 +43,4 @@ const auth = defineCommand({
43
43
 
44
44
  //#endregion
45
45
  export { auth };
46
- //# sourceMappingURL=auth-C9jquVrb.js.map
46
+ //# sourceMappingURL=auth-DCB53u05.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-C9jquVrb.js","names":[],"sources":["../src/auth.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { defineCommand } from \"citty\"\nimport consola from \"consola\"\n\nimport { PATHS, ensurePaths } from \"./lib/paths\"\nimport { state } from \"./lib/state\"\nimport { setupGitHubToken } from \"./lib/token\"\n\ninterface RunAuthOptions {\n verbose: boolean\n showToken: boolean\n}\n\nexport async function runAuth(options: RunAuthOptions): Promise<void> {\n if (options.verbose) {\n consola.level = 5\n consola.info(\"Verbose logging enabled\")\n }\n\n state.showToken = options.showToken\n\n await ensurePaths()\n await setupGitHubToken({ force: true })\n consola.success(\"GitHub token written to\", PATHS.GITHUB_TOKEN_PATH)\n}\n\nexport const auth = defineCommand({\n meta: {\n name: \"auth\",\n description: \"Run GitHub auth flow without running the server\",\n },\n args: {\n verbose: {\n alias: \"v\",\n type: \"boolean\",\n default: false,\n description: \"Enable verbose logging\",\n },\n \"show-token\": {\n type: \"boolean\",\n default: false,\n description: \"Show GitHub token on auth\",\n },\n },\n run({ args }) {\n return runAuth({\n verbose: args.verbose,\n showToken: args[\"show-token\"],\n })\n },\n})\n"],"mappings":";;;;;;;AAcA,eAAsB,QAAQ,SAAwC;AACpE,KAAI,QAAQ,SAAS;AACnB,UAAQ,QAAQ;AAChB,UAAQ,KAAK,0BAA0B;;AAGzC,OAAM,YAAY,QAAQ;AAE1B,OAAM,aAAa;AACnB,OAAM,iBAAiB,EAAE,OAAO,MAAM,CAAC;AACvC,SAAQ,QAAQ,2BAA2B,MAAM,kBAAkB;;AAGrE,MAAa,OAAO,cAAc;CAChC,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAAM;EACJ,SAAS;GACP,OAAO;GACP,MAAM;GACN,SAAS;GACT,aAAa;GACd;EACD,cAAc;GACZ,MAAM;GACN,SAAS;GACT,aAAa;GACd;EACF;CACD,IAAI,EAAE,QAAQ;AACZ,SAAO,QAAQ;GACb,SAAS,KAAK;GACd,WAAW,KAAK;GACjB,CAAC;;CAEL,CAAC"}
1
+ {"version":3,"file":"auth-DCB53u05.js","names":[],"sources":["../src/auth.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { defineCommand } from \"citty\"\nimport consola from \"consola\"\n\nimport { PATHS, ensurePaths } from \"./lib/paths\"\nimport { state } from \"./lib/state\"\nimport { setupGitHubToken } from \"./lib/token\"\n\ninterface RunAuthOptions {\n verbose: boolean\n showToken: boolean\n}\n\nexport async function runAuth(options: RunAuthOptions): Promise<void> {\n if (options.verbose) {\n consola.level = 5\n consola.info(\"Verbose logging enabled\")\n }\n\n state.showToken = options.showToken\n\n await ensurePaths()\n await setupGitHubToken({ force: true })\n consola.success(\"GitHub token written to\", PATHS.GITHUB_TOKEN_PATH)\n}\n\nexport const auth = defineCommand({\n meta: {\n name: \"auth\",\n description: \"Run GitHub auth flow without running the server\",\n },\n args: {\n verbose: {\n alias: \"v\",\n type: \"boolean\",\n default: false,\n description: \"Enable verbose logging\",\n },\n \"show-token\": {\n type: \"boolean\",\n default: false,\n description: \"Show GitHub token on auth\",\n },\n },\n run({ args }) {\n return runAuth({\n verbose: args.verbose,\n showToken: args[\"show-token\"],\n })\n },\n})\n"],"mappings":";;;;;;;AAcA,eAAsB,QAAQ,SAAwC;AACpE,KAAI,QAAQ,SAAS;AACnB,UAAQ,QAAQ;AAChB,UAAQ,KAAK,0BAA0B;;AAGzC,OAAM,YAAY,QAAQ;AAE1B,OAAM,aAAa;AACnB,OAAM,iBAAiB,EAAE,OAAO,MAAM,CAAC;AACvC,SAAQ,QAAQ,2BAA2B,MAAM,kBAAkB;;AAGrE,MAAa,OAAO,cAAc;CAChC,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAAM;EACJ,SAAS;GACP,OAAO;GACP,MAAM;GACN,SAAS;GACT,aAAa;GACd;EACD,cAAc;GACZ,MAAM;GACN,SAAS;GACT,aAAa;GACd;EACF;CACD,IAAI,EAAE,QAAQ;AACZ,SAAO,QAAQ;GACb,SAAS,KAAK;GACd,WAAW,KAAK;GACjB,CAAC;;CAEL,CAAC"}
@@ -1,8 +1,8 @@
1
- import { ensurePaths } from "./paths-Cla6y5eD.js";
2
- import { getCopilotUsage } from "./utils-BOfWR1uT.js";
3
- import { setupGitHubToken } from "./token-D1pIdFn1.js";
4
- import { defineCommand } from "citty";
5
- import consola from "consola";
1
+ import { consola } from "./dist-B3jIqeb6.js";
2
+ import { defineCommand } from "./dist-CSEoNgAt.js";
3
+ import { ensurePaths } from "./paths-DvrimVju.js";
4
+ import { getCopilotUsage } from "./utils-DXuuBUT_.js";
5
+ import { setupGitHubToken } from "./token-BCdEIfN_.js";
6
6
 
7
7
  //#region src/check-usage.ts
8
8
  const checkUsage = defineCommand({
@@ -41,4 +41,4 @@ const checkUsage = defineCommand({
41
41
 
42
42
  //#endregion
43
43
  export { checkUsage };
44
- //# sourceMappingURL=check-usage-Ct5MACB6.js.map
44
+ //# sourceMappingURL=check-usage-iKUAIfc_.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-usage-Ct5MACB6.js","names":[],"sources":["../src/check-usage.ts"],"sourcesContent":["import { defineCommand } from \"citty\"\nimport consola from \"consola\"\n\nimport { ensurePaths } from \"./lib/paths\"\nimport { setupGitHubToken } from \"./lib/token\"\nimport {\n getCopilotUsage,\n type QuotaDetail,\n} from \"./services/github/get-copilot-usage\"\n\nexport const checkUsage = defineCommand({\n meta: {\n name: \"check-usage\",\n description: \"Show current GitHub Copilot usage/quota information\",\n },\n async run() {\n await ensurePaths()\n await setupGitHubToken()\n try {\n const usage = await getCopilotUsage()\n const premium = usage.quota_snapshots.premium_interactions\n const premiumTotal = premium.entitlement\n const premiumUsed = premiumTotal - premium.remaining\n const premiumPercentUsed =\n premiumTotal > 0 ? (premiumUsed / premiumTotal) * 100 : 0\n const premiumPercentRemaining = premium.percent_remaining\n\n // Helper to summarize a quota snapshot\n function summarizeQuota(name: string, snap: QuotaDetail | undefined) {\n if (!snap) return `${name}: N/A`\n const total = snap.entitlement\n const used = total - snap.remaining\n const percentUsed = total > 0 ? (used / total) * 100 : 0\n const percentRemaining = snap.percent_remaining\n return `${name}: ${used}/${total} used (${percentUsed.toFixed(1)}% used, ${percentRemaining.toFixed(1)}% remaining)`\n }\n\n const premiumLine = `Premium: ${premiumUsed}/${premiumTotal} used (${premiumPercentUsed.toFixed(1)}% used, ${premiumPercentRemaining.toFixed(1)}% remaining)`\n const chatLine = summarizeQuota(\"Chat\", usage.quota_snapshots.chat)\n const completionsLine = summarizeQuota(\n \"Completions\",\n usage.quota_snapshots.completions,\n )\n\n consola.box(\n `Copilot Usage (plan: ${usage.copilot_plan})\\n`\n + `Quota resets: ${usage.quota_reset_date}\\n`\n + `\\nQuotas:\\n`\n + ` ${premiumLine}\\n`\n + ` ${chatLine}\\n`\n + ` ${completionsLine}`,\n )\n } catch (err) {\n consola.error(\"Failed to fetch Copilot usage:\", err)\n process.exit(1)\n }\n },\n})\n"],"mappings":";;;;;;;AAUA,MAAa,aAAa,cAAc;CACtC,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAAM,MAAM;AACV,QAAM,aAAa;AACnB,QAAM,kBAAkB;AACxB,MAAI;GACF,MAAM,QAAQ,MAAM,iBAAiB;GACrC,MAAM,UAAU,MAAM,gBAAgB;GACtC,MAAM,eAAe,QAAQ;GAC7B,MAAM,cAAc,eAAe,QAAQ;GAC3C,MAAM,qBACJ,eAAe,IAAK,cAAc,eAAgB,MAAM;GAC1D,MAAM,0BAA0B,QAAQ;GAGxC,SAAS,eAAe,MAAc,MAA+B;AACnE,QAAI,CAAC,KAAM,QAAO,GAAG,KAAK;IAC1B,MAAM,QAAQ,KAAK;IACnB,MAAM,OAAO,QAAQ,KAAK;IAC1B,MAAM,cAAc,QAAQ,IAAK,OAAO,QAAS,MAAM;IACvD,MAAM,mBAAmB,KAAK;AAC9B,WAAO,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,SAAS,YAAY,QAAQ,EAAE,CAAC,UAAU,iBAAiB,QAAQ,EAAE,CAAC;;GAGzG,MAAM,cAAc,YAAY,YAAY,GAAG,aAAa,SAAS,mBAAmB,QAAQ,EAAE,CAAC,UAAU,wBAAwB,QAAQ,EAAE,CAAC;GAChJ,MAAM,WAAW,eAAe,QAAQ,MAAM,gBAAgB,KAAK;GACnE,MAAM,kBAAkB,eACtB,eACA,MAAM,gBAAgB,YACvB;AAED,WAAQ,IACN,wBAAwB,MAAM,aAAa,mBACtB,MAAM,iBAAiB,iBAEnC,YAAY,MACZ,SAAS,MACT,kBACV;WACM,KAAK;AACZ,WAAQ,MAAM,kCAAkC,IAAI;AACpD,WAAQ,KAAK,EAAE;;;CAGpB,CAAC"}
1
+ {"version":3,"file":"check-usage-iKUAIfc_.js","names":[],"sources":["../src/check-usage.ts"],"sourcesContent":["import { defineCommand } from \"citty\"\nimport consola from \"consola\"\n\nimport { ensurePaths } from \"./lib/paths\"\nimport { setupGitHubToken } from \"./lib/token\"\nimport {\n getCopilotUsage,\n type QuotaDetail,\n} from \"./services/github/get-copilot-usage\"\n\nexport const checkUsage = defineCommand({\n meta: {\n name: \"check-usage\",\n description: \"Show current GitHub Copilot usage/quota information\",\n },\n async run() {\n await ensurePaths()\n await setupGitHubToken()\n try {\n const usage = await getCopilotUsage()\n const premium = usage.quota_snapshots.premium_interactions\n const premiumTotal = premium.entitlement\n const premiumUsed = premiumTotal - premium.remaining\n const premiumPercentUsed =\n premiumTotal > 0 ? (premiumUsed / premiumTotal) * 100 : 0\n const premiumPercentRemaining = premium.percent_remaining\n\n // Helper to summarize a quota snapshot\n function summarizeQuota(name: string, snap: QuotaDetail | undefined) {\n if (!snap) return `${name}: N/A`\n const total = snap.entitlement\n const used = total - snap.remaining\n const percentUsed = total > 0 ? (used / total) * 100 : 0\n const percentRemaining = snap.percent_remaining\n return `${name}: ${used}/${total} used (${percentUsed.toFixed(1)}% used, ${percentRemaining.toFixed(1)}% remaining)`\n }\n\n const premiumLine = `Premium: ${premiumUsed}/${premiumTotal} used (${premiumPercentUsed.toFixed(1)}% used, ${premiumPercentRemaining.toFixed(1)}% remaining)`\n const chatLine = summarizeQuota(\"Chat\", usage.quota_snapshots.chat)\n const completionsLine = summarizeQuota(\n \"Completions\",\n usage.quota_snapshots.completions,\n )\n\n consola.box(\n `Copilot Usage (plan: ${usage.copilot_plan})\\n`\n + `Quota resets: ${usage.quota_reset_date}\\n`\n + `\\nQuotas:\\n`\n + ` ${premiumLine}\\n`\n + ` ${chatLine}\\n`\n + ` ${completionsLine}`,\n )\n } catch (err) {\n consola.error(\"Failed to fetch Copilot usage:\", err)\n process.exit(1)\n }\n },\n})\n"],"mappings":";;;;;;;AAUA,MAAa,aAAa,cAAc;CACtC,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAAM,MAAM;AACV,QAAM,aAAa;AACnB,QAAM,kBAAkB;AACxB,MAAI;GACF,MAAM,QAAQ,MAAM,iBAAiB;GACrC,MAAM,UAAU,MAAM,gBAAgB;GACtC,MAAM,eAAe,QAAQ;GAC7B,MAAM,cAAc,eAAe,QAAQ;GAC3C,MAAM,qBACJ,eAAe,IAAK,cAAc,eAAgB,MAAM;GAC1D,MAAM,0BAA0B,QAAQ;GAGxC,SAAS,eAAe,MAAc,MAA+B;AACnE,QAAI,CAAC,KAAM,QAAO,GAAG,KAAK;IAC1B,MAAM,QAAQ,KAAK;IACnB,MAAM,OAAO,QAAQ,KAAK;IAC1B,MAAM,cAAc,QAAQ,IAAK,OAAO,QAAS,MAAM;IACvD,MAAM,mBAAmB,KAAK;AAC9B,WAAO,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,SAAS,YAAY,QAAQ,EAAE,CAAC,UAAU,iBAAiB,QAAQ,EAAE,CAAC;;GAGzG,MAAM,cAAc,YAAY,YAAY,GAAG,aAAa,SAAS,mBAAmB,QAAQ,EAAE,CAAC,UAAU,wBAAwB,QAAQ,EAAE,CAAC;GAChJ,MAAM,WAAW,eAAe,QAAQ,MAAM,gBAAgB,KAAK;GACnE,MAAM,kBAAkB,eACtB,eACA,MAAM,gBAAgB,YACvB;AAED,WAAQ,IACN,wBAAwB,MAAM,aAAa,mBACtB,MAAM,iBAAiB,iBAEnC,YAAY,MACZ,SAAS,MACT,kBACV;WACM,KAAK;AACZ,WAAQ,MAAM,kCAAkC,IAAI;AACpD,WAAQ,KAAK,EAAE;;;CAGpB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { createRequire } from "node:module";
2
+
3
+ //#region rolldown:runtime
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __commonJS = (cb, mod) => function() {
11
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
12
+ };
13
+ var __export = (all) => {
14
+ let target = {};
15
+ for (var name in all) __defProp(target, name, {
16
+ get: all[name],
17
+ enumerable: true
18
+ });
19
+ return target;
20
+ };
21
+ var __copyProps = (to, from, except, desc) => {
22
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
23
+ key = keys[i];
24
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
25
+ get: ((k) => from[k]).bind(null, key),
26
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
27
+ });
28
+ }
29
+ return to;
30
+ };
31
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
32
+ value: mod,
33
+ enumerable: true
34
+ }) : target, mod));
35
+ var __toDynamicImportESM = (isNodeMode) => (mod) => __toESM(mod.default, isNodeMode);
36
+ var __require = /* @__PURE__ */ createRequire(import.meta.url);
37
+
38
+ //#endregion
39
+ export { __commonJS, __export, __require, __toDynamicImportESM, __toESM };